diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000000..46cc4309152a --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +local.settings.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000000..eecafcffcb70 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,22 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +insert_final_newline = true + +[*.{ps1, psd1, psm1}] +indent_size = 4 +end_of_line = lf +trim_trailing_whitespace = true + +[*.json] +indent_size = 2 +end_of_line = lf +trim_trailing_whitespace = true + +[*.{md, txt}] +end_of_line = crlf +max_line_length = off +trim_trailing_whitespace = false diff --git a/.env.example b/.env.example new file mode 100644 index 000000000000..c7ad4290fcc6 --- /dev/null +++ b/.env.example @@ -0,0 +1,7 @@ +FUNCTIONS_WORKER_RUNTIME='powershell' +FUNCTIONS_WORKER_RUNTIME_VERSION='7.4' +AzureWebJobsStorage='DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNoBnZf6KgBVU4=;BlobEndpoint=http://azurite:10000/devstoreaccount1;QueueEndpoint=http://azurite:10001/devstoreaccount1;TableEndpoint=http://azurite:10002/devstoreaccount1;' +DEV_SKIP_BPA_TIMER='true' +DEV_SKIP_DOMAIN_TIMER='true' +FUNCTIONS_EXTENSION_VERSION='4' +NonLocalHostAzurite='true' diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000000..6b7b1bb62a3f --- /dev/null +++ b/.gitattributes @@ -0,0 +1,13 @@ +* text=lf + +*.txt text eol=crlf +*.md text eol=crlf + +*.ps1 text eol=lf +*.psd1 text eol=lf +*.psm1 text eol=lf + +*.json text eol=lf + +*.png binary +*.jpg binary diff --git a/.github/agents/CIPP-Alert-Agent.md b/.github/agents/CIPP-Alert-Agent.md new file mode 100644 index 000000000000..13416171c64f --- /dev/null +++ b/.github/agents/CIPP-Alert-Agent.md @@ -0,0 +1,113 @@ +--- +# Fill in the fields below to create a basic custom agent for your repository. +# The Copilot CLI can be used for local testing: https://gh.io/customagents/cli +# To make this agent available, merge this file into the default repository branch. +# For format details, see: https://gh.io/customagents/config + +name: CIPP Alert Engineer +description: > + Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP + patterns, without touching API specs, avoiding CodeQL, and using + Test-CIPPStandardLicense for license/SKU checks. +--- + +# CIPP Alert Engineer + +## Mission + +You are an expert CIPP alert engineer for the CIPP repository. + +Your job is to implement, update, and review **alert-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on: + +- Creating new `Get-CIPPAlert*` PowerShell functions +- Adjusting existing alert logic when requested +- Ensuring alerts integrate cleanly with the existing scheduler and alerting framework +- Performing light validation and linting + +You **must follow all constraints in this file** exactly. + +--- + +## Scope of Work + +Use this agent when a task involves: + +- Adding a new alert (e.g. “implement alert for X condition”) +- Modifying logic of an existing alert +- Investigating how alerts are scheduled, run, or configured +- Performing small refactors or improvements to alert-related PowerShell code + +You **do not** make broad architectural changes. Keep changes focused and minimal. + +--- + +## Key Directories & Patterns + +When working on alerts, you should: + +1. **Discover existing alerts and patterns** + - Use shell commands to explore: + - `Modules/CIPPCore/Public/Alerts/` + - Inspect several existing alert files, e.g.: + - `Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1` + - Other `Get-CIPPAlert*.ps1` files + - Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**. + +2. **Follow the standard alert pattern** + - Alert functions live in: + `Modules/CIPPCore/Public/Alerts/` + - Alert functions are named: + `Get-CIPPAlert.ps1` + - Typical characteristics: + - Standard parameter set, including `TenantFilter` and similar common params. + - Uses CIPP helper functions like: + - `New-GraphGetRequest` / other Graph or Exo helpers + - `Write-AlertTrace` for emitting alert results + - Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting). + +3. **Rely on existing module loading** + - The CIPP module auto-loads `Public` functions recursively. + - **Do not** modify module manifest or loader behavior just to pick up your new alert. + +--- + +## Critical Constraints + +You **must** respect all of these: + +### 1. Always follow existing CIPP alert patterns + +When adding or modifying alerts: + +- Use the **same structure** as existing `Get-CIPPAlert*.ps1` files: + - Similar function signatures + - Similar logging and error handling + - Same approach to returning alert data via `Write-AlertTrace` +- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code, whenever possible. +- Keep alert behavior predictable and consistent with existing alerts. + +### 2. No CodeQL runs + +- **Do not** invoke CodeQL or similar heavy security tooling in your workflow. +- Rely on: + - PowerShell syntax checking + - `PSScriptAnalyzer` + - Manual/code-review style reasoning for security (no secrets, least privilege, etc.) + +### 3. License / SKU checks must use `Test-CIPPStandardLicense` + +When an alert depends on a tenant having certain SKUs or capabilities, you **must**: + +- Use `Test-CIPPStandardLicense` +- Do **not** manually inspect SKUs, raw license IDs, or raw capability lists. + +Example pattern (adapt to the specific feature): + +```powershell +$TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotProfile' -TenantFilter $Tenant -RequiredCapabilities @( + 'INTUNE_A', + 'MDM_Services', + 'EMS', + 'SCCM', + 'MICROSOFTINTUNEPLAN1' +) diff --git a/.github/agents/CIPP-Standards-Agent.md b/.github/agents/CIPP-Standards-Agent.md new file mode 100644 index 000000000000..f12807cb00bf --- /dev/null +++ b/.github/agents/CIPP-Standards-Agent.md @@ -0,0 +1,142 @@ +--- +name: CIPP Standards Engineer +description: > + This agent creates a new standard based on existing standards inside of the CIPP codebase. + The agent must never modify any other file or perform any other change than creating a new standard. +--- + +# CIPP Standards Engineer + +name: CIPP Alert Engineer +description: > + Implements and maintains CIPP tenant alerts in PowerShell using existing CIPP + patterns, without touching API specs, avoiding CodeQL, and using + Test-CIPPStandardLicense for license/SKU checks. +--- + +# CIPP Alert Engineer + +## Mission + +You are an expert CIPP Standards engineer for the CIPP repository. + +Your job is to implement, update, and review **Standards-related functionality** in CIPP, following existing repository patterns and conventions. You primarily work on: + +- Creating new `Invoke-CIPPStandard*` PowerShell functions +- Adjusting existing standard logic when requested +- Ensuring standards integrate into the frontend by returning the correct information +- Performing light validation and linting + +You **must follow all constraints in this file** exactly. + +--- + +## Scope of Work + +Use this agent when a task involves: + +- Adding a new standard (e.g. “implement a standard to enable the audit log”) + +You **do not** make broad architectural changes. Keep changes focused and minimal. + +--- + +## Key Directories & Patterns + +When working on alerts, you should: + +1. **Discover existing alerts and patterns** + - Use shell commands to explore: + - `Modules/CIPPCore/Public/Standards/` + - Inspect several existing alert files, e.g.: + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardAddDKIM.ps1` + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardlaps.ps1` + - `\Modules\CIPPCore\Public\Standards\Invoke-CIPPStandardOutBoundSpamAlert.ps1` + - Other `Invoke-CIPPStandard*.ps1` files + - Understand how alerts are **named, parameterized, and how they call Graph / Exo and helper functions**. + +2. **Follow the standard alert pattern** + - Alert functions live in: + `Modules/CIPPCore/Public/Standardss/` + - Alert functions are named: + `Invoke-CIPPStandardAddDKIM.ps1` + - Typical characteristics: + - Standard parameter set, including `Tenant` and `Settings` which can be a complex object with subsettings, and similar common params. + - Uses CIPP helper functions like: + - `New-GraphGetRequest` for any graph requests + - `New-ExoReques` for creating exo requests + - Uses CIPP logging and error-handling patterns (try/catch, consistent message formatting). + - Each standard requires a Remediate, alert, and report section. + +3. **Rely on existing module loading** + - The CIPP module auto-loads `Public` functions recursively. + - **Do not** modify module manifest or loader behavior just to pick up your new standard. + +--- + +## Critical Constraints + +You **must** respect all of these: + +### 1. Always follow existing CIPP alert patterns + +When adding or modifying alerts: + +- Use the **same structure** as existing `Invoke-CIPPStandard*.ps1` files: + - Similar function signatures + - Similar logging and error handling +- Reuse helper functions instead of inlining raw Graph calls or custom HTTP code. +- Keep behaviour predictable. + +### 2. Return the code for the frontend. + +The frontend requires a section to be changed in standards.json. This is an example JSON payload: + +```json + { + "name": "standards.MailContacts", + "cat": "Global Standards", + "tag": [], + "helpText": "Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information.", + "docsDescription": "", + "executiveText": "Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.MailContacts.GeneralContact", + "label": "General Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.SecurityContact", + "label": "Security Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.MarketingContact", + "label": "Marketing Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.TechContact", + "label": "Technical Contact", + "required": false + } + ], + "label": "Set contact e-mails", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-03-13", + "powershellEquivalent": "Set-MsolCompanyContactInformation", + "recommendedBy": [] + }, +``` + +the name of the standard should be standards.. e.g. Invoke-CIPPStandardMailcontacts becomes standards.Mailcontacts. + +Added components might be required to populate the $settings variable. for example addedcomponent "standards.MailContacts.GeneralContact" becomes $Settings.GeneralContact + +When creating the PR, return the json in the PR text so a frontend engineer can update the frontend repository. diff --git a/.github/pull.yml b/.github/pull.yml new file mode 100644 index 000000000000..f8e565fb8de4 --- /dev/null +++ b/.github/pull.yml @@ -0,0 +1,8 @@ +version: "1" +rules: + - base: master + upstream: KelvinTegelaar:master + mergeMethod: merge + - base: dev + upstream: KelvinTegelaar:dev + mergeMethod: none diff --git a/.github/workflows/PR_Branch_Check.yml b/.github/workflows/PR_Branch_Check.yml new file mode 100644 index 000000000000..2fd5b8e65249 --- /dev/null +++ b/.github/workflows/PR_Branch_Check.yml @@ -0,0 +1,62 @@ +name: PR Branch Check + +on: + # Using pull_request_target instead of pull_request for secure handling of fork PRs + pull_request_target: + # Only run on these PR events + types: [opened, synchronize, reopened] + # Only check PRs targeting these branches + branches: + - main + - master + +permissions: + pull-requests: write + issues: write + +jobs: + check-branch: + runs-on: ubuntu-latest + steps: + - name: Check and Comment on PR + # Only process fork PRs with specific branch conditions + # Must be a fork AND (source is main/master OR target is main/master) + if: | + github.event.pull_request.head.repo.fork == true && + ((github.event.pull_request.head.ref == 'main' || github.event.pull_request.head.ref == 'master') || + (github.event.pull_request.base.ref == 'main' || github.event.pull_request.base.ref == 'master')) + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + let message = ''; + + message += '🔄 If you are attempting to update your CIPP repo please follow the instructions at: https://docs.cipp.app/setup/self-hosting-guide/updating '; + message += '\n\n'; + + // Check if PR is targeting main/master + if (context.payload.pull_request.base.ref === 'main' || context.payload.pull_request.base.ref === 'master') { + message += '⚠️ PRs cannot target the main branch directly. If you are attempting to contribute code please PR to the dev branch.\n\n'; + } + + // Check if PR is from a fork's main/master branch + if (context.payload.pull_request.head.repo.fork && + (context.payload.pull_request.head.ref === 'main' || context.payload.pull_request.head.ref === 'master')) { + message += '⚠️ This PR cannot be merged because it originates from your fork\'s main/master branch. If you are attempting to contribute code please PR from your dev branch or another non-main/master branch.\n\n'; + } + + message += '🔒 This PR will now be automatically closed due to the above violation(s).'; + + // Post the comment + await github.rest.issues.createComment({ + ...context.repo, + issue_number: context.issue.number, + body: message + }); + + // Close the PR + await github.rest.pulls.update({ + ...context.repo, + pull_number: context.issue.number, + state: 'closed' + }); diff --git a/.github/workflows/dev_api.yml b/.github/workflows/dev_api.yml new file mode 100644 index 000000000000..3d92bc00c7d3 --- /dev/null +++ b/.github/workflows/dev_api.yml @@ -0,0 +1,42 @@ +# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action +# More GitHub Actions for Azure: https://github.com/Azure/actions + +name: dev_api + +on: + push: + branches: + - dev + workflow_dispatch: + +env: + AZURE_FUNCTIONAPP_PACKAGE_PATH: "." # set this to the path to your web app project, defaults to the repository root + +jobs: + deploy: + permissions: + id-token: write #This is required for requesting the JWT + contents: read #This is required for actions/checkout + if: github.event.repository.fork == false && github.event_name == 'push' + runs-on: windows-latest + + steps: + - name: "Checkout GitHub Action" + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Login to Azure + uses: azure/login@v2 + with: + client-id: ${{ secrets.DEV_CLIENTID }} + tenant-id: ${{ secrets.DEV_TENANTID }} + subscription-id: ${{ secrets.DEV_SUBSCRIPTIONID }} + + - name: "Run Azure Functions Action" + uses: Azure/functions-action@v1 + id: fa + with: + app-name: "cippjta72" + slot-name: "Production" + package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} diff --git a/.github/workflows/publish_prerelease.yml b/.github/workflows/publish_prerelease.yml new file mode 100644 index 000000000000..f97a41057070 --- /dev/null +++ b/.github/workflows/publish_prerelease.yml @@ -0,0 +1,93 @@ +name: Generate Release Notes and Upload + +on: + push: + branches: + - pre-release + +permissions: + contents: write + +jobs: + release: + if: github.event.repository.fork == false && github.event_name == 'push' + name: Generate Release Notes and Upload to Azure + runs-on: ubuntu-latest + + steps: + # Checkout the repository + - name: Checkout Code + uses: actions/checkout@v3 + + # Read and Trim Version + - name: Read and Trim Version + id: get_version + run: | + if [ ! -f version_latest.txt ]; then + echo "Error: version_latest.txt not found!" + exit 1 + fi + VERSION=$(cat version_latest.txt | tr -d '[:space:]') + if [ -z "$VERSION" ]; then + echo "Error: version_latest.txt is empty after trimming!" + exit 1 + fi + echo "version=$VERSION" >> $GITHUB_OUTPUT + + # Exit if Tag Already Exists + - name: Check if Tag Exists + id: tag_check + run: | + git fetch --tags + if git rev-parse "refs/tags/${{ steps.get_version.outputs.version }}" >/dev/null 2>&1; then + echo "tag_exists=true" >> $GITHUB_ENV + echo "Tag ${{ steps.get_version.outputs.version }} already exists. Exiting workflow successfully." + else + echo "tag_exists=false" >> $GITHUB_ENV + fi + + # Generate Release Notes + - name: Generate Release Notes + id: changelog + if: env.tag_exists == 'false' + uses: mikepenz/release-changelog-builder-action@v5.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Create a new release tag + - name: Create GitHub Release + if: env.tag_exists == 'false' + uses: ncipollo/release-action@v1.14.0 + with: + tag: ${{ steps.get_version.outputs.version }} + name: "v${{ steps.get_version.outputs.version }}" + draft: false + prerelease: true + body: ${{ steps.changelog.outputs.changelog }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Create ZIP File in a New Source Directory + - name: Prepare and Zip Release Files + if: env.tag_exists == 'false' + run: | + mkdir -p src/releases + zip -r src/releases/release_${{ steps.get_version.outputs.version }}.zip . \ + --exclude "./src/releases/*" \ + --exclude ".*" \ + --exclude ".*/**" + zip -r src/releases/beta.zip . \ + --exclude "./src/releases/*" \ + --exclude ".*" \ + --exclude ".*/**" + + # Upload to Azure Blob Storage + - name: Azure Blob Upload with Destination folder defined + if: env.tag_exists == 'false' + uses: LanceMcCarthy/Action-AzureBlobUpload@v3.3.0 + with: + connection_string: ${{ secrets.AZURE_CONNECTION_STRING }} + container_name: cipp-api + source_folder: src/releases/ + destination_folder: / + delete_if_exists: true \ No newline at end of file diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml new file mode 100644 index 000000000000..81acfa86790f --- /dev/null +++ b/.github/workflows/publish_release.yml @@ -0,0 +1,96 @@ +name: Generate Release Notes and Upload Production to Azure + +on: + push: + branches: + - master + +permissions: + contents: write + +jobs: + release: + if: github.event.repository.fork == false && github.event_name == 'push' + name: Generate Release Notes and Upload to Azure + runs-on: ubuntu-latest + + steps: + # Checkout the repository + - name: Checkout Code + uses: actions/checkout@v4 + with: + persist-credentials: false + + # Read and Trim Version + - name: Read and Trim Version + id: get_version + run: | + if [ ! -f version_latest.txt ]; then + echo "Error: version_latest.txt not found!" + exit 1 + fi + VERSION=$(cat version_latest.txt | tr -d '[:space:]') + if [ -z "$VERSION" ]; then + echo "Error: version_latest.txt is empty after trimming!" + exit 1 + fi + echo "version=$VERSION" >> $GITHUB_OUTPUT + + # Exit if Tag Already Exists + - name: Check if Tag Exists + id: tag_check + run: | + git fetch --tags + if git rev-parse "refs/tags/${{ steps.get_version.outputs.version }}" >/dev/null 2>&1; then + echo "tag_exists=true" >> $GITHUB_ENV + echo "Tag ${{ steps.get_version.outputs.version }} already exists. Exiting workflow successfully." + else + echo "tag_exists=false" >> $GITHUB_ENV + fi + + # Generate Release Notes + - name: Generate Release Notes + id: changelog + if: env.tag_exists == 'false' + uses: mikepenz/release-changelog-builder-action@v5.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Create a new release tag + - name: Create GitHub Release + if: env.tag_exists == 'false' + uses: ncipollo/release-action@v1.14.0 + with: + tag: ${{ steps.get_version.outputs.version }} + name: "v${{ steps.get_version.outputs.version }}" + draft: false + prerelease: false + makeLatest: true + body: ${{ steps.changelog.outputs.changelog }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Create ZIP File in a New Source Directory + - name: Prepare and Zip Release Files + if: env.tag_exists == 'false' + run: | + mkdir -p src/releases + zip -r src/releases/release_${{ steps.get_version.outputs.version }}.zip . \ + --exclude "./src/releases/*" \ + --exclude ".*" \ + --exclude ".*/**" + zip -r src/releases/latest.zip . \ + --exclude "./src/releases/*" \ + --exclude ".*" \ + --exclude ".*/**" + + # Upload to Azure Blob Storage + - name: Azure Blob Upload with Destination folder defined + if: env.tag_exists == 'false' + uses: LanceMcCarthy/Action-AzureBlobUpload@v3.3.0 + with: + connection_string: ${{ secrets.AZURE_CONNECTION_STRING }} + container_name: cipp-api + source_folder: src/releases/ + destination_folder: / + delete_if_exists: true diff --git a/.github/workflows/upload_dev.yml b/.github/workflows/upload_dev.yml new file mode 100644 index 000000000000..37ceb8fcd3fb --- /dev/null +++ b/.github/workflows/upload_dev.yml @@ -0,0 +1,38 @@ +name: Upload Dev zip + +on: + push: + branches: + - dev + +jobs: + release: + if: github.event.repository.fork == false && github.event_name == 'push' + name: Upload to Azure + runs-on: ubuntu-latest + + steps: + # Checkout the repository + - name: Checkout Code + uses: actions/checkout@v4 + with: + persist-credentials: false + + # Create ZIP File in a New Source Directory + - name: Prepare and Zip Release Files + run: | + mkdir -p src/releases + zip -r src/releases/dev.zip . \ + --exclude "./src/releases/*" \ + --exclude ".*" \ + --exclude ".*/**" + + # Upload to Azure Blob Storage + - name: Azure Blob Upload with Destination folder defined + uses: LanceMcCarthy/Action-AzureBlobUpload@v3.3.0 + with: + connection_string: ${{ secrets.AZURE_CONNECTION_STRING }} + container_name: cipp-api + source_folder: src/releases/ + destination_folder: / + delete_if_exists: true diff --git a/.gitignore b/.gitignore index e052ecc4c278..ec6b5ec8902e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,11 @@ chocoapps.cache Cache_* Logs ExcludedTenants -Config SendNotifications/config.json +.env +Output/ +node_modules/.yarn-integrity +yarn.lock + +# Cursor IDE +.cursor/rules diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000000..46245188b38e --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "editorconfig.editorconfig", + "streetsidesoftware.code-spell-checker" + ] +} diff --git a/AddAPDevice/function.json b/AddAPDevice/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddAPDevice/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddAPDevice/run.ps1 b/AddAPDevice/run.ps1 deleted file mode 100644 index 0bef41512b60..000000000000 --- a/AddAPDevice/run.ps1 +++ /dev/null @@ -1,41 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -$TenantFilter = (Get-Content Tenants.cache.json | ConvertFrom-Json | Where-Object { $_.defaultdomainname -eq $Request.body.TenantFilter }).customerid -$GroupName = if ($Request.body.Groupname) { $Request.body.Groupname } else { New-Guid } -$rawDevices = $request.body.autopilotData -$Devices = ConvertTo-Json @($rawDevices) -Write-Host $Devices -$Result = try { - $CurrentStatus = (New-GraphgetRequest -uri "https://api.partnercenter.microsoft.com/v1/customers/$tenantfilter/DeviceBatches" -scope 'https://api.partnercenter.microsoft.com/user_impersonation') - if ($groupname -in $CurrentStatus.items.id) { throw "This device batch name already exists. Please try with another name." } - $body = '{"batchId":"' + $($GroupName) + '","devices":' + $Devices + '}' - $GraphRequest = (New-GraphPostRequest -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -body $body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') - Start-Sleep 5 - $NewStatus = New-GraphgetRequest -uri "https://api.partnercenter.microsoft.com/v1/customers/$tenantfilter/DeviceBatches" -scope 'https://api.partnercenter.microsoft.com/user_impersonation' - if ($Newstatus.totalcount -eq $CurrentStatus.totalcount) { throw "We could not find the new autopilot device. Please check if your input is correct." } - Write-Host $CurrentStatus.Items - Log-Request -user $request.headers.'x-ms-client-principal' -apiname $APIName -tenant $($Request.body.TenantFilter) -message "Created Autopilot devices group. Group ID is $GroupName" -Sev "Info" - "Created Autopilot devices group for $($Request.body.TenantFilter). Group ID is $GroupName" -} -catch { - "$($Request.body.TenantFilter): Failed to create autopilot devices. $($_.Exception.Message)" - Log-Request -user $request.headers.'x-ms-client-principal' -apiname $APIName -tenant $($Request.body.TenantFilter) -message "Failed to create autopilot devices. $($_.Exception.Message)" -Sev "Error" -} - -$body = [pscustomobject]@{"Results" = $Result } -Write-Host $body -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - - }) \ No newline at end of file diff --git a/AddAlert/function.json b/AddAlert/function.json deleted file mode 100644 index 3bd167116eae..000000000000 --- a/AddAlert/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "direction": "in", - "type": "durableClient" - } - ] -} \ No newline at end of file diff --git a/AddAlert/run.ps1 b/AddAlert/run.ps1 deleted file mode 100644 index f9783044715b..000000000000 --- a/AddAlert/run.ps1 +++ /dev/null @@ -1,43 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$Tenants = ($Request.body | Select-Object Select_*).psobject.properties.value -$Results = foreach ($Tenant in $tenants) { - try { - $CompleteObject = [PSCustomObject]@{ - tenant = $tenant - tenantid = (get-tenants | Where-Object -Property defaultDomainName -EQ $Tenant).Customerid - AdminPassword = [bool]$Request.body.AdminPassword - DefenderMalware = [bool]$Request.body.DefenderMalware - DefenderStatus = [bool]$Request.body.DefenderStatus - MFAAdmins = [bool]$Request.body.MFAAdmins - MFAAlertUsers = [bool]$Request.body.MFAAlertUsers - NewGA = [bool]$Request.body.NewGA - NewRole = [bool]$Request.body.NewRole - QuotaUsed = [bool]$Request.body.QuotaUsed - UnusedLicenses = [bool]$Request.body.UnusedLicenses - Type = "Alert" - - } | ConvertTo-Json - $JSONFile = New-Item -Path ".\Cache_Scheduler\$tenant.alert.json" -Value $CompleteObject -Force -ErrorAction Stop - "Succesfully added Alert for $($Tenant) to queue." - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Succesfully added Alert for $($Tenant) to queue." -Sev "Info" - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Failed to add Alert for for $($Tenant) to queue" -Sev "Error" - "Failed to add Alert for for $($Tenant) to queue" - } -} - -$body = [pscustomobject]@{"Results" = @($results) } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/AddAutopilotConfig/function.json b/AddAutopilotConfig/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddAutopilotConfig/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddAutopilotConfig/run.ps1 b/AddAutopilotConfig/run.ps1 deleted file mode 100644 index 9de0108bbcd7..000000000000 --- a/AddAutopilotConfig/run.ps1 +++ /dev/null @@ -1,70 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Input bindings are passed in via param block. -$user = $request.headers.'x-ms-client-principal' -$Tenants = ($Request.body | Select-Object Select_*).psobject.properties.value -$displayname = $request.body.Displayname -$description = $request.body.Description -$AssignTo = if ($request.body.Assignto -ne "on") { $request.body.Assignto } -$Profbod = $Request.body -$usertype = if ($Profbod.NotLocalAdmin -eq "true") { "standard" } else { "administrator" } -$DeploymentMode = if ($profbod.DeploymentMode -eq "true") { "shared" } else { "singleUser" } -$results = foreach ($Tenant in $tenants) { - try { - $ObjBody = [pscustomobject]@{ - "@odata.type" = "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile" - "displayName" = "$($displayname)" - "description" = "$($description)" - "deviceNameTemplate" = "$($profbod.DeviceNameTemplate)" - "language" = "os-default" - "enableWhiteGlove" = $([bool]($profbod.allowWhiteGlove)) - "deviceType" = "windowsPc" - "extractHardwareHash" = $([bool]($profbod.CollectHash)) - "roleScopeTagIds" = @() - "hybridAzureADJoinSkipConnectivityCheck" = $false - "outOfBoxExperienceSettings" = @{ - "deviceUsageType" = "$DeploymentMode" - "hideEscapeLink" = $([bool]($Profbod.hideChangeAccount)) - "hidePrivacySettings" = $([bool]($Profbod.hidePrivacy)) - "hideEULA" = $([bool]($Profbod.hideTerms)) - "userType" = "$usertype" - "skipKeyboardSelectionPage" = $([bool]($Profbod.Autokeyboard)) - } - } - $Body = ConvertTo-Json -InputObject $ObjBody - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles" -body $body -tenantid $Tenant - Log-Request -user $request.headers.'x-ms-client-principal' -apiname $APIName -tenant $($tenant) -message "Added Autopilot profile $($Displayname)" -Sev "Info" - if ($AssignTo) { - $AssignBody = '{"target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}}' - $assign = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($GraphRequest.id)/assignments" -tenantid $Tenant -type POST -body $AssignBody - Log-Request -user $request.headers.'x-ms-client-principal' -apiname $APIName -tenant $($tenant) -message "Assigned autopilot profile $($Displayname) to $AssignTo" -Sev "Info" - } - "Succesfully added profile for $($Tenant)" - } - catch { - "Failed to add profile for $($Tenant): $($_.Exception.Message)" - Log-Request -user $request.headers.'x-ms-client-principal' -apiname $APIName -tenant $($tenant) -message "Failed adding Autopilot Profile $($Displayname). Error: $($_.Exception.Message)" -Sev "Error" - continue - } - -} - -$body = [pscustomobject]@{"Results" = $results } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) - - diff --git a/AddChocoApp/Choco.App.xml b/AddChocoApp/Choco.App.xml index 705db4efcce7..40094d0f0d7b 100644 --- a/AddChocoApp/Choco.App.xml +++ b/AddChocoApp/Choco.App.xml @@ -1,15 +1,15 @@ - Install.ps1 - 28057 + install.ps1 + 1154 IntunePackage.intunewin - Install.ps1 + install.ps1 - e3r9U7dd9BuuqlIXYtCN610XpMgtEhkwz9PQermN8vU= - JUPr6o3kWkOgJoc2WS4gLGc1eDoUwCU3gdPsIdBME2g= - pPF597RygwVZM/gs4Oy+6w== - cC3SI059H8YWaD45oy5otYMh8dLbvTQ2N7KP6ssuS+0= + v8i9okyqxp8xlw3/r2QXMNnXcuGwrBkD54QQ7F/UJbc= + XjT9kWc7gQRKRdEQ/PA/lbQDDH8kFjnuPFILxAldRTI= + iyAbM3kIYqA4AlWP89S5oA== + w+2KMctRWmJzYjKcMTAKCLz15K559SgZ3pnQuQD3P/I= ProfileVersion1 - wI1kN4fp2F2OVJT6wz1fjCJ8ulkhvxcN7c1a6+kQJu8= + tyjBbJZ+Zj9AqD7UjEfQfe/HojN/q1+zFPidXWbiVuE= SHA256 \ No newline at end of file diff --git a/AddChocoApp/Choco.app.json b/AddChocoApp/Choco.app.json index b7229ef3ccf8..7ef3f82d640f 100644 --- a/AddChocoApp/Choco.app.json +++ b/AddChocoApp/Choco.app.json @@ -1,5 +1,4 @@ { - "displayName": "", "installCommandLine": "", "uninstallCommandLine": "", @@ -11,7 +10,7 @@ "fileName": "IntunePackage.intunewin", "@odata.type": "#microsoft.graph.win32LobApp", "applicableArchitectures": "x86, x64", - + "installExperience": { "runAsAccount": "user", "deviceRestartBehavior": "allow", @@ -19,39 +18,40 @@ }, "detectionRules": [ { - "@odata.type": "#microsoft.graph.win32LobAppFileSystemDetection", - "path": "%programfiles%\\7-zip", - "fileOrFolderName": "7z.exe", - "check32BitOn64System": false, - "detectionType": "exists" } + "@odata.type": "#microsoft.graph.win32LobAppFileSystemDetection", + "path": "%programfiles%\\7-zip", + "fileOrFolderName": "7z.exe", + "check32BitOn64System": false, + "detectionType": "exists" + } + ], + "returncode": [ + { + "returnCode": 0, + "type": "success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1707, + "type": "Success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1641, + "type": "hardReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1618, + "type": "retry", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 3010, + "type": "softReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + } ], - "returncode": [ - { - "returnCode": 0, - "type": "success", - "@odata.type": "#microsoft.graph.win32LobAppReturnCode" - }, - { - "returnCode": 1707, - "type": "Success", - "@odata.type": "#microsoft.graph.win32LobAppReturnCode" - }, - { - "returnCode": 1641, - "type": "hardReboot", - "@odata.type": "#microsoft.graph.win32LobAppReturnCode" - }, - { - "returnCode": 1618, - "type": "retry", - "@odata.type": "#microsoft.graph.win32LobAppReturnCode" - }, - { - "returnCode": 3010, - "type": "softReboot", - "@odata.type": "#microsoft.graph.win32LobAppReturnCode" - } - ], "minimumNumberOfProcessors": "1", "minimumFreeDiskSpaceInMB": "8", "minimumCpuSpeedInMHz": "4", @@ -60,7 +60,6 @@ "v10_1607": true }, "notes": "CIPP Uploaded application", - "minimumMemoryInMB": "1" - - -} \ No newline at end of file + "minimumMemoryInMB": "1", + "setupFilePath": "install.ps1" +} diff --git a/AddChocoApp/IntunePackage.intunewin b/AddChocoApp/IntunePackage.intunewin index e10df19a7670..67b9f50124d0 100644 Binary files a/AddChocoApp/IntunePackage.intunewin and b/AddChocoApp/IntunePackage.intunewin differ diff --git a/AddChocoApp/IntunePackage/Install.ps1 b/AddChocoApp/IntunePackage/Install.ps1 new file mode 100644 index 000000000000..bb16f3504e14 --- /dev/null +++ b/AddChocoApp/IntunePackage/Install.ps1 @@ -0,0 +1,75 @@ +[CmdletBinding()] +param ( + [Parameter()] + [string] + $Packagename, + + [Parameter()] + [switch] + $InstallChoco, + + [Parameter()] + [string] + $CustomRepo, + + [Parameter()] + [string] + $CustomArguments, + + [Parameter()] + [switch] + $Trace +) + +try { + if ($Trace) { Start-Transcript -Path (Join-Path $env:windir "\temp\choco-$Packagename-trace.log") } + $chocoPath = "$($env:SystemDrive)\ProgramData\chocolatey\bin\choco.exe" + + if ($InstallChoco) { + if (-not (Test-Path $chocoPath)) { + try { + Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) + $chocoPath = "$($env:SystemDrive)\ProgramData\chocolatey\bin\choco.exe" + } + catch { + Write-Host "InstallChoco Error: $($_.Exception.Message)" + } + } + } + + try { + $localprograms = & "$chocoPath" list --localonly + $CustomRepoString = if ($CustomRepo) { "--source $customrepo" } else { $null } + $CustomArgsArray = if ($CustomArguments) { $CustomArguments -split '\s+' } else { @() } + + if ($localprograms -like "*$Packagename*" ) { + Write-Host "Upgrading $packagename" + if ($CustomArgsArray.Count -gt 0) { + & "$chocoPath" upgrade $Packagename $CustomRepoString $CustomArgsArray + } else { + & "$chocoPath" upgrade $Packagename $CustomRepoString + } + } + else { + Write-Host "Installing $packagename" + if ($CustomArgsArray.Count -gt 0) { + & "$chocoPath" install $Packagename -y $CustomRepoString $CustomArgsArray + } else { + & "$chocoPath" install $Packagename -y $CustomRepoString + } + } + Write-Host 'Completed.' + } + catch { + Write-Host "Install/upgrade error: $($_.Exception.Message)" + } + +} +catch { + Write-Host "Error encountered: $($_.Exception.Message)" +} +finally { + if ($Trace) { Stop-Transcript } +} + +exit $? diff --git a/AddChocoApp/IntunePackage/Uninstall.ps1 b/AddChocoApp/IntunePackage/Uninstall.ps1 new file mode 100644 index 000000000000..9d1512fabcfc --- /dev/null +++ b/AddChocoApp/IntunePackage/Uninstall.ps1 @@ -0,0 +1,9 @@ +[CmdletBinding()] +param ( + [Parameter()] + [string] + $Packagename +) +$chocoPath = "$($env:SystemDrive)\ProgramData\chocolatey\bin\choco.exe" +& $Chocopath uninstall $Packagename -y + diff --git a/AddChocoApp/function.json b/AddChocoApp/function.json deleted file mode 100644 index 3bd167116eae..000000000000 --- a/AddChocoApp/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "direction": "in", - "type": "durableClient" - } - ] -} \ No newline at end of file diff --git a/AddChocoApp/run.ps1 b/AddChocoApp/run.ps1 deleted file mode 100644 index 4fa5123812d2..000000000000 --- a/AddChocoApp/run.ps1 +++ /dev/null @@ -1,51 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -Write-Host "PowerShell HTTP trigger function processed a request." -$ChocoApp = $request.body -$intuneBody = Get-Content "AddChocoApp\choco.app.json" | ConvertFrom-Json -$assignTo = $Request.body.AssignTo -$intuneBody.description = $ChocoApp.description -$intuneBody.displayName = $chocoapp.ApplicationName -$intuneBody.installExperience.runAsAccount = if ($ChocoApp.InstallAsSystem) { "system" } else { "user" } -$intuneBody.installExperience.deviceRestartBehavior = if ($ChocoApp.DisableRestart) { "suppress" } else { "allow" } -$intuneBody.installCommandLine = "powershell.exe -executionpolicy bypass .\Install.ps1 -InstallChoco -Packagename $($chocoapp.PackageName)" -if ($ChocoApp.customrepo) { - $intuneBody.installCommandLine = $intuneBody.installCommandLine + " -CustomRepo $($chocoapp.CustomRepo)" -} -$intuneBody.UninstallCommandLine = "powershell.exe -executionpolicy bypass .\Uninstall.ps1 -Packagename $($chocoapp.PackageName)" -$intunebody.detectionRules[0].path = "$($ENV:SystemDrive)\programdata\chocolatey\lib" -$intunebody.detectionRules[0].fileOrFolderName = "$($chocoapp.PackageName)" - -$Tenants = ($Request.body | Select-Object Select_*).psobject.properties.value -$Results = foreach ($Tenant in $tenants) { - try { - $CompleteObject = [PSCustomObject]@{ - tenant = $tenant - Applicationname = $ChocoApp.ApplicationName - assignTo = $assignTo - IntuneBody = $intunebody - } | ConvertTo-Json -Depth 15 - $JSONFile = New-Item -Path ".\ChocoApps.Cache\$(New-Guid)" -Value $CompleteObject -Force -ErrorAction Stop - "Succesfully added Choco App for $($Tenant) to queue." - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Chocolatey Application $($intunebody.Displayname) queued to add" -Sev "Info" - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Failed to add Chocolatey Application $($intunebody.Displayname) to queue" -Sev "Error" - "Failed added Choco App for $($Tenant) to queue" - } -} - -$body = [pscustomobject]@{"Results" = $results } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/AddChocoApp_OrchestrationStarter/function.json b/AddChocoApp_OrchestrationStarter/function.json deleted file mode 100644 index 14c44f4f0217..000000000000 --- a/AddChocoApp_OrchestrationStarter/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "name": "Request", - "type": "httpTrigger", - "direction": "in", - "methods": [ - "post", - "get" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} diff --git a/AddChocoApp_OrchestrationStarter/run.ps1 b/AddChocoApp_OrchestrationStarter/run.ps1 deleted file mode 100644 index d0674a094599..000000000000 --- a/AddChocoApp_OrchestrationStarter/run.ps1 +++ /dev/null @@ -1,22 +0,0 @@ -using namespace System.Net - -param($Request, $TriggerMetadata) -$CurrentlyRunning = Get-Item "ChocoApps.Cache\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-24) -if ($CurrentlyRunning) { - $Results = [pscustomobject]@{"Results" = "Already running. Please wait for the current instance to finish" } - Log-request -API "ChocoApps" -message "Attempted to start upload but an instance was already running." -sev Info -} -else { - $InstanceId = Start-NewOrchestration -FunctionName 'Applications_Orchestrator' - Write-Host "Started orchestration with ID = '$InstanceId'" - $Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId - Log-request -API "ChocoApps" -message "Started uploading applications to tenants" -sev Info - $Results = [pscustomobject]@{"Results" = "Started application queue" } -} -Write-Host ($Orchestrator | ConvertTo-Json) - - -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $results - }) \ No newline at end of file diff --git a/AddChocoApp_OrchestrationStarterTimer/function.json b/AddChocoApp_OrchestrationStarterTimer/function.json deleted file mode 100644 index d96b29b5a0ed..000000000000 --- a/AddChocoApp_OrchestrationStarterTimer/function.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "bindings": [ - { - "name": "Timer", - "type": "timerTrigger", - "direction": "in", - "schedule": "0 0 12 * * *" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/AddChocoApp_OrchestrationStarterTimer/run.ps1 b/AddChocoApp_OrchestrationStarterTimer/run.ps1 deleted file mode 100644 index 650c1aa68df3..000000000000 --- a/AddChocoApp_OrchestrationStarterTimer/run.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -param($Timer) - -$CurrentlyRunning = Get-Item "ChocoApps.Cache\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-24) -if ($CurrentlyRunning) { - $Results = [pscustomobject]@{"Results" = "Already running. Please wait for the current instance to finish" } - Log-request -API "ChocoApps" -message "Attempted to start upload but an instance was already running." -sev Info -} -else { - $InstanceId = Start-NewOrchestration -FunctionName 'Applications_Orchestrator' - Write-Host "Started orchestration with ID = '$InstanceId'" - $Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId - Log-request -API "ChocoApps" -message "Started uploading applications to tenants" -sev Info - $Results = [pscustomobject]@{"Results" = "Started running analysis" } -} -Write-Host ($Orchestrator | ConvertTo-Json) diff --git a/AddEnrollment/function.json b/AddEnrollment/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddEnrollment/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddEnrollment/run.ps1 b/AddEnrollment/run.ps1 deleted file mode 100644 index 066dae2ac42f..000000000000 --- a/AddEnrollment/run.ps1 +++ /dev/null @@ -1,57 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Input bindings are passed in via param block. -$Tenants = ($Request.body | Select-Object Select_*).psobject.properties.value -$Profbod = $Request.body -$results = foreach ($Tenant in $tenants) { - try { - $ObjBody = [pscustomobject]@{ - "@odata.type" = "#microsoft.graph.windows10EnrollmentCompletionPageConfiguration" - "id" = "DefaultWindows10EnrollmentCompletionPageConfiguration" - "displayName" = "All users and all devices" - "description" = "This is the default enrollment status screen configuration applied with the lowest priority to all users and all devices regardless of group membership." - "showInstallationProgress" = [bool]$Profbod.ShowProgress - "blockDeviceSetupRetryByUser" = [bool]$Profbod.blockDevice - "allowDeviceResetOnInstallFailure" = [bool]$Profbod.AllowReset - "allowLogCollectionOnInstallFailure" = [bool]$Profbod.EnableLog - "customErrorMessage" = $Profbod.ErrorMessage - "installProgressTimeoutInMinutes" = $Profbod.TimeOutInMinutes - "allowDeviceUseOnInstallFailure" = [bool]$Profbod.AllowFail - "selectedMobileAppIds" = @() - "trackInstallProgressForAutopilotOnly" = [bool]$Profbod.OBEEOnly - "disableUserStatusTrackingAfterFirstUser" = $true - "roleScopeTagIds" = @() - } - $Body = ConvertTo-Json -InputObject $ObjBody - Write-Host $body - $ExistingStatusPage = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations" -tenantid $Tenant) | Where-Object { $_.id -like "*DefaultWindows10EnrollmentCompletionPageConfiguration" } - $GraphRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations/$($ExistingStatusPage.ID)" -body $body -Type PATCH -tenantid $tenant - "Succesfully changed default enrollment status page for $($Tenant)" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Added Autopilot Enrollment Status Page $($Displayname)" -Sev "Info" - - } - catch { - "Failed to change default enrollment status page for $($Tenant): $($_.Exception.Message)" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Failed adding Autopilot Enrollment Status Page $($Displayname). Error: $($_.Exception.Message)" -Sev "Error" - continue - } - -} - -$body = [pscustomobject]@{"Results" = $results } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/AddGroup/function.json b/AddGroup/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddGroup/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddGroup/run.ps1 b/AddGroup/run.ps1 deleted file mode 100644 index 5bf77bf84919..000000000000 --- a/AddGroup/run.ps1 +++ /dev/null @@ -1,40 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$groupobj = $Request.body -$user = $request.headers.'x-ms-client-principal' - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -try { - $email = "$($groupobj.username)@$($groupobj.domain)" - $BodyToship = [pscustomobject] @{ - "displayName" = $groupobj.Displayname - "description" = $groupobj.Description - "mailNickname" = $groupobj.username - mailEnabled = [bool]$false - securityEnabled = [bool]$true - isAssignableToRole = [bool]($groupobj.isAssignableToRole) - - } | ConvertTo-Json - $GraphRequest = New-GraphPostRequest -AsApp $true -uri "https://graph.microsoft.com/beta/groups" -tenantid $groupobj.tenantid -type POST -body $BodyToship -verbose - $body = [pscustomobject]@{"Results" = "Succesfully created group. $($_.Exception.Message)" } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($groupobj.tenantid) -message "Created group $($groupobj.displayname) with id $($GraphRequest.id) for " -Sev "Info" - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($groupobj.tenantid) -message "Group creation API failed. $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to create group. $($_.Exception.Message)" } - -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) diff --git a/AddIntuneTemplate/function.json b/AddIntuneTemplate/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddIntuneTemplate/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddIntuneTemplate/run.ps1 b/AddIntuneTemplate/run.ps1 deleted file mode 100644 index e675011390d7..000000000000 --- a/AddIntuneTemplate/run.ps1 +++ /dev/null @@ -1,40 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - - -try { - if (!$Request.body.displayname) { throw "You must enter a displayname" } - if (!$Request.body.rawjson) { throw "You must fill in the RAW json" } - if ($null -eq ($Request.body.Rawjson | ConvertFrom-Json)) { throw "the JSON is invalid" } - $GUID = New-Guid - - $object = [PSCustomObject]@{ - Displayname = $request.body.displayname - Description = $request.body.description - RAWJson = $request.body.RawJSON - Type = $request.body.TemplateType - GUID = $GUID - } | ConvertTo-Json - New-Item Config -ItemType Directory -ErrorAction SilentlyContinue - Set-Content "Config\$($GUID).IntuneTemplate.json" -Value $Object -Force - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Created intune policy template named $($Request.body.displayname) with GUID $GUID" -Sev "Debug" - - $body = [pscustomobject]@{"Results" = "Successfully added template" } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Intune Template Deployment failed: $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Intune Template Deployment failed: $($_.Exception.Message)" } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/AddMSPApp/Immybot.app.json b/AddMSPApp/Immybot.app.json new file mode 100644 index 000000000000..f7cd10d76101 --- /dev/null +++ b/AddMSPApp/Immybot.app.json @@ -0,0 +1,65 @@ +{ + "displayName": "", + "installCommandLine": "", + "uninstallCommandLine": "", + "description": " ", + "developer": " ", + "owner": " ", + "informationUrl": " ", + "privacyInformationUrl": " ", + "fileName": "immybot.intunewin", + "@odata.type": "#microsoft.graph.win32LobApp", + "applicableArchitectures": "x86, x64", + + "installExperience": { + "runAsAccount": "system", + "deviceRestartBehavior": "suppress", + "@odata.type": "microsoft.graph.win32LobAppInstallExperience" + }, + "detectionRules": [ + { + "@odata.type": "#microsoft.graph.win32LobAppFileSystemDetection", + "path": "%ProgramData%\\Immybot\\Bin", + "fileOrFolderName": "Immybot.exe", + "check32BitOn64System": false, + "detectionType": "exists" + } + ], + "returncode": [ + { + "returnCode": 0, + "type": "success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1707, + "type": "Success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1641, + "type": "hardReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1618, + "type": "retry", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 3010, + "type": "softReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + } + ], + "minimumNumberOfProcessors": "1", + "minimumFreeDiskSpaceInMB": "8", + "minimumCpuSpeedInMHz": "4", + "minimumSupportedOperatingSystem": { + "@odata.type": "microsoft.graph.windowsMinimumOperatingSystem", + "v10_1607": true + }, + "notes": "CIPP Uploaded application", + "minimumMemoryInMB": "1", + "setupFilePath": "install.ps1" +} diff --git a/AddMSPApp/automate.app.json b/AddMSPApp/automate.app.json new file mode 100644 index 000000000000..0c3fa83967b8 --- /dev/null +++ b/AddMSPApp/automate.app.json @@ -0,0 +1,64 @@ +{ + "displayName": "", + "installCommandLine": "", + "uninstallCommandLine": "", + "description": " ", + "developer": " ", + "owner": " ", + "informationUrl": " ", + "privacyInformationUrl": " ", + "fileName": "automate.intunewin", + "@odata.type": "#microsoft.graph.win32LobApp", + "applicableArchitectures": "x86, x64", + + "installExperience": { + "runAsAccount": "system", + "deviceRestartBehavior": "suppress", + "@odata.type": "microsoft.graph.win32LobAppInstallExperience" + }, + "detectionRules": [ + { + "@odata.type": "#microsoft.graph.win32LobAppPowerShellScriptDetection", + "enforceSignatureCheck": false, + "runAs32Bit": false, + "scriptContent": "" + } + ], + "returncode": [ + { + "returnCode": 0, + "type": "success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1707, + "type": "Success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1641, + "type": "hardReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1618, + "type": "retry", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 3010, + "type": "softReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + } + ], + "minimumNumberOfProcessors": "1", + "minimumFreeDiskSpaceInMB": "8", + "minimumCpuSpeedInMHz": "4", + "minimumSupportedOperatingSystem": { + "@odata.type": "microsoft.graph.windowsMinimumOperatingSystem", + "v10_1607": true + }, + "notes": "CIPP Uploaded application", + "minimumMemoryInMB": "1", + "setupFilePath": "install.ps1" +} diff --git a/AddMSPApp/automate.app.xml b/AddMSPApp/automate.app.xml new file mode 100644 index 000000000000..8f1a9b75d2a2 --- /dev/null +++ b/AddMSPApp/automate.app.xml @@ -0,0 +1,16 @@ + + install.ps1 + 2117 + automate.intunewin + install.ps1 + + TL5w2kSbhW0+Vb/ngucj1fIa7YfAnFG/d+U3o/qGG24= + NGPnJKKQIPM4yD4dCJ0GVCF0pqFsLX2TCb040bjLBBg= + QGvxYMYrgYovA6uo9XQ60w== + Q8PF4sGPbuxDyoQpmJUGVLvZw9hGhOBX0IhQNeeQEHk= + ProfileVersion1 + 49a2kb03OrNyDt0eZHSpSARq9HzvQL0IrBkcPffwC4M= + SHA256 + + \ No newline at end of file diff --git a/AddMSPApp/automate.detection.ps1 b/AddMSPApp/automate.detection.ps1 new file mode 100644 index 000000000000..be2de760777f --- /dev/null +++ b/AddMSPApp/automate.detection.ps1 @@ -0,0 +1,29 @@ +$ServerAddress = '##SERVER##' +if (Get-Module -ListAvailable -Name ConnectWiseAutomateAgent) { + Import-Module ConnectWiseAutomateAgent +} +else { + Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force + Install-Module -Name PowerShellGet -Force -AllowClobber + Update-Module -Name PowerShellGet + Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted + Install-Module ConnectWiseAutomateAgent -MinimumVersion 0.1.2.0 -Confirm:$false -Force +} + +Invoke-CWAACommand -Command 'Send Status' +Start-Sleep -Seconds 20 + +$AgentInfo = Get-CWAAInfo +$ServerPassword = ConvertFrom-CWAASecurity $AgentInfo.ServerPassword +$LastContact = try { Get-Date $AgentInfo.LastSuccessStatus } catch { $null } + + +if ($AgentInfo.ID -gt 0 -and $LastContact -gt (Get-Date).AddDays(-30) -and $AgentInfo.Server -contains $ServerAddress -and $ServerPassword -ne 'Enter the server password here.') { + Write-Output 'SUCCESS: Agent is healthy' + exit 0 +} +else { + Write-Output 'ERROR: Agent is not healthy' + Write-Output ($AgentInfo | Select-Object ID, LocationID, LastSuccessStatus, Server | ConvertTo-Json) + exit 1 +} \ No newline at end of file diff --git a/AddMSPApp/automate.intunewin b/AddMSPApp/automate.intunewin new file mode 100644 index 000000000000..62ef0e225963 Binary files /dev/null and b/AddMSPApp/automate.intunewin differ diff --git a/AddMSPApp/cwcommand.app.json b/AddMSPApp/cwcommand.app.json new file mode 100644 index 000000000000..2d032177b625 --- /dev/null +++ b/AddMSPApp/cwcommand.app.json @@ -0,0 +1,65 @@ +{ + "displayName": "", + "installCommandLine": "", + "uninstallCommandLine": "", + "description": " ", + "developer": " ", + "owner": " ", + "informationUrl": " ", + "privacyInformationUrl": " ", + "fileName": "cwcommand.intunewin", + "@odata.type": "#microsoft.graph.win32LobApp", + "applicableArchitectures": "x86, x64", + + "installExperience": { + "runAsAccount": "system", + "deviceRestartBehavior": "suppress", + "@odata.type": "microsoft.graph.win32LobAppInstallExperience" + }, + "detectionRules": [ + { + "@odata.type": "#microsoft.graph.win32LobAppFileSystemDetection", + "path": "%ProgramFiles(x86)%\\ITSPlatform\\agentcore\\", + "fileOrFolderName": "platform-agent-core.exe", + "check32BitOn64System": false, + "detectionType": "exists" + } + ], + "returncode": [ + { + "returnCode": 0, + "type": "success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1707, + "type": "Success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1641, + "type": "hardReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1618, + "type": "retry", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 3010, + "type": "softReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + } + ], + "minimumNumberOfProcessors": "1", + "minimumFreeDiskSpaceInMB": "8", + "minimumCpuSpeedInMHz": "4", + "minimumSupportedOperatingSystem": { + "@odata.type": "microsoft.graph.windowsMinimumOperatingSystem", + "v10_1607": true + }, + "notes": "CIPP Uploaded application", + "minimumMemoryInMB": "1", + "setupFilePath": "install.ps1" +} diff --git a/AddMSPApp/cwcommand.app.xml b/AddMSPApp/cwcommand.app.xml new file mode 100644 index 000000000000..cc23edaad6fa --- /dev/null +++ b/AddMSPApp/cwcommand.app.xml @@ -0,0 +1,16 @@ + + install.ps1 + 2717 + cwcommand.intunewin + install.ps1 + + 6bilNd8M34xxoOl/marQi04r0PjYRD0YUuVf5hR/cVY= + QIeCE2WnKhg/yyyN2Vd7WBqy/9Vo22oOY+jN+o7NsM8= + fPjQqWF6INy3aAXKeGIlig== + qWx8/p2CoO2vuP/Dkr7KJw7JoxhmcA4XSj2ictbcC7M= + ProfileVersion1 + fslGge4BZ0F//6xgGCNIIVY5VPr/B2Ms1sGI7RiA9Bo= + SHA256 + + \ No newline at end of file diff --git a/AddMSPApp/cwcommand.intunewin b/AddMSPApp/cwcommand.intunewin new file mode 100644 index 000000000000..3f9387259708 Binary files /dev/null and b/AddMSPApp/cwcommand.intunewin differ diff --git a/AddMSPApp/datto.app.json b/AddMSPApp/datto.app.json new file mode 100644 index 000000000000..cdd10dfd8aeb --- /dev/null +++ b/AddMSPApp/datto.app.json @@ -0,0 +1,65 @@ +{ + "displayName": "", + "installCommandLine": "", + "uninstallCommandLine": "", + "description": " ", + "developer": " ", + "owner": " ", + "informationUrl": " ", + "privacyInformationUrl": " ", + "fileName": "DattoRMM.intunewin", + "@odata.type": "#microsoft.graph.win32LobApp", + "applicableArchitectures": "x86, x64", + + "installExperience": { + "runAsAccount": "system", + "deviceRestartBehavior": "suppress", + "@odata.type": "microsoft.graph.win32LobAppInstallExperience" + }, + "detectionRules": [ + { + "@odata.type": "#microsoft.graph.win32LobAppFileSystemDetection", + "path": "%programfiles(x86)%\\CentraStage", + "fileOrFolderName": "CagService.exe.config", + "check32BitOn64System": false, + "detectionType": "exists" + } + ], + "returncode": [ + { + "returnCode": 0, + "type": "success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1707, + "type": "Success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1641, + "type": "hardReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1618, + "type": "retry", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 3010, + "type": "softReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + } + ], + "minimumNumberOfProcessors": "1", + "minimumFreeDiskSpaceInMB": "8", + "minimumCpuSpeedInMHz": "4", + "minimumSupportedOperatingSystem": { + "@odata.type": "microsoft.graph.windowsMinimumOperatingSystem", + "v10_1607": true + }, + "notes": "CIPP Uploaded application", + "minimumMemoryInMB": "1", + "setupFilePath": "install.ps1" +} diff --git a/AddMSPApp/datto.app.xml b/AddMSPApp/datto.app.xml new file mode 100644 index 000000000000..ca6f1636c64c --- /dev/null +++ b/AddMSPApp/datto.app.xml @@ -0,0 +1,15 @@ + + install.ps1 + 693 + datto.intunewin + install.ps1 + + jobB9Ga7J3CbO6acWJyvBRE56nFXwqGfcnGfZRMsJC4= + 53SOzs0l6Po2btsGFSMZgkV8vwhH+PxTN8BZDUcfWfg= + VjM/osrvPElbu79J+mdXuw== + UZZXO53Np/tG6Ms+qvwLcNOeD1GRH6NRPFg/TuMz39M= + ProfileVersion1 + KtAWAl29064LG0eyDinbDs0JUbK+EK7GsJovu8obBM4= + SHA256 + + \ No newline at end of file diff --git a/AddMSPApp/datto.intunewin b/AddMSPApp/datto.intunewin new file mode 100644 index 000000000000..96b3f27c3c62 Binary files /dev/null and b/AddMSPApp/datto.intunewin differ diff --git a/AddMSPApp/huntress.app.json b/AddMSPApp/huntress.app.json new file mode 100644 index 000000000000..46c8a22057ae --- /dev/null +++ b/AddMSPApp/huntress.app.json @@ -0,0 +1,65 @@ +{ + "displayName": "", + "installCommandLine": "", + "uninstallCommandLine": "", + "description": " ", + "developer": " ", + "owner": " ", + "informationUrl": " ", + "privacyInformationUrl": " ", + "fileName": "huntress.intunewin", + "@odata.type": "#microsoft.graph.win32LobApp", + "applicableArchitectures": "x86, x64", + + "installExperience": { + "runAsAccount": "system", + "deviceRestartBehavior": "suppress", + "@odata.type": "microsoft.graph.win32LobAppInstallExperience" + }, + "detectionRules": [ + { + "@odata.type": "#microsoft.graph.win32LobAppFileSystemDetection", + "path": "%ProgramFiles%\\Huntress", + "fileOrFolderName": "HuntressAgent.exe", + "check32BitOn64System": false, + "detectionType": "exists" + } + ], + "returncode": [ + { + "returnCode": 0, + "type": "success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1707, + "type": "Success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1641, + "type": "hardReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1618, + "type": "retry", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 3010, + "type": "softReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + } + ], + "minimumNumberOfProcessors": "1", + "minimumFreeDiskSpaceInMB": "8", + "minimumCpuSpeedInMHz": "4", + "minimumSupportedOperatingSystem": { + "@odata.type": "microsoft.graph.windowsMinimumOperatingSystem", + "v10_1607": true + }, + "notes": "CIPP Uploaded application", + "minimumMemoryInMB": "1", + "setupFilePath": "install.ps1" +} diff --git a/AddMSPApp/huntress.app.xml b/AddMSPApp/huntress.app.xml new file mode 100644 index 000000000000..ad4f731a67ff --- /dev/null +++ b/AddMSPApp/huntress.app.xml @@ -0,0 +1,15 @@ + + install.ps1 + 8859 + huntress.intunewin + install.ps1 + + 0wrFiLHex//63XQZEbX535qvhQE5+MiZmfPho1CMrT4= + UOlXFsrh+Pq6ZZNmg2+gzuTCSDAxQNUDVkc6oR5SVAY= + x0cPnMjK6AZARRPhOfC5pg== + z+N/v0mfq8T871kS07/QZ1Lgay2hRabSxwDWRKz3fG4= + ProfileVersion1 + z8JuA/5iCrLM1cRkhL3di5eDysNsab62E812KGsrkbY= + SHA256 + + \ No newline at end of file diff --git a/AddMSPApp/huntress.intunewin b/AddMSPApp/huntress.intunewin new file mode 100644 index 000000000000..12c077f56145 Binary files /dev/null and b/AddMSPApp/huntress.intunewin differ diff --git a/AddMSPApp/immy.app.xml b/AddMSPApp/immy.app.xml new file mode 100644 index 000000000000..33c2b026cf06 --- /dev/null +++ b/AddMSPApp/immy.app.xml @@ -0,0 +1,15 @@ + + install.ps1 + 701 + IntunePackage.intunewin + install.ps1 + + doCFlu6eR0FygwmKEt64S1Yd8DBfok8/l0ophT7m2R4= + 5ai/8f238719rpGrOigf7mjx5u+gF6cBTOLWMBx5lrY= + klnIk9zH1fNeekrILt3tLw== + 9vyw/gMTsEsx3o3TVapXLxUQooNlVMRQj5/cXTo77x0= + ProfileVersion1 + 1eS5ExzbAFPOfI8x9REbwff0RAy5gvjTxYNZdAKUDcc= + SHA256 + + \ No newline at end of file diff --git a/AddMSPApp/immy.intunewin b/AddMSPApp/immy.intunewin new file mode 100644 index 000000000000..5102fd736f75 Binary files /dev/null and b/AddMSPApp/immy.intunewin differ diff --git a/AddMSPApp/ninjarmm.app.json b/AddMSPApp/ninjarmm.app.json new file mode 100644 index 000000000000..e943331d8e3f --- /dev/null +++ b/AddMSPApp/ninjarmm.app.json @@ -0,0 +1,64 @@ +{ + "displayName": "", + "installCommandLine": "", + "uninstallCommandLine": "", + "description": " ", + "developer": " ", + "owner": " ", + "informationUrl": " ", + "privacyInformationUrl": " ", + "fileName": "ninjarmm.intunewin", + "@odata.type": "#microsoft.graph.win32LobApp", + "applicableArchitectures": "x86, x64", + + "installExperience": { + "runAsAccount": "system", + "deviceRestartBehavior": "suppress", + "@odata.type": "microsoft.graph.win32LobAppInstallExperience" + }, + "detectionRules": [ + { + "@odata.type": "#microsoft.graph.win32LobAppFileSystemDetection", + "path": "%ProgramData%\\NinjaRMMAgent", + "fileOrFolderName": "ninjarmm-cli.exe", + "check32BitOn64System": false, + "detectionType": "exists" + } + ], + "returncode": [ + { + "returnCode": 0, + "type": "success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1707, + "type": "Success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1641, + "type": "hardReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1618, + "type": "retry", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 3010, + "type": "softReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + } + ], + "minimumNumberOfProcessors": "1", + "minimumFreeDiskSpaceInMB": "8", + "minimumCpuSpeedInMHz": "4", + "minimumSupportedOperatingSystem": { + "@odata.type": "microsoft.graph.windowsMinimumOperatingSystem", + "v10_1607": true + }, + "notes": "CIPP Uploaded application", + "minimumMemoryInMB": "1" +} diff --git a/AddMSPApp/ninjarmm.app.xml b/AddMSPApp/ninjarmm.app.xml new file mode 100644 index 000000000000..647d26712e8b --- /dev/null +++ b/AddMSPApp/ninjarmm.app.xml @@ -0,0 +1,15 @@ + + install.ps1 + 728 + syncro.intunewin + install.ps1 + + XsBprXNg7cPsNS7YfRarT1zcSoL6/EF+c2dAjkhfuwk= + c4xkRYZg/r/h1xUD1172Tmr877nDXIoa3wuQnj0dpLQ= + OE7D78wJtXIpVESqaZAiWw== + 2m0nbXMdYK9dQgtjZraz3VsSxQlbO0jabpTaUjPg8I8= + ProfileVersion1 + gPccLH2ZAerHl8aYGYTxWmC8mnpJncTKBw5BX4IpH+g= + SHA256 + + \ No newline at end of file diff --git a/AddMSPApp/syncro.app.json b/AddMSPApp/syncro.app.json new file mode 100644 index 000000000000..1d5f0e01fb4b --- /dev/null +++ b/AddMSPApp/syncro.app.json @@ -0,0 +1,65 @@ +{ + "displayName": "", + "installCommandLine": "", + "uninstallCommandLine": "", + "description": " ", + "developer": " ", + "owner": " ", + "informationUrl": " ", + "privacyInformationUrl": " ", + "fileName": "syncro.intunewin", + "@odata.type": "#microsoft.graph.win32LobApp", + "applicableArchitectures": "x86, x64", + + "installExperience": { + "runAsAccount": "system", + "deviceRestartBehavior": "suppress", + "@odata.type": "microsoft.graph.win32LobAppInstallExperience" + }, + "detectionRules": [ + { + "@odata.type": "#microsoft.graph.win32LobAppFileSystemDetection", + "path": "%ProgramData%\\Syncro\\Bin", + "fileOrFolderName": "Syncro.Overmind.Service.exe", + "check32BitOn64System": false, + "detectionType": "exists" + } + ], + "returncode": [ + { + "returnCode": 0, + "type": "success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1707, + "type": "Success", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1641, + "type": "hardReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 1618, + "type": "retry", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + }, + { + "returnCode": 3010, + "type": "softReboot", + "@odata.type": "#microsoft.graph.win32LobAppReturnCode" + } + ], + "minimumNumberOfProcessors": "1", + "minimumFreeDiskSpaceInMB": "8", + "minimumCpuSpeedInMHz": "4", + "minimumSupportedOperatingSystem": { + "@odata.type": "microsoft.graph.windowsMinimumOperatingSystem", + "v10_1607": true + }, + "notes": "CIPP Uploaded application", + "minimumMemoryInMB": "1", + "setupFilePath": "install.ps1" +} diff --git a/AddMSPApp/syncro.app.xml b/AddMSPApp/syncro.app.xml new file mode 100644 index 000000000000..647d26712e8b --- /dev/null +++ b/AddMSPApp/syncro.app.xml @@ -0,0 +1,15 @@ + + install.ps1 + 728 + syncro.intunewin + install.ps1 + + XsBprXNg7cPsNS7YfRarT1zcSoL6/EF+c2dAjkhfuwk= + c4xkRYZg/r/h1xUD1172Tmr877nDXIoa3wuQnj0dpLQ= + OE7D78wJtXIpVESqaZAiWw== + 2m0nbXMdYK9dQgtjZraz3VsSxQlbO0jabpTaUjPg8I8= + ProfileVersion1 + gPccLH2ZAerHl8aYGYTxWmC8mnpJncTKBw5BX4IpH+g= + SHA256 + + \ No newline at end of file diff --git a/AddMSPApp/syncro.intunewin b/AddMSPApp/syncro.intunewin new file mode 100644 index 000000000000..1cf9f0ef8c66 Binary files /dev/null and b/AddMSPApp/syncro.intunewin differ diff --git a/AddPolicy/function.json b/AddPolicy/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddPolicy/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddPolicy/run.ps1 b/AddPolicy/run.ps1 deleted file mode 100644 index d63642c550d3..000000000000 --- a/AddPolicy/run.ps1 +++ /dev/null @@ -1,74 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$Tenants = ($Request.body | Select-Object Select_*).psobject.properties.value -if ("AllTenants" -in $Tenants) { $Tenants = (Get-Tenants).DefaultDomainName } -$displayname = $request.body.Displayname -$description = $request.body.Description -$AssignTo = if ($request.body.Assignto -ne "on") { $request.body.Assignto } -$RawJSON = $Request.body.RawJSON - -$results = foreach ($Tenant in $tenants) { - try { - switch ($Request.body.TemplateType) { - "Admin" { - $TemplateTypeURL = "groupPolicyConfigurations" - $CreateBody = '{"description":"' + $description + '","displayName":"' + $displayname + '","roleScopeTagIds":["0"]}' - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL" -tenantid $tenant - if ($displayname -in $CheckExististing.displayName) { - Throw "Policy with Display Name $($Displayname) Already exists" - } - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL" -tenantid $tenant -type POST -body $CreateBody - $UpdateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL('$($CreateRequest.id)')/updateDefinitionValues" -tenantid $tenant -type POST -body $RawJSON - } - "Device" { - $TemplateTypeURL = "deviceConfigurations" - $PolicyName = ($RawJSON | ConvertFrom-Json).displayName - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL" -tenantid $tenant - Write-Host $PolicyName - if ($PolicyName -in $CheckExististing.displayName) { - Throw "Policy with Display Name $($Displayname) Already exists" - } - - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL" -tenantid $tenant -type POST -body $RawJSON - } - "Catalog" { - $TemplateTypeURL = "configurationPolicies" - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL" -tenantid $tenant - $PolicyName = ($RawJSON | ConvertFrom-Json).Name - $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL" -tenantid $tenant - if ($PolicyName -in $CheckExististing.name) { - Throw "Policy with Display Name $($Displayname) Already exists" - } - $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL" -tenantid $tenant -type POST -body $RawJSON - } - - } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Added policy $($Displayname)" -Sev "Error" - if ($AssignTo) { - $AssignBody = if ($AssignTo -ne "AllDevicesAndUsers") { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } - $assign = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$TemplateTypeURL('$($CreateRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Assigned policy $($Displayname) to $AssignTo" -Sev "Info" - } - "Succesfully added policy for $($Tenant)" - } - catch { - "Failed to add policy for $($Tenant): $($_.Exception.Message)" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Failed adding policy $($Displayname). Error: $($_.Exception.Message)" -Sev "Error" - continue - } - -} - -$body = [pscustomobject]@{"Results" = @($results) } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/AddStandardsDeploy/function.json b/AddStandardsDeploy/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddStandardsDeploy/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddStandardsDeploy/run.ps1 b/AddStandardsDeploy/run.ps1 deleted file mode 100644 index a26bfce411ab..000000000000 --- a/AddStandardsDeploy/run.ps1 +++ /dev/null @@ -1,37 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$user = $request.headers.'x-ms-client-principal' -$username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails -New-Item Cache_Standards -ItemType Directory -ErrorAction SilentlyContinue - -try { - $Tenants = ($Request.body | Select-Object Select_*).psobject.properties.value - $Settings = ($request.body | Select-Object -Property * -ExcludeProperty Select_*, DataTable* ) - foreach ($Tenant in $tenants) { - - $object = [PSCustomObject]@{ - Tenant = $tenant - AddedBy = $username - Standards = $Settings - } | ConvertTo-Json - Set-Content "Cache_Standards\$($tenant).Standards.json" -Value $Object -Force - } - $body = [pscustomobject]@{"Results" = "Successfully added standards deployment" } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Standards API failed. $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to add standard: $($_.Exception.Message)" } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/AddTeam/function.json b/AddTeam/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddTeam/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddTeam/run.ps1 b/AddTeam/run.ps1 deleted file mode 100644 index 246e471fe00f..000000000000 --- a/AddTeam/run.ps1 +++ /dev/null @@ -1,51 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$userobj = $Request.body - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -$Owners = ($userobj.owner).Split([Environment]::NewLine) | Where-Object { $_ -ne $null -or $_ -ne "" } -try { - - $Owners = $Owners | ForEach-Object { - $OwnerID = "https://graph.microsoft.com/beta/users('" + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$_" -tenantid $Userobj.tenantid).id + "')" - @{ - "@odata.type" = "#microsoft.graph.aadUserConversationMember" - "roles" = @("owner") - "user@odata.bind" = $OwnerID - } - } - - $TeamsSettings = [PSCustomObject]@{ - "template@odata.bind" = "https://graph.microsoft.com/v1.0/teamsTemplates('standard')" - "visibility" = $userobj.visibility - "displayName" = $userobj.displayname - "description" = $userobj.description - "members" = @($owners) - - } | ConvertTo-Json -Depth 10 - - Write-Host $TeamsSettings - New-GraphPostRequest -AsApp $true -uri "https://graph.microsoft.com/beta/teams" -tenantid $Userobj.tenantid -type POST -body $TeamsSettings -verbose - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "Added Team $($userobj.displayname)" -Sev "Info" - $body = [pscustomobject]@{"Results" = "Success. Team has been added" } - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "$($userobj.tenantid): Add Team failed. $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed. Error message: $($_.Exception.Message)" } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) diff --git a/AddUser/function.json b/AddUser/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/AddUser/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/AddUser/run.ps1 b/AddUser/run.ps1 deleted file mode 100644 index c01aff6911f2..000000000000 --- a/AddUser/run.ps1 +++ /dev/null @@ -1,104 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$Results = [System.Collections.ArrayList]@() -$userobj = $Request.body -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -try { - $license = $userobj.license - $Aliases = ($userobj.AddedAliases).Split([Environment]::NewLine) - $password = if ($userobj.password) { $userobj.password } else { -join ('abcdefghkmnrstuvwxyzABCDEFGHKLMNPRSTUVWXYZ23456789$%&*#'.ToCharArray() | Get-Random -Count 12) } - $UserprincipalName = "$($UserObj.username)@$($UserObj.domain)" - $BodyToship = [pscustomobject] @{ - "givenName" = $userobj.firstname - "surname" = $userobj.lastname - "accountEnabled" = $true - "displayName" = $UserObj.Displayname - "mailNickname" = $UserObj.username - "userPrincipalName" = $UserprincipalName - "usageLocation" = $UserObj.usageLocation - "passwordProfile" = @{ - "forceChangePasswordNextSignIn" = [bool]$UserObj.mustchangepass - "password" = $password - } - } | ConvertTo-Json - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users" -tenantid $Userobj.tenantid -type POST -body $BodyToship -verbose - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "Created user $($userobj.displayname) with id $($GraphRequest.id) " -Sev "Info" - $results.add("Created user.") - $results.add("Username: $($UserprincipalName)") - $results.add("Password: $password") -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "User creation API failed. $($_.Exception.Message)" -Sev "Error" - $body = $results.add("Failed to create user. $($_.Exception.Message)" ) -} - -try { - if ($license) { - Write-Host ($userobj | ConvertTo-Json) - $licenses = (($userobj | Select-Object "License_*").psobject.properties | Where-Object { $_.value -EQ $true }).name -replace "License_", "" - Write-Host "Lics are: $licences" - $LicenseBody = if ($licenses.count -ge 2) { - $liclist = foreach ($license in $Licenses) { '{"disabledPlans": [],"skuId": "' + $license + '" },' } - '{"addLicenses": [' + $LicList + '], "removeLicenses": [ ] }' - } - else { - '{"addLicenses": [ {"disabledPlans": [],"skuId": "' + $licenses + '" }],"removeLicenses": [ ]}' - } - Write-Host $LicenseBody - $LicRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($GraphRequest.id)/assignlicense" -tenantid $Userobj.tenantid -type POST -body $LicenseBody -verbose - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "Assigned user $($userobj.displayname) license $($licences)" -Sev "Info" - $body = $results.add("Assigned licenses.") - } - -} - -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "License assign API failed. $($_.Exception.Message)" -Sev "Error" - $body = $results.add("We've failed to assign the license. $($_.Exception.Message)") -} - -try { - if ($Aliases) { - foreach ($Alias in $Aliases) { - Write-Host $Alias - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($GraphRequest.id)" -tenantid $Userobj.tenantid -type "patch" -body "{`"mail`": `"$Alias`"}" -verbose - } - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($GraphRequest.id)" -tenantid $Userobj.tenantid -type "patch" -body "{`"mail`": `"$UserprincipalName`"}" -verbose - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "Added alias $($Alias) to $($userobj.displayname)" -Sev "Info" - $body = $results.add("Added Aliases: $($Aliases -join ',')") - } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "Alias API failed. $($_.Exception.Message)" -Sev "Error" - $body = $results.add("We've failed to create the Aliases: $($_.Exception.Message)") -} -if ($Request.body.CopyFrom -ne "") { - $MemberIDs = "https://graph.microsoft.com/v1.0/directoryObjects/" + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($GraphRequest.id)" -tenantid $Userobj.tenantid).id - $addmemberbody = "{ `"members@odata.bind`": $(ConvertTo-Json @($MemberIDs)) }" - (New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($Request.body.CopyFrom)/GetMemberGroups" -tenantid $Userobj.tenantid -type POST -body '{"securityEnabledOnly": false}').value | ForEach-Object { - try { - $groupname = (New-GraphGetRequest -tenantid $Userobj.tenantid -asApp $true -uri "https://graph.microsoft.com/beta/groups/$($_)").displayName - Write-Host "name: $groupname" - $GroupResult = New-GraphPostRequest -AsApp $true -uri "https://graph.microsoft.com/beta/groups/$($_)" -tenantid $Userobj.tenantid -type patch -body $addmemberbody -Verbose - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Added $($UserprincipalName) to group $groupresult.displayName)" -Sev "Info" -tenant $TenantFilter - $body = $results.add("Added group: $($groupname)") - } - catch { - $body = $results.add("We've failed to add the group $($groupname): $($_.Exception.Message)") - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "Alias API failed. $($_.Exception.Message)" -Sev "Error" - } - } - -} -$body = @{"Results" = @($results) } -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) diff --git a/Applications_GetQueue/function.json b/Applications_GetQueue/function.json deleted file mode 100644 index b31f1ad21352..000000000000 --- a/Applications_GetQueue/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "name", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Applications_GetQueue/run.ps1 b/Applications_GetQueue/run.ps1 deleted file mode 100644 index ede458a501ce..000000000000 --- a/Applications_GetQueue/run.ps1 +++ /dev/null @@ -1,4 +0,0 @@ -param($name) - -$object = (Get-ChildItem ".\ChocoApps.Cache\*" | Where-Object { $_.name -ne "CurrentlyRunning.txt" }).name -$object \ No newline at end of file diff --git a/Applications_Orchestrator/function.json b/Applications_Orchestrator/function.json deleted file mode 100644 index 7326b39c184d..000000000000 --- a/Applications_Orchestrator/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "Context", - "type": "orchestrationTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Applications_Orchestrator/run.ps1 b/Applications_Orchestrator/run.ps1 deleted file mode 100644 index 027532794095..000000000000 --- a/Applications_Orchestrator/run.ps1 +++ /dev/null @@ -1,12 +0,0 @@ -param($Context) - -$Batch = (Invoke-DurableActivity -FunctionName 'Applications_GetQueue' -Input 'LetsGo') -Write-Host $Batch -$ParallelTasks = foreach ($Item in $Batch) { - Invoke-DurableActivity -FunctionName "Applications_Upload" -Input $item -NoWait -} - -$Outputs = Wait-ActivityFunction -Task $ParallelTasks -Write-Host $Outputs - -Log-request -API "ChocoApp" -Message "Choco Application Queue: Deployment finished." -sev Info \ No newline at end of file diff --git a/Applications_Upload/function.json b/Applications_Upload/function.json deleted file mode 100644 index b31f1ad21352..000000000000 --- a/Applications_Upload/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "name", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Applications_Upload/run.ps1 b/Applications_Upload/run.ps1 deleted file mode 100644 index 8038b9334f91..000000000000 --- a/Applications_Upload/run.ps1 +++ /dev/null @@ -1,81 +0,0 @@ -param($name) - -$ChocoApp = Get-Content ".\ChocoApps.Cache\$name" | ConvertFrom-Json -$intuneBody = $ChocoApp.IntuneBody -$tenants = if ($chocoapp.Tenant -eq "AllTenants") { - (Get-tenants).defaultDomainName -} -else { - $chocoapp.Tenant -} - -[xml]$Intunexml = Get-Content "AddChocoApp\choco.app.xml" -$assignTo = $ChocoApp.AssignTo -$intunewinFilesize = (Get-Item "AddChocoApp\IntunePackage.intunewin") -$Baseuri = "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps" -$ContentBody = ConvertTo-Json @{ - name = $intunexml.ApplicationInfo.FileName - size = [int64]$intunexml.ApplicationInfo.UnencryptedContentSize - sizeEncrypted = [int64]($intunewinFilesize).length -} -$RemoveCacheFile = if ($chocoapp.Tenant -ne "AllTenants") { Remove-Item ".\ChocoApps.Cache\$name" -Force } -$EncBody = @{ - fileEncryptionInfo = @{ - encryptionKey = $intunexml.ApplicationInfo.EncryptionInfo.EncryptionKey - macKey = $intunexml.ApplicationInfo.EncryptionInfo.MacKey - initializationVector = $intunexml.ApplicationInfo.EncryptionInfo.InitializationVector - mac = $intunexml.ApplicationInfo.EncryptionInfo.Mac - profileIdentifier = $intunexml.ApplicationInfo.EncryptionInfo.ProfileIdentifier - fileDigest = $intunexml.ApplicationInfo.EncryptionInfo.FileDigest - fileDigestAlgorithm = $intunexml.ApplicationInfo.EncryptionInfo.FileDigestAlgorithm - } -} | ConvertTo-Json - -foreach ($tenant in $tenants) { - Try { - $ApplicationList = (New-graphGetRequest -Uri $baseuri -tenantid $Tenant) | Where-Object { $_.DisplayName -eq $ChocoApp.ApplicationName } - if ($ApplicationList.displayname.count -ge 1) { - Log-Request -api "ChocoAppUpload" -tenant $($Tenant) -message "$($ChocoApp.ApplicationName) exists. Skipping this application" -Sev "Warning" - continue - } - $NewApp = New-GraphPostRequest -Uri $baseuri -Body ($intuneBody | ConvertTo-Json) -Type POST -tenantid $tenant - $ContentReq = New-GraphPostRequest -Uri "$($BaseURI)/$($NewApp.id)/microsoft.graph.win32lobapp/contentVersions/1/files/" -Body $ContentBody -Type POST -tenantid $tenant - do { - $AzFileUri = New-graphGetRequest -Uri "$($BaseURI)/$($NewApp.id)/microsoft.graph.win32lobapp/contentVersions/1/files/$($ContentReq.id)" -tenantid $tenant - if ($AZfileuri.uploadState -like "*fail*") { break } - Start-Sleep -Milliseconds 300 - } while ($AzFileUri.AzureStorageUri -eq $null) - - $chunkSizeInBytes = 4mb - [byte[]]$bytes = [System.IO.File]::ReadAllBytes($($intunewinFilesize.fullname)) - $chunks = [Math]::Ceiling($bytes.Length / $chunkSizeInBytes); - $id = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($chunks.ToString("0000"))) - #For anyone that reads this, The maximum chunk size is 100MB for blob storage, so we can upload it as one part and just give it the single ID. Easy :) - $Upload = Invoke-RestMethod -Uri "$($AzFileUri.azureStorageUri)&comp=block&blockid=$id" -Method Put -Headers @{'x-ms-blob-type' = 'BlockBlob' } -InFile "AddChocoApp\$($intunexml.ApplicationInfo.FileName)" -ContentType "application/octet-stream" - $ConfirmUpload = Invoke-RestMethod -Uri "$($AzFileUri.azureStorageUri)&comp=blocklist" -Method Put -Body "$id" - $CommitReq = New-graphPostRequest -Uri "$($BaseURI)/$($NewApp.id)/microsoft.graph.win32lobapp/contentVersions/1/files/$($ContentReq.id)/commit" -Body $EncBody -Type POST -tenantid $tenant - - do { - $CommitStateReq = New-graphGetRequest -Uri "$($BaseURI)/$($NewApp.id)/microsoft.graph.win32lobapp/contentVersions/1/files/$($ContentReq.id)" -tenantid $tenant - if ($CommitStateReq.uploadState -like "*fail*") { - Log-Request -api "ChocoAppUpload" -tenant $($Tenant) -message "$($ChocoApp.ApplicationName) Commit failed. Please check if app uploaded succesful" -Sev "Warning" - break - } - Start-Sleep -Milliseconds 300 - } while ($CommitStateReq.uploadState -eq "commitFilePending") - $CommitFinalizeReq = New-graphPostRequest -Uri "$($BaseURI)/$($NewApp.id)" -tenantid $tenant -Body '{"@odata.type":"#microsoft.graph.win32lobapp","committedContentVersion":"1"}' -type PATCH - Log-Request -api "ChocoAppUpload" -user $request.headers.'x-ms-client-principal' -tenant $($Tenant) -message "Added Choco app $($chocoApp.ApplicationName)" -Sev "Info" - if ($AssignTo -ne "On") { - $AssignBody = if ($AssignTo -ne "AllDevicesAndUsers") { '{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.' + $($AssignTo) + 'AssignmentTarget"},"intent":"Required","settings":{"@odata.type":"#microsoft.graph.win32LobAppAssignmentSettings","notifications":"hideAll","installTimeSettings":null,"restartSettings":null,"deliveryOptimizationPriority":"notConfigured"}}]}' } else { '{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required","settings":{"@odata.type":"#microsoft.graph.win32LobAppAssignmentSettings","notifications":"showAll","installTimeSettings":null,"restartSettings":null,"deliveryOptimizationPriority":"notConfigured"}},{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required","settings":{"@odata.type":"#microsoft.graph.win32LobAppAssignmentSettings","notifications":"showAll","installTimeSettings":null,"restartSettings":null,"deliveryOptimizationPriority":"notConfigured"}}]}' } - $assign = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($NewApp.id)/assign" -tenantid $tenant -type POST -body $AssignBody - Log-Request -api "ChocoAppUpload" -user $request.headers.'x-ms-client-principal' -tenant $($Tenant) -message "Assigned application $($chocoApp.ApplicationName) to $AssignTo" -Sev "Info" - } - Log-Request -api "ChocoAppUpload" -tenant $($Tenant) -message "$($Tenant): Succesfully added Choco App for $($Tenant)
" - } - catch { - "Failed to add Choco App for $($Tenant): $($_.Exception.Message)" - Log-Request -api "ChocoAppUpload" -user $request.headers.'x-ms-client-principal' -tenant $($Tenant) -message "Failed adding choco App $($ChocoApp.ApplicationName). Error: $($_.Exception.Message)" -Sev "Error" - continue - } - -} \ No newline at end of file diff --git a/BestPracticeAnalyser_All/function.json b/BestPracticeAnalyser_All/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/BestPracticeAnalyser_All/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/BestPracticeAnalyser_All/run.ps1 b/BestPracticeAnalyser_All/run.ps1 deleted file mode 100644 index 4e46f7f6bd7b..000000000000 --- a/BestPracticeAnalyser_All/run.ps1 +++ /dev/null @@ -1,266 +0,0 @@ -param($tenant) - -# Prepare tokens, connections and variables that will be used multiple times later -$uri = "https://login.microsoftonline.com/$($Tenant)/oauth2/token" -$body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" -try { - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Token retrieved for Best Practice Analyser on $($tenant)" -sev "Info" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Unable to Retrieve token for Best Practice Analyser $($tenant) Error: $($_.exception.message)" -sev "Error" -} -$upn = "notRequired@required.com" - -# Build up the result object that will be passed back to the durable function -$Result = [PSCustomObject]@{ - Tenant = $tenant - GUID = $($Tenant.Replace('.', '')) - LastRefresh = $(Get-Date (Get-Date).ToUniversalTime() -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') - SecureDefaultState = "" - PrivacyEnabled = "" - UnifiedAuditLog = "" - MessageCopyForSend = "" - MessageCopyForSendAsCount = "" - MessageCopyForSendOnBehalfCount = "" - MessageCopyForSendList = "" - ShowBasicAuthSettings = "" - EnableModernAuth = "" - AllowBasicAuthActiveSync = "" - AllowBasicAuthImap = "" - AllowBasicAuthPop = "" - AllowBasicAuthWebServices = "" - AllowBasicAuthPowershell = "" - AllowBasicAuthAutodiscover = "" - AllowBasicAuthMapi = "" - AllowBasicAuthOfflineAddressBook = "" - AllowBasicAuthRpc = "" - AllowBasicAuthSmtp = "" - AdminConsentForApplications = "" - DoNotExpirePasswords = "" - SelfServicePasswordReset = "" - DisabledSharedMailboxLogins = "" - DisabledSharedMailboxLoginsCount = "" - UnusedLicensesCount = "" - UnusedLicensesTotal = "" - UnusedLicensesResult = "" - UnusedLicenseList = "" - SecureScoreCurrent = "" - SecureScoreMax = "" - SecureScorePercentage = "" -} - -# Starting the Best Practice Analyser - -# Get the Secure Default State -try { - $SecureDefaultsState = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy" -tenantid $tenant) - $Result.SecureDefaultState = $SecureDefaultsState.IsEnabled - - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Security Defaults State on $($tenant) is $($SecureDefaultsState.IsEnabled)" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Security Defaults State on $($tenant) Error: $($_.exception.message)" -sev "Error" -} - - -# Get the Privacy Enabled State -try { - $Result.PrivacyEnabled = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://admin.microsoft.com/admin/api/reports/config/GetTenantConfiguration' -Method Get -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } | Select-Object -ExpandProperty Output | ConvertFrom-Json | Select-Object -ExpandProperty PrivacyEnabled - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Privacy Enabled State on $($tenant) is $($Result.PrivacyEnabled)" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Privacy Enabled State on $($tenant) Error: $($_.exception.message)" -sev "Error" -} - -# Get Send and Send Behalf Of -try { - # Send and Send Behalf Of - $MailboxBPAParams = @{ - ResultSize = 'Unlimited' - RecipientTypeDetails = 'UserMailbox, SharedMailbox' - } - $MailboxBPA = New-ExoRequest -tenantid $Tenant -cmdlet "Get-Mailbox" - $TotalMailboxes = $MailboxBPA | Measure-Object | Select-Object -ExpandProperty Count - $TotalMessageCopyForSentAsEnabled = $MailboxBPA | Where-Object { $_.MessageCopyForSentAsEnabled -eq $true } | Measure-Object | Select-Object -ExpandProperty Count - $TotalMessageCopyForSendOnBehalfEnabled = $MailboxBPA | Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $true } | Measure-Object | Select-Object -ExpandProperty Count - If (($TotalMailboxes -eq $TotalMessageCopyForSentAsEnabled) -and ($TotalMailboxes -eq $TotalMessageCopyForSendOnBehalfEnabled)) { - $Result.MessageCopyForSend = "PASS" - $Result.MessageCopyForSendAsCount = $TotalMessageCopyForSentAsEnabled - $Result.MessageCopyForSendOnBehalfCount = $TotalMessageCopyForSendOnBehalfEnabled - } - else { - $Result.MessageCopyForSend = "FAIL" - $Result.MessageCopyForSendAsCount = $MailboxBPA | Where-Object { $_.MessageCopyForSentAsEnabled -eq $false } | Measure-Object | Select-Object -ExpandProperty Count - $Result.MessageCopyForSendOnBehalfCount = $MailboxBPA | Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $false } | Measure-Object | Select-Object -ExpandProperty Count - $Result.MessageCopyForSendList = ($MailboxBPA | Where-Object { ($_.MessageCopyForSendOnBehalfEnabled -eq $false) -or ( $_.MessageCopyForSendOnBehalfEnabled -eq $false) } | Select-Object -ExpandProperty userPrincipalName) -join "
" - } - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Send and Send Behalf Of on $($tenant) is $($Result.MessageCopyForSend)" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Send and Send Behalf Of on $($tenant) Error: $($_.exception.message)" -sev "Error" -} - - -# Get Unified Audit Log -try { - $EXOAdminAuditLogConfig = New-ExoRequest -tenantid $Tenant -cmdlet "Get-AdminAuditLogConfig" - $Result.UnifiedAuditLog = $EXOAdminAuditLogConfig | Select-Object -ExpandProperty UnifiedAuditLogIngestionEnabled - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Unified Audit Log on $($tenant) is $($Result.UnifiedAuditLog)" -sev "Debug" - -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Unified Audit Log on $($tenant). Error: $($_.exception.message)" -sev "Error" -} - -# Get Basic Auth States -try { - $BasicAuthDisable = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://admin.microsoft.com/admin/api/services/apps/modernAuth' -Method GET -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - - - - $Result.ShowBasicAuthSettings = $BasicAuthDisable.ShowBasicAuthSettings - $Result.EnableModernAuth = $BasicAuthDisable.EnableModernAuth - $Result.AllowBasicAuthActiveSync = $BasicAuthDisable.AllowBasicAuthActiveSync - $Result.AllowBasicAuthImap = $BasicAuthDisable.AllowBasicAuthImap - $Result.AllowBasicAuthPop = $BasicAuthDisable.AllowBasicAuthPop - $Result.AllowBasicAuthWebServices = $BasicAuthDisable.AllowBasicAuthWebServices - $Result.AllowBasicAuthPowershell = $BasicAuthDisable.AllowBasicAuthPowershell - $Result.AllowBasicAuthAutodiscover = $BasicAuthDisable.AllowBasicAuthAutodiscover - $Result.AllowBasicAuthMapi = $BasicAuthDisable.AllowBasicAuthMapi - $Result.AllowBasicAuthOfflineAddressBook = $BasicAuthDisable.AllowBasicAuthOfflineAddressBook - $Result.AllowBasicAuthRpc = $BasicAuthDisable.AllowBasicAuthRpc - $Result.AllowBasicAuthSmtp = $BasicAuthDisable.AllowBasicAuthSmtp - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Basic Auth States on $($tenant) run" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Basic Auth States on $($tenant). Error: $($_.exception.message)" -sev "Error" -} - - -# Get OAuth Admin Consenst -try { - $Result.AdminConsentForApplications = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://admin.microsoft.com/admin/api/settings/apps/IntegratedApps' -Method GET -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "OAuth Admin Consent on $($tenant). Admin Consent for Applications $($Result.AdminConsentForApplications) and password reset is $($Result.SelfServicePasswordReset)" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "OAuth Admin Consent on $($tenant). Error: $($_.exception.message)" -sev "Error" -} - -# Get Self Service Password Reset State -try { - $bodypasswordresetpol = "resource=74658136-14ec-4630-ad9b-26e160ff0fc6&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $tokensspr = Invoke-RestMethod $uri -Body $bodypasswordresetpol -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $SSPRGraph = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://main.iam.ad.ext.azure.com/api/PasswordReset/PasswordResetPolicies' -Method GET -Headers @{ - Authorization = "Bearer $($tokensspr.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - If ($SSPRGraph.enablementType -eq 0) { $Result.SelfServicePasswordReset = "Off" } - If ($SSPRGraph.enablementType -eq 1) { $Result.SelfServicePasswordReset = "Specific Users" } - If ($SSPRGraph.enablementType -eq 2) { $Result.SelfServicePasswordReset = "On" } - If ([string]::IsNullOrEmpty($SSPRGraph.enablementType)) { $Result.SelfServicePasswordReset = "Unknown" } - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Basic Self Service Password State on $($tenant) is $($Result.SelfServicePasswordReset) run" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Self Service Password Reset on $($tenant). Error: $($_.exception.message)" -sev "Error" -} - -# Get Passwords set to Never Expire -try { - $Result.DoNotExpirePasswords = Invoke-RestMethod -ContentType "application/json; charset=utf-8" -Uri 'https://admin.microsoft.com/admin/api/Settings/security/passwordpolicy' -Method GET -Headers @{Authorization = "Bearer $($token.access_token)"; "x-ms-client-request-id" = [guid]::NewGuid().ToString(); "x-ms-client-session-id" = [guid]::NewGuid().ToString(); 'X-Requested-With' = 'XMLHttpRequest'; 'x-ms-correlation-id' = [guid]::NewGuid() } | Select-Object -ExpandProperty NeverExpire - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Passwords never expire setting on $($tenant). $($Result.DoNotExpirePasswords)" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Passwords never expire setting on $($tenant). Error: $($_.exception.message)" -sev "Error" -} - - -# Get Shared Mailbox Stuff -try { - $SharedMailboxList = (New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenant)/Mailbox" -Tenantid $tenant -scope ExchangeOnline | Where-Object -propert RecipientTypeDetails -EQ "SharedMailbox") - $AllUsersAccountState = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?select=userPrincipalName,accountEnabled" -tenantid $Tenant - $EnabledUsersWithSharedMailbox = foreach ($SharedMailbox in $SharedMailboxList) { - # Match the User - $User = $AllUsersAccountState | Where-Object { $_.userPrincipalName -eq $SharedMailbox.userPrincipalName } | Select-Object -First 1 - if ($User.accountEnabled) { - $User.userPrincipalName - } - } - - if (($EnabledUsersWithSharedMailbox | Measure-Object | Select-Object -ExpandProperty Count) -gt 0) { $Result.DisabledSharedMailboxLogins = ($EnabledUsersWithSharedMailbox) -join "
" } else { $Result.DisabledSharedMailboxLogins = "PASS" } - $Result.DisabledSharedMailboxLoginsCount = $EnabledUsersWithSharedMailbox | Measure-Object | Select-Object -ExpandProperty Count - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Shared Mailbox Enabled Accounts on $($tenant). $($Result.DisabledSharedMailboxLogins)" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Shared Mailbox Enabled Accounts on $($tenant). Error: $($_.exception.message)" -sev "Error" -} - -# Get unused Licenses -try { - $LicenseUsage = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://portal.office.com/admin/api/tenant/accountSkus' -Method GET -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - - # Import the licenses conversion table - $ConvertTable = Import-Csv Conversiontable.csv | Sort-Object -Property 'guid' -Unique - $WhiteListedSKUs = "FLOW_FREE", "TEAMS_EXPLORATORY", "TEAMS_COMMERCIAL_TRIAL", "POWERAPPS_VIRAL", "POWER_BI_STANDARD", "DYN365_ENTERPRISE_P1_IW", "STREAM", "Dynamics 365 for Financials for IWs", "POWERAPPS_PER_APP_IW" - $UnusedLicenses = $LicenseUsage | Where-Object { ($_.Purchased -ne $_.Consumed) -and ($WhiteListedSKUs -notcontains $_.AccountSkuId.SkuPartNumber) } - $UnusedLicensesCount = $UnusedLicenses | Measure-Object | Select-Object -ExpandProperty Count - $UnusedLicensesResult = if ($UnusedLicensesCount -gt 0) { "FAIL" } else { "PASS" } - $Result.UnusedLicenseList = ($UnusedLicensesListBuilder = foreach ($License in $UnusedLicenses) { - "License: $($License.Name), Purchased: $($License.Purchased), Consumed: $($License.Consumed)" - }) -join "
" - - $TempCount = 0 - foreach ($License in $UnusedLicenses) { - $TempCount = $TempCount + ($($License.Purchased) - $($License.Consumed)) - } - $Result.UnusedLicensesTotal = $TempCount - $Result.UnusedLicensesCount = $UnusedLicensesCount - $Result.UnusedLicensesResult = $UnusedLicensesResult - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Unused Licenses on $($tenant). $($Result.UnusedLicensesCount) total not matching" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Unused Licenses on $($tenant). Error: $($_.exception.message)" -sev "Error" -} - -# Get Secure Score -try { - $SecureScore = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/security/secureScores?`$top=1" -tenantid $tenant -noPagination $true - $Result.SecureScoreCurrent = $SecureScore.currentScore - $Result.SecureScoreMax = $SecureScore.maxScore - $Result.SecureScorePercentage = [int](($SecureScore.currentScore / $SecureScore.maxScore) * 100) - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Secure Score on $($tenant) is $($Result.SecureScoreCurrent) / $($Result.SecureScoreMax)" -sev "Debug" -} -catch { - Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Secure Score Retrieval on $($tenant). Error: $($_.exception.message)" -sev "Error" -} - - -# Send Output of all the Results to the Stream -$Result \ No newline at end of file diff --git a/BestPracticeAnalyser_GetQueue/function.json b/BestPracticeAnalyser_GetQueue/function.json deleted file mode 100644 index b31f1ad21352..000000000000 --- a/BestPracticeAnalyser_GetQueue/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "name", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/BestPracticeAnalyser_GetQueue/run.ps1 b/BestPracticeAnalyser_GetQueue/run.ps1 deleted file mode 100644 index 9f5bdfe08126..000000000000 --- a/BestPracticeAnalyser_GetQueue/run.ps1 +++ /dev/null @@ -1,10 +0,0 @@ -param($name) - -$Skiplist = (Get-Content ExcludedTenants -ErrorAction SilentlyContinue | ConvertFrom-Csv -Delimiter "|" -Header "name", "date", "user").name -$Tenants = Get-Content ".\tenants.cache.json" | ConvertFrom-Json | Where-Object {$Skiplist -notcontains $_.defaultDomainName} - -$object = foreach ($Tenant in $Tenants) { - $Tenant.defaultDomainName -} - -$object \ No newline at end of file diff --git a/BestPracticeAnalyser_List/function.json b/BestPracticeAnalyser_List/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/BestPracticeAnalyser_List/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/BestPracticeAnalyser_List/run.ps1 b/BestPracticeAnalyser_List/run.ps1 deleted file mode 100644 index e27cf5bc09b2..000000000000 --- a/BestPracticeAnalyser_List/run.ps1 +++ /dev/null @@ -1,25 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Get all the things -$UnfilteredResults = Get-ChildItem ".\Cache_BestPracticeAnalyser\*.json" | ForEach-Object{Get-Content $_.FullName | Out-String | ConvertFrom-Json} - -# Need to apply exclusion logic -$Skiplist = Get-Content "ExcludedTenants" | ConvertFrom-Csv -Delimiter "|" -Header "Name", "User", "Date" - -$Results = $UnfilteredResults | Where-Object {$_.Tenant -notin $Skiplist.Name} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($Results) - }) \ No newline at end of file diff --git a/BestPracticeAnalyser_Orchestration/function.json b/BestPracticeAnalyser_Orchestration/function.json deleted file mode 100644 index 7326b39c184d..000000000000 --- a/BestPracticeAnalyser_Orchestration/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "Context", - "type": "orchestrationTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/BestPracticeAnalyser_Orchestration/run.ps1 b/BestPracticeAnalyser_Orchestration/run.ps1 deleted file mode 100644 index 2c9a820e3b4a..000000000000 --- a/BestPracticeAnalyser_Orchestration/run.ps1 +++ /dev/null @@ -1,21 +0,0 @@ -param($Context) - -Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Best Practice Analyser has Started" -sev Info -New-Item "Cache_BestPracticeAnalyser" -ItemType Directory -ErrorAction SilentlyContinue -New-Item "Cache_BestPracticeAnalyser\CurrentlyRunning.txt" -ItemType File -Force -$Batch = (Invoke-ActivityFunction -FunctionName 'BestPracticeAnalyser_GetQueue' -Input 'LetsGo') -$ParallelTasks = foreach ($Item in $Batch) { - Invoke-DurableActivity -FunctionName "BestPracticeAnalyser_All" -Input $item -NoWait -} - -$Outputs = Wait-ActivityFunction -Task $ParallelTasks - -foreach ($item in $Outputs) { - Write-Host $Item | Out-String - $Object = $Item | ConvertTo-Json - - Set-Content "Cache_BestPracticeAnalyser\$($item.tenant).BestPracticeAnalysis.json" -Value $Object -Force -} - -Log-request -API "BestPracticeAnalyser" -tenant $tenant -message "Best Practice Analyser has Finished" -sev Info -Remove-Item "Cache_BestPracticeAnalyser\CurrentlyRunning.txt" -Force \ No newline at end of file diff --git a/BestPracticeAnalyser_OrchestrationStarter/function.json b/BestPracticeAnalyser_OrchestrationStarter/function.json deleted file mode 100644 index 14c44f4f0217..000000000000 --- a/BestPracticeAnalyser_OrchestrationStarter/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "name": "Request", - "type": "httpTrigger", - "direction": "in", - "methods": [ - "post", - "get" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} diff --git a/BestPracticeAnalyser_OrchestrationStarter/run.ps1 b/BestPracticeAnalyser_OrchestrationStarter/run.ps1 deleted file mode 100644 index 6203a3d50cae..000000000000 --- a/BestPracticeAnalyser_OrchestrationStarter/run.ps1 +++ /dev/null @@ -1,22 +0,0 @@ -using namespace System.Net - -param($Request, $TriggerMetadata) -$CurrentlyRunning = Get-Item "Cache_BestPracticeAnalyser\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-24) -if ($CurrentlyRunning) { - $Results = [pscustomobject]@{"Results" = "Already running. Please wait for the current instance to finish" } - Log-request -API "BestPracticeAnalyser" -message "Attempted to start analysis but an instance was already running." -sev Info -} -else { - $InstanceId = Start-NewOrchestration -FunctionName 'BestPracticeAnalyser_Orchestration' - Write-Host "Started orchestration with ID = '$InstanceId'" - $Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId - Log-request -API "BestPracticeAnalyser" -message "Started retrieving best practice information" -sev Info - $Results = [pscustomobject]@{"Results" = "Started running analysis" } -} -Write-Host ($Orchestrator | ConvertTo-Json) - - -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $results - }) \ No newline at end of file diff --git a/BestPracticeAnalyser_OrchestrationStarterTimer/function.json b/BestPracticeAnalyser_OrchestrationStarterTimer/function.json deleted file mode 100644 index cbdf59ee8bba..000000000000 --- a/BestPracticeAnalyser_OrchestrationStarterTimer/function.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "bindings": [ - { - "name": "Timer", - "type": "timerTrigger", - "direction": "in", - "schedule": "0 0 3 * * *" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/BestPracticeAnalyser_OrchestrationStarterTimer/run.ps1 b/BestPracticeAnalyser_OrchestrationStarterTimer/run.ps1 deleted file mode 100644 index 5f6dbb43d3c0..000000000000 --- a/BestPracticeAnalyser_OrchestrationStarterTimer/run.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -param($Timer) - -$CurrentlyRunning = Get-Item "Cache_BestPracticeAnalyser\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-24) -if ($CurrentlyRunning) { - $Results = [pscustomobject]@{"Results" = "Already running. Please wait for the current instance to finish" } - Log-request -API "BestPracticeAnalyser" -message "Attempted to start analysis but an instance was already running." -sev Info -} -else { - $InstanceId = Start-NewOrchestration -FunctionName 'BestPracticeAnalyser_Orchestration' - Write-Host "Started orchestration with ID = '$InstanceId'" - $Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId - Log-request -API "BestPracticeAnalyser" -message "Started retrieving best practice information" -sev Info - $Results = [pscustomobject]@{"Results" = "Started running analysis" } -} -Write-Host ($Orchestrator | ConvertTo-Json) diff --git a/CIPP-Permissions.json b/CIPP-Permissions.json new file mode 100644 index 000000000000..ad1e52cb5388 --- /dev/null +++ b/CIPP-Permissions.json @@ -0,0 +1,814 @@ +[ + { + "AppId": "aeb86249-8ea3-49e2-900b-54cc8e308f85", + "DisplayName": "M365 License Manager", + "DelegatedPermissions": [ + { + "Id": "fc946a4f-bc4d-413b-a090-b2c86113ec4f", + "Name": "LicenseManager.AccessAsUser", + "Description": "Allows the application to impersonate the signed-in user when communicating with the M365 License Manager service." + } + ], + "ApplicationPermissions": [] + }, + { + "AppId": "00000003-0000-0000-c000-000000000000", + "DisplayName": "Microsoft Graph", + "DelegatedPermissions": [ + { + "Id": "bdfbf15f-ee85-4955-8675-146e8e5296b5", + "Name": "Application.ReadWrite.All", + "Description": "Allows the app to create, read, update and delete applications and service principals on your behalf. Does not allow management of consent grants." + }, + { + "Id": "84bccea3-f856-4a8a-967b-dbe0a3d53a64", + "Name": "AppRoleAssignment.ReadWrite.All", + "Description": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, on your behalf." + }, + { + "Id": "e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20", + "Name": "AuditLog.Read.All", + "Description": "Allows the app to read and query your audit log activities, on your behalf." + }, + { + "Id": "b27a61ec-b99c-4d6a-b126-c4375d08ae30", + "Name": "BitlockerKey.Read.All", + "Description": "Allows the app to read BitLocker keys for your owned devices. Allows read of the recovery key." + }, + { + "Id": "101147cf-4178-4455-9d58-02b5c164e759", + "Name": "Channel.Create", + "Description": "Create channels in any team, on your behalf." + }, + { + "Id": "cc83893a-e232-4723-b5af-bd0b01bcfe65", + "Name": "Channel.Delete.All", + "Description": "Delete channels in any team, on your behalf." + }, + { + "Id": "9d8982ae-4365-4f57-95e9-d6032a4c0b87", + "Name": "Channel.ReadBasic.All", + "Description": "Read channel names and channel descriptions, on your behalf." + }, + { + "Id": "2eadaff8-0bce-4198-a6b9-2cfc35a30075", + "Name": "ChannelMember.Read.All", + "Description": "Read the members of channels, on your behalf." + }, + { + "Id": "0c3e411a-ce45-4cd1-8f30-f99a3efa7b11", + "Name": "ChannelMember.ReadWrite.All", + "Description": "Add and remove members from channels, on your behalf. Also allows changing a member's role, for example from owner to non-owner." + }, + { + "Id": "2b61aa8a-6d36-4b2f-ac7b-f29867937c53", + "Name": "ChannelMessage.Edit", + "Description": "Allows the app to edit channel messages in Microsoft Teams, on your behalf." + }, + { + "Id": "767156cb-16ae-4d10-8f8b-41b657c8c8c8", + "Name": "ChannelMessage.Read.All", + "Description": "Allows the app to read a channel's messages in Microsoft Teams, on your behalf." + }, + { + "Id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", + "Name": "ChannelMessage.Send", + "Description": "Allows the app to send channel messages in Microsoft Teams, on your behalf." + }, + { + "Id": "233e0cf1-dd62-48bc-b65b-b38fe87fcf8e", + "Name": "ChannelSettings.Read.All", + "Description": "Read all channel names, channel descriptions, and channel settings, on your behalf." + }, + { + "Id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", + "Name": "ChannelSettings.ReadWrite.All", + "Description": "Read and write the names, descriptions, and settings of all channels, on your behalf." + }, + { + "Id": "f3bfad56-966e-4590-a536-82ecf548ac1e", + "Name": "ConsentRequest.Read.All", + "Description": "Allows the app to read consent requests and approvals, on your behalf." + }, + { + "Id": "885f682f-a990-4bad-a642-36736a74b0c7", + "Name": "DelegatedAdminRelationship.ReadWrite.All", + "Description": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers and role assignments to security groups for active Delegated Admin relationships on your behalf." + }, + { + "Id": "41ce6ca6-6826-4807-84f1-1c82854f7ee5", + "Name": "DelegatedPermissionGrant.ReadWrite.All", + "Description": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), on your behalf." + }, + { + "Id": "bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804", + "Name": "Device.Command", + "Description": "Allows the app to launch another app or communicate with another app on a device that you own." + }, + { + "Id": "11d4cd79-5ba5-460f-803f-e22c8ab85ccd", + "Name": "Device.Read", + "Description": "Allows the app to see your list of devices." + }, + { + "Id": "951183d1-1a61-466f-a6d1-1fde911bfd95", + "Name": "Device.Read.All", + "Description": "Allows the app to read devices' configuration information on your behalf." + }, + { + "Id": "280b3b69-0437-44b1-bc20-3b2fca1ee3e9", + "Name": "DeviceLocalCredential.Read.All", + "Description": "Allows the app to read device local credential properties including passwords, on your behalf." + }, + { + "Id": "7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af", + "Name": "DeviceManagementApps.ReadWrite.All", + "Description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune." + }, + { + "Id": "0883f392-0a7a-443d-8c76-16a6d39c7b63", + "Name": "DeviceManagementConfiguration.ReadWrite.All", + "Description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups." + }, + { + "Id": "3404d2bf-2b13-457e-a330-c24615765193", + "Name": "DeviceManagementManagedDevices.PrivilegedOperations.All", + "Description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune." + }, + { + "Id": "44642bfe-8385-4adc-8fc6-fe3cb2c375c3", + "Name": "DeviceManagementManagedDevices.ReadWrite.All", + "Description": "Allows the app to read and write the properties of devices managed by Microsoft Intune. Does not allow high impact operations such as remote wipe and password reset on the device’s owner." + }, + { + "Id": "0c5e8a55-87a6-4556-93ab-adc52c4d862d", + "Name": "DeviceManagementRBAC.ReadWrite.All", + "Description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings." + }, + { + "Id": "662ed50a-ac44-4eef-ad86-62eed9be2a29", + "Name": "DeviceManagementServiceConfig.ReadWrite.All", + "Description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration." + }, + { + "Id": "0e263e50-5827-48a4-b97c-d940288653c7", + "Name": "Directory.AccessAsUser.All", + "Description": "Allows the app to have the same access to information in your work or school directory as you do." + }, + { + "Id": "c5366453-9fb0-48a5-a156-24f0c49a4b84", + "Name": "Directory.ReadWrite.All", + "Description": "Allows the app to read and write data in your organization's directory, such as other users, groups. It does not allow the app to delete users or groups, or reset user passwords." + }, + { + "Id": "2f9ee017-59c1-4f1d-9472-bd5529a7b311", + "Name": "Domain.Read.All", + "Description": "Allows the app to read all domain properties on your behalf." + }, + { + "Id": "4e46008b-f24c-477d-8fff-7bb4ec7aafe0", + "Name": "Group.ReadWrite.All", + "Description": "Allows the app to create groups and read all group properties and memberships on your behalf. Additionally allows the app to manage your groups and to update group content for groups you are a member of." + }, + { + "Id": "f81125ac-d3b7-4573-a3b2-7099cc39df9e", + "Name": "GroupMember.ReadWrite.All", + "Description": "Allows the app to list groups, read basic properties, read and update the membership of your groups. Group properties and owners cannot be updated and groups cannot be deleted." + }, + { + "Id": "9e4862a5-b68f-479e-848a-4e07e25c9916", + "Name": "IdentityRiskEvent.ReadWrite.All", + "Description": "Allows the app to read and update identity risk event information for all users in your organization on your behalf. Update operations include confirming risk event detections. " + }, + { + "Id": "bb6f654c-d7fd-4ae3-85c3-fc380934f515", + "Name": "IdentityRiskyServicePrincipal.ReadWrite.All", + "Description": "Allows the app to read and update identity risky service principal information for all service principals in your organization, on your behalf. Update operations include dismissing risky service principals." + }, + { + "Id": "e0a7cdbb-08b0-4697-8264-0069786e9674", + "Name": "IdentityRiskyUser.ReadWrite.All", + "Description": "Allows the app to read and update identity risky user information for all users in your organization on your behalf. Update operations include dismissing risky users." + }, + { + "Id": "e383f46e-2787-4529-855e-0e479a3ffac0", + "Name": "Mail.Send", + "Description": "Allows the app to send mail as you." + }, + { + "Id": "a367ab51-6b49-43bf-a716-a1fb06d2a174", + "Name": "Mail.Send.Shared", + "Description": "Allows the app to send mail as you or on-behalf of someone else." + }, + { + "Id": "818c620a-27a9-40bd-a6a5-d96f7d610b4b", + "Name": "MailboxSettings.ReadWrite", + "Description": "Allows the app to read, update, create, and delete your mailbox settings." + }, + { + "Id": "f6a3db3e-f7e8-4ed2-a414-557c8c9830be", + "Name": "Member.Read.Hidden", + "Description": "Allows the app to read the memberships of hidden groups or administrative units on your behalf, for those hidden groups or adminstrative units that you have access to." + }, + { + "Id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", + "Name": "offline_access", + "Description": "Allows the app to see and update the data you gave it access to, even when you are not currently using the app. This does not give the app any additional permissions." + }, + { + "Id": "37f7f235-527c-4136-accd-4a02d197296e", + "Name": "openid", + "Description": "Allows you to sign in to the app with your work or school account and allows the app to read your basic profile information." + }, + { + "Id": "46ca0847-7e6b-426e-9775-ea810a948356", + "Name": "Organization.ReadWrite.All", + "Description": "Allows the app to read and write the organization and related resources, on your behalf. Related resources include things like subscribed skus and tenant branding information." + }, + { + "Id": "346c19ff-3fb2-4e81-87a0-bac9e33990c1", + "Name": "OrgSettings-Forms.ReadWrite.All", + "Description": "Allows the app to read and write organization-wide Microsoft Forms settings on your behalf." + }, + { + "Id": "e67e6727-c080-415e-b521-e3f35d5248e9", + "Name": "PeopleSettings.ReadWrite.All", + "Description": "Allows the application to read and write tenant-wide people settings on your behalf." + }, + { + "Id": "4c06a06a-098a-4063-868e-5dfee3827264", + "Name": "Place.ReadWrite.All", + "Description": "Allows the app to manage organization places (conference rooms and room lists) for calendar events and other applications, on your behalf." + }, + { + "Id": "572fea84-0151-49b2-9301-11cb16974376", + "Name": "Policy.Read.All", + "Description": "Allows the app to read your organization's policies on your behalf." + }, + { + "Id": "b27add92-efb2-4f16-84f5-8108ba77985c", + "Name": "Policy.ReadWrite.ApplicationConfiguration", + "Description": "Allows the app to read and write your organization's application configuration policies on your behalf. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy." + }, + { + "Id": "edb72de9-4252-4d03-a925-451deef99db7", + "Name": "Policy.ReadWrite.AuthenticationFlows", + "Description": "Allows the app to read and write the authentication flow policies for your tenant, on your behalf." + }, + { + "Id": "7e823077-d88e-468f-a337-e18f1f0e6c7c", + "Name": "Policy.ReadWrite.AuthenticationMethod", + "Description": "Allows the app to read and write the authentication method policies for your tenant, on your behalf." + }, + { + "Id": "edd3c878-b384-41fd-95ad-e7407dd775be", + "Name": "Policy.ReadWrite.Authorization", + "Description": "Allows the app to read and write your organization's authorization policy on your behalf. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default." + }, + { + "Id": "ad902697-1014-4ef5-81ef-2b4301988e8c", + "Name": "Policy.ReadWrite.ConditionalAccess", + "Description": "Allows the app to read and write your organization's conditional access policies on your behalf." + }, + { + "Id": "4d135e65-66b8-41a8-9f8b-081452c91774", + "Name": "Policy.ReadWrite.ConsentRequest", + "Description": "Allows the app to read and write your organization's consent request policy on your behalf." + }, + { + "Id": "40b534c3-9552-4550-901b-23879c90bcf9", + "Name": "Policy.ReadWrite.DeviceConfiguration", + "Description": "Allows the app to read and write your organization's device configuration policies on your behalf. For example, device registration policy can limit initial provisioning controls using quota restrictions, additional authentication and authorization checks." + }, + { + "Id": "a8ead177-1889-4546-9387-f25e658e2a79", + "Name": "Policy.ReadWrite.MobilityManagement", + "Description": "Allows the app to read and write your organization's mobility management policies on your behalf. For example, a mobility management policy can set the enrollment scope for a given mobility management application." + }, + { + "Id": "1d89d70c-dcac-4248-b214-903c457af83a", + "Name": "PrivilegedAccess.Read.AzureResources", + "Description": "Allows the app to read time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf." + }, + { + "Id": "a84a9652-ffd3-496e-a991-22ba5529156a", + "Name": "PrivilegedAccess.ReadWrite.AzureResources", + "Description": "Allows the app to request and manage time-based assignment and just-in-time elevation of user privileges to manage  your Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf." + }, + { + "Id": "14dad69e-099b-42c9-810b-d002981feec1", + "Name": "profile", + "Description": "Allows the app to see your basic profile (e.g., name, picture, user name, email address)" + }, + { + "Id": "02e97553-ed7b-43d0-ab3c-f8bace0d040c", + "Name": "Reports.Read.All", + "Description": "Allows an app to read all service usage reports on your behalf. Services that provide usage reports include Office 365 and Azure Active Directory." + }, + { + "Id": "b955410e-7715-4a88-a940-dfd551018df3", + "Name": "ReportSettings.ReadWrite.All", + "Description": "Allows the app to read and update admin report settings, such as whether to display concealed information in reports, on your behalf." + }, + { + "Id": "d01b97e9-cbc0-49fe-810a-750afd5527a3", + "Name": "RoleManagement.ReadWrite.Directory", + "Description": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, on your behalf. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships." + }, + { + "Id": "dc38509c-b87d-4da0-bd92-6bec988bac4a", + "Name": "SecurityActions.ReadWrite.All", + "Description": "Allows the app to read and update security actions, on your behalf." + }, + { + "Id": "6aedf524-7e1c-45a7-bd76-ded8cab8d0fc", + "Name": "SecurityEvents.ReadWrite.All", + "Description": "Allows the app to read your organization’s security events on your behalf. Also allows you to update editable properties in security events." + }, + { + "Id": "128ca929-1a19-45e6-a3b8-435ec44a36ba", + "Name": "SecurityIncident.ReadWrite.All", + "Description": "Allows the app to read and write to all security incidents that you have access to." + }, + { + "Id": "55896846-df78-47a7-aa94-8d3d4442ca7f", + "Name": "ServiceHealth.Read.All", + "Description": "Allows the app to read your tenant's service health information on your behalf.Health information may include service issues or service health overviews." + }, + { + "Id": "eda39fa6-f8cf-4c3c-a909-432c683e4c9b", + "Name": "ServiceMessage.Read.All", + "Description": "Allows the app to read your tenant's service announcement messages on your behalf. Messages may include information about new or changed features." + }, + { + "Id": "aa07f155-3612-49b8-a147-6c590df35536", + "Name": "SharePointTenantSettings.ReadWrite.All", + "Description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive on your behalf." + }, + { + "Id": "89fe6a52-be36-487e-b7d8-d061c450a026", + "Name": "Sites.ReadWrite.All", + "Description": "Allow the application to edit or delete documents and list items in all site collections on your behalf." + }, + { + "Id": "7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0", + "Name": "Team.Create", + "Description": "Allows the app to create teams on your behalf. " + }, + { + "Id": "485be79e-c497-4b35-9400-0e3fa7f2a5d4", + "Name": "Team.ReadBasic.All", + "Description": "Read the names and descriptions of teams, on your behalf." + }, + { + "Id": "4a06efd2-f825-4e34-813e-82a57b03d1ee", + "Name": "TeamMember.ReadWrite.All", + "Description": "Add and remove members from teams, on your behalf. Also allows changing a member's role, for example from owner to non-owner." + }, + { + "Id": "2104a4db-3a2f-4ea0-9dba-143d457dc666", + "Name": "TeamMember.ReadWriteNonOwnerRole.All", + "Description": "Add and remove members from all teams, on your behalf. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role." + }, + { + "Id": "0e755559-83fb-4b44-91d0-4cc721b9323e", + "Name": "TeamsActivity.Read", + "Description": "Allows the app to read your teamwork activity feed." + }, + { + "Id": "48638b3c-ad68-4383-8ac4-e6880ee6ca57", + "Name": "TeamSettings.Read.All", + "Description": "Read all teams' settings, on your behalf." + }, + { + "Id": "39d65650-9d3e-4223-80db-a335590d027e", + "Name": "TeamSettings.ReadWrite.All", + "Description": "Read and change all teams' settings, on your behalf." + }, + { + "Id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e", + "Name": "TeamsTab.Create", + "Description": "Allows the app to create tabs in any team in Microsoft Teams, on your behalf. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs." + }, + { + "Id": "b98bfd41-87c6-45cc-b104-e2de4f0dafb9", + "Name": "TeamsTab.ReadWrite.All", + "Description": "Read and write tabs in any team in Microsoft Teams, on your behalf. This does not give access to the content inside the tabs." + }, + { + "Id": "cac97e40-6730-457d-ad8d-4852fddab7ad", + "Name": "ThreatAssessment.ReadWrite.All", + "Description": "Allows an app to read your organization's threat assessment requests on your behalf. Also allows the app to create new requests to assess threats received by your organization on your behalf." + }, + { + "Id": "73e75199-7c3e-41bb-9357-167164dbb415", + "Name": "UnifiedGroupMember.Read.AsGuest", + "Description": "Allows the app to read basic unified group properties, memberships and owners of the group you are a member of." + }, + { + "Id": "637d7bec-b31e-4deb-acc9-24275642a2c9", + "Name": "User.ManageIdentities.All", + "Description": "Allows the app to read, update and delete identities that are associated with a user's account that you have access to. This controls the identities users can sign-in with." + }, + { + "Id": "204e0828-b5ca-4ad8-b9f3-f32a958e7cc4", + "Name": "User.ReadWrite.All", + "Description": "Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on your behalf." + }, + { + "Id": "aec28ec7-4d02-4e8c-b864-50163aea77eb", + "Name": "UserAuthenticationMethod.Read.All", + "Description": "Allows the app to read authentication methods of all users you have access to in your organization. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods." + }, + { + "Id": "48971fc1-70d7-4245-af77-0beb29b53ee2", + "Name": "UserAuthenticationMethod.ReadWrite", + "Description": "Allows the app to read and write your authentication methods, including phone numbers and Authenticator app settings.This does not allow the app to see secret information like your passwords, or to sign-in or otherwise use your authentication methods." + }, + { + "Id": "424b07a8-1209-4d17-9fe4-9018a93a1024", + "Name": "TeamsTelephoneNumber.ReadWrite.All", + "Description": "Allows the app to read and modify your tenant's acquired telephone number details on behalf of the signed-in admin user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc." + }, + { + "Id": "b7887744-6746-4312-813d-72daeaee7e2d", + "Name": "UserAuthenticationMethod.ReadWrite.All", + "Description": "Allows the app to read and write authentication methods of all users you have access to in your organization. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods." + } + ], + "ApplicationPermissions": [ + { + "Id": "1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9", + "Name": "Application.ReadWrite.All", + "Description": "Allows the app to create, read, update and delete applications and service principals without a signed-in user. Does not allow management of consent grants." + }, + { + "Id": "b0afded3-3588-46d8-8b3d-9842eff778da", + "Name": "AuditLog.Read.All", + "Description": "Allows the app to read and query your audit log activities, without a signed-in user." + }, + { + "Id": "5e1e9171-754d-478c-812c-f1755a9a4c2d", + "Name": "AuditLogsQuery.Read.All", + "Description": "Allows the app to read and query audit logs from all services." + }, + { + "Id": "f3a65bd4-b703-46df-8f7e-0174fea562aa", + "Name": "Channel.Create", + "Description": "Create channels in any team, without a signed-in user." + }, + { + "Id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", + "Name": "Channel.ReadBasic.All", + "Description": "Read all channel names and channel descriptions, without a signed-in user." + }, + { + "Id": "3b55498e-47ec-484f-8136-9013221c06a9", + "Name": "ChannelMember.Read.All", + "Description": "Read the members of all channels, without a signed-in user." + }, + { + "Id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", + "Name": "ChannelMember.ReadWrite.All", + "Description": "Add and remove members from all channels, without a signed-in user. Also allows changing a member's role, for example from owner to non-owner." + }, + { + "Id": "cac88765-0581-4025-9725-5ebc13f729ee", + "Name": "CrossTenantInformation.ReadBasic.All", + "Description": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem without a signed-in user." + }, + { + "Id": "1138cb37-bd11-4084-a2b7-9f71582aeddb", + "Name": "Device.ReadWrite.All", + "Description": "Allows the app to read and write all device properties without a signed in user. Does not allow device creation, device deletion or update of device alternative security identifiers." + }, + { + "Id": "78145de6-330d-4800-a6ce-494ff2d33d07", + "Name": "DeviceManagementApps.ReadWrite.All", + "Description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune, without a signed-in user." + }, + { + "Id": "9241abd9-d0e6-425a-bd4f-47ba86e767a4", + "Name": "DeviceManagementConfiguration.ReadWrite.All", + "Description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups, without a signed-in user." + }, + { + "Id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", + "Name": "DeviceManagementManagedDevices.PrivilegedOperations.All", + "Description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune, without a signed-in user." + }, + { + "Id": "2f51be20-0bb4-4fed-bf7b-db946066c75e", + "Name": "DeviceManagementManagedDevices.Read.All", + "Description": "Allows the app to read the properties of devices managed by Microsoft Intune, without a signed-in user." + }, + { + "Id": "243333ab-4d21-40cb-a475-36241daa0842", + "Name": "DeviceManagementManagedDevices.ReadWrite.All", + "Description": "Allows the app to read and write the properties of devices managed by Microsoft Intune, without a signed-in user. Does not allow high impact operations such as remote wipe and password reset on the device’s owner" + }, + { + "Id": "58ca0d9a-1575-47e1-a3cb-007ef2e4583b", + "Name": "DeviceManagementRBAC.Read.All", + "Description": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user." + }, + { + "Id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", + "Name": "DeviceManagementRBAC.ReadWrite.All", + "Description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user." + }, + { + "Id": "9255e99d-faf5-445e-bbf7-cb71482737c4", + "Name": "DeviceManagementScripts.ReadWrite.All", + "Description": "Allows the app to read and write Microsoft Intune device compliance scripts, device management scripts, device shell scripts, device custom attribute shell scripts and device health scripts, without a signed-in user." + }, + { + "Id": "06a5fe6d-c49d-46a7-b082-56b1b14103c7", + "Name": "DeviceManagementServiceConfig.Read.All", + "Description": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user." + }, + { + "Id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", + "Name": "DeviceManagementServiceConfig.ReadWrite.All", + "Description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user." + }, + { + "Id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61", + "Name": "Directory.Read.All", + "Description": "Allows the app to read data in your organization's directory, such as users, groups and apps, without a signed-in user." + }, + { + "Id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", + "Name": "Directory.ReadWrite.All", + "Description": "Allows the app to read and write data in your organization's directory, such as users, and groups, without a signed-in user. Does not allow user or group deletion." + }, + { + "Id": "dbb9058a-0e50-45d7-ae91-66909b5d4664", + "Name": "Domain.Read.All", + "Description": "Allows the app to read all domain properties without a signed-in user." + }, + { + "Id": "75359482-378d-4052-8f01-80520e7db3cd", + "Name": "Files.ReadWrite.All", + "Description": "Allows the app to read, create, update and delete all files in all site collections without a signed in user." + }, + { + "Id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", + "Name": "Group.Create", + "Description": "Allows the app to create groups without a signed-in user." + }, + { + "Id": "5b567255-7703-4780-807c-7be8301ae99b", + "Name": "Group.Read.All", + "Description": "Allows the app to read group properties and memberships, and read conversations for all groups, without a signed-in user." + }, + { + "Id": "62a82d76-70ea-41e2-9197-370581804d09", + "Name": "Group.ReadWrite.All", + "Description": "Allows the app to create groups, read all group properties and memberships, update group properties and memberships, and delete groups. Also allows the app to read and write conversations. All of these operations can be performed by the app without a signed-in user." + }, + { + "Id": "dbaae8cf-10b5-4b86-a4a1-f871c94c6695", + "Name": "GroupMember.ReadWrite.All", + "Description": "Allows the app to list groups, read basic properties, read and update the membership of the groups this app has access to without a signed-in user. Group properties and owners cannot be updated and groups cannot be deleted." + }, + { + "Id": "19da66cb-0fb0-4390-b071-ebc76a349482", + "Name": "InformationProtectionPolicy.Read.All", + "Description": "Allows an app to read published sensitivity labels and label policy settings for the entire organization or a specific user, without a signed in user." + }, + { + "Id": "6931bccd-447a-43d1-b442-00a195474933", + "Name": "MailboxSettings.ReadWrite", + "Description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail." + }, + { + "Id": "292d869f-3427-49a8-9dab-8c70152b74e9", + "Name": "Organization.ReadWrite.All", + "Description": "Allows the app to read and write the organization and related resources, without a signed-in user. Related resources include things like subscribed skus and tenant branding information." + }, + { + "Id": "2cb92fee-97a3-4034-8702-24a6f5d0d1e9", + "Name": "OrgSettings-Forms.ReadWrite.All", + "Description": "Allows the app to read and write organization-wide Microsoft Forms settings, without a signed-in user." + }, + { + "Id": "b6890674-9dd5-4e42-bb15-5af07f541ae1", + "Name": "PeopleSettings.ReadWrite.All", + "Description": "Allows the application to read and write tenant-wide people settings without a signed-in user." + }, + { + "Id": "913b9306-0ce1-42b8-9137-6a7df690a760", + "Name": "Place.Read.All", + "Description": "Allows the app to read company places (conference rooms and room lists) for calendar events and other applications, without a signed-in user." + }, + { + "Id": "246dd0d5-5bd0-4def-940b-0421030a5b68", + "Name": "Policy.Read.All", + "Description": "Allows the app to read all your organization's policies without a signed in user." + }, + { + "Id": "be74164b-cff1-491c-8741-e671cb536e13", + "Name": "Policy.ReadWrite.ApplicationConfiguration", + "Description": "Allows the app to read and write your organization's application configuration policies, without a signed-in user. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy." + }, + { + "Id": "25f85f3c-f66c-4205-8cd5-de92dd7f0cec", + "Name": "Policy.ReadWrite.AuthenticationFlows", + "Description": "Allows the app to read and write all authentication flow policies for the tenant, without a signed-in user." + }, + { + "Id": "29c18626-4985-4dcd-85c0-193eef327366", + "Name": "Policy.ReadWrite.AuthenticationMethod", + "Description": "Allows the app to read and write all authentication method policies for the tenant, without a signed-in user. " + }, + { + "Id": "01c0a623-fc9b-48e9-b794-0756f8e8f067", + "Name": "Policy.ReadWrite.ConditionalAccess", + "Description": "Allows the app to read and write your organization's conditional access policies, without a signed-in user." + }, + { + "Id": "999f8c63-0a38-4f1b-91fd-ed1947bdd1a9", + "Name": "Policy.ReadWrite.ConsentRequest", + "Description": "Allows the app to read and write your organization's consent requests policy without a signed-in user." + }, + { + "Id": "338163d7-f101-4c92-94ba-ca46fe52447c", + "Name": "Policy.ReadWrite.CrossTenantAccess", + "Description": "Allows the app to read and write your organization's cross tenant access policies without a signed-in user." + }, + { + "Id": "2f6817f8-7b12-4f0f-bc18-eeaf60705a9e", + "Name": "PrivilegedAccess.ReadWrite.AzureADGroup", + "Description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups in your organization, without a signed-in user." + }, + { + "Id": "230c1aed-a721-4c5d-9cb4-a90514e508ef", + "Name": "Reports.Read.All", + "Description": "Allows an app to read all service usage reports without a signed-in user. Services that provide usage reports include Office 365 and Azure Active Directory." + }, + { + "Id": "2a60023f-3219-47ad-baa4-40e17cd02a1d", + "Name": "ReportSettings.ReadWrite.All", + "Description": "Allows the app to read and update all admin report settings, such as whether to display concealed information in reports, without a signed-in user." + }, + { + "Id": "025d3225-3f02-4882-b4c0-cd5b541a4e80", + "Name": "RoleManagement.ReadWrite.Exchange", + "Description": "Allows the app to read and manage the role-based access control (RBAC) settings for your organization's Exchange Online service, without a signed-in user. This includes reading, creating, updating, and deleting Exchange management role definitions, role groups, role group membership, role assignments, management scopes, and role assignment policies." + }, + { + "Id": "04c55753-2244-4c25-87fc-704ab82a4f69", + "Name": "SecurityAnalyzedMessage.ReadWrite.All", + "Description": "Read email metadata and security detection details, and execute remediation actions like deleting an email, without a signed-in user." + }, + { + "Id": "bf394140-e372-4bf9-a898-299cfc7564e5", + "Name": "SecurityEvents.Read.All", + "Description": "Allows the app to read your organization’s security events without a signed-in user." + }, + { + "Id": "45cc0394-e837-488b-a098-1918f48d186c", + "Name": "SecurityIncident.Read.All", + "Description": "Allows the app to read all security incidents, without a signed-in user." + }, + { + "Id": "34bf0e97-1971-4929-b999-9e2442d941d7", + "Name": "SecurityIncident.ReadWrite.All", + "Description": "Allows the app to read and write to all security incidents, without a signed-in user." + }, + { + "Id": "19b94e34-907c-4f43-bde9-38b1909ed408", + "Name": "SharePointTenantSettings.ReadWrite.All", + "Description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive, without a signed-in user." + }, + { + "Id": "a82116e5-55eb-4c41-a434-62fe8a61c773", + "Name": "Sites.FullControl.All", + "Description": "Allows the app to have full control of all site collections without a signed in user." + }, + { + "Id": "0121dc95-1b9f-4aed-8bac-58c5ac466691", + "Name": "TeamMember.ReadWrite.All", + "Description": "Add and remove members from all teams, without a signed-in user. Also allows changing a team member's role, for example from owner to non-owner." + }, + { + "Id": "4437522e-9a86-4a41-a7da-e380edd4a97d", + "Name": "TeamMember.ReadWriteNonOwnerRole.All", + "Description": "Add and remove members from all teams, without a signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role." + }, + { + "Id": "741f803b-c850-494e-b5df-cde7c675a1ca", + "Name": "User.ReadWrite.All", + "Description": "Allows the app to read and update user profiles without a signed in user." + }, + { + "Id": "0a42382f-155c-4eb1-9bdc-21548ccaa387", + "Name": "TeamsTelephoneNumber.ReadWrite.All", + "Description": "Allows the app to read your tenant's acquired telephone number details, without a signed-in user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc." + }, + { + "Id": "50483e42-d915-4231-9639-7fdb7fd190e5", + "Name": "UserAuthenticationMethod.ReadWrite.All", + "Description": "Allows the application to read and write authentication methods of all users in your organization, without a signed-in user. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods" + } + ] + }, + { + "AppId": "fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd", + "DisplayName": "Microsoft Partner Center", + "DelegatedPermissions": [ + { + "Id": "1cebfa2a-fb4d-419e-b5f9-839b4383e05a", + "Name": "user_impersonation", + "Description": "Allow the application to access Partner Center on your behalf" + } + ], + "ApplicationPermissions": [] + }, + { + "AppId": "00000002-0000-0ff1-ce00-000000000000", + "DisplayName": "Office 365 Exchange Online", + "DelegatedPermissions": [ + { + "Id": "ab4f2b77-0b06-4fc1-a9de-02113fc2ab7c", + "Name": "Exchange.Manage", + "Description": "Allows the app to manage your organization's Exchange environment, such as mailboxes, groups, and other configuration objects. To enable management actions, an admin must assign you the appropriate roles." + }, + { + "Id": "bbd1ca91-75e0-4814-ad94-9c5dbbae3415", + "Name": "Calendars.ReadWrite.All", + "Description": "Allows the app to read, update, create and delete events in all calendars in your organization you have permissions to access. This includes delegate and shared calendars. " + }, + { + "Id": "2e83d72d-8895-4b66-9eea-abb43449ab8b", + "Name": "MailboxSettings.ReadWrite", + "Description": "Allows the app to read, update, create, and delete your mailbox settings." + } + ], + "ApplicationPermissions": [ + { + "Id": "dc50a0fb-09a3-484d-be87-e023b12c6440", + "Name": "Exchange.ManageAsApp", + "Description": "Allows the app to manage the organization's Exchange environment without any user interaction. This includes mailboxes, groups, and other configuration objects. To enable management actions, an admin must assign the appropriate roles directly to the app." + }, + { + "Id": "ef54d2bf-783f-4e0f-bca1-3210c0444d99", + "Name": "Calendars.ReadWrite.All", + "Description": "Allows the app to create, read, update, and delete events of all calendars without a signed-in user." + }, + { + "Id": "f9156939-25cd-4ba8-abfe-7fabcf003749", + "Name": "MailboxSettings.ReadWrite", + "Description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail." + } + ] + }, + { + "AppId": "00000003-0000-0ff1-ce00-000000000000", + "DisplayName": "Office 365 SharePoint Online", + "DelegatedPermissions": [ + { + "Id": "56680e0d-d2a3-4ae1-80d8-3c4f2100e3d0", + "Name": "AllSites.FullControl", + "Description": "Allows the app to have full control of all site collections on your behalf." + }, + { + "Id": "AllProfiles.Manage", + "Name": "AllProfiles.Manage", + "Description": "Manually added" + } + ], + "ApplicationPermissions": [] + }, + { + "AppId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "DisplayName": "Skype and Teams Tenant Admin API", + "DelegatedPermissions": [ + { + "Id": "e60370c1-e451-437e-aa6e-d76df38e5f15", + "Name": "user_impersonation", + "Description": "Access Microsoft Teams and Skype for Business data based on the user's role membership" + } + ], + "ApplicationPermissions": [] + }, + { + "AppId": "fc780465-2017-40d4-a0c5-307022471b92", + "DisplayName": "WindowsDefenderATP", + "DelegatedPermissions": [ + { + "Id": "63a677ce-818c-4409-9d12-5c6d2e2a6bfe", + "Name": "Vulnerability.Read", + "Description": "Allows the app to read Threat and Vulnerability Management vulnerability information on behalf of the signed-in user" + } + ], + "ApplicationPermissions": [ + { + "Id": "41269fc5-d04d-4bfd-bce7-43a51cea049a", + "Name": "Vulnerability.Read.All", + "Description": "Allows the app to read any Threat and Vulnerability Management vulnerability information" + } + ] + } +] diff --git a/CIPPActivityFunction/function.json b/CIPPActivityFunction/function.json new file mode 100644 index 000000000000..5b4af75973bd --- /dev/null +++ b/CIPPActivityFunction/function.json @@ -0,0 +1,16 @@ +{ + "scriptFile": "../Modules/CippEntrypoints/CippEntrypoints.psm1", + "entryPoint": "Receive-CippActivityTrigger", + "bindings": [ + { + "name": "Item", + "type": "activityTrigger", + "direction": "in" + }, + { + "name": "starter", + "type": "durableClient", + "direction": "in" + } + ] +} diff --git a/CIPPHttpTrigger/function.json b/CIPPHttpTrigger/function.json new file mode 100644 index 000000000000..bfd835e6a6a8 --- /dev/null +++ b/CIPPHttpTrigger/function.json @@ -0,0 +1,31 @@ +{ + "scriptFile": "../Modules/CippEntrypoints/CippEntrypoints.psm1", + "entryPoint": "Receive-CippHttpTrigger", + "bindings": [ + { + "authLevel": "anonymous", + "type": "httpTrigger", + "direction": "in", + "name": "Request", + "methods": [ + "get", + "post", + "patch", + "put", + "delete", + "options" + ], + "route": "{*CIPPEndpoint}" + }, + { + "type": "http", + "direction": "out", + "name": "Response" + }, + { + "name": "starter", + "type": "durableClient", + "direction": "in" + } + ] +} diff --git a/CIPPOrchestrator/function.json b/CIPPOrchestrator/function.json new file mode 100644 index 000000000000..e7403ca509ab --- /dev/null +++ b/CIPPOrchestrator/function.json @@ -0,0 +1,11 @@ +{ + "scriptFile": "../Modules/CippEntrypoints/CippEntrypoints.psm1", + "entryPoint": "Receive-CippOrchestrationTrigger", + "bindings": [ + { + "name": "Context", + "type": "orchestrationTrigger", + "direction": "in" + } + ] +} diff --git a/CIPPTimer/function.json b/CIPPTimer/function.json new file mode 100644 index 000000000000..55e4edb35f11 --- /dev/null +++ b/CIPPTimer/function.json @@ -0,0 +1,17 @@ +{ + "scriptFile": "../Modules/CippEntrypoints/CippEntrypoints.psm1", + "entryPoint": "Receive-CippTimerTrigger", + "bindings": [ + { + "name": "Timer", + "schedule": "0 0/15 * * * *", + "direction": "in", + "type": "timerTrigger" + }, + { + "name": "starter", + "type": "durableClient", + "direction": "in" + } + ] +} diff --git a/CIPPTimers.json b/CIPPTimers.json new file mode 100644 index 000000000000..f76dba8941e2 --- /dev/null +++ b/CIPPTimers.json @@ -0,0 +1,244 @@ +[ + { + "Id": "c0c48d71-7918-4828-bc25-0e8c28a171a2", + "Command": "Start-DurableCleanup", + "Description": "Timer function to cleanup durable functions", + "Cron": "0 */15 * * * *", + "Priority": 0, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "76dc2e2e-eb89-47f7-bd9f-8aaebfe854c7", + "Command": "Start-UserTasksOrchestrator", + "Description": "Orchestrator to process user scheduled tasks", + "Cron": "0 */15 * * * *", + "Priority": 1, + "RunOnProcessor": true, + "PreferredProcessor": "usertasks" + }, + { + "Id": "168decf3-7ddd-471e-ab46-8b40be0f18ae", + "Command": "Start-CIPPProcessorQueue", + "Description": "Timer to handle user initiated tasks", + "Cron": "0 */15 * * * *", + "Priority": 1, + "RunOnProcessor": true + }, + { + "Id": "44a40668-ed71-403c-8c26-b32e320086ad", + "Command": "Start-AuditLogOrchestrator", + "Description": "Orchestrator to download audit logs", + "Cron": "0 */15 * * * *", + "Priority": 2, + "RunOnProcessor": true, + "PreferredProcessor": "auditlog", + "IsSystem": true + }, + { + "Id": "01cd512a-15c4-44a9-b8cb-1e5d879cfd2d", + "Command": "Start-AuditLogProcessingOrchestrator", + "Description": "Orchestrator to process audit logs", + "Cron": "0 */15 * * * *", + "Priority": 3, + "RunOnProcessor": true, + "PreferredProcessor": "auditlog", + "IsSystem": true + }, + { + "Id": "03475c86-4314-4d7b-90f2-5a0639e3899b", + "Command": "Start-AuditLogSearchCreation", + "Description": "Timer to create audit log searches", + "Cron": "0 */30 * * * *", + "Priority": 4, + "RunOnProcessor": true, + "PreferredProcessor": "auditlog", + "IsSystem": true + }, + { + "Id": "5ff6c500-e420-4a3b-8532-ace2e4da4f7d", + "Command": "Start-ApplicationOrchestrator", + "Description": "Orchestrator to process application uploads", + "Cron": "0 0 */12 * * *", + "Priority": 2, + "RunOnProcessor": true + }, + { + "Id": "5b3bb926-d107-471e-8787-3b22b0d4dbbe", + "Command": "Start-WebhookOrchestrator", + "Description": "Orchestrator to process webhooks", + "Cron": "0 */15 * * * *", + "Priority": 3, + "RunOnProcessor": true + }, + { + "Id": "9b0c8e50-f798-49db-9a8b-dbcc0fcadeea", + "Command": "Start-StandardsOrchestrator", + "Description": "Orchestrator to process standards", + "Cron": "0 0 */4 * * *", + "Priority": 4, + "RunOnProcessor": true, + "PreferredProcessor": "standards" + }, + { + "Id": "4d80205c-674d-4fc1-abeb-a1ec37e0d796", + "Command": "Start-DriftStandardsOrchestrator", + "Description": "Orchestrator to process drift standards", + "Cron": "0 0 */12 * * *", + "Priority": 5, + "RunOnProcessor": true, + "PreferredProcessor": "standards" + }, + { + "Id": "97145a1d-28f0-4bb2-b929-5a43517d23cc", + "Command": "Start-SchedulerOrchestrator", + "Description": "Orchestrator to process system scheduled tasks", + "Cron": "0 0 * * * *", + "Priority": 6, + "RunOnProcessor": true + }, + { + "Id": "ed7b5241-1cb9-499b-8f5b-1013ba5764b4", + "Command": "Set-CIPPGDAPInviteGroups", + "Description": "Orchestrator to map the groups for GDAP invites", + "Cron": "0 0 */3 * * *", + "Priority": 5, + "RunOnProcessor": true + }, + { + "Id": "0967c860-3a57-4860-8f33-e5136eae7b4e", + "Command": "Start-TenantDynamicGroupOrchestrator", + "Description": "Orchestrator to update dynamic tenant groups", + "Cron": "0 0 */4 * * *", + "Priority": 6, + "RunOnProcessor": true + }, + { + "Id": "4ca242d0-8dc8-4256-b0ed-186599f4233f", + "Command": "Start-UpdateTokensTimer", + "Description": "Orchestrator to update tokens", + "Cron": "0 0 0 * * 0", + "Priority": 7, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "ebe981b6-4417-406e-a1a5-7b8279058841", + "Command": "Start-CIPPGraphSubscriptionRenewalTimer", + "Description": "Orchestrator to renew Graph subscriptions", + "Cron": "0 15 * * * *", + "Priority": 8, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "c2ebde3f-fa35-45aa-8a6b-91c835050b79", + "Command": "Start-DomainOrchestrator", + "Description": "Orchestrator to process domains", + "Cron": "0 0 0 * * *", + "Priority": 10, + "RunOnProcessor": true + }, + { + "Id": "f82345da-e370-4b15-8167-be148cfd04af", + "Command": "Get-Tenants", + "Parameters": { + "TriggerRefresh": true + }, + "Description": "Update tenants", + "Cron": "0 0 23 * * *", + "Priority": 10, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "d9ff3af4-bd34-40d6-b12a-8fa24463f331", + "Command": "Start-UpdatePermissionsOrchestrator", + "Description": "Orchestrator to update CPV permissions", + "Cron": "0 0 0 * * *", + "Priority": 10, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "467787cf-01c5-4d20-8097-c2eef691a20e", + "Command": "Start-BillingTimer", + "Description": "Timer to process billing", + "Cron": "0 0 0 * * *", + "Priority": 12, + "RunOnProcessor": true + }, + { + "Id": "80070b4f-95ed-4e5f-be4c-9e339306d4aa", + "Command": "Start-BPAOrchestrator", + "Description": "Orchestrator to process BPA reports", + "Cron": "0 0 3 * * *", + "Priority": 10, + "RunOnProcessor": true + }, + { + "Id": "54c39540-fe91-4795-8613-ac4295751a51", + "Command": "Start-ExtensionOrchestrator", + "Description": "Orchestrator to process extensions", + "Cron": "0 0 */2 * * *", + "Priority": 12, + "RunOnProcessor": true + }, + { + "Id": "3fb9745b-08c9-411b-bfac-dc48087489d5", + "Command": "Start-CIPPStatsTimer", + "Description": "Timer to process CIPP stats", + "Cron": "0 0 0 * * *", + "Priority": 15, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "f74a4540-c811-4037-997c-0d32d7d5742f", + "Command": "Start-TableCleanup", + "Description": "Timer to cleanup tables", + "Cron": "0 0 23 * * *", + "Priority": 20, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "e87db59d-3386-4a51-8274-da9aeb6793e3", + "Command": "Get-Tenants", + "Parameters": { + "CleanOld": true + }, + "Description": "Timer to cleanup old tenants", + "Cron": "0 0 0 * * *", + "Priority": 20, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "b8f3c2e1-5d4a-4f7b-9a2c-1e6d8f3b5a7c", + "Command": "Start-BackupRetentionCleanup", + "Description": "Timer to cleanup old backups based on retention policy", + "Cron": "0 0 2 * * *", + "Priority": 21, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "9a7f8e6d-5c4b-3a2d-1e0f-9b8c7d6e5f4a", + "Command": "Start-CIPPDBCacheOrchestrator", + "Description": "Timer to collect and cache Microsoft Graph data for all tenants", + "Cron": "0 0 3 * * *", + "Priority": 22, + "RunOnProcessor": true, + "IsSystem": true + }, + { + "Id": "1f2e3d4c-5b6a-7c8d-9e0f-1a2b3c4d5e6f", + "Command": "Start-TestsOrchestrator", + "Description": "Timer to run security and compliance tests against cached data", + "Cron": "0 0 4 * * *", + "Priority": 23, + "RunOnProcessor": true, + "IsSystem": true + } +] diff --git a/Cache_SAMSetup/PermissionsTranslator.json b/Cache_SAMSetup/PermissionsTranslator.json new file mode 100644 index 000000000000..204fe8532c4f --- /dev/null +++ b/Cache_SAMSetup/PermissionsTranslator.json @@ -0,0 +1,5350 @@ +[ + { + "description": "Allows Exchange Management as app", + "displayName": "Manage Exchange As Application ", + "id": "dc50a0fb-09a3-484d-be87-e023b12c6440", + "origin": "Application (Office 365 Exchange Online)", + "value": "Exchange.ManageAsApp" + }, + { + "description": "Allows the app to read a basic set of profile properties of other users in your organization without a signed-in user. Includes display name, first and last name, email address, open extensions, and photo.", + "displayName": "Read all users' basic profiles", + "id": "97235f07-e226-4f63-ace3-39588e11d3a1", + "origin": "Application", + "value": "User.ReadBasic.All" + }, + { + "description": "Allows the app to read all\u00a0class assignments without grades for all users without a signed-in user.", + "displayName": "Read all class assignments without grades", + "id": "6e0a958b-b7fc-4348-b7c4-a6ab9fd3dd0e", + "origin": "Application", + "value": "EduAssignments.ReadBasic.All" + }, + { + "description": "Allows the app to create, read, update and delete all\u00a0class assignments without grades for all users without a signed-in user.", + "displayName": "Create, read, update and delete all\u00a0class assignments without grades", + "id": "f431cc63-a2de-48c4-8054-a34bc093af84", + "origin": "Application", + "value": "EduAssignments.ReadWriteBasic.All" + }, + { + "description": "Allows the app to read all\u00a0class assignments with grades for all users without a signed-in user.", + "displayName": "Read all class assignments with grades", + "id": "4c37e1b6-35a1-43bf-926a-6f30f2cdf585", + "origin": "Application", + "value": "EduAssignments.Read.All" + }, + { + "description": "Allows the app to create, read, update and delete all\u00a0class assignments with grades for all users without a signed-in user.", + "displayName": "Create, read, update and delete all\u00a0class assignments with grades", + "id": "0d22204b-6cad-4dd0-8362-3e3f2ae699d9", + "origin": "Application", + "value": "EduAssignments.ReadWrite.All" + }, + { + "description": "Allows\u00a0the\u00a0app\u00a0to\u00a0read\u00a0subject\u00a0rights requests\u00a0without a\u00a0signed-in\u00a0user.", + "displayName": "Read\u00a0all subject\u00a0rights requests", + "id": "ee1460f0-368b-4153-870a-4e1ca7e72c42", + "origin": "Application", + "value": "SubjectRightsRequest.Read.All" + }, + { + "description": "Allows\u00a0the\u00a0app\u00a0to\u00a0read\u00a0and\u00a0write subject\u00a0rights requests\u00a0without a signed in user.", + "displayName": "Read\u00a0and\u00a0write\u00a0all subject\u00a0rights requests", + "id": "8387eaa4-1a3c-41f5-b261-f888138e6041", + "origin": "Application", + "value": "SubjectRightsRequest.ReadWrite.All" + }, + { + "description": "Allows the app to read attack simulation and training data for an organization without a signed-in user.", + "displayName": "Read attack simulation data of an organization", + "id": "93283d0a-6322-4fa8-966b-8c121624760d", + "origin": "Application", + "value": "AttackSimulation.Read.All" + }, + { + "description": "Allows custom authentication extensions associated with the app to receive HTTP requests triggered by an authentication event. The request can include information about a user, client and resource service principals, and other information about the authentication.", + "displayName": "Receive custom authentication extension HTTP requests", + "id": "214e810f-fda8-4fd7-a475-29461495eb00", + "origin": "Application", + "value": "CustomAuthenticationExtension.Receive.Payload" + }, + { + "description": "Allows the app to read and write your organization's directory access review default policy without a signed-in user.", + "displayName": "Read and write your organization's directory access review default policy", + "id": "77c863fd-06c0-47ce-a7eb-49773e89d319", + "origin": "Application", + "value": "Policy.ReadWrite.AccessReview" + }, + { + "description": "Allows the app to create groups, read all group properties and memberships, update group properties and memberships, and delete groups. Also allows the app to read and write conversations. All of these operations can be performed by the app without a signed-in user.", + "displayName": "Read and write all groups", + "id": "62a82d76-70ea-41e2-9197-370581804d09", + "origin": "Application", + "value": "Group.ReadWrite.All" + }, + { + "description": "Allows the app to read group properties and memberships, and read\u00a0conversations for all groups, without a signed-in user.", + "displayName": "Read all groups", + "id": "5b567255-7703-4780-807c-7be8301ae99b", + "origin": "Application", + "value": "Group.Read.All" + }, + { + "description": "Allows the app to read your organization's threat submissions and threat submission policies without a signed-in user. Also allows the app to create new threat submissions without a signed-in user.", + "displayName": "Read and write all of the organization's threat submissions", + "id": "d72bdbf4-a59b-405c-8b04-5995895819ac", + "origin": "Application", + "value": "ThreatSubmission.ReadWrite.All" + }, + { + "description": "Allows an app to read Bookings appointments, businesses, customers, services, and staff without a signed-in user. ", + "displayName": "Read all Bookings related resources.", + "id": "6e98f277-b046-4193-a4f2-6bf6a78cd491", + "origin": "Application", + "value": "Bookings.Read.All" + }, + { + "description": "Allows an app to read and write Bookings appointments and customers, and additionally allows reading businesses, services, and staff without a signed-in user. ", + "displayName": "Read and write all Bookings related resources.", + "id": "9769393e-5a9f-4302-9e3d-7e018ecb64a7", + "origin": "Application", + "value": "BookingsAppointment.ReadWrite.All" + }, + { + "description": "Allows the application to read any data from Records Management, such as configuration, labels, and policies without the signed in user.", + "displayName": "Read Records Management configuration,\u00a0labels and policies", + "id": "ac3a2b8e-03a3-4da9-9ce0-cbe28bf1accd", + "origin": "Application", + "value": "RecordsManagement.Read.All" + }, + { + "description": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies without the signed in user.", + "displayName": "Read and write Records Management configuration, labels and policies", + "id": "eb158f57-df43-4751-8b21-b8932adb3d34", + "origin": "Application", + "value": "RecordsManagement.ReadWrite.All" + }, + { + "description": "Allows the app to read details of delegated admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups without a signed-in user.", + "displayName": "Read Delegated Admin relationships with customers", + "id": "f6e9e124-4586-492f-adc0-c6f96e4823fd", + "origin": "Application", + "value": "DelegatedAdminRelationship.Read.All" + }, + { + "description": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers and role assignments to security groups for active Delegated Admin relationships without a signed-in user.", + "displayName": "Manage Delegated Admin relationships with customers", + "id": "cc13eba4-8cd8-44c6-b4d4-f93237adce58", + "origin": "Application", + "value": "DelegatedAdminRelationship.ReadWrite.All" + }, + { + "description": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, without a signed-in user. This includes reading and managing Cloud PC role definitions and memberships.", + "displayName": "Read and write all Cloud PC RBAC settings", + "id": "274d0592-d1b6-44bd-af1d-26d259bcb43a", + "origin": "Application", + "value": "RoleManagement.ReadWrite.CloudPC" + }, + { + "description": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, without a signed-in user.", + "displayName": "Read Cloud PC RBAC settings", + "id": "031a549a-bb80-49b6-8032-2068448c6a3c", + "origin": "Application", + "value": "RoleManagement.Read.CloudPC" + }, + { + "description": "Allows the app to read custom security attribute assignments for all principals in the tenant without a signed in user.", + "displayName": "Read custom security attribute assignments", + "id": "3b37c5a4-1226-493d-bec3-5d6c6b866f3f", + "origin": "Application", + "value": "CustomSecAttributeAssignment.Read.All" + }, + { + "description": "Allows the app to read custom security attribute definitions for the tenant without a signed in user.", + "displayName": "Read custom security attribute definitions", + "id": "b185aa14-d8d2-42c1-a685-0f5596613624", + "origin": "Application", + "value": "CustomSecAttributeDefinition.Read.All" + }, + { + "description": "Allows the app to read all external connections without a signed-in user.", + "displayName": "Read all external connections", + "id": "1914711b-a1cb-4793-b019-c2ce0ed21b8c", + "origin": "Application", + "value": "ExternalConnection.Read.All" + }, + { + "description": "Allows the app to read and write all external connections without a signed-in user.", + "displayName": "Read and write all external connections", + "id": "34c37bc0-2b40-4d5e-85e1-2365cd256d79", + "origin": "Application", + "value": "ExternalConnection.ReadWrite.All" + }, + { + "description": "Allows the app to read all external items without a signed-in user.", + "displayName": "Read all external items", + "id": "7a7cffad-37d2-4f48-afa4-c6ab129adcc2", + "origin": "Application", + "value": "ExternalItem.Read.All" + }, + { + "description": "Allows the app to read and write your organization's cross tenant access policies without a signed-in user.", + "displayName": "Read and write your organization's cross tenant access policies", + "id": "338163d7-f101-4c92-94ba-ca46fe52447c", + "origin": "Application", + "value": "Policy.ReadWrite.CrossTenantAccess" + }, + { + "description": "Allows the app to read and write custom security attribute definitions for the tenant without a signed in user.", + "displayName": "Read and write custom security attribute definitions", + "id": "12338004-21f4-4896-bf5e-b75dfaf1016d", + "origin": "Application", + "value": "CustomSecAttributeDefinition.ReadWrite.All" + }, + { + "description": "Allows the app to read and write custom security attribute assignments for all principals in the tenant without a signed in user.", + "displayName": "Read and write custom security attribute assignments", + "id": "de89b5e4-5b8f-48eb-8925-29c2b33bd8bd", + "origin": "Application", + "value": "CustomSecAttributeAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to read and write to all security incidents, without a signed-in user.", + "displayName": "Read and write to all security incidents", + "id": "34bf0e97-1971-4929-b999-9e2442d941d7", + "origin": "Application", + "value": "SecurityIncident.ReadWrite.All" + }, + { + "description": "Allows the app to read all security incidents, without a signed-in user.", + "displayName": "Read all security incidents", + "id": "45cc0394-e837-488b-a098-1918f48d186c", + "origin": "Application", + "value": "SecurityIncident.Read.All" + }, + { + "description": "Allows the app to read and write to all security alerts, without a signed-in user.", + "displayName": "Read and write to all security alerts", + "id": "ed4fca05-be46-441f-9803-1873825f8fdb", + "origin": "Application", + "value": "SecurityAlert.ReadWrite.All" + }, + { + "description": "Allows the app to read all security alerts, without a signed-in user.", + "displayName": "Read all security alerts", + "id": "472e4a4d-bb4a-4026-98d1-0b0d74cb74a5", + "origin": "Application", + "value": "SecurityAlert.Read.All" + }, + { + "description": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects without a signed-in user.", + "displayName": "Read and write all eDiscovery objects", + "id": "b2620db1-3bf7-4c5b-9cb9-576d29eac736", + "origin": "Application", + "value": "eDiscovery.ReadWrite.All" + }, + { + "description": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects without a signed-in user.", + "displayName": "Read all eDiscovery objects", + "id": "50180013-6191-4d1e-a373-e590ff4e66af", + "origin": "Application", + "value": "eDiscovery.Read.All" + }, + { + "description": "Allows the app to run hunting queries, without a signed-in user.", + "displayName": "Run hunting queries", + "id": "dd98c7f5-2d42-42d3-a0e4-633161547251", + "origin": "Application", + "value": "ThreatHunting.Read.All" + }, + { + "description": "Allow the app to read the management data for Teams devices, without a signed-in user.", + "displayName": "Read Teams devices", + "id": "0591bafd-7c1c-4c30-a2a5-2b9aacb1dfe8", + "origin": "Application", + "value": "TeamworkDevice.Read.All" + }, + { + "description": "Allow the app to read and write the management data for Teams devices, without a signed-in user.", + "displayName": "Read and write Teams devices", + "id": "79c02f5b-bd4f-4713-bc2c-a8a4a66e127b", + "origin": "Application", + "value": "TeamworkDevice.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risky service principal for your organization, without a signed-in user.", + "displayName": "Read and write all identity risky service principal information", + "id": "cb8d6980-6bcb-4507-afec-ed6de3a2d798", + "origin": "Application", + "value": "IdentityRiskyServicePrincipal.ReadWrite.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for any user, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all users", + "id": "3c42dec6-49e8-4a0a-b469-36cff0d9da93", + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForUser.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all teams", + "id": "91c32b81-0ef0-453f-a5c7-4ce2e562f449", + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForTeam.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all chats", + "id": "9f62e4a2-a2d6-4350-b28b-d244728c4f86", + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForChat.All" + }, + { + "description": "Allows the app to read all risky service principal information for your organization, without a signed-in user.", + "displayName": "Read all identity risky service principal information", + "id": "607c7344-0eed-41e5-823a-9695ebe1b7b0", + "origin": "Application", + "value": "IdentityRiskyServicePrincipal.Read.All" + }, + { + "description": "Allows the app to read and write search configurations, without a signed-in user.", + "displayName": "Read and write your organization's search configuration", + "id": "0e778b85-fefa-466d-9eec-750569d92122", + "origin": "Application", + "value": "SearchConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read search configurations, without a signed-in user.", + "displayName": "Read your organization's search configuration", + "id": "ada977a5-b8b1-493b-9a91-66c206d76ecf", + "origin": "Application", + "value": "SearchConfiguration.Read.All" + }, + { + "description": "Allows the app to read online meeting artifacts in your organization, without a signed-in user.", + "displayName": "Read online meeting artifacts", + "id": "df01ed3b-eb61-4eca-9965-6b3d789751b2", + "origin": "Application", + "value": "OnlineMeetingArtifact.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete apps in the app catalogs without a signed-in user.", + "displayName": "Read and write to all app catalogs", + "id": "dc149144-f292-421e-b185-5953f2e98d7f", + "origin": "Application", + "value": "AppCatalog.ReadWrite.All" + }, + { + "description": "Allows the app to read apps in the app catalogs without a signed-in user.", + "displayName": "Read all app catalogs", + "id": "e12dae10-5a57-4817-b79d-dfbec5348930", + "origin": "Application", + "value": "AppCatalog.Read.All" + }, + { + "description": "Allows the app to manage workforce integrations to synchronize data from Microsoft Teams Shifts, without a signed-in user.", + "displayName": "Read and write workforce integrations", + "id": "202bf709-e8e6-478e-bcfd-5d63c50b68e3", + "origin": "Application", + "value": "WorkforceIntegration.ReadWrite.All" + }, + { + "description": "Allows the app to read all presence information and write activity and availability of all users in the directory without a signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, time zone and location.", + "displayName": "Read and write presence information for all users", + "id": "83cded22-8297-4ff6-a7fa-e97e9545a259", + "origin": "Application", + "value": "Presence.ReadWrite.All" + }, + { + "description": "Allows the app to read and write tags in Teams without a signed-in user.", + "displayName": "Read and write tags in Teams", + "id": "a3371ca5-911d-46d6-901c-42c8c7a937d8", + "origin": "Application", + "value": "TeamworkTag.ReadWrite.All" + }, + { + "description": "Allows the app to read\u00a0tags in Teams\u00a0without a signed-in user.", + "displayName": "Read tags in Teams", + "id": "b74fd6c4-4bde-488e-9695-eeb100e4907f", + "origin": "Application", + "value": "TeamworkTag.Read.All" + }, + { + "description": "Allows the app to read and write all Windows update deployment settings for the organization without a signed-in user.", + "displayName": "Read and write all Windows update deployment settings", + "id": "7dd1be58-6e76-4401-bf8d-31d1e8180d5b", + "origin": "Application", + "value": "WindowsUpdates.ReadWrite.All" + }, + { + "description": "Allows the app to read and write external connections without a signed-in user. The app can only read and write external connections that it is authorized to, or it can create new external connections. ", + "displayName": "Read and write external connections", + "id": "f431331c-49a6-499f-be1c-62af19c34a9d", + "origin": "Application", + "value": "ExternalConnection.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read and write external items without a signed-in user. The app can only read external items of the connection that it is authorized to.", + "displayName": "Read and write external items", + "id": "8116ae0f-55c2-452d-9944-d18420f5b2c8", + "origin": "Application", + "value": "ExternalItem.ReadWrite.OwnedBy" + }, + { + "description": "Allow the application to access a subset of site collections without a signed in user.\u00a0\u00a0The specific site collections and the permissions granted will be configured in SharePoint Online.", + "displayName": "Access selected site collections", + "id": "883ea226-0bf2-4a8f-9f9d-92c9162a727d", + "origin": "Application", + "value": "Sites.Selected" + }, + { + "description": "Allows the app to read documents and list items in all site collections without a signed in user.", + "displayName": "Read items in all site collections ", + "id": "332a536c-c7ef-4017-ab91-336970924f0d", + "origin": "Application", + "value": "Sites.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete documents and list items in all site collections without a signed in user.", + "displayName": "Read and write items in all site collections", + "id": "9492366f-7969-46a4-8d15-ed1a20078fff", + "origin": "Application", + "value": "Sites.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the properties of Cloud PCs, without a signed-in user.", + "displayName": "Read and write Cloud PCs", + "id": "3b4349e1-8cf5-45a3-95b7-69d1751d3e6a", + "origin": "Application", + "value": "CloudPC.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties of Cloud PCs, without a signed-in user.", + "displayName": "Read Cloud PCs", + "id": "a9e09520-8ed4-4cde-838e-4fdea192c227", + "origin": "Application", + "value": "CloudPC.Read.All" + }, + { + "description": "Allows the app to update service principal endpoints", + "displayName": "Read and update service principal endpoints", + "id": "89c8469c-83ad-45f7-8ff2-6e3d4285709e", + "origin": "Application", + "value": "ServicePrincipalEndpoint.ReadWrite.All" + }, + { + "description": "Allows the app to read service principal endpoints", + "displayName": "Read service principal endpoints", + "id": "5256681e-b7f6-40c0-8447-2d9db68797a0", + "origin": "Application", + "value": "ServicePrincipalEndpoint.Read.All" + }, + { + "description": "Allows the app to create new notifications in users' teamwork activity feeds without a signed in user. These notifications may not be discoverable or be held or governed by compliance policies.", + "displayName": "Send a teamwork activity to any user", + "id": "a267235f-af13-44dc-8385-c1dc93023186", + "origin": "Application", + "value": "TeamsActivity.Send" + }, + { + "description": "Allows the app to read terms of use acceptance statuses, without a signed in user.", + "displayName": "Read all terms of use acceptance statuses", + "id": "d8e4ec18-f6c0-4620-8122-c8b1f2bf400e", + "origin": "Application", + "value": "AgreementAcceptance.Read.All" + }, + { + "description": "Allows the app to read and write terms of use agreements, without a signed in user.", + "displayName": "Read and write all terms of use agreements", + "id": "c9090d00-6101-42f0-a729-c41074260d47", + "origin": "Application", + "value": "Agreement.ReadWrite.All" + }, + { + "description": "Allows the app to read terms of use agreements, without a signed in user.", + "displayName": "Read all terms of use agreements", + "id": "2f3e6f8c-093b-4c57-a58b-ba5ce494a169", + "origin": "Application", + "value": "Agreement.Read.All" + }, + { + "description": "Allows the app to read app consent requests and approvals, and deny or approve those requests without a signed-in user.", + "displayName": "Read and write all consent requests", + "id": "9f1b81a7-0223-4428-bfa4-0bcb5535f27d", + "origin": "Application", + "value": "ConsentRequest.ReadWrite.All" + }, + { + "description": "Allows the app to read and write your organization's consent requests policy without a signed-in user.", + "displayName": "Read and write your organization's consent request policy", + "id": "999f8c63-0a38-4f1b-91fd-ed1947bdd1a9", + "origin": "Application", + "value": "Policy.ReadWrite.ConsentRequest" + }, + { + "description": "Allows the app to read consent requests and approvals without a signed-in user.", + "displayName": "Read all consent requests", + "id": "1260ad83-98fb-4785-abbb-d6cc1806fd41", + "origin": "Application", + "value": "ConsentRequest.Read.All" + }, + { + "description": "Allows the app to read basic mail properties in all mailboxes without a signed-in user. Includes all properties except body, previewBody, attachments and any extended properties.", + "displayName": "Read basic mail in all mailboxes", + "id": "693c5e45-0940-467d-9b8a-1022fb9d42ef", + "origin": "Application", + "value": "Mail.ReadBasic.All" + }, + { + "description": "Allows the app to read basic mail properties in all mailboxes without a signed-in user. Includes all properties except body, previewBody, attachments and any extended properties.", + "displayName": "Read basic mail in all mailboxes", + "id": "6be147d2-ea4f-4b5a-a3fa-3eab6f3c140a", + "origin": "Application", + "value": "Mail.ReadBasic" + }, + { + "description": "Allows the app to read and write feature rollout policies without a signed-in user. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "displayName": "Read and write feature rollout policies", + "id": "2044e4f1-e56c-435b-925c-44cd8f6ba89a", + "origin": "Application", + "value": "Policy.ReadWrite.FeatureRollout" + }, + { + "description": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, without a signed-in user. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "displayName": "Read and write all directory RBAC settings", + "id": "9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8", + "origin": "Application", + "value": "RoleManagement.ReadWrite.Directory" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, without a signed-in user. This includes reading directory role templates, directory roles and memberships.", + "displayName": "Read all directory RBAC settings", + "id": "483bed4a-2ad3-4361-a73b-c83ccdbdc53c", + "origin": "Application", + "value": "RoleManagement.Read.Directory" + }, + { + "description": "Allows the app to read and write the organization and related resources, without a signed-in user.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read and write organization information", + "id": "292d869f-3427-49a8-9dab-8c70152b74e9", + "origin": "Application", + "value": "Organization.ReadWrite.All" + }, + { + "description": "Allows the app to read the organization and related resources, without a signed-in user.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read organization information", + "id": "498476ce-e0fe-48b0-b801-37ba7e2685c6", + "origin": "Application", + "value": "Organization.Read.All" + }, + { + "description": "Allows the app to read company places (conference rooms and room lists) for calendar events and other applications, without a signed-in user.", + "displayName": "Read all company places", + "id": "913b9306-0ce1-42b8-9137-6a7df690a760", + "origin": "Application", + "value": "Place.Read.All" + }, + { + "description": "Allows the app to read the memberships of hidden groups and administrative units without a signed-in user.", + "displayName": "Read all hidden memberships", + "id": "658aa5d8-239f-45c4-aa12-864f4fc7e490", + "origin": "Application", + "value": "Member.Read.Hidden" + }, + { + "description": "Allow the app to read or write items in all external datasets that the app is authorized to access", + "displayName": "Read and write items in external datasets", + "id": "38c3d6ee-69ee-422f-b954-e17819665354", + "origin": "Application", + "value": "ExternalItem.ReadWrite.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings in the organization for group and app memberships, without a signed-in user.", + "displayName": "Manage access reviews for group and app memberships", + "id": "18228521-a591-40f1-b215-5fad4488c117", + "origin": "Application", + "value": "AccessReview.ReadWrite.Membership" + }, + { + "description": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups, without a signed-in user.", + "displayName": "Read Microsoft Intune device configuration and policies", + "id": "dc377aa6-52d8-4e23-b271-2a7ae04cedf3", + "origin": "Application", + "value": "DeviceManagementConfiguration.Read.All" + }, + { + "description": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read Microsoft Intune apps", + "id": "7a6ee1e7-141e-4cec-ae74-d9db155731ff", + "origin": "Application", + "value": "DeviceManagementApps.Read.All" + }, + { + "description": "Allows the app to read the properties of devices managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read Microsoft Intune devices", + "id": "2f51be20-0bb4-4fed-bf7b-db946066c75e", + "origin": "Application", + "value": "DeviceManagementManagedDevices.Read.All" + }, + { + "description": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user.", + "displayName": "Read Microsoft Intune RBAC settings", + "id": "58ca0d9a-1575-47e1-a3cb-007ef2e4583b", + "origin": "Application", + "value": "DeviceManagementRBAC.Read.All" + }, + { + "description": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user.", + "displayName": "Read Microsoft Intune configuration", + "id": "06a5fe6d-c49d-46a7-b082-56b1b14103c7", + "origin": "Application", + "value": "DeviceManagementServiceConfig.Read.All" + }, + { + "description": "Allows the app to create, view, update and delete on-premises published resources, on-premises agents and agent groups, as part of a hybrid identity configuration, without a signed in user.", + "displayName": "Manage on-premises published resources", + "id": "0b57845e-aa49-4e6f-8109-ce654fffa618", + "origin": "Application", + "value": "OnPremisesPublishingProfiles.ReadWrite.All" + }, + { + "description": "Allows the app to read and write trust framework key set properties without a signed-in user.", + "displayName": "Read and write trust framework key sets", + "id": "4a771c9a-1cf2-4609-b88e-3d3e02d539cd", + "origin": "Application", + "value": "TrustFrameworkKeySet.ReadWrite.All" + }, + { + "description": "Allows the app to read trust framework key set properties without a signed-in user.", + "displayName": "Read trust framework key sets", + "id": "fff194f1-7dce-4428-8301-1badb5518201", + "origin": "Application", + "value": "TrustFrameworkKeySet.Read.All" + }, + { + "description": "Allows the app to read and write your organization's trust framework policies without a signed in user.", + "displayName": "Read and write your organization's trust framework policies", + "id": "79a677f7-b79d-40d0-a36a-3e6f8688dd7a", + "origin": "Application", + "value": "Policy.ReadWrite.TrustFramework" + }, + { + "description": "Allows the app to read all your organization's policies without a signed in user.", + "displayName": "Read your organization's policies", + "id": "246dd0d5-5bd0-4def-940b-0421030a5b68", + "origin": "Application", + "value": "Policy.Read.All" + }, + { + "description": "Allows the app to read and write your organization\u2019s identity (authentication) providers\u2019 properties without a signed in user.", + "displayName": "Read and write identity providers", + "id": "90db2b9a-d928-4d33-a4dd-8442ae3d41e4", + "origin": "Application", + "value": "IdentityProvider.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization\u2019s identity (authentication) providers\u2019 properties without a signed in user.", + "displayName": "Read identity providers", + "id": "e321f0bb-e7f7-481e-bb28-e3b0b32d4bd0", + "origin": "Application", + "value": "IdentityProvider.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership without a signed-in user.", + "displayName": "Read and write all administrative units", + "id": "5eb59dd3-1da2-4329-8733-9dabdc435916", + "origin": "Application", + "value": "AdministrativeUnit.ReadWrite.All" + }, + { + "description": "Allows the app to read administrative units and administrative unit membership without a signed-in user.", + "displayName": "Read all administrative units", + "id": "134fd756-38ce-4afd-ba33-e9623dbe66c2", + "origin": "Application", + "value": "AdministrativeUnit.Read.All" + }, + { + "description": "Allows an app to read published sensitivity labels and label policy settings for the entire organization or a specific user, without a signed in user.", + "displayName": "Read all published labels and label policies for an organization.", + "id": "19da66cb-0fb0-4390-b071-ebc76a349482", + "origin": "Application", + "value": "InformationProtectionPolicy.Read.All" + }, + { + "description": "Allows the app to read all the OneNote notebooks in your organization, without a signed-in user.", + "displayName": "Read all OneNote notebooks", + "id": "3aeca27b-ee3a-4c2b-8ded-80376e2134a4", + "origin": "Application", + "value": "Notes.Read.All" + }, + { + "description": "Allows the app to invite guest users to the organization, without a signed-in user.", + "displayName": "Invite guest users to the organization", + "id": "09850681-111b-4a89-9bed-3f2cae46d706", + "origin": "Application", + "value": "User.Invite.All" + }, + { + "description": "Allows the app to read, create, update and delete all files in all site collections without a signed in user. ", + "displayName": "Read and write files in all site collections", + "id": "75359482-378d-4052-8f01-80520e7db3cd", + "origin": "Application", + "value": "Files.ReadWrite.All" + }, + { + "description": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), without a signed-in user. \u00a0It cannot update any threat indicators it does not own.", + "displayName": "Manage threat indicators this app creates or owns", + "id": "21792b6c-c986-4ffc-85de-df9da54b52fa", + "origin": "Application", + "value": "ThreatIndicators.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read or update security actions, without a signed-in user.", + "displayName": "Read and update your organization's security actions", + "id": "f2bf083f-0179-402a-bedb-b2784de8a49b", + "origin": "Application", + "value": "SecurityActions.ReadWrite.All" + }, + { + "description": "Allows the app to read security actions, without a signed-in user.", + "displayName": "Read your organization's security actions", + "id": "5e0edab9-c148-49d0-b423-ac253e121825", + "origin": "Application", + "value": "SecurityActions.Read.All" + }, + { + "description": "Allows the app to read your organization\u2019s security events without a signed-in user. Also allows the app to update editable properties in security events.", + "displayName": "Read and update your organization\u2019s security events", + "id": "d903a879-88e0-4c09-b0c9-82f6a1333f84", + "origin": "Application", + "value": "SecurityEvents.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization\u2019s security events without a signed-in user.", + "displayName": "Read your organization\u2019s security events", + "id": "bf394140-e372-4bf9-a898-299cfc7564e5", + "origin": "Application", + "value": "SecurityEvents.Read.All" + }, + { + "description": "Allows an app to read and write all chat messages in Microsoft Teams, without a signed-in user.", + "displayName": "Read and write all chat messages", + "id": "294ce7c9-31ba-490a-ad7d-97a7d075e4ed", + "origin": "Application", + "value": "Chat.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risk detection information for your organization without a signed-in user. Update operations include confirming risk event detections.\u00a0", + "displayName": "Read and write all risk detection information", + "id": "db06fb33-1953-4b7b-a2ac-f1e2c854f7ae", + "origin": "Application", + "value": "IdentityRiskEvent.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risky user information for your organization without a signed-in user. \u00a0Update operations include dismissing risky users.", + "displayName": "Read and write all risky user information", + "id": "656f6061-f9fe-4807-9708-6a2e0934df76", + "origin": "Application", + "value": "IdentityRiskyUser.ReadWrite.All" + }, + { + "description": "Allows the app to read all files in all site collections without a signed in user.", + "displayName": "Read files in all site collections", + "id": "01d4889c-1287-42c6-ac1f-5d1e02578ef6", + "origin": "Application", + "value": "Files.Read.All" + }, + { + "description": "Allows the app to read the identity risk event information for your organization without a signed in user.", + "displayName": "Read all identity risk event information", + "id": "6e472fd1-ad78-48da-a0f0-97ab2c6b769e", + "origin": "Application", + "value": "IdentityRiskEvent.Read.All" + }, + { + "description": "Allows the app to read a limited subset of properties from both the structure of schools and classes in the organization's roster and education-specific information about all users. Includes name, status, role, email address and photo.", + "displayName": "Read a limited subset of the organization's roster", + "id": "0d412a8c-a06c-439f-b3ec-8abcf54d2f96", + "origin": "Application", + "value": "EduRoster.ReadBasic.All" + }, + { + "description": "Allows the app to read the structure of schools and classes in the organization's roster and education-specific information about all users to be read.", + "displayName": "Read the organization's roster", + "id": "e0ac9e1b-cb65-4fc5-87c5-1a8bc181f648", + "origin": "Application", + "value": "EduRoster.Read.All" + }, + { + "description": "Allows the app to read and write the structure of schools and classes in the organization's roster and education-specific information about all users to be read and written.", + "displayName": "Read and write the organization's roster", + "id": "d1808e82-ce13-47af-ae0d-f9b254e6d58a", + "origin": "Application", + "value": "EduRoster.ReadWrite.All" + }, + { + "description": "Read the state and settings of all Microsoft education apps.", + "displayName": "Read Education app settings", + "id": "7c9db06a-ec2d-4e7b-a592-5a1e30992566", + "origin": "Application", + "value": "EduAdministration.Read.All" + }, + { + "description": "Manage the state and settings of all Microsoft education apps.", + "displayName": "Manage education app settings", + "id": "9bc431c3-b8bc-4a8d-a219-40f10f92eff6", + "origin": "Application", + "value": "EduAdministration.ReadWrite.All" + }, + { + "description": "Allows the app to read the identity risky user information for your organization without a signed in user.", + "displayName": "Read all identity risky user information", + "id": "dc5007c0-2d7d-4c42-879c-2dab87571379", + "origin": "Application", + "value": "IdentityRiskyUser.Read.All" + }, + { + "description": "Allows the app to read and update user profiles without a signed in user.", + "displayName": "Read and write all users' full profiles", + "id": "741f803b-c850-494e-b5df-cde7c675a1ca", + "origin": "Application", + "value": "User.ReadWrite.All" + }, + { + "description": "Allows the app to read user profiles without a signed in user.", + "displayName": "Read all users' full profiles", + "id": "df021288-bdef-4463-88db-98f22de89214", + "origin": "Application", + "value": "User.Read.All" + }, + { + "description": "Allows the app to read and query your audit log activities, without a signed-in user.", + "displayName": "Read all audit log data", + "id": "b0afded3-3588-46d8-8b3d-9842eff778da", + "origin": "Application", + "value": "AuditLog.Read.All" + }, + { + "description": "Allows the app to create other applications, and fully manage those applications (read, update, update application secrets and delete), without a signed-in user. \u00a0It cannot update any apps that it is not an owner of.", + "displayName": "Manage apps that this app creates or owns", + "id": "18a4783c-866b-4cc7-a460-3d5e5662c884", + "origin": "Application", + "value": "Application.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "displayName": "Export user's data", + "id": "405a51b5-8d8d-430b-9842-8be4b0e9f324", + "origin": "Application", + "value": "User.Export.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on programs and program controls in the organization, without a signed-in user.", + "displayName": "Manage all programs", + "id": "60a901ed-09f7-4aa5-a16e-7dd3d6f9de36", + "origin": "Application", + "value": "ProgramControl.ReadWrite.All" + }, + { + "description": "Allows the app to read programs and program controls in the organization, without a signed-in user.", + "displayName": "Read all programs", + "id": "eedb7fdd-7539-4345-a38b-4839e4a84cbd", + "origin": "Application", + "value": "ProgramControl.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings in the organization, without a signed-in user.", + "displayName": "Manage all access reviews", + "id": "ef5f7d5c-338f-44b0-86c3-351f46c8bb5f", + "origin": "Application", + "value": "AccessReview.ReadWrite.All" + }, + { + "description": "Allows the app to read access reviews, reviewers, decisions and settings in the organization, without a signed-in user.", + "displayName": "Read all access reviews", + "id": "d07a8cc0-3d51-4b77-b3b0-32704d1f69fa", + "origin": "Application", + "value": "AccessReview.Read.All" + }, + { + "description": "Allows an app to read all service usage reports without a signed-in user. Services that provide usage reports include Office 365 and Azure Active Directory.", + "displayName": "Read all usage reports", + "id": "230c1aed-a721-4c5d-9cb4-a90514e508ef", + "origin": "Application", + "value": "Reports.Read.All" + }, + { + "description": "Allows the app to read any user's scored list of relevant people, without a signed-in user. The list can include local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read all users' relevant people lists", + "id": "b528084d-ad10-4598-8b93-929746b4d7d6", + "origin": "Application", + "value": "People.Read.All" + }, + { + "description": "Allows the app to update Microsoft Teams 1-to-1 or group chat messages by patching a set of Data Loss Prevention (DLP) policy violation properties to handle the output of DLP processing.", + "displayName": "Flag chat messages for violating policy", + "id": "7e847308-e030-4183-9899-5235d7270f58", + "origin": "Application", + "value": "Chat.UpdatePolicyViolation.All" + }, + { + "description": "Allows the app to read all 1-to-1 or group chat messages in Microsoft Teams.", + "displayName": "Read all chat messages", + "id": "6b7d71aa-70aa-4810-a8d9-5d9fb2830017", + "origin": "Application", + "value": "Chat.Read.All" + }, + { + "description": "Allows the app to read all channel messages in Microsoft Teams", + "displayName": "Read all channel messages", + "id": "7b2449af-6ccd-4f4d-9f78-e550c193f0d1", + "origin": "Application", + "value": "ChannelMessage.Read.All" + }, + { + "description": "Allows the app to update Microsoft Teams channel messages by patching a set of Data Loss Prevention (DLP) policy violation properties to handle the output of DLP processing.", + "displayName": "Flag channel messages for violating policy", + "id": "4d02b0cc-d90b-441f-8d82-4fb55c34d6bb", + "origin": "Application", + "value": "ChannelMessage.UpdatePolicyViolation.All" + }, + { + "description": "Allows the app to create, read, update and delete applications and service principals without a signed-in user. Does not allow management of consent grants.", + "displayName": "Read and write all applications", + "id": "1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9", + "origin": "Application", + "value": "Application.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail.", + "displayName": "Read and write all user mailbox settings", + "id": "6931bccd-447a-43d1-b442-00a195474933", + "origin": "Application", + "value": "MailboxSettings.ReadWrite" + }, + { + "description": "Allows the app to read and write all domain properties without a signed in user. \u00a0Also allows the app to add, \u00a0verify and remove domains.", + "displayName": "Read and write domains", + "id": "7e05723c-0bb0-42da-be95-ae9f08a6e53c", + "origin": "Application", + "value": "Domain.ReadWrite.All" + }, + { + "description": "Allows the app to read user's mailbox settings without a signed-in user. Does not include permission to send mail.", + "displayName": "Read all user mailbox settings", + "id": "40f97065-369a-49f4-947c-6a255697ae91", + "origin": "Application", + "value": "MailboxSettings.Read" + }, + { + "description": "Allows the app to read mail in all mailboxes without a signed-in user.", + "displayName": "Read mail in all mailboxes", + "id": "810c84a8-4a9e-49e6-bf7d-12d183f40d01", + "origin": "Application", + "value": "Mail.Read" + }, + { + "description": "Allows the app to create, read, update, and delete mail in all mailboxes without a signed-in user. Does not include permission to send mail.", + "displayName": "Read and write mail in all mailboxes", + "id": "e2a3a72e-5f79-4c64-b1b1-878b674786c9", + "origin": "Application", + "value": "Mail.ReadWrite" + }, + { + "description": "Allows the app to send mail as any user without a signed-in user.", + "displayName": "Send mail as any user", + "id": "b633e1c5-b582-4048-a93e-9f11b44c7e96", + "origin": "Application", + "value": "Mail.Send" + }, + { + "description": "Allows the app to read all contacts in all mailboxes without a signed-in user.", + "displayName": "Read contacts in all mailboxes", + "id": "089fe4d0-434a-44c5-8827-41ba8a0b17f5", + "origin": "Application", + "value": "Contacts.Read" + }, + { + "description": "Allows the app to create, read, update, and delete all contacts in all mailboxes without a signed-in user.", + "displayName": "Read and write contacts in all mailboxes", + "id": "6918b873-d17a-4dc1-b314-35f528134491", + "origin": "Application", + "value": "Contacts.ReadWrite" + }, + { + "description": "Allows the app to read data in your organization's directory, such as users, groups and apps, without a signed-in user.", + "displayName": "Read directory data", + "id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61", + "origin": "Application", + "value": "Directory.Read.All" + }, + { + "description": "Allows the app to read and write data in your organization's directory, such as users, and groups, without a signed-in user. Does not allow user or group deletion.", + "displayName": "Read and write directory data", + "id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", + "origin": "Application", + "value": "Directory.ReadWrite.All" + }, + { + "description": "Allows the app to read and write all device properties without a signed in user. Does not allow device creation, device deletion or update of device alternative security identifiers.", + "displayName": "Read and write devices", + "id": "1138cb37-bd11-4084-a2b7-9f71582aeddb", + "origin": "Application", + "value": "Device.ReadWrite.All" + }, + { + "description": "Allows the app to read events of all calendars without a signed-in user.", + "displayName": "Read calendars in all mailboxes", + "id": "798ee544-9d2d-430c-a058-570e29e34338", + "origin": "Application", + "value": "Calendars.Read" + }, + { + "description": "Allows the app to create, read, update, and delete events of all calendars without a signed-in user.", + "displayName": "Read and write calendars in all mailboxes", + "id": "ef54d2bf-783f-4e0f-bca1-3210c0444d99", + "origin": "Application (Office 365 Exchange Online)", + "value": "Calendars.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail.", + "displayName": "Read and write all user mailbox settings", + "id": "f9156939-25cd-4ba8-abfe-7fabcf003749", + "origin": "Application (Office 365 Exchange Online)", + "value": "Mailbox.Settings.ReadWrite" + }, + { + "description": "Allows the app to read your organization's user flows, without a signed-in user.", + "displayName": "Read all identity user flows", + "id": "1b0c317f-dd31-4305-9932-259a8b6e8099", + "origin": "Application", + "value": "IdentityUserFlow.Read.All" + }, + { + "description": "Allows the app to read or write your organization's user flows, without a signed-in user.", + "displayName": "Read and write all identity user flows", + "id": "65319a09-a2be-469d-8782-f6b07debf789", + "origin": "Application", + "value": "IdentityUserFlow.ReadWrite.All" + }, + { + "description": "Allows the app to read and create online meetings as an application in your organization.", + "displayName": "Read and create online meetings", + "id": "b8bb2037-6e08-44ac-a4ea-4674e010e2a4", + "origin": "Application", + "value": "OnlineMeetings.ReadWrite.All" + }, + { + "description": "Allows the app to read online meeting details in your organization, without a signed-in user.", + "displayName": "Read online meeting details", + "id": "c1684f21-1984-47fa-9d61-2dc8c296bb70", + "origin": "Application", + "value": "OnlineMeetings.Read.All" + }, + { + "description": "Allows the app to get direct access to media streams in a call, without a signed-in user.", + "displayName": "Access media streams in a call as an app", + "id": "a7a681dc-756e-4909-b988-f160edc6655f", + "origin": "Application", + "value": "Calls.AccessMedia.All" + }, + { + "description": "Allows the app to anonymously join group calls and scheduled meetings in your organization, without a signed-in user. \u00a0The app will be joined as a guest to meetings in your organization.", + "displayName": "Join group calls and meetings as a guest", + "id": "fd7ccf6b-3d28-418b-9701-cd10f5cd2fd4", + "origin": "Application", + "value": "Calls.JoinGroupCallAsGuest.All" + }, + { + "description": "Allows the app to join group calls and scheduled meetings in your organization, without a signed-in user. \u00a0The app will be joined with the privileges of a directory user to meetings in your organization.", + "displayName": "Join group calls and meetings as an app", + "id": "f6b49018-60ab-4f81-83bd-22caeabfed2d", + "origin": "Application", + "value": "Calls.JoinGroupCall.All" + }, + { + "description": "Allows the app to place outbound calls to multiple users and add participants to meetings in your organization, without a signed-in user.", + "displayName": "Initiate outgoing group calls from the app", + "id": "4c277553-8a09-487b-8023-29ee378d8324", + "origin": "Application", + "value": "Calls.InitiateGroupCall.All" + }, + { + "description": "Allows the app to place outbound calls to a single user and transfer calls to users in your organization\u2019s directory, without a signed-in user.", + "displayName": "Initiate outgoing 1 to 1 calls from the app", + "id": "284383ee-7f6e-4e40-a2a8-e85dcb029101", + "origin": "Application", + "value": "Calls.Initiate.All" + }, + { + "description": "Allows the app to read all organizational contacts without a signed-in user. These contacts are managed by the organization and are different from a user's personal contacts.", + "displayName": "Read organizational contacts", + "id": "e1a88a34-94c4-4418-be12-c87b00e26bea", + "origin": "Application", + "value": "OrgContact.Read.All" + }, + { + "description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read and write Microsoft Intune apps", + "id": "78145de6-330d-4800-a6ce-494ff2d33d07", + "origin": "Application", + "value": "DeviceManagementApps.ReadWrite.All" + }, + { + "description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups, without a signed-in user.", + "displayName": "Read and write Microsoft Intune device configuration and policies", + "id": "9241abd9-d0e6-425a-bd4f-47ba86e767a4", + "origin": "Application", + "value": "DeviceManagementConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune, without a signed-in user.", + "displayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", + "origin": "Application", + "value": "DeviceManagementManagedDevices.PrivilegedOperations.All" + }, + { + "description": "Allows the app to read and write the properties of devices managed by Microsoft Intune, without a signed-in user. Does not allow high impact operations such as remote wipe and password reset on the device\u2019s owner", + "displayName": "Read and write Microsoft Intune devices", + "id": "243333ab-4d21-40cb-a475-36241daa0842", + "origin": "Application", + "value": "DeviceManagementManagedDevices.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user.", + "displayName": "Read and write Microsoft Intune RBAC settings", + "id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", + "origin": "Application", + "value": "DeviceManagementRBAC.ReadWrite.All" + }, + { + "description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user.", + "displayName": "Read and write Microsoft Intune configuration", + "id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", + "origin": "Application", + "value": "DeviceManagementServiceConfig.ReadWrite.All" + }, + { + "description": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, without a signed-in user.", + "displayName": "Manage app permission grants and app role assignments", + "id": "06b708a9-e830-4db3-a914-8e69da51d44f", + "origin": "Application", + "value": "AppRoleAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), without a signed-in user.", + "displayName": "Manage all delegated permission grants", + "id": "8e8e4742-1d95-4f68-9d56-6ee75648c72a", + "origin": "Application", + "value": "DelegatedPermissionGrant.ReadWrite.All" + }, + { + "description": "Allows the app to read all users' teamwork activity feed, without a signed-in user.", + "displayName": "Read all users' teamwork activity feed", + "id": "70dec828-f620-4914-aa83-a29117306807", + "origin": "Application", + "value": "TeamsActivity.Read.All" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure AD roles", + "id": "4cdc2547-9148-4295-8d11-be0db1391d6b", + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureAD" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure AD groups", + "id": "01e37dc9-c035-40bd-b438-b2879c4870a6", + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureADGroup" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation of user privileges to audit Azure resources in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure resources", + "id": "5df6fe86-1be0-44eb-b916-7bd443a71236", + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureResources" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure AD roles", + "id": "854d9ab1-6657-4ec8-be45-823027bcd009", + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureAD" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure AD groups", + "id": "2f6817f8-7b12-4f0f-bc18-eeaf60705a9e", + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureADGroup" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure resources", + "id": "6f9d5abc-2db6-400b-a267-7de22a40fb87", + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureResources" + }, + { + "description": "Allows the app to read all the indicators for your organization, without a signed-in user.", + "displayName": "Read all threat indicators", + "id": "197ee4e9-b993-4066-898f-d6aecc55125b", + "origin": "Application", + "value": "ThreatIndicators.Read.All" + }, + { + "description": "Allows the app to send, read, update and delete user\u2019s notifications, without a signed-in user.", + "displayName": "Deliver and manage all user's notifications", + "id": "4e774092-a092-48d1-90bd-baad67c7eb47", + "origin": "Application", + "value": "UserNotification.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read all applications and service principals without a signed-in user.", + "displayName": "Read all applications", + "id": "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30", + "origin": "Application", + "value": "Application.Read.All" + }, + { + "description": "Allows the app to read memberships and basic group properties for all groups without a signed-in user.", + "displayName": "Read all group memberships", + "id": "98830695-27a2-44f7-8c18-0c3ebc9698f6", + "origin": "Application", + "value": "GroupMember.Read.All" + }, + { + "description": "Allows the app to list groups, read basic properties, read and update the membership of the groups this app has access to without a signed-in user. Group properties and owners cannot be updated and groups cannot be deleted.", + "displayName": "Read and write all group memberships", + "id": "dbaae8cf-10b5-4b86-a4a1-f871c94c6695", + "origin": "Application", + "value": "GroupMember.ReadWrite.All" + }, + { + "description": "Allows the app to create groups without a signed-in user.", + "displayName": "Create groups", + "id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", + "origin": "Application", + "value": "Group.Create" + }, + { + "description": "Allows an app to read your organization's threat assessment requests, without a signed-in user.", + "displayName": "Read threat assessment requests", + "id": "f8f035bb-2cce-47fb-8bf5-7baf3ecbee48", + "origin": "Application", + "value": "ThreatAssessment.Read.All" + }, + { + "description": "Allows the app to read all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user.", + "displayName": "Read all schedule items", + "id": "7b2ebf90-d836-437f-b90d-7b62722c4456", + "origin": "Application", + "value": "Schedule.Read.All" + }, + { + "description": "Allows the app to manage all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user.", + "displayName": "Read and write all schedule items", + "id": "b7760610-0545-4e8a-9ec3-cce9e63db01c", + "origin": "Application", + "value": "Schedule.ReadWrite.All" + }, + { + "description": "Allows the app to read call records for all calls and online meetings without a signed-in user.", + "displayName": "Read all call records", + "id": "45bbb07e-7321-4fd7-a8f6-3ff27e6a81c8", + "origin": "Application", + "value": "CallRecords.Read.All" + }, + { + "description": "Allows the app to read and write your organization's conditional access policies, without a signed-in user.", + "displayName": "Read and write your organization's conditional access policies", + "id": "01c0a623-fc9b-48e9-b794-0756f8e8f067", + "origin": "Application", + "value": "Policy.ReadWrite.ConditionalAccess" + }, + { + "description": "Allows the application to read and write authentication methods of all users in your organization, without a signed-in user. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods", + "displayName": "Read and write all users' authentication methods ", + "id": "50483e42-d915-4231-9639-7fdb7fd190e5", + "origin": "Application", + "value": "UserAuthenticationMethod.ReadWrite.All" + }, + { + "description": " Allows the app to read authentication methods of all users in your organization, without a signed-in user. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": " Read all users' authentication methods", + "id": "38d9df27-64da-44fd-b7c5-a6fbac20248f", + "origin": "Application", + "value": "UserAuthenticationMethod.Read.All" + }, + { + "description": "Allows the app to create tabs in any team in Microsoft Teams, without a signed-in user. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "displayName": "Create tabs in Microsoft Teams.", + "id": "49981c42-fd7b-4530-be03-e77b21aed25e", + "origin": "Application", + "value": "TeamsTab.Create" + }, + { + "description": "Read the names and settings of tabs inside any team in Microsoft Teams, without a signed-in user. This does not give access to the content inside the tabs. ", + "displayName": "Read tabs in Microsoft Teams.", + "id": "46890524-499a-4bb2-ad64-1476b4f3e1cf", + "origin": "Application", + "value": "TeamsTab.Read.All" + }, + { + "description": "Read and write tabs in any team in Microsoft Teams, without a signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read and write tabs in Microsoft Teams.", + "id": "a96d855f-016b-47d7-b51c-1218a98d791c", + "origin": "Application", + "value": "TeamsTab.ReadWrite.All" + }, + { + "description": "Allows the app to read all domain properties without a signed-in user.", + "displayName": "Read domains", + "id": "dbb9058a-0e50-45d7-ae91-66909b5d4664", + "origin": "Application", + "value": "Domain.Read.All" + }, + { + "description": "Allows the app to read and write your organization's application configuration policies, without a signed-in user. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "displayName": "Read and write your organization's application configuration policies", + "id": "be74164b-cff1-491c-8741-e671cb536e13", + "origin": "Application", + "value": "Policy.ReadWrite.ApplicationConfiguration" + }, + { + "description": "Allows the app to read your organization's devices' configuration information without a signed-in user.", + "displayName": "Read all devices", + "id": "7438b122-aefc-4978-80ed-43db9fcc7715", + "origin": "Application", + "value": "Device.Read.All" + }, + { + "description": "Allows the app to read, update and delete identities that are associated with a user's account, without a signed in user. This controls the identities users can sign-in with.", + "displayName": "Manage all users' identities", + "id": "c529cfca-c91b-489c-af2b-d92990b66ce6", + "origin": "Application", + "value": "User.ManageIdentities.All" + }, + { + "description": "Allows the app to read all users' shift schedule preferences without a signed-in user.", + "displayName": "Read all user shift preferences", + "id": "de023814-96df-4f53-9376-1e2891ef5a18", + "origin": "Application", + "value": "UserShiftPreferences.Read.All" + }, + { + "description": "Allows the app to manage all users' shift schedule preferences without a signed-in user.", + "displayName": "Read and write all user shift preferences", + "id": "d1eec298-80f3-49b0-9efb-d90e224798ac", + "origin": "Application", + "value": "UserShiftPreferences.ReadWrite.All" + }, + { + "description": "Allows the app to read all the OneNote notebooks in your organization, without a signed-in user.", + "displayName": "Read and write all OneNote notebooks", + "id": "0c458cef-11f3-48c2-a568-c66751c238c0", + "origin": "Application", + "value": "Notes.ReadWrite.All" + }, + { + "description": "Allows the app to have full control of all site collections without a signed in user.", + "displayName": "Have full control of all site collections", + "id": "a82116e5-55eb-4c41-a434-62fe8a61c773", + "origin": "Application", + "value": "Sites.FullControl.All" + }, + { + "description": "Allows the app to create or delete document libraries and lists in all site collections without a signed in user.", + "displayName": "Create, edit, and delete items and lists in all site collections", + "id": "0c0bf378-bf22-4481-8f81-9e89a9b4960a", + "origin": "Application", + "value": "Sites.Manage.All" + }, + { + "description": "Allows the app to read access packages and related entitlement management resources without a signed-in user.", + "displayName": "Read all entitlement management resources", + "id": "c74fd47d-ed3c-45c3-9a9e-b8676de685d2", + "origin": "Application", + "value": "EntitlementManagement.Read.All" + }, + { + "description": "Allows the app to read and write access packages and related entitlement management resources without a signed-in user.", + "displayName": "Read and write all entitlement management resources", + "id": "9acd699f-1e81-4958-b001-93b1d2506e19", + "origin": "Application", + "value": "EntitlementManagement.ReadWrite.All" + }, + { + "description": "Create channels in any team, without a signed-in user.", + "displayName": "Create channels", + "id": "f3a65bd4-b703-46df-8f7e-0174fea562aa", + "origin": "Application", + "value": "Channel.Create" + }, + { + "description": "Delete channels in any team, without a signed-in user.", + "displayName": "Delete channels", + "id": "6a118a39-1227-45d4-af0c-ea7b40d210bc", + "origin": "Application", + "value": "Channel.Delete.All" + }, + { + "description": "Read all channel names, channel descriptions, and channel settings, without a signed-in user.", + "displayName": "Read the names, descriptions, and settings of all channels", + "id": "c97b873f-f59f-49aa-8a0e-52b32d762124", + "origin": "Application", + "value": "ChannelSettings.Read.All" + }, + { + "description": "Read and write the names, descriptions, and settings of all channels, without a signed-in user.", + "displayName": "Read and write the names, descriptions, and settings of all channels", + "id": "243cded2-bd16-4fd6-a953-ff8177894c3d", + "origin": "Application", + "value": "ChannelSettings.ReadWrite.All" + }, + { + "description": "Get a list of all teams, without a signed-in user.", + "displayName": "Get a list of all teams", + "id": "2280dda6-0bfd-44ee-a2f4-cb867cfc4c1e", + "origin": "Application", + "value": "Team.ReadBasic.All" + }, + { + "description": "Read all channel names and channel descriptions, without a signed-in user.", + "displayName": "Read the names and descriptions of all channels", + "id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", + "origin": "Application", + "value": "Channel.ReadBasic.All" + }, + { + "description": "Read and change all teams' settings, without a signed-in user.", + "displayName": "Read and change all teams' settings", + "id": "bdd80a03-d9bc-451d-b7c4-ce7c63fe3c8f", + "origin": "Application", + "value": "TeamSettings.ReadWrite.All" + }, + { + "description": "Read all team's settings, without a signed-in user.", + "displayName": "Read all teams' settings", + "id": "242607bd-1d2c-432c-82eb-bdb27baa23ab", + "origin": "Application", + "value": "TeamSettings.Read.All" + }, + { + "description": "Read the members of all teams, without a signed-in user.", + "displayName": "Read the members of all teams", + "id": "660b7406-55f1-41ca-a0ed-0b035e182f3e", + "origin": "Application", + "value": "TeamMember.Read.All" + }, + { + "description": "Add and remove members from all teams, without a signed-in user. Also allows changing a team member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from all teams", + "id": "0121dc95-1b9f-4aed-8bac-58c5ac466691", + "origin": "Application", + "value": "TeamMember.ReadWrite.All" + }, + { + "description": "Read the members of all channels, without a signed-in user.", + "displayName": "Read the members of all channels", + "id": "3b55498e-47ec-484f-8136-9013221c06a9", + "origin": "Application", + "value": "ChannelMember.Read.All" + }, + { + "description": "Add and remove members from all channels, without a signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from all channels", + "id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", + "origin": "Application", + "value": "ChannelMember.ReadWrite.All" + }, + { + "description": "Allows the app to read and write all authentication flow policies for the tenant, without a signed-in user.", + "displayName": "Read and write authentication flow policies", + "id": "25f85f3c-f66c-4205-8cd5-de92dd7f0cec", + "origin": "Application", + "value": "Policy.ReadWrite.AuthenticationFlows" + }, + { + "description": "Allows the app to read and write all authentication method policies for the tenant, without a signed-in user.\u00a0", + "displayName": "Read and write all authentication method policies\u00a0", + "id": "29c18626-4985-4dcd-85c0-193eef327366", + "origin": "Application", + "value": "Policy.ReadWrite.AuthenticationMethod" + }, + { + "description": "Allows the app to read and write your organization's authorization policy without a signed in user. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "displayName": "Read and write your organization's authorization policy", + "id": "fb221be6-99f2-473f-bd32-01c6a0e9ca3b", + "origin": "Application", + "value": "Policy.ReadWrite.Authorization" + }, + { + "description": "Read names and members of all one-to-one and group chats in Microsoft Teams, without a signed-in user.", + "displayName": "Read names and members of all chat threads", + "id": "b2e060da-3baf-4687-9611-f4ebc0f0cbde", + "origin": "Application", + "value": "Chat.ReadBasic.All" + }, + { + "description": "Allows the app to read policies related to consent and permission grants for applications, without a signed-in user.", + "displayName": "Read consent and permission grant policies", + "id": "9e640839-a198-48fb-8b9a-013fd6f6cbcd", + "origin": "Application", + "value": "Policy.Read.PermissionGrant" + }, + { + "description": "Allows the app to manage policies related to consent and permission grants for applications, without a signed-in user.", + "displayName": "Manage consent and permission grant policies", + "id": "a402ca1c-2696-4531-972d-6e5ee4aa11ea", + "origin": "Application", + "value": "Policy.ReadWrite.PermissionGrant" + }, + { + "description": "Allows the application to read printers without a signed-in user.\u00a0", + "displayName": "Read printers", + "id": "9709bb33-4549-49d4-8ed9-a8f65e45bb0f", + "origin": "Application", + "value": "Printer.Read.All" + }, + { + "description": "Allows the application to read and update printers without a signed-in user. Does not allow creating (registering) or deleting (unregistering) printers.", + "displayName": "Read and update printers", + "id": "f5b3f73d-6247-44df-a74c-866173fddab0", + "origin": "Application", + "value": "Printer.ReadWrite.All" + }, + { + "description": "Allows the application to perform advanced operations like redirecting a print job to another printer without a signed-in user. Also allows the application to read and update the metadata of print jobs.", + "displayName": "Perform advanced operations on print jobs", + "id": "58a52f47-9e36-4b17-9ebe-ce4ef7f3e6c8", + "origin": "Application", + "value": "PrintJob.Manage.All" + }, + { + "description": "Allows the application to read the metadata and document content of print jobs without a signed-in user.\u00a0", + "displayName": "Read print jobs", + "id": "ac6f956c-edea-44e4-bd06-64b1b4b9aec9", + "origin": "Application", + "value": "PrintJob.Read.All" + }, + { + "description": "Allows the application to read the metadata of print jobs without a signed-in user.\u00a0Does not allow access to print job document content.", + "displayName": "Read basic information for print jobs", + "id": "fbf67eee-e074-4ef7-b965-ab5ce1c1f689", + "origin": "Application", + "value": "PrintJob.ReadBasic.All" + }, + { + "description": "Allows the application to read and update the metadata and document content of print jobs without a signed-in user.", + "displayName": "Read and write print jobs", + "id": "5114b07b-2898-4de7-a541-53b0004e2e13", + "origin": "Application", + "value": "PrintJob.ReadWrite.All" + }, + { + "description": "Allows the application to read and update the metadata of print jobs without a signed-in user.\u00a0Does not allow access to print job document content.", + "displayName": "Read and write basic information for print jobs", + "id": "57878358-37f4-4d3a-8c20-4816e0d457b1", + "origin": "Application", + "value": "PrintJob.ReadWriteBasic.All" + }, + { + "description": "Allows the application to read and update print task definitions without a signed-in user.\u00a0", + "displayName": "Read, write and update print task definitions", + "id": "456b71a7-0ee0-4588-9842-c123fcc8f664", + "origin": "Application", + "value": "PrintTaskDefinition.ReadWrite.All" + }, + { + "description": "Allows the app to create chat and channel messages, without a signed in user. The app specifies which user appears as the sender, and can backdate the message to appear as if it was sent long ago. The messages can be sent to any chat or channel in the organization.", + "displayName": "Create chat and channel messages with anyone's identity and with any timestamp", + "id": "dfb0dd15-61de-45b2-be36-d6a69fba3c79", + "origin": "Application", + "value": "Teamwork.Migrate.All" + }, + { + "description": "Allows the app to read the Teams apps that are installed in any chat, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all chats", + "id": "cc7e7635-2586-41d6-adaa-a8d3bcad5ee5", + "origin": "Application", + "value": "TeamsAppInstallation.ReadForChat.All" + }, + { + "description": "Allows the app to read the Teams apps that are installed in any team, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all teams", + "id": "1f615aea-6bf9-4b05-84bd-46388e138537", + "origin": "Application", + "value": "TeamsAppInstallation.ReadForTeam.All" + }, + { + "description": "Allows the app to read the Teams apps that are installed for any user, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all users", + "id": "9ce09611-f4f7-4abd-a629-a05450422a97", + "origin": "Application", + "value": "TeamsAppInstallation.ReadForUser.All" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any chat, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all chats", + "id": "9e19bae1-2623-4c4f-ab6e-2664615ff9a0", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForChat.All" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any team, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all teams", + "id": "5dad17ba-f6cc-4954-a5a2-a0dcc95154f0", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForTeam.All" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps for any user, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all users", + "id": "74ef0291-ca83-4d02-8c7e-d2391e6a444f", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForUser.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage itself for all chats", + "id": "73a45059-f39c-4baf-9182-4954ac0e55cf", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForChat.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage itself for all teams", + "id": "9f67436c-5415-4e7f-8ac1-3014a7132630", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForTeam.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself to any user, without a signed-in user.", + "displayName": "Allow the app to manage itself for all users", + "id": "908de74d-f8b2-4d6b-a9ed-2a17b3b78179", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForUser.All" + }, + { + "description": "Allows the app to create teams without a signed-in user.\u00a0", + "displayName": "Create teams", + "id": "23fc2474-f741-46ce-8465-674744c5c361", + "origin": "Application", + "value": "Team.Create" + }, + { + "description": "Add and remove members from all teams, without a signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "displayName": "Add and remove members with non-owner role for all teams", + "id": "4437522e-9a86-4a41-a7da-e380edd4a97d", + "origin": "Application", + "value": "TeamMember.ReadWriteNonOwnerRole.All" + }, + { + "description": "Allows the app to read all term store data, without a signed-in user. This includes all sets, groups and terms in the term store.", + "displayName": "Read all term store data", + "id": "ea047cc2-df29-4f3e-83a3-205de61501ca", + "origin": "Application", + "value": "TermStore.Read.All" + }, + { + "description": "Allows the app to read, edit or write all term store data, without a signed-in user. This includes all sets, groups and terms in the term store.", + "displayName": "Read and write all term store data", + "id": "f12eb8d6-28e3-46e6-b2c0-b7e4dc69fc95", + "origin": "Application", + "value": "TermStore.ReadWrite.All" + }, + { + "description": "Allows the app to read your tenant's service health information, without a signed-in user. Health information may include service issues or service health overviews.", + "displayName": "Read service health", + "id": "79c261e0-fe76-4144-aad5-bdc68fbe4037", + "origin": "Application", + "value": "ServiceHealth.Read.All" + }, + { + "description": "Allows the app to read your tenant's service announcement messages, without a signed-in user. Messages may include information about new or changed features.", + "displayName": "Read service messages", + "id": "1b620472-6534-4fe6-9df2-4680e8aa28ec", + "origin": "Application", + "value": "ServiceMessage.Read.All" + }, + { + "description": "Allows the app to read all the short notes without a signed-in user.", + "displayName": "Read all users' short notes", + "id": "0c7d31ec-31ca-4f58-b6ec-9950b6b0de69", + "origin": "Application", + "value": "ShortNotes.Read.All" + }, + { + "description": "Allows the app to read, create, edit, and delete all the short notes without a signed-in user.", + "displayName": "Read, create, edit, and delete all users' short notes", + "id": "842c284c-763d-4a97-838d-79787d129bab", + "origin": "Application", + "value": "ShortNotes.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's conditional access policies, without a signed-in user.", + "displayName": "Read your organization's conditional access policies", + "id": "37730810-e9ba-4e46-b07e-8ca78d182097", + "origin": "Application", + "value": "Policy.Read.ConditionalAccess" + }, + { + "description": "Allows the app to read role-based access control (RBAC) settings for all RBAC providers without a signed-in user. This includes reading role definitions and role assignments.", + "displayName": "Read role management data for all RBAC providers", + "id": "c7fbd983-d9aa-4fa7-84b8-17382c103bc4", + "origin": "Application", + "value": "RoleManagement.Read.All" + }, + { + "description": "Allows the app to read all PSTN and direct routing call log data without a signed-in user.", + "displayName": "Read PSTN and direct routing call log data", + "id": "a2611786-80b3-417e-adaa-707d4261a5f0", + "origin": "Application", + "value": "CallRecord-PstnCalls.Read.All" + }, + { + "description": "Allows the app to read all one-to-one and group chats messages in Microsoft Teams, without a signed-in user.", + "displayName": "Read all chat messages", + "id": "b9bb2381-47a4-46cd-aafb-00cb12f68504", + "origin": "Application", + "value": "ChatMessage.Read.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for all chats", + "id": "fd9ce730-a250-40dc-bd44-8dc8d20f39ea", + "origin": "Application", + "value": "TeamsTab.ReadWriteForChat.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for all teams", + "id": "6163d4f4-fbf8-43da-a7b4-060fe85ed148", + "origin": "Application", + "value": "TeamsTab.ReadWriteForTeam.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for any user, without a signed-in user.", + "displayName": "Allow the app to manage all tabs for all users", + "id": "425b4b59-d5af-45c8-832f-bb0b7402348a", + "origin": "Application", + "value": "TeamsTab.ReadWriteForUser.All" + }, + { + "description": "Allows the app to read the API connectors used in user authentication flows, without a signed-in user.", + "displayName": "Read API connectors for authentication flows", + "id": "b86848a7-d5b1-41eb-a9b4-54a4e6306e97", + "origin": "Application", + "value": "APIConnectors.Read.All" + }, + { + "description": "Allows the app to read, create and manage the API connectors used in user authentication flows, without a signed-in user.", + "displayName": "Read and write API connectors for authentication flows", + "id": "1dfe531a-24a6-4f1b-80f4-7a0dc5a0a171", + "origin": "Application", + "value": "APIConnectors.ReadWrite.All" + }, + { + "description": "Read the members of all chats, without a signed-in user.", + "displayName": "Read the members of all chats", + "id": "a3410be2-8e48-4f32-8454-c29a7465209d", + "origin": "Application", + "value": "ChatMember.Read.All" + }, + { + "description": "Add and remove members from all chats, without a signed-in user.", + "displayName": "Add and remove members from all chats", + "id": "57257249-34ce-4810-a8a2-a03adf0c5693", + "origin": "Application", + "value": "ChatMember.ReadWrite.All" + }, + { + "description": "Allows the app to create chats without a signed-in user.\u00a0", + "displayName": "Create chats", + "id": "d9c48af6-9ad9-47ad-82c3-63757137b9af", + "origin": "Application", + "value": "Chat.Create" + }, + { + "description": "Allows the application to read tenant-wide print settings without a signed-in user.", + "displayName": "Read tenant-wide print settings", + "id": "b5991872-94cf-4652-9765-29535087c6d8", + "origin": "Application", + "value": "PrintSettings.Read.All" + }, + { + "description": "Allows an app to read and write all browser site lists configured for your organization, without a signed-in user.", + "displayName": "Read and write all browser site lists for your organization", + "id": "8349ca94-3061-44d5-9bfb-33774ea5e4f9", + "origin": "Application", + "value": "BrowserSiteLists.ReadWrite.All" + }, + { + "description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive, without a signed-in user.", + "displayName": "Read and change SharePoint and OneDrive tenant settings", + "id": "19b94e34-907c-4f43-bde9-38b1909ed408", + "origin": "Application", + "value": "SharePointTenantSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's authentication event listeners without a signed-in user.", + "displayName": "Read all authentication event listeners", + "id": "b7f6385c-6ce6-4639-a480-e23c42ed9784", + "origin": "Application", + "value": "EventListener.Read.All" + }, + { + "description": "Allows the app to read or write your organization's authentication event listeners without a signed-in user.", + "displayName": "Read and write all authentication event listeners", + "id": "0edf5e9e-4ce8-468a-8432-d08631d18c43", + "origin": "Application", + "value": "EventListener.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's custom authentication extensions without a signed-in user.", + "displayName": "Read all custom authentication extensions", + "id": "88bb2658-5d9e-454f-aacd-a3933e079526", + "origin": "Application", + "value": "CustomAuthenticationExtension.Read.All" + }, + { + "description": "Allows the app to read all users\u2019 tasks and task lists in your organization, without a signed-in user.", + "displayName": "Read all users\u2019 tasks and tasklist", + "id": "f10e1f91-74ed-437f-a6fd-d6ae88e26c1f", + "origin": "Application", + "value": "Tasks.Read.All" + }, + { + "description": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources without a signed-in user.", + "displayName": "Read and write all lifecycle workflows resources", + "id": "5c505cf4-8424-4b8e-aa14-ee06e3bb23e3", + "origin": "Application", + "value": "LifecycleWorkflows.ReadWrite.All" + }, + { + "description": "Allows an app to read all bookmarks without a signed-in user.", + "displayName": "Read all bookmarks", + "id": "be95e614-8ef3-49eb-8464-1c9503433b86", + "origin": "Application", + "value": "Bookmark.Read.All" + }, + { + "description": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem without a signed-in user.", + "displayName": "Read cross-tenant basic information", + "id": "cac88765-0581-4025-9725-5ebc13f729ee", + "origin": "Application", + "value": "CrossTenantInformation.ReadBasic.All" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant without a signed-in user.\u00a0 It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant without a signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export or delete their data", + "id": "306785c5-c09b-4ba0-a4ee-023f3da165cb", + "origin": "Application", + "value": "CrossTenantUserProfileSharing.ReadWrite.All" + }, + { + "description": "Allows the app to read all learning content in the organization's directory, without a signed-in user.", + "displayName": "Read all learning content", + "id": "8740813e-d8aa-4204-860e-2a0f8f84dbc8", + "origin": "Application", + "value": "LearningContent.Read.All" + }, + { + "description": "Allows the app to read and update the authentication context information in your organization without a signed-in user.", + "displayName": "Read and write all authentication context information", + "id": "a88eef72-fed0-4bf7-a2a9-f19df33f8b83", + "origin": "Application", + "value": "AuthenticationContext.ReadWrite.All" + }, + { + "description": "Allows the app to read all admin report settings, such as whether to display concealed information in reports, without a signed-in user.", + "displayName": "Read all admin report settings", + "id": "ee353f83-55ef-4b78-82da-555bfa2b4b95", + "origin": "Application", + "value": "ReportSettings.Read.All" + }, + { + "description": "Allows the app to read the members of all chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read the members of all chats where the associated Teams application is installed.", + "id": "93e7c9e4-54c5-4a41-b796-f2a5adaacda7", + "origin": "Application", + "value": "ChatMember.Read.WhereInstalled" + }, + { + "description": "Allows the app to add and remove members from all chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Add and remove members from all chats where the associated Teams application is installed.", + "id": "e32c2cd9-0124-4e44-88fc-772cd98afbdb", + "origin": "Application", + "value": "ChatMember.ReadWrite.WhereInstalled" + }, + { + "description": "Allows the app to read your organization's threat submissions and to view threat submission policies without a signed-in user.", + "displayName": "Read all of the organization's threat submissions", + "id": "86632667-cd15-4845-ad89-48a88e8412e1", + "origin": "Application", + "value": "ThreatSubmission.Read.All" + }, + { + "description": "Allows an app to sign digests for data without a signed-in user.", + "displayName": "Sign digests for data", + "id": "cbe6c7e4-09aa-4b8d-b3c3-2dbb59af4b54", + "origin": "Application", + "value": "InformationProtectionContent.Sign.All" + }, + { + "description": "Allows the app to read your organization's threat submission policies without a signed-in user. Also allows the app to create new threat submission polices without a signed-in user.", + "displayName": "Read and write all of the organization's threat submission policies", + "id": "926a6798-b100-4a20-a22f-a4918f13951d", + "origin": "Application", + "value": "ThreatSubmissionPolicy.ReadWrite.All" + }, + { + "description": "Allows the app to read all one-to-one or group chat messages in Microsoft Teams for chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read all chat messages for chats where the associated Teams application is installed.", + "id": "1c1b4c8e-3cc7-4c58-8470-9b92c9d5848b", + "origin": "Application", + "value": "Chat.Read.WhereInstalled" + }, + { + "description": "Allows the app to read and write all chat messages in Microsoft Teams for chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read and write all chat messages for chats where the associated Teams application is installed.", + "id": "ad73ce80-f3cd-40ce-b325-df12c33df713", + "origin": "Application", + "value": "Chat.ReadWrite.WhereInstalled" + }, + { + "description": "Allows the app to read and update all Azure AD recommendations, without a signed-in user. ", + "displayName": "Read and update all Azure AD recommendations", + "id": "0e9eea12-4f01-45f6-9b8d-3ea4c8144158", + "origin": "Application", + "value": "DirectoryRecommendations.ReadWrite.All" + }, + { + "description": "Allows the app to read all recordings of all online meetings, without a signed-in user.", + "displayName": "Read all recordings of online meetings.", + "id": "a4a08342-c95d-476b-b943-97e100569c8d", + "origin": "Application", + "value": "OnlineMeetingRecording.Read.All" + }, + { + "description": "Allows an app to manage license assignments for users and groups, without a signed-in user.", + "displayName": "Manage all license assignments", + "id": "5facf0c1-8979-4e95-abcf-ff3d079771c0", + "origin": "Application", + "value": "LicenseAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the Teams app settings without a signed-in user.", + "displayName": "Read and write Teams app settings", + "id": "ab5b445e-8f10-45f4-9c79-dd3f8062cc4e", + "origin": "Application", + "value": "TeamworkAppSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, without a signed-in user.", + "displayName": "Read and write all users' lifecycle information", + "id": "925f1248-0f97-47b9-8ec8-538c54e01325", + "origin": "Application", + "value": "User-LifeCycleInfo.ReadWrite.All" + }, + { + "description": "Allows the app to read all Azure AD recommendations, without a signed-in user. ", + "displayName": "Read all Azure AD recommendations", + "id": "ae73097b-cb2a-4447-b064-5d80f6093921", + "origin": "Application", + "value": "DirectoryRecommendations.Read.All" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant without a signed-in user.\u00a0 It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant without a signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export their data", + "id": "8b919d44-6192-4f3d-8a3b-f86f8069ae3c", + "origin": "Application", + "value": "CrossTenantUserProfileSharing.Read.All" + }, + { + "description": "Allows the app to manage restricted resources based on the other permissions granted to the app, without a signed-in user.", + "displayName": "Manage restricted resources in the directory", + "id": "f20584af-9290-4153-9280-ff8bb2c0ea7f", + "origin": "Application", + "value": "Directory.Write.Restricted" + }, + { + "description": "Allows the app to read all transcripts of all online meetings, without a signed-in user.", + "displayName": "Read all transcripts of online meetings.", + "id": "a4a80d8d-d283-4bd8-8504-555ec3870630", + "origin": "Application", + "value": "OnlineMeetingTranscript.Read.All" + }, + { + "description": "Allows\u00a0the\u00a0app\u00a0to\u00a0manage all learning\u00a0content\u00a0in\u00a0the\u00a0organization's\u00a0directory, without a signed-in user.", + "displayName": "Manage all\u00a0learning\u00a0content", + "id": "444d6fcb-b738-41e5-b103-ac4f2a2628a3", + "origin": "Application", + "value": "LearningContent.ReadWrite.All" + }, + { + "description": "Allows the application to read the tenant-level settings of SharePoint and OneDrive, without a signed-in user.", + "displayName": "Read SharePoint and OneDrive tenant settings", + "id": "83d4163d-a2d8-4d3b-9695-4ae3ca98f888", + "origin": "Application", + "value": "SharePointTenantSettings.Read.All" + }, + { + "description": "Allows the app to read or write your organization's custom authentication extensions without a signed-in user.", + "displayName": "Read and write all custom authentication extensions", + "id": "c2667967-7050-4e7e-b059-4cbbb3811d03", + "origin": "Application", + "value": "CustomAuthenticationExtension.ReadWrite.All" + }, + { + "description": "Allows the app to read names and members of all one-to-one and group chats in Microsoft Teams where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read names and members of all chat threads where the associated Teams application is installed.", + "id": "818ba5bd-5b3e-4fe0-bbe6-aa4686669073", + "origin": "Application", + "value": "Chat.ReadBasic.WhereInstalled" + }, + { + "description": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources without a signed-in user.", + "displayName": "Read all lifecycle workflows resources", + "id": "7c67316a-232a-4b84-be22-cea2c0906404", + "origin": "Application", + "value": "LifecycleWorkflows.Read.All" + }, + { + "description": "Allows the app to create protected content without a signed-in user. ", + "displayName": "Create protected content", + "id": "287bd98c-e865-4e8c-bade-1a85523195b9", + "origin": "Application", + "value": "InformationProtectionContent.Write.All" + }, + { + "description": "Allows the app to create, read, update and delete all users\u2019 tasks and task lists in your organization, without a signed-in user", + "displayName": "Read and write all users\u2019 tasks and tasklists", + "id": "44e666d1-d276-445b-a5fc-8815eeb81d55", + "origin": "Application", + "value": "Tasks.ReadWrite.All" + }, + { + "description": "Allows the app to read the Teams app settings without a signed-in user.", + "displayName": "Read Teams app settings", + "id": "475ebe88-f071-4bd7-af2b-642952bd4986", + "origin": "Application", + "value": "TeamworkAppSettings.Read.All" + }, + { + "description": "Allows the app to read the authentication context information in your organization without a signed-in user.", + "displayName": "Read all authentication context information", + "id": "381f742f-e1f8-4309-b4ab-e3d91ae4c5c1", + "origin": "Application", + "value": "AuthenticationContext.Read.All" + }, + { + "description": "Allows the app to read and update all admin report settings, such as whether to display concealed information in reports, without a signed-in user.", + "displayName": "Read and write all admin report settings", + "id": "2a60023f-3219-47ad-baa4-40e17cd02a1d", + "origin": "Application", + "value": "ReportSettings.ReadWrite.All" + }, + { + "description": "Allows an app to read all browser site lists configured for your organization, without a signed-in user.", + "displayName": "Read all browser site lists for your organization", + "id": "c5ee1f21-fc7f-4937-9af0-c91648ff9597", + "origin": "Application", + "value": "BrowserSiteLists.Read.All" + }, + { + "description": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, without a signed-in user.", + "displayName": "Read all users' lifecycle information", + "id": "8556a004-db57-4d7a-8b82-97a13428e96f", + "origin": "Application", + "value": "User-LifeCycleInfo.Read.All" + }, + { + "description": "Allows an app to read all acronyms without a signed-in user.", + "displayName": "Read all acronyms", + "id": "8c0aed2c-0c61-433d-b63c-6370ddc73248", + "origin": "Application", + "value": "Acronym.Read.All" + }, + { + "description": "Allows the app to see your users' basic profile (e.g., name, picture, user name, email address)", + "displayName": "View users' basic profile", + "id": "14dad69e-099b-42c9-810b-d002981feec1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to see your basic profile (e.g., name, picture, user name, email address)", + "userConsentDisplayName": "View your basic profile", + "value": "profile" + }, + { + "description": "Allows the app to read attack simulation and training data for an organization for the signed-in user.", + "displayName": "Read attack simulation data of an organization", + "id": "104a7a4b-ca76-4677-b7e7-2f4bc482f381", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read attack simulation and training data for an organization on your behalf.", + "userConsentDisplayName": "Read attack simulation data of an organization", + "value": "AttackSimulation.Read.All" + }, + { + "description": "Allows the app to read and write your organization's directory access review default policy on behalf of the signed-in user.", + "displayName": "Read and write your organization's directory access review default policy", + "id": "4f5bc9c8-ea54-4772-973a-9ca119cb0409", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's directory access review default policy on your behalf.", + "userConsentDisplayName": "Read and write your organization's directory access review default policy", + "value": "Policy.ReadWrite.AccessReview" + }, + { + "description": "Allows the app to read your organization's threat submissions and threat submission policies on behalf of the signed-in user. Also allows the app to create new threat submissions on behalf of the signed-in user.", + "displayName": "Read and write all threat submissions", + "id": "8458e264-4eb9-4922-abe9-768d58f13c7f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submissions and threat submission policies on your behalf. Also allows the app to create new threat submissions on your behalf.", + "userConsentDisplayName": "Read and write all threat submissions", + "value": "ThreatSubmission.ReadWrite.All" + }, + { + "description": "Allows the application to read any data from Records Management, such as configuration, labels, and policies on behalf of the signed-in user.", + "displayName": "Read Records Management configuration,\u00a0labels, and policies", + "id": "07f995eb-fc67-4522-ad66-2b8ca8ea3efd", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read any data from Records Management, such as configuration, labels and policies on your behalf.", + "userConsentDisplayName": "Read Records Management configuration,\u00a0labels, and policies", + "value": "RecordsManagement.Read.All" + }, + { + "description": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies on behalf of the signed-in user.", + "displayName": "Read and write Records Management configuration, labels, and policies", + "id": "f2833d75-a4e6-40ab-86d4-6dfe73c97605", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies on your behalf.", + "userConsentDisplayName": "Read and write Records Management configuration, labels, and policies", + "value": "RecordsManagement.ReadWrite.All" + }, + { + "description": "Allows the app to read details of delegated admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups on behalf of the signed-in user.", + "displayName": "Read Delegated Admin relationships with customers", + "id": "0c0064ea-477b-4130-82a5-4c2cc4ff68aa", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read details of Delegated Admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups on your behalf.", + "userConsentDisplayName": "Read Delegated Admin relationships with customers", + "value": "DelegatedAdminRelationship.Read.All" + }, + { + "description": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers as well as role assignments to security groups for active Delegated Admin relationships on behalf of the signed-in user.", + "displayName": "Manage Delegated Admin relationships with customers", + "id": "885f682f-a990-4bad-a642-36736a74b0c7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers and role assignments to security groups for active Delegated Admin relationships on your behalf.", + "userConsentDisplayName": "Manage Delegated Admin relationships with customers", + "value": "DelegatedAdminRelationship.ReadWrite.All" + }, + { + "description": "Allows the app to read and write all managed tenant information on behalf of the signed-in user.", + "displayName": "Read and write all managed tenant information", + "id": "b31fa710-c9b3-4d9e-8f5e-8036eecddab9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all managed tenant information on your behalf.", + "userConsentDisplayName": "Read and write all managed tenant information", + "value": "ManagedTenants.ReadWrite.All" + }, + { + "description": "Allows the app to read all managed tenant information on behalf of the signed-in user.", + "displayName": "Read all managed tenant information", + "id": "dc34164e-6c4a-41a0-be89-3ae2fbad7cd3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all managed tenant information on your behalf.", + "userConsentDisplayName": "Read all managed tenant information", + "value": "ManagedTenants.Read.All" + }, + { + "description": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, on behalf of the signed-in user. This includes reading and managing Cloud PC role definitions and role assignments.", + "displayName": "Read and write Cloud PC RBAC settings", + "id": "501d06f8-07b8-4f18-b5c6-c191a4af7a82", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, on your behalf. This includes reading and managing Cloud PC role definitions and memberships.", + "userConsentDisplayName": "Read and write Cloud PC RBAC settings", + "value": "RoleManagement.ReadWrite.CloudPC" + }, + { + "description": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, on behalf of the signed-in user.\u00a0 This includes reading Cloud PC role definitions and role assignments.", + "displayName": "Read Cloud PC RBAC settings", + "id": "9619b88a-8a25-48a7-9571-d23be0337a79", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, on your behalf.\u00a0 This includes reading Cloud PC role definitions and role assignments.", + "userConsentDisplayName": "Read Cloud PC RBAC settings", + "value": "RoleManagement.Read.CloudPC" + }, + { + "description": "Allows the app to read and write settings of external connections on behalf of a signed-in user. The signed-in user must be an administrator. The app can only read and write settings of connections that it is authorized to.", + "displayName": "Read and write external connections", + "id": "4082ad95-c812-4f02-be92-780c4c4f1830", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write external connections on your behalf. The signed-in user must be an administrator. The app can only read and write external connections that it is authorized to, or it can create new external connections. ", + "userConsentDisplayName": "Read and write external connections", + "value": "ExternalConnection.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read all external connections on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read all external connections", + "id": "a38267a5-26b6-4d76-9493-935b7599116b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all external connections on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read all external connections", + "value": "ExternalConnection.Read.All" + }, + { + "description": "Allows the app to read and write all external connections on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read and write all external connections", + "id": "bbbbd9b3-3566-4931-ac37-2b2180d9e334", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all external connections on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read and write all external connections", + "value": "ExternalConnection.ReadWrite.All" + }, + { + "description": "Allows the app to read and write external items on behalf of a signed-in user. The signed-in user must be an administrator. The app can only read external items of the connection that it is authorized to.", + "displayName": "Read and write external items", + "id": "4367b9d7-cee7-4995-853c-a0bdfe95c1f9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write external items on your behalf. The signed-in user must be an administrator. The app can only read external items of the connection that it is authorized to.", + "userConsentDisplayName": "Read and write external items", + "value": "ExternalItem.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read and write all external items on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read and write all external items", + "id": "b02c54f8-eb48-4c50-a9f0-a149e5a2012f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all external items on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read and write all external items", + "value": "ExternalItem.ReadWrite.All" + }, + { + "description": "Allows the app to read custom security attribute assignments for all principals in the tenant on behalf of a signed in user.", + "displayName": "Read custom security attribute assignments", + "id": "b46ffa80-fe3d-4822-9a1a-c200932d54d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read custom security attribute assignments for all principals in the tenant on your behalf.", + "userConsentDisplayName": "Read custom security attribute assignments", + "value": "CustomSecAttributeAssignment.Read.All" + }, + { + "description": "Allows the app to read custom security attribute definitions for the tenant on behalf of a signed in user.", + "displayName": "Read custom security attribute definitions", + "id": "ce026878-a0ff-4745-a728-d4fedd086c07", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read custom security attribute definitions for the tenant on your behalf.", + "userConsentDisplayName": "Read custom security attribute definitions", + "value": "CustomSecAttributeDefinition.Read.All" + }, + { + "description": "Allows the app to read and write your organization's cross tenant access policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's cross tenant access policies", + "id": "014b43d0-6ed4-4fc6-84dc-4b6f7bae7d85", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's cross tenant access policies on your behalf.", + "userConsentDisplayName": "Read and write your organization's cross tenant access policies", + "value": "Policy.ReadWrite.CrossTenantAccess" + }, + { + "description": "Allows the app to read and write tags in Teams, on behalf of the signed-in user.", + "displayName": "Read and write tags in Teams", + "id": "539dabd7-b5b6-4117-b164-d60cd15a8671", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write tags in Teams, on your behalf.", + "userConsentDisplayName": "Read and write tags in Teams", + "value": "TeamworkTag.ReadWrite" + }, + { + "description": "Allows the app to read tags in Teams, on behalf of the signed-in user.", + "displayName": "Read tags in Teams", + "id": "57587d0b-8399-45be-b207-8050cec54575", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read tags in Teams, on your behalf.", + "userConsentDisplayName": "Read tags in Teams", + "value": "TeamworkTag.Read" + }, + { + "description": "Allows the app to read and write security incidents, on behalf of the signed-in user.", + "displayName": "Read and write to incidents", + "id": "128ca929-1a19-45e6-a3b8-435ec44a36ba", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write to all security incidents that you have access to.", + "userConsentDisplayName": "Read and write to security incidents", + "value": "SecurityIncident.ReadWrite.All" + }, + { + "description": "Allows the app to read security incidents, on behalf of the signed-in user.", + "displayName": "Read incidents", + "id": "b9abcc4f-94fc-4457-9141-d20ce80ec952", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all security incidents that you have access to.", + "userConsentDisplayName": "Read security incidents", + "value": "SecurityIncident.Read.All" + }, + { + "description": "Allows the app to read and write to all security alerts, on behalf of the signed-in user.", + "displayName": "Read and write to all security alerts", + "id": "471f2a7f-2a42-4d45-a2bf-594d0838070d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all alerts that you have access to.", + "userConsentDisplayName": "Read and write all alerts", + "value": "SecurityAlert.ReadWrite.All" + }, + { + "description": "Allows the app to read all security alerts, on behalf of the signed-in user.", + "displayName": "Read all security alerts", + "id": "bc257fb8-46b4-4b15-8713-01e91bfbe4ea", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all security alerts that you have access to.", + "userConsentDisplayName": "Read all alerts", + "value": "SecurityAlert.Read.All" + }, + { + "description": "Allows the app to update service announcement messages' user status on behalf of the signed-in user. The message status can be marked as read, archive, or favorite.", + "displayName": "Update user status on service announcement messages", + "id": "636e1b0b-1cc2-4b1c-9aa9-4eeed9b9761b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to update service announcement messages' status on your behalf. Your status for messages can be marked as read, archive, or favorite.", + "userConsentDisplayName": "Update your user status on service announcement messages", + "value": "ServiceMessageViewpoint.Write" + }, + { + "description": "Allows the app to run hunting queries, on behalf of the signed-in user.", + "displayName": "Run hunting queries", + "id": "b152eca8-ea73-4a48-8c98-1a6742673d99", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to run hunting queries that you can execute.", + "userConsentDisplayName": "Run hunting queries", + "value": "ThreatHunting.Read.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself to teams the signed-in user can access.", + "displayName": "Allow the app to manage itself in teams", + "id": "0f4595f7-64b1-4e13-81bc-11a249df07a9", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself to teams you can access.", + "userConsentDisplayName": "Allow the Teams app to manage itself in teams", + "value": "TeamsAppInstallation.ReadWriteSelfForTeam" + }, + { + "description": "Allow the app to read the management data for Teams devices on behalf of the signed-in user.", + "displayName": "Read Teams devices", + "id": "b659488b-9d28-4208-b2be-1c6652b3c970", + "Origin": "Delegated", + "userConsentDescription": "Allow the app to read the management data for Teams devices on your behalf.", + "userConsentDisplayName": "Read Teams devices", + "value": "TeamworkDevice.Read.All" + }, + { + "description": "Allow the app to read and write the management data for Teams devices on behalf of the signed-in user.", + "displayName": "Read and write Teams devices", + "id": "ddd97ecb-5c31-43db-a235-0ee20e635c40", + "Origin": "Delegated", + "userConsentDescription": "Allow the app to read and write the management data for Teams devices on your behalf.", + "userConsentDisplayName": "Read and write Teams devices", + "value": "TeamworkDevice.ReadWrite.All" + }, + { + "description": "Allows the app to read all identity risky service principal information for your organization, on behalf of the signed-in user.", + "displayName": "Read all identity risky service principal information", + "id": "ea5c4ab0-5a73-4f35-8272-5d5337884e5d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all identity risky service principal information for your organization, on your behalf.", + "userConsentDisplayName": "Read all identity risky service principal information", + "value": "IdentityRiskyServicePrincipal.Read.All" + }, + { + "description": "Allows the app to read and update identity risky service principal information for all service principals in your organization, on behalf of the signed-in user. Update operations include dismissing risky service principals.", + "displayName": "Read and write all identity risky service principal information", + "id": "bb6f654c-d7fd-4ae3-85c3-fc380934f515", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risky service principal information for all service principals in your organization, on your behalf. Update operations include dismissing risky service principals.", + "userConsentDisplayName": "Read and write all identity risky service principal information", + "value": "IdentityRiskyServicePrincipal.ReadWrite.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs to teams the signed-in user can access.", + "displayName": "Allow the Teams app to manage only its own tabs in teams", + "id": "f266662f-120a-4314-b26a-99b08617c7ef", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs to teams you can access.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs in teams", + "value": "TeamsTab.ReadWriteSelfForTeam" + }, + { + "description": "Allows the app to read the presence information and write activity and availability on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read and write a user's presence information", + "id": "8d3c54a7-cf58-4773-bf81-c0cd6ad522bb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the presence information and write activity and availability on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read and write your presence information", + "value": "Presence.ReadWrite" + }, + { + "description": "Allows the app to read subject rights requests on behalf of the signed-in user", + "displayName": "Read subject rights requests", + "id": "9c3af74c-fd0f-4db4-b17a-71939e2a9d77", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read subject rights requests on your behalf.", + "userConsentDisplayName": "Read data subject requests", + "value": "SubjectRightsRequest.Read.All" + }, + { + "description": "Allows the app to read and write subject rights requests on behalf of the signed-in user", + "displayName": "Read and write subject rights requests", + "id": "2b8fcc74-bce1-4ae3-a0e8-60c53739299d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write subject rights requests on your behalf.", + "userConsentDisplayName": "Read and write data subject requests", + "value": "SubjectRightsRequest.ReadWrite.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for the signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for a user", + "id": "395dfec1-a0b9-465f-a783-8250a430cb8c", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for you.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs for you", + "value": "TeamsTab.ReadWriteSelfForUser" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage only its own tabs in chats", + "id": "0c219d04-3abf-47f7-912d-5cca239e90e6", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs in chats", + "value": "TeamsTab.ReadWriteSelfForChat" + }, + { + "description": "Allows the app to read and write search configuration, on behalf of the signed-in user.", + "displayName": "Read and write your organization's search configuration", + "id": "b1a7d408-cab0-47d2-a2a5-a74a3733600d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write search configuration, on your behalf.", + "userConsentDisplayName": "Read and write your organization's search configuration", + "value": "SearchConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read search configuration, on behalf of the signed-in user.", + "displayName": "Read your organization's search configuration", + "id": "7d307522-aa38-4cd0-bd60-90c6f0ac50bd", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read search configuration, on your behalf.", + "userConsentDisplayName": "Read your organization's search configuration", + "value": "SearchConfiguration.Read.All" + }, + { + "description": "Allows the app to read online meeting artifacts on behalf of the signed-in user.", + "displayName": "Read user's online meeting artifacts", + "id": "110e5abb-a10c-4b59-8b55-9b4daa4ef743", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read online meeting artifacts on your behalf.", + "userConsentDisplayName": "Read user's online meeting artifacts", + "value": "OnlineMeetingArtifact.Read.All" + }, + { + "description": "Allows the app to read and manage the active role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes managing active directory role membership, and reading directory role templates, directory roles and active memberships.", + "displayName": "Read, update, and delete all active role assignments for your company's directory", + "id": "8c026be3-8e26-4774-9372-8d5d6f21daff", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the active role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes managing active directory role membership, and reading directory role templates, directory roles and active memberships.", + "userConsentDisplayName": "Read, update, and delete all active role assignments for your company's directory", + "value": "RoleAssignmentSchedule.ReadWrite.Directory" + }, + { + "description": "Allows the app to read and manage the eligible role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes managing eligible directory role membership, and reading directory role templates, directory roles and eligible memberships.", + "displayName": "Read, update, and delete all eligible role assignments for your company's directory", + "id": "62ade113-f8e0-4bf9-a6ba-5acb31db32fd", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the eligible role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes managing eligible directory role membership, and reading directory role templates, directory roles and eligible memberships.", + "userConsentDisplayName": "Read, update, and delete all eligible role assignments for your company's directory", + "value": "RoleEligibilitySchedule.ReadWrite.Directory" + }, + { + "description": "Allows the app to read, update, and delete policies for privileged role-based access control (RBAC) assignments of your company's directory, on behalf of the signed-in user.", + "displayName": "Read, update, and delete all policies for privileged role assignments of your company's directory", + "id": "1ff1be21-34eb-448c-9ac9-ce1f506b2a68", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, and delete policies for privileged role-based access control (RBAC) assignments of your company's directory, on your behalf.", + "userConsentDisplayName": "Read, update, and delete all policies for privileged role assignments of your company's directory", + "value": "RoleManagementPolicy.ReadWrite.Directory" + }, + { + "description": "Allows the app to read the active role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, and directory roles.", + "displayName": "Read all active role assignments for your company's directory", + "id": "344a729c-0285-42c6-9014-f12b9b8d6129", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the active role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes reading directory role templates, and directory roles.", + "userConsentDisplayName": "Read all active role assignments for your company's directory", + "value": "RoleAssignmentSchedule.Read.Directory" + }, + { + "description": "Allows the app to read the eligible role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, and directory roles.", + "displayName": "Read all eligible role assignments for your company's directory", + "id": "eb0788c2-6d4e-4658-8c9e-c0fb8053f03d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the eligible role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes reading directory role templates, and directory roles.", + "userConsentDisplayName": "Read all eligible role assignments for your company's directory", + "value": "RoleEligibilitySchedule.Read.Directory" + }, + { + "description": "Allows the app to read policies for privileged role-based access control (RBAC) assignments of your company's directory, on behalf of the signed-in user.", + "displayName": "Read all policies for privileged role assignments of your company's directory", + "id": "3de2cdbe-0ff5-47d5-bdee-7f45b4749ead", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read policies for privileged role-based access control (RBAC) assignments of your company's directory, on your behalf.", + "userConsentDisplayName": "Read all policies for privileged role assignments of your company's directory", + "value": "RoleManagementPolicy.Read.Directory" + }, + { + "description": "Allows the app to read and write all Windows update deployment settings for the organization on behalf of the signed-in user.", + "displayName": "Read and write all Windows update deployment settings", + "id": "11776c0c-6138-4db3-a668-ee621bea2555", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all Windows update deployment settings for the organization on your behalf.", + "userConsentDisplayName": "Read and write all Windows update deployment settings", + "value": "WindowsUpdates.ReadWrite.All" + }, + { + "description": "Allows the app to read and write your organization's mobility management policies on behalf of the signed-in user. For example, a mobility management policy can set the enrollment scope for a given mobility management application.", + "displayName": "Read and write your organization's mobility management policies", + "id": "a8ead177-1889-4546-9387-f25e658e2a79", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's mobility management policies on your behalf. For example, a mobility management policy can set the enrollment scope for a given mobility management application.", + "userConsentDisplayName": "Read and write your organization's mobility management policies", + "value": "Policy.ReadWrite.MobilityManagement" + }, + { + "description": "Allows the app to read basic unified group properties, memberships and owners of the group the signed-in guest is a member of.", + "displayName": "Read unified group memberships as guest", + "id": "73e75199-7c3e-41bb-9357-167164dbb415", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read basic unified group properties, memberships and owners of the group you are a member of.", + "userConsentDisplayName": "Read unified group memberships as guest", + "value": "UnifiedGroupMember.Read.AsGuest" + }, + { + "description": "Allows the app to update service principal endpoints", + "displayName": "Read and update service principal endpoints", + "id": "7297d82c-9546-4aed-91df-3d4f0a9b3ff0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to update service principal endpoints", + "userConsentDisplayName": "Read and update service principal endpoints", + "value": "ServicePrincipalEndpoint.ReadWrite.All" + }, + { + "description": "Allows the app to read service principal endpoints", + "displayName": "Read service principal endpoints", + "id": "9f9ce928-e038-4e3b-8faf-7b59049a8ddc", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read service principal endpoints", + "userConsentDisplayName": "Read service principal endpoints", + "value": "ServicePrincipalEndpoint.Read.All" + }, + { + "description": "Allows the app to create new notifications in users' teamwork activity feeds on behalf of the signed in user. These notifications may not be discoverable or be held or governed by compliance policies.", + "displayName": "Send a teamwork activity as the user", + "id": "7ab1d787-bae7-4d5d-8db6-37ea32df9186", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create new activities in your teamwork activity feed, and send new activities to other users' activity feed, on your behalf.", + "userConsentDisplayName": "Send a teamwork activity", + "value": "TeamsActivity.Send" + }, + { + "description": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects on behalf of the signed-in user.", + "displayName": "Read and write all eDiscovery objects", + "id": "acb8f680-0834-4146-b69e-4ab1b39745ad", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects on your behalf.", + "userConsentDisplayName": "Read and write all eDiscovery objects", + "value": "eDiscovery.ReadWrite.All" + }, + { + "description": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects on behalf of the signed-in user.", + "displayName": "Read all eDiscovery objects", + "id": "99201db3-7652-4d5a-809a-bdb94f85fe3c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects on your behalf.", + "userConsentDisplayName": "Read all eDiscovery objects", + "value": "eDiscovery.Read.All" + }, + { + "description": "Allows the app to read and write custom security attribute assignments for all principals in the tenant on behalf of a signed in user.", + "displayName": "Read and write custom security attribute assignments", + "id": "ca46335e-8453-47cd-a001-8459884efeae", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write custom security attribute assignments for all principals in the tenant on your behalf.", + "userConsentDisplayName": "Read and write custom security attribute assignments", + "value": "CustomSecAttributeAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to read and write custom security attribute definitions for the tenant on behalf of a signed in user.", + "displayName": "Read and write custom security attribute definitions", + "id": "8b0160d4-5743-482b-bb27-efc0a485ca4a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write custom security attribute definitions for the tenant on your behalf.", + "userConsentDisplayName": "Read and write custom security attribute definitions", + "value": "CustomSecAttributeDefinition.ReadWrite.All" + }, + { + "description": "Allows the app to read email in the signed-in user's mailbox except body, previewBody, attachments and any extended properties.", + "displayName": "Read user basic mail", + "id": "a4b8392a-d8d1-4954-a029-8e668a39a170", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read email in the signed-in user's mailbox except body, previewBody, attachments and any extended properties.", + "userConsentDisplayName": "Read user basic mail", + "value": "Mail.ReadBasic" + }, + { + "description": "Allows the app to read and write your organization's feature rollout policies on behalf of the signed-in user. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "displayName": "Read and write your organization's feature rollout policies", + "id": "92a38652-f13b-4875-bc77-6e1dbb63e1b2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's feature rollout policies on your behalf. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "userConsentDisplayName": "Read and write your organization's feature rollout policies", + "value": "Policy.ReadWrite.FeatureRollout" + }, + { + "description": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, on behalf of the signed-in user. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "displayName": "Read and write directory RBAC settings", + "id": "d01b97e9-cbc0-49fe-810a-750afd5527a3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, on your behalf. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "userConsentDisplayName": "Read and write directory RBAC settings", + "value": "RoleManagement.ReadWrite.Directory" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, directory roles and memberships.", + "displayName": "Read directory RBAC settings", + "id": "741c54c3-0c1e-44a1-818b-3f97ab4e8c83", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, on your behalf. This includes reading directory role templates, directory roles and memberships.", + "userConsentDisplayName": "Read directory RBAC settings", + "value": "RoleManagement.Read.Directory" + }, + { + "description": "Allows the app to read and write the organization and related resources, on behalf of the signed-in user.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read and write organization information", + "id": "46ca0847-7e6b-426e-9775-ea810a948356", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the organization and related resources, on your behalf.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "userConsentDisplayName": "Read and write organization information", + "value": "Organization.ReadWrite.All" + }, + { + "description": "Allows the app to read the organization and related resources, on behalf of the signed-in user.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read organization information", + "id": "4908d5b9-3fb2-4b1e-9336-1888b7937185", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the organization and related resources, on your behalf.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "userConsentDisplayName": "Read organization information", + "value": "Organization.Read.All" + }, + { + "description": "Allows the app to read your company's places (conference rooms and room lists) for calendar events and other applications, on behalf of the signed-in user.", + "displayName": "Read all company places", + "id": "cb8f45a0-5c2e-4ea1-b803-84b870a7d7ec", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your company's places (conference rooms and room lists) for calendar events and other applications, on your behalf.", + "userConsentDisplayName": "Read all company places", + "value": "Place.Read.All" + }, + { + "description": "Allows the app to manage workforce integrations, to synchronize data from Microsoft Teams Shifts, on behalf of the signed-in user.", + "displayName": "Read and write workforce integrations", + "id": "08c4b377-0d23-4a8b-be2a-23c1c1d88545", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage workforce integrations, to synchronize data from Microsoft Teams Shifts, on your behalf.", + "userConsentDisplayName": "Read and write workforce integrations", + "value": "WorkforceIntegration.ReadWrite.All" + }, + { + "description": "Allows the app to read workforce integrations, to synchronize data from Microsoft Teams Shifts, on behalf of the signed-in user.", + "displayName": "Read workforce integrations", + "id": "f1ccd5a7-6383-466a-8db8-1a656f7d06fa", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read workforce integrations, to synchronize data from Microsoft Teams Shifts, on your behalf.", + "userConsentDisplayName": "Read workforce integrations", + "value": "WorkforceIntegration.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings for group and app memberships that the signed-in user has access to in the organization.", + "displayName": "Manage access reviews for group and app memberships", + "id": "5af8c3f5-baca-439a-97b0-ea58a435e269", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Manage access reviews for group and app memberships", + "value": "AccessReview.ReadWrite.Membership" + }, + { + "description": "Allows the app to manage hybrid identity service configuration by creating, viewing, updating and deleting on-premises published resources, on-premises agents and agent groups, on behalf of the signed-in user.", + "displayName": "Manage on-premises published resources", + "id": "8c4d5184-71c2-4bf8-bb9d-bc3378c9ad42", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage hybrid identity service configuration by creating, viewing, updating and deleting on-premises published resources, on-premises agents and agent groups, on your behalf.", + "userConsentDisplayName": "Manage on-premises published resources", + "value": "OnPremisesPublishingProfiles.ReadWrite.All" + }, + { + "description": "Allows an app to read information protection sensitivity labels and label policy settings, on behalf of the signed-in user.", + "displayName": "Read user sensitivity labels and label policies.", + "id": "4ad84827-5578-4e18-ad7a-86530b12f884", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read information protection sensitivity labels and label policy settings, on behalf of the signed-in user.", + "userConsentDisplayName": "Read user sensitivity labels and label policies.", + "value": "InformationProtectionPolicy.Read" + }, + { + "description": "Allows the app to read administrative units and administrative unit membership on behalf of the signed-in user.", + "displayName": "Read administrative units", + "id": "3361d15d-be43-4de6-b441-3c746d05163d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read administrative units and administrative unit membership on your behalf.", + "userConsentDisplayName": "Read administrative units", + "value": "AdministrativeUnit.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership on behalf of the signed-in user.", + "displayName": "Read and write administrative units", + "id": "7b8a2d34-6b3f-4542-a343-54651608ad81", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership on your behalf.", + "userConsentDisplayName": "Read and write administrative units", + "value": "AdministrativeUnit.ReadWrite.All" + }, + { + "description": "Allows the app to read your family information, members and their basic profile.", + "displayName": "Read your family info", + "id": "3a1e4806-a744-4c70-80fc-223bf8582c46", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your family information, members and their basic profile.", + "userConsentDisplayName": "Read your family info", + "value": "Family.Read" + }, + { + "description": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), on behalf of the signed-in user. \u00a0It cannot update any threat indicators it does not own.", + "displayName": "Manage threat indicators this app creates or owns", + "id": "91e7d36d-022a-490f-a748-f8e011357b42", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), on your behalf. \u00a0It cannot update any threat indicators that it is not an owner of.", + "userConsentDisplayName": "Manage threat indicators this app creates or owns", + "value": "ThreatIndicators.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read or update security actions, on behalf of the signed-in user.", + "displayName": "Read and update your organization's security actions", + "id": "dc38509c-b87d-4da0-bd92-6bec988bac4a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update security actions, on your behalf.", + "userConsentDisplayName": "Read and update your organization's security actions", + "value": "SecurityActions.ReadWrite.All" + }, + { + "description": "Allows the app to read security actions, on behalf of the signed-in user.", + "displayName": "Read your organization's security actions", + "id": "1638cddf-07a4-4de2-8645-69c96cacad73", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read security actions, on your behalf.", + "userConsentDisplayName": "Read your organization's security actions", + "value": "SecurityActions.Read.All" + }, + { + "description": "Allows an app to read 1 on 1 or group chats threads, on behalf of the signed-in user.", + "displayName": "Read user chat messages", + "id": "f501c180-9344-439a-bca0-6cbf209fd270", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read your 1 on 1 or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read your chat messages", + "value": "Chat.Read" + }, + { + "description": "Allows an app to read and write 1 on 1 or group chats threads, on behalf of the signed-in user.", + "displayName": "Read and write user chat messages", + "id": "9ff7295e-131b-4d94-90e1-69fde507ac11", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read and write your 1 on 1 or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read and write your chat messages", + "value": "Chat.ReadWrite" + }, + { + "description": "Allows the app to read and write your organization's trust framework policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's trust framework policies", + "id": "cefba324-1a70-4a6e-9c1d-fd670b7ae392", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's trust framework policies on your behalf.", + "userConsentDisplayName": "Read and write trust framework policies", + "value": "Policy.ReadWrite.TrustFramework" + }, + { + "description": "Allows the app to read trust framework key set properties on behalf of the signed-in user.", + "displayName": "Read trust framework key sets", + "id": "7ad34336-f5b1-44ce-8682-31d7dfcd9ab9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read trust framework key sets, on your behalf.", + "userConsentDisplayName": "Read trust framework key sets", + "value": "TrustFrameworkKeySet.Read.All" + }, + { + "description": "Allows the app to read and write trust framework key set properties on behalf of the signed-in user.", + "displayName": "Read and write trust framework key sets", + "id": "39244520-1e7d-4b4a-aee0-57c65826e427", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or write trust framework key sets, on your behalf.", + "userConsentDisplayName": "Read and write trust framework key sets", + "value": "TrustFrameworkKeySet.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risk event information for all users in your organization on behalf of the signed-in user.\u00a0Update operations include confirming risk event detections.\u00a0", + "displayName": "Read and write risk event information", + "id": "9e4862a5-b68f-479e-848a-4e07e25c9916", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risk event information for all users in your organization on your behalf.\u00a0Update operations include confirming risk event detections.\u00a0", + "userConsentDisplayName": "Read and write risk event information", + "value": "IdentityRiskEvent.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risky user information for all users in your organization on behalf of the signed-in user.\u00a0Update operations include dismissing risky users.", + "displayName": "Read and write risky user information", + "id": "e0a7cdbb-08b0-4697-8264-0069786e9674", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risky user information for all users in your organization on your behalf.\u00a0Update operations include dismissing risky users.", + "userConsentDisplayName": "Read and write identity risky user information", + "value": "IdentityRiskyUser.ReadWrite.All" + }, + { + "description": "Allows the app to read the signed-in user's mailbox.", + "displayName": "Read user mail ", + "id": "570282fd-fa5c-430d-a7fd-fc8dc98a9dca", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read email in your mailbox. ", + "userConsentDisplayName": "Read your mail ", + "value": "Mail.Read" + }, + { + "description": "Allows the app to read identity risky user information for all users in your organization on behalf of the signed-in user.", + "displayName": "Read identity risky user information", + "id": "d04bb851-cb7c-4146-97c7-ca3e71baf56c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read identity risky user information for all users in your organization on behalf of the signed-in user.", + "userConsentDisplayName": "Read identity risky user information", + "value": "IdentityRiskyUser.Read.All" + }, + { + "description": "Allows the app to read the signed-in user's activity statistics, such as how much time the user has spent on emails, in meetings, or in chat sessions.", + "displayName": "Read user activity statistics", + "id": "e03cf23f-8056-446a-8994-7d93dfc8b50e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your activity statistics, such as how much time you've spent on emails, in meetings, or in chat sessions.", + "userConsentDisplayName": "Read your activity statistics", + "value": "Analytics.Read" + }, + { + "description": "Allows the app to see and update the data you gave it access to, even when users are not currently using the app. This does not give the app any additional permissions.", + "displayName": "Maintain access to data you have given it access to", + "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to see and update the data you gave it access to, even when you are not currently using the app. This does not give the app any additional permissions.", + "userConsentDisplayName": "Maintain access to data you have given it access to", + "value": "offline_access" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via Exchange Web Services.", + "displayName": "Access mailboxes as the signed-in user via Exchange Web Services", + "id": "9769c687-087d-48ac-9cb3-c37dde652038", + "Origin": "Delegated", + "userConsentDescription": "Allows the app full access to your mailboxes on your behalf.", + "userConsentDisplayName": "Access your mailboxes", + "value": "EWS.AccessAsUser.All" + }, + { + "description": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "displayName": "Export user's data", + "id": "405a51b5-8d8d-430b-9842-8be4b0e9f324", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "userConsentDisplayName": "Export user's data", + "value": "User.Export.All" + }, + { + "description": "Allows the app to deliver its notifications on behalf of signed-in users. Also allows the app to read, update, and delete the user's notification items for this app.", + "displayName": "Deliver and manage user notifications for this app", + "id": "89497502-6e42-46a2-8cb2-427fd3df970a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to deliver its notifications, on your behalf. Also allows the app to read, update, and delete your notification items for this app.", + "userConsentDisplayName": "Deliver and manage your notifications for this app", + "value": "Notifications.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read and write your organization's conditional access policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's conditional access policies", + "id": "ad902697-1014-4ef5-81ef-2b4301988e8c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's conditional access policies on your behalf.", + "userConsentDisplayName": "Read and write your organization's conditional access policies", + "value": "Policy.ReadWrite.ConditionalAccess" + }, + { + "description": "Allows the app to read your organization's policies on behalf of the signed-in user.", + "displayName": "Read your organization's policies", + "id": "572fea84-0151-49b2-9301-11cb16974376", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's policies on your behalf.", + "userConsentDisplayName": "Read your organization's policies", + "value": "Policy.Read.All" + }, + { + "description": "Allows the app to read access reviews, reviewers, decisions and settings that the signed-in user has access to in the organization.", + "displayName": "Read all access reviews that user can access", + "id": "ebfcd32b-babb-40f4-a14b-42706e83bd28", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read information on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Read access reviews that you can access", + "value": "AccessReview.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings that the signed-in user has access to in the organization.", + "displayName": "Manage all access reviews that user can access", + "id": "e4aa47b9-9a69-4109-82ed-36ec70d85ff1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Manage access reviews that you can access", + "value": "AccessReview.ReadWrite.All" + }, + { + "description": "Allows the app to read programs and program controls that the signed-in user has access to in the organization.", + "displayName": "Read all programs that user can access", + "id": "c492a2e1-2f8f-4caa-b076-99bbf6e40fe4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read information on programs and program controls that you have access to.", + "userConsentDisplayName": "Read programs that you can access", + "value": "ProgramControl.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on programs and program controls that the signed-in user has access to in the organization.", + "displayName": "Manage all programs that user can access", + "id": "50fd364f-9d93-4ae1-b170-300e87cccf84", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on programs and program controls that you have access to.", + "userConsentDisplayName": "Manage programs that you can access", + "value": "ProgramControl.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete apps in the app catalogs.", + "displayName": "Read and write to all app catalogs", + "id": "1ca167d5-1655-44a1-8adf-1414072e1ef9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete apps in the app catalogs.", + "userConsentDisplayName": "Read and write to all app catalogs", + "value": "AppCatalog.ReadWrite.All" + }, + { + "description": "Allows the app to request and manage just in time elevation (including scheduled elevation) of users to Azure AD built-in administrative roles, on behalf of signed-in users.", + "displayName": "Read and write privileged access to Azure AD", + "id": "3c3c74f5-cdaa-4a97-b7e0-4e788bfcfb37", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage just in time elevation (including scheduled elevation) of users to Azure AD built-in administrative roles, on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure AD", + "value": "PrivilegedAccess.ReadWrite.AzureAD" + }, + { + "description": "Allows the app to read terms of use agreements on behalf of the signed-in user.", + "displayName": "Read all terms of use agreements", + "id": "af2819c9-df71-4dd3-ade7-4d7c9dc653b7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read terms of use agreements on your behalf.", + "userConsentDisplayName": "Read all terms of use agreements", + "value": "Agreement.Read.All" + }, + { + "description": "Allows the app to read and write terms of use agreements on behalf of the signed-in user.", + "displayName": "Read and write all terms of use agreements", + "id": "ef4b5d93-3104-4664-9053-a5c49ab44218", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write terms of use agreements on your behalf.", + "userConsentDisplayName": "Read and write all terms of use agreements", + "value": "Agreement.ReadWrite.All" + }, + { + "description": "Allows the app to read terms of use acceptance statuses on behalf of the signed-in user.", + "displayName": "Read user terms of use acceptance statuses", + "id": "0b7643bb-5336-476f-80b5-18fbfbc91806", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your terms of use acceptance statuses.", + "userConsentDisplayName": "Read your terms of use acceptance statuses", + "value": "AgreementAcceptance.Read" + }, + { + "description": "Allows the app to read terms of use acceptance statuses on behalf of the signed-in user.", + "displayName": "Read terms of use acceptance statuses that user can access", + "id": "a66a5341-e66e-4897-9d52-c2df58c2bfb9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read terms of use acceptance statuses on your behalf.", + "userConsentDisplayName": "Read all terms of use acceptance statuses", + "value": "AgreementAcceptance.Read.All" + }, + { + "description": "Read activity data for your organization", + "displayName": "Allows the application to read activity data for your organization.", + "id": "594c1fb6-4f81-4475-ae41-0c394909246c", + "Origin": "Delegated (Office 365 Management)", + "userConsentDescription": "Read activity data for your organization", + "userConsentDisplayName": "Allows the application to read activity data for your organization.", + "value": "ActivityFeed.Read" + }, + { + "description": "Allows the app to read and query your audit log activities, on behalf of the signed-in user.", + "displayName": "Read audit log data", + "id": "e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and query your audit log activities, on your behalf.", + "userConsentDisplayName": "Read audit log data", + "value": "AuditLog.Read.All" + }, + { + "description": "Allows the app to read and report the signed-in user's activity in the app.", + "displayName": "Read and write app activity to users' activity feed", + "id": "47607519-5fb1-47d9-99c7-da4b48f369b1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and report your activity in the app.", + "userConsentDisplayName": "Read and write app activity to your activity feed", + "value": "UserActivity.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "displayName": "Read Microsoft Intune Device Configuration and Policies", + "id": "f1493658-876a-4c87-8fa7-edb559b3476a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "userConsentDisplayName": "Read Microsoft Intune Device Configuration and Policies", + "value": "DeviceManagementConfiguration.Read.All" + }, + { + "description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "displayName": "Read and write Microsoft Intune Device Configuration and Policies", + "id": "0883f392-0a7a-443d-8c76-16a6d39c7b63", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "userConsentDisplayName": "Read and write Microsoft Intune Device Configuration and Policies", + "value": "DeviceManagementConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "displayName": "Read Microsoft Intune apps", + "id": "4edf5f54-4666-44af-9de9-0144fb4b6e8c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "userConsentDisplayName": "Read Microsoft Intune apps", + "value": "DeviceManagementApps.Read.All" + }, + { + "description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "displayName": "Read and write Microsoft Intune apps", + "id": "7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "userConsentDisplayName": "Read and write Microsoft Intune apps", + "value": "DeviceManagementApps.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "displayName": "Read Microsoft Intune RBAC settings", + "id": "49f0cc30-024c-4dfd-ab3e-82e137ee5431", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "userConsentDisplayName": "Read Microsoft Intune RBAC settings", + "value": "DeviceManagementRBAC.Read.All" + }, + { + "description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "displayName": "Read and write Microsoft Intune RBAC settings", + "id": "0c5e8a55-87a6-4556-93ab-adc52c4d862d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "userConsentDisplayName": "Read and write Microsoft Intune RBAC settings", + "value": "DeviceManagementRBAC.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties of devices managed by Microsoft Intune.", + "displayName": "Read Microsoft Intune devices", + "id": "314874da-47d6-4978-88dc-cf0d37f0bb82", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties of devices managed by Microsoft Intune.", + "userConsentDisplayName": "Read devices Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.Read.All" + }, + { + "description": "Allows the app to read and write the properties of devices managed by Microsoft Intune. Does not allow high impact operations such as remote wipe and password reset on the device\u2019s owner.", + "displayName": "Read and write Microsoft Intune devices", + "id": "44642bfe-8385-4adc-8fc6-fe3cb2c375c3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties of devices managed by Microsoft Intune. Does not allow high impact operations such as remote wipe and password reset on the device\u2019s owner.", + "userConsentDisplayName": "Read and write Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.ReadWrite.All" + }, + { + "description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune.", + "displayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "id": "3404d2bf-2b13-457e-a330-c24615765193", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune.", + "userConsentDisplayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.PrivilegedOperations.All" + }, + { + "description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "displayName": "Read and write Microsoft Intune configuration", + "id": "662ed50a-ac44-4eef-ad86-62eed9be2a29", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "userConsentDisplayName": "Read and write Microsoft Intune configuration", + "value": "DeviceManagementServiceConfig.ReadWrite.All" + }, + { + "description": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "displayName": "Read Microsoft Intune configuration", + "id": "8696daa5-bce5-4b2e-83f9-51b6defc4e1e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "userConsentDisplayName": "Read Microsoft Intune configuration", + "value": "DeviceManagementServiceConfig.Read.All" + }, + { + "description": "Allows the app to read your organization\u2019s security events on behalf of the signed-in user.", + "displayName": "Read your organization\u2019s security events", + "id": "64733abd-851e-478a-bffb-e47a14b18235", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization\u2019s security events on your behalf.", + "userConsentDisplayName": "Read your organization\u2019s security events", + "value": "SecurityEvents.Read.All" + }, + { + "description": "Allows the app to read your organization\u2019s security events on behalf of the signed-in user. Also allows the app to update editable properties in security events on behalf of the signed-in user.", + "displayName": "Read and update your organization\u2019s security events", + "id": "6aedf524-7e1c-45a7-bd76-ded8cab8d0fc", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization\u2019s security events on your behalf. Also allows you to update editable properties in security events.", + "userConsentDisplayName": "Read and update your organization\u2019s security events", + "value": "SecurityEvents.ReadWrite.All" + }, + { + "description": "Allows the app to read a scored list of relevant people of the signed-in user or other users in the signed-in user's organization. The list can include local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read all users' relevant people lists", + "id": "b89f9189-71a5-4e70-b041-9887f0bc7e4a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read a list of people in the order that is most relevant to you. Allows the app to read a list of people in the order that is most relevant to another user in your organization. These can include local contacts, contacts from social networking, people listed in your organization\u2019s directory, and people from recent communications.", + "userConsentDisplayName": "Read all users\u2019 relevant people lists", + "value": "People.Read.All" + }, + { + "description": "Manage the state and settings of all Microsoft education apps on behalf of the user.", + "displayName": "Manage education app settings", + "id": "63589852-04e3-46b4-bae9-15d5b1050748", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage the state and settings of all Microsoft education apps on your behalf.", + "userConsentDisplayName": "Manage your education app settings", + "value": "EduAdministration.ReadWrite" + }, + { + "description": "Read the state and settings of all Microsoft education apps on behalf of the user.", + "displayName": "Read education app settings", + "id": "8523895c-6081-45bf-8a5d-f062a2f12c9f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view the state and settings of all Microsoft education apps on your behalf.", + "userConsentDisplayName": "View your education app settings", + "value": "EduAdministration.Read" + }, + { + "description": "Allows the app to read and write assignments and their grades on behalf of the user.", + "displayName": "Read and write users' class assignments and their grades", + "id": "2f233e90-164b-4501-8bce-31af2559a2d3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify your assignments on your behalf including \u00a0grades.", + "userConsentDisplayName": "View and modify your assignments and grades", + "value": "EduAssignments.ReadWrite" + }, + { + "description": "Allows the app to read assignments and their grades on behalf of the user.", + "displayName": "Read users' class assignments and their grades", + "id": "091460c9-9c4a-49b2-81ef-1f3d852acce2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view your assignments on your behalf including grades.", + "userConsentDisplayName": "View your assignments and grades", + "value": "EduAssignments.Read" + }, + { + "description": "Allows the app to read and write assignments without grades on behalf of the user.", + "displayName": "Read and write users' class assignments without grades", + "id": "2ef770a1-622a-47c4-93ee-28d6adbed3a0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify your assignments on your behalf without seeing grades.", + "userConsentDisplayName": "View and modify your assignments without grades", + "value": "EduAssignments.ReadWriteBasic" + }, + { + "description": "Allows the app to read assignments without grades on behalf of the user.", + "displayName": "Read users' class assignments without grades", + "id": "c0b0103b-c053-4b2e-9973-9f3a544ec9b8", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view your assignments on your behalf without seeing grades.", + "userConsentDisplayName": "View your assignments without grades", + "value": "EduAssignments.ReadBasic" + }, + { + "description": "Allows the app to read and write the structure of schools and classes in an organization's roster and education-specific information about users to be read and written on behalf of the user.", + "displayName": "Read and write users' view of the roster", + "id": "359e19a6-e3fa-4d7f-bcab-d28ec592b51e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify information about schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View and modify your school, class and user information", + "value": "EduRoster.ReadWrite" + }, + { + "description": "Allows the app to read the structure of schools and classes in an organization's roster and education-specific information about users to be read on behalf of the user.", + "displayName": "Read users' view of the roster", + "id": "a4389601-22d9-4096-ac18-36a927199112", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view information about schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View your school, class and user information", + "value": "EduRoster.Read" + }, + { + "description": "Allows the app to read a limited subset of the properties from the structure of schools and classes in an organization's roster and a limited subset of properties about users to be read on behalf of the user.\u00a0Includes name, status, education role, email address and photo.", + "displayName": "Read a limited subset of users' view of the roster", + "id": "5d186531-d1bf-4f07-8cea-7c42119e1bd9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view minimal \u00a0information about both schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View a limited subset of your school, class and user information", + "value": "EduRoster.ReadBasic" + }, + { + "description": "Allows the app to report the signed-in user's app activity information to Microsoft Timeline.", + "displayName": "Write app activity to users' timeline", + "id": "367492fc-594d-4972-a9b5-0d58c622c91c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to report your app activity information to Microsoft Timeline.", + "userConsentDisplayName": "Write app activity to your timeline", + "value": "UserTimelineActivity.Write.CreatedByApp" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings. Does not include permission to send mail.", + "displayName": "Read and write user mailbox settings", + "id": "818c620a-27a9-40bd-a6a5-d96f7d610b4b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete your mailbox settings.", + "userConsentDisplayName": "Read and write to your mailbox settings", + "value": "MailboxSettings.ReadWrite" + }, + { + "description": "Allows the app to launch another app or communicate with another app on a user's device on behalf of the signed-in user.", + "displayName": "Communicate with user devices", + "id": "bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to launch another app or communicate with another app on a device that you own.", + "userConsentDisplayName": "Communicate with your other devices", + "value": "Device.Command" + }, + { + "description": "Allows the app to read a user's list of devices on behalf of the signed-in user.", + "displayName": "Read user devices", + "id": "11d4cd79-5ba5-460f-803f-e22c8ab85ccd", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to see your list of devices.", + "userConsentDisplayName": "View your list of devices", + "value": "Device.Read" + }, + { + "description": "Allows the app to read, share, and modify OneNote notebooks that the signed-in user has access to in the organization.", + "displayName": "Read and write all OneNote notebooks that user can access", + "id": "64ac0503-b4fa-45d9-b544-71a463f05da0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, share, and modify all the OneNote notebooks that you have access to.", + "userConsentDisplayName": "Read and write all OneNote notebooks that you can access", + "value": "Notes.ReadWrite.All" + }, + { + "description": "Allows the app to read OneNote notebooks that the signed-in user has access to in the organization.", + "displayName": "Read all OneNote notebooks that user can access", + "id": "dfabfca6-ee36-4db2-8208-7a28381419b3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all the OneNote notebooks that you have access to.", + "userConsentDisplayName": "Read all OneNote notebooks that you can access", + "value": "Notes.Read.All" + }, + { + "description": "Allows the app to read, share, and modify OneNote notebooks on behalf of the signed-in user.", + "displayName": "Read and write user OneNote notebooks", + "id": "615e26af-c38a-4150-ae3e-c3b0d4cb1d6a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, share, and modify OneNote notebooks on your behalf.", + "userConsentDisplayName": "Read and write your OneNote notebooks", + "value": "Notes.ReadWrite" + }, + { + "description": "Allows the app to read OneNote notebooks on behalf of the signed-in user.", + "displayName": "Read user OneNote notebooks", + "id": "371361e4-b9e2-4a3f-8315-2a301a3b0a3d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read OneNote notebooks on your behalf.", + "userConsentDisplayName": "Read your OneNote notebooks", + "value": "Notes.Read" + }, + { + "description": "This is deprecated! Do not use! This permission no longer has any effect. You can safely consent to it. No additional privileges will be granted to the app.", + "displayName": "Limited notebook access (deprecated)", + "id": "ed68249d-017c-4df5-9113-e684c7f8760b", + "Origin": "Delegated", + "userConsentDescription": "This permission no longer has any effect. You can safely consent to it. No additional privileges will be granted to the app.", + "userConsentDisplayName": "Limited access to your OneNote notebooks for this app (preview)", + "value": "Notes.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read the titles of OneNote notebooks and sections and to create new pages, notebooks, and sections on behalf of the signed-in user.", + "displayName": "Create user OneNote notebooks", + "id": "9d822255-d64d-4b7a-afdb-833b9a97ed02", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view the titles of your OneNote notebooks and sections and to create new pages, notebooks, and sections on your behalf.", + "userConsentDisplayName": "Create your OneNote notebooks", + "value": "Notes.Create" + }, + { + "description": "Allows the app to invite guest users to the organization, on behalf of the signed-in user.", + "displayName": "Invite guest users to the organization", + "id": "63dd7cd9-b489-4adf-a28c-ac38b9a0f962", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to invite guest users to the organization, on your behalf.", + "userConsentDisplayName": "Invite guest users to the organization", + "value": "User.Invite.All" + }, + { + "description": "Allows the app to the read user's mailbox settings. Does not include permission to send mail.", + "displayName": "Read user mailbox settings", + "id": "87f447af-9fa4-4c32-9dfa-4a57a73d18ce", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your mailbox settings.", + "userConsentDisplayName": "Read your mailbox settings", + "value": "MailboxSettings.Read" + }, + { + "description": "(Preview) Allows the app to read files that the user selects. The app has access for several hours after the user selects a file.", + "displayName": "Read files that the user selects (preview)", + "id": "5447fe39-cb82-4c1a-b977-520e67e724eb", + "Origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read files that you select. After you select a file, the app has access to the file for several hours.", + "userConsentDisplayName": "Read selected files", + "value": "Files.Read.Selected" + }, + { + "description": "(Preview) Allows the app to read and write files that the user selects. The app has access for several hours after the user selects a file.", + "displayName": "Read and write files that the user selects (preview)", + "id": "17dde5bd-8c17-420f-a486-969730c1b827", + "Origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read and write files that you select. After you select a file, the app has access to the file for several hours.", + "userConsentDisplayName": "Read and write selected files", + "value": "Files.ReadWrite.Selected" + }, + { + "description": "(Preview) Allows the app to read, create, update and delete files in the application's folder.", + "displayName": "Have full access to the application's folder (preview)", + "id": "8019c312-3263-48e6-825e-2b833497195b", + "Origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read, create, update and delete files in the application's folder.", + "userConsentDisplayName": "Have full access to the application's folder", + "value": "Files.ReadWrite.AppFolder" + }, + { + "description": "Allows an app to read all service usage reports on behalf of the signed-in user. Services that provide usage reports include Office 365 and Azure Active Directory.", + "displayName": "Read all usage reports", + "id": "02e97553-ed7b-43d0-ab3c-f8bace0d040c", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read all service usage reports on your behalf. Services that provide usage reports include Office 365 and Azure Active Directory.", + "userConsentDisplayName": "Read all usage reports", + "value": "Reports.Read.All" + }, + { + "description": "Allows the application to edit or delete documents and list items in all site collections on behalf of the signed-in user.", + "displayName": "Edit or delete items in all site collections", + "id": "89fe6a52-be36-487e-b7d8-d061c450a026", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to edit or delete documents and list items in all site collections on your behalf.", + "userConsentDisplayName": "Edit or delete items in all site collections", + "value": "Sites.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete tasks a user has permissions to, including their own and shared tasks.", + "displayName": "Read and write user and shared tasks", + "id": "c5ddf11b-c114-4886-8558-8a4e557cd52b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete tasks you have permissions to access, including your own and shared tasks.", + "userConsentDisplayName": "Read and write to your and shared tasks", + "value": "Tasks.ReadWrite.Shared" + }, + { + "description": "Allows the app to read tasks a user has permissions to access, including their own and shared tasks.", + "displayName": "Read user and shared tasks", + "id": "88d21fd4-8e5a-4c32-b5e2-4a1c95f34f72", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read tasks you have permissions to access, including your own and shared tasks.", + "userConsentDisplayName": "Read your and shared tasks", + "value": "Tasks.Read.Shared" + }, + { + "description": "Allows the app to create, read, update, and delete contacts a user has permissions to, including their own and shared contacts.", + "displayName": "Read and write user and shared contacts", + "id": "afb6c84b-06be-49af-80bb-8f3f77004eab", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete contacts you have permissions to access, including your own and shared contacts.", + "userConsentDisplayName": "Read and write to your and shared contacts", + "value": "Contacts.ReadWrite.Shared" + }, + { + "description": "Allows the app to read contacts a user has permissions to access, including their own and shared contacts.", + "displayName": "Read user and shared contacts", + "id": "242b9d9e-ed24-4d09-9a52-f43769beb9d4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read contacts you have permissions to access, including your own and shared contacts.", + "userConsentDisplayName": "Read your and shared contacts", + "value": "Contacts.Read.Shared" + }, + { + "description": "Allows the app to create, read, update and delete events in all calendars in the organization user has permissions to access. This includes delegate and shared calendars.", + "displayName": "Read and write user and shared calendars", + "id": "12466101-c9b8-439a-8589-dd09ee67e8e9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete events in all calendars in your organization you have permissions to access. This includes delegate and shared calendars.", + "userConsentDisplayName": "Read and write to your and shared calendars", + "value": "Calendars.ReadWrite.Shared" + }, + { + "description": "Allows the app to read events in all calendars that the user can access, including delegate and shared calendars.", + "displayName": "Read user and shared calendars", + "id": "2b9c4092-424d-4249-948d-b43879977640", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read events in all calendars that you can access, including delegate and shared calendars.\u00a0", + "userConsentDisplayName": "Read calendars\u00a0you can access", + "value": "Calendars.Read.Shared" + }, + { + "description": "Allows the app to send mail as the signed-in user, including sending on-behalf of others.", + "displayName": "Send mail on behalf of others", + "id": "a367ab51-6b49-43bf-a716-a1fb06d2a174", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send mail as you or on-behalf of someone else.", + "userConsentDisplayName": "Send mail on behalf of others or yourself", + "value": "Mail.Send.Shared" + }, + { + "description": "Allows the app to create, read, update, and delete mail a user has permission to access, including their own and shared mail. Does not include permission to send mail.", + "displayName": "Read and write user and shared mail", + "id": "5df07973-7d5d-46ed-9847-1271055cbd51", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete mail you have permission to access, including your own and shared mail. Does not allow the app to send mail on your behalf.", + "userConsentDisplayName": "Read and write mail\u00a0you can access", + "value": "Mail.ReadWrite.Shared" + }, + { + "description": "Allows the app to read mail a user can access, including their own and shared mail.", + "displayName": "Read user and shared mail", + "id": "7b9103a5-4610-446b-9670-80643382c1fa", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read mail you can access, including shared mail.", + "userConsentDisplayName": "Read mail you can access", + "value": "Mail.Read.Shared" + }, + { + "description": "Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.", + "displayName": "Sign in and read user profile", + "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d", + "Origin": "Delegated", + "userConsentDescription": "Allows you to sign in to the app with your organizational account and let the app read your profile. It also allows the app to read basic company information.", + "userConsentDisplayName": "Sign you in and read your profile", + "value": "User.Read" + }, + { + "description": "Allows the app to read your profile. It also allows the app to update your profile information on your behalf.", + "displayName": "Read and write access to user profile", + "id": "b4e74841-8e56-480b-be8b-910348b18b4c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your profile, and discover your group membership, reports and manager. It also allows the app to update your profile information on your behalf.", + "userConsentDisplayName": "Read and update your profile", + "value": "User.ReadWrite" + }, + { + "description": "Allows the app to read a basic set of profile properties of other users in your organization on behalf of the signed-in user. This includes display name, first and last name, email address and photo.", + "displayName": "Read all users' basic profiles", + "id": "b340eb25-3456-403f-be2f-af7a0d370277", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read a basic set of profile properties of other users in your organization on your behalf. Includes display name, first and last name, email address and photo.", + "userConsentDisplayName": "Read all users' basic profiles", + "value": "User.ReadBasic.All" + }, + { + "description": "Allows the app to read the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user.", + "displayName": "Read all users' full profiles", + "id": "a154be20-db9c-4678-8ab7-66f6cc099a59", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the full set of profile properties, reports, and managers of other users in your organization, on your behalf.", + "userConsentDisplayName": "Read all users' full profiles", + "value": "User.Read.All" + }, + { + "description": "Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user.", + "displayName": "Read and write all users' full profiles", + "id": "204e0828-b5ca-4ad8-b9f3-f32a958e7cc4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on your behalf.", + "userConsentDisplayName": "Read and write all users' full profiles", + "value": "User.ReadWrite.All" + }, + { + "description": "Allows the app to list groups, and to read their properties and all group memberships on behalf of the signed-in user. Also allows the app to read calendar, conversations, files, and other group content for all groups the signed-in user can access. ", + "displayName": "Read all groups", + "id": "5f8c59db-677d-491f-a6b8-5f174b11ec1d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, and to read their properties and all group memberships on your behalf. Also allows the app to read calendar, conversations, files, and other group content for all groups you can access. ", + "userConsentDisplayName": "Read all groups", + "value": "Group.Read.All" + }, + { + "description": "Allows the app to create groups and read all group properties and memberships on behalf of the signed-in user. Additionally allows group owners to manage their groups and allows group members to update group content.", + "displayName": "Read and write all groups", + "id": "4e46008b-f24c-477d-8fff-7bb4ec7aafe0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create groups and read all group properties and memberships on your behalf. Additionally allows the app to manage your groups and to update group content for groups you are a member of.", + "userConsentDisplayName": "Read and write all groups", + "value": "Group.ReadWrite.All" + }, + { + "description": "Allows the app to read data in your organization's directory, such as users, groups and apps.", + "displayName": "Read directory data", + "id": "06da0dbc-49e2-44d2-8312-53f166ab848a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read data in your organization's directory.", + "userConsentDisplayName": "Read directory data", + "value": "Directory.Read.All" + }, + { + "description": "Allows the app to read and write data in your organization's directory, such as users, and groups. It does not allow the app to delete users or groups, or reset user passwords.", + "displayName": "Read and write directory data", + "id": "c5366453-9fb0-48a5-a156-24f0c49a4b84", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write data in your organization's directory, such as other users, groups. It does not allow the app to delete users or groups, or reset user passwords.", + "userConsentDisplayName": "Read and write directory data", + "value": "Directory.ReadWrite.All" + }, + { + "description": "Allows the app to have the same access to information in the directory as the signed-in user.", + "displayName": "Access directory as the signed in user", + "id": "0e263e50-5827-48a4-b97c-d940288653c7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to have the same access to information in your work or school directory as you do.", + "userConsentDisplayName": "Access the directory as you", + "value": "Directory.AccessAsUser.All" + }, + { + "description": "Allows the app to create, read, update, and delete email in user mailboxes. Does not include permission to send mail. ", + "displayName": "Read and write access to user mail ", + "id": "024d486e-b451-40bb-833d-3e66d98c5c73", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail. ", + "userConsentDisplayName": "Read and write access to your mail ", + "value": "Mail.ReadWrite" + }, + { + "description": "Allows the app to send mail as users in the organization. ", + "displayName": "Send mail as a user ", + "id": "e383f46e-2787-4529-855e-0e479a3ffac0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send mail as you. ", + "userConsentDisplayName": "Send mail as you ", + "value": "Mail.Send" + }, + { + "description": "Allows the app to read events in user calendars . ", + "displayName": "Read user calendars ", + "id": "465a38f9-76ea-45b9-9f34-9e8b0d4b0b42", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read events in your calendars. ", + "userConsentDisplayName": "Read your calendars ", + "value": "Calendars.Read" + }, + { + "description": "Allows the app to create, read, update, and delete events in user calendars. ", + "displayName": "Have full access to user calendars ", + "id": "1ec239c2-d7c9-4623-a91a-a9775856bb36", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete events in your calendars. ", + "userConsentDisplayName": "Have full access to your calendars ", + "value": "Calendars.ReadWrite" + }, + { + "description": "Allows the app to read user contacts. ", + "displayName": "Read user contacts ", + "id": "ff74d97f-43af-4b68-9f2a-b77ee6968c5d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read contacts in your contact folders. ", + "userConsentDisplayName": "Read your contacts ", + "value": "Contacts.Read" + }, + { + "description": "Allows the app to create, read, update, and delete user contacts. ", + "displayName": "Have full access to user contacts ", + "id": "d56682ec-c09e-4743-aaf4-1a3aac4caa21", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete contacts in your contact folders. ", + "userConsentDisplayName": "Have full access of your contacts ", + "value": "Contacts.ReadWrite" + }, + { + "description": "Allows the app to read the signed-in user's files.", + "displayName": "Read user files", + "id": "10465720-29dd-4523-a11a-6a75c743c9d9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your files.", + "userConsentDisplayName": "Read your files", + "value": "Files.Read" + }, + { + "description": "Allows the app to read, create, update and delete the signed-in user's files.", + "displayName": "Have full access to user files", + "id": "5c28f0bf-8a70-41f1-8ab2-9032436ddb65", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, update, and delete your files.", + "userConsentDisplayName": "Have full access to your files", + "value": "Files.ReadWrite" + }, + { + "description": "Allows the app to read all files the signed-in user can access.", + "displayName": "Read all files that user can access", + "id": "df85f4d6-205c-4ac5-a5ea-6bf408dba283", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all files you can access.", + "userConsentDisplayName": "Read all files that you have access to", + "value": "Files.Read.All" + }, + { + "description": "Allows the app to read, create, update and delete all files the signed-in user can access.", + "displayName": "Have full access to all files user can access", + "id": "863451e7-0667-486c-a5d6-d135439485f0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, update and delete all files that you can access.", + "userConsentDisplayName": "Have full access to all files you have access to", + "value": "Files.ReadWrite.All" + }, + { + "description": "Allows the application to read documents and list items in all site collections on behalf of the signed-in user", + "displayName": "Read items in all site collections", + "id": "205e70e5-aba6-4c52-a976-6d2d46c48043", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to read documents and list items in all site collections on your behalf", + "userConsentDisplayName": "Read items in all site collections", + "value": "Sites.Read.All" + }, + { + "description": "Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.", + "displayName": "Sign users in", + "id": "37f7f235-527c-4136-accd-4a02d197296e", + "Origin": "Delegated", + "userConsentDescription": "Allows you to sign in to the app with your work or school account and allows the app to read your basic profile information.", + "userConsentDisplayName": "Sign in as you", + "value": "openid" + }, + { + "description": "Allows the app to read your users' primary email address", + "displayName": "View users' email address", + "id": "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your primary email address", + "userConsentDisplayName": "View your email address", + "value": "email" + }, + { + "description": "Allows the app to read identity risk event information for all users in your organization on behalf of the signed-in user. ", + "displayName": "Read identity risk event information", + "id": "8f6a01e7-0391-4ee5-aa22-a3af122cef27", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read identity risk event information for all users in your organization on behalf of the signed-in user. ", + "userConsentDisplayName": "Read identity risk event information", + "value": "IdentityRiskEvent.Read.All" + }, + { + "description": "Allows the app to read the memberships of hidden groups and administrative units on behalf of the signed-in user, for those hidden groups and administrative units that the signed-in user has access to.", + "displayName": "Read hidden memberships", + "id": "f6a3db3e-f7e8-4ed2-a414-557c8c9830be", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the memberships of hidden groups or administrative units on your behalf, for those hidden groups or adminstrative units that you have access to.", + "userConsentDisplayName": "Read your hidden memberships", + "value": "Member.Read.Hidden" + }, + { + "description": "Allows the app to read a ranked list of relevant people of the signed-in user. The list includes local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read users' relevant people lists", + "id": "ba47897c-39ec-4d83-8086-ee8256fa737d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read a list of people in the order that's most relevant to you. This includes your local contacts, your contacts from social networking, people listed in your organization's directory, and people from recent communications.", + "userConsentDisplayName": "Read your relevant people list", + "value": "People.Read" + }, + { + "description": "Allows the application to create or delete document libraries and lists in all site collections on behalf of the signed-in user.", + "displayName": "Create, edit, and delete items and lists in all site collections", + "id": "65e50fdc-43b7-4915-933e-e8138f11f40a", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to create or delete document libraries and lists in all site collections on your behalf.", + "userConsentDisplayName": "Create, edit, and delete items and lists in all your site collections", + "value": "Sites.Manage.All" + }, + { + "description": "Allows the application to have full control of all site collections on behalf of the signed-in user.", + "displayName": "Have full control of all site collections", + "id": "5a54b8b3-347c-476d-8f8e-42d5c7424d29", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to have full control of all site collections on your behalf.", + "userConsentDisplayName": "Have full control of all your site collections", + "value": "Sites.FullControl.All" + }, + { + "description": "Allows the app to read and write your organization\u2019s identity (authentication) providers\u2019 properties on behalf of the user.", + "displayName": "Read and write identity providers", + "id": "f13ce604-1677-429f-90bd-8a10b9f01325", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization\u2019s identity (authentication) providers\u2019 properties on your behalf.", + "userConsentDisplayName": "Read and write identity providers", + "value": "IdentityProvider.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization\u2019s identity (authentication) providers\u2019 properties on behalf of the user.", + "displayName": "Read identity providers", + "id": "43781733-b5a7-4d1b-98f4-e8edff23e1a9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization\u2019s identity (authentication) providers\u2019 properties on your behalf.", + "userConsentDisplayName": "Read identity providers", + "value": "IdentityProvider.Read.All" + }, + { + "description": "Allows an app to read bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user.", + "displayName": "Read bookings information", + "id": "33b1df99-4b29-4548-9339-7a7b83eaeebc", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read bookings appointments, businesses, customers, services, and staff on your behalf.", + "userConsentDisplayName": "Read bookings information", + "value": "Bookings.Read.All" + }, + { + "description": "Allows an app to read and write bookings appointments and customers, and additionally allows read businesses information, services, and staff on behalf of the signed-in user.", + "displayName": "Read and write booking appointments", + "id": "02a5a114-36a6-46ff-a102-954d89d9ab02", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read and write bookings appointments and customers, and additionally allows read businesses information, services, and staff on your behalf.", + "userConsentDisplayName": "Read and write booking appointments", + "value": "BookingsAppointment.ReadWrite.All" + }, + { + "description": "Allows an app to read and write bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user. Does not allow create, delete and publish of booking businesses.", + "displayName": "Read and write bookings information", + "id": "948eb538-f19d-4ec5-9ccc-f059e1ea4c72", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read and write Bookings appointments, businesses, customers, services, and staff on your behalf. Does not allow create, delete and publish of booking businesses.", + "userConsentDisplayName": "Read and write bookings information", + "value": "Bookings.ReadWrite.All" + }, + { + "description": "Allows an app to read, write and manage bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user.", + "displayName": "Manage bookings information", + "id": "7f36b48e-542f-4d3b-9bcb-8406f0ab9fdb", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read, write and manage bookings appointments, businesses, customers, services, and staff on your behalf.", + "userConsentDisplayName": "Manage bookings information", + "value": "Bookings.Manage.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via Exchange ActiveSync.", + "displayName": "Access mailboxes via Exchange ActiveSync", + "id": "ff91d191-45a0-43fd-b837-bd682c4a0b0f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app full access to your mailboxes on your behalf.", + "userConsentDisplayName": "Access your mailboxes", + "value": "EAS.AccessAsUser.All" + }, + { + "description": "Allows the app to read and write financials data on behalf of the signed-in user.", + "displayName": "Read and write financials data", + "id": "f534bf13-55d4-45a9-8f3c-c92fe64d6131", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write financials data on your behalf.", + "userConsentDisplayName": "Read and write financials data", + "value": "Financials.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's user flows, on behalf of the signed-in user.", + "displayName": "Read all identity user flows", + "id": "2903d63d-4611-4d43-99ce-a33f3f52e343", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's user flows, on your behalf.", + "userConsentDisplayName": "Read all identity user flows", + "value": "IdentityUserFlow.Read.All" + }, + { + "description": "Allows the app to read or write your organization's user flows, on behalf of the signed-in user.", + "displayName": "Read and write all identity user flows", + "id": "281892cc-4dbf-4e3a-b6cc-b21029bb4e82", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's user flows, on your behalf.", + "userConsentDisplayName": "Read and write all identity user flows", + "value": "IdentityUserFlow.ReadWrite.All" + }, + { + "description": "Allows the app to read all organizational contacts on behalf of the signed-in user. \u00a0These contacts are managed by the organization and are different from a user's personal contacts.", + "displayName": "Read organizational contacts", + "id": "08432d1b-5911-483c-86df-7980af5cdee0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all organizational contacts on your behalf.\u00a0 These contacts are managed by the organization and are different from your personal contacts.", + "userConsentDisplayName": "Read organizational contacts", + "value": "OrgContact.Read.All" + }, + { + "description": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, on behalf of the signed-in user.", + "displayName": "Manage app permission grants and app role assignments", + "id": "84bccea3-f856-4a8a-967b-dbe0a3d53a64", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, on your behalf.", + "userConsentDisplayName": "Manage app permission grants and app role assignments", + "value": "AppRoleAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), on behalf of the signed in user.", + "displayName": "Manage all delegated permission grants", + "id": "41ce6ca6-6826-4807-84f1-1c82854f7ee5", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), on your behalf. ", + "userConsentDisplayName": "Manage all delegated permission grants", + "value": "DelegatedPermissionGrant.ReadWrite.All" + }, + { + "description": "Allows the app to read online meeting details on behalf of the signed-in user.", + "displayName": "Read user's online meetings", + "id": "9be106e1-f4e3-4df5-bdff-e4bc531cbe43", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read online meeting details on your behalf.", + "userConsentDisplayName": "Read your online meetings", + "value": "OnlineMeetings.Read" + }, + { + "description": "Allows the app to read and create online meetings on behalf of the signed-in user.", + "displayName": "Read and create user's online meetings", + "id": "a65f2972-a4f8-4f5e-afd7-69ccb046d5dc", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and create online meetings on your behalf.", + "userConsentDisplayName": "Read and create your online meetings", + "value": "OnlineMeetings.ReadWrite" + }, + { + "description": "Allows the app to read the signed-in user's teamwork activity feed.", + "displayName": "Read user's teamwork activity feed", + "id": "0e755559-83fb-4b44-91d0-4cc721b9323e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your teamwork activity feed.", + "userConsentDisplayName": "Read your teamwork activity feed", + "value": "TeamsActivity.Read" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation of user privileges to manage Azure resources (like subscriptions, resource groups, storage, compute) on behalf of the signed-in users.", + "displayName": "Read and write privileged access to Azure resources", + "id": "a84a9652-ffd3-496e-a991-22ba5529156a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage time-based assignment and just-in-time elevation of user privileges to manage \u00a0your Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure resources", + "value": "PrivilegedAccess.ReadWrite.AzureResources" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles, on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure AD", + "id": "b3a539c9-59cb-4ad5-825a-041ddbdc2bdb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles, on your behalf.", + "userConsentDisplayName": "Read privileged access to Azure AD", + "value": "PrivilegedAccess.Read.AzureAD" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure AD groups", + "id": "d329c81c-20ad-4772-abf9-3f6fdb7e5988", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read privileged access to Azure AD groups", + "value": "PrivilegedAccess.Read.AzureADGroup" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure resources", + "id": "1d89d70c-dcac-4248-b214-903c457af83a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf.", + "userConsentDisplayName": "Read privileged access to your Azure resources", + "value": "PrivilegedAccess.Read.AzureResources" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read and write privileged access to Azure AD groups", + "id": "32531c59-1f32-461f-b8df-6f8a3b89f73b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure AD groups", + "value": "PrivilegedAccess.ReadWrite.AzureADGroup" + }, + { + "description": "Allows the app to read all the indicators for your organization, on behalf of the signed-in user.", + "displayName": "Read all threat indicators", + "id": "9cc427b4-2004-41c5-aa22-757b755e9796", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all the indicators for your organization, on your behalf.", + "userConsentDisplayName": "Read all threat indicators", + "value": "ThreatIndicators.Read.All" + }, + { + "description": "Allow the app to read external datasets and content, on behalf of the signed-in user.", + "displayName": "Read items in external datasets", + "id": "922f9392-b1b7-483c-a4be-0089be7704fb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read external datasets and content that you have access to.", + "userConsentDisplayName": "Read items in external datasets", + "value": "ExternalItem.Read.All" + }, + { + "description": "Allows an app to edit channel messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Edit user's channel messages", + "id": "2b61aa8a-6d36-4b2f-ac7b-f29867937c53", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to edit channel messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Edit your channel messages", + "value": "ChannelMessage.Edit" + }, + { + "description": "Allows an app to send channel messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Send channel messages", + "id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send channel messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Send channel messages", + "value": "ChannelMessage.Send" + }, + { + "description": "Allows the app to manage organization places (conference rooms and room lists) for calendar events and other applications, on behalf of the signed-in user.", + "displayName": "Read and write organization places", + "id": "4c06a06a-098a-4063-868e-5dfee3827264", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage organization places (conference rooms and room lists) for calendar events and other applications, on your behalf.", + "userConsentDisplayName": "Read and write organization places", + "value": "Place.ReadWrite.All" + }, + { + "description": "Allows the app to request access to and management of access packages and related entitlement management resources on behalf of the signed-in user.", + "displayName": "Read and write entitlement management resources", + "id": "ae7a573d-81d7-432b-ad44-4ed5c9d89038", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to request access to and management of access packages and related entitlement management resources that you have access to.", + "userConsentDisplayName": "Read and write entitlement management resources", + "value": "EntitlementManagement.ReadWrite.All" + }, + { + "description": "Allows the app to send, read, update and delete user\u2019s notifications.", + "displayName": "Deliver and manage user's notifications", + "id": "26e2f3e8-b2a1-47fc-9620-89bb5b042024", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send, read, update and delete your app-specific notifications.", + "userConsentDisplayName": "Deliver and manage your notifications", + "value": "UserNotification.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read applications and service principals on behalf of the signed-in user.", + "displayName": "Read applications", + "id": "c79f8feb-a9db-4090-85f9-90d820caa0eb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read applications and service principals on your behalf.", + "userConsentDisplayName": "Read applications", + "value": "Application.Read.All" + }, + { + "description": "Allows the app to create, read, update and delete applications and service principals on behalf of the signed-in user. Does not allow management of consent grants.", + "displayName": "Read and write all applications", + "id": "bdfbf15f-ee85-4955-8675-146e8e5296b5", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update and delete applications and service principals on your behalf. Does not allow management of consent grants.", + "userConsentDisplayName": "Read and write applications", + "value": "Application.ReadWrite.All" + }, + { + "description": "Allows the app to read BitLocker keys on behalf of the signed-in user, for their owned devices. Allows read of the recovery key.", + "displayName": "Read BitLocker keys", + "id": "b27a61ec-b99c-4d6a-b126-c4375d08ae30", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read BitLocker keys for your owned devices. Allows read of the recovery key.", + "userConsentDisplayName": "Read your BitLocker keys", + "value": "BitlockerKey.Read.All" + }, + { + "description": "Allows the app to read basic BitLocker key properties on behalf of the signed-in user, for their owned devices. Does not allow read of the recovery key itself.", + "displayName": "Read BitLocker keys basic information", + "id": "5a107bfc-4f00-4e1a-b67e-66451267bc68", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read basic BitLocker key properties for your owned devices. Does not allow read of the recovery key itself.", + "userConsentDisplayName": "Read your BitLocker keys basic information", + "value": "BitlockerKey.ReadBasic.All" + }, + { + "description": "Allows the app to list groups, read basic group properties and read membership of all groups the signed-in user has access to.", + "displayName": "Read group memberships", + "id": "bc024368-1153-4739-b217-4326f2e966d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, read basic group properties and read membership of all your groups.", + "userConsentDisplayName": "Read group memberships", + "value": "GroupMember.Read.All" + }, + { + "description": "Allows the app to list groups, read basic properties, read and update the membership of the groups the signed-in user has access to. Group properties and owners cannot be updated and groups cannot be deleted.", + "displayName": "Read and write group memberships", + "id": "f81125ac-d3b7-4573-a3b2-7099cc39df9e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, read basic properties, read and update the membership of your groups. Group properties and owners cannot be updated and groups cannot be deleted.", + "userConsentDisplayName": "Read and write group memberships", + "value": "GroupMember.ReadWrite.All" + }, + { + "description": "Allows an app to read your organization's threat assessment requests on behalf of the signed-in user. Also allows the app to create new requests to assess threats received by your organization on behalf of the signed-in user.", + "displayName": "Read and write threat assessment requests", + "id": "cac97e40-6730-457d-ad8d-4852fddab7ad", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read your organization's threat assessment requests on your behalf. Also allows the app to create new requests to assess threats received by your organization on your behalf.", + "userConsentDisplayName": "Read and write threat assessment requests", + "value": "ThreatAssessment.ReadWrite.All" + }, + { + "description": "Allows the app to read schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on behalf of the signed-in user.", + "displayName": "Read user schedule items", + "id": "fccf6dd8-5706-49fa-811f-69e2e1b585d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on your behalf.", + "userConsentDisplayName": "Read your schedule items", + "value": "Schedule.Read.All" + }, + { + "description": "Allows the app to manage schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on behalf of the signed-in user.", + "displayName": "Read and write user schedule items", + "id": "63f27281-c9d9-4f29-94dd-6942f7f1feb0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on your behalf.", + "userConsentDisplayName": "Read and write your schedule items", + "value": "Schedule.ReadWrite.All" + }, + { + "description": " Allows the app to read and write authentication methods of all users in your organization that the signed-in user has access to. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": "Read and write all users' authentication methods.", + "id": "b7887744-6746-4312-813d-72daeaee7e2d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write authentication methods of all users you have access to in your organization. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "userConsentDisplayName": "Read and write all users' authentication methods", + "value": "UserAuthenticationMethod.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the signed-in user's authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like the signed-in user's passwords, or to sign-in or otherwise use the signed-in user's authentication methods. ", + "displayName": "Read and write user authentication methods", + "id": "48971fc1-70d7-4245-af77-0beb29b53ee2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your authentication methods, including phone numbers and Authenticator app settings.This does not allow the app to see secret information like your passwords, or to sign-in or otherwise use your authentication methods.", + "userConsentDisplayName": "Read and write your authentication methods", + "value": "UserAuthenticationMethod.ReadWrite" + }, + { + "description": "Allows the app to read authentication methods of all users in your organization that the signed-in user has access to. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": "Read all users' authentication methods", + "id": "aec28ec7-4d02-4e8c-b864-50163aea77eb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read authentication methods of all users you have access to in your organization. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "userConsentDisplayName": "Read all users' authentication methods", + "value": "UserAuthenticationMethod.Read.All" + }, + { + "description": "Allows the app to read the signed-in user's authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like the signed-in user's passwords, or to sign-in or otherwise use the signed-in user's authentication methods.", + "displayName": "Read user authentication methods.", + "id": "1f6b61c5-2f65-4135-9c9f-31c0f8d32b52", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like your passwords, or to sign-in or otherwise use your authentication methods.", + "userConsentDisplayName": "Read your authentication methods.", + "value": "UserAuthenticationMethod.Read" + }, + { + "description": "Allows the app to create tabs in any team in Microsoft Teams, on behalf of the signed-in user. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "displayName": "Create tabs in Microsoft Teams.", + "id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create tabs in any team in Microsoft Teams, on your behalf. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "userConsentDisplayName": "Create tabs in Microsoft Teams.", + "value": "TeamsTab.Create" + }, + { + "description": "Read the names and settings of tabs inside any team in Microsoft Teams, on behalf of the signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read tabs in Microsoft Teams.", + "id": "59dacb05-e88d-4c13-a684-59f1afc8cc98", + "Origin": "Delegated", + "userConsentDescription": "Read the names and settings of tabs inside any team in Microsoft Teams, on your behalf. This does not give access to the content inside the tabs.", + "userConsentDisplayName": "Read tabs in Microsoft Teams.", + "value": "TeamsTab.Read.All" + }, + { + "description": "Read and write tabs in any team in Microsoft Teams, on behalf of the signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read and write tabs in Microsoft Teams.", + "id": "b98bfd41-87c6-45cc-b104-e2de4f0dafb9", + "Origin": "Delegated", + "userConsentDescription": "Read and write tabs in any team in Microsoft Teams, on your behalf. This does not give access to the content inside the tabs.", + "userConsentDisplayName": "Read and write tabs in Microsoft Teams.", + "value": "TeamsTab.ReadWrite.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via IMAP protocol.", + "displayName": "Read and write access to mailboxes via IMAP.", + "id": "652390e4-393a-48de-9484-05f9b1212954", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail.", + "userConsentDisplayName": "Read and write access to your mail.", + "value": "IMAP.AccessAsUser.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via POP protocol.", + "displayName": "Read and write access to mailboxes via POP.", + "id": "d7b7f2d9-0f45-4ea1-9d42-e50810c06991", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail.", + "userConsentDisplayName": "Read and write access to your mail.", + "value": "POP.AccessAsUser.All" + }, + { + "description": "Allows the app to be able to send emails from the user\u2019s mailbox using the SMTP AUTH client submission protocol.", + "displayName": "Send emails from mailboxes using SMTP AUTH.", + "id": "258f6531-6087-4cc4-bb90-092c5fb3ed3f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send emails on your behalf from your mailbox.", + "userConsentDisplayName": "Access to sending emails from your mailbox.", + "value": "SMTP.Send" + }, + { + "description": "Allows the app to read all domain properties on behalf of the signed-in user.", + "displayName": "Read domains.", + "id": "2f9ee017-59c1-4f1d-9472-bd5529a7b311", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all domain properties on your behalf.", + "userConsentDisplayName": "Read domains.", + "value": "Domain.Read.All" + }, + { + "description": "Allows the app to read and write all domain properties on behalf of the signed-in user. Also allows the app to add, verify and remove domains.", + "displayName": "Read and write domains", + "id": "0b5d694c-a244-4bde-86e6-eb5cd07730fe", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all domain properties on your behalf. Also allows the app to add, verify and remove domains.", + "userConsentDisplayName": "Read and write domains", + "value": "Domain.ReadWrite.All" + }, + { + "description": "Allows the app to read and write your organization's application configuration policies on behalf of the signed-in user. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "displayName": "Read and write your organization's application configuration policies", + "id": "b27add92-efb2-4f16-84f5-8108ba77985c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's application configuration policies on your behalf. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "userConsentDisplayName": "Read and write your organization's application configuration policies", + "value": "Policy.ReadWrite.ApplicationConfiguration" + }, + { + "description": "Allows the app to read your organization's devices' configuration information on behalf of the signed-in user.", + "displayName": "Read all devices", + "id": "951183d1-1a61-466f-a6d1-1fde911bfd95", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read devices' configuration information on your behalf.", + "userConsentDisplayName": "Read all devices", + "value": "Device.Read.All" + }, + { + "description": "Allows the app to read, update and delete identities that are associated with a user's account that the signed-in user has access to. This controls the identities users can sign-in with.", + "displayName": "Manage user identities", + "id": "637d7bec-b31e-4deb-acc9-24275642a2c9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and delete identities that are associated with a user's account that you have access to. This controls the identities users can sign-in with.", + "userConsentDisplayName": "Manage user identities", + "value": "User.ManageIdentities.All" + }, + { + "description": "Allows the app to read access packages and related entitlement management resources on behalf of the signed-in user.", + "displayName": "Read all entitlement management resources", + "id": "5449aa12-1393-4ea2-a7c7-d0e06c1a56b2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read access packages and related entitlement management resources that you have access to.", + "userConsentDisplayName": "Read all entitlement management resources", + "value": "EntitlementManagement.Read.All" + }, + { + "description": "Create channels in any team, on behalf of the signed-in user.", + "displayName": "Create channels", + "id": "101147cf-4178-4455-9d58-02b5c164e759", + "Origin": "Delegated", + "userConsentDescription": "Create channels in any team, on your behalf.", + "userConsentDisplayName": "Create channels", + "value": "Channel.Create" + }, + { + "description": "Delete channels in any team, on behalf of the signed-in user.", + "displayName": "Delete channels", + "id": "cc83893a-e232-4723-b5af-bd0b01bcfe65", + "Origin": "Delegated", + "userConsentDescription": "Delete channels in any team, on your behalf.", + "userConsentDisplayName": "Delete channels", + "value": "Channel.Delete.All" + }, + { + "description": "Read all channel names, channel descriptions, and channel settings, on behalf of the signed-in user.", + "displayName": "Read the names, descriptions, and settings of channels", + "id": "233e0cf1-dd62-48bc-b65b-b38fe87fcf8e", + "Origin": "Delegated", + "userConsentDescription": "Read all channel names, channel descriptions, and channel settings, on your behalf.", + "userConsentDisplayName": "Read the names, descriptions, and settings of channels", + "value": "ChannelSettings.Read.All" + }, + { + "description": "Read and write the names, descriptions, and settings of all channels, on behalf of the signed-in user.", + "displayName": "Read and write the names, descriptions, and settings of channels", + "id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", + "Origin": "Delegated", + "userConsentDescription": "Read and write the names, descriptions, and settings of all channels, on your behalf.", + "userConsentDisplayName": "Read and write the names, descriptions, and settings of channels", + "value": "ChannelSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read all webhook subscriptions on behalf of the signed-in user.", + "displayName": "Read all webhook subscriptions ", + "id": "5f88184c-80bb-4d52-9ff2-757288b2e9b7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all webhook subscriptions on your behalf.", + "userConsentDisplayName": "Read all webhook subscriptions ", + "value": "Subscription.Read.All" + }, + { + "description": "Read the names and descriptions of teams, on behalf of the signed-in user.", + "displayName": "Read the names and descriptions of teams", + "id": "485be79e-c497-4b35-9400-0e3fa7f2a5d4", + "Origin": "Delegated", + "userConsentDescription": "Read the names and descriptions of teams, on your behalf.", + "userConsentDisplayName": "Read the names and descriptions of teams", + "value": "Team.ReadBasic.All" + }, + { + "description": "Read channel names and channel descriptions, on behalf of the signed-in user.", + "displayName": "Read the names and descriptions of channels", + "id": "9d8982ae-4365-4f57-95e9-d6032a4c0b87", + "Origin": "Delegated", + "userConsentDescription": "Read channel names and channel descriptions, on your behalf.", + "userConsentDisplayName": "Read the names and descriptions of channels", + "value": "Channel.ReadBasic.All" + }, + { + "description": "Read all teams' settings, on behalf of the signed-in user.", + "displayName": "Read teams' settings", + "id": "48638b3c-ad68-4383-8ac4-e6880ee6ca57", + "Origin": "Delegated", + "userConsentDescription": "Read all teams' settings, on your behalf.", + "userConsentDisplayName": "Read teams' settings", + "value": "TeamSettings.Read.All" + }, + { + "description": "Read and change all teams' settings, on behalf of the signed-in user.", + "displayName": "Read and change teams' settings", + "id": "39d65650-9d3e-4223-80db-a335590d027e", + "Origin": "Delegated", + "userConsentDescription": "Read and change all teams' settings, on your behalf.", + "userConsentDisplayName": "Read and change teams' settings", + "value": "TeamSettings.ReadWrite.All" + }, + { + "description": "Read the members of teams, on behalf of the signed-in user.", + "displayName": "Read the members of teams", + "id": "2497278c-d82d-46a2-b1ce-39d4cdde5570", + "Origin": "Delegated", + "userConsentDescription": "Read the members of teams, on your behalf.", + "userConsentDisplayName": "Read the members of teams", + "value": "TeamMember.Read.All" + }, + { + "description": "Add and remove members from teams, on behalf of the signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from teams", + "id": "4a06efd2-f825-4e34-813e-82a57b03d1ee", + "Origin": "Delegated", + "userConsentDescription": "Add and remove members from teams, on your behalf. Also allows changing a member's role, for example from owner to non-owner.", + "userConsentDisplayName": "Add and remove members from teams and channels", + "value": "TeamMember.ReadWrite.All" + }, + { + "description": "Allows the app to read consent requests and approvals on behalf of the signed-in user.", + "displayName": "Read consent requests", + "id": "f3bfad56-966e-4590-a536-82ecf548ac1e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read consent requests and approvals, on your behalf.", + "userConsentDisplayName": "Read consent requests", + "value": "ConsentRequest.Read.All" + }, + { + "description": "Allows the app to read app consent requests and approvals, and deny or approve those requests on behalf of the signed-in user.", + "displayName": "Read and write consent requests", + "id": "497d9dfa-3bd1-481a-baab-90895e54568c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read app consent requests for your approval, and deny or approve those request on your behalf.", + "userConsentDisplayName": "Read and write consent requests", + "value": "ConsentRequest.ReadWrite.All" + }, + { + "description": "Allows the app to read and write your organization's consent requests policy on behalf of the signed-in user.", + "displayName": "Read and write consent request policy", + "id": "4d135e65-66b8-41a8-9f8b-081452c91774", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's consent request policy on your behalf.", + "userConsentDisplayName": "Read and write consent request policy", + "value": "Policy.ReadWrite.ConsentRequest" + }, + { + "description": "Allows the app to read presence information on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read user's presence information", + "id": "76bc735e-aecd-4a1d-8b4c-2b915deabb79", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your presence information on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read your presence information", + "value": "Presence.Read" + }, + { + "description": "Allows the app to read presence information of all users in the directory on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read presence information of all users in your organization", + "id": "9c7a330d-35b3-4aa1-963d-cb2b9f927841", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read presence information of all users in the directory on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read presence information of all users in your organization", + "value": "Presence.Read.All" + }, + { + "description": "Read the members of channels, on behalf of the signed-in user.", + "displayName": "Read the members of channels", + "id": "2eadaff8-0bce-4198-a6b9-2cfc35a30075", + "Origin": "Delegated", + "userConsentDescription": "Read the members of channels, on your behalf.", + "userConsentDisplayName": "Read the members of teams and channels", + "value": "ChannelMember.Read.All" + }, + { + "description": "Add and remove members from channels, on behalf of the signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from channels", + "id": "0c3e411a-ce45-4cd1-8f30-f99a3efa7b11", + "Origin": "Delegated", + "userConsentDescription": "Add and remove members from channels, on your behalf. Also allows changing a member's role, for example from owner to non-owner.", + "userConsentDisplayName": "Add and remove members from teams and channels", + "value": "ChannelMember.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the authentication flow policies, on behalf of the signed-in user. ", + "displayName": "Read and write authentication flow policies", + "id": "edb72de9-4252-4d03-a925-451deef99db7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the authentication flow policies for your tenant, on your behalf.", + "userConsentDisplayName": "Read and write your authentication flow policies", + "value": "Policy.ReadWrite.AuthenticationFlows" + }, + { + "description": "Allows an app to read a channel's messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Read user channel messages", + "id": "767156cb-16ae-4d10-8f8b-41b657c8c8c8", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read a channel's messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read your channel messages", + "value": "ChannelMessage.Read.All" + }, + { + "description": "Allows the app to read the apps in the app catalogs.", + "displayName": "Read all app catalogs", + "id": "88e58d74-d3df-44f3-ad47-e89edf4472e4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read apps in the app catalogs.", + "userConsentDisplayName": "Read all app catalogs", + "value": "AppCatalog.Read.All" + }, + { + "description": "Allows the app to read and write the authentication method policies, on behalf of the signed-in user.\u00a0", + "displayName": "Read and write authentication method policies", + "id": "7e823077-d88e-468f-a337-e18f1f0e6c7c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the authentication method policies for your tenant, on your behalf.", + "userConsentDisplayName": "Read and write your authentication method policies ", + "value": "Policy.ReadWrite.AuthenticationMethod" + }, + { + "description": "Allows the app to read and write your organization's authorization policy on behalf of the signed-in user. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "displayName": "Read and write your organization's authorization policy", + "id": "edd3c878-b384-41fd-95ad-e7407dd775be", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's authorization policy on your behalf. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "userConsentDisplayName": "Read and write your organization's authorization policy", + "value": "Policy.ReadWrite.Authorization" + }, + { + "description": "Allows the app to read policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "displayName": "Read consent and permission grant policies", + "id": "414de6ea-2d92-462f-b120-6e2a809a6d01", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read policies related to consent and permission grants for applications, on your behalf.", + "userConsentDisplayName": "Read consent and permission grant policies", + "value": "Policy.Read.PermissionGrant" + }, + { + "description": "Allows the app to manage policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "displayName": "Manage consent and permission grant policies", + "id": "2672f8bb-fd5e-42e0-85e1-ec764dd2614e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "userConsentDisplayName": "Manage consent and permission grant policies", + "value": "Policy.ReadWrite.PermissionGrant" + }, + { + "description": "Allows the application to create (register) printers on behalf of the signed-in user.\u00a0", + "displayName": "Register printers\u202f\u00a0", + "id": "90c30bed-6fd1-4279-bf39-714069619721", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to create (register) printers on your behalf.\u00a0", + "userConsentDisplayName": "Register printers\u202f\u00a0", + "value": "Printer.Create" + }, + { + "description": "Allows the application to create (register), read, update, and delete (unregister) printers on behalf of the signed-in user.\u00a0", + "displayName": "Register, read, update, and unregister printers", + "id": "93dae4bd-43a1-4a23-9a1a-92957e1d9121", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to create (register), read, update, and delete (unregister) printers on your behalf.\u00a0\u00a0", + "userConsentDisplayName": "Register, read, update, and unregister printers", + "value": "Printer.FullControl.All" + }, + { + "description": "Allows the application to read printers on behalf of the signed-in user.\u00a0", + "displayName": "Read printers", + "id": "3a736c8a-018e-460a-b60c-863b2683e8bf", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read printers on your behalf.\u00a0", + "userConsentDisplayName": "Read printers", + "value": "Printer.Read.All" + }, + { + "description": "Allows the application to read and update printers on behalf of the signed-in user.\u00a0Does not allow creating (registering) or deleting (unregistering) printers.", + "displayName": "Read and update printers", + "id": "89f66824-725f-4b8f-928e-e1c5258dc565", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update printers on your behalf.\u00a0Does not allow creating (registering) or deleting (unregistering) printers.", + "userConsentDisplayName": "Read and update printers", + "value": "Printer.ReadWrite.All" + }, + { + "description": "Allows the application to read printer shares on behalf of the signed-in user.\u00a0", + "displayName": "Read printer shares", + "id": "ed11134d-2f3f-440d-a2e1-411efada2502", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read printer shares on your behalf.\u00a0", + "userConsentDisplayName": "Read printer shares", + "value": "PrinterShare.Read.All" + }, + { + "description": "Allows the application to read and update printer shares on behalf of the signed-in user.\u00a0", + "displayName": "Read and write printer shares", + "id": "06ceea37-85e2-40d7-bec3-91337a46038f", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update printer shares on your behalf.\u00a0", + "userConsentDisplayName": "Read and update printer shares", + "value": "PrinterShare.ReadWrite.All" + }, + { + "description": "Allows the application to read the metadata and document content of print jobs that the signed-in user created.", + "displayName": "Read user's print jobs", + "id": "248f5528-65c0-4c88-8326-876c7236df5e", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata and document content of print jobs that you created.", + "userConsentDisplayName": "Read your print jobs", + "value": "PrintJob.Read" + }, + { + "description": "Allows the application to read the metadata and document content of print jobs on behalf of the signed-in user.\u00a0", + "displayName": "Read print jobs", + "id": "afdd6933-a0d8-40f7-bd1a-b5d778e8624b", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata and document content of print jobs on your behalf.\u00a0", + "userConsentDisplayName": "Read print jobs", + "value": "PrintJob.Read.All" + }, + { + "description": "Allows the application to read the metadata of print jobs that the signed-in user created. Does not allow access to print job document content.", + "displayName": "Read basic information of user's print jobs", + "id": "6a71a747-280f-4670-9ca0-a9cbf882b274", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata of print jobs that you created. Does not allow access to print job document content.", + "userConsentDisplayName": "Read basic information of your print jobs", + "value": "PrintJob.ReadBasic" + }, + { + "description": "Allows the application to read the metadata of print jobs on behalf of the signed-in user.\u00a0Does not allow access to print job document content.", + "displayName": "Read basic information of print jobs", + "id": "04ce8d60-72ce-4867-85cf-6d82f36922f3", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata of print jobs on your behalf.\u00a0Does not allow access to print job document content.", + "userConsentDisplayName": "Read basic information of print jobs", + "value": "PrintJob.ReadBasic.All" + }, + { + "description": "Allows the application to read and update the metadata and document content of print jobs that the signed-in user created.", + "displayName": "Read and write user's print jobs", + "id": "b81dd597-8abb-4b3f-a07a-820b0316ed04", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata and document content of print jobs that you created.", + "userConsentDisplayName": "Read and update your print jobs", + "value": "PrintJob.ReadWrite" + }, + { + "description": "Allows the application to read and update the metadata and document content of print jobs on behalf of the signed-in user.\u00a0", + "displayName": "Read and write print jobs", + "id": "036b9544-e8c5-46ef-900a-0646cc42b271", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata and document content of print jobs on your behalf.\u00a0", + "userConsentDisplayName": "Read and update print jobs", + "value": "PrintJob.ReadWrite.All" + }, + { + "description": "Allows the application to read and update the metadata of print jobs that the signed-in user created. Does not allow access to print job document content.", + "displayName": "Read and write basic information of user's print jobs", + "id": "6f2d22f2-1cb6-412c-a17c-3336817eaa82", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata of print jobs that you created. Does not allow access to print job document content.", + "userConsentDisplayName": "Read and write basic information of your print jobs", + "value": "PrintJob.ReadWriteBasic" + }, + { + "description": "Allows the application to read and update the metadata of print jobs on behalf of the signed-in user.\u00a0Does not allow access to print job document content.", + "displayName": "Read and write basic information of print jobs", + "id": "3a0db2f6-0d2a-4c19-971b-49109b19ad3d", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata of print jobs on your behalf.\u00a0Does not allow access to print job document content.", + "userConsentDisplayName": "Read and write basic information of print jobs", + "value": "PrintJob.ReadWriteBasic.All" + }, + { + "description": "Allows the app to read and write your organization's device configuration policies on behalf of the signed-in user. For example, device registration policy can limit initial provisioning controls using quota restrictions, additional authentication and authorization checks.", + "displayName": "Read and write your organization's device configuration policies", + "id": "40b534c3-9552-4550-901b-23879c90bcf9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's device configuration policies on your behalf. For example, device registration policy can limit initial provisioning controls using quota restrictions, additional authentication and authorization checks.", + "userConsentDisplayName": "Read and write your organization's device configuration policies", + "value": "Policy.ReadWrite.DeviceConfiguration" + }, + { + "description": "Allows the app to submit application packages to the catalog and cancel submissions that are pending review on behalf of the signed-in user.", + "displayName": "Submit application packages to the catalog and cancel pending submissions", + "id": "3db89e36-7fa6-4012-b281-85f3d9d9fd2e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to submit application packages to the catalog and cancel submissions that are pending review on your behalf.", + "userConsentDisplayName": "Submit application packages to your organization's catalog and cancel pending submissions", + "value": "AppCatalog.Submit" + }, + { + "description": "Allows the app to read the Teams apps that are installed in chats the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps in chats", + "id": "bf3fbf03-f35f-4e93-963e-47e4d874c37a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed in chats that you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read installed Teams apps in chats", + "value": "TeamsAppInstallation.ReadForChat" + }, + { + "description": "Allows the app to read the Teams apps that are installed in teams the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps in teams", + "id": "5248dcb1-f83b-4ec3-9f4d-a4428a961a72", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed in teams that you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read installed Teams apps in teams", + "value": "TeamsAppInstallation.ReadForTeam" + }, + { + "description": "Allows the app to read the Teams apps that are installed for the signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read user's installed Teams apps", + "id": "c395395c-ff9a-4dba-bc1f-8372ba9dca84", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed for you. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read your installed Teams apps", + "value": "TeamsAppInstallation.ReadForUser" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in teams the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Manage installed Teams apps in teams", + "id": "2e25a044-2580-450d-8859-42eeb6e996c0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps in teams you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage installed Teams apps in teams", + "value": "TeamsAppInstallation.ReadWriteForTeam" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage itself in chats", + "id": "0ce33576-30e8-43b7-99e5-62f8569a4002", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage itself in chats", + "value": "TeamsAppInstallation.ReadWriteSelfForChat" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for the signed-in user.", + "displayName": "Allow the Teams app to manage itself for a user", + "id": "207e0cb1-3ce7-4922-b991-5a760c346ebc", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself for you.", + "userConsentDisplayName": "Allow the Teams app to manage itself for you", + "value": "TeamsAppInstallation.ReadWriteSelfForUser" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps installed for the signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage user's installed Teams apps", + "id": "093f8818-d05f-49b8-95bc-9d2a73e9a43c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps installed for you. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage your installed Teams apps", + "value": "TeamsAppInstallation.ReadWriteForUser" + }, + { + "description": "Allows the app to create teams on behalf of the signed-in user.", + "displayName": "Create teams", + "id": "7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create teams on your behalf.\u00a0", + "userConsentDisplayName": "Create teams", + "value": "Team.Create" + }, + { + "description": "Add and remove members from all teams, on behalf of the signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "displayName": "Add and remove members with non-owner role for all teams", + "id": "2104a4db-3a2f-4ea0-9dba-143d457dc666", + "Origin": "Delegated", + "userConsentDescription": "Add and remove members from all teams, on your behalf. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "userConsentDisplayName": "Add and remove members with non-owner role for all teams", + "value": "TeamMember.ReadWriteNonOwnerRole.All" + }, + { + "description": "Allows the app to read the term store data that the signed-in user has access to. This includes all sets, groups and terms in the term store.", + "displayName": "Read term store data", + "id": "297f747b-0005-475b-8fef-c890f5152b38", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the term store data that you have access to. This includes all sets, groups and terms in the term store.", + "userConsentDisplayName": "Read term store data", + "value": "TermStore.Read.All" + }, + { + "description": "Allows the app to read or modify data that the signed-in user has access to.\u00a0This includes all sets, groups and terms in the term store.", + "displayName": "Read and write term store data", + "id": "6c37c71d-f50f-4bff-8fd3-8a41da390140", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or modify data that you have access to. This includes all sets, groups and terms in the term store.", + "userConsentDisplayName": "Read and write term store data", + "value": "TermStore.ReadWrite.All" + }, + { + "description": "Allows the app to read your tenant's service announcement messages on behalf of the signed-in user. Messages may include information about new or changed features.", + "displayName": "Read service announcement messages", + "id": "eda39fa6-f8cf-4c3c-a909-432c683e4c9b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your tenant's service announcement messages on your behalf. Messages may include information about new or changed features.", + "userConsentDisplayName": "Read service messages", + "value": "ServiceMessage.Read.All" + }, + { + "description": "Allows the app to read your tenant's service health information on behalf of the signed-in user. Health information may include service issues or service health overviews.", + "displayName": "Read service health", + "id": "55896846-df78-47a7-aa94-8d3d4442ca7f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your tenant's service health information on your behalf.Health information may include service issues or service health overviews.", + "userConsentDisplayName": "Read service health", + "value": "ServiceHealth.Read.All" + }, + { + "description": "Allows the app to read all the short notes a sign-in user has access to.", + "displayName": "Read short notes of the signed-in user", + "id": "50f66e47-eb56-45b7-aaa2-75057d9afe08", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your short notes.", + "userConsentDisplayName": "Read your short notes", + "value": "ShortNotes.Read" + }, + { + "description": "Allows the app to read, create, edit, and delete short notes of a signed-in user.", + "displayName": "Read, create, edit, and delete short notes of the signed-in user", + "id": "328438b7-4c01-4c07-a840-e625a749bb89", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, edit, and delete your short notes.", + "userConsentDisplayName": "Read, create, edit, and delete your short notes", + "value": "ShortNotes.ReadWrite" + }, + { + "description": "Allows the app to read your organization's conditional access policies on behalf of the signed-in user.", + "displayName": "Read your organization's conditional access policies", + "id": "633e0fce-8c58-4cfb-9495-12bbd5a24f7c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's conditional access policies on your behalf.", + "userConsentDisplayName": "Read your organization's conditional access policies", + "value": "Policy.Read.ConditionalAccess" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for all RBAC providers, on behalf of the signed-in user. This includes reading role definitions and role assignments.", + "displayName": "Read role management data for all RBAC providers", + "id": "48fec646-b2ba-4019-8681-8eb31435aded", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the role-based access control (RBAC) settings for all RBAC providers, on your behalf. This includes reading role definitions and role assignments.", + "userConsentDisplayName": "Read role management data for all RBAC providers", + "value": "RoleManagement.Read.All" + }, + { + "description": "Allows an app to send one-to-one and group chat messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Send user chat messages", + "id": "116b7235-7cc6-461e-b163-8e55691d839e", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to send one-to-one and group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Send chat messages", + "value": "ChatMessage.Send" + }, + { + "description": "Allows an app to read the members and descriptions of one-to-one and group chat threads, on behalf of the signed-in user.", + "displayName": "Read names and members of user chat threads", + "id": "9547fcb5-d03f-419d-9948-5928bbf71b0f", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read the members and descriptions of one-to-one and group chat threads, on your behalf.", + "userConsentDisplayName": "Read names and members of your chat threads", + "value": "Chat.ReadBasic" + }, + { + "description": "Allows the app to read and write the properties of Cloud PCs on behalf of the signed-in user.", + "displayName": "Read and write Cloud PCs", + "id": "9d77138f-f0e2-47ba-ab33-cd246c8b79d1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties of Cloud PCs, on your behalf.", + "userConsentDisplayName": "Read and write Cloud PCs", + "value": "CloudPC.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties of Cloud PCs on behalf of the signed-in user.", + "displayName": "Read Cloud PCs", + "id": "5252ec4e-fd40-4d92-8c68-89dd1d3c6110", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties of Cloud PCs, on your behalf.", + "userConsentDisplayName": "Read Cloud PCs", + "value": "CloudPC.Read.All" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in chats the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Manage installed Teams apps in chats", + "id": "aa85bf13-d771-4d5d-a9e6-bca04ce44edf", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps in chats you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage installed Teams apps in chats", + "value": "TeamsAppInstallation.ReadWriteForChat" + }, + { + "description": "Allows the app to create, read, update, and delete the signed-in user's tasks and task lists, including any shared with the user.", + "displayName": "Create, read, update, and delete user\u2019s tasks and task lists", + "id": "2219042f-cab5-40cc-b0d2-16b1540b4c5f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete your tasks and task lists, including any shared with you.", + "userConsentDisplayName": "Create, read, update, and delete your tasks and task lists", + "value": "Tasks.ReadWrite" + }, + { + "description": "Allows the app to read the signed-in user\u2019s tasks and task lists, including any shared with the user. Doesn't include permission to create, delete, or update anything.", + "displayName": "Read user's tasks and task lists", + "id": "f45671fb-e0fe-4b4b-be20-3d3ce43f1bcb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your tasks and task lists, including any shared with you. Doesn't include permission to create, delete, or update anything.", + "userConsentDisplayName": "Read your tasks and task lists", + "value": "Tasks.Read" + }, + { + "description": "Allows an app to read one-to-one and group chat messages, on behalf of the signed-in user.", + "displayName": "Read user chat messages", + "id": "cdcdac3a-fd45-410d-83ef-554db620e5c7", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read one-to-one or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read user chat messages", + "value": "ChatMessage.Read" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage all tabs in chats", + "id": "ee928332-e9c2-4747-b4a0-f8c164b68de6", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage all tabs in chats", + "value": "TeamsTab.ReadWriteForChat" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs to teams the signed-in user can access.", + "displayName": "Allow the Teams app to manage all tabs in teams", + "id": "c975dd04-a06e-4fbb-9704-62daad77bb49", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs to teams you can access.", + "userConsentDisplayName": "Allow the app to manage all tabs in teams", + "value": "TeamsTab.ReadWriteForTeam" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for the signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for a user", + "id": "c37c9b61-7762-4bff-a156-afc0005847a0", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for you.", + "userConsentDisplayName": "Allow the Teams app to manage all tabs for you", + "value": "TeamsTab.ReadWriteForUser" + }, + { + "description": "Allows the app to read the API connectors used in user authentication flows, on behalf of the signed-in user.", + "displayName": "Read API connectors for authentication flows", + "id": "1b6ff35f-31df-4332-8571-d31ea5a4893f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the API connectors used in user authentication flows, on your behalf.", + "userConsentDisplayName": "Read API connectors for authentication flows", + "value": "APIConnectors.Read.All" + }, + { + "description": "Allows the app to read, create and manage the API connectors used in user authentication flows, on behalf of the signed-in user.", + "displayName": "Read and write API connectors for authentication flows", + "id": "c67b52c5-7c69-48b6-9d48-7b3af3ded914", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, create and manage the API connectors used in user authentication flows, on your behalf.", + "userConsentDisplayName": "Read and write API connectors for authentication flows", + "value": "APIConnectors.ReadWrite.All" + }, + { + "description": "Read the members of chats, on behalf of the signed-in user.", + "displayName": "Read the members of chats", + "id": "c5a9e2b1-faf6-41d4-8875-d381aa549b24", + "Origin": "Delegated", + "userConsentDescription": "Read the members of chats, on your behalf.", + "userConsentDisplayName": "Read the members of chats", + "value": "ChatMember.Read" + }, + { + "description": "Add and remove members from chats, on behalf of the signed-in user.", + "displayName": "Add and remove members from chats", + "id": "dea13482-7ea6-488f-8b98-eb5bbecf033d", + "Origin": "Delegated", + "userConsentDescription": "Add and remove members from chats, on your behalf.", + "userConsentDisplayName": "Add and remove members from chats", + "value": "ChatMember.ReadWrite" + }, + { + "description": "Allows the app to create chats on behalf of the signed-in user.", + "displayName": "Create chats", + "id": "38826093-1258-4dea-98f0-00003be2b8d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create chats on your behalf.\u00a0", + "userConsentDisplayName": "Create chats", + "value": "Chat.Create" + }, + { + "description": "Allows the application to read and write tenant-wide print settings on behalf of the signed-in user.", + "displayName": "Read and write tenant-wide print settings", + "id": "9ccc526a-c51c-4e5c-a1fd-74726ef50b8f", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and write tenant-wide print settings on your behalf.", + "userConsentDisplayName": "Read and write tenant-wide print settings", + "value": "PrintSettings.ReadWrite.All" + }, + { + "description": "Allows the application to read tenant-wide print settings on behalf of the signed-in user.", + "displayName": "Read tenant-wide print settings", + "id": "490f32fd-d90f-4dd7-a601-ff6cdc1a3f6c", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read tenant-wide print settings on your behalf.", + "userConsentDisplayName": "Read tenant-wide print settings", + "value": "PrintSettings.Read.All" + }, + { + "description": "Allows the application to read and write print connectors on behalf of the signed-in user. ", + "displayName": "Read and write print connectors", + "id": "79ef9967-7d59-4213-9c64-4b10687637d8", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and write print connectors on your behalf.", + "userConsentDisplayName": "Read and write print connectors", + "value": "PrintConnector.ReadWrite.All" + }, + { + "description": "Allows the application to read print connectors on behalf of the signed-in user.", + "displayName": "Read print connectors", + "id": "d69c2d6d-4f72-4f99-a6b9-663e32f8cf68", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read print connectors on your behalf.", + "userConsentDisplayName": "Read print connectors", + "value": "PrintConnector.Read.All" + }, + { + "description": "Allows the application to read basic information about printer shares on behalf of the signed-in user. Does not allow reading access control information.", + "displayName": "Read basic information about printer shares", + "id": "5fa075e9-b951-4165-947b-c63396ff0a37", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read basic information about printer shares on your behalf.", + "userConsentDisplayName": "Read basic information about printer shares", + "value": "PrinterShare.ReadBasic.All" + }, + { + "description": "Allows the application to create print jobs on behalf of the signed-in user and upload document content to print jobs that the signed-in user created.", + "displayName": "Create print jobs", + "id": "21f0d9c0-9f13-48b3-94e0-b6b231c7d320", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to create print jobs on your behalf and upload document content to print jobs that you created.", + "userConsentDisplayName": "Create your print jobs", + "value": "PrintJob.Create" + }, + { + "description": "Allows the app to read Azure AD recommendations, on behalf of the signed-in user.", + "displayName": "Read Azure AD recommendations", + "id": "34d3bd24-f6a6-468c-b67c-0c365c1d6410", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read Azure AD recommendations, on your behalf.", + "userConsentDisplayName": "Read Azure AD recommendations", + "value": "DirectoryRecommendations.Read.All" + }, + { + "description": "Allows the application to list and query user profile information associated with the current tenant on behalf of the signed-in user.\u00a0 It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read shared cross-tenant user profile and export or delete data", + "id": "eed0129d-dc60-4f30-8641-daf337a39ffd", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to list and query shared user profile information associated with the current tenant on your behalf.\u00a0 It also permits the application to export and remove your external user data (e.g. customer content or system-generated logs), associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read shared cross-tenant user profile and export or delete data", + "value": "CrossTenantUserProfileSharing.ReadWrite" + }, + { + "description": "Allows the app to manage restricted resources based on the other permissions granted to the app, on behalf of the signed-in user.", + "displayName": "Manage restricted resources in the directory", + "id": "cba5390f-ed6a-4b7f-b657-0efc2210ed20", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage restricted resources based on the other permissions granted to the app, on your behalf.", + "userConsentDisplayName": "Manage restricted resources in the directory", + "value": "Directory.Write.Restricted" + }, + { + "description": "Allows the app to read your organization's threat submission policies on behalf of the signed-in user. Also allows the app to create new threat submission policies on behalf of the signed-in user.", + "displayName": "Read and write all threat submission policies", + "id": "059e5840-5353-4c68-b1da-666a033fc5e8", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submission policies on your behalf. Also allows the app to create new threat submission policies on your behalf.", + "userConsentDisplayName": "Read and write all threat submission policies", + "value": "ThreatSubmissionPolicy.ReadWrite.All" + }, + { + "description": "Allows an app to read the browser site lists configured for your organization, on behalf of the signed-in user.", + "displayName": "Read browser site lists for your organization", + "id": "fb9be2b7-a7fc-4182-aec1-eda4597c43d5", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read the browser site lists configured for your organization, on your behalf.", + "userConsentDisplayName": "Read browser site lists for your organization", + "value": "BrowserSiteLists.Read.All" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant on behalf of the signed-in user.\u00a0 It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export or delete their data", + "id": "64dfa325-cbf8-48e3-938d-51224a0cac01", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to list and query any shared user profile information associated with the current tenant on your behalf.\u00a0 It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read any shared cross-tenant user profiles and export or delete data", + "value": "CrossTenantUserProfileSharing.ReadWrite.All" + }, + { + "description": "Allows the app to read the threat submissions and threat submission policies owned by the signed-in user.", + "displayName": "Read threat submissions", + "id": "fd5353c6-26dd-449f-a565-c4e16b9fce78", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the threat submissions and threat submission policies that you own on your behalf.", + "userConsentDisplayName": "Read threat submissions", + "value": "ThreatSubmission.Read" + }, + { + "description": "Allows the app to read the threat submissions and threat submission policies owned by the signed-in user. Also allows the app to create new threat submissions on behalf of the signed-in user.", + "displayName": "Read and write threat submissions", + "id": "68a3156e-46c9-443c-b85c-921397f082b5", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the threat submissions and threat submission policies that you own. Also allows the app to create new threat submissions on your behalf.", + "userConsentDisplayName": "Read and write threat submissions", + "value": "ThreatSubmission.ReadWrite" + }, + { + "description": "Allows the app to read all recordings of online meetings, on behalf of the signed-in user.", + "displayName": "Read all recordings of online meetings.", + "id": "190c2bb6-1fdd-4fec-9aa2-7d571b5e1fe3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all recordings of online meetings, on your behalf.\u00a0", + "userConsentDisplayName": "Read all recordings of online meetings.\u00a0", + "value": "OnlineMeetingRecording.Read.All" + }, + { + "description": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem on behalf of the signed-in user.", + "displayName": "Read cross-tenant basic information", + "id": "81594d25-e88e-49cf-ac8c-fecbff49f994", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem on your behalf.", + "userConsentDisplayName": "Read cross-tenant basic information", + "value": "CrossTenantInformation.ReadBasic.All" + }, + { + "description": "Allows the app to read your organization's authentication event listeners on behalf of the signed-in user.", + "displayName": "Read your organization's authentication event listeners", + "id": "f7dd3bed-5eec-48da-bc73-1c0ef50bc9a1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's authentication event listeners on your behalf.", + "userConsentDisplayName": "Read your organization's authentication event listeners", + "value": "EventListener.Read.All" + }, + { + "description": "Allows the app to read the Teams app settings on behalf of the signed-in user.", + "displayName": "Read Teams app settings", + "id": "44e060c4-bbdc-4256-a0b9-dcc0396db368", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams app settings on your behalf.", + "userConsentDisplayName": "Read Teams app settings", + "value": "TeamworkAppSettings.Read.All" + }, + { + "description": "Allows\u00a0the\u00a0app\u00a0to\u00a0manage learning\u00a0content\u00a0in\u00a0the\u00a0organization's\u00a0directory, on behalf of the signed-in user.", + "displayName": "Manage\u00a0learning\u00a0content", + "id": "53cec1c4-a65f-4981-9dc1-ad75dbf1c077", + "Origin": "Delegated", + "userConsentDescription": "Allows\u00a0the\u00a0app\u00a0to\u00a0manage learning\u00a0content\u00a0in\u00a0the\u00a0organization's\u00a0directory, on your behalf.", + "userConsentDisplayName": "Manage learning content", + "value": "LearningContent.ReadWrite.All" + }, + { + "description": "Allows the app to create, update, read, and delete data for the learning provider in the organization's directory, on behalf of the signed-in user.", + "displayName": "Manage\u00a0learning\u00a0provider", + "id": "40c2eb57-abaf-49f5-9331-e90fd01f7130", + "Origin": "Delegated", + "userConsentDescription": "Allows\u00a0the\u00a0app\u00a0to\u00a0create, update, read, and delete\u00a0data\u00a0for\u00a0the learning\u00a0provider\u00a0in\u00a0the organization's\u00a0directory, on your behalf.", + "userConsentDisplayName": "Manage learning provider", + "value": "LearningProvider.ReadWrite" + }, + { + "description": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "displayName": "Read all users' lifecycle information", + "id": "ed8d2a04-0374-41f1-aefe-da8ac87ccc87", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "userConsentDisplayName": "Read all users' lifecycle information", + "value": "User-LifeCycleInfo.Read.All" + }, + { + "description": "Allows an app to read and write the browser site lists configured for your organization, on behalf of the signed-in user.", + "displayName": "Read and write browser site lists for your organization", + "id": "83b34c85-95bf-497b-a04e-b58eca9d49d0", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read and write the browser site lists configured for your organization, on your behalf.", + "userConsentDisplayName": "Read and write browser site lists for your organization", + "value": "BrowserSiteLists.ReadWrite.All" + }, + { + "description": "Allows the application to list and query user profile information associated with the current tenant on behalf of the signed-in user.\u00a0 It also permits the application to export external user data (e.g. customer content or system-generated logs), associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read shared cross-tenant user profile and export data", + "id": "cb1ba48f-d22b-4325-a07f-74135a62ee41", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to list and query shared user profile information associated with the current tenant on your behalf.\u00a0 It also permits the application to export your external user data (e.g. customer content or system-generated logs), associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read shared cross-tenant user profile and export data", + "value": "CrossTenantUserProfileSharing.Read" + }, + { + "description": "Allows the app to read admin report settings, such as whether to display concealed information in reports, on behalf of the signed-in user", + "displayName": "Read admin report settings", + "id": "84fac5f4-33a9-4100-aa38-a20c6d29e5e7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read admin report settings, such as whether to display concealed information in reports, on your behalf.", + "userConsentDisplayName": "Read admin report settings", + "value": "ReportSettings.Read.All" + }, + { + "description": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "displayName": "Read and write all users' lifecycle information", + "id": "7ee7473e-bd4b-4c9f-987c-bd58481f5fa2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "userConsentDisplayName": "Read and write all users' lifecycle information", + "value": "User-LifeCycleInfo.ReadWrite.All" + }, + { + "description": "Allows the app to read and update Azure AD recommendations, on behalf of the signed-in user. ", + "displayName": "Read and update Azure AD recommendations", + "id": "f37235e8-90a0-4189-93e2-e55b53867ccd", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update Azure AD recommendations, on your behalf.", + "userConsentDisplayName": "Read and update Azure AD recommendations", + "value": "DirectoryRecommendations.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's threat submissions and threat submission policies on behalf of the signed-in user.", + "displayName": "Read all threat submissions", + "id": "7083913a-4966-44b6-9886-c5822a5fd910", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submissions and threat submission policies on your behalf.", + "userConsentDisplayName": "Read all threat submissions", + "value": "ThreatSubmission.Read.All" + }, + { + "description": "Allows the app to read learning content in the organization's directory, on behalf of the signed-in user.", + "displayName": "Read learning content", + "id": "ea4c1fd9-6a9f-4432-8e5d-86e06cc0da77", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read learning content in the organization's directory, on your behalf.", + "userConsentDisplayName": "Read learning content", + "value": "LearningContent.Read.All" + }, + { + "description": "Allows the app to read data for the learning provider in the organization's directory, on behalf of the signed-in user.", + "displayName": "Read learning provider", + "id": "dd8ce36f-9245-45ea-a99e-8ac398c22861", + "Origin": "Delegated", + "userConsentDescription": "Allows\u00a0the\u00a0app\u00a0to\u00a0read\u00a0data\u00a0for\u00a0the learning\u00a0provider\u00a0in\u00a0the organization's\u00a0directory, on your behalf.", + "userConsentDisplayName": "Read learning provider", + "value": "LearningProvider.Read" + }, + { + "description": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources on behalf of the signed-in user.", + "displayName": "Read and write all lifecycle workflows resources", + "id": "84b9d731-7db8-4454-8c90-fd9e95350179", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources on your behalf.", + "userConsentDisplayName": "Read and write all lifecycle workflows resources", + "value": "LifecycleWorkflows.ReadWrite.All" + }, + { + "description": "Allows an app to read all bookmarks that the signed-in user can access.", + "displayName": "Read all bookmarks that the user can access", + "id": "98b17b35-f3b1-4849-a85f-9f13733002f0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all bookmarks you can access.", + "userConsentDisplayName": "Read all bookmarks that you have access to", + "value": "Bookmark.Read.All" + }, + { + "description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive on behalf of the signed-in user.", + "displayName": "Read and change SharePoint and OneDrive tenant settings", + "id": "aa07f155-3612-49b8-a147-6c590df35536", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive on your behalf.", + "userConsentDisplayName": "Read and change SharePoint and OneDrive tenant settings", + "value": "SharePointTenantSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read or write your organization's authentication event listeners on behalf of the signed-in user.", + "displayName": "Read and write your organization's authentication event listeners", + "id": "d11625a6-fe21-4fc6-8d3d-063eba5525ad", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's authentication event listeners on your behalf.", + "userConsentDisplayName": "Read and write your organization's authentication event listeners", + "value": "EventListener.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the Teams app settings on behalf of the signed-in user.", + "displayName": "Read and write Teams app settings", + "id": "87c556f0-2bd9-4eed-bd74-5dd8af6eaf7e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the Teams app settings on your behalf.", + "userConsentDisplayName": "Read and write Teams app settings", + "value": "TeamworkAppSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read all authentication context information in your organization on behalf of the signed-in user.", + "displayName": "Read all authentication context information", + "id": "57b030f1-8c35-469c-b0d9-e4a077debe70", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all authentication context information in your organization on your behalf.", + "userConsentDisplayName": "Read all authentication context information", + "value": "AuthenticationContext.Read.All" + }, + { + "description": "Allows the app to read and update all authentication context information in your organization on behalf of the signed-in user.", + "displayName": "Read and write all authentication context information", + "id": "ba6d575a-1344-4516-b777-1404f5593057", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update all authentication context information in your organization on your behalf.", + "userConsentDisplayName": "Read and write all authentication context information", + "value": "AuthenticationContext.ReadWrite.All" + }, + { + "description": "Allows the app to read and update admin report settings, such as whether to display concealed information in reports, on behalf of the signed-in user.", + "displayName": "Read and write admin report settings", + "id": "b955410e-7715-4a88-a940-dfd551018df3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update admin report settings, such as whether to display concealed information in reports, on your behalf.", + "userConsentDisplayName": "Read and write admin report settings", + "value": "ReportSettings.ReadWrite.All" + }, + { + "description": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources on behalf of the signed-in user.", + "displayName": "Read all lifecycle workflows resources", + "id": "9bcb9916-765a-42af-bf77-02282e26b01a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources on your behalf.", + "userConsentDisplayName": "Read all lifecycle workflows resources", + "value": "LifecycleWorkflows.Read.All" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant on behalf of the signed-in user.\u00a0 It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export their data", + "id": "759dcd16-3c90-463c-937e-abf89f991c18", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to list and query any shared user profile information associated with the current tenant on your behalf.\u00a0 It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read any shared cross-tenant user profiles and export data", + "value": "CrossTenantUserProfileSharing.Read.All" + }, + { + "description": "Allows the application to read the tenant-level settings in SharePoint and OneDrive on behalf of the signed-in user.", + "displayName": "Read SharePoint and OneDrive tenant settings", + "id": "2ef70e10-5bfd-4ede-a5f6-67720500b258", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the tenant-level settings in SharePoint and OneDrive on your behalf.", + "userConsentDisplayName": "Read SharePoint and OneDrive tenant settings", + "value": "SharePointTenantSettings.Read.All" + }, + { + "description": "Allows the app to read or write your organization's custom authentication extensions on behalf of the signed-in user.", + "displayName": "Read and write your organization's custom authentication extensions", + "id": "8dfcf82f-15d0-43b3-bc78-a958a13a5792", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's custom authentication extensions on your behalf.", + "userConsentDisplayName": "Read and write your organization's custom authentication extensions", + "value": "CustomAuthenticationExtension.ReadWrite.All" + }, + { + "description": "Allows an app to manage license assignments for users and groups, on behalf of the signed-in user.", + "displayName": "Manage all license assignments", + "id": "f55016cc-149c-447e-8f21-7cf3ec1d6350", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage all license assignments, on your behalf.", + "userConsentDisplayName": "Manage all license assignments", + "value": "LicenseAssignment.ReadWrite.All" + }, + { + "description": "Allows an app to read all acronyms that the signed-in user can access.", + "displayName": "Read all acronyms that the user can access", + "id": "9084c10f-a2d6-4713-8732-348def50fe02", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all acronyms you can access.", + "userConsentDisplayName": "Read all acronyms that you have access to", + "value": "Acronym.Read.All" + }, + { + "description": "Allows the app to read your organization's custom authentication extensions on behalf of the signed-in user.", + "displayName": "Read your oganization's custom authentication extensions", + "id": "b2052569-c98c-4f36-a5fb-43e5c111e6d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's custom authentication extensions on your behalf.", + "userConsentDisplayName": "Read your organization's custom authentication extensions", + "value": "CustomAuthenticationExtension.Read.All" + }, + { + "description": "Allows the app to read all transcripts of online meetings, on behalf of the signed-in user.", + "displayName": "Read all transcripts of online meetings. ", + "id": "30b87d18-ebb1-45db-97f8-82ccb1f0190c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all transcripts of online meetings, on your behalf.", + "userConsentDisplayName": "Read all transcripts of online meetings.", + "value": "OnlineMeetingTranscript.Read.All" + }, + { + "description": "Allows the app to read and write channel messages, on behalf of the signed-in user. This doesn't allow the app to edit the policyViolation of a channel message.", + "displayName": "Read and write user channel messages", + "id": "5922d31f-46c8-4404-9eaf-2117e390a8a4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write channel messages, on your behalf. This doesn't allow the app to edit the policyViolation of a channel message.", + "userConsentDisplayName": "Read and write user channel messages", + "value": "ChannelMessage.ReadWrite" + }, + { + "description": "Read Threat and Vulnerability Management vulnerability information", + "displayName": "Allows the app to read any Threat and Vulnerability Management vulnerability information", + "id": "63a677ce-818c-4409-9d12-5c6d2e2a6bfe", + "Origin": "Application (WindowsDefenderATP)", + "userConsentDescription": "Allows the app to read any Threat and Vulnerability Management vulnerability information", + "userConsentDisplayName": "Allows the app to read any Threat and Vulnerability Management vulnerability information", + "value": "Vulnerability.Read.All" + }, + { + "description": "Allows the app to read Threat and Vulnerability Management vulnerability information on behalf of the signed-in user", + "displayName": "Read Threat and Vulnerability Management vulnerability information", + "id": "41269fc5-d04d-4bfd-bce7-43a51cea049a", + "Origin": "Delegated (WindowsDefenderATP)", + "userConsentDescription": "Allows the app to read Threat and Vulnerability Management vulnerability information on behalf of the signed-in user", + "userConsentDisplayName": "Read Threat and Vulnerability Management vulnerability information", + "value": "Vulnerability.Read" + }, + { + "description": "Allows the app to manage Exchange Online", + "displayName": "Manage Exchange online", + "id": "ab4f2b77-0b06-4fc1-a9de-02113fc2ab7c", + "Origin": "Delegated (Office 365 Exchange Online)", + "userConsentDescription": "Allows the app to read Threat and Vulnerability Management vulnerability information on behalf of the signed-in user", + "userConsentDisplayName": "Read Threat and Vulnerability Management vulnerability information", + "value": "Exchange.Manage" + }, + { + "description": "Allows the app to create, read, update and delete events in all calendars in the organization user has permissions to access. This includes delegate and shared calendars", + "displayName": "Read and write user and shared calendars", + "id": "bbd1ca91-75e0-4814-ad94-9c5dbbae3415", + "Origin": "Delegated (Office 365 Exchange Online)", + "userConsentDescription": "Allows the app to read, update, create and delete events in all calendars in your organization you have permissions to access. This includes delegate and shared calendars", + "userConsentDisplayName": "Read and write to your and shared calendars", + "value": "Calendars.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings. Does not include permission to send mail.", + "displayName": "Read and write user mailbox settings", + "id": "2e83d72d-8895-4b66-9eea-abb43449ab8b", + "Origin": "Delegated (Office 365 Exchange Online)", + "userConsentDescription": "Allows the app to read, update, create, and delete your mailbox settings.", + "userConsentDisplayName": "Read and write to your mailbox settings", + "value": "MailboxSettings.ReadWrite" + }, + { + "description": "Allows the app to have full control of all site collections on behalf of the signed-in user.", + "displayName": "Manage Sharepoint Online", + "id": "56680e0d-d2a3-4ae1-80d8-3c4f2100e3d0", + "Origin": "Delegated (Office 365 SharePoint Online)", + "userConsentDescription": "Have full control of all site collections", + "userConsentDisplayName": "Allows the app to have full control of all site collections on your behalf.", + "value": "AllSites.FullControl" + }, + { + "description": "Allows to read the LAPs passwords.", + "displayName": "Manage LAPs passwords", + "id": "280b3b69-0437-44b1-bc20-3b2fca1ee3e9", + "Origin": "Delegated", + "userConsentDescription": "Allows to read the LAPs passwords.", + "userConsentDisplayName": "Manage LAPs passwords", + "value": "DeviceLocalCredential.Read.All" + }, + { + "description": "Access Microsoft Teams and Skype for Business data as the signed in user", + "displayName": "Access Microsoft Teams and Skype for Business data based on the user's role membership", + "id": "e60370c1-e451-437e-aa6e-d76df38e5f15", + "Origin": "Delegated (Skype and Teams Tenant Admin API)", + "userConsentDescription": "Access Microsoft Teams and Skype for Business data as the signed in user", + "userConsentDisplayName": "Access Microsoft Teams and Skype for Business data based on the user's role membership", + "value": "user_impersonation" + }, + { + "description": "Read and write all on-premises directory synchronization information", + "displayName": "Read and write all on-premises directory synchronization information", + "id": "c2d95988-7604-4ba1-aaed-38a5f82a51c7", + "Origin": "Delegated", + "userConsentDescription": "Access Microsoft Teams and Skype for Business data as the signed in user", + "userConsentDisplayName": "Access Microsoft Teams and Skype for Business data based on the user's role membership", + "value": "OnPremDirectorySynchronization.ReadWrite.All" + } +] diff --git a/Cache_SAMSetup/SAMManifest.json b/Cache_SAMSetup/SAMManifest.json index dc996e8dd99a..65854b0c5db1 100644 --- a/Cache_SAMSetup/SAMManifest.json +++ b/Cache_SAMSetup/SAMManifest.json @@ -1 +1,193 @@ -{"isFallbackPublicClient":true,"signInAudience":"AzureADMyOrg","displayName":"CIPP-SAM","web":{"redirectUris":["https://login.microsoftonline.com/common/oauth2/nativeclient","https://localhost","http://localhost","http://localhost:8400"]},"requiredResourceAccess":[{"resourceAppId":"fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd","resourceAccess":[{"id":"1cebfa2a-fb4d-419e-b5f9-839b4383e05a","type":"Scope"}]},{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"0f4595f7-64b1-4e13-81bc-11a249df07a9","type":"Scope"},{"id":"73e75199-7c3e-41bb-9357-167164dbb415","type":"Scope"},{"id":"7ab1d787-bae7-4d5d-8db6-37ea32df9186","type":"Scope"},{"id":"d01b97e9-cbc0-49fe-810a-750afd5527a3","type":"Scope"},{"id":"46ca0847-7e6b-426e-9775-ea810a948356","type":"Scope"},{"id":"dc38509c-b87d-4da0-bd92-6bec988bac4a","type":"Scope"},{"id":"7427e0e9-2fba-42fe-b0c0-848c9e6a8182","type":"Scope"},{"id":"ad902697-1014-4ef5-81ef-2b4301988e8c","type":"Scope"},{"id":"572fea84-0151-49b2-9301-11cb16974376","type":"Scope"},{"id":"e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20","type":"Scope"},{"id":"0883f392-0a7a-443d-8c76-16a6d39c7b63","type":"Scope"},{"id":"7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af","type":"Scope"},{"id":"0c5e8a55-87a6-4556-93ab-adc52c4d862d","type":"Scope"},{"id":"44642bfe-8385-4adc-8fc6-fe3cb2c375c3","type":"Scope"},{"id":"662ed50a-ac44-4eef-ad86-62eed9be2a29","type":"Scope"},{"id":"8696daa5-bce5-4b2e-83f9-51b6defc4e1e","type":"Scope"},{"id":"6aedf524-7e1c-45a7-bd76-ded8cab8d0fc","type":"Scope"},{"id":"bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804","type":"Scope"},{"id":"11d4cd79-5ba5-460f-803f-e22c8ab85ccd","type":"Scope"},{"id":"02e97553-ed7b-43d0-ab3c-f8bace0d040c","type":"Scope"},{"id":"89fe6a52-be36-487e-b7d8-d061c450a026","type":"Scope"},{"id":"a367ab51-6b49-43bf-a716-a1fb06d2a174","type":"Scope"},{"id":"204e0828-b5ca-4ad8-b9f3-f32a958e7cc4","type":"Scope"},{"id":"4e46008b-f24c-477d-8fff-7bb4ec7aafe0","type":"Scope"},{"id":"0e263e50-5827-48a4-b97c-d940288653c7","type":"Scope"},{"id":"e383f46e-2787-4529-855e-0e479a3ffac0","type":"Scope"},{"id":"37f7f235-527c-4136-accd-4a02d197296e","type":"Scope"},{"id":"14dad69e-099b-42c9-810b-d002981feec1","type":"Scope"},{"id":"f6a3db3e-f7e8-4ed2-a414-557c8c9830be","type":"Scope"},{"id":"0e755559-83fb-4b44-91d0-4cc721b9323e","type":"Scope"},{"id":"a84a9652-ffd3-496e-a991-22ba5529156a","type":"Scope"},{"id":"1d89d70c-dcac-4248-b214-903c457af83a","type":"Scope"},{"id":"32ea53ac-4a89-4cde-bac4-727c6fb9ac29","type":"Scope"},{"id":"2b61aa8a-6d36-4b2f-ac7b-f29867937c53","type":"Scope"},{"id":"ebf0f66e-9fb1-49e4-a278-222f76911cf4","type":"Scope"},{"id":"daef10fc-047a-48b0-b1a5-da4b5e72fabc","type":"Scope"},{"id":"2a5addc2-4d9e-4d7d-8527-5215aec410f3","type":"Scope"},{"id":"c79f8feb-a9db-4090-85f9-90d820caa0eb","type":"Scope"},{"id":"bdfbf15f-ee85-4955-8675-146e8e5296b5","type":"Scope"},{"id":"f81125ac-d3b7-4573-a3b2-7099cc39df9e","type":"Scope"},{"id":"cac97e40-6730-457d-ad8d-4852fddab7ad","type":"Scope"},{"id":"b7887744-6746-4312-813d-72daeaee7e2d","type":"Scope"},{"id":"48971fc1-70d7-4245-af77-0beb29b53ee2","type":"Scope"},{"id":"aec28ec7-4d02-4e8c-b864-50163aea77eb","type":"Scope"},{"id":"d3f0af02-b22d-4778-a433-14f7e3f2e1e2","type":"Scope"},{"id":"9127ba42-f79f-43b1-be80-f23ecd42377e","type":"Scope"},{"id":"a9ff19c2-f369-4a95-9a25-ba9d460efc8e","type":"Scope"},{"id":"59dacb05-e88d-4c13-a684-59f1afc8cc98","type":"Scope"},{"id":"b98bfd41-87c6-45cc-b104-e2de4f0dafb9","type":"Scope"},{"id":"2f9ee017-59c1-4f1d-9472-bd5529a7b311","type":"Scope"},{"id":"951183d1-1a61-466f-a6d1-1fde911bfd95","type":"Scope"},{"id":"637d7bec-b31e-4deb-acc9-24275642a2c9","type":"Scope"},{"id":"101147cf-4178-4455-9d58-02b5c164e759","type":"Scope"},{"id":"cc83893a-e232-4723-b5af-bd0b01bcfe65","type":"Scope"},{"id":"233e0cf1-dd62-48bc-b65b-b38fe87fcf8e","type":"Scope"},{"id":"d649fb7c-72b4-4eec-b2b4-b15acf79e378","type":"Scope"},{"id":"485be79e-c497-4b35-9400-0e3fa7f2a5d4","type":"Scope"},{"id":"9d8982ae-4365-4f57-95e9-d6032a4c0b87","type":"Scope"},{"id":"48638b3c-ad68-4383-8ac4-e6880ee6ca57","type":"Scope"},{"id":"39d65650-9d3e-4223-80db-a335590d027e","type":"Scope"},{"id":"4a06efd2-f825-4e34-813e-82a57b03d1ee","type":"Scope"},{"id":"f3bfad56-966e-4590-a536-82ecf548ac1e","type":"Scope"},{"id":"4d135e65-66b8-41a8-9f8b-081452c91774","type":"Scope"},{"id":"2eadaff8-0bce-4198-a6b9-2cfc35a30075","type":"Scope"},{"id":"0c3e411a-ce45-4cd1-8f30-f99a3efa7b11","type":"Scope"},{"id":"edb72de9-4252-4d03-a925-451deef99db7","type":"Scope"},{"id":"767156cb-16ae-4d10-8f8b-41b657c8c8c8","type":"Scope"},{"id":"7e823077-d88e-468f-a337-e18f1f0e6c7c","type":"Scope"},{"id":"edd3c878-b384-41fd-95ad-e7407dd775be","type":"Scope"},{"id":"40b534c3-9552-4550-901b-23879c90bcf9","type":"Scope"},{"id":"bf3fbf03-f35f-4e93-963e-47e4d874c37a","type":"Scope"},{"id":"5248dcb1-f83b-4ec3-9f4d-a4428a961a72","type":"Scope"},{"id":"c395395c-ff9a-4dba-bc1f-8372ba9dca84","type":"Scope"},{"id":"2e25a044-2580-450d-8859-42eeb6e996c0","type":"Scope"},{"id":"0ce33576-30e8-43b7-99e5-62f8569a4002","type":"Scope"},{"id":"207e0cb1-3ce7-4922-b991-5a760c346ebc","type":"Scope"},{"id":"093f8818-d05f-49b8-95bc-9d2a73e9a43c","type":"Scope"},{"id":"7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0","type":"Scope"},{"id":"2104a4db-3a2f-4ea0-9dba-143d457dc666","type":"Scope"},{"id":"eda39fa6-f8cf-4c3c-a909-432c683e4c9b","type":"Scope"},{"id":"55896846-df78-47a7-aa94-8d3d4442ca7f","type":"Scope"},{"id":"aa85bf13-d771-4d5d-a9e6-bca04ce44edf","type":"Scope"},{"id":"ee928332-e9c2-4747-b4a0-f8c164b68de6","type":"Scope"},{"id":"c975dd04-a06e-4fbb-9704-62daad77bb49","type":"Scope"},{"id":"c37c9b61-7762-4bff-a156-afc0005847a0","type":"Scope"},{"id":"999f8c63-0a38-4f1b-91fd-ed1947bdd1a9","type":"Role"},{"id":"292d869f-3427-49a8-9dab-8c70152b74e9","type":"Role"},{"id":"2f51be20-0bb4-4fed-bf7b-db946066c75e","type":"Role"},{"id":"58ca0d9a-1575-47e1-a3cb-007ef2e4583b","type":"Role"},{"id":"06a5fe6d-c49d-46a7-b082-56b1b14103c7","type":"Role"},{"id":"246dd0d5-5bd0-4def-940b-0421030a5b68","type":"Role"},{"id":"bf394140-e372-4bf9-a898-299cfc7564e5","type":"Role"},{"id":"741f803b-c850-494e-b5df-cde7c675a1ca","type":"Role"},{"id":"230c1aed-a721-4c5d-9cb4-a90514e508ef","type":"Role"},{"id":"b633e1c5-b582-4048-a93e-9f11b44c7e96","type":"Role"},{"id":"5b567255-7703-4780-807c-7be8301ae99b","type":"Role"},{"id":"62a82d76-70ea-41e2-9197-370581804d09","type":"Role"},{"id":"7ab1d382-f21e-4acd-a863-ba3e13f7da61","type":"Role"},{"id":"1138cb37-bd11-4084-a2b7-9f71582aeddb","type":"Role"},{"id":"78145de6-330d-4800-a6ce-494ff2d33d07","type":"Role"},{"id":"9241abd9-d0e6-425a-bd4f-47ba86e767a4","type":"Role"},{"id":"5b07b0dd-2377-4e44-a38d-703f09a0dc3c","type":"Role"},{"id":"243333ab-4d21-40cb-a475-36241daa0842","type":"Role"},{"id":"e330c4f0-4170-414e-a55a-2f022ec2b57b","type":"Role"},{"id":"5ac13192-7ace-4fcf-b828-1a26f28068ee","type":"Role"},{"id":"2f6817f8-7b12-4f0f-bc18-eeaf60705a9e","type":"Role"},{"id":"dbaae8cf-10b5-4b86-a4a1-f871c94c6695","type":"Role"},{"id":"bf7b1a76-6e77-406b-b258-bf5c7720e98f","type":"Role"},{"id":"01c0a623-fc9b-48e9-b794-0756f8e8f067","type":"Role"},{"id":"50483e42-d915-4231-9639-7fdb7fd190e5","type":"Role"},{"id":"dbb9058a-0e50-45d7-ae91-66909b5d4664","type":"Role"},{"id":"a82116e5-55eb-4c41-a434-62fe8a61c773","type":"Role"},{"id":"f3a65bd4-b703-46df-8f7e-0174fea562aa","type":"Role"},{"id":"59a6b24b-4225-4393-8165-ebaec5f55d7a","type":"Role"},{"id":"0121dc95-1b9f-4aed-8bac-58c5ac466691","type":"Role"},{"id":"3b55498e-47ec-484f-8136-9013221c06a9","type":"Role"},{"id":"35930dcf-aceb-4bd1-b99a-8ffed403c974","type":"Role"},{"id":"25f85f3c-f66c-4205-8cd5-de92dd7f0cec","type":"Role"},{"id":"29c18626-4985-4dcd-85c0-193eef327366","type":"Role"},{"id":"4437522e-9a86-4a41-a7da-e380edd4a97d","type":"Role"}]},{"resourceAppId":"00000002-0000-0000-c000-000000000000","resourceAccess":[{"id":"5778995a-e1bf-45b8-affa-663a9f3f4d04","type":"Role"},{"id":"a42657d6-7f20-40e3-b6f0-cee03008a62a","type":"Scope"},{"id":"311a71cc-e848-46a1-bdf8-97ff7156d8e6","type":"Scope"}]}]} +{ + "isFallbackPublicClient": true, + "signInAudience": "AzureADMultipleOrgs", + "displayName": "CIPP-SAM", + "web": { + "redirectUris": [ + "https://login.microsoftonline.com/common/oauth2/nativeclient", + "https://localhost", + "http://localhost", + "http://localhost:8400" + ] + }, + "requiredResourceAccess": [ + { + "resourceAppId": "aeb86249-8ea3-49e2-900b-54cc8e308f85", + "resourceAccess": [ + { "id": "fc946a4f-bc4d-413b-a090-b2c86113ec4f", "type": "Scope" } + ] + }, + { + "resourceAppId": "fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd", + "resourceAccess": [ + { "id": "1cebfa2a-fb4d-419e-b5f9-839b4383e05a", "type": "Scope" } + ] + }, + { + "resourceAppId": "00000003-0000-0000-c000-000000000000", + "resourceAccess": [ + { "id": "aa07f155-3612-49b8-a147-6c590df35536", "type": "Scope" }, + { "id": "73e75199-7c3e-41bb-9357-167164dbb415", "type": "Scope" }, + { "id": "d01b97e9-cbc0-49fe-810a-750afd5527a3", "type": "Scope" }, + { "id": "46ca0847-7e6b-426e-9775-ea810a948356", "type": "Scope" }, + { "id": "dc38509c-b87d-4da0-bd92-6bec988bac4a", "type": "Scope" }, + { "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", "type": "Scope" }, + { "id": "ad902697-1014-4ef5-81ef-2b4301988e8c", "type": "Scope" }, + { "id": "572fea84-0151-49b2-9301-11cb16974376", "type": "Scope" }, + { "id": "e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20", "type": "Scope" }, + { "id": "0883f392-0a7a-443d-8c76-16a6d39c7b63", "type": "Scope" }, + { "id": "7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af", "type": "Scope" }, + { "id": "0c5e8a55-87a6-4556-93ab-adc52c4d862d", "type": "Scope" }, + { "id": "44642bfe-8385-4adc-8fc6-fe3cb2c375c3", "type": "Scope" }, + { "id": "662ed50a-ac44-4eef-ad86-62eed9be2a29", "type": "Scope" }, + { "id": "6aedf524-7e1c-45a7-bd76-ded8cab8d0fc", "type": "Scope" }, + { "id": "bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804", "type": "Scope" }, + { "id": "11d4cd79-5ba5-460f-803f-e22c8ab85ccd", "type": "Scope" }, + { "id": "02e97553-ed7b-43d0-ab3c-f8bace0d040c", "type": "Scope" }, + { "id": "89fe6a52-be36-487e-b7d8-d061c450a026", "type": "Scope" }, + { "id": "a367ab51-6b49-43bf-a716-a1fb06d2a174", "type": "Scope" }, + { "id": "204e0828-b5ca-4ad8-b9f3-f32a958e7cc4", "type": "Scope" }, + { "id": "4e46008b-f24c-477d-8fff-7bb4ec7aafe0", "type": "Scope" }, + { "id": "0e263e50-5827-48a4-b97c-d940288653c7", "type": "Scope" }, + { "id": "e383f46e-2787-4529-855e-0e479a3ffac0", "type": "Scope" }, + { "id": "37f7f235-527c-4136-accd-4a02d197296e", "type": "Scope" }, + { "id": "14dad69e-099b-42c9-810b-d002981feec1", "type": "Scope" }, + { "id": "f6a3db3e-f7e8-4ed2-a414-557c8c9830be", "type": "Scope" }, + { "id": "0e755559-83fb-4b44-91d0-4cc721b9323e", "type": "Scope" }, + { "id": "a84a9652-ffd3-496e-a991-22ba5529156a", "type": "Scope" }, + { "id": "1d89d70c-dcac-4248-b214-903c457af83a", "type": "Scope" }, + { "id": "2b61aa8a-6d36-4b2f-ac7b-f29867937c53", "type": "Scope" }, + { "id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", "type": "Scope" }, + { "id": "bdfbf15f-ee85-4955-8675-146e8e5296b5", "type": "Scope" }, + { "id": "f81125ac-d3b7-4573-a3b2-7099cc39df9e", "type": "Scope" }, + { "id": "cac97e40-6730-457d-ad8d-4852fddab7ad", "type": "Scope" }, + { "id": "b7887744-6746-4312-813d-72daeaee7e2d", "type": "Scope" }, + { "id": "48971fc1-70d7-4245-af77-0beb29b53ee2", "type": "Scope" }, + { "id": "aec28ec7-4d02-4e8c-b864-50163aea77eb", "type": "Scope" }, + { "id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e", "type": "Scope" }, + { "id": "b98bfd41-87c6-45cc-b104-e2de4f0dafb9", "type": "Scope" }, + { "id": "2f9ee017-59c1-4f1d-9472-bd5529a7b311", "type": "Scope" }, + { "id": "951183d1-1a61-466f-a6d1-1fde911bfd95", "type": "Scope" }, + { "id": "637d7bec-b31e-4deb-acc9-24275642a2c9", "type": "Scope" }, + { "id": "101147cf-4178-4455-9d58-02b5c164e759", "type": "Scope" }, + { "id": "cc83893a-e232-4723-b5af-bd0b01bcfe65", "type": "Scope" }, + { "id": "233e0cf1-dd62-48bc-b65b-b38fe87fcf8e", "type": "Scope" }, + { "id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", "type": "Scope" }, + { "id": "485be79e-c497-4b35-9400-0e3fa7f2a5d4", "type": "Scope" }, + { "id": "9d8982ae-4365-4f57-95e9-d6032a4c0b87", "type": "Scope" }, + { "id": "48638b3c-ad68-4383-8ac4-e6880ee6ca57", "type": "Scope" }, + { "id": "39d65650-9d3e-4223-80db-a335590d027e", "type": "Scope" }, + { "id": "4a06efd2-f825-4e34-813e-82a57b03d1ee", "type": "Scope" }, + { "id": "f3bfad56-966e-4590-a536-82ecf548ac1e", "type": "Scope" }, + { "id": "4d135e65-66b8-41a8-9f8b-081452c91774", "type": "Scope" }, + { "id": "2eadaff8-0bce-4198-a6b9-2cfc35a30075", "type": "Scope" }, + { "id": "0c3e411a-ce45-4cd1-8f30-f99a3efa7b11", "type": "Scope" }, + { "id": "edb72de9-4252-4d03-a925-451deef99db7", "type": "Scope" }, + { "id": "767156cb-16ae-4d10-8f8b-41b657c8c8c8", "type": "Scope" }, + { "id": "7e823077-d88e-468f-a337-e18f1f0e6c7c", "type": "Scope" }, + { "id": "edd3c878-b384-41fd-95ad-e7407dd775be", "type": "Scope" }, + { "id": "40b534c3-9552-4550-901b-23879c90bcf9", "type": "Scope" }, + { "id": "7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0", "type": "Scope" }, + { "id": "2104a4db-3a2f-4ea0-9dba-143d457dc666", "type": "Scope" }, + { "id": "eda39fa6-f8cf-4c3c-a909-432c683e4c9b", "type": "Scope" }, + { "id": "55896846-df78-47a7-aa94-8d3d4442ca7f", "type": "Scope" }, + { "id": "128ca929-1a19-45e6-a3b8-435ec44a36ba", "type": "Scope" }, + { "id": "b27add92-efb2-4f16-84f5-8108ba77985c", "type": "Scope" }, + { "id": "3404d2bf-2b13-457e-a330-c24615765193", "type": "Scope" }, + { "id": "b955410e-7715-4a88-a940-dfd551018df3", "type": "Scope" }, + { "id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", "type": "Role" }, + { "id": "19b94e34-907c-4f43-bde9-38b1909ed408", "type": "Role" }, + { "id": "999f8c63-0a38-4f1b-91fd-ed1947bdd1a9", "type": "Role" }, + { "id": "292d869f-3427-49a8-9dab-8c70152b74e9", "type": "Role" }, + { "id": "2f51be20-0bb4-4fed-bf7b-db946066c75e", "type": "Role" }, + { "id": "58ca0d9a-1575-47e1-a3cb-007ef2e4583b", "type": "Role" }, + { "id": "06a5fe6d-c49d-46a7-b082-56b1b14103c7", "type": "Role" }, + { "id": "246dd0d5-5bd0-4def-940b-0421030a5b68", "type": "Role" }, + { "id": "bf394140-e372-4bf9-a898-299cfc7564e5", "type": "Role" }, + { "id": "741f803b-c850-494e-b5df-cde7c675a1ca", "type": "Role" }, + { "id": "230c1aed-a721-4c5d-9cb4-a90514e508ef", "type": "Role" }, + { "id": "5b567255-7703-4780-807c-7be8301ae99b", "type": "Role" }, + { "id": "62a82d76-70ea-41e2-9197-370581804d09", "type": "Role" }, + { "id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61", "type": "Role" }, + { "id": "1138cb37-bd11-4084-a2b7-9f71582aeddb", "type": "Role" }, + { "id": "78145de6-330d-4800-a6ce-494ff2d33d07", "type": "Role" }, + { "id": "9241abd9-d0e6-425a-bd4f-47ba86e767a4", "type": "Role" }, + { "id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", "type": "Role" }, + { "id": "243333ab-4d21-40cb-a475-36241daa0842", "type": "Role" }, + { "id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", "type": "Role" }, + { "id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", "type": "Role" }, + { "id": "2f6817f8-7b12-4f0f-bc18-eeaf60705a9e", "type": "Role" }, + { "id": "dbaae8cf-10b5-4b86-a4a1-f871c94c6695", "type": "Role" }, + { "id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", "type": "Role" }, + { "id": "01c0a623-fc9b-48e9-b794-0756f8e8f067", "type": "Role" }, + { "id": "50483e42-d915-4231-9639-7fdb7fd190e5", "type": "Role" }, + { "id": "dbb9058a-0e50-45d7-ae91-66909b5d4664", "type": "Role" }, + { "id": "a82116e5-55eb-4c41-a434-62fe8a61c773", "type": "Role" }, + { "id": "f3a65bd4-b703-46df-8f7e-0174fea562aa", "type": "Role" }, + { "id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", "type": "Role" }, + { "id": "0121dc95-1b9f-4aed-8bac-58c5ac466691", "type": "Role" }, + { "id": "3b55498e-47ec-484f-8136-9013221c06a9", "type": "Role" }, + { "id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", "type": "Role" }, + { "id": "25f85f3c-f66c-4205-8cd5-de92dd7f0cec", "type": "Role" }, + { "id": "29c18626-4985-4dcd-85c0-193eef327366", "type": "Role" }, + { "id": "4437522e-9a86-4a41-a7da-e380edd4a97d", "type": "Role" }, + { "id": "34bf0e97-1971-4929-b999-9e2442d941d7", "type": "Role" }, + { "id": "45cc0394-e837-488b-a098-1918f48d186c", "type": "Role" }, + { "id": "be74164b-cff1-491c-8741-e671cb536e13", "type": "Role" }, + { "id": "2a60023f-3219-47ad-baa4-40e17cd02a1d", "type": "Role" }, + { "id": "338163d7-f101-4c92-94ba-ca46fe52447c", "type": "Role" }, + { "id": "cac88765-0581-4025-9725-5ebc13f729ee", "type": "Role" }, + { "id": "75359482-378d-4052-8f01-80520e7db3cd", "type": "Role" }, + { "id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", "type": "Role" }, + { "id": "b27a61ec-b99c-4d6a-b126-c4375d08ae30", "type": "Scope" }, + { "id": "84bccea3-f856-4a8a-967b-dbe0a3d53a64", "type": "Scope" }, + { "id": "280b3b69-0437-44b1-bc20-3b2fca1ee3e9", "type": "Scope" }, + { "id": "885f682f-a990-4bad-a642-36736a74b0c7", "type": "Scope" }, + { "id": "913b9306-0ce1-42b8-9137-6a7df690a760", "type": "Role" }, + { "id": "4c06a06a-098a-4063-868e-5dfee3827264", "type": "Scope" }, + { "id": "1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9", "type": "Role" }, + { "id": "e67e6727-c080-415e-b521-e3f35d5248e9", "type": "Scope" }, + { "id": "b6890674-9dd5-4e42-bb15-5af07f541ae1", "type": "Role" }, + { "id": "9e4862a5-b68f-479e-848a-4e07e25c9916", "type": "Scope" }, + { "id": "bb6f654c-d7fd-4ae3-85c3-fc380934f515", "type": "Scope" }, + { "id": "e0a7cdbb-08b0-4697-8264-0069786e9674", "type": "Scope" } + ] + }, + { + "resourceAppId": "fc780465-2017-40d4-a0c5-307022471b92", + "resourceAccess": [ + { "id": "63a677ce-818c-4409-9d12-5c6d2e2a6bfe", "type": "Scope" }, + { "id": "41269fc5-d04d-4bfd-bce7-43a51cea049a", "type": "Role" } + ] + }, + { + "resourceAppId": "00000002-0000-0ff1-ce00-000000000000", + "resourceAccess": [ + { "id": "ab4f2b77-0b06-4fc1-a9de-02113fc2ab7c", "type": "Scope" }, + { "id": "bbd1ca91-75e0-4814-ad94-9c5dbbae3415", "type": "Scope" }, + { "id": "2e83d72d-8895-4b66-9eea-abb43449ab8b", "type": "Scope" }, + { "id": "dc50a0fb-09a3-484d-be87-e023b12c6440", "type": "Role" }, + { "id": "ef54d2bf-783f-4e0f-bca1-3210c0444d99", "type": "Role" }, + { "id": "f9156939-25cd-4ba8-abfe-7fabcf003749", "type": "Role" } + ] + }, + { + "resourceAppId": "00000003-0000-0ff1-ce00-000000000000", + "resourceAccess": [ + { "id": "56680e0d-d2a3-4ae1-80d8-3c4f2100e3d0", "type": "Scope" } + ] + }, + { + "resourceAppId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "resourceAccess": [ + { "id": "e60370c1-e451-437e-aa6e-d76df38e5f15", "type": "Scope" } + ] + }, + { + "resourceAppId": "c5393580-f805-4401-95e8-94b7a6ef2fc2", + "resourceAccess": [ + { "id": "594c1fb6-4f81-4475-ae41-0c394909246c", "type": "Scope" } + ] + } + ] +} diff --git a/Cache_SAMSetup/SAMManifestNoPartner.json b/Cache_SAMSetup/SAMManifestNoPartner.json deleted file mode 100644 index 37f6c62fc909..000000000000 --- a/Cache_SAMSetup/SAMManifestNoPartner.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "isFallbackPublicClient": true, - "signInAudience": "AzureADMyOrg", - "displayName": "CIPP-SAM", - "web": { - "redirectUris": [ - "https://login.microsoftonline.com/common/oauth2/nativeclient", - "https://localhost", - "http://localhost", - "http://localhost:8400" - ] - }, - "requiredResourceAccess": [ - { - "resourceAppId": "00000003-0000-0000-c000-000000000000", - "resourceAccess": [ - { "id": "0f4595f7-64b1-4e13-81bc-11a249df07a9", "type": "Scope" }, - { "id": "73e75199-7c3e-41bb-9357-167164dbb415", "type": "Scope" }, - { "id": "7ab1d787-bae7-4d5d-8db6-37ea32df9186", "type": "Scope" }, - { "id": "d01b97e9-cbc0-49fe-810a-750afd5527a3", "type": "Scope" }, - { "id": "46ca0847-7e6b-426e-9775-ea810a948356", "type": "Scope" }, - { "id": "dc38509c-b87d-4da0-bd92-6bec988bac4a", "type": "Scope" }, - { "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", "type": "Scope" }, - { "id": "ad902697-1014-4ef5-81ef-2b4301988e8c", "type": "Scope" }, - { "id": "572fea84-0151-49b2-9301-11cb16974376", "type": "Scope" }, - { "id": "e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20", "type": "Scope" }, - { "id": "0883f392-0a7a-443d-8c76-16a6d39c7b63", "type": "Scope" }, - { "id": "7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af", "type": "Scope" }, - { "id": "0c5e8a55-87a6-4556-93ab-adc52c4d862d", "type": "Scope" }, - { "id": "44642bfe-8385-4adc-8fc6-fe3cb2c375c3", "type": "Scope" }, - { "id": "662ed50a-ac44-4eef-ad86-62eed9be2a29", "type": "Scope" }, - { "id": "8696daa5-bce5-4b2e-83f9-51b6defc4e1e", "type": "Scope" }, - { "id": "6aedf524-7e1c-45a7-bd76-ded8cab8d0fc", "type": "Scope" }, - { "id": "bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804", "type": "Scope" }, - { "id": "11d4cd79-5ba5-460f-803f-e22c8ab85ccd", "type": "Scope" }, - { "id": "02e97553-ed7b-43d0-ab3c-f8bace0d040c", "type": "Scope" }, - { "id": "89fe6a52-be36-487e-b7d8-d061c450a026", "type": "Scope" }, - { "id": "a367ab51-6b49-43bf-a716-a1fb06d2a174", "type": "Scope" }, - { "id": "204e0828-b5ca-4ad8-b9f3-f32a958e7cc4", "type": "Scope" }, - { "id": "4e46008b-f24c-477d-8fff-7bb4ec7aafe0", "type": "Scope" }, - { "id": "0e263e50-5827-48a4-b97c-d940288653c7", "type": "Scope" }, - { "id": "e383f46e-2787-4529-855e-0e479a3ffac0", "type": "Scope" }, - { "id": "37f7f235-527c-4136-accd-4a02d197296e", "type": "Scope" }, - { "id": "14dad69e-099b-42c9-810b-d002981feec1", "type": "Scope" }, - { "id": "f6a3db3e-f7e8-4ed2-a414-557c8c9830be", "type": "Scope" }, - { "id": "0e755559-83fb-4b44-91d0-4cc721b9323e", "type": "Scope" }, - { "id": "a84a9652-ffd3-496e-a991-22ba5529156a", "type": "Scope" }, - { "id": "1d89d70c-dcac-4248-b214-903c457af83a", "type": "Scope" }, - { "id": "32ea53ac-4a89-4cde-bac4-727c6fb9ac29", "type": "Scope" }, - { "id": "2b61aa8a-6d36-4b2f-ac7b-f29867937c53", "type": "Scope" }, - { "id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", "type": "Scope" }, - { "id": "daef10fc-047a-48b0-b1a5-da4b5e72fabc", "type": "Scope" }, - { "id": "2a5addc2-4d9e-4d7d-8527-5215aec410f3", "type": "Scope" }, - { "id": "c79f8feb-a9db-4090-85f9-90d820caa0eb", "type": "Scope" }, - { "id": "bdfbf15f-ee85-4955-8675-146e8e5296b5", "type": "Scope" }, - { "id": "f81125ac-d3b7-4573-a3b2-7099cc39df9e", "type": "Scope" }, - { "id": "cac97e40-6730-457d-ad8d-4852fddab7ad", "type": "Scope" }, - { "id": "b7887744-6746-4312-813d-72daeaee7e2d", "type": "Scope" }, - { "id": "48971fc1-70d7-4245-af77-0beb29b53ee2", "type": "Scope" }, - { "id": "aec28ec7-4d02-4e8c-b864-50163aea77eb", "type": "Scope" }, - { "id": "d3f0af02-b22d-4778-a433-14f7e3f2e1e2", "type": "Scope" }, - { "id": "9127ba42-f79f-43b1-be80-f23ecd42377e", "type": "Scope" }, - { "id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e", "type": "Scope" }, - { "id": "59dacb05-e88d-4c13-a684-59f1afc8cc98", "type": "Scope" }, - { "id": "b98bfd41-87c6-45cc-b104-e2de4f0dafb9", "type": "Scope" }, - { "id": "2f9ee017-59c1-4f1d-9472-bd5529a7b311", "type": "Scope" }, - { "id": "951183d1-1a61-466f-a6d1-1fde911bfd95", "type": "Scope" }, - { "id": "637d7bec-b31e-4deb-acc9-24275642a2c9", "type": "Scope" }, - { "id": "101147cf-4178-4455-9d58-02b5c164e759", "type": "Scope" }, - { "id": "cc83893a-e232-4723-b5af-bd0b01bcfe65", "type": "Scope" }, - { "id": "233e0cf1-dd62-48bc-b65b-b38fe87fcf8e", "type": "Scope" }, - { "id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", "type": "Scope" }, - { "id": "485be79e-c497-4b35-9400-0e3fa7f2a5d4", "type": "Scope" }, - { "id": "9d8982ae-4365-4f57-95e9-d6032a4c0b87", "type": "Scope" }, - { "id": "48638b3c-ad68-4383-8ac4-e6880ee6ca57", "type": "Scope" }, - { "id": "39d65650-9d3e-4223-80db-a335590d027e", "type": "Scope" }, - { "id": "4a06efd2-f825-4e34-813e-82a57b03d1ee", "type": "Scope" }, - { "id": "f3bfad56-966e-4590-a536-82ecf548ac1e", "type": "Scope" }, - { "id": "4d135e65-66b8-41a8-9f8b-081452c91774", "type": "Scope" }, - { "id": "2eadaff8-0bce-4198-a6b9-2cfc35a30075", "type": "Scope" }, - { "id": "0c3e411a-ce45-4cd1-8f30-f99a3efa7b11", "type": "Scope" }, - { "id": "edb72de9-4252-4d03-a925-451deef99db7", "type": "Scope" }, - { "id": "767156cb-16ae-4d10-8f8b-41b657c8c8c8", "type": "Scope" }, - { "id": "7e823077-d88e-468f-a337-e18f1f0e6c7c", "type": "Scope" }, - { "id": "edd3c878-b384-41fd-95ad-e7407dd775be", "type": "Scope" }, - { "id": "40b534c3-9552-4550-901b-23879c90bcf9", "type": "Scope" }, - { "id": "bf3fbf03-f35f-4e93-963e-47e4d874c37a", "type": "Scope" }, - { "id": "5248dcb1-f83b-4ec3-9f4d-a4428a961a72", "type": "Scope" }, - { "id": "c395395c-ff9a-4dba-bc1f-8372ba9dca84", "type": "Scope" }, - { "id": "2e25a044-2580-450d-8859-42eeb6e996c0", "type": "Scope" }, - { "id": "0ce33576-30e8-43b7-99e5-62f8569a4002", "type": "Scope" }, - { "id": "207e0cb1-3ce7-4922-b991-5a760c346ebc", "type": "Scope" }, - { "id": "093f8818-d05f-49b8-95bc-9d2a73e9a43c", "type": "Scope" }, - { "id": "7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0", "type": "Scope" }, - { "id": "2104a4db-3a2f-4ea0-9dba-143d457dc666", "type": "Scope" }, - { "id": "eda39fa6-f8cf-4c3c-a909-432c683e4c9b", "type": "Scope" }, - { "id": "55896846-df78-47a7-aa94-8d3d4442ca7f", "type": "Scope" }, - { "id": "aa85bf13-d771-4d5d-a9e6-bca04ce44edf", "type": "Scope" }, - { "id": "ee928332-e9c2-4747-b4a0-f8c164b68de6", "type": "Scope" }, - { "id": "c975dd04-a06e-4fbb-9704-62daad77bb49", "type": "Scope" }, - { "id": "c37c9b61-7762-4bff-a156-afc0005847a0", "type": "Scope" }, - { "id": "999f8c63-0a38-4f1b-91fd-ed1947bdd1a9", "type": "Role" }, - { "id": "292d869f-3427-49a8-9dab-8c70152b74e9", "type": "Role" }, - { "id": "2f51be20-0bb4-4fed-bf7b-db946066c75e", "type": "Role" }, - { "id": "58ca0d9a-1575-47e1-a3cb-007ef2e4583b", "type": "Role" }, - { "id": "06a5fe6d-c49d-46a7-b082-56b1b14103c7", "type": "Role" }, - { "id": "246dd0d5-5bd0-4def-940b-0421030a5b68", "type": "Role" }, - { "id": "bf394140-e372-4bf9-a898-299cfc7564e5", "type": "Role" }, - { "id": "741f803b-c850-494e-b5df-cde7c675a1ca", "type": "Role" }, - { "id": "230c1aed-a721-4c5d-9cb4-a90514e508ef", "type": "Role" }, - { "id": "b633e1c5-b582-4048-a93e-9f11b44c7e96", "type": "Role" }, - { "id": "5b567255-7703-4780-807c-7be8301ae99b", "type": "Role" }, - { "id": "62a82d76-70ea-41e2-9197-370581804d09", "type": "Role" }, - { "id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61", "type": "Role" }, - { "id": "1138cb37-bd11-4084-a2b7-9f71582aeddb", "type": "Role" }, - { "id": "78145de6-330d-4800-a6ce-494ff2d33d07", "type": "Role" }, - { "id": "9241abd9-d0e6-425a-bd4f-47ba86e767a4", "type": "Role" }, - { "id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", "type": "Role" }, - { "id": "243333ab-4d21-40cb-a475-36241daa0842", "type": "Role" }, - { "id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", "type": "Role" }, - { "id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", "type": "Role" }, - { "id": "2f6817f8-7b12-4f0f-bc18-eeaf60705a9e", "type": "Role" }, - { "id": "dbaae8cf-10b5-4b86-a4a1-f871c94c6695", "type": "Role" }, - { "id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", "type": "Role" }, - { "id": "01c0a623-fc9b-48e9-b794-0756f8e8f067", "type": "Role" }, - { "id": "50483e42-d915-4231-9639-7fdb7fd190e5", "type": "Role" }, - { "id": "dbb9058a-0e50-45d7-ae91-66909b5d4664", "type": "Role" }, - { "id": "a82116e5-55eb-4c41-a434-62fe8a61c773", "type": "Role" }, - { "id": "f3a65bd4-b703-46df-8f7e-0174fea562aa", "type": "Role" }, - { "id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", "type": "Role" }, - { "id": "0121dc95-1b9f-4aed-8bac-58c5ac466691", "type": "Role" }, - { "id": "3b55498e-47ec-484f-8136-9013221c06a9", "type": "Role" }, - { "id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", "type": "Role" }, - { "id": "25f85f3c-f66c-4205-8cd5-de92dd7f0cec", "type": "Role" }, - { "id": "29c18626-4985-4dcd-85c0-193eef327366", "type": "Role" }, - { "id": "4437522e-9a86-4a41-a7da-e380edd4a97d", "type": "Role" } - ] - }, - { - "resourceAppId": "00000002-0000-0000-c000-000000000000", - "resourceAccess": [ - { "id": "5778995a-e1bf-45b8-affa-663a9f3f4d04", "type": "Role" }, - { "id": "a42657d6-7f20-40e3-b6f0-cee03008a62a", "type": "Scope" }, - { "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6", "type": "Scope" } - ] - } - ] -} diff --git a/CommunityRepos.json b/CommunityRepos.json new file mode 100644 index 000000000000..9d6d702d0161 --- /dev/null +++ b/CommunityRepos.json @@ -0,0 +1,92 @@ +[ + { + "Id": "1041442982", + "Name": "CISTemplates", + "Description": "CIPP CIS Templates", + "URL": "https://github.com/CyberDrain/CyberDrain-CIS-Templates", + "FullName": "CyberDrain/CyberDrain-CIS-Templates", + "Owner": "CyberDrain", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + }, + { + "Id": "930523724", + "Name": "CIPP-Templates", + "Description": "CIPP Community Templates", + "URL": "https://github.com/CyberDrain/CIPP-Templates", + "FullName": "CyberDrain/CIPP-Templates", + "Owner": "CyberDrain", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + }, + { + "Id": "784230225", + "Name": "ConditionalAccessBaseline", + "Description": "", + "URL": "https://github.com/j0eyv/ConditionalAccessBaseline", + "FullName": "j0eyv/ConditionalAccessBaseline", + "Owner": "j0eyv", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + }, + { + "Id": "493403016", + "Name": "OpenIntuneBaseline", + "Description": "Community-driven baseline to accelerate Intune adoption and learning.", + "URL": "https://github.com/SkipToTheEndpoint/OpenIntuneBaseline", + "FullName": "SkipToTheEndpoint/OpenIntuneBaseline", + "Owner": "SkipToTheEndpoint", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + }, + { + "Id": "863076113", + "Name": "IntuneBaseLines", + "Description": "In this repo, you will find Intune profiles in JSON format, which can be used in setting up your Modern Workplace. All policies were created in Microsoft Intune and exported to share with the community.", + "URL": "https://github.com/IntuneAdmin/IntuneBaselines", + "FullName": "IntuneAdmin/IntuneBaselines", + "Owner": "IntuneAdmin", + "Visibility": "public", + "WriteAccess": false, + "DefaultBranch": "main", + "RepoPermissions": { + "admin": false, + "maintain": false, + "push": false, + "triage": false, + "pull": true + } + } +] diff --git a/Config/49a8069e-3b46-4680-a035-9250bc675446.CATemplate.json b/Config/49a8069e-3b46-4680-a035-9250bc675446.CATemplate.json new file mode 100644 index 000000000000..2b2d9230c0e3 --- /dev/null +++ b/Config/49a8069e-3b46-4680-a035-9250bc675446.CATemplate.json @@ -0,0 +1,41 @@ +{ + "state": "enabled", + "grantControls": { + "builtInControls": ["mfa"], + "operator": "OR", + "termsOfUse": [], + "customAuthenticationFactors": [] + }, + "conditions": { + "times": null, + "locations": null, + "signInRiskLevels": [], + "devices": null, + "deviceStates": null, + "users": { + "excludeRoles": [], + "excludeUsers": [], + "excludeGroups": [], + "includeUsers": ["All"], + "includeRoles": [], + "includeGroups": [] + }, + "servicePrincipalRiskLevels": [], + "userRiskLevels": [], + "clientAppTypes": [ + "exchangeActiveSync", + "browser", + "mobileAppsAndDesktopClients", + "other" + ], + "platforms": null, + "clientApplications": null, + "applications": { + "includeApplications": ["All"], + "includeUserActions": [], + "includeAuthenticationContextClassReferences": [], + "excludeApplications": [] + } + }, + "displayName": "CIPP: Enforce Multi factor authentication for each application" +} diff --git a/Config/4d9206b0-4f96-41e6-86a5-f78cdcff5069.IntuneTemplate.json b/Config/4d9206b0-4f96-41e6-86a5-f78cdcff5069.IntuneTemplate.json index c75f0ecbb9cd..14002de0f91a 100644 --- a/Config/4d9206b0-4f96-41e6-86a5-f78cdcff5069.IntuneTemplate.json +++ b/Config/4d9206b0-4f96-41e6-86a5-f78cdcff5069.IntuneTemplate.json @@ -1,7 +1,7 @@ -{ - "Displayname": "CIPP Default: Set screen lock time to 5 minutes", - "Description": "Sets the screen to lock after 5 minutes of inactivity.", - "RAWJson": "{\"name\":\"Set Screen Lockout to 5 minutes\",\"description\":\"\",\"platforms\":\"windows10\",\"technologies\":\"mdm\",\"roleScopeTagIds\":[\"0\"],\"settings\":[{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationSetting\",\"settingInstance\":{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance\",\"settingDefinitionId\":\"device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_machineinactivitylimit_v2\",\"simpleSettingValue\":{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationIntegerSettingValue\",\"value\":300}}}]}", - "Type": "Catalog", - "GUID": "4d9206b0-4f96-41e6-86a5-f78cdcff5069" -} +{ + "Displayname": "CIPP: Set screen lock time to 5 minutes", + "Description": "Sets the screen to lock after 5 minutes of inactivity.", + "RAWJson": "{\"name\":\"Set Screen Lockout to 5 minutes\",\"description\":\"\",\"platforms\":\"windows10\",\"technologies\":\"mdm\",\"roleScopeTagIds\":[\"0\"],\"settings\":[{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationSetting\",\"settingInstance\":{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance\",\"settingDefinitionId\":\"device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_machineinactivitylimit_v2\",\"simpleSettingValue\":{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationIntegerSettingValue\",\"value\":300}}}]}", + "Type": "Catalog", + "GUID": "4d9206b0-4f96-41e6-86a5-f78cdcff5069.IntuneTemplate.json" +} diff --git a/Config/4ec40975-c530-44d1-be9e-12f90cac6e95.TransportRuleTemplate.json b/Config/4ec40975-c530-44d1-be9e-12f90cac6e95.TransportRuleTemplate.json new file mode 100644 index 000000000000..696cd66bd838 --- /dev/null +++ b/Config/4ec40975-c530-44d1-be9e-12f90cac6e95.TransportRuleTemplate.json @@ -0,0 +1,33 @@ +{ + "name": "Block sending read receipt responses", + "comments": "Deletes all read receipts being sent to internal or external users.", + "ApplyOME": false, + "AttachmentHasExecutableContent": false, + "AttachmentIsPasswordProtected": false, + "AttachmentIsUnsupported": false, + "AttachmentProcessingLimitExceeded": false, + "DeleteMessage": true, + "ExceptIfAttachmentHasExecutableContent": false, + "ExceptIfAttachmentIsPasswordProtected": false, + "ExceptIfAttachmentIsUnsupported": false, + "ExceptIfAttachmentProcessingLimitExceeded": false, + "ExceptIfHasNoClassification": false, + "ExceptIfHasSenderOverride": false, + "FromScope": "InOrganization", + "HasNoClassification": false, + "HasSenderOverride": false, + "MessageTypeMatches": "ReadReceipt", + "Mode": "Enforce", + "ModerateMessageByManager": false, + "Quarantine": false, + "RecipientAddressType": "Resolved", + "RemoveOME": false, + "RemoveOMEv2": false, + "RemoveRMSAttachmentEncryption": false, + "RouteMessageOutboundRequireTls": false, + "RuleErrorAction": "Ignore", + "RuleSubType": "None", + "SenderAddressLocation": "Header", + "StopRuleProcessing": false, + "UseLegacyRegex": false +} diff --git a/Config/59bd753c-4204-4b3a-b84b-850d4b69f494.IntuneTemplate.json b/Config/59bd753c-4204-4b3a-b84b-850d4b69f494.IntuneTemplate.json new file mode 100644 index 000000000000..84d2fa964133 --- /dev/null +++ b/Config/59bd753c-4204-4b3a-b84b-850d4b69f494.IntuneTemplate.json @@ -0,0 +1,7 @@ +{ + "Displayname": "CIPP: LAPS", + "Description": "", + "RAWJson": "{\r\n \"name\": \"LAPS\",\r\n \"description\": \"\",\r\n \"settings\": [\r\n {\r\n \"id\": \"0\",\r\n \"settingInstance\": {\r\n \"@odata.type\": \"#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance\",\r\n \"settingDefinitionId\": \"device_vendor_msft_laps_policies_backupdirectory\",\r\n \"settingInstanceTemplateReference\": {\r\n \"settingInstanceTemplateId\": \"a3270f64-e493-499d-8900-90290f61ed8a\"\r\n },\r\n \"choiceSettingValue\": {\r\n \"value\": \"device_vendor_msft_laps_policies_backupdirectory_1\",\r\n \"settingValueTemplateReference\": {\r\n \"settingValueTemplateId\": \"4d90f03d-e14c-43c4-86da-681da96a2f92\",\r\n \"useTemplateDefault\": false\r\n },\r\n \"children\": [\r\n {\r\n \"@odata.type\": \"#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance\",\r\n \"settingDefinitionId\": \"device_vendor_msft_laps_policies_passwordagedays_aad\",\r\n \"settingInstanceTemplateReference\": null,\r\n \"simpleSettingValue\": {\r\n \"@odata.type\": \"#microsoft.graph.deviceManagementConfigurationIntegerSettingValue\",\r\n \"settingValueTemplateReference\": null,\r\n \"value\": 30\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"1\",\r\n \"settingInstance\": {\r\n \"@odata.type\": \"#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance\",\r\n \"settingDefinitionId\": \"device_vendor_msft_laps_policies_passwordcomplexity\",\r\n \"settingInstanceTemplateReference\": {\r\n \"settingInstanceTemplateId\": \"8a7459e8-1d1c-458a-8906-7b27d216de52\"\r\n },\r\n \"choiceSettingValue\": {\r\n \"value\": \"device_vendor_msft_laps_policies_passwordcomplexity_4\",\r\n \"settingValueTemplateReference\": {\r\n \"settingValueTemplateId\": \"aa883ab5-625e-4e3b-b830-a37a4bb8ce01\",\r\n \"useTemplateDefault\": false\r\n },\r\n \"children\": []\r\n }\r\n }\r\n }\r\n ],\r\n \"platforms\": \"windows10\",\r\n \"technologies\": \"mdm\",\r\n \"templateReference\": {\r\n \"templateId\": \"adc46e5a-f4aa-4ff6-aeff-4f27bc525796_1\",\r\n \"templateFamily\": \"endpointSecurityAccountProtection\",\r\n \"templateDisplayName\": \"Local admin password solution (Windows LAPS)\",\r\n \"templateDisplayVersion\": \"Version 1\"\r\n }\r\n}", + "Type": "Catalog", + "GUID": "59bd753c-4204-4b3a-b84b-850d4b69f494.IntuneTemplate.json" +} diff --git a/Config/5e4ce5db-1dcd-4423-8131-1379fa2e7621.TransportRuleTemplate.json b/Config/5e4ce5db-1dcd-4423-8131-1379fa2e7621.TransportRuleTemplate.json new file mode 100644 index 000000000000..c9d99d19befc --- /dev/null +++ b/Config/5e4ce5db-1dcd-4423-8131-1379fa2e7621.TransportRuleTemplate.json @@ -0,0 +1,32 @@ +{ + "name": "Disable read receipt responses", + "comments": "This rule strips out the header responsible for asking for a read receipt, from all messages.", + "ApplyOME": false, + "AttachmentHasExecutableContent": false, + "AttachmentIsPasswordProtected": false, + "AttachmentIsUnsupported": false, + "AttachmentProcessingLimitExceeded": false, + "DeleteMessage": false, + "ExceptIfAttachmentHasExecutableContent": false, + "ExceptIfAttachmentIsPasswordProtected": false, + "ExceptIfAttachmentIsUnsupported": false, + "ExceptIfAttachmentProcessingLimitExceeded": false, + "ExceptIfHasNoClassification": false, + "ExceptIfHasSenderOverride": false, + "HasNoClassification": false, + "HasSenderOverride": false, + "Mode": "Enforce", + "ModerateMessageByManager": false, + "Quarantine": false, + "RecipientAddressType": "Resolved", + "RemoveHeader": "Disposition-Notification-To", + "RemoveOME": false, + "RemoveOMEv2": false, + "RemoveRMSAttachmentEncryption": false, + "RouteMessageOutboundRequireTls": false, + "RuleErrorAction": "Ignore", + "RuleSubType": "None", + "SenderAddressLocation": "Header", + "StopRuleProcessing": false, + "UseLegacyRegex": false +} diff --git a/Config/7547f73c-3cb0-460c-a4bd-391944908007.IntuneTemplate.json b/Config/7547f73c-3cb0-460c-a4bd-391944908007.IntuneTemplate.json index 2dbc9ac91bb6..46b4483e224a 100644 --- a/Config/7547f73c-3cb0-460c-a4bd-391944908007.IntuneTemplate.json +++ b/Config/7547f73c-3cb0-460c-a4bd-391944908007.IntuneTemplate.json @@ -1,7 +1,7 @@ -{ - "Displayname": "CIPP Default: Skip Autopilot User Setup Page", - "Description": "Skips the autopilot user setup page", - "RAWJson": "{\"id\":\"00000000-0000-0000-0000-000000000000\",\"displayName\":\"Skip Autopilot User Setup Page\",\"roleScopeTagIds\":[\"0\"],\"@odata.type\":\"#microsoft.graph.windows10CustomConfiguration\",\"omaSettings\":[{\"displayName\":\"SkipUserSetupPage\",\"omaUri\":\"./Device/Vendor/MSFT/DMClient/Provider/MS DM Server/FirstSyncStatus/SkipUserStatusPage\",\"@odata.type\":\"#microsoft.graph.omaSettingBoolean\",\"value\":\"true\"}]}", - "Type": "Device", - "GUID": "7547f73c-3cb0-460c-a4bd-391944908007" -} +{ + "Displayname": "CIPP: Skip Autopilot User Setup Page", + "Description": "Skips the autopilot user setup page", + "RAWJson": "{\"id\":\"00000000-0000-0000-0000-000000000000\",\"displayName\":\"Skip Autopilot User Setup Page\",\"roleScopeTagIds\":[\"0\"],\"@odata.type\":\"#microsoft.graph.windows10CustomConfiguration\",\"omaSettings\":[{\"displayName\":\"SkipUserSetupPage\",\"omaUri\":\"./Device/Vendor/MSFT/DMClient/Provider/MS DM Server/FirstSyncStatus/SkipUserStatusPage\",\"@odata.type\":\"#microsoft.graph.omaSettingBoolean\",\"value\":\"true\"}]}", + "Type": "Device", + "GUID": "7547f73c-3cb0-460c-a4bd-391944908007.IntuneTemplate.json" +} diff --git a/Config/7b41924e-3051-4a23-b0d0-8cdeadc2c05a.IntuneTemplate.json b/Config/7b41924e-3051-4a23-b0d0-8cdeadc2c05a.IntuneTemplate.json index e316a4ef55e1..96c82383e506 100644 --- a/Config/7b41924e-3051-4a23-b0d0-8cdeadc2c05a.IntuneTemplate.json +++ b/Config/7b41924e-3051-4a23-b0d0-8cdeadc2c05a.IntuneTemplate.json @@ -1,7 +1,7 @@ -{ - "Displayname": "CIPP Default: Enable Onedrive Silent Logon and Known Folder Move", - "Description": "This policy enables Onedrive Silent Logon and Known Folder move", - "RAWJson": "{\"added\":[{\"enabled\":true,\"presentationValues\":[],\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('9a4db949-29e4-4e31-a129-bf2b88d8fa1b')\"},{\"enabled\":true,\"presentationValues\":[{\"@odata.type\":\"#microsoft.graph.groupPolicyPresentationValueText\",\"value\":\"$($tenant.customerId)\",\"presentation@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('39147fa2-6c5e-437b-8264-19b50b891709')/presentations('fbefbbdf-5382-477c-8b6c-71f4a06e2805')\"},{\"@odata.type\":\"#microsoft.graph.groupPolicyPresentationValueText\",\"value\":\"0\",\"presentation@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('39147fa2-6c5e-437b-8264-19b50b891709')/presentations('35c82072-a93b-4022-be14-8684c2f6fcc2')\"}],\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('39147fa2-6c5e-437b-8264-19b50b891709')\"},{\"enabled\":true,\"presentationValues\":[],\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('81c07ba0-7512-402d-b1f6-00856975cfab')\"},{\"enabled\":true,\"presentationValues\":[],\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('61b07a01-7e60-4127-b086-f6b32458a5c5')\"},{\"enabled\":true,\"presentationValues\":[],\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('8866d7bd-42fb-4695-b6f2-80e0a90b1ac3')\"},{\"enabled\":true,\"presentationValues\":[],\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('f974758d-1fab-42fe-ad36-3a6cd25c49c1')\"}],\"updated\":[],\"deletedIds\":[]}\r\n", - "Type": "Admin", - "GUID": "7b41924e-3051-4a23-b0d0-8cdeadc2c05a" -} +{ + "Displayname": "CIPP: Enable Onedrive Silent Logon and Known Folder Move", + "Description": "This policy enables Onedrive Silent Logon and Known Folder move", + "RAWJson": "{\r\n\"added\":[\r\n{\r\n\"enabled\":true,\r\n\"presentationValues\":[],\r\n\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('9a4db949-29e4-4e31-a129-bf2b88d8fa1b')\"\r\n},\r\n{\r\n\"enabled\":true,\r\n\"presentationValues\":[\r\n{\r\n\"@odata.type\":\"#microsoft.graph.groupPolicyPresentationValueText\",\r\n\"value\":\"%tenantid%\",\r\n\"presentation@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('39147fa2-6c5e-437b-8264-19b50b891709')/presentations('fbefbbdf-5382-477c-8b6c-71f4a06e2805')\"\r\n},\r\n{\r\n\"@odata.type\":\"#microsoft.graph.groupPolicyPresentationValueText\",\r\n\"value\":\"0\",\r\n\"presentation@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('39147fa2-6c5e-437b-8264-19b50b891709')/presentations('35c82072-a93b-4022-be14-8684c2f6fcc2')\"\r\n}\r\n],\r\n\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('39147fa2-6c5e-437b-8264-19b50b891709')\"\r\n},\r\n{\r\n\"enabled\":true,\r\n\"presentationValues\":[],\r\n\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('81c07ba0-7512-402d-b1f6-00856975cfab')\"\r\n},\r\n{\r\n\"enabled\":true,\r\n\"presentationValues\":[],\r\n\"definition@odata.bind\":\"https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('61b07a01-7e60-4127-b086-f6b32458a5c5')\"\r\n}\r\n],\r\n\"updated\":[],\r\n\"deletedIds\":[]\r\n}", + "Type": "Admin", + "GUID": "7b41924e-3051-4a23-b0d0-8cdeadc2c05a.IntuneTemplate.json" +} diff --git a/Config/7e06b0de-0469-4aae-89be-d83c44b5799f.IntuneTemplate.json b/Config/7e06b0de-0469-4aae-89be-d83c44b5799f.IntuneTemplate.json index 723efc6f47d8..db3d26dd6cea 100644 --- a/Config/7e06b0de-0469-4aae-89be-d83c44b5799f.IntuneTemplate.json +++ b/Config/7e06b0de-0469-4aae-89be-d83c44b5799f.IntuneTemplate.json @@ -1,7 +1,7 @@ -{ - "Displayname": "CIPP Default: Enable Bitlocker Encryption for OS drives", - "Description": "Enables Bitlocker and stores the key in Azure AD for system Drives", - "RAWJson": "{\"id\":\"00000000-0000-0000-0000-000000000000\",\"displayName\":\"CIPP: Enable Bitlocker Encryption\",\"roleScopeTagIds\":[\"0\"],\"@odata.type\":\"#microsoft.graph.windows10EndpointProtectionConfiguration\",\"applicationGuardEnabledOptions\":\"notConfigured\",\"firewallCertificateRevocationListCheckMethod\":\"deviceDefault\",\"firewallPacketQueueingMethod\":\"deviceDefault\",\"deviceGuardLocalSystemAuthorityCredentialGuardSettings\":\"notConfigured\",\"defenderSecurityCenterNotificationsFromApp\":\"notConfigured\",\"windowsDefenderTamperProtection\":\"notConfigured\",\"defenderSecurityCenterITContactDisplay\":\"notConfigured\",\"xboxServicesAccessoryManagementServiceStartupMode\":\"manual\",\"xboxServicesLiveAuthManagerServiceStartupMode\":\"manual\",\"xboxServicesLiveGameSaveServiceStartupMode\":\"manual\",\"xboxServicesLiveNetworkingServiceStartupMode\":\"manual\",\"applicationGuardBlockClipboardSharing\":\"notConfigured\",\"defenderPreventCredentialStealingType\":\"notConfigured\",\"defenderAdobeReaderLaunchChildProcess\":\"notConfigured\",\"defenderOfficeCommunicationAppsLaunchChildProcess\":\"notConfigured\",\"defenderAdvancedRansomewareProtectionType\":\"notConfigured\",\"defenderNetworkProtectionType\":\"notConfigured\",\"localSecurityOptionsFormatAndEjectOfRemovableMediaAllowedUser\":\"notConfigured\",\"localSecurityOptionsSmartCardRemovalBehavior\":\"lockWorkstation\",\"localSecurityOptionsInformationDisplayedOnLockScreen\":\"notConfigured\",\"localSecurityOptionsMinimumSessionSecurityForNtlmSspBasedClients\":\"none\",\"localSecurityOptionsMinimumSessionSecurityForNtlmSspBasedServers\":\"none\",\"lanManagerAuthenticationLevel\":\"lmAndNltm\",\"localSecurityOptionsAdministratorElevationPromptBehavior\":\"notConfigured\",\"localSecurityOptionsStandardUserElevationPromptBehavior\":\"notConfigured\",\"userRightsAccessCredentialManagerAsTrustedCaller\":null,\"userRightsLocalLogOn\":null,\"userRightsAllowAccessFromNetwork\":null,\"userRightsActAsPartOfTheOperatingSystem\":null,\"userRightsBackupData\":null,\"userRightsChangeSystemTime\":null,\"userRightsCreateGlobalObjects\":null,\"userRightsCreatePageFile\":null,\"userRightsCreatePermanentSharedObjects\":null,\"userRightsCreateSymbolicLinks\":null,\"userRightsCreateToken\":null,\"userRightsDebugPrograms\":null,\"userRightsBlockAccessFromNetwork\":null,\"userRightsDenyLocalLogOn\":null,\"userRightsRemoteDesktopServicesLogOn\":null,\"userRightsDelegation\":null,\"userRightsGenerateSecurityAudits\":null,\"userRightsImpersonateClient\":null,\"userRightsIncreaseSchedulingPriority\":null,\"userRightsLoadUnloadDrivers\":null,\"userRightsLockMemory\":null,\"userRightsManageAuditingAndSecurityLogs\":null,\"userRightsManageVolumes\":null,\"userRightsModifyFirmwareEnvironment\":null,\"userRightsModifyObjectLabels\":null,\"userRightsProfileSingleProcess\":null,\"userRightsRemoteShutdown\":null,\"userRightsRestoreData\":null,\"userRightsTakeOwnership\":null,\"bitLockerRecoveryPasswordRotation\":\"notConfigured\",\"bitLockerPrebootRecoveryMsgURLOption\":\"default\",\"bitLockerEncryptDevice\":true,\"bitLockerDisableWarningForOtherDiskEncryption\":true,\"bitLockerAllowStandardUserEncryption\":true,\"bitLockerSyntheticSystemDrivePolicybitLockerDriveRecovery\":true,\"applicationGuardAllowPrintToPDF\":false,\"applicationGuardAllowPrintToXPS\":false,\"applicationGuardAllowPrintToLocalPrinters\":false,\"applicationGuardAllowPrintToNetworkPrinters\":false,\"bitLockerFixedDrivePolicy\":{\"requireEncryptionForWriteAccess\":false,\"recoveryOptions\":null,\"encryptionMethod\":null},\"bitLockerRemovableDrivePolicy\":{\"requireEncryptionForWriteAccess\":false,\"encryptionMethod\":null},\"bitLockerSystemDrivePolicy\":{\"startupAuthenticationRequired\":true,\"startupAuthenticationTpmUsage\":\"allowed\",\"startupAuthenticationTpmPinUsage\":\"allowed\",\"startupAuthenticationTpmKeyUsage\":\"allowed\",\"startupAuthenticationTpmPinAndKeyUsage\":\"allowed\",\"startupAuthenticationBlockWithoutTpmChip\":false,\"minimumPinLength\":null,\"recoveryOptions\":{\"blockDataRecoveryAgent\":false,\"recoveryPasswordUsage\":\"allowed\",\"recoveryKeyUsage\":\"allowed\",\"enableRecoveryInformationSaveToStore\":true,\"recoveryInformationToStore\":\"passwordAndKey\",\"enableBitLockerAfterRecoveryInformationToStore\":true},\"prebootRecoveryEnableMessageAndUrl\":false,\"encryptionMethod\":null},\"firewallProfileDomain\":null,\"firewallProfilePrivate\":null,\"firewallProfilePublic\":null,\"deviceGuardEnableVirtualizationBasedSecurity\":false,\"deviceGuardEnableSecureBootWithDMA\":false}", - "Type": "Device", - "GUID": "7e06b0de-0469-4aae-89be-d83c44b5799f" -} +{ + "Displayname": "CIPP: Enable Bitlocker Encryption for OS drives", + "Description": "Enables Bitlocker and stores the key in Azure AD for system Drives", + "RAWJson": "{\"id\":\"00000000-0000-0000-0000-000000000000\",\"displayName\":\"CIPP: Enable Bitlocker Encryption\",\"roleScopeTagIds\":[\"0\"],\"@odata.type\":\"#microsoft.graph.windows10EndpointProtectionConfiguration\",\"applicationGuardEnabledOptions\":\"notConfigured\",\"firewallCertificateRevocationListCheckMethod\":\"deviceDefault\",\"firewallPacketQueueingMethod\":\"deviceDefault\",\"deviceGuardLocalSystemAuthorityCredentialGuardSettings\":\"notConfigured\",\"defenderSecurityCenterNotificationsFromApp\":\"notConfigured\",\"windowsDefenderTamperProtection\":\"notConfigured\",\"defenderSecurityCenterITContactDisplay\":\"notConfigured\",\"xboxServicesAccessoryManagementServiceStartupMode\":\"manual\",\"xboxServicesLiveAuthManagerServiceStartupMode\":\"manual\",\"xboxServicesLiveGameSaveServiceStartupMode\":\"manual\",\"xboxServicesLiveNetworkingServiceStartupMode\":\"manual\",\"applicationGuardBlockClipboardSharing\":\"notConfigured\",\"defenderPreventCredentialStealingType\":\"notConfigured\",\"defenderAdobeReaderLaunchChildProcess\":\"notConfigured\",\"defenderOfficeCommunicationAppsLaunchChildProcess\":\"notConfigured\",\"defenderAdvancedRansomewareProtectionType\":\"notConfigured\",\"defenderNetworkProtectionType\":\"notConfigured\",\"localSecurityOptionsFormatAndEjectOfRemovableMediaAllowedUser\":\"notConfigured\",\"localSecurityOptionsSmartCardRemovalBehavior\":\"lockWorkstation\",\"localSecurityOptionsInformationDisplayedOnLockScreen\":\"notConfigured\",\"localSecurityOptionsMinimumSessionSecurityForNtlmSspBasedClients\":\"none\",\"localSecurityOptionsMinimumSessionSecurityForNtlmSspBasedServers\":\"none\",\"lanManagerAuthenticationLevel\":\"lmAndNltm\",\"localSecurityOptionsAdministratorElevationPromptBehavior\":\"notConfigured\",\"localSecurityOptionsStandardUserElevationPromptBehavior\":\"notConfigured\",\"userRightsAccessCredentialManagerAsTrustedCaller\":null,\"userRightsLocalLogOn\":null,\"userRightsAllowAccessFromNetwork\":null,\"userRightsActAsPartOfTheOperatingSystem\":null,\"userRightsBackupData\":null,\"userRightsChangeSystemTime\":null,\"userRightsCreateGlobalObjects\":null,\"userRightsCreatePageFile\":null,\"userRightsCreatePermanentSharedObjects\":null,\"userRightsCreateSymbolicLinks\":null,\"userRightsCreateToken\":null,\"userRightsDebugPrograms\":null,\"userRightsBlockAccessFromNetwork\":null,\"userRightsDenyLocalLogOn\":null,\"userRightsRemoteDesktopServicesLogOn\":null,\"userRightsDelegation\":null,\"userRightsGenerateSecurityAudits\":null,\"userRightsImpersonateClient\":null,\"userRightsIncreaseSchedulingPriority\":null,\"userRightsLoadUnloadDrivers\":null,\"userRightsLockMemory\":null,\"userRightsManageAuditingAndSecurityLogs\":null,\"userRightsManageVolumes\":null,\"userRightsModifyFirmwareEnvironment\":null,\"userRightsModifyObjectLabels\":null,\"userRightsProfileSingleProcess\":null,\"userRightsRemoteShutdown\":null,\"userRightsRestoreData\":null,\"userRightsTakeOwnership\":null,\"bitLockerRecoveryPasswordRotation\":\"notConfigured\",\"bitLockerPrebootRecoveryMsgURLOption\":\"default\",\"bitLockerEncryptDevice\":true,\"bitLockerDisableWarningForOtherDiskEncryption\":true,\"bitLockerAllowStandardUserEncryption\":true,\"bitLockerSyntheticSystemDrivePolicybitLockerDriveRecovery\":true,\"applicationGuardAllowPrintToPDF\":false,\"applicationGuardAllowPrintToXPS\":false,\"applicationGuardAllowPrintToLocalPrinters\":false,\"applicationGuardAllowPrintToNetworkPrinters\":false,\"bitLockerFixedDrivePolicy\":{\"requireEncryptionForWriteAccess\":false,\"recoveryOptions\":null,\"encryptionMethod\":null},\"bitLockerRemovableDrivePolicy\":{\"requireEncryptionForWriteAccess\":false,\"encryptionMethod\":null},\"bitLockerSystemDrivePolicy\":{\"startupAuthenticationRequired\":true,\"startupAuthenticationTpmUsage\":\"allowed\",\"startupAuthenticationTpmPinUsage\":\"allowed\",\"startupAuthenticationTpmKeyUsage\":\"allowed\",\"startupAuthenticationTpmPinAndKeyUsage\":\"allowed\",\"startupAuthenticationBlockWithoutTpmChip\":false,\"minimumPinLength\":null,\"recoveryOptions\":{\"blockDataRecoveryAgent\":false,\"recoveryPasswordUsage\":\"allowed\",\"recoveryKeyUsage\":\"allowed\",\"enableRecoveryInformationSaveToStore\":true,\"recoveryInformationToStore\":\"passwordAndKey\",\"enableBitLockerAfterRecoveryInformationToStore\":true},\"prebootRecoveryEnableMessageAndUrl\":false,\"encryptionMethod\":null},\"firewallProfileDomain\":null,\"firewallProfilePrivate\":null,\"firewallProfilePublic\":null,\"deviceGuardEnableVirtualizationBasedSecurity\":false,\"deviceGuardEnableSecureBootWithDMA\":false}", + "Type": "Device", + "GUID": "7e06b0de-0469-4aae-89be-d83c44b5799f.IntuneTemplate.json" +} diff --git a/Config/8d57edc3-071d-42e7-86b1-126720645ac6.TransportRuleTemplate.json b/Config/8d57edc3-071d-42e7-86b1-126720645ac6.TransportRuleTemplate.json new file mode 100644 index 000000000000..cb8508809c87 --- /dev/null +++ b/Config/8d57edc3-071d-42e7-86b1-126720645ac6.TransportRuleTemplate.json @@ -0,0 +1,34 @@ +{ + "name": "Block Specific email addresses with a hard rejection", + "applyome": false, + "attachmenthasexecutablecontent": false, + "attachmentispasswordprotected": false, + "attachmentisunsupported": false, + "attachmentprocessinglimitexceeded": false, + "comments": "\n", + "deletemessage": false, + "exceptifattachmenthasexecutablecontent": false, + "exceptifattachmentispasswordprotected": false, + "exceptifattachmentisunsupported": false, + "exceptifattachmentprocessinglimitexceeded": false, + "exceptifhasnoclassification": false, + "exceptifhassenderoverride": false, + "from": ["SomeSpammer@spam.com"], + "hasnoclassification": false, + "hassenderoverride": false, + "mode": "enforce", + "moderatemessagebymanager": false, + "quarantine": false, + "recipientaddresstype": "resolved", + "rejectmessageenhancedstatuscode": "5.7.1", + "rejectmessagereasontext": "Your email has been rejected.", + "removeome": false, + "removeomev2": false, + "removermsattachmentencryption": false, + "routemessageoutboundrequiretls": false, + "ruleerroraction": "ignore", + "rulesubtype": "none", + "senderaddresslocation": "header", + "stopruleprocessing": false, + "uselegacyregex": false +} diff --git a/Config/CIPPDefaultTable.BPATemplate.json b/Config/CIPPDefaultTable.BPATemplate.json new file mode 100644 index 000000000000..735012b4bd77 --- /dev/null +++ b/Config/CIPPDefaultTable.BPATemplate.json @@ -0,0 +1,194 @@ +{ + "name": "CIPP Best Practices v1.5 - Table view", + "style": "Table", + "Fields": [ + { + "name": "PasswordNeverExpires", + "API": "Graph", + "URL": "https://graph.microsoft.com/beta/domains", + "ExtractFields": ["passwordValidityPeriodInDays"], + "where": "$_.passwordValidityPeriodInDays -eq 2147483647", + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Password Never Expires", + "value": "PasswordNeverExpires", + "formatter": "bool" + } + ] + }, + { + "name": "OAuthAppConsent", + "API": "Graph", + "URL": "https://graph.microsoft.com/v1.0/policies/authorizationPolicy?$select=defaultUserRolePermissions", + "ExtractFields": ["defaultuserrolepermissions"], + "where": "'ManagePermissionGrantsForSelf.microsoft-user-default-legacy' -notin $_.defaultuserrolepermissions.permissionGrantPoliciesAssigned", + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "OAuth App Consent", + "value": "OAuthAppConsent", + "formatter": "bool" + } + ] + }, + { + "name": "UnifiedAuditLog", + "API": "Exchange", + "Command": "Get-AdminAuditLogConfig", + "ExtractFields": ["UnifiedAuditLogIngestionEnabled"], + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Unified Audit Log", + "value": "UnifiedAuditLog", + "formatter": "bool" + } + ] + }, + { + "name": "MFANudgeState", + "API": "Graph", + "URL": "https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy", + "ExtractFields": ["registrationEnforcement"], + "StoreAs": "bool", + "where": "$_.registrationEnforcement.authenticationMethodsRegistrationCampaign.state -eq 'Enabled'", + "FrontendFields": [ + { + "name": "MFA Registration Campaign Enabled", + "value": "MFANudgeState", + "formatter": "bool" + } + ] + }, + { + "name": "TAPEnabled", + "API": "Graph", + "URL": "https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/TemporaryAccessPass", + "ExtractFields": ["State"], + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Temporary Access Pass Enabled", + "value": "TAPEnabled", + "formatter": "bool" + } + ] + }, + { + "name": "SecureDefaultState", + "API": "Graph", + "URL": "https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy", + "ExtractFields": ["IsEnabled"], + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Secure Defaults State Enabled", + "value": "SecureDefaultState", + "formatter": "warnBool" + } + ] + }, + { + "name": "AnonymousPrivacyReports", + "API": "Graph", + "URL": "https://graph.microsoft.com/beta/admin/reportSettings", + "ExtractFields": ["displayConcealedNames"], + "StoreAs": "bool", + "where": "$_.displayConcealedNames -eq $false", + "FrontendFields": [ + { + "name": "Anonymous Privacy Reports", + "value": "AnonymousPrivacyReports", + "formatter": "reverseBool" + } + ] + }, + { + "name": "MessageCopyforSentAsDisabled", + "API": "Exchange", + "Command": "Get-Mailbox", + "Parameters": { + "RecipientTypeDetails": ["SharedMailbox", "UserMailbox"] + }, + "where": "$_.MessageCopyForSentAsEnabled -eq $false", + "ExtractFields": ["userprincipalname", "messageCopyForSentAsEnabled"], + "StoreAs": "JSON", + "FrontendFields": [ + { + "name": "Message Copy for Sent-As Disabled", + "formatter": "table", + "value": "MessageCopyforSentAsDisabled" + } + ] + }, + { + "name": "SharedMailboxeswithenabledusers", + "API": "Exchange", + "Command": "Get-Mailbox", + "Parameters": { + "RecipientTypeDetails": "SharedMailbox" + }, + "where": "$_.accountDisabled -eq $false", + "ExtractFields": ["userprincipalname", "accountDisabled"], + "StoreAs": "JSON", + "FrontendFields": [ + { + "name": "Shared Mailboxes with enabled users", + "formatter": "table", + "value": "SharedMailboxeswithenabledusers" + } + ] + }, + { + "name": "Unusedlicenses", + "API": "CIPPFunction", + "Command": "Get-CIPPLicenseOverview", + "ExtractFields": [ + "License", + "TotalLicenses", + "availableUnits", + "CountUsed" + ], + "StoreAs": "JSON", + "where": "$_.availableUnits -gt 0", + "FrontendFields": [ + { + "name": "Unused licenses", + "formatter": "table", + "value": "Unusedlicenses" + } + ] + }, + { + "name": "CurrentSecureScore", + "API": "Graph", + "URL": "https://graph.microsoft.com/beta/security/secureScores?$top=1", + "Parameters": { + "Nopagination": true + }, + "ExtractFields": ["currentScore", "maxScore", "averageComparativeScores"], + "StoreAs": "JSON", + "FrontendFields": [ + { + "name": "Current Secure Score", + "value": "CurrentSecureScore.currentScore / CurrentSecureScore.maxScore * 100", + "formatter": "math", + "showAs": "percentage" + }, + { + "name": "Average Comparative Score (All Tenants)", + "value": "CurrentSecureScore.averageComparativeScores[0].averageScore / CurrentSecureScore.maxScore * 100", + "formatter": "math", + "showAs": "percentage" + }, + { + "name": "Average Comparative Score (Similiar Size Tenants)", + "value": "CurrentSecureScore.averageComparativeScores[1].averageScore / CurrentSecureScore.maxScore * 100", + "formatter": "math", + "showAs": "percentage" + } + ] + } + ] +} diff --git a/Config/CIPPDefaultTenantPage.BPATemplate.json b/Config/CIPPDefaultTenantPage.BPATemplate.json new file mode 100644 index 000000000000..aa706369f119 --- /dev/null +++ b/Config/CIPPDefaultTenantPage.BPATemplate.json @@ -0,0 +1,155 @@ +{ + "name": "CIPP Best Practices v1.0 - Tenant view", + "style": "Tenant", + "Fields": [ + { + "name": "PasswordNeverExpires", + "UseExistingInfo": true, + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Password Never Expires", + "value": "PasswordNeverExpires", + "formatter": "bool", + "desc": "This setting shows if your environment has enabled the password never expires setting. This setting is expected to be set to 'No'" + } + ] + }, + { + "name": "OAuthAppConsent", + "UseExistingInfo": true, + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "OAuth App Consent", + "value": "OAuthAppConsent", + "formatter": "bool", + "desc": "This setting shows if your environment has enabled OAuth App Consent. This setting is expected to be set to 'Yes'" + } + ] + }, + { + "name": "UnifiedAuditLog", + "UseExistingInfo": true, + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Unified Audit Log", + "value": "UnifiedAuditLog", + "formatter": "bool", + "desc": "This setting shows if your environment has enabled the unified audit log. This setting is expected to be set to 'Yes'" + } + ] + }, + { + "name": "MFANudgeState", + "UseExistingInfo": true, + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "MFA Registration Campaign Enabled", + "value": "MFANudgeState", + "formatter": "bool", + "desc": "This setting shows if your environment has enabled the MFA registration campaign, also known as the MFA Nudge. This setting is recommended to be set to 'Yes'" + } + ] + }, + { + "name": "TAPEnabled", + "UseExistingInfo": true, + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Temporary Access Pass Enabled", + "value": "TAPEnabled", + "formatter": "bool", + "desc": "This setting shows if your environment has enabled the temporary access pass feature." + } + ] + }, + { + "name": "SecureDefaultState", + "UseExistingInfo": true, + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Secure Defaults State Enabled", + "value": "SecureDefaultState", + "formatter": "warnBool", + "desc": "This setting shows if your environment has enabled the secure defaults state. If you are using Conditional Access this setting may be set to `No`" + } + ] + }, + { + "name": "AnonymousPrivacyReports", + "UseExistingInfo": true, + "StoreAs": "bool", + "FrontendFields": [ + { + "name": "Anonymous Privacy Reports", + "value": "AnonymousPrivacyReports", + "formatter": "reverseBool", + "desc": "This setting shows if your environment has enabled the anonymous privacy reports, these will need to be disabled to be able to view mailboxes and onedrive reports" + } + ] + }, + { + "name": "MessageCopyforSentAsDisabled", + "UseExistingInfo": true, + "StoreAs": "JSON", + "FrontendFields": [ + { + "name": "Message Copy for Sent-As Disabled", + "formatter": "table", + "value": "MessageCopyforSentAsDisabled", + "desc": "These are the mailboxes that have the MessageCopyForSentAsDisabled setting enabled." + } + ] + }, + { + "name": "SharedMailboxeswithenabledusers", + "UseExistingInfo": true, + "StoreAs": "JSON", + "FrontendFields": [ + { + "name": "Shared Mailboxes with enabled users", + "formatter": "table", + "value": "SharedMailboxeswithenabledusers", + "desc": "These are the shared mailboxes that have enabled users." + } + ] + }, + { + "name": "Unusedlicenses", + "UseExistingInfo": true, + "StoreAs": "JSON", + "FrontendFields": [ + { + "name": "Unused licenses", + "formatter": "table", + "value": "Unusedlicenses", + "desc": "These are the licenses that are not assigned to an user, but have been purchased." + } + ] + }, + { + "name": "CurrentSecureScore", + "UseExistingInfo": true, + "StoreAs": "JSON", + "FrontendFields": [ + { + "name": "Current Secure Score", + "value": "CurrentSecureScore.currentScore", + "desc": "The current Secure Score for this tenant. This is the sum of all the individual controls that have been implemented.", + "formatter": "number" + }, + { + "name": "Max Secure Score", + "value": "CurrentSecureScore.maxScore", + "desc": "The maximum Secure Score for this tenant. This is the sum of all the individual controls that can be implemented.", + "formatter": "number" + } + ] + } + ] +} diff --git a/Config/CIPPTenantFeatures.BPATemplate.json b/Config/CIPPTenantFeatures.BPATemplate.json new file mode 100644 index 000000000000..19cc09628a4f --- /dev/null +++ b/Config/CIPPTenantFeatures.BPATemplate.json @@ -0,0 +1,33 @@ +{ + "name": "CIPP Tenant Feature Licensing", + "style": "Table", + "Fields": [ + { + "name": "AssignedPlans", + "UseExistingInfo": false, + "ExtractFields": ["AADPremiumService", "exchange", "SharePoint"], + "FrontendFields": [ + { + "name": "Entra ID Premium", + "value": "AssignedPlans.AADPremiumService", + "formatter": "bool" + }, + { + "name": "Exchange", + "value": "AssignedPlans.exchange", + "formatter": "bool" + }, + { + "name": "SharePoint", + "value": "AssignedPlans.SharePoint", + "formatter": "bool" + } + ], + "desc": "Entra ID Premium Status", + "StoreAs": "JSON", + "API": "CIPPFunction", + "Command": "Get-CIPPTenantCapabilities", + "Parameters": {} + } + ] +} diff --git a/Config/CyberEssentials.BPATemplate.json b/Config/CyberEssentials.BPATemplate.json new file mode 100644 index 000000000000..af2a2476ce0e --- /dev/null +++ b/Config/CyberEssentials.BPATemplate.json @@ -0,0 +1,101 @@ +{ + "name": "CIPP Cyber Essentials Helper - Tenant view", + "style": "Tenant", + "Fields": [ + { + "name": "deviceregister", + "UseExistingInfo": false, + "FrontendFields": [ + { + "name": "Device Register", + "value": "deviceregister", + "desc": "These are all devices found in M365 to add to your CE Device Register.", + "formatter": "table" + } + ], + "StoreAs": "JSON", + "API": "Graph", + "ExtractFields": [ + "deviceName", + "lastSyncDateTime", + "osVersion", + "userPrincipalName", + "complianceState" + ], + "URL": "https://graph.microsoft.com/beta/deviceManagement/managedDevices" + }, + { + "name": "adminsTable", + "UseExistingInfo": false, + "FrontendFields": [ + { + "name": "Admins Table", + "value": "adminsTable", + "desc": "The list of admin accounts in your M365 environment. These must all be named and attached to actual users.", + "formatter": "table" + } + ], + "StoreAs": "JSON", + "API": "Graph", + "ExtractFields": ["displayName", "userPrincipalName"], + "URL": "https://graph.microsoft.com/beta/directoryRoles/roleTemplateId=62e90394-69f5-4237-9190-012177145e10/members" + }, + { + "name": "windowsProtectionState", + "UseExistingInfo": false, + "FrontendFields": [ + { + "name": "Defender List", + "value": "windowsProtectionState", + "formatter": "table", + "desc": "List of Defender protected workstations. Add this to your Malware Protection Audit List" + } + ], + "StoreAs": "JSON", + "API": "Graph", + "ExtractFields": ["windowsProtectionState"], + "Parameters": {}, + "URL": "https://graph.microsoft.com/beta/deviceManagement/managedDevices?$expand=windowsProtectionState" + }, + { + "name": "detectedApps", + "UseExistingInfo": false, + "FrontendFields": [ + { + "name": "Detected Apps", + "value": "detectedApps", + "desc": "All Detected Software and their version. Add this to your software audit list", + "formatter": "table" + } + ], + "StoreAs": "JSON", + "API": "Graph", + "ExtractFields": ["displayName", "version", "platform", "publisher"], + "URL": "https://graph.microsoft.com/beta/deviceManagement/detectedApps" + }, + { + "name": "userRegistrationDetails", + "UseExistingInfo": false, + "FrontendFields": [ + { + "name": "User Registration Details", + "desc": "All MFA settings (Requires a P1 Subscription)", + "value": "userRegistrationDetails", + "formatter": "table" + } + ], + "StoreAs": "JSON", + "API": "Graph", + "ExtractFields": [ + "userDisplayName", + "isAdmin", + "isMFARegistered", + "defaultMFAMethod" + ], + "URL": "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails", + "Parameters": { + "asApp": "True" + } + } + ] +} diff --git a/Config/ExcludeSkuList.JSON b/Config/ExcludeSkuList.JSON new file mode 100644 index 000000000000..e2c80e82a1e0 --- /dev/null +++ b/Config/ExcludeSkuList.JSON @@ -0,0 +1,186 @@ +[ + { + "GUID": "90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96", + "Product_Display_Name": "Business Apps (free)" + }, + { + "GUID": "90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96", + "Product_Display_Name": "Business Apps (free)" + }, + { + "GUID": "f30db892-07e9-47e9-837c-80727f46fd3d", + "Product_Display_Name": "MICROSOFT FLOW FREE" + }, + { + "GUID": "f30db892-07e9-47e9-837c-80727f46fd3d", + "Product_Display_Name": "MICROSOFT FLOW FREE" + }, + { + "GUID": "f30db892-07e9-47e9-837c-80727f46fd3d", + "Product_Display_Name": "MICROSOFT FLOW FREE" + }, + { + "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", + "Product_Display_Name": "MICROSOFT TEAMS (FREE)" + }, + { + "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", + "Product_Display_Name": "MICROSOFT TEAMS (FREE)" + }, + { + "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", + "Product_Display_Name": "MICROSOFT TEAMS (FREE)" + }, + { + "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", + "Product_Display_Name": "MICROSOFT TEAMS (FREE)" + }, + { + "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", + "Product_Display_Name": "MICROSOFT TEAMS (FREE)" + }, + { + "GUID": "16ddbbfc-09ea-4de2-b1d7-312db6112d70", + "Product_Display_Name": "MICROSOFT TEAMS (FREE)" + }, + { + "GUID": "a403ebcc-fae0-4ca2-8c8c-7a907fd6c235", + "Product_Display_Name": "Power BI (free)" + }, + { + "GUID": "a403ebcc-fae0-4ca2-8c8c-7a907fd6c235", + "Product_Display_Name": "Power BI (free)" + }, + { + "GUID": "61e6bd70-fbdb-4deb-82ea-912842f39431", + "Product_Display_Name": "Dynamics 365 Customer Service Insights Trial" + }, + { + "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", + "Product_Display_Name": "Dynamics 365 Customer Voice Trial" + }, + { + "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", + "Product_Display_Name": "Dynamics 365 Customer Voice Trial" + }, + { + "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", + "Product_Display_Name": "Dynamics 365 Customer Voice Trial" + }, + { + "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", + "Product_Display_Name": "Dynamics 365 Customer Voice Trial" + }, + { + "GUID": "bc946dac-7877-4271-b2f7-99d2db13cd2c", + "Product_Display_Name": "Dynamics 365 Customer Voice Trial" + }, + { + "GUID": "338148b6-1b11-4102-afb9-f92b6cdc0f8d", + "Product_Display_Name": "DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS" + }, + { + "GUID": "338148b6-1b11-4102-afb9-f92b6cdc0f8d", + "Product_Display_Name": "DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS" + }, + { + "GUID": "fcecd1f9-a91e-488d-a918-a96cdb6ce2b0", + "Product_Display_Name": "Microsoft Dynamics AX7 User Trial" + }, + { + "GUID": "fcecd1f9-a91e-488d-a918-a96cdb6ce2b0", + "Product_Display_Name": "Microsoft Dynamics AX7 User Trial" + }, + { + "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", + "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" + }, + { + "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", + "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" + }, + { + "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", + "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" + }, + { + "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", + "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" + }, + { + "GUID": "dcb1a3ae-b33f-4487-846a-a640262fadf4", + "Product_Display_Name": "Microsoft Power Apps Plan 2 Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "74fbf1bb-47c6-4796-9623-77dc7371723b", + "Product_Display_Name": "Microsoft Teams Trial" + }, + { + "GUID": "606b54a9-78d8-4298-ad8b-df6ef4481c80", + "Product_Display_Name": "Power Virtual Agents Viral Trial" + }, + { + "GUID": "606b54a9-78d8-4298-ad8b-df6ef4481c80", + "Product_Display_Name": "Power Virtual Agents Viral Trial" + }, + { + "GUID": "606b54a9-78d8-4298-ad8b-df6ef4481c80", + "Product_Display_Name": "Power Virtual Agents Viral Trial" + }, + { + "GUID": "1f2f344a-700d-42c9-9427-5cea1d5d7ba6", + "Product_Display_Name": "MICROSOFT STREAM" + }, + { + "GUID": "1f2f344a-700d-42c9-9427-5cea1d5d7ba6", + "Product_Display_Name": "MICROSOFT STREAM" + }, + { + "GUID": "6470687e-a428-4b7a-bef2-8a291ad947c9", + "Product_Display_Name": "WINDOWS STORE FOR BUSINESS" + }, + { + "GUID": "6470687e-a428-4b7a-bef2-8a291ad947c9", + "Product_Display_Name": "WINDOWS STORE FOR BUSINESS" + }, + { + "GUID": "710779e8-3d4a-4c88-adb9-386c958d1fdf", + "Product_Display_Name": "MICROSOFT TEAMS EXPLORATORY" + } +] diff --git a/Config/SchedulerRateLimits.json b/Config/SchedulerRateLimits.json new file mode 100644 index 000000000000..3d2c65716af0 --- /dev/null +++ b/Config/SchedulerRateLimits.json @@ -0,0 +1,10 @@ +[ + { + "Command": "Sync-CIPPExtensionData", + "MaxRequests": 50 + }, + { + "Command": "Push-CIPPExtensionData", + "MaxRequests": 30 + } +] \ No newline at end of file diff --git a/Config/SharePoint.BPATemplate.json b/Config/SharePoint.BPATemplate.json new file mode 100644 index 000000000000..fd279d368fda --- /dev/null +++ b/Config/SharePoint.BPATemplate.json @@ -0,0 +1,70 @@ +{ + "name": "CIPP SharePoint Report v1.0 - Table view", + "style": "Table", + "Fields": [ + { + "name": "SharepointSettings", + "API": "Graph", + "URL": "https://graph.microsoft.com/beta/admin/sharepoint/settings", + "Parameters": { + "asApp": "True" + }, + "ExtractFields": [ + "sharingCapability", + "isMacSyncAppEnabled", + "isResharingByExternalUsersEnabled", + "isUnmanagedSyncAppForTenantRestricted", + "isSiteCreationEnabled", + "deletedUserPersonalSiteRetentionPeriodInDays" + ], + "StoreAs": "JSON", + "FrontendFields": [ + { + "name": "Sharing capability", + "value": "SharepointSettings.sharingCapability", + "formatter": "string" + }, + { + "name": "Mac Sync Enabled", + "value": "SharepointSettings.isMacSyncAppEnabled", + "formatter": "warnBool" + }, + { + "name": "Resharing by external users", + "value": "SharepointSettings.isResharingByExternalUsersEnabled", + "formatter": "bool" + }, + { + "name": "Allow users to sync from unmanaged devices", + "value": "SharepointSettings.isUnmanagedSyncAppForTenantRestricted", + "formatter": "reverseBool" + }, + { + "name": "Site creation by standard users enabled", + "value": "SharepointSettings.isSiteCreationEnabled", + "formatter": "bool" + }, + { + "name": "Deleted user data rention(days)", + "value": "SharepointSettings.deletedUserPersonalSiteRetentionPeriodInDays", + "formatter": "string" + } + ] + }, + { + "name": "WebtimeOut", + "API": "Graph", + "URL": "https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies", + "ExtractFields": ["definition"], + "StoreAs": "bool", + "where": "$_.definition -like '*WebSessionIdleTimeout*'", + "FrontendFields": [ + { + "name": "Web Time-Out enabled", + "value": "WebtimeOut", + "formatter": "bool" + } + ] + } + ] +} diff --git a/Config/StandardsTable.BPATemplate.json b/Config/StandardsTable.BPATemplate.json new file mode 100644 index 000000000000..858b1b462fca --- /dev/null +++ b/Config/StandardsTable.BPATemplate.json @@ -0,0 +1,534 @@ +{ + "name": "CIPP Standards v1.0 - Table view", + "style": "Table", + "Fields": [ + { + "name": "ActivityBasedTimeout", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "ActivityBasedTimeout", + "value": "ActivityBasedTimeout" + } + ] + }, + { + "name": "softwareOath", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "softwareOath", + "value": "softwareOath" + } + ] + }, + { + "name": "MSAuthenticator", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "MSAuthenticator", + "value": "MSAuthenticator" + } + ] + }, + { + "name": "AnonReport", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "AnonReport", + "value": "AnonReport" + } + ] + }, + { + "name": "AuditLog", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "AuditLog", + "value": "AuditLog" + } + ] + }, + { + "name": "AutoExpandingArchive", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "AutoExpandingArchive", + "value": "AutoExpandingArchive" + } + ] + }, + { + "name": "DelegateSentItems", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "DelegateSentItems", + "value": "DelegateSentItems" + } + ] + }, + { + "name": "DeletedUserRentention", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DeletedUserRentention", + "value": "DeletedUserRentention" + } + ] + }, + { + "name": "DisableBasicAuthSMTP", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DisableBasicAuthSMTP", + "value": "DisableBasicAuthSMTP" + } + ] + }, + { + "name": "DisableGuestDirectory", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DisableGuestDirectory", + "value": "DisableGuestDirectory" + } + ] + }, + { + "name": "DisableGuests", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "DisableGuests", + "value": "DisableGuests" + } + ] + }, + { + "name": "DisableM365GroupUsers", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DisableM365GroupUsers", + "value": "DisableM365GroupUsers" + } + ] + }, + { + "name": "MacSync", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "MacSync", + "value": "MacSync" + } + ] + }, + { + "name": "DisableReshare", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DisableReshare", + "value": "DisableReshare" + } + ] + }, + { + "name": "DisableSecurityGroupUsers", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DisableSecurityGroupUsers", + "value": "DisableSecurityGroupUsers" + } + ] + }, + { + "name": "DisableSharedMailbox", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "DisableSharedMailbox", + "value": "DisableSharedMailbox" + } + ] + }, + { + "name": "DisableTenantCreation", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DisableTenantCreation", + "value": "DisableTenantCreation" + } + ] + }, + { + "name": "DisableUserSiteCreate", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DisableUserSiteCreate", + "value": "DisableUserSiteCreate" + } + ] + }, + { + "name": "DisableViva", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "DisableViva", + "value": "DisableViva" + } + ] + }, + { + "name": "EnableAppConsentAdminRequests", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "EnableAppConsentAdminRequests", + "value": "EnableAppConsentAdminRequests" + } + ] + }, + { + "name": "EnableFIDO2", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "EnableFIDO2", + "value": "EnableFIDO2" + } + ] + }, + { + "name": "EnableOnlineArchiving", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "EnableOnlineArchiving", + "value": "EnableOnlineArchiving" + } + ] + }, + { + "name": "ExcludedfileExt", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "ExcludedfileExt", + "value": "ExcludedfileExt" + } + ] + }, + { + "name": "intuneDeviceReg", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "intuneDeviceReg", + "value": "intuneDeviceReg" + } + ] + }, + { + "name": "intuneDeviceRetirementDays", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "intuneDeviceRetirementDays", + "value": "intuneDeviceRetirementDays" + } + ] + }, + { + "name": "intuneRequireMFA", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "intuneRequireMFA", + "value": "intuneRequireMFA" + } + ] + }, + { + "name": "laps", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "laps", + "value": "laps" + } + ] + }, + { + "name": "MailContacts", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "MailContacts", + "value": "MailContacts" + } + ] + }, + { + "name": "NudgeMFA", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "NudgeMFA", + "value": "NudgeMFA" + } + ] + }, + { + "name": "OauthConsent", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "OauthConsent", + "value": "OauthConsent" + } + ] + }, + { + "name": "OauthConsentLowSec", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "OauthConsentLowSec", + "value": "OauthConsentLowSec" + } + ] + }, + { + "name": "OutboundSpamAlert", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "OutboundSpamAlert", + "value": "OutboundSpamAlert" + } + ] + }, + { + "name": "PasswordExpireDisabled", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "PasswordExpireDisabled", + "value": "PasswordExpireDisabled" + } + ] + }, + { + "name": "companionAppAllowedState", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "companionAppAllowedState", + "value": "companionAppAllowedState" + } + ] + }, + { + "name": "PWdisplayAppInformationRequiredState", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "PWdisplayAppInformationRequiredState", + "value": "PWdisplayAppInformationRequiredState" + } + ] + }, + { + "name": "DKIM", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "DKIM", + "value": "DKIM" + } + ] + }, + { + "name": "SecurityDefaults", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "warnBool", + "name": "SecurityDefaults", + "value": "SecurityDefaults" + } + ] + }, + { + "name": "SendFromAlias", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "bool", + "name": "SendFromAlias", + "value": "SendFromAlias" + } + ] + }, + { + "name": "SendReceiveLimit", + "StoreAs": "json", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "table", + "name": "SendReceiveLimit", + "value": "SendReceiveLimit" + } + ] + }, + { + "name": "sharingCapability", + "StoreAs": "string", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "string", + "name": "sharingCapability", + "value": "sharingCapability" + } + ] + }, + { + "name": "SpoofingWarnings", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "warnBool", + "name": "SpoofingWarnings", + "value": "SpoofingWarnings" + } + ] + }, + { + "name": "TemporaryAccessPass", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "warnBool", + "name": "TemporaryAccessPass", + "value": "TemporaryAccessPass" + } + ] + }, + { + "name": "unmanagedSync", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "warnBool", + "name": "unmanagedSync", + "value": "unmanagedSync" + } + ] + }, + { + "name": "UserSubmissionPolicy", + "StoreAs": "bool", + "UseExistingInfo": true, + "FrontendFields": [ + { + "formatter": "warnBool", + "name": "UserSubmissionPolicy", + "value": "UserSubmissionPolicy" + } + ] + } + ] +} diff --git a/Config/adf9f6d1-36fb-438b-a82b-71f3af402b6c.TransportRuleTemplate.json b/Config/adf9f6d1-36fb-438b-a82b-71f3af402b6c.TransportRuleTemplate.json new file mode 100644 index 000000000000..a92d2ae442d0 --- /dev/null +++ b/Config/adf9f6d1-36fb-438b-a82b-71f3af402b6c.TransportRuleTemplate.json @@ -0,0 +1,35 @@ +{ + "name": "Block External Auto-forwarding", + "applyome": false, + "attachmenthasexecutablecontent": false, + "attachmentispasswordprotected": false, + "attachmentisunsupported": false, + "attachmentprocessinglimitexceeded": false, + "deletemessage": false, + "exceptifattachmenthasexecutablecontent": false, + "exceptifattachmentispasswordprotected": false, + "exceptifattachmentisunsupported": false, + "exceptifattachmentprocessinglimitexceeded": false, + "exceptifhasnoclassification": false, + "exceptifhassenderoverride": false, + "fromscope": "inorganization", + "hasnoclassification": false, + "hassenderoverride": false, + "messagetypematches": "autoforward", + "mode": "enforce", + "moderatemessagebymanager": false, + "quarantine": false, + "recipientaddresstype": "resolved", + "rejectmessageenhancedstatuscode": "5.7.1", + "rejectmessagereasontext": "to improve security, auto-forwarding rules to external addresses has been disabled. please contact your Microsoft partner if you'd like to set up an exception.", + "removeome": false, + "removeomev2": false, + "removermsattachmentencryption": false, + "routemessageoutboundrequiretls": false, + "ruleerroraction": "ignore", + "rulesubtype": "none", + "senderaddresslocation": "header", + "senttoscope": "notinorganization", + "stopruleprocessing": false, + "uselegacyregex": false +} diff --git a/Config/b39b8d85-1531-420e-baeb-b388f565418b.TransportRuleTemplate.json b/Config/b39b8d85-1531-420e-baeb-b388f565418b.TransportRuleTemplate.json new file mode 100644 index 000000000000..0f0541e25af9 --- /dev/null +++ b/Config/b39b8d85-1531-420e-baeb-b388f565418b.TransportRuleTemplate.json @@ -0,0 +1,33 @@ +{ + "name": "if a message subject contains \"encrypt:\" encrypt message.", + "applyome": false, + "applyrightsprotectiontemplate": "encrypt", + "attachmenthasexecutablecontent": false, + "attachmentispasswordprotected": false, + "attachmentisunsupported": false, + "attachmentprocessinglimitexceeded": false, + "comments": "\n", + "deletemessage": false, + "exceptifattachmenthasexecutablecontent": false, + "exceptifattachmentispasswordprotected": false, + "exceptifattachmentisunsupported": false, + "exceptifattachmentprocessinglimitexceeded": false, + "exceptifhasnoclassification": false, + "exceptifhassenderoverride": false, + "hasnoclassification": false, + "hassenderoverride": false, + "mode": "enforce", + "moderatemessagebymanager": false, + "quarantine": false, + "recipientaddresstype": "resolved", + "removeome": false, + "removeomev2": false, + "removermsattachmentencryption": false, + "routemessageoutboundrequiretls": false, + "ruleerroraction": "ignore", + "rulesubtype": "none", + "senderaddresslocation": "header", + "stopruleprocessing": false, + "subjectcontainswords": ["encrypt:"], + "uselegacyregex": false +} diff --git a/Config/b79d0123-3105-4c5d-9f15-62cc7a7eb7e1.IntuneTemplate.json b/Config/b79d0123-3105-4c5d-9f15-62cc7a7eb7e1.IntuneTemplate.json index 987c08d764dc..2b36b4a3ed3d 100644 --- a/Config/b79d0123-3105-4c5d-9f15-62cc7a7eb7e1.IntuneTemplate.json +++ b/Config/b79d0123-3105-4c5d-9f15-62cc7a7eb7e1.IntuneTemplate.json @@ -1,7 +1,7 @@ -{ - "Displayname": "CIPP Default: Automatic Configuration of Outlook", - "Description": "Configures the first profile on a device to always use the e-mail address of the currently logged on user.", - "RAWJson": "{\"name\":\"Automatic configuration of Outlook\",\"description\":\"\",\"platforms\":\"windows10\",\"technologies\":\"mdm\",\"roleScopeTagIds\":[\"0\"],\"settings\":[{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationSetting\",\"settingInstance\":{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance\",\"settingDefinitionId\":\"user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactiveonce\",\"choiceSettingValue\":{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationChoiceSettingValue\",\"value\":\"user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactiveonce_1\",\"children\":[]}}}]}", - "Type": "Catalog", - "GUID": "b79d0123-3105-4c5d-9f15-62cc7a7eb7e1" -} +{ + "Displayname": "CIPP: Automatic Configuration of Outlook", + "Description": "Configures the first profile on a device to always use the e-mail address of the currently logged on user.", + "RAWJson": "{\"name\":\"Automatic configuration of Outlook\",\"description\":\"\",\"platforms\":\"windows10\",\"technologies\":\"mdm\",\"roleScopeTagIds\":[\"0\"],\"settings\":[{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationSetting\",\"settingInstance\":{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance\",\"settingDefinitionId\":\"user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactiveonce\",\"choiceSettingValue\":{\"@odata.type\":\"#microsoft.graph.deviceManagementConfigurationChoiceSettingValue\",\"value\":\"user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactiveonce_1\",\"children\":[]}}}]}", + "Type": "Catalog", + "GUID": "b79d0123-3105-4c5d-9f15-62cc7a7eb7e1.IntuneTemplate.json" +} diff --git a/Config/cba836bb-33b7-4c50-88be-ee80f74cbeac.CATemplate.json b/Config/cba836bb-33b7-4c50-88be-ee80f74cbeac.CATemplate.json new file mode 100644 index 000000000000..9405bc45ccf8 --- /dev/null +++ b/Config/cba836bb-33b7-4c50-88be-ee80f74cbeac.CATemplate.json @@ -0,0 +1,36 @@ +{ + "grantControls": { + "termsOfUse": [], + "builtInControls": ["mfa"], + "customAuthenticationFactors": [], + "operator": "OR" + }, + "state": "enabled", + "conditions": { + "servicePrincipalRiskLevels": [], + "userRiskLevels": [], + "deviceStates": null, + "signInRiskLevels": [], + "clientAppTypes": ["all"], + "devices": null, + "locations": null, + "applications": { + "includeApplications": ["d414ee2d-73e5-4e5b-bb16-03ef55fea597"], + "includeUserActions": [], + "includeAuthenticationContextClassReferences": [], + "excludeApplications": [] + }, + "users": { + "includeUsers": ["All"], + "excludeRoles": [], + "includeRoles": [], + "excludeUsers": [], + "includeGroups": [], + "excludeGroups": [] + }, + "platforms": null, + "times": null, + "clientApplications": null + }, + "displayName": "CIPP: Enforce Multi-factor authentication for Static Web Apps" +} diff --git a/Config/cipp-roles.json b/Config/cipp-roles.json new file mode 100644 index 000000000000..f95e32fa18c6 --- /dev/null +++ b/Config/cipp-roles.json @@ -0,0 +1,23 @@ +{ + "readonly": { + "include": ["*.Read"], + "exclude": ["CIPP.SuperAdmin.*"] + }, + "editor": { + "include": ["*.Read", "*.ReadWrite"], + "exclude": [ + "CIPP.SuperAdmin.*", + "CIPP.Admin.*", + "CIPP.AppSettings.*", + "Tenant.Standards.ReadWrite" + ] + }, + "admin": { + "include": ["*"], + "exclude": ["CIPP.SuperAdmin.*"] + }, + "superadmin": { + "include": ["*"], + "exclude": [] + } +} diff --git a/Config/e82dd7d8-3f13-43cd-bdd4-896e0958493b.TransportRuleTemplate.json b/Config/e82dd7d8-3f13-43cd-bdd4-896e0958493b.TransportRuleTemplate.json new file mode 100644 index 000000000000..a975c36fa432 --- /dev/null +++ b/Config/e82dd7d8-3f13-43cd-bdd4-896e0958493b.TransportRuleTemplate.json @@ -0,0 +1,32 @@ +{ + "name": "Block emails silently based on their subject", + "applyome": false, + "attachmenthasexecutablecontent": false, + "attachmentispasswordprotected": false, + "attachmentisunsupported": false, + "attachmentprocessinglimitexceeded": false, + "comments": "\n", + "deletemessage": true, + "exceptifattachmenthasexecutablecontent": false, + "exceptifattachmentispasswordprotected": false, + "exceptifattachmentisunsupported": false, + "exceptifattachmentprocessinglimitexceeded": false, + "exceptifhasnoclassification": false, + "exceptifhassenderoverride": false, + "hasnoclassification": false, + "hassenderoverride": false, + "mode": "enforce", + "moderatemessagebymanager": false, + "quarantine": false, + "recipientaddresstype": "resolved", + "removeome": false, + "removeomev2": false, + "removermsattachmentencryption": false, + "routemessageoutboundrequiretls": false, + "ruleerroraction": "ignore", + "rulesubtype": "none", + "senderaddresslocation": "header", + "stopruleprocessing": false, + "subjectorbodycontainswords": ["This subject"], + "uselegacyregex": false +} diff --git a/Config/f8be7e58-2419-40a8-a739-714bf5deff90.CATemplate.json b/Config/f8be7e58-2419-40a8-a739-714bf5deff90.CATemplate.json new file mode 100644 index 000000000000..589b736c19c7 --- /dev/null +++ b/Config/f8be7e58-2419-40a8-a739-714bf5deff90.CATemplate.json @@ -0,0 +1,36 @@ +{ + "state": "enabled", + "grantControls": { + "builtInControls": ["block"], + "operator": "OR", + "termsOfUse": [], + "customAuthenticationFactors": [] + }, + "conditions": { + "times": null, + "locations": null, + "signInRiskLevels": [], + "devices": null, + "deviceStates": null, + "users": { + "excludeRoles": [], + "excludeUsers": [], + "excludeGroups": [], + "includeUsers": ["All"], + "includeRoles": [], + "includeGroups": [] + }, + "servicePrincipalRiskLevels": [], + "userRiskLevels": [], + "clientAppTypes": ["exchangeActiveSync", "other"], + "platforms": null, + "clientApplications": null, + "applications": { + "includeApplications": ["All"], + "includeUserActions": [], + "includeAuthenticationContextClassReferences": [], + "excludeApplications": [] + } + }, + "displayName": "CIPP: Block Legacy Authentication" +} diff --git a/Config/schemaDefinitions.json b/Config/schemaDefinitions.json new file mode 100644 index 000000000000..4c2d78d561b0 --- /dev/null +++ b/Config/schemaDefinitions.json @@ -0,0 +1,48 @@ +[ + { + "id": "cippUser", + "description": "CIPP User Schema", + "targetTypes": [ + "User" + ], + "properties": [ + { + "name": "jitAdminEnabled", + "type": "Boolean" + }, + { + "name": "jitAdminExpiration", + "type": "DateTime" + }, + { + "name": "jitAdminReason", + "type": "String" + }, + { + "name": "jitAdminStartDate", + "type": "DateTime" + }, + { + "name": "jitAdminCreatedBy", + "type": "String" + }, + { + "name": "mailboxType", + "type": "String" + }, + { + "name": "archiveEnabled", + "type": "Boolean" + }, + { + "name": "autoExpandingArchiveEnabled", + "type": "Boolean" + }, + { + "name": "perUserMfaState", + "type": "String" + } + ], + "status": "Available" + } +] diff --git a/Config/standards.json b/Config/standards.json new file mode 100644 index 000000000000..3c40463ff676 --- /dev/null +++ b/Config/standards.json @@ -0,0 +1,5043 @@ +[ + { + "name": "standards.MailContacts", + "cat": "Global Standards", + "tag": [], + "helpText": "Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information.", + "docsDescription": "", + "executiveText": "Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.MailContacts.GeneralContact", + "label": "General Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.SecurityContact", + "label": "Security Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.MarketingContact", + "label": "Marketing Contact", + "required": false + }, + { + "type": "textField", + "name": "standards.MailContacts.TechContact", + "label": "Technical Contact", + "required": false + } + ], + "label": "Set contact e-mails", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-03-13", + "powershellEquivalent": "Set-MsolCompanyContactInformation", + "recommendedBy": [] + }, + { + "name": "standards.DeployMailContact", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Creates a new mail contact in Exchange Online across all selected tenants. The contact will be visible in the Global Address List.", + "docsDescription": "This standard creates a new mail contact in Exchange Online. Mail contacts are useful for adding external email addresses to your organization's address book. They can be used for distribution lists, shared mailboxes, and other collaboration scenarios.", + "executiveText": "Automatically creates external email contacts in the organization's address book, enabling seamless communication with external partners and vendors. This standardizes contact management across all company locations and improves collaboration efficiency.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.DeployMailContact.ExternalEmailAddress", + "label": "External Email Address", + "required": true + }, + { + "type": "textField", + "name": "standards.DeployMailContact.DisplayName", + "label": "Display Name", + "required": true + }, + { + "type": "textField", + "name": "standards.DeployMailContact.FirstName", + "label": "First Name", + "required": false + }, + { + "type": "textField", + "name": "standards.DeployMailContact.LastName", + "label": "Last Name", + "required": false + } + ], + "label": "Deploy Mail Contact", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-19", + "powershellEquivalent": "New-MailContact", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DeployContactTemplates", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Creates new mail contacts in Exchange Online across all selected tenants based on the selected templates. The contact will be visible in the Global Address List unless hidden.", + "docsDescription": "This standard creates new mail contacts in Exchange Online based on the selected templates. Mail contacts are useful for adding external email addresses to your organization's address book. They can be used for distribution lists, shared mailboxes, and other collaboration scenarios.", + "executiveText": "Deploys standardized external contact templates across all company locations, ensuring consistent communication channels with key external partners, vendors, and stakeholders. This streamlines contact management and maintains uniform business relationships.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": true, + "creatable": false, + "label": "Select Mail Contact Templates", + "name": "standards.DeployContactTemplates.templateIds", + "api": { + "url": "/api/ListContactTemplates", + "labelField": "name", + "valueField": "GUID", + "queryKey": "Contact Templates" + } + } + ], + "label": "Deploy Mail Contact Template", + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-05-31", + "powershellEquivalent": "New-MailContact", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.AuditLog", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (3.1.1)", "mip_search_auditlog", "NIST CSF 2.0 (DE.CM-09)"], + "helpText": "Enables the Unified Audit Log for tracking and auditing activities. Also runs Enable-OrganizationCustomization if necessary.", + "executiveText": "Activates comprehensive activity logging across Microsoft 365 services to track user actions, system changes, and security events. This provides essential audit trails for compliance requirements, security investigations, and regulatory reporting.", + "addedComponent": [], + "label": "Enable the Unified Audit Log", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2021-11-16", + "powershellEquivalent": "Enable-OrganizationCustomization", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.RestrictThirdPartyStorageServices", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (1.3.7)"], + "helpText": "Restricts third-party storage services in Microsoft 365 on the web by managing the Microsoft 365 on the web service principal. This disables integrations with services like Dropbox, Google Drive, Box, and other third-party storage providers.", + "docsDescription": "Third-party storage can be enabled for users in Microsoft 365, allowing them to store and share documents using services such as Dropbox, alongside OneDrive and team sites. This standard ensures Microsoft 365 on the web third-party storage services are restricted by creating and disabling the Microsoft 365 on the web service principal (appId: c1f33bc0-bdb4-4248-ba9b-096807ddb43e). By using external storage services an organization may increase the risk of data breaches and unauthorized access to confidential information. Additionally, third-party services may not adhere to the same security standards as the organization, making it difficult to maintain data privacy and security. Impact is highly dependent upon current practices - if users do not use other storage providers, then minimal impact is likely. However, if users regularly utilize providers outside of the tenant this will affect their ability to continue to do so.", + "executiveText": "Prevents employees from using external cloud storage services like Dropbox, Google Drive, and Box within Microsoft 365, reducing data security risks and ensuring all company data remains within controlled corporate systems. This helps maintain data governance and prevents potential data leaks to unauthorized platforms.", + "addedComponent": [], + "label": "Restrict third-party storage services in Microsoft 365 on the web", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-06-06", + "powershellEquivalent": "New-MgServicePrincipal and Update-MgServicePrincipal", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.ProfilePhotos", + "cat": "Global Standards", + "tag": [], + "helpText": "Controls whether users can set their own profile photos in Microsoft 365.", + "docsDescription": "Controls whether users can set their own profile photos in Microsoft 365. When disabled, only User and Global administrators can update profile photos for users.", + "executiveText": "Manages user profile photo permissions within Microsoft 365, allowing organizations to control whether employees can upload their own photos or require administrative approval. This helps maintain professional appearance standards and prevents inappropriate images in corporate directories.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.ProfilePhotos.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + } + ], + "label": "Allow users to set profile photos", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-01-19", + "powershellEquivalent": "Set-OrganizationConfig -ProfilePhotoOptions EnablePhotos and Update-MgBetaAdminPeople", + "recommendedBy": [] + }, + { + "name": "standards.PhishProtection", + "cat": "Global Standards", + "tag": [], + "helpText": "Adds branding to the logon page that only appears if the url is not login.microsoftonline.com. This potentially prevents AITM attacks via EvilNginx. This will also automatically generate alerts if a clone of your login page has been found when set to Remediate.", + "executiveText": "Implements advanced phishing protection by adding visual indicators to login pages that help users identify legitimate Microsoft login pages versus fraudulent copies. This security measure protects against sophisticated phishing attacks that attempt to steal employee credentials.", + "addedComponent": [], + "label": "Enable Phishing Protection system via branding CSS", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-01-22", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "powershellEquivalent": "Portal only", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.Branding", + "cat": "Global Standards", + "tag": [], + "helpText": "Sets the branding for the tenant. This includes the login page, and the Office 365 portal.", + "executiveText": "Customizes Microsoft 365 login pages and portals with company branding, including logos, colors, and messaging. This creates a consistent corporate identity experience for employees and reinforces brand recognition while maintaining professional appearance across all Microsoft services.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.Branding.signInPageText", + "label": "Sign-in page text", + "required": false + }, + { + "type": "textField", + "name": "standards.Branding.usernameHintText", + "label": "Username hint Text", + "required": false + }, + { + "type": "switch", + "name": "standards.Branding.hideAccountResetCredentials", + "label": "Hide self-service password reset" + }, + { + "type": "autoComplete", + "multiple": false, + "label": "Visual Template", + "name": "standards.Branding.layoutTemplateType", + "options": [ + { + "label": "Full-screen background", + "value": "default" + }, + { + "label": "Partial-screen background", + "value": "verticalSplit" + } + ] + }, + { + "type": "switch", + "name": "standards.Branding.isHeaderShown", + "label": "Show header" + }, + { + "type": "switch", + "name": "standards.Branding.isFooterShown", + "label": "Show footer" + } + ], + "label": "Set branding for the tenant", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-05-13", + "powershellEquivalent": "Portal only", + "recommendedBy": [] + }, + { + "name": "standards.EnableCustomerLockbox", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (1.3.6)", "CustomerLockBoxEnabled"], + "helpText": "Enables Customer Lockbox that offers an approval process for Microsoft support to access organization data", + "docsDescription": "Customer Lockbox ensures that Microsoft can't access your content to do service operations without your explicit approval. Customer Lockbox ensures only authorized requests allow access to your organizations data.", + "executiveText": "Requires explicit organizational approval before Microsoft support staff can access company data for service operations. This provides an additional layer of data protection and ensures the organization maintains control over who can access sensitive business information, even during technical support scenarios.", + "addedComponent": [], + "label": "Enable Customer Lockbox", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-01-08", + "powershellEquivalent": "Set-OrganizationConfig -CustomerLockBoxEnabled $true", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.EnablePronouns", + "cat": "Global Standards", + "tag": [], + "helpText": "Enables the Pronouns feature for the tenant. This allows users to set their pronouns in their profile.", + "executiveText": "Allows employees to display their preferred pronouns in their Microsoft 365 profiles, supporting inclusive workplace practices and helping colleagues communicate respectfully. This feature enhances diversity and inclusion initiatives while fostering a more welcoming work environment.", + "addedComponent": [], + "label": "Enable Pronouns", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-06-05", + "powershellEquivalent": "Update-MgBetaAdminPeoplePronoun -IsEnabledInOrganization:$true", + "recommendedBy": [] + }, + { + "name": "standards.EnableNamePronunciation", + "cat": "Global Standards", + "tag": [], + "helpText": "Enables the Name Pronunciation feature for the tenant. This allows users to set their name pronunciation in their profile.", + "docsDescription": "Enables the Name Pronunciation feature for the tenant. This allows users to set their name pronunciation in their profile.", + "executiveText": "Enables employees to add pronunciation guides for their names in Microsoft 365 profiles, improving communication and respect in diverse workplaces. This feature helps colleagues pronounce names correctly, enhancing professional relationships and inclusive culture.", + "addedComponent": [], + "label": "Enable Name Pronunciation", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-06", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.AnonReportDisable", + "cat": "Global Standards", + "tag": [], + "helpText": "Shows usernames instead of pseudo anonymised names in reports. This standard is required for reporting to work correctly.", + "docsDescription": "Microsoft announced some APIs and reports no longer return names, to comply with compliance and legal requirements in specific countries. This proves an issue for a lot of MSPs because those reports are often helpful for engineers. This standard applies a setting that shows usernames in those API calls / reports.", + "executiveText": "Configures Microsoft 365 reports to display actual usernames instead of anonymized identifiers, enabling IT administrators to effectively troubleshoot issues and generate meaningful usage reports. This improves operational efficiency and system management capabilities.", + "addedComponent": [], + "label": "Enable Usernames instead of pseudo anonymised names in reports", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2021-11-16", + "powershellEquivalent": "Update-MgBetaAdminReportSetting -BodyParameter @{displayConcealedNames = $true}", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DisableGuestDirectory", + "cat": "Global Standards", + "tag": [ + "CIS M365 5.0 (5.1.6.2)", + "CISA (MS.AAD.5.1v1)", + "EIDSCA.AP14", + "EIDSCA.ST08", + "EIDSCA.ST09", + "NIST CSF 2.0 (PR.AA-05)" + ], + "helpText": "Disables Guest access to enumerate directory objects. This prevents guest users from seeing other users or guests in the directory.", + "docsDescription": "Sets it so guests can view only their own user profile. Permission to view other users isn't allowed. Also restricts guest users from seeing the membership of groups they're in. See exactly what get locked down in the [Microsoft documentation.](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions)", + "executiveText": "Restricts external guest users from viewing the company's employee directory and organizational structure, protecting sensitive information about staff and internal groups. This security measure prevents unauthorized access to corporate contact information while still allowing necessary collaboration.", + "addedComponent": [], + "label": "Restrict guest user access to directory objects", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-05-04", + "powershellEquivalent": "Set-AzureADMSAuthorizationPolicy -GuestUserRoleId '2af84b1e-32c8-42b7-82bc-daa82404023b'", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DisableBasicAuthSMTP", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (6.5.4)", "NIST CSF 2.0 (PR.IR-01)"], + "helpText": "Disables SMTP AUTH for the organization and all users. This is the default for new tenants.", + "docsDescription": "Disables SMTP basic authentication for the tenant and all users with it explicitly enabled.", + "executiveText": "Disables outdated email authentication methods that are vulnerable to security attacks, forcing applications and devices to use modern, more secure authentication protocols. This reduces the risk of email-based security breaches and credential theft.", + "addedComponent": [], + "label": "Disable SMTP Basic Authentication", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2021-11-16", + "powershellEquivalent": "Set-TransportConfig -SmtpClientAuthenticationDisabled $true", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.ActivityBasedTimeout", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (1.3.2)", "spo_idle_session_timeout", "NIST CSF 2.0 (PR.AA-03)"], + "helpText": "Enables and sets Idle session timeout for Microsoft 365 to 1 hour. This policy affects most M365 web apps", + "executiveText": "Automatically logs out inactive users from Microsoft 365 applications after a specified time period to prevent unauthorized access to company data on unattended devices. This security measure protects against data breaches when employees leave workstations unlocked.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.ActivityBasedTimeout.timeout", + "options": [ + { + "label": "1 Hour", + "value": "01:00:00" + }, + { + "label": "3 Hours", + "value": "03:00:00" + }, + { + "label": "6 Hours", + "value": "06:00:00" + }, + { + "label": "12 Hours", + "value": "12:00:00" + }, + { + "label": "24 Hours", + "value": "1.00:00:00" + } + ] + } + ], + "label": "Enable Activity based Timeout", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2022-04-13", + "powershellEquivalent": "Portal or Graph API", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.AuthMethodsSettings", + "cat": "Entra (AAD) Standards", + "tag": ["EIDSCA.AG01", "EIDSCA.AG02", "EIDSCA.AG03"], + "helpText": "Configures the report suspicious activity settings and system credential preferences in the authentication methods policy.", + "docsDescription": "Controls the authentication methods policy settings for reporting suspicious activity and system credential preferences. These settings help enhance the security of authentication in your organization.", + "executiveText": "Configures security settings that allow users to report suspicious login attempts and manages how the system handles authentication credentials. This enhances overall security by enabling early detection of potential security threats and optimizing authentication processes.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "required": false, + "name": "standards.AuthMethodsSettings.ReportSuspiciousActivity", + "label": "Report Suspicious Activity Settings", + "options": [ + { + "label": "Microsoft managed", + "value": "default" + }, + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + }, + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "required": false, + "name": "standards.AuthMethodsSettings.SystemCredential", + "label": "System Credential Preferences", + "options": [ + { + "label": "Microsoft managed", + "value": "default" + }, + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + } + ], + "label": "Configure Authentication Methods Policy Settings", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-02-10", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicy", + "recommendedBy": [] + }, + { + "name": "standards.AuthMethodsPolicyMigration", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Completes the migration of authentication methods policy to the new format", + "docsDescription": "Sets the authentication methods policy migration state to complete. This is required when migrating from legacy authentication policies to the new unified authentication methods policy.", + "executiveText": "Completes the transition from legacy authentication policies to Microsoft's modern unified authentication methods policy, ensuring the organization benefits from the latest security features and management capabilities. This migration enables enhanced security controls and simplified policy management.", + "addedComponent": [], + "label": "Complete Authentication Methods Policy Migration", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-07-07", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicy", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.AppDeploy", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Deploys selected applications to the tenant. Use a comma separated list of application IDs to deploy multiple applications. Permissions will be copied from the source application.", + "docsDescription": "Uses the CIPP functionality that deploys applications across an entire tenant base as a standard.", + "executiveText": "Automatically deploys approved business applications across all company locations and users, ensuring consistent access to essential tools and maintaining standardized software configurations. This streamlines application management and reduces IT deployment overhead.", + "addedComponent": [ + { + "type": "select", + "multiple": false, + "creatable": false, + "label": "App Approval Mode", + "name": "standards.AppDeploy.mode", + "options": [ + { + "label": "Template", + "value": "template" + }, + { + "label": "Copy Permissions", + "value": "copy" + } + ] + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": false, + "label": "Select Applications", + "name": "standards.AppDeploy.templateIds", + "api": { + "url": "/api/ListAppApprovalTemplates", + "labelField": "TemplateName", + "valueField": "TemplateId", + "queryKey": "StdAppApprovalTemplateList", + "addedField": { + "AppId": "AppId" + } + }, + "condition": { + "field": "standards.AppDeploy.mode", + "compareType": "is", + "compareValue": "template" + } + }, + { + "type": "textField", + "name": "standards.AppDeploy.appids", + "label": "Application IDs, comma separated", + "condition": { + "field": "standards.AppDeploy.mode", + "compareType": "isNot", + "compareValue": "template" + } + } + ], + "label": "Deploy Application", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-07-07", + "powershellEquivalent": "Portal or Graph API", + "recommendedBy": [] + }, + { + "name": "standards.laps", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Enables the tenant to use LAPS. You must still create a policy for LAPS to be active on all devices. Use the template standards to deploy this by default.", + "docsDescription": "Enables the LAPS functionality on the tenant. Prerequisite for using Windows LAPS via Azure AD.", + "executiveText": "Enables Local Administrator Password Solution (LAPS) capability, which automatically manages and rotates local administrator passwords on company computers. This significantly improves security by preventing the use of shared or static administrator passwords that could be exploited by attackers.", + "addedComponent": [], + "label": "Enable LAPS on the tenant", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-04-25", + "powershellEquivalent": "Portal or Graph API", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.PWdisplayAppInformationRequiredState", + "cat": "Entra (AAD) Standards", + "tag": [ + "CIS M365 5.0 (2.3.1)", + "EIDSCA.AM03", + "EIDSCA.AM04", + "EIDSCA.AM06", + "EIDSCA.AM07", + "EIDSCA.AM09", + "EIDSCA.AM10", + "NIST CSF 2.0 (PR.AA-03)" + ], + "helpText": "Enables the MS authenticator app to display information about the app that is requesting authentication. This displays the application name.", + "docsDescription": "Allows users to use Passwordless with Number Matching and adds location information from the last request", + "executiveText": "Enhances authentication security by requiring users to match numbers and showing detailed information about login requests, including application names and location data. This helps employees verify legitimate login attempts and prevents unauthorized access through more secure authentication methods.", + "addedComponent": [], + "label": "Enable Passwordless with Location information and Number Matching", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2021-11-16", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.allowOTPTokens", + "cat": "Entra (AAD) Standards", + "tag": ["EIDSCA.AM02"], + "helpText": "Allows you to use MS authenticator OTP token generator", + "docsDescription": "Allows you to use Microsoft Authenticator OTP token generator. Useful for using the NPS extension as MFA on VPN clients.", + "executiveText": "Enables one-time password generation through Microsoft Authenticator app, providing an additional secure authentication method for employees. This is particularly useful for secure VPN access and other systems requiring multi-factor authentication.", + "addedComponent": [], + "label": "Enable OTP via Authenticator", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-12-06", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": [] + }, + { + "name": "standards.PWcompanionAppAllowedState", + "cat": "Entra (AAD) Standards", + "tag": ["EIDSCA.AM01"], + "helpText": "Sets the state of Authenticator Lite, Authenticator lite is a companion app for passwordless authentication.", + "docsDescription": "Sets the Authenticator Lite state to enabled. This allows users to use the Authenticator Lite built into the Outlook app instead of the full Authenticator app.", + "executiveText": "Enables a simplified authentication experience by allowing users to authenticate directly through Outlook without requiring a separate authenticator app. This improves user convenience while maintaining security standards for passwordless authentication.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.PWcompanionAppAllowedState.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + }, + { + "label": "Microsoft managed", + "value": "default" + } + ] + } + ], + "label": "Set Authenticator Lite state", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-05-18", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": [] + }, + { + "name": "standards.EnableFIDO2", + "cat": "Entra (AAD) Standards", + "tag": [ + "EIDSCA.AF01", + "EIDSCA.AF02", + "EIDSCA.AF03", + "EIDSCA.AF04", + "EIDSCA.AF05", + "EIDSCA.AF06", + "NIST CSF 2.0 (PR.AA-03)" + ], + "helpText": "Enables the FIDO2 authenticationMethod for the tenant", + "docsDescription": "Enables FIDO2 capabilities for the tenant. This allows users to use FIDO2 keys like a Yubikey for authentication.", + "executiveText": "Enables support for hardware security keys (like YubiKey) that provide the highest level of authentication security. These physical devices prevent phishing attacks and credential theft, offering superior protection for high-value accounts and sensitive business operations.", + "addedComponent": [], + "label": "Enable FIDO2 capabilities", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-12-08", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.EnableHardwareOAuth", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Enables the HardwareOath authenticationMethod for the tenant. This allows you to use hardware tokens for generating 6 digit MFA codes.", + "docsDescription": "Enables Hardware OAuth tokens for the tenant. This allows users to use hardware tokens like a Yubikey for authentication.", + "executiveText": "Enables physical hardware tokens that generate secure authentication codes, providing an alternative to smartphone-based authentication. This is particularly valuable for employees who cannot use mobile devices or require the highest security standards for accessing sensitive systems.", + "addedComponent": [], + "label": "Enable Hardware OAuth tokens", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-12-18", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": [] + }, + { + "name": "standards.allowOAuthTokens", + "cat": "Entra (AAD) Standards", + "tag": ["EIDSCA.AT01", "EIDSCA.AT02"], + "helpText": "Allows you to use any software OAuth token generator", + "docsDescription": "Enables OTP Software OAuth tokens for the tenant. This allows users to use OTP codes generated via software, like a password manager to be used as an authentication method.", + "executiveText": "Allows employees to use third-party authentication apps and password managers to generate secure login codes, providing flexibility in authentication methods while maintaining security standards. This accommodates diverse user preferences and existing security tools.", + "addedComponent": [], + "label": "Enable OTP Software OAuth tokens", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-12-18", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": [] + }, + { + "name": "standards.FormsPhishingProtection", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (1.3.5)", "Security", "PhishingProtection"], + "helpText": "Enables internal phishing protection for Microsoft Forms to help prevent malicious forms from being created and shared within the organization. This feature scans forms created by internal users for potential phishing content and suspicious patterns.", + "docsDescription": "Enables internal phishing protection for Microsoft Forms by setting the isInOrgFormsPhishingScanEnabled property to true. This security feature helps protect organizations from internal phishing attacks through Microsoft Forms by automatically scanning forms created by internal users for potential malicious content, suspicious links, and phishing patterns. When enabled, Forms will analyze form content and block or flag potentially dangerous forms before they can be shared within the organization.", + "executiveText": "Automatically scans Microsoft Forms created by employees for malicious content and phishing attempts, preventing the creation and distribution of harmful forms within the organization. This protects against both internal threats and compromised accounts that might be used to distribute malicious content.", + "addedComponent": [], + "label": "Enable internal phishing protection for Forms", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-06", + "powershellEquivalent": "Graph API", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.TAP", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Enables TAP and sets the default TAP lifetime to 1 hour. This configuration also allows you to select if a TAP is single use or multi-logon.", + "docsDescription": "Enables Temporary Password generation for the tenant.", + "executiveText": "Enables temporary access passwords that IT administrators can generate for employees who are locked out or need emergency access to systems. These time-limited passwords provide a secure way to restore access without compromising long-term security policies.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select TAP Lifetime", + "name": "standards.TAP.config", + "options": [ + { + "label": "Only Once", + "value": "true" + }, + { + "label": "Multiple Logons", + "value": "false" + } + ] + } + ], + "label": "Enable Temporary Access Passwords", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-03-15", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.PasswordExpireDisabled", + "cat": "Entra (AAD) Standards", + "tag": ["CIS M365 5.0 (1.3.1)", "PWAgePolicyNew"], + "helpText": "Disables the expiration of passwords for the tenant by setting the password expiration policy to never expire for any user.", + "docsDescription": "Sets passwords to never expire for tenant, recommended to use in conjunction with secure password requirements.", + "executiveText": "Eliminates mandatory password expiration requirements, allowing employees to keep strong passwords indefinitely rather than forcing frequent changes that often lead to weaker passwords. This modern security approach reduces help desk calls and improves overall password security when combined with multi-factor authentication.", + "addedComponent": [], + "label": "Do not expire passwords", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2021-11-16", + "powershellEquivalent": "Update-MgDomain", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.CustomBannedPasswordList", + "cat": "Entra (AAD) Standards", + "tag": ["CIS M365 5.0 (5.2.3.2)"], + "helpText": "**Requires Entra ID P1.** Updates and enables the Entra ID custom banned password list with the supplied words. Enter words separated by commas or semicolons. Each word must be 4-16 characters long. Maximum 1,000 words allowed.", + "docsDescription": "Updates and enables the Entra ID custom banned password list with the supplied words. This supplements the global banned password list maintained by Microsoft. The custom list is limited to 1,000 key base terms of 4-16 characters each. Entra ID will [block variations and common substitutions](https://learn.microsoft.com/en-us/entra/identity/authentication/tutorial-configure-custom-password-protection#configure-custom-banned-passwords) of these words in user passwords. [How are passwords evaluated?](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-password-ban-bad#score-calculation)", + "addedComponent": [ + { + "type": "textField", + "name": "standards.CustomBannedPasswordList.BannedWords", + "label": "Banned Words", + "placeholder": "Banned words separated by commas or semicolons", + "required": true + } + ], + "label": "Set Entra ID Custom Banned Password List", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-06-28", + "powershellEquivalent": "Get-MgBetaDirectorySetting, New-MgBetaDirectorySetting, Update-MgBetaDirectorySetting", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.ExternalMFATrusted", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Sets the state of the Cross-tenant access setting to trust external MFA. This allows guest users to use their home tenant MFA to access your tenant.", + "executiveText": "Allows external partners and vendors to use their own organization's multi-factor authentication when accessing company resources, streamlining collaboration while maintaining security standards. This reduces friction for external users while ensuring they still meet authentication requirements.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.ExternalMFATrusted.state", + "options": [ + { + "label": "Enabled", + "value": "true" + }, + { + "label": "Disabled", + "value": "false" + } + ] + } + ], + "label": "Sets the Cross-tenant access setting to trust external MFA", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-26", + "powershellEquivalent": "Update-MgBetaPolicyCrossTenantAccessPolicyDefault", + "recommendedBy": [] + }, + { + "name": "standards.DisableTenantCreation", + "cat": "Entra (AAD) Standards", + "tag": ["CIS M365 5.0 (1.2.3)", "CISA (MS.AAD.6.1v1)"], + "helpText": "Restricts creation of M365 tenants to the Global Administrator or Tenant Creator roles.", + "docsDescription": "Users by default are allowed to create M365 tenants. This disables that so only admins can create new M365 tenants.", + "executiveText": "Prevents regular employees from creating new Microsoft 365 organizations, ensuring all new tenants are properly managed and controlled by IT administrators. This prevents unauthorized shadow IT environments and maintains centralized governance over Microsoft 365 resources.", + "addedComponent": [], + "label": "Disable M365 Tenant creation by users", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-11-29", + "powershellEquivalent": "Update-MgPolicyAuthorizationPolicy", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.EnableAppConsentRequests", + "cat": "Entra (AAD) Standards", + "tag": [ + "CIS M365 5.0 (1.5.2)", + "CISA (MS.AAD.9.1v1)", + "EIDSCA.CP04", + "EIDSCA.CR01", + "EIDSCA.CR02", + "EIDSCA.CR03", + "EIDSCA.CR04", + "Essential 8 (1507)", + "NIST CSF 2.0 (PR.AA-05)" + ], + "helpText": "Enables App consent admin requests for the tenant via the GA role. Does not overwrite existing reviewer settings", + "docsDescription": "Enables the ability for users to request admin consent for applications. Should be used in conjunction with the \"Require admin consent for applications\" standards", + "executiveText": "Establishes a formal approval process where employees can request access to business applications that require administrative review. This balances security with productivity by allowing controlled access to necessary tools while preventing unauthorized application installations.", + "addedComponent": [ + { + "type": "AdminRolesMultiSelect", + "label": "App Consent Reviewer Roles", + "name": "standards.EnableAppConsentRequests.ReviewerRoles" + } + ], + "label": "Enable App consent admin requests", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-11-27", + "powershellEquivalent": "Update-MgPolicyAdminConsentRequestPolicy", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.NudgeMFA", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Sets the state of the registration campaign for the tenant", + "docsDescription": "Sets the state of the registration campaign for the tenant. If enabled nudges users to set up the Microsoft Authenticator during sign-in.", + "executiveText": "Prompts employees to set up multi-factor authentication during login, gradually improving the organization's security posture by encouraging adoption of stronger authentication methods. This helps achieve better security compliance without forcing immediate mandatory changes.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.NudgeMFA.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + }, + { + "type": "number", + "name": "standards.NudgeMFA.snoozeDurationInDays", + "label": "Number of days to allow users to skip registering Authenticator (0-14, default is 1)", + "defaultValue": 1 + } + ], + "label": "Sets the state for the request to setup Authenticator", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-12-08", + "powershellEquivalent": "Update-MgPolicyAuthenticationMethodPolicy", + "recommendedBy": [] + }, + { + "name": "standards.DisableM365GroupUsers", + "cat": "Entra (AAD) Standards", + "tag": ["CISA (MS.AAD.21.1v1)"], + "helpText": "Restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc", + "docsDescription": "Users by default are allowed to create M365 groups. This restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc", + "executiveText": "Restricts the creation of Microsoft 365 groups, Teams, and SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces. This ensures proper governance, naming conventions, and resource management while maintaining oversight of all collaborative environments.", + "addedComponent": [], + "label": "Disable M365 Group creation by users", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-07-17", + "powershellEquivalent": "Update-MgBetaDirectorySetting", + "recommendedBy": [] + }, + { + "name": "standards.DisableAppCreation", + "cat": "Entra (AAD) Standards", + "tag": [ + "CIS M365 5.0 (1.2.2)", + "CISA (MS.AAD.4.1v1)", + "EIDSCA.AP10", + "Essential 8 (1175)", + "NIST CSF 2.0 (PR.AA-05)" + ], + "helpText": "Disables the ability for users to create App registrations in the tenant.", + "docsDescription": "Disables the ability for users to create applications in Entra. Done to prevent breached accounts from creating an app to maintain access to the tenant, even after the breached account has been secured.", + "executiveText": "Prevents regular employees from creating application registrations that could be used to maintain unauthorized access to company systems. This security measure ensures that only authorized IT personnel can create applications, reducing the risk of persistent security breaches through malicious applications.", + "addedComponent": [], + "label": "Disable App creation by users", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-20", + "powershellEquivalent": "Update-MgPolicyAuthorizationPolicy", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.DisableSecurityGroupUsers", + "cat": "Entra (AAD) Standards", + "tag": ["CISA (MS.AAD.20.1v1)", "NIST CSF 2.0 (PR.AA-05)"], + "helpText": "Completely disables the creation of security groups by users. This also breaks the ability to manage groups themselves, or create Teams", + "executiveText": "Restricts the creation of security groups to IT administrators only, preventing employees from creating unauthorized access groups that could bypass security controls. This ensures proper governance of access permissions and maintains centralized control over who can access what resources.", + "addedComponent": [], + "label": "Disable Security Group creation by users", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2022-07-17", + "powershellEquivalent": "Update-MgBetaPolicyAuthorizationPolicy", + "recommendedBy": [] + }, + { + "name": "standards.LegacyMFACleanup", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "This standard currently does not function and can be safely disabled", + "executiveText": "This standard is currently non-functional and should be disabled. It was previously designed to remove outdated multi-factor authentication configurations in favor of modern security policies.", + "addedComponent": [], + "label": "Remove Legacy MFA if SD or CA is active", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2021-11-16", + "powershellEquivalent": "Set-MsolUser -StrongAuthenticationRequirements $null", + "recommendedBy": [] + }, + { + "name": "standards.DisableSelfServiceLicenses", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Note: requires 'Billing Administrator' GDAP role. This standard disables all self service licenses and enables all exclusions", + "executiveText": "Prevents employees from purchasing Microsoft 365 licenses independently, ensuring all software acquisitions go through proper procurement channels. This maintains budget control, prevents unauthorized spending, and ensures compliance with corporate licensing agreements.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.DisableSelfServiceLicenses.Exclusions", + "label": "License Ids to exclude from this standard", + "required": false + } + ], + "label": "Disable Self Service Licensing", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2021-11-16", + "powershellEquivalent": "Set-MsolCompanySettings -AllowAdHocSubscriptions $false", + "recommendedBy": [] + }, + { + "name": "standards.DisableGuests", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Blocks login for guest users that have not logged in for a number of days", + "executiveText": "Automatically disables external guest accounts that haven't been used for a number of days, reducing security risks from dormant accounts while maintaining access for active external collaborators. This helps maintain a clean user directory and reduces potential attack vectors.", + "addedComponent": [ + { + "type": "number", + "name": "standards.DisableGuests.days", + "required": true, + "defaultValue": 90, + "label": "Days of inactivity" + } + ], + "label": "Disable Guest accounts that have not logged on for a number of days", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2022-10-20", + "powershellEquivalent": "Graph API", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.OauthConsent", + "cat": "Entra (AAD) Standards", + "tag": [ + "CIS M365 5.0 (1.5.1)", + "CISA (MS.AAD.4.2v1)", + "EIDSCA.AP08", + "EIDSCA.AP09", + "Essential 8 (1175)", + "NIST CSF 2.0 (PR.AA-05)" + ], + "helpText": "Disables users from being able to consent to applications, except for those specified in the field below", + "docsDescription": "Requires users to get administrator consent before sharing data with applications. You can preapprove specific applications.", + "executiveText": "Requires administrative approval before employees can grant applications access to company data, preventing unauthorized data sharing and potential security breaches. This protects against malicious applications while allowing approved business tools to function normally.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.OauthConsent.AllowedApps", + "label": "Allowed application IDs, comma separated", + "required": false + } + ], + "label": "Require admin consent for applications (Prevent OAuth phishing)", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2021-11-16", + "powershellEquivalent": "Update-MgPolicyAuthorizationPolicy", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.OauthConsentLowSec", + "cat": "Entra (AAD) Standards", + "tag": ["IntegratedApps"], + "helpText": "Sets the default oauth consent level so users can consent to applications that have low risks.", + "docsDescription": "Allows users to consent to applications with low assigned risk.", + "executiveText": "Allows employees to approve low-risk applications without administrative intervention, balancing security with productivity. This provides a middle ground between complete restriction and open access, enabling business agility while maintaining protection against high-risk applications.", + "label": "Allow users to consent to applications with low security risk (Prevent OAuth phishing. Lower impact, less secure)", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2022-08-16", + "powershellEquivalent": "Update-MgPolicyAuthorizationPolicy", + "recommendedBy": [] + }, + { + "name": "standards.GuestInvite", + "cat": "Entra (AAD) Standards", + "tag": ["CISA (MS.AAD.18.1v1)", "EIDSCA.AP04", "EIDSCA.AP07"], + "helpText": "This setting controls who can invite guests to your directory to collaborate on resources secured by your company, such as SharePoint sites or Azure resources.", + "executiveText": "Controls who within the organization can invite external partners and vendors to access company resources, ensuring proper oversight of external access while enabling necessary business collaboration. This helps maintain security while supporting partnership and vendor relationships.", + "addedComponent": [ + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "label": "Who can send invites?", + "name": "standards.GuestInvite.allowInvitesFrom", + "options": [ + { + "label": "Everyone", + "value": "everyone" + }, + { + "label": "Admins, Guest inviters and All Members", + "value": "adminsGuestInvitersAndAllMembers" + }, + { + "label": "Admins and Guest inviters", + "value": "adminsAndGuestInviters" + }, + { + "label": "None", + "value": "none" + } + ] + } + ], + "label": "Guest Invite setting", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-11-12", + "powershellEquivalent": "Graph API", + "recommendedBy": [] + }, + { + "name": "standards.StaleEntraDevices", + "cat": "Entra (AAD) Standards", + "tag": ["Essential 8 (1501)", "NIST CSF 2.0 (ID.AM-08)", "NIST CSF 2.0 (PR.PS-03)"], + "helpText": "Remediate is currently not available. Cleans up Entra devices that have not connected/signed in for the specified number of days.", + "docsDescription": "Remediate is currently not available. Cleans up Entra devices that have not connected/signed in for the specified number of days. First disables and later deletes the devices. More info can be found in the [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices)", + "executiveText": "Automatically identifies and removes inactive devices that haven't connected to company systems for a specified period, reducing security risks from abandoned or lost devices. This maintains a clean device inventory and prevents potential unauthorized access through dormant device registrations.", + "addedComponent": [ + { + "type": "number", + "name": "standards.StaleEntraDevices.deviceAgeThreshold", + "label": "Days before stale(Do not set below 30)" + } + ], + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "label": "Cleanup stale Entra devices", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2025-01-19", + "powershellEquivalent": "Remove-MgDevice, Update-MgDevice or Graph API", + "recommendedBy": [] + }, + { + "name": "standards.UndoOauth", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Disables App consent and set to Allow user consent for apps", + "executiveText": "Reverses application consent restrictions, allowing employees to approve applications independently without administrative oversight. This increases productivity and user autonomy but reduces security controls over data access permissions.", + "addedComponent": [], + "label": "Undo App Consent Standard", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2022-01-07", + "powershellEquivalent": "Update-MgPolicyAuthorizationPolicy", + "recommendedBy": [] + }, + { + "name": "standards.SecurityDefaults", + "cat": "Entra (AAD) Standards", + "tag": ["CISA (MS.AAD.11.1v1)"], + "helpText": "Enables security defaults for the tenant, for newer tenants this is enabled by default. Do not enable this feature if you use Conditional Access.", + "docsDescription": "Enables SD for the tenant, which disables all forms of basic authentication and enforces users to configure MFA. Users are only prompted for MFA when a logon is considered 'suspect' by Microsoft.", + "executiveText": "Activates Microsoft's baseline security configuration that requires multi-factor authentication and blocks legacy authentication methods. This provides essential security protection for organizations without complex conditional access policies, significantly improving security posture with minimal configuration.", + "addedComponent": [], + "label": "Enable Security Defaults", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2021-11-19", + "powershellEquivalent": "[Read more here](https://www.cyberdrain.com/automating-with-powershell-enabling-secure-defaults-and-sd-explained/)", + "recommendedBy": [] + }, + { + "name": "standards.DisableSMS", + "cat": "Entra (AAD) Standards", + "tag": ["CIS M365 5.0 (2.3.5)", "EIDSCA.AS04", "NIST CSF 2.0 (PR.AA-03)"], + "helpText": "This blocks users from using SMS as an MFA method. If a user only has SMS as a MFA method, they will be unable to log in.", + "docsDescription": "Disables SMS as an MFA method for the tenant. If a user only has SMS as a MFA method, they will be unable to sign in.", + "executiveText": "Disables SMS text messages as a multi-factor authentication method due to security vulnerabilities like SIM swapping attacks. This forces users to adopt more secure authentication methods like authenticator apps or hardware tokens, significantly improving account security.", + "addedComponent": [], + "label": "Disables SMS as an MFA method", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2023-12-18", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DisableVoice", + "cat": "Entra (AAD) Standards", + "tag": ["CIS M365 5.0 (2.3.5)", "EIDSCA.AV01", "NIST CSF 2.0 (PR.AA-03)"], + "helpText": "This blocks users from using Voice call as an MFA method. If a user only has Voice as a MFA method, they will be unable to log in.", + "docsDescription": "Disables Voice call as an MFA method for the tenant. If a user only has Voice call as a MFA method, they will be unable to sign in.", + "executiveText": "Disables voice call authentication due to security vulnerabilities and social engineering risks. This forces users to adopt more secure authentication methods like authenticator apps, improving overall account security by eliminating phone-based attack vectors.", + "addedComponent": [], + "label": "Disables Voice call as an MFA method", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2023-12-18", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DisableEmail", + "cat": "Entra (AAD) Standards", + "tag": ["CIS M365 5.0 (2.3.5)", "NIST CSF 2.0 (PR.AA-03)"], + "helpText": "This blocks users from using email as an MFA method. This disables the email OTP option for guest users, and instead prompts them to create a Microsoft account.", + "executiveText": "Disables email-based authentication codes due to security concerns with email interception and account compromise. This forces users to adopt more secure authentication methods, particularly affecting guest users who must use stronger verification methods.", + "addedComponent": [], + "label": "Disables Email as an MFA method", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2023-12-18", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": [] + }, + { + "name": "standards.Disablex509Certificate", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "This blocks users from using Certificates as an MFA method.", + "docsDescription": "", + "executiveText": "Disables certificate-based authentication as a multi-factor authentication method, typically used when organizations want to standardize on other authentication methods or when certificate management becomes too complex for the security benefit provided.", + "addedComponent": [], + "label": "Disables Certificates as an MFA method", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2023-12-18", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": [] + }, + { + "name": "standards.DisableQRCodePin", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "This blocks users from using QR Code Pin as an MFA method. If a user only has QR Code Pin as a MFA method, they will be unable to log in.", + "docsDescription": "Disables QR Code Pin as an MFA method for the tenant. If a user only has QR Code Pin as a MFA method, they will be unable to sign in.", + "executiveText": "Disables QR Code Pin authentication method due to security concerns, forcing users to adopt more secure authentication alternatives. This helps standardize authentication methods and reduces potential security vulnerabilities while ensuring employees use more robust multi-factor authentication options.", + "addedComponent": [], + "label": "Disables QR Code Pin as an MFA method", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2024-02-10", + "powershellEquivalent": "Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration", + "recommendedBy": [] + }, + { + "name": "standards.PerUserMFA", + "cat": "Entra (AAD) Standards", + "tag": [ + "CIS M365 5.0 (1.2.1)", + "CIS M365 5.0 (1.1.1)", + "CIS M365 5.0 (1.1.2)", + "CISA (MS.AAD.1.1v1)", + "CISA (MS.AAD.1.2v1)", + "Essential 8 (1504)", + "Essential 8 (1173)", + "Essential 8 (1401)", + "NIST CSF 2.0 (PR.AA-03)" + ], + "helpText": "Enables per user MFA for all users.", + "executiveText": "Requires all employees to use multi-factor authentication for enhanced account security, significantly reducing the risk of unauthorized access from compromised passwords. This fundamental security measure protects against the majority of account-based attacks and is essential for maintaining strong cybersecurity posture.", + "addedComponent": [], + "label": "Enables per user MFA for all users.", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2024-06-14", + "powershellEquivalent": "Graph API", + "recommendedBy": [] + }, + { + "name": "standards.UserPreferredLanguage", + "cat": "Entra (AAD) Standards", + "tag": [], + "helpText": "Sets the preferred language property for all users in the tenant. This will override the user's language settings.", + "docsDescription": "Sets the preferred language property for all users in the tenant. This will override the user's language settings.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "name": "standards.UserPreferredLanguage.preferredLanguage", + "label": "Preferred Language", + "api": { + "url": "/languageList.json", + "labelField": "tag", + "valueField": "tag" + } + } + ], + "label": "Preferred language for all users", + "impact": "High Impact", + "impactColour": "info", + "addedDate": "2025-02-26", + "powershellEquivalent": "Update-MgUser -UserId user@domain.com -BodyParameter @{preferredLanguage='en-US'}", + "recommendedBy": [] + }, + { + "name": "standards.OutBoundSpamAlert", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (2.1.6)"], + "helpText": "Set the Outbound Spam Alert e-mail address", + "docsDescription": "Sets the e-mail address to which outbound spam alerts are sent.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.OutBoundSpamAlert.OutboundSpamContact", + "label": "Outbound spam contact" + } + ], + "label": "Set Outbound Spam Alert e-mail", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-05-03", + "powershellEquivalent": "Set-HostedOutboundSpamFilterPolicy", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.MessageExpiration", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the transport message configuration to timeout a message at 12 hours.", + "docsDescription": "Expires messages in the transport queue after 12 hours. Makes the NDR for failed messages show up faster for users. Default is 24 hours.", + "addedComponent": [], + "label": "Lower Transport Message Expiration to 12 hours", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-02-23", + "powershellEquivalent": "Set-TransportConfig -MessageExpirationTimeout 12.00:00:00", + "recommendedBy": [] + }, + { + "name": "standards.GlobalQuarantineNotifications", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the Global Quarantine Notification Interval to the selected value. Determines how often the quarantine notification is sent to users.", + "docsDescription": "Sets the global quarantine notification interval for the tenant. This is the time between the quarantine notification emails are sent out to users. Default is 24 hours.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select value", + "name": "standards.GlobalQuarantineNotifications.NotificationInterval", + "options": [ + { + "label": "4 hours", + "value": "04:00:00" + }, + { + "label": "1 day/Daily", + "value": "1.00:00:00" + }, + { + "label": "7 days/Weekly", + "value": "7.00:00:00" + } + ] + } + ], + "label": "Set Global Quarantine Notification Interval", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-05-03", + "powershellEquivalent": "Set-QuarantinePolicy -EndUserSpamNotificationFrequency", + "recommendedBy": [] + }, + { + "name": "standards.DisableTNEF", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Disables Transport Neutral Encapsulation Format (TNEF)/winmail.dat for the tenant. TNEF can cause issues if the recipient is not using a client supporting TNEF.", + "docsDescription": "Disables Transport Neutral Encapsulation Format (TNEF)/winmail.dat for the tenant. TNEF can cause issues if the recipient is not using a client supporting TNEF. Cannot be overridden by the user. For more information, see [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/mail-flow/content-conversion/tnef-conversion?view=exchserver-2019)", + "executiveText": "Prevents the creation of winmail.dat attachments that can cause compatibility issues when sending emails to external recipients using non-Outlook email clients. This improves email compatibility and reduces support issues with external partners and customers.", + "addedComponent": [], + "label": "Disable TNEF/winmail.dat", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-04-26", + "powershellEquivalent": "Set-RemoteDomain -Identity 'Default' -TNEFEnabled $false", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.FocusedInbox", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the default Focused Inbox state for the tenant. This can be overridden by the user.", + "docsDescription": "Sets the default Focused Inbox state for the tenant. This can be overridden by the user in their Outlook settings. For more information, see [Microsoft's documentation.](https://support.microsoft.com/en-us/office/focused-inbox-for-outlook-f445ad7f-02f4-4294-a82e-71d8964e3978)", + "executiveText": "Configures the default setting for Outlook's Focused Inbox feature, which automatically sorts important emails into a focused view while placing less important emails in a separate section. This can improve employee productivity by reducing email clutter, though users can adjust this setting individually.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select value", + "name": "standards.FocusedInbox.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + } + ], + "label": "Set Focused Inbox state", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-04-26", + "powershellEquivalent": "Set-OrganizationConfig -FocusedInboxOn $true or $false", + "recommendedBy": [] + }, + { + "name": "standards.CloudMessageRecall", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the Cloud Message Recall state for the tenant. This allows users to recall messages from the cloud.", + "docsDescription": "Sets the default state for Cloud Message Recall for the tenant. By default this is enabled. You can read more about the feature [here.](https://techcommunity.microsoft.com/t5/exchange-team-blog/cloud-based-message-recall-in-exchange-online/ba-p/3744714)", + "executiveText": "Enables employees to recall or retract emails they've sent, helping prevent embarrassing mistakes or accidental data sharing. This feature can reduce the impact of human errors in email communication and provides a safety net for sensitive information accidentally sent to wrong recipients.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select value", + "name": "standards.CloudMessageRecall.state", + "options": [ + { + "label": "Enabled", + "value": "true" + }, + { + "label": "Disabled", + "value": "false" + } + ] + } + ], + "label": "Set Cloud Message Recall state", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-05-31", + "powershellEquivalent": "Set-OrganizationConfig -MessageRecallEnabled", + "recommendedBy": [] + }, + { + "name": "standards.AutoExpandArchive", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Enables auto-expanding archives for the tenant", + "docsDescription": "Enables auto-expanding archives for the tenant. Does not enable archives for users.", + "executiveText": "Enables automatic expansion of email archive storage when users approach their archive limits, ensuring continuous email retention without manual intervention. This prevents email storage issues and maintains compliance with data retention policies without requiring ongoing administrative management.", + "addedComponent": [], + "label": "Enable Auto-expanding archives", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2021-11-16", + "powershellEquivalent": "Set-OrganizationConfig -AutoExpandingArchive", + "recommendedBy": [] + }, + { + "name": "standards.TwoClickEmailProtection", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Configures the two-click confirmation requirement for viewing encrypted/protected emails in OWA and new Outlook. When enabled, users must click \"View message\" before accessing protected content, providing an additional layer of privacy protection.", + "docsDescription": "Configures the TwoClickMailPreviewEnabled setting in Exchange Online organization configuration. This security feature requires users to click \"View message\" before accessing encrypted or protected emails in Outlook on the web (OWA) and new Outlook for Windows. This provides additional privacy protection by preventing protected content from automatically displaying, giving users time to ensure their screen is not visible to others before viewing sensitive content. The feature helps protect against shoulder surfing and accidental disclosure of confidential information.", + "executiveText": "Requires employees to click twice before viewing encrypted or sensitive emails, preventing accidental exposure of confidential information when screens might be visible to others. This privacy protection helps prevent shoulder surfing and ensures employees are intentional about viewing sensitive content.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.TwoClickEmailProtection.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + } + ], + "label": "Set two-click confirmation for encrypted emails in New Outlook", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-13", + "powershellEquivalent": "Set-OrganizationConfig -TwoClickMailPreviewEnabled $true | $false", + "recommendedBy": [] + }, + { + "name": "standards.EnableOnlineArchiving", + "cat": "Exchange Standards", + "tag": ["Essential 8 (1511)", "NIST CSF 2.0 (PR.DS-11)"], + "helpText": "Enables the In-Place Online Archive for all UserMailboxes with a valid license.", + "executiveText": "Automatically enables online email archiving for all licensed employees, providing additional storage for older emails while maintaining easy access. This helps manage mailbox sizes, improves email performance, and supports compliance with data retention requirements.", + "addedComponent": [], + "label": "Enable Online Archive for all users", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-01-20", + "powershellEquivalent": "Enable-Mailbox -Archive $true", + "recommendedBy": [] + }, + { + "name": "standards.EnableLitigationHold", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Enables litigation hold for all UserMailboxes with a valid license.", + "executiveText": "Preserves all email content for legal and compliance purposes by preventing permanent deletion of emails, even when users attempt to delete them. This is essential for organizations subject to legal discovery requirements or regulatory compliance mandates.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.EnableLitigationHold.days", + "required": false, + "label": "Days to apply for litigation hold" + } + ], + "label": "Enable Litigation Hold for all users", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-06-25", + "powershellEquivalent": "Set-Mailbox -LitigationHoldEnabled $true", + "recommendedBy": [] + }, + { + "name": "standards.SpoofWarn", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (6.2.3)"], + "helpText": "Adds or removes indicators to e-mail messages received from external senders in Outlook. Works on all Outlook clients/OWA", + "docsDescription": "Adds or removes indicators to e-mail messages received from external senders in Outlook. You can read more about this feature on [Microsoft's Exchange Team Blog.](https://techcommunity.microsoft.com/t5/exchange-team-blog/native-external-sender-callouts-on-email-in-outlook/ba-p/2250098)", + "executiveText": "Displays visual warnings in Outlook when emails come from external senders, helping employees identify potentially suspicious messages and reducing the risk of phishing attacks. This security feature makes it easier for staff to distinguish between internal and external communications.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select value", + "name": "standards.SpoofWarn.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": false, + "label": "Enter allowed senders(domain.com, *.domain.com or test@domain.com)", + "name": "standards.SpoofWarn.AllowListAdd" + } + ], + "label": "Enable or disable 'external' warning in Outlook", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2021-11-16", + "powershellEquivalent": "Set-ExternalInOutlook \u2013Enabled $true or $false", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.EnableMailTips", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (6.5.2)", "exo_mailtipsenabled"], + "helpText": "Enables all MailTips in Outlook. MailTips are the notifications Outlook and Outlook on the web shows when an email you create, meets some requirements", + "executiveText": "Enables helpful notifications in Outlook that warn users about potential email issues, such as sending to large groups, external recipients, or invalid addresses. This reduces email mistakes and improves communication efficiency by providing real-time guidance to employees.", + "addedComponent": [ + { + "type": "number", + "name": "standards.EnableMailTips.MailTipsLargeAudienceThreshold", + "label": "Number of recipients to trigger the large audience MailTip (Default is 25)", + "placeholder": "Enter a profile name", + "defaultValue": 25 + } + ], + "label": "Enable all MailTips", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-01-14", + "powershellEquivalent": "Set-OrganizationConfig", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.TeamsMeetingsByDefault", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the default state for automatically turning meetings into Teams meetings for the tenant. This can be overridden by the user in Outlook.", + "executiveText": "Automatically adds Microsoft Teams meeting links to calendar invitations by default, streamlining the process of creating virtual meetings. This improves collaboration efficiency and ensures consistent meeting experiences across the organization, though users can override this setting when needed.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.TeamsMeetingsByDefault.state", + "options": [ + { + "label": "Enabled", + "value": "true" + }, + { + "label": "Disabled", + "value": "false" + } + ] + } + ], + "label": "Set Teams Meetings by default state", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-05-31", + "powershellEquivalent": "Set-OrganizationConfig -OnlineMeetingsByDefaultEnabled", + "recommendedBy": [] + }, + { + "name": "standards.DisableViva", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Disables the daily viva reports for all users. This standard requires the CIPP-SAM application to have the Company Administrator (Global Admin) role in the tenant. Enable this using CIPP > Advanced > Super Admin > SAM App Roles. Activate the roles with a CPV refresh.", + "docsDescription": "", + "executiveText": "Disables daily Microsoft Viva Insights reports that are automatically sent to employees, reducing email volume and allowing organizations to control when and how productivity insights are shared. This can help prevent information overload while maintaining the ability to access insights when needed.", + "addedComponent": [], + "label": "Disable daily Insight/Viva reports", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-05-25", + "powershellEquivalent": "Set-UserBriefingConfig", + "recommendedBy": [] + }, + { + "name": "standards.RotateDKIM", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (2.1.9)"], + "helpText": "Rotate DKIM keys that are 1024 bit to 2048 bit", + "executiveText": "Upgrades email security by replacing older 1024-bit encryption keys with stronger 2048-bit keys for email authentication. This improves the organization's email security posture and helps prevent email spoofing and tampering, maintaining trust with email recipients.", + "addedComponent": [], + "label": "Rotate DKIM keys that are 1024 bit to 2048 bit", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-03-14", + "powershellEquivalent": "Rotate-DkimSigningConfig", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.AddDKIM", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (2.1.9)"], + "helpText": "Enables DKIM for all domains that currently support it", + "executiveText": "Enables email authentication technology that digitally signs outgoing emails to verify they actually came from your organization. This prevents email spoofing, improves email deliverability, and protects the company's reputation by ensuring recipients can trust emails from your domains.", + "addedComponent": [], + "label": "Enables DKIM for all domains that currently support it", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-03-14", + "powershellEquivalent": "New-DkimSigningConfig and Set-DkimSigningConfig", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.AddDMARCToMOERA", + "cat": "Global Standards", + "tag": ["CIS M365 5.0 (2.1.10)", "Security", "PhishingProtection"], + "helpText": "Note: requires 'Domain Name Administrator' GDAP role. This should be enabled even if the MOERA (onmicrosoft.com) domains is not used for sending. Enabling this prevents email spoofing. The default value is 'v=DMARC1; p=reject;' recommended because the domain is only used within M365 and reporting is not needed. Omitting pct tag default to 100%", + "docsDescription": "Note: requires 'Domain Name Administrator' GDAP role. Adds a DMARC record to MOERA (onmicrosoft.com) domains. This should be enabled even if the MOERA (onmicrosoft.com) domains is not used for sending. Enabling this prevents email spoofing. The default record is 'v=DMARC1; p=reject;' recommended because the domain is only used within M365 and reporting is not needed. Omitting pct tag default to 100%", + "executiveText": "Implements advanced email security for Microsoft's default domain names (onmicrosoft.com) to prevent criminals from impersonating your organization. This blocks fraudulent emails that could damage your company's reputation and protects partners and customers from phishing attacks using your domain names.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": true, + "required": false, + "placeholder": "v=DMARC1; p=reject; (recommended)", + "label": "Value", + "name": "standards.AddDMARCToMOERA.RecordValue", + "options": [ + { + "label": "v=DMARC1; p=reject; (recommended)", + "value": "v=DMARC1; p=reject;" + } + ] + } + ], + "label": "Enables DMARC on MOERA (onmicrosoft.com) domains", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-16", + "powershellEquivalent": "Portal only", + "recommendedBy": ["CIS", "Microsoft"] + }, + { + "name": "standards.EnableMailboxAuditing", + "cat": "Exchange Standards", + "tag": [ + "CIS M365 5.0 (6.1.1)", + "CIS M365 5.0 (6.1.2)", + "CIS M365 5.0 (6.1.3)", + "exo_mailboxaudit", + "Essential 8 (1509)", + "Essential 8 (1683)", + "NIST CSF 2.0 (DE.CM-09)" + ], + "helpText": "Enables Mailbox auditing for all mailboxes and on tenant level. Disables audit bypass on all mailboxes. Unified Audit Log needs to be enabled for this standard to function.", + "docsDescription": "Enables mailbox auditing on tenant level and for all mailboxes. Disables audit bypass on all mailboxes. By default Microsoft does not enable mailbox auditing for Resource Mailboxes, Public Folder Mailboxes and DiscoverySearch Mailboxes. Unified Audit Log needs to be enabled for this standard to function.", + "executiveText": "Enables comprehensive logging of all email access and modifications across all employee mailboxes, providing detailed audit trails for security investigations and compliance requirements. This helps detect unauthorized access, data breaches, and supports regulatory compliance efforts.", + "addedComponent": [], + "label": "Enable Mailbox auditing", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-01-08", + "powershellEquivalent": "Set-OrganizationConfig -AuditDisabled $false", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.SendReceiveLimitTenant", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the Send and Receive limits for new users. Valid values are 1MB to 150MB", + "executiveText": "Establishes standard email attachment size limits for all new employees, balancing functionality with system performance and security. This prevents email system overload from large attachments while ensuring employees can share necessary files through appropriate channels.", + "addedComponent": [ + { + "type": "number", + "name": "standards.SendReceiveLimitTenant.SendLimit", + "label": "Send limit in MB (Default is 35)", + "defaultValue": 35 + }, + { + "type": "number", + "name": "standards.SendReceiveLimitTenant.ReceiveLimit", + "label": "Receive Limit in MB (Default is 36)", + "defaultValue": 36 + } + ], + "label": "Set send/receive size limits", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-11-16", + "powershellEquivalent": "Set-MailboxPlan", + "recommendedBy": [] + }, + { + "name": "standards.calDefault", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the default sharing level for the default calendar, for all users", + "docsDescription": "Sets the default sharing level for the default calendar for all users in the tenant. You can read about the different sharing levels [here.](https://learn.microsoft.com/en-us/powershell/module/exchange/set-mailboxfolderpermission?view=exchange-ps#-accessrights)", + "executiveText": "Configures how much calendar information employees share by default with colleagues, balancing collaboration needs with privacy. This setting determines whether others can see meeting details, free/busy times, or just availability, helping optimize scheduling while protecting sensitive meeting information.", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select Sharing Level", + "name": "standards.calDefault.permissionLevel", + "options": [ + { + "label": "Owner - The user can create, read, edit, and delete all items in the folder, and create subfolders. The user is both folder owner and folder contact.", + "value": "Owner" + }, + { + "label": "Publishing Editor - The user can create, read, edit, and delete all items in the folder, and create subfolders.", + "value": "PublishingEditor" + }, + { + "label": "Editor - The user can create items in the folder. The contents of the folder do not appear.", + "value": "Editor" + }, + { + "label": "Publishing Author. The user can read, create all items/subfolders. Can modify and delete only items they create.", + "value": "PublishingAuthor" + }, + { + "label": "Author - The user can create and read items, and modify and delete items that they create.", + "value": "Author" + }, + { + "label": "Non Editing Author - The user has full read access and create items. Can can delete only own items.", + "value": "NonEditingAuthor" + }, + { + "label": "Reviewer - The user can read all items in the folder.", + "value": "Reviewer" + }, + { + "label": "Contributor - The user can create items and folders.", + "value": "Contributor" + }, + { + "label": "Availability Only - Indicates that the user can view only free/busy time within the calendar.", + "value": "AvailabilityOnly" + }, + { + "label": "Limited Details - The user can view free/busy time within the calendar and the subject and location of appointments.", + "value": "LimitedDetails" + }, + { + "label": "None - The user has no permissions on the folder.", + "value": "none" + } + ] + } + ], + "label": "Set Sharing Level for Default calendar", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-04-27", + "powershellEquivalent": "Set-MailboxFolderPermission", + "recommendedBy": [] + }, + { + "name": "standards.EXOOutboundSpamLimits", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (2.1.6)"], + "helpText": "Configures the outbound spam recipient limits (external per hour, internal per hour, per day) and the action to take when a limit is reached. The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one. ", + "docsDescription": "Configures the Exchange Online outbound spam recipient limits for external per hour, internal per hour, and per day, along with the action to take (e.g., BlockUser, Alert) when these limits are exceeded. This helps prevent abuse and manage email flow. Microsoft's recommendations can be found [here.](https://learn.microsoft.com/en-us/defender-office-365/recommended-settings-for-eop-and-office365#eop-outbound-spam-policy-settings) The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one.", + "executiveText": "Sets limits on how many emails employees can send per hour and per day to prevent spam and protect the organization's email reputation. When limits are exceeded, the system can alert administrators or temporarily block the user, helping detect compromised accounts or prevent abuse.", + "addedComponent": [ + { + "type": "number", + "name": "standards.EXOOutboundSpamLimits.RecipientLimitExternalPerHour", + "label": "External Recipient Limit Per Hour", + "defaultValue": 400 + }, + { + "type": "number", + "name": "standards.EXOOutboundSpamLimits.RecipientLimitInternalPerHour", + "label": "Internal Recipient Limit Per Hour", + "defaultValue": 800 + }, + { + "type": "number", + "name": "standards.EXOOutboundSpamLimits.RecipientLimitPerDay", + "label": "Daily Recipient Limit", + "defaultValue": 800 + }, + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "name": "standards.EXOOutboundSpamLimits.ActionWhenThresholdReached", + "label": "Action When Threshold Reached", + "options": [ + { + "label": "Alert", + "value": "Alert" + }, + { + "label": "Block User", + "value": "BlockUser" + }, + { + "label": "Block user from sending mail for the rest of the day", + "value": "BlockUserForToday" + } + ] + } + ], + "label": "Set Exchange Outbound Spam Limits", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-05-13", + "powershellEquivalent": "Set-HostedOutboundSpamFilterPolicy", + "recommendedBy": ["CIPP", "CIS"] + }, + { + "name": "standards.DisableExternalCalendarSharing", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (1.3.3)", "exo_individualsharing"], + "helpText": "Disables the ability for users to share their calendar with external users. Only for the default policy, so exclusions can be made if needed.", + "docsDescription": "Disables external calendar sharing for the entire tenant. This is not a widely used feature, and it's therefore unlikely that this will impact users. Only for the default policy, so exclusions can be made if needed by making a new policy and assigning it to users.", + "executiveText": "Prevents employees from sharing their calendars with external parties, protecting sensitive meeting information and internal schedules from unauthorized access. This security measure helps maintain confidentiality of business activities while still allowing internal collaboration.", + "addedComponent": [], + "label": "Disable external calendar sharing", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-01-08", + "powershellEquivalent": "Get-SharingPolicy | Set-SharingPolicy -Enabled $False", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.AutoAddProxy", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Automatically adds all available domains as a proxy address.", + "docsDescription": "Automatically finds all available domain names in the tenant, and tries to add proxy addresses based on the user's UPN to each of these.", + "executiveText": "Automatically creates email addresses for employees across all company domains, ensuring they can receive emails sent to any of the organization's domain names. This improves email delivery reliability and maintains consistent communication channels across different business units or brands.", + "addedComponent": [], + "label": "Automatically deploy proxy addresses", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-02-07", + "powershellEquivalent": "Set-Mailbox -EmailAddresses @{add=$EmailAddress}", + "recommendedBy": [], + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + } + }, + { + "name": "standards.DisableAdditionalStorageProviders", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (6.5.3)", "exo_storageproviderrestricted"], + "helpText": "Disables the ability for users to open files in Outlook on the Web, from other providers such as Box, Dropbox, Facebook, Google Drive, OneDrive Personal, etc.", + "docsDescription": "Disables additional storage providers in OWA. This is to prevent users from using personal storage providers like Dropbox, Google Drive, etc. Usually this has little user impact.", + "executiveText": "Prevents employees from accessing personal cloud storage services like Dropbox or Google Drive through Outlook on the web, reducing data security risks and ensuring company information stays within approved corporate systems. This helps maintain data governance and prevents accidental data leaks.", + "addedComponent": [], + "label": "Disable additional storage providers in OWA", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-01-17", + "powershellEquivalent": "Get-OwaMailboxPolicy | Set-OwaMailboxPolicy -AdditionalStorageProvidersEnabled $False", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.AntiSpamSafeList", + "cat": "Defender Standards", + "tag": ["CIS M365 5.0 (2.1.13)"], + "helpText": "Sets the anti-spam connection filter policy option 'safe list' in Defender.", + "docsDescription": "Sets [Microsoft's built-in 'safe list'](https://learn.microsoft.com/en-us/powershell/module/exchange/set-hostedconnectionfilterpolicy?view=exchange-ps#-enablesafelist) in the anti-spam connection filter policy, rather than setting a custom safe/block list of IPs.", + "executiveText": "Enables Microsoft's pre-approved list of trusted email servers to improve email delivery from legitimate sources while maintaining spam protection. This reduces false positives where legitimate emails might be blocked while still protecting against spam and malicious emails.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.AntiSpamSafeList.EnableSafeList", + "label": "Enable Safe List" + } + ], + "label": "Set Anti-Spam Connection Filter Safe List", + "impact": "Medium Impact", + "impactColour": "info", + "addedDate": "2025-02-15", + "powershellEquivalent": "Set-HostedConnectionFilterPolicy \"Default\" -EnableSafeList $true", + "recommendedBy": [] + }, + { + "name": "standards.ShortenMeetings", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the shorten meetings settings on a tenant level. This will shorten meetings by the selected amount of minutes. Valid values are 0 to 29. Short meetings are under 60 minutes, long meetings are over 60 minutes.", + "executiveText": "Automatically shortens calendar meetings by a specified number of minutes to provide buffer time between meetings, reducing back-to-back scheduling stress and allowing employees time to transition between meetings. This improves work-life balance and meeting effectiveness.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select value", + "name": "standards.ShortenMeetings.ShortenEventScopeDefault", + "options": [ + { + "label": "Disabled/None", + "value": "None" + }, + { + "label": "End early", + "value": "EndEarly" + }, + { + "label": "Start late", + "value": "StartLate" + } + ] + }, + { + "type": "number", + "name": "standards.ShortenMeetings.DefaultMinutesToReduceShortEventsBy", + "label": "Minutes to reduce short calendar events by (Default is 5)", + "defaultValue": 5 + }, + { + "type": "number", + "name": "standards.ShortenMeetings.DefaultMinutesToReduceLongEventsBy", + "label": "Minutes to reduce long calendar events by (Default is 10)", + "defaultValue": 10 + } + ], + "label": "Set shorten meetings state", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-05-27", + "powershellEquivalent": "Set-OrganizationConfig -ShortenEventScopeDefault -DefaultMinutesToReduceShortEventsBy -DefaultMinutesToReduceLongEventsBy", + "recommendedBy": [] + }, + { + "name": "standards.Bookings", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the state of Bookings on the tenant. Bookings is a scheduling tool that allows users to book appointments with others both internal and external.", + "docsDescription": "", + "executiveText": "Controls whether employees can use Microsoft Bookings to create online appointment scheduling pages for internal and external clients. This feature can improve customer service and streamline appointment management, but may need to be controlled for security or business process reasons.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select value", + "name": "standards.Bookings.state", + "options": [ + { + "label": "Enabled", + "value": "true" + }, + { + "label": "Disabled", + "value": "false" + } + ] + } + ], + "label": "Set Bookings state", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-05-31", + "powershellEquivalent": "Set-OrganizationConfig -BookingsEnabled", + "recommendedBy": [] + }, + { + "name": "standards.EXODirectSend", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the state of Direct Send in Exchange Online. Direct Send allows applications to send emails directly to Exchange Online mailboxes as the tenants domains, without requiring authentication.", + "docsDescription": "Controls whether applications can use Direct Send to send emails directly to Exchange Online mailboxes as the tenants domains, without requiring authentication. A detailed explanation from Microsoft can be found [here.](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365)", + "executiveText": "Controls whether business applications and devices (like printers or scanners) can send emails through the company's email system without authentication. While this enables convenient features like scan-to-email, it may pose security risks and should be carefully managed.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Select value", + "name": "standards.EXODirectSend.state", + "options": [ + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + } + ], + "label": "Set Direct Send state", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-05-28", + "powershellEquivalent": "Set-OrganizationConfig -RejectDirectSend $true/$false", + "recommendedBy": [] + }, + { + "name": "standards.DisableOutlookAddins", + "cat": "Exchange Standards", + "tag": [ + "CIS M365 5.0 (6.3.1)", + "exo_outlookaddins", + "NIST CSF 2.0 (PR.AA-05)", + "NIST CSF 2.0 (PR.PS-05)" + ], + "helpText": "Disables the ability for users to install add-ins in Outlook. This is to prevent users from installing malicious add-ins.", + "docsDescription": "Disables users from being able to install add-ins in Outlook. Only admins are able to approve add-ins for the users. This is done to reduce the threat surface for data exfiltration.", + "executiveText": "Prevents employees from installing third-party add-ins in Outlook without administrative approval, reducing security risks from potentially malicious extensions. This ensures only vetted and approved tools can access company email data while maintaining centralized control over email functionality.", + "addedComponent": [], + "label": "Disable users from installing add-ins in Outlook", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-02-05", + "powershellEquivalent": "Get-ManagementRoleAssignment | Remove-ManagementRoleAssignment", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.SafeSendersDisable", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Loops through all users and removes the Safe Senders list. This is to prevent SPF bypass attacks, as the Safe Senders list is not checked by SPF.", + "executiveText": "Removes user-defined safe sender lists to prevent security bypasses where malicious emails could avoid spam filtering. This ensures all emails go through proper security screening, even if users have previously marked senders as 'safe', improving overall email security.", + "addedComponent": [], + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "label": "Remove Safe Senders to prevent SPF bypass", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2023-10-26", + "powershellEquivalent": "Set-MailboxJunkEmailConfiguration", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DelegateSentItems", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets emails sent as and on behalf of shared mailboxes to also be stored in the shared mailbox sent items folder", + "docsDescription": "This makes sure that e-mails sent from shared mailboxes or delegate mailboxes, end up in the mailbox of the shared/delegate mailbox instead of the sender, allowing you to keep replies in the same mailbox as the original e-mail.", + "executiveText": "Ensures emails sent from shared mailboxes (like info@company.com) are stored in the shared mailbox rather than the individual sender's mailbox. This maintains complete email threads in one location, improving collaboration and ensuring all team members can see the full conversation history.", + "addedComponent": [ + { + "type": "switch", + "label": "Include user mailboxes", + "name": "standards.DelegateSentItems.IncludeUserMailboxes" + } + ], + "label": "Set mailbox Sent Items delegation (Sent items for shared mailboxes)", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2021-11-16", + "powershellEquivalent": "Set-Mailbox", + "recommendedBy": [] + }, + { + "name": "standards.SendFromAlias", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Enables the ability for users to send from their alias addresses.", + "docsDescription": "Allows users to change the 'from' address to any set in their Azure AD Profile.", + "executiveText": "Allows employees to send emails from their alternative email addresses (aliases) rather than just their primary address. This is useful for employees who manage multiple roles or departments, enabling them to send emails from the most appropriate address for the context.", + "addedComponent": [], + "label": "Allow users to send from their alias addresses", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2022-05-25", + "powershellEquivalent": "Set-Mailbox", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.UserSubmissions", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Set the state of the spam submission button in Outlook", + "docsDescription": "Set the state of the built-in Report button in Outlook. This gives the users the ability to report emails as spam or phish.", + "executiveText": "Enables employees to easily report suspicious emails directly from Outlook, helping improve the organization's spam and phishing detection systems. This crowdsourced approach to security allows users to contribute to threat detection while providing valuable feedback to enhance email security filters.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select value", + "name": "standards.UserSubmissions.state", + "options": [ + { + "label": "Enabled", + "value": "enable" + }, + { + "label": "Disabled", + "value": "disable" + } + ] + }, + { + "type": "textField", + "name": "standards.UserSubmissions.email", + "required": false, + "label": "Destination email address" + } + ], + "label": "Set the state of the built-in Report button in Outlook", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-06-28", + "powershellEquivalent": "New-ReportSubmissionPolicy or Set-ReportSubmissionPolicy and New-ReportSubmissionRule or Set-ReportSubmissionRule", + "recommendedBy": [] + }, + { + "name": "standards.DisableSharedMailbox", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (1.2.2)", "CISA (MS.AAD.10.1v1)", "NIST CSF 2.0 (PR.AA-01)"], + "helpText": "Blocks login for all accounts that are marked as a shared mailbox. This is Microsoft best practice to prevent direct logons to shared mailboxes.", + "docsDescription": "Shared mailboxes can be directly logged into if the password is reset, this presents a security risk as do all shared login credentials. Microsoft's recommendation is to disable the user account for shared mailboxes. It would be a good idea to review the sign-in reports to establish potential impact.", + "executiveText": "Prevents direct login to shared mailbox accounts (like info@company.com), ensuring they can only be accessed through authorized users' accounts. This security measure eliminates the risk of shared passwords and unauthorized access while maintaining proper access control and audit trails.", + "addedComponent": [], + "label": "Disable Shared Mailbox Entra accounts", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2021-11-16", + "powershellEquivalent": "Get-Mailbox & Update-MgUser", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.DisableResourceMailbox", + "cat": "Exchange Standards", + "tag": ["NIST CSF 2.0 (PR.AA-01)"], + "helpText": "Blocks login for all accounts that are marked as a resource mailbox and does not have a license assigned. Accounts that are synced from on-premises AD are excluded, as account state is managed in the on-premises AD.", + "docsDescription": "Resource mailboxes can be directly logged into if the password is reset, this presents a security risk as do all shared login credentials. Microsoft's recommendation is to disable the user account for resource mailboxes. Accounts that are synced from on-premises AD are excluded, as account state is managed in the on-premises AD.", + "executiveText": "Prevents direct login to resource mailbox accounts (like conference rooms or equipment), ensuring they can only be managed through proper administrative channels. This security measure eliminates potential unauthorized access to resource scheduling systems while maintaining proper booking functionality.", + "addedComponent": [], + "label": "Disable Unlicensed Resource Mailbox Entra accounts", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-06-01", + "powershellEquivalent": "Get-Mailbox & Update-MgUser", + "recommendedBy": ["Microsoft", "CIPP"] + }, + { + "name": "standards.EXODisableAutoForwarding", + "cat": "Exchange Standards", + "tag": [ + "CIS M365 5.0 (6.2.1)", + "mdo_autoforwardingmode", + "mdo_blockmailforward", + "CISA (MS.EXO.4.1v1)", + "NIST CSF 2.0 (PR.DS-02)" + ], + "helpText": "Disables the ability for users to automatically forward e-mails to external recipients.", + "docsDescription": "Disables the ability for users to automatically forward e-mails to external recipients. This is to prevent data exfiltration. Please check if there are any legitimate use cases for this feature before implementing, like forwarding invoices and such.", + "executiveText": "Prevents employees from automatically forwarding company emails to external addresses, protecting against data leaks and unauthorized information sharing. This security measure helps maintain control over sensitive business communications while preventing both accidental and intentional data exfiltration.", + "addedComponent": [], + "label": "Disable automatic forwarding to external recipients", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2024-07-26", + "powershellEquivalent": "Set-HostedOutboundSpamFilterPolicy -AutoForwardingMode 'Off'", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.RetentionPolicyTag", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (6.4.1)"], + "helpText": "Creates a CIPP - Deleted Items retention policy tag that permanently deletes items in the Deleted Items folder after X days.", + "docsDescription": "Creates a CIPP - Deleted Items retention policy tag that permanently deletes items in the Deleted Items folder after X days.", + "executiveText": "Automatically and permanently removes deleted emails after a specified number of days, helping manage storage costs and ensuring compliance with data retention policies. This prevents accumulation of unnecessary deleted items while maintaining a reasonable recovery window for accidentally deleted emails.", + "addedComponent": [ + { + "type": "number", + "name": "standards.RetentionPolicyTag.AgeLimitForRetention", + "label": "Retention Days", + "required": true + } + ], + "label": "Retention Policy, permanently delete items in Deleted Items after X days", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2025-02-02", + "powershellEquivalent": "Set-RetentionPolicyTag", + "recommendedBy": [] + }, + { + "name": "standards.QuarantineRequestAlert", + "cat": "Defender Standards", + "tag": [], + "helpText": "Sets a e-mail address to alert when a User requests to release a quarantined message.", + "docsDescription": "Sets a e-mail address to alert when a User requests to release a quarantined message. This is useful for monitoring and ensuring that the correct messages are released.", + "executiveText": "Notifies IT administrators when employees request to release emails that were quarantined for security reasons, enabling oversight of potentially dangerous messages. This helps ensure that legitimate emails are released while maintaining security controls over suspicious content.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.QuarantineRequestAlert.NotifyUser", + "label": "E-mail to receive the alert" + } + ], + "label": "Quarantine Release Request Alert", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-07-15", + "powershellEquivalent": "New-ProtectionAlert and Set-ProtectionAlert", + "recommendedBy": [] + }, + { + "name": "standards.SharePointMassDeletionAlert", + "cat": "Defender Standards", + "tag": [], + "helpText": "Sets a e-mail address to alert when a User deletes more than 20 SharePoint files within 60 minutes. NB: Requires a Office 365 E5 subscription, Office 365 E3 with Threat Intelligence or Office 365 EquivioAnalytics add-on.", + "docsDescription": "Sets a e-mail address to alert when a User deletes more than 20 SharePoint files within 60 minutes. This is useful for monitoring and ensuring that the correct SharePoint files are deleted. NB: Requires a Office 365 E5 subscription, Office 365 E3 with Threat Intelligence or Office 365 EquivioAnalytics add-on.", + "executiveText": "Alerts administrators when employees delete large numbers of SharePoint files in a short time period, helping detect potential data destruction attacks, ransomware, or accidental mass deletions. This early warning system enables rapid response to protect critical business documents and data.", + "addedComponent": [ + { + "type": "number", + "name": "standards.SharePointMassDeletionAlert.Threshold", + "label": "Max files to delete within the time frame", + "defaultValue": 20 + }, + { + "type": "number", + "name": "standards.SharePointMassDeletionAlert.TimeWindow", + "label": "Time frame in minutes", + "defaultValue": 60 + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": true, + "name": "standards.SharePointMassDeletionAlert.NotifyUser", + "label": "E-mail to receive the alert" + } + ], + "label": "SharePoint Mass Deletion Alert", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-04-07", + "powershellEquivalent": "New-ProtectionAlert and Set-ProtectionAlert", + "recommendedBy": [] + }, + { + "name": "standards.SafeLinksTemplatePolicy", + "label": "SafeLinks Policy Template", + "cat": "Templates", + "multiple": false, + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "impact": "Medium Impact", + "addedDate": "2025-04-29", + "helpText": "Deploy and manage SafeLinks policy templates to protect against malicious URLs in emails and Office documents.", + "executiveText": "Deploys standardized URL protection policies that automatically scan and verify links in emails and documents before users click them. This template-based approach ensures consistent protection against malicious websites and phishing attacks across the organization.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": true, + "creatable": false, + "name": "standards.SafeLinksTemplatePolicy.TemplateIds", + "label": "Select SafeLinks Policy Templates", + "api": { + "url": "/api/ListSafeLinksPolicyTemplates", + "labelField": "TemplateName", + "valueField": "GUID", + "queryKey": "ListSafeLinksPolicyTemplates" + } + } + ] + }, + { + "name": "standards.SafeLinksPolicy", + "cat": "Defender Standards", + "tag": [ + "CIS M365 5.0 (2.1.1)", + "mdo_safelinksforemail", + "mdo_safelinksforOfficeApps", + "NIST CSF 2.0 (DE.CM-09)" + ], + "helpText": "This creates a Safe Links policy that automatically scans, tracks, and and enables safe links for Email, Office, and Teams for both external and internal senders", + "addedComponent": [ + { + "type": "textField", + "name": "standards.SafeLinksPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default SafeLinks Policy" + }, + { + "type": "switch", + "label": "AllowClickThrough", + "name": "standards.SafeLinksPolicy.AllowClickThrough" + }, + { + "type": "switch", + "label": "DisableUrlRewrite", + "name": "standards.SafeLinksPolicy.DisableUrlRewrite" + }, + { + "type": "switch", + "label": "EnableOrganizationBranding", + "name": "standards.SafeLinksPolicy.EnableOrganizationBranding" + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": false, + "name": "standards.SafeLinksPolicy.DoNotRewriteUrls", + "label": "Do not rewrite the following URLs in email" + } + ], + "label": "Default Safe Links Policy", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-25", + "powershellEquivalent": "Set-SafeLinksPolicy or New-SafeLinksPolicy", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.AntiPhishPolicy", + "cat": "Defender Standards", + "tag": [ + "mdo_safeattachments", + "mdo_highconfidencespamaction", + "mdo_highconfidencephishaction", + "mdo_phisspamacation", + "mdo_spam_notifications_only_for_admins", + "mdo_antiphishingpolicies", + "mdo_phishthresholdlevel", + "CIS M365 5.0 (2.1.7)", + "NIST CSF 2.0 (DE.CM-09)" + ], + "helpText": "This creates a Anti-Phishing policy that automatically enables Mailbox Intelligence and spoofing, optional switches for Mail tips.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.AntiPhishPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default Anti-Phishing Policy" + }, + { + "type": "number", + "label": "Phishing email threshold. (Default 1)", + "name": "standards.AntiPhishPolicy.PhishThresholdLevel", + "defaultValue": 1 + }, + { + "type": "switch", + "label": "Show first contact safety tip", + "name": "standards.AntiPhishPolicy.EnableFirstContactSafetyTips", + "defaultValue": true + }, + { + "type": "switch", + "label": "Show user impersonation safety tip", + "name": "standards.AntiPhishPolicy.EnableSimilarUsersSafetyTips", + "defaultValue": true + }, + { + "type": "switch", + "label": "Show domain impersonation safety tip", + "name": "standards.AntiPhishPolicy.EnableSimilarDomainsSafetyTips", + "defaultValue": true + }, + { + "type": "switch", + "label": "Show user impersonation unusual characters safety tip", + "name": "standards.AntiPhishPolicy.EnableUnusualCharactersSafetyTips", + "defaultValue": true + }, + { + "type": "select", + "multiple": false, + "label": "If the message is detected as spoof by spoof intelligence", + "name": "standards.AntiPhishPolicy.AuthenticationFailAction", + "options": [ + { + "label": "Quarantine the message", + "value": "Quarantine" + }, + { + "label": "Move to Junk Folder", + "value": "MoveToJmf" + } + ] + }, + { + "type": "select", + "multiple": false, + "creatable": true, + "label": "Quarantine policy for Spoof", + "name": "standards.AntiPhishPolicy.SpoofQuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "select", + "multiple": false, + "label": "If a message is detected as user impersonation", + "name": "standards.AntiPhishPolicy.TargetedUserProtectionAction", + "options": [ + { + "label": "Move to Junk Folder", + "value": "MoveToJmf" + }, + { + "label": "Delete the message before its delivered", + "value": "Delete" + }, + { + "label": "Quarantine the message", + "value": "Quarantine" + } + ] + }, + { + "type": "select", + "multiple": false, + "creatable": true, + "label": "Quarantine policy for user impersonation", + "name": "standards.AntiPhishPolicy.TargetedUserQuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "select", + "multiple": false, + "label": "If a message is detected as domain impersonation", + "name": "standards.AntiPhishPolicy.TargetedDomainProtectionAction", + "options": [ + { + "label": "Move to Junk Folder", + "value": "MoveToJmf" + }, + { + "label": "Delete the message before its delivered", + "value": "Delete" + }, + { + "label": "Quarantine the message", + "value": "Quarantine" + } + ] + }, + { + "type": "select", + "multiple": false, + "creatable": true, + "label": "Quarantine policy for domain impersonation", + "name": "standards.AntiPhishPolicy.TargetedDomainQuarantineTag", + "options": [ + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + }, + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + } + ] + }, + { + "type": "select", + "multiple": false, + "label": "If Mailbox Intelligence detects an impersonated user", + "name": "standards.AntiPhishPolicy.MailboxIntelligenceProtectionAction", + "options": [ + { + "label": "Move to Junk Folder", + "value": "MoveToJmf" + }, + { + "label": "Delete the message before its delivered", + "value": "Delete" + }, + { + "label": "Quarantine the message", + "value": "Quarantine" + } + ] + }, + { + "type": "select", + "multiple": false, + "creatable": true, + "label": "Apply quarantine policy", + "name": "standards.AntiPhishPolicy.MailboxIntelligenceQuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + } + ], + "label": "Default Anti-Phishing Policy", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-25", + "powershellEquivalent": "Set-AntiPhishPolicy or New-AntiPhishPolicy", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.SafeAttachmentPolicy", + "cat": "Defender Standards", + "tag": [ + "CIS M365 5.0 (2.1.4)", + "mdo_safedocuments", + "mdo_commonattachmentsfilter", + "mdo_safeattachmentpolicy", + "NIST CSF 2.0 (DE.CM-09)" + ], + "helpText": "This creates a Safe Attachment policy", + "addedComponent": [ + { + "type": "textField", + "name": "standards.SafeAttachmentPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default Safe Attachment Policy" + }, + { + "type": "select", + "multiple": false, + "label": "Safe Attachment Action", + "name": "standards.SafeAttachmentPolicy.SafeAttachmentAction", + "options": [ + { + "label": "Allow", + "value": "Allow" + }, + { + "label": "Block", + "value": "Block" + }, + { + "label": "DynamicDelivery", + "value": "DynamicDelivery" + } + ] + }, + { + "type": "select", + "multiple": false, + "creatable": true, + "label": "QuarantineTag", + "name": "standards.SafeAttachmentPolicy.QuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "switch", + "label": "Redirect", + "name": "standards.SafeAttachmentPolicy.Redirect" + }, + { + "type": "textField", + "name": "standards.SafeAttachmentPolicy.RedirectAddress", + "label": "Redirect Address", + "required": false, + "condition": { + "field": "standards.SafeAttachmentPolicy.Redirect", + "compareType": "is", + "compareValue": true + } + } + ], + "label": "Default Safe Attachment Policy", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-25", + "powershellEquivalent": "Set-SafeAttachmentPolicy or New-SafeAttachmentPolicy", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.AtpPolicyForO365", + "cat": "Defender Standards", + "tag": ["CIS M365 5.0 (2.1.5)", "NIST CSF 2.0 (DE.CM-09)"], + "helpText": "This creates a Atp policy that enables Defender for Office 365 for SharePoint, OneDrive and Microsoft Teams.", + "addedComponent": [ + { + "type": "switch", + "label": "Allow people to click through Protected View even if Safe Documents identified the file as malicious", + "name": "standards.AtpPolicyForO365.AllowSafeDocsOpen", + "defaultValue": false, + "required": false + } + ], + "label": "Default Atp Policy For O365", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-25", + "powershellEquivalent": "Set-AtpPolicyForO365", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.PhishingSimulations", + "cat": "Defender Standards", + "tag": [], + "helpText": "This creates a phishing simulation policy that enables phishing simulations for the entire tenant.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": true, + "label": "Phishing Simulation Domains", + "name": "standards.PhishingSimulations.Domains" + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": true, + "label": "Phishing Simulation Sender IP Ranges", + "name": "standards.PhishingSimulations.SenderIpRanges" + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": false, + "label": "Phishing Simulation Urls", + "name": "standards.PhishingSimulations.PhishingSimUrls" + }, + { + "type": "switch", + "label": "Remove extra urls", + "name": "standards.PhishingSimulations.RemoveExtraUrls", + "defaultValue": false, + "required": false + } + ], + "label": "Phishing Simulation Configuration", + "impact": "Medium Impact", + "impactColour": "info", + "addedDate": "2025-03-27", + "powershellEquivalent": "New-TenantAllowBlockListItems, New-PhishSimOverridePolicy and New-ExoPhishSimOverrideRule", + "recommendedBy": [] + }, + { + "name": "standards.MalwareFilterPolicy", + "cat": "Defender Standards", + "tag": [ + "CIS M365 5.0 (2.1.2)", + "CIS M365 5.0 (2.1.3)", + "mdo_zapspam", + "mdo_zapphish", + "mdo_zapmalware", + "NIST CSF 2.0 (DE.CM-09)" + ], + "helpText": "This creates a Malware filter policy that enables the default File filter and Zero-hour auto purge for malware.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.MalwareFilterPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default Malware Policy" + }, + { + "type": "select", + "multiple": false, + "label": "FileTypeAction", + "name": "standards.MalwareFilterPolicy.FileTypeAction", + "options": [ + { + "label": "Reject", + "value": "Reject" + }, + { + "label": "Quarantine the message", + "value": "Quarantine" + } + ] + }, + { + "type": "textField", + "name": "standards.MalwareFilterPolicy.OptionalFileTypes", + "required": false, + "label": "Optional File Types, Comma separated" + }, + { + "type": "select", + "multiple": false, + "creatable": true, + "label": "QuarantineTag", + "name": "standards.MalwareFilterPolicy.QuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "switch", + "label": "Enable Internal Sender Admin Notifications", + "required": false, + "name": "standards.MalwareFilterPolicy.EnableInternalSenderAdminNotifications" + }, + { + "type": "textField", + "name": "standards.MalwareFilterPolicy.InternalSenderAdminAddress", + "required": false, + "label": "Internal Sender Admin Address", + "condition": { + "field": "standards.MalwareFilterPolicy.EnableInternalSenderAdminNotifications", + "compareType": "is", + "compareValue": true + } + }, + { + "type": "switch", + "label": "Enable External Sender Admin Notifications", + "required": false, + "name": "standards.MalwareFilterPolicy.EnableExternalSenderAdminNotifications" + }, + { + "type": "textField", + "name": "standards.MalwareFilterPolicy.ExternalSenderAdminAddress", + "required": false, + "label": "External Sender Admin Address", + "condition": { + "field": "standards.MalwareFilterPolicy.EnableExternalSenderAdminNotifications", + "compareType": "is", + "compareValue": true + } + } + ], + "label": "Default Malware Filter Policy", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-03-25", + "powershellEquivalent": "Set-MalwareFilterPolicy or New-MalwareFilterPolicy", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.PhishSimSpoofIntelligence", + "cat": "Defender Standards", + "tag": [], + "helpText": "This adds allowed domains to the Spoof Intelligence Allow/Block List.", + "addedComponent": [ + { + "type": "switch", + "label": "Remove extra domains from the allow list", + "name": "standards.PhishSimSpoofIntelligence.RemoveExtraDomains", + "defaultValue": false, + "required": false + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": false, + "label": "Allowed Domains", + "name": "standards.PhishSimSpoofIntelligence.AllowedDomains" + } + ], + "label": "Add allowed domains to Spoof Intelligence", + "impact": "Medium Impact", + "impactColour": "info", + "addedDate": "2025-03-28", + "powershellEquivalent": "New-TenantAllowBlockListSpoofItems", + "recommendedBy": [] + }, + { + "name": "standards.SpamFilterPolicy", + "cat": "Defender Standards", + "tag": [], + "helpText": "This standard creates a Spam filter policy similar to the default strict policy.", + "docsDescription": "This standard creates a Spam filter policy similar to the default strict policy, the following settings are configured to on by default: IncreaseScoreWithNumericIps, IncreaseScoreWithRedirectToOtherPort, MarkAsSpamEmptyMessages, MarkAsSpamJavaScriptInHtml, MarkAsSpamSpfRecordHardFail, MarkAsSpamFromAddressAuthFail, MarkAsSpamNdrBackscatter, MarkAsSpamBulkMail, InlineSafetyTipsEnabled, PhishZapEnabled, SpamZapEnabled", + "addedComponent": [ + { + "type": "textField", + "name": "standards.SpamFilterPolicy.name", + "label": "Policy Name", + "required": true, + "defaultValue": "CIPP Default Spam Filter Policy" + }, + { + "type": "number", + "label": "Bulk email threshold (Default 7)", + "name": "standards.SpamFilterPolicy.BulkThreshold", + "defaultValue": 7 + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "label": "Spam Action", + "name": "standards.SpamFilterPolicy.SpamAction", + "options": [ + { + "label": "Quarantine the message", + "value": "Quarantine" + }, + { + "label": "Move message to Junk Email folder", + "value": "MoveToJmf" + } + ] + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": true, + "label": "Spam Quarantine Tag", + "name": "standards.SpamFilterPolicy.SpamQuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "label": "High Confidence Spam Action", + "name": "standards.SpamFilterPolicy.HighConfidenceSpamAction", + "options": [ + { + "label": "Quarantine the message", + "value": "Quarantine" + }, + { + "label": "Move message to Junk Email folder", + "value": "MoveToJmf" + } + ] + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": true, + "label": "High Confidence Spam Quarantine Tag", + "name": "standards.SpamFilterPolicy.HighConfidenceSpamQuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "label": "Bulk Spam Action", + "name": "standards.SpamFilterPolicy.BulkSpamAction", + "options": [ + { + "label": "Quarantine the message", + "value": "Quarantine" + }, + { + "label": "Move message to Junk Email folder", + "value": "MoveToJmf" + } + ] + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": true, + "label": "Bulk Quarantine Tag", + "name": "standards.SpamFilterPolicy.BulkQuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "label": "Phish Spam Action", + "name": "standards.SpamFilterPolicy.PhishSpamAction", + "options": [ + { + "label": "Quarantine the message", + "value": "Quarantine" + }, + { + "label": "Move message to Junk Email folder", + "value": "MoveToJmf" + } + ] + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": true, + "label": "Phish Quarantine Tag", + "name": "standards.SpamFilterPolicy.PhishQuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": true, + "label": "High Confidence Phish Quarantine Tag", + "name": "standards.SpamFilterPolicy.HighConfidencePhishQuarantineTag", + "options": [ + { + "label": "AdminOnlyAccessPolicy", + "value": "AdminOnlyAccessPolicy" + }, + { + "label": "DefaultFullAccessPolicy", + "value": "DefaultFullAccessPolicy" + }, + { + "label": "DefaultFullAccessWithNotificationPolicy", + "value": "DefaultFullAccessWithNotificationPolicy" + } + ] + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.IncreaseScoreWithImageLinks", + "label": "Increase score if message contains image links to remote websites", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.IncreaseScoreWithBizOrInfoUrls", + "label": "Increase score if message contains links to .biz or .info domains", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.MarkAsSpamFramesInHtml", + "label": "Mark as spam if message contains HTML or iframe tags", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.MarkAsSpamObjectTagsInHtml", + "label": "Mark as spam if message contains HTML object tags", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.MarkAsSpamEmbedTagsInHtml", + "label": "Mark as spam if message contains HTML embed tags", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.MarkAsSpamFormTagsInHtml", + "label": "Mark as spam if message contains HTML form tags", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.MarkAsSpamWebBugsInHtml", + "label": "Mark as spam if message contains web bugs (also known as web beacons)", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.MarkAsSpamSensitiveWordList", + "label": "Mark as spam if message contains words from the sensitive words list", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.EnableLanguageBlockList", + "label": "Enable language block list", + "defaultValue": false + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": false, + "name": "standards.SpamFilterPolicy.LanguageBlockList", + "label": "Languages to block (uppercase ISO 639-1 two-letter)", + "condition": { + "field": "standards.SpamFilterPolicy.EnableLanguageBlockList", + "compareType": "is", + "compareValue": true + } + }, + { + "type": "switch", + "name": "standards.SpamFilterPolicy.EnableRegionBlockList", + "label": "Enable region block list", + "defaultValue": false + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": false, + "name": "standards.SpamFilterPolicy.RegionBlockList", + "label": "Regions to block (uppercase ISO 3166-1 two-letter)", + "condition": { + "field": "standards.SpamFilterPolicy.EnableRegionBlockList", + "compareType": "is", + "compareValue": true + } + }, + { + "type": "autoComplete", + "multiple": true, + "creatable": true, + "required": false, + "name": "standards.SpamFilterPolicy.AllowedSenderDomains", + "label": "Allowed sender domains" + } + ], + "label": "Default Spam Filter Policy", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-07-15", + "powershellEquivalent": "New-HostedContentFilterPolicy or Set-HostedContentFilterPolicy", + "recommendedBy": [] + }, + { + "name": "standards.QuarantineTemplate", + "cat": "Defender Standards", + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "tag": [], + "helpText": "This standard creates a Custom Quarantine Policies that can be used in Anti-Spam and all MDO365 policies. Quarantine Policies can be used to specify recipients permissions, enable end-user spam notifications, and specify the release action preference", + "executiveText": "Creates standardized quarantine policies that define how employees can interact with quarantined emails, including permissions to release, delete, or preview suspicious messages. This ensures consistent security handling across the organization while providing appropriate user access to manage quarantined content.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": true, + "name": "displayName", + "label": "Quarantine Display Name", + "required": true + }, + { + "type": "switch", + "label": "Enable end-user spam notifications", + "name": "ESNEnabled", + "defaultValue": true, + "required": false + }, + { + "type": "select", + "multiple": false, + "label": "Select release action preference", + "name": "ReleaseAction", + "options": [ + { + "label": "Allow recipients to request a message to be released from quarantine", + "value": "PermissionToRequestRelease" + }, + { + "label": "Allow recipients to release a message from quarantine", + "value": "PermissionToRelease" + } + ] + }, + { + "type": "switch", + "label": "Include Messages From Blocked Sender Address", + "name": "IncludeMessagesFromBlockedSenderAddress", + "defaultValue": false, + "required": false + }, + { + "type": "switch", + "label": "Allow recipients to delete message", + "name": "PermissionToDelete", + "defaultValue": false, + "required": false + }, + { + "type": "switch", + "label": "Allow recipients to preview message", + "name": "PermissionToPreview", + "defaultValue": false, + "required": false + }, + { + "type": "switch", + "label": "Allow recipients to block Sender Address", + "name": "PermissionToBlockSender", + "defaultValue": false, + "required": false + }, + { + "type": "switch", + "label": "Allow recipients to whitelist Sender Address", + "name": "PermissionToAllowSender", + "defaultValue": false, + "required": false + } + ], + "label": "Custom Quarantine Policy", + "multiple": true, + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-05-16", + "powershellEquivalent": "Set-QuarantinePolicy or New-QuarantinePolicy", + "recommendedBy": [] + }, + { + "name": "standards.intuneDeviceRetirementDays", + "cat": "Intune Standards", + "tag": [], + "helpText": "A value between 31 and 365 is supported. retired devices are removed from Intune after the specified number of days.", + "executiveText": "Automatically removes inactive devices from management after a specified period, helping maintain a clean device inventory and reducing security risks from abandoned or lost devices. This policy ensures that only actively used corporate devices remain in the management system.", + "addedComponent": [ + { + "type": "number", + "name": "standards.intuneDeviceRetirementDays.days", + "label": "Maximum days" + } + ], + "label": "Set inactive device retirement days", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-05-19", + "powershellEquivalent": "Graph API", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.intuneBrandingProfile", + "cat": "Intune Standards", + "tag": [], + "helpText": "Sets the branding profile for the Intune Company Portal app. This is a tenant wide setting and overrules any settings set on the app level.", + "executiveText": "Customizes the Intune Company Portal app with company branding, contact information, and support details, providing employees with a consistent corporate experience when managing their devices. This improves user experience and ensures employees know how to get IT support when needed.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.intuneBrandingProfile.displayName", + "label": "Organization name", + "required": false + }, + { + "type": "switch", + "name": "standards.intuneBrandingProfile.showLogo", + "label": "Show logo" + }, + { + "type": "switch", + "name": "standards.intuneBrandingProfile.showDisplayNameNextToLogo", + "label": "Show organization name next to logo", + "required": false + }, + { + "type": "textField", + "name": "standards.intuneBrandingProfile.contactITName", + "label": "Contact IT name", + "required": false + }, + { + "type": "textField", + "name": "standards.intuneBrandingProfile.contactITPhoneNumber", + "label": "Contact IT phone number", + "required": false + }, + { + "type": "textField", + "name": "standards.intuneBrandingProfile.contactITEmailAddress", + "label": "Contact IT email address", + "required": false + }, + { + "type": "textField", + "name": "standards.intuneBrandingProfile.contactITNotes", + "label": "Contact IT notes", + "required": false + }, + { + "type": "textField", + "name": "standards.intuneBrandingProfile.onlineSupportSiteName", + "label": "Online support site name", + "required": false + }, + { + "type": "textField", + "name": "standards.intuneBrandingProfile.onlineSupportSiteUrl", + "label": "Online support site URL", + "required": false + }, + { + "type": "textField", + "name": "standards.intuneBrandingProfile.privacyUrl", + "label": "Privacy statement URL", + "required": false + } + ], + "label": "Set Intune Company Portal branding profile", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-06-20", + "powershellEquivalent": "Graph API", + "recommendedBy": [] + }, + { + "name": "standards.IntuneComplianceSettings", + "cat": "Intune Standards", + "tag": [], + "helpText": "Sets the mark devices with no compliance policy assigned as compliance/non compliant and Compliance status validity period.", + "executiveText": "Configures how the system treats devices that don't have specific compliance policies and sets how often devices must check in to maintain their compliance status. This ensures proper security oversight of all corporate devices and maintains current compliance information.", + "addedComponent": [ + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "name": "standards.IntuneComplianceSettings.secureByDefault", + "label": "Mark devices with no compliance policy as", + "options": [ + { + "label": "Compliant", + "value": "false" + }, + { + "label": "Non-Compliant", + "value": "true" + } + ] + }, + { + "type": "number", + "name": "standards.IntuneComplianceSettings.deviceComplianceCheckinThresholdDays", + "label": "Compliance status validity period (days)" + } + ], + "label": "Set Intune Compliance Settings", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-11-12", + "powershellEquivalent": "Graph API", + "recommendedBy": [] + }, + { + "name": "standards.MDMScope", + "cat": "Intune Standards", + "tag": [], + "helpText": "Configures the MDM user scope. This also sets the terms of use, discovery and compliance URL to default URLs.", + "docsDescription": "Configures the MDM user scope. This also sets the terms of use URL, discovery URL and compliance URL to default values.", + "executiveText": "Defines which users can enroll their devices in mobile device management, controlling access to corporate resources and applications. This setting determines the scope of device management coverage and ensures appropriate users have access to necessary business tools.", + "addedComponent": [ + { + "name": "appliesTo", + "label": "MDM User Scope?", + "type": "radio", + "options": [ + { + "label": "All", + "value": "all" + }, + { + "label": "None", + "value": "none" + }, + { + "label": "Custom Group", + "value": "selected" + } + ] + }, + { + "type": "textField", + "name": "standards.MDMScope.customGroup", + "label": "Custom Group Name", + "required": false + } + ], + "label": "Configure MDM user scope", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-02-18", + "powershellEquivalent": "Graph API", + "recommendedBy": [] + }, + { + "name": "standards.DefaultPlatformRestrictions", + "cat": "Intune Standards", + "tag": ["CISA (MS.AAD.19.1v1)"], + "helpText": "Sets the default platform restrictions for enrolling devices into Intune. Note: Do not block personally owned if platform is blocked.", + "executiveText": "Controls which types of devices (iOS, Android, Windows, macOS) and ownership models (corporate vs. personal) can be enrolled in the company's device management system. This helps maintain security standards while supporting necessary business device types and usage scenarios.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.platformAndroidForWorkBlocked", + "label": "Block platform Android Enterprise (work profile)", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.personalAndroidForWorkBlocked", + "label": "Block personally owned Android Enterprise (work profile)", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.platformAndroidBlocked", + "label": "Block platform Android", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.personalAndroidBlocked", + "label": "Block personally owned Android", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.platformiOSBlocked", + "label": "Block platform iOS", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.personaliOSBlocked", + "label": "Block personally owned iOS", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.platformMacOSBlocked", + "label": "Block platform macOS", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.personalMacOSBlocked", + "label": "Block personally owned macOS", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.platformWindowsBlocked", + "label": "Block platform Windows", + "default": false + }, + { + "type": "switch", + "name": "standards.DefaultPlatformRestrictions.personalWindowsBlocked", + "label": "Block personally owned Windows", + "default": false + } + ], + "label": "Device enrollment restrictions", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-04-01", + "powershellEquivalent": "Graph API", + "recommendedBy": [] + }, + { + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration", + "cat": "Intune Standards", + "tag": [], + "helpText": "Sets the Windows Hello for Business configuration during device enrollment.", + "executiveText": "Enables or disables Windows Hello for Business during device enrollment, enhancing security through biometric or PIN-based authentication methods. This ensures that devices meet corporate security standards while providing a user-friendly sign-in experience.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.state", + "label": "Configure Windows Hello for Business", + "multiple": false, + "options": [ + { + "label": "Not configured", + "value": "notConfigured" + }, + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + }, + { + "type": "switch", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.securityDeviceRequired", + "label": "Use a Trusted Platform Module (TPM)", + "default": true + }, + { + "type": "number", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinMinimumLength", + "label": "Minimum PIN length (4-127)", + "default": 4 + }, + { + "type": "number", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinMaximumLength", + "label": "Maximum PIN length (4-127)", + "default": 127 + }, + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinLowercaseCharactersUsage", + "label": "Lowercase letters in PIN", + "multiple": false, + "options": [ + { + "label": "Not allowed", + "value": "disallowed" + }, + { + "label": "Allowed", + "value": "allowed" + }, + { + "label": "Required", + "value": "required" + } + ] + }, + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinUppercaseCharactersUsage", + "label": "Uppercase letters in PIN", + "multiple": false, + "options": [ + { + "label": "Not allowed", + "value": "disallowed" + }, + { + "label": "Allowed", + "value": "allowed" + }, + { + "label": "Required", + "value": "required" + } + ] + }, + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinSpecialCharactersUsage", + "label": "Special characters in PIN", + "multiple": false, + "options": [ + { + "label": "Not allowed", + "value": "disallowed" + }, + { + "label": "Allowed", + "value": "allowed" + }, + { + "label": "Required", + "value": "required" + } + ] + }, + { + "type": "number", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinExpirationInDays", + "label": "PIN expiration (days) - 0 to disable", + "default": 0 + }, + { + "type": "number", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.pinPreviousBlockCount", + "label": "PIN history - 0 to disable", + "default": 0 + }, + { + "type": "switch", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.unlockWithBiometricsEnabled", + "label": "Allow biometric authentication", + "default": true + }, + { + "type": "autoComplete", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.enhancedBiometricsState", + "label": "Use enhanced anti-spoofing when available", + "multiple": false, + "options": [ + { + "label": "Not configured", + "value": "notConfigured" + }, + { + "label": "Enabled", + "value": "enabled" + }, + { + "label": "Disabled", + "value": "disabled" + } + ] + }, + { + "type": "switch", + "name": "standards.EnrollmentWindowsHelloForBusinessConfiguration.remotePassportEnabled", + "label": "Allow phone sign-in", + "default": true + } + ], + "label": "Windows Hello for Business enrollment configuration", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-09-25", + "powershellEquivalent": "Graph API", + "recommendedBy": [] + }, + { + "name": "standards.intuneDeviceReg", + "cat": "Intune Standards", + "tag": ["CISA (MS.AAD.17.1v1)"], + "helpText": "Sets the maximum number of devices that can be registered by a user. A value of 0 disables device registration by users", + "executiveText": "Limits how many devices each employee can register for corporate access, preventing excessive device proliferation while accommodating legitimate business needs. This helps maintain security oversight and prevents potential abuse of device registration privileges.", + "addedComponent": [ + { + "type": "number", + "name": "standards.intuneDeviceReg.max", + "label": "Maximum devices (Enter 2147483647 for unlimited.)", + "required": true + } + ], + "label": "Set Maximum Number of Devices per user", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2023-03-27", + "powershellEquivalent": "Update-MgBetaPolicyDeviceRegistrationPolicy", + "recommendedBy": [] + }, + { + "name": "standards.intuneRequireMFA", + "cat": "Intune Standards", + "tag": [], + "helpText": "Requires MFA for all users to register devices with Intune. This is useful when not using Conditional Access.", + "executiveText": "Requires employees to use multi-factor authentication when registering devices for corporate access, adding an extra security layer to prevent unauthorized device enrollment. This helps ensure only legitimate users can connect their devices to company systems.", + "label": "Require Multi-factor Authentication to register or join devices with Microsoft Entra", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2023-10-23", + "powershellEquivalent": "Update-MgBetaPolicyDeviceRegistrationPolicy", + "recommendedBy": [] + }, + { + "name": "standards.DeletedUserRentention", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "Sets the retention period for deleted users OneDrive to the specified period of time. The default is 30 days.", + "docsDescription": "When a OneDrive user gets deleted, the personal SharePoint site is saved for selected amount of time that data can be retrieved from it.", + "executiveText": "Preserves departed employees' OneDrive files for a specified period, allowing time to recover important business documents before permanent deletion. This helps prevent data loss while managing storage costs and maintaining compliance with data retention policies.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "name": "standards.DeletedUserRentention.Days", + "label": "Retention time (Default 30 days)", + "options": [ + { + "label": "30 days", + "value": "30" + }, + { + "label": "90 days", + "value": "90" + }, + { + "label": "1 year", + "value": "365" + }, + { + "label": "2 years", + "value": "730" + }, + { + "label": "3 years", + "value": "1095" + }, + { + "label": "4 years", + "value": "1460" + }, + { + "label": "5 years", + "value": "1825" + }, + { + "label": "6 years", + "value": "2190" + }, + { + "label": "7 years", + "value": "2555" + }, + { + "label": "8 years", + "value": "2920" + }, + { + "label": "9 years", + "value": "3285" + }, + { + "label": "10 years", + "value": "3650" + } + ] + } + ], + "label": "Set deleted user retention time in OneDrive", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2022-06-15", + "powershellEquivalent": "Update-MgBetaAdminSharePointSetting", + "recommendedBy": [] + }, + { + "name": "standards.TenantDefaultTimezone", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "Sets the default timezone for the tenant. This will be used for all new users and sites.", + "executiveText": "Standardizes the timezone setting across all SharePoint sites and new user accounts, ensuring consistent scheduling and time-based operations throughout the organization. This improves collaboration efficiency and reduces confusion in global or multi-timezone organizations.", + "addedComponent": [ + { + "type": "TimezoneSelect", + "name": "standards.TenantDefaultTimezone.Timezone", + "label": "Timezone" + } + ], + "label": "Set Default Timezone for Tenant", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-04-20", + "powershellEquivalent": "Update-MgBetaAdminSharePointSetting", + "recommendedBy": [] + }, + { + "name": "standards.SPAzureB2B", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.2)"], + "helpText": "Ensure SharePoint and OneDrive integration with Azure AD B2B is enabled", + "executiveText": "Enables secure collaboration with external partners through SharePoint and OneDrive by integrating with Azure B2B guest access. This allows controlled sharing with external organizations while maintaining security oversight and proper access management.", + "addedComponent": [], + "label": "Enable SharePoint and OneDrive integration with Azure AD B2B", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-07-09", + "powershellEquivalent": "Set-SPOTenant -EnableAzureADB2BIntegration $true", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.SPDisallowInfectedFiles", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.3.1)", "CISA (MS.SPO.3.1v1)", "NIST CSF 2.0 (DE.CM-09)"], + "helpText": "Ensure Office 365 SharePoint infected files are disallowed for download", + "executiveText": "Prevents employees from downloading files that have been identified as containing malware or viruses from SharePoint and OneDrive. This security measure protects against malware distribution through file sharing while maintaining access to clean, safe documents.", + "addedComponent": [], + "label": "Disallow downloading infected files from SharePoint", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-07-09", + "powershellEquivalent": "Set-SPOTenant -DisallowInfectedFileDownload $true", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.SPDisableLegacyWorkflows", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "Disables the creation of new SharePoint 2010 and 2013 classic workflows and removes the 'Return to classic SharePoint' link on modern SharePoint list and library pages.", + "executiveText": "Disables outdated SharePoint workflow features and classic interface options, encouraging use of modern, more secure and efficient collaboration tools. This helps maintain security standards while guiding users toward current, supported functionality.", + "addedComponent": [], + "label": "Disable Legacy Workflows", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-07-15", + "powershellEquivalent": "Set-SPOTenant -DisableWorkflow2010 $true -DisableWorkflow2013 $true -DisableBackToClassic $true", + "recommendedBy": [] + }, + { + "name": "standards.SPDirectSharing", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "This standard has been deprecated in favor of the Default Sharing Link standard. ", + "executiveText": "Configures SharePoint and OneDrive to share files directly with specific people rather than creating anonymous links, improving security by ensuring only intended recipients can access shared documents. This reduces the risk of accidental data exposure through link sharing.", + "addedComponent": [], + "label": "Default sharing to Direct users", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-07-09", + "powershellEquivalent": "Set-SPOTenant -DefaultSharingLinkType Direct", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.SPExternalUserExpiration", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.9)", "CISA (MS.SPO.1.5v1)"], + "helpText": "Ensure guest access to a site or OneDrive will expire automatically", + "executiveText": "Automatically expires external user access to SharePoint sites and OneDrive after a specified period, reducing security risks from forgotten or unnecessary guest accounts. This ensures external access is regularly reviewed and maintained only when actively needed.", + "addedComponent": [ + { + "type": "number", + "name": "standards.SPExternalUserExpiration.Days", + "label": "Days until expiration (Default 60)" + } + ], + "label": "Set guest access to expire automatically", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-07-09", + "powershellEquivalent": "Set-SPOTenant -ExternalUserExpireInDays 30 -ExternalUserExpirationRequired $True", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.SPEmailAttestation", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.10)", "CISA (MS.SPO.1.6v1)"], + "helpText": "Ensure re-authentication with verification code is restricted", + "executiveText": "Requires external users to periodically re-verify their identity through email verification codes when accessing SharePoint resources, adding an extra security layer for external collaboration. This helps ensure continued legitimacy of external access over time.", + "addedComponent": [ + { + "type": "number", + "name": "standards.SPEmailAttestation.Days", + "label": "Require re-authentication every X Days (Default 15)" + } + ], + "label": "Require re-authentication with verification code", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-07-09", + "powershellEquivalent": "Set-SPOTenant -EmailAttestationRequired $true -EmailAttestationReAuthDays 15", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.DefaultSharingLink", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.7)", "CIS M365 5.0 (7.2.11)", "CISA (MS.SPO.1.4v1)"], + "helpText": "Configure the SharePoint default sharing link type and permission. This setting controls both the type of sharing link created by default and the permission level assigned to those links.", + "docsDescription": "Sets the default sharing link type (Direct or Internal) and permission (View) in SharePoint and OneDrive. Direct sharing means links only work for specific people, while Internal sharing means links work for anyone in the organization. Setting the view permission as the default ensures that users must deliberately select the edit permission when sharing a link, reducing the risk of unintentionally granting edit privileges.", + "executiveText": "Configures SharePoint default sharing links to implement the principle of least privilege for document sharing. This security measure reduces the risk of accidental data modification while maintaining collaboration functionality, requiring users to explicitly select Edit permissions when necessary. The sharing type setting controls whether links are restricted to specific recipients or available to the entire organization. This reduces the risk of accidental data exposure through link sharing.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "required": true, + "label": "Default Sharing Link Type", + "name": "standards.DefaultSharingLink.SharingLinkType", + "options": [ + { + "label": "Direct - Only the people the user specifies", + "value": "Direct" + }, + { + "label": "Internal - Only people in your organization", + "value": "Internal" + } + ] + } + ], + "label": "Set Default Sharing Link Settings", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-13", + "powershellEquivalent": "Set-SPOTenant -DefaultSharingLinkType [Direct|Internal] -DefaultLinkPermission View", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.DisableAddShortcutsToOneDrive", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "If disabled, the button Add shortcut to OneDrive will be removed and users in the tenant will no longer be able to add new shortcuts to their OneDrive. Existing shortcuts will remain functional", + "executiveText": "Controls whether employees can create shortcuts to SharePoint libraries in their OneDrive, managing how users organize and access shared content. This setting helps maintain organized file structures and can prevent confusion from excessive shortcuts while preserving existing workflows.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "Add Shortcuts To OneDrive button state", + "name": "standards.DisableAddShortcutsToOneDrive.state", + "options": [ + { + "label": "Disabled", + "value": "true" + }, + { + "label": "Enabled", + "value": "false" + } + ] + } + ], + "label": "Set Add Shortcuts To OneDrive button state", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2023-07-25", + "powershellEquivalent": "Set-SPOTenant -DisableAddShortcutsToOneDrive $true or $false", + "recommendedBy": [] + }, + { + "name": "standards.SPSyncButtonState", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "If disabled, users in the tenant will no longer be able to use the Sync button to sync SharePoint content on all sites. However, existing synced content will remain functional on the user's computer.", + "executiveText": "Controls whether employees can synchronize SharePoint files to their local devices, balancing productivity benefits with data security concerns. This setting helps manage data distribution while maintaining access to cloud-based collaboration when sync is disabled.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "SharePoint Sync Button state", + "name": "standards.SPSyncButtonState.state", + "options": [ + { + "label": "Disabled", + "value": "true" + }, + { + "label": "Enabled", + "value": "false" + } + ] + } + ], + "label": "Set SharePoint sync button state", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-07-26", + "powershellEquivalent": "Set-SPOTenant -HideSyncButtonOnTeamSite $true or $false", + "recommendedBy": [] + }, + { + "name": "standards.DisableSharePointLegacyAuth", + "cat": "SharePoint Standards", + "tag": [ + "CIS M365 5.0 (6.5.1)", + "CIS M365 5.0 (7.2.1)", + "spo_legacy_auth", + "CISA (MS.AAD.3.1v1)", + "NIST CSF 2.0 (PR.IR-01)" + ], + "helpText": "Disables the ability to authenticate with SharePoint using legacy authentication methods. Any applications that use legacy authentication will need to be updated to use modern authentication.", + "docsDescription": "Disables the ability for users and applications to access SharePoint via legacy basic authentication. This will likely not have any user impact, but will block systems/applications depending on basic auth or the SharePointOnlineCredentials class.", + "executiveText": "Disables outdated authentication methods for SharePoint access, forcing applications and users to use modern, more secure authentication protocols. This significantly improves security by eliminating vulnerable authentication pathways while requiring updates to older applications.", + "addedComponent": [], + "label": "Disable legacy basic authentication for SharePoint", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-02-05", + "powershellEquivalent": "Set-SPOTenant -LegacyAuthProtocolsEnabled $false", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.sharingCapability", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.3)", "CISA (MS.AAD.14.1v1)", "CISA (MS.SPO.1.1v1)"], + "helpText": "Sets the default sharing level for OneDrive and SharePoint. This is a tenant wide setting and overrules any settings set on the site level", + "executiveText": "Defines the organization's default policy for sharing files and folders in SharePoint and OneDrive, balancing collaboration needs with security requirements. This fundamental setting determines whether employees can share with external users, anonymous links, or only internal colleagues.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Select Sharing Level", + "name": "standards.sharingCapability.Level", + "options": [ + { + "label": "Users can share only with people in the organization. No external sharing is allowed.", + "value": "disabled" + }, + { + "label": "Users can share with new and existing guests. Guests must sign in or provide a verification code.", + "value": "externalUserSharingOnly" + }, + { + "label": "Users can share with anyone by using links that do not require sign-in.", + "value": "externalUserAndGuestSharing" + }, + { + "label": "Users can share with existing guests (those already in the directory of the organization).", + "value": "existingExternalUserSharingOnly" + } + ] + } + ], + "label": "Set Sharing Level for OneDrive and SharePoint", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2022-06-15", + "powershellEquivalent": "Update-MgBetaAdminSharePointSetting", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.DisableReshare", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.5)", "CISA (MS.AAD.14.2v1)", "CISA (MS.SPO.1.2v1)"], + "helpText": "Disables the ability for external users to share files they don't own. Sharing links can only be made for People with existing access", + "docsDescription": "Disables the ability for external users to share files they don't own. Sharing links can only be made for People with existing access. This is a tenant wide setting and overrules any settings set on the site level", + "executiveText": "Prevents external users from sharing company documents with additional people, maintaining control over document distribution and preventing unauthorized access expansion. This security measure ensures that external sharing remains within intended boundaries set by internal employees.", + "addedComponent": [], + "label": "Disable Re-sharing by External Users", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2022-06-15", + "powershellEquivalent": "Update-MgBetaAdminSharePointSetting", + "recommendedBy": ["CIS", "CIPP"] + }, + { + "name": "standards.DisableUserSiteCreate", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "Disables users from creating new SharePoint sites", + "docsDescription": "Disables standard users from creating SharePoint sites, also disables the ability to fully create teams", + "executiveText": "Restricts the creation of new SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces and ensuring proper governance. This maintains organized information architecture while requiring approval for new collaborative environments.", + "addedComponent": [], + "label": "Disable site creation by standard users", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2022-06-15", + "powershellEquivalent": "Update-MgAdminSharePointSetting", + "recommendedBy": [] + }, + { + "name": "standards.ExcludedfileExt", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "Sets the file extensions that are excluded from syncing with OneDrive. These files will be blocked from upload. '*.' is automatically added to the extension and can be omitted.", + "executiveText": "Blocks specific file types from being uploaded or synchronized to OneDrive, helping prevent security risks from potentially dangerous file formats. This security measure protects against malware distribution while allowing legitimate business file types to be shared safely.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.ExcludedfileExt.ext", + "label": "Extensions, Comma separated" + } + ], + "label": "Exclude File Extensions from Syncing", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2022-06-15", + "powershellEquivalent": "Update-MgAdminSharePointSetting", + "recommendedBy": [] + }, + { + "name": "standards.disableMacSync", + "cat": "SharePoint Standards", + "tag": [], + "helpText": "Disables the ability for Mac devices to sync with OneDrive.", + "executiveText": "Prevents Mac computers from synchronizing files with OneDrive, typically implemented for security or compliance reasons in Windows-centric environments. This restriction helps maintain standardized device management while potentially limiting collaboration for Mac users.", + "addedComponent": [], + "label": "Do not allow Mac devices to sync using OneDrive", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2022-06-15", + "powershellEquivalent": "Update-MgAdminSharePointSetting", + "recommendedBy": [] + }, + { + "name": "standards.unmanagedSync", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.3)", "CISA (MS.SPO.2.1v1)", "NIST CSF 2.0 (PR.AA-05)"], + "helpText": "Entra P1 required. Block or limit access to SharePoint and OneDrive content from unmanaged devices (those not hybrid AD joined or compliant in Intune). These controls rely on Microsoft Entra Conditional Access policies and can take up to 24 hours to take effect.", + "docsDescription": "Entra P1 required. Block or limit access to SharePoint and OneDrive content from unmanaged devices (those not hybrid AD joined or compliant in Intune). These controls rely on Microsoft Entra Conditional Access policies and can take up to 24 hours to take effect. 0 = Allow Access, 1 = Allow limited, web-only access, 2 = Block access. All information about this can be found in Microsofts documentation [here.](https://learn.microsoft.com/en-us/sharepoint/control-access-from-unmanaged-devices)", + "executiveText": "Restricts access to company files from personal or unmanaged devices, ensuring corporate data can only be accessed from properly secured and monitored devices. This critical security control prevents data leaks while allowing controlled access through web browsers when necessary.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "name": "standards.unmanagedSync.state", + "label": "State", + "options": [ + { + "label": "Allow limited, web-only access", + "value": "1" + }, + { + "label": "Block access", + "value": "2" + } + ], + "required": false + } + ], + "label": "Restrict access to SharePoint and OneDrive from unmanaged devices", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2025-06-13", + "powershellEquivalent": "Set-SPOTenant -ConditionalAccessPolicy AllowFullAccess | AllowLimitedAccess | BlockAccess", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.sharingDomainRestriction", + "cat": "SharePoint Standards", + "tag": ["CIS M365 5.0 (7.2.6)", "CISA (MS.AAD.14.3v1)", "CISA (MS.SPO.1.3v1)"], + "helpText": "Restricts sharing to only users with the specified domain. This is useful for organizations that only want to share with their own domain.", + "executiveText": "Controls which external domains employees can share files with, enabling secure collaboration with trusted partners while blocking sharing with unauthorized organizations. This targeted approach maintains necessary business relationships while preventing data exposure to unknown entities.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "name": "standards.sharingDomainRestriction.Mode", + "label": "Limit external sharing by domains", + "options": [ + { + "label": "Off", + "value": "none" + }, + { + "label": "Restrict sharing to specific domains", + "value": "allowList" + }, + { + "label": "Block sharing to specific domains", + "value": "blockList" + } + ] + }, + { + "type": "textField", + "name": "standards.sharingDomainRestriction.Domains", + "label": "Domains to allow/block, comma separated", + "required": false + } + ], + "label": "Restrict sharing to a specific domain", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2024-06-20", + "powershellEquivalent": "Update-MgAdminSharePointSetting", + "recommendedBy": [] + }, + { + "name": "standards.TeamsGlobalMeetingPolicy", + "cat": "Teams Standards", + "tag": [ + "CIS M365 5.0 (8.5.1)", + "CIS M365 5.0 (8.5.2)", + "CIS M365 5.0 (8.5.3)", + "CIS M365 5.0 (8.5.4)", + "CIS M365 5.0 (8.5.5)", + "CIS M365 5.0 (8.5.6)" + ], + "helpText": "Defines the CIS recommended global meeting policy for Teams. This includes AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl", + "executiveText": "Establishes security-focused default settings for Teams meetings, controlling who can join meetings, present content, and participate in chats. These policies balance collaboration needs with security requirements, ensuring meetings remain productive while protecting against unauthorized access and disruption.", + "addedComponent": [ + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "name": "standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode", + "label": "Default value of the `Who can present?`", + "options": [ + { + "label": "EveryoneUserOverride", + "value": "EveryoneUserOverride" + }, + { + "label": "EveryoneInCompanyUserOverride", + "value": "EveryoneInCompanyUserOverride" + }, + { + "label": "EveryoneInSameAndFederatedCompanyUserOverride", + "value": "EveryoneInSameAndFederatedCompanyUserOverride" + }, + { + "label": "OrganizerOnlyUserOverride", + "value": "OrganizerOnlyUserOverride" + } + ] + }, + { + "type": "switch", + "name": "standards.TeamsGlobalMeetingPolicy.AllowAnonymousUsersToJoinMeeting", + "label": "Allow anonymous users to join meeting" + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "name": "standards.TeamsGlobalMeetingPolicy.MeetingChatEnabledType", + "label": "Meeting chat policy", + "options": [ + { + "label": "On for everyone", + "value": "Enabled" + }, + { + "label": "On for everyone but anonymous users", + "value": "EnabledExceptAnonymous" + }, + { + "label": "Off for everyone", + "value": "Disabled" + } + ] + }, + { + "type": "switch", + "name": "standards.TeamsGlobalMeetingPolicy.AllowExternalParticipantGiveRequestControl", + "label": "External participants can give or request control" + } + ], + "label": "Define Global Meeting Policy for Teams", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-11-12", + "powershellEquivalent": "Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting $false -AllowAnonymousUsersToStartMeeting $false -AutoAdmittedUsers EveryoneInCompanyExcludingGuests -AllowPSTNUsersToBypassLobby $false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode $DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl $false", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.TeamsEmailIntegration", + "cat": "Teams Standards", + "helpText": "Should users be allowed to send emails directly to a channel email addresses?", + "docsDescription": "Teams channel email addresses are an optional feature that allows users to email the Teams channel directly.", + "executiveText": "Controls whether Teams channels can receive emails directly, enabling integration between email and team collaboration. This feature can improve workflow efficiency by allowing external communications to flow into team discussions, though it may need management for security or organizational reasons.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.TeamsEmailIntegration.AllowEmailIntoChannel", + "label": "Allow channel emails" + } + ], + "label": "Disallow emails to be sent to channel email addresses", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-07-30", + "powershellEquivalent": "Set-CsTeamsClientConfiguration -AllowEmailIntoChannel $false", + "recommendedBy": ["CIS"], + "tag": ["CIS M365 5.0 (8.1.2)"] + }, + { + "name": "standards.TeamsGuestAccess", + "cat": "Teams Standards", + "tag": [], + "helpText": "Allow guest users access to teams.", + "docsDescription": "Allow guest users access to teams. Guest users are users who are not part of your organization but have been invited to collaborate with your organization in Teams. This setting allows you to control whether guest users can access Teams.", + "executiveText": "Determines whether external partners, vendors, and collaborators can be invited to participate in Teams conversations and meetings. This fundamental setting enables external collaboration while requiring careful management to balance openness with security and information protection.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.TeamsGuestAccess.AllowGuestUser", + "label": "Allow guest users" + } + ], + "label": "Allow guest users in Teams", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-03", + "powershellEquivalent": "Set-CsTeamsClientConfiguration -AllowGuestUser $true", + "recommendedBy": [] + }, + { + "name": "standards.TeamsMeetingVerification", + "cat": "Teams Standards", + "tag": [], + "helpText": "Configures CAPTCHA verification for external users joining Teams meetings. This helps prevent unauthorized AI notetakers and bots from joining meetings.", + "docsDescription": "Configures CAPTCHA verification for external users joining Teams meetings. This security feature requires external participants to complete a CAPTCHA challenge before joining, which helps prevent unauthorized AI notetakers, bots, and other automated systems from accessing meetings.", + "executiveText": "Requires external meeting participants to complete verification challenges before joining Teams meetings, preventing automated bots and unauthorized AI systems from accessing confidential discussions. This security measure protects against meeting infiltration while maintaining legitimate external collaboration.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "label": "CAPTCHA Verification Setting", + "name": "standards.TeamsMeetingVerification.CaptchaVerificationForMeetingJoin", + "options": [ + { + "label": "Not Required", + "value": "NotRequired" + }, + { + "label": "Anonymous Users and Untrusted Organizations", + "value": "AnonymousUsersAndUntrustedOrganizations" + } + ] + } + ], + "label": "Teams Meeting Verification (CAPTCHA)", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-06-14", + "powershellEquivalent": "Set-CsTeamsMeetingPolicy -CaptchaVerificationForMeetingJoin", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.TeamsExternalFileSharing", + "cat": "Teams Standards", + "tag": ["CIS M365 5.0 (8.4.1)"], + "helpText": "Ensure external file sharing in Teams is enabled for only approved cloud storage services.", + "executiveText": "Controls which external cloud storage services (like Google Drive, Dropbox, Box) employees can access through Teams, ensuring file sharing occurs only through approved and secure platforms. This helps maintain data governance while supporting necessary business integrations.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.TeamsExternalFileSharing.AllowGoogleDrive", + "label": "Allow Google Drive" + }, + { + "type": "switch", + "name": "standards.TeamsExternalFileSharing.AllowShareFile", + "label": "Allow ShareFile" + }, + { + "type": "switch", + "name": "standards.TeamsExternalFileSharing.AllowBox", + "label": "Allow Box" + }, + { + "type": "switch", + "name": "standards.TeamsExternalFileSharing.AllowDropBox", + "label": "Allow Dropbox" + }, + { + "type": "switch", + "name": "standards.TeamsExternalFileSharing.AllowEgnyte", + "label": "Allow Egnyte" + } + ], + "label": "Define approved cloud storage services for external file sharing in Teams", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-07-28", + "powershellEquivalent": "Set-CsTeamsClientConfiguration -AllowGoogleDrive $false -AllowShareFile $false -AllowBox $false -AllowDropBox $false -AllowEgnyte $false", + "recommendedBy": ["CIS"] + }, + { + "name": "standards.TeamsEnrollUser", + "cat": "Teams Standards", + "tag": [], + "helpText": "Controls whether users with this policy can set the voice profile capture and enrollment through the Recognition tab in their Teams client settings.", + "docsDescription": "Controls whether users with this policy can set the voice profile capture and enrollment through the Recognition tab in their Teams client settings.", + "executiveText": "Determines whether employees can enroll their voice and face profiles for recognition features in Teams, enabling personalized experiences like voice identification. This setting balances convenience features with privacy considerations and organizational policies regarding biometric data collection.", + "addedComponent": [ + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "name": "standards.TeamsEnrollUser.EnrollUserOverride", + "label": "Voice and Face Enrollment", + "options": [ + { + "label": "Disabled", + "value": "Disabled" + }, + { + "label": "Enabled", + "value": "Enabled" + } + ] + } + ], + "label": "Default voice and face enrollment", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2024-11-12", + "powershellEquivalent": "Set-CsTeamsMeetingPolicy -Identity Global -EnrollUserOverride $false", + "recommendedBy": [] + }, + { + "name": "standards.TeamsExternalAccessPolicy", + "cat": "Teams Standards", + "tag": [], + "helpText": "Sets the properties of the Global external access policy.", + "docsDescription": "Sets the properties of the Global external access policy. External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services; 3) access Skype for Business Server over the Internet, without having to log on to your internal network; 4) communicate with users who have SIP accounts with a public instant messaging (IM) provider such as Skype; and, 5) communicate with people who are using Teams with an account that's not managed by an organization.", + "executiveText": "Defines the organization's policy for communicating with external users through Teams, including other organizations, Skype users, and unmanaged accounts. This fundamental setting determines the scope of external collaboration while maintaining security boundaries for business communications.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.TeamsExternalAccessPolicy.EnableFederationAccess", + "label": "Allow communication from trusted organizations" + }, + { + "type": "switch", + "name": "standards.TeamsExternalAccessPolicy.EnableTeamsConsumerAccess", + "label": "Allow communication with unmanaged Teams accounts" + } + ], + "label": "External Access Settings for Microsoft Teams", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-07-30", + "powershellEquivalent": "Set-CsExternalAccessPolicy", + "recommendedBy": [] + }, + { + "name": "standards.TeamsFederationConfiguration", + "cat": "Teams Standards", + "tag": [], + "helpText": "Sets the properties of the Global federation configuration.", + "docsDescription": "Sets the properties of the Global federation configuration. Federation configuration settings determine whether or not your users can communicate with users who have SIP accounts with a federated organization.", + "executiveText": "Configures how the organization federates with external organizations for Teams communication, controlling whether employees can communicate with specific external domains or all external organizations. This setting enables secure inter-organizational collaboration while maintaining control over external communications.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.TeamsFederationConfiguration.AllowTeamsConsumer", + "label": "Allow users to communicate with other organizations" + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "name": "standards.TeamsFederationConfiguration.DomainControl", + "label": "Communication Mode", + "options": [ + { + "label": "Allow all external domains", + "value": "AllowAllExternal" + }, + { + "label": "Block all external domains", + "value": "BlockAllExternal" + }, + { + "label": "Allow specific external domains", + "value": "AllowSpecificExternal" + }, + { + "label": "Block specific external domains", + "value": "BlockSpecificExternal" + } + ] + }, + { + "type": "textField", + "name": "standards.TeamsFederationConfiguration.DomainList", + "label": "Domains, Comma separated", + "required": false + } + ], + "label": "Federation Configuration for Microsoft Teams", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2024-07-31", + "powershellEquivalent": "Set-CsTenantFederationConfiguration", + "recommendedBy": [] + }, + { + "name": "standards.TeamsMeetingRecordingExpiration", + "cat": "Teams Standards", + "tag": [], + "helpText": "Sets the default number of days after which Teams meeting recordings automatically expire. Valid values are -1 (Never Expire) or between 1 and 99999. The default value is 120 days.", + "docsDescription": "Allows administrators to configure a default expiration period (in days) for Teams meeting recordings. Recordings older than this period will be automatically moved to the recycle bin. This setting helps manage storage consumption and enforce data retention policies.", + "executiveText": "Automatically removes old Teams meeting recordings after a specified period to manage storage costs and comply with data retention policies. This helps organizations balance the need to preserve important meeting content with storage efficiency and regulatory compliance requirements.", + "addedComponent": [ + { + "type": "number", + "name": "standards.TeamsMeetingRecordingExpiration.ExpirationDays", + "label": "Recording Expiration Days (e.g., 365)", + "required": true + } + ], + "label": "Set Teams Meeting Recording Expiration", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-04-17", + "powershellEquivalent": "Set-CsTeamsMeetingPolicy -Identity Global -MeetingRecordingExpirationDays ", + "recommendedBy": [] + }, + { + "name": "standards.TeamsMessagingPolicy", + "cat": "Teams Standards", + "tag": [], + "helpText": "Sets the properties of the Global messaging policy.", + "docsDescription": "Sets the properties of the Global messaging policy. Messaging policies control which chat and channel messaging features are available to users in Teams.", + "executiveText": "Defines what messaging capabilities employees have in Teams, including the ability to edit or delete messages, create custom emojis, and report inappropriate content. These policies help maintain professional communication standards while enabling necessary collaboration features.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowOwnerDeleteMessage", + "label": "Allow Owner to Delete Messages", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowUserDeleteMessage", + "label": "Allow User to Delete Messages", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowUserEditMessage", + "label": "Allow User to Edit Messages", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowUserDeleteChat", + "label": "Allow User to Delete Chats", + "defaultValue": true + }, + { + "type": "autoComplete", + "required": true, + "multiple": false, + "creatable": false, + "name": "standards.TeamsMessagingPolicy.ReadReceiptsEnabledType", + "label": "Read Receipts Enabled Type", + "options": [ + { + "label": "User controlled", + "value": "UserPreference" + }, + { + "label": "Turned on for everyone", + "value": "Everyone" + }, + { + "label": "Turned off for everyone", + "value": "None" + } + ] + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.CreateCustomEmojis", + "label": "Allow Creating Custom Emojis", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.DeleteCustomEmojis", + "label": "Allow Deleting Custom Emojis", + "defaultValue": false + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowSecurityEndUserReporting", + "label": "Allow reporting message as security concern", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowCommunicationComplianceEndUserReporting", + "label": "Allow reporting message as inappropriate content", + "defaultValue": true + } + ], + "label": "Global Messaging Policy for Microsoft Teams", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-01-10", + "powershellEquivalent": "Set-CsTeamsMessagingPolicy", + "recommendedBy": [] + }, + { + "name": "standards.AutopilotStatusPage", + "cat": "Device Management Standards", + "tag": [], + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "helpText": "Deploy the Autopilot Status Page, which shows progress during device setup through Autopilot.", + "docsDescription": "This standard allows configuration of the Autopilot Status Page, providing users with a visual representation of the progress during device setup. It includes options like timeout, logging, and retry settings.", + "executiveText": "Provides employees with a visual progress indicator during automated device setup, improving the user experience when receiving new computers. This reduces IT support calls and helps ensure successful device deployment by guiding users through the setup process.", + "addedComponent": [ + { + "type": "number", + "name": "standards.AutopilotStatusPage.TimeOutInMinutes", + "label": "Timeout in minutes", + "defaultValue": 60 + }, + { + "type": "textField", + "name": "standards.AutopilotStatusPage.ErrorMessage", + "label": "Custom Error Message", + "required": false + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.ShowProgress", + "label": "Show progress to users", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.EnableLog", + "label": "Turn on log collection", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.OBEEOnly", + "label": "Show status page only with OOBE setup", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.BlockDevice", + "label": "Block device usage during setup", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.AllowRetry", + "label": "Allow retry", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.AllowReset", + "label": "Allow reset", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.AllowFail", + "label": "Allow users to use device if setup fails", + "defaultValue": true + } + ], + "label": "Enable Autopilot Status Page", + "impact": "Low Impact", + "addedDate": "2023-12-30", + "impactColour": "info", + "recommendedBy": [] + }, + { + "name": "standards.AutopilotProfile", + "cat": "Device Management Standards", + "tag": [], + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "helpText": "Assign the appropriate Autopilot profile to streamline device deployment.", + "docsDescription": "This standard allows the deployment of Autopilot profiles to devices, including settings such as unique name templates, language options, and local admin privileges.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.AutopilotProfile.DisplayName", + "label": "Profile Display Name" + }, + { + "type": "textField", + "name": "standards.AutopilotProfile.Description", + "label": "Profile Description" + }, + { + "type": "textField", + "name": "standards.AutopilotProfile.DeviceNameTemplate", + "label": "Unique Device Name Template", + "required": false + }, + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "required": false, + "name": "standards.AutopilotProfile.Languages", + "label": "Languages", + "api": { + "url": "/languageList.json", + "labelField": "language", + "valueField": "tag" + } + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.CollectHash", + "label": "Convert all targeted devices to Autopilot", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.AssignToAllDevices", + "label": "Assign to all devices", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.SelfDeployingMode", + "label": "Enable Self-deploying Mode", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.HideTerms", + "label": "Hide Terms and Conditions", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.HidePrivacy", + "label": "Hide Privacy Settings", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.HideChangeAccount", + "label": "Hide Change Account Options", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.NotLocalAdmin", + "label": "Setup user as a standard user (not local admin)", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.AllowWhiteGlove", + "label": "Allow White Glove OOBE", + "defaultValue": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.AutoKeyboard", + "label": "Automatically configure keyboard", + "defaultValue": true + } + ], + "label": "Enable Autopilot Profile", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2023-12-30", + "recommendedBy": [] + }, + { + "name": "standards.IntuneTemplate", + "cat": "Templates", + "label": "Intune Template", + "multiple": true, + "disabledFeatures": { + "report": false, + "warn": false, + "remediate": false + }, + "impact": "High Impact", + "addedDate": "2023-12-30", + "helpText": "Deploy and manage Intune templates across devices.", + "executiveText": "Deploys standardized device management configurations across all corporate devices, ensuring consistent security policies, application settings, and compliance requirements. This template-based approach streamlines device management while maintaining uniform security standards across the organization.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "name": "TemplateList", + "label": "Select Intune Template", + "api": { + "url": "/api/ListIntuneTemplates", + "labelField": "Displayname", + "valueField": "GUID", + "queryKey": "languages" + } + }, + { + "name": "AssignTo", + "label": "Who should this template be assigned to?", + "type": "radio", + "options": [ + { + "label": "Do not assign", + "value": "On" + }, + { + "label": "Assign to all users", + "value": "allLicensedUsers" + }, + { + "label": "Assign to all devices", + "value": "AllDevices" + }, + { + "label": "Assign to all users and devices", + "value": "AllDevicesAndUsers" + }, + { + "label": "Assign to Custom Group", + "value": "customGroup" + } + ] + }, + { + "type": "textField", + "required": false, + "name": "customGroup", + "label": "Enter the custom group name if you selected 'Assign to Custom Group'. Wildcards are allowed." + }, + { + "name": "excludeGroup", + "label": "Exclude Groups", + "type": "textField", + "required": false, + "helpText": "Enter the group name to exclude from the assignment. Wildcards are allowed." + }, + { + "type": "textField", + "required": false, + "name": "assignmentFilter", + "label": "Assignment Filter Name (Optional)", + "helpText": "Enter the assignment filter name to apply to this policy assignment. Wildcards are allowed." + }, + { + "name": "assignmentFilterType", + "label": "Assignment Filter Mode (Optional)", + "type": "radio", + "required": false, + "helpText": "Choose whether to include or exclude devices matching the filter. Only applies if you specified a filter name above. Defaults to Include if not specified.", + "options": [ + { + "label": "Include - Assign to devices matching the filter", + "value": "include" + }, + { + "label": "Exclude - Assign to devices NOT matching the filter", + "value": "exclude" + } + ] + } + ] + }, + { + "name": "standards.TransportRuleTemplate", + "label": "Transport Rule Template", + "cat": "Templates", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "Medium Impact", + "addedDate": "2023-12-30", + "helpText": "Deploy transport rules to manage email flow.", + "executiveText": "Deploys standardized email flow rules that automatically manage how emails are processed, filtered, and routed within the organization. These templates ensure consistent email security policies, compliance requirements, and business rules are applied across all email communications.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "transportRuleTemplate", + "label": "Select Transport Rule Template", + "api": { + "url": "/api/ListTransportRulesTemplates", + "labelField": "name", + "valueField": "GUID", + "queryKey": "ListTransportRulesTemplates" + } + } + ] + }, + { + "name": "standards.ConditionalAccessTemplate", + "label": "Conditional Access Template", + "cat": "Templates", + "multiple": true, + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "High Impact", + "addedDate": "2023-12-30", + "helpText": "Manage conditional access policies for better security.", + "executiveText": "Deploys standardized conditional access policies that automatically enforce security requirements based on user location, device compliance, and risk factors. These templates ensure consistent security controls across the organization while enabling secure access to business resources.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "TemplateList", + "multiple": false, + "label": "Select Conditional Access Template", + "api": { + "url": "/api/ListCATemplates", + "labelField": "displayName", + "valueField": "GUID", + "queryKey": "ListCATemplates" + } + }, + { + "name": "state", + "label": "What state should we deploy this template in?", + "type": "radio", + "options": [ + { + "value": "donotchange", + "label": "Do not change state" + }, + { + "value": "Enabled", + "label": "Set to enabled" + }, + { + "value": "Disabled", + "label": "Set to disabled" + }, + { + "value": "enabledForReportingButNotEnforced", + "label": "Set to report only" + } + ] + }, + { + "type": "switch", + "name": "DisableSD", + "label": "Disable Security Defaults when deploying policy" + } + ] + }, + { + "name": "standards.ExchangeConnectorTemplate", + "label": "Exchange Connector Template", + "cat": "Templates", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "Medium Impact", + "addedDate": "2023-12-30", + "helpText": "Deploy and manage Exchange connectors.", + "executiveText": "Configures standardized Exchange connectors that control how email flows between your organization and external systems. These templates ensure secure and reliable email delivery while maintaining proper routing and security policies for business communications.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "exConnectorTemplate", + "label": "Select Exchange Connector Template", + "api": { + "url": "/api/ListExConnectorTemplates", + "labelField": "name", + "valueField": "GUID", + "queryKey": "ListExConnectorTemplates" + } + } + ] + }, + { + "name": "standards.GroupTemplate", + "label": "Group Template", + "multi": true, + "cat": "Templates", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "Medium Impact", + "addedDate": "2023-12-30", + "helpText": "Deploy and manage group templates.", + "executiveText": "Creates standardized groups with predefined settings, permissions, and membership rules. These templates ensure consistent group configurations across the organization, streamlining collaboration and access management while maintaining security standards.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "groupTemplate", + "label": "Select Group Template", + "api": { + "url": "/api/ListGroupTemplates", + "labelField": "Displayname", + "altLabelField": "displayName", + "valueField": "GUID", + "queryKey": "ListGroupTemplates" + } + } + ] + }, + { + "name": "standards.AssignmentFilterTemplate", + "label": "Assignment Filter Template", + "multi": true, + "cat": "Templates", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "Medium Impact", + "addedDate": "2025-10-04", + "helpText": "Deploy and manage assignment filter templates.", + "executiveText": "Creates standardized assignment filters with predefined settings. These templates ensure consistent assignment filter configurations across the organization, streamlining assignment management.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "assignmentFilterTemplate", + "label": "Select Assignment Filter Template", + "api": { + "url": "/api/ListAssignmentFilterTemplates", + "labelField": "Displayname", + "altLabelField": "displayName", + "valueField": "GUID", + "queryKey": "ListAssignmentFilterTemplates" + } + } + ] + }, + { + "name": "standards.MailboxRecipientLimits", + "cat": "Exchange Standards", + "tag": [], + "helpText": "Sets the maximum number of recipients that can be specified in the To, Cc, and Bcc fields of a message for all mailboxes in the tenant.", + "docsDescription": "This standard configures the recipient limits for all mailboxes in the tenant. The recipient limit determines the maximum number of recipients that can be specified in the To, Cc, and Bcc fields of a message. This helps prevent spam and manage email flow.", + "executiveText": "Controls how many recipients employees can include in a single email, helping prevent spam distribution and managing email server load. This security measure protects against both accidental mass mailings and potential abuse while ensuring legitimate business communications can still reach necessary recipients.", + "addedComponent": [ + { + "type": "number", + "name": "standards.MailboxRecipientLimits.RecipientLimit", + "label": "Recipient Limit", + "defaultValue": 500 + } + ], + "label": "Set Mailbox Recipient Limits", + "impact": "Low Impact", + "impactColour": "info", + "addedDate": "2025-05-28", + "powershellEquivalent": "Set-Mailbox -RecipientLimits", + "recommendedBy": ["CIPP"] + }, + { + "name": "standards.DisableExchangeOnlinePowerShell", + "cat": "Exchange Standards", + "tag": ["CIS M365 5.0 (6.1.1)", "Security", "NIST CSF 2.0 (PR.AA-05)"], + "helpText": "Disables Exchange Online PowerShell access for non-admin users by setting the RemotePowerShellEnabled property to false for each user. This helps prevent attackers from using PowerShell to run malicious commands, access file systems, registry, and distribute ransomware throughout networks. Users with admin roles are automatically excluded.", + "docsDescription": "Disables Exchange Online PowerShell access for non-admin users by setting the RemotePowerShellEnabled property to false for each user. This security measure follows a least privileged access approach, preventing potential attackers from using PowerShell to execute malicious commands, access sensitive systems, or distribute malware. Users with management roles containing 'Admin' are automatically excluded to ensure administrators retain PowerShell access to perform necessary management tasks.", + "executiveText": "Restricts PowerShell access to Exchange Online for regular employees while maintaining access for administrators, significantly reducing security risks from compromised accounts. This prevents attackers from using PowerShell to execute malicious commands or distribute ransomware while preserving necessary administrative capabilities.", + "label": "Disable Exchange Online PowerShell for non-admin users", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2025-06-19", + "powershellEquivalent": "Set-User -Identity $user -RemotePowerShellEnabled $false", + "recommendedBy": ["CIS", "CIPP"] + } +] diff --git a/ConversionTable.csv b/ConversionTable.csv index e7f1c3fc1896..27ee53d2fe35 100644 --- a/ConversionTable.csv +++ b/ConversionTable.csv @@ -1,41 +1,86 @@ Product_Display_Name,String_Id,GUID,Service_Plan_Name,Service_Plan_Id,Service_Plans_Included_Friendly_Names +10-Year Audit Log Retention Add On,10_ALR_ADDON,c2e41e49-e2a2-4c55-832a-cf13ffba1d6a,Auditing_10Year_ Retention_ Add_On,7d16094b-4db8-41ff-a182-372a90a85407,Auditing 10Year Retention Add On Advanced Communications,ADV_COMMS,e4654015-5daf-4a48-9b37-4f309dddd88b,TEAMS_ADVCOMMS,604ec28a-ae18-4bc6-91b0-11da94504ba9,Microsoft 365 Advanced Communications AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,CDSAICAPACITY,a7c70a41-5e02-4271-93e6-d9b4184d83f5,AI Builder capacity add-on AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -APP CONNECT IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT -APP CONNECT IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_A,5f3b1ded-75c0-4b31-8e6e-9b077eaadfd5,Microsoft Application Protection and Governance (A) +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_D,2e6ffd72-52d1-4541-8f6c-938f9a8d4cdc,Microsoft Application Protection and Governance (D) +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Career Coach for faculty,CAREERCOACH_FACULTY,95de1760-7682-406d-98c9-52ef14e51e2b,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Career Coach for students,CAREERCOACH_STUDENTS,01c8007a-57d2-41e0-a3c3-0b46ead16cc4,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Premium Add-on,Clipchamp_Premium_Add_on,4b2c20e4-939d-4bf4-9dd8-6870240cfe19,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -AZURE ACTIVE DIRECTORY BASIC,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,MICROSOFT AZURE ACTIVE DIRECTORY BASIC -AZURE ACTIVE DIRECTORY PREMIUM P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AZURE ACTIVE DIRECTORY PREMIUM P1 -AZURE ACTIVE DIRECTORY PREMIUM P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -AZURE ACTIVE DIRECTORY PREMIUM P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -AZURE ACTIVE DIRECTORY PREMIUM P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -AZURE ACTIVE DIRECTORY PREMIUM P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AZURE ACTIVE DIRECTORY PREMIUM P1 -AZURE ACTIVE DIRECTORY PREMIUM P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,AZURE ACTIVE DIRECTORY PREMIUM P2 -AZURE ACTIVE DIRECTORY PREMIUM P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -AZURE ACTIVE DIRECTORY PREMIUM P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -AZURE ACTIVE DIRECTORY PREMIUM P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -AZURE INFORMATION PROTECTION PLAN 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 -AZURE INFORMATION PROTECTION PLAN 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,MICROSOFT AZURE ACTIVE DIRECTORY RIGHTS +Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Microsoft Entra RIGHTS +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,ONEDRIVELITE_IW,b4ac11a0-32ff-4e78-982d-e039fa803dec,Office for the web with OneDrive for business +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,MCOBASIC,448898aa-3ae7-478c-b49a-1fac7a8a35cf,Skype Meetings +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,YAMMER_BASIC,6db7aeea-6c4a-475d-bbb0-7338bc73d646,Yammer Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -COMMON AREA PHONE,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -COMMON AREA PHONE,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS -COMMON AREA PHONE,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -Common Area Phone for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government -Common Area Phone for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government -Common Area Phone for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,CDS_FILE_CAPACITY,dd12a3a8-caec-44f8-b4fb-2f1a864b51e3,Common Data Service for Apps File Capacity +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,CDS_DB_CAPACITY,360bcc37-0c11-4264-8eed-9fa7a3297c9b,Common Data Service for Apps Database Capacity Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,CDS_DB_CAPACITY_GOV,1ddffef6-4f69-455e-89c7-d5d72105f915,Common Data Service for Apps Database Capacity for Government +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,CDS_LOG_CAPACITY,dc48f5c5-e87d-43d6-b884-7ac4a59e7ee9,Common Data Service for Apps Log Capacity Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -COMMUNICATIONS CREDITS,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS +Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS +Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud +Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,CRMSTORAGE,77866113-0f3e-4e6e-9666-b1e25c6f99b0,Microsoft Dynamics CRM Online Storage Add-On Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,CRMINSTANCE,eeea837a-c885-4167-b3d5-ddde30cbd85f,Microsoft Dynamics CRM Online Instance Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,CRMTESTINSTANCE,a98b7619-66c7-4885-bdfc-1d9c8c3d279f,Microsoft Dynamics CRM Online Additional Test Instance +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,SOCIAL_ENGAGEMENT_APP_USER,339f4def-5ad8-4430-8d12-da5fd4c769a7,Dynamics 365 AI for Market Insights - Free +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,D365_AssetforSCM,90467813-5b40-40d4-835c-abd48009b1d9,Asset Maintenance Add-in Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Business Central Additional Environment Addon,DYN365_BUSCENTRAL_ADD_ENV_ADDON,a58f5506-b382-44d4-bfab-225b2fbf8390,DYN365_BUSCENTRAL_ENVIRONMENT,d397d6c6-9664-4502-b71c-66f39c400ca4,Dynamics 365 Business Central Additional Environment Addon @@ -45,6 +90,11 @@ Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,DYN365_BUSCENTRAL_ESSENTIALS_ATTACH,17ca446c-d7a4-4d29-8dec-8e241592164b,Dynamics 365 Business Central Essentials Attach +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,DYN365_FINANCIALS_ACCOUNTANT,170991d7-b98e-41c5-83d4-db2052e1795f,Dynamics 365 Business Central External Accountant Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 @@ -55,21 +105,101 @@ Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4c Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,DYN365_FINANCIALS_TEAM_MEMBERS,d9a6391b-8970-4976-bd94-5f205007c8d8,Dynamics 365 for Team Members +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,DYN365_RETAIL_TRIAL,874d6da5-2a67-45c1-8635-96e8b3e300ea,Dynamics 365 for Retail Trial +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_CSI_EMBED_CE,1412cdc1-d593-4ad1-9050-40c30ad0b023,Dynamics 365 Customer Service Insights for CE Plan -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 P1 -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Flow for Dynamics 365 -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Forms_Pro_CE,97f29a83-1a20-44ff-bf48-5e4ad11f3e51,Microsoft Dynamics 365 Customer Voice for Customer Engagement Plan -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Microsoft Social Engagement Enterprise -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Customer Insights BASE +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE,b3c26516-3b8d-492f-a5a3-64d70ad3f8d0,Dynamics 365 Customer Insights Engagement Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,CDS_CUSTOMER_INSIGHTS_TRIAL,94e5cbf6-d843-4ee8-a2ec-8b15eb52019e,Common Data Service for Customer Insights Trial +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE_TRIAL,e2bdea63-235e-44c6-9f5e-5b0e783f07dd,Dynamics 365 Customer Insights Engagement Insights Viral +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_VIRAL,ed8e8769-94c5-4132-a3e7-7543b713d51f,Dynamics 365 Customer Insights Viral Plan +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,Forms_Pro_Customer_Insights,fe581650-cf61-4a09-8814-4bd77eca9cb5,Microsoft Dynamics 365 Customer Voice for Customer Insights +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,D365_CUSTOMER_SERVICE_ENT_ATTACH,61a2665f-1873-488c-9199-c3d0bc213fdf,Dynamics 365 for Customer Service Enterprise Attach +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_MESSAGING_VIRAL_TRIAL,3bf52bdf-5226-4a97-829e-5cca9b3f3392,Dynamics 365 Customer Service Digital Messaging vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_ENTERPRISE_VIRAL_TRIAL,94fb67d3-465f-4d1f-a50a-952da079a564,Dynamics 365 Customer Service Enterprise vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYNB365_CSI_VIRAL_TRIAL,33f1466e-63a6-464c-bf6a-d1787928a56a,Dynamics 365 Customer Service Insights vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_VOICE_VIRAL_TRIAL,3de81e39-4ce1-47f7-a77f-8473d4eb6d7c,Dynamics 365 Customer Service Voice vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial Dynamics 365 Customer Service Insights Trial,DYN365_AI_SERVICE_INSIGHTS,61e6bd70-fbdb-4deb-82ea-912842f39431,DYN365_AI_SERVICE_INSIGHTS,4ade5aa6-5959-4d2c-bf0a-f4c9e2cc00f2,Dynamics 365 AI for Customer Service Trial Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,DYN365_CDS_FORMS_PRO,363430d1-e3f7-43bc-b07b-767b6bb95e4b,Common Data Service Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PRO,17efdd9f-c22c-4ad8-b48e-3b1f3ee1dc9a,Dynamics 365 Customer Voice @@ -83,6 +213,10 @@ Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2- Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,FLOW_CUSTOMER_SERVICE_PRO,0368fc9c-3721-437f-8b7d-3d0f888cdefc,Power Automate for Customer Service Pro Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,D365_CUSTOMER_SERVICE_PRO_ATTACH,a9dd2dca-10ae-4da2-aaf0-d3fe8a825110,Dynamics 365 for Customer Service Pro Attach +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,Customer_Voice_Base,296820fe-dce5-40f4-a4f2-e14b8feef383,Dynamics 365 Customer Voice Base Plan +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,Forms_Pro_AddOn,90a816f6-de5f-49fd-963c-df490d73b7b5,Microsoft Dynamics 365 Customer Voice Add-on Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,CUSTOMER_VOICE_ADDON,e6e35e2d-2e7f-4e71-bc6f-2f40ed062f5d,Dynamics Customer Voice Add-On @@ -90,44 +224,397 @@ Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,CDS_FORM_PRO_USL,e9830cfd-e65d-49dc-84fb-7d56b9aa2c89,Common Data Service Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,Forms_Pro_USL,3ca0766a-643e-4304-af20-37f02726339b,Microsoft Dynamics 365 Customer Voice USL Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,CRMSTORAGE_GCC,62edd427-6067-4274-93c4-29afdeb30707,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,CRM_ONLINE_PORTAL,1d4e9cb1-708d-449c-9f71-943aa8ed1d6a,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,CRMINSTANCE_GCC,483cc331-f4df-4a3b-b8ca-fe1a247569f6,Microsoft Dynamics CRM Online Instance +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,CDS_FIELD_SERVICE_CONTRACTOR,f4614a66-d632-443a-bc77-afe92987b322,Common Data Service Field service Part Time Contractors +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,DYN365_FS_ENTERPRISE_VIRAL_TRIAL,20d1455b-72b2-4725-8354-a177845ab77d,Dynamics 365 Field Service Enterprise vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,D365_Finance,9f0e1b4e-9b33-4300-b451-b2c662cd4ff7,Microsoft Dynamics 365 for Finance Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 -DYNAMICS 365 FOR CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -DYNAMICS 365 FOR CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS -DYNAMICS 365 FOR CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) -DYNAMICS 365 FOR CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 -DYNAMICS 365 FOR CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 -DYNAMICS 365 FOR CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE -DYNAMICS 365 FOR CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -DYNAMICS 365 FOR FINANCIALS BUSINESS EDITION,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 -DYNAMICS 365 FOR FINANCIALS BUSINESS EDITION,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 -DYNAMICS 365 FOR FINANCIALS BUSINESS EDITION,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS -DYNAMICS 365 FOR SALES AND CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN -DYNAMICS 365 FOR SALES AND CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -DYNAMICS 365 FOR SALES AND CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -DYNAMICS 365 FOR SALES AND CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -DYNAMICS 365 FOR SALES AND CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -DYNAMICS 365 FOR SALES AND CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -DYNAMICS 365 FOR SALES AND CUSTOMER SERVICE ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -DYNAMICS 365 FOR SALES ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES -DYNAMICS 365 FOR SALES ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -DYNAMICS 365 FOR SALES ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION -DYNAMICS 365 FOR SALES ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -DYNAMICS 365 FOR SALES ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -DYNAMICS 365 FOR SALES ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -DYNAMICS 365 FOR SALES ENTERPRISE EDITION,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT -DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE -DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT -DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,DYN365_ENTERPRISE_CASE_MANAGEMENT,2822a3a1-9b8f-4432-8989-e11669a60dc8,Dynamics 365 for Case Management +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_CDS_RETAIL,93cc200d-a47f-4c56-aec1-83f8b0d0425a,Common Data Service for Dynamics 365 Retail +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_RETAIL,117e3aa0-8d08-4a19-a6a5-90b7a96e2128,Dynamics 365 Commerce +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_ACC_PROTECTION,4c00c16c-0304-4421-b598-555c3e78edcb,Dynamics 365 Fraud Protection - Account Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_LOSS_PREVENTION,ecc62904-fa88-4552-a62c-fe582fb31444,Dynamics 365 Fraud Protection - Loss Prevention +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_PURCH_PROTECTION,d703990f-006e-459b-b8dd-1267c4533a22,Dynamics 365 Fraud Protection - Purchase Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_COMBINED_BASE,d66ee5da-07d5-49d6-a1d8-45662c3f37be,Dataverse for Customer Insights Combined Base +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,DYN365_CUSTOMER_INSIGHTS_JOURNEYS_BASE,1720c3f7-7da3-4a11-8324-92aad283eb68,Dynamics 365 Customer Insights Journeys +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,CDS_CUSTOMER_INSIGHTS_JOURNEYS_ADD-ON,2f2e81a6-15de-4041-9f33-73c06fed3801,Dataverse for Customer Insights Journeys add-on +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,D365_FIELD_SERVICE_ATTACH,55c9148b-d5f0-4101-b5a0-b2727cfc0916,Dynamics 365 for Field Service Attach +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,D365_GUIDES_VIRAL_TRIAL,fe986032-d840-4817-82d4-51fe4fbbe163,Dynamics 365 Guides vTrial +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Forms_Pro_Talent,1c4ae475-5608-43fa-b3f7-d20e07cf24b4,Microsoft Dynamics 365 Customer Voice for Talent +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_SELF_SERVICE_OPS,835b837b-63c1-410e-bf6b-bdef201ad129,Dynamics 365 Human Resource Self Service +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_OPS,8b21a5dc-5485-49ed-a2d4-0e772c830f6d,Dynamics 365 Human Resources +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_Attach,3219525a-4064-45ec-9c35-a33ea6b39a49,Dynamics 365 Human Resources Attach +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_ATTACH_OPS,90d8cb62-e98a-4639-8342-8c7d2c8215ba,Dynamics 365 Human Resources Attach License +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,DYN365_MARKETING_CONTACT_ADDON,18db5075-2c70-408d-a82b-929059d782af,Dynamics 365 for Marketing Additional Contacts Tier 1 +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Non-Prod Application,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,c393e9bd-2335-4b46-8b88-9e2a86a85ec1,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,1599de10-5250-4c95-acf2-491f74edce48,Dynamics 365 Marketing Sandbox Application AddOn +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,Forms_Pro_Marketing,76366ba0-d230-47aa-8087-b6d55dae454f,Microsoft Dynamics 365 Customer Voice for Marketing +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_RETAIL_Activity,f06754ec-6d72-4bf6-991c-4cb5413d9932,Dynamics 365 for Retail Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Attract_Activity,aac5a56b-b02e-4608-8014-b076646d4011,Dynamics 365 for Talent - Attract Experience Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Onboard_Activity,db225597-e9c2-4d96-8ace-5424744c80f8,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Talent_Activity,1f87ee90-5c3a-4cf9-b6fd-e3e8017c26ec,Dynamics 365 for Talent Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Operations_Activity,6bddf93e-d6f4-4991-b9fc-30cfdf07ee7b,Dynamics365 for Operations Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Forms_Pro_SalesEnt_GCC,33850b82-0a37-4ebb-a0b2-ee163facd716,Microsoft Dynamics 365 Customer Voice for Sales Enterprise for GCC +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_SALES_INSIGHTS,fedc185f-0711-4cc0-80ed-0a92da1a8384,Dynamics 365 AI for Sales (Embedded) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,D365_SCM_Attach,b21c777f-c2d5-486e-88f6-fc0a3e474271,Dynamics 365 for Supply Chain Management Attach +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,DYN365_BUSINESS_Marketing,393a0c96-9ba1-4af0-8975-fa2f853a25ac,Dynamics 365 Marketing +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_ENTERPRISE_VIRAL_TRIAL,7f636c80-0961-41b2-94da-9642ccf02de0,Dynamics 365 Sales Enterprise vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_INSIGHTS_VIRAL_TRIAL,456747c0-cf1e-4b0d-940f-703a01b964cc,Dynamics 365 Sales Insights vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,DYN365_SALES_PRO,88d83950-ff78-4e85-aa66-abfc787f8090,Dynamics 365 for Sales Professional +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,POWERAPPS_SALES_PRO,6f9f70ce-138d-49f8-bb8b-2e701b7dde75,Power Apps for Sales Pro +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,PROJECT_ESSENTIALS,f944d685-f762-4371-806d-a1f48e5bea13,Project Online Essentials +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2)Dynamics 365 for Sales Pro Attach +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,DYN365_SALES_PRO_GOV,dd89efa0-5a55-4892-ba30-82e3f8008339,Dynamics 365 for Sales Professional for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,POWERAPPS_SALES_PRO_GOV,12cf31f8-754f-4efe-87a8-167c19e30831,Power Apps for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,FLOW_SALES_PRO_GOV,e62ffe5b-7612-441f-a72d-c11cf456d33a,Power Automate for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW,73f205fc-6b15-47a5-967e-9e64fdf72d0a,Dynamics 365 for Sales Professional Trial +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW_Trial,db39a47e-1f4f-462b-bf5b-2ec471fb7b88,Dynamics 365 for Sales Professional Trial +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,D365_SALES_PRO_ATTACH,065f3c64-0649-4ec7-9f47-ef5cf134c751,Dynamics 365 for Sales Pro Attach +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_DemandPlanning,e8b616eb-1a6d-42b4-84c7-b63870791349,DO NOT USE - Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,Dynamics 365 for Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM_Premium,0363c8e5-c30d-4d7c-a621-7b6cab5e0482,Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,Dynamics 365 for Talent: Onboard @@ -135,17 +622,37 @@ Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-8 Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,DYNAMICS 365 FOR TALENT - ATTRACT EXPERIENCE TEAM MEMBER -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,DYNAMICS 365 FOR TALENT - ONBOARD EXPERIENCE -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,DYNAMICS 365 FOR TEAM MEMBERS -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYNAMICS_365_FOR_OPERATIONS_TEAM_MEMBERS,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,DYNAMICS 365 FOR OPERATIONS TEAM MEMBERS -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,DYNAMICS 365 FOR RETAIL TEAM MEMBERS -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,DYNAMICS 365 FOR TALENT TEAM MEMBERS -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,FLOW FOR DYNAMICS 365 -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,POWERAPPS FOR DYNAMICS 365 -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -DYNAMICS 365 FOR TEAM MEMBERS ENTERPRISE EDITION,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,Dynamics 365 for Team Members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,5a94d0aa-ee95-455a-bb38-326e5f134478,Dynamics 365 for Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides @@ -156,8 +663,18 @@ Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_36 Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,Dynamics_365_for_Operations_Sandbox_Tier4,f6b5efb1-1813-426f-96d0-9b4f7438714f,Dynamics 365 for Operations Enterprise Edition - Sandbox Tier 4:Standard Performance Testing Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS -DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams @@ -166,419 +683,550 @@ Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,D365_SALES_ENT_ATTACH,3ae52229-572e-414f-937c-ff35a87d4f29,Dynamics 365 for Sales Enterprise Attach Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -DYNAMICS 365 TALENT: ONBOARD,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE -DYNAMICS 365 TALENT: ONBOARD,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD -DYNAMICS 365 TALENT: ONBOARD,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD -DYNAMICS 365 TALENT: ONBOARD,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYNAMICS_365_FOR_RETAIL_TEAM_MEMBERS,c0454a3d-32b5-4740-b090-78c32f48f0ad,DYNAMICS 365 FOR RETAIL TEAM MEMBERS -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_TALENT_ATTRACT_TEAMMEMBER,643d201a-9884-45be-962a-06ba97062e5e,DYNAMICS 365 FOR TALENT - ATTRACT EXPERIENCE TEAM MEMBER -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_TALENT_ONBOARD_TEAMMEMBER,f2f49eef-4b3f-4853-809a-a055c6103fe0,DYNAMICS 365 FOR TALENT - ONBOARD EXPERIENCE -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYNAMICS_365_FOR_TALENT_TEAM_MEMBERS,d5156635-0704-4f66-8803-93258f8b2678,DYNAMICS 365 FOR TALENT TEAM MEMBERS -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,DYNAMICS 365 TEAM MEMBERS -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYNAMICS_365_FOR_OPERATIONS_TEAM_MEMBERS,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,DYNAMICS 365 FOR OPERATIONS TEAM MEMBERS -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,FLOW FOR DYNAMICS 365 -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,POWERAPPS FOR DYNAMICS 365 -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -DYNAMICS 365 TEAM MEMBERS,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT (PLAN 2) -DYNAMICS 365 UNF OPS PLAN ENT EDITION,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE -DYNAMICS 365 UNF OPS PLAN ENT EDITION,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT -DYNAMICS 365 UNF OPS PLAN ENT EDITION,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS -DYNAMICS 365 UNF OPS PLAN ENT EDITION,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL -DYNAMICS 365 UNF OPS PLAN ENT EDITION,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN -DYNAMICS 365 UNF OPS PLAN ENT EDITION,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD -DYNAMICS 365 UNF OPS PLAN ENT EDITION,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 -DYNAMICS 365 UNF OPS PLAN ENT EDITION,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 -ENTERPRISE MOBILITY + SECURITY E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AZURE ACTIVE DIRECTORY PREMIUM P1 -ENTERPRISE MOBILITY + SECURITY E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 -ENTERPRISE MOBILITY + SECURITY E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -ENTERPRISE MOBILITY + SECURITY E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -ENTERPRISE MOBILITY + SECURITY E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT AZURE ACTIVE DIRECTORY RIGHTS -ENTERPRISE MOBILITY + SECURITY E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -ENTERPRISE MOBILITY + SECURITY E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AZURE ACTIVE DIRECTORY PREMIUM P1 -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,AZURE ACTIVE DIRECTORY PREMIUM P2 -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT AZURE ACTIVE DIRECTORY RIGHTS -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY -ENTERPRISE MOBILITY + SECURITY E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,Dynamics 365 Team Members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,EOP_ENTERPRISE_PREMIUM,75badc48-628e-4446-8460-41344d73abd6,Exchange Enterprise CAL Services (EOP DLP) -Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -EXCHANGE ONLINE (PLAN 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE -EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER -EXCHANGE ONLINE ESSENTIALS (ExO P1 BASED),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -EXCHANGE ONLINE ESSENTIALS,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS -EXCHANGE ONLINE ESSENTIALS,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -EXCHANGE ONLINE KIOSK,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK -EXCHANGE ONLINE POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP -INTUNE,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online Archiving for Exchange Online,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE +Exchange Online Archiving for Exchange Server,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER +Exchange Online Essentials (ExO P1 Based),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Exchange Online Kiosk,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK +Exchange Online POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP +Exchange Online Protection,EOP_ENTERPRISE,45a2423b-e884-448d-a831-d9e139c52d2f,EOP_ENTERPRISE,326e2b78-9d27-42c9-8509-46c827743a17,Exchange Online Protection +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +Intune,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,ERP_TRIAL_INSTANCE,e2f705fd-2468-4090-8c58-fad6e6b1e724,Dynamics 365 Operations Trial Environment Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,CRMPLAN2_GCC,3d53f6d9-d6e0-45c1-9575-6acd77692584,Microsoft Dynamics CRM Online Government Basic +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,CRMSTANDARD_GCC,2b8c7c8c-9db5-44a5-a1dd-f4aa5b97b372,Microsoft Dynamics CRM Online Professional for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Azure Active Directory for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Flow for Office 365 -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,PowerApps for Office 365 -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -MICROSOFT 365 A3 FOR STUDENTS,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for enterprise (unattended) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -(Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 – Premium -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 P3 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Microsoft 365 A5 for Faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Azure Advanced Threat Protection -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Flow for Office 365 -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -MICROSOFT 365 A5 FOR STUDENTS,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity @@ -607,178 +1255,893 @@ Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_ Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -MICROSOFT 365 APPS FOR BUSINESS,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT 365 APPS FOR BUSINESS,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -MICROSOFT 365 APPS FOR BUSINESS,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -MICROSOFT 365 APPS FOR BUSINESS,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 APPS FOR BUSINESS,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 APPS FOR BUSINESS,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT 365 APPS FOR BUSINESS,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -MICROSOFT 365 APPS FOR BUSINESS,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -MICROSOFT 365 APPS FOR BUSINESS,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 APPS FOR BUSINESS,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 APPS FOR ENTERPRISE,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT 365 APPS FOR ENTERPRISE,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -MICROSOFT 365 APPS FOR ENTERPRISE,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -MICROSOFT 365 APPS FOR ENTERPRISE,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 APPS FOR ENTERPRISE,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 AUDIO CONFERENCING FOR GCC,MCOMEETADV_GOC,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -MICROSOFT 365 AUDIO CONFERENCING FOR GCC,MCOMEETADV_GOC,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -MICROSOFT 365 BUSINESS BASIC,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -MICROSOFT 365 BUSINESS BASIC,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -MICROSOFT 365 BUSINESS STANDARD,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -MICROSOFT 365 BUSINESS STANDARD - PREPAID LEGACY,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,AZURE ACTIVE DIRECTORY -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFT BOOKINGS -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT AZURE ACTIVE DIRECTORY RIGHTS -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,WINDOWS 10 BUSINESS -MICROSOFT 365 BUSINESS PREMIUM,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for enterprise (device),OFFICE_PROPLUS_DEVICE1,ea4c5ec8-50e3-4193-89b9-50da5bd4cdc7,OFFICE_PROPLUS_DEVICE,3c994f28-87d5-4273-b07a-eb6190852599,Microsoft 365 Apps for Enterprise (Device) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Audio Conferencing for faculty,MCOMEETADV_FACULTY,c2cda955-3359-44e5-989f-852ca0cfa02f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 Audio Conferencing_USGOV_GCCHIGH,MCOMEETADV_USGOV_GCCHIGH,4dee1f32-0808-4fd2-a2ed-fdd575e3a45f,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 Audio Conferencing - GCCHigh Tenant (AR)_USGOV_GCCHIGH,MCOACBYOT_AR_GCCHIGH_USGOV_GCCHIGH,170ba00c-38b2-468c-a756-24c05037160a,MCOACBYOT_GCCHigh,c85e4b03-254a-453b-af72-167a53f38530,Microsoft 365 Audio Conferencing - GCCHigh Tenant +Microsoft 365 Audio Conferencing Pay-Per-Minute - EA,MCOMEETACPEA,df9561a4-4969-4e6a-8e73-c601b68ec077,MCOMEETACPEA,bb038288-76ab-49d6-afc1-eaa6c222c65a,Microsoft 365 Audio Conferencing Pay-Per-Minute +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan -Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -MICROSOFT 365 DOMESTIC CALLING PLAN (120 Minutes),MCOPSTN_5,11dee6af-eca8-419f-8061-6864517c1875,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MICROSOFT 365 DOMESTIC CALLING PLAN (120 min) -Microsoft 365 Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling for Government -Microsoft 365 Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AZURE ACTIVE DIRECTORY PREMIUM P1 -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,TO-DO (PLAN 2) -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT AZURE ACTIVE DIRECTORY RIGHTS -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE -MICROSOFT 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRISE -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Domestic Calling Plan (120 minutes) - US,MCOPSTN5_US,d13e9d1b-316a-4946-98c6-362c97a4fdfe,PSTN5_US,1346d5e6-15a6-4b88-9693-806ff7296a7a,Microsoft 365 Domestic Calling Plan - US (120 minutes) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10 Enterprise (Original) -Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU @@ -787,11 +2150,11 @@ Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner @@ -801,71 +2164,1052 @@ Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1 Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Audio Conferencing -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Azure Advanced Threat Protection -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Flow for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Phone System +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10 Enterprise (Original) Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SharePoint (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Azure Advanced Threat Protection -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs -Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FORMS_PLAN_E5_AR_GCCHIGH,cf1b2895-e3fd-4b33-9594-2ab924104547,Microsoft Forms (Plan E5) for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,POWERAPPS_O365_P3_GCCHIGH,b50a9096-5b07-4ded-a5e4-a492fb94b6ee,Power Apps for Office 365 for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FLOW_O365_P3_GCCHIGH,ee939cf0-7cd1-4262-9f72-9eaa45dbba69,Power Automate for Office 365 for GCCHigh +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery @@ -879,49 +3223,362 @@ Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_O365,882e1d Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Online Kiosk Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for O365 K SKU Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 K1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 K1 -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (local only) -Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -MICROSOFT FLOW FREE,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE - VIRAL -MICROSOFT FLOW FREE,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -MICROSOFT FLOW FREE,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE -MICROSOFT 365 AUDIO CONFERENCING FOR GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -MICROSOFT 365 AUDIO CONFERENCING FOR GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,TEAMS_DESKLESS,a42de799-58ae-4e6a-aa1d-948e7abec726,Microsoft Teams Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,DYN365_CDS_O365_F1_GCC,29007dd3-36c0-4cc2-935d-f5bca2c2c473,Common Data Service - O365 F1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,CDS_O365_F1_GCC,5e05331a-0aec-437e-87db-9ef5934b5771,Common Data Service for Teams_F1 GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,EXCHANGE_S_DESKLESS_GOV,88f4d7ef-a73b-4246-8047-516022144c9f,Exchange Online (Kiosk) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FORMS_GOV_F1,bfd4133a-bbf3-4212-972b-60412137c428,Forms for Government (Plan F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,STREAM_O365_K_GOV,d65648f1-9504-46e4-8611-2658763f28b8,Microsoft Stream for O365 for Government (F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTDESKLESS_GOV,b1aeb897-3a19-46e2-8c27-a609413cf193,SharePoint KioskG +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MCOIMP_GOV,8a9f17f1-5872-44e8-9b11-3caade9dc90f,Skype for Business Online (Plan 1) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ADALLOM_S_STANDALONE_DOD,6ebdddb7-8e55-4af2-952b-69e77262f96c,Microsoft Defender for Cloud Apps for DOD +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management -Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-based classification +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AAD_PREMIUM Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,RMS_S_PREMIUM Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,ADALLOM_S_DISCOVERY @@ -938,53 +3595,73 @@ Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,TEAMS1,57ff2d Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINTDESKLESS Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,MCOIMP +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AZURE ACTIVE DIRECTORY PREMIUM P1 -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,AZURE RIGHTS MANAGEMENT -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,AZURE RIGHTS MANAGEMENT PREMIUM FOR GOVERNMENT -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,COMMON DATA SERVICE - O365 P2 GCC -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,COMMON DATA SERVICE FOR TEAMS_P2 GCC -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,EXCHANGE PLAN 2G -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,FORMS FOR GOVERNMENT (PLAN E3) -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CONTENT_EXPLORER,d9fa6af4-e046-4c89-9226-729a0786685d,INFORMATION PROTECTION AND GOVERNANCE ANALYTICS – PREMIUM -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CONTENTEXPLORER_STANDARD,2b815d45-56e4-4e3a-b65c-66cb9175b560,INFORMATION PROTECTION AND GOVERNANCE ANALYTICS – STANDARD -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,INFORMATION PROTECTION FOR OFFICE 365 – STANDARD -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,INSIGHTS BY MYANALYTICS FOR GOVERNMENT -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,MICROSOFT 365 APPS FOR ENTERPRISE G -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT Azure Multi-Factor Authentication -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFT BOOKINGS -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,MICROSOFT STREAM FOR O365 FOR GOVERNMENT (E3) -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,MICROSOFT TEAMS FOR GOVERNMENT -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,OFFICE 365 PLANNER FOR GOVERNMENT -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,OFFICE FOR THE WEB (GOVERNMENT) -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,POWER APPS FOR OFFICE 365 FOR GOVERNMENT -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,POWER AUTOMATE FOR OFFICE 365 FOR GOVERNMENT -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SHAREPOINT PLAN 2G -MICROSOFT 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR GOVERNMENT -MICROSOFT 365 PHONE SYSTEM,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -MICROSOFT 365 PHONE SYSTEM FOR DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -MICROSOFT 365 PHONE SYSTEM FOR FACULTY,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE -MICROSOFT 365 PHONE SYSTEM FOR GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -MICROSOFT 365 PHONE SYSTEM FOR GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT -MICROSOFT 365 PHONE SYSTEM FOR GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -MICROSOFT 365 PHONE SYSTEM FOR SMALL AND MEDIUM BUSINESS,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS -MICROSOFT 365 PHONE SYSTEM FOR STUDENTS,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -MICROSOFT 365 PHONE SYSTEM FOR TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -MICROSOFT 365 PHONE SYSTEM_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -MICROSOFT 365 PHONE SYSTEM_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM -MICROSOFT 365 PHONE SYSTEM - VIRTUAL USER,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,MICROSOFT 365 PHONE SYSTEM VIRTUAL USER -Microsoft 365 Phone System - Virtual User for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone System Virtual User for Government -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,OFFICESUBSCRIPTION_unattended_GOV,18dfd9bd-5214-4184-8123-c9822d81a9bc,Microsoft 365 Apps for enterprise (unattended) for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Sales Copilot Premium & Trial +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Sales Copilot Premium with Power Automate Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving for Exchange Online Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 – Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender @@ -1000,88 +3677,361 @@ Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLI Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 -MICROSOFT BUSINESS CENTER,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER +Microsoft Business Center,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft 365 Chat +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,CDS_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,FLOW_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_Gov,bcc0702e-ba97-48d9-ae04-fa8689c53bba,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Virtual_Agent_Usl_Gov,00b6f978-853b-4041-9de0-a233d18669aa,Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Virtual_Agent_Usl_Gov_High,7ffee552-ebe8-4725-8678-5c1775c05847,Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,FLOW_Virtual_Agent_Base_Gov_High,225e52e5-7bbf-4793-8fb1-4307a7a1ae8e,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Flow_Virtual_Agent_Usl_Gov_High,aaae1744-dc7a-4811-9dd0-2bf926ff9d80,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Power_Virtual_Agent_Usl_GCC_High,3fbe8cdf-c735-44bf-bbfa-646724af4bb4,Power Virtual Agent USL for GCC High +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,DYN365_CDS_CCI_BOTS +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,CCIBOTS_PRIVPREV_VIRAL +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,FLOW_CCI_BOTS Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security -MICROSOFT DEFENDER FOR ENDPOINT,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -MICROSOFT DEFENDER FOR ENDPOINT,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,MCS_BizApps_Cloud_for_Sustainability_vTrial,c1c902e3-a956-4273-abdb-c92afcd027ef,MCS - BizApps_Cloud for Sustainability_vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft Defender for Endpoint F2,Microsoft_Defender_for_Endpoint_F2,e430a580-c37b-4d16-adba-d881d7cd0364,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P1 for EDU,DEFENDER_ENDPOINT_P1_EDU,bba890d4-7881-4584-8102-0c3fdfb739a7,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint -MICROSOFT DYNAMICS CRM ONLINE BASIC,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -MICROSOFT DYNAMICS CRM ONLINE BASIC,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -MICROSOFT DYNAMICS CRM ONLINE BASIC,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC -MICROSOFT DYNAMICS CRM ONLINE BASIC,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ADALLOM_FOR_AATP,61d18b02-6889-479f-8f36-56e6e0fe5792,SecOps Investigation for MDI +Microsoft Defender for Office 365 (Plan 1) Faculty,ATP_ENTERPRISE_FACULTY,26ad4b5c-b686-462e-84b9-d7c22b46837f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) GCC,ATP_ENTERPRISE_GOV,d0d1ca43-b81a-4f51-81e5-a5b1ad7bb005,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 1)_USGOV_GCCHIGH,ATP_ENTERPRISE_USGOV_GCCHIGH ,550f19ba-f323-4a7d-a8d2-8971b0d9ea85,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student,ATP_ENTERPRISE_STUDENT,917fb2b4-f71c-43a1-8edc-75532b554bb5,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student use benefit,ATP_ENTERPRISE_STUDENTS_USE_BENEFIT,a237b6d8-572e-4839-bffd-7786d32a5d0e,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government -MICROSOFT DYNAMICS CRM ONLINE,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA -MICROSOFT DYNAMICS CRM ONLINE,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 -MICROSOFT DYNAMICS CRM ONLINE,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY -MICROSOFT DYNAMICS CRM ONLINE,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY -MICROSOFT DYNAMICS CRM ONLINE,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 -MS IMAGINE ACADEMY,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Defender Vulnerability Management,TVM_Premium_Standalone,1925967e-8013-495f-9644-c99f8b463748,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Defender Vulnerability Management Add-on,TVM_Premium_Add_on,ad7a56e0-6903-4d13-94f3-5ad491e78960,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Internet_Access,8d23cb83-ab07-418f-8517-d7aca77307dc,Microsoft Entra Internet Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Intune Advanced Analytics,Microsoft_Intune_Advanced_Analytics,5e36d0d4-e9e5-4052-aba0-0257465c9b86,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Microsoft Intune Advanced Analytics Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -MICROSOFT INTUNE DEVICE FOR GOVERNMENT,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -MICROSOFT INTUNE DEVICE FOR GOVERNMENT,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service – VIRAL +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,FLOW_DEV_VIRAL,c7ce3f26-564d-4d3a-878d-d8ab868c85fe,Flow for Developer +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,POWERAPPS_DEV_VIRAL,a2729df7-25f8-4e63-984b-8a8484121554,PowerApps for Developer +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service - VIRAL Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,Flow Free Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL_REAL,d20bfa21-e9ae-43fc-93c2-20783f0840c3,Flow P2 Viral Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,POWERAPPS_P2_VIRAL,d5368ca3-357e-4acb-9c21-8495fb025d1f,PowerApps Trial -MICROSOFT POWER AUTOMATE PLAN 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -MICROSOFT POWER AUTOMATE PLAN 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -MICROSOFT POWER AUTOMATE PLAN 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) -MICROSOFT INTUNE SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,AZURE ACTIVE DIRECTORY -MICROSOFT INTUNE SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -MICROSOFT INTUNE SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE -MICROSOFT INTUNE SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Microsoft Entra ID +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Intune Advanced endpoint analytics +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-EPM,bb73f429-78ef-4ff2-83c8-722b04c3e7d1,Intune Endpoint Privilege Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,INTUNE_P2,d9923fe3-a2de-4d29-a5be-e3e83bb786be,Intune Plan 2 +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-MAMTunnel,a6e407da-7411-4397-8a2e-d9b52780849e,Microsoft Tunnel for Mobile Application Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,POWERAPPS_P2,00527d7f-d5bc-4c2a-8d1e-6c0de2410c81,Power Apps (Plan 2) Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) -MICROSOFT STREAM,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -MICROSOFT STREAM,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Forms_Pro_Relationship_Sales,507172c0-6001-4f4f-80e7-f350507af3e5,Microsoft Dynamics 365 Customer Voice for Relationship Sales +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,56e3d4ca-2e31-4c3f-8d57-89c1d363503b,Microsoft Relationship Sales solution +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,STREAM_P2,d3a458d0-f10d-48c2-9e44-86f3f684029e,Microsoft Stream Plan 2 Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,STREAM_STORAGE,83bced11-77ce-4071-95bd-240133796768,Microsoft Stream Storage Add-On -MICROSOFT TEAMS (FREE),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -MICROSOFT TEAMS (FREE),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) -MICROSOFT TEAMS (FREE),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) -MICROSOFT TEAMS (FREE),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK -MICROSOFT TEAMS (FREE),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE -MICROSOFT TEAMS (FREE),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) -MICROSOFT TEAMS EXPLORATORY,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_USL_PLUS,beaf5b5c-d11c-4417-b5cb-cd9f9e6719b0,MCS - BizApps Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_APPS_FOR_MCS_USL_PLUS,c5502fe7-406d-442a-827f-4948b821ba08,Power Apps for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_AUTOMATE_FOR_MCS_USL_PLUS,1c22bb50-96fb-49e5-baa6-195cab19eee2,Power Automate for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Audio Conferencing with dial-out to USA/CAN,Microsoft_Teams_Audio_Conferencing_select_dial_out,1c27243e-fb4d-42b1-ae8c-fe25c9616588,MCOMEETBASIC,9974d6cf-cd24-4ba2-921c-e2aa687da846,Microsoft Teams Audio Conferencing with dial-out to select geographies +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) +Microsoft Teams Calling Plan pay-as-you-go (country zone 1 - US),Microsoft_Teams_Calling_Plan_pay_as_you_go_(country_zone_1_US),9b196e97-5830-4c2e-adc2-1e10ebf5dee5,MCOPSTN_PAYG_1,156a1efe-17cd-4b03-9f17-2eb512298fb3,Microsoft Teams Calling Plan pay-as-you-go - country zone 1 +Microsoft Teams Domestic Calling Plan (240 min),MCOPSTN_6,729dbb8f-8d56-4994-8e33-2f218f549544,MCOPSTN6,346d83bf-6fe6-42ca-b424-b9300d2e21bf,Microsoft 365 Domestic Calling Plan (240 min) +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling Plan for Government +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Teams Essentials,Teams_Ess,fde42873-30b6-436b-b361-21af5a6b84ae,TeamsEss,f4f2f6de-6830-442b-a433-e92249faebe2,Microsoft Teams Essentials +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft Teams Phone Standard,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Faculty,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT +Microsoft Teams Phone Standard for GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Small and Medium Business,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS +Microsoft Teams Phone Standard for Students,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Resource Account,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for Faculty,PHONESYSTEM_VIRTUALUSER_FACULTY,0e142028-345e-45da-8d92-8bfd4093bbb9,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone Standard Resource Account for Government +Microsoft Teams Phone Resource Account_USGOV_GCCHIGH,PHONESYSTEM_VIRTUALUSER_USGOV_GCCHIGH ,e3f0522e-ebb7-4561-9f90-b44516d65b77,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Rooms_Pro,0374d34c-6be4-4dbb-b3f0-26105db0b28a,Teams Rooms Pro +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID Plan 1 Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams @@ -1093,25 +4043,146 @@ Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOIN Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise Microsoft Threat Experts - Experts on Demand,EXPERTS_ON_DEMAND,9fa2f157-c8e4-4351-a3f2-ffa506da1406,EXPERTS_ON_DEMAND,b83a66d4-f05f-414d-ac0f-ea1c5239c42b,Microsoft Threat Experts - Experts on Demand -Multi-Geo Capabilities in Office 365,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo -Multi-Geo Capabilities in Office 365,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo -Multi-Geo Capabilities in Office 365,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Glint,Viva_Glint_Standalone,3dc7332d-f0fa-40a3-81d3-dd6b84469b78,Viva_Glint,6b270342-093e-4015-8c5c-224561532fbf,Viva Glint +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Microsoft Viva Topics +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_COMMUNITIES_AND_COMMUNICATIONS,43304c6a-1d4e-4e0b-9b06-5b2a2ff58a90,Viva Engage Communities and Communications +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_KNOWLEDGE,c244cc9e-622f-4576-92ea-82e233e44e36,Viva Engage Knowledge +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 @@ -1134,15 +4205,15 @@ Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d6 Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise -Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 @@ -1165,102 +4236,138 @@ Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Flow for Office 365 Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for EDU +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Flow for Office 365 Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) -Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 Microsoft Defender for Office 365 (Plan 1),ATP_ENTERPRISE,4ef96642-f096-40de-a3e9-d83fb2f90211,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE_S_FOUNDATION_GOV Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,SHAREPOINTSTORAGE_GOV,e5bb877f-6ac9-4461-9e43-ca581543ab16,SHAREPOINTSTORAGE_GOV @@ -1282,78 +4389,258 @@ Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff- Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management Office 365 Extra File Storage,SHAREPOINTSTORAGE,99049c9c-6011-4908-bf17-15f496e6519d,SHAREPOINTSTORAGE,be5a7ed5-c598-4fcd-a061-5e6724c68a58,Office 365 Extra File Storage -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -OFFICE 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -OFFICE 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FORMS_PLAN_E1_AR_GCCHIGH,9c37c053-dfe3-4421-b6d4-bac8b86d42bd,Microsoft Forms (Plan E1) for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,POWERAPPS_O365_P1_GCCHIGH,3913e44e-824e-490c-a182-82785d769b45,Power Apps for Office 365 for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FLOW_O365_P1_GCCHIGH,e923bad8-588e-44d5-acd0-b226daa7b4de,Power Automate for Office 365 for GCCHigh +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 -Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OFFICE 365 E3 DEVELOPER,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus @@ -1361,7 +4648,7 @@ Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395 Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) -Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) @@ -1369,23 +4656,23 @@ Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00 Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT AZURE ACTIVE DIRECTORY RIGHTS -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -OFFICE 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT Microsoft Entra RIGHTS +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox @@ -1393,10 +4680,10 @@ Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_Excha Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 – Premium -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 – Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing @@ -1404,7 +4691,7 @@ Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,OFFICESUBSC Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System -Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Azure Active Directory Rights +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key @@ -1438,236 +4725,812 @@ Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTE Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,OFFICE 365 CLOUD APP SECURITY -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,POWER BI PRO -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,OFFICE 365 ADVANCED EDISCOVERY -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,EXCHANGE_ANALYTICS -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,FLOW FOR OFFICE 365 -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,LOCKBOX_ENTERPRISE -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,PHONE SYSTEM -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,POWERAPPS FOR OFFICE 365 -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT AZURE ACTIVE DIRECTORY RIGHTS -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,OFFICE 365 ADVANCED THREAT PROTECTION (PLAN 2) -OFFICE 365 E5 WITHOUT AUDIO CONFERENCING,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) -OFFICE 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,AZURE RIGHTS MANAGEMENT -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,COMMON DATA SERVICE - O365 P2 GCC -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,COMMON DATA SERVICE FOR TEAMS_P2 GCC -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,EXCHANGE PLAN 2G -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,FORMS FOR GOVERNMENT (PLAN E3) -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,INFORMATION PROTECTION AND GOVERNANCE ANALYTICS – PREMIUM -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,INFORMATION PROTECTION AND GOVERNANCE ANALYTICS – STANDARD -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,INFORMATION PROTECTION FOR OFFICE 365 – STANDARD -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,INSIGHTS BY MYANALYTICS FOR GOVERNMENT -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,MICROSOFT 365 APPS FOR ENTERPRISE G -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFT BOOKINGS -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,MICROSOFT STREAM FOR O365 FOR GOVERNMENT (E3) -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,MICROSOFT TEAMS FOR GOVERNMENT -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,OFFICE 365 PLANNER FOR GOVERNMENT -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,OFFICE FOR THE WEB (GOVERNMENT) -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,POWER APPS FOR OFFICE 365 FOR GOVERNMENT -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,POWER AUTOMATE FOR OFFICE 365 FOR GOVERNMENT -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SHAREPOINT PLAN 2G -OFFICE 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR GOVERNMENT -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,RMS_S_ENTERPRISE_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,DYN365_CDS_O365_P3_GCC -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,CDS_O365_P3_GCC -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,LOCKBOX_ENTERPRISE_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,EXCHANGE_S_ENTERPRISE_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,FORMS_GOV_E5 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,INFORMATION_BARRIERS -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Content_Explorer -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,ContentExplorer_Standard -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,MIP_S_CLP2 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,MIP_S_CLP1 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,MICROSOFT_COMMUNICATION_COMPLIANCE -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,M365_ADVANCED_AUDITING -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,OFFICESUBSCRIPTION_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MCOMEETADV_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,MTP -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MCOEV_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,COMMUNICATIONS_DLP -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,CUSTOMER_KEY -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,ATP_ENTERPRISE_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,THREAT_INTELLIGENCE_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,INFO_GOVERNANCE -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,EXCHANGE_ANALYTICS_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,RECORDS_MANAGEMENT -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,STREAM_O365_E5_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,TEAMS_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,EQUIVIO_ANALYTICS_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,ADALLOM_S_O365 -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,PROJECTWORKMANAGEMENT_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,SHAREPOINTWAC_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,POWERAPPS_O365_P3_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,FLOW_O365_P3_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,BI_AZURE_P_2_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,PREMIUM_ENCRYPTION -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SHAREPOINTENTERPRISE_GOV -Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,MCOSTANDARD_GOV -OFFICE 365 MIDSIZE BUSINESS,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN -OFFICE 365 MIDSIZE BUSINESS,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ -OFFICE 365 MIDSIZE BUSINESS,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION -OFFICE 365 MIDSIZE BUSINESS,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 -OFFICE 365 MIDSIZE BUSINESS,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -OFFICE 365 MIDSIZE BUSINESS,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OFFICE 365 MIDSIZE BUSINESS,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE -OFFICE 365 SMALL BUSINESS,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) -OFFICE 365 SMALL BUSINESS,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) -OFFICE 365 SMALL BUSINESS,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE -OFFICE 365 SMALL BUSINESS,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -OFFICE 365 SMALL BUSINESS PREMIUM,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) -OFFICE 365 SMALL BUSINESS PREMIUM,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) -OFFICE 365 SMALL BUSINESS PREMIUM,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION -OFFICE 365 SMALL BUSINESS PREMIUM,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE -OFFICE 365 SMALL BUSINESS PREMIUM,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -ONEDRIVE FOR BUSINESS (PLAN 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -ONEDRIVE FOR BUSINESS (PLAN 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD -ONEDRIVE FOR BUSINESS (PLAN 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -ONEDRIVE FOR BUSINESS (PLAN 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -ONEDRIVE FOR BUSINESS (PLAN 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE -ONEDRIVE FOR BUSINESS (PLAN 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -POWERAPPS AND LOGIC FLOWS,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -POWERAPPS AND LOGIC FLOWS,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS -POWERAPPS AND LOGIC FLOWS,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC -POWERAPPS AND LOGIC FLOWS,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FORMS_PLAN_K_AR_GCCHIGH,59fb5884-fdec-40bf-aa7f-89e2bae79a7a,Microsoft Forms (Plan F1) for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,POWERAPPS_O365_S1_GCCHIGH,b9f1a92f-d4c7-477b-b64c-e23d7b4e8cf9,Power Apps for Office 365 F3 for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FLOW_O365_S1_GCCHIGH,1db85bca-cd60-4bf5-ae54-641e0778a532,Power Automate for Office 365 F3 for GCCHigh +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,DYN365_CDS_O365_P1_GCC,8eb5e9bc-783f-4425-921a-c65f45dd72c6,Common Data Service - O365 P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,CDS_O365_P1_GCC,959e5dec-6522-4d44-8349-132c27c3795a,Common Data Service for Teams_P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FORMS_GOV_E1,f4cba850-4f34-4fd2-a341-0fddfdce1e8f,Forms for Government (Plan E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,STREAM_O365_E1_GOV,15267263-5986-449d-ac5c-124f3b49b2d6,Microsoft Stream for O365 for Government (E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SharePoint Plan 1G,f9c43823-deb4-46a8-aa65-8b551f0c4f8a,SharePoint Plan 1G +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GCC,7251de8f-ecfb-481e-bcff-4af4f1a4573c,Data integration for Project with Power Automate for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_FOR_PROJECT_GCC_P5,684a2229-5c57-43ab-b69f-f86fe8997358,Common Data Service for Project P5 for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_P2_GOV,06879193-37cc-4976-8991-f8165c994ce7,Power Automate P2 for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_P2_GOV,51729bb5-7564-4927-8df8-9f5b12279cf3,PowerApps Plan 2 for Dynamics 365 for Government +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,CDS_PER_APP_IWTRIAL,94a669d1-84d5-4e54-8462-53b0ae2c8be5,CDS Per app baseline access PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,Flow_Per_APP_IWTRIAL,dd14867e-8d31-4779-a595-304405f5ad39,Flow per app baseline access PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,POWERAPPS_PER_APP_IWTRIAL,35122886-cef5-44a3-ab36-97134eabd9ba,PowerApps per app baseline access +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,CDS_ POWERAPPS_PER_APP_CUSTOM_GCC,ee493f70-a3b3-4204-9511-e3f6083b8df3,CDS Power Apps Per App Custom GCC +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,CDS_PER_APP,9f2f00ad-21ae-4ceb-994b-d8bc7be90999,CDS PowerApps per app plan Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,POWERAPPS_PER_APP,b4f657ff-d83e-4053-909d-baa2b595ec97,Power Apps per App Plan Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan -Power Apps per user plan,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 -Power Apps per user plan,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Apps per user plan,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan -Power Apps per user plan,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,POWERAPPS_PER_APP_NEW,14f8dac2-0784-4daa-9cb2-6d670b088d64,Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,CDS_ POWERAPPS_PER_APP_CUSTOM_NEW,c2da6658-f89d-49f2-9508-40431dee115b,CDS Power Apps Per App Custom New +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,CDS_PER_APP_GCC,d7f9c9bc-0a28-4da4-b5f1-731acb27a3e4,CDS PowerApps per app plan for GCC +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,DO NOT USE - AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,POWERAPPS_PER_USER_GCC,8f55b472-f8bf-40a9-be30-e29919d4ddfe,Power Apps per User Plan for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,Flow_PowerApps_PerUser_GCC,8e3eb3bd-bc99-4221-81b8-8b8bc882e128,Power Automate for Power Apps per User Plan for GCC +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,POWERAPPS_P1_GOV,5ce719f1-169f-4021-8a64-7d24dcaec15f,PowerApps Plan 1 for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,CDS_POWERAPPS_PORTALS_LOGIN_GCC,0f7b9a29-7990-44ff-9d05-a76be778f410,Common Data Service Power Apps Portals Login Capacity for GCC +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,POWERAPPS_PORTALS_LOGIN_GCC,bea6aef1-f52d-4cce-ae09-bed96c4b1811,Power Apps Portals Login Capacity Add-On for Government +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,CDS_POWERAPPS_PORTALS_PAGEVIEW,72c30473-7845-460a-9feb-b58f216e8694,CDS PowerApps Portals page view capacity add-on +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,POWERAPPS_PORTALS_PAGEVIEW,1c5a559a-ec06-4f76-be5b-6a315418495f,Power Apps Portals Page View Capacity Add-On +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,CDS_POWERAPPS_PORTALS_PAGEVIEW_GCC,352257a9-db78-4217-a29d-8b8d4705b014,CDS PowerApps Portals page view capacity add-on for GCC +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,POWERAPPS_PORTALS_PAGEVIEW_GCC,483d5646-7724-46ac-ad71-c78b7f099d8d,Power Apps Portals Page View Capacity Add-On for Government Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,CDS_Flow_Business_Process,c84e52ae-1906-4947-ac4d-6fb3e5bf7c2e,Common data service for Flow per business process plan Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,FLOW_BUSINESS_PROCESS,7e017b61-a6e0-4bdc-861a-932846591f6e,Flow per business process plan +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,CDS_Flow_Business_Process_GCC,54b61386-c818-4634-8400-61c9e8f6acd3,Common Data Service for Power Automate per Business Process Plan for GCC +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,FLOW_BUSINESS_PROCESS_GCC,cb83e771-a077-4a73-9201-d955585b29fa,Power Automate per Business Process Plan for Government Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan -Power Automate per user with attended RPA plan,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA -Power Automate per user with attended RPA plan,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power Automate per user with attended RPA plan,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,FLOW_PER_USER_GCC,769b8bee-2779-4c5a-9456-6f4f8629fd41,Power Automate per User Plan for Government +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,CDS_ATTENDED_RPA_GCC,4802707d-47e1-45dc-82c5-b6981f0fb38c,Common Data Service Attended RPA for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,POWER_AUTOMATE_ATTENDED_RPA_GCC,fb613c67-1a58-4645-a8df-21e95a37d433,Power Automate Attended RPA for Government +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,DATAVERSE_FOR_POWER_AUTOMATE_PER_PROCESS,d7c3df99-6f58-40b9-8940-cd3a51679d85,Dataverse for Power Automate Per Process Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,CDS_UNATTENDED_RPA,b475952f-128a-4a44-b82a-0b98a45ca7fb,Common Data Service Unattended RPA Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,POWER_AUTOMATE_UNATTENDED_RPA,0d373a98-a27a-426f-8993-f9a425ae99c5,Power Automate Unattended RPA add-on +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,CDS_UNATTENDED_RPA_GCC,5141c408-df3d-456a-9878-a65119b0a750,Common Data Service Unattended RPA for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,POWER_AUTOMATE_UNATTENDED_RPA_GCC,45e63e9f-6dd9-41fd-bd41-93bfa008c537,Power Automate Unattended RPA for Government Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,Microsoft Power BI Information Services Plan 1 Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,Microsoft Power BI Reporting and Analytics Plan 1 -Power BI (free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Power BI (free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) -POWER BI FOR OFFICE 365 ADD-ON,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 -POWER BI FOR OFFICE 365 ADD-ON,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,PBI_PREMIUM_P1_ADDON,9da49a6d-707a-48a1-b44a-53dcde5267f8,Power BI Premium P +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,PBI_PREMIUM_P1_ADDON_GCC,30df3dbd-5bf6-4d74-9417-cccc096595e4,Power BI Premium P1 for GCC Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,PBI_PREMIUM_EM2_ADDON,4e29abd1-ba96-44c0-8a72-e24e4fe9956e,Power BI Premium EM2 +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,a64b30ba-f310-4065-b444-2670ef146db0,Power BI Premium EM1 +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,POWER_PAGES_VTRIAL,6817d093-2d30-4249-8bd6-774f01efa78c,Power Pages vTrial for Makers Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,CDS_VIRTUAL_AGENT_BASE,0a0a23fa-fea1-4195-bb89-b4789cb12f7f,Common Data Service for Virtual Agent Base Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,FLOW_VIRTUAL_AGENT_BASE,4b81a949-69a1-4409-ad34-9791a6ec88aa,Power Automate for Virtual Agent Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,VIRTUAL_AGENT_BASE,f6934f16-83d3-4f3b-ad27-c6e9c187b260,Virtual Agent Base +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,CDS_Virtual_Agent_Base_Gov,e4d0b25d-e440-4ee9-aac4-1d5a5db9f3ef,Dataverse for Virtual Agent Base for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,Virtual_Agent_Base_GCC,e425b9f6-1543-45a0-8efb-f8fdaf18cba1,Virtual Agent Base for GCC +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,Common Data Service for CCI Bots Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,Flow for CCI Bots -PROJECT FOR OFFICE 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Project for Office 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway -PROJECT ONLINE PREMIUM,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT -PROJECT ONLINE PREMIUM,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -PROJECT ONLINE PREMIUM,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -PROJECT ONLINE PREMIUM,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -PROJECT ONLINE PREMIUM WITHOUT PROJECT CLIENT,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -PROJECT ONLINE PREMIUM WITHOUT PROJECT CLIENT,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -PROJECT ONLINE PREMIUM WITHOUT PROJECT CLIENT,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -PROJECT ONLINE PREMIUM WITHOUT PROJECT CLIENT,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -PROJECT ONLINE PREMIUM WITHOUT PROJECT CLIENT,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -PROJECT ONLINE WITH PROJECT FOR OFFICE 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) -PROJECT ONLINE WITH PROJECT FOR OFFICE 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT -PROJECT ONLINE WITH PROJECT FOR OFFICE 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT -PROJECT ONLINE WITH PROJECT FOR OFFICE 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) -PROJECT ONLINE WITH PROJECT FOR OFFICE 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE -PROJECT ONLINE WITH PROJECT FOR OFFICE 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY -PROJECT PLAN 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 -PROJECT PLAN 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -PROJECT PLAN 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 -PROJECT PLAN 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS -PROJECT PLAN 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 -PROJECT PLAN 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,Common Data Service for Project P1 Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,Power Automate for Project P1 Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,Project P1 Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD -Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project -Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project -Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web -Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client -Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service -Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 -Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project @@ -1676,15 +5539,63 @@ Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the web (Government) -Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client for Government +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,MCOMEETBASIC_GOV,986d454b-9027-4d9f-880b-f1b68f920cc4,Microsoft Teams Audio Conferencing with dial-out to select geographies for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,Project Online for Education,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the web (Government) -Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,RMS_S_ADHOC,7a39d7dd-e456-4e09-842a-0204ee08187b,Rights Management Adhoc Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation @@ -1693,18 +5604,47 @@ Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chai Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,D365_IOTFORSCM_ADDITIONAL,a5f38206-2f48-4d83-9957-525f4e75e9c0,IoT Intelligence Add-in Additional Machines Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,D365_IOTFORSCM,83dd9619-c7d5-44da-9250-dc4ee79fff7e,Iot Intelligence Add-in for D365 Supply Chain Management -SHAREPOINT ONLINE (PLAN 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD -SHAREPOINT ONLINE (PLAN 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +SharePoint Online (Plan 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +SharePoint Online (Plan 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,CDS_O365_E5_KM,3069d530-e41b-421c-ad59-fb1001a23e11,Common Data Service for SharePoint Syntex SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services,f00bd55e-1633-416e-97c0-03684e42bc42,SharePoint Syntex SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services_SPO_type,fd2e7f90-1010-487e-a11b-d2b1ae9651fc,SharePoint Syntex - SPO type -SKYPE FOR BUSINESS ONLINE (PLAN 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) -SKYPE FOR BUSINESS ONLINE (PLAN 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) -SKYPE FOR BUSINESS PSTN DOMESTIC AND INTERNATIONAL CALLING,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN -SKYPE FOR BUSINESS PSTN DOMESTIC CALLING,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN -SKYPE FOR BUSINESS PSTN DOMESTIC CALLING (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN -TELSTRA CALLING FOR O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN +Skype for Business Online (Plan 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) +Skype for Business Online (Plan 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Skype for Business PSTN Calling Domestic Small,MCOPSTN5,d43177b5-475b-4880-92d4-d54c27b5efbd,Skype for Business PSTN Calling Domestic Small,9a0125a5-c8f8-4526-b231-49e2abe0ebce,Skype for Business PSTN Calling Domestic Small +Skype for Business PSTN Domestic and International Calling,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN +Skype for Business PSTN Domestic Calling,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN +Skype for Business PSTN Domestic Calling (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN +Skype for Business PSTN Usage Calling Plan,MCOPSTNPP,06b48c5f-01d9-4b18-9015-03b52040f51a,MCOPSTN3,6b340437-d6f9-4dc5-8cc2-99163f7f83d6,MCOPSTN3 +Teams Phone Mobile,Operator_Connect_Mobile,b84d58c9-0a0d-46cf-8a4b-d9f23c1674d5,MCOFMC1,cb22fbd7-ed7d-4786-a27a-e4cd617b69c0,Teams Phone Mobile +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MESH_IMMERSIVE,acbca54f-c771-423b-a476-6d7a98cbbcec,Microsoft Mesh +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,QUEUES_APP,ab2d4fb5-f80a-4bf1-a11d-7f1da254041b,Queues app for Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +TELSTRA Calling for O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Viva Learning,VIVA_LEARNING,c9d442fc-21fb-4bd7-89e0-a710d74987f6,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for business Basic @@ -1713,48 +5653,174 @@ Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,EXCHANGE_S_FO Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App -VISIO ONLINE PLAN 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -VISIO ONLINE PLAN 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC -VISIO ONLINE PLAN 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP -VISIO ONLINE PLAN 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -VISIO ONLINE PLAN 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC -VISIO ONLINE PLAN 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP -VISIO ONLINE PLAN 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP -VISIO PLAN 2 FOR GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT -VISIO PLAN 2 FOR GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT -VISIO PLAN 2 FOR GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government -VISIO PLAN 2 FOR GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Viva Goals User-led,Viva_Goals_User_led,3a349c99-ffec-43d2-a2e8-6b97fcb71103,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Viva Topics) Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Viva Topics -Windows 10 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -WINDOWS 10 ENTERPRISE E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE -WINDOWS 10 ENTERPRISE E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -WINDOWS 10 ENTERPRISE E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT -WINDOWS 10 ENTERPRISE E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) -WINDOWS 10 ENTERPRISE E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE -Windows 10 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation -Windows 10 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint -Windows 10 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print -Windows 10 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) -Windows 10 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service -Windows 10 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government -Windows 10 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint -Windows 10 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,"Virtualization Rights for Windows 10 (E3/E5+VDA)",e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,Virtualization Rights for Windows 10,e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,CPC_B_1C_2RAM_64GB,3b98b912-1720-4a1e-9630-c9a41dbb61d8,Windows 365 Business 1 vCPU 2 GB 64 GB +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,CPC_B_2C_4RAM_128GB,1a13832e-cd79-497d-be76-24186f55c8b0,Windows 365 Business 2 vCPU 4 GB 128 GB +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,CPC_B_2C_4RAM_256GB,a0b1c075-51c9-4a42-b34c-308f3993bb7e,Windows 365 Business 2 vCPU 4 GB 256 GB Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,CPC_B_2C_4RAM_64GB,a790cd6e-a153-4461-83c7-e127037830b6,Windows 365 Business 2 vCPU 4 GB 64 GB +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,CPC_SS_2,9d2eed2c-b0c0-4a89-940c-bc303444a41b,"Windows 365 Business 2 vCPU, 8 GB, 128 GB" +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,CPC_B_2C_8RAM_256GB,1a3ef005-2ef6-434b-8be1-faa56c892854,Windows 365 Business 2 vCPU 8 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,CPC_B_4C_16RAM_256GB,30f6e561-8805-41d0-80ce-f82698b72d7d,Windows 365 Business 4 vCPU 16 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,CPC_B_4C_16RAM_512GB,15499661-b229-4a1f-b0f9-bd5832ef7b3e,Windows 365 Business 4 vCPU 16 GB 512 GB +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,CPC_B_8C_32RAM_128GB,648005fc-b330-4bd9-8af6-771f28958ac0,Windows 365 Business 8 vCPU 32 GB 128 GB +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,CPC_B_8C_32RAM_256GB,d7a5113a-0276-4dc2-94f8-ca9f2c5ae078,Windows 365 Business 8 vCPU 32 GB 256 GB +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,CPC_B_8C_32RAM_512GB,4229a0b4-7f34-4835-b068-6dc8d10be57c,Windows 365 Business 8 vCPU 32 GB 512 GB +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,CPC_B_16C_64GB_512GB,cbbedc49-52d5-4fd6-82ac-a5bc51634dc3,"Windows 365 Business 16 vCPU, 64 GB, 512 GB" +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,CPC_B_16C_64GB_1TB,37c961db-2cfd-4e13-b81e-b0059ce10e34,"Windows 365 Business 16 vCPU, 64 GB, 1 TB" +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,CPC_E_1C_2GB_64GB,86d70dbb-d4c6-4662-ba17-3014204cbb28,Windows 365 Enterprise 1 vCPU 2 GB 64 GB Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,CPC_E_2C_4GB_64GB,23a25099-1b2f-4e07-84bd-b84606109438,Windows 365 Enterprise 2 vCPU 4 GB 64 GB -WINDOWS STORE FOR BUSINESS,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION -WINDOWS STORE FOR BUSINESS,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,CPC_E_2C_4GB_256GB,0d143570-9b92-4f57-adb5-e4efcd23b3bb,Windows 365 Enterprise 2 vCPU 4 GB 256 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,CPC_E_2C_8GB_256GB,d3468c8c-3545-4f44-a32f-b465934d2498,Windows 365 Enterprise 2 vCPU 8 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,CPC_E_4C_16GB_128GB,2de9c682-ca3f-4f2b-b360-dfc4775db133,Windows 365 Enterprise 4 vCPU 16 GB 128 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,CPC_E_4C_16GB_512GB,3bba9856-7cf2-4396-904a-00de74fba3a4,Windows 365 Enterprise 4 vCPU 16 GB 512 GB +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,CPC_E_8C_32GB_128GB,2f3cdb12-bcde-4e37-8529-e9e09ec09e23,Windows 365 Enterprise 8 vCPU 32 GB 128 GB +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,CPC_E_8C_32GB_256GB,69dc175c-dcff-4757-8389-d19e76acb45d,Windows 365 Enterprise 8 vCPU 32 GB 256 GB +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,CPC_E_8C_32GB_512GB,0e837228-8250-4047-8a80-d4a34ba11658,Windows 365 Enterprise 8 vCPU 32 GB 512 GB +Windows 365 Shared Use 2 vCPU 4 GB 64 GB,Windows_365_S_2vCPU_4GB_64GB,1f9990ca-45d9-4c8d-8d04-a79241924ce1,CPC_S_2C_4GB_64GB,64981bdb-a5a6-4a22-869f-a9455366d5bc,Windows 365 Shared Use 2 vCPU 4 GB 64 GB +Windows 365 Shared Use 2 vCPU 4 GB 128 GB,Windows_365_S_2vCPU_4GB_128GB,90369797-7141-4e75-8f5e-d13f4b6092c1,CPC_S_2C_4GB_128GB,51855c77-4d2e-4736-be67-6dca605f2b57,Windows 365 Shared Use 2 vCPU 4 GB 128 GB +Windows 365 Shared Use 2 vCPU 4 GB 256 GB,Windows_365_S_2vCPU_4GB_256GB,8fe96593-34d3-49bb-aeee-fb794fed0800,CPC_S_2C_4GB_256GB,aa8fbe7b-695c-4c05-8d45-d1dddf6f7616,Windows 365 Shared Use 2 vCPU 4 GB 256 GB +Windows 365 Shared Use 2 vCPU 8 GB 128 GB,Windows_365_S_2vCPU_8GB_128GB,2d21fc84-b918-491e-ad84-e24d61ccec94,CPC_S_2C_8GB_128GB,057efbfe-a95d-4263-acb0-12b4a31fed8d,Windows 365 Shared Use 2 vCPU 8 GB 128 GB +Windows 365 Shared Use 2 vCPU 8 GB 256 GB,Windows_365_S_2vCPU_8GB_256GB,2eaa4058-403e-4434-9da9-ea693f5d96dc,CPC_S_2C_8GB_256GB,50ef7026-6174-40ba-bff7-f0e4fcddbf65,Windows 365 Shared Use 2 vCPU 8 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 128 GB,Windows_365_S_4vCPU_16GB_128GB,1bf40e76-4065-4530-ac37-f1513f362f50,CPC_S_4C_16GB_128GB,dd3801e2-4aa1-4b16-a44b-243e55497584,Windows 365 Shared Use 4 vCPU 16 GB 128 GB +Windows 365 Shared Use 4 vCPU 16 GB 256 GB,Windows_365_S_4vCPU_16GB_256GB,a9d1e0df-df6f-48df-9386-76a832119cca,CPC_S_4C_16GB_256GB,2d1d344e-d10c-41bb-953b-b3a47521dca0,Windows 365 Shared Use 4 vCPU 16 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 512 GB,Windows_365_S_4vCPU_16GB_512GB,469af4da-121c-4529-8c85-9467bbebaa4b,CPC_S_4C_16GB_512GB,48b82071-99a5-4214-b493-406a637bd68d,Windows 365 Shared Use 4 vCPU 16 GB 512 GB +Windows 365 Shared Use 8 vCPU 32 GB 128 GB,Windows_365_S_8vCPU_32GB_128GB,f319c63a-61a9-42b7-b786-5695bc7edbaf,CPC_S_8C_32GB_128GB,e4dee41f-a5c5-457d-b7d3-c309986fdbb2,Windows 365 Shared Use 8 vCPU 32 GB 128 GB +Windows 365 Shared Use 8 vCPU 32 GB 256 GB,Windows_365_S_8vCPU_32GB_256GB,fb019e88-26a0-4218-bd61-7767d109ac26,CPC_S_8C_32GB_256GB,1e2321a0-f81c-4d43-a0d5-9895125706b8,Windows 365 Shared Use 8 vCPU 32 GB 256 GB +Windows 365 Shared Use 8 vCPU 32 GB 512 GB,Windows_365_S_8vCPU_32GB_512GB,f4dc1de8-8c94-4d37-af8a-1fca6675590a,CPC_S_8C_32GB_512GB,fa0b4021-0f60-4d95-bf68-95036285282a,Windows 365 Shared Use 8 vCPU 32 GB 512 GB +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE +Windows Store for Business EDU Faculty,WSFB_EDU_FACULTY,c7e9d9e6-1981-4bf3-bb50-a5bdfaa06fb2,Windows Store for Business EDU Store_faculty,aaa2cd24-5519-450f-a1a0-160750710ca1,Windows Store for Business EDU Store_faculty Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS,f477b0f0-3bb1-4890-940c-40fcee6ce05f,Microsoft Workplace Analytics Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Workplace Analytics Insights Backend Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Workplace Analytics Insights User +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P1,84c289f0-efcb-486f-8581-07f44fc9efad,Azure Active Directory workload identities P1 +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Azure Active Directory workload identities P2 diff --git a/DNSHelper.psm1 b/DNSHelper.psm1 deleted file mode 100644 index 65a411f29cf4..000000000000 --- a/DNSHelper.psm1 +++ /dev/null @@ -1,2379 +0,0 @@ -function Resolve-DnsHttpsQuery { - <# - .SYNOPSIS - Resolves DNS record using DoH JSON query - - .DESCRIPTION - This function uses Google or Cloudflare DoH REST APIs to resolve DNS records - - .PARAMETER Domain - Domain to query - - .PARAMETER RecordType - Type of record - Examples: A, CNAME, MX, TXT - - .EXAMPLE - PS> Resolve-DnsHttpsQuery -Domain google.com -RecordType A - - name type TTL data - ---- ---- --- ---- - google.com. 1 30 142.250.80.110 - - #> - [cmdletbinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain, - - [Parameter()] - [string]$RecordType = 'A' - ) - - if (Test-Path -Path 'Config\DnsConfig.json') { - try { - $Config = Get-Content 'Config\DnsConfig.json' | ConvertFrom-Json - $Resolver = $Config.Resolver - } - catch { $Resolver = 'Google' } - } - else { - $Resolver = 'Google' - } - - switch ($Resolver) { - 'Google' { - $BaseUri = 'https://dns.google/resolve' - $QueryTemplate = '{0}?name={1}&type={2}' - } - 'CloudFlare' { - $BaseUri = 'https://cloudflare-dns.com/dns-query' - $QueryTemplate = '{0}?name={1}&type={2}' - } - } - - $Headers = @{ - 'accept' = 'application/dns-json' - } - - $Uri = $QueryTemplate -f $BaseUri, $Domain, $RecordType - - Write-Verbose "### $Uri ###" - - $Retry = 0 - $DataReturned = $false - while (!$DataReturned) { - try { - $Results = Invoke-RestMethod -Uri $Uri -Headers $Headers -ErrorAction Stop - } - catch { - Write-Verbose "$Resolver DoH Query Exception - $($_.Exception.Message)" - } - - if ($Resolver -eq 'Cloudflare' -and $RecordType -eq 'txt' -and $Results.Answer) { - $Results.Answer | ForEach-Object { - $_.data = $_.data -replace '"' -replace '\s+', ' ' - } - } - - if ($Results.Answer) { - $DataReturned = $true - } - else { - if ($Retry -gt 3) { - $Results = $null - $DataReturned = $true - } - $Retry++ - Start-Sleep -Milliseconds 50 - } - } - - Write-Verbose ($Results | ConvertTo-Json) - return $Results -} - -function Test-DNSSEC { - <# - .SYNOPSIS - Test Domain for DNSSEC validation - - .DESCRIPTION - Requests dnskey record from DNS and checks response validation (AD=True) - - .PARAMETER Domain - Domain to check - - .EXAMPLE - PS> Test-DNSSEC -Domain example.com - - Domain : example.com - ValidationPasses : {example.com - DNSSEC enabled and validated} - ValidationFails : {} - Keys : {...} - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain - ) - $DSResults = [PSCustomObject]@{ - Domain = $Domain - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - Keys = [System.Collections.Generic.List[string]]::new() - } - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - $DnsQuery = @{ - RecordType = 'dnskey' - Domain = $Domain - } - - $Result = Resolve-DnsHttpsQuery @DnsQuery - - $RecordCount = ($Result.Answer.data | Measure-Object).Count - if ($null -eq $Result) { - $ValidationFails.Add('DNSSEC is not set up for this domain.') | Out-Null - } - else { - if ($Result.Status -eq 2) { - if ($Result.AD -eq $false) { - $ValidationFails.Add("$($Result.Comment)") | Out-Null - } - } - elseif ($Result.Status -eq 3) { - $ValidationFails.Add('DNSSEC is not set up for this domain.') | Out-Null - } - elseif ($RecordCount -gt 0) { - if ($Result.AD -eq $false) { - $ValidationFails.Add('DNSSEC is enabled, but the DNS query response was not validated. Ensure DNSSEC has been enabled on your domain provider.') | Out-Null - } - else { - $ValidationPasses.Add('DNSSEC is enabled and validated for this domain.') | Out-Null - } - $DSResults.Keys = $Result.answer.data - } - else { - $ValidationFails.Add('DNSSEC is not set up for this domain.') | Out-Null - } - } - - $DSResults.ValidationPasses = $ValidationPasses - $DSResults.ValidationFails = $ValidationFails - $DSResults -} - -function Read-NSRecord { - <# - .SYNOPSIS - Reads NS records for domain - - .DESCRIPTION - Queries DNS servers to get NS records and returns in PSCustomObject list - - .PARAMETER Domain - Domain to query - - .EXAMPLE - PS> Read-NSRecord -Domain gmail.com - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain - ) - $NSResults = [PSCustomObject]@{ - Domain = '' - Records = [System.Collections.Generic.List[string]]::new() - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - NameProvider = '' - } - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - $DnsQuery = @{ - RecordType = 'ns' - Domain = $Domain - } - - $NSResults.Domain = $Domain - - try { - $Result = Resolve-DnsHttpsQuery @DnsQuery - } - catch { $Result = $null } - if ($Result.Status -ne 0 -or -not ($Result.Answer)) { - $ValidationFails.Add('No nameservers found for this domain.') | Out-Null - $NSRecords = $null - } - else { - $NSRecords = $Result.Answer.data - $ValidationPasses.Add('Nameserver record is present.') | Out-Null - $NSResults.Records = @($NSRecords) - } - $NSResults.ValidationPasses = $ValidationPasses - $NSResults.ValidationFails = $ValidationFails - $NSResults -} - -function Read-MXRecord { - <# - .SYNOPSIS - Reads MX records for domain - - .DESCRIPTION - Queries DNS servers to get MX records and returns in PSCustomObject list with Preference and Hostname - - .PARAMETER Domain - Domain to query - - .EXAMPLE - PS> Read-MXRecord -Domain gmail.com - - Preference Hostname - ---------- -------- - 5 gmail-smtp-in.l.google.com. - 10 alt1.gmail-smtp-in.l.google.com. - 20 alt2.gmail-smtp-in.l.google.com. - 30 alt3.gmail-smtp-in.l.google.com. - 40 alt4.gmail-smtp-in.l.google.com. - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain - ) - $MXResults = [PSCustomObject]@{ - Domain = '' - Records = [System.Collections.Generic.List[object]]::new() - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - MailProvider = '' - ExpectedInclude = '' - Selectors = '' - } - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - $DnsQuery = @{ - RecordType = 'mx' - Domain = $Domain - } - - $NoMxValidation = 'There are no mail exchanger records for this domain. If you do not want to receive mail for this domain use a Null MX record of . with a priority 0 (RFC 7505).' - - $MXResults.Domain = $Domain - - try { - $Result = Resolve-DnsHttpsQuery @DnsQuery - } - catch { $Result = $null } - if ($Result.Status -ne 0 -or -not ($Result.Answer)) { - if ($Result.Status -eq 3) { - $ValidationFails.Add($NoMxValidation) | Out-Null - $MXResults.MailProvider = Get-Content 'MailProviders\Null.json' | ConvertFrom-Json - $MXResults.Selectors = $MXRecords.MailProvider.Selectors - } - else { - $ValidationFails.Add($NoMxValidation) | Out-Null - $MXResults.MailProvider = Get-Content 'MailProviders\Null.json' | ConvertFrom-Json - $MXResults.Selectors = $MXRecords.MailProvider.Selectors - } - $MXRecords = $null - } - else { - $MXRecords = $Result.Answer | ForEach-Object { - $Priority, $Hostname = $_.Data.Split(' ') - try { - [PSCustomObject]@{ - Priority = [int]$Priority - Hostname = $Hostname - } - } - catch {} - } - $ValidationPasses.Add('Mail exchanger records record(s) are present for this domain.') | Out-Null - $MXRecords = $MXRecords | Sort-Object -Property Priority - - # Attempt to identify mail provider based on MX record - if (Test-Path 'MailProviders') { - $ReservedVariables = @{ - 'DomainNameDashNotation' = $Domain -replace '\.', '-' - } - if ($MXRecords.Hostname -eq '') { - $ValidationFails.Add($NoMxValidation) | Out-Null - $MXResults.MailProvider = Get-Content 'MailProviders\Null.json' | ConvertFrom-Json - } - else { - Get-ChildItem 'MailProviders' -Exclude '_template.json' | ForEach-Object { - try { - $Provider = Get-Content $_ | ConvertFrom-Json -ErrorAction Stop - $MXRecords.Hostname | ForEach-Object { - if ($_ -match $Provider.MxMatch) { - $MXResults.MailProvider = $Provider - if (($Provider.SpfReplace | Measure-Object | Select-Object -ExpandProperty Count) -gt 0) { - $ReplaceList = [System.Collections.Generic.List[string]]::new() - foreach ($Var in $Provider.SpfReplace) { - if ($ReservedVariables.Keys -contains $Var) { - $ReplaceList.Add($ReservedVariables.$Var) | Out-Null - } - else { - $ReplaceList.Add($Matches.$Var) | Out-Null - } - } - - $ExpectedInclude = $Provider.SpfInclude -f ($ReplaceList -join ', ') - } - else { - $ExpectedInclude = $Provider.SpfInclude - } - - # Set ExpectedInclude and Selector fields based on provider details - $MXResults.ExpectedInclude = $ExpectedInclude - $MXResults.Selectors = $Provider.Selectors - } - } - } - catch {} - } - } - } - $MXResults.Records = $MXRecords - } - $MXResults.ValidationPasses = @($ValidationPasses) - $MXResults.ValidationFails = @($ValidationFails) - $MXResults.Records = @($MXResults.Records) - $MXResults -} - -function Read-SpfRecord { - <# - .SYNOPSIS - Reads SPF record for specified domain - - .DESCRIPTION - Uses Get-GoogleDNSQuery to obtain TXT records for domain, searching for v=spf1 at the beginning of the record - Also parses include records and obtains their SPF as well - - .PARAMETER Domain - Domain to obtain SPF record for - - .EXAMPLE - PS> Read-SpfRecord -Domain gmail.com - - Domain : gmail.com - Record : v=spf1 redirect=_spf.google.com - RecordCount : 1 - LookupCount : 4 - AllMechanism : ~ - ValidationPasses : {Expected SPF record was included, No PermError detected in SPF record} - ValidationWarns : {} - ValidationFails : {SPF record should end in -all to prevent spamming} - RecordList : {@{Domain=_spf.google.com; Record=v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all; RecordCount=1; LookupCount=4; AllMechanism=~; ValidationPasses=System.Collections.ArrayList; ValidationWarns=System.Collections.ArrayList; ValidationFails=System.Collections.ArrayList; RecordList=System.Collections.ArrayList; TypeLookups=System.Collections.ArrayList; IPAddresses=System.Collections.ArrayList; PermError=False}} - TypeLookups : {} - IPAddresses : {} - PermError : False - - .NOTES - Author: John Duprey - #> - [CmdletBinding(DefaultParameterSetName = 'Lookup')] - Param( - [Parameter(Mandatory = $true, ParameterSetName = 'Lookup')] - [Parameter(ParameterSetName = 'Manual')] - [string]$Domain, - - [Parameter(Mandatory = $true, ParameterSetName = 'Manual')] - [string]$Record, - - [Parameter(ParameterSetName = 'Lookup')] - [Parameter(ParameterSetName = 'Manual')] - [string]$Level = 'Parent', - - [Parameter(ParameterSetName = 'Lookup')] - [Parameter(ParameterSetName = 'Manual')] - [string]$ExpectedInclude = '' - ) - $SpfResults = [PSCustomObject]@{ - Domain = '' - Record = '' - RecordCount = 0 - LookupCount = 0 - AllMechanism = '' - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - RecordList = [System.Collections.Generic.List[object]]::new() - TypeLookups = [System.Collections.Generic.List[object]]::new() - Recommendations = [System.Collections.Generic.List[object]]::new() - RecommendedRecord = '' - IPAddresses = [System.Collections.Generic.List[string]]::new() - MailProvider = '' - Status = '' - - } - - - - # Initialize lists to hold all records - $RecordList = [System.Collections.Generic.List[object]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationWarns = [System.Collections.Generic.List[string]]::new() - $Recommendations = [System.Collections.Generic.List[object]]::new() - $LookupCount = 0 - $AllMechanism = '' - $Status = '' - $RecommendedRecord = '' - - $TypeLookups = [System.Collections.Generic.List[object]]::new() - $IPAddresses = [System.Collections.Generic.List[string]]::new() - - $DnsQuery = @{ - RecordType = 'TXT' - Domain = $Domain - } - - $NoSpfValidation = 'No SPF record was detected for this domain.' - - # Query DNS for SPF Record - try { - switch ($PSCmdlet.ParameterSetName) { - 'Lookup' { - if ($Domain -eq 'Not Specified') { - # don't perform lookup if domain is not specified - } - else { - $Query = Resolve-DnsHttpsQuery @DnsQuery - if ($Query.Status -ne 0) { - if ($Query.Status -eq 3) { - $ValidationFails.Add($NoSpfValidation) | Out-Null - $Status = 'permerror' - } - else { - Write-Host $Query - $ValidationFails.Add($NoSpfValidation) | Out-Null - $Status = 'temperror' - } - } - else { - - $Answer = ($Query.answer | Where-Object { $_.data -match '^v=spf1' }) - $RecordCount = ($Answer.data | Measure-Object).count - $Record = $Answer.data - if ($RecordCount -eq 0) { - $ValidationFails.Add($NoSpfValidation) | Out-Null - $Status = 'permerror' - } - # Check for the correct number of records - elseif ($RecordCount -gt 1 -and $Level -eq 'Parent') { - $ValidationFails.Add("There must only be one SPF record per domain, we found $RecordCount.") | Out-Null - $Recommendations.Add([pscustomobject]@{ - Message = 'Delete one of the records beginning with v=spf1' - Match = '' - }) | Out-Null - $Status = 'permerror' - $Record = $Answer.data[0] - } - } - } - } - 'Manual' { - if ([string]::IsNullOrEmpty($Domain)) { $Domain = 'Not Specified' } - $RecordCount = 1 - } - } - $SpfResults.Domain = $Domain - - if ($Record -ne '' -and $RecordCount -gt 0) { - # Split records and parse - if ($Record -match '^v=spf1(:?\s+(?(?![+-~?]all).+?))?(:?\s+(?[+-~?]all)(:?\s+(?(?!all).+))?)?$') { - if ($Matches.Terms) { - $RecordTerms = $Matches.Terms -split '\s+' - } - else { - $RecordTerms = @() - } - Write-Verbose "########### RECORD: $Record" - - if ($Level -eq 'Parent' -or $Level -eq 'Redirect') { - $AllMechanism = $Matches.AllMechanism - } - - if ($null -ne $Matches.Discard) { - if ($Matches.Discard -notmatch '^exp=(?.+)$') { - $ValidationWarns.Add("The terms '$($Matches.Discard)' are past the all mechanism and will be discarded.") | Out-Null - $Recommendations.Add([pscustomobject]@{ - Message = 'Remove entries following all'; - Match = $Matches.Discard - Replace = '' - }) | Out-Null - } - } - - foreach ($Term in $RecordTerms) { - Write-Verbose "TERM $Term" - # Redirect modifier - if ($Term -match 'redirect=(?.+)') { - Write-Verbose '-----REDIRECT-----' - $LookupCount++ - if ($Record -match '(?[+-~?])all') { - $ValidationFails.Add('A record with a redirect modifier must not contain an all mechanism. This will result in a failure.') | Out-Null - $Status = 'permerror' - $Recommendations.Add([pscustomobject]@{ - Message = "Remove the 'all' mechanism from this record."; - Match = '{0}all' -f $Matches.Qualifier - Replace = '' - }) | Out-Null - } - else { - # Follow redirect modifier - $RedirectedLookup = Read-SpfRecord -Domain $Matches.Domain -Level 'Redirect' - if (($RedirectedLookup | Measure-Object).Count -eq 0) { - $ValidationFails.Add("$Domain Redirected lookup does not contain a SPF record, this will result in a failure.") | Out-Null - $Status = 'permerror' - } - else { - $RecordList.Add($RedirectedLookup) | Out-Null - $AllMechanism = $RedirectedLookup.AllMechanism - $ValidationFails.AddRange([string[]]$RedirectedLookup.ValidationFails) | Out-Null - $ValidationWarns.AddRange([string[]]$RedirectedLookup.ValidationWarns) | Out-Null - $ValidationPasses.AddRange([string[]]$RedirectedLookup.ValidationPasses) | Out-Null - $IPAddresses.AddRange([string[]]$RedirectedLookup.IPAddresses) | Out-Null - } - } - # Record has been redirected, stop evaluating terms - break - } - - # Explanation modifier - elseif ($Term -match '^exp=(?.+)$') { Write-Verbose '-----EXP-----' } - - # Include mechanism - elseif ($Term -match '^(?[+-~?])?include:(?.+)$') { - $LookupCount++ - Write-Verbose '-----INCLUDE-----' - Write-Verbose "Looking up include $($Matches.Value)" - $IncludeLookup = Read-SpfRecord -Domain $Matches.Value -Level 'Include' - - if ([string]::IsNullOrEmpty($IncludeLookup.Record) -and $Level -eq 'Parent') { - Write-Verbose '-----END INCLUDE (SPF MISSING)-----' - $ValidationFails.Add("Include lookup for $($Matches.Value) does not contain a SPF record, this will result in a failure.") | Out-Null - $Status = 'permerror' - } - else { - Write-Verbose '-----END INCLUDE (SPF FOUND)-----' - $RecordList.Add($IncludeLookup) | Out-Null - $ValidationFails.AddRange([string[]]$IncludeLookup.ValidationFails) | Out-Null - $ValidationWarns.AddRange([string[]]$IncludeLookup.ValidationWarns) | Out-Null - $ValidationPasses.AddRange([string[]]$IncludeLookup.ValidationPasses) | Out-Null - $IPAddresses.AddRange([string[]]$IncludeLookup.IPAddresses) | Out-Null - } - } - - # Exists mechanism - elseif ($Term -match '^(?[+-~?])?exists:(?.+)$') { - $LookupCount++ - } - - # ip4/ip6 mechanism - elseif ($Term -match '^(?[+-~?])?ip[4,6]:(?.+)$') { - if (-not ($Matches.Qualifier) -or $Matches.Qualifier -eq '+') { - $IPAddresses.Add($Matches.Value) | Out-Null - } - } - - # Remaining type mechanisms a,mx,ptr - elseif ($Term -match '^(?[+-~?])?(?(?:a|mx|ptr))(?:[:](?.+))?$') { - $LookupCount++ - - if ($Matches.TypeDomain) { - $TypeDomain = $Matches.TypeDomain - } - else { - $TypeDomain = $Domain - } - - if ($TypeDomain -ne 'Not Specified') { - try { - $TypeQuery = @{ Domain = $TypeDomain; RecordType = $Matches.RecordType } - Write-Verbose "Looking up $($TypeQuery.Domain)" - $TypeResult = Resolve-DnsHttpsQuery @TypeQuery - - if ($Matches.RecordType -eq 'mx') { - $MxCount = 0 - foreach ($mx in $TypeResult.Answer.data) { - $MxCount++ - $Preference, $MxDomain = $mx -replace '\.$' -split '\s+' - $MxQuery = Resolve-DnsHttpsQuery -Domain $MxDomain - $MxIps = $MxQuery.Answer.data - - foreach ($MxIp in $MxIps) { - $IPAddresses.Add($MxIp) | Out-Null - } - - if ($MxCount -gt 10) { - $ValidationWarns.Add("$Domain - Mechanism 'mx' lookup for $MxDomain has exceeded the 10 lookup limit(RFC 7208, Section 4.6.4).") | Out-Null - $TypeResult = $null - break - } - } - } - elseif ($Matches.RecordType -eq 'ptr') { - $ValidationWarns.Add("$Domain - The mechanism 'ptr' should not be published in an SPF record (RFC 7208, Section 5.5)") - } - } - catch { - $TypeResult = $null - } - - if ($null -eq $TypeResult -or $TypeResult.Status -ne 0) { - $Message = "$Domain - Type lookup for the mechanism '$($TypeQuery.RecordType)' did not return any results." - switch ($Level) { - 'Parent' { - $ValidationFails.Add("$Message") | Out-Null - $Status = 'permerror' - } - 'Include' { $ValidationWarns.Add("$Message") | Out-Null } - } - $Result = $false - } - else { - if ($TypeQuery.RecordType -eq 'mx') { - $Result = $TypeResult.Answer | ForEach-Object { - $LookupCount++ - $_.Data.Split(' ')[1] - } - } - else { - $Result = $TypeResult.answer.data - } - } - $TypeLookups.Add( - [PSCustomObject]@{ - Domain = $TypeQuery.Domain - RecordType = $TypeQuery.RecordType - Result = $Result - } - ) | Out-Null - - } - else { - $ValidationWarns.Add("No domain was specified and mechanism '$Term' does not have one defined. Specify a domain to perform a lookup on this record.") | Out-Null - } - - } - elseif ($null -ne $Term) { - $ValidationWarns.Add("$Domain - Unknown term specified '$Term'") | Out-Null - } - } - } - } - } - catch { - Write-Verbose "EXCEPTION: $($_.Exception.Message)" - } - - # Lookup MX record for expected include information if not supplied - if ($Level -eq 'Parent' -and $ExpectedInclude -eq '') { - try { - #Write-Information $Domain - $MXRecord = Read-MXRecord -Domain $Domain - $SpfResults.MailProvider = $MXRecord.MailProvider - if ($MXRecord.ExpectedInclude -ne '') { - $ExpectedInclude = $MXRecord.ExpectedInclude - } - - if ($MXRecord.MailProvider.Name -eq 'Null') { - if ($Record -eq 'v=spf1 -all') { - $ValidationPasses.Add('This SPF record is valid for a Null MX configuration') | Out-Null - } - else { - $ValidationFails.Add('This SPF record is not valid for a Null MX configuration. Expected record: "v=spf1 -all"') | Out-Null - } - } - - if ($TypeLookups.RecordType -contains 'mx') { - $Recommendations.Add([pscustomobject]@{ - Message = "Remove the 'mx' modifier from your record. Check the mail provider documentation for the correct SPF include."; - Match = '\s*([+-~?]?mx)\s+' - Replace = ' ' - }) | Out-Null - } - } - catch {} - } - - # Look for expected include record and report pass or fail - if ($ExpectedInclude -ne '') { - if ($RecordList.Domain -notcontains $ExpectedInclude) { - $ExpectedIncludeSpf = Read-SpfRecord -Domain $ExpectedInclude -Level ExpectedInclude - $ExpectedIPCount = $ExpectedIncludeSpf.IPAddresses | Measure-Object | Select-Object -ExpandProperty Count - $FoundIPCount = Compare-Object $IPAddresses $ExpectedIncludeSpf.IPAddresses -IncludeEqual | Where-Object -Property SideIndicator -EQ '==' | Measure-Object | Select-Object -ExpandProperty Count - if ($ExpectedIPCount -eq $FoundIPCount) { - $ValidationPasses.Add('The expected mail provider IP address ranges were found.') | Out-Null - } - else { - $ValidationFails.Add('The expected mail provider entry was not found in the record.') | Out-Null - $Recommendations.Add([pscustomobject]@{ - Message = ("Add 'include:{0} to your record." -f $ExpectedInclude) - Match = '^v=spf1 (.+?)([-~?+]all)?$' - Replace = "v=spf1 include:$ExpectedInclude `$1 `$2" - }) | Out-Null - } - } - else { - $ValidationPasses.Add('The expected mail provider entry is part of the record.') | Out-Null - } - } - - # Count total lookups - $LookupCount = $LookupCount + ($RecordList | Measure-Object -Property LookupCount -Sum).Sum - - if ($Domain -ne 'Not Specified') { - # Check legacy SPF type - $LegacySpfType = Resolve-DnsHttpsQuery -Domain $Domain -RecordType 'SPF' - if ($null -ne $LegacySpfType -and $LegacySpfType -eq 0) { - $ValidationWarns.Add("The record type 'SPF' was detected, this is legacy and should not be used. It is recommeded to delete this record (RFC 7208 Section 14.1).") | Out-Null - } - } - if ($Level -eq 'Parent' -and $RecordCount -gt 0) { - # Check for the correct all mechanism - if ($AllMechanism -eq '' -and $Record -ne '') { - $ValidationFails.Add("The 'all' mechanism is missing from SPF record, the default is a neutral qualifier (?all).") | Out-Null - $AllMechanism = '?all' - } - - if ($AllMechanism -eq '-all') { - $ValidationPasses.Add('The SPF record ends with a hard fail qualifier (-all). This is best practice and will instruct recipients to discard unauthorized senders.') | Out-Null - } - elseif ($Record -ne '') { - $ValidationFails.Add('The SPF record should end in -all to prevent spamming.') | Out-Null - $Recommendations.Add([PSCustomObject]@{ - Message = "Replace '{0}' with '-all' to make a SPF failure result in a hard fail." -f $AllMechanism - Match = [regex]::escape($AllMechanism) - Replace = '-all' - }) | Out-Null - } - - # SPF lookup count - if ($LookupCount -ge 9) { - $SpecificLookupsFound = $false - foreach ($SpfRecord in $RecordList) { - if ($SpfRecord.LookupCount -ge 5) { - $SpecificLookupsFound = $true - $IncludeLookupCount = $SpfRecord.LookupCount + 1 - $Match = ('[+-~?]?include:{0}' -f $SpfRecord.Domain) - $Recommendations.Add([PSCustomObject]@{ - Message = ("Remove the include modifier for domain '{0}', this adds {1} lookups towards the max of 10. Alternatively, reduce the number of lookups inside this record if you are able to." -f $SpfRecord.Domain, $IncludeLookupCount) - Match = $Match - Replace = '' - }) | Out-Null - } - } - if (!($SpecificLookupsFound)) { - $Recommendations.Add([PSCustomObject]@{ - Message = 'Review include modifiers to ensure that your lookup count stays below 10.' - Match = '' - }) | Out-Null - } - } - - if ($LookupCount -gt 10) { - $ValidationFails.Add("Lookup count: $LookupCount/10. The SPF evaluation will fail with a permanent error (RFC 7208 Section 4.6.4).") | Out-Null - $Status = 'permerror' - } - elseif ($LookupCount -ge 9 -and $LookupCount -le 10) { - $ValidationWarns.Add("Lookup count: $LookupCount/10. Excessive lookups can cause the SPF evaluation to fail (RFC 7208 Section 4.6.4).") | Out-Null - } - else { - $ValidationPasses.Add("Lookup count: $LookupCount/10.") | Out-Null - } - - # Report pass if no PermErrors are found - if ($Status -ne 'permerror') { - $ValidationPasses.Add('No permanent errors detected in the SPF record.') | Out-Null - } - - # Report pass if no errors are found - if (($ValidationFails | Measure-Object | Select-Object -ExpandProperty Count) -eq 0) { - $ValidationPasses.Add('All validation checks passed.') | Out-Null - } - } - - # Check recommendations for replacement regexes - if (($Recommendations | Measure-Object).Count -gt 0) { - $RecommendedRecord = $Record - foreach ($Rec in $Recommendations) { - if ($Rec.Match -ne '') { - # Replace item in record with recommended - $RecommendedRecord = $RecommendedRecord -replace $Rec.Match, $Rec.Replace - } - } - # Cleanup extra spaces - $RecommendedRecord = $RecommendedRecord -replace '\s+', ' ' - } - - # Set SPF result object - $SpfResults.Record = $Record - $SpfResults.RecordCount = $RecordCount - $SpfResults.LookupCount = $LookupCount - $SpfResults.AllMechanism = $AllMechanism - $SpfResults.ValidationPasses = @($ValidationPasses) - $SpfResults.ValidationWarns = @($ValidationWarns) - $SpfResults.ValidationFails = @($ValidationFails) - $SpfResults.RecordList = @($RecordList) - $SpfResults.Recommendations = @($Recommendations) - $SpfResults.RecommendedRecord = $RecommendedRecord - $SpfResults.TypeLookups = @($TypeLookups) - $SpfResults.IPAddresses = @($IPAddresses) - $SpfResults.Status = $Status - - - Write-Verbose "-----END SPF RECORD ($Level)-----" - - # Output SpfResults object - $SpfResults -} - -function Read-DmarcPolicy { - <# - .SYNOPSIS - Resolve and validate DMARC policy - - .DESCRIPTION - Query domain for DMARC policy (_dmarc.domain.com) and parse results. Record is checked for issues. - - .PARAMETER Domain - Domain to process DMARC policy - - .EXAMPLE - PS> Read-DmarcPolicy -Domain gmail.com - - Domain : gmail.com - Record : v=DMARC1; p=none; sp=quarantine; rua=mailto:mailauth-reports@google.com - Version : DMARC1 - Policy : none - SubdomainPolicy : quarantine - Percent : 100 - DkimAlignment : r - SpfAlignment : r - ReportFormat : afrf - ReportInterval : 86400 - ReportingEmails : {mailauth-reports@google.com} - ForensicEmails : {} - FailureReport : 0 - ValidationPasses : {Aggregate reports are being sent} - ValidationWarns : {Policy is not being enforced, Subdomain policy is only partially enforced with quarantine, Failure report option 0 will only generate a report on both SPF and DKIM misalignment. It is recommended to set this value to 1} - ValidationFails : {} - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain - ) - - # Initialize object - $DmarcAnalysis = [PSCustomObject]@{ - Domain = $Domain - Record = '' - Version = '' - Policy = '' - SubdomainPolicy = '' - Percent = 100 - DkimAlignment = 'r' - SpfAlignment = 'r' - ReportFormat = 'afrf' - ReportInterval = 86400 - ReportingEmails = [System.Collections.Generic.List[string]]::new() - ForensicEmails = [System.Collections.Generic.List[string]]::new() - FailureReport = '' - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - } - - # Validation lists - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationWarns = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - # Email report domains - $ReportDomains = [System.Collections.Generic.List[string]]::new() - - # Validation ranges - $PolicyValues = @('none', 'quarantine', 'reject') - $FailureReportValues = @('0', '1', 'd', 's') - $ReportFormatValues = @('afrf') - - $RecordCount = 0 - - $DnsQuery = @{ - RecordType = 'TXT' - Domain = "_dmarc.$Domain" - } - - # Resolve DMARC record - - $Query = Resolve-DnsHttpsQuery @DnsQuery - - $RecordCount = 0 - $Query.Answer | Where-Object { $_.data -match '^v=DMARC1' } | ForEach-Object { - $DmarcRecord = $_.data - $DmarcAnalysis.Record = $DmarcRecord - $RecordCount++ - } - - if ($Query.Status -ne 0 -or $RecordCount -eq 0) { - $ValidationFails.Add('This domain does not have a DMARC record.') | Out-Null - } - elseif (($Query.Answer | Measure-Object).Count -eq 1 -and $RecordCount -eq 0) { - $ValidationFails.Add("The record must begin with 'v=DMARC1'.") | Out-Null - } - elseif ($RecordCount -gt 1) { - $ValidationFails.Add('This domain has multiple records. The policy evaluation will fail.') | Out-Null - } - - # Split DMARC record into name/value pairs - $TagList = [System.Collections.Generic.List[object]]::new() - Foreach ($Element in ($DmarcRecord -split ';').trim()) { - $Name, $Value = $Element -split '=' - $TagList.Add( - [PSCustomObject]@{ - Name = $Name - Value = $Value - } - ) | Out-Null - } - - # Loop through name/value pairs and set object properties - $x = 0 - foreach ($Tag in $TagList) { - switch ($Tag.Name) { - 'v' { - # REQUIRED: Version - $DmarcAnalysis.Version = $Tag.Value - } - 'p' { - # REQUIRED: Policy - $DmarcAnalysis.Policy = $Tag.Value - } - 'sp' { - # Subdomain policy, defaults to policy record - $DmarcAnalysis.SubdomainPolicy = $Tag.Value - } - 'rua' { - # Aggregate report emails - $ReportingEmails = $Tag.Value -split ', ' - $ReportEmailsSet = $false - foreach ($MailTo in $ReportingEmails) { - if ($MailTo -notmatch '^mailto:') { $ValidationFails.Add("Aggregate report email addresses must begin with 'mailto:', multiple addresses must be separated by commas.") | Out-Null } - else { - $ReportEmailsSet = $true - if ($MailTo -match '^mailto:(?.+@(?[^!]+?))(?:!(?[0-9]+[kmgt]?))?$') { - if ($ReportDomains -notcontains $Matches.Domain -and $Matches.Domain -ne $Domain) { - $ReportDomains.Add($Matches.Domain) | Out-Null - } - $DmarcAnalysis.ReportingEmails.Add($Matches.Email) | Out-Null - } - } - } - if ($ReportEmailsSet) { - $ValidationPasses.Add('Aggregate reports are being sent.') | Out-Null - } - else { - $ValidationWarns.Add('Aggregate reports are not being sent.') | Out-Null - } - } - 'ruf' { - # Forensic reporting emails - foreach ($MailTo in ($Tag.Value -split ', ')) { - if ($MailTo -notmatch '^mailto:') { $ValidationFails.Add("Forensic report email must begin with 'mailto:', multiple addresses must be separated by commas - found $($Tag.Value)") | Out-Null } - else { - if ($MailTo -match '^mailto:(?.+@(?[^!]+?))(?:!(?[0-9]+[kmgt]?))?$') { - if ($ReportDomains -notcontains $Matches.Domain -and $Matches.Domain -ne $Domain) { - $ReportDomains.Add($Matches.Domain) | Out-Null - } - $DmarcAnalysis.ForensicEmails.Add($Matches.Email) | Out-Null - } - } - } - } - 'fo' { - # Failure reporting options - $DmarcAnalysis.FailureReport = $Tag.Value - } - 'pct' { - # Percentage of email to check - $DmarcAnalysis.Percent = [int]$Tag.Value - } - 'adkim' { - # DKIM Alignmenet - $DmarcAnalysis.DkimAlignment = $Tag.Value - } - 'aspf' { - # SPF Alignment - $DmarcAnalysis.SpfAlignment = $Tag.Value - } - 'rf' { - # Report Format - $DmarcAnalysis.ReportFormat = $Tag.Value - } - 'ri' { - # Report Interval - $DmarcAnalysis.ReportInterval = $Tag.Value - } - } - $x++ - } - - if ($RecordCount -gt 0) { - # Check report domains for DMARC reporting record - $ReportDomainCount = $ReportDomains | Measure-Object | Select-Object -ExpandProperty Count - if ($ReportDomainCount -gt 0) { - $ReportDomainsPass = $true - foreach ($ReportDomain in $ReportDomains) { - $ReportDomainQuery = "$Domain._report._dmarc.$ReportDomain" - $DnsQuery['Domain'] = $ReportDomainQuery - $ReportDmarcQuery = Resolve-DnsHttpsQuery @DnsQuery - $ReportDmarcRecord = $ReportDmarcQuery.Answer.data - if ($null -eq $ReportDmarcQuery -or $ReportDmarcQuery.Status -ne 0) { - $ValidationWarns.Add("Report DMARC policy for $Domain is missing from $ReportDomain, reports will not be delivered. Expected record: '$Domain._report._dmarc.$ReportDomain' - Expected value: 'v=DMARC1;'") | Out-Null - $ReportDomainsPass = $false - } - elseif ($ReportDmarcRecord -notmatch '^v=DMARC1') { - $ValidationWarns.Add("Report DMARC policy for $Domain is missing from $ReportDomain, reports will not be delivered. Expected record: '$Domain._report._dmarc.$ReportDomain' - Expected value: 'v=DMARC1;'.") | Out-Null - $ReportDomainsPass = $false - } - } - - if ($ReportDomainsPass) { - $ValidationPasses.Add('All external reporting domains allow this domain to send DMARC reports.') | Out-Null - } - - } - # Check for missing record tags and set defaults - if ($DmarcAnalysis.Policy -eq '') { $ValidationFails.Add('The policy tag (p=) is missing from this record. Set this to none, quarantine or reject.') | Out-Null } - if ($DmarcAnalysis.SubdomainPolicy -eq '') { $DmarcAnalysis.SubdomainPolicy = $DmarcAnalysis.Policy } - - # Check policy for errors and best practice - if ($PolicyValues -notcontains $DmarcAnalysis.Policy) { $ValidationFails.Add("The policy must be one of the following: none, quarantine or reject. Found $($Tag.Value)") | Out-Null } - if ($DmarcAnalysis.Policy -eq 'reject') { $ValidationPasses.Add('The domain policy is set to reject, this is best practice.') | Out-Null } - if ($DmarcAnalysis.Policy -eq 'quarantine') { $ValidationWarns.Add('The domain policy is only partially enforced with quarantine.') | Out-Null } - if ($DmarcAnalysis.Policy -eq 'none') { $ValidationFails.Add('The domain policy is not being enforced.') | Out-Null } - - # Check subdomain policy - if ($PolicyValues -notcontains $DmarcAnalysis.SubdomainPolicy) { $ValidationFails.Add("The subdomain policy must be one of the following: none, quarantine or reject. Found $($DmarcAnalysis.SubdomainPolicy)") | Out-Null } - if ($DmarcAnalysis.SubdomainPolicy -eq 'reject') { $ValidationPasses.Add('The subdomain policy is set to reject, this is best practice.') | Out-Null } - if ($DmarcAnalysis.SubdomainPolicy -eq 'quarantine') { $ValidationWarns.Add('The subdomain policy is only partially enforced with quarantine.') | Out-Null } - if ($DmarcAnalysis.SubdomainPolicy -eq 'none') { $ValidationFails.Add('The subdomain policy is not being enforced.') | Out-Null } - - # Check percentage - validate range and ensure 100% - if ($DmarcAnalysis.Percent -lt 100 -and $DmarcAnalysis.Percent -ge 0) { $ValidationWarns.Add('Not all emails will be processed by the DMARC policy.') | Out-Null } - if ($DmarcAnalysis.Percent -gt 100 -or $DmarcAnalysis.Percent -lt 0) { $ValidationFails.Add('The percentage tag (pct=) must be between 0 and 100.') | Out-Null } - - # Check report format - if ($ReportFormatValues -notcontains $DmarcAnalysis.ReportFormat) { $ValidationFails.Add("The report format '$($DmarcAnalysis.ReportFormat)' is not supported.") | Out-Null } - - # Check forensic reports and failure options - $ForensicCount = ($DmarcAnalysis.ForensicEmails | Measure-Object | Select-Object -ExpandProperty Count) - if ($ForensicCount -eq 0 -and $DmarcAnalysis.FailureReport -ne '') { $ValidationWarns.Add('Forensic email reports recipients are not defined and failure report options are set. No reports will be sent. This is not an issue unless you are expecting forensic reports.') | Out-Null } - if ($DmarcAnalysis.FailureReport -eq '' -and $null -ne $DmarcRecord) { $DmarcAnalysis.FailureReport = '0' } - if ($ForensicCount -gt 0) { - if ($FailureReportValues -notcontains $DmarcAnalysis.FailureReport) { $ValidationFails.Add('Failure reporting options must be 0, 1, d or s.') | Out-Null } - if ($DmarcAnalysis.FailureReport -eq '1') { $ValidationPasses.Add('Failure report option 1 generates forensic reports on SPF or DKIM misalignment.') | Out-Null } - if ($DmarcAnalysis.FailureReport -eq '0') { $ValidationWarns.Add('Failure report option 0 will only generate a forensic report on both SPF and DKIM misalignment. It is recommended to set this value to 1.') | Out-Null } - if ($DmarcAnalysis.FailureReport -eq 'd') { $ValidationWarns.Add('Failure report option d will only generate a forensic report on failed DKIM evaluation. It is recommended to set this value to 1.') | Out-Null } - if ($DmarcAnalysis.FailureReport -eq 's') { $ValidationWarns.Add('Failure report option s will only generate a forensic report on failed SPF evaluation. It is recommended to set this value to 1.') | Out-Null } - } - } - - # Add the validation lists - $DmarcAnalysis.ValidationPasses = @($ValidationPasses) - $DmarcAnalysis.ValidationWarns = @($ValidationWarns) - $DmarcAnalysis.ValidationFails = @($ValidationFails) - - # Return DMARC analysis - $DmarcAnalysis -} - -function Read-DkimRecord { - <# - .SYNOPSIS - Read DKIM record from DNS - - .DESCRIPTION - Validates DKIM records on a domain a selector - - .PARAMETER Domain - Domain to check - - .PARAMETER Selectors - Selector records to check - - .PARAMETER MxLookup - Lookup record based on MX - - .EXAMPLE - PS> Read-DkimRecord -Domain example.com -Selector test - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain, - - [Parameter()] - [System.Collections.Generic.List[string]]$Selectors = @() - ) - - $MXRecord = $null - $MinimumSelectorPass = 0 - $SelectorPasses = 0 - - $DkimAnalysis = [PSCustomObject]@{ - Domain = $Domain - Selectors = $Selectors - MailProvider = '' - Records = [System.Collections.Generic.List[object]]::new() - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - } - - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationWarns = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - if (($Selectors | Measure-Object | Select-Object -ExpandProperty Count) -eq 0) { - # MX lookup, check for defined selectors - try { - $MXRecord = Read-MXRecord -Domain $Domain - foreach ($Selector in $MXRecord.Selectors) { - $Selectors.Add($Selector) | Out-Null - } - $DkimAnalysis.MailProvider = $MXRecord.MailProvider - if ($MXRecord.MailProvider.PSObject.Properties.Name -contains 'MinimumSelectorPass') { - $MinimumSelectorPass = $MXRecord.MailProvider.MinimumSelectorPass - } - $DkimAnalysis.Selectors = $Selectors - } - catch {} - - # Explicitly defined DKIM selectors - if (Test-Path 'Config\DkimSelectors') { - try { - Get-ChildItem 'Config\DkimSelectors' -Filter "$($Domain).json" -ErrorAction Stop | ForEach-Object { - try { - $CustomSelectors = Get-Content $_ | ConvertFrom-Json - foreach ($Selector in $CustomSelectors) { - $Selectors.Add($Selector) | Out-Null - } - } - catch {} - } - } - catch {} - } - } - - if (($Selectors | Measure-Object | Select-Object -ExpandProperty Count) -gt 0) { - foreach ($Selector in $Selectors) { - # Initialize object - $DkimRecord = [PSCustomObject]@{ - Selector = '' - Record = '' - Version = '' - PublicKey = '' - PublicKeyInfo = '' - KeyType = '' - Flags = '' - Notes = '' - HashAlgorithms = '' - ServiceType = '' - Granularity = '' - UnrecognizedTags = [System.Collections.Generic.List[object]]::new() - } - - $DnsQuery = @{ - RecordType = 'TXT' - Domain = "$Selector._domainkey.$Domain" - } - - $QueryResults = Resolve-DnsHttpsQuery @DnsQuery - - if ([string]::IsNullOrEmpty($Selector)) { continue } - - if ($QueryResults -eq '' -or $QueryResults.Status -ne 0) { - if ($QueryResults.Status -eq 3) { - if ($MinimumSelectorPass -eq 0) { - $ValidationFails.Add("$Selector - The selector record does not exist for this domain.") | Out-Null - } - } - else { - $ValidationFails.Add("$Selector - DKIM record is missing, check the selector and try again") | Out-Null - } - $Record = '' - } - else { - $QueryData = ($QueryResults.Answer).data | Where-Object { $_ -match '(v=|k=|t=|p=)' } - if (( $QueryData | Measure-Object).Count -gt 1) { - $Record = $QueryData[-1] - } - else { - $Record = $QueryData - } - } - $DkimRecord.Selector = $Selector - - if ($null -eq $Record) { $Record = '' } - $DkimRecord.Record = $Record - - # Split DKIM record into name/value pairs - $TagList = [System.Collections.Generic.List[object]]::new() - Foreach ($Element in ($Record -split ';')) { - if ($Element -ne '') { - $Name, $Value = $Element.trim() -split '=' - $TagList.Add( - [PSCustomObject]@{ - Name = $Name - Value = $Value - } - ) | Out-Null - } - } - - # Loop through name/value pairs and set object properties - $x = 0 - foreach ($Tag in $TagList) { - if ($x -eq 0 -and $Tag.Value -ne 'DKIM1') { $ValidationFails.Add("$Selector - The record must being with 'v=DKIM1'.") | Out-Null } - - switch ($Tag.Name) { - 'v' { - # REQUIRED: Version - if ($x -ne 0) { $ValidationFails.Add("$Selector - The record must being with 'v=DKIM1'.") | Out-Null } - $DkimRecord.Version = $Tag.Value - } - 'p' { - # REQUIRED: Public Key - if ($Tag.Value -ne '') { - $DkimRecord.PublicKey = "-----BEGIN PUBLIC KEY-----`n {0}`n-----END PUBLIC KEY-----" -f $Tag.Value - $DkimRecord.PublicKeyInfo = Get-RsaPublicKeyInfo -EncodedString $Tag.Value - } - else { - if ($MXRecord.MailProvider.Name -eq 'Null') { - $ValidationPasses.Add("$Selector - DKIM configuration is valid for a Null MX record configuration.") | Out-Null - } - else { - $ValidationFails.Add("$Selector - There is no public key specified for this DKIM record or the key is revoked.") | Out-Null - } - } - } - 'k' { - $DkimRecord.KeyType = $Tag.Value - } - 't' { - $DkimRecord.Flags = $Tag.Value - } - 'n' { - $DkimRecord.Notes = $Tag.Value - } - 'h' { - $DkimRecord.HashAlgorithms = $Tag.Value - } - 's' { - $DkimRecord.ServiceType = $Tag.Value - } - 'g' { - $DkimRecord.Granularity = $Tag.Value - } - default { - $DkimRecord.UnrecognizedTags.Add($Tag) | Out-Null - } - } - $x++ - } - - if ($Record -ne '') { - if ($DkimRecord.KeyType -eq '') { $DkimRecord.KeyType = 'rsa' } - - if ($DkimRecord.HashAlgorithms -eq '') { $DkimRecord.HashAlgorithms = 'all' } - - $UnrecognizedTagCount = $UnrecognizedTags | Measure-Object | Select-Object -ExpandProperty Count - if ($UnrecognizedTagCount -gt 0) { - $TagString = ($UnrecognizedTags | ForEach-Object { '{0}={1}' -f $_.Tag, $_.Value }) -join ', ' - $ValidationWarns.Add("$Selector - $UnrecognizedTagCount urecognized tag(s) were detected in the DKIM record. This can cause issues with some mailbox providers. Tags: $TagString") - } - if ($DkimRecord.Flags -eq 'y') { - $ValidationWarns.Add("$Selector - The flag 't=y' indicates that this domain is testing mode currently. If DKIM is fully deployed, this flag should be changed to t=s unless subdomaining is required.") | Out-Null - } - - if ($DkimRecord.PublicKeyInfo.SignatureAlgorithm -ne $DkimRecord.KeyType -and $MXRecord.MailProvider.Name -ne 'Null') { - $ValidationWarns.Add("$Selector - Key signature algorithm $($DkimRecord.PublicKeyInfo.SignatureAlgorithm) does not match $($DkimRecord.KeyType)") | Out-Null - } - - if ($DkimRecord.PublicKeyInfo.KeySize -lt 1024 -and $MXRecord.MailProvider.Name -ne 'Null') { - $ValidationFails.Add("$Selector - Key size is less than 1024 bit, found $($DkimRecord.PublicKeyInfo.KeySize).") | Out-Null - } - else { - if ($MXRecord.MailProvider.Name -ne 'Null') { - $ValidationPasses.Add("$Selector - DKIM key validation succeeded.") | Out-Null - } - $SelectorPasses++ - } - - if (($ValidationFails | Measure-Object | Select-Object -ExpandProperty Count) -eq 0) { - $ValidationPasses.Add("$Selector - No errors detected with DKIM record.") | Out-Null - } - } - ($DkimAnalysis.Records).Add($DkimRecord) | Out-Null - } - } - if (($DkimAnalysis.Records | Measure-Object | Select-Object -ExpandProperty Count) -eq 0 -and [string]::IsNullOrEmpty($DkimAnalysis.Selectors)) { - $ValidationWarns.Add('No DKIM selectors provided, set them in the domain options.') | Out-Null - } - - if ($MinimumSelectorPass -gt 0 -and $SelectorPasses -eq 0) { - $ValidationFails.Add(('{0} DKIM record(s) found. The minimum number of valid records ({1}) was not met.' -f $SelectorPasses, $MinimumSelectorPass)) | Out-Null - } - elseif ($MinimumSelectorPass -gt 0 -and $SelectorPasses -ge $MinimumSelectorPass) { - $ValidationPasses.Add(('Minimum number of valid DKIM records were met {0}/{1}.' -f $SelectorPasses, $MinimumSelectorPass)) - } - - # Collect validation results - $DkimAnalysis.ValidationPasses = @($ValidationPasses) - $DkimAnalysis.ValidationWarns = @($ValidationWarns) - $DkimAnalysis.ValidationFails = @($ValidationFails) - - # Return analysis - $DkimAnalysis -} - -function Read-WhoisRecord { - <# - .SYNOPSIS - Reads Whois record data for queried information - - .DESCRIPTION - Connects to top level registrar servers (IANA, ARIN) and performs recursion to find Whois data - - .PARAMETER Query - Whois query to perform (e.g. microsoft.com) - - .PARAMETER Server - Whois server to query, defaults to whois.iana.org - - .PARAMETER Port - Whois server port, default 43 - - .EXAMPLE - PS> Read-WhoisRecord -Query microsoft.com - - #> - [CmdletBinding()] - param ( - [Parameter (Position = 0, Mandatory = $true)] - [String]$Query, - [String]$Server = 'whois.iana.org', - $Port = 43 - ) - $HasReferral = $false - - # Top level referring servers, IANA and ARIN - $TopLevelReferrers = @('whois.iana.org', 'whois.arin.net') - - # Record Pattern Matching - $ServerPortRegex = '(?[^:\r\n]+)(:(?\d+))?' - $ReferralMatch = @{ - 'ReferralServer' = "whois://$ServerPortRegex" - 'Whois Server' = $ServerPortRegex - 'Registrar Whois Server' = $ServerPortRegex - 'refer' = $ServerPortRegex - 'remarks' = '(?whois\.[0-9a-z\-\.]+\.[a-z]{2,})(:(?\d+))?' - } - - # List of properties for Registrars - $RegistrarProps = @( - 'Registrar' - ) - - # Whois parser, generic Property: Value format with some multi-line support and comment handlers - $WhoisRegex = '^(?!(?:%|>>>|-+|#|[*]))[^\S\n]*(?.+?):(?:[\r\n]+)?(:?(?!([0-9]|[/]{2}))[^\S\r\n]*(?.+))?$' - - # TCP Client for Whois - $Client = New-Object System.Net.Sockets.TcpClient($Server, 43) - try { - # Open TCP connection and send query - $Stream = $Client.GetStream() - $ReferralServers = [System.Collections.Generic.List[string]]::new() - $ReferralServers.Add($Server) | Out-Null - - # WHOIS query to send - $Data = [System.Text.Encoding]::Ascii.GetBytes("$Query`r`n") - $Stream.Write($Data, 0, $data.length) - - # Read response from stream - $Reader = New-Object System.IO.StreamReader $Stream, [System.Text.Encoding]::ASCII - $Raw = $Reader.ReadToEnd() - - # Split comments and parse raw whois results - $data, $comment = $Raw -split '(>>>|\n\s+--)' - $PropMatches = [regex]::Matches($data, $WhoisRegex, ([System.Text.RegularExpressions.RegexOptions]::MultiLine, [System.Text.RegularExpressions.RegexOptions]::IgnoreCase)) - - # Hold property count in hashtable for auto increment - $PropertyCounts = @{} - - # Create ordered list for properties - $Results = [ordered]@{} - foreach ($PropMatch in $PropMatches) { - $PropName = $PropMatch.Groups['PropName'].value - if ($Results.Contains($PropName)) { - $PropertyCounts.$PropName++ - $PropName = '{0}{1}' -f $PropName, $PropertyCounts.$PropName - $Results[$PropName] = $PropMatch.Groups['PropValue'].value.trim() - } - else { - $Results[$PropName] = $PropMatch.Groups['PropValue'].value.trim() - $PropertyCounts.$PropName = 0 - } - } - - foreach ($RegistrarProp in $RegistrarProps) { - if ($Results.Contains($RegistrarProp)) { - $Results._Registrar = $Results.$RegistrarProp - break - } - } - - # Store raw results and query metadata - $Results._Raw = $Raw - $Results._ReferralServers = [System.Collections.Generic.List[string]]::new() - $Results._Query = $Query - $LastResult = $Results - - # Loop through keys looking for referral server match - foreach ($Key in $ReferralMatch.Keys) { - if ([bool]($Results.Keys -match $Key)) { - if ($Results.$Key -match $ReferralMatch.$Key) { - $ReferralServer = $Matches.refsvr - if ($Server -ne $ReferralServer) { - if ($Matches.port) { $Port = $Matches.port } - else { $Port = 43 } - $HasReferral = $true - break - } - } - } - } - - # Recurse through referrals - if ($HasReferral) { - if ($Server -ne $ReferralServer) { - $LastResult = $Results - $Results = Read-WhoisRecord -Query $Query -Server $ReferralServer -Port $Port - if ($Results._Raw -Match '(No match|Not Found|No Data|The queried object does not exist)' -and $TopLevelReferrers -notcontains $Server) { - $Results = $LastResult - } - else { - foreach ($s in $Results._ReferralServers) { - $ReferralServers.Add($s) | Out-Null - } - } - - } - } - else { - if ($Results._Raw -Match '(No match|Not Found|No Data)') { - $first, $newquery = ($Query -split '\.') - if (($newquery | Measure-Object).Count -gt 1) { - $Query = $newquery -join '.' - $Results = Read-WhoisRecord -Query $Query -Server $Server -Port $Port - foreach ($s in $Results._ReferralServers) { - $ReferralServers.Add($s) | Out-Null - } - } - } - } - } - catch { - Write-Error $_.Exception.Message - } - finally { - IF ($Stream) { - $Stream.Close() - $Stream.Dispose() - } - } - - # Collect referral server list - $Results._ReferralServers = $ReferralServers - - # Convert to json and back to preserve object order - $WhoisResults = $Results | ConvertTo-Json | ConvertFrom-Json - - # Return Whois results as PSObject - $WhoisResults -} - -function Get-RsaPublicKeyInfo { - <# - .SYNOPSIS - Gets RSA public key info from Base64 string - - .DESCRIPTION - Decodes RSA public key information for validation. Uses a c# library to decode base64 data. - - .PARAMETER EncodedString - Base64 encoded public key string - - .EXAMPLE - PS> Get-RsaPublicKeyInfo -EncodedString - - LegalKeySizes KeyExchangeAlgorithm SignatureAlgorithm KeySize - ------------- -------------------- ------------------ ------- - {System.Security.Cryptography.KeySizes} RSA RSA 2048 - - .NOTES - Obtained C# code from https://github.com/sevenTiny/Bamboo/blob/b5503b5597383ca6085ceb4aa5fa054918a4bd73/10-Code/SevenTiny.Bantina/Security/RSACommon.cs - #> - Param( - [Parameter(Mandatory = $true)] - $EncodedString - ) - $source = @' -/********************************************************* - * CopyRight: 7TINY CODE BUILDER. - * Version: 5.0.0 - * Author: 7tiny - * Address: Earth - * Create: 2018-04-08 21:54:19 - * Modify: 2018-04-08 21:54:19 - * E-mail: dong@7tiny.com | sevenTiny@foxmail.com - * GitHub: https://github.com/sevenTiny - * Personal web site: http://www.7tiny.com - * Technical WebSit: http://www.cnblogs.com/7tiny/ - * Description: - * Thx , Best Regards ~ - *********************************************************/ -using System; -using System.IO; -using System.Security.Cryptography; -using System.Text; - -namespace SevenTiny.Bantina.Security { - public static class RSACommon { - public static RSA CreateRsaProviderFromPublicKey(string publicKeyString) - { - // encoded OID sequence for PKCS #1 rsaEncryption szOID_RSA_RSA = "1.2.840.113549.1.1.1" - byte[] seqOid = { 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00 }; - byte[] seq = new byte[15]; - - var x509Key = Convert.FromBase64String(publicKeyString); - - // --------- Set up stream to read the asn.1 encoded SubjectPublicKeyInfo blob ------ - using (MemoryStream mem = new MemoryStream(x509Key)) - { - using (BinaryReader binr = new BinaryReader(mem)) //wrap Memory Stream with BinaryReader for easy reading - { - byte bt = 0; - ushort twobytes = 0; - - twobytes = binr.ReadUInt16(); - if (twobytes == 0x8130) //data read as little endian order (actual data order for Sequence is 30 81) - binr.ReadByte(); //advance 1 byte - else if (twobytes == 0x8230) - binr.ReadInt16(); //advance 2 bytes - else - return null; - - seq = binr.ReadBytes(15); //read the Sequence OID - if (!CompareBytearrays(seq, seqOid)) //make sure Sequence for OID is correct - return null; - - twobytes = binr.ReadUInt16(); - if (twobytes == 0x8103) //data read as little endian order (actual data order for Bit String is 03 81) - binr.ReadByte(); //advance 1 byte - else if (twobytes == 0x8203) - binr.ReadInt16(); //advance 2 bytes - else - return null; - - bt = binr.ReadByte(); - if (bt != 0x00) //expect null byte next - return null; - - twobytes = binr.ReadUInt16(); - if (twobytes == 0x8130) //data read as little endian order (actual data order for Sequence is 30 81) - binr.ReadByte(); //advance 1 byte - else if (twobytes == 0x8230) - binr.ReadInt16(); //advance 2 bytes - else - return null; - - twobytes = binr.ReadUInt16(); - byte lowbyte = 0x00; - byte highbyte = 0x00; - - if (twobytes == 0x8102) //data read as little endian order (actual data order for Integer is 02 81) - lowbyte = binr.ReadByte(); // read next bytes which is bytes in modulus - else if (twobytes == 0x8202) - { - highbyte = binr.ReadByte(); //advance 2 bytes - lowbyte = binr.ReadByte(); - } - else - return null; - byte[] modint = { lowbyte, highbyte, 0x00, 0x00 }; //reverse byte order since asn.1 key uses big endian order - int modsize = BitConverter.ToInt32(modint, 0); - - int firstbyte = binr.PeekChar(); - if (firstbyte == 0x00) - { //if first byte (highest order) of modulus is zero, don't include it - binr.ReadByte(); //skip this null byte - modsize -= 1; //reduce modulus buffer size by 1 - } - - byte[] modulus = binr.ReadBytes(modsize); //read the modulus bytes - - if (binr.ReadByte() != 0x02) //expect an Integer for the exponent data - return null; - int expbytes = (int)binr.ReadByte(); // should only need one byte for actual exponent data (for all useful values) - byte[] exponent = binr.ReadBytes(expbytes); - - // ------- create RSACryptoServiceProvider instance and initialize with public key ----- - var rsa = System.Security.Cryptography.RSA.Create(); - RSAParameters rsaKeyInfo = new RSAParameters - { - Modulus = modulus, - Exponent = exponent - }; - rsa.ImportParameters(rsaKeyInfo); - - return rsa; - } - } - } - private static bool CompareBytearrays(byte[] a, byte[] b) - { - if (a.Length != b.Length) - return false; - int i = 0; - foreach (byte c in a) - { - if (c != b[i]) - return false; - i++; - } - return true; - } - } -} -'@ - if (!('SevenTiny.Bantina.Security.RSACommon' -as [type])) { - Add-Type -TypeDefinition $source -Language CSharp - } - - # Return RSA Public Key information - [SevenTiny.Bantina.Security.RSACommon]::CreateRsaProviderFromPublicKey($EncodedString) -} - -function Test-HttpsCertificate { - <# - .SYNOPSIS - Test HTTPS certificate for Domain - - .DESCRIPTION - This function aggregates test results for a domain and subdomains in regards to - HTTPS certificates - - .PARAMETER Domain - Domain to check - - .PARAMETER Subdomains - List of subdomains - - .EXAMPLE - PS> Test-HttpsCertificate -Domain badssl.com -Subdomains expired, revoked - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain, - [string[]]$Subdomains = @() - ) - - $CertificateTests = [PSCustomObject]@{ - Domain = $Domain - UrlsToTest = [System.Collections.Generic.List[string]]::new() - Tests = [System.Collections.Generic.List[object]]::new() - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - } - - $Urls = [System.Collections.Generic.List[string]]::new() - $Urls.Add(('https://{0}' -f $Domain)) | Out-Null - - if (($Subdomains | Measure-Object).Count -gt 0) { - foreach ($Subdomain in $Subdomains) { - $Urls.Add(('https://{0}.{1}' -f $Subdomain, $Domain)) | Out-Null - } - } - - $CertificateTests.UrlsToTest = $Urls - - $CertificateTests.Tests = foreach ($Url in $Urls) { - $Test = [PSCustomObject]@{ - Hostname = '' - Certificate = '' - Chain = '' - HttpResponse = '' - ValidityDays = 0 - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - Errors = [System.Collections.Generic.List[string]]::new() - } - try { - # Parse URL and extract hostname - $ParsedUrl = [System.Uri]::new($Url) - $Hostname = $ParsedUrl.Host - - # Valdiations - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationWarns = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - # Grab certificate data - $Validation = Get-ServerCertificateValidation -Url $Url - $Certificate = $Validation.Certificate | Select-Object FriendlyName, IssuerName, NotBefore, NotAfter, SerialNumber, SignatureAlgorithm, SubjectName, Thumbprint, Issuer, Subject, DnsNameList - $HttpResponse = $Validation.HttpResponse - $Chain = $Validation.Chain - - $CurrentDate = Get-Date - $TimeSpan = New-TimeSpan -Start $CurrentDate -End $Certificate.NotAfter - - # Check to see if certificate is contained in the DNS name list - if ($Certificate.DnsNameList -contains $Hostname -or $Certificate.DnsNameList -eq "*.$Domain") { - $ValidationPasses.Add(('{0} - Certificate DNS name list contains hostname.' -f $Hostname)) | Out-Null - } - else { - $ValidationFails.Add(('{0} - Certificate DNS name list does not contain hostname' -f $Hostname)) | Out-Null - } - - # Check certificate validity - if ($Certificate.NotBefore -ge $CurrentDate) { - # NotBefore is in the future - $ValidationFails.Add(('{0} - Certificate is not yet valid.' -f $Hostname)) | Out-Null - } - elseif ($Certificate.NotAfter -le $CurrentDate) { - # NotAfter is in the past - $ValidationFails.Add(('{0} - Certificate expired {1} day(s) ago.' -f $Hostname, [Math]::Abs($TimeSpan.Days))) | Out-Null - } - elseif ($Certificate.NotAfter -ge $CurrentDate -and $TimeSpan.Days -lt 30) { - # NotAfter is under 30 days away - $ValidationWarns.Add(('{0} - Certificate will expire in {1} day(s).' -f $Hostname, $TimeSpan.Days)) | Out-Null - } - else { - # Certificate is valid and not expired - $ValidationPasses.Add(('{0} - Certificate is valid for the next {1} days.' -f $Hostname, $TimeSpan.Days)) | Out-Null - } - - # Certificate chain errors - if (($Chain.ChainStatus | Measure-Object).Count -gt 0) { - foreach ($Status in $Chain.ChainStatus) { - $ValidationFails.Add(('{0} - {1}' -f $Hostname, $Status.StatusInformation)) | Out-Null - } - } - - # Website status errorr - if ([int]$HttpResponse.StatusCode -ge 400) { - $ValidationFails.Add(('{0} - Website responded with: {1}' -f $Hostname, $HttpResponse.ReasonPhrase)) - } - - # Set values and return Test object - $Test.Hostname = $Hostname - $Test.Certificate = $Certificate - $Test.Chain = $Chain - $Test.HttpResponse = $HttpResponse - $Test.ValidityDays = $TimeSpan.Days - - $Test.ValidationPasses = @($ValidationPasses) - $Test.ValidationWarns = @($ValidationWarns) - $Test.ValidationFails = @($ValidationFails) - - # Return test - $Test - } - catch {} - } - - # Aggregate validation results - foreach ($Test in $CertificateTests.Tests) { - $ValidationPassCount = ($Test.ValidationPasses | Measure-Object).Count - $ValidationWarnCount = ($Test.ValidationWarns | Measure-Object).Count - $ValidationFailCount = ($Test.ValidationFails | Measure-Object).Count - - if ($ValidationFailCount -gt 0) { - $CertificateTests.ValidationFails.Add(('{0} - Failure on {1} check(s)' -f $Test.Hostname, $ValidationFailCount)) | Out-Null - } - - if ($ValidationWarnCount -gt 0) { - $CertificateTests.ValidationWarns.Add(('{0} - Warning on {1} check(s)' -f $Test.Hostname, $ValidationWarnCount)) | Out-Null - } - - if ($ValidationPassCount -gt 0) { - $CertificateTests.ValidationPasses.Add(('{0} - Pass on {1} check(s)' -f $Test.Hostname, $ValidationPassCount)) | Out-Null - } - } - - # Return tests - $CertificateTests -} - - -function Get-ServerCertificateValidation { - <# - .SYNOPSIS - Get HTTPS certificate and chain information for Url - - .DESCRIPTION - Obtains certificate data from .Net HttpClient and builds certificate chain to - verify validity and revocation status - - .PARAMETER Url - Url to check - - .PARAMETER FollowRedirect - Follow HTTP redirects - - .EXAMPLE - PS> Get-ServerCertificateValidation -Url https://expired.badssl.com - - #> - Param( - [Parameter(Mandatory = $true)] - $Url, - [switch]$FollowRedirect - ) - $source = @' -using System; -using System.Net.Http; -using System.Net.Security; -using System.Security.Cryptography.X509Certificates; -using System.Threading.Tasks; - -namespace CyberDrain.CIPP { - - public class CertValidation { - public HttpResponseMessage HttpResponse; - public X509Certificate2 Certificate; - public X509Chain Chain; - public SslPolicyErrors SslErrors; - } - - public static class CertificateCheck { - public static CertValidation GetServerCertificate(string url, bool allowredirect=false) - { - CertValidation certvalidation = new CertValidation(); - var httpClientHandler = new HttpClientHandler - { - AllowAutoRedirect = allowredirect, - ServerCertificateCustomValidationCallback = (requestMessage, cert, chain, sslErrors) => - { - X509Chain ch = new X509Chain(); - ch.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain; - ch.ChainPolicy.RevocationMode = X509RevocationMode.Online; - ch.ChainPolicy.VerificationFlags = X509VerificationFlags.AllFlags; - //ch.ChainPolicy.DisableCertificateDownloads = true; - certvalidation.Certificate = new X509Certificate2(cert.GetRawCertData()); - ch.Build(cert); - certvalidation.Chain = ch; - certvalidation.SslErrors = sslErrors; - return true; - } - }; - - var httpClient = new HttpClient(httpClientHandler); - HttpResponseMessage HttpResponse = Task.Run(async() => await httpClient.SendAsync(new HttpRequestMessage(HttpMethod.Get, url))).Result; - certvalidation.HttpResponse = HttpResponse; - return certvalidation; - } - } -} -'@ - if (!('CyberDrain.CIPP.CertificateCheck' -as [type])) { - Add-Type -TypeDefinition $source -Language CSharp - } - - [CyberDrain.CIPP.CertificateCheck]::GetServerCertificate($Url, $FollowRedirect) -} - -function Test-MtaSts { - <# - .SYNOPSIS - Perform MTA-STS and TLSRPT checks - - .DESCRIPTION - Retrieve MTA-STS record, policy and TLSRPT record - - .PARAMETER Domain - Domain to process - - .EXAMPLE - PS> Test-MtaSts -Domain gmail.com - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain - ) - - # MTA-STS test object - $MtaSts = [PSCustomObject]@{ - Domain = $Domain - StsRecord = (Read-MtaStsRecord -Domain $Domain) - StsPolicy = (Read-MtaStsPolicy -Domain $Domain) - TlsRptRecord = (Read-TlsRptRecord -Domain $Domain) - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - } - - # Validation lists - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationWarns = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - # Check results for each test - if ($MtaSts.StsRecord.IsValid) { $ValidationPasses.Add('MTA-STS Record is valid') | Out-Null } - else { $ValidationFails.Add('MTA-STS Record is not valid') | Out-Null } - if ($MtaSts.StsRecord.HasWarnings) { $ValidationWarns.Add('MTA-STS Record has warnings') | Out-Null } - - if ($MtaSts.StsPolicy.IsValid) { $ValidationPasses.Add('MTA-STS Policy is valid') | Out-Null } - else { $ValidationFails.Add('MTA-STS Policy is not valid') | Out-Null } - if ($MtaSts.StsPolicy.HasWarnings) { $ValidationWarns.Add('MTA-STS Policy has warnings') | Out-Null } - - if ($MtaSts.TlsRptRecord.IsValid) { $ValidationPasses.Add('TLSRPT Record is valid') | Out-Null } - else { $ValidationFails.Add('TLSRPT Record is not valid') | Out-Null } - if ($MtaSts.TlsRptRecord.HasWarnings) { $ValidationWarns.Add('TLSRPT Record has warnings') | Out-Null } - - # Aggregate validation results - $MtaSts.ValidationPasses = $ValidationPasses - $MtaSts.ValidationWarns = $ValidationWarns - $MtaSts.ValidationFails = $ValidationFails - - $MtaSts -} - -function Read-MtaStsRecord { - <# - .SYNOPSIS - Resolve and validate MTA-STS record - - .DESCRIPTION - Query domain for DMARC policy (_mta-sts.domain.com) and parse results. Record is checked for issues. - - .PARAMETER Domain - Domain to process MTA-STS record - - .EXAMPLE - PS> Read-MtaStsRecord -Domain gmail.com - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain - ) - - # Initialize object - $StsAnalysis = [PSCustomObject]@{ - Domain = $Domain - Record = '' - Version = '' - Id = '' - IsValid = $false - HasWarnings = $false - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - } - - # Validation lists - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationWarns = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - # Validation ranges - - $RecordCount = 0 - - $DnsQuery = @{ - RecordType = 'TXT' - Domain = "_mta-sts.$Domain" - } - - # Resolve DMARC record - - $Query = Resolve-DnsHttpsQuery @DnsQuery - - $RecordCount = 0 - $Query.Answer | Where-Object { $_.data -match '^v=STSv1' } | ForEach-Object { - $StsRecord = $_.data - $StsAnalysis.Record = $StsRecord - $RecordCount++ - } - - if ($Query.Status -ne 0 -or $RecordCount -eq 0) { - if ($Query.Status -eq 3) { - $ValidationFails.Add('Record does not exist (NXDOMAIN)') | Out-Null - } - else { - $ValidationFails.Add("$Domain does not have an MTA-STS record") | Out-Null - } - } - elseif ($RecordCount -gt 1) { - $ValidationFails.Add("$Domain has multiple MTA-STS records") | Out-Null - } - - # Split DMARC record into name/value pairs - $TagList = [System.Collections.Generic.List[object]]::new() - Foreach ($Element in ($StsRecord -split ';').trim()) { - $Name, $Value = $Element -split '=' - $TagList.Add( - [PSCustomObject]@{ - Name = $Name - Value = $Value - } - ) | Out-Null - } - - # Loop through name/value pairs and set object properties - $x = 0 - foreach ($Tag in $TagList) { - switch ($Tag.Name) { - 'v' { - # REQUIRED: Version - if ($x -ne 0) { $ValidationFails.Add('v=STSv1 must be at the beginning of the record') | Out-Null } - if ($Tag.Value -ne 'STSv1') { $ValidationFails.Add("Version must be STSv1 - found $($Tag.Value)") | Out-Null } - $StsAnalysis.Version = $Tag.Value - } - 'id' { - # REQUIRED: Id - $StsAnalysis.Id = $Tag.Value - } - - } - $x++ - } - - if ($RecordCount -gt 0) { - # Check for missing record tags and set defaults - if ($StsAnalysis.Id -eq '') { $ValidationFails.Add('Id record is missing') | Out-Null } - elseif ($StsAnalysis.Id -notmatch '^[A-Za-z0-9]+$') { - $ValidationFails.Add('STS Record ID must be alphanumeric') | Out-Null - } - - if ($RecordCount -gt 1) { - $ValidationWarns.Add('Multiple MTA-STS records detected, this may cause unexpected behavior.') | Out-Null - $StsAnalysis.HasWarnings = $true - } - - $ValidationWarnCount = ($Test.ValidationWarns | Measure-Object).Count - $ValidationFailCount = ($Test.ValidationFails | Measure-Object).Count - if ($ValidationFailCount -eq 0 -and $ValidationWarnCount -eq 0) { - $ValidationPasses.Add('MTA-STS record is valid') | Out-Null - $StsAnalysis.IsValid = $true - } - } - - # Add the validation lists - $StsAnalysis.ValidationPasses = @($ValidationPasses) - $StsAnalysis.ValidationWarns = @($ValidationWarns) - $StsAnalysis.ValidationFails = @($ValidationFails) - - # Return MTA-STS analysis - $StsAnalysis -} - -function Read-MtaStsPolicy { - <# - .SYNOPSIS - Resolve and validate MTA-STS policy - - .DESCRIPTION - Retrieve mta-sts.txt from .well-known directory on domain - - .PARAMETER Domain - Domain to process MTA-STS policy - - .EXAMPLE - PS> Read-MtaStsPolicy -Domain gmail.com - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain - ) - - $StsPolicyAnalysis = [PSCustomObject]@{ - Domain = $Domain - Version = '' - Mode = '' - Mx = [System.Collections.Generic.List[string]]::new() - MaxAge = '' - IsValid = $false - HasWarnings = $false - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - } - - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationWarns = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - # Valid policy modes - $StsPolicyModes = @('testing', 'enforce') - - # Request policy file from domain, only accept text/plain results - $RequestParams = @{ - Uri = ('https://mta-sts.{0}/.well-known/mta-sts.txt' -f $Domain) - Headers = @{ - Accept = 'text/plain' - } - } - - $PolicyExists = $false - try { - $wr = Invoke-WebRequest @RequestParams -ErrorAction Stop - $PolicyExists = $true - } - catch { - $ValidationFails.Add(('MTA-STS policy does not exist for {0}' -f $Domain)) | Out-Null - } - - # Policy file is key value pairs split on new lines - $StsPolicyEntries = [System.Collections.Generic.List[object]]::new() - $Entries = $wr.Content -split "`r?`n" - foreach ($Entry in $Entries) { - if ($null -ne $Entry) { - try { - $Name, $Value = $Entry -split ':' - $StsPolicyEntries.Add( - [PSCustomObject]@{ - Name = $Name.trim() - Value = $Value.trim() - } - ) | Out-Null - } - catch {} - } - } - - foreach ($StsPolicyEntry in $StsPolicyEntries) { - switch ($StsPolicyEntry.Name) { - 'version' { - # REQUIRED: Version - $StsPolicyAnalysis.Version = $StsPolicyEntry.Value - } - 'mode' { - $StsPolicyAnalysis.Mode = $StsPolicyEntry.Value - } - 'mx' { - $StsPolicyAnalysis.Mx.Add($StsPolicyEntry.Value) | Out-Null - } - 'max_age' { - $StsPolicyAnalysis.MaxAge = $StsPolicyEntry.Value - } - } - } - - # Check policy for issues - if ($PolicyExists) { - if ($StsPolicyAnalysis.Version -ne 'STSv1') { - $ValidationFails.Add("Version must be STSv1 - found $($StsPolicyEntry.Value)") | Out-Null - } - if ($StsPolicyAnalysis.Version -eq '') { - $ValidationFails.Add('Version is missing from policy') | Out-Null - } - if ($StsPolicyModes -notcontains $StsPolicyAnalysis.Mode) { - $ValidationFails.Add(('Policy mode "{0}" is not valid. (Options: {1})' -f $StsPolicyAnalysis.Mode, $StsPolicyModes -join ', ')) - } - if ($StsPolicyAnalysis.Mode -eq 'Testing') { - $ValidationWarns.Add('MTA-STS policy is in testing mode, no action will be taken') | Out-Null - $StsPolicyAnalysis.HasWarnings = $true - } - - $ValidationFailCount = ($ValidationFails | Measure-Object).Count - if ($ValidationFailCount -eq 0) { - $ValidationPasses.Add('MTA-STS policy is valid') - $StsPolicyAnalysis.IsValid = $true - } - } - - # Aggregate validation results - $StsPolicyAnalysis.ValidationPasses = @($ValidationPasses) - $StsPolicyAnalysis.ValidationWarns = @($ValidationWarns) - $StsPolicyAnalysis.ValidationFails = @($ValidationFails) - - $StsPolicyAnalysis -} - -function Read-TlsRptRecord { - <# - .SYNOPSIS - Resolve and validate TLSRPT record - - .DESCRIPTION - Query domain for DMARC policy (_smtp._tls.domain.com) and parse results. Record is checked for issues. - - .PARAMETER Domain - Domain to process TLSRPT record - - .EXAMPLE - PS> Read-TlsRptRecord -Domain gmail.com - - #> - [CmdletBinding()] - Param( - [Parameter(Mandatory = $true)] - [string]$Domain - ) - - # Initialize object - $TlsRptAnalysis = [PSCustomObject]@{ - Domain = $Domain - Record = '' - Version = '' - RuaEntries = [System.Collections.Generic.List[string]]::new() - IsValid = $false - HasWarnings = $false - ValidationPasses = [System.Collections.Generic.List[string]]::new() - ValidationWarns = [System.Collections.Generic.List[string]]::new() - ValidationFails = [System.Collections.Generic.List[string]]::new() - } - - $ValidRuaProtocols = @( - '^(?https:.+)$' - '^mailto:(?.+)$' - ) - - # Validation lists - $ValidationPasses = [System.Collections.Generic.List[string]]::new() - $ValidationWarns = [System.Collections.Generic.List[string]]::new() - $ValidationFails = [System.Collections.Generic.List[string]]::new() - - # Validation ranges - - $RecordCount = 0 - - $DnsQuery = @{ - RecordType = 'TXT' - Domain = "_smtp._tls.$Domain" - } - - # Resolve DMARC record - - $Query = Resolve-DnsHttpsQuery @DnsQuery - - $RecordCount = 0 - $Query.Answer | Where-Object { $_.data -match '^v=TLSRPTv1' } | ForEach-Object { - $TlsRtpRecord = $_.data - $TlsRptAnalysis.Record = $TlsRtpRecord - $RecordCount++ - } - - if ($Query.Status -ne 0 -or $RecordCount -eq 0) { - if ($Query.Status -eq 3) { - $ValidationFails.Add('Record does not exist (NXDOMAIN)') | Out-Null - } - else { - $ValidationFails.Add("$Domain does not have an TLSRPT record") | Out-Null - } - } - elseif ($RecordCount -gt 1) { - $ValidationFails.Add("$Domain has multiple TLSRPT records") | Out-Null - } - - # Split DMARC record into name/value pairs - $TagList = [System.Collections.Generic.List[object]]::new() - Foreach ($Element in ($TlsRtpRecord -split ';').trim()) { - $Name, $Value = $Element -split '=' - $TagList.Add( - [PSCustomObject]@{ - Name = $Name - Value = $Value - } - ) | Out-Null - } - - # Loop through name/value pairs and set object properties - $x = 0 - foreach ($Tag in $TagList) { - switch ($Tag.Name) { - 'v' { - # REQUIRED: Version - if ($x -ne 0) { $ValidationFails.Add('v=TLSRPTv1 must be at the beginning of the record') | Out-Null } - if ($Tag.Value -ne 'TLSRPTv1') { $ValidationFails.Add("Version must be TLSRPTv1 - found $($Tag.Value)") | Out-Null } - $TlsRptAnalysis.Version = $Tag.Value - } - 'rua' { - $RuaMatched = $false - $RuaEntries = $Tag.Value -split ',' - foreach ($RuaEntry in $RuaEntries) { - foreach ($Protocol in $ValidRuaProtocols) { - if ($RuaEntry -match $Protocol) { - $TlsRptAnalysis.RuaEntries.Add($Matches.Rua) | Out-Null - $RuaMatched = $true - } - } - } - if ($RuaMatched) { - $ValidationPasses.Add('Aggregate reports are being sent') | Out-Null - } - else { - $ValidationWarns.Add('Aggregate reports are not being sent') | Out-Null - $TlsRptAnalysis.HasWarnings = $true - } - } - } - $x++ - } - - if ($RecordCount -gt 0) { - # Check for missing record tags and set defaults - - if ($RecordCount -gt 1) { - $ValidationWarns.Add('Multiple TLSRPT records detected, this may cause unexpected behavior.') | Out-Null - $TlsRptAnalysis.HasWarnings = $true - } - - $ValidationWarnCount = ($Test.ValidationWarns | Measure-Object).Count - $ValidationFailCount = ($Test.ValidationFails | Measure-Object).Count - if ($ValidationFailCount -eq 0 -and $ValidationWarnCount -eq 0) { - $ValidationPasses.Add('TLSRPT record is valid') | Out-Null - $TlsRptAnalysis.IsValid = $true - } - } - - # Add the validation lists - $TlsRptAnalysis.ValidationPasses = $ValidationPasses - $TlsRptAnalysis.ValidationWarns = $ValidationWarns - $TlsRptAnalysis.ValidationFails = $ValidationFails - - # Return MTA-STS analysis - $TlsRptAnalysis -} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000000..76c6b40f7828 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +# To enable ssh & remote debugging on app service change the base image to the one below +# FROM mcr.microsoft.com/azure-functions/powershell:4-powershell7.2-appservice +FROM mcr.microsoft.com/azure-functions/powershell:4-powershell7.4 +ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ + AzureFunctionsJobHost__Logging__Console__IsEnabled=true + +COPY . /home/site/wwwroot diff --git a/DomainAnalyser_All/function.json b/DomainAnalyser_All/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/DomainAnalyser_All/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/DomainAnalyser_All/run.ps1 b/DomainAnalyser_All/run.ps1 deleted file mode 100644 index 670e4a2bc35d..000000000000 --- a/DomainAnalyser_All/run.ps1 +++ /dev/null @@ -1,215 +0,0 @@ -param($tenant) - -Import-Module '.\DNSHelper.psm1' - -$Domain = $Tenant.Domain - -Log-request -API 'DomainAnalyser' -tenant $tenant.tenant -message "Starting Processing of $($Tenant.Domain)" -sev Debug -$Result = [PSCustomObject]@{ - Tenant = $tenant.tenant - GUID = $($Tenant.Domain.Replace('.', '')) - LastRefresh = $(Get-Date (Get-Date).ToUniversalTime() -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') - Domain = $Domain - AuthenticationType = $Tenant.authenticationType - IsAdminManaged = $Tenant.isAdminManaged - IsDefault = $Tenant.isDefault - IsInitial = $Tenant.isInitial - IsRoot = $Tenant.isRoot - IsVerified = $Tenant.isVerified - SupportedServices = $Tenant.supportedServices - ExpectedSPFRecord = '' - ActualSPFRecord = '' - SPFPassTest = '' - SPFPassAll = '' - ExpectedMXRecord = '' - ActualMXRecord = '' - MXPassTest = '' - DMARCPresent = '' - DMARCFullPolicy = '' - DMARCActionPolicy = '' - DMARCReportingActive = '' - DMARCPercentagePass = '' - DNSSECPresent = '' - MailProvider = '' - DKIMEnabled = '' - Score = '' - MaximumScore = 180 - ScorePercentage = '' - ScoreExplanation = '' -} - -$Scores = [PSCustomObject]@{ - SPFPresent = 10 - SPFMSRecommended = 10 - SPFCorrectAll = 10 - MXMSRecommended = 10 - DMARCPresent = 10 - DMARCSetQuarantine = 20 - DMARCSetReject = 30 - DMARCReportingActive = 20 - DMARCPercentageGood = 20 - DNSSECPresent = 20 - DKIMActiveAndWorking = 20 -} - -$ScoreDomain = 0 -# Setup Score Explanation -[System.Collections.ArrayList]$ScoreExplanation = @() - -$MXRecord = Read-MXRecord -Domain $Domain -$Result.ExpectedSPFRecord = $MXRecord.ExpectedInclude - -if ([string]::IsNullOrEmpty($MXRecord.MailProvider)) { - $Result.MailProvider = 'Unknown' -} -else { - $Result.MailProvider = $MXRecord.MailProvider.Name -} - -# Get SPF Record -try { - $SPFRecord = Read-SPFRecord -Domain $Domain - if ($SPFRecord.RecordCount -gt 0) { - $Result.ActualSPFRecord = $SPFRecord.Record - if ($SPFRecord.RecordCount -eq 1) { - $ScoreDomain += $Scores.SPFPresent - } - } - else { - $Result.ActualSPFRecord = 'No SPF Record' - $ScoreExplanation.Add('No SPF Record Found') | Out-Null - } -} -catch { - Log-request -API 'DomainAnalyser' -tenant $tenant.tenant -message "Exception and Error while getting SPF Record with $($_.Exception.Message)" -sev Error -} - -# Check SPF Record -$Result.SPFPassAll = $false -$Result.SPFPassTest = $false - -foreach ($Validation in $SPFRecord.ValidationPasses) { - if ($Validation -match 'Expected SPF') { - $ScoreDomain += $Scores.SPFMSRecommended - $Result.SPFPassTest = $true - break - } -} - -# Check warning + fail counts to ensure all tests pass -#$SPFWarnCount = $SPFRecord.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count -$SPFFailCount = $SPFRecord.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - -if ($SPFFailCount -eq 0) { - $ScoreDomain += $Scores.SPFCorrectAll - $Result.SPFPassAll = $true -} - -# Check MX Record - -$Result.MXPassTest = $false -# Check warning + fail counts to ensure all tests pass -$MXWarnCount = $MXRecord.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count -$MXFailCount = $MXRecord.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - -if (($MXWarnCount + $MXFailCount) -eq 0) { - $Result.MXPassTest = $true - $ScoreDomain += $Scores.MXMSRecommended -} - -# Get DMARC Record -try { - $DMARCPolicy = Read-DmarcPolicy -Domain $Domain - - If ([string]::IsNullOrEmpty($DMARCPolicy.Record)) { - $Result.DMARCPresent = $false - $ScoreExplanation.Add('No DMARC Records Found') | Out-Null - } - else { - $Result.DMARCPresent = $true - $ScoreDomain += $Scores.DMARCPresent - - $Result.DMARCFullPolicy = $DMARCResults.Record - if ($DMARCPolicy.Policy -eq 'reject' -and $DMARCPolicy.SubdomainPolicy -eq 'reject') { - $Result.DMARCActionPolicy = 'Reject' - $ScoreDomain += $Scores.DMARCSetReject - } - if ($DMARCPolicy.Policy -eq 'none') { - $Result.DMARCActionPolicy = 'None' - $ScoreExplanation.Add('DMARC is not being enforced') | Out-Null - } - if ($DMARCPolicy.Policy -eq 'quarantine') { - $Result.DMARCActionPolicy = 'Quarantine' - $ScoreDomain += $Scores.DMARCSetQuarantine - $ScoreExplanation.Add('DMARC Partially Enforced with quarantine') | Out-Null - } - $ReportEmailCount = $DMARCPolicy.ReportingEmails | Measure-Object | Select-Object -ExpandProperty Count - if ($ReportEmailCount -gt 0) { - $Result.DMARCReportingActive = $true - $ScoreDomain += $Scores.DMARCReportingActive - } - else { - $Result.DMARCReportingActive = $False - $ScoreExplanation.Add('DMARC Reporting not Configured') | Out-Null - } - - if ($DMARCPolicy.Percent -eq 100) { - $Result.DMARCPercentagePass = $true - $ScoreDomain += $Scores.DMARCPercentageGood - } - else { - $Result.DMARCPercentagePass = $false - $ScoreExplanation.Add('DMARC Not Checking All Messages') | Out-Null - } - } -} -catch { - Log-request -API 'DomainAnalyser' -tenant $tenant.tenant -message "Exception and Error while getting DMARC Record with $($_.Exception.Message)" -sev Error -} - -# DNS Sec Check -try { - $DNSSECResult = Test-DNSSEC -Domain $Domain - $DNSSECFailCount = $DNSSECResult.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - $DNSSECWarnCount = $DNSSECResult.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - if (($DNSSECFailCount + $DNSSECWarnCount) -eq 0) { - $Result.DNSSECPresent = $true - $ScoreDomain += $Scores.DNSSECPresent - } - else { - $Result.DNSSECPresent = $false - $ScoreExplanation.Add('DNSSEC Not Configured or Enabled') | Out-Null - } -} -catch { - Log-request -API 'DomainAnalyser' -tenant $tenant.tenant -message "Exception and Error while getting DNSSEC with $($_.Exception.Message)" -sev Error -} - -# DKIM Check -try { - $DkimRecord = Read-DkimRecord -Domain $Domain - - $DkimRecordCount = $DkimRecord.Records | Measure-Object | Select-Object -ExpandProperty Count - $DkimFailCount = $DkimRecord.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - $DkimWarnCount = $DkimRecord.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count - if ($DkimRecordCount -gt 0 -and ($DkimFailCount + $DkimWarnCount) -eq 0) { - $Result.DKIMEnabled = $true - $ScoreDomain += $Scores.DKIMActiveAndWorking - } - else { - $Result.DKIMEnabled = $false - $ScoreExplanation.Add('DKIM Not Configured') | Out-Null - } -} -catch { - Log-request -API 'DomainAnalyser' -tenant $tenant.tenant -message "DKIM Lookup Failed with $($_.Exception.Message)" -sev Error -} -# Final Score -$Result.Score = $ScoreDomain -$Result.ScorePercentage = [int](($Result.Score / $Result.MaximumScore) * 100) -$Result.ScoreExplanation = ($ScoreExplanation) -join ', ' - -# Final Write to Output -Log-request -API 'DomainAnalyser' -tenant $tenant.tenant -message "DNS Analyser Finished For $($Result.Domain)" -sev Info -Write-Output $Result - diff --git a/DomainAnalyser_GetQueue/function.json b/DomainAnalyser_GetQueue/function.json deleted file mode 100644 index b31f1ad21352..000000000000 --- a/DomainAnalyser_GetQueue/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "name", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/DomainAnalyser_GetQueue/run.ps1 b/DomainAnalyser_GetQueue/run.ps1 deleted file mode 100644 index d0f45a2d369b..000000000000 --- a/DomainAnalyser_GetQueue/run.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -param($name) - -$Tenants = Get-Tenants - -$object = foreach ($Tenant in $Tenants) { - # Get Domains to Lookup - try { - $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/domains' -tenantid $Tenant.defaultDomainName | Where-Object { ($_.id -notlike '*.onmicrosoft.com' -and $_.id -NotLike '*.exclaimer.cloud') } - foreach ($d in $domains) { - [PSCustomObject]@{ - Tenant = $Tenant.defaultDomainName - Domain = $d.id - AuthenticationType = $d.authenticationType - IsAdminManaged = $d.isAdminManaged - IsDefault = $d.isDefault - IsInitial = $d.isInitial - IsRoot = $d.isRoot - IsVerified = $d.isVerified - SupportedServices = $d.supportedServices - } - } - } - catch { - Log-request -API 'DomainAnalyser' -tenant $tenant.defaultDomainName -message "DNS Analyser GraphGetRequest Exception: $($_.Exception.Message)" -sev Error - } -} - -$object \ No newline at end of file diff --git a/DomainAnalyser_List/function.json b/DomainAnalyser_List/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/DomainAnalyser_List/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/DomainAnalyser_List/run.ps1 b/DomainAnalyser_List/run.ps1 deleted file mode 100644 index 35e9b3365265..000000000000 --- a/DomainAnalyser_List/run.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' - - -# Write to the Azure Functions log stream. -Write-Host 'PowerShell HTTP trigger function processed a request.' - -# Get all the things -$UnfilteredResults = Get-ChildItem '.\Cache_DomainAnalyser\*.json' | ForEach-Object { Get-Content $_.FullName | Out-String | ConvertFrom-Json } - -# Need to apply exclusion logic -$Skiplist = Get-Content 'ExcludedTenants' | ConvertFrom-Csv -Delimiter '|' -Header 'Name', 'User', 'Date' -$Results = $UnfilteredResults | ForEach-Object { $_.GUID = $_.GUID -replace '[^a-zA-Z-]', ''; $_ } | Where-Object { ($Request.Query.tenantFilter -eq 'AllTenants' -and $_.Tenant -notin $Skiplist.Name) -or ($Request.Query.tenantFilter -ne 'AllTenants' -and $_.Tenant -eq $Request.Query.tenantFilter) } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($Results) - }) \ No newline at end of file diff --git a/DomainAnalyser_Orchestration/function.json b/DomainAnalyser_Orchestration/function.json deleted file mode 100644 index 7326b39c184d..000000000000 --- a/DomainAnalyser_Orchestration/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "Context", - "type": "orchestrationTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/DomainAnalyser_Orchestration/run.ps1 b/DomainAnalyser_Orchestration/run.ps1 deleted file mode 100644 index 04aa5b8758b8..000000000000 --- a/DomainAnalyser_Orchestration/run.ps1 +++ /dev/null @@ -1,21 +0,0 @@ -param($Context) - -New-Item "Cache_DomainAnalyser" -ItemType Directory -ErrorAction SilentlyContinue -New-Item "Cache_DomainAnalyser\CurrentlyRunning.txt" -ItemType File -Force -$Batch = (Invoke-ActivityFunction -FunctionName 'DomainAnalyser_GetQueue' -Input 'LetsGo') -$ParallelTasks = foreach ($Item in $Batch) { - Invoke-DurableActivity -FunctionName "DomainAnalyser_All" -Input $item -NoWait -} - -$Outputs = Wait-ActivityFunction -Task $ParallelTasks -Log-request -API "DomainAnalyser" -tenant $tenant -message "Outputs found count = $($Outputs.count)" -sev Info - -foreach ($item in $Outputs) { - Write-Host $Item | Out-String - $Object = $Item | ConvertTo-Json - - Set-Content "Cache_DomainAnalyser\$($item.domain).DomainAnalysis.json" -Value $Object -Force -} - -Log-request -API "DomainAnalyser" -tenant $tenant -message "Domain Analyser has Finished" -sev Info -Remove-Item "Cache_DomainAnalyser\CurrentlyRunning.txt" -Force \ No newline at end of file diff --git a/DomainAnalyser_OrchestrationStarter/function.json b/DomainAnalyser_OrchestrationStarter/function.json deleted file mode 100644 index 14c44f4f0217..000000000000 --- a/DomainAnalyser_OrchestrationStarter/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "name": "Request", - "type": "httpTrigger", - "direction": "in", - "methods": [ - "post", - "get" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} diff --git a/DomainAnalyser_OrchestrationStarter/run.ps1 b/DomainAnalyser_OrchestrationStarter/run.ps1 deleted file mode 100644 index cbab5a8092db..000000000000 --- a/DomainAnalyser_OrchestrationStarter/run.ps1 +++ /dev/null @@ -1,22 +0,0 @@ -using namespace System.Net - -param($Request, $TriggerMetadata) -$CurrentlyRunning = Get-Item "Cache_DomainAnalyser\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-24) -if ($CurrentlyRunning) { - $Results = [pscustomobject]@{"Results" = "Already running. Please wait for the current instance to finish" } - Log-request -API "DomainAnalyser" -message "Attempted to start domain analysis but an instance was already running." -sev Info -} -else { - $InstanceId = Start-NewOrchestration -FunctionName 'DomainAnalyser_Orchestration' - Write-Host "Started orchestration with ID = '$InstanceId'" - $Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId - Log-request -API "DomainAnalyser" -message "Started retrieving domain information" -sev Info - $Results = [pscustomobject]@{"Results" = "Started running analysis" } -} -Write-Host ($Orchestrator | ConvertTo-Json) - - -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $results - }) \ No newline at end of file diff --git a/Domain_OrchestrationStarterTimer/function.json b/Domain_OrchestrationStarterTimer/function.json deleted file mode 100644 index f5df3587c4c8..000000000000 --- a/Domain_OrchestrationStarterTimer/function.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "bindings": [ - { - "name": "Timer", - "type": "timerTrigger", - "direction": "in", - "schedule": "0 30 4 * * *" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Domain_OrchestrationStarterTimer/run.ps1 b/Domain_OrchestrationStarterTimer/run.ps1 deleted file mode 100644 index 4662cff15a12..000000000000 --- a/Domain_OrchestrationStarterTimer/run.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -param($Timer) - -$CurrentlyRunning = Get-Item "Cache_DomainAnalyser\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-24) -if ($CurrentlyRunning) { - $Results = [pscustomobject]@{"Results" = "Already running. Please wait for the current instance to finish" } - Log-request -API "DomainAnalyser" -message "Attempted to start analysis but an instance was already running." -sev Info -} -else { - $InstanceId = Start-NewOrchestration -FunctionName 'DomainAnalyser_Orchestration' - Write-Host "Started orchestration with ID = '$InstanceId'" - $Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId - Log-request -API "DomainAnalyser" -message "Starting Domain Analyser" -sev Info - $Results = [pscustomobject]@{"Results" = "Starting Domain Analyser" } -} -Write-Host ($Orchestrator | ConvertTo-Json) diff --git a/Durable_AlertsFanOut/function.json b/Durable_AlertsFanOut/function.json deleted file mode 100644 index ebf8e2a2aa72..000000000000 --- a/Durable_AlertsFanOut/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Durable_AlertsFanOut/run.ps1 b/Durable_AlertsFanOut/run.ps1 deleted file mode 100644 index 07c0703e48d3..000000000000 --- a/Durable_AlertsFanOut/run.ps1 +++ /dev/null @@ -1,40 +0,0 @@ -param($tenant) - -try { - $Stuff = [System.Collections.Generic.List[PSCustomObject]]@() - $Test = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/security/alerts' -tenantid $tenant.defaultDomainName -AsApp $true - - foreach ($alert in $test) { - # Generate a GUID and do some stuff to make sure it is a legal name - $GUID = "divid" + (New-Guid).Guid.Replace('-', '') - - $Stuff.Add([PSCustomObject]@{ - Tenant = $tenant.defaultDomainName - GUID = $GUID - Id = $alert.Id - Title = $alert.Title - Category = $alert.category - EventDateTime = $alert.eventDateTime - Severity = $alert.Severity - Status = $alert.Status - RawResult = $($Test | Where-Object { $_.Id -eq $alert.Id }) - InvolvedUsers = $($Test | Where-Object { $_.Id -eq $alert.Id }).userStates - }) - } - - $Stuff -} -catch { - Write-Host "$($_.Exception.Message)" - $Stuff.Add([PSCustomObject]@{ - Tenant = $tenant.defaultDomainName - GUID = $GUID - Id = "" - Title = "" - Category = "" - EventDateTime = "" - Severity = "" - Status = "" - RawResult = "" - }) -} \ No newline at end of file diff --git a/Durable_AlertsQueue/function.json b/Durable_AlertsQueue/function.json deleted file mode 100644 index b31f1ad21352..000000000000 --- a/Durable_AlertsQueue/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "name", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Durable_AlertsQueue/run.ps1 b/Durable_AlertsQueue/run.ps1 deleted file mode 100644 index 01866cf4ad65..000000000000 --- a/Durable_AlertsQueue/run.ps1 +++ /dev/null @@ -1,11 +0,0 @@ -param($name) -Write-Host "0000000000000000000000000000000000" -Write-Host $name -$Tenants = if ($name -eq "AllTenants") { - Get-Tenants -} -else { - Get-tenants | Where-Object -Property defaultDomainName -EQ $name -} - -$Tenants diff --git a/Durable_AlertsRun/function.json b/Durable_AlertsRun/function.json deleted file mode 100644 index 7326b39c184d..000000000000 --- a/Durable_AlertsRun/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "Context", - "type": "orchestrationTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Durable_AlertsRun/run.ps1 b/Durable_AlertsRun/run.ps1 deleted file mode 100644 index 2243b263487d..000000000000 --- a/Durable_AlertsRun/run.ps1 +++ /dev/null @@ -1,54 +0,0 @@ -param($Context) - - -#$Context does not allow itself to be cast to a pscustomobject for some reason, so we converts -$context = $Context | ConvertTo-Json | ConvertFrom-Json -$GUID = $context.input.GUID -$TenantFilter = $context.input.TenantID -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -Write-Host "PowerShell HTTP trigger function processed a request." -Write-Host ($Context | ConvertTo-Json) -Write-Host "Using input $TenantFilter" -Write-Host "starting batch" -$Batch = (Invoke-ActivityFunction -FunctionName 'Durable_AlertsQueue' -Input $TenantFilter) -Write-Host "Stopping Batch" -$ParallelTasks = foreach ($Item in $Batch) { - Invoke-DurableActivity -FunctionName "Durable_AlertsFanOut" -Input $item -NoWait -} - -$Outputs = Wait-ActivityFunction -Task $ParallelTasks - -function New-FlatArray ([Array]$arr) { - $arr | ForEach-Object { - if ($_ -is 'Array') { - New-FlatArray $_ - } - else { $_ } - } -} - -$DisplayableAlerts = New-FlatArray $Outputs | Where-Object { $_.Id -ne $null } | Sort-Object -Property EventDateTime -Descending - -$NewAlertsCount = $DisplayableAlerts | Where-Object { $_.Status -eq 'newAlert' } | Measure-Object | Select-Object -ExpandProperty Count -$InProgressAlertsCount = $DisplayableAlerts | Where-Object { $_.Status -eq 'inProgress' } | Measure-Object | Select-Object -ExpandProperty Count -$SeverityHighAlertsCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'high' } | Measure-Object | Select-Object -ExpandProperty Count -$SeverityMediumAlertsCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'medium' } | Measure-Object | Select-Object -ExpandProperty Count -$SeverityLowAlertsCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'low' } | Measure-Object | Select-Object -ExpandProperty Count -$SeverityInformationalCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'informational' } | Measure-Object | Select-Object -ExpandProperty Count - - - -$Object = [PSCustomObject]@{ - NewAlertsCount = $NewAlertsCount - InProgressAlertsCount = $InProgressAlertsCount - SeverityHighAlertsCount = $SeverityHighAlertsCount - SeverityMediumAlertsCount = $SeverityMediumAlertsCount - SeverityLowAlertsCount = $SeverityLowAlertsCount - SeverityInformationalCount = $SeverityInformationalCount - MSResults = $DisplayableAlerts -} - - -New-Item "Cache_AlertsCheck" -ItemType Directory -Force -ErrorAction SilentlyContinue | Out-Null -$Object | ConvertTo-Json -Depth 50 | Out-File "Cache_AlertsCheck\$GUID.json" \ No newline at end of file diff --git a/Durable_BECRun/function.json b/Durable_BECRun/function.json deleted file mode 100644 index 7326b39c184d..000000000000 --- a/Durable_BECRun/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "Context", - "type": "orchestrationTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Durable_BECRun/run.ps1 b/Durable_BECRun/run.ps1 deleted file mode 100644 index a80f06fcea33..000000000000 --- a/Durable_BECRun/run.ps1 +++ /dev/null @@ -1,118 +0,0 @@ -param($Context) -#$Context does not allow itself to be cast to a pscustomobject for some reason, so we convert -$context = $Context | ConvertTo-Json | ConvertFrom-Json -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -Write-Host "PowerShell HTTP trigger function processed a request." -Write-Host ($Context | ConvertTo-Json) -$TenantFilter = $Context.input.tenantfilter -$SuspectUser = $Context.input.userid -$GUID = $context.input.GUID - - - -try { - $startDate = (Get-Date).AddDays(-7) - $endDate = (Get-Date) - $upn = "notRequired@required.com" - $tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $TenantFilter).Authorization -AsPlainText -Force - $credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) - $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($TenantFilter)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ErrorAction Continue - $s = Import-PSSession $session -ea Silentlycontinue -AllowClobber -CommandName "Search-unifiedAuditLog", "Get-AdminAuditLogConfig" - $7dayslog = if ((Get-AdminAuditLogConfig).UnifiedAuditLogIngestionEnabled -eq $false) { - "AuditLog is disabled. Cannot perform full analysis" - } - else { - $sessionid = Get-Random -Minimum 10000 -Maximum 99999 - $operations = @( - 'Add OAuth2PermissionGrant.', - 'Consent to application.', - "New-InboxRule", - "Set-InboxRule", - "UpdateInboxRules", - "Remove-MailboxPermission", - "Add-MailboxPermission", - "UpdateCalendarDelegation", - "AddFolderPermissions", - "MailboxLogin", - "Add user.", - "Change user password.", - "Reset user password." - ) - do { - $logsTenant = Search-unifiedAuditLog -SessionCommand ReturnLargeSet -ResultSize 5000 -StartDate $startDate -EndDate $endDate -sessionid $sessionid -Operations $operations - Write-Host "Retrieved $($logsTenant.count) logs" -ForegroundColor Yellow - $logsTenant - } while ($LogsTenant.count % 5000 -eq 0 -and $LogsTenant.count -ne 0) - } - Get-PSSession | Remove-PSSession - #Get user last logon - $uri = "https://login.microsoftonline.com/$($TenantFilter)/oauth2/token" - $body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - Write-Host "getting token" - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - Write-Host "got token" - $LastSignIn = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri "https://admin.microsoft.com/admin/api/users/$($SuspectUser)/lastSignInInfo" -Method GET -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - #List all users devices - Write-Host "Last Sign in is: $LastSignIn" - $Bytes = [System.Text.Encoding]::UTF8.GetBytes($SuspectUser) - $base64IdentityParam = [Convert]::ToBase64String($Bytes) - Try { - $Devices = New-GraphGetRequest -uri "https://outlook.office365.com:443/adminapi/beta/$($TenantFilter)/mailbox('$($base64IdentityParam)')/MobileDevice/Exchange.GetMobileDeviceStatistics()/?IsEncoded=True" -Tenantid $tenantfilter -scope ExchangeOnline - } - catch { - $Devices = $null - } - $PermissionsLog = ($7dayslog | Where-Object -Property Operations -In "Remove-MailboxPermission", "Add-MailboxPermission", "UpdateCalendarDelegation", "AddFolderPermissions" ).AuditData | ConvertFrom-Json -Depth 100 | ForEach-Object { - $perms = if ($_.Parameters) { - $_.Parameters | ForEach-Object { if ($_.Name -eq "AccessRights") { $_.Value } } - } - else - { $_.item.ParentFolder.MemberRights } - $objectID = if ($_.ObjectID) { $_.ObjectID } else { $($_.MailboxOwnerUPN) + $_.item.ParentFolder.Path } - [pscustomobject]@{ - Operation = $_.Operation - UserKey = $_.UserKey - ObjectId = $objectId - Permissions = $perms - } - } - - $RulesLog = @(($7dayslog | Where-Object -Property Operations -In "New-InboxRule", "Set-InboxRule", "UpdateInboxRules").AuditData | ConvertFrom-Json) | ForEach-Object { - Write-Host ($_ | ConvertTo-Json) - [pscustomobject]@{ - ClientIP = $_.ClientIP - CreationTime = $_.CreationTime - UserId = $_.UserId - RuleName = ($_.OperationProperties | ForEach-Object { if ($_.Name -eq "RuleName") { $_.Value } }) - RuleCondition = ($_.OperationProperties | ForEach-Object { if ($_.Name -eq "RuleCondition") { $_.Value } }) - } - } - - $Results = [PSCustomObject]@{ - AddedApps = @(($7dayslog | Where-Object -Property Operations -In 'Add OAuth2PermissionGrant.', 'Consent to application.').AuditData | ConvertFrom-Json) - SuspectUserMailboxLogons = @(($7dayslog | Where-Object -Property Operations -In "MailboxLogin" ).AuditData | ConvertFrom-Json) - LastSuspectUserLogon = @($LastSignIn) - SuspectUserDevices = @($Devices) - NewRules = @($RulesLog) - MailboxPermissionChanges = @($PermissionsLog) - NewUsers = @(($7dayslog | Where-Object -Property Operations -In "Add user.").AuditData | ConvertFrom-Json) - ChangedPasswords = @(($7dayslog | Where-Object -Property Operations -In "Change user password.", "Reset user password.").AuditData | ConvertFrom-Json) - } - - #Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($tenantfilter) -message "Assigned $($appFilter) to $assignTo" -Sev "Info" - -} -catch { - #Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($tenantfilter) -message "Failed to assign app $($appFilter): $($_.Exception.Message)" -Sev "Error" - $errMessage = Get-NormalizedError -message $_.Exception.Message - $results = [pscustomobject]@{"Results" = "$errMessage" } -} -New-Item "Cache_BECCheck" -ItemType Directory -Force -ErrorAction SilentlyContinue | Out-Null -$results | ConvertTo-Json | Out-File "Cache_BECCheck\$GUID.json" \ No newline at end of file diff --git a/EditGroup/function.json b/EditGroup/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/EditGroup/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/EditGroup/run.ps1 b/EditGroup/run.ps1 deleted file mode 100644 index 81376e2b5593..000000000000 --- a/EditGroup/run.ps1 +++ /dev/null @@ -1,90 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$Results = [System.Collections.ArrayList]@() - - -$userobj = $Request.body - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -$AddMembers = ($userobj.Addmember).Split([Environment]::NewLine) -try { - if ($AddMembers) { - $MemberIDs = $AddMembers | ForEach-Object { "https://graph.microsoft.com/v1.0/directoryObjects/" + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $Userobj.tenantid).id } - $addmemberbody = "{ `"members@odata.bind`": $(ConvertTo-Json @($MemberIDs)) }" - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($userobj.groupid)" -tenantid $Userobj.tenantid -type patch -body $addmemberbody -verbose - Log-Request -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "Added member to $($userobj.displayname) group" -Sev "Info" - $body = $results.add("Success. $AddMembers have been added") - } - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -message "Add member API failed. $($_.Exception.Message)" -Sev "Error" - $body = $results.add("Failed to add $AddMembers to $($userobj.Groupid) $($_.Exception.Message)") -} - -$RemoveMembers = ($userobj.Removemember).Split([Environment]::NewLine) -try { - if ($RemoveMembers) { - $RemoveMembers | ForEach-Object { - $MemberInfo = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $Userobj.tenantid) - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($userobj.groupid)/members/$($MemberInfo.id)/`$ref" -tenantid $Userobj.tenantid -type DELETE - Log-Request -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "Removed $($MemberInfo.UserPrincipalname) from $($userobj.displayname) group" -Sev "Info" - $body = $results.add("Success. Member $_ has been removed from $($userobj.Groupid)") - } - } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $Userobj.tenantid -message "Add member API failed. $($_.Exception.Message)" -Sev "Error" - $body = $results.add("Could not remove $RemoveMembers from $($userobj.Groupid). $($_.Exception.Message)") -} - -$AddOwners = ($userobj.Addowner).Split([Environment]::NewLine) -try { - if ($AddOwners) { - $AddOwners | ForEach-Object { - $ID = "https://graph.microsoft.com/beta/users/" + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $Userobj.tenantid).id - Write-Host $ID - $AddOwner = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($userobj.groupid)/owners/`$ref" -tenantid $Userobj.tenantid -type POST -body ('{"@odata.id": "' + $ID + '"}') - Log-Request -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "Added owner $_ to $($userobj.displayname) group" -Sev "Info" - $body = $results.add("Success. $_ has been added") - - } - - } - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -message "Add member API failed. $($_.Exception.Message)" -Sev "Error" - $body = $results.add("Failed to add $AddMembers to $($userobj.Groupid) $($_.Exception.Message)") -} - -$RemoveOwners = ($userobj.RemoveOwner).Split([Environment]::NewLine) -try { - if ($RemoveOwners) { - $RemoveOwners | ForEach-Object { - $MemberInfo = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_)" -tenantid $Userobj.tenantid) - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($userobj.groupid)/owners/$($MemberInfo.id)/`$ref" -tenantid $Userobj.tenantid -type DELETE - Log-Request -API $APINAME -tenant $Userobj.tenantid -user $request.headers.'x-ms-client-principal' -message "Removed $($MemberInfo.UserPrincipalname) from $($userobj.displayname) group" -Sev "Info" - $body = $results.add("Success. Member $_ has been removed from $($userobj.Groupid)") - } - } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $Userobj.tenantid -message "Add member API failed. $($_.Exception.Message)" -Sev "Error" - $body = $results.add("Could not remove $RemoveMembers from $($userobj.Groupid). $($_.Exception.Message)") -} - - -$body = @{"Results" = @($results) } -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) diff --git a/EditPolicy/function.json b/EditPolicy/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/EditPolicy/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/EditPolicy/run.ps1 b/EditPolicy/run.ps1 deleted file mode 100644 index 0e3cd19cf054..000000000000 --- a/EditPolicy/run.ps1 +++ /dev/null @@ -1,38 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$user = $request.headers.'x-ms-client-principal' -$Tenant = $request.body.tenantid -$ID = $request.body.groupid -$displayname = $request.body.Displayname -$description = $request.body.Description -$AssignTo = if ($request.body.Assignto -ne "on") { $request.body.Assignto } -$results = try { - $CreateBody = '{"description":"' + $description + '","displayName":"' + $displayname + '","roleScopeTagIds":["0"]}' - $Request = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations('$ID')" -tenantid $tenant -type PATCH -body $CreateBody - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Edited policy $($Displayname)" -Sev "Error" - if ($AssignTo) { - $AssignBody = if ($AssignTo -ne "AllDevicesAndUsers") { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } - $assign = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations('$($ID)')/assign" -tenantid $tenant -type POST -body $AssignBody - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Assigned policy $($Displayname) to $AssignTo" -Sev "Info" - } - "Succesfully edited policy for $($Tenant)" -} -catch { - "Failed to add policy for $($Tenant): $($_.Exception.Message)" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Failed editing policy $($Displayname). Error: $($_.Exception.Message)" -Sev "Error" - continue -} - -$body = [pscustomobject]@{"Results" = $results } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/EditTenant/function.json b/EditTenant/function.json deleted file mode 100644 index bec6849b58ab..000000000000 --- a/EditTenant/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/EditTenant/run.ps1 b/EditTenant/run.ps1 deleted file mode 100644 index aa467a03a0e8..000000000000 --- a/EditTenant/run.ps1 +++ /dev/null @@ -1,54 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' - -$tenantDisplayName = $request.body.displayName -$tenantDefaultDomainName = $request.body.defaultDomainName -$Tenant = $request.body.tenantid -$customerContextId = $request.body.customerId - -$tokens = try { - - $AADGraphtoken = (Get-GraphToken -scope 'https://graph.windows.net/.default') - $allTenantsDetails = (Invoke-RestMethod -Method GET -Uri 'https://graph.windows.net/myorganization/contracts?api-version=1.6' -ContentType 'application/json' -Headers $AADGraphtoken) - $tenantObjectId = $allTenantsDetails.value | Where-Object { $_.customerContextId -eq $customerContextId } | Select-Object 'objectId' -} catch { - "Failed to retrieve list of tenants. Error: $($_.ExceptionMessage)" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($tenantDisplayName) -message "Failed to retrieve list of tenants. Error: $($_.Exception.Message)" -Sev 'Error' -} - - -$results = if ($tenantObjectId) { - try { - $bodyToPatch = '{"displayName":"' + $tenantDisplayName + '","defaultDomainName":"' + $tenantDefaultDomainName + '"}' - $patchTenant = (Invoke-RestMethod -Method PATCH -Uri "https://graph.windows.net/myorganization/contracts/$($tenantObjectId.objectId)?api-version=1.6" -Body $bodyToPatch -ContentType 'application/json' -Headers $AADGraphtoken) - - if (Test-Path -Path '.\tenants.cache.json') { - try { - Remove-CIPPCache - } - catch { - 'There was an error removing the tenants cache for some reason.' - } - } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Edited tenant $($Tenant)" -Sev 'Info' - "Successfully amended details for $($Tenant) and cleared tenant cache" - } - catch { - "Failed to amend details for $($Tenant): $($_.ExceptionMessage)" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Failed amending details $($Tenant). Error: $($_.Exception.Message)" -Sev 'Error' - continue - } -} - -$body = [pscustomobject]@{'Results' = $results } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/EditUser/function.json b/EditUser/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/EditUser/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/EditUser/run.ps1 b/EditUser/run.ps1 deleted file mode 100644 index b37270f2a804..000000000000 --- a/EditUser/run.ps1 +++ /dev/null @@ -1,120 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$userobj = $Request.body -$Results = [System.Collections.ArrayList]@() -$licenses = ($userobj | Select-Object "License_*").psobject.properties.value -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -#Edit the user -try { - $Email = "$($UserObj.username)@$($UserObj.domain)" - $UserprincipalName = "$($UserObj.username)@$($UserObj.domain)" - $BodyToship = [pscustomobject] @{ - "givenName" = $userobj.firstname - "surname" = $userobj.lastname - "city" = $userobj.city - "country" = $userobj.country - "department" = $userobj.department - "displayName" = $UserObj.Displayname - "postalCode" = $userobj.postalCode - "companyName" = $userobj.companyName - "mailNickname" = $UserObj.username - "jobTitle" = $UserObj.JobTitle - "userPrincipalName" = $Email - "usageLocation" = $UserObj.usageLocation - "mobilePhone" = $userobj.mobilePhone - "streetAddress" = $userobj.streetAddress - "businessPhones" = @($userobj.businessPhone) - "passwordProfile" = @{ - "forceChangePasswordNextSignIn" = [bool]$UserObj.mustchangepass - } - } | ForEach-Object { - $NonEmptyProperties = $_.psobject.Properties | Select-Object -ExpandProperty Name - $_ | Select-Object -Property $NonEmptyProperties | ConvertTo-Json - } - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userobj.Userid)" -tenantid $Userobj.tenantid -type PATCH -body $BodyToship -verbose - $results.add( "Success. The user has been edited." ) - if ($userobj.password) { - $passwordProfile = [pscustomobject] @{"passwordProfile" = @{ "password" = $userobj.password } } | ConvertTo-Json - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userobj.Userid)" -tenantid $Userobj.tenantid -type PATCH -body $PasswordProfile -verbose - $results.add("Success. The password has been set to $($userobj.password)") - } -} -catch { - Log-Request -API $APINAME -tenant ($UserObj.tenantid) -user $request.headers.'x-ms-client-principal' -message "User edit API failed. $($_.Exception.Message)" -Sev "Error" - $results.add( "Failed to edit user. $($_.Exception.Message)") - Log-Request -API $APINAME -tenant ($UserObj.tenantid) -user $request.headers.'x-ms-client-principal' -message "Edited user $($userobj.displayname) with id $($userobj.Userid)" -Sev "Info" -} - - -#Reassign the licenses -try { - - if ($licenses -or $userobj.RemoveAllLicenses) { - $licenses = (($userobj | Select-Object "License_*").psobject.properties | Where-Object { $_.value -EQ $true }).name -replace "License_", "" - $CurrentLicenses = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userobj.Userid)" -tenantid $Userobj.tenantid - $RemovalList = ($CurrentLicenses.assignedLicenses | Where-Object -Property skuid -NotIn $licenses).skuid - $LicensesToRemove = if ($RemovalList) { ConvertTo-Json @( $RemovalList ) } else { "[]" } - - $liclist = foreach ($license in $Licenses) { '{"disabledPlans": [],"skuId": "' + $license + '" },' } - $LicenseBody = '{"addLicenses": [' + $LicList + '], "removeLicenses": ' + $LicensesToRemove + '}' - if ($userobj.RemoveAllLicenses) { $LicenseBody = '{"addLicenses": [], "removeLicenses": ' + $LicensesToRemove + '}' } - Write-Host $LicenseBody - $LicRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userobj.Userid)/assignlicense" -tenantid $Userobj.tenantid -type POST -body $LicenseBody -verbose - - Log-Request -API $APINAME -tenant ($UserObj.tenantid) -user $request.headers.'x-ms-client-principal' -message "Changed user $($userobj.displayname) license. Sent info: $licensebody" -Sev "Info" - $results.add( "Success. User license has been edited." ) - } - -} -catch { - Log-Request -API $APINAME -tenant ($UserObj.tenantid) -user $request.headers.'x-ms-client-principal' -message "License assign API failed. $($_.Exception.Message)" -Sev "Error" - $results.add( "We've failed to assign the license. $($_.Exception.Message)") -} - -#Add Aliases, removal currently not supported. -try { - if ($Aliases) { - foreach ($Alias in $Aliases) { - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userobj.Userid)" -tenantid $Userobj.tenantid -type "patch" -body "{`"mail`": `"$Alias`"}" -verbose - } - New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userobj.Userid)" -tenantid $Userobj.tenantid -type "patch" -body "{`"mail`": `"$UserprincipalName`"}" -verbose - Log-Request -API $APINAME -tenant ($UserObj.tenantid) -user $request.headers.'x-ms-client-principal' -message "Added Aliases to $($userobj.displayname) license $($licences)" -Sev "Info" - $results.add( "Success. User has been edited") - } - -} -catch { - Log-Request -API $APINAME -tenant ($UserObj.tenantid) -user $request.headers.'x-ms-client-principal' -message "Alias API failed. $($_.Exception.Message)" -Sev "Error" - $results.add( "Succesfully edited user. The password is $password. We've failed to create the Aliases: $($_.Exception.Message)") -} - -if ($Request.body.CopyFrom -ne "") { - $MemberIDs = "https://graph.microsoft.com/v1.0/directoryObjects/" + (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userobj.Userid)" -tenantid $Userobj.tenantid).id - $addmemberbody = "{ `"members@odata.bind`": $(ConvertTo-Json @($MemberIDs)) }" - (New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($Request.body.CopyFrom)/GetMemberGroups" -tenantid $Userobj.tenantid -type POST -body '{"securityEnabledOnly": false}').value | ForEach-Object { - try { - $groupname = (New-GraphGetRequest -tenantid $Userobj.tenantid -asApp $true -uri "https://graph.microsoft.com/beta/groups/$($_)").displayName - Write-Host "name: $groupname" - $GroupResult = New-GraphPostRequest -AsApp $true -uri "https://graph.microsoft.com/beta/groups/$($_)" -tenantid $Userobj.tenantid -type patch -body $addmemberbody -ErrorAction Stop - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Added $($UserprincipalName) to group $groupresult.displayName)" -Sev "Info" -tenant $TenantFilter - $body = $results.add("Added group: $($groupname)") - } - catch { - $body = $results.add("We've failed to add the group $($groupname): $($_.Exception.Message)") - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($userobj.tenantid) -message "Failed to add group. $($_.Exception.Message)" -Sev "Error" - } - } - -} -$body = @{"Results" = @($results) } -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) diff --git a/ExampleReportTemplate.ps1 b/ExampleReportTemplate.ps1 new file mode 100644 index 000000000000..e1973a4ba742 --- /dev/null +++ b/ExampleReportTemplate.ps1 @@ -0,0 +1,19 @@ +$Table = Get-CippTable -tablename 'CippReportTemplates' + +# Dynamically discover all ZTNA test files +$TestFiles = Get-ChildItem "C:\Github\CIPP-API\Modules\CIPPCore\Public\Tests\Invoke-CippTestZTNA*.ps1" | Sort-Object Name +$AllTestIds = $TestFiles.BaseName | ForEach-Object { $_ -replace 'Invoke-CippTestZTNA', 'ZTNA' } + +Write-Host "Discovered $($AllTestIds.Count) ZTNA tests" + +$Entity = @{ + RowKey = 'd5d1e123-bce0-482d-971f-be6ed820dd92' + PartitionKey = 'ReportingTemplate' + IdentityTests = [string]($AllTestIds | ConvertTo-Json -Compress) + Description = 'Complete Zero Trust Network Assessment Report' + Name = 'Full ZTNA Report' +} + +Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + +Write-Host "Report template created successfully with ID: $($Entity.RowKey)" diff --git a/ExecAccessChecks/function.json b/ExecAccessChecks/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecAccessChecks/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecAccessChecks/run.ps1 b/ExecAccessChecks/run.ps1 deleted file mode 100644 index 76e4efd2fbb7..000000000000 --- a/ExecAccessChecks/run.ps1 +++ /dev/null @@ -1,152 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' - - -# Write to the Azure Functions log stream. -Write-Host 'PowerShell HTTP trigger function processed a request.' -if ($Request.query.Permissions -eq 'true') { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Started permissions check' -Sev 'Debug' - $Messages = [System.Collections.Generic.List[string]]::new() - $MissingPermissions = [System.Collections.Generic.List[string]]::new() - $Links = [System.Collections.Generic.List[object]]::new() - $AccessTokenDetails = [PSCustomObject]@{ - AppId = '' - AppName = '' - Audience = '' - AuthMethods = '' - IPAddress = '' - Name = '' - Scope = '' - TenantId = '' - UserPrincipalName = '' - } - $Success = $true - try { - $ExpectedPermissions = @( - 'Application.Read.All', 'Application.ReadWrite.All', 'AuditLog.Read.All', 'Channel.Create', 'Channel.Delete.All', 'Channel.ReadBasic.All', 'ChannelMember.Read.All', 'ChannelMember.ReadWrite.All', 'ChannelMessage.Delete', 'ChannelMessage.Edit', 'ChannelMessage.Read.All', 'ChannelMessage.Send', 'ChannelSettings.Read.All', 'ChannelSettings.ReadWrite.All', 'ConsentRequest.Read.All', 'Device.Command', 'Device.Read', 'Device.Read.All', 'DeviceManagementApps.ReadWrite.All', 'DeviceManagementConfiguration.ReadWrite.All', 'DeviceManagementManagedDevices.ReadWrite.All', 'DeviceManagementRBAC.ReadWrite.All', 'DeviceManagementServiceConfig.ReadWrite.All', 'Directory.AccessAsUser.All', 'Domain.Read.All', 'Group.ReadWrite.All', 'GroupMember.ReadWrite.All', 'Mail.Send', 'Mail.Send.Shared', 'Member.Read.Hidden', 'Organization.ReadWrite.All', 'Policy.Read.All', 'Policy.ReadWrite.AuthenticationFlows', 'Policy.ReadWrite.AuthenticationMethod', 'Policy.ReadWrite.Authorization', 'Policy.ReadWrite.ConsentRequest', 'Policy.ReadWrite.DeviceConfiguration', 'PrivilegedAccess.Read.AzureResources', 'PrivilegedAccess.ReadWrite.AzureResources', 'Reports.Read.All', 'RoleManagement.ReadWrite.Directory', 'SecurityActions.ReadWrite.All', 'SecurityEvents.ReadWrite.All', 'ServiceHealth.Read.All', 'ServiceMessage.Read.All', 'Sites.ReadWrite.All', 'Team.Create', 'Team.ReadBasic.All', 'TeamMember.ReadWrite.All', 'TeamMember.ReadWriteNonOwnerRole.All', 'TeamsActivity.Read', 'TeamsActivity.Send', 'TeamsApp.Read', 'TeamsApp.Read.All', 'TeamsApp.ReadWrite', 'TeamsApp.ReadWrite.All', 'TeamsAppInstallation.ReadForChat', 'TeamsAppInstallation.ReadForTeam', 'TeamsAppInstallation.ReadForUser', 'TeamsAppInstallation.ReadWriteForChat', 'TeamsAppInstallation.ReadWriteForTeam', 'TeamsAppInstallation.ReadWriteForUser', 'TeamsAppInstallation.ReadWriteSelfForChat', 'TeamsAppInstallation.ReadWriteSelfForTeam', 'TeamsAppInstallation.ReadWriteSelfForUser', 'TeamSettings.Read.All', 'TeamSettings.ReadWrite.All', 'TeamsTab.Create', 'TeamsTab.Read.All', 'TeamsTab.ReadWrite.All', 'TeamsTab.ReadWriteForChat', 'TeamsTab.ReadWriteForTeam', 'TeamsTab.ReadWriteForUser', 'ThreatAssessment.ReadWrite.All', 'UnifiedGroupMember.Read.AsGuest', 'User.ManageIdentities.All', 'User.Read', 'User.ReadWrite.All', 'UserAuthenticationMethod.Read.All', 'UserAuthenticationMethod.ReadWrite', 'UserAuthenticationMethod.ReadWrite.All' - ) - $GraphToken = Get-GraphToken -returnRefresh $true - $GraphPermissions = $GraphToken.scope.split(' ') -replace 'https://graph.microsoft.com//', '' | Where-Object { $_ -notin @('email', 'openid', 'profile', '.default') } - #Write-Host ($GraphPermissions | ConvertTo-Json) - - try { - $AccessTokenDetails = Read-JwtAccessDetails -Token $GraphToken.access_token - #Write-Host ($AccessTokenDetails | ConvertTo-Json) - } - catch { - $AccessTokenDetails = [PSCustomObject]@{ - Name = '' - AuthMethods = @() - } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Token exception: $($_) " -Sev 'Error' - $Success = $false - } - - if ($AccessTokenDetails.Name -eq '') { - $Messages.Add('Your refresh token is invalid, check for line breaks or missing characters.') | Out-Null - $Success = $false - } - else { - if ($AccessTokenDetails.AuthMethods -contains 'mfa') { - $Messages.Add('Your access token contains the MFA claim.') | Out-Null - } - else { - $Messages.Add('Your access token does not contain the MFA claim, Refresh your SAM tokens.') | Out-Null - $Success = $false - $Links.Add([PSCustomObject]@{ - Text = 'MFA Troubleshooting' - Href = 'https://cipp.app/docs/general/troubleshooting/#multi-factor-authentication-troubleshooting' - } - ) | Out-Null - } - } - - $MissingPermissions = $ExpectedPermissions | Where-Object { $_ -notin $GraphPermissions } - if ($MissingPermissions) { - $MissingPermissions = @($MissingPermissions) - $Success = $false - $Links.Add([PSCustomObject]@{ - Text = 'Permissions' - Href = 'https://cipp.app/docs/user/gettingstarted/permissions/#permissions' - } - ) | Out-Null - } - else { - $Messages.Add('Your Secure Application Model has all required permissions') | Out-Null - } - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Permissions check failed: $($_) " -Sev 'Error' - $Messages.Add("We could not connect to the API to retrieve the permissions. There might be a problem with the secure application model configuration. The returned error is: $($_.Exception.Response.StatusCode.value__ ) - $($_.Exception.Message)") | Out-Null - $Success = $false - } - - $Results = [PSCustomObject]@{ - AccessTokenDetails = $AccessTokenDetails - Messages = @($Messages) - MissingPermissions = @($MissingPermissions) - Links = @($Links) - Success = $Success - } -} - -if ($Request.query.Tenants -eq 'true') { - $Tenants = ($Request.body.tenantid).split(',') - if (!$Tenants) { $results = 'Could not load the tenants list from cache. Please run permissions check first, or visit the tenants page.' } - $results = foreach ($tenant in $Tenants) { - try { - $token = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/users/delta?$select=displayName' -tenantid $tenant - @{ - TenantName = "$($Tenant)" - Status = 'Succesfully connected' - } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message 'Tenant access check executed succesfully' -Sev 'Info' - - } - catch { - @{ - TenantName = "$($tenant)" - Status = "Failed to connect to $($_.Exception.Message)" - } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Tenant access check failed: $($_) " -Sev 'Error' - - } - - try { - $upn = 'notRequired@required.com' - $tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $tenant).Authorization -AsPlainText -Force - $credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) - $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($tenant)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ErrorAction Continue - $session = Import-PSSession $session -ea Silentlycontinue -AllowClobber -CommandName 'Get-OrganizationConfig' - $org = Get-OrganizationConfig - $null = Get-PSSession | Remove-PSSession - @{ - TenantName = "$($Tenant)" - Status = 'Succesfully connected to Exchange' - } - } - catch { - $Message = ($_ | ConvertFrom-Json).error_description - if ($Message -eq $null) { $Message = $($_.Exception.Message) } - @{ - TenantName = "$($Tenant)" - Status = "Failed to connect to Exchange: $($Message)" - } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $tenant -message "Tenant access check for Exchange failed: $($Message) " -Sev 'Error' - } - } - if (!$Tenants) { $results = 'Could not load the tenants list from cache. Please run permissions check first, or visit the tenants page.' } -} - -$body = [pscustomobject]@{'Results' = $Results } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/ExecAlertsList/function.json b/ExecAlertsList/function.json deleted file mode 100644 index 3de6affa2d01..000000000000 --- a/ExecAlertsList/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/ExecAlertsList/run.ps1 b/ExecAlertsList/run.ps1 deleted file mode 100644 index 6705cc49926f..000000000000 --- a/ExecAlertsList/run.ps1 +++ /dev/null @@ -1,42 +0,0 @@ -using namespace System.Net -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -if ($request.query.GUID) { - try { - $JSONOutput = Get-Content "Cache_AlertsCheck\$($Request.Query.GUID).json" -ErrorAction SilentlyContinue | ConvertFrom-Json - } - catch { - Write-Host "Durable Function Alert List JSON not Present Yet" - } - - if (!$JSONOutput) { - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @{ Waiting = $true } - }) - exit - } - else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $JSONOutput - }) - Remove-Item "Cache_AlertsCheck\$($Request.Query.GUID).json" -Force - exit - } -} -else { - $RunningGUID = New-Guid - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @{ GUID = $RunningGUID } - }) - $OrchRequest = [PSCustomObject]@{ - GUID = $RunningGUID - TenantID = $Request.query.tenantFilter - } - $InstanceId = Start-NewOrchestration -FunctionName 'Durable_AlertsRun' -InputObject $OrchRequest - -} \ No newline at end of file diff --git a/ExecAssignApp/function.json b/ExecAssignApp/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecAssignApp/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecAssignApp/run.ps1 b/ExecAssignApp/run.ps1 deleted file mode 100644 index 63aebbf06007..000000000000 --- a/ExecAssignApp/run.ps1 +++ /dev/null @@ -1,53 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$tenantfilter = $Request.Query.TenantFilter -$appFilter = $Request.Query.ID -$AssignTo = $Request.Query.AssignTo -$AssignBody = switch ($AssignTo) { - - 'AllUsers' { - @" -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required","settings":null}]} -"@ - } - - 'AllDevices' { - @" -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required","settings":null}]} -"@ - } - - 'Both' { - @" -{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required","settings":null},{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required","settings":null}]} -"@ - } - -} -$body = [pscustomobject]@{"Results" = "$($TenantFilter): Assigned app to $assignTo" } -try { - $GraphRequest = New-Graphpostrequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$appFilter/assign" -tenantid $TenantFilter -body $Assignbody - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($tenantfilter) -message "Assigned $($appFilter) to $assignTo" -Sev "Info" - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($tenantfilter) -message "Failed to assign app $($appFilter): $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to assign. $($_.Exception.Message)" } -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/ExecBECCheck/function.json b/ExecBECCheck/function.json deleted file mode 100644 index 3de6affa2d01..000000000000 --- a/ExecBECCheck/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/ExecBECCheck/run.ps1 b/ExecBECCheck/run.ps1 deleted file mode 100644 index 51bfcfa9f114..000000000000 --- a/ExecBECCheck/run.ps1 +++ /dev/null @@ -1,37 +0,0 @@ -using namespace System.Net -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -if ($request.query.GUID) { - $JSONOutput = Get-Content "Cache_BECCheck\$($Request.Query.GUID).json" | ConvertFrom-Json - if (!$JSONOutput) { - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @{ Waiting = $true } - }) - exit - } - else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $JSONOutput - }) - Remove-Item "Cache_BECCheck\$($Request.Query.GUID).json" -Force - exit - } -} -else { - $RunningGUID = New-Guid - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @{ GUID = $RunningGUID } - }) - $OrchRequest = [PSCustomObject]@{ - GUID = $RunningGUID - TenantFilter = $request.query.tenantfilter - UserID = $request.query.userid - } - $InstanceId = Start-NewOrchestration -FunctionName 'Durable_BECRun' -InputObject $OrchRequest - -} \ No newline at end of file diff --git a/ExecBECRemediate/function.json b/ExecBECRemediate/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecBECRemediate/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecBECRemediate/run.ps1 b/ExecBECRemediate/run.ps1 deleted file mode 100644 index 521e56023261..000000000000 --- a/ExecBECRemediate/run.ps1 +++ /dev/null @@ -1,42 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -Write-Host "PowerShell HTTP trigger function processed a request." - -$TenantFilter = $request.body.tenantfilter -$SuspectUser = $($request.body.userid) -Write-Host $TenantFilter -Write-Host $SuspectUser -try { - $password = -join ('abcdefghkmnrstuvwxyzABCDEFGHKLMNPRSTUVWXYZ23456789$%&*#'.ToCharArray() | Get-Random -Count 12) - $mustChange = 'true' - $passwordProfile = @" -{"passwordProfile": { "forceChangePasswordNextSignIn": $mustChange, "password": "$password" }}' -"@ - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$SuspectUser" -tenantid $TenantFilter -type PATCH -body $passwordProfile -verbose - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$SuspectUser" -tenantid $TenantFilter -type PATCH -body '{"accountEnabled":"false"}' -verbose - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$SuspectUser/revokeSignInSessions" -tenantid $TenantFilter -type POST -body '{}' -verbose - $upn = "notRequired@required.com" - $tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $tenantfilter).Authorization -AsPlainText -Force - $credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) - $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($tenantfilter)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ErrorAction Continue - Import-PSSession $session -ea Silentlycontinue -AllowClobber -CommandName "Get-inboxRule", "Disable-InboxRule" - Get-InboxRule -mailbox $SuspectUser | Disable-InboxRule - Get-PSSession | Remove-PSSession - $results = [pscustomobject]@{"Results" = "Executed Remediation for $SuspectUser and tenant $($TenantFilter). The temporary password is $password and must be changed at next logon." } - -} -catch { - #Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($tenantfilter) -message "Failed to assign app $($appFilter): $($_.Exception.Message)" -Sev "Error" - $results = [pscustomobject]@{"Results" = "Failed to execute remediation. $($_.Exception.Message)" } -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = ($Results) - }) diff --git a/ExecBackendURLs/function.json b/ExecBackendURLs/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecBackendURLs/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecBackendURLs/run.ps1 b/ExecBackendURLs/run.ps1 deleted file mode 100644 index d1cfe4d94573..000000000000 --- a/ExecBackendURLs/run.ps1 +++ /dev/null @@ -1,31 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$Subscription = ($ENV:WEBSITE_OWNER_NAME).split('+') | Select-Object -First 1 -$SWAName = $ENV:Website_SITE_NAME -replace "cipp", "CIPP-SWA-" -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -$results = [PSCustomObject]@{ - ResourceGroup = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$ENV:Website_Resource_Group/overview" - KeyVault = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$ENV:Website_Resource_Group/providers/Microsoft.KeyVault/vaults/$($ENV:WEBSITE_SITE_NAME)/secrets" - FunctionApp = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$ENV:Website_Resource_Group/providers/Microsoft.Web/sites/$($ENV:WEBSITE_SITE_NAME)/appServices" - FunctionConfig = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$ENV:Website_Resource_Group/providers/Microsoft.Web/sites/$($ENV:WEBSITE_SITE_NAME)/configuration" - FunctionDeployment = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$ENV:Website_Resource_Group/providers/Microsoft.Web/sites/$($ENV:WEBSITE_SITE_NAME)/vstscd" - SWADomains = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$ENV:Website_Resource_Group/providers/Microsoft.Web/staticSites/$SWAName/customDomains" - SWARoles = "https://portal.azure.com/#@Go/resource/subscriptions/$Subscription/resourceGroups/$ENV:Website_Resource_Group/providers/Microsoft.Web/staticSites/$SWAName/Roles" -} - - -$body = @{Results = $Results } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [httpstatusCode]::OK - Body = $body - }) diff --git a/ExecConverttoSharedMailbox/function.json b/ExecConverttoSharedMailbox/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecConverttoSharedMailbox/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecConverttoSharedMailbox/run.ps1 b/ExecConverttoSharedMailbox/run.ps1 deleted file mode 100644 index 59ab509bc3a6..000000000000 --- a/ExecConverttoSharedMailbox/run.ps1 +++ /dev/null @@ -1,38 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - - -# Interact with query parameters or the body of the request. -Try { - $MailboxType = if ($request.query.ConvertToUser -eq 'true') { "Regular" } else { "Shared" } - $upn = "notrequired@notrequired.com" - $customerId = $Request.Query.TenantFilter - Write-Host "$customerId" - $tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $customerid).Authorization -AsPlainText -Force - $credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) - $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($customerId)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ea Stop - Import-PSSession $session -ea Stop -AllowClobber -CommandName "Set-Mailbox" - $Mailbox = Set-mailbox -identity $request.query.id -type $($MailboxType) -ea Stop - Remove-PSSession $session - $Results = [pscustomobject]@{"Results" = "Succesfully completed task." } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($customerId) -message "Converted mailbox $($request.query.id)" -Sev "Info" -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($customerId) -message "Convert to shared mailbox failed: $($_.Exception.Message)" -Sev "Error" - $Results = [pscustomobject]@{"Results" = "Failed. $_.Exception.Message" } - Remove-PSSession $session -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) diff --git a/ExecCreateTAP/function.json b/ExecCreateTAP/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecCreateTAP/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecCreateTAP/run.ps1 b/ExecCreateTAP/run.ps1 deleted file mode 100644 index f545f0a1deb4..000000000000 --- a/ExecCreateTAP/run.ps1 +++ /dev/null @@ -1,26 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$Body = "{}" -try { - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($Request.query.ID)/authentication/temporaryAccessPassMethods" -tenantid $TenantFilter -type POST -body $Body -verbose - $Results = [pscustomobject]@{"Results" = "The TAP for this user is $($GraphRequest.temporaryAccessPass) - This TAP is usable for the next $($GraphRequest.LifetimeInMinutes) minutes" } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Created temporary access pass for user $($Request.Query.id)" -Sev "Info" - -} -catch { - $Results = [pscustomobject]@{"Results" = "Failed. $($_.Exception.Message)" } -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) \ No newline at end of file diff --git a/ExecDecodeIntuneData/function.json b/ExecDecodeIntuneData/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecDecodeIntuneData/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecDecodeIntuneData/run.ps1 b/ExecDecodeIntuneData/run.ps1 deleted file mode 100644 index ae018090d8b6..000000000000 --- a/ExecDecodeIntuneData/run.ps1 +++ /dev/null @@ -1,27 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -$DefinitionsList = ($request.body.RawJSON | ConvertFrom-Json).added -$Tenant = ($Request.body | Select-Object Select_*).psobject.properties.value | Select-Object -First 1 -$Results = foreach ($DefinitionLink in $DefinitionsList) { - try { - $uri = $DefinitionLink.'definition@odata.bind' - $Data = New-GraphGetRequest -uri $uri -tenantid $Tenant - [PSCustomObject]@{ - Name = $data.displayName - value = $DefinitionLink.enabled - } - } - catch { - "Could not retrieve definition for $DefinitionLink" - } -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) \ No newline at end of file diff --git a/ExecDisableUser/function.json b/ExecDisableUser/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecDisableUser/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecDisableUser/run.ps1 b/ExecDisableUser/run.ps1 deleted file mode 100644 index f0d7a1439cce..000000000000 --- a/ExecDisableUser/run.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$Body = if ($Request.Query.Enable) { '{"accountEnabled":"true"}' } else { '{"accountEnabled":"false"}' } -try { - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.query.ID)" -tenantid $TenantFilter -type PATCH -body $Body -verbose - $Results = [pscustomobject]@{"Results" = "Successfully completed request." } -} -catch { - $Results = [pscustomobject]@{"Results" = "Failed. $($_.Exception.Message)" } -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) \ No newline at end of file diff --git a/ExecDnsConfig/function.json b/ExecDnsConfig/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecDnsConfig/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecDnsConfig/run.ps1 b/ExecDnsConfig/run.ps1 deleted file mode 100644 index 739073d6501f..000000000000 --- a/ExecDnsConfig/run.ps1 +++ /dev/null @@ -1,81 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' - -# List of supported resolvers -$ValidResolvers = @( - 'Google' - 'Cloudflare' -) - -$ConfigPath = 'Config/DnsConfig.json' - -# Write to the Azure Functions log stream. -Write-Host 'PowerShell HTTP trigger function processed a request.' - -$StatusCode = [HttpStatusCode]::OK -try { - $Config = '' - if (Test-Path $ConfigPath) { - try { - # Try to parse config file and catch exceptions - $Config = Get-Content -Path $ConfigPath | ConvertFrom-Json - } - catch {} - } - if ($Config -eq '') { - New-Item 'Config' -ItemType Directory -ErrorAction SilentlyContinue | Out-Null - $Config = [PSCustomObject]@{ - Resolver = 'Google' - } - $Config | ConvertTo-Json | Set-Content $ConfigPath - } - - $updated = $false - - # Interact with query parameters or the body of the request. - if ($Request.Query.Action -eq 'SetConfig') { - if ($Request.Query.Resolver) { - $Resolver = $Request.Query.Resolver - if ($ValidResolvers -contains $Resolver) { - try { - $Config.Resolver = $Resolver - } - catch { - $Config = [PSCustomObject]@{ - Resolver = $Resolver - } - } - $updated = $true - } - } - if ($updated) { - $Config | ConvertTo-Json | Set-Content $ConfigPath - Log-Request -API $APINAME -tenant 'Global' -user $request.headers.'x-ms-client-principal' -message 'DNS configuration updated' -Sev 'Info' - $body = [pscustomobject]@{'Results' = 'Success: DNS configuration updated.' } - } - else { - $StatusCode = [HttpStatusCode]::BadRequest - $body = [pscustomobject]@{'Results' = 'Error: No DNS resolver provided.' } - } - } - elseif ($Request.Query.Action -eq 'GetConfig') { - $body = $Config - Log-Request -API $APINAME -tenant 'Global' -user $request.headers.'x-ms-client-principal' -message 'Retrieved DNS configuration' -Sev 'Info' - } -} -catch { - Log-Request -API $APINAME -tenant $($name) -user $request.headers.'x-ms-client-principal' -message "DNS Config API failed. $($_.Exception.Message)" -Sev 'Error' - $body = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } - $StatusCode = [HttpStatusCode]::BadRequest -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $body - }) diff --git a/ExecEditCalendarPermissions/function.json b/ExecEditCalendarPermissions/function.json deleted file mode 100644 index bec6849b58ab..000000000000 --- a/ExecEditCalendarPermissions/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecEditCalendarPermissions/run.ps1 b/ExecEditCalendarPermissions/run.ps1 deleted file mode 100644 index 173c7c288515..000000000000 --- a/ExecEditCalendarPermissions/run.ps1 +++ /dev/null @@ -1,45 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$UserID = ($request.query.UserID) -$UserToGetPermissions = $Request.query.UserToGetPermissions -$Tenantfilter = $request.Query.tenantfilter -$Permissions = @($Request.query.permissions) -$folderName = $Request.query.folderName - - -$CalParam = [PSCustomObject]@{ - Identity = "$($UserID):\$folderName" - AccessRights = @($Permissions) - User = $UserToGetPermissions -} -try { - if ($Request.query.removeaccess) { - $GraphRequest = New-ExoRequest -tenantid $Tenantfilter -cmdlet "Remove-MailboxFolderPermission" -cmdParams @{Identity = "$($UserID):\$folderName"; User = $Request.query.RemoveAccess } - $Result = "Successfully removed access for $($Request.query.RemoveAccess) from calender $($CalParam.Identity)" - } - else { - try { - $GraphRequest = New-ExoRequest -tenantid $Tenantfilter -cmdlet "Set-MailboxFolderPermission" -cmdParams $CalParam - } - catch { - $GraphRequest = New-ExoRequest -tenantid $Tenantfilter -cmdlet "Add-MailboxFolderPermission" -cmdParams $CalParam - } - Log-request -API 'List Calendar Permissions' -tenant $tenantfilter -message "Calendar permissions listed for $($tenantfilter)" -sev Debug - - $Result = "Succesfully set permissions on folder $($CalParam.Identity). The user $UserToGetPermissions now has $Permissions permissions on this folder." - } -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception - $Result = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @{Results = $Result } - }) diff --git a/ExecEditMailboxPermissions/function.json b/ExecEditMailboxPermissions/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecEditMailboxPermissions/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecEditMailboxPermissions/run.ps1 b/ExecEditMailboxPermissions/run.ps1 deleted file mode 100644 index ed4c67327ec8..000000000000 --- a/ExecEditMailboxPermissions/run.ps1 +++ /dev/null @@ -1,70 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$Username = $request.body.userID -$Tenantfilter = $request.body.tenantfilter -if ($username -eq $null) { exit } -$userid = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($username)" -tenantid $Tenantfilter).id -$Results = [System.Collections.ArrayList]@() -$upn = "notrequired@notrequired.com" -$tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $tenantFilter).Authorization -AsPlainText -Force -$credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) -$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($tenantFilter)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ea Stop - - -$RemoveFullAccess = ($Request.body.RemoveFullAccess).Split([Environment]::NewLine) -foreach ($RemoveUser in $RemoveFullAccess | Where-Object { $_ -ne "" } ) { - try { - $ImportedSession = Import-PSSession $session -ea Stop -AllowClobber -CommandName "Remove-mailboxpermission" - $MailboxPerms = Remove-mailboxpermission -identity $userid -user $RemoveUser -AccessRights FullAccess -erroraction stop -confirm:$false - $results.add("Removed $($removeuser) from $($username) Shared Mailbox permissions") - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed $($_) from $($username) Shared Mailbox permission" -Sev "Info" -tenant $TenantFilter - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not remove mailbox permissions for $($removeuser) on $($username)" -Sev "Error" -tenant $TenantFilter - $results.add("Could not remove shared mailbox permissions for $($username). Error: $($_.Exception.Message)") - } -} -$AddFullAccess = ($Request.body.AddFullAccess).Split([Environment]::NewLine) - -foreach ($UserAutomap in $AddFullAccess | Where-Object { $_ -ne "" } ) { - try { - $ImportedSession = Import-PSSession $session -ea Stop -AllowClobber -CommandName "Add-mailboxPermission" - $MailboxPerms = Add-MailboxPermission -identity $userid -user $UserAutomap -automapping $true -AccessRights FullAccess -InheritanceType All -erroraction stop -confirm:$false - $results.add( "added $($Request.body.AccessAutomap) to $($username) Mailbox with automapping") - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Gave full permissions to $($request.body.AccessAutomap) on $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not add mailbox permissions for $($request.body.AccessAutomap) on $($username)" -Sev "Error" -tenant $TenantFilter - $results.add( "Could not add shared mailbox permissions for $($username). Error: $($_.Exception.Message)") - } -} -$AddFullAccessNoAutoMap = ($Request.body.AddFullAccessNoAutoMap).Split([Environment]::NewLine) - -foreach ($UserNoAutomap in $AddFullAccessNoAutoMap | Where-Object { $_ -ne "" } ) { - try { - $ImportedSession = Import-PSSession $session -ea Stop -AllowClobber -CommandName "Add-mailboxPermission" - $MailboxPerms = Add-MailboxPermission -identity $userid -user $UserNoAutomap -automapping $false -AccessRights FullAccess -InheritanceType All -erroraction stop -confirm:$false - $results.add( "added $($Request.body.AccessAutomap) to $($username) Mailbox without automapping") - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Gave full permissions to $($request.body.AccessAutomap) on $($username)" -Sev "Info" -tenant $TenantFilter - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not add mailbox permissions for $($request.body.AccessAutomap) on $($username)" -Sev "Error" -tenant $TenantFilter - $results.add( "Could not add shared mailbox permissions for $($username). Error: $($_.Exception.Message)") - } -} - -Get-PSSession | Remove-PSSession -$body = [pscustomobject]@{"Results" = $($results -join '
') } - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) diff --git a/ExecExcludeTenant/function.json b/ExecExcludeTenant/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecExcludeTenant/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecExcludeTenant/run.ps1 b/ExecExcludeTenant/run.ps1 deleted file mode 100644 index 184b01445d87..000000000000 --- a/ExecExcludeTenant/run.ps1 +++ /dev/null @@ -1,53 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -$user = $request.headers.'x-ms-client-principal' - -$username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails -$date = (Get-Date).tostring('dd-MM-yyyy') -try { - if ($Request.Query.List) { - $ExcludedTenants = [System.IO.File]::ReadAllLines("ExcludedTenants") | ConvertFrom-Csv -Delimiter "|" -Header "Name", "User", "Date" | Where-Object { $_.name -ne "" } - Log-Request -API $APINAME -user $request.headers.'x-ms-client-principal' -message "got excluded tenants list" -Sev "Info" - $body = $ExcludedTenants - } - # Interact with query parameters or the body of the request. - $name = $Request.Query.TenantFilter - if ($Request.Query.AddExclusion) { - Add-Content -Value "$($name)|$($username)|$($date)" -Path "ExcludedTenants" - Remove-CIPPCache - Log-Request -API $APINAME -tenant $($name) -user $request.headers.'x-ms-client-principal' -message "Added exclusion for customer $($name)" -Sev "Info" - $body = [pscustomobject]@{"Results" = "Success. We've added $name to the excluded tenants." } - } - - if ($Request.Query.RemoveExclusion) { - $Content = [System.IO.File]::ReadAllLines("ExcludedTenants") - $Content = $Content -replace $name, '' - $Content | Set-Content -Path "ExcludedTenants" - Remove-CIPPCache - Log-Request -API $APINAME -tenant $($name) -user $request.headers.'x-ms-client-principal' -message "Removed exclusion for customer $($name)" -Sev "Info" - $body = [pscustomobject]@{"Results" = "Success. We've removed $name from the excluded tenants." } - } - - -} -catch { - Log-Request -API $APINAME -tenant $($name) -user $request.headers.'x-ms-client-principal' -message "Exclusion API failed. $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed. $($_.Exception.Message)" } -} - - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/ExecGraphRequest/function.json b/ExecGraphRequest/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecGraphRequest/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecGraphRequest/run.ps1 b/ExecGraphRequest/run.ps1 deleted file mode 100644 index 9f45f8298eb1..000000000000 --- a/ExecGraphRequest/run.ps1 +++ /dev/null @@ -1,105 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -Function ConvertTo-FlatObject { - # https://evotec.xyz/powershell-converting-advanced-object-to-flat-object/ - MIT License - [CmdletBinding()] - Param ( - [Parameter(ValueFromPipeLine)][Object[]]$Objects, - [String]$Separator = ".", - [ValidateSet("", 0, 1)]$Base = 1, - [int]$Depth = 5, - [Parameter(DontShow)][String[]]$Path, - [Parameter(DontShow)][System.Collections.IDictionary] $OutputObject - ) - Begin { - $InputObjects = [System.Collections.Generic.List[Object]]::new() - } - Process { - foreach ($O in $Objects) { - $InputObjects.Add($O) - } - } - End { - If ($PSBoundParameters.ContainsKey("OutputObject")) { - $Object = $InputObjects[0] - $Iterate = [ordered] @{} - if ($null -eq $Object) { - #Write-Verbose -Message "ConvertTo-FlatObject - Object is null" - } - elseif ($Object.GetType().Name -in 'String', 'DateTime', 'TimeSpan', 'Version', 'Enum') { - $Object = $Object.ToString() - } - elseif ($Depth) { - $Depth-- - If ($Object -is [System.Collections.IDictionary]) { - $Iterate = $Object - } - elseif ($Object -is [Array] -or $Object -is [System.Collections.IEnumerable]) { - $i = $Base - foreach ($Item in $Object.GetEnumerator()) { - $Iterate["$i"] = $Item - $i += 1 - } - } - else { - foreach ($Prop in $Object.PSObject.Properties) { - if ($Prop.IsGettable) { - $Iterate["$($Prop.Name)"] = $Object.$($Prop.Name) - } - } - } - } - If ($Iterate.Keys.Count) { - foreach ($Key in $Iterate.Keys) { - ConvertTo-FlatObject -Objects @(, $Iterate["$Key"]) -Separator $Separator -Base $Base -Depth $Depth -Path ($Path + $Key) -OutputObject $OutputObject - } - } - else { - $Property = $Path -Join $Separator - $OutputObject[$Property] = $Object - } - } - elseif ($InputObjects.Count -gt 0) { - foreach ($ItemObject in $InputObjects) { - $OutputObject = [ordered]@{} - ConvertTo-FlatObject -Objects @(, $ItemObject) -Separator $Separator -Base $Base -Depth $Depth -Path $Path -OutputObject $OutputObject - [PSCustomObject] $OutputObject - } - } - } -} -$TenantFilter = $Request.Query.TenantFilter -try { - if ($TenantFilter -ne "AllTenants") { - $RawGraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/$($Request.Query.Endpoint)" -tenantid $TenantFilter - } - else { - $RawGraphRequest = Get-tenants | ForEach-Object { - $DefaultDomainName = $_.defaultdomainname - $TenantName = $_.displayName - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/$($Request.Query.Endpoint)" -tenantid $DefaultDomainName } | Select-Object @{ - label = 'Tenant' - expression = { $TenantName } - }, * - - } - $GraphRequest = $RawGraphRequest | Where-Object -Property '@odata.context' -EQ $null | ConvertTo-FlatObject - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ExecMaintenanceScripts/Scripts/Add-CippUser.ps1 b/ExecMaintenanceScripts/Scripts/Add-CippUser.ps1 new file mode 100644 index 000000000000..d04ad2358c9d --- /dev/null +++ b/ExecMaintenanceScripts/Scripts/Add-CippUser.ps1 @@ -0,0 +1,67 @@ +#requires -Version 7.2 + +[CmdletBinding(DefaultParameterSetName = 'interactive')] +Param( + [Parameter(Mandatory = $true, ParameterSetName = 'noninteractive')] + [ValidateSet('readonly', 'editor', 'admin')] + $Role, + [Parameter(Mandatory = $true, ParameterSetName = 'noninteractive')] + $SelectedUsers, + [Parameter(ParameterSetName = 'noninteractive')] + [Parameter(ParameterSetName = 'interactive')] + $ExpirationHours = 1 +) + +$ResourceGroup = '##RESOURCEGROUP##' +$Subscription = '##SUBSCRIPTION##' + +if (!(Get-Module -ListAvailable Microsoft.PowerShell.ConsoleGuiTools)) { + Install-Module Microsoft.PowerShell.ConsoleGuiTools -Force +} + +$Context = Get-AzContext +if (!$Context) { + Write-Host "`n- Connecting to Azure" + $Context = Connect-AzAccount -Subscription $Subscription +} +Write-Host "Connected to $($Context.Account)" + +$swa = Get-AzStaticWebApp -ResourceGroupName $ResourceGroup +$Domain = $swa.CustomDomain | Select-Object -First 1 +if ($Domain -eq $null) { $Domain = $swa.DefaultHostname } +Write-Host "CIPP SWA - $($swa.name)" + +if (!$Role) { + $Role = @('readonly', 'editor', 'admin') | Out-ConsoleGridView -OutputMode Single -Title 'Select CIPP Role' +} + +$CurrentUsers = Get-AzStaticWebAppUser -Name $swa.name -ResourceGroupName $ResourceGroup -AuthProvider all | Select-Object DisplayName, Role + +$AllUsers = Get-AzADUser -Filter "userType eq 'Member' and accountEnabled eq true" | Select-Object DisplayName, UserPrincipalName + + +$SelectedUsers = $AllUsers | Where-Object { $CurrentUsers.DisplayName -notcontains $_.UserPrincipalName } | Sort-Object -Property DisplayName | Out-ConsoleGridView -Title "Select users for role '$Role'" +Write-Host "Selected users: $($SelectedUsers.UserPrincipalName -join ', ')" + +Write-Host 'Generating invite links...' +$InviteList = foreach ($User in $SelectedUsers) { + $UserInvite = @{ + InputObject = $swa + Domain = $Domain + Provider = 'aad' + UserDetail = $User.UserPrincipalName + Role = $Role + NumHoursToExpiration = $ExpirationHours + } + $Invite = New-AzStaticWebAppUserRoleInvitationLink @UserInvite + + [PSCustomObject]@{ + User = $User.UserPrincipalName + Role = $Role + Link = $Invite.InvitationUrl + Expires = $Invite.ExpiresOn + } +} +$InviteList +$InviteList | Export-Csv -Path '.\cipp-invites.csv' -Append +Write-Host 'Invitations exported to .\cipp-invites.csv' diff --git a/ExecMaintenanceScripts/Scripts/Enable-FunctionAppGitHubActions.ps1 b/ExecMaintenanceScripts/Scripts/Enable-FunctionAppGitHubActions.ps1 new file mode 100644 index 000000000000..a47273afad9e --- /dev/null +++ b/ExecMaintenanceScripts/Scripts/Enable-FunctionAppGitHubActions.ps1 @@ -0,0 +1,38 @@ +$ResourceGroup = '##RESOURCEGROUP##' +$Subscription = '##SUBSCRIPTION##' +$FunctionName = '##FUNCTIONAPP##' + +$Logo = @' + _____ _____ _____ _____ + / ____|_ _| __ \| __ \ + | | | | | |__) | |__) | + | | | | | ___/| ___/ + | |____ _| |_| | | | + \_____|_____|_| |_| + +'@ +Write-Host $Logo + +Write-Host '- Connecting to Azure' +Connect-AzAccount -Identity -Subscription $Subscription | Out-Null + +Write-Host 'Checking deployment settings' +$DeploymentSettings = & az functionapp deployment source show --resource-group $ResourceGroup --name $FunctionName | ConvertFrom-Json + +if (!($DeploymentSettings.isGitHubAction)) { + Write-Host 'Creating GitHub action, follow the prompts to log into GitHub' + $GitHubRepo = ([uri]$DeploymentSettings.repoUrl).LocalPath.TrimStart('/') + az functionapp deployment github-actions add --repo $GitHubRepo --branch $DeploymentSettings.branch --resource-group $ResourceGroup --name $FunctionName --login-with-github +} + +$DeploymentSettings = & az functionapp deployment source show --resource-group $ResourceGroup --name $FunctionName | ConvertFrom-Json +if ($DeploymentSettings.isGitHubAction) { + $cipp = Get-AzFunctionApp -ResourceGroupName $ResourceGroup + $cipp.ApplicationSettings['WEBSITE_RUN_FROM_PACKAGE'] = 1 + $cipp | Update-AzFunctionAppSetting -AppSetting $cipp.ApplicationSettings + + Write-Host "GitHub action created and project set to run from package, navigate to $($DeploymentSettings.repoUrl)/actions and run the 'Build and deploy Powershell project to Azure Function App'" +} +else { + Write-Host 'GitHub action not set up for deployment, try running the script again.' +} diff --git a/ExecMaintenanceScripts/Scripts/Grant-CippConditionalAccess.ps1 b/ExecMaintenanceScripts/Scripts/Grant-CippConditionalAccess.ps1 new file mode 100644 index 000000000000..b4460c2994d4 --- /dev/null +++ b/ExecMaintenanceScripts/Scripts/Grant-CippConditionalAccess.ps1 @@ -0,0 +1,122 @@ +if (!(Get-Module -ListAvailable Microsoft.Graph)) { + Install-Module Microsoft.Graph -Confirm:$false -Force -AllowPrerelease +} + +$ResourceGroup = '##RESOURCEGROUP##' +$Subscription = '##SUBSCRIPTION##' +$FunctionName = '##FUNCTIONAPP##' +$TokenIP = '##TOKENIP##' + +$Logo = @' + _____ _____ _____ _____ + / ____|_ _| __ \| __ \ + | | | | | |__) | |__) | + | | | | | ___/| ___/ + | |____ _| |_| | | | + \_____|_____|_| |_| + +'@ +Write-Host $Logo + +Write-Host '=== Conditional Access Management ===' +if (Test-Path -Path '.\cipp-function-namedLocation.json') { + $UseCache = Read-Host -Prompt 'Used cached Named Location for CIPP? (Y/n)' + if ($UseCache -ne 'n') { + $ipNamedLocation = Get-Content -Path '.\cipp-function-namedLocation.json' | ConvertFrom-Json -AsHashtable + } +} + +if (!($ipNamedLocation)) { + Write-Host "`n- Connecting to Azure" + Connect-AzAccount -Identity -Subscription $Subscription | Out-Null + $Function = Get-AzFunctionApp -ResourceGroupName $ResourceGroup -Name $FunctionName + + Write-Host 'Getting Function App IP addresses' + # Get possible IPs from function app + $PossibleIpAddresses = (($Function | Select-Object -ExpandProperty PossibleOutboundIpAddress) + ',' + $TokenIP) -split ',' + + # Convert possible IP addresses to ipv4CidrRange list + $ipRanges = foreach ($Ip in $PossibleIpAddresses) { + $Cidr = '{0}/32' -f $Ip + @{ + '@odata.type' = '#microsoft.graph.iPv4CidrRange' + 'cidrAddress' = $Cidr + } + } + + # Return ipNamedLocation object + $ipNamedLocation = @{ + '@odata.type' = '#microsoft.graph.ipNamedLocation' + displayName = ('CyberDrain Improved Partner Portal - {0}' -f $FunctionName) + isTrusted = $true + ipRanges = $ipRanges + } + + $ipNamedLocation | ConvertTo-Json -Depth 10 | Out-File -Path '.\cipp-function-namedLocation.json' + Write-Host 'Named location policy created and saved to .\cipp-function-namedLocation.json' +} + +Write-Host "`n- Connecting to Customer Graph API, ensure you log in from a system that is allowed through the Conditional Access policy" +Select-MgProfile -Name 'beta' +$GraphOptions = @{ + Scopes = @('Policy.Read.All', 'Policy.ReadWrite.ConditionalAccess', 'Application.Read.All') + UseDeviceAuthentication = $true +} + +do { + Connect-MgGraph @GraphOptions + $Context = Get-MgContext + if ($Context) { + Write-Host "Connected as $($Context.Account) ($($Context.TenantId))" + $Switch = Read-Host -Prompt 'Switch Accounts? (y/N)' + if ($Switch -eq 'y') { + Disconnect-MgGraph | Out-Null + } + } +} +while (!(Get-MgContext)) + +Write-Host "`n- Getting existing policies" +$Policies = Get-MgIdentityConditionalAccessPolicy +Write-Host($Policies.displayName -join "`n") + +Write-Host "`n- Named Location Check" +$NamedLocations = Get-MgIdentityConditionalAccessNamedLocation +if ($NamedLocations.displayName -notcontains $ipNamedLocation.displayName) { + Write-Host "Creating Named Location: '$($ipNamedLocation.displayName)'" + $NamedLocation = New-MgIdentityConditionalAccessNamedLocation -BodyParameter $ipNamedLocation +} +else { + $NamedLocation = $NamedLocations | Where-Object { $_.displayName -eq $ipNamedLocation.displayName } + Write-Host "Named Location exists: '$($NamedLocation.displayName)'" + Update-MgIdentityConditionalAccessNamedLocation -NamedLocationId $NamedLocation.Id -BodyParameter $ipNamedLocation +} + +Write-Host "`n- Conditional access policy check" +$ConfigPolicy = Read-Host -Prompt 'Exclude CIPP from existing CA policies? (Y/n)' +if ($ConfigPolicy -ne 'n') { + foreach ($Policy in $Policies) { + Write-Host "- Policy: $($Policy.displayName)" + $Conditions = $Policy.Conditions + $ExcludeLocations = $Conditions.Locations.ExcludeLocations + $IncludeLocations = $Conditions.Locations.IncludeLocations + if ($ExcludeLocations -eq 'AllTrusted' -or $ExcludeLocations -contains $NamedLocation.Id) { + Write-Host 'Named location already excluded' + } + elseif ($IncludeLocations -eq 'AllTrusted' -or $IncludeLocations -contains $NamedLocation.Id) { + Write-Host 'Named location is already included' + } + else { + Write-Host 'Adding exclusion for named location' + $Locations = [system.collections.generic.list[string]]::new() + foreach ($Location in $ExcludeLocations) { + $Locations.Add($Location) | Out-Null + } + $Locations.Add($NamedLocation.Id) | Out-Null + $Conditions.Locations.ExcludeLocations = [string[]]$Locations + if (!($Conditions.Locations.IncludeLocations)) { $Conditions.Locations.IncludeLocations = 'All' } + Update-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $Policy.Id -Conditions $Conditions + } + } + Write-Host "`nDone." +} diff --git a/ExecNotificationConfig/function.json b/ExecNotificationConfig/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecNotificationConfig/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecNotificationConfig/run.ps1 b/ExecNotificationConfig/run.ps1 deleted file mode 100644 index ebabd3da29be..000000000000 --- a/ExecNotificationConfig/run.ps1 +++ /dev/null @@ -1,28 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -$results = try { - $Request.body | ConvertTo-Json | Set-Content ".\Config\Config_Notifications.Json" - Set-Content '.\Cache_Scheduler\_DefaultNotifications.json' -Value '{ "tenant": "any","Type": "CIPPNotifications" }' - "succesfully set the configuration" -} -catch { - "Failed to set configuration" -} - - -$body = [pscustomobject]@{"Results" = $Results } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/ExecOffboardUser/function.json b/ExecOffboardUser/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecOffboardUser/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecOffboardUser/run.ps1 b/ExecOffboardUser/run.ps1 deleted file mode 100644 index ff4663fa1da1..000000000000 --- a/ExecOffboardUser/run.ps1 +++ /dev/null @@ -1,218 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$Username = $request.body.user -$Tenantfilter = $request.body.tenantfilter -if ($username -eq $null) { exit } -$userid = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($username)" -tenantid $Tenantfilter).id - -$ConvertTable = Import-Csv Conversiontable.csv | Sort-Object -Property 'guid' -Unique -$upn = "notrequired@notrequired.com" -$tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $tenantFilter).Authorization -AsPlainText -Force -$credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) -$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($tenantFilter)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ea Stop - - -Write-Host ($request.body | ConvertTo-Json) -$results = switch ($request.body) { - { $_.ResetPass -eq 'true' } { - try { - $password = -join ('abcdefghkmnrstuvwxyzABCDEFGHKLMNPRSTUVWXYZ23456789$%&*#'.ToCharArray() | Get-Random -Count 12) - $passwordProfile = @" - {"passwordProfile": { "forceChangePasswordNextSignIn": true, "password": "$password" }}' -"@ - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($userid)" -tenantid $TenantFilter -type PATCH -body $passwordProfile -verbose - "The new password is $password" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Reset the password for $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not reset password for $($username)" -Sev "Error" -tenant $TenantFilter - - "Could not reset password for $($username). Error: $($_.Exception.Message)" - } - } - { $_.RemoveGroups -eq 'true' } { - (New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/GetMemberGroups" -tenantid $tenantFilter -type POST -body '{"securityEnabledOnly": false}').value | ForEach-Object { - $group = $_ - try { - $RemoveRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$_/members/$($userid)/`$ref" -tenantid $tenantFilter -type DELETE -body '' -Verbose - $Groupname = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$_" -tenantid $tenantFilter).displayName - "Succesfully removed user from group $Groupname" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed groups for $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not remove $($username) from group $group" -Sev "Error" -tenant $TenantFilter - - "Could not remove user from group $group" - } - - } - } - - { $_."HideFromGAL" -eq 'true' } { - try { - $HideRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($userid)" -tenantid $tenantFilter -type PATCH -body '{"showInAddressList": false}' -verbose - "Hidden from address list" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Hid $($username) from address list" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not hide $($username) from address list" -Sev "Error" -tenant $TenantFilter - - "Could not hide $($username) from address list. Error: $($_.Exception.Message)" - } - } - { $_."DisableSignIn" -eq 'true' } { - try { - $DisableUser = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($userid)" -tenantid $TenantFilter -type PATCH -body '{"accountEnabled":false}' -verbose - "Disabled user account for $username" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Disabled $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not disable sign in for $($username)" -Sev "Error" -tenant $TenantFilter - - "Could not disable $($username). Error: $($_.Exception.Message)" - } - - } - { $_."ConvertToShared" -eq 'true' } { - try { - $ImportedSession = Import-PSSession $session -ea Stop -AllowClobber -CommandName "Set-Mailbox" - $Mailbox = Set-mailbox -identity $userid -type Shared -ea Stop - "Converted $($username) to Shared Mailbox" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Converted $($username) to a shared mailbox" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not convert $username to shared mailbox" -Sev "Error" -tenant $TenantFilter - "Could not convert $($username) to a shared mailbox. Error: $($_.Exception.Message)" - } - } - { $_."OnedriveAccess" -ne "" } { - try { - $UserSharepoint = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/drive" -AsApp $true -tenantid $tenantFilter).weburl -replace "/Documents" - $GainAccessJson = '{"SecondaryContact":"' + $request.body.OnedriveAccess + '","IsCurrentUserPersonalSiteAdmin":false,"IsDelegatedAdmin":true,"UserPersonalSiteUrl":"' + $UserSharepoint + '"}' - $uri = "https://login.microsoftonline.com/$($Tenant)/oauth2/token" - $body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $OwnershipOnedrive = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://admin.microsoft.com/admin/api/users/setSecondaryOwner' -Body $GainAccessJson -Method POST -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - "Users Onedrive url is $UserSharepoint. Access has been given to $($request.body.onedriveaccess)" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Gave $($Request.body.onedriveaccess) access to $($username) onedrive" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not add new owner to Onedrive $($request.body.AccessAutomap) on $($username)" -Sev "Error" -tenant $TenantFilter - - "Could not add owner to Onedrive for $($username). Error: $($_.Exception.Message)" - } - } - { $_."AccessNoAutomap" -ne "" } { - try { - $ImportedSession = Import-PSSession $session -ea Stop -AllowClobber -CommandName "Add-mailboxPermission" - $MailboxPerms = Add-MailboxPermission -identity $userid -user $Request.body.AccessNoAutomap -automapping $false -AccessRights FullAccess -InheritanceType All - "added $($Request.body.AccessNoAutomap) to $($username) Shared Mailbox without automapping" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Gave full permissions to $($request.body.AccessNoAutomap) on $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not add mailbox permissions for $($request.body.AccessAutomap) on $($username)" -Sev "Error" -tenant $TenantFilter - - "Could not add shared mailbox permissions for $($username). Error: $($_.Exception.Message)" - } - } - { $_."AccessAutomap" -ne "" } { - try { - $ImportedSession = Import-PSSession $session -ea Stop -AllowClobber -CommandName "Add-mailboxPermission" - $MailboxPerms = Add-MailboxPermission -identity $userid -user $Request.body.AccessAutomap -automapping $true -AccessRights FullAccess -InheritanceType All - "added $($Request.body.AccessAutomap) to $($username) Shared Mailbox with automapping" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Gave full permissions to $($request.body.AccessAutomap) on $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not add mailbox permissions for $($request.body.AccessAutomap) on $($username)" -Sev "Error" -tenant $TenantFilter - - "Could not add shared mailbox permissions for $($username). Error: $($_.Exception.Message)" - } - } - - { $_."OOO" -ne "" } { - try { - $ImportedSession = Import-PSSession $session -ea Stop -AllowClobber -CommandName "Set-MailboxAutoReplyConfiguration" - $MailboxPerms = Set-MailboxAutoReplyConfiguration -Identity $userid -AutoReplyState Enabled -InternalMessage $_."OOO" -ExternalMessage $_."OOO" - "added Out-of-office to $username" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Set Out-of-office for $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not add OOO for $($username)" -Sev "Error" -tenant $TenantFilter - - "Could not add out of office message for $($username). Error: $($_.Exception.Message)" - } - } - { $_."forward" -ne "" } { - try { - $ImportedSession = Import-PSSession $session -ea Stop -AllowClobber -CommandName "Set-Mailbox" - $MailboxPerms = Set-mailbox -Identity $userid -ForwardingAddress $_.forward -DeliverToMailboxAndForward $true - "Forwarding all email for $username to $($_.Forward)" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Set Forwarding for $($username) to $($_.Forward)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not add forwarding for $($username)" -Sev "Error" -tenant $TenantFilter - - "Could not add forwarding for $($username). Error: $($_.Exception.Message)" - } - } - { $_."RemoveLicenses" -eq 'true' } { - try { - $CurrentLicenses = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)" -tenantid $tenantFilter).assignedlicenses.skuid - $LicensesToRemove = if ($CurrentLicenses) { ConvertTo-Json @( $CurrentLicenses) } else { "[]" } - $LicenseBody = '{"addLicenses": [], "removeLicenses": ' + $LicensesToRemove + '}' - $LicRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/assignlicense" -tenantid $tenantFilter -type POST -body $LicenseBody -verbose - "Removed current licenses: $(($ConvertTable | Where-Object { $_.guid -in $CurrentLicenses }).'Product_Display_Name' -join ',')" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed all licenses for $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not remove licenses for $($username)" -Sev "Error" -tenant $TenantFilter - - "Could not remove licenses for $($username). Error: $($_.Exception.Message)" - } - } - - { $_."Deleteuser" -eq 'true' } { - try { - $DeleteRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userid)" -type DELETE -tenant $TenantFilter - "Deleted the user account" - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Deleted account $($username)" -Sev "Info" -tenant $TenantFilter - - } - catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not delete $($username)" -Sev "Error" -tenant $TenantFilter - "Could not delete $($username). Error: $($_.Exception.Message)" - } - } - -} -Get-PSSession | Remove-PSSession -$body = [pscustomobject]@{"Results" = @($results) } - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) diff --git a/ExecResetPass/function.json b/ExecResetPass/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecResetPass/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecResetPass/run.ps1 b/ExecResetPass/run.ps1 deleted file mode 100644 index d509d01c222d..000000000000 --- a/ExecResetPass/run.ps1 +++ /dev/null @@ -1,43 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -Write-Host "$($Request.query.ID)" -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$password = -join ('abcdefghkmnrstuvwxyzABCDEFGHKLMNPRSTUVWXYZ23456789$%&*#'.ToCharArray() | Get-Random -Count 12) -$mustChange = $request.query.MustChange -if (!$mustChange) { $mustChange = 'true' } - -$passwordProfile = @" -{"passwordProfile": { "forceChangePasswordNextSignIn": $mustChange, "password": "$password" }}' -"@ - -try { - if ($TenantFilter -eq $null -or $TenantFilter -eq "null") { - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.query.ID)" -type PATCH -body $passwordProfile -verbose - } - else { - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.query.ID)" -tenantid $TenantFilter -type PATCH -body $passwordProfile -verbose - } - $Results = [pscustomobject]@{"Results" = "Successfully completed request. User must changed password at next logon is set to $mustChange. Temporary password is $password" } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Reset password for $($REquest.query.id)" -Sev "Info" -} -catch { - $Results = [pscustomobject]@{"Results" = "Failed to reset password for $($Request.query.id): $($_.Exception.Message)" } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to reset password for $($Request.query.id): $($_.Exception.Message)" -Sev "Error" - -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) \ No newline at end of file diff --git a/ExecSAMSetup/function.json b/ExecSAMSetup/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecSAMSetup/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecSAMSetup/run.ps1 b/ExecSAMSetup/run.ps1 deleted file mode 100644 index cc9ac803b39b..000000000000 --- a/ExecSAMSetup/run.ps1 +++ /dev/null @@ -1,139 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$ResourceGroup = $ENV:Website_Resource_Group -$Subscription = ($ENV:WEBSITE_OWNER_NAME).split('+') | Select-Object -First 1 -if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $AzSession = Connect-AzAccount -Identity -Subscription $Subscription -} -$KV = Get-AzKeyVault -SubscriptionID $Subscription -ResourceGroupName $ResourceGroup - -try { - if ($request.query.CreateSAM) { - Remove-Item ".\Cache_SAMSetup\PartnerSetup.json" -Force -ErrorAction SilentlyContinue - if ($Request.query.partnersetup) { New-Item -Path '.\Cache_SAMSetup\PartnerSetup.json' -Value 'True' } - $step = 1 - $DeviceLogon = New-DeviceLogin -clientid "1b730954-1685-4b74-9bfd-dac224a7b894" -Scope 'https://graph.microsoft.com/.default' -FirstLogon - New-Item '.\Cache_SAMSetup\SamSetup.json' -Value ($DeviceLogon | ConvertTo-Json) -Force - $Results = @{ message = $DeviceLogon.message ; step = $step } - } - if ($Request.query.CheckSetupProcess -and $request.query.step -eq 1) { - $SAMSetup = Get-Content '.\Cache_SAMSetup\SamSetup.json' | ConvertFrom-Json - $Token = (New-DeviceLogin -clientid "1b730954-1685-4b74-9bfd-dac224a7b894" -Scope 'https://graph.microsoft.com/.default' -device_code $SAMSetup.device_code) - if ($token.Access_Token) { - $step = 2 - - $PartnerSetup = Get-Content '.\Cache_SAMSetup\PartnerSetup.json' -ErrorAction SilentlyContinue - $TenantId = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/organization" -Headers @{ authorization = "Bearer $($Token.Access_Token)" } -Method GET -ContentType 'application/json').value.id - $TenantId | Out-File '.\Cache_SAMSetup\cache.tenantid' - if ($PartnerSetup) { - $app = Get-Content '.\Cache_SAMSetup\SAMManifest.json' - $AppId = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications" -Headers @{ authorization = "Bearer $($Token.Access_Token)" } -Method POST -Body $app -ContentType 'application/json') - $AppId.appId | Out-File '.\Cache_SAMSetup\cache.appid' - } - else { - $app = Get-Content '.\Cache_SAMSetup\SAMManifestNoPartner.json' - $AppId = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications" -Headers @{ authorization = "Bearer $($Token.Access_Token)" } -Method POST -Body $app -ContentType 'application/json') - $AppId.appId | Out-File '.\Cache_SAMSetup\cache.appid' - } - Write-Host $AppId - $AppPassword = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications/$($AppID.id)/addPassword" -Headers @{ authorization = "Bearer $($Token.Access_Token)" } -Method POST -Body '{"passwordCredential":{"displayName":"CIPPInstall"}}' -ContentType 'application/json').secretText - Set-AzKeyVaultSecret -VaultName $kv.vaultname -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv.vaultname -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appid -AsPlainText -Force) - Set-AzKeyVaultSecret -VaultName $kv.vaultname -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) - $Results = @{"message" = "Created application. Waiting 30 seconds for Azure propagation"; step = $step } - } - else { - $step = 1 - $Results = @{"message" = $SAMSetup.message ; step = $step } - } - - } - switch ($request.query.step) { - 2 { - $step = 2 - $TenantId = Get-Content '.\Cache_SAMSetup\cache.tenantid' - $AppID = Get-Content '.\Cache_SAMSetup\cache.appid' - $PartnerSetup = Get-Content '.\Cache_SAMSetup\PartnerSetup.json' -ErrorAction SilentlyContinue - if ($PartnerSetup) { - $FirstLogonRefreshtoken = New-DeviceLogin -clientid $AppID -Scope 'https://api.partnercenter.microsoft.com/user_impersonation' -FirstLogon -TenantId $TenantId - } - else { - $FirstLogonRefreshtoken = New-DeviceLogin -clientid $AppID -Scope 'https://graph.microsoft.com/.default' -FirstLogon -TenantId $TenantId - - } - New-Item '.\Cache_SAMSetup\SamSetup.json' -Value ($FirstLogonRefreshtoken | ConvertTo-Json) -Force - $step = 3 - $Results = @{ message = $FirstLogonRefreshtoken.message ; step = $step } - } - 3 { - $step = 3 - $SAMSetup = Get-Content '.\Cache_SAMSetup\SAMSetup.json' | ConvertFrom-Json - $TenantId = Get-Content '.\Cache_SAMSetup\cache.tenantid' - $AppID = Get-Content '.\Cache_SAMSetup\cache.appid' - $PartnerSetup = Get-Content '.\Cache_SAMSetup\PartnerSetup.json' -ErrorAction SilentlyContinue - if ($PartnerSetup) { - $RefreshToken = (New-DeviceLogin -clientid $AppID -Scope 'https://api.partnercenter.microsoft.com/user_impersonation' -device_code $SAMSetup.device_code) - } - else { - $RefreshToken = (New-DeviceLogin -clientid $AppID -Scope 'https://graph.microsoft.com/.default' -device_code $SAMSetup.device_code) - - } - if ($RefreshToken.Refresh_Token) { - Set-AzKeyVaultSecret -VaultName $kv.vaultname -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $RefreshToken.Refresh_Token -AsPlainText -Force) - $step = 4 - $Results = @{"message" = "Retrieved refresh token and saving to Keyvault."; step = $step } - } - else { - $step = 3 - $Results = @{"message" = $SAMSetup.message ; step = $step } - } - } - 4 { - $step = 4 - $TenantId = Get-Content '.\Cache_SAMSetup\cache.tenantid' - $FirstExchangeLogonRefreshtoken = New-DeviceLogin -clientid 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -Scope 'https://outlook.office365.com/.default' -FirstLogon -TenantId $TenantId - New-Item '.\Cache_SAMSetup\SamSetup.json' -Value ($FirstExchangeLogonRefreshtoken | ConvertTo-Json) -Force - $step = 5 - $Results = @{ message = $FirstExchangeLogonRefreshtoken.message ; step = $step } - } - 5 { - $step = 5 - $TenantId = Get-Content '.\Cache_SAMSetup\cache.tenantid' - $SAMSetup = Get-Content '.\Cache_SAMSetup\SamSetup.json' | ConvertFrom-Json - $ExchangeRefreshToken = (New-DeviceLogin -clientid 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -Scope 'https://outlook.office365.com/.default' -device_code $SAMSetup.device_code) - if ($ExchangeRefreshToken.Refresh_Token) { - Set-AzKeyVaultSecret -VaultName $kv.vaultname -Name 'exchangerefreshtoken' -SecretValue (ConvertTo-SecureString -String $ExchangeRefreshToken.Refresh_Token -AsPlainText -Force) - $step = 6 - $Results = @{"message" = "Retrieved refresh token and saving to Keyvault."; step = $step } - } - else { - $Results = @{"message" = $SAMSetup.message ; step = $step } - } - } - 6 { - Remove-Item ".\Cache_SAMSetup\SamSetup.json" -Force -ErrorAction SilentlyContinue - Remove-Item ".\Cache_SAMSetup\Cache.*" -Force -ErrorAction SilentlyContinue - Remove-Item ".\Cache_SAMSetup\SamSetup.json" -Force -ErrorAction SilentlyContinue - Remove-Item ".\Cache_SAMSetup\PartnerSetup.json" -Force -ErrorAction SilentlyContinue - $step = 7 - $Results = @{"message" = "Installation completed."; step = $step - } - } - } - -} -catch { - $Results = [pscustomobject]@{"Results" = "Failed. $($_.Exception.message)" ; step = $step } -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) \ No newline at end of file diff --git a/ExecSendPush/function.json b/ExecSendPush/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecSendPush/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecSendPush/run.ps1 b/ExecSendPush/run.ps1 deleted file mode 100644 index 7095dd6f2963..000000000000 --- a/ExecSendPush/run.ps1 +++ /dev/null @@ -1,117 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$TenantFilter = $Request.Query.TenantFilter -$UserEmail = $Request.Query.UserEmail -$MFAAppID = '981f26a1-7f43-403b-a875-f8b09b8cd720' - -# Function to keep trying to get the access token while we wait for MS to actually set the temp password -function get-clientaccess { - param( - $uri, - $body, - $count = 1 - ) - try { - $ClientToken = Invoke-RestMethod -Method post -Uri $uri -Body $body -ea stop - } - catch { - if ($count -lt 20) { - - $count++ - Start-Sleep 1 - $ClientToken = get-clientaccess -uri $uri -body $body -count $count - } - else { - Throw "Could not get Client Token: $_" - } - } - return $ClientToken -} - - -# Get all service principals -$SPResult = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$top=999&`$select=id,appId" -tenantid $TenantFilter - -# Check if we have one for the MFA App -$SPID = ($SPResult | Where-Object { $_.appId -eq $MFAAppID }).id - -# Create a serivce principal if needed -if (!$SPID) { - - $SPBody = [pscustomobject]@{ - appId = $MFAAppID - } - $SPID = (New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/servicePrincipals" -tenantid $TenantFilter -type POST -body $SPBody -verbose).id -} - - -$PassReqBody = @{ - "passwordCredential" = @{ - "displayName" = "MFA Temporary Password" - "endDateTime" = $(((Get-Date).addminutes(5))) - "startDateTime" = $((Get-Date).addminutes(-5)) - } -} | ConvertTo-Json -Depth 5 - -$TempPass = (New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/servicePrincipals/$SPID/addPassword" -tenantid $TenantFilter -type POST -body $PassReqBody -verbose).secretText - -# Give it a chance to apply -#Start-Sleep 5 - -# Generate the XML for the push request -$XML = @" - -1.0 -$UserEmail -en-usOverrideVoiceOtpfalse69ff05bf-eb61-47f7-a70e-e7d77b6d47d0 -truetrueradiusUNKNOWN: -"@ - -# Request to get client token -$body = @{ - 'resource' = 'https://adnotifications.windowsazure.com/StrongAuthenticationService.svc/Connector' - 'client_id' = $MFAAppID - 'client_secret' = $TempPass - 'grant_type' = "client_credentials" - 'scope' = "openid" -} - -# Attempt to get a token using the temp password -$ClientUri = "https://login.microsoftonline.com/$TenantFilter/oauth2/token" -try { - $ClientToken = get-clientaccess -Uri $ClientUri -Body $body -} -catch { - $Body = "Failed to create temporary password" -} - -# If we got a token send a push -if ($ClientToken) { - - $ClientHeaders = @{ "Authorization" = "Bearer $($ClientToken.access_token)" } - - $obj = Invoke-RestMethod -Uri 'https://adnotifications.windowsazure.com/StrongAuthenticationService.svc/Connector//BeginTwoWayAuthentication' -Method POST -Headers $ClientHeaders -Body $XML -ContentType 'application/xml' - - if ($obj.BeginTwoWayAuthenticationResponse.result) { - $Body = "Received an MFA confirmation: $($obj.BeginTwoWayAuthenticationResponse.result.value | Out-String)" - } - if ($obj.BeginTwoWayAuthenticationResponse.AuthenticationResult -ne $true) { - $Body = "Authentication Failed! Does the user have Push/Phone call MFA configured? Errorcode: $($obj.BeginTwoWayAuthenticationResponse.result.value | Out-String)" - } - -} - -$Results = [pscustomobject]@{"Results" = $Body } -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Sent push request to $UserEmail - Result: $($obj.BeginTwoWayAuthenticationResponse.result.value | Out-String)" -Sev "Info" - -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) - diff --git a/ExecSetSecurityAlert/function.json b/ExecSetSecurityAlert/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ExecSetSecurityAlert/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ExecSetSecurityAlert/run.ps1 b/ExecSetSecurityAlert/run.ps1 deleted file mode 100644 index a3664d7b0d00..000000000000 --- a/ExecSetSecurityAlert/run.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -# Interact with query parameters or the body of the request. -$tenantfilter = $Request.Query.TenantFilter -$AlertFilter = $Request.Query.GUID -$Status = $Request.Query.Status -$AssignBody = '{"status":"' + $Status + '","vendorInformation":{"provider":"' + $Request.query.provider + '","vendor":"' + $Request.query.vendor + '"}}' -try { - $GraphRequest = New-Graphpostrequest -uri "https://graph.microsoft.com/beta/security/alerts/$AlertFilter" -type PATCH -tenantid $TenantFilter -body $Assignbody -asApp $true - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($tenantfilter) -message "Set alert $AlertFilter to status $Status" -Sev "Info" - $body = [pscustomobject]@{"Results" = "Set status for alert to $Status" } - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($tenantfilter) -message "Failed to assign app $($appFilter): $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to change status: $($_.Exception.Message)" } -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/GetDashboard/function.json b/GetDashboard/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/GetDashboard/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/GetDashboard/run.ps1 b/GetDashboard/run.ps1 deleted file mode 100644 index 85ccd8b5eba7..000000000000 --- a/GetDashboard/run.ps1 +++ /dev/null @@ -1,206 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) -Function Test-CronRange { - <# - .EXAMPLE - # * always passes - Test-CronRange -Range '*' -InputValue 10 -Verbose - # a min-max range - Test-CronRange -Range '1-15' -InputValue 10 -Verbose - # stepped value - Test-CronRange -Range '*/15' -InputValue 30 -verbose - # A specific value list - Test-CronRange -Range '2,5,8,9' -InputValue 10 -verbose - Test-CronRange -Range '*/4' -InputValue 60 -verbose - #> - [cmdletbinding()] - param( - [ValidatePattern("^[\d-*/,]*$")] - [string]$range - , - [int]$inputvalue - ) - Write-Verbose "Testing $range" - If ($range -eq '*') { - Return $true - } - If ($range -match '^\d+$') { - Write-Verbose 'Specific Value(int)' - Return ($inputvalue -eq [int]$range) - } - If ($range -match '[\d]+-[\d]+([/][\d])*') { - Write-Verbose 'min-max range' - [int]$min, [int]$max = $range -split '-' - Return ($inputvalue -ge $min -and $inputvalue -le $max) - } - If ($range -match ('([*]+|[\d]+-[\d]+)[/][\d]+')) { - Write-Verbose 'Step Value' - $list, $step = $range -split '/' - Write-Verbose "Using Step of $step" - $IsInStep = ( ($inputvalue / $step).GetType().Name -eq 'Int32' ) - Return ( $IsInStep ) - } - If ($range -match '(\d+)(,\s*\d+)*') { - Write-Verbose 'value list' - $list = @() - $list = $range -split ',' - Return ( $list -contains $InputValue ) - } - Write-Error "Could not process Range format: $Range" -} -Function ConvertFrom-DateTable { - Param ( - $DateTable - ) - $datestring = "{0}-{1:00}-{2:00} {3:00}:{4:00}" -f $DateTable.year, $DateTable.month, $DateTable.day, $DateTable.hour, $DateTable.Minute - $date = [datetime]::ParseExact($datestring, "yyyy-MM-dd HH:mm", $null) - return $date -} -Function Invoke-CronIncrement { - param( - [psobject] - $DateTable - , - [ValidateSet('Minute', 'Hour', 'Day', 'Month')] - [string] - $Increment - ) - $date = ConvertFrom-DateTable -DateTable $DateTable - $date = switch ($Increment) { - 'Minute' { $date.AddMinutes(1) } - 'Hour' { $date.AddHours(1) } - 'Day' { $date.AddDays(1) } - 'Month' { $date.AddMonths(1) } - } - $output = [ordered]@{ - Minute = $date.Minute - Hour = $date.hour - Day = $date.day - Weekday = $date.DayOfWeek.value__ - Month = $date.month - Year = $date.year - } - Return $output -} -Function Get-CronNextExecutionTime { - <# - .SYNOPSIS - Currently only support * or digits - todo: add support for ',' '-' '/' ',' - .EXAMPLE - Get-CronNextExecutionTime -Expression '* * * * *' - Get-CronNextExecutionTime -Expression '5 * * * *' - Get-CronNextExecutionTime -Expression '* 13-21 * * *' - Get-CronNextExecutionTime -Expression '0 0 2 * *' - Get-CronNextExecutionTime -Expression '15 14 * 1-3 *' - Get-CronNextExecutionTime -Expression '15 14 * * 4' - Get-CronNextExecutionTime -Expression '15 14 * 2 *' - Get-CronNextExecutionTime -Expression '15 14-20 * * *' - Get-CronNextExecutionTime -Expression '15 14 * * 1' - #> - [cmdletbinding()] - param( - [string] - $Expression = '* * * * *' - , - $InputDate - ) - # Split Expression in variables and set to INT if possible - $cronMinute, $cronHour, $cronDay, $cronMonth, $cronWeekday = $Expression -Split ' ' - Get-Variable -Scope local | Where-Object { $_.name -like 'cron*' } | ForEach-Object { - If ($_.Value -ne '*') { - Try { - [int]$newValue = $_.Value - Set-Variable -Name $_.Name -Value $newValue -ErrorAction Ignore - } - Catch {} - } - } - # Get the next default Time (= next minute) - $nextdate = If ($InputDate) { $InputDate } Else { Get-Date } - $nextdate = $nextdate.addMinutes(1) - $next = [ordered]@{ - Minute = $nextdate.Minute - Hour = $nextdate.hour - Day = $nextdate.day - Weekday = $nextdate.DayOfWeek.value__ - Month = $nextdate.month - Year = $nextdate.year - } - # Increase Minutes until it is in the range. - # If Minutes passes the 60 mark, the hour is incremented - $done = $false - Do { - If ((Test-CronRange -InputValue $next.Minute -range $cronMinute) -eq $False) { - Do { - $next = Invoke-CronIncrement -DateTable $Next -Increment Minute - } While ( (Test-CronRange -InputValue $next.Minute -range $cronMinute) -eq $False ) - continue - } - # Check if the next Hour is in the desired range - # Add a Day because the desired Hour has already passed - If ((Test-CronRange -InputValue $next.Hour -range $cronHour) -eq $False) { - Do { - $next = Invoke-CronIncrement -DateTable $Next -Increment Hour - $next.Minute = 0 - } While ((Test-CronRange -InputValue $next.Hour -range $cronHour) -eq $False) - continue - } - # Increase Days until it is in the range. - # If Days passes the 30/31 mark, the Month is incremented - If ((Test-CronRange -InputValue $next.day -range $cronday) -eq $False) { - Do { - $next = Invoke-CronIncrement -DateTable $Next -Increment Day - $next.Hour = 0 - $next.Minute = 0 - } While ((Test-CronRange -InputValue $next.day -range $cronday) -eq $False) - continue - } - # Increase Months until it is in the range. - # If Months passes the 12 mark, the Year is incremented - If ((Test-CronRange -InputValue $next.Month -range $cronMonth) -eq $False) { - Do { - $next = Invoke-CronIncrement -DateTable $Next -Increment Month - $next.Hour = 0 - $next.Minute = 0 - } While ((Test-CronRange -InputValue $next.Month -range $cronMonth) -eq $False) - continue - } - If ((Test-CronRange -InputValue $Next.WeekDay -Range $cronWeekday) -eq $false) { - Do { - $next = Invoke-CronIncrement -DateTable $Next -Increment Day - $next.Hour = 0 - $next.Minute = 0 - } While ( (Test-CronRange -InputValue $Next.WeekDay -Range $cronWeekday) -eq $false ) - continue - } - $done = $true - } While ($done -eq $false) - $date = ConvertFrom-DateTable -DateTable $next - If (!$date) { Throw 'Could not create date' } - - # Add Days until weekday matches - - Return $Date -} -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$dash = [PSCustomObject]@{ - NextStandardsRun = (Get-CronNextExecutionTime -Expression '0 */3 * * *').tostring('s') - NextBPARun = (Get-CronNextExecutionTime -Expression '0 3 * * *').tostring('s') - queuedApps = [int64](Get-ChildItem '.\ChocoApps.Cache' -ErrorAction SilentlyContinue).count - queuedStandards = [int64](Get-ChildItem '.\Cache_Standards' -ErrorAction SilentlyContinue).count - tenantCount = [int64](get-tenants -ErrorAction SilentlyContinue).count - RefreshTokenDate = (Get-CronNextExecutionTime -Expression '0 0 * * 0').AddDays('-7').tostring('s') -split "T" | Select-Object -First 1 - ExchangeTokenDate = (Get-CronNextExecutionTime -Expression '0 0 * * 0').AddDays('-7').tostring('s') -split "T" | Select-Object -First 1 - LastLog = @(Get-Content "Logs\$((Get-Date).ToString('ddMMyyyy')).log" | ConvertFrom-Csv -Header "DateTime", "Tenant", "API", "Message", "User", "Severity" -Delimiter "|" | Select-Object -Last 10) -} -# Write to the Azure Functions log stream. - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $dash - }) \ No newline at end of file diff --git a/GetVersion/function.json b/GetVersion/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/GetVersion/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/GetVersion/run.ps1 b/GetVersion/run.ps1 deleted file mode 100644 index 299e18778586..000000000000 --- a/GetVersion/run.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$APIVersion = Get-Content "version_latest.txt" | Out-String -$CIPPVersion = $request.query.localversion - -$RemoteAPIVersion = Invoke-RestMethod -Uri "https://raw.githubusercontent.com/KelvinTegelaar/CIPP-API/master/version_latest.txt" -$RemoteCIPPVersion = Invoke-RestMethod -Uri "https://raw.githubusercontent.com/KelvinTegelaar/CIPP/master/version_latest.txt" - -$version = [PSCustomObject]@{ - LocalCIPPVersion = $CIPPVersion - RemoteCIPPVersion = $RemoteCIPPVersion - LocalCIPPAPIVersion = $APIVersion - RemoteCIPPAPIVersion = $RemoteAPIVersion - OutOfDateCIPP = ([version]$RemoteCIPPVersion -gt [version]$CIPPVersion) - OutOfDateCIPPAPI = ([version]$RemoteAPIVersion -gt [version]$APIVersion) -} -# Write to the Azure Functions log stream. - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Version - }) \ No newline at end of file diff --git a/GraphHelper.psm1 b/GraphHelper.psm1 deleted file mode 100644 index c18ffef0bd36..000000000000 --- a/GraphHelper.psm1 +++ /dev/null @@ -1,467 +0,0 @@ -function Get-NormalizedError { - [CmdletBinding()] - param ( - [string]$message - ) - switch -Wildcard ($message) { - 'Request not applicable to target tenant.' { 'Required license not available for this tenant' } - "Neither tenant is B2C or tenant doesn't have premium license" { 'This feature requires a P1 license or higher' } - 'Response status code does not indicate success: 400 (Bad Request).' { 'Error 400 occured. There is an issue with the token configuration for this tenant. Please perform an access check' } - '*Microsoft.Skype.Sync.Pstn.Tnm.Common.Http.HttpResponseException*' { 'Could not connect to Teams Admin center - Tenant might be missing a Teams license' } - '*Provide valid credential.*' { 'Error 400: There is an issue with your Exchange Token configuration. Please perform an access check for this tenant' } - Default { $message } - } -} - -function Get-GraphToken($tenantid, $scope, $AsApp, $AppID, $refreshToken, $ReturnRefresh) { - if (!$scope) { $scope = 'https://graph.microsoft.com//.default' } - - $AuthBody = @{ - client_id = $ENV:ApplicationId - client_secret = $ENV:ApplicationSecret - scope = $Scope - refresh_token = $ENV:RefreshToken - grant_type = 'refresh_token' - - } - if ($asApp -eq $true) { - $AuthBody = @{ - client_id = $ENV:ApplicationId - client_secret = $ENV:ApplicationSecret - scope = $Scope - grant_type = 'client_credentials' - } - } - - if ($null -ne $AppID -and $null -ne $refreshToken) { - $AuthBody = @{ - client_id = $appid - refresh_token = $RefreshToken - scope = $Scope - grant_type = 'refresh_token' - } - } - - if (!$tenantid) { $tenantid = $env:tenantid } - $AccessToken = (Invoke-RestMethod -Method post -Uri "https://login.microsoftonline.com/$($tenantid)/oauth2/v2.0/token" -Body $Authbody -ErrorAction Stop) - if ($ReturnRefresh) { $header = $AccessToken } else { $header = @{ Authorization = "Bearer $($AccessToken.access_token)" } } - - return $header -} - -function Log-Request ($message, $tenant, $API, $user, $sev) { - $username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails - New-Item -Path 'Logs' -ItemType Directory -ErrorAction SilentlyContinue - $date = (Get-Date).ToString('s') - $LogMutex = New-Object System.Threading.Mutex($false, 'LogMutex') - if (!$username) { $username = 'CIPP' } - if (!$tenant) { $tenant = 'None' } - if ($sev -eq 'Debug' -and $env:DebugMode -ne 'true') { - Write-Information 'Not writing to log file - Debug mode is not enabled.' - return - } - $CleanMessage = [string]::join(' ', ($message.Split("`n"))) - $logdata = "$($date)|$($tenant)|$($API)|$($CleanMessage)|$($username)|$($sev)" - if ($LogMutex.WaitOne(1000)) { - $logdata | Out-File -Append -FilePath "Logs\$((Get-Date).ToString('ddMMyyyy')).log" -Force - } - $LogMutex.ReleaseMutex() -} - -function New-GraphGetRequest ($uri, $tenantid, $scope, $AsApp, $noPagination) { - - if ($scope -eq 'ExchangeOnline') { - $Headers = Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $tenantid - } - else { - $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp - } - Write-Verbose "Using $($uri) as url" - $nextURL = $uri - - if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { - $ReturnedData = do { - try { - $Data = (Invoke-RestMethod -Uri $nextURL -Method GET -Headers $headers -ContentType 'application/json; charset=utf-8') - if ($data.value) { $data.value } else { ($Data) } - if ($noPagination) { $nextURL = $null } else { $nextURL = $data.'@odata.nextLink' } - } - catch { - $Message = ($_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue).error.message - if ($Message -eq $null) { $Message = $($_.Exception.Message) } - throw $Message - } - } until ($null -eq $NextURL) - return $ReturnedData - } - else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' - } -} - -function New-GraphPOSTRequest ($uri, $tenantid, $body, $type, $scope, $AsApp) { - - $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp - Write-Verbose "Using $($uri) as url" - if (!$type) { - $type = 'POST' - } - - if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { - try { - $ReturnedData = (Invoke-RestMethod -Uri $($uri) -Method $TYPE -Body $body -Headers $headers -ContentType 'application/json; charset=utf-8') - } - catch { - $Message = ($_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue).error.message - if ($Message -eq $null) { $Message = $($_.Exception.Message) } - throw $Message - } - return $ReturnedData - } - else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' - } -} - -function convert-skuname($skuname, $skuID) { - $ConvertTable = Import-Csv Conversiontable.csv - if ($skuname) { $ReturnedName = ($ConvertTable | Where-Object { $_.String_Id -eq $skuname } | Select-Object -Last 1).'Product_Display_Name' } - if ($skuID) { $ReturnedName = ($ConvertTable | Where-Object { $_.guid -eq $skuid } | Select-Object -Last 1).'Product_Display_Name' } - if ($ReturnedName) { return $ReturnedName } else { return $skuname, $skuID } -} - -function Get-ClassicAPIToken($tenantID, $Resource) { - $uri = "https://login.microsoftonline.com/$($TenantID)/oauth2/token" - $body = "resource=$Resource&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - try { - $token = Invoke-RestMethod $uri -Body $body -ContentType 'application/x-www-form-urlencoded' -ErrorAction SilentlyContinue -Method post - return $token - } - catch { - Write-Error "Failed to obtain Classic API Token for $Tenant - $_" - } -} - -function New-TeamsAPIGetRequest($Uri, $tenantID, $Method = 'GET', $Resource = '48ac35b8-9aa8-4d74-927d-1f4a14a0b239', $ContentType = 'application/json') { - $token = Get-ClassicAPIToken -Tenant $tenantid -Resource $Resource - - $NextURL = $Uri - - if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { - $ReturnedData = do { - try { - $Data = Invoke-RestMethod -ContentType "$ContentType;charset=UTF-8" -Uri $NextURL -Method $Method -Headers @{ - Authorization = "Bearer $($token.access_token)"; - 'x-ms-client-request-id' = [guid]::NewGuid().ToString(); - 'x-ms-client-session-id' = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - 'x-ms-tnm-applicationid' = '045268c0-445e-4ac1-9157-d58f67b167d9' - - } - $Data - if ($noPagination) { $nextURL = $null } else { $nextURL = $data.NextLink } - } - catch { - throw "Failed to make Classic Get Request $_" - } - } until ($null -eq $NextURL) - return $ReturnedData - } - else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' - } -} - -function New-ClassicAPIGetRequest($TenantID, $Uri, $Method = 'GET', $Resource = 'https://admin.microsoft.com', $ContentType = 'application/json') { - $token = Get-ClassicAPIToken -Tenant $tenantID -Resource $Resource - - $NextURL = $Uri - - if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { - $ReturnedData = do { - try { - $Data = Invoke-RestMethod -ContentType "$ContentType;charset=UTF-8" -Uri $NextURL -Method $Method -Headers @{ - Authorization = "Bearer $($token.access_token)"; - 'x-ms-client-request-id' = [guid]::NewGuid().ToString(); - 'x-ms-client-session-id' = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - $Data - if ($noPagination) { $nextURL = $null } else { $nextURL = $data.NextLink } - } - catch { - throw "Failed to make Classic Get Request $_" - } - } until ($null -eq $NextURL) - return $ReturnedData - } - else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' - } -} - -function New-ClassicAPIPostRequest($TenantID, $Uri, $Method = 'POST', $Resource = 'https://admin.microsoft.com', $Body) { - - $token = Get-ClassicAPIToken -Tenant $tenantID -Resource $Resource - - if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { - try { - $ReturnedData = Invoke-RestMethod -ContentType 'application/json;charset=UTF-8' -Uri $Uri -Method $Method -Body $Body -Headers @{ - Authorization = "Bearer $($token.access_token)"; - 'x-ms-client-request-id' = [guid]::NewGuid().ToString(); - 'x-ms-client-session-id' = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - - } - catch { - throw "Failed to make Classic Get Request $_" - } - return $ReturnedData - } - else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' - } -} - -function Get-AuthorisedRequest($TenantID, $Uri) { - if ($uri -like 'https://graph.microsoft.com/beta/contracts*' -or $uri -like '*/customers/*' -or $uri -eq 'https://graph.microsoft.com/v1.0/me/sendMail' -or $uri -like 'https://graph.microsoft.com/beta/tenantRelationships/managedTenants*') { - return $true - } - if ($TenantID -in (Get-Tenants).defaultdomainname) { - return $true - } - else { - return $false - } - -} - -function Get-Tenants { - param ( - [Parameter( ParameterSetName = 'Skip', Mandatory = $True )] - [switch]$SkipList, - [Parameter( ParameterSetName = 'Standard')] - [switch]$IncludeAll - - ) - - $cachefile = 'tenants.cache.json' - - if ((!$Script:SkipListCache -and !$Script:SkipListCacheEmpty) -or !$Script:IncludedTenantsCache) { - # We create the excluded tenants file. This is not set to force so will not overwrite - New-Item -ErrorAction SilentlyContinue -ItemType File -Path 'ExcludedTenants' - $Script:SkipListCache = Get-Content 'ExcludedTenants' | ConvertFrom-Csv -Delimiter '|' -Header 'Name', 'User', 'Date' - if ($null -eq $Script:SkipListCache) { - $Script:SkipListCacheEmpty = $true - } - - # Load or refresh the cache if older than 24 hours - $Testfile = Get-Item $cachefile -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).Addhours(-24) - if ($Testfile) { - $Script:IncludedTenantsCache = Get-Content $cachefile -ErrorAction SilentlyContinue | ConvertFrom-Json - } - else { - $Script:IncludedTenantsCache = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/contracts?`$top=999" -tenantid $ENV:Tenantid) | Select-Object CustomerID, DefaultdomainName, DisplayName, domains | Where-Object -Property DefaultdomainName -NotIn $Script:SkipListCache.name - if ($ENV:PartnerTenantAvailable) { - $PartnerTenant = @([PSCustomObject]@{ - customerId = $env:TenantID - defaultDomainName = $env:TenantID - displayName = '*Partner Tenant' - domains = 'PartnerTenant' - }) - $Script:IncludedTenantsCache = $PartnerTenant + $Script:IncludedTenantsCache - } - - if ($Script:IncludedTenantsCache) { - $Script:IncludedTenantsCache | ConvertTo-Json | Out-File $cachefile - } - } - } - if ($SkipList) { - return $Script:SkipListCache - } - if ($IncludeAll) { - return (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/contracts?`$top=999" -tenantid $ENV:Tenantid) | Select-Object CustomerID, DefaultdomainName, DisplayName, domains - } - - else { - return $Script:IncludedTenantsCache - } -} - -function Remove-CIPPCache { - Remove-Item 'tenants.cache.json' -Force - Get-ChildItem -Path 'Cache_BestPracticeAnalyser' -Filter *.json | Remove-Item -Force -ErrorAction SilentlyContinue - Get-ChildItem -Path 'Cache_DomainAnalyser' -Filter *.json | Remove-Item -Force -ErrorAction SilentlyContinue - Get-ChildItem -Path 'Cache_BestPracticeAnalyser\CurrentlyRunning.txt' -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue - Get-ChildItem -Path 'ChocoApps.Cache\CurrentlyRunning.txt' -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue - Get-ChildItem -Path 'Cache_DomainAnalyser\CurrentlyRunning.txt' -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue - Get-ChildItem -Path 'Cache_Scheduler\CurrentlyRunning.txt' -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue - Get-ChildItem -Path 'SecurityBaselines_All\CurrentlyRunning.txt' -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue - Get-ChildItem -Path 'Cache_Standards\CurrentlyRunning.txt' -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue - $Script:SkipListCache = $Null - $Script:SkipListCacheEmpty = $Null - $Script:IncludedTenantsCache = $Null -} - -function New-ExoRequest ($tenantid, $cmdlet, $cmdParams) { - $token = Get-ClassicAPIToken -resource 'https://outlook.office365.com' -Tenantid $tenantid - if ((Get-AuthorisedRequest -TenantID $tenantid)) { - $tenant = (get-tenants | Where-Object -Property defaultDomainName -EQ $tenantid).customerid - if ($cmdParams) { - $Params = $cmdParams - } - else { - $Params = @{} - } - $ExoBody = ConvertTo-Json -Depth 5 -InputObject @{ - CmdletInput = @{ - CmdletName = $cmdlet - Parameters = $Params - } - } - $OnMicrosoft = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains?$top=999' -tenantid $tenantid | Where-Object -Property isInitial -EQ $true).id - $Headers = @{ - Authorization = "Bearer $($token.access_token)" - 'X-AnchorMailbox' = "UPN:SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@$($OnMicrosoft)" - - } - try { - $ReturnedData = Invoke-RestMethod "https://outlook.office365.com/adminapi/beta/$($tenant)/InvokeCommand" -Method POST -Body $ExoBody -Headers $Headers -ContentType 'application/json; charset=utf-8' - } - catch { - $Message = ($_.ErrorDetails | ConvertFrom-Json -ErrorAction SilentlyContinue).error.details.message - if ($Message -eq $null) { $Message = $($_.Exception.Message) } - throw $Message - } - return $ReturnedData.value - } - else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' - } -} - -function Read-JwtAccessDetails { - <# - .SYNOPSIS - Parse Microsoft JWT access tokens - - .DESCRIPTION - Extract JWT access token details for verification - - .PARAMETER Token - Token to get details for - - #> - [cmdletbinding()] - param( - [Parameter(Mandatory = $true)] - [string]$Token - ) - - # Default token object - $TokenDetails = [PSCustomObject]@{ - AppId = '' - AppName = '' - Audience = '' - AuthMethods = '' - IPAddress = '' - Name = '' - Scope = '' - TenantId = '' - UserPrincipalName = '' - } - - if (!$Token.Contains('.') -or !$token.StartsWith('eyJ')) { return $TokenDetails } - - # Get token payload - $tokenPayload = $token.Split('.')[1].Replace('-', '+').Replace('_', '/') - while ($tokenPayload.Length % 4) { - $tokenPayload = '{0}=' -f $tokenPayload - } - - # Convert base64 to json to object - $tokenByteArray = [System.Convert]::FromBase64String($tokenPayload) - $tokenArray = [System.Text.Encoding]::ASCII.GetString($tokenByteArray) - $TokenObj = $tokenArray | ConvertFrom-Json - - # Convert token details to human readable - $TokenDetails.AppId = $TokenObj.appid - $TokenDetails.AppName = $TokenObj.app_displayname - $TokenDetails.Audience = $TokenObj.aud - $TokenDetails.AuthMethods = $TokenObj.amr - $TokenDetails.IPAddress = $TokenObj.ipaddr - $TokenDetails.Name = $TokenObj.name - $TokenDetails.Scope = $TokenObj.scp -split ' ' - $TokenDetails.TenantId = $TokenObj.tid - $TokenDetails.UserPrincipalName = $TokenObj.upn - - return $TokenDetails -} - -function Get-CIPPMSolUsers { - [CmdletBinding()] - param ( - [string]$tenant - ) - $AADGraphtoken = (Get-GraphToken -scope 'https://graph.windows.net/.default') - $tenantid = (get-tenants | Where-Object -Property DefaultDomainName -EQ $tenant).CustomerID - $TrackingGuid = New-Guid - $LogonPost = @" -http://provisioning.microsoftonline.com/IProvisioningWebService/MsolConnecturn:uuid:$TrackingGuidhttp://www.w3.org/2005/08/addressing/anonymous$($AADGraphtoken['Authorization'])50afce61-c917-435b-8c6d-60aa5a8b8aa71.2.183.57Version47$($TrackingGuid)https://provisioningapi.microsoftonline.com/provisioningwebservice.svcVersion4 -"@ - $DataBlob = (Invoke-RestMethod -Method POST -Uri 'https://provisioningapi.microsoftonline.com/provisioningwebservice.svc' -ContentType 'application/soap+xml; charset=utf-8' -Body $LogonPost).envelope.header.BecContext.DataBlob.'#text' - - $MSOLXML = @" -http://provisioning.microsoftonline.com/IProvisioningWebService/ListUsersurn:uuid:$TrackingGuidhttp://www.w3.org/2005/08/addressing/anonymous$($AADGraphtoken['Authorization'])$DataBlob250afce61-c917-435b-8c6d-60aa5a8b8aa71.2.183.57Version474e6cb653-c968-4a3a-8a11-2c8919218aebhttps://provisioningapi.microsoftonline.com/provisioningwebservice.svcVersion16$($tenantid)500AscendingNone -"@ - $userlist = do { - if ($null -eq $page) { - $Page = (Invoke-RestMethod -Uri 'https://provisioningapi.microsoftonline.com/provisioningwebservice.svc' -Method post -Body $MSOLXML -ContentType 'application/soap+xml; charset=utf-8').envelope.body.ListUsersResponse.listusersresult.returnvalue - $Page.results.user - } - else { - $Page = (Invoke-RestMethod -Uri 'https://provisioningapi.microsoftonline.com/provisioningwebservice.svc' -Method post -Body $MSOLXML -ContentType 'application/soap+xml; charset=utf-8').envelope.body.NavigateUserResultsResponse.NavigateUserResultsResult.returnvalue - $Page.results.user - } - $MSOLXML = @" -http://provisioning.microsoftonline.com/IProvisioningWebService/NavigateUserResultsurn:uuid:$TrackingGuidhttp://www.w3.org/2005/08/addressing/anonymous$($AADGraphtoken['Authorization'])$DataBlob13050afce61-c917-435b-8c6d-60aa5a8b8aa71.2.183.57Version47$($TrackingGuid)https://provisioningapi.microsoftonline.com/provisioningwebservice.svcVersion16$($tenantid)$($page.listcontext)Next -"@ - } until ($page.IsLastPage -eq $true -or $null -eq $page) - return $userlist -} - -function New-DeviceLogin { - [CmdletBinding()] - param ( - [string]$clientid, - [string]$scope, - [switch]$FirstLogon, - [string]$device_code, - [string]$TenantId - ) - $encodedscope = [uri]::EscapeDataString($scope) - if ($FirstLogon) { - if ($TenantID) { - $ReturnCode = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$($TenantID)/oauth2/v2.0/devicecode" -Method POST -Body "client_id=$($Clientid)&scope=$encodedscope+offline_access+profile+openid" - - } - else { - $ReturnCode = Invoke-RestMethod -Uri "https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode" -Method POST -Body "client_id=$($Clientid)&scope=$encodedscope+offline_access+profile+openid" - } - } - else { - $Checking = Invoke-RestMethod -SkipHttpErrorCheck -Uri "https://login.microsoftonline.com/organizations/oauth2/v2.0/token" -Method POST -Body "client_id=$($Clientid)&scope=$encodedscope+offline_access+profile+openid&grant_type=device_code&device_code=$($device_code)" - if ($checking.refresh_token) { - $ReturnCode = $Checking - } - else { - $returncode = $Checking.error - } - } - return $ReturnCode -} \ No newline at end of file diff --git a/LICENSE.CustomLicenses b/LICENSE.CustomLicenses new file mode 100644 index 000000000000..058ce0a6cd3b --- /dev/null +++ b/LICENSE.CustomLicenses @@ -0,0 +1 @@ +Custom licenses are available upon agreement via Github Sponsorships. Custom licenses will not ahve to be published in this repository. All contributors automatically agree with this provision. \ No newline at end of file diff --git a/ListAPDevices/function.json b/ListAPDevices/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListAPDevices/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListAPDevices/run.ps1 b/ListAPDevices/run.ps1 deleted file mode 100644 index 9233a971a68d..000000000000 --- a/ListAPDevices/run.ps1 +++ /dev/null @@ -1,30 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$userid = $Request.Query.UserID -try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities?`$top=999" -tenantid $TenantFilter - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListAlertsQueue/function.json b/ListAlertsQueue/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListAlertsQueue/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListAlertsQueue/run.ps1 b/ListAlertsQueue/run.ps1 deleted file mode 100644 index f374634c1da8..000000000000 --- a/ListAlertsQueue/run.ps1 +++ /dev/null @@ -1,37 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -$QueuedApps = Get-ChildItem "Cache_Scheduler\*.alert.json" - -$CurrentStandards = foreach ($QueueFile in $QueuedApps) { - $ApplicationFile = Get-Content "$($QueueFile)" | ConvertFrom-Json - if ($ApplicationFile.Tenant -eq $null) { continue } - [PSCustomObject]@{ - tenantName = $ApplicationFile.tenant - AdminPassword = [bool]$ApplicationFile.AdminPassword - DefenderMalware = [bool]$ApplicationFile.DefenderMalware - DefenderStatus = [bool]$ApplicationFile.DefenderStatus - MFAAdmins = [bool]$ApplicationFile.MFAAdmins - MFAAlertUsers = [bool]$ApplicationFile.MFAAlertUsers - NewGA = [bool]$ApplicationFile.NewGA - NewRole = [bool]$ApplicationFile.NewRole - QuotaUsed = [bool]$ApplicationFile.QuotaUsed - UnusedLicenses = [bool]$ApplicationFile.UnusedLicenses - } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($CurrentStandards) - }) diff --git a/ListAllTenantDeviceCompliance/function.json b/ListAllTenantDeviceCompliance/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListAllTenantDeviceCompliance/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListAllTenantDeviceCompliance/run.ps1 b/ListAllTenantDeviceCompliance/run.ps1 deleted file mode 100644 index ad3c01f09176..000000000000 --- a/ListAllTenantDeviceCompliance/run.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter - -if ($TenantFilter -eq 'AllTenants') { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/managedDeviceCompliances" -} -else { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/managedDeviceCompliances?`$top=999&`$filter=organizationId eq '$TenantFilter'" -} - -if ($GraphRequest.value.count -lt 1) { - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = "No data found - This client might not be onboarded in Lighthouse" -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListAppStatus/function.json b/ListAppStatus/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListAppStatus/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListAppStatus/run.ps1 b/ListAppStatus/run.ps1 deleted file mode 100644 index 6efd88101365..000000000000 --- a/ListAppStatus/run.ps1 +++ /dev/null @@ -1,34 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$tenantfilter = $Request.Query.TenantFilter -$appFilter = $Request.Query.AppFilter -Write-Host "Using $appFilter" -$body = @" -{"select":["DeviceName","UserPrincipalName","Platform","AppVersion","InstallState","InstallStateDetail","LastModifiedDateTime","DeviceId","ErrorCode","UserName","UserId","ApplicationId","AssignmentFilterIdsList","AppInstallState","AppInstallStateDetails","HexErrorCode"],"skip":0,"top":999,"filter":"(ApplicationId eq '$Appfilter')","orderBy":[]} -"@ -try { - $GraphRequest = New-Graphpostrequest -uri "https://graph.microsoft.com/beta/deviceManagement/reports/getDeviceInstallStatusReport" -tenantid $TenantFilter -body $body - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListApplicationQueue/function.json b/ListApplicationQueue/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListApplicationQueue/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListApplicationQueue/run.ps1 b/ListApplicationQueue/run.ps1 deleted file mode 100644 index 6c69d8e8f2a6..000000000000 --- a/ListApplicationQueue/run.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -$QueuedApps = Get-ChildItem "ChocoApps.Cache\" - -$CurrentStandards = foreach ($QueueFile in $QueuedApps) { - $ApplicationFile = Get-Content "$($QueueFile)" | ConvertFrom-Json - if ($ApplicationFile.Tenant -eq $null) { continue } - [PSCustomObject]@{ - tenantName = $ApplicationFile.tenant - applicationName = $ApplicationFile.Applicationname - cmdLine = $ApplicationFile.IntuneBody.installCommandLine - assignTo = $ApplicationFile.assignTo - id = $($QueueFile.name) - } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($CurrentStandards) - }) diff --git a/ListApps/function.json b/ListApps/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListApps/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListApps/run.ps1 b/ListApps/run.ps1 deleted file mode 100644 index 1e69dcc6c83d..000000000000 --- a/ListApps/run.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps?`$top=999" -tenantid $TenantFilter | Where-Object -Property "@odata.type" -EQ '#microsoft.graph.win32LobApp' - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListAutopilotconfig/function.json b/ListAutopilotconfig/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListAutopilotconfig/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListAutopilotconfig/run.ps1 b/ListAutopilotconfig/run.ps1 deleted file mode 100644 index 2cd272df0702..000000000000 --- a/ListAutopilotconfig/run.ps1 +++ /dev/null @@ -1,36 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$userid = $Request.Query.UserID -try { - if ($request.query.type -eq "ApProfile") { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles?`$expand=assignments" -tenantid $TenantFilter - } - - if ($request.query.type -eq "ESP") { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments" -tenantid $TenantFilter | Where-Object -Property "@odata.type" -EQ "#microsoft.graph.windows10EnrollmentCompletionPageConfiguration" - } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListAzureADConnectStatus/function.json b/ListAzureADConnectStatus/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListAzureADConnectStatus/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListAzureADConnectStatus/run.ps1 b/ListAzureADConnectStatus/run.ps1 deleted file mode 100644 index 517ebecc5f08..000000000000 --- a/ListAzureADConnectStatus/run.ps1 +++ /dev/null @@ -1,70 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$DataToReturn = $Request.Query.DataToReturn - -if (($DataToReturn -eq 'AzureADConnectSettings') -or ([string]::IsNullOrEmpty($DataToReturn)) ) { - $ADConnectStatusGraph = New-ClassicAPIGetRequest -Resource "74658136-14ec-4630-ad9b-26e160ff0fc6" -TenantID $TenantFilter -Uri "https://main.iam.ad.ext.azure.com/api/Directories/ADConnectStatus" -Method "GET" - $PasswordSyncStatusGraph = New-ClassicAPIGetRequest -Resource "74658136-14ec-4630-ad9b-26e160ff0fc6" -TenantID $TenantFilter -Uri "https://main.iam.ad.ext.azure.com/api/Directories/GetPasswordSyncStatus" -Method "GET" - $AzureADConnectSettings = [PSCustomObject]@{ - dirSyncEnabled = $ADConnectStatusGraph.dirSyncEnabled - dirSyncConfigured = $ADConnectStatusGraph.dirSyncConfigured - passThroughAuthenticationEnabled = $ADConnectStatusGraph.passThroughAuthenticationEnabled - seamlessSingleSignOnEnabled = $ADConnectStatusGraph.seamlessSingleSignOnEnabled - numberOfHoursFromLastSync = $ADConnectStatusGraph.numberOfHoursFromLastSync - passwordSyncStatus = $PasswordSyncStatusGraph - } -} - -if (($DataToReturn -eq 'AzureADObjectsInError') -or ([string]::IsNullOrEmpty($DataToReturn)) ) { - $selectlist = "id", "displayName", "onPremisesProvisioningErrors", "createdDateTime" - $Types = "Users", "Contacts", "Groups" - - $GraphRequest = foreach ($Type in $types) { - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/$($Type)?`$select=$($selectlist -join ',')" -tenantid $TenantFilter | ForEach-Object { - if ($_.id -ne $null) { - $_ | Add-Member -NotePropertyName ObjectType -NotePropertyValue $Type - $_ - } - - } - } - $ObjectsInError = @($GraphRequest) -} - -if ([string]::IsNullOrEmpty($DataToReturn)) { - $FinalObject = [PSCustomObject]@{ - AzureADConnectSettings = $AzureADConnectSettings - ObjectsInError = $ObjectsInError - } -} -if ($DataToReturn -eq 'AzureADConnectSettings') { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $AzureADConnectSettings - }) -} -elseif ($DataToReturn -eq 'AzureADObjectsInError') { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($ObjectsInError) - }) -} -else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($FinalObject) - }) -} - diff --git a/ListBasicAuth/function.json b/ListBasicAuth/function.json deleted file mode 100644 index c26ed09a89e4..000000000000 --- a/ListBasicAuth/function.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": ["get", "post"] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} diff --git a/ListBasicAuth/run.ps1 b/ListBasicAuth/run.ps1 deleted file mode 100644 index 8bfe81f739be..000000000000 --- a/ListBasicAuth/run.ps1 +++ /dev/null @@ -1,35 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$currentTime = Get-Date -Format "yyyy-MM-ddTHH:MM:ss" -$ts = (Get-Date).AddDays(-30) -$endTime = $ts.ToString("yyyy-MM-ddTHH:MM:ss") -##Create Filter for basic auth sign-ins -$filters = "createdDateTime ge $($endTime)Z and createdDateTime lt $($currentTime)Z and (clientAppUsed eq 'AutoDiscover' or clientAppUsed eq 'Exchange ActiveSync' or clientAppUsed eq 'Exchange Online PowerShell' or clientAppUsed eq 'Exchange Web Services' or clientAppUsed eq 'IMAP4' or clientAppUsed eq 'MAPI Over HTTP' or clientAppUsed eq 'Offline Address Book' or clientAppUsed eq 'Outlook Anywhere (RPC over HTTP)' or clientAppUsed eq 'Other clients' or clientAppUsed eq 'POP3' or clientAppUsed eq 'Reporting Web Services' or clientAppUsed eq 'Authenticated SMTP' or clientAppUsed eq 'Outlook Service')" -try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/signIns?api-version=beta&filter=$($filters)" -tenantid $TenantFilter -erroraction stop | Select-Object userPrincipalName, clientAppUsed | Sort-Object -Unique -Property clientAppUsed - $response = $GraphRequest | Select-Object @{ Name = 'UPN'; Expression = { $_.userPrincipalName } }, - @{ Name = 'BasicAuth'; Expression = { $_.clientAppUsed } } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Retrieved basic authentication report" -Sev "Debug" -tenant $TenantFilter - - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($response) - }) -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to retrieve basic authentication report: $($_.Exception.message) " -Sev "Error" -tenant $TenantFilter - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = '500' - Body = $(Get-NormalizedError -message $_.Exception.message) - }) -} diff --git a/ListCalendarPermissions/function.json b/ListCalendarPermissions/function.json deleted file mode 100644 index bec6849b58ab..000000000000 --- a/ListCalendarPermissions/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListCalendarPermissions/run.ps1 b/ListCalendarPermissions/run.ps1 deleted file mode 100644 index ba36ea74ef2e..000000000000 --- a/ListCalendarPermissions/run.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$UserID = $request.Query.UserID -$Tenantfilter = $request.Query.tenantfilter - -try { - $GetCalParam = @{Identity = $UserID; FolderScope = 'Calendar' } - $CalendarFolder = New-ExoRequest -tenantid $Tenantfilter -cmdlet "Get-MailboxFolderStatistics" -cmdParams $GetCalParam | Select-Object -First 1 - $CalParam = @{Identity = "$($UserID):\$($CalendarFolder.name)" } - $GraphRequest = New-ExoRequest -tenantid $Tenantfilter -cmdlet "Get-MailboxFolderPermission" -cmdParams $CalParam | Select-Object Identity, User, AccessRights, FolderName - Log-request -API 'List Calendar Permissions' -tenant $tenantfilter -message "Calendar permissions listed for $($tenantfilter)" -sev Debug - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListConditionalAccessPolicies/function.json b/ListConditionalAccessPolicies/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListConditionalAccessPolicies/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListConditionalAccessPolicies/run.ps1 b/ListConditionalAccessPolicies/run.ps1 deleted file mode 100644 index ebc518207772..000000000000 --- a/ListConditionalAccessPolicies/run.ps1 +++ /dev/null @@ -1,450 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -function Get-LocationNameFromId { - [CmdletBinding()] - param ( - [Parameter()] - $ID, - - [Parameter(Mandatory = $true)] - $Locations - ) - if ($id -eq 'All') { - return 'All' - } - $DisplayName = $Locations | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName - if ([string]::IsNullOrEmpty($displayName)) { - return "" - } - else { - return $DisplayName - } -} - -function Get-RoleNameFromId { - [CmdletBinding()] - param ( - [Parameter()] - $ID, - - [Parameter(Mandatory = $true)] - $RoleDefinitions - ) - if ($id -eq 'All') { - return 'All' - } - $DisplayName = $RoleDefinitions | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName - if ([string]::IsNullOrEmpty($displayName)) { - return "" - } - else { - return $DisplayName - } -} - -function Get-UserNameFromId { - [CmdletBinding()] - param ( - [Parameter()] - $ID, - - [Parameter(Mandatory = $true)] - $Users - ) - if ($id -eq 'All') { - return 'All' - } - $DisplayName = $Users | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName - if ([string]::IsNullOrEmpty($displayName)) { - return "" - } - else { - return $DisplayName - } -} - -function Get-GroupNameFromId { - param ( - [Parameter()] - $ID, - - [Parameter(Mandatory = $true)] - $Groups - ) - if ($id -eq 'All') { - return 'All' - } - $DisplayName = $Groups | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName - if ([string]::IsNullOrEmpty($displayName)) { - return "No Data" - } - else { - return $DisplayName - } -} - -function Get-ApplicationNameFromId { - [CmdletBinding()] - param ( - [Parameter()] - $ID, - - [Parameter(Mandatory = $true)] - $Applications - ) - if ($id -eq 'All') { - return 'All' - } - switch ($id) { - 00000004-0000-0ff1-ce00-000000000000 { $return = 'Microsoft.Lync' } - 00000006-0000-0ff1-ce00-000000000000 { $return = 'Microsoft.Office365Portal' } - 00000003-0000-0ff1-ce00-000000000000 { $return = 'Microsoft.SharePoint ' } - 00000005-0000-0000-c000-000000000000 { $return = 'Microsoft.Azure.Workflow' } - 00000009-0000-0000-c000-000000000000 { $return = 'Microsoft.Azure.AnalysisServices' } - 00000002-0000-0ff1-ce00-000000000000 { $return = 'Microsoft.Exchange' } - 00000007-0000-0ff1-ce00-000000000000 { $return = 'Microsoft.ExchangeOnlineProtection' } - 00000002-0000-0000-c000-000000000000 { $return = 'Microsoft.Azure.ActiveDirectory' } - 8fca0a66-c008-4564-a876-ab3ae0fd5cff { $return = 'Microsoft.SMIT' } - 0000000b-0000-0000-c000-000000000000 { $return = 'Microsoft.SellerDashboard' } - 0000000f-0000-0000-c000-000000000000 { $return = 'Microsoft.Azure.GraphExplorer' } - 0000000c-0000-0000-c000-000000000000 { $return = 'Microsoft App Access Panel' } - 00000013-0000-0000-c000-000000000000 { $return = 'Microsoft.Azure.Portal' } - 00000010-0000-0000-c000-000000000000 { $return = 'Microsoft.Azure.GraphStore' } - 93ee9413-cf4c-4d4e-814b-a91ff20a01bd { $return = 'Workflow' } - aa9ecb1e-fd53-4aaa-a8fe-7a54de2c1334 { $return = 'Microsoft.Office365.Configure' } - 797f4846-ba00-4fd7-ba43-dac1f8f63013 { $return = 'Windows Azure Service Management API' } - 00000005-0000-0ff1-ce00-000000000000 { $return = 'Microsoft.YammerEnterprise' } - 601d4e27-7bb3-4dee-8199-90d47d527e1c { $return = 'Microsoft.Office365.ChangeManagement' } - 6f82282e-0070-4e78-bc23-e6320c5fa7de { $return = 'Microsoft.DiscoveryService' } - 0f698dd4-f011-4d23-a33e-b36416dcb1e6 { $return = 'Microsoft.OfficeClientService' } - 67e3df25-268a-4324-a550-0de1c7f97287 { $return = 'Microsoft.OfficeWebAppsService' } - ab27a73e-a3ba-4e43-8360-8bcc717114d8 { $return = 'Microsoft.OfficeModernCalendar' } - aedca418-a84d-430d-ab84-0b1ef06f318f { $return = 'Workflow' } - 595d87a1-277b-4c0a-aa7f-44f8a068eafc { $return = 'Microsoft.SupportTicketSubmission' } - e3583ad2-c781-4224-9b91-ad15a8179ba0 { $return = 'Microsoft.ExtensibleRealUserMonitoring' } - b645896d-566e-447e-8f7f-e2e663b5d182 { $return = 'OpsDashSharePointApp' } - 48229a4a-9f1d-413a-8b96-4c02462c0360 { $return = 'OpsDashSharePointApp' } - 48717084-a59c-4306-9dc4-3f618dbecdf9 { $return = '"Napa" Office 365 Development Tools' } - c859ff33-eb41-4ba6-8093-a2c5153bbd7c { $return = 'Workflow' } - 67cad61c-3411-48d7-ab73-561c64f11ed6 { $return = 'Workflow' } - 914ed757-9257-4200-b68e-a2bed2f12c5a { $return = 'RbacBackfill' } - 499b84ac-1321-427f-aa17-267ca6975798 { $return = 'Microsoft.VisualStudio.Online' } - b2590339-0887-4e94-93aa-13357eb510d7 { $return = 'Workflow' } - 0000001b-0000-0000-c000-000000000000 { $return = 'Microsoft Power BI Information Service' } - 89f80565-bfac-4c01-9535-9f0eba332ffe { $return = 'Power BI' } - 433895fb-4ec7-45c3-a53c-c44d10f80d5b { $return = 'Compromised Account Service' } - d7c17728-4f1e-4a1e-86cf-7e0adf3fe903 { $return = 'Workflow' } - 17ef6d31-381f-4783-b186-7b440a3c85c1 { $return = 'Workflow' } - 00000012-0000-0000-c000-000000000000 { $return = 'Microsoft.Azure.RMS' } - 81ce94d4-9422-4c0d-a4b9-3250659366ce { $return = 'Workflow' } - 8d3a7d3c-c034-4f19-a2ef-8412952a9671 { $return = 'MicrosoftOffice' } - 0469d4cd-df37-4d93-8a61-f8c75b809164 { $return = 'Microsoft Policy Administration Service' } - 31d3f3f5-7267-45a8-9549-affb00110054 { $return = 'Windows Azure RemoteApp Service' } - 4e004241-32db-46c2-a86f-aaaba29bea9c { $return = 'Workflow' } - 748d098e-7a3b-436d-8b0a-006a58b29647 { $return = 'Workflow' } - dbf08535-1d3b-4f89-bf54-1d48dd613a61 { $return = 'Workflow' } - ed9fe1ef-25a4-482f-9981-2b60f91e2448 { $return = 'Workflow' } - 8ad28d50-ee26-42fc-8a29-e41ea38461f2 { $return = 'Office365RESTAPIExplorer.Office365App' } - 38285dce-a13d-4107-9b04-3016b941bb3a { $return = 'BasicDataOperationsREST' } - 92bb96c8-321c-47f9-bcc5-8849490c2b07 { $return = 'BasicSelfHostedAppREST' } - 488a57a0-00e2-4817-8c8d-cf8a15a994d2 { $return = 'WindowsFormsApplication2.Office365App' } - 11c174dc-1945-4a9a-a36b-c79a0f246b9b { $return = 'AzureApplicationInsights' } - e6acb561-0d94-4287-bd3a-3169f421b112 { $return = 'Tutum' } - 7b77b3a2-8490-49e1-8842-207cd0899af9 { $return = 'Nearpod' } - 0000000a-0000-0000-c000-000000000000 { $return = 'Microsoft.Intune' } - 93625bc8-bfe2-437a-97e0-3d0060024faa { $return = 'SelfServicePasswordReset' } - dee7ba80-6a55-4f3b-a86c-746a9231ae49 { $return = 'MicrosoftAppPlatEMA' } - 803ee9ca-3f7f-4824-bd6e-0b99d720c35c { $return = 'Azure Media Service' } - 2d4d3d8e-2be3-4bef-9f87-7875a61c29de { $return = 'OneNote' } - 8d40666e-5abf-45f6-a5e7-b7192d6d56ed { $return = 'Workflow' } - 262044b1-e2ce-469f-a196-69ab7ada62d3 { $return = 'Backup Management Service' } - 087a2c70-c89e-463f-8dd3-e3959eabb1a9 { $return = 'Microsoft Profile Service Platform Service' } - 7cd684f4-8a78-49b0-91ec-6a35d38739ba { $return = 'Azure Logic Apps' } - c5393580-f805-4401-95e8-94b7a6ef2fc2 { $return = 'Office 365 Management APIs' } - 96231a05-34ce-4eb4-aa6a-70759cbb5e83 { $return = 'MicrosoftAzureRedisCache' } - b8340c3b-9267-498f-b21a-15d5547fd85e { $return = 'Hyper-V Recovery Manager' } - abfa0a7c-a6b6-4736-8310-5855508787cd { $return = 'Microsoft.Azure.WebSites' } - c44b4083-3bb0-49c1-b47d-974e53cbdf3c { $return = 'IbizaPortal' } - 905fcf26-4eb7-48a0-9ff0-8dcc7194b5ba { $return = 'Sway' } - b10686fd-6ba8-49f2-a3cd-67e4d2f52ac8 { $return = 'NovoEd' } - c606301c-f764-4e6b-aa45-7caaaea93c9a { $return = 'OfficeStore' } - 569e8598-685b-4ba2-8bff-5bced483ac46 { $return = 'Evercontact' } - 20a23a2f-8c32-4de7-8063-8c8f909602c0 { $return = 'Workflow' } - aaf214cc-8013-4b95-975f-13203ae36039 { $return = 'Power BI Tiles' } - d88a361a-d488-4271-a13f-a83df7dd99c2 { $return = 'IDML Graph Resolver Service and CAD' } - dff9b531-6290-4620-afce-26826a62a4e7 { $return = 'DocuSign' } - 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 { $return = 'Device Registration Service' } - 3290e3f7-d3ac-4165-bcef-cf4874fc4270 { $return = 'Smartsheet' } - a4ee6867-8640-4495-b1fd-8b26037a5bd3 { $return = 'Workflow' } - aa0e3dd4-df02-478d-869e-fc61dd71b6e8 { $return = 'Workflow' } - 0f6edad5-48f2-4585-a609-d252b1c52770 { $return = 'AIGraphClient' } - 0c8139b5-d545-4448-8d2b-2121bb242680 { $return = 'BillingExtension' } - 475226c6-020e-4fb2-8a90-7a972cbfc1d4 { $return = 'KratosAppsService' } - 39624784-6cbe-4a60-afbe-9f46d10fdb27 { $return = 'SkypeForBusinessRemotePowershell' } - 8bdebf23-c0fe-4187-a378-717ad86f6a53 { $return = 'ResourceHealthRP' } - c161e42e-d4df-4a3d-9b42-e7a3c31f59d4 { $return = 'MicrosoftIntuneAPI' } - 9cb77803-d937-493e-9a3b-4b49de3f5a74 { $return = 'MicrosoftIntuneServiceDiscovery' } - ddbf3205-c6bd-46ae-8127-60eb93363864 { $return = 'Microsoft Azure Batch' } - 80ccca67-54bd-44ab-8625-4b79c4dc7775 { $return = 'ComplianceCenter' } - 0a5f63c0-b750-4f38-a71c-4fc0d58b89e2 { $return = 'Microsoft Mobile Application Management' } - e1335bb1-2aec-4f92-8140-0e6e61ae77e5 { $return = 'CIWebService' } - 75018fbe-21fe-4a57-b63c-83252b5eaf16 { $return = 'TeamImprover - Team Organization Chart' } - a393296b-5695-4463-97cb-9fa8638a494a { $return = 'My SharePoint Sites' } - fe217466-5583-431c-9531-14ff7268b7b3 { $return = 'Microsoft Education' } - 5bfe8a29-054e-4348-9e7a-3981b26b125f { $return = 'Bing Places for Business' } - eaf8a961-f56e-47eb-9ffd-936e22a554ef { $return = 'DevilFish' } - 4b4b1d56-1f03-47d9-a0a3-87d4afc913c9 { $return = 'Wunderlist' } - 00000003-0000-0000-c000-000000000000 { $return = 'Microsoft Graph' } - 60e6cd67-9c8c-4951-9b3c-23c25a2169af { $return = 'Compute Resource Provider' } - 507bc9da-c4e2-40cb-96a7-ac90df92685c { $return = 'Office365Reports' } - 09abbdfd-ed23-44ee-a2d9-a627aa1c90f3 { $return = 'ProjectWorkManagement' } - 28ec9756-deaf-48b2-84d5-a623b99af263 { $return = 'Office Personal Assistant at Work Service' } - 9e4a5442-a5c9-4f6f-b03f-5b9fcaaf24b1 { $return = 'OfficeServicesManager' } - 3138fe80-4087-4b04-80a6-8866c738028a { $return = 'SharePoint Notification Service' } - d2a0a418-0aac-4541-82b2-b3142c89da77 { $return = 'MicrosoftAzureOperationalInsights' } - 2cf9eb86-36b5-49dc-86ae-9a63135dfa8c { $return = 'AzureTrafficManagerandDNS' } - 32613fc5-e7ac-4894-ac94-fbc39c9f3e4a { $return = 'OAuth Sandbox' } - 925eb0d0-da50-4604-a19f-bd8de9147958 { $return = 'Groupies Web Service' } - e4ab13ed-33cb-41b4-9140-6e264582cf85 { $return = 'Azure SQL Database Backup To Azure Backup Vault' } - ad230543-afbe-4bb4-ac4f-d94d101704f8 { $return = 'Apiary for Power BI' } - 11cd3e2e-fccb-42ad-ad00-878b93575e07 { $return = 'Automated Call Distribution' } - de17788e-c765-4d31-aba4-fb837cfff174 { $return = 'Skype for Business Management Reporting and Analytics' } - 65d91a3d-ab74-42e6-8a2f-0add61688c74 { $return = 'Microsoft Approval Management' } - 5225545c-3ebd-400f-b668-c8d78550d776 { $return = 'Office Agent Service' } - 1cda9b54-9852-4a5a-96d4-c2ab174f9edf { $return = 'O365Account' } - 4747d38e-36c5-4bc3-979b-b0ef74df54d1 { $return = 'PushChannel' } - b97b6bd4-a49f-4a0c-af18-af507d1da76c { $return = 'Office Shredding Service' } - d4ebce55-015a-49b5-a083-c84d1797ae8c { $return = 'Microsoft Intune Enrollment' } - 5b20c633-9a48-4a5f-95f6-dae91879051f { $return = 'Azure Information Protection' } - 441509e5-a165-4363-8ee7-bcf0b7d26739 { $return = 'EnterpriseAgentPlatform' } - e691bce4-6612-4025-b94c-81372a99f77e { $return = 'Boomerang' } - 8edd93e1-2103-40b4-bd70-6e34e586362d { $return = 'Windows Azure Security Resource Provider' } - 94c63fef-13a3-47bc-8074-75af8c65887a { $return = 'Office Delve' } - e95d8bee-4725-4f59-910d-94d415da51b9 { $return = 'Skype for Business Name Dictionary Service' } - e3c5dbcd-bb5f-4bda-b943-adc7a5bbc65e { $return = 'Workflow' } - 8602e328-9b72-4f2d-a4ae-1387d013a2b3 { $return = 'Azure API Management' } - 8b3391f4-af01-4ee8-b4ea-9871b2499735 { $return = 'O365 Secure Score' } - c26550d6-bc82-4484-82ca-ac1c75308ca3 { $return = 'Office 365 YammerOnOls' } - 33be1cef-03fb-444b-8fd3-08ca1b4d803f { $return = 'OneDrive Web' } - dcad865d-9257-4521-ad4d-bae3e137b345 { $return = 'Microsoft SharePoint Online - SharePoint Home' } - b2cc270f-563e-4d8a-af47-f00963a71dcd { $return = 'OneProfile Service' } - 4660504c-45b3-4674-a709-71951a6b0763 { $return = 'Microsoft Invitation Acceptance Portal' } - ba23cd2a-306c-48f2-9d62-d3ecd372dfe4 { $return = 'OfficeGraph' } - d52485ee-4609-4f6b-b3a3-68b6f841fa23 { $return = 'On-Premises Data Gateway Connector' } - 996def3d-b36c-4153-8607-a6fd3c01b89f { $return = 'Dynamics 365 for Financials' } - b6b84568-6c01-4981-a80f-09da9a20bbed { $return = 'Microsoft Invoicing' } - 9d3e55ba-79e0-4b7c-af50-dc460b81dca1 { $return = 'Microsoft Azure Data Catalog' } - 4345a7b9-9a63-4910-a426-35363201d503 { $return = 'O365 Suite UX' } - ac815d4a-573b-4174-b38e-46490d19f894 { $return = 'Workflow' } - bb8f18b0-9c38-48c9-a847-e1ef3af0602d { $return = 'Microsoft.Azure.ActiveDirectoryIUX' } - cc15fd57-2c6c-4117-a88c-83b1d56b4bbe { $return = 'Microsoft Teams Services' } - 5e3ce6c0-2b1f-4285-8d4b-75ee78787346 { $return = 'Skype Teams' } - 1fec8e78-bce4-4aaf-ab1b-5451cc387264 { $return = 'Microsoft Teams' } - 6d32b7f8-782e-43e0-ac47-aaad9f4eb839 { $return = 'Permission Service O365' } - cdccd920-384b-4a25-897d-75161a4b74c1 { $return = 'Skype Teams Firehose' } - 1c0ae35a-e2ec-4592-8e08-c40884656fa5 { $return = 'Skype Team Substrate connector' } - cf6c77f8-914f-4078-baef-e39a5181158b { $return = 'Skype Teams Settings Store' } - 64f79cb9-9c82-4199-b85b-77e35b7dcbcb { $return = 'Microsoft Teams Bots' } - b7912db9-aa33-4820-9d4f-709830fdd78f { $return = 'ConnectionsService' } - 82f77645-8a66-4745-bcdf-9706824f9ad0 { $return = 'PowerApps Runtime Service' } - 6204c1d1-4712-4c46-a7d9-3ed63d992682 { $return = 'Microsoft Flow Portal' } - 7df0a125-d3be-4c96-aa54-591f83ff541c { $return = 'Microsoft Flow Service' } - 331cc017-5973-4173-b270-f0042fddfd75 { $return = 'PowerAppsService' } - 0a0e9e37-25e3-47d4-964c-5b8237cad19a { $return = 'CloudSponge' } - df09ff61-2178-45d8-888c-4210c1c7b0b2 { $return = 'O365 UAP Processor' } - 8338dec2-e1b3-48f7-8438-20c30a534458 { $return = 'ViewPoint' } - 00000001-0000-0000-c000-000000000000 { $return = 'Azure ESTS Service' } - 394866fc-eedb-4f01-8536-3ff84b16be2a { $return = 'Microsoft People Cards Service' } - 0a0a29f9-0a25-49c7-94bf-c53c3f8fa69d { $return = 'Cortana Experience with O365' } - bb2a2e3a-c5e7-4f0a-88e0-8e01fd3fc1f4 { $return = 'CPIM Service' } - 0004c632-673b-4105-9bb6-f3bbd2a927fe { $return = 'PowerApps and Flow' } - d3ce4cf8-6810-442d-b42e-375e14710095 { $return = 'Graph Explorer' } - 3aa5c166-136f-40eb-9066-33ac63099211 { $return = 'O365 Customer Monitoring' } - d6fdaa33-e821-4211-83d0-cf74736489e1 { $return = 'Microsoft Service Trust' } - ef4a2a24-4b4e-4abf-93ba-cc11c5bd442c { $return = 'Edmodo' } - b692184e-b47f-4706-b352-84b288d2d9ee { $return = 'Microsoft.MileIQ.RESTService' } - a25dbca8-4e60-48e5-80a2-0664fdb5c9b6 { $return = 'Microsoft.MileIQ' } - f7069a8d-9edc-4300-b365-ae53c9627fc4 { $return = 'Microsoft.MileIQ.Dashboard' } - 02e3ae74-c151-4bda-b8f0-55fbf341de08 { $return = 'Application Registration Portal' } - 1f5530b3-261a-47a9-b357-ded261e17918 { $return = 'Azure Multi-Factor Auth Connector' } - 981f26a1-7f43-403b-a875-f8b09b8cd720 { $return = 'Azure Multi-Factor Auth Client' } - 6ea8091b-151d-447a-9013-6845b83ba57b { $return = 'AD Hybrid Health' } - fc68d9e5-1f76-45ef-99aa-214805418498 { $return = 'Azure AD Identity Protection' } - 01fc33a7-78ba-4d2f-a4b7-768e336e890e { $return = 'MS-PIM' } - a6aa9161-5291-40bb-8c5c-923b567bee3b { $return = 'Storage Resource Provider' } - 4e9b8b9a-1001-4017-8dd1-6e8f25e19d13 { $return = 'Adobe Acrobat' } - 159b90bb-bb28-4568-ad7c-adad6b814a2f { $return = 'LastPass' } - b4bddae8-ab25-483e-8670-df09b9f1d0ea { $return = 'Signup' } - aa580612-c342-4ace-9055-8edee43ccb89 { $return = 'Microsoft StaffHub' } - 51133ff5-8e0d-4078-bcca-84fb7f905b64 { $return = 'Microsoft Teams Mailhook' } - ab3be6b7-f5df-413d-ac2d-abf1e3fd9c0b { $return = 'Microsoft Teams Graph Service' } - b1379a75-ce5e-4fa3-80c6-89bb39bf646c { $return = 'Microsoft Teams Chat Aggregator' } - 48af08dc-f6d2-435f-b2a7-069abd99c086 { $return = 'Connectors' } - d676e816-a17b-416b-ac1a-05ad96f43686 { $return = 'Workflow' } - cfa8b339-82a2-471a-a3c9-0fc0be7a4093 { $return = 'Azure Key Vault' } - c2f89f53-3971-4e09-8656-18eed74aee10 { $return = 'calendly' } - 6da466b6-1d13-4a2c-97bd-51a99e8d4d74 { $return = 'Exchange Office Graph Client for AAD - Interactive' } - 0eda3b13-ddc9-4c25-b7dd-2f6ea073d6b7 { $return = 'Microsoft Flow CDS Integration Service' } - eacba838-453c-4d3e-8c6a-eb815d3469a3 { $return = 'Microsoft Flow CDS Integration Service TIP1' } - 4ac7d521-0382-477b-b0f8-7e1d95f85ca2 { $return = 'SQL Server Analysis Services Azure' } - b4114287-89e4-4209-bd99-b7d4919bcf64 { $return = 'OfficeDelve' } - 4580fd1d-e5a3-4f56-9ad1-aab0e3bf8f76 { $return = 'Call Recorder' } - a855a166-fd92-4c76-b60d-a791e0762432 { $return = 'Microsoft Teams VSTS' } - c37c294f-eec8-47d2-b3e2-fc3daa8f77d3 { $return = 'Workflow' } - fc75330b-179d-49af-87dd-3b1acf6827fa { $return = 'AzureAutomationAADPatchS2S' } - 766d89a4-d6a6-444d-8a5e-e1a18622288a { $return = 'OneDrive' } - f16c4a38-5aff-4549-8199-ee7d3c5bd8dc { $return = 'Workflow' } - 4c4f550b-42b2-4a16-93f9-fdb9e01bb6ed { $return = 'Targeted Messaging Service' } - 765fe668-04e7-42ba-aec0-2c96f1d8b652 { $return = 'Exchange Office Graph Client for AAD - Noninteractive' } - 0130cc9f-7ac5-4026-bd5f-80a08a54e6d9 { $return = 'Azure Data Warehouse Polybase' } - a1cf9e0a-fe14-487c-beb9-dd3360921173 { $return = 'Meetup' } - 76cd24bf-a9fc-4344-b1dc-908275de6d6d { $return = 'Azure SQL Virtual Network to Network Resource Provider' } - 9f505dbd-a32c-4685-b1c6-72e4ef704cb0 { $return = 'Amazon Alexa' } - 1e2ca66a-c176-45ea-a877-e87f7231e0ee { $return = 'Microsoft B2B Admin Worker' } - 2634dd23-5e5a-431c-81ca-11710d9079f4 { $return = 'Microsoft Stream Service' } - cf53fce8-def6-4aeb-8d30-b158e7b1cf83 { $return = 'Microsoft Stream Portal' } - c9a559d2-7aab-4f13-a6ed-e7e9c52aec87 { $return = 'Microsoft Forms' } - 978877ea-b2d6-458b-80c7-05df932f3723 { $return = 'Microsoft Teams AuditService' } - dbc36ae1-c097-4df9-8d94-343c3d091a76 { $return = 'Service Encryption' } - fa7ff576-8e31-4a58-a5e5-780c1cd57caa { $return = 'OneNote' } - cb4dc29f-0bf4-402a-8b30-7511498ed654 { $return = 'Power BI Premium' } - f5aeb603-2a64-4f37-b9a8-b544f3542865 { $return = 'Microsoft Teams RetentionHook Service' } - da109bdd-abda-4c06-8808-4655199420f8 { $return = 'Glip Contacts' } - 76c7f279-7959-468f-8943-3954880e0d8c { $return = 'Azure SQL Managed Instance to Microsoft.Network' } - 3a9ddf38-83f3-4ea1-a33a-ecf934644e2d { $return = 'Protected Message Viewer' } - 5635d99c-c364-4411-90eb-764a511b5fdf { $return = 'Responsive Banner Slider' } - a43e5392-f48b-46a4-a0f1-098b5eeb4757 { $return = 'Cloudsponge' } - d73f4b35-55c9-48c7-8b10-651f6f2acb2e { $return = 'MCAPI Authorization Prod' } - 166f1b03-5b19-416f-a94b-1d7aa2d247dc { $return = 'Office Hive' } - b815ce1c-748f-4b1e-9270-a42c1fa4485a { $return = 'Workflow' } - bd7b778b-4aa8-4cde-8d90-8aeb821c0bd2 { $return = 'Workflow' } - 9d06afd9-66c9-49a6-b385-ea7509332b0b { $return = 'O365SBRM Service' } - 9ea1ad79-fdb6-4f9a-8bc3-2b70f96e34c7 { $return = 'Bing' } - 57fb890c-0dab-4253-a5e0-7188c88b2bb4 { $return = 'SharePoint Online Client' } - 45c10911-200f-4e27-a666-9e9fca147395 { $return = 'drawio' } - b73f62d0-210b-4396-a4c5-ea50c4fab79b { $return = 'Skype Business Voice Fraud Detection and Prevention' } - bc59ab01-8403-45c6-8796-ac3ef710b3e3 { $return = 'Outlook Online Add-in App' } - 035f9e1d-4f00-4419-bf50-bf2d87eb4878 { $return = 'Azure Monitor Restricted' } - 7c33bfcb-8d33-48d6-8e60-dc6404003489 { $return = 'Network Watcher' } - a0be0c72-870e-46f0-9c49-c98333a996f7 { $return = 'AzureDnsFrontendApp' } - 1e3e4475-288f-4018-a376-df66fd7fac5f { $return = 'NetworkTrafficAnalyticsService' } - 7557eb47-c689-4224-abcf-aef9bd7573df { $return = 'Skype for Business' } - c39c9bac-9d1f-4dfb-aa29-27f6365e5cb7 { $return = 'Azure Advisor' } - 2087bd82-7206-4c0a-b305-1321a39e5926 { $return = 'Microsoft To-Do' } - f8d98a96-0999-43f5-8af3-69971c7bb423 { $return = 'iOS Accounts' } - c27373d3-335f-4b45-8af9-fe81c240d377 { $return = 'P2P Server' } - 5c2ffddc-f1d7-4dc3-926e-3c1bd98e32bd { $return = 'RITS Dev' } - 982bda36-4632-4165-a46a-9863b1bbcf7d { $return = 'O365 Demeter' } - 98c8388a-4e86-424f-a176-d1288462816f { $return = 'OfficeFeedProcessors' } - bf9fc203-c1ff-4fd4-878b-323642e462ec { $return = 'Jarvis Transaction Service' } - 257601fd-462f-4a21-b623-7f719f0f90f4 { $return = 'Centralized Deployment' } - 2a486b53-dbd2-49c0-a2bc-278bdfc30833 { $return = 'Cortana at Work Service' } - 22d7579f-06c2-4baa-89d2-e844486adb9d { $return = 'Cortana at Work Bing Services' } - 4c8f074c-e32b-4ba7-b072-0f39d71daf51 { $return = 'IPSubstrate' } - a164aee5-7d0a-46bb-9404-37421d58bdf7 { $return = 'Microsoft Teams AuthSvc' } - 354b5b6d-abd6-4736-9f51-1be80049b91f { $return = 'Microsoft Mobile Application Management Backend' } - 82b293b2-d54d-4d59-9a95-39c1c97954a7 { $return = 'Tasks in a Box' } - fdc83783-b652-4258-a622-66bc85f1a871 { $return = 'FedExPackageTracking' } - d0597157-f0ae-4e23-b06c-9e65de434c4f { $return = 'Microsoft Teams Task Service' } - f5c26e74-f226-4ae8-85f0-b4af0080ac9e { $return = 'Application Insights API' } - 57c0fc58-a83a-41d0-8ae9-08952659bdfd { $return = 'Azure Cosmos DB Virtual Network To Network Resource Provider' } - 744e50be-c4ff-4e90-8061-cd7f1fabac0b { $return = 'LinkedIn Microsoft Graph Connector' } - 823dfde0-1b9a-415a-a35a-1ad34e16dd44 { $return = 'Microsoft Teams Wiki Images Migration' } - 3ab9b3bc-762f-4d62-82f7-7e1d653ce29f { $return = 'Microsoft Volume Licensing' } - 44eb7794-0e11-42b6-800b-dc31874f9f60 { $return = 'Alignable' } - c58637bb-e2e1-4312-8a00-04b5ffcd3403 { $return = 'SharePoint Online Client Extensibility' } - 62b732f7-fc71-40bc-b27d-35efcb0509de { $return = 'Microsoft Teams AadSync' } - 07978fee-621a-42df-82bb-3eabc6511c26 { $return = 'SurveyMonkey' } - 47ee738b-3f1a-4fc7-ab11-37e4822b007e { $return = 'Azure AD Application Proxy' } - 00000007-0000-0000-c000-000000000000 { $return = 'Dynamics CRM Online' } - 913c6de4-2a4a-4a61-a9ce-945d2b2ce2e0 { $return = 'Dynamics Lifecycle services' } - f217ad13-46b8-4c5b-b661-876ccdf37302 { $return = 'Attach OneDrive files to Asana' } - 00000008-0000-0000-c000-000000000000 { $return = 'Microsoft.Azure.DataMarket' } - 9b06ebd4-9068-486b-bdd2-dac26b8a5a7a { $return = 'Microsoft.DynamicsMarketing' } - e8ab36af-d4be-4833-a38b-4d6cf1cfd525 { $return = 'Microsoft Social Engagement' } - 8909aac3-be91-470c-8a0b-ff09d669af91 { $return = 'Microsoft Parature Dynamics CRM' } - 71234da4-b92f-429d-b8ec-6e62652e50d7 { $return = 'Microsoft Customer Engagement Portal' } - b861dbcc-a7ef-4219-a005-0e4de4ea7dcf { $return = 'Data Export Service for Microsoft Dynamics 365' } - 2db8cb1d-fb6c-450b-ab09-49b6ae35186b { $return = 'Microsoft Dynamics CRM Learning Path' } - 2e49aa60-1bd3-43b6-8ab6-03ada3d9f08b { $return = 'Dynamics Data Integration' } - } - - if ([string]::IsNullOrEmpty($return)) { - $return = $Applications | Where-Object { $_.Appid -eq $ID } | Select-Object -ExpandProperty DisplayName - } - - if ([string]::IsNullOrEmpty($return)) { - $return = $Applications | Where-Object { $_.ID -eq $ID } | Select-Object -ExpandProperty DisplayName - } - - if ([string]::IsNullOrEmpty($return)) { - $return = '' - } - - return $return -} - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -try { - $ConditionalAccessPolicyOutput = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies" -tenantid $tenantfilter - $AllNamedLocations = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations" -tenantid $tenantfilter - $AllApplications = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications" -tenantid $tenantfilter - $AllRoleDefinitions = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions" -tenantid $tenantfilter - $GroupListOutput = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups" -tenantid $tenantfilter - $UserListOutput = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users" -tenantid $tenantfilter | Select-Object * -ExcludeProperty *extensionAttribute* - - $GraphRequest = foreach ($cap in $ConditionalAccessPolicyOutput) { - $temp = [PSCustomObject]@{ - id = $cap.id - displayName = $cap.displayName - customer = $cap.Customer - tenantID = $cap.TenantID - createdDateTime = $(if (![string]::IsNullOrEmpty($cap.createdDateTime)) { [datetime]$cap.createdDateTime | Get-Date -Format "yyyy-MM-dd HH:mm" }else { "" }) - modifiedDateTime = $(if (![string]::IsNullOrEmpty($cap.modifiedDateTime)) { [datetime]$cap.modifiedDateTime | Get-Date -Format "yyyy-MM-dd HH:mm" }else { "" }) - state = $cap.state - clientAppTypes = ($cap.conditions.clientAppTypes) -join "," - includePlatforms = ($cap.conditions.platforms.includePlatforms) -join "," - excludePlatforms = ($cap.conditions.platforms.excludePlatforms) -join "," - includeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.includeLocations) -join "," - excludeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.excludeLocations) -join "," - includeApplications = ($cap.conditions.applications.includeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -id $_ }) -join "," - excludeApplications = ($cap.conditions.applications.excludeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -id $_ }) -join "," - includeUserActions = ($cap.conditions.applications.includeUserActions | Out-String) - includeAuthenticationContextClassReferences = ($cap.conditions.applications.includeAuthenticationContextClassReferences | Out-String) - includeUsers = ($cap.conditions.users.includeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String - excludeUsers = ($cap.conditions.users.excludeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String - includeGroups = ($cap.conditions.users.includeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String - excludeGroups = ($cap.conditions.users.excludeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String - includeRoles = ($cap.conditions.users.includeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String - excludeRoles = ($cap.conditions.users.excludeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String - grantControlsOperator = ($cap.grantControls.operator) -join "," - builtInControls = ($cap.grantControls.builtInControls) -join "," - customAuthenticationFactors = ($cap.grantControls.customAuthenticationFactors) -join "," - termsOfUse = ($cap.grantControls.termsOfUse) -join "," - } - $temp - } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListContacts/function.json b/ListContacts/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListContacts/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListContacts/run.ps1 b/ListContacts/run.ps1 deleted file mode 100644 index a1281fe207cf..000000000000 --- a/ListContacts/run.ps1 +++ /dev/null @@ -1,31 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$selectlist = "id", "companyName", "displayName", "mail", "onPremisesSyncEnabled", "editURL" - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$ContactID = $Request.Query.ContactID - -Write-Host "Tenant Filter: $TenantFilter" -try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/contacts/$($ContactID)?`$top=999&`$select=$($selectlist -join ',')" -tenantid $TenantFilter | Select-Object $selectlist | ForEach-Object { - $_.editURL = "https://outlook.office365.com/ecp/@$TenantFilter/UsersGroups/EditContact.aspx?exsvurl=1&realm=$($Env:TenantID)&mkt=en-US&id=$($_.id)" - $_ - } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} diff --git a/ListDefenderState/function.json b/ListDefenderState/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListDefenderState/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListDefenderState/run.ps1 b/ListDefenderState/run.ps1 deleted file mode 100644 index 989a48fac53c..000000000000 --- a/ListDefenderState/run.ps1 +++ /dev/null @@ -1,26 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -$StatusCode = [HttpStatusCode]::OK - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter - -$GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsProtectionStates?`$top=999&`$filter=tenantId eq '$TenantFilter'" - -if ($GraphRequest.value.count -lt 1) { - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = "No data found - This client might not be onboarded in Lighthouse" -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListDevices/function.json b/ListDevices/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListDevices/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListDevices/run.ps1 b/ListDevices/run.ps1 deleted file mode 100644 index f06692c71935..000000000000 --- a/ListDevices/run.ps1 +++ /dev/null @@ -1,43 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/devices" -Tenantid $tenantfilter | Select-Object @{ Name = 'ID'; Expression = { $_.'id' } }, - @{ Name = 'accountEnabled'; Expression = { $_.'accountEnabled' } }, - @{ Name = 'approximateLastSignInDateTime'; Expression = { ($_.'approximateLastSignInDateTime').ToString("yyyy-MM-dd HH:mm") } }, - @{ Name = 'createdDateTime'; Expression = { ($_.'createdDateTime').ToString("yyyy-MM-dd") } }, - @{ Name = 'deviceOwnership'; Expression = { $_.'deviceOwnership' } }, - @{ Name = 'displayName'; Expression = { $_.'displayName' } }, - @{ Name = 'enrollmentType'; Expression = { $_.'enrollmentType' } }, - @{ Name = 'isCompliant'; Expression = { $(if ([string]::IsNullOrEmpty($_.'isCompliant')) { $false }else { $true }) } }, - @{ Name = 'managementType'; Expression = { $_.'managementType' } }, - @{ Name = 'manufacturer'; Expression = { $_.'manufacturer' } }, - @{ Name = 'model'; Expression = { $_.'model' } }, - @{ Name = 'operatingSystem'; Expression = { $_.'operatingSystem' } }, - @{ Name = 'onPremisesSyncEnabled'; Expression = { $(if ([string]::IsNullOrEmpty($_.'onPremisesSyncEnabled')) { $false }else { $true }) } }, - @{ Name = 'operatingSystemVersion'; Expression = { $_.'operatingSystemVersion' } }, - @{ Name = 'trustType'; Expression = { $_.'trustType' } } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage - -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListDomainHealth/function.json b/ListDomainHealth/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListDomainHealth/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListDomainHealth/run.ps1 b/ListDomainHealth/run.ps1 deleted file mode 100644 index a69b5d0308a7..000000000000 --- a/ListDomainHealth/run.ps1 +++ /dev/null @@ -1,95 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -Import-Module .\DNSHelper.psm1 - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' - -# Write to the Azure Functions log stream. -Write-Host 'PowerShell HTTP trigger function processed a request.' - -$StatusCode = [HttpStatusCode]::OK -try { - if ($Request.Query.Action) { - if ($Request.Query.Domain -match '^(((?!-))(xn--|_{1,1})?[a-z0-9-]{0,61}[a-z0-9]{1,1}\.)*(xn--)?([a-z0-9][a-z0-9\-]{0,60}|[a-z0-9-]{1,30}\.[a-z]{2,})$') { - switch ($Request.Query.Action) { - 'ReadSpfRecord' { - $SpfQuery = @{ - Domain = $Request.Query.Domain - } - - if ($Request.Query.ExpectedInclude) { - $SpfQuery.ExpectedInclude = $Request.Query.ExpectedInclude - } - - if ($Request.Query.Record) { - $SpfQuery.Record = $Request.Query.Record - } - - $Body = Read-SpfRecord @SpfQuery - } - 'ReadDmarcPolicy' { - $Body = Read-DmarcPolicy -Domain $Request.Query.Domain - } - 'ReadDkimRecord' { - $DkimQuery = @{ - Domain = $Request.Query.Domain - } - if ($Request.Query.Selector) { - $DkimQuery.Selectors = ($Request.Query.Selector).trim() -split '\s*,\s*' - } - $Body = Read-DkimRecord @DkimQuery - } - 'ReadMXRecord' { - $Body = Read-MXRecord -Domain $Request.Query.Domain - } - 'TestDNSSEC' { - $Body = Test-DNSSEC -Domain $Request.Query.Domain - } - 'ReadWhoisRecord' { - $Body = Read-WhoisRecord -Query $Request.Query.Domain - } - 'ReadNSRecord' { - $Body = Read-NSRecord -Domain $Request.Query.Domain - } - 'TestHttpsCertificate' { - $HttpsQuery = @{ - Domain = $Request.Query.Domain - } - if ($Request.Query.Subdomains) { - $HttpsQuery.Subdomains = ($Request.Query.Subdomains).trim() -split '\s*,\s*' - } - else { - $HttpsQuery.Subdomains = 'www' - } - - $Body = Test-HttpsCertificate @HttpsQuery - } - 'TestMtaSts' { - $HttpsQuery = @{ - Domain = $Request.Query.Domain - } - $Body = Test-MtaSts @HttpsQuery - } - } - } - else { - $body = [pscustomobject]@{'Results' = "Domain: $($Request.Query.Domain) is invalid" } - $StatusCode = [HttpStatusCode]::BadRequest - } - } -} -catch { - Log-Request -API $APINAME -tenant $($name) -user $request.headers.'x-ms-client-principal' -message "DNS Helper API failed. $($_.Exception.Message)" -Sev 'Error' - $body = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } - $StatusCode = [HttpStatusCode]::BadRequest -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $body - }) diff --git a/ListDomainTests/function.json b/ListDomainTests/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListDomainTests/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListDomainTests/run.ps1 b/ListDomainTests/run.ps1 deleted file mode 100644 index 2e187203b9f6..000000000000 --- a/ListDomainTests/run.ps1 +++ /dev/null @@ -1,175 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Lets get the DNS Module Helper -Import-Module ".\DNSHelper.psm1" - -# Interact with query parameters or the body of the request. -$DomainToCheck = $Request.body.DomainToCheck -Write-Host "Domaintocheckpost: $($Request.body.DomainToCheck)" -$DomainToCheck = $DomainToCheck.TrimEnd('/') -$DomainToCheck = $DomainToCheck.Replace('https://','') -$DomainToCheck = $DomainToCheck.Replace('http://','') -$DomainToCheck = $DomainToCheck.Replace('www.','') -Write-Host "Final Domain to Test after Processing: $($DomainToCheck)" - -$FinalObject = [PSCustomObject]@{ - DomainChecked = $DomainToCheck - SPFResults = "" - SPFPassCount = "" - SPFWarnCount = "" - SPFFailCount = "" - SPFFinalState = "" - DMARCResults = "" - DMARCPassCount = "" - DMARCWarnCount = "" - DMARCFailCount = "" - DMARCFinalState = "" - MXResults = "" - MXPassCount = "" - MXWarnCount = "" - MXFailCount = "" - MXFinalState = "" - DNSSECResults = "" - DNSSECPassCount = "" - DNSSECWarnCount = "" - DNSSECFailCount = "" - DNSSECFinalState = "" - DKIMResults = "" - DKIMPassCount = "" - DKIMWarnCount = "" - DKIMFailCount = "" - DKIMFinalState = "" -} - - - -try { - $FinalObject.SPFResults = Read-SpfRecord -Domain $DomainToCheck - $FinalObject.SPFPassCount = $FinalObject.SPFResults.ValidationPasses | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.SPFWarnCount = $FinalObject.SPFResults.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.SPFFailCount = $FinalObject.SPFResults.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - if ($FinalObject.SPFFailCount -gt 0) { - $FinalObject.SPFFinalState = 'Fail' - } - elseif ($FinalObject.SPFWarnCount -gt 0) { - $FinalObject.SPFFinalState = 'Warn' - } - elseif ($FinalObject.SPFPassCount -gt 0) { - $FinalObject.SPFFinalState = 'Pass' - } - else { - $FinalObject.SPFFinalState = 'Unknown' - } -} -catch { - Log-Request -API $APINAME -tenant "CIPP" -user $request.headers.'x-ms-client-principal' -message "SPF Record Lookup Failed for $($DomainToCheck). $($_.Exception.Message)" -Sev "Error" -} - -try { - $FinalObject.DMARCResults = Read-DmarcPolicy -Domain $DomainToCheck - $FinalObject.DMARCPassCount = $FinalObject.DMARCResults.ValidationPasses | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.DMARCWarnCount = $FinalObject.DMARCResults.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.DMARCFailCount = $FinalObject.DMARCResults.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - if ($FinalObject.DMARCFailCount -gt 0) { - $FinalObject.DMARCFinalState = 'Fail' - } - elseif ($FinalObject.DMARCWarnCount -gt 0) { - $FinalObject.DMARCFinalState = 'Warn' - } - elseif ($FinalObject.DMARCPassCount -gt 0) { - $FinalObject.DMARCFinalState = 'Pass' - } - else { - $FinalObject.DMARCFinalState = 'Unknown' - } -} -catch { - Log-Request -API $APINAME -tenant "CIPP" -user $request.headers.'x-ms-client-principal' -message "DMARC Policy Lookup Failed for $($DomainToCheck). $($_.Exception.Message)" -Sev "Error" -} - -try { - $FinalObject.MXResults = Read-MXRecord -Domain $DomainToCheck - $FinalObject.MXPassCount = $FinalObject.MXResults.ValidationPasses | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.MXWarnCount = $FinalObject.MXResults.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.MXFailCount = $FinalObject.MXResults.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - if ($FinalObject.MXFailCount -gt 0) { - $FinalObject.MXFinalState = 'Fail' - } - elseif ($FinalObject.MXWarnCount -gt 0) { - $FinalObject.MXFinalState = 'Warn' - } - elseif ($FinalObject.MXPassCount -gt 0) { - $FinalObject.MXFinalState = 'Pass' - } - else { - $FinalObject.MXFinalState = 'Unknown' - } -} -catch { - Log-Request -API $APINAME -tenant "CIPP" -user $request.headers.'x-ms-client-principal' -message "MX Record Lookup Failed for $($DomainToCheck). $($_.Exception.Message)" -Sev "Error" -} - -try { - $FinalObject.DNSSECResults = Test-DNSSEC -Domain $DomainToCheck - $FinalObject.DNSSECPassCount = $FinalObject.DNSSECResults.ValidationPasses | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.DNSSECWarnCount = $FinalObject.DNSSECResults.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.DNSSECFailCount = $FinalObject.DNSSECResults.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - if ($FinalObject.DNSSECFailCount -gt 0) { - $FinalObject.DNSSECFinalState = 'Fail' - } - elseif ($FinalObject.DNSSECWarnCount -gt 0) { - $FinalObject.DNSSECFinalState = 'Warn' - } - elseif ($FinalObject.DNSSECPassCount -gt 0) { - $FinalObject.DNSSECFinalState = 'Pass' - } - else { - $FinalObject.DNSSECFinalState = 'Unknown' - } -} -catch { - Log-Request -API $APINAME -tenant "CIPP" -user $request.headers.'x-ms-client-principal' -message "DNSSEC Record Lookup Failed for $($DomainToCheck). $($_.Exception.Message)" -Sev "Error" -} - -try { - $FinalObject.DKIMResults = Read-DkimRecord -Domain $DomainToCheck - $FinalObject.DKIMPassCount = $FinalObject.DKIMResults.ValidationPasses | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.DKIMWarnCount = $FinalObject.DKIMResults.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count - $FinalObject.DKIMFailCount = $FinalObject.DKIMResults.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count - if ($FinalObject.DKIMFailCount -gt 0) { - $FinalObject.DKIMFinalState = 'Fail' - } - elseif ($FinalObject.DKIMWarnCount -gt 0) { - $FinalObject.DKIMFinalState = 'Warn' - } - elseif ($FinalObject.DKIMPassCount -gt 0) { - $FinalObject.DKIMFinalState = 'Pass' - } - else { - $FinalObject.DKIMFinalState = 'Unknown' - } -} -catch { - Log-Request -API $APINAME -tenant "CIPP" -user $request.headers.'x-ms-client-principal' -message "DKIM Record Lookup Failed for $($DomainToCheck). $($_.Exception.Message)" -Sev "Error" -} - -Write-Host "$DomainToCheck was checked with results:`nSPF Fails: $($FinalObject.SPFResults.ValidationFails)`nSPF Passes: $($FinalObject.SPFResults.ValidationPasses)`nSPF Warns: $($FinalObject.SPFResults.ValidationWarns) " -Write-Host "$DomainToCheck was checked with results:`nDMARC Fails: $($FinalObject.DMARCResults.ValidationFails)`nDMARC Passes: $($FinalObject.DMARCResults.ValidationPasses)`nDMARC Warns: $($FinalObject.DMARCResults.ValidationWarns) " -Write-Host "$DomainToCheck was checked with results:`nDKIM Fails: $($FinalObject.DKIMResults.ValidationFails)`nDKIM Passes: $($FinalObject.DKIMResults.ValidationPasses)`nDKIM Warns: $($FinalObject.DKIMResults.ValidationWarns) " - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($FinalObject) - }) diff --git a/ListDomains/function.json b/ListDomains/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListDomains/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListDomains/run.ps1 b/ListDomains/run.ps1 deleted file mode 100644 index e7d9e264f862..000000000000 --- a/ListDomains/run.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter - -try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/domains" -tenantid $TenantFilter | Select-Object id, isdefault, isinitial | Sort-Object isdefault - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListGroups/function.json b/ListGroups/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListGroups/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListGroups/run.ps1 b/ListGroups/run.ps1 deleted file mode 100644 index f3667eacad6e..000000000000 --- a/ListGroups/run.ps1 +++ /dev/null @@ -1,70 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. - -$TenantFilter = $Request.Query.TenantFilter -$selectstring = "id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule,grouptypes,onPremisesSyncEnabled,resourceProvisioningOptions" - -if ($Request.Query.GroupID) { - $groupid = $Request.query.groupid - $selectstring = "id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule" -} -if ($Request.Query.members) { - $members = "members" - $selectstring = "id,createdDateTime,displayName,description,hideFromOutlookClients,hideFromAddressLists,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule" -} - -if ($Request.Query.owners) { - $members = "owners" - $selectstring = "id,createdDateTime,displayName,description,hideFromOutlookClients,hideFromAddressLists,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule" -} -try { - $GraphRequest = New-GraphGetRequest -asApp $true -uri "https://graph.microsoft.com/beta/groups/$($GroupID)/$($members)?`$top=999&select=$selectstring" -tenantid $TenantFilter | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.mail -split "@" | Select-Object -Last 1 } }, - @{Name = 'teamsEnabled'; Expression = { if ($_.resourceProvisioningOptions -Like '*Team*') { $true }else { $false } } }, - @{Name = 'calculatedGroupType'; Expression = { - if ($_.mailEnabled -and $_.securityEnabled) { - "Mail-Enabled Security" - } - if (!$_.mailEnabled -and $_.securityEnabled) { - "Security" - } - if ($_.groupTypes -contains 'Unified') { - "Microsoft 365" - } - if (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (!$_.securityEnabled)) { - "Distribution List" - } - } - }, - @{Name = 'dynamicGroupBool'; Expression = { - if ($_.groupTypes -contains 'DynamicMembership') { - $true - } - else { - $false - } - } - } - - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListIntunePolicy/function.json b/ListIntunePolicy/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListIntunePolicy/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListIntunePolicy/run.ps1 b/ListIntunePolicy/run.ps1 deleted file mode 100644 index cb5a87765481..000000000000 --- a/ListIntunePolicy/run.ps1 +++ /dev/null @@ -1,62 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$id = $Request.Query.ID -$urlname = $Request.Query.URLName -try { - if ($ID) { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$ID')" -tenantid $tenantfilter - - } - else { - - $GraphURLS = @("https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000", - "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=1000" - "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" - "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies?`$select=id,name,description,platforms,technologies,lastModifiedDateTime,settingCount,roleScopeTagIds,isAssigned&`$top=100&`$filter=(platforms%20eq%20%27windows10%27%20or%20platforms%20eq%20%27macOS%27)%20and%20(technologies%20eq%20%27mdm%27%20or%20technologies%20eq%20%27windows10XManagement%27)%20and%20(templateReference/templateFamily%20eq%20%27none%27)&`$expand=assignments") - - $GraphRequest = $GraphURLS | ForEach-Object { - $URLName = (($_).split('?') | Select-Object -First 1) -replace 'https://graph.microsoft.com/beta/deviceManagement/', '' - New-GraphGetRequest -uri $_ -tenantid $TenantFilter - - } | ForEach-Object { - $policyTypeName = switch -Wildcard ($_."assignments@odata.context") { - "*microsoft.graph.windowsIdentityProtectionConfiguration*" { "Identity Protection" } - "*microsoft.graph.windows10EndpointProtectionConfiguration*" { "Endpoint Protection" } - "*microsoft.graph.windows10CustomConfiguration*" { "Custom" } - "*groupPolicyConfigurations*" { "Administrative Templates" } - "*windowsDomainJoinConfiguration*" { "Domain Join configuration" } - "*windowsUpdateForBusinessConfiguration*" { "Update Configuration" } - "*windowsHealthMonitoringConfiguration*" { "Health Monitoring" } - default { $_."assignments@odata.context" } - } - if ($_.displayname -eq $null) { $_ | Add-Member -NotePropertyName displayName -NotePropertyValue $_.name } - $_ | Add-Member -NotePropertyName PolicyTypeName -NotePropertyValue $policyTypeName - $_ | Add-Member -NotePropertyName URLName -NotePropertyValue $URLName - $_ - } | Where-Object { $_.DisplayName -ne $null } - - } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListIntuneTemplates/function.json b/ListIntuneTemplates/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListIntuneTemplates/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListIntuneTemplates/run.ps1 b/ListIntuneTemplates/run.ps1 deleted file mode 100644 index 54abd2a3f5e4..000000000000 --- a/ListIntuneTemplates/run.ps1 +++ /dev/null @@ -1,21 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -Write-Host $Request.query.id -$Templates = Get-ChildItem "Config\*.IntuneTemplate.json" | ForEach-Object { Get-Content $_ | ConvertFrom-Json } -if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property guid -EQ $Request.query.id } - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($Templates) - }) diff --git a/ListLicenses/function.json b/ListLicenses/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListLicenses/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListLicenses/run.ps1 b/ListLicenses/run.ps1 deleted file mode 100644 index 46adbd7ac6b3..000000000000 --- a/ListLicenses/run.ps1 +++ /dev/null @@ -1,60 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$RawGraphRequest = if ($TenantFilter -ne "AllTenants") { - $LicRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/subscribedSkus" -tenantid $TenantFilter - [PSCustomObject]@{ - Tenant = $TenantFilter - Licenses = $LicRequest - } -} -else { - Get-Tenants | ForEach-Object { - try { - $Licrequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/subscribedSkus" -tenantid $_.defaultDomainName - [PSCustomObject]@{ - Tenant = $_.defaultDomainName - Licenses = $Licrequest - } - } - catch { - continue - } - } -} -$ConvertTable = Import-Csv Conversiontable.csv - -$GraphRequest = $RawGraphRequest | ForEach-Object { - $skuid = $_.Licenses - foreach ($sku in $skuid) { - $PrettyName = ($ConvertTable | Where-Object { $_.guid -eq $sku.skuid }).'Product_Display_Name' | Select-Object -Last 1 - if (!$PrettyName) { $PrettyName = $skuid.skuPartNumber } - [PSCustomObject]@{ - Tenant = $_.Tenant - License = $PrettyName - CountUsed = "$($sku.consumedUnits)" - CountAvailable = $sku.prepaidUnits.enabled - $sku.consumedUnits - TotalLicenses = "$($sku.prepaidUnits.enabled)" - skuId = $sku.skuId - skuPartNumber = $PrettyName - availableUnits = $sku.prepaidUnits.enabled - $sku.consumedUnits - - } - } -} - -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListLogs/function.json b/ListLogs/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListLogs/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListLogs/run.ps1 b/ListLogs/run.ps1 deleted file mode 100644 index 349dd95bd23c..000000000000 --- a/ListLogs/run.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Info" - -if ($request.Query.filter -eq "True") { - $LogLevel = ($Request.query.Severity).split(',') - $date = $Request.query.DateFilter - $username = $Request.Query.User -} -else { - $LogLevel = "Info", "Warn", "Error", "Critical" - $date = (Get-Date).ToString('ddMMyyyy') - $username = '*' -} - -$ReturnedLog = if ($Request.Query.ListLogs) { - Get-ChildItem "Logs" | Select-Object Name, BaseName | ForEach-Object { @{ - value = $_.BaseName - label = $_.BaseName - } } -} -else { - Get-Content "Logs\$($date).log" | ConvertFrom-Csv -Header "DateTime", "Tenant", "API", "Message", "User", "Severity" -Delimiter "|" | Where-Object { $_.Severity -In $LogLevel -and $_.user -like $username } -} -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($ReturnedLog) - }) diff --git a/ListMFAUsers/function.json b/ListMFAUsers/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListMFAUsers/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListMFAUsers/run.ps1 b/ListMFAUsers/run.ps1 deleted file mode 100644 index 83d013928798..000000000000 --- a/ListMFAUsers/run.ps1 +++ /dev/null @@ -1,79 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' - - -# Write to the Azure Functions log stream. -Write-Host 'PowerShell HTTP trigger function processed a request.' -$users = Get-CIPPMSolUsers -tenant $Request.query.TenantFilter -$SecureDefaultsState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $Request.query.TenantFilter ).IsEnabled -$CAState = New-Object System.Collections.ArrayList -$CAPolicies = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $Request.query.TenantFilter ) - -try { - $ExcludeAllUsers = New-Object System.Collections.ArrayList - $ExcludeSpecific = New-Object System.Collections.ArrayList - - foreach ($Policy in $CAPolicies) { - if (($policy.grantControls.builtincontrols -eq 'mfa') -or ($policy.grantControls.customAuthenticationFactors -eq 'RequireDuoMfa')) { - if ($Policy.conditions.applications.includeApplications -ne 'All') { - Write-Host $Policy.conditions.applications.includeApplications - $CAState.Add('Specific Applications') | Out-Null - $ExcludeSpecific = $Policy.conditions.users.excludeUsers - continue - } - if ($Policy.conditions.users.includeUsers -eq 'All') { - $CAState.Add('All Users') | Out-Null - $ExcludeAllUsers = $Policy.conditions.users.excludeUsers - continue - } - } - } -} -catch {} -if (($CAState | Measure-Object | Select-Object -ExpandProperty Count) -eq 0) { $CAState.Add('None') | Out-Null } -Try { - $MFARegistration = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails' -tenantid $Request.query.TenantFilter) -} -catch { - $MFARegistration = $null -} -# Interact with query parameters or the body of the request. -$GraphRequest = $Users | ForEach-Object { - $UserCAState = New-Object System.Collections.ArrayList - foreach ($CA in $CAState) { - if ($CA -eq 'All Users') { - if ($ExcludeAllUsers -contains $_.ObjectId) { $UserCAState.Add('Excluded from All Users') | Out-Null } - else { $UserCAState.Add($CA) | Out-Null } - } - elseif ($CA -eq 'Specific Applications') { - if ($ExcludeSpecific -contains $_.ObjectId) { $UserCAState.Add('Excluded from Specific Applications') | Out-Null } - else { $UserCAState.Add($CA) | Out-Null } - } - else { - $UserCAState.Add($CA) | Out-Null - } - } - - $PerUser = if ($_.StrongAuthenticationRequirements.StrongAuthenticationRequirement.state -ne $null) { $_.StrongAuthenticationRequirements.StrongAuthenticationRequirement.state } else { 'Disabled' } - $AccountState = if ($_.BlockCredential -eq $true) { $false } else { $true } - - $MFARegUser = if (($MFARegistration | Where-Object -Property UserPrincipalName -EQ $_.UserPrincipalName).IsMFARegistered -eq $null) { $false } else { ($MFARegistration | Where-Object -Property UserPrincipalName -EQ $_.UserPrincipalName).IsMFARegistered } - [PSCustomObject]@{ - UPN = $_.UserPrincipalName - AccountEnabled = $AccountState - PerUser = $PerUser - MFARegistration = $MFARegUser - CoveredByCA = ($UserCAState -join ', ') - CoveredBySD = $SecureDefaultsState - } -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListMailboxCAS/function.json b/ListMailboxCAS/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListMailboxCAS/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListMailboxCAS/run.ps1 b/ListMailboxCAS/run.ps1 deleted file mode 100644 index 389331b3def0..000000000000 --- a/ListMailboxCAS/run.ps1 +++ /dev/null @@ -1,36 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -try { - $GraphRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/CasMailbox" -Tenantid $tenantfilter -scope ExchangeOnline | Select-Object @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, - @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, - @{ Name = 'ecpenabled'; Expression = { $_.'ECPEnabled' } }, - @{ Name = 'owaenabled'; Expression = { $_.'OWAEnabled' } }, - @{ Name = 'imapenabled'; Expression = { $_.'IMAPEnabled' } }, - @{ Name = 'popenabled'; Expression = { $_.'POPEnabled' } }, - @{ Name = 'mapienabled'; Expression = { $_.'MAPIEnabled' } }, - @{ Name = 'ewsenabled'; Expression = { $_.'EWSEnabled' } }, - @{ Name = 'activesyncenabled'; Expression = { $_.'ActiveSyncEnabled' } } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListMailboxMobileDevices/function.json b/ListMailboxMobileDevices/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListMailboxMobileDevices/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListMailboxMobileDevices/run.ps1 b/ListMailboxMobileDevices/run.ps1 deleted file mode 100644 index 180272b2ff3d..000000000000 --- a/ListMailboxMobileDevices/run.ps1 +++ /dev/null @@ -1,47 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$Mailbox = $Request.Query.Mailbox - -Write-Host $TenantFilter -Write-Host $Mailbox - -$Bytes = [System.Text.Encoding]::UTF8.GetBytes($Mailbox) -$base64IdentityParam = [Convert]::ToBase64String($Bytes) - -try { - $GraphRequest = New-GraphGetRequest -uri "https://outlook.office365.com:443/adminapi/beta/$($TenantFilter)/mailbox('$($base64IdentityParam)')/MobileDevice/Exchange.GetMobileDeviceStatistics()/?IsEncoded=True" -Tenantid $tenantfilter -scope ExchangeOnline | Select-Object @{ Name = 'clientType'; Expression = { $_.ClientType } }, - @{ Name = 'clientVersion'; Expression = { $_.ClientVersion } }, - @{ Name = 'deviceAccessState'; Expression = { $_.DeviceAccessState } }, - @{ Name = 'deviceFriendlyName'; Expression = { if ([string]::IsNullOrEmpty($_.DeviceFriendlyName)) { "Unknown" }else { $_.DeviceFriendlyName } } }, - @{ Name = 'deviceModel'; Expression = { $_.DeviceModel } }, - @{ Name = 'deviceOS'; Expression = { $_.DeviceOS } }, - @{ Name = 'deviceType'; Expression = { $_.DeviceType } }, - @{ Name = 'firstSync'; Expression = { $_.FirstSyncTime } }, - @{ Name = 'lastSyncAttempt'; Expression = { $_.LastSyncAttemptTime } }, - @{ Name = 'lastSuccessSync'; Expression = { $_.LastSuccessSync } }, - @{ Name = 'status'; Expression = { $_.Status } } - - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListMailboxStatistics/function.json b/ListMailboxStatistics/function.json deleted file mode 100644 index 4ee273331c44..000000000000 --- a/ListMailboxStatistics/function.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": ["get", "post"] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} diff --git a/ListMailboxStatistics/run.ps1 b/ListMailboxStatistics/run.ps1 deleted file mode 100644 index 5075569e8bcc..000000000000 --- a/ListMailboxStatistics/run.ps1 +++ /dev/null @@ -1,34 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -try { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getMailboxUsageDetail(period='D7')" -tenantid $TenantFilter | ConvertFrom-Csv | Select-Object @{ Name = 'UPN'; Expression = { $_.'User Principal Name' } }, - @{ Name = 'displayName'; Expression = { $_.'Display Name' } }, - @{ Name = 'LastActive'; Expression = { $_.'Last Activity Date' } }, - @{ Name = 'UsedGB'; Expression = { [math]::round($_.'Storage Used (Byte)' / 1GB, 0) } }, - @{ Name = 'QuotaGB'; Expression = { [math]::round($_.'Prohibit Send/Receive Quota (Byte)' / 1GB, 0) } }, - @{ Name = 'ItemCount'; Expression = { $_.'Item Count' } }, - @{ Name = 'HasArchive'; Expression = { If (($_.'Has Archive').ToLower() -eq 'true') { [bool]$true } else { [bool]$false } } } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListMailboxes/function.json b/ListMailboxes/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListMailboxes/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListMailboxes/run.ps1 b/ListMailboxes/run.ps1 deleted file mode 100644 index bebd197f7e9a..000000000000 --- a/ListMailboxes/run.ps1 +++ /dev/null @@ -1,33 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -try { - $GraphRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/Mailbox" -Tenantid $tenantfilter -scope ExchangeOnline | Select-Object @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, - @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, - @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, - @{ Name = 'recipientType'; Expression = { $_.'RecipientType' } }, - @{ Name = 'recipientTypeDetails'; Expression = { $_.'RecipientTypeDetails' } }, - @{ Name = 'AdditionalEmailAddresses'; Expression = { ($_.'EmailAddresses' | Where-Object { $_ -clike 'smtp:*' }).Replace('smtp:', '') -join ", " } } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListMessageTrace/function.json b/ListMessageTrace/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListMessageTrace/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListMessageTrace/run.ps1 b/ListMessageTrace/run.ps1 deleted file mode 100644 index 46b8a80c914c..000000000000 --- a/ListMessageTrace/run.ps1 +++ /dev/null @@ -1,45 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -try { - $Tenant = $request.query.TenantFilter - $SearchParams = @{ - StartDate = (Get-Date).AddDays( - $($request.query.days)) - EndDate = Get-Date - } - - if ($null -ne $request.query.recipient) { $Searchparams.Add('RecipientAddress', $($request.query.recipient)) } - if ($null -ne $request.query.sender) { $Searchparams.Add('SenderAddress', $($request.query.sender)) } - $type = $request.query.Tracedetail - $upn = "notRequired@required.com" - $tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $tenant).Authorization -AsPlainText -Force - $credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) - $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($tenant)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ErrorAction Continue - Import-PSSession $session -ea Silentlycontinue -AllowClobber -CommandName "Get-messagetrace$type" - $trace = if ($Request.Query.Tracedetail) { - Get-MessageTraceDetail -MessageTraceId $Request.Query.ID -RecipientAddress $request.query.recipient -erroraction stop | Select-Object Event, Action, Detail, @{ Name = 'Date'; Expression = { $_.Date.Tostring('s') } } - } - else { - Get-MessageTrace @SearchParams -erroraction stop | Select-Object MessageTraceId, Status, Subject, RecipientAddress, SenderAddress, @{ Name = 'Date'; Expression = { $_.Received.tostring('s') } } - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Executed message trace" -Sev "Info" - - } - Get-PSSession | Remove-PSSession -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -tenant $($Tenant) -message "Failed executing messagetrace. Error: $($_.Exception.Message)" -Sev "Error" - $trace = @{Status = "Failed to retrieve message trace $($_.Exception.Message)" } - Get-PSSession | Remove-PSSession -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($trace) - }) diff --git a/ListNotificationConfig/function.json b/ListNotificationConfig/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListNotificationConfig/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListNotificationConfig/run.ps1 b/ListNotificationConfig/run.ps1 deleted file mode 100644 index d4c781b23448..000000000000 --- a/ListNotificationConfig/run.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$body = Get-Content "Config\Config_Notifications.json" | ConvertFrom-Json - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) diff --git a/ListPhishPolicies/function.json b/ListPhishPolicies/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListPhishPolicies/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListPhishPolicies/run.ps1 b/ListPhishPolicies/run.ps1 deleted file mode 100644 index 2905b4952b90..000000000000 --- a/ListPhishPolicies/run.ps1 +++ /dev/null @@ -1,41 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$AntiPhishRules = New-ExoRequest -tenantid $TenantFilter -cmdlet "Get-AntiPhishRule" -$AntiPhishPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet "Get-AntiPhishPolicy" - -$GraphRequest = $AntiPhishPolicies | Select-Object name, -@{Name = 'GUID'; Expression = {$(( -join (( 0x41..0x5A) + ( 0x61..0x7A) | Get-Random -Count 13 | % {[char]$_}) ))}}, -@{ Name = 'ExcludedDomains'; Expression = {$($_.ExcludedDomains) -join "
"}}, -@{ Name = 'ExcludedSenders'; Expression = {$($_.ExcludedSenders) -join "
" } }, -@{ Name = 'PhishThresholdLevel'; Expression = { - switch ($_.PhishThresholdLevel) { - 1 { $result = 'Standard' } - 2 { $result = 'Aggressive' } - 3 { $result = 'More Aggressive' } - 4 { $result = 'Most Aggressive' } - Default { $result = 'Unknown' } - } - $result - } -}, -@{ Name = 'ExcludedDomainCount'; Expression = { $_.ExcludedDomains | Measure-Object | Select-Object -ExpandProperty Count } }, -@{ Name = 'ExcludedSenderCount'; Expression = { $_.ExcludedSenders | Measure-Object | Select-Object -ExpandProperty Count } }, Enabled, WhenChangedUTC, -@{ Name = 'Priority'; Expression = { foreach ($item in $AntiPhishRules) { if ($item.name -eq $_.name) { $item.priority } } } } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) diff --git a/ListRoles/function.json b/ListRoles/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListRoles/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListRoles/run.ps1 b/ListRoles/run.ps1 deleted file mode 100644 index 89228d57dd66..000000000000 --- a/ListRoles/run.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$SelectList = 'id', 'displayName', 'userPrincipalName' - -[System.Collections.Generic.List[PSCustomObject]]$Roles = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles" -tenantid $TenantFilter - -$GraphRequest = foreach ($Role in $Roles) { - [System.Collections.Generic.List[PSCustomObject]]$Members = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles/$($Role.id)/members?`$select=$($selectlist -join ',')" -tenantid $TenantFilter | select-object $SelectList - [PSCustomObject]@{ - DisplayName = $Role.displayName - Description = $Role.description - Members = ($Members | ForEach-Object { $Return = "$($_.displayName)"; if ($_.userPrincipalName){$Return = $Return + " ($($_.userPrincipalName))"}; $Return}) -join ', ' - } -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $GraphRequest - }) \ No newline at end of file diff --git a/ListSites/function.json b/ListSites/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListSites/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListSites/run.ps1 b/ListSites/run.ps1 deleted file mode 100644 index 103b608da5d0..000000000000 --- a/ListSites/run.ps1 +++ /dev/null @@ -1,47 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$type = $request.query.Type -$UserUPN = $request.query.UserUPN -try { - $Result = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/get$($type)Detail(period='D7')" -tenantid $TenantFilter | ConvertFrom-Csv - - if ($UserUPN) { - $ParsedRequest = $Result | Where-Object { $_.'Owner Principal Name' -eq $UserUPN } - } - else { - $ParsedRequest = $Result - } - - - $GraphRequest = $ParsedRequest | Select-Object @{ Name = 'UPN'; Expression = { $_.'Owner Principal Name' } }, - @{ Name = 'displayName'; Expression = { $_.'Owner Display Name' } }, - @{ Name = 'LastActive'; Expression = { $_.'Last Activity Date' } }, - @{ Name = 'FileCount'; Expression = { [int]$_.'File Count' } }, - @{ Name = 'UsedGB'; Expression = { [math]::round($_.'Storage Used (Byte)' / 1GB, 0) } }, - @{ Name = 'URL'; Expression = { $_.'Site URL' } }, - @{ Name = 'Allocated'; Expression = { $_.'Storage Allocated (Byte)' / 1GB } }, - @{ Name = 'Template'; Expression = { $_.'Root Web Template' } } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListStandards/function.json b/ListStandards/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListStandards/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListStandards/run.ps1 b/ListStandards/run.ps1 deleted file mode 100644 index df1aa5aeb87c..000000000000 --- a/ListStandards/run.ps1 +++ /dev/null @@ -1,46 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -$Tenants = Get-ChildItem "Cache_Standards\*.standards.json" - -$CurrentStandards = foreach ($tenant in $tenants) { - $StandardsFile = Get-Content "$($tenant)" | ConvertFrom-Json - if ($null -eq $StandardsFile.Tenant) { continue } - [PSCustomObject]@{ - displayName = $StandardsFile.tenant - appliedBy = $StandardsFile.addedby - appliedAt = ($tenant).LastWriteTime.toString('s') - "DisableBasicAuth" = $StandardsFile.standards.DisableBasicAuth - "ModernAuth" = $StandardsFile.standards.ModernAuth - "AuditLog" = $StandardsFile.standards.AuditLog - "AutoExpandArchive" = $StandardsFile.standards.AutoExpandArchive - "SecurityDefaults" = $StandardsFile.standards.SecurityDefaults - "DisableSharedMailbox" = $StandardsFile.standards.DisableSharedMailbox - "UndoOauth" = $StandardsFile.standards.UndoOauth - "DisableSelfServiceLicenses" = $StandardsFile.standards.DisableSelfServiceLicenses - "AnonReportDisable" = $StandardsFile.standards.AnonReportDisable - "UndoSSPR" = $StandardsFile.standards.UndoSSPR - "PasswordExpireDisabled" = $StandardsFile.standards.PasswordExpireDisabled - "DelegateSentItems" = $StandardsFile.standards.DelegateSentItems - "OauthConsent" = $StandardsFile.standards.OauthConsent - "SSPR" = $StandardsFile.standards.SSPR - "LegacyMFA" = $StandardsFile.standards.LegacyMFA - "SpoofWarn" = $StandardsFile.standards.SpoofWarn - } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($CurrentStandards) - }) diff --git a/ListTeams/function.json b/ListTeams/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListTeams/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListTeams/run.ps1 b/ListTeams/run.ps1 deleted file mode 100644 index 0fe73d46a7e8..000000000000 --- a/ListTeams/run.ps1 +++ /dev/null @@ -1,43 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -if ($request.query.type -eq "List") { - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=resourceProvisioningOptions/Any(x:x eq 'Team')&`$select=id,displayname,description,visibility,mailNickname" -tenantid $TenantFilter -} -$TeamID = $request.query.ID -Write-Host $TeamID -if ($request.query.type -eq "Team") { - $Team = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/teams/$($TeamID)" -tenantid $TenantFilter -asapp $true - $Channels = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/teams/$($TeamID)/Channels" -tenantid $TenantFilter -asapp $true - $UserList = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/teams/$($TeamID)/Members" -tenantid $TenantFilter -asapp $true - $AppsList = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/teams/$($TeamID)/installedApps?`$expand=teamsAppDefinition" -tenantid $TenantFilter -asapp $true - - $Owners = $UserList | Where-Object -Property Roles -EQ "Owner" - $Members = $UserList | Where-Object -Property email -NotIn $owners.email - $GraphRequest = [PSCustomObject]@{ - Name = $team.DisplayName - TeamInfo = @($team) - ChannelInfo = @($channels) - Members = @($Members) - Owners = @($owners) - InstalledApps = @($AppsList) - } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListTeamsActivity/function.json b/ListTeamsActivity/function.json deleted file mode 100644 index c26ed09a89e4..000000000000 --- a/ListTeamsActivity/function.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": ["get", "post"] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} diff --git a/ListTeamsActivity/run.ps1 b/ListTeamsActivity/run.ps1 deleted file mode 100644 index 20f261a97eb5..000000000000 --- a/ListTeamsActivity/run.ps1 +++ /dev/null @@ -1,23 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$type = $request.query.Type -$GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/get$($type)Detail(period='D30')" -tenantid $TenantFilter | ConvertFrom-Csv | Select-Object @{ Name = 'UPN'; Expression = { $_.'User Principal Name' } }, -@{ Name = 'LastActive'; Expression = { $_.'Last Activity Date' } }, -@{ Name = 'TeamsChat'; Expression = { $_.'Team Chat Message Count' } }, -@{ Name = 'CallCount'; Expression = { $_.'Call Count' } }, -@{ Name = 'MeetingCount'; Expression = { $_.'Meeting Count' } } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListTeamsVoice/function.json b/ListTeamsVoice/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListTeamsVoice/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListTeamsVoice/run.ps1 b/ListTeamsVoice/run.ps1 deleted file mode 100644 index fafe57b8376c..000000000000 --- a/ListTeamsVoice/run.ps1 +++ /dev/null @@ -1,41 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$tenantid = (Get-Tenants | Where-Object -Property DefaultdomainName -EQ $Request.Query.TenantFilter).CustomerID -try { - $GraphRequest = (New-TeamsAPIGetRequest -uri "https://api.interfaces.records.teams.microsoft.com/Skype.TelephoneNumberMgmt/Tenants/$($Tenantid)/telephone-numbers?locale=en-US" -tenantid $TenantFilter).TelephoneNumbers | ForEach-Object { - $CompleteRequest = $_ | Select-Object *, "AssignedTo" - $CompleteRequest.AcquisitionDate = $CompleteRequest.AcquisitionDate -split 'T' | Select-Object -First 1 - - if ($CompleteRequest.TargetId -eq "00000000-0000-0000-0000-000000000000") { - $CompleteRequest.AssignedTo = "Unassigned" - } - else { - $CompleteRequest.AssignedTo = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($_.TargetId)?`$top=999&`$select=id,userPrincipalName,displayname" -tenantid $TenantFilter).userPrincipalName - - } - $CompleteRequest - } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) diff --git a/ListTenants/function.json b/ListTenants/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListTenants/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListTenants/run.ps1 b/ListTenants/run.ps1 deleted file mode 100644 index 0248233b5ff1..000000000000 --- a/ListTenants/run.ps1 +++ /dev/null @@ -1,56 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName - -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' - - -# Clear Cache -if ($request.Query.ClearCache -eq 'true') { - Remove-CIPPCache - $GraphRequest = [pscustomobject]@{'Results' = 'Successfully completed request.' } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $GraphRequest - }) - exit -} - -$tenantfilter = $Request.Query.TenantFilter - -try { - if ($null -eq $TenantFilter -or $TenantFilter -eq 'null') { - if ($Request.Query.AllTenantSelector -eq $true) { - $tenants = get-tenants - $allTenants = @([PSCustomObject]@{ - customerId = 'AllTenants' - defaultDomainName = 'AllTenants' - displayName = '*All Tenants' - domains = 'AllTenants' - }) - $body = $allTenants + $tenants - } - else { - $Body = Get-Tenants - } - } - else { - $body = Get-Tenants | Where-Object -Property DefaultdomainName -EQ $Tenantfilter - } - - - Log-Request -user $request.headers.'x-ms-client-principal' -tenant $Tenantfilter -API $APINAME -message 'Listed Tenant Details' -Sev 'Debug' -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -tenant $Tenantfilter -API $APINAME -message "List Tenant failed. The error is: $($_.Exception.Message)" -Sev 'Error' - $body = [pscustomobject]@{'Results' = "Failed to retrieve tenants: $($_.Exception.Message)" } -} - -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($Body) - }) - diff --git a/ListUserConditionalAccessPolicies/function.json b/ListUserConditionalAccessPolicies/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListUserConditionalAccessPolicies/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListUserConditionalAccessPolicies/run.ps1 b/ListUserConditionalAccessPolicies/run.ps1 deleted file mode 100644 index f0f808dbb35a..000000000000 --- a/ListUserConditionalAccessPolicies/run.ps1 +++ /dev/null @@ -1,42 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$UserID = $Request.Query.UserID - -try { - $json = '{"conditions":{"users":{"allUsers":2,"included":{"userIds":["' + $UserID + '"],"groupIds":[]},"excluded":{"userIds":[],"groupIds":[]}},"servicePrincipals":{"allServicePrincipals":1,"includeAllMicrosoftApps":false,"excludeAllMicrosoftApps":false,"userActions":[],"stepUpTags":[]},"conditions":{"minUserRisk":{"noRisk":false,"lowRisk":false,"mediumRisk":false,"highRisk":false,"applyCondition":false},"minSigninRisk":{"noRisk":false,"lowRisk":false,"mediumRisk":false,"highRisk":false,"applyCondition":false},"servicePrincipalRiskLevels":{"noRisk":false,"lowRisk":false,"mediumRisk":false,"highRisk":false,"applyCondition":false},"devicePlatforms":{"all":2,"included":{"android":false,"ios":false,"windowsPhone":false,"windows":false,"macOs":false,"linux":false},"excluded":null,"applyCondition":false},"locations":{"applyCondition":true,"includeLocationType":2,"excludeAllTrusted":false},"clientApps":{"applyCondition":false,"specificClientApps":false,"webBrowsers":false,"exchangeActiveSync":false,"onlyAllowSupportedPlatforms":false,"mobileDesktop":false},"clientAppsV2":{"applyCondition":false,"webBrowsers":false,"mobileDesktop":false,"modernAuth":false,"exchangeActiveSync":false,"onlyAllowSupportedPlatforms":false,"otherClients":false},"deviceState":{"includeDeviceStateType":1,"excludeDomainJoionedDevice":false,"excludeCompliantDevice":false,"applyCondition":true}}},"country":"","device":{}}' - $UserPolicies = (New-ClassicAPIPostRequest -uri "https://main.iam.ad.ext.azure.com/api/Policies/Evaluate?" -tenantid $tenantfilter -Method POST -body $json -resource '74658136-14ec-4630-ad9b-26e160ff0fc6' -verbose | Where-Object { $_.applied -eq $true }) - $ConditionalAccessPolicyOutput = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies" -tenantid $tenantfilter -} -catch { - $ConditionalAccessPolicyOutput = @{} -} - -$GraphRequest = foreach ($cap in $ConditionalAccessPolicyOutput) { - if ($cap.id -in $UserPolicies.policyId) { - $temp = [PSCustomObject]@{ - id = $cap.id - displayName = $cap.displayName - } - $temp - } -} - -Write-Host $GraphRequest - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) diff --git a/ListUserDevices/function.json b/ListUserDevices/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListUserDevices/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListUserDevices/run.ps1 b/ListUserDevices/run.ps1 deleted file mode 100644 index 7fabe9b5700e..000000000000 --- a/ListUserDevices/run.ps1 +++ /dev/null @@ -1,56 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$UserID = $Request.Query.UserID - -function Get-EPMID { - param( - $deviceID, - $EPMDevices - ) - try { - return ($EPMDevices | Where-Object { $_.azureADDeviceId -eq $deviceID }).id - } - catch { - return $null - } -} -try { - $EPMDevices = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$UserID/managedDevices" -Tenantid $tenantfilter - $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$UserID/ownedDevices?`$top=999" -Tenantid $tenantfilter | Select-Object @{ Name = 'ID'; Expression = { $_.'id' } }, - @{ Name = 'accountEnabled'; Expression = { $_.'accountEnabled' } }, - @{ Name = 'approximateLastSignInDateTime'; Expression = { $_.'approximateLastSignInDateTime' | Out-String } }, - @{ Name = 'createdDateTime'; Expression = { $_.'createdDateTime' | Out-String } }, - @{ Name = 'deviceOwnership'; Expression = { $_.'deviceOwnership' } }, - @{ Name = 'displayName'; Expression = { $_.'displayName' } }, - @{ Name = 'enrollmentType'; Expression = { $_.'enrollmentType' } }, - @{ Name = 'isCompliant'; Expression = { $_.'isCompliant' } }, - @{ Name = 'managementType'; Expression = { $_.'managementType' } }, - @{ Name = 'manufacturer'; Expression = { $_.'manufacturer' } }, - @{ Name = 'model'; Expression = { $_.'model' } }, - @{ Name = 'operatingSystem'; Expression = { $_.'operatingSystem' } }, - @{ Name = 'onPremisesSyncEnabled'; Expression = { $(if ([string]::IsNullOrEmpty($_.'onPremisesSyncEnabled')) { $false }else { $true }) } }, - @{ Name = 'operatingSystemVersion'; Expression = { $_.'operatingSystemVersion' } }, - @{ Name = 'trustType'; Expression = { $_.'trustType' } }, - @{ Name = 'EPMID'; Expression = { $(Get-EPMID -deviceID $_.'deviceId' -EPMDevices $EPMDevices) } } -} -catch { - $GraphRequest = @() -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) diff --git a/ListUserGroups/function.json b/ListUserGroups/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListUserGroups/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListUserGroups/run.ps1 b/ListUserGroups/run.ps1 deleted file mode 100644 index 728a6b8dda3d..000000000000 --- a/ListUserGroups/run.ps1 +++ /dev/null @@ -1,34 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$UserID = $Request.Query.UserID - - -$URI = "https://graph.microsoft.com/beta/users/$UserID/memberOf/$/microsoft.graph.group?`$select=id,displayName,mailEnabled,securityEnabled,groupTypes,onPremisesSyncEnabled,mail,isAssignableToRole`&$orderby=displayName asc" -Write-Host $URI -$GraphRequest = New-GraphGetRequest -uri $URI -tenantid $TenantFilter -noPagination $true -verbose | select-object id, -@{ Name = 'DisplayName'; Expression = { $_.displayName} }, -@{ Name = 'MailEnabled'; Expression = { $_.mailEnabled} }, -@{ Name = 'Mail'; Expression = { $_.mail} }, -@{ Name = 'SecurityGroup'; Expression = {$_.securityEnabled} }, -@{ Name = 'GroupTypes'; Expression = { $_.groupTypes -join ','} }, -@{ Name = 'OnPremisesSync'; Expression = { $_.onPremisesSyncEnabled} }, -@{ Name = 'IsAssignableToRole'; Expression = { $_.isAssignableToRole} } - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListUserMailboxDetails/function.json b/ListUserMailboxDetails/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListUserMailboxDetails/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListUserMailboxDetails/run.ps1 b/ListUserMailboxDetails/run.ps1 deleted file mode 100644 index 2868c251aaca..000000000000 --- a/ListUserMailboxDetails/run.ps1 +++ /dev/null @@ -1,95 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$UserID = $Request.Query.UserID - - -$TenantFilter = $Request.Query.TenantFilter -try { - $CASRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/CasMailbox('$UserID')" -Tenantid $tenantfilter -scope ExchangeOnline -noPagination $true - $MailRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/Mailbox('$UserID')" -Tenantid $tenantfilter -scope ExchangeOnline -noPagination $true - $FetchParam = @{ - anr = $MailRequest.PrimarySmtpAddress - } - $MailboxDetailedRequest = New-ExoRequest -TenantID $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams $FetchParam - $FetchParam = @{ - SenderAddress = $MailRequest.PrimarySmtpAddress - } - $BlockedSender = New-ExoRequest -TenantID $TenantFilter -cmdlet 'Get-BlockedSenderAddress' -cmdParams $FetchParam - if ($BlockedSender) { - $BlockedForSpam = $True - } - else { - $BlockedForSpam = $False - } - $StatsRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/Mailbox('$($MailRequest.PrimarySmtpAddress)')/Exchange.GetMailboxStatistics()" -Tenantid $tenantfilter -scope ExchangeOnline -noPagination $true - $PermsRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/Mailbox('$($MailRequest.PrimarySmtpAddress)')/MailboxPermission" -Tenantid $tenantfilter -scope ExchangeOnline -noPagination $true -} -catch { - Write-Error "Failed Fetching Data $_" -} - -$ParsedPerms = foreach ($Perm in $PermsRequest) { - if ($Perm.User -ne 'NT AUTHORITY\SELF') { - [pscustomobject]@{ - User = $Perm.User - AccessRights = $Perm.PermissionList.AccessRights -join ', ' - } - } -} - -$forwardingaddress = if ($MailboxDetailedRequest.ForwardingAddress) { - $MailboxDetailedRequest.ForwardingAddress -} -else { - $MailboxDetailedRequest.ForwardingSmtpAddress -} -elseif ($MailboxDetailedRequest.ForwardingSmtpAddress -and $MailboxDetailedRequest.ForwardingAddress) { - $MailboxDetailedRequest.ForwardingAddress + ' ' + $MailboxDetailedRequest.ForwardingSmtpAddress -} - - -$GraphRequest = [ordered]@{ - ForwardAndDeliver = $MailboxDetailedRequest.DeliverToMailboxAndForward - ForwardingAddress = $ForwardingAddress - LitiationHold = $MailboxDetailedRequest.LitigationHoldEnabled - HiddenFromAddressLists = $MailboxDetailedRequest.HiddenFromAddressListsEnabled - EWSEnabled = $CASRequest.EwsEnabled - MailboxMAPIEnabled = $CASRequest.MAPIEnabled - MailboxOWAEnabled = $CASRequest.OWAEnabled - MailboxImapEnabled = $CASRequest.ImapEnabled - MailboxPopEnabled = $CASRequest.PopEnabled - MailboxActiveSyncEnabled = $CASRequest.ActiveSyncEnabled - Permissions = $ParsedPerms - ProhibitSendQuota = [math]::Round([float]($MailboxDetailedRequest.ProhibitSendQuota -split ' GB')[0], 2) - ProhibitSendReceiveQuota = [math]::Round([float]($MailboxDetailedRequest.ProhibitSendReceiveQuota -split ' GB')[0], 2) - ItemCount = [math]::Round($StatsRequest.ItemCount, 2) - TotalItemSize = [math]::Round($StatsRequest.TotalItemSize / 1Gb, 2) - BlockedForSpam = $BlockedForSpam -} - -#$GraphRequest = [ordered]@{ -# Connectivity = $CASRequest -# Mailbox = $MailRequest -# MailboxDetail = $MailboxDetailedRequest -# Stats = $StatsRequest -# Permissions = $ParsedPerms -# Result = $Result -#} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListUserSigninLogs/function.json b/ListUserSigninLogs/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListUserSigninLogs/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListUserSigninLogs/run.ps1 b/ListUserSigninLogs/run.ps1 deleted file mode 100644 index 73bde9cc5985..000000000000 --- a/ListUserSigninLogs/run.ps1 +++ /dev/null @@ -1,42 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$UserID = $Request.Query.UserID - -$URI = "https://graph.microsoft.com/beta/auditLogs/signIns?`$filter=(userId eq '$UserID')&`$top=50&`$orderby=createdDateTime desc" -Write-Host $URI -$GraphRequest = New-GraphGetRequest -uri $URI -tenantid $TenantFilter -noPagination $true -verbose | select-object @{ Name = 'Date'; Expression = { $(($_.createdDateTime | Out-String)-replace '\r\n')} }, -id, -@{ Name = 'Application'; Expression = { $_.resourceDisplayName} }, -@{ Name = 'LoginStatus'; Expression = { $_.status.errorCode } }, -@{ Name = 'ConditionalAccessStatus'; Expression = { $_.conditionalAccessStatus } }, -@{ Name = 'OverallLoginStatus'; Expression = { if (($_.conditionalAccessStatus -eq 'Success' -or 'Not Applied') -and $_.status.errorCode -eq 0){'Success'} else {'Failed'} } }, -@{ Name = 'IPAddress'; Expression = { $_.ipAddress} }, -@{ Name = 'Town'; Expression = { $_.location.city} }, -@{ Name = 'State'; Expression = { $_.location.state} }, -@{ Name = 'Country'; Expression = { $_.location.countryOrRegion} }, -@{ Name = 'Device'; Expression = { $_.deviceDetail.displayName} }, -@{ Name = 'DeviceCompliant'; Expression = { $_.deviceDetail.isCompliant} }, -@{ Name = 'OS'; Expression = { $_.deviceDetail.operatingSystem} }, -@{ Name = 'Browser'; Expression = { $_.deviceDetail.browser} }, -@{ Name = 'AppliedCAPs'; Expression = { ($_.appliedConditionalAccessPolicies | foreach-object {@{Result = $_.result; Name = $_.displayName}}) }}, -@{ Name = 'AdditionalDetails'; Expression = { $_.status.additionalDetails} }, -@{ Name = 'FailureReason'; Expression = { $_.status.failureReason} }, -@{ Name = 'FullDetails'; Expression = { $_} } - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListUsers/function.json b/ListUsers/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListUsers/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListUsers/run.ps1 b/ListUsers/run.ps1 deleted file mode 100644 index 495fd9e1edce..000000000000 --- a/ListUsers/run.ps1 +++ /dev/null @@ -1,48 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$selectlist = "id", "accountEnabled", "businessPhones", "city", "createdDateTime", "companyName", "country", "department", "displayName", "faxNumber", "givenName", "isResourceAccount", "jobTitle", "mail", "mailNickname", "mobilePhone", "onPremisesDistinguishedName", "officeLocation", "onPremisesLastSyncDateTime", "otherMails", "postalCode", "preferredDataLocation", "preferredLanguage", "proxyAddresses", "showInAddressList", "state", "streetAddress", "surname", "usageLocation", "userPrincipalName", "userType", "assignedLicenses", "onPremisesSyncEnabled", "LicJoined", "Aliases", "primDomain" - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." -$ConvertTable = Import-Csv Conversiontable.csv | Sort-Object -Property 'guid' -Unique -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$userid = $Request.Query.UserID -$GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)?`$top=999&`$select=$($selectlist -join ',')" -tenantid $TenantFilter | Select-Object $selectlist | ForEach-Object { - $_.onPremisesSyncEnabled = [bool]($_.onPremisesSyncEnabled) - $_.Aliases = $_.Proxyaddresses -join ", " - $SkuID = $_.AssignedLicenses.skuid - $_.LicJoined = ($ConvertTable | Where-Object { $_.guid -in $skuid }).'Product_Display_Name' -join ", " - $_.primDomain = ($_.userPrincipalName -split '@' | Select-Object -Last 1) - $_ -} - -if ($userid) { - $uri = "https://login.microsoftonline.com/$($TenantFilter)/oauth2/token" - $body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $LastSignIn = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri "https://admin.microsoft.com/admin/api/users/$($userid)/lastSignInInfo" -Method GET -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - $GraphRequest = $GraphRequest | Select-Object *, - @{ Name = 'LastSigninApplication'; Expression = { $LastSignIn.AppDisplayName } }, - @{ Name = 'LastSigninDate'; Expression = { $($LastSignIn.CreatedDateTime | Out-String) } }, - @{ Name = 'LastSigninStatus'; Expression = { $LastSignIn.Status.AdditionalDetails } }, - @{ Name = 'LastSigninResult'; Expression = { if ($LastSignIn.Status.ErrorCode -eq 0) { "Success" } else { "Failure" } } }, - @{ Name = 'LastSigninFailureReason'; Expression = { if ($LastSignIn.Status.ErrorCode -eq 0) { "Sucessfully signed in" } else { $LastSignIn.status.FailureReason } } } -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @($GraphRequest) - }) \ No newline at end of file diff --git a/ListmailboxPermissions/function.json b/ListmailboxPermissions/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/ListmailboxPermissions/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/ListmailboxPermissions/run.ps1 b/ListmailboxPermissions/run.ps1 deleted file mode 100644 index 9ec5afceb4e9..000000000000 --- a/ListmailboxPermissions/run.ps1 +++ /dev/null @@ -1,40 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - - -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter - -Write-Host "Tenant Filter: $TenantFilter" -try { - $PermsRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/Mailbox('$($Request.Query.UserID)')/MailboxPermission" -Tenantid $tenantfilter -scope ExchangeOnline - $GraphRequest = foreach ($Perm in $PermsRequest) { - if ($Perm.User -ne 'NT AUTHORITY\SELF') { - [pscustomobject]@{ - User = $Perm.User - AccessRights = $Perm.PermissionList.AccessRights -join ', ' - } - } - } - $StatusCode = [HttpStatusCode]::OK -} -catch { - $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - $StatusCode = [HttpStatusCode]::Forbidden - $GraphRequest = $ErrorMessage -} -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @($GraphRequest) - }) - - diff --git a/MailProviders/Intermedia.json b/MailProviders/Intermedia.json deleted file mode 100644 index 170d27ea782e..000000000000 --- a/MailProviders/Intermedia.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Name": "Intermedia", - "MxMatch": "(:?east|west).smtp.mx.exch[0-9]+.serverdata.net", - "SpfInclude": "spf.intermedia.net", - "Selectors": [""], - "_MxComment": "https://kb.intermedia.net/article/903", - "_SpfComment": "https://kb.intermedia.net/article/1010", - "_DkimComment": "https://kb.intermedia.net/article/36857" -} diff --git a/MailProviders/Microsoft365.json b/MailProviders/Microsoft365.json deleted file mode 100644 index 04ac14b25efe..000000000000 --- a/MailProviders/Microsoft365.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Name": "Microsoft 365", - "MxMatch": "mail.protection.outlook.com", - "SpfInclude": "spf.protection.outlook.com", - "Selectors": ["selector1","selector2"], - "MinimumSelectorPass": 1, - "_MxComment": "https://docs.microsoft.com/en-us/microsoft-365/admin/get-help-with-domains/create-dns-records-at-any-dns-hosting-provider", - "_SpfComment": "https://docs.microsoft.com/en-us/microsoft-365/admin/get-help-with-domains/create-dns-records-at-any-dns-hosting-provider", - "_DkimComment": "https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/use-dkim-to-validate-outbound-email?view=o365-worldwide" -} \ No newline at end of file diff --git a/MailProviders/Proofpoint.json b/MailProviders/Proofpoint.json deleted file mode 100644 index f15e5dcc121e..000000000000 --- a/MailProviders/Proofpoint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Name": "Proofpoint", - "_MxComment": "https://help.proofpoint.com/Proofpoint_Essentials/Email_Security/Administrator_Topics/000_gettingstarted/020_connectiondetails", - "MxMatch": "ppe-hosted.com", - "_SpfComment": "https://help.proofpoint.com/Proofpoint_Essentials/Email_Security/Administrator_Topics/000_gettingstarted/020_connectiondetails", - "SpfInclude": "ppe-hosted.com", - "_DkimComment": "", - "Selectors": [""] -} \ No newline at end of file diff --git a/Modules/AzBobbyTables/3.4.0/AzBobbyTables.PS.dll b/Modules/AzBobbyTables/3.4.0/AzBobbyTables.PS.dll new file mode 100644 index 000000000000..e70586e52e2c Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/AzBobbyTables.PS.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/AzBobbyTables.psd1 b/Modules/AzBobbyTables/3.4.0/AzBobbyTables.psd1 new file mode 100644 index 000000000000..14215e7c8d1d --- /dev/null +++ b/Modules/AzBobbyTables/3.4.0/AzBobbyTables.psd1 @@ -0,0 +1,148 @@ +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'AzBobbyTables.PS.dll' + +# Version number of this module. +ModuleVersion = '3.4.0' + +# Supported PSEditions +CompatiblePSEditions = @('Core') + +# ID used to uniquely identify this module +GUID = 'eead4f42-5080-4f83-8901-340c529a5a11' + +# Author of this module +Author = 'Emanuel Palm' + +# Company or vendor of this module +CompanyName = 'pipe.how' + +# Copyright statement for this module +Copyright = '(c) Emanuel Palm. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'A module for handling Azure Table Storage operations by wrapping the Azure Data Tables SDK.' + +# Minimum version of the PowerShell engine required by this module +PowerShellVersion = '7.0' + +# Name of the PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# DotNetFrameworkVersion = '' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# ClrVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +# FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +# NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @() + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'Add-AzDataTableEntity' + 'Clear-AzDataTable' + 'Get-AzDataTable' + 'Get-AzDataTableEntity' + 'Get-AzDataTableSupportedEntityType' + 'Remove-AzDataTableEntity' + 'Update-AzDataTableEntity' + 'New-AzDataTableContext' + 'Remove-AzDataTable' + 'New-AzDataTable' +) + +# Variables to export from this module +VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + Tags = @('azure', 'storage', 'table', 'cosmos', 'cosmosdb', 'data') + + # A URL to the license for this module. + LicenseUri = 'https://github.com/PalmEmanuel/AzBobbyTables/blob/main/LICENSE' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/PalmEmanuel/AzBobbyTables' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + ReleaseNotes = '## [3.4.0] - 2025-07-03 + +### Added + +- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52) +- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter + +### Changed + +- Dependency version bumps +- Rewrote core module logic to add a converter system which allows for flexible entity types +- Updated gitversion config for build and release +- Improved module tests for the new type converter system + +' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + # ExternalModuleDependencies = @() + + } # End of PSData hashtable + +} # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} diff --git a/Modules/AzBobbyTables/3.4.0/CHANGELOG.md b/Modules/AzBobbyTables/3.4.0/CHANGELOG.md new file mode 100644 index 000000000000..3a3ec108efc8 --- /dev/null +++ b/Modules/AzBobbyTables/3.4.0/CHANGELOG.md @@ -0,0 +1,86 @@ +# Changelog for the module + +The format is based on and uses the types of changes according to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52) +- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter + +### Changed + +- Dependency version bumps +- Rewrote core module logic to add a converter system which allows for flexible entity types +- Updated gitversion config for build and release +- Improved module tests for the new type converter system + +## [3.3.2] - 2025-02-26 + +### Fixed + +- Fixed bug where validation for Partition- and RowKey was not checking case sensitivity [#68](https://github.com/PalmEmanuel/AzBobbyTables/pull/81) + +## [3.3.1] - 2024-10-19 + +### Added + +- Added `-OperationType` parameter to `Add-AzDataTableEntity` and `Update-AzDataTableEntity` to support merge or replace operations [#81](https://github.com/PalmEmanuel/AzBobbyTables/pull/81) + +## [3.3.0] - 2024-10-18 + +### Added + +- Added command `Get-AzDataTable` to get the names of tables in a storage account [#77](https://github.com/PalmEmanuel/AzBobbyTables/issues/77) + +### Changed + +- Implemented TableServiceClient to support operations on tables in the storage account. + +## [3.2.1] - 2024-07-09 + +### Fixed + +- Fixed bug where empty lines were written to console. + +## [3.2.0] - 2024-03-21 + +### Added + +- ETag validation for Update- & Remove-AzDataTableEntity ([#58](https://github.com/PalmEmanuel/AzBobbyTables/issues/58)) + +### Fixed + +- Missing examples of Remove-AzDataTableEntity ([#62](https://github.com/PalmEmanuel/AzBobbyTables/issues/62)) + +## [3.1.3] - 2024-01-20 + +### Added + +- Added Sampler ([#48](https://github.com/PalmEmanuel/AzBobbyTables/issues/48)). +- Added support for user-assigned managed identities ([#54](https://github.com/PalmEmanuel/AzBobbyTables/issues/54)). + +## [3.1.2] - 2024-01-05 + +### Added + +- Help documentation for a DateTime problem caused by the SDK (#43). + +## 3.1.1 - 2023-05-03 + +[Unreleased]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.2...HEAD + +[3.3.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.1...v3.3.2 + +[3.3.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.0...v3.3.1 + +[3.3.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.2.1...v3.3.0 + +[3.2.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.2.0...v3.2.1 + +[3.2.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.1.3...v3.2.0 + +[3.1.3]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.1.2...v3.1.3 + +[3.1.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/d854153aca6c5cce35a123deb86653a0d3289b07...v3.1.2 diff --git a/Modules/AzBobbyTables/3.4.0/LICENSE b/Modules/AzBobbyTables/3.4.0/LICENSE new file mode 100644 index 000000000000..d4e4667fe6da --- /dev/null +++ b/Modules/AzBobbyTables/3.4.0/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Emanuel Palm + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml b/Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml new file mode 100644 index 000000000000..64fa6faf50b2 --- /dev/null +++ b/Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml @@ -0,0 +1,145 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + AzBobbyTables + 3.4.0 + Module + A module for handling Azure Table Storage operations by wrapping the Azure Data Tables SDK. + Emanuel Palm + PalmEmanuel + (c) Emanuel Palm. All rights reserved. +
2025-07-03T17:55:54-04:00
+ + + https://github.com/PalmEmanuel/AzBobbyTables/blob/main/LICENSE + https://github.com/PalmEmanuel/AzBobbyTables + + + + System.Object[] + System.Array + System.Object + + + azure + storage + table + cosmos + cosmosdb + data + PSModule + PSEdition_Core + + + + + System.Collections.Hashtable + System.Object + + + + Function + + + + + + + Command + + + + Add-AzDataTableEntity + Clear-AzDataTable + Get-AzDataTable + Get-AzDataTableEntity + Get-AzDataTableSupportedEntityType + Remove-AzDataTableEntity + Update-AzDataTableEntity + New-AzDataTableContext + Remove-AzDataTable + New-AzDataTable + + + + + DscResource + + + + Workflow + + + + RoleCapability + + + + Cmdlet + + + + Add-AzDataTableEntity + Clear-AzDataTable + Get-AzDataTable + Get-AzDataTableEntity + Get-AzDataTableSupportedEntityType + Remove-AzDataTableEntity + Update-AzDataTableEntity + New-AzDataTableContext + Remove-AzDataTable + New-AzDataTable + + + + + + + ## [3.4.0] - 2025-07-03_x000A__x000A_### Added_x000A__x000A_- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52)_x000A_- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter_x000A__x000A_### Changed_x000A__x000A_- Dependency version bumps_x000A_- Rewrote core module logic to add a converter system which allows for flexible entity types_x000A_- Updated gitversion config for build and release_x000A_- Improved module tests for the new type converter system + + + + + https://www.powershellgallery.com/api/v2 + PSGallery + NuGet + + + System.Management.Automation.PSCustomObject + System.Object + + + (c) Emanuel Palm. All rights reserved. + A module for handling Azure Table Storage operations by wrapping the Azure Data Tables SDK. + False + ## [3.4.0] - 2025-07-03_x000A__x000A_### Added_x000A__x000A_- Added SortedList as valid type for -Entity parameter [#52](https://github.com/PalmEmanuel/AzBobbyTables/issues/52)_x000A_- New command `Get-AzDataTableSupportedEntityType` to get the supported data types for the module when using `-Entity` parameter_x000A__x000A_### Changed_x000A__x000A_- Dependency version bumps_x000A_- Rewrote core module logic to add a converter system which allows for flexible entity types_x000A_- Updated gitversion config for build and release_x000A_- Improved module tests for the new type converter system + True + True + 3355 + 58167 + 1560682 + 7/3/2025 5:55:54 PM -04:00 + 7/3/2025 5:55:54 PM -04:00 + 10/18/2025 1:10:00 AM -04:00 + azure storage table cosmos cosmosdb data PSModule PSEdition_Core PSCmdlet_Add-AzDataTableEntity PSCommand_Add-AzDataTableEntity PSCmdlet_Clear-AzDataTable PSCommand_Clear-AzDataTable PSCmdlet_Get-AzDataTable PSCommand_Get-AzDataTable PSCmdlet_Get-AzDataTableEntity PSCommand_Get-AzDataTableEntity PSCmdlet_Get-AzDataTableSupportedEntityType PSCommand_Get-AzDataTableSupportedEntityType PSCmdlet_Remove-AzDataTableEntity PSCommand_Remove-AzDataTableEntity PSCmdlet_Update-AzDataTableEntity PSCommand_Update-AzDataTableEntity PSCmdlet_New-AzDataTableContext PSCommand_New-AzDataTableContext PSCmdlet_Remove-AzDataTable PSCommand_Remove-AzDataTable PSCmdlet_New-AzDataTable PSCommand_New-AzDataTable PSIncludes_Cmdlet + False + 2025-10-18T01:10:00Z + 3.4.0 + Emanuel Palm + false + Module + AzBobbyTables.nuspec|AzBobbyTables.psd1|dependencies\System.Numerics.Vectors.dll|dependencies\System.Buffers.dll|dependencies\System.Security.AccessControl.dll|LICENSE|dependencies\Azure.Core.dll|dependencies\AzBobbyTables.Core.dll|dependencies\Azure.Data.Tables.dll|AzBobbyTables.PS.dll|dependencies\Microsoft.VisualStudio.Threading.dll|dependencies\Microsoft.VisualStudio.Validation.dll|dependencies\System.Text.Encodings.Web.dll|dependencies\System.Diagnostics.DiagnosticSource.dll|dependencies\System.Memory.dll|dependencies\System.ClientModel.dll|CHANGELOG.md|dependencies\System.Text.Json.dll|dependencies\System.Memory.Data.dll|dependencies\System.Threading.Tasks.Extensions.dll|en-US\AzBobbyTables.PS.dll-Help.xml|dependencies\Microsoft.Bcl.AsyncInterfaces.dll|dependencies\System.Linq.Async.dll|dependencies\Microsoft.Win32.Registry.dll|dependencies\System.Runtime.CompilerServices.Unsafe.dll|dependencies\System.Security.Principal.Windows.dll + eead4f42-5080-4f83-8901-340c529a5a11 + 7.0 + pipe.how + + + C:\GitHub\CIPP Workspace\CIPP-API\Modules\AzBobbyTables\3.4.0 +
+
+
diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/AzBobbyTables.Core.dll b/Modules/AzBobbyTables/3.4.0/dependencies/AzBobbyTables.Core.dll new file mode 100644 index 000000000000..01c63c259aad Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/AzBobbyTables.Core.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Core.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Core.dll new file mode 100644 index 000000000000..390182c78ad8 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Core.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Data.Tables.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Data.Tables.dll new file mode 100644 index 000000000000..e1ca8eec36f2 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Data.Tables.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 000000000000..ec2a3b9cfd57 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Threading.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Threading.dll new file mode 100644 index 000000000000..eb30047dc714 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Threading.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Validation.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Validation.dll new file mode 100644 index 000000000000..8c4956f420e1 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.VisualStudio.Validation.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Win32.Registry.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Win32.Registry.dll new file mode 100644 index 000000000000..d7fdbbd0edc3 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Microsoft.Win32.Registry.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Buffers.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Buffers.dll new file mode 100644 index 000000000000..85e0f73c836b Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Buffers.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.ClientModel.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.ClientModel.dll new file mode 100644 index 000000000000..0cb4427b10db Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.ClientModel.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Diagnostics.DiagnosticSource.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 000000000000..aacf2c145fa0 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Diagnostics.DiagnosticSource.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Linq.Async.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Linq.Async.dll new file mode 100644 index 000000000000..3f589cf3e9d2 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Linq.Async.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.Data.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.Data.dll new file mode 100644 index 000000000000..ed4f7b399813 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.Data.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.dll new file mode 100644 index 000000000000..a28ae5e0dd2c Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Numerics.Vectors.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Numerics.Vectors.dll new file mode 100644 index 000000000000..f7e31b7df037 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Numerics.Vectors.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Runtime.CompilerServices.Unsafe.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 000000000000..4faa7050d984 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Security.AccessControl.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Security.AccessControl.dll new file mode 100644 index 000000000000..7a8365546831 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Security.AccessControl.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Security.Principal.Windows.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Security.Principal.Windows.dll new file mode 100644 index 000000000000..0c7819bd81aa Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Security.Principal.Windows.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Encodings.Web.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Encodings.Web.dll new file mode 100644 index 000000000000..29ef2aeda7ed Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Encodings.Web.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Json.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Json.dll new file mode 100644 index 000000000000..c1df9f92f2ca Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Json.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/dependencies/System.Threading.Tasks.Extensions.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Threading.Tasks.Extensions.dll new file mode 100644 index 000000000000..2f496fbbd4e3 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Threading.Tasks.Extensions.dll differ diff --git a/Modules/AzBobbyTables/3.4.0/en-US/AzBobbyTables.PS.dll-Help.xml b/Modules/AzBobbyTables/3.4.0/en-US/AzBobbyTables.PS.dll-Help.xml new file mode 100644 index 000000000000..691c321d29b9 --- /dev/null +++ b/Modules/AzBobbyTables/3.4.0/en-US/AzBobbyTables.PS.dll-Help.xml @@ -0,0 +1,1620 @@ + + + + + Add-AzDataTableEntity + Add + AzDataTableEntity + + Add one or more entities to an Azure Table. + + + + Add one or more entities to an Azure Table, as an array of either Hashtables or PSObjects. + + + + Add-AzDataTableEntity + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + CreateTableIfNotExists + + If the table should be created if it does not exist. + + + SwitchParameter + + + False + + + Entity + + The entities to add to the table. + + Object[] + + Object[] + + + None + + + Force + + Overwrites provided entities if they exist. + + + SwitchParameter + + + False + + + + Add-AzDataTableEntity + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + CreateTableIfNotExists + + If the table should be created if it does not exist. + + + SwitchParameter + + + False + + + Entity + + The entities to add to the table. + + Object[] + + Object[] + + + None + + + OperationType + + The operation type to perform on the entities. See the Azure SDK documentation for more information: + https://learn.microsoft.com/en-us/dotnet/api/azure.data.tables.tabletransactionactiontype + + + Add + UpsertReplace + UpsertMerge + + String + + String + + + None + + + + + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + CreateTableIfNotExists + + If the table should be created if it does not exist. + + SwitchParameter + + SwitchParameter + + + False + + + Entity + + The entities to add to the table. + + Object[] + + Object[] + + + None + + + Force + + Overwrites provided entities if they exist. + + SwitchParameter + + SwitchParameter + + + False + + + OperationType + + The operation type to perform on the entities. See the Azure SDK documentation for more information: + https://learn.microsoft.com/en-us/dotnet/api/azure.data.tables.tabletransactionactiontype + + String + + String + + + None + + + + + + System.Collections.Hashtable[] or System.Management.Automation.PSObject[] + + + This cmdlet takes either an array of hashtables or psobjects as input to the Entity parameter, which can also be provided through the pipeline. + + + + + + + System.Object + + + + + + + + + Regarding Dates, DateTime, and DateTimeOffset: + The underlying Azure.Data.Tables SDK expects to work with DateTime fields in UTC format for conversion to DateTimeOffset objects. When submitting a DateTimeOffset object to the SDK, it will be converted to UTC timezone rather than preserving the existing timezone/offset info. Similarly, if a `DateTime` object is submitted in the entity with its Kind set to "local" or "unspecified", the SDK will return an error and state that `Azure SDK requires it to be UTC`. While there isn't any change needed to get `DateTimeOffset` objects to work with AzBobbyTables, the workaround for `DateTime` objects is to set the property to a new `DateTime` object with its `Kind` property set to `Utc`. e.g. `$obj.Time = $obj.Time.ToUniversalFormat()`. Related issue (https://github.com/Azure/azure-sdk-for-net/issues/30644). + It is possible via the Azure Storage Explorer to set DateTime fields with offsets other than UTC/+00:00. Note that searches with queries set to type `DateTime` do properly calculate to a specific moment, and find equivilent moments. e.g. a `-Filter` set to `Time eq datetime'2023-12-26T18:05:40.5345634+00:00'` will match an entry where the Time property is set to `2023-12-26T17:05:40.5345634-01:00`. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> $User = @{ FirstName = 'Bobby'; LastName = 'Tables'; PartitionKey = 'Example'; RowKey = '1' } +PS C:\> Add-AzDataTableEntity -Entity $User -Context $Context + + Add the user "Bobby Tables" to a table using a connection string. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -SharedAccessSignature $SAS +PS C:\> $Users = @( +>> @{ FirstName = 'Bobby'; LastName = 'Tables'; PartitionKey = 'Example'; RowKey = '1' }, +>> @{ FirstName = 'Bobby Junior'; LastName = 'Tables'; PartitionKey = 'Example'; RowKey = '2' } ) +PS C:\> Add-AzDataTableEntity -Entity $Users -Context $Context -Force + + Add multiple users to a table using a shared access signature URL, overwriting any existing rows. + + + + -------------------------- Example 3 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> $Users = @( +>> @{ FirstName = 'Bobby'; LastName = 'Tables'; PartitionKey = 'Example'; RowKey = '1' }, +>> @{ FirstName = 'Bobby Junior'; LastName = 'Tables'; PartitionKey = 'Example'; RowKey = '2' } ) +PS C:\> Add-AzDataTableEntity -Entity $Users -Context $Context -OperationType 'UpsertMerge' + + Add multiple users to a table using a connection string, merging entities with any existing rows. + + + + + + + + Clear-AzDataTable + Clear + AzDataTable + + Clear all entities from an Azure Table. + + + + Clear all entities from an Azure Table. + + + + Clear-AzDataTable + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + + + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + + + + None + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> Clear-AzDataTable -Context $Context + + Clear all entities from a table using a connection string. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -StorageAccountName $Name -ManagedIdentity +PS C:\> Clear-AzDataTable $Context + + Clear all entities from a table using a managed identity. + + + + + + + + Get-AzDataTable + Get + AzDataTable + + Get the names of all tables in the storage account. + + + + Get the names of all tables in the storage account. + The optional `-Filter` parameter can be used to filter the tables returned. For more information on the filter syntax, see the Azure Table service documentation: + https://learn.microsoft.com/en-us/rest/api/storageservices/Querying-Tables-and-Entities + + + + Get-AzDataTable + + Context + + A context object created by New-AzDataTableContext, with authentication information for the storage account to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Filter + + A string to filter the tables returned. For more information on the filter syntax, see the Azure Table service documentation: + https://learn.microsoft.com/en-us/rest/api/storageservices/Querying-Tables-and-Entities + + String + + String + + + None + + + + + + Context + + A context object created by New-AzDataTableContext, with authentication information for the storage account to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Filter + + A string to filter the tables returned. For more information on the filter syntax, see the Azure Table service documentation: + https://learn.microsoft.com/en-us/rest/api/storageservices/Querying-Tables-and-Entities + + String + + String + + + None + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-AzDataTable -Context $Context + + Gets all table names in the storage account. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-AzDataTable -Context $Context -Filter "TableName eq '$MyTableName'" + + Gets the table named `$MyTableName` to see if it exists. + + + + + + + + Get-AzDataTableEntity + Get + AzDataTableEntity + + Get one or more entities from an Azure Table. + + + + Get either all entities from an Azure Table, or those matching a provided OData filter. + Documentation on querying tables and entities: <https://docs.microsoft.com/en-gb/rest/api/storageservices/querying-tables-and-entities> + + + + Get-AzDataTableEntity + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Count + + Specifies to only get the number of matching entities in the table, and not the data itself. + + + SwitchParameter + + + False + + + + Get-AzDataTableEntity + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Filter + + The OData filter to use in the query. Documentation on querying tables and entities: <https://docs.microsoft.com/en-gb/rest/api/storageservices/querying-tables-and-entities> + + String + + String + + + None + + + First + + Gets only the specified number of objects. Enter the number of objects to get. + + Int32 + + Int32 + + + None + + + Property + + One or several names of properties, to specify data to return for the entities. + + String[] + + String[] + + + None + + + Skip + + Ignores the specified number of objects and then gets the remaining objects. Enter the number of objects to skip. + + Int32 + + Int32 + + + None + + + Sort + + Specifies one or several property names that to sort the entities by. If several properties are provided, the entities are sorted in the order that the property names are provided. + Note that using this parameter may slow down the command a lot when working with large data sets! + + String[] + + String[] + + + None + + + + + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Count + + Specifies to only get the number of matching entities in the table, and not the data itself. + + SwitchParameter + + SwitchParameter + + + False + + + Filter + + The OData filter to use in the query. Documentation on querying tables and entities: <https://docs.microsoft.com/en-gb/rest/api/storageservices/querying-tables-and-entities> + + String + + String + + + None + + + First + + Gets only the specified number of objects. Enter the number of objects to get. + + Int32 + + Int32 + + + None + + + Property + + One or several names of properties, to specify data to return for the entities. + + String[] + + String[] + + + None + + + Skip + + Ignores the specified number of objects and then gets the remaining objects. Enter the number of objects to skip. + + Int32 + + Int32 + + + None + + + Sort + + Specifies one or several property names that to sort the entities by. If several properties are provided, the entities are sorted in the order that the property names are provided. + Note that using this parameter may slow down the command a lot when working with large data sets! + + String[] + + String[] + + + None + + + + + + None + + + + + + + + + + System.Management.Automation.PSObject + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> $UserEntity = Get-AzDataTableEntity -Filter "FirstName eq 'Bobby' and LastName eq 'Tables'" -Context $Context + + Get the user "Bobby Tables" from the table using a connection string. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> $UserCount = Get-AzDataTableEntity -Filter "LastName eq 'Tables'" -Context $Context -Count + + Use the Count parameter to get only the number of users matching the filter, using a connection string. + + + + -------------------------- Example 3 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ManagedIdentity -StorageAccountName $Name +PS C:\> $UserEntities = Get-AzDataTableEntity -Sort 'Id','Age' -First 100 -Skip 500 -Context $Context + + Skipping the first 100 entities, get 500 entities sorted by id and age from the table using a managed identity for authorization. + + + + -------------------------- Example 4 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -SharedAccessSignature $SAS +PS C:\> $UserEntities = Get-AzDataTableEntity -Property 'FirstName','Age' -Context $Context + + Get only the properties "FirstName" and "Age" for all entities found in the table using a shared access signature URL. + + + + + + + + Get-AzDataTableSupportedEntityType + Get + AzDataTableSupportedEntityType + + Gets the list of data types supported as input entities by the module for commands with the `-Entity` parameter. + + + + The cmdlet retrieves a list of data types that are supported as input entities by the module for commands with the `-Entity` parameter, such as Hashtable, PSObject and SortedList. + + + + Get-AzDataTableSupportedEntityType + + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-AzDataTableSupportedEntityType + + This command retrieves and displays the list of supported entity types that can be used with the module. + + + + + + + + New-AzDataTable + New + AzDataTable + + Create a new table. + + + + Create a new table. + + + + New-AzDataTable + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + + + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + + + + None + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> New-AzDataTable -Context $Context + + Create a new table using a connection string for the storage account. + + + + + + + + New-AzDataTableContext + New + AzDataTableContext + + Creates a context object with authentication information for the table to operate on, to be used in other commands. + + + + Creates a context object with authentication information for the table to operate on, to be used in other commands. + + + + New-AzDataTableContext + + ClientId + + Specifies the client id when using a user-assigned managed identity. + + String + + String + + + None + + + ManagedIdentity + + Specifies that the command is run by a managed identity (such as in an Azure Function), and authorization will be handled using that identity. + + + SwitchParameter + + + False + + + StorageAccountName + + The name of the storage account. + + String + + String + + + None + + + TableName + + The name of the table. + + String + + String + + + None + + + + New-AzDataTableContext + + ConnectionString + + The connection string to the storage account. + + String + + String + + + None + + + TableName + + The name of the table. + + String + + String + + + None + + + + New-AzDataTableContext + + SharedAccessSignature + + The table service SAS URL. The table endpoint of the storage account, with the shared access token appended to it. + + Uri + + Uri + + + None + + + TableName + + The name of the table. + + String + + String + + + None + + + + New-AzDataTableContext + + StorageAccountKey + + The storage account access key. + + String + + String + + + None + + + StorageAccountName + + The name of the storage account. + + String + + String + + + None + + + TableName + + The name of the table. + + String + + String + + + None + + + + New-AzDataTableContext + + StorageAccountName + + The name of the storage account. + + String + + String + + + None + + + TableName + + The name of the table. + + String + + String + + + None + + + Token + + An access token to use for authorization. + + String + + String + + + None + + + + + + ClientId + + Specifies the client id when using a user-assigned managed identity. + + String + + String + + + None + + + ConnectionString + + The connection string to the storage account. + + String + + String + + + None + + + ManagedIdentity + + Specifies that the command is run by a managed identity (such as in an Azure Function), and authorization will be handled using that identity. + + SwitchParameter + + SwitchParameter + + + False + + + SharedAccessSignature + + The table service SAS URL. The table endpoint of the storage account, with the shared access token appended to it. + + Uri + + Uri + + + None + + + StorageAccountKey + + The storage account access key. + + String + + String + + + None + + + StorageAccountName + + The name of the storage account. + + String + + String + + + None + + + TableName + + The name of the table. + + String + + String + + + None + + + Token + + An access token to use for authorization. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString + + Creates a context object using the table name and a connection string. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -StorageAccountName $Name -StorageAccountKey $Key + + Creates a context object using the table name, storage account name and a storage account access key. + + + + -------------------------- Example 3 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -SharedAccessSignature $SAS + + Creates a context object using the table name and a shared access signature URL. + + + + -------------------------- Example 4 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -StorageAccountName $Name -ManagedIdentity + + Creates a context object using the table name, storage account name and a managed identity for authorization. + + + + -------------------------- Example 5 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -StorageAccountName $Name -Token $Token + + Creates a context object using the table name, storage account name and an access token. + + + + + + + + Remove-AzDataTable + Remove + AzDataTable + + Delete an existing table. + + + + Delete an existing table. + + + + Remove-AzDataTable + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + + + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + + + + None + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> Remove-AzDataTable -Context $Context + + Remove an existing table using a connection string for the storage account. + + + + + + + + Remove-AzDataTableEntity + Remove + AzDataTableEntity + + Remove one or more entities from an Azure Table. + + + + Remove one or more entities from an Azure Table, as an array of either Hashtables or PSObjects, based on PartitionKey and RowKey. + + + + Remove-AzDataTableEntity + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Entity + + The entities to remove from the table. + + Object[] + + Object[] + + + None + + + Force + + Skips ETag validation and remove entity even if it has changed. + + + SwitchParameter + + + False + + + + + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Entity + + The entities to remove from the table. + + Object[] + + Object[] + + + None + + + Force + + Skips ETag validation and remove entity even if it has changed. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Collections.Hashtable[] or System.Management.Automation.PSObject[] + + + This cmdlet takes either an array of hashtables or psobjects as input to the Entity parameter, which can also be provided through the pipeline. + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -StorageAccountName $Name -StorageAccountKey $Key +PS C:\> $Entity = @{ PartitionKey = 'Example'; RowKey = '1' } +PS C:\> Remove-AzDataTableEntity -Entity $Entity -Context $Context + + Remove the entity with PartitionKey "Example" and RowKey "1", using the storage account name and an access key. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> $UserEntity = Get-AzDataTableEntity -Filter "FirstName eq 'Bobby' and LastName eq 'Tables'" -Context $Context +PS C:\> Remove-AzDataTableEntity -Entity $UserEntity -Context $Context + + Get the user "Bobby Tables" from the table using a connection string, then remove the user using the storage account name and an access key. + + + + -------------------------- Example 3 -------------------------- + PS C:\> $Context = New-AzDataTableContext -StorageAccountName $StorageName -TableName $TableName -ManagedIdentity +PS C:\> $Users = Get-AzDataTableEntity -Filter "LastName eq 'Tables'" -Context $Context +PS C:\> Remove-AzDataTableEntity -Entity $Users -Context $Context + + Gets all users with the last name "Tables" from the table using a system-assigned managed identity, then removes the users. + + + + -------------------------- Example 4 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> $Users = Get-AzDataTableEntity -Filter "LastName eq 'Tables'" -Context $Context +PS C:\> # Imagine that the users are updated somewhere else +PS C:\> Remove-AzDataTableEntity -Entity $Users -Context $Context +PS C:\> # ERROR - The ETag of Users do not match +PS C:\> Remove-AzDataTableEntity -Entity $Users -Context $Context -Force +PS C:\> # OK - The -Force switch overrides ETag validation + + Force remove all users with the last name Tables, overriding ETag validation. + + + + + + + + Update-AzDataTableEntity + Update + AzDataTableEntity + + Update one or more entities in an Azure Table. + + + + Update one or more entities already existing in an Azure Table, as an array of either Hashtables or PSObjects. + For adding and overwriting, also see the command Add-AzDataTableEntity. + The PartitionKey and RowKey cannot be updated. + + + + Update-AzDataTableEntity + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Entity + + The entities to update in the table. + + Object[] + + Object[] + + + None + + + Force + + Skips ETag validation and updates entity even if it has changed. + + + SwitchParameter + + + False + + + OperationType + + The operation type to perform on the entities. See the Azure SDK documentation for more information: + https://learn.microsoft.com/en-us/dotnet/api/azure.data.tables.tabletransactionactiontype + + + UpdateMerge + UpdateReplace + + String + + String + + + None + + + + + + Context + + A context object created by New-AzDataTableContext, with authentication information for the table to operate on. + + AzDataTableContext + + AzDataTableContext + + + None + + + Entity + + The entities to update in the table. + + Object[] + + Object[] + + + None + + + Force + + Skips ETag validation and updates entity even if it has changed. + + SwitchParameter + + SwitchParameter + + + False + + + OperationType + + The operation type to perform on the entities. See the Azure SDK documentation for more information: + https://learn.microsoft.com/en-us/dotnet/api/azure.data.tables.tabletransactionactiontype + + String + + String + + + None + + + + + + System.Collections.Hashtable[] or System.Management.Automation.PSObject[] + + + This cmdlet takes either an array of hashtables or psobjects as input to the Entity parameter, which can also be provided through the pipeline. + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> $UserEntity = Get-AzDataTableEntity -Filter "FirstName eq 'Bobby'" -Context $Context +PS C:\> $UserEntity['LastName'] = 'Tables' +PS C:\> Update-AzDataTableEntity -Entity $UserEntity -Context $Context + + Update the last name of the user "Bobby" to "Tables" using a connection string. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $Context = New-AzDataTableContext -TableName $TableName -ConnectionString $ConnectionString +PS C:\> $UserEntity = Get-AzDataTableEntity -Filter "FirstName eq 'Bobby'" -Context $Context +PS C:\> $UserEntity['LastName'] = 'Tables' +PS C:\> # Imagine that the user is updated somewhere else +PS C:\> Update-AzDataTableEntity -Entity $UserEntity -Context $Context +PS C:\> # ERROR - The ETag of UserEntity does not match +PS C:\> Update-AzDataTableEntity -Entity $UserEntity -Context $Context -Force +PS C:\> # OK - The -Force switch overrides ETag validation + + Force update the last name of the user "Bobby" to "Tables" using a connection string, overriding ETag validation. + + + + + + \ No newline at end of file diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.dll new file mode 100644 index 000000000000..130416a22070 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.pdb b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.pdb new file mode 100644 index 000000000000..c1ee74cc90c1 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.pdb differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.psd1 b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.psd1 new file mode 100644 index 000000000000..db2db4336280 --- /dev/null +++ b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.psd1 @@ -0,0 +1,97 @@ +@{ + # Version number of this module. + ModuleVersion = '1.1.0' + + # Supported PSEditions + CompatiblePSEditions = @('Core') + + # ID used to uniquely identify this module + GUID = '841fad61-94f5-4330-89be-613d54165289' + + # Author of this module + Author = 'Microsoft Corporation' + + # Company or vendor of this module + CompanyName = 'Microsoft Corporation' + + # Copyright statement for this module + Copyright = '(c) Microsoft Corporation. All rights reserved.' + + # Description of the functionality provided by this module + Description = 'Initial release of the Durable Functions SDK for PowerShell. This package is to be used exclusively with the Azure Functions PowerShell worker.' + + # Minimum version of the PowerShell engine required by this module + PowerShellVersion = '7.2' + + # Type files (.ps1xml) to be loaded when importing this module + # TypesToProcess = @() # TODO: use this for pretty-printing DF tasks + + # Format files (.ps1xml) to be loaded when importing this module + # FormatsToProcess = @() # TODO: use this for pretty-printing DF tasks + + # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess + NestedModules = @('./AzureFunctions.PowerShell.Durable.SDK.dll', './AzureFunctions.PowerShell.Durable.SDK.psm1') + + # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. + FunctionsToExport = @( + 'Get-DurableStatus', + 'New-DurableOrchestrationCheckStatusResponse', + 'Send-DurableExternalEvent', + 'Start-DurableOrchestration', + 'Stop-DurableOrchestration', + 'Suspend-DurableOrchestration', + 'Resume-DurableOrchestration' + ) + + # Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. + CmdletsToExport = @( + 'Invoke-DurableActivity', + 'Invoke-DurableSubOrchestrator', + 'New-DurableRetryPolicy', + 'Set-DurableCustomStatus', + 'Set-FunctionInvocationContext', + 'Start-DurableExternalEventListener' + 'Start-DurableTimer', + 'Stop-DurableTimerTask', + 'Wait-DurableTask', + 'Get-DurableTaskResult' + ) + + # Variables to export from this module + VariablesToExport = '*' + + # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. + AliasesToExport = @( + 'Invoke-ActivityFunction', + 'New-OrchestrationCheckStatusResponse', + 'Start-NewOrchestration', + 'Wait-ActivityFunction', + 'New-DurableRetryOptions' + ) + + # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. + PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + Tags = @('Microsoft', 'Azure', 'Functions', 'Serverless', 'Cloud', 'Workflows', 'Durable', 'DurableTask') + + # A URL to the license for this module. + LicenseUri = 'https://github.com/Azure/azure-functions-durable-powershell/blob/main/LICENSE' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/Azure/azure-functions-durable-powershell' + + # ReleaseNotes of this module + # ReleaseNotes = '' #TODO: add release notes. + + # Prerelease string of this module + #Prerelease = 'alpha' + + } # End of PSData hashtable + } # End of PrivateData hashtable + + # HelpInfo URI of this module + # HelpInfoURI = '' # TODO: explore +} \ No newline at end of file diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.psm1 b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.psm1 new file mode 100644 index 000000000000..1cffa0cbb1e4 --- /dev/null +++ b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/AzureFunctions.PowerShell.Durable.SDK.psm1 @@ -0,0 +1,366 @@ +# +# Copyright (c) Microsoft. All rights reserved. +# Licensed under the MIT license. See LICENSE file in the project root for full license information. +# + +using namespace System.Net + +# Set aliases for cmdlets to export +Set-Alias -Name Wait-ActivityFunction -Value Wait-DurableTask +Set-Alias -Name Invoke-ActivityFunction -Value Invoke-DurableActivity +Set-Alias -Name New-OrchestrationCheckStatusResponse -Value New-DurableOrchestrationCheckStatusResponse +Set-Alias -Name Start-NewOrchestration -Value Start-DurableOrchestration +Set-Alias -Name New-DurableRetryOptions -Value New-DurableRetryPolicy + +function GetDurableClientFromModulePrivateData { + $PrivateData = $PSCmdlet.MyInvocation.MyCommand.Module.PrivateData + if ($null -eq $PrivateData -or $null -eq $PrivateData['DurableClient']) { + throw "Could not find `DurableClient` private data. This can occur when you have not set application setting 'ExternalDurablePowerShellSDK' to 'true' or if you're using a DurableClient CmdLet but have no DurableClient binding declared in `function.json`." + } + else { + $PrivateData['DurableClient'] + } +} + +function Get-DurableStatus { + [CmdletBinding()] + param( + [Parameter( + Mandatory = $true, + Position = 0, + ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [string] $InstanceId, + + [Parameter( + ValueFromPipelineByPropertyName = $true)] + [object] $DurableClient, + + [switch] $ShowHistory, + + [switch] $ShowHistoryOutput, + + [switch] $ShowInput + ) + + $ErrorActionPreference = 'Stop' + + if ($null -eq $DurableClient) { + $DurableClient = GetDurableClientFromModulePrivateData + } + + $requestUrl = "$($DurableClient.rpcBaseUrl)/instances/$InstanceId" + + $query = @() + if ($ShowHistory.IsPresent) { + $query += "showHistory=true" + } + if ($ShowHistoryOutput.IsPresent) { + $query += "showHistoryOutput=true" + } + if ($ShowInput.IsPresent) { + $query += "showInput=true" + } + + if ($query.Count -gt 0) { + $requestUrl += "?" + [string]::Join("&", $query) + } + + Invoke-RestMethod -Uri $requestUrl +} + +<# +.SYNOPSIS + Start an orchestration Azure Function. +.DESCRIPTION + Start an orchestration Azure Function with the given function name and input value. +.EXAMPLE + PS > Start-DurableOrchestration -DurableClient Starter -FunctionName OrchestratorFunction -InputObject "input value for the orchestration function" + Return the instance id of the new orchestration. +.PARAMETER FunctionName + The name of the orchestration Azure Function you want to start. +.PARAMETER InputObject + The input value that will be passed to the orchestration Azure Function. +.PARAMETER DurableClient + The orchestration client object. +#> +function Start-DurableOrchestration { + [CmdletBinding()] + param( + [Parameter( + Mandatory=$true, + Position=0, + ValueFromPipelineByPropertyName=$true)] + [ValidateNotNullOrEmpty()] + [string] $FunctionName, + + [Parameter( + Position=1, + ValueFromPipelineByPropertyName=$true)] + [object] $InputObject, + + [Parameter( + ValueFromPipelineByPropertyName=$true)] + [object] $DurableClient, + + [Parameter( + ValueFromPipelineByPropertyName=$true)] + [string] $InstanceId + ) + + $ErrorActionPreference = 'Stop' + + if ($null -eq $DurableClient) { + $DurableClient = GetDurableClientFromModulePrivateData + } + + if (-not $InstanceId) { + $InstanceId = (New-Guid).Guid + } + + $Uri = + if ($DurableClient.rpcBaseUrl) { + # Fast local RPC path + "$($DurableClient.rpcBaseUrl)orchestrators/$FunctionName$($InstanceId ? "/$InstanceId" : '')" + } else { + # Legacy app frontend path + $UriTemplate = $DurableClient.creationUrls.createNewInstancePostUri + $UriTemplate.Replace('{functionName}', $FunctionName).Replace('[/{instanceId}]', "/$InstanceId") + } + + $Body = $InputObject | ConvertTo-Json -Compress -Depth 100 + + $null = Invoke-RestMethod -Uri $Uri -Method 'POST' -ContentType 'application/json' -Body $Body + + return $instanceId +} + +function Stop-DurableOrchestration { + [CmdletBinding()] + param( + [Parameter( + Mandatory = $true, + Position = 0, + ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [string] $InstanceId, + + [Parameter( + Mandatory = $true, + Position = 1, + ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [string] $Reason + ) + + $ErrorActionPreference = 'Stop' + + if ($null -eq $DurableClient) { + $DurableClient = GetDurableClientFromModulePrivateData + } + + $requestUrl = "$($DurableClient.rpcBaseUrl)/instances/$InstanceId/terminate?reason=$([System.Web.HttpUtility]::UrlEncode($Reason))" + + Invoke-RestMethod -Uri $requestUrl -Method 'POST' +} + +function Suspend-DurableOrchestration { + [CmdletBinding()] + param( + [Parameter( + Mandatory = $true, + Position = 0, + ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [string] $InstanceId, + + [Parameter( + Mandatory = $true, + Position = 1, + ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [string] $Reason + ) + + $ErrorActionPreference = 'Stop' + + if ($null -eq $DurableClient) { + $DurableClient = GetDurableClientFromModulePrivateData + } + + $requestUrl = "$($DurableClient.rpcBaseUrl)/instances/$InstanceId/suspend?reason=$([System.Web.HttpUtility]::UrlEncode($Reason))" + + Invoke-RestMethod -Uri $requestUrl -Method 'POST' +} + +function Resume-DurableOrchestration { + [CmdletBinding()] + param( + [Parameter( + Mandatory = $true, + Position = 0, + ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [string] $InstanceId, + + [Parameter( + Mandatory = $true, + Position = 1, + ValueFromPipelineByPropertyName = $true)] + [ValidateNotNullOrEmpty()] + [string] $Reason + ) + + $ErrorActionPreference = 'Stop' + + if ($null -eq $DurableClient) { + $DurableClient = GetDurableClientFromModulePrivateData + } + + $requestUrl = "$($DurableClient.rpcBaseUrl)/instances/$InstanceId/resume?reason=$([System.Web.HttpUtility]::UrlEncode($Reason))" + + Invoke-RestMethod -Uri $requestUrl -Method 'POST' +} + +function IsValidUrl([uri]$Url) { + $Url.IsAbsoluteUri -and ($Url.Scheme -in 'http', 'https') +} + +function GetUrlOrigin([uri]$Url) { + $fixedOriginUrl = New-Object System.UriBuilder + $fixedOriginUrl.Scheme = $Url.Scheme + $fixedOriginUrl.Host = $Url.Host + $fixedOriginUrl.Port = $Url.Port + $fixedOriginUrl.ToString() +} + +function New-DurableOrchestrationCheckStatusResponse { + [CmdletBinding()] + param( + [Parameter( + Mandatory=$true, + ValueFromPipelineByPropertyName=$true)] + [object] $Request, + + [Parameter( + Mandatory=$true, + ValueFromPipelineByPropertyName=$true)] + [string] $InstanceId, + + [Parameter( + ValueFromPipelineByPropertyName=$true)] + [object] $DurableClient + ) + + if ($null -eq $DurableClient) { + $DurableClient = GetDurableClientFromModulePrivateData + } + + [uri]$requestUrl = $Request.Url + $requestHasValidUrl = IsValidUrl $requestUrl + $requestUrlOrigin = GetUrlOrigin $requestUrl + + $httpManagementPayload = [ordered]@{ } + foreach ($entry in $DurableClient.managementUrls.GetEnumerator()) { + $value = $entry.Value + + if ($requestHasValidUrl -and (IsValidUrl $value)) { + $dataOrigin = GetUrlOrigin $value + $value = $value.Replace($dataOrigin, $requestUrlOrigin) + } + + $value = $value.Replace($DurableClient.managementUrls.id, $InstanceId) + $httpManagementPayload.Add($entry.Name, $value) + } + + [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Accepted + Body = $httpManagementPayload + Headers = @{ + 'Content-Type' = 'application/json' + 'Location' = $httpManagementPayload.statusQueryGetUri + 'Retry-After' = 10 + } + } +} + +<# +.SYNOPSIS + Send an external event to an orchestration instance. +.DESCRIPTION + Send an external event with the given event name, and event data to an orchestration instance with the given instance ID. +.EXAMPLE + PS > Send-DurableExternalEvent -InstanceId "example-instance-id" -EventName "ExampleExternalEvent" -EventData "data for the external event" + Return the instance id of the new orchestration. +.PARAMETER InstanceId + The ID of the orchestration instance that will handle the external event. +.PARAMETER EventName + The name of the external event. +.PARAMETER EventData + The JSON-serializable data associated with the external event. +.PARAMETER TaskHubName + The TaskHubName of the orchestration instance that will handle the external event. +.PARAMETER ConnectionName + The name of the connection string associated with TaskHubName +#> +function Send-DurableExternalEvent { + [CmdletBinding()] + param( + [Parameter( + Mandatory=$true, + Position=0, + ValueFromPipelineByPropertyName=$true)] + [ValidateNotNullOrEmpty()] + [string] $InstanceId, + + [Parameter( + Mandatory=$true, + Position=1, + ValueFromPipelineByPropertyName=$true)] + [string] $EventName, + + [Parameter( + Position=2, + ValueFromPipelineByPropertyName=$true)] + [object] $EventData, + + [Parameter( + ValueFromPipelineByPropertyName=$true)] + [string] $TaskHubName, + + [Parameter( + ValueFromPipelineByPropertyName=$true)] + [string] $ConnectionName + ) + + $DurableClient = GetDurableClientFromModulePrivateData + + $RequestUrl = GetRaiseEventUrl -DurableClient $DurableClient -InstanceId $InstanceId -EventName $EventName -TaskHubName $TaskHubName -ConnectionName $ConnectionName + + $Body = $EventData | ConvertTo-Json -Compress -Depth 100 + + $null = Invoke-RestMethod -Uri $RequestUrl -Method 'POST' -ContentType 'application/json' -Body $Body +} + +function GetRaiseEventUrl( + $DurableClient, + [string] $InstanceId, + [string] $EventName, + [string] $TaskHubName, + [string] $ConnectionName) { + + $RequestUrl = $DurableClient.rpcBaseUrl + "/instances/$InstanceId/raiseEvent/$EventName" + + $query = @() + if ($null -eq $TaskHubName) { + $query += "taskHub=$TaskHubName" + } + if ($null -eq $ConnectionName) { + $query += "connection=$ConnectionName" + } + if ($query.Count -gt 0) { + $RequestUrl += "?" + [string]::Join("&", $query) + } + + return $RequestUrl +} \ No newline at end of file diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Castle.Core.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Castle.Core.dll new file mode 100644 index 000000000000..96e43f2136f9 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Castle.Core.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableEngine.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableEngine.dll new file mode 100644 index 000000000000..72b49dd0d584 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableEngine.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableEngine.pdb b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableEngine.pdb new file mode 100644 index 000000000000..ff5ff77c1e52 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableEngine.pdb differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableTask.Core.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableTask.Core.dll new file mode 100644 index 000000000000..3382c7d6ddfb Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/DurableTask.Core.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Bcl.AsyncInterfaces.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 000000000000..fe6ba4c549bc Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Bcl.AsyncInterfaces.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Abstractions.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Abstractions.dll new file mode 100644 index 000000000000..0dc818acefc3 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Abstractions.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Client.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Client.dll new file mode 100644 index 000000000000..8bd64329e66c Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Client.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Worker.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Worker.dll new file mode 100644 index 000000000000..ea826b4fdf8b Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.DurableTask.Worker.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Configuration.Abstractions.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Configuration.Abstractions.dll new file mode 100644 index 000000000000..9a24516f399b Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Configuration.Abstractions.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 000000000000..b4ee93da0299 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.FileProviders.Abstractions.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.FileProviders.Abstractions.dll new file mode 100644 index 000000000000..d1045b65ad92 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.FileProviders.Abstractions.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Hosting.Abstractions.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Hosting.Abstractions.dll new file mode 100644 index 000000000000..4d33a647fda8 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Hosting.Abstractions.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Logging.Abstractions.dll new file mode 100644 index 000000000000..bb27a2fcaa36 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Options.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Options.dll new file mode 100644 index 000000000000..604b60275e68 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Options.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Primitives.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Primitives.dll new file mode 100644 index 000000000000..1b2c43afc495 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Microsoft.Extensions.Primitives.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Newtonsoft.Json.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Newtonsoft.Json.dll new file mode 100644 index 000000000000..1ffeabe658ac Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/Newtonsoft.Json.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Diagnostics.EventLog.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Diagnostics.EventLog.dll new file mode 100644 index 000000000000..8a65e715b96e Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Diagnostics.EventLog.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Core.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Core.dll new file mode 100644 index 000000000000..a3b43b6279c4 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Core.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Interfaces.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Interfaces.dll new file mode 100644 index 000000000000..690f6d2344cc Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Interfaces.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Linq.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Linq.dll new file mode 100644 index 000000000000..9d91f71eb09c Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Linq.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.PlatformServices.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.PlatformServices.dll new file mode 100644 index 000000000000..4ded127379bd Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.PlatformServices.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Providers.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Providers.dll new file mode 100644 index 000000000000..612587dad973 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.Providers.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.dll b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.dll new file mode 100644 index 000000000000..abaf211395a6 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/Dependencies/System.Reactive.dll differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/PSGetModuleInfo.xml b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/PSGetModuleInfo.xml new file mode 100644 index 000000000000..a98f05d4a295 --- /dev/null +++ b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/PSGetModuleInfo.xml @@ -0,0 +1,170 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + AzureFunctions.PowerShell.Durable.SDK + 1.1.0 + Module + Initial release of the Durable Functions SDK for PowerShell. This package is to be used exclusively with the Azure Functions PowerShell worker. + Microsoft Corporation + + + System.Object[] + System.Array + System.Object + + + davidmrdavid + michaelpeng + + + (c) Microsoft Corporation. All rights reserved. +
2024-02-14T04:09:33-05:00
+ + + https://github.com/Azure/azure-functions-durable-powershell/blob/main/LICENSE + https://github.com/Azure/azure-functions-durable-powershell + + + + + Microsoft + Azure + Functions + Serverless + Cloud + Workflows + Durable + DurableTask + PSModule + PSEdition_Core + + + + + System.Collections.Hashtable + System.Object + + + + RoleCapability + + + + + + + DscResource + + + + Cmdlet + + + + Invoke-DurableActivity + Invoke-DurableSubOrchestrator + New-DurableRetryPolicy + Set-DurableCustomStatus + Set-FunctionInvocationContext + Start-DurableExternalEventListener + Start-DurableTimer + Stop-DurableTimerTask + Wait-DurableTask + Get-DurableTaskResult + + + + + Workflow + + + + Command + + + + Invoke-DurableActivity + Invoke-DurableSubOrchestrator + New-DurableRetryPolicy + Set-DurableCustomStatus + Set-FunctionInvocationContext + Start-DurableExternalEventListener + Start-DurableTimer + Stop-DurableTimerTask + Wait-DurableTask + Get-DurableTaskResult + Get-DurableStatus + New-DurableOrchestrationCheckStatusResponse + Send-DurableExternalEvent + Start-DurableOrchestration + Stop-DurableOrchestration + Suspend-DurableOrchestration + Resume-DurableOrchestration + + + + + Function + + + + Get-DurableStatus + New-DurableOrchestrationCheckStatusResponse + Send-DurableExternalEvent + Start-DurableOrchestration + Stop-DurableOrchestration + Suspend-DurableOrchestration + Resume-DurableOrchestration + + + + + + + + + + + + https://www.powershellgallery.com/api/v2 + PSGallery + NuGet + + + System.Management.Automation.PSCustomObject + System.Object + + + (c) Microsoft Corporation. All rights reserved. + Initial release of the Durable Functions SDK for PowerShell. This package is to be used exclusively with the Azure Functions PowerShell worker. + False + True + True + 1411 + 4017 + 1375697 + 2/14/2024 4:09:33 AM -05:00 + 2/14/2024 4:09:33 AM -05:00 + 4/21/2024 1:06:52 PM -04:00 + Microsoft Azure Functions Serverless Cloud Workflows Durable DurableTask PSModule PSEdition_Core PSCmdlet_Invoke-DurableActivity PSCommand_Invoke-DurableActivity PSCmdlet_Invoke-DurableSubOrchestrator PSCommand_Invoke-DurableSubOrchestrator PSCmdlet_New-DurableRetryPolicy PSCommand_New-DurableRetryPolicy PSCmdlet_Set-DurableCustomStatus PSCommand_Set-DurableCustomStatus PSCmdlet_Set-FunctionInvocationContext PSCommand_Set-FunctionInvocationContext PSCmdlet_Start-DurableExternalEventListener PSCommand_Start-DurableExternalEventListener PSCmdlet_Start-DurableTimer PSCommand_Start-DurableTimer PSCmdlet_Stop-DurableTimerTask PSCommand_Stop-DurableTimerTask PSCmdlet_Wait-DurableTask PSCommand_Wait-DurableTask PSCmdlet_Get-DurableTaskResult PSCommand_Get-DurableTaskResult PSIncludes_Cmdlet PSFunction_Get-DurableStatus PSCommand_Get-DurableStatus PSFunction_New-DurableOrchestrationCheckStatusResponse PSCommand_New-DurableOrchestrationCheckStatusResponse PSFunction_Send-DurableExternalEvent PSCommand_Send-DurableExternalEvent PSFunction_Start-DurableOrchestration PSCommand_Start-DurableOrchestration PSFunction_Stop-DurableOrchestration PSCommand_Stop-DurableOrchestration PSFunction_Suspend-DurableOrchestration PSCommand_Suspend-DurableOrchestration PSFunction_Resume-DurableOrchestration PSCommand_Resume-DurableOrchestration PSIncludes_Function + False + 2024-04-21T13:06:52Z + 1.1.0 + Microsoft Corporation + false + Module + AzureFunctions.PowerShell.Durable.SDK.nuspec|_manifest\spdx_2.2\manifest.spdx.json|AzureFunctions.PowerShell.Durable.SDK.dll|AzureFunctions.PowerShell.Durable.SDK.psd1|Dependencies\DurableEngine.dll|Dependencies\Microsoft.Bcl.AsyncInterfaces.dll|Dependencies\Microsoft.DurableTask.Worker.dll|Dependencies\Microsoft.Extensions.FileProviders.Abstractions.dll|Dependencies\Microsoft.Extensions.Options.dll|Dependencies\System.Diagnostics.EventLog.dll|Dependencies\System.Reactive.Interfaces.dll|Dependencies\System.Reactive.PlatformServices.dll|_manifest\manifest.json|_manifest\spdx_2.2\manifest.spdx.json.sha256|AzureFunctions.PowerShell.Durable.SDK.psm1|Dependencies\DurableEngine.pdb|Dependencies\Microsoft.DurableTask.Abstractions.dll|Dependencies\Microsoft.Extensions.Configuration.Abstractions.dll|Dependencies\Microsoft.Extensions.Hosting.Abstractions.dll|Dependencies\Microsoft.Extensions.Primitives.dll|Dependencies\System.Reactive.Core.dll|Dependencies\System.Reactive.Linq.dll|Dependencies\System.Reactive.Providers.dll|_manifest\manifest.json.sha256|AzureFunctions.PowerShell.Durable.SDK.pdb|Dependencies\Castle.Core.dll|Dependencies\DurableTask.Core.dll|Dependencies\Microsoft.DurableTask.Client.dll|Dependencies\Microsoft.Extensions.DependencyInjection.Abstractions.dll|Dependencies\Microsoft.Extensions.Logging.Abstractions.dll|Dependencies\Newtonsoft.Json.dll|Dependencies\System.Reactive.dll + 841fad61-94f5-4330-89be-613d54165289 + 7.2 + Microsoft Corporation + + + C:\GitHub\CIPP Workspace\CIPP-API\Modules\AzureFunctions.PowerShell.Durable.SDK\1.1.0 +
+
+
diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/manifest.json b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/manifest.json new file mode 100644 index 000000000000..518614cdecd8 --- /dev/null +++ b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/manifest.json @@ -0,0 +1,145 @@ +{ + "Outputs": [ + { + "Source": "/AzureFunctions.PowerShell.Durable.SDK.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "3F64733E95FA5EAAD067DDB374C685CA986498C76A61D7CCC0E54990F8777598" + }, + { + "Source": "/Dependencies/Microsoft.Bcl.AsyncInterfaces.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "5705D245072D3EB78400547B32147DBB6E2C8B02BA8BDA76729798F5EFDEAECB" + }, + { + "Source": "/Dependencies/Microsoft.Extensions.Logging.Abstractions.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "D575C9D1543CA726CE14DBDFFD103E93EA527CD46BB28316DA1F4122DBC55D56" + }, + { + "Source": "/Dependencies/System.Reactive.Linq.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "33EB42B7065A01963DBCD762CDC81A4135B6E0E927DDF4C88EAE121AD5F69F92" + }, + { + "Source": "/AzureFunctions.PowerShell.Durable.SDK.pdb", + "AzureArtifactsHash": "0442534A4201000100000000000C0000005044422076312E3000000000000006007C", + "Sha256Hash": "D0FAA169052E0509893EFAB5C413C5184571A71824C7EF23486D235DCCFBE808" + }, + { + "Source": "/Dependencies/Microsoft.DurableTask.Abstractions.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "CC13EF28BE5C94860CCADF1B9D9E8E505484B1AB40D2D3F60827E14E109FEB0C" + }, + { + "Source": "/Dependencies/Microsoft.Extensions.Options.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "786112CB2F6646EF1170219A8C0BB813C9F14A6781E67C6266414F55A679565D" + }, + { + "Source": "/Dependencies/System.Reactive.PlatformServices.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "2D864B716FBAE8C1880143574332A10FBC6D98613AA09F6DD98D9D08B82B65AD" + }, + { + "Source": "/AzureFunctions.PowerShell.Durable.SDK.psd1", + "AzureArtifactsHash": "04407B202020200D0A20202020232056657273696F6E206E756D626572206F662074", + "Sha256Hash": "B8A8129C8C7128112721040E2F0611F05DAA5EA89586CC0DFFE371BC3949D327" + }, + { + "Source": "/Dependencies/Microsoft.DurableTask.Client.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "AE75348D5D809C89D700B34E9DD3826E218DBB7E9749372ABEE72939FE29C426" + }, + { + "Source": "/Dependencies/Microsoft.Extensions.Primitives.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "8CE9A85927EC7507B11FFE90080E7A811D51304A9E8B1DA20C350159BA403902" + }, + { + "Source": "/Dependencies/System.Reactive.Providers.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "79A12C5227A000F8608520F2CAB63BECC4412415A1DBEFF29179DFCAA13B6A3A" + }, + { + "Source": "/AzureFunctions.PowerShell.Durable.SDK.psm1", + "AzureArtifactsHash": "04230D0A2320436F7079726967687420286329204D6963726F736F66742E20416C6C", + "Sha256Hash": "EC87A8BA539AAB3498FC24227C2DA03A5666C5274C23A8D79E4513988D896149" + }, + { + "Source": "/Dependencies/Microsoft.DurableTask.Worker.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "D8D460A09A7E51C1A365883F3296394C1B86257A5235EC30DEDD597BA5F0FC49" + }, + { + "Source": "/Dependencies/Newtonsoft.Json.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "72CF291D4BAB0EDD08A9B07C6173E1E7AD1ABB7AB727FD7044BF6305D7515661" + }, + { + "Source": "/Dependencies/Castle.Core.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "ACA835865E0F0E19E5E69031D1C4C1288961CF4972C5918868ACA513CA6BCE51" + }, + { + "Source": "/Dependencies/Microsoft.Extensions.Configuration.Abstractions.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "E4EB5EB7E28A5548CD904FE1A9C3569ADEF91F52B654DB8A3C56A0A5177A09EB" + }, + { + "Source": "/Dependencies/System.Diagnostics.EventLog.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "24A02D97C2FC6D56735E196BB7FAAAE8FAF0068C486D0C3C7FA3E3B73B4F12A4" + }, + { + "Source": "/Dependencies/DurableEngine.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "BA0249BE14025D6ECA437244B6F9748EEAA99A15A1DE1D8AB288987FECB7FE81" + }, + { + "Source": "/Dependencies/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "9CCD830351AA28BC683D4F8D1CEFD9E724161F972D25BFB64EEE5BF55C48C5E3" + }, + { + "Source": "/Dependencies/System.Reactive.Core.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "47411515E22254958AB719D8C312E6BF7904E32DD1869EB27BF2DDC4E590CAB4" + }, + { + "Source": "/Dependencies/DurableEngine.pdb", + "AzureArtifactsHash": "0442534A4201000100000000000C0000005044422076312E3000000000000006007C", + "Sha256Hash": "340528248A6410D58F860D03557310454EF3285B642C21343DDD083D2E320218" + }, + { + "Source": "/Dependencies/Microsoft.Extensions.FileProviders.Abstractions.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "ECFCEF11C42FA4AD5CF2D4D7F553C8F0017E5EB7A4A9B032B4D0505C98EF4EF4" + }, + { + "Source": "/Dependencies/System.Reactive.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "19F0112CD1F5172EE2688E96DDD44ADA39A4BB1CB2315A154B63E9064F6E3DC0" + }, + { + "Source": "/Dependencies/DurableTask.Core.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "7AA8BB6481F2C61D220A73CD2DA77ADB2D2D28DF1FA02E093DDA3A29A55DC514" + }, + { + "Source": "/Dependencies/Microsoft.Extensions.Hosting.Abstractions.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "DF9EB42421A85F84FF2FC98EA25C23FD7D8813DF23F3AFE28E96B83CC302C8A6" + }, + { + "Source": "/Dependencies/System.Reactive.Interfaces.dll", + "AzureArtifactsHash": "044D5A90000300000004000000FFFF0000B800000000000000400000000000000000", + "Sha256Hash": "EDEE1397E02DF23F85D0B242BB098C850D64CD6CA860AABB34426253A6E3ADAB" + } + ], + "CloudBuildId": "161406", + "Repo": "https://github.com/Azure/azure-functions-durable-powershell", + "Branch": "main", + "CommitId": "936fcb2e1de189e397c154eff6ffe889e9ea2c9d", + "Version": "0.0.1", + "Timestamp": 1707882977 +} \ No newline at end of file diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/manifest.json.sha256 b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/manifest.json.sha256 new file mode 100644 index 000000000000..676d4e7c1744 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/manifest.json.sha256 differ diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/spdx_2.2/manifest.spdx.json b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/spdx_2.2/manifest.spdx.json new file mode 100644 index 000000000000..0929551b8a2c --- /dev/null +++ b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/spdx_2.2/manifest.spdx.json @@ -0,0 +1,614 @@ +{ + "files": [ + { + "fileName": "./AzureFunctions.PowerShell.Durable.SDK.dll", + "SPDXID": "SPDXRef-File--AzureFunctions.PowerShell.Durable.SDK.dll-6F9536B4793B4E4A898D19796D658F79421C54A6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3f64733e95fa5eaad067ddb374c685ca986498c76a61d7ccc0e54990f8777598" + }, + { + "algorithm": "SHA1", + "checksumValue": "6f9536b4793b4e4a898d19796d658f79421c54a6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.Bcl.AsyncInterfaces.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.Bcl.AsyncInterfaces.dll-2E438AEF830795B2D240CF3160A3353BC6CB0232", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5705d245072d3eb78400547b32147dbb6e2c8b02ba8bda76729798f5efdeaecb" + }, + { + "algorithm": "SHA1", + "checksumValue": "2e438aef830795b2d240cf3160a3353bc6cb0232" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.Extensions.Logging.Abstractions.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.Extensions.Logging.Abstractions.dll-02EC010722BBD1740782B502DF30D4475AEBE5F2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d575c9d1543ca726ce14dbdffd103e93ea527cd46bb28316da1f4122dbc55d56" + }, + { + "algorithm": "SHA1", + "checksumValue": "02ec010722bbd1740782b502df30d4475aebe5f2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/System.Reactive.Linq.dll", + "SPDXID": "SPDXRef-File--Dependencies-System.Reactive.Linq.dll-21B3C0F5AE5F6C6A436ECC37E747BF931C141D14", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "33eb42b7065a01963dbcd762cdc81a4135b6e0e927ddf4c88eae121ad5f69f92" + }, + { + "algorithm": "SHA1", + "checksumValue": "21b3c0f5ae5f6c6a436ecc37e747bf931c141d14" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./AzureFunctions.PowerShell.Durable.SDK.pdb", + "SPDXID": "SPDXRef-File--AzureFunctions.PowerShell.Durable.SDK.pdb-0910275DA2D13FAEDDEC83044EFFB5ABDE669BF8", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d0faa169052e0509893efab5c413c5184571a71824c7ef23486d235dccfbe808" + }, + { + "algorithm": "SHA1", + "checksumValue": "0910275da2d13faeddec83044effb5abde669bf8" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.DurableTask.Abstractions.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.DurableTask.Abstractions.dll-D1D43D1F5B80C63EF1E52985922BB90ADEA5DEEC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "cc13ef28be5c94860ccadf1b9d9e8e505484b1ab40d2d3f60827e14e109feb0c" + }, + { + "algorithm": "SHA1", + "checksumValue": "d1d43d1f5b80c63ef1e52985922bb90adea5deec" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.Extensions.Options.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.Extensions.Options.dll-6EC0C1FE1332912086247080B55B06623C78326E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "786112cb2f6646ef1170219a8c0bb813c9f14a6781e67c6266414f55a679565d" + }, + { + "algorithm": "SHA1", + "checksumValue": "6ec0c1fe1332912086247080b55b06623c78326e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/System.Reactive.PlatformServices.dll", + "SPDXID": "SPDXRef-File--Dependencies-System.Reactive.PlatformServices.dll-8A33FDD641185C66DD4FD3DB88DF5504621D3BF4", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2d864b716fbae8c1880143574332a10fbc6d98613aa09f6dd98d9d08b82b65ad" + }, + { + "algorithm": "SHA1", + "checksumValue": "8a33fdd641185c66dd4fd3db88df5504621d3bf4" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./AzureFunctions.PowerShell.Durable.SDK.psd1", + "SPDXID": "SPDXRef-File--AzureFunctions.PowerShell.Durable.SDK.psd1-B73743D787C4BFC0ECA8585F5E1C37B28DE70DAC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b8a8129c8c7128112721040e2f0611f05daa5ea89586cc0dffe371bc3949d327" + }, + { + "algorithm": "SHA1", + "checksumValue": "b73743d787c4bfc0eca8585f5e1c37b28de70dac" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.DurableTask.Client.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.DurableTask.Client.dll-0DE9E1C4F3587BC9C002F935BA5023890ED18B8F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ae75348d5d809c89d700b34e9dd3826e218dbb7e9749372abee72939fe29c426" + }, + { + "algorithm": "SHA1", + "checksumValue": "0de9e1c4f3587bc9c002f935ba5023890ed18b8f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.Extensions.Primitives.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.Extensions.Primitives.dll-376636C20CEE083DA54D4146479032170EC7231B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "8ce9a85927ec7507b11ffe90080e7a811d51304a9e8b1da20c350159ba403902" + }, + { + "algorithm": "SHA1", + "checksumValue": "376636c20cee083da54d4146479032170ec7231b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/System.Reactive.Providers.dll", + "SPDXID": "SPDXRef-File--Dependencies-System.Reactive.Providers.dll-74AA6DBBCB5397BB09D1E69FFCFE9526CBFCEB44", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "79a12c5227a000f8608520f2cab63becc4412415a1dbeff29179dfcaa13b6a3a" + }, + { + "algorithm": "SHA1", + "checksumValue": "74aa6dbbcb5397bb09d1e69ffcfe9526cbfceb44" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./AzureFunctions.PowerShell.Durable.SDK.psm1", + "SPDXID": "SPDXRef-File--AzureFunctions.PowerShell.Durable.SDK.psm1-F3BBC7A52B2C2661C7D2806D1787FBD1FB1473B3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ec87a8ba539aab3498fc24227c2da03a5666c5274c23a8d79e4513988d896149" + }, + { + "algorithm": "SHA1", + "checksumValue": "f3bbc7a52b2c2661c7d2806d1787fbd1fb1473b3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.DurableTask.Worker.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.DurableTask.Worker.dll-D3C716C746EB41567EB15E92313871FF5DF6FE1E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d8d460a09a7e51c1a365883f3296394c1b86257a5235ec30dedd597ba5f0fc49" + }, + { + "algorithm": "SHA1", + "checksumValue": "d3c716c746eb41567eb15e92313871ff5df6fe1e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Newtonsoft.Json.dll", + "SPDXID": "SPDXRef-File--Dependencies-Newtonsoft.Json.dll-E3673D05D46F29E68241D4536BDDF18CDD0A913D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "72cf291d4bab0edd08a9b07c6173e1e7ad1abb7ab727fd7044bf6305d7515661" + }, + { + "algorithm": "SHA1", + "checksumValue": "e3673d05d46f29e68241d4536bddf18cdd0a913d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Castle.Core.dll", + "SPDXID": "SPDXRef-File--Dependencies-Castle.Core.dll-EFB41379A448DA4C368F5694D0675F99662D27C6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "aca835865e0f0e19e5e69031d1c4c1288961cf4972c5918868aca513ca6bce51" + }, + { + "algorithm": "SHA1", + "checksumValue": "efb41379a448da4c368f5694d0675f99662d27c6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.Extensions.Configuration.Abstractions.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.Extensions.Configuration.Abstractions.dll-C524C7D46A343B75A64BF52B19E3C70C453F9061", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e4eb5eb7e28a5548cd904fe1a9c3569adef91f52b654db8a3c56a0a5177a09eb" + }, + { + "algorithm": "SHA1", + "checksumValue": "c524c7d46a343b75a64bf52b19e3c70c453f9061" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/System.Diagnostics.EventLog.dll", + "SPDXID": "SPDXRef-File--Dependencies-System.Diagnostics.EventLog.dll-96A914148520A9F0AB3733410129FFB7BA2992CC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "24a02d97c2fc6d56735e196bb7faaae8faf0068c486d0c3c7fa3e3b73b4f12a4" + }, + { + "algorithm": "SHA1", + "checksumValue": "96a914148520a9f0ab3733410129ffb7ba2992cc" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/DurableEngine.dll", + "SPDXID": "SPDXRef-File--Dependencies-DurableEngine.dll-3E456B859993DC8BB19A9793877FA6F1545870CF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ba0249be14025d6eca437244b6f9748eeaa99a15a1de1d8ab288987fecb7fe81" + }, + { + "algorithm": "SHA1", + "checksumValue": "3e456b859993dc8bb19a9793877fa6f1545870cf" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.Extensions.DependencyInjection.Abstractions.dll-CB8C35306AFD15358104ECFE70E724AD9C753E6F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9ccd830351aa28bc683d4f8d1cefd9e724161f972d25bfb64eee5bf55c48c5e3" + }, + { + "algorithm": "SHA1", + "checksumValue": "cb8c35306afd15358104ecfe70e724ad9c753e6f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/System.Reactive.Core.dll", + "SPDXID": "SPDXRef-File--Dependencies-System.Reactive.Core.dll-A91898005B1CC48E3F6A4CBB835CAFFC8C6A85CB", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "47411515e22254958ab719d8c312e6bf7904e32dd1869eb27bf2ddc4e590cab4" + }, + { + "algorithm": "SHA1", + "checksumValue": "a91898005b1cc48e3f6a4cbb835caffc8c6a85cb" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/DurableEngine.pdb", + "SPDXID": "SPDXRef-File--Dependencies-DurableEngine.pdb-64EF52D4B87DBCDDBB6055D321277C5C18C6DCC3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "340528248a6410d58f860d03557310454ef3285b642c21343ddd083d2e320218" + }, + { + "algorithm": "SHA1", + "checksumValue": "64ef52d4b87dbcddbb6055d321277c5c18c6dcc3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.Extensions.FileProviders.Abstractions.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.Extensions.FileProviders.Abstractions.dll-3029F45A1397291B4E7EEE9DB9B5DCDE5A47AB7D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ecfcef11c42fa4ad5cf2d4d7f553c8f0017e5eb7a4a9b032b4d0505c98ef4ef4" + }, + { + "algorithm": "SHA1", + "checksumValue": "3029f45a1397291b4e7eee9db9b5dcde5a47ab7d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/System.Reactive.dll", + "SPDXID": "SPDXRef-File--Dependencies-System.Reactive.dll-9CBCA70CC79F7476D92B481C6BEC46CE85433328", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "19f0112cd1f5172ee2688e96ddd44ada39a4bb1cb2315a154b63e9064f6e3dc0" + }, + { + "algorithm": "SHA1", + "checksumValue": "9cbca70cc79f7476d92b481c6bec46ce85433328" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/DurableTask.Core.dll", + "SPDXID": "SPDXRef-File--Dependencies-DurableTask.Core.dll-0064DA99C6E1C6FED54FAB9396878975A1D28EAF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7aa8bb6481f2c61d220a73cd2da77adb2d2d28df1fa02e093dda3a29a55dc514" + }, + { + "algorithm": "SHA1", + "checksumValue": "0064da99c6e1c6fed54fab9396878975a1d28eaf" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/Microsoft.Extensions.Hosting.Abstractions.dll", + "SPDXID": "SPDXRef-File--Dependencies-Microsoft.Extensions.Hosting.Abstractions.dll-BBA99CBFE0EFD265CA5A2563624884D4F88BA0C3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "df9eb42421a85f84ff2fc98ea25c23fd7d8813df23f3afe28e96b83cc302c8a6" + }, + { + "algorithm": "SHA1", + "checksumValue": "bba99cbfe0efd265ca5a2563624884d4f88ba0c3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Dependencies/System.Reactive.Interfaces.dll", + "SPDXID": "SPDXRef-File--Dependencies-System.Reactive.Interfaces.dll-74F54702F12252A2DAC2D87D89809C7A1A475F81", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "edee1397e02df23f85d0b242bb098c850d64cd6ca860aabb34426253a6e3adab" + }, + { + "algorithm": "SHA1", + "checksumValue": "74f54702f12252a2dac2d87d89809c7a1a475f81" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + } + ], + "packages": [ + { + "name": "Azure Pipelines Hosted Image win19", + "SPDXID": "SPDXRef-Package-CF52430A379AE1274A6751A714171963CB52B825609E0388B1BFD37D3EB601BA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseInfoFromFiles": [ + "NOASSERTION" + ], + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "20240204.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE_MANAGER", + "referenceType": "purl", + "referenceLocator": "https://github.com/actions/virtual-environments" + } + ], + "supplier": "Microsoft/GitHub" + }, + { + "name": "AzureFunctions.PowerShell.Durable.SDK", + "SPDXID": "SPDXRef-RootPackage", + "downloadLocation": "NOASSERTION", + "packageVerificationCode": { + "packageVerificationCodeValue": "d00047eebac7ad954598fd8b41bf2c6e643db5a5" + }, + "filesAnalyzed": true, + "licenseConcluded": "NOASSERTION", + "licenseInfoFromFiles": [ + "NOASSERTION" + ], + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "161406", + "supplier": "Organization: Microsoft", + "hasFiles": [ + "SPDXRef-File--Dependencies-System.Reactive.Interfaces.dll-74F54702F12252A2DAC2D87D89809C7A1A475F81", + "SPDXRef-File--Dependencies-Microsoft.Extensions.Hosting.Abstractions.dll-BBA99CBFE0EFD265CA5A2563624884D4F88BA0C3", + "SPDXRef-File--Dependencies-DurableTask.Core.dll-0064DA99C6E1C6FED54FAB9396878975A1D28EAF", + "SPDXRef-File--Dependencies-System.Reactive.Providers.dll-74AA6DBBCB5397BB09D1E69FFCFE9526CBFCEB44", + "SPDXRef-File--Dependencies-Microsoft.Extensions.Primitives.dll-376636C20CEE083DA54D4146479032170EC7231B", + "SPDXRef-File--Dependencies-Microsoft.DurableTask.Client.dll-0DE9E1C4F3587BC9C002F935BA5023890ED18B8F", + "SPDXRef-File--AzureFunctions.PowerShell.Durable.SDK.psd1-B73743D787C4BFC0ECA8585F5E1C37B28DE70DAC", + "SPDXRef-File--Dependencies-System.Reactive.PlatformServices.dll-8A33FDD641185C66DD4FD3DB88DF5504621D3BF4", + "SPDXRef-File--Dependencies-Microsoft.Extensions.Options.dll-6EC0C1FE1332912086247080B55B06623C78326E", + "SPDXRef-File--Dependencies-Microsoft.DurableTask.Abstractions.dll-D1D43D1F5B80C63EF1E52985922BB90ADEA5DEEC", + "SPDXRef-File--AzureFunctions.PowerShell.Durable.SDK.pdb-0910275DA2D13FAEDDEC83044EFFB5ABDE669BF8", + "SPDXRef-File--Dependencies-Newtonsoft.Json.dll-E3673D05D46F29E68241D4536BDDF18CDD0A913D", + "SPDXRef-File--Dependencies-Microsoft.DurableTask.Worker.dll-D3C716C746EB41567EB15E92313871FF5DF6FE1E", + "SPDXRef-File--AzureFunctions.PowerShell.Durable.SDK.psm1-F3BBC7A52B2C2661C7D2806D1787FBD1FB1473B3", + "SPDXRef-File--Dependencies-System.Reactive.dll-9CBCA70CC79F7476D92B481C6BEC46CE85433328", + "SPDXRef-File--Dependencies-Microsoft.Extensions.FileProviders.Abstractions.dll-3029F45A1397291B4E7EEE9DB9B5DCDE5A47AB7D", + "SPDXRef-File--Dependencies-DurableEngine.pdb-64EF52D4B87DBCDDBB6055D321277C5C18C6DCC3", + "SPDXRef-File--Dependencies-System.Diagnostics.EventLog.dll-96A914148520A9F0AB3733410129FFB7BA2992CC", + "SPDXRef-File--Dependencies-Microsoft.Extensions.Configuration.Abstractions.dll-C524C7D46A343B75A64BF52B19E3C70C453F9061", + "SPDXRef-File--Dependencies-Castle.Core.dll-EFB41379A448DA4C368F5694D0675F99662D27C6", + "SPDXRef-File--Dependencies-System.Reactive.Core.dll-A91898005B1CC48E3F6A4CBB835CAFFC8C6A85CB", + "SPDXRef-File--Dependencies-Microsoft.Extensions.DependencyInjection.Abstractions.dll-CB8C35306AFD15358104ECFE70E724AD9C753E6F", + "SPDXRef-File--Dependencies-DurableEngine.dll-3E456B859993DC8BB19A9793877FA6F1545870CF", + "SPDXRef-File--Dependencies-System.Reactive.Linq.dll-21B3C0F5AE5F6C6A436ECC37E747BF931C141D14", + "SPDXRef-File--Dependencies-Microsoft.Extensions.Logging.Abstractions.dll-02EC010722BBD1740782B502DF30D4475AEBE5F2", + "SPDXRef-File--Dependencies-Microsoft.Bcl.AsyncInterfaces.dll-2E438AEF830795B2D240CF3160A3353BC6CB0232", + "SPDXRef-File--AzureFunctions.PowerShell.Durable.SDK.dll-6F9536B4793B4E4A898D19796D658F79421C54A6" + ] + } + ], + "externalDocumentRefs": [], + "relationships": [ + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CF52430A379AE1274A6751A714171963CB52B825609E0388B1BFD37D3EB601BA", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DESCRIBES", + "relatedSpdxElement": "SPDXRef-RootPackage", + "spdxElementId": "SPDXRef-DOCUMENT" + } + ], + "spdxVersion": "SPDX-2.2", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "AzureFunctions.PowerShell.Durable.SDK 161406", + "documentNamespace": "https://sbom.microsoft/1:vB_F0XdED0q5n_yQEwCaWA:kgyn5ihBn0OAEjgv541jlg/110:161406/ydvUjPTB7UO2kZ1ZV8NHQQ", + "creationInfo": { + "created": "2024-02-14T03:56:17Z", + "creators": [ + "Organization: Microsoft", + "Tool: Microsoft.SBOMTool-2.1.31" + ] + }, + "documentDescribes": [ + "SPDXRef-RootPackage" + ] +} \ No newline at end of file diff --git a/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 new file mode 100644 index 000000000000..8d2e41ac14f7 Binary files /dev/null and b/Modules/AzureFunctions.PowerShell.Durable.SDK/1.1.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 differ diff --git a/Modules/CIPPCore/CIPPCore.psd1 b/Modules/CIPPCore/CIPPCore.psd1 new file mode 100644 index 000000000000..92c03ecd3705 Binary files /dev/null and b/Modules/CIPPCore/CIPPCore.psd1 differ diff --git a/Modules/CIPPCore/CIPPCore.psm1 b/Modules/CIPPCore/CIPPCore.psm1 new file mode 100644 index 000000000000..7cd3fd6ee225 --- /dev/null +++ b/Modules/CIPPCore/CIPPCore.psm1 @@ -0,0 +1,16 @@ +# ModuleBuilder will concatenate all function files into this module +# This block is only used when running from source (not built) +if (Test-Path (Join-Path $PSScriptRoot 'Public')) { + $Public = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Public\*.ps1') -Recurse -ErrorAction SilentlyContinue) + $Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot 'Private\*.ps1') -Recurse -ErrorAction SilentlyContinue) + $Functions = $Public + $Private + foreach ($import in @($Functions)) { + try { + . $import.FullName + } catch { + Write-Error -Message "Failed to import function $($import.FullName): $_" + } + } + + Export-ModuleMember -Function $Public.BaseName +} diff --git a/Modules/CIPPCore/Private/Convert-QuarantinePermissionsValue.ps1 b/Modules/CIPPCore/Private/Convert-QuarantinePermissionsValue.ps1 new file mode 100644 index 000000000000..29cbff702118 --- /dev/null +++ b/Modules/CIPPCore/Private/Convert-QuarantinePermissionsValue.ps1 @@ -0,0 +1,71 @@ +function Convert-QuarantinePermissionsValue { + [CmdletBinding(DefaultParameterSetName = 'DecimalValue')] + param ( + [Parameter(Mandatory, Position = 0, ParameterSetName = "StringValue")] + [ValidateNotNullOrEmpty()] + [string]$InputObject, + + [Parameter(Position = 0, ParameterSetName = "DecimalValue")] + [int]$PermissionToViewHeader = 0, + [Parameter(Position = 1, ParameterSetName = "DecimalValue")] + [int]$PermissionToDownload = 0, + [Parameter(Mandatory, Position = 2, ParameterSetName = "DecimalValue")] + [int]$PermissionToAllowSender, + [Parameter(Mandatory, Position = 3, ParameterSetName = "DecimalValue")] + [int]$PermissionToBlockSender, + [Parameter(Mandatory, Position = 4, ParameterSetName = "DecimalValue")] + [int]$PermissionToRequestRelease, + [Parameter(Mandatory, Position = 5, ParameterSetName = "DecimalValue")] + [int]$PermissionToRelease, + [Parameter(Mandatory, Position = 6, ParameterSetName = "DecimalValue")] + [int]$PermissionToPreview, + [Parameter(Mandatory, Position = 7, ParameterSetName = "DecimalValue")] + [int]$PermissionToDelete + ) + + #Converts string value with EndUserQuarantinePermissions received from Get-QuarantinePolicy + if (($PSCmdlet.ParameterSetName) -eq "StringValue") { + try { + # Remove square brackets and split into lines + $InputObject = $InputObject.Trim('[', ']') + $hashtable = @{} + $InputObject -split "`n" | ForEach-Object { + $key, $value = $_ -split ":\s*" + $hashtable[$key.Trim()] = [System.Convert]::ToBoolean($value.Trim()) + } + return $hashtable + } + catch { + throw "Convert-QuarantinePermissionsValue: Failed to convert string to hashtable." + } + } + + #Converts selected end user quarantine permissions to decimal value used by EndUserQuarantinePermissionsValue property in New-QuarantinePolicy and Set-QuarantinePolicy + elseif (($PSCmdlet.ParameterSetName) -eq "DecimalValue") { + try { + # both PermissionToRequestRelease and PermissionToRelease cannot be set to true at the same time + if($PermissionToRequestRelease -eq 1 -and $PermissionToRelease -eq 1) { + throw "PermissionToRequestRelease and PermissionToRelease cannot both be set to true." + } + + # Convert each permission to a binary string + $BinaryValue = [string]@( + $PermissionToViewHeader, + $PermissionToDownload, + $PermissionToAllowSender, + $PermissionToBlockSender, + $PermissionToRequestRelease, + $PermissionToRelease, + $PermissionToPreview, + $PermissionToDelete + ) -replace '\s','' + + # Convert the binary string to an Decimal value + return [convert]::ToInt32($BinaryValue,2) + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + throw "Convert-QuarantinePermissionsValue: Failed to convert QuarantinePermissions to QuarantinePermissionsValue. Error: $ErrorMessage" + } + } +} diff --git a/Modules/CIPPCore/Private/Get-ExoOnlineStringBytes.ps1 b/Modules/CIPPCore/Private/Get-ExoOnlineStringBytes.ps1 new file mode 100644 index 000000000000..636921b147e9 --- /dev/null +++ b/Modules/CIPPCore/Private/Get-ExoOnlineStringBytes.ps1 @@ -0,0 +1,11 @@ +function Get-ExoOnlineStringBytes { + param([string]$SizeString) + + # This exists because various exo cmdlets like to return a human readable string like "3.322 KB (3,402 bytes)" but not the raw bytes value + + if ($SizeString -match '\(([0-9,]+) bytes\)') { + return [int64]($Matches[1] -replace ',','') + } + + return 0 +} diff --git a/Modules/CIPPCore/Private/Get-StringHash.ps1 b/Modules/CIPPCore/Private/Get-StringHash.ps1 new file mode 100644 index 000000000000..a5c94f62b511 --- /dev/null +++ b/Modules/CIPPCore/Private/Get-StringHash.ps1 @@ -0,0 +1,8 @@ +function Get-StringHash { + Param($String) + $StringBuilder = New-Object System.Text.StringBuilder + [System.Security.Cryptography.HashAlgorithm]::Create('SHA1').ComputeHash([System.Text.Encoding]::UTF8.GetBytes($String)) | ForEach-Object { + [Void]$StringBuilder.Append($_.ToString('x2')) + } + $StringBuilder.ToString() +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/Add-CIPPAlias.ps1 b/Modules/CIPPCore/Public/Add-CIPPAlias.ps1 new file mode 100644 index 000000000000..6a0fc8615eb1 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPAlias.ps1 @@ -0,0 +1,27 @@ +function Add-CIPPAlias { + [CmdletBinding()] + param ( + $User, + $Aliases, + $UserPrincipalName, + $TenantFilter, + $APIName = 'Add Alias', + $Headers + ) + + try { + foreach ($Alias in $Aliases) { + Write-Host "Adding alias $Alias to $User" + New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$User" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$Alias`"}" -verbose + } + Write-Host "Resetting primary alias to $User" + New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$User" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$User`"}" -verbose + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added alias $($Alias) to $($UserPrincipalName)" -Sev 'Info' + return ("Added Aliases: $($Aliases -join ',')") + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Failed to set alias. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw "Failed to set alias: $($ErrorMessage.NormalizedError)" + } +} + diff --git a/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 new file mode 100644 index 000000000000..ddcbd3447e9e --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 @@ -0,0 +1,110 @@ +function Add-CIPPApplicationPermission { + [CmdletBinding()] + param( + $RequiredResourceAccess, + $TemplateId, + $ApplicationId, + $TenantFilter + ) + if ($ApplicationId -eq $env:ApplicationID -and $TenantFilter -eq $env:TenantID) { + #return @('Cannot modify application permissions for CIPP-SAM on partner tenant') + $RequiredResourceAccess = 'CIPPDefaults' + } + Set-Location (Get-Item $PSScriptRoot).FullName + if ($RequiredResourceAccess -eq 'CIPPDefaults') { + #$RequiredResourceAccess = (Get-Content '.\SAMManifest.json' | ConvertFrom-Json).requiredResourceAccess + + $Permissions = Get-CippSamPermissions -NoDiff + $RequiredResourceAccess = [System.Collections.Generic.List[object]]::new() + + foreach ($AppId in $Permissions.Permissions.PSObject.Properties.Name) { + $AppPermissions = @($Permissions.Permissions.$AppId.applicationPermissions) + $Resource = @{ + resourceAppId = $AppId + resourceAccess = [System.Collections.Generic.List[object]]::new() + } + foreach ($Permission in $AppPermissions) { + $Resource.ResourceAccess.Add(@{ + id = $Permission.id + type = 'Role' + }) + } + + $RequiredResourceAccess.Add($Resource) + } + } else { + if (!$RequiredResourceAccess -and $TemplateId) { + Write-Information "Adding application permissions for template $TemplateId" + $TemplateTable = Get-CIPPTable -TableName 'templates' + $Filter = "RowKey eq '$TemplateId' and PartitionKey eq 'AppApprovalTemplate'" + $Template = (Get-CIPPAzDataTableEntity @TemplateTable -Filter $Filter).JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + $ApplicationId = $Template.AppId + $Permissions = $Template.Permissions + $RequiredResourceAccess = [System.Collections.Generic.List[object]]::new() + foreach ($AppId in $Permissions.PSObject.Properties.Name) { + $AppPermissions = @($Permissions.$AppId.applicationPermissions) + $Resource = @{ + resourceAppId = $AppId + resourceAccess = [System.Collections.Generic.List[object]]::new() + } + foreach ($Permission in $AppPermissions) { + $Resource.ResourceAccess.Add(@{ + id = $Permission.id + type = 'Role' + }) + } + + $RequiredResourceAccess.Add($Resource) + } + } + } + + + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $TenantFilter -NoAuthCheck $true + $ourSVCPrincipal = $ServicePrincipalList | Where-Object -Property AppId -EQ $ApplicationId + if (!$ourSVCPrincipal) { + #Our Service Principal isn't available yet. We do a sleep and reexecute after 3 seconds. + Start-Sleep -Seconds 5 + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $TenantFilter -NoAuthCheck $true + $ourSVCPrincipal = $ServicePrincipalList | Where-Object -Property AppId -EQ $ApplicationId + } + + $Results = [System.Collections.Generic.List[string]]::new() + + $CurrentRoles = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals/$($ourSVCPrincipal.id)/appRoleAssignments" -tenantid $TenantFilter -skipTokenCache $true -NoAuthCheck $true + + $Grants = foreach ($App in $RequiredResourceAccess) { + $svcPrincipalId = $ServicePrincipalList | Where-Object -Property AppId -EQ $App.resourceAppId + if (!$svcPrincipalId) { + try { + $Body = @{ + appId = $App.resourceAppId + } | ConvertTo-Json -Compress + $svcPrincipalId = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $TenantFilter -body $Body -type POST + } catch { + $Results.add("Failed to create service principal for $($App.resourceAppId): $(Get-NormalizedError -message $_.Exception.Message)") + continue + } + } + foreach ($SingleResource in $App.ResourceAccess | Where-Object -Property Type -EQ 'Role') { + if ($SingleResource.id -in $CurrentRoles.appRoleId) { continue } + [pscustomobject]@{ + principalId = $($ourSVCPrincipal.id) + resourceId = $($svcPrincipalId.id) + appRoleId = "$($SingleResource.Id)" + } + } + } + $counter = 0 + foreach ($Grant in $Grants) { + try { + $SettingsRequest = New-GraphPOSTRequest -body (ConvertTo-Json -InputObject $Grant -Depth 5) -uri "https://graph.microsoft.com/beta/servicePrincipals/$($ourSVCPrincipal.id)/appRoleAssignedTo" -tenantid $TenantFilter -type POST -NoAuthCheck $true + $counter++ + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Results.add("Failed to grant $($Grant.appRoleId) to $($Grant.resourceId): $ErrorMessage") + } + } + "Added $counter Application permissions to $($ourSVCPrincipal.displayName)" + return $Results +} diff --git a/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 b/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 new file mode 100644 index 000000000000..260f8691f0f1 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPAzDataTableEntity.ps1 @@ -0,0 +1,240 @@ +function Add-CIPPAzDataTableEntity { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding(DefaultParameterSetName = 'OperationType')] + param( + $Context, + $Entity, + [switch]$CreateTableIfNotExists, + + [Parameter(ParameterSetName = 'Force')] + [switch]$Force, + + [Parameter(ParameterSetName = 'OperationType')] + [ValidateSet('Add', 'UpsertMerge', 'UpsertReplace')] + [string]$OperationType = 'Add' + ) + + # Validate input parameters + if ($null -eq $Context) { + throw 'Context parameter cannot be null' + } + + if ($null -eq $Entity) { + Write-Warning 'Entity parameter is null - nothing to process' + return + } + + $Parameters = @{ + Context = $Context + CreateTableIfNotExists = $CreateTableIfNotExists + } + if ($PSCmdlet.ParameterSetName -eq 'Force') { + $Parameters.Force = $Force + } else { + $Parameters.OperationType = $OperationType + } + + $MaxRowSize = 500000 - 100 + $MaxSize = 30kb + + foreach ($SingleEnt in @($Entity)) { + try { + # Skip null entities + if ($null -eq $SingleEnt) { + Write-Warning 'Skipping null entity' + continue + } + + if ($null -eq $SingleEnt.PartitionKey -or $null -eq $SingleEnt.RowKey) { + throw 'PartitionKey or RowKey is null' + } + + # Ensure entity is not empty + if ($SingleEnt -is [hashtable] -and $SingleEnt.Count -eq 0) { + Write-Warning 'Skipping empty hashtable entity' + continue + } elseif ($SingleEnt -is [PSCustomObject] -and ($SingleEnt.PSObject.Properties | Measure-Object).Count -eq 0) { + Write-Warning 'Skipping empty PSCustomObject entity' + continue + } + + # Additional validation for AzBobbyTables compatibility + try { + # Ensure all property values are not null for string properties + if ($SingleEnt -is [hashtable]) { + foreach ($key in @($SingleEnt.Keys)) { + if ($null -eq $SingleEnt[$key]) { + $SingleEnt.Remove($key) + } + } + } elseif ($SingleEnt -is [PSCustomObject]) { + $propsToRemove = [system.Collections.Generic.List[string]]::new() + foreach ($prop in $SingleEnt.PSObject.Properties) { + if ($null -eq $prop.Value) { + $propsToRemove.Add($prop.Name) + } + } + foreach ($propName in $propsToRemove) { + $SingleEnt.PSObject.Properties.Remove($propName) + } + } + } catch { + Write-Warning "Error during entity validation: $($_.Exception.Message)" + } + + Add-AzDataTableEntity @Parameters -Entity $SingleEnt -ErrorAction Stop + + } catch [System.Exception] { + if ($_.Exception.ErrorCode -in @('PropertyValueTooLarge', 'EntityTooLarge', 'RequestBodyTooLarge')) { + try { + Write-Information 'Entity is too large. Splitting entity into multiple parts.' + + $largePropertyNames = [System.Collections.Generic.List[string]]::new() + $entitySize = 0 + + if ($SingleEnt -is [System.Management.Automation.PSCustomObject]) { + $SingleEnt = $SingleEnt | ConvertTo-Json -Depth 100 -Compress | ConvertFrom-Json -AsHashtable + } + + foreach ($key in $SingleEnt.Keys) { + $propertySize = [System.Text.Encoding]::UTF8.GetByteCount($SingleEnt[$key].ToString()) + $entitySize += $propertySize + if ($propertySize -gt $MaxSize) { + $largePropertyNames.Add($key) + } + } + + if (($largePropertyNames | Measure-Object).Count -gt 0) { + $splitInfoList = [System.Collections.Generic.List[object]]::new() + foreach ($largePropertyName in $largePropertyNames) { + $dataString = $SingleEnt[$largePropertyName] + $splitCount = [math]::Ceiling($dataString.Length / $MaxSize) + $splitData = [System.Collections.Generic.List[object]]::new() + for ($i = 0; $i -lt $splitCount; $i++) { + $start = $i * $MaxSize + $splitData.Add($dataString.Substring($start, [Math]::Min($MaxSize, $dataString.Length - $start))) > $null + } + $splitDataCount = $splitData.Count + $splitPropertyNames = [System.Collections.Generic.List[object]]::new() + for ($i = 0; $i -lt $splitDataCount; $i++) { + $splitPropertyNames.Add("${largePropertyName}_Part$i") + } + + $splitInfo = @{ + OriginalHeader = $largePropertyName + SplitHeaders = $splitPropertyNames + } + $splitInfoList.Add($splitInfo) + $SingleEnt.Remove($largePropertyName) + + for ($i = 0; $i -lt $splitDataCount; $i++) { + $SingleEnt[$splitPropertyNames[$i]] = $splitData[$i] + } + } + $SingleEnt['SplitOverProps'] = ($splitInfoList | ConvertTo-Json -Compress).ToString() + } + + $entitySize = [System.Text.Encoding]::UTF8.GetByteCount($($SingleEnt | ConvertTo-Json -Compress)) + if ($entitySize -gt $MaxRowSize) { + $rows = [System.Collections.Generic.List[object]]::new() + $originalPartitionKey = $SingleEnt.PartitionKey + $originalRowKey = $SingleEnt.RowKey + $entityIndex = 0 + + while ($entitySize -gt $MaxRowSize) { + Write-Information "Entity size is $entitySize. Splitting entity into multiple parts." + $newEntity = @{} + $newEntity['PartitionKey'] = $originalPartitionKey + $newEntity['RowKey'] = if ($entityIndex -eq 0) { $originalRowKey } else { "$($originalRowKey)-part$entityIndex" } + $newEntity['OriginalEntityId'] = $originalRowKey + $newEntity['PartIndex'] = $entityIndex + $entityIndex++ + + $propertiesToRemove = [System.Collections.Generic.List[object]]::new() + foreach ($key in $SingleEnt.Keys) { + if ($key -in @('RowKey', 'PartitionKey')) { continue } + $newEntitySize = [System.Text.Encoding]::UTF8.GetByteCount($($newEntity | ConvertTo-Json -Compress)) + if ($newEntitySize -lt $MaxRowSize) { + $propertySize = [System.Text.Encoding]::UTF8.GetByteCount($SingleEnt[$key].ToString()) + if ($propertySize -gt $MaxRowSize) { + $dataString = $SingleEnt[$key] + $splitCount = [math]::Ceiling($dataString.Length / $MaxSize) + $splitData = [System.Collections.Generic.List[object]]::new() + for ($i = 0; $i -lt $splitCount; $i++) { + $start = $i * $MaxSize + $splitData.Add($dataString.Substring($start, [Math]::Min($MaxSize, $dataString.Length - $start))) > $null + } + + $splitPropertyNames = [System.Collections.Generic.List[object]]::new() + for ($i = 0; $i -lt $splitData.Count; $i++) { + $splitPropertyNames.Add("${key}_Part$i") + } + + for ($i = 0; $i -lt $splitData.Count; $i++) { + $newEntity[$splitPropertyNames[$i]] = $splitData[$i] + } + } else { + $newEntity[$key] = $SingleEnt[$key] + } + $propertiesToRemove.Add($key) + } + } + + foreach ($prop in $propertiesToRemove) { + $SingleEnt.Remove($prop) + } + + $rows.Add($newEntity) + $entitySize = [System.Text.Encoding]::UTF8.GetByteCount($($SingleEnt | ConvertTo-Json -Compress)) + } + + if ($SingleEnt.Count -gt 0) { + $SingleEnt['RowKey'] = "$($originalRowKey)-part$entityIndex" + $SingleEnt['OriginalEntityId'] = $originalRowKey + $SingleEnt['PartIndex'] = $entityIndex + $SingleEnt['PartitionKey'] = $originalPartitionKey + $rows.Add($SingleEnt) + } + + foreach ($row in $rows) { + Write-Information "current entity is $($row.RowKey) with $($row.PartitionKey). Our size is $([System.Text.Encoding]::UTF8.GetByteCount($($row | ConvertTo-Json -Compress)))" + $NewRow = ([PSCustomObject]$row) | Select-Object * -ExcludeProperty Timestamp + Add-AzDataTableEntity @Parameters -Entity $NewRow + } + + } else { + $NewEnt = ([PSCustomObject]$SingleEnt) | Select-Object * -ExcludeProperty Timestamp + Add-AzDataTableEntity @Parameters -Entity $NewEnt + if ($NewEnt.PSObject.Properties['OriginalEntityId'] -eq $null -and $NewEnt.PSObject.Properties['PartIndex'] -eq $null) { + $partIndex = 1 + while ($true) { + $partRowKey = "$($NewEnt.RowKey)-part$partIndex" + try { + Remove-AzDataTableEntity -Context $Context -PartitionKey $NewEnt.PartitionKey -RowKey $partRowKey -ErrorAction Stop + Write-Information "Deleted obsolete part: $partRowKey" + $partIndex++ + } catch { + break + } + } + } + } + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-Warning 'AzBobbyTables Error' + throw "Error processing entity: $ErrorMessage Linenumber: $($_.InvocationInfo.ScriptLineNumber)" + } + } else { + try { Write-Information ($_.Exception | ConvertTo-Json) } catch { Write-Information $_.Exception } + Write-Information "THE ERROR IS $($_.Exception.message). The size of the entity is $entitySize." + Write-Information "Parameters are: $($Parameters | ConvertTo-Json -Compress)" + Write-Information $_.InvocationInfo.PositionMessage + throw $_ + } + } + } +} diff --git a/Modules/CIPPCore/Public/Add-CIPPBPAField.ps1 b/Modules/CIPPCore/Public/Add-CIPPBPAField.ps1 new file mode 100644 index 000000000000..bed52e8cc786 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPBPAField.ps1 @@ -0,0 +1,41 @@ +function Add-CIPPBPAField { + param ( + $BPAName = 'CIPP Standards v1.0 - Table view', + $FieldName, + $FieldValue, + $StoreAs, + $Tenant + ) + $Table = Get-CippTable -tablename 'cachebpav2' + $TenantName = Get-Tenants | Where-Object -Property defaultDomainName -EQ $Tenant + $CurrentContentsObject = (Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$BPAName' and PartitionKey eq '$($TenantName.customerId)'") + Write-Information "Adding $FieldName to $BPAName for $Tenant. content is $FieldValue" + if ($CurrentContentsObject.RowKey) { + $CurrentContents = @{} + $CurrentContentsObject.PSObject.Properties.Name | ForEach-Object { + $CurrentContents[$_] = $CurrentContentsObject.$_ + } + $Result = $CurrentContents + } else { + $Result = @{ + Tenant = "$($TenantName.displayName)" + GUID = "$($TenantName.customerId)" + RowKey = $BPAName + PartitionKey = "$($TenantName.customerId)" + LastRefresh = [string]$(Get-Date (Get-Date).ToUniversalTime() -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') + } + } + switch -Wildcard ($StoreAs) { + '*bool' { + $Result["$fieldName"] = [bool]$FieldValue + } + 'JSON' { + if ($null -eq $FieldValue) { $JsonString = '{}' } else { $JsonString = (ConvertTo-Json -Depth 15 -InputObject $FieldValue -Compress) } + $Result[$fieldName] = [string]$JsonString + } + 'string' { + $Result[$fieldName], [string]$FieldValue + } + } + Add-CIPPAzDataTableEntity @Table -Entity $Result -Force +} diff --git a/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 b/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 new file mode 100644 index 000000000000..913083ba513d --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 @@ -0,0 +1,91 @@ +function Add-CIPPDbItem { + <# + .SYNOPSIS + Add items to the CIPP Reporting database + + .DESCRIPTION + Adds items to the CippReportingDB table with support for bulk inserts and count mode + + .PARAMETER TenantFilter + The tenant domain or GUID (used as partition key) + + .PARAMETER Type + The type of data being stored (used in row key) + + .PARAMETER Data + Array of items to add to the database + + .PARAMETER Count + If specified, stores a single row with count of each object property as separate properties + + .EXAMPLE + Add-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' -Data $GroupsData + + .EXAMPLE + Add-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' -Data $GroupsData -Count + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$Type, + + [Parameter(Mandatory = $true)] + [AllowEmptyCollection()] + [array]$Data, + + [Parameter(Mandatory = $false)] + [switch]$Count + ) + + try { + $Table = Get-CippTable -tablename 'CippReportingDB' + + # Helper function to format RowKey values by removing disallowed characters + function Format-RowKey { + param([string]$RowKey) + + # Remove disallowed characters: / \ # ? and control characters (U+0000 to U+001F and U+007F to U+009F) + $sanitized = $RowKey -replace '[/\\#?]', '_' -replace '[\u0000-\u001F\u007F-\u009F]', '' + + return $sanitized + } + + if ($Count) { + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = Format-RowKey "$Type-Count" + DataCount = [int]$Data.Count + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + + } else { + #Get the existing type entries and nuke them. This ensures we don't have stale data. + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}0'" -f $TenantFilter, $Type + $ExistingEntities = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if ($ExistingEntities) { + Remove-AzDataTableEntity @Table -Entity $ExistingEntities -Force | Out-Null + } + $Entities = foreach ($Item in $Data) { + $ItemId = $Item.id ?? $Item.ExternalDirectoryObjectId ?? $Item.Identity ?? $Item.skuId + @{ + PartitionKey = $TenantFilter + RowKey = Format-RowKey "$Type-$ItemId" + Data = [string]($Item | ConvertTo-Json -Depth 10 -Compress) + Type = $Type + } + } + Add-CIPPAzDataTableEntity @Table -Entity $Entities -Force | Out-Null + + } + + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter -message "Added $($Data.Count) items of type $Type$(if ($Count) { ' (count mode)' })" -sev Info + + } catch { + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter -message "Failed to add items of type $Type : $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 new file mode 100644 index 000000000000..2202e25147f9 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 @@ -0,0 +1,179 @@ +function Add-CIPPDelegatedPermission { + [CmdletBinding()] + param( + $RequiredResourceAccess, + $TemplateId, + $ApplicationId, + $NoTranslateRequired, + $TenantFilter + ) + Write-Host 'Adding Delegated Permissions' + Set-Location (Get-Item $PSScriptRoot).FullName + + if ($ApplicationId -eq $env:ApplicationID -and $TenantFilter -eq $env:TenantID) { + #return @('Cannot modify delgated permissions for CIPP-SAM on partner tenant') + $RequiredResourceAccess = 'CIPPDefaults' + } + + if ($RequiredResourceAccess -eq 'CIPPDefaults') { + $Permissions = Get-CippSamPermissions -NoDiff + $NoTranslateRequired = $Permissions.Type -eq 'Table' + $RequiredResourceAccess = [System.Collections.Generic.List[object]]::new() + foreach ($AppId in $Permissions.Permissions.PSObject.Properties.Name) { + $DelegatedPermissions = @($Permissions.Permissions.$AppId.delegatedPermissions) + $ResourceAccess = [System.Collections.Generic.List[object]]::new() + foreach ($Permission in $DelegatedPermissions) { + $ResourceAccess.Add(@{ + id = $Permission.value + type = 'Scope' + }) + } + $Resource = @{ + resourceAppId = $AppId + resourceAccess = @($ResourceAccess) + } + $RequiredResourceAccess.Add($Resource) + } + + if ($TenantFilter -eq $env:TenantID -or $TenantFilter -eq 'PartnerTenant') { + $RequiredResourceAccess = $RequiredResourceAccess + ($AdditionalPermissions | Where-Object { $RequiredResourceAccess.resourceAppId -notcontains $_.resourceAppId }) + } else { + # remove the partner center permission if not pushing to partner tenant + $RequiredResourceAccess = $RequiredResourceAccess | Where-Object { $_.resourceAppId -ne 'fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd' } + } + } else { + if (!$RequiredResourceAccess -and $TemplateId) { + Write-Information "Adding delegated permissions for template $TemplateId" + $TemplateTable = Get-CIPPTable -TableName 'templates' + $Filter = "RowKey eq '$TemplateId' and PartitionKey eq 'AppApprovalTemplate'" + $Template = (Get-CIPPAzDataTableEntity @TemplateTable -Filter $Filter).JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + $ApplicationId = $Template.AppId + $Permissions = $Template.Permissions + $NoTranslateRequired = $true + $RequiredResourceAccess = [System.Collections.Generic.List[object]]::new() + foreach ($AppId in $Permissions.PSObject.Properties.Name) { + $DelegatedPermissions = @($Permissions.$AppId.delegatedPermissions) + $ResourceAccess = [System.Collections.Generic.List[object]]::new() + foreach ($Permission in $DelegatedPermissions) { + $ResourceAccess.Add(@{ + id = $Permission.value + type = 'Scope' + }) + } + $Resource = @{ + resourceAppId = $AppId + resourceAccess = @($ResourceAccess) + } + $RequiredResourceAccess.Add($Resource) + } + } + } + + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $Translator = Get-Content (Join-Path $ModuleBase 'lib\data\PermissionsTranslator.json') | ConvertFrom-Json + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=appId,id,displayName&`$top=999" -tenantid $TenantFilter -skipTokenCache $true -NoAuthCheck $true + $ourSVCPrincipal = $ServicePrincipalList | Where-Object -Property appId -EQ $ApplicationId + $Results = [System.Collections.Generic.List[string]]::new() + + $CurrentDelegatedScopes = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals/$($ourSVCPrincipal.id)/oauth2PermissionGrants" -skipTokenCache $true -tenantid $TenantFilter -NoAuthCheck $true + + foreach ($App in $RequiredResourceAccess) { + if (!$App) { + continue + } + $svcPrincipalId = $ServicePrincipalList | Where-Object -Property appId -EQ $App.resourceAppId + if (!$svcPrincipalId) { + try { + $Body = @{ + appId = $App.resourceAppId + } | ConvertTo-Json -Compress + $svcPrincipalId = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals' -tenantid $TenantFilter -body $Body -type POST -NoAuthCheck $true + } catch { + $Results.add("Failed to create service principal for $($App.resourceAppId): $(Get-NormalizedError -message $_.Exception.Message)") + continue + } + } + + $DelegatedScopes = $App.resourceAccess | Where-Object -Property type -EQ 'Scope' + + if ($NoTranslateRequired) { + $NewScope = @($DelegatedScopes | ForEach-Object { $_.id } | Sort-Object -Unique) -join ' ' + } else { + $NewScope = foreach ($Scope in $DelegatedScopes.id) { + if ($Scope -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + $TranslatedScope = ($Translator | Where-Object -Property id -EQ $Scope).value + if ($TranslatedScope) { + $TranslatedScope + } + } else { + $Scope + } + } + $NewScope = (@($NewScope) | Sort-Object -Unique) -join ' ' + } + + $OldScope = ($CurrentDelegatedScopes | Where-Object -Property Resourceid -EQ $svcPrincipalId.id) + + if (!$OldScope) { + if ([string]::IsNullOrEmpty($NewScope) -or $NewScope -eq ' ') { + $Results.add("No delegated permissions to add for $($svcPrincipalId.displayName)") + continue + } + try { + $Createbody = @{ + clientId = $ourSVCPrincipal.id + consentType = 'AllPrincipals' + resourceId = $svcPrincipalId.id + scope = $NewScope + } | ConvertTo-Json -Compress + $CreateRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/oauth2PermissionGrants' -tenantid $TenantFilter -body $Createbody -type POST -NoAuthCheck $true + $Results.add("Successfully added permissions for $($svcPrincipalId.displayName)") + } catch { + $Results.add("Failed to add permissions for $($svcPrincipalId.displayName): $(Get-NormalizedError -message $_.Exception.Message)") + continue + } + } else { + # Cleanup multiple scope entries and patch first id + if (($OldScope.id | Measure-Object).Count -gt 1) { + $OldScopeId = $OldScope.id[0] + $OldScope.id | ForEach-Object { + if ($_ -ne $OldScopeId) { + try { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/oauth2PermissionGrants/$_" -tenantid $TenantFilter -type DELETE -NoAuthCheck $true + } catch { + } + } + } + } else { + $OldScopeId = $OldScope.id + } + $compare = Compare-Object -ReferenceObject $OldScope.scope.Split(' ') -DifferenceObject $NewScope.Split(' ') + if (!$compare) { + $Results.add("All delegated permissions exist for $($svcPrincipalId.displayName)") + continue + } + + if ([string]::IsNullOrEmpty($NewScope) -or $NewScope -eq ' ') { + # No permissions to update + $Results.add("No delegated permissions to update for $($svcPrincipalId.displayName)") + continue + } + + $Patchbody = @{ + scope = "$NewScope" + } | ConvertTo-Json -Compress + try { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/oauth2PermissionGrants/$($OldScopeId)" -tenantid $TenantFilter -body $Patchbody -type PATCH -NoAuthCheck $true + } catch { + $Results.add("Failed to update permissions for $($svcPrincipalId.displayName): $(Get-NormalizedError -message $_.Exception.Message)") + continue + } + # Added permissions + $Added = ($Compare | Where-Object { $_.SideIndicator -eq '=>' }).InputObject -join ' ' + $Removed = ($Compare | Where-Object { $_.SideIndicator -eq '<=' }).InputObject -join ' ' + $Results.add("Successfully updated permissions for $($svcPrincipalId.displayName). $(if ($Added) { "Added: $Added"}) $(if ($Removed) { "Removed: $Removed"})") + } + } + + return $Results +} diff --git a/Modules/CIPPCore/Public/Add-CIPPGDAPRoleTemplate.ps1 b/Modules/CIPPCore/Public/Add-CIPPGDAPRoleTemplate.ps1 new file mode 100644 index 000000000000..4c01b85cb78c --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPGDAPRoleTemplate.ps1 @@ -0,0 +1,47 @@ +function Add-CIPPGDAPRoleTemplate { + <# + .SYNOPSIS + This function is used to add a new role template + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $TemplateId, + $RoleMappings, + [switch]$Overwrite + ) + + $Table = Get-CIPPTable -TableName 'GDAPRoleTemplates' + $Templates = Get-CIPPAzDataTableEntity @Table + if ($Templates.RowKey -contains $TemplateId -and !$Overwrite.IsPresent) { + $ExistingTemplate = $Templates | Where-Object -Property RowKey -EQ $RowKey + try { + $ExistingRoleMappings = $ExistingTemplate.RoleMappings | ConvertFrom-Json + } catch { + $ExistingRoleMappings = @() + } + $NewRoleMappings = [System.Collections.Generic.List[object]]@() + + $ExistingRoleMappings | ForEach-Object { + $NewRoleMappings.Add($_) + } + # Merge the new role mappings with the existing role mappings, exclude ones that have a duplicate roleDefinitionId + $RoleMappings | ForEach-Object { + if ($_.roleDefinitionId -notin $ExistingRoleMappings.roleDefinitionId) { + $NewRoleMappings.Add($_) + } + } + $NewRoleMappings = @($NewRoleMappings | Sort-Object -Property GroupName) | ConvertTo-Json -Compress + $ExistingTemplate.RoleMappings = [string]$NewRoleMappings + $Template = $ExistingTemplate + } else { + $Template = [PSCustomObject]@{ + PartitionKey = 'RoleTemplate' + RowKey = $TemplateId + RoleMappings = [string](@($RoleMappings | Sort-Object -Property GroupName) | ConvertTo-Json -Compress) + } + } + Add-CIPPAzDataTableEntity @Table -Entity $Template -Force +} diff --git a/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 b/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 new file mode 100644 index 000000000000..3a5ea194fe18 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 @@ -0,0 +1,116 @@ +function Add-CIPPGroupMember { + <# + .SYNOPSIS + Adds one or more members to a specified group in Microsoft Graph. + + .DESCRIPTION + This function adds one or more members to a specified group in Microsoft Graph, supporting different group types such as Distribution lists and Mail-Enabled Security groups. + + .PARAMETER Headers + The headers to include in the request, typically containing authentication tokens. This is supplied automatically by the API + + .PARAMETER GroupType + The type of group to which the member is being added, such as Security, Distribution list or Mail-Enabled Security. + + .PARAMETER GroupId + The unique identifier of the group to which the member will be added. + + .PARAMETER Member + An array of members to add to the group. + + .PARAMETER TenantFilter + The tenant identifier to filter the request. + + .PARAMETER APIName + The name of the API operation being performed. Defaults to 'Add Group Member'. + #> + [CmdletBinding()] + param( + $Headers, + [string]$GroupType, + [string]$GroupId, + [string[]]$Member, + [string]$TenantFilter, + [string]$APIName = 'Add Group Member' + ) + try { + if ($Member -like '*#EXT#*') { $Member = [System.Web.HttpUtility]::UrlEncode($Member) } + $ODataBindString = 'https://graph.microsoft.com/v1.0/directoryObjects/{0}' + $Requests = foreach ($m in $Member) { + @{ + id = $m + url = "users/$($m)?`$select=id,userPrincipalName" + method = 'GET' + } + } + $Users = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + + foreach ($User in $Users) { + $Params = @{ Identity = $GroupId; Member = $User.body.userPrincipalName; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Add-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Added member $($User.body.userPrincipalName) to $($GroupId) group" + target = $User.body.userPrincipalName + }) + } + + if ($ExoBulkRequests.Count -gt 0) { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + throw $ExoError + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } + } + } + } else { + # Build one bulk request list; New-GraphBulkRequest handles internal chunking + $AddRequests = foreach ($User in $Users) { + @{ + id = $User.body.id + method = 'POST' + url = "/groups/$($GroupId)/members/`$ref" + body = @{ '@odata.id' = ($ODataBindString -f $User.body.id) } + headers = @{ 'Content-Type' = 'application/json' } + } + } + $AddResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($AddRequests) + $SuccessfulUsers = [system.collections.generic.list[string]]::new() + foreach ($Result in $AddResults) { + if ($Result.status -lt 200 -or $Result.status -gt 299) { + $FailedUsername = $Users | Where-Object { $_.body.id -eq $Result.id } | Select-Object -ExpandProperty body | Select-Object -ExpandProperty userPrincipalName + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to add member $($FailedUsername): $($Result.body.error.message)" -Sev 'Error' + } else { + $UserPrincipalName = $Users | Where-Object { $_.body.id -eq $Result.id } | Select-Object -ExpandProperty body | Select-Object -ExpandProperty userPrincipalName + $SuccessfulUsers.Add($UserPrincipalName) + } + } + } + $UserList = ($SuccessfulUsers -join ', ') + $Results = "Successfully added user $UserList to $($GroupId)." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Info' + return $Results + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $UserList = if ($Users) { ($Users.body.userPrincipalName -join ', ') } else { ($Member -join ', ') } + $Results = "Failed to add user $UserList to $($GroupId) - $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'error' -LogData $ErrorMessage + throw $Results + } +} diff --git a/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 b/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 new file mode 100644 index 000000000000..0981e4b361d3 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 @@ -0,0 +1,310 @@ +function Add-CIPPScheduledTask { + [CmdletBinding(DefaultParameterSetName = 'Default')] + param( + [Parameter(Mandatory = $true, ParameterSetName = 'Default')] + [pscustomobject]$Task, + + [Parameter(Mandatory = $false, ParameterSetName = 'Default')] + [bool]$Hidden, + + [Parameter(Mandatory = $false, ParameterSetName = 'Default')] + $DisallowDuplicateName = $false, + + [Parameter(Mandatory = $false, ParameterSetName = 'Default')] + [string]$SyncType = $null, + + [Parameter(Mandatory = $false, ParameterSetName = 'RunNow')] + [switch]$RunNow, + + [Parameter(Mandatory = $true, ParameterSetName = 'RunNow')] + [string]$RowKey, + + [Parameter(Mandatory = $false, ParameterSetName = 'Default')] + [string]$DesiredStartTime = $null, + + [Parameter(Mandatory = $false, ParameterSetName = 'Default')] + [Parameter(Mandatory = $false, ParameterSetName = 'RunNow')] + $Headers + ) + + try { + + $Table = Get-CIPPTable -TableName 'ScheduledTasks' + + if ($RunNow.IsPresent -and $RowKey) { + try { + $Filter = "PartitionKey eq 'ScheduledTask' and RowKey eq '$($RowKey)'" + $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + $ExistingTask.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + $ExistingTask.TaskState = 'Planned' + Add-CIPPAzDataTableEntity @Table -Entity $ExistingTask -Force + Write-LogMessage -headers $Headers -API 'RunNow' -message "Task $($ExistingTask.Name) scheduled to run now" -Sev 'Info' -Tenant $ExistingTask.Tenant + return "Task $($ExistingTask.Name) scheduled to run now" + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -headers $Headers -API 'RunNow' -message "Could not run task: $ErrorMessage" -Sev 'Error' + return "Could not run task: $ErrorMessage" + } + } else { + if (!$Task.RowKey) { + $RowKey = (New-Guid).Guid + } else { + $RowKey = $Task.RowKey + } + + if ($DisallowDuplicateName) { + $Filter = "PartitionKey eq 'ScheduledTask' and Name eq '$($Task.Name)' and TaskState ne 'Completed' and TaskState ne 'Failed'" + $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + if ($ExistingTask) { + return "Task with name $($Task.Name) already exists" + } + } + + $propertiesToCheck = @('Webhook', 'Email', 'PSA') + $PostExecutionObject = ($propertiesToCheck | Where-Object { $task.PostExecution.$_ -eq $true }) + $PostExecution = $PostExecutionObject ? @($PostExecutionObject -join ',') : ($Task.PostExecution.value -join ',') + $Parameters = [System.Collections.Hashtable]@{} + foreach ($Key in $task.Parameters.PSObject.Properties.Name) { + $Param = $task.Parameters.$Key + + if ($null -eq $Param -or $Param -eq '' -or ($Param | Measure-Object).Count -eq 0) { + continue + } + + # handle different object types in params + if ($Param -is [System.Collections.IDictionary] -or $Param[0].Key) { + Write-Information "Parameter $Key is a hashtable" + $ht = @{} + foreach ($p in $Param.GetEnumerator()) { + $ht[$p.Key] = $p.Value + } + $Parameters[$Key] = [PSCustomObject]$ht + Write-Information "Converted $Key to PSObject $($Parameters[$Key] | ConvertTo-Json -Compress)" + } elseif ($Param -is [System.Object[]] -and -not ($Param -is [string])) { + Write-Information "Parameter $Key is an enumerable object" + $Param = $Param | ForEach-Object { + if ($null -eq $_) { + # Skip null entries + return + } + if ($_ -is [System.Collections.IDictionary]) { + [PSCustomObject]$_ + } elseif ($_ -is [PSCustomObject]) { + $_ + } else { + $_ + } + } | Where-Object { $null -ne $_ } + $Parameters[$Key] = $Param + } else { + Write-Information "Parameter $Key is a simple value" + $Parameters[$Key] = $Param + } + } + + if ($Headers) { + $Parameters.Headers = $Headers | Select-Object -Property 'x-forwarded-for', 'x-ms-client-principal', 'x-ms-client-principal-idp', 'x-ms-client-principal-name' + } + + $Parameters = ($Parameters | ConvertTo-Json -Depth 10 -Compress) + $AdditionalProperties = [System.Collections.Hashtable]@{} + foreach ($Prop in $task.AdditionalProperties) { + if ($null -eq $Prop.Value -or $Prop.Value -eq '' -or ($Prop.Value | Measure-Object).Count -eq 0) { + continue + } + $AdditionalProperties[$Prop.Key] = $Prop.Value + } + $AdditionalProperties = ([PSCustomObject]$AdditionalProperties | ConvertTo-Json -Compress) + if ($Parameters -eq 'null') { $Parameters = '' } + + + $Recurrence = if ([string]::IsNullOrEmpty($task.Recurrence.value)) { + $task.Recurrence + } else { + $task.Recurrence.value + } + + if ($task.PSObject.Properties.Name -notcontains 'ScheduledTime') { + $task | Add-Member -MemberType NoteProperty -Name 'ScheduledTime' -Value 0 -Force + } + + if ($DesiredStartTime) { + try { + # Parse the epoch time + $epochSeconds = [int64]$DesiredStartTime + # Set ScheduledTime to the desired time + $task.ScheduledTime = $epochSeconds + } catch { + Write-Warning "Failed to parse DesiredStartTime: $DesiredStartTime. Using provided ScheduledTime." + # Fall back to default + if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) { + $task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + } + } + } else { + # No DesiredStartTime - use current behavior (immediate execution) + if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) { + $task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + } + } + $excludedTenants = if ($task.excludedTenants.value) { + $task.excludedTenants.value -join ',' + } + + # Handle tenant filter - support both single tenant and tenant groups + $tenantFilter = $task.TenantFilter.value ? $task.TenantFilter.value : $task.TenantFilter + $originalTenantFilter = $task.TenantFilter + + # If tenant filter is a complex object (from form), extract the value + if ($tenantFilter -is [PSCustomObject] -and $tenantFilter.value) { + $originalTenantFilter = $tenantFilter + $tenantFilter = $tenantFilter.value + } + + # If tenant filter is a string but still seems to be JSON, try to parse it + if ($tenantFilter -is [string] -and $tenantFilter.StartsWith('{')) { + try { + $parsedTenantFilter = $tenantFilter | ConvertFrom-Json + if ($parsedTenantFilter.value) { + $originalTenantFilter = $parsedTenantFilter + $tenantFilter = $parsedTenantFilter.value + } + } catch { + # If parsing fails, use the string as is + Write-Warning "Could not parse tenant filter JSON: $tenantFilter" + } + } + + $entity = @{ + PartitionKey = [string]'ScheduledTask' + TaskState = [string]'Planned' + RowKey = [string]$RowKey + Tenant = [string]$tenantFilter + excludedTenants = [string]$excludedTenants + Name = [string]$task.Name + Command = [string]$task.Command.value + Parameters = [string]$Parameters + ScheduledTime = [string]$task.ScheduledTime + Recurrence = [string]$Recurrence + PostExecution = [string]$PostExecution + Reference = [string]$task.Reference + AdditionalProperties = [string]$AdditionalProperties + Hidden = [bool]$Hidden + Results = 'Planned' + AlertComment = [string]$task.AlertComment + } + + + # Always store DesiredStartTime if provided + if ($DesiredStartTime) { + $entity['DesiredStartTime'] = [string]$DesiredStartTime + } + + # Store the original tenant filter for group expansion during execution + if ($originalTenantFilter -is [PSCustomObject] -and $originalTenantFilter.type -eq 'Group') { + $entity['TenantGroup'] = [string]($originalTenantFilter | ConvertTo-Json -Compress) + } elseif ($originalTenantFilter -is [string] -and $originalTenantFilter.StartsWith('{')) { + # Check if it's a serialized group object + try { + $parsedOriginal = $originalTenantFilter | ConvertFrom-Json + if ($parsedOriginal.type -eq 'Group') { + $entity['TenantGroup'] = [string]$originalTenantFilter + } + } catch { + # Not a JSON object, ignore + } + } + + if ($task.Trigger) { + $entity.Trigger = [string]($task.Trigger | ConvertTo-Json -Compress) + $TriggerType = $task.Trigger.Type.value ?? $task.Trigger.Type + if ($TriggerType -eq 'DeltaQuery') { + $Parameters = @{} + if ($task.Trigger.WatchedAttributes -and ($task.Trigger.WatchedAttributes | Measure-Object).Count -gt 0) { + $Parameters.'$select' = $task.Trigger.WatchedAttributes | ForEach-Object { $_.value ?? $_ } -join ',' + } + if ($task.Trigger.ResourceFilter) { + $ResourceFilterValues = $task.Trigger.ResourceFilter | ForEach-Object { $_.value ?? $_ } + $Parameters.'$filter' = "id eq '" + ($ResourceFilterValues -join "' or id eq '") + "'" + } + $Resource = $task.Trigger.DeltaResource.value ?? $task.Trigger.DeltaResource + + if ($entity.TenantGroup) { + $tenantFilter = $entity.TenantGroup | ConvertFrom-Json + } + $DeltaQuery = @{ + TenantFilter = $tenantFilter + Resource = $Resource + Parameters = $Parameters + PartitionKey = $RowKey + } + + try { + $null = New-GraphDeltaQuery @DeltaQuery + Write-Information "Created delta query for resource $($Resource)" + } catch { + Write-Warning "Failed to create delta query for resource $($Resource): $($_.Exception.Message)" + } + } + } + + if ($SyncType) { + $entity.SyncType = $SyncType + } + try { + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-Information $_.InvocationInfo.PositionMessage + Write-Information ($entity | ConvertTo-Json) + return "Error - Could not add task: $ErrorMessage" + } + Write-LogMessage -headers $Headers -API 'ScheduledTask' -message "Added task $($entity.Name) with ID $($entity.RowKey)" -Sev 'Info' -Tenant $tenantFilter + + # Calculate relative time for next run + $scheduledEpoch = [int64]$entity.ScheduledTime + $currentTime = [datetime]::UtcNow + + if ($scheduledEpoch -eq 0 -or $scheduledEpoch -le ([int64](($currentTime) - (Get-Date '1/1/1970')).TotalSeconds)) { + # Task will run at next 15-minute interval - calculate efficiently + $minutesToAdd = 15 - ($currentTime.Minute % 15) + $nextRunTime = $currentTime.AddMinutes($minutesToAdd).AddSeconds(-$currentTime.Second).AddMilliseconds(-$currentTime.Millisecond) + $timeUntilRun = $nextRunTime - $currentTime + } else { + # Task is scheduled for a specific time in the future + $scheduledTime = [datetime]'1/1/1970' + [TimeSpan]::FromSeconds($scheduledEpoch) + $timeUntilRun = $scheduledTime - $currentTime + } + + # Format relative time + $relativeTime = switch ($timeUntilRun.TotalMinutes) { + { $_ -ge 1440 } { + $days = [Math]::Floor($timeUntilRun.TotalDays) + $hours = $timeUntilRun.Hours + $result = "$days day$(if ($days -ne 1) { 's' })" + if ($hours -gt 0) { $result += " and $hours hour$(if ($hours -ne 1) { 's' })" } + $result + break + } + { $_ -ge 60 } { + $hours = [Math]::Floor($timeUntilRun.TotalHours) + $minutes = $timeUntilRun.Minutes + $result = "$hours hour$(if ($hours -ne 1) { 's' })" + if ($minutes -gt 0) { $result += " and $minutes minute$(if ($minutes -ne 1) { 's' })" } + $result + break + } + { $_ -ge 2 } { "about $([Math]::Round($_)) minutes"; break } + { $_ -ge 1 } { 'about 1 minute'; break } + default { 'less than a minute' } + } + + return "Successfully added task: $($entity.Name). It will run in $relativeTime." + } + } catch { + Write-Warning "Failed to add scheduled task: $($_.Exception.Message)" + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + #Write-Information ($Task | ConvertTo-Json) + throw "Error - Could not add task: $ErrorMessage" + } +} diff --git a/Modules/CIPPCore/Public/Add-CippTestResult.ps1 b/Modules/CIPPCore/Public/Add-CippTestResult.ps1 new file mode 100644 index 000000000000..a4bee90dae78 --- /dev/null +++ b/Modules/CIPPCore/Public/Add-CippTestResult.ps1 @@ -0,0 +1,101 @@ +function Add-CippTestResult { + <# + .SYNOPSIS + Adds a test result to the CIPP test results database + + .DESCRIPTION + Stores test result data in the CippTestResults table with tenant and test ID as keys + + .PARAMETER TenantFilter + The tenant domain or GUID for the test result + + .PARAMETER TestId + Unique identifier for the test + + .PARAMETER Status + Test status (e.g., Pass, Fail, Skip) + + .PARAMETER ResultMarkdown + Markdown formatted result details + + .PARAMETER Risk + Risk level (e.g., High, Medium, Low) + + .PARAMETER Name + Display name of the test + + .PARAMETER Pillar + Security pillar category + + .PARAMETER UserImpact + Impact level on users + + .PARAMETER ImplementationEffort + Effort required for implementation + + .PARAMETER Category + Test category or classification + + .EXAMPLE + Add-CippTestResult -TenantFilter 'contoso.onmicrosoft.com' -TestId 'MFA-001' -Status 'Pass' -Name 'MFA Enabled' -Risk 'High' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$TestId, + + [Parameter(Mandatory = $false)] + [string]$testType = 'Identity', + + [Parameter(Mandatory = $true)] + [string]$Status, + + [Parameter(Mandatory = $false)] + [string]$ResultMarkdown, + + [Parameter(Mandatory = $false)] + [string]$Risk, + + [Parameter(Mandatory = $false)] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$Pillar, + + [Parameter(Mandatory = $false)] + [string]$UserImpact, + + [Parameter(Mandatory = $false)] + [string]$ImplementationEffort, + + [Parameter(Mandatory = $false)] + [string]$Category + ) + + try { + $Table = Get-CippTable -tablename 'CippTestResults' + + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = $TestId + Status = $Status + ResultMarkdown = $ResultMarkdown ?? '' + Risk = $Risk ?? '' + Name = $Name ?? '' + Pillar = $Pillar ?? '' + UserImpact = $UserImpact ?? '' + ImplementationEffort = $ImplementationEffort ?? '' + Category = $Category ?? '' + TestType = $TestType + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Added test result: $TestId - $Status" -sev Debug + } catch { + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Failed to add test result: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAdminPassword.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAdminPassword.ps1 new file mode 100644 index 000000000000..27e911fe98b0 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAdminPassword.ps1 @@ -0,0 +1,26 @@ + +function Get-CIPPAlertAdminPassword { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $TenantId = (Get-Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter).customerId + $AlertData = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/roleManagement/directory/roleAssignments?`$filter=roleDefinitionId eq '62e90394-69f5-4237-9190-012177145e10'&`$expand=principal" -tenantid $($TenantFilter) | Where-Object { ($_.principalOrganizationId -EQ $TenantId) -and ($_.principal.'@odata.type' -eq '#microsoft.graph.user') } | ForEach-Object { + $LastChanges = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/users/$($_.principalId)?`$select=UserPrincipalName,lastPasswordChangeDateTime" -tenant $($TenantFilter) + if ($LastChanges.LastPasswordChangeDateTime -gt (Get-Date).AddDays(-1)) { + $LastChanges | Select-Object -Property UserPrincipalName, lastPasswordChangeDateTime + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get admin password changes for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertApnCertExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertApnCertExpiry.ps1 new file mode 100644 index 000000000000..bf6086581cf6 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertApnCertExpiry.ps1 @@ -0,0 +1,25 @@ +function Get-CIPPAlertApnCertExpiry { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + $Apn = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/applePushNotificationCertificate' -tenantid $TenantFilter + $AlertData = if ($Apn.expirationDateTime -lt (Get-Date).AddDays(30) -and $Apn.expirationDateTime -gt (Get-Date).AddDays(-7)) { + $Apn | Select-Object -Property appleIdentifier, expirationDateTime + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch { + #no error because if a tenant does not have an APN, it'll error anyway. + #Write-AlertMessage -tenant $($TenantFilter) -message "Failed to check APN certificate expiry for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppCertificateExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppCertificateExpiry.ps1 new file mode 100644 index 000000000000..6e9b3bbf387f --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppCertificateExpiry.ps1 @@ -0,0 +1,33 @@ +function Get-CIPPAlertAppCertificateExpiry { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + Write-Host "Checking app expire for $($TenantFilter)" + $appList = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications?`$select=appId,displayName,keyCredentials" -tenantid $TenantFilter + } catch { + return + } + + $AlertData = foreach ($App in $applist) { + Write-Host "checking $($App.displayName)" + if ($App.keyCredentials) { + foreach ($Credential in $App.keyCredentials) { + if ($Credential.endDateTime -lt (Get-Date).AddDays(30) -and $Credential.endDateTime -gt (Get-Date).AddDays(-7)) { + Write-Host ("Application '{0}' has certificates expiring on {1}" -f $App.displayName, $Credential.endDateTime) + @{ DisplayName = $App.displayName; Expires = $Credential.endDateTime } + } + } + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppSecretExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppSecretExpiry.ps1 new file mode 100644 index 000000000000..30097cd36268 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppSecretExpiry.ps1 @@ -0,0 +1,44 @@ +function Get-CIPPAlertAppSecretExpiry { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + Write-Host "Checking app expire for $($TenantFilter)" + $appList = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications?`$select=appId,displayName,passwordCredentials" -tenantid $TenantFilter + } catch { + return + } + + $AlertData = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($App in $applist) { + Write-Host "checking $($App.displayName)" + if ($App.passwordCredentials) { + foreach ($Credential in $App.passwordCredentials) { + if ($Credential.endDateTime -lt (Get-Date).AddDays(30) -and $Credential.endDateTime -gt (Get-Date).AddDays(-7)) { + Write-Host ("Application '{0}' has secrets expiring on {1}" -f $App.displayName, $Credential.endDateTime) + + $Message = [PSCustomObject]@{ + AppName = $App.displayName + AppId = $App.appId + Expires = $Credential.endDateTime + SecretName = $Credential.displayName + SecretID = $Credential.keyId + Tenant = $TenantFilter + } + $AlertData.Add($Message) + } + } + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 new file mode 100644 index 000000000000..f5678cd95421 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertAppleTerms.ps1 @@ -0,0 +1,40 @@ +function Get-CIPPAlertAppleTerms { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + # 0 = Expired + # 1 = expired? + # 2 = unknown + # 3 = Terms & Conditions + # 4 = Warning + + try { + Write-Host "Checking Apple Terms for $($TenantFilter)" + $AppleTerms = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/depOnboardingSettings' -tenantid $TenantFilter + } catch { + return + } + + if ($AppleTerms.lastSyncErrorCode -eq 3) { + $AlertData = [PSCustomObject]@{ + Message = 'New Apple Business Manager terms are ready to accept.' + AppleIdentifier = $AppleTerms.appleIdentifier + TokenName = $AppleTerms.tokenName + TokenExpirationDateTime = $AppleTerms.tokenExpirationDateTime + LastSyncErrorCode = $AppleTerms.lastSyncErrorCode + LastSuccessfulSyncDateTime = $AppleTerms.lastSuccessfulSyncDateTime + LastSyncTriggeredDateTime = $AppleTerms.lastSyncTriggeredDateTime + Tenant = $TenantFilter + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderIncidents.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderIncidents.ps1 new file mode 100644 index 000000000000..49be9d9a153a --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderIncidents.ps1 @@ -0,0 +1,31 @@ + +function Get-CIPPAlertDefenderIncidents { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/security/incidents?`$top=50&`$filter=status eq 'active'" -tenantid $TenantFilter | ForEach-Object { + [PSCustomObject]@{ + IncidentID = $_.id + CreatedAt = $_.createdDateTime + Severity = $_.severity + IncidentName = $_.displayName + IncidentUrl = $_.incidentWebUrl + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch { + # Pretty sure this one is gonna be spammy cause of licensing issues, so it's commented out -Bobby + # Write-AlertMessage -tenant $($TenantFilter) -message "Could not get Defender incident data for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 new file mode 100644 index 000000000000..252b5abe1b78 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderMalware.ps1 @@ -0,0 +1,35 @@ + +function Get-CIPPAlertDefenderMalware { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $TenantId = (Get-Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter).customerId + $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsDeviceMalwareStates?`$top=999&`$filter=tenantId eq '$($TenantId)'" | Where-Object { $_.malwareThreatState -eq 'Active' } | ForEach-Object { + [PSCustomObject]@{ + DeviceName = $_.managedDeviceName + MalwareName = $_.malwareDisplayName + MalwareSeverity = $_.malwareSeverity + ThreatState = $_.malwareThreatState + AdditionalInformationUrl = $_.additionalInformationUrl + InitialDetectionDateTime = $_.initialDetectionDateTime + LastStateChangeDateTime = $_.lastStateChangeDateTime + DetectionCount = $_.detectionCount + Tenant = $TenantFilter + TenantId = $_.tenantId + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get malware data for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 new file mode 100644 index 000000000000..defef38677a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDefenderStatus.ps1 @@ -0,0 +1,34 @@ +function Get-CIPPAlertDefenderStatus { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $TenantId = (Get-Tenants | Where-Object -Property defaultDomainName -EQ $TenantFilter).customerId + $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsProtectionStates?`$top=999&`$filter=tenantId eq '$($TenantId)'" | Where-Object { $_.realTimeProtectionEnabled -eq $false -or $_.MalwareprotectionEnabled -eq $false } | ForEach-Object { + [PSCustomObject]@{ + ManagedDeviceName = $_.managedDeviceName + RealTimeProtectionEnabled = $_.realTimeProtectionEnabled + MalwareProtectionEnabled = $_.malwareProtectionEnabled + NetworkInspectionSystemEnabled = $_.networkInspectionSystemEnabled + ManagedDeviceHealthState = $_.managedDeviceHealthState + AttentionRequired = $_.attentionRequired + LastSyncDateTime = $_.lastSyncDateTime + OsVersion = $_.osVersion + Tenant = $TenantFilter + TenantId = $_.tenantId + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get defender status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDepTokenExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDepTokenExpiry.ps1 new file mode 100644 index 000000000000..23004aa5c307 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDepTokenExpiry.ps1 @@ -0,0 +1,31 @@ +function Get-CIPPAlertDepTokenExpiry { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + try { + $DepTokens = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/depOnboardingSettings' -tenantid $TenantFilter + $AlertData = foreach ($Dep in $DepTokens) { + if ($Dep.tokenExpirationDateTime -lt (Get-Date).AddDays(30) -and $Dep.tokenExpirationDateTime -gt (Get-Date).AddDays(-7)) { + $Message = 'Apple Device Enrollment Program token expiring on {0}' -f $Dep.tokenExpirationDateTime + $Dep | Select-Object -Property tokenName, @{Name = 'Message'; Expression = { $Message } } + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch {} + + + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Failed to check Apple Device Enrollment Program token expiry for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDeviceCompliance.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDeviceCompliance.ps1 new file mode 100644 index 000000000000..ebdf7ee55be8 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertDeviceCompliance.ps1 @@ -0,0 +1,20 @@ + +function Get-CIPPAlertDeviceCompliance { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $AlertData = New-GraphGETRequest -uri "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?`$filter=complianceState eq 'noncompliant'&`$select=id,deviceName,managedDeviceOwnerType,complianceState,lastSyncDateTime&`$top=999" -tenantid $TenantFilter + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get compliance state for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 new file mode 100644 index 000000000000..31ebb125ad83 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 @@ -0,0 +1,43 @@ + +function Get-CIPPAlertEntraConnectSyncStatus { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + # Set Hours with fallback to 72 hours + $Hours = if ($InputValue) { [int]$InputValue } else { 72 } + $ConnectSyncStatus = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization?$select=onPremisesLastPasswordSyncDateTime,onPremisesLastSyncDateTime,onPremisesSyncEnabled' -tenantid $TenantFilter + + if ($ConnectSyncStatus.onPremisesSyncEnabled -eq $true) { + $LastPasswordSync = $ConnectSyncStatus.onPremisesLastPasswordSyncDateTime + $SyncDateTime = $ConnectSyncStatus.onPremisesLastSyncDateTime + # Get the older of the two sync times + $LastSync = if ($SyncDateTime -lt $LastPasswordSync) { $SyncDateTime; $Cause = 'DirectorySync' } else { $LastPasswordSync; $Cause = 'PasswordSync' } + + if ($LastSync -lt (Get-Date).AddHours(-$Hours).ToUniversalTime()) { + + $AlertData = @{ + Message = "Entra Connect $Cause for $($TenantFilter) has not run for over $Hours hours. Last sync was at $($LastSync.ToString('o'))" + LastSync = $LastSync + Cause = $Cause + LastPasswordSync = $LastPasswordSync + LastDirectorySync = $SyncDateTime + Tenant = $TenantFilter + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get Entra Connect Sync Status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -LogData (Get-CippException -Exception $_) + Write-Information "Could not get Entra Connect Sync Status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + Write-Information $_.PositionMessage + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraLicenseUtilization.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraLicenseUtilization.ps1 new file mode 100644 index 000000000000..419bd44f3a2a --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraLicenseUtilization.ps1 @@ -0,0 +1,53 @@ +function Get-CIPPAlertEntraLicenseUtilization { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + # Set threshold with fallback to 110% + $Threshold = if ($InputValue) { [int]$InputValue } else { 110 } + + $LicenseData = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/reports/azureADPremiumLicenseInsight' -tenantid $($TenantFilter) + $Alerts = [System.Collections.Generic.List[string]]::new() + + # Check P1 License utilization + if ($LicenseData.entitledP1LicenseCount -gt 0 -or $LicenseData.entitledP2LicenseCount -gt 0) { + $P1Used = $LicenseData.p1FeatureUtilizations.conditionalAccess.userCount + $P1Entitled = $LicenseData.entitledP1LicenseCount + $LicenseData.entitledP2LicenseCount + $P1Usage = ($P1Used / $P1Entitled) * 100 + $P1Overage = $P1Used - $P1Entitled + + if ($P1Usage -gt $Threshold -and $P1Overage -ge 5) { + $Alerts.Add("P1 License utilization is at $([math]::Round($P1Usage,2))% (Using $P1Used of $P1Entitled licenses, over by $P1Overage)") + } + } + + # Check P2 License utilization + if ($LicenseData.entitledP2LicenseCount -gt 0) { + $P2Used = $LicenseData.p2FeatureUtilizations.riskBasedConditionalAccess.userCount + $P2Entitled = $LicenseData.entitledP2LicenseCount + $P2Usage = ($P2Used / $P2Entitled) * 100 + $P2Overage = $P2Used - $P2Entitled + + if ($P2Usage -gt $Threshold -and $P2Overage -ge 5) { + $Alerts.Add("P2 License utilization is at $([math]::Round($P2Usage,2))% (Using $P2Used of $P2Entitled licenses, over by $P2Overage)") + } + } + + if ($Alerts.Count -gt 0) { + $AlertData = "License Over-utilization Alert (Threshold: $Threshold%, Min Overage: 5): $($Alerts -join ' | ')" + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -message "Failed to check license utilization: $($ErrorMessage.NormalizedError)" -API 'License Utilization Alert' -tenant $TenantFilter -sev Info -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 new file mode 100644 index 000000000000..a770812e9c7a --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 @@ -0,0 +1,62 @@ +function Get-CIPPAlertExpiringLicenses { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + # Parse input parameters - default to 30 days if not specified + # Support both old format (direct value) and new format (object with properties) + if ($InputValue -is [hashtable] -or $InputValue -is [PSCustomObject]) { + $DaysThreshold = if ($InputValue.ExpiringLicensesDays) { [int]$InputValue.ExpiringLicensesDays } else { 30 } + $UnassignedOnly = if ($null -ne $InputValue.ExpiringLicensesUnassignedOnly) { [bool]$InputValue.ExpiringLicensesUnassignedOnly } else { $false } + } else { + # Backward compatibility: if InputValue is a simple value, treat it as days threshold + $DaysThreshold = if ($InputValue) { [int]$InputValue } else { 30 } + $UnassignedOnly = $false + } + + $AlertData = Get-CIPPLicenseOverview -TenantFilter $TenantFilter | ForEach-Object { + $UnassignedCount = [int]$_.CountAvailable + + # If unassigned only filter is enabled, skip licenses with no unassigned units + if ($UnassignedOnly -and $UnassignedCount -le 0) { + return + } + + foreach ($Term in $TermData) { + if ($Term.DaysUntilRenew -lt $DaysThreshold -and $Term.DaysUntilRenew -gt 0) { + $Message = if ($UnassignedOnly) { + "$($_.License) has $UnassignedCount unassigned license(s) expiring in $($Term.DaysUntilRenew) days. The estimated term is $($Term.Term)" + } else { + "$($_.License) will expire in $($Term.DaysUntilRenew) days. The estimated term is $($Term.Term)" + } + + Write-Host $Message + [PSCustomObject]@{ + Message = $Message + License = $_.License + SkuId = $_.skuId + DaysUntilRenew = $Term.DaysUntilRenew + Term = $Term.Term + Status = $Term.Status + TotalLicenses = $Term.TotalLicenses + CountUsed = $_.CountUsed + CountAvailable = $UnassignedCount + NextLifecycle = $Term.NextLifecycle + Tenant = $_.Tenant + } + } + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch { + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 new file mode 100644 index 000000000000..82ae1ebc1cfb --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1 @@ -0,0 +1,84 @@ +function Get-CIPPAlertGlobalAdminAllowList { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $AllowedAdmins = @() + $AlertEachAdmin = $false + if ($InputValue -is [hashtable] -or $InputValue -is [pscustomobject]) { + $AlertEachAdmin = [bool]($InputValue['AlertEachAdmin']) + $ApprovedValue = if ($InputValue.ContainsKey('ApprovedGlobalAdmins') -or ($InputValue.PSObject.Properties.Name -contains 'ApprovedGlobalAdmins')) { + $InputValue['ApprovedGlobalAdmins'] + } else { + $null + } + $InputValue = $ApprovedValue + } + if ($null -ne $InputValue) { + if ($InputValue -is [string]) { + $AllowedAdmins = $InputValue -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } elseif ($InputValue -is [System.Collections.IEnumerable]) { + $AllowedAdmins = $InputValue | ForEach-Object { $_.ToString().Trim() } | Where-Object { $_ } + } else { + $AllowedAdmins = @("$InputValue") + } + } + $AllowedLookup = $AllowedAdmins | ForEach-Object { $_.ToLowerInvariant() } | Select-Object -Unique + + if (-not $AllowedLookup -or $AllowedLookup.Count -eq 0) { + return + } + + $GlobalAdmins = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles/roleTemplateId=62e90394-69f5-4237-9190-012177145e10/members?`$select=id,displayName,userPrincipalName" -tenantid $TenantFilter -AsApp $true -ErrorAction Stop | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.user' -and $_.displayName -ne 'On-Premises Directory Synchronization Service Account' + } + + $UnapprovedAdmins = foreach ($admin in $GlobalAdmins) { + if ([string]::IsNullOrWhiteSpace($admin.userPrincipalName)) { continue } + $UpnPrefix = ($admin.userPrincipalName -split '@')[0].ToLowerInvariant() + if ($AllowedLookup -notcontains $UpnPrefix) { + [PSCustomObject]@{ + Admin = $admin + UpnPrefix = $UpnPrefix + } + } + } + + if ($UnapprovedAdmins) { + if ($AlertEachAdmin) { + $AlertData = foreach ($item in $UnapprovedAdmins) { + $admin = $item.Admin + $UpnPrefix = $item.UpnPrefix + [PSCustomObject]@{ + Message = "$($admin.userPrincipalName) has Global Administrator role but is not in the approved allow list (prefix '$UpnPrefix')." + DisplayName = $admin.displayName + UserPrincipalName = $admin.userPrincipalName + Id = $admin.id + AllowedList = if ($AllowedAdmins) { $AllowedAdmins -join ', ' } else { 'Not provided' } + Tenant = $TenantFilter + } + } + } else { + $NonCompliantUpns = @($UnapprovedAdmins.Admin.userPrincipalName) + $AlertData = @([PSCustomObject]@{ + Message = "Found $($NonCompliantUpns.Count) Global Administrator account(s) not in the approved allow list." + NonCompliantUsers = $NonCompliantUpns -join ', ' + ApprovedPrefixes = if ($AllowedAdmins) { $AllowedAdmins -join ', ' } else { 'Not provided' } + Tenant = $TenantFilter + }) + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to check approved Global Admins: $(Get-NormalizedError -message $_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 new file mode 100644 index 000000000000..3d3a7db653d9 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminNoAltEmail.ps1 @@ -0,0 +1,38 @@ +function Get-CIPPAlertGlobalAdminNoAltEmail { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + # Get all Global Admin accounts using the role template ID + $globalAdmins = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles/roleTemplateId=62e90394-69f5-4237-9190-012177145e10/members?`$select=id,displayName,userPrincipalName,otherMails" -tenantid $($TenantFilter) -AsApp $true | Where-Object { + $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' -and $_.'@odata.type' -eq '#microsoft.graph.user' + } + + # Filter for Global Admins without alternate email addresses + $adminsWithoutAltEmail = $globalAdmins | Where-Object { + $null -eq $_.otherMails -or $_.otherMails.Count -eq 0 + } + + if ($adminsWithoutAltEmail.Count -gt 0) { + $AlertData = foreach ($admin in $adminsWithoutAltEmail) { + [PSCustomObject]@{ + DisplayName = $admin.displayName + UserPrincipalName = $admin.userPrincipalName + Id = $admin.id + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + Write-LogMessage -message "Failed to check alternate email status for Global Admins: $($_.exception.message)" -API 'Global Admin Alt Email Alerts' -tenant $TenantFilter -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 new file mode 100644 index 000000000000..d43fed315a9a --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 @@ -0,0 +1,48 @@ +function Get-CIPPAlertHuntressRogueApps { + <# + .SYNOPSIS + Check for rogue apps in a Tenant + .DESCRIPTION + This function checks for rogue apps in the tenant by comparing the service principals in the tenant with a list of known rogue apps provided by Huntress. + .FUNCTIONALITY + Entrypoint + .LINK + https://huntresslabs.github.io/rogueapps/ + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + $RogueApps = Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/huntresslabs/rogueapps/main/public/rogueapps.json' + $RogueAppFilter = $RogueApps.appId -join "','" + $ServicePrincipals = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$filter=appId in ('$RogueAppFilter')" -tenantid $TenantFilter + # If IgnoreDisabledApps is true, filter out disabled service principals + if ($InputValue -eq $true) { + $ServicePrincipals = $ServicePrincipals | Where-Object { $_.accountEnabled -eq $true } + } + + if (($ServicePrincipals | Measure-Object).Count -gt 0) { + $AlertData = foreach ($ServicePrincipal in $ServicePrincipals) { + $RogueApp = $RogueApps | Where-Object { $_.appId -eq $ServicePrincipal.appId } + [pscustomobject]@{ + 'App Name' = $RogueApp.appDisplayName + 'App Id' = $RogueApp.appId + 'Description' = $RogueApp.description + 'Enabled' = $ServicePrincipal.accountEnabled + 'Created' = $ServicePrincipal.createdDateTime + 'Tags' = $RogueApp.tags -join ', ' + 'References' = $RogueApp.references -join ', ' + 'Huntress Added' = $RogueApp.dateAdded + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + #Write-AlertMessage -tenant $($TenantFilter) -message "Failed to check for rogue apps for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 new file mode 100644 index 000000000000..964e60d5a375 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 @@ -0,0 +1,74 @@ +function Get-CIPPAlertInactiveLicensedUsers { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + [Parameter(Mandatory = $false)] + [switch]$IncludeNeverSignedIn, # Include users who have never signed in (default is to skip them), future use would allow this to be set in an alert configuration + $TenantFilter + ) + + try { + try { + $Lookup = (Get-Date).AddDays(-90).ToUniversalTime() + + # Build base filter - cannot filter assignedLicenses server-side + $BaseFilter = if ($InputValue -eq $true) { 'accountEnabled eq true' } else { '' } + + $Uri = if ($BaseFilter) { + "https://graph.microsoft.com/beta/users?`$filter=$BaseFilter&`$select=id,UserPrincipalName,signInActivity,mail,userType,accountEnabled,assignedLicenses" + } else { + "https://graph.microsoft.com/beta/users?`$select=id,UserPrincipalName,signInActivity,mail,userType,accountEnabled,assignedLicenses" + } + + $GraphRequest = New-GraphGetRequest -uri $Uri -scope 'https://graph.microsoft.com/.default' -tenantid $TenantFilter | + Where-Object { $null -ne $_.assignedLicenses -and $_.assignedLicenses.Count -gt 0 } + + $AlertData = foreach ($user in $GraphRequest) { + $lastInteractive = $user.signInActivity.lastSignInDateTime + $lastNonInteractive = $user.signInActivity.lastNonInteractiveSignInDateTime + + # Find most recent sign-in + $lastSignIn = $null + if ($lastInteractive -and $lastNonInteractive) { + $lastSignIn = if ([DateTime]$lastInteractive -gt [DateTime]$lastNonInteractive) { $lastInteractive } else { $lastNonInteractive } + } elseif ($lastInteractive) { + $lastSignIn = $lastInteractive + } elseif ($lastNonInteractive) { + $lastSignIn = $lastNonInteractive + } + + # Check if inactive + $isInactive = (-not $lastSignIn) -or ([DateTime]$lastSignIn -le $Lookup) + # Skip users who have never signed in by default (unless IncludeNeverSignedIn is specified) + if (-not $IncludeNeverSignedIn -and -not $lastSignIn) { continue } + # Only process inactive users + if ($isInactive) { + if (-not $lastSignIn) { + $Message = 'User {0} has never signed in but still has a license assigned.' -f $user.UserPrincipalName + } else { + $daysSinceSignIn = [Math]::Round(((Get-Date) - [DateTime]$lastSignIn).TotalDays) + $Message = 'User {0} has been inactive for {1} days but still has a license assigned. Last sign-in: {2}' -f $user.UserPrincipalName, $daysSinceSignIn, $lastSignIn + } + + [PSCustomObject]@{ + UserPrincipalName = $user.UserPrincipalName + Id = $user.id + lastSignIn = $lastSignIn + Message = $Message + Tenant = $TenantFilter + } + } + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } catch {} + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Failed to check inactive users with licenses for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 new file mode 100644 index 000000000000..684f6bd0fc87 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1 @@ -0,0 +1,144 @@ +function Get-CIPPAlertIntunePolicyConflicts { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + # Normalize JSON/string input to object when possible + if ($InputValue -is [string]) { + try { + if ($InputValue.Trim().StartsWith('{')) { + $InputValue = $InputValue | ConvertFrom-Json -ErrorAction Stop + } + } catch { + # Leave as-is if parsing fails + } + } + + $Config = [ordered]@{ + AlertEachIssue = $false # align with AlertEachAdmin convention (false = aggregated) + IncludePolicies = $true + IncludeApplications = $true + AlertConflicts = $true + AlertErrors = $true + } + + if ($InputValue -is [hashtable] -or $InputValue -is [pscustomobject]) { + # Primary key follows AlertEach* convention; legacy Aggregate supported (true == aggregated) + if ($null -ne $InputValue.AlertEachIssue) { $Config.AlertEachIssue = [bool]$InputValue.AlertEachIssue } + if ($null -ne $InputValue.Aggregate) { $Config.AlertEachIssue = -not [bool]$InputValue.Aggregate } + + $Config.IncludePolicies = if ($null -ne $InputValue.IncludePolicies) { [bool]$InputValue.IncludePolicies } else { $Config.IncludePolicies } + $Config.IncludeApplications = if ($null -ne $InputValue.IncludeApplications) { [bool]$InputValue.IncludeApplications } else { $Config.IncludeApplications } + $Config.AlertConflicts = if ($null -ne $InputValue.AlertConflicts) { [bool]$InputValue.AlertConflicts } else { $Config.AlertConflicts } + $Config.AlertErrors = if ($null -ne $InputValue.AlertErrors) { [bool]$InputValue.AlertErrors } else { $Config.AlertErrors } + } elseif ($InputValue -is [bool]) { + # Back-compat for boolean toggle used as Aggregate previously + $Config.AlertEachIssue = -not [bool]$InputValue + } + + if (-not $Config.IncludePolicies -and -not $Config.IncludeApplications) { + return + } + + $AlertableStatuses = @() + if ($Config.AlertErrors) { $AlertableStatuses += 'error', 'failed' } + if ($Config.AlertConflicts) { $AlertableStatuses += 'conflict' } + + if (-not $AlertableStatuses) { + return + } + + $HasLicense = Test-CIPPStandardLicense -StandardName 'IntunePolicyStatus' -TenantFilter $TenantFilter -RequiredCapabilities @( + 'INTUNE_A', + 'MDM_Services', + 'EMS', + 'SCCM', + 'MICROSOFTINTUNEPLAN1' + ) + + if (-not $HasLicense) { + return + } + + $Issues = @() + + if ($Config.IncludePolicies) { + try { + $ManagedDevices = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices?`$select=id,deviceName,userPrincipalName&`$expand=deviceConfigurationStates(`$select=displayName,state,settingStates)" -tenantid $TenantFilter + + foreach ($Device in $ManagedDevices) { + $PolicyStates = $Device.deviceConfigurationStates | Where-Object { $_.state -and ($AlertableStatuses -contains $_.state) } + foreach ($State in $PolicyStates) { + $Issues += [PSCustomObject]@{ + Message = "Policy '$($State.displayName)' is $($State.state) on device '$($Device.deviceName)' for $($Device.userPrincipalName)." + Tenant = $TenantFilter + Type = 'Policy' + PolicyName = $State.displayName + IssueStatus = $State.state + DeviceName = $Device.deviceName + UserPrincipalName = $Device.userPrincipalName + DeviceId = $Device.id + } + } + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to query Intune policy states: $(Get-NormalizedError -message $_.Exception.Message)" + } + } + + if ($Config.IncludeApplications) { + try { + $Applications = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps?`$select=id,displayName&`$expand=deviceStatuses(`$select=installState,deviceName,userPrincipalName,deviceId)" -tenantid $TenantFilter + + foreach ($App in $Applications) { + $BadStatuses = $App.deviceStatuses | Where-Object { + $_.installState -and ($AlertableStatuses -contains $_.installState.ToLowerInvariant()) + } + + foreach ($Status in $BadStatuses) { + $Issues += [PSCustomObject]@{ + Message = "App '$($App.displayName)' install is $($Status.installState) on device '$($Status.deviceName)' for $($Status.userPrincipalName)." + Tenant = $TenantFilter + Type = 'Application' + AppName = $App.displayName + IssueStatus = $Status.installState + DeviceName = $Status.deviceName + UserPrincipalName = $Status.userPrincipalName + DeviceId = $Status.deviceId + } + } + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Failed to query Intune application states: $(Get-NormalizedError -message $_.Exception.Message)" + } + } + + if (-not $Issues) { + return + } + + if (-not $Config.AlertEachIssue) { + $PolicyCount = ($Issues | Where-Object { $_.Type -eq 'Policy' }).Count + $AppCount = ($Issues | Where-Object { $_.Type -eq 'Application' }).Count + + $AlertData = @([PSCustomObject]@{ + Message = "Found $PolicyCount policy issues and $AppCount application issues in Intune." + Tenant = $TenantFilter + PolicyIssues = $PolicyCount + AppIssues = $AppCount + Issues = $Issues + }) + } else { + $AlertData = $Issues + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 new file mode 100644 index 000000000000..0c44125c4b03 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicenseAssignmentErrors.ps1 @@ -0,0 +1,101 @@ +function Get-CIPPAlertLicenseAssignmentErrors { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + $TenantFilter, + [Alias('input')] + $InputValue + ) + + # Define error code translations for human-readable messages + $ErrorTranslations = @( + @{ + ErrorCode = 'CountViolation' + Description = 'Not enough licenses available - the organization has exceeded the number of available licenses for this SKU' + }, + @{ + ErrorCode = 'MutuallyExclusiveViolation' + Description = 'Conflicting licenses assigned - this license cannot be assigned alongside another license the user already has' + }, + @{ + ErrorCode = 'ProhibitedInUsageLocationViolation' + Description = "License not available in user's location - this license cannot be assigned to users in the user's current usage location" + }, + @{ + ErrorCode = 'UniquenessViolation' + Description = 'Duplicate license assignment - this license can only be assigned once per user' + }, + @{ + ErrorCode = 'Unknown' + Description = 'Unknown license assignment error - an unspecified error occurred during license assignment' + } + ) + + try { + # Get all users with license assignment states from Graph API + $Users = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$select=id,userPrincipalName,displayName,licenseAssignmentStates&`$top=999" -tenantid $TenantFilter + + # Filter users who have license assignment violations + $UsersWithViolations = $Users | Where-Object { + $_.licenseAssignmentStates -and + ($_.licenseAssignmentStates | Where-Object { + $_.error -and ( + $_.error -like '*CountViolation*' -or + $_.error -like '*MutuallyExclusiveViolation*' -or + $_.error -like '*ProhibitedInUsageLocationViolation*' -or + $_.error -like '*UniquenessViolation*' -or + $_.error -like '*Unknown*' + ) + }) + } + + # Build alert messages for users with violations + $LicenseAssignmentErrors = foreach ($User in $UsersWithViolations) { + $ViolationErrors = $User.licenseAssignmentStates | Where-Object { + $_.error -and ( + $_.error -like '*CountViolation*' -or + $_.error -like '*MutuallyExclusiveViolation*' -or + $_.error -like '*ProhibitedInUsageLocationViolation*' -or + $_.error -like '*UniquenessViolation*' -or + $_.error -like '*Unknown*' + ) + } + + foreach ($Violation in $ViolationErrors) { + # Find matching error translation + $ErrorTranslation = $ErrorTranslations | Where-Object { $Violation.error -like "*$($_.ErrorCode)*" } | Select-Object -First 1 + $HumanReadableError = if ($ErrorTranslation) { + $ErrorTranslation.Description + } else { + "Unknown license assignment error: $($Violation.error)" + } + + $PrettyName = Convert-SKUname -SkuID $Violation.skuId + + $Message = "$($User.userPrincipalName): $HumanReadableError (License: $PrettyName)" + [PSCustomObject]@{ + Message = $Message + UserPrincipalName = $User.userPrincipalName + Error = $HumanReadableError + LicenseName = $PrettyName + SkuId = $Violation.skuId + DisplayName = $User.displayName + Id = $User.id + Tenant = $TenantFilter + } + } + } + + # If errors are found, write alert + if ($LicenseAssignmentErrors) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $LicenseAssignmentErrors + } + + } catch { + Write-LogMessage -message "Failed to check license assignment errors: $($_.exception.message)" -API 'License Assignment Alerts' -tenant $TenantFilter -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicensedUsersWithRoles.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicensedUsersWithRoles.ps1 new file mode 100644 index 000000000000..d97625653c8e --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLicensedUsersWithRoles.ps1 @@ -0,0 +1,36 @@ +function Get-CIPPAlertLicensedUsersWithRoles { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + # Get all users with assigned licenses + $LicensedUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=userPrincipalName,assignedLicenses,displayName" -tenantid $TenantFilter | Where-Object { $_.assignedLicenses -and $_.assignedLicenses.Count -gt 0 } + if (-not $LicensedUsers -or $LicensedUsers.Count -eq 0) { + Write-Information "No licensed users found for tenant $TenantFilter" + return $true + } + # Get all directory roles with their members + $DirectoryRoles = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles?`$expand=members" -tenantid $TenantFilter + if (-not $DirectoryRoles -or $DirectoryRoles.Count -eq 0) { + Write-Information "No directory roles found for tenant $TenantFilter" + return + } + $UsersToAlertOn = $LicensedUsers | Where-Object { $_.userPrincipalName -in $DirectoryRoles.members.userPrincipalName } + + + if ($UsersToAlertOn.Count -gt 0) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $UsersToAlertOn + } else { + Write-Information "No licensed users with roles found for tenant $TenantFilter" + } + + +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 new file mode 100644 index 000000000000..e5284435bcdc --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowDomainScore.ps1 @@ -0,0 +1,29 @@ +function Get-CIPPAlertLowDomainScore { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + $TenantFilter, + [Alias('input')] + [ValidateRange(0, 100)] + [int]$InputValue = 70 + ) + + $DomainData = Get-CIPPDomainAnalyser -TenantFilter $TenantFilter + $LowScoreDomains = $DomainData | Where-Object { $_.ScorePercentage -lt $InputValue -and $_.ScorePercentage -ne '' } | ForEach-Object { + [PSCustomObject]@{ + Message = "$($_.Domain): Domain security score is $($_.ScorePercentage)%, which is below the threshold of $InputValue%. Issues: $($_.ScoreExplanation)" + Domain = $_.Domain + ScorePercentage = $_.ScorePercentage + ScoreExplanation = $_.ScoreExplanation + Tenant = $TenantFilter + } + } + + if ($LowScoreDomains) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $LowScoreDomains + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowTenantAlignment.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowTenantAlignment.ps1 new file mode 100644 index 000000000000..bc8c5a04672d --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertLowTenantAlignment.ps1 @@ -0,0 +1,52 @@ +function Get-CIPPAlertLowTenantAlignment { + <# + .SYNOPSIS + Alert for low tenant alignment percentage + .DESCRIPTION + This alert checks tenant alignment scores against standards templates and alerts when the alignment percentage falls below the specified threshold. + .PARAMETER TenantFilter + The tenant to check alignment for + .PARAMETER InputValue + The minimum alignment percentage threshold (0-100). Default is 80. + .FUNCTIONALITY + Entrypoint + .EXAMPLE + Get-CIPPAlertLowTenantAlignment -TenantFilter "contoso.onmicrosoft.com" -InputValue 75 + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + $TenantFilter, + [Alias('input')] + [ValidateRange(0, 100)] + [int]$InputValue = 99 + ) + + try { + # Get tenant alignment data using the new function + $AlignmentData = Get-CIPPTenantAlignment -TenantFilter $TenantFilter + + if (-not $AlignmentData) { + Write-AlertMessage -tenant $TenantFilter -message "No alignment data found for tenant $TenantFilter. This may indicate no standards templates are configured or applied to this tenant." + return + } + + $LowAlignmentAlerts = $AlignmentData | Where-Object { $_.AlignmentScore -lt $InputValue } | ForEach-Object { + [PSCustomObject]@{ + TenantFilter = $_.TenantFilter + StandardName = $_.StandardName + StandardId = $_.StandardId + AlignmentScore = $_.AlignmentScore + LicenseMissingPercentage = $_.LicenseMissingPercentage + LatestDataCollection = $_.LatestDataCollection + } + } + + if ($LowAlignmentAlerts.Count -gt 0) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $LowAlignmentAlerts + } + + } catch { + Write-AlertMessage -tenant $TenantFilter -message "Could not get tenant alignment data for $TenantFilter`: $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 new file mode 100644 index 000000000000..32170d84b9d0 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAdmins.ps1 @@ -0,0 +1,44 @@ +function Get-CIPPAlertMFAAdmins { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $CAPolicies = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -ErrorAction Stop) + foreach ($Policy in $CAPolicies) { + if ($policy.grantControls.customAuthenticationFactors -eq 'RequireDuoMfa') { + $DuoActive = $true + } + } + if (!$DuoActive) { + $Users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq true and isMfaRegistered eq false and userType eq 'member'&`$select=id,userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | + Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' } + if ($Users.UserPrincipalName) { + $AlertData = foreach ($user in $Users) { + [PSCustomObject]@{ + Message = "Admin user $($user.userDisplayName) ($($user.userPrincipalName)) does not have MFA registered." + UserPrincipalName = $user.userPrincipalName + DisplayName = $user.userDisplayName + Id = $user.id + LastUpdated = $user.lastUpdatedDateTime + Tenant = $TenantFilter + } + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } + } else { + Write-LogMessage -message 'Potentially using Duo for MFA, could not check MFA status for Admins with 100% accuracy' -API 'MFA Alerts - Informational' -tenant $TenantFilter -sev Info + } + } catch { + Write-LogMessage -message "Failed to check MFA status for Admins: $($_.exception.message)" -API 'MFA Alerts - Informational' -tenant $TenantFilter -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 new file mode 100644 index 000000000000..32f14ddc1947 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMFAAlertUsers.ps1 @@ -0,0 +1,33 @@ +function Get-CIPPAlertMFAAlertUsers { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + + $Users = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?`$top=999&filter=IsAdmin eq false and isMfaRegistered eq false and userType eq 'member'&`$select=userDisplayName,userPrincipalName,lastUpdatedDateTime,isMfaRegistered,IsAdmin" -tenantid $($TenantFilter) -AsApp $true | + Where-Object { $_.userDisplayName -ne 'On-Premises Directory Synchronization Service Account' -and $_.userPrincipalName -notmatch '^package_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}@' } + if ($Users) { + $AlertData = foreach ($user in $Users) { + [PSCustomObject]@{ + UserPrincipalName = $user.userPrincipalName + DisplayName = $user.userDisplayName + LastUpdated = $user.lastUpdatedDateTime + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } + + } catch { + Write-LogMessage -message "Failed to check MFA status for all users: $($_.exception.message)" -API 'MFA Alerts - Informational' -tenant $TenantFilter -sev Info + } + +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 new file mode 100644 index 000000000000..f2c268a4ed75 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 @@ -0,0 +1,48 @@ +function Get-CIPPAlertMXRecordChanged { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + $TenantFilter, + [Alias('input')] + $InputValue + ) + + try { + $DomainData = Get-CIPPDomainAnalyser -TenantFilter $TenantFilter + $CacheTable = Get-CippTable -tablename 'CacheMxRecords' + $PreviousResults = Get-CIPPAzDataTableEntity @CacheTable -Filter "PartitionKey eq '$TenantFilter'" + + $ChangedDomains = foreach ($Domain in $DomainData) { + $PreviousDomain = $PreviousResults | Where-Object { $_.Domain -eq $Domain.Domain } + $PreviousRecords = $PreviousDomain.ActualMXRecords -split ',' | Sort-Object + $CurrentRecords = $Domain.ActualMXRecords.Hostname | Sort-Object + if ($PreviousDomain -and $PreviousRecords -ne $CurrentRecords) { + "$($Domain.Domain): MX records changed from [$($PreviousRecords -join ', ')] to [$($CurrentRecords -join ', ')]" + } + } + + if ($ChangedDomains) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $ChangedDomains + } + + # Update cache with current data + foreach ($Domain in $DomainData) { + $CurrentRecords = $Domain.ActualMXRecords.Hostname | Sort-Object + $CacheEntity = @{ + PartitionKey = [string]$TenantFilter + RowKey = [string]$Domain.Domain + Domain = [string]$Domain.Domain + ActualMXRecords = [string]($CurrentRecords -join ',') + LastRefresh = [string]$Domain.LastRefresh + MailProvider = [string]$Domain.MailProvider + } + Add-CIPPAzDataTableEntity @CacheTable -Entity $CacheEntity -Force + } + } catch { + Write-LogMessage -message "Failed to check MX record changes: $($_.Exception.Message)" -API 'MX Record Alert' -tenant $TenantFilter -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 new file mode 100644 index 000000000000..d6899a8af1f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 @@ -0,0 +1,57 @@ + +function Get-CIPPAlertNewAppApproval { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter, + $Headers + ) + + try { + $Approvals = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests?`$top=100&`$filter=userConsentRequests/any (u:u/status eq 'InProgress')" -tenantid $TenantFilter + + if ($Approvals.count -gt 0) { + $TenantGUID = (Get-Tenants -TenantFilter $TenantFilter -SkipDomains).customerId + $AlertData = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($App in $Approvals) { + $userConsentRequests = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/identityGovernance/appConsent/appConsentRequests/$($App.id)/userConsentRequests" -tenantid $TenantFilter + + $userConsentRequests | ForEach-Object { + $consentUrl = if ($App.consentType -eq 'Static') { + # if something is going wrong here you've probably stumbled on a fourth variation - rvdwegen + "https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($App.appId)&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } elseif ($App.pendingScopes.displayName) { + "https://login.microsoftonline.com/$($TenantFilter)/v2.0/adminConsent?client_id=$($App.appId)&scope=$($App.pendingScopes.displayName -Join(' '))&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } else { + "https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($App.appId)&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } + + $Message = [PSCustomObject]@{ + RequestId = $_.id + AppName = $App.appDisplayName + RequestUser = $_.createdBy.user.userPrincipalName + Reason = $_.reason + RequestDate = $_.createdDateTime + Status = $_.status # Will always be InProgress as we filter to only get these but this will reduce confusion when an alert is generated + AppId = $App.appId + Scopes = ($App.pendingScopes.displayName -join ', ') + ConsentURL = $consentUrl + Tenant = $TenantFilter + TenantId = $TenantGUID + } + $AlertData.Add($Message) + } + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 new file mode 100644 index 000000000000..c0691da7fe0d --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRiskyUsers.ps1 @@ -0,0 +1,74 @@ +function Get-CIPPAlertNewRiskyUsers { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $TenantFilter + ) + $Deltatable = Get-CIPPTable -Table DeltaCompare + try { + # Check if tenant has P2 capabilities + $Capabilities = Get-CIPPTenantCapabilities -TenantFilter $TenantFilter + if (-not ($Capabilities.AAD_PREMIUM_P2 -eq $true)) { + Write-AlertMessage -tenant $($TenantFilter) -message 'Tenant does not have Azure AD Premium P2 licensing required for risky users detection' + return + } + + $Filter = "PartitionKey eq 'RiskyUsersDelta' and RowKey eq '{0}'" -f $TenantFilter + $RiskyUsersDelta = (Get-CIPPAzDataTableEntity @Deltatable -Filter $Filter).delta | ConvertFrom-Json -ErrorAction SilentlyContinue + + # Get current risky users with more detailed information + $NewDelta = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskyUsers' -tenantid $TenantFilter) | Select-Object userPrincipalName, riskLevel, riskState, riskDetail, riskLastUpdatedDateTime, isProcessing, history + + $NewDeltatoSave = $NewDelta | ConvertTo-Json -Depth 10 -Compress -ErrorAction SilentlyContinue | Out-String + $DeltaEntity = @{ + PartitionKey = 'RiskyUsersDelta' + RowKey = [string]$TenantFilter + delta = "$NewDeltatoSave" + } + Add-CIPPAzDataTableEntity @DeltaTable -Entity $DeltaEntity -Force + + if ($RiskyUsersDelta) { + $AlertData = $NewDelta | Where-Object { $_.userPrincipalName -notin $RiskyUsersDelta.userPrincipalName } | ForEach-Object { + $RiskHistory = if ($_.history) { + $latestHistory = $_.history | Sort-Object -Property riskLastUpdatedDateTime -Descending | Select-Object -First 1 + "Previous Risk Level: $($latestHistory.riskLevel), Last Updated: $($latestHistory.riskLastUpdatedDateTime)" + } else { + 'No previous risk history' + } + + # Map risk level to severity + $Severity = switch ($_.riskLevel) { + 'high' { 'Critical' } + 'medium' { 'Warning' } + 'low' { 'Info' } + default { 'Info' } + } + + [PSCustomObject]@{ + Message = "New risky user detected: $($_.userPrincipalName)" + Details = @{ + RiskLevel = $_.riskLevel + RiskState = $_.riskState + RiskDetail = $_.riskDetail + LastUpdated = $_.riskLastUpdatedDateTime + IsProcessing = $_.isProcessing + RiskHistory = $RiskHistory + Severity = $Severity + } + Tenant = $TenantFilter + } + } + + if ($AlertData) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get risky users for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 new file mode 100644 index 000000000000..68167632b5b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewRole.ps1 @@ -0,0 +1,48 @@ +function Get-CIPPAlertNewRole { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + $Deltatable = Get-CIPPTable -Table DeltaCompare + try { + $Filter = "PartitionKey eq 'AdminDelta' and RowKey eq '{0}'" -f $TenantFilter + $AdminDelta = (Get-CIPPAzDataTableEntity @Deltatable -Filter $Filter).delta | ConvertFrom-Json -ErrorAction SilentlyContinue + $NewDelta = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter) | Select-Object displayName, Members | ForEach-Object { + @{ + GroupName = $_.displayName + Members = $_.Members.UserPrincipalName + } + } + $NewDeltatoSave = $NewDelta | ConvertTo-Json -Depth 10 -Compress -ErrorAction SilentlyContinue | Out-String + $DeltaEntity = @{ + PartitionKey = 'AdminDelta' + RowKey = [string]$TenantFilter + delta = "$NewDeltatoSave" + } + Add-CIPPAzDataTableEntity @DeltaTable -Entity $DeltaEntity -Force + + if ($AdminDelta) { + $AlertData = foreach ($Group in $NewDelta) { + $OldDelta = $AdminDelta | Where-Object { $_.GroupName -eq $Group.GroupName } + $Group.members | Where-Object { $_ -notin $OldDelta.members } | ForEach-Object { + [PSCustomObject]@{ + Message = "$_ has been added to the $($Group.GroupName) Role" + User = $_ + Role = $Group.GroupName + Tenant = $TenantFilter + } + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get get role changes for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 new file mode 100644 index 000000000000..48ae1dabff57 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNoCAConfig.ps1 @@ -0,0 +1,36 @@ +function Get-CIPPAlertNoCAConfig { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Only consider CA available when a SKU that grants it has enabled seats (> 0) + $SubscribedSkus = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/subscribedSkus?`$select=prepaidUnits,servicePlans" -tenantid $TenantFilter -ErrorAction Stop + $CAAvailable = foreach ($sku in $SubscribedSkus) { + if ([int]$sku.prepaidUnits.enabled -gt 0) { $sku.servicePlans } + } + + if (('AAD_PREMIUM' -in $CAAvailable.servicePlanName) -or ('AAD_PREMIUM_P2' -in $CAAvailable.servicePlanName)) { + $CAPolicies = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies' -tenantid $TenantFilter) + if (!$CAPolicies.id) { + $AlertData = [PSCustomObject]@{ + Message = 'Conditional Access is available, but no policies could be found.' + Tenant = $TenantFilter + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Conditional Access Config Alert: Error occurred: $(Get-NormalizedError -message $_.Exception.message)" + } + +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 new file mode 100644 index 000000000000..b39ea94d9a48 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 @@ -0,0 +1,52 @@ +function Get-CIPPAlertOneDriveQuota { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + $TenantFilter, + [Alias('input')] + [ValidateRange(0, 100)] + [int]$InputValue = 90 + ) + + try { + $Usage = New-GraphGetRequest -tenantid $TenantFilter -uri "https://graph.microsoft.com/beta/reports/getOneDriveUsageAccountDetail(period='D7')?`$format=application/json&`$top=999" -AsApp $true + if (!$Usage) { + return + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-AlertMessage -tenant $($TenantFilter) -message "OneDrive quota Alert: Unable to get OneDrive usage: Error occurred: $ErrorMessage" + return + } + + #Check if the OneDrive quota is over the threshold + $OverQuota = $Usage | ForEach-Object { + if ($_.StorageUsedInBytes -eq 0 -or $_.storageAllocatedInBytes -eq 0) { return } + try { + $UsagePercent = [math]::Round(($_.storageUsedInBytes / $_.storageAllocatedInBytes) * 100) + } catch { $UsagePercent = 100 } + + if ($UsagePercent -gt $InputValue) { + $GBLeft = [math]::Round(($_.storageAllocatedInBytes - $_.storageUsedInBytes) / 1GB) + [PSCustomObject]@{ + Message = "$($_.ownerPrincipalName): OneDrive is $UsagePercent% full. OneDrive has $($GBLeft)GB storage left" + Owner = $_.ownerPrincipalName + UsagePercent = $UsagePercent + GBLeft = $GBLeft + StorageUsedInBytes = $_.storageUsedInBytes + StorageAllocatedInBytes = $_.storageAllocatedInBytes + Tenant = $TenantFilter + } + } + + } + + #If the quota is over the threshold, send an alert + if ($OverQuota) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $OverQuota + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 new file mode 100644 index 000000000000..69e4f0254a84 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOverusedLicenses.ps1 @@ -0,0 +1,44 @@ +function Get-CIPPAlertOverusedLicenses { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + + try { + $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses + $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable + $AlertData = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $TenantFilter | ForEach-Object { + $skuid = $_ + foreach ($sku in $skuid) { + if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } + $PrettyName = Convert-SKUname -SkuID $sku.skuId + if (!$PrettyName) { $PrettyName = $sku.skuPartNumber } + if ($sku.prepaidUnits.enabled - $sku.consumedUnits -lt 0) { + [PSCustomObject]@{ + Message = "$PrettyName has Overused licenses. Using $($sku.consumedUnits) of $($sku.prepaidUnits.enabled)." + LicenseName = $PrettyName + SkuId = $sku.skuId + SkuPartNumber = $sku.skuPartNumber + ConsumedUnits = $sku.consumedUnits + EnabledUnits = $sku.prepaidUnits.enabled + Tenant = $TenantFilter + } + } + } + } + if ($AlertData) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Overused Licenses Alert Error occurred: $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 new file mode 100644 index 000000000000..56182ece6f32 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuarantineReleaseRequests.ps1 @@ -0,0 +1,56 @@ +function Get-CIPPAlertQuarantineReleaseRequests { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + $HasLicense = Test-CIPPStandardLicense -StandardName 'QuarantineReleaseRequests' -TenantFilter $TenantFilter -RequiredCapabilities @( + 'EXCHANGE_S_STANDARD', + 'EXCHANGE_S_ENTERPRISE', + 'EXCHANGE_S_STANDARD_GOV', + 'EXCHANGE_S_ENTERPRISE_GOV', + 'EXCHANGE_LITE' + ) + + if (-not $HasLicense) { + return + } + + try { + $RequestedReleases = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-QuarantineMessage' -cmdParams @{ PageSize = 1000; ReleaseStatus = 'Requested' } -ErrorAction Stop | Select-Object -ExcludeProperty *data.type* + + if ($RequestedReleases) { + # Get the CIPP URL for the Quarantine link + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPUrl = 'https://{0}' -f $CippConfig.Value + + $AlertData = foreach ($Message in $RequestedReleases) { + [PSCustomObject]@{ + Identity = $Message.Identity + MessageId = $Message.MessageId + Subject = $Message.Subject + SenderAddress = $Message.SenderAddress + RecipientAddress = $Message.RecipientAddress -join '; ' + Type = $Message.Type + PolicyName = $Message.PolicyName + ReleaseStatus = $Message.ReleaseStatus + ReceivedTime = $Message.ReceivedTime + QuarantineViewUrl = "$CIPPUrl/email/administration/quarantine?tenantFilter=$TenantFilter" + Tenant = $TenantFilter + } + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + Write-AlertMessage -tenant $TenantFilter -message "QuarantineReleaseRequests: $(Get-NormalizedError -message $_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 new file mode 100644 index 000000000000..89d7600aded0 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 @@ -0,0 +1,46 @@ +function Get-CIPPAlertQuotaUsed { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getMailboxUsageDetail(period='D7')?`$format=application/json" -tenantid $TenantFilter + } catch { + return + } + $OverQuota = $AlertData | ForEach-Object { + if ([string]::IsNullOrEmpty($_.StorageUsedInBytes) -or [string]::IsNullOrEmpty($_.prohibitSendReceiveQuotaInBytes) -or $_.StorageUsedInBytes -eq 0 -or $_.prohibitSendReceiveQuotaInBytes -eq 0) { return } + try { + $PercentLeft = [math]::round(($_.storageUsedInBytes / $_.prohibitSendReceiveQuotaInBytes) * 100) + } catch { $PercentLeft = 100 } + try { + if ([int]$InputValue -gt 0) { + $Value = [int]$InputValue + } else { + $Value = 90 + } + } catch { + $Value = 90 + } + if ($PercentLeft -gt $Value) { + [PSCustomObject]@{ + Message = "$($_.userPrincipalName): Mailbox is more than $($value)% full. Mailbox is $PercentLeft% full" + Owner = $_.userPrincipalName + RecipientType = $_.recipientType + UsagePercent = $PercentLeft + StorageUsedInBytes = $_.storageUsedInBytes + ProhibitSendReceiveQuotaInBytes = $_.prohibitSendReceiveQuotaInBytes + Tenant = $TenantFilter + } + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $OverQuota +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 new file mode 100644 index 000000000000..6205c9b6ac40 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertReportOnlyCA.ps1 @@ -0,0 +1,42 @@ +function Get-CIPPAlertReportOnlyCA { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Only consider CA available when a SKU that grants it has enabled seats (> 0) + $SubscribedSkus = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/subscribedSkus?`$select=prepaidUnits,servicePlans" -tenantid $TenantFilter -ErrorAction Stop + $CAAvailable = foreach ($sku in $SubscribedSkus) { + if ([int]$sku.prepaidUnits.enabled -gt 0) { $sku.servicePlans } + } + + if (('AAD_PREMIUM' -in $CAAvailable.servicePlanName) -or ('AAD_PREMIUM_P2' -in $CAAvailable.servicePlanName)) { + $CAPolicies = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -ErrorAction Stop) + + # Filter for policies in report-only mode + $ReportOnlyPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabledForReportingButNotEnforced' } + + if ($ReportOnlyPolicies) { + $AlertData = foreach ($Policy in $ReportOnlyPolicies) { + [PSCustomObject]@{ + PolicyNames = $Policy.displayName + State = $Policy.state + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Report-Only CA Alert: Error occurred: $(Get-NormalizedError -message $_.Exception.message)" + } + +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 new file mode 100644 index 000000000000..5e3992a1a14e --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertRestrictedUsers.ps1 @@ -0,0 +1,42 @@ +function Get-CIPPAlertRestrictedUsers { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + $BlockedUsers = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-BlockedSenderAddress' + + if ($BlockedUsers) { + $AlertData = foreach ($User in $BlockedUsers) { + # Parse the reason to make it more readable + $ReasonParts = $User.Reason -split ';' + $LimitType = ($ReasonParts | Where-Object { $_ -like 'ExceedingLimitType=*' }) -replace 'ExceedingLimitType=', '' + $InternalCount = ($ReasonParts | Where-Object { $_ -like 'InternalRecipientCountToday=*' }) -replace 'InternalRecipientCountToday=', '' + $ExternalCount = ($ReasonParts | Where-Object { $_ -like 'ExternalRecipientCountToday=*' }) -replace 'ExternalRecipientCountToday=', '' + + [PSCustomObject]@{ + SenderAddress = $User.SenderAddress + Message = "User $($User.SenderAddress) is restricted from sending email. Block type: $($LimitType ?? 'Unknown'). Created: $($User.CreatedDatetime)" + BlockType = if ($LimitType) { "$LimitType recipient limit exceeded" } else { 'Email sending limit exceeded' } + TemporaryBlock = $User.TemporaryBlock + InternalCount = $InternalCount + ExternalCount = $ExternalCount + CreatedDatetime = $User.CreatedDatetime + Reason = $User.Reason + Tenant = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + # Write-LogMessage -tenant $($TenantFilter) -message "Could not get restricted users for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -severity 'Error' -API 'Get-CIPPAlertRestrictedUsers' -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsDisabled.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsDisabled.ps1 new file mode 100644 index 000000000000..104cf17e03fa --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsDisabled.ps1 @@ -0,0 +1,35 @@ +function Get-CIPPAlertSecDefaultsDisabled { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Check if Security Defaults is disabled + $SecDefaults = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $TenantFilter) + + if ($SecDefaults.isEnabled -eq $false) { + # Security Defaults is disabled, now check if there are any CA policies + $CAPolicies = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies' -tenantid $TenantFilter) + + if (!$CAPolicies -or $CAPolicies.Count -eq 0) { + # Security Defaults is off AND no CA policies exist + $AlertData = [PSCustomObject]@{ + Message = 'Security Defaults is disabled and no Conditional Access policies are configured. This tenant has no baseline security protection.' + Tenant = $TenantFilter + } + + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Security Defaults Disabled Alert: Error occurred: $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 new file mode 100644 index 000000000000..6832a61a216f --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSecDefaultsUpsell.ps1 @@ -0,0 +1,33 @@ +function Get-CIPPAlertSecDefaultsUpsell { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + try { + $SecDefaults = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $TenantFilter) + if ($SecDefaults.isEnabled -eq $false -and $SecDefaults.securityDefaultsUpsell.action -in @('autoEnable', 'autoEnabledNotify')) { + $AlertData = [PSCustomObject]@{ + Message = ('Security Defaults will be automatically enabled on {0}' -f $SecDefaults.securityDefaultsUpsell.dueDateTime) + EnablementDate = $SecDefaults.securityDefaultsUpsell.dueDateTime + Action = $SecDefaults.securityDefaultsUpsell.action + Tenant = $TenantFilter + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } + } catch {} + + } catch { + # Error handling + } +} + diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 new file mode 100644 index 000000000000..9f969037d7b8 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSharepointQuota.ps1 @@ -0,0 +1,40 @@ +function Get-CIPPAlertSharepointQuota { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $extraHeaders = @{ + 'Accept' = 'application/json' + } + $sharepointQuota = (New-GraphGetRequest -extraHeaders $extraHeaders -scope "$($SharePointInfo.AdminUrl)/.default" -tenantid $TenantFilter -uri "$($SharePointInfo.AdminUrl)/_api/StorageQuotas()?api-version=1.3.2") + } catch { + return + } + if ($sharepointQuota) { + try { + if ([int]$InputValue -gt 0) { $Value = [int]$InputValue } else { $Value = 90 } + } catch { + $Value = 90 + } + $UsedStoragePercentage = [int](($sharepointQuota.GeoUsedStorageMB / $sharepointQuota.TenantStorageMB) * 100) + if ($UsedStoragePercentage -gt $Value) { + $AlertData = [PSCustomObject]@{ + UsedStoragePercentage = $UsedStoragePercentage + StorageUsed = ([math]::Round($sharepointQuota.GeoUsedStorageMB / 1024, 2)) + StorageQuota = ([math]::Round($sharepointQuota.TenantStorageMB / 1024, 2)) + AlertQuotaThreshold = $Value + Tenant = $TenantFilter + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 new file mode 100644 index 000000000000..8edc398ff3cc --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSmtpAuthSuccess.ps1 @@ -0,0 +1,32 @@ +function Get-CIPPAlertSmtpAuthSuccess { + <# + .FUNCTIONALITY + Entrypoint – Check sign-in logs for SMTP AUTH with success status + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Graph API endpoint for sign-ins + $uri = "https://graph.microsoft.com/v1.0/auditLogs/signIns?`$filter=clientAppUsed eq 'SMTP' and status/errorCode eq 0" + + # Call Graph API for the given tenant + $SignIns = New-GraphGetRequest -uri $uri -tenantid $TenantFilter + + # Select only the properties you care about + $AlertData = $SignIns.value | Select-Object userPrincipalName, createdDateTime, clientAppUsed, ipAddress, status, @{Name = 'Tenant'; Expression = { $TenantFilter } } + + # Write results into the alert pipeline + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch { + # Suppress errors if no data returned + # Uncomment if you want explicit error logging + # Write-AlertMessage -tenant $($TenantFilter) -message "Failed to query SMTP AUTH sign-ins for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 new file mode 100644 index 000000000000..f446ec2e9161 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertSoftDeletedMailboxes.ps1 @@ -0,0 +1,29 @@ +function Get-CIPPAlertSoftDeletedMailboxes { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + $Select = 'ExchangeGuid,ArchiveGuid,WhenSoftDeleted,UserPrincipalName,IsInactiveMailbox' + + try { + $SoftDeletedMailBoxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'get-mailbox' -cmdParams @{SoftDeletedMailbox = $true } -Select $Select | + Select-Object ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, IsInactiveMailbox, @{ Name = 'Tenant'; Expression = { $TenantFilter } } + + # Filter out the mailboxes where IsInactiveMailbox is $true + $AlertData = $SoftDeletedMailBoxes | Where-Object { $_.IsInactiveMailbox -ne $true } + + # Write the alert trace with the filtered data + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Failed to check for soft deleted mailboxes in $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 new file mode 100644 index 000000000000..163cfa782469 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertTERRL.ps1 @@ -0,0 +1,40 @@ +function Get-CIPPAlertTERRL { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + # Set threshold with fallback to 80% + $Threshold = if ([string]::IsNullOrWhiteSpace($InputValue)) { 80 } else { [int]$InputValue } + + # Get TERRL status + $TerrlStatus = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-LimitsEnforcementStatus' + + if ($TerrlStatus) { + $UsagePercentage = [math]::Round(($TerrlStatus.ObservedValue / $TerrlStatus.Threshold) * 100, 2) + + if ($UsagePercentage -gt $Threshold) { + $AlertData = [PSCustomObject]@{ + UsagePercentage = $UsagePercentage + CurrentVolume = $TerrlStatus.ObservedValue + ThresholdLimit = $TerrlStatus.Threshold + EnforcementEnabled = $TerrlStatus.EnforcementEnabled + Verdict = $TerrlStatus.Verdict + Message = 'Tenant is at {0}% of their TERRL limit (using {1} of {2} messages). Tenant Enforcement Status: {3}' -f $UsagePercentage, $TerrlStatus.ObservedValue, $TerrlStatus.Threshold, $TerrlStatus.Verdict + Tenant = $TenantFilter + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-LogMessage -tenant $($TenantFilter) -message "Could not get TERRL status for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" -severity 'Error' -API 'CIPPAlertTERRL' -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 new file mode 100644 index 000000000000..4db4e400eb1e --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertUnusedLicenses.ps1 @@ -0,0 +1,40 @@ +function Get-CIPPAlertUnusedLicenses { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses + $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable + $AlertData = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $TenantFilter | ForEach-Object { + $SkuId = $_ + foreach ($sku in $SkuId) { + if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } + $PrettyName = Convert-SKUname -SkuID $sku.skuId + if (!$PrettyName) { $PrettyName = $sku.skuPartNumber } + if ($sku.prepaidUnits.enabled - $sku.consumedUnits -gt 0) { + [PSCustomObject]@{ + Message = "$PrettyName has unused licenses. Using $($sku.consumedUnits) of $($sku.prepaidUnits.enabled)." + LicenseName = $PrettyName + SkuId = $sku.skuId + SkuPartNumber = $sku.skuPartNumber + ConsumedUnits = $sku.consumedUnits + EnabledUnits = $sku.prepaidUnits.enabled + Tenant = $TenantFilter + } + } + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Unused Licenses Alert Error occurred: $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 new file mode 100644 index 000000000000..f645d9a03ec4 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVppTokenExpiry.ps1 @@ -0,0 +1,32 @@ +function Get-CIPPAlertVppTokenExpiry { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + try { + try { + $VppTokens = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/vppTokens' -tenantid $TenantFilter + $AlertData = foreach ($Vpp in $VppTokens) { + if ($Vpp.state -ne 'valid') { + $Message = 'Apple Volume Purchase Program Token is not valid, new token required' + $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } }, @{Name = 'Tenant'; Expression = { $TenantFilter } } + } elseif ($Vpp.expirationDateTime -lt (Get-Date).AddDays(30).ToUniversalTime() -and $Vpp.expirationDateTime -gt (Get-Date).AddDays(-7).ToUniversalTime()) { + $Message = 'Apple Volume Purchase Program token expiring on {0}' -f $Vpp.expirationDateTime + $Vpp | Select-Object -Property organizationName, appleId, vppTokenAccountType, @{Name = 'Message'; Expression = { $Message } }, @{Name = 'Tenant'; Expression = { $TenantFilter } } + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + + } catch {} + + } catch { + # Error handling + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 new file mode 100644 index 000000000000..068a039086ff --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertVulnerabilities.ps1 @@ -0,0 +1,65 @@ +function Get-CIPPAlertVulnerabilities { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + $VulnerabilityRequest = New-GraphGetRequest -tenantid $TenantFilter -uri "https://api.securitycenter.microsoft.com/api/machines/SoftwareVulnerabilitiesByMachine?`$top=999&`$filter=cveId ne null" -scope 'https://api.securitycenter.microsoft.com/.default' + + if ($VulnerabilityRequest) { + $AlertData = [System.Collections.Generic.List[PSCustomObject]]::new() + + # Group by CVE ID and create objects for each vulnerability + $VulnerabilityGroups = $VulnerabilityRequest | Where-Object { $_.cveId } | Group-Object cveId + + foreach ($Group in $VulnerabilityGroups) { + $FirstVuln = $Group.Group | Sort-Object firstSeenTimestamp | Select-Object -First 1 + $HoursOld = [math]::Round(((Get-Date) - [datetime]$FirstVuln.firstSeenTimestamp).TotalHours) + + # Skip if vulnerability is not old enough + if ($HoursOld -lt [int]$InputValue) { + continue + } + + $DaysOld = [math]::Round(((Get-Date) - [datetime]$FirstVuln.firstSeenTimestamp).TotalDays) + $AffectedDevices = ($Group.Group | Select-Object -ExpandProperty deviceName -Unique) -join ', ' + + $VulnerabilityAlert = [PSCustomObject]@{ + CVE = $Group.Name + Severity = $FirstVuln.vulnerabilitySeverityLevel + FirstSeenTimestamp = $FirstVuln.firstSeenTimestamp + LastSeenTimestamp = $FirstVuln.lastSeenTimestamp + DaysOld = $DaysOld + HoursOld = $HoursOld + AffectedDeviceCount = $Group.Count + AffectedDevices = $AffectedDevices + SoftwareName = $FirstVuln.softwareName + SoftwareVendor = $FirstVuln.softwareVendor + SoftwareVersion = $FirstVuln.softwareVersion + CVSSScore = $FirstVuln.cvssScore + ExploitabilityLevel = $FirstVuln.exploitabilityLevel + RecommendedUpdate = $FirstVuln.recommendedSecurityUpdate + RecommendedUpdateId = $FirstVuln.recommendedSecurityUpdateId + RecommendedUpdateUrl = $FirstVuln.recommendedSecurityUpdateUrl + Tenant = $TenantFilter + } + $AlertData.Add($VulnerabilityAlert) + } + + # Only send alert if we have vulnerabilities that meet the criteria + if ($AlertData.Count -gt 0) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } + } catch { + Write-LogMessage -message "Failed to check vulnerabilities: $($_.exception.message)" -API 'Vulnerability Alerts' -tenant $TenantFilter -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Alerts/Get-CippAlertBreachAlert.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CippAlertBreachAlert.ps1 new file mode 100644 index 000000000000..ce6f5a05c030 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CippAlertBreachAlert.ps1 @@ -0,0 +1,19 @@ + +function Get-CippAlertBreachAlert { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [Alias('input')] + $TenantFilter + ) + try { + $Search = New-BreachTenantSearch -TenantFilter $TenantFilter + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $Search -PartitionKey BreachAlert + } catch { + Write-AlertMessage -tenant $($TenantFilter) -message "Could not get New Breaches for $($TenantFilter): $(Get-NormalizedError -message $_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Assert-CippVersion.ps1 b/Modules/CIPPCore/Public/Assert-CippVersion.ps1 new file mode 100644 index 000000000000..ac61237dcb60 --- /dev/null +++ b/Modules/CIPPCore/Public/Assert-CippVersion.ps1 @@ -0,0 +1,27 @@ +function Assert-CippVersion { + <# + .SYNOPSIS + Compare the local version of CIPP with the latest version. + + .DESCRIPTION + Retrieves the local version of CIPP and compares it with the latest version in GitHub. + + .PARAMETER CIPPVersion + Local version of CIPP frontend + + #> + Param($CIPPVersion) + $APIVersion = (Get-Content 'version_latest.txt' -Raw).trim() + + $RemoteAPIVersion = (Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/KelvinTegelaar/CIPP-API/master/version_latest.txt').trim() + $RemoteCIPPVersion = (Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/KelvinTegelaar/CIPP/main/public/version.json').version + + [PSCustomObject]@{ + LocalCIPPVersion = $CIPPVersion + RemoteCIPPVersion = $RemoteCIPPVersion + LocalCIPPAPIVersion = $APIVersion + RemoteCIPPAPIVersion = $RemoteAPIVersion + OutOfDateCIPP = ([semver]$RemoteCIPPVersion -gt [semver]$CIPPVersion) + OutOfDateCIPPAPI = ([semver]$RemoteAPIVersion -gt [semver]$APIVersion) + } +} diff --git a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearchResults.ps1 b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearchResults.ps1 new file mode 100644 index 000000000000..ecff809d72b2 --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearchResults.ps1 @@ -0,0 +1,33 @@ +function Get-CippAuditLogSearchResults { + <# + .SYNOPSIS + Get the results of an audit log search + .DESCRIPTION + Get the results of an audit log search from the Graph API + .PARAMETER TenantFilter + The tenant to filter on. + .PARAMETER QueryId + The ID of the query to get the results for. + #> + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Alias('id')] + [string]$QueryId, + [switch]$CountOnly + ) + + process { + $GraphRequest = @{ + Uri = ('https://graph.microsoft.com/beta/security/auditLog/queries/{0}/records?$top=999&$count=true' -f $QueryId) + AsApp = $true + tenantid = $TenantFilter + } + if ($CountOnly.IsPresent) { + $GraphRequest.CountOnly = $true + } + + New-GraphGetRequest @GraphRequest -ErrorAction Stop | Sort-Object -Property createdDateTime -Descending + } +} diff --git a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearches.ps1 b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearches.ps1 new file mode 100644 index 000000000000..9301bb28aaba --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogSearches.ps1 @@ -0,0 +1,43 @@ +function Get-CippAuditLogSearches { + <# + .SYNOPSIS + Get the available audit log searches + .DESCRIPTION + Query the Graph API for available audit log searches. + .PARAMETER TenantFilter + The tenant to filter on. + #> + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter()] + [switch]$ReadyToProcess + ) + $AuditLogSearchesTable = Get-CippTable -TableName 'AuditLogSearches' + if ($ReadyToProcess.IsPresent) { + $15MinutesAgo = (Get-Date).AddMinutes(-15).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $1DayAgo = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $PendingQueries = Get-CIPPAzDataTableEntity @AuditLogSearchesTable -Filter "PartitionKey eq 'Search' and Tenant eq '$TenantFilter' and (CippStatus eq 'Pending' or (CippStatus eq 'Processing' and Timestamp le datetime'$15MinutesAgo')) and Timestamp ge datetime'$1DayAgo'" | Sort-Object Timestamp + } else { + $7DaysAgo = (Get-Date).AddDays(-7).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $PendingQueries = Get-CIPPAzDataTableEntity @AuditLogSearchesTable -Filter "Tenant eq '$TenantFilter' and Timestamp ge datetime'$7DaysAgo'" + } + + $BulkRequests = foreach ($PendingQuery in $PendingQueries) { + @{ + id = $PendingQuery.RowKey + url = 'security/auditLog/queries/' + $PendingQuery.RowKey + method = 'GET' + } + } + if ($BulkRequests.Count -eq 0) { + return @() + } + $Queries = New-GraphBulkRequest -Requests @($BulkRequests) -AsApp $true -TenantId $TenantFilter | Select-Object -ExpandProperty body + + if ($ReadyToProcess.IsPresent) { + $Queries = $Queries | Where-Object { $PendingQueries.RowKey -contains $_.id -and $_.status -eq 'succeeded' } + } + + return $Queries +} diff --git a/Modules/CIPPCore/Public/AuditLogs/Get-CippLastAuditLogSearch.ps1 b/Modules/CIPPCore/Public/AuditLogs/Get-CippLastAuditLogSearch.ps1 new file mode 100644 index 000000000000..5706a4ac3e4d --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/Get-CippLastAuditLogSearch.ps1 @@ -0,0 +1,19 @@ +function Get-CippLastAuditLogSearch { + <# + .SYNOPSIS + Get the last audit log search + .DESCRIPTION + Query the Graph API for the last audit log search. + .PARAMETER TenantFilter + The tenant to filter on. + #> + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + $Table = Get-CIPPTable -TableName AuditLogSearches + $LastHour = (Get-Date).AddHours(-1).ToString('yyyy-MM-ddTHH:mm:ssZ') + $LastSearch = Get-AzDataTableEntity @Table -Filter "Tenant eq '$TenantFilter' and Timestamp ge datetime'$LastHour'" | Sort-Object Timestamp -Descending | Select-Object -First 1 + return $LastSearch +} diff --git a/Modules/CIPPCore/Public/AuditLogs/New-CIPPAuditLogSearchResultsCache.ps1 b/Modules/CIPPCore/Public/AuditLogs/New-CIPPAuditLogSearchResultsCache.ps1 new file mode 100644 index 000000000000..76701ac05736 --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/New-CIPPAuditLogSearchResultsCache.ps1 @@ -0,0 +1,103 @@ +function New-CIPPAuditLogSearchResultsCache { + <# + .SYNOPSIS + Cache audit log search results for more efficient processing + .DESCRIPTION + Retrieves audit log searches for a tenant, processes them, and stores the results in a cache table. + Also tracks performance metrics for download and processing times. + .PARAMETER TenantFilter + The tenant to filter on. + #> + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [string]$SearchId + ) + try { + $FailedDownloadsTable = Get-CippTable -TableName 'FailedAuditLogDownloads' + $fourHoursAgo = (Get-Date).AddHours(-4).ToUniversalTime() + $failedEntity = Get-CIPPAzDataTableEntity @FailedDownloadsTable -Filter "PartitionKey eq '$TenantFilter' and SearchId eq '$SearchId' and Timestamp ge datetime'$($fourHoursAgo.ToString('yyyy-MM-ddTHH:mm:ssZ'))'" + + if ($failedEntity) { + $message = "Skipping search ID: $SearchId for tenant: $TenantFilter - Previous attempt failed within the last 4 hours" + Write-LogMessage -API 'AuditLog' -tenant $TenantFilter -message $message -Sev 'Info' + Write-Information $message + exit 0 + } + } catch { + Write-Information "Error checking for failed downloads: $($_.Exception.Message)" + } + + try { + Write-Information "Starting audit log cache process for tenant: $TenantFilter" + $CacheWebhooksTable = Get-CippTable -TableName 'CacheWebhooks' + $CacheWebhookStatsTable = Get-CippTable -TableName 'CacheWebhookStats' + # Check if we haven't already downloaded this search by checking the cache table + $searchEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and SearchId eq '$SearchId'" + if ($searchEntity) { + Write-Information "Search ID: $SearchId already cached for tenant: $TenantFilter" + exit 0 + } + + # Record this attempt in the FailedAuditLogDownloads table BEFORE starting the download + # This way, if the function is killed before completion, the record will remain + try { + $FailedDownloadsTable = Get-CippTable -TableName 'FailedAuditLogDownloads' + $attemptId = [guid]::NewGuid().ToString() + $failedEntity = @{ + RowKey = $attemptId + PartitionKey = $TenantFilter + SearchId = $SearchId + ErrorMessage = 'Download attempt in progress' + } + Add-CIPPAzDataTableEntity @FailedDownloadsTable -Entity $failedEntity -Force + Write-Information "Recorded download attempt for search ID: $SearchId, tenant: $TenantFilter" + } catch { + Write-Information "Failed to record download attempt: $($_.Exception.Message)" + } + + $downloadStartTime = Get-Date + try { + Write-Information "Processing search ID: $($SearchId) for tenant: $TenantFilter" + $searchResults = Get-CippAuditLogSearchResults -TenantFilter $TenantFilter -QueryId $SearchId + foreach ($searchResult in $searchResults) { + $cacheEntity = @{ + RowKey = $searchResult.id + PartitionKey = $TenantFilter + SearchId = $SearchId + JSON = [string]($searchResult | ConvertTo-Json -Depth 10) + } + Add-CIPPAzDataTableEntity @CacheWebhooksTable -Entity $cacheEntity -Force + } + Write-Information "Successfully cached search ID: $($SearchId) for tenant: $TenantFilter" + try { + $FailedDownloadsTable = Get-CippTable -TableName 'FailedAuditLogDownloads' + $failedEntities = Get-CIPPAzDataTableEntity @FailedDownloadsTable -Filter "PartitionKey eq '$TenantFilter' and SearchId eq '$SearchId'" + if ($failedEntities) { + Remove-AzDataTableEntity @FailedDownloadsTable -Entity $failedEntities -Force + Write-Information "Removed failed download records for search ID: $SearchId, tenant: $TenantFilter" + } + } catch { + Write-Information "Failed to remove download attempt record: $($_.Exception.Message)" + } + } catch { + throw $_ + } + + $downloadEndTime = Get-Date + $downloadSeconds = ($downloadEndTime - $downloadStartTime).TotalSeconds + + $statsEntity = @{ + RowKey = $TenantFilter + PartitionKey = 'Stats' + DownloadSecs = [string]$downloadSeconds + SearchCount = [string]($searchResults ? $searchResults.Count : 0) + } + Add-CIPPAzDataTableEntity @CacheWebhookStatsTable -Entity $statsEntity -Force + Write-Information "Completed audit log cache process for tenant: $TenantFilter. Download time: $downloadSeconds seconds" + return ($searchResults ? $searchResults.Count : 0) + } catch { + Write-Information "Error in New-CIPPAuditLogSearchResultsCache for tenant: $TenantFilter. Error: $($_.Exception.Message)" + throw $_ + } +} diff --git a/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 new file mode 100644 index 000000000000..7b07fcfe8c0f --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 @@ -0,0 +1,182 @@ +function New-CippAuditLogSearch { + <# + .SYNOPSIS + Create a new audit log search + .DESCRIPTION + Create a new audit log search in Microsoft Graph Security API + .PARAMETER DisplayName + The display name of the audit log search. Default is 'CIPP Audit Search - ' + current date and time. + .PARAMETER TenantFilter + The tenant to filter on. + .PARAMETER StartTime + The start time to filter on. + .PARAMETER EndTime + The end time to filter on. + .PARAMETER RecordTypeFilters + The record types to filter on. + .PARAMETER KeywordFilter + The keyword to filter on. + .PARAMETER ServiceFilter + The service to filter on. + .PARAMETER OperationsFilters + The operations to filter on. + .PARAMETER UserPrincipalNameFilters + The user principal names to filter on. + .PARAMETER IPAddressFilter + The IP addresses to filter on. + .PARAMETER ObjectIdFilters + The object IDs to filter on. + .PARAMETER AdministrativeUnitFilters + The administrative units to filter on. + .PARAMETER ProcessLogs + Store the search in the CIPP AuditLogSearches table for alert processing. + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter()] + [string]$DisplayName = 'CIPP Audit Search - ' + (Get-Date).ToString('yyyy-MM-dd HH:mm:ss'), + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [datetime]$StartTime, + [Parameter(Mandatory = $true)] + [datetime]$EndTime, + [Parameter()] + [ValidateSet( + 'exchangeAdmin', 'exchangeItem', 'exchangeItemGroup', 'sharePoint', 'syntheticProbe', 'sharePointFileOperation', + 'oneDrive', 'azureActiveDirectory', 'azureActiveDirectoryAccountLogon', 'dataCenterSecurityCmdlet', + 'complianceDLPSharePoint', 'sway', 'complianceDLPExchange', 'sharePointSharingOperation', + 'azureActiveDirectoryStsLogon', 'skypeForBusinessPSTNUsage', 'skypeForBusinessUsersBlocked', + 'securityComplianceCenterEOPCmdlet', 'exchangeAggregatedOperation', 'powerBIAudit', 'crm', 'yammer', + 'skypeForBusinessCmdlets', 'discovery', 'microsoftTeams', 'threatIntelligence', 'mailSubmission', + 'microsoftFlow', 'aeD', 'microsoftStream', 'complianceDLPSharePointClassification', 'threatFinder', + 'project', 'sharePointListOperation', 'sharePointCommentOperation', 'dataGovernance', 'kaizala', + 'securityComplianceAlerts', 'threatIntelligenceUrl', 'securityComplianceInsights', 'mipLabel', + 'workplaceAnalytics', 'powerAppsApp', 'powerAppsPlan', 'threatIntelligenceAtpContent', 'labelContentExplorer', + 'teamsHealthcare', 'exchangeItemAggregated', 'hygieneEvent', 'dataInsightsRestApiAudit', + 'informationBarrierPolicyApplication', 'sharePointListItemOperation', 'sharePointContentTypeOperation', + 'sharePointFieldOperation', 'microsoftTeamsAdmin', 'hrSignal', 'microsoftTeamsDevice', 'microsoftTeamsAnalytics', + 'informationWorkerProtection', 'campaign', 'dlpEndpoint', 'airInvestigation', 'quarantine', 'microsoftForms', + 'applicationAudit', 'complianceSupervisionExchange', 'customerKeyServiceEncryption', 'officeNative', + 'mipAutoLabelSharePointItem', 'mipAutoLabelSharePointPolicyLocation', 'microsoftTeamsShifts', 'secureScore', + 'mipAutoLabelExchangeItem', 'cortanaBriefing', 'search', 'wdatpAlerts', 'powerPlatformAdminDlp', + 'powerPlatformAdminEnvironment', 'mdatpAudit', 'sensitivityLabelPolicyMatch', 'sensitivityLabelAction', + 'sensitivityLabeledFileAction', 'attackSim', 'airManualInvestigation', 'securityComplianceRBAC', + 'userTraining', 'airAdminActionInvestigation', 'mstic', 'physicalBadgingSignal', 'teamsEasyApprovals', + 'aipDiscover', 'aipSensitivityLabelAction', 'aipProtectionAction', 'aipFileDeleted', 'aipHeartBeat', + 'mcasAlerts', 'onPremisesFileShareScannerDlp', 'onPremisesSharePointScannerDlp', 'exchangeSearch', + 'sharePointSearch', 'privacyDataMinimization', 'labelAnalyticsAggregate', 'myAnalyticsSettings', + 'securityComplianceUserChange', 'complianceDLPExchangeClassification', 'complianceDLPEndpoint', + 'mipExactDataMatch', 'msdeResponseActions', 'msdeGeneralSettings', 'msdeIndicatorsSettings', + 'ms365DCustomDetection', 'msdeRolesSettings', 'mapgAlerts', 'mapgPolicy', 'mapgRemediation', + 'privacyRemediationAction', 'privacyDigestEmail', 'mipAutoLabelSimulationProgress', + 'mipAutoLabelSimulationCompletion', 'mipAutoLabelProgressFeedback', 'dlpSensitiveInformationType', + 'mipAutoLabelSimulationStatistics', 'largeContentMetadata', 'microsoft365Group', 'cdpMlInferencingResult', + 'filteringMailMetadata', 'cdpClassificationMailItem', 'cdpClassificationDocument', 'officeScriptsRunAction', + 'filteringPostMailDeliveryAction', 'cdpUnifiedFeedback', 'tenantAllowBlockList', 'consumptionResource', + 'healthcareSignal', 'dlpImportResult', 'cdpCompliancePolicyExecution', 'multiStageDisposition', + 'privacyDataMatch', 'filteringDocMetadata', 'filteringEmailFeatures', 'powerBIDlp', 'filteringUrlInfo', + 'filteringAttachmentInfo', 'coreReportingSettings', 'complianceConnector', + 'powerPlatformLockboxResourceAccessRequest', 'powerPlatformLockboxResourceCommand', + 'cdpPredictiveCodingLabel', 'cdpCompliancePolicyUserFeedback', 'webpageActivityEndpoint', 'omePortal', + 'cmImprovementActionChange', 'filteringUrlClick', 'mipLabelAnalyticsAuditRecord', 'filteringEntityEvent', + 'filteringRuleHits', 'filteringMailSubmission', 'labelExplorer', 'microsoftManagedServicePlatform', + 'powerPlatformServiceActivity', 'scorePlatformGenericAuditRecord', 'filteringTimeTravelDocMetadata', 'alert', + 'alertStatus', 'alertIncident', 'incidentStatus', 'case', 'caseInvestigation', 'recordsManagement', + 'privacyRemediation', 'dataShareOperation', 'cdpDlpSensitive', 'ehrConnector', 'filteringMailGradingResult', + 'publicFolder', 'privacyTenantAuditHistoryRecord', 'aipScannerDiscoverEvent', 'eduDataLakeDownloadOperation', + 'm365ComplianceConnector', 'microsoftGraphDataConnectOperation', 'microsoftPurview', + 'filteringEmailContentFeatures', 'powerPagesSite', 'powerAppsResource', 'plannerPlan', 'plannerCopyPlan', + 'plannerTask', 'plannerRoster', 'plannerPlanList', 'plannerTaskList', 'plannerTenantSettings', + 'projectForTheWebProject', 'projectForTheWebTask', 'projectForTheWebRoadmap', 'projectForTheWebRoadmapItem', + 'projectForTheWebProjectSettings', 'projectForTheWebRoadmapSettings', 'quarantineMetadata', + 'microsoftTodoAudit', 'timeTravelFilteringDocMetadata', 'teamsQuarantineMetadata', + 'sharePointAppPermissionOperation', 'microsoftTeamsSensitivityLabelAction', 'filteringTeamsMetadata', + 'filteringTeamsUrlInfo', 'filteringTeamsPostDeliveryAction', 'mdcAssessments', + 'mdcRegulatoryComplianceStandards', 'mdcRegulatoryComplianceControls', 'mdcRegulatoryComplianceAssessments', + 'mdcSecurityConnectors', 'mdaDataSecuritySignal', 'vivaGoals', 'filteringRuntimeInfo', 'attackSimAdmin', + 'microsoftGraphDataConnectConsent', 'filteringAtpDetonationInfo', 'privacyPortal', 'managedTenants', + 'unifiedSimulationMatchedItem', 'unifiedSimulationSummary', 'updateQuarantineMetadata', 'ms365DSuppressionRule', + 'purviewDataMapOperation', 'filteringUrlPostClickAction', 'irmUserDefinedDetectionSignal', 'teamsUpdates', + 'plannerRosterSensitivityLabel', 'ms365DIncident', 'filteringDelistingMetadata', + 'complianceDLPSharePointClassificationExtended', 'microsoftDefenderForIdentityAudit', + 'supervisoryReviewDayXInsight', 'defenderExpertsforXDRAdmin', 'cdpEdgeBlockedMessage', 'hostedRpa', + 'cdpContentExplorerAggregateRecord', 'cdpHygieneAttachmentInfo', 'cdpHygieneSummary', + 'cdpPostMailDeliveryAction', 'cdpEmailFeatures', 'cdpHygieneUrlInfo', 'cdpUrlClick', + 'cdpPackageManagerHygieneEvent', 'filteringDocScan', 'timeTravelFilteringDocScan', 'mapgOnboard' + )] + [string[]]$RecordTypeFilters, + [Parameter()] + [string]$KeywordFilters, + [Parameter()] + [string[]]$ServiceFilters, + [Parameter()] + [string[]]$OperationsFilters, + [Parameter()] + [string[]]$UserPrincipalNameFilters, + [Parameter()] + [string[]]$IPAddressFilters, + [Parameter()] + [string[]]$ObjectIdFilters, + [Parameter()] + [string[]]$AdministrativeUnitFilters, + [Parameter()] + [switch]$ProcessLogs + ) + + $SearchParams = @{ + displayName = $DisplayName + filterStartDateTime = $StartTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss') + filterEndDateTime = $EndTime.AddHours(1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss') + } + if ($OperationsFilters) { + $SearchParams.operationsFilters = $OperationsFilters + } + if ($RecordTypeFilters) { + $SearchParams.recordTypeFilters = @($RecordTypeFilters) + } + if ($KeywordFilters) { + $SearchParams.keywordFilters = $KeywordFilters + } + if ($ServiceFilters) { + $SearchParams.serviceFilters = $ServiceFilters + } + if ($UserPrincipalNameFilters) { + $SearchParams.userPrincipalNameFilters = @($UserPrincipalNameFilters) + } + if ($IPAddressFilters) { + $SearchParams.ipAddressFilters = @($IPAddressFilters) + } + if ($ObjectIdFilters) { + $SearchParams.objectIdFilters = @($ObjectIdFilters) + } + if ($AdministrativeUnitFilters) { + $SearchParams.administrativeUnitFilters = @($AdministrativeUnitFilters) + } + + if ($PSCmdlet.ShouldProcess('Create a new audit log search for tenant ' + $TenantFilter)) { + $Query = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/security/auditLog/queries' -body ($SearchParams | ConvertTo-Json -Compress) -tenantid $TenantFilter -AsApp $true + + + if ($ProcessLogs.IsPresent -and $Query.id) { + $CippStatus = 'Pending' + } else { + $CippStatus = 'N/A' + } + + $Entity = [PSCustomObject]@{ + PartitionKey = [string]'Search' + RowKey = [string]$Query.id + Tenant = [string]$TenantFilter + DisplayName = [string]$DisplayName + StartTime = [datetime]$StartTime.ToUniversalTime() + EndTime = [datetime]$EndTime.ToUniversalTime() + Query = [string]($Query | ConvertTo-Json -Compress) + CippStatus = [string]$CippStatus + } + $Table = Get-CIPPTable -TableName 'AuditLogSearches' + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + + return $Query + } +} diff --git a/Modules/CIPPCore/Public/AuditLogs/Remove-CippAuditLogSearch.ps1 b/Modules/CIPPCore/Public/AuditLogs/Remove-CippAuditLogSearch.ps1 new file mode 100644 index 000000000000..39457758e848 --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/Remove-CippAuditLogSearch.ps1 @@ -0,0 +1,23 @@ +function Remove-CippAuditLogSearch { + <# + .SYNOPSIS + Get the results of an audit log search + .DESCRIPTION + Get the results of an audit log search from the Graph API + .PARAMETER TenantFilter + The tenant to filter on. + .PARAMETER QueryId + The ID of the query to get the results for. + #> + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Alias('id')] + [string]$QueryId + ) + + process { + New-GraphPostRequest -type DELETE -body '{}' -uri ('https://graph.microsoft.com/beta/security/auditLog/queries/{0}' -f $QueryId) -AsApp $true -tenantid $TenantFilter + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPAccessRole.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPAccessRole.ps1 new file mode 100644 index 000000000000..799aae7c4466 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPAccessRole.ps1 @@ -0,0 +1,52 @@ +function Get-CIPPAccessRole { + <# + .SYNOPSIS + Get the access role for the current user + + .DESCRIPTION + Get the access role for the current user + + .PARAMETER TenantID + The tenant ID to check the access role for + + .EXAMPLE + Get-CippAccessRole -UserId $UserId + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param($Request, $Headers) + + $Headers = $Request.Headers ?? $Headers + + $CacheAccessUserRoleTable = Get-CIPPTable -tablename 'cacheAccessUserRoles' + + $SwaCreds = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json) + $SwaRoles = $SwaCreds.userRoles + $Username = $SwaCreds.userDetails + + $CachedRoles = Get-CIPPAzDataTableEntity @CacheAccessUserRoleTable -Filter "PartitionKey eq 'AccessUser' and RowKey eq '$Username'" | Select-Object -ExpandProperty Role | ConvertFrom-Json + + Write-Information "SWA Roles: $($SwaRoles -join ', ')" + Write-Information "Cached Roles: $($CachedRoles -join ', ')" + + # Combine SWA roles and cached roles into a single deduplicated list + $AllRoles = [System.Collections.Generic.List[string]]::new() + + foreach ($Role in $SwaRoles) { + if (-not $AllRoles.Contains($Role)) { + $AllRoles.Add($Role) + } + } + foreach ($Role in $CachedRoles) { + if (-not $AllRoles.Contains($Role)) { + $AllRoles.Add($Role) + } + } + $CombinedRoles = $AllRoles | Select-Object -Unique + + # For debugging + Write-Information "Combined Roles: $($CombinedRoles -join ', ')" + return $CombinedRoles +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 new file mode 100644 index 000000000000..94f8037d8477 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPAzIdentityToken.ps1 @@ -0,0 +1,78 @@ +function Get-CIPPAzIdentityToken { + <# + .SYNOPSIS + Get the Azure Identity token for Managed Identity + .DESCRIPTION + This function retrieves the Azure Identity token using the Managed Identity endpoint for the specified resource. + Tokens are cached per resource URL until expiration to reduce redundant API calls. + .PARAMETER ResourceUrl + The Azure resource URL to get a token for. Defaults to 'https://management.azure.com/' for Azure Resource Manager. + + Common resources: + - https://management.azure.com/ (Azure Resource Manager - default) + - https://vault.azure.net (Azure Key Vault) + - https://api.loganalytics.io (Log Analytics / Application Insights) + - https://storage.azure.com/ (Azure Storage) + .PARAMETER SkipCache + Force a new token to be fetched, bypassing the cache. + .EXAMPLE + Get-CIPPAzIdentityToken + Gets a token for Azure Resource Manager + .EXAMPLE + Get-CIPPAzIdentityToken -ResourceUrl 'https://vault.azure.net' + Gets a token for Azure Key Vault + .EXAMPLE + Get-CIPPAzIdentityToken -ResourceUrl 'https://api.loganalytics.io' + Gets a token for Log Analytics API + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$ResourceUrl = 'https://management.azure.com/', + [switch]$SkipCache + ) + + $Endpoint = $env:IDENTITY_ENDPOINT + $Secret = $env:IDENTITY_HEADER + + if (-not $Endpoint -or -not $Secret) { + throw 'Managed Identity environment variables (IDENTITY_ENDPOINT/IDENTITY_HEADER) not found. Is Managed Identity enabled on the Function App?' + } + + # Build cache key from resource URL + $TokenKey = "ManagedIdentity-$ResourceUrl" + + try { + # Check if cached token exists and is still valid + if ($script:ManagedIdentityTokens.$TokenKey -and [int](Get-Date -UFormat %s -Millisecond 0) -lt $script:ManagedIdentityTokens.$TokenKey.expires_on -and $SkipCache -ne $true) { + return $script:ManagedIdentityTokens.$TokenKey.access_token + } + + # Get new token + $EncodedResource = [System.Uri]::EscapeDataString($ResourceUrl) + $TokenUri = "$($Endpoint)?resource=$EncodedResource&api-version=2019-08-01" + $Headers = @{ + 'X-IDENTITY-HEADER' = $Secret + } + + $TokenResponse = Invoke-RestMethod -Method Get -Headers $Headers -Uri $TokenUri -ErrorAction Stop + + # Calculate expiration time + $ExpiresOn = [int](Get-Date -UFormat %s -Millisecond 0) + $TokenResponse.expires_in + + # Store in cache (initialize synchronized hash table if needed) + if (-not $script:ManagedIdentityTokens) { + $script:ManagedIdentityTokens = [HashTable]::Synchronized(@{}) + } + + # Add expires_on to token response for tracking + Add-Member -InputObject $TokenResponse -NotePropertyName 'expires_on' -NotePropertyValue $ExpiresOn -Force + + # Cache the token + $script:ManagedIdentityTokens.$TokenKey = $TokenResponse + + return $TokenResponse.access_token + } catch { + throw "Failed to get managed identity token for resource '$ResourceUrl': $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 new file mode 100644 index 000000000000..178ee74fb4ab --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 @@ -0,0 +1,38 @@ +function Get-CIPPHttpFunctions { + param( + [switch]$ByRole, + [switch]$ByRoleGroup + ) + + try { + $Functions = Get-Command -Module CIPPCore | Where-Object { $_.Visibility -eq 'Public' -and $_.Name -match 'Invoke-*' } + $Results = foreach ($Function in $Functions) { + $Help = Get-Help $Function + if ($Help.Functionality -notmatch 'Entrypoint') { continue } + if ($Help.Role -eq 'Public') { continue } + [PSCustomObject]@{ + Function = $Function.Name + Role = $Help.Role + Description = $Help.Description + } + } + + if ($ByRole.IsPresent -or $ByRoleGroup.IsPresent) { + $Results = $Results | Group-Object -Property Role | Select-Object -Property @{l = 'Permission'; e = { $_.Name -eq '' ? 'None' : $_.Name } }, Count, @{l = 'Functions'; e = { $_.Group | Select-Object @{l = 'Name'; e = { $_.Function -replace 'Invoke-' } }, Description } } | Sort-Object -Property Permission + if ($ByRoleGroup.IsPresent) { + $RoleGroup = @{} + foreach ($Permission in $Results) { + $PermSplit = $Permission.Permission -split '\.' + if ($PermSplit.Count -ne 3) { continue } + if ($null -eq $RoleGroup[$PermSplit[0]]) { $RoleGroup[$PermSplit[0]] = @{} } + if ($null -eq $RoleGroup[$PermSplit[0]][$PermSplit[1]]) { $RoleGroup[$PermSplit[0]][$PermSplit[1]] = @{} } + $RoleGroup[$PermSplit[0]][$PermSplit[1]][$PermSplit[2]] = @($Permission.Functions) + } + $Results = $RoleGroup + } + } + $Results + } catch { + "Function Error $($_.Exception.Message): $($_.InvocationInfo.PositionMessage)" + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 new file mode 100644 index 000000000000..cd4745d5c1b4 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPRoleIPRanges.ps1 @@ -0,0 +1,51 @@ +function Get-CIPPRoleIPRanges { + <# + .SYNOPSIS + Gets combined IP ranges from a list of roles + .DESCRIPTION + This function retrieves IP range restrictions from custom roles and returns a consolidated list. + Superadmin roles are excluded from IP restrictions. + .PARAMETER Roles + Array of role names to check for IP restrictions + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [array]$Roles + ) + + $CombinedIPRanges = [System.Collections.Generic.List[string]]::new() + + # Superadmin is never restricted by IP + if ($Roles -contains 'superadmin') { + return @('Any') + } + + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' + + foreach ($Role in $Roles) { + try { + $IPRangeEntity = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Role.ToLower())'" + if ($IPRangeEntity -and $IPRangeEntity.IPRanges) { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + foreach ($IPRange in $IPRanges) { + if ($IPRange -and -not $CombinedIPRanges.Contains($IPRange)) { + $CombinedIPRanges.Add($IPRange) + } + } + } + } catch { + Write-Information "Failed to get IP ranges for role '$Role': $($_.Exception.Message)" + continue + } + } + + # If no IP ranges were found in any role, allow all + if ($CombinedIPRanges.Count -eq 0) { + return @('Any') + } + + return @($CombinedIPRanges) | Sort-Object -Unique +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 new file mode 100644 index 000000000000..4b89c560b759 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 @@ -0,0 +1,34 @@ +function Get-CIPPRolePermissions { + <# + .SYNOPSIS + Get the permissions associated with a role. + .PARAMETER RoleName + The role to get the permissions for. + .EXAMPLE + Get-CIPPRolePermissions -RoleName 'mycustomrole' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$RoleName + ) + + $Table = Get-CippTable -tablename 'CustomRoles' + $Filter = "RowKey eq '$RoleName'" + $Role = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if ($Role) { + $Permissions = $Role.Permissions | ConvertFrom-Json + $AllowedTenants = if ($Role.AllowedTenants) { $Role.AllowedTenants | ConvertFrom-Json } else { @() } + $BlockedTenants = if ($Role.BlockedTenants) { $Role.BlockedTenants | ConvertFrom-Json } else { @() } + $BlockedEndpoints = if ($Role.BlockedEndpoints) { $Role.BlockedEndpoints | ConvertFrom-Json } else { @() } + [PSCustomObject]@{ + Role = $Role.RowKey + Permissions = $Permissions.PSObject.Properties.Value + AllowedTenants = @($AllowedTenants) + BlockedTenants = @($BlockedTenants) + BlockedEndpoints = @($BlockedEndpoints) + } + } else { + throw "Role $RoleName not found." + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 new file mode 100644 index 000000000000..27affd350b11 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 @@ -0,0 +1,191 @@ +function Get-CippAllowedPermissions { + <# + .SYNOPSIS + Retrieves the allowed permissions for the current user. + + .DESCRIPTION + This function retrieves the allowed permissions for the current user based on their role and the configured permissions in the CIPP system. + For admin/superadmin users, permissions are computed from base role include/exclude rules. + For editor/readonly users, permissions start from base role and are restricted by custom roles. + + .PARAMETER UserRoles + Array of user roles to compute permissions for. + + .OUTPUTS + Returns a list of allowed permissions for the current user. + #> + + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string[]]$UserRoles + ) + + # Get all available permissions and base roles configuration + + $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent + $Version = (Get-Content -Path $CIPPRoot\version_latest.txt).trim() + $BaseRoles = Get-Content -Path $CIPPRoot\Config\cipp-roles.json | ConvertFrom-Json + $DefaultRoles = @('superadmin', 'admin', 'editor', 'readonly', 'anonymous', 'authenticated') + + $AllPermissionCacheTable = Get-CIPPTable -tablename 'cachehttppermissions' + $AllPermissionsRow = Get-CIPPAzDataTableEntity @AllPermissionCacheTable -Filter "PartitionKey eq 'HttpFunctions' and RowKey eq 'HttpFunctions' and Version eq '$($Version)'" + + if (-not $AllPermissionsRow.Permissions) { + $AllPermissions = Get-CIPPHttpFunctions -ByRole | Select-Object -ExpandProperty Permission + $Entity = @{ + PartitionKey = 'HttpFunctions' + RowKey = 'HttpFunctions' + Version = [string]$Version + Permissions = [string]($AllPermissions | ConvertTo-Json -Compress) + } + Add-CIPPAzDataTableEntity @AllPermissionCacheTable -Entity $Entity -Force + } else { + $AllPermissions = $AllPermissionsRow.Permissions | ConvertFrom-Json + } + + $AllowedPermissions = [System.Collections.Generic.List[string]]::new() + + # Determine user's primary base role (highest priority first) + $BaseRole = $null + $PrimaryRole = $null + + if ($UserRoles -contains 'superadmin') { + $PrimaryRole = 'superadmin' + } elseif ($UserRoles -contains 'admin') { + $PrimaryRole = 'admin' + } elseif ($UserRoles -contains 'editor') { + $PrimaryRole = 'editor' + } elseif ($UserRoles -contains 'readonly') { + $PrimaryRole = 'readonly' + } + + if ($PrimaryRole) { + $BaseRole = $BaseRoles.PSObject.Properties | Where-Object { $_.Name -eq $PrimaryRole } | Select-Object -First 1 + } + + # Get custom roles (non-default roles) + $CustomRoles = $UserRoles | Where-Object { $DefaultRoles -notcontains $_ } + + # For admin and superadmin: Compute permissions from base role include/exclude rules + if ($PrimaryRole -in @('admin', 'superadmin')) { + + if ($BaseRole) { + # Start with all permissions and apply include/exclude rules + $BasePermissions = [System.Collections.Generic.List[string]]::new() + + # Apply include rules + foreach ($Include in $BaseRole.Value.include) { + $MatchingPermissions = $AllPermissions | Where-Object { $_ -like $Include } + foreach ($Permission in $MatchingPermissions) { + if ($BasePermissions -notcontains $Permission) { + $BasePermissions.Add($Permission) + } + } + } + + # Apply exclude rules + foreach ($Exclude in $BaseRole.Value.exclude) { + $ExcludedPermissions = $BasePermissions | Where-Object { $_ -like $Exclude } + foreach ($Permission in $ExcludedPermissions) { + $BasePermissions.Remove($Permission) | Out-Null + } + } + + foreach ($Permission in $BasePermissions) { + $AllowedPermissions.Add($Permission) + } + } + } + # For editor and readonly: Start with base role permissions and restrict with custom roles + elseif ($PrimaryRole -in @('editor', 'readonly')) { + Write-Information "Computing permissions for $PrimaryRole with custom role restrictions" + + if ($BaseRole) { + # Get base role permissions first + $BasePermissions = [System.Collections.Generic.List[string]]::new() + + # Apply include rules from base role + foreach ($Include in $BaseRole.Value.include) { + $MatchingPermissions = $AllPermissions | Where-Object { $_ -like $Include } + foreach ($Permission in $MatchingPermissions) { + if ($BasePermissions -notcontains $Permission) { + $BasePermissions.Add($Permission) + } + } + } + + # Apply exclude rules from base role + foreach ($Exclude in $BaseRole.Value.exclude) { + $ExcludedPermissions = $BasePermissions | Where-Object { $_ -like $Exclude } + foreach ($Permission in $ExcludedPermissions) { + $BasePermissions.Remove($Permission) | Out-Null + } + } + + # If custom roles exist, intersect with custom role permissions (restriction) + if ($CustomRoles.Count -gt 0) { + $CustomRolePermissions = [System.Collections.Generic.List[string]]::new() + + foreach ($CustomRole in $CustomRoles) { + try { + $RolePermissions = Get-CIPPRolePermissions -RoleName $CustomRole + foreach ($Permission in $RolePermissions.Permissions) { + if ($null -ne $Permission -and $Permission -is [string] -and $CustomRolePermissions -notcontains $Permission) { + $CustomRolePermissions.Add($Permission) + } + } + } catch { + Write-Warning "Failed to get permissions for custom role '$CustomRole': $($_.Exception.Message)" + } + } + + # Restrict base permissions to only those allowed by custom roles + # Include Read permissions when ReadWrite permissions are present + $RestrictedPermissions = $BasePermissions | Where-Object { + $Permission = $_ + if ($CustomRolePermissions -contains $Permission) { + $true + } elseif ($Permission -match 'Read$') { + # Check if there's a corresponding ReadWrite permission + $ReadWritePermission = $Permission -replace 'Read', 'ReadWrite' + $CustomRolePermissions -contains $ReadWritePermission + } else { + $false + } + } + foreach ($Permission in $RestrictedPermissions) { + if ($null -ne $Permission -and $Permission -is [string]) { + $AllowedPermissions.Add($Permission) + } + } + } else { + # No custom roles, use base role permissions + foreach ($Permission in $BasePermissions) { + if ($null -ne $Permission -and $Permission -is [string]) { + $AllowedPermissions.Add($Permission) + } + } + } + } + } + # Handle users with only custom roles (no base role) + elseif ($CustomRoles.Count -gt 0) { + foreach ($CustomRole in $CustomRoles) { + try { + $RolePermissions = Get-CIPPRolePermissions -RoleName $CustomRole + foreach ($Permission in $RolePermissions.Permissions) { + if ($null -ne $Permission -and $Permission -is [string] -and $AllowedPermissions -notcontains $Permission) { + $AllowedPermissions.Add($Permission) + } + } + } catch { + Write-Warning "Failed to get permissions for custom role '$CustomRole': $($_.Exception.Message)" + } + } + } + + # Return sorted unique permissions + return ($AllowedPermissions | Where-Object { $_ -notmatch 'None$' } | Sort-Object -Unique) +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 new file mode 100644 index 000000000000..1c5880fd8be1 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 @@ -0,0 +1,32 @@ +function Get-CippApiAuth { + param( + [string]$RGName, + [string]$FunctionAppName + ) + + $SubscriptionId = Get-CIPPAzFunctionAppSubId + + try { + # Get auth settings via REST + $uri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" + $response = New-CIPPAzRestRequest -Uri $uri -Method POST -ErrorAction Stop + $AuthSettings = $response.properties + } catch { + Write-Warning "Failed to get auth settings via REST: $($_.Exception.Message)" + } + + if (!$AuthSettings -and $env:WEBSITE_AUTH_V2_CONFIG_JSON) { + $AuthSettings = $env:WEBSITE_AUTH_V2_CONFIG_JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + } + + if ($AuthSettings) { + [PSCustomObject]@{ + ApiUrl = "https://$($env:WEBSITE_HOSTNAME)" + TenantID = $AuthSettings.identityProviders.azureActiveDirectory.registration.openIdIssuer -replace 'https://sts.windows.net/', '' -replace '/v2.0', '' + ClientIDs = $AuthSettings.identityProviders.azureActiveDirectory.validation.defaultAuthorizationPolicy.allowedApplications + Enabled = $AuthSettings.identityProviders.azureActiveDirectory.enabled + } + } else { + throw 'No auth settings found' + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippApiClient.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippApiClient.ps1 new file mode 100644 index 000000000000..d316537c4a01 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CippApiClient.ps1 @@ -0,0 +1,43 @@ +function Get-CippApiClient { + <# + .SYNOPSIS + Get the API client details + .DESCRIPTION + This function retrieves the API client details + .PARAMETER AppId + The AppId of the API client + .EXAMPLE + Get-CippApiClient -AppId 'cipp-api' + #> + [CmdletBinding()] + param ( + $AppId + ) + + $Table = Get-CIPPTable -TableName 'ApiClients' + if ($AppId) { + $Table.Filter = "RowKey eq '$AppId'" + } + $Apps = Get-CIPPAzDataTableEntity @Table | Where-Object { ![string]::IsNullOrEmpty($_.RowKey) } + $Apps = foreach ($Client in $Apps) { + $Client = $Client | Select-Object -Property @{Name = 'ClientId'; Expression = { $_.RowKey } }, AppName, Role, IPRange, Enabled + + if (!$Client.Role) { + $Client.Role = $null + } + + if ($Client.IPRange) { + try { + $IPRange = @($Client.IPRange | ConvertFrom-Json -ErrorAction Stop) + if (($IPRange | Measure-Object).Count -eq 0) { @('Any') } + $Client.IPRange = $IPRange + } catch { + $Client.IPRange = @('Any') + } + } else { + $Client.IPRange = @('Any') + } + $Client + } + return $Apps +} diff --git a/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 b/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 new file mode 100644 index 000000000000..948d2a17f1fa --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/New-CIPPAPIConfig.ps1 @@ -0,0 +1,130 @@ +function New-CIPPAPIConfig { + + [CmdletBinding(SupportsShouldProcess)] + param ( + $APIName = 'CIPP API Config', + $Headers, + [switch]$ResetSecret, + [string]$AppName, + [string]$AppId + ) + + $Permissions = Get-GraphToken -tenantid $env:TenantID -scope 'https://graph.microsoft.com/.default' -AsApp $true -SkipCache $true -ReturnRefresh $true + $Token = Read-JwtAccessDetails -Token $Permissions.access_token + $Permissions = $Token.Roles | Where-Object { $_ -match 'Application.ReadWrite.All' -or $_ -match 'Directory.ReadWrite.All' } + if (!$Permissions -or $Permissions.Count -lt 2) { + Write-LogMessage -headers $Headers -API $APINAME -tenant 'None '-message 'Insufficient permissions to create API App' -Sev 'Error' + throw 'Insufficient permissions to create API App. This integration requires the following Application permissions in the partner tenant. Application.ReadWrite.All, Directory.ReadWrite.All' + } + + try { + if ($AppId) { + $APIApp = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appid='$($AppId)')" -NoAuthCheck $true -AsApp $true + Write-Information "Found existing app with AppId $AppId" + } else { + $CreateBody = @{ + api = @{ + oauth2PermissionScopes = @( + @{ + adminConsentDescription = 'Allow the application to access CIPP-API on behalf of the signed-in user.' + adminConsentDisplayName = 'Access CIPP-API' + id = 'ba7ffeff-96ea-4ac4-9822-1bcfee9adaa4' + isEnabled = $true + type = 'User' + userConsentDescription = 'Allow the application to access CIPP-API on your behalf.' + userConsentDisplayName = 'Access CIPP-API' + value = 'user_impersonation' + } + ) + } + displayName = $AppName + requiredResourceAccess = @( + @{ + resourceAccess = @( + @{ + id = 'e1fe6dd8-ba31-4d61-89e7-88639da4683d' + type = 'Scope' + } + ) + resourceAppId = '00000003-0000-0000-c000-000000000000' + } + ) + signInAudience = 'AzureADMyOrg' + web = @{ + homePageUrl = 'https://cipp.app' + implicitGrantSettings = @{ + enableAccessTokenIssuance = $false + enableIdTokenIssuance = $true + } + redirectUris = @("https://$($env:WEBSITE_HOSTNAME)/.auth/login/aad/callback") + } + } | ConvertTo-Json -Depth 10 -Compress + + if ($PSCmdlet.ShouldProcess($AppName, 'Create API App')) { + Write-Information 'Creating app' + Write-Information $CreateBody + $Step = 'Creating Application' + $APIApp = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/applications' -AsApp $true -NoAuthCheck $true -type POST -body $CreateBody + Write-Information 'Creating password' + $Step = 'Creating Application Password' + $APIPassword = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)/addPassword" -AsApp $true -NoAuthCheck $true -type POST -body "{`"passwordCredential`":{`"displayName`":`"Generated by API Setup`"}}" -maxRetries 3 + Write-Information 'Adding App URL' + $Step = 'Adding Application Identifier URI' + $APIIdUrl = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($APIApp.id)" -AsApp $true -NoAuthCheck $true -type PATCH -body "{`"identifierUris`":[`"api://$($APIApp.appId)`"]}" -maxRetries 3 + Write-Information 'Adding serviceprincipal' + $Step = 'Creating Service Principal' + $ServicePrincipal = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/serviceprincipals' -AsApp $true -NoAuthCheck $true -type POST -body "{`"accountEnabled`":true,`"appId`":`"$($APIApp.appId)`",`"displayName`":`"$AppName`",`"tags`":[`"WindowsAzureActiveDirectoryIntegratedApp`",`"AppServiceIntegratedApp`"]}" -maxRetries 3 + Write-LogMessage -headers $Headers -API $APINAME -tenant 'None '-message "Created CIPP-API App with name '$($APIApp.displayName)'." -Sev 'info' + } + } + if ($ResetSecret.IsPresent -and $APIApp) { + if ($PSCmdlet.ShouldProcess($APIApp.displayName, 'Reset API Secret')) { + $Step = 'Resetting Application Password' + Write-Information 'Removing all old passwords' + $Requests = @( + @{ + id = 'removeOldPasswords' + method = 'PATCH' + url = "applications/$($APIApp.id)/" + headers = @{ + 'Content-Type' = 'application/json' + } + body = @{ + passwordCredentials = @() + } + }, + @{ + id = 'addNewPassword' + method = 'POST' + url = "applications/$($APIApp.id)/addPassword" + headers = @{ + 'Content-Type' = 'application/json' + } + body = @{ + passwordCredential = @{ + displayName = 'Generated by API Setup' + } + } + dependsOn = @('removeOldPasswords') + } + ) + $BatchResponse = New-GraphBulkRequest -tenantid $env:TenantID -NoAuthCheck $true -asapp $true -Requests $Requests + $APIPassword = $BatchResponse | Where-Object { $_.id -eq 'addNewPassword' } | Select-Object -ExpandProperty body + Write-LogMessage -headers $Headers -API $APINAME -tenant 'None '-message "Reset CIPP-API Password for '$($APIApp.displayName)'." -Sev 'info' + } + } + + return @{ + AppName = $APIApp.displayName + ApplicationID = $APIApp.appId + ApplicationSecret = $APIPassword.secretText + Results = $Results + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Information ($ErrorMessage | ConvertTo-Json -Depth 10) + Write-LogMessage -headers $Headers -API $APINAME -tenant 'None' -message "CIPP-API Setup failed at step ($Step): $($ErrorMessage.NormalizedError) Linenumber: $($_.InvocationInfo.ScriptLineNumber)" -Sev 'Error' -LogData $ErrorMessage + throw "Failed to setup CIPP-API Access: $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Set-CIPPAccessRole.ps1 b/Modules/CIPPCore/Public/Authentication/Set-CIPPAccessRole.ps1 new file mode 100644 index 000000000000..f74e8a3e9f65 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Set-CIPPAccessRole.ps1 @@ -0,0 +1,51 @@ +function Set-CIPPAccessRole { + <# + .SYNOPSIS + Set the access role mappings + + .DESCRIPTION + Set the access role mappings for Entra groups + + .PARAMETER Role + The role to set (e.g. 'superadmin','admin','editor','readonly','customrole') + + .PARAMETER Group + The Entra group to set the role for + + .FUNCTIONALITY + Internal + #> + [CmdletBinding(SupportsShouldProcess = $true)] + Param( + [Parameter(Mandatory = $true)] + [string]$Role, + [Parameter(Mandatory = $true)] + [string]$Group + ) + + $BlacklistedRoles = @('authenticated', 'anonymous') + + if ($BlacklistedRoles -contains $Role) { + throw 'Role group cannot be set for authenticated or anonymous roles' + } + + if (!$Group.id -or !$Group.displayName) { + throw 'Group is not valid' + } + + $Role = $Role.ToLower().Trim() -replace ' ', '' + + $Table = Get-CippTable -TableName AccessRoleGroups + $AccessGroup = Get-CIPPAzDataTableEntity @Table -Filter "RowKey = '$Role'" + + $AccessGroup = [PSCustomObject]@{ + PartitionKey = [string]'AccessRole' + RowKey = [string]$Role + GroupId = [string]$Group.id + GroupName = [string]$Group.displayName + } + + if ($PSCmdlet.ShouldProcess("Setting access role $Role for group $($Group.displayName)")) { + Add-CIPPAzDataTableEntity -Table $Table -Entity $AccessGroup -Force + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 b/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 new file mode 100644 index 000000000000..91e40acb6290 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Set-CippApiAuth.ps1 @@ -0,0 +1,73 @@ +function Set-CippApiAuth { + [CmdletBinding(SupportsShouldProcess)] + param( + [string]$RGName, + [string]$FunctionAppName, + [string]$TenantId, + [string[]]$ClientIds + ) + + # Resolve subscription ID via helper (managed identity environment assumed for ARM). + $SubscriptionId = Get-CIPPAzFunctionAppSubId + + # Get auth settings via ARM REST (managed identity) + $getUri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2/list?api-version=2020-06-01" + $resp = New-CIPPAzRestRequest -Uri $getUri -Method 'GET' + $AuthSettings = $resp | Select-Object -ExpandProperty Content -ErrorAction SilentlyContinue + if ($AuthSettings -is [string]) { $AuthSettings = $AuthSettings | ConvertFrom-Json } + else { $AuthSettings = $resp } + + Write-Information "AuthSettings: $($AuthSettings | ConvertTo-Json -Depth 10)" + + # Set allowed audiences + $AllowedAudiences = foreach ($ClientId in $ClientIds) { + "api://$ClientId" + } + + if (!$AllowedAudiences) { $AllowedAudiences = @() } + if (!$ClientIds) { $ClientIds = @() } + + # Set auth settings + + if (($ClientIds | Measure-Object).Count -gt 0) { + $AuthSettings.properties.identityProviders.azureActiveDirectory = @{ + enabled = $true + registration = @{ + clientId = $ClientIds[0] ?? $ClientIds + openIdIssuer = "https://sts.windows.net/$TenantID/v2.0" + } + validation = @{ + allowedAudiences = @($AllowedAudiences) + defaultAuthorizationPolicy = @{ + allowedApplications = @($ClientIds) + } + } + } + } else { + $AuthSettings.properties.identityProviders.azureActiveDirectory = @{ + enabled = $false + registration = @{} + validation = @{} + } + } + + $AuthSettings.properties.globalValidation = @{ + unauthenticatedClientAction = 'Return401' + } + $AuthSettings.properties.login = @{ + tokenStore = @{ + enabled = $true + tokenRefreshExtensionHours = 72 + } + } + + if ($PSCmdlet.ShouldProcess('Update auth settings')) { + # Update auth settings via ARM REST + $putUri = "https://management.azure.com/subscriptions/$SubscriptionId/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($FunctionAppName)/config/authsettingsV2?api-version=2020-06-01" + $null = New-CIPPAzRestRequest -Uri $putUri -Method 'PUT' -Body $AuthSettings -ContentType 'application/json' + } + + if ($PSCmdlet.ShouldProcess('Update allowed tenants')) { + $null = Update-CIPPAzFunctionAppSetting -Name $FunctionAppName -ResourceGroupName $RGName -AppSetting @{ 'WEBSITE_AUTH_AAD_ALLOWED_TENANTS' = $TenantId } + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 new file mode 100644 index 000000000000..7def9e058199 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 @@ -0,0 +1,516 @@ +function Test-CIPPAccess { + param( + $Request, + [switch]$TenantList, + [switch]$GroupList + ) + # Initialize per-call profiling + $AccessTimings = @{} + $AccessTotalSw = [System.Diagnostics.Stopwatch]::StartNew() + if ($Request.Params.CIPPEndpoint -eq 'ExecSAMSetup') { return $true } + + # Get function help + $FunctionName = 'Invoke-{0}' -f $Request.Params.CIPPEndpoint + + $SwPermissions = [System.Diagnostics.Stopwatch]::StartNew() + if (-not $global:CIPPFunctionPermissions) { + $CIPPCoreModule = Get-Module -Name CIPPCore + if ($CIPPCoreModule) { + $PermissionsFileJson = Join-Path $CIPPCoreModule.ModuleBase 'lib' 'data' 'function-permissions.json' + + if (Test-Path $PermissionsFileJson) { + try { + $jsonData = Get-Content -Path $PermissionsFileJson -Raw | ConvertFrom-Json -AsHashtable + $global:CIPPFunctionPermissions = [System.Collections.Hashtable]::new([StringComparer]::OrdinalIgnoreCase) + foreach ($key in $jsonData.Keys) { + $global:CIPPFunctionPermissions[$key] = $jsonData[$key] + } + Write-Debug "Loaded $($global:CIPPFunctionPermissions.Count) function permissions from JSON cache" + } catch { + Write-Warning "Failed to load function permissions from JSON: $($_.Exception.Message)" + } + } + } + } + $SwPermissions.Stop() + $AccessTimings['FunctionPermissions'] = $SwPermissions.Elapsed.TotalMilliseconds + + if ($FunctionName -ne 'Invoke-me') { + $swHelp = [System.Diagnostics.Stopwatch]::StartNew() + if ($global:CIPPFunctionPermissions -and $global:CIPPFunctionPermissions.ContainsKey($FunctionName)) { + $PermissionData = $global:CIPPFunctionPermissions[$FunctionName] + $APIRole = $PermissionData['Role'] + $Functionality = $PermissionData['Functionality'] + Write-Debug "Loaded function permission data from cache for '$FunctionName': Role='$APIRole', Functionality='$Functionality'" + } else { + try { + $Help = Get-Help $FunctionName -ErrorAction Stop + $APIRole = $Help.Role + $Functionality = $Help.Functionality + Write-Debug "Loaded function permission data via Get-Help for '$FunctionName': Role='$APIRole', Functionality='$Functionality'" + } catch { + Write-Warning "Function '$FunctionName' not found" + } + } + $swHelp.Stop() + $AccessTimings['GetHelp'] = $swHelp.Elapsed.TotalMilliseconds + } + + # Get default roles from config + $swRolesLoad = [System.Diagnostics.Stopwatch]::StartNew() + $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent + $BaseRoles = Get-Content -Path $CIPPRoot\Config\cipp-roles.json | ConvertFrom-Json + $swRolesLoad.Stop() + $AccessTimings['LoadBaseRoles'] = $swRolesLoad.Elapsed.TotalMilliseconds + $DefaultRoles = @('superadmin', 'admin', 'editor', 'readonly', 'anonymous', 'authenticated') + + if ($APIRole -eq 'Public') { + return $true + } + + if ($Request.Headers.'x-ms-client-principal-idp' -eq 'aad' -and $Request.Headers.'x-ms-client-principal-name' -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') { + $Type = 'APIClient' + $swApiClient = [System.Diagnostics.Stopwatch]::StartNew() + # Direct API Access + $ForwardedFor = $Request.Headers.'x-forwarded-for' -split ',' | Select-Object -First 1 + $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' + $IPAddress = $ForwardedFor -replace $IPRegex, '$1' -replace '[\[\]]', '' + + $Client = Get-CippApiClient -AppId $Request.Headers.'x-ms-client-principal-name' + if ($Client) { + Write-Information "API Access: AppName=$($Client.AppName), AppId=$($Request.Headers.'x-ms-client-principal-name'), IP=$IPAddress" + $IPMatched = $false + if ($Client.IPRange -notcontains 'Any') { + foreach ($Range in $Client.IPRange) { + if ($IPaddress -eq $Range -or (Test-IpInRange -IPAddress $IPAddress -Range $Range)) { + $IPMatched = $true + break + } + } + } else { + $IPMatched = $true + } + + if ($IPMatched) { + if ($Client.Role) { + $CustomRoles = $Client.Role | ForEach-Object { + if ($DefaultRoles -notcontains $_) { + $_ + } + } + $BaseRole = $null + foreach ($Role in $BaseRoles.PSObject.Properties) { + foreach ($ClientRole in $Client.Role) { + if ($Role.Name -eq $ClientRole) { + $BaseRole = $Role + break + } + } + } + } else { + $CustomRoles = @('cipp-api') + } + } else { + throw 'Access to this CIPP API endpoint is not allowed, the API Client does not have the required permission' + } + } else { + $CustomRoles = @('cipp-api') + Write-Information "API Access: AppId=$($Request.Headers.'x-ms-client-principal-name'), IP=$IPAddress" + } + if ($Request.Params.CIPPEndpoint -eq 'me') { + $Permissions = Get-CippAllowedPermissions -UserRoles $CustomRoles + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ( + @{ + 'clientPrincipal' = @{ + appId = $Request.Headers.'x-ms-client-principal-name' + appRole = $CustomRoles + } + 'permissions' = $Permissions + } | ConvertTo-Json -Depth 5) + }) + } + $swApiClient.Stop() + $AccessTimings['ApiClientBranch'] = $swApiClient.Elapsed.TotalMilliseconds + + } else { + $Type = 'User' + $swUserBranch = [System.Diagnostics.Stopwatch]::StartNew() + $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json + + # Check for roles granted via group membership + if (($User.userRoles | Measure-Object).Count -eq 2 -and $User.userRoles -contains 'authenticated' -and $User.userRoles -contains 'anonymous') { + $swResolveUserRoles = [System.Diagnostics.Stopwatch]::StartNew() + $User = Test-CIPPAccessUserRole -User $User + $swResolveUserRoles.Stop() + $AccessTimings['ResolveUserRoles'] = $swResolveUserRoles.Elapsed.TotalMilliseconds + } + + $swIPCheck = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedIPRanges = Get-CIPPRoleIPRanges -Roles $User.userRoles + + if ($AllowedIPRanges -notcontains 'Any') { + $ForwardedFor = $Request.Headers.'x-forwarded-for' -split ',' | Select-Object -First 1 + $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' + $IPAddress = $ForwardedFor -replace $IPRegex, '$1' -replace '[\[\]]', '' + if ($IPAddress) { + $IPAllowed = $false + foreach ($Range in $AllowedIPRanges) { + if ($IPAddress -eq $Range -or (Test-IpInRange -IPAddress $IPAddress -Range $Range)) { + $IPAllowed = $true + break + } + } + + if (-not $IPAllowed -and -not $Request.Params.CIPPEndpoint -eq 'me') { + throw "Access to this CIPP API endpoint is not allowed, your IP address ($IPAddress) is not in the allowed range for your role(s)" + } + } else { + $IPAllowed = $true + } + } else { + $IPAllowed = $true + } + + $swIPCheck.Stop() + $AccessTimings['IPRangeCheck'] = $swIPCheck.Elapsed.TotalMilliseconds + + if ($Request.Params.CIPPEndpoint -eq 'me') { + + if (!$User.userRoles) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ( + @{ + 'clientPrincipal' = $null + 'permissions' = @() + } | ConvertTo-Json -Depth 5) + }) + } + + if (!$IPAllowed) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ( + @{ + 'clientPrincipal' = $null + 'permissions' = @() + 'message' = "Your IP address ($IPAddress) is not in the allowed range for your role(s)" + } | ConvertTo-Json -Depth 5) + }) + } + + $swPermsMe = [System.Diagnostics.Stopwatch]::StartNew() + $Permissions = Get-CippAllowedPermissions -UserRoles $User.userRoles + $swPermsMe.Stop() + $AccessTimings['GetPermissions(me)'] = $swPermsMe.Elapsed.TotalMilliseconds + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ( + @{ + 'clientPrincipal' = $User + 'permissions' = $Permissions + } | ConvertTo-Json -Depth 5) + }) + } + + if ($User.userRoles -contains 'admin' -or $User.userRoles -contains 'superadmin') { + if ($TenantList.IsPresent) { + return @('AllTenants') + } + } + + $CustomRoles = $User.userRoles | ForEach-Object { + if ($DefaultRoles -notcontains $_) { + $_ + } + } + + $BaseRole = $null + + if ($User.userRoles -contains 'superadmin') { + $User.userRoles = @('superadmin') + } elseif ($User.userRoles -contains 'admin') { + $User.userRoles = @('admin') + } + foreach ($Role in $BaseRoles.PSObject.Properties) { + foreach ($UserRole in $User.userRoles) { + if ($Role.Name -eq $UserRole) { + $BaseRole = $Role + break + } + } + } + + } + + # Check base role permissions before continuing to custom roles + if ($null -ne $BaseRole) { + Write-Information "Base Role: $($BaseRole.Name)" + $BaseRoleAllowed = $false + foreach ($Include in $BaseRole.Value.include) { + if ($APIRole -like $Include) { + $BaseRoleAllowed = $true + break + } + } + foreach ($Exclude in $BaseRole.Value.exclude) { + if ($APIRole -like $Exclude) { + $BaseRoleAllowed = $false + break + } + } + if (!$BaseRoleAllowed) { + throw "Access to this CIPP API endpoint is not allowed, the '$($BaseRole.Name)' base role does not have the required permission: $APIRole" + } + } + + # Check custom role permissions for limitations on api calls or tenants + if ($null -eq $BaseRole.Name -and $Type -eq 'User' -and ($CustomRoles | Measure-Object).Count -eq 0) { + Write-Information $BaseRole.Name + throw 'Access to this CIPP API endpoint is not allowed, the user does not have the required permission' + } elseif (($CustomRoles | Measure-Object).Count -gt 0) { + if (@('admin', 'superadmin') -contains $BaseRole.Name) { + return $true + } else { + $swTenantsLoad = [System.Diagnostics.Stopwatch]::StartNew() + $Tenants = Get-Tenants -IncludeErrors + $swTenantsLoad.Stop() + $AccessTimings['LoadTenants'] = $swTenantsLoad.Elapsed.TotalMilliseconds + $PermissionsFound = $false + $swRolePerms = [System.Diagnostics.Stopwatch]::StartNew() + $PermissionSet = foreach ($CustomRole in $CustomRoles) { + try { + Get-CIPPRolePermissions -Role $CustomRole + $PermissionsFound = $true + } catch { + Write-Information $_.Exception.Message + continue + } + } + $swRolePerms.Stop() + $AccessTimings['GetRolePermissions'] = $swRolePerms.Elapsed.TotalMilliseconds + + if ($PermissionsFound) { + if ($TenantList.IsPresent) { + $swTenantList = [System.Diagnostics.Stopwatch]::StartNew() + $LimitedTenantList = foreach ($Permission in $PermissionSet) { + if ((($Permission.AllowedTenants | Measure-Object).Count -eq 0 -or $Permission.AllowedTenants -contains 'AllTenants') -and (($Permission.BlockedTenants | Measure-Object).Count -eq 0)) { + @('AllTenants') + } else { + # Expand tenant groups to individual tenant IDs + $ExpandedAllowedTenants = foreach ($AllowedItem in $Permission.AllowedTenants) { + if ($AllowedItem -is [PSCustomObject] -and $AllowedItem.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($AllowedItem) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand tenant group '$($AllowedItem.label)': $($_.Exception.Message)" + @() + } + } else { + $AllowedItem + } + } + + $ExpandedBlockedTenants = foreach ($BlockedItem in $Permission.BlockedTenants) { + if ($BlockedItem -is [PSCustomObject] -and $BlockedItem.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($BlockedItem) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand blocked tenant group '$($BlockedItem.label)': $($_.Exception.Message)" + @() + } + } else { + $BlockedItem + } + } + + if ($ExpandedAllowedTenants -contains 'AllTenants') { + $ExpandedAllowedTenants = $Tenants.customerId + } + $ExpandedAllowedTenants | Where-Object { $ExpandedBlockedTenants -notcontains $_ } + } + } + $swTenantList.Stop() + $AccessTimings['BuildTenantList'] = $swTenantList.Elapsed.TotalMilliseconds + return @($LimitedTenantList | Sort-Object -Unique) + } elseif ($GroupList.IsPresent) { + $swGroupList = [System.Diagnostics.Stopwatch]::StartNew() + Write-Information "Getting allowed groups for roles: $($CustomRoles -join ', ')" + $LimitedGroupList = foreach ($Permission in $PermissionSet) { + if ((($Permission.AllowedTenants | Measure-Object).Count -eq 0 -or $Permission.AllowedTenants -contains 'AllTenants') -and (($Permission.BlockedTenants | Measure-Object).Count -eq 0)) { + @('AllGroups') + } else { + foreach ($AllowedItem in $Permission.AllowedTenants) { + if ($AllowedItem -is [PSCustomObject] -and $AllowedItem.type -eq 'Group') { + $AllowedItem.value + } + } + } + } + $swGroupList.Stop() + $AccessTimings['BuildGroupList'] = $swGroupList.Elapsed.TotalMilliseconds + return @($LimitedGroupList | Sort-Object -Unique) + } + + $TenantAllowed = $false + $APIAllowed = $false + $swPermissionEval = [System.Diagnostics.Stopwatch]::StartNew() + foreach ($Role in $PermissionSet) { + foreach ($Perm in $Role.Permissions) { + if ($Perm -match $APIRole) { + if ($Role.BlockedEndpoints -contains $Request.Params.CIPPEndpoint) { + throw "Access to this CIPP API endpoint is not allowed, the custom role '$($Role.Role)' has blocked this endpoint: $($Request.Params.CIPPEndpoint)" + } + $APIAllowed = $true + break + } + } + + if ($APIAllowed) { + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter.value ?? $Request.Body.tenantFilter ?? $Request.Query.tenantId ?? $Request.Body.tenantId.value ?? $Request.Body.tenantId ?? $env:TenantID + # Check tenant level access + if (($Role.BlockedTenants | Measure-Object).Count -eq 0 -and $Role.AllowedTenants -contains 'AllTenants') { + $TenantAllowed = $true + } elseif ($TenantFilter -eq 'AllTenants' -and $ApiRole -match 'Write$') { + $TenantAllowed = $false + } elseif ($TenantFilter -eq 'AllTenants' -and $ApiRole -match 'Read$') { + $TenantAllowed = $true + } else { + $Tenant = ($Tenants | Where-Object { $TenantFilter -eq $_.customerId -or $TenantFilter -eq $_.defaultDomainName }).customerId + + # Expand allowed tenant groups to individual tenant IDs + $ExpandedAllowedTenants = foreach ($AllowedItem in $Role.AllowedTenants) { + if ($AllowedItem -is [PSCustomObject] -and $AllowedItem.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($AllowedItem) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand allowed tenant group '$($AllowedItem.label)': $($_.Exception.Message)" + @() + } + } else { + $AllowedItem + } + } + + # Expand blocked tenant groups to individual tenant IDs + $ExpandedBlockedTenants = foreach ($BlockedItem in $Role.BlockedTenants) { + if ($BlockedItem -is [PSCustomObject] -and $BlockedItem.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($BlockedItem) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand blocked tenant group '$($BlockedItem.label)': $($_.Exception.Message)" + @() + } + } else { + $BlockedItem + } + } + + if ($ExpandedAllowedTenants -contains 'AllTenants') { + $AllowedTenants = $Tenants.customerId + } else { + $AllowedTenants = $ExpandedAllowedTenants + } + + if ($Tenant) { + $TenantAllowed = $AllowedTenants -contains $Tenant -and $ExpandedBlockedTenants -notcontains $Tenant + if (!$TenantAllowed) { continue } + break + } else { + $TenantAllowed = $true + break + } + } + } + } + $swPermissionEval.Stop() + $AccessTimings['EvaluatePermissions'] = $swPermissionEval.Elapsed.TotalMilliseconds + + if (!$APIAllowed) { + throw "Access to this CIPP API endpoint is not allowed, you do not have the required permission: $APIRole" + } + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { + throw 'Access to this tenant is not allowed' + } else { + return $true + } + } else { + # No permissions found for any roles + if ($TenantList.IsPresent) { + return @('AllTenants') + } + return $true + if ($APIAllowed) { + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter.value ?? $Request.Body.tenantFilter ?? $Request.Query.tenantId ?? $Request.Body.tenantId.value ?? $Request.Body.tenantId ?? $env:TenantID + # Check tenant level access + if (($Role.BlockedTenants | Measure-Object).Count -eq 0 -and $Role.AllowedTenants -contains 'AllTenants') { + $TenantAllowed = $true + } elseif ($TenantFilter -eq 'AllTenants') { + $TenantAllowed = $false + } else { + $Tenant = ($Tenants | Where-Object { $TenantFilter -eq $_.customerId -or $TenantFilter -eq $_.defaultDomainName }).customerId + + if ($Role.AllowedTenants -contains 'AllTenants') { + $AllowedTenants = $Tenants.customerId + } else { + $AllowedTenants = $Role.AllowedTenants + } + if ($Tenant) { + $TenantAllowed = $AllowedTenants -contains $Tenant -and $Role.BlockedTenants -notcontains $Tenant + if (!$TenantAllowed) { continue } + break + } else { + $TenantAllowed = $true + break + } + } + } + } + + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { + + if (!$APIAllowed) { + throw "Access to this CIPP API endpoint is not allowed, you do not have the required permission: $APIRole" + } + if (!$TenantAllowed -and $Functionality -notmatch 'AnyTenant') { + Write-Information "Tenant not allowed: $TenantFilter" + + throw 'Access to this tenant is not allowed' + } else { + return $true + } + + } + } else { + # No permissions found for any roles + if ($TenantList.IsPresent) { + return @('AllTenants') + } + return $true + } + $swUserBranch.Stop() + $AccessTimings['UserBranch'] = $swUserBranch.Elapsed.TotalMilliseconds + } + + if ($TenantList.IsPresent) { + $AccessTotalSw.Stop() + $AccessTimings['Total'] = $AccessTotalSw.Elapsed.TotalMilliseconds + $AccessTimingsRounded = [ordered]@{} + foreach ($Key in ($AccessTimings.Keys | Sort-Object)) { $AccessTimingsRounded[$Key] = [math]::Round($AccessTimings[$Key], 2) } + Write-Debug "#### Access Timings #### $($AccessTimingsRounded | ConvertTo-Json -Compress)" + return @('AllTenants') + } + $AccessTotalSw.Stop() + $AccessTimings['Total'] = $AccessTotalSw.Elapsed.TotalMilliseconds + $AccessTimingsRounded = [ordered]@{} + foreach ($Key in ($AccessTimings.Keys | Sort-Object)) { $AccessTimingsRounded[$Key] = [math]::Round($AccessTimings[$Key], 2) } + Write-Debug "#### Access Timings #### $($AccessTimingsRounded | ConvertTo-Json -Compress)" + return $true +} diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 new file mode 100644 index 000000000000..82fc925e0687 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 @@ -0,0 +1,133 @@ +function Test-CIPPAccessUserRole { + <# + .SYNOPSIS + Get the access role for the current user + + .DESCRIPTION + Get the access role for the current user + + .PARAMETER TenantID + The tenant ID to check the access role for + + .EXAMPLE + Get-CippAccessRole -UserId $UserId + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $User + ) + # Initialize per-call profiling + $UserRoleTimings = @{} + $UserRoleTotalSw = [System.Diagnostics.Stopwatch]::StartNew() + $Roles = @() + + # Check AsyncLocal cache first (per-request cache) + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value -and $script:CippUserRolesStorage.Value.ContainsKey($User.userDetails)) { + $Roles = $script:CippUserRolesStorage.Value[$User.userDetails] + } else { + # Check table storage cache (persistent cache) + try { + $swTableLookup = [System.Diagnostics.Stopwatch]::StartNew() + $Table = Get-CippTable -TableName cacheAccessUserRoles + $Filter = "PartitionKey eq 'AccessUser' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-15).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))'" + $UserRole = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $swTableLookup.Stop() + $UserRoleTimings['TableLookup'] = $swTableLookup.Elapsed.TotalMilliseconds + } catch { + Write-Information "Could not access cached user roles table. $($_.Exception.Message)" + $UserRole = $null + } + if ($UserRole) { + Write-Information "Found cached user role for $($User.userDetails)" + $Roles = $UserRole.Role | ConvertFrom-Json + + # Store in AsyncLocal cache for this request + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value[$User.userDetails] = $Roles + } + } else { + try { + $swGraphMemberships = [System.Diagnostics.Stopwatch]::StartNew() + $uri = "https://graph.microsoft.com/beta/users/$($User.userDetails)/transitiveMemberOf" + $Memberships = New-GraphGetRequest -uri $uri -NoAuthCheck $true -AsApp $true | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' } + $swGraphMemberships.Stop() + $UserRoleTimings['GraphMemberships'] = $swGraphMemberships.Elapsed.TotalMilliseconds + if ($Memberships) { + Write-Information "Found group memberships for $($User.userDetails)" + } else { + Write-Information "No group memberships found for $($User.userDetails)" + } + } catch { + Write-Information "Could not get user roles for $($User.userDetails). $($_.Exception.Message)" + $UserRoleTotalSw.Stop() + $UserRoleTimings['Total'] = $UserRoleTotalSw.Elapsed.TotalMilliseconds + $timingsRounded = [ordered]@{} + foreach ($Key in ($UserRoleTimings.Keys | Sort-Object)) { $timingsRounded[$Key] = [math]::Round($UserRoleTimings[$Key], 2) } + Write-Debug "#### UserRole Timings #### $($timingsRounded | ConvertTo-Json -Compress)" + return $User + } + + $swAccessGroups = [System.Diagnostics.Stopwatch]::StartNew() + $AccessGroupsTable = Get-CippTable -TableName AccessRoleGroups + $AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable -Filter "PartitionKey eq 'AccessRoleGroups'" + $swAccessGroups.Stop() + $UserRoleTimings['AccessGroupsFetch'] = $swAccessGroups.Elapsed.TotalMilliseconds + + $swCustomRoles = [System.Diagnostics.Stopwatch]::StartNew() + $CustomRolesTable = Get-CippTable -TableName CustomRoles + $CustomRoles = Get-CIPPAzDataTableEntity @CustomRolesTable -Filter "PartitionKey eq 'CustomRoles'" + $swCustomRoles.Stop() + $UserRoleTimings['CustomRolesFetch'] = $swCustomRoles.Elapsed.TotalMilliseconds + $BaseRoles = @('superadmin', 'admin', 'editor', 'readonly') + + $swDeriveRoles = [System.Diagnostics.Stopwatch]::StartNew() + $Roles = foreach ($AccessGroup in $AccessGroups) { + if ($Memberships.id -contains $AccessGroup.GroupId -and ($CustomRoles.RowKey -contains $AccessGroup.RowKey -or $BaseRoles -contains $AccessGroup.RowKey)) { + $AccessGroup.RowKey + } + } + $swDeriveRoles.Stop() + $UserRoleTimings['DeriveRoles'] = $swDeriveRoles.Elapsed.TotalMilliseconds + + $Roles = @($Roles) + @($User.userRoles) + + if ($Roles) { + Write-Information "Roles determined for $($User.userDetails): $($Roles -join ', ')" + } + + if (($Roles | Measure-Object).Count -gt 2) { + try { + $swCacheWrite = [System.Diagnostics.Stopwatch]::StartNew() + $UserRole = [PSCustomObject]@{ + PartitionKey = 'AccessUser' + RowKey = [string]$User.userDetails + Role = [string](ConvertTo-Json -Compress -InputObject $Roles) + } + Add-CIPPAzDataTableEntity @Table -Entity $UserRole -Force + $swCacheWrite.Stop() + $UserRoleTimings['TableWrite'] = $swCacheWrite.Elapsed.TotalMilliseconds + } catch { + Write-Information "Could not cache user roles for $($User.userDetails). $($_.Exception.Message)" + } + } + + # Store in AsyncLocal cache for this request + if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value[$User.userDetails] = $Roles + } + } + } + $User.userRoles = $Roles + + # Log timings summary + $UserRoleTotalSw.Stop() + $UserRoleTimings['Total'] = $UserRoleTotalSw.Elapsed.TotalMilliseconds + $timingsRounded = [ordered]@{} + foreach ($Key in ($UserRoleTimings.Keys | Sort-Object)) { $timingsRounded[$Key] = [math]::Round($UserRoleTimings[$Key], 2) } + Write-Debug "#### UserRole Timings #### $($timingsRounded | ConvertTo-Json -Compress)" + + return $User +} diff --git a/Modules/CIPPCore/Public/Authentication/Test-IpInRange.ps1 b/Modules/CIPPCore/Public/Authentication/Test-IpInRange.ps1 new file mode 100644 index 000000000000..2279b20ce110 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Test-IpInRange.ps1 @@ -0,0 +1,53 @@ +function Test-IpInRange { + <# + .SYNOPSIS + Test if an IP address is in a CIDR range + .DESCRIPTION + This function tests if an IP address is in a CIDR range + .PARAMETER IPAddress + The IP address to test + .PARAMETER Range + The CIDR range to test + .EXAMPLE + Test-IpInRange -IPAddress "1.1.1.1" -Range "1.1.1.1/24" + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$IPAddress, + [Parameter(Mandatory = $true)] + [string]$Range + ) + + function ConvertIpToBigInteger { + param([System.Net.IPAddress]$ip) + return [System.Numerics.BigInteger]::Parse( + [BitConverter]::ToString($ip.GetAddressBytes()).Replace('-', ''), + [System.Globalization.NumberStyles]::HexNumber + ) + } + + try { + $IP = [System.Net.IPAddress]::Parse($IPAddress) + $rangeParts = $Range -split '/' + $networkAddr = [System.Net.IPAddress]::Parse($rangeParts[0]) + $prefix = [int]$rangeParts[1] + + if ($networkAddr.AddressFamily -ne $IP.AddressFamily) { + return $false + } + + $ipBig = ConvertIpToBigInteger $IP + $netBig = ConvertIpToBigInteger $networkAddr + $maxBits = if ($networkAddr.AddressFamily -eq 'InterNetworkV6') { 128 } else { 32 } + $shift = $maxBits - $prefix + $mask = [System.Numerics.BigInteger]::Pow(2, $shift) - [System.Numerics.BigInteger]::One + $invertedMask = [System.Numerics.BigInteger]::MinusOne -bxor $mask + $ipMasked = $ipBig -band $invertedMask + $netMasked = $netBig -band $invertedMask + + return $ipMasked -eq $netMasked + } catch { + return $false + } +} diff --git a/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 b/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 new file mode 100644 index 000000000000..b2413f38f526 --- /dev/null +++ b/Modules/CIPPCore/Public/CippQueue/Invoke-ListCippQueue.ps1 @@ -0,0 +1,84 @@ +function Invoke-ListCippQueue { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + param($Request = $null, $TriggerMetadata = $null, $Reference = $null, $QueueId = $null) + + if ($Request) { + $APIName = $Request.Params.CIPPEndpoint + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + } + + $QueueId = $Request.Query.QueueId ?? $QueueId + $Reference = $Request.Query.Reference ?? $Reference + + $CippQueue = Get-CippTable -TableName 'CippQueue' + $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' + $3HoursAgo = (Get-Date).ToUniversalTime().AddHours(-3).ToString('yyyy-MM-ddTHH:mm:ssZ') + + if ($QueueId) { + $Filter = "PartitionKey eq 'CippQueue' and RowKey eq '$QueueId'" + } elseif ($Reference) { + $Filter = "PartitionKey eq 'CippQueue' and Reference eq '$Reference' and Timestamp ge datetime'$3HoursAgo'" + } else { + $Filter = "PartitionKey eq 'CippQueue' and Timestamp ge datetime'$3HoursAgo'" + } + + $CippQueueData = Get-CIPPAzDataTableEntity @CippQueue -Filter $Filter | Sort-Object -Property Timestamp -Descending + + $QueueData = foreach ($Queue in $CippQueueData) { + $Tasks = Get-CIPPAzDataTableEntity @CippQueueTasks -Filter "PartitionKey eq 'Task' and QueueId eq '$($Queue.RowKey)'" | Where-Object { $_.Name } | Select-Object @{n = 'Timestamp'; exp = { $_.Timestamp } }, Name, Status + $TaskStatus = @{} + $Tasks | Group-Object -Property Status | ForEach-Object { + $TaskStatus.$($_.Name) = $_.Count + } + + if ($Tasks) { + if ($Tasks.Status -notcontains 'Running' -and ($TaskStatus.Completed + $TaskStatus.Failed) -ge $Queue.TotalTasks) { + if ($Tasks.Status -notcontains 'Failed') { + $Queue.Status = 'Completed' + } else { + $Queue.Status = 'Completed (with errors)' + } + } else { + $Queue.Status = 'Running' + } + } + + $TotalCompleted = $TaskStatus.Completed ?? 0 + $TotalFailed = $TaskStatus.Failed ?? 0 + $TotalRunning = $TaskStatus.Running ?? 0 + if ($Queue.TotalTasks -eq 0) { $Queue.TotalTasks = 1 } + + [PSCustomObject]@{ + PartitionKey = $Queue.PartitionKey + RowKey = $Queue.RowKey + Name = $Queue.Name + Link = $Queue.Link + Reference = $Queue.Reference + TotalTasks = $Queue.TotalTasks + CompletedTasks = $TotalCompleted + $TotalFailed + RunningTasks = $TotalRunning + FailedTasks = $TotalFailed + PercentComplete = [math]::Round(((($TotalCompleted + $TotalFailed) / $Queue.TotalTasks) * 100), 1) + PercentFailed = [math]::Round((($TotalFailed / $Queue.TotalTasks) * 100), 1) + PercentRunning = [math]::Round((($TotalRunning / $Queue.TotalTasks) * 100), 1) + Tasks = @($Tasks | Sort-Object -Descending Timestamp) + Status = $Queue.Status + Timestamp = $Queue.Timestamp + } + + } + + if ($request) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($QueueData) + }) + } else { + return $QueueData + } +} diff --git a/Modules/CIPPCore/Public/CippQueue/Invoke-RemoveCippQueue.ps1 b/Modules/CIPPCore/Public/CippQueue/Invoke-RemoveCippQueue.ps1 new file mode 100644 index 000000000000..8756a956725a --- /dev/null +++ b/Modules/CIPPCore/Public/CippQueue/Invoke-RemoveCippQueue.ps1 @@ -0,0 +1,18 @@ +function Invoke-RemoveCippQueue { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.ReadWrite + #> + param($Request, $TriggerMetadata) + $CippQueue = Get-CippTable -TableName 'CippQueue' + Clear-AzDataTable @CippQueue + $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' + Clear-AzDataTable @CippQueueTasks + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{Results = @('History cleared') } + }) +} diff --git a/Modules/CIPPCore/Public/CippQueue/New-CippQueueEntry.ps1 b/Modules/CIPPCore/Public/CippQueue/New-CippQueueEntry.ps1 new file mode 100644 index 000000000000..e5489ba33e37 --- /dev/null +++ b/Modules/CIPPCore/Public/CippQueue/New-CippQueueEntry.ps1 @@ -0,0 +1,29 @@ +function New-CippQueueEntry { + <# + .FUNCTIONALITY + Internal + #> + Param( + [string]$Name, + [string]$Link, + [string]$Reference, + [int]$TotalTasks = 1 + ) + + $CippQueue = Get-CippTable -TableName CippQueue + + $QueueEntry = @{ + PartitionKey = 'CippQueue' + RowKey = (New-Guid).Guid.ToString() + Name = $Name + Link = $Link + Reference = $Reference + Status = 'Queued' + TotalTasks = $TotalTasks + } + $CippQueue.Entity = $QueueEntry + + Add-CIPPAzDataTableEntity @CippQueue + + $QueueEntry +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 b/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 new file mode 100644 index 000000000000..928c6e06285d --- /dev/null +++ b/Modules/CIPPCore/Public/CippQueue/Set-CippQueueTask.ps1 @@ -0,0 +1,31 @@ +function Set-CippQueueTask { + <# + .FUNCTIONALITY + Internal + #> + param( + [string]$QueueId, + [string]$TaskId = (New-Guid).Guid.ToString(), + [string]$Name, + [ValidateSet('Queued', 'Running', 'Completed', 'Failed')] + [string]$Status = 'Queued', + [string]$Message + ) + + $CippQueueTasks = Get-CippTable -TableName CippQueueTasks + + $QueueTaskEntry = @{ + PartitionKey = 'Task' + RowKey = $TaskId + QueueId = $QueueId + Name = $Name + Status = $Status + } + if ($Message) { + $QueueTaskEntry.Message = $Message + } + $CippQueueTasks.Entity = $QueueTaskEntry + + Add-CIPPAzDataTableEntity @CippQueueTasks -Force + return $QueueTaskEntry +} diff --git a/Modules/CIPPCore/Public/CippQueue/Update-CippQueueEntry.ps1 b/Modules/CIPPCore/Public/CippQueue/Update-CippQueueEntry.ps1 new file mode 100644 index 000000000000..e0202b01baf3 --- /dev/null +++ b/Modules/CIPPCore/Public/CippQueue/Update-CippQueueEntry.ps1 @@ -0,0 +1,33 @@ +function Update-CippQueueEntry { + <# + .FUNCTIONALITY + Internal + #> + Param( + [Parameter(Mandatory = $true)] + $RowKey, + $Status, + $Name + ) + + $CippQueue = Get-CippTable -TableName CippQueue + + if ($RowKey) { + $QueueEntry = Get-CIPPAzDataTableEntity @CippQueue -Filter ("RowKey eq '{0}'" -f $RowKey) + + if ($QueueEntry) { + if ($Status) { + $QueueEntry.Status = $Status + } + if ($Name) { + $QueueEntry.Name = $Name + } + Add-CIPPAzDataTableEntity @CippQueue -Entity $QueueEntry -Force + $QueueEntry + } else { + return $false + } + } else { + return $false + } +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 b/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 new file mode 100644 index 000000000000..60255008687e --- /dev/null +++ b/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 @@ -0,0 +1,34 @@ +function Clear-CIPPImmutableId { + [CmdletBinding()] + param ( + $TenantFilter, + $UserID, + $Headers, + $APIName = 'Clear Immutable ID' + ) + + try { + try { + $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$UserID" -tenantid $TenantFilter -ErrorAction SilentlyContinue + } catch { + $DeletedUser = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directory/deletedItems/$UserID" -tenantid $TenantFilter + if ($DeletedUser.id) { + # Restore deleted user object + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/directory/deletedItems/$UserID/restore" -tenantid $TenantFilter -type POST + Write-LogMessage -headers $Headers -API $APIName -message "Restored deleted user $UserID to clear immutable ID" -sev Info -tenant $TenantFilter + } + } + + $Body = [pscustomobject]@{ onPremisesImmutableId = $null } + $Body = ConvertTo-Json -InputObject $Body -Depth 5 -Compress + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserID" -tenantid $TenantFilter -type PATCH -body $Body + $Result = "Successfully cleared immutable ID for user $UserID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -sev Info -tenant $TenantFilter + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to clear immutable ID for $($UserID). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Clear-CippDurables.ps1 b/Modules/CIPPCore/Public/Clear-CippDurables.ps1 new file mode 100644 index 000000000000..972f3d8fc853 --- /dev/null +++ b/Modules/CIPPCore/Public/Clear-CippDurables.ps1 @@ -0,0 +1,40 @@ +function Clear-CippDurables { + [CmdletBinding(SupportsShouldProcess = $true)] + param() + # Collect info + $FunctionName = $env:WEBSITE_SITE_NAME -replace '-', '' + + # Get orchestrators + $InstancesTable = Get-CippTable -TableName ('{0}Instances' -f $FunctionName) + $HistoryTable = Get-CippTable -TableName ('{0}History' -f $FunctionName) + $QueueTable = Get-CippTable -TableName 'CippQueue' + $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' + + Remove-AzDataTable @InstancesTable + Remove-AzDataTable @HistoryTable + Remove-AzDataTable @QueueTable + Remove-AzDataTable @CippQueueTasks + + $Queues = Get-CIPPAzStorageQueue -Name ('{0}*' -f $FunctionName) + + $RunningQueues = $Queues | Where-Object { $_.ApproximateMessageCount -gt 0 } + foreach ($Queue in $RunningQueues) { + Write-Information "- Removing queue: $($Queue.Name), message count: $($Queue.ApproximateMessageCount)" + if ($PSCmdlet.ShouldProcess($Queue.Name, 'Clear Queue')) { + $null = Clear-CIPPAzStorageQueue -Name $Queue.Name + } + } + + $BlobContainer = '{0}-largemessages' -f $FunctionName + $containerMatch = Get-CIPPAzStorageContainer -Name $BlobContainer | Where-Object { $_.Name -eq $BlobContainer } + if ($containerMatch) { + Write-Information "- Removing blob container: $BlobContainer" + if ($PSCmdlet.ShouldProcess($BlobContainer, 'Remove Blob Container')) { + $null = Remove-CIPPAzStorageContainer -Name $BlobContainer + } + } + + $null = Get-CippTable -TableName ('{0}History' -f $FunctionName) + Write-Information 'Durable Orchestrators and Queues have been cleared' + return $true +} diff --git a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 new file mode 100644 index 000000000000..20f5464d1bfa --- /dev/null +++ b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 @@ -0,0 +1,602 @@ +function Compare-CIPPIntuneObject { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [PSCustomObject]$ReferenceObject, + + [Parameter(Mandatory = $true)] + [PSCustomObject]$DifferenceObject, + + [Parameter(Mandatory = $false)] + [string[]]$ExcludeProperties = @(), + [Parameter(Mandatory = $false)] + [string[]]$CompareType = @() + ) + if ($CompareType -ne 'Catalog') { + $defaultExcludeProperties = @( + 'id', + 'createdDateTime', + 'lastModifiedDateTime', + 'supportsScopeTags', + 'modifiedDateTime', + 'version', + 'roleScopeTagIds', + 'settingCount', + 'creationSource', + 'priorityMetaData' + 'featureUpdatesWillBeRolledBack', + 'qualityUpdatesWillBeRolledBack', + 'qualityUpdatesPauseStartDate', + 'featureUpdatesPauseStartDate' + 'wslDistributions', + 'lastSuccessfulSyncDateTime' + ) + + $excludeProps = $defaultExcludeProperties + $ExcludeProperties + $result = [System.Collections.Generic.List[PSObject]]::new() + + function ShouldSkipProperty { + param ( + [string]$PropertyName + ) + return ($PropertyName -like '*@OData*' -or + $PropertyName -like '#microsoft.graph*' -or + $excludeProps -contains $PropertyName) + } + + function Compare-ObjectsRecursively { + param ( + [Parameter(Mandatory = $true)] + $Object1, + + [Parameter(Mandatory = $true)] + $Object2, + + [Parameter(Mandatory = $false)] + [string]$PropertyPath = '', + [int]$Depth = 0, + [int]$MaxDepth = 20 + ) + + # Check for arrays at the start of every recursive call - this catches arrays at any nesting level + $isObj1Array = $Object1 -is [Array] -or $Object1 -is [System.Collections.IList] + $isObj2Array = $Object2 -is [Array] -or $Object2 -is [System.Collections.IList] + if ($isObj1Array -or $isObj2Array) { + return + } + + if ($Depth -ge $MaxDepth) { + $result.Add([PSCustomObject]@{ + Property = $PropertyPath + ExpectedValue = '[MaxDepthExceeded]' + ReceivedValue = '[MaxDepthExceeded]' + }) + return + } + + if (($null -eq $Object1 -or $Object1 -eq '') -and ($null -eq $Object2 -or $Object2 -eq '')) { + return + } + + if (($null -eq $Object1 -or $Object1 -eq '') -xor ($null -eq $Object2 -or $Object2 -eq '')) { + $result.Add([PSCustomObject]@{ + Property = $PropertyPath + ExpectedValue = if ($null -eq $Object1) { '' } else { $Object1 } + ReceivedValue = if ($null -eq $Object2) { '' } else { $Object2 } + }) + return + } + + if ($Object1.GetType() -ne $Object2.GetType()) { + $result.Add([PSCustomObject]@{ + Property = $PropertyPath + ExpectedValue = $Object1 + ReceivedValue = $Object2 + }) + return + } + + # Short-circuit recursion for primitive types + $primitiveTypes = @([double], [decimal], [datetime], [timespan], [guid] ) + foreach ($type in $primitiveTypes) { + if ($Object1 -is $type -and $Object2 -is $type) { + if ($Object1 -ne $Object2) { + $result.Add([PSCustomObject]@{ + Property = $PropertyPath + ExpectedValue = $Object1 + ReceivedValue = $Object2 + }) + } + return + } + } + + if ($Object1 -is [System.Collections.IDictionary]) { + $allKeys = @($Object1.Keys) + @($Object2.Keys) | Select-Object -Unique + + foreach ($key in $allKeys) { + if (ShouldSkipProperty -PropertyName $key) { continue } + + $newPath = if ($PropertyPath) { "$PropertyPath.$key" } else { $key } + + if ($Object1.ContainsKey($key) -and $Object2.ContainsKey($key)) { + if ($Object1[$key] -and $Object2[$key]) { + Compare-ObjectsRecursively -Object1 $Object1[$key] -Object2 $Object2[$key] -PropertyPath $newPath -Depth ($Depth + 1) -MaxDepth $MaxDepth + } + } elseif ($Object1.ContainsKey($key)) { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = $Object1[$key] + ReceivedValue = '' + }) + } else { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = '' + ReceivedValue = $Object2[$key] + }) + } + } + } elseif ($Object1 -is [Array] -or $Object1 -is [System.Collections.IList]) { + $maxLength = [Math]::Max($Object1.Count, $Object2.Count) + + for ($i = 0; $i -lt $maxLength; $i++) { + $newPath = "$PropertyPath.$i" + + if ($i -lt $Object1.Count -and $i -lt $Object2.Count) { + Compare-ObjectsRecursively -Object1 $Object1[$i] -Object2 $Object2[$i] -PropertyPath $newPath -Depth ($Depth + 1) -MaxDepth $MaxDepth + } elseif ($i -lt $Object1.Count) { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = $Object1[$i] + ReceivedValue = '' + }) + } else { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = '' + ReceivedValue = $Object2[$i] + }) + } + } + } elseif ($Object1 -is [PSCustomObject] -or $Object1.PSObject.Properties.Count -gt 0) { + # Skip comparison if either object is an array - arrays can't have custom properties set + $isObj1Array = $Object1 -is [Array] -or $Object1 -is [System.Collections.IList] + $isObj2Array = $Object2 -is [Array] -or $Object2 -is [System.Collections.IList] + if ($isObj1Array -or $isObj2Array) { + return + } + + # Safely get property names - ensure objects are not arrays before accessing PSObject.Properties + $allPropertyNames = @() + try { + if (-not ($Object1 -is [Array] -or $Object1 -is [System.Collections.IList])) { + $allPropertyNames += $Object1.PSObject.Properties | Select-Object -ExpandProperty Name + } + if (-not ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + $allPropertyNames += $Object2.PSObject.Properties | Select-Object -ExpandProperty Name + } + $allPropertyNames = $allPropertyNames | Select-Object -Unique + } catch { + return + } + + foreach ($propName in $allPropertyNames) { + if (ShouldSkipProperty -PropertyName $propName) { continue } + + $newPath = if ($PropertyPath) { "$PropertyPath.$propName" } else { $propName } + # Safely check if properties exist - ensure objects are not arrays + $prop1Exists = $false + $prop2Exists = $false + try { + if (-not ($Object1 -is [Array] -or $Object1 -is [System.Collections.IList])) { + $prop1Exists = $Object1.PSObject.Properties.Name -contains $propName + } + if (-not ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + $prop2Exists = $Object2.PSObject.Properties.Name -contains $propName + } + } catch { + continue + } + + if ($prop1Exists -and $prop2Exists) { + try { + # Double-check arrays before accessing properties + if (($Object1 -is [Array] -or $Object1 -is [System.Collections.IList]) -or + ($Object2 -is [Array] -or $Object2 -is [System.Collections.IList])) { + continue + } + if ($Object1.$propName -and $Object2.$propName) { + Compare-ObjectsRecursively -Object1 $Object1.$propName -Object2 $Object2.$propName -PropertyPath $newPath -Depth ($Depth + 1) -MaxDepth $MaxDepth + } + } catch { + throw + } + } elseif ($prop1Exists) { + try { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = $Object1.$propName + ReceivedValue = '' + }) + } catch { + throw + } + } else { + try { + $result.Add([PSCustomObject]@{ + Property = $newPath + ExpectedValue = '' + ReceivedValue = $Object2.$propName + }) + } catch { + throw + } + } + } + } else { + $val1 = $Object1.ToString() + $val2 = $Object2.ToString() + + if ($val1 -ne $val2) { + $result.Add([PSCustomObject]@{ + Property = $PropertyPath + ExpectedValue = $val1 + ReceivedValue = $val2 + }) + } + } + } + + $obj1 = if ($ReferenceObject -is [string]) { + $ReferenceObject | ConvertFrom-Json -AsHashtable -Depth 100 + } else { + $ReferenceObject + } + + $obj2 = if ($DifferenceObject -is [string]) { + $DifferenceObject | ConvertFrom-Json -AsHashtable -Depth 100 + } else { + $DifferenceObject + } + + if ($obj1 -and $obj2) { + Compare-ObjectsRecursively -Object1 $obj1 -Object2 $obj2 + } + + if ($result.Count -eq 0) { + return $null + } + } else { + $intuneCollection = Get-Content .\intuneCollection.json | ConvertFrom-Json -ErrorAction SilentlyContinue + + # Recursive function to process group setting collections at any depth + function Process-GroupSettingChildren { + param( + [Parameter(Mandatory = $true)] + $Children, + [Parameter(Mandatory = $true)] + [string]$Source, + [Parameter(Mandatory = $true)] + $IntuneCollection + ) + + $results = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($child in $Children) { + $childIntuneObj = $IntuneCollection | Where-Object { $_.id -eq $child.settingDefinitionId } + $childLabel = if ($childIntuneObj?.displayName) { + $childIntuneObj.displayName + } else { + $child.settingDefinitionId + } + + switch ($child.'@odata.type') { + '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' { + if ($child.groupSettingCollectionValue) { + foreach ($groupValue in $child.groupSettingCollectionValue) { + if ($groupValue.children) { + $nestedResults = Process-GroupSettingChildren -Children $groupValue.children -Source $Source -IntuneCollection $IntuneCollection + $results.AddRange($nestedResults) + } + } + } + } + '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' { + $childValue = $null + if ($child.choiceSettingValue?.value) { + $option = $childIntuneObj.options | Where-Object { + $_.id -eq $child.choiceSettingValue.value + } + $childValue = if ($option?.displayName) { + $option.displayName + } else { + $child.choiceSettingValue.value + } + } + + $results.Add([PSCustomObject]@{ + Key = "GroupChild-$($child.settingDefinitionId)" + Label = $childLabel + Value = $childValue + Source = $Source + }) + } + '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' { + $childValue = $null + if ($null -ne $child.simpleSettingValue -and $null -ne $child.simpleSettingValue.value) { + $childValue = $child.simpleSettingValue.value + } + + $results.Add([PSCustomObject]@{ + Key = "GroupChild-$($child.settingDefinitionId)" + Label = $childLabel + Value = $childValue + Source = $Source + }) + } + '#microsoft.graph.deviceManagementConfigurationChoiceSettingCollectionInstance' { + if ($child.choiceSettingCollectionValue) { + $values = [System.Collections.Generic.List[string]]::new() + foreach ($choiceValue in $child.choiceSettingCollectionValue) { + $option = $childIntuneObj.options | Where-Object { + $_.id -eq $choiceValue.value + } + $displayValue = if ($option?.displayName) { + $option.displayName + } else { + $choiceValue.value + } + $values.Add($displayValue) + } + $childValue = $values -join ', ' + + $results.Add([PSCustomObject]@{ + Key = "GroupChild-$($child.settingDefinitionId)" + Label = $childLabel + Value = $childValue + Source = $Source + }) + } + } + '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' { + if ($child.simpleSettingCollectionValue) { + $values = [System.Collections.Generic.List[object]]::new() + foreach ($simpleValue in $child.simpleSettingCollectionValue) { + $values.Add($simpleValue.value) + } + $childValue = $values -join ', ' + + $results.Add([PSCustomObject]@{ + Key = "GroupChild-$($child.settingDefinitionId)" + Label = $childLabel + Value = $childValue + Source = $Source + }) + } + } + default { + # Unknown setting type - could add logging here if needed + } + } + + # Also process any children within choice setting values + if ($child.choiceSettingValue?.children) { + $nestedResults = Process-GroupSettingChildren -Children $child.choiceSettingValue.children -Source $Source -IntuneCollection $IntuneCollection + $results.AddRange($nestedResults) + } + } + + return $results + } + + # Process reference object settings + $referenceItems = $ReferenceObject.settings | ForEach-Object { + $settingInstance = $_.settingInstance + $intuneObj = $intuneCollection | Where-Object { $_.id -eq $settingInstance.settingDefinitionId } + $tempOutput = switch ($settingInstance.'@odata.type') { + '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' { + if ($null -ne $settingInstance.groupSettingCollectionValue) { + $groupResults = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($groupValue in $settingInstance.groupSettingCollectionValue) { + if ($groupValue.children -is [System.Array]) { + $childResults = Process-GroupSettingChildren -Children $groupValue.children -Source 'Reference' -IntuneCollection $intuneCollection + $groupResults.AddRange($childResults) + } + } + # Return the results from the recursive processing + $groupResults + } + } + default { + if ($settingInstance.simpleSettingValue?.value) { + $label = if ($intuneObj?.displayName) { + $intuneObj.displayName + } else { + $settingInstance.settingDefinitionId + } + $value = $settingInstance.simpleSettingValue.value + [PSCustomObject]@{ + Key = "Simple-$($settingInstance.settingDefinitionId)" + Label = $label + Value = $value + Source = 'Reference' + } + } elseif ($settingInstance.choiceSettingValue?.value) { + $label = if ($intuneObj?.displayName) { + $intuneObj.displayName + } else { + $settingInstance.settingDefinitionId + } + + $option = $intuneObj.options | Where-Object { + $_.id -eq $settingInstance.choiceSettingValue.value + } + $value = if ($option?.displayName) { + $option.displayName + } else { + $settingInstance.choiceSettingValue.value + } + + [PSCustomObject]@{ + Key = "Choice-$($settingInstance.settingDefinitionId)" + Label = $label + Value = $value + Source = 'Reference' + } + } else { + $label = if ($intuneObj?.displayName) { + $intuneObj.displayName + } else { + $settingInstance.settingDefinitionId + } + [PSCustomObject]@{ + Key = "Unknown-$($settingInstance.settingDefinitionId)" + Label = $label + Value = 'This setting could not be resolved' + Source = 'Reference' + } + } + } + } + $tempOutput + } + + # Process difference object settings + $differenceItems = $DifferenceObject.settings | ForEach-Object { + $settingInstance = $_.settingInstance + $intuneObj = $intuneCollection | Where-Object { $_.id -eq $settingInstance.settingDefinitionId } + $tempOutput = switch ($settingInstance.'@odata.type') { + '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' { + if ($null -ne $settingInstance.groupSettingCollectionValue) { + $groupResults = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($groupValue in $settingInstance.groupSettingCollectionValue) { + if ($groupValue.children -is [System.Array]) { + $childResults = Process-GroupSettingChildren -Children $groupValue.children -Source 'Difference' -IntuneCollection $intuneCollection + $groupResults.AddRange($childResults) + } + } + # Return the results from the recursive processing + $groupResults + } + } + default { + if ($settingInstance.simpleSettingValue?.value) { + $label = if ($intuneObj?.displayName) { + $intuneObj.displayName + } else { + $settingInstance.settingDefinitionId + } + $value = $settingInstance.simpleSettingValue.value + [PSCustomObject]@{ + Key = "Simple-$($settingInstance.settingDefinitionId)" + Label = $label + Value = $value + Source = 'Difference' + } + } elseif ($settingInstance.choiceSettingValue?.value) { + $label = if ($intuneObj?.displayName) { + $intuneObj.displayName + } else { + $settingInstance.settingDefinitionId + } + + $option = $intuneObj.options | Where-Object { + $_.id -eq $settingInstance.choiceSettingValue.value + } + $value = if ($option?.displayName) { + $option.displayName + } else { + $settingInstance.choiceSettingValue.value + } + + [PSCustomObject]@{ + Key = "Choice-$($settingInstance.settingDefinitionId)" + Label = $label + Value = $value + Source = 'Difference' + } + } else { + $label = if ($intuneObj?.displayName) { + $intuneObj.displayName + } else { + $settingInstance.settingDefinitionId + } + [PSCustomObject]@{ + Key = "Unknown-$($settingInstance.settingDefinitionId)" + Label = $label + Value = 'This setting could not be resolved' + Source = 'Difference' + } + } + } + } + $tempOutput + } + + $result = [System.Collections.Generic.List[PSObject]]::new() + + $allKeys = @($referenceItems | Select-Object -ExpandProperty Key) + @($differenceItems | Select-Object -ExpandProperty Key) | Sort-Object -Unique + + foreach ($key in $allKeys) { + $refItem = $referenceItems | Where-Object { $_.Key -eq $key } | Select-Object -First 1 + $diffItem = $differenceItems | Where-Object { $_.Key -eq $key } | Select-Object -First 1 + + $settingId = $key + if ($key -like 'Simple-*') { + $settingId = $key.Substring(7) + } elseif ($key -like 'Choice-*') { + $settingId = $key.Substring(7) + } elseif ($key -like 'GroupChild-*') { + $settingId = $key.Substring(11) + } elseif ($key -like 'Unknown-*') { + $settingId = $key.Substring(8) + } + + $settingDefinition = $intuneCollection | Where-Object { $_.id -eq $settingId } + + $refRawValue = if ($refItem) { $refItem.Value } else { $null } + $diffRawValue = if ($diffItem) { $diffItem.Value } else { $null } + + $refValue = $refRawValue + $diffValue = $diffRawValue + + if ($null -ne $settingDefinition -and $null -ne $settingDefinition.options) { + if ($null -ne $refRawValue -and $refRawValue -match '_\d+$') { + $option = $settingDefinition.options | Where-Object { $_.id -eq $refRawValue } + if ($null -ne $option -and $null -ne $option.displayName) { + $refValue = $option.displayName + } + } + + if ($null -ne $diffRawValue -and $diffRawValue -match '_\d+$') { + $option = $settingDefinition.options | Where-Object { $_.id -eq $diffRawValue } + if ($null -ne $option -and $null -ne $option.displayName) { + $diffValue = $option.displayName + } + } + } + + $label = if ($null -ne $settingDefinition -and $null -ne $settingDefinition.displayName) { + $settingDefinition.displayName + } elseif ($refItem) { + $refItem.Label + } elseif ($diffItem) { + $diffItem.Label + } else { + $key + } + + if ($refRawValue -ne $diffRawValue -or $null -eq $refRawValue -or $null -eq $diffRawValue) { + $result.Add([PSCustomObject]@{ + Property = $label + ExpectedValue = $refValue + ReceivedValue = $diffValue + }) + } + } + + return $result + } + return $result +} diff --git a/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 b/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 new file mode 100644 index 000000000000..f49792e6b003 --- /dev/null +++ b/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 @@ -0,0 +1,169 @@ +function Invoke-CustomDataSync { + param( + $TenantFilter + ) + + $Table = Get-CIPPTable -TableName CustomDataMappings + $CustomData = Get-CIPPAzDataTableEntity @Table + + $Mappings = $CustomData | ForEach-Object { + $Mapping = $_.JSON | ConvertFrom-Json + $Mapping + } + + Write-Information "Found $($Mappings.Count) Custom Data mappings" + $Mappings = $Mappings | Where-Object { ($_.sourceType.value -eq 'reportingDb' -or $_.sourceType.value -eq 'extensionSync') -and ($_.tenantFilter.value -contains $TenantFilter -or $_.tenantFilter.value -contains 'AllTenants') } + + if ($Mappings.Count -eq 0) { + Write-Warning "No Custom Data mappings found for tenant $TenantFilter" + return + } + + Write-Information "Getting cached data for tenant $TenantFilter" + $Cache = Get-CippExtensionReportingData -TenantFilter $TenantFilter -IncludeMailboxes + $BulkRequests = [System.Collections.Generic.List[object]]::new() + $DirectoryObjectQueries = [System.Collections.Generic.List[object]]::new() + $SyncConfigs = foreach ($Mapping in $Mappings) { + $SyncConfig = [PSCustomObject]@{ + Dataset = $Mapping.extensionSyncDataset.value + DatasetConfig = $Mapping.extensionSyncDataset.addedFields + DirectoryObjectType = $Mapping.directoryObjectType.value + ExtensionSyncProperty = $Mapping.extensionSyncProperty.value + CustomDataAttribute = $Mapping.customDataAttribute.value + CustomDataAttributeConfig = $Mapping.customDataAttribute.addedFields + } + + switch ($SyncConfig.DirectoryObjectType) { + 'user' { + $Query = @{ + id = 'user' + url = 'users?$select=id,userPrincipalName,displayName,mailNickname&$count=true&$top=999' + method = 'GET' + } + } + } + $SyncConfig + if ($DirectoryObjectQueries | Where-Object { $_.id -eq $Query.id }) { + continue + } else { + $DirectoryObjectQueries.Add($Query) + } + } + + Write-Information "Getting directory objects for tenant $TenantFilter" + #Write-Information ($DirectoryObjectQueries | ConvertTo-Json -Depth 10) + $AllDirectoryObjects = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($DirectoryObjectQueries) + Write-Information "Retrieved $($AllDirectoryObjects.Count) result sets" + #Write-Information ($AllDirectoryObjects | ConvertTo-Json -Depth 10) + + $PatchObjects = @{} + + foreach ($SyncConfig in $SyncConfigs) { + Write-Warning "Processing Custom Data mapping for $($SyncConfig.Dataset)" + Write-Information ($SyncConfig | ConvertTo-Json -Depth 10) + $Rows = $Cache.$($SyncConfig.Dataset) + if (!$Rows) { + Write-Warning "No data found for dataset $($SyncConfig.Dataset)" + continue + } + $SourceMatchProperty = $SyncConfig.DatasetConfig.sourceMatchProperty + $DestinationMatchProperty = $SyncConfig.DatasetConfig.destinationMatchProperty + $CustomDataAttribute = $SyncConfig.CustomDataAttribute + $ExtensionSyncProperty = $SyncConfig.ExtensionSyncProperty + $DatasetConfig = $SyncConfig.DatasetConfig + + $DirectoryObjects = ($AllDirectoryObjects | Where-Object { $_.id -eq $SyncConfig.DirectoryObjectType }).body.value + + switch ($SyncConfig.DirectoryObjectType) { + 'user' { + $url = 'users' + } + } + + foreach ($Row in $Rows) { + #Write-Warning 'Processing row' + #Write-Information ($Row | ConvertTo-Json -Depth 10) + Write-Host "Comparing $SourceMatchProperty $($Row.$SourceMatchProperty) to $($DirectoryObjects.Count) directory objects on $DestinationMatchProperty" + if ($DestinationMatchProperty.Count -gt 1) { + foreach ($Prop in $DestinationMatchProperty) { + $DirectoryObject = $DirectoryObjects | Where-Object { $_.$Prop -eq $Row.$SourceMatchProperty } + if ($DirectoryObject) { + break + } + } + } else { + $DirectoryObject = $DirectoryObjects | Where-Object { $_.$DestinationMatchProperty -eq $Row.$SourceMatchProperty } + } + + if (!$DirectoryObject) { + Write-Warning "No directory object found for $($Row.$SourceMatchProperty)" + } + if ($DirectoryObject) { + $ObjectUrl = "$($url)/$($DirectoryObject.id)" + + # check if key in patch objects already exists otherwise create one with object url + if (!$PatchObjects.ContainsKey($ObjectUrl)) { + Write-Host "Creating new object for $($ObjectUrl)" + $PatchObjects[$ObjectUrl] = @{} + } + + if ($DatasetConfig.type -eq 'object') { + if ($CustomDataAttribute -match '\.') { + $Props = @($CustomDataAttribute -split '\.') + if (!$PatchObjects[$ObjectUrl].ContainsKey($Props[0])) { + Write-Host "Creating new object for $($Props[0])" + $PatchObjects[$ObjectUrl][$Props[0]] = @{} + } + if (!$PatchObjects[$ObjectUrl][$Props[0]].ContainsKey($Props[1])) { + Write-Host "Creating new object for $($Props[1])" + $PatchObjects[$ObjectUrl][$Props[0]][$Props[1]] = $Row.$ExtensionSyncProperty + } + } else { + $PatchObjects[$ObjectUrl][$CustomDataAttribute] = $Row.$ExtensionSyncProperty + } + } elseif ($DatasetConfig.type -eq 'array') { + Write-Warning "Processing array data for $($CustomDataAttribute) on $($DirectoryObject.id) - found $($Row.Count) entries" + #Write-Information ($Row | ConvertTo-Json -Depth 10) + if ($DatasetConfig.select) { + $Row = $Row | Select-Object -Property ($DatasetConfig.select -split ',') + } + + if (!$PatchObjects[$ObjectUrl].ContainsKey($CustomDataAttribute)) { + $PatchObjects[$ObjectUrl][$CustomDataAttribute] = [System.Collections.Generic.List[string]]::new() + } + + $Data = if ($DatasetConfig.storeAs -eq 'json') { + $Row | ConvertTo-Json -Depth 5 -Compress + } else { + $Row + } + + $PatchObjects[$ObjectUrl][$CustomDataAttribute].Add($Data) + } + } + } + } + + foreach ($ObjectUrl in $PatchObjects.Keys) { + $PatchObject = $PatchObjects[$ObjectUrl] + $BulkRequests.Add([PSCustomObject]@{ + id = ($ObjectUrl -split '/' | Select-Object -Last 1) + url = $ObjectUrl + method = 'PATCH' + body = $PatchObject + headers = @{ + 'Content-Type' = 'application/json' + } + }) + } + + Write-Host ($BulkRequests | ConvertTo-Json -Depth 10) + if ($BulkRequests.Count -gt 0) { + Write-Information "Sending $($BulkRequests.Count) requests to Graph API" + $Responses = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($BulkRequests) + if ($Responses | Where-Object { $_.statusCode -ne 204 }) { + Write-Warning 'Some requests failed' + Write-Information ($Responses | Where-Object { $_.status -ne 204 } | ConvertTo-Json -Depth 10) + } + } +} diff --git a/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryResults.ps1 b/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryResults.ps1 new file mode 100644 index 000000000000..0b76e0f51165 --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryResults.ps1 @@ -0,0 +1,30 @@ +function Get-DeltaQueryResults { + <# + .SYNOPSIS + Retrieves results for Delta Queries + .DESCRIPTION + This helper function modifies the results from Delta Query triggers based on specified properties. + .PARAMETER Data + The data containing Delta Query results. Use %triggerdata% from the scheduler to pass in the data. + .PARAMETER Properties + A comma-separated list of properties to include in the output. If not specified, all properties are returned. + #> + + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $Data, + [string]$Properties, + [string]$TenantFilter, + $Headers + ) + + $Properties = $Properties -split ',' | ForEach-Object { $_.Trim() } + if (!$Properties -or $Properties.Count -eq 0) { + Write-Information 'No specific properties requested, returning all data.' + Write-Information ($Data | ConvertTo-Json -Depth 10) + return $Data + } + + $Data = $Data | Select-Object -Property $Properties +} diff --git a/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryUrl.ps1 b/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryUrl.ps1 new file mode 100644 index 000000000000..84acde036209 --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/Get-DeltaQueryUrl.ps1 @@ -0,0 +1,29 @@ +function Get-DeltaQueryUrl { + <# + .SYNOPSIS + Retrieves the URL for Delta Queries + .DESCRIPTION + This helper function constructs the URL for Delta Query requests based on the resource and parameters. + .PARAMETER TenantFilter + The tenant to filter the query on. + .PARAMETER PartitionKey + The partition key for the delta query. + #> + + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $TenantFilter, + [Parameter(Mandatory = $true)] + $PartitionKey + ) + + $Table = Get-CIPPTable -TableName 'DeltaQueries' + $DeltaQueryEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$PartitionKey' and RowKey eq '$TenantFilter'" + + if ($DeltaQueryEntity) { + return $DeltaQueryEntity.DeltaUrl + } else { + throw "Delta Query not found for Tenant '$TenantFilter' and PartitionKey '$PartitionKey'." + } +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/DeltaQueries/New-GraphDeltaQuery.ps1 b/Modules/CIPPCore/Public/DeltaQueries/New-GraphDeltaQuery.ps1 new file mode 100644 index 000000000000..3ff6452739af --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/New-GraphDeltaQuery.ps1 @@ -0,0 +1,170 @@ +function New-GraphDeltaQuery { + <# + .SYNOPSIS + Creates a new Graph Delta Query. + .DESCRIPTION + This function creates a new Graph Delta Query to track changes in a specified resource. + Always returns the full response including the deltaLink for future incremental queries. + .PARAMETER Resource + The resource to track changes for (e.g., 'users', 'groups'). + .PARAMETER TenantFilter + The tenant to filter the query on. + .PARAMETER Parameters + Additional query parameters (e.g., $select, $filter, $top). + .PARAMETER DeltaUrl + Use this parameter to continue a delta query with a specific delta or next link. + .FUNCTIONALITY + Internal + #> + [CmdletBinding(DefaultParameterSetName = 'NewDeltaQuery')] + param( + [Parameter(Mandatory = $true, ParameterSetName = 'NewDeltaQuery')] + [Parameter(Mandatory = $true, ParameterSetName = 'DeltaUrl')] + $TenantFilter, + + [Parameter(ParameterSetName = 'NewDeltaQuery', Mandatory = $true)] + [ValidateSet('users', 'groups', 'contacts', 'orgContact', 'devices', 'applications', 'servicePrincipals', 'directoryObjects', 'directoryRole', 'administrativeUnits', 'oAuth2PermissionGrant')] + [string]$Resource, + + [Parameter(ParameterSetName = 'NewDeltaQuery', Mandatory = $false)] + [hashtable]$Parameters = @{}, + + [Parameter(ParameterSetName = 'DeltaUrl', Mandatory = $true)] + [string]$DeltaUrl, + + [Parameter(Mandatory = $false, ParameterSetName = 'NewDeltaQuery')] + [Parameter(Mandatory = $true, ParameterSetName = 'DeltaUrl')] + [string]$PartitionKey + ) + + if ($TenantFilter -eq 'AllTenants' -or $TenantFilter.type -eq 'Group') { + Write-Information 'Creating delta query for all tenants or tenant group.' + if ($TenantFilter.type -eq 'group') { + $Tenants = Expand-CIPPTenantGroups -TenantFilter $TenantFilter + } else { + $Tenants = Get-Tenants -IncludeErrors + } + + if (!$PartitionKey) { + $ParamJson = $Parameters | ConvertTo-Json -Depth 5 -Compress + $PartitionKey = Get-StringHash -String ($Resource + $ParamJson) + } + # Prepare batch processing for all tenants + $TenantBatch = $Tenants | ForEach-Object { + [PSCustomObject]@{ + FunctionName = 'GraphDeltaQuery' + TenantFilter = $_.defaultDomainName ?? $_.value + Resource = $Resource + Parameters = $Parameters + PartitionKey = $PartitionKey + } + } + + $InputObject = @{ + Batch = @($TenantBatch) + OrchestratorName = 'ProcessDeltaQueries' + SkipLog = $true + } + Write-Information "Starting delta query orchestration for $($Tenants.Count) tenants." + Write-Information "Orchestration Input: $($InputObject | ConvertTo-Json -Compress -Depth 5)" + $Orchestration = Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + + } else { + $Table = Get-CIPPTable -TableName 'DeltaQueries' + + if ($Parameters -and $Resource) { + $ParamJson = $Parameters | ConvertTo-Json -Depth 5 + $ResourceHash = Get-StringHash -String ($Resource + $ParamJson) + + $DeltaQuery = @{ + PartitionKey = $PartitionKey ?? $ResourceHash + RowKey = $TenantFilter + Resource = $Resource + Parameters = [string]($Parameters | ConvertTo-Json -Depth 5 -Compress) + DeltaUrl = $DeltaUrl + } + } elseif ($PartitionKey) { + $DeltaQuery = Get-AzDataTableEntity @Table -Filter "PartitionKey eq '$PartitionKey' and RowKey eq '$TenantFilter'" + } + + try { + if ($DeltaUrl) { + $GraphQuery = [System.UriBuilder]$DeltaUrl + } else { + $GraphQuery = [System.UriBuilder]('https://graph.microsoft.com/beta/{0}/delta' -f $Resource) + $QueryParams = @{ + '$deltaToken' = 'latest' + } + $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) + + foreach ($key in $QueryParams.Keys) { + if ($QueryParams[$key]) { + $ParamCollection.Add($key, $QueryParams[$key]) + } + } + + foreach ($Item in ($Parameters.GetEnumerator() | Sort-Object -CaseSensitive -Property Key)) { + if ($Item.Value -is [System.Boolean]) { + $Item.Value = $Item.Value.ToString().ToLower() + } + if ($Item.Value) { + $ParamCollection.Add($Item.Key, $Item.Value) + } + } + $GraphQuery.Query = $ParamCollection.ToString() + } + + $allResults = [System.Collections.ArrayList]::new() + $nextUrl = $GraphQuery.ToString() + $deltaLink = $null + + $DeltaError = $false + do { + try { + $response = New-GraphGetRequest -tenantid $TenantFilter -uri $nextUrl -ReturnRawResponse -extraHeaders @{ Prefer = 'return=minimal' } -ErrorAction Stop + if ($response.Content) { + $content = $response.Content + if ($content -is [string]) { + $content = $content | ConvertFrom-Json + } + + # Add results from this page + if ($content.value) { + $allResults.AddRange($content.value) + } + + # Check for next page or delta link + $nextUrl = $content.'@odata.nextLink' + $deltaLink = $content.'@odata.deltaLink' + } + } catch { + Write-Error "Error during Graph Delta Query request for tenant '$TenantFilter': $(Get-NormalizedError -Message $_.Exception.message)" + $DeltaError = $true + } + } while ($nextUrl -and -not $deltaLink -and -not $DeltaError) + + if ($DeltaError) { + throw "Delta Query failed for tenant '$TenantFilter'." + } + $DeltaQuery.RowKey = $TenantFilter + $DeltaQuery.DeltaUrl = $deltaLink + + # Return results with delta link for future queries + $result = @{ + value = $allResults.ToArray() + '@odata.deltaLink' = $deltaLink + PartitionKey = $PartitionKey + } + # Save link to table + Add-CIPPAzDataTableEntity @Table -Entity $DeltaQuery -Force + + Write-Information "Delta Query created for $($DeltaQuery.Resource). Total items: $($allResults.Count)" + + # Always return full response with deltaLink + return $result + } catch { + Write-Error "Failed to create Delta Query: $(Get-NormalizedError -Message $_.Exception.message)" + Write-Warning $_.InvocationInfo.PositionMessage + } + } +} diff --git a/Modules/CIPPCore/Public/DeltaQueries/Push-GraphDeltaQuery.ps1 b/Modules/CIPPCore/Public/DeltaQueries/Push-GraphDeltaQuery.ps1 new file mode 100644 index 000000000000..67e503543e7f --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/Push-GraphDeltaQuery.ps1 @@ -0,0 +1,19 @@ +function Push-GraphDeltaQuery { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + $Item + ) + + $Item = $Item | Select-Object -ExcludeProperty FunctionName | ConvertTo-Json -Depth 5 | ConvertFrom-Json -AsHashtable + try { + New-GraphDeltaQuery @Item + } catch { + Write-Error "Failed to create Delta Query: $(Get-NormalizedError -Message $_.Exception.message)" + Write-Warning $_.InvocationInfo.PositionMessage + } + +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/DeltaQueries/Test-DeltaQueryConditions.ps1 b/Modules/CIPPCore/Public/DeltaQueries/Test-DeltaQueryConditions.ps1 new file mode 100644 index 000000000000..a510320b160a --- /dev/null +++ b/Modules/CIPPCore/Public/DeltaQueries/Test-DeltaQueryConditions.ps1 @@ -0,0 +1,173 @@ +function Test-DeltaQueryConditions { + <# + .SYNOPSIS + Tests if the conditions for a Delta Query trigger are met. + .DESCRIPTION + This function evaluates whether the specified conditions for a Delta Query trigger are satisfied based on the provided data. + .PARAMETER Query + The result of the delta query to evaluate. + .PARAMETER Trigger + The trigger configuration containing conditions to test against. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $Query, + [Parameter(Mandatory = $true)] + $Trigger, + [Parameter(Mandatory = $true)] + $TenantFilter, + [Parameter(Mandatory = $true)] + $LastTrigger + ) + + $ConditionsMet = $false + $MatchedData = @() + + $Data = $Query.value + $EventType = $Trigger.EventType.value ?? $Trigger.EventType + + # Filter data based on delta query change type according to Microsoft Graph specification + switch ($EventType) { + 'deleted' { + Write-Information "data to process for deleted: $($Data | ConvertTo-Json -Depth 5)" + # Removed instances are represented by their id and an @removed object + $Data = $Data | Where-Object { + $_.PSObject.Properties.Name -contains '@removed' -and $_.'@removed'.reason -eq 'changed' + } + + # For directory objects, fetch full details of deleted items + Write-Information 'Fetching full details for deleted directory objects.' + + $Requests = foreach ($item in $Data) { + [PSCustomObject]@{ + 'id' = $item.id + 'url' = "directory/deletedItems/$($item.id)" + 'method' = 'GET' + } + } + try { + $DeletedItems = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + if ($DeletedItems.status -eq 200) { + Write-Information 'Retrieved full details for deleted items.' + Write-Information "Deleted items response: $($DeletedItems | ConvertTo-Json -Depth 5)" + $EnrichedData = [System.Collections.Generic.List[object]]::new() + foreach ($Row in $Data) { + $fullItem = ($DeletedItems | Where-Object { $_.id -eq $Row.id -and $_.status -eq 200 }).body + if ($fullItem) { + $EnrichedData.Add($fullItem) + } else { + $EnrichedData.Add($Row) + } + } + $Data = $EnrichedData + } + } catch { + Write-Warning "Failed to retrieve full details for deleted items: $($_.Exception.Message)" + } + + Write-Information "Found $($Data.Count) deleted items." + } + 'created' { + # Newly created instances use standard representation without @removed + # These will have their full standard representation, not minimal response + $Data = $Data | Where-Object { $_.createdDateTime -ge $LastTrigger } + Write-Information "Found $($Data.Count) created items." + } + 'updated' { + # Updated instances have at least updated properties but no @removed object + $Data = $Data | Where-Object { + $_.PSObject.Properties.Name -notcontains '@removed' -and + (!$_.createdDateTime -or $_.createdDateTime -lt $LastTrigger) + } + Write-Information "Found $($Data.Count) updated items." + } + } + + # Check if we have any data after event type filtering + if (($Data | Measure-Object).Count -eq 0) { + Write-Information "No data matches the event type filter '$EventType'. Conditions not met." + return @{ + ConditionsMet = $false + MatchedData = @() + TotalItems = ($Query.value | Measure-Object).Count + FilteredItems = 0 + MatchedItems = 0 + EventTypeFilter = $EventType + ChangeTypeSummary = @() + } + } + + if ($Trigger.UseConditions -eq $true -and $Trigger.Conditions) { + try { + # Parse conditions from JSON (similar to audit log processing) + $conditions = $Trigger.Conditions | ConvertFrom-Json | Where-Object { $_.Input.value -ne '' -and $_.Input.value -ne $null } + + if ($conditions) { + # Initialize collections for condition strings + $conditionStrings = [System.Collections.Generic.List[string]]::new() + $CIPPClause = [System.Collections.Generic.List[string]]::new() + + foreach ($condition in $conditions) { + # Handle array vs single values + $value = if ($condition.Input.value -is [array]) { + $arrayAsString = $condition.Input.value | ForEach-Object { + "'$_'" + } + "@($($arrayAsString -join ', '))" + } else { + "'$($condition.Input.value)'" + } + + # Build PowerShell condition string + $conditionStrings.Add("`$(`$_.$($condition.Property.label)) -$($condition.Operator.value) $value") + $CIPPClause.Add("$($condition.Property.label) is $($condition.Operator.label) $value") + } + + # Join all conditions with AND + $finalCondition = $conditionStrings -join ' -AND ' + + Write-Information "Testing delta query conditions: $finalCondition" + Write-Information "Human readable: $($CIPPClause -join ' and ')" + + # Apply conditions to filter the data using a script block instead of Invoke-Expression + $scriptBlock = [scriptblock]::Create("param(`$_) $finalCondition") + $MatchedData = $Data | Where-Object $scriptBlock + } else { + Write-Information 'No valid conditions found in trigger configuration.' + $MatchedData = $Data + } + } catch { + Write-Warning "Error processing delta query conditions: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $MatchedData = @() + } + } else { + # No conditions specified, consider all data as matching + $MatchedData = $Data + } + + # Determine if conditions are met based on final matched data count + $ConditionsMet = ($MatchedData | Measure-Object).Count -gt 0 + + # Return results with matched data and change type summary + $changeTypeSummary = $MatchedData | Group-Object CIPPChangeType | ForEach-Object { + @{ + ChangeType = $_.Name + Count = $_.Count + } + } + + return @{ + ConditionsMet = $ConditionsMet + MatchedData = $MatchedData + TotalItems = ($Query.value | Measure-Object).Count + FilteredItems = ($Data | Measure-Object).Count + MatchedItems = ($MatchedData | Measure-Object).Count + EventTypeFilter = $EventType + ChangeTypeSummary = $changeTypeSummary + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-GetApplicationQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-GetApplicationQueue.ps1 new file mode 100644 index 000000000000..91665837d1e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-GetApplicationQueue.ps1 @@ -0,0 +1,5 @@ +function Push-GetApplicationQueue { + param() + $Table = Get-CippTable -tablename 'apps' + Get-CIPPAzDataTableEntity @Table | Select-Object @{Name = 'Name'; Expression = { $_.RowKey } }, @{Name = 'FunctionName'; Expression = { 'UploadApplication' } } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-UploadApplication.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-UploadApplication.ps1 new file mode 100644 index 000000000000..5aae136f1ba4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Applications/Push-UploadApplication.ps1 @@ -0,0 +1,135 @@ +function Push-UploadApplication { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + try { + $Table = Get-CippTable -tablename 'apps' + $Filter = "PartitionKey eq 'apps' and RowKey eq '$($Item.Name)'" + + $ModuleRoot = (Get-Module CIPPCore).ModuleBase + $CippRoot = (Get-Item $ModuleRoot).Parent.Parent + Set-Location $CippRoot + + $ChocoApp = (Get-CIPPAzDataTableEntity @Table -filter $Filter).JSON | ConvertFrom-Json + $intuneBody = $ChocoApp.IntuneBody + $tenants = if ($ChocoApp.tenant -eq 'AllTenants') { + (Get-Tenants -IncludeErrors).defaultDomainName + } else { + $ChocoApp.tenant + } + if ($ChocoApp.type -eq 'MSPApp') { + [xml]$Intunexml = Get-Content "AddMSPApp\$($ChocoApp.MSPAppName).app.xml" + $intunewinFilesize = (Get-Item "AddMSPApp\$($ChocoApp.MSPAppName).intunewin") + $Infile = "AddMSPApp\$($ChocoApp.MSPAppName).intunewin" + } else { + [xml]$Intunexml = Get-Content 'AddChocoApp\Choco.App.xml' + $intunewinFilesize = (Get-Item 'AddChocoApp\IntunePackage.intunewin') + $Infile = "AddChocoApp\$($intunexml.ApplicationInfo.FileName)" + } + $assignTo = $ChocoApp.assignTo + $AssignToIntent = $ChocoApp.InstallationIntent + $Baseuri = 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' + $ContentBody = ConvertTo-Json @{ + name = $intunexml.ApplicationInfo.FileName + size = [int64]$intunexml.ApplicationInfo.UnencryptedContentSize + sizeEncrypted = [int64]($intunewinFilesize).length + } + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $RemoveCacheFile = if ($ChocoApp.tenant -ne 'AllTenants') { + Remove-AzDataTableEntity -Force @Table -Entity $clearRow + } else { + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$($ChocoApp | ConvertTo-Json)" + RowKey = "$($ClearRow.RowKey)" + PartitionKey = 'apps' + status = 'Deployed' + } + } + $EncBody = @{ + fileEncryptionInfo = @{ + encryptionKey = $intunexml.ApplicationInfo.EncryptionInfo.EncryptionKey + macKey = $intunexml.ApplicationInfo.EncryptionInfo.MacKey + initializationVector = $intunexml.ApplicationInfo.EncryptionInfo.InitializationVector + mac = $intunexml.ApplicationInfo.EncryptionInfo.Mac + profileIdentifier = $intunexml.ApplicationInfo.EncryptionInfo.ProfileIdentifier + fileDigest = $intunexml.ApplicationInfo.EncryptionInfo.FileDigest + fileDigestAlgorithm = $intunexml.ApplicationInfo.EncryptionInfo.FileDigestAlgorithm + } + } | ConvertTo-Json + + foreach ($tenant in $tenants) { + try { + $ApplicationList = New-GraphGetRequest -Uri $baseuri -tenantid $tenant | Where-Object { $_.DisplayName -eq $ChocoApp.Applicationname -and ($_.'@odata.type' -eq '#microsoft.graph.win32LobApp' -or $_.'@odata.type' -eq '#microsoft.graph.winGetApp') } + if ($ApplicationList.displayname.count -ge 1) { + Write-LogMessage -api 'AppUpload' -tenant $tenant -message "$($ChocoApp.Applicationname) exists. Skipping this application" -Sev 'Info' + continue + } + if ($ChocoApp.type -eq 'WinGet') { + Write-Host 'Winget!' + Write-Host ($intuneBody | ConvertTo-Json -Compress) + $NewApp = New-GraphPostRequest -Uri $baseuri -Body ($intuneBody | ConvertTo-Json -Compress) -Type POST -tenantid $tenant + Start-Sleep -Milliseconds 200 + Write-LogMessage -api 'AppUpload' -tenant $tenant -message "$($ChocoApp.Applicationname) uploaded as WinGet app." -Sev 'Info' + if ($AssignTo -ne 'On') { + $intent = if ($AssignToIntent) { 'Uninstall' } else { 'Required' } + Set-CIPPAssignedApplication -ApplicationId $NewApp.Id -Intent $intent -TenantFilter $tenant -groupName "$AssignTo" -AppType 'WinGet' + } + Write-LogMessage -api 'AppUpload' -tenant $tenant -message "$($ChocoApp.Applicationname) Successfully created" -Sev 'Info' + continue + } else { + $NewApp = New-GraphPostRequest -Uri $baseuri -Body ($intuneBody | ConvertTo-Json) -Type POST -tenantid $tenant + + } + $ContentReq = New-GraphPostRequest -Uri "$($BaseURI)/$($NewApp.id)/microsoft.graph.win32lobapp/contentVersions/1/files/" -Body $ContentBody -Type POST -tenantid $tenant + do { + $AzFileUri = New-graphGetRequest -Uri "$($BaseURI)/$($NewApp.id)/microsoft.graph.win32lobapp/contentVersions/1/files/$($ContentReq.id)" -tenantid $tenant + if ($AZfileuri.uploadState -like '*fail*') { break } + Start-Sleep -Milliseconds 300 + } while ($AzFileUri.AzureStorageUri -eq $null) + Write-Host "Uploading file to $($AzFileUri.azureStorageUri)" + Write-Host "Complete AZ file uri data: $($AzFileUri | ConvertTo-Json -Depth 10)" + $chunkSizeInBytes = 4mb + [byte[]]$bytes = [System.IO.File]::ReadAllBytes($($intunewinFilesize.fullname)) + $chunks = [Math]::Ceiling($bytes.Length / $chunkSizeInBytes) + $id = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($chunks.ToString('0000'))) + #For anyone that reads this, The maximum chunk size is 100MB for blob storage, so we can upload it as one part and just give it the single ID. Easy :) + $Upload = Invoke-RestMethod -Uri "$($AzFileUri.azureStorageUri)&comp=block&blockid=$id" -Method Put -Headers @{'x-ms-blob-type' = 'BlockBlob' } -InFile $inFile -ContentType 'application/octet-stream' + Write-Host "Upload data: $($Upload | ConvertTo-Json -Depth 10)" + $ConfirmUpload = Invoke-RestMethod -Uri "$($AzFileUri.azureStorageUri)&comp=blocklist" -Method Put -Body "$id" -ContentType 'application/xml' + Write-Host "Confirm Upload data: $($ConfirmUpload | ConvertTo-Json -Depth 10)" + $CommitReq = New-graphPostRequest -Uri "$($BaseURI)/$($NewApp.id)/microsoft.graph.win32lobapp/contentVersions/1/files/$($ContentReq.id)/commit" -Body $EncBody -Type POST -tenantid $tenant + Write-Host "Commit Request: $($CommitReq | ConvertTo-Json -Depth 10)" + + do { + $CommitStateReq = New-graphGetRequest -Uri "$($BaseURI)/$($NewApp.id)/microsoft.graph.win32lobapp/contentVersions/1/files/$($ContentReq.id)" -tenantid $tenant + Write-Host "Commit State Request: $($CommitStateReq | ConvertTo-Json -Depth 10)" + if ($CommitStateReq.uploadState -like '*fail*') { + Write-LogMessage -api 'AppUpload' -tenant $tenant -message "$($ChocoApp.Applicationname) Commit failed. Please check if app uploaded succesful" -Sev 'Warning' + break + } + Start-Sleep -Milliseconds 300 + } while ($CommitStateReq.uploadState -eq 'commitFilePending') + $CommitFinalizeReq = New-graphPostRequest -Uri "$($BaseURI)/$($NewApp.id)" -tenantid $tenant -Body '{"@odata.type":"#microsoft.graph.win32lobapp","committedContentVersion":"1"}' -type PATCH + Write-Host "Commit Finalize Request: $($CommitFinalizeReq | ConvertTo-Json -Depth 10)" + Write-LogMessage -api 'AppUpload' -tenant $tenant -message "Added Application $($ChocoApp.Applicationname)" -Sev 'Info' + if ($AssignTo -ne 'On') { + $intent = if ($AssignToIntent) { 'Uninstall' } else { 'Required' } + Set-CIPPAssignedApplication -ApplicationId $NewApp.Id -Intent $intent -TenantFilter $tenant -groupName "$AssignTo" -AppType 'Win32Lob' + + } + Write-LogMessage -api 'AppUpload' -tenant $tenant -message 'Successfully added Application' -Sev 'Info' + } catch { + "Failed to add Application for $($Tenant): $($_.Exception.Message)" + Write-LogMessage -api 'AppUpload' -tenant $tenant -message "Failed adding Application $($ChocoApp.Applicationname). Error: $($_.Exception.Message)" -LogData (Get-CippException -Exception $_) -Sev 'Error' + continue + } + } + } catch { + Write-Host "Error pushing application: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 new file mode 100644 index 000000000000..09eabf880be8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 @@ -0,0 +1,189 @@ +function Push-BECRun { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $TenantFilter = $Item.TenantFilter + $SuspectUser = $Item.UserID + $UserName = $Item.userName + + if (!$TenantFilter -or !$SuspectUser) { + Write-Information 'BEC: No user or tenant specified' + return + } + $Table = Get-CippTable -tablename 'cachebec' + + Write-Information "Working on $UserName" + try { + $startDate = (Get-Date).AddDays(-7).ToUniversalTime() + $endDate = (Get-Date) + Write-Information 'Getting audit logs' + $auditLog = (New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AdminAuditLogConfig').UnifiedAuditLogIngestionEnabled + $7dayslog = if ($auditLog -eq $false) { + $ExtractResult = 'AuditLog is disabled. Cannot perform full analysis' + } else { + $sessionid = Get-Random -Minimum 10000 -Maximum 99999 + $operations = @( + 'Remove-MailboxPermission', + 'Add-MailboxPermission', + 'UpdateCalendarDelegation', + 'AddFolderPermissions', + 'MailboxLogin', + 'UserLoggedIn' + ) + $startDate = (Get-Date).AddDays(-7) + $endDate = (Get-Date) + $SearchParam = @{ + SessionCommand = 'ReturnLargeSet' + Operations = $operations + sessionid = $sessionid + startDate = $startDate + endDate = $endDate + } + do { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Search-unifiedAuditLog' -cmdParams $SearchParam -Anchor $Username + Write-Information "Retrieved $($logsTenant.count) logs" + $logsTenant + } while ($LogsTenant.count % 5000 -eq 0 -and $LogsTenant.count -ne 0) + $ExtractResult = 'Successfully extracted logs from auditlog' + } + Write-Information 'Getting last sign-in' + try { + $URI = "https://graph.microsoft.com/beta/auditLogs/signIns?`$filter=(userId eq '$SuspectUser')&`$top=1&`$orderby=createdDateTime desc" + $LastSignIn = New-GraphGetRequest -uri $URI -tenantid $TenantFilter -noPagination $true -verbose | Select-Object @{ Name = 'CreatedDateTime'; Expression = { $(($_.createdDateTime | Out-String) -replace '\r\n') } }, + id, + @{ Name = 'AppDisplayName'; Expression = { $_.resourceDisplayName } }, + @{ Name = 'Status'; Expression = { if (($_.conditionalAccessStatus -eq 'Success' -or 'Not Applied') -and $_.status.errorCode -eq 0) { 'Success' } else { 'Failed' } } }, + @{ Name = 'IPAddress'; Expression = { $_.ipAddress } } + } catch { + $LastSignIn = [PSCustomObject]@{ + AppDisplayName = 'Unknown - could not retrieve information. No access to sign-in logs' + CreatedDateTime = 'Unknown' + Id = '0' + Status = 'Could not retrieve additional details' + } + } + Write-Information 'Getting user devices' + #List all users devices + $Bytes = [System.Text.Encoding]::UTF8.GetBytes($SuspectUser) + $base64IdentityParam = [Convert]::ToBase64String($Bytes) + try { + $Devices = New-GraphGetRequest -uri "https://outlook.office365.com:443/adminapi/beta/$($TenantFilter)/mailbox('$($base64IdentityParam)')/MobileDevice/Exchange.GetMobileDeviceStatistics()/?IsEncoded=True" -Tenantid $TenantFilter -scope ExchangeOnline + } catch { + $Devices = $null + } + + try { + $PermissionsLog = ($7dayslog | Where-Object -Property Operations -In 'Remove-MailboxPermission', 'Add-MailboxPermission', 'UpdateCalendarDelegation', 'AddFolderPermissions' ).AuditData | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { + $perms = if ($_.Parameters) { + $_.Parameters | ForEach-Object { if ($_.Name -eq 'AccessRights') { $_.Value } } + } else + { $_.item.ParentFolder.MemberRights } + $objectID = if ($_.ObjectID) { $_.ObjectID } else { $($_.MailboxOwnerUPN) + $_.item.ParentFolder.Path } + [pscustomobject]@{ + Operation = $_.Operation + UserKey = $_.UserKey + ObjectId = $objectId + Permissions = $perms + } + } + } catch { + $PermissionsLog = @() + } + + Write-Information 'Getting rules' + + try { + $RulesLog = New-ExoRequest -cmdlet 'Get-InboxRule' -tenantid $TenantFilter -cmdParams @{ Mailbox = $Username; IncludeHidden = $true } -Anchor $Username | + Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } + } catch { + Write-Host 'Failed to get rules: ' + $_.Exception.Message + $RulesLog = @() + } + + Write-Information 'Getting last 50 logons' + try { + $Last50Logons = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/signIns?`$filter=userDisplayName ne 'On-Premises Directory Synchronization Service Account'&`$top=50&`$orderby=createdDateTime desc" -tenantid $TenantFilter -noPagination $true | Select-Object @{ Name = 'CreatedDateTime'; Expression = { $(($_.createdDateTime | Out-String) -replace '\r\n') } }, + id, + @{ Name = 'AppDisplayName'; Expression = { $_.resourceDisplayName } }, + @{ Name = 'Status'; Expression = { if (($_.conditionalAccessStatus -eq 'Success' -or 'Not Applied') -and $_.status.errorCode -eq 0) { 'Success' } else { 'Failed' } } }, + @{ Name = 'IPAddress'; Expression = { $_.ipAddress } }, UserPrincipalName, UserDisplayName + } catch { + $Last50Logons = @( + [PSCustomObject]@{ + AppDisplayName = 'Unknown - could not retrieve information. No access to sign-in logs' + CreatedDateTime = 'Unknown' + Id = '0' + Status = 'Could not retrieve additional details' + Exception = $_.Exception.Message + } + ) + } + + $Requests = @( + @{ + id = 'Users' + url = "users?`$select=id,displayName,userPrincipalName,createdDateTime,lastPasswordChangeDateTime" + method = 'GET' + } + @{ + id = 'MFADevices' + url = "users/$($SuspectUser)/authentication/methods" + method = 'GET' + } + @{ + id = 'NewSPs' + url = "servicePrincipals?`$select=displayName,createdDateTime,appId,appDisplayName,publisher&`$filter=createdDateTime ge $($startDate.ToString('yyyy-MM-ddTHH:mm:ssZ'))" + method = 'GET' + } + ) + + Write-Information 'Getting bulk requests' + $GraphResults = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true + + $PasswordChanges = (($GraphResults | Where-Object { $_.id -eq 'Users' }).body.value | Where-Object { $_.lastPasswordChangeDateTime -ge $startDate }) ?? @() + $NewUsers = (($GraphResults | Where-Object { $_.id -eq 'Users' }).body.value | Where-Object { $_.createdDateTime -ge $startDate }) ?? @() + $MFADevices = ($GraphResults | Where-Object { $_.id -eq 'MFADevices' }).body.value ?? @() + $NewSPs = ($GraphResults | Where-Object { $_.id -eq 'NewSPs' }).body.value ?? @() + + + $Results = [PSCustomObject]@{ + AddedApps = @($NewSPs) + SuspectUserMailboxLogons = @($Last50Logons) + LastSuspectUserLogon = @($LastSignIn) + SuspectUserDevices = @($Devices) + NewRules = @($RulesLog) + MailboxPermissionChanges = @($PermissionsLog) + NewUsers = @($NewUsers) + MFADevices = @($MFADevices) + ChangedPasswords = @($PasswordChanges) + ExtractedAt = (Get-Date) + ExtractResult = $ExtractResult + } + + $Entity = @{ + UserId = $SuspectUser + Results = [string]($Results | ConvertTo-Json -Depth 10 -Compress) + RowKey = $SuspectUser + PartitionKey = 'bec' + Status = 'Completed' + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + Write-LogMessage -API 'BECRun' -message "BEC Check run for $UserName" -tenant $TenantFilter -sev 'Info' + } catch { + $errMessage = Get-NormalizedError -message $_.Exception.Message + $CippError = Get-CippException -Exception $_ + $results = [pscustomobject]@{'Results' = "$errMessage"; Exception = $CippError } + Write-LogMessage -API 'BECRun' -message "Error Running BEC for $($UserName): $errMessage" -tenant $TenantFilter -sev 'Error' -LogData $CIPPError + $Entity = @{ + UserId = $SuspectUser + Results = [string]($Results | ConvertTo-Json -Depth 10 -Compress) + RowKey = $SuspectUser + PartitionKey = 'bec' + Status = 'Error' + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 new file mode 100644 index 000000000000..0cc163058e14 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/BPA/Push-BPACollectData.ps1 @@ -0,0 +1,128 @@ +function Push-BPACollectData { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $TenantName = Get-Tenants | Where-Object -Property defaultDomainName -EQ $Item.Tenant + $BPATemplateTable = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'BPATemplate'" + $TemplatesLoc = (Get-CIPPAzDataTableEntity @BPATemplateTable -Filter $Filter).JSON | ConvertFrom-Json + + $Templates = $TemplatesLoc | ForEach-Object { + $Template = $_ + [PSCustomObject]@{ + Data = $Template + Name = $Template.Name + Style = $Template.Style + } + } + $Table = Get-CippTable -tablename 'cachebpav2' + + $Rerun = Test-CIPPRerun -Type 'BPA' -Tenant $Item.Tenant -API $Item.Template + if ($Rerun) { + Write-Host 'Detected rerun for BPA. Exiting cleanly' + exit 0 + } + Write-Host "Working on BPA for $($TenantName.defaultDomainName) with GUID $($TenantName.customerId) - Report ID $($Item.Template)" + $Template = $Templates | Where-Object -Property Name -EQ -Value $Item.Template + # Build up the result object that will be stored in tables + $Result = @{ + Tenant = "$($TenantName.displayName)" + GUID = "$($TenantName.customerId)" + RowKey = "$($Template.Name)" + PartitionKey = "$($TenantName.customerId)" + LastRefresh = [string]$(Get-Date (Get-Date).ToUniversalTime() -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') + } + foreach ($field in $Template.Data.Fields) { + if ($field.UseExistingInfo) { continue } + if ($Field.Where) { $filterscript = [scriptblock]::Create($Field.Where) } else { $filterscript = { $true } } + try { + switch ($field.API) { + 'Graph' { + $paramsField = @{ + uri = $field.URL + tenantid = $TenantName.defaultDomainName + } + if ($Field.Parameters.PSObject.properties.name) { + $field.Parameters | ForEach-Object { + $paramsField[$_.PSObject.properties.name] = $_.PSObject.properties.value + } + } + $FieldInfo = New-GraphGetRequest @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields + } + 'Exchange' { + Write-Host "Trying to execute $($field.Command) for $($TenantName.displayName) with GUID $($TenantName.customerId)" + if ($field.Command -notlike 'get-*') { + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message 'The BPA only supports get- exchange commands. A set or update command was used.' -sev Error + break + } else { + $paramsField = @{ + tenantid = $TenantName.defaultDomainName + cmdlet = $field.Command + } + if ($Field.Parameters) { $paramsField.'cmdParams' = $field.parameters } + $FieldInfo = New-ExoRequest @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields + } + } + 'CIPPFunction' { + if ($field.Command -notlike 'get-CIPP*') { + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message 'The BPA only supports get-CIPP commands. A set or update command was used, or a command that is not allowed.' -sev Error + break + } + $paramsField = @{ + TenantFilter = $TenantName.defaultDomainName + } + if ($field.Parameters.PSObject.properties.name) { + $field.Parameters | ForEach-Object { + $paramsField[$_.PSObject.properties.name] = $_.PSObject.properties.value + } + } + $FieldInfo = & $field.Command @paramsField | Where-Object $filterscript | Select-Object $field.ExtractFields + } + } + } catch { + Write-Information "Error getting $($field.Name) in $($field.api) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error getting $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + $FieldInfo = 'FAILED' + $field.StoreAs = 'string' + } + try { + switch -Wildcard ($field.StoreAs) { + '*bool' { + if ($field.ExtractFields.Count -gt 1) { + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "The BPA only supports 1 field for a bool. $($field.ExtractFields.Count) fields were specified." -sev Error + break + } + if ($null -eq $FieldInfo.$($field.ExtractFields)) { $FieldInfo = $false } + + $Result.Add($field.Name, [bool]$FieldInfo.$($field.ExtractFields)) + } + 'JSON' { + if ($null -eq $FieldInfo) { $JsonString = '{}' } else { $JsonString = (ConvertTo-Json -Depth 15 -InputObject $FieldInfo -Compress) } + Write-Host "Adding $($field.Name) to table with value $JsonString" + $Result.Add($field.Name, $JSONString) + } + 'string' { + $Result.Add($field.Name, [string]$FieldInfo) + } + 'percentage' { + + } + } + } catch { + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error storing $($field.Name) for $($TenantName.displayName) with GUID $($TenantName.customerId). Error: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + $Result.Add($field.Name, 'FAILED') + } + + } + + if ($Result) { + try { + Add-CIPPAzDataTableEntity @Table -Entity $Result -Force + } catch { + Write-LogMessage -API 'BPA' -tenant $TenantName.defaultDomainName -message "Error getting saving data for $($template.Name) - $($TenantName.customerId). Error: $($_.Exception.Message)" -LogData (Get-CippException -Exception $_) -sev Error + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 new file mode 100644 index 000000000000..ed24471113d9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserDomain.ps1 @@ -0,0 +1,327 @@ +function Push-DomainAnalyserDomain { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + $DomainTable = Get-CippTable -tablename 'Domains' + $Filter = "PartitionKey eq 'TenantDomains' and RowKey eq '{0}'" -f $Item.RowKey + $DomainObject = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter | Select-Object * -ExcludeProperty table + + try { + $ConfigTable = Get-CippTable -tablename Config + $Filter = "PartitionKey eq 'Domains' and RowKey eq 'Domains'" + $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + + $ValidResolvers = @('Google', 'CloudFlare', 'Quad9') + if ($ValidResolvers -contains $Config.Resolver) { + $Resolver = $Config.Resolver + } else { + $Resolver = 'Google' + $Config = @{ + PartitionKey = 'Domains' + RowKey = 'Domains' + Resolver = $Resolver + } + Add-CIPPAzDataTableEntity @ConfigTable -Entity $Config -Force + } + } catch { + $Resolver = 'Google' + } + Set-DnsResolver -Resolver $Resolver + + $Domain = $DomainObject.RowKey + + try { + $Tenant = $DomainObject.TenantDetails | ConvertFrom-Json -ErrorAction Stop + } catch { + $Tenant = @{ Tenant = 'None' } + } + + $Result = [PSCustomObject]@{ + Tenant = $Tenant.Tenant + TenantID = $Tenant.TenantGUID + GUID = $($Domain.Replace('.', '')) + LastRefresh = $(Get-Date (Get-Date).ToUniversalTime() -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') + Domain = $Domain + NSRecords = (Read-NSRecord -Domain $Domain).Records + ExpectedSPFRecord = '' + ActualSPFRecord = '' + SPFPassAll = '' + ActualMXRecords = '' + MXPassTest = '' + DMARCPresent = '' + DMARCFullPolicy = '' + DMARCActionPolicy = '' + DMARCReportingActive = '' + DMARCPercentagePass = '' + DNSSECPresent = '' + MailProvider = '' + DKIMEnabled = '' + DKIMRecords = '' + MSCNAMEDKIMSelectors = '' + Score = '' + MaximumScore = 160 + ScorePercentage = '' + ScoreExplanation = '' + } + + $Scores = [PSCustomObject]@{ + SPFPresent = 10 + SPFCorrectAll = 20 + MXRecommended = 10 + DMARCPresent = 10 + DMARCSetQuarantine = 20 + DMARCSetReject = 30 + DMARCReportingActive = 20 + DMARCPercentageGood = 20 + DNSSECPresent = 20 + DKIMActiveAndWorking = 20 + } + + $ScoreDomain = 0 + # Setup Score Explanation + $ScoreExplanation = [System.Collections.Generic.List[string]]::new() + + #Region MX Check + $MXRecord = Read-MXRecord -Domain $Domain -ErrorAction Stop + + $Result.ExpectedSPFRecord = $MXRecord.ExpectedInclude + $Result.MXPassTest = $false + $Result.ActualMXRecords = $MXRecord.Records + + # Check fail counts to ensure all tests pass + #$MXWarnCount = $MXRecord.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count + $MXFailCount = $MXRecord.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count + + if ($MXFailCount -eq 0) { + $Result.MXPassTest = $true + $ScoreDomain += $Scores.MXRecommended + } else { + $ScoreExplanation.Add('MX record did not pass validation') | Out-Null + } + + if ([string]::IsNullOrEmpty($MXRecord.MailProvider)) { + $Result.MailProvider = 'Unknown' + } else { + $Result.MailProvider = $MXRecord.MailProvider.Name + } + #EndRegion MX Check + + #Region SPF Check + try { + $SPFRecord = Read-SpfRecord -Domain $Domain -ErrorAction Stop + if ($SPFRecord.RecordCount -gt 0) { + $Result.ActualSPFRecord = $SPFRecord.Record + if ($SPFRecord.RecordCount -eq 1) { + $ScoreDomain += $Scores.SPFPresent + } else { + $ScoreExplanation.Add('Multiple SPF records detected') | Out-Null + } + } else { + $Result.ActualSPFRecord = 'No SPF Record' + $ScoreExplanation.Add('No SPF Record Found') | Out-Null + } + } catch { + $Message = 'SPF Error' + Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message $Message -LogData (Get-CippException -Exception $_) -sev Error + } + + + # Check warning + fail counts to ensure all tests pass + #$SPFWarnCount = $SPFRecord.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count + $SPFFailCount = $SPFRecord.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count + $Result.SPFPassAll = $false + + if ($SPFFailCount -eq 0) { + $ScoreDomain += $Scores.SPFCorrectAll + $Result.SPFPassAll = $true + } else { + $ScoreExplanation.Add('SPF record did not pass validation') | Out-Null + } + #EndRegion SPF Check + + #Region DMARC Check + try { + $DMARCPolicy = Read-DmarcPolicy -Domain $Domain -ErrorAction Stop + + if ([string]::IsNullOrEmpty($DMARCPolicy.Record)) { + $Result.DMARCPresent = $false + $ScoreExplanation.Add('No DMARC Records Found') | Out-Null + } else { + $Result.DMARCPresent = $true + $ScoreDomain += $Scores.DMARCPresent + + $Result.DMARCFullPolicy = $DMARCPolicy.Record + if ($DMARCPolicy.Policy -eq 'reject' -and $DMARCPolicy.SubdomainPolicy -eq 'reject') { + $Result.DMARCActionPolicy = 'Reject' + $ScoreDomain += $Scores.DMARCSetReject + } + if ($DMARCPolicy.Policy -eq 'none') { + $Result.DMARCActionPolicy = 'None' + $ScoreExplanation.Add('DMARC is not being enforced') | Out-Null + } + if ($DMARCPolicy.Policy -eq 'quarantine') { + $Result.DMARCActionPolicy = 'Quarantine' + $ScoreDomain += $Scores.DMARCSetQuarantine + $ScoreExplanation.Add('DMARC Partially Enforced with quarantine') | Out-Null + } + + $ReportEmailCount = $DMARCPolicy.ReportingEmails | Measure-Object | Select-Object -ExpandProperty Count + if ($ReportEmailCount -gt 0) { + $Result.DMARCReportingActive = $true + $ScoreDomain += $Scores.DMARCReportingActive + } else { + $Result.DMARCReportingActive = $False + $ScoreExplanation.Add('DMARC Reporting not Configured') | Out-Null + } + + if ($DMARCPolicy.Percent -eq 100) { + $Result.DMARCPercentagePass = $true + $ScoreDomain += $Scores.DMARCPercentageGood + } else { + $Result.DMARCPercentagePass = $false + $ScoreExplanation.Add('DMARC Not Checking All Messages') | Out-Null + } + } + } catch { + $Message = 'DMARC Error' + Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message $Message -LogData (Get-CippException -Exception $_) -sev Error + #return $Message + } + #EndRegion DMARC Check + + #Region DNS Sec Check + try { + $DNSSECResult = Test-DNSSEC -Domain $Domain -ErrorAction Stop + $DNSSECFailCount = $DNSSECResult.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count + $DNSSECWarnCount = $DNSSECResult.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count + if (($DNSSECFailCount + $DNSSECWarnCount) -eq 0) { + $Result.DNSSECPresent = $true + $ScoreDomain += $Scores.DNSSECPresent + } else { + $Result.DNSSECPresent = $false + $ScoreExplanation.Add('DNSSEC Not Configured or Enabled') | Out-Null + } + } catch { + $Message = 'DNSSEC Error' + Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message $Message -LogData (Get-CippException -Exception $_) -sev Error + #return $Message + } + #EndRegion DNS Sec Check + + #Region DKIM Check + try { + $DkimParams = @{ + Domain = $Domain + FallbackToMicrosoftSelectors = $true + } + if (![string]::IsNullOrEmpty($DomainObject.DkimSelectors)) { + $DkimParams.Selectors = $DomainObject.DkimSelectors | ConvertFrom-Json + } + # Check if its a onmicrosoft.com domain and add special selectors for these + if ($Domain -match 'onmicrosoft.com' -and $Domain -notmatch 'mail.onmicrosoft.com') { + $DKIMSelector1Value = "selector1-$($Domain -replace '\.', '-' )" + $DKIMSelector2Value = "selector2-$($Domain -replace '\.', '-' )" + $DkimParams.Add('Selectors', @("$DKIMSelector1Value", "$DKIMSelector2Value")) + } + + $DkimRecord = Read-DkimRecord @DkimParams -ErrorAction Stop + + $DkimRecordCount = $DkimRecord.Records | Measure-Object | Select-Object -ExpandProperty Count + $DkimFailCount = $DkimRecord.ValidationFails | Measure-Object | Select-Object -ExpandProperty Count + #$DkimWarnCount = $DkimRecord.ValidationWarns | Measure-Object | Select-Object -ExpandProperty Count + if ($DkimRecordCount -gt 0 -and $DkimFailCount -eq 0) { + $Result.DKIMEnabled = $true + $ScoreDomain += $Scores.DKIMActiveAndWorking + $Result.DKIMRecords = $DkimRecord.Records | Select-Object Selector, Record + } else { + $Result.DKIMEnabled = $false + $ScoreExplanation.Add('DKIM Not Configured') | Out-Null + } + } catch { + $Message = 'DKIM Exception' + Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message $Message -LogData (Get-CippException -Exception $_) -sev Error + #return $Message + } + #EndRegion DKIM Check + + #Region MSCNAME DKIM Records + # Get Microsoft DKIM CNAME selector Records + # Ugly, but i needed to create a scope/loop i could break out of without breaking the rest of the function + foreach ($d in $Domain) { + try { + # Test if DKIM is enabled, skip domain if it is + if ($Result.DKIMEnabled -eq $true) { + continue + } + # Test if its a onmicrosoft.com domain, skip domain if it is + if ($Domain -match 'onmicrosoft.com') { + continue + } + # Test if there are already MSCNAME values set, skip domain if there is + if ($null -ne $DomainObject.DomainAnalyser) { + $CurrentMSCNAMEInfo = ConvertFrom-Json $DomainObject.DomainAnalyser -Depth 10 + if (![string]::IsNullOrWhiteSpace($CurrentMSCNAMEInfo.MSCNAMEDKIMSelectors.selector1.Value) -and + ![string]::IsNullOrWhiteSpace($CurrentMSCNAMEInfo.MSCNAMEDKIMSelectors.selector2.Value)) { + $Result.MSCNAMEDKIMSelectors = $CurrentMSCNAMEInfo.MSCNAMEDKIMSelectors + continue + } + } + + # Get the DKIM record from EXO. This is the only way to get the correct values for the MSCNAME records since the new format was introduced in May 2025. + $DKIM = (New-ExoRequest -tenantid $Tenant.Tenant -cmdlet 'Get-DkimSigningConfig' -Select 'Domain,Selector1CNAME,Selector2CNAME') | Where-Object { $_.Domain -eq $Domain } + + # If no DKIM signing record is found, create a new disabled one + if ($null -eq $DKIM) { + Write-Information 'No DKIM record found in EXO - Creating new signing' + $NewDKIMSigningRequest = New-ExoRequest -tenantid $Tenant.Tenant -cmdlet 'New-DkimSigningConfig' -cmdParams @{ KeySize = 2048; DomainName = $Domain; Enabled = $false } + $Selector1Value = $NewDKIMSigningRequest.Selector1CNAME + $Selector2Value = $NewDKIMSigningRequest.Selector2CNAME + } else { + $Selector1Value = $DKIM.Selector1CNAME + $Selector2Value = $DKIM.Selector2CNAME + } + + + # Create the MSCNAME object + $MSCNAMERecords = [PSCustomObject]@{ + Domain = $Domain + selector1 = @{ + Hostname = 'selector1._domainkey' + Value = $Selector1Value + } + selector2 = @{ + Hostname = 'selector2._domainkey' + Value = $Selector2Value + } + } + $Result.MSCNAMEDKIMSelectors = $MSCNAMERecords + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message "MS CNAME DKIM error: $($ErrorMessage.NormalizedError)" -LogData $ErrorMessage -sev Error + } + } + #EndRegion MSCNAME DKIM Records + # Final Score + $Result.Score = $ScoreDomain + $Result.ScorePercentage = [int](($Result.Score / $Result.MaximumScore) * 100) + $Result.ScoreExplanation = ($ScoreExplanation) -join ', ' + + $Json = (ConvertTo-Json -InputObject $Result -Depth 5 -Compress).ToString() + + if ($DomainObject.PSObject.Properties.Name -notcontains 'DomainAnalyser') { + $DomainObject | Add-Member -MemberType NoteProperty -Name DomainAnalyser -Value $Json + } else { + $DomainObject.DomainAnalyser = $Json + } + + try { + $DomainTable.Entity = $DomainObject + $DomainTable.Force = $true + Add-CIPPAzDataTableEntity @DomainTable -Entity $DomainObject -Force + } catch { + Write-LogMessage -API 'DomainAnalyser' -tenant $DomainObject.TenantId -message "Error saving domain $Domain to table " -sev Error -LogData (Get-CippException -Exception $_) + } + return $Result +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 new file mode 100644 index 000000000000..43444b4a4101 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 @@ -0,0 +1,143 @@ +function Push-DomainAnalyserTenant { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $Tenant = Get-Tenants -IncludeAll | Where-Object { $_.customerId -eq $Item.customerId } | Select-Object -First 1 + $DomainTable = Get-CippTable -tablename 'Domains' + + if ($Tenant.Excluded -eq $true) { + $Filter = "PartitionKey eq 'TenantDomains' and TenantId eq '{0}'" -f $Tenant.defaultDomainName + $CleanupRows = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter + $CleanupCount = ($CleanupRows | Measure-Object).Count + if ($CleanupCount -gt 0) { + Write-LogMessage -API 'DomainAnalyser' -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -message "Cleaning up $CleanupCount domain(s) for excluded tenant" -sev Info + Remove-AzDataTableEntity -Force @DomainTable -Entity $CleanupRows + } + } elseif ($Tenant.GraphErrorCount -gt 50) { + return + } else { + try { + # Remove domains that are not wanted, and used for cloud signature services. Same exclusions also found in Invoke-CIPPStandardAddDKIM + $ExclusionDomains = @( + '*.microsoftonline.com' + '*.mail.onmicrosoft.com' + '*.exclaimer.cloud' + '*.excl.cloud' + '*.codetwo.online' + '*.call2teams.com' + '*.signature365.net' + '*.myteamsconnect.io' + '*.teams.dstny.com' + '*.msteams.8x8.com' + '*.ucconnect.co.uk' + '*.teams-sbc.dk' + ) + $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $Tenant.customerId | Where-Object { $_.isVerified -eq $true } | ForEach-Object { + $Domain = $_ + foreach ($ExclusionDomain in $ExclusionDomains) { + if ($Domain.id -like $ExclusionDomain) { + $Domain = $null + } + } + $Domain + } | Where-Object { $_ -ne $null } + + $TenantDomains = foreach ($d in $Domains) { + [PSCustomObject]@{ + Tenant = $Tenant.defaultDomainName + TenantGUID = $Tenant.customerId + InitialDomainName = $Tenant.initialDomainName + Domain = $d.id + AuthenticationType = $d.authenticationType + IsAdminManaged = $d.isAdminManaged + IsDefault = $d.isDefault + IsInitial = $d.isInitial + IsRoot = $d.isRoot + IsVerified = $d.isVerified + SupportedServices = $d.supportedServices + } + } + + $DomainCount = ($TenantDomains | Measure-Object).Count + if ($DomainCount -gt 0) { + Write-Host "############# $DomainCount tenant Domains" + $TenantDomainObjects = [System.Collections.Generic.List[object]]::new() + try { + foreach ($TenantDomain in $TenantDomains) { + $TenantDetails = ($TenantDomain | ConvertTo-Json -Compress).ToString() + $Filter = "PartitionKey eq '{0}' and RowKey eq '{1}'" -f $TenantDomain.Tenant, $TenantDomain.Domain + $OldDomain = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter + + if ($OldDomain) { + Remove-AzDataTableEntity -Force @DomainTable -Entity $OldDomain | Out-Null + } + + $Filter = "PartitionKey eq 'TenantDomains' and RowKey eq '{0}'" -f $TenantDomain.Domain + $Domain = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter + + if (!$Domain -or $null -eq $TenantDomain.TenantGUID) { + $Domain = [pscustomobject]@{ + DomainAnalyser = '' + TenantDetails = $TenantDetails + TenantId = $TenantDomain.Tenant + TenantGUID = $TenantDomain.TenantGUID + DkimSelectors = '' + MailProviders = '' + RowKey = $TenantDomain.Domain + PartitionKey = 'TenantDomains' + } + + if ($OldDomain) { + $DomainObject.DkimSelectors = $OldDomain.DkimSelectors + $DomainObject.MailProviders = $OldDomain.MailProviders + } + } else { + $Domain.TenantDetails = $TenantDetails + if ($OldDomain) { + $Domain.DkimSelectors = $OldDomain.DkimSelectors + $Domain.MailProviders = $OldDomain.MailProviders + } + # Fix tenant info in the event of a default domain name change in a tenant + $Domain | Add-Member -MemberType NoteProperty -Name 'TenantId' -Value $TenantDomain.Tenant -Force + $Domain | Add-Member -MemberType NoteProperty -Name 'TenantGUID' -Value $TenantDomain.TenantGUID -Force + } + # Return domain object to list + $TenantDomainObjects.Add($Domain) + } + + # Batch insert tenant domains + try { + Add-CIPPAzDataTableEntity @DomainTable -Entity $TenantDomainObjects -Force + $InputObject = [PSCustomObject]@{ + QueueFunction = @{ + FunctionName = 'GetTenantDomains' + TenantGUID = $Tenant.customerId + } + OrchestratorName = "DomainAnalyser_$($Tenant.defaultDomainName)" + PostExecution = @{ + FunctionName = 'GetDomainAnalyserResults' + Parameters = @{ + Tenant = $Tenant + } + } + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + Write-Host "Started analysis for $DomainCount tenant domains in $($Tenant.defaultDomainName)" + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message "Started analysis for $DomainCount tenant domains" -sev Info + } catch { + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'Domain Analyser GetTenantDomains error' -sev 'Error' -LogData (Get-CippException -Exception $_) + } + } catch { + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'GetTenantDomains loop error' -sev 'Error' -LogData (Get-CippException -Exception $_) + } + } + } catch { + #Write-Host (Get-CippException -Exception $_ | ConvertTo-Json) + Write-LogMessage -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -API 'DomainAnalyser' -message 'DNS Analyser GraphGetRequest' -LogData (Get-CippException -Exception $_) -sev Error + } + } + return $null +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 new file mode 100644 index 000000000000..9a98b49ceb06 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetDomainAnalyserResults.ps1 @@ -0,0 +1,10 @@ +function Push-GetDomainAnalyserResults { + [CmdletBinding()] + param ( + $Item + ) + + $Tenant = $Item.Parameters.Tenant + Write-LogMessage -API 'DomainAnalyser' -Tenant $Tenant.defaultDomainName -TenantId $Tenant.customerId -message "Domain Analyser completed for tenant $($Tenant.defaultDomainName)" -sev Info -LogData ($Item.Results | Select-Object Domain, @{Name = 'Score'; Expression = { "$($_.Score)/$($_.MaximumScore)" } }) + return +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetTenantDomains.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetTenantDomains.ps1 new file mode 100644 index 000000000000..071bb5289139 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-GetTenantDomains.ps1 @@ -0,0 +1,7 @@ +function Push-GetTenantDomains { + Param($Item) + $DomainTable = Get-CippTable -tablename 'Domains' + $Filter = "PartitionKey eq 'TenantDomains' and TenantGUID eq '{0}'" -f $Item.TenantGUID + $Domains = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter -Property PartitionKey, RowKey | Select-Object RowKey, @{n = 'FunctionName'; exp = { 'DomainAnalyserDomain' } } + return @($Domains) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Graph Requests/Push-ListGraphRequestQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Graph Requests/Push-ListGraphRequestQueue.ps1 new file mode 100644 index 000000000000..9c838711e42c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Graph Requests/Push-ListGraphRequestQueue.ps1 @@ -0,0 +1,72 @@ +function Push-ListGraphRequestQueue { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + Write-Information "PowerShell durable function processed work item: $($Item.Endpoint) - $($Item.TenantFilter)" + + try { + $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) + + $Parameters = $Item.Parameters | ConvertTo-Json -Depth 5 | ConvertFrom-Json -AsHashtable + foreach ($Param in ($Parameters.GetEnumerator() | Sort-Object -CaseSensitive -Property Key)) { + $ParamCollection.Add($Param.Key, $Param.Value) + } + + $PartitionKey = $Item.PartitionKey + + $TableName = ('cache{0}' -f ($Item.Endpoint -replace '[^A-Za-z0-9]'))[0..62] -join '' + Write-Information "Queue Table: $TableName" + $Table = Get-CIPPTable -TableName $TableName + + $Filter = "PartitionKey eq '{0}' and (RowKey eq '{1}' or OriginalEntityId eq '{1}')" -f $PartitionKey, $Item.TenantFilter + Write-Information "Filter: $Filter" + $Existing = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey, OriginalEntityId + if ($Existing) { + $null = Remove-AzDataTableEntity -Force @Table -Entity $Existing + } + $GraphRequestParams = @{ + TenantFilter = $Item.TenantFilter + Endpoint = $Item.Endpoint + Parameters = $Parameters + NoPagination = $Item.NoPagination + ReverseTenantLookupProperty = $Item.ReverseTenantLookupProperty + ReverseTenantLookup = $Item.ReverseTenantLookup + AsApp = $Item.AsApp ?? $false + Caller = 'Push-ListGraphRequestQueue' + SkipCache = $true + } + + $RawGraphRequest = try { + $Results = Get-GraphRequestList @GraphRequestParams + if ($Results[-1].PSObject.Properties.Name -contains 'nextLink') { + $Results | Select-Object -First ($Results.Count - 1) + } else { + $Results + } + } catch { + $CippException = Get-CippException -Exception $_.Exception + [PSCustomObject]@{ + Tenant = $Item.TenantFilter + CippStatus = "Could not connect to tenant. $($CippException.NormalizedMessage)" + CippException = [string]($CippException | ConvertTo-Json -Depth 10 -Compress) + } + } + $Json = ConvertTo-Json -Depth 10 -Compress -InputObject $RawGraphRequest + $GraphResults = [PSCustomObject]@{ + PartitionKey = [string]$PartitionKey + RowKey = [string]$Item.TenantFilter + QueueId = [string]$Item.QueueId + QueueType = [string]$Item.QueueType + Data = [string]$Json + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphResults -Force | Out-Null + return $true + } catch { + Write-Warning "Queue Error: $($_.Exception.Message)" + #Write-Information ($GraphResults | ConvertTo-Json -Depth 10 -Compress) + throw $_ + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 new file mode 100644 index 000000000000..3f7ceb6009e5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Maintenance/Push-TableCleanupTask.ps1 @@ -0,0 +1,72 @@ +function Push-TableCleanupTask { + [CmdletBinding(SupportsShouldProcess = $true)] + param ( + [Parameter(Mandatory = $true)] + $Item + ) + + $Type = $Item.Type + Write-Information "#### Starting $($Type) task..." + if ($PSCmdlet.ShouldProcess('Start-TableCleanup', 'Starting Table Cleanup')) { + if ($Type -eq 'DeleteTable') { + $DeleteTables = $Item.Tables + foreach ($Table in $DeleteTables) { + try { + $Table = Get-CIPPTable -tablename $Table + if ($Table) { + Write-Information "Deleting table $($Table.Context.TableName)" + try { + Remove-AzDataTable -Context $Table.Context -Force + } catch { + #Write-LogMessage -API 'TableCleanup' -message "Failed to delete table $($Table.Context.TableName)" -sev Error -LogData (Get-CippException -Exception $_) + } + } + } catch { + Write-Information "Table $Table not found" + } + } + Write-Information "#### $($Type) task complete for $($Item.TableName)" + } elseif ($Type -eq 'CleanupRule') { + if ($Item.Where) { + $Where = [scriptblock]::Create($Item.Where) + } else { + $Where = { $true } + } + + $DataTableProps = $Item.DataTableProps | ConvertTo-Json | ConvertFrom-Json -AsHashtable + $Table = Get-CIPPTable -tablename $Item.TableName + $CleanupCompleted = $false + + $RowsRemoved = 0 + do { + Write-Information "Fetching entities from $($Item.TableName) with filter: $($DataTableProps.Filter)" + try { + $Entities = Get-AzDataTableEntity @Table @DataTableProps | Where-Object $Where + if ($Entities) { + Write-Information "Removing $($Entities.Count) entities from $($Item.TableName)" + try { + Remove-AzDataTableEntity @Table -Entity $Entities -Force + $RowsRemoved += $Entities.Count + if ($DataTableProps.First -and $Entities.Count -lt $DataTableProps.First) { + $CleanupCompleted = $true + } + } catch { + Write-LogMessage -API 'TableCleanup' -message "Failed to remove entities from $($Item.TableName)" -sev Error -LogData (Get-CippException -Exception $_) + $CleanupCompleted = $true + } + } else { + Write-Information "No entities found for cleanup in $($Item.TableName)" + $CleanupCompleted = $true + } + } catch { + Write-Warning "Failed to fetch entities from $($Item.TableName): $($_.Exception.Message)" + $CleanupCompleted = $true + } + } while (!$CleanupCompleted) + Write-Information "#### $($Type) task complete for $($Item.TableName). Rows removed: $RowsRemoved" + } else { + Write-Warning "Unknown task type: $Type" + } + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPAccessTenantTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPAccessTenantTest.ps1 new file mode 100644 index 000000000000..7b50d26df778 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPAccessTenantTest.ps1 @@ -0,0 +1,9 @@ +function Push-CIPPAccessTenantTest { + <# + .FUNCTIONALITY + Entrypoint + #> + Param($Item) + + Test-CIPPAccessTenant -Tenant $Item.customerId -Headers 'CIPP' +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 new file mode 100644 index 000000000000..d2c0f155009e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 @@ -0,0 +1,392 @@ +function Push-CIPPDBCacheData { + <# + .SYNOPSIS + Activity function to collect and cache all data for a single tenant + + .DESCRIPTION + Calls all collection functions sequentially, storing data immediately after each collection + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + Write-Host "Starting cache collection for tenant: $($Item.TenantFilter) - Queue: $($Item.QueueName) (ID: $($Item.QueueId))" + $TenantFilter = $Item.TenantFilter + $Type = $Item.Type ?? 'Default' + + #This collects all data for a tenant and caches it in the CIPP Reporting database. DO NOT ADD PROCESSING OR LOGIC HERE. + #The point of this file is to always be <10 minutes execution time. + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Starting database cache collection for tenant' -sev Info + + # Check tenant capabilities for license-specific features + $IntuneCapable = Test-CIPPStandardLicense -StandardName 'IntuneLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') -SkipLog + $ConditionalAccessCapable = Test-CIPPStandardLicense -StandardName 'ConditionalAccessLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') -SkipLog + $AzureADPremiumP2Capable = Test-CIPPStandardLicense -StandardName 'AzureADPremiumP2LicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM_P2') -SkipLog + $ExchangeCapable = Test-CIPPStandardLicense -StandardName 'ExchangeLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') -SkipLog + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "License capabilities - Intune: $IntuneCapable, Conditional Access: $ConditionalAccessCapable, Azure AD Premium P2: $AzureADPremiumP2Capable, Exchange: $ExchangeCapable" -sev Info + + switch ($Type) { + 'Default' { + #region All Licenses - Basic tenant data collection + Write-Host 'Getting cache for Users' + try { Set-CIPPDBCacheUsers -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Users collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Groups' + try { Set-CIPPDBCacheGroups -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Groups collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Guests' + try { Set-CIPPDBCacheGuests -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Guests collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ServicePrincipals' + try { Set-CIPPDBCacheServicePrincipals -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ServicePrincipals collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Apps' + try { Set-CIPPDBCacheApps -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Apps collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Devices' + try { Set-CIPPDBCacheDevices -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Devices collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Organization' + try { Set-CIPPDBCacheOrganization -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Organization collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Roles' + try { Set-CIPPDBCacheRoles -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Roles collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AdminConsentRequestPolicy' + try { Set-CIPPDBCacheAdminConsentRequestPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AdminConsentRequestPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AuthorizationPolicy' + try { Set-CIPPDBCacheAuthorizationPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AuthorizationPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AuthenticationMethodsPolicy' + try { Set-CIPPDBCacheAuthenticationMethodsPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AuthenticationMethodsPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for DeviceSettings' + try { Set-CIPPDBCacheDeviceSettings -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "DeviceSettings collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for DirectoryRecommendations' + try { Set-CIPPDBCacheDirectoryRecommendations -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "DirectoryRecommendations collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for CrossTenantAccessPolicy' + try { Set-CIPPDBCacheCrossTenantAccessPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "CrossTenantAccessPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for DefaultAppManagementPolicy' + try { Set-CIPPDBCacheDefaultAppManagementPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "DefaultAppManagementPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Settings' + try { Set-CIPPDBCacheSettings -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Settings collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for SecureScore' + try { Set-CIPPDBCacheSecureScore -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SecureScore collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for PIMSettings' + try { Set-CIPPDBCachePIMSettings -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "PIMSettings collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for Domains' + try { Set-CIPPDBCacheDomains -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Domains collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RoleEligibilitySchedules' + try { Set-CIPPDBCacheRoleEligibilitySchedules -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RoleEligibilitySchedules collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RoleManagementPolicies' + try { Set-CIPPDBCacheRoleManagementPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RoleManagementPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RoleAssignmentScheduleInstances' + try { Set-CIPPDBCacheRoleAssignmentScheduleInstances -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RoleAssignmentScheduleInstances collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for B2BManagementPolicy' + try { Set-CIPPDBCacheB2BManagementPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "B2BManagementPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AuthenticationFlowsPolicy' + try { Set-CIPPDBCacheAuthenticationFlowsPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AuthenticationFlowsPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for DeviceRegistrationPolicy' + try { Set-CIPPDBCacheDeviceRegistrationPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "DeviceRegistrationPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for CredentialUserRegistrationDetails' + try { Set-CIPPDBCacheCredentialUserRegistrationDetails -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "CredentialUserRegistrationDetails collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for UserRegistrationDetails' + try { Set-CIPPDBCacheUserRegistrationDetails -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "UserRegistrationDetails collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for OAuth2PermissionGrants' + try { Set-CIPPDBCacheOAuth2PermissionGrants -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "OAuth2PermissionGrants collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for AppRoleAssignments' + try { Set-CIPPDBCacheAppRoleAssignments -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "AppRoleAssignments collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for License Overview' + try { Set-CIPPDBCacheLicenseOverview -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "License Overview collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for MFA State' + try { Set-CIPPDBCacheMFAState -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "MFA State collection failed: $($_.Exception.Message)" -sev Error + } + #endregion All Licenses + + #region Exchange Licensed - Exchange Online features + if ($ExchangeCapable) { + Write-Host 'Getting cache for ExoAntiPhishPolicies' + try { Set-CIPPDBCacheExoAntiPhishPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoAntiPhishPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoMalwareFilterPolicies' + try { Set-CIPPDBCacheExoMalwareFilterPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoMalwareFilterPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoSafeLinksPolicies' + try { Set-CIPPDBCacheExoSafeLinksPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoSafeLinksPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoSafeAttachmentPolicies' + try { Set-CIPPDBCacheExoSafeAttachmentPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoSafeAttachmentPolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoTransportRules' + try { Set-CIPPDBCacheExoTransportRules -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoTransportRules collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoDkimSigningConfig' + try { Set-CIPPDBCacheExoDkimSigningConfig -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoDkimSigningConfig collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoOrganizationConfig' + try { Set-CIPPDBCacheExoOrganizationConfig -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoOrganizationConfig collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoAcceptedDomains' + try { Set-CIPPDBCacheExoAcceptedDomains -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoAcceptedDomains collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoHostedContentFilterPolicy' + try { Set-CIPPDBCacheExoHostedContentFilterPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoHostedContentFilterPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoHostedOutboundSpamFilterPolicy' + try { Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoHostedOutboundSpamFilterPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoAntiPhishPolicy' + try { Set-CIPPDBCacheExoAntiPhishPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoAntiPhishPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoSafeLinksPolicy' + try { Set-CIPPDBCacheExoSafeLinksPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoSafeLinksPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoSafeAttachmentPolicy' + try { Set-CIPPDBCacheExoSafeAttachmentPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoSafeAttachmentPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoMalwareFilterPolicy' + try { Set-CIPPDBCacheExoMalwareFilterPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoMalwareFilterPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoAtpPolicyForO365' + try { Set-CIPPDBCacheExoAtpPolicyForO365 -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoAtpPolicyForO365 collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoQuarantinePolicy' + try { Set-CIPPDBCacheExoQuarantinePolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoQuarantinePolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoRemoteDomain' + try { Set-CIPPDBCacheExoRemoteDomain -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoRemoteDomain collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoSharingPolicy' + try { Set-CIPPDBCacheExoSharingPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoSharingPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoAdminAuditLogConfig' + try { Set-CIPPDBCacheExoAdminAuditLogConfig -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoAdminAuditLogConfig collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoPresetSecurityPolicy' + try { Set-CIPPDBCacheExoPresetSecurityPolicy -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoPresetSecurityPolicy collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ExoTenantAllowBlockList' + try { Set-CIPPDBCacheExoTenantAllowBlockList -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ExoTenantAllowBlockList collection failed: $($_.Exception.Message)" -sev Error + } + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Skipping Exchange Online data collection - tenant does not have required license' -sev Info + } + #endregion Exchange Licensed + + #region Conditional Access Licensed - Azure AD Premium features + if ($ConditionalAccessCapable) { + Write-Host 'Getting cache for ConditionalAccessPolicies' + try { Set-CIPPDBCacheConditionalAccessPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ConditionalAccessPolicies collection failed: $($_.Exception.Message)" -sev Error + } + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Skipping Conditional Access data collection - tenant does not have required license' -sev Info + } + #endregion Conditional Access Licensed + + #region Azure AD Premium P2 - Identity Protection features + if ($AzureADPremiumP2Capable) { + Write-Host 'Getting cache for RiskyUsers' + try { Set-CIPPDBCacheRiskyUsers -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RiskyUsers collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RiskyServicePrincipals' + try { Set-CIPPDBCacheRiskyServicePrincipals -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RiskyServicePrincipals collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ServicePrincipalRiskDetections' + try { Set-CIPPDBCacheServicePrincipalRiskDetections -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ServicePrincipalRiskDetections collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for RiskDetections' + try { Set-CIPPDBCacheRiskDetections -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "RiskDetections collection failed: $($_.Exception.Message)" -sev Error + } + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Skipping Azure AD Premium P2 Identity Protection data collection - tenant does not have required license' -sev Info + } + #endregion Azure AD Premium P2 + + #region Intune Licensed - Intune management features + if ($IntuneCapable) { + Write-Host 'Getting cache for ManagedDevices' + try { Set-CIPPDBCacheManagedDevices -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ManagedDevices collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for IntunePolicies' + try { Set-CIPPDBCacheIntunePolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "IntunePolicies collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for ManagedDeviceEncryptionStates' + try { Set-CIPPDBCacheManagedDeviceEncryptionStates -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "ManagedDeviceEncryptionStates collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for IntuneAppProtectionPolicies' + try { Set-CIPPDBCacheIntuneAppProtectionPolicies -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "IntuneAppProtectionPolicies collection failed: $($_.Exception.Message)" -sev Error + } + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Skipping Intune data collection - tenant does not have required license' -sev Info + } + #endregion Intune Licensed + } + 'Mailboxes' { + if ($ExchangeCapable) { + Write-Host 'Getting cache for Mailboxes' + try { Set-CIPPDBCacheMailboxes -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Mailboxes collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for MailboxUsage' + try { Set-CIPPDBCacheMailboxUsage -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "MailboxUsage collection failed: $($_.Exception.Message)" -sev Error + } + + Write-Host 'Getting cache for OneDriveUsage' + try { Set-CIPPDBCacheOneDriveUsage -TenantFilter $TenantFilter } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "OneDriveUsage collection failed: $($_.Exception.Message)" -sev Error + } + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Skipping Mailboxes data collection - tenant does not have required Exchange license' -sev Info + } + } + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Completed database cache collection for tenant' -sev Info + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to complete database cache collection: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAddMultiTenantApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAddMultiTenantApp.ps1 new file mode 100644 index 000000000000..09b7c2c48e27 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAddMultiTenantApp.ps1 @@ -0,0 +1,23 @@ +function Push-ExecAddMultiTenantApp { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + try { + $Item = $Item | ConvertTo-Json -Depth 10 | ConvertFrom-Json + Write-Host "$($Item | ConvertTo-Json -Depth 10)" + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant + if ($Item.AppId -Notin $ServicePrincipalList.appId) { + $PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Item.tenant -body "{ `"appId`": `"$($Item.appId)`" }" + Write-LogMessage -message "Added $($Item.AppId) to tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info + } else { + Write-LogMessage -message "This app already exists in tenant $($Item.Tenant). We're adding the required permissions." -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info + } + Add-CIPPApplicationPermission -RequiredResourceAccess ($Item.applicationResourceAccess) -ApplicationId $Item.AppId -Tenantfilter $Item.Tenant + Add-CIPPDelegatedPermission -RequiredResourceAccess ($Item.DelegateResourceAccess) -ApplicationId $Item.AppId -Tenantfilter $Item.Tenant + } catch { + Write-LogMessage -message "Error adding application to tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAlertsListAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAlertsListAllTenants.ps1 new file mode 100644 index 000000000000..3d094d6bf1a3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAlertsListAllTenants.ps1 @@ -0,0 +1,50 @@ +function Push-ExecAlertsListAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName 'cachealertsandincidents' + + try { + $Alerts = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/alerts' -tenantid $domainName + foreach ($Alert in $Alerts) { + $GUID = (New-Guid).Guid + $alertJson = $Alert | ConvertTo-Json + $GraphRequest = @{ + Alert = [string]$alertJson + RowKey = [string]$GUID + Tenant = $domainName + PartitionKey = 'alert' + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } + + } catch { + $GUID = (New-Guid).Guid + $AlertText = ConvertTo-Json -InputObject @{ + Title = "Could not connect to tenant to retrieve data: $($_.Exception.Message)" + Id = '' + Category = '' + EventDateTime = '' + Severity = '' + Status = '' + userStates = @('None') + vendorInformation = @{ + vendor = 'CIPP' + provider = 'CIPP' + } + } + $GraphRequest = @{ + Alert = [string]$AlertText + RowKey = [string]$GUID + PartitionKey = 'alert' + Tenant = $domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 new file mode 100644 index 000000000000..e6eec613a662 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 @@ -0,0 +1,161 @@ +function Push-ExecAppApprovalTemplate { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + try { + $Item = $Item | ConvertTo-Json -Depth 10 | ConvertFrom-Json + $TemplateId = $Item.templateId + if (!$TemplateId) { + Write-LogMessage -message 'No template specified' -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + return $false + } + + # Get the template data to determine if it's a Gallery Template or Enterprise App + $Table = Get-CIPPTable -TableName 'templates' + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + + if (!$Template) { + Write-LogMessage -message "Template $TemplateId not found" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + return $false + } + + $TemplateData = $Template.JSON | ConvertFrom-Json + # Default to EnterpriseApp for backward compatibility with older templates + $AppType = $TemplateData.AppType + if (-not $AppType) { + $AppType = 'EnterpriseApp' + } + + # Handle Gallery Templates + if ($AppType -eq 'GalleryTemplate') { + Write-Information "Deploying Gallery Template $($TemplateData.AppName) to tenant $($Item.Tenant)." + + # Use the Gallery Template instantiation API + $GalleryTemplateId = $TemplateData.GalleryTemplateId + if (!$GalleryTemplateId) { + Write-LogMessage -message 'Gallery Template ID not found in template data' -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + return $false + } + + # Check if the app already exists in the tenant + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant + if ($TemplateData.GalleryTemplateId -in $ServicePrincipalList.applicationTemplateId) { + Write-LogMessage -message "Gallery Template app $($TemplateData.AppName) already exists in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Gallery App' -sev Info + return $true + } + + # Instantiate the gallery template + $InstantiateBody = @{ + displayName = $TemplateData.AppName + } | ConvertTo-Json -Depth 10 + + $InstantiateResult = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/applicationTemplates/$GalleryTemplateId/instantiate" -type POST -tenantid $Item.tenant -body $InstantiateBody + + if ($InstantiateResult.application.appId) { + Write-LogMessage -message "Successfully deployed Gallery Template $($TemplateData.AppName) to tenant $($Item.Tenant). Application ID: $($InstantiateResult.application.appId)" -tenant $Item.Tenant -API 'Add Gallery App' -sev Info + # Get application registration + $App = $InstantiateResult.application.appId + $Application = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications(appId='$App')" -tenantid $Item.tenant -AsApp $true + if ($Application.requiredResourceAccess) { + Add-CIPPDelegatedPermission -RequiredResourceAccess $Application.requiredResourceAccess -ApplicationId $App -Tenantfilter $Item.Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $Application.requiredResourceAccess -ApplicationId $App -Tenantfilter $Item.Tenant + } + } else { + Write-LogMessage -message "Gallery Template deployment completed but application ID not returned for $($TemplateData.AppName) in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Gallery App' -sev Warning + } + + } elseif ($AppType -eq 'ApplicationManifest') { + Write-Information "Deploying Application Manifest $($TemplateData.AppName) to tenant $($Item.Tenant)." + + # Get the application manifest from template data + $ApplicationManifest = $TemplateData.ApplicationManifest + if (!$ApplicationManifest) { + Write-LogMessage -message 'Application Manifest not found in template data' -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + return $false + } + + # Check for existing application by display name + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant + $ExistingApp = $ServicePrincipalList | Where-Object { $_.displayName -eq $TemplateData.AppName } + if ($ExistingApp) { + Write-LogMessage -message "Application with name '$($TemplateData.AppName)' already exists in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Info + + # get existing application + $App = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications(appId='$($ExistingApp.appId)')" -tenantid $Item.Tenant + + # compare permissions + $ExistingPermissions = $App.requiredResourceAccess | ConvertTo-Json -Depth 10 + $NewPermissions = $ApplicationManifest.requiredResourceAccess | ConvertTo-Json -Depth 10 + if ($ExistingPermissions -ne $NewPermissions) { + Write-LogMessage -message "Updating permissions for existing application '$($TemplateData.AppName)' in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Info + + # Update permissions for existing application + $UpdateBody = @{ + requiredResourceAccess = $ApplicationManifest.requiredResourceAccess + } | ConvertTo-Json -Depth 10 + $null = New-GraphPostRequest -type PATCH -uri "https://graph.microsoft.com/beta/applications(appId='$($ExistingApp.appId)')" -tenantid $Item.Tenant -body $UpdateBody + + # consent new permissions + Add-CIPPDelegatedPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $ExistingApp.appId -Tenantfilter $Item.Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $ExistingApp.appId -Tenantfilter $Item.Tenant + } + + return $true + } + + $PropertiesToRemove = @('appId', 'id', 'createdDateTime', 'publisherDomain', 'servicePrincipalLockConfiguration', 'identifierUris', 'applicationIdUris') + + # Strip tenant-specific data that might cause conflicts + $CleanManifest = $ApplicationManifest | ConvertTo-Json -Depth 10 | ConvertFrom-Json + foreach ($Property in $PropertiesToRemove) { + $CleanManifest.PSObject.Properties.Remove($Property) + } + + # Create the application from manifest + try { + $CreateBody = $CleanManifest | ConvertTo-Json -Depth 10 + $CreatedApp = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/applications' -type POST -tenantid $Item.tenant -body $CreateBody + + if ($CreatedApp.appId) { + # Create service principal for the application + $ServicePrincipalBody = @{ + appId = $CreatedApp.appId + } | ConvertTo-Json + + $null = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Item.tenant -body $ServicePrincipalBody + + Write-LogMessage -message "Successfully deployed Application Manifest $($TemplateData.AppName) to tenant $($Item.Tenant). Application ID: $($CreatedApp.appId)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Info + + if ($CreatedApp.requiredResourceAccess) { + Add-CIPPDelegatedPermission -RequiredResourceAccess $CreatedApp.requiredResourceAccess -ApplicationId $CreatedApp.appId -Tenantfilter $Item.Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $CreatedApp.requiredResourceAccess -ApplicationId $CreatedApp.appId -Tenantfilter $Item.Tenant + } + } else { + Write-LogMessage -message "Application Manifest deployment failed - no application ID returned for $($TemplateData.AppName) in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Error + } + } catch { + Write-LogMessage -message "Error creating application from manifest in tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Error + throw $_.Exception.Message + } + + } else { + # Handle Enterprise Apps (existing logic) + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant + if ($Item.AppId -notin $ServicePrincipalList.appId) { + Write-Information "Adding $($Item.AppId) to tenant $($Item.Tenant)." + $PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Item.tenant -body "{ `"appId`": `"$($Item.appId)`" }" + Write-LogMessage -message "Added $($Item.AppId) to tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info + } else { + Write-LogMessage -message "This app already exists in tenant $($Item.Tenant). We're adding the required permissions." -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info + } + Add-CIPPApplicationPermission -TemplateId $TemplateId -Tenantfilter $Item.Tenant + Add-CIPPDelegatedPermission -TemplateId $TemplateId -Tenantfilter $Item.Tenant + } + } catch { + Write-LogMessage -message "Error adding application to tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + Write-Error $_.Exception.Message + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecApplicationCopy.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecApplicationCopy.ps1 new file mode 100644 index 000000000000..58154aed81e6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecApplicationCopy.ps1 @@ -0,0 +1,14 @@ +function Push-ExecApplicationCopy { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + try { + Write-Host "$($Item | ConvertTo-Json -Depth 10)" + New-CIPPApplicationCopy -App $Item.AppId -Tenant $Item.Tenant + } catch { + Write-LogMessage -message "Error adding application to tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecGDAPInviteQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecGDAPInviteQueue.ps1 new file mode 100644 index 000000000000..806287b7a4e9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecGDAPInviteQueue.ps1 @@ -0,0 +1,12 @@ +function Push-ExecGDAPInviteQueue { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + # Write out the queue message and metadata to the information log. + Write-Host "PowerShell queue trigger function processed work item: $($Item.customer.displayName)" + + Set-CIPPGDAPInviteGroups -Relationship $Item +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecIncidentsListAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecIncidentsListAllTenants.ps1 new file mode 100644 index 000000000000..ac5bbb489992 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecIncidentsListAllTenants.ps1 @@ -0,0 +1,48 @@ +function Push-ExecIncidentsListAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName 'cachealertsandincidents' + + try { + $incidents = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/incidents' -tenantid $domainName -AsApp $true + $GraphRequest = foreach ($incident in $incidents) { + $GUID = (New-Guid).Guid + $GraphRequest = @{ + Incident = [string]($incident | ConvertTo-Json -Depth 10) + RowKey = [string]$GUID + PartitionKey = 'Incident' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } + + } catch { + $GUID = (New-Guid).Guid + $AlertText = ConvertTo-Json -InputObject @{ + Tenant = $domainName + displayName = "Could not connect to Tenant: $($_.Exception.Message)" + comments = @{ + createdDateTime = (Get-Date).ToString('s') + createdbyDisplayName = 'CIPP' + comment = 'Could not connect' + } + classification = 'Unknown' + determination = 'Unknown' + severity = 'CIPP' + } + $GraphRequest = @{ + Incident = [string]$AlertText + RowKey = [string]$GUID + PartitionKey = 'Incident' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } +} + diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecJITAdminListAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecJITAdminListAllTenants.ps1 new file mode 100644 index 000000000000..0f14c76645ab --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecJITAdminListAllTenants.ps1 @@ -0,0 +1,111 @@ +function Push-ExecJITAdminListAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $DomainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName CacheJITAdmin + + try { + # Get schema extensions + $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 + + # Query users with JIT Admin enabled + $Query = @{ + TenantFilter = $DomainName # Use $DomainName for the current tenant + Endpoint = 'users' + Parameters = @{ + '$count' = 'true' + '$select' = "id,accountEnabled,displayName,userPrincipalName,$($Schema.id)" + '$filter' = "$($Schema.id)/jitAdminEnabled eq true or $($Schema.id)/jitAdminEnabled eq false" # Fetches both states to cache current status + } + } + $Users = Get-GraphRequestList @Query | Where-Object { $_.id } + + if ($Users) { + # Get role memberships + $BulkRequests = $Users | ForEach-Object { @( + @{ + id = $_.id + method = 'GET' + url = "users/$($_.id)/memberOf/microsoft.graph.directoryRole/?`$select=id,displayName" + } + ) + } + # Ensure $BulkRequests is not empty or null before making the bulk request + if ($BulkRequests -and $BulkRequests.Count -gt 0) { + $RoleResults = New-GraphBulkRequest -tenantid $DomainName -Requests @($BulkRequests) + + # Format the data + $Results = $Users | ForEach-Object { + $currentUser = $_ # Capture current user in the loop + $MemberOf = @() # Initialize as empty array + if ($RoleResults) { + $userRoleResult = $RoleResults | Where-Object -Property id -EQ $currentUser.id + if ($userRoleResult -and $userRoleResult.body -and $userRoleResult.body.value) { + $MemberOf = $userRoleResult.body.value | Select-Object displayName, id + } + } + + $jitAdminData = $currentUser.($Schema.id) + $jitAdminEnabled = if ($jitAdminData -and $jitAdminData.PSObject.Properties['jitAdminEnabled']) { $jitAdminData.jitAdminEnabled } else { $false } + $jitAdminExpiration = if ($jitAdminData -and $jitAdminData.PSObject.Properties['jitAdminExpiration']) { $jitAdminData.jitAdminExpiration } else { $null } + + [PSCustomObject]@{ + id = $currentUser.id + displayName = $currentUser.displayName + userPrincipalName = $currentUser.userPrincipalName + accountEnabled = $currentUser.accountEnabled + jitAdminEnabled = $jitAdminEnabled + jitAdminExpiration = $jitAdminExpiration + memberOf = ($MemberOf | ConvertTo-Json -Depth 5 -Compress) + } + } + + # Add to Azure Table + foreach ($result in $Results) { + $GUID = (New-Guid).Guid + Write-Host ($result | ConvertTo-Json -Depth 10 -Compress) + $GraphRequest = @{ + JITAdminUser = [string]($result | ConvertTo-Json -Depth 10 -Compress) + RowKey = [string]$GUID + PartitionKey = 'JITAdminUser' + Tenant = [string]$DomainName + UserId = [string]$result.id # Add UserId for easier querying if needed + UserUPN = [string]$result.userPrincipalName # Add UserUPN for easier querying + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } + } else { + # No users with JIT Admin attributes found, or no users at all + Write-Host "No JIT Admin users or no users found to process for tenant $DomainName." + } + } else { + Write-Host "No users found for tenant $DomainName." + } + + } catch { + $GUID = (New-Guid).Guid + $ErrorMessage = "Could not process JIT Admin users for Tenant: $($DomainName). Error: $($_.Exception.Message)" + if ($_.ScriptStackTrace) { + $ErrorMessage += " StackTrace: $($_.ScriptStackTrace)" + } + $ErrorJson = ConvertTo-Json -InputObject @{ + Tenant = $DomainName + Error = $ErrorMessage + Exception = ($_.Exception.Message | ConvertTo-Json -Depth 3 -Compress) + Timestamp = (Get-Date).ToString('s') + } + $GraphRequest = @{ + JITAdminUser = [string]$ErrorJson + RowKey = [string]$GUID + PartitionKey = 'JITAdminUser' + Tenant = [string]$DomainName + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + Write-Error ('Error processing JIT Admin for {0}: {1}' -f $DomainName, $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecMdoAlertsListAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecMdoAlertsListAllTenants.ps1 new file mode 100644 index 000000000000..15cab5352f97 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecMdoAlertsListAllTenants.ps1 @@ -0,0 +1,48 @@ +function Push-ExecMdoAlertsListAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName 'cachealertsandincidents' + + try { + # Get MDO alerts using the specific endpoint and filter + $Alerts = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/security/alerts_v2?`$filter=serviceSource eq 'microsoftDefenderForOffice365'" -tenantid $domainName + + foreach ($Alert in $Alerts) { + $GUID = (New-Guid).Guid + $GraphRequest = @{ + MdoAlert = [string]($Alert | ConvertTo-Json -Depth 10) + RowKey = [string]$GUID + PartitionKey = 'MdoAlert' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } + + } catch { + $GUID = (New-Guid).Guid + $AlertText = ConvertTo-Json -InputObject @{ + Tenant = $domainName + displayName = "Could not connect to Tenant: $($_.Exception.Message)" + id = '' + severity = 'CIPP' + status = 'Failed' + createdDateTime = (Get-Date).ToString('s') + category = 'Unknown' + description = 'Could not connect' + serviceSource = 'microsoftDefenderForOffice365' + } + $GraphRequest = @{ + MdoAlert = [string]$AlertText + RowKey = [string]$GUID + PartitionKey = 'MdoAlert' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOffboardingMailboxPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOffboardingMailboxPermissions.ps1 new file mode 100644 index 000000000000..e3b9845d105b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOffboardingMailboxPermissions.ps1 @@ -0,0 +1,11 @@ +function Push-ExecOffboardingMailboxPermissions { + <# + .FUNCTIONALITY + Entrypoint + #> + param( + $Item + ) + + Remove-CIPPMailboxPermissions -PermissionsLevel @('FullAccess', 'SendAs', 'SendOnBehalf') -userid 'AllUsers' -AccessUser $Item.User -TenantFilter $Item.TenantFilter -APIName $Item.APINAME -Headers $Item.Headers +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOnboardTenantQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOnboardTenantQueue.ps1 new file mode 100644 index 000000000000..f7cd1a3dc2a0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecOnboardTenantQueue.ps1 @@ -0,0 +1,435 @@ +function Push-ExecOnboardTenantQueue { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + try { + $Id = $Item.id + $Start = Get-Date + $Logs = [System.Collections.Generic.List[object]]::new() + $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' + $TenantOnboarding = Get-CIPPAzDataTableEntity @OnboardTable -Filter "RowKey eq '$Id'" + + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = "Starting onboarding for relationship $Id" }) + $OnboardingSteps = $TenantOnboarding.OnboardingSteps | ConvertFrom-Json + $OnboardingSteps.Step1.Status = 'running' + $OnboardingSteps.Step1.Message = 'Checking GDAP invite status' + $OnboardingSteps.Step2.Status = 'pending' + $OnboardingSteps.Step2.Message = 'Waiting for Step 1' + $OnboardingSteps.Step3.Status = 'pending' + $OnboardingSteps.Step3.Message = 'Waiting for Step 2' + $OnboardingSteps.Step4.Status = 'pending' + $OnboardingSteps.Step4.Message = 'Waiting for Step 3' + $OnboardingSteps.Step5.Status = 'pending' + $OnboardingSteps.Step5.Message = 'Waiting for Step 4' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Status = 'running' + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress -AsArray) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + + try { + $Relationship = $TenantOnboarding.Relationship | ConvertFrom-Json -ErrorAction Stop + } catch { + $Relationship = '' + } + + $ExpectedRoles = @( + @{ Name = 'Application Administrator'; Id = '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3' }, + @{ Name = 'User Administrator'; Id = 'fe930be7-5e62-47db-91af-98c3a49a38b1' }, + @{ Name = 'Intune Administrator'; Id = '3a2c62db-5318-420d-8d74-23affee5d9d5' }, + @{ Name = 'Exchange Administrator'; Id = '29232cdf-9323-42fd-ade2-1d097af3e4de' }, + @{ Name = 'Security Administrator'; Id = '194ae4cb-b126-40b2-bd5b-6091b380977d' }, + @{ Name = 'Cloud App Security Administrator'; Id = '892c5842-a9a6-463a-8041-72aa08ca3cf6' }, + @{ Name = 'Cloud Device Administrator'; Id = '7698a772-787b-4ac8-901f-60d6b08affd2' }, + @{ Name = 'Teams Administrator'; Id = '69091246-20e8-4a56-aa4d-066075b2a7a8' }, + @{ Name = 'SharePoint Administrator'; Id = 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c' }, + @{ Name = 'Authentication Policy Administrator'; Id = '0526716b-113d-4c15-b2c8-68e3c22b9f80' }, + @{ Name = 'Privileged Role Administrator'; Id = 'e8611ab8-c189-46e8-94e1-60213ab1f814' }, + @{ Name = 'Privileged Authentication Administrator'; Id = '7be44c8a-adaf-4e2a-84d6-ab2649e08a13' } + ) + + if ($OnboardingSteps.Step1.Status -ne 'succeeded') { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Checking relationship status' }) + $x = 0 + do { + $Relationship = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$Id" + $x++ + Start-Sleep -Seconds 30 + } while ($Relationship.status -ne 'active' -and $x -lt 6) + + if ($Relationship.status -eq 'active') { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'GDAP Invite Accepted' }) + $OnboardingSteps.Step1.Status = 'succeeded' + $OnboardingSteps.Step1.Message = "GDAP Invite accepted for $($Relationship.customer.displayName)" + $TenantOnboarding.CustomerId = $Relationship.customer.tenantId + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'GDAP Invite Failed' }) + $OnboardingSteps.Step1.Status = 'failed' + $OnboardingSteps.Step1.Message = 'GDAP Invite timeout, retry onboarding after accepting the invite with a GA account in the customer tenant.' + $TenantOnboarding.Status = 'failed' + } + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Relationship = [string](ConvertTo-Json -InputObject $Relationship -Compress -Depth 10) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + } + + if ($OnboardingSteps.Step1.Status -eq 'succeeded') { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Starting role check' }) + $OnboardingSteps.Step2.Status = 'running' + $OnboardingSteps.Step2.Message = 'Checking role mapping' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + + $MissingRoles = [System.Collections.Generic.List[string]]::new() + foreach ($Role in $ExpectedRoles) { + $RoleFound = $false + foreach ($AvailableRole in $Relationship.accessDetails.unifiedRoles) { + if ($AvailableRole.roleDefinitionId -eq $Role.Id) { + $RoleFound = $true + break + } + } + if (!$RoleFound) { + $MissingRoles.Add($Role.Name) + } + } + if (($MissingRoles | Measure-Object).Count -gt 0) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Missing roles for relationship' }) + if ($Item.IgnoreMissingRoles -ne $true) { + $TenantOnboarding.Status = 'failed' + $OnboardingSteps.Step2.Status = 'failed' + $OnboardingSteps.Step2.Message = "Your GDAP relationship is missing the following roles: $($MissingRoles -join ', ')" + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Ignoring missing roles' }) + $OnboardingSteps.Step2.Status = 'succeeded' + $OnboardingSteps.Step2.Message = 'Your GDAP relationship is missing some roles, but the onboarding will continue' + } + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Required roles found' }) + $OnboardingSteps.Step2.Status = 'succeeded' + $OnboardingSteps.Step2.Message = 'Your GDAP relationship has the required roles' + } + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + } + + if ($OnboardingSteps.Step2.Status -eq 'succeeded') { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Checking group mapping' }) + $AccessAssignments = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$Id/accessAssignments" + if ($AccessAssignments.id -and $Item.AutoMapRoles -ne $true) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Groups mapped' }) + $OnboardingSteps.Step3.Status = 'succeeded' + $OnboardingSteps.Step3.Message = 'Your GDAP relationship already has mapped security groups' + } else { + $GroupSuccess = $false + $OnboardingSteps.Step3.Status = 'running' + $OnboardingSteps.Step3.Message = 'Mapping security groups' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + + $InviteTable = Get-CIPPTable -TableName 'GDAPInvites' + $Invite = Get-CIPPAzDataTableEntity @InviteTable -Filter "RowKey eq '$Id'" + + if ($AccessAssignments.id -and !$Invite) { + $MissingRoles = [System.Collections.Generic.List[object]]::new() + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Relationship has existing access assignments, checking for missing mappings' }) + + if ($Item.Roles -and $Item.AutoMapRoles -eq $true) { + foreach ($Role in $Item.Roles) { + if ($AccessAssignments.accessContainer.accessContainerid -notcontains $Role.GroupId -and $Relationship.accessDetails.unifiedRoles.roleDefinitionId -contains $Role.roleDefinitionId) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = "Adding missing group to relationship: $($Role.GroupName)" }) + $MissingRoles.Add([PSCustomObject]$Role) + } + } + + if (($MissingRoles | Measure-Object).Count -gt 0) { + $Invite = [PSCustomObject]@{ + 'PartitionKey' = 'invite' + 'RowKey' = $Id + 'InviteUrl' = 'https://admin.microsoft.com/AdminPortal/Home#/partners/invitation/granularAdminRelationships/{0}' -f $Id + 'RoleMappings' = [string](@($MissingRoles) | ConvertTo-Json -Depth 10 -Compress) + } + Add-CIPPAzDataTableEntity @InviteTable -Entity $Invite + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'All roles have been mapped to the M365 GDAP security groups' }) + $OnboardingSteps.Step3.Status = 'succeeded' + $OnboardingSteps.Step3.Message = 'Groups mapped successfully' + $GroupSuccess = $true + } + } + } + + if (!$AccessAssignments.id -and $Item.Roles) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'No access assignments found, using defined role mapping.' }) + $MatchingRoles = [System.Collections.Generic.List[object]]::new() + foreach ($Role in $Item.Roles) { + if ($Relationship.accessDetails.unifiedRoles.roleDefinitionId -contains $Role.roleDefinitionId) { + $MatchingRoles.Add([PSCustomObject]$Role) + } + } + + if (($MatchingRoles | Measure-Object).Count -gt 0 -and $Item.AutoMapRoles -eq $true) { + $Invite = [PSCustomObject]@{ + 'PartitionKey' = 'invite' + 'RowKey' = $Id + 'InviteUrl' = 'https://admin.microsoft.com/AdminPortal/Home#/partners/invitation/granularAdminRelationships/{0}' -f $Id + 'RoleMappings' = [string](@($MatchingRoles) | ConvertTo-Json -Depth 10 -Compress) + } + Add-CIPPAzDataTableEntity @InviteTable -Entity $Invite -Force + $GroupSuccess = $true + } else { + $TenantOnboarding.Status = 'failed' + $OnboardingSteps.Step3.Status = 'failed' + $OnboardingSteps.Step3.Message = 'No matching roles found, check the relationship and try again.' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + return + } + } + + if ($Invite) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'GDAP invite found, starting group/role mapping' }) + $GroupMapStatus = Set-CIPPGDAPInviteGroups -Relationship $Relationship + if ($GroupMapStatus) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Groups mapped successfully' }) + $OnboardingSteps.Step3.Message = 'Groups mapped successfully, checking access assignment status' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Group mapping failed' }) + $TenantOnboarding.Status = 'failed' + $OnboardingSteps.Step3.Status = 'failed' + $OnboardingSteps.Step3.Message = 'Group mapping failed, check the log book for details.' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + return + } + } elseif (!$GroupSuccess) { + $TenantOnboarding.Status = 'failed' + $OnboardingSteps.Step3.Status = 'failed' + $OnboardingSteps.Step3.Message = 'Failed to map security groups, no pending invite available' + } + } + + do { + $AccessAssignments = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$Id/accessAssignments" + Start-Sleep -Seconds 15 + } while ($AccessAssignments.status -contains 'pending' -and (Get-Date) -lt $Start.AddMinutes(8)) + + if ($AccessAssignments.status -notcontains 'pending') { + $OnboardingSteps.Step3.Message = 'Group check: Access assignments are mapped and active' + $OnboardingSteps.Step3.Status = 'succeeded' + + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Checking for missing groups for SAM user' }) + $SamUserId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/me?`$select=id" -NoAuthCheck $true).id + $CurrentMemberships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/me/transitiveMemberOf?`$select=id,displayName" -NoAuthCheck $true + $ExpectedCippRoles = $Item.Roles | Where-Object { $_.roleDefinitionId -in $ExpectedRoles.roleDefinitionId } + foreach ($Role in $ExpectedCippRoles) { + if ($CurrentMemberships.id -notcontains $Role.GroupId) { + $PostBody = @{ + '@odata.id' = 'https://graph.microsoft.com/v1.0/directoryObjects/{0}' -f $SamUserId + } | ConvertTo-Json -Compress + try { + New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($Role.GroupId)/members/`$ref" -body $PostBody -AsApp $true -NoAuthCheck $true + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = "Added SAM user to $($Role.GroupName)" }) + } catch { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = "Failed to add SAM user to $($Role.GroupName) - $($_.Exception.Message)" }) + } + } + } + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'SAM user group check completed' }) + } else { + $OnboardingSteps.Step3.Message = 'Group check: Access assignments are still pending, try again later' + $OnboardingSteps.Step3.Status = 'failed' + $TenantOnboarding.Status = 'failed' + Write-LogMessage -API 'Onboarding' -message "Tenant onboarding failed at group mapping step for $($Relationship.customer.displayName)" -Sev 'Error' + } + + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + } + + if ($OnboardingSteps.Step3.Status -eq 'succeeded') { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Setting up CPV consent' }) + $OnboardingSteps.Step4.Status = 'running' + $OnboardingSteps.Step4.Message = 'Setting up CPV consent' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + + $ExcludedTenant = Get-Tenants -SkipList | Where-Object { $_.customerId -eq $Relationship.customer.tenantId } + $IsExcluded = ($ExcludedTenant | Measure-Object).Count -gt 0 + if ($IsExcluded) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = ('Tenant is excluded from CIPP, onboarding cannot continue. Remove the exclusion from "{0}" ({1})' -f $ExcludedTenant.displayName, $ExcludedTenant.customerId) }) + $TenantOnboarding.Status = 'failed' + $OnboardingSteps.Step4.Status = 'failed' + $OnboardingSteps.Step4.Message = 'Tenant excluded from CIPP, remove the exclusion and retry onboarding.' + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Clearing tenant cache' }) + $y = 0 + do { + $Tenant = Get-Tenants -TriggerRefresh -TenantFilter $Relationship.customer.tenantId | Select-Object -First 1 + $y++ + Start-Sleep -Seconds 20 + } while (!$Tenant -and $y -le 10) + + if ($Tenant) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Tenant found in customer list' }) + try { + $CPVConsentParams = @{ + TenantFilter = $Relationship.customer.tenantId + } + $Consent = Set-CIPPCPVConsent @CPVConsentParams + if ($Consent -match 'Could not add our Service Principal to the client tenant') { + throw + } + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Added initial CPV consent permissions' }) + } catch { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = ('CPV Consent Failed, error: {0}' -f $Consent) }) + $TenantOnboarding.Status = 'failed' + $OnboardingSteps.Step4.Status = 'failed' + $OnboardingSteps.Step4.Message = 'CPV Consent failed, check the logs for more details.' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + Write-LogMessage -API 'Onboarding' -message "Tenant onboarding failed at CPV step for $($Relationship.customer.displayName)" -Sev 'Error' + return + } + $Refreshing = $true + $CPVSuccess = $false + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Refreshing CPV permissions' }) + $OnboardingSteps.Step4.Message = 'Refreshing CPV permissions' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + $LastCPVError = '' + do { + try { + Add-CIPPApplicationPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -TenantFilter $Relationship.customer.tenantId + Add-CIPPDelegatedPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -TenantFilter $Relationship.customer.tenantId + $CPVSuccess = $true + $Refreshing = $false + } catch { + $LastCPVError = $_.Exception.Message + Start-Sleep -Seconds 30 + } + } while ($Refreshing -and (Get-Date) -lt $Start.AddMinutes(8)) + + if ($CPVSuccess) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'CPV permissions refreshed' }) + $OnboardingSteps.Step4.Status = 'succeeded' + $OnboardingSteps.Step4.Message = 'CPV permissions refreshed' + if ($Tenant.defaultDomainName -match 'Domain Error') { + $Tenant = Get-Tenants -TriggerRefresh -IncludeAll | Where-Object { $_.customerId -eq $Relationship.customer.tenantId } | Select-Object -First 1 + } + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'CPV permissions failed to refresh. {0}' -f $LastCPVError }) + $TenantOnboarding.Status = 'failed' + $OnboardingSteps.Step4.Status = 'failed' + $OnboardingSteps.Step4.Message = 'CPV permissions failed to refresh, check the logs for more details.' + } + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Tenant not found' }) + $TenantOnboarding.Status = 'failed' + $OnboardingSteps.Step4.Status = 'failed' + $OnboardingSteps.Step4.Message = 'Tenant not found in customer list, try again later' + } + } + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + } + + if ($OnboardingSteps.Step4.Status -eq 'succeeded') { + if ($Item.StandardsExcludeAllTenants -eq $true) { + $AddExclusionObj = [PSCustomObject]@{ + label = '{0} ({1})' -f $Tenant.displayName, $Tenant.defaultDomainName + value = $Tenant.defaultDomainName + addedFields = @{ + customerId = $Tenant.customerId + defaultDomainName = $Tenant.defaultDomainName + } + } + $Table = Get-CIPPTable -tablename 'templates' + $ExistingTemplates = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'StandardsTemplateV2'" | Where-Object { $_.JSON -match 'AllTenants' } + foreach ($AllTenantsTemplate in $ExistingTemplates) { + $object = $AllTenantsTemplate.JSON | ConvertFrom-Json + $NewExcludedTenants = [System.Collections.Generic.List[object]]::new() + if (!$object.excludedTenants) { + $object | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force + } + foreach ($ExcludedStandardsTenant in $object.excludedTenants) { + $NewExcludedTenants.Add($ExcludedStandardsTenant) + } + $NewExcludedTenants.Add($AddExclusionObj) + $object.excludedTenants = $NewExcludedTenants + $JSON = ConvertTo-Json -InputObject $object -Compress -Depth 10 + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = $AllTenantsTemplate.RowKey + GUID = $AllTenantsTemplate.GUID + PartitionKey = 'StandardsTemplateV2' + } + } + + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Set All Tenant Standards Exclusion' }) + } + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = "Testing API access for $($Tenant.defaultDomainName)" }) + $OnboardingSteps.Step5.Status = 'running' + $OnboardingSteps.Step5.Message = 'Testing API access' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + + try { + #Write-Host ($Tenant | ConvertTo-Json) + $UserCount = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$count=true&`$top=1" -ComplexFilter -tenantid $Tenant.defaultDomainName -CountOnly + } catch { + $UserCount = 0 + $ApiError = $_.Exception.Message + $ApiException = $_ + } + + if ($UserCount -gt 0) { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'API test successful' }) + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Onboarding complete' }) + $OnboardingSteps.Step5.Status = 'succeeded' + $OnboardingSteps.Step5.Message = 'API Test Successful: {0} users found' -f $UserCount + $TenantOnboarding.Status = 'succeeded' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + Write-LogMessage -API 'Onboarding' -message "Tenant onboarding succeeded for $($Relationship.customer.displayName)" -Sev 'Info' + } else { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'API Test failed: {0}' -f $ApiError }) + $OnboardingSteps.Step5.Status = 'failed' + $OnboardingSteps.Step5.Message = 'API Test failed: {0}' -f $ApiError + $TenantOnboarding.Status = 'succeeded' + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + Write-LogMessage -API 'Onboarding' -message "Tenant onboarding API test failed for $($Relationship.customer.displayName)" -Sev 'Error' -LogData (Get-CippException -Exception $ApiException) + } + } + } catch { + $Logs.Add([PSCustomObject]@{ Date = (Get-Date).ToUniversalTime(); Log = 'Onboarding failed. Exception: {0}' -f $_.Exception.Message }) + $TenantOnboarding.Status = 'failed' + $TenantOnboarding.Exception = [string]('{0} - Line {1} - {2}' -f $_.Exception.Message, $_.InvocationInfo.ScriptLineNumber, $_.InvocationInfo.ScriptName) + $TenantOnboarding.OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + $TenantOnboarding.Logs = [string](ConvertTo-Json -InputObject @($Logs) -Compress) + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + Write-LogMessage -API 'Onboarding' -message "Tenant onboarding failed for $Id" -Sev 'Error' -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 new file mode 100644 index 000000000000..474ead168783 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 @@ -0,0 +1,392 @@ +function Push-ExecScheduledCommand { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + $item = $Item | ConvertTo-Json -Depth 100 | ConvertFrom-Json + Write-Information "We are going to be running a scheduled task: $($Item.TaskInfo | ConvertTo-Json -Depth 10)" + + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippScheduledTaskIdStorage) { + $script:CippScheduledTaskIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + $script:CippScheduledTaskIdStorage.Value = $Item.TaskInfo.RowKey + + $Table = Get-CippTable -tablename 'ScheduledTasks' + $task = $Item.TaskInfo + $commandParameters = $Item.Parameters | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashtable + + # Handle tenant resolution - support both direct tenant and group-expanded tenants + $Tenant = $Item.Parameters.TenantFilter ?? $Item.TaskInfo.Tenant + + # For tenant group tasks, the tenant will be the expanded tenant from the orchestrator + # We don't need to expand groups here as that's handled in the orchestrator + $TenantInfo = Get-Tenants -TenantFilter $Tenant + + $CurrentTask = Get-AzDataTableEntity @Table -Filter "PartitionKey eq '$($task.PartitionKey)' and RowKey eq '$($task.RowKey)'" + if (!$CurrentTask) { + Write-Information "The task $($task.Name) for tenant $($task.Tenant) does not exist in the ScheduledTasks table. Exiting." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + if ($CurrentTask.TaskState -eq 'Completed') { + Write-Information "The task $($task.Name) for tenant $($task.Tenant) is already completed. Skipping execution." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + # Task should be 'Pending' (queued by orchestrator) or 'Running' (retry/recovery) + # We accept both to handle edge cases + + # Check for rerun protection - prevent duplicate executions within the recurrence interval + if ($task.Recurrence -and $task.Recurrence -ne '0') { + # Calculate interval in seconds from recurrence string + $IntervalSeconds = switch -Regex ($task.Recurrence) { + '^(\d+)$' { [int64]$matches[1] * 86400 } # Plain number = days + '(\d+)m$' { [int64]$matches[1] * 60 } + '(\d+)h$' { [int64]$matches[1] * 3600 } + '(\d+)d$' { [int64]$matches[1] * 86400 } + default { 0 } + } + + if ($IntervalSeconds -gt 0) { + # Round down to nearest 15-minute interval (900 seconds) since that's when orchestrator runs + # This prevents rerun blocking issues due to slight timing variations + $FifteenMinutes = 900 + $AdjustedInterval = [Math]::Floor($IntervalSeconds / $FifteenMinutes) * $FifteenMinutes + + # Ensure we have at least one 15-minute interval + if ($AdjustedInterval -lt $FifteenMinutes) { + $AdjustedInterval = $FifteenMinutes + } + # Use task RowKey as API identifier for rerun cache + $RerunParams = @{ + TenantFilter = $Tenant + Type = 'ScheduledTask' + API = $task.RowKey + Interval = $AdjustedInterval + BaseTime = [int64]$task.ScheduledTime + Headers = $Headers + } + + $IsRerun = Test-CIPPRerun @RerunParams + if ($IsRerun) { + Write-Information "Scheduled task $($task.Name) for tenant $Tenant was recently executed. Skipping to prevent duplicate execution." + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + } + } + + if ($task.Trigger) { + # Extract trigger data from the task and process + $Trigger = if (Test-Json -Json $task.Trigger) { $task.Trigger | ConvertFrom-Json } else { $task.Trigger } + $TriggerType = $Trigger.Type.value ?? $Trigger.Type + if ($TriggerType -eq 'DeltaQuery') { + $IsTriggerTask = $true + $DeltaUrl = Get-DeltaQueryUrl -TenantFilter $Tenant -PartitionKey $task.RowKey + $DeltaQuery = @{ + DeltaUrl = $DeltaUrl + TenantFilter = $Tenant + PartitionKey = $task.RowKey + } + $Query = New-GraphDeltaQuery @DeltaQuery + + $secondsToAdd = switch -Regex ($task.Recurrence) { + '(\d+)m$' { [int64]$matches[1] * 60 } + '(\d+)h$' { [int64]$matches[1] * 3600 } + '(\d+)d$' { [int64]$matches[1] * 86400 } + default { 0 } + } + + $Minutes = [int]($secondsToAdd / 60) + + $DeltaQueryConditions = @{ + Query = $Query + Trigger = $Trigger + TenantFilter = $Tenant + LastTrigger = [datetime]::UtcNow.AddMinutes(-$Minutes) + } + $DeltaResults = Test-DeltaQueryConditions @DeltaQueryConditions + + if (-not $DeltaResults.ConditionsMet) { + Write-Information "Delta query conditions not met for tenant $Tenant. Skipping execution." + # update interval + $nextRunUnixTime = [int64]$task.ScheduledTime + [int64]$secondsToAdd + $null = Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + TaskState = 'Planned' + ScheduledTime = [string]$nextRunUnixTime + } + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + } + } else { + $IsTriggerTask = $false + } + + $null = Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + TaskState = 'Running' + } + + $Function = Get-Command -Name $Item.Command + if ($null -eq $Function) { + $Results = "Task Failed: The command $($Item.Command) does not exist." + $State = 'Failed' + Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + Results = "$Results" + TaskState = $State + } + + Write-LogMessage -API 'Scheduler_UserTasks' -tenant $Tenant -tenantid $TenantInfo.customerId -message "Failed to execute task $($task.Name): The command $($Item.Command) does not exist." -sev Error + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return + } + + try { + $PossibleParams = $Function.Parameters.Keys + $keysToRemove = [System.Collections.Generic.List[string]]@() + foreach ($key in $commandParameters.Keys) { + if (-not ($PossibleParams -contains $key)) { + $keysToRemove.Add($key) + } + } + foreach ($key in $keysToRemove) { + $commandParameters.Remove($key) + } + } catch { + Write-Information "Failed to remove parameters: $($_.Exception.Message)" + } + + if ($IsTriggerTask -eq $true -and $Trigger.ExecutePerResource -ne $true) { + # iterate through paramters looking for %variables% and replace them with matched data from the delta query + # examples would be %id% to be the id of the result + # if %triggerdata% is found, pass the entire matched data object + try { + foreach ($key in $commandParameters.Keys) { + if ($commandParameters[$key] -is [string]) { + if ($commandParameters[$key] -match '^%(.*)%$') { + $variableName = $matches[1] + if ($variableName -eq 'triggerdata') { + Write-Information "Replacing parameter $key with full matched data object." + $commandParameters[$key] = $DeltaResults.MatchedData + } else { + # Replace with array of matched property values + Write-Information "Replacing parameter $key with matched data property '$variableName'." + $commandParameters[$key] = $DeltaResults.MatchedData | Select-Object -ExpandProperty $variableName + } + } + } + } + } catch { + Write-Information "Failed to process trigger data parameters: $($_.Exception.Message)" + } + } elseif ($IsTriggerTask -eq $true -and $Trigger.ExecutePerResource -eq $true) { + Write-Information 'This is a trigger task with ExecutePerResource set to true. Iterating through matched data to execute command per resource.' + $results = foreach ($dataItem in $DeltaResults.MatchedData) { + $individualCommandParameters = $commandParameters.Clone() + try { + foreach ($key in $individualCommandParameters.Keys) { + if ($individualCommandParameters[$key] -is [string]) { + if ($individualCommandParameters[$key] -match '^%(.*)%$') { + if ($matches[1] -eq 'triggerdata') { + Write-Information "Replacing parameter $key with full matched data object for individual execution." + $individualCommandParameters[$key] = $dataItem + } else { + $variableName = $matches[1] + Write-Information "Replacing parameter $key with matched data property '$variableName' for individual execution." + $individualCommandParameters[$key] = $dataItem.$variableName + } + } + } + } + } catch { + Write-Information "Failed to process trigger data parameters for individual execution: $($_.Exception.Message)" + } + try { + Write-Information "Executing command $($Item.Command) for individual matched data item with parameters: $($individualCommandParameters | ConvertTo-Json -Depth 10)" + & $Item.Command @individualCommandParameters + Write-Information "Results for individual execution: $($results | ConvertTo-Json -Depth 10)" + } catch { + Write-Information "Failed to execute command for individual matched data item: $($_.Exception.Message)" + } + } + } + + try { + if (-not $Trigger.ExecutePerResource) { + try { + Write-Information "Starting task: $($Item.Command) for tenant: $Tenant with parameters: $($commandParameters | ConvertTo-Json)" + $results = & $Item.Command @commandParameters + } catch { + $results = "Task Failed: $($_.Exception.Message)" + $State = 'Failed' + } + Write-Information 'Ran the command. Processing results' + } + Write-Information "Results: $($results | ConvertTo-Json -Depth 10)" + if ($item.command -like 'Get-CIPPAlert*') { + Write-Information 'This is an alert task. Processing results as alerts.' + $results = @($results) + $TaskType = 'Alert' + } else { + Write-Information 'This is a scheduled task. Processing results as scheduled task.' + $TaskType = 'Scheduled Task' + + if (!$results) { + $results = 'Task completed successfully' + } + + if ($results -is [String]) { + $results = @{ Results = $results } + } elseif ($results -is [array] -and $results[0] -is [string] -or $results[0].resultText -is [string]) { + $results = $results | Where-Object { $_ -is [string] -or $_.resultText -is [string] } + $results = $results | ForEach-Object { + $Message = $_.resultText ?? $_ + @{ Results = $Message } + } + } + Write-Information "Results after processing: $($results | ConvertTo-Json -Depth 10)" + Write-Information 'Moving onto storing results' + if ($results -is [string]) { + $StoredResults = $results + } else { + $results = $results | Select-Object * -ExcludeProperty RowKey, PartitionKey + $StoredResults = $results | ConvertTo-Json -Compress -Depth 20 | Out-String + } + } + Write-Information "Results: $($results | ConvertTo-Json -Depth 10)" + if ($StoredResults.Length -gt 64000 -or $task.Tenant -eq 'AllTenants' -or $task.TenantGroup) { + $TaskResultsTable = Get-CippTable -tablename 'ScheduledTaskResults' + $TaskResults = @{ + PartitionKey = $task.RowKey + RowKey = $Tenant + Results = [string](ConvertTo-Json -Compress -Depth 20 $results) + } + $null = Add-CIPPAzDataTableEntity @TaskResultsTable -Entity $TaskResults -Force + $StoredResults = @{ Results = 'Completed, details are available in the More Info pane' } | ConvertTo-Json -Compress + } + } catch { + Write-Information "Failed to run task: $($_.Exception.Message)" + $errorMessage = $_.Exception.Message + #if recurrence is just a number, add it in days. + if ($task.Recurrence -match '^\d+$') { + $task.Recurrence = $task.Recurrence + 'd' + } + $secondsToAdd = switch -Regex ($task.Recurrence) { + '(\d+)m$' { [int64]$matches[1] * 60 } + '(\d+)h$' { [int64]$matches[1] * 3600 } + '(\d+)d$' { [int64]$matches[1] * 86400 } + default { 0 } + } + + if ($secondsToAdd -gt 0) { + $unixtimeNow = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + if ([int64]$task.ScheduledTime -lt ($unixtimeNow - $secondsToAdd)) { + $task.ScheduledTime = $unixtimeNow + } + } + + $nextRunUnixTime = [int64]$task.ScheduledTime + [int64]$secondsToAdd + if ($task.Recurrence -ne 0) { $State = 'Failed - Planned' } else { $State = 'Failed' } + Write-Information "The job is recurring, but failed. It was scheduled for $($task.ScheduledTime). The next runtime should be $nextRunUnixTime" + Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + Results = "$errorMessage" + ScheduledTime = "$nextRunUnixTime" + TaskState = $State + } + Write-LogMessage -API 'Scheduler_UserTasks' -tenant $Tenant -tenantid $TenantInfo.customerId -message "Failed to execute task $($task.Name): $errorMessage" -sev Error -LogData (Get-CippExceptionData -Exception $_.Exception) + } + Write-Information 'Sending task results to target. Updating the task state.' + + if ($Results) { + $TableDesign = '' + $FinalResults = if ($results -is [array] -and $results[0] -is [string]) { $Results | ConvertTo-Html -Fragment -Property @{ l = 'Text'; e = { $_ } } } else { $Results | ConvertTo-Html -Fragment } + $HTML = $FinalResults -replace '', "This alert is for tenant $Tenant.

$TableDesign
" | Out-String + + # Add alert comment if available + if ($task.AlertComment) { + if ($task.AlertComment -match '%resultcount%') { + $resultCount = if ($Results -is [array]) { $Results.Count } else { 1 } + $task.AlertComment = $task.AlertComment -replace '%resultcount%', "$resultCount" + } + $task.AlertComment = Get-CIPPTextReplacement -Text $task.AlertComment -TenantFilter $Tenant + $HTML += "

Alert Information

$($task.AlertComment)

" + } + + $title = "$TaskType - $Tenant - $($task.Name)$(if ($task.Reference) { " - Reference: $($task.Reference)" })" + Write-Information 'Scheduler: Sending the results to the target.' + Write-Information "The content of results is: $Results" + switch -wildcard ($task.PostExecution) { + '*psa*' { Send-CIPPAlert -Type 'psa' -Title $title -HTMLContent $HTML -TenantFilter $Tenant } + '*email*' { Send-CIPPAlert -Type 'email' -Title $title -HTMLContent $HTML -TenantFilter $Tenant } + '*webhook*' { + $Webhook = [PSCustomObject]@{ + 'tenantId' = $TenantInfo.customerId + 'Tenant' = $Tenant + 'TaskInfo' = $Item.TaskInfo + 'Results' = $Results + 'AlertComment' = $task.AlertComment + } + Send-CIPPAlert -Type 'webhook' -Title $title -TenantFilter $Tenant -JSONContent $($Webhook | ConvertTo-Json -Depth 20) + } + } + } + Write-Information 'Sent the results to the target. Updating the task state.' + + try { + if ($task.Recurrence -eq '0' -or [string]::IsNullOrEmpty($task.Recurrence) -or $Trigger.ExecutionMode.value -eq 'once' -or $Trigger.ExecutionMode -eq 'once') { + Write-Information 'Recurrence empty or 0. Task is not recurring. Setting task state to completed.' + Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + Results = "$StoredResults" + TaskState = 'Completed' + } + } else { + #if recurrence is just a number, add it in days. + if ($task.Recurrence -match '^\d+$') { + $task.Recurrence = $task.Recurrence + 'd' + } + $secondsToAdd = switch -Regex ($task.Recurrence) { + '(\d+)m$' { [int64]$matches[1] * 60 } + '(\d+)h$' { [int64]$matches[1] * 3600 } + '(\d+)d$' { [int64]$matches[1] * 86400 } + default { 0 } + } + + if ($secondsToAdd -gt 0) { + $unixtimeNow = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + if ([int64]$task.ScheduledTime -lt ($unixtimeNow - $secondsToAdd)) { + $task.ScheduledTime = $unixtimeNow + } + } + + $nextRunUnixTime = [int64]$task.ScheduledTime + [int64]$secondsToAdd + Write-Information "The job is recurring. It was scheduled for $($task.ScheduledTime). The next runtime should be $nextRunUnixTime" + Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + Results = "$StoredResults" + TaskState = 'Planned' + ScheduledTime = "$nextRunUnixTime" + } + } + } catch { + Write-Warning "Failed to update task state: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + if ($TaskType -ne 'Alert') { + Write-LogMessage -API 'Scheduler_UserTasks' -tenant $Tenant -tenantid $TenantInfo.customerId -message "Successfully executed task: $($task.Name)" -sev Info + } + Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue + return 'Task Completed Successfully.' +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-GetPendingWebhooks.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-GetPendingWebhooks.ps1 new file mode 100644 index 000000000000..2cdf56c8a6b5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-GetPendingWebhooks.ps1 @@ -0,0 +1,13 @@ +function Push-GetPendingWebhooks { + <# + .FUNCTIONALITY + Entrypoint + #> + Param($Item) + $Table = Get-CIPPTable -TableName WebhookIncoming + $Webhooks = Get-CIPPAzDataTableEntity @Table -Property PartitionKey, RowKey, FunctionName -First 10000 + $WebhookCount = ($Webhooks | Measure-Object).Count + $Message = 'Processing {0} webhooks' -f $WebhookCount + Write-LogMessage -API 'Webhooks' -message $Message -sev Info + return $Webhooks +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-GetTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-GetTenants.ps1 new file mode 100644 index 000000000000..b5239d8bd92c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-GetTenants.ps1 @@ -0,0 +1,18 @@ +function Push-GetTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + Param($Item) + + $Params = $Item.TenantParams | ConvertTo-Json | ConvertFrom-Json -AsHashtable + try { + if ($Item.QueueId) { + Get-Tenants @Params | Select-Object customerId, @{n = 'FunctionName'; e = { $Item.DurableName } }, @{n = 'QueueId'; e = { $Item.QueueId } }, @{n = 'QueueName'; e = { $_.defaultDomainName } } + } else { + Get-Tenants @Params | Select-Object customerId, @{n = 'FunctionName'; e = { $Item.DurableName } } + } + } catch { + Write-Host "GetTenants Exception $($_.Exception.Message)" + } +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListBasicAuthAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListBasicAuthAllTenants.ps1 new file mode 100644 index 000000000000..2f2a5218c8a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListBasicAuthAllTenants.ps1 @@ -0,0 +1,39 @@ +Function Push-ListBasicAuthAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $domainName = $Item.defaultDomainName + + # XXX; This function seems to be unused in the frontend. -Bobby + + $currentTime = Get-Date -Format 'yyyy-MM-ddTHH:MM:ss' + $ts = (Get-Date).AddDays(-30) + $endTime = $ts.ToString('yyyy-MM-ddTHH:MM:ss') + $filters = "createdDateTime ge $($endTime)Z and createdDateTime lt $($currentTime)Z and (clientAppUsed eq 'AutoDiscover' or clientAppUsed eq 'Exchange ActiveSync' or clientAppUsed eq 'Exchange Online PowerShell' or clientAppUsed eq 'Exchange Web Services' or clientAppUsed eq 'IMAP4' or clientAppUsed eq 'MAPI Over HTTP' or clientAppUsed eq 'Offline Address Book' or clientAppUsed eq 'Outlook Anywhere (RPC over HTTP)' or clientAppUsed eq 'Other clients' or clientAppUsed eq 'POP3' or clientAppUsed eq 'Reporting Web Services' or clientAppUsed eq 'Authenticated SMTP' or clientAppUsed eq 'Outlook Service')" + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/signIns?api-version=beta&filter=$($filters)" -tenantid $domainName -ErrorAction stop | Sort-Object -Unique -Property clientAppUsed | ForEach-Object { + @{ + Tenant = $domainName + clientAppUsed = $_.clientAppUsed + userPrincipalName = $_.UserPrincipalName + RowKey = "$($_.UserPrincipalName)-$($_.clientAppUsed)" + PartitionKey = 'basicauth' + } + } + } catch { + $GraphRequest = @{ + Tenant = $domainName + clientAppUsed = "Could not connect to Tenant: $($_.Exception.message)" + userPrincipalName = $domainName + RowKey = $domainName + PartitionKey = 'basicauth' + } + } + $Table = Get-CIPPTable -TableName cachebasicauth + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListConditionalAccessPoliciesAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListConditionalAccessPoliciesAllTenants.ps1 new file mode 100644 index 000000000000..6654ae719c80 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListConditionalAccessPoliciesAllTenants.ps1 @@ -0,0 +1,165 @@ +function Push-ListConditionalAccessPoliciesAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + #Region Helper functions + function Get-LocationNameFromId { + param ($ID, $Locations) + if ($id -eq 'All') { return 'All' } + $DisplayName = $Locations | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { return $ID } else { return $DisplayName } + } + + function Get-RoleNameFromId { + param ($ID, $RoleDefinitions) + if ($id -eq 'All') { return 'All' } + $DisplayName = $RoleDefinitions | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { return $ID } else { return $DisplayName } + } + + function Get-UserNameFromId { + param ($ID, $Users) + if ($id -eq 'All') { return 'All' } + $DisplayName = $Users | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { return $ID } else { return $DisplayName } + } + + function Get-GroupNameFromId { + param ($ID, $Groups) + if ($id -eq 'All') { return 'All' } + $DisplayName = $Groups | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { return 'No Data' } else { return $DisplayName } + } + + function Get-ApplicationNameFromId { + param ($ID, $Applications, $ServicePrincipals) + if ($id -eq 'All') { return 'All' } + $return = $ServicePrincipals | Where-Object { $_.appId -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($return)) { + $return = $Applications | Where-Object { $_.Appid -eq $ID } | Select-Object -ExpandProperty DisplayName + } + if ([string]::IsNullOrEmpty($return)) { + $return = $Applications | Where-Object { $_.ID -eq $ID } | Select-Object -ExpandProperty DisplayName + } + if ([string]::IsNullOrEmpty($return)) { $return = '' } + return $return + } + #EndRegion Helper functions + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName 'cacheCAPolicies' + + try { + $Requests = @( + @{ + id = 'policies' + url = 'identity/conditionalAccess/policies' + method = 'GET' + } + @{ + id = 'namedLocations' + url = 'identity/conditionalAccess/namedLocations' + method = 'GET' + } + @{ + id = 'applications' + url = 'applications?$top=999&$select=appId,displayName' + method = 'GET' + } + @{ + id = 'roleDefinitions' + url = 'roleManagement/directory/roleDefinitions?$select=id,displayName' + method = 'GET' + } + @{ + id = 'groups' + url = 'groups?$top=999&$select=id,displayName' + method = 'GET' + } + @{ + id = 'users' + url = 'users?$top=999&$select=id,displayName,userPrincipalName' + method = 'GET' + } + @{ + id = 'servicePrincipals' + url = 'servicePrincipals?$top=999&$select=appId,displayName' + method = 'GET' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $Requests -tenantid $domainName -asapp $true + + $ConditionalAccessPolicyOutput = ($BulkResults | Where-Object { $_.id -eq 'policies' }).body.value + $AllNamedLocations = ($BulkResults | Where-Object { $_.id -eq 'namedLocations' }).body.value + $AllApplications = ($BulkResults | Where-Object { $_.id -eq 'applications' } ).body.value + $AllRoleDefinitions = ($BulkResults | Where-Object { $_.id -eq 'roleDefinitions' }).body.value + $GroupListOutput = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value + $UserListOutput = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value + $AllServicePrincipals = ($BulkResults | Where-Object { $_.id -eq 'servicePrincipals' }).body.value + + foreach ($cap in $ConditionalAccessPolicyOutput) { + $GUID = (New-Guid).Guid + $PolicyData = @{ + id = $cap.id + displayName = $cap.displayName + customer = $cap.Customer + Tenant = $domainName + createdDateTime = $(if (![string]::IsNullOrEmpty($cap.createdDateTime)) { [datetime]$cap.createdDateTime } else { '' }) + modifiedDateTime = $(if (![string]::IsNullOrEmpty($cap.modifiedDateTime)) { [datetime]$cap.modifiedDateTime } else { '' }) + state = $cap.state + clientAppTypes = ($cap.conditions.clientAppTypes) -join ',' + includePlatforms = ($cap.conditions.platforms.includePlatforms) -join ',' + excludePlatforms = ($cap.conditions.platforms.excludePlatforms) -join ',' + includeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.includeLocations) -join ',' + excludeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.excludeLocations) -join ',' + includeApplications = ($cap.conditions.applications.includeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' + excludeApplications = ($cap.conditions.applications.excludeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' + includeUserActions = ($cap.conditions.applications.includeUserActions | Out-String) + includeAuthenticationContextClassReferences = ($cap.conditions.applications.includeAuthenticationContextClassReferences | Out-String) + includeUsers = ($cap.conditions.users.includeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String + excludeUsers = ($cap.conditions.users.excludeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String + includeGroups = ($cap.conditions.users.includeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String + excludeGroups = ($cap.conditions.users.excludeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String + includeRoles = ($cap.conditions.users.includeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String + excludeRoles = ($cap.conditions.users.excludeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String + grantControlsOperator = ($cap.grantControls.operator) -join ',' + builtInControls = ($cap.grantControls.builtInControls) -join ',' + customAuthenticationFactors = ($cap.grantControls.customAuthenticationFactors) -join ',' + termsOfUse = ($cap.grantControls.termsOfUse) -join ',' + rawjson = ($cap | ConvertTo-Json -Depth 100) + } + + $Entity = @{ + Policy = [string]($PolicyData | ConvertTo-Json -Depth 10 -Compress) + RowKey = [string]$GUID + PartitionKey = 'CAPolicy' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } + + } catch { + $GUID = (New-Guid).Guid + $ErrorPolicy = ConvertTo-Json -InputObject @{ + Tenant = $domainName + displayName = "Could not connect to Tenant: $($_.Exception.Message)" + state = 'Error' + createdDateTime = (Get-Date).ToString('s') + modifiedDateTime = (Get-Date).ToString('s') + id = 'Error' + clientAppTypes = 'CIPP' + } -Compress + $Entity = @{ + Policy = [string]$ErrorPolicy + RowKey = [string]$GUID + PartitionKey = 'CAPolicy' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 new file mode 100644 index 000000000000..2a9c65d73acb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListLicensesQueue.ps1 @@ -0,0 +1,32 @@ +function Push-ListLicensesQueue { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + # Write out the queue message and metadata to the information log. + Write-Host "PowerShell queue trigger function processed work item: $($Item.defaultDomainName)" + + $domainName = $Item.defaultDomainName + try { + Write-Host "Processing $domainName" + $Licenses = Get-CIPPLicenseOverview -TenantFilter $domainName + } catch { + $Licenses = [pscustomobject]@{ + Tenant = [string]$domainName + License = "Could not connect to client: $($_.Exception.Message)" + 'PartitionKey' = 'License' + 'RowKey' = "$($domainName)" + } + } finally { + $Table = Get-CIPPTable -TableName cachelicenses + $JSON = ConvertTo-Json -Depth 10 -Compress -InputObject @($Licenses) + $Overview = [pscustomobject]@{ + License = [string]$JSON + 'PartitionKey' = 'License' + 'RowKey' = "$($domainName)" + } + Add-CIPPAzDataTableEntity @Table -Entity $Overview -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMFAUsersQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMFAUsersQueue.ps1 new file mode 100644 index 000000000000..1ff7acc513d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMFAUsersQueue.ps1 @@ -0,0 +1,59 @@ +function Push-ListMFAUsersQueue { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + # Write out the queue message and metadata to the information log. + Write-Host "PowerShell queue trigger function processed work item: $($Item.defaultDomainName)" + + try { + #Update-CippQueueEntry -RowKey $Item.QueueId -Status 'Running' -Name $Item.displayName + $domainName = $Item.defaultDomainName + $Table = Get-CIPPTable -TableName cachemfa + Try { + $GraphRequest = Get-CIPPMFAState -TenantFilter $domainName -ErrorAction Stop + } catch { + $GraphRequest = $null + } + if (!$GraphRequest) { + $GraphRequest = @{ + Tenant = [string]$domainName + UPN = [string]$domainName + AccountEnabled = 'none' + PerUser = [string]'Could not connect to tenant' + MFARegistration = 'none' + CoveredByCA = [string]'Could not connect to tenant' + CoveredBySD = 'none' + RowKey = [string]"$domainName" + PartitionKey = 'users' + } + } else { + $GraphRequest = foreach ($Request in $GraphRequest) { + $Request.CAPolicies = try { [string](@($Request.CAPolicies) | ConvertTo-Json -Compress -Depth 5) } catch { [string]$Request.CAPolicies } + $Request.MFAMethods = try { [string](@($Request.MFAMethods) | ConvertTo-Json -Compress -Depth 5) } catch { [string]$Request.MFAMethods } + $Request + } + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + + } catch { + $Table = Get-CIPPTable -TableName cachemfa + $GraphRequest = @{ + Tenant = [string]$domainName + UPN = [string]$domainName + AccountEnabled = 'none' + PerUser = [string]'Could not connect to tenant' + MFARegistration = 'none' + CoveredByCA = [string]'Could not connect to tenant' + CoveredBySD = 'none' + RowKey = [string]"$domainName" + PartitionKey = 'users' + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null + } finally { + #Update-CippQueueEntry -RowKey $QueueItem -Status 'Completed' + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 new file mode 100644 index 000000000000..34398c9567bd --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailQuarantineAllTenants.ps1 @@ -0,0 +1,43 @@ +function Push-ListMailQuarantineAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName cacheQuarantineMessages + Write-Host "PowerShell queue trigger function processed work item: $($Tenant.defaultDomainName)" + + try { + $quarantineMessages = New-ExoRequest -tenantid $domainName -cmdlet 'Get-QuarantineMessage' -cmdParams @{ 'PageSize' = 1000 } | Select-Object -ExcludeProperty *data.type* + foreach ($message in $quarantineMessages) { + $messageData = @{ + QuarantineMessage = [string]($message | ConvertTo-Json -Depth 10 -Compress) + RowKey = [string](New-Guid).Guid + PartitionKey = 'QuarantineMessage' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $messageData -Force | Out-Null + } + } catch { + $errorData = ConvertTo-Json -InputObject @{ + Identity = $null + ReceivedTime = (Get-Date).ToString('s') + SenderAddress = 'CIPP Error' + RecipientAddress = 'N/A' + Subject = "Could not connect to Tenant: $($_.Exception.Message)" + Size = 0 + Type = 'Error' + QuarantineReason = 'ConnectionError' + } + $messageData = @{ + QuarantineMessage = [string]$errorData + RowKey = [string]$domainName + PartitionKey = 'QuarantineMessage' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $messageData -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailboxRulesQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailboxRulesQueue.ps1 new file mode 100644 index 000000000000..b26603bd13e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListMailboxRulesQueue.ps1 @@ -0,0 +1,62 @@ +function Push-ListMailboxRulesQueue { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + # Write out the queue message and metadata to the information log. + Write-Host "PowerShell queue trigger function processed work item: $($Item.defaultDomainName)" + + $domainName = $Item.defaultDomainName + + $Table = Get-CIPPTable -TableName cachembxrules + try { + $Mailboxes = New-ExoRequest -tenantid $domainName -cmdlet 'Get-Mailbox' -Select 'userPrincipalName,GUID' + $Request = $Mailboxes | ForEach-Object { + @{ + OperationGuid = $_.UserPrincipalName + CmdletInput = @{ + CmdletName = 'Get-InboxRule' + Parameters = @{ + Mailbox = $_.UserPrincipalName + } + } + } + } + + $Rules = New-ExoBulkRequest -tenantid $domainName -cmdletArray @($Request) | Where-Object { $_.Identity } + if (($Rules | Measure-Object).Count -gt 0) { + $GraphRequest = foreach ($Rule in $Rules) { + [PSCustomObject]@{ + Rules = [string]($Rule | ConvertTo-Json) + RowKey = [string](New-Guid).guid + Tenant = [string]$domainName + PartitionKey = 'MailboxRules' + } + + } + } else { + $Rules = @(@{ + Name = 'No rules found' + }) | ConvertTo-Json + $GraphRequest = [PSCustomObject]@{ + Rules = [string]$Rules + RowKey = [string]$domainName + Tenant = [string]$domainName + PartitionKey = 'MailboxRules' + } + } + } catch { + $Rules = @{ + Name = "Could not connect to tenant $($_.Exception.message)" + } | ConvertTo-Json + $GraphRequest = [PSCustomObject]@{ + Rules = [string]$Rules + RowKey = [string]$domainName + Tenant = [string]$domainName + PartitionKey = 'MailboxRules' + } + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force | Out-Null +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTenantAllowBlockListAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTenantAllowBlockListAllTenants.ps1 new file mode 100644 index 000000000000..e249acc59c92 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTenantAllowBlockListAllTenants.ps1 @@ -0,0 +1,46 @@ +function Push-ListTenantAllowBlockListAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $domainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName 'cacheTenantAllowBlockList' + $ListTypes = 'Sender', 'Url', 'FileHash', 'IP' + + try { + foreach ($ListType in $ListTypes) { + $Entries = New-ExoRequest -tenantid $domainName -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ ListType = $ListType } + foreach ($Entry in $Entries) { + $CleanEntry = $Entry | Select-Object -ExcludeProperty *'@data.type'*, *'(DateTime])'* + $CleanEntry | Add-Member -MemberType NoteProperty -Name Tenant -Value $domainName -Force + $CleanEntry | Add-Member -MemberType NoteProperty -Name ListType -Value $ListType -Force + $Entity = @{ + Entry = [string]($CleanEntry | ConvertTo-Json -Depth 10 -Compress) + RowKey = [string](New-Guid).Guid + PartitionKey = 'TenantAllowBlockList' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } + } + } catch { + $ErrorEntry = [pscustomobject]@{ + Tenant = $domainName + ListType = 'Error' + Identity = 'Error' + DisplayName = "Could not retrieve tenant allow/block list: $($_.Exception.Message)" + Timestamp = (Get-Date).ToString('s') + } + $Entity = @{ + Entry = [string]($ErrorEntry | ConvertTo-Json -Depth 10 -Compress) + RowKey = [string](New-Guid).Guid + PartitionKey = 'TenantAllowBlockList' + Tenant = [string]$domainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTransportRulesAllTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTransportRulesAllTenants.ps1 new file mode 100644 index 000000000000..2db1afecabcd --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ListTransportRulesAllTenants.ps1 @@ -0,0 +1,42 @@ +function Push-ListTransportRulesAllTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $Tenant = Get-Tenants -TenantFilter $Item.customerId + $DomainName = $Tenant.defaultDomainName + $Table = Get-CIPPTable -TableName CacheTransportRules + + try { + $TransportRules = New-ExoRequest -tenantid $DomainName -cmdlet 'Get-TransportRule' + $Results = foreach ($rule in $TransportRules) { + $GUID = (New-Guid).Guid + $Results = @{ + TransportRule = [string]($rule | ConvertTo-Json -Depth 10) + RowKey = [string]$GUID + PartitionKey = 'TransportRule' + Tenant = [string]$DomainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Results -Force | Out-Null + } + + } catch { + $GUID = (New-Guid).Guid + $ErrorText = ConvertTo-Json -InputObject @{ + Tenant = $DomainName + Name = "Could not connect to Tenant: $($_.Exception.Message)" + State = 'Error' + Priority = 0 + Description = "Error retrieving transport rules: $($_.Exception.Message)" + } + $Results = @{ + TransportRule = [string]$ErrorText + RowKey = [string]$GUID + PartitionKey = 'TransportRule' + Tenant = [string]$DomainName + } + Add-CIPPAzDataTableEntity @Table -Entity $Results -Force | Out-Null + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 new file mode 100644 index 000000000000..bc1d438f1a99 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-SchedulerCIPPNotifications.ps1 @@ -0,0 +1,168 @@ +function Push-SchedulerCIPPNotifications { + <# + .FUNCTIONALITY + Entrypoint + #> + param ( + $QueueItem, $TriggerMetadata + ) + #Add new alert engine. + $Table = Get-CIPPTable -TableName SchedulerConfig + $Filter = "RowKey eq 'CippNotifications' and PartitionKey eq 'CippNotifications'" + $Config = [pscustomobject](Get-CIPPAzDataTableEntity @Table -Filter $Filter) + + $Settings = [System.Collections.Generic.List[string]]@('Alerts') + $Config.psobject.properties.name | ForEach-Object { if ($Config.$_ -eq $true) { $Settings.Add($_) } } + Write-Information "Our APIs are: $($Settings -join ',')" + + $severity = $Config.Severity -split ',' + if (!$severity) { + $severity = [System.Collections.ArrayList]@('Info', 'Error', 'Warning', 'Critical', 'Alert') + } + Write-Information "Our Severity table is: $severity" + + $Table = Get-CIPPTable + $PartitionKey = Get-Date -UFormat '%Y%m%d' + $Filter = "PartitionKey eq '{0}'" -f $PartitionKey + $Currentlog = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { + $_.API -in $Settings -and $_.sentAsAlert -ne $true -and $_.Severity -in $severity + } + $StandardsTable = Get-CIPPTable -tablename CippStandardsAlerts + $CurrentStandardsLogs = Get-CIPPAzDataTableEntity @StandardsTable -Filter $Filter | Where-Object { + $_.sentAsAlert -ne $true + } + Write-Information "Alerts: $($Currentlog.count) found" + Write-Information "Standards: $($CurrentStandardsLogs.count) found" + + # Get the CIPP URL + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPURL = 'https://{0}' -f $CippConfig.Value + + #email try + try { + if ($Config.email -like '*@*') { + #Normal logs + if ($Currentlog) { + if ($config.onePerTenant) { + foreach ($tenant in ($CurrentLog.Tenant | Sort-Object -Unique)) { + $Data = ($CurrentLog | Select-Object Message, API, Tenant, Username, Severity | Where-Object -Property tenant -EQ $tenant) + $Subject = "$($Tenant): CIPP Alert: Alerts found starting at $((Get-Date).AddMinutes(-15))" + $HTMLContent = New-CIPPAlertTemplate -Data $Data -Format 'html' -InputObject 'table' -CIPPURL $CIPPURL + Send-CIPPAlert -Type 'email' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $tenant -APIName 'Alerts' + $UpdateLogs = $CurrentLog | ForEach-Object { + if ($_.PSObject.Properties.Name -contains 'sentAsAlert') { + $_.sentAsAlert = $true + } else { + $_ | Add-Member -MemberType NoteProperty -Name sentAsAlert -Value $true -Force + } + $_ + } + if ($UpdateLogs) { + Add-CIPPAzDataTableEntity @Table -Entity $UpdateLogs -Force + } + } + } else { + $Data = ($CurrentLog | Select-Object Message, API, Tenant, Username, Severity) + $Subject = "CIPP Alert: Alerts found starting at $((Get-Date).AddMinutes(-15))" + $HTMLContent = New-CIPPAlertTemplate -Data $Data -Format 'html' -InputObject 'table' -CIPPURL $CIPPURL + Send-CIPPAlert -Type 'email' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $tenant -APIName 'Alerts' + $UpdateLogs = $CurrentLog | ForEach-Object { + if ($_.PSObject.Properties.Name -contains 'sentAsAlert') { + $_.sentAsAlert = $true + } else { + $_ | Add-Member -MemberType NoteProperty -Name sentAsAlert -Value $true -Force + } + $_ + } + if ($UpdateLogs) { + Add-CIPPAzDataTableEntity @Table -Entity $UpdateLogs -Force + } + } + } + if ($CurrentStandardsLogs) { + foreach ($tenant in ($CurrentStandardsLogs.Tenant | Sort-Object -Unique)) { + $Data = ($CurrentStandardsLogs | Where-Object -Property tenant -EQ $tenant) + $Subject = "$($Tenant): Standards are out of sync for $tenant" + $HTMLContent = New-CIPPAlertTemplate -Data $Data -Format 'html' -InputObject 'standards' -CIPPURL $CIPPURL + Send-CIPPAlert -Type 'email' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $tenant -APIName 'Alerts' + $updateStandards = $CurrentStandardsLogs | ForEach-Object { + if ($_.PSObject.Properties.Name -contains 'sentAsAlert') { + $_.sentAsAlert = $true + } else { + $_ | Add-Member -MemberType NoteProperty -Name sentAsAlert -Value $true -Force + } + $_ + } + if ($updateStandards) { Add-CIPPAzDataTableEntity @StandardsTable -Entity $updateStandards -Force } + } + } + } + } catch { + Write-Information "Could not send alerts to email: $($_.Exception.message)" + Write-LogMessage -API 'Alerts' -message "Could not send alert emails: $($_.Exception.message)" -sev error -LogData (Get-CippException -Exception $_) + } + + try { + Write-Information $($config | ConvertTo-Json) + Write-Information $config.webhook + if (![string]::IsNullOrEmpty($config.webhook)) { + if ($Currentlog) { + $JSONContent = $Currentlog | ConvertTo-Json -Compress + Send-CIPPAlert -Type 'webhook' -JSONContent $JSONContent -TenantFilter $Tenant -APIName 'Alerts' + $UpdateLogs = $CurrentLog | ForEach-Object { $_.sentAsAlert = $true; $_ } + if ($UpdateLogs) { Add-CIPPAzDataTableEntity @Table -Entity $UpdateLogs -Force } + } + + if ($CurrentStandardsLogs) { + $Data = $CurrentStandardsLogs + $JSONContent = New-CIPPAlertTemplate -Data $Data -Format 'json' -InputObject 'table' -CIPPURL $CIPPURL + $CurrentStandardsLogs | ConvertTo-Json -Compress + Send-CIPPAlert -Type 'webhook' -JSONContent $JSONContent -TenantFilter $Tenant -APIName 'Alerts' + $updateStandards = $CurrentStandardsLogs | ForEach-Object { + if ($_.PSObject.Properties.Name -contains 'sentAsAlert') { + $_.sentAsAlert = $true + } else { + $_ | Add-Member -MemberType NoteProperty -Name sentAsAlert -Value $true -Force + } + $_ + } + } + + } + } catch { + Write-Information "Could not send alerts to webhook $($config.webhook): $($_.Exception.message)" + Write-LogMessage -API 'Alerts' -message "Could not send alerts to webhook $($config.webhook): $($_.Exception.message)" -tenant $Tenant -sev error -LogData (Get-CippException -Exception $_) + } + + if ($config.sendtoIntegration) { + try { + foreach ($tenant in ($CurrentLog.Tenant | Sort-Object -Unique)) { + $Data = ($CurrentLog | Select-Object Message, API, Tenant, Username, Severity | Where-Object -Property tenant -EQ $tenant) + $HTMLContent = New-CIPPAlertTemplate -Data $Data -Format 'html' -InputObject 'table' -CIPPURL $CIPPURL + $Title = "$tenant CIPP Alert: Alerts found starting at $((Get-Date).AddMinutes(-15))" + Send-CIPPAlert -Type 'psa' -Title $Title -HTMLContent $HTMLContent.htmlcontent -TenantFilter $tenant -APIName 'Alerts' + $UpdateLogs = $CurrentLog | ForEach-Object { $_.SentAsAlert = $true; $_ } + if ($UpdateLogs) { Add-CIPPAzDataTableEntity @Table -Entity $UpdateLogs -Force } + } + foreach ($standardsTenant in ($CurrentStandardsLogs.Tenant | Sort-Object -Unique)) { + $Data = ($CurrentStandardsLogs | Where-Object -Property tenant -EQ $standardsTenant) + $Subject = "$($standardsTenant): Standards are out of sync for $standardsTenant" + $HTMLContent = New-CIPPAlertTemplate -Data $Data -Format 'html' -InputObject 'standards' -CIPPURL $CIPPURL + Send-CIPPAlert -Type 'psa' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $standardsTenant -APIName 'Alerts' + $updateStandards = $CurrentStandardsLogs | ForEach-Object { + if ($_.PSObject.Properties.Name -contains 'sentAsAlert') { + $_.sentAsAlert = $true + } else { + $_ | Add-Member -MemberType NoteProperty -Name sentAsAlert -Value $true -Force + } + $_ + } + } + } catch { + Write-Information "Could not send alerts to ticketing system: $($_.Exception.message)" + Write-LogMessage -API 'Alerts' -tenant $Tenant -message "Could not send alerts to ticketing system: $($_.Exception.message)" -sev Error + } + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdatePermissionsQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdatePermissionsQueue.ps1 new file mode 100644 index 000000000000..cbe2d2cbb47c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdatePermissionsQueue.ps1 @@ -0,0 +1,57 @@ +function Push-UpdatePermissionsQueue { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + try { + $DomainRefreshRequired = $false + + if (!$Item.defaultDomainName) { + $DomainRefreshRequired = $true + } + + Write-Information "Applying permissions for $($Item.displayName)" + $Table = Get-CIPPTable -TableName cpvtenants + $CPVRows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Tenant -EQ $Item.customerId + + $Tenant = Get-Tenants -TenantFilter $Item.customerId -IncludeErrors + + if ((!$CPVRows -or $env:ApplicationID -notin $CPVRows.applicationId) -and $Tenant.delegatedPrivilegeStatus -ne 'directTenant') { + Write-LogMessage -tenant $Item.defaultDomainName -tenantId $Item.customerId -message 'A New tenant has been added, or a new CIPP-SAM Application is in use' -Sev 'Warn' -API 'NewTenant' + Write-Information 'Adding CPV permissions' + Set-CIPPCPVConsent -Tenantfilter $Item.customerId + $DomainRefreshRequired = $true + } + Write-Information 'Updating permissions' + Add-CIPPApplicationPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -tenantfilter $Item.customerId + Add-CIPPDelegatedPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -tenantfilter $Item.customerId + Write-LogMessage -tenant $Item.defaultDomainName -tenantId $Item.customerId -message "Updated permissions for $($Item.displayName)" -Sev 'Info' -API 'UpdatePermissionsQueue' + + if ($Item.defaultDomainName -ne 'PartnerTenant') { + Write-Information 'Pushing CIPP-SAM admin roles' + Set-CIPPSAMAdminRoles -TenantFilter $Item.customerId + } + + $Table = Get-CIPPTable -TableName cpvtenants + $unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + $GraphRequest = @{ + LastApply = "$unixtime" + applicationId = "$($env:ApplicationID)" + Tenant = "$($Item.customerId)" + PartitionKey = 'Tenant' + RowKey = "$($Item.customerId)" + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force + + if ($DomainRefreshRequired) { + $UpdatedTenant = Get-Tenants -TenantFilter $Item.customerId -TriggerRefresh + if ($UpdatedTenant.defaultDomainName) { + Write-Information "Updated tenant domains $($UpdatedTenant.defaultDomainName)" + } + } + } catch { + Write-Information "Error updating permissions for $($Item.displayName)" + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdateTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdateTenants.ps1 new file mode 100644 index 000000000000..d4674c69038b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-UpdateTenants.ps1 @@ -0,0 +1,30 @@ +function Push-UpdateTenants { + <# + .FUNCTIONALITY + Entrypoint + #> + Param($Item) + $QueueReference = 'UpdateTenants' + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -ne 'Completed' -and $_.Status -ne 'Failed' } + + $Queue = New-CippQueueEntry -Name 'Update Tenants' -Reference $QueueReference -TotalTasks 1 + try { + $QueueTask = @{ + QueueId = $Queue.RowKey + Name = 'Get tenant list' + Status = 'Running' + } + $TaskStatus = Set-CippQueueTask @QueueTask + $QueueTask.TaskId = $TaskStatus.RowKey + Update-CippQueueEntry -RowKey $Queue.RowKey -Status 'Running' + Get-Tenants -IncludeAll -TriggerRefresh | Out-Null + Update-CippQueueEntry -RowKey $Queue.RowKey -Status 'Completed' + $QueueTask.Status = 'Completed' + Set-CippQueueTask @QueueTask + } catch { + Write-Host "Queue Error: $($_.Exception.Message)" + Update-CippQueueEntry -RowKey $Queue.RowKey -Status 'Failed' + $QueueTask.Status = 'Failed' + Set-CippQueueTask @QueueTask + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-Z_CIPPQueueTrigger.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-Z_CIPPQueueTrigger.ps1 new file mode 100644 index 000000000000..b8336c9975ff --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-Z_CIPPQueueTrigger.ps1 @@ -0,0 +1,13 @@ +function Push-Z_CIPPQueueTrigger { + <# + .FUNCTIONALITY + Entrypoint + #> + Param($QueueItem, $TriggerMetadata) + $APIName = $QueueItem.FunctionName + + $FunctionName = 'Push-{0}' -f $APIName + if (Get-Command -Name $FunctionName -ErrorAction SilentlyContinue) { + & $FunctionName -QueueItem $QueueItem -TriggerMetadata $TriggerMetadata + } +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 new file mode 100644 index 000000000000..bdd3d2d2bf81 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 @@ -0,0 +1,91 @@ +function Push-CippDriftManagement { + <# + .FUNCTIONALITY + Entrypoint + #> + param ( + $Item + ) + + Write-Information "Received drift standard item for $($Item.Tenant)" + + try { + $Drift = Get-CIPPDrift -TenantFilter $Item.Tenant + if ($Drift.newDeviationsCount -gt 0) { + $Settings = $Drift.driftSettings + $email = $Settings.driftAlertEmail + $webhook = $Settings.driftAlertWebhook + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPURL = 'https://{0}' -f $CippConfig.Value + + # Process deviations more efficiently with foreach instead of ForEach-Object + $Data = foreach ($deviation in $Drift.currentDeviations) { + $currentValue = if ($deviation.receivedValue -and $deviation.receivedValue.Length -gt 200) { + $deviation.receivedValue.Substring(0, 200) + '...' + } else { + $deviation.receivedValue + } + [PSCustomObject]@{ + Standard = $deviation.standardDisplayName ? $deviation.standardDisplayName : $deviation.standardName + 'Expected Value' = $deviation.expectedValue + 'Current Value' = $currentValue + Status = $deviation.status + } + } + + $GenerateEmail = New-CIPPAlertTemplate -format 'html' -data $Data -CIPPURL $CIPPURL -Tenant $Item.Tenant -InputObject 'driftStandard' -AuditLogLink $drift.standardId + + # Check if notifications are disabled (default to false if not set) + if (-not $Settings.driftAlertDisableEmail) { + # Send email alert if configured + $CIPPAlert = @{ + Type = 'email' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $Item.Tenant + } + Write-Information "Sending email alert for tenant $($Item.Tenant)" + Send-CIPPAlert @CIPPAlert -altEmail $email + + # Send webhook alert if configured + $WebhookData = @{ + Title = $GenerateEmail.title + ActionUrl = $GenerateEmail.ButtonUrl + ActionText = $GenerateEmail.ButtonText + AlertData = $Data + Tenant = $Item.Tenant + } | ConvertTo-Json -Depth 5 -Compress + $CippAlert = @{ + Type = 'webhook' + Title = $GenerateEmail.title + JSONContent = $WebhookData + TenantFilter = $Item.Tenant + } + Write-Information "Sending webhook alert for tenant $($Item.Tenant)" + Send-CIPPAlert @CippAlert -altWebhook $webhook + + # Send PSA alert + $CIPPAlert = @{ + Type = 'psa' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $Item.Tenant + } + Send-CIPPAlert @CIPPAlert + } else { + Write-Information "All notifications disabled for tenant $($Item.Tenant)" + } + return $true + } else { + Write-LogMessage -API 'DriftStandards' -tenant $Item.Tenant -message "No new drift deviations found for tenant $($Item.Tenant)" -sev Info + return $true + } + Write-Information "Drift management completed for tenant $($Item.Tenant)" + } catch { + Write-LogMessage -API 'DriftStandards' -tenant $Item.Tenant -message "Error running Drift Check for tenant $($Item.Tenant) - $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + Write-Warning "Error running drift standards for tenant $($Item.Tenant) - $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + throw $_.Exception.Message + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 new file mode 100644 index 000000000000..996c224490d9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 @@ -0,0 +1,133 @@ +function Push-CIPPStandard { + <# + .FUNCTIONALITY + Entrypoint + #> + param ( + $Item + ) + + Write-Information "Received queue item for $($Item.Tenant) and standard $($Item.Standard)." + + $Tenant = $Item.Tenant + $Standard = $Item.Standard + $FunctionName = 'Invoke-CIPPStandard{0}' -f $Standard + + Write-Information "We'll be running $FunctionName" + + if ($Standard -in @('IntuneTemplate', 'ConditionalAccessTemplate')) { + $API = "$($Standard)_$($Item.TemplateId)_$($Item.Settings.TemplateList.value)" + } else { + $API = "$($Standard)_$($Item.TemplateId)" + } + + $Rerun = Test-CIPPRerun -Type Standard -Tenant $Tenant -API $API + if ($Rerun) { + Write-Information 'Detected rerun. Exiting cleanly' + exit 0 + } else { + Write-Information "Rerun is set to false. We'll be running $FunctionName" + } + + $StandardInfo = @{ + Standard = $Standard + StandardTemplateId = $Item.TemplateId + } + if ($Standard -eq 'IntuneTemplate') { + $StandardInfo.IntuneTemplateId = $Item.Settings.TemplateList.value + } + if ($Standard -eq 'ConditionalAccessTemplate') { + $StandardInfo.ConditionalAccessTemplateId = $Item.Settings.TemplateList.value + } + + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippStandardInfoStorage) { + $script:CippStandardInfoStorage = [System.Threading.AsyncLocal[object]]::new() + } + $script:CippStandardInfoStorage.Value = $StandardInfo + + # ---- Standard execution telemetry ---- + $runId = [guid]::NewGuid().ToString() + $invocationId = if ($ExecutionContext -and $ExecutionContext.InvocationId) { + "$($ExecutionContext.InvocationId)" + } else { + $null + } + + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $result = 'Unknown' + $err = $null + + Write-Information -Tag 'CIPPStandardStart' -MessageData (@{ + Kind = 'CIPPStandardStart' + RunId = $runId + InvocationId = $invocationId + Tenant = $Tenant + Standard = $Standard + TemplateId = $Item.TemplateId + API = $API + FunctionName = $FunctionName + } | ConvertTo-Json -Compress) + # ------------------------------------- + + try { + # Convert settings to JSON, replace %variables%, then convert back to object + $SettingsJSON = $Item.Settings | ConvertTo-Json -Depth 10 -Compress + if ($SettingsJSON -match '%') { + $Settings = Get-CIPPTextReplacement -TenantFilter $Item.Tenant -Text $SettingsJSON | ConvertFrom-Json + } else { + $Settings = $Item.Settings + } + + # Prepare telemetry metadata for standard execution + $metadata = @{ + Standard = $Standard + Tenant = $Tenant + TemplateId = $Item.TemplateId + FunctionName = $FunctionName + TriggerType = 'Standard' + } + + if ($Standard -eq 'IntuneTemplate' -and $Item.Settings.TemplateList.value) { + $metadata['IntuneTemplateId'] = $Item.Settings.TemplateList.value + } + if ($Standard -eq 'ConditionalAccessTemplate' -and $Item.Settings.TemplateList.value) { + $metadata['CATemplateId'] = $Item.Settings.TemplateList.value + } + + Measure-CippTask -TaskName $Standard -EventName 'CIPP.StandardCompleted' -Metadata $metadata -Script { + & $FunctionName -Tenant $Item.Tenant -Settings $Settings -ErrorAction Stop + } + + $result = 'Success' + Write-Information "Standard $($Standard) completed for tenant $($Tenant)" + } catch { + $result = 'Failed' + $err = $_.Exception.Message + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + Write-Warning "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + throw $_.Exception.Message + } finally { + $sw.Stop() + + Write-Information -Tag 'CIPPStandardEnd' -MessageData (@{ + Kind = 'CIPPStandardEnd' + RunId = $runId + InvocationId = $invocationId + Tenant = $Tenant + Standard = $Standard + TemplateId = $Item.TemplateId + API = $API + FunctionName = $FunctionName + Result = $result + ElapsedMs = $sw.ElapsedMilliseconds + Error = $err + } | ConvertTo-Json -Compress) + + if ($script:CippStandardInfoStorage) { + $script:CippStandardInfoStorage.Value = $null + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 new file mode 100644 index 000000000000..da334d1686a2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 @@ -0,0 +1,41 @@ +function Push-CIPPStandardsApplyBatch { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + try { + # Aggregate all standards from all tenants + $AllStandards = $Item.Results | ForEach-Object { + foreach ($Standard in $_) { + if ($Standard -and $Standard.FunctionName -eq 'CIPPStandard') { + $Standard + } + } + } + + if ($AllStandards.Count -eq 0) { + Write-Information 'No standards to apply across all tenants' + return + } + + Write-Information "Aggregated $($AllStandards.Count) standards from all tenants: $($AllStandards | ConvertTo-Json -Depth 5 -Compress)" + + # Start orchestrator to apply standards + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'StandardsApply' + Batch = @($AllStandards) + SkipLog = $true + } | ConvertTo-Json -Depth 25 -Compress + Write-Host "Standards InputObject: $InputObject" + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject $InputObject + Write-Information "Started standards apply orchestrator with ID = '$InstanceId'" + + } catch { + Write-Warning "Error in standards apply batch aggregation: $($_.Exception.Message)" + } + return @{ + Success = $true + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 new file mode 100644 index 000000000000..9cd477e3b68a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsList.ps1 @@ -0,0 +1,200 @@ +function Push-CIPPStandardsList { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $TenantFilter = $Item.TenantFilter + $runManually = $Item.runManually + $TemplateId = $Item.TemplateId + + try { + # Get standards for this tenant + $GetStandardParams = @{ + TenantFilter = $TenantFilter + runManually = $runManually + } + if ($TemplateId) { + $GetStandardParams['TemplateId'] = $TemplateId + } + + $AllStandards = Get-CIPPStandards @GetStandardParams + + if ($AllStandards.Count -eq 0) { + Write-Information "No standards found for tenant $TenantFilter" + return @() + } + Write-Host "Retrieved $($AllStandards.Count) standards for tenant $TenantFilter before filtering." + # Build hashtable for efficient lookup + $ComputedStandards = @{} + foreach ($Standard in $AllStandards) { + $Key = "$($Standard.Standard)|$($Standard.Settings.TemplateList.value)" + $ComputedStandards[$Key] = $Standard + } + + # Check if IntuneTemplate standards are present + $IntuneTemplateFound = ($ComputedStandards.Keys.Where({ $_ -like '*IntuneTemplate*' }, 'First').Count -gt 0) + + if ($IntuneTemplateFound) { + # Perform license check + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if (-not $TestResult) { + # Remove IntuneTemplate standards and set compare fields + $IntuneKeys = @($ComputedStandards.Keys | Where-Object { $_ -like '*IntuneTemplate*' }) + $BulkFields = [System.Collections.Generic.List[object]]::new() + + foreach ($Key in $IntuneKeys) { + $TemplateKey = ($Key -split '\|', 2)[1] + if ($TemplateKey) { + $BulkFields.Add([PSCustomObject]@{ + FieldName = "standards.IntuneTemplate.$TemplateKey" + FieldValue = 'This tenant does not have the required license for this standard.' + }) + } + [void]$ComputedStandards.Remove($Key) + } + + if ($BulkFields.Count -gt 0) { + Set-CIPPStandardsCompareField -TenantFilter $TenantFilter -BulkFields $BulkFields + } + + Write-Information "Removed IntuneTemplate standards for $TenantFilter - missing required license" + } else { + # License valid - check policy timestamps to filter unchanged templates + $TypeMap = @{ + Device = 'deviceManagement/deviceConfigurations' + Catalog = 'deviceManagement/configurationPolicies' + Admin = 'deviceManagement/groupPolicyConfigurations' + deviceCompliancePolicies = 'deviceManagement/deviceCompliancePolicies' + AppProtection_Android = 'deviceAppManagement/androidManagedAppProtections' + AppProtection_iOS = 'deviceAppManagement/iosManagedAppProtections' + } + + $BulkRequests = $TypeMap.GetEnumerator() | ForEach-Object { + @{ + id = $_.Key + url = "$($_.Value)?`$orderby=lastModifiedDateTime desc&`$select=id,lastModifiedDateTime&`$top=999" + method = 'GET' + } + } + + try { + $TrackingTable = Get-CippTable -tablename 'IntunePolicyTypeTracking' + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter -NoPaginateIds @($BulkRequests.id) + $PolicyTimestamps = @{} + + foreach ($Result in $BulkResults) { + $GraphTime = $Result.body.value[0].lastModifiedDateTime + $GraphId = $Result.body.value[0].id + $GraphCount = ($Result.body.value | Measure-Object).Count + $Cached = Get-CIPPAzDataTableEntity @TrackingTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($Result.id)'" + + $CountChanged = $false + if ($Cached -and $Cached.PolicyCount -ne $null) { + $CountChanged = ($GraphCount -ne $Cached.PolicyCount) + } + + $IdChanged = $false + if ($GraphId -and $Cached -and $Cached.LatestPolicyId) { + $IdChanged = ($GraphId -ne $Cached.LatestPolicyId) + } + + if ($GraphTime) { + $GraphTimeUtc = ([DateTime]$GraphTime).ToUniversalTime() + if ($Cached -and $Cached.LatestPolicyModified -and -not $IdChanged -and -not $CountChanged) { + $CachedTimeUtc = ([DateTimeOffset]$Cached.LatestPolicyModified).UtcDateTime + $TimeDiff = [Math]::Abs(($GraphTimeUtc - $CachedTimeUtc).TotalSeconds) + $Changed = ($TimeDiff -gt 60) + } else { + $Changed = $true + } + Add-CIPPAzDataTableEntity @TrackingTable -Entity @{ + PartitionKey = $TenantFilter + RowKey = $Result.id + LatestPolicyModified = $GraphTime + LatestPolicyId = $GraphId + PolicyCount = $GraphCount + } -Force | Out-Null + } else { + $Changed = $true + } + + $PolicyTimestamps[$Result.id] = $Changed + } + + # Filter unchanged templates + $TemplateTable = Get-CippTable -tablename 'templates' + $StandardTemplateTable = Get-CippTable -tablename 'templates' + $IntuneKeys = @($ComputedStandards.Keys | Where-Object { $_ -like '*IntuneTemplate*' }) + + foreach ($Key in $IntuneKeys) { + $Template = $ComputedStandards[$Key] + $TemplateEntity = Get-CIPPAzDataTableEntity @TemplateTable -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$($Template.Settings.TemplateList.value)'" + + if (-not $TemplateEntity) { continue } + + $ParsedTemplate = $TemplateEntity.JSON | ConvertFrom-Json + if (-not $ParsedTemplate.Type) { continue } + + $PolicyType = $ParsedTemplate.Type + $PolicyChanged = if ($PolicyType -eq 'AppProtection') { + [bool]($PolicyTimestamps['AppProtection_Android'] -or $PolicyTimestamps['AppProtection_iOS']) + } else { + [bool]$PolicyTimestamps[$PolicyType] + } + + # Check StandardTemplate changes + $StandardTemplate = Get-CIPPAzDataTableEntity @StandardTemplateTable -Filter "PartitionKey eq 'StandardsTemplateV2' and RowKey eq '$($Template.TemplateId)'" + $StandardTemplateChanged = $false + + if ($StandardTemplate) { + $StandardTimeUtc = ([DateTimeOffset]$StandardTemplate.Timestamp).UtcDateTime + $CachedStandardTemplate = Get-CIPPAzDataTableEntity @TrackingTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq 'StandardTemplate_$($Template.TemplateId)'" + + if ($CachedStandardTemplate -and $CachedStandardTemplate.CachedTimestamp) { + $CachedStandardTimeUtc = ([DateTimeOffset]$CachedStandardTemplate.CachedTimestamp).UtcDateTime + $TimeDiff = [Math]::Abs(($StandardTimeUtc - $CachedStandardTimeUtc).TotalSeconds) + $StandardTemplateChanged = ($TimeDiff -gt 60) + } else { + $StandardTemplateChanged = $true + } + + Add-CIPPAzDataTableEntity @TrackingTable -Entity @{ + PartitionKey = $TenantFilter + RowKey = "StandardTemplate_$($Template.TemplateId)" + CachedTimestamp = $StandardTemplate.Timestamp + } -Force | Out-Null + } + + # Remove if both unchanged + if (-not $PolicyChanged -and -not $StandardTemplateChanged) { +x [void]$ComputedStandards.Remove($Key) + } + } + } catch { + Write-Warning "Timestamp check failed for $TenantFilter : $($_.Exception.Message)" + } + } + } + + Write-Host "Returning $($ComputedStandards.Count) standards for tenant $TenantFilter after filtering." + # Return filtered standards + $FilteredStandards = $ComputedStandards.Values | ForEach-Object { + [PSCustomObject]@{ + Tenant = $_.Tenant + Standard = $_.Standard + Settings = $_.Settings + TemplateId = $_.TemplateId + FunctionName = 'CIPPStandard' + } + } + Write-Host "Sending back $($FilteredStandards.Count) standards: $($FilteredStandards | ConvertTo-Json -Depth 5 -Compress)" + return $FilteredStandards + + } catch { + Write-Warning "Error listing standards for $TenantFilter : $($_.Exception.Message)" + return @() + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-GetStandards.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-GetStandards.ps1 new file mode 100644 index 000000000000..df57ab77f885 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-GetStandards.ps1 @@ -0,0 +1,28 @@ +function Push-GetStandards { + <# + .FUNCTIONALITY + Entrypoint + #> + Param($Item) + + $Params = $Item.StandardParams | ConvertTo-Json | ConvertFrom-Json -AsHashtable + Write-Host "My params are $($Params | ConvertTo-Json -Depth 5 -Compress)" + try { + $AllTasks = Get-CIPPStandards @Params + Write-Host "AllTasks: $($AllTasks | ConvertTo-Json -Depth 5 -Compress)" + foreach ($task in $AllTasks) { + [PSCustomObject]@{ + Tenant = $task.Tenant + Standard = $task.Standard + Settings = $task.Settings + QueueId = $Item.QueueId + templateId = $task.templateId + QueueName = '{0} - {1}' -f $task.Standard, $Task.Tenant + FunctionName = 'CIPPStandard' + } + } + } catch { + Write-Host "GetStandards Exception $($_.Exception.Message)" + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tenant Groups/Push-UpdateDynamicTenantGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tenant Groups/Push-UpdateDynamicTenantGroup.ps1 new file mode 100644 index 000000000000..4a3af5c2a6bf --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tenant Groups/Push-UpdateDynamicTenantGroup.ps1 @@ -0,0 +1,14 @@ +function Push-UpdateDynamicTenantGroup { + <# + .SYNOPSIS + Push an update to a Dynamic Tenant Group + .FUNCTIONALITY + Entrypoint + #> + + [CmdletBinding()] + param ($Item) + + Write-Information "Pushing update to Dynamic Tenant Group: $($Item.Name) (ID: $($Item.Id))" + Update-CIPPDynamicTenantGroups -GroupId $Item.Id +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPTestsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPTestsRun.ps1 new file mode 100644 index 000000000000..9cc264d9af27 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Invoke-CIPPTestsRun.ps1 @@ -0,0 +1,78 @@ +function Invoke-CIPPTestsRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Tests.Read + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter = 'allTenants' + ) + + Write-Information "Starting tests run for tenant: $TenantFilter" + + try { + $AllTests = Get-Command -Name 'Invoke-CippTest*' -Module CIPPCore | Select-Object -ExpandProperty Name | ForEach-Object { + $_ -replace '^Invoke-CippTest', '' + } + + if ($AllTests.Count -eq 0) { + Write-LogMessage -API 'Tests' -message 'No test functions found.' -sev Error + return + } + + Write-Information "Found $($AllTests.Count) test functions to run" + $AllTenantsList = if ($TenantFilter -eq 'allTenants') { + $DbCounts = Get-CIPPDbItem -CountsOnly -TenantFilter 'allTenants' + $TenantsWithData = $DbCounts | Where-Object { $_.Count -gt 0 } | Select-Object -ExpandProperty PartitionKey -Unique + Write-Information "Found $($TenantsWithData.Count) tenants with data in database" + $TenantsWithData + } else { + $DbCounts = Get-CIPPDbItem -TenantFilter $TenantFilter -CountsOnly + if (($DbCounts | Measure-Object -Property Count -Sum).Sum -gt 0) { + @($TenantFilter) + } else { + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message 'Tenant has no data in database. Skipping tests.' -sev Info + @() + } + } + + if ($AllTenantsList.Count -eq 0) { + Write-LogMessage -API 'Tests' -message 'No tenants with data found. Exiting.' -sev Info + return + } + + # Build batch: all tests for all tenants + $Batch = foreach ($Tenant in $AllTenantsList) { + foreach ($Test in $AllTests) { + @{ + FunctionName = 'CIPPTest' + TenantFilter = $Tenant + TestId = $Test + } + } + } + + Write-Information "Built batch of $($Batch.Count) test activities ($($AllTests.Count) tests × $($AllTenantsList.Count) tenants)" + + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TestsRun' + Batch = @($Batch) + SkipLog = $true + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started tests orchestration with ID = '$InstanceId'" + + return @{ + InstanceId = $InstanceId + Message = "Tests orchestration started: $($AllTests.Count) tests for $($AllTenantsList.Count) tenants" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -message "Failed to start tests orchestration: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + throw $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 new file mode 100644 index 000000000000..7492a7c15abc --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTest.ps1 @@ -0,0 +1,30 @@ +function Push-CIPPTest { + <# + .FUNCTIONALITY + Entrypoint + #> + param( + $Item + ) + + $TenantFilter = $Item.TenantFilter + $TestId = $Item.TestId + + Write-Information "Running test $TestId for tenant $TenantFilter" + + try { + $FunctionName = "Invoke-CippTest$TestId" + + if (-not (Get-Command $FunctionName -ErrorAction SilentlyContinue)) { + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Test function not found: $FunctionName" -sev Error + return + } + + Write-Information "Executing $FunctionName for $TenantFilter" + & $FunctionName -Tenant $TenantFilter + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Failed to run test $TestId $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 new file mode 100644 index 000000000000..7bea0f014457 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsRun.ps1 @@ -0,0 +1,36 @@ +function Push-CIPPTestsRun { + <# + .SYNOPSIS + PostExecution function to run tests after data collection completes + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + try { + $TenantFilter = $Item.Parameters.TenantFilter + Write-Information "PostExecution: Starting tests for tenant: $TenantFilter after data collection completed" + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message 'Starting test run after data collection' -sev Info + + # Call the test run function + $Result = Invoke-CIPPTestsRun -TenantFilter $TenantFilter + + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Test run started. Instance ID: $($Result.InstanceId)" -sev Info + Write-Information "PostExecution: Tests started with Instance ID: $($Result.InstanceId)" + + return @{ + Success = $true + InstanceId = $Result.InstanceId + Message = $Result.Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $TenantFilter -message "Failed to start test run: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Write-Warning "PostExecution: Error starting tests - $($ErrorMessage.NormalizedError)" + + return @{ + Success = $false + Error = $ErrorMessage.NormalizedError + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 new file mode 100644 index 000000000000..03f139511f6d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogSearchCreation.ps1 @@ -0,0 +1,72 @@ +function Push-AuditLogSearchCreation { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param($Item) + + # Get params from batch item + $Tenant = $Item.Tenant + $StartTime = $Item.StartTime + $EndTime = $Item.EndTime + $ServiceFilters = @($Item.ServiceFilters) + + try { + $LogSearch = @{ + StartTime = $StartTime + EndTime = $EndTime + ServiceFilters = $ServiceFilters + TenantFilter = $Tenant.defaultDomainName + ProcessLogs = $true + RecordTypeFilters = @( + 'exchangeAdmin', 'azureActiveDirectory', 'azureActiveDirectoryAccountLogon', 'dataCenterSecurityCmdlet', + 'complianceDLPSharePoint', 'complianceDLPExchange', 'azureActiveDirectoryStsLogon', 'skypeForBusinessPSTNUsage', + 'skypeForBusinessUsersBlocked', 'securityComplianceCenterEOPCmdlet', 'microsoftFlow', 'aeD', 'microsoftStream', + 'threatFinder', 'project', 'dataGovernance', 'securityComplianceAlerts', 'threatIntelligenceUrl', + 'securityComplianceInsights', 'mipLabel', 'workplaceAnalytics', 'powerAppsApp', 'powerAppsPlan', + 'threatIntelligenceAtpContent', 'labelContentExplorer', 'hygieneEvent', + 'dataInsightsRestApiAudit', 'informationBarrierPolicyApplication', 'microsoftTeamsAdmin', 'hrSignal', + 'informationWorkerProtection', 'campaign', 'dlpEndpoint', 'airInvestigation', 'quarantine', 'microsoftForms', + 'applicationAudit', 'complianceSupervisionExchange', 'customerKeyServiceEncryption', 'officeNative', + 'mipAutoLabelSharePointItem', 'mipAutoLabelSharePointPolicyLocation', 'secureScore', + 'mipAutoLabelExchangeItem', 'cortanaBriefing', 'search', 'wdatpAlerts', 'powerPlatformAdminDlp', + 'powerPlatformAdminEnvironment', 'mdatpAudit', 'sensitivityLabelPolicyMatch', 'sensitivityLabelAction', + 'sensitivityLabeledFileAction', 'attackSim', 'airManualInvestigation', 'securityComplianceRBAC', 'userTraining', + 'airAdminActionInvestigation', 'mstic', 'physicalBadgingSignal', 'aipDiscover', 'aipSensitivityLabelAction', + 'aipProtectionAction', 'aipFileDeleted', 'aipHeartBeat', 'mcasAlerts', 'onPremisesFileShareScannerDlp', + 'onPremisesSharePointScannerDlp', 'exchangeSearch', 'privacyDataMinimization', 'labelAnalyticsAggregate', + 'myAnalyticsSettings', 'securityComplianceUserChange', 'complianceDLPExchangeClassification', + 'complianceDLPEndpoint', 'mipExactDataMatch', 'msdeResponseActions', 'msdeGeneralSettings', 'msdeIndicatorsSettings', + 'ms365DCustomDetection', 'msdeRolesSettings', 'mapgAlerts', 'mapgPolicy', 'mapgRemediation', + 'privacyRemediationAction', 'privacyDigestEmail', 'mipAutoLabelSimulationProgress', 'mipAutoLabelSimulationCompletion', + 'mipAutoLabelProgressFeedback', 'dlpSensitiveInformationType', 'mipAutoLabelSimulationStatistics', + 'largeContentMetadata', 'microsoft365Group', 'cdpMlInferencingResult', 'filteringMailMetadata', + 'cdpClassificationMailItem', 'cdpClassificationDocument', 'officeScriptsRunAction', 'filteringPostMailDeliveryAction', + 'cdpUnifiedFeedback', 'tenantAllowBlockList', 'consumptionResource', 'healthcareSignal', 'dlpImportResult', + 'cdpCompliancePolicyExecution', 'multiStageDisposition', 'privacyDataMatch', 'filteringDocMetadata', + 'filteringEmailFeatures', 'powerBIDlp', 'filteringUrlInfo', 'filteringAttachmentInfo', 'coreReportingSettings', + 'complianceConnector', 'powerPlatformLockboxResourceAccessRequest', 'powerPlatformLockboxResourceCommand', + 'cdpPredictiveCodingLabel', 'cdpCompliancePolicyUserFeedback', 'webpageActivityEndpoint', 'omePortal', + 'cmImprovementActionChange', 'filteringUrlClick', 'mipLabelAnalyticsAuditRecord', 'filteringEntityEvent', + 'filteringRuleHits', 'filteringMailSubmission', 'labelExplorer', 'microsoftManagedServicePlatform', + 'powerPlatformServiceActivity', 'scorePlatformGenericAuditRecord', 'filteringTimeTravelDocMetadata', 'alert', + 'alertStatus', 'alertIncident', 'incidentStatus', 'case', 'caseInvestigation', 'recordsManagement', + 'privacyRemediation', 'dataShareOperation', 'cdpDlpSensitive', 'ehrConnector', 'filteringMailGradingResult', + 'microsoftTodoAudit', 'timeTravelFilteringDocMetadata', 'microsoftDefenderForIdentityAudit', + 'supervisoryReviewDayXInsight', 'defenderExpertsforXDRAdmin', 'cdpEdgeBlockedMessage', 'hostedRpa', + 'cdpContentExplorerAggregateRecord', 'cdpHygieneAttachmentInfo', 'cdpHygieneSummary', 'cdpPostMailDeliveryAction', + 'cdpEmailFeatures', 'cdpHygieneUrlInfo', 'cdpUrlClick', 'cdpPackageManagerHygieneEvent', 'filteringDocScan', + 'timeTravelFilteringDocScan', 'mapgOnboard' + ) + } + if ($PSCmdlet.ShouldProcess('Push-AuditLogSearchCreation', 'Creating Audit Log Search')) { + $NewSearch = New-CippAuditLogSearch @LogSearch + Write-Information "Created audit log search $($Tenant.defaultDomainName) - $($NewSearch.displayName)" + } + } catch { + Write-Information "Error creating audit log search $($Tenant.defaultDomainName) - $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + return $true +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantDownload.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantDownload.ps1 new file mode 100644 index 000000000000..f7171d1cdac2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantDownload.ps1 @@ -0,0 +1,80 @@ +function Push-AuditLogTenantDownload { + param($Item) + $TenantFilter = $Item.TenantFilter + + try { + Write-Information "Audit Logs: Downloading $($TenantFilter)" + # Get CIPP Url, cleanup legacy tasks + $SchedulerConfig = Get-CippTable -TableName 'SchedulerConfig' + $LegacyWebhookTasks = Get-CIPPAzDataTableEntity @SchedulerConfig -Filter "PartitionKey eq 'webhookcreation'" + $LegacyUrl = $LegacyWebhookTasks | Select-Object -First 1 -ExpandProperty CIPPURL + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + if ($LegacyUrl) { + if (!$CippConfig) { + $Entity = @{ + PartitionKey = 'InstanceProperties' + RowKey = 'CIPPURL' + Value = [string]([System.Uri]$LegacyUrl).Host + } + Add-CIPPAzDataTableEntity @CippConfigTable -Entity $Entity -Force + } + # remove legacy webhooks + foreach ($Task in $LegacyWebhookTasks) { + Remove-AzDataTableEntity -Force @SchedulerConfig -Entity $Task + } + $CIPPURL = $LegacyUrl + } else { + if (!$CippConfig) { + $CippConfig = @{ + PartitionKey = 'InstanceProperties' + RowKey = 'CIPPURL' + Value = [string]([System.Uri]$Request.Headers.'x-ms-original-url').Host + } + Add-AzDataTableEntity @CippConfigTable -Entity $CippConfig -Force + $CIPPURL = 'https://{0}' -f $CippConfig.Value + } else { $CIPPURL = 'https://{0}' -f $CippConfig.Value } + } + + $LogSearchesTable = Get-CippTable -TableName 'AuditLogSearches' + + try { + $LogSearches = Get-CippAuditLogSearches -TenantFilter $TenantFilter -ReadyToProcess | Select-Object -First 10 + Write-Information ('Audit Logs: Found {0} searches, begin downloading' -f $LogSearches.Count) + foreach ($Search in $LogSearches) { + $SearchEntity = Get-CIPPAzDataTableEntity @LogSearchesTable -Filter "Tenant eq '$($TenantFilter)' and RowKey eq '$($Search.id)'" + $SearchEntity.CippStatus = 'Processing' + Add-CIPPAzDataTableEntity @LogSearchesTable -Entity $SearchEntity -Force + try { + Write-Information "Audit Log search: Processing search ID: $($Search.id) for tenant: $TenantFilter" + $Downloads = New-CIPPAuditLogSearchResultsCache -TenantFilter $TenantFilter -searchId $Search.id + $SearchEntity.CippStatus = 'Downloaded' + } catch { + if ($_.Exception.Message -match 'Request rate is large. More Request Units may be needed, so no changes were made. Please retry this request later.') { + $SearchEntity.CippStatus = 'Pending' + Write-Information "Audit Log search: Rate limit hit for $($SearchEntity.RowKey)." + if ($SearchEntity.PSObject.Properties.Name -contains 'RetryCount') { + $SearchEntity.RetryCount++ + } else { + $SearchEntity | Add-Member -MemberType NoteProperty -Name RetryCount -Value 1 + } + } else { + $Exception = [string](ConvertTo-Json -Compress -InputObject (Get-CippException -Exception $_)) + $SearchEntity | Add-Member -MemberType NoteProperty -Name Error -Value $Exception + $SearchEntity.CippStatus = 'Failed' + Write-Information "Error processing audit log rules: $($_.Exception.Message)" + } + + } + Add-CIPPAzDataTableEntity @LogSearchesTable -Entity $SearchEntity -Force + } + } catch { + Write-Information ('Audit Log search: Error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + exit 0 + } + + } catch { + Write-Information ('Push-AuditLogTenant: Error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + exit 0 + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantProcess.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantProcess.ps1 new file mode 100644 index 000000000000..f52eef63271f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-AuditLogTenantProcess.ps1 @@ -0,0 +1,32 @@ +function Push-AuditLogTenantProcess { + param($Item) + $TenantFilter = $Item.TenantFilter + $RowIds = $Item.RowIds + + try { + Write-Information "Audit Logs: Processing $($TenantFilter) with $($RowIds.Count) row IDs. We're processing id $($RowIds[0]) to $($RowIds[-1])" + + # Get the CacheWebhooks table + $CacheWebhooksTable = Get-CippTable -TableName 'CacheWebhooks' + # we do it this way because the rows can grow extremely large, if we get them all it might just hang for minutes at a time. + $Rows = foreach ($RowId in $RowIds) { + $CacheEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$RowId'" + if ($CacheEntity) { + $AuditData = $CacheEntity.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + $AuditData + } + } + + if ($Rows.Count -gt 0) { + Write-Information "Retrieved $($Rows.Count) rows from cache for processing" + Test-CIPPAuditLogRules -TenantFilter $TenantFilter -Rows $Rows + return $true + } else { + Write-Information 'No rows found in cache for the provided row IDs' + return $false + } + } catch { + Write-Information ('Push-AuditLogTenant: Error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + return $false + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-PublicWebhookProcess.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-PublicWebhookProcess.ps1 new file mode 100644 index 000000000000..0cdc860b7e48 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-PublicWebhookProcess.ps1 @@ -0,0 +1,24 @@ +function Push-PublicWebhookProcess { + <# + .FUNCTIONALITY + Entrypoint + #> + param($Item) + + $Table = Get-CIPPTable -TableName WebhookIncoming + $Webhook = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Item.RowKey)'" + try { + if ($Webhook.Type -eq 'GraphSubscription') { + Invoke-CippGraphWebhookProcessing -Data ($Webhook.Data | ConvertFrom-Json) -CIPPID $Webhook.CIPPID -WebhookInfo ($Webhook.Webhookinfo | ConvertFrom-Json) + } elseif ($Webhook.Type -eq 'AuditLog') { + Invoke-CippWebhookProcessing -TenantFilter $Webhook.TenantFilter -Data ($Webhook.Data | ConvertFrom-Json) -CIPPURL $Webhook.CIPPURL + } elseif ($Webhook.Type -eq 'PartnerCenter') { + Invoke-CippPartnerWebhookProcessing -Data ($Webhook.Data | ConvertFrom-Json) + } + } catch { + Write-Host "Webhook Exception: $($_.Exception.Message)" + } finally { + $Entity = $Webhook | Select-Object -Property RowKey, PartitionKey + Remove-AzDataTableEntity -Force @Table -Entity $Entity + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-Schedulerwebhookcreation.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-Schedulerwebhookcreation.ps1 new file mode 100644 index 000000000000..de538961a47a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Webhooks/Push-Schedulerwebhookcreation.ps1 @@ -0,0 +1,47 @@ +function Push-Schedulerwebhookcreation { + <# + .FUNCTIONALITY + Entrypoint + #> + param ( + $item + ) + <#$Table = Get-CIPPTable -TableName 'SchedulerConfig' + $WebhookTable = Get-CIPPTable -TableName 'webhookTable' + $Tenant = $Item.Tenant + $Row = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($item.SchedulerRow)'" + if (!$Row) { + Write-Information "No row found for $($item.SchedulerRow). Full received item was $($item | ConvertTo-Json)" + return + } else { + Write-Information "Working on $Tenant - $($Item.Tenantid)" + #use the queueitem to see if we already have a webhook for this tenant + webhooktype. If we do, delete this row from SchedulerConfig. + $Webhook = Get-CIPPAzDataTableEntity @WebhookTable -Filter "PartitionKey eq '$Tenant' and Version eq '3' and Resource eq '$($Row.webhookType)'" + if ($Webhook) { + Write-Information "Found existing webhook for $Tenant - $($Row.webhookType)" + if ($Row.tenantid -ne 'AllTenants') { + Remove-AzDataTableEntity -Force @Table -Entity $Row + } + if (($Webhook | Measure-Object).Count -gt 1) { + $Webhook = $Webhook | Select-Object -First 1 + $WebhooksToRemove = $ExistingWebhooks | Where-Object { $_.RowKey -ne $Webhook.RowKey } + foreach ($RemoveWebhook in $WebhooksToRemove) { + Remove-AzDataTableEntity -Force @WebhookTable -Entity $RemoveWebhook + } + } + } else { + Write-Information "No existing webhook for $Tenant - $($Row.webhookType) - Time to create." + try { + $NewSub = New-CIPPGraphSubscription -TenantFilter $Tenant -EventType $Row.webhookType -auditLogAPI $true + if ($NewSub.Success -and $Row.tenantid -ne 'AllTenants') { + Remove-AzDataTableEntity -Force @Table -Entity $Row + } else { + Write-Information "Failed to create webhook for $Tenant - $($Row.webhookType) - $($_.Exception.Message)" + } + } catch { + Write-Information "Failed to create webhook for $Tenant - $($Row.webhookType): $($_.Exception.Message)" + } + } + }#> + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAddAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAddAlert.ps1 new file mode 100644 index 000000000000..10d24e146044 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAddAlert.ps1 @@ -0,0 +1,73 @@ +function Invoke-ExecAddAlert { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + $Severity = 'Alert' + + $Result = if ($Request.Body.sendEmailNow -or $Request.Body.sendWebhookNow -eq $true -or $Request.Body.writeLog -eq $true -or $Request.Body.sendPsaNow -eq $true) { + $sev = ([pscustomobject]$Request.body.Severity).value -join (',') + if ($Request.body.email -or $Request.body.webhook) { + Write-Host 'found config, setting' + $config = @{ + email = $Request.body.email + webhook = $Request.body.webhook + onepertenant = $Request.body.onePerTenant + logsToInclude = $Request.body.logsToInclude + sendtoIntegration = $true + sev = $sev + } + Write-Host "setting notification config to $($config | ConvertTo-Json)" + $Results = Set-cippNotificationConfig @Config + Write-Host $Results + } + $Title = 'CIPP Notification Test' + if ($Request.Body.sendEmailNow -eq $true) { + $CIPPAlert = @{ + Type = 'email' + Title = $Title + HTMLContent = $Request.Body.text + } + Send-CIPPAlert @CIPPAlert + } + if ($Request.Body.sendWebhookNow -eq $true) { + $JSONContent = @{ + Title = $Title + Text = $Request.Body.text + } | ConvertTo-Json -Compress + $CIPPAlert = @{ + Type = 'webhook' + Title = $Title + JSONContent = $JSONContent + } + Send-CIPPAlert @CIPPAlert + } + if ($Request.Body.sendPsaNow -eq $true) { + $CIPPAlert = @{ + Type = 'psa' + Title = $Title + HTMLContent = $Request.Body.text + } + Send-CIPPAlert @CIPPAlert + } + + if ($Request.Body.writeLog -eq $true) { + Write-LogMessage -headers $Headers -API 'Alerts' -message $Request.Body.text -Sev $Severity + 'Successfully generated alert.' + } + } else { + Write-LogMessage -headers $Headers -API 'Alerts' -message $Request.Body.text -Sev $Severity + 'Successfully generated alert.' + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Result + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 new file mode 100644 index 000000000000..298d948ba283 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAppInsightsQuery.ps1 @@ -0,0 +1,50 @@ +function Invoke-ExecAppInsightsQuery { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.Read + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + $Query = $Request.Body.query ?? $Request.Query.query + if (-not $Query) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'No query provided in request body.' + } + } + } + + try { + $LogData = Get-ApplicationInsightsQuery -Query $Query + + $Body = ConvertTo-Json -Depth 10 -Compress -InputObject @{ + Results = @($LogData) + Metadata = @{ + Query = $Query + } + } + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + } + + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Results = "$($_.Exception.Message)" + Metadata = @{ + Query = $Query + Exception = Get-CippException -Exception $_ + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAzBobbyTables.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAzBobbyTables.ps1 new file mode 100644 index 000000000000..c9e1da70bc2a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecAzBobbyTables.ps1 @@ -0,0 +1,59 @@ + +function Invoke-ExecAzBobbyTables { + <# + .SYNOPSIS + Execute a AzBobbyTables function + .DESCRIPTION + This function is used to interact with Azure Tables. This is advanced functionality used for external integrations or SuperAdmin functionality. + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $AllowList = @( + 'Add-AzDataTableEntity' + 'Add-CIPPAzDataTableEntity' + 'Update-AzDataTableEntity' + 'Get-AzDataTableEntity' + 'Get-CIPPAzDataTableEntity' + 'Get-AzDataTable' + 'New-AzDataTable' + 'Remove-AzDataTableEntity' + 'Remove-AzDataTable' + ) + + $Function = $Request.Body.FunctionName + $Params = if ($Request.Body.Parameters) { + $Request.Body.Parameters | ConvertTo-Json -Compress -ErrorAction Stop | ConvertFrom-Json -AsHashtable + } else { + @{} + } + + if ($Function -in $AllowList) { + if ($Function -eq 'Get-AzDataTable') { + $Context = New-AzDataTableContext -ConnectionString $env:AzureWebJobsStorage + } else { + $Context = New-AzDataTableContext -ConnectionString $env:AzureWebJobsStorage -TableName $Request.Body.TableName + } + try { + $Results = & $Function -Context $Context @Params + if (!$Results) { + $Results = "Function $Function executed successfully" + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + } else { + $Results = "Function $Function not found or not allowed" + $StatusCode = [HttpStatusCode]::NotFound + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCPVRefresh.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCPVRefresh.ps1 new file mode 100644 index 000000000000..5459d1fab375 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCPVRefresh.ps1 @@ -0,0 +1,23 @@ +function Invoke-ExecCPVRefresh { + <# + .SYNOPSIS + This endpoint is used to trigger a refresh of CPV for all tenants + + .FUNCTIONALITY + Entrypoint + + .ROLE + CIPP.Core.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $InstanceId = Start-UpdatePermissionsOrchestrator + + return @{ + StatusCode = [System.Net.HttpStatusCode]::OK + Body = @{ + Results = 'CPV Refresh has been triggered' + InstanceId = $InstanceId + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 new file mode 100644 index 000000000000..222e7abed29d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 @@ -0,0 +1,47 @@ +function Invoke-ExecCippFunction { + <# + .SYNOPSIS + Execute a CIPPCore function + .DESCRIPTION + This function is used to execute a CIPPCore function from an HTTP request. This is advanced functionality used for external integrations or SuperAdmin functionality. + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $BlockList = @( + 'Get-GraphToken' + 'Get-GraphTokenFromCert' + 'Get-ClassicAPIToken' + ) + + $Function = $Request.Body.FunctionName + $Params = if ($Request.Body.Parameters) { + $Request.Body.Parameters | ConvertTo-Json -Compress -ErrorAction Stop | ConvertFrom-Json -AsHashtable + } else { + @{} + } + + if (Get-Command -Module CIPPCore -Name $Function -and $BlockList -notcontains $Function) { + try { + $Results = & $Function @Params + if (!$Results) { + $Results = "Function $Function executed successfully" + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + } else { + $Results = "Function $Function not found or not allowed" + $StatusCode = [HttpStatusCode]::NotFound + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 new file mode 100644 index 000000000000..2db5725ce7b6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 @@ -0,0 +1,63 @@ +function Invoke-ExecCloneTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.ReadWrite + #> + param( + $Request, + $TriggerMetadata + ) + + $GUID = $Request.Query.GUID ?? $Request.Body.GUID + $Type = $Request.Query.Type ?? $Request.Body.Type + + if ($GUID -and $Type) { + $Table = Get-CIPPTable -tablename templates + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$Type' and RowKey eq '$GUID'" + + if ($Template) { + $NewGuid = [guid]::NewGuid().ToString() + $Template.RowKey = $NewGuid + $Template.JSON = $Template.JSON -replace $GUID, $NewGuid + $Template.Package = $null + $Template.SHA = $null + try { + Add-CIPPAzDataTableEntity @Table -Entity $Template + $body = @{ + Results = @{ + state = 'success' + resultText = 'Template cloned successfully' + } + } + } catch { + $body = @{ + Results = @{ + state = 'error' + resultText = 'Failed to clone template' + details = Get-CIPPException -Exception $_ + } + } + } + } else { + $body = @{ + Results = @{ + state = 'error' + resultText = 'Template not found' + } + } + } + } else { + $body = @{ + Results = @{ + state = 'error' + resultText = 'GUID or Type not provided' + } + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 new file mode 100644 index 000000000000..9cab483eba99 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDiagnosticsPresets.ps1 @@ -0,0 +1,89 @@ +function Invoke-ExecDiagnosticsPresets { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + try { + $Table = Get-CIPPTable -TableName 'DiagnosticsPresets' + $Action = $Request.Body.action + $GUID = $Request.Body.GUID + + if ($Action -eq 'delete') { + if (-not $GUID) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'GUID is required for delete action' + } + } + } + + Remove-AzDataTableEntity @Table -Entity @{ + PartitionKey = 'Preset' + RowKey = $GUID + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = 'Preset deleted successfully' + } + } + } else { + # Save or update preset + $Name = $Request.Body.name + $Query = $Request.Body.query + + if (-not $Name -or -not $Query) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + Results = 'Name and query are required' + } + } + } + + # Use provided GUID or generate new one + if (-not $GUID) { + $GUID = (New-Guid).Guid + } + + # Convert query to compressed JSON for storage + $QueryJson = ConvertTo-Json -InputObject @{ query = $Query } -Compress + + $Entity = @{ + PartitionKey = 'Preset' + RowKey = [string]$GUID + name = [string]$Name + data = [string]$QueryJson + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = 'Preset saved successfully' + Metadata = @{ + GUID = $GUID + } + } + } + } + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = "Failed to manage diagnostics preset: $($_.Exception.Message)" + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDurableFunctions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDurableFunctions.ps1 new file mode 100644 index 000000000000..c46814ae598e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecDurableFunctions.ps1 @@ -0,0 +1,172 @@ +function Invoke-ExecDurableFunctions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param($Request, $TriggerMetadata) + # Collect info + $StorageContext = New-AzStorageContext -ConnectionString $env:AzureWebJobsStorage + $FunctionName = $env:WEBSITE_SITE_NAME + + # Get orchestrators + $InstancesTable = Get-CippTable -TableName ('{0}Instances' -f $FunctionName) + $Yesterday = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $Filter = "CreatedTime ge datetime'$Yesterday' or RuntimeStatus eq 'Pending' or RuntimeStatus eq 'Running'" + $Instances = Get-CippAzDataTableEntity @InstancesTable -Filter $Filter + + switch ($Request.Query.Action) { + 'ListOrchestrators' { + $Orchestrators = foreach ($Instance in $Instances) { + $Json = $Instance.Input -replace '^"(.+)"$', '$1' -replace '\\"', '"' + + if ($Json -notmatch '^http' -and ![string]::IsNullOrEmpty($Json)) { + if (Test-Json -Json $Json -ErrorAction SilentlyContinue) { + $Instance.Input = $Json | ConvertFrom-Json + if (![string]::IsNullOrEmpty($Instance.Input.OrchestratorName)) { + $Instance.Name = $Instance.Input.OrchestratorName + } + } else { + #Write-Host $Instance.Input + if ($Json -match '\"OrchestratorName\":\"(.+?)\"') { + $Instance.Name = $Matches[1] + } + $Instance.Input = 'Invalid JSON' + } + } + $Instance + } + + $Body = [PSCustomObject]@{ + Orchestrators = @($Orchestrators) + } + } + 'ListOrchestratorHistory' { + if ($Request.Query.PartitionKey) { + $HistoryTable = Get-CippTable -TableName ('{0}History' -f $FunctionName) + $Filter = "PartitionKey eq '{0}'" -f $Request.Query.PartitionKey + $History = Get-CippAzDataTableEntity @HistoryTable -Filter $Filter -Property PartitionKey, RowKey, Timestamp, EventType, Name, IsPlayed, OrchestrationStatus | Select-Object * -ExcludeProperty ETag + + $Body = [PSCustomObject]@{ + Results = @($History) + } + } else { + $Body = [PSCustomObject]@{ + Results = @('PartitionKey is required') + } + } + } + 'ListStats' { + $OrchestratorsByStatus = $Instances | Group-Object -Property RuntimeStatus + + if ($OrchestratorsByStatus.Name -contains 'Pending') { + $PendingOrchestrators = $OrchestratorsByStatus | Where-Object -Property Name -EQ 'Pending' | Select-Object -ExpandProperty Group + $Pending30MinCount = $PendingOrchestrators | Where-Object { $_.CreatedTime -lt (Get-Date).AddMinutes(-30).ToUniversalTime() } | Measure-Object | Select-Object -ExpandProperty Count + } + + $Queues = Get-AzStorageQueue -Context $StorageContext -Name ('{0}*' -f $FunctionName) | Select-Object -Property Name, ApproximateMessageCount + + $Body = [PSCustomObject]@{ + Orchestrators = @($OrchestratorsByStatus | Select-Object Count, Name) + Pending30MinCount = $Pending30MinCount ?? 0 + Queues = @($Queues) + } + } + 'ResetDurables' { + try { + $Queues = Get-AzStorageQueue -Context $StorageContext -Name ('{0}*' -f $FunctionName) | Select-Object -Property Name, ApproximateMessageCount, QueueClient + + $RunningQueues = $Queues | Where-Object { $_.ApproximateMessageCount -gt 0 } + foreach ($Queue in $RunningQueues) { + Write-Information "- Removing queue: $($Queue.Name), message count: $($Queue.ApproximateMessageCount)" + if ($PSCmdlet.ShouldProcess($Queue.Name, 'Clear Queue')) { + $Queue.QueueClient.ClearMessagesAsync() + } + } + + $RunningInstances = $Instances | Where-Object { $_.RuntimeStatus -eq 'Running' -or $_.RuntimeStatus -eq 'Pending' } + if (($RunningInstances | Measure-Object).Count -gt 0) { + if ($PSCmdlet.ShouldProcess('Orchestrators', 'Mark Failed')) { + foreach ($Instance in $RunningInstances) { + $Instance.RuntimeStatus = 'Failed' + Update-AzDataTableEntity -Force @InstancesTable -Entity $Instance + } + } + } + + $QueueTable = Get-CippTable -TableName 'CippQueue' + $CippQueue = Invoke-ListCippQueue + $QueueEntities = foreach ($Queue in $CippQueue) { + if ($Queue.Status -eq 'Running') { + $Queue.TotalTasks = $Queue.CompletedTasks + $Queue | Select-Object -Property PartitionKey, RowKey, TotalTasks + } + } + if (($QueueEntities | Measure-Object).Count -gt 0) { + if ($PSCmdlet.ShouldProcess('Queues', 'Mark Failed')) { + Update-AzDataTableEntity -Force @QueueTable -Entity $QueueEntities + } + } + + $CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks' + $RunningTasks = Get-CIPPAzDataTableEntity @CippQueueTasks -Filter "PartitionKey eq 'Task' and Status eq 'Running'" -Property RowKey, PartitionKey, Status + if (($RunningTasks | Measure-Object).Count -gt 0) { + if ($PSCmdlet.ShouldProcess('Tasks', 'Mark Failed')) { + $UpdatedTasks = foreach ($Task in $RunningTasks) { + $Task.Status = 'Failed' + $Task + } + Update-AzDataTableEntity -Force @CippQueueTasks -Entity $UpdatedTasks + } + } + + $Body = [PSCustomObject]@{ + Message = 'Durable Queues reset successfully' + } + + } catch { + $Body = [PSCustomObject]@{ + Message = "Error resetting durables: $($_.Exception.Message)" + Exception = Get-CippException -Exception $_ + } + } + } + 'PurgeOrchestrators' { + $HistoryTable = Get-CippTable -TableName ('{0}History' -f $FunctionName) + if ($Request.Query.PartitionKey) { + $HistoryEntities = Get-CIPPAzDataTableEntity @HistoryTable -Filter "PartitionKey eq '$($Request.Query.PartitionKey)'" -Property RowKey, PartitionKey + if ($HistoryEntities) { + Remove-AzDataTableEntity -Force @HistoryTable -Entity $HistoryEntities + } + $Instance = Get-CIPPAzDataTableEntity @InstancesTable -Filter "PartitionKey eq '$($Request.Query.PartitionKey)'" -Property RowKey, PartitionKey + if ($Instance) { + Remove-AzDataTableEntity -Force @InstancesTable -Entity $Instance + } + $Body = [PSCustomObject]@{ + Results = 'Orchestrator {0} purged successfully' -f $Request.Query.PartitionKey + } + } else { + Remove-AzDataTable @InstancesTable + Remove-AzDataTable @HistoryTable + $BlobContainer = '{0}-largemessages' -f $Function.Name + if (Get-AzStorageContainer -Name $BlobContainer -Context $StorageContext -ErrorAction SilentlyContinue) { + Write-Information "- Removing blob container: $BlobContainer" + if ($PSCmdlet.ShouldProcess($BlobContainer, 'Remove Blob Container')) { + Remove-AzStorageContainer -Name $BlobContainer -Context $StorageContext -Confirm:$false -Force + } + } + $null = Get-CippTable -TableName ('{0}History' -f $FunctionName) + $Body = [PSCustomObject]@{ + Message = 'Orchestrators purged successfully' + } + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 new file mode 100644 index 000000000000..5b47b16aceeb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 @@ -0,0 +1,70 @@ +function Invoke-ExecEditTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + try { + $Table = Get-CippTable -tablename 'templates' + $guid = $request.Body.id ? $request.Body.id : $request.Body.GUID + $JSON = ConvertTo-Json -Compress -Depth 100 -InputObject ($request.Body | Select-Object * -ExcludeProperty GUID) + $Type = $request.Query.Type ?? $Request.Body.Type + + if ($Type -eq 'IntuneTemplate') { + Write-Host 'Intune Template' + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$GUID'" + $OriginalJSON = $Template.JSON + + $TemplateData = $Template.JSON | ConvertFrom-Json + $TemplateType = $TemplateData.Type + + if ($Template.SHA) { + $NewGuid = [guid]::NewGuid().ToString() + } else { + $NewGuid = $GUID + } + if ($Request.Body.parsedRAWJson) { + $RawJSON = ConvertTo-Json -Compress -Depth 100 -InputObject $Request.Body.parsedRAWJson + } else { + $RawJSON = $OriginalJSON + } + + $IntuneTemplate = @{ + GUID = $NewGuid + RawJson = $RawJSON + DisplayName = $Request.Body.displayName + Description = $Request.Body.description + templateType = $TemplateType + Package = $Template.Package + Headers = $Request.Headers + } + Set-CIPPIntuneTemplate @IntuneTemplate + } else { + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = "$Type" + GUID = "$GUID" + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Edited template $($Request.Body.name) with GUID $GUID" -Sev 'Debug' + } + $body = [pscustomobject]@{ 'Results' = 'Successfully saved the template' } + + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Failed to edit template: $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Editing template failed: $($_.Exception.Message)" } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGeoIPLookup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGeoIPLookup.ps1 new file mode 100644 index 000000000000..9af10e0b3e73 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecGeoIPLookup.ps1 @@ -0,0 +1,24 @@ +Function Invoke-ExecGeoIPLookup { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $IP = $Request.Query.IP ?? $Request.Body.IP + + if (-not $IP) { + $ErrorMessage = Get-NormalizedError -Message 'IP address is required' + $LocationInfo = $ErrorMessage + } else { + $locationInfo = Get-CIPPGeoIPLocation -IP $IP + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $LocationInfo + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 new file mode 100644 index 000000000000..0142225044e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 @@ -0,0 +1,58 @@ +function Invoke-ExecListBackup { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Backup.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Type = $Request.Query.Type + $TenantFilter = $Request.Query.tenantFilter + $NameOnly = $Request.Query.NameOnly + $BackupName = $Request.Query.BackupName + + $CippBackupParams = @{} + if ($Type) { $CippBackupParams.Type = $Type } + if ($TenantFilter) { $CippBackupParams.TenantFilter = $TenantFilter } + if ($BackupName) { $CippBackupParams.Name = $BackupName } + + $Result = Get-CIPPBackup @CippBackupParams + + if ($NameOnly) { + $Processed = foreach ($item in $Result) { + $properties = $item.PSObject.Properties | Where-Object { $_.Name -notin @('TenantFilter', 'ETag', 'PartitionKey', 'RowKey', 'Timestamp', 'OriginalEntityId', 'SplitOverProps', 'PartIndex') -and $_.Value } + + if ($Type -eq 'Scheduled') { + [PSCustomObject]@{ + TenantFilter = $item.RowKey -match '^(.*?)_' | ForEach-Object { $matches[1] } + BackupName = $item.RowKey + Timestamp = $item.Timestamp + Items = $properties.Name + } + } else { + # Prefer stored indicator (BackupIsBlob) to avoid reading Backup field + $isBlob = $false + if ($null -ne $item.PSObject.Properties['BackupIsBlob']) { + try { $isBlob = [bool]$item.BackupIsBlob } catch { $isBlob = $false } + } else { + # Fallback heuristic for legacy rows if property missing + if ($null -ne $item.PSObject.Properties['Backup']) { + $b = $item.Backup + if ($b -is [string] -and ($b -like 'https://*' -or $b -like 'http://*')) { $isBlob = $true } + } + } + [PSCustomObject]@{ + BackupName = $item.RowKey + Timestamp = $item.Timestamp + Source = if ($isBlob) { 'blob' } else { 'table' } + } + } + } + $Result = $Processed | Sort-Object Timestamp -Descending + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Result) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 new file mode 100644 index 000000000000..4799774c2025 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecPartnerWebhook.ps1 @@ -0,0 +1,86 @@ +function Invoke-ExecPartnerWebhook { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + param($Request, $TriggerMetadata) + switch ($Request.Query.Action) { + 'ListEventTypes' { + $Uri = 'https://api.partnercenter.microsoft.com/webhooks/v1/registration/events' + $Results = New-GraphGetRequest -uri $Uri -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' + } + 'ListSubscription' { + try { + $Uri = 'https://api.partnercenter.microsoft.com/webhooks/v1/registration' + $Results = New-GraphGetRequest -uri $Uri -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' + + $ConfigTable = Get-CIPPTable -TableName Config + $WebhookConfig = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq 'PartnerWebhookOnboarding'" + if ($WebhookConfig) { + $Results | Add-Member -MemberType NoteProperty -Name 'enabled' -Value ([bool]$WebhookConfig.Enabled) -Force + if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { + $Results | Add-Member -MemberType NoteProperty -Name 'standardsExcludeAllTenants' -Value $true -Force + } + } else { + $Results | Add-Member -MemberType NoteProperty -Name 'enabled' -Value $false -Force + } + } catch {} + if (!$Results) { + $Results = [PSCustomObject]@{ + webhoookUrl = 'None' + lastModifiedTimestamp = 'Never' + webhookEvents = @() + enabled = $false + } + } + } + 'CreateSubscription' { + if ($Request.Body.EventType.value) { + $Request.Body.EventType = $Request.Body.EventType.value + } + + $BaseURL = ([System.Uri]$Request.Headers.'x-ms-original-url').Host + $Webhook = @{ + TenantFilter = $env:TenantID + PartnerCenter = $true + BaseURL = $BaseURL + EventType = $Request.Body.EventType + Headers = $Request.Headers.'x-ms-client-principal' + } + + $Results = New-CIPPGraphSubscription @Webhook + + $ConfigTable = Get-CIPPTable -TableName Config + $PartnerWebhookOnboarding = [PSCustomObject]@{ + PartitionKey = 'Config' + RowKey = 'PartnerWebhookOnboarding' + Enabled = [bool]$Request.Body.enabled + StandardsExcludeAllTenants = $Request.Body.standardsExcludeAllTenants + } + Add-CIPPAzDataTableEntity @ConfigTable -Entity $PartnerWebhookOnboarding -Force | Out-Null + } + 'SendTest' { + $Results = New-GraphPOSTRequest -uri 'https://api.partnercenter.microsoft.com/webhooks/v1/registration/validationEvents' -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' + } + 'ValidateTest' { + $Results = New-GraphGetRequest -uri "https://api.partnercenter.microsoft.com/webhooks/v1/registration/validationEvents/$($Request.Query.CorrelationId)" -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' + } + default { + $Results = 'Invalid Action' + } + } + + $Body = [PSCustomObject]@{ + Results = $Results + Metadata = [PSCustomObject]@{ + Action = $Request.Query.Action + } + } + + return [HttpResponseContext]@{ + StatusCode = [System.Net.HttpStatusCode]::OK + Body = $Body + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecServicePrincipals.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecServicePrincipals.ps1 new file mode 100644 index 000000000000..1c3fd744bf4c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecServicePrincipals.ps1 @@ -0,0 +1,96 @@ +function Invoke-ExecServicePrincipals { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $env:TenantID + + $Success = $true + + $Action = $Request.Query.Action ?? 'Default' + try { + switch ($Request.Query.Action) { + 'Create' { + $BlockList = @( + 'e9a7fea1-1cc0-4cd9-a31b-9137ca5deedd', # eM Client + 'ff8d92dc-3d82-41d6-bcbd-b9174d163620', # PerfectData Software + 'a245e8c0-b53c-4b67-9b45-751d1dff8e6b', # Newsletter Software Supermailer + 'b15665d9-eda6-4092-8539-0eec376afd59', # rclone + 'a43e5392-f48b-46a4-a0f1-098b5eeb4757', # CloudSponge + 'caffae8c-0882-4c81-9a27-d1803af53a40' # SigParser + ) + $Action = 'Create' + + if ($Request.Query.AppId -match '^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$') { + + if ($BlockList -contains $Request.Query.AppId) { + $Results = 'Service Principal creation is blocked for this AppId' + $Success = $false + } else { + $Body = @{ + 'appId' = $Request.Query.AppId + } | ConvertTo-Json -Compress + try { + $ServicePrincipal = New-GraphPostRequest -Uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $TenantFilter -type POST -body $Body -NoAuthCheck $true + $Results = "Created service principal for $($ServicePrincipal.displayName) ($($ServicePrincipal.appId))" + } catch { + $Results = "Unable to create service principal: $($_.Exception.Message)" + $Success = $false + } + } + } else { + $Results = 'Invalid AppId' + $Success = $false + } + } + default { + if ($Request.Query.AppId) { + $Action = 'Get' + $Results = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/servicePrincipals(appId='$($Request.Query.AppId)')" -tenantid $TenantFilter -NoAuthCheck $true + } elseif ($Request.Query.Id) { + $Action = 'Get' + $Results = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/servicePrincipals/$($Request.Query.Id)" -tenantid $TenantFilter -NoAuthCheck $true + } else { + $Action = 'List' + $Uri = 'https://graph.microsoft.com/beta/servicePrincipals?$top=999&$orderby=displayName&$count=true' + if ($Request.Query.Select) { + $Uri = '{0}&$select={1}' -f $Uri, $Request.Query.Select + } + + $Results = New-GraphGetRequest -Uri $Uri -ComplexFilter -tenantid $TenantFilter -NoAuthCheck $true + } + } + } + } catch { + $Results = $_.Exception.Message + $Success = $false + } + + $Metadata = @{ + 'Action' = $Action + 'Success' = $Success + } + + if ($ServicePrincipal) { + $Metadata.ServicePrincipal = $ServicePrincipal + } + + if ($Request.Query.AppId) { + $Metadata.AppId = $Request.Query.AppId + } + + $Body = @{ + 'Results' = $Results + 'Metadata' = $Metadata + } + + $Json = $Body | ConvertTo-Json -Depth 10 -Compress + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Json + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetCIPPAutoBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetCIPPAutoBackup.ps1 new file mode 100644 index 000000000000..a492cba9d733 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetCIPPAutoBackup.ps1 @@ -0,0 +1,40 @@ +function Invoke-ExecSetCIPPAutoBackup { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Backup.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + if ($Request.Body.Enabled -eq $true) { + $Table = Get-CIPPTable -TableName 'ScheduledTasks' + $AutomatedCIPPBackupTask = Get-AzDataTableEntity @table -Filter "Name eq 'Automated CIPP Backup'" + $task = @{ + RowKey = $AutomatedCIPPBackupTask.RowKey + PartitionKey = 'ScheduledTask' + } + Remove-AzDataTableEntity -Force @Table -Entity $task | Out-Null + + $TaskBody = [pscustomobject]@{ + TenantFilter = 'PartnerTenant' + Name = 'Automated CIPP Backup' + Command = @{ + value = 'New-CIPPBackup' + label = 'New-CIPPBackup' + } + Parameters = [pscustomobject]@{ backupType = 'CIPP' } + ScheduledTime = $unixtime + Recurrence = '1d' + } + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + $Result = @{ 'Results' = 'Scheduled Task Successfully created' } + } + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message 'Scheduled automatic CIPP backups' -Sev 'Info' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Result + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 new file mode 100644 index 000000000000..e0cc80a3bc9a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSetPackageTag.ps1 @@ -0,0 +1,71 @@ +function Invoke-ExecSetPackageTag { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Table = Get-CippTable -tablename 'templates' + + try { + $GUIDS = $Request.body.GUID + $Remove = $Request.body.Remove + + if ($Remove -eq $true) { + # Remove package tag by setting it to null/empty + $PackageValue = $null + $LogMessage = 'Successfully removed package tag from template with GUID' + $SuccessMessage = 'Successfully removed package tag from template(s)' + } else { + # Add package tag (existing logic) + $PackageValue = [string]($Request.body.Package | Select-Object -First 1) + $LogMessage = 'Successfully updated template with GUID' + $SuccessMessage = "Successfully updated template(s) with package tag: $PackageValue" + } + + foreach ($GUID in $GUIDS) { + $Filter = "RowKey eq '$GUID'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $Entity = @{ + JSON = $Template.JSON + RowKey = "$GUID" + PartitionKey = $Template.PartitionKey + GUID = "$GUID" + Package = $PackageValue + SHA = $Template.SHA ?? $null + Source = $Template.Source ?? $null + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + if ($Remove -eq $true) { + Write-LogMessage -headers $Headers -API $APIName -message "$LogMessage $GUID" -Sev 'Info' + } else { + Write-LogMessage -headers $Headers -API $APIName -message "$LogMessage $GUID with package tag: $PackageValue" -Sev 'Info' + } + } + + $body = [pscustomobject]@{ 'Results' = $SuccessMessage } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + if ($Remove -eq $true) { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to remove package tag: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to remove package tag: $($ErrorMessage.NormalizedError)" } + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to set package tag: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to set package tag: $($ErrorMessage.NormalizedError)" } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetCippAlerts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetCippAlerts.ps1 new file mode 100644 index 000000000000..6a50e28c547d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetCippAlerts.ps1 @@ -0,0 +1,73 @@ +function Invoke-GetCippAlerts { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Alerts = [System.Collections.Generic.List[object]]::new() + $Table = Get-CippTable -tablename CippAlerts + $PartitionKey = Get-Date -UFormat '%Y%m%d' + $Filter = "PartitionKey eq '{0}'" -f $PartitionKey + $Rows = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Sort-Object TableTimestamp -Descending | Select-Object -First 10 + $Role = Get-CippAccessRole -Request $Request + + $CIPPVersion = $Request.Query.localversion + $Version = Assert-CippVersion -CIPPVersion $CIPPVersion + if ($Version.OutOfDateCIPP) { + $Alerts.Add(@{ + title = 'CIPP Frontend Out of Date' + Alert = 'Your CIPP Frontend is out of date. Please update to the latest version. Find more on the following ' + link = 'https://docs.cipp.app/setup/self-hosting-guide/updating' + type = 'warning' + }) + Write-LogMessage -message 'Your CIPP Frontend is out of date. Please update to the latest version' -API 'Updates' -tenant 'All Tenants' -sev Alert + + } + if ($Version.OutOfDateCIPPAPI) { + $Alerts.Add(@{ + title = 'CIPP API Out of Date' + Alert = 'Your CIPP API is out of date. Please update to the latest version. Find more on the following' + link = 'https://docs.cipp.app/setup/self-hosting-guide/updating' + type = 'warning' + }) + Write-LogMessage -message 'Your CIPP API is out of date. Please update to the latest version' -API 'Updates' -tenant 'All Tenants' -sev Alert + } + + if ($env:ApplicationID -eq 'LongApplicationID' -or $null -eq $env:ApplicationID) { + $Alerts.Add(@{ + title = 'SAM Setup Incomplete' + Alert = 'You have not yet completed your setup. Please go to the Setup Wizard in Application Settings to connect CIPP to your tenants.' + link = '/cipp/setup' + type = 'warning' + setupCompleted = $false + }) + } + if ($role -like '*superadmin*') { + $Alerts.Add(@{ + title = 'Superadmin Account Warning' + Alert = 'You are logged in under a superadmin account. This account should not be used for normal usage.' + link = 'https://docs.cipp.app/setup/installation/owntenant' + type = 'error' + }) + } + if (!(![string]::IsNullOrEmpty($env:WEBSITE_RUN_FROM_PACKAGE) -or ![string]::IsNullOrEmpty($env:DEPLOYMENT_STORAGE_CONNECTION_STRING)) -and $env:AzureWebJobsStorage -ne 'UseDevelopmentStorage=true' -and $env:NonLocalHostAzurite -ne 'true') { + $Alerts.Add( + @{ + title = 'Function App in Write Mode' + Alert = 'Your Function App is running in write mode. This will cause performance issues and increase cost. Please check this ' + link = 'https://docs.cipp.app/setup/installation/runfrompackage' + type = 'warning' + }) + } + if ($Rows) { $Rows | ForEach-Object { $Alerts.Add($_) } } + $Alerts = @($Alerts) + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Alerts + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetVersion.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetVersion.ps1 new file mode 100644 index 000000000000..61a8266714f3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-GetVersion.ps1 @@ -0,0 +1,19 @@ +Function Invoke-GetVersion { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $CIPPVersion = $request.query.LocalVersion + + $Version = Assert-CippVersion -CIPPVersion $CIPPVersion + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Version + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAdminPortalLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAdminPortalLicenses.ps1 new file mode 100644 index 000000000000..dc1ae4139972 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAdminPortalLicenses.ps1 @@ -0,0 +1,24 @@ +function Invoke-ListAdminPortalLicenses { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter + + try { + $AdminPortalLicenses = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $TenantFilter -Uri 'https://admin.microsoft.com/admin/api/tenant/accountSkus' + } catch { + Write-Warning 'Failed to get Admin Portal Licenses' + $AdminPortalLicenses = @() + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($AdminPortalLicenses) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 new file mode 100644 index 000000000000..56784611a481 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 @@ -0,0 +1,35 @@ +function Invoke-ListApiTest { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Response = @{} + $Response.Request = $Request + $Response.TriggerMetadata = $TriggerMetadata + if ($env:DEBUG_ENV_VARS -eq 'true') { + $BlockedKeys = @('ApplicationSecret', 'RefreshToken', 'AzureWebJobsStorage', 'DEPLOYMENT_STORAGE_CONNECTION_STRING') + $EnvironmentVariables = [PSCustomObject]@{} + Get-ChildItem env: | Where-Object { $BlockedKeys -notcontains $_.Name } | ForEach-Object { + $EnvironmentVariables | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value + } + $Response.EnvironmentVariables = $EnvironmentVariables + + # test New-CIPPAzRestRequest KQL for resource graph + $Query = 'Resources | project name, type' + $Json = ConvertTo-Json -Depth 10 -Compress -InputObject @{ query = $Query } + $Request = New-CIPPAzRestRequest -Method POST -Resource 'https://management.azure.com/' -Uri 'https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01' -Body $Json + $Response.ResourceGraphTest = $Request + } + $Response.AllowedTenants = $script:CippAllowedTenantsStorage.Value + $Response.AllowedGroups = $script:CippAllowedGroupsStorage.Value + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Response + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListCustomDataMappings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListCustomDataMappings.ps1 new file mode 100644 index 000000000000..87f6a88e7429 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListCustomDataMappings.ps1 @@ -0,0 +1,71 @@ +function Invoke-ListCustomDataMappings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $CustomDataMappingsTable = Get-CippTable -TableName 'CustomDataMappings' + $TenantFilter = $Request.Query.tenantFilter + $SourceTypeFilter = $Request.Query.sourceType + $DirectoryObjectFilter = $Request.Query.directoryObject + + Write-Information "Listing custom data mappings with filters - sourceType: $SourceTypeFilter, directoryObject: $DirectoryObjectFilter, tenant: $TenantFilter" + + try { + $Mappings = Get-CIPPAzDataTableEntity @CustomDataMappingsTable | ForEach-Object { + $Mapping = $_.JSON | ConvertFrom-Json -AsHashtable + + # Filter by tenant + $TenantList = Expand-CIPPTenantGroups -TenantFilter $Mapping.tenantFilter + if ($TenantFilter -and ($TenantList -contains $TenantFilter -or $TenantList -eq 'AllTenants')) { + return + } + + $MappingObject = [PSCustomObject]@{ + id = $_.RowKey + tenant = $Mapping.tenantFilter.label + dataset = $Mapping.extensionSyncDataset.label + sourceType = $Mapping.sourceType.label + directoryObject = $Mapping.directoryObjectType.label + syncProperty = $Mapping.extensionSyncProperty.label ?? @($Mapping.extensionSyncDataset.addedFields.select -split ',') + customDataAttribute = $Mapping.customDataAttribute + manualEntryFieldLabel = $Mapping.manualEntryFieldLabel + } + + # Apply safe filtering + $Include = $true + if ($SourceTypeFilter -and $MappingObject.sourceType -ne $SourceTypeFilter) { + $Include = $false + } + if ($DirectoryObjectFilter -and $MappingObject.directoryObject -ne $DirectoryObjectFilter) { + $Include = $false + } + + if ($Include) { + return $MappingObject + } + } | Where-Object { $_ -ne $null } + + $Body = @{ + Results = @($Mappings) + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to retrieve mappings: $($_.Exception.Message)" + } + ) + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 new file mode 100644 index 000000000000..a52b7c6e0982 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDiagnosticsPresets.ps1 @@ -0,0 +1,37 @@ +function Invoke-ListDiagnosticsPresets { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.Read + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + try { + $Table = Get-CIPPTable -TableName 'DiagnosticsPresets' + $Presets = Get-CIPPAzDataTableEntity @Table | ForEach-Object { + $Data = $_.data | ConvertFrom-Json + [PSCustomObject]@{ + GUID = $_.RowKey + name = $_.name + query = $Data.query + } + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Presets) + } + } catch { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = "Failed to list diagnostics presets: $($_.Exception.Message)" + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1 new file mode 100644 index 000000000000..9d9201b17e1c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1 @@ -0,0 +1,39 @@ +function Invoke-ListDirectoryObjects { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Body.partnerLookup ? $env:TenantID : $Request.Body.tenantFilter + $AsApp = $Request.Body.asApp + $Ids = $Request.Body.ids + + $BaseUri = 'https://graph.microsoft.com/beta/directoryObjects/getByIds' + if ($Request.Body.'$select') { + $Uri = '{0}?$select={1}' -f $BaseUri, $Request.Body.'$select' + } else { + $Uri = $BaseUri + } + + $Body = @{ + ids = $Ids + } | ConvertTo-Json -Depth 10 + + try { + $Results = New-GraphPOSTRequest -tenantid $TenantFilter -uri $Uri -body $Body -AsApp $AsApp -NoAuthCheck $true + $StatusCode = [System.Net.HttpStatusCode]::OK + } catch { + $StatusCode = [System.Net.HttpStatusCode]::BadRequest + $Results = $_.Exception.Message + Write-Warning "Error retrieving directory objects: $Results" + Write-Information $_.InvocationInfo.PositionMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListExtensionCacheData.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListExtensionCacheData.ps1 new file mode 100644 index 000000000000..155d8e7059e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListExtensionCacheData.ps1 @@ -0,0 +1,40 @@ +function Invoke-ListExtensionCacheData { + <# + .SYNOPSIS + List Extension Cache Data + .DESCRIPTION + This function is used to list the extension cache data. + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $DataTypes = $Request.Query.dataTypes -split ',' ?? $Request.Body.dataTypes ?? 'All' + + $Data = Get-ExtensionCacheData -TenantFilter $TenantFilter + + if ($DataTypes -ne 'All') { + $Data = $Data | Select-Object $DataTypes + } + + if (!$Data) { + $Results = @{} + } + + $Body = @{ + Results = $Data + } + + $StatusCode = [HttpStatusCode]::OK + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body | ConvertTo-Json -Compress -Depth 100 + Headers = @{ + 'Content-Type' = 'application/json' + } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphBulkRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphBulkRequest.ps1 new file mode 100644 index 000000000000..deef9107d572 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphBulkRequest.ps1 @@ -0,0 +1,57 @@ +function Invoke-ListGraphBulkRequest { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Body.tenantFilter + $AsApp = $Request.Body.asApp + $Requests = $Request.Body.requests + $NoPaginateIds = $Request.Body.noPaginateIds + + $GraphRequestParams = @{ + tenantid = $TenantFilter + Requests = @() + NoPaginateIds = $NoPaginateIds ?? @() + } + + if ($AsApp) { + $GraphRequestParams.asapp = $AsApp + } + + $BulkRequests = foreach ($GraphRequest in $Requests) { + if ($GraphRequest.method -eq 'GET') { + @{ + id = $GraphRequest.id + url = $GraphRequest.url + method = $GraphRequest.method + } + } + } + + if ($BulkRequests) { + $GraphRequestParams.Requests = @($BulkRequests) + try { + $Body = New-GraphBulkRequest @GraphRequestParams + $Results = @{ + StatusCode = [System.Net.HttpStatusCode]::OK + Body = $Body + } + } catch { + $Results = @{ + StatusCode = [System.Net.HttpStatusCode]::BadRequest + Body = $_.Exception.Message + } + } + } else { + $Results = @{ + StatusCode = [System.Net.HttpStatusCode]::BadRequest + Body = 'No requests found in the body' + } + } + + return [HttpResponseContext]$Results +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphRequest.ps1 new file mode 100644 index 000000000000..4e5fa69d626f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListGraphRequest.ps1 @@ -0,0 +1,175 @@ + +function Invoke-ListGraphRequest { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $Message = 'Accessed this API | Endpoint: {0}' -f $Request.Query.Endpoint + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Debug' + + $CippLink = ([System.Uri]$TriggerMetadata.Headers.Referer).PathAndQuery + + $Parameters = @{} + if ($Request.Query.'$filter') { + $Parameters.'$filter' = $Request.Query.'$filter' + } + + if (!$Request.Query.'$filter' -and $Request.Query.graphFilter) { + $Parameters.'$filter' = $Request.Query.graphFilter + } + + if ($Request.Query.'$select') { + $Parameters.'$select' = $Request.Query.'$select' + } + + if ($Request.Query.'$expand') { + $Parameters.'$expand' = $Request.Query.'$expand' + } + + if ($Request.Query.expand) { + $Parameters.'expand' = $Request.Query.expand + } + + if ($Request.Query.'$top') { + $Parameters.'$top' = $Request.Query.'$top' + } + + if ($Request.Query.'$count') { + $Parameters.'$count' = ([string]([System.Boolean]$Request.Query.'$count')).ToLower() + } + + + if ($Request.Query.'$orderby') { + $Parameters.'$orderby' = $Request.Query.'$orderby' + } + + if ($Request.Query.'$search') { + $Parameters.'$search' = $Request.Query.'$search' + } + + if ($Request.Query.'$format') { + $Parameters.'$format' = $Request.Query.'$format' + } + + $GraphRequestParams = @{ + Endpoint = $Request.Query.Endpoint + Parameters = $Parameters + CippLink = $CippLink + } + + if ($Request.Query.TenantFilter) { + $GraphRequestParams.TenantFilter = $Request.Query.TenantFilter + } + + if ($Request.Query.QueueId) { + $GraphRequestParams.QueueId = $Request.Query.QueueId + } + + if ($Request.Query.Version) { + $GraphRequestParams.Version = $Request.Query.Version + } + + if ($Request.Query.NoPagination) { + $GraphRequestParams.NoPagination = [System.Boolean]$Request.Query.NoPagination + } + + if ($Request.Query.manualPagination) { + $GraphRequestParams.ManualPagination = [System.Boolean]$Request.Query.manualPagination + } + + if ($Request.Query.nextLink) { + $GraphRequestParams.nextLink = $Request.Query.nextLink + } + + if ($Request.Query.CountOnly) { + $GraphRequestParams.CountOnly = [System.Boolean]$Request.Query.CountOnly + } + + if ($Request.Query.QueueNameOverride) { + $GraphRequestParams.QueueNameOverride = [string]$Request.Query.QueueNameOverride + } + + if ($Request.Query.ReverseTenantLookup) { + $GraphRequestParams.ReverseTenantLookup = [System.Boolean]$Request.Query.ReverseTenantLookup + } + + if ($Request.Query.ReverseTenantLookupProperty) { + $GraphRequestParams.ReverseTenantLookupProperty = $Request.Query.ReverseTenantLookupProperty + } + + if ($Request.Query.SkipCache) { + $GraphRequestParams.SkipCache = [System.Boolean]$Request.Query.SkipCache + } + + if ($Request.Query.ListProperties) { + $GraphRequestParams.NoPagination = $true + $GraphRequestParams.Parameters.'$select' = '' + if ($Request.Query.TenantFilter -eq 'AllTenants') { + $GraphRequestParams.TenantFilter = (Get-Tenants | Select-Object -First 1).customerId + } + } + + if ($Request.Query.AsApp) { + $GraphRequestParams.AsApp = $true + } + + $Metadata = $GraphRequestParams + + try { + $Results = Get-GraphRequestList @GraphRequestParams + + if ($script:LastGraphResponseHeaders) { + $Metadata.GraphHeaders = $script:LastGraphResponseHeaders + } + + if ($Results | Where-Object { $_.PSObject.Properties.Name -contains 'nextLink' }) { + if (![string]::IsNullOrEmpty($Results.nextLink) -and $Request.Query.TenantFilter -ne 'AllTenants') { + Write-Host "NextLink: $($Results.nextLink | Where-Object { $_ } | Select-Object -Last 1)" + $Metadata['nextLink'] = $Results.nextLink | Where-Object { $_ } | Select-Object -Last 1 + } + # Remove nextLink trailing object only if it’s the last item + $Results = $Results | Where-Object { $_.PSObject.Properties.Name -notcontains 'nextLink' } + } + if ($Request.Query.ListProperties) { + $Columns = ($Results | Select-Object -First 1).PSObject.Properties.Name + $Results = $Columns | Where-Object { @('Tenant', 'CippStatus') -notcontains $_ } + } else { + if ($Results.Queued -eq $true) { + $Metadata.Queued = $Results.Queued + $Metadata.QueueMessage = $Results.QueueMessage + $Metadata.QueueId = $Results.QueueId + $Results = @() + } + } + + if ($Request.Headers.'x-ms-coldstart' -eq 1) { + $Metadata.ColdStart = $true + } + + $GraphRequestData = [PSCustomObject]@{ + Results = @($Results) + Metadata = $Metadata + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $GraphRequestData = "Graph Error: $(Get-NormalizedError $_.Exception.Message) - Endpoint: $($Request.Query.Endpoint)" + if ($Request.Query.IgnoreErrors) { $StatusCode = [HttpStatusCode]::OK } + else { $StatusCode = [HttpStatusCode]::BadRequest } + } + + if ($request.Query.Sort) { + $GraphRequestData.Results = $GraphRequestData.Results | Sort-Object -Property $request.Query.Sort + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequestData + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-PublicPing.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-PublicPing.ps1 new file mode 100644 index 000000000000..d92ecc641795 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-PublicPing.ps1 @@ -0,0 +1,56 @@ +function Invoke-PublicPing { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Public + #> + [CmdletBinding()] + Param( + $Request, + $TriggerMetadata + ) + + $KeepaliveTable = Get-CippTable -tablename 'CippKeepAlive' + $LastKeepalive = Get-CippAzDataTableEntity @KeepaliveTable -Filter "PartitionKey eq 'Ping' and RowKey eq 'Ping'" + + if ($LastKeepalive.Timestamp) { + $LastKeepalive = $LastKeepalive.Timestamp.DateTime.ToUniversalTime() + } else { + $LastKeepalive = (Get-Date).AddSeconds(-600).ToUniversalTime() + } + $KeepaliveInterval = -300 + $NextKeepAlive = (Get-Date).AddSeconds($KeepaliveInterval).ToUniversalTime() + + $IsColdStart = $Request.Headers.'x-ms-coldstart' -eq 1 + + if ($LastKeepalive -le $NextKeepAlive -or $IsColdStart) { + $Keepalive = @{ + PartitionKey = 'Ping' + RowKey = 'Ping' + } + Add-AzDataTableEntity @KeepaliveTable -Entity $Keepalive -Force + + if ($IsColdStart) { + $Milliseconds = 500 + } else { + $Milliseconds = 150 + } + + Start-Sleep -Milliseconds $Milliseconds + } + + $Body = @{ + Results = @{ + Message = 'Pong' + ColdStart = $IsColdStart + Timestamp = (Get-Date).ToUniversalTime() + RequestId = $TriggerMetadata.InvocationId + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ($Body | ConvertTo-Json -Depth 5) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/invoke-ListEmptyResults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/invoke-ListEmptyResults.ps1 new file mode 100644 index 000000000000..a086b28cd4ae --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/invoke-ListEmptyResults.ps1 @@ -0,0 +1,19 @@ +using namespace System.Net + +Function invoke-ListEmptyResults { + <# + .SYNOPSIS + - Purposely lists an empty result + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @() + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionMapping.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionMapping.ps1 new file mode 100644 index 000000000000..f9b0927b2841 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionMapping.ps1 @@ -0,0 +1,124 @@ +Function Invoke-ExecExtensionMapping { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Extension.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Table = Get-CIPPTable -TableName CippMapping + + if ($Request.Query.List) { + switch ($Request.Query.List) { + 'HaloPSA' { + $Result = Get-HaloMapping -CIPPMapping $Table + } + 'NinjaOne' { + $Result = Get-NinjaOneOrgMapping -CIPPMapping $Table + } + 'NinjaOneFields' { + $Result = Get-NinjaOneFieldMapping -CIPPMapping $Table + } + 'Hudu' { + $Result = Get-HuduMapping -CIPPMapping $Table + } + 'HuduFields' { + $Result = Get-HuduFieldMapping -CIPPMapping $Table + } + 'Sherweb' { + $Result = Get-SherwebMapping -CIPPMapping $Table + } + 'HaloPSAFields' { + $TicketTypes = Get-HaloTicketType + $Outcomes = Get-HaloTicketOutcome + $Result = @{ + 'TicketTypes' = $TicketTypes + 'Outcomes' = $Outcomes + } + } + 'PWPushFields' { + $Accounts = Get-PwPushAccount + $Result = @{ + 'Accounts' = $Accounts + } + } + } + } + + try { + if ($Request.Query.AddMapping) { + switch ($Request.Query.AddMapping) { + 'Sherweb' { + $Result = Set-SherwebMapping -CIPPMapping $Table -APIName $APIName -Request $Request + } + 'HaloPSA' { + $Result = Set-HaloMapping -CIPPMapping $Table -APIName $APIName -Request $Request + } + 'NinjaOne' { + $Result = Set-NinjaOneOrgMapping -CIPPMapping $Table -APIName $APIName -Request $Request + Register-CIPPExtensionScheduledTasks + } + 'NinjaOneFields' { + $Result = Set-NinjaOneFieldMapping -CIPPMapping $Table -APIName $APIName -Request $Request -TriggerMetadata $TriggerMetadata + Register-CIPPExtensionScheduledTasks + } + 'Hudu' { + $Result = Set-HuduMapping -CIPPMapping $Table -APIName $APIName -Request $Request + Register-CIPPExtensionScheduledTasks + } + 'HuduFields' { + $Result = Set-ExtensionFieldMapping -CIPPMapping $Table -APIName $APIName -Request $Request -Extension 'Hudu' + Register-CIPPExtensionScheduledTasks + } + } + } + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Mapping API failed. $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + try { + if ($Request.Query.AutoMapping) { + switch ($Request.Query.AutoMapping) { + 'NinjaOne' { + $Batch = [PSCustomObject]@{ + 'NinjaAction' = 'StartAutoMapping' + 'FunctionName' = 'NinjaOneQueue' + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($Batch) + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + $Result = 'AutoMapping Request has been queued. Exact name matches will appear first and matches on device names and serials will take longer. Please check the CIPP Logbook and refresh the page once complete.' + } + + } + } + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Mapping API failed. $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -headers $Headers -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Result + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionSync.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionSync.ps1 new file mode 100644 index 000000000000..a268c3075aae --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionSync.ps1 @@ -0,0 +1,101 @@ +Function Invoke-ExecExtensionSync { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Extension.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + switch ($Request.Query.Extension) { + 'Gradient' { + try { + Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message 'Starting billing processing.' -sev Info + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 + + foreach ($ConfigItem in $Configuration.psobject.properties.name) { + switch ($ConfigItem) { + 'Gradient' { + If ($Configuration.Gradient.enabled -and $Configuration.Gradient.BillingEnabled) { + $ProcessorQueue = Get-CIPPTable -TableName 'ProcessorQueue' + $ProcessorFunction = [PSCustomObject]@{ + PartitionKey = 'Function' + RowKey = 'New-GradientServiceSyncRun' + FunctionName = 'New-GradientServiceSyncRun' + } + Add-AzDataTableEntity @ProcessorQueue -Entity $ProcessorFunction -Force + $Results = [pscustomobject]@{'Results' = 'Successfully queued Gradient Sync' } + } + } + } + } + } catch { + $Results = [pscustomobject]@{'Results' = "Could not start Gradient Sync: $($_.Exception.Message)" } + + Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message "Could not start billing processing $($_.Exception.Message)" -sev Error + } + } + + 'NinjaOne' { + try { + $Table = Get-CIPPTable -TableName NinjaOneSettings + + $CIPPMapping = Get-CIPPTable -TableName CippMapping + $Filter = "PartitionKey eq 'NinjaOneMapping'" + $TenantsToProcess = Get-AzDataTableEntity @CIPPMapping -Filter $Filter | Where-Object { $Null -ne $_.IntegrationId -and $_.IntegrationId -ne '' } + + if ($Request.Query.TenantID) { + $Tenant = $TenantsToProcess | Where-Object { $_.RowKey -eq $Request.Query.TenantID } + if (($Tenant | Measure-Object).count -eq 1) { + $Batch = [PSCustomObject]@{ + 'NinjaAction' = 'SyncTenant' + 'MappedTenant' = $Tenant + 'FunctionName' = 'NinjaOneQueue' + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($Batch) + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + + $Results = [pscustomobject]@{'Results' = "NinjaOne Synchronization Queued for $($Tenant.IntegrationName)" } + } else { + $Results = [pscustomobject]@{'Results' = 'Tenant was not found.' } + } + + } else { + $Batch = [PSCustomObject]@{ + 'NinjaAction' = 'SyncTenants' + 'FunctionName' = 'NinjaOneQueue' + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($Batch) + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + $Results = [pscustomobject]@{'Results' = "NinjaOne Synchronization Queuing $(($TenantsToProcess | Measure-Object).count) Tenants" } + + } + } catch { + $Results = [pscustomobject]@{'Results' = "Could not start NinjaOne Sync: $($_.Exception.Message)" } + Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message "Could not start NinjaOne Sync $($_.Exception.Message)" -sev Error + } + } + 'Hudu' { + Register-CIPPExtensionScheduledTasks -Reschedule -Extensions 'Hudu' + $Results = [pscustomobject]@{'Results' = 'Extension sync tasks have been rescheduled and will start within 15 minutes' } + } + + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionTest.ps1 new file mode 100644 index 000000000000..d89da3624338 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionTest.ps1 @@ -0,0 +1,102 @@ +Function Invoke-ExecExtensionTest { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Extension.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json) + # Interact with query parameters or the body of the request. + try { + switch ($Request.Query.extensionName) { + 'HaloPSA' { + $token = Get-HaloToken -configuration $Configuration.HaloPSA + if ($token) { + $Results = [pscustomobject]@{'Results' = 'Successfully Connected to HaloPSA' } + } else { + $Results = [pscustomobject]@{'Results' = 'Failed to connect to HaloPSA, check your API credentials and try again.' } + } + } + 'Gradient' { + $GradientToken = Get-GradientToken -Configuration $Configuration.Gradient + if ($GradientToken) { + try { + $ExistingIntegrations = Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/organization' -Method GET -Headers $GradientToken + if ($ExistingIntegrations.Status -ne 'active') { + $ActivateRequest = Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/organization/status/active' -Method PATCH -Headers $GradientToken + } + $Results = [pscustomobject]@{'Results' = 'Successfully Connected to Gradient' } + } catch { + $Results = [pscustomobject]@{'Results' = 'Failed to connect to Gradient, check your API credentials and try again.' } + } + } else { + $Results = [pscustomobject]@{'Results' = 'Failed to connect to Gradient, check your API credentials and try again.' } + } + } + 'CIPP-API' { + $Results = [pscustomobject]@{'Results' = 'You cannot test the CIPP-API from CIPP. Please check the documentation on how to test the CIPP-API.' } + } + 'NinjaOne' { + $token = Get-NinjaOneToken -configuration $Configuration.NinjaOne + if ($token) { + $Results = [pscustomobject]@{'Results' = 'Successfully Connected to NinjaOne' } + } else { + $Results = [pscustomobject]@{'Results' = 'Failed to connect to NinjaOne, check your API credentials and try again.' } + } + } + 'PWPush' { + $Payload = 'This is a test from CIPP' + $PasswordLink = New-PwPushLink -Payload $Payload + if ($PasswordLink) { + $Results = [pscustomobject]@{Results = @(@{'resultText' = 'Successfully generated PWPush, hit the Copy to Clipboard button to retrieve the test.'; 'copyField' = $PasswordLink; 'state' = 'success' }) } + } else { + $Results = [pscustomobject]@{'Results' = 'PWPush is not enabled' } + } + } + 'Hudu' { + Connect-HuduAPI -configuration $Configuration + $Version = Get-HuduAppInfo + if ($Version.version) { + $Results = [pscustomobject]@{'Results' = ('Successfully Connected to Hudu, version: {0}' -f $Version.version) } + } else { + $Results = [pscustomobject]@{'Results' = 'Failed to connect to Hudu, check your API credentials and try again.' } + } + } + 'Sherweb' { + $token = Get-SherwebAuthentication + if ($token) { + $Results = [pscustomobject]@{'Results' = 'Successfully Connected to Sherweb' } + } else { + $Results = [pscustomobject]@{'Results' = 'Failed to connect to Sherweb, check your API credentials and try again.' } + } + } + 'HIBP' { + $ConnectionTest = Get-HIBPConnectionTest + $Results = [pscustomobject]@{'Results' = 'Successfully Connected to HIBP' } + } + 'GitHub' { + $GitHubResponse = Invoke-GitHubApiRequest -Method 'GET' -Path 'user' -ReturnHeaders + if ($GitHubResponse.login) { + if ($GitHubResponse.Headers.'x-oauth-scopes') { + $Results = [pscustomobject]@{ 'Results' = "Successfully connected to GitHub user: $($GitHubResponse.login) with scopes: $($GitHubResponse.Headers.'x-oauth-scopes')" } + } else { + $Results = [pscustomobject]@{ 'Results' = "Successfully connected to GitHub user: $($GitHubResponse.login) using a Fine Grained PAT" } + } + } else { + $Results = [pscustomobject]@{ 'Results' = 'Failed to connect to GitHub. Check your API credentials and try again.' } + } + } + } + } catch { + $Results = [pscustomobject]@{'Results' = "Failed to connect: $($_.Exception.Message). Line $($_.InvocationInfo.ScriptLineNumber)" } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionsConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionsConfig.ps1 new file mode 100644 index 000000000000..79529e5b5291 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ExecExtensionsConfig.ps1 @@ -0,0 +1,89 @@ +function Invoke-ExecExtensionsConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Extension.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + $Body = [PSCustomObject]$Request.Body + $Results = try { + # Check if NinjaOne URL is set correctly and the instance has at least version 5.6 + if ($Body.NinjaOne.Enabled -eq $true) { + $AllowedNinjaHostnames = @( + 'app.ninjarmm.com', + 'eu.ninjarmm.com', + 'oc.ninjarmm.com', + 'ca.ninjarmm.com', + 'us2.ninjarmm.com' + ) + $SetNinjaHostname = $Body.NinjaOne.Instance -replace '/ws', '' -replace 'https://', '' + if ($AllowedNinjaHostnames -notcontains $SetNinjaHostname) { + "Error: NinjaOne URL is not allowed. Allowed hostnames are: $($AllowedNinjaHostnames -join ', ')" + } + } + + if ($Body.Hudu.NextSync) { + #parse unixtime for addedtext + $Timestamp = [datetime]::UnixEpoch.AddSeconds([int]$Body.Hudu.NextSync).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") + Register-CIPPExtensionScheduledTasks -Reschedule -NextSync $Body.Hudu.NextSync -Extensions 'Hudu' + $AddedText = " Next sync will be at $Timestamp." + $Body.Hudu.NextSync = '' + } + + $Table = Get-CIPPTable -TableName Extensionsconfig + foreach ($APIKey in $Body.PSObject.Properties.Name) { + Write-Information "Working on $apikey" + if ($Body.$APIKey.APIKey -eq 'SentToKeyVault' -or $Body.$APIKey.APIKey -eq '') { + Write-Information 'Not sending to keyvault. Key previously set or left blank.' + } else { + Write-Information 'writing API Key to keyvault, and clearing.' + Write-Information "$env:WEBSITE_DEPLOYMENT_ID" + if ($Body.$APIKey.APIKey) { + Set-ExtensionAPIKey -Extension $APIKey -APIKey $Body.$APIKey.APIKey + } + if ($Body.$APIKey.PSObject.Properties.Name -notcontains 'APIKey') { + $Body.$APIKey | Add-Member -MemberType NoteProperty -Name APIKey -Value 'SentToKeyVault' + } else { + $Body.$APIKey.APIKey = 'SentToKeyVault' + } + } + $Body.$APIKey = $Body.$APIKey | Select-Object * -ExcludeProperty ResetPassword + } + $Body = $Body | Select-Object * -ExcludeProperty APIKey, Enabled | ConvertTo-Json -Depth 10 -Compress + $Config = @{ + 'PartitionKey' = 'CippExtensions' + 'RowKey' = 'Config' + 'config' = [string]$Body + } + + Add-CIPPAzDataTableEntity @Table -Entity $Config -Force | Out-Null + + #Write-Information ($Request.Headers | ConvertTo-Json) + $AddObject = @{ + PartitionKey = 'InstanceProperties' + RowKey = 'CIPPURL' + Value = [string]([System.Uri]$Headers.'x-ms-original-url').Host + } + Write-Information ($AddObject | ConvertTo-Json -Compress) + $ConfigTable = Get-CIPPTable -tablename 'Config' + Add-AzDataTableEntity @ConfigTable -Entity $AddObject -Force + + Register-CIPPExtensionScheduledTasks + "Successfully saved the extension configuration. $AddedText" + } catch { + "Failed to save the extensions configuration: $($_.Exception.message) Linenumber: $($_.InvocationInfo.ScriptLineNumber)" + } + + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ListExtensionSync.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ListExtensionSync.ps1 new file mode 100644 index 000000000000..f9b6ae869289 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Extensions/Invoke-ListExtensionSync.ps1 @@ -0,0 +1,50 @@ +Function Invoke-ListExtensionSync { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Extension.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $ScheduledTasksTable = Get-CIPPTable -TableName 'ScheduledTasks' + $ScheduledTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'CippExtension' } + + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + $TenantList = Get-Tenants -IncludeErrors + $AllTasksArrayList = [system.collections.generic.list[object]]::new() + + foreach ($Task in $ScheduledTasks) { + if ($Task.Results -and (Test-Json -Json $Task.Results -ErrorAction SilentlyContinue)) { + $Results = $Task.Results | ConvertFrom-Json + } else { + $Results = $Task.Results + } + + $TaskEntry = [PSCustomObject]@{ + RowKey = $Task.RowKey + PartitionKey = $Task.PartitionKey + Tenant = $Task.Tenant + Name = $Task.Name + SyncType = $Task.SyncType + ScheduledTime = $Task.ScheduledTime + ExecutedTime = $Task.ExecutedTime + RepeatsEvery = $Task.Recurrence + Results = $Results + } + + if ($AllowedTenants -notcontains 'AllTenants') { + $Tenant = $TenantList | Where-Object -Property defaultDomainName -EQ $Task.Tenant + if ($AllowedTenants -contains $Tenant.customerId) { + $AllTasksArrayList.Add($TaskEntry) + } + } else { + $AllTasksArrayList.Add($TaskEntry) + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = (ConvertTo-Json -Depth 5 -InputObject @($AllTasksArrayList)) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 new file mode 100644 index 000000000000..18aecda3ab90 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 @@ -0,0 +1,47 @@ +function Invoke-AddScheduledItem { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Scheduler.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + if ($null -eq $Request.Query.hidden) { + $hidden = $false + } else { + $hidden = $true + } + + $DisallowDuplicateName = $Request.Query.DisallowDuplicateName ?? $Request.Body.DisallowDuplicateName + + if ($Request.Body.RunNow -eq $true) { + try { + $Table = Get-CIPPTable -TableName 'ScheduledTasks' + $Filter = "PartitionKey eq 'ScheduledTask' and RowKey eq '$($Request.Body.RowKey)'" + $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + if ($ExistingTask) { + $Result = Add-CIPPScheduledTask -RowKey $Request.Body.RowKey -RunNow -Headers $Request.Headers + } else { + $Result = "Task with id $($Request.Body.RowKey) does not exist" + } + } catch { + Write-Warning "Error scheduling task: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $Result = "Error scheduling task: $($_.Exception.Message)" + } + } else { + $ScheduledTask = @{ + Task = $Request.Body + Headers = $Request.Headers + Hidden = $hidden + DisallowDuplicateName = $DisallowDuplicateName + DesiredStartTime = $Request.Body.DesiredStartTime + } + $Result = Add-CIPPScheduledTask @ScheduledTask + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItemDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItemDetails.ps1 new file mode 100644 index 000000000000..be60e04ec9b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItemDetails.ps1 @@ -0,0 +1,207 @@ +function Invoke-ListScheduledItemDetails { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Scheduler.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + # Get parameters from the request + $RowKey = $Request.Query.RowKey ?? $Request.Body.RowKey + + # Validate required parameters + if (-not $RowKey) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Required parameter 'RowKey' is missing" + }) + return + } + + # Retrieve the task information + $TaskTable = Get-CIPPTable -TableName 'ScheduledTasks' + $Task = Get-CIPPAzDataTableEntity @TaskTable -Filter "RowKey eq '$RowKey' and PartitionKey eq 'ScheduledTask'" | Select-Object RowKey, Name, TaskState, Command, Parameters, Recurrence, ExecutedTime, ScheduledTime, PostExecution, Tenant, TenantGroup, Hidden, Results, Timestamp, Trigger + + if (-not $Task) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = "Task with RowKey '$RowKey' not found" + }) + return + } + + # Process the task (similar to the way it's done in Invoke-ListScheduledItems) + if ($Task.Parameters) { + $Task.Parameters = $Task.Parameters | ConvertFrom-Json -ErrorAction SilentlyContinue + } else { + $Task | Add-Member -NotePropertyName Parameters -NotePropertyValue @{} + } + + if ($Task.Recurrence -eq 0 -or [string]::IsNullOrEmpty($Task.Recurrence)) { + $Task.Recurrence = 'Once' + } + + try { + $Task.ExecutedTime = [DateTimeOffset]::FromUnixTimeSeconds($Task.ExecutedTime).UtcDateTime + } catch {} + + try { + $Task.ScheduledTime = [DateTimeOffset]::FromUnixTimeSeconds($Task.ScheduledTime).UtcDateTime + } catch {} + + # Handle tenant group display information (similar to Invoke-ListScheduledItems) + if ($Task.TenantGroup) { + try { + $TenantGroupObject = $Task.TenantGroup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TenantGroupObject) { + # Create a tenant group object for the frontend formatting + $TenantGroupForDisplay = [PSCustomObject]@{ + label = $TenantGroupObject.label + value = $TenantGroupObject.value + type = 'Group' + } + $Task | Add-Member -NotePropertyName TenantGroupInfo -NotePropertyValue $TenantGroupForDisplay -Force + # Update the tenant to show the group object for proper formatting + $Task.Tenant = $TenantGroupForDisplay + } + } catch { + Write-Warning "Failed to parse tenant group information for task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to keeping original tenant value + } + } else { + # For regular tenants, create a tenant object for consistent formatting + $TenantForDisplay = [PSCustomObject]@{ + label = $Task.Tenant + value = $Task.Tenant + type = 'Tenant' + } + $Task.Tenant = $TenantForDisplay + } + + if ($Task.Trigger) { + try { + $TriggerObject = $Task.Trigger | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TriggerObject) { + $Task | Add-Member -NotePropertyName Trigger -NotePropertyValue $TriggerObject -Force + } + } catch { + Write-Warning "Failed to parse trigger information for task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to keeping original trigger value + } + } + + # Get the results if available + $ResultsTable = Get-CIPPTable -TableName 'ScheduledTaskResults' + $ResultsFilter = "PartitionKey eq '$RowKey'" + + $Results = Get-CIPPAzDataTableEntity @ResultsTable -Filter $ResultsFilter + + if (!$Results) { + try { + # Handle the case when we need to use Task.Results + if ($Task.Results) { + # Try to safely parse JSON or use the raw value if parsing fails + try { + if ($Task.Results -is [string]) { + $ResultString = $Task.Results.ToString().Trim() + if (($ResultString -match '^\[.*\]$') -or ($ResultString -match '^\{.*\}$')) { + $ResultData = $Task.Results | ConvertFrom-Json -ErrorAction Stop + } else { + # Not valid JSON format, use as is + $ResultData = $Task.Results + } + } else { + # Already an object, use as is + $ResultData = $Task.Results + } + } catch { + # If JSON parsing fails, use raw value + Write-LogMessage -API $APIName -message "Error parsing Task.Results as JSON: $_" -Sev 'Warning' + $ResultData = $Task.Results + } + } else { + $ResultData = $null + } + } catch { + Write-LogMessage -API $APIName -message "Error processing Task.Results: $_" -Sev 'Error' + $ResultData = $null + } + + $Results = @( + [PSCustomObject]@{ + RowKey = $Task.Tenant + Results = $ResultData + Timestamp = $Task.Timestamp + } + ) + } + + # Process the results if they exist + $ProcessedResults = [System.Collections.Generic.List[object]]::new() + foreach ($Result in $Results) { + try { + if ($null -ne $Result.Results) { + # Safe handling based on result type + if ($Result.Results -is [array] -or $Result.Results -is [System.Collections.ICollection]) { + # Already a collection, use as is + $ParsedResults = $Result.Results + } elseif ($Result.Results -is [string]) { + $ResultString = $Result.Results.ToString().Trim() + # Only try to parse as JSON if it looks like JSON + if (($ResultString -match '^\[.*\]$') -or ($ResultString -match '^\{.*\}$')) { + try { + $ParsedResults = $Result.Results | ConvertFrom-Json -ErrorAction Stop + } catch { + Write-LogMessage -API $APIName -message "Failed to parse result as JSON: $_" -Sev 'Warning' + # On failure, keep as string + $ParsedResults = $Result.Results + } + } else { + # Not valid JSON format + $ParsedResults = $Result.Results + } + } else { + # Any other object type + $ParsedResults = $Result.Results + } + + # Ensure results is always an array + if ($null -eq $ParsedResults -or 'null' -eq $ParsedResults) { + $Result.Results = @() + } else { + $Result.Results = @($ParsedResults) + } + + # Store tenant information with the result + $TenantId = $Result.RowKey + $TenantInfo = Get-Tenants -TenantFilter $TenantId -ErrorAction SilentlyContinue + if ($TenantInfo) { + $Result | Add-Member -NotePropertyName TenantName -NotePropertyValue $TenantInfo.displayName -Force + $Result | Add-Member -NotePropertyName TenantDefaultDomain -NotePropertyValue $TenantInfo.defaultDomainName -Force + $Result | Add-Member -NotePropertyName TenantId -NotePropertyValue $TenantInfo.customerId -Force + } + } + } catch { + Write-LogMessage -API $APIName -message "Error processing results for task $RowKey with tenant $($Result.RowKey): $_" -Sev 'Error' + # Set Results to an empty array to prevent further errors + $Result.Results = @() + } + $EndResult = $Result | Select-Object Timestamp, @{n = 'Tenant'; Expression = { $_.RowKey } }, Results + $ProcessedResults.Add($EndResult) + } + + # Combine task and results into one response + $Response = ConvertTo-Json -Depth 100 -InputObject @{ + Task = $Task + Details = $ProcessedResults + } + + # Return the response + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Response + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 new file mode 100644 index 000000000000..37ae04aa3a21 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-ListScheduledItems.ps1 @@ -0,0 +1,134 @@ +function Invoke-ListScheduledItems { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Scheduler.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $ScheduledItemFilter = [System.Collections.Generic.List[string]]::new() + $ScheduledItemFilter.Add("PartitionKey eq 'ScheduledTask'") + + $Id = $Request.Query.Id ?? $Request.Body.Id + if ($Id) { + # Interact with query parameters. + $ScheduledItemFilter.Add("RowKey eq '$($Id)'") + } else { + # Interact with query parameters or the body of the request. + $ShowHidden = $Request.Query.ShowHidden ?? $Request.Body.ShowHidden + $Name = $Request.Query.Name ?? $Request.Body.Name + $Type = $Request.Query.Type ?? $Request.Body.Type + $SearchTitle = $Request.query.SearchTitle ?? $Request.body.SearchTitle + + if ($ShowHidden -eq $true) { + $ScheduledItemFilter.Add("(Hidden eq true or Hidden eq 'True')") + } else { + $ScheduledItemFilter.Add("(Hidden eq false or Hidden eq 'False')") + } + + if ($Name) { + $ScheduledItemFilter.Add("Name eq '$($Name)'") + } + + } + + $Filter = $ScheduledItemFilter -join ' and ' + + Write-Host "Filter: $Filter" + $Table = Get-CIPPTable -TableName 'ScheduledTasks' + if ($ShowHidden -eq $true) { + $HiddenTasks = $false + } else { + $HiddenTasks = $true + } + $Tasks = Get-CIPPAzDataTableEntity @Table -Filter $Filter + Write-Information "Retrieved $($Tasks.Count) scheduled tasks from storage." + if ($Type) { + $Tasks = $Tasks | Where-Object { $_.command -eq $Type } + } + + if ($SearchTitle) { + $Tasks = $Tasks | Where-Object { $_.Name -like $SearchTitle } + } + + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + + if ($AllowedTenants -notcontains 'AllTenants') { + $TenantList = Get-Tenants -IncludeErrors | Select-Object customerId, defaultDomainName + $AllowedTenantDomains = $TenantList | Where-Object -Property customerId -In $AllowedTenants | Select-Object -ExpandProperty defaultDomainName + $Tasks = $Tasks | Where-Object -Property Tenant -In $AllowedTenantDomains + } + + Write-Information "Found $($Tasks.Count) scheduled tasks after filtering and access check." + + $ScheduledTasks = foreach ($Task in $Tasks) { + if (!$Task.Tenant -or !$Task.Command) { + Write-Information "Skipping invalid scheduled task entry: $($Task.RowKey)" + continue + } + + if ($Task.Parameters) { + $Task.Parameters = $Task.Parameters | ConvertFrom-Json -ErrorAction SilentlyContinue + } else { + $Task | Add-Member -NotePropertyName Parameters -NotePropertyValue @{} + } + if (!$Task.Recurrence) { + $Task | Add-Member -NotePropertyName Recurrence -NotePropertyValue 'Once' -Force + } elseif ($Task.Recurrence -eq 0 -or [string]::IsNullOrEmpty($Task.Recurrence)) { + $Task.Recurrence = 'Once' + } + try { + $Task.ExecutedTime = [DateTimeOffset]::FromUnixTimeSeconds($Task.ExecutedTime).UtcDateTime + } catch {} + try { + $Task.ScheduledTime = [DateTimeOffset]::FromUnixTimeSeconds($Task.ScheduledTime).UtcDateTime + } catch {} + + # Handle tenant group display information + if ($Task.TenantGroup) { + try { + $TenantGroupObject = $Task.TenantGroup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TenantGroupObject) { + # Create a tenant group object for the frontend formatting + $TenantGroupForDisplay = [PSCustomObject]@{ + label = $TenantGroupObject.label + value = $TenantGroupObject.value + type = 'Group' + } + $Task | Add-Member -NotePropertyName TenantGroupInfo -NotePropertyValue $TenantGroupForDisplay -Force + # Update the tenant to show the group object for proper formatting + $Task.Tenant = $TenantGroupForDisplay + } + } catch { + Write-Warning "Failed to parse tenant group information for task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to keeping original tenant value + } + } else { + $Task.Tenant = [PSCustomObject]@{ + label = $Task.Tenant + value = $Task.Tenant + type = 'Tenant' + } + } + if ($Task.Trigger) { + try { + $TriggerObject = $Task.Trigger | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TriggerObject) { + $Task | Add-Member -NotePropertyName Trigger -NotePropertyValue $TriggerObject -Force + } + } catch { + Write-Warning "Failed to parse trigger information for task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to keeping original trigger value + } + } + + $Task + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($ScheduledTasks | Sort-Object -Property ScheduledTime, ExecutedTime -Descending) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 new file mode 100644 index 000000000000..331490026b95 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-RemoveScheduledItem.ps1 @@ -0,0 +1,45 @@ +function Invoke-RemoveScheduledItem { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Scheduler.ReadWrite + .DESCRIPTION + Removes a scheduled item from CIPP's scheduler. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $RowKey = $Request.Query.id ? $Request.Query.id : $Request.Body.id + $task = @{ + RowKey = $RowKey + PartitionKey = 'ScheduledTask' + } + try { + $Table = Get-CIPPTable -TableName 'ScheduledTasks' + Remove-AzDataTableEntity -Force @Table -Entity $task + + $DetailTable = Get-CIPPTable -TableName 'ScheduledTaskDetails' + $Details = Get-CIPPAzDataTableEntity @DetailTable -Filter "PartitionKey eq '$($RowKey)'" -Property RowKey, PartitionKey, ETag + + if ($Details) { + Remove-AzDataTableEntity -Force @DetailTable -Entity $Details + } + + Write-LogMessage -Headers $Headers -API $APIName -message "Task removed: $($task.RowKey)" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APIName -message "Failed to remove task: $($task.RowKey). $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = 'Task removed successfully.' } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAPIPermissionList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAPIPermissionList.ps1 new file mode 100644 index 000000000000..13138a817e96 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAPIPermissionList.ps1 @@ -0,0 +1,17 @@ +function Invoke-ExecAPIPermissionList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Roles = Get-CIPPHttpFunctions -ByRoleGroup | ConvertTo-Json -Depth 10 + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Roles + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 new file mode 100644 index 000000000000..25f2b35400cf --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 @@ -0,0 +1,144 @@ +function Invoke-ExecAccessChecks { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Table = Get-CIPPTable -tablename 'AccessChecks' + $LastRun = (Get-Date).ToUniversalTime() + $4HoursAgo = (Get-Date).AddHours(-1).ToUniversalTime() + $TimestampFilter = $4HoursAgo.ToString('yyyy-MM-ddTHH:mm:ss.fffK') + + + switch ($Request.Query.Type) { + 'Permissions' { + if ($Request.Query.SkipCache -ne 'true' -or $Request.Query.SkipCache -ne $true) { + try { + $Cache = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq 'AccessPermissions' and Timestamp and Timestamp ge datetime'$TimestampFilter'" + $Results = $Cache.Data | ConvertFrom-Json -ErrorAction Stop + } catch { + $Results = $null + } + if (!$Results) { + $Results = Test-CIPPAccessPermissions -tenantfilter $env:TenantID -APIName $APINAME -Headers $Request.Headers + } else { + try { + $LastRun = [DateTime]::SpecifyKind($Cache.Timestamp.DateTime, [DateTimeKind]::Utc) + } catch { + $LastRun = $null + } + } + } else { + $Results = Test-CIPPAccessPermissions -tenantfilter $env:TenantID -APIName $APINAME -Headers $Request.Headers + } + } + 'Tenants' { + $AccessChecks = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'TenantAccessChecks'" + if (!$Request.Body.TenantId) { + try { + $Tenants = Get-Tenants -IncludeErrors | Where-Object { $_.customerId -ne $env:TenantID } + $Results = foreach ($Tenant in $Tenants) { + $TenantCheck = $AccessChecks | Where-Object -Property RowKey -EQ $Tenant.customerId | Select-Object -Property Data + $TenantResult = [PSCustomObject]@{ + TenantId = $Tenant.customerId + TenantName = $Tenant.displayName + DefaultDomainName = $Tenant.defaultDomainName + GraphStatus = 'Not run yet' + ExchangeStatus = 'Not run yet' + GDAPRoles = '' + MissingRoles = '' + LastRun = '' + GraphTest = '' + ExchangeTest = '' + OrgManagementRoles = @() + OrgManagementRolesMissing = @() + OrgManagementRepairNeeded = $false + } + if ($TenantCheck) { + $Data = @($TenantCheck.Data | ConvertFrom-Json -ErrorAction Stop) + $TenantResult.GraphStatus = $Data.GraphStatus + $TenantResult.ExchangeStatus = $Data.ExchangeStatus + $TenantResult.GDAPRoles = $Data.GDAPRoles + $TenantResult.MissingRoles = $Data.MissingRoles + $TenantResult.LastRun = $Data.LastRun + $TenantResult.GraphTest = $Data.GraphTest + $TenantResult.ExchangeTest = $Data.ExchangeTest + $TenantResult.OrgManagementRoles = $Data.OrgManagementRoles ? @($Data.OrgManagementRoles) : @() + $TenantResult.OrgManagementRolesMissing = $Data.OrgManagementRolesMissing ? @($Data.OrgManagementRolesMissing) : @() + $TenantResult.OrgManagementRepairNeeded = $Data.OrgManagementRolesMissing.Count -gt 0 + } + $TenantResult + } + + $LastRunTime = $AccessChecks | Sort-Object Timestamp | Select-Object -Property Timestamp -Last 1 + try { + $LastRun = [DateTime]::SpecifyKind($LastRunTime.Timestamp.DateTime, [DateTimeKind]::Utc) + } catch { + $LastRun = $null + } + + if (!$Results) { + $Results = @() + } + } catch { + Write-Warning "Error running tenant access check - $($_.Exception.Message)" + $Results = @() + } + } + + if ($Request.Query.SkipCache -eq 'true' -or $Request.Query.SkipCache -eq $true -or $LastRun -lt $4HoursAgo) { + $Message = Test-CIPPAccessTenant -Headers $Request.Headers + } + + if ($Request.Body.TenantId) { + $Tenant = Get-Tenants -TenantFilter $Request.Body.TenantId + $null = Test-CIPPAccessTenant -Tenant $Tenant.customerId -Headers $Request.Headers + $Results = "Refreshing tenant $($Tenant.displayName)" + } + + } + 'GDAP' { + if (!$Request.Query.SkipCache -eq 'true' -or !$Request.Query.SkipCache -eq $true) { + try { + $Cache = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq 'GDAPRelationships' and Timestamp ge datetime'$TimestampFilter'" + $Results = $Cache.Data | ConvertFrom-Json -ErrorAction Stop + } catch { + $Results = $null + } + if (!$Results) { + $Results = Test-CIPPGDAPRelationships + } else { + try { + $LastRun = [DateTime]::SpecifyKind($Cache.Timestamp.DateTime, [DateTimeKind]::Utc) + } catch { + $LastRun = $null + } + } + } else { + $Results = Test-CIPPGDAPRelationships + } + } + } + $Metadata = @{ + LastRun = $LastRun + } + if ($Message) { + $Metadata.AlertMessage = $Message + } + + $body = [pscustomobject]@{ + 'Results' = $Results + 'Metadata' = $Metadata + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAddTrustedIP.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAddTrustedIP.ps1 new file mode 100644 index 000000000000..9dc2f6bc543c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAddTrustedIP.ps1 @@ -0,0 +1,23 @@ +function Invoke-ExecAddTrustedIP { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CippTable -tablename 'trustedIps' + foreach ($IP in $Request.body.IP) { + Add-CIPPAzDataTableEntity @Table -Entity @{ + PartitionKey = $Request.Body.tenantfilter + RowKey = $IP + state = $Request.Body.State + } -Force + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ results = "Added $($Request.Body.IP) to database with state $($Request.Body.State) for $($Request.Body.tenantfilter)" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 new file mode 100644 index 000000000000..c38ece6e144c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecApiClient.ps1 @@ -0,0 +1,208 @@ +function Invoke-ExecApiClient { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Extension.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CippTable -tablename 'ApiClients' + $Action = $Request.Query.Action ?? $Request.Body.Action + + switch ($Action) { + 'List' { + $Apps = Get-CIPPAzDataTableEntity @Table | Where-Object { ![string]::IsNullOrEmpty($_.RowKey) } + if (!$Apps) { + $Apps = @() + } else { + $Apps = Get-CippApiClient + $Body = @{ Results = @($Apps) } + } + } + 'ListAvailable' { + $sitename = $env:WEBSITE_SITE_NAME + $Apps = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications?`$filter=signInAudience eq 'AzureAdMyOrg' and web/redirectUris/any(x:x eq 'https://$($sitename).azurewebsites.net/.auth/login/aad/callback')&`$top=999&`$select=appId,displayName,createdDateTime,api,web,passwordCredentials&`$count=true" -NoAuthCheck $true -asapp $true -ComplexFilter + $Body = @{ + Results = @($Apps) + } + } + 'AddUpdate' { + if ($Request.Body.ClientId -or $Request.Body.AppName) { + $ClientId = $Request.Body.ClientId.value ?? $Request.Body.ClientId + $AddUpdateSuccess = $false + try { + $ApiConfig = @{ + Headers = $Request.Headers + } + if ($ClientId) { + $ApiConfig.ClientId = $ClientId + $ApiConfig.ResetSecret = $Request.Body.CIPPAPI.ResetSecret + } + if ($Request.Body.AppName) { + $ApiConfig.AppName = $Request.Body.AppName + } + $APIConfig = New-CIPPAPIConfig @ApiConfig + + $ClientId = $APIConfig.ApplicationID + $AddedText = $APIConfig.Results + $AddUpdateSuccess = $true + } catch { + $AddedText = "Could not modify App Registrations. Check the CIPP documentation for API requirements. Error: $($_.Exception.Message)" + } + } + + if ($Request.Body.IpRange.value) { + $IpRange = [System.Collections.Generic.List[string]]::new() + $regexPattern = '^(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:/\d{1,2})?|(?:[0-9A-Fa-f]{1,4}:){1,7}[0-9A-Fa-f]{1,4}(?:/\d{1,3})?)$' + foreach ($IP in @($Request.Body.IPRange.value)) { + if ($IP -match $regexPattern) { + $IpRange.Add($IP) + } + } + } else { + $IpRange = @() + } + + if (!$AddUpdateSuccess -and !$ClientId) { + $Body = @{ + Results = $AddedText + } + } else { + $ExistingClient = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($ClientId)'" + if ($ExistingClient) { + $Client = $ExistingClient + $Client.Role = [string]$Request.Body.Role.value + $Client.IPRange = "$(@($IpRange) | ConvertTo-Json -Compress)" + $Client.Enabled = $Request.Body.Enabled ?? $false + Write-LogMessage -headers $Request.Headers -API 'ExecApiClient' -message "Updated API client $($Request.Body.ClientId)" -Sev 'Info' + $Results = 'API client updated' + } else { + $Client = @{ + 'PartitionKey' = 'ApiClients' + 'RowKey' = "$($ClientId)" + 'AppName' = "$($APIConfig.AppName ?? $Request.Body.ClientId.addedFields.displayName)" + 'Role' = [string]$Request.Body.Role.value + 'IPRange' = "$(@($IpRange) | ConvertTo-Json -Compress)" + 'Enabled' = $Request.Body.Enabled ?? $false + } + $Results = @{ + resultText = "API Client created with the name '$($Client.AppName)'. Use the Copy to Clipboard button to retrieve the secret." + copyField = $APIConfig.ApplicationSecret + state = 'success' + } + } + + Add-CIPPAzDataTableEntity @Table -Entity $Client -Force | Out-Null + $Body = @($Results) + } + } + 'GetAzureConfiguration' { + $Owner = $env:WEBSITE_OWNER_NAME + Write-Information "Owner: $Owner" + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + $FunctionAppName = $env:WEBSITE_SITE_NAME + try { + $APIClients = Get-CippApiAuth -RGName $RGName -FunctionAppName $FunctionAppName + $Results = $ApiClients + } catch { + $Results = @{ + Enabled = 'Could not get API clients, ensure you have the appropriate rights to read the Authentication settings.' + Error = (Get-CippException -Exception $_) + } + } + $Body = @{ + Results = $Results + } + } + 'SaveToAzure' { + $TenantId = $env:TenantID + $Owner = $env:WEBSITE_OWNER_NAME + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + $FunctionAppName = $env:WEBSITE_SITE_NAME + $AllClients = Get-CIPPAzDataTableEntity @Table -Filter 'Enabled eq true' | Where-Object { ![string]::IsNullOrEmpty($_.RowKey) } + $ClientIds = $AllClients.RowKey + try { + Set-CippApiAuth -RGName $RGName -FunctionAppName $FunctionAppName -TenantId $TenantId -ClientIds $ClientIds + $Body = @{ Results = 'API clients saved to Azure' } + Write-LogMessage -headers $Request.Headers -API 'ExecApiClient' -message 'Saved API clients to Azure' -Sev 'Info' + } catch { + $Body = @{ + Results = 'Failed to save allowed API clients to Azure, ensure your function app has the appropriate rights to make changes to the Authentication settings.' + Error = (Get-CippException -Exception $_) + } + Write-Information (Get-CippException -Exception $_ | ConvertTo-Json) + } + } + 'ResetSecret' { + $Client = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.ClientId)'" + if (!$Client) { + $Results = @{ + resultText = 'API client not found' + state = 'error' + } + } else { + $ApiConfig = New-CIPPAPIConfig -ResetSecret -AppId $Request.Body.ClientId -Headers $Request.Headers + + if ($ApiConfig.ApplicationSecret) { + $Results = @{ + resultText = "API secret reset for $($Client.AppName). Use the Copy to Clipboard button to retrieve the new secret." + copyField = $ApiConfig.ApplicationSecret + state = 'success' + } + } else { + $Results = @{ + resultText = "Failed to reset secret for $($Client.AppName)" + state = 'error' + } + } + } + $Body = @($Results) + } + 'Delete' { + try { + if ($Request.Body.ClientId) { + $ClientId = $Request.Body.ClientId.value ?? $Request.Body.ClientId + if ($Request.Body.RemoveAppReg -eq $true) { + Write-Information "Deleting API Client: $ClientId from Entra" + $App = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications?`$filter=appId eq '$($ClientId)'&`$select=id,appId,web" -NoAuthCheck $true -asapp $true + $Id = $App.id + if ($Id -and $App.web.redirectUris -like "*$($env:WEBSITE_SITE_NAME)*") { + New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$Id" -type DELETE -Body '{}' -NoAuthCheck $true -asapp $true + Write-Information "Deleted App Registration for $ClientId" + } else { + Write-Information "App Registration for $ClientId not found or Redirect URI does not match" + } + } + Write-Information "Deleting API Client: $ClientId from CIPP" + $Client = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($ClientId)'" -Property RowKey, PartitionKey + Remove-AzDataTableEntity @Table -Entity $Client -Force + Write-LogMessage -headers $Request.Headers -API 'ExecApiClient' -message "Deleted API client $ClientId" -Sev 'Info' + $Body = @{ Results = "API client $ClientId deleted" } + } else { + $Body = @{ Results = "API client $ClientId not found or not a valid CIPP-API application" } + } + } catch { + Write-LogMessage -headers $Request.Headers -API 'ExecApiClient' -message "Failed to remove app registration for $ClientId" -Sev 'Warning' + } + } + default { + $Body = @{Results = 'Invalid action' } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} + diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 new file mode 100644 index 000000000000..699550f4cf69 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackendURLs.ps1 @@ -0,0 +1,51 @@ +function Invoke-ExecBackendURLs { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Subscription = Get-CIPPAzFunctionAppSubId + $SWAName = $env:WEBSITE_SITE_NAME -replace 'cipp', 'CIPP-SWA-' + + # Write to the Azure Functions log stream. + Write-Host 'PowerShell HTTP trigger function processed a request.' + + $Owner = $env:WEBSITE_OWNER_NAME + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + + $results = [PSCustomObject]@{ + ResourceGroup = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/overview" + KeyVault = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.KeyVault/vaults/$($env:WEBSITE_SITE_NAME)/secrets" + FunctionApp = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/appServices" + FunctionConfig = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/configuration" + FunctionDeployment = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/sites/$($env:WEBSITE_SITE_NAME)/vstscd" + SWADomains = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/staticSites/$SWAName/customDomains" + SWARoles = "https://portal.azure.com/#@/resource/subscriptions/$Subscription/resourceGroups/$RGName/providers/Microsoft.Web/staticSites/$SWAName/roleManagement" + Subscription = $Subscription + RGName = $RGName + FunctionName = $env:WEBSITE_SITE_NAME + SWAName = $SWAName + Hosted = $env:CIPP_HOSTED -eq 'true' ?? $false + OS = $IsLinux ? 'Linux' : 'Windows' + SKU = $env:WEBSITE_SKU + Timezone = $env:WEBSITE_TIME_ZONE ?? 'UTC' + BusinessHoursStart = $env:CIPP_BUSINESS_HOURS_START ?? '09:00' + BusinessHoursEnd = $env:CIPP_BUSINESS_HOURS_END ?? '17:00' + } + + + $body = @{Results = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [httpstatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 new file mode 100644 index 000000000000..064784c49851 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 @@ -0,0 +1,56 @@ +function Invoke-ExecBackupRetentionConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable -TableName Config + $Filter = "PartitionKey eq 'BackupRetention' and RowKey eq 'Settings'" + + $results = try { + if ($Request.Query.List) { + $RetentionSettings = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if (!$RetentionSettings) { + # Return default values if not set + @{ + RetentionDays = 30 + } + } else { + @{ + RetentionDays = [int]$RetentionSettings.RetentionDays + } + } + } else { + $RetentionDays = [int]$Request.Body.RetentionDays + + # Validate minimum value + if ($RetentionDays -lt 7) { + throw 'Retention days must be at least 7 days' + } + + $RetentionConfig = @{ + 'RetentionDays' = $RetentionDays + 'PartitionKey' = 'BackupRetention' + 'RowKey' = 'Settings' + } + + Add-CIPPAzDataTableEntity @Table -Entity $RetentionConfig -Force | Out-Null + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message "Set backup retention to $RetentionDays days" -Sev 'Info' + "Successfully set backup retention to $RetentionDays days" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message "Failed to set backup retention configuration: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + "Failed to set configuration: $($ErrorMessage.NormalizedError)" + } + + $body = [pscustomobject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBrandingSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBrandingSettings.ps1 new file mode 100644 index 000000000000..ddc4ac991934 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBrandingSettings.ps1 @@ -0,0 +1,117 @@ +Function Invoke-ExecBrandingSettings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $StatusCode = [HttpStatusCode]::OK + @{} + + try { + $Table = Get-CIPPTable -TableName Config + $Filter = "PartitionKey eq 'BrandingSettings' and RowKey eq 'BrandingSettings'" + $BrandingConfig = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (-not $BrandingConfig) { + $BrandingConfig = @{ + PartitionKey = 'BrandingSettings' + RowKey = 'BrandingSettings' + colour = '#F77F00' + logo = $null + } + } + + $Action = if ($Request.Body.Action) { $Request.Body.Action } else { $Request.Query.Action } + + $Results = switch ($Action) { + 'Get' { + @{ + colour = $BrandingConfig.colour + logo = $BrandingConfig.logo + } + } + 'Set' { + $Updated = $false + + if ($Request.Body.colour) { + $Colour = $Request.Body.colour + if ($Colour -match '^#[0-9A-Fa-f]{6}$') { + $BrandingConfig.colour = $Colour + $Updated = $true + } else { + $StatusCode = [HttpStatusCode]::BadRequest + 'Error: Invalid color format. Please use hex format (e.g., #F77F00)' + } + } + + if ($Request.Body.logo) { + $Logo = $Request.Body.logo + if ($Logo -match '^data:image\/') { + $Base64Data = $Logo -replace '^data:image\/[^;]+;base64,', '' + try { + $ImageBytes = [Convert]::FromBase64String($Base64Data) + if ($ImageBytes.Length -le 2097152) { + Write-Host 'updating logo' + $BrandingConfig | Add-Member -MemberType NoteProperty -Name 'logo' -Value $Logo -Force + $Updated = $true + } else { + $StatusCode = [HttpStatusCode]::BadRequest + 'Error: Image size must be less than 2MB' + } + } catch { + $StatusCode = [HttpStatusCode]::BadRequest + 'Error: Invalid base64 image data: ' + $_.Exception.Message + } + } elseif ($Logo -eq $null -or $Logo -eq '') { + $BrandingConfig | Add-Member -MemberType NoteProperty -Name 'logo' -Value $null -Force + $Updated = $true + } + } + + if ($Updated) { + $BrandingConfig.PartitionKey = 'BrandingSettings' + $BrandingConfig.RowKey = 'BrandingSettings' + + Add-CIPPAzDataTableEntity @Table -Entity $BrandingConfig -Force | Out-Null + Write-LogMessage -API $APIName -tenant 'Global' -headers $Request.Headers -message 'Updated branding settings' -Sev 'Info' + 'Successfully updated branding settings' + } else { + $StatusCode = [HttpStatusCode]::BadRequest + 'Error: No valid branding data provided' + } + } + 'Reset' { + $DefaultConfig = @{ + PartitionKey = 'BrandingSettings' + RowKey = 'BrandingSettings' + colour = '#F77F00' + logo = $null + } + + Add-CIPPAzDataTableEntity @Table -Entity $DefaultConfig -Force | Out-Null + Write-LogMessage -API $APIName -tenant 'Global' -headers $Request.Headers -message 'Reset branding settings to defaults' -Sev 'Info' + 'Successfully reset branding settings to defaults' + } + default { + $StatusCode = [HttpStatusCode]::BadRequest + 'Error: Invalid action specified' + } + } + } catch { + Write-LogMessage -API $APIName -tenant 'Global' -headers $Request.Headers -message "Branding Settings API failed: $($_.Exception.Message)" -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + "Failed to process branding settings: $($_.Exception.Message)" + } + + $body = [pscustomobject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCPVPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCPVPermissions.ps1 new file mode 100644 index 000000000000..29dfed35e4d0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCPVPermissions.ps1 @@ -0,0 +1,62 @@ +function Invoke-ExecCPVPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Body.tenantFilter + + $Tenant = Get-Tenants -TenantFilter $TenantFilter -IncludeErrors + + if ($Tenant) { + Write-Host "Our tenant is $($Tenant.displayName) - $($Tenant.defaultDomainName)" + + $CPVConsentParams = @{ + TenantFilter = $TenantFilter + } + if ($Request.Query.ResetSP -eq 'true') { + $CPVConsentParams.ResetSP = $true + } + + $GraphRequest = try { + if ($TenantFilter -notin @('PartnerTenant', $env:TenantID)) { + Set-CIPPCPVConsent @CPVConsentParams + } else { + $TenantFilter = $env:TenantID + $Tenant = [PSCustomObject]@{ + displayName = '*Partner Tenant' + defaultDomainName = $env:TenantID + } + } + Add-CIPPApplicationPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -tenantfilter $TenantFilter + Add-CIPPDelegatedPermission -RequiredResourceAccess 'CIPPDefaults' -ApplicationId $env:ApplicationID -tenantfilter $TenantFilter + if ($TenantFilter -notin @('PartnerTenant', $env:TenantID)) { + Set-CIPPSAMAdminRoles -TenantFilter $TenantFilter + } + $Success = $true + } catch { + "Failed to update permissions for $($Tenant.displayName): $($_.Exception.Message)" + $Success = $false + } + + $Tenant = Get-Tenants -IncludeAll | Where-Object -Property customerId -EQ $TenantFilter | Select-Object -First 1 + + } else { + $GraphRequest = 'Tenant not found' + $Success = $false + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = $GraphRequest + Metadata = @{ + Heading = ('CPV Permission - {0} ({1})' -f $Tenant.displayName, $Tenant.defaultDomainName) + Success = $Success + } + } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCippReplacemap.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCippReplacemap.ps1 new file mode 100644 index 000000000000..54d11633e42f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCippReplacemap.ps1 @@ -0,0 +1,73 @@ +function Invoke-ExecCippReplacemap { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Config.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CippTable -tablename 'CippReplacemap' + $Action = $Request.Query.Action ?? $Request.Body.Action + $TenantId = $Request.Query.tenantId ?? $Request.Body.tenantId + if ($TenantId -eq 'AllTenants') { + $customerId = $TenantId + } else { + # ensure we use a consistent id for the table storage + $Tenant = Get-Tenants -TenantFilter $TenantId + $customerId = $Tenant.customerId + } + + if (!$customerId) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'customerId is required' + }) + return + } + + switch ($Action) { + 'List' { + $Variables = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$customerId'" + if (!$Variables) { + $Variables = @() + } + $Body = @{ Results = @($Variables) } + } + 'AddEdit' { + $VariableName = $Request.Body.RowKey + $VariableValue = $Request.Body.Value + $VariableDescription = $Request.Body.Description + + $VariableEntity = @{ + PartitionKey = $customerId + RowKey = $VariableName + Value = $VariableValue + Description = $VariableDescription + } + + Add-CIPPAzDataTableEntity @Table -Entity $VariableEntity -Force + $Body = @{ Results = "Variable '$VariableName' saved successfully" } + } + 'Delete' { + $VariableName = $Request.Body.RowKey + + $VariableEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$customerId' and RowKey eq '$VariableName'" + if ($VariableEntity) { + Remove-AzDataTableEntity @Table -Entity $VariableEntity -Force + $Body = @{ Results = "Variable '$VariableName' deleted successfully" } + } else { + $Body = @{ Results = "Variable '$VariableName' not found" } + } + } + default { + $Body = @{ Results = 'Invalid action' } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCreateDefaultGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCreateDefaultGroups.ps1 new file mode 100644 index 000000000000..bd2a682429ac --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCreateDefaultGroups.ps1 @@ -0,0 +1,66 @@ +function Invoke-ExecCreateDefaultGroups { + <# + .SYNOPSIS + Create default tenant groups + .DESCRIPTION + This function creates a set of default tenant groups that are commonly used + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Groups.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $Table = Get-CippTable -tablename 'TenantGroups' + $Results = [System.Collections.Generic.List[object]]::new() + $ExistingGroups = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'TenantGroup' and Type eq 'dynamic'" + $DefaultGroups = '[{"PartitionKey":"TenantGroup","RowKey":"369d985e-0fba-48f9-844f-9f793b10a12c","Description":"This group does not have a license for intune, nor a license for Entra ID Premium","Description@type":null,"DynamicRules":"[{\"property\":\"availableServicePlan\",\"operator\":\"notIn\",\"value\":[{\"label\":\"Microsoft Intune\",\"value\":\"INTUNE_A\",\"id\":\"c1ec4a95-1f05-45b3-a911-aa3fa01094f5\"}]},{\"property\":\"availableServicePlan\",\"operator\":\"notIn\",\"value\":[{\"label\":\"Microsoft Entra ID P1\",\"value\":\"AAD_PREMIUM\",\"id\":\"41781fb2-bc02-4b7c-bd55-b576c07bb09d\"}]}]","DynamicRules@type":null,"GroupType":"dynamic","GroupType@type":null,"RuleLogic":"and","RuleLogic@type":null,"Name":"Not Intune and Entra Premium Capable","Name@type":null},{"PartitionKey":"TenantGroup","RowKey":"4dbca08b-7dc5-4e0f-bc25-14a90c8e0941","Description":"This group has atleast one Business Premium License available","Description@type":null,"DynamicRules":"[{\"property\":\"availableLicense\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft 365 Business Premium\",\"value\":\"SPB\"}]},{\"property\":\"availableLicense\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft 365 Business Premium (no Teams)\",\"value\":\"Microsoft_365_ Business_ Premium_(no Teams)\"}]},{\"property\":\"availableLicense\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft 365 Business Premium Donation\",\"value\":\"Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing)\"}]},{\"property\":\"availableLicense\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft 365 Business Premium EEA (no Teams)\",\"value\":\"Office_365_w\/o_Teams_Bundle_Business_Premium\"}]}]","DynamicRules@type":null,"GroupType":"dynamic","GroupType@type":null,"RuleLogic":"or","RuleLogic@type":null,"Name":"Business Premium License available","Name@type":null},{"PartitionKey":"TenantGroup","RowKey":"703c0e69-84a8-4dcf-a1c2-4986d2ccc850","Description":"This group does have a license for Entra Premium but does not have a license for Intune","Description@type":null,"DynamicRules":"[{\"property\":\"availableServicePlan\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft Entra ID P1\",\"value\":\"AAD_PREMIUM\",\"id\":\"41781fb2-bc02-4b7c-bd55-b576c07bb09d\"}]},{\"property\":\"availableServicePlan\",\"operator\":\"notIn\",\"value\":[{\"label\":\"Microsoft Intune\",\"value\":\"INTUNE_A\",\"id\":\"c1ec4a95-1f05-45b3-a911-aa3fa01094f5\"}]}]","DynamicRules@type":null,"GroupType":"dynamic","GroupType@type":null,"RuleLogic":"and","RuleLogic@type":null,"Name":"Entra Premium Capable, Not Intune Capable","Name@type":null},{"PartitionKey":"TenantGroup","RowKey":"c1dadbc0-f0b4-448c-a2e6-e1938ba102e0","Description":"This group has Intune and Entra ID Premium available","Description@type":null,"DynamicRules":"{\"property\":\"availableServicePlan\",\"operator\":\"in\",\"value\":[{\"label\":\"Microsoft Intune\",\"value\":\"INTUNE_A\"},{\"label\":\"Microsoft Entra ID P1\",\"value\":\"AAD_PREMIUM\"}]}","DynamicRules@type":null,"GroupType":"dynamic","GroupType@type":null,"RuleLogic":"and","RuleLogic@type":null,"Name":"Entra ID Premium and Intune Capable","Name@type":null}]' | ConvertFrom-Json + + + foreach ($Group in $DefaultGroups) { + # Check if group with same name already exists + $ExistingGroup = $ExistingGroups | Where-Object -Property Name -EQ $group.Name + if ($ExistingGroup) { + $Results.Add(@{ + resultText = "Group '$($Group.Name)' already exists, skipping" + state = 'warning' + }) + continue + } + $GroupEntity = @{ + PartitionKey = 'TenantGroup' + RowKey = $group.RowKey + Name = $Group.Name + Description = $Group.Description + GroupType = $Group.GroupType + DynamicRules = $Group.DynamicRules + RuleLogic = $Group.RuleLogic + } + Add-CIPPAzDataTableEntity @Table -Entity $GroupEntity -Force + + $Results.Add(@{ + resultText = "Created default group: '$($Group.Name)'" + state = 'success' + }) + + Write-LogMessage -API 'TenantGroups' -message "Created default tenant group: $($Group.Name)" -sev Info + } + + $Body = @{ Results = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'TenantGroups' -message "Failed to create default groups: $ErrorMessage" -sev Error + $Body = @{ Results = "Failed to create default groups: $ErrorMessage" } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $Body + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomData.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomData.ps1 new file mode 100644 index 000000000000..61c8fac9ad44 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomData.ps1 @@ -0,0 +1,500 @@ +function Invoke-ExecCustomData { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Action = $Request.Query.Action ?? $Request.Body.Action + $CustomDataTable = Get-CippTable -TableName 'CustomData' + $CustomDataMappingsTable = Get-CippTable -TableName 'CustomDataMappings' + + Write-Information "Executing action '$Action'" + + switch ($Action) { + 'ListSchemaExtensions' { + try { + $SchemaExtensions = Get-CIPPAzDataTableEntity @CustomDataTable -Filter "PartitionKey eq 'SchemaExtension'" | Select-Object -ExpandProperty JSON | ConvertFrom-Json + if (!$SchemaExtensions -or $SchemaExtensions.id -notmatch '_') { + $SchemaExtensions = Get-CIPPSchemaExtensions | Sort-Object id + } + $Body = @{ + Results = @($SchemaExtensions) + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to retrieve schema extensions: $($_.Exception.Message)" + } + ) + } + } + } + 'AddSchemaExtension' { + try { + $SchemaExtension = $Request.Body.schemaExtension + if (!$SchemaExtension) { + throw 'SchemaExtension data is missing in the request body.' + } + + $Entity = @{ + PartitionKey = 'SchemaExtension' + RowKey = $SchemaExtension.id + JSON = [string]($SchemaExtension | ConvertTo-Json -Depth 5 -Compress) + } + + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $Entity -Force + $SchemaExtensions = Get-CIPPSchemaExtensions | Where-Object { $_.id -eq $SchemaExtension.id } + + $Body = @{ + Results = @{ + state = 'success' + resultText = "Schema extension '$($SchemaExtension.id)' added successfully." + } + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to add schema extension: $($_.Exception.Message)" + } + ) + } + } + } + 'DeleteSchema' { + try { + $SchemaId = $Request.Body.id + if (!$SchemaId) { + throw 'Schema ID is missing in the request body.' + } + + # Retrieve the schema extension entity + $SchemaEntity = Get-CIPPAzDataTableEntity @CustomDataTable -Filter "PartitionKey eq 'SchemaExtension'" | Where-Object { $SchemaId -match $_.RowKey } + if (!$SchemaEntity) { + throw "Schema extension with ID '$SchemaId' not found." + } + + # Ensure the schema is in 'InDevelopment' state before deletion + $SchemaDefinition = $SchemaEntity.JSON | ConvertFrom-Json + if ($SchemaDefinition.status -ne 'InDevelopment') { + throw "Schema extension '$SchemaId' cannot be deleted because it is not in 'InDevelopment' state." + } + + try { + $null = New-GraphPOSTRequest -Type DELETE -Uri "https://graph.microsoft.com/v1.0/schemaExtensions/$SchemaId" -AsApp $true -NoAuthCheck $true -tenantid $env:TenantID -Verbose + } catch { + Write-Warning "Schema extension '$SchemaId' not found in Microsoft Graph." + } + + + # Delete the schema extension entity + Remove-AzDataTableEntity @CustomDataTable -Entity $SchemaEntity + + $Body = @{ + Results = @{ + state = 'success' + resultText = "Schema extension '$SchemaId' deleted successfully." + } + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to delete schema extension: $($_.Exception.Message)" + } + ) + } + } + } + 'AddSchemaProperty' { + try { + $SchemaId = $Request.Body.id + $Name = $Request.Body.name + $Type = $Request.Body.type + $NewProperty = @{ + name = $Name + type = $Type + } + if (!$SchemaId) { + throw 'Schema ID is missing in the request body.' + } + if (!$Name -or !$Type) { + throw 'Property data is missing or incomplete in the request body.' + } + + # Retrieve the schema extension entity + $SchemaEntity = Get-CIPPAzDataTableEntity @CustomDataTable -Filter "PartitionKey eq 'SchemaExtension'" | Where-Object { $SchemaId -match $_.RowKey } + if (!$SchemaEntity) { + throw "Schema extension with ID '$SchemaId' not found." + } + + # Parse the schema definition + $SchemaDefinition = $SchemaEntity.JSON | ConvertFrom-Json + + if ($SchemaDefinition.status -eq 'Deprecated') { + throw "Properties cannot be added to schema extension '$SchemaId' because it is in the 'Deprecated' state." + } + + # Check if the property already exists + if ($SchemaDefinition.properties | Where-Object { $_.name -eq $NewProperty.name }) { + throw "Property with name '$($NewProperty.name)' already exists in schema extension '$SchemaId'." + } + + # Add the new property + $Properties = [System.Collections.Generic.List[object]]::new() + foreach ($Property in $SchemaDefinition.properties) { + $Properties.Add($Property) + } + $Properties.Add($NewProperty) + $SchemaDefinition.properties = $Properties + + # Update the schema extension entity + $SchemaEntity.JSON = [string]($SchemaDefinition | ConvertTo-Json -Depth 5 -Compress) + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $SchemaEntity -Force + try { $null = Get-CIPPSchemaExtensions } catch {} + + $Body = @{ + Results = @{ + state = 'success' + resultText = "Property '$($NewProperty.name)' added to schema extension '$SchemaId' successfully." + } + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to add property to schema extension: $($_.Exception.Message)" + } + ) + } + } + } + 'ChangeSchemaState' { + try { + $SchemaId = $Request.Body.id + $NewStatus = $Request.Body.status + if (!$SchemaId) { + throw 'Schema ID is missing in the request body.' + } + if (!$NewStatus) { + throw 'New status is missing in the request body.' + } + + # Retrieve the schema extension entity + $SchemaEntity = Get-CIPPAzDataTableEntity @CustomDataTable -Filter "PartitionKey eq 'SchemaExtension'" | Where-Object { $SchemaId -match $_.RowKey } + if (!$SchemaEntity) { + throw "Schema extension with ID '$SchemaId' not found." + } + + # Parse the schema definition + $SchemaDefinition = $SchemaEntity.JSON | ConvertFrom-Json + + # Check if the status is already the same + if ($SchemaDefinition.status -eq $NewStatus) { + throw "Schema extension '$SchemaId' is already in the '$NewStatus' state." + } + + # Update the status + $SchemaDefinition.status = $NewStatus + + # Update the schema extension entity + $SchemaEntity.JSON = [string]($SchemaDefinition | ConvertTo-Json -Depth 5 -Compress) + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $SchemaEntity -Force + $null = Get-CIPPSchemaExtensions + + $Body = @{ + Results = @{ + state = 'success' + resultText = "Schema extension '$SchemaId' status changed to '$NewStatus' successfully." + } + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to change schema extension status: $($_.Exception.Message)" + } + ) + } + } + } + 'ListDirectoryExtensions' { + try { + $Uri = "https://graph.microsoft.com/beta/applications(appId='$($env:ApplicationID)')/extensionProperties" + $DirectoryExtensions = New-GraphGetRequest -uri $Uri -AsApp $true -NoAuthCheck $true -tenantid $env:TenantID + $Existing = Get-CIPPAzDataTableEntity @CustomDataTable -Filter "PartitionKey eq 'DirectoryExtension'" + + foreach ($DirectoryExtension in $DirectoryExtensions) { + if ($Existing -match $DirectoryExtension.name) { + continue + } + $Entity = @{ + PartitionKey = 'DirectoryExtension' + RowKey = $DirectoryExtension.name + JSON = [string](ConvertTo-Json $DirectoryExtension -Compress -Depth 5) + } + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $Entity -Force + } + + $Body = @{ + Results = @($DirectoryExtensions) + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to retrieve directory extensions: $($_.Exception.Message)" + } + ) + } + } + } + 'AddDirectoryExtension' { + try { + $ExtensionName = $Request.Body.name + $DataType = $Request.Body.dataType + $TargetObjects = $Request.Body.targetObjects + $IsMultiValued = $Request.Body.isMultiValued -eq $true + + if (!$ExtensionName -or !$DataType -or !$TargetObjects) { + throw 'Extension name, data type, and target objects are required.' + } + + $AppId = $env:ApplicationID # Replace with your application ID + $Uri = "https://graph.microsoft.com/beta/applications(appId='$AppId')/extensionProperties" + + $BodyContent = @{ + name = $ExtensionName + dataType = $DataType + targetObjects = $TargetObjects + isMultiValued = $IsMultiValued + } | ConvertTo-Json -Depth 5 -Compress + + $Response = New-GraphPOSTRequest -Uri $Uri -Body $BodyContent -AsApp $true -NoAuthCheck $true -tenantid $env:TenantID + + $Body = @{ + Results = @{ + state = 'success' + resultText = "Directory extension '$ExtensionName' added successfully." + extension = $Response + } + } + + # store the extension in the custom data table + $Entity = @{ + PartitionKey = 'DirectoryExtension' + RowKey = $Response.name + JSON = [string](ConvertTo-Json $Response -Compress -Depth 5) + } + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $Entity -Force + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to add directory extension: $($_.Exception.Message)" + } + ) + } + } + } + 'DeleteDirectoryExtension' { + try { + $ExtensionName = $Request.Body.name + $ExtensionId = $Request.Body.id + if (!$ExtensionName) { + throw 'Extension name is missing in the request body.' + } + $AppId = $env:ApplicationID # Replace with your application ID + $Uri = "https://graph.microsoft.com/beta/applications(appId='$AppId')/extensionProperties/$ExtensionId" + + # Delete the directory extension from Microsoft Graph + $null = New-GraphPOSTRequest -Type DELETE -Uri $Uri -AsApp $true -NoAuthCheck $true -tenantid $env:TenantID + try { + $CustomDataTable = Get-CippTable -TableName 'CustomData' + $ExtensionEntity = Get-CIPPAzDataTableEntity @CustomDataTable -Filter "PartitionKey eq 'DirectoryExtension' and RowKey eq '$ExtensionName'" + # Remove the extension from the custom data table + if ($ExtensionEntity) { + Remove-AzDataTableEntity @CustomDataTable -Entity $ExtensionEntity + } + } catch { + Write-Warning "Failed to delete directory extension from custom data table: $($_.Exception.Message)" + } + + $Body = @{ + Results = @{ + state = 'success' + resultText = "Directory extension '$ExtensionName' deleted successfully." + } + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to delete directory extension: $($_.Exception.Message)" + } + ) + } + } + } + 'ListAvailableAttributes' { + $TargetObject = $Request.Query.targetObject ?? 'All' + $AvailableAttributes = Get-CippCustomDataAttributes -TargetObject $TargetObject + $Body = @{ + Results = @($AvailableAttributes) + } + } + 'ListMappings' { + try { + $Mappings = Get-CIPPAzDataTableEntity @CustomDataMappingsTable | ForEach-Object { + $Mapping = $_.JSON | ConvertFrom-Json -AsHashtable + + Write-Information ($Mapping | ConvertTo-Json -Depth 5) + [PSCustomObject]@{ + id = $_.RowKey + tenant = $Mapping.tenantFilter.label + dataset = $Mapping.extensionSyncDataset.label ?? 'N/A' + sourceType = $Mapping.sourceType.label + directoryObject = $Mapping.directoryObjectType.label + syncProperty = $Mapping.extensionSyncProperty.label ?? ($Mapping.extensionSyncDataset ? @($Mapping.extensionSyncDataset.addedFields.select -split ',') : 'N/A') + customDataAttribute = $Mapping.customDataAttribute.label + } + } + $Body = @{ + Results = @($Mappings) + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to retrieve mappings: $($_.Exception.Message)" + } + ) + } + } + } + 'AddEditMapping' { + try { + $Mapping = $Request.Body.Mapping + if (!$Mapping) { + throw 'Mapping data is missing in the request body.' + } + $MappingId = $Request.Body.id ?? [Guid]::NewGuid().ToString() + $Entity = @{ + PartitionKey = 'Mapping' + RowKey = [string]$MappingId + JSON = [string]($Mapping | ConvertTo-Json -Depth 5 -Compress) + } + + Add-CIPPAzDataTableEntity @CustomDataMappingsTable -Entity $Entity -Force + Register-CIPPExtensionScheduledTasks + + $Body = @{ + Results = @{ + state = 'success' + resultText = 'Mapping saved successfully.' + } + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to add mapping: $($_.Exception.Message)" + } + ) + } + } + } + 'DeleteMapping' { + try { + $MappingId = $Request.Body.id + if (!$MappingId) { + throw 'Mapping ID is missing in the request body.' + } + + # Retrieve the mapping entity + $MappingEntity = Get-CIPPAzDataTableEntity @CustomDataMappingsTable -Filter "PartitionKey eq 'Mapping' and RowKey eq '$MappingId'" + if (!$MappingEntity) { + throw "Mapping with ID '$MappingId' not found." + } + + # Delete the mapping entity + Remove-AzDataTableEntity @CustomDataMappingsTable -Entity $MappingEntity + Register-CIPPExtensionScheduledTasks + $Body = @{ + Results = @{ + state = 'success' + resultText = 'Mapping deleted successfully.' + } + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to delete mapping: $($_.Exception.Message)" + } + ) + } + } + } + 'GetMapping' { + try { + $MappingId = $Request.Query.id + if (!$MappingId) { + throw 'Mapping ID is missing in the request query.' + } + + # Retrieve the mapping entity + $MappingEntity = Get-CIPPAzDataTableEntity @CustomDataMappingsTable -Filter "PartitionKey eq 'Mapping' and RowKey eq '$MappingId'" + if (!$MappingEntity) { + throw "Mapping with ID '$MappingId' not found." + } + + $Mapping = $MappingEntity.JSON | ConvertFrom-Json + $Body = @{ + Results = $Mapping + } + } catch { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = "Failed to retrieve mapping: $($_.Exception.Message)" + } + ) + } + } + } + + default { + $Body = @{ + Results = @( + @{ + state = 'error' + resultText = 'Invalid action specified.' + } + ) + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 new file mode 100644 index 000000000000..dc3a91b75e05 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 @@ -0,0 +1,279 @@ +function Invoke-ExecCustomRole { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CippTable -tablename 'CustomRoles' + $AccessRoleGroupTable = Get-CippTable -tablename 'AccessRoleGroups' + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' + $Action = $Request.Query.Action ?? $Request.Body.Action + + $CIPPCore = (Get-Module -Name CIPPCore).ModuleBase + $CIPPRoot = (Get-Item -Path $CIPPCore).Parent.Parent.FullName + + $CippRolesJson = Join-Path -Path $CIPPRoot -ChildPath 'Config\cipp-roles.json' + if (Test-Path $CippRolesJson) { + $DefaultRoles = Get-Content -Path $CippRolesJson | ConvertFrom-Json + } else { + throw "Could not find $CippRolesJson" + } + + $BlockedRoles = @('anonymous', 'authenticated') + + if ($Request.Body.RoleName -in $BlockedRoles) { + throw "Role name $($Request.Body.RoleName) cannot be used" + } + + switch ($Action) { + 'AddUpdate' { + try { + $Results = [System.Collections.Generic.List[string]]::new() + Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Saved custom role $($Request.Body.RoleName)" -Sev 'Info' + + # Process IP Range if provided (but not for superadmin to prevent lockout) + if ($Request.Body.IpRange -and $Request.Body.RoleName -ne 'superadmin') { + $IpRange = [System.Collections.Generic.List[string]]::new() + $regexPattern = '^(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:/\d{1,2})?|(?:[0-9A-Fa-f]{1,4}:){1,7}[0-9A-Fa-f]{1,4}(?:/\d{1,3})?)$' + foreach ($IP in @($Request.Body.IpRange)) { + if ($IP -match $regexPattern) { + $IpRange.Add($IP) + } + } + } else { + $IpRange = @() + } + + if ($Request.Body.RoleName -notin $DefaultRoles.PSObject.Properties.Name) { + $Role = @{ + 'PartitionKey' = 'CustomRoles' + 'RowKey' = "$($Request.Body.RoleName.ToLower())" + 'Permissions' = "$($Request.Body.Permissions | ConvertTo-Json -Compress)" + 'AllowedTenants' = "$($Request.Body.AllowedTenants | ConvertTo-Json -Compress)" + 'BlockedTenants' = "$($Request.Body.BlockedTenants | ConvertTo-Json -Compress)" + 'BlockedEndpoints' = "$($Request.Body.BlockedEndpoints | ConvertTo-Json -Compress)" + } + Add-CIPPAzDataTableEntity @Table -Entity $Role -Force | Out-Null + $Results.Add("Custom role $($Request.Body.RoleName) saved") + } + if ($Request.Body.RoleName -eq 'superadmin' -and $Request.Body.IpRange) { + $Results.Add('Note: IP restrictions are not allowed on the superadmin role to prevent lockout issues.') + } + # Store IP ranges in separate table (works for both custom and default roles) + if ($IpRange.Count -gt 0 -and $Request.Body.RoleName -ne 'superadmin') { + $IPRangeEntity = @{ + 'PartitionKey' = 'AccessIPRanges' + 'RowKey' = "$($Request.Body.RoleName.ToLower())" + 'IPRanges' = "$(@($IpRange) | ConvertTo-Json -Compress)" + } + Add-CIPPAzDataTableEntity @AccessIPRangeTable -Entity $IPRangeEntity -Force | Out-Null + $Results.Add("IP ranges configured for '$($Request.Body.RoleName)' role.") + } else { + # Remove IP ranges if none provided or role is superadmin + $ExistingIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Request.Body.RoleName.ToLower())'" + if ($ExistingIPRange) { + Remove-AzDataTableEntity -Force @AccessIPRangeTable -Entity $ExistingIPRange + if ($Request.Body.RoleName -ne 'superadmin') { + $Results.Add("IP ranges removed from '$($Request.Body.RoleName)' role.") + } + } + } + if ($Request.Body.EntraGroup) { + $RoleGroup = @{ + 'PartitionKey' = 'AccessRoleGroups' + 'RowKey' = "$($Request.Body.RoleName.ToLower())" + 'GroupId' = $Request.Body.EntraGroup.value + 'GroupName' = $Request.Body.EntraGroup.label + } + Add-CIPPAzDataTableEntity @AccessRoleGroupTable -Entity $RoleGroup -Force | Out-Null + $Results.Add("Security group '$($Request.Body.EntraGroup.label)' assigned to the '$($Request.Body.RoleName)' role.") + Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Security group '$($Request.Body.EntraGroup.label)' assigned to the '$($Request.Body.RoleName)' role." -Sev 'Info' + } else { + $AccessRoleGroup = Get-CIPPAzDataTableEntity @AccessRoleGroupTable -Filter "RowKey eq '$($Request.Body.RoleName)'" + if ($AccessRoleGroup) { + Remove-AzDataTableEntity -Force @AccessRoleGroupTable -Entity $AccessRoleGroup + $Results.Add("Security group '$($AccessRoleGroup.GroupName)' removed from the '$($Request.Body.RoleName)' role.") + Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Security group '$($AccessRoleGroup.GroupName)' removed from the '$($Request.Body.RoleName)' role." -Sev 'Info' + } + } + $Body = @{Results = $Results } + } catch { + Write-Warning "Failed to save custom role $($Request.Body.RoleName): $($_.Exception.Message)" + Write-Warning $_.InvocationInfo.PositionMessage + $Body = @{Results = "Failed to save custom role $($Request.Body.RoleName)" } + } + } + 'Clone' { + try { + if ($Request.Body.NewRoleName -in $DefaultRoles.PSObject.Properties.Name) { + throw "Role name $($Request.Body.NewRoleName) cannot be used" + } + $ExistingRole = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.RoleName.ToLower())'" + if (!$ExistingRole) { + throw "Role $($Request.Body.RoleName) not found" + } + + if ($ExistingRole.RowKey -eq $Request.Body.NewRoleName.ToLower()) { + throw 'New role name cannot be the same as the existing role name' + } + + $NewRoleTest = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.NewRoleName.ToLower())'" + if ($NewRoleTest) { + throw "Role name $($Request.Body.NewRoleName) already exists" + } + + $NewRole = @{ + 'PartitionKey' = 'CustomRoles' + 'RowKey' = "$($Request.Body.NewRoleName.ToLower())" + 'Permissions' = $ExistingRole.Permissions + 'AllowedTenants' = $ExistingRole.AllowedTenants + 'BlockedTenants' = $ExistingRole.BlockedTenants + 'BlockedEndpoints' = $ExistingRole.BlockedEndpoints + } + Add-CIPPAzDataTableEntity @Table -Entity $NewRole -Force | Out-Null + # Clone IP ranges if they exist + $ExistingIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "RowKey eq '$($Request.Body.RoleName.ToLower())'" + if ($ExistingIPRange) { + $NewIPRangeEntity = @{ + 'PartitionKey' = 'AccessIPRanges' + 'RowKey' = "$($Request.Body.NewRoleName.ToLower())" + 'IPRanges' = $ExistingIPRange.IPRanges + } + Add-CIPPAzDataTableEntity @AccessIPRangeTable -Entity $NewIPRangeEntity -Force | Out-Null + } + $Body = @{Results = "Custom role '$($Request.Body.NewRoleName)' cloned from '$($Request.Body.RoleName)'" } + Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Cloned custom role $($Request.Body.RoleName) to $($Request.Body.NewRoleName)" -Sev 'Info' + } catch { + Write-Warning "Failed to clone custom role $($Request.Body.RoleName): $($_.Exception.Message)" + Write-Warning $_.InvocationInfo.PositionMessage + $Body = @{Results = "Failed to clone custom role $($Request.Body.RoleName)" } + } + } + 'Delete' { + Write-Information "Deleting custom role $($Request.Body.RoleName)" + $Role = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.RoleName)'" -Property RowKey, PartitionKey + Remove-AzDataTableEntity -Force @Table -Entity $Role + $AccessRoleGroup = Get-CIPPAzDataTableEntity @AccessRoleGroupTable -Filter "PartitionKey eq 'AccessRoleGroups' and RowKey eq '$($Request.Body.RoleName)'" + if ($AccessRoleGroup) { + Remove-AzDataTableEntity -Force @AccessRoleGroupTable -Entity $AccessRoleGroup + } + $AccessIPRange = Get-CIPPAzDataTableEntity @AccessIPRangeTable -Filter "PartitionKey eq 'AccessIPRanges' and RowKey eq '$($Request.Body.RoleName)'" + if ($AccessIPRange) { + Remove-AzDataTableEntity -Force @AccessIPRangeTable -Entity $AccessIPRange + } + $Body = @{Results = 'Custom role deleted' } + Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Deleted custom role $($Request.Body.RoleName)" -Sev 'Info' + } + 'ListEntraGroups' { + $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$filter=securityEnabled eq true' -tenantid $env:TenantID -NoAuthCheck $true + $Body = @{ + Results = @($Groups) + Metadata = @{ + GroupCount = $Groups.Count + } + } + } + default { + $Body = Get-CIPPAzDataTableEntity @Table + $EntraRoleGroups = Get-CIPPAzDataTableEntity @AccessRoleGroupTable + $AccessIPRanges = Get-CIPPAzDataTableEntity @AccessIPRangeTable + if (!$Body) { + $Body = @( + @{ + RowKey = 'No custom roles found' + } + ) + } else { + $CustomRoles = foreach ($Role in $Body) { + try { + $Role.Permissions = $Role.Permissions | ConvertFrom-Json + } catch { + $Role.Permissions = @() + } + if ($Role.AllowedTenants) { + try { + $Role.AllowedTenants = @($Role.AllowedTenants | ConvertFrom-Json) + } catch { + $Role.AllowedTenants = @() + } + } else { + $Role | Add-Member -NotePropertyName AllowedTenants -NotePropertyValue @() -Force + } + if ($Role.BlockedTenants) { + try { + $Role.BlockedTenants = @($Role.BlockedTenants | ConvertFrom-Json) + } catch { + $Role.BlockedTenants = @() + } + } else { + $Role | Add-Member -NotePropertyName BlockedTenants -NotePropertyValue @() -Force + } + if ($Role.BlockedEndpoints) { + try { + $Role.BlockedEndpoints = @($Role.BlockedEndpoints | ConvertFrom-Json) + } catch { + $Role.BlockedEndpoints = @() + } + } else { + $Role | Add-Member -NotePropertyName BlockedEndpoints -NotePropertyValue @() -Force + } + $EntraRoleGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey + if ($EntraRoleGroup) { + $EntraGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey | Select-Object @{Name = 'label'; Expression = { $_.GroupName } }, @{Name = 'value'; Expression = { $_.GroupId } } + + $Role | Add-Member -NotePropertyName EntraGroup -NotePropertyValue $EntraGroup -Force + } + # Load IP ranges from separate table + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $Role.RowKey + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + $Role | Add-Member -NotePropertyName IPRange -NotePropertyValue $IPRanges -Force + } else { + $Role | Add-Member -NotePropertyName IPRange -NotePropertyValue @() -Force + } + $Role + } + $DefaultRoles = foreach ($DefaultRole in $DefaultRoles.PSObject.Properties.Name) { + $Role = @{ + RowKey = $DefaultRole + Permissions = $DefaultRoles.$DefaultRole + AllowedTenants = @('AllTenants') + BlockedTenants = @() + BlockedEndpoints = @() + } + $EntraRoleGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey + if ($EntraRoleGroup) { + $Role.EntraGroup = $EntraRoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey | Select-Object @{Name = 'label'; Expression = { $_.GroupName } }, @{Name = 'value'; Expression = { $_.GroupId } } + } + # Load IP ranges from separate table + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $DefaultRole + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + $Role.IPRange = $IPRanges + } else { + $Role.IPRange = @() + } + $Role + } + $Body = @($DefaultRoles + $CustomRoles) + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 new file mode 100644 index 000000000000..46d80f061f29 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 @@ -0,0 +1,109 @@ +Function Invoke-ExecDnsConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + # List of supported resolvers + $ValidResolvers = @( + 'Google' + 'Cloudflare' + 'Quad9' + ) + + + + $StatusCode = [HttpStatusCode]::OK + try { + $ConfigTable = Get-CippTable -tablename Config + $Filter = "PartitionKey eq 'Domains' and RowKey eq 'Domains'" + $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + + $DomainTable = Get-CippTable -tablename 'Domains' + + if ($ValidResolvers -notcontains $Config.Resolver) { + $Config = @{ + PartitionKey = 'Domains' + RowKey = 'Domains' + Resolver = 'Google' + } + Add-CIPPAzDataTableEntity @ConfigTable -Entity $Config -Force + } + + $updated = $false + + switch ($Request.Query.Action) { + 'SetConfig' { + if ($Request.Body.Resolver) { + $Resolver = $Request.Body.Resolver + if ($ValidResolvers -contains $Resolver) { + try { + $Config.Resolver = $Resolver + } catch { + $Config = @{ + Resolver = $Resolver + } + } + $updated = $true + } + } + if ($updated) { + Add-CIPPAzDataTableEntity @ConfigTable -Entity $Config -Force + Write-LogMessage -API $APINAME -tenant 'Global' -headers $Request.Headers -message 'DNS configuration updated' -Sev 'Info' + $body = [pscustomobject]@{'Results' = 'Success: DNS configuration updated.' } + } else { + $StatusCode = [HttpStatusCode]::BadRequest + $body = [pscustomobject]@{'Results' = 'Error: No DNS resolver provided.' } + } + } + 'SetDkimConfig' { + $Domain = $Request.Query.Domain + $Selector = ($Request.Query.Selector).trim() -split '\s*,\s*' + $DomainTable = Get-CIPPTable -Table 'Domains' + $Filter = "RowKey eq '{0}'" -f $Domain + $DomainInfo = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter + $DkimSelectors = [string]($Selector | ConvertTo-Json -Compress) + if ($DomainInfo) { + $DomainInfo.DkimSelectors = $DkimSelectors + } else { + $DomainInfo = @{ + 'RowKey' = $Request.Query.Domain + 'PartitionKey' = 'ManualEntry' + 'TenantId' = 'NoTenant' + 'MailProviders' = '' + 'TenantDetails' = '' + 'DomainAnalyser' = '' + 'DkimSelectors' = $DkimSelectors + } + } + Add-CIPPAzDataTableEntity @DomainTable -Entity $DomainInfo -Force + } + 'GetConfig' { + $body = [pscustomobject]$Config + Write-LogMessage -API $APINAME -tenant 'Global' -headers $Request.Headers -message 'Retrieved DNS configuration' -Sev 'Debug' + } + 'RemoveDomain' { + $Filter = "RowKey eq '{0}'" -f $Request.Query.Domain + $DomainRow = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @DomainTable -Entity $DomainRow + Write-LogMessage -API $APINAME -tenant 'Global' -headers $Request.Headers -message "Removed Domain - $($Request.Query.Domain) " -Sev 'Info' + $body = [pscustomobject]@{ 'Results' = "Domain removed - $($Request.Query.Domain)" } + } + } + } catch { + Write-LogMessage -API $APINAME -tenant $($name) -headers $Request.Headers -message "DNS Config API failed. $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 new file mode 100644 index 000000000000..facaa423a70a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExchangeRoleRepair.ps1 @@ -0,0 +1,96 @@ +function Invoke-ExecExchangeRoleRepair { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Headers = $Request.Headers + + $TenantId = $Request.Query.tenantId ?? $Request.Body.tenantId + $Tenant = Get-Tenants -TenantFilter $TenantId + + try { + Write-Information "Starting Exchange Organization Management role repair for tenant: $($Tenant.defaultDomainName)" + $OrgManagementRoles = New-ExoRequest -tenantid $Tenant.customerId -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ Delegating = $false } | Where-Object { $_.RoleAssigneeName -eq 'Organization Management' } | Select-Object -Property Role, Guid + Write-Information "Found $($OrgManagementRoles.Count) Organization Management roles in Exchange" + + $RoleDefinitions = New-GraphGetRequest -tenantid $Tenant.customerId -uri 'https://graph.microsoft.com/beta/roleManagement/exchange/roleDefinitions' + Write-Information "Found $($RoleDefinitions.Count) Exchange role definitions" + + $BasePath = Get-Module -Name 'CIPPCore' | Select-Object -ExpandProperty ModuleBase + $AllOrgManagementRoles = Get-Content -Path "$BasePath\lib\data\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json + + $AvailableRoles = $RoleDefinitions | Where-Object -Property displayName -In $AllOrgManagementRoles | Select-Object -Property displayName, id, description + Write-Information "Found $($AvailableRoles.Count) available Organization Management roles in Exchange" + $MissingOrgMgmtRoles = $AvailableRoles | Where-Object { $OrgManagementRoles.Role -notcontains $_.displayName } + + if ($MissingOrgMgmtRoles.Count -gt 0) { + $Requests = foreach ($Role in $MissingOrgMgmtRoles) { + [PSCustomObject]@{ + id = $Role.id + method = 'POST' + url = 'roleManagement/exchange/roleAssignments' + body = @{ + principalId = '/RoleGroups/Organization Management' + roleDefinitionId = $Role.id + directoryScopeId = '/' + appScopeId = $null + } + headers = @{ + 'Content-Type' = 'application/json' + } + } + } + + $RepairResults = New-GraphBulkRequest -tenantid $Tenant.customerId -Requests @($Requests) -asapp $true + $RepairSuccess = $RepairResults.status -eq 201 + if ($RepairSuccess) { + $Results = @{ + state = 'success' + resultText = "Successfully repaired the missing Organization Management roles: $($MissingOrgMgmtRoles.displayName -join ', ')" + } + Write-LogMessage -API 'ExecExchangeRoleRepair' -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Successfully repaired the missing Organization Management roles: $($MissingOrgMgmtRoles.displayName -join ', '). Run another Tenant Access check after waiting a bit for replication." -sev 'Info' + } else { + # Get roles that failed to repair + $FailedRoles = $RepairResults | Where-Object { $_.status -ne 201 } | ForEach-Object { + $RoleId = $_.id + $Role = $MissingOrgMgmtRoles | Where-Object { $_.id -eq $RoleId } + $Role.displayName + } + $PermissionError = $false + if ($RepairResults.status -in (401, 403, 500)) { + $PermissionError = $true + } + $LogData = $RepairResults | Select-Object -Property id, status, body + $Results = @{ + state = 'error' + resultText = "Failed to repair the missing Organization Management roles: $($FailedRoles -join ', ').$(if ($PermissionError) { " This may be due to insufficient permissions. The required Graph Permission is 'Application - RoleManagement.ReadWrite.Exchange'" })" + } + Write-LogMessage -API 'ExecExchangeRoleRepair' -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Failed to repair the missing Organization Management roles: $($FailedRoles -join ', ')" -sev 'Error' -LogData $LogData + Write-Warning 'Exchange role repair failed' + } + } else { + $Results = @{ + state = 'success' + resultText = 'No missing Organization Management roles found.' + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Exception during Exchange Organization Management role repair: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'ExecExchangeRoleRepair' -headers $Headers -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -Message "Exchange Organization Management role repair failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + $Results = @{ + state = 'error' + resultText = "Exchange Organization Management role repair failed: $($ErrorMessage.NormalizedError)" + } + } + + returns ([HttpResponseContext]@{ + StatusCode = [System.Net.HttpStatusCode]::OK + Body = $Results + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeLicenses.ps1 new file mode 100644 index 000000000000..26d3db6edf2f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeLicenses.ps1 @@ -0,0 +1,65 @@ +Function Invoke-ExecExcludeLicenses { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Table = Get-CIPPTable -TableName ExcludedLicenses + try { + + if ($Request.Query.List) { + $Rows = Get-CIPPAzDataTableEntity @Table + if ($Rows.Count -lt 1) { + $TableBaseData = '[{"GUID":"16ddbbfc-09ea-4de2-b1d7-312db6112d70","Product_Display_Name":"MICROSOFT TEAMS (FREE)"},{"GUID":"1f2f344a-700d-42c9-9427-5cea1d5d7ba6","Product_Display_Name":"MICROSOFT STREAM"},{"GUID":"338148b6-1b11-4102-afb9-f92b6cdc0f8d","Product_Display_Name":"DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS"},{"GUID":"606b54a9-78d8-4298-ad8b-df6ef4481c80","Product_Display_Name":"Power Virtual Agents Viral Trial"},{"GUID":"61e6bd70-fbdb-4deb-82ea-912842f39431","Product_Display_Name":"Dynamics 365 Customer Service Insights Trial"},{"GUID":"6470687e-a428-4b7a-bef2-8a291ad947c9","Product_Display_Name":"WINDOWS STORE FOR BUSINESS"},{"GUID":"710779e8-3d4a-4c88-adb9-386c958d1fdf","Product_Display_Name":"MICROSOFT TEAMS EXPLORATORY"},{"GUID":"74fbf1bb-47c6-4796-9623-77dc7371723b","Product_Display_Name":"Microsoft Teams Trial"},{"GUID":"90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96","Product_Display_Name":"Business Apps (free)"},{"GUID":"a403ebcc-fae0-4ca2-8c8c-7a907fd6c235","Product_Display_Name":"Power BI (free)"},{"GUID":"bc946dac-7877-4271-b2f7-99d2db13cd2c","Product_Display_Name":"Dynamics 365 Customer Voice Trial"},{"GUID":"dcb1a3ae-b33f-4487-846a-a640262fadf4","Product_Display_Name":"Microsoft Power Apps Plan 2 Trial"},{"GUID":"f30db892-07e9-47e9-837c-80727f46fd3d","Product_Display_Name":"MICROSOFT FLOW FREE"},{"GUID":"fcecd1f9-a91e-488d-a918-a96cdb6ce2b0","Product_Display_Name":"Microsoft Dynamics AX7 User Trial"}]' | ConvertFrom-Json -AsHashtable -Depth 10 + $TableRows = foreach ($Row in $TableBaseData) { + $Row.PartitionKey = 'License' + $Row.RowKey = $Row.GUID + + Add-CIPPAzDataTableEntity @Table -Entity ([pscustomobject]$Row) -Force | Out-Null + } + + $Rows = Get-CIPPAzDataTableEntity @Table + + Write-LogMessage -API $APINAME -headers $Request.Headers -message 'got excluded licenses list' -Sev 'Info' + } + $body = @($Rows) + } + + # Interact with query parameters or the body of the request. + $name = $Request.Query.TenantFilter + if ($Request.Query.AddExclusion) { + $AddObject = @{ + PartitionKey = 'License' + RowKey = $Request.body.GUID + 'GUID' = $Request.body.GUID + 'Product_Display_Name' = $request.body.SKUName + } + Add-CIPPAzDataTableEntity @Table -Entity $AddObject -Force + + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Added exclusion $($request.body.SKUName)" -Sev 'Info' + $body = [pscustomobject]@{'Results' = "Success. We've added $($request.body.SKUName) to the excluded list." } + } + + if ($Request.Query.RemoveExclusion) { + $Filter = "RowKey eq '{0}' and PartitionKey eq 'License'" -f $Request.Body.GUID + $Entity = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $Entity + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Removed exclusion $($Request.Query.GUID)" -Sev 'Info' + $body = [pscustomobject]@{'Results' = "Success. We've removed $($Request.query.guid) from the excluded list." } + } + } catch { + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Exclusion API failed. $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeTenant.ps1 new file mode 100644 index 000000000000..1f9202ef62b9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeTenant.ps1 @@ -0,0 +1,71 @@ +Function Invoke-ExecExcludeTenant { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # $username = $Request.Headers.'x-ms-client-principal-name' + $Username = $Headers.'x-ms-client-principal-name' ?? ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + Write-Host ($Username | ConvertTo-Json -Depth 10) + $Date = (Get-Date).ToString('yyyy-MM-dd') + $TenantsTable = Get-CippTable -tablename Tenants + + if ($Request.Query.List) { + $ExcludedFilter = "PartitionKey eq 'Tenants' and Excluded eq true" + $ExcludedTenants = Get-CIPPAzDataTableEntity @TenantsTable -Filter $ExcludedFilter + Write-LogMessage -API $APIName -headers $Headers -message 'got excluded tenants list' -Sev 'Debug' + $body = @($ExcludedTenants) + } elseif ($Request.Query.ListAll) { + $ExcludedTenants = Get-CIPPAzDataTableEntity @TenantsTable -Filter "PartitionKey eq 'Tenants'" | Sort-Object -Property displayName + Write-LogMessage -API $APIName -headers $Headers -message 'got excluded tenants list' -Sev 'Debug' + $body = @($ExcludedTenants) + } + try { + # Interact with query parameters or the body of the request. + $Name = $Request.Query.tenantFilter + if ($Request.Query.AddExclusion) { + $Tenants = Get-Tenants -IncludeAll | Where-Object { $Request.body.value -contains $_.customerId } + + $Excluded = foreach ($Tenant in $Tenants) { + $Tenant.Excluded = $true + $Tenant.ExcludeUser = $Username + $Tenant.ExcludeDate = $Date + $Tenant + } + Update-AzDataTableEntity -Force @TenantsTable -Entity ([pscustomobject]$Excluded) + Write-LogMessage -API $APIName -tenant $($Name) -headers $Headers -message "Added exclusion for customer(s): $($Excluded.defaultDomainName -join ',')" -Sev 'Info' + $body = [pscustomobject]@{'Results' = "Success. Added exclusions for customer(s): $($Excluded.defaultDomainName -join ',')" } + } + + if ($Request.Query.RemoveExclusion) { + $Tenants = Get-Tenants -IncludeAll | Where-Object { $Request.body.value -contains $_.customerId } + foreach ($Tenant in $Tenants) { + $Tenant.Excluded = $false + $Tenant.ExcludeUser = '' + $Tenant.ExcludeDate = '' + Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant + } + Write-LogMessage -API $APIName -tenant $($Name) -headers $Headers -message "Removed exclusion for customer $($Name)" -Sev 'Info' + $body = [pscustomobject]@{'Results' = "Success. We've removed $Name from the excluded tenants." } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $($Name) -headers $Headers -message "Exclusion API failed. $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed. $($ErrorMessage.NormalizedError)" } + } + if (!$body) { $body = @() } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 new file mode 100644 index 000000000000..416c118bd238 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 @@ -0,0 +1,94 @@ +function Invoke-ExecJITAdminSettings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $StatusCode = [HttpStatusCode]::OK + + try { + $Table = Get-CIPPTable -TableName Config + $Filter = "PartitionKey eq 'JITAdminSettings' and RowKey eq 'JITAdminSettings'" + $JITAdminConfig = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (-not $JITAdminConfig) { + $JITAdminConfig = @{ + PartitionKey = 'JITAdminSettings' + RowKey = 'JITAdminSettings' + MaxDuration = $null # null means no limit + } + } + + $Action = if ($Request.Body.Action) { $Request.Body.Action } else { $Request.Query.Action } + + $Results = switch ($Action) { + 'Get' { + @{ + MaxDuration = $JITAdminConfig.MaxDuration + } + } + 'Set' { + $MaxDuration = $Request.Body.MaxDuration.value + Write-Host "MAx dur: $($MaxDuration)" + # Validate ISO 8601 duration format if provided + if (![string]::IsNullOrWhiteSpace($MaxDuration)) { + try { + # Test if it's a valid ISO 8601 duration + $null = [System.Xml.XmlConvert]::ToTimeSpan($MaxDuration) + $JITAdminConfig | Add-Member -NotePropertyName MaxDuration -NotePropertyValue $MaxDuration -Force + } catch { + $StatusCode = [HttpStatusCode]::BadRequest + @{ + Results = 'Error: Invalid ISO 8601 duration format. Expected format like PT4H, P1D, P4W, etc.' + } + break + } + } else { + # Empty or null means no limit + $JITAdminConfig.MaxDuration = $null + } + + $JITAdminConfig.PartitionKey = 'JITAdminSettings' + $JITAdminConfig.RowKey = 'JITAdminSettings' + + Add-CIPPAzDataTableEntity @Table -Entity $JITAdminConfig -Force | Out-Null + + $Message = if ($JITAdminConfig.MaxDuration) { + "Successfully set JIT Admin maximum duration to $($JITAdminConfig.MaxDuration)" + } else { + 'Successfully removed JIT Admin maximum duration limit' + } + + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' + + @{ + Results = $Message + } + } + default { + $StatusCode = [HttpStatusCode]::BadRequest + @{ + Results = 'Error: Invalid action. Use Get or Set.' + } + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::InternalServerError + $Results = @{ + Results = "Error: $($ErrorMessage.NormalizedError)" + } + Write-LogMessage -headers $Headers -API $APIName -message "Failed to process JIT Admin settings: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 new file mode 100644 index 000000000000..d543ce5a2770 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 @@ -0,0 +1,76 @@ +Function Invoke-ExecMaintenanceScripts { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + try { + $GraphToken = Get-GraphToken -returnRefresh $true + $AccessTokenDetails = Read-JwtAccessDetails -Token $GraphToken.access_token + + $ReplacementStrings = @{ + '##TENANTID##' = $env:TenantID + '##RESOURCEGROUP##' = $env:WEBSITE_RESOURCE_GROUP + '##FUNCTIONAPP##' = $env:WEBSITE_SITE_NAME + '##SUBSCRIPTION##' = Get-CIPPAzFunctionAppSubId + '##TOKENIP##' = $AccessTokenDetails.IPAddress + } + } catch { Write-Host $_.Exception.Message } + #$ReplacementStrings | Format-Table + + try { + $ScriptFile = $Request.Query.ScriptFile + + try { + $Filename = Split-Path -Leaf $ScriptFile + } catch {} + + if (!$ScriptFile -or [string]::IsNullOrEmpty($ScriptFile)) { + $ScriptFiles = Get-ChildItem .\ExecMaintenanceScripts\Scripts | Select-Object -ExpandProperty PSChildName + + $ScriptOptions = foreach ($ScriptFile in $ScriptFiles) { + @{label = $ScriptFile; value = $ScriptFile } + } + $Body = @{ ScriptFiles = @($ScriptOptions) } + } elseif (!(Get-ChildItem .\ExecMaintenanceScripts\Scripts\$Filename -ErrorAction SilentlyContinue)) { + $Body = @{ Status = 'Script does not exist' } + } else { + $Script = Get-Content -Raw .\ExecMaintenanceScripts\Scripts\$Filename + foreach ($i in $ReplacementStrings.Keys) { + $Script = $Script -replace $i, $ReplacementStrings.$i + } + + $ScriptContent = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($Script)) + + if ($Request.Query.MakeLink) { + $Table = Get-CippTable -TableName 'MaintenanceScripts' + $LinkGuid = ([guid]::NewGuid()).ToString() + + $MaintenanceScriptRow = @{ + 'RowKey' = $LinkGuid + 'PartitionKey' = 'Maintenance' + 'ScriptContent' = $ScriptContent + } + Add-CIPPAzDataTableEntity @Table -Entity $MaintenanceScriptRow -Force + + $Body = @{ Link = "/api/PublicScripts?guid=$LinkGuid" } + } else { + $Body = @{ ScriptContent = $ScriptContent } + } + } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($tenantfilter) -message "Failed to retrieve maintenance scripts. Error: $($_.Exception.Message)" -Sev 'Error' + $Body = @{Status = "Failed to retrieve maintenance scripts $($_.Exception.Message)" } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecNotificationConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecNotificationConfig.ps1 new file mode 100644 index 000000000000..feafd5eae3f0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecNotificationConfig.ps1 @@ -0,0 +1,27 @@ +Function Invoke-ExecNotificationConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $sev = ([pscustomobject]$Request.body.Severity).value -join (',') + $config = @{ + email = $Request.body.email + webhook = $Request.body.webhook + onepertenant = $Request.body.onePerTenant + logsToInclude = $Request.body.logsToInclude + sendtoIntegration = $Request.body.sendtoIntegration + sev = $sev + } + $Results = Set-cippNotificationConfig @Config + $body = [pscustomobject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 new file mode 100644 index 000000000000..f3ff7fd425fb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 @@ -0,0 +1,76 @@ + +function Invoke-ExecOffloadFunctions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CippTable -tablename 'Config' + + if ($Request.Query.Action -eq 'ListCurrent') { + $CurrentState = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'OffloadFunctions' and RowKey eq 'OffloadFunctions'" + $VersionTable = Get-CippTable -tablename 'Version' + $Version = Get-CIPPAzDataTableEntity @VersionTable -Filter "RowKey ne 'Version'" + $MainVersion = $Version | Where-Object { $_.RowKey -eq $env:WEBSITE_SITE_NAME } + $OffloadVersions = $Version | Where-Object { $_.RowKey -match '-' } + + $Alerts = [System.Collections.Generic.List[string]]::new() + + $CanEnable = $false + if (!$OffloadVersions.Version) { + $Alerts.Add('No offloaded function apps have been registered. If you''ve just deployed one, this can take up to 15 minutes.') + } else { + $CanEnable = $true + } + + foreach ($Offload in $OffloadVersions) { + $FunctionName = $Offload.RowKey + if ([semver]$Offload.Version -ne [semver]$MainVersion.Version) { + $CanEnable = $false + $Alerts.Add("The version of $FunctionName ($($Offload.Version)) does not match the current version of $($MainVersion.Version).") + } + } + + $VersionTable = $Version | Select-Object @{n = 'Name'; e = { $_.RowKey } }, @{n = 'Version'; e = { $_.Version } }, @{n = 'Default'; e = { $_.RowKey -notmatch '-' } } + + $CurrentState = if (!$CurrentState) { + [PSCustomObject]@{ + OffloadFunctions = $false + Version = @($VersionTable) + Alerts = $Alerts + CanEnable = $CanEnable + } + } else { + [PSCustomObject]@{ + OffloadFunctions = $CurrentState.state + Version = @($VersionTable) + Alerts = $Alerts + CanEnable = $CanEnable + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $CurrentState + }) + } else { + Add-CIPPAzDataTableEntity @Table -Entity @{ + PartitionKey = 'OffloadFunctions' + RowKey = 'OffloadFunctions' + state = $request.Body.OffloadFunctions + } -Force + + if ($Request.Body.OffloadFunctions) { + $Results = 'Enabled Offload Functions' + } else { + $Results = 'Disabled Offload Functions' + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ results = $Results } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPartnerMode.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPartnerMode.ps1 new file mode 100644 index 000000000000..3703b4c278c3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPartnerMode.ps1 @@ -0,0 +1,74 @@ +function Invoke-ExecPartnerMode { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + + $Table = Get-CippTable -tablename 'tenantMode' + if ($request.body.TenantMode) { + Add-CIPPAzDataTableEntity @Table -Entity @{ + PartitionKey = 'Setting' + RowKey = 'PartnerModeSetting' + state = $request.body.TenantMode + } -Force + + if ($Request.Body.TenantMode -eq 'default') { + $Table = Get-CippTable -tablename 'Tenants' + $Tenant = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Tenants' and RowKey eq '$($env:TenantID)'" -Property RowKey, PartitionKey, customerId, displayName + if ($Tenant) { + try { + Remove-AzDataTableEntity -Force @Table -Entity $Tenant + } catch { + } + } + } elseif ($Request.Body.TenantMode -eq 'PartnerTenantAvailable') { + $InputObject = [PSCustomObject]@{ + Batch = @( + @{ + FunctionName = 'UpdateTenants' + } + ) + OrchestratorName = 'UpdateTenants' + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + results = @( + @{ + resultText = "Set Tenant mode to $($Request.body.TenantMode)" + state = 'success' + } + ) + } + }) + + } + + if ($request.query.action -eq 'ListCurrent') { + $CurrentState = Get-CIPPAzDataTableEntity @Table + $CurrentState = if (!$CurrentState) { + [PSCustomObject]@{ + TenantMode = 'default' + } + } else { + [PSCustomObject]@{ + TenantMode = $CurrentState.state + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $CurrentState + }) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 new file mode 100644 index 000000000000..11d16e39a503 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 @@ -0,0 +1,40 @@ +Function Invoke-ExecPasswordConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable -TableName Settings + $PasswordType = (Get-CIPPAzDataTableEntity @Table) + + + $results = try { + if ($Request.Query.List) { + @{ passwordType = $PasswordType.passwordType } + } else { + $PasswordConfig = @{ + 'passwordType' = "$($Request.Body.passwordType)" + 'passwordCount' = '12' + 'PartitionKey' = 'settings' + 'RowKey' = 'settings' + } + + Add-CIPPAzDataTableEntity @Table -Entity $PasswordConfig -Force | Out-Null + 'Successfully set the configuration' + } + } catch { + "Failed to set configuration: $($_.Exception.message)" + } + + + $body = [pscustomobject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 new file mode 100644 index 000000000000..513e0bd5aca0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPermissionRepair.ps1 @@ -0,0 +1,29 @@ +function Invoke-ExecPermissionRepair { + <# + .SYNOPSIS + This endpoint will update the CIPP-SAM app permissions. + .DESCRIPTION + Merges new permissions from the SAM manifest into the AppPermissions entry for CIPP-SAM. + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json + $Result = Update-CippSamPermissions -UpdatedBy ($User.UserDetails ?? 'CIPP-API') + $Body = @{'Results' = $Result } + } catch { + $Body = @{ + 'Results' = "$($_.Exception.Message) - at line $($_.InvocationInfo.ScriptLineNumber)" + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRemoveTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRemoveTenant.ps1 new file mode 100644 index 000000000000..52381ad80053 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRemoveTenant.ps1 @@ -0,0 +1,36 @@ +function Invoke-ExecRemoveTenant { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + if ($Request.Body.TenantID -notmatch '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') { + $Body = @{Results = "Tenant ID $($Request.Body.TenantID) is not a valid GUID." } + $StatusCode = [HttpStatusCode]::BadRequest + } else { + $Table = Get-CippTable -tablename 'Tenants' + $Tenant = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Tenants' and RowKey eq '$($Request.Body.TenantID)'" -Property RowKey, PartitionKey, customerId, displayName + if ($Tenant) { + try { + Remove-AzDataTableEntity -Force @Table -Entity $Tenant + $Body = @{Results = "$($Tenant.displayName) ($($Tenant.customerId)) deleted from CIPP. Note: This does not remove the GDAP relationship, see the Tenant Offboarding wizard to perform that action." } + $StatusCode = [HttpStatusCode]::OK + } catch { + $Body = @{Results = "Failed to delete $($Tenant.displayName) ($($Tenant.customerId)) from CIPP. Error: $($_.Exception.Message)" } + $StatusCode = [HttpStatusCode]::InternalServerError + } + } else { + $Body = @{Results = "Tenant $($Request.Body.TenantID) not found in CIPP." } + $StatusCode = [HttpStatusCode]::NotFound + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 new file mode 100644 index 000000000000..61a133046e41 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRestoreBackup.ps1 @@ -0,0 +1,73 @@ +function Invoke-ExecRestoreBackup { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + try { + + if ($Request.Body.BackupName -like 'CippBackup_*') { + # Use Get-CIPPBackup which already handles fetching from blob storage + $Backup = Get-CIPPBackup -Type 'CIPP' -Name $Request.Body.BackupName + if ($Backup) { + $raw = $Backup.Backup + $BackupData = $null + + # Get-CIPPBackup already fetches blob content, so raw should be JSON string + try { + if ($raw -is [string]) { + $BackupData = $raw | ConvertFrom-Json -ErrorAction Stop + } else { + $BackupData = $raw | Select-Object * -ExcludeProperty ETag, Timestamp + } + } catch { + throw "Failed to parse backup JSON: $($_.Exception.Message)" + } + + $BackupData | ForEach-Object { + $Table = Get-CippTable -tablename $_.table + $ht2 = @{} + $_.psobject.properties | ForEach-Object { $ht2[$_.Name] = [string]$_.Value } + $Table.Entity = $ht2 + Add-CIPPAzDataTableEntity @Table -Force + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Restored backup $($Request.Body.BackupName)" -Sev 'Info' + $body = [pscustomobject]@{ + 'Results' = 'Successfully restored backup.' + } + } else { + $body = [pscustomobject]@{ + 'Results' = 'Backup not found.' + } + } + } else { + foreach ($line in ($Request.body | Select-Object * -ExcludeProperty ETag, Timestamp)) { + $Table = Get-CippTable -tablename $line.table + $ht2 = @{} + $line.psobject.properties | ForEach-Object { $ht2[$_.Name] = [string]$_.Value } + $Table.Entity = $ht2 + Add-AzDataTableEntity @Table -Force + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Restored backup $($Request.Body.BackupName)" -Sev 'Info' + + $body = [pscustomobject]@{ + 'Results' = 'Successfully restored backup.' + } + } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Failed to restore backup: $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Backup restore failed: $($_.Exception.Message)" } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunBackup.ps1 new file mode 100644 index 000000000000..de1d11c38b6b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunBackup.ps1 @@ -0,0 +1,41 @@ +Function Invoke-ExecRunBackup { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + + try { + $CSVfile = New-CIPPBackup -BackupType 'CIPP' -Headers $Request.Headers + $body = [pscustomobject]@{ + 'Results' = @{ + resultText = 'Created backup' + state = 'success' + } + backup = $CSVfile.BackupData + } | ConvertTo-Json -Depth 5 -Compress + + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Created CIPP backup' -Sev 'Info' + + } catch { + $body = [pscustomobject]@{ + 'Results' = @( + @{ + resultText = 'Failed to create backup' + state = 'error' + } + ) + } | ConvertTo-Json -Depth 5 -Compress + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Failed to create CIPP backup' -Sev 'Error' -LogData (Get-CippException -Exception $_) + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunTenantGroupRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunTenantGroupRule.ps1 new file mode 100644 index 000000000000..31aaec5c4d31 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecRunTenantGroupRule.ps1 @@ -0,0 +1,40 @@ +function Invoke-ExecRunTenantGroupRule { + <# + .SYNOPSIS + Execute tenant group dynamic rules immediately + .DESCRIPTION + This function executes dynamic tenant group rules for immediate membership updates + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Groups.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $GroupId = $Request.Body.groupId ?? $Request.Query.groupId + + try { + $GroupTable = Get-CippTable -tablename 'TenantGroups' + $Group = Get-CIPPAzDataTableEntity @GroupTable -Filter "PartitionKey eq 'TenantGroup' and RowKey eq '$GroupId'" + + if (-not $Group) { $Body = @{ Results = 'Group not found' } } + + $null = Start-TenantDynamicGroupOrchestrator -GroupId $GroupId + + $Body = @{ Results = "Dynamic rules executed successfully for group '$($Group.Name)'. Processing will continue in the background. Check the logbook for details." } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'TenantGroups' -message "Failed to execute tenant group rules: $ErrorMessage" -sev Error + $Body = @{ Results = "Failed to execute dynamic rules: $ErrorMessage" } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $Body + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMAppPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMAppPermissions.ps1 new file mode 100644 index 000000000000..1421a7260301 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMAppPermissions.ps1 @@ -0,0 +1,46 @@ +function Invoke-ExecSAMAppPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json + + switch ($Request.Query.Action) { + 'Update' { + try { + $Permissions = $Request.Body.Permissions + $Entity = @{ + 'PartitionKey' = 'CIPP-SAM' + 'RowKey' = 'CIPP-SAM' + 'Permissions' = [string]($Permissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = $User.UserDetails ?? 'CIPP-API' + } + $Table = Get-CIPPTable -TableName 'AppPermissions' + $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + $Body = @{ + 'Results' = 'Permissions Updated' + } + Write-LogMessage -headers $Request.Headers -API 'ExecSAMAppPermissions' -message 'CIPP-SAM Permissions Updated' -Sev 'Info' -LogData $Permissions + } catch { + $Body = @{ + 'Results' = $_.Exception.Message + } + } + } + default { + $Body = Get-CippSamPermissions + } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -Depth 10 -InputObject $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMRoles.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMRoles.ps1 new file mode 100644 index 000000000000..9c5ad86db193 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecSAMRoles.ps1 @@ -0,0 +1,42 @@ +function Invoke-ExecSAMRoles { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $SAMRolesTable = Get-CIPPTable -tablename 'SAMRoles' + switch ($Request.Query.Action) { + 'Update' { + $Entity = [pscustomobject]@{ + PartitionKey = 'SAMRoles' + RowKey = 'SAMRoles' + Roles = [string](ConvertTo-Json -Depth 5 -Compress -InputObject $Request.Body.Roles) + Tenants = [string](ConvertTo-Json -Depth 5 -Compress -InputObject $Request.Body.Tenants) + } + $null = Add-CIPPAzDataTableEntity @SAMRolesTable -Entity $Entity -Force + $Body = [pscustomobject]@{'Results' = 'Successfully updated SAM roles' } + } + default { + $SAMRoles = Get-CIPPAzDataTableEntity @SAMRolesTable + $Roles = @($SAMRoles.Roles | ConvertFrom-Json) + $Tenants = @($SAMRoles.Tenants | ConvertFrom-Json) + $Body = @{ + 'Roles' = $Roles + 'Tenants' = $Tenants + 'Metadata' = @{ + 'RoleCount' = ($Roles | Measure-Object).Count + 'TenantCount' = ($Tenants | Measure-Object).Count + } + } | ConvertTo-Json -Depth 5 + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 new file mode 100644 index 000000000000..73b1a1bce23b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 @@ -0,0 +1,144 @@ +function Invoke-ExecTenantGroup { + <# + .SYNOPSIS + Entrypoint for tenant group management + .DESCRIPTION + This function is used to manage tenant groups in CIPP + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Groups.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CippTable -tablename 'TenantGroups' + $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' + $Action = $Request.Body.Action + $groupId = $Request.Body.groupId ?? [guid]::NewGuid().ToString() + $groupName = $Request.Body.groupName + $groupDescription = $Request.Body.groupDescription + $members = $Request.Body.members + $groupType = $Request.Body.groupType ?? 'static' + $dynamicRules = $Request.Body.dynamicRules + $ruleLogic = $Request.Body.ruleLogic ?? 'and' + + $AllowedGroups = Test-CippAccess -Request $Request -GroupList + if ($AllowedGroups -notcontains 'AllGroups') { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Forbidden + Body = @{ Results = 'You do not have permission to manage tenant groups.' } + }) + } + + switch ($Action) { + 'AddEdit' { + $Results = [System.Collections.Generic.List[object]]::new() + # Update group details + $GroupEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'TenantGroup' and RowKey eq '$groupId'" + if ($GroupEntity) { + if ($groupName) { + $GroupEntity.Name = $groupName + } + if ($groupDescription) { + $GroupEntity.Description = $groupDescription + } + $GroupEntity | Add-Member -NotePropertyName 'GroupType' -NotePropertyValue $groupType -Force + if ($groupType -eq 'dynamic' -and $dynamicRules) { + $GroupEntity | Add-Member -NotePropertyName 'DynamicRules' -NotePropertyValue "$($dynamicRules | ConvertTo-Json -Depth 100 -Compress)" -Force + $GroupEntity | Add-Member -NotePropertyName 'RuleLogic' -NotePropertyValue $ruleLogic -Force + } else { + $GroupEntity | Add-Member -NotePropertyName 'RuleLogic' -NotePropertyValue $null -Force + } + Add-CIPPAzDataTableEntity @Table -Entity $GroupEntity -Force + } else { + $GroupEntity = @{ + PartitionKey = 'TenantGroup' + RowKey = $groupId + Name = $groupName + Description = $groupDescription + GroupType = $groupType + } + if ($groupType -eq 'dynamic' -and $dynamicRules) { + $GroupEntity.DynamicRules = "$($dynamicRules | ConvertTo-Json -Depth 100 -Compress)" + $GroupEntity.RuleLogic = $ruleLogic + } + Add-CIPPAzDataTableEntity @Table -Entity $GroupEntity -Force + } + + # Handle members based on group type + $Adds = [System.Collections.Generic.List[string]]::new() + $Removes = [System.Collections.Generic.List[string]]::new() + + if ($groupType -eq 'static') { + # Static group - manage members manually + $CurrentMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "PartitionKey eq 'Member' and GroupId eq '$groupId'" + + # Add members + foreach ($member in $members) { + if ($CurrentMembers) { + $CurrentMember = $CurrentMembers | Where-Object { $_.customerId -eq $member.value } + if ($CurrentMember) { + continue + } + } + $MemberEntity = @{ + PartitionKey = 'Member' + RowKey = '{0}-{1}' -f $groupId, $member.value + GroupId = $groupId + customerId = $member.value + } + Add-CIPPAzDataTableEntity @MembersTable -Entity $MemberEntity -Force + $Adds.Add('Added member {0}' -f $member.label) + } + + if ($CurrentMembers) { + foreach ($CurrentMember in $CurrentMembers) { + if ($members.value -notcontains $CurrentMember.customerId) { + Remove-AzDataTableEntity @MembersTable -Entity $CurrentMember -Force + $Removes.Add('Removed member {0}' -f $CurrentMember.customerId) + } + } + } + } elseif ($groupType -eq 'dynamic') { + $Adds.Add('Dynamic group updated. Rules will be processed on next scheduled run.') + } + $Results.Add(@{ + resultText = "Group '$groupName' saved successfully" + state = 'success' + }) + foreach ($Add in $Adds) { + $Results.Add(@{ + resultText = $Add + state = 'success' + }) + } + foreach ($Remove in $Removes) { + $Results.Add(@{ + resultText = $Remove + state = 'success' + }) + } + + $Body = @{ Results = $Results } + } + 'Delete' { + # Delete group + $GroupEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'TenantGroup' and RowKey eq '$groupId'" + if ($GroupEntity) { + Remove-AzDataTableEntity @Table -Entity $GroupEntity -Force + $Body = @{ Results = "Group '$($GroupEntity.Name)' deleted successfully" } + } else { + $Body = @{ Results = "Group '$groupId' not found" } + } + } + default { + $Body = @{ Results = 'Invalid action' } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 new file mode 100644 index 000000000000..ef058b8a94b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTimeSettings.ps1 @@ -0,0 +1,97 @@ +function Invoke-ExecTimeSettings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.SuperAdmin.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $Subscription = Get-CIPPAzFunctionAppSubId + $Owner = $env:WEBSITE_OWNER_NAME + + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + + $FunctionName = $env:WEBSITE_SITE_NAME + $Timezone = $Request.Body.Timezone.value ?? $Request.Body.Timezone + $BusinessHoursStart = $Request.Body.BusinessHoursStart.value ?? $Request.Body.BusinessHoursStart + + # Validate timezone format + if (-not $Timezone) { + throw 'Timezone is required' + } + + if (!$IsLinux) { + # Get Timezone standard name for Windows + $Timezone = Get-TimeZone -Id $Timezone | Select-Object -ExpandProperty StandardName + } + + # Calculate business hours end time (10 hours after start) + $BusinessHoursEnd = $null + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + if (-not $BusinessHoursStart) { + throw 'Business hours start time is required for Flex Consumption plans' + } + + # Validate time format (HH:mm) + if ($BusinessHoursStart -notmatch '^\d{2}:\d{2}$') { + throw 'Business hours start time must be in HH:mm format' + } + + # Calculate end time (start + 10 hours) + $StartTime = [DateTime]::ParseExact($BusinessHoursStart, 'HH:mm', $null) + $EndTime = $StartTime.AddHours(10) + $BusinessHoursEnd = $EndTime.ToString('HH:mm') + } + + Write-Information "Updating function app time settings: Timezone=$Timezone, BusinessHoursStart=$BusinessHoursStart, BusinessHoursEnd=$BusinessHoursEnd" + + # Build app settings hashtable + $AppSettings = @{ + 'WEBSITE_TIME_ZONE' = $Timezone + } + + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + $AppSettings['CIPP_BUSINESS_HOURS_START'] = $BusinessHoursStart + $AppSettings['CIPP_BUSINESS_HOURS_END'] = $BusinessHoursEnd + } + + # Update app settings using ARM REST via managed identity + Update-CIPPAzFunctionAppSetting -Name $FunctionName -ResourceGroupName $RGName -AppSetting $AppSettings | Out-Null + + Write-LogMessage -API 'ExecTimeSettings' -headers $Request.Headers -message "Updated time settings: Timezone=$Timezone, BusinessHours=$BusinessHoursStart-$BusinessHoursEnd" -Sev 'Info' + + $Results = @{ + Results = 'Time settings updated successfully. Please note that timezone changes may require a function app restart to take effect.' + Timezone = $Timezone + SKU = $env:WEBSITE_SKU + } + + if ($env:WEBSITE_SKU -eq 'FlexConsumption') { + $Results.BusinessHoursStart = $BusinessHoursStart + $Results.BusinessHoursEnd = $BusinessHoursEnd + } + + return ([HttpResponseContext]@{ + StatusCode = [httpstatusCode]::OK + Body = $Results + }) + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'ExecTimeSettings' -headers $Request.Headers -message "Failed to update time settings: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + + return ([HttpResponseContext]@{ + StatusCode = [httpstatusCode]::BadRequest + Body = @{ + Results = "Failed to update time settings: $($ErrorMessage.NormalizedError)" + } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecWebhookSubscriptions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecWebhookSubscriptions.ps1 new file mode 100644 index 000000000000..9bdea4f141dd --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecWebhookSubscriptions.ps1 @@ -0,0 +1,119 @@ +function Invoke-ExecWebhookSubscriptions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CIPPTable -TableName webhookTable + switch ($Request.Query.Action) { + 'Delete' { + $Webhook = Get-AzDataTableEntity @Table -Filter "RowKey eq '$($Request.Query.WebhookID)'" -Property PartitionKey, RowKey + if ($Webhook) { + Remove-CIPPGraphSubscription -TenantFilter $Webhook.PartitionKey -CIPPID $Webhook.RowKey + Remove-AzDataTableEntity -Force @Table -Entity $Webhook + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = "Deleted subscription $($Webhook.RowKey) for $($Webhook.PartitionKey)" } + }) + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = "Subscription $($Request.Query.WebhookID) not found" } + }) + } + } + 'Unsubscribe' { + $Webhook = Get-AzDataTableEntity @Table -Filter "RowKey eq '$($Request.Query.WebhookID)'" -Property PartitionKey, RowKey + if ($Webhook) { + $Unsubscribe = @{ + TenantFilter = $Webhook.PartitionKey + } + if ($EventType -match 'Audit.(Exchange|AzureActiveDirectory)') { + $Unsubscribe.Type = 'AuditLog' + $Unsubscribe.EventType = $Webhook.Resource + } else { + $Unsubscribe.Type = 'Graph' + $Unsubscribe.CIPPID = $Webhook.RowKey + $Unsubscribe.EventType = $Webhook.EventType + } + if ($Webhook.Resource -match 'PartnerCenter') { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'PartnerCenter subscriptions cannot be unsubscribed' + }) + return + } + Remove-CIPPGraphSubscription @Unsubscribe + Remove-AzDataTableEntity -Force @Table -Entity $Webhook + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = "Unsubscribed from $($Webhook.Resource) for $($Webhook.PartitionKey)" } + }) + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = "Subscription $($Request.Query.WebhookID) not found" } + }) + } + } + 'UnsubscribeAll' { + $TenantList = Get-Tenants -IncludeErrors + $Results = foreach ($tenant in $TenantList) { + $TenantFilter = $tenant.defaultDomainName + $Subscriptions = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscriptions' -tenantid $TenantFilter | Where-Object { $_.notificationUrl -like '*PublicWebhooks*' } + "Unsubscribing from all CIPP subscriptions for $TenantFilter - $($Subscriptions.Count) subscriptions found" + $Subscriptions | ForEach-Object { + New-GraphPostRequest -uri "https://graph.microsoft.com/beta/subscriptions/$($_.id)" -tenantid $TenantFilter -type DELETE -body {} -Verbose + # get row from table if exists and remove + $Webhook = Get-AzDataTableEntity @Table -Filter "WebhookNotificationUrl eq 'https://graph.microsoft.com/beta/subscriptions/$($_.id)'" -Property PartitionKey, RowKey, ETag + if ($Webhook) { + $null = Remove-AzDataTableEntity -Force @Table -Entity $Webhook + } + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = $Results } + }) + } + 'Resubscribe' { + Write-Host "Resubscribing to $($Request.Query.WebhookID)" + $Row = Get-AzDataTableEntity @Table -Filter "RowKey eq '$($Request.Query.WebhookID)'" + if ($Row) { + $NewSubParams = @{ + TenantFilter = $Row.PartitionKey + EventType = $Row.EventType + } + if ($Row.Resource -match 'Audit.(Exchange|AzureActiveDirectory)') { + $NewSubParams.auditLogAPI = $true + $NewSubParams.Recreate = $true + $NewSubParams.EventType = $Row.Resource + } elseif ($Row.Resource -match 'PartnerCenter') { + $NewSubParams.PartnerCenter = $true + } + try { + $NewSub = New-CIPPGraphSubscription @NewSubParams + Write-Host ($NewSub | ConvertTo-Json -Depth 5 -Compress) + } catch { + Write-Host $_.Exception.Message + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = $NewSub.message } + }) + } + } + default { + $Table = Get-CIPPTable -TableName webhookTable + $Subscriptions = Get-AzDataTableEntity @Table + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Subscriptions + }) + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 new file mode 100644 index 000000000000..08e84177482a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 @@ -0,0 +1,147 @@ +function Invoke-ListCustomRole { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $DefaultRoles = @('readonly', 'editor', 'admin', 'superadmin') + $Table = Get-CippTable -tablename 'CustomRoles' + $CustomRoles = Get-CIPPAzDataTableEntity @Table + + $AccessRoleGroupTable = Get-CippTable -tablename 'AccessRoleGroups' + $RoleGroups = Get-CIPPAzDataTableEntity @AccessRoleGroupTable + + $AccessIPRangeTable = Get-CippTable -tablename 'AccessIPRanges' + $AccessIPRanges = Get-CIPPAzDataTableEntity @AccessIPRangeTable + + $TenantList = Get-Tenants -IncludeErrors + + $RoleList = [System.Collections.Generic.List[pscustomobject]]::new() + foreach ($Role in $DefaultRoles) { + $RoleGroup = $RoleGroups | Where-Object -Property RowKey -EQ $Role + + $IPRangeEntity = $AccessIPRanges | Where-Object -Property RowKey -EQ $Role + if ($IPRangeEntity) { + try { + $IPRanges = @($IPRangeEntity.IPRanges | ConvertFrom-Json) + } catch { + $IPRanges = @() + } + } else { + $IPRanges = @() + } + + $RoleList.Add([pscustomobject]@{ + RoleName = $Role + Type = 'Built-In' + Permissions = '' + AllowedTenants = @('AllTenants') + BlockedTenants = @() + EntraGroup = $RoleGroup.GroupName ?? $null + EntraGroupId = $RoleGroup.GroupId ?? $null + IPRange = $IPRanges + }) + } + foreach ($Role in $CustomRoles) { + $Role | Add-Member -NotePropertyName RoleName -NotePropertyValue $Role.RowKey -Force + $Role | Add-Member -NotePropertyName Type -NotePropertyValue 'Custom' -Force + + if ($Role.Permissions) { + try { + $Role.Permissions = $Role.Permissions | ConvertFrom-Json + } catch { + $Role.Permissions = '' + } + } + if ($Role.AllowedTenants) { + try { + $AllowedTenants = $Role.AllowedTenants | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { + if ($_ -is [PSCustomObject] -and $_.type -eq 'Group') { + # Return group objects as-is for frontend display + [PSCustomObject]@{ + type = 'Group' + value = $_.value + label = $_.label + } + } else { + # Convert tenant customer ID to domain name object for frontend + $TenantId = $_ + $TenantInfo = $TenantList | Where-Object { $_.customerId -eq $TenantId } + if ($TenantInfo) { + [PSCustomObject]@{ + type = 'Tenant' + value = $TenantInfo.defaultDomainName + label = "$($TenantInfo.displayName) ($($TenantInfo.defaultDomainName))" + addedFields = @{ + defaultDomainName = $TenantInfo.defaultDomainName + displayName = $TenantInfo.displayName + customerId = $TenantInfo.customerId + } + } + } + } + } | Where-Object { $_ -ne $null } + $AllowedTenants = $AllowedTenants ?? @('AllTenants') + $Role.AllowedTenants = @($AllowedTenants) + } catch { + $Role.AllowedTenants = @('AllTenants') + } + } else { + $Role | Add-Member -NotePropertyName AllowedTenants -NotePropertyValue @() -Force + } + if ($Role.BlockedTenants) { + try { + $BlockedTenants = $Role.BlockedTenants | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { + if ($_ -is [PSCustomObject] -and $_.type -eq 'Group') { + # Return group objects as-is for frontend display + [PSCustomObject]@{ + type = 'Group' + value = $_.value + label = $_.label + } + } else { + # Convert tenant customer ID to domain name object for frontend + $TenantId = $_ + $TenantInfo = $TenantList | Where-Object { $_.customerId -eq $TenantId } + if ($TenantInfo) { + [PSCustomObject]@{ + type = 'Tenant' + value = $TenantInfo.defaultDomainName + label = "$($TenantInfo.displayName) ($($TenantInfo.defaultDomainName))" + addedFields = @{ + defaultDomainName = $TenantInfo.defaultDomainName + displayName = $TenantInfo.displayName + customerId = $TenantInfo.customerId + } + } + } + } + } | Where-Object { $_ -ne $null } + $BlockedTenants = $BlockedTenants ?? @() + $Role.BlockedTenants = @($BlockedTenants) + } catch { + $Role.BlockedTenants = @() + } + } else { + $Role | Add-Member -NotePropertyName BlockedTenants -NotePropertyValue @() -Force + } + + $RoleGroup = $RoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey + if ($RoleGroup) { + $EntraGroup = $RoleGroups | Where-Object -Property RowKey -EQ $Role.RowKey | Select-Object GroupName, GroupId + $Role | Add-Member -NotePropertyName EntraGroup -NotePropertyValue $EntraGroup.GroupName -Force + $Role | Add-Member -NotePropertyName EntraGroupId -NotePropertyValue $EntraGroup.GroupId -Force + } + $RoleList.Add($Role) + } + $Body = @($RoleList) + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -InputObject $Body -Depth 5 + }) +} + diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 new file mode 100644 index 000000000000..d512c090da28 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomVariables.ps1 @@ -0,0 +1,287 @@ +function Invoke-ListCustomVariables { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + + $HttpResponse = [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{} + } + + try { + # Define reserved variables (matching Get-CIPPTextReplacement) + $ReservedVariables = @( + @{ + Name = 'tenantid' + Variable = '%tenantid%' + Description = 'The tenant customer ID' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'organizationid' + Variable = '%organizationid%' + Description = 'The tenant customer ID' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'tenantfilter' + Variable = '%tenantfilter%' + Description = 'The tenant default domain name' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'tenantname' + Variable = '%tenantname%' + Description = 'The tenant display name' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'defaultdomain' + Variable = '%defaultdomain%' + Description = 'The tenant default domain name' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'initialdomain' + Variable = '%initialdomain%' + Description = 'The tenant initial domain name' + Type = 'reserved' + Category = 'tenant' + }, + @{ + Name = 'partnertenantid' + Variable = '%partnertenantid%' + Description = 'The partner tenant ID' + Type = 'reserved' + Category = 'partner' + }, + @{ + Name = 'samappid' + Variable = '%samappid%' + Description = 'The SAM application ID' + Type = 'reserved' + Category = 'partner' + }, + @{ + Name = 'cippuserschema' + Variable = '%cippuserschema%' + Description = 'The CIPP user schema extension ID' + Type = 'reserved' + Category = 'cipp' + }, + @{ + Name = 'cippurl' + Variable = '%cippurl%' + Description = 'The CIPP instance URL' + Type = 'reserved' + Category = 'cipp' + }, + @{ + Name = 'serial' + Variable = '%serial%' + Description = 'System serial number' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'systemroot' + Variable = '%systemroot%' + Description = 'System root directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'systemdrive' + Variable = '%systemdrive%' + Description = 'System drive letter' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'temp' + Variable = '%temp%' + Description = 'Temporary directory path' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'userprofile' + Variable = '%userprofile%' + Description = 'User profile directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'username' + Variable = '%username%' + Description = 'Current username' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'userdomain' + Variable = '%userdomain%' + Description = 'User domain' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'windir' + Variable = '%windir%' + Description = 'Windows directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'programfiles' + Variable = '%programfiles%' + Description = 'Program Files directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'programfiles(x86)' + Variable = '%programfiles(x86)%' + Description = 'Program Files (x86) directory' + Type = 'reserved' + Category = 'system' + }, + @{ + Name = 'programdata' + Variable = '%programdata%' + Description = 'Program Data directory' + Type = 'reserved' + Category = 'system' + } + ) + + # Use a hashtable to track variables by name to handle overrides + $VariableMap = @{} + + if ($Request.Query.includeSystem -and $Request.Query.includeSystem -ne 'true') { + $ReservedVariables = $ReservedVariables | Where-Object { $_.Category -ne 'system' } + } + + # Filter out global reserved variables if requested (for tenant group rules) + # These variables are the same for all tenants so they're not useful for grouping + if ($Request.Query.excludeGlobalReserved -eq 'true') { + $ReservedVariables = $ReservedVariables | Where-Object { + $_.Category -notin @('partner', 'cipp', 'system') + } + } + + # Add reserved variables first + foreach ($Variable in $ReservedVariables) { + $VariableMap[$Variable.Name] = $Variable + } + + # Get custom variables from the replace map table + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + + # Get global variables (AllTenants) - these can be overridden by tenant-specific ones + $GlobalVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + if ($GlobalVariables) { + foreach ($Variable in $GlobalVariables) { + if ($Variable.RowKey -and $Variable.Value) { + $VariableMap[$Variable.RowKey] = @{ + Name = $Variable.RowKey + Variable = "%$($Variable.RowKey)%" + Description = 'Global custom variable' + Value = $Variable.Value + Type = 'custom' + Category = 'global' + Scope = 'AllTenants' + } + } + } + } + + # Get tenant-specific variables if tenantFilter is provided + # These override any global variables with the same name + $TenantFilter = $Request.Query.tenantFilter + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + # Try to get tenant to find customerId + try { + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $CustomerId = $Tenant.customerId + + # Get variables by customerId + $TenantVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId'" + + # If no results found by customerId, try by defaultDomainName + if (-not $TenantVariables) { + $TenantVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$($Tenant.defaultDomainName)'" + } + + if ($TenantVariables) { + foreach ($Variable in $TenantVariables) { + if ($Variable.RowKey -and $Variable.Value) { + # Tenant variables override global ones with the same name + $VariableMap[$Variable.RowKey] = @{ + Name = $Variable.RowKey + Variable = "%$($Variable.RowKey)%" + Description = 'Tenant-specific custom variable' + Value = $Variable.Value + Type = 'custom' + Category = 'tenant-custom' + Scope = $TenantFilter + } + } + } + } + } catch { + Write-LogMessage -API $APIName -message "Could not retrieve tenant-specific variables for $TenantFilter : $($_.Exception.Message)" -Sev 'Warning' + } + } + + # Convert hashtable values to array and sort + $AllVariables = $VariableMap.Values + $SortedVariables = $AllVariables | Sort-Object @{ + Expression = { + switch ($_.Type) { + 'reserved' { 1 } + 'custom' { + switch ($_.Category) { + 'global' { 2 } + 'tenant-custom' { 3 } + default { 4 } + } + } + default { 5 } + } + } + }, Name + + $HttpResponse.Body = @{ + Results = @($SortedVariables) + Metadata = @{ + TenantFilter = $TenantFilter + TotalCount = $SortedVariables.Count + ReservedCount = @($SortedVariables | Where-Object { $_.Type -eq 'reserved' }).Count + CustomCount = @($SortedVariables | Where-Object { $_.Type -eq 'custom' }).Count + } + } + + } catch { + $HttpResponse.StatusCode = [HttpStatusCode]::InternalServerError + $HttpResponse.Body = @{ + Results = @() + Error = $_.Exception.Message + } + Write-LogMessage -API $APIName -message "Failed to retrieve custom variables: $($_.Exception.Message)" -Sev 'Error' + } + + return $HttpResponse +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 new file mode 100644 index 000000000000..4aae7a0858df --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 @@ -0,0 +1,21 @@ +function Invoke-ListTenantGroups { + <# + .SYNOPSIS + Entrypoint for listing tenant groups + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $groupFilter = $Request.Query.groupId ?? $Request.Body.groupId + $TenantGroups = (Get-TenantGroups -GroupId $groupFilter -SkipCache) ?? @() + $Body = @{ Results = @($TenantGroups) } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 new file mode 100644 index 000000000000..5d9b59c9616a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 @@ -0,0 +1,78 @@ +function Invoke-ExecAddTenant { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + # Get the tenant ID from the request body + $tenantId = $Request.body.tenantId + $defaultDomainName = $Request.body.defaultDomainName + + # Get the Tenants table + $TenantsTable = Get-CippTable -tablename 'Tenants' + #force a refresh of the authentication info + $auth = Get-CIPPAuthentication + # Check if tenant already exists + $ExistingTenant = Get-CIPPAzDataTableEntity @TenantsTable -Filter "PartitionKey eq 'Tenants' and RowKey eq '$tenantId'" + + if ($tenantId -eq $env:TenantID) { + # If the tenant is the partner tenant, return an error because you cannot add the partner tenant as direct tenant + $Results = @{'message' = 'You cannot add the partner tenant as a direct tenant. Please connect the tenant using the "Connect to Partner Tenant" option. '; 'severity' = 'error'; } + } elseif ($ExistingTenant) { + # Update existing tenant + $ExistingTenant.delegatedPrivilegeStatus = 'directTenant' + Add-CIPPAzDataTableEntity @TenantsTable -Entity $ExistingTenant -Force | Out-Null + $Results = @{'message' = 'Successfully updated tenant.'; 'severity' = 'success' } + } else { + # Create new tenant entry + try { + # Get tenant information from Microsoft Graph + $headers = @{ Authorization = "Bearer $($request.body.accessToken)" } + $Organization = (Invoke-RestMethod -Uri 'https://graph.microsoft.com/v1.0/organization' -Headers $headers -Method GET -ContentType 'application/json' -ErrorAction Stop).value + $displayName = $Organization.displayName + $Domains = (Invoke-RestMethod -Uri 'https://graph.microsoft.com/v1.0/domains?$top=999' -Headers $headers -Method GET -ContentType 'application/json' -ErrorAction Stop).value + $defaultDomainName = ($Domains | Where-Object { $_.isDefault -eq $true }).id + $initialDomainName = ($Domains | Where-Object { $_.isInitial -eq $true }).id + } catch { + Write-LogMessage -API 'Add-Tenant' -message "Failed to get information for tenant $tenantId - $($_.Exception.Message)" -Sev 'Critical' + throw "Failed to get information for tenant $tenantId. Make sure the tenant is properly authenticated." + } + + # Create new tenant object + $NewTenant = [PSCustomObject]@{ + PartitionKey = 'Tenants' + RowKey = $tenantId + customerId = $tenantId + displayName = $displayName + defaultDomainName = $defaultDomainName + initialDomainName = $initialDomainName + delegatedPrivilegeStatus = 'directTenant' + domains = '' + Excluded = $false + ExcludeUser = '' + ExcludeDate = '' + GraphErrorCount = 0 + LastGraphError = '' + RequiresRefresh = $false + LastRefresh = (Get-Date).ToUniversalTime() + } + + # Add tenant to table + Add-CIPPAzDataTableEntity @TenantsTable -Entity $NewTenant -Force | Out-Null + $Results = @{'message' = "Successfully added tenant $displayName ($defaultDomainName) to the tenant list with Direct Tenant status."; 'severity' = 'success' } + Write-LogMessage -tenant $defaultDomainName -tenantid $tenantId -API 'Add-Tenant' -message "Added tenant $displayName ($defaultDomainName) with Direct Tenant status." -Sev 'Info' + } + } catch { + $Results = @{'message' = "Failed to add tenant: $($_.Exception.Message)"; 'state' = 'error'; 'severity' = 'error' } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 new file mode 100644 index 000000000000..154edd7c73af --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 @@ -0,0 +1,116 @@ +function Invoke-ExecCombinedSetup { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.ReadWrite + #> + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '')] + [CmdletBinding()] + param($Request, $TriggerMetadata) + #Make arraylist of Results + $Results = [System.Collections.ArrayList]::new() + try { + if ($request.body.selectedBaselines -and $request.body.baselineOption -eq 'downloadBaselines') { + #do a single download of the selected baselines. + foreach ($template in $request.body.selectedBaselines) { + $object = @{ + TenantFilter = 'No tenant' + Name = "Download Single Baseline: $($template.value)" + Command = @{ + value = 'New-CIPPTemplateRun' + } + Parameters = @{ + TemplateSettings = @{ + ca = $false + intuneconfig = $false + intunecompliance = $false + intuneprotection = $false + templateRepo = @{ + label = $Template.label + value = $template.value + addedFields = @{ + branch = 'main' + } + } + templateRepoBranch = @{ + label = 'main' + value = 'main' + } + standardsconfig = $true + groupTemplates = $true + policyTemplates = $true + caTemplates = $true + } + } + ScheduledTime = 0 + } + $null = Add-CIPPScheduledTask -task $object -hidden $false -DisallowDuplicateName $true -Headers $Request.Headers + $Results.add("Scheduled download of baseline: $($template.value)") + } + } + if ($Request.body.email -or $Request.body.webhook) { + #create hashtable from pscustomobject + $notificationConfig = $request.body | Select-Object email, webhook, onepertenant, logsToInclude, sendtoIntegration, sev | ConvertTo-Json | ConvertFrom-Json -AsHashtable + $notificationResults = Set-CIPPNotificationConfig @notificationConfig + $Results.add($notificationResults) + } + if ($Request.Body.selectedOption -eq 'Manual') { + $KV = $env:WEBSITE_DEPLOYMENT_ID + + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + if (!$Secret) { + $Secret = [PSCustomObject]@{ + 'PartitionKey' = 'Secret' + 'RowKey' = 'Secret' + 'TenantId' = '' + 'RefreshToken' = '' + 'ApplicationId' = '' + 'ApplicationSecret' = '' + } + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + } + + if ($Request.Body.tenantId) { $Secret.TenantId = $Request.Body.tenantid } + if ($Request.Body.applicationId) { $Secret.ApplicationId = $Request.Body.applicationId } + if ($Request.Body.ApplicationSecret) { $Secret.ApplicationSecret = $Request.Body.ApplicationSecret } + if ($Request.Body.RefreshToken) { $Secret.RefreshToken = $Request.Body.RefreshToken } + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + $Results.add('Manual credentials have been set in the DevSecrets table.') + } else { + if ($Request.Body.tenantId) { + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantId -AsPlainText -Force) + $Results.add('Set tenant ID in Key Vault.') + } + if ($Request.Body.applicationId) { + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationId -AsPlainText -Force) + $Results.add('Set application ID in Key Vault.') + } + if ($Request.Body.applicationSecret) { + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationSecret -AsPlainText -Force) + $Results.add('Set application secret in Key Vault.') + } + if ($Request.Body.RefreshToken) { + Set-CippKeyVaultSecret -VaultName $kv -Name 'refreshtoken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) + $Results.add('Set refresh token in Key Vault.') + } + } + + $Results.add('Manual credentials setup has been completed.') + } + + $Results.add('Setup is now complete. You may navigate away from this page and start using CIPP.') + #one more force of reauth so env vars update. + $auth = Get-CIPPAuthentication + } catch { + $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)"; severity = 'failed' } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 new file mode 100644 index 000000000000..3e00555ce247 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 @@ -0,0 +1,110 @@ +function Invoke-ExecCreateSAMApp { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.ReadWrite + #> + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '')] + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $KV = $env:WEBSITE_DEPLOYMENT_ID + + try { + $Token = $Request.body + if ($Token) { + $URL = ($Request.headers.'x-ms-original-url').split('/api') | Select-Object -First 1 + $TenantId = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/organization' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method GET -ContentType 'application/json').value.id + #Find Existing app registration + $AppId = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications?`$filter=displayName eq 'CIPP-SAM'" -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method GET -ContentType 'application/json').value | Select-Object -Last 1 + #Check if the appId has the redirect URI, if not, add it. + if ($AppId) { + Write-Host "Found existing app: $($AppId.id). Reusing." + $state = 'updated' + #remove the entire web object from the app registration + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') + $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json + $app.web.redirectUris = @("$($url)/authredirect") + $app = ConvertTo-Json -Depth 15 -Compress -InputObject $app + Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications/$($AppId.id)" -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method PATCH -Body $app -ContentType 'application/json' + } else { + $state = 'created' + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') + $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json + $app.web.redirectUris = @("$($url)/authredirect") + $app = $app | ConvertTo-Json -Depth 15 + $AppId = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/applications' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body $app -ContentType 'application/json') + $attempt = 0 + do { + try { + try { + $SPNDefender = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"fc780465-2017-40d4-a0c5-307022471b92`" }" -ContentType 'application/json') + } catch { + Write-Information "didn't deploy spn for defender, probably already there." + } + try { + $SPNTeams = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"48ac35b8-9aa8-4d74-927d-1f4a14a0b239`" }" -ContentType 'application/json') + } catch { + Write-Information "didn't deploy spn for Teams, probably already there." + } + try { + $SPNO365Manage = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"c5393580-f805-4401-95e8-94b7a6ef2fc2`" }" -ContentType 'application/json') + } catch { + Write-Information "didn't deploy spn for O365 Management, probably already there." + } + try { + $SPNPartnerCenter = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd`" }" -ContentType 'application/json') + } catch { + Write-Information "didn't deploy spn for PartnerCenter, probably already there." + } + $SPN = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"$($AppId.appId)`" }" -ContentType 'application/json') + Start-Sleep 2 + $attempt ++ + } catch { + $attempt ++ + } + } until ($attempt -gt 3) + } + $AppPassword = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications/$($AppId.id)/addPassword" -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body '{"passwordCredential":{"displayName":"CIPPInstall"}}' -ContentType 'application/json').secretText + + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + if (!$Secret) { $Secret = New-Object -TypeName PSObject } + $Secret | Add-Member -MemberType NoteProperty -Name 'PartitionKey' -Value 'Secret' -Force + $Secret | Add-Member -MemberType NoteProperty -Name 'RowKey' -Value 'Secret' -Force + $Secret | Add-Member -MemberType NoteProperty -Name 'tenantid' -Value $TenantId -Force + $Secret | Add-Member -MemberType NoteProperty -Name 'applicationid' -Value $AppId.appId -Force + $Secret | Add-Member -MemberType NoteProperty -Name 'applicationsecret' -Value $AppPassword -Force + Write-Information ($Secret | ConvertTo-Json -Depth 5) + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + } else { + + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) + } + $ConfigTable = Get-CippTable -tablename 'Config' + #update the ConfigTable with the latest appId, for caching compare. + $NewConfig = @{ + PartitionKey = 'AppCache' + RowKey = 'AppCache' + ApplicationId = $AppId.appId + } + Add-CIPPAzDataTableEntity @ConfigTable -Entity $NewConfig -Force | Out-Null + $Results = @{'message' = "Succesfully $state the application registration. The application ID is $($AppId.appid). You may continue to the next step."; severity = 'success' } + } + + } catch { + $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)"; severity = 'failed' } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecDeviceCodeLogon.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecDeviceCodeLogon.ps1 new file mode 100644 index 000000000000..69b1659238d5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecDeviceCodeLogon.ps1 @@ -0,0 +1,61 @@ +function Invoke-ExecDeviceCodeLogon { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + try { + $clientId = $Request.Query.clientId + $scope = $Request.Query.scope + $tenantId = $Request.Query.tenantId + $deviceCode = $Request.Query.deviceCode + + if (!$scope) { + $scope = 'https://graph.microsoft.com/.default' + } + if ($Request.Query.operation -eq 'getDeviceCode') { + $deviceCodeInfo = New-DeviceLogin -clientid $clientId -scope $scope -FirstLogon -TenantId $tenantId + $Results = @{ + user_code = $deviceCodeInfo.user_code + device_code = $deviceCodeInfo.device_code + verification_uri = $deviceCodeInfo.verification_uri + expires_in = $deviceCodeInfo.expires_in + interval = $deviceCodeInfo.interval + message = $deviceCodeInfo.message + } + } elseif ($Request.Query.operation -eq 'checkToken') { + $tokenInfo = New-DeviceLogin -clientid $clientId -scope $scope -device_code $deviceCode + + if ($tokenInfo.refresh_token) { + $Results = @{ + status = 'success' + access_token = $tokenInfo.access_token + refresh_token = $tokenInfo.refresh_token + id_token = $tokenInfo.id_token + expires_in = $tokenInfo.expires_in + ext_expires_in = $tokenInfo.ext_expires_in + } + } else { + $Results = @{ + status = 'pending' + error = $tokenInfo.error + error_description = $tokenInfo.error_description + } + } + } + } catch { + $Results = @{ + error = 'server_error' + error_description = "An error occurred: $($_.Exception.Message)" + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results | ConvertTo-Json + Headers = @{'Content-Type' = 'application/json' } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 new file mode 100644 index 000000000000..92de081e10e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 @@ -0,0 +1,233 @@ +function Invoke-ExecSAMSetup { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.ReadWrite + .LEGACY + This function is a legacy function that was used to set up the CIPP application in Azure AD. It is not used in the current version of CIPP, look at Invoke-ExecCreateSAMApp for the new version. + #> + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '')] + [CmdletBinding()] + param($Request, $TriggerMetadata) + + + if ($Request.Query.error) { + Add-Type -AssemblyName System.Web + return ([HttpResponseContext]@{ + ContentType = 'text/html' + StatusCode = [HttpStatusCode]::Forbidden + Body = Get-normalizedError -Message [System.Web.HttpUtility]::UrlDecode($Request.Query.error_description) + }) + exit + } + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + if (!$Secret) { + $Secret = [PSCustomObject]@{ + 'PartitionKey' = 'Secret' + 'RowKey' = 'Secret' + 'TenantId' = '' + 'RefreshToken' = '' + 'ApplicationId' = '' + 'ApplicationSecret' = '' + } + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + } + } + if (!$env:SetFromProfile) { + Write-Information "We're reloading from KV" + Get-CIPPAuthentication + } + + $KV = $env:WEBSITE_DEPLOYMENT_ID + $Table = Get-CIPPTable -TableName SAMWizard + $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-10) + + try { + if ($Request.Query.count -lt 1 ) { $Results = 'No authentication code found. Please go back to the wizard.' } + + if ($Request.Body.setkeys) { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + if ($Request.Body.TenantId) { $Secret.TenantId = $Request.Body.tenantid } + if ($Request.Body.RefreshToken) { $Secret.RefreshToken = $Request.Body.RefreshToken } + if ($Request.Body.applicationid) { $Secret.ApplicationId = $Request.Body.ApplicationId } + if ($Request.Body.ApplicationSecret) { $Secret.ApplicationSecret = $Request.Body.ApplicationSecret } + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + } else { + if ($Request.Body.tenantid) { Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantid -AsPlainText -Force) } + if ($Request.Body.RefreshToken) { Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) } + if ($Request.Body.applicationid) { Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationid -AsPlainText -Force) } + if ($Request.Body.applicationsecret) { Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationsecret -AsPlainText -Force) } + } + + $Results = @{ Results = 'The keys have been replaced. Please perform a permissions check.' } + } + if ($Request.Query.error -eq 'invalid_client') { $Results = 'Client ID was not found in Azure. Try waiting 10 seconds to try again, if you have gotten this error after 5 minutes, please restart the process.' } + if ($Request.Query.code) { + try { + $TenantId = $Rows.tenantid + if (!$TenantId -or $TenantId -eq 'NotStarted') { $TenantId = $env:TenantID } + $AppID = $Rows.appid + if (!$AppID -or $AppID -eq 'NotStarted') { $appid = $env:ApplicationID } + $URL = ($Request.headers.'x-ms-original-url').split('?') | Select-Object -First 1 + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $clientsecret = $Secret.ApplicationSecret + } else { + $clientsecret = Get-CippKeyVaultSecret -VaultName $kv -Name 'ApplicationSecret' -AsPlainText + } + if (!$clientsecret) { $clientsecret = $env:ApplicationSecret } + Write-Information "client_id=$appid&scope=https://graph.microsoft.com/.default+offline_access+openid+profile&code=$($Request.Query.code)&grant_type=authorization_code&redirect_uri=$($url)&client_secret=$clientsecret" #-Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" + $RefreshToken = Invoke-RestMethod -Method POST -Body "client_id=$appid&scope=https://graph.microsoft.com/.default+offline_access+openid+profile&code=$($Request.Query.code)&grant_type=authorization_code&redirect_uri=$($url)&client_secret=$clientsecret" -Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" -ContentType 'application/x-www-form-urlencoded' + + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $Secret.RefreshToken = $RefreshToken.refresh_token + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + } else { + Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $RefreshToken.refresh_token -AsPlainText -Force) + } + + $Results = 'Authentication is now complete. You may now close this window.' + try { + $SetupPhase = $rows.validated = $true + Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null + } catch { + #no need. + } + } catch { + $Results = "Authentication failed. $($_.Exception.message)" + } + } + if ($Request.Query.CreateSAM) { + $Rows = @{ + RowKey = 'setup' + PartitionKey = 'setup' + validated = $false + SamSetup = 'NotStarted' + partnersetup = $true + appid = 'NotStarted' + tenantid = 'NotStarted' + } + Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null + $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-10) + $step = 1 + $DeviceLogon = New-DeviceLogin -clientid '1b730954-1685-4b74-9bfd-dac224a7b894' -Scope 'https://graph.microsoft.com/.default' -FirstLogon + $SetupPhase = $rows.SamSetup = [string]($DeviceLogon | ConvertTo-Json) + Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null + $Results = @{ code = $($DeviceLogon.user_code); message = "Your code is $($DeviceLogon.user_code). Enter the code" ; step = $step; url = $DeviceLogon.verification_uri } + } + if ($Request.Query.CheckSetupProcess -and $Request.Query.step -eq 1) { + $SAMSetup = $Rows.SamSetup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($SamSetup.token_type -eq 'Bearer') { + #sleeping for 10 seconds to allow the token to be created. + Start-Sleep 10 + #nulling the token to force a recheck. + $step = 2 + } + $Token = (New-DeviceLogin -clientid '1b730954-1685-4b74-9bfd-dac224a7b894' -Scope 'https://graph.microsoft.com/.default' -device_code $SAMSetup.device_code) + Write-Information "Token is $($token | ConvertTo-Json)" + if ($Token.access_token) { + $step = 2 + $rows.SamSetup = [string]($Token | ConvertTo-Json) + $URL = ($Request.headers.'x-ms-original-url').split('?') | Select-Object -First 1 + $PartnerSetup = $true + $TenantId = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/organization' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method GET -ContentType 'application/json').value.id + $SetupPhase = $rows.tenantid = [string]($TenantId) + Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null + if ($PartnerSetup) { + #$app = Get-Content '.\Cache_SAMSetup\SAMManifest.json' | ConvertFrom-Json + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') + $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json + + $App.web.redirectUris = @($App.web.redirectUris + $URL) + $app = $app | ConvertTo-Json -Depth 15 + $AppId = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/applications' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body $app -ContentType 'application/json') + $rows.appid = [string]($AppId.appId) + Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null + $attempt = 0 + do { + try { + try { + $SPNDefender = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"fc780465-2017-40d4-a0c5-307022471b92`" }" -ContentType 'application/json') + } catch { + Write-Information "didn't deploy spn for defender, probably already there." + } + try { + $SPNTeams = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"48ac35b8-9aa8-4d74-927d-1f4a14a0b239`" }" -ContentType 'application/json') + } catch { + Write-Information "didn't deploy spn for Teams, probably already there." + } + try { + $SPNO365Manage = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"c5393580-f805-4401-95e8-94b7a6ef2fc2`" }" -ContentType 'application/json') + } catch { + Write-Information "didn't deploy spn for O365 Management, probably already there." + } + try { + $SPNPartnerCenter = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd`" }" -ContentType 'application/json') + } catch { + Write-Information "didn't deploy spn for PartnerCenter, probably already there." + } + $SPN = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"$($AppId.appId)`" }" -ContentType 'application/json') + Start-Sleep 3 + $attempt ++ + } catch { + $attempt ++ + } + } until ($attempt -gt 5) + } + $AppPassword = (Invoke-RestMethod "https://graph.microsoft.com/v1.0/applications/$($AppId.id)/addPassword" -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body '{"passwordCredential":{"displayName":"CIPPInstall"}}' -ContentType 'application/json').secretText + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $Secret.TenantId = $TenantId + $Secret.ApplicationId = $AppId.appId + $Secret.ApplicationSecret = $AppPassword + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + Write-Information ($Secret | ConvertTo-Json -Depth 5) + } else { + Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) + Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) + } + $Results = @{'message' = 'Created application. Waiting 30 seconds for Azure propagation'; step = $step } + } else { + $step = 1 + $Results = @{ code = $($SAMSetup.user_code); message = "Your code is $($SAMSetup.user_code). Enter the code " ; step = $step; url = $SAMSetup.verification_uri } + } + + } + switch ($Request.Query.step) { + 2 { + $step = 2 + $TenantId = $Rows.tenantid + $AppID = $rows.appid + $PartnerSetup = $true + $SetupPhase = $rows.SamSetup = [string]($FirstLogonRefreshtoken | ConvertTo-Json) + Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null + $URL = ($Request.headers.'x-ms-original-url').split('?') | Select-Object -First 1 + $Validated = $Rows.validated + if ($Validated) { $step = 3 } + $Results = @{ appId = $AppID; message = 'Give the next approval by clicking ' ; step = $step; url = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/authorize?scope=https://graph.microsoft.com/.default+offline_access+openid+profile&response_type=code&client_id=$($appid)&redirect_uri=$($url)" } + } + 3 { + $step = 4 + $Results = @{'message' = 'Received token.'; step = $step } + } + 4 { + Remove-AzDataTableEntity -Force @Table -Entity $Rows + $step = 5 + $Results = @{'message' = 'setup completed.'; step = $step + } + } + } + + } catch { + $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)" ; step = $step } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 new file mode 100644 index 000000000000..6fd1a97bf94a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 @@ -0,0 +1,88 @@ +Function Invoke-ExecTokenExchange { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + # Get the key vault name + $KV = $env:WEBSITE_DEPLOYMENT_ID + $APIName = $Request.Params.CIPPEndpoint + + try { + if (!$Request.Body) { + Write-LogMessage -API $APIName -message 'Request body is missing' -Sev 'Error' + throw 'Request body is missing' + } + + $TokenRequest = $Request.Body.tokenRequest + $TokenUrl = $Request.Body.tokenUrl + $TenantId = $Request.Body.tenantId + + if (!$TokenRequest -or !$TokenUrl) { + Write-LogMessage -API $APIName -message 'Missing required parameters: tokenRequest or tokenUrl' -Sev 'Error' + throw 'Missing required parameters: tokenRequest or tokenUrl' + } + + Write-LogMessage -API $APIName -message "Making token request to $TokenUrl" -Sev 'Info' + + # Make sure we get the latest authentication + $auth = Get-CIPPAuthentication + + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + $ClientSecret = $Secret.applicationsecret + Write-LogMessage -API $APIName -message 'Retrieved client secret from development secrets' -Sev 'Info' + } else { + try { + $ClientSecret = (Get-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -AsPlainText) + Write-LogMessage -API $APIName -message 'Retrieved client secret from key vault' -Sev 'Info' + } catch { + Write-LogMessage -API $APIName -message "Failed to retrieve client secret: $($_.Exception.Message)" -Sev 'Error' + throw "Failed to retrieve client secret: $($_.Exception.Message)" + } + } + + if (!$ClientSecret) { + Write-LogMessage -API $APIName -message 'Client secret is empty or null' -Sev 'Error' + throw 'Client secret is empty or null' + } + + # Convert token request to form data and add client secret + $FormData = @{} + foreach ($key in $TokenRequest.PSObject.Properties.Name) { + $FormData[$key] = $TokenRequest.$key + } + + # Add client_secret to the form data if not already present + if (!$FormData.ContainsKey('client_secret')) { + $FormData['client_secret'] = $ClientSecret + } + + Write-Host "Posting this data: $($FormData | ConvertTo-Json -Depth 15)" + $Results = Invoke-RestMethod -Uri $TokenUrl -Method Post -Body $FormData -ContentType 'application/x-www-form-urlencoded' -ErrorAction Stop -SkipHttpErrorCheck + } catch { + $ErrorMessage = $_.Exception + $Results = @{ + error = 'server_error' + error_description = "Token exchange failed: $ErrorMessage" + } + } + if ($Results.error) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $Results + Headers = @{'Content-Type' = 'application/json' } + }) + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + Headers = @{'Content-Type' = 'application/json' } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 new file mode 100644 index 000000000000..6a6dfae29ccc --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 @@ -0,0 +1,69 @@ +function Invoke-ExecUpdateRefreshToken { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.AppSettings.ReadWrite + #> + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '')] + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $KV = $env:WEBSITE_DEPLOYMENT_ID + + try { + # Handle refresh token update + #make sure we get the latest authentication: + $auth = Get-CIPPAuthentication + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + + if ($env:TenantID -eq $Request.body.tenantId) { + $Secret | Add-Member -MemberType NoteProperty -Name 'RefreshToken' -Value $Request.body.refreshtoken -Force + } else { + Write-Host "$($env:TenantID) does not match $($Request.body.tenantId)" + $name = $Request.body.tenantId -replace '-', '_' + $secret | Add-Member -MemberType NoteProperty -Name $name -Value $Request.body.refreshtoken -Force + } + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + } else { + if ($env:TenantID -eq $Request.body.tenantId) { + Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) + } else { + Write-Host "$($env:TenantID) does not match $($Request.body.tenantId) - we're adding a new secret for the tenant." + $name = $Request.body.tenantId + try { + Set-CippKeyVaultSecret -VaultName $kv -Name $name -SecretValue (ConvertTo-SecureString -String $Request.body.refreshtoken -AsPlainText -Force) + } catch { + Write-Host "Failed to set secret $name in KeyVault. $($_.Exception.Message)" + throw $_ + } + } + } + $InstanceId = Start-UpdatePermissionsOrchestrator #start the CPV refresh immediately while wizard still runs. + + if ($request.body.tenantId -eq $env:TenantID) { + $TenantName = 'your partner tenant' + } else { + $TenantName = $request.body.tenantId + } + $Results = @{ + 'resultText' = "Successfully updated the credentials for $($TenantName). You may continue to the next step, or add additional tenants if required." + 'state' = 'success' + } + } catch { + $Results = [pscustomobject]@{ + 'Results' = @{ + resultText = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)" + state = 'failed' + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContact.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContact.ps1 new file mode 100644 index 000000000000..7b21aa0e5131 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContact.ps1 @@ -0,0 +1,103 @@ +function Invoke-AddContact { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Contact.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ContactObject = $Request.Body + $TenantId = $ContactObject.tenantid + + try { + # Prepare the body for New-MailContact cmdlet + $BodyToship = @{ + displayName = $ContactObject.displayName + name = $ContactObject.displayName + ExternalEmailAddress = $ContactObject.email + FirstName = $ContactObject.firstName + LastName = $ContactObject.lastName + } + + # Create the mail contact first + $NewContact = New-ExoRequest -tenantid $TenantId -cmdlet 'New-MailContact' -cmdParams $BodyToship -UseSystemMailbox $true + + # Build SetContactParams efficiently with only provided values + $SetContactParams = @{ + Identity = $NewContact.id + } + + # Helper to add non-empty values + $PropertyMap = @{ + 'Title' = $ContactObject.Title + 'Company' = $ContactObject.Company + 'StreetAddress' = $ContactObject.StreetAddress + 'City' = $ContactObject.City + 'StateOrProvince' = $ContactObject.State + 'PostalCode' = $ContactObject.PostalCode + 'CountryOrRegion' = $ContactObject.CountryOrRegion + 'Phone' = $ContactObject.phone + 'MobilePhone' = $ContactObject.mobilePhone + 'WebPage' = $ContactObject.website + } + + # Add only non-null/non-empty properties + foreach ($Property in $PropertyMap.GetEnumerator()) { + if (![string]::IsNullOrWhiteSpace($Property.Value)) { + $SetContactParams[$Property.Key] = $Property.Value + } + } + + # Update the contact with additional details only if we have properties to set + if ($SetContactParams.Count -gt 1) { + Start-Sleep -Milliseconds 500 # Ensure the contact is created before updating + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-Contact' -cmdParams $SetContactParams -UseSystemMailbox $true + } + + # Check if we need to update MailContact properties + $needsMailContactUpdate = $false + $MailContactParams = @{ + Identity = $NewContact.id + } + + # Only add HiddenFromAddressListsEnabled if we're actually hiding from GAL + if ([bool]$ContactObject.hidefromGAL) { + $MailContactParams.HiddenFromAddressListsEnabled = $true + $needsMailContactUpdate = $true + } + + # Add MailTip if provided + if (![string]::IsNullOrWhiteSpace($ContactObject.mailTip)) { + $MailContactParams.MailTip = $ContactObject.mailTip + $needsMailContactUpdate = $true + } + + # Only call Set-MailContact if we have changes to make + if ($needsMailContactUpdate) { + Start-Sleep -Milliseconds 500 # Ensure the contact is created before updating + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-MailContact' -cmdParams $MailContactParams -UseSystemMailbox $true + } + + # Log the result + $Result = "Successfully created contact $($ContactObject.displayName) with email address $($ContactObject.email)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create contact. $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContactTemplates.ps1 new file mode 100644 index 000000000000..af9b208dded7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-AddContactTemplates.ps1 @@ -0,0 +1,65 @@ +Function Invoke-AddContactTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + Write-Host ($request | ConvertTo-Json -Depth 10 -Compress) + + try { + $GUID = (New-Guid).GUID + + # Create a new ordered hashtable to store selected properties + $contactObject = [ordered]@{} + + # Set name and comments first + $contactObject["name"] = $Request.body.displayName + $contactObject["comments"] = "Contact template created $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" + + # Copy specific properties we want to keep + $propertiesToKeep = @( + "displayName", "firstName", "lastName", "email", "hidefromGAL", "streetAddress", "postalCode", + "city", "state", "country", "companyName", "mobilePhone", "businessPhone", "jobTitle", "website", "mailTip" + ) + + # Copy each property if it exists + foreach ($prop in $propertiesToKeep) { + if ($null -ne $Request.body.$prop) { + $contactObject[$prop] = $Request.body.$prop + } + } + + # Convert to JSON + $JSON = $contactObject | ConvertTo-Json -Depth 10 + + # Save the template to Azure Table Storage + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'ContactTemplate' + } + + Write-LogMessage -Headers $Headers -API $APINAME -message "Created Contact Template $($contactObject.name) with GUID $GUID" -Sev Info + $body = [pscustomobject]@{'Results' = "Created Contact Template $($contactObject.name) with GUID $GUID" } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APINAME -message "Failed to create Contact template: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to create Contact template: $($ErrorMessage.NormalizedError)" } + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-DeployContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-DeployContactTemplates.ps1 new file mode 100644 index 000000000000..84b79cff13be --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-DeployContactTemplates.ps1 @@ -0,0 +1,181 @@ +Function Invoke-DeployContactTemplates { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Contact.ReadWrite + .DESCRIPTION + This function deploys contact(s) from template(s) to selected tenants. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + try { + $RequestBody = $Request.Body + + # Extract tenant IDs from the selectedTenants objects - get the value property + $SelectedTenants = [System.Collections.Generic.List[string]]::new() + + foreach ($TenantItem in $RequestBody.selectedTenants) { + if ($TenantItem.value) { + $SelectedTenants.Add($TenantItem.value) + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Tenant item missing value property: $($TenantItem | ConvertTo-Json -Compress)" -Sev 'Warning' + } + } + + # Handle AllTenants selection + if ('AllTenants' -in $SelectedTenants) { + $SelectedTenants = [System.Collections.Generic.List[string]]::new() + $AllTenantsList = (Get-Tenants).defaultDomainName + foreach ($Tenant in $AllTenantsList) { + $SelectedTenants.Add($Tenant) + } + } + + # Get the contact templates from TemplateList + $ContactTemplates = [System.Collections.Generic.List[object]]::new() + + if ($RequestBody.TemplateList -and $RequestBody.TemplateList.Count -gt 0) { + # Templates are provided in TemplateList format + foreach ($TemplateItem in $RequestBody.TemplateList) { + if ($TemplateItem.value) { + $ContactTemplates.Add($TemplateItem.value) + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Template item missing value property: $($TemplateItem | ConvertTo-Json -Compress)" -Sev 'Warning' + } + } + } else { + throw "TemplateList is required and must contain at least one template" + } + + if ($ContactTemplates.Count -eq 0) { + throw "No valid contact templates found to deploy" + } + + $Results = foreach ($TenantFilter in $SelectedTenants) { + foreach ($ContactTemplate in $ContactTemplates) { + try { + # Check if contact with this email already exists + $ExistingContactsParam = @{ + tenantid = $TenantFilter + cmdlet = 'Get-MailContact' + cmdParams = @{ + Filter = "ExternalEmailAddress -eq '$($ContactTemplate.email)'" + } + useSystemMailbox = $true + } + + $ExistingContacts = New-ExoRequest @ExistingContactsParam + $ContactExists = $ExistingContacts | Where-Object { $_.ExternalEmailAddress -eq $ContactTemplate.email } + + if ($ContactExists) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Contact with email '$($ContactTemplate.email)' already exists in tenant $TenantFilter" -Sev 'Warning' + "Contact '$($ContactTemplate.displayName)' with email '$($ContactTemplate.email)' already exists in tenant $TenantFilter" + continue + } + + # Prepare the body for New-MailContact cmdlet + $BodyToship = @{ + displayName = $ContactTemplate.displayName + name = $ContactTemplate.displayName + ExternalEmailAddress = $ContactTemplate.email + FirstName = $ContactTemplate.firstName + LastName = $ContactTemplate.lastName + } + + # Create the mail contact first + $NewContact = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-MailContact' -cmdParams $BodyToship -UseSystemMailbox $true + + # Build SetContactParams efficiently with only provided values + $SetContactParams = @{ + Identity = $NewContact.id + } + + # Helper to add non-empty values + $PropertyMap = @{ + 'Title' = $ContactTemplate.jobTitle + 'Company' = $ContactTemplate.companyName + 'StreetAddress' = $ContactTemplate.streetAddress + 'City' = $ContactTemplate.city + 'StateOrProvince' = $ContactTemplate.state + 'PostalCode' = $ContactTemplate.postalCode + 'CountryOrRegion' = $ContactTemplate.country + 'Phone' = $ContactTemplate.businessPhone + 'MobilePhone' = $ContactTemplate.mobilePhone + 'WebPage' = $ContactTemplate.website + } + + # Add only non-null/non-empty properties + foreach ($Property in $PropertyMap.GetEnumerator()) { + if (![string]::IsNullOrWhiteSpace($Property.Value)) { + $SetContactParams[$Property.Key] = $Property.Value + } + } + + # Update the contact with additional details only if we have properties to set + if ($SetContactParams.Count -gt 1) { + Start-Sleep -Milliseconds 500 # Ensure the contact is created before updating + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Contact' -cmdParams $SetContactParams -UseSystemMailbox $true + } + + # Check if we need to update MailContact properties + $needsMailContactUpdate = $false + $MailContactParams = @{ + Identity = $NewContact.id + } + + # Only add HiddenFromAddressListsEnabled if we're actually hiding from GAL + if ([bool]$ContactTemplate.hidefromGAL) { + $MailContactParams.HiddenFromAddressListsEnabled = $true + $needsMailContactUpdate = $true + } + + # Add MailTip if provided + if (![string]::IsNullOrWhiteSpace($ContactTemplate.mailTip)) { + $MailContactParams.MailTip = $ContactTemplate.mailTip + $needsMailContactUpdate = $true + } + + # Only call Set-MailContact if we have changes to make + if ($needsMailContactUpdate) { + Start-Sleep -Milliseconds 500 # Ensure the contact is created before updating + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailContact' -cmdParams $MailContactParams -UseSystemMailbox $true + } + + # Log the result + $ContactResult = "Successfully created contact '$($ContactTemplate.displayName)' with email '$($ContactTemplate.email)'" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ContactResult -Sev 'Info' + + # Return success message as a simple string + "Successfully deployed contact '$($ContactTemplate.displayName)' to tenant $TenantFilter" + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $ErrorDetail = "Failed to deploy contact '$($ContactTemplate.displayName)' to tenant $TenantFilter. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ErrorDetail -Sev 'Error' + + # Return error message as a simple string + "Failed to deploy contact '$($ContactTemplate.displayName)' to tenant $TenantFilter. Error: $($ErrorMessage.NormalizedError)" + } + } + } + + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to process contact template deployment request. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results} + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContact.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContact.ps1 new file mode 100644 index 000000000000..4559c8ed8558 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContact.ps1 @@ -0,0 +1,91 @@ +Function Invoke-EditContact { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Contact.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $TenantID = $Request.Body.tenantID + + try { + # Extract contact information from the request body + $contactInfo = $Request.Body + + # Build contact parameters with only provided values + $bodyForSetContact = @{ + Identity = $contactInfo.ContactID + } + + # Map of properties to check and add + $ContactPropertyMap = @{ + 'DisplayName' = $contactInfo.displayName + 'WindowsEmailAddress' = $contactInfo.email + 'FirstName' = $contactInfo.firstName + 'LastName' = $contactInfo.LastName + 'Title' = $contactInfo.Title + 'StreetAddress' = $contactInfo.StreetAddress + 'PostalCode' = $contactInfo.PostalCode + 'City' = $contactInfo.City + 'StateOrProvince' = $contactInfo.State + 'CountryOrRegion' = $contactInfo.CountryOrRegion + 'Company' = $contactInfo.Company + 'MobilePhone' = $contactInfo.mobilePhone + 'Phone' = $contactInfo.phone + 'WebPage' = $contactInfo.website + } + + # Add only non-null/non-empty properties + foreach ($Property in $ContactPropertyMap.GetEnumerator()) { + if (![string]::IsNullOrWhiteSpace($Property.Value)) { + $bodyForSetContact[$Property.Key] = $Property.Value + } + } + + # Update contact only if we have properties to set beyond Identity + if ($bodyForSetContact.Count -gt 1) { + $null = New-ExoRequest -tenantid $TenantID -cmdlet 'Set-Contact' -cmdParams $bodyForSetContact -UseSystemMailbox $true + } + + # Prepare mail contact specific parameters + $MailContactParams = @{ + Identity = $contactInfo.ContactID + } + + # Handle boolean conversion safely + if ($null -ne $contactInfo.hidefromGAL) { + $MailContactParams.HiddenFromAddressListsEnabled = [bool]$contactInfo.hidefromGAL + } + + # Add MailTip if provided + if (![string]::IsNullOrWhiteSpace($contactInfo.mailTip)) { + $MailContactParams.MailTip = $contactInfo.mailTip + } + + # Update mail contact only if we have properties to set beyond Identity + if ($MailContactParams.Count -gt 1) { + $null = New-ExoRequest -tenantid $TenantID -cmdlet 'Set-MailContact' -cmdParams $MailContactParams -UseSystemMailbox $true + } + + $Results = "Successfully edited contact $($contactInfo.displayName)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantID -message $Results -Sev Info + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to edit contact. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantID -message $Results -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContactTemplates.ps1 new file mode 100644 index 000000000000..8edcaf294af2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-EditContactTemplates.ps1 @@ -0,0 +1,81 @@ +Function Invoke-EditContactTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + Write-Host ($request | ConvertTo-Json -Depth 10 -Compress) + + try { + # Get the ContactTemplateID from the request body + $ContactTemplateID = $Request.body.ContactTemplateID + + if (-not $ContactTemplateID) { + throw "ContactTemplateID is required for editing a template" + } + + # Check if the template exists + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ContactTemplate' and RowKey eq '$ContactTemplateID'" + $ExistingTemplate = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (-not $ExistingTemplate) { + throw "Contact template with ID $ContactTemplateID not found" + } + + Write-LogMessage -Headers $Headers -API $APINAME -message "Updating Contact Template with ID: $ContactTemplateID" -Sev Info + + # Create a new ordered hashtable to store selected properties + $contactObject = [ordered]@{} + + # Set name and comments + $contactObject["name"] = $Request.body.displayName + $contactObject["comments"] = "Contact template updated $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" + + # Copy specific properties we want to keep + $propertiesToKeep = @( + "displayName", "firstName", "lastName", "email", "hidefromGAL", "streetAddress", "postalCode", + "city", "state", "country", "companyName", "mobilePhone", "businessPhone", "jobTitle", "website", "mailTip" + ) + + # Copy each property from the request + foreach ($prop in $propertiesToKeep) { + if ($null -ne $Request.body.$prop) { + $contactObject[$prop] = $Request.body.$prop + } + } + + # Convert to JSON + $JSON = $contactObject | ConvertTo-Json -Depth 10 + + # Overwrite the template in Azure Table Storage + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$ContactTemplateID" + PartitionKey = 'ContactTemplate' + } + + Write-LogMessage -Headers $Headers -API $APINAME -message "Updated Contact Template $($contactObject.name) with GUID $ContactTemplateID" -Sev Info + $body = [pscustomobject]@{'Results' = "Updated Contact Template $($contactObject.name) with GUID $ContactTemplateID" } + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APINAME -message "Failed to update Contact template: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to update Contact template: $($ErrorMessage.NormalizedError)" } + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContactTemplates.ps1 new file mode 100644 index 000000000000..9abe8a741a25 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContactTemplates.ps1 @@ -0,0 +1,64 @@ +Function Invoke-ListContactTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Table = Get-CippTable -tablename 'templates' + $Templates = Get-ChildItem 'Config\*.ContactTemplate.json' | ForEach-Object { + $Entity = @{ + JSON = "$(Get-Content $_)" + RowKey = "$($_.name)" + PartitionKey = 'ContactTemplate' + GUID = "$($_.name)" + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + } + + # Check if a specific template ID is requested + if ($Request.query.ID -or $Request.query.id) { + $RequestedID = $Request.query.ID ?? $Request.query.id + Write-LogMessage -headers $Headers -API $APIName -message "Retrieving specific template with ID: $RequestedID" -Sev 'Debug' + + # Query directly for the specific template by RowKey for efficiency + $Filter = "PartitionKey eq 'ContactTemplate' and RowKey eq '$RequestedID'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $GUID = $_.RowKey + $data = $_.JSON | ConvertFrom-Json + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID + $data + } + + if (-not $Templates) { + Write-LogMessage -headers $Headers -API $APIName -message "Template with ID $RequestedID not found" -Sev 'Warning' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = @{ Error = "Template with ID $RequestedID not found" } + }) + return + } + } else { + # List all policies if no specific ID requested + Write-LogMessage -headers $Headers -API $APIName -message 'Retrieving all contact templates' -Sev 'Debug' + + $Filter = "PartitionKey eq 'ContactTemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $GUID = $_.RowKey + $data = $_.JSON | ConvertFrom-Json + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID + $data + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 new file mode 100644 index 000000000000..1a8b64a3c3a9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-ListContacts.ps1 @@ -0,0 +1,142 @@ +using namespace System.Collections.Generic +using namespace System.Text.RegularExpressions + +function Invoke-ListContacts { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Contact.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + # Get query parameters + $TenantFilter = $Request.Query.tenantFilter + $ContactID = $Request.Query.id + + # Early validation and exit + if (-not $TenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'tenantFilter is required' + }) + } + + # Pre-compiled regex for MailTip cleaning + $script:HtmlTagRegex ??= [regex]::new('<[^>]+>', [RegexOptions]::Compiled) + $script:LineBreakRegex ??= [regex]::new('\\n|\r\n|\r', [RegexOptions]::Compiled) + $script:SmtpPrefixRegex ??= [regex]::new('^SMTP:', [RegexOptions]::Compiled -bor [RegexOptions]::IgnoreCase) + + function ConvertTo-ContactObject { + param($Contact, $MailContact) + + # Early exit if essential data missing + if (!$Contact.Id) { return $null } + + $mailAddress = if ($MailContact.ExternalEmailAddress) { + $script:SmtpPrefixRegex.Replace($MailContact.ExternalEmailAddress, [string]::Empty, 1) + } else { $null } + + $cleanMailTip = if ($MailContact.MailTip -and $MailContact.MailTip.Length -gt 0) { + $cleaned = $script:HtmlTagRegex.Replace($MailContact.MailTip, [string]::Empty) + $cleaned = $script:LineBreakRegex.Replace($cleaned, "`n") + $cleaned.Trim() + } else { $null } + + $phoneCapacity = 0 + if ($Contact.Phone) { $phoneCapacity++ } + if ($Contact.MobilePhone) { $phoneCapacity++ } + + $phones = if ($phoneCapacity -gt 0) { + $phoneList = [List[hashtable]]::new($phoneCapacity) + if ($Contact.Phone) { + $phoneList.Add(@{ type = 'business'; number = $Contact.Phone }) + } + if ($Contact.MobilePhone) { + $phoneList.Add(@{ type = 'mobile'; number = $Contact.MobilePhone }) + } + $phoneList.ToArray() + } else { @() } + + return @{ + id = $Contact.Id + displayName = $Contact.DisplayName + givenName = $Contact.FirstName + surname = $Contact.LastName + mail = $mailAddress + companyName = $Contact.Company + jobTitle = $Contact.Title + website = $Contact.WebPage + notes = $Contact.Notes + hidefromGAL = $MailContact.HiddenFromAddressListsEnabled + mailTip = $cleanMailTip + onPremisesSyncEnabled = $Contact.IsDirSynced + addresses = @(@{ + street = $Contact.StreetAddress + city = $Contact.City + state = $Contact.StateOrProvince + countryOrRegion = $Contact.CountryOrRegion + postalCode = $Contact.PostalCode + }) + phones = $phones + } + } + + try { + if (![string]::IsNullOrWhiteSpace($ContactID)) { + # Single contact request - keep existing complex formatting + Write-Host "Getting specific contact: $ContactID" + + $Contact = New-EXORequest -tenantid $TenantFilter -cmdlet 'Get-Contact' -cmdParams @{ + Identity = $ContactID + } + + $MailContact = New-EXORequest -tenantid $TenantFilter -cmdlet 'Get-MailContact' -cmdParams @{ + Identity = $ContactID + } + + if (!$Contact -or !$MailContact) { + throw 'Contact not found or insufficient permissions' + } + + $ContactResponse = ConvertTo-ContactObject -Contact $Contact -MailContact $MailContact + + } else { + # Get all contacts - simplified approach + Write-Host 'Getting all contacts' + + $ContactResponse = New-EXORequest -tenantid $TenantFilter -cmdlet 'Get-Contact' -cmdParams @{ + Filter = "RecipientTypeDetails -eq 'MailContact'" + ResultSize = 'Unlimited' + } | Select-Object -Property City, Company, Department, DisplayName, FirstName, LastName, IsDirSynced, Guid, WindowsEmailAddress + + # Add Graph ID to each contact based on email match + $GraphContacts = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/contacts' -tenantid $TenantFilter + foreach ($contact in $ContactResponse) { + $GraphMatch = $GraphContacts | Where-Object { $_.mail -eq $contact.WindowsEmailAddress } + if ($GraphMatch) { + $contact | Add-Member -MemberType NoteProperty -Name 'graphId' -Value $GraphMatch.id -Force + } + } + + # Return empty array if no contacts found + if (!$ContactResponse) { + $ContactResponse = @() + } + } + + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + $ContactResponse = $ErrorMessage + Write-Host "Error in ListContacts: $ErrorMessage" + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $ContactResponse + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContact.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContact.ps1 new file mode 100644 index 000000000000..9407a92f8fc9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContact.ps1 @@ -0,0 +1,40 @@ +Function Invoke-RemoveContact { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Contact.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + Write-LogMessage -Headers $Request.Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + # Interact with query parameters or the body of the request. + $GUID = $Request.query.GUID ?? $Request.body.GUID + $Mail = $Request.query.Mail ?? $Request.body.Mail + + try { + $Params = @{ + Identity = $GUID + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MailContact' -cmdParams $Params -UseSystemMailbox $true + Write-LogMessage -Headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Deleted contact $GUID" -sev Debug + $Result = "Deleted $Mail" + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete contact $GUID. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + $Results = [pscustomobject]@{'Results' = $Result } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 new file mode 100644 index 000000000000..de4e79bf2b70 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Contacts/Invoke-RemoveContactTemplates.ps1 @@ -0,0 +1,34 @@ +function Invoke-RemoveContactTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $ID = $Request.Query.ID ?? $Request.Body.ID + + try { + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ContactTemplate' and RowKey eq '$id'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Contact Template with ID $ID." + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Contact template with ID $ID. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-AddSharedMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-AddSharedMailbox.ps1 new file mode 100644 index 000000000000..e0ca3dba57dd --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-AddSharedMailbox.ps1 @@ -0,0 +1,79 @@ +function Invoke-AddSharedMailbox { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Results = [System.Collections.Generic.List[string]]::new() + $MailboxObject = $Request.Body + $Tenant = $MailboxObject.tenantID + $Aliases = $MailboxObject.addedAliases -split '\n' + + try { + + $Email = "$($MailboxObject.username)@$($MailboxObject.domain)" + $BodyToShip = [pscustomobject] @{ + displayName = $MailboxObject.displayName + name = $MailboxObject.username + primarySMTPAddress = $Email + Shared = $true + } + $AddSharedRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-Mailbox' -cmdParams $BodyToShip + $Results.Add("Successfully created shared mailbox: $Email.") + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message "Created shared mailbox $($MailboxObject.displayName) with email $Email" -Sev 'Info' + + # Block sign-in for the mailbox + try { + $null = Set-CIPPSignInState -userid $AddSharedRequest.ExternalDirectoryObjectId -TenantFilter $Tenant -APIName $APIName -Headers $Headers -AccountEnabled $false + $Results.Add("Blocked sign-in for shared mailbox $Email") + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to block sign-in for shared mailbox $Email Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + } + + # Add aliases to the mailbox if any are provided + if ($Aliases) { + try { + Start-Sleep 3 # Sleep since there is apparently a race condition with the mailbox creation if we don't delay for a lil bit + $AliasBodyToShip = [pscustomobject] @{ + Identity = $AddSharedRequest.Guid + EmailAddresses = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = $Aliases } + } + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-Mailbox' -cmdParams $AliasBodyToShip -UseSystemMailbox $true + $Message = "Added aliases to $Email : $($Aliases -join ',')" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Info' + $Results.Add($Message) + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to add aliases to $Email : $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create shared mailbox. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = @($Results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecConvertMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecConvertMailbox.ps1 new file mode 100644 index 000000000000..aebb4fc6f1f9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecConvertMailbox.ps1 @@ -0,0 +1,32 @@ +Function Invoke-ExecConvertMailbox { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $UserID = $Request.Body.ID + $MailboxType = $Request.Body.MailboxType + + try { + $Results = Set-CIPPMailboxType -UserID $UserID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -MailboxType $MailboxType + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 new file mode 100644 index 000000000000..e676500b27bd --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecCopyForSent.ps1 @@ -0,0 +1,42 @@ +function Invoke-ExecCopyForSent { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $UserID = $Request.Query.ID ?? $Request.Body.ID + $MessageCopyState = $Request.Query.messageCopyState ?? $Request.Body.messageCopyState + $MessageCopyState = [System.Convert]::ToBoolean($MessageCopyState) + + try { + $params = @{ + UserId = $UserID + TenantFilter = $TenantFilter + APIName = $APIName + Headers = $Headers + MessageCopyForSentAsEnabled = $MessageCopyState + MessageCopyForSendOnBehalfEnabled = $MessageCopyState + } + $Result = Set-CIPPMessageCopy @params + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditCalendarPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditCalendarPermissions.ps1 new file mode 100644 index 000000000000..e5e28ebe9bb9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditCalendarPermissions.ps1 @@ -0,0 +1,40 @@ +function Invoke-ExecEditCalendarPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Extract parameters from query or body + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $UserID = $Request.Query.userid ?? $Request.Body.userid + $UserToGetPermissions = $Request.Query.UserToGetPermissions ?? $Request.Body.UserToGetPermissions.value + $Permissions = $Request.Query.Permissions ?? $Request.Body.Permissions.value + $FolderName = $Request.Query.FolderName ?? $Request.Body.FolderName + $RemoveAccess = $Request.Query.RemoveAccess ?? $Request.Body.RemoveAccess.value + $CanViewPrivateItems = $Request.Query.CanViewPrivateItems ?? $Request.Body.CanViewPrivateItems + + try { + if ($RemoveAccess) { + $Result = Set-CIPPCalendarPermission -Headers $Headers -UserID $UserID -FolderName $FolderName -RemoveAccess $RemoveAccess -TenantFilter $TenantFilter + } else { + $Result = Set-CIPPCalendarPermission -Headers $Headers -UserID $UserID -FolderName $FolderName -TenantFilter $TenantFilter -UserToGetPermissions $UserToGetPermissions -Permissions $Permissions -CanViewPrivateItems $CanViewPrivateItems + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + Write-Warning "Error in ExecEditCalendarPermissions: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 new file mode 100644 index 000000000000..ee36d68eb6b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 @@ -0,0 +1,116 @@ +Function Invoke-ExecEditMailboxPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APINAME-message 'Accessed this API' -Sev 'Debug' + $Username = $request.body.userID + $Tenantfilter = $request.body.tenantfilter + if ($username -eq $null) { exit } + $userid = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($username)" -tenantid $Tenantfilter).id + $Results = [System.Collections.ArrayList]@() + + $RemoveFullAccess = ($Request.body.RemoveFullAccess).value + foreach ($RemoveUser in $RemoveFullAccess) { + try { + $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-mailboxpermission' -cmdParams @{Identity = $userid; user = $RemoveUser; accessRights = @('FullAccess'); } + $results.add("Removed $($removeuser) from $($username) Shared Mailbox permissions") + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Removed $($RemoveUser) from $($username) Shared Mailbox permission" -Sev 'Info' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not remove mailbox permissions for $($removeuser) on $($username)" -Sev 'Error' -tenant $TenantFilter + $results.add("Could not remove $($removeuser) shared mailbox permissions for $($username). Error: $($_.Exception.Message)") + } + } + $AddFullAccess = ($Request.body.AddFullAccess).value + + foreach ($UserAutomap in $AddFullAccess) { + try { + $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Add-MailboxPermission' -cmdParams @{Identity = $userid; user = $UserAutomap; accessRights = @('FullAccess'); automapping = $true } + $results.add( "Granted $($UserAutomap) access to $($username) Mailbox with automapping") + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Granted $($UserAutomap) access to $($username) Mailbox with automapping" -Sev 'Info' -tenant $TenantFilter + + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not add mailbox permissions for $($UserAutomap) on $($username)" -Sev 'Error' -tenant $TenantFilter + $results.add( "Could not add $($UserAutomap) shared mailbox permissions for $($username). Error: $($_.Exception.Message)") + } + } + $AddFullAccessNoAutoMap = ($Request.body.AddFullAccessNoAutoMap).value + + foreach ($UserNoAutomap in $AddFullAccessNoAutoMap) { + try { + $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Add-MailboxPermission' -cmdParams @{Identity = $userid; user = $UserNoAutomap; accessRights = @('FullAccess'); automapping = $false } + $results.add( "Granted $UserNoAutomap access to $($username) Mailbox without automapping") + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Granted $UserNoAutomap access to $($username) Mailbox without automapping" -Sev 'Info' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not add mailbox permissions for $($UserNoAutomap) on $($username)" -Sev 'Error' -tenant $TenantFilter + $results.add("Could not add $($UserNoAutomap) shared mailbox permissions for $($username). Error: $($_.Exception.Message)") + } + } + + $AddSendAS = ($Request.body.AddSendAs).value + + foreach ($UserSendAs in $AddSendAS) { + try { + $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Add-RecipientPermission' -cmdParams @{Identity = $userid; Trustee = $UserSendAs; accessRights = @('SendAs') } + $results.add( "Granted $UserSendAs access to $($username) with Send As permissions") + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Granted $UserSendAs access to $($username) with Send As permissions" -Sev 'Info' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not add mailbox permissions for $($UserSendAs) on $($username)" -Sev 'Error' -tenant $TenantFilter + $results.add("Could not add $($UserSendAs) send-as permissions for $($username). Error: $($_.Exception.Message)") + } + } + + $RemoveSendAs = ($Request.body.RemoveSendAs).value + + foreach ($UserSendAs in $RemoveSendAs) { + try { + $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-RecipientPermission' -cmdParams @{Identity = $userid; Trustee = $UserSendAs; accessRights = @('SendAs') } + $results.add( "Removed $UserSendAs from $($username) with Send As permissions") + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Removed $UserSendAs from $($username) with Send As permissions" -Sev 'Info' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not remove mailbox permissions for $($UserSendAs) on $($username)" -Sev 'Error' -tenant $TenantFilter + $results.add("Could not remove $($UserSendAs) send-as permissions for $($username). Error: $($_.Exception.Message)") + } + } + + $AddSendOnBehalf = ($Request.body.AddSendOnBehalf).value + + foreach ($UserSendOnBehalf in $AddSendOnBehalf) { + try { + $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $userid; GrantSendonBehalfTo = @{'@odata.type' = '#Exchange.GenericHashTable'; add = $UserSendOnBehalf }; } + $results.add( "Granted $UserSendOnBehalf access to $($username) with Send On Behalf Permissions") + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Granted $UserSendOnBehalf access to $($username) with Send On Behalf Permissions" -Sev 'Info' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not add send on behalf permissions for $($UserSendOnBehalf) on $($username)" -Sev 'Error' -tenant $TenantFilter + $results.add("Could not add $($UserSendOnBehalf) send on behalf permissions for $($username). Error: $($_.Exception.Message)") + } + } + + $RemoveSendOnBehalf = ($Request.body.RemoveSendOnBehalf).value + + foreach ($UserSendOnBehalf in $RemoveSendOnBehalf) { + try { + $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $userid; GrantSendonBehalfTo = @{'@odata.type' = '#Exchange.GenericHashTable'; remove = $UserSendOnBehalf }; } + $results.add( "Removed $UserSendOnBehalf from $($username) Send on Behalf Permissions") + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Removed $UserSendOnBehalf from $($username) Send on Behalf Permissions" -Sev 'Info' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not Remove send on behalf permissions for $($UserSendOnBehalf) on $($username)" -Sev 'Error' -tenant $TenantFilter + $results.add("Could not remove $($UserSendOnBehalf) send on behalf permissions for $($username). Error: $($_.Exception.Message)") + } + } + + $body = [pscustomobject]@{'Results' = @($results) } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEmailForward.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEmailForward.ps1 new file mode 100644 index 000000000000..7d53a46cc1d3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEmailForward.ps1 @@ -0,0 +1,67 @@ +Function Invoke-ExecEmailForward { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APINAME-message 'Accessed this API' -Sev 'Debug' + + + $TenantFilter = $Request.Body.tenantFilter + $Username = $Request.Body.userID + if ($Request.Body.ForwardInternal -is [string]) { + $ForwardingAddress = $Request.Body.ForwardInternal + } else { + $ForwardingAddress = $Request.Body.ForwardInternal.value + } + $ForwardingSMTPAddress = $Request.Body.ForwardExternal + $ForwardOption = $Request.Body.forwardOption + [bool]$KeepCopy = if ($Request.Body.KeepCopy -eq 'true') { $true } else { $false } + + # Process the forwarding option based on the type selected + switch ($ForwardOption) { + 'internalAddress' { + # Set up internal forwarding to another mailbox within the organization + try { + $Results = Set-CIPPForwarding -UserID $Username -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -Forward $ForwardingAddress -KeepCopy $KeepCopy + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + 'ExternalAddress' { + # Set up external forwarding to an SMTP address outside the organization + try { + $Results = Set-CIPPForwarding -UserID $Username -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -ForwardingSMTPAddress $ForwardingSMTPAddress -KeepCopy $KeepCopy + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + 'disabled' { + # Disable email forwarding for the specified user + try { + $Results = Set-CIPPForwarding -UserID $Username -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Disable $true + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = @($Results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableArchive.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableArchive.ps1 new file mode 100644 index 000000000000..56300ffe0593 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableArchive.ps1 @@ -0,0 +1,34 @@ +Function Invoke-ExecEnableArchive { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.id ?? $Request.Body.id + $UserName = $Request.Query.username ?? $Request.Body.username + + Try { + $ResultsArch = Set-CIPPMailboxArchive -userid $ID -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers -ArchiveEnabled $true -Username $UserName + if ($ResultsArch -like 'Failed to set archive*') { throw $ResultsArch } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ResultsArch = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + $Results = [pscustomobject]@{'Results' = "$ResultsArch" } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableAutoExpandingArchive.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableAutoExpandingArchive.ps1 new file mode 100644 index 000000000000..2b4ddcafb517 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEnableAutoExpandingArchive.ps1 @@ -0,0 +1,30 @@ +function Invoke-ExecEnableAutoExpandingArchive { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $ID = $Request.Body.ID + $TenantFilter = $Request.Body.tenantFilter + $Username = $Request.Body.username + + try { + $Result = Set-CIPPMailboxArchive -TenantFilter $TenantFilter -UserID $ID -Username $Username -Headers $Headers -AutoExpandingArchive + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDelete.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDelete.ps1 new file mode 100644 index 000000000000..fd968c80557a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDelete.ps1 @@ -0,0 +1,33 @@ +Function Invoke-ExecGroupsDelete { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $GroupType = $Request.Query.GroupType ?? $Request.Body.GroupType + $ID = $Request.Query.id ?? $Request.Body.id + $DisplayName = $Request.Query.displayName ?? $Request.Body.displayName + + Try { + $Result = Remove-CIPPGroup -ID $ID -GroupType $GroupType -TenantFilter $TenantFilter -DisplayName $DisplayName -APIName $APIName -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDeliveryManagement.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDeliveryManagement.ps1 new file mode 100644 index 000000000000..2427fce99406 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsDeliveryManagement.ps1 @@ -0,0 +1,33 @@ +Function Invoke-ExecGroupsDeliveryManagement { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $GroupType = $Request.Query.GroupType ?? $Request.Body.GroupType + $OnlyAllowInternal = $Request.Query.OnlyAllowInternal ?? $Request.Body.OnlyAllowInternal + $ID = $Request.Query.ID ?? $Request.Body.ID + + Try { + $Result = Set-CIPPGroupAuthentication -ID $ID -GroupType $GroupType -OnlyAllowInternal $OnlyAllowInternal -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsHideFromGAL.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsHideFromGAL.ps1 new file mode 100644 index 000000000000..147474eb4097 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecGroupsHideFromGAL.ps1 @@ -0,0 +1,33 @@ +Function Invoke-ExecGroupsHideFromGAL { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $GroupType = $Request.Query.GroupType ?? $Request.Body.GroupType + $GroupID = $Request.Query.ID ?? $Request.Body.ID + $HideFromGAL = $Request.Query.HideFromGAL ?? $Request.Body.HideFromGAL + + Try { + $Result = Set-CIPPGroupGAL -Id $GroupID -TenantFilter $TenantFilter -GroupType $GroupType -HiddenString $HideFromGAL -APIName $APIName -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHVEUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHVEUser.ps1 new file mode 100644 index 000000000000..bdb783995d9b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHVEUser.ps1 @@ -0,0 +1,105 @@ +function Invoke-ExecHVEUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Results = [System.Collections.Generic.List[string]]::new() + $HVEUserObject = $Request.Body + $Tenant = $HVEUserObject.TenantFilter + + try { + # Check if Security Defaults are enabled + try { + $SecurityDefaults = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $Tenant + if ($SecurityDefaults.isEnabled -eq $true) { + $Results.Add('WARNING: Security Defaults are enabled for this tenant. HVE might not function.') + } + } catch { + $Results.Add('WARNING: Could not check Security Defaults status. Please verify authentication policies manually.') + } + + # Create the HVE user using New-MailUser + $BodyToShip = [pscustomobject] @{ + Name = $HVEUserObject.displayName + DisplayName = $HVEUserObject.displayName + PrimarySmtpAddress = $HVEUserObject.primarySMTPAddress + Password = $HVEUserObject.password + HVEAccount = $true + } + + $CreateHVERequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-MailUser' -cmdParams $BodyToShip + $Results.Add("Successfully created HVE user: $($HVEUserObject.primarySMTPAddress)") + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message "Created HVE user $($HVEUserObject.displayName) with email $($HVEUserObject.primarySMTPAddress)" -Sev 'Info' + + # Try to exclude from Conditional Access policies that block basic authentication + try { + # Get all Conditional Access policies + $CAPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $Tenant + + $BasicAuthPolicies = $CAPolicies | Where-Object { + $_.conditions.clientAppTypes -contains 'exchangeActiveSync' -or + $_.conditions.clientAppTypes -contains 'other' -or + $_.conditions.applications.includeApplications -contains 'All' -and + $_.grantControls.builtInControls -contains 'block' + } + + if ($BasicAuthPolicies) { + foreach ($Policy in $BasicAuthPolicies) { + try { + # Add the HVE user to the exclusions + $ExcludedUsers = @($Policy.conditions.users.excludeUsers) + if ($CreateHVERequest.ExternalDirectoryObjectId -notin $ExcludedUsers) { + + $ExcludeUsers = @($ExcludedUsers + $CreateHVERequest.ExternalDirectoryObjectId) + $UpdateBody = @{ + conditions = @{ + users = @{ + excludeUsers = @($ExcludeUsers | Sort-Object -Unique) + } + } + } + + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($Policy.id)" -type PATCH -body (ConvertTo-Json -InputObject $UpdateBody -Depth 10) -tenantid $Tenant + $Results.Add("Excluded HVE user from Conditional Access policy: $($Policy.displayName)") + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message "Excluded HVE user from CA policy: $($Policy.displayName)" -Sev 'Info' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to exclude from CA policy '$($Policy.displayName)': $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Warning' -LogData $ErrorMessage + $Results.Add($Message) + } + } + } else { + $Results.Add('No Conditional Access policies blocking basic authentication found.') + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to check/update Conditional Access policies: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Warning' -LogData $ErrorMessage + $Results.Add($Message) + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create HVE user: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHideFromGAL.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHideFromGAL.ps1 new file mode 100644 index 000000000000..06810da8a385 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecHideFromGAL.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ExecHideFromGAL { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + + # Support if the request is a POST or a GET. So to support legacy(GET) and new(POST) requests + $UserId = $Request.Query.ID ?? $Request.body.ID + $TenantFilter = $Request.Query.TenantFilter ?? $Request.body.tenantFilter + $HideFromGAL = $Request.Query.HideFromGAL ?? $Request.body.HideFromGAL + $HideFromGAL = [System.Convert]::ToBoolean($HideFromGAL) + + Try { + $Result = Set-CIPPHideFromGAL -tenantFilter $TenantFilter -UserID $UserId -hidefromgal $HideFromGAL -Headers $Headers -APIName $APIName + $StatusCode = [HttpStatusCode]::OK + + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecMailboxMobileDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecMailboxMobileDevices.ps1 new file mode 100644 index 000000000000..559b47142f3b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecMailboxMobileDevices.ps1 @@ -0,0 +1,25 @@ +Function Invoke-ExecMailboxMobileDevices { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + # Interact with query parameters or the body of the request. + Try { + $MobileResults = Set-CIPPMobileDevice -UserId $request.query.Userid -Guid $request.query.guid -DeviceId $request.query.deviceid -Quarantine $request.query.Quarantine -tenantFilter $request.query.tenantfilter -APIName $APINAME -Delete $Request.query.Delete -Headers $Request.Headers + $Results = [pscustomobject]@{'Results' = $MobileResults } + } catch { + $Results = [pscustomobject]@{'Results' = "Failed $($request.query.Userid): $($_.Exception.Message)" } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyCalPerms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyCalPerms.ps1 new file mode 100644 index 000000000000..562fb1dd2f92 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyCalPerms.ps1 @@ -0,0 +1,117 @@ +function Invoke-ExecModifyCalPerms { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # UPN of the mailbox to modify calendar permissions for + $Username = $Request.Body.userID + + $TenantFilter = $Request.Body.tenantFilter + $Permissions = $Request.Body.permissions + + Write-LogMessage -headers $Headers -API $APIName -message "Processing request for user: $Username, tenant: $TenantFilter" -Sev 'Debug' + + if ([string]::IsNullOrWhiteSpace($Username)) { + Write-LogMessage -headers $Headers -API $APIName -message 'Username is null or whitespace' -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @('Username is required') } + }) + return + } + + try { + try { + $UserId = [guid]$Username + } catch { + # If not a GUID, assume it's a UPN and look up the ID via Graph + $UserId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter).id + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved user ID: $UserId" -Sev 'Debug' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to get user ID: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = @{'Results' = @("Failed to get user ID: $($ErrorMessage.NormalizedError)") } + }) + return + } + + $Results = [System.Collections.Generic.List[string]]::new() + $HasErrors = $false + + # Convert permissions to array format if it's an object with numeric keys + if ($Permissions -is [PSCustomObject]) { + if ($Permissions.PSObject.Properties.Name -match '^\d+$') { + $Permissions = $Permissions.PSObject.Properties.Value + } else { + $Permissions = @($Permissions) + } + } + + Write-LogMessage -headers $Headers -API $APIName -message "Processing $($Permissions.Count) permission entries" -Sev 'Debug' + + foreach ($Permission in $Permissions) { + Write-LogMessage -headers $Headers -API $APIName -message "Processing permission: $($Permission | ConvertTo-Json)" -Sev 'Debug' + + $PermissionLevel = $Permission.PermissionLevel.value ?? $Permission.PermissionLevel + $Modification = $Permission.Modification + $CanViewPrivateItems = $Permission.CanViewPrivateItems ?? $false + $FolderName = $Permission.FolderName ?? 'Calendar' + $SendNotificationToUser = $Permission.SendNotificationToUser ?? $false + + Write-LogMessage -headers $Headers -API $APIName -message "Permission Level: $PermissionLevel, Modification: $Modification, CanViewPrivateItems: $CanViewPrivateItems, FolderName: $FolderName" -Sev 'Debug' + + # Handle UserID as array or single value + $TargetUsers = @($Permission.UserID | ForEach-Object { $_.value ?? $_ }) + + Write-LogMessage -headers $Headers -API $APIName -message "Target Users: $($TargetUsers -join ', ')" -Sev 'Debug' + + foreach ($TargetUser in $TargetUsers) { + try { + Write-LogMessage -headers $Headers -API $APIName -message "Processing target user: $TargetUser" -Sev 'Debug' + $Params = @{ + APIName = $APIName + Headers = $Headers + RemoveAccess = if ($Modification -eq 'Remove') { $TargetUser } else { $null } + TenantFilter = $TenantFilter + UserID = $UserId + folderName = $FolderName + UserToGetPermissions = $TargetUser + LoggingName = $TargetUser + Permissions = $PermissionLevel + CanViewPrivateItems = $CanViewPrivateItems + SendNotificationToUser = $SendNotificationToUser + } + + # Write-Host "Request params: $($Params | ConvertTo-Json)" + $Result = Set-CIPPCalendarPermission @Params + + $Results.Add($Result) + } catch { + $HasErrors = $true + $Results.Add("$($_.Exception.Message)") + } + } + } + + if ($Results.Count -eq 0) { + Write-LogMessage -headers $Headers -API $APIName -message 'No results were generated from the operation' -Sev 'Warning' + $Results.Add('No results were generated from the operation. Please check the logs for more details.') + $HasErrors = $true + } + + return ([HttpResponseContext]@{ + StatusCode = if ($HasErrors) { [HttpStatusCode]::InternalServerError } else { [HttpStatusCode]::OK } + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyContactPerms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyContactPerms.ps1 new file mode 100644 index 000000000000..75877cbbdb9c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyContactPerms.ps1 @@ -0,0 +1,117 @@ +function Invoke-ExecModifyContactPerms { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # UPN of the mailbox to modify contact permissions for + $Username = $Request.Body.userID + + $TenantFilter = $Request.Body.tenantFilter + $Permissions = $Request.Body.permissions + + Write-LogMessage -headers $Headers -API $APIName -message "Processing request for user: $Username, tenant: $TenantFilter" -Sev 'Debug' + + if ([string]::IsNullOrWhiteSpace($Username)) { + Write-LogMessage -headers $Headers -API $APIName -message 'Username is null or whitespace' -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @('Username is required') } + }) + return + } + + try { + try { + $UserId = [guid]$Username + } catch { + # If not a GUID, assume it's a UPN and look up the ID via Graph + $UserId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter).id + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved user ID: $UserId" -Sev 'Debug' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to get user ID: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = @{'Results' = @("Failed to get user ID: $($ErrorMessage.NormalizedError)") } + }) + return + } + + $Results = [System.Collections.Generic.List[string]]::new() + $HasErrors = $false + + # Convert permissions to array format if it's an object with numeric keys + if ($Permissions -is [PSCustomObject]) { + if ($Permissions.PSObject.Properties.Name -match '^\d+$') { + $Permissions = $Permissions.PSObject.Properties.Value + } else { + $Permissions = @($Permissions) + } + } + + Write-LogMessage -headers $Headers -API $APIName -message "Processing $($Permissions.Count) permission entries" -Sev 'Debug' + + foreach ($Permission in $Permissions) { + Write-LogMessage -headers $Headers -API $APIName -message "Processing permission: $($Permission | ConvertTo-Json)" -Sev 'Debug' + + $PermissionLevel = $Permission.PermissionLevel.value ?? $Permission.PermissionLevel + $Modification = $Permission.Modification + $CanViewPrivateItems = $Permission.CanViewPrivateItems ?? $false + $FolderName = $Permission.FolderName ?? 'Contact' + $SendNotificationToUser = $Permission.SendNotificationToUser ?? $false + + Write-LogMessage -headers $Headers -API $APIName -message "Permission Level: $PermissionLevel, Modification: $Modification, CanViewPrivateItems: $CanViewPrivateItems, FolderName: $FolderName" -Sev 'Debug' + + # Handle UserID as array or single value + $TargetUsers = @($Permission.UserID | ForEach-Object { $_.value ?? $_ }) + + Write-LogMessage -headers $Headers -API $APIName -message "Target Users: $($TargetUsers -join ', ')" -Sev 'Debug' + + foreach ($TargetUser in $TargetUsers) { + try { + Write-LogMessage -headers $Headers -API $APIName -message "Processing target user: $TargetUser" -Sev 'Debug' + $Params = @{ + APIName = $APIName + Headers = $Headers + RemoveAccess = if ($Modification -eq 'Remove') { $TargetUser } else { $null } + TenantFilter = $TenantFilter + UserID = $UserId + folderName = $FolderName + UserToGetPermissions = $TargetUser + LoggingName = $TargetUser + Permissions = $PermissionLevel + SendNotificationToUser = $SendNotificationToUser + } + + # Write-Host "Request params: $($Params | ConvertTo-Json)" + $Result = Set-CIPPContactPermission @Params + + $Results.Add($Result) + } catch { + $HasErrors = $true + $Results.Add("$($_.Exception.Message)") + } + } + } + + if ($Results.Count -eq 0) { + Write-LogMessage -headers $Headers -API $APIName -message 'No results were generated from the operation' -Sev 'Warning' + $Results.Add('No results were generated from the operation. Please check the logs for more details.') + $HasErrors = $true + } + + + return ([HttpResponseContext]@{ + StatusCode = if ($HasErrors) { [HttpStatusCode]::InternalServerError } else { [HttpStatusCode]::OK } + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 new file mode 100644 index 000000000000..4d768e96cc1a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 @@ -0,0 +1,390 @@ +Function Invoke-ExecModifyMBPerms { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + # Extract mailbox requests - handle all three formats + $MailboxRequests = $null + $Results = [System.Collections.ArrayList]::new() + + # Direct array format + if ($request.body -is [array]) { + $MailboxRequests = $request.body + } + # Bulk format with mailboxRequests property + elseif ($request.body.mailboxRequests) { + $MailboxRequests = $request.body.mailboxRequests + } + # Legacy single mailbox format + elseif ($request.body.userID -and $request.body.permissions) { + $MailboxRequests = @([PSCustomObject]@{ + userID = $request.body.userID + tenantFilter = $request.body.tenantFilter + permissions = $request.body.permissions + }) + } + + if (-not $MailboxRequests -or $MailboxRequests.Count -eq 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'No mailbox requests provided' -Sev 'Error' + $body = [pscustomobject]@{'Results' = @("No mailbox requests provided") } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $Body + }) + return + } + + $TenantFilter = $Request.body.tenantFilter + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Processing permission changes for $($MailboxRequests.Count) mailboxes" -Sev 'Info' -tenant $TenantFilter + + # Build cmdlet array for processing + $CmdletArray = [System.Collections.ArrayList]::new() + $CmdletMetadataArray = [System.Collections.ArrayList]::new() + $GuidToMetadataMap = @{} # Map GUIDs to our metadata + $UserLookupCache = @{} + + foreach ($MailboxRequest in $MailboxRequests) { + $Username = $MailboxRequest.userID + $Permissions = $MailboxRequest.permissions + + if ([string]::IsNullOrEmpty($Username)) { + $null = $Results.Add("Skipped mailbox with missing userID") + continue + } + + # User lookup with caching for bulk operations + if (-not $UserLookupCache.ContainsKey($Username)) { + try { + $UserObject = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter + $UserLookupCache[$Username] = $UserObject.userPrincipalName + } + catch { + try { + $UserObject = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=userPrincipalName eq '$Username'" -tenantid $TenantFilter + if ($UserObject.value -and $UserObject.value.Count -gt 0) { + $UserLookupCache[$Username] = $UserObject.value[0].userPrincipalName + } else { + throw "User not found" + } + } + catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not find user $($Username)" -Sev 'Error' -tenant $TenantFilter + $null = $Results.Add("Could not find user $($Username)") + continue + } + } + } + $UserId = $UserLookupCache[$Username] + + # Convert permissions to array if needed + if ($Permissions -is [PSCustomObject]) { + if ($Permissions.PSObject.Properties.Name -match '^\d+$') { + $Permissions = $Permissions.PSObject.Properties.Value + } else { + $Permissions = @($Permissions) + } + } + + foreach ($Permission in $Permissions) { + $PermissionLevels = $Permission.PermissionLevel + $Modification = $Permission.Modification + $AutoMap = if ($Permission.PSObject.Properties.Name -contains 'AutoMap') { $Permission.AutoMap } else { $true } + + # Handle multiple permission levels + $PermissionLevelArray = if ($PermissionLevels -like "*,*") { + $PermissionLevels -split ',' | ForEach-Object { $_.Trim() } + } else { + @($PermissionLevels.Trim()) + } + + # Extract target users from UserID (handle array of objects or single values) + $TargetUsers = if ($Permission.UserID -is [array]) { + $Permission.UserID | ForEach-Object { + if ($_ -is [PSCustomObject] -and $_.value) { + $_.value + } else { + $_.ToString() + } + } + } else { + if ($Permission.UserID -is [PSCustomObject] -and $Permission.UserID.value) { + @($Permission.UserID.value) + } else { + @($Permission.UserID.ToString()) + } + } + + foreach ($TargetUser in $TargetUsers) { + foreach ($PermissionLevel in $PermissionLevelArray) { + + # Create cmdlet parameters based on permission type and action + $CmdletParams = @{} + $CmdletName = "" + $ExpectedResult = "" + + switch ($PermissionLevel) { + 'FullAccess' { + if ($Modification -eq 'Remove') { + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId + user = $TargetUser + accessRights = @('FullAccess') + Confirm = $false + } + $ExpectedResult = "Removed $($TargetUser) from $($Username) FullAccess permissions" + } else { + $CmdletName = 'Add-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId + user = $TargetUser + accessRights = @('FullAccess') + automapping = $AutoMap + Confirm = $false + } + $ExpectedResult = "Granted $($TargetUser) FullAccess to $($Username) with automapping $($AutoMap)" + } + } + 'SendAs' { + if ($Modification -eq 'Remove') { + $CmdletName = 'Remove-RecipientPermission' + $CmdletParams = @{ + Identity = $UserId + Trustee = $TargetUser + accessRights = @('SendAs') + Confirm = $false + } + $ExpectedResult = "Removed $($TargetUser) SendAs permissions from $($Username)" + } else { + $CmdletName = 'Add-RecipientPermission' + $CmdletParams = @{ + Identity = $UserId + Trustee = $TargetUser + accessRights = @('SendAs') + Confirm = $false + } + $ExpectedResult = "Granted $($TargetUser) SendAs permissions to $($Username)" + } + } + 'SendOnBehalf' { + $CmdletName = 'Set-Mailbox' + if ($Modification -eq 'Remove') { + $CmdletParams = @{ + Identity = $UserId + GrantSendonBehalfTo = @{ + '@odata.type' = '#Exchange.GenericHashTable' + remove = $TargetUser + } + Confirm = $false + } + $ExpectedResult = "Removed $($TargetUser) SendOnBehalf permissions from $($Username)" + } else { + $CmdletParams = @{ + Identity = $UserId + GrantSendonBehalfTo = @{ + '@odata.type' = '#Exchange.GenericHashTable' + add = $TargetUser + } + Confirm = $false + } + $ExpectedResult = "Granted $($TargetUser) SendOnBehalf permissions to $($Username)" + } + } + 'ReadPermission' { + if ($Modification -eq 'Remove') { + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId + user = $TargetUser + accessRights = @('ReadPermission') + Confirm = $false + } + $ExpectedResult = "Removed $($TargetUser) ReadPermission from $($Username)" + } + } + 'ExternalAccount' { + if ($Modification -eq 'Remove') { + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId + user = $TargetUser + accessRights = @('ExternalAccount') + Confirm = $false + } + $ExpectedResult = "Removed $($TargetUser) ExternalAccount permissions from $($Username)" + } + } + 'DeleteItem' { + if ($Modification -eq 'Remove') { + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId + user = $TargetUser + accessRights = @('DeleteItem') + Confirm = $false + } + $ExpectedResult = "Removed $($TargetUser) DeleteItem permissions from $($Username)" + } + } + 'ChangePermission' { + if ($Modification -eq 'Remove') { + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId + user = $TargetUser + accessRights = @('ChangePermission') + Confirm = $false + } + $ExpectedResult = "Removed $($TargetUser) ChangePermission from $($Username)" + } + } + 'ChangeOwner' { + if ($Modification -eq 'Remove') { + $CmdletName = 'Remove-MailboxPermission' + $CmdletParams = @{ + Identity = $UserId + user = $TargetUser + accessRights = @('ChangeOwner') + Confirm = $false + } + $ExpectedResult = "Removed $($TargetUser) ChangeOwner permissions from $($Username)" + } + } + } + + if ($CmdletName) { + # Generate unique GUID for this operation + $OperationGuid = [Guid]::NewGuid().ToString() + + $CmdletObj = @{ + CmdletInput = @{ + CmdletName = $CmdletName + Parameters = $CmdletParams + } + OperationGuid = $OperationGuid # Add GUID to cmdlet object + } + + $CmdletMetadata = [PSCustomObject]@{ + ExpectedResult = $ExpectedResult + Mailbox = $Username + TargetUser = $TargetUser + Permission = $PermissionLevel + Action = $Modification + OperationGuid = $OperationGuid + } + + $null = $CmdletArray.Add($CmdletObj) + $null = $CmdletMetadataArray.Add($CmdletMetadata) + + # Map GUID to metadata for precise result mapping + $GuidToMetadataMap[$OperationGuid] = $CmdletMetadata + } + } + } + } + } + + if ($CmdletArray.Count -eq 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'No valid cmdlets to process' -Sev 'Warning' -tenant $TenantFilter + $body = [pscustomobject]@{'Results' = @("No valid permission changes to process") } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + return + } + + # Execute requests - use enhanced bulk processing with GUID mapping + if ($CmdletArray.Count -gt 1) { + # Use bulk processing with GUID tracking + try { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Executing bulk request with $($CmdletArray.Count) cmdlets" -Sev 'Info' -tenant $TenantFilter + $BulkResults = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($CmdletArray) -ReturnWithCommand $true + + # Process bulk results using GUID mapping + if ($BulkResults -is [hashtable] -and $BulkResults.Keys.Count -gt 0) { + foreach ($cmdletName in $BulkResults.Keys) { + foreach ($result in $BulkResults[$cmdletName]) { + $operationGuid = $result.OperationGuid + + if ($operationGuid -and $GuidToMetadataMap.ContainsKey($operationGuid)) { + $metadata = $GuidToMetadataMap[$operationGuid] + + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $null = $Results.Add("Error processing $($metadata.Permission) for $($metadata.TargetUser) on $($metadata.Mailbox): $ErrorMessage") + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Error for operation $operationGuid`: $ErrorMessage" -Sev 'Error' -tenant $TenantFilter + } else { + $null = $Results.Add($metadata.ExpectedResult) + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Success for operation $operationGuid`: $($metadata.ExpectedResult)" -Sev 'Info' -tenant $TenantFilter + } + } else { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not map result to operation. GUID: $operationGuid, Available GUIDs: $($GuidToMetadataMap.Keys -join ', ')" -Sev 'Warning' -tenant $TenantFilter + + # Fallback for unmapped results + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $null = $Results.Add("Error in $cmdletName`: $ErrorMessage") + } else { + $null = $Results.Add("Completed $cmdletName operation") + } + } + } + } + } else { + # If no results returned but no error thrown, assume all succeeded + foreach ($CmdletMetadata in $CmdletMetadataArray) { + if ($CmdletMetadata.ExpectedResult) { + $null = $Results.Add($CmdletMetadata.ExpectedResult) + } + } + } + + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Bulk request completed successfully" -Sev 'Info' -tenant $TenantFilter + } + catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Bulk request failed, using fallback: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter + + # Fallback to individual processing + for ($i = 0; $i -lt $CmdletArray.Count; $i++) { + $CmdletObj = $CmdletArray[$i] + $CmdletMetadata = $CmdletMetadataArray[$i] + try { + $null = New-ExoRequest -Anchor $CmdletMetadata.Mailbox -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + $null = $Results.Add($CmdletMetadata.ExpectedResult) + } + catch { + $null = $Results.Add("Error processing $($CmdletMetadata.Permission) for $($CmdletMetadata.TargetUser) on $($CmdletMetadata.Mailbox): $($_.Exception.Message)") + } + } + } + } + else { + # Use individual processing for single operation + $CmdletObj = $CmdletArray[0] + $CmdletMetadata = $CmdletMetadataArray[0] + try { + $null = New-ExoRequest -Anchor $CmdletMetadata.Mailbox -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + $null = $Results.Add($CmdletMetadata.ExpectedResult) + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Executed $($CmdletMetadata.Permission) permission modification" -Sev 'Info' -tenant $TenantFilter + } + catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Permission modification failed: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter + $null = $Results.Add("Error processing $($CmdletMetadata.Permission) for $($CmdletMetadata.TargetUser) on $($CmdletMetadata.Mailbox): $($_.Exception.Message)") + } + } + + $body = [pscustomobject]@{'Results' = @($Results) } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveMailboxRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveMailboxRule.ps1 new file mode 100644 index 000000000000..ff03bde0c1e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveMailboxRule.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ExecRemoveMailboxRule { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message 'Accessed this API' -Sev 'Debug' + + # Interact with the query or body of the request + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter + $RuleName = $Request.Query.ruleName ?? $Request.Body.ruleName + $RuleId = $Request.Query.ruleId ?? $Request.Body.ruleId + $Username = $Request.Query.userPrincipalName ?? $Request.Body.userPrincipalName + + try { + # Remove the rule + $Results = Remove-CIPPMailboxRule -username $Username -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -RuleId $RuleId -RuleName $RuleName + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveRestrictedUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveRestrictedUser.ps1 new file mode 100644 index 000000000000..df0557e220cb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecRemoveRestrictedUser.ps1 @@ -0,0 +1,43 @@ +function Invoke-ExecRemoveRestrictedUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + .DESCRIPTION + Removes a user from the restricted senders list in Exchange Online. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $SenderAddress = $Request.Body.SenderAddress + + try { + if ([string]::IsNullOrEmpty($SenderAddress)) { throw 'SenderAddress parameter is required' } + if ([string]::IsNullOrEmpty($TenantFilter)) { throw 'tenantFilter parameter is required' } + + # Remove the user from the restricted list + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-BlockedSenderAddress' -cmdParams @{SenderAddress = $SenderAddress } + $Results = "Successfully removed $SenderAddress from the restricted users list." + + + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Info' -tenant $TenantFilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to remove $SenderAddress from restricted list: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetCalendarProcessing.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetCalendarProcessing.ps1 new file mode 100644 index 000000000000..f307d100de95 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetCalendarProcessing.ps1 @@ -0,0 +1,64 @@ +function Invoke-ExecSetCalendarProcessing { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = 'ExecSetCalendarProcessing' + Write-LogMessage -Headers $Request.Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + $cmdParams = @{ + Identity = $Request.Body.UPN + AutomateProcessing = if ($Request.Body.automaticallyAccept -as [bool]) { 'AutoAccept' } elseif ($Request.Body.automaticallyProcess -as [bool]) { 'AutoUpdate' } else { 'None' } + AllowConflicts = $Request.Body.allowConflicts -as [bool] + AllowRecurringMeetings = $Request.Body.allowRecurringMeetings -as [bool] + ScheduleOnlyDuringWorkHours = $Request.Body.scheduleOnlyDuringWorkHours -as [bool] + AddOrganizerToSubject = $Request.Body.addOrganizerToSubject -as [bool] + DeleteComments = $Request.Body.deleteComments -as [bool] + DeleteSubject = $Request.Body.deleteSubject -as [bool] + RemovePrivateProperty = $Request.Body.removePrivateProperty -as [bool] + RemoveCanceledMeetings = $Request.Body.removeCanceledMeetings -as [bool] + RemoveOldMeetingMessages = $Request.Body.removeOldMeetingMessages -as [bool] + ProcessExternalMeetingMessages = $Request.Body.processExternalMeetingMessages -as [bool] + } + + # Add optional numeric parameters only if they have values + if ($Request.Body.maxConflicts) { + $cmdParams['MaximumConflictInstances'] = $Request.Body.maxConflicts -as [int] + } + if ($Request.Body.maximumDurationInMinutes) { + $cmdParams['MaximumDurationInMinutes'] = $Request.Body.maximumDurationInMinutes -as [int] + } + if ($Request.Body.minimumDurationInMinutes) { + $cmdParams['MinimumDurationInMinutes'] = $Request.Body.minimumDurationInMinutes -as [int] + } + if ($Request.Body.bookingWindowInDays) { + $cmdParams['BookingWindowInDays'] = $Request.Body.bookingWindowInDays -as [int] + } + if ($Request.Body.additionalResponse) { + $cmdParams['AdditionalResponse'] = $Request.Body.additionalResponse + } + + $null = New-ExoRequest -tenantid $Request.Body.tenantFilter -cmdlet 'Set-CalendarProcessing' -cmdParams $cmdParams + + $Results = "Calendar processing settings for $($Request.Body.UPN) have been updated successfully" + Write-LogMessage -API $APIName -tenant $Request.Body.tenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Could not update calendar processing settings for $($Request.Body.UPN). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -tenant $Request.Body.tenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetLitigationHold.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetLitigationHold.ps1 new file mode 100644 index 000000000000..6f8e0d3c9a63 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetLitigationHold.ps1 @@ -0,0 +1,57 @@ +function Invoke-ExecSetLitigationHold { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message 'Accessed this API' -Sev 'Debug' + + # Interact with the query or body of the request + $TenantFilter = $Request.Body.tenantFilter + $LitHoldState = -not $Request.Body.disable -as [bool] + $Identity = $Request.Body.Identity + $UserPrincipalName = $Request.Body.UPN + $Days = $Request.Body.days -as [int] + + # Set the parameters for the EXO request + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Set-Mailbox' + cmdParams = @{ + Identity = $Identity + LitigationHoldEnabled = $LitHoldState + } + } + + # Add the duration of the hold if specified + if ($Days -ne 0 -and $LitHoldState -eq $true) { + $ExoRequest.cmdParams['LitigationHoldDuration'] = $Days + } + + # Execute the EXO request + try { + $null = New-ExoRequest @ExoRequest + $Results = "Litigation hold for $UserPrincipalName with Id $Identity has been set to $LitHoldState" + if ($Days -ne 0 -and $LitHoldState -eq $true) { + $Results += " for $Days days" + } + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Could not set litigation hold for $UserPrincipalName with Id $Identity to $LitHoldState. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxEmailSize.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxEmailSize.ps1 new file mode 100644 index 000000000000..af7c793389a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxEmailSize.ps1 @@ -0,0 +1,46 @@ +Function Invoke-ExecSetMailboxEmailSize { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $User -API $APIName -message 'Accessed this API' -Sev 'Debug' + + # Interact with query parameters or the body of the request. + $Tenant = $Request.Body.tenantFilter + $UserPrincipalName = $Request.Body.UPN + $UserID = $Request.Body.id + $MaxSendSize = $Request.Body.maxSendSize + $MaxReceiveSize = $Request.Body.maxReceiveSize + + try { + $Params = @{ + TenantFilter = $Tenant + APIName = $APIName + Headers = $Headers + UserPrincipalName = $UserPrincipalName + UserID = $UserID + MaxSendSize = $MaxSendSize + MaxReceiveSize = $MaxReceiveSize + } + if ([string]::IsNullOrWhiteSpace($MaxSendSize)) { $Params.Remove('MaxSendSize') } + if ([string]::IsNullOrWhiteSpace($MaxReceiveSize)) { $Params.Remove('MaxReceiveSize') } + $Result = Set-CippMaxEmailSize @Params + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxLocale.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxLocale.ps1 new file mode 100644 index 000000000000..d9889ee7c849 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxLocale.ps1 @@ -0,0 +1,33 @@ +Function Invoke-ExecSetMailboxLocale { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $User -API $APIName -message 'Accessed this API' -Sev 'Debug' + + # Interact with query parameters or the body of the request. + $Tenant = $Request.Body.tenantFilter + $User = $Request.Body.user + $Locale = $Request.Body.locale + + try { + $Result = Set-CippMailboxLocale -username $User -locale $Locale -tenantFilter $Tenant -APIName $APIName -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxQuota.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxQuota.ps1 new file mode 100644 index 000000000000..ecfc9a60dee3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxQuota.ps1 @@ -0,0 +1,47 @@ +Function Invoke-ExecSetMailboxQuota { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + try { + $APIName = $Request.Params.CIPPEndpoint + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + $Username = $request.body.user + $Tenantfilter = $request.body.tenantfilter + $quota = $Request.body.quota + $Results = try { + if ($Request.Body.ProhibitSendQuota) { + $quota = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $Username; ProhibitSendQuota = $quota } + "Changed ProhibitSendQuota for $username - $($message)" + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Changed ProhibitSendQuota for $username - $($message)" -Sev 'Info' -tenant $TenantFilter + } + if ($Request.Body.ProhibitSendReceiveQuota) { + $quota = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $Username; ProhibitSendReceiveQuota = $quota } + "Changed ProhibitSendReceiveQuota for $username - $($message)" + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Changed ProhibitSendReceiveQuota for $username - $($message)" -Sev 'Info' -tenant $TenantFilter + } + if ($Request.Body.IssueWarningQuota) { + $quota = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $Username; IssueWarningQuota = $quota } + "Changed IssueWarningQuota for $username - $($message)" + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Changed IssueWarningQuota for $username - $($message)" -Sev 'Info' -tenant $TenantFilter + } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not adjust mailbox quota for $($username)" -Sev 'Error' -tenant $TenantFilter + "Could not adjust mailbox quota for $($username). Error: $($_.Exception.Message)" + } + + $body = [pscustomobject]@{'Results' = @($results) } + } catch { + $body = [pscustomobject]@{'Results' = @("Could not adjust mailbox quota: $($_.Exception.message)") } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxRule.ps1 new file mode 100644 index 000000000000..729b0c6d6314 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetMailboxRule.ps1 @@ -0,0 +1,55 @@ +Function Invoke-ExecSetMailboxRule { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message 'Accessed this API' -Sev 'Debug' + + # Interact with the query or body of the request + $TenantFilter = $Request.Body.TenantFilter + $RuleName = $Request.Body.ruleName + $RuleId = $Request.Body.ruleId + $Username = $Request.Body.userPrincipalName + $Enable = $Request.Body.Enable -as [bool] + $Disable = $Request.Body.Disable -as [bool] + + + # Set the rule + $SetCIPPMailboxRuleParams = @{ + Username = $Username + TenantFilter = $TenantFilter + APIName = $APIName + Headers = $Headers + RuleId = $RuleId + RuleName = $RuleName + } + if ($Enable -eq $true) { + $SetCIPPMailboxRuleParams.Add('Enable', $true) + } elseif ($Disable -eq $true) { + $SetCIPPMailboxRuleParams.Add('Disable', $true) + } else { + Write-LogMessage -headers $Headers -API $APIName -message 'No state provided for mailbox rule' -Sev 'Error' -tenant $TenantFilter + throw 'No state provided for mailbox rule' + } + + $Results = Set-CIPPMailboxRule @SetCIPPMailboxRuleParams + + if ($Results -like '*Could not set*') { + $StatusCode = [HttpStatusCode]::InternalServerError + } else { + $StatusCode = [HttpStatusCode]::OK + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetOoO.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetOoO.ps1 new file mode 100644 index 000000000000..07fc25199911 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetOoO.ps1 @@ -0,0 +1,70 @@ +function Invoke-ExecSetOoO { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + try { + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + + $Username = $Request.Body.userId + $TenantFilter = $Request.Body.tenantFilter + $State = $Request.Body.AutoReplyState.value ?? $Request.Body.AutoReplyState + $SplatParams = @{ + userid = $Username + tenantFilter = $TenantFilter + APIName = $APIName + Headers = $Headers + State = $State + } + + # User action uses input, edit exchange uses InternalMessage and ExternalMessage + # User action disable OoO doesn't send any input + if ($Request.Body.input) { + $SplatParams.InternalMessage = $Request.Body.input + $SplatParams.ExternalMessage = $Request.Body.input + } else { + $InternalMessage = $Request.Body.InternalMessage + $ExternalMessage = $Request.Body.ExternalMessage + + # Only add the internal and external message if they are not empty/null. Done to be able to set the OOO to disabled, while keeping the existing messages intact. + # This works because the frontend always sends some HTML even if the fields are empty. + if (-not [string]::IsNullOrWhiteSpace($InternalMessage)) { + $SplatParams.InternalMessage = $InternalMessage + } + if (-not [string]::IsNullOrWhiteSpace($ExternalMessage)) { + $SplatParams.ExternalMessage = $ExternalMessage + } + } + + + # If the state is scheduled, add the start and end times to the splat params + if ($State -eq 'Scheduled') { + # If starttime and endtime are a number, they are unix timestamps and need to be converted to datetime, otherwise just use them. + $StartTime = $Request.Body.StartTime -match '^\d+$' ? [DateTimeOffset]::FromUnixTimeSeconds([int]$Request.Body.StartTime).DateTime : $Request.Body.StartTime + $EndTime = $Request.Body.EndTime -match '^\d+$' ? [DateTimeOffset]::FromUnixTimeSeconds([int]$Request.Body.EndTime).DateTime : $Request.Body.EndTime + $SplatParams.StartTime = $StartTime + $SplatParams.EndTime = $EndTime + } + + $Results = Set-CIPPOutOfOffice @SplatParams + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Could not set Out of Office for user: $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $($Results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRecipientLimits.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRecipientLimits.ps1 new file mode 100644 index 000000000000..924a4f95e21f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRecipientLimits.ps1 @@ -0,0 +1,49 @@ +function Invoke-ExecSetRecipientLimits { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message 'Accessed this API' -Sev 'Debug' + + # Interact with the query or body of the request + $TenantFilter = $Request.Body.tenantFilter + $recipientLimit = $Request.Body.recipientLimit + $Identity = $Request.Body.Identity + $UserPrincipalName = $Request.Body.userid + + # Set the parameters for the EXO request + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Set-Mailbox' + cmdParams = @{ + Identity = $Identity + RecipientLimits = $recipientLimit + } + } + + # Execute the EXO request + try { + $null = New-ExoRequest @ExoRequest + $Results = "Recipient limit for $UserPrincipalName has been set to $recipientLimit" + + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Could not set recipient limit for $UserPrincipalName to $recipientLimit. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRetentionHold.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRetentionHold.ps1 new file mode 100644 index 000000000000..86d1af8b30d8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecSetRetentionHold.ps1 @@ -0,0 +1,49 @@ +function Invoke-ExecSetRetentionHold { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message 'Accessed this API' -Sev 'Debug' + + # Interact with the query or body of the request + $TenantFilter = $Request.Body.tenantFilter + $RetentionHoldState = -not $Request.Body.disable -as [bool] + $Identity = $Request.Body.Identity + $UserPrincipalName = $Request.Body.UPN + + # Set the parameters for the EXO request + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Set-Mailbox' + cmdParams = @{ + Identity = $Identity + RetentionHoldEnabled = $RetentionHoldState + } + } + + # Execute the EXO request + try { + $null = New-ExoRequest @ExoRequest + $Results = "Retention hold for $UserPrincipalName with Id $Identity has been set to $RetentionHoldState" + + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Could not set retention hold for $UserPrincipalName with Id $Identity to $RetentionHoldState. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecStartManagedFolderAssistant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecStartManagedFolderAssistant.ps1 new file mode 100644 index 000000000000..af5acf187d68 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecStartManagedFolderAssistant.ps1 @@ -0,0 +1,47 @@ +Function Invoke-ExecStartManagedFolderAssistant { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $Tenant = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.Id ?? $Request.Body.Id + $UserPrincipalName = $Request.Body.UserPrincipalName + $Identity = $ID ?? $UserPrincipalName + $ShownName = $UserPrincipalName ?? $ID + + + $ExoParams = @{ + Identity = $Identity + FullCrawl = $true + } + + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Start-ManagedFolderAssistant' -cmdParams $ExoParams + $Result = "Successfully started Managed Folder Assistant for mailbox $($ShownName)." + $Severity = 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to start Managed Folder Assistant for mailbox $($ShownName). Error: $($ErrorMessage.NormalizedError)" + $Severity = 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } finally { + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Result -Sev $Severity -LogData $ErrorMessage + } + + $Body = [pscustomobject] @{ 'Results' = $Result } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListCalendarPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListCalendarPermissions.ps1 new file mode 100644 index 000000000000..61f14eef0be4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListCalendarPermissions.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ListCalendarPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $UserID = $Request.Query.UserID + $TenantFilter = $Request.Query.tenantFilter + + try { + $GetCalParam = @{Identity = $UserID; FolderScope = 'Calendar' } + $CalendarFolder = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderStatistics' -anchor $UserID -cmdParams $GetCalParam | Select-Object -First 1 -ExcludeProperty *data.type* + $CalParam = @{Identity = "$($UserID):\$($CalendarFolder.name)" } + $Mailbox = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{Identity = $UserID } + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderPermission' -anchor $UserID -cmdParams $CalParam -UseSystemMailbox $true | Select-Object Identity, User, AccessRights, FolderName, @{ Name = 'MailboxInfo'; Expression = { $Mailbox } } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Calendar permissions listed for $($TenantFilter)" -sev Debug + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListContactPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListContactPermissions.ps1 new file mode 100644 index 000000000000..1b06863c1fb7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListContactPermissions.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ListContactPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $UserID = $Request.Query.UserID + $TenantFilter = $Request.Query.tenantFilter + + try { + $GetContactParam = @{Identity = $UserID; FolderScope = 'Contacts' } + $ContactFolder = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderStatistics' -anchor $UserID -cmdParams $GetContactParam | Select-Object -First 1 -ExcludeProperty *data.type* + $ContactParam = @{Identity = "$($UserID):\$($ContactFolder.name)" } + $Mailbox = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{Identity = $UserID } + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderPermission' -anchor $UserID -cmdParams $ContactParam -UseSystemMailbox $true | Select-Object Identity, User, AccessRights, FolderName, @{ Name = 'MailboxInfo'; Expression = { $Mailbox } } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Contact permissions listed for $($TenantFilter)" -sev Debug + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxMobileDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxMobileDevices.ps1 new file mode 100644 index 000000000000..daf056a0297c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxMobileDevices.ps1 @@ -0,0 +1,46 @@ +Function Invoke-ListMailboxMobileDevices { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $Mailbox = $Request.Query.Mailbox + + Write-Host $TenantFilter + Write-Host $Mailbox + + $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Mailbox) + $base64IdentityParam = [Convert]::ToBase64String($Bytes) + + try { + $GraphRequest = New-GraphGetRequest -uri "https://outlook.office365.com:443/adminapi/beta/$($TenantFilter)/mailbox('$($base64IdentityParam)')/MobileDevice/Exchange.GetMobileDeviceStatistics()/?IsEncoded=True" -Tenantid $TenantFilter -scope ExchangeOnline | Select-Object @{ Name = 'clientType'; Expression = { $_.ClientType } }, + @{ Name = 'clientVersion'; Expression = { $_.ClientVersion } }, + @{ Name = 'deviceAccessState'; Expression = { $_.DeviceAccessState } }, + @{ Name = 'deviceFriendlyName'; Expression = { if ([string]::IsNullOrEmpty($_.DeviceFriendlyName)) { 'Unknown' }else { $_.DeviceFriendlyName } } }, + @{ Name = 'deviceModel'; Expression = { $_.DeviceModel } }, + @{ Name = 'deviceOS'; Expression = { $_.DeviceOS } }, + @{ Name = 'deviceType'; Expression = { $_.DeviceType } }, + @{ Name = 'firstSync'; Expression = { $_.FirstSyncTime.toString() } }, + @{ Name = 'lastSyncAttempt'; Expression = { $_.LastSyncAttemptTime.toString() } }, + @{ Name = 'lastSuccessSync'; Expression = { $_.LastSuccessSync.toString() } }, + @{ Name = 'status'; Expression = { $_.Status } }, + @{ Name = 'deviceID'; Expression = { $_.deviceID } }, + @{ Name = 'Guid'; Expression = { $_.Guid } } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 new file mode 100644 index 000000000000..648d7251deee --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxRules.ps1 @@ -0,0 +1,85 @@ +function Invoke-ListMailboxRules { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + $Table = Get-CIPPTable -TableName cachembxrules + if ($TenantFilter -ne 'AllTenants') { + $Table.Filter = "PartitionKey eq 'MailboxRules' and Tenant eq '$TenantFilter'" + } else { + $Table.Filter = "PartitionKey eq 'MailboxRules'" + } + + Write-Information 'Getting cached mailbox rules' + $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-1) + $PartitionKey = 'MailboxRules' + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + + $Metadata = @{} + # If a queue is running, we will not start a new one + if ($RunningQueue -and !$Rows) { + Write-Information "Queue is already running for $TenantFilter" + $Metadata = [PSCustomObject]@{ + QueueMessage = "Still loading data for $TenantFilter. Please check back in a few more minutes" + QueueId = $RunningQueue.RowKey + } + } elseif ((!$Rows -and !$RunningQueue) -or ($TenantFilter -eq 'AllTenants' -and ($Rows | Measure-Object).Count -eq 1)) { + Write-Information "No cached mailbox rules found for $TenantFilter, starting new orchestration" + if ($TenantFilter -eq 'AllTenants') { + $Tenants = Get-Tenants -IncludeErrors | Select-Object defaultDomainName + $Type = 'All Tenants' + } else { + $Tenants = @(@{ defaultDomainName = $TenantFilter }) + $Type = $TenantFilter + } + $Queue = New-CippQueueEntry -Name "Mailbox Rules ($Type)" -Reference $QueueReference -TotalTasks ($Tenants | Measure-Object).Count + # If no rows are found and no queue is running, we will start a new one + $Metadata = [PSCustomObject]@{ + QueueMessage = "Loading data for $TenantFilter. Please check back in 1 minute" + QueueId = $Queue.RowKey + } + + $Batch = $Tenants | Select-Object defaultDomainName, @{Name = 'FunctionName'; Expression = { 'ListMailboxRulesQueue' } }, @{Name = 'QueueName'; Expression = { $_.defaultDomainName } }, @{Name = 'QueueId'; Expression = { $Queue.RowKey } } + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'ListMailboxRulesOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + #Write-Host ($InputObject | ConvertTo-Json) + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started mailbox rules orchestration with ID = '$InstanceId'" + } + + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $GraphRequest = $Rows | ForEach-Object { + $NewObj = $_.Rules | ConvertFrom-Json -ErrorAction SilentlyContinue + $NewObj | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $_.Tenant -Force + $NewObj + } + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + $Body = @{ + Results = @($GraphRequest) + Metadata = $Metadata + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 new file mode 100644 index 000000000000..353c6e3fe395 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 @@ -0,0 +1,88 @@ +function Invoke-ListMailboxes { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + try { + $Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress,HiddenFromAddressListsEnabled,ExternalDirectoryObjectId,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled,PersistedCapabilities,LitigationHoldEnabled,LitigationHoldDate,LitigationHoldDuration,ComplianceTagHoldApplied,RetentionHoldEnabled,InPlaceHolds,RetentionPolicy' + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Get-Mailbox' + cmdParams = @{} + Select = $Select + } + + $AllowedParameters = @( + @{Parameter = 'Anr'; Type = 'String' } + @{Parameter = 'Archive'; Type = 'Bool' } + @{Parameter = 'Filter'; Type = 'String' } + @{Parameter = 'GroupMailbox'; Type = 'Bool' } + @{Parameter = 'PublicFolder'; Type = 'Bool' } + @{Parameter = 'RecipientTypeDetails'; Type = 'String' } + @{Parameter = 'SoftDeletedMailbox'; Type = 'Bool' } + @{Parameter = 'Identity'; Type = 'String' } + ) + + foreach ($Param in $Request.Query.PSObject.Properties.Name) { + $CmdParam = $AllowedParameters | Where-Object { $_.Parameter -eq $Param } + if ($CmdParam) { + switch ($CmdParam.Type) { + 'String' { + if (![string]::IsNullOrEmpty($Request.Query.$Param)) { + $ExoRequest.cmdParams.$Param = $Request.Query.$Param + } + } + 'Bool' { + $ParamIsTrue = $false + [bool]::TryParse($Request.Query.$Param, [ref]$ParamIsTrue) | Out-Null + if ($ParamIsTrue -eq $true) { + $ExoRequest.cmdParams.$Param = $true + } + } + } + } + } + + $GraphRequest = (New-ExoRequest @ExoRequest) | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, + @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, + @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, + @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, + @{ Name = 'recipientType'; Expression = { $_.'RecipientType' } }, + @{ Name = 'recipientTypeDetails'; Expression = { $_.'RecipientTypeDetails' } }, + @{ Name = 'AdditionalEmailAddresses'; Expression = { ($_.'EmailAddresses' | Where-Object { $_ -clike 'smtp:*' }).Replace('smtp:', '') -join ', ' } }, + @{ Name = 'ForwardingSmtpAddress'; Expression = { $_.'ForwardingSmtpAddress' -replace 'smtp:', '' } }, + @{ Name = 'InternalForwardingAddress'; Expression = { $_.'ForwardingAddress' } }, + DeliverToMailboxAndForward, + HiddenFromAddressListsEnabled, + ExternalDirectoryObjectId, + MessageCopyForSendOnBehalfEnabled, + MessageCopyForSentAsEnabled, + LitigationHoldEnabled, + LitigationHoldDate, + LitigationHoldDuration, + @{ Name = 'LicensedForLitigationHold'; Expression = { ($_.PersistedCapabilities -contains 'EXCHANGE_S_ARCHIVE_ADDON' -or $_.PersistedCapabilities -contains 'EXCHANGE_S_ENTERPRISE') } }, + ComplianceTagHoldApplied, + RetentionHoldEnabled, + InPlaceHolds, + RetentionPolicy + # This select also exists in ListUserMailboxDetails and should be updated if this is changed here + + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListOoO.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListOoO.ps1 new file mode 100644 index 000000000000..e014458f2c9f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListOoO.ps1 @@ -0,0 +1,30 @@ +Function Invoke-ListOoO { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.userid + try { + $Results = Get-CIPPOutOfOffice -UserID $UserID -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListRestrictedUsers.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListRestrictedUsers.ps1 new file mode 100644 index 000000000000..6ba507d77a1a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListRestrictedUsers.ps1 @@ -0,0 +1,52 @@ +function Invoke-ListRestrictedUsers { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + .DESCRIPTION + Lists users from the restricted senders list in Exchange Online. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $BlockedUsers = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-BlockedSenderAddress' + + if ($BlockedUsers) { + $GraphRequest = foreach ($User in $BlockedUsers) { + # Parse the reason to make it more readable + $ReasonParts = $User.Reason -split ';' + $LimitType = ($ReasonParts | Where-Object { $_ -like 'ExceedingLimitType=*' }) -replace 'ExceedingLimitType=', '' + $InternalCount = ($ReasonParts | Where-Object { $_ -like 'InternalRecipientCountToday=*' }) -replace 'InternalRecipientCountToday=', '' + $ExternalCount = ($ReasonParts | Where-Object { $_ -like 'ExternalRecipientCountToday=*' }) -replace 'ExternalRecipientCountToday=', '' + + [PSCustomObject]@{ + SenderAddress = $User.SenderAddress + Reason = $User.Reason + BlockType = if ($LimitType) { "$LimitType recipient limit exceeded" } else { 'Email sending limit exceeded' } + CreatedDatetime = $User.CreatedDatetime + ChangedDatetime = $User.ChangedDatetime + TemporaryBlock = $User.TemporaryBlock + InternalCount = $InternalCount + ExternalCount = $ExternalCount + } + } + } else { + $GraphRequest = @() + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListSharedMailboxStatistics.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListSharedMailboxStatistics.ps1 new file mode 100644 index 000000000000..75c3eeddfec5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListSharedMailboxStatistics.ps1 @@ -0,0 +1,33 @@ +Function Invoke-ListSharedMailboxStatistics { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # XXX Seems like an unused endpoint? -Bobby + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + $GraphRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantFilter)/Mailbox?RecipientTypeDetails=sharedmailbox" -Tenantid $tenantFilter -scope ExchangeOnline | ForEach-Object { + try { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxStatistics' -cmdParams @{Identity = $_.GUID } + } catch { + continue + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 new file mode 100644 index 000000000000..95b4a7de57bb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 @@ -0,0 +1,93 @@ +function Invoke-ListmailboxPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.userId + $UseReportDB = $Request.Query.UseReportDB + $ByUser = $Request.Query.ByUser + + try { + # If UseReportDB is specified and no specific UserID, retrieve from report database + if ($UseReportDB -eq 'true' -and -not $UserID) { + + # Call the report function with proper parameters + $ReportParams = @{ + TenantFilter = $TenantFilter + } + if ($ByUser -eq 'true') { + $ReportParams.ByUser = $true + } + + $GraphRequest = Get-CIPPMailboxPermissionReport @ReportParams + $StatusCode = [HttpStatusCode]::OK + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + } + + # Original live query logic for specific user + $Requests = @( + @{ + CmdletInput = @{ + CmdletName = 'Get-Mailbox' + Parameters = @{ Identity = $UserID } + } + } + @{ + CmdletInput = @{ + CmdletName = 'Get-MailboxPermission' + Parameters = @{ Identity = $UserID } + } + } + @{ + CmdletInput = @{ + CmdletName = 'Get-RecipientPermission' + Parameters = @{ Identity = $UserID } + } + } + ) + + $Results = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray $Requests + $GraphRequest = foreach ($Perm in $Results) { + if ($Perm.Trustee) { + $Perm | Where-Object Trustee | ForEach-Object { [PSCustomObject]@{ + User = $_.Trustee + Permissions = $_.accessRights + } + } + } + if ($Perm.AccessRights) { + $Perm | Where-Object User | ForEach-Object { [PSCustomObject]@{ + User = $_.User + Permissions = $_.AccessRights -join ', ' + } + } + } + if ($Perm.GrantSendonBehalfTo -ne $null) { + $Perm.GrantSendonBehalfTo | ForEach-Object { [PSCustomObject]@{ + User = $_ + Permissions = 'SendOnBehalf' + } + } + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionPolicies.ps1 new file mode 100644 index 000000000000..84d209052bb6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionPolicies.ps1 @@ -0,0 +1,251 @@ +Function Invoke-ExecManageRetentionPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.RetentionPolicies.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Results = [System.Collections.Generic.List[string]]::new() + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $CmdletArray = [System.Collections.ArrayList]::new() + $CmdletMetadataArray = [System.Collections.ArrayList]::new() + $GuidToMetadataMap = @{} + + if ([string]::IsNullOrEmpty($TenantFilter)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Tenant filter is required" + }) + return + } + + try { + # Helper function to add cmdlet to bulk array + function Add-BulkCmdlet { + param($CmdletName, $Parameters, $ExpectedResult, $Operation, $Identity = "") + + $OperationGuid = [Guid]::NewGuid().ToString() + + $CmdletObj = @{ + CmdletInput = @{ + CmdletName = $CmdletName + Parameters = $Parameters + } + OperationGuid = $OperationGuid + } + + $CmdletMetadata = [PSCustomObject]@{ + ExpectedResult = $ExpectedResult + Operation = $Operation + Identity = $Identity + OperationGuid = $OperationGuid + } + + $null = $CmdletArray.Add($CmdletObj) + $null = $CmdletMetadataArray.Add($CmdletMetadata) + $GuidToMetadataMap[$OperationGuid] = $CmdletMetadata + } + + # Create Retention Policies + $CreatePolicies = $Request.body.CreatePolicies + if ($CreatePolicies) { + foreach ($Policy in $CreatePolicies) { + if ([string]::IsNullOrEmpty($Policy.Name)) { + $Results.Add("Failed to create policy - Name is required") + continue + } + + $cmdParams = @{ + Name = $Policy.Name + } + + if ($Policy.RetentionPolicyTagLinks) { + $cmdParams.RetentionPolicyTagLinks = $Policy.RetentionPolicyTagLinks + } + + Add-BulkCmdlet -CmdletName 'New-RetentionPolicy' -Parameters $cmdParams -ExpectedResult "Successfully created retention policy: $($Policy.Name)" -Operation 'Create' -Identity $Policy.Name + } + } + + # Modify Retention Policies + $ModifyPolicies = $Request.body.ModifyPolicies + if ($ModifyPolicies) { + foreach ($Policy in $ModifyPolicies) { + if ([string]::IsNullOrEmpty($Policy.Identity)) { + $Results.Add("Failed to modify policy - Identity is required") + continue + } + + $cmdParams = @{ + Identity = $Policy.Identity + } + + if ($Policy.Name) { + $cmdParams.Name = $Policy.Name + } + + # Handle tag modifications - need to get current policy first for add/remove operations + if ($Policy.AddTags -or $Policy.RemoveTags) { + try { + $currentPolicy = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicy' -cmdParams @{Identity = $Policy.Identity} + $currentTags = $currentPolicy.RetentionPolicyTagLinks + } catch { + $Results.Add("Failed to modify policy $($Policy.Identity) - Could not retrieve current policy") + continue + } + + if ($Policy.AddTags) { + $newTagsList = [System.Collections.ArrayList]::new() + if ($currentTags) { + foreach ($tag in $currentTags) { $null = $newTagsList.Add($tag) } + } + foreach ($tag in $Policy.AddTags) { + if ($tag -notin $newTagsList) { $null = $newTagsList.Add($tag) } + } + $cmdParams.RetentionPolicyTagLinks = @($newTagsList) + } + + if ($Policy.RemoveTags) { + $newTagsList = [System.Collections.ArrayList]::new() + if ($currentTags) { + foreach ($tag in $currentTags) { + if ($tag -notin $Policy.RemoveTags) { $null = $newTagsList.Add($tag) } + } + } + $cmdParams.RetentionPolicyTagLinks = @($newTagsList) + } + } elseif ($Policy.RetentionPolicyTagLinks) { + $cmdParams.RetentionPolicyTagLinks = $Policy.RetentionPolicyTagLinks + } + + Add-BulkCmdlet -CmdletName 'Set-RetentionPolicy' -Parameters $cmdParams -ExpectedResult "Successfully modified retention policy: $($Policy.Identity)" -Operation 'Modify' -Identity $Policy.Identity + } + } + + # Delete Retention Policies + $DeletePolicies = $Request.body.DeletePolicies + if ($DeletePolicies) { + foreach ($PolicyIdentity in $DeletePolicies) { + if ([string]::IsNullOrEmpty($PolicyIdentity)) { + $Results.Add("Failed to delete policy - Identity is required") + continue + } + + # Check if policy is assigned to mailboxes (do this before bulk processing) + $assignedMailboxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{ + Filter = "RetentionPolicy -eq '$PolicyIdentity'" + ResultSize = 1 + } -ErrorAction SilentlyContinue + + if ($assignedMailboxes) { + $Results.Add("Cannot delete retention policy $PolicyIdentity - still assigned to mailboxes") + continue + } + + Add-BulkCmdlet -CmdletName 'Remove-RetentionPolicy' -Parameters @{Identity = $PolicyIdentity; Confirm = $false} -ExpectedResult "Successfully deleted retention policy: $PolicyIdentity" -Operation 'Delete' -Identity $PolicyIdentity + } + } + + # Execute bulk operations + if ($CmdletArray.Count -gt 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Executing $($CmdletArray.Count) retention policy operations" -Sev 'Info' -tenant $TenantFilter + + if ($CmdletArray.Count -gt 1) { + # Use bulk processing + $BulkResults = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($CmdletArray) -ReturnWithCommand $true + + # Process bulk results using GUID mapping + if ($BulkResults -is [hashtable] -and $BulkResults.Keys.Count -gt 0) { + foreach ($cmdletName in $BulkResults.Keys) { + foreach ($result in $BulkResults[$cmdletName]) { + $operationGuid = $result.OperationGuid + + if ($operationGuid -and $GuidToMetadataMap.ContainsKey($operationGuid)) { + $metadata = $GuidToMetadataMap[$operationGuid] + + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $Message = "Failed to $($metadata.Operation.ToLower()) retention policy $($metadata.Identity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } else { + Write-LogMessage -headers $Request.Headers -API $APINAME -message $metadata.ExpectedResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($metadata.ExpectedResult) + } + } + } + } + } + } else { + # Single operation + $CmdletObj = $CmdletArray[0] + $CmdletMetadata = $CmdletMetadataArray[0] + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + Write-LogMessage -headers $Request.Headers -API $APINAME -message $CmdletMetadata.ExpectedResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($CmdletMetadata.ExpectedResult) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to $($CmdletMetadata.Operation.ToLower()) retention policy $($CmdletMetadata.Identity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } + } + } + + $StatusCode = [HttpStatusCode]::OK + + # Simple response logic + if ($CreatePolicies -or $ModifyPolicies -or $DeletePolicies) { + # For any operations, return the results messages + $GraphRequest = @($Results) + } else { + # For listing, return all policies or specific policy - wrapped in try-catch + try { + $SpecificName = $Request.Query.name + if ($SpecificName) { + # Get specific policy by name + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicy' -cmdParams @{Identity = $SpecificName} + } else { + # Get all policies + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicy' + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = if ($Request.Query.name) { + "Failed to retrieve retention policy '$($Request.Query.name)': $ErrorMessage" + } else { + "Failed to retrieve retention policies: $ErrorMessage" + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = @($Results) + } + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to manage retention policies: $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = @($Results) + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequest + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionTags.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionTags.ps1 new file mode 100644 index 000000000000..af30f574842b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecManageRetentionTags.ps1 @@ -0,0 +1,352 @@ +Function Invoke-ExecManageRetentionTags { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.RetentionPolicies.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Results = [System.Collections.Generic.List[string]]::new() + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $CmdletArray = [System.Collections.ArrayList]::new() + $CmdletMetadataArray = [System.Collections.ArrayList]::new() + $GuidToMetadataMap = @{} + + if ([string]::IsNullOrEmpty($TenantFilter)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Tenant filter is required" + }) + return + } + + try { + # Helper function to add cmdlet to bulk array + function Add-BulkCmdlet { + param($CmdletName, $Parameters, $ExpectedResult, $Operation, $Identity = "") + + $OperationGuid = [Guid]::NewGuid().ToString() + + $CmdletObj = @{ + CmdletInput = @{ + CmdletName = $CmdletName + Parameters = $Parameters + } + OperationGuid = $OperationGuid + } + + $CmdletMetadata = [PSCustomObject]@{ + ExpectedResult = $ExpectedResult + Operation = $Operation + Identity = $Identity + OperationGuid = $OperationGuid + } + + $null = $CmdletArray.Add($CmdletObj) + $null = $CmdletMetadataArray.Add($CmdletMetadata) + $GuidToMetadataMap[$OperationGuid] = $CmdletMetadata + } + + # Validation function for retention tag parameters + function Test-RetentionTagParams { + param($Tag, $IsModification = $false) + + if (-not $IsModification) { + if ([string]::IsNullOrEmpty($Tag.Name)) { + return "Tag Name is required" + } + + if ([string]::IsNullOrEmpty($Tag.Type)) { + return "Tag Type is required" + } + + # Valid tag types + $validTypes = @('All', 'Inbox', 'SentItems', 'DeletedItems', 'Drafts', 'Outbox', 'JunkEmail', 'Journal', 'SyncIssues', 'ConversationHistory', 'Personal', 'RecoverableItems', 'NonIpmRoot', 'LegacyArchiveJournals', 'Clutter', 'Calendar', 'Notes', 'Tasks', 'Contacts', 'RssSubscriptions', 'ManagedCustomFolder') + if ($Tag.Type -notin $validTypes) { + return "Invalid Type '$($Tag.Type)'. Valid types: $($validTypes -join ', ')" + } + + # Validate RetentionAction compatibility with Type (only for creation) + if ($Tag.RetentionAction) { + switch ($Tag.RetentionAction) { + 'MoveToArchive' { + $allowedTypesForArchive = @('All', 'Personal', 'RecoverableItems') + if ($Tag.Type -notin $allowedTypesForArchive) { + return "RetentionAction 'MoveToArchive' can only be used with tag types: $($allowedTypesForArchive -join ', '). Current type: '$($Tag.Type)'" + } + } + 'DeleteAndAllowRecovery' { + $excludedTypesForDelete = @('RecoverableItems') + if ($Tag.Type -in $excludedTypesForDelete) { + return "RetentionAction 'DeleteAndAllowRecovery' cannot be used with tag type '$($Tag.Type)'" + } + } + 'PermanentlyDelete' { + $excludedTypesForPermanentDelete = @('RecoverableItems') + if ($Tag.Type -in $excludedTypesForPermanentDelete) { + return "RetentionAction 'PermanentlyDelete' cannot be used with tag type '$($Tag.Type)'" + } + } + } + } + + # Validate RetentionEnabled and RetentionAction relationship (only for creation) + if ($Tag.RetentionEnabled -eq $true -and [string]::IsNullOrEmpty($Tag.RetentionAction)) { + return "RetentionAction is required when RetentionEnabled is set to true" + } + } + + # Common validations for both create and modify + if ($Tag.Name) { + if ($Tag.Name -match '[\\/:*?\"<>|]') { + return "Tag name contains invalid characters. Avoid using: \ / : * ? `" < > |" + } + + if ($Tag.Name.Length -gt 64) { + return "Tag name cannot exceed 64 characters" + } + } + + if ($Tag.RetentionAction) { + $validActions = @('DeleteAndAllowRecovery', 'PermanentlyDelete', 'MoveToArchive', 'MarkAsPastRetentionLimit') + if ($Tag.RetentionAction -notin $validActions) { + return "Invalid RetentionAction '$($Tag.RetentionAction)'. Valid actions: $($validActions -join ', ')" + } + } + + if ($Tag.AgeLimitForRetention -and ($Tag.AgeLimitForRetention -lt 0 -or $Tag.AgeLimitForRetention -gt 24855)) { + return "AgeLimitForRetention must be between 0 and 24855 days" + } + + return $null + } + + # Create Retention Tags + $CreateTags = $Request.body.CreateTags + if ($CreateTags) { + foreach ($Tag in $CreateTags) { + $validationError = Test-RetentionTagParams -Tag $Tag -IsModification $false + if ($validationError) { + $Results.Add("Failed to create tag '$($Tag.Name)': $validationError") + continue + } + + $cmdParams = @{ + Name = $Tag.Name + Type = $Tag.Type + } + + if ($Tag.AgeLimitForRetention) { + $cmdParams.AgeLimitForRetention = $Tag.AgeLimitForRetention + } + + if ($Tag.RetentionAction) { + $cmdParams.RetentionAction = $Tag.RetentionAction + } + + if ($Tag.Comment) { + $cmdParams.Comment = $Tag.Comment + } + + if ($Tag.RetentionEnabled -ne $null) { + $cmdParams.RetentionEnabled = $Tag.RetentionEnabled + } + + if ($Tag.LocalizedComment) { + $cmdParams.LocalizedComment = $Tag.LocalizedComment + } + + if ($Tag.LocalizedRetentionPolicyTagName) { + $cmdParams.LocalizedRetentionPolicyTagName = $Tag.LocalizedRetentionPolicyTagName + } + + $resultParts = [System.Collections.ArrayList]::new() + $null = $resultParts.Add("Successfully created retention tag: $($Tag.Name) (Type: $($Tag.Type)") + if ($Tag.RetentionAction) { $null = $resultParts.Add(", Action: $($Tag.RetentionAction)") } + if ($Tag.AgeLimitForRetention) { $null = $resultParts.Add(", Age: $($Tag.AgeLimitForRetention) days") } + $null = $resultParts.Add(")") + $expectedResult = $resultParts -join "" + + Add-BulkCmdlet -CmdletName 'New-RetentionPolicyTag' -Parameters $cmdParams -ExpectedResult $expectedResult -Operation 'Create' -Identity $Tag.Name + } + } + + # Modify Retention Tags + $ModifyTags = $Request.body.ModifyTags + if ($ModifyTags) { + foreach ($Tag in $ModifyTags) { + if ([string]::IsNullOrEmpty($Tag.Identity)) { + $Results.Add("Failed to modify tag - Identity is required") + continue + } + + # Use basic validation for modifications + $validationError = Test-RetentionTagParams -Tag $Tag -IsModification $true + if ($validationError) { + $Results.Add("Failed to modify tag '$($Tag.Identity)': $validationError") + continue + } + + $cmdParams = @{ + Identity = $Tag.Identity + } + + if ($Tag.Name) { + $cmdParams.Name = $Tag.Name + } + + if ($Tag.AgeLimitForRetention) { + $cmdParams.AgeLimitForRetention = $Tag.AgeLimitForRetention + } + + if ($Tag.RetentionAction) { + $cmdParams.RetentionAction = $Tag.RetentionAction + } + + if ($Tag.Comment) { + $cmdParams.Comment = $Tag.Comment + } + + if ($Tag.RetentionEnabled -ne $null) { + $cmdParams.RetentionEnabled = $Tag.RetentionEnabled + } + + if ($Tag.LocalizedComment) { + $cmdParams.LocalizedComment = $Tag.LocalizedComment + } + + if ($Tag.LocalizedRetentionPolicyTagName) { + $cmdParams.LocalizedRetentionPolicyTagName = $Tag.LocalizedRetentionPolicyTagName + } + + Add-BulkCmdlet -CmdletName 'Set-RetentionPolicyTag' -Parameters $cmdParams -ExpectedResult "Successfully modified retention tag: $($Tag.Identity)" -Operation 'Modify' -Identity $Tag.Identity + } + } + + # Delete Retention Tags + $DeleteTags = $Request.body.DeleteTags + if ($DeleteTags) { + foreach ($TagIdentity in $DeleteTags) { + if ([string]::IsNullOrEmpty($TagIdentity)) { + $Results.Add("Failed to delete tag - Identity is required") + continue + } + + # Check if tag is used in any retention policies + $AllPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicy' -ErrorAction SilentlyContinue + $policiesUsingTag = $AllPolicies | Where-Object { + $_.RetentionPolicyTagLinks -contains $TagIdentity + } + + if ($policiesUsingTag) { + $policyNames = ($policiesUsingTag | ForEach-Object { $_.Name }) -join ', ' + $Results.Add("Cannot delete retention tag '$TagIdentity' - still used in policies: $policyNames") + continue + } + + Add-BulkCmdlet -CmdletName 'Remove-RetentionPolicyTag' -Parameters @{Identity = $TagIdentity; Confirm = $false} -ExpectedResult "Successfully deleted retention tag: $TagIdentity" -Operation 'Delete' -Identity $TagIdentity + } + } + + # Execute bulk operations + if ($CmdletArray.Count -gt 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Executing $($CmdletArray.Count) retention tag operations" -Sev 'Info' -tenant $TenantFilter + + if ($CmdletArray.Count -gt 1) { + # Use bulk processing + $BulkResults = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($CmdletArray) -ReturnWithCommand $true + + # Process bulk results using GUID mapping + if ($BulkResults -is [hashtable] -and $BulkResults.Keys.Count -gt 0) { + foreach ($cmdletName in $BulkResults.Keys) { + foreach ($result in $BulkResults[$cmdletName]) { + $operationGuid = $result.OperationGuid + + if ($operationGuid -and $GuidToMetadataMap.ContainsKey($operationGuid)) { + $metadata = $GuidToMetadataMap[$operationGuid] + + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $Message = "Failed to $($metadata.Operation.ToLower()) retention tag $($metadata.Identity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } else { + Write-LogMessage -headers $Request.Headers -API $APINAME -message $metadata.ExpectedResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($metadata.ExpectedResult) + } + } + } + } + } + } else { + # Single operation + $CmdletObj = $CmdletArray[0] + $CmdletMetadata = $CmdletMetadataArray[0] + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + Write-LogMessage -headers $Request.Headers -API $APINAME -message $CmdletMetadata.ExpectedResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($CmdletMetadata.ExpectedResult) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to $($CmdletMetadata.Operation.ToLower()) retention tag $($CmdletMetadata.Identity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } + } + } + + $StatusCode = [HttpStatusCode]::OK + + # Simple response logic + if ($CreateTags -or $ModifyTags -or $DeleteTags) { + # For any operations, return the results messages + $GraphRequest = @($Results) + } else { + # For listing, return all tags or specific tag - wrapped in try-catch + try { + $SpecificName = $Request.Query.name + if ($SpecificName) { + # Get specific tag by name + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicyTag' -cmdParams @{Identity = $SpecificName} + } else { + # Get all tags + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RetentionPolicyTag' + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = if ($Request.Query.name) { + "Failed to retrieve retention tag '$($Request.Query.name)': $ErrorMessage" + } else { + "Failed to retrieve retention tags: $ErrorMessage" + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = @($Results) + } + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to manage retention tags: $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = @($Results) + } + + # If no results are found, we will return an empty message to prevent null reference errors in the frontend + $GraphRequest = $GraphRequest ?? @() + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequest + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecSetMailboxRetentionPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecSetMailboxRetentionPolicies.ps1 new file mode 100644 index 000000000000..c88b7de0774b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Mailbox Retention/Invoke-ExecSetMailboxRetentionPolicies.ps1 @@ -0,0 +1,145 @@ +Function Invoke-ExecSetMailboxRetentionPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Results = [System.Collections.Generic.List[string]]::new() + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $CmdletArray = [System.Collections.ArrayList]::new() + $CmdletMetadataArray = [System.Collections.ArrayList]::new() + $GuidToMetadataMap = @{} + + if ([string]::IsNullOrEmpty($TenantFilter)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Tenant filter is required" + }) + return + } + + try { + $PolicyName = $Request.body.PolicyName + $Mailboxes = $Request.body.Mailboxes + + # Validate required parameters + if ([string]::IsNullOrEmpty($PolicyName)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "PolicyName is required" + }) + return + } + + if (-not $Mailboxes -or $Mailboxes.Count -eq 0) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Mailboxes array is required" + }) + return + } + + # Helper function to add cmdlet to bulk array + function Add-BulkCmdlet { + param($CmdletName, $Parameters, $MailboxIdentity) + + $OperationGuid = [Guid]::NewGuid().ToString() + + $CmdletObj = @{ + CmdletInput = @{ + CmdletName = $CmdletName + Parameters = $Parameters + } + OperationGuid = $OperationGuid + } + + $CmdletMetadata = [PSCustomObject]@{ + MailboxIdentity = $MailboxIdentity + OperationGuid = $OperationGuid + } + + $null = $CmdletArray.Add($CmdletObj) + $null = $CmdletMetadataArray.Add($CmdletMetadata) + $GuidToMetadataMap[$OperationGuid] = $CmdletMetadata + } + + # Process each mailbox + foreach ($MailboxIdentity in $Mailboxes) { + if ([string]::IsNullOrEmpty($MailboxIdentity)) { + $Results.Add("Failed to apply retention policy to empty mailbox identity") + continue + } + + Add-BulkCmdlet -CmdletName 'Set-Mailbox' -Parameters @{Identity = $MailboxIdentity; RetentionPolicy = $PolicyName} -MailboxIdentity $MailboxIdentity + } + + # Execute bulk operations + if ($CmdletArray.Count -gt 0) { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Applying retention policy '$PolicyName' to $($CmdletArray.Count) mailboxes" -Sev 'Info' -tenant $TenantFilter + + if ($CmdletArray.Count -gt 1) { + # Use bulk processing + $BulkResults = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($CmdletArray) -ReturnWithCommand $true + + # Process bulk results using GUID mapping + if ($BulkResults -is [hashtable] -and $BulkResults.Keys.Count -gt 0) { + foreach ($cmdletName in $BulkResults.Keys) { + foreach ($result in $BulkResults[$cmdletName]) { + $operationGuid = $result.OperationGuid + + if ($operationGuid -and $GuidToMetadataMap.ContainsKey($operationGuid)) { + $metadata = $GuidToMetadataMap[$operationGuid] + + if ($result.error) { + $ErrorMessage = try { (Get-CippException -Exception $result.error).NormalizedError } catch { $result.error } + $Message = "Failed to apply retention policy '$PolicyName' to $($metadata.MailboxIdentity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } else { + $Message = "Successfully applied retention policy '$PolicyName' to $($metadata.MailboxIdentity)" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Info' -tenant $TenantFilter + $Results.Add($Message) + } + } + } + } + } + } else { + # Single operation + $CmdletObj = $CmdletArray[0] + $CmdletMetadata = $CmdletMetadataArray[0] + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters + $Message = "Successfully applied retention policy '$PolicyName' to $($CmdletMetadata.MailboxIdentity)" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Info' -tenant $TenantFilter + $Results.Add($Message) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to apply retention policy '$PolicyName' to $($CmdletMetadata.MailboxIdentity): $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + } + } + } + + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to set mailbox retention policies: $ErrorMessage" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Error' -tenant $TenantFilter + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListAntiPhishingFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListAntiPhishingFilters.ps1 new file mode 100644 index 000000000000..e5f77dbe1893 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListAntiPhishingFilters.ps1 @@ -0,0 +1,25 @@ +function Invoke-ListAntiPhishingFilters { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object -Property * + $Rules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishRule' | Select-Object -Property * + + $Output = $Policies | Select-Object -Property *, + @{ Name = 'RuleName'; Expression = { foreach ($item in $Rules) { if ($item.AntiPhishPolicy -eq $_.Name) { $item.Name } } } }, + @{ Name = 'Priority'; Expression = { foreach ($item in $Rules) { if ($item.AntiPhishPolicy -eq $_.Name) { $item.Priority } } } }, + @{ Name = 'RecipientDomainIs'; Expression = { foreach ($item in $Rules) { if ($item.AntiPhishPolicy -eq $_.Name) { $item.RecipientDomainIs } } } }, + @{ Name = 'State'; Expression = { foreach ($item in $Rules) { if ($item.AntiPhishPolicy -eq $_.Name) { $item.State } } } } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Output + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListGlobalAddressList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListGlobalAddressList.ps1 new file mode 100644 index 000000000000..c54aca7cd798 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListGlobalAddressList.ps1 @@ -0,0 +1,28 @@ +Function Invoke-ListGlobalAddressList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Query.tenantFilter + + try { + $GAL = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Recipient' -cmdParams @{ResultSize = 'unlimited'; SortBy = 'DisplayName' } ` + -Select 'Identity, DisplayName, Alias, PrimarySmtpAddress, ExternalDirectoryObjectId, HiddenFromAddressListsEnabled, EmailAddresses, IsDirSynced, SKUAssigned, RecipientType, RecipientTypeDetails, AddressListMembership' | + Select-Object -ExcludeProperty *odata*, *data.type* + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::Forbidden + $GAL = $ErrorMessage.NormalizedError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GAL) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMailboxCAS.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMailboxCAS.ps1 new file mode 100644 index 000000000000..e90ed122fc89 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMailboxCAS.ps1 @@ -0,0 +1,33 @@ +Function Invoke-ListMailboxCAS { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + $GraphRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/CasMailbox" -Tenantid $tenantfilter -scope ExchangeOnline | Select-Object @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, + @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, + @{ Name = 'ecpenabled'; Expression = { $_.'ECPEnabled' } }, + @{ Name = 'owaenabled'; Expression = { $_.'OWAEnabled' } }, + @{ Name = 'imapenabled'; Expression = { $_.'IMAPEnabled' } }, + @{ Name = 'popenabled'; Expression = { $_.'POPEnabled' } }, + @{ Name = 'mapienabled'; Expression = { $_.'MAPIEnabled' } }, + @{ Name = 'ewsenabled'; Expression = { $_.'EWSEnabled' } }, + @{ Name = 'activesyncenabled'; Expression = { $_.'ActiveSyncEnabled' } } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMalwareFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMalwareFilters.ps1 new file mode 100644 index 000000000000..05a1152b65b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListMalwareFilters.ps1 @@ -0,0 +1,25 @@ +function Invoke-ListMalwareFilters { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterPolicy' | Select-Object -Property * + $Rules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterRule' | Select-Object -Property * + + $Output = $Policies | Select-Object -Property *, + @{ Name = 'RuleName'; Expression = { foreach ($item in $Rules) { if ($item.MalwareFilterPolicy -eq $_.Name) { $item.Name } } } }, + @{ Name = 'Priority'; Expression = { foreach ($item in $Rules) { if ($item.MalwareFilterPolicy -eq $_.Name) { $item.Priority } } } }, + @{ Name = 'RecipientDomainIs'; Expression = { foreach ($item in $Rules) { if ($item.MalwareFilterPolicy -eq $_.Name) { $item.RecipientDomainIs } } } }, + @{ Name = 'State'; Expression = { foreach ($item in $Rules) { if ($item.MalwareFilterPolicy -eq $_.Name) { $item.State } } } } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Output + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSafeAttachmentsFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSafeAttachmentsFilters.ps1 new file mode 100644 index 000000000000..1e0d39b2ea83 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSafeAttachmentsFilters.ps1 @@ -0,0 +1,25 @@ +function Invoke-ListSafeAttachmentsFilters { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentPolicy' | Select-Object -Property * + $Rules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentRule' | Select-Object -Property * + + $Output = $Policies | Select-Object -Property *, + @{ Name = 'RuleName'; Expression = { foreach ($item in $Rules) { if ($item.SafeAttachmentPolicy -eq $_.Name) { $item.Name } } } }, + @{ Name = 'Priority'; Expression = { foreach ($item in $Rules) { if ($item.SafeAttachmentPolicy -eq $_.Name) { $item.Priority } } } }, + @{ Name = 'RecipientDomainIs'; Expression = { foreach ($item in $Rules) { if ($item.SafeAttachmentPolicy -eq $_.Name) { $item.RecipientDomainIs } } } }, + @{ Name = 'State'; Expression = { foreach ($item in $Rules) { if ($item.SafeAttachmentPolicy -eq $_.Name) { $item.State } } } } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Output + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 new file mode 100644 index 000000000000..a0e307c1cba8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 @@ -0,0 +1,47 @@ +function Invoke-ListSharedMailboxAccountEnabled { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Query.tenantFilter + + # Get Shared Mailbox Stuff + try { + $SharedMailboxList = (New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($TenantFilter)/Mailbox?`$filter=RecipientTypeDetails eq 'SharedMailbox'" -Tenantid $TenantFilter -scope ExchangeOnline) + $AllUsersInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$select=id,userPrincipalName,accountEnabled,displayName,givenName,surname,onPremisesSyncEnabled,assignedLicenses' -tenantid $TenantFilter + $SharedMailboxDetails = foreach ($SharedMailbox in $SharedMailboxList) { + # Match the User + $User = $AllUsersInfo | Where-Object { $_.userPrincipalName -eq $SharedMailbox.userPrincipalName } | Select-Object -First 1 + + if ($User.accountEnabled) { + # Return all shared mailboxes with license information + [PSCustomObject]@{ + UserPrincipalName = $User.userPrincipalName + displayName = $User.displayName + givenName = $User.givenName + surname = $User.surname + accountEnabled = $User.accountEnabled + assignedLicenses = $User.assignedLicenses + id = $User.id + onPremisesSyncEnabled = $User.onPremisesSyncEnabled + } + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $StatusCode = [HttpStatusCode]::InternalServerError + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Shared Mailbox List on $($TenantFilter). Error: $($_.exception.message)" -sev 'Error' + } + $GraphRequest = $SharedMailboxDetails + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddEquipmentMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddEquipmentMailbox.ps1 new file mode 100644 index 000000000000..fb7b9190cab9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddEquipmentMailbox.ps1 @@ -0,0 +1,58 @@ +Function Invoke-AddEquipmentMailbox { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Equipment.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Tenant = $Request.Body.tenantID + + $Results = [System.Collections.Generic.List[Object]]::new() + $MailboxObject = $Request.Body + + # Create the equipment mailbox + $NewMailboxParams = @{ + Name = $MailboxObject.username + DisplayName = $MailboxObject.displayName + Equipment = $true + PrimarySmtpAddress = $MailboxObject.userPrincipalName + } + + try { + # Create the equipment mailbox + $AddEquipmentRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-Mailbox' -cmdParams $NewMailboxParams + $Results.Add("Successfully created equipment mailbox: $($MailboxObject.displayName)") + + # Block sign-in for the mailbox + try { + $null = Set-CIPPSignInState -userid $AddEquipmentRequest.ExternalDirectoryObjectId -TenantFilter $Tenant -APIName $APINAME -Headers $Headers -AccountEnabled $false + $Results.Add("Successfully blocked sign-in for Equipment mailbox $($MailboxObject.userPrincipalName)") + } catch { + $ErrorMessage = $_.Exception.Message + $Results.Add("Failed to block sign-in for Equipment mailbox: $($MailboxObject.userPrincipalName). Error: $ErrorMessage") + } + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Created equipment mailbox $($MailboxObject.displayName)" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create equipment mailbox: $($MailboxObject.displayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::Forbidden + } + + $Body = [pscustomobject]@{ 'Results' = @($Results) } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomList.ps1 new file mode 100644 index 000000000000..f8ed1bd373f9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomList.ps1 @@ -0,0 +1,54 @@ +Function Invoke-AddRoomList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Room.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Tenant = $Request.Body.tenantFilter ?? $Request.Body.tenantid + + $Results = [System.Collections.Generic.List[Object]]::new() + $RoomListObject = $Request.Body + + # Construct email address from username and domain + $EmailAddress = if ($RoomListObject.primDomain.value) { + "$($RoomListObject.username)@$($RoomListObject.primDomain.value)" + } else { + "$($RoomListObject.username)@$($Tenant)" + } + + # Parameters for New-DistributionGroup with RoomList + $AddRoomListParams = @{ + Name = $RoomListObject.username + DisplayName = $RoomListObject.displayName + RoomList = $true + PrimarySMTPAddress = $EmailAddress + } + + try { + $AddRoomListRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-DistributionGroup' -cmdParams $AddRoomListParams + $Results.Add("Successfully created room list: $($RoomListObject.displayName).") + Write-LogMessage -Headers $Headers -API $APINAME -tenant $Tenant -message "Created room list $($RoomListObject.displayName) with id $($AddRoomListRequest.identity)" -Sev 'Info' + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create room list: $($RoomListObject.displayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::InternalServerError + } + + $Body = [pscustomobject] @{ 'Results' = @($Results) } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomMailbox.ps1 new file mode 100644 index 000000000000..446ea831c80a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomMailbox.ps1 @@ -0,0 +1,55 @@ +Function Invoke-AddRoomMailbox { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Room.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Tenant = $Request.Body.tenantid + + $Results = [System.Collections.Generic.List[Object]]::new() + $MailboxObject = $Request.Body + $AddRoomParams = [pscustomobject]@{ + Name = $MailboxObject.username + DisplayName = $MailboxObject.displayName + Room = $true + PrimarySMTPAddress = $MailboxObject.userPrincipalName + ResourceCapacity = if (![string]::IsNullOrWhiteSpace($MailboxObject.ResourceCapacity)) { $MailboxObject.ResourceCapacity } else { $null } + + } + # Interact with query parameters or the body of the request. + try { + $AddRoomRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-Mailbox' -cmdParams $AddRoomParams + $Results.Add("Successfully created room: $($MailboxObject.DisplayName).") + Write-LogMessage -Headers $Headers -API $APINAME -tenant $Tenant -message "Created room $($MailboxObject.DisplayName) with id $($AddRoomRequest.id)" -Sev 'Info' + + # Block sign-in for the mailbox + try { + $null = Set-CIPPSignInState -userid $AddRoomRequest.ExternalDirectoryObjectId -TenantFilter $Tenant -APIName $APINAME -Headers $Headers -AccountEnabled $false + $Results.Add("Successfully blocked sign-in for Room mailbox $($MailboxObject.userPrincipalName)") + } catch { + $ErrorMessage = $_.Exception.Message + $Results.Add("Failed to block sign-in for Room mailbox: $($MailboxObject.userPrincipalName). Error: $ErrorMessage") + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create room mailbox: $($MailboxObject.DisplayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $Tenant -message $Message -Sev 'Error' -LogData $ErrorMessage + $Results.Add($Message) + $StatusCode = [HttpStatusCode]::InternalServerError + } + + $Body = [pscustomobject] @{ 'Results' = @($Results) } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditEquipmentMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditEquipmentMailbox.ps1 new file mode 100644 index 000000000000..f1396c842abd --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditEquipmentMailbox.ps1 @@ -0,0 +1,112 @@ +Function Invoke-EditEquipmentMailbox { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Equipment.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Tenant = $Request.Body.tenantID + + $Results = [System.Collections.Generic.List[Object]]::new() + $MailboxObject = $Request.Body + + # First update the mailbox properties + $UpdateMailboxParams = @{ + Identity = $MailboxObject.equipmentId + DisplayName = $MailboxObject.displayName + } + + if (![string]::IsNullOrWhiteSpace($MailboxObject.hiddenFromAddressListsEnabled)) { + $UpdateMailboxParams.Add('HiddenFromAddressListsEnabled', $MailboxObject.hiddenFromAddressListsEnabled) + } + + # Then update the user properties + $UpdateUserParams = @{ + Identity = $MailboxObject.equipmentId + } + + # Add optional parameters if they exist + $UserProperties = @( + 'Location', 'Department', 'Company', + 'Phone', 'Tags', + 'StreetAddress', 'City', 'StateOrProvince', 'CountryOrRegion', + 'PostalCode' + ) + + foreach ($prop in $UserProperties) { + if (![string]::IsNullOrWhiteSpace($MailboxObject.$prop)) { + $UpdateUserParams[$prop] = $MailboxObject.$prop + } + } + + # Then update the calendar properties + $UpdateCalendarParams = @{ + Identity = $MailboxObject.equipmentId + } + + $CalendarProperties = @( + 'AllowConflicts', 'AllowRecurringMeetings', 'BookingWindowInDays', + 'MaximumDurationInMinutes', 'ProcessExternalMeetingMessages', + 'ForwardRequestsToDelegates', 'ScheduleOnlyDuringWorkHours', 'AutomateProcessing' + ) + + foreach ($prop in $CalendarProperties) { + if (![string]::IsNullOrWhiteSpace($MailboxObject.$prop)) { + $UpdateCalendarParams[$prop] = $MailboxObject.$prop + } + } + + # Then update the calendar configuration + $UpdateCalendarConfigParams = @{ + Identity = $MailboxObject.equipmentId + } + + $CalendarConfiguration = @( + 'WorkDays', 'WorkHoursStartTime', 'WorkHoursEndTime', 'WorkingHoursTimeZone' + ) + + foreach ($prop in $CalendarConfiguration) { + if (![string]::IsNullOrWhiteSpace($MailboxObject.$prop)) { + $UpdateCalendarConfigParams[$prop] = $MailboxObject.$prop + } + } + + try { + # Update mailbox properties + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-Mailbox' -cmdParams $UpdateMailboxParams + + # Update user properties + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-User' -cmdParams $UpdateUserParams + $Results.Add("Successfully updated equipment: $($MailboxObject.DisplayName) (User Properties)") + + # Update calendar properties + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-CalendarProcessing' -cmdParams $UpdateCalendarParams + $Results.Add("Successfully updated equipment: $($MailboxObject.DisplayName) (Calendar Properties)") + + # Update calendar configuration properties + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxCalendarConfiguration' -cmdParams $UpdateCalendarConfigParams + $Results.Add("Successfully updated equipment: $($MailboxObject.DisplayName) (Calendar Configuration)") + + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Updated equipment $($MailboxObject.DisplayName)" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Failed to update equipment: $($MailboxObject.DisplayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Results.Add("Failed to update Equipment mailbox $($MailboxObject.userPrincipalName). $($ErrorMessage.NormalizedError)") + $StatusCode = [HttpStatusCode]::Forbidden + } + + $Body = [pscustomobject]@{ 'Results' = @($Results) } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomList.ps1 new file mode 100644 index 000000000000..8d6f3e819ab2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomList.ps1 @@ -0,0 +1,174 @@ +Function Invoke-EditRoomList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Room.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Results = [System.Collections.Generic.List[string]]::new() + $RoomListObj = $Request.Body + $GroupId = $RoomListObj.groupId + $TenantId = $RoomListObj.tenantFilter + + try { + # Edit basic room list properties + if ($RoomListObj.displayName -or $RoomListObj.description -or $RoomListObj.mailNickname) { + $SetRoomListParams = @{ + Identity = $GroupId + } + + if ($RoomListObj.displayName) { + $SetRoomListParams.DisplayName = $RoomListObj.displayName + } + + if ($RoomListObj.description) { + $SetRoomListParams.Description = $RoomListObj.description + } + + if ($RoomListObj.mailNickname) { + $SetRoomListParams.Name = $RoomListObj.mailNickname + } + + try { + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-DistributionGroup' -cmdParams $SetRoomListParams -useSystemMailbox $true + $Results.Add("Successfully updated room list properties for $($RoomListObj.displayName)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Updated room list properties for $($RoomListObj.displayName)" -Sev 'Info' + } catch { + $Results.Add("Failed to update room list properties: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to update room list properties: $($_.Exception.Message)" -Sev 'Error' + } + } + + # Add room members + if ($RoomListObj.AddMember) { + foreach ($Member in $RoomListObj.AddMember) { + try { + $MemberEmail = if ($Member.value) { $Member.value } else { $Member } + $AddMemberParams = @{ + Identity = $GroupId + Member = $MemberEmail + BypassSecurityGroupManagerCheck = $true + } + + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Add-DistributionGroupMember' -cmdParams $AddMemberParams -useSystemMailbox $true + $Results.Add("Successfully added room $MemberEmail to room list") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Added room $MemberEmail to room list $GroupId" -Sev 'Info' + } catch { + $Results.Add("Failed to add room $MemberEmail : $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to add room $MemberEmail : $($_.Exception.Message)" -Sev 'Error' + } + } + } + + # Remove room members + if ($RoomListObj.RemoveMember) { + foreach ($Member in $RoomListObj.RemoveMember) { + try { + $MemberEmail = if ($Member.value) { $Member.value } else { $Member } + $RemoveMemberParams = @{ + Identity = $GroupId + Member = $MemberEmail + BypassSecurityGroupManagerCheck = $true + } + + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Remove-DistributionGroupMember' -cmdParams $RemoveMemberParams -useSystemMailbox $true + $Results.Add("Successfully removed room $MemberEmail from room list") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Removed room $MemberEmail from room list $GroupId" -Sev 'Info' + } catch { + $Results.Add("Failed to remove room $MemberEmail from room list: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to remove room $MemberEmail from room list: $($_.Exception.Message)" -Sev 'Error' + } + } + } + + # Handle owners (ManagedBy property) + if ($RoomListObj.AddOwner -or $RoomListObj.RemoveOwner) { + try { + # Get current owners + $CurrentGroup = New-ExoRequest -tenantid $TenantId -cmdlet 'Get-DistributionGroup' -cmdParams @{ Identity = $GroupId } -useSystemMailbox $true + $CurrentOwners = [System.Collections.Generic.List[string]]::new() + + if ($CurrentGroup.ManagedBy) { + # Convert ManagedBy objects to strings explicitly + foreach ($ManagedByItem in $CurrentGroup.ManagedBy) { + $StringValue = [string]$ManagedByItem + $CurrentOwners.Add($StringValue) + } + } + + # Remove owners + if ($RoomListObj.RemoveOwner) { + foreach ($Owner in $RoomListObj.RemoveOwner) { + $OwnerToRemove = if ($Owner.addedFields.id) { $Owner.addedFields.id } else { $Owner.value } + if ($CurrentOwners -contains $OwnerToRemove) { + $CurrentOwners.Remove($OwnerToRemove) + $Results.Add("Removed owner $(if ($Owner.label) { $Owner.label } else { $OwnerToRemove }) from room list") + } + } + } + + # Add owners + if ($RoomListObj.AddOwner) { + foreach ($Owner in $RoomListObj.AddOwner) { + $OwnerToAdd = if ($Owner.addedFields.id) { $Owner.addedFields.id } else { $Owner.value } + if ($CurrentOwners -notcontains $OwnerToAdd) { + $CurrentOwners.Add($OwnerToAdd) + $Results.Add("Added owner $(if ($Owner.label) { $Owner.label } else { $OwnerToAdd }) to room list") + } + } + } + + # Update ManagedBy with new owners list + $SetOwnersParams = @{ + Identity = $GroupId + ManagedBy = $CurrentOwners.ToArray() + } + + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-DistributionGroup' -cmdParams $SetOwnersParams -useSystemMailbox $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Updated owners for room list $GroupId" -Sev 'Info' + } catch { + $Results.Add("Failed to update room list owners: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to update room list owners: $($_.Exception.Message)" -Sev 'Error' + } + } + + # Handle external email settings + if ($null -ne $RoomListObj.allowExternal) { + try { + $SetExternalParams = @{ + Identity = $GroupId + RequireSenderAuthenticationEnabled = !$RoomListObj.allowExternal + } + + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-DistributionGroup' -cmdParams $SetExternalParams -useSystemMailbox $true + + if ($RoomListObj.allowExternal) { + $Results.Add('Enabled external email access for room list') + } else { + $Results.Add('Disabled external email access for room list') + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Updated external email settings for room list $GroupId" -Sev 'Info' + } catch { + $Results.Add("Failed to update external email settings: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to update external email settings: $($_.Exception.Message)" -Sev 'Error' + } + } + + } catch { + $Results.Add("An error occurred while editing the room list: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to edit room list: $($_.Exception.Message)" -Sev 'Error' + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 new file mode 100644 index 000000000000..7b976f0b9861 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 @@ -0,0 +1,119 @@ +Function Invoke-EditRoomMailbox { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Room.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Tenant = $Request.Body.tenantID + + + $Results = [System.Collections.Generic.List[Object]]::new() + $MailboxObject = $Request.Body + + # First update the mailbox properties + $UpdateMailboxParams = @{ + Identity = $MailboxObject.roomId + DisplayName = $MailboxObject.displayName + } + + if (![string]::IsNullOrWhiteSpace($MailboxObject.capacity)) { + $UpdateMailboxParams.Add('ResourceCapacity', $MailboxObject.capacity) + } + if (![string]::IsNullOrWhiteSpace($MailboxObject.hiddenFromAddressListsEnabled)) { + $UpdateMailboxParams.Add('HiddenFromAddressListsEnabled', $MailboxObject.hiddenFromAddressListsEnabled) + } + + + # Then update the place properties + $UpdatePlaceParams = @{ + Identity = $MailboxObject.roomId + } + + # Add optional parameters if they exist + $PlaceProperties = @( + 'Building', 'Floor', 'FloorLabel', 'Phone', + 'AudioDeviceName', 'VideoDeviceName', 'DisplayDeviceName', + 'IsWheelChairAccessible', 'Tags', + 'Street', 'City', 'State', 'CountryOrRegion', 'Desks', + 'PostalCode', 'Localities', 'SpaceType', 'CustomSpaceType', + 'ResourceLinks' + ) + + foreach ($prop in $PlaceProperties) { + if (![string]::IsNullOrWhiteSpace($MailboxObject.$prop)) { + $UpdatePlaceParams[$prop] = $MailboxObject.$prop + } + } + + + # Then update the calendar properties + $UpdateCalendarParams = @{ + Identity = $MailboxObject.roomId + } + + $CalendarProperties = @( + 'AllowConflicts', 'AllowRecurringMeetings', 'BookingWindowInDays', + 'MaximumDurationInMinutes', 'ProcessExternalMeetingMessages', 'EnforceCapacity', + 'ForwardRequestsToDelegates', 'ScheduleOnlyDuringWorkHours ', 'AutomateProcessing' + ) + + foreach ($prop in $CalendarProperties) { + if (![string]::IsNullOrWhiteSpace($MailboxObject.$prop)) { + $UpdateCalendarParams[$prop] = $MailboxObject.$prop + } + } + + # Then update the calendar configuration + $UpdateCalendarConfigParams = @{ + Identity = $MailboxObject.roomId + } + + $CalendarConfiguration = @( + 'WorkDays', 'WorkHoursStartTime', 'WorkHoursEndTime', 'WorkingHoursTimeZone' + ) + + foreach ($prop in $CalendarConfiguration) { + if (![string]::IsNullOrWhiteSpace($MailboxObject.$prop)) { + $UpdateCalendarConfigParams[$prop] = $MailboxObject.$prop + } + } + + try { + # Update mailbox properties + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-Mailbox' -cmdParams $UpdateMailboxParams + + # Update place properties + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-Place' -cmdParams $UpdatePlaceParams + $Results.Add("Successfully updated room: $($MailboxObject.DisplayName) (Place Properties)") + + # Update calendar properties + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-CalendarProcessing' -cmdParams $UpdateCalendarParams + $Results.Add("Successfully updated room: $($MailboxObject.DisplayName) (Calendar Properties)") + + # Update calendar configuration properties + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxCalendarConfiguration' -cmdParams $UpdateCalendarConfigParams + $Results.Add("Successfully updated room: $($MailboxObject.DisplayName) (Calendar Configuration)") + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $Tenant -message "Updated room $($MailboxObject.DisplayName)" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $Tenant -message "Failed to update room: $($MailboxObject.DisplayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Results.Add("Failed to update Room mailbox $($MailboxObject.userPrincipalName). $($ErrorMessage.NormalizedError)") + + $StatusCode = [HttpStatusCode]::Forbidden + } + + $Body = [pscustomobject]@{ 'Results' = @($Results) } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListEquipment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListEquipment.ps1 new file mode 100644 index 000000000000..df15735141a3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListEquipment.ps1 @@ -0,0 +1,91 @@ +function Invoke-ListEquipment { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Equipment.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $EquipmentId = $Request.Query.EquipmentId + $Tenant = $Request.Query.TenantFilter + + try { + if ($EquipmentId) { + # Get specific equipment details + $Equipment = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ + Identity = $EquipmentId + RecipientTypeDetails = 'EquipmentMailbox' + } + + $UserDetails = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-User' -cmdParams @{ + Identity = $EquipmentId + } + + $CalendarProcessing = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-CalendarProcessing' -cmdParams @{ + Identity = $EquipmentId + } + + $CalendarConfig = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxCalendarConfiguration' -cmdParams @{ + Identity = $EquipmentId + } + + $Results = [PSCustomObject]@{ + # Core mailbox properties + displayName = $Equipment.DisplayName + hiddenFromAddressListsEnabled = $Equipment.HiddenFromAddressListsEnabled + userPrincipalName = $Equipment.UserPrincipalName + primarySmtpAddress = $Equipment.PrimarySmtpAddress + + # Equipment details from Get-User + department = $UserDetails.Department + company = $UserDetails.Company + + # Location information from Get-User + street = $UserDetails.Street + city = $UserDetails.City + state = $UserDetails.State + postalCode = $UserDetails.PostalCode + countryOrRegion = $UserDetails.CountryOrRegion + + # Equipment features + phone = $UserDetails.Phone + tags = $UserDetails.Tags + + # Calendar properties from Get-CalendarProcessing + allowConflicts = $CalendarProcessing.AllowConflicts + allowRecurringMeetings = $CalendarProcessing.AllowRecurringMeetings + bookingWindowInDays = $CalendarProcessing.BookingWindowInDays + maximumDurationInMinutes = $CalendarProcessing.MaximumDurationInMinutes + processExternalMeetingMessages = $CalendarProcessing.ProcessExternalMeetingMessages + forwardRequestsToDelegates = $CalendarProcessing.ForwardRequestsToDelegates + scheduleOnlyDuringWorkHours = $CalendarProcessing.ScheduleOnlyDuringWorkHours + automateProcessing = $CalendarProcessing.AutomateProcessing + + # Calendar configuration from Get-MailboxCalendarConfiguration + workDays = $CalendarConfig.WorkDays + workHoursStartTime = $CalendarConfig.WorkHoursStartTime + workHoursEndTime = $CalendarConfig.WorkHoursEndTime + workingHoursTimeZone = $CalendarConfig.WorkingHoursTimeZone + } + } else { + # List all equipment mailboxes + $Results = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ + RecipientTypeDetails = 'EquipmentMailbox' + ResultSize = 'Unlimited' + } | Select-Object -ExcludeProperty *data.type* + } + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $Results = $ErrorMessage + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results | Sort-Object displayName) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRoomLists.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRoomLists.ps1 new file mode 100644 index 000000000000..a21b783ea50b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRoomLists.ps1 @@ -0,0 +1,109 @@ +Function Invoke-ListRoomLists { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Room.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $GroupID = $Request.Query.groupID + $Members = $Request.Query.members + $Owners = $Request.Query.owners + + try { + if ($GroupID) { + # Get specific room list with detailed information + $GroupInfo = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroup' -cmdParams @{Identity = $GroupID } -useSystemMailbox $true | + Select-Object -ExcludeProperty *data.type* + + $Result = [PSCustomObject]@{ + groupInfo = $GroupInfo | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.PrimarySmtpAddress -split '@' | Select-Object -Last 1 } } + members = @{} + owners = @{} + allowExternal = (!$GroupInfo.RequireSenderAuthenticationEnabled) + } + + # Get members if requested + if ($Members -eq 'true') { + $RoomListMembers = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroupMember' -cmdParams @{Identity = $GroupID } | Select-Object -ExcludeProperty *data.type* -Property @{Name = 'id'; Expression = { $_.ExternalDirectoryObjectId } }, + @{Name = 'displayName'; Expression = { $_.DisplayName } }, + @{Name = 'mail'; Expression = { $_.PrimarySmtpAddress } }, + @{Name = 'mailNickname'; Expression = { $_.Alias } }, + @{Name = 'userPrincipalName'; Expression = { $_.PrimarySmtpAddress } } + $Result.members = @($RoomListMembers) + } + + # Get owners if requested + if ($Owners -eq 'true' -and $GroupInfo.ManagedBy) { + try { + # Separate valid and invalid GUIDs + $ValidOwnerIds = [System.Collections.Generic.List[string]]::new() + $InvalidOwnerIds = [System.Collections.Generic.List[string]]::new() + + foreach ($OwnerId in $GroupInfo.ManagedBy) { + $OwnerIdString = [string]$OwnerId + # Check if it's a valid GUID format + if ($OwnerIdString -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') { + $ValidOwnerIds.Add($OwnerIdString) + } else { + $InvalidOwnerIds.Add($OwnerIdString) + Write-Warning "Found invalid GUID for owner: $OwnerIdString" + } + } + + $AllOwners = [System.Collections.Generic.List[PSCustomObject]]::new() + + # Get valid owners from Graph API + if ($ValidOwnerIds.Count -gt 0) { + $body = ConvertTo-Json -InputObject @{ids = @($ValidOwnerIds) } -Compress + $OwnersData = New-GraphPOSTRequest -tenantid $TenantFilter -uri 'https://graph.microsoft.com/beta/directoryObjects/getByIds' -body $body + foreach ($Owner in $OwnersData.value) { + $AllOwners.Add($Owner) + } + } + + # Add invalid GUIDs as placeholder objects so they can be removed + foreach ($InvalidId in $InvalidOwnerIds) { + $PlaceholderOwner = [PSCustomObject]@{ + id = $InvalidId + displayName = "Invalid Owner ID: $InvalidId" + userPrincipalName = "invalid-$InvalidId" + '@odata.type' = '#microsoft.graph.user' + } + $AllOwners.Add($PlaceholderOwner) + } + + $Result.owners = @($AllOwners) + + } catch { + Write-Warning "Failed to get owners: $($_.Exception.Message)" + $Result.owners = @() + } + } + + + + $StatusCode = [HttpStatusCode]::OK + $ResponseBody = $Result + } else { + # Get all room lists (original functionality) + $RoomLists = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroup' -cmdParams @{RecipientTypeDetails = 'RoomList'; ResultSize = 'Unlimited' } | + Select-Object Guid, DisplayName, PrimarySmtpAddress, Alias, Phone, Identity, Notes, Description, Id -ExcludeProperty *data.type* + $StatusCode = [HttpStatusCode]::OK + $ResponseBody = @{ Results = @($RoomLists | Sort-Object DisplayName) } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + $ResponseBody = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $ResponseBody + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 new file mode 100644 index 000000000000..4218cd7a19ba --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 @@ -0,0 +1,173 @@ +Function Invoke-ListRooms { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Room.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $RoomId = $Request.Query.roomId + + # I dont like that i had to change it to EXO commands, but the waiting time for the Rooms to sync to Graph is too long :( -Bobby + try { + if ($RoomId) { + # Get specific room mailbox + $RoomMailbox = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{ + Identity = $RoomId + RecipientTypeDetails = 'RoomMailbox' + } | Select-Object -ExcludeProperty *@odata.type* + + # Get place details + $PlaceDetails = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Place' -cmdParams @{ + Identity = $RoomId + } | Select-Object -ExcludeProperty *@odata.type* + + # Get calendar properties + $CalendarProperties = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-CalendarProcessing' -cmdParams @{ + Identity = $RoomId + } | Select-Object -ExcludeProperty *@odata.type* + + # Get calendar properties + $CalendarConfigurationProperties = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxCalendarConfiguration' -cmdParams @{ + Identity = $RoomId + } | Select-Object -ExcludeProperty *@odata.type* + + if ($RoomMailbox -and $PlaceDetails -and $CalendarProperties -and $CalendarConfigurationProperties) { + $GraphRequest = @( + [PSCustomObject]@{ + # Core Mailbox Properties + id = $RoomMailbox.ExternalDirectoryObjectId + displayName = $RoomMailbox.DisplayName + mail = $RoomMailbox.PrimarySmtpAddress + mailNickname = $RoomMailbox.Alias + accountDisabled = $RoomMailbox.AccountDisabled + hiddenFromAddressListsEnabled = $RoomMailbox.HiddenFromAddressListsEnabled + isDirSynced = $RoomMailbox.IsDirSynced + + # Room Booking Settings + bookingType = $PlaceDetails.BookingType + resourceDelegates = $PlaceDetails.ResourceDelegates + capacity = [int]($PlaceDetails.Capacity ?? $RoomMailbox.ResourceCapacity ?? 0) + + # Location Information + building = $PlaceDetails.Building + floor = $PlaceDetails.Floor + floorLabel = $PlaceDetails.FloorLabel + street = if ([string]::IsNullOrWhiteSpace($PlaceDetails.Street)) { $null } else { $PlaceDetails.Street } + city = if ([string]::IsNullOrWhiteSpace($PlaceDetails.City)) { $null } else { $PlaceDetails.City } + state = if ([string]::IsNullOrWhiteSpace($PlaceDetails.State)) { $null } else { $PlaceDetails.State } + postalCode = if ([string]::IsNullOrWhiteSpace($PlaceDetails.PostalCode)) { $null } else { $PlaceDetails.PostalCode } + countryOrRegion = if ([string]::IsNullOrWhiteSpace($PlaceDetails.CountryOrRegion)) { $null } else { $PlaceDetails.CountryOrRegion } + + # Room Equipment + audioDeviceName = $PlaceDetails.AudioDeviceName + videoDeviceName = $PlaceDetails.VideoDeviceName + displayDeviceName = $PlaceDetails.DisplayDeviceName + mtrEnabled = $PlaceDetails.MTREnabled + + # Room Features + isWheelChairAccessible = $PlaceDetails.IsWheelChairAccessible + phone = if ([string]::IsNullOrWhiteSpace($PlaceDetails.Phone)) { $null } else { $PlaceDetails.Phone } + tags = $PlaceDetails.Tags + spaceType = $PlaceDetails.SpaceType + + # Calendar Properties + AllowConflicts = $CalendarProperties.AllowConflicts + AllowRecurringMeetings = $CalendarProperties.AllowRecurringMeetings + BookingWindowInDays = $CalendarProperties.BookingWindowInDays + MaximumDurationInMinutes = $CalendarProperties.MaximumDurationInMinutes + ProcessExternalMeetingMessages = $CalendarProperties.ProcessExternalMeetingMessages + EnforceCapacity = $CalendarProperties.EnforceCapacity + ForwardRequestsToDelegates = $CalendarProperties.ForwardRequestsToDelegates + ScheduleOnlyDuringWorkHours = $CalendarProperties.ScheduleOnlyDuringWorkHours + AutomateProcessing = $CalendarProperties.AutomateProcessing + + # Calendar Configuration Properties + WorkDays = if ([string]::IsNullOrWhiteSpace($CalendarConfigurationProperties.WorkDays)) { $null } else { $CalendarConfigurationProperties.WorkDays } + WorkHoursStartTime = if ([string]::IsNullOrWhiteSpace($CalendarConfigurationProperties.WorkHoursStartTime)) { $null } else { $CalendarConfigurationProperties.WorkHoursStartTime } + WorkHoursEndTime = if ([string]::IsNullOrWhiteSpace($CalendarConfigurationProperties.WorkHoursEndTime)) { $null } else { $CalendarConfigurationProperties.WorkHoursEndTime } + WorkingHoursTimeZone = $CalendarConfigurationProperties.WorkingHoursTimeZone + } + ) + } + } else { + # Get all room mailboxes in one call + $RoomMailboxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{ + RecipientTypeDetails = 'RoomMailbox' + ResultSize = 'Unlimited' + } | Select-Object -ExcludeProperty *@odata.type* + + # Get all places in one call + $Places = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Place' -cmdParams @{ + ResultSize = 'Unlimited' + } | Select-Object -ExcludeProperty *@odata.type* + + # Create hashtable for quick place lookups + $PlacesLookup = @{} + foreach ($Place in $Places) { + if ($Place.Identity) { + $PlacesLookup[$Place.Identity] = $Place + } + } + + $GraphRequest = @( + foreach ($Room in $RoomMailboxes) { + $PlaceDetails = $PlacesLookup[$Room.UserPrincipalName] ?? $PlacesLookup[$Room.PrimarySmtpAddress] + + [PSCustomObject]@{ + # Core Mailbox Properties + id = $Room.ExternalDirectoryObjectId + displayName = $Room.DisplayName + mail = $Room.PrimarySmtpAddress + mailNickname = $Room.Alias + accountDisabled = $Room.AccountDisabled + hiddenFromAddressListsEnabled = $Room.HiddenFromAddressListsEnabled + isDirSynced = $RoomMailbox.IsDirSynced + + # Room Booking Settings + bookingType = $PlaceDetails.BookingType + resourceDelegates = $PlaceDetails.ResourceDelegates + capacity = [int]($PlaceDetails.Capacity ?? $Room.ResourceCapacity ?? 0) + + # Location Information + building = $PlaceDetails.Building + floor = $PlaceDetails.Floor + floorLabel = $PlaceDetails.FloorLabel + street = if ([string]::IsNullOrWhiteSpace($PlaceDetails.Street)) { $null } else { $PlaceDetails.Street } + city = if ([string]::IsNullOrWhiteSpace($PlaceDetails.City)) { $null } else { $PlaceDetails.City } + state = if ([string]::IsNullOrWhiteSpace($PlaceDetails.State)) { $null } else { $PlaceDetails.State } + postalCode = if ([string]::IsNullOrWhiteSpace($PlaceDetails.PostalCode)) { $null } else { $PlaceDetails.PostalCode } + countryOrRegion = if ([string]::IsNullOrWhiteSpace($PlaceDetails.CountryOrRegion)) { $null } else { $PlaceDetails.CountryOrRegion } + + + # Room Equipment + audioDeviceName = $PlaceDetails.AudioDeviceName + videoDeviceName = $PlaceDetails.VideoDeviceName + displayDeviceName = $PlaceDetails.DisplayDeviceName + mtrEnabled = $PlaceDetails.MTREnabled + + # Room Features + isWheelChairAccessible = $PlaceDetails.IsWheelChairAccessible + phone = if ([string]::IsNullOrWhiteSpace($PlaceDetails.Phone)) { $null } else { $PlaceDetails.Phone } + tags = $PlaceDetails.Tags + spaceType = $PlaceDetails.SpaceType + } + } + ) + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest | Sort-Object displayName) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddQuarantinePolicy.ps1 new file mode 100644 index 000000000000..248de4d06c77 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddQuarantinePolicy.ps1 @@ -0,0 +1,64 @@ +Function Invoke-AddQuarantinePolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Spamfilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Tenants = ($Request.body.selectedTenants).value + + # If allTenants is selected, get all tenants and overwrite any other tenant selection + if ("AllTenants" -in $Tenants) { + $tenants = (Get-Tenants).defaultDomainName + } + + $Result = foreach ($TenantFilter in $tenants) { + try { + $ReleaseActionPreference = $Request.Body.ReleaseActionPreference.value ?? $Request.Body.ReleaseActionPreference + + $EndUserQuarantinePermissions = @{ + PermissionToBlockSender = $Request.Body.BlockSender + PermissionToDelete = $Request.Body.Delete + PermissionToPreview = $Request.Body.Preview + PermissionToRelease = $ReleaseActionPreference -eq "Release" ? $true : $false + PermissionToRequestRelease = $ReleaseActionPreference -eq "RequestRelease" ? $true : $false + PermissionToAllowSender = $Request.Body.AllowSender + } + + $Params = @{ + Identity = $Request.Body.Name + EndUserQuarantinePermissions = $EndUserQuarantinePermissions + ESNEnabled = $Request.Body.QuarantineNotification + IncludeMessagesFromBlockedSenderAddress = $Request.Body.IncludeMessagesFromBlockedSenderAddress + action = "New" + tenantFilter = $TenantFilter + APIName = $APIName + } + + Set-CIPPQuarantinePolicy @Params + $Message = "Created Quarantine policy '$($Request.Body.Name)' for tenant '$($TenantFilter)'" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev Info + $Message + + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create Quarantine policy '$($Request.Body.Name)' for tenant '$($TenantFilter)' - $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev Error -LogData $ErrorMessage + $Message + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{Results = @($Result) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 new file mode 100644 index 000000000000..c01f5d98d6d3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 @@ -0,0 +1,46 @@ +Function Invoke-AddSpamFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $RequestParams = $Request.Body.PowerShellCommand | ConvertFrom-Json | Select-Object -Property * -ExcludeProperty GUID, comments + $RequestPriority = $Request.Body.Priority + + $Tenants = ($Request.body.selectedTenants).value + $Result = foreach ($TenantFilter in $tenants) { + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-HostedContentFilterPolicy' -cmdParams $RequestParams + $Domains = (New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AcceptedDomain').name + $ruleparams = @{ + 'name' = "$($RequestParams.name)" + 'hostedcontentfilterpolicy' = "$($RequestParams.name)" + 'recipientdomainis' = @($domains) + 'Enabled' = $true + 'Priority' = $RequestPriority + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-HostedContentFilterRule' -cmdParams $ruleparams + "Successfully created spamfilter for $TenantFilter." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully created spamfilter for $TenantFilter." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Could not create spamfilter rule for $($TenantFilter): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Could not create spamfilter rule for $($TenantFilter): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{Results = @($Result) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilterTemplate.ps1 new file mode 100644 index 000000000000..d371af5d956f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilterTemplate.ps1 @@ -0,0 +1,50 @@ +Function Invoke-AddSpamFilterTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Spamfilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + try { + $GUID = (New-Guid).GUID + $JSON = if ($Request.Body.PowerShellCommand) { + Write-Host 'PowerShellCommand' + $Request.Body.PowerShellCommand | ConvertFrom-Json + } else { + ([pscustomobject]$Request.Body | Select-Object name, AddXHeaderValue, AdminDisplayName, AllowedSenderDomains, AllowedSenders, BlockedSenderDomains, BlockedSenders, BulkQuarantineTag, BulkSpamAction, BulkThreshold, Confirm, DownloadLink, EnableEndUserSpamNotifications, EnableLanguageBlockList, EnableRegionBlockList, EndUserSpamNotificationCustomFromAddress, EndUserSpamNotificationCustomFromName, EndUserSpamNotificationCustomSubject, EndUserSpamNotificationFrequency, EndUserSpamNotificationLanguage, EndUserSpamNotificationCustomFromAddress, HighConfidencePhishAction, HighConfidencePhishQuarantineTag, HighConfidenceSpamAction, HighConfidenceSpamQuarantineTag, IncreaseScoreWithBizOrInfoUrls, IncreaseScoreWithImageLinks, IncreaseScoreWithNumericIps, IncreaseScoreWithRedirectToOtherPort, InlineSafetyTipsEnabled, LanguageBlockList, MarkAsSpamBulkMail, MarkAsSpamEmbedTagsInHtml, MarkAsSpamEmptyMessages, MarkAsSpamFormTagsInHtml, MarkAsSpamFramesInHtml, MarkAsSpamFromAddressAuthFail, MarkAsSpamJavaScriptInHtml, MarkAsSpamNdrBackscatter, MarkAsSpamObjectTagsInHtml, MarkAsSpamSensitiveWordList, MarkAsSpamSpfRecordHardFail, MarkAsSpamWebBugsInHtml, ModifySubjectValue, PhishQuarantineTag, PhishSpamAction, PhishZapEnabled, QuarantineRetentionPeriod, RecommendedPolicyType, RedirectToRecipients, RegionBlockList, SpamAction, SpamQuarantineTag, SpamZapEnabled, TestModeAction, TestModeBccToRecipients ) | ForEach-Object { + $NonEmptyProperties = $_.PSObject.Properties | Where-Object { $null -ne $_.Value } | Select-Object -ExpandProperty Name + $_ | Select-Object -Property $NonEmptyProperties + } + } + $JSON = ($JSON | Select-Object @{n = 'name'; e = { $_.name } }, @{n = 'comments'; e = { $_.comments } }, * | ConvertTo-Json -Depth 10) + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$json" + RowKey = "$GUID" + PartitionKey = 'SpamfilterTemplate' + } + $Result = "Successfully created Spam Filter Template: $($Request.Body.name) with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Debug' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create Spam Filter Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddTenantAllowBlockList.ps1 new file mode 100644 index 000000000000..1d8e0d727b05 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddTenantAllowBlockList.ps1 @@ -0,0 +1,68 @@ +function Invoke-AddTenantAllowBlockList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $BlockListObject = $Request.Body + $TenantID = $Request.Body.tenantID.value ?? $Request.Body.tenantID + + if ($TenantID -eq 'AllTenants') { + $Tenants = (Get-Tenants).defaultDomainName + } elseif ($TenantID -is [array]) { + $Tenants = $TenantID + } else { + $Tenants = @($TenantID) + } + $Results = [System.Collections.Generic.List[string]]::new() + $Entries = @() + if ($BlockListObject.entries -is [array]) { + $Entries = $BlockListObject.entries + } else { + $Entries = @($BlockListObject.entries -split '[,;]' | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | ForEach-Object { $_.Trim() }) + } + foreach ($Tenant in $Tenants) { + try { + $ExoRequest = @{ + tenantid = $Tenant + cmdlet = 'New-TenantAllowBlockListItems' + cmdParams = @{ + Entries = $Entries + ListType = [string]$BlockListObject.listType + Notes = [string]$BlockListObject.notes + $BlockListObject.listMethod = [bool]$true + } + } + + if ($BlockListObject.NoExpiration -eq $true) { + $ExoRequest.cmdParams.NoExpiration = $true + } elseif ($BlockListObject.RemoveAfter -eq $true) { + $ExoRequest.cmdParams.RemoveAfter = 45 + } + + New-ExoRequest @ExoRequest + $Result = "Successfully added $($BlockListObject.Entries) as type $($BlockListObject.ListType) to the $($BlockListObject.listMethod) list for $tenant" + $Results.Add($Result) + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message $Result -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create blocklist. Error: $($ErrorMessage.NormalizedError)" + $Results.Add($Result) + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message $Result -Sev 'Error' -LogData $ErrorMessage + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + 'Results' = $Results + 'Request' = $ExoRequest + } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditAntiPhishingFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditAntiPhishingFilter.ps1 new file mode 100644 index 000000000000..f8fe23dadea5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditAntiPhishingFilter.ps1 @@ -0,0 +1,56 @@ +function Invoke-EditAntiPhishingFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $RuleName = $Request.Query.RuleName ?? $Request.Body.RuleName + $State = $Request.Query.State ?? $Request.Body.State + + try { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdParams = @{ + Identity = $RuleName + } + useSystemMailbox = $true + } + + switch ($State) { + 'Enable' { + $ExoRequestParam.Add('cmdlet', 'Enable-AntiPhishRule') + } + 'Disable' { + $ExoRequestParam.Add('cmdlet', 'Disable-AntiPhishRule') + } + default { + throw 'Invalid state' + } + } + $null = New-ExoRequest @ExoRequestParam + + $Result = "Successfully set Anti-Phishing rule $RuleName to $State" + Write-LogMessage -headers $Headers -API $APINAME -tenant $TenantFilter -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed setting Anti-Phishing rule $RuleName to $State. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APINAME -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditMalwareFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditMalwareFilter.ps1 new file mode 100644 index 000000000000..abb210506e71 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditMalwareFilter.ps1 @@ -0,0 +1,56 @@ +function Invoke-EditMalwareFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $RuleName = $Request.Query.RuleName ?? $Request.Body.RuleName + $State = $Request.Query.State ?? $Request.Body.State + + try { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdParams = @{ + Identity = $RuleName + } + useSystemMailbox = $true + } + + switch ($State) { + 'Enable' { + $ExoRequestParam.Add('cmdlet', 'Enable-MalwareFilterRule') + } + 'Disable' { + $ExoRequestParam.Add('cmdlet', 'Disable-MalwareFilterRule') + } + default { + throw 'Invalid state' + } + } + $null = New-ExoRequest @ExoRequestParam + + $Result = "Successfully set Malware Filter rule $($RuleName) to $($State)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed setting Malware Filter rule $($RuleName) to $($State). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditQuarantinePolicy.ps1 new file mode 100644 index 000000000000..78fd2caad2d6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditQuarantinePolicy.ps1 @@ -0,0 +1,76 @@ +Function Invoke-EditQuarantinePolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Spamfilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter + + if ($Request.Query.Type -eq "GlobalQuarantinePolicy") { + + $Frequency = $Request.Body.EndUserSpamNotificationFrequency.value ?? $Request.Body.EndUserSpamNotificationFrequency + # If request EndUserSpamNotificationFrequency it not set to a ISO 8601 timeformat, convert it to one. + # This happens if the user doesn't change the Notification Frequency value in the UI. Because of a "bug" with setDefaultValue function with the cippApiDialog, where "label" is set to both label and value. + $EndUserSpamNotificationFrequency = switch ($Frequency) { + "4 Hours" { "PT4H" } + "Daily" { "P1D" } + "Weekly" { "P7D" } + Default { $Frequency } + } + + $Params = @{ + Identity = $Request.Body.Identity + # Convert the requested frequency from ISO 8601 to a TimeSpan object + EndUserSpamNotificationFrequency = [System.Xml.XmlConvert]::ToTimeSpan($EndUserSpamNotificationFrequency) + EndUserSpamNotificationCustomFromAddress = $Request.Body.EndUserSpamNotificationCustomFromAddress + OrganizationBrandingEnabled = $Request.Body.OrganizationBrandingEnabled + } + } + else { + $ReleaseActionPreference = $Request.Body.ReleaseActionPreference.value ?? $Request.Body.ReleaseActionPreference + + $EndUserQuarantinePermissions = @{ + PermissionToBlockSender = $Request.Body.BlockSender + PermissionToDelete = $Request.Body.Delete + PermissionToPreview = $Request.Body.Preview + PermissionToRelease = $ReleaseActionPreference -eq "Release" ? $true : $false + PermissionToRequestRelease = $ReleaseActionPreference -eq "RequestRelease" ? $true : $false + PermissionToAllowSender = $Request.Body.AllowSender + } + + $Params = @{ + Identity = $Request.Body.Identity + EndUserQuarantinePermissions = $EndUserQuarantinePermissions + ESNEnabled = $Request.Body.QuarantineNotification + IncludeMessagesFromBlockedSenderAddress = $Request.Body.IncludeMessagesFromBlockedSenderAddress + action = $Request.Body.Action ?? "Set" + } + } + + try { + Set-CIPPQuarantinePolicy @Params -tenantFilter $TenantFilter -APIName $APIName + + $Result = "Updated Quarantine policy '$($Request.Body.Name)'" + $StatusCode = [HttpStatusCode]::OK + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + } + catch { + $Result = "Failed to update Quarantine policy '$($Request.Body.Name)' - $($_)" + $StatusCode = [HttpStatusCode]::Forbidden + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSafeAttachmentsFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSafeAttachmentsFilter.ps1 new file mode 100644 index 000000000000..9f34e4b143a3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSafeAttachmentsFilter.ps1 @@ -0,0 +1,56 @@ +function Invoke-EditSafeAttachmentsFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $RuleName = $Request.Query.RuleName ?? $Request.Body.RuleName + $State = $Request.Query.State ?? $Request.Body.State + + try { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdParams = @{ + Identity = $RuleName + } + useSystemMailbox = $true + } + + switch ($State) { + 'Enable' { + $ExoRequestParam.Add('cmdlet', 'Enable-SafeAttachmentRule') + } + 'Disable' { + $ExoRequestParam.Add('cmdlet', 'Disable-SafeAttachmentRule') + } + default { + throw 'Invalid state' + } + } + $null = New-ExoRequest @ExoRequestParam + + $Result = "Successfully set SafeAttachment rule $($RuleName) to $($State)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed setting SafeAttachment rule $($RuleName) to $($State). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSpamFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSpamFilter.ps1 new file mode 100644 index 000000000000..76cd97f27b90 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-EditSpamFilter.ps1 @@ -0,0 +1,36 @@ +Function Invoke-EditSpamFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $request.Query.tenantFilter + $Name = $Request.Query.name ?? $Request.Body.name + $State = $State ?? $Request.Body.state + + try { + $Params = @{ + Identity = $Name + } + $Cmdlet = if ($State -eq 'enable') { 'Enable-HostedContentFilterRule' } else { 'Disable-HostedContentFilterRule' } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $Cmdlet -cmdParams $Params -useSystemMailbox $true + $Result = "Set Spamfilter rule $($Name) to $($State)" + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed setting Spamfilter rule $($Name) to $($State). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ExecQuarantineManagement.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ExecQuarantineManagement.ps1 new file mode 100644 index 000000000000..575cd3a03806 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ExecQuarantineManagement.ps1 @@ -0,0 +1,37 @@ +function Invoke-ExecQuarantineManagement { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + # Interact with query parameters or the body of the request. + try { + $TenantFilter = $Request.Body.tenantFilter | Select-Object -First 1 + $params = @{ + AllowSender = [boolean]$Request.Body.AllowSender + ReleaseToAll = $true + ActionType = ($Request.Body.Type | Select-Object -First 1) + } + if ($Request.Body.Identity -is [string]) { + $params['Identity'] = $Request.Body.Identity + } else { + $params['Identities'] = $Request.Body.Identity + } + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Release-QuarantineMessage' -cmdParams $Params + $Results = [pscustomobject]@{'Results' = "Successfully processed $($Request.Body.Identity)" } + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Successfully processed Quarantine ID $($Request.Body.Identity)" -Sev 'Info' + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Quarantine Management failed: $($_.Exception.Message)" -Sev 'Error' -LogData $_ + $Results = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 new file mode 100644 index 000000000000..20b531f56a56 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilter.ps1 @@ -0,0 +1,26 @@ +function Invoke-ListConnectionFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.ConnectionFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $request.Query.tenantFilter + + try { + $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-HostedConnectionFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $Policies = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Policies) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilterTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilterTemplates.ps1 new file mode 100644 index 000000000000..6ae0ccc0e18e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListConnectionFilterTemplates.ps1 @@ -0,0 +1,30 @@ +Function Invoke-ListConnectionFilterTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.ConnectionFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'templates' + + #List new policies + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ConnectionfilterTemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $GUID = $_.RowKey + $data = $_.JSON | ConvertFrom-Json + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID + $data + } + + if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 new file mode 100644 index 000000000000..d785b015f940 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantine.ps1 @@ -0,0 +1,81 @@ +function Invoke-ListMailQuarantine { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-QuarantineMessage' -cmdParams @{ 'PageSize' = 1000 } | Select-Object -ExcludeProperty *data.type* + } else { + $Table = Get-CIPPTable -TableName cacheQuarantineMessages + $PartitionKey = 'QuarantineMessage' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Mail Quarantine - All Tenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'MailQuarantineOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListMailQuarantineAllTenants' + } + SkipLog = $true + } + $null = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Messages = $Rows + foreach ($message in $Messages) { + $messageObj = $message.QuarantineMessage | ConvertFrom-Json + $messageObj | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $message.Tenant -Force + $messageObj + } + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + if (!$body) { + $StatusCode = [HttpStatusCode]::OK + $body = [PSCustomObject]@{ + Results = @($GraphRequest | Where-Object -Property Identity -NE $null | Sort-Object -Property ReceivedTime -Descending ) + Metadata = $Metadata + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantineMessage.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantineMessage.ps1 new file mode 100644 index 000000000000..d83c59360755 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListMailQuarantineMessage.ps1 @@ -0,0 +1,34 @@ +function Invoke-ListMailQuarantineMessage { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $Identity = $Request.Query.Identity + + try { + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Export-QuarantineMessage' -cmdParams @{ 'Identity' = $Identity } + $EmlBase64 = $GraphRequest.Eml + $EmlContent = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($EmlBase64)) + $Body = @{ + 'Identity' = $Identity + 'Message' = $EmlContent + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $Body = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListQuarantinePolicy.ps1 new file mode 100644 index 000000000000..79ef6d2c172f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListQuarantinePolicy.ps1 @@ -0,0 +1,37 @@ +function Invoke-ListQuarantinePolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter ?? $Request.body.TenantFilter + $QuarantinePolicyType = $Request.Query.Type ?? 'QuarantinePolicy' + + $Policies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-QuarantinePolicy' -cmdParams @{QuarantinePolicyType=$QuarantinePolicyType} | Select-Object -Property * -ExcludeProperty *odata*, *data.type* + + if ($QuarantinePolicyType -eq 'QuarantinePolicy') { + # Convert the string EndUserQuarantinePermissions to individual properties + $Policies | ForEach-Object { + $Permissions = Convert-QuarantinePermissionsValue -InputObject $_.EndUserQuarantinePermissions + foreach ($Perm in $Permissions.GetEnumerator()) { + $_ | Add-Member -MemberType NoteProperty -Name ($Perm.Key -replace "PermissionTo", "" ) -Value $Perm.Value + } + } + + # "convert" to values display in the UI and Builtin used for filtering + $Policies = $Policies | Select-Object -Property *, + @{ Name = 'QuarantineNotification'; Expression = { $_.ESNEnabled -eq $true ? $true : $false} }, + @{ Name = 'ReleaseActionPreference'; Expression = { $_.Release -eq $true ? "Release" : "RequestRelease"} }, + @{ Name = 'Builtin'; Expression = { $_.Guid -eq "00000000-0000-0000-0000-000000000000" ? $true : $false} } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Policies) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamFilterTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamFilterTemplates.ps1 new file mode 100644 index 000000000000..2c2ec2be3037 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamFilterTemplates.ps1 @@ -0,0 +1,30 @@ +Function Invoke-ListSpamFilterTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'templates' + + #List new policies + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'SpamfilterTemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $GUID = $_.RowKey + $data = $_.JSON | ConvertFrom-Json + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID + $data + } + + if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamfilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamfilter.ps1 new file mode 100644 index 000000000000..34ac01d062bc --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-ListSpamfilter.ps1 @@ -0,0 +1,28 @@ +Function Invoke-ListSpamfilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Tenantfilter = $request.Query.tenantfilter + + try { + $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* + $RuleState = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* + $GraphRequest = $Policies | Select-Object *, @{l = 'ruleState'; e = { $name = $_.name; ($RuleState | Where-Object name -EQ $name).State } }, @{l = 'rulePrio'; e = { $name = $_.name; ($RuleState | Where-Object name -EQ $name).Priority } } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveConnectionfilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveConnectionfilterTemplate.ps1 new file mode 100644 index 000000000000..0d2ce06f4561 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveConnectionfilterTemplate.ps1 @@ -0,0 +1,38 @@ +Function Invoke-RemoveConnectionfilterTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.ConnectionFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $Request.body.ID + try { + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ConnectionfilterTemplate' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Connection Filter template with ID $($ID)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Connection Filter template with ID $ID. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveQuarantinePolicy.ps1 new file mode 100644 index 000000000000..816ef2401e89 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveQuarantinePolicy.ps1 @@ -0,0 +1,42 @@ +Function Invoke-RemoveQuarantinePolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Spamfilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter + $PolicyName = $Request.Query.Name ?? $Request.Body.Name + $Identity = $Request.Query.Identity ?? $Request.Body.Identity + + try { + $Params = @{ + Identity = ($Identity -eq "00000000-0000-0000-0000-000000000000" ? $PolicyName : $Identity) + } + + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-QuarantinePolicy' -cmdParams $Params -useSystemMailbox $true + + $Result = "Deleted Quarantine policy '$($PolicyName)'" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Quarantine policy '$($PolicyName)' - $($ErrorMessage.NormalizedError -replace '\|Microsoft.Exchange.Management.Tasks.ValidationException\|', '')" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + $StatusCode = [HttpStatusCode]::OK + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilter.ps1 new file mode 100644 index 000000000000..1c5e5e019b1a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilter.ps1 @@ -0,0 +1,40 @@ +Function Invoke-RemoveSpamfilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Spamfilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Query.tenantFilter + $Name = $Request.Query.name ?? $Request.Body.name + + + try { + $Params = @{ + Identity = $Name + } + $Cmdlet = 'Remove-HostedContentFilterRule' + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $Cmdlet -cmdParams $Params -useSystemMailbox $true + $Cmdlet = 'Remove-HostedContentFilterPolicy' + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $Cmdlet -cmdParams $Params -useSystemMailbox $true + $Result = "Deleted Spam filter rule $($Name)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete Spam filter rule $($Name) - $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilterTemplate.ps1 new file mode 100644 index 000000000000..4db800aeb494 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-RemoveSpamfilterTemplate.ps1 @@ -0,0 +1,38 @@ +Function Invoke-RemoveSpamfilterTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Spamfilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $Request.Body.ID + try { + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'SpamfilterTemplate' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Spamfilter template with ID $ID" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Spam filter Rule template $ID. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailTest.ps1 new file mode 100644 index 000000000000..b4d8e390b585 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailTest.ps1 @@ -0,0 +1,83 @@ +Function Invoke-ExecMailTest { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + try { + switch ($Request.Query.Action) { + 'CheckConfig' { + $GraphToken = Get-GraphToken -returnRefresh $true -SkipCache $true + $AccessTokenDetails = Read-JwtAccessDetails -Token $GraphToken.access_token + $Me = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/me?$select=displayName,userPrincipalName,proxyAddresses' -NoAuthCheck $true + if ($AccessTokenDetails.Scope -contains 'Mail.Read') { + $Message = 'Mail.Read - Delegated was found in the token scope.' + $HasMailRead = $true + } else { + $Message = 'Please add Mail.Read - Delegated to the API permissions for CIPP-SAM.' + $HasMailRead = $false + } + + if ($Me.proxyAddresses) { + $Emails = $Me.proxyAddresses | Select-Object @{n = 'Address'; exp = { ($_ -split ':')[1] } }, @{n = 'IsPrimary'; exp = { $_ -cmatch 'SMTP' } } + } else { + $Emails = @(@{ Address = $Me.userPrincipalName; IsPrimary = $true }) + } + + $Body = [PSCustomObject]@{ + Message = $Message + HasMailRead = $HasMailRead + MailUser = $Me.displayName + MailAddresses = @($Emails) + } + } + default { + $Messages = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/me/mailFolders/Inbox/messages?`$select=receivedDateTime,subject,sender,internetMessageHeaders,webLink" -NoAuthCheck $true + $Results = foreach ($Message in $Messages) { + if ($Message.receivedDateTime) { + $AuthResult = ($Message.internetMessageHeaders | Where-Object -Property name -EQ 'Authentication-Results').value + $AuthResult = $AuthResult -split ';\s*' + $AuthResult = $AuthResult | ForEach-Object { + if ($_ -match '^(?.+?)=\s*(?.+?)\s(?.+)$') { + [PSCustomObject]@{ + Name = $Matches.Name + Status = $Matches.Status + Info = $Matches.Info + } + } + } + [PSCustomObject]@{ + Received = $Message.receivedDateTime + Subject = $Message.subject + Sender = $Message.sender.emailAddress.name + From = $Message.sender.emailAddress.address + Link = $Message.webLink + Headers = $Message.internetMessageHeaders + AuthResult = $AuthResult + } + } + } + $Body = [PSCustomObject]@{ + Results = @($Results) + Metadata = [PSCustomObject]@{ + Count = ($Results | Measure-Object).Count + } + } + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::BadRequest + $Body = [PSCustomObject]@{ + Results = @($ErrorMessage) + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailboxRestore.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailboxRestore.ps1 new file mode 100644 index 000000000000..eebb3e554d11 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ExecMailboxRestore.ps1 @@ -0,0 +1,128 @@ +function Invoke-ExecMailboxRestore { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + Param($Request, $TriggerMetadata) + try { + $Action = $Request.Query.Action ?? $Request.Body.Action + $Identity = $Request.Query.Identity ?? $Request.Body.Identity + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.TenantFilter + + switch ($Action) { + 'Remove' { + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Remove-MailboxRestoreRequest' + cmdParams = @{ + Identity = $Identity + } + } + $SuccessMessage = 'Mailbox restore request removed successfully' + } + 'Resume' { + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Resume-MailboxRestoreRequest' + cmdParams = @{ + Identity = $Identity + } + } + $SuccessMessage = 'Mailbox restore request resumed successfully' + } + 'Suspend' { + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Suspend-MailboxRestoreRequest' + cmdParams = @{ + Identity = $Identity + } + } + $SuccessMessage = 'Mailbox restore request suspended successfully' + } + default { + $RequestName = $Request.Body.RequestName + $SourceMailbox = $Request.Body.SourceMailbox.value ?? $Request.Body.SourceMailbox + $TargetMailbox = $Request.Body.TargetMailbox.value ?? $Request.Body.TargetMailbox + + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'New-MailboxRestoreRequest' + cmdParams = @{ + Name = $RequestName + SourceMailbox = $SourceMailbox + TargetMailbox = $TargetMailbox + AllowLegacyDNMismatch = $true + } + } + if ($Request.Body.AssociatedMessagesCopyOption) { + $ExoRequest.cmdParams.AssociatedMessagesCopyOption = $Request.Body.AssociatedMessagesCopyOption.value + } + if ($Request.Body.ExcludeFolders) { + $ExoRequest.cmdParams.ExcludeFolders = $Request.Body.ExcludeFolders.value + } + if ($Request.Body.IncludeFolders) { + $ExoRequest.cmdParams.IncludeFolders = $Request.Body.IncludeFolders.value + } + if ($Request.Body.BatchName) { + $ExoRequest.cmdParams.BatchName = $Request.Body.BatchName + } + if ($Request.Body.CompletedRequestAgeLimit) { + $ExoRequest.cmdParams.CompletedRequestAgeLimit = $Request.Body.CompletedRequestAgeLimit + } + if ($Request.Body.ConflictResolutionOption) { + $ExoRequest.cmdParams.ConflictResolutionOption = $Request.Body.ConflictResolutionOption.value + } + if ($Request.Body.SourceRootFolder) { + $ExoRequest.cmdParams.SourceRootFolder = $Request.Body.SourceRootFolder + } + if ($Request.Body.TargetRootFolder) { + $ExoRequest.cmdParams.TargetRootFolder = $Request.Body.TargetRootFolder + } + if ($Request.Body.TargetType) { + $ExoRequest.cmdParams.TargetType = $Request.Body.TargetType.value + } + if ([int]$Request.Body.BadItemLimit -gt 0) { + $ExoRequest.cmdParams.BadItemLimit = $Request.Body.BadItemLimit + } + if ([int]$Request.Body.LargeItemLimit -gt 0) { + $ExoRequest.cmdParams.LargeItemLimit = $Request.Body.LargeItemLimit + } + if ($Request.Body.ExcludeDumpster) { + $ExoRequest.cmdParams.ExcludeDumpster = $Request.Body.ExcludeDumpster + } + if ($Request.Body.SourceIsArchive) { + $ExoRequest.cmdParams.SourceIsArchive = $Request.Body.SourceIsArchive + } + if ($Request.Body.TargetIsArchive) { + $ExoRequest.cmdParams.TargetIsArchive = $Request.Body.TargetIsArchive + } + + Write-Information ($ExoRequest | ConvertTo-Json) + $SuccessMessage = 'Mailbox restore request created successfully' + } + } + + $GraphRequest = New-ExoRequest @ExoRequest + + $Body = @{ + RestoreRequest = $GraphRequest + Results = @($SuccessMessage) + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::OK + $Body = @{ + RestoreRequest = $null + Results = @($ErrorMessage) + colour = 'danger' + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 new file mode 100644 index 000000000000..e0ec0e5407d0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListExoRequest.ps1 @@ -0,0 +1,104 @@ +function Invoke-ListExoRequest { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + param($Request, $TriggerMetadata) + try { + $AllowedVerbs = @( + 'Get' + 'Search' + ) + + $Cmdlet = $Request.Body.Cmdlet + $cmdParams = if ($Request.Body.cmdParams) { $Request.Body.cmdParams } else { [PSCustomObject]@{} } + $Verb = ($Cmdlet -split '-')[0] + + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + + $TenantFilter = $Request.Body.TenantFilter + $Tenants = Get-Tenants -IncludeErrors + $Tenant = $Tenants | Where-Object { $_.defaultDomainName -eq $TenantFilter -or $_.customerId -eq $TenantFilter } + if ($Tenant.customerId -in $AllowedTenants -or $AllowedTenants -eq 'AllTenants') { + if ($Request.Body.AvailableCmdlets) { + $ExoRequest = @{ + TenantID = $TenantFilter + AvailableCmdlets = $true + } + if ($Request.Body.AsApp -eq $true) { + $ExoRequest.AsApp = $true + } + if ($Request.Body.Compliance -eq $true) { + $ExoRequest.Compliance = $true + } + $Results = New-ExoRequest @ExoRequest + $Body = [PSCustomObject]@{ + Results = $Results | Select-Object @{ Name = 'Cmdlet'; Expression = { $_ } } + Metadata = @{ + Count = ($Results | Measure-Object).Count + } + } + } else { + if ($AllowedVerbs -notcontains $Verb) { + $Body = [pscustomobject]@{ + Results = "Invalid cmdlet: $Cmdlet" + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $Body + }) + return + } + $ExoParams = @{ + Cmdlet = $Cmdlet + cmdParams = $cmdParams + tenantid = $TenantFilter + } + + if ($Request.Body.Select) { + $ExoParams.Select = $Request.Body.Select + } + + if ($Request.Body.UseSystemMailbox -eq $true) { + $ExoParams.useSystemMailbox = $true + } + + if ($Request.Body.Anchor) { + $ExoParams.Anchor = $Request.Body.Anchor + } + + if ($Request.Body.Compliance -eq $true) { + $ExoParams.Compliance = $true + } + + if ($Request.Body.AsApp -eq $true) { + $ExoParams.AsApp = $true + } + + try { + $Results = New-ExoRequest @ExoParams + $Body = [pscustomobject]@{ + Results = $Results + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Body = [pscustomobject]@{ + Results = @(@{ Error = $ErrorMessage }) + } + } + } else { + $Body = [pscustomobject]@{ + Results = "Invalid tenant: $TenantFilter" + } + } + } + } catch { + Write-Information "ExoRequest Error: $($_.Exception.Message)" + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -InputObject $Body -Compress + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMailboxRestores.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMailboxRestores.ps1 new file mode 100644 index 000000000000..bb1dff0b0cfb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMailboxRestores.ps1 @@ -0,0 +1,44 @@ +function Invoke-ListMailboxRestores { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + if ([bool]$Request.Query.Statistics -eq $true -and $Request.Query.Identity) { + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Get-MailboxRestoreRequestStatistics' + cmdParams = @{ Identity = $Request.Query.Identity } + } + + if ([bool]$Request.Query.IncludeReport -eq $true) { + $ExoRequest.cmdParams.IncludeReport = $true + } + $GraphRequest = New-ExoRequest @ExoRequest + + } else { + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Get-MailboxRestoreRequest' + } + + $RestoreRequests = (New-ExoRequest @ExoRequest) + $GraphRequest = $RestoreRequests + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMessageTrace.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMessageTrace.ps1 new file mode 100644 index 000000000000..2822893a97ac --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Tools/Invoke-ListMessageTrace.ps1 @@ -0,0 +1,81 @@ +function Invoke-ListMessageTrace { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.TransportRule.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + try { + $TenantFilter = $Request.Body.tenantFilter + + if ($Request.Body.MessageId) { + $SearchParams = @{ 'MessageId' = $Request.Body.messageId } + } else { + $SearchParams = @{} + if ($Request.Body.days) { + $Days = $Request.Body.days + $SearchParams.StartDate = (Get-Date).AddDays(-$Days).ToUniversalTime().ToString('s') + $SearchParams.EndDate = (Get-Date).ToUniversalTime().ToString('s') + } else { + if ($Request.Body.startDate) { + if ($Request.Body.startDate -match '^\d+$') { + $SearchParams.StartDate = [DateTimeOffset]::FromUnixTimeSeconds([int64]$Request.Body.startDate).UtcDateTime.ToString('s') + } else { + $SearchParams.StartDate = [DateTime]::ParseExact($Request.Body.startDate, 'yyyy-MM-ddTHH:mm:ssZ', $null).ToUniversalTime().ToString('s') + } + } + if ($Request.Body.endDate) { + if ($Request.Body.endDate -match '^\d+$') { + $SearchParams.EndDate = [DateTimeOffset]::FromUnixTimeSeconds([int64]$Request.Body.endDate).UtcDateTime.ToString('s') + } else { + $SearchParams.EndDate = [DateTime]::ParseExact($Request.Body.endDate, 'yyyy-MM-ddTHH:mm:ssZ', $null).ToUniversalTime().ToString('s') + } + } + } + + if ($Request.Body.status) { + $SearchParams.Add('Status', $Request.Body.status.value) + } + if (![string]::IsNullOrEmpty($Request.Body.fromIP)) { + $SearchParams.Add('FromIP', $Request.Body.fromIP) + } + if (![string]::IsNullOrEmpty($Request.Body.toIP)) { + $SearchParams.Add('ToIP', $Request.Body.toIP) + } + } + + if ($Request.Body.recipient) { + $Searchparams.Add('RecipientAddress', $($Request.Body.recipient.value ?? $Request.Body.recipient)) + } + if ($Request.Body.sender) { + $Searchparams.Add('SenderAddress', $($Request.Body.sender.value ?? $Request.Body.sender)) + } + + $trace = if ($Request.Body.traceDetail) { + $CmdParams = @{ + MessageTraceId = $Request.Body.ID + RecipientAddress = $Request.Body.recipient + } + New-ExoRequest -TenantId $TenantFilter -Cmdlet 'Get-MessageTraceDetailV2' -CmdParams $CmdParams | Select-Object @{ Name = 'Date'; Expression = { $_.Date.ToString('u') } }, Event, Action, Detail + } else { + Write-Information ($SearchParams | ConvertTo-Json) + + New-ExoRequest -TenantId $TenantFilter -Cmdlet 'Get-MessageTraceV2' -CmdParams $SearchParams | Select-Object MessageTraceId, Status, Subject, RecipientAddress, SenderAddress, @{ Name = 'Received'; Expression = { $_.Received.ToString('u') } }, FromIP, ToIP + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($TenantFilter) -message 'Executed message trace' -Sev 'Info' + + } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($tenantfilter) -message "Failed executing messagetrace. Error: $($_.Exception.Message)" -Sev 'Error' + $trace = @{Status = "Failed to retrieve message trace $($_.Exception.Message)" } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($trace) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilter.ps1 new file mode 100644 index 000000000000..831d2de8801f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilter.ps1 @@ -0,0 +1,38 @@ +Function Invoke-AddConnectionFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.ConnectionFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $RequestParams = $Request.Body.PowerShellCommand | + ConvertFrom-Json | + Select-Object -Property *, @{Name = 'identity'; Expression = { $_.name } } -ExcludeProperty GUID, comments, name + + $Tenants = ($Request.Body.selectedTenants).value + $Result = foreach ($TenantFilter in $Tenants) { + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-HostedConnectionFilterPolicy' -cmdParams $RequestParams + "Successfully created Connection filter for $TenantFilter." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully created Connection filter for $TenantFilter." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Failed to create Connection Filter rule for $($TenantFilter): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to create connection filter rule for $($TenantFilter): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{Results = @($Result) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilterTemplate.ps1 new file mode 100644 index 000000000000..7b7709391e2e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddConnectionFilterTemplate.ps1 @@ -0,0 +1,53 @@ +function Invoke-AddConnectionFilterTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.ConnectionFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + Write-Host ($request | ConvertTo-Json -Compress) + + try { + $GUID = (New-Guid).GUID + $JSON = if ($request.body.PowerShellCommand) { + Write-Host 'PowerShellCommand' + $request.body.PowerShellCommand | ConvertFrom-Json + } else { + $GUID = (New-Guid).GUID + ([pscustomobject]$Request.body | Select-Object Name, EnableSafeList, IPAllowList , IPBlockList ) | ForEach-Object { + $NonEmptyProperties = $_.psobject.Properties | Where-Object { $null -ne $_.Value } | Select-Object -ExpandProperty Name + $_ | Select-Object -Property $NonEmptyProperties + } + } + $JSON = ($JSON | Select-Object @{n = 'name'; e = { $_.name } }, @{n = 'comments'; e = { $_.comments } }, * | ConvertTo-Json -Depth 10) + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$json" + RowKey = "$GUID" + PartitionKey = 'ConnectionfilterTemplate' + } + $Result = "Successfully created Connection Filter Template: $($Request.Body.name) with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Debug' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create Connection Filter Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 new file mode 100644 index 000000000000..6d0cae8a4d61 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddEditTransportRule.ps1 @@ -0,0 +1,632 @@ +function Invoke-AddEditTransportRule { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.TransportRule.ReadWrite + .DESCRIPTION + This function creates a new transport rule or edits an existing one (mail flow rule). + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + + if (!$TenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'TenantFilter is required' + }) + return + } + + # Extract basic rule settings from body + $Identity = $Request.Body.ruleId + $Name = $Request.Body.Name + $Priority = $Request.Body.Priority + $Comments = $Request.Body.Comments + $Mode = $Request.Body.Mode + $SetAuditSeverity = $Request.Body.SetAuditSeverity + $State = $Request.Body.State + $CmdletState = $Request.Body.State ?? $Request.Body.Enabled + $Enabled = $Request.Body.Enabled + $StopRuleProcessing = $Request.Body.StopRuleProcessing + $SenderAddressLocation = $Request.Body.SenderAddressLocation + $ActivationDate = $Request.Body.ActivationDate + $ExpiryDate = $Request.Body.ExpiryDate + + # Extract condition fields + $From = $Request.Body.From + $FromScope = $Request.Body.FromScope + $FromMemberOf = $Request.Body.FromMemberOf + $SentTo = $Request.Body.SentTo + $SentToScope = $Request.Body.SentToScope + $SentToMemberOf = $Request.Body.SentToMemberOf + $SubjectContainsWords = $Request.Body.SubjectContainsWords + $SubjectMatchesPatterns = $Request.Body.SubjectMatchesPatterns + $SubjectOrBodyContainsWords = $Request.Body.SubjectOrBodyContainsWords + $SubjectOrBodyMatchesPatterns = $Request.Body.SubjectOrBodyMatchesPatterns + $FromAddressContainsWords = $Request.Body.FromAddressContainsWords + $FromAddressMatchesPatterns = $Request.Body.FromAddressMatchesPatterns + $AttachmentContainsWords = $Request.Body.AttachmentContainsWords + $AttachmentMatchesPatterns = $Request.Body.AttachmentMatchesPatterns + $AttachmentExtensionMatchesWords = $Request.Body.AttachmentExtensionMatchesWords + $AttachmentSizeOver = $Request.Body.AttachmentSizeOver + $MessageSizeOver = $Request.Body.MessageSizeOver + $SCLOver = $Request.Body.SCLOver + $WithImportance = $Request.Body.WithImportance + $MessageTypeMatches = $Request.Body.MessageTypeMatches + $SenderDomainIs = $Request.Body.SenderDomainIs + $RecipientDomainIs = $Request.Body.RecipientDomainIs + $RecipientAddressContainsWords = $Request.Body.RecipientAddressContainsWords + $RecipientAddressMatchesPatterns = $Request.Body.RecipientAddressMatchesPatterns + $AnyOfRecipientAddressContainsWords = $Request.Body.AnyOfRecipientAddressContainsWords + $AnyOfRecipientAddressMatchesPatterns = $Request.Body.AnyOfRecipientAddressMatchesPatterns + $AnyOfToHeader = $Request.Body.AnyOfToHeader + $AnyOfToHeaderMemberOf = $Request.Body.AnyOfToHeaderMemberOf + $AnyOfCcHeader = $Request.Body.AnyOfCcHeader + $AnyOfCcHeaderMemberOf = $Request.Body.AnyOfCcHeaderMemberOf + $AnyOfToCcHeader = $Request.Body.AnyOfToCcHeader + $AnyOfToCcHeaderMemberOf = $Request.Body.AnyOfToCcHeaderMemberOf + $HeaderContainsWords = $Request.Body.HeaderContainsWords + $HeaderContainsWordsMessageHeader = $Request.Body.HeaderContainsWordsMessageHeader + $HeaderMatchesPatterns = $Request.Body.HeaderMatchesPatterns + $HeaderMatchesPatternsMessageHeader = $Request.Body.HeaderMatchesPatternsMessageHeader + $SenderIpRanges = $Request.Body.SenderIpRanges + + # Extract action fields + $DeleteMessage = $Request.Body.DeleteMessage + $Quarantine = $Request.Body.Quarantine + $RedirectMessageTo = $Request.Body.RedirectMessageTo + $BlindCopyTo = $Request.Body.BlindCopyTo + $CopyTo = $Request.Body.CopyTo + $ModerateMessageByUser = $Request.Body.ModerateMessageByUser + $ModerateMessageByManager = $Request.Body.ModerateMessageByManager + $RejectMessageReasonText = $Request.Body.RejectMessageReasonText + $RejectMessageEnhancedStatusCode = $Request.Body.RejectMessageEnhancedStatusCode + $PrependSubject = $Request.Body.PrependSubject + $SetSCL = $Request.Body.SetSCL + $SetHeaderName = $Request.Body.SetHeaderName + $SetHeaderValue = $Request.Body.SetHeaderValue + $RemoveHeader = $Request.Body.RemoveHeader + $ApplyClassification = $Request.Body.ApplyClassification + $ApplyHtmlDisclaimerText = $Request.Body.ApplyHtmlDisclaimerText + $ApplyHtmlDisclaimerLocation = $Request.Body.ApplyHtmlDisclaimerLocation + $ApplyHtmlDisclaimerFallbackAction = $Request.Body.ApplyHtmlDisclaimerFallbackAction + $GenerateIncidentReport = $Request.Body.GenerateIncidentReport + $GenerateNotification = $Request.Body.GenerateNotification + $ApplyOME = $Request.Body.ApplyOME + + # Extract exception fields (ExceptIf versions) + $ExceptIfFrom = $Request.Body.ExceptIfFrom + $ExceptIfFromScope = $Request.Body.ExceptIfFromScope + $ExceptIfFromMemberOf = $Request.Body.ExceptIfFromMemberOf + $ExceptIfSentTo = $Request.Body.ExceptIfSentTo + $ExceptIfSentToScope = $Request.Body.ExceptIfSentToScope + $ExceptIfSentToMemberOf = $Request.Body.ExceptIfSentToMemberOf + $ExceptIfSubjectContainsWords = $Request.Body.ExceptIfSubjectContainsWords + $ExceptIfSubjectMatchesPatterns = $Request.Body.ExceptIfSubjectMatchesPatterns + $ExceptIfSubjectOrBodyContainsWords = $Request.Body.ExceptIfSubjectOrBodyContainsWords + $ExceptIfSubjectOrBodyMatchesPatterns = $Request.Body.ExceptIfSubjectOrBodyMatchesPatterns + $ExceptIfFromAddressContainsWords = $Request.Body.ExceptIfFromAddressContainsWords + $ExceptIfFromAddressMatchesPatterns = $Request.Body.ExceptIfFromAddressMatchesPatterns + $ExceptIfAttachmentContainsWords = $Request.Body.ExceptIfAttachmentContainsWords + $ExceptIfAttachmentMatchesPatterns = $Request.Body.ExceptIfAttachmentMatchesPatterns + $ExceptIfAttachmentExtensionMatchesWords = $Request.Body.ExceptIfAttachmentExtensionMatchesWords + $ExceptIfAttachmentSizeOver = $Request.Body.ExceptIfAttachmentSizeOver + $ExceptIfMessageSizeOver = $Request.Body.ExceptIfMessageSizeOver + $ExceptIfSCLOver = $Request.Body.ExceptIfSCLOver + $ExceptIfWithImportance = $Request.Body.ExceptIfWithImportance + $ExceptIfMessageTypeMatches = $Request.Body.ExceptIfMessageTypeMatches + $ExceptIfSenderDomainIs = $Request.Body.ExceptIfSenderDomainIs + $ExceptIfRecipientDomainIs = $Request.Body.ExceptIfRecipientDomainIs + $ExceptIfRecipientAddressContainsWords = $Request.Body.ExceptIfRecipientAddressContainsWords + $ExceptIfRecipientAddressMatchesPatterns = $Request.Body.ExceptIfRecipientAddressMatchesPatterns + $ExceptIfAnyOfRecipientAddressContainsWords = $Request.Body.ExceptIfAnyOfRecipientAddressContainsWords + $ExceptIfAnyOfRecipientAddressMatchesPatterns = $Request.Body.ExceptIfAnyOfRecipientAddressMatchesPatterns + $ExceptIfAnyOfToHeader = $Request.Body.ExceptIfAnyOfToHeader + $ExceptIfAnyOfToHeaderMemberOf = $Request.Body.ExceptIfAnyOfToHeaderMemberOf + $ExceptIfAnyOfCcHeader = $Request.Body.ExceptIfAnyOfCcHeader + $ExceptIfAnyOfCcHeaderMemberOf = $Request.Body.ExceptIfAnyOfCcHeaderMemberOf + $ExceptIfAnyOfToCcHeader = $Request.Body.ExceptIfAnyOfToCcHeader + $ExceptIfAnyOfToCcHeaderMemberOf = $Request.Body.ExceptIfAnyOfToCcHeaderMemberOf + $ExceptIfHeaderContainsWords = $Request.Body.ExceptIfHeaderContainsWords + $ExceptIfHeaderContainsWordsMessageHeader = $Request.Body.ExceptIfHeaderContainsWordsMessageHeader + $ExceptIfHeaderMatchesPatterns = $Request.Body.ExceptIfHeaderMatchesPatterns + $ExceptIfHeaderMatchesPatternsMessageHeader = $Request.Body.ExceptIfHeaderMatchesPatternsMessageHeader + $ExceptIfSenderIpRanges = $Request.Body.ExceptIfSenderIpRanges + + # Helper function to process array fields + function Process-ArrayField { + param ( + [Parameter(Mandatory = $false)] + $Field + ) + + if ($null -eq $Field) { return @() } + + # If already an array, process each item + if ($Field -is [array]) { + $result = [System.Collections.ArrayList]@() + foreach ($item in $Field) { + if ($item -is [string]) { + $result.Add($item) | Out-Null + } elseif ($item -is [hashtable] -or $item -is [PSCustomObject]) { + # Extract value from object + if ($null -ne $item.value) { + $result.Add($item.value) | Out-Null + } elseif ($null -ne $item.userPrincipalName) { + $result.Add($item.userPrincipalName) | Out-Null + } elseif ($null -ne $item.id) { + $result.Add($item.id) | Out-Null + } else { + $result.Add($item.ToString()) | Out-Null + } + } else { + $result.Add($item.ToString()) | Out-Null + } + } + return $result.ToArray() + } + + # If it's a single object + if ($Field -is [hashtable] -or $Field -is [PSCustomObject]) { + if ($null -ne $Field.value) { return @($Field.value) } + if ($null -ne $Field.userPrincipalName) { return @($Field.userPrincipalName) } + if ($null -ne $Field.id) { return @($Field.id) } + } + + # If it's a string, return as an array with one item + if ($Field -is [string]) { + return @($Field) + } + + return @($Field) + } + + # Helper function to process comma-separated text fields into arrays + function Process-TextArrayField { + param ( + [Parameter(Mandatory = $false)] + $Field + ) + + if ($null -eq $Field -or $Field -eq '') { return @() } + + if ($Field -is [array]) { + return $Field + } + + if ($Field -is [string]) { + # Split by comma and trim whitespace + return ($Field -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }) + } + + return @($Field) + } + + # Convert state to bool when creating new rule + if ($State -eq "Disabled") { + $State = $false + } + + if ($State -eq "Enabled") { + $State = $true + } + + if ($Enabled -eq "Disabled") { + $State = $false + } + + if ($Enabled -eq "Enabled") { + $State = $true + } + + # Process array fields for recipients/users + $From = Process-ArrayField -Field $From + $FromMemberOf = Process-ArrayField -Field $FromMemberOf + $SentTo = Process-ArrayField -Field $SentTo + $SentToMemberOf = Process-ArrayField -Field $SentToMemberOf + $AnyOfToHeader = Process-ArrayField -Field $AnyOfToHeader + $AnyOfToHeaderMemberOf = Process-ArrayField -Field $AnyOfToHeaderMemberOf + $AnyOfCcHeader = Process-ArrayField -Field $AnyOfCcHeader + $AnyOfCcHeaderMemberOf = Process-ArrayField -Field $AnyOfCcHeaderMemberOf + $AnyOfToCcHeader = Process-ArrayField -Field $AnyOfToCcHeader + $AnyOfToCcHeaderMemberOf = Process-ArrayField -Field $AnyOfToCcHeaderMemberOf + $RedirectMessageTo = Process-ArrayField -Field $RedirectMessageTo + $BlindCopyTo = Process-ArrayField -Field $BlindCopyTo + $CopyTo = Process-ArrayField -Field $CopyTo + $ModerateMessageByUser = Process-ArrayField -Field $ModerateMessageByUser + $ExceptIfFrom = Process-ArrayField -Field $ExceptIfFrom + $ExceptIfFromMemberOf = Process-ArrayField -Field $ExceptIfFromMemberOf + $ExceptIfSentTo = Process-ArrayField -Field $ExceptIfSentTo + $ExceptIfSentToMemberOf = Process-ArrayField -Field $ExceptIfSentToMemberOf + $ExceptIfAnyOfToHeader = Process-ArrayField -Field $ExceptIfAnyOfToHeader + $ExceptIfAnyOfToHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfToHeaderMemberOf + $ExceptIfAnyOfCcHeader = Process-ArrayField -Field $ExceptIfAnyOfCcHeader + $ExceptIfAnyOfCcHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfCcHeaderMemberOf + $ExceptIfAnyOfToCcHeader = Process-ArrayField -Field $ExceptIfAnyOfToCcHeader + $ExceptIfAnyOfToCcHeaderMemberOf = Process-ArrayField -Field $ExceptIfAnyOfToCcHeaderMemberOf + $SenderDomainIs = Process-ArrayField -Field $SenderDomainIs + $RecipientDomainIs = Process-ArrayField -Field $RecipientDomainIs + $ExceptIfSenderDomainIs = Process-ArrayField -Field $ExceptIfSenderDomainIs + $ExceptIfRecipientDomainIs = Process-ArrayField -Field $ExceptIfRecipientDomainIs + + # Process text array fields (comma-separated strings) + $SubjectContainsWords = Process-TextArrayField -Field $SubjectContainsWords + $SubjectMatchesPatterns = Process-TextArrayField -Field $SubjectMatchesPatterns + $SubjectOrBodyContainsWords = Process-TextArrayField -Field $SubjectOrBodyContainsWords + $SubjectOrBodyMatchesPatterns = Process-TextArrayField -Field $SubjectOrBodyMatchesPatterns + $FromAddressContainsWords = Process-TextArrayField -Field $FromAddressContainsWords + $FromAddressMatchesPatterns = Process-TextArrayField -Field $FromAddressMatchesPatterns + $AttachmentContainsWords = Process-TextArrayField -Field $AttachmentContainsWords + $AttachmentMatchesPatterns = Process-TextArrayField -Field $AttachmentMatchesPatterns + $AttachmentExtensionMatchesWords = Process-TextArrayField -Field $AttachmentExtensionMatchesWords + $RecipientAddressContainsWords = Process-TextArrayField -Field $RecipientAddressContainsWords + $RecipientAddressMatchesPatterns = Process-TextArrayField -Field $RecipientAddressMatchesPatterns + $AnyOfRecipientAddressContainsWords = Process-TextArrayField -Field $AnyOfRecipientAddressContainsWords + $AnyOfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $AnyOfRecipientAddressMatchesPatterns + $HeaderContainsWords = Process-TextArrayField -Field $HeaderContainsWords + $HeaderMatchesPatterns = Process-TextArrayField -Field $HeaderMatchesPatterns + + # Process exception text array fields + $ExceptIfSubjectContainsWords = Process-TextArrayField -Field $ExceptIfSubjectContainsWords + $ExceptIfSubjectMatchesPatterns = Process-TextArrayField -Field $ExceptIfSubjectMatchesPatterns + $ExceptIfSubjectOrBodyContainsWords = Process-TextArrayField -Field $ExceptIfSubjectOrBodyContainsWords + $ExceptIfSubjectOrBodyMatchesPatterns = Process-TextArrayField -Field $ExceptIfSubjectOrBodyMatchesPatterns + $ExceptIfFromAddressContainsWords = Process-TextArrayField -Field $ExceptIfFromAddressContainsWords + $ExceptIfFromAddressMatchesPatterns = Process-TextArrayField -Field $ExceptIfFromAddressMatchesPatterns + $ExceptIfAttachmentContainsWords = Process-TextArrayField -Field $ExceptIfAttachmentContainsWords + $ExceptIfAttachmentMatchesPatterns = Process-TextArrayField -Field $ExceptIfAttachmentMatchesPatterns + $ExceptIfAttachmentExtensionMatchesWords = Process-TextArrayField -Field $ExceptIfAttachmentExtensionMatchesWords + $ExceptIfRecipientAddressContainsWords = Process-TextArrayField -Field $ExceptIfRecipientAddressContainsWords + $ExceptIfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $ExceptIfRecipientAddressMatchesPatterns + $ExceptIfAnyOfRecipientAddressContainsWords = Process-TextArrayField -Field $ExceptIfAnyOfRecipientAddressContainsWords + $ExceptIfAnyOfRecipientAddressMatchesPatterns = Process-TextArrayField -Field $ExceptIfAnyOfRecipientAddressMatchesPatterns + $ExceptIfHeaderContainsWords = Process-TextArrayField -Field $ExceptIfHeaderContainsWords + $ExceptIfHeaderMatchesPatterns = Process-TextArrayField -Field $ExceptIfHeaderMatchesPatterns + + # Process IP range fields + $SenderIpRanges = Process-TextArrayField -Field $SenderIpRanges + $ExceptIfSenderIpRanges = Process-TextArrayField -Field $ExceptIfSenderIpRanges + + try { + # Build command parameters for transport rule + $ruleParams = @{ + Name = $Name + } + + # If editing existing rule add Identity + if ($null -ne $Identity) { $ruleParams.Add('Identity', $Identity) } + + # State uses a different cmdlet for updating an existing rule so extract the required data to enable or disable it + $CmdletState = if ($CmdletState -eq 'Enabled') { 'Enable-TransportRule' } else { 'Disable-TransportRule' } + + # Basic parameters + if (($null -ne $State) -and (!$Identity)) { $ruleParams.Add('Enabled', $State) } + if ($null -ne $Priority) { $ruleParams.Add('Priority', $Priority) } + if ($null -ne $Comments) { $ruleParams.Add('Comments', $Comments) } + if ($null -ne $Mode) { + $modeValue = if ($Mode.value) { $Mode.value } else { $Mode } + $ruleParams.Add('Mode', $modeValue) + } + if ($null -ne $SetAuditSeverity) { + $severityValue = if ($SetAuditSeverity.value) { $SetAuditSeverity.value } else { $SetAuditSeverity } + if ($severityValue -ne '') { + $ruleParams.Add('SetAuditSeverity', $severityValue) + } + } + if ($null -ne $StopRuleProcessing) { $ruleParams.Add('StopRuleProcessing', $StopRuleProcessing) } + if ($null -ne $SenderAddressLocation) { + $locationValue = if ($SenderAddressLocation.value) { $SenderAddressLocation.value } else { $SenderAddressLocation } + $ruleParams.Add('SenderAddressLocation', $locationValue) + } + if ($null -ne $ActivationDate -and $ActivationDate -ne '') { $ruleParams.Add('ActivationDate', $ActivationDate) } + if ($null -ne $ExpiryDate -and $ExpiryDate -ne '') { $ruleParams.Add('ExpiryDate', $ExpiryDate) } + + # Condition parameters + if ($null -ne $From -and $From.Count -gt 0) { $ruleParams.Add('From', $From) } + if ($null -ne $FromScope) { + $fromScopeValue = if ($FromScope.value) { $FromScope.value } else { $FromScope } + $ruleParams.Add('FromScope', $fromScopeValue) + } + if ($null -ne $FromMemberOf -and $FromMemberOf.Count -gt 0) { $ruleParams.Add('FromMemberOf', $FromMemberOf) } + if ($null -ne $SentTo -and $SentTo.Count -gt 0) { $ruleParams.Add('SentTo', $SentTo) } + if ($null -ne $SentToScope) { + $sentToScopeValue = if ($SentToScope.value) { $SentToScope.value } else { $SentToScope } + $ruleParams.Add('SentToScope', $sentToScopeValue) + } + if ($null -ne $SentToMemberOf -and $SentToMemberOf.Count -gt 0) { $ruleParams.Add('SentToMemberOf', $SentToMemberOf) } + if ($null -ne $SubjectContainsWords -and $SubjectContainsWords.Count -gt 0) { + $ruleParams.Add('SubjectContainsWords', $SubjectContainsWords) + } + if ($null -ne $SubjectMatchesPatterns -and $SubjectMatchesPatterns.Count -gt 0) { + $ruleParams.Add('SubjectMatchesPatterns', $SubjectMatchesPatterns) + } + if ($null -ne $SubjectOrBodyContainsWords -and $SubjectOrBodyContainsWords.Count -gt 0) { + $ruleParams.Add('SubjectOrBodyContainsWords', $SubjectOrBodyContainsWords) + } + if ($null -ne $SubjectOrBodyMatchesPatterns -and $SubjectOrBodyMatchesPatterns.Count -gt 0) { + $ruleParams.Add('SubjectOrBodyMatchesPatterns', $SubjectOrBodyMatchesPatterns) + } + if ($null -ne $FromAddressContainsWords -and $FromAddressContainsWords.Count -gt 0) { + $ruleParams.Add('FromAddressContainsWords', $FromAddressContainsWords) + } + if ($null -ne $FromAddressMatchesPatterns -and $FromAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('FromAddressMatchesPatterns', $FromAddressMatchesPatterns) + } + if ($null -ne $AttachmentContainsWords -and $AttachmentContainsWords.Count -gt 0) { + $ruleParams.Add('AttachmentContainsWords', $AttachmentContainsWords) + } + if ($null -ne $AttachmentMatchesPatterns -and $AttachmentMatchesPatterns.Count -gt 0) { + $ruleParams.Add('AttachmentMatchesPatterns', $AttachmentMatchesPatterns) + } + if ($null -ne $AttachmentExtensionMatchesWords -and $AttachmentExtensionMatchesWords.Count -gt 0) { + $ruleParams.Add('AttachmentExtensionMatchesWords', $AttachmentExtensionMatchesWords) + } + if ($null -ne $AttachmentSizeOver) { $ruleParams.Add('AttachmentSizeOver', $AttachmentSizeOver) } + if ($null -ne $MessageSizeOver) { $ruleParams.Add('MessageSizeOver', $MessageSizeOver) } + if ($null -ne $SCLOver) { + $sclValue = if ($SCLOver.value) { $SCLOver.value } else { $SCLOver } + $ruleParams.Add('SCLOver', $sclValue) + } + if ($null -ne $WithImportance) { + $importanceValue = if ($WithImportance.value) { $WithImportance.value } else { $WithImportance } + $ruleParams.Add('WithImportance', $importanceValue) + } + if ($null -ne $MessageTypeMatches) { + $messageTypeValue = if ($MessageTypeMatches.value) { $MessageTypeMatches.value } else { $MessageTypeMatches } + $ruleParams.Add('MessageTypeMatches', $messageTypeValue) + } + if ($null -ne $SenderDomainIs -and $SenderDomainIs.Count -gt 0) { + $ruleParams.Add('SenderDomainIs', $SenderDomainIs) + } + if ($null -ne $RecipientDomainIs -and $RecipientDomainIs.Count -gt 0) { + $ruleParams.Add('RecipientDomainIs', $RecipientDomainIs) + } + if ($null -ne $RecipientAddressContainsWords -and $RecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('RecipientAddressContainsWords', $RecipientAddressContainsWords) + } + if ($null -ne $RecipientAddressMatchesPatterns -and $RecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('RecipientAddressMatchesPatterns', $RecipientAddressMatchesPatterns) + } + if ($null -ne $AnyOfRecipientAddressContainsWords -and $AnyOfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('AnyOfRecipientAddressContainsWords', $AnyOfRecipientAddressContainsWords) + } + if ($null -ne $AnyOfRecipientAddressMatchesPatterns -and $AnyOfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('AnyOfRecipientAddressMatchesPatterns', $AnyOfRecipientAddressMatchesPatterns) + } + if ($null -ne $AnyOfToHeader -and $AnyOfToHeader.Count -gt 0) { + $ruleParams.Add('AnyOfToHeader', $AnyOfToHeader) + } + if ($null -ne $AnyOfToHeaderMemberOf -and $AnyOfToHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfToHeaderMemberOf', $AnyOfToHeaderMemberOf) + } + if ($null -ne $AnyOfCcHeader -and $AnyOfCcHeader.Count -gt 0) { + $ruleParams.Add('AnyOfCcHeader', $AnyOfCcHeader) + } + if ($null -ne $AnyOfCcHeaderMemberOf -and $AnyOfCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfCcHeaderMemberOf', $AnyOfCcHeaderMemberOf) + } + if ($null -ne $AnyOfToCcHeader -and $AnyOfToCcHeader.Count -gt 0) { + $ruleParams.Add('AnyOfToCcHeader', $AnyOfToCcHeader) + } + if ($null -ne $AnyOfToCcHeaderMemberOf -and $AnyOfToCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('AnyOfToCcHeaderMemberOf', $AnyOfToCcHeaderMemberOf) + } + if ($null -ne $HeaderContainsWords -and $HeaderContainsWords.Count -gt 0 -and $null -ne $HeaderContainsWordsMessageHeader) { + $ruleParams.Add('HeaderContainsMessageHeader', $HeaderContainsWordsMessageHeader) + $ruleParams.Add('HeaderContainsWords', $HeaderContainsWords) + } + if ($null -ne $HeaderMatchesPatterns -and $HeaderMatchesPatterns.Count -gt 0 -and $null -ne $HeaderMatchesPatternsMessageHeader) { + $ruleParams.Add('HeaderMatchesMessageHeader', $HeaderMatchesPatternsMessageHeader) + $ruleParams.Add('HeaderMatchesPatterns', $HeaderMatchesPatterns) + } + if ($null -ne $SenderIpRanges -and $SenderIpRanges.Count -gt 0) { + $ruleParams.Add('SenderIpRanges', $SenderIpRanges) + } + + # Action parameters + if ($null -ne $DeleteMessage) { $ruleParams.Add('DeleteMessage', $DeleteMessage) } + if ($null -ne $Quarantine) { $ruleParams.Add('Quarantine', $Quarantine) } + if ($null -ne $RedirectMessageTo -and $RedirectMessageTo.Count -gt 0) { + $ruleParams.Add('RedirectMessageTo', $RedirectMessageTo) + } + if ($null -ne $BlindCopyTo -and $BlindCopyTo.Count -gt 0) { $ruleParams.Add('BlindCopyTo', $BlindCopyTo) } + if ($null -ne $CopyTo -and $CopyTo.Count -gt 0) { $ruleParams.Add('CopyTo', $CopyTo) } + if ($null -ne $ModerateMessageByUser -and $ModerateMessageByUser.Count -gt 0) { + $ruleParams.Add('ModerateMessageByUser', $ModerateMessageByUser) + } + if ($null -ne $ModerateMessageByManager) { $ruleParams.Add('ModerateMessageByManager', $ModerateMessageByManager) } + if ($null -ne $RejectMessageReasonText -and $RejectMessageReasonText -ne '') { + $ruleParams.Add('RejectMessageReasonText', $RejectMessageReasonText) + } + if ($null -ne $RejectMessageEnhancedStatusCode -and $RejectMessageEnhancedStatusCode -ne '') { + $ruleParams.Add('RejectMessageEnhancedStatusCode', $RejectMessageEnhancedStatusCode) + } + if ($null -ne $PrependSubject -and $PrependSubject -ne '') { $ruleParams.Add('PrependSubject', $PrependSubject) } + if ($null -ne $SetSCL) { + $setSclValue = if ($SetSCL.value) { $SetSCL.value } else { $SetSCL } + $ruleParams.Add('SetSCL', $setSclValue) + } + if ($null -ne $SetHeaderName -and $SetHeaderName -ne '' -and $null -ne $SetHeaderValue) { + $ruleParams.Add('SetHeaderName', $SetHeaderName) + $ruleParams.Add('SetHeaderValue', $SetHeaderValue) + } + if ($null -ne $RemoveHeader -and $RemoveHeader -ne '') { $ruleParams.Add('RemoveHeader', $RemoveHeader) } + if ($null -ne $ApplyClassification -and $ApplyClassification -ne '') { + $ruleParams.Add('ApplyClassification', $ApplyClassification) + } + if ($null -ne $ApplyHtmlDisclaimerText -and $ApplyHtmlDisclaimerText -ne '') { + $ruleParams.Add('ApplyHtmlDisclaimerText', $ApplyHtmlDisclaimerText) + if ($null -ne $ApplyHtmlDisclaimerLocation) { + $disclaimerLocationValue = if ($ApplyHtmlDisclaimerLocation.value) { $ApplyHtmlDisclaimerLocation.value } else { $ApplyHtmlDisclaimerLocation } + $ruleParams.Add('ApplyHtmlDisclaimerLocation', $disclaimerLocationValue) + } + if ($null -ne $ApplyHtmlDisclaimerFallbackAction) { + $disclaimerFallbackValue = if ($ApplyHtmlDisclaimerFallbackAction.value) { $ApplyHtmlDisclaimerFallbackAction.value } else { $ApplyHtmlDisclaimerFallbackAction } + $ruleParams.Add('ApplyHtmlDisclaimerFallbackAction', $disclaimerFallbackValue) + } + } + if ($null -ne $GenerateIncidentReport -and $GenerateIncidentReport.Count -gt 0) { + $ruleParams.Add('GenerateIncidentReport', $GenerateIncidentReport) + } + if ($null -ne $GenerateNotification -and $GenerateNotification -ne '') { + $ruleParams.Add('GenerateNotification', $GenerateNotification) + } + if ($null -ne $ApplyOME) { $ruleParams.Add('ApplyOME', $ApplyOME) } + + # Exception parameters (ExceptIf versions) + if ($null -ne $ExceptIfFrom -and $ExceptIfFrom.Count -gt 0) { $ruleParams.Add('ExceptIfFrom', $ExceptIfFrom) } + if ($null -ne $ExceptIfFromScope) { + $exceptFromScopeValue = if ($ExceptIfFromScope.value) { $ExceptIfFromScope.value } else { $ExceptIfFromScope } + $ruleParams.Add('ExceptIfFromScope', $exceptFromScopeValue) + } + if ($null -ne $ExceptIfFromMemberOf -and $ExceptIfFromMemberOf.Count -gt 0) { $ruleParams.Add('ExceptIfFromMemberOf', $ExceptIfFromMemberOf) } + if ($null -ne $ExceptIfSentTo -and $ExceptIfSentTo.Count -gt 0) { $ruleParams.Add('ExceptIfSentTo', $ExceptIfSentTo) } + if ($null -ne $ExceptIfSentToScope) { + $exceptSentToScopeValue = if ($ExceptIfSentToScope.value) { $ExceptIfSentToScope.value } else { $ExceptIfSentToScope } + $ruleParams.Add('ExceptIfSentToScope', $exceptSentToScopeValue) + } + if ($null -ne $ExceptIfSentToMemberOf -and $ExceptIfSentToMemberOf.Count -gt 0) { $ruleParams.Add('ExceptIfSentToMemberOf', $ExceptIfSentToMemberOf) } + if ($null -ne $ExceptIfSubjectContainsWords -and $ExceptIfSubjectContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfSubjectContainsWords', $ExceptIfSubjectContainsWords) + } + if ($null -ne $ExceptIfSubjectMatchesPatterns -and $ExceptIfSubjectMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfSubjectMatchesPatterns', $ExceptIfSubjectMatchesPatterns) + } + if ($null -ne $ExceptIfSubjectOrBodyContainsWords -and $ExceptIfSubjectOrBodyContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfSubjectOrBodyContainsWords', $ExceptIfSubjectOrBodyContainsWords) + } + if ($null -ne $ExceptIfSubjectOrBodyMatchesPatterns -and $ExceptIfSubjectOrBodyMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfSubjectOrBodyMatchesPatterns', $ExceptIfSubjectOrBodyMatchesPatterns) + } + if ($null -ne $ExceptIfFromAddressContainsWords -and $ExceptIfFromAddressContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfFromAddressContainsWords', $ExceptIfFromAddressContainsWords) + } + if ($null -ne $ExceptIfFromAddressMatchesPatterns -and $ExceptIfFromAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfFromAddressMatchesPatterns', $ExceptIfFromAddressMatchesPatterns) + } + if ($null -ne $ExceptIfAttachmentContainsWords -and $ExceptIfAttachmentContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfAttachmentContainsWords', $ExceptIfAttachmentContainsWords) + } + if ($null -ne $ExceptIfAttachmentMatchesPatterns -and $ExceptIfAttachmentMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfAttachmentMatchesPatterns', $ExceptIfAttachmentMatchesPatterns) + } + if ($null -ne $ExceptIfAttachmentExtensionMatchesWords -and $ExceptIfAttachmentExtensionMatchesWords.Count -gt 0) { + $ruleParams.Add('ExceptIfAttachmentExtensionMatchesWords', $ExceptIfAttachmentExtensionMatchesWords) + } + if ($null -ne $ExceptIfAttachmentSizeOver) { + $ruleParams.Add('ExceptIfAttachmentSizeOver', $ExceptIfAttachmentSizeOver) + } + if ($null -ne $ExceptIfMessageSizeOver) { $ruleParams.Add('ExceptIfMessageSizeOver', $ExceptIfMessageSizeOver) } + if ($null -ne $ExceptIfSCLOver) { + $exceptSclValue = if ($ExceptIfSCLOver.value) { $ExceptIfSCLOver.value } else { $ExceptIfSCLOver } + $ruleParams.Add('ExceptIfSCLOver', $exceptSclValue) + } + if ($null -ne $ExceptIfWithImportance) { + $exceptImportanceValue = if ($ExceptIfWithImportance.value) { $ExceptIfWithImportance.value } else { $ExceptIfWithImportance } + $ruleParams.Add('ExceptIfWithImportance', $exceptImportanceValue) + } + if ($null -ne $ExceptIfMessageTypeMatches) { + $exceptMessageTypeValue = if ($ExceptIfMessageTypeMatches.value) { $ExceptIfMessageTypeMatches.value } else { $ExceptIfMessageTypeMatches } + $ruleParams.Add('ExceptIfMessageTypeMatches', $exceptMessageTypeValue) + } + if ($null -ne $ExceptIfSenderDomainIs -and $ExceptIfSenderDomainIs.Count -gt 0) { + $ruleParams.Add('ExceptIfSenderDomainIs', $ExceptIfSenderDomainIs) + } + if ($null -ne $ExceptIfRecipientDomainIs -and $ExceptIfRecipientDomainIs.Count -gt 0) { + $ruleParams.Add('ExceptIfRecipientDomainIs', $ExceptIfRecipientDomainIs) + } + if ($null -ne $ExceptIfRecipientAddressContainsWords -and $ExceptIfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfRecipientAddressContainsWords', $ExceptIfRecipientAddressContainsWords) + } + if ($null -ne $ExceptIfRecipientAddressMatchesPatterns -and $ExceptIfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfRecipientAddressMatchesPatterns', $ExceptIfRecipientAddressMatchesPatterns) + } + if ($null -ne $ExceptIfAnyOfRecipientAddressContainsWords -and $ExceptIfAnyOfRecipientAddressContainsWords.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfRecipientAddressContainsWords', $ExceptIfAnyOfRecipientAddressContainsWords) + } + if ($null -ne $ExceptIfAnyOfRecipientAddressMatchesPatterns -and $ExceptIfAnyOfRecipientAddressMatchesPatterns.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfRecipientAddressMatchesPatterns', $ExceptIfAnyOfRecipientAddressMatchesPatterns) + } + if ($null -ne $ExceptIfAnyOfToHeader -and $ExceptIfAnyOfToHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToHeader', $ExceptIfAnyOfToHeader) + } + if ($null -ne $ExceptIfAnyOfToHeaderMemberOf -and $ExceptIfAnyOfToHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToHeaderMemberOf', $ExceptIfAnyOfToHeaderMemberOf) + } + if ($null -ne $ExceptIfAnyOfCcHeader -and $ExceptIfAnyOfCcHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfCcHeader', $ExceptIfAnyOfCcHeader) + } + if ($null -ne $ExceptIfAnyOfCcHeaderMemberOf -and $ExceptIfAnyOfCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfCcHeaderMemberOf', $ExceptIfAnyOfCcHeaderMemberOf) + } + if ($null -ne $ExceptIfAnyOfToCcHeader -and $ExceptIfAnyOfToCcHeader.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToCcHeader', $ExceptIfAnyOfToCcHeader) + } + if ($null -ne $ExceptIfAnyOfToCcHeaderMemberOf -and $ExceptIfAnyOfToCcHeaderMemberOf.Count -gt 0) { + $ruleParams.Add('ExceptIfAnyOfToCcHeaderMemberOf', $ExceptIfAnyOfToCcHeaderMemberOf) + } + if ($null -ne $ExceptIfHeaderContainsWords -and $ExceptIfHeaderContainsWords.Count -gt 0 -and $null -ne $ExceptIfHeaderContainsWordsMessageHeader) { + $ruleParams.Add('ExceptIfHeaderContainsMessageHeader', $ExceptIfHeaderContainsWordsMessageHeader) + $ruleParams.Add('ExceptIfHeaderContainsWords', $ExceptIfHeaderContainsWords) + } + if ($null -ne $ExceptIfHeaderMatchesPatterns -and $ExceptIfHeaderMatchesPatterns.Count -gt 0 -and $null -ne $ExceptIfHeaderMatchesPatternsMessageHeader) { + $ruleParams.Add('ExceptIfHeaderMatchesMessageHeader', $ExceptIfHeaderMatchesPatternsMessageHeader) + $ruleParams.Add('ExceptIfHeaderMatchesPatterns', $ExceptIfHeaderMatchesPatterns) + } + if ($null -ne $ExceptIfSenderIpRanges -and $ExceptIfSenderIpRanges.Count -gt 0) { + $ruleParams.Add('ExceptIfSenderIpRanges', $ExceptIfSenderIpRanges) + } + + if (!$Identity) { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'New-TransportRule' + cmdParams = $ruleParams + useSystemMailbox = $true + } + $null = New-ExoRequest @ExoRequestParam + $Results = "Successfully created transport rule '$Name'" + } + else { + $ExoRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'Set-TransportRule' + cmdParams = $ruleParams + useSystemMailbox = $true + } + $ExoRequestState = @{ + tenantid = $TenantFilter + cmdlet = $CmdletState + cmdParams = @{ Identity = $Identity } + useSystemMailbox = $true + } + if ($Enabled) { + $null = New-ExoRequest @ExoRequestState + $Results = "Successfully $($Enabled) transport rule $($Name)" + } else { + $null = New-ExoRequest @ExoRequestParam + $null = New-ExoRequest @ExoRequestState + $Results = "Successfully configured transport rule '$Name'" + } + } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to configure transport rule '$Name'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnector.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnector.ps1 new file mode 100644 index 000000000000..5e3ca2d26e8d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnector.ps1 @@ -0,0 +1,46 @@ +function Invoke-AddExConnector { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.Connector.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + + $ConnectorType = ($Request.Body.PowerShellCommand | ConvertFrom-Json).cippConnectorType + $RequestParams = $Request.Body.PowerShellCommand | ConvertFrom-Json | Select-Object -Property * -ExcludeProperty GUID, cippConnectorType, SenderRewritingEnabled + if ($RequestParams.comment) { $RequestParams.comment = Get-CIPPTextReplacement -Text $RequestParams.comment -TenantFilter $Tenant } else { $RequestParams | Add-Member -NotePropertyValue 'no comment' -NotePropertyName comment -Force } + $Tenants = ($Request.Body.selectedTenants).value + + $AllowedTenants = Test-CippAccess -Request $Request -TenantList + + if ($AllowedTenants -ne 'AllTenants') { + $AllTenants = Get-Tenants -IncludeErrors + $AllowedTenantList = $AllTenants | Where-Object { $_.customerId -in $AllowedTenants } + $Tenants = $Tenants | Where-Object { $_ -in $AllowedTenantList.defaultDomainName } + } + + $Result = foreach ($TenantFilter in $Tenants) { + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet "New-$($ConnectorType)connector" -cmdParams $RequestParams + "Successfully created Connector for $TenantFilter." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully created Connector for $TenantFilter." -sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Could not create Connector for $($TenantFilter): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Could not create Connector for $($TenantFilter): $($ErrorMessage.NormalizedError)" -sev 'Error' + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{Results = @($Result) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnectorTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnectorTemplate.ps1 new file mode 100644 index 000000000000..1b5b965a5f84 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddExConnectorTemplate.ps1 @@ -0,0 +1,58 @@ +Function Invoke-AddExConnectorTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.Connector.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + Write-Host ($Request | ConvertTo-Json -Compress) + + try { + $GUID = (New-Guid).GUID + $Select = if ($Request.Body.cippconnectortype -eq 'outbound') { + @( + 'name', 'AllAcceptedDomains', 'CloudServicesMailEnabled', 'Comment', 'Confirm', 'ConnectorSource', 'ConnectorType', 'Enabled', 'IsTransportRuleScoped', 'RecipientDomains', 'RouteAllMessagesViaOnPremises', 'SmartHosts', 'TestMode', 'TlsDomain', 'TlsSettings', 'UseMXRecord' + ) + } else { + @( + 'name', 'SenderDomains', 'ConnectorSource', 'ConnectorType', 'EFSkipIPs', 'EFSkipLastIP', 'EFSkipMailGateway', 'EFTestMode', 'EFUsers', 'Enabled ', 'RequireTls', 'RestrictDomainsToCertificate', 'RestrictDomainsToIPAddresses', 'ScanAndDropRecipients', 'SenderIPAddresses', 'TlsSenderCertificateName', 'TreatMessagesAsInternal', 'TrustedOrganizations' + ) + } + + $JSON = ([pscustomobject]$Request.Body | Select-Object $Select) | ForEach-Object { + $NonEmptyProperties = $_.psobject.Properties | Where-Object { $null -ne $_.Value } | Select-Object -ExpandProperty Name + $_ | Select-Object -Property $NonEmptyProperties + } + $JSON = ($JSON | Select-Object @{n = 'name'; e = { $_.name } }, * | ConvertTo-Json -Depth 10) + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + direction = $Request.Body.cippconnectortype + PartitionKey = 'ExConnectorTemplate' + } + $Result = "Successfully created Connector Template: $($Request.Body.name) with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Debug' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create Connector Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportRule.ps1 new file mode 100644 index 000000000000..074642de5a8f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportRule.ps1 @@ -0,0 +1,57 @@ +function Invoke-AddTransportRule { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.TransportRule.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $ExecutingUser = $Request.Headers + Write-LogMessage -Headers $ExecutingUser -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + $RequestParams = $Request.Body.PowerShellCommand | ConvertFrom-Json | Select-Object -Property * -ExcludeProperty GUID, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications + + # Remove null properties from payload + $RequestParams.PSObject.Properties | Where-Object { $_.Value -eq $null } | ForEach-Object { $RequestParams.PSObject.Properties.Remove($_.Name) } + + $Tenants = ($Request.body.selectedTenants).value + + $AllowedTenants = Test-CippAccess -Request $Request -TenantList + + if ($AllowedTenants -ne 'AllTenants') { + $AllTenants = Get-Tenants -IncludeErrors + $AllowedTenantList = $AllTenants | Where-Object { $_.customerId -in $AllowedTenants } + $Tenants = $Tenants | Where-Object { $_ -in $AllowedTenantList.defaultDomainName } + } + + $Result = foreach ($tenantFilter in $tenants) { + $Existing = New-ExoRequest -ErrorAction SilentlyContinue -tenantid $tenantFilter -cmdlet 'Get-TransportRule' -useSystemMailbox $true | Where-Object -Property Identity -EQ $RequestParams.name + try { + if ($Existing) { + Write-Host 'Found existing' + $RequestParams | Add-Member -NotePropertyValue $Existing.Identity -NotePropertyName Identity -Force + $null = New-ExoRequest -tenantid $tenantFilter -cmdlet 'Set-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty UseLegacyRegex) -useSystemMailbox $true + "Successfully set transport rule for $tenantFilter." + } else { + Write-Host 'Creating new' + $null = New-ExoRequest -tenantid $tenantFilter -cmdlet 'New-TransportRule' -cmdParams $RequestParams -useSystemMailbox $true + "Successfully created transport rule for $tenantFilter." + } + + Write-LogMessage -Headers $ExecutingUser -API $APINAME -tenant $tenantFilter -message "Created transport rule for $($tenantFilter)" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Could not create transport rule for $($tenantFilter): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $ExecutingUser -API $APINAME -tenant $tenantFilter -message "Could not create transport rule for $($tenantFilter). Error:$($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{Results = @($Result) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportTemplate.ps1 new file mode 100644 index 000000000000..bbf830c0a691 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-AddTransportTemplate.ps1 @@ -0,0 +1,52 @@ +Function Invoke-AddTransportTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.TransportRule.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + Write-Host ($request | ConvertTo-Json -Depth 10 -Compress) + + try { + $GUID = (New-Guid).GUID + $JSON = if ($request.body.PowerShellCommand) { + Write-Host 'PowerShellCommand' + $request.body.PowerShellCommand | ConvertFrom-Json + } else { + ([pscustomobject]$Request.body | Select-Object Name, ActivationDate, ADComparisonAttribute, ADComparisonOperator, AddManagerAsRecipientType, AddToRecipients, AnyOfCcHeader, AnyOfCcHeaderMemberOf, AnyOfRecipientAddressContainsWords, AnyOfRecipientAddressMatchesPatterns, AnyOfToCcHeader, AnyOfToCcHeaderMemberOf, AnyOfToHeader, AnyOfToHeaderMemberOf, ApplyClassification, ApplyHtmlDisclaimerFallbackAction, ApplyHtmlDisclaimerLocation, ApplyHtmlDisclaimerText, ApplyOME, ApplyRightsProtectionCustomizationTemplate, ApplyRightsProtectionTemplate, AttachmentContainsWords, AttachmentExtensionMatchesWords, AttachmentHasExecutableContent, AttachmentIsPasswordProtected, AttachmentIsUnsupported, AttachmentMatchesPatterns, AttachmentNameMatchesPatterns, AttachmentProcessingLimitExceeded, AttachmentPropertyContainsWords, AttachmentSizeOver, BetweenMemberOf1, BetweenMemberOf2, BlindCopyTo, Comments, Confirm, ContentCharacterSetContainsWords, CopyTo, DeleteMessage, DlpPolicy, DomainController, Enabled, ExceptIfADComparisonAttribute, ExceptIfADComparisonOperator, ExceptIfAnyOfCcHeader, ExceptIfAnyOfCcHeaderMemberOf, ExceptIfAnyOfRecipientAddressContainsWords, ExceptIfAnyOfRecipientAddressMatchesPatterns, ExceptIfAnyOfToCcHeader, ExceptIfAnyOfToCcHeaderMemberOf, ExceptIfAnyOfToHeader, ExceptIfAnyOfToHeaderMemberOf, ExceptIfAttachmentContainsWords, ExceptIfAttachmentExtensionMatchesWords, ExceptIfAttachmentHasExecutableContent, ExceptIfAttachmentIsPasswordProtected, ExceptIfAttachmentIsUnsupported, ExceptIfAttachmentMatchesPatterns, ExceptIfAttachmentNameMatchesPatterns, ExceptIfAttachmentProcessingLimitExceeded, ExceptIfAttachmentPropertyContainsWords, ExceptIfAttachmentSizeOver, ExceptIfBetweenMemberOf1, ExceptIfBetweenMemberOf2, ExceptIfContentCharacterSetContainsWords, ExceptIfFrom, ExceptIfFromAddressContainsWords, ExceptIfFromAddressMatchesPatterns, ExceptIfFromMemberOf, ExceptIfFromScope, ExceptIfHasClassification, ExceptIfHasNoClassification, ExceptIfHasSenderOverride, ExceptIfHeaderContainsMessageHeader, ExceptIfHeaderContainsWords, ExceptIfHeaderMatchesMessageHeader, ExceptIfHeaderMatchesPatterns, ExceptIfManagerAddresses, ExceptIfManagerForEvaluatedUser, ExceptIfMessageContainsDataClassifications, ExceptIfMessageSizeOver, ExceptIfMessageTypeMatches, ExceptIfRecipientADAttributeContainsWords, ExceptIfRecipientADAttributeMatchesPatterns, ExceptIfRecipientAddressContainsWords, ExceptIfRecipientAddressMatchesPatterns, ExceptIfRecipientDomainIs, ExceptIfRecipientInSenderList, ExceptIfSCLOver, ExceptIfSenderADAttributeContainsWords, ExceptIfSenderADAttributeMatchesPatterns, ExceptIfSenderDomainIs, ExceptIfSenderInRecipientList, ExceptIfSenderIpRanges, ExceptIfSenderManagementRelationship, ExceptIfSentTo, ExceptIfSentToMemberOf, ExceptIfSentToScope, ExceptIfSubjectContainsWords, ExceptIfSubjectMatchesPatterns, ExceptIfSubjectOrBodyContainsWords, ExceptIfSubjectOrBodyMatchesPatterns, ExceptIfWithImportance, ExpiryDate, From, FromAddressContainsWords, FromAddressMatchesPatterns, FromMemberOf, FromScope, GenerateIncidentReport, GenerateNotification, HasClassification, HasNoClassification, HasSenderOverride, HeaderContainsMessageHeader, HeaderContainsWords, HeaderMatchesMessageHeader, HeaderMatchesPatterns, IncidentReportContent, IncidentReportOriginalMail, LogEventText, ManagerAddresses, ManagerForEvaluatedUser, MessageContainsDataClassifications, MessageSizeOver, MessageTypeMatches, Mode, ModerateMessageByManager, ModerateMessageByUser, NotifySender, PrependSubject, Quarantine, RecipientADAttributeContainsWords, RecipientADAttributeMatchesPatterns, RecipientAddressContainsWords, RecipientAddressMatchesPatterns, RecipientAddressType, RecipientDomainIs, RecipientInSenderList, RedirectMessageTo, RejectMessageEnhancedStatusCode, RejectMessageReasonText, RemoveHeader, RemoveOME, RemoveOMEv2, RemoveRMSAttachmentEncryption, RouteMessageOutboundConnector, RouteMessageOutboundRequireTls, RuleErrorAction, RuleSubType, SCLOver, SenderADAttributeContainsWords, SenderADAttributeMatchesPatterns, SenderAddressLocation, SenderDomainIs, SenderInRecipientList, SenderIpRanges, SenderManagementRelationship, SentTo, SentToMemberOf, SentToScope, SetAuditSeverity, SetHeaderName, SetHeaderValue, SetSCL, SmtpRejectMessageRejectStatusCode, SmtpRejectMessageRejectText, StopRuleProcessing, SubjectContainsWords, SubjectMatchesPatterns, SubjectOrBodyContainsWords, SubjectOrBodyMatchesPatterns, UseLegacyRegex, WithImportance ) | + ForEach-Object { + $NonEmptyProperties = $_.PSObject.Properties | Where-Object { $null -ne $_.Value } | Select-Object -ExpandProperty Name + $_ | Select-Object -Property $NonEmptyProperties + } + } + $JSON = ($JSON | Select-Object @{n = 'name'; e = { $_.name } }, @{n = 'comments'; e = { $_.comments } }, * | ConvertTo-Json -Depth 10) + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'TransportTemplate' + } + Write-LogMessage -Headers $Headers -API $APINAME -message "Created Transport Rule Template $($Request.body.name) with GUID $GUID" -Sev Debug + $body = [pscustomobject]@{'Results' = "Created Transport Rule Template $($Request.body.name) with GUID $GUID" } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APINAME -message "Failed to create Transport Rule Template: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to create Transport Rule Template: $($ErrorMessage.NormalizedError)" } + $StatusCode = [HttpStatusCode]::Forbidden + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditExConnector.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditExConnector.ps1 new file mode 100644 index 000000000000..7fbf704e72f5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditExConnector.ps1 @@ -0,0 +1,40 @@ +function Invoke-EditExConnector { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Connector.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + try { + $ConnectorState = $Request.Query.State ?? $Request.Body.State + $State = if ($ConnectorState -eq 'Enable') { $true } else { $false } + $Guid = $Request.Query.GUID ?? $Request.Body.GUID + $Type = $Request.Query.Type ?? $Request.Body.Type + $Params = @{ + Identity = $Guid + Enabled = $State + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet "Set-$($Type)Connector" -cmdParams $params -UseSystemMailbox $true + $Result = "Set Connector $($Guid) to $($ConnectorState)" + Write-LogMessage -Headers $Headers -API $APINAME -tenant $TenantFilter -message "Set Connector $($Guid) to $($ConnectorState)" -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CIPPException -Exception $_ + Write-LogMessage -Headers $Headers -API $APINAME -tenant $TenantFilter -message "Failed setting Connector $($Guid) to $($ConnectorState). Error:$($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Result = $ErrorMessage.NormalizedError + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditTransportRule.ps1 new file mode 100644 index 000000000000..4413fdb33d97 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-EditTransportRule.ps1 @@ -0,0 +1,41 @@ +function Invoke-EditTransportRule { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.TransportRule.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $Identity = $Request.Query.guid ?? $Request.body.guid + $State = $Request.Query.state ?? $Request.body.state + + $Params = @{ + Identity = $Identity + } + + try { + $cmdlet = if ($State -eq 'enable') { 'Enable-TransportRule' } else { 'Disable-TransportRule' } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $cmdlet -cmdParams $params -UseSystemMailbox $true + $Result = "Set transport rule $($Identity) to $($State)" + Write-LogMessage -Headers $Headers -API $APINAME -tenant $TenantFilter -message $Result -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APINAME -tenant $TenantFilter -message "Failed setting transport rule $($Identity) to $($State). Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Result = $ErrorMessage.NormalizedError + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExConnectorTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExConnectorTemplates.ps1 new file mode 100644 index 000000000000..daadbbc868e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExConnectorTemplates.ps1 @@ -0,0 +1,42 @@ +function Invoke-ListExConnectorTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.Connector.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'templates' + + #List new policies + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ExConnectorTemplate'" + + if ($Request.Query.ID) { + $Filter += " and RowKey eq '$($Request.Query.ID)'" + } + + $TemplateRows = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + + if ($TemplateRows) { + $Templates = $TemplateRows | ForEach-Object { + $GUID = $_.RowKey + $Direction = $_.direction + $data = $_.JSON | ConvertFrom-Json + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID -Force + $data | Add-Member -NotePropertyName 'cippconnectortype' -NotePropertyValue $Direction -Force + $data + } | Sort-Object -Property displayName + } else { + $Templates = @() + } + if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExchangeConnectors.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExchangeConnectors.ps1 new file mode 100644 index 000000000000..a0455bfb6137 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListExchangeConnectors.ps1 @@ -0,0 +1,27 @@ +function Invoke-ListExchangeConnectors { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Connector.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $request.Query.tenantFilter + + $Results = try { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-OutboundConnector' | Select-Object *, @{n = 'cippconnectortype'; e = { 'outbound' } } + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-InboundConnector' | Select-Object *, @{n = 'cippconnectortype'; e = { 'Inbound' } } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 new file mode 100644 index 000000000000..ce444bd46cf2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRules.ps1 @@ -0,0 +1,92 @@ +function Invoke-ListTransportRules { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.TransportRule.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $RuleId = $Request.Query.id + + try { + # If an ID is provided, fetch the specific rule + if ($RuleId) { + $Results = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' -cmdParams @{Identity = $RuleId} + } + # Otherwise, use existing logic + else { + $Results = if ($TenantFilter -ne 'AllTenants') { + # Single tenant functionality + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' + } else { + # AllTenants functionality + $Table = Get-CIPPTable -TableName CacheTransportRules + $PartitionKey = 'TransportRule' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading transport rules for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Transport Rules - All Tenants' -Link '/email/transport/list-rules?tenantFilter=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading transport rules for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TransportRuleOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListTransportRulesAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + } else { + # Return cached data + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Rules = $Rows + foreach ($rule in $Rules) { + $RuleObj = $rule.TransportRule | ConvertFrom-Json + $RuleObj | Add-Member -MemberType NoteProperty -Name Tenant -Value $rule.Tenant -Force + $RuleObj + } + } + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $Body = $ErrorMessage + } + + # If the body is not set by an error, we will set it here + if (!$Body) { + $Body = [PSCustomObject]@{ + Results = @($Results) + Metadata = $Metadata + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRulesTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRulesTemplates.ps1 new file mode 100644 index 000000000000..1f8f567e5ea1 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-ListTransportRulesTemplates.ps1 @@ -0,0 +1,42 @@ +Function Invoke-ListTransportRulesTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.TransportRule.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'templates' + + $Templates = Get-ChildItem 'Config\*.TransportRuleTemplate.json' | ForEach-Object { + + $Entity = @{ + JSON = "$(Get-Content $_)" + RowKey = "$($_.name)" + PartitionKey = 'TransportTemplate' + GUID = "$($_.name)" + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + } + + #List new policies + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'TransportTemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $GUID = $_.RowKey + $data = $_.JSON | ConvertFrom-Json + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID + $data + } + + if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnector.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnector.ps1 new file mode 100644 index 000000000000..61bb16ae5c3c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnector.ps1 @@ -0,0 +1,36 @@ +Function Invoke-RemoveExConnector { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Connector.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $request.Query.tenantFilter ?? $Request.Body.tenantFilter + + + try { + $Type = $Request.Query.Type ?? $Request.Body.Type + $Guid = $Request.Query.GUID ?? $Request.Body.GUID + $Params = @{ Identity = $Guid } + + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet "Remove-$($Type)Connector" -cmdParams $params -useSystemMailbox $true + $Result = "Deleted Connector: $($Guid)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Deleted connector $($Guid)" -sev Debug + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed deleting connector $($Guid). Error:$($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Result = $ErrorMessage.NormalizedError + $StatusCode = [HttpStatusCode]::Forbidden + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnectorTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnectorTemplate.ps1 new file mode 100644 index 000000000000..089f1eaa4e88 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveExConnectorTemplate.ps1 @@ -0,0 +1,38 @@ +Function Invoke-RemoveExConnectorTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.Connector.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $Request.Query.ID ?? $Request.Body.ID + try { + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ExConnectorTemplate' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Exchange Connector Template with ID $ID." + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Exchange Connector Template $($ID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRule.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRule.ps1 new file mode 100644 index 000000000000..c23a158f7848 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRule.ps1 @@ -0,0 +1,39 @@ +Function Invoke-RemoveTransportRule { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.TransportRule.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $Identity = $Request.Query.guid ?? $Request.body.guid + + $Params = @{ + Identity = $Identity + } + + try { + $cmdlet = 'Remove-TransportRule' + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $cmdlet -cmdParams $Params -UseSystemMailbox $true + $Result = "Deleted $($Identity)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Deleted transport rule $($Identity)" -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed deleting transport rule $($Identity). Error:$($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Result = $ErrorMessage.NormalizedError + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRuleTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRuleTemplate.ps1 new file mode 100644 index 000000000000..d4f93a07bb9f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Transport/Invoke-RemoveTransportRuleTemplate.ps1 @@ -0,0 +1,38 @@ +Function Invoke-RemoveTransportRuleTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.TransportRule.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $User = $Request.Headers + Write-LogMessage -Headers $User -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + $ID = $request.query.ID ?? $request.body.ID + try { + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'TransportTemplate' and RowKey eq '$id'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Transport Rule Template with ID $ID." + Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Transport Rule template with ID $ID. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddChocoApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddChocoApp.ps1 new file mode 100644 index 000000000000..246ee7071f45 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddChocoApp.ps1 @@ -0,0 +1,70 @@ +Function Invoke-AddChocoApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ChocoApp = $Request.Body + $intuneBody = Get-Content 'AddChocoApp\Choco.app.json' | ConvertFrom-Json + $AssignTo = $Request.Body.AssignTo -eq 'customGroup' ? $Request.Body.CustomGroup : $Request.Body.AssignTo + $intuneBody.description = $ChocoApp.description + $intuneBody.displayName = $ChocoApp.ApplicationName + $intuneBody.installExperience.runAsAccount = if ($ChocoApp.InstallAsSystem) { 'system' } else { 'user' } + $intuneBody.installExperience.deviceRestartBehavior = if ($ChocoApp.DisableRestart) { 'suppress' } else { 'allow' } + $intuneBody.installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\Install.ps1 -InstallChoco -Packagename $($ChocoApp.PackageName)" + if ($ChocoApp.customrepo) { + $intuneBody.installCommandLine = $intuneBody.installCommandLine + " -CustomRepo $($ChocoApp.CustomRepo)" + } + if ($ChocoApp.customArguments) { + $intuneBody.installCommandLine = $intuneBody.installCommandLine + " -CustomArguments '$($ChocoApp.customArguments)'" + } + $intuneBody.UninstallCommandLine = "powershell.exe -ExecutionPolicy Bypass .\Uninstall.ps1 -Packagename $($ChocoApp.PackageName)" + $intuneBody.detectionRules[0].path = "$($ENV:SystemDrive)\programdata\chocolatey\lib" + $intuneBody.detectionRules[0].fileOrFolderName = "$($ChocoApp.PackageName)" + + $Tenants = $Request.Body.selectedTenants.defaultDomainName + $Results = foreach ($Tenant in $Tenants) { + try { + # Apply CIPP text replacement for tenant-specific variables + $TenantIntuneBody = $intuneBody | ConvertTo-Json -Depth 15 | ConvertFrom-Json + if ($TenantIntuneBody.installCommandLine -match '%') { + $TenantIntuneBody.installCommandLine = Get-CIPPTextReplacement -TenantFilter $Tenant -Text $TenantIntuneBody.installCommandLine + } + + $CompleteObject = [PSCustomObject]@{ + tenant = $Tenant + ApplicationName = $ChocoApp.ApplicationName + assignTo = $AssignTo + InstallationIntent = $Request.Body.InstallationIntent + IntuneBody = $TenantIntuneBody + } | ConvertTo-Json -Depth 15 + $Table = Get-CippTable -tablename 'apps' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$CompleteObject" + RowKey = "$((New-Guid).GUID)" + PartitionKey = 'apps' + } + "Successfully added Choco App for $($Tenant) to queue." + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Successfully added Choco App $($intuneBody.DisplayName) to queue" -Sev 'Info' + } catch { + "Failed adding Choco App for $($Tenant) to queue" + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Failed to add Chocolatey Application $($intuneBody.DisplayName) to queue" -Sev 'Error' + } + } + + $body = [PSCustomObject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 new file mode 100644 index 000000000000..bdbc7f7dba1f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 @@ -0,0 +1,93 @@ +function Invoke-AddMSPApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $RMMApp = $Request.Body + $AssignTo = $Request.Body.AssignTo -eq 'customGroup' ? $Request.Body.CustomGroup : $Request.Body.AssignTo + $intuneBody = Get-Content "AddMSPApp\$($RMMApp.RMMName.value).app.json" | ConvertFrom-Json + $intuneBody.displayName = $RMMApp.DisplayName + + $Tenants = $Request.Body.selectedTenants + $Results = foreach ($Tenant in $Tenants) { + $InstallParams = [PSCustomObject]$RMMApp.params + switch ($RMMApp.RMMName.value) { + 'datto' { + Write-Host 'Processing Datto installation' + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -URL $($InstallParams.DattoURL) -GUID $($InstallParams.DattoGUID."$($Tenant.customerId)")" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + 'ninja' { + Write-Host 'Processing Ninja installation' + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -InstallParam $($RMMApp.PackageName)" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + 'Huntress' { + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -OrgKey $($InstallParams.Orgkey."$($Tenant.customerId)") -acctkey $($InstallParams.AccountKey)" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Uninstall' + } + 'syncro' { + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -URL $($InstallParams.ClientURL."$($Tenant.customerId)")" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + 'NCentral' { + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -InstallParam $($RMMApp.PackageName)" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + 'automate' { + $installCommandLine = "c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Server $($InstallParams.Server) -InstallerToken $($InstallParams.InstallerToken."$($Tenant.customerId)") -LocationID $($InstallParams.LocationID."$($Tenant.customerId)")" + $uninstallCommandLine = "c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1 -Server $($InstallParams.Server)" + $DetectionScript = (Get-Content 'AddMSPApp\automate.detection.ps1' -Raw) -replace '##SERVER##', $InstallParams.Server + $intuneBody.detectionRules[0].scriptContent = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($DetectionScript)) + } + 'cwcommand' { + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Url $($InstallParams.ClientURL."$($Tenant.customerId)")" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + } + $intuneBody.installCommandLine = $installCommandLine + $intuneBody.UninstallCommandLine = $uninstallCommandLine + + + try { + $CompleteObject = [PSCustomObject]@{ + tenant = $Tenant.defaultDomainName + ApplicationName = $RMMApp.DisplayName + assignTo = $AssignTo + IntuneBody = $intuneBody + type = 'MSPApp' + MSPAppName = $RMMApp.RMMName.value + } | ConvertTo-Json -Depth 15 + $Table = Get-CippTable -tablename 'apps' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$CompleteObject" + RowKey = "$((New-Guid).GUID)" + PartitionKey = 'apps' + status = 'Not Deployed yet' + } + "Successfully added MSP App for $($Tenant.defaultDomainName) to queue. " + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant.defaultDomainName -message "MSP Application $($intuneBody.DisplayName) added to queue" -Sev 'Info' + } catch { + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant.defaultDomainName -message "Failed to add MSP Application $($intuneBody.DisplayName) to queue" -Sev 'Error' + "Failed to add MSP app for $($Tenant.defaultDomainName) to queue" + } + } + + + $body = [PSCustomObject]@{'Results' = $Results } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 new file mode 100644 index 000000000000..97d65b678542 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 @@ -0,0 +1,115 @@ +function Invoke-AddOfficeApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + # Input bindings are passed in via param block. + $Tenants = $Request.Body.selectedTenants.defaultDomainName + $Headers = $Request.Headers + $APIName = $Request.Params.CIPPEndpoint + if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } + $AssignTo = $Request.Body.AssignTo -eq 'customGroup' ? $Request.Body.CustomGroup : $Request.Body.AssignTo + + $Results = foreach ($Tenant in $Tenants) { + try { + $ExistingO365 = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $Tenant | Where-Object { $_.displayName -eq 'Microsoft 365 Apps for Windows 10 and later' } + if (!$ExistingO365) { + # Check if custom XML is provided + if ($Request.Body.useCustomXml -and $Request.Body.customXml) { + # Use custom XML configuration + $ObjBody = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.officeSuiteApp' + 'displayName' = 'Microsoft 365 Apps for Windows 10 and later' + 'description' = 'Microsoft 365 Apps for Windows 10 and later' + 'informationUrl' = 'https://products.office.com/en-us/explore-office-for-home' + 'privacyInformationUrl' = 'https://privacy.microsoft.com/en-us/privacystatement' + 'isFeatured' = $true + 'publisher' = 'Microsoft' + 'notes' = '' + 'owner' = 'Microsoft' + 'officeConfigurationXml' = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($request.body.customXml)) + 'largeIcon' = @{ + '@odata.type' = 'microsoft.graph.mimeContent' + 'type' = 'image/png' + 'value' = 'iVBORw0KGgoAAAANSUhEUgAAAF0AAAAeCAMAAAEOZNKlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJhUExURf////7z7/i9qfF1S/KCW/i+qv3q5P/9/PrQwfOMae1RG+s8AOxGDfBtQPWhhPvUx/759/zg1vWgg+9fLu5WIvKFX/rSxP728/nCr/FyR+tBBvOMaO1UH+1RHOs+AvSScP3u6f/+/v3s5vzg1+xFDO9kNPOOa/i7pvzj2/vWyes9Af76+Pzh2PrTxf/6+f7y7vOGYexHDv3t5+1SHfi8qPOIZPvb0O1NFuxDCe9hMPSVdPnFs/3q4/vaz/STcu5VIe5YJPWcfv718v/9/e1MFfF4T/F4TvF2TP3o4exECvF0SexIEPONavzn3/vZze1QGvF3Te5dK+5cKvrPwPrQwvKAWe1OGPexmexKEveulfezm/BxRfamiuxLE/apj/zf1e5YJfSXd/OHYv3r5feznPakiPze1P7x7f739f3w6+xJEfnEsvWdf/Wfge1LFPe1nu9iMvnDsfBqPOs/BPOIY/WZevJ/V/zl3fnIt/vTxuxHD+xEC+9mN+5ZJv749vBpO/KBWvBwRP/8+/SUc/etlPjArP/7+vOLZ/F7UvWae/708e1OF/aihvSWdvi8p+tABfSZefvVyPWihfSVde9lNvami+9jM/zi2fKEXvBuQvOKZvalifF5UPJ/WPSPbe9eLfrKuvvd0uxBB/7w7Pzj2vrRw/rOv+1PGfi/q/eymu5bKf3n4PnJuPBrPf3t6PWfgvWegOxCCO9nOO9oOfaskvSYePi5pPi2oPnGtO5eLPevlvKDXfrNvv739Pzd0/708O9gL+9lNfJ9VfrLu/OPbPnDsPBrPus+A/nArfarkQAAAGr5HKgAAADLdFJOU/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AvuakogAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAz5JREFUOE+tVTtu4zAQHQjppmWzwIJbEVCzpTpjbxD3grQHSOXKRXgCAT6EC7UBVAmp3KwBnmvfzNCyZTmxgeTZJsXx43B+HBHRE34ZkXgkerXFTheeiCkRrbB4UXmp4wSWz5raaQEMTM5TZwuiXoaKgV+6FsmkZQcSy0kA71yMTMGHanX+AzMMGLAQCxU1F/ZwjULPugazl82GM0NEKm/U8EqFwEkO3/EAT4grgl0nucwlk9pcpTTJ4VPA4g/Rb3yIRhhp507e9nTQmZ1OS5RO4sS7nIRPEeHXCHdkw9ZEW2yVE5oIS7peD58Avs7CN+PVCmHh21oOqBdjDzIs+FldPJ74TFESUSJEfVzy9U/dhu+AuOT6eBp6gGKyXEx8euO450ZE4CMfstMFT44broWw/itkYErWXRx+fFArt9Ca9os78TFed0LVIUsmIHrwbwaw3BEOnOk94qVpQ6Ka2HjxewJnfyd6jUtGDQLdWlzmYNYLeKbbGOucJsNabCq1Yub0o92rtR+i30V2dapxYVEePXcOjeCKPnYyit7BtKeNlZqHbr+gt7i+AChWA9RsRs03pxTQc67ouWpxyESvjK5Vs3DVSy3IpkxPm5X+wZoBi+MFHWW69/w8FRhc7VBe6HAhMB2b8Q0XqDzTNZtXUMnKMjwKVaCrB/CSUL7WSx/HsdJC86lFGXwnioTeOMPjV+szlFvrZLA5VMVK4y+41l4e1xfx7Z88o4hkilRUH/qKqwNVlgDgpvYCpH3XwAy5eMCRnezIUxffVXoDql2rTHFDO+pjWnTWzAfrYXn6BFECblUpWGrvPZvBipETjS5ydM7tdXpH41ZCEbBNy/+wFZu71QO2t9pgT+iZEf657Q1vpN94PQNDxUHeKR103LV9nPVOtDikcNKO+2naCw7yKBhOe9Hm79pe8C4/CfC2wDjXnqC94kEeBU3WwN7dt/2UScXas7zDl5GpkY+M8WKv2J7fd4Ib2rGTk+jsC2cleEM7jI9veF7B0MBJrsZqfKd/81q9pR2NZfwJK2JzsmIT1Ns8jUH0UusQBpU8d2JzsHiXg1zXGLqxfitUNTDT/nUUeqDBp2HZVr+Ocqi/Ty3Rf4Jn82xxfSNtAAAAAElFTkSuQmCC' + } + } + } else { + # Use standard configuration + $Arch = if ($Request.Body.arch) { 'x64' } else { 'x86' } + $products = @('o365ProPlusRetail') + $ExcludedApps = [pscustomobject]@{ + infoPath = $true + sharePointDesigner = $true + excel = $false + lync = $false + oneNote = $false + outlook = $false + powerPoint = $false + publisher = $false + teams = $false + word = $false + access = $false + bing = $false + } + foreach ($ExcludedApp in $Request.Body.excludedApps.value) { + $ExcludedApps.$ExcludedApp = $true + } + $ObjBody = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.officeSuiteApp' + 'displayName' = 'Microsoft 365 Apps for Windows 10 and later' + 'description' = 'Microsoft 365 Apps for Windows 10 and later' + 'informationUrl' = 'https://products.office.com/en-us/explore-office-for-home' + 'privacyInformationUrl' = 'https://privacy.microsoft.com/en-us/privacystatement' + 'isFeatured' = $true + 'publisher' = 'Microsoft' + 'notes' = '' + 'owner' = 'Microsoft' + 'autoAcceptEula' = [bool]$Request.Body.AcceptLicense + 'excludedApps' = $ExcludedApps + 'officePlatformArchitecture' = $Arch + 'officeSuiteAppDefaultFileFormat' = 'OfficeOpenXMLFormat' + 'localesToInstall' = @($Request.Body.languages.value) + 'shouldUninstallOlderVersionsOfOffice' = [bool]$Request.Body.RemoveVersions + 'updateChannel' = $Request.Body.updateChannel.value + 'useSharedComputerActivation' = [bool]$Request.Body.SharedComputerActivation + 'productIds' = $products + 'largeIcon' = @{ + '@odata.type' = 'microsoft.graph.mimeContent' + 'type' = 'image/png' + 'value' = 'iVBORw0KGgoAAAANSUhEUgAAAF0AAAAeCAMAAAEOZNKlAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJhUExURf////7z7/i9qfF1S/KCW/i+qv3q5P/9/PrQwfOMae1RG+s8AOxGDfBtQPWhhPvUx/759/zg1vWgg+9fLu5WIvKFX/rSxP728/nCr/FyR+tBBvOMaO1UH+1RHOs+AvSScP3u6f/+/v3s5vzg1+xFDO9kNPOOa/i7pvzj2/vWyes9Af76+Pzh2PrTxf/6+f7y7vOGYexHDv3t5+1SHfi8qPOIZPvb0O1NFuxDCe9hMPSVdPnFs/3q4/vaz/STcu5VIe5YJPWcfv718v/9/e1MFfF4T/F4TvF2TP3o4exECvF0SexIEPONavzn3/vZze1QGvF3Te5dK+5cKvrPwPrQwvKAWe1OGPexmexKEveulfezm/BxRfamiuxLE/apj/zf1e5YJfSXd/OHYv3r5feznPakiPze1P7x7f739f3w6+xJEfnEsvWdf/Wfge1LFPe1nu9iMvnDsfBqPOs/BPOIY/WZevJ/V/zl3fnIt/vTxuxHD+xEC+9mN+5ZJv749vBpO/KBWvBwRP/8+/SUc/etlPjArP/7+vOLZ/F7UvWae/708e1OF/aihvSWdvi8p+tABfSZefvVyPWihfSVde9lNvami+9jM/zi2fKEXvBuQvOKZvalifF5UPJ/WPSPbe9eLfrKuvvd0uxBB/7w7Pzj2vrRw/rOv+1PGfi/q/eymu5bKf3n4PnJuPBrPf3t6PWfgvWegOxCCO9nOO9oOfaskvSYePi5pPi2oPnGtO5eLPevlvKDXfrNvv739Pzd0/708O9gL+9lNfJ9VfrLu/OPbPnDsPBrPus+A/nArfarkQAAAGr5HKgAAADLdFJOU/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AvuakogAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAz5JREFUOE+tVTtu4zAQHQjppmWzwIJbEVCzpTpjbxD3grQHSOXKRXgCAT6EC7UBVAmp3KwBnmvfzNCyZTmxgeTZJsXx43B+HBHRE34ZkXgkerXFTheeiCkRrbB4UXmp4wSWz5raaQEMTM5TZwuiXoaKgV+6FsmkZQcSy0kA71yMTMGHanX+AzMMGLAQCxU1F/ZwjULPugazl82GM0NEKm/U8EqFwEkO3/EAT4grgl0nucwlk9pcpTTJ4VPA4g/Rb3yIRhhp507e9nTQmZ1OS5RO4sS7nIRPEeHXCHdkw9ZEW2yVE5oIS7peD58Avs7CN+PVCmHh21oOqBdjDzIs+FldPJ74TFESUSJEfVzy9U/dhu+AuOT6eBp6gGKyXEx8euO450ZE4CMfstMFT44broWw/itkYErWXRx+fFArt9Ca9os78TFed0LVIUsmIHrwbwaw3BEOnOk94qVpQ6Ka2HjxewJnfyd6jUtGDQLdWlzmYNYLeKbbGOucJsNabCq1Yub0o92rtR+i30V2dapxYVEePXcOjeCKPnYyit7BtKeNlZqHbr+gt7i+AChWA9RsRs03pxTQc67ouWpxyESvjK5Vs3DVSy3IpkxPm5X+wZoBi+MFHWW69/w8FRhc7VBe6HAhMB2b8Q0XqDzTNZtXUMnKMjwKVaCrB/CSUL7WSx/HsdJC86lFGXwnioTeOMPjV+szlFvrZLA5VMVK4y+41l4e1xfx7Z88o4hkilRUH/qKqwNVlgDgpvYCpH3XwAy5eMCRnezIUxffVXoDql2rTHFDO+pjWnTWzAfrYXn6BFECblUpWGrvPZvBipETjS5ydM7tdXpH41ZCEbBNy/+wFZu71QO2t9pgT+iZEf657Q1vpN94PQNDxUHeKR103LV9nPVOtDikcNKO+2naCw7yKBhOe9Hm79pe8C4/CfC2wDjXnqC94kEeBU3WwN7dt/2UScXas7zDl5GpkY+M8WKv2J7fd4Ib2rGTk+jsC2cleEM7jI9veF7B0MBJrsZqfKd/81q9pR2NZfwJK2JzsmIT1Ns8jUH0UusQBpU8d2JzsHiXg1zXGLqxfitUNTDT/nUUeqDBp2HZVr+Ocqi/Ty3Rf4Jn82xxfSNtAAAAAElFTkSuQmCC' + } + } + } + Write-Host ($ObjBody | ConvertTo-Json -Compress) + $OfficeAppID = New-graphPostRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $tenant -Body (ConvertTo-Json -InputObject $ObjBody -Depth 10) -type POST + } else { + "Office deployment already exists for $($Tenant)" + continue + } + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Added Office profile to $($Tenant)" -Sev 'Info' + if ($AssignTo) { + $AssignO365 = if ($AssignTo -ne 'AllDevicesAndUsers') { '{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.' + $($AssignTo) + 'AssignmentTarget"},"intent":"Required"}]}' } else { '{"mobileAppAssignments":[{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"},"intent":"Required"},{"@odata.type":"#microsoft.graph.mobileAppAssignment","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"},"intent":"Required"}]}' } Write-Host ($AssignO365) + New-GraphPOSTRequest -Uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($OfficeAppID.id)/assign" -tenantid $Tenant -Body $AssignO365 -type POST + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Assigned Office to $AssignTo" -Sev 'Info' + } + "Successfully added Office App for $($Tenant)" + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Failed to add Office App for $($Tenant): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($Tenant) -message "Failed to add Office App. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -Logdata $ErrorMessage + continue + } + + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 new file mode 100644 index 000000000000..af6eb44c1be7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 @@ -0,0 +1,64 @@ +function Invoke-AddStoreApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $WinGetApp = $Request.Body + $assignTo = $Request.Body.AssignTo -eq 'customGroup' ? $Request.Body.CustomGroup : $Request.Body.AssignTo + + if ($ChocoApp.InstallAsSystem) { 'system' } else { 'user' } + $WinGetData = [ordered]@{ + '@odata.type' = '#microsoft.graph.winGetApp' + 'displayName' = "$($WinGetApp.ApplicationName)" + 'description' = "$($WinGetApp.description)" + 'packageIdentifier' = "$($WinGetApp.PackageName)" + 'installExperience' = @{ + '@odata.type' = 'microsoft.graph.winGetAppInstallExperience' + 'runAsAccount' = 'system' + } + } + + $Tenants = $Request.body.selectedTenants.defaultDomainName + $Results = foreach ($Tenant in $Tenants) { + try { + $CompleteObject = [PSCustomObject]@{ + tenant = $Tenant + ApplicationName = $WinGetApp.ApplicationName + assignTo = $assignTo + InstallationIntent = $Request.Body.InstallationIntent + type = 'WinGet' + IntuneBody = $WinGetData + } | ConvertTo-Json -Depth 15 + $Table = Get-CippTable -tablename 'apps' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$CompleteObject" + RowKey = "$((New-Guid).GUID)" + PartitionKey = 'apps' + status = 'Not Deployed yet' + } + "Successfully added Store App for $($Tenant) to queue." + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Successfully added Store App $($IntuneBody.DisplayName) to queue" -Sev 'Info' + } catch { + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Failed to add Store App $($IntuneBody.DisplayName) to queue" -Sev 'Error' + "Failed to add Store App for $($Tenant) to queue" + } + } + + $body = [pscustomobject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAppUpload.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAppUpload.ps1 new file mode 100644 index 000000000000..a1dcb247e382 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAppUpload.ps1 @@ -0,0 +1,39 @@ +function Invoke-ExecAppUpload { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $ConfigTable = Get-CIPPTable -tablename Config + $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'OffloadFunctions' and RowKey eq 'OffloadFunctions'" + + if ($Config -and $Config.state -eq $true) { + if ($env:CIPP_PROCESSOR -ne 'true') { + $ProcessorFunction = [PSCustomObject]@{ + PartitionKey = 'Function' + RowKey = 'Start-ApplicationOrchestrator' + FunctionName = 'Start-ApplicationOrchestrator' + } + $ProcessorQueue = Get-CIPPTable -TableName 'ProcessorQueue' + Add-AzDataTableEntity @ProcessorQueue -Entity $ProcessorFunction -Force + $Results = [pscustomobject]@{'Results' = 'Application upload job has started. Please check back in 15 minutes or track the logbook for results.' } + } + } else { + try { + Start-ApplicationOrchestrator + $Results = [pscustomobject]@{'Results' = 'Started application upload' } + } catch { + $Results = [pscustomobject]@{'Results' = "Failed to start application upload. Error: $($_.Exception.Message)" } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 new file mode 100644 index 000000000000..6733e150366f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 @@ -0,0 +1,112 @@ +function Invoke-ExecAssignApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $appFilter = $Request.Query.ID ?? $Request.Body.ID + $AssignTo = $Request.Query.AssignTo ?? $Request.Body.AssignTo + $Intent = $Request.Query.Intent ?? $Request.Body.Intent + $AppType = $Request.Query.AppType ?? $Request.Body.AppType + $GroupNamesRaw = $Request.Query.GroupNames ?? $Request.Body.GroupNames + $GroupIdsRaw = $Request.Query.GroupIds ?? $Request.Body.GroupIds + $AssignmentMode = $Request.Body.assignmentMode + + $Intent = if ([string]::IsNullOrWhiteSpace($Intent)) { 'Required' } else { $Intent } + + if ([string]::IsNullOrWhiteSpace($AssignmentMode)) { + $AssignmentMode = 'replace' + } else { + $AssignmentMode = $AssignmentMode.ToLower() + if ($AssignmentMode -notin @('replace', 'append')) { + throw "Unsupported AssignmentMode value '$AssignmentMode'. Valid options are 'replace' or 'append'." + } + } + + function Get-StandardizedAssignmentList { + param($InputObject) + + if ($null -eq $InputObject -or ($InputObject -is [string] -and [string]::IsNullOrWhiteSpace($InputObject))) { + return @() + } + if ($InputObject -is [string]) { + return ($InputObject -split ',') | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } + if ($InputObject -is [System.Collections.IEnumerable]) { + return @($InputObject | Where-Object { $_ }) + } + return @($InputObject) + } + + $GroupNames = Get-StandardizedAssignmentList -InputObject $GroupNamesRaw + $GroupIds = Get-StandardizedAssignmentList -InputObject $GroupIdsRaw + + if (-not $AssignTo -and $GroupIds.Count -eq 0 -and $GroupNames.Count -eq 0) { + throw 'No assignment target provided. Supply AssignTo, GroupNames, or GroupIds.' + } + + # Try to get the application type if not provided. Mostly just useful for ppl using the API that dont know the application type. + if (-not $AppType) { + try { + $AppMetadata = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$appFilter" -tenantid $TenantFilter + $odataType = $AppMetadata.'@odata.type' + if ($odataType) { + $AppType = ($odataType -replace '#microsoft.graph.', '') -replace 'App$' + } + } catch { + Write-Warning "Unable to resolve application type for $appFilter. Continuing without assignment settings." + } + } + + $targetLabel = if ($AssignTo) { + $AssignTo + } elseif ($GroupNames.Count -gt 0) { + ($GroupNames -join ', ') + } elseif ($GroupIds.Count -gt 0) { + "GroupIds: $($GroupIds -join ',')" + } else { + 'CustomGroupAssignment' + } + + $setParams = @{ + ApplicationId = $appFilter + TenantFilter = $TenantFilter + Intent = $Intent + APIName = $APIName + Headers = $Headers + GroupName = ($AssignTo ? $AssignTo : $targetLabel) + AssignmentMode = $AssignmentMode + } + + if ($AppType) { + $setParams.AppType = $AppType + } + + if ($GroupIds.Count -gt 0) { + $setParams.GroupIds = $GroupIds + } + + try { + $Result = Set-CIPPAssignedApplication @setParams + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecSyncVPP.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecSyncVPP.ps1 new file mode 100644 index 000000000000..2dc3f4ed534a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecSyncVPP.ps1 @@ -0,0 +1,44 @@ +function Invoke-ExecSyncVPP { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev Debug + + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + try { + # Get all VPP tokens and sync them + $VppTokens = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/vppTokens' -tenantid $TenantFilter | Where-Object { $_.state -eq 'valid' } + + if ($null -eq $VppTokens -or $VppTokens.Count -eq 0) { + $Result = 'No VPP tokens found' + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + } else { + $SyncCount = 0 + foreach ($Token in $VppTokens) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/vppTokens/$($Token.id)/syncLicenses" -tenantid $TenantFilter + $SyncCount++ + } + $Result = "Successfully started VPP sync for $SyncCount tokens" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = 'Failed to start VPP sync' + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApplicationQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApplicationQueue.ps1 new file mode 100644 index 000000000000..aa9b53145eb4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApplicationQueue.ps1 @@ -0,0 +1,32 @@ +Function Invoke-ListApplicationQueue { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'apps' + $QueuedApps = (Get-CIPPAzDataTableEntity @Table) + + $CurrentApps = foreach ($QueueFile in $QueuedApps) { + Write-Host $QueueFile + $ApplicationFile = $QueueFile.JSON | ConvertFrom-Json -Depth 10 + [PSCustomObject]@{ + tenantName = $ApplicationFile.tenant + applicationName = $ApplicationFile.applicationName + cmdLine = $ApplicationFile.IntuneBody.installCommandLine + assignTo = $ApplicationFile.assignTo + id = $($QueueFile.RowKey) + status = $($QueueFile.status) + } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($CurrentApps) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 new file mode 100644 index 000000000000..d7376956e5c6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 @@ -0,0 +1,76 @@ +function Invoke-ListApps { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + # Use bulk requests to get groups and apps with assignments + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'Apps' + method = 'GET' + url = "/deviceAppManagement/mobileApps?`$top=999&`$expand=assignments&`$filter=(microsoft.graph.managedApp/appAvailability%20eq%20null%20or%20microsoft.graph.managedApp/appAvailability%20eq%20%27lineOfBusiness%27%20or%20isAssigned%20eq%20true)&`$orderby=displayName" + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + $Apps = ($BulkResults | Where-Object { $_.id -eq 'Apps' }).body.value + + $GraphRequest = foreach ($App in $Apps) { + # Process assignments + $AppAssignment = [System.Collections.Generic.List[string]]::new() + $AppExclude = [System.Collections.Generic.List[string]]::new() + + if ($App.assignments) { + foreach ($Assignment in $App.assignments) { + $target = $Assignment.target + $intent = $Assignment.intent + $intentSuffix = if ($intent) { " ($intent)" } else { '' } + + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $AppAssignment.Add("All Devices$intentSuffix") } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $AppAssignment.Add("All Licensed Users$intentSuffix") } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $AppAssignment.Add("$groupName$intentSuffix") } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $AppExclude.Add($groupName) } + } + } + } + } + + $App | Add-Member -NotePropertyName 'AppAssignment' -NotePropertyValue ($AppAssignment -join ', ') -Force + $App | Add-Member -NotePropertyName 'AppExclude' -NotePropertyValue ($AppExclude -join ', ') -Force + $App + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListAppsRepository.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListAppsRepository.ps1 new file mode 100644 index 000000000000..c79b99f2550e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListAppsRepository.ps1 @@ -0,0 +1,65 @@ +Function Invoke-ListAppsRepository { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.Application.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Search = $Request.Body.Search + $Repository = $Request.Body.Repository + $Packages = @() + $Message = '' + $IsError = $false + + try { + if (!([string]::IsNullOrEmpty($Search))) { + if ([string]::IsNullOrEmpty($Repository)) { + $Repository = 'https://chocolatey.org/api/v2' + } + + # Latest version, top 30 results matching search term + $SearchPath = "Search()?`$filter=IsLatestVersion&`$skip=0&`$top=30&searchTerm='$Search'&targetFramework=''&includePrerelease=false" + + $Url = "$Repository/$SearchPath" + $RepoPackages = Invoke-RestMethod $Url -ErrorAction Stop + + if (($RepoPackages | Measure-Object).Count -gt 0) { + $Packages = foreach ($RepoPackage in $RepoPackages) { + [PSCustomObject]@{ + packagename = $RepoPackage.title.'#text' + author = $RepoPackage.author.Name + applicationName = $RepoPackage.properties.Title + version = $RepoPackage.properties.Version + description = $RepoPackage.summary.'#text' + customRepo = $Repository + created = Get-Date -Date $RepoPackage.properties.Created.'#text' -Format 'MM/dd/yyyy HH:mm:ss' + } + } + } else { + $IsError = $true + $Message = 'No results found' + } + } else { + $IsError = $true + $Message = 'No search terms specified' + } + } catch { + $IsError = $true + $Message = "Repository error: $($_.Exception.Message)" + } + + $PackageSearch = @{ + Search = $Search + Results = @($Packages | Sort-Object -Property packagename) + Message = $Message + IsError = $IsError + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $PackageSearch + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveApp.ps1 new file mode 100644 index 000000000000..16f5f4444160 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveApp.ps1 @@ -0,0 +1,39 @@ +Function Invoke-RemoveApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $policyId = $Request.Query.ID ?? $Request.Body.ID + + if (!$policyId) { exit } + try { + #$unAssignRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($policyId)')/assign" -type POST -Body '{"assignments":[]}' -tenant $TenantFilter + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($policyId)" -type DELETE -tenant $TenantFilter + $Result = "Successfully deleted app with $policyId" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev Info -tenant $TenantFilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete app with $policyId. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 new file mode 100644 index 000000000000..f54ceb7c2cac --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 @@ -0,0 +1,37 @@ +using namespace System.Net + +function Invoke-RemoveQueuedApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $ID = $request.body.ID + try { + $Table = Get-CippTable -tablename 'apps' + $Filter = "PartitionKey eq 'apps' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Message = "Removed application queue for $ID." + Write-LogMessage -Headers $Request.Headers -API $APIName -message $Message -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove application queue for $ID. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Request.Headers -API $APIName -message $Message -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + $body = [pscustomobject]@{'Results' = $Message } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + } + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 new file mode 100644 index 000000000000..fc54f6a3bc74 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 @@ -0,0 +1,73 @@ +function Invoke-AddAPDevice { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + .DESCRIPTION + Adds Autopilot devices to a tenant via Partner Center API + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = (Get-Tenants | Where-Object { $_.defaultDomainName -eq $Request.Body.TenantFilter.value }).customerId + $GroupName = if ($Request.Body.Groupname) { $Request.Body.Groupname } else { (New-Guid).GUID } + Write-Host $GroupName + + $rawDevices = $Request.Body.autopilotData + $Devices = ConvertTo-Json @($rawDevices) + $Result = try { + $CurrentStatus = (New-GraphGetRequest -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + if ($GroupName -in $CurrentStatus.items.id) { + Write-Host 'Gonna do an update!' + $Body = $Request.Body.autopilotData | ForEach-Object { + $Device = $_ + [pscustomobject]@{ + deviceBatchId = $GroupName + hardwareHash = $Device.hardwareHash + serialNumber = $Device.SerialNumber + productKey = $Device.productKey + oemManufacturerName = $Device.oemManufacturerName + modelName = $Device.modelName + } + } + $Body = ConvertTo-Json -Depth 10 -Compress -InputObject @($Body) + Write-Host $Body + $GraphRequest = (New-GraphPOSTRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/deviceBatches/$GroupName/devices" -body $Body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + } else { + $Body = '{"batchId":"' + $($GroupName) + '","devices":' + $Devices + '}' + $GraphRequest = (New-GraphPOSTRequest -returnHeaders $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter/DeviceBatches" -body $Body -scope 'https://api.partnercenter.microsoft.com/user_impersonation') + } + $Amount = 0 + do { + Write-Host "Checking status of import job for $GroupName" + $Amount++ + Start-Sleep 1 + $NewStatus = New-GraphGetRequest -uri "https://api.partnercenter.microsoft.com/v1/$($GraphRequest.Location)" -scope 'https://api.partnercenter.microsoft.com/user_impersonation' + } until ($NewStatus.status -eq 'finished' -or $Amount -eq 4) + if ($NewStatus.status -ne 'finished') { throw 'Could not retrieve status of import - This job might still be running. Check the autopilot device list in 10 minutes for the latest status.' } + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $($Request.body.TenantFilter.value) -message "Created Autopilot devices group. Group ID is $GroupName" -Sev 'Info' + + [PSCustomObject]@{ + Status = 'Import Job Completed' + Devices = @($NewStatus.devicesStatus) + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::InternalServerError + [PSCustomObject]@{ + Status = "$($Request.Body.TenantFilter.value): Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" + Devices = @() + } + Write-LogMessage -headers $Headers -API $APIName -tenant $($Request.Body.TenantFilter.value) -message "Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 new file mode 100644 index 000000000000..ce2435d59f9f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 @@ -0,0 +1,43 @@ +function Invoke-AddAutopilotConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Input bindings are passed in via param block. + $Tenants = $Request.Body.selectedTenants.value + $Profbod = [pscustomobject]$Request.Body + $UserType = if ($Profbod.NotLocalAdmin -eq 'true') { 'standard' } else { 'administrator' } + $DeploymentMode = if ($Profbod.DeploymentMode -eq 'true') { 'shared' } else { 'singleUser' } + + # If deployment mode is shared, disable white glove (pre-provisioning) as it's not supported + $AllowWhiteGlove = if ($DeploymentMode -eq 'shared') { $false } else { $Profbod.allowWhiteGlove } + + $profileParams = @{ + DisplayName = $Request.Body.DisplayName + Description = $Request.Body.Description + UserType = $UserType + DeploymentMode = $DeploymentMode + AssignTo = $Request.Body.Assignto + DeviceNameTemplate = $Profbod.DeviceNameTemplate + AllowWhiteGlove = $AllowWhiteGlove + CollectHash = $Profbod.CollectHash + HideChangeAccount = $Profbod.HideChangeAccount + HidePrivacy = $Profbod.HidePrivacy + HideTerms = $Profbod.HideTerms + Autokeyboard = $Profbod.Autokeyboard + Language = $ProfBod.languages.value + } + $Results = foreach ($tenant in $Tenants) { + $profileParams['tenantFilter'] = $tenant + Set-CIPPDefaultAPDeploymentProfile @profileParams + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddEnrollment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddEnrollment.ps1 new file mode 100644 index 000000000000..9e183ea6be7c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddEnrollment.ps1 @@ -0,0 +1,34 @@ +function Invoke-AddEnrollment { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Input bindings are passed in via param block. + $Tenants = $Request.Body.selectedTenants.value + $Profbod = $Request.Body + $Results = foreach ($Tenant in $Tenants) { + $ParamSplat = @{ + TenantFilter = $Tenant + ShowProgress = $Profbod.ShowProgress + BlockDevice = $Profbod.blockDevice + AllowReset = $Profbod.AllowReset + EnableLog = $Profbod.EnableLog + ErrorMessage = $Profbod.ErrorMessage + TimeOutInMinutes = $Profbod.TimeOutInMinutes + AllowFail = $Profbod.AllowFail + OBEEOnly = $Profbod.OBEEOnly + InstallWindowsUpdates = $Profbod.InstallWindowsUpdates + } + Set-CIPPDefaultAPEnrollment @ParamSplat + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecAssignAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecAssignAPDevice.ps1 new file mode 100644 index 000000000000..16cb73c15e5e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecAssignAPDevice.ps1 @@ -0,0 +1,42 @@ +Function Invoke-ExecAssignAPDevice { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $User = $Request.Headers + Write-LogMessage -Headers $User -API $APINAME -message 'Accessed this API' -Sev 'Debug' + $TenantFilter = $Request.body.tenantFilter + + + try { + $UserObject = $Request.body.user.addedFields + $DeviceObject = $Request.body.device + $SerialNumber = $Request.body.serialNumber + $body = @{ + userPrincipalName = $UserObject.userPrincipalName + addressableUserName = $UserObject.addressableUserName + } | ConvertTo-Json + New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/$($DeviceObject)/UpdateDeviceProperties" -tenantid $TenantFilter -body $body -method POST | Out-Null + Write-LogMessage -Headers $User -API $APINAME -message "Successfully assigned device: $DeviceObject with Serial: $SerialNumber to $($UserObject.userPrincipalName) for $($TenantFilter)" -Sev Info + $Results = "Successfully assigned device: $DeviceObject with Serial: $SerialNumber to $($UserObject.userPrincipalName) for $($TenantFilter)" + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $User -API $APINAME -message "Could not assign $($UserObject.userPrincipalName) to $($DeviceObject) for $($TenantFilter) Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Results = "Could not assign $($UserObject.userPrincipalName) to $($DeviceObject) for $($TenantFilter) Error: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest + } + + $Results = [pscustomobject]@{'Results' = "$results" } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecRenameAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecRenameAPDevice.ps1 new file mode 100644 index 000000000000..b545a48fca38 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecRenameAPDevice.ps1 @@ -0,0 +1,56 @@ +Function Invoke-ExecRenameAPDevice { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.tenantFilter + + + try { + $DeviceId = $Request.Body.deviceId + $SerialNumber = $Request.Body.serialNumber + $DisplayName = $Request.Body.displayName + + # Validation + if ($DisplayName.Length -gt 15) { + $ValidationError = 'Display name cannot exceed 15 characters.' + } elseif ($DisplayName -notmatch '^[a-zA-Z0-9-]+$') { + # This regex also implicitly checks for spaces + $ValidationError = 'Display name can only contain letters (a-z, A-Z), numbers (0-9), and hyphens (-).' + } elseif ($DisplayName -match '^\d+$') { + $ValidationError = 'Display name cannot consist solely of numbers.' + } + + if ($null -ne $ValidationError) { + $Result = "Validation failed: $ValidationError" + $StatusCode = [HttpStatusCode]::BadRequest + } else { + # Validation passed, proceed with Graph API call + $body = @{ + displayName = $DisplayName + } | ConvertTo-Json + + New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/$($DeviceId)/UpdateDeviceProperties" -tenantid $TenantFilter -body $body -method POST | Out-Null + $Result = "Successfully renamed device '$($DeviceId)' with serial number '$($SerialNumber)' to '$($DisplayName)'" + Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Could not rename device '$($DeviceId)' with serial number '$($SerialNumber)' to '$($DisplayName)'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSetAPDeviceGroupTag.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSetAPDeviceGroupTag.ps1 new file mode 100644 index 000000000000..28fa75a659d2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSetAPDeviceGroupTag.ps1 @@ -0,0 +1,50 @@ +Function Invoke-ExecSetAPDeviceGroupTag { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Body.tenantFilter + + try { + $DeviceId = $Request.Body.deviceId + $SerialNumber = $Request.Body.serialNumber + $GroupTag = $Request.Body.groupTag + + # Validation - GroupTag can be empty, but if provided, validate it + if ($null -ne $GroupTag -and $GroupTag -ne '' -and $GroupTag.Length -gt 128) { + $ValidationError = 'Group tag cannot exceed 128 characters.' + } + + if ($null -ne $ValidationError) { + $Result = "Validation failed: $ValidationError" + $StatusCode = [HttpStatusCode]::BadRequest + } else { + # Validation passed, proceed with Graph API call + $body = @{ + groupTag = $GroupTag + } | ConvertTo-Json + + New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/$($DeviceId)/UpdateDeviceProperties" -tenantid $TenantFilter -body $body -method POST | Out-Null + $Result = "Successfully updated group tag for device '$($DeviceId)' with serial number '$($SerialNumber)' to '$($GroupTag)'" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Could not update group tag for device '$($DeviceId)' with serial number '$($SerialNumber)' to '$($GroupTag)'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSyncAPDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSyncAPDevices.ps1 new file mode 100644 index 000000000000..81139053e039 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ExecSyncAPDevices.ps1 @@ -0,0 +1,34 @@ +Function Invoke-ExecSyncAPDevices { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + try { + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotSettings/sync' -tenantid $TenantFilter + $Results = "Successfully Started Sync for $($TenantFilter)" + Write-LogMessage -Headers $Headers -API $APINAME -tenant $TenantFilter -message 'Successfully started Autopilot sync' -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to start sync for $TenantFilter. Did you try syncing in the last 10 minutes?" + Write-LogMessage -Headers $Headers -API $APINAME -tenant $TenantFilter -message 'Failed to start Autopilot sync. Did you try syncing in the last 10 minutes?' -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + $Results = [pscustomobject]@{'Results' = "$Results" } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAPDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAPDevices.ps1 new file mode 100644 index 000000000000..929fc774db76 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAPDevices.ps1 @@ -0,0 +1,26 @@ +Function Invoke-ListAPDevices { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities?`$top=999" -tenantid $TenantFilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAutopilotconfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAutopilotconfig.ps1 new file mode 100644 index 000000000000..458782d1215d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-ListAutopilotconfig.ps1 @@ -0,0 +1,33 @@ +function Invoke-ListAutopilotconfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + if ($Request.Query.type -eq 'ApProfile') { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles?`$expand=assignments" -tenantid $TenantFilter + } + + if ($Request.Query.type -eq 'ESP') { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments" -tenantid $TenantFilter | + Where-Object -Property '@odata.type' -EQ '#microsoft.graph.windows10EnrollmentCompletionPageConfiguration' + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAPDevice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAPDevice.ps1 new file mode 100644 index 000000000000..466801ea9e9c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAPDevice.ps1 @@ -0,0 +1,40 @@ +Function Invoke-RemoveAPDevice { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $Deviceid = $Request.Query.ID ?? $Request.body.ID + + try { + if ($null -eq $TenantFilter -or $TenantFilter -eq 'null') { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/$Deviceid" -type DELETE + } else { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/$Deviceid" -tenantid $TenantFilter -type DELETE + } + $Result = "Deleted autopilot device $Deviceid" + Write-LogMessage -headers $Request.Headers -tenant $TenantFilter -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete device $($Deviceid): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Request.Headers -tenant $TenantFilter -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + # Force a sync, this can give "too many requests" if deleting a bunch of devices though. + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotSettings/sync' -tenantid $TenantFilter -type POST -body '{}' + + $Body = [pscustomobject]@{'Results' = "$Result" } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAutopilotConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAutopilotConfig.ps1 new file mode 100644 index 000000000000..ae9e4516eb38 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-RemoveAutopilotConfig.ps1 @@ -0,0 +1,53 @@ +function Invoke-RemoveAutopilotConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Autopilot.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $ProfileId = $Request.Body.ID + $DisplayName = $Request.Body.displayName + $Assignments = $Request.Body.assignments + + try { + # Validate required parameters + if ([string]::IsNullOrEmpty($ProfileId)) { + throw 'Profile ID is required' + } + + if ([string]::IsNullOrEmpty($TenantFilter)) { + throw 'Tenant filter is required' + } + + # Call the helper function to delete the autopilot profile + $params = @{ + ProfileId = $ProfileId + DisplayName = $DisplayName + TenantFilter = $TenantFilter + Assignments = $Assignments + Headers = $Headers + APIName = $APIName + } + $Result = Remove-CIPPAutopilotProfile @params + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = $_.Exception.Message + $Result = $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 new file mode 100644 index 000000000000..2ca6a2f6ac72 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilter.ps1 @@ -0,0 +1,41 @@ +function Invoke-AddAssignmentFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $SelectedTenants = if ('AllTenants' -in $Request.body.tenantFilter) { (Get-Tenants).defaultDomainName } else { $Request.body.tenantFilter.value ? $Request.body.tenantFilter.value : $Request.body.tenantFilter } + + $FilterObject = $Request.body + + $Results = foreach ($tenant in $SelectedTenants) { + try { + # Use the centralized New-CIPPAssignmentFilter function + $Result = New-CIPPAssignmentFilter -FilterObject $FilterObject -TenantFilter $tenant -APIName $APIName -ExecutingUser $Headers.'x-ms-client-principal-name' + + if ($Result.Success) { + "Successfully created assignment filter $($FilterObject.displayName) for $($tenant)" + $StatusCode = [HttpStatusCode]::OK + } else { + throw $Result.Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Assignment filter creation API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + "Failed to create assignment filter $($FilterObject.displayName) for $($tenant): $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilterTemplate.ps1 new file mode 100644 index 000000000000..1c1acccfdad2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddAssignmentFilterTemplate.ps1 @@ -0,0 +1,65 @@ +function Invoke-AddAssignmentFilterTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $GUID = $Request.Body.GUID ?? (New-Guid).GUID + try { + if (!$Request.Body.displayName) { + throw 'You must enter a displayname' + } + + if (!$Request.Body.rule) { + throw 'You must enter a filter rule' + } + + if (!$Request.Body.platform) { + throw 'You must select a platform' + } + + # Normalize field names to handle different casing from various forms + $displayName = $Request.Body.displayName ?? $Request.Body.Displayname ?? $Request.Body.displayname + $description = $Request.Body.description ?? $Request.Body.Description + $platform = $Request.Body.platform + $rule = $Request.Body.rule + $assignmentFilterManagementType = $Request.Body.assignmentFilterManagementType ?? 'devices' + + $object = [PSCustomObject]@{ + displayName = $displayName + description = $description + platform = $platform + rule = $rule + assignmentFilterManagementType = $assignmentFilterManagementType + GUID = $GUID + } | ConvertTo-Json + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Force -Entity @{ + JSON = "$object" + RowKey = "$GUID" + PartitionKey = 'AssignmentFilterTemplate' + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created Assignment Filter template named $displayName with GUID $GUID" -Sev 'Debug' + + $body = [pscustomobject]@{'Results' = 'Successfully added template' } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Assignment Filter Template Creation failed: $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Assignment Filter Template Creation failed: $($_.Exception.Message)" } + } + + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddDefenderDeployment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddDefenderDeployment.ps1 new file mode 100644 index 000000000000..efa9cddcd24b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddDefenderDeployment.ps1 @@ -0,0 +1,371 @@ +function Invoke-AddDefenderDeployment { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Tenants = ($Request.Body.selectedTenants).value + if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants -IncludeErrors).defaultDomainName } + $Compliance = $Request.Body.Compliance + $PolicySettings = $Request.Body.Policy + $DefenderExclusions = $Request.Body.Exclusion + $ASR = $Request.Body.ASR + $EDR = $Request.Body.EDR + $Results = foreach ($tenant in $Tenants) { + try { + if ($Compliance) { + $SettingsObject = @{ + id = 'fc780465-2017-40d4-a0c5-307022471b92' + androidEnabled = [bool]$Compliance.ConnectAndroid + iosEnabled = [bool]$Compliance.ConnectIos + windowsEnabled = [bool]$Compliance.Connectwindows + macEnabled = [bool]$Compliance.ConnectMac + partnerUnsupportedOsVersionBlocked = [bool]$Compliance.BlockunsupportedOS + partnerUnresponsivenessThresholdInDays = 7 + allowPartnerToCollectIOSApplicationMetadata = [bool]$Compliance.ConnectIosCompliance + allowPartnerToCollectIOSPersonalApplicationMetadata = [bool]$Compliance.ConnectIosCompliance + androidMobileApplicationManagementEnabled = [bool]$Compliance.ConnectAndroidCompliance + iosMobileApplicationManagementEnabled = [bool]$Compliance.appSync + microsoftDefenderForEndpointAttachEnabled = [bool]$true + } + $SettingsObj = $SettingsObject | ConvertTo-Json -Compress + try { + $ExistingSettings = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/mobileThreatDefenseConnectors/fc780465-2017-40d4-a0c5-307022471b92' -tenantid $tenant + + # Check if any setting doesn't match + foreach ($key in $SettingsObject.Keys) { + if ($ExistingSettings.$key -ne $SettingsObject[$key]) { + $ExistingSettings = $false + break + } + } + } catch { + $ExistingSettings = $false + } + if ($ExistingSettings) { + "Defender Intune Configuration already correct and active for $($tenant). Skipping" + } else { + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/mobileThreatDefenseConnectors/' -tenantid $tenant -type POST -body $SettingsObj -AsApp $true + "$($tenant): Successfully set Defender Compliance and Reporting settings. Please remember to enable the Intune Connector in the Defender portal." + } + } + + + if ($PolicySettings) { + $Settings = switch ($PolicySettings) { + { $_.ScanArchives } { + @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowarchivescanning'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_allowarchivescanning_1'; settingValueTemplateReference = @{settingValueTemplateId = '9ead75d4-6f30-4bc5-8cc5-ab0f999d79f0' } }; settingInstanceTemplateReference = @{settingInstanceTemplateId = '7c5c9cde-f74d-4d11-904f-de4c27f72d89' } } } + } { $_.AllowBehavior } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowbehaviormonitoring' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_allowbehaviormonitoring_1'; settingValueTemplateReference = @{settingValueTemplateId = '905921da-95e2-4a10-9e30-fe5540002ce1' } }; settingInstanceTemplateReference = @{settingInstanceTemplateId = '8eef615a-1aa0-46f4-a25a-12cbe65de5ab' } } } + } { $_.AllowCloudProtection } { + @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowcloudprotection'; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowcloudprotection_1'; settingValueTemplateReference = @{settingValueTemplateId = '16fe8afd-67be-4c50-8619-d535451a500c' } }; settingInstanceTemplateReference = @{settingInstanceTemplateId = '7da139f1-9b7e-407d-853a-c2e5037cdc70' } } } + } { $_.AllowEmailScanning } { + @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowemailscanning' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowemailscanning_1'; settingValueTemplateReference = @{settingValueTemplateId = 'fdf107fd-e13b-4507-9d8f-db4d93476af9' } }; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'b0d9ee81-de6a-4750-86d7-9397961c9852' } } } + } { $_.AllowFullScanNetwork } { + @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowfullscanonmappednetworkdrives' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowfullscanonmappednetworkdrives_1' ; settingValueTemplateReference = @{settingValueTemplateId = '3e920b10-3773-4ac5-957e-e5573aec6d04' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'dac47505-f072-48d6-9f23-8d93262d58ed' } } } + } { $_.AllowFullScanRemovable } { + @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowfullscanremovabledrivescanning' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_allowfullscanremovabledrivescanning_1' ; settingValueTemplateReference = @{settingValueTemplateId = '366c5727-629b-4a81-b50b-52f90282fa2c' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'fb36e70b-5bc9-488a-a949-8ea3ac1634d5' } } } + } { $_.AllowDownloadable } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowioavprotection' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowioavprotection_1'; settingValueTemplateReference = @{settingValueTemplateId = 'df4e6cbd-f7ff-41c8-88cd-fa25264a237e' } }; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'fa06231d-aed4-4601-b631-3a37e85b62a0' } } } + } { $_.AllowRealTime } { + @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowrealtimemonitoring'; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_allowrealtimemonitoring_1'; settingValueTemplateReference = @{settingValueTemplateId = '0492c452-1069-4b91-9363-93b8e006ab12' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'f0790e28-9231-4d37-8f44-84bb47ca1b3e' } } } + } { $_.AllowNetwork } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowscanningnetworkfiles' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_allowscanningnetworkfiles_1' ; settingValueTemplateReference = @{settingValueTemplateId = '7b8c858c-a17d-4623-9e20-f34b851670ce' } }; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'f8f28442-0a6b-4b52-b42c-d31d9687c1cf' } } } + } { $_.AllowScriptScan } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowscriptscanning'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowscriptscanning_1'; settingValueTemplateReference = @{settingValueTemplateId = 'ab9e4320-c953-4067-ac9a-be2becd06b4a' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = '000cf176-949c-4c08-a5d4-90ed43718db7' } } } + } { $_.AllowUI } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowuseruiaccess' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_allowuseruiaccess_1' ; settingValueTemplateReference = @{settingValueTemplateId = '4b6c9739-4449-4006-8e5f-3049136470ea' } }; settingInstanceTemplateReference = @{settingInstanceTemplateId = '0170a900-b0bc-4ccc-b7ce-dda9be49189b' } } } + } { $_.CheckSigs } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_checkforsignaturesbeforerunningscan' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_checkforsignaturesbeforerunningscan_1' ; settingValueTemplateReference = @{settingValueTemplateId = '010779d1-edd4-441d-8034-89ad57a863fe' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = '4fea56e3-7bb6-4ad3-88c6-e364dd2f97b9' } } } + } { $_.DisableCatchupFullScan } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_disablecatchupfullscan'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_disablecatchupfullscan_1' ; settingValueTemplateReference = @{settingValueTemplateId = '1b26092f-48c4-447b-99d4-e9c501542f1c' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'f881b08c-f047-40d2-b7d9-3dde7ce9ef64' } } } + } { $_.DisableCatchupQuickScan } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_disablecatchupquickscan' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = 'device_vendor_msft_policy_config_defender_disablecatchupquickscan_1' ; settingValueTemplateReference = @{settingValueTemplateId = 'd263ced7-0d23-4095-9326-99c8b3f5d35b' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'dabf6781-9d5d-42da-822a-d4327aa2bdd1' } } } + } { $_.EnableNetworkProtection } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_enablenetworkprotection' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_enablenetworkprotection_$($_.EnableNetworkProtection.value)" ; settingValueTemplateReference = @{settingValueTemplateId = 'ee58fb51-9ae5-408b-9406-b92b643f388a' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'f53ab20e-8af6-48f5-9fa1-46863e1e517e' } } } + } { $_.LowCPU } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_enablelowcpupriority' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_policy_config_defender_enablelowcpupriority_1' ; settingValueTemplateReference = @{settingValueTemplateId = '045a4a13-deee-4e24-9fe4-985c9357680d' } } ; settingInstanceTemplateReference = @{settingInstanceTemplateId = 'cdeb96cf-18f5-4477-a710-0ea9ecc618af' } } } + } { $_.CloudBlockLevel } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_cloudblocklevel'; settingInstanceTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'c7a37009-c16e-4145-84c8-89a8c121fb15' }; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_cloudblocklevel_$($_.CloudBlockLevel.value ?? '0')"; settingValueTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '517b4e84-e933-42b9-b92f-00e640b1a82d' } } } } + } { $_.AvgCPULoadFactor } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_avgcpuloadfactor' ; settingInstanceTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference' ; settingInstanceTemplateId = '816cc03e-8f96-4cba-b14f-2658d031a79a' } ; simpleSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationIntegerSettingValue'; value = ($_.AvgCPULoadFactor ?? 50); settingValueTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '37195fb1-3743-4c8e-a0ce-b6fae6fa3acd' } } } } + } { $_.CloudExtendedTimeout } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' ; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_cloudextendedtimeout'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'f61c2788-14e4-4e80-a5a7-bf2ff5052f63' }; simpleSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationIntegerSettingValue'; value = ($_.CloudExtendedTimeout ?? 50); settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '608f1561-b603-46bd-bf5f-0b9872002f75' } } } } + } { $_.SignatureUpdateInterval } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_signatureupdateinterval'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = '89879f27-6b7d-44d4-a08e-0a0de3e9663d' }; simpleSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationIntegerSettingValue'; value = ($_.SignatureUpdateInterval ?? 8); settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '0af6bbed-a74a-4d08-8587-b16b10b774cb' } } } } + } { $_.MeteredConnectionUpdates } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_defender_configuration_meteredconnectionupdates'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = '7e3aaffb-309f-46de-8cd7-25c1a3b19e5b' }; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_defender_configuration_meteredconnectionupdates_1'; settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '20cf972c-be3f-4bc1-93d3-781829d55233' } } } } + } { $_.AllowOnAccessProtection } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_allowonaccessprotection'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'afbc322b-083c-4281-8242-ebbb91398b41' }; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_allowonaccessprotection_$($_.AllowOnAccessProtection.value ?? '1')"; settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = 'ed077fee-9803-44f3-b045-aab34d8e6d52' } } } } + } { $_.DisableLocalAdminMerge } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_defender_configuration_disablelocaladminmerge'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = '5f9a9c65-dea7-4987-a5f5-b28cfd9762ba' }; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = 'device_vendor_msft_defender_configuration_disablelocaladminmerge_1'; settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '3a9774b2-3143-47eb-bbca-d73c0ace2b7e' } } } } + } { $_.SubmitSamplesConsent } { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_submitsamplesconsent'; settingInstanceTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'bc47ce7d-a251-4cae-a8a2-6e8384904ab7' }; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_submitsamplesconsent_$($_.SubmitSamplesConsent.value ?? '2')"; settingValueTemplateReference = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingValueTemplateReference'; settingValueTemplateId = '826ed4b6-e04f-4975-9d23-6f0904b0d87e' } } } } + } { $_.Remediation } { + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting'; settingInstance = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction'; settingInstanceTemplateReference = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSettingInstanceTemplateReference'; settingInstanceTemplateId = 'f6394bc5-6486-4728-b510-555f5c161f2b' } + groupSettingCollectionValue = @(@{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingValue' + children = @( + if ($_.Remediation.Low) { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats_$($_.Remediation.Low.value)" } } } + if ($_.Remediation.Moderate) { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats_$($_.Remediation.Moderate.value)" } } } + if ($_.Remediation.High) { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats_$($_.Remediation.High.value)" } } } + if ($_.Remediation.Severe) { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats_$($_.Remediation.Severe.value)" } } } + ) + } + ) + } + } + } + + } + $CheckExisting = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant + Write-Host ($CheckExisting | ConvertTo-Json) + if ('Default AV Policy' -in $CheckExisting.Name) { + "$($tenant): AV Policy already exists. Skipping" + } else { + $PolBody = ConvertTo-Json -Depth 10 -Compress -InputObject @{ + name = 'Default AV Policy' + description = '' + platforms = 'windows10' + technologies = 'mdm,microsoftSense' + roleScopeTagIds = @('0') + templateReference = @{templateId = '804339ad-1553-4478-a742-138fb5807418_1' } + settings = @($Settings) + } + + Write-Information ($PolBody) + + $PolicyRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant -type POST -body $PolBody + if ($PolicySettings.AssignTo -ne 'None') { + $AssignBody = if ($PolicySettings.AssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($PolicySettings.AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($PolicyRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody + Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenant) -message "Assigned policy $($DisplayName) to $($PolicySettings.AssignTo)" -Sev 'Info' + } + "$($tenant): Successfully set Default AV Policy settings" + } + } + if ($ASR) { + # Fallback to block mode + $Mode = $ASR.Mode ?? 'block' + $ASRSettings = switch ($ASR) { + { $_.BlockObfuscatedScripts } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue'; ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts_$Mode" } } } + { $_.BlockAdobeChild } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockadobereaderfromcreatingchildprocesses' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue'; ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockadobereaderfromcreatingchildprocesses_$Mode" } } } + { $_.BlockWin32Macro } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue'; ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros_$Mode" } } } + { $_.BlockCredentialStealing } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem_$Mode" } } } + { $_.BlockPSExec } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands'; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands_$Mode" } } } + { $_.WMIPersistence } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockpersistencethroughwmieventsubscription' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockpersistencethroughwmieventsubscription_$Mode" } } } + { $_.BlockOfficeExes } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent_$Mode" } } } + { $_.BlockOfficeApps } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses_$Mode" } } } + { $_.BlockYoungExe } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion_$Mode" } } } + { $_.blockJSVB } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent_$Mode" } } } + { $_.BlockWebshellForServers } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwebshellcreationforservers' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwebshellcreationforservers_$Mode" } } } + { $_.blockOfficeComChild } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses_$Mode" } } } + { $_.BlockSystemTools } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuseofcopiedorimpersonatedsystemtools' ; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuseofcopiedorimpersonatedsystemtools_$Mode" } } } + { $_.blockOfficeChild } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses_$Mode" } } } + { $_.BlockUntrustedUSB } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' ; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb'; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb_$Mode" } } } + { $_.EnableRansomwareVac } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware'; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_$Mode" } } } + { $_.BlockExesMail } { @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail' ; choiceSettingValue = @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue' ; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail_$Mode" } } } + { $_.BlockUnsignedDrivers } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers_$Mode" } } } + { $_.BlockSafeMode } { @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance'; settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockrebootingmachineinsafemode'; choiceSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationchoiceSettingValue'; value = "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockrebootingmachineinsafemode_$Mode" } } } + + } + $ASRbody = ConvertTo-Json -Depth 15 -Compress -InputObject @{ + name = 'ASR Default rules' + description = '' + platforms = 'windows10' + technologies = 'mdm,microsoftSense' + roleScopeTagIds = @('0') + templateReference = @{templateId = 'e8c053d6-9f95-42b1-a7f1-ebfd71c67a4b_1' } + settings = @(@{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationGroupSettingCollectionInstance' + settingDefinitionId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' + groupSettingCollectionValue = @(@{children = $ASRSettings }) + settingInstanceTemplateReference = @{settingInstanceTemplateId = '19600663-e264-4c02-8f55-f2983216d6d7' } + } + }) + } + $CheckExististingASR = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant + if ('ASR Default rules' -in $CheckExististingASR.Name) { + "$($tenant): ASR Policy already exists. Skipping" + } else { + Write-Host $ASRbody + if (($ASRSettings | Measure-Object).Count -gt 0) { + $ASRRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant -type POST -body $ASRbody + Write-Host ($ASRRequest.id) + if ($ASR.AssignTo -and $ASR.AssignTo -ne 'none') { + $AssignBody = if ($ASR.AssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($asr.AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($ASRRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody + Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenant) -message "Assigned policy $($DisplayName) to $($ASR.AssignTo)" -Sev 'Info' + } + "$($tenant): Successfully added ASR Settings" + } + } + } + if ($EDR) { + $EDRSettings = switch ($EDR) { + { $_.SampleSharing } { + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + settingDefinitionId = 'device_vendor_msft_windowsadvancedthreatprotection_configuration_samplesharing' + choiceSettingValue = @{ + settingValueTemplateReference = @{settingValueTemplateId = 'f72c326c-7c5b-4224-b890-0b9b54522bd9' } + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' + 'value' = 'device_vendor_msft_windowsadvancedthreatprotection_configuration_samplesharing_1' + } + settingInstanceTemplateReference = @{settingInstanceTemplateId = '6998c81e-2814-4f5e-b492-a6159128a97b' } + } + } + } + + { $_.Config } { + @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSetting' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingInstance' + settingDefinitionId = 'device_vendor_msft_windowsadvancedthreatprotection_configurationtype' + choiceSettingValue = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationChoiceSettingValue' + 'value' = 'device_vendor_msft_windowsadvancedthreatprotection_configurationtype_autofromconnector' + settingValueTemplateReference = @{settingValueTemplateId = 'e5c7c98c-c854-4140-836e-bd22db59d651' } + children = @(@{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingInstance' ; settingDefinitionId = 'device_vendor_msft_windowsadvancedthreatprotection_onboarding_fromconnector' ; simpleSettingValue = @{'@odata.type' = '#microsoft.graph.deviceManagementConfigurationSecretSettingValue' ; value = 'Microsoft ATP connector enabled'; valueState = 'NotEncrypted' } } ) + } + + settingInstanceTemplateReference = @{settingInstanceTemplateId = '23ab0ea3-1b12-429a-8ed0-7390cf699160' } + } + } + + } + } + if (($EDRSettings | Measure-Object).Count -gt 0) { + $EDRbody = ConvertTo-Json -Depth 15 -Compress -InputObject @{ + name = 'EDR Configuration' + description = '' + platforms = 'windows10' + technologies = 'mdm,microsoftSense' + roleScopeTagIds = @('0') + templateReference = @{templateId = '0385b795-0f2f-44ac-8602-9f65bf6adede_1' } + settings = @($EDRSettings) + } + Write-Host ( $EDRbody) + $CheckExististingEDR = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant | Where-Object -Property Name -EQ 'EDR Configuration' + if ('EDR Configuration' -in $CheckExististingEDR.Name) { + "$($tenant): EDR Policy already exists. Skipping" + } else { + $EDRRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant -type POST -body $EDRbody + # Assign if needed + if ($EDR.AssignTo -and $EDR.AssignTo -ne 'none') { + $AssignBody = if ($EDR.AssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($EDR.AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($EDRRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody + Write-LogMessage -headers $Headers -API $APIName -tenant $($tenant) -message "Assigned EDR policy $($DisplayName) to $($EDR.AssignTo)" -Sev 'Info' + } + "$($tenant): Successfully added EDR Settings" + } + } + } + # Exclusion Policy Section + if ($DefenderExclusions) { + $ExclusionAssignTo = $DefenderExclusions.AssignTo + if ($DefenderExclusions.excludedExtensions) { + $ExcludedExtensions = $DefenderExclusions.excludedExtensions | Where-Object { $_ -and $_.Trim() } | ForEach-Object { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue'; value = $_ } + } + } + if ($DefenderExclusions.excludedPaths) { + $ExcludedPaths = $DefenderExclusions.excludedPaths | Where-Object { $_ -and $_.Trim() } | ForEach-Object { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue'; value = $_ } + } + } + if ($DefenderExclusions.excludedProcesses) { + $ExcludedProcesses = $DefenderExclusions.excludedProcesses | Where-Object { $_ -and $_.Trim() } | ForEach-Object { + @{ '@odata.type' = '#microsoft.graph.deviceManagementConfigurationStringSettingValue'; value = $_ } + } + } + $ExclusionSettings = [System.Collections.Generic.List[System.Object]]::new() + if ($ExcludedExtensions.Count -gt 0) { + $ExclusionSettings.Add(@{ + id = '2' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' + settingDefinitionId = 'device_vendor_msft_policy_config_defender_excludedextensions' + settingInstanceTemplateReference = @{ settingInstanceTemplateId = 'c203725b-17dc-427b-9470-673a2ce9cd5e' } + simpleSettingCollectionValue = @($ExcludedExtensions) + } + }) + } + if ($ExcludedPaths.Count -gt 0) { + $ExclusionSettings.Add(@{ + id = '1' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' + settingDefinitionId = 'device_vendor_msft_policy_config_defender_excludedpaths' + settingInstanceTemplateReference = @{ settingInstanceTemplateId = 'aaf04adc-c639-464f-b4a7-152e784092e8' } + simpleSettingCollectionValue = @($ExcludedPaths) + } + }) + } + if ($ExcludedProcesses.Count -gt 0) { + $ExclusionSettings.Add(@{ + id = '0' + settingInstance = @{ + '@odata.type' = '#microsoft.graph.deviceManagementConfigurationSimpleSettingCollectionInstance' + settingDefinitionId = 'device_vendor_msft_policy_config_defender_excludedprocesses' + settingInstanceTemplateReference = @{ settingInstanceTemplateId = '96b046ed-f138-4250-9ae0-b0772a93d16f' } + simpleSettingCollectionValue = @($ExcludedProcesses) + } + }) + } + if ($ExclusionSettings.Count -gt 0) { + $ExclusionBody = ConvertTo-Json -Depth 15 -Compress -InputObject @{ + name = 'Default AV Exclusion Policy' + displayName = 'Default AV Exclusion Policy' + settings = @($ExclusionSettings) + platforms = 'windows10' + technologies = 'mdm,microsoftSense' + templateReference = @{ + templateId = '45fea5e9-280d-4da1-9792-fb5736da0ca9_1' + templateFamily = 'endpointSecurityAntivirus' + templateDisplayName = 'Microsoft Defender Antivirus exclusions' + templateDisplayVersion = 'Version 1' + } + } + $CheckExistingExclusion = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant + if ('Default AV Exclusion Policy' -in $CheckExistingExclusion.Name) { + "$($tenant): Exclusion Policy already exists. Skipping" + } else { + $ExclusionRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' -tenantid $tenant -type POST -body $ExclusionBody + if ($ExclusionAssignTo -and $ExclusionAssignTo -ne 'none') { + $AssignBody = if ($ExclusionAssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($ExclusionAssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($ExclusionRequest.id)')/assign" -tenantid $tenant -type POST -body $AssignBody + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Assigned Exclusion policy to $($ExclusionAssignTo)" -Sev 'Info' + } + "$($tenant): Successfully set Default AV Exclusion Policy settings" + } + } + } + } catch { + "Failed to add policy for $($tenant): $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API $APIName -tenant $tenant -message "Failed adding policy $($DisplayName). Error: $($_.Exception.Message)" -Sev 'Error' + continue + } + + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @($Results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 new file mode 100644 index 000000000000..22c029fb5b16 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 @@ -0,0 +1,77 @@ +function Invoke-AddIntuneTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $GUID = (New-Guid).GUID + try { + if ($Request.Body.RawJSON) { + if (!$Request.Body.displayName) { throw 'You must enter a displayName' } + if ($null -eq ($Request.Body.RawJSON | ConvertFrom-Json)) { throw 'the JSON is invalid' } + + + $object = [PSCustomObject]@{ + Displayname = $Request.Body.displayName + Description = $Request.Body.description + RAWJson = $Request.Body.RawJSON + Type = $Request.Body.TemplateType + GUID = $GUID + } | ConvertTo-Json + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = "$GUID" + PartitionKey = 'IntuneTemplate' + } + Write-LogMessage -headers $Headers -API $APIName -message "Created intune policy template named $($Request.Body.displayName) with GUID $GUID" -Sev 'Debug' + + $Result = 'Successfully added template' + $StatusCode = [HttpStatusCode]::OK + } else { + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + $URLName = $Request.Body.URLName ?? $Request.Query.URLName + $ID = $Request.Body.ID ?? $Request.Query.ID + $ODataType = $Request.Body.ODataType ?? $Request.Query.ODataType + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $ID -ODataType $ODataType + Write-Host "Template: $Template" + $object = [PSCustomObject]@{ + Displayname = $Template.DisplayName + Description = $Template.Description + RAWJson = $Template.TemplateJson + Type = $Template.Type + GUID = $GUID + } | ConvertTo-Json + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = "$GUID" + PartitionKey = 'IntuneTemplate' + } + Write-LogMessage -headers $Headers -API $APIName -message "Created intune policy template $($Request.Body.displayName) with GUID $GUID using an original policy from a tenant" -Sev 'Debug' + + $Result = 'Successfully added template' + $StatusCode = [HttpStatusCode]::OK + } + } catch { + $StatusCode = [HttpStatusCode]::InternalServerError + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Intune Template Deployment failed: $($ErrorMessage.NormalizedMessage)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 new file mode 100644 index 000000000000..5aaf4692faac --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 @@ -0,0 +1,51 @@ +function Invoke-AddPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $Tenants = $Request.Body.tenantFilter.value ? $Request.Body.tenantFilter.value : $Request.Body.tenantFilter + if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } + + $DisplayName = $Request.Body.displayName + $description = $Request.Body.Description + $AssignTo = if ($Request.Body.AssignTo -ne 'on') { $Request.Body.AssignTo } + $ExcludeGroup = $Request.Body.excludeGroup + $Request.Body.customGroup ? ($AssignTo = $Request.Body.customGroup) : $null + $RawJSON = $Request.Body.RAWJson + + $Results = foreach ($Tenant in $Tenants) { + if ($Request.Body.replacemap.$Tenant) { + ([pscustomobject]$Request.Body.replacemap.$Tenant).PSObject.Properties | ForEach-Object { $RawJSON = $RawJSON -replace $_.name, $_.value } + } + try { + Write-Host 'Calling Adding policy' + $params = @{ + TemplateType = $Request.Body.TemplateType + Description = $description + DisplayName = $DisplayName + RawJSON = $RawJSON + AssignTo = $AssignTo + ExcludeGroup = $ExcludeGroup + tenantFilter = $Tenant + Headers = $Headers + APIName = $APIName + } + Set-CIPPIntunePolicy @params + } catch { + "$($_.Exception.Message)" + continue + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 new file mode 100644 index 000000000000..a3fda1715b35 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditAssignmentFilter.ps1 @@ -0,0 +1,61 @@ +function Invoke-EditAssignmentFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Body.tenantFilter + + try { + $FilterId = $Request.Body.filterId + $DisplayName = $Request.Body.displayName + $Description = $Request.Body.description + $Rule = $Request.Body.rule + + if (!$FilterId) { + throw 'Filter ID is required' + } + + # Build the update body + # Note: Platform and assignmentFilterManagementType cannot be changed after creation per Graph API restrictions + $UpdateBody = @{} + + if (-not [string]::IsNullOrWhiteSpace($DisplayName)) { + $UpdateBody.displayName = $DisplayName + } + + if ($null -ne $Description) { + $UpdateBody.description = $Description + } + + if (-not [string]::IsNullOrWhiteSpace($Rule)) { + $UpdateBody.rule = $Rule + } + + # Update the assignment filter + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$FilterId" -tenantid $TenantFilter -type PATCH -body (ConvertTo-Json -InputObject $UpdateBody -Depth 10) + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Updated assignment filter $($DisplayName)" -Sev Info + + $Result = "Successfully updated assignment filter $($DisplayName)" + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to update assignment filter: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Result = "Failed to update assignment filter: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntunePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntunePolicy.ps1 new file mode 100644 index 000000000000..98da51021648 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntunePolicy.ps1 @@ -0,0 +1,48 @@ +Function Invoke-EditIntunePolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.ID ?? $Request.Body.ID + $DisplayName = $Request.Query.newDisplayName ?? $Request.Body.newDisplayName + $PolicyType = $Request.Query.policyType ?? $Request.Body.policyType + + try { + $properties = @{} + + # Only add displayName if it's provided + if ($DisplayName) { + $properties["displayName"] = $DisplayName + } + + # Update the policy + $Request = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$PolicyType/$ID" -tenantid $TenantFilter -type PATCH -body ($properties | ConvertTo-Json) -asapp $true + + $Result = "Successfully updated Intune policy $($ID)" + if ($DisplayName) { $Result += " name to '$($DisplayName)'" } + + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to update Intune policy $($ID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntuneScript.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntuneScript.ps1 new file mode 100644 index 000000000000..1674a0f7cd6d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditIntuneScript.ps1 @@ -0,0 +1,124 @@ +function Invoke-EditIntuneScript { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + $graphUrl = 'https://graph.microsoft.com/beta' + + # Define the endpoint based on script type + function Get-ScriptEndpoint { + param ( + [Parameter(Mandatory = $true)] + [string]$ScriptType + ) + + switch ($ScriptType) { + 'Windows' { return 'deviceManagement/deviceManagementScripts' } + 'MacOS' { return 'deviceManagement/deviceShellScripts' } + 'Remediation' { return 'deviceManagement/deviceHealthScripts' } + 'Linux' { return 'deviceManagement/configurationPolicies' } + default { return 'deviceManagement/deviceManagementScripts' } + } + } + + switch ($Request.Method) { + 'GET' { + # First get the script type by querying the script ID + $scriptId = $Request.Query.ScriptId + $scriptTypeFound = $false + + # Try each endpoint to find the script + foreach ($scriptType in @('Windows', 'MacOS', 'Remediation', 'Linux')) { + $endpoint = Get-ScriptEndpoint -ScriptType $scriptType + $parms = @{ + uri = "$graphUrl/$endpoint/$scriptId" + tenantid = $Request.Query.TenantFilter + } + + try { + $intuneScript = New-GraphGetRequest @parms -ErrorAction Stop + if ($intuneScript) { + $intuneScript | Add-Member -MemberType NoteProperty -Name scriptType -Value $scriptType -Force + $scriptTypeFound = $true + break + } + } catch { + # Script not found in this endpoint, try next one + continue + } + } + + if ($scriptTypeFound) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $intuneScript + }) + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = "Script with ID $scriptId was not found in any endpoint." + }) + } + } + 'PATCH' { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Method $($Request.Method) is not supported." + }) + } + 'POST' { + # Parse the script data to determine type + $scriptData = $Request.Body.IntuneScript | ConvertFrom-Json + $scriptType = $Request.Body.ScriptType + + if (-not $scriptType) { + # Try to determine script type from the request body + if ($scriptData.PSObject.Properties.Name -contains '@odata.type') { + switch ($scriptData.'@odata.type') { + '#microsoft.graph.deviceManagementScript' { $scriptType = 'Windows' } + '#microsoft.graph.deviceShellScript' { $scriptType = 'MacOS' } + '#microsoft.graph.deviceHealthScript' { $scriptType = 'Remediation' } + default { + if ($scriptData.platforms -eq 'linux' -and $scriptData.templateReference.templateFamily -eq 'deviceConfigurationScripts') { + $scriptType = 'Linux' + } else { + $scriptType = 'Windows' # Default to Windows if no definitive type found + } + } + } + } + } + + $endpoint = Get-ScriptEndpoint -ScriptType $scriptType + $parms = @{ + uri = "$graphUrl/$endpoint/$($Request.Body.ScriptId)" + tenantid = $Request.Body.TenantFilter + body = $Request.Body.IntuneScript + } + + try { + $patchResult = New-GraphPOSTRequest @parms -type 'PATCH' + $body = [pscustomobject]@{'Results' = $patchResult } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Failed to update script: $($ErrorMessage.NormalizedError)" + }) + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditPolicy.ps1 new file mode 100644 index 000000000000..afcb20d45081 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-EditPolicy.ps1 @@ -0,0 +1,44 @@ +Function Invoke-EditPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + # Note, suspect this is deprecated - rvdwegen + + $APIName = $Request.Params.CIPPEndpoint + $Tenant = $request.body.tenantid + $ID = $request.body.groupid + $displayname = $request.body.Displayname + $description = $request.body.Description + $AssignTo = if ($request.body.Assignto -ne 'on') { $request.body.Assignto } + + $results = try { + $CreateBody = '{"description":"' + $description + '","displayName":"' + $displayname + '","roleScopeTagIds":["0"]}' + $Request = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations('$ID')" -tenantid $tenant -type PATCH -body $CreateBody + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($Tenant) -message "Edited policy $($Displayname)" -Sev 'Info' + if ($AssignTo) { + $AssignBody = if ($AssignTo -ne 'AllDevicesAndUsers') { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.' + $($AssignTo) + 'AssignmentTarget"}}]}' } else { '{"assignments":[{"id":"","target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}},{"id":"","target":{"@odata.type":"#microsoft.graph.allLicensedUsersAssignmentTarget"}}]}' } + $assign = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations('$($ID)')/assign" -tenantid $tenant -type POST -body $AssignBody + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($Tenant) -message "Assigned policy $($Displayname) to $AssignTo" -Sev 'Info' + } + "Successfully edited policy for $($Tenant)" + } + catch { + "Failed to add policy for $($Tenant): $($_.Exception.Message)" + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($Tenant) -message "Failed editing policy $($Displayname). Error:$($_.Exception.Message)" -Sev 'Error' + continue + } + + $body = [pscustomobject]@{'Results' = $results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 new file mode 100644 index 000000000000..ce22cb30d03f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 @@ -0,0 +1,104 @@ +function Invoke-ExecAssignPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with the body of the request + $TenantFilter = $Request.Body.tenantFilter + $ID = $request.Body.ID + $Type = $Request.Body.Type + $AssignTo = $Request.Body.AssignTo + $PlatformType = $Request.Body.platformType + $ExcludeGroup = $Request.Body.excludeGroup + $GroupIdsRaw = $Request.Body.GroupIds + $GroupNamesRaw = $Request.Body.GroupNames + $AssignmentMode = $Request.Body.assignmentMode + $AssignmentFilterName = $Request.Body.AssignmentFilterName + $AssignmentFilterType = $Request.Body.AssignmentFilterType + + # Standardize GroupIds input (can be array or comma-separated string) + function Get-StandardizedList { + param($InputObject) + if ($null -eq $InputObject -or ($InputObject -is [string] -and [string]::IsNullOrWhiteSpace($InputObject))) { + return @() + } + if ($InputObject -is [string]) { + return ($InputObject -split ',') | ForEach-Object { $_.Trim() } | Where-Object { $_ } + } + if ($InputObject -is [System.Collections.IEnumerable]) { + return @($InputObject | Where-Object { $_ }) + } + return @($InputObject) + } + + $GroupIds = Get-StandardizedList -InputObject $GroupIdsRaw + $GroupNames = Get-StandardizedList -InputObject $GroupNamesRaw + + # Validate and default AssignmentMode + if ([string]::IsNullOrWhiteSpace($AssignmentMode)) { + $AssignmentMode = 'replace' + } + + $AssignTo = if ($AssignTo -ne 'on') { $AssignTo } + + $Results = try { + if ($AssignTo -or @($GroupIds).Count -gt 0) { + $params = @{ + PolicyId = $ID + TenantFilter = $TenantFilter + GroupName = $AssignTo + Type = $Type + Headers = $Headers + AssignmentMode = $AssignmentMode + } + + if (@($GroupIds).Count -gt 0) { + $params.GroupIds = @($GroupIds) + } + + if (@($GroupNames).Count -gt 0) { + $params.GroupNames = @($GroupNames) + } + + if (-not [string]::IsNullOrWhiteSpace($PlatformType)) { + $params.PlatformType = $PlatformType + } + + if (-not [string]::IsNullOrWhiteSpace($ExcludeGroup)) { + $params.ExcludeGroup = $ExcludeGroup + } + + if (-not [string]::IsNullOrWhiteSpace($AssignmentFilterName)) { + $params.AssignmentFilterName = $AssignmentFilterName + } + + if (-not [string]::IsNullOrWhiteSpace($AssignmentFilterType)) { + $params.AssignmentFilterType = $AssignmentFilterType + } + + Set-CIPPAssignedPolicy @params + $StatusCode = [HttpStatusCode]::OK + } else { + 'No assignments specified. No action taken.' + $StatusCode = [HttpStatusCode]::OK + } + } catch { + "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignmentFilter.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignmentFilter.ps1 new file mode 100644 index 000000000000..f08bc7bbbafb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignmentFilter.ps1 @@ -0,0 +1,52 @@ +function Invoke-ExecAssignmentFilter { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + $TenantFilter = $Request.Query.TenantFilter ?? $Request.Body.tenantFilter + + try { + $FilterId = $Request.Body.ID + $Action = $Request.Body.Action + + if (!$FilterId) { + throw 'Filter ID is required' + } + + switch ($Action) { + 'Delete' { + # Delete the assignment filter + $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$FilterId" -tenantid $TenantFilter -type DELETE + + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Deleted assignment filter with ID $FilterId" -Sev Info + + $Result = "Successfully deleted assignment filter" + $StatusCode = [HttpStatusCode]::OK + } + default { + throw "Unknown action: $Action" + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $TenantFilter -message "Failed to execute assignment filter action: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Result = "Failed to execute assignment filter action: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 new file mode 100644 index 000000000000..76de8b21de39 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 @@ -0,0 +1,66 @@ +function Invoke-ExecDeviceAction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with Body parameters or the body of the request. + $Action = $Request.Body.Action + $DeviceFilter = $Request.Body.GUID + $TenantFilter = $Request.Body.tenantFilter + + try { + switch ($Action) { + 'setDeviceName' { + if ($Request.Body.input -match '%') { + $Device = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$DeviceFilter" -tenantid $TenantFilter + $Request.Body.input = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $Request.Body.input + $Request.Body.input = $Request.Body.input -replace '%SERIAL%', $Device.serialNumber + # limit to 15 characters + if ($Request.Body.input.Length -gt 15) { + $Request.Body.input = $Request.Body.input.Substring(0, 15) + } + } + + $ActionBody = @{ deviceName = $Request.Body.input } | ConvertTo-Json -Compress + break + } + 'users' { + $ActionBody = @{ '@odata.id' = "https://graph.microsoft.com/beta/users('$($Request.Body.user.value)')" } | ConvertTo-Json -Compress + Write-Host "ActionBody: $ActionBody" + break + } + default { $ActionBody = $Request.Body | ConvertTo-Json -Compress } + } + + $cmdParams = @{ + Action = $Action + ActionBody = $ActionBody + DeviceFilter = $DeviceFilter + TenantFilter = $TenantFilter + Headers = $Headers + APINAME = $APIName + } + $ActionResult = New-CIPPDeviceAction @cmdParams + + $StatusCode = [HttpStatusCode]::OK + $Results = "$ActionResult" + + } catch { + $StatusCode = [HttpStatusCode]::InternalServerError + $Results = "$($_.Exception.Message)" + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 new file mode 100644 index 000000000000..cf0da9778d60 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDevicePasscodeAction.ps1 @@ -0,0 +1,53 @@ +function Invoke-ExecDevicePasscodeAction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Action = $Request.Body.Action + $DeviceFilter = $Request.Body.GUID + $TenantFilter = $Request.Body.tenantFilter + + try { + $GraphResponse = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices('$DeviceFilter')/$($Action)" -type POST -tenantid $TenantFilter -body '{}' + + $Result = switch ($Action) { + 'resetPasscode' { + if ($GraphResponse.value) { + "Passcode reset successfully. New passcode: $($GraphResponse.value)" + } else { + "Passcode reset queued for device $DeviceFilter. The new passcode will be generated and can be retrieved from the device details." + } + } + 'removeDevicePasscode' { + "Successfully removed passcode requirement from device $DeviceFilter" + } + default { + "Successfully queued $Action on device $DeviceFilter" + } + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + $Results = $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to execute $Action on device $DeviceFilter : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $Results = $Result + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetLocalAdminPassword.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetLocalAdminPassword.ps1 new file mode 100644 index 000000000000..85d721aec7be --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetLocalAdminPassword.ps1 @@ -0,0 +1,28 @@ +Function Invoke-ExecGetLocalAdminPassword { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Device.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + + try { + $GraphRequest = Get-CIPPLapsPassword -device $($request.body.guid) -tenantFilter $Request.body.TenantFilter -APIName $APINAME -Headers $Request.Headers + $Body = [pscustomobject]@{'Results' = $GraphRequest } + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Body = [pscustomobject]@{'Results' = "Failed. $ErrorMessage" } + + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 new file mode 100644 index 000000000000..a87941bfd8e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecGetRecoveryKey.ps1 @@ -0,0 +1,37 @@ +function Invoke-ExecGetRecoveryKey { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Device.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $GUID = $Request.Query.GUID ?? $Request.Body.GUID + $RecoveryKeyType = $Request.Body.RecoveryKeyType ?? 'BitLocker' + + try { + switch ($RecoveryKeyType) { + 'BitLocker' { $Result = Get-CIPPBitLockerKey -Device $GUID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers } + 'FileVault' { $Result = Get-CIPPFileVaultKey -Device $GUID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers } + default { throw "Invalid RecoveryKeyType specified: $RecoveryKeyType." } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 new file mode 100644 index 000000000000..ef6b59fec416 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAppProtectionPolicies.ps1 @@ -0,0 +1,181 @@ +function Invoke-ListAppProtectionPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + $TenantFilter = $Request.Query.tenantFilter + + try { + # Use bulk requests to get groups, managed app policies and mobile app configurations + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'ManagedAppPolicies' + method = 'GET' + url = '/deviceAppManagement/managedAppPolicies?$orderby=displayName' + } + @{ + id = 'MobileAppConfigurations' + method = 'GET' + url = '/deviceAppManagement/mobileAppConfigurations?$expand=assignments&$orderby=displayName' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + + $GraphRequest = [System.Collections.Generic.List[object]]::new() + + # Process Managed App Policies - these need separate assignment lookups as the ManagedAppPolicies endpoint does not support $expand + $ManagedAppPolicies = ($BulkResults | Where-Object { $_.id -eq 'ManagedAppPolicies' }).body.value + if ($ManagedAppPolicies) { + # Get all @odata.type and deduplicate them + $OdataTypes = ($ManagedAppPolicies | Select-Object -ExpandProperty '@odata.type' -Unique) -replace '#microsoft.graph.', '' + $ManagedAppPoliciesBulkRequests = foreach ($type in $OdataTypes) { + # Translate to URL segments + $urlSegment = switch ($type) { + 'androidManagedAppProtection' { 'androidManagedAppProtections' } + 'iosManagedAppProtection' { 'iosManagedAppProtections' } + 'mdmWindowsInformationProtectionPolicy' { 'mdmWindowsInformationProtectionPolicies' } + 'windowsManagedAppProtection' { 'windowsManagedAppProtections' } + 'targetedManagedAppConfiguration' { 'targetedManagedAppConfigurations' } + default { $null } + } + Write-Information "Type: $type => URL Segment: $urlSegment" + if ($urlSegment) { + @{ + id = $type + method = 'GET' + url = "/deviceAppManagement/${urlSegment}?`$expand=assignments&`$orderby=displayName" + } + } + } + + $ManagedAppPoliciesBulkResults = New-GraphBulkRequest -Requests $ManagedAppPoliciesBulkRequests -tenantid $TenantFilter + # Do this horriblenes as a workaround, as the results dont return with a odata.type property + $ManagedAppPolicies = $ManagedAppPoliciesBulkResults | ForEach-Object { + $URLName = $_.id + $_.body.value | Add-Member -NotePropertyName 'URLName' -NotePropertyValue $URLName -Force + $_.body.value + } + + + + foreach ($Policy in $ManagedAppPolicies) { + $policyType = switch ($Policy.'URLName') { + 'androidManagedAppProtection' { 'Android App Protection'; break } + 'iosManagedAppProtection' { 'iOS App Protection'; break } + 'windowsManagedAppProtection' { 'Windows App Protection'; break } + 'mdmWindowsInformationProtectionPolicy' { 'Windows Information Protection (MDM)'; break } + 'windowsInformationProtectionPolicy' { 'Windows Information Protection'; break } + 'targetedManagedAppConfiguration' { 'App Configuration (MAM)'; break } + 'defaultManagedAppProtection' { 'Default App Protection'; break } + default { 'App Protection Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + if ($Policy.assignments) { + foreach ($Assignment in $Policy.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Policy | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + # $Policy | Add-Member -NotePropertyName 'URLName' -NotePropertyValue 'managedAppPolicies' -Force + $Policy | Add-Member -NotePropertyName 'PolicySource' -NotePropertyValue 'AppProtection' -Force + $Policy | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Policy | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + $GraphRequest.Add($Policy) + } + } + + # Process Mobile App Configurations - assignments are already expanded + $MobileAppConfigs = ($BulkResults | Where-Object { $_.id -eq 'MobileAppConfigurations' }).body.value + if ($MobileAppConfigs) { + foreach ($Config in $MobileAppConfigs) { + $policyType = switch -Wildcard ($Config.'@odata.type') { + '*androidManagedStoreAppConfiguration*' { 'Android Enterprise App Configuration' } + '*androidForWorkAppConfigurationSchema*' { 'Android for Work Configuration' } + '*iosMobileAppConfiguration*' { 'iOS App Configuration' } + default { 'App Configuration Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + if ($Config.assignments) { + foreach ($Assignment in $Config.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Config | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + $Config | Add-Member -NotePropertyName 'URLName' -NotePropertyValue 'mobileAppConfigurations' -Force + $Config | Add-Member -NotePropertyName 'PolicySource' -NotePropertyValue 'AppConfiguration' -Force + $Config | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Config | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + + # Ensure isAssigned property exists for consistency + if (-not $Config.PSObject.Properties['isAssigned']) { + $Config | Add-Member -NotePropertyName 'isAssigned' -NotePropertyValue $false -Force + } + $GraphRequest.Add($Config) + } + } + + # Sort combined results by displayName + $GraphRequest = $GraphRequest | Sort-Object -Property displayName + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 new file mode 100644 index 000000000000..0012b1a47e8e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilterTemplates.ps1 @@ -0,0 +1,38 @@ +function Invoke-ListAssignmentFilterTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $ID = $Request.Query.ID + + #List assignment filter templates + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'AssignmentFilterTemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $data = $_.JSON | ConvertFrom-Json + + [PSCustomObject]@{ + displayName = $data.displayName + description = $data.description + platform = $data.platform + rule = $data.rule + assignmentFilterManagementType = $data.assignmentFilterManagementType + GUID = $_.RowKey + } + } | Sort-Object -Property displayName + + if ($ID) { $Templates = $Templates | Where-Object -Property GUID -EQ $ID } + + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 new file mode 100644 index 000000000000..91c3270702be --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 @@ -0,0 +1,39 @@ +function Invoke-ListAssignmentFilters { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Get the tenant filter + $TenantFilter = $Request.Query.tenantFilter + $FilterId = $Request.Query.filterId + + try { + if ($FilterId) { + # Get specific filter + $AssignmentFilters = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$($FilterId)" -tenantid $TenantFilter + } else { + # Get all filters + $AssignmentFilters = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $TenantFilter + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to retrieve assignment filters: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $AssignmentFilters = @() + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($AssignmentFilters) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 new file mode 100644 index 000000000000..94a782928ad5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCompliancePolicies.ps1 @@ -0,0 +1,95 @@ +function Invoke-ListCompliancePolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + $TenantFilter = $Request.Query.tenantFilter + + try { + # Use bulk requests to get groups and compliance policies + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'CompliancePolicies' + method = 'GET' + url = '/deviceManagement/deviceCompliancePolicies?$expand=assignments&$orderby=displayName' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract results + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + $Policies = ($BulkResults | Where-Object { $_.id -eq 'CompliancePolicies' }).body.value + + $GraphRequest = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + # Determine policy type from @odata.type + $policyType = switch -Wildcard ($Policy.'@odata.type') { + '*windows10CompliancePolicy*' { 'Windows 10/11 Compliance' } + '*windowsPhone81CompliancePolicy*' { 'Windows Phone 8.1 Compliance' } + '*windows81CompliancePolicy*' { 'Windows 8.1 Compliance' } + '*iosCompliancePolicy*' { 'iOS Compliance' } + '*macOSCompliancePolicy*' { 'macOS Compliance' } + '*androidCompliancePolicy*' { 'Android Compliance' } + '*androidDeviceOwnerCompliancePolicy*' { 'Android Enterprise Compliance' } + '*androidWorkProfileCompliancePolicy*' { 'Android Work Profile Compliance' } + '*aospDeviceOwnerCompliancePolicy*' { 'AOSP Compliance' } + default { 'Compliance Policy' } + } + + # Process assignments + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + + if ($Policy.assignments) { + foreach ($Assignment in $Policy.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $PolicyExclude.Add($groupName) } + } + } + } + } + + $Policy | Add-Member -NotePropertyName 'PolicyTypeName' -NotePropertyValue $policyType -Force + $Policy | Add-Member -NotePropertyName 'PolicyAssignment' -NotePropertyValue ($PolicyAssignment -join ', ') -Force + $Policy | Add-Member -NotePropertyName 'PolicyExclude' -NotePropertyValue ($PolicyExclude -join ', ') -Force + + $GraphRequest.Add($Policy) + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderState.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderState.ps1 new file mode 100644 index 000000000000..e03874e4bac6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderState.ps1 @@ -0,0 +1,29 @@ +Function Invoke-ListDefenderState { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $StatusCode = [HttpStatusCode]::OK + + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + $GraphRequest = New-GraphGetRequest -tenantid $TenantFilter -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices?`$expand=windowsProtectionState&`$select=id,deviceName,deviceType,operatingSystem,windowsProtectionState" + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = "$($ErrorMessage)" + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderTVM.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderTVM.ps1 new file mode 100644 index 000000000000..ed88689e9578 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListDefenderTVM.ps1 @@ -0,0 +1,51 @@ +Function Invoke-ListDefenderTVM { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Query.tenantFilter + # Interact with query parameters or the body of the request. + try { + $GraphRequest = New-GraphGetRequest -tenantid $TenantFilter -uri "https://api.securitycenter.microsoft.com/api/machines/SoftwareVulnerabilitiesByMachine?`$top=999" -scope 'https://api.securitycenter.microsoft.com/.default' | Group-Object cveId + $GroupObj = foreach ($cve in $GraphRequest) { + # Start with base properties + $obj = [ordered]@{ + customerId = $TenantFilter + affectedDevicesCount = $cve.count + cveId = $cve.name + } + + # Get all unique property names from the group + $allProperties = $cve.group | Get-Member -MemberType Properties | Select-Object -ExpandProperty Name | Sort-Object -Unique + + # Add all properties from the group with appropriate processing + foreach ($property in $allProperties) { + if ($property -eq 'deviceName') { + # Special handling for deviceName - join with comma + $obj['affectedDevices'] = ($cve.group.$property -join ', ') + } else { + # For all other properties, get unique values + $obj[$property] = ($cve.group.$property | Sort-Object -Unique) | Select-Object -First 1 + } + } + + # Convert and output as PSCustomObject. Not really needed, but hey, why not. + [pscustomobject]$obj + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GroupObj = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GroupObj) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 new file mode 100644 index 000000000000..adcebec6267a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 @@ -0,0 +1,135 @@ + +function Invoke-ListIntunePolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + $id = $Request.Query.ID + $URLName = $Request.Query.URLName + try { + if ($ID) { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($URLName)('$ID')" -tenantid $TenantFilter + } else { + $BulkRequests = [PSCustomObject]@( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'DeviceConfigurations' + method = 'GET' + url = "/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName,description&`$expand=assignments&`$top=1000" + } + @{ + id = 'WindowsDriverUpdateProfiles' + method = 'GET' + url = "/deviceManagement/windowsDriverUpdateProfiles?`$expand=assignments&`$top=200" + } + @{ + id = 'WindowsFeatureUpdateProfiles' + method = 'GET' + url = "/deviceManagement/windowsFeatureUpdateProfiles?`$expand=assignments&`$top=200" + } + @{ + id = 'windowsQualityUpdatePolicies' + method = 'GET' + url = "/deviceManagement/windowsQualityUpdatePolicies?`$expand=assignments&`$top=200" + } + @{ + id = 'windowsQualityUpdateProfiles' + method = 'GET' + url = "/deviceManagement/windowsQualityUpdateProfiles?`$expand=assignments&`$top=200" + } + @{ + id = 'GroupPolicyConfigurations' + method = 'GET' + url = "/deviceManagement/groupPolicyConfigurations?`$expand=assignments&`$top=1000" + } + @{ + id = 'MobileAppConfigurations' + method = 'GET' + url = "/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" + } + @{ + id = 'ConfigurationPolicies' + method = 'GET' + url = "/deviceManagement/configurationPolicies?`$expand=assignments&`$top=1000" + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + + $GraphRequest = $BulkResults | Where-Object { $_.id -ne 'Groups' } | ForEach-Object { + $URLName = $_.Id + $_.body.Value | ForEach-Object { + $policyTypeName = switch -Wildcard ($_.'assignments@odata.context') { + '*microsoft.graph.windowsIdentityProtectionConfiguration*' { 'Identity Protection' } + '*microsoft.graph.windows10EndpointProtectionConfiguration*' { 'Endpoint Protection' } + '*microsoft.graph.windows10CustomConfiguration*' { 'Custom' } + '*microsoft.graph.windows10DeviceFirmwareConfigurationInterface*' { 'Firmware Configuration' } + '*groupPolicyConfigurations*' { 'Administrative Templates' } + '*windowsDomainJoinConfiguration*' { 'Domain Join configuration' } + '*windowsUpdateForBusinessConfiguration*' { 'Update Configuration' } + '*windowsHealthMonitoringConfiguration*' { 'Health Monitoring' } + '*microsoft.graph.macOSGeneralDeviceConfiguration*' { 'MacOS Configuration' } + '*microsoft.graph.macOSEndpointProtectionConfiguration*' { 'MacOS Endpoint Protection' } + '*microsoft.graph.androidWorkProfileGeneralDeviceConfiguration*' { 'Android Configuration' } + '*windowsFeatureUpdateProfiles*' { 'Feature Update' } + '*windowsQualityUpdatePolicies*' { 'Quality Update' } + '*windowsQualityUpdateProfiles*' { 'Quality Update' } + '*iosUpdateConfiguration*' { 'iOS Update Configuration' } + '*windowsDriverUpdateProfiles*' { 'Driver Update' } + '*configurationPolicies*' { 'Device Configuration' } + default { $_.'assignments@odata.context' } + } + $Assignments = $_.assignments.target | Select-Object -Property '@odata.type', groupId + $PolicyAssignment = [System.Collections.Generic.List[string]]::new() + $PolicyExclude = [System.Collections.Generic.List[string]]::new() + foreach ($target in $Assignments) { + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $PolicyAssignment.Add('All Devices') } + '#microsoft.graph.exclusionallDevicesAssignmentTarget' { $PolicyExclude.Add('All Devices') } + '#microsoft.graph.allUsersAssignmentTarget' { $PolicyAssignment.Add('All Users') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $PolicyAssignment.Add('All Licenced Users') } + '#microsoft.graph.exclusionallUsersAssignmentTarget' { $PolicyExclude.Add('All Users') } + '#microsoft.graph.groupAssignmentTarget' { $PolicyAssignment.Add($Groups.Where({ $_.id -eq $target.groupId }).displayName) } + '#microsoft.graph.exclusionGroupAssignmentTarget' { $PolicyExclude.Add($Groups.Where({ $_.id -eq $target.groupId }).displayName) } + default { + $PolicyAssignment.Add($null) + $PolicyExclude.Add($null) + } + } + } + if ($null -eq $_.displayname) { $_ | Add-Member -NotePropertyName displayName -NotePropertyValue $_.name } + $_ | Add-Member -NotePropertyName PolicyTypeName -NotePropertyValue $policyTypeName + $_ | Add-Member -NotePropertyName URLName -NotePropertyValue $URLName + $_ | Add-Member -NotePropertyName PolicyAssignment -NotePropertyValue ($PolicyAssignment -join ', ') + $_ | Add-Member -NotePropertyName PolicyExclude -NotePropertyValue ($PolicyExclude -join ', ') + $_ + } | Where-Object { $null -ne $_.DisplayName } + } + } + + # Filter the results to sort out linux scripts + $GraphRequest = $GraphRequest | Where-Object { $_.platforms -ne 'linux' -and $_.templateReference.templateFamily -ne 'deviceConfigurationScripts' } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 new file mode 100644 index 000000000000..2eb73bca4a00 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneScript.ps1 @@ -0,0 +1,114 @@ +function Invoke-ListIntuneScript { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev Debug + + $TenantFilter = $Request.Query.tenantFilter + $Results = [System.Collections.Generic.List[System.Object]]::new() + + $BulkRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,displayName' + } + @{ + id = 'Windows' + method = 'GET' + url = '/deviceManagement/deviceManagementScripts?$expand=assignments' + } + @{ + id = 'MacOS' + method = 'GET' + url = '/deviceManagement/deviceShellScripts?$expand=assignments' + } + @{ + id = 'Remediation' + method = 'GET' + url = '/deviceManagement/deviceHealthScripts?$expand=assignments' + } + @{ + id = 'Linux' + method = 'GET' + url = '/deviceManagement/configurationPolicies?$expand=assignments' + } + ) + + try { + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Host "Failed to retrieve scripts. Error: $($ErrorMessage.NormalizedError)" + } + + # Extract groups for resolving assignment names + $Groups = ($BulkResults | Where-Object { $_.id -eq 'Groups' }).body.value + + foreach ($scriptId in @('Windows', 'MacOS', 'Remediation', 'Linux')) { + $BulkResult = ($BulkResults | Where-Object { $_.id -eq $scriptId }) + if ($BulkResult.status -ne 200) { + $Results.Add(@{ + 'scriptType' = $scriptId + 'displayName' = if (Test-Json $BulkResult.body.error.message) { + ($BulkResult.body.error.message | ConvertFrom-Json).Message + } else { + $BulkResult.body.error.message + } + }) + continue + } + $scripts = $BulkResult.body.value + + if ($scriptId -eq 'Linux') { + $scripts = $scripts | Where-Object { $_.platforms -eq 'linux' -and $_.templateReference.templateFamily -eq 'deviceConfigurationScripts' } + $scripts | ForEach-Object { $_ | Add-Member -MemberType NoteProperty -Name displayName -Value $_.name -Force } + } + + # Process assignments for each script + foreach ($script in $scripts) { + $ScriptAssignment = [System.Collections.Generic.List[string]]::new() + $ScriptExclude = [System.Collections.Generic.List[string]]::new() + + if ($script.assignments) { + foreach ($Assignment in $script.assignments) { + $target = $Assignment.target + switch ($target.'@odata.type') { + '#microsoft.graph.allDevicesAssignmentTarget' { $ScriptAssignment.Add('All Devices') } + '#microsoft.graph.allLicensedUsersAssignmentTarget' { $ScriptAssignment.Add('All Licensed Users') } + '#microsoft.graph.groupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $ScriptAssignment.Add($groupName) } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName + if ($groupName) { $ScriptExclude.Add($groupName) } + } + } + } + } + + $script | Add-Member -NotePropertyName 'ScriptAssignment' -NotePropertyValue ($ScriptAssignment -join ', ') -Force + $script | Add-Member -NotePropertyName 'ScriptExclude' -NotePropertyValue ($ScriptExclude -join ', ') -Force + } + + $scripts | Add-Member -MemberType NoteProperty -Name scriptType -Value $scriptId + Write-Host "$scriptId scripts count: $($scripts.Count)" + $Results.AddRange(@($scripts)) + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 new file mode 100644 index 000000000000..a64228f7c2f6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneTemplates.ps1 @@ -0,0 +1,94 @@ +function Invoke-ListIntuneTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'templates' + $Imported = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'settings'" + if ($Imported.IntuneTemplate -ne $true) { + $Templates = Get-ChildItem 'Config\*.IntuneTemplate.json' | ForEach-Object { + $Entity = @{ + JSON = "$(Get-Content $_)" + RowKey = "$($_.name)" + PartitionKey = 'IntuneTemplate' + GUID = "$($_.name)" + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + } + Add-CIPPAzDataTableEntity @Table -Entity @{ + IntuneTemplate = $true + RowKey = 'IntuneTemplate' + PartitionKey = 'settings' + } -Force + } + #List new policies + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'IntuneTemplate'" + $RawTemplates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + if ($Request.query.View) { + $Templates = $RawTemplates | ForEach-Object { + try { + $JSONData = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'displayName' -NotePropertyValue $JSONData.Displayname -Force + $data | Add-Member -NotePropertyName 'description' -NotePropertyValue $JSONData.Description -Force + $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data | Add-Member -NotePropertyName 'package' -NotePropertyValue $_.Package -Force + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force + $data + } catch { + + } + + } | Sort-Object -Property displayName + } else { + if ($Request.query.mode -eq 'Tag') { + #when the mode is tag, show all the potential tags, return the object with: label: tag, value: tag, count: number of templates with that tag, unique only + $Templates = $RawTemplates | Where-Object { $_.Package } | Select-Object -Property Package | ForEach-Object { + $package = $_.Package + [pscustomobject]@{ + label = "$($package) ($(($RawTemplates | Where-Object { $_.Package -eq $package }).Count) Templates)" + value = $package + type = 'tag' + templateCount = ($RawTemplates | Where-Object { $_.Package -eq $package }).Count + templates = @($RawTemplates | Where-Object { $_.Package -eq $package } | ForEach-Object { + try { + $JSONData = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'displayName' -NotePropertyValue $JSONData.Displayname -Force + $data | Add-Member -NotePropertyName 'description' -NotePropertyValue $JSONData.Description -Force + $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data | Add-Member -NotePropertyName 'package' -NotePropertyValue $_.Package -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force + $data + } catch { + + } + }) + } + } | Sort-Object -Property label -Unique + } else { + $Templates = $RawTemplates.JSON | ForEach-Object { try { ConvertFrom-Json -InputObject $_ -Depth 100 -ErrorAction SilentlyContinue } catch {} } + + } + } + + if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property guid -EQ $Request.query.id } + + # Sort all output regardless of view condition + $Templates = $Templates | Sort-Object -Property displayName + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -Depth 100 -InputObject @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveAssignmentFilterTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveAssignmentFilterTemplate.ps1 new file mode 100644 index 000000000000..e07fe933d198 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveAssignmentFilterTemplate.ps1 @@ -0,0 +1,42 @@ +Function Invoke-RemoveAssignmentFilterTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $request.Query.ID ?? $Request.Body.ID + try { + $Table = Get-CippTable -tablename 'templates' + Write-Host $ID + + $Filter = "PartitionKey eq 'AssignmentFilterTemplate' and RowKey eq '$ID'" + Write-Host $Filter + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Assignment Filter Template with ID $ID" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove assignment filter template $($ID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneScript.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneScript.ps1 new file mode 100644 index 000000000000..63260087848b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneScript.ps1 @@ -0,0 +1,55 @@ +function Invoke-RemoveIntuneScript { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.TenantFilter + $ID = $Request.Body.ID + $ScriptType = $Request.Body.ScriptType + $DisplayName = $Request.Body.DisplayName + + try { + + $URI = switch ($ScriptType) { + 'Windows' { + "https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts/$($ID)" + } + 'MacOS' { + "https://graph.microsoft.com/beta/deviceManagement/deviceShellScripts/$($ID)" + } + 'Remediation' { + "https://graph.microsoft.com/beta/deviceManagement/deviceHealthScripts/$($ID)" + } + 'Linux' { + "https://graph.microsoft.com/beta/deviceManagement/ConfigurationPolicies('$($ID)')" + } + default { $null } + } + + $null = New-GraphPOSTRequest -uri $URI -type DELETE -tenantid $TenantFilter + $Result = "Deleted $($ScriptType) script $($DisplayName) with ID: $($ID)" + Write-LogMessage -headers $Headers -API $APINAME -tenant $Tenant -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete $($ScriptType) script $($DisplayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APINAME -tenant $Tenant -message $Result -Sev 'Error' + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 new file mode 100644 index 000000000000..b3e25890c517 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneTemplate.ps1 @@ -0,0 +1,42 @@ +function Invoke-RemoveIntuneTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $request.Query.ID ?? $Request.Body.ID + try { + $Table = Get-CippTable -tablename 'templates' + + $Filter = "PartitionKey eq 'IntuneTemplate' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + if ($ClearRow) { + Remove-AzDataTableEntity @Table -Entity $clearRow -Force + $Result = "Removed Intune Template with ID $ID." + } else { + $Result = "The template with ID $ID has already been deleted." + } + Write-LogMessage -Headers $Headers -API $APINAME -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Intune template $($ID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APINAME -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 new file mode 100644 index 000000000000..3dd078da0045 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 @@ -0,0 +1,47 @@ +function Invoke-RemovePolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter + $PolicyId = $Request.Query.ID ?? $Request.body.ID + $UrlName = $Request.Query.URLName ?? $Request.body.URLName + $BaseEndpoint = switch ($UrlName) { + 'managedAppPolicies' { 'deviceAppManagement' } + 'mobileAppConfigurations' { 'deviceAppManagement' } + default { 'deviceManagement' } + } + if (!$PolicyId) { exit } + + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/$($BaseEndpoint)/$($UrlName)('$($PolicyId)')" -type DELETE -tenant $TenantFilter + + $Results = "Successfully deleted the $UrlName policy with ID: $($PolicyId)" + Write-LogMessage -headers $Headers -API $APINAME -message $Results -Sev Info -tenant $TenantFilter + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Could not delete policy: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APINAME -message $Results -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + $Body = [pscustomobject]@{'Results' = "$Results" } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Reports/Invoke-ListDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Reports/Invoke-ListDevices.ps1 new file mode 100644 index 000000000000..de9b40413023 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Reports/Invoke-ListDevices.ps1 @@ -0,0 +1,26 @@ +Function Invoke-ListDevices { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Device.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + $GraphRequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDevices' -Tenantid $tenantfilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Devices/Invoke-ExecDeviceDelete.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Devices/Invoke-ExecDeviceDelete.ps1 new file mode 100644 index 000000000000..c658b751bca7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Devices/Invoke-ExecDeviceDelete.ps1 @@ -0,0 +1,33 @@ +Function Invoke-ExecDeviceDelete { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Device.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with body parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + $Action = $Request.Body.action ?? $Request.Query.action + $DeviceID = $Request.Body.ID ?? $Request.Query.ID + + try { + $Results = Set-CIPPDeviceState -Action $Action -DeviceID $DeviceID -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroup.ps1 new file mode 100644 index 000000000000..e8495e38dc77 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroup.ps1 @@ -0,0 +1,39 @@ +function Invoke-AddGroup { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $SelectedTenants = if ('AllTenants' -in $SelectedTenants) { (Get-Tenants).defaultDomainName } else { $Request.body.tenantFilter.value ? $Request.body.tenantFilter.value : $Request.body.tenantFilter } + + + $GroupObject = $Request.body + + $Results = foreach ($tenant in $SelectedTenants) { + try { + # Use the centralized New-CIPPGroup function + $Result = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $tenant -APIName $APIName -ExecutingUser $Request.Headers.'x-ms-client-principal-name' + + if ($Result.Success) { + "Successfully created group $($GroupObject.displayName) for $($tenant)" + $StatusCode = [HttpStatusCode]::OK + } else { + throw $Result.Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Failed to create group. $($GroupObject.displayName) for $($tenant) $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 new file mode 100644 index 000000000000..f1c93f4d54b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTeam.ps1 @@ -0,0 +1,78 @@ +function Invoke-AddGroupTeam { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.TenantFilter + $GroupId = $Request.Body.GroupId + + $Results = [System.Collections.Generic.List[string]]@() + + try { + # Default team settings - can be customized via request body + $TeamSettings = if ($Request.Body.TeamSettings) { + $Request.Body.TeamSettings + } else { + @{ + memberSettings = @{ + allowCreatePrivateChannels = $true + allowCreateUpdateChannels = $true + } + messagingSettings = @{ + allowUserEditMessages = $true + allowUserDeleteMessages = $true + } + funSettings = @{ + allowGiphy = $true + giphyContentRating = 'strict' + } + } + } + + # Create team from group using PUT request + $GraphParams = @{ + uri = "https://graph.microsoft.com/beta/groups/$GroupId/team" + tenantid = $TenantFilter + type = 'PUT' + body = ($TeamSettings | ConvertTo-Json -Depth 10) + AsApp = $true + } + $null = New-GraphPOSTRequest @GraphParams + + $Results.Add("Successfully created team from group $GroupId") + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Created team from group $GroupId" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $RawMessage = $_.Exception.Message + + # Determine if this is a likely replication delay 404 (exclude owner/membership related 404s) + $Is404 = ($RawMessage -match '404|Not Found' -or $ErrorMessage.NormalizedError -match '404|Not Found') + $IsOwnerRelated = ($RawMessage -match 'owner' -or $ErrorMessage.NormalizedError -match 'owner') + $IsMembershipRelated = ($RawMessage -match 'member' -or $ErrorMessage.NormalizedError -match 'member') + + $IsReplicationDelay = $Is404 -and -not ($IsOwnerRelated -or $IsMembershipRelated) + + if ($IsReplicationDelay) { + $Results.Add('Failed to create team: The group may have been created too recently. If it was created less than 15 minutes ago, wait and retry. Groups need time to fully replicate before a team can be created.') + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to create team from group $GroupId - probable replication delay (404). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } else { + $Results.Add("Failed to create team: $($ErrorMessage.NormalizedError)") + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to create team from group $GroupId. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + } + + $Body = @{ + Results = @($Results) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 new file mode 100644 index 000000000000..5f709fd9db24 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 @@ -0,0 +1,78 @@ +function Invoke-AddGroupTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $GUID = $Request.Body.GUID ?? (New-Guid).GUID + try { + if (!$Request.Body.displayName) { + throw 'You must enter a displayname' + } + + # Normalize group type to match New-CIPPGroup expectations + # Handle values from ListGroups calculatedGroupType and frontend form values + $groupType = switch -wildcard ($Request.Body.groupType.ToLower()) { + # Values from ListGroups calculatedGroupType + '*mail-enabled security*' { 'security'; break } + '*microsoft 365*' { 'm365'; break } + '*distribution list*' { 'distribution'; break } + # Dynamic groups don't have a specific calculatedGroupType - they're detected by membershipRule + # Frontend form values (camelCase and lowercase) + '*dynamicdistribution*' { 'dynamicDistribution'; break } + '*dynamic*' { 'dynamic'; break } + '*azurerole*' { 'azureRole'; break } + '*unified*' { 'm365'; break } + '*m365*' { 'm365'; break } + '*generic*' { 'generic'; break } + '*security*' { 'security'; break } + '*distribution*' { 'distribution'; break } + '*mail*' { 'distribution'; break } + default { $Request.Body.groupType } + } + + # Override to dynamic if membership rules are provided (for backward compatibility) + # but only if it's not already a dynamicDistribution group + if ($Request.body.membershipRules -and ![string]::IsNullOrEmpty($Request.Body.membershipRules) -and $Request.Body.membershipRules -ne 'membershipRule' -and $groupType -notin @('dynamicDistribution')) { + $groupType = 'dynamic' + } + # Normalize field names to handle different casing from various forms + $displayName = $Request.Body.displayName ?? $Request.Body.Displayname ?? $Request.Body.displayname + $description = $Request.Body.description ?? $Request.Body.Description + $MembershipRules = ([string]::IsNullOrEmpty($Request.Body.membershipRules) -or $Request.Body.membershipRules -eq 'membershipRule') ? $null : $Request.Body.membershipRules + + $object = [PSCustomObject]@{ + displayName = $displayName + description = $description + groupType = $groupType + membershipRules = $MembershipRules + allowExternal = $Request.Body.allowExternal + username = $Request.Body.username # Can contain variables like @%tenantfilter% + GUID = $GUID + } | ConvertTo-Json + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Force -Entity @{ + JSON = "$object" + RowKey = "$GUID" + PartitionKey = 'GroupTemplate' + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created Group template named $displayName with GUID $GUID" -Sev 'Debug' + + $body = [pscustomobject]@{'Results' = 'Successfully added template' } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Group Template Creation failed: $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Group Template Creation failed: $($_.Exception.Message)" } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-EditGroup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-EditGroup.ps1 new file mode 100644 index 000000000000..a94233ce1e8c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-EditGroup.ps1 @@ -0,0 +1,462 @@ +function Invoke-EditGroup { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Results = [System.Collections.Generic.List[string]]@() + $UserObj = $Request.Body + $GroupType = $UserObj.groupId.addedFields.groupType ? $UserObj.groupId.addedFields.groupType : $UserObj.groupType + # groupName is used in the Add to Group user action, displayName is used in the Edit Group page + $GroupName = $UserObj.groupName ?? $UserObj.displayName ?? $UserObj.groupId.addedFields.groupName + $GroupId = $UserObj.groupId.value ?? $UserObj.groupId + $OrgGroup = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupId)" -tenantid $UserObj.tenantFilter + + $AddMembers = $UserObj.AddMember + + $TenantId = $UserObj.tenantId ?? $UserObj.tenantFilter + + $MemberODataBindString = 'https://graph.microsoft.com/v1.0/directoryObjects/{0}' + $BulkRequests = [System.Collections.Generic.List[object]]::new() + $GraphLogs = [System.Collections.Generic.List[object]]::new() + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + + if ($UserObj.displayName -or $UserObj.description -or $UserObj.mailNickname -or $UserObj.membershipRules) { + #Edit properties: + if ($GroupType -eq 'Distribution List' -or $GroupType -eq 'Mail-Enabled Security') { + $Params = @{ Identity = $GroupId; DisplayName = $UserObj.displayName; Description = $UserObj.description; name = $UserObj.mailNickname } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Set-DistributionGroup' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Success - Edited group properties for $($GroupName) group. It might take some time to reflect the changes." + target = $GroupId + }) + } else { + # Use new securityEnabled value if provided, otherwise keep original + $SecurityEnabled = $null -ne $UserObj.securityEnabled ? $UserObj.securityEnabled : $OrgGroup.securityEnabled + + $PatchObj = @{ + displayName = $UserObj.displayName + description = $UserObj.description + mailNickname = $UserObj.mailNickname + mailEnabled = $OrgGroup.mailEnabled + securityEnabled = $SecurityEnabled + } + Write-Host "body: $($PatchObj | ConvertTo-Json -Depth 10 -Compress)" -ForegroundColor Yellow + if ($UserObj.membershipRules) { $PatchObj | Add-Member -MemberType NoteProperty -Name 'membershipRule' -Value $UserObj.membershipRules -Force } + try { + $null = New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/beta/groups/$($GroupId)" -tenantid $UserObj.tenantFilter -body ($PatchObj | ConvertTo-Json -Depth 10 -Compress) + $Results.Add("Success - Edited group properties for $($GroupName) group. It might take some time to reflect the changes.") + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Edited group properties for $($GroupName) group" -Sev 'Info' + + # Log securityEnabled changes specifically + if ($null -ne $UserObj.securityEnabled -and $UserObj.securityEnabled -ne $OrgGroup.securityEnabled) { + $securityStatusText = "Security capabilities $($UserObj.securityEnabled ? 'enabled' : 'disabled') for group $($GroupName)" + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $securityStatusText -Sev 'Info' + $Results.Add($securityStatusText) + } + } catch { + $Results.Add("Error - Failed to edit group properties: $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Failed to patch group: $($_.Exception.Message)" -Sev 'Error' + } + } + } + + if ($AddMembers) { + $AddMembers | ForEach-Object { + try { + # Add to group user action and edit group page sends in different formats, so we need to handle both + $Member = $_.addedFields.userPrincipalName ?? $_.value ?? $_ + $MemberID = $_.value + if (!$MemberID) { + $MemberID = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$Member" -tenantid $TenantId).id + } + + if ($GroupType -eq 'Distribution List' -or $GroupType -eq 'Mail-Enabled Security') { + $Params = @{ Identity = $GroupId; Member = $Member; BypassSecurityGroupManagerCheck = $true } + # Write-Host ($UserObj | ConvertTo-Json -Depth 10) #Debugging line + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Add-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Added member $Member to $($GroupName) group" + target = $Member + }) + } else { + $MemberIDs = $MemberODataBindString -f $MemberID + $AddMemberBody = @{ + 'members@odata.bind' = @($MemberIDs) + } + + $BulkRequests.Add(@{ + id = "addMember-$Member" + method = 'PATCH' + url = "groups/$($GroupId)" + body = $AddMemberBody + headers = @{ + 'Content-Type' = 'application/json' + } + }) + $GraphLogs.Add(@{ + message = "Added member $Member to $($GroupName) group" + id = "addMember-$Member" + }) + } + } catch { + Write-Warning "Error in AddMembers: $($_.Exception.Message)" + } + } + } + + + $AddContacts = $UserObj.AddContact + if ($AddContacts) { + $AddContacts | ForEach-Object { + try { + $Member = $_ + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { + $Params = @{ Identity = $GroupId; Member = $Member.value; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Add-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Added contact $($Member.label) to $($GroupName) group" + target = $Member.value + }) + } else { + Write-LogMessage -API $APIName -tenant $TenantId -headers $Headers -message 'You cannot add a Contact to a Security Group or a M365 Group' -Sev 'Error' + $Results.Add('Error - You cannot add a contact to a Security Group or a M365 Group') + } + } catch { + Write-Warning "Error in AddContacts: $($_.Exception.Message)" + } + } + } + + $RemoveContact = $UserObj.RemoveContact + try { + if ($RemoveContact) { + $RemoveContact | ForEach-Object { + $Member = $_.addedFields.userPrincipalName ?? $_.value + $MemberID = $_.value + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { + $Params = @{ Identity = $GroupId; Member = $MemberID ; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Removed contact $Member from $($GroupName) group" + target = $MemberID + }) + } else { + Write-LogMessage -API $APIName-tenant $TenantId -headers $Headers -message 'You cannot remove a contact from a Security Group' -Sev 'Error' + $Results.Add('You cannot remove a contact from a Security Group') + } + } + } + } catch { + Write-Warning "Error in RemoveContact: $($_.Exception.Message)" + } + + $RemoveMembers = $UserObj.RemoveMember + try { + if ($RemoveMembers) { + $RemoveMembers | ForEach-Object { + $Member = $_.addedFields.userPrincipalName ?? $_.value + $MemberID = $_.value + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { + $Params = @{ Identity = $GroupId; Member = $Member ; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Removed member $Member from $($GroupName) group" + target = $Member + }) + } else { + $BulkRequests.Add(@{ + id = "removeMember-$Member" + method = 'DELETE' + url = "groups/$($GroupId)/members/$MemberID/`$ref" + }) + $GraphLogs.Add(@{ + message = "Removed member $Member from $($GroupName) group" + id = "removeMember-$Member" + }) + } + } + } + } catch { + Write-Warning "Error in RemoveMembers: $($_.Exception.Message)" + } + + $AddOwners = $UserObj.AddOwner + try { + if ($AddOwners) { + if ($GroupType -notin @('Distribution List', 'Mail-Enabled Security')) { + $AddOwners | ForEach-Object { + $Owner = $_.addedFields.userPrincipalName ?? $_.value + $ID = $_.value + + $BulkRequests.Add(@{ + id = "addOwner-$Owner" + method = 'POST' + url = "groups/$($GroupId)/owners/`$ref" + body = @{ + '@odata.id' = $MemberODataBindString -f $ID + } + headers = @{ + 'Content-Type' = 'application/json' + } + }) + $GraphLogs.Add(@{ + message = "Added owner $($Owner) to $($GroupName) group" + id = "addOwner-$Owner" + }) + } + } + } + } catch { + Write-Warning "Error in AddOwners: $($_.Exception.Message)" + } + + $RemoveOwners = $UserObj.RemoveOwner + try { + if ($RemoveOwners) { + if ($GroupType -notin @('Distribution List', 'Mail-Enabled Security')) { + $RemoveOwners | ForEach-Object { + $ID = $_.value + $Owner = $_.addedFields.userPrincipalName ?? $_.value + $BulkRequests.Add(@{ + id = "removeOwner-$ID" + method = 'DELETE' + url = "groups/$($GroupId)/owners/$ID/`$ref" + }) + $GraphLogs.Add(@{ + message = "Removed owner $($Owner) from $($GroupName) group" + id = "removeOwner-$ID" + }) + } + } + } + } catch { + Write-Warning "Error in RemoveOwners: $($_.Exception.Message)" + } + + if ($GroupType -in @( 'Distribution List', 'Mail-Enabled Security') -and ($AddOwners -or $RemoveOwners)) { + $CurrentOwners = New-ExoRequest -tenantid $TenantId -cmdlet 'Get-DistributionGroup' -cmdParams @{ Identity = $GroupId } -UseSystemMailbox $true | Select-Object -ExpandProperty ManagedBy + + $NewManagedBy = [System.Collections.Generic.List[string]]::new() + foreach ($CurrentOwner in $CurrentOwners) { + if ($RemoveOwners -and $RemoveOwners.value -contains $CurrentOwner) { + $OwnerToRemove = $RemoveOwners | Where-Object { $_.value -eq $CurrentOwner } + $ExoLogs.Add(@{ + message = "Removed owner $($OwnerToRemove.label) from $($GroupName) group" + target = $GroupId + }) + continue + } + $NewManagedBy.Add($CurrentOwner) + } + if ($AddOwners) { + foreach ($NewOwner in $AddOwners) { + $NewManagedBy.Add($NewOwner.value) + $ExoLogs.Add(@{ + message = "Added owner $($NewOwner.label) to $($GroupName) group" + target = $GroupId + }) + } + } + + $NewManagedBy = $NewManagedBy | Sort-Object -Unique + $Params = @{ Identity = $GroupId; ManagedBy = $NewManagedBy } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Set-DistributionGroup' + Parameters = $Params + } + }) + } + + + + Write-Information "Graph Bulk Requests: $($BulkRequests.Count)" + if ($BulkRequests.Count -gt 0) { + #Write-Warning 'EditUser - Executing Graph Bulk Requests' + #Write-Information ($BulkRequests | ConvertTo-Json -Depth 10) + $RawGraphRequest = New-GraphBulkRequest -tenantid $TenantId -scope 'https://graph.microsoft.com/.default' -Requests @($BulkRequests) -asapp $true + #Write-Warning 'EditUser - Executing Graph Bulk Requests - Completed' + #Write-Information ($RawGraphRequest | ConvertTo-Json -Depth 10) + + foreach ($GraphLog in $GraphLogs) { + $GraphError = $RawGraphRequest | Where-Object { $_.id -eq $GraphLog.id -and $_.status -notmatch '^2[0-9]+' } + if ($GraphError) { + $Message = Get-NormalizedError -message $GraphError.body.error + $Sev = 'Error' + $Results.Add("Error - $Message") + } else { + $Message = $GraphLog.message + $Sev = 'Info' + $Results.Add("Success - $Message") + } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message $Message -Sev $Sev + } + } + + Write-Information "Exo Bulk Requests: $($ExoBulkRequests.Count)" + if ($ExoBulkRequests.Count -gt 0) { + #Write-Warning 'EditUser - Executing Exo Bulk Requests' + #Write-Information ($ExoBulkRequests | ConvertTo-Json -Depth 10) + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantId -cmdletArray @($ExoBulkRequests) + #Write-Warning 'EditUser - Executing Exo Bulk Requests - Completed' + #Write-Information ($RawExoRequest | ConvertTo-Json -Depth 10) + + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + $Sev = 'Error' + $Results.Add("Error - $ExoError") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message $ExoError -Sev $Sev + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + $Message = $ExoLog.message + $Sev = 'Info' + $Results.Add("Success - $Message") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message $Message -Sev $Sev + } + } + } + + # Only process allowExternal if it was explicitly sent + if ($null -ne $UserObj.allowExternal -and $GroupType -ne 'Security') { + try { + $OnlyAllowInternal = $UserObj.allowExternal -eq $true ? $false : $true + Set-CIPPGroupAuthentication -ID $UserObj.mail -OnlyAllowInternal $OnlyAllowInternal -GroupType $GroupType -tenantFilter $TenantId -APIName $APIName -Headers $Headers + if ($UserObj.allowExternal -eq $true) { + $Results.Add("Allowed external senders to send to $($UserObj.mail).") + } else { + $Results.Add("Blocked external senders from sending to $($UserObj.mail).") + } + } catch { + $action = if ($UserObj.allowExternal -eq $true) { 'allow' } else { 'block' } + $Results.Add("Failed to $action external senders for $($UserObj.mail).") + } + } + + # Only process visibility if it was explicitly sent for Microsoft 365 groups + if ($GroupType -eq 'Microsoft 365' -and -not [string]::IsNullOrWhiteSpace($UserObj.visibility)) { + try { + $VisibilityValue = $UserObj.visibility + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupID)" -type PATCH -tenantid $TenantId -body (@{'visibility' = $VisibilityValue } | ConvertTo-Json) + + $Results.Add("Set group visibility to $VisibilityValue for $($GroupName).") + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error in visibility: $($ErrorMessage.NormalizedError) - $($_.InvocationInfo.ScriptLineNumber)" + $Results.Add("Failed to set group visibility for $($GroupName): $($ErrorMessage.NormalizedError)") + } + } + + # Only process sendCopies if it was explicitly sent + if ($null -ne $UserObj.sendCopies) { + try { + if ($UserObj.sendCopies -eq $true) { + $Params = @{ Identity = $GroupId; subscriptionEnabled = $true; AutoSubscribeNewMembers = $true } + New-ExoRequest -tenantid $TenantId -cmdlet 'Set-UnifiedGroup' -cmdParams $Params -useSystemMailbox $true + + $MemberParams = @{ Identity = $GroupId; LinkType = 'members' } + $Members = New-ExoRequest -tenantid $TenantId -cmdlet 'Get-UnifiedGroupLinks' -cmdParams $MemberParams + + $MembershipIds = $Members | ForEach-Object { $_.ExternalDirectoryObjectId } + if ($MembershipIds) { + $subscriberParams = @{ Identity = $GroupId; LinkType = 'subscribers'; Links = @($MembershipIds | Where-Object { $_ }) } + + try { + New-ExoRequest -tenantid $TenantId -cmdlet 'Add-UnifiedGroupLinks' -cmdParams $subscriberParams -Anchor $UserObj.mail + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error in SendCopies: Add-UnifiedGroupLinks $($ErrorMessage.NormalizedError) - $($_.InvocationInfo.ScriptLineNumber)" + throw "Error in SendCopies: Add-UnifiedGroupLinks $($ErrorMessage.NormalizedError)" + } + + } + + $Results.Add("Send Copies of team emails and events to team members inboxes for $($UserObj.mail) enabled.") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Send Copies of team emails and events to team members inboxes for $($UserObj.mail) enabled." -Sev 'Info' + } else { + # Disable send copies. Has to be done in 2 calls, otherwise it fails saying AutoSubscribeNewMembers cannot be true when subscriptionEnabled is false. + # Why this happens and can't be done in one call, only Bill Gates and the mystical gods of Exchange knows. + $Params = @{ Identity = $GroupId; AutoSubscribeNewMembers = $false } + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-UnifiedGroup' -cmdParams $Params -useSystemMailbox $true + $Params = @{ Identity = $GroupId; subscriptionEnabled = $false } + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-UnifiedGroup' -cmdParams $Params -useSystemMailbox $true + + $Results.Add("Send Copies of team emails and events to team members inboxes for $($UserObj.mail) disabled.") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Send Copies of team emails and events to team members inboxes for $($UserObj.mail) disabled." -Sev 'Info' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error in SendCopies: $($ErrorMessage.NormalizedError) - $($_.InvocationInfo.ScriptLineNumber)" + $action = if ($UserObj.sendCopies -eq $true) { 'enable' } else { 'disable' } + $Results.Add("Failed to $action Send Copies of team emails and events to team members inboxes for $($UserObj.mail).") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to $action Send Copies of team emails and events to team members inboxes for $($UserObj.mail). Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + } + + # Only process hideFromOutlookClients if it was explicitly sent and is a Microsoft 365 group + if ($null -ne $UserObj.hideFromOutlookClients -and $GroupType -eq 'Microsoft 365') { + try { + $Params = @{ Identity = $GroupId; HiddenFromExchangeClientsEnabled = $UserObj.hideFromOutlookClients } + $null = New-ExoRequest -tenantid $TenantId -cmdlet 'Set-UnifiedGroup' -cmdParams $Params -useSystemMailbox $true + + if ($UserObj.hideFromOutlookClients -eq $true) { + $Results.Add("Successfully hidden group mailbox from Outlook for $($GroupName).") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Successfully hidden group mailbox from Outlook for $($GroupName)." -Sev 'Info' + } else { + $Results.Add("Successfully made group mailbox visible in Outlook for $($GroupName).") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Successfully made group mailbox visible in Outlook for $($GroupName)." -Sev 'Info' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error in hideFromOutlookClients: $($ErrorMessage.NormalizedError) - $($_.InvocationInfo.ScriptLineNumber)" + $action = if ($UserObj.hideFromOutlookClients -eq $true) { 'hide' } else { 'show' } + $Results.Add("Failed to $action group mailbox in Outlook for $($GroupName).") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to $action group mailbox in Outlook for $($GroupName). Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + } + + $body = @{'Results' = @($Results) } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 new file mode 100644 index 000000000000..203b28046a6d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupSenderAuthentication.ps1 @@ -0,0 +1,43 @@ +function Invoke-ListGroupSenderAuthentication { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Groups.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + $groupid = $Request.query.groupid + $GroupType = $Request.query.Type + + $params = @{ + Identity = $groupid + } + + + try { + switch ($GroupType) { + 'Distribution List' { + Write-Host 'Checking DL' + $State = (New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroup' -cmdParams $params -UseSystemMailbox $true).RequireSenderAuthenticationEnabled + } + 'Microsoft 365' { + Write-Host 'Checking M365 Group' + $State = (New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-UnifiedGroup' -cmdParams $params -UseSystemMailbox $true).RequireSenderAuthenticationEnabled + + } + default { $state = $true } + } + + } catch { + $state = $true + } + + # We flip the value because the API is asking if the group is allowed to receive external mail + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ allowedToReceiveExternal = !$state } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 new file mode 100644 index 000000000000..b58a93aa3ced --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 @@ -0,0 +1,67 @@ +function Invoke-ListGroupTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.Group.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + Write-Host $Request.query.id + + #List new policies + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'GroupTemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + # Normalize groupType to camelCase for consistent frontend handling + # Handle both stored normalized values and legacy values + + if (!$data.groupType) { + $data.groupType = 'generic' + } + + $normalizedGroupType = switch -Wildcard ($data.groupType) { + # Already normalized values (most common) + 'dynamicdistribution' { 'dynamicDistribution'; break } + 'azurerole' { 'azureRole'; break } + # Legacy values that might exist in stored templates + '*dynamicdistribution*' { 'dynamicDistribution'; break } + '*dynamic*' { 'dynamic'; break } + '*azurerole*' { 'azureRole'; break } + '*unified*' { 'm365'; break } + '*microsoft*' { 'm365'; break } + '*m365*' { 'm365'; break } + '*generic*' { 'generic'; break } + '*security*' { 'security'; break } + '*distribution*' { 'distribution'; break } + '*mail*' { 'distribution'; break } + default { $data.groupType } + } + + [PSCustomObject]@{ + displayName = $data.displayName + description = $data.description + groupType = $normalizedGroupType + membershipRules = $data.membershipRules + allowExternal = $data.allowExternal + username = $data.username + GUID = $_.RowKey + source = $_.Source + isSynced = (![string]::IsNullOrEmpty($_.SHA)) + } + } catch { + Write-Information "Could not parse group template $($_.RowKey): $($_.Exception.Message)" + } + } | Sort-Object -Property displayName + + if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property GUID -EQ $Request.query.id } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 new file mode 100644 index 000000000000..fc66527eb142 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroups.ps1 @@ -0,0 +1,145 @@ +function Invoke-ListGroups { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Group.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Query.tenantFilter + $GroupID = $Request.Query.groupID + $GroupType = $Request.Query.groupType + $Members = $Request.Query.members + $Owners = $Request.Query.owners + + $ExpandMembers = $Request.Query.expandMembers ?? $false + + $SelectString = 'id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule,groupTypes,onPremisesSyncEnabled,resourceProvisioningOptions,assignedLicenses,userPrincipalName' + if ($ExpandMembers -ne $false) { + $SelectString = '{0}&$expand=members($select=userPrincipalName)' -f $SelectString + } + + + $BulkRequestArrayList = [System.Collections.Generic.List[object]]::new() + + if ($Request.Query.GroupID) { + $SelectString = 'id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule,groupTypes,assignedLicenses,userPrincipalName,onPremisesSyncEnabled' + $BulkRequestArrayList.add(@{ + id = 1 + method = 'GET' + url = "groups/$($GroupID)?`$select=$SelectString" + }) + } + if ($Members) { + $SelectString = 'id,userPrincipalName,displayName,hideFromOutlookClients,hideFromAddressLists,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule' + $BulkRequestArrayList.add(@{ + id = 2 + method = 'GET' + url = "groups/$($GroupID)/members?`$top=999&select=$SelectString" + }) + } + + if ($Owners) { + if ($GroupType -ne 'Distribution List' -and $GroupType -ne 'Mail-Enabled Security') { + $SelectString = 'id,userPrincipalName,displayName,hideFromOutlookClients,hideFromAddressLists,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule' + $BulkRequestArrayList.add(@{ + id = 3 + method = 'GET' + url = "groups/$($GroupID)/owners?`$top=999&select=$SelectString" + }) + } else { + $OwnerIds = New-ExoRequest -cmdlet 'Get-DistributionGroup' -tenantid $TenantFilter -cmdParams @{Identity = $GroupID } -Select 'ManagedBy' -useSystemMailbox $true | Select-Object -ExpandProperty ManagedBy + + $BulkRequestArrayList.add(@{ + id = 3 + method = 'POST' + url = 'directoryObjects/getByIds' + body = @{ + ids = @($OwnerIds) + } + headers = @{ + 'Content-Type' = 'application/json' + } + }) + } + } + + if ($GroupType -eq 'Distribution List' -or $GroupType -eq 'Mail-Enabled Security') { + # get the outside the organization RequireSenderAuthenticationEnabled setting + $OnlyAllowInternal = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DistributionGroup' -cmdParams @{Identity = $GroupID } -Select 'RequireSenderAuthenticationEnabled' -useSystemMailbox $true | Select-Object -ExpandProperty RequireSenderAuthenticationEnabled + } elseif ($GroupType -eq 'Microsoft 365') { + $UnifiedGroupInfo = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-UnifiedGroup' -cmdParams @{Identity = $GroupID } -Select 'RequireSenderAuthenticationEnabled,subscriptionEnabled,AutoSubscribeNewMembers,HiddenFromExchangeClientsEnabled' -useSystemMailbox $true + $OnlyAllowInternal = $UnifiedGroupInfo.RequireSenderAuthenticationEnabled + } else { + $OnlyAllowInternal = $null + } + + if ($GroupType -eq 'Microsoft 365') { + if ($UnifiedGroupInfo.subscriptionEnabled -eq $true -and $UnifiedGroupInfo.AutoSubscribeNewMembers -eq $true) { $SendCopies = $true } else { $SendCopies = $false } + } else { + $SendCopies = $null + } + + try { + if ($BulkRequestArrayList.Count -gt 0) { + $RawGraphRequest = New-GraphBulkRequest -tenantid $TenantFilter -scope 'https://graph.microsoft.com/.default' -Requests @($BulkRequestArrayList) -asapp $true + $GraphRequest = [PSCustomObject]@{ + groupInfo = ($RawGraphRequest | Where-Object { $_.id -eq 1 }).body | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.mail -split '@' | Select-Object -Last 1 } }, + @{Name = 'teamsEnabled'; Expression = { if ($_.resourceProvisioningOptions -like '*Team*') { $true } else { $false } } }, + @{Name = 'groupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } + } + }, + @{Name = 'calculatedGroupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'm365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'generic' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'distributionList' } + } + }, + @{Name = 'dynamicGroupBool'; Expression = { if ($_.groupTypes -contains 'DynamicMembership') { $true } else { $false } } } + members = ($RawGraphRequest | Where-Object { $_.id -eq 2 }).body.value | Sort-Object displayName + owners = ($RawGraphRequest | Where-Object { $_.id -eq 3 }).body.value | Sort-Object displayName + allowExternal = (!$OnlyAllowInternal) + sendCopies = $SendCopies + hideFromOutlookClients = if ($GroupType -eq 'Microsoft 365') { $UnifiedGroupInfo.HiddenFromExchangeClientsEnabled } else { $null } + } + } else { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($GroupID)/$($members)?`$top=999&select=$SelectString" -tenantid $TenantFilter | Select-Object *, @{ Name = 'primDomain'; Expression = { $_.mail -split '@' | Select-Object -Last 1 } }, + @{Name = 'membersCsv'; Expression = { $_.members.userPrincipalName -join ',' } }, + @{Name = 'teamsEnabled'; Expression = { if ($_.resourceProvisioningOptions -like '*Team*') { $true }else { $false } } }, + @{Name = 'groupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } + } + }, + @{Name = 'calculatedGroupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'm365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'generic' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'distributionList' } + } + }, + @{Name = 'dynamicGroupBool'; Expression = { if ($_.groupTypes -contains 'DynamicMembership') { $true } else { $false } } } + $GraphRequest = @($GraphRequest | Sort-Object displayName) + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + Write-Warning $_.InvocationInfo.PositionMessage + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequest + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-RemoveGroupTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-RemoveGroupTemplate.ps1 new file mode 100644 index 000000000000..30066360f223 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-RemoveGroupTemplate.ps1 @@ -0,0 +1,41 @@ +Function Invoke-RemoveGroupTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $request.Query.ID ?? $Request.Body.ID + try { + $Table = Get-CippTable -tablename 'templates' + Write-Host $ID + + $Filter = "PartitionKey eq 'GroupTemplate' and RowKey eq '$ID'" + Write-Host $Filter + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Group Template with ID $ID" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove group template $($ID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddGuest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddGuest.ps1 new file mode 100644 index 000000000000..34d1114ac9a0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddGuest.ps1 @@ -0,0 +1,56 @@ +Function Invoke-AddGuest { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $TenantFilter = $Request.Body.tenantFilter + $UserObject = $Request.Body + + try { + if ($UserObject.RedirectURL) { + $BodyToShip = [pscustomobject] @{ + 'InvitedUserDisplayName' = $UserObject.DisplayName + 'InvitedUserEmailAddress' = $($UserObject.mail) + 'inviteRedirectUrl' = $($UserObject.RedirectURL) + 'sendInvitationMessage' = [bool]$UserObject.SendInvite + } + } else { + $BodyToShip = [pscustomobject] @{ + 'InvitedUserDisplayName' = $UserObject.DisplayName + 'InvitedUserEmailAddress' = $($UserObject.mail) + 'sendInvitationMessage' = [bool]$UserObject.SendInvite + 'inviteRedirectUrl' = 'https://myapps.microsoft.com' + } + } + $bodyToShip = ConvertTo-Json -Depth 10 -InputObject $BodyToShip -Compress + $null = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/invitations' -tenantid $TenantFilter -type POST -body $BodyToShip -Verbose + if ($UserObject.SendInvite -eq $true) { + $Result = "Invited Guest $($UserObject.DisplayName) with Email Invite" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' + } else { + $Result = "Invited Guest $($UserObject.DisplayName) with no Email Invite" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to Invite Guest. $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = @($Result) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddJITAdminTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddJITAdminTemplate.ps1 new file mode 100644 index 000000000000..dd2de9d523e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddJITAdminTemplate.ps1 @@ -0,0 +1,150 @@ +function Invoke-AddJITAdminTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + # Extract data from request body + $TenantFilter = $Request.Body.tenantFilter + $TemplateName = $Request.Body.templateName + + # Validate required fields + if ([string]::IsNullOrWhiteSpace($TenantFilter)) { + throw 'tenantFilter is required' + } + if ([string]::IsNullOrWhiteSpace($TemplateName)) { + throw 'templateName is required' + } + + Write-LogMessage -headers $Headers -API $APIName -message "Creating JIT Admin template '$TemplateName' for tenant: $TenantFilter" -Sev 'Info' + + # Get user info for audit + $UserDetails = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + + # Check if template name already exists for this tenant + $Table = Get-CippTable -tablename 'templates' + $ExistingTemplates = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'JITAdminTemplate'" + $ExistingNames = $ExistingTemplates | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + if ($data.tenantFilter -eq $TenantFilter -and $data.templateName -eq $TemplateName) { + $data + } + } catch {} + } + + if ($ExistingNames) { + throw "A template with name '$TemplateName' already exists for tenant '$TenantFilter'" + } + + $DefaultForTenant = [bool]$Request.Body.defaultForTenant + + # If this template is set as default, unset other defaults for this tenant + if ($DefaultForTenant) { + $ExistingTemplates | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + if ($data.tenantFilter -eq $TenantFilter -and $data.defaultForTenant -eq $true) { + # Unset the default flag + $data.defaultForTenant = $false + $row.JSON = ($data | ConvertTo-Json -Depth 100 -Compress) + Add-CIPPAzDataTableEntity @Table -Entity $row -Force + Write-LogMessage -headers $Headers -API $APIName -message "Unset default flag for existing template: $($data.templateName)" -Sev 'Info' + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to update existing template: $($_.Exception.Message)" -Sev 'Warning' + } + } + } + + # Validate user action fields + $DefaultUserAction = $Request.Body.defaultUserAction + if ($TenantFilter -eq 'AllTenants' -and $DefaultUserAction -eq 'select') { + throw 'defaultUserAction cannot be "select" when tenantFilter is "AllTenants"' + } + + # Create template object + $TemplateObject = @{ + tenantFilter = $TenantFilter + templateName = $TemplateName + defaultForTenant = $DefaultForTenant + defaultRoles = $Request.Body.defaultRoles + defaultDuration = $Request.Body.defaultDuration + defaultExpireAction = $Request.Body.defaultExpireAction + defaultNotificationActions = $Request.Body.defaultNotificationActions + generateTAPByDefault = [bool]$Request.Body.generateTAPByDefault + reasonTemplate = $Request.Body.reasonTemplate + createdBy = $UserDetails + createdDate = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + # Add defaultUserAction if provided + if (![string]::IsNullOrWhiteSpace($DefaultUserAction)) { + $TemplateObject.defaultUserAction = $DefaultUserAction + } + + # Add user detail fields when "create" action is specified + if ($DefaultUserAction -eq 'create') { + # These fields can be saved for both AllTenants and specific tenant templates + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultFirstName)) { + $TemplateObject.defaultFirstName = $Request.Body.defaultFirstName + } + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultLastName)) { + $TemplateObject.defaultLastName = $Request.Body.defaultLastName + } + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultUserName)) { + $TemplateObject.defaultUserName = $Request.Body.defaultUserName + } + + # defaultDomain is only saved for specific tenant templates (not AllTenants) + if ($TenantFilter -ne 'AllTenants' -and $Request.Body.defaultDomain) { + if ($Request.Body.defaultDomain -is [string]) { + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultDomain)) { + $TemplateObject.defaultDomain = $Request.Body.defaultDomain + } + } else { + $TemplateObject.defaultDomain = $Request.Body.defaultDomain + } + } + } + + # Generate GUID for the template + $GUID = (New-Guid).GUID + + # Convert to JSON + $JSON = ConvertTo-Json -InputObject $TemplateObject -Depth 100 -Compress + + # Store in table + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'JITAdminTemplate' + GUID = "$GUID" + } + + $Result = "Created JIT Admin Template '$($TemplateName)' with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create JIT Admin Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 new file mode 100644 index 000000000000..5fce41b7da5b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 @@ -0,0 +1,89 @@ +function Invoke-AddUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $UserObj = $Request.Body + + if (!$UserObj.tenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = [pscustomobject]@{ + 'Results' = @{ + resultText = 'tenantFilter is required to create a user.' + state = 'error' + } + } + }) + } + + if ($UserObj.Scheduled.Enabled) { + try { + $Username = $UserObj.username ?? $UserObj.mailNickname + $TaskBody = [pscustomobject]@{ + TenantFilter = $UserObj.tenantFilter + Name = "New user creation: $($Username)@$($UserObj.PrimDomain.value)" + Command = @{ + value = 'New-CIPPUserTask' + label = 'New-CIPPUserTask' + } + Parameters = [pscustomobject]@{ UserObj = $UserObj } + ScheduledTime = $UserObj.Scheduled.date + Reference = $UserObj.reference ?? $null + PostExecution = @{ + Webhook = [bool]$Request.Body.PostExecution.Webhook + Email = [bool]$Request.Body.PostExecution.Email + PSA = [bool]$Request.Body.PostExecution.PSA + } + } + Add-CIPPScheduledTask -Task $TaskBody -hidden $false -DisallowDuplicateName $true -Headers $Headers + $body = [pscustomobject] @{ + 'Results' = @("Successfully created scheduled task to create user $($UserObj.DisplayName)") + } + } catch { + $body = [pscustomobject] @{ + 'Results' = @("Failed to create scheduled task to create user $($UserObj.DisplayName): $($_.Exception.Message)") + } + $StatusCode = [HttpStatusCode]::InternalServerError + } + } else { + try { + $CreationResults = New-CIPPUserTask -UserObj $UserObj -APIName $APIName -Headers $Headers + $body = [pscustomobject] @{ + 'Results' = @( + $CreationResults.Results[0], + $CreationResults.Results[1], + @{ + 'resultText' = $CreationResults.Results[2] + 'copyField' = $CreationResults.password + 'state' = 'success' + } + ) + 'CopyFrom' = @{ + 'Success' = $CreationResults.CopyFrom.Success + 'Error' = $CreationResults.CopyFrom.Error + } + 'User' = $CreationResults.User + } + } catch { + $body = [pscustomobject] @{ + 'Results' = @("$($_.Exception.Message)") + } + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode ? $StatusCode : [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserBulk.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserBulk.ps1 new file mode 100644 index 000000000000..5e0cdf6c0f26 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserBulk.ps1 @@ -0,0 +1,155 @@ +function Invoke-AddUserBulk { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + # Interact with body parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + + $BulkUsers = $Request.Body.BulkUser + $AssignedLicenses = $Request.Body.licenses + $UsageLocation = $Request.Body.usageLocation + + if (!$BulkUsers) { + $Body = @{ + Results = @{ + resultText = 'No users specified to import' + state = 'error' + } + } + } else { + $BulkRequests = [System.Collections.Generic.List[object]]::new() + $Results = [System.Collections.Generic.List[object]]::new() + $Messages = [System.Collections.Generic.List[object]]::new() + foreach ($User in $BulkUsers) { + # User input validation + $missingFields = [System.Collections.Generic.List[string]]::new() + if (!$User.mailNickName) { $missingFields.Add('mailNickName') } + if (!$User.domain) { $missingFields.Add('domain') } + if (!$User.displayName -and !$User.givenName -and !$User.surname) { $missingFields.Add('displayName') } + + $Name = if ([string]::IsNullOrEmpty($User.displayName)) { + '{0} {1}' -f $User.givenName, $User.surname + } else { + $User.displayName + } + + # Check for missing required fields + if ($missingFields.Count -gt 0) { + $Results.Add(@{ + resultText = "Required fields missing for $($User ?? 'No name specified'): $($missingFields -join ', ')" + state = 'error' + }) + } else { + Write-Information "## Creating user for $($Name) - $($User.mailNickName)@$($User.domain)" + # Create user body with required properties + $Password = if ($User.password) { $User.password } else { New-passwordString } + $UserBody = @{ + accountEnabled = $true + displayName = $Name + mailNickName = $User.mailNickName + userPrincipalName = '{0}@{1}' -f $User.mailNickName, $User.domain + passwordProfile = @{ + password = $Password + forceChangePasswordNextSignIn = $true + } + } + + # Usage location and licensing + if ($UsageLocation) { + $UserBody.usageLocation = $UsageLocation.value ?? $UsageLocation + Write-Information "- Usage location set to $($UsageLocation.label ?? $UsageLocation)" + } + + + # Convert businessPhones to array if not null or empty + if (![string]::IsNullOrEmpty($User.businessPhones)) { + $UserBody.businessPhones = @($User.businessPhones) + } + + # Add all other properties + foreach ($key in $User.PSObject.Properties.Name) { + if ($key -notin @('displayName', 'mailNickName', 'domain', 'password', 'usageLocation', 'businessPhones')) { + if (![string]::IsNullOrEmpty($User.$key) -and $null -eq $UserBody.$key) { + $UserBody.$key = $User.$key + } + } + } + + # Build bulk request + $BulkRequests.Add(@{ + 'id' = $UserBody.userPrincipalName + 'url' = 'users' + 'method' = 'POST' + 'body' = $UserBody + 'headers' = @{ + 'Content-Type' = 'application/json' + } + }) + + # Create password link + $PasswordLink = New-PwPushLink -Payload $password + if ($PasswordLink) { + $password = $PasswordLink + } + + # Set success messages + $Messages.Add(@{ + id = $UserBody.userPrincipalName + resultText = "Created user for $($Name) with username $($UserBody.userPrincipalName)" + copyField = $Password + }) + } + } + + if ($BulkRequests.Count -gt 0) { + Write-Warning "We have $($BulkRequests.Count) users to import" + #Write-Information ($BulkRequests | ConvertTo-Json -Depth 5) + $BulkResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests $BulkRequests + Write-Warning "We have $($BulkResults.Count) results" + #Write-Information ($BulkResults | ConvertTo-Json -Depth 10) + foreach ($BulkResult in $BulkResults) { + if ($BulkResult.status -ne 201) { + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $($TenantFilter) -message "Failed to create user $($BulkResult.id). Error:$($BulkResult.body.error.message)" -Sev 'Error' + $Results.Add(@{ + resultText = "Failed to create user $($BulkResult.id). Error: $($BulkResult.body.error.message)" + state = 'error' + }) + } else { + $Message = $Messages.Where({ $_.id -eq $BulkResult.id }) + if ($AssignedLicenses) { + $GuidPattern = '([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})' + $LicenseSkus = $AssignedLicenses.value ?? $AssignedLicenses | Where-Object { $_ -match $GuidPattern } + Set-CIPPUserLicense -UserId $BulkResult.id -AddLicenses $LicenseSkus -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers + } + $Results.Add(@{ + resultText = $Message.resultText + state = 'success' + copyField = $Message.copyField + username = $BulkResult.body.userPrincipalName + }) + } + } + } else { + $Results.Add(@{ + resultText = 'No users to import' + state = 'error' + }) + } + $Body = @{ + Results = @($Results) + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 new file mode 100644 index 000000000000..cb59b07113b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 @@ -0,0 +1,140 @@ +function Invoke-AddUserDefaults { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + # Extract data from request body - matching CippAddEditUser.jsx field names + $TenantFilter = $Request.Body.tenantFilter + $TemplateName = $Request.Body.templateName + $DefaultForTenant = $Request.Body.defaultForTenant + + Write-Host "Creating template '$TemplateName' for tenant: $TenantFilter" + + # User fields + $GivenName = $Request.Body.givenName + $Surname = $Request.Body.surname + $DisplayName = $Request.Body.displayName + + # Handle autocomplete fields - extract value if it's an object + $UsernameFormat = if ($Request.Body.usernameFormat -is [string]) { + $Request.Body.usernameFormat + } else { + $Request.Body.usernameFormat.value + } + + $PrimDomain = if ($Request.Body.primDomain -is [string]) { + $Request.Body.primDomain + } else { + $Request.Body.primDomain.value + } + + $AddedAliases = $Request.Body.addedAliases + + # Settings + $Autopassword = $Request.Body.Autopassword + $Password = $Request.Body.password + $MustChangePass = $Request.Body.MustChangePass + + $UsageLocation = if ($Request.Body.usageLocation -is [string]) { + $Request.Body.usageLocation + } else { + $Request.Body.usageLocation.value + } + + $Licenses = $Request.Body.licenses + $RemoveLicenses = $Request.Body.removeLicenses + + # Job and Location fields + $JobTitle = $Request.Body.jobTitle + $StreetAddress = $Request.Body.streetAddress + $City = $Request.Body.city + $State = $Request.Body.state + $PostalCode = $Request.Body.postalCode + $Country = $Request.Body.country + $CompanyName = $Request.Body.companyName + $Department = $Request.Body.department + + # Contact fields + $MobilePhone = $Request.Body.mobilePhone + $BusinessPhones = $Request.Body.'businessPhones[0]' + $OtherMails = $Request.Body.otherMails + + # User relations + $SetManager = $Request.Body.setManager + $SetSponsor = $Request.Body.setSponsor + $CopyFrom = $Request.Body.copyFrom + + # Create template object with all fields from CippAddEditUser + $TemplateObject = @{ + tenantFilter = $TenantFilter + templateName = $TemplateName + defaultForTenant = [bool]$DefaultForTenant + givenName = $GivenName + surname = $Surname + displayName = $DisplayName + usernameFormat = $UsernameFormat + primDomain = $PrimDomain + addedAliases = $AddedAliases + Autopassword = $Autopassword + password = $Password + MustChangePass = $MustChangePass + usageLocation = $UsageLocation + licenses = $Licenses + removeLicenses = $RemoveLicenses + jobTitle = $JobTitle + streetAddress = $StreetAddress + city = $City + state = $State + postalCode = $PostalCode + country = $Country + companyName = $CompanyName + department = $Department + mobilePhone = $MobilePhone + businessPhones = $BusinessPhones + otherMails = $OtherMails + setManager = $SetManager + setSponsor = $SetSponsor + copyFrom = $CopyFrom + } + + # Generate GUID for the template + $GUID = (New-Guid).GUID + + # Convert to JSON + $JSON = ConvertTo-Json -InputObject $TemplateObject -Depth 100 -Compress + + # Store in table + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'UserDefaultTemplate' + GUID = "$GUID" + } + + $Result = "Created User Default Template '$($TemplateName)' with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create User Default Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 new file mode 100644 index 000000000000..8a9a94c0cbd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-CIPPOffboardingJob.ps1 @@ -0,0 +1,229 @@ +function Invoke-CIPPOffboardingJob { + [CmdletBinding()] + param ( + [string]$TenantFilter, + [string]$Username, + [switch]$RunScheduled, + $Options, + $APIName = 'Offboard user', + $Headers + ) + if ($Options -is [string]) { + $Options = $Options | ConvertFrom-Json + } + $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)?`$select=id,displayName,onPremisesSyncEnabled,onPremisesImmutableId" -tenantid $TenantFilter + $UserID = $User.id + $DisplayName = $User.displayName + Write-Host "Running offboarding job for $Username with options: $($Options | ConvertTo-Json -Depth 10)" + $Return = switch ($Options) { + { $_.ConvertToShared -eq $true } { + try { + Set-CIPPMailboxType -Headers $Headers -tenantFilter $TenantFilter -userid $UserID -username $Username -MailboxType 'Shared' -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.RevokeSessions -eq $true } { + try { + Revoke-CIPPSessions -tenantFilter $TenantFilter -username $Username -userid $UserID -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.ResetPass -eq $true } { + try { + Set-CIPPResetPassword -tenantFilter $TenantFilter -DisplayName $DisplayName -UserID $username -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.RemoveGroups -eq $true } { + Remove-CIPPGroups -userid $UserID -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Username $Username + } + { $_.HideFromGAL -eq $true } { + try { + Set-CIPPHideFromGAL -tenantFilter $TenantFilter -UserID $username -HideFromGAL $true -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.DisableSignIn -eq $true } { + try { + Set-CIPPSignInState -TenantFilter $TenantFilter -userid $username -AccountEnabled $false -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.OnedriveAccess } { + $Options.OnedriveAccess | ForEach-Object { + try { + Set-CIPPSharePointPerms -tenantFilter $TenantFilter -userid $username -OnedriveAccessUser $_.value -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + } + { $_.AccessNoAutomap } { + $Options.AccessNoAutomap | ForEach-Object { + try { + Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $false -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + } + { $_.AccessAutomap } { + $Options.AccessAutomap | ForEach-Object { + try { + Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $true -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + } + { $_.OOO } { + try { + Set-CIPPOutOfOffice -tenantFilter $TenantFilter -UserID $username -InternalMessage $Options.OOO -ExternalMessage $Options.OOO -Headers $Headers -APIName $APIName -state 'Enabled' + } catch { + $_.Exception.Message + } + } + { $_.forward } { + if (!$Options.KeepCopy) { + try { + Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } else { + $KeepCopy = [boolean]$Options.KeepCopy + try { + Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -KeepCopy $KeepCopy -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + } + { $_.disableForwarding } { + try { + Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Disable $true -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.RemoveTeamsPhoneDID } { + try { + Remove-CIPPUserTeamsPhoneDIDs -userid $userid -username $username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.RemoveLicenses -eq $true } { + Remove-CIPPLicense -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Schedule + } + { $_.DeleteUser -eq $true } { + try { + Remove-CIPPUser -UserID $userid -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.RemoveRules -eq $true } { + Write-Host "Removing rules for $username" + try { + Remove-CIPPMailboxRule -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -RemoveAllRules + } catch { + $_.Exception.Message + } + } + { $_.RemoveMobile -eq $true } { + try { + Remove-CIPPMobileDevice -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.removeCalendarInvites -eq $true } { + try { + Remove-CIPPCalendarInvites -UserID $userid -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } + { $_.removePermissions } { + if ($RunScheduled) { + Remove-CIPPMailboxPermissions -PermissionsLevel @('FullAccess', 'SendAs', 'SendOnBehalf') -userid 'AllUsers' -AccessUser $UserName -TenantFilter $TenantFilter -APIName $APINAME -Headers $Headers + + } else { + $Queue = New-CippQueueEntry -Name "Offboarding - Mailbox Permissions: $Username" -TotalTasks 1 + $InputObject = [PSCustomObject]@{ + Batch = @( + [PSCustomObject]@{ + 'FunctionName' = 'ExecOffboardingMailboxPermissions' + 'TenantFilter' = $TenantFilter + 'User' = $Username + 'Headers' = $Headers + 'APINAME' = $APINAME + 'QueueId' = $Queue.RowKey + } + ) + OrchestratorName = "OffboardingMailboxPermissions_$Username" + SkipLog = $true + } + $null = Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject ($InputObject | ConvertTo-Json -Depth 10) + "Removal of permissions queued. This task will run in the background and send it's results to the logbook." + } + } + { $_.RemoveMFADevices -eq $true } { + try { + Remove-CIPPUserMFA -UserPrincipalName $Username -TenantFilter $TenantFilter -Headers $Headers + } catch { + $_.Exception.Message + } + } + { $_.ClearImmutableId -eq $true } { + if ($User.onPremisesSyncEnabled -ne $true -and ![string]::IsNullOrEmpty($User.onPremisesImmutableId)) { + Write-LogMessage -Message "User $Username has an ImmutableID set but is not synced from on-premises. Proceeding to clear the ImmutableID." -TenantFilter $TenantFilter -Severity 'Warning' -APIName $APIName -Headers $Headers + try { + Clear-CIPPImmutableID -UserID $userid -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + } catch { + $_.Exception.Message + } + } elseif ($User.onPremisesSyncEnabled -eq $true -and ![string]::IsNullOrEmpty($User.onPremisesImmutableId)) { + Write-LogMessage -Message "User $Username is synced from on-premises. Scheduling an Immutable ID clear for when the user account has been soft deleted." -TenantFilter $TenantFilter -Severity 'Error' -APIName $APIName -Headers $Headers + 'Scheduling Immutable ID clear task for when the user account is no longer synced in the on-premises directory.' + $ScheduledTask = @{ + TenantFilter = $TenantFilter + Name = "Clear Immutable ID: $Username" + Command = @{ + value = 'Clear-CIPPImmutableID' + } + Parameters = [pscustomobject]@{ + userid = $userid + APIName = $APIName + Headers = $Headers + } + Trigger = @{ + Type = 'DeltaQuery' + DeltaResource = 'users' + ResourceFilter = @($UserID) + EventType = 'deleted' + UseConditions = $false + ExecutePerResource = $true + ExecutionMode = 'once' + } + ScheduledTime = [int64](([datetime]::UtcNow).AddMinutes(5) - (Get-Date '1/1/1970')).TotalSeconds + Recurrence = '15m' + PostExecution = @{ + Webhook = $false + Email = $false + PSA = $false + } + } + Add-CIPPScheduledTask -Task $ScheduledTask -hidden $false + } + } + } + return $Return + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditJITAdminTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditJITAdminTemplate.ps1 new file mode 100644 index 000000000000..35bbd95139ca --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditJITAdminTemplate.ps1 @@ -0,0 +1,164 @@ +function Invoke-EditJITAdminTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + # Extract data from request body + $GUID = $Request.Body.GUID + $TenantFilter = $Request.Body.tenantFilter + $TemplateName = $Request.Body.templateName + + # Validate required fields + if ([string]::IsNullOrWhiteSpace($GUID)) { + throw 'GUID is required' + } + if ([string]::IsNullOrWhiteSpace($TenantFilter)) { + throw 'tenantFilter is required' + } + if ([string]::IsNullOrWhiteSpace($TemplateName)) { + throw 'templateName is required' + } + + Write-LogMessage -headers $Headers -API $APIName -message "Editing JIT Admin template '$GUID' for tenant: $TenantFilter" -Sev 'Info' + + # Get user info for audit + $UserDetails = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + + # Get the existing template + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'JITAdminTemplate' and RowKey eq '$GUID'" + $ExistingTemplate = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (!$ExistingTemplate) { + throw "Template with GUID '$GUID' not found" + } + + # Parse existing template data + $ExistingData = $ExistingTemplate.JSON | ConvertFrom-Json -Depth 100 + + # Check if template name is unique (excluding current template) + $AllTemplates = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'JITAdminTemplate'" + $DuplicateName = $AllTemplates | Where-Object { $_.RowKey -ne $GUID } | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + if ($data.tenantFilter -eq $TenantFilter -and $data.templateName -eq $TemplateName) { + $data + } + } catch {} + } + + if ($DuplicateName) { + throw "A template with name '$TemplateName' already exists for tenant '$TenantFilter'" + } + + $DefaultForTenant = [bool]$Request.Body.defaultForTenant + + # If this template is being set as default, unset other defaults for this tenant + if ($DefaultForTenant) { + $AllTemplates | Where-Object { $_.RowKey -ne $GUID } | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + if ($data.tenantFilter -eq $TenantFilter -and $data.defaultForTenant -eq $true) { + # Unset the default flag + $data.defaultForTenant = $false + $row.JSON = ($data | ConvertTo-Json -Depth 100 -Compress) + Add-CIPPAzDataTableEntity @Table -Entity $row -Force + Write-LogMessage -headers $Headers -API $APIName -message "Unset default flag for existing template: $($data.templateName)" -Sev 'Info' + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to update existing template: $($_.Exception.Message)" -Sev 'Warning' + } + } + } + + # Validate user action fields + $DefaultUserAction = $Request.Body.defaultUserAction + if ($TenantFilter -eq 'AllTenants' -and $DefaultUserAction -eq 'select') { + throw 'defaultUserAction cannot be "select" when tenantFilter is "AllTenants"' + } + + # Update template object (preserve creation metadata) + $TemplateObject = @{ + tenantFilter = $TenantFilter + templateName = $TemplateName + defaultForTenant = $DefaultForTenant + defaultRoles = $Request.Body.defaultRoles + defaultDuration = $Request.Body.defaultDuration + defaultExpireAction = $Request.Body.defaultExpireAction + defaultNotificationActions = $Request.Body.defaultNotificationActions + generateTAPByDefault = [bool]$Request.Body.generateTAPByDefault + reasonTemplate = $Request.Body.reasonTemplate + createdBy = $ExistingData.createdBy + createdDate = $ExistingData.createdDate + modifiedBy = $UserDetails + modifiedDate = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + # Add defaultUserAction if provided + if (![string]::IsNullOrWhiteSpace($DefaultUserAction)) { + $TemplateObject.defaultUserAction = $DefaultUserAction + } + + # Add user detail fields when "create" action is specified + if ($DefaultUserAction -eq 'create') { + # These fields can be saved for both AllTenants and specific tenant templates + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultFirstName)) { + $TemplateObject.defaultFirstName = $Request.Body.defaultFirstName + } + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultLastName)) { + $TemplateObject.defaultLastName = $Request.Body.defaultLastName + } + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultUserName)) { + $TemplateObject.defaultUserName = $Request.Body.defaultUserName + } + + # defaultDomain is only saved for specific tenant templates (not AllTenants) + if ($TenantFilter -ne 'AllTenants' -and $Request.Body.defaultDomain) { + if ($Request.Body.defaultDomain -is [string]) { + if (![string]::IsNullOrWhiteSpace($Request.Body.defaultDomain)) { + $TemplateObject.defaultDomain = $Request.Body.defaultDomain + } + } else { + $TemplateObject.defaultDomain = $Request.Body.defaultDomain + } + } + } + + # Convert to JSON + $JSON = ConvertTo-Json -InputObject $TemplateObject -Depth 100 -Compress + + # Update in table + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'JITAdminTemplate' + GUID = "$GUID" + } + + $Result = "Updated JIT Admin Template '$($TemplateName)' (GUID: $GUID)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to update JIT Admin Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 new file mode 100644 index 000000000000..2ffcc5041778 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 @@ -0,0 +1,247 @@ +function Invoke-EditUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $UserObj = $Request.Body + if ([string]::IsNullOrWhiteSpace($UserObj.id)) { + $body = @{'Results' = @('Failed to edit user. No user ID provided') } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $Body + }) + return + } + $Results = [System.Collections.Generic.List[object]]::new() + $licenses = ($UserObj.licenses).value + $Aliases = if ($UserObj.AddedAliases) { ($UserObj.AddedAliases) -split '\s' } + $AddToGroups = $Request.Body.AddToGroups + $RemoveFromGroups = $Request.Body.RemoveFromGroups + + + #Edit the user + try { + Write-Host "$([boolean]$UserObj.MustChangePass)" + $UserPrincipalName = "$($UserObj.username)@$($UserObj.Domain ? $UserObj.Domain : $UserObj.primDomain.value)" + $BodyToship = [pscustomobject] @{ + 'givenName' = $UserObj.givenName + 'surname' = $UserObj.surname + 'displayName' = $UserObj.displayName + 'department' = $UserObj.department + 'mailNickname' = $UserObj.username ? $UserObj.username : $UserObj.mailNickname + 'userPrincipalName' = $UserPrincipalName + 'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation + 'jobTitle' = $UserObj.jobTitle + 'mobilePhone' = $UserObj.mobilePhone + 'streetAddress' = $UserObj.streetAddress + 'city' = $UserObj.city + 'state' = $UserObj.state + 'postalCode' = $UserObj.postalCode + 'country' = $UserObj.country + 'companyName' = $UserObj.companyName + 'businessPhones' = $UserObj.businessPhones ? @($UserObj.businessPhones) : @() + 'otherMails' = $UserObj.otherMails ? @($UserObj.otherMails) : @() + 'passwordProfile' = @{ + 'forceChangePasswordNextSignIn' = [bool]$UserObj.MustChangePass + } + } | ForEach-Object { + $NonEmptyProperties = $_.PSObject.Properties | Select-Object -ExpandProperty Name + $_ | Select-Object -Property $NonEmptyProperties + } + if ($UserObj.defaultAttributes) { + $UserObj.defaultAttributes | Get-Member -MemberType NoteProperty | ForEach-Object { + if (-not [string]::IsNullOrWhiteSpace($UserObj.defaultAttributes.$($_.Name).value)) { + Write-Host "Editing user and adding $($_.Name) with value $($UserObj.defaultAttributes.$($_.Name).value)" + $BodyToShip | Add-Member -NotePropertyName $_.Name -NotePropertyValue $UserObj.defaultAttributes.$($_.Name).value -Force + } + } + } + if ($UserObj.customData) { + $UserObj.customData | Get-Member -MemberType NoteProperty | ForEach-Object { + if (-not [string]::IsNullOrWhiteSpace($UserObj.customData.$($_.Name))) { + Write-Host "Editing user and adding custom data $($_.Name) with value $($UserObj.customData.$($_.Name))" + $BodyToShip | Add-Member -NotePropertyName $_.Name -NotePropertyValue $UserObj.customData.$($_.Name) -Force + } + } + } + $bodyToShip = ConvertTo-Json -Depth 10 -InputObject $BodyToship -Compress + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type PATCH -body $BodyToship -verbose + $Results.Add( 'Success. The user has been edited.' ) + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Edited user $($UserObj.DisplayName) with id $($UserObj.id)" -Sev Info + if ($UserObj.password) { + $passwordProfile = [pscustomobject]@{'passwordProfile' = @{ 'password' = $UserObj.password; 'forceChangePasswordNextSignIn' = [boolean]$UserObj.MustChangePass } } | ConvertTo-Json + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type PATCH -body $PasswordProfile -Verbose + $Results.Add("Success. The password has been set to $($UserObj.password)") + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Reset $($UserObj.DisplayName)'s Password" -Sev Info + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "User edit API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Results.Add( "Failed to edit user. $($ErrorMessage.NormalizedError)") + } + + + #Reassign the licenses + try { + + if ($licenses -or $UserObj.removeLicenses) { + if ($UserObj.sherwebLicense.value) { + $null = Set-SherwebSubscription -Headers $Headers -TenantFilter $UserObj.tenantFilter -SKU $UserObj.sherwebLicense.value -Add 1 + $Results.Add('Added Sherweb License, scheduling assignment') + $taskObject = [PSCustomObject]@{ + TenantFilter = $UserObj.tenantFilter + Name = "Assign License: $UserPrincipalName" + Command = @{ + value = 'Set-CIPPUserLicense' + } + Parameters = [pscustomobject]@{ + UserId = $UserObj.id + APIName = 'Sherweb License Assignment' + AddLicenses = $licenses + } + ScheduledTime = 0 #right now, which is in the next 15 minutes and should cover most cases. + PostExecution = @{ + Webhook = [bool]$Request.Body.PostExecution.webhook + Email = [bool]$Request.Body.PostExecution.email + PSA = [bool]$Request.Body.PostExecution.psa + } + } + Add-CIPPScheduledTask -Task $taskObject -hidden $false -Headers $Headers + } else { + $CurrentLicenses = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter + #if the list of skuIds in $CurrentLicenses.assignedLicenses is EXACTLY the same as $licenses, we don't need to do anything, but the order in both can be different. + if (($CurrentLicenses.assignedLicenses.skuId -join ',') -eq ($licenses -join ',') -and $UserObj.removeLicenses -eq $false) { + Write-Host "$($CurrentLicenses.assignedLicenses.skuId -join ',') $(($licenses -join ','))" + $Results.Add( 'Success. User license is already correct.' ) + } else { + if ($UserObj.removeLicenses) { + $licResults = Set-CIPPUserLicense -UserId $UserObj.id -TenantFilter $UserObj.tenantFilter -RemoveLicenses $CurrentLicenses.assignedLicenses.skuId -Headers $Headers -APIName $APIName + $Results.Add($licResults) + } else { + #Remove all objects from $CurrentLicenses.assignedLicenses.skuId that are in $licenses + $RemoveLicenses = $CurrentLicenses.assignedLicenses.skuId | Where-Object { $_ -notin $licenses } + $licResults = Set-CIPPUserLicense -UserId $UserObj.id -TenantFilter $UserObj.tenantFilter -RemoveLicenses $RemoveLicenses -AddLicenses $licenses -Headers $Headers -APIName $APIName + $Results.Add($licResults) + } + + } + } + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "License assign API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Results.Add( "We've failed to assign the license. $($ErrorMessage.NormalizedError)") + Write-Warning "License assign API failed. $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + + #Add Aliases, removal currently not supported. + try { + if ($Aliases) { + Write-Host ($Aliases | ConvertTo-Json) + foreach ($Alias in $Aliases) { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type 'patch' -body "{`"mail`": `"$Alias`"}" -Verbose + } + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type 'patch' -body "{`"mail`": `"$UserPrincipalName`"}" -Verbose + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Added Aliases to $($UserObj.DisplayName)" -Sev Info + $Results.Add( 'Success. Added aliases to user.') + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to add aliases to user $($UserObj.DisplayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message $Message -Sev Error -LogData $ErrorMessage + $Results.Add($Message) + } + + if ($Request.Body.CopyFrom.value) { + $CopyFrom = Set-CIPPCopyGroupMembers -Headers $Headers -CopyFromId $Request.Body.CopyFrom.value -UserID $UserPrincipalName -TenantFilter $UserObj.tenantFilter + $Results.AddRange(@($CopyFrom)) + } + + if ($AddToGroups) { + $AddToGroups | ForEach-Object { + + $GroupType = $_.addedFields.groupType + $GroupID = $_.value + $GroupName = $_.label + Write-Host "About to add $($UserObj.userPrincipalName) to $GroupName. Group ID is: $GroupID and type is: $GroupType" + + try { + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { + Write-Host 'Adding to group via Add-DistributionGroupMember' + $Params = @{ Identity = $GroupID; Member = $UserObj.id; BypassSecurityGroupManagerCheck = $true } + $null = New-ExoRequest -tenantid $UserObj.tenantFilter -cmdlet 'Add-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true + } else { + Write-Host 'Adding to group via Graph' + $UserBody = [PSCustomObject]@{ + '@odata.id' = "https://graph.microsoft.com/beta/directoryObjects/$($UserObj.id)" + } + $UserBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $UserBody + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$GroupID/members/`$ref" -tenantid $UserObj.tenantFilter -type POST -body $UserBodyJSON -Verbose + } + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Added $($UserObj.DisplayName) to $GroupName group" -Sev Info + $Results.Add("Success. $($UserObj.DisplayName) has been added to $GroupName") + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to add member $($UserObj.DisplayName) to $GroupName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $Message -Sev Error -LogData $ErrorMessage + $Results.Add($Message) + } + } + } + + if ($RemoveFromGroups) { + $RemoveFromGroups | ForEach-Object { + + $GroupType = $_.addedFields.groupType + $GroupID = $_.value + $GroupName = $_.label + Write-Host "About to remove $($UserObj.userPrincipalName) from $GroupName. Group ID is: $GroupID and type is: $GroupType" + + try { + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { + Write-Host 'Removing From group via Remove-DistributionGroupMember' + $Params = @{ Identity = $GroupID; Member = $UserObj.id; BypassSecurityGroupManagerCheck = $true } + $null = New-ExoRequest -tenantid $UserObj.tenantFilter -cmdlet 'Remove-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true + } else { + Write-Host 'Removing From group via Graph' + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$GroupID/members/$($UserObj.id)/`$ref" -tenantid $UserObj.tenantFilter -type DELETE + } + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Removed $($UserObj.DisplayName) from $GroupName group" -Sev Info + $Results.Add("Success. $($UserObj.DisplayName) has been removed from $GroupName") + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove member $($UserObj.DisplayName) from $GroupName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $Message -Sev Error -LogData $ErrorMessage + $Results.Add($Message) + } + } + } + + if ($Request.body.setManager.value) { + $ManagerResult = Set-CIPPManager -User $UserPrincipalName -Manager $Request.body.setManager.value -TenantFilter $UserObj.tenantFilter -Headers $Headers + $Results.Add($ManagerResult) + } + + if ($Request.body.setSponsor.value) { + $SponsorResult = Set-CIPPSponsor -User $UserPrincipalName -Sponsor $Request.body.setSponsor.value -TenantFilter $UserObj.tenantFilter -Headers $Headers + $Results.Add($SponsorResult) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @($Results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUserAliases.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUserAliases.ps1 new file mode 100644 index 000000000000..784e15892d68 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUserAliases.ps1 @@ -0,0 +1,143 @@ +Function Invoke-EditUserAliases { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $UserObj = $Request.Body + $TenantFilter = $UserObj.tenantFilter + + if ([string]::IsNullOrWhiteSpace($UserObj.id)) { + $body = @{'Results' = @('Failed to manage aliases. No user ID provided') } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $Body + }) + return + } + + $Results = [System.Collections.Generic.List[object]]::new() + $Aliases = if ($UserObj.AddedAliases) { ($UserObj.AddedAliases -split ',').ForEach({ $_.Trim() }) } + $RemoveAliases = if ($UserObj.RemovedAliases) { ($UserObj.RemovedAliases -split ',').ForEach({ $_.Trim() }) } + + try { + if ($Aliases -or $RemoveAliases -or $UserObj.MakePrimary) { + # Get current mailbox + $CurrentMailbox = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{ Identity = $UserObj.id } -UseSystemMailbox $true + + if (-not $CurrentMailbox) { + throw 'Could not find mailbox for user' + } + + $CurrentProxyAddresses = @($CurrentMailbox.EmailAddresses) + Write-Host "Current proxy addresses: $($CurrentProxyAddresses -join ', ')" + $NewProxyAddresses = @($CurrentProxyAddresses) + + # Handle setting primary address + if ($UserObj.MakePrimary) { + $PrimaryAddress = $UserObj.MakePrimary + Write-Host "Attempting to set primary address: $PrimaryAddress" + + # Normalize the primary address format + if ($PrimaryAddress -notlike 'SMTP:*') { + $PrimaryAddress = "SMTP:$($PrimaryAddress -replace '^smtp:', '')" + } + Write-Host "Normalized primary address: $PrimaryAddress" + + # Check if the address exists in the current addresses (case-insensitive) + $ExistingAddress = $CurrentProxyAddresses | Where-Object { + $current = $_.ToLower() + $target = $PrimaryAddress.ToLower() + Write-Host "Comparing: '$current' with '$target'" + $current -eq $target + } + + if (-not $ExistingAddress) { + Write-Host "Available addresses: $($CurrentProxyAddresses -join ', ')" + throw "Cannot set primary address. Address $($PrimaryAddress -replace '^SMTP:', '') not found in user's addresses." + } + + # Convert all current SMTP addresses to lowercase (secondary) + $NewProxyAddresses = $NewProxyAddresses | ForEach-Object { + if ($_ -like 'SMTP:*') { + $_.ToLower() + } else { + $_ + } + } + + # Remove any existing version of the address (case-insensitive) + $NewProxyAddresses = $NewProxyAddresses | Where-Object { + $_.ToLower() -ne $PrimaryAddress.ToLower() + } + # Add the new primary address at the beginning + $NewProxyAddresses = @($PrimaryAddress) + $NewProxyAddresses + + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Set primary address for $($CurrentMailbox.DisplayName)" -Sev Info + $Results.Add('Success. Set new primary address.') + } + + # Remove specified aliases + if ($RemoveAliases) { + foreach ($Alias in $RemoveAliases) { + # Normalize the alias format + if ($Alias -notlike 'smtp:*') { + $Alias = "smtp:$Alias" + } + # Remove the alias case-insensitively + $NewProxyAddresses = $NewProxyAddresses | Where-Object { + $_.ToLower() -ne $Alias.ToLower() + } + } + Write-LogMessage -API $ApiName -tenant $TenantFilter -headers $Headers -message "Removed Aliases from $($CurrentMailbox.DisplayName)" -Sev Info + $Results.Add('Success. Removed specified aliases from user.') + } + + # Add new aliases + if ($Aliases) { + $AliasesToAdd = @() + foreach ($Alias in $Aliases) { + # Normalize the alias format + if ($Alias -notlike 'smtp:*') { + $Alias = "smtp:$Alias" + } + # Check if the alias exists case-insensitively + if (-not ($NewProxyAddresses | Where-Object { $_.ToLower() -eq $Alias.ToLower() })) { + $AliasesToAdd = $AliasesToAdd + $Alias + } + } + if ($AliasesToAdd.Count -gt 0) { + $NewProxyAddresses = $NewProxyAddresses + $AliasesToAdd + Write-LogMessage -API $ApiName -tenant ($TenantFilter) -headers $Headers -message "Added Aliases to $($CurrentMailbox.DisplayName)" -Sev Info + $Results.Add('Success. Added new aliases to user.') + } + } + + # Update the mailbox with new proxy addresses + $Params = @{ + Identity = $UserObj.id + EmailAddresses = $NewProxyAddresses + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams $Params -UseSystemMailbox $true + } else { + $Results.Add('No alias changes specified.') + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $ApiName -tenant ($TenantFilter) -headers $Headers -message "Alias management failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Results.Add("Failed to manage aliases: $($ErrorMessage.NormalizedError)") + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @($Results) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECCheck.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECCheck.ps1 new file mode 100644 index 000000000000..fc6c0b457cc7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECCheck.ps1 @@ -0,0 +1,64 @@ +Function Invoke-ExecBECCheck { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CippTable -tablename 'cachebec' + + $UserId = $Request.Query.userid ?? $Request.Query.GUID + $Filter = "PartitionKey eq 'bec' and RowKey eq '$UserId'" + $JSONOutput = Get-CIPPAzDataTableEntity @Table -Filter $Filter + Write-Host ($Request.Query | ConvertTo-Json) + + $body = if (([string]::IsNullOrEmpty($JSONOutput.Results) -and $JSONOutput.Status -ne 'Waiting' ) -or $Request.Query.overwrite -eq $true) { + $Batch = @{ + 'FunctionName' = 'BECRun' + 'UserID' = $Request.Query.userid + 'TenantFilter' = $Request.Query.tenantFilter + 'userName' = $Request.Query.userName + } + + $Table = Get-CippTable -tablename 'cachebec' + + $Entity = @{ + UserId = $Request.Query.userid + Results = '' + RowKey = $Request.Query.userid + Status = 'Waiting' + PartitionKey = 'bec' + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'BECRunOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + #Write-Host ($InputObject | ConvertTo-Json) + $null = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ( ConvertTo-Json -InputObject $InputObject -Depth 5 -Compress ) + + @{ GUID = $Request.Query.userid } + } else { + if (!$Request.Query.GUID) { + @{ GUID = $Request.Query.userid } + } else { + if (!$JSONOutput -or $JSONOutput.Status -eq 'Waiting') { + @{ Waiting = $true } + } else { + $JSONOutput.Results + } + } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECRemediate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECRemediate.ps1 new file mode 100644 index 000000000000..29bf889d3773 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBECRemediate.ps1 @@ -0,0 +1,212 @@ +function Invoke-ExecBECRemediate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $TenantFilter = $Request.Body.tenantFilter + $SuspectUser = $Request.Body.userid + $Username = $Request.Body.username + Write-Host $TenantFilter + Write-Host $SuspectUser + + $Results = try { + $AllResults = [System.Collections.Generic.List[object]]::new() + + # Step 1: Reset Password + $Step = 'Reset Password' + try { + $PasswordResult = Set-CIPPResetPassword -UserID $Username -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + $AllResults.Add($PasswordResult) + } catch { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to reset password: $($_.Exception.Message)" + state = 'error' + }) + } + + # Step 2: Disable Account + $Step = 'Disable Account' + try { + $DisableResult = Set-CIPPSignInState -userid $Username -AccountEnabled $false -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers + $AllResults.Add([pscustomobject]@{ + resultText = $DisableResult + state = if ($DisableResult -like '*WARNING*') { 'warning' } else { 'success' } + }) + } catch { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to disable account: $($_.Exception.Message)" + state = 'error' + }) + } + + # Step 3: Revoke Sessions + $Step = 'Revoke Sessions' + try { + $SessionResult = Revoke-CIPPSessions -userid $SuspectUser -username $Username -Headers $Headers -APIName $APIName -tenantFilter $TenantFilter + $AllResults.Add([pscustomobject]@{ + resultText = $SessionResult + state = if ($SessionResult -like '*Failed*') { 'error' } else { 'success' } + }) + } catch { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to revoke sessions: $($_.Exception.Message)" + state = 'error' + }) + } + + # Step 4: Remove MFA methods + $Step = 'Remove MFA methods' + try { + $MFAResult = Remove-CIPPUserMFA -UserPrincipalName $Username -TenantFilter $TenantFilter -Headers $Headers + $AllResults.Add([pscustomobject]@{ + resultText = $MFAResult + state = if ($MFAResult -like '*No MFA methods*') { 'info' } elseif ($MFAResult -like '*Successfully*') { 'success' } else { 'error' } + }) + } catch { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to remove MFA methods: $($_.Exception.Message)" + state = 'error' + }) + } + + # Step 5: Disable Inbox Rules + $Step = 'Disable Inbox Rules' + try { + Write-LogMessage -headers $Headers -API $APIName -message "Starting inbox rules processing for user: $Username" -Sev 'Info' -tenant $TenantFilter + $Rules = New-ExoRequest -anchor $Username -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $Username; IncludeHidden = $true } + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved $(($Rules | Measure-Object).Count) total rules for $Username" -Sev 'Info' -tenant $TenantFilter + $RuleDisabled = 0 + $RuleFailed = 0 + $DelegateRulesSkipped = 0 + $RuleMessages = [System.Collections.Generic.List[string]]::new() + + if (($Rules | Measure-Object).Count -eq 0) { + # No rules exist at all + $AllResults.Add([pscustomobject]@{ + resultText = "No Inbox Rules found for $Username." + state = 'info' + }) + } else { + # Rules exist, filter and process them + $ProcessableRules = $Rules | Where-Object { + $_.Name -ne 'Junk E-Mail Rule' -and + $_.Name -notlike 'Microsoft.Exchange.OOF.*' + } + + if (($ProcessableRules | Measure-Object).Count -eq 0) { + # Rules exist but none are processable after filtering + $SystemRulesCount = ($Rules | Measure-Object).Count - $DelegateRulesSkipped + if ($SystemRulesCount -gt 0) { + $AllResults.Add([pscustomobject]@{ + resultText = "Found $(($Rules | Measure-Object).Count) inbox rules for $Username, but none require disabling (only system rules found)." + state = 'info' + }) + } + } else { + # Process the filterable rules + $ProcessableRules | ForEach-Object { + $CurrentRule = $_ + Write-LogMessage -headers $Headers -API $APIName -message "Processing rule: Name='$($CurrentRule.Name)', Identity='$($CurrentRule.Identity)'" -Sev 'Info' -tenant $TenantFilter + + try { + Set-CIPPMailboxRule -Username $Username -UserId $Username -TenantFilter $TenantFilter -RuleId $CurrentRule.Identity -RuleName $CurrentRule.Name -Disable -APIName $APIName -Headers $Headers + + Write-LogMessage -headers $Headers -API $APIName -message "Successfully disabled rule: $($CurrentRule.Name)" -Sev 'Info' -tenant $TenantFilter + $RuleDisabled++ + } catch { + # Check if this is a system delegate rule, if so we can ignore the error + if ($CurrentRule.Name -match '^Delegate Rule -\d+$') { + Write-LogMessage -headers $Headers -API $APIName -message "Skipping delegate rule '$($CurrentRule.Name)' - unable to disable (expected behavior)" -Sev 'Info' -tenant $TenantFilter + $DelegateRulesSkipped++ + } else { + # Handle as normal error + $ErrorMsg = "Could not disable rule '$($CurrentRule.Name)': $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMsg -Sev 'Error' -tenant $TenantFilter + $RuleMessages.Add($ErrorMsg) + $RuleFailed++ + } + } + } + + # Report results + if ($RuleDisabled -gt 0) { + $AllResults.Add([pscustomobject]@{ + resultText = "Successfully disabled $RuleDisabled inbox rules for $Username" + state = 'success' + }) + } elseif ($DelegateRulesSkipped -gt 0 -and $RuleDisabled -eq 0 -and $RuleFailed -eq 0) { + # Only system rules were found, report as no processable rules + $AllResults.Add([pscustomobject]@{ + resultText = "No processable inbox rules found for $Username" + state = 'info' + }) + } + + if ($RuleFailed -gt 0) { + $AllResults.Add([pscustomobject]@{ + resultText = "Failed to process $RuleFailed inbox rules for $Username" + state = 'warning' + }) + + # Add individual rule failure messages as objects + foreach ($RuleMessage in $RuleMessages) { + $AllResults.Add([pscustomobject]@{ + resultText = $RuleMessage + state = 'error' + }) + } + } + } + } + + $TotalProcessed = $RuleDisabled + $RuleFailed + $DelegateRulesSkipped + Write-LogMessage -headers $Headers -API $APIName -message "Completed inbox rules processing for $Username. Total rules: $(($Rules | Measure-Object).Count), Processed: $TotalProcessed, Disabled: $RuleDisabled, Failed: $RuleFailed, Delegate rules skipped: $DelegateRulesSkipped" -Sev 'Info' -tenant $TenantFilter + + } catch { + $ErrorMsg = "Failed to process inbox rules: $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMsg -Sev 'Error' -tenant $TenantFilter + $AllResults.Add([pscustomobject]@{ + resultText = $ErrorMsg + state = 'error' + }) + } + + $StatusCode = [HttpStatusCode]::OK + Write-LogMessage -API 'BECRemediate' -tenant $TenantFilter -message "Executed Remediation for $Username" -sev 'Info' -LogData @($AllResults) + + # Return the results array + $AllResults.ToArray() + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $ErrorList = [System.Collections.Generic.List[object]]::new() + $ErrorList.Add([pscustomobject]@{ + resultText = "Failed to execute remediation at step '$Step'. $($ErrorMessage.NormalizedError)" + state = 'error' + }) + Write-LogMessage -API 'BECRemediate' -tenant $TenantFilter -message "Executed Remediation for $Username failed at the $Step step" -sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + + # Return the error array + $ErrorList.ToArray() + } + + # Create the final response structure + $ResponseBody = [pscustomobject]@{'Results' = @($Results) } + + # Associate values to output bindings + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $ResponseBody + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBulkLicense.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBulkLicense.ps1 new file mode 100644 index 000000000000..69b8b3f169ff --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecBulkLicense.ps1 @@ -0,0 +1,86 @@ +function Invoke-ExecBulkLicense { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param ( + $Request, + $TriggerMetadata + ) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $Results = [System.Collections.Generic.List[string]]::new() + $StatusCode = [HttpStatusCode]::OK + + try { + $UserRequests = $Request.Body + $TenantGroups = $UserRequests | Group-Object -Property tenantFilter + + foreach ($TenantGroup in $TenantGroups) { + $TenantFilter = $TenantGroup.Name + $TenantRequests = $TenantGroup.Group + $AllUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?&`$select=id,userPrincipalName,assignedLicenses" -tenantid $TenantFilter + $UserLookup = @{} + foreach ($User in $AllUsers) { + $UserLookup[$User.id] = $User + } + + # Process each user request + foreach ($UserRequest in $TenantRequests) { + try { + $UserId = $UserRequest.userIds + $User = $UserLookup[$UserId] + $UserPrincipalName = $User.userPrincipalName + $LicenseOperation = $UserRequest.LicenseOperation + $RemoveAllLicenses = [bool]$UserRequest.RemoveAllLicenses + $Licenses = $UserRequest.Licenses | ForEach-Object { $_.value } + # Handle license operations + if ($LicenseOperation -eq 'Add' -or $LicenseOperation -eq 'Replace') { + $AddLicenses = $Licenses + } + + if ($LicenseOperation -eq 'Remove' -and $RemoveAllLicenses) { + $RemoveLicenses = $User.assignedLicenses.skuId + } elseif ($LicenseOperation -eq 'Remove') { + $RemoveLicenses = $Licenses + } elseif ($LicenseOperation -eq 'Replace') { + $RemoveReplace = $User.assignedLicenses.skuId + if ($RemoveReplace) { Set-CIPPUserLicense -UserId $UserId -TenantFilter $TenantFilter -RemoveLicenses $RemoveReplace -APIName $APIName -Headers $Headers } + } elseif ($RemoveAllLicenses) { + $RemoveLicenses = $User.assignedLicenses.skuId + } + #todo: Actually build bulk support into set-cippuserlicense. + $TaskResults = Set-CIPPUserLicense -UserId $UserId -TenantFilter $TenantFilter -AddLicenses $AddLicenses -RemoveLicenses $RemoveLicenses -APIName $APIName -Headers $Headers + + $Results.Add($TaskResults) + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Successfully processed licenses for user $UserPrincipalName" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results.Add("Failed to process licenses for user $($UserRequest.userIds). Error: $($ErrorMessage.NormalizedError)") + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to process licenses for user $($UserRequest.userIds). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + } + } + + $Body = @{ + Results = @($Results) + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ + Results = @("Failed to process bulk license operation: $($ErrorMessage.NormalizedError)") + } + Write-LogMessage -API $APIName -message "Failed to process bulk license operation: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + + # Return response + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecClrImmId.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecClrImmId.ps1 new file mode 100644 index 000000000000..dd3de53ae513 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecClrImmId.ps1 @@ -0,0 +1,31 @@ +Function Invoke-ExecClrImmId { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev Debug + + # Interact with body parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $UserID = $Request.Query.ID ?? $Request.Body.ID + + try { + $Result = Clear-CIPPImmutableID -UserID $UserID -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecCreateTAP.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecCreateTAP.ps1 new file mode 100644 index 000000000000..5f641a5c7f56 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecCreateTAP.ps1 @@ -0,0 +1,57 @@ +Function Invoke-ExecCreateTAP { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $UserID = $Request.Query.ID ?? $Request.Body.ID + $LifetimeInMinutes = $Request.Query.lifetimeInMinutes ?? $Request.Body.lifetimeInMinutes + $IsUsableOnce = $Request.Query.isUsableOnce ?? $Request.Body.isUsableOnce + $StartDateTime = $Request.Query.startDateTime ?? $Request.Body.startDateTime + + try { + # Create parameter hashtable for splatting + $TAPParams = @{ + UserID = $UserID + TenantFilter = $TenantFilter + APIName = $APIName + Headers = $Headers + LifetimeInMinutes = $LifetimeInMinutes + IsUsableOnce = $IsUsableOnce + StartDateTime = $StartDateTime + } + + $TAPResult = New-CIPPTAP @TAPParams + + # Create results array with both TAP and UserID as separate items + $Results = @( + $TAPResult, + @{ + resultText = "User ID: $UserID" + copyField = $UserID + state = 'success' + } + ) + + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDisableUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDisableUser.ps1 new file mode 100644 index 000000000000..8d3f22e7c158 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDisableUser.ps1 @@ -0,0 +1,34 @@ +Function Invoke-ExecDisableUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.ID ?? $Request.Body.ID + $Enable = $Request.Query.Enable ?? $Request.Body.Enable + $Enable = [System.Convert]::ToBoolean($Enable) + + try { + $Result = Set-CIPPSignInState -UserID $ID -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers -AccountEnabled $Enable + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = "$Result" } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDismissRiskyUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDismissRiskyUser.ps1 new file mode 100644 index 000000000000..2dee3de81801 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecDismissRiskyUser.ps1 @@ -0,0 +1,43 @@ +function Invoke-ExecDismissRiskyUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + # Interact with the query or body of the request + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $SuspectUser = $Request.Query.userId ?? $Request.Body.userId + $userDisplayName = $Request.Query.userDisplayName ?? $Request.Body.userDisplayName + + $GraphRequest = @{ + 'uri' = 'https://graph.microsoft.com/beta/riskyUsers/dismiss' + 'tenantid' = $TenantFilter + 'type' = 'POST' + 'contentType' = 'application/json; charset=utf-8' + 'body' = @{ + 'userIds' = @($SuspectUser) + } | ConvertTo-Json + } + + try { + $GraphResults = New-GraphPostRequest @GraphRequest + $Result = "Successfully dismissed User Risk for user $userDisplayName. $GraphResults" + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Result -sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to dismiss user risk for $userDisplayName. $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Result -sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 new file mode 100644 index 000000000000..4eca5bd0cbe8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecJITAdmin.ps1 @@ -0,0 +1,257 @@ +function Invoke-ExecJITAdmin { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.ReadWrite + + .DESCRIPTION + Just-in-time admin management API endpoint. This function can create users, add roles, remove roles, delete, or disable a user. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter.value ? $Request.Body.tenantFilter.value : $Request.Body.tenantFilter + + + $Start = ([System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.StartDate)).DateTime.ToLocalTime() + $Expiration = ([System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.EndDate)).DateTime.ToLocalTime() + $Results = [System.Collections.Generic.List[object]]::new() + + # Check maximum duration setting + try { + $ConfigTable = Get-CIPPTable -TableName Config + $Filter = "PartitionKey eq 'JITAdminSettings' and RowKey eq 'JITAdminSettings'" + $JITAdminConfig = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + + if ($JITAdminConfig -and ![string]::IsNullOrWhiteSpace($JITAdminConfig.MaxDuration)) { + # Calculate the duration between start and expiration + $RequestedDuration = $Expiration - $Start + + # Parse the max duration from ISO 8601 format + try { + $MaxDurationTimeSpan = [System.Xml.XmlConvert]::ToTimeSpan($JITAdminConfig.MaxDuration) + + if ($RequestedDuration -gt $MaxDurationTimeSpan) { + $RequestedDays = $RequestedDuration.TotalDays.ToString('0.00') + $MaxDays = $MaxDurationTimeSpan.TotalDays.ToString('0.00') + $ErrorMessage = "Requested JIT Admin duration ($RequestedDays days) exceeds the maximum allowed duration of $($JITAdminConfig.MaxDuration) ($MaxDays days)" + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMessage -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @($ErrorMessage) } + }) + } + } catch { + Write-Warning "Failed to parse MaxDuration setting: $($_.Exception.Message)" + } + } + } catch { + Write-Warning "Failed to check JIT Admin max duration setting: $($_.Exception.Message)" + # Continue execution if we can't check the setting + } + + if ($Request.Body.userAction -eq 'create') { + $Domain = $Request.Body.Domain.value ? $Request.Body.Domain.value : $Request.Body.Domain + $Username = "$($Request.Body.Username)@$($Domain)" + Write-Information "Creating JIT Admin user: $($Request.Body.username)" + + $JITAdmin = @{ + User = @{ + 'FirstName' = $Request.Body.FirstName + 'LastName' = $Request.Body.LastName + 'UserPrincipalName' = $Username + } + Expiration = $Expiration + StartDate = $Start + Reason = $Request.Body.reason + Action = 'Create' + TenantFilter = $TenantFilter + Headers = $Headers + APIName = $APIName + } + try { + $CreateResult = Set-CIPPUserJITAdmin @JITAdmin + } catch { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @("Failed to create JIT Admin user: $($_.Exception.Message)") } + }) + } + $Results.Add(@{ + resultText = "Created User: $Username" + copyField = $Username + state = 'success' + }) + if (!$Request.Body.UseTAP) { + $Results.Add(@{ + resultText = "Password: $($CreateResult.password)" + copyField = $CreateResult.password + state = 'success' + }) + } + $Results.Add("JIT Admin Expires: $($Expiration)") + Start-Sleep -Seconds 1 + } else { + + $Username = $Request.Body.existingUser.value + if ($Username -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + Write-Information "Resolving UserPrincipalName from ObjectId: $($Request.Body.existingUser.value)" + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.Body.existingUser.value)" -tenantid $TenantFilter).userPrincipalName + + # If the resolved username is a guest user, we need to use the id instead of the UPN + if ($Username -clike '*#EXT#*') { + $Username = $Request.Body.existingUser.value + } + } + + # Validate we have a username + if ([string]::IsNullOrWhiteSpace($Username)) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ 'Results' = @("Could not resolve username from existingUser value: $($Request.Body.existingUser.value)") } + } + } + + # Add username result for existing user + $Results.Add(@{ + resultText = "User: $Username" + copyField = $Username + state = 'success' + }) + } + + + + #Region TAP creation + if ($Request.Body.UseTAP) { + try { + if ($Start -gt (Get-Date)) { + $TapParams = @{ + startDateTime = [System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.StartDate).DateTime + } + $TapBody = ConvertTo-Json -Depth 5 -InputObject $TapParams + } else { + $TapBody = '{}' + } + # Write-Information "https://graph.microsoft.com/beta/users/$Username/authentication/temporaryAccessPassMethods" + # Retry creating the TAP up to 10 times, since it can fail due to the user not being fully created yet. Sometimes it takes 2 reties, sometimes it takes 8+. Very annoying. -Bobby + $Retries = 0 + $MAX_TAP_RETRIES = 10 + do { + try { + $TapRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($Username)/authentication/temporaryAccessPassMethods" -tenantid $TenantFilter -type POST -body $TapBody + } catch { + Start-Sleep -Seconds 2 + Write-Information "ERROR: Run $Retries of $MAX_TAP_RETRIES : Failed to create TAP, retrying" + # Write-Information ( ConvertTo-Json -Depth 5 -InputObject (Get-CippException -Exception $_)) + } + $Retries++ + } while ( $null -eq $TapRequest.temporaryAccessPass -and $Retries -le $MAX_TAP_RETRIES ) + + $TempPass = $TapRequest.temporaryAccessPass + $PasswordExpiration = $TapRequest.LifetimeInMinutes + + $PasswordLink = New-PwPushLink -Payload $TempPass + $Password = $PasswordLink ? $PasswordLink : $TempPass + + $Results.Add(@{ + resultText = "Temporary Access Pass: $Password" + copyField = $Password + state = 'success' + }) + $Results.Add("This TAP is usable starting at $($TapRequest.startDateTime) UTC for the next $PasswordExpiration minutes") + } catch { + $Results.Add('Failed to create TAP, if this is not yet enabled, use the Standards to push the settings to the tenant.') + Write-Information (Get-CippException -Exception $_ | ConvertTo-Json -Depth 5) + if ($Password) { + $Results.Add(@{ + resultText = "Password: $Password" + copyField = $Password + state = 'success' + }) + } + } + } + #EndRegion TAP creation + + $Parameters = @{ + TenantFilter = $TenantFilter + User = @{ + 'UserPrincipalName' = $Username + } + Roles = $Request.Body.AdminRoles.value + Action = 'AddRoles' + Reason = $Request.Body.Reason + Expiration = $Expiration + StartDate = $Start + Headers = $Headers + APIName = $APIName + } + if ($Start -gt (Get-Date)) { + $TaskBody = @{ + TenantFilter = $TenantFilter + Name = "JIT Admin (enable): $Username" + Command = @{ + value = 'Set-CIPPUserJITAdmin' + label = 'Set-CIPPUserJITAdmin' + } + Parameters = [pscustomobject]$Parameters + ScheduledTime = $Request.Body.StartDate + PostExecution = @{ + Webhook = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'webhook') + Email = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'email') + PSA = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'PSA') + } + } + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + if ($Request.Body.userAction -ne 'create') { + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $Request.Body.existingUser.value -Expiration $Expiration -StartDate $Start -Reason $Request.Body.Reason -CreatedBy (([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails) + } + $Results.Add("Scheduling JIT Admin enable task for $Username") + } else { + try { + $Results.Add("Executing JIT Admin enable task for $Username") + Set-CIPPUserJITAdmin @Parameters + } catch { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = @("Failed to execute JIT Admin enable task: $($_.Exception.Message)") } + }) + } + } + + $DisableTaskBody = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "JIT Admin ($($Request.Body.ExpireAction.value)): $Username" + Command = @{ + value = 'Set-CIPPUserJITAdmin' + label = 'Set-CIPPUserJITAdmin' + } + Parameters = [pscustomobject]@{ + TenantFilter = $TenantFilter + User = @{ + 'UserPrincipalName' = $Username + } + Roles = $Request.Body.AdminRoles.value + Reason = $Request.Body.Reason + Action = $Request.Body.ExpireAction.value + } + PostExecution = @{ + Webhook = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'webhook') + Email = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'email') + PSA = [bool]($Request.Body.PostExecution | Where-Object -Property value -EQ 'PSA') + } + ScheduledTime = $Request.Body.EndDate + } + $null = Add-CIPPScheduledTask -Task $DisableTaskBody -hidden $false + $Results.Add("Scheduling JIT Admin $($Request.Body.ExpireAction.value) task for $Username") + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @($Results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 new file mode 100644 index 000000000000..0ca013970a1f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOffboardUser.ps1 @@ -0,0 +1,57 @@ +function Invoke-ExecOffboardUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $AllUsers = $Request.Body.user.value + $TenantFilter = $request.Body.tenantFilter.value ? $request.Body.tenantFilter.value : $request.Body.tenantFilter + $OffboardingOptions = $Request.Body | Select-Object * -ExcludeProperty user, tenantFilter, Scheduled + $Results = foreach ($username in $AllUsers) { + try { + $APIName = 'ExecOffboardUser' + $Headers = $Request.Headers + + + if ($Request.Body.Scheduled.enabled) { + $taskObject = [PSCustomObject]@{ + TenantFilter = $TenantFilter + Name = "Offboarding: $Username" + Command = @{ + value = 'Invoke-CIPPOffboardingJob' + } + Parameters = [pscustomobject]@{ + Username = $Username + APIName = 'Scheduled Offboarding' + options = $OffboardingOptions + RunScheduled = $true + } + ScheduledTime = $Request.Body.Scheduled.date + PostExecution = @{ + Webhook = [bool]$Request.Body.PostExecution.webhook + Email = [bool]$Request.Body.PostExecution.email + PSA = [bool]$Request.Body.PostExecution.psa + } + Reference = $Request.Body.reference + } + Add-CIPPScheduledTask -Task $taskObject -hidden $false -Headers $Headers + } else { + Invoke-CIPPOffboardingJob -Username $Username -TenantFilter $TenantFilter -Options $OffboardingOptions -APIName $APIName -Headers $Headers + } + $StatusCode = [HttpStatusCode]::OK + + } catch { + $StatusCode = [HttpStatusCode]::Forbidden + $_.Exception.message + } + } + $body = [pscustomobject]@{'Results' = @($Results) } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOneDriveShortCut.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOneDriveShortCut.ps1 new file mode 100644 index 000000000000..822fd952191f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOneDriveShortCut.ps1 @@ -0,0 +1,32 @@ +Function Invoke-ExecOneDriveShortCut { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Interact with the body of the request + $TenantFilter = $Request.Body.tenantFilter + $Username = $Request.Body.username + $UserId = $Request.Body.userid + $URL = $Request.Body.siteUrl.value + + Try { + $Result = New-CIPPOneDriveShortCut -Username $Username -UserId $UserId -TenantFilter $TenantFilter -URL $URL -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOnedriveProvision.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOnedriveProvision.ps1 new file mode 100644 index 000000000000..b8143e9e9af6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecOnedriveProvision.ps1 @@ -0,0 +1,30 @@ +Function Invoke-ExecOneDriveProvision { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $UserPrincipalName = $Request.Body.UserPrincipalName ?? $Request.Query.UserPrincipalName + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + + try { + $Result = Request-CIPPSPOPersonalSite -TenantFilter $TenantFilter -UserEmails $UserPrincipalName -Headers $Headers -APIName $APIName + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPasswordNeverExpires.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPasswordNeverExpires.ps1 new file mode 100644 index 000000000000..fce05e622468 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPasswordNeverExpires.ps1 @@ -0,0 +1,40 @@ +function Invoke-ExecPasswordNeverExpires { + <# + .FUNCTIONALITY + Entrypoint + + .ROLE + Identity.User.ReadWrite + #> + Param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $UserId = $Request.Body.userId + $UserPrincipalName = $Request.Body.userPrincipalName # Only used for logging + $PasswordPolicy = $Request.Body.PasswordPolicy.value ?? $Request.Body.PasswordPolicy ?? 'None' + $PasswordPolicyName = $Request.Body.PasswordPolicy.label ?? $Request.Body.PasswordPolicy.value ?? $Request.Body.PasswordPolicy # Only used for logging + + if ([string]::IsNullOrWhiteSpace($UserId)) { exit } + try { + $Body = ConvertTo-Json -InputObject @{ passwordPolicies = $PasswordPolicy } -Depth 5 -Compress + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/users/$UserId" -tenantid $TenantFilter -Body $Body -type PATCH + $Result = "Successfully set PasswordPolicy for user $UserPrincipalName to $PasswordPolicyName" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to set PasswordPolicy for user $UserPrincipalName to $PasswordPolicyName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = @($Result) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPerUserMFA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPerUserMFA.ps1 new file mode 100644 index 000000000000..bc78468b45a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecPerUserMFA.ps1 @@ -0,0 +1,39 @@ +function Invoke-ExecPerUserMFA { + <# + .FUNCTIONALITY + Entrypoint + + .ROLE + Identity.User.ReadWrite + #> + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Guest user handling + $UserId = $Request.Body.userPrincipalName -match '#EXT#' ? $Request.Body.userId : $Request.Body.userPrincipalName + $TenantFilter = $Request.Body.tenantFilter + $State = $Request.Body.State.value ? $Request.Body.State.value : $Request.Body.State + + $Request = @{ + userId = $UserId + TenantFilter = $TenantFilter + State = $State + Headers = $Headers + APIName = $APIName + } + try { + $Result = Set-CIPPPerUserMFA @Request + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = @($Result) } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetMFA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetMFA.ps1 new file mode 100644 index 000000000000..47d72e537885 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetMFA.ps1 @@ -0,0 +1,29 @@ +Function Invoke-ExecResetMFA { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $UserID = $Request.Query.ID ?? $Request.Body.ID + try { + $Result = Remove-CIPPUserMFA -UserPrincipalName $UserID -TenantFilter $TenantFilter -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetPass.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetPass.ps1 new file mode 100644 index 000000000000..013bbd891e4c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetPass.ps1 @@ -0,0 +1,36 @@ +Function Invoke-ExecResetPass { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.ID ?? $Request.Body.ID + $DisplayName = $Request.Query.displayName ?? $Request.Body.displayName ?? $ID + $MustChange = $Request.Query.MustChange ?? $Request.Body.MustChange + $MustChange = [System.Convert]::ToBoolean($MustChange) + + try { + $Result = Set-CIPPResetPassword -UserID $ID -tenantFilter $TenantFilter -APIName $APIName -Headers $Headers -forceChangePasswordNextSignIn $MustChange -DisplayName $DisplayName + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRestoreDeleted.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRestoreDeleted.ps1 new file mode 100644 index 000000000000..17636856babf --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRestoreDeleted.ps1 @@ -0,0 +1,45 @@ +function Invoke-ExecRestoreDeleted { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $RequestID = $Request.Query.ID ?? $Request.Body.ID + $UserPrincipalName = $Request.Body.userPrincipalName + $DisplayName = $Request.Body.displayName + + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/directory/deletedItems/$($RequestID)/restore" -tenantid $TenantFilter -type POST -body '{}' -Verbose + $Result = "Successfully restored deleted item with ID: '$($RequestID)'" + if ($UserPrincipalName) { $Result += " User Principal Name: '$($UserPrincipalName)'" } + if ($DisplayName) { $Result += " Display Name: '$($DisplayName)'" } + + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to restore deleted item with ID: '$($RequestID)'" + if ($UserPrincipalName) { $Result += " User Principal Name: '$($UserPrincipalName)'" } + if ($DisplayName) { $Result += " Display Name: '$($DisplayName)'" } + $Result += " Error: $($ErrorMessage.NormalizedError)" + + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRevokeSessions.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRevokeSessions.ps1 new file mode 100644 index 000000000000..6ea47555f014 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecRevokeSessions.ps1 @@ -0,0 +1,33 @@ +Function Invoke-ExecRevokeSessions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.id ?? $Request.Body.id + $Username = $Request.Query.Username ?? $Request.Body.Username + + try { + $Result = Revoke-CIPPSessions -UserID $ID -TenantFilter $TenantFilter -Username $Username -APIName $APIName -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSendPush.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSendPush.ps1 new file mode 100644 index 000000000000..93d534a2a37e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSendPush.ps1 @@ -0,0 +1,121 @@ +function Invoke-ExecSendPush { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.body.TenantFilter + $UserEmail = $Request.body.UserEmail + $MFAAppID = '981f26a1-7f43-403b-a875-f8b09b8cd720' + + # Function to keep trying to get the access token while we wait for MS to actually set the temp password + function Get-ClientAccess { + param( + $uri, + $body, + $count = 1 + ) + try { + $ClientToken = Invoke-RestMethod -Method post -Uri $uri -Body $body -ea stop + } catch { + if ($count -lt 20) { + + $count++ + Start-Sleep 1 + $ClientToken = Get-ClientAccess -uri $uri -body $body -count $count + } else { + throw "Could not get Client Token: $_" + } + } + return $ClientToken + } + + + # Get all service principals + $SPResult = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$top=999&`$select=id,appId" -tenantid $TenantFilter -AsApp $true + + # Check if we have one for the MFA App + $SPID = ($SPResult | Where-Object { $_.appId -eq $MFAAppID }).id + + # Create a service principal if needed + if (!$SPID) { + + $SPBody = [pscustomobject]@{ + appId = $MFAAppID + } | ConvertTo-Json -Depth 5 + $SPID = (New-GraphPostRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals' -tenantid $TenantFilter -type POST -body $SPBody -AsApp $true).id + } + + + $PassReqBody = @{ + 'passwordCredential' = @{ + 'displayName' = 'MFA Temporary Password' + 'endDateTime' = $((Get-Date).AddMinutes(5)) + 'startDateTime' = $((Get-Date).AddMinutes(-5)) + } + } | ConvertTo-Json -Depth 5 + + $TempPass = (New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/servicePrincipals/$SPID/addPassword" -tenantid $TenantFilter -type POST -body $PassReqBody -AsApp $true).secretText + + # Give it a chance to apply + #Start-Sleep 5 + + # Generate the XML for the push request + $XML = @" + +1.0 +$UserEmail +en-usOverrideVoiceOtpfalse69ff05bf-eb61-47f7-a70e-e7d77b6d47d0 +truetrueradiusUNKNOWN: +"@ + + # Request to get client token + $body = @{ + 'resource' = 'https://adnotifications.windowsazure.com/StrongAuthenticationService.svc/Connector' + 'client_id' = $MFAAppID + 'client_secret' = $TempPass + 'grant_type' = 'client_credentials' + 'scope' = 'openid' + } + + # Attempt to get a token using the temp password + $ClientUri = "https://login.microsoftonline.com/$TenantFilter/oauth2/token" + try { + $ClientToken = Get-ClientAccess -Uri $ClientUri -Body $body + } catch { + $Body = 'Failed to create temporary token for MFA Application. Error: ' + $_.Exception.Message + } + + # If we got a token send a push + if ($ClientToken) { + + $ClientHeaders = @{ 'Authorization' = "Bearer $($ClientToken.access_token)" } + + $obj = Invoke-RestMethod -Uri 'https://adnotifications.windowsazure.com/StrongAuthenticationService.svc/Connector//BeginTwoWayAuthentication' -Method POST -Headers $ClientHeaders -Body $XML -ContentType 'application/xml' + + if ($obj.BeginTwoWayAuthenticationResponse.result) { + $Body = "Received an MFA confirmation: $($obj.BeginTwoWayAuthenticationResponse.result.value | Out-String)" + $State = 'success' + } + if ($obj.BeginTwoWayAuthenticationResponse.AuthenticationResult -ne $true) { + $Body = "Authentication Failed! Does the user have Push/Phone call MFA configured? ErrorCode: $($obj.BeginTwoWayAuthenticationResponse.result.value | Out-String)" + $State = 'error' + } + + } + + $Results = [pscustomobject]@{'Results' = @{ resultText = $Body; state = $State } } + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Sent push request to $UserEmail - Result: $($obj.BeginTwoWayAuthenticationResponse.result.value | Out-String)" -Sev 'Info' + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 new file mode 100644 index 000000000000..f4636684fb1c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecSetUserPhoto.ps1 @@ -0,0 +1,91 @@ +function Invoke-ExecSetUserPhoto { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $tenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $userId = $Request.Query.userId ?? $Request.Body.userId + $action = $Request.Query.action ?? $Request.Body.action + $photoData = $Request.Body.photoData + + $Results = [System.Collections.Generic.List[object]]::new() + + try { + if ([string]::IsNullOrWhiteSpace($userId)) { + throw 'User ID is required' + } + + if ($action -eq 'remove') { + # Remove the user's profile picture + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$userId/photo/`$value" -tenantid $tenantFilter -type DELETE -NoAuthCheck $true + $Results.Add('Successfully removed user profile picture.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Removed profile picture for user $userId" -Sev Info + } catch { + # Check if the error is because there's no photo + if ($_.Exception.Message -like '*does not exist*' -or $_.Exception.Message -like '*ResourceNotFound*') { + $Results.Add('User does not have a profile picture to remove.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "No profile picture found for user $userId" -Sev Info + } else { + throw $_ + } + } + } elseif ($action -eq 'set') { + # Set the user's profile picture + if ([string]::IsNullOrWhiteSpace($photoData)) { + throw 'Photo data is required when setting a profile picture' + } + + # Convert base64 string to byte array + # The photoData should be in format: data:image/jpeg;base64,/9j/4AAQSkZJRg... + # We need to strip the data URL prefix if present + $base64Data = $photoData + if ($photoData -match '^data:image/[^;]+;base64,(.+)$') { + $base64Data = $Matches[1] + } + + try { + $photoBytes = [Convert]::FromBase64String($base64Data) + } catch { + throw "Invalid base64 photo data: $($_.Exception.Message)" + } + + # Validate image size (Microsoft Graph has a 4MB limit) + $maxSizeBytes = 4 * 1024 * 1024 # 4MB + if ($photoBytes.Length -gt $maxSizeBytes) { + throw "Photo size exceeds 4MB limit. Current size: $([math]::Round($photoBytes.Length / 1MB, 2))MB" + } + + # Upload the photo using Graph API + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$userId/photo/`$value" -tenantid $tenantFilter -type PATCH -body $photoBytes -ContentType 'image/jpeg' -NoAuthCheck $true + + $Results.Add('Successfully set user profile picture.') + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Set profile picture for user $userId" -Sev Info + } else { + throw "Invalid action. Must be 'set' or 'remove'" + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + 'Results' = @($Results) + } + }) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $tenantFilter -headers $Headers -message "Failed to $action user profile picture. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ + 'Results' = @("Failed to $action user profile picture: $($ErrorMessage.NormalizedError)") + } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListDeletedItems.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListDeletedItems.ps1 new file mode 100644 index 000000000000..72fed7ce5282 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListDeletedItems.ps1 @@ -0,0 +1,40 @@ +function Invoke-ListDeletedItems { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Query.tenantFilter + + $Types = @('administrativeUnit', 'application', 'externalUserProfile', 'pendingExternalUserProfile', 'user', 'group', 'servicePrincipal', 'certificateBasedAuthPki', 'certificateAuthorityDetail') + $Requests = foreach ($Type in $Types) { + [PSCustomObject]@{ + id = $Type + url = "directory/deletedItems/microsoft.graph.$($Type)" + method = 'GET' + } + } + + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + + $GraphRequest = foreach ($Type in $Types) { + # pretty format the type name + $FormattedType = (Get-Culture).TextInfo.ToTitleCase(($Type -creplace '([A-Z])', ' $1').Trim()) + + $Result = $BulkResults | Where-Object { $_.id -eq $Type } + if ($Result.status -eq 200) { + $Result.body.value | ForEach-Object { + $_ | Add-Member -NotePropertyName 'TargetType' -NotePropertyValue $FormattedType + $_ + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 new file mode 100644 index 000000000000..705e4b205258 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 @@ -0,0 +1,131 @@ +function Invoke-ListJITAdmin { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.Read + + .DESCRIPTION + List Just-in-time admin users for a tenant or all tenants. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + + $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 + $TenantFilter = $Request.Query.TenantFilter + + if ($TenantFilter -ne 'AllTenants') { + # Single tenant logic + $Query = @{ + TenantFilter = $TenantFilter + Endpoint = 'users' + Parameters = @{ + '$count' = 'true' + '$select' = "id,accountEnabled,displayName,userPrincipalName,$($Schema.id)" + '$filter' = "$($Schema.id)/jitAdminEnabled eq true or $($Schema.id)/jitAdminEnabled eq false" + } + } + $Users = Get-GraphRequestList @Query | Where-Object { $_.id } + $BulkRequests = $Users | ForEach-Object { @( + @{ + id = $_.id + method = 'GET' + url = "users/$($_.id)/memberOf/microsoft.graph.directoryRole/?`$select=id,displayName" + } + ) + } + $RoleResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($BulkRequests) + # Write-Information ($RoleResults | ConvertTo-Json -Depth 10 ) + $Results = $Users | ForEach-Object { + $MemberOf = ($RoleResults | Where-Object -Property id -EQ $_.id).body.value | Select-Object displayName, id + [PSCustomObject]@{ + id = $_.id + displayName = $_.displayName + userPrincipalName = $_.userPrincipalName + accountEnabled = $_.accountEnabled + jitAdminEnabled = $_.($Schema.id).jitAdminEnabled + jitAdminExpiration = $_.($Schema.id).jitAdminExpiration + jitAdminStartDate = $_.($Schema.id).jitAdminStartDate + jitAdminReason = $_.($Schema.id).jitAdminReason + jitAdminCreatedBy = $_.($Schema.id).jitAdminCreatedBy + memberOf = $MemberOf + } + } + + # Write-Information ($Results | ConvertTo-Json -Depth 10) + $Metadata = [PSCustomObject]@{Parameters = $Query.Parameters } + } else { + # AllTenants logic + $Results = [System.Collections.Generic.List[object]]::new() + $Metadata = @{} + $Table = Get-CIPPTable -TableName CacheJITAdmin + $PartitionKey = 'JITAdminUser' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey # $TenantFilter is 'AllTenants' + Write-Information "QueueReference: $QueueReference" + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading JIT Admin data for all tenants. Please check back in a few more minutes.' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'JIT Admin List - All Tenants' -Link '/identity/administration/jit-admin?tenantFilter=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading JIT Admin data for all tenants. Please check back in a few minutes.' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'JITAdminOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ExecJITAdminListAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + # There is data in the cache, so we will use that + Write-Information "Found $($Rows.Count) rows in the cache" + foreach ($row in $Rows) { + $UserObject = $row.JITAdminUser | ConvertFrom-Json + $Results.Add( + [PSCustomObject]@{ + Tenant = $row.Tenant + id = $UserObject.id + displayName = $UserObject.displayName + userPrincipalName = $UserObject.userPrincipalName + accountEnabled = $UserObject.accountEnabled + jitAdminEnabled = $UserObject.jitAdminEnabled + jitAdminExpiration = $UserObject.jitAdminExpiration + jitAdminStartDate = $UserObject.jitAdminStartDate + jitAdminReason = $UserObject.jitAdminReason + jitAdminCreatedBy = $UserObject.jitAdminCreatedBy + memberOf = $UserObject.memberOf + } + ) + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = @($Results) + Metadata = $Metadata + } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdminTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdminTemplates.ps1 new file mode 100644 index 000000000000..aa5ad886758e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdminTemplates.ps1 @@ -0,0 +1,72 @@ +function Invoke-ListJITAdminTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.Role.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Get the TenantFilter from query parameters + $TenantFilter = $Request.Query.TenantFilter + + # Get the includeAllTenants flag from query or body parameters (defaults to true) + $IncludeAllTenants = if ($Request.Query.includeAllTenants -eq 'false' -or $Request.Body.includeAllTenants -eq 'false') { + $false + } else { + $true + } + + # Get the templates table + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'JITAdminTemplate'" + + # Retrieve all JIT Admin templates + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $row.GUID -Force + $data | Add-Member -NotePropertyName 'RowKey' -NotePropertyValue $row.RowKey -Force + $data + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to process JIT Admin template: $($row.RowKey) - $($_.Exception.Message)" -Sev 'Warning' + } + } + + # Filter by tenant if TenantFilter is provided + if ($TenantFilter) { + if ($TenantFilter -eq 'AllTenants') { + # When requesting AllTenants, return only templates stored under AllTenants + $Templates = $Templates | Where-Object -Property tenantFilter -EQ 'AllTenants' + } else { + # When requesting a specific tenant + if ($IncludeAllTenants) { + # Include both tenant-specific and AllTenants templates + $Templates = $Templates | Where-Object { $_.tenantFilter -eq $TenantFilter -or $_.tenantFilter -eq 'AllTenants' } + } else { + # Return only tenant-specific templates (exclude AllTenants) + $Templates = $Templates | Where-Object -Property tenantFilter -EQ $TenantFilter + } + } + } + + # Sort by template name + $Templates = $Templates | Sort-Object -Property templateName + + # If a specific GUID is requested, filter to that template + if ($Request.query.GUID) { + $Templates = $Templates | Where-Object -Property GUID -EQ $Request.query.GUID + } + + $Templates = ConvertTo-Json -InputObject @($Templates) -Depth 100 + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Templates + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 new file mode 100644 index 000000000000..847e7271c95f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 @@ -0,0 +1,71 @@ +function Invoke-ListNewUserDefaults { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + Write-Host 'Listing New User Default Templates' + + # Get the TenantFilter from query parameters + $TenantFilter = $Request.Query.TenantFilter + + # Get the includeAllTenants flag from query or body parameters (defaults to true) + $IncludeAllTenants = if ($Request.Query.includeAllTenants -eq 'false' -or $Request.Body.includeAllTenants -eq 'false') { + $false + } else { + $true + } + + # Get the templates table + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'UserDefaultTemplate'" + + # Retrieve all User Default templates + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $row.GUID -Force + $data | Add-Member -NotePropertyName 'RowKey' -NotePropertyValue $row.RowKey -Force + $data + } catch { + Write-Warning "Failed to process User Default template: $($row.RowKey) - $($_.Exception.Message)" + } + } + + # Filter by tenant if TenantFilter is provided + if ($TenantFilter) { + if ($TenantFilter -eq 'AllTenants') { + # When requesting AllTenants, return only templates stored under AllTenants + $Templates = $Templates | Where-Object -Property tenantFilter -eq 'AllTenants' + } else { + # When requesting a specific tenant + if ($IncludeAllTenants) { + # Include both tenant-specific and AllTenants templates + $Templates = $Templates | Where-Object { $_.tenantFilter -eq $TenantFilter -or $_.tenantFilter -eq 'AllTenants' } + } else { + # Return only tenant-specific templates (exclude AllTenants) + $Templates = $Templates | Where-Object -Property tenantFilter -eq $TenantFilter + } + } + } + + # Sort by template name + $Templates = $Templates | Sort-Object -Property templateName + + # If a specific ID is requested, filter to that template + if ($Request.query.ID) { + $Templates = $Templates | Where-Object -Property GUID -eq $Request.query.ID + } + + $Templates = ConvertTo-Json -InputObject @($Templates) -Depth 100 + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Templates + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListPerUserMFA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListPerUserMFA.ps1 new file mode 100644 index 000000000000..bc75662b6414 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListPerUserMFA.ps1 @@ -0,0 +1,44 @@ +function Invoke-ListPerUserMFA { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $User = $Request.Headers + Write-LogMessage -Headers $User -API $APIName -message 'Accessed this API' -Sev 'Debug' + + # Parse query parameters + $Tenant = $Request.query.tenantFilter + try { + $AllUsers = [System.Convert]::ToBoolean($Request.query.allUsers) + } catch { + $AllUsers = $false + } + $UserId = $Request.query.userId + + # Get the MFA state for the user/all users + try { + if ($AllUsers -eq $true) { + $Results = Get-CIPPPerUserMFA -TenantFilter $Tenant -AllUsers $true + } else { + $Results = Get-CIPPPerUserMFA -TenantFilter $Tenant -UserId $UserId + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Results = "Failed to get MFA State for $UserId : $ErrorMessage" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserConditionalAccessPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserConditionalAccessPolicies.ps1 new file mode 100644 index 000000000000..3ff24cbfa7a4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserConditionalAccessPolicies.ps1 @@ -0,0 +1,44 @@ +Function Invoke-ListUserConditionalAccessPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # XXX - Unused endpoint? + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.UserID + + try { + $IncludeApplications = '67ad5377-2d78-4ac2-a867-6300cda00e85' + $CAContext = @{ + '@odata.type' = '#microsoft.graph.whatIfApplicationContext' + 'includeApplications' = @($IncludeApplications) + } + $ConditionalAccessWhatIfDefinition = @{ + 'conditionalAccessWhatIfSubject' = @{ + '@odata.type' = '#microsoft.graph.userSubject' + 'userId' = "$UserID" + } + 'conditionalAccessContext' = $CAContext + 'conditionalAccessWhatIfConditions' = @{} + } + $JSONBody = ConvertTo-Json -Depth 10 -InputObject $ConditionalAccessWhatIfDefinition -Compress + + $GraphRequest = (New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/evaluate' -tenantid $TenantFilter -type POST -body $JsonBody -AsApp $true).value + } catch { + $GraphRequest = @{} + } + + Write-Host $GraphRequest + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserCounts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserCounts.ps1 new file mode 100644 index 000000000000..c77673e9774f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserCounts.ps1 @@ -0,0 +1,111 @@ +Function Invoke-ListUserCounts { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + if ($Request.Query.TenantFilter -eq 'AllTenants') { + $Users = 'Not Supported' + $LicUsers = 'Not Supported' + $GAs = 'Not Supported' + $Guests = 'Not Supported' + } else { + try { + # Build bulk requests array + [System.Collections.Generic.List[PSCustomObject]]$BulkRequests = @( + @{ + id = 'Users' + method = 'GET' + url = "/users/`$count" + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'LicUsers' + method = 'GET' + url = "/users/`$count?`$top=1&`$filter=assignedLicenses/`$count ne 0" + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'GAs' + method = 'GET' + url = "/directoryRoles/roleTemplateId=62e90394-69f5-4237-9190-012177145e10/members/`$count" + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'Guests' + method = 'GET' + url = "/users/`$count?`$top=1&`$filter=userType eq 'Guest'" + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + ) + + # Execute bulk request + $BulkResults = New-GraphBulkRequest -Requests @($BulkRequests) -noPaginateIds @('LicUsers') -tenantid $TenantFilter @('Users', 'LicUsers', 'GAs', 'Guests') + + # Check if any requests failed + $FailedRequests = $BulkResults | Where-Object { $_.status -ne 200 } + + if ($FailedRequests) { + # If any requests failed, return an error response + $FailedIds = ($FailedRequests | ForEach-Object { $_.id }) -join ', ' + $ErrorMessage = "Failed to retrieve counts for: $FailedIds" + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = $ErrorMessage + Details = $FailedRequests + } + }) + } + + # All requests succeeded, extract the counts + $BulkResults | ForEach-Object { + $UsersCount = $_.body + + switch ($_.id) { + 'Users' { $Users = $UsersCount } + 'LicUsers' { $LicUsers = $UsersCount } + 'GAs' { $GAs = $UsersCount } + 'Guests' { $Guests = $UsersCount } + } + } + + } catch { + # Return error status on exception + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + Error = "Failed to retrieve user counts: $($_.Exception.Message)" + } + }) + } + } + + $Counts = @{ + Users = $Users + LicUsers = $LicUsers + Gas = $GAs + Guests = $Guests + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Counts + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserDevices.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserDevices.ps1 new file mode 100644 index 000000000000..3cb8910846b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserDevices.ps1 @@ -0,0 +1,52 @@ +Function Invoke-ListUserDevices { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.UserID + + function Get-EPMID { + param( + $deviceID, + $EPMDevices + ) + try { + return ($EPMDevices | Where-Object { $_.azureADDeviceId -eq $deviceID }).id + } catch { + return $null + } + } + try { + $EPMDevices = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$UserID/managedDevices" -Tenantid $TenantFilter + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$UserID/ownedDevices?`$top=999" -Tenantid $TenantFilter | Select-Object @{ Name = 'ID'; Expression = { $_.'id' } }, + @{ Name = 'accountEnabled'; Expression = { $_.'accountEnabled' } }, + @{ Name = 'approximateLastSignInDateTime'; Expression = { $_.'approximateLastSignInDateTime' | Out-String } }, + @{ Name = 'createdDateTime'; Expression = { $_.'createdDateTime' | Out-String } }, + @{ Name = 'deviceOwnership'; Expression = { $_.'deviceOwnership' } }, + @{ Name = 'displayName'; Expression = { $_.'displayName' } }, + @{ Name = 'enrollmentType'; Expression = { $_.'enrollmentType' } }, + @{ Name = 'isCompliant'; Expression = { $_.'isCompliant' } }, + @{ Name = 'managementType'; Expression = { $_.'managementType' } }, + @{ Name = 'manufacturer'; Expression = { $_.'manufacturer' } }, + @{ Name = 'model'; Expression = { $_.'model' } }, + @{ Name = 'operatingSystem'; Expression = { $_.'operatingSystem' } }, + @{ Name = 'onPremisesSyncEnabled'; Expression = { $(if ([string]::IsNullOrEmpty($_.'onPremisesSyncEnabled')) { $false }else { $true }) } }, + @{ Name = 'operatingSystemVersion'; Expression = { $_.'operatingSystemVersion' } }, + @{ Name = 'trustType'; Expression = { $_.'trustType' } }, + @{ Name = 'EPMID'; Expression = { $(Get-EPMID -deviceID $_.'deviceId' -EPMDevices $EPMDevices) } } + } catch { + $GraphRequest = @() + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 new file mode 100644 index 000000000000..a223aef2c597 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserGroups.ps1 @@ -0,0 +1,38 @@ +function Invoke-ListUserGroups { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.userId + $URI = "https://graph.microsoft.com/beta/users/$UserID/memberOf/$/microsoft.graph.group?`$select=id,displayName,mailEnabled,securityEnabled,groupTypes,onPremisesSyncEnabled,mail,isAssignableToRole&`$orderby=displayName asc" + Write-Host $URI + + $GraphRequest = New-GraphGetRequest -uri $URI -tenantid $TenantFilter -noPagination $true -Verbose | Select-Object id, + @{ Name = 'DisplayName'; Expression = { $_.displayName } }, + @{ Name = 'MailEnabled'; Expression = { $_.mailEnabled } }, + @{ Name = 'Mail'; Expression = { $_.mail } }, + @{ Name = 'SecurityGroup'; Expression = { $_.securityEnabled } }, + @{ Name = 'GroupTypes'; Expression = { $_.groupTypes -join ',' } }, + @{ Name = 'OnPremisesSync'; Expression = { $_.onPremisesSyncEnabled } }, + @{ Name = 'IsAssignableToRole'; Expression = { $_.isAssignableToRole } }, + @{ Name = 'calculatedGroupType'; Expression = { + if ($_.groupTypes -contains 'Unified') { 'Microsoft 365' } + elseif ($_.mailEnabled -and $_.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $_.mailEnabled -and $_.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($_.groupTypes)) -and ($_.mailEnabled) -and (-not $_.securityEnabled)) { 'Distribution List' } + } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 new file mode 100644 index 000000000000..636639f32296 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 @@ -0,0 +1,293 @@ +function Invoke-ListUserMailboxDetails { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.UserID + $UserMail = $Request.Query.userMail + Write-Host "TenantFilter: $TenantFilter" + Write-Host "UserID: $UserID" + Write-Host "UserMail: $UserMail" + + try { + $Requests = @( + @{ + CmdletInput = @{ + CmdletName = 'Get-Mailbox' + Parameters = @{ Identity = $UserID } + } + }, + @{ + CmdletInput = @{ + CmdletName = 'Get-MailboxPermission' + Parameters = @{ Identity = $UserID } + } + }, + @{ + CmdletInput = @{ + CmdletName = 'Get-CASMailbox' + Parameters = @{ Identity = $UserID } + } + }, + @{ + CmdletInput = @{ + CmdletName = 'Get-OrganizationConfig' + } + }, + @{ + CmdletInput = @{ + CmdletName = 'Get-MailboxStatistics' + Parameters = @{ Identity = $UserID; Archive = $true } + } + }, + @{ + CmdletInput = @{ + CmdletName = 'Get-BlockedSenderAddress' + Parameters = @{ SenderAddress = $UserMail } + } + }, + @{ + CmdletInput = @{ + CmdletName = 'Get-RecipientPermission' + Parameters = @{ Identity = $UserID } + } + } + ) + $usernames = New-GraphGetRequest -tenantid $TenantFilter -uri 'https://graph.microsoft.com/beta/users?$select=id,userPrincipalName,displayName,mailNickname&$top=999' + $Results = New-ExoBulkRequest -TenantId $TenantFilter -CmdletArray $Requests -returnWithCommand $true -Anchor $username + Write-Host "First line of usernames is $($usernames[0] | ConvertTo-Json)" + + # Assign variables from $Results + $MailboxDetailedRequest = $Results.'Get-Mailbox' + $PermsRequest = $Results.'Get-MailboxPermission' + $CASRequest = $Results.'Get-CASMailbox' + $OrgConfig = $Results.'Get-OrganizationConfig' + $ArchiveSizeRequest = $Results.'Get-MailboxStatistics' + $BlockedSender = $Results.'Get-BlockedSenderAddress' + $PermsRequest2 = $Results.'Get-RecipientPermission' + + $StatsRequest = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($TenantFilter)/Mailbox('$($UserID)')/Exchange.GetMailboxStatistics()" -Tenantid $TenantFilter -scope ExchangeOnline -noPagination $true + + + # Handle ArchiveEnabled and AutoExpandingArchiveEnabled + try { + if ($MailboxDetailedRequest.ArchiveGuid -ne '00000000-0000-0000-0000-000000000000') { + $ArchiveEnabled = $true + } else { + $ArchiveEnabled = $false + } + + # Get organization config of auto-expanding archive if it's disabled on user level + if (-not $MailboxDetailedRequest.AutoExpandingArchiveEnabled -and $ArchiveEnabled) { + $AutoExpandingArchiveEnabled = $OrgConfig.AutoExpandingArchiveEnabled + } else { + $AutoExpandingArchiveEnabled = $MailboxDetailedRequest.AutoExpandingArchiveEnabled + } + } catch { + $ArchiveEnabled = $false + $ArchiveSizeRequest = @{ + TotalItemSize = '0' + ItemCount = '0' + } + } + + + # Determine if the user is blocked for spam + if ($BlockedSender -and $BlockedSender.Count -gt 0) { + $BlockedForSpam = $true + } else { + $BlockedForSpam = $false + } + } catch { + Write-Error "Failed Fetching Data $($_.Exception.message): $($_.InvocationInfo.ScriptLineNumber)" + } + + # Parse permissions + + #Implemented as an ArrayList that uses .add(). + $ParsedPerms = [System.Collections.ArrayList]::new() + foreach ($PermSet in @($PermsRequest, $PermsRequest2)) { + foreach ($Perm in $PermSet) { + # Check if Trustee or User is not NT AUTHORITY\SELF + $user = $Perm.Trustee ? $Perm.Trustee : $Perm.User + if ($user -and $user -ne 'NT AUTHORITY\SELF') { + $null = $ParsedPerms.Add([PSCustomObject]@{ + User = $user + AccessRights = ($Perm.AccessRights) -join ', ' + }) + } + } + } + if ($MailboxDetailedRequest.GrantSendOnBehalfTo) { + $MailboxDetailedRequest.GrantSendOnBehalfTo | ForEach-Object { + $id = $_ + $username = $usernames | Where-Object { $_.id -eq $id } + + $null = $ParsedPerms.Add([PSCustomObject]@{ + User = $username.UserPrincipalName ? $username.UserPrincipalName : $_ + AccessRights = 'SendOnBehalf' + }) + } + } + if ($ParsedPerms.Count -eq 0) { + $ParsedPerms = @() + } + + # Get forwarding address - lazy load contacts only if needed + $ForwardingAddress = $null + if ($MailboxDetailedRequest.ForwardingSmtpAddress) { + # External forwarding + $ForwardingAddress = $MailboxDetailedRequest.ForwardingSmtpAddress -replace '^smtp:', '' + } elseif ($MailboxDetailedRequest.ForwardingAddress) { + # Internal forwarding + $rawAddress = $MailboxDetailedRequest.ForwardingAddress + + if ($rawAddress -match '@') { + # Already an email address + $ForwardingAddress = $rawAddress + } else { + # First try users array + $matchedUser = $usernames | Where-Object { + $_.id -eq $rawAddress -or + $_.displayName -eq $rawAddress -or + $_.mailNickname -eq $rawAddress + } + + if ($matchedUser) { + $ForwardingAddress = $matchedUser.userPrincipalName + } else { + # Query for the specific contact only + try { + # Escape single quotes in the filter value + $escapedAddress = $rawAddress -replace "'", "''" + $filterQuery = "displayName eq '$escapedAddress' or mailNickname eq '$escapedAddress'" + $contactUri = "https://graph.microsoft.com/beta/contacts?`$filter=$filterQuery&`$select=displayName,mail,mailNickname" + + $matchedContacts = New-GraphGetRequest -tenantid $TenantFilter -uri $contactUri + + if ($matchedContacts -and $matchedContacts.Count -gt 0) { + $ForwardingAddress = $matchedContacts[0].mail + } else { + $ForwardingAddress = $rawAddress + } + } catch { + $ForwardingAddress = $rawAddress + } + } + } + } + + $ProhibitSendQuotaString = $MailboxDetailedRequest.ProhibitSendQuota -split ' ' + $ProhibitSendReceiveQuotaString = $MailboxDetailedRequest.ProhibitSendReceiveQuota -split ' ' + $TotalItemSizeString = $StatsRequest.TotalItemSize -split ' ' + $TotalArchiveItemSizeString = (Get-ExoOnlineStringBytes -SizeString $ArchiveSizeRequest.TotalItemSize) / 1GB + + $ProhibitSendQuota = try { [math]::Round([float]($ProhibitSendQuotaString[0]), 2) } catch { 0 } + $ProhibitSendReceiveQuota = try { [math]::Round([float]($ProhibitSendReceiveQuotaString[0]), 2) } catch { 0 } + + $ItemSizeType = '1{0}' -f ($TotalItemSizeString[1] ?? 'Gb') + $TotalItemSize = try { [math]::Round([float]($TotalItemSizeString[0]) / $ItemSizeType, 2) } catch { 0 } + + if ($ArchiveEnabled -eq $true) { + $TotalArchiveItemSize = try { [math]::Round([float]($TotalArchiveItemSizeString[0]), 2) } catch { 0 } + $TotalArchiveItemCount = try { [math]::Round($ArchiveSizeRequest.ItemCount, 2) } catch { 0 } + } + + # Parse InPlaceHolds to determine hold types if available + $InPlaceHold = $false + $EDiscoveryHold = $false + $PurviewRetentionHold = $false + $ExcludedFromOrgWideHold = $false + + # Check if InPlaceHolds property exists and has values + if ($MailboxDetailedRequest.InPlaceHolds) { + foreach ($hold in $MailboxDetailedRequest.InPlaceHolds) { + # eDiscovery hold - starts with UniH + if ($hold -like 'UniH*') { + $EDiscoveryHold = $true + } + # In-Place Hold - no prefix or starts with cld + # Check if it doesn't match any of the other known prefixes + elseif (($hold -like 'cld*' -or + ($hold -notlike 'UniH*' -and + $hold -notlike 'mbx*' -and + $hold -notlike 'skp*' -and + $hold -notlike '-mbx*'))) { + $InPlaceHold = $true + } + # Microsoft Purview retention policy - starts with mbx or skp + elseif ($hold -like 'mbx*' -or $hold -like 'skp*') { + $PurviewRetentionHold = $true + } + # Excluded from organization-wide Microsoft Purview retention policy - starts with -mbx + elseif ($hold -like '-mbx*') { + $ExcludedFromOrgWideHold = $true + } + } + } + + # Build the GraphRequest object + $GraphRequest = [ordered]@{ + ForwardAndDeliver = $MailboxDetailedRequest.DeliverToMailboxAndForward + ForwardingAddress = $ForwardingAddress + LitigationHold = $MailboxDetailedRequest.LitigationHoldEnabled + RetentionHold = $MailboxDetailedRequest.RetentionHoldEnabled + ComplianceTagHold = $MailboxDetailedRequest.ComplianceTagHoldApplied + InPlaceHold = $InPlaceHold + EDiscoveryHold = $EDiscoveryHold + PurviewRetentionHold = $PurviewRetentionHold + ExcludedFromOrgWideHold = $ExcludedFromOrgWideHold + HiddenFromAddressLists = $MailboxDetailedRequest.HiddenFromAddressListsEnabled + EWSEnabled = $CASRequest.EwsEnabled + MailboxMAPIEnabled = $CASRequest.MAPIEnabled + MailboxOWAEnabled = $CASRequest.OWAEnabled + MailboxImapEnabled = $CASRequest.ImapEnabled + MailboxPopEnabled = $CASRequest.PopEnabled + MailboxActiveSyncEnabled = $CASRequest.ActiveSyncEnabled + Permissions = @($ParsedPerms) + ProhibitSendQuota = $ProhibitSendQuota + ProhibitSendReceiveQuota = $ProhibitSendReceiveQuota + ItemCount = [math]::Round($StatsRequest.ItemCount, 2) + TotalItemSize = $TotalItemSize + TotalArchiveItemSize = $TotalArchiveItemSize + TotalArchiveItemCount = $TotalArchiveItemCount + BlockedForSpam = $BlockedForSpam + ArchiveMailBox = $ArchiveEnabled + AutoExpandingArchive = $AutoExpandingArchiveEnabled + RecipientTypeDetails = $MailboxDetailedRequest.RecipientTypeDetails + Mailbox = $MailboxDetailedRequest + RetentionPolicy = $MailboxDetailedRequest.RetentionPolicy + MailboxActionsData = ($MailboxDetailedRequest | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, + @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, + @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, + @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, + @{ Name = 'recipientType'; Expression = { $_.'RecipientType' } }, + @{ Name = 'recipientTypeDetails'; Expression = { $_.'RecipientTypeDetails' } }, + @{ Name = 'AdditionalEmailAddresses'; Expression = { ($_.'EmailAddresses' | Where-Object { $_ -clike 'smtp:*' }).Replace('smtp:', '') -join ', ' } }, + @{ Name = 'ForwardingSmtpAddress'; Expression = { $_.'ForwardingSmtpAddress' -replace 'smtp:', '' } }, + @{ Name = 'InternalForwardingAddress'; Expression = { $_.'ForwardingAddress' } }, + DeliverToMailboxAndForward, + HiddenFromAddressListsEnabled, + ExternalDirectoryObjectId, + MessageCopyForSendOnBehalfEnabled, + MessageCopyForSentAsEnabled, + LitigationHoldEnabled, + LitigationHoldDate, + LitigationHoldDuration, + @{ Name = 'LicensedForLitigationHold'; Expression = { ($_.PersistedCapabilities -contains 'EXCHANGE_S_ARCHIVE_ADDON' -or $_.PersistedCapabilities -contains 'EXCHANGE_S_ENTERPRISE') } }, + ComplianceTagHoldApplied, + RetentionHoldEnabled, + InPlaceHolds) + } # Select statement taken from ListMailboxes to save a EXO request. If updated here, update in ListMailboxes as well. + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxRules.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxRules.ps1 new file mode 100644 index 000000000000..43f031c7ec5a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxRules.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ListUserMailboxRules { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.UserID + try { + $UserEmail = if ([string]::IsNullOrWhiteSpace($Request.Query.userEmail)) { $UserID } else { $Request.Query.userEmail } + $Result = New-ExoRequest -Anchor $UserID -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{mailbox = $UserID; IncludeHidden = $true } | + Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } | Select-Object * -ExcludeProperty RuleIdentity + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to retrieve mailbox rules for $UserEmail : Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Result) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserPhoto.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserPhoto.ps1 new file mode 100644 index 000000000000..0c02bac81d50 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserPhoto.ps1 @@ -0,0 +1,34 @@ +Function Invoke-ListUserPhoto { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $tenantFilter = $Request.Query.tenantFilter + $userId = $Request.Query.UserID + + $URI = "/users/$userId/photo/`$value" + + $Requests = @( + @{ + id = 'photo' + url = $URI + method = 'GET' + } + ) + + $ImageData = New-GraphBulkRequest -Requests $Requests -tenantid $tenantFilter -NoAuthCheck $true + #convert body from base64 to byte array + $Body = [Convert]::FromBase64String($ImageData.body) + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + ContentType = $ImageData.headers.'Content-Type' + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 new file mode 100644 index 000000000000..df3cea078a04 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 @@ -0,0 +1,70 @@ +function Invoke-ListUserSettings { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Identity.User.Read + #> + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + + try { + $Table = Get-CippTable -tablename 'UserSettings' + $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq 'allUsers'" + if (!$UserSettings) { $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq '$Username'" } + + try { + $UserSettings = $UserSettings.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + } catch { + Write-Warning "Failed to convert UserSettings JSON: $($_.Exception.Message)" + } + + if (!$UserSettings) { + $UserSettings = [pscustomobject]@{ + direction = 'ltr' + paletteMode = 'light' + currentTheme = @{ value = 'light'; label = 'light' } + pinNav = $true + showDevtools = $false + customBranding = @{ + colour = '#F77F00' + logo = $null + } + } + } + + try { + $UserSpecificSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq '$Username'" + $UserSpecificSettings = $UserSpecificSettings.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + } catch { + Write-Warning "Failed to convert UserSpecificSettings JSON: $($_.Exception.Message)" + } + + #Get branding settings + if ($UserSettings) { + $brandingTable = Get-CippTable -tablename 'Config' + $BrandingSettings = Get-CIPPAzDataTableEntity @brandingTable -Filter "PartitionKey eq 'BrandingSettings' and RowKey eq 'BrandingSettings'" + if ($BrandingSettings) { + $UserSettings | Add-Member -MemberType NoteProperty -Name 'customBranding' -Value $BrandingSettings -Force | Out-Null + } + } + + if ($UserSpecificSettings) { + $UserSettings | Add-Member -MemberType NoteProperty -Name 'UserSpecificSettings' -Value $UserSpecificSettings -Force | Out-Null + } + + $StatusCode = [HttpStatusCode]::OK + $Results = $UserSettings + } catch { + $Results = "Function Error: $($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::BadRequest + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSigninLogs.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSigninLogs.ps1 new file mode 100644 index 000000000000..298fb893da2f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSigninLogs.ps1 @@ -0,0 +1,31 @@ +Function Invoke-ListUserSigninLogs { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $top = $Request.Query.top ? $Request.Query.top : 50 + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.UserID + $URI = "https://graph.microsoft.com/beta/auditLogs/signIns?`$filter=(userId eq '$UserID')&`$top=$top&`$orderby=createdDateTime desc" + + try { + $Result = New-GraphGetRequest -uri $URI -tenantid $TenantFilter -noPagination $true -verbose + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to retrieve Sign In report for user $UserID : Error: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Result) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserTrustedBlockedSenders.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserTrustedBlockedSenders.ps1 new file mode 100644 index 000000000000..96e89c7397f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserTrustedBlockedSenders.ps1 @@ -0,0 +1,55 @@ +function Invoke-ListUserTrustedBlockedSenders { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Query.tenantFilter + $UserID = $Request.Query.UserID + $UserPrincipalName = $Request.Query.userPrincipalName + + try { + $Config = New-ExoRequest -Anchor $UserID -tenantid $TenantFilter -cmdlet 'Get-MailboxJunkEmailConfiguration' -cmdParams @{Identity = $UserID } + + $Result = [System.Collections.Generic.List[PSObject]]::new() + $Properties = @( + @{ Name = 'TrustedSendersAndDomains'; FriendlyName = 'Trusted Sender/Domain' }, + @{ Name = 'BlockedSendersAndDomains'; FriendlyName = 'Blocked Sender/Domain' } + ) + + foreach ($Prop in $Properties) { + if ($Config.$($Prop.Name)) { + foreach ($Value in $Config.$($Prop.Name)) { + if ($Value) { + $null = $Result.Add([PSCustomObject]@{ + UserPrincipalName = $UserPrincipalName + UserID = $UserID + Type = $Prop.FriendlyName + TypeProperty = $Prop.Name + Value = $Value + }) + } + } + } + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to retrieve junk email configuration for $UserID : Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Result) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 new file mode 100644 index 000000000000..40928e896231 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 @@ -0,0 +1,80 @@ +Function Invoke-ListUsers { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') | Sort-Object -Property 'guid' -Unique + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $GraphFilter = $Request.Query.graphFilter + $userid = $Request.Query.UserID + + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)?`$top=999&`$filter=$GraphFilter&`$count=true&`$expand=manager(`$select=id,userPrincipalName,displayName)" -tenantid $TenantFilter -ComplexFilter | ForEach-Object { + $_ | Add-Member -MemberType NoteProperty -Name 'onPremisesSyncEnabled' -Value ([bool]($_.onPremisesSyncEnabled)) -Force + $_ | Add-Member -MemberType NoteProperty -Name 'username' -Value ($_.userPrincipalName -split '@' | Select-Object -First 1) -Force + $_ | Add-Member -MemberType NoteProperty -Name 'Aliases' -Value ($_.ProxyAddresses -join ', ') -Force + $SkuID = $_.AssignedLicenses.skuid + $_ | Add-Member -MemberType NoteProperty -Name 'LicJoined' -Value (($ConvertTable | Where-Object { $_.guid -in $SkuID }).'Product_Display_Name' -join ', ') -Force + $_ | Add-Member -MemberType NoteProperty -Name 'primDomain' -Value @{value = ($_.userPrincipalName -split '@' | Select-Object -Last 1); label = ($_.userPrincipalName -split '@' | Select-Object -Last 1); } -Force + $_ + } + } else { + $Table = Get-CIPPTable -TableName 'cacheusers' + $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-1) + if (!$Rows) { + [PSCustomObject]@{ + Message = 'This function has been deprecated for all users, please use ListGraphRequest instead' + } + } else { + $Rows.Data | ConvertFrom-Json | Select-Object $SelectList | ForEach-Object { + $_.onPremisesSyncEnabled = [bool]($_.onPremisesSyncEnabled) + $_.Aliases = $_.proxyAddresses -join ', ' + $SkuID = $_.AssignedLicenses.skuid + $_.LicJoined = ($ConvertTable | Where-Object { $_.guid -in $SkuID }).'Product_Display_Name' -join ', ' + $_.primDomain = @{value = ($_.userPrincipalName -split '@' | Select-Object -Last 1) } + $_ + } + } + } + + + if ($userid -and $Request.query.IncludeLogonDetails) { + $startDate = (Get-Date).AddDays(-7) + $endDate = (Get-Date) + $sessionid = Get-Random -Maximum 1000 -Minimum 1 + $SearchParam = @{ + SessionCommand = 'ReturnLargeSet' + Operations = @('UserLoggedIn', 'UserLoginFailed', 'TeamsSessionStarted', 'MailboxLogin') + sessionid = $sessionid + startDate = $startDate + endDate = $endDate + UserIds = @($GraphRequest.userPrincipalName) + } + $AuditlogsLogon = (New-ExoRequest -tenantid $TenantFilter -cmdlet 'Search-unifiedAuditLog' -cmdParams $SearchParam | Sort-Object -Property CreationDate | Select-Object -Last 1).auditdata | ConvertFrom-Json + $AppName = '[{"Application Name":"ACOM Azure Website","Application IDs":"23523755-3a2b-41ca-9315-f81f3f566a95"},{"Application Name":"AEM-DualAuth","Application IDs":"69893ee3-dd10-4b1c-832d-4870354be3d8"},{"Application Name":"ASM Campaign Servicing","Application IDs":"0cb7b9ec-5336-483b-bc31-b15b5788de71"},{"Application Name":"Azure Advanced Threat Protection","Application IDs":"7b7531ad-5926-4f2d-8a1d-38495ad33e17"},{"Application Name":"Azure Data Lake","Application IDs":"e9f49c6b-5ce5-44c8-925d-015017e9f7ad"},{"Application Name":"Azure Lab Services Portal","Application IDs":"835b2a73-6e10-4aa5-a979-21dfda45231c"},{"Application Name":"Azure Portal","Application IDs":"c44b4083-3bb0-49c1-b47d-974e53cbdf3c"},{"Application Name":"AzureSupportCenter","Application IDs":"37182072-3c9c-4f6a-a4b3-b3f91cacffce"},{"Application Name":"Bing","Application IDs":"9ea1ad79-fdb6-4f9a-8bc3-2b70f96e34c7"},{"Application Name":"CPIM Service","Application IDs":"bb2a2e3a-c5e7-4f0a-88e0-8e01fd3fc1f4"},{"Application Name":"CRM Power BI Integration","Application IDs":"e64aa8bc-8eb4-40e2-898b-cf261a25954f"},{"Application Name":"Dataverse","Application IDs":"00000007-0000-0000-c000-000000000000"},{"Application Name":"Enterprise Roaming and Backup","Application IDs":"60c8bde5-3167-4f92-8fdb-059f6176dc0f"},{"Application Name":"IAM Supportability","Application IDs":"a57aca87-cbc0-4f3c-8b9e-dc095fdc8978"},{"Application Name":"IrisSelectionFrontDoor","Application IDs":"16aeb910-ce68-41d1-9ac3-9e1673ac9575"},{"Application Name":"MCAPI Authorization Prod","Application IDs":"d73f4b35-55c9-48c7-8b10-651f6f2acb2e"},{"Application Name":"Media Analysis and Transformation Service","Application IDs":"944f0bd1-117b-4b1c-af26-804ed95e767e
0cd196ee-71bf-4fd6-a57c-b491ffd4fb1e"},{"Application Name":"Microsoft 365 Support Service","Application IDs":"ee272b19-4411-433f-8f28-5c13cb6fd407"},{"Application Name":"Microsoft App Access Panel","Application IDs":"0000000c-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Approval Management","Application IDs":"65d91a3d-ab74-42e6-8a2f-0add61688c74
38049638-cc2c-4cde-abe4-4479d721ed44"},{"Application Name":"Microsoft Authentication Broker","Application IDs":"29d9ed98-a469-4536-ade2-f981bc1d605e"},{"Application Name":"Microsoft Azure CLI","Application IDs":"04b07795-8ddb-461a-bbee-02f9e1bf7b46"},{"Application Name":"Microsoft Azure PowerShell","Application IDs":"1950a258-227b-4e31-a9cf-717495945fc2"},{"Application Name":"Microsoft Bing Search","Application IDs":"cf36b471-5b44-428c-9ce7-313bf84528de"},{"Application Name":"Microsoft Bing Search for Microsoft Edge","Application IDs":"2d7f3606-b07d-41d1-b9d2-0d0c9296a6e8"},{"Application Name":"Microsoft Bing Default Search Engine","Application IDs":"1786c5ed-9644-47b2-8aa0-7201292175b6"},{"Application Name":"Microsoft Defender for Cloud Apps","Application IDs":"3090ab82-f1c1-4cdf-af2c-5d7a6f3e2cc7"},{"Application Name":"Microsoft Docs","Application IDs":"18fbca16-2224-45f6-85b0-f7bf2b39b3f3"},{"Application Name":"Microsoft Dynamics ERP","Application IDs":"00000015-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Edge Insider Addons Prod","Application IDs":"6253bca8-faf2-4587-8f2f-b056d80998a7"},{"Application Name":"Microsoft Exchange Online Protection","Application IDs":"00000007-0000-0ff1-ce00-000000000000"},{"Application Name":"Microsoft Forms","Application IDs":"c9a559d2-7aab-4f13-a6ed-e7e9c52aec87"},{"Application Name":"Microsoft Graph","Application IDs":"00000003-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Intune Web Company Portal","Application IDs":"74bcdadc-2fdc-4bb3-8459-76d06952a0e9"},{"Application Name":"Microsoft Intune Windows Agent","Application IDs":"fc0f3af4-6835-4174-b806-f7db311fd2f3"},{"Application Name":"Microsoft Learn","Application IDs":"18fbca16-2224-45f6-85b0-f7bf2b39b3f3"},{"Application Name":"Microsoft Office","Application IDs":"d3590ed6-52b3-4102-aeff-aad2292ab01c"},{"Application Name":"Microsoft Office 365 Portal","Application IDs":"00000006-0000-0ff1-ce00-000000000000"},{"Application Name":"Microsoft Office Web Apps Service","Application IDs":"67e3df25-268a-4324-a550-0de1c7f97287"},{"Application Name":"Microsoft Online Syndication Partner Portal","Application IDs":"d176f6e7-38e5-40c9-8a78-3998aab820e7"},{"Application Name":"Microsoft password reset service","Application IDs":"93625bc8-bfe2-437a-97e0-3d0060024faa"},{"Application Name":"Microsoft Power BI","Application IDs":"871c010f-5e61-4fb1-83ac-98610a7e9110"},{"Application Name":"Microsoft Storefronts","Application IDs":"28b567f6-162c-4f54-99a0-6887f387bbcc"},{"Application Name":"Microsoft Stream Portal","Application IDs":"cf53fce8-def6-4aeb-8d30-b158e7b1cf83"},{"Application Name":"Microsoft Substrate Management","Application IDs":"98db8bd6-0cc0-4e67-9de5-f187f1cd1b41"},{"Application Name":"Microsoft Support","Application IDs":"fdf9885b-dd37-42bf-82e5-c3129ef5a302"},{"Application Name":"Microsoft Teams","Application IDs":"1fec8e78-bce4-4aaf-ab1b-5451cc387264"},{"Application Name":"Microsoft Teams Services","Application IDs":"cc15fd57-2c6c-4117-a88c-83b1d56b4bbe"},{"Application Name":"Microsoft Teams Web Client","Application IDs":"5e3ce6c0-2b1f-4285-8d4b-75ee78787346"},{"Application Name":"Microsoft Whiteboard Services","Application IDs":"95de633a-083e-42f5-b444-a4295d8e9314"},{"Application Name":"O365 Suite UX","Application IDs":"4345a7b9-9a63-4910-a426-35363201d503"},{"Application Name":"Office 365 Exchange Online","Application IDs":"00000002-0000-0ff1-ce00-000000000000"},{"Application Name":"Office 365 Management","Application IDs":"00b41c95-dab0-4487-9791-b9d2c32c80f2"},{"Application Name":"Office 365 Search Service","Application IDs":"66a88757-258c-4c72-893c-3e8bed4d6899"},{"Application Name":"Office 365 SharePoint Online","Application IDs":"00000003-0000-0ff1-ce00-000000000000"},{"Application Name":"Office Delve","Application IDs":"94c63fef-13a3-47bc-8074-75af8c65887a"},{"Application Name":"Office Online Add-in SSO","Application IDs":"93d53678-613d-4013-afc1-62e9e444a0a5"},{"Application Name":"Office Online Client AAD- Augmentation Loop","Application IDs":"2abdc806-e091-4495-9b10-b04d93c3f040"},{"Application Name":"Office Online Client AAD- Loki","Application IDs":"b23dd4db-9142-4734-867f-3577f640ad0c"},{"Application Name":"Office Online Client AAD- Maker","Application IDs":"17d5e35f-655b-4fb0-8ae6-86356e9a49f5"},{"Application Name":"Office Online Client MSA- Loki","Application IDs":"b6e69c34-5f1f-4c34-8cdf-7fea120b8670"},{"Application Name":"Office Online Core SSO","Application IDs":"243c63a3-247d-41c5-9d83-7788c43f1c43"},{"Application Name":"Office Online Search","Application IDs":"a9b49b65-0a12-430b-9540-c80b3332c127"},{"Application Name":"Office.com","Application IDs":"4b233688-031c-404b-9a80-a4f3f2351f90"},{"Application Name":"Office365 Shell WCSS-Client","Application IDs":"89bee1f7-5e6e-4d8a-9f3d-ecd601259da7"},{"Application Name":"OfficeClientService","Application IDs":"0f698dd4-f011-4d23-a33e-b36416dcb1e6"},{"Application Name":"OfficeHome","Application IDs":"4765445b-32c6-49b0-83e6-1d93765276ca"},{"Application Name":"OfficeShredderWacClient","Application IDs":"4d5c2d63-cf83-4365-853c-925fd1a64357"},{"Application Name":"OMSOctopiPROD","Application IDs":"62256cef-54c0-4cb4-bcac-4c67989bdc40"},{"Application Name":"OneDrive SyncEngine","Application IDs":"ab9b8c07-8f02-4f72-87fa-80105867a763"},{"Application Name":"OneNote","Application IDs":"2d4d3d8e-2be3-4bef-9f87-7875a61c29de"},{"Application Name":"Outlook Mobile","Application IDs":"27922004-5251-4030-b22d-91ecd9a37ea4"},{"Application Name":"Partner Customer Delegated Admin Offline Processor","Application IDs":"a3475900-ccec-4a69-98f5-a65cd5dc5306"},{"Application Name":"Password Breach Authenticator","Application IDs":"bdd48c81-3a58-4ea9-849c-ebea7f6b6360"},{"Application Name":"Power BI Service","Application IDs":"00000009-0000-0000-c000-000000000000"},{"Application Name":"SharedWithMe","Application IDs":"ffcb16e8-f789-467c-8ce9-f826a080d987"},{"Application Name":"SharePoint Online Web Client Extensibility","Application IDs":"08e18876-6177-487e-b8b5-cf950c1e598c"},{"Application Name":"Signup","Application IDs":"b4bddae8-ab25-483e-8670-df09b9f1d0ea"},{"Application Name":"Skype for Business Online","Application IDs":"00000004-0000-0ff1-ce00-000000000000"},{"Application Name":"Sway","Application IDs":"905fcf26-4eb7-48a0-9ff0-8dcc7194b5ba"},{"Application Name":"Universal Store Native Client","Application IDs":"268761a2-03f3-40df-8a8b-c3db24145b6b"},{"Application Name":"Vortex [wsfed enabled]","Application IDs":"5572c4c0-d078-44ce-b81c-6cbf8d3ed39e"},{"Application Name":"Windows Azure Active Directory","Application IDs":"00000002-0000-0000-c000-000000000000"},{"Application Name":"Windows Azure Service Management API","Application IDs":"797f4846-ba00-4fd7-ba43-dac1f8f63013"},{"Application Name":"WindowsDefenderATP Portal","Application IDs":"a3b79187-70b2-4139-83f9-6016c58cd27b"},{"Application Name":"Windows Search","Application IDs":"26a7ee05-5602-4d76-a7ba-eae8b7b67941"},{"Application Name":"Windows Spotlight","Application IDs":"1b3c667f-cde3-4090-b60b-3d2abd0117f0"},{"Application Name":"Windows Store for Business","Application IDs":"45a330b1-b1ec-4cc1-9161-9f03992aa49f"},{"Application Name":"Yammer","Application IDs":"00000005-0000-0ff1-ce00-000000000000"},{"Application Name":"Yammer Web","Application IDs":"c1c74fed-04c9-4704-80dc-9f79a2e515cb"},{"Application Name":"Yammer Web Embed","Application IDs":"e1ef36fd-b883-4dbf-97f0-9ece4b576fc6"}]' | + ConvertFrom-Json | Where-Object -Property 'Application IDs' -EQ $AuditlogsLogon.applicationId + $LastSignIn = [PSCustomObject]@{ + AppDisplayName = if ($AppName) { $AppName.'Application Name' } else { "$($AuditlogsLogon.Workload) - $($AuditlogsLogon.ApplicationId) " } + CreatedDateTime = $AuditlogsLogon.CreationTime + Id = $AuditlogsLogon.errorNumber + Status = $AuditlogsLogon.ResultStatus + } + $GraphRequest = $GraphRequest | Select-Object *, + @{ Name = 'LastSigninApplication'; Expression = { $LastSignIn.AppDisplayName } }, + @{ Name = 'LastSigninDate'; Expression = { $($LastSignIn.CreatedDateTime | Out-String) } }, + @{ Name = 'LastSigninStatus'; Expression = { $AuditlogsLogon.operation } }, + @{ Name = 'LastSigninResult'; Expression = { $LastSignIn.status } }, + @{ Name = 'LastSigninFailureReason'; Expression = { if ($LastSignIn.Id -eq 0) { 'Successfully signed in' } else { $LastSignIn.Id } } } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-PatchUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-PatchUser.ps1 new file mode 100644 index 000000000000..c4c269b9c338 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-PatchUser.ps1 @@ -0,0 +1,103 @@ +function Invoke-PatchUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $HttpResponse = [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = @("Default response, you should never see this.") } + } + + try { + # Handle array of user objects or single user object + $Users = if ($Request.Body -is [array]) { + $Request.Body + } else { + @($Request.Body) + } + + # Validate that all users have required properties + $InvalidUsers = $Users | Where-Object { + [string]::IsNullOrWhiteSpace($_.id) -or [string]::IsNullOrWhiteSpace($_.tenantFilter) + } + if ($InvalidUsers.Count -gt 0) { + $HttpResponse.StatusCode = [HttpStatusCode]::BadRequest + $HttpResponse.Body = @{'Results' = @('Failed to patch user(s). Some users are missing id or tenantFilter') } + } else { + # Group users by tenant filter + $UsersByTenant = $Users | Group-Object -Property tenantFilter + + $TotalSuccessCount = 0 + $AllErrorMessages = @() + + # Process each tenant separately + foreach ($TenantGroup in $UsersByTenant) { + $tenantFilter = $TenantGroup.Name + $TenantUsers = $TenantGroup.Group + + # Build bulk requests for this tenant + $int = 0 + $BulkRequests = foreach ($User in $TenantUsers) { + # Remove the id and tenantFilter properties from the body since they're not user properties + $PatchBody = $User | Select-Object -Property * -ExcludeProperty id, tenantFilter + + @{ + id = $int++ + method = 'PATCH' + url = "users/$($User.id)" + body = $PatchBody + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } + + # Execute bulk request for this tenant + $BulkResults = New-GraphBulkRequest -tenantid $tenantFilter -Requests @($BulkRequests) + + # Process results for this tenant + for ($i = 0; $i -lt $BulkResults.Count; $i++) { + $result = $BulkResults[$i] + $user = $TenantUsers[$i] + + if ($result.status -eq 200 -or $result.status -eq 204) { + $TotalSuccessCount++ + Write-LogMessage -headers $Headers -API $APIName -tenant $tenantFilter -message "Successfully patched user $($user.id)" -Sev 'Info' + } else { + $errorMsg = if ($result.body.error.message) { + $result.body.error.message + } else { + "Unknown error (Status: $($result.status))" + } + $AllErrorMessages += "Failed to patch user $($user.id) in tenant $($tenantFilter): $errorMsg" + Write-LogMessage -headers $Headers -API $APIName -tenant $tenantFilter -message "Failed to patch user $($user.id). Error: $errorMsg" -Sev 'Error' + } + } + } + + # Build final response + if ($AllErrorMessages.Count -eq 0) { + $TenantCount = ($Users | Select-Object -Property tenantFilter -Unique).Count + $HttpResponse.Body = @{'Results' = @("Successfully patched $TotalSuccessCount user$(if($TotalSuccessCount -ne 1){'s'}) across $TenantCount tenant$(if($TenantCount -ne 1){'s'})") } + } else { + $HttpResponse.StatusCode = [HttpStatusCode]::BadRequest + $HttpResponse.Body = @{'Results' = $AllErrorMessages + @("Successfully patched $TotalSuccessCount of $($Users.Count) users") } + } + } + + } catch { + $HttpResponse.StatusCode = [HttpStatusCode]::InternalServerError + $HttpResponse.Body = @{'Results' = @("Failed to patch user(s). Error: $($_.Exception.Message)") } + } + + return $HttpResponse +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveDeletedObject.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveDeletedObject.ps1 new file mode 100644 index 000000000000..39245f636391 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveDeletedObject.ps1 @@ -0,0 +1,45 @@ +Function Invoke-RemoveDeletedObject { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $RequestID = $Request.Query.ID ?? $Request.Body.ID + $UserPrincipalName = $Request.Body.userPrincipalName + $DisplayName = $Request.Body.displayName + + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/directory/deletedItems/$($RequestID)" -tenantid $TenantFilter -type DELETE -body '{}' -Verbose + $Result = "Successfully permanently deleted item with ID: '$($RequestID)'" + if ($UserPrincipalName) { $Result += " User Principal Name: '$($UserPrincipalName)'" } + if ($DisplayName) { $Result += " Display Name: '$($DisplayName)'" } + + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to permanently delete item with ID: $($RequestID)" + if ($UserPrincipalName) { $Result += " User Principal Name: '$($UserPrincipalName)'" } + if ($DisplayName) { $Result += " Display Name: '$($DisplayName)'" } + $Result += " Error: $($ErrorMessage.NormalizedError)" + + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveJITAdminTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveJITAdminTemplate.ps1 new file mode 100644 index 000000000000..e0ac56a8f294 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveJITAdminTemplate.ps1 @@ -0,0 +1,47 @@ +function Invoke-RemoveJITAdminTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + $ID = $Request.Query.ID ?? $Request.Body.ID + + if ([string]::IsNullOrWhiteSpace($ID)) { + throw 'ID is required' + } + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'JITAdminTemplate' and RowKey eq '$ID'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if ($Template) { + Remove-AzDataTableEntity @Table -Entity $Template + $Result = "Successfully deleted JIT Admin Template with ID: $ID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } else { + $Result = "JIT Admin Template with ID $ID not found" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Warning' + $StatusCode = [HttpStatusCode]::NotFound + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete JIT Admin Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveTrustedBlockedSender.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveTrustedBlockedSender.ps1 new file mode 100644 index 000000000000..e9607e4cf27c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveTrustedBlockedSender.ps1 @@ -0,0 +1,41 @@ +function Invoke-RemoveTrustedBlockedSender { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.Mailbox.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with the query or body of the request + $TenantFilter = $Request.Body.tenantFilter + $TypeProperty = $Request.Body.typeProperty + $Value = $Request.Body.value + $UserPrincipalName = $Request.Body.userPrincipalName + + try { + $removeParams = @{ + UserPrincipalName = $UserPrincipalName + TenantFilter = $TenantFilter + APIName = $APIName + Headers = $Headers + TypeProperty = $TypeProperty + Value = $Value + } + $Results = Remove-CIPPTrustedBlockedSender @removeParams + $StatusCode = [HttpStatusCode]::OK + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUser.ps1 new file mode 100644 index 000000000000..b6df383c479e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUser.ps1 @@ -0,0 +1,34 @@ +Function Invoke-RemoveUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $UserID = $Request.Query.ID ?? $Request.Body.ID + $Username = $Request.Query.userPrincipalName ?? $Request.Body.userPrincipalName + + if (!$UserID) { exit } + try { + $Result = Remove-CIPPUser -UserID $UserID -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $StatusCode = [HttpStatusCode]::OK + + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 new file mode 100644 index 000000000000..c97f52617d00 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUserDefaultTemplate.ps1 @@ -0,0 +1,42 @@ +function Invoke-RemoveUserDefaultTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + try { + $ID = $Request.Query.ID ?? $Request.Body.ID + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'UserDefaultTemplate' and RowKey eq '$ID'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if ($Template) { + Remove-AzDataTableEntity @Table -Entity $Template + $Result = "Successfully deleted User Default Template with ID: $ID" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } else { + $Result = "User Default Template with ID $ID not found" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Warning' + $StatusCode = [HttpStatusCode]::NotFound + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete User Default Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 new file mode 100644 index 000000000000..399a8a1972e8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Invoke-ExecSetCloudManaged.ps1 @@ -0,0 +1,43 @@ +function Invoke-ExecSetCloudManaged { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.DirSync.ReadWrite + .DESCRIPTION + Sets the cloud-managed status of a user, group, or contact. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $GroupID = $Request.Body.ID + $DisplayName = $Request.Body.displayName + $Type = $Request.Body.type + $IsCloudManaged = [System.Convert]::ToBoolean($Request.Body.isCloudManaged) + + try { + $Params = @{ + Id = $GroupID + TenantFilter = $TenantFilter + DisplayName = $DisplayName + Type = $Type + IsCloudManaged = $IsCloudManaged + APIName = $APIName + Headers = $Headers + } + $Result = Set-CIPPCloudManaged @Params + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "$($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListAzureADConnectStatus.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListAzureADConnectStatus.ps1 new file mode 100644 index 000000000000..02275366ff54 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListAzureADConnectStatus.ps1 @@ -0,0 +1,72 @@ +Function Invoke-ListAzureADConnectStatus { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Query.TenantFilter + $DataToReturn = $Request.Query.DataToReturn + Write-Host "DataToReturn: $DataToReturn" + + if (($DataToReturn -eq 'AzureADConnectSettings') -or ([string]::IsNullOrEmpty($DataToReturn)) ) { + $ADConnectStatusGraph = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter + $AzureADConnectSettings = [PSCustomObject]@{ + dirSyncEnabled = [boolean]$ADConnectStatusGraph.onPremisesSyncEnabled + numberOfHoursFromLastSync = $ADConnectStatusGraph.onPremisesLastSyncDateTime + raw = $ADConnectStatusGraph + } + } + + if (($DataToReturn -eq 'AzureADObjectsInError') -or ([string]::IsNullOrEmpty($DataToReturn)) ) { + $SelectList = 'id,displayName,onPremisesProvisioningErrors,createdDateTime' + $Types = 'Users', 'Contacts', 'Groups' + + $GraphRequest = @( + foreach ($Type in $Types) { + @{ + id = $Type.ToLower() + method = 'GET' + url = "/$Type`?`$select=$SelectList" + } + } + ) + + $Results = New-GraphBulkRequest -Requests $GraphRequest -tenantid $TenantFilter -verbose + $ObjectsInError = @( + foreach ($Result in $Results) { + $Type = $Result.id -replace 's$' # Remove the 's' from the end of the type name + $Result.body.value | ForEach-Object { + if ($null -ne $_.id) { + $_ | Add-Member -NotePropertyName ObjectType -NotePropertyValue $Type -PassThru + } + } + } + ) + } + + if ([string]::IsNullOrEmpty($DataToReturn)) { + $FinalObject = [PSCustomObject]@{ + AzureADConnectSettings = $AzureADConnectSettings + ObjectsInError = $ObjectsInError + } + } + if ($DataToReturn -eq 'AzureADConnectSettings') { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $AzureADConnectSettings + }) + } elseif ($DataToReturn -eq 'AzureADObjectsInError') { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($ObjectsInError) + }) + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($FinalObject) + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListBasicAuth.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListBasicAuth.ps1 new file mode 100644 index 000000000000..91ae1a2c4d8d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListBasicAuth.ps1 @@ -0,0 +1,80 @@ +Function Invoke-ListBasicAuth { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.AuditLog.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # XXX; This function seems to be unused in the frontend. -Bobby + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $currentTime = Get-Date -Format 'yyyy-MM-ddTHH:MM:ss' + $ts = (Get-Date).AddDays(-30) + $endTime = $ts.ToString('yyyy-MM-ddTHH:MM:ss') + ##Create Filter for basic auth sign-ins + $filters = "createdDateTime ge $($endTime)Z and createdDateTime lt $($currentTime)Z and (clientAppUsed eq 'AutoDiscover' or clientAppUsed eq 'Exchange ActiveSync' or clientAppUsed eq 'Exchange Online PowerShell' or clientAppUsed eq 'Exchange Web Services' or clientAppUsed eq 'IMAP4' or clientAppUsed eq 'MAPI Over HTTP' or clientAppUsed eq 'Offline Address Book' or clientAppUsed eq 'Outlook Anywhere (RPC over HTTP)' or clientAppUsed eq 'Other clients' or clientAppUsed eq 'POP3' or clientAppUsed eq 'Reporting Web Services' or clientAppUsed eq 'Authenticated SMTP' or clientAppUsed eq 'Outlook Service')" + if ($TenantFilter -ne 'AllTenants') { + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/signIns?api-version=beta&filter=$($filters)" -tenantid $TenantFilter -ErrorAction Stop | Select-Object userPrincipalName, clientAppUsed, Status | Sort-Object -Unique -Property userPrincipalName + $response = $GraphRequest + Write-LogMessage -headers $Headers -API $APIName -message 'Retrieved basic authentication report' -Sev 'Debug' -tenant $TenantFilter + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($response) + }) + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to retrieve basic authentication report: $($_.Exception.message) " -Sev 'Error' -tenant $TenantFilter + return ([HttpResponseContext]@{ + StatusCode = '500' + Body = $(Get-NormalizedError -message $_.Exception.message) + }) + } + } else { + $Table = Get-CIPPTable -TableName cachebasicauth + $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-1) + if (!$Rows) { + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Basic Auth - All Tenants' -TotalTasks ($TenantList | Measure-Object).Count + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'BasicAuthOrchestrator' + QueueId = $Queue.RowKey + QueueFunction = @{ + FunctionName = 'GetTenants' + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListBasicAuthAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + + $GraphRequest = [PSCustomObject]@{ + MetaData = 'Loading data for all tenants. Please check back in 10 minutes' + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + } else { + $GraphRequest = $Rows + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + } + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListInactiveAccounts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListInactiveAccounts.ps1 new file mode 100644 index 000000000000..a7f74435d3dc --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListInactiveAccounts.ps1 @@ -0,0 +1,31 @@ +Function Invoke-ListInactiveAccounts { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Convert the TenantFilter parameter to a list of tenant IDs for AllTenants or a single tenant ID + $TenantFilter = $Request.Query.tenantFilter + if ($TenantFilter -eq 'AllTenants') { + $TenantFilter = (Get-Tenants).customerId + } else { + $TenantFilter = (Get-Tenants -TenantFilter $TenantFilter).customerId + } + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/inactiveUsers?`$count=true" -tenantid $env:TenantID | Where-Object { $_.tenantId -in $TenantFilter } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = "Could not connect to Azure Lighthouse API: $($ErrorMessage)" + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListMFAUsers.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListMFAUsers.ps1 new file mode 100644 index 000000000000..65c79f2bb82c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListMFAUsers.ps1 @@ -0,0 +1,59 @@ +Function Invoke-ListMFAUsers { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.User.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + if ($TenantFilter -ne 'AllTenants') { + $GraphRequest = Get-CIPPMFAState -TenantFilter $TenantFilter + } else { + $Table = Get-CIPPTable -TableName cachemfa + + $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-2) + if (!$Rows) { + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'MFA Users - All Tenants' -Link '/identity/reports/mfa-report?customerId=AllTenants' -TotalTasks ($TenantList | Measure-Object).Count + Write-Information ($Queue | ConvertTo-Json) + $GraphRequest = [PSCustomObject]@{ + UPN = 'Loading data for all tenants. Please check back in a few minutes' + } + $Batch = $TenantList | ForEach-Object { + $_ | Add-Member -NotePropertyName FunctionName -NotePropertyValue 'ListMFAUsersQueue' + $_ | Add-Member -NotePropertyName QueueId -NotePropertyValue $Queue.RowKey + $_ + } + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'ListMFAUsersOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + } + } else { + $Rows = foreach ($Row in $Rows) { + if ($Row.CAPolicies) { + $Row.CAPolicies = try { $Row.CAPolicies | ConvertFrom-Json } catch { $Row.CAPolicies } + } + if ($Row.MFAMethods) { + $Row.MFAMethods = try { $Row.MFAMethods | ConvertFrom-Json } catch { $Row.MFAMethods } + } + $Row + } + $GraphRequest = $Rows + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListSignIns.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListSignIns.ps1 new file mode 100644 index 000000000000..9139264ad86d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Reports/Invoke-ListSignIns.ps1 @@ -0,0 +1,59 @@ +Function Invoke-ListSignIns { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.AuditLog.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APINAME = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $Days = $Request.Query.Days ?? 7 + $FailedLogonsOnly = $Request.Query.failedLogonsOnly + $FailureThreshold = $Request.Query.FailureThreshold + $Filter = $Request.Query.Filter + + try { + if ($FailedLogonsOnly -eq 'true' -or $FailedLogonsOnly -eq $true) { + $FailedLogons = ' and (status/errorCode eq 50126)' + } + + $Filters = if ($Filter) { + $Filter + } else { + $ts = (Get-Date).AddDays(-$Days).ToUniversalTime() + $endTime = $ts.ToString('yyyy-MM-dd') + "createdDateTime ge $($endTime) and userDisplayName ne 'On-Premises Directory Synchronization Service Account' $FailedLogons" + } + Write-Host $Filters + Write-LogMessage -headers $Headers -API $APINAME -message 'Retrieved sign in report' -Sev 'Debug' -tenant $TenantFilter + + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/signIns?api-version=beta&`$filter=$($Filters)" -tenantid $TenantFilter -ErrorAction Stop + $response = $GraphRequest | Select-Object *, + @{l = 'additionalDetails'; e = { $_.status.additionalDetails } } , + @{l = 'errorCode'; e = { $_.status.errorCode } }, + @{l = 'locationcipp'; e = { "$($_.location.city) - $($_.location.countryOrRegion)" } } + + if ($FailedLogonsOnly -and $FailureThreshold -and $FailureThreshold -gt 0) { + $response = $response | Group-Object -Property userPrincipalName | Where-Object { $_.Count -ge $FailureThreshold } | Select-Object -ExpandProperty Group + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($response) + }) + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Failed to retrieve Sign In report: $($_.Exception.message) " -Sev 'Error' -tenant $TenantFilter + return ([HttpResponseContext]@{ + StatusCode = '500' + Body = $(Get-NormalizedError -message $_.Exception.message) + }) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 new file mode 100644 index 000000000000..c0038feec179 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-AddTestReport.ps1 @@ -0,0 +1,60 @@ +function Invoke-AddTestReport { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + $Body = $Request.Body + + # Validate required fields + if ([string]::IsNullOrEmpty($Body.name)) { + throw 'Report name is required' + } + + # Generate a unique ID + $ReportId = New-Guid + $IdentityTests = $Body.IdentityTests ? ($Body.IdentityTests | ConvertTo-Json -Compress) : '[]' + $DevicesTests = $Body.DevicesTests ? ($Body.DevicesTests | ConvertTo-Json -Compress) : '[]' + + # Create report object + $Report = [PSCustomObject]@{ + PartitionKey = 'Report' + RowKey = [string]$ReportId + name = [string]$Body.name + description = [string]$Body.description + version = '1.0' + IdentityTests = [string]$IdentityTests + DevicesTests = [string]$DevicesTests + CreatedAt = [string](Get-Date).ToString('o') + } + + # Save to table + $Table = Get-CippTable -tablename 'CippReportTemplates' + Add-CIPPAzDataTableEntity -Entity $Report @Table + $Body = [PSCustomObject]@{ + Results = 'Successfully created custom report' + ReportId = $ReportId + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message "Failed to create report: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Body = [PSCustomObject]@{ + Results = "Failed to create report: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 new file mode 100644 index 000000000000..ed502f467c1e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-DeleteTestReport.ps1 @@ -0,0 +1,37 @@ +function Invoke-DeleteTestReport { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + $ReportId = $Request.Body.ReportId + $Table = Get-CippTable -tablename 'CippReportTemplates' + $ExistingReport = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$ReportId'" + Remove-AzDataTableEntity @Table -Entity $ExistingReport + + $Body = [PSCustomObject]@{ + Results = 'Successfully deleted custom report' + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message "Failed to delete report: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Body = [PSCustomObject]@{ + Results = "Failed to delete report: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 new file mode 100644 index 000000000000..bbf455e74581 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ExecTestRun.ps1 @@ -0,0 +1,54 @@ +function Invoke-ExecTestRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Tests.ReadWrite + #> + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Starting data collection and test run for tenant: $TenantFilter" -sev Info + $Batch = @( + @{ + FunctionName = 'CIPPDBCacheData' + TenantFilter = $TenantFilter + QueueId = $Queue.RowKey + QueueName = "Cache - $TenantFilter" + } + ) + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TestDataCollectionAndRun' + Batch = $Batch + PostExecution = @{ + FunctionName = 'CIPPTestsRun' + Parameters = @{ + TenantFilter = $TenantFilter + } + } + SkipLog = $false + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ Results = "Successfully started data collection and test run for $TenantFilter" } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Data collection and test run orchestration started. Instance ID: $InstanceId" -sev Info + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to start data collection/test run: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Message = "Failed to start data collection/test run for $TenantFilter" } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 new file mode 100644 index 000000000000..ceee5d026d31 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListAvailableTests.ps1 @@ -0,0 +1,86 @@ +function Invoke-ListAvailableTests { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Dashboard.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $Request.Headers.'x-ms-client-principal' -API $APIName -message 'Accessed this API' -Sev 'Debug' + + try { + # Get all test folders + $TestFolders = Get-ChildItem 'Modules\CIPPCore\Public\Tests' -Directory + + # Build identity tests array + $IdentityTests = foreach ($TestFolder in $TestFolders) { + $IdentityTestFiles = Get-ChildItem "$($TestFolder.FullName)\Identity\*.ps1" -ErrorAction SilentlyContinue + foreach ($TestFile in $IdentityTestFiles) { + # Extract test ID from filename (e.g., Invoke-CippTestZTNA21772.ps1 -> ZTNA21772) + if ($TestFile.BaseName -match 'Invoke-CippTest(.+)$') { + $TestId = $Matches[1] + + # Try to get test metadata from the file + $TestContent = Get-Content $TestFile.FullName -Raw + $TestName = $TestId + + # Try to extract Synopsis from comment-based help + if ($TestContent -match '\.SYNOPSIS\s+(.+?)(?=\s+\.|\s+#>|\s+\[)') { + $TestName = $Matches[1].Trim() + } + + [PSCustomObject]@{ + id = $TestId + name = $TestName + category = 'Identity' + testFolder = $TestFolder.Name + } + } + } + } + + # Build device tests array + $DevicesTests = foreach ($TestFolder in $TestFolders) { + $DeviceTestFiles = Get-ChildItem "$($TestFolder.FullName)\Devices\*.ps1" -ErrorAction SilentlyContinue + foreach ($TestFile in $DeviceTestFiles) { + if ($TestFile.BaseName -match 'Invoke-CippTest(.+)$') { + $TestId = $Matches[1] + + $TestContent = Get-Content $TestFile.FullName -Raw + $TestName = $TestId + + if ($TestContent -match '\.SYNOPSIS\s+(.+?)(?=\s+\.|\s+#>|\s+\[)') { + $TestName = $Matches[1].Trim() + } + + [PSCustomObject]@{ + id = $TestId + name = $TestName + category = 'Devices' + testFolder = $TestFolder.Name + } + } + } + } + + $Body = [PSCustomObject]@{ + IdentityTests = $IdentityTests + DevicesTests = $DevicesTests + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = [PSCustomObject]@{ + Results = "Failed to list available tests: $($ErrorMessage.NormalizedError)" + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 new file mode 100644 index 000000000000..eae3538134ce --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTestReports.ps1 @@ -0,0 +1,69 @@ +function Invoke-ListTestReports { + <# + .SYNOPSIS + Lists all available test reports from JSON files and database + + .FUNCTIONALITY + Entrypoint + + .ROLE + Tenant.Reports.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + # Get reports from JSON files in test folders + $FileReports = Get-ChildItem 'Modules\CIPPCore\Public\Tests\*\report.json' -ErrorAction SilentlyContinue | ForEach-Object { + try { + $ReportContent = Get-Content $_.FullName -Raw | ConvertFrom-Json + $FolderName = $_.Directory.Name + [PSCustomObject]@{ + id = $FolderName.ToLower() + name = $ReportContent.name ?? $FolderName + description = $ReportContent.description ?? '' + version = $ReportContent.version ?? '1.0' + source = 'file' + type = $FolderName + } + } catch { + Write-LogMessage -API $APIName -message "Error reading report.json from $($_.Directory.Name): $($_.Exception.Message)" -sev Warning + } + } + + # Get custom reports from CippReportTemplates table + $ReportTable = Get-CippTable -tablename 'CippReportTemplates' + $Filter = "PartitionKey eq 'Report'" + $CustomReports = Get-CIPPAzDataTableEntity @ReportTable -Filter $Filter + + $DatabaseReports = foreach ($Report in $CustomReports) { + [PSCustomObject]@{ + id = $Report.RowKey + name = $Report.Name ?? 'Custom Report' + description = $Report.Description ?? '' + version = $Report.Version ?? '1.0' + source = 'database' + type = 'custom' + } + } + + $Reports = @($FileReports) + @($DatabaseReports) + + $StatusCode = [HttpStatusCode]::OK + $Body = @($Reports) + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -message "Error retrieving test reports: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Error = $ErrorMessage.NormalizedError } + } + + return([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -InputObject $Body -Depth 10 -Compress + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 new file mode 100644 index 000000000000..08946b093fe9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 @@ -0,0 +1,163 @@ +function Invoke-ListTests { + <# + .SYNOPSIS + Lists tests for a tenant, optionally filtered by report ID + + .FUNCTIONALITY + Entrypoint + + .ROLE + Tenant.Reports.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ReportId = $Request.Query.reportId ?? $Request.Body.reportId + + if (-not $TenantFilter) { + throw 'TenantFilter parameter is required' + } + + $TestResultsData = Get-CIPPTestResults -TenantFilter $TenantFilter + + $IdentityTotal = 0 + $DevicesTotal = 0 + $IdentityTests = @() + $DevicesTests = @() + + if ($ReportId) { + $ReportJsonFiles = Get-ChildItem 'Modules\CIPPCore\Public\Tests\*\report.json' -ErrorAction SilentlyContinue + $ReportFound = $false + + $MatchingReport = $ReportJsonFiles | Where-Object { $_.Directory.Name.ToLower() -eq $ReportId.ToLower() } | Select-Object -First 1 + + if ($MatchingReport) { + try { + $ReportContent = Get-Content $MatchingReport.FullName -Raw | ConvertFrom-Json + if ($ReportContent.IdentityTests) { + $IdentityTests = $ReportContent.IdentityTests + $IdentityTotal = @($IdentityTests).Count + } + if ($ReportContent.DevicesTests) { + $DevicesTests = $ReportContent.DevicesTests + $DevicesTotal = @($DevicesTests).Count + } + $ReportFound = $true + } catch { + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Error reading report.json: $($_.Exception.Message)" -sev Warning + } + } + + # Fall back to database if not found in JSON files + if (-not $ReportFound) { + $ReportTable = Get-CippTable -tablename 'CippReportTemplates' + $Filter = "PartitionKey eq 'Report' and RowKey eq '{0}'" -f $ReportId + $ReportTemplate = Get-CIPPAzDataTableEntity @ReportTable -Filter $Filter + + if ($ReportTemplate) { + if ($ReportTemplate.identityTests) { + $IdentityTests = $ReportTemplate.identityTests | ConvertFrom-Json + $IdentityTotal = @($IdentityTests).Count + } + + if ($ReportTemplate.DevicesTests) { + $DevicesTests = $ReportTemplate.DevicesTests | ConvertFrom-Json + $DevicesTotal = @($DevicesTests).Count + } + $ReportFound = $true + } else { + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Report template '$ReportId' not found" -sev Warning + } + } + + # Filter tests if report was found + if ($ReportFound) { + $AllReportTests = $IdentityTests + $DevicesTests + # Use HashSet for O(1) lookup performance + $TestLookup = [System.Collections.Generic.HashSet[string]]::new() + foreach ($test in $AllReportTests) { + [void]$TestLookup.Add($test) + } + $FilteredTests = $TestResultsData.TestResults | Where-Object { $TestLookup.Contains($_.RowKey) } + $TestResultsData.TestResults = @($FilteredTests) + } else { + $TestResultsData.TestResults = @() + } + } else { + $IdentityTotal = @($TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Identity' }).Count + $DevicesTotal = @($TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Devices' }).Count + } + + $IdentityResults = $TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Identity' } + $DeviceResults = $TestResultsData.TestResults | Where-Object { $_.TestType -eq 'Devices' } + + # Add descriptions from markdown files to each test result + foreach ($TestResult in $TestResultsData.TestResults) { + $MdFile = Get-ChildItem -Path 'Modules\CIPPCore\Public\Tests' -Filter "*$($TestResult.RowKey).md" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 + if ($MdFile) { + try { + $MdContent = Get-Content $MdFile.FullName -Raw -ErrorAction SilentlyContinue + if ($MdContent) { + $Description = ($MdContent -split '')[0].Trim() + $Description = ($Description -split '%TestResult%')[0].Trim() + $TestResult | Add-Member -NotePropertyName 'Description' -NotePropertyValue $Description -Force + } + } catch { + #Test + } + } + } + + $TestCounts = @{ + Identity = @{ + Passed = @($IdentityResults | Where-Object { $_.Status -eq 'Passed' }).Count + Failed = @($IdentityResults | Where-Object { $_.Status -eq 'Failed' }).Count + Investigate = @($IdentityResults | Where-Object { $_.Status -eq 'Investigate' }).Count + Skipped = @($IdentityResults | Where-Object { $_.Status -eq 'Skipped' }).Count + Total = $IdentityTotal + } + Devices = @{ + Passed = @($DeviceResults | Where-Object { $_.Status -eq 'Passed' }).Count + Failed = @($DeviceResults | Where-Object { $_.Status -eq 'Failed' }).Count + Investigate = @($DeviceResults | Where-Object { $_.Status -eq 'Investigate' }).Count + Skipped = @($DeviceResults | Where-Object { $_.Status -eq 'Skipped' }).Count + Total = $DevicesTotal + } + } + + $TestResultsData | Add-Member -NotePropertyName 'TestCounts' -NotePropertyValue $TestCounts -Force + + $SecureScoreData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SecureScore' + if ($SecureScoreData) { + $TestResultsData | Add-Member -NotePropertyName 'SecureScore' -NotePropertyValue @($SecureScoreData) -Force + } + $MFAStateData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'MFAState' + if ($MFAStateData) { + $TestResultsData | Add-Member -NotePropertyName 'MFAState' -NotePropertyValue @($MFAStateData) -Force + } + + $LicenseData = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'LicenseOverview' + if ($LicenseData) { + $TestResultsData | Add-Member -NotePropertyName 'LicenseData' -NotePropertyValue @($LicenseData) -Force + } + + $StatusCode = [HttpStatusCode]::OK + $Body = $TestResultsData + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Error retrieving tests: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Error = $ErrorMessage.NormalizedError } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 new file mode 100644 index 000000000000..70586323cd32 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 @@ -0,0 +1,214 @@ +using namespace System.Net +using namespace Microsoft.Azure.Functions.PowerShellWorker +function New-CippCoreRequest { + <# + .SYNOPSIS + Main entrypoint for all HTTP triggered functions in CIPP + .DESCRIPTION + This function is the main entry point for all HTTP triggered functions in CIPP. It routes requests to the appropriate function based on the CIPPEndpoint parameter in the request. + .FUNCTIONALITY + Internal + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param($Request, $TriggerMetadata) + + # Initialize per-request timing + $HttpTimings = @{} + $HttpTotalStopwatch = [System.Diagnostics.Stopwatch]::StartNew() + + # Initialize AsyncLocal storage for thread-safe per-invocation context + if (-not $script:CippInvocationIdStorage) { + $script:CippInvocationIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + if (-not $script:CippAllowedTenantsStorage) { + $script:CippAllowedTenantsStorage = [System.Threading.AsyncLocal[object]]::new() + } + if (-not $script:CippAllowedGroupsStorage) { + $script:CippAllowedGroupsStorage = [System.Threading.AsyncLocal[object]]::new() + } + if (-not $script:CippUserRolesStorage) { + $script:CippUserRolesStorage = [System.Threading.AsyncLocal[hashtable]]::new() + } + + # Initialize user roles cache for this request + if (-not $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value = @{} + } + + # Set InvocationId in AsyncLocal storage for console logging correlation + if ($global:TelemetryClient -and $TriggerMetadata.InvocationId) { + $script:CippInvocationIdStorage.Value = $TriggerMetadata.InvocationId + } + + $FunctionName = 'Invoke-{0}' -f $Request.Params.CIPPEndpoint + Write-Information "API Endpoint: $($Request.Params.CIPPEndpoint) | Frontend Version: $($Request.Headers.'X-CIPP-Version' ?? 'Not specified')" + + if ($Request.Headers.'X-CIPP-Version') { + $Table = Get-CippTable -tablename 'Version' + $FrontendVer = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Version' and RowKey eq 'frontend'" + + if (!$FrontendVer -or ([semver]$FrontendVer.Version -lt [semver]$Request.Headers.'X-CIPP-Version')) { + Add-CIPPAzDataTableEntity @Table -Entity ([pscustomobject]@{ + PartitionKey = 'Version' + RowKey = 'frontend' + Version = $Request.Headers.'X-CIPP-Version' + }) -Force + } elseif ([semver]$FrontendVer.Version -gt [semver]$Request.Headers.'X-CIPP-Version') { + Write-Warning "Client version $($Request.Headers.'X-CIPP-Version') is older than the current frontend version $($FrontendVer.Version)" + } + } + + $HttpTrigger = @{ + Request = [pscustomobject]($Request) + TriggerMetadata = $TriggerMetadata + } + + if ($PSCmdlet.ShouldProcess("Processing request for $($Request.Params.CIPPEndpoint)")) { + # Set script scope variables for Graph API to indicate HTTP request/high priority + $script:XMsThrottlePriority = 'high' + + if ((Get-Command -Name $FunctionName -ErrorAction SilentlyContinue) -or $FunctionName -eq 'Invoke-Me') { + try { + $swAccess = [System.Diagnostics.Stopwatch]::StartNew() + $Access = Test-CIPPAccess -Request $Request + $swAccess.Stop() + $HttpTimings['AccessCheck'] = $swAccess.Elapsed.TotalMilliseconds + if ($FunctionName -eq 'Invoke-Me') { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return $Access + } + } catch { + Write-Information "Access denied for $FunctionName : $($_.Exception.Message)" + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Forbidden + Body = $_.Exception.Message + }) + } + $swTenants = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedTenants = Test-CippAccess -Request $Request -TenantList + $swTenants.Stop() + $HttpTimings['AllowedTenants'] = $swTenants.Elapsed.TotalMilliseconds + + $swGroups = [System.Diagnostics.Stopwatch]::StartNew() + $AllowedGroups = Test-CippAccess -Request $Request -GroupList + $swGroups.Stop() + $HttpTimings['AllowedGroups'] = $swGroups.Elapsed.TotalMilliseconds + + if ($AllowedTenants -notcontains 'AllTenants') { + Write-Warning 'Limiting tenant access' + $script:CippAllowedTenantsStorage.Value = $AllowedTenants + } + if ($AllowedGroups -notcontains 'AllGroups') { + Write-Warning 'Limiting group access' + $script:CippAllowedGroupsStorage.Value = $AllowedGroups + } + + try { + Write-Information "Access: $Access" + Write-LogMessage -headers $Headers -API $Request.Params.CIPPEndpoint -message 'Accessed this API' -Sev 'Debug' + if ($Access) { + # Prepare telemetry metadata for HTTP API call + $metadata = @{ + Endpoint = $Request.Params.CIPPEndpoint + FunctionName = $FunctionName + Method = $Request.Method + TriggerType = 'HTTP' + } + + # Add tenant filter if present + if ($Request.Query.TenantFilter) { + $metadata['Tenant'] = $Request.Query.TenantFilter + } elseif ($Request.Body.TenantFilter) { + $metadata['Tenant'] = $Request.Body.TenantFilter + } + + # Add user info if available + if ($Request.Headers.'x-ms-client-principal-name') { + $metadata['User'] = $Request.Headers.'x-ms-client-principal-name' + } + + # Wrap the API call execution with telemetry + $swInvoke = [System.Diagnostics.Stopwatch]::StartNew() + $Response = Measure-CippTask -TaskName $Request.Params.CIPPEndpoint -Metadata $metadata -Script { & $FunctionName @HttpTrigger } + $swInvoke.Stop() + $HttpTimings['InvokeEndpoint'] = $swInvoke.Elapsed.TotalMilliseconds + + # Filter to only return HttpResponseContext objects + $HttpResponse = $Response | Where-Object { $_.PSObject.TypeNames -eq 'Microsoft.Azure.Functions.PowerShellWorker.HttpResponseContext' } + if ($HttpResponse) { + # Return the first valid HttpResponseContext found + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]($HttpResponse | Select-Object -First 1)) + } else { + # If no valid response context found, create a default success response + if ($Response.PSObject.Properties.Name -contains 'StatusCode' -and $Response.PSObject.Properties.Name -contains 'Body') { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = $Response.StatusCode + Body = $Response.Body + }) + } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Response + }) + } + } + } + } catch { + Write-Warning "Exception occurred on HTTP trigger ($FunctionName): $($_.Exception.Message)" + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $_.Exception.Message + }) + } + } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = 'Endpoint not found' + }) + } + } else { + $HttpTotalStopwatch.Stop() + $HttpTimings['Total'] = $HttpTotalStopwatch.Elapsed.TotalMilliseconds + $HttpTimingsRounded = [ordered]@{} + foreach ($Key in ($HttpTimings.Keys | Sort-Object)) { $HttpTimingsRounded[$Key] = [math]::Round($HttpTimings[$Key], 2) } + Write-Debug "#### HTTP Request Timings #### $($HttpTimingsRounded | ConvertTo-Json -Compress)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::PreconditionFailed + Body = 'Request not processed' + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 new file mode 100644 index 000000000000..5e87cdc60e00 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecAlertsList.ps1 @@ -0,0 +1,136 @@ +function Invoke-ExecAlertsList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Alert.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + function New-FlatArray ([Array]$arr) { + $arr | ForEach-Object { + if ($_ -is 'Array') { + New-FlatArray $_ + } else { $_ } + } + } + try { + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { + $Alerts = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/alerts' -tenantid $TenantFilter + $AlertsObj = foreach ($Alert in $Alerts) { + @{ + Tenant = $TenantFilter + GUID = $GUID + Id = $Alert.Id + Title = $Alert.Title + Category = $Alert.category + EventDateTime = $Alert.eventDateTime + Severity = $Alert.Severity + Status = $Alert.Status + RawResult = $($Alerts | Where-Object { $_.Id -eq $Alert.Id }) + InvolvedUsers = $($Alerts | Where-Object { $_.Id -eq $Alert.Id }).userStates + } + } + + $DisplayableAlerts = New-FlatArray $AlertsObj | Where-Object { $null -ne $_.Id } | Sort-Object -Property EventDateTime -Descending + if (!$DisplayableAlerts) { + $DisplayableAlerts = @() + } + $Metadata = [PSCustomObject]@{} + + [PSCustomObject]@{ + NewAlertsCount = $DisplayableAlerts | Where-Object { $_.Status -eq 'newAlert' } | Measure-Object | Select-Object -ExpandProperty Count + InProgressAlertsCount = $DisplayableAlerts | Where-Object { $_.Status -eq 'inProgress' } | Measure-Object | Select-Object -ExpandProperty Count + SeverityHighAlertsCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'high' } | Measure-Object | Select-Object -ExpandProperty Count + SeverityMediumAlertsCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'medium' } | Measure-Object | Select-Object -ExpandProperty Count + SeverityLowAlertsCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'low' } | Measure-Object | Select-Object -ExpandProperty Count + SeverityInformationalCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'informational' } | Measure-Object | Select-Object -ExpandProperty Count + MSResults = @($DisplayableAlerts) + } + } else { + $Table = Get-CIPPTable -TableName cachealertsandincidents + $PartitionKey = 'alert' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Alerts List - All Tenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'AlertsOrchestrator' + QueueFunction = [PSCustomObject]@{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ExecAlertsListAllTenants' + } + SkipLog = $true + } | ConvertTo-Json -Depth 10 + Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject $InputObject + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + + $Alerts = $Rows + $AlertsObj = foreach ($Alert in $Alerts) { + $AlertInfo = $Alert.Alert | ConvertFrom-Json + @{ + Tenant = $Alert.Tenant + GUID = $GUID + Id = $AlertInfo.Id + Title = $AlertInfo.Title + Category = $AlertInfo.category + EventDateTime = $AlertInfo.eventDateTime + Severity = $AlertInfo.Severity + Status = $AlertInfo.Status + RawResult = $AlertInfo + InvolvedUsers = $AlertInfo.userStates + } + } + $DisplayableAlerts = New-FlatArray $AlertsObj | Where-Object { $null -ne $_.Id } | Sort-Object -Property EventDateTime -Descending + [PSCustomObject]@{ + NewAlertsCount = $DisplayableAlerts | Where-Object { $_.Status -eq 'newAlert' } | Measure-Object | Select-Object -ExpandProperty Count + InProgressAlertsCount = $DisplayableAlerts | Where-Object { $_.Status -eq 'inProgress' } | Measure-Object | Select-Object -ExpandProperty Count + SeverityHighAlertsCount = ($DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'high' } | Measure-Object | Select-Object -ExpandProperty Count) + SeverityMediumAlertsCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'medium' } | Measure-Object | Select-Object -ExpandProperty Count + SeverityLowAlertsCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'low' } | Measure-Object | Select-Object -ExpandProperty Count + SeverityInformationalCount = $DisplayableAlerts | Where-Object { ($_.Status -eq 'inProgress') -or ($_.Status -eq 'newAlert') } | Where-Object { $_.Severity -eq 'informational' } | Measure-Object | Select-Object -ExpandProperty Count + MSResults = ($DisplayableAlerts | Sort-Object -Property EventDateTime -Descending) + } + } + } + + } catch { + $StatusCode = [HttpStatusCode]::Forbidden + $body = $_.Exception.message + } + if (!$body) { + $StatusCode = [HttpStatusCode]::OK + $body = @{ + Results = $GraphRequest + Metadata = $Metadata + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecIncidentsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecIncidentsList.ps1 new file mode 100644 index 000000000000..77dbdb060b08 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecIncidentsList.ps1 @@ -0,0 +1,113 @@ +function Invoke-ExecIncidentsList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Incident.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { + # Single tenant functionality + $Incidents = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/incidents' -tenantid $TenantFilter -AsApp $true + + foreach ($incident in $Incidents) { + [PSCustomObject]@{ + Tenant = $TenantFilter + Id = $incident.id + Status = $incident.status + IncidentUrl = $incident.incidentWebUrl + RedirectId = $incident.redirectIncidentId + DisplayName = $incident.displayName + Created = $incident.createdDateTime + Updated = $incident.lastUpdateDateTime + AssignedTo = $incident.assignedTo + Classification = $incident.classification + Determination = $incident.determination + Severity = $incident.severity + Tags = ($IncidentObj.tags -join ', ') + Comments = $incident.comments + } + } + } else { + # AllTenants functionality + $Table = Get-CIPPTable -TableName cachealertsandincidents + $PartitionKey = 'Incident' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Incidents - All Tenants' -Link '/security/reports/incident-report?customerId=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'IncidentOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ExecIncidentsListAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Incidents = $Rows + foreach ($incident in $Incidents) { + $IncidentObj = $incident.Incident | ConvertFrom-Json + [PSCustomObject]@{ + Tenant = $incident.Tenant + Id = $IncidentObj.id + Status = $IncidentObj.status + IncidentUrl = $IncidentObj.incidentWebUrl + RedirectId = $IncidentObj.redirectIncidentId + DisplayName = $IncidentObj.displayName + Created = $IncidentObj.createdDateTime + Updated = $IncidentObj.lastUpdateDateTime + AssignedTo = $IncidentObj.assignedTo + Classification = $IncidentObj.classification + Determination = $IncidentObj.determination + Severity = $IncidentObj.severity + Tags = ($IncidentObj.tags -join ', ') + Comments = @($IncidentObj.comments) + } + } + } + } + } catch { + $Body = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + } + if (!$Body) { + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ + Results = @($GraphRequest | Where-Object -Property id -NE $null | Sort-Object id -Descending) + Metadata = $Metadata + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecMdoAlertsList.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecMdoAlertsList.ps1 new file mode 100644 index 000000000000..241f91ca8c85 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecMdoAlertsList.ps1 @@ -0,0 +1,77 @@ +function Invoke-ExecMDOAlertsList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Alert.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { + # Single tenant functionality + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/security/alerts_v2?`$filter=serviceSource eq 'microsoftDefenderForOffice365'" -tenantid $TenantFilter + } else { + # AllTenants functionality + $Table = Get-CIPPTable -TableName cachealertsandincidents + $PartitionKey = 'MdoAlert' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-30) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'MDO Alerts - All Tenants' -Link '/security/reports/mdo-alerts?customerId=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'MdoAlertsOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ExecMdoAlertsListAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Alerts = $Rows + foreach ($alert in $Alerts) { + ConvertFrom-Json -InputObject $alert.MdoAlert -Depth 10 + } + } + } + } catch { + $Body = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + } + if (!$Body) { + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ + Results = @($GraphRequest) + Metadata = $Metadata + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetMdoAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetMdoAlert.ps1 new file mode 100644 index 000000000000..740e725259f6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetMdoAlert.ps1 @@ -0,0 +1,71 @@ +function Invoke-ExecSetMdoAlert { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Incident.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $AlertId = $Request.Query.GUID ?? $Request.Body.GUID + $Status = $Request.Query.Status ?? $Request.Body.Status + $Assigned = $Request.Query.Assigned ?? $Request.Body.Assigned ?? ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + $Classification = $Request.Query.Classification ?? $Request.Body.Classification + $Determination = $Request.Query.Determination ?? $Request.Body.Determination + $Result = '' + $AssignBody = @{} + + try { + # Set received status + if ($null -ne $Status) { + $AssignBody.status = $Status + $Result += 'Set status for incident ' + $AlertId + ' to ' + $Status + } + + # Set received classification and determination + if ($null -ne $Classification) { + if ($null -eq $Determination) { + # Maybe some poindexter tries to send a classification without a determination + throw + } + + $AssignBody.classification = $Classification + $AssignBody.determination = $Determination + $Result += 'Set classification & determination for incident ' + $AlertId + ' to ' + $Classification + ' ' + $Determination + } + + # Set received assignee + if ($null -ne $Assigned) { + $AssignBody.assignedTo = $Assigned + if ($null -eq $Status) { + $Result += 'Set assigned for incident ' + $AlertId + ' to ' + $Assigned + } + } + + # Convert hashtable to JSON + $AssignBodyJson = $AssignBody | ConvertTo-Json -Compress + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/security/alerts_v2/$AlertId" -type PATCH -tenantid $TenantFilter -body $AssignBodyJson -asApp $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to update incident $AlertId : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityAlert.ps1 new file mode 100644 index 000000000000..ded5daf03803 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityAlert.ps1 @@ -0,0 +1,40 @@ +Function Invoke-ExecSetSecurityAlert { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $AlertFilter = $Request.Query.GUID ?? $Request.Body.GUID + $Status = $Request.Query.Status ?? $Request.Body.Status + $Vendor = $Request.Query.Vendor ?? $Request.Body.Vendor + $Provider = $Request.Query.Provider ?? $Request.Body.Provider + $AssignBody = '{"status":"' + $Status + '","vendorInformation":{"provider":"' + $Provider + '","vendor":"' + $Vendor + '"}}' + + try { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/security/alerts/$AlertFilter" -type PATCH -tenantid $TenantFilter -body $AssignBody + $Result = "Set alert $AlertFilter to status $Status" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to update alert $($AlertFilter): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 new file mode 100644 index 000000000000..673e7404d856 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 @@ -0,0 +1,84 @@ +Function Invoke-ExecSetSecurityIncident { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Incident.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $first = '' + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $IncidentFilter = $Request.Query.GUID ?? $Request.Body.GUID + $Status = $Request.Query.Status ?? $Request.Body.Status + # $Assigned = $Request.Query.Assigned ?? $Request.Body.Assigned ?? $Headers.'x-ms-client-principal' + $Assigned = $Request.Query.Assigned ?? $Request.Body.Assigned ?? ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + $Classification = $Request.Query.Classification ?? $Request.Body.Classification + $Determination = $Request.Query.Determination ?? $Request.Body.Determination + $Redirected = $Request.Query.Redirected -as [int] ?? $Request.Body.Redirected -as [int] + $BodyBuild + $AssignBody = '{' + + try { + # We won't update redirected incidents because the incident it is redirected to should instead be updated + if ($Redirected -lt 1) { + # Set received status + if ($null -ne $Status) { + $AssignBody += $first + '"status":"' + $Status + '"' + $BodyBuild += $first + 'Set status for incident ' + $IncidentFilter + ' to ' + $Status + $first = ', ' + } + + # Set received classification and determination + if ($null -ne $Classification) { + if ($null -eq $Determination) { + # Maybe some poindexter tries to send a classification without a determination + throw + } + + $AssignBody += $first + '"classification":"' + $Classification + '", "determination":"' + $Determination + '"' + $BodyBuild += $first + 'Set classification & determination for incident ' + $IncidentFilter + ' to ' + $Classification + ' ' + $Determination + $first = ', ' + } + + # Set received assignee + if ($null -ne $Assigned) { + $AssignBody += $first + '"assignedTo":"' + $Assigned + '"' + if ($null -eq $Status) { + $BodyBuild += $first + 'Set assigned for incident ' + $IncidentFilter + ' to ' + $Assigned + } + $first = ', ' + } + + $AssignBody += '}' + + $ResponseBody = [pscustomobject]@{'Results' = $BodyBuild } + New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/security/incidents/$IncidentFilter" -type PATCH -tenantid $TenantFilter -body $AssignBody -asApp $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Update incident $IncidentFilter with values $AssignBody" -Sev 'Info' + } else { + $ResponseBody = [pscustomobject]@{'Results' = "Refused to update incident $IncidentFilter with values $AssignBody because it is redirected to another incident" } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Refused to update incident $IncidentFilter with values $AssignBody because it is redirected to another incident" -Sev 'Info' + } + + $body = $ResponseBody + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to update incident $IncidentFilter : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = $Result } + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyFromTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyFromTemplate.ps1 new file mode 100644 index 000000000000..a48db0eaccaf --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyFromTemplate.ps1 @@ -0,0 +1,225 @@ +Function Invoke-AddSafeLinksPolicyFromTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SafeLinks.ReadWrite + .DESCRIPTION + This function deploys SafeLinks policies and rules from templates to selected tenants. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + try { + $RequestBody = $Request.Body + + # Extract tenant IDs from selectedTenants + $SelectedTenants = $RequestBody.selectedTenants | ForEach-Object { $_.value } + if ('AllTenants' -in $SelectedTenants) { + $SelectedTenants = (Get-Tenants).defaultDomainName + } + + # Extract templates from TemplateList + $Templates = $RequestBody.TemplateList | ForEach-Object { $_.value } + + if (-not $Templates -or $Templates.Count -eq 0) { + throw "No templates provided in TemplateList" + } + + # Helper function to process array fields with cleaner logic + function ConvertTo-SafeArray { + param($Field) + + if ($null -eq $Field) { return @() } + + # Handle arrays + if ($Field -is [array]) { + return $Field | ForEach-Object { + if ($_ -is [string]) { $_ } + elseif ($_.value) { $_.value } + elseif ($_.userPrincipalName) { $_.userPrincipalName } + elseif ($_.id) { $_.id } + else { $_.ToString() } + } + } + + # Handle single objects + if ($Field -is [hashtable] -or $Field -is [PSCustomObject]) { + if ($Field.value) { return @($Field.value) } + if ($Field.userPrincipalName) { return @($Field.userPrincipalName) } + if ($Field.id) { return @($Field.id) } + } + + # Handle strings + if ($Field -is [string]) { return @($Field) } + + return @($Field) + } + + function Test-PolicyExists { + param($TenantFilter, $PolicyName) + + $ExistingPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksPolicy' -useSystemMailbox $true + return $ExistingPolicies | Where-Object { $_.Name -eq $PolicyName } + } + + function Test-RuleExists { + param($TenantFilter, $RuleName) + + $ExistingRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksRule' -useSystemMailbox $true + return $ExistingRules | Where-Object { $_.Name -eq $RuleName } + } + + function New-SafeLinksPolicyFromTemplate { + param($TenantFilter, $Template) + + $PolicyName = $Template.PolicyName + $RuleName = $Template.RuleName ?? "$($PolicyName)_Rule" + + # Check if policy already exists + if (Test-PolicyExists -TenantFilter $TenantFilter -PolicyName $PolicyName) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Policy '$PolicyName' already exists" -Sev 'Warning' + return "Policy '$PolicyName' already exists in tenant $TenantFilter" + } + + # Check if rule already exists + if (Test-RuleExists -TenantFilter $TenantFilter -RuleName $RuleName) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Rule '$RuleName' already exists" -Sev 'Warning' + return "Rule '$RuleName' already exists in tenant $TenantFilter" + } + + # Process array fields + $DoNotRewriteUrls = ConvertTo-SafeArray -Field $Template.DoNotRewriteUrls + $SentTo = ConvertTo-SafeArray -Field $Template.SentTo + $SentToMemberOf = ConvertTo-SafeArray -Field $Template.SentToMemberOf + $RecipientDomainIs = ConvertTo-SafeArray -Field $Template.RecipientDomainIs + $ExceptIfSentTo = ConvertTo-SafeArray -Field $Template.ExceptIfSentTo + $ExceptIfSentToMemberOf = ConvertTo-SafeArray -Field $Template.ExceptIfSentToMemberOf + $ExceptIfRecipientDomainIs = ConvertTo-SafeArray -Field $Template.ExceptIfRecipientDomainIs + + # Create policy parameters + $PolicyParams = @{ Name = $PolicyName } + + # Policy configuration mapping + $PolicyMappings = @{ + 'EnableSafeLinksForEmail' = 'EnableSafeLinksForEmail' + 'EnableSafeLinksForTeams' = 'EnableSafeLinksForTeams' + 'EnableSafeLinksForOffice' = 'EnableSafeLinksForOffice' + 'TrackClicks' = 'TrackClicks' + 'AllowClickThrough' = 'AllowClickThrough' + 'ScanUrls' = 'ScanUrls' + 'EnableForInternalSenders' = 'EnableForInternalSenders' + 'DeliverMessageAfterScan' = 'DeliverMessageAfterScan' + 'DisableUrlRewrite' = 'DisableUrlRewrite' + 'AdminDisplayName' = 'AdminDisplayName' + 'CustomNotificationText' = 'CustomNotificationText' + 'EnableOrganizationBranding' = 'EnableOrganizationBranding' + } + + foreach ($templateKey in $PolicyMappings.Keys) { + if ($null -ne $Template.$templateKey) { + $PolicyParams[$PolicyMappings[$templateKey]] = $Template.$templateKey + } + } + + if ($DoNotRewriteUrls.Count -gt 0) { + $PolicyParams['DoNotRewriteUrls'] = $DoNotRewriteUrls + } + + # Create SafeLinks Policy + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-SafeLinksPolicy' -cmdParams $PolicyParams -useSystemMailbox $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Created SafeLinks policy '$PolicyName'" -Sev 'Info' + + # Create rule parameters + $RuleParams = @{ + Name = $RuleName + SafeLinksPolicy = $PolicyName + } + + # Rule configuration mapping + $RuleMappings = @{ + 'Priority' = 'Priority' + 'TemplateDescription' = 'Comments' + } + + foreach ($templateKey in $RuleMappings.Keys) { + if ($null -ne $Template.$templateKey) { + $RuleParams[$RuleMappings[$templateKey]] = $Template.$templateKey + } + } + + # Add array parameters if they have values + $ArrayMappings = @{ + 'SentTo' = $SentTo + 'SentToMemberOf' = $SentToMemberOf + 'RecipientDomainIs' = $RecipientDomainIs + 'ExceptIfSentTo' = $ExceptIfSentTo + 'ExceptIfSentToMemberOf' = $ExceptIfSentToMemberOf + 'ExceptIfRecipientDomainIs' = $ExceptIfRecipientDomainIs + } + + foreach ($paramName in $ArrayMappings.Keys) { + if ($ArrayMappings[$paramName].Count -gt 0) { + $RuleParams[$paramName] = $ArrayMappings[$paramName] + } + } + + # Create SafeLinks Rule + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-SafeLinksRule' -cmdParams $RuleParams -useSystemMailbox $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Created SafeLinks rule '$RuleName'" -Sev 'Info' + + # Handle rule state + $StateMessage = "" + if ($null -ne $Template.State) { + $IsState = switch ($Template.State) { + "Enabled" { $true } + "Disabled" { $false } + $true { $true } + $false { $false } + default { $null } + } + + if ($null -ne $IsState) { + $Cmdlet = $IsState ? 'Enable-SafeLinksRule' : 'Disable-SafeLinksRule' + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet $Cmdlet -cmdParams @{ Identity = $RuleName } -useSystemMailbox $true + $StateMessage = " (rule $($IsState ? 'enabled' : 'disabled'))" + } + } + + return "Successfully deployed SafeLinks policy '$PolicyName' and rule '$RuleName' to tenant $TenantFilter$StateMessage" + } + + # Process each tenant and template combination + $Results = foreach ($TenantFilter in $SelectedTenants) { + foreach ($Template in $Templates) { + try { + New-SafeLinksPolicyFromTemplate -TenantFilter $TenantFilter -Template $Template + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $ErrorDetail = "Failed to deploy template '$($Template.TemplateName)' to tenant $TenantFilter. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ErrorDetail -Sev 'Error' + $ErrorDetail + } + } + } + + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to process template deployment request. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + # Return response + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyTemplate.ps1 new file mode 100644 index 000000000000..4d3c4b5cc260 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-AddSafeLinksPolicyTemplate.ps1 @@ -0,0 +1,94 @@ +Function Invoke-AddSafeLinksPolicyTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.SafeLinks.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + # Debug: Log the incoming request body + Write-LogMessage -Headers $Headers -API $APINAME -message "Request body: $($Request.body | ConvertTo-Json -Depth 5 -Compress)" -Sev Debug + + try { + $GUID = (New-Guid).GUID + + # Validate required fields + if ([string]::IsNullOrEmpty($Request.body.Name)) { + throw "Template name is required but was not provided" + } + + if ([string]::IsNullOrEmpty($Request.body.PolicyName)) { + throw "Policy name is required but was not provided" + } + + # Create a new ordered hashtable to store selected properties + $policyObject = [ordered]@{} + + # Set name and comments - prioritize template-specific fields + $policyObject["TemplateName"] = $Request.body.TemplateName + $policyObject["TemplateDescription"] = $Request.body.TemplateDescription + + # For templates, if no specific policy description is provided, use template description as default + if ([string]::IsNullOrEmpty($Request.body.AdminDisplayName) -and -not [string]::IsNullOrEmpty($Request.body.Description)) { + $Request.body.AdminDisplayName = $Request.body.Description + Write-LogMessage -Headers $Headers -API $APINAME -message "Using template description as default policy description" -Sev Debug + } + + # Log what we're using for template name and description + Write-LogMessage -Headers $Headers -API $APINAME -message "Template Name: '$($policyObject.TemplateName)', Description: '$($policyObject.TemplateDescription)'" -Sev Debug + + # Copy specific properties we want to keep + $propertiesToKeep = @( + # Policy properties + "PolicyName", "EnableSafeLinksForEmail", "EnableSafeLinksForTeams", "EnableSafeLinksForOffice", + "TrackClicks", "AllowClickThrough", "ScanUrls", "EnableForInternalSenders", + "DeliverMessageAfterScan", "DisableUrlRewrite", "DoNotRewriteUrls", + "AdminDisplayName", "CustomNotificationText", "EnableOrganizationBranding", + # Rule properties + "RuleName", "Priority", "State", "Comments", + "SentTo", "SentToMemberOf", "RecipientDomainIs", + "ExceptIfSentTo", "ExceptIfSentToMemberOf", "ExceptIfRecipientDomainIs" + ) + + # Copy each property if it exists + foreach ($prop in $propertiesToKeep) { + if ($null -ne $Request.body.$prop) { + $policyObject[$prop] = $Request.body.$prop + Write-LogMessage -Headers $Headers -API $APINAME -message "Added property '$prop' with value '$($Request.body.$prop)'" -Sev Debug + } + } + + # Convert to JSON + $JSON = $policyObject | ConvertTo-Json -Depth 10 + Write-LogMessage -Headers $Headers -API $APINAME -message "Final JSON: $JSON" -Sev Debug + + # Save the template to Azure Table Storage + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'SafeLinksTemplate' + } + + Write-LogMessage -Headers $Headers -API $APINAME -message "Created SafeLinks Policy Template '$($policyObject.TemplateName)' with GUID $GUID" -Sev Info + $body = [pscustomobject]@{'Results' = "Created SafeLinks Policy Template '$($policyObject.TemplateName)' with GUID $GUID" } + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APINAME -message "Failed to create SafeLinks policy template: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to create SafeLinks policy template: $($ErrorMessage.NormalizedError)" } + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-CreateSafeLinksPolicyTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-CreateSafeLinksPolicyTemplate.ps1 new file mode 100644 index 000000000000..4eb65304b85a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-CreateSafeLinksPolicyTemplate.ps1 @@ -0,0 +1,74 @@ +Function Invoke-CreateSafeLinksPolicyTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.SafeLinks.ReadWrite + .DESCRIPTION + This function creates a new Safe Links policy template from scratch. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + try { + $GUID = (New-Guid).GUID + + # Create a new ordered hashtable to store selected properties + $policyObject = [ordered]@{} + + # Set name and comments first + $policyObject["TemplateName"] = $Request.body.TemplateName + $policyObject["TemplateDescription"] = $Request.body.TemplateDescription + + # Copy specific properties we want to keep + $propertiesToKeep = @( + # Policy properties + "PolicyName", "EnableSafeLinksForEmail", "EnableSafeLinksForTeams", "EnableSafeLinksForOffice", + "TrackClicks", "AllowClickThrough", "ScanUrls", "EnableForInternalSenders", + "DeliverMessageAfterScan", "DisableUrlRewrite", "DoNotRewriteUrls", + "AdminDisplayName", "CustomNotificationText", "EnableOrganizationBranding", + + # Rule properties + "RuleName", "Priority", "State", "Comments", + "SentTo", "SentToMemberOf", "RecipientDomainIs", + "ExceptIfSentTo", "ExceptIfSentToMemberOf", "ExceptIfRecipientDomainIs" + ) + + # Copy each property if it exists + foreach ($prop in $propertiesToKeep) { + if ($null -ne $Request.body.$prop) { + $policyObject[$prop] = $Request.body.$prop + } + } + + # Convert to JSON + $JSON = $policyObject | ConvertTo-Json -Depth 10 + + # Save the template to Azure Table Storage + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'SafeLinksTemplate' + } + + Write-LogMessage -Headers $Headers -API $APINAME -message "Created SafeLinks Policy Template $($policyObject.TemplateName) with GUID $GUID" -Sev Info + $body = [pscustomobject]@{'Results' = "Created SafeLinks Policy Template $($policyObject.TemplateName) with GUID $GUID" } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APINAME -message "Failed to create SafeLinks policy template: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to create SafeLinks policy template: $($ErrorMessage.NormalizedError)" } + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicy.ps1 new file mode 100644 index 000000000000..f7fdfd4c93b6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicy.ps1 @@ -0,0 +1,214 @@ +function Invoke-EditSafeLinksPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + .DESCRIPTION + This function modifies an existing Safe Links policy and its associated rule. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $PolicyName = $Request.Query.PolicyName ?? $Request.Body.PolicyName + $RuleName = $Request.Query.RuleName ?? $Request.Body.RuleName + + # Helper function to process array fields + function Process-ArrayField { + param ( + [Parameter(Mandatory = $false)] + $Field + ) + + if ($null -eq $Field) { return @() } + + # If already an array, process each item + if ($Field -is [array]) { + $result = [System.Collections.ArrayList]@() + foreach ($item in $Field) { + if ($item -is [string]) { + $result.Add($item) | Out-Null + } + elseif ($item -is [hashtable] -or $item -is [PSCustomObject]) { + # Extract value from object + if ($null -ne $item.value) { + $result.Add($item.value) | Out-Null + } + elseif ($null -ne $item.userPrincipalName) { + $result.Add($item.userPrincipalName) | Out-Null + } + elseif ($null -ne $item.id) { + $result.Add($item.id) | Out-Null + } + else { + $result.Add($item.ToString()) | Out-Null + } + } + else { + $result.Add($item.ToString()) | Out-Null + } + } + return $result.ToArray() + } + + # If it's a single object + if ($Field -is [hashtable] -or $Field -is [PSCustomObject]) { + if ($null -ne $Field.value) { return @($Field.value) } + if ($null -ne $Field.userPrincipalName) { return @($Field.userPrincipalName) } + if ($null -ne $Field.id) { return @($Field.id) } + } + + # If it's a string, return as an array with one item + if ($Field -is [string]) { + return @($Field) + } + + return @($Field) + } + + # Extract policy parameters from body + $EnableSafeLinksForEmail = $Request.Body.EnableSafeLinksForEmail + $EnableSafeLinksForTeams = $Request.Body.EnableSafeLinksForTeams + $EnableSafeLinksForOffice = $Request.Body.EnableSafeLinksForOffice + $TrackClicks = $Request.Body.TrackClicks + $AllowClickThrough = $Request.Body.AllowClickThrough + $ScanUrls = $Request.Body.ScanUrls + $EnableForInternalSenders = $Request.Body.EnableForInternalSenders + $DeliverMessageAfterScan = $Request.Body.DeliverMessageAfterScan + $DisableUrlRewrite = $Request.Body.DisableUrlRewrite + $DoNotRewriteUrls = Process-ArrayField -Field $Request.Body.DoNotRewriteUrls + $AdminDisplayName = $Request.Body.AdminDisplayName + $CustomNotificationText = $Request.Body.CustomNotificationText + $EnableOrganizationBranding = $Request.Body.EnableOrganizationBranding + + # Extract rule parameters from body + $Priority = $Request.Body.Priority + $Comments = $Request.Body.Comments + $State = $Request.Body.State + + # Process recipient-related parameters + $SentTo = Process-ArrayField -Field $Request.Body.SentTo + $SentToMemberOf = Process-ArrayField -Field $Request.Body.SentToMemberOf + $RecipientDomainIs = Process-ArrayField -Field $Request.Body.RecipientDomainIs + $ExceptIfSentTo = Process-ArrayField -Field $Request.Body.ExceptIfSentTo + $ExceptIfSentToMemberOf = Process-ArrayField -Field $Request.Body.ExceptIfSentToMemberOf + $ExceptIfRecipientDomainIs = Process-ArrayField -Field $Request.Body.ExceptIfRecipientDomainIs + + $Results = [System.Collections.ArrayList]@() + $hasPolicyParams = $false + $hasRuleParams = $false + $hasRuleOperation = $false + $ruleMessages = [System.Collections.ArrayList]@() + + try { + # Check which types of updates we need to perform + # PART 1: Build and check policy parameters + $policyParams = @{ + Identity = $PolicyName + } + + # Only add parameters that are explicitly provided + if ($null -ne $EnableSafeLinksForEmail) { $policyParams.Add('EnableSafeLinksForEmail', $EnableSafeLinksForEmail); $hasPolicyParams = $true } + if ($null -ne $EnableSafeLinksForTeams) { $policyParams.Add('EnableSafeLinksForTeams', $EnableSafeLinksForTeams); $hasPolicyParams = $true } + if ($null -ne $EnableSafeLinksForOffice) { $policyParams.Add('EnableSafeLinksForOffice', $EnableSafeLinksForOffice); $hasPolicyParams = $true } + if ($null -ne $TrackClicks) { $policyParams.Add('TrackClicks', $TrackClicks); $hasPolicyParams = $true } + if ($null -ne $AllowClickThrough) { $policyParams.Add('AllowClickThrough', $AllowClickThrough); $hasPolicyParams = $true } + if ($null -ne $ScanUrls) { $policyParams.Add('ScanUrls', $ScanUrls); $hasPolicyParams = $true } + if ($null -ne $EnableForInternalSenders) { $policyParams.Add('EnableForInternalSenders', $EnableForInternalSenders); $hasPolicyParams = $true } + if ($null -ne $DeliverMessageAfterScan) { $policyParams.Add('DeliverMessageAfterScan', $DeliverMessageAfterScan); $hasPolicyParams = $true } + if ($null -ne $DisableUrlRewrite) { $policyParams.Add('DisableUrlRewrite', $DisableUrlRewrite); $hasPolicyParams = $true } + if ($null -ne $DoNotRewriteUrls -and $DoNotRewriteUrls.Count -gt 0) { $policyParams.Add('DoNotRewriteUrls', $DoNotRewriteUrls); $hasPolicyParams = $true } + if ($null -ne $AdminDisplayName) { $policyParams.Add('AdminDisplayName', $AdminDisplayName); $hasPolicyParams = $true } + if ($null -ne $CustomNotificationText) { $policyParams.Add('CustomNotificationText', $CustomNotificationText); $hasPolicyParams = $true } + if ($null -ne $EnableOrganizationBranding) { $policyParams.Add('EnableOrganizationBranding', $EnableOrganizationBranding); $hasPolicyParams = $true } + + # PART 2: Build and check rule parameters + $ruleParams = @{ + Identity = $RuleName + } + + # Add parameters that are explicitly provided + if ($null -ne $Comments) { $ruleParams.Add('Comments', $Comments); $hasRuleParams = $true } + if ($null -ne $Priority) { $ruleParams.Add('Priority', $Priority); $hasRuleParams = $true } + if ($SentTo.Count -gt 0) { $ruleParams.Add('SentTo', $SentTo); $hasRuleParams = $true } + if ($SentToMemberOf.Count -gt 0) { $ruleParams.Add('SentToMemberOf', $SentToMemberOf); $hasRuleParams = $true } + if ($RecipientDomainIs.Count -gt 0) { $ruleParams.Add('RecipientDomainIs', $RecipientDomainIs); $hasRuleParams = $true } + if ($ExceptIfSentTo.Count -gt 0) { $ruleParams.Add('ExceptIfSentTo', $ExceptIfSentTo); $hasRuleParams = $true } + if ($ExceptIfSentToMemberOf.Count -gt 0) { $ruleParams.Add('ExceptIfSentToMemberOf', $ExceptIfSentToMemberOf); $hasRuleParams = $true } + if ($ExceptIfRecipientDomainIs.Count -gt 0) { $ruleParams.Add('ExceptIfRecipientDomainIs', $ExceptIfRecipientDomainIs); $hasRuleParams = $true } + + # Now perform only the necessary operations + + # PART 1: Update policy if needed + if ($hasPolicyParams) { + $ExoPolicyRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'Set-SafeLinksPolicy' + cmdParams = $policyParams + useSystemMailbox = $true + } + + $null = New-ExoRequest @ExoPolicyRequestParam + $Results.Add("Successfully updated SafeLinks policy '$PolicyName'") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Updated SafeLinks policy '$PolicyName'" -Sev 'Info' + } + + # PART 2: Update rule if needed + if ($hasRuleParams) { + $ExoRuleRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'Set-SafeLinksRule' + cmdParams = $ruleParams + useSystemMailbox = $true + } + + $null = New-ExoRequest @ExoRuleRequestParam + $hasRuleOperation = $true + $ruleMessages.Add("updated properties") | Out-Null + } + + # Handle enable/disable if needed + if ($null -ne $State) { + $EnableCmdlet = $State ? 'Enable-SafeLinksRule' : 'Disable-SafeLinksRule' + $EnableRequestParam = @{ + tenantid = $TenantFilter + cmdlet = $EnableCmdlet + cmdParams = @{ + Identity = $RuleName + } + useSystemMailbox = $true + } + + $null = New-ExoRequest @EnableRequestParam + $hasRuleOperation = $true + $State = $State ? "enabled" : "disabled" + $ruleMessages.Add($State) | Out-Null + } + + # Add combined rule message if any rule operations were performed + if ($hasRuleOperation) { + $ruleOperations = $ruleMessages -join " and " + $Results.Add("Successfully $ruleOperations SafeLinks rule '$RuleName'") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "$ruleOperations SafeLinks rule '$RuleName'" -Sev 'Info' + } + + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results.Add("Failed updating SafeLinks configuration '$PolicyName'. Error: $($ErrorMessage.NormalizedError)") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed updating SafeLinks configuration '$PolicyName'. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicyTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicyTemplate.ps1 new file mode 100644 index 000000000000..8d023c98871d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-EditSafeLinksPolicyTemplate.ps1 @@ -0,0 +1,86 @@ +Function Invoke-EditSafeLinksPolicyTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.SafeLinks.ReadWrite + .DESCRIPTION + This function updates an existing Safe Links policy template. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + try { + $ID = $Request.Body.ID + + if (-not $ID) { + throw "Template ID is required" + } + + # Check if template exists + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'SafeLinksTemplate' and RowKey eq '$ID'" + $ExistingTemplate = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (-not $ExistingTemplate) { + throw "Template with ID '$ID' not found" + } + + # Create a new ordered hashtable to store selected properties + $policyObject = [ordered]@{} + + # Set name and comments + $policyObject["TemplateName"] = $Request.body.TemplateName + $policyObject["TemplateDescription"] = $Request.body.TemplateDescription + + # Copy specific properties we want to keep + $propertiesToKeep = @( + # Policy properties + "PolicyName", "EnableSafeLinksForEmail", "EnableSafeLinksForTeams", "EnableSafeLinksForOffice", + "TrackClicks", "AllowClickThrough", "ScanUrls", "EnableForInternalSenders", + "DeliverMessageAfterScan", "DisableUrlRewrite", "DoNotRewriteUrls", + "AdminDisplayName", "CustomNotificationText", "EnableOrganizationBranding", + + # Rule properties + "RuleName", "Priority", "State", "Comments", + "SentTo", "SentToMemberOf", "RecipientDomainIs", + "ExceptIfSentTo", "ExceptIfSentToMemberOf", "ExceptIfRecipientDomainIs" + ) + + # Copy each property if it exists + foreach ($prop in $propertiesToKeep) { + if ($null -ne $Request.body.$prop) { + $policyObject[$prop] = $Request.body.$prop + } + } + + # Convert to JSON + $JSON = $policyObject | ConvertTo-Json -Depth 10 + + # Update the template in Azure Table Storage + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$ID" + PartitionKey = 'SafeLinksTemplate' + } + + Write-LogMessage -Headers $Headers -API $APINAME -message "Updated SafeLinks Policy Template $($policyObject.TemplateName) with ID $ID" -Sev Info + $body = [pscustomobject]@{'Results' = "Updated SafeLinks Policy Template $($policyObject.TemplateName) with ID $ID" } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APINAME -message "Failed to update SafeLinks policy template: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $body = [pscustomobject]@{'Results' = "Failed to update SafeLinks policy template: $($ErrorMessage.NormalizedError)" } + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecDeleteSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecDeleteSafeLinksPolicy.ps1 new file mode 100644 index 000000000000..f3fa33bcaa46 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecDeleteSafeLinksPolicy.ps1 @@ -0,0 +1,92 @@ +function Invoke-ExecDeleteSafeLinksPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + .DESCRIPTION + This function deletes a Safe Links rule and its associated policy. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $RuleName = $Request.Query.RuleName ?? $Request.Body.RuleName + $PolicyName = $Request.Query.PolicyName ?? $Request.Body.PolicyName + + $ResultMessages = [System.Collections.ArrayList]@() + + try { + # Only try to delete the rule if a name was provided + if ($RuleName) { + try { + $ExoRequestRuleParam = @{ + tenantid = $TenantFilter + cmdlet = 'Remove-SafeLinksRule' + cmdParams = @{ + Identity = $RuleName + Confirm = $false + } + useSystemMailbox = $true + } + $null = New-ExoRequest @ExoRequestRuleParam + $ResultMessages.Add("Successfully deleted SafeLinks rule '$RuleName'") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully deleted SafeLinks rule '$RuleName'" -Sev 'Info' + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $ResultMessages.Add("Failed to delete SafeLinks rule '$RuleName'. Error: $($ErrorMessage.NormalizedError)") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to delete SafeLinks rule '$RuleName'. Error: $($ErrorMessage.NormalizedError)" -Sev 'Warning' + } + } + else { + $ResultMessages.Add("No rule name provided, skipping rule deletion") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "No rule name provided, skipping rule deletion" -Sev 'Info' + } + + # Only try to delete the policy if a name was provided + if ($PolicyName) { + try { + $ExoRequestPolicyParam = @{ + tenantid = $TenantFilter + cmdlet = 'Remove-SafeLinksPolicy' + cmdParams = @{ + Identity = $PolicyName + Confirm = $false + } + useSystemMailbox = $true + } + $null = New-ExoRequest @ExoRequestPolicyParam + $ResultMessages.Add("Successfully deleted SafeLinks policy '$PolicyName'") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully deleted SafeLinks policy '$PolicyName'" -Sev 'Info' + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $ResultMessages.Add("Failed to delete SafeLinks policy '$PolicyName'. Error: $($ErrorMessage.NormalizedError)") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to delete SafeLinks policy '$PolicyName'. Error: $($ErrorMessage.NormalizedError)" -Sev 'Warning' + } + } + else { + $ResultMessages.Add("No policy name provided, skipping policy deletion") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "No policy name provided, skipping policy deletion" -Sev 'Info' + } + + # Combine all result messages + $Result = $ResultMessages -join " | " + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "An unexpected error occurred: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecNewSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecNewSafeLinksPolicy.ps1 new file mode 100644 index 000000000000..dbf3790b3090 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ExecNewSafeLinksPolicy.ps1 @@ -0,0 +1,225 @@ +function Invoke-ExecNewSafeLinksPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + .DESCRIPTION + This function creates a new Safe Links policy and an associated rule. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + # Extract policy settings from body + $PolicyName = $Request.Body.PolicyName + $EnableSafeLinksForEmail = $Request.Body.EnableSafeLinksForEmail + $EnableSafeLinksForTeams = $Request.Body.EnableSafeLinksForTeams + $EnableSafeLinksForOffice = $Request.Body.EnableSafeLinksForOffice + $TrackClicks = $Request.Body.TrackClicks + $AllowClickThrough = $Request.Body.AllowClickThrough + $ScanUrls = $Request.Body.ScanUrls + $EnableForInternalSenders = $Request.Body.EnableForInternalSenders + $DeliverMessageAfterScan = $Request.Body.DeliverMessageAfterScan + $DisableUrlRewrite = $Request.Body.DisableUrlRewrite + $DoNotRewriteUrls = $Request.Body.DoNotRewriteUrls + $AdminDisplayName = $Request.Body.AdminDisplayName + $CustomNotificationText = $Request.Body.CustomNotificationText + $EnableOrganizationBranding = $Request.Body.EnableOrganizationBranding + + # Extract rule settings from body + $Priority = $Request.Body.Priority + $Comments = $Request.Body.Comments + $State = $Request.Body.State + $RuleName = $Request.Body.RuleName + + # Extract recipient fields and handle different input formats + $SentTo = $Request.Body.SentTo + $SentToMemberOf = $Request.Body.SentToMemberOf + $RecipientDomainIs = $Request.Body.RecipientDomainIs + $ExceptIfSentTo = $Request.Body.ExceptIfSentTo + $ExceptIfSentToMemberOf = $Request.Body.ExceptIfSentToMemberOf + $ExceptIfRecipientDomainIs = $Request.Body.ExceptIfRecipientDomainIs + + function Test-PolicyExists { + param($TenantFilter, $PolicyName) + $ExistingPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksPolicy' -useSystemMailbox $true + return $ExistingPolicies | Where-Object { $_.Name -eq $PolicyName } + } + + function Test-RuleExists { + param($TenantFilter, $RuleName) + $ExistingRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksRule' -useSystemMailbox $true + return $ExistingRules | Where-Object { $_.Name -eq $RuleName } + } + + # Helper function to process array fields + function Process-ArrayField { + param ( + [Parameter(Mandatory = $false)] + $Field + ) + + if ($null -eq $Field) { return @() } + + # If already an array, process each item + if ($Field -is [array]) { + $result = [System.Collections.ArrayList]@() + foreach ($item in $Field) { + if ($item -is [string]) { + $result.Add($item) | Out-Null + } + elseif ($item -is [hashtable] -or $item -is [PSCustomObject]) { + # Extract value from object + if ($null -ne $item.value) { + $result.Add($item.value) | Out-Null + } + elseif ($null -ne $item.userPrincipalName) { + $result.Add($item.userPrincipalName) | Out-Null + } + elseif ($null -ne $item.id) { + $result.Add($item.id) | Out-Null + } + else { + $result.Add($item.ToString()) | Out-Null + } + } + else { + $result.Add($item.ToString()) | Out-Null + } + } + return $result.ToArray() + } + + # If it's a single object + if ($Field -is [hashtable] -or $Field -is [PSCustomObject]) { + if ($null -ne $Field.value) { return @($Field.value) } + if ($null -ne $Field.userPrincipalName) { return @($Field.userPrincipalName) } + if ($null -ne $Field.id) { return @($Field.id) } + } + + # If it's a string, return as an array with one item + if ($Field -is [string]) { + return @($Field) + } + + return @($Field) + } + + # Process all array fields + $SentTo = Process-ArrayField -Field $SentTo + $SentToMemberOf = Process-ArrayField -Field $SentToMemberOf + $RecipientDomainIs = Process-ArrayField -Field $RecipientDomainIs + $ExceptIfSentTo = Process-ArrayField -Field $ExceptIfSentTo + $ExceptIfSentToMemberOf = Process-ArrayField -Field $ExceptIfSentToMemberOf + $ExceptIfRecipientDomainIs = Process-ArrayField -Field $ExceptIfRecipientDomainIs + $DoNotRewriteUrls = Process-ArrayField -Field $DoNotRewriteUrls + + try { + # Check if policy already exists + if (Test-PolicyExists -TenantFilter $TenantFilter -PolicyName $PolicyName) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Policy '$PolicyName' already exists" -Sev 'Warning' + return "Policy '$PolicyName' already exists in tenant $TenantFilter" + } + + # Check if rule already exists + if (Test-RuleExists -TenantFilter $TenantFilter -RuleName $RuleName) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Rule '$RuleName' already exists" -Sev 'Warning' + return "Rule '$RuleName' already exists in tenant $TenantFilter" + } + + # Build command parameters for policy + $policyParams = @{ + Name = $PolicyName + } + + # Only add parameters that are explicitly provided + if ($null -ne $EnableSafeLinksForEmail) { $policyParams.Add('EnableSafeLinksForEmail', $EnableSafeLinksForEmail) } + if ($null -ne $EnableSafeLinksForTeams) { $policyParams.Add('EnableSafeLinksForTeams', $EnableSafeLinksForTeams) } + if ($null -ne $EnableSafeLinksForOffice) { $policyParams.Add('EnableSafeLinksForOffice', $EnableSafeLinksForOffice) } + if ($null -ne $TrackClicks) { $policyParams.Add('TrackClicks', $TrackClicks) } + if ($null -ne $AllowClickThrough) { $policyParams.Add('AllowClickThrough', $AllowClickThrough) } + if ($null -ne $ScanUrls) { $policyParams.Add('ScanUrls', $ScanUrls) } + if ($null -ne $EnableForInternalSenders) { $policyParams.Add('EnableForInternalSenders', $EnableForInternalSenders) } + if ($null -ne $DeliverMessageAfterScan) { $policyParams.Add('DeliverMessageAfterScan', $DeliverMessageAfterScan) } + if ($null -ne $DisableUrlRewrite) { $policyParams.Add('DisableUrlRewrite', $DisableUrlRewrite) } + if ($null -ne $DoNotRewriteUrls -and $DoNotRewriteUrls.Count -gt 0) { $policyParams.Add('DoNotRewriteUrls', $DoNotRewriteUrls) } + if ($null -ne $AdminDisplayName) { $policyParams.Add('AdminDisplayName', $AdminDisplayName) } + if ($null -ne $CustomNotificationText) { $policyParams.Add('CustomNotificationText', $CustomNotificationText) } + if ($null -ne $EnableOrganizationBranding) { $policyParams.Add('EnableOrganizationBranding', $EnableOrganizationBranding) } + + $ExoPolicyRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'New-SafeLinksPolicy' + cmdParams = $policyParams + useSystemMailbox = $true + } + + $null = New-ExoRequest @ExoPolicyRequestParam + $PolicyResult = "Successfully created new SafeLinks policy '$PolicyName'" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $PolicyResult -Sev 'Info' + + # Build command parameters for rule + $ruleParams = @{ + Name = $RuleName + SafeLinksPolicy = $PolicyName + } + + # Only add parameters that are explicitly provided + if ($null -ne $Priority) { $ruleParams.Add('Priority', $Priority) } + if ($null -ne $Comments) { $ruleParams.Add('Comments', $Comments) } + if ($null -ne $SentTo -and $SentTo.Count -gt 0) { $ruleParams.Add('SentTo', $SentTo) } + if ($null -ne $SentToMemberOf -and $SentToMemberOf.Count -gt 0) { $ruleParams.Add('SentToMemberOf', $SentToMemberOf) } + if ($null -ne $RecipientDomainIs -and $RecipientDomainIs.Count -gt 0) { $ruleParams.Add('RecipientDomainIs', $RecipientDomainIs) } + if ($null -ne $ExceptIfSentTo -and $ExceptIfSentTo.Count -gt 0) { $ruleParams.Add('ExceptIfSentTo', $ExceptIfSentTo) } + if ($null -ne $ExceptIfSentToMemberOf -and $ExceptIfSentToMemberOf.Count -gt 0) { $ruleParams.Add('ExceptIfSentToMemberOf', $ExceptIfSentToMemberOf) } + if ($null -ne $ExceptIfRecipientDomainIs -and $ExceptIfRecipientDomainIs.Count -gt 0) { $ruleParams.Add('ExceptIfRecipientDomainIs', $ExceptIfRecipientDomainIs) } + + $ExoRuleRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'New-SafeLinksRule' + cmdParams = $ruleParams + useSystemMailbox = $true + } + + $null = New-ExoRequest @ExoRuleRequestParam + + # If State is specified, enable or disable the rule + if ($null -ne $State) { + $EnableCmdlet = $State ? 'Enable-SafeLinksRule' : 'Disable-SafeLinksRule' + $EnableRequestParam = @{ + tenantid = $TenantFilter + cmdlet = $EnableCmdlet + cmdParams = @{ + Identity = $RuleName + } + useSystemMailbox = $true + } + + $null = New-ExoRequest @EnableRequestParam + } + + $RuleResult = "Successfully created new SafeLinks rule '$RuleName'" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $RuleResult -Sev 'Info' + + $Result = "Successfully created new SafeLinks policy '$PolicyName'and rule '$RuleName'" + $StatusCode = [HttpStatusCode]::OK + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed creating new SafeLinks policy '$PolicyName'and rule '$RuleName'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicy.ps1 new file mode 100644 index 000000000000..8c4ec6595652 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicy.ps1 @@ -0,0 +1,199 @@ +Function Invoke-ListSafeLinksPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.SafeLinksPolicy.Read + .DESCRIPTION + This function is used to list the Safe Links policies in the tenant, including unmatched rules and policies. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Tenantfilter = $request.Query.tenantfilter + + try { + $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-SafeLinksPolicy' | Select-Object -Property * -ExcludeProperty '*@odata.type' , '*@data.type' + $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-SafeLinksRule' | Select-Object -Property * -ExcludeProperty '*@odata.type' , '*@data.type' + $BuiltInRules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-EOPProtectionPolicyRule' | Select-Object -Property * -ExcludeProperty '*@odata.type' , '*@data.type' + + # Track matched items to identify orphans + $MatchedRules = [System.Collections.Generic.HashSet[string]]::new() + $MatchedPolicies = [System.Collections.Generic.HashSet[string]]::new() + $MatchedBuiltInRules = [System.Collections.Generic.HashSet[string]]::new() + $Output = [System.Collections.Generic.List[PSCustomObject]]::new() + + # First pass: Process policies with their associated rules + foreach ($policy in $Policies) { + $policyName = $policy.Name + $MatchedPolicies.Add($policyName) | Out-Null + + # Find associated rule (single lookup per policy) + $associatedRule = $null + foreach ($rule in $Rules) { + if ($rule.SafeLinksPolicy -eq $policyName) { + $associatedRule = $rule + $MatchedRules.Add($rule.Name) | Out-Null + break + } + } + + # Find matching built-in rule (single lookup per policy) + $matchingBuiltInRule = $null + foreach ($builtInRule in $BuiltInRules) { + if ($policyName -like "$($builtInRule.Name)*") { + $matchingBuiltInRule = $builtInRule + $MatchedBuiltInRules.Add($builtInRule.Name) | Out-Null + break + } + } + + # Create output object for matched policy + $OutputItem = [PSCustomObject]@{ + # Copy all original policy properties + Name = $policy.Name + AdminDisplayName = $policy.AdminDisplayName + EnableSafeLinksForEmail = $policy.EnableSafeLinksForEmail + EnableSafeLinksForTeams = $policy.EnableSafeLinksForTeams + EnableSafeLinksForOffice = $policy.EnableSafeLinksForOffice + TrackClicks = $policy.TrackClicks + AllowClickThrough = $policy.AllowClickThrough + ScanUrls = $policy.ScanUrls + EnableForInternalSenders = $policy.EnableForInternalSenders + DeliverMessageAfterScan = $policy.DeliverMessageAfterScan + DisableUrlRewrite = $policy.DisableUrlRewrite + DoNotRewriteUrls = $policy.DoNotRewriteUrls + CustomNotificationText = $policy.CustomNotificationText + EnableOrganizationBranding = $policy.EnableOrganizationBranding + + # Calculated properties + PolicyName = $policyName + RuleName = $associatedRule.Name + Priority = if ($matchingBuiltInRule) { $matchingBuiltInRule.Priority } else { $associatedRule.Priority } + State = if ($matchingBuiltInRule) { $matchingBuiltInRule.State } else { $associatedRule.State } + SentTo = $associatedRule.SentTo + SentToMemberOf = $associatedRule.SentToMemberOf + RecipientDomainIs = $associatedRule.RecipientDomainIs + ExceptIfSentTo = $associatedRule.ExceptIfSentTo + ExceptIfSentToMemberOf = $associatedRule.ExceptIfSentToMemberOf + ExceptIfRecipientDomainIs = $associatedRule.ExceptIfRecipientDomainIs + Description = $policy.AdminDisplayName + IsBuiltIn = ($matchingBuiltInRule -ne $null) + IsValid = $policy.IsValid + ConfigurationStatus = if ($associatedRule) { "Complete" } else { "Policy Only (Missing Rule)" } + } + $Output.Add($OutputItem) + } + + # Second pass: Add unmatched rules (orphaned rules without policies) + foreach ($rule in $Rules) { + if (-not $MatchedRules.Contains($rule.Name)) { + # This rule doesn't have a matching policy + $OutputItem = [PSCustomObject]@{ + # Policy properties (null since no policy exists) + Name = $null + AdminDisplayName = $null + EnableSafeLinksForEmail = $null + EnableSafeLinksForTeams = $null + EnableSafeLinksForOffice = $null + TrackClicks = $null + AllowClickThrough = $null + ScanUrls = $null + EnableForInternalSenders = $null + DeliverMessageAfterScan = $null + DisableUrlRewrite = $null + DoNotRewriteUrls = $null + CustomNotificationText = $null + EnableOrganizationBranding = $null + + # Rule properties + PolicyName = $rule.SafeLinksPolicy + RuleName = $rule.Name + Priority = $rule.Priority + State = $rule.State + SentTo = $rule.SentTo + SentToMemberOf = $rule.SentToMemberOf + RecipientDomainIs = $rule.RecipientDomainIs + ExceptIfSentTo = $rule.ExceptIfSentTo + ExceptIfSentToMemberOf = $rule.ExceptIfSentToMemberOf + ExceptIfRecipientDomainIs = $rule.ExceptIfRecipientDomainIs + Description = $rule.Comments + IsBuiltIn = $false + ConfigurationStatus = "Rule Only (Missing Policy: $($rule.SafeLinksPolicy))" + } + $Output.Add($OutputItem) + } + } + + # Third pass: Add unmatched built-in rules + foreach ($builtInRule in $BuiltInRules) { + if (-not $MatchedBuiltInRules.Contains($builtInRule.Name)) { + # Check if this built-in rule might be SafeLinks related + if ($builtInRule.Name -like "*SafeLinks*" -or $builtInRule.Name -like "*Safe*Links*") { + $OutputItem = [PSCustomObject]@{ + # Policy properties (null since no policy exists) + Name = $null + AdminDisplayName = $null + EnableSafeLinksForEmail = $null + EnableSafeLinksForTeams = $null + EnableSafeLinksForOffice = $null + TrackClicks = $null + AllowClickThrough = $null + ScanUrls = $null + EnableForInternalSenders = $null + DeliverMessageAfterScan = $null + DisableUrlRewrite = $null + DoNotRewriteUrls = $null + CustomNotificationText = $null + EnableOrganizationBranding = $null + + # Built-in rule properties + PolicyName = $null + RuleName = $builtInRule.Name + Priority = $builtInRule.Priority + State = $builtInRule.State + SentTo = $builtInRule.SentTo + SentToMemberOf = $builtInRule.SentToMemberOf + RecipientDomainIs = $builtInRule.RecipientDomainIs + ExceptIfSentTo = $builtInRule.ExceptIfSentTo + ExceptIfSentToMemberOf = $builtInRule.ExceptIfSentToMemberOf + ExceptIfRecipientDomainIs = $builtInRule.ExceptIfRecipientDomainIs + Description = $builtInRule.Comments + IsBuiltIn = $true + ConfigurationStatus = "Built-In Rule Only (No Associated Policy)" + } + $Output.Add($OutputItem) + } + } + } + + # Sort output by ConfigurationStatus and Name for better organization + $SortedOutput = $Output.ToArray() | Sort-Object ConfigurationStatus, Name, RuleName + + # Generate summary statistics + $CompleteConfigs = ($SortedOutput | Where-Object { $_.ConfigurationStatus -eq "Complete" }).Count + $PolicyOnlyConfigs = ($SortedOutput | Where-Object { $_.ConfigurationStatus -like "*Policy Only*" }).Count + $RuleOnlyConfigs = ($SortedOutput | Where-Object { $_.ConfigurationStatus -like "*Rule Only*" }).Count + $BuiltInOnlyConfigs = ($SortedOutput | Where-Object { $_.ConfigurationStatus -like "*Built-In Rule Only*" }).Count + + if ($PolicyOnlyConfigs -gt 0 -or $RuleOnlyConfigs -gt 0) { + Write-LogMessage -headers $Headers -API $APIName -message "Found $($PolicyOnlyConfigs + $RuleOnlyConfigs) orphaned SafeLinks configurations that may need attention" -Sev 'Warning' + } + + $StatusCode = [HttpStatusCode]::OK + $FinalOutput = $SortedOutput + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -headers $Headers -API $APIName -message "Error retrieving Safe Links policies: $ErrorMessage" -Sev 'Error' + $StatusCode = [HttpStatusCode]::Forbidden + $FinalOutput = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $FinalOutput + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyDetails.ps1 new file mode 100644 index 000000000000..89840a6a07ed --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyDetails.ps1 @@ -0,0 +1,104 @@ +function Invoke-ListSafeLinksPolicyDetails { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + .DESCRIPTION + This function retrieves details for a specific Safe Links policy and rule. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $PolicyName = $Request.Query.PolicyName ?? $Request.Body.PolicyName + $RuleName = $Request.Query.RuleName ?? $Request.Body.RuleName + + $Result = @{} + $LogMessages = [System.Collections.ArrayList]@() + + try { + # Get policy details if PolicyName is provided + if ($PolicyName) { + try { + $PolicyRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'Get-SafeLinksPolicy' + cmdParams = @{ + Identity = $PolicyName + } + useSystemMailbox = $true + } + $PolicyDetails = New-ExoRequest @PolicyRequestParam + $Result.Policy = $PolicyDetails + $Result.PolicyName = $PolicyDetails.Name + $LogMessages.Add("Successfully retrieved details for SafeLinks policy '$PolicyName'") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully retrieved details for SafeLinks policy '$PolicyName'" -Sev 'Info' + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $LogMessages.Add("Failed to retrieve details for SafeLinks policy '$PolicyName'. Error: $($ErrorMessage.NormalizedError)") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to retrieve details for SafeLinks policy '$PolicyName'. Error: $($ErrorMessage.NormalizedError)" -Sev 'Warning' + $Result.PolicyError = "Failed to retrieve: $($ErrorMessage.NormalizedError)" + } + } + else { + $LogMessages.Add("No policy name provided, skipping policy retrieval") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "No policy name provided, skipping policy retrieval" -Sev 'Info' + } + + # Get rule details if RuleName is provided + if ($RuleName) { + try { + $RuleRequestParam = @{ + tenantid = $TenantFilter + cmdlet = 'Get-SafeLinksRule' + cmdParams = @{ + Identity = $RuleName + } + useSystemMailbox = $true + } + $RuleDetails = New-ExoRequest @RuleRequestParam + $Result.Rule = $RuleDetails + $Result.RuleName = $RuleDetails.Name + $LogMessages.Add("Successfully retrieved details for SafeLinks rule '$RuleName'") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully retrieved details for SafeLinks rule '$RuleName'" -Sev 'Info' + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $LogMessages.Add("Failed to retrieve details for SafeLinks rule '$RuleName'. Error: $($ErrorMessage.NormalizedError)") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to retrieve details for SafeLinks rule '$RuleName'. Error: $($ErrorMessage.NormalizedError)" -Sev 'Warning' + $Result.RuleError = "Failed to retrieve: $($ErrorMessage.NormalizedError)" + } + } + else { + $LogMessages.Add("No rule name provided, skipping rule retrieval") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "No rule name provided, skipping rule retrieval" -Sev 'Info' + } + + # If no valid retrievals were performed, throw an error + if (-not ($Result.Policy -or $Result.Rule)) { + throw "No valid policy or rule details could be retrieved" + } + + # Set success status + $StatusCode = [HttpStatusCode]::OK + $Result.Message = $LogMessages -join " | " + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Operation failed: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplateDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplateDetails.ps1 new file mode 100644 index 000000000000..bcec6caaaac9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplateDetails.ps1 @@ -0,0 +1,55 @@ +Function Invoke-ListSafeLinksPolicyTemplateDetails { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.SafeLinks.Read + .DESCRIPTION + This function retrieves details for a specific Safe Links policy template. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Get the template ID from query parameters + $ID = $Request.Query.ID ?? $Request.Body.ID + + $Result = @{} + + try { + if (-not $ID) { + throw "Template ID is required" + } + + # Get the specific template from Azure Table Storage + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'SafeLinksTemplate' and RowKey eq '$ID'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (-not $Template) { + throw "Template with ID '$ID' not found" + } + + # Parse the JSON data and add metadata + $TemplateData = $Template.JSON | ConvertFrom-Json + $TemplateData | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $Template.RowKey -Force + + $Result = $TemplateData + $StatusCode = [HttpStatusCode]::OK + Write-LogMessage -headers $Headers -API $APIName -message "Successfully retrieved template details for ID '$ID'" -Sev 'Info' + } + catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to retrieve template details for ID '$ID'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplates.ps1 new file mode 100644 index 000000000000..497c24c79692 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-ListSafeLinksPolicyTemplates.ps1 @@ -0,0 +1,34 @@ +Function Invoke-ListSafeLinksPolicyTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.SafeLinks.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'templates' + $Templates = Get-ChildItem 'Config\*.SafeLinksTemplate.json' | ForEach-Object { + $Entity = @{ + JSON = "$(Get-Content $_)" + RowKey = "$($_.name)" + PartitionKey = 'SafeLinksTemplate' + GUID = "$($_.name)" + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + } + #List policies + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'SafeLinksTemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $GUID = $_.RowKey + $data = $_.JSON | ConvertFrom-Json + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID + $data + } + if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property RowKey -EQ $Request.query.id } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-RemoveSafeLinksPolicyTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-RemoveSafeLinksPolicyTemplate.ps1 new file mode 100644 index 000000000000..7d3b56d5b195 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Security/Safe-Links-Policy/Invoke-RemoveSafeLinksPolicyTemplate.ps1 @@ -0,0 +1,32 @@ +Function Invoke-RemoveSafeLinksPolicyTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Exchange.SafeLinks.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $User = $Request.Headers + Write-LogMessage -Headers $User -API $APINAME -message 'Accessed this API' -Sev 'Debug' + $ID = $request.query.ID ?? $request.body.ID + try { + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'SafeLinksTemplate' and RowKey eq '$id'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed SafeLinks Policy Template with ID $ID." + Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove SafeLinks Policy template with ID $ID. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $User -API $APINAME -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSite.ps1 new file mode 100644 index 000000000000..217ee9c22dbe --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSite.ps1 @@ -0,0 +1,31 @@ +function Invoke-AddSite { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $SharePointObj = $Request.Body + + try { + $Result = New-CIPPSharepointSite -Headers $Headers -SiteName $SharePointObj.siteName -SiteDescription $SharePointObj.siteDescription -SiteOwner $SharePointObj.siteOwner.value -TemplateName $SharePointObj.templateName.value -SiteDesign $SharePointObj.siteDesign.value -SensitivityLabel $SharePointObj.sensitivityLabel -TenantFilter $TenantFilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $StatusCode = [HttpStatusCode]::InternalServerError + $Result = $_.Exception.Message + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSiteBulk.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSiteBulk.ps1 new file mode 100644 index 000000000000..4be0abc11733 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddSiteBulk.ps1 @@ -0,0 +1,29 @@ +Function Invoke-AddSiteBulk { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + + $Results = [System.Collections.Generic.List[System.Object]]::new() + + foreach ($sharePointObj in $Request.Body.bulkSites) { + try { + $SharePointSite = New-CIPPSharepointSite -Headers $Headers -SiteName $sharePointObj.siteName -SiteDescription $sharePointObj.siteDescription -SiteOwner $sharePointObj.siteOwner -TemplateName $sharePointObj.templateName -SiteDesign $sharePointObj.siteDesign -SensitivityLabel $sharePointObj.sensitivityLabel -TenantFilter $Request.body.tenantFilter + $Results.Add($SharePointSite) + } catch { + $Results.Add("Failed to create $($sharePointObj.siteName) Error message: $($_.Exception.Message)") + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddTeam.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddTeam.ps1 new file mode 100644 index 000000000000..13d4360dfd89 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-AddTeam.ps1 @@ -0,0 +1,61 @@ +Function Invoke-AddTeam { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Teams.Group.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with the body of the request + $TeamObj = $Request.Body + $TenantID = $TeamObj.tenantid + + $Owners = ($TeamObj.owner) + try { + if ($null -eq $Owners) { + throw 'You have to add at least one owner to the team' + } + $Owners = $Owners | ForEach-Object { + $OwnerID = "https://graph.microsoft.com/beta/users('$($_)')" + @{ + '@odata.type' = '#microsoft.graph.aadUserConversationMember' + 'roles' = @('owner') + 'user@odata.bind' = $OwnerID + } + } + + $TeamsSettings = [PSCustomObject]@{ + 'template@odata.bind' = "https://graph.microsoft.com/v1.0/teamsTemplates('standard')" + 'visibility' = $TeamObj.visibility + 'displayName' = $TeamObj.displayName + 'description' = $TeamObj.description + 'members' = @($Owners) + + } | ConvertTo-Json -Depth 10 + # Write-Host $TeamsSettings + + $null = New-GraphPostRequest -AsApp $true -uri 'https://graph.microsoft.com/beta/teams' -tenantid $TenantID -type POST -body $TeamsSettings -Verbose + $Message = "Successfully created Team: '$($TeamObj.displayName)'" + Write-LogMessage -headers $Headers -API $APINAME -tenant $TenantID -message $Message -Sev Info + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to create Team: '$($TeamObj.displayName)'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APINAME -tenant $TenantID -message $Message -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = $Message } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 new file mode 100644 index 000000000000..01a8dca2ccf6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 @@ -0,0 +1,89 @@ +function Invoke-DeleteSharepointSite { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $SiteId = $Request.Body.SiteId + + try { + # Validate required parameters + if (-not $SiteId) { + throw "SiteId is required" + } + if (-not $TenantFilter) { + throw "TenantFilter is required" + } + + # Validate SiteId format (GUID) + if ($SiteId -notmatch '^(\{)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(\})?$') { + throw "SiteId must be a valid GUID" + } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + + # Get site information using SharePoint admin API + $SiteInfoUri = "$($SharePointInfo.AdminUrl)/_api/SPO.Tenant/sites('$SiteId')" + + # Add the headers that SharePoint REST API expects + $ExtraHeaders = @{ + 'accept' = 'application/json' + 'content-type' = 'application/json' + 'odata-version' = '4.0' + } + + $SiteInfo = New-GraphGETRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri $SiteInfoUri -tenantid $TenantFilter -extraHeaders $ExtraHeaders + + if (-not $SiteInfo) { + throw "Could not retrieve site information from SharePoint Admin API" + } + + # Determine if site is group-connected based on GroupId + $IsGroupConnected = $SiteInfo.GroupId -and $SiteInfo.GroupId -ne "00000000-0000-0000-0000-000000000000" + + if ($IsGroupConnected) { + # Use GroupSiteManager/Delete for group-connected sites + $body = @{ + siteUrl = $SiteInfo.Url + } + $DeleteUri = "$($SharePointInfo.AdminUrl)/_api/GroupSiteManager/Delete" + } else { + # Use SPSiteManager/delete for regular sites + $body = @{ + siteId = $SiteId + } + $DeleteUri = "$($SharePointInfo.AdminUrl)/_api/SPSiteManager/delete" + } + + # Execute the deletion + $DeleteResult = New-GraphPOSTRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri $DeleteUri -body (ConvertTo-Json -Depth 10 -InputObject $body) -tenantid $TenantFilter -extraHeaders $ExtraHeaders + + $SiteTypeMsg = if ($IsGroupConnected) { "group-connected" } else { "regular" } + $Results = "Successfully initiated deletion of $SiteTypeMsg SharePoint site with ID $SiteId, this process can take some time to complete in the background" + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to delete SharePoint site with ID $SiteId. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + # Associate values to output bindings + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 new file mode 100644 index 000000000000..83e3d96a5f1f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 @@ -0,0 +1,36 @@ +Function Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Teams.Voice.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $AssignedTo = $Request.Body.AssignedTo + $PhoneNumber = $Request.Body.PhoneNumber + $PhoneNumberType = $Request.Body.PhoneNumberType + + try { + $null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Remove-CsPhoneNumberAssignment' -CmdParams @{Identity = $AssignedTo; PhoneNumber = $PhoneNumber; PhoneNumberType = $PhoneNumberType; ErrorAction = 'Stop' } + $Result = "Successfully unassigned $PhoneNumber from $AssignedTo" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to unassign $PhoneNumber from $AssignedTo. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 new file mode 100644 index 000000000000..1949aac407b2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 @@ -0,0 +1,46 @@ +function Invoke-ExecSetSharePointMember { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + + try { + if ($Request.Body.SharePointType -eq 'Group') { + if ($Request.Body.GroupID -match '^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$') { + $GroupId = $Request.Body.GroupID + } else { + $GroupId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=mail eq '$($Request.Body.GroupID)' or proxyAddresses/any(x:endsWith(x,'$($Request.Body.GroupID)')) or mailNickname eq '$($Request.Body.GroupID)'" -ComplexFilter -tenantid $TenantFilter).id + } + + if ($Request.Body.Add -eq $true) { + $Results = Add-CIPPGroupMember -GroupType 'Team' -GroupID $GroupID -Member $Request.Body.user.value -TenantFilter $TenantFilter -Headers $Headers + } else { + $UserID = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.Body.user.value)" -tenantid $TenantFilter).id + $Results = Remove-CIPPGroupMember -GroupType 'Team' -GroupID $GroupID -Member $UserID -TenantFilter $TenantFilter -Headers $Headers + } + $StatusCode = [HttpStatusCode]::OK + } else { + $StatusCode = [HttpStatusCode]::BadRequest + $Results = 'This type of SharePoint site is not supported.' + } + } catch { + $Results = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointPerms.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointPerms.ps1 new file mode 100644 index 000000000000..6e2ba7e270c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointPerms.ps1 @@ -0,0 +1,52 @@ +Function Invoke-ExecSharePointPerms { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + Write-LogMessage -Headers $Headers -API $APIName -message 'Accessed this API' -Sev Debug + + $TenantFilter = $Request.Body.tenantFilter + + Write-Host '====================================' + Write-Host 'Request Body:' + Write-Host (ConvertTo-Json $Request.body -Depth 10) + Write-Host '====================================' + + + # The UPN or ID of the users OneDrive we are changing permissions on + $UserId = $Request.Body.UPN + # The UPN of the user we are adding or removing permissions for + $OnedriveAccessUser = $Request.Body.onedriveAccessUser.value ?? $Request.Body.user.value + $URL = $Request.Body.URL + $RemovePermission = $Request.Body.RemovePermission + + try { + + $State = Set-CIPPSharePointPerms -tenantFilter $TenantFilter ` + -UserId $UserId ` + -OnedriveAccessUser $OnedriveAccessUser ` + -Headers $Headers ` + -APIName $APIName ` + -RemovePermission $RemovePermission ` + -URL $URL + $Result = "$State" + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = $_.Exception.Message + $Result = "Failed. Error: $ErrorMessage" + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 new file mode 100644 index 000000000000..94097e2f46ec --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 @@ -0,0 +1,37 @@ +Function Invoke-ExecTeamsVoicePhoneNumberAssignment { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Teams.Voice.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Identity = $Request.Body.input.value + + $tenantFilter = $Request.Body.TenantFilter + try { + if ($Request.Body.locationOnly) { + $null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Set-CsPhoneNumberAssignment' -CmdParams @{LocationId = $Identity; PhoneNumber = $Request.Body.PhoneNumber; ErrorAction = 'stop' } + $Results = [pscustomobject]@{'Results' = "Successfully assigned emergency location to $($Request.Body.PhoneNumber)" } + } else { + $null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Set-CsPhoneNumberAssignment' -CmdParams @{Identity = $Identity; PhoneNumber = $Request.Body.PhoneNumber; PhoneNumberType = $Request.Body.PhoneNumberType; ErrorAction = 'stop' } + $Results = [pscustomobject]@{'Results' = "Successfully assigned $($Request.Body.PhoneNumber) to $($Identity)" } + } + Write-LogMessage -Headers $Headers -API $APINAME -tenant $($TenantFilter) -message $($Results.Results) -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = [pscustomobject]@{'Results' = $ErrorMessage.NormalizedError } + Write-LogMessage -Headers $Headers -API $APINAME -tenant $($TenantFilter) -message $($Results.Results) -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 new file mode 100644 index 000000000000..baa4e97d3fd0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 @@ -0,0 +1,50 @@ +function Invoke-ListSharepointAdminUrl { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param( + $Request, + $TriggerMetadata + ) + + if ($Request.Query.TenantFilter) { + $TenantFilter = $Request.Query.TenantFilter + + $Tenant = Get-Tenants -TenantFilter $TenantFilter + + if ($Tenant.SharepointAdminUrl) { + $AdminUrl = $Tenant.SharepointAdminUrl + } else { + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Tenant | Add-Member -MemberType NoteProperty -Name SharepointAdminUrl -Value $SharePointInfo.AdminUrl + $Table = Get-CIPPTable -TableName 'Tenants' + Add-CIPPAzDataTableEntity @Table -Entity $Tenant -Force + $AdminUrl = $SharePointInfo.AdminUrl + } + + if ($Request.Query.ReturnUrl) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + AdminUrl = $AdminUrl + } + }) + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Found + Headers = @{ + Location = $AdminUrl + } + }) + } + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'TenantFilter is required' + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointQuota.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointQuota.ps1 new file mode 100644 index 000000000000..1f2a94f7ed26 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointQuota.ps1 @@ -0,0 +1,45 @@ +Function Invoke-ListSharepointQuota { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Admin.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + if ($TenantFilter -eq 'AllTenants') { + $UsedStoragePercentage = 'Not Supported' + } else { + try { + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $extraHeaders = @{ + 'Accept' = 'application/json' + } + $SharePointQuota = (New-GraphGetRequest -extraHeaders $extraHeaders -scope "$($SharePointInfo.AdminUrl)/.default" -tenantid $TenantFilter -uri "$($SharePointInfo.AdminUrl)/_api/StorageQuotas()?api-version=1.3.2") | Sort-Object -Property GeoUsedStorageMB -Descending | Select-Object -First 1 + + if ($SharePointQuota) { + $UsedStoragePercentage = [int](($SharePointQuota.GeoUsedStorageMB / $SharePointQuota.TenantStorageMB) * 100) + } + } catch { + $UsedStoragePercentage = 'Not available' + } + } + + $SharePointQuotaDetails = @{ + GeoUsedStorageMB = $SharePointQuota.GeoUsedStorageMB + TenantStorageMB = $SharePointQuota.TenantStorageMB + Percentage = $UsedStoragePercentage + Dashboard = "$($UsedStoragePercentage) / 100" + } + + $StatusCode = [HttpStatusCode]::OK + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $SharePointQuotaDetails + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointSettings.ps1 new file mode 100644 index 000000000000..2b7d22e5849f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointSettings.ps1 @@ -0,0 +1,22 @@ +Function Invoke-ListSharepointSettings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Admin.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # XXX - Seems to be an unused endpoint? -Bobby + + + # Interact with query parameters or the body of the request. + $Tenant = $Request.Query.tenantFilter + $Request = New-GraphGetRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Request) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 new file mode 100644 index 000000000000..dd112c3f16ec --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSites.ps1 @@ -0,0 +1,118 @@ +function Invoke-ListSites { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + $TenantFilter = $Request.Query.TenantFilter + $Type = $Request.Query.Type + $UserUPN = $Request.Query.UserUPN + + if (!$TenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'TenantFilter is required' + }) + } + + if (!$Type) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'Type is required' + }) + } + + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $TenantId = $Tenant.customerId + + if ($Type -eq 'SharePointSiteUsage') { + $Filter = 'isPersonalSite eq false' + } else { + $Filter = 'isPersonalSite eq true' + } + + try { + $BulkRequests = @( + @{ + id = 'listAllSites' + method = 'GET' + url = "sites/getAllSites?`$filter=$($Filter)&`$select=id,createdDateTime,description,name,displayName,isPersonalSite,lastModifiedDateTime,webUrl,siteCollection,sharepointIds&`$top=999" + } + @{ + id = 'usage' + method = 'GET' + url = "reports/get$($type)Detail(period='D7')?`$format=application/json&`$top=999" + } + ) + + $Result = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($BulkRequests) -asapp $true + $Sites = ($Result | Where-Object { $_.id -eq 'listAllSites' }).body.value + $UsageBase64 = ($Result | Where-Object { $_.id -eq 'usage' }).body + $UsageJson = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($UsageBase64)) + $Usage = ($UsageJson | ConvertFrom-Json).value + + $GraphRequest = foreach ($Site in $Sites) { + $SiteUsage = $Usage | Where-Object { $_.siteId -eq $Site.sharepointIds.siteId } + [PSCustomObject]@{ + siteId = $Site.sharepointIds.siteId + webId = $Site.sharepointIds.webId + createdDateTime = $Site.createdDateTime + displayName = $Site.displayName + webUrl = $Site.webUrl + ownerDisplayName = $SiteUsage.ownerDisplayName + ownerPrincipalName = $SiteUsage.ownerPrincipalName + lastActivityDate = $SiteUsage.lastActivityDate + fileCount = $SiteUsage.fileCount + storageUsedInGigabytes = [math]::round($SiteUsage.storageUsedInBytes / 1GB, 2) + storageAllocatedInGigabytes = [math]::round($SiteUsage.storageAllocatedInBytes / 1GB, 2) + storageUsedInBytes = $SiteUsage.storageUsedInBytes + storageAllocatedInBytes = $SiteUsage.storageAllocatedInBytes + rootWebTemplate = $SiteUsage.rootWebTemplate + reportRefreshDate = $SiteUsage.reportRefreshDate + AutoMapUrl = '' + } + } + + $int = 0 + if ($Type -eq 'SharePointSiteUsage') { + $Requests = foreach ($Site in $GraphRequest) { + @{ + id = $int++ + method = 'GET' + url = "sites/$($Site.siteId)/lists?`$select=id,name,list,parentReference" + } + } + try { + $Requests = (New-GraphBulkRequest -tenantid $TenantFilter -scope 'https://graph.microsoft.com/.default' -Requests @($Requests) -asapp $true).body.value | Where-Object { $_.list.template -eq 'DocumentLibrary' } + } catch { + Write-LogMessage -Headers $Headers -Message "Error getting auto map urls: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter -API 'ListSites' -LogData (Get-CippException -Exception $_) + } + $GraphRequest = foreach ($Site in $GraphRequest) { + $ListId = ($Requests | Where-Object { $_.parentReference.siteId -like "*$($Site.siteId)*" }).id + $site.AutoMapUrl = "tenantId=$($TenantId)&webId={$($Site.webId)}&siteid={$($Site.siteId)}&webUrl=$($Site.webUrl)&listId={$($ListId)}" + $site + } + } + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + if ($Request.query.URLOnly -eq 'true') { + $GraphRequest = $GraphRequest | Where-Object { $null -ne $_.webUrl } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest | Sort-Object -Property displayName) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeams.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeams.ps1 new file mode 100644 index 000000000000..84ed3122bb6b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeams.ps1 @@ -0,0 +1,41 @@ +Function Invoke-ListTeams { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Teams.Group.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + if ($request.query.type -eq 'List') { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=resourceProvisioningOptions/Any(x:x eq 'Team')&`$select=id,displayName,description,visibility,mailNickname" -tenantid $TenantFilter | Sort-Object -Property displayName + } + $TeamID = $request.query.ID + Write-Host $TeamID + if ($request.query.type -eq 'Team') { + $Team = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/teams/$($TeamID)" -tenantid $TenantFilter -asapp $true + $Channels = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/teams/$($TeamID)/Channels" -tenantid $TenantFilter -asapp $true + $UserList = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/teams/$($TeamID)/Members" -tenantid $TenantFilter -asapp $true + $AppsList = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/teams/$($TeamID)/installedApps?`$expand=teamsAppDefinition" -tenantid $TenantFilter -asapp $true + + $Owners = $UserList | Where-Object -Property Roles -EQ 'Owner' + $Members = $UserList | Where-Object -Property email -NotIn $owners.email + $GraphRequest = [PSCustomObject]@{ + Name = $team.DisplayName + TeamInfo = @($team) + ChannelInfo = @($channels) + Members = @($Members) + Owners = @($owners) + InstalledApps = @($AppsList) + } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsActivity.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsActivity.ps1 new file mode 100644 index 000000000000..5b1a64f73f03 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsActivity.ps1 @@ -0,0 +1,24 @@ +Function Invoke-ListTeamsActivity { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Teams.Activity.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $type = $request.Query.Type + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/get$($type)Detail(period='D30')" -tenantid $TenantFilter | ConvertFrom-Csv | Select-Object @{ Name = 'UPN'; Expression = { $_.'User Principal Name' } }, + @{ Name = 'LastActive'; Expression = { $_.'Last Activity Date' } }, + @{ Name = 'TeamsChat'; Expression = { $_.'Team Chat Message Count' } }, + @{ Name = 'CallCount'; Expression = { $_.'Call Count' } }, + @{ Name = 'MeetingCount'; Expression = { $_.'Meeting Count' } } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 new file mode 100644 index 000000000000..8e58755752c5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 @@ -0,0 +1,24 @@ +Function Invoke-ListTeamsLisLocation { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Teams.Voice.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Query.TenantFilter + try { + $EmergencyLocations = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsOnlineLisLocation' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $EmergencyLocations = $ErrorMessage + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($EmergencyLocations) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 new file mode 100644 index 000000000000..0b1082469a00 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 @@ -0,0 +1,46 @@ +function Invoke-ListTeamsVoice { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Teams.Voice.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $TenantId = (Get-Tenants -TenantFilter $TenantFilter).customerId + try { + $Users = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=id,userPrincipalName,displayName" -tenantid $TenantFilter) + $Skip = 0 + $GraphRequest = do { + Write-Host "Getting page $Skip" + $Results = New-TeamsAPIGetRequest -uri "https://api.interfaces.records.teams.microsoft.com/Skype.TelephoneNumberMgmt/Tenants/$($TenantId)/telephone-numbers?skip=$($Skip)&locale=en-US&top=999" -tenantid $TenantFilter + #Write-Information ($Results | ConvertTo-Json -Depth 10) + $data = $Results.TelephoneNumbers | ForEach-Object { + $CompleteRequest = $_ | Select-Object *, @{Name = 'AssignedTo'; Expression = { $users | Where-Object -Property id -EQ $_.TargetId } } + if ($CompleteRequest.AcquisitionDate) { + $CompleteRequest.AcquisitionDate = $_.AcquisitionDate -split 'T' | Select-Object -First 1 + } else { + $CompleteRequest | Add-Member -NotePropertyName 'AcquisitionDate' -NotePropertyValue 'Unknown' -Force + } + $CompleteRequest.AssignedTo ? $null : ($CompleteRequest | Add-Member -NotePropertyName 'AssignedTo' -NotePropertyValue 'Unassigned' -Force) + $CompleteRequest + } + $Skip = $Skip + 999 + $Data + } while ($data.Count -eq 999) + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + Write-Host "Graph request is: $($GraphRequest)" + Write-Host 'Returning the response' + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest | Where-Object { $_.TelephoneNumber }) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddAlert.ps1 new file mode 100644 index 000000000000..a683b153c508 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddAlert.ps1 @@ -0,0 +1,36 @@ +Function Invoke-AddAlert { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $Tenants = $Request.Body.tenantFilter + $Conditions = $Request.Body.conditions | ConvertTo-Json -Compress -Depth 10 | Out-String + $TenantsJson = $Tenants | ConvertTo-Json -Compress -Depth 10 | Out-String + $excludedTenantsJson = $Request.Body.excludedTenants | ConvertTo-Json -Compress -Depth 10 | Out-String + $Actions = $Request.Body.actions | ConvertTo-Json -Compress -Depth 10 | Out-String + $RowKey = $Request.Body.RowKey ? $Request.Body.RowKey : (New-Guid).ToString() + $CompleteObject = @{ + Tenants = [string]$TenantsJson + excludedTenants = [string]$excludedTenantsJson + Conditions = [string]$Conditions + Actions = [string]$Actions + type = $Request.Body.logbook.value + RowKey = $RowKey + PartitionKey = 'Webhookv2' + AlertComment = [string]$Request.Body.AlertComment + } + $WebhookTable = Get-CippTable -TableName 'WebhookRules' + Add-CIPPAzDataTableEntity @WebhookTable -Entity $CompleteObject -Force + $Results = "Added Audit Log Alert for $($Tenants.count) tenants. It may take up to four hours before Microsoft starts delivering these alerts." + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ 'Results' = @($Results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 new file mode 100644 index 000000000000..f94ccc9bef9d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 @@ -0,0 +1,139 @@ +function Invoke-ExecAuditLogSearch { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $Action = $Request.Query.Action ?? $Request.Body.Action + + + + switch ($Action) { + 'ProcessLogs' { + $Table = Get-CIPPTable -TableName 'AuditLogSearches' + + $SearchId = $Request.Query.SearchId ?? $Request.Body.SearchId + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + if (!$SearchId) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'SearchId is required' + }) + return + } + + $Existing = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Search' and RowKey eq '$SearchId' and Tenant eq '$TenantFilter'" + if (!$Existing) { + $Search = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/security/auditLog/queries/$SearchId" -AsApp $true -TenantId $TenantFilter + Write-Information ($Search | ConvertTo-Json -Depth 10) + + $Entity = [PSCustomObject]@{ + PartitionKey = [string]'Search' + RowKey = [string]$SearchId + Tenant = [string]$TenantFilter + DisplayName = [string]$Search.displayName + StartTime = [datetime]$Search.filterStartDateTime + EndTime = [datetime]$Search.filterEndDateTime + Query = [string]($Search | ConvertTo-Json -Compress) + CippStatus = [string]'Pending' + } + } else { + $Existing.CippStatus = 'Pending' + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + + Write-LogMessage -headers $Headers -API $APIName -message "Queued search for processing: $($Search.displayName)" -Sev 'Info' -tenant $TenantFilter + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + resultText = "Search '$($Search.displayName)' queued for processing." + state = 'success' + } | ConvertTo-Json -Depth 10 -Compress + }) + } + default { + $Query = $Request.Body + if (!$Query.TenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'TenantFilter is required' + }) + return + } + if (!$Query.StartTime -or !$Query.EndTime) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'StartTime and EndTime are required' + }) + return + } + + # Convert StartTime and EndTime to DateTime from unixtime + if ($Query.StartTime -match '^\d+$') { + $Query.StartTime = [DateTime]::UnixEpoch.AddSeconds([long]$Query.StartTime) + } else { + $Query.StartTime = [DateTime]$Query.StartTime + } + + if ($Query.EndTime -match '^\d+$') { + $Query.EndTime = [DateTime]::UnixEpoch.AddSeconds([long]$Query.EndTime) + } else { + $Query.EndTime = [DateTime]$Query.EndTime + } + + $Command = Get-Command New-CippAuditLogSearch + $AvailableParameters = $Command.Parameters.Keys + $BadProps = foreach ($Prop in $Query.PSObject.Properties.Name) { + if ($AvailableParameters -notcontains $Prop) { + $Prop + } + } + if ($BadProps) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Invalid parameters: $($BadProps -join ', ')" + }) + return + } + + try { + Write-Information "Executing audit log search with parameters: $($Query | ConvertTo-Json -Depth 10)" + + $Query = $Query | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashtable + $NewSearch = New-CippAuditLogSearch @Query + + if ($NewSearch) { + Write-LogMessage -headers $Headers -API $APIName -message "Created audit log search: $($NewSearch.displayName)" -Sev 'Info' -tenant $TenantFilter + $Results = @{ + resultText = "Created audit log search: $($NewSearch.displayName)" + state = 'success' + details = $NewSearch + } + } else { + Write-LogMessage -headers $Headers -API $APIName -message 'Failed to create audit log search' -Sev 'Error' -tenant $TenantFilter + $Results = @{ + resultText = 'Failed to initiate search' + state = 'error' + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + } catch { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $_.Exception.Message + }) + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 new file mode 100644 index 000000000000..529486e9f868 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 @@ -0,0 +1,160 @@ +function Invoke-ListAlertsQueue { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Alert.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' + $WebhookRules = Get-CIPPAzDataTableEntity @WebhookTable + + $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' + $ScheduledTasks = Get-CIPPAzDataTableEntity @ScheduledTasks | Where-Object { $_.hidden -eq $true -and $_.command -like 'Get-CippAlert*' } + + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + $TenantList = Get-Tenants -IncludeErrors + $AllTasksArrayList = [system.collections.generic.list[object]]::new() + + foreach ($Task in $WebhookRules) { + $Conditions = $Task.Conditions | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $TranslatedConditions = ($Conditions | ForEach-Object { "When $($_.Property.label) is $($_.Operator.label) $($_.input.value)" }) -join ' and ' + $TranslatedActions = ($Task.Actions | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue).label -join ',' + $Tenants = ($Task.Tenants | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue) + $TaskEntry = [PSCustomObject]@{ + Tenants = @($Tenants.label) + Conditions = $TranslatedConditions + excludedTenants = @($Task.excludedTenants | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue) + Actions = $TranslatedActions + LogType = $Task.type + EventType = 'Audit log Alert' + RowKey = $Task.RowKey + PartitionKey = $Task.PartitionKey + RepeatsEvery = 'When received' + AlertComment = $Task.AlertComment + RawAlert = @{ + Conditions = @($Conditions) + Actions = @($($Task.Actions | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue)) + Tenants = @($Tenants) + type = $Task.type + RowKey = $Task.RowKey + PartitionKey = $Task.PartitionKey + AlertComment = $Task.AlertComment + } + } + + if ($AllowedTenants -notcontains 'AllTenants') { + foreach ($Tenant in $Tenants) { + if ($AllowedTenants -contains $Tenant.customerId) { + $AllTasksArrayList.Add($TaskEntry) + break + } + } + } else { + $AllTasksArrayList.Add($TaskEntry) + } + } + + foreach ($Task in $ScheduledTasks) { + if ($Task.excludedTenants) { + $ExcludedTenants = @($Task.excludedTenants) + } else { + $ExcludedTenants = @() + } + + # Handle tenant group display information for alerts + $TenantsForDisplay = @() + if ($Task.TenantGroup) { + try { + $TenantGroupObject = $Task.TenantGroup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TenantGroupObject) { + # Create a tenant group object for display + $TenantGroupForDisplay = [PSCustomObject]@{ + label = $TenantGroupObject.label + value = $TenantGroupObject.value + type = 'Group' + } + $TenantsForDisplay = @($TenantGroupForDisplay) + } + } catch { + Write-Warning "Failed to parse tenant group information for alert task $($Task.RowKey): $($_.Exception.Message)" + # Fall back to regular tenant display + $TenantsForDisplay = @($Task.Tenant) + } + } else { + # For regular tenants, create a tenant object for consistent formatting + $TenantForDisplay = [PSCustomObject]@{ + label = $Task.Tenant + value = $Task.Tenant + type = 'Tenant' + } + $TenantsForDisplay = @($TenantForDisplay) + } + + $TaskEntry = [PSCustomObject]@{ + RowKey = $Task.RowKey + PartitionKey = $Task.PartitionKey + excludedTenants = @($ExcludedTenants) + Tenants = $TenantsForDisplay + Conditions = $Task.Name + Actions = $Task.PostExecution + LogType = 'Scripted' + EventType = 'Scheduled Task' + RepeatsEvery = $Task.Recurrence + AlertComment = $Task.AlertComment + RawAlert = $Task + } + + if ($AllowedTenants -notcontains 'AllTenants') { + # For tenant groups, we need to expand and check access + if ($Task.TenantGroup) { + try { + $TenantGroupObject = $Task.TenantGroup | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($TenantGroupObject) { + # Create a tenant filter object for expansion + $TenantFilterForExpansion = @([PSCustomObject]@{ + type = 'Group' + value = $TenantGroupObject.value + label = $TenantGroupObject.label + }) + + # Expand the tenant group to individual tenants + $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $TenantFilterForExpansion + + # Check if user has access to any tenant in the group + $HasAccess = $false + foreach ($ExpandedTenant in $ExpandedTenants) { + $TenantInfo = $TenantList | Where-Object -Property defaultDomainName -EQ $ExpandedTenant.value + if ($TenantInfo -and $AllowedTenants -contains $TenantInfo.customerId) { + $HasAccess = $true + break + } + } + + if ($HasAccess) { + $AllTasksArrayList.Add($TaskEntry) + } + } + } catch { + Write-Warning "Failed to expand tenant group for access check: $($_.Exception.Message)" + } + } else { + # Regular tenant access check + $Tenant = $TenantList | Where-Object -Property defaultDomainName -EQ $Task.Tenant + if ($AllowedTenants -contains $Tenant.customerId) { + $AllTasksArrayList.Add($TaskEntry) + } + } + } else { + $AllTasksArrayList.Add($TaskEntry) + } + } + + $finalList = ConvertTo-Json -InputObject @($AllTasksArrayList) -Depth 10 + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $finalList + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogSearches.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogSearches.ps1 new file mode 100644 index 000000000000..ef5a2ff069d6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogSearches.ps1 @@ -0,0 +1,86 @@ +function Invoke-ListAuditLogSearches { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Alert.Read + #> + Param($Request, $TriggerMetadata) + # Interact with the query parameters + $TenantFilter = $Request.Query.tenantFilter + $SearchId = $Request.Query.SearchId + $Days = $Request.Query.Days + $Type = $Request.Query.Type + + if ($TenantFilter) { + switch ($Type) { + 'Searches' { + $Results = Get-CippAuditLogSearches -TenantFilter $TenantFilter + $Body = @{ + Results = @($Results) + Metadata = @{ + TenantFilter = $TenantFilter + TotalSearches = $Results.Count + } + } | ConvertTo-Json -Depth 10 -Compress + } + 'SearchResults' { + try { + $Results = Get-CippAuditLogSearchResults -TenantFilter $TenantFilter -QueryId $SearchId + } catch { + $Results = @{ Error = $_.Exception.Message } + } + $Body = @{ + Results = @($Results) + Metadata = @{ + SearchId = $SearchId + TenantFilter = $TenantFilter + TotalResults = $Results.Count + } + } | ConvertTo-Json -Depth 10 -Compress + } + default { + if ($Days) { + $Days = $Days + } else { + $Days = 1 + } + $StartTime = (Get-Date).AddDays(-$Days).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + + $Table = Get-CIPPTable -TableName 'AuditLogSearches' + $Results = Get-CIPPAzDataTableEntity @Table -Filter "StartTime ge datetime'$StartTime'" | ForEach-Object { + $Query = try { $_.Query | ConvertFrom-Json } catch { $_.Query } + $MatchedRules = try { $_.MatchedRules | ConvertFrom-Json } catch { $_.MatchedRules } + [PSCustomObject]@{ + SearchId = $_.RowKey + StartTime = $_.StartTime.DateTime + EndTime = $_.EndTime.DateTime + Query = $Query + MatchedRules = $MatchedRules + TotalLogs = $_.TotalLogs + MatchedLogs = $_.MatchedLogs + CippStatus = $_.CippStatus + } + } + + $Body = @{ + Results = @($Results) + Metadata = @{ + StartTime = $StartTime + TenantFilter = $TenantFilter + } + } | ConvertTo-Json -Depth 10 -Compress + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'TenantFilter is required' + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogTest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogTest.ps1 new file mode 100644 index 000000000000..0f0efa9cbeff --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogTest.ps1 @@ -0,0 +1,39 @@ +function Invoke-ListAuditLogTest { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + + .ROLE + Tenant.Alert.Read + #> + Param($Request, $TriggerMetadata) + $AuditLogQuery = @{ + TenantFilter = $Request.Query.TenantFilter + SearchId = $Request.Query.SearchId + } + try { + $TestResults = Test-CIPPAuditLogRules @AuditLogQuery + } catch { + $Body = Get-CippException -Exception $_ + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $Body + }) + return + } + $Body = @{ + Results = @($TestResults.DataToProcess) + Metadata = @{ + TenantFilter = $AuditLogQuery.TenantFilter + LogType = $AuditLogQuery.LogType + TotalLogs = $TestResults.TotalLogs + MatchedLogs = $TestResults.MatchedLogs + MatchedRules = $TestResults.MatchedRules + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 new file mode 100644 index 000000000000..232627b9581a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogs.ps1 @@ -0,0 +1,87 @@ +function Invoke-ListAuditLogs { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Alert.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $LogID = $Request.Query.LogId + $StartDate = $Request.Query.StartDate + $EndDate = $Request.Query.EndDate + $RelativeTime = $Request.Query.RelativeTime + $FilterConditions = [System.Collections.Generic.List[string]]::new() + + if ($LogID) { + $FilterConditions.Add("RowKey eq '$($LogID)'") + } else { + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $FilterConditions.Add("Tenant eq '$TenantFilter'") + } + + if (!$StartDate -and !$EndDate -and !$RelativeTime) { + $StartDate = (Get-Date).AddDays(-7).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $EndDate = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + if ($RelativeTime) { + + if ($RelativeTime -match '(\d+)([dhm])') { + $EndDate = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $Interval = [Int32]$Matches[1] + switch ($Matches[2]) { + 'd' { $StartDate = (Get-Date).AddDays(-$Interval).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } + 'h' { $StartDate = (Get-Date).AddHours(-$Interval).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } + 'm' { $StartDate = (Get-Date).AddMinutes(-$Interval).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } + } + } + $FilterConditions.Add("Timestamp ge datetime'$StartDate' and Timestamp le datetime'$EndDate'") + } else { + if ($StartDate) { + if ($StartDate -match '^\d+$') { + $StartDate = [DateTimeOffset]::FromUnixTimeSeconds([int]$StartDate).DateTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } else { + $StartDate = (Get-Date $StartDate).ToString('yyyy-MM-ddTHH:mm:ssZ') + } + $FilterConditions.Add("Timestamp ge datetime'$StartDate'") + + if ($EndDate) { + if ($EndDate -match '^\d+$') { + $EndDate = [DateTimeOffset]::FromUnixTimeSeconds([int]$EndDate).DateTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } else { + $EndDate = (Get-Date $EndDate).ToString('yyyy-MM-ddTHH:mm:ssZ') + } + $FilterConditions.Add("Timestamp le datetime'$EndDate'") + } + } + } + } + + $Table = Get-CIPPTable -TableName 'AuditLogs' + if ($FilterConditions) { + $Table.Filter = $FilterConditions -join ' and ' + } + + $Tenants = Get-Tenants -IncludeErrors + + $AuditLogs = Get-CIPPAzDataTableEntity @Table | Where-Object { $Tenants.defaultDomainName -contains $_.Tenant } | ForEach-Object { + $_.Data = try { $_.Data | ConvertFrom-Json } catch { $_.AuditData } + $_ | Select-Object @{n = 'LogId'; exp = { $_.RowKey } }, @{ n = 'Timestamp'; exp = { $_.Data.RawData.CreationTime } }, Tenant, Title, Data + } + + $Body = @{ + Results = @($AuditLogs | Sort-Object -Property Timestamp -Descending) + Metadata = @{ + Count = $AuditLogs.Count + Filter = $Table.Filter ?? '' + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListWebhookAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListWebhookAlert.ps1 new file mode 100644 index 000000000000..4e4039f63657 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListWebhookAlert.ps1 @@ -0,0 +1,22 @@ +Function Invoke-ListWebhookAlert { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Alert.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $Table = Get-CippTable -TableName 'SchedulerConfig' + $WebhookRow = foreach ($Webhook in (Get-CIPPAzDataTableEntity @Table | Where-Object -Property PartitionKey -EQ 'WebhookAlert')) { + $Webhook.If = $Webhook.If | ConvertFrom-Json + $Webhook.execution = $Webhook.execution | ConvertFrom-Json + $Webhook + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($WebhookRow) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-PublicWebhooks.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-PublicWebhooks.ps1 new file mode 100644 index 000000000000..af575369f8f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-PublicWebhooks.ps1 @@ -0,0 +1,86 @@ +function Invoke-PublicWebhooks { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Public + #> + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + Set-Location (Get-Item $PSScriptRoot).Parent.FullName + $WebhookTable = Get-CIPPTable -TableName webhookTable + $WebhookIncoming = Get-CIPPTable -TableName WebhookIncoming + $Webhooks = Get-CIPPAzDataTableEntity @WebhookTable + Write-Host 'Received request' + $url = ($Headers.'x-ms-original-url').split('/API') | Select-Object -First 1 + $CIPPURL = [string]$url + Write-Host $url + if ($Webhooks.Resource -eq 'M365AuditLogs') { + Write-Host "Found M365AuditLogs - This is an old entry, we'll deny so Microsoft stops sending it." + $body = 'This webhook is not authorized, its an old entry.' + $StatusCode = [HttpStatusCode]::Forbidden + } + if ($Request.Query.ValidationToken) { + Write-Host 'Validation token received - query ValidationToken' + $body = $Request.Query.ValidationToken + $StatusCode = [HttpStatusCode]::OK + } elseif ($Request.Body.validationCode) { + Write-Host 'Validation token received - body validationCode' + $body = $Request.Body.validationCode + $StatusCode = [HttpStatusCode]::OK + } elseif ($Request.Query.validationCode) { + Write-Host 'Validation token received - query validationCode' + $body = $Request.Query.validationCode + $StatusCode = [HttpStatusCode]::OK + } elseif ($Request.Query.CIPPID -in $Webhooks.RowKey) { + Write-Host 'Found matching CIPPID' + $url = ($Headers.'x-ms-original-url').split('/API') | Select-Object -First 1 + $Webhookinfo = $Webhooks | Where-Object -Property RowKey -EQ $Request.Query.CIPPID + + if ($Request.Query.Type -eq 'GraphSubscription') { + # Graph Subscriptions + [pscustomobject]$ReceivedItem = $Request.Body.value + $Entity = [PSCustomObject]@{ + PartitionKey = 'Webhook' + RowKey = [string](New-Guid).Guid + Type = $Request.Query.Type + Data = [string]($ReceivedItem | ConvertTo-Json -Depth 10) + CIPPID = $Request.Query.CIPPID + WebhookInfo = [string]($WebhookInfo | ConvertTo-Json -Depth 10) + FunctionName = 'PublicWebhookProcess' + } + Add-CIPPAzDataTableEntity @WebhookIncoming -Entity $Entity + ## Push webhook data to queue + #Invoke-CippGraphWebhookProcessing -Data $ReceivedItem -CIPPID $request.Query.CIPPID -WebhookInfo $Webhookinfo + + } elseif ($Request.Query.Type -eq 'PartnerCenter') { + [pscustomobject]$ReceivedItem = $Request.Body + $Entity = [PSCustomObject]@{ + PartitionKey = 'Webhook' + RowKey = [string](New-Guid).Guid + Type = $Request.Query.Type + Data = [string]($ReceivedItem | ConvertTo-Json -Depth 10) + CIPPID = $Request.Query.CIPPID + WebhookInfo = [string]($WebhookInfo | ConvertTo-Json -Depth 10) + FunctionName = 'PublicWebhookProcess' + } + Add-CIPPAzDataTableEntity @WebhookIncoming -Entity $Entity + } else { + $Body = 'This webhook is not authorized.' + $StatusCode = [HttpStatusCode]::Forbidden + } + $Body = 'Webhook Received' + $StatusCode = [HttpStatusCode]::OK + + } else { + $Body = 'This webhook is not authorized.' + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-RemoveQueuedAlert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-RemoveQueuedAlert.ps1 new file mode 100644 index 000000000000..af7a7cfd9a34 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-RemoveQueuedAlert.ps1 @@ -0,0 +1,46 @@ +Function Invoke-RemoveQueuedAlert { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with the query or body of the request + $EventType = $Request.Query.EventType ?? $Request.Body.EventType + $ID = $Request.Query.ID ?? $Request.Body.ID + + if ($EventType -eq 'Audit log Alert') { + $Table = 'WebhookRules' + } else { + $Table = 'ScheduledTasks' + } + + $Table = Get-CIPPTable -TableName $Table + try { + $Filter = "RowKey eq '{0}'" -f $ID + $Alert = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $Alert + $Result = "Successfully removed alert $ID from queue" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove alert from queue $ID. $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAddMultiTenantApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAddMultiTenantApp.ps1 new file mode 100644 index 000000000000..01fcd2b59e6e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAddMultiTenantApp.ps1 @@ -0,0 +1,97 @@ +function Invoke-ExecAddMultiTenantApp { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Application.ReadWrite + #> + param($Request, $TriggerMetadata) + if ($Request.Body.configMode -eq 'manual') { + $DelegateResources = $request.body.permissions | Where-Object -Property origin -EQ 'Delegated' | ForEach-Object { @{ id = $_.id; type = 'Scope' } } + $DelegateResourceAccess = @{ ResourceAppId = '00000003-0000-0000-c000-000000000000'; resourceAccess = $DelegateResources } + $ApplicationResources = $request.body.permissions | Where-Object -Property origin -EQ 'Application' | ForEach-Object { @{ id = $_.id; type = 'Role' } } + $ApplicationResourceAccess = @{ ResourceAppId = '00000003-0000-0000-c000-000000000000'; resourceAccess = $ApplicationResources } + + $Results = try { + if ($Request.Body.CopyPermissions -eq $true) { + $Command = 'ExecApplicationCopy' + } else { + $Command = 'ExecAddMultiTenantApp' + } + if ('allTenants' -in $Request.Body.tenantFilter.value) { + $TenantFilter = (Get-Tenants).defaultDomainName + } else { + $TenantFilter = $Request.Body.tenantFilter.value + } + + $TenantCount = ($TenantFilter | Measure-Object).Count + $Queue = New-CippQueueEntry -Name 'Application Approval' -TotalTasks $TenantCount + $Batch = foreach ($Tenant in $TenantFilter) { + [pscustomobject]@{ + FunctionName = $Command + Tenant = $tenant + AppId = $Request.Body.AppId + applicationResourceAccess = $ApplicationResourceAccess + delegateResourceAccess = $DelegateResourceAccess + QueueId = $Queue.RowKey + } + } + + try { + $InputObject = @{ + OrchestratorName = 'ExecMultiTenantAppOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + $null = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + $Results = 'Deploying {0} to {1}, see the logbook for details' -f $Request.Body.AppId, ($Request.Body.tenantFilter.label -join ', ') + } catch { + $ErrorMsg = Get-NormalizedError -message $($_.Exception.Message) + $Results = "Function Error: $ErrorMsg" + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMsg = Get-NormalizedError -message $($_.Exception.Message) + $Results = "Function Error: $ErrorMsg" + $StatusCode = [HttpStatusCode]::BadRequest + } + } elseif ($Request.Body.configMode -eq 'template') { + Write-Information 'Application Approval - Template Mode' + if ('allTenants' -in $Request.Body.tenantFilter.value) { + $TenantFilter = (Get-Tenants).defaultDomainName + } else { + $TenantFilter = $Request.Body.tenantFilter.value + } + $TenantCount = ($TenantFilter | Measure-Object).Count + $Queue = New-CippQueueEntry -Name 'Application Approval (Template)' -TotalTasks $TenantCount + + $Batch = foreach ($Tenant in $TenantFilter) { + [pscustomobject]@{ + FunctionName = 'ExecAppApprovalTemplate' + Tenant = $tenant + TemplateId = $Request.Body.selectedTemplate.value + AppId = $Request.Body.selectedTemplate.addedFields.AppId + QueueId = $Queue.RowKey + } + } + try { + $InputObject = @{ + OrchestratorName = 'ExecMultiTenantAppOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + $null = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + $Results = 'Deploying {0} to {1}, see the logbook for details' -f $Request.Body.selectedTemplate.label, ($Request.Body.tenantFilter.label -join ', ') + } catch { + $Results = "Error queuing application - $($_.Exception.Message)" + } + $StatusCode = [HttpStatusCode]::OK + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = @($Results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApproval.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApproval.ps1 new file mode 100644 index 000000000000..a76648e73a30 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApproval.ps1 @@ -0,0 +1,25 @@ +function Invoke-ExecAppApproval { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Application.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Seems to be an unused endpoint? -Bobby + + $ApplicationId = if ($Request.Query.ApplicationId) { $Request.Query.ApplicationId } else { $env:ApplicationID } + $Results = Get-Tenants | ForEach-Object { + [PSCustomObject]@{ + defaultDomainName = $_.defaultDomainName + link = "https://login.microsoftonline.com/$($_.customerId)/v2.0/adminconsent?client_id=$ApplicationId&scope=$ApplicationId/.default" + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApprovalTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApprovalTemplate.ps1 new file mode 100644 index 000000000000..eecb1f292552 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppApprovalTemplate.ps1 @@ -0,0 +1,153 @@ +function Invoke-ExecAppApprovalTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Table = Get-CIPPTable -TableName 'templates' + $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json + + $Action = $Request.Query.Action ?? $Request.Body.Action + + switch ($Action) { + 'Save' { + try { + $GUID = $Request.Body.TemplateId ?? (New-Guid).GUID + + # Create structured object for the template + $templateObject = $Request.Body | Select-Object -Property * -ExcludeProperty Action, TemplateId + + # Add additional metadata + $templateObject | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID + $templateObject | Add-Member -NotePropertyName 'CreatedBy' -NotePropertyValue ($User.UserDetails ?? 'CIPP-API') + $templateObject | Add-Member -NotePropertyName 'CreatedOn' -NotePropertyValue (Get-Date).ToString('o') + + # If updating an existing template, add UpdatedBy and UpdatedOn + if ($Request.Body.TemplateId) { + $templateObject | Add-Member -NotePropertyName 'UpdatedBy' -NotePropertyValue ($User.UserDetails ?? 'CIPP-API') + $templateObject | Add-Member -NotePropertyName 'UpdatedOn' -NotePropertyValue (Get-Date).ToString('o') + } + + # Convert to JSON, preserving the original structure + $templateJson = $templateObject | ConvertTo-Json -Depth 10 -Compress + + # Add to templates table with AppApprovalTemplate partition key + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = [string]$templateJson + RowKey = "$GUID" + PartitionKey = 'AppApprovalTemplate' + } + + # Return a proper array with ONE element containing the TemplateId + $Body = @( + [PSCustomObject]@{ + 'Results' = 'Template Saved' + 'Metadata' = @{ + 'TemplateName' = $Request.Body.TemplateName + 'TemplateId' = $GUID + } + } + ) + + Write-LogMessage -headers $Headers -API $APIName -message "App Deployment Template Saved: $($Request.Body.TemplateName)" -Sev 'Info' + } catch { + $Body = @{ + 'Results' = $_.Exception.Message + } + Write-LogMessage -headers $Headers -API $APIName -message "App Deployment Template Save failed: $($_.Exception.Message)" -Sev 'Error' + } + } + 'Delete' { + try { + $TemplateId = $Request.Body.TemplateId + + # Get the template to delete + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + + if ($Template) { + $TemplateData = $Template.JSON | ConvertFrom-Json + $TemplateName = $TemplateData.TemplateName + + # Remove the template + $null = Remove-AzDataTableEntity @Table -Entity $Template -Force + + $Body = @{ + 'Results' = "Successfully deleted template '$TemplateName'" + } + Write-LogMessage -headers $Headers -API $APIName -message "App Deployment Template deleted: $TemplateName" -Sev 'Info' + } else { + $Body = @{ + 'Results' = 'No template found with the provided ID' + } + } + } catch { + $Body = @{ + 'Results' = "Failed to delete template: $($_.Exception.Message)" + } + Write-LogMessage -headers $Headers -API $APIName -message "App Deployment Template Delete failed: $($_.Exception.Message)" -Sev 'Error' + } + } + 'Get' { + # Check if TemplateId is provided to filter results + $filter = "PartitionKey eq 'AppApprovalTemplate'" + if ($Request.Query.TemplateId) { + $templateId = $Request.Query.TemplateId + $filter = "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$templateId'" + } + + $Templates = Get-CIPPAzDataTableEntity @Table -Filter $filter + + $Body = $Templates | ForEach-Object { + # Parse the JSON + $templateData = $_.JSON | ConvertFrom-Json + + # Create output object preserving original structure + $outputObject = $templateData | Select-Object -Property * + + # Add the TemplateId (RowKey) to the output + $outputObject | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $_.RowKey -Force + + # Add timestamp from the table entity + $outputObject | Add-Member -NotePropertyName 'Timestamp' -NotePropertyValue $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') -Force + + return $outputObject + } + } + default { + # Default action - list all templates + $filter = "PartitionKey eq 'AppApprovalTemplate'" + + $Templates = Get-CIPPAzDataTableEntity @Table -Filter $filter + + $Body = $Templates | ForEach-Object { + # Parse the JSON + $templateData = $_.JSON | ConvertFrom-Json + + # Create output object preserving original structure + $outputObject = $templateData | Select-Object -Property * + + # Add the TemplateId (RowKey) to the output + $outputObject | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $_.RowKey -Force + + # Add timestamp from the table entity + $outputObject | Add-Member -NotePropertyName 'Timestamp' -NotePropertyValue $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') -Force + + return $outputObject + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -Depth 10 -InputObject @($Body) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppPermissionTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppPermissionTemplate.ps1 new file mode 100644 index 000000000000..3cdc003452d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAppPermissionTemplate.ps1 @@ -0,0 +1,95 @@ +function Invoke-ExecAppPermissionTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.ApplicationTemplates.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + $Table = Get-CIPPTable -TableName 'AppPermissions' + + $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json + + $Action = $Request.Query.Action ?? $Request.Body.Action + + switch ($Action) { + 'Save' { + try { + $RowKey = $Request.Body.TemplateId ?? [guid]::NewGuid().ToString() + $Permissions = $Request.Body.Permissions + $Entity = @{ + 'PartitionKey' = 'Templates' + 'RowKey' = [string]$RowKey + 'TemplateName' = [string]$Request.Body.TemplateName + 'Permissions' = [string]($Permissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = $User.UserDetails ?? 'CIPP-API' + } + $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + $Body = @{ + 'Results' = 'Template Saved' + 'Metadata' = @{ + 'TemplateName' = $Entity.TemplateName + 'TemplateId' = $RowKey + } + } + Write-LogMessage -headers $Headers -API 'ExecAppPermissionTemplate' -message "Permissions Saved for template: $($Request.Body.TemplateName)" -Sev 'Info' -LogData $Permissions + } catch { + Write-Information "Failed to save template: $($_.Exception.Message) - $($_.InvocationInfo.PositionMessage)" + $Body = @{ + 'Results' = $_.Exception.Message + } + } + } + 'Delete' { + try { + $TemplateId = $Request.Body.TemplateId + $Template = (Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Templates' and RowKey eq '$TemplateId'") + $TemplateName = $Template.TemplateName + + if ($TemplateId) { + $null = Remove-AzDataTableEntity @Table -Entity $Template -Force + $Body = @{ + 'Results' = "Successfully deleted template '$TemplateName'" + } + Write-LogMessage -headers $Headers -API 'ExecAppPermissionTemplate' -message "Permission template deleted: $TemplateName" -Sev 'Info' + } else { + $Body = @{ + 'Results' = 'No Template ID provided for deletion' + } + } + } catch { + $Body = @{ + 'Results' = "Failed to delete template: $($_.Exception.Message)" + } + } + } + default { + # Check if TemplateId is provided to filter results + $filter = "PartitionKey eq 'Templates'" + if ($Request.Query.TemplateId) { + $templateId = $Request.Query.TemplateId + $filter = "PartitionKey eq 'Templates' and RowKey eq '$templateId'" + } + + $Body = Get-CIPPAzDataTableEntity @Table -Filter $filter | ForEach-Object { + [PSCustomObject]@{ + TemplateId = $_.RowKey + TemplateName = $_.TemplateName + Permissions = $_.Permissions | ConvertFrom-Json + UpdatedBy = $_.UpdatedBy + Timestamp = $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -Depth 10 -InputObject @($Body) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 new file mode 100644 index 000000000000..64de2982c341 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 @@ -0,0 +1,150 @@ +function Invoke-ExecApplication { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $ValidTypes = @('applications', 'servicePrincipals') + $ValidActions = @('Update', 'Upsert', 'Delete', 'RemoveKey', 'RemovePassword') + + $Id = $Request.Query.Id ?? $Request.Body.Id + $Type = $Request.Query.Type ?? $Request.Body.Type + if (-not $Id) { + $AppId = $Request.Query.AppId ?? $Request.Body.AppId + if (-not $AppId) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Required parameter 'Id' or 'AppId' is missing" + }) + return + } + $IdPath = "(appId='$AppId')" + } else { + $IdPath = "/$Id" + } + if ($Type -and $ValidTypes -notcontains $Type) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Invalid Type specified. Valid types are: $($ValidTypes -join ', ')" + }) + return + } + + $Uri = "https://graph.microsoft.com/beta/$($Type)$($IdPath)" + $Action = $Request.Query.Action ?? $Request.Body.Action + + if ($ValidActions -notcontains $Action) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Invalid Action specified. Valid actions are: $($ValidActions -join ', ')" + }) + return + } + + $PostParams = @{ + Uri = $Uri + } + + if ($Action -eq 'Delete') { + $PostParams.Type = 'DELETE' + } + if ($Action -eq 'Update' -or $Action -eq 'Upsert') { + $PostParams.Type = 'PATCH' + } + + if ($Action -eq 'Upsert') { + $PostParams.AddedHeaders = @{ + 'Prefer' = 'create-if-missing' + } + } + + if ($Request.Body) { + $PostParams.Body = $Request.Body.Payload | ConvertTo-Json -Compress + } + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + try { + if ($Action -eq 'RemoveKey' -or $Action -eq 'RemovePassword') { + # Handle credential removal + $KeyIds = $Request.Body.KeyIds.value ?? $Request.Body.KeyIds + if (-not $KeyIds -or $KeyIds.Count -eq 0) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "KeyIds parameter is required for $Action action" + }) + return + } + + if ($Action -eq 'RemoveKey') { + # For key credentials, use a single PATCH request + $CurrentObject = New-GraphGetRequest -Uri $Uri -tenantid $TenantFilter -AsApp $true + $UpdatedKeyCredentials = $CurrentObject.keyCredentials | Where-Object { $_.keyId -notin $KeyIds } + $PatchBody = @{ + keyCredentials = @($UpdatedKeyCredentials) + } + + $Response = New-GraphPOSTRequest -Uri $Uri -Type 'PATCH' -Body ($PatchBody | ConvertTo-Json -Depth 10) -tenantid $TenantFilter -AsApp $true + + $Results = @{ + resultText = "Successfully removed $($KeyIds.Count) key credential(s) from $Type" + state = 'success' + details = @($Response) + } + } else { + # For password credentials, use bulk removePassword requests + $BulkRequests = foreach ($KeyId in $KeyIds) { + $RemoveBody = @{ + keyId = $KeyId + } + + @{ + id = $KeyId + method = 'POST' + url = "$($Type)$($IdPath)/removePassword" + body = $RemoveBody + headers = @{ + 'Content-Type' = 'application/json' + } + } + } + + $BulkResults = New-GraphBulkRequest -Requests @($BulkRequests) -tenantid $TenantFilter -AsApp $true + + $SuccessCount = ($BulkResults | Where-Object { $_.status -eq 204 }).Count + $FailureCount = ($BulkResults | Where-Object { $_.status -ne 204 }).Count + + $Results = @{ + resultText = "Bulk RemovePassword completed. Success: $SuccessCount, Failures: $FailureCount" + state = if ($FailureCount -eq 0) { 'success' } else { 'error' } + details = @($BulkResults) + } + } + } else { + # Handle regular actions + $null = New-GraphPOSTRequest @PostParams -tenantid $TenantFilter -AsApp $true + $Results = @{ + resultText = "Successfully executed $Action on $Type with Id: $Id" + state = 'success' + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = $Results } + }) + } catch { + $Results = @{ + resultText = "Failed to execute $Action on $Type with Id: $Id. Error: $($_.Exception.Message)" + state = 'error' + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ Results = @($Results) } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 new file mode 100644 index 000000000000..9e02c588bf36 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 @@ -0,0 +1,392 @@ +using namespace System.Net + +function Invoke-ExecCreateAppTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Application.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -headers $Request.headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Body.TenantFilter + $AppId = $Request.Body.AppId + $DisplayName = $Request.Body.DisplayName + $Type = $Request.Body.Type # 'servicePrincipal' or 'application' + + if ([string]::IsNullOrWhiteSpace($AppId)) { + throw 'AppId is required' + } + + if ([string]::IsNullOrWhiteSpace($DisplayName)) { + throw 'DisplayName is required' + } + + # Build initial bulk request to get app registration and all service principals + # The SP we need will be in the splist, so we don't need a separate call + $InitialBulkRequests = @( + [PSCustomObject]@{ + id = 'app' + method = 'GET' + url = "/applications(appId='$AppId')?`$select=id,appId,displayName,requiredResourceAccess" + } + [PSCustomObject]@{ + id = 'splist' + method = 'GET' + url = '/servicePrincipals?$top=999&$select=id,appId,displayName' + } + ) + + Write-Information "Retrieving app details for AppId: $AppId in tenant: $TenantFilter" + $InitialResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests $InitialBulkRequests -NoAuthCheck $true -AsApp $true + + $AppResult = $InitialResults | Where-Object { $_.id -eq 'app' } | Select-Object -First 1 + $TenantInfo = ($InitialResults | Where-Object { $_.id -eq 'splist' }).body.value + + # Find the specific service principal in the list + $SPResult = $TenantInfo | Where-Object { $_.appId -eq $AppId } | Select-Object -First 1 + + # Get the app details based on type + if ($Type -eq 'servicePrincipal') { + if (-not $SPResult) { + throw "Service principal not found for AppId: $AppId" + } + + $App = $SPResult + + # Check if we got the app registration and it has permissions + if ($AppResult.status -eq 200 -and $AppResult.body.requiredResourceAccess -and $AppResult.body.requiredResourceAccess.Count -gt 0) { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Retrieved requiredResourceAccess from app registration for $AppId" -Sev 'Info' + $Permissions = $AppResult.body.requiredResourceAccess + } else { + # App registration not accessible or no permissions configured + # Build permissions from oauth2PermissionGrants and appRoleAssignments + Write-LogMessage -headers $Request.headers -API $APINAME -message "Could not retrieve app registration for $AppId - extracting from service principal grants and role assignments" -Sev 'Info' + + # Bulk request to get grants and assignments + $GrantsBulkRequests = @( + [PSCustomObject]@{ + id = 'grants' + method = 'GET' + url = "/servicePrincipals(appId='$AppId')/oauth2PermissionGrants" + } + [PSCustomObject]@{ + id = 'assignments' + method = 'GET' + url = "/servicePrincipals(appId='$AppId')/appRoleAssignments" + } + ) + + $GrantsResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests $GrantsBulkRequests -NoAuthCheck $true -AsApp $true + + $DelegatePermissionGrants = ($GrantsResults | Where-Object { $_.id -eq 'grants' }).body.value + $AppRoleAssignments = ($GrantsResults | Where-Object { $_.id -eq 'assignments' }).body.value + + $DelegateResourceAccess = $DelegatePermissionGrants | Group-Object -Property resourceId | ForEach-Object { + [pscustomobject]@{ + resourceAppId = ($TenantInfo | Where-Object -Property id -EQ $_.Name).appId + resourceAccess = @($_.Group | ForEach-Object { + [pscustomobject]@{ + id = $_.scope + type = 'Scope' + } + }) + } + } + + $ApplicationResourceAccess = $AppRoleAssignments | Group-Object -Property ResourceId | ForEach-Object { + [pscustomobject]@{ + resourceAppId = ($TenantInfo | Where-Object -Property id -EQ $_.Name).appId + resourceAccess = @($_.Group | ForEach-Object { + [pscustomobject]@{ + id = $_.appRoleId + type = 'Role' + } + }) + } + } + + # Combine both delegated and application permissions + $Permissions = @($DelegateResourceAccess) + @($ApplicationResourceAccess) | Where-Object { $_ -ne $null } + + if ($Permissions.Count -eq 0) { + Write-LogMessage -headers $Request.headers -API $APINAME -message "No permissions found for $AppId via any method" -Sev 'Warning' + } else { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Extracted $($Permissions.Count) resource permission(s) from service principal grants" -Sev 'Info' + } + } + } else { + # For app registrations (applications) + if ($AppResult.status -ne 200 -or -not $AppResult.body) { + throw "App registration not found for AppId: $AppId" + } + + $App = $AppResult.body + + $Tenant = Get-Tenants -TenantFilter $TenantFilter + if ($Tenant.customerId -ne $env:TenantID) { + $ExistingApp = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications?`$filter=displayName eq '$DisplayName'" -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true + + if ($ExistingApp) { + Write-Information "App Registration $AppId already exists in partner tenant" + $AppId = $ExistingApp.appId + $App = $ExistingApp + Write-LogMessage -headers $Request.headers -API $APINAME -message "App Registration $($AppDetails.displayName) already exists in partner tenant" -Sev 'Info' + } else { + Write-Information "Copying App Registration $AppId from customer tenant $TenantFilter to partner tenant" + $PropertiesToRemove = @( + 'appId' + 'id' + 'createdDateTime' + 'deletedDateTime' + 'publisherDomain' + 'servicePrincipalLockConfiguration' + 'identifierUris' + 'applicationIdUris' + 'keyCredentials' + 'passwordCredentials' + 'isDisabled' + ) + $AppCopyBody = $App | Select-Object -Property * -ExcludeProperty $PropertiesToRemove + # Remove any null properties + $NullProperties = [System.Collections.Generic.List[string]]::new() + foreach ($Property in $AppCopyBody.PSObject.Properties.Name) { + if ($null -eq $AppCopyBody.$Property -or $AppCopyBody.$Property -eq '' -or !$AppCopyBody.$Property) { + Write-Information "Removing null property $Property from app copy body" + $NullProperties.Add($Property) + } + } + $AppCopyBody = $AppCopyBody | Select-Object -Property * -ExcludeProperty $NullProperties + if ($AppCopyBody.signInAudience -eq 'AzureADMyOrg') { + # Enterprise apps cannot be copied to another tenant + $AppCopyBody.signInAudience = 'AzureADMultipleOrgs' + } + if ($AppCopyBody.web -and $AppCopyBody.web.redirectUris) { + # Remove redirect URI settings if property exists + $AppCopyBody.web.PSObject.Properties.Remove('redirectUriSettings') + } + if ($AppCopyBody.api.oauth2PermissionScopes) { + $AppCopyBody.api.oauth2PermissionScopes = @(foreach ($Scope in $AppCopyBody.api.oauth2PermissionScopes) { + $Scope | Select-Object * -ExcludeProperty 'isPrivate' + }) + } + if ($AppCopyBody.appRoles) { + $AppCopyBody.appRoles = @(foreach ($Role in $AppCopyBody.api.appRoles) { + $Role | Select-Object * -ExcludeProperty 'isPreAuthorizationRequired', 'isPrivate' + }) + } + if ($AppCopyBody.api -and $AppCopyBody.api.tokenEncryptionSetting) { + # Remove token encryption settings if property exists + $AppCopyBody.api.PSObject.Properties.Remove('tokenEncryptionSetting') + } + + $NewApp = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/applications' -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true -type POST -body ($AppCopyBody | ConvertTo-Json -Depth 10) + + if (-not $NewApp) { + throw 'Failed to copy app registration to partner tenant' + } + + Write-Information "App Registration copied. New AppId: $($NewApp.appId)" + $App = $NewApp + $AppId = $NewApp.appId + Write-Information "Creating service principal for AppId: $AppId in partner tenant" + $Body = @{ + appId = $AppId + } + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals' -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true -type POST -body ($Body | ConvertTo-Json -Depth 10) + Write-LogMessage -headers $Request.headers -API $APINAME -message "App Registration $($AppDetails.displayName) copied to partner tenant" -Sev 'Info' + } + } + + $Permissions = if ($App.requiredResourceAccess) { $App.requiredResourceAccess } else { @() } + } + + # Transform requiredResourceAccess to the CIPP permission format + # CIPP expects: { "resourceAppId": { "applicationPermissions": [], "delegatedPermissions": [] } } + # Graph returns: [ { "resourceAppId": "...", "resourceAccess": [ { "id": "...", "type": "Role|Scope" } ] } ] + $CIPPPermissions = @{} + $PermissionSetId = $null + $PermissionSetName = "$DisplayName (Auto-created)" + + if ($Permissions -and $Permissions.Count -gt 0) { + # Build bulk requests to get all service principals efficiently using object IDs from cached list + $BulkRequests = [System.Collections.Generic.List[object]]::new() + $RequestIndex = 0 + $AppIdToRequestId = @{} + + foreach ($Resource in $Permissions) { + $ResourceAppId = $Resource.resourceAppId + + # Find the service principal object ID from the cached list + $ResourceSPInfo = $TenantInfo | Where-Object { $_.appId -eq $ResourceAppId } | Select-Object -First 1 + + if ($ResourceSPInfo) { + $RequestId = "sp-$RequestIndex" + $AppIdToRequestId[$ResourceAppId] = $RequestId + + # Use object ID to fetch full details with appRoles and oauth2PermissionScopes + $BulkRequests.Add([PSCustomObject]@{ + id = $RequestId + method = 'GET' + url = "/servicePrincipals/$($ResourceSPInfo.id)?`$select=id,appId,displayName,appRoles,oauth2PermissionScopes" + }) + $RequestIndex++ + } else { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Service principal not found in tenant for appId: $ResourceAppId" -Sev 'Warning' + } + } + + # Execute bulk request to get all service principals at once (only if we have requests) + if ($BulkRequests.Count -gt 0) { + Write-Information "Fetching $($BulkRequests.Count) service principal(s) via bulk request" + $BulkResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests $BulkRequests -NoAuthCheck $true -AsApp $true + + # Create lookup table for service principals by appId + $SPLookup = @{} + foreach ($Result in $BulkResults) { + if ($Result.status -eq 200 -and $Result.body) { + $SPLookup[$Result.body.appId] = $Result.body + } + } + } else { + $SPLookup = @{} + } + + # Now process permissions for each resource + foreach ($Resource in $Permissions) { + $ResourceAppId = $Resource.resourceAppId + $AppPerms = [System.Collections.ArrayList]::new() + $DelegatedPerms = [System.Collections.ArrayList]::new() + + $ResourceSP = $SPLookup[$ResourceAppId] + + if (!$ResourceSP) { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Service principal not found for appId: $ResourceAppId - skipping permission translation" -Sev 'Warning' + continue + } + + foreach ($Access in $Resource.resourceAccess) { + if ($Access.type -eq 'Role') { + # Look up application permission name from appRoles + $AppRole = $ResourceSP.appRoles | Where-Object { $_.id -eq $Access.id } | Select-Object -First 1 + if ($AppRole) { + $PermObj = [PSCustomObject]@{ + id = $Access.id + value = $AppRole.value # Use the claim value name, not the GUID + } + [void]$AppPerms.Add($PermObj) + } else { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Application permission $($Access.id) not found in $ResourceAppId appRoles" -Sev 'Warning' + } + } elseif ($Access.type -eq 'Scope') { + # Look up delegated permission name from oauth2PermissionScopes + $PermissionScope = $ResourceSP.oauth2PermissionScopes | Where-Object { $_.id -eq $Access.id } | Select-Object -First 1 + if ($PermissionScope) { + $PermObj = [PSCustomObject]@{ + id = $Access.id + value = $PermissionScope.value # Use the claim value name, not the GUID + } + [void]$DelegatedPerms.Add($PermObj) + } else { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Delegated permission $($Access.id) not found in $ResourceAppId oauth2PermissionScopes" -Sev 'Warning' + } + } + } + + $CIPPPermissions[$ResourceAppId] = [PSCustomObject]@{ + applicationPermissions = @($AppPerms) + delegatedPermissions = @($DelegatedPerms) + } + } + + # Create the permission set in AppPermissions table + $PermissionSetId = (New-Guid).Guid + $PermissionsTable = Get-CIPPTable -TableName 'AppPermissions' + + $PermissionEntity = @{ + 'PartitionKey' = 'Templates' + 'RowKey' = [string]$PermissionSetId + 'TemplateName' = [string]$PermissionSetName + 'Permissions' = [string]($CIPPPermissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = [string]'CIPP-API' + } + + Add-CIPPAzDataTableEntity @PermissionsTable -Entity $PermissionEntity -Force + Write-LogMessage -headers $Request.headers -API $APINAME -message "Permission set created with ID: $PermissionSetId for $($Permissions.Count) resource(s)" -Sev 'Info' + } + + # Create the template + $Table = Get-CIPPTable -TableName 'templates' + $TemplateId = (New-Guid).Guid + + $TemplateJson = @{ + TemplateName = "$DisplayName (Auto-created)" + AppId = $AppId + AppName = $DisplayName + AppType = 'EnterpriseApp' + Permissions = $CIPPPermissions + PermissionSetId = $PermissionSetId + PermissionSetName = $PermissionSetName + AutoCreated = $true + SourceTenant = $TenantFilter + CreatedDate = (Get-Date).ToString('yyyy-MM-ddTHH:mm:ss') + } | ConvertTo-Json -Depth 10 -Compress + + $Entity = @{ + JSON = "$TemplateJson" + RowKey = "$TemplateId" + PartitionKey = 'AppApprovalTemplate' + } + + Add-CIPPAzDataTableEntity @Table -Entity $Entity + + $PermissionCount = 0 + if ($CIPPPermissions -and $CIPPPermissions.Count -gt 0) { + foreach ($ResourceAppId in $CIPPPermissions.Keys) { + $Resource = $CIPPPermissions[$ResourceAppId] + if ($Resource.applicationPermissions) { + $PermissionCount = $PermissionCount + $Resource.applicationPermissions.Count + } + if ($Resource.delegatedPermissions) { + $PermissionCount = $PermissionCount + $Resource.delegatedPermissions.Count + } + } + } + + $Message = "Template created: $DisplayName with $PermissionCount permission(s)" + Write-LogMessage -headers $Request.headers -API $APINAME -message $Message -Sev 'Info' + + $Body = @{ + Results = @{'resultText' = $Message; 'state' = 'success' } + Metadata = @{ + TemplateId = $TemplateId + SourceTenant = $TenantFilter + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -headers $Request.headers -API $APINAME -message "Failed to create template: $ErrorMessage" -Sev 'Error' -LogData (Get-CippException -Exception $_) + Write-Warning "Failed to create template: $ErrorMessage" + Write-Information $_.InvocationInfo.PositionMessage + + $Body = @{ + Results = @(@{ + resultText = "Failed to create template: $ErrorMessage" + state = 'error' + details = Get-CippException -Exception $_ + }) + } + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ($Body | ConvertTo-Json -Depth 10) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ListAppApprovalTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ListAppApprovalTemplates.ps1 new file mode 100644 index 000000000000..c39ad692a9b0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ListAppApprovalTemplates.ps1 @@ -0,0 +1,66 @@ +function Invoke-ListAppApprovalTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Application.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Table = Get-CIPPTable -TableName 'templates' + + try { + # Use the templates table with AppApprovalTemplate partition key + $filter = "PartitionKey eq 'AppApprovalTemplate'" + + $Templates = Get-CIPPAzDataTableEntity @Table -Filter $filter + + $Body = $Templates | ForEach-Object { + try { + # Safely parse the JSON data - handle potential invalid JSON format + $TemplateData = $null + if ($_.JSON) { + $TemplateData = $_.JSON | ConvertFrom-Json -ErrorAction Stop + } + + # Create a base object with properties directly from the table entity + $templateObject = [PSCustomObject]@{ + TemplateId = $_.RowKey + Timestamp = $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + # Add all properties from the JSON data if available + if ($TemplateData) { + foreach ($property in $TemplateData.PSObject.Properties) { + $templateObject | Add-Member -NotePropertyName $property.Name -NotePropertyValue $property.Value -Force + } + } + + return $templateObject + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Error processing template $($_.RowKey): $($_.Exception.Message)" -Sev 'Error' + return [PSCustomObject]@{ + TemplateId = $_.RowKey + TemplateName = 'Error parsing template data' + Error = $_.Exception.Message + Timestamp = $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + } + } + + } catch { + $Body = @{ + Results = "Failed to list app deployment templates: $($_.Exception.Message)" + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -Depth 10 -InputObject @($Body) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 new file mode 100644 index 000000000000..4e6f40b4b01b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-AddDomain.ps1 @@ -0,0 +1,50 @@ +function Invoke-AddDomain { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.tenantFilter + $DomainName = $Request.Body.domain + + # Interact with query parameters or the body of the request. + try { + if ([string]::IsNullOrWhiteSpace($DomainName)) { + throw 'Domain name is required' + } + + # Validate domain name format + if ($DomainName -notmatch '^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$') { + throw 'Invalid domain name format' + } + + Write-Information "Adding domain $DomainName to tenant $TenantFilter" + + $Body = @{ + id = $DomainName + } | ConvertTo-Json -Compress + + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter -type POST -body $Body -AsApp $true + + $Result = "Successfully added domain $DomainName to tenant $TenantFilter. Please verify the domain to complete setup." + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Added domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to add domain $DomainName`: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Failed to add domain $DomainName`: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} + diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 new file mode 100644 index 000000000000..91380834dae8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Domains/Invoke-ExecDomainAction.ps1 @@ -0,0 +1,91 @@ +function Invoke-ExecDomainAction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Body.tenantFilter + $DomainName = $Request.Body.domain + $Action = $Request.Body.Action + + try { + if ([string]::IsNullOrWhiteSpace($DomainName)) { + throw 'Domain name is required' + } + + if ([string]::IsNullOrWhiteSpace($Action)) { + throw 'Action is required' + } + + switch ($Action) { + 'verify' { + Write-Information "Verifying domain $DomainName for tenant $TenantFilter" + + $Body = @{ + verificationDnsRecordCollection = @() + } | ConvertTo-Json -Compress + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName/verify" -tenantid $TenantFilter -type POST -body $Body -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been verified successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Verified domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + 'delete' { + Write-Information "Deleting domain $DomainName from tenant $TenantFilter" + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName" -tenantid $TenantFilter -type DELETE -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been deleted successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Deleted domain $DomainName" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + 'setDefault' { + Write-Information "Setting domain $DomainName as default for tenant $TenantFilter" + + $Body = @{ + isDefault = $true + } | ConvertTo-Json -Compress + + $GraphRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/domains/$DomainName" -tenantid $TenantFilter -type PATCH -body $Body -AsApp $true + + $Result = @{ + resultText = "Domain $DomainName has been set as the default domain successfully." + state = 'success' + } + + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Set domain $DomainName as default" -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } + default { + throw "Invalid action: $Action" + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = @{ + resultText = "Failed to perform action on domain $DomainName`: $($ErrorMessage.NormalizedError)" + state = 'error' + } + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $TenantFilter -message "Failed to perform action on domain $DomainName`: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecAddSPN.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecAddSPN.ps1 new file mode 100644 index 000000000000..966ecb0072e9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecAddSPN.ps1 @@ -0,0 +1,32 @@ +Function Invoke-ExecAddSPN { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + try { + $null = New-GraphPostRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals' -tenantid $env:TenantID -type POST -Body "{ `"appId`": `"2832473f-ec63-45fb-976f-5d45a7d4bb91`" }" -NoAuthCheck $true + $Result = "Successfully completed request. Add your GDAP migration permissions to your SAM application here: https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/~/CallAnAPI/appId/$($env:ApplicationID)/isMSAApp/ " + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to add SPN. The error was: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $env:TenantID -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 new file mode 100644 index 000000000000..840b2006a873 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOffboardTenant.ps1 @@ -0,0 +1,221 @@ +function Invoke-ExecOffboardTenant { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + try { + $TenantQuery = $Request.Body.TenantFilter.value ?? $Request.Body.TenantFilter + + $Tenant = Get-Tenants -IncludeAll -TenantFilter $TenantQuery + $TenantId = $Tenant.customerId + $TenantFilter = $Tenant.defaultDomainName + + $Results = [System.Collections.Generic.List[object]]::new() + $Errors = [System.Collections.Generic.List[object]]::new() + + if (!$Tenant) { + $Results.Add('Tenant has already been offboarded') + } elseif ($TenantId -eq $env:TenantID) { + $Errors.Add('You cannot offboard the CSP tenant') + } else { + if ($request.body.RemoveCSPGuestUsers -eq $true) { + # Delete guest users who's domains match the CSP tenants + try { + try { + $domains = (New-GraphGETRequest -Uri "https://graph.microsoft.com/v1.0/domains?`$select=id" -tenantid $env:TenantID -NoAuthCheck:$true).id + $DomainFilter = ($Domains | ForEach-Object { "endswith(mail, '$_')" }) -join ' or ' + $CSPGuestUsers = (New-GraphGETRequest -Uri "https://graph.microsoft.com/v1.0/users?`$select=id,mail&`$filter=userType eq 'Guest' and ($DomainFilter)&`$count=true" -tenantid $TenantFilter -ComplexFilter) + } catch { + $Errors.Add("Failed to retrieve guest users: $($_.Exception.message)") + } + + if ($CSPGuestUsers) { + [System.Collections.Generic.List[PSCustomObject]]$BulkRequests = @($CSPGuestUsers | ForEach-Object { + @{ + id = $($_.id) + method = 'DELETE' + url = "/users/$($_.id)" + } + }) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + $results.Add('Successfully removed guest users') + Write-LogMessage -headers $Request.Headers -API $APIName -message 'CSP Guest users were removed' -Sev 'Info' -tenant $TenantFilter + } else { + $results.Add('No guest users found to remove') + } + } catch { + $errors.Add("Something went wrong while deleting guest users: $($_.Exception.message)") + } + } + + if ($request.body.RemoveCSPnotificationContacts -eq $true) { + # Remove all email addresses that match the CSP tenants domains from the contact properties in /organization + try { + try { + $domains = (New-GraphGETRequest -Uri "https://graph.microsoft.com/v1.0/domains?`$select=id" -tenantid $env:TenantID -NoAuthCheck:$true).id + } catch { + throw "Failed to retrieve CSP domains: $($_.Exception.message)" + } + + try { + # Get /organization data + $orgContacts = New-GraphGETRequest -Uri "https://graph.microsoft.com/v1.0/organization?`$select=id,marketingNotificationEmails,securityComplianceNotificationMails,technicalNotificationMails" -tenantid $TenantFilter + + } catch { + throw "Failed to retrieve CSP domains: $($_.Exception.message)" + } + } catch { + $errors.Add("$($_.Exception.message)") + } + + # foreach through the properties we want to check/update + @('marketingNotificationEmails', 'securityComplianceNotificationMails', 'technicalNotificationMails') | ForEach-Object { + $property = $_ + $propertyContacts = $orgContacts.($($property)) + + if ($propertyContacts -and ($domains -notcontains ($propertyContacts | ForEach-Object { $_.Split('@')[1] }))) { + $newPropertyContent = [System.Collections.Generic.List[object]]($propertyContacts | Where-Object { $domains -notcontains $_.Split('@')[1] }) + + $patchContactBody = if (!($newPropertyContent)) { "{ `"$($property)`" : [] }" } else { [pscustomobject]@{ $property = $newPropertyContent } | ConvertTo-Json } + + try { + New-GraphPostRequest -type PATCH -body $patchContactBody -Uri "https://graph.microsoft.com/v1.0/organization/$($orgContacts.id)" -tenantid $TenantFilter -ContentType 'application/json' + $Results.Add("Successfully removed notification contacts from $($property): $(($propertyContacts | Where-Object { $domains -contains $_.Split('@')[1] }))") + Write-LogMessage -headers $Request.Headers -API $APIName -message "Contacts were removed from $($property)" -Sev 'Info' -tenant $TenantFilter + } catch { + $Errors.Add("Failed to update property $($property): $($_.Exception.message)") + } + } else { + $results.Add("No notification contacts found in $($property)") + } + } + # TODO Add logic for privacyProfile later - rvdwegen + + } + + if ($request.body.RemoveDomainAnalyserData -eq $true) { + # Remove all Domain Analyser data for this tenant + try { + $DomainTable = Get-CIPPTable -Table 'Domains' + $Filter = "TenantGUID eq '{0}'" -f $TenantId + $DomainEntries = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter + + if ($DomainEntries) { + $DomainCount = ($DomainEntries | Measure-Object).Count + foreach ($Domain in $DomainEntries) { + Remove-AzDataTableEntity @DomainTable -Entity $Domain + } + $Results.Add("Successfully removed $DomainCount Domain Analyser entries") + Write-LogMessage -headers $Request.Headers -API $APIName -message "Removed $DomainCount Domain Analyser entries" -Sev 'Info' -tenant $TenantFilter + } else { + $Results.Add('No Domain Analyser data found for this tenant') + } + } catch { + $Errors.Add("Failed to remove Domain Analyser data: $($_.Exception.message)") + } + } + + $VendorApps = $Request.Body.vendorApplications + if ($VendorApps) { + $VendorApps | ForEach-Object { + try { + $null = (New-GraphPostRequest -type 'DELETE' -Uri "https://graph.microsoft.com/v1.0/serviceprincipals/$($_.value)" -tenantid $TenantFilter) + $Results.Add("Successfully removed app $($_.label)") + Write-LogMessage -headers $Headers -API $APIName -message "App $($_.label) was removed" -Sev 'Info' -tenant $TenantFilter + } catch { + $Errors.Add("Failed to removed app $($_.label)") + } + } + } + + # All customer tenant specific actions ALWAYS have to be completed before this action! + if ($request.body.RemoveMultitenantCSPApps -eq $true) { + # Remove multi-tenant apps with the CSP tenant as origin + try { + $MultiTenantCSPApps = (New-GraphGETRequest -Uri "https://graph.microsoft.com/v1.0/servicePrincipals?`$count=true&`$select=displayName,appId,id,appOwnerOrganizationId&`$filter=appOwnerOrganizationId eq $($env:TenantID)" -tenantid $TenantFilter -ComplexFilter) + $sortedArray = $MultiTenantCSPApps | Sort-Object @{Expression = { if ($_.appId -eq $env:ApplicationID) { 1 } else { 0 } }; Ascending = $true } + $sortedArray | ForEach-Object { + try { + $null = (New-GraphPostRequest -type 'DELETE' -Uri "https://graph.microsoft.com/v1.0/serviceprincipals/$($_.id)" -tenantid $TenantFilter) + $Results.Add("Successfully removed app $($_.displayName)") + Write-LogMessage -headers $Request.Headers -API $APIName -message "App $($_.displayName) was removed" -Sev 'Info' -tenant $TenantFilter + } catch { + #$Results.Add("Failed to removed app $($_.displayName)") + $Errors.Add("Failed to removed app $($_.displayName)") + } + } + } catch { + #$Results.Add("Failed to retrieve multi-tenant apps, no apps have been removed: $($_.Exception.message)") + $Errors.Add("Failed to retrieve multi-tenant CSP apps, no apps have been removed: $($_.Exception.message)") + } + } + $ClearCache = $false + if ($request.body.TerminateGDAP -eq $true) { + # Terminate GDAP relationships + $ClearCache = $true + try { + $delegatedAdminRelationships = (New-GraphGETRequest -Uri "https://graph.microsoft.com/v1.0/tenantRelationships/delegatedAdminRelationships?`$filter=(status eq 'active') AND (customer/tenantId eq '$tenantid')" -tenantid $env:TenantID) + $delegatedAdminRelationships | ForEach-Object { + try { + $null = (New-GraphPostRequest -type 'POST' -Uri "https://graph.microsoft.com/v1.0/tenantRelationships/delegatedAdminRelationships/$($_.id)/requests" -body '{"action":"terminate"}' -ContentType 'application/json' -tenantid $env:TenantID) + $Results.Add("Successfully terminated GDAP relationship $($_.displayName) from tenant $TenantFilter") + Write-LogMessage -headers $Request.Headers -API $APIName -message "GDAP Relationship $($_.displayName) has been terminated" -Sev 'Info' -tenant $TenantFilter + + } catch { + $($_.Exception.message) + #$results.Add("Failed to terminate GDAP relationship $($_.displayName): $($_.Exception.message)") + $errors.Add("Failed to terminate GDAP relationship $($_.displayName): $($_.Exception.message)") + } + } + } catch { + $($_.Exception.message) + #$Results.Add("Failed to retrieve GDAP relationships, no relationships have been terminated: $($_.Exception.message)") + $Errors.Add("Failed to retrieve GDAP relationships, no relationships have been terminated: $($_.Exception.message)") + } + } + + if ($request.body.TerminateContract -eq $true) { + # Terminate contract relationship + try { + $null = (New-GraphPostRequest -type 'PATCH' -body '{ "relationshipToPartner": "none" }' -Uri "https://api.partnercenter.microsoft.com/v1/customers/$TenantFilter" -ContentType 'application/json' -scope 'https://api.partnercenter.microsoft.com/user_impersonation' -tenantid $env:TenantID) + $Results.Add('Successfully terminated contract relationship') + Write-LogMessage -headers $Headers -API $APIName -message 'Contract relationship terminated' -Sev 'Info' -tenant $TenantFilter + } catch { + #$Results.Add("Failed to terminate contract relationship: $($_.Exception.message)") + $Errors.Add("Failed to terminate contract relationship: $($_.Exception.message)") + } + } + } + + if ($ClearCache) { + $null = Get-Tenants -CleanOld + $Results.Add('Tenant cache has been cleared') + } + + Write-LogMessage -headers $Headers -API $APIName -message 'Offboarding completed' -Sev 'Info' -tenant $TenantFilter + $StatusCode = [HttpStatusCode]::OK + $body = [pscustomobject]@{ + 'Results' = @($Results) + 'Errors' = @($Errors) + } + } catch { + $StatusCode = [HttpStatusCode]::OK + $body = $_.Exception.message + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOnboardTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOnboardTenant.ps1 new file mode 100644 index 000000000000..fc182fe05dac --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecOnboardTenant.ps1 @@ -0,0 +1,115 @@ +function Invoke-ExecOnboardTenant { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Administration.ReadWrite + #> + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $Id = $Request.Body.id + if ($Id) { + try { + $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' + + if ($Request.Body.Cancel -eq $true) { + $TenantOnboarding = Get-CIPPAzDataTableEntity @OnboardTable -Filter "RowKey eq '$Id'" + if ($TenantOnboarding) { + Remove-AzDataTableEntity -Force @OnboardTable -Entity $TenantOnboarding + $Results = @{'Results' = 'Onboarding job canceled' } + $StatusCode = [HttpStatusCode]::OK + } else { + $Results = 'Onboarding job not found' + $StatusCode = [HttpStatusCode]::NotFound + } + } else { + $TenMinutesAgo = (Get-Date).AddMinutes(-10).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $TenantOnboarding = Get-CIPPAzDataTableEntity @OnboardTable -Filter "RowKey eq '$Id' and Timestamp ge datetime'$TenMinutesAgo'" + if (!$TenantOnboarding -or [bool]$Request.Body.Retry) { + $OnboardingSteps = [PSCustomObject]@{ + 'Step1' = @{ + 'Status' = 'pending' + 'Title' = 'Step 1: GDAP Invite' + 'Message' = 'Waiting for onboarding job to start' + } + 'Step2' = @{ + 'Status' = 'pending' + 'Title' = 'Step 2: GDAP Role Test' + 'Message' = 'Waiting for Step 1' + } + 'Step3' = @{ + 'Status' = 'pending' + 'Title' = 'Step 3: GDAP Group Mapping' + 'Message' = 'Waiting for Step 2' + } + 'Step4' = @{ + 'Status' = 'pending' + 'Title' = 'Step 4: CPV Refresh' + 'Message' = 'Waiting for Step 3' + } + 'Step5' = @{ + 'Status' = 'pending' + 'Title' = 'Step 5: Graph API Test' + 'Message' = 'Waiting for Step 4' + } + } + $TenantOnboarding = [PSCustomObject]@{ + PartitionKey = 'Onboarding' + RowKey = [string]$Id + CustomerId = '' + Status = 'queued' + OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + Relationship = '' + Logs = '' + Exception = '' + } + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + + $Item = [pscustomobject]@{ + FunctionName = 'ExecOnboardTenantQueue' + id = $Id + Roles = $Request.Body.gdapRoles + AddMissingGroups = $Request.Body.addMissingGroups + IgnoreMissingRoles = $Request.Body.ignoreMissingRoles + AutoMapRoles = $Request.Body.autoMapRoles + StandardsExcludeAllTenants = $Request.Body.standardsExcludeAllTenants + } + + $InputObject = @{ + OrchestratorName = 'OnboardingOrchestrator' + Batch = @($Item) + } + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-LogMessage -headers $Headers -API $APIName -message "Onboarding job $Id started" -Sev 'Info' -LogData @{ 'InstanceId' = $InstanceId } + } + + $Steps = $TenantOnboarding.OnboardingSteps | ConvertFrom-Json + $OnboardingSteps = foreach ($Step in $Steps.PSObject.Properties.Name) { $Steps.$Step } + $Relationship = try { $TenantOnboarding.Relationship | ConvertFrom-Json -ErrorAction Stop } catch { @{} } + $Logs = try { $TenantOnboarding.Logs | ConvertFrom-Json -ErrorAction Stop } catch { @{} } + $TenantOnboarding.OnboardingSteps = $OnboardingSteps + $TenantOnboarding.Relationship = $Relationship + $TenantOnboarding.Logs = $Logs + $Results = $TenantOnboarding + $StatusCode = [HttpStatusCode]::OK + } + } catch { + $ErrorMsg = Get-NormalizedError -message $($_.Exception.Message) + $Results = "Function Error: $($_.InvocationInfo.ScriptLineNumber) - $ErrorMsg" + $StatusCode = [HttpStatusCode]::BadRequest + } + } else { + $StatusCode = [HttpStatusCode]::NotFound + $Results = 'Relationship not found' + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecUpdateSecureScore.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecUpdateSecureScore.ps1 new file mode 100644 index 000000000000..c7593f0ab135 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecUpdateSecureScore.ps1 @@ -0,0 +1,45 @@ +function Invoke-ExecUpdateSecureScore { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.TenantFilter + $ControlName = $Request.Body.ControlName + + if ($ControlName -match '^scid_') { + $Result = 'Defender controls cannot be updated via this API. Please use the Microsoft 365 Defender portal to update these controls.' + $StatusCode = [HttpStatusCode]::BadRequest + } else { + $Body = @{ + comment = $Request.Body.reason + state = $Request.Body.resolutionType.value + vendorInformation = $Request.Body.vendorInformation + } + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/security/secureScoreControlProfiles/$ControlName" -tenantid $TenantFilter -type PATCH -Body (ConvertTo-Json -InputObject $Body -Compress) + $StatusCode = [HttpStatusCode]::OK + $Result = "Successfully set control $ControlName to $($Body.state)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to set control $ControlName to $($Body.state). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListAppConsentRequests.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListAppConsentRequests.ps1 new file mode 100644 index 000000000000..45faac54ba3a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListAppConsentRequests.ps1 @@ -0,0 +1,83 @@ +function Invoke-ListAppConsentRequests { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.Read + #> + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $RequestStatus = $Request.Query.RequestStatus + $Filter = $Request.Query.Filter + + try { + if ($TenantFilter -eq 'AllTenants') { + throw 'AllTenants is not yet supported' + } + + # Apply server-side filtering if requested + $Uri = 'https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests' # Need the beta endpoint to get consentType + if ($Filter -eq $true -and $RequestStatus) { + switch ($RequestStatus) { + 'InProgress' { + $FilterQuery = "userConsentRequests/any (u:u/status eq '$RequestStatus')" + $Uri = "$Uri`?`$filter=$([System.Web.HttpUtility]::UrlEncode($FilterQuery))" + Write-Host "Applying server-side filter for RequestStatus: $RequestStatus" + $ServerSideFilteringApplied = $true + } + default { + # All the other values are not supported yet even if the Graph API docs say they are. -Bobby + $ServerSideFilteringApplied = $false + } + } + } + + $appConsentRequests = New-GraphGetRequest -Uri $Uri -tenantid $TenantFilter + + $Results = foreach ($app in $appConsentRequests) { + $userConsentRequests = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/identityGovernance/appConsent/appConsentRequests/$($app.id)/userConsentRequests" -tenantid $TenantFilter + $userConsentRequests | ForEach-Object { + [pscustomobject]@{ + appId = $app.appId + appDisplayName = $app.appDisplayName + requestUser = $_.createdBy.user.userPrincipalName + requestReason = $_.reason + requestDate = $_.createdDateTime + requestStatus = $_.status + reviewedBy = $_.approval.stages.reviewedBy.userPrincipalName + reviewedJustification = $_.approval.stages.justification + reviewedDate = $_.approval.stages.reviewedDateTime + reviewedStatus = $_.approval.stages.status + scopes = $app.pendingScopes.displayName + consentUrl = if ($app.consentType -eq 'Static') { + # if something is going wrong here you've probably stumbled on a fourth variation - rvdwegen + "https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($app.appId)&bf_id=$($app.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } elseif ($app.pendingScopes.displayName) { + "https://login.microsoftonline.com/$($TenantFilter)/v2.0/adminConsent?client_id=$($app.appId)&scope=$($app.pendingScopes.displayName -Join(' '))&bf_id=$($app.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } else { + "https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($app.appId)&bf_id=$($app.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize" + } + } + } + } + + # Apply filtering if requested. Has to be done before and after the foreach loop, as the serverside filter is only supported for InProgress. + if ($Filter -eq $true -and $ServerSideFilteringApplied -eq $false) { + if ($RequestStatus) { + Write-Host "Filtering by RequestStatus: $RequestStatus" + $Results = $Results | Where-Object { $_.requestStatus -eq $RequestStatus } + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $StatusCode = [HttpStatusCode]::InternalServerError + $Results = "Error: $($ErrorMessage.NormalizedError)" + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListDomains.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListDomains.ps1 new file mode 100644 index 000000000000..f9662cbe6514 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListDomains.ps1 @@ -0,0 +1,25 @@ +Function Invoke-ListDomains { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $Result = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter | Select-Object id, isdefault, isinitial | Sort-Object isdefault -Descending + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Result) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListTenantOnboarding.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListTenantOnboarding.ps1 new file mode 100644 index 000000000000..3fd36731e3f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ListTenantOnboarding.ps1 @@ -0,0 +1,33 @@ +function Invoke-ListTenantOnboarding { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.Read + #> + Param($Request, $TriggerMetadata) + try { + $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' + $TenantOnboardings = Get-CIPPAzDataTableEntity @OnboardTable + $Results = @(foreach ($TenantOnboarding in $TenantOnboardings) { + $Steps = $TenantOnboarding.OnboardingSteps | ConvertFrom-Json + $OnboardingSteps = foreach ($Step in $Steps.PSObject.Properties.Name) { $Steps.$Step } + $Relationship = try { $TenantOnboarding.Relationship | ConvertFrom-Json -ErrorAction Stop } catch { @{} } + $Logs = try { $TenantOnboarding.Logs | ConvertFrom-Json -ErrorAction Stop } catch { @{} } + $TenantOnboarding.OnboardingSteps = $OnboardingSteps + $TenantOnboarding.Relationship = $Relationship + $TenantOnboarding.Logs = $Logs + $TenantOnboarding + }) + $Results = $Results | Sort-Object Timestamp -Descending + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Function Error: $($ErrorMessage.LineNumber) - $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 new file mode 100644 index 000000000000..8c7ab7fab111 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 @@ -0,0 +1,32 @@ +function Invoke-SetAuthMethod { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + Param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $State = if ($Request.Body.state -eq 'enabled') { $true } else { $false } + $TenantFilter = $Request.Body.tenantFilter + $AuthenticationMethodId = $Request.Body.Id + + + try { + $Result = Set-CIPPAuthenticationPolicy -Tenant $TenantFilter -APIName $APIName -AuthenticationMethodId $AuthenticationMethodId -Enabled $State -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = [pscustomobject]@{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-AddTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-AddTenant.ps1 new file mode 100644 index 000000000000..3d83a04a2bd6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-AddTenant.ps1 @@ -0,0 +1,207 @@ +function Invoke-AddTenant { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Config.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $Action = $Request.Body.Action ?? $Request.Query.Action + $TenantName = $Request.Body.TenantName ?? $Request.Query.TenantName + $StatusCode = [HttpStatusCode]::OK + + switch ($Action) { + 'ValidateDomain' { + # Validate the onmicrosoft.com domain + $Domain = "$($TenantName).onmicrosoft.com" + $DomainCheckUri = "https://api.partnercenter.microsoft.com/v1/domains/$Domain" + + Write-Information "Checking $Domain" + try { + + $null = New-GraphPOSTRequest -type HEAD -uri $DomainCheckUri -scope 'https://api.partnercenter.microsoft.com/.default' -NoAuthCheck $true -AddedHeaders $Headers + + $Body = @{ + Success = $false + Message = "The domain '$Domain' is already in use." + } + } catch { + $Body = @{ + Success = $true + } + } + + } + 'GetOrganizationProfile' { + $OrganizationProfileUri = 'https://api.partnercenter.microsoft.com/v1/profiles/organization' + try { + $OrgResponse = New-GraphGetRequest -uri $OrganizationProfileUri -scope 'https://api.partnercenter.microsoft.com/.default' -NoAuthCheck $true -AddedHeaders $Headers + # remove the first character from the response and then convert from JSON + if (!$OrgResponse.id -and $OrgResponse -notmatch '^{') { + $OrgResponse = $OrgResponse.Substring(1) | ConvertFrom-Json + } + + $Body = @{ + Results = $OrgResponse + } + } catch { + $Body = @{ + Results = @(@{ + state = 'error' + resultText = "Failed to retrieve organization profile: $($_.Exception.Message)" + }) + } + $StatusCode = [HttpStatusCode]::BadRequest + } + } + 'AddTenant' { + # Get organization profile from graph.microsoft.com + $Org = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -NoAuthCheck $true + + $CanCreateCustomers = $false + $PartnerType = $Org.partnerTenantType + if ($PartnerType -eq 'valueAddedResellerPartnerDelegatedAdmin') { + # Tier 2 CSP - Get MPN id from partner center + $PartnerCenterUri = 'https://api.partnercenter.microsoft.com/accountenrollments/v1/accountexternalresourcekeys?accountIds={0}&keyType=mpnId' -f $env:TenantID + $MPNId = New-GraphGetRequest -uri $PartnerCenterUri -scope 'https://api.partnercenter.microsoft.com/.default' -NoAuthCheck $true + $AssociatedPartnerId = $MpnId.items[0].keyValue + Write-Host "Tier 2 CSP - Associated Partner ID: $AssociatedPartnerId" + $CanCreateCustomers = $true + } elseif ($PartnerType -eq 'resellerPartnerDelegatedAdmin') { + # Tier 1 CSP + $CanCreateCustomers = $true + } + + if (!$CanCreateCustomers) { + $Body = @{ + $Results = @(@{ + state = 'error' + resultText = 'You do not have permission to create customers. You must be a Tier 1 or Tier 2 CSP.' + }) + } + } else { + $Payload = @{ + enableGDAPByDefault = $false + Id = $null + CommerceId = $null + CompanyProfile = @{ + TenantId = $null + Domain = '{0}.onmicrosoft.com' -f $TenantName + CompanyName = $Request.Body.CompanyName + Attributes = @{ ObjectType = 'CustomerCompanyProfile' } + } + BillingProfile = @{ + Id = $null + FirstName = $Request.Body.FirstName + LastName = $Request.Body.LastName + Email = $Request.Body.Email + Culture = 'EN-US' + Language = 'En' + CompanyName = $Request.Body.CompanyName + DefaultAddress = @{ + Country = $Request.Body.Country + Region = $null + City = $Request.Body.City + State = $Request.Body.State + AddressLine1 = $Request.Body.AddressLine1 + AddressLine2 = $Request.Body.AddressLine2 + PostalCode = $Request.Body.PostalCode + FirstName = $Request.Body.FirstName + LastName = $Request.Body.LastName + PhoneNumber = $Request.Body.PhoneNumber + } + Attributes = @{ ObjectType = 'CustomerBillingProfile' } + } + RelationshipToPartner = 'none' + AllowDelegatedAccess = $null + UserCredentials = $null + CustomDomains = $null + Attributes = @{ ObjectType = 'Customer' } + } + + if ($AssociatedPartnerId) { + $Payload.AssociatedPartnerId = $AssociatedPartnerId + } + + $CustomerCreationUri = 'https://api.partnercenter.microsoft.com/v1/customers' + Write-Warning "Posting to $CustomerCreationUri" + Write-Information ($Payload | ConvertTo-Json -Depth 10) + + try { + # not doing this yet + + #$Response = New-GraphPOSTRequest -type POST -uri $CustomerCreationUri -scope 'https://api.partnercenter.microsoft.com/.default' -Body ($Payload | ConvertTo-Json -Depth 10) -NoAuthCheck $true -AddedHeaders $Headers + + # Sample response + $Response = @{ + userCredentials = @{ + userName = 'test' + password = 'this_is_not_a_real_password' + } + } + #### + + + $Body = @{ + Results = @(@{ + state = 'success' + resultText = "Tenant created successfully. 'Username is $($Response.userCredentials.userName)@{0}.onmicrosoft.com'. Click copy to retrieve the password." -f $TenantName + copyField = $Response.userCredentials.password + }) + } + } catch { + $Body = @{ + Results = @(@{ + state = 'error' + resultText = "Failed to create tenant: $($_.Exception.Message)" + }) + } + $StatusCode = [HttpStatusCode]::BadRequest + } + } + } + 'ValidateAddress' { + $AddressPayload = @{ + AddressLine1 = $Request.Body.AddressLine1 + AddressLine2 = $Request.Body.AddressLine2 + City = $Request.Body.City + State = $Request.Body.State + PostalCode = $Request.Body.PostalCode + Country = $Request.Body.Country + } + + $AddressValidationUri = 'https://api.partnercenter.microsoft.com/v1/validations/address' + try { + $Response = New-GraphPOSTRequest -type POST -uri $AddressValidationUri -scope 'https://api.partnercenter.microsoft.com/.default' -Body ($AddressPayload | ConvertTo-Json -Depth 10) -NoAuthCheck $true + + return @{ + Status = 'Success' + OriginalAddress = $Response.originalAddress + SuggestedAddresses = $Response.suggestedAddresses + ValidationStatus = $Response.status + } + } catch { + return @{ + state = 'Error' + resultText = "Address validation failed: $($_.Exception.Message)" + } + } + } + default { + return @{ + state = 'Error' + resultText = "Invalid action specified: $($Request.Body.Action)" + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenant.ps1 new file mode 100644 index 000000000000..dfc33fd7f5f3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenant.ps1 @@ -0,0 +1,106 @@ +function Invoke-EditTenant { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Config.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $customerId = $Request.Body.customerId + $tenantAlias = $Request.Body.tenantAlias + $tenantGroups = $Request.Body.tenantGroups + + $PropertiesTable = Get-CippTable -TableName 'TenantProperties' + $Existing = Get-CIPPAzDataTableEntity @PropertiesTable -Filter "PartitionKey eq '$customerId'" + $Tenant = Get-Tenants -TenantFilter $customerId + $TenantTable = Get-CippTable -TableName 'Tenants' + $GroupMembersTable = Get-CippTable -TableName 'TenantGroupMembers' + + try { + $AliasEntity = $Existing | Where-Object { $_.RowKey -eq 'Alias' } + if (!$tenantAlias) { + if ($AliasEntity) { + Write-Host 'Removing alias' + Remove-AzDataTableEntity @PropertiesTable -Entity $AliasEntity + $null = Get-Tenants -TenantFilter $customerId -TriggerRefresh + } + } else { + $aliasEntity = @{ + PartitionKey = $customerId + RowKey = 'Alias' + Value = $tenantAlias + } + $null = Add-CIPPAzDataTableEntity @PropertiesTable -Entity $aliasEntity -Force + Write-Host "Setting alias to $tenantAlias" + $Tenant | Add-Member -NotePropertyName 'originalDisplayName' -NotePropertyValue $tenant.displayName -Force + $Tenant.displayName = $tenantAlias + $null = Add-CIPPAzDataTableEntity @TenantTable -Entity $Tenant -Force + } + + # Update tenant groups + $CurrentGroupMemberships = Get-CIPPAzDataTableEntity @GroupMembersTable -Filter "customerId eq '$customerId'" + foreach ($Group in $tenantGroups) { + $GroupEntity = $CurrentGroupMemberships | Where-Object { $_.GroupId -eq $Group.groupId } + if (!$GroupEntity) { + $GroupEntity = @{ + PartitionKey = 'Member' + RowKey = '{0}-{1}' -f $Group.groupId, $customerId + GroupId = $Group.groupId + customerId = $customerId + } + Add-CIPPAzDataTableEntity @GroupMembersTable -Entity $GroupEntity -Force + } + } + + # Remove any groups that are no longer selected + foreach ($Group in $CurrentGroupMemberships) { + if ($tenantGroups.GroupId -notcontains $Group.GroupId) { + Remove-AzDataTableEntity @GroupMembersTable -Entity $Group + } + } + $DomainBasedEntries = Get-CIPPAzDataTableEntity @GroupMembersTable -Filter "customerId eq '$($Tenant.defaultDomainName)'" + if ($DomainBasedEntries) { + foreach ($Entry in $DomainBasedEntries) { + try { + # Add corrected GUID-based entry using the actual GUID + $NewEntry = @{ + PartitionKey = 'Member' + RowKey = '{0}-{1}' -f $Entry.GroupId, $Tenant.customerId + GroupId = $Entry.GroupId + customerId = $Tenant.customerId + } + Add-CIPPAzDataTableEntity @GroupMembersTable -Entity $NewEntry -Force + Remove-AzDataTableEntity @GroupMembersTable -Entity $Entry + } catch { + Write-Host "Error migrating entry: $($_.Exception.Message)" + } + } + } + + $response = @{ + state = 'success' + resultText = 'Tenant details updated successfully' + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $response + }) + } catch { + Write-LogMessage -headers $Headers -tenant $customerId -API $APINAME -message "Edit Tenant failed. The error is: $($_.Exception.Message)" -Sev 'Error' + $response = @{ + state = 'error' + resultText = $_.Exception.Message + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $response + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenantOffboardingDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenantOffboardingDefaults.ps1 new file mode 100644 index 000000000000..014e9aed8d7c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-EditTenantOffboardingDefaults.ps1 @@ -0,0 +1,79 @@ +function Invoke-EditTenantOffboardingDefaults { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Config.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $customerId = $Request.Body.customerId + $offboardingDefaults = $Request.Body.offboardingDefaults + + if (!$customerId) { + $response = @{ + state = 'error' + resultText = 'Customer ID is required' + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $response + }) + return + } + + $PropertiesTable = Get-CippTable -TableName 'TenantProperties' + + try { + # Convert the offboarding defaults to JSON string and ensure it's treated as a string + $jsonValue = [string]($offboardingDefaults | ConvertTo-Json -Compress) + + if ($jsonValue -and $jsonValue -ne '{}' -and $jsonValue -ne 'null' -and $jsonValue -ne '') { + # Save offboarding defaults + $offboardingEntity = @{ + PartitionKey = [string]$customerId + RowKey = [string]'OffboardingDefaults' + Value = [string]$jsonValue + } + $null = Add-CIPPAzDataTableEntity @PropertiesTable -Entity $offboardingEntity -Force + Write-LogMessage -headers $Headers -tenant $customerId -API $APIName -message "Updated tenant offboarding defaults" -Sev 'Info' + + $resultText = 'Tenant offboarding defaults updated successfully' + } else { + # Remove offboarding defaults if empty or null + $Existing = Get-CIPPAzDataTableEntity @PropertiesTable -Filter "PartitionKey eq '$customerId' and RowKey eq 'OffboardingDefaults'" + if ($Existing) { + Remove-AzDataTableEntity @PropertiesTable -Entity $Existing + Write-LogMessage -headers $Headers -tenant $customerId -API $APIName -message "Removed tenant offboarding defaults" -Sev 'Info' + } + + $resultText = 'Tenant offboarding defaults cleared successfully' + } + + $response = @{ + state = 'success' + resultText = $resultText + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $response + }) + } catch { + Write-LogMessage -headers $Headers -tenant $customerId -API $APINAME -message "Edit Tenant Offboarding Defaults failed. The error is: $($_.Exception.Message)" -Sev 'Error' + $response = @{ + state = 'error' + resultText = $_.Exception.Message + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $response + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenantDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenantDetails.ps1 new file mode 100644 index 000000000000..98bb7a0641e6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenantDetails.ps1 @@ -0,0 +1,42 @@ +Function Invoke-ListTenantDetails { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $org = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter | Select-Object displayName, id, city, country, countryLetterCode, street, state, postalCode, + @{ Name = 'businessPhones'; Expression = { $_.businessPhones -join ', ' } }, + @{ Name = 'technicalNotificationMails'; Expression = { $_.technicalNotificationMails -join ', ' } }, + tenantType, createdDateTime, onPremisesLastPasswordSyncDateTime, onPremisesLastSyncDateTime, onPremisesSyncEnabled, assignedPlans + + $customProperties = Get-TenantProperties -customerId $TenantFilter + $org | Add-Member -MemberType NoteProperty -Name 'customProperties' -Value $customProperties + + $Groups = (Get-TenantGroups -TenantFilter $TenantFilter) ?? @() + $org | Add-Member -MemberType NoteProperty -Name 'Groups' -Value @($Groups) + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $org = "Failed to retrieve tenant details: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $org -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $org + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 new file mode 100644 index 000000000000..c0fa299b5466 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 @@ -0,0 +1,170 @@ +function Invoke-ListTenants { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantAccess = Test-CIPPAccess -Request $Request -TenantList + Write-Host "Tenant Access: $TenantAccess" + + $AllTenantSelector = $Request.Query.AllTenantSelector + + $IncludeOffboardingDefaults = $Request.Query.IncludeOffboardingDefaults + + # Clear Cache + if ($Request.Body.ClearCache -eq $true) { + $Results = Remove-CIPPCache -tenantsOnly $Request.Body.TenantsOnly + + $InputObject = [PSCustomObject]@{ + Batch = @( + @{ + FunctionName = 'UpdateTenants' + } + ) + OrchestratorName = 'UpdateTenants' + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + + $GraphRequest = [pscustomobject]@{'Results' = 'Cache has been cleared and a tenant refresh is queued.' } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = @($GraphRequest) + Metadata = @{ + Details = $Results + } + } + }) + #Get-Tenants -IncludeAll -TriggerRefresh + return + } + if ($Request.Query.TriggerRefresh) { + if ($Request.Query.TenantFilter -and $Request.Query.TenantFilter -ne 'AllTenants') { + Get-Tenants -TriggerRefresh -TenantFilter $Request.Query.TenantFilter + } else { + $InputObject = [PSCustomObject]@{ + Batch = @( + @{ + FunctionName = 'UpdateTenants' + } + ) + OrchestratorName = 'UpdateTenants' + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + } + } + try { + $TenantFilter = $Request.Query.tenantFilter + $tenantParams = @{ + IncludeErrors = $true + SkipDomains = $true + } + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $tenantParams['TenantFilter'] = $TenantFilter + } + + $Tenants = Get-Tenants @tenantParams + + if ($TenantAccess -notcontains 'AllTenants') { + $Tenants = $Tenants | Where-Object -Property customerId -In $TenantAccess + } + + # If offboarding defaults are requested, fetch them + if ($IncludeOffboardingDefaults -eq 'true' -and $Tenants) { + $PropertiesTable = Get-CippTable -TableName 'TenantProperties' + + # Get all offboarding defaults for all tenants in one query for performance + $AllOffboardingDefaults = Get-CIPPAzDataTableEntity @PropertiesTable -Filter "RowKey eq 'OffboardingDefaults'" + + # Add offboarding defaults to each tenant + foreach ($Tenant in $Tenants) { + $TenantDefaults = $AllOffboardingDefaults | Where-Object { $_.PartitionKey -eq $Tenant.customerId } + if ($TenantDefaults) { + try { + $Tenant | Add-Member -MemberType NoteProperty -Name 'offboardingDefaults' -Value ($TenantDefaults.Value | ConvertFrom-Json) -Force + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to parse offboarding defaults for tenant $($Tenant.customerId): $($_.Exception.Message)" -Sev 'Warning' + $Tenant | Add-Member -MemberType NoteProperty -Name 'offboardingDefaults' -Value $null -Force + } + } else { + $Tenant | Add-Member -MemberType NoteProperty -Name 'offboardingDefaults' -Value $null -Force + } + } + } + + if (($null -eq $TenantFilter -or $TenantFilter -eq 'null') -or $Request.Query.Mode -eq 'TenantList') { + $TenantList = [system.collections.generic.list[object]]::new() + if ($AllTenantSelector -eq $true) { + $AllTenantsObject = @{ + customerId = 'AllTenants' + defaultDomainName = 'AllTenants' + displayName = '*All Tenants' + domains = 'AllTenants' + GraphErrorCount = 0 + } + + # Add offboarding defaults to AllTenants object if requested + if ($IncludeOffboardingDefaults -eq 'true') { + $AllTenantsObject.offboardingDefaults = $null + } + + $TenantList.Add($AllTenantsObject) | Out-Null + + if (($Tenants).length -gt 1) { + $TenantList.AddRange($Tenants) | Out-Null + } elseif ($Tenants) { + $TenantList.Add($Tenants) | Out-Null + } + $body = $TenantList + } else { + $Body = $Tenants + } + if ($Request.Query.Mode -eq 'TenantList') { + # add portal link properties + $Body = $Body | Select-Object *, @{Name = 'portal_m365'; Expression = { "https://admin.cloud.microsoft/?delegatedOrg=$($_.initialDomainName)" } }, + @{Name = 'portal_exchange'; Expression = { "https://admin.cloud.microsoft/exchange?delegatedOrg=$($_.initialDomainName)" } }, + @{Name = 'portal_entra'; Expression = { "https://entra.microsoft.com/$($_.defaultDomainName)" } }, + @{Name = 'portal_teams'; Expression = { "https://admin.teams.microsoft.com?delegatedOrg=$($_.initialDomainName)" } }, + @{Name = 'portal_azure'; Expression = { "https://portal.azure.com/$($_.defaultDomainName)" } }, + @{Name = 'portal_intune'; Expression = { "https://intune.microsoft.com/$($_.defaultDomainName)" } }, + @{Name = 'portal_security'; Expression = { "https://security.microsoft.com/?tid=$($_.customerId)" } }, + @{Name = 'portal_compliance'; Expression = { "https://purview.microsoft.com/?tid=$($_.customerId)" } }, + @{Name = 'portal_sharepoint'; Expression = { "/api/ListSharePointAdminUrl?tenantFilter=$($_.defaultDomainName)" } }, + @{Name = 'portal_platform'; Expression = { "https://admin.powerplatform.microsoft.com/account/login/$($_.customerId)" } }, + @{Name = 'portal_bi'; Expression = { "https://app.powerbi.com/admin-portal?ctid=$($_.customerId)" } } + } + + } else { + $body = $Tenants + } + + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message 'Listed Tenant Details' -Sev 'Debug' + } catch { + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message "List Tenant failed. The error is: $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{ + 'Results' = "Failed to retrieve tenants: $($_.Exception.Message)" + defaultDomainName = '' + displayName = 'Failed to retrieve tenants. Perform a permission check.' + customerId = '' + + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Body) + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-RemoveTenantCapabilitiesCache.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-RemoveTenantCapabilitiesCache.ps1 new file mode 100644 index 000000000000..8c0d5174553c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-RemoveTenantCapabilitiesCache.ps1 @@ -0,0 +1,57 @@ +function Invoke-RemoveTenantCapabilitiesCache { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Get the tenant identifier from query parameters + $DefaultDomainName = $Request.Query.defaultDomainName + if (-not $DefaultDomainName) { + $body = [pscustomobject]@{'Results' = 'Missing required parameter: defaultDomainName' } + $StatusCode = [HttpStatusCode]::BadRequest + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) + return + } + + try { + # Get the CacheCapabilities table + $Table = Get-CippTable -tablename 'CacheCapabilities' + + # Find the cache entry for this tenant + $Filter = "PartitionKey eq 'Capabilities' and RowKey eq '$DefaultDomainName'" + $CacheEntry = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + + if ($CacheEntry) { + # Remove the cache entry + Remove-AzDataTableEntity -Force @Table -Entity $CacheEntry + Write-LogMessage -Headers $Headers -API $APIName -message "Removed capabilities cache for tenant $DefaultDomainName." -Sev 'Info' + $body = [pscustomobject]@{'Results' = "Successfully removed capabilities cache for tenant $DefaultDomainName" } + $StatusCode = [HttpStatusCode]::OK + } else { + Write-LogMessage -Headers $Headers -API $APIName -message "No capabilities cache found for tenant $DefaultDomainName." -Sev 'Info' + $body = [pscustomobject]@{'Results' = "No capabilities cache found for tenant $DefaultDomainName" } + $StatusCode = [HttpStatusCode]::OK + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APIName -message "Failed to remove capabilities cache for tenant $DefaultDomainName. $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $body = [pscustomobject]@{'Results' = "Failed to remove capabilities cache: $($ErrorMessage.NormalizedError)" } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 new file mode 100644 index 000000000000..26fa7c3b2b19 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCAPolicy.ps1 @@ -0,0 +1,47 @@ +function Invoke-AddCAPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Tenants = $Request.body.tenantFilter.value + if ('AllTenants' -in $Tenants) { $Tenants = (Get-Tenants).defaultDomainName } + + $results = foreach ($Tenant in $tenants) { + try { + $NewCAPolicy = @{ + replacePattern = $Request.Body.replacename + Overwrite = $Request.Body.overwrite + TenantFilter = $Tenant + state = $Request.Body.NewState + DisableSD = $Request.Body.DisableSD + CreateGroups = $Request.Body.CreateGroups + RawJSON = $Request.Body.RawJSON + APIName = $APIName + Headers = $Headers + } + $CAPolicy = New-CIPPCAPolicy @NewCAPolicy + + "$CAPolicy" + } catch { + "$($_.Exception.Message)" + continue + } + + } + + $body = [pscustomobject]@{'Results' = @($results) } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCATemplate.ps1 new file mode 100644 index 000000000000..4bbd5ad79df3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddCATemplate.ps1 @@ -0,0 +1,46 @@ +Function Invoke-AddCATemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $Name = $Request.Body.name + try { + $GUID = (New-Guid).GUID + $JSON = New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $Request.Body + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'CATemplate' + GUID = "$GUID" + } + $Result = "Created CA Template $($Name) with GUID $GUID" + Write-LogMessage -headers $Headers -API $APIName -message "Created CA Template $($Name) with GUID $GUID" -Sev 'Debug' + $StatusCode = [HttpStatusCode]::OK + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create CA Template: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message "Failed to create CA Template: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = "$Result" } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddNamedLocation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddNamedLocation.ps1 new file mode 100644 index 000000000000..941bcdef574f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-AddNamedLocation.ps1 @@ -0,0 +1,55 @@ +function Invoke-AddNamedLocation { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + # Input bindings are passed in via param block. + $Tenants = $request.body.selectedTenants.value + Write-Host ($Request.body | ConvertTo-Json) + if ($Tenants -eq 'AllTenants') { $Tenants = (Get-Tenants).defaultDomainName } + $results = foreach ($Tenant in $tenants) { + try { + $ObjBody = if ($Request.body.Type -eq 'IPLocation') { + $IPRanges = ($Request.body.Ips -split "`n") | ForEach-Object { if ($_ -ne '') { @{cidrAddress = "$_" } } } + if (!$IPRanges) { $IPRanges = @(@{cidrAddress = "$($Request.Body.Ips)" }) } + [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.ipNamedLocation' + displayName = $request.body.policyName + ipRanges = @($IPRanges) + isTrusted = $Request.body.Trusted + } + } else { + [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.countryNamedLocation' + displayName = $request.body.policyName + countriesAndRegions = @($Request.Body.Countries.value) + includeUnknownCountriesAndRegions = $Request.body.includeUnknownCountriesAndRegions + } + } + $Body = ConvertTo-Json -InputObject $ObjBody + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -body $body -Type POST -tenantid $tenant + "Successfully added Named Location for $($Tenant)" + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $tenant -message "Added Named Location $($Displayname)" -Sev 'Info' + + } catch { + "Failed to add Named Location $($Tenant): $($_.Exception.Message)" + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $tenant -message "Failed adding Named Location$($Displayname). Error: $($_.Exception.Message)" -Sev 'Error' + continue + } + + } + + $body = [pscustomobject]@{'Results' = @($results) } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-EditCAPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-EditCAPolicy.ps1 new file mode 100644 index 000000000000..fee3c24bce2c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-EditCAPolicy.ps1 @@ -0,0 +1,53 @@ +Function Invoke-EditCAPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with the request + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.GUID ?? $Request.Body.GUID + $State = $Request.Query.State ?? $Request.Body.State + $DisplayName = $Request.Query.newDisplayName ?? $Request.Body.newDisplayName + + try { + $properties = @{} + + # Conditionally add properties + if ($State) { + $properties["state"] = $State + } + + if ($DisplayName) { + $properties["displayName"] = $DisplayName + } + + $Request = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($ID)" -tenantid $TenantFilter -type PATCH -body ($properties | ConvertTo-Json) -asapp $true + + $Result = "Successfully updated CA policy $($ID)" + if ($State) { $Result += " state to $($State)" } + if ($DisplayName) { $Result += " name to '$($DisplayName)'" } + + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to update CA policy $($ID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCACheck.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCACheck.ps1 new file mode 100644 index 000000000000..9d0cc1b1f683 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCACheck.ps1 @@ -0,0 +1,53 @@ +function Invoke-ExecCaCheck { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Tenant = $Request.Body.tenantFilter + $UserID = $Request.Body.userID.value + if ($Request.Body.IncludeApplications.value) { + $IncludeApplications = $Request.Body.IncludeApplications.value + } else { + $IncludeApplications = '67ad5377-2d78-4ac2-a867-6300cda00e85' + } + $results = try { + $CAContext = @{ + '@odata.type' = '#microsoft.graph.applicationContext' + 'includeApplications' = @($IncludeApplications) + } + $ConditionalAccessWhatIfDefinition = @{ + 'signInIdentity' = @{ + '@odata.type' = '#microsoft.graph.userSignIn' + 'userId' = "$userId" + } + 'signInContext' = $CAContext + 'signInConditions' = @{} + } + $whatIfConditions = $ConditionalAccessWhatIfDefinition.signInConditions + if ($Request.body.UserRiskLevel) { $whatIfConditions.userRiskLevel = $Request.body.UserRiskLevel.value } + if ($Request.body.SignInRiskLevel) { $whatIfConditions.signInRiskLevel = $Request.body.SignInRiskLevel.value } + if ($Request.body.ClientAppType) { $whatIfConditions.clientAppType = $Request.body.ClientAppType.value } + if ($Request.body.DevicePlatform) { $whatIfConditions.devicePlatform = $Request.body.DevicePlatform.value } + if ($Request.body.Country) { $whatIfConditions.country = $Request.body.Country.value } + if ($Request.body.IpAddress) { $whatIfConditions.ipAddress = $Request.body.IpAddress.value } + + $JSONBody = $ConditionalAccessWhatIfDefinition | ConvertTo-Json -Depth 10 + Write-Host $JSONBody + $Request = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/evaluate' -tenantid $tenant -type POST -body $JsonBody -AsApp $true + $Request + } catch { + "Failed to execute check: $($_.Exception.Message)" + } + + $body = [pscustomobject]@{'Results' = $results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 new file mode 100644 index 000000000000..915f64fc4244 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 @@ -0,0 +1,152 @@ +function Invoke-ExecCAExclusion { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + try { + #If UserId is a guid, get the user's UPN + $TenantFilter = $Request.Body.tenantFilter + $UserID = $Request.Body.UserID + $Username = $Request.Body.Username + $Users = $Request.Body.Users + $EndDate = $Request.Body.EndDate + $PolicyId = $Request.Body.PolicyId + $ExclusionType = $Request.Body.ExclusionType + $ExcludeLocationAuditAlerts = $Request.Body.excludeLocationAuditAlerts + + if ($Users) { + $UserID = $Users.value + $Username = $Users.addedFields.userPrincipalName -join ', ' + } else { + if ($UserID -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$' -and -not $Username) { + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter).userPrincipalName + } + } + + $Policy = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)?`$select=id,displayName,conditions" -tenantid $TenantFilter -asApp $true + + if (-not $Policy) { + throw "Policy with ID $PolicyId not found in tenant $TenantFilter." + } + + $SecurityGroups = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$select=id,displayName&`$filter=securityEnabled eq true and mailEnabled eq false&`$count=true" -tenantid $TenantFilter + $VacationGroup = $SecurityGroups | Where-Object { $_.displayName -contains "Vacation Exclusion - $($Policy.displayName)" } + + if (!$VacationGroup) { + Write-Information "Creating vacation group: Vacation Exclusion - $($Policy.displayName)" + $Guid = [guid]::NewGuid().ToString() + $GroupObject = @{ + groupType = 'generic' + displayName = "Vacation Exclusion - $($Policy.displayName)" + username = "vacation$Guid" + securityEnabled = $true + } + $NewGroup = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $TenantFilter -APIName 'Invoke-ExecCAExclusion' + $GroupId = $NewGroup.GroupId + } else { + Write-Information "Using existing vacation group: $($VacationGroup.displayName)" + $GroupId = $VacationGroup.id + } + + if ($Policy.conditions.users.excludeGroups -notcontains $GroupId) { + Set-CIPPCAExclusion -TenantFilter $TenantFilter -ExclusionType 'Add' -PolicyId $PolicyId -Groups @{ value = @($GroupId); addedFields = @{ displayName = @("Vacation Exclusion - $($Policy.displayName)") } } -Headers $Headers + } + + $PolicyName = $Policy.displayName + if ($Request.Body.vacation -eq 'true') { + $StartDate = $Request.Body.StartDate + $EndDate = $Request.Body.EndDate + # Detect if policy targets specific named locations (GUIDs) and user requested audit log exclusion + $GuidRegex = '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' + $LocationIds = @() + if ($Policy.conditions.locations.includeLocations) { $LocationIds += $Policy.conditions.locations.includeLocations } + if ($Policy.conditions.locations.excludeLocations) { $LocationIds += $Policy.conditions.locations.excludeLocations } + $PolicyHasGuidLocations = $LocationIds | Where-Object { $_ -match $GuidRegex } + + $Parameters = [PSCustomObject]@{ + GroupType = 'Security' + GroupId = $GroupId + Member = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID + } + + $TaskBody = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Add CA Exclusion Vacation Mode: $PolicyName" + Command = @{ + value = 'Add-CIPPGroupMember' + label = 'Add-CIPPGroupMember' + } + Parameters = [pscustomobject]$Parameters + ScheduledTime = $StartDate + PostExecution = $Request.Body.postExecution + Reference = $Request.Body.reference + } + + Write-Information ($TaskBody | ConvertTo-Json -Depth 10) + + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + # Optional: schedule audit log exclusion add task if requested and policy has location GUIDs + if ($ExcludeLocationAuditAlerts -and $PolicyHasGuidLocations) { + $AuditUsers = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID + $AuditAddTask = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Add Audit Log Location Exclusion: $PolicyName" + Command = @{ value = 'Set-CIPPAuditLogUserExclusion'; label = 'Set-CIPPAuditLogUserExclusion' } + Parameters = [pscustomobject]@{ Users = $AuditUsers; Action = 'Add'; Type = 'Location' } + ScheduledTime = $StartDate + } + Add-CIPPScheduledTask -Task $AuditAddTask -hidden $true + } + #Removal of the exclusion + $TaskBody.Command = @{ + label = 'Remove-CIPPGroupMember' + value = 'Remove-CIPPGroupMember' + } + $TaskBody.Name = "Remove CA Exclusion Vacation Mode: $PolicyName" + $TaskBody.ScheduledTime = $EndDate + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + if ($ExcludeLocationAuditAlerts -and $PolicyHasGuidLocations) { + $AuditUsers = $Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID + $AuditRemoveTask = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Remove Audit Log Location Exclusion: $PolicyName" + Command = @{ value = 'Set-CIPPAuditLogUserExclusion'; label = 'Set-CIPPAuditLogUserExclusion' } + Parameters = [pscustomobject]@{ Users = $AuditUsers; Action = 'Remove'; Type = 'Location' } + ScheduledTime = $EndDate + Reference = $Request.Body.reference + } + Add-CIPPScheduledTask -Task $AuditRemoveTask -hidden $true + } + $body = @{ Results = "Successfully added vacation mode schedule for $Username." } + } else { + $Parameters = @{ + ExclusionType = $ExclusionType + PolicyId = $PolicyId + } + if ($Users) { + $Parameters.Users = $Users + } else { + $Parameters.UserID = $UserID + } + + Set-CIPPCAExclusion -TenantFilter $TenantFilter -Headers $Headers @Parameters + } + } catch { + Write-Warning "Failed to perform exclusion for $Username : $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $body = @{ Results = "Failed to perform exclusion for $Username : $($_.Exception.Message)" } + Write-LogMessage -headers $Headers -API 'Invoke-ExecCAExclusion' -message "Failed to perform exclusion for $Username : $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 new file mode 100644 index 000000000000..8d1010e3362f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 @@ -0,0 +1,31 @@ +function Invoke-ExecCAServiceExclusion { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Interact with the request + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $ID = $Request.Query.GUID ?? $Request.Body.GUID + + try { + $result = Set-CIPPCAPolicyServiceException -TenantFilter $TenantFilter -PolicyId $ID + $Body = @{ Results = $result } + Write-LogMessage -headers $Headers -API 'Set-CIPPCAPolicyServiceException' -message $result -Sev 'Info' -tenant $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = @{ Results = "Failed to add service provider exception to policy $($ID): $($ErrorMessage.NormalizedError)" } + Write-LogMessage -headers $Headers -API 'Set-CIPPCAPolicyServiceException' -message "Failed to update policy $($PolicyId) with service provider exception for tenant $($CSPtenantId): $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecNamedLocation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecNamedLocation.ps1 new file mode 100644 index 000000000000..95bfae0262f2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecNamedLocation.ps1 @@ -0,0 +1,38 @@ +function Invoke-ExecNamedLocation { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + $NamedLocationId = $Request.Body.namedLocationId ?? $Request.Query.namedLocationId + $Change = $Request.Body.change ?? $Request.Query.change + $Content = $Request.Body.input ?? $Request.Query.input + if ($content.value) { $content = $content.value } + + try { + $results = Set-CIPPNamedLocation -NamedLocationId $NamedLocationId -TenantFilter $TenantFilter -Change $Change -Content $Content -Headers $Headers + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to edit named location: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $results = "Failed to edit named location. Error: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = @($results) } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 new file mode 100644 index 000000000000..5ce6a7ad6844 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 @@ -0,0 +1,54 @@ +function Invoke-ListCAtemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.ConditionalAccess.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + Write-Host $Request.query.id + #Migrating old policies whenever you do a list + $Table = Get-CippTable -tablename 'templates' + $Imported = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'settings'" + if ($Imported.CATemplate -ne $true) { + $Templates = Get-ChildItem 'Config\*.CATemplate.json' | ForEach-Object { + $Entity = @{ + JSON = "$(Get-Content $_)" + RowKey = "$($_.name)" + PartitionKey = 'CATemplate' + GUID = "$($_.name)" + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + } + Add-CIPPAzDataTableEntity @Table -Entity @{ + CATemplate = $true + RowKey = 'CATemplate' + PartitionKey = 'settings' + } -Force + } + #List new policies + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'CATemplate'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + try { + $row = $_ + $data = $row.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $row.GUID -Force + $data | Add-Member -NotePropertyName 'source' -NotePropertyValue $row.Source -Force + $data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($row.SHA)) -Force + $data + } catch { + Write-Warning "Failed to process CA template: $($row.RowKey) - $($_.Exception.Message)" + } + } | Sort-Object -Property displayName + + if ($Request.query.ID) { $Templates = $Templates | Where-Object -Property GUID -EQ $Request.query.id } + + $Templates = ConvertTo-Json -InputObject @($Templates) -Depth 100 + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Templates + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicies.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicies.ps1 new file mode 100644 index 000000000000..301f27f70abb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicies.ps1 @@ -0,0 +1,261 @@ +function Invoke-ListConditionalAccessPolicies { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + #Region Helper functions + function Get-LocationNameFromId { + [CmdletBinding()] + param ( + [Parameter()] + $ID, + $Locations + ) + if ($id -eq 'All') { + return 'All' + } + $DisplayName = $Locations | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { + return $ID + } else { + return $DisplayName + } + } + + function Get-RoleNameFromId { + [CmdletBinding()] + param ( + [Parameter()] + $ID, + $RoleDefinitions + ) + if ($id -eq 'All') { + return 'All' + } + $DisplayName = $RoleDefinitions | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { + return $ID + } else { + return $DisplayName + } + } + + function Get-UserNameFromId { + [CmdletBinding()] + param ( + [Parameter()] + $ID, + $Users + ) + if ($id -eq 'All') { + return 'All' + } + $DisplayName = $Users | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { + return $ID + } else { + return $DisplayName + } + } + + function Get-GroupNameFromId { + param ( + [Parameter()] + $ID, + $Groups + ) + if ($id -eq 'All') { + return 'All' + } + $DisplayName = $Groups | Where-Object { $_.id -eq $ID } | Select-Object -ExpandProperty DisplayName + if ([string]::IsNullOrEmpty($displayName)) { + return 'No Data' + } else { + return $DisplayName + } + } + + function Get-ApplicationNameFromId { + [CmdletBinding()] + param ( + [Parameter()] + $ID, + $Applications, + $ServicePrincipals + ) + if ($id -eq 'All') { + return 'All' + } + + $return = $ServicePrincipals | Where-Object { $_.appId -eq $ID } | Select-Object -ExpandProperty DisplayName + + if ([string]::IsNullOrEmpty($return)) { + $return = $Applications | Where-Object { $_.Appid -eq $ID } | Select-Object -ExpandProperty DisplayName + } + + if ([string]::IsNullOrEmpty($return)) { + $return = $Applications | Where-Object { $_.ID -eq $ID } | Select-Object -ExpandProperty DisplayName + } + + if ([string]::IsNullOrEmpty($return)) { + $return = '' + } + + return $return + } + #EndRegion Helper functions + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + try { + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { + # Single tenant functionality + $Requests = @( + @{ + id = 'policies' + url = 'identity/conditionalAccess/policies' + method = 'GET' + } + @{ + id = 'namedLocations' + url = 'identity/conditionalAccess/namedLocations' + method = 'GET' + } + @{ + id = 'applications' + url = 'applications?$top=999&$select=appId,displayName' + method = 'GET' + } + @{ + id = 'roleDefinitions' + url = 'roleManagement/directory/roleDefinitions?$select=id,displayName' + method = 'GET' + } + @{ + id = 'groups' + url = 'groups?$top=999&$select=id,displayName' + method = 'GET' + } + @{ + id = 'users' + url = 'users?$top=999&$select=id,displayName,userPrincipalName' + method = 'GET' + } + @{ + id = 'servicePrincipals' + url = 'servicePrincipals?$top=999&$select=appId,displayName' + method = 'GET' + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true + + $ConditionalAccessPolicyOutput = ($BulkResults | Where-Object { $_.id -eq 'policies' }).body.value + $AllNamedLocations = ($BulkResults | Where-Object { $_.id -eq 'namedLocations' }).body.value + $AllApplications = ($BulkResults | Where-Object { $_.id -eq 'applications' } ).body.value + $AllRoleDefinitions = ($BulkResults | Where-Object { $_.id -eq 'roleDefinitions' }).body.value + $GroupListOutput = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value + $UserListOutput = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value + $AllServicePrincipals = ($BulkResults | Where-Object { $_.id -eq 'servicePrincipals' }).body.value + + foreach ($cap in $ConditionalAccessPolicyOutput) { + [PSCustomObject]@{ + id = $cap.id + displayName = $cap.displayName + customer = $cap.Customer + Tenant = $TenantFilter + createdDateTime = $(if (![string]::IsNullOrEmpty($cap.createdDateTime)) { [datetime]$cap.createdDateTime } else { '' }) + modifiedDateTime = $(if (![string]::IsNullOrEmpty($cap.modifiedDateTime)) { [datetime]$cap.modifiedDateTime }else { '' }) + state = $cap.state + clientAppTypes = ($cap.conditions.clientAppTypes) -join ',' + includePlatforms = ($cap.conditions.platforms.includePlatforms) -join ',' + excludePlatforms = ($cap.conditions.platforms.excludePlatforms) -join ',' + includeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.includeLocations) -join ',' + excludeLocations = (Get-LocationNameFromId -Locations $AllNamedLocations -id $cap.conditions.locations.excludeLocations) -join ',' + includeApplications = ($cap.conditions.applications.includeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' + excludeApplications = ($cap.conditions.applications.excludeApplications | ForEach-Object { Get-ApplicationNameFromId -Applications $AllApplications -ServicePrincipals $AllServicePrincipals -id $_ }) -join ',' + includeUserActions = ($cap.conditions.applications.includeUserActions | Out-String) + includeAuthenticationContextClassReferences = ($cap.conditions.applications.includeAuthenticationContextClassReferences | Out-String) + includeUsers = ($cap.conditions.users.includeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String + excludeUsers = ($cap.conditions.users.excludeUsers | ForEach-Object { Get-UserNameFromId -Users $UserListOutput -id $_ }) | Out-String + includeGroups = ($cap.conditions.users.includeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String + excludeGroups = ($cap.conditions.users.excludeGroups | ForEach-Object { Get-GroupNameFromId -Groups $GroupListOutput -id $_ }) | Out-String + includeRoles = ($cap.conditions.users.includeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String + excludeRoles = ($cap.conditions.users.excludeRoles | ForEach-Object { Get-RoleNameFromId -RoleDefinitions $AllRoleDefinitions -id $_ }) | Out-String + grantControlsOperator = ($cap.grantControls.operator) -join ',' + builtInControls = ($cap.grantControls.builtInControls) -join ',' + customAuthenticationFactors = ($cap.grantControls.customAuthenticationFactors) -join ',' + termsOfUse = ($cap.grantControls.termsOfUse) -join ',' + rawjson = ($cap | ConvertTo-Json -Depth 100) + } + } + } else { + # AllTenants functionality + $Table = Get-CIPPTable -TableName cacheCAPolicies + $PartitionKey = 'CAPolicy' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + # If a queue is running, we will not start a new one + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + } elseif (!$Rows -and !$RunningQueue) { + # If no rows are found and no queue is running, we will start a new one + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Conditional Access Policies - All Tenants' -Link '/tenant/conditional/list-policies?customerId=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'CAPoliciesOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListConditionalAccessPoliciesAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Policies = $Rows + # Output all policies from all tenants + foreach ($policy in $Policies) { + ($policy.Policy | ConvertFrom-Json) + } + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + if (!$Body) { + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ + Results = @($GraphRequest | Where-Object -Property id -NE $null | Sort-Object id -Descending) + Metadata = $Metadata + } + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicyChanges.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicyChanges.ps1 new file mode 100644 index 000000000000..7f8a6634063f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListConditionalAccessPolicyChanges.ps1 @@ -0,0 +1,38 @@ +Function Invoke-ListConditionalAccessPolicyChanges { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $PolicyId = $Request.Query.id + $PolicyDisplayName = $Request.Query.displayName + + try { + [array]$Changes = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?`$filter=targetResources/any(s:s/id eq '$($PolicyId)')" -tenantid $TenantFilter | ForEach-Object { + [pscustomobject]@{ + policy = $PolicyDisplayName + policyId = $PolicyId + typeFriendlyName = $_.activityDisplayName + type = $_.operationType + initiatedBy = if ($_.initiatedBy.user.userPrincipalName) { $_.initiatedBy.user.userPrincipalName } else { $_.initiatedBy.app.displayName } + date = $_.activityDateTime + oldValue = ($_.targetResources[0].modifiedProperties.oldValue | ConvertFrom-Json) # targetResources is an array, can we ever get more than 1 object in it? + newValue = ($_.targetResources[0].modifiedProperties.newValue | ConvertFrom-Json) + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $StatusCode = [HttpStatusCode]::BadRequest + $Changes = "Failed to request audit logs for policy $($PolicyDisplayName): $($_.Exception.message)" + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Changes) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCAPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCAPolicy.ps1 new file mode 100644 index 000000000000..fb136f2a427c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCAPolicy.ps1 @@ -0,0 +1,38 @@ +Function Invoke-RemoveCAPolicy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $policyId = $Request.Query.GUID ?? $Request.Body.GUID + if (!$policyId) { exit } + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/$($policyId)" -type DELETE -tenant $TenantFilter -asapp $true + $Result = "Deleted CA Policy $($policyId)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' -tenant $TenantFilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Could not delete CA policy with ID $($policyId) : $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + $body = [pscustomobject]@{'Results' = $Result } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCATemplate.ps1 new file mode 100644 index 000000000000..d25c941973a0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-RemoveCATemplate.ps1 @@ -0,0 +1,39 @@ +Function Invoke-RemoveCATemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $request.Query.ID ?? $Request.Body.ID + try { + $Table = Get-CippTable -tablename 'templates' + + $Filter = "PartitionKey eq 'CATemplate' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Conditional Access Template with ID $ID" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Conditional Access template $($ID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAddGDAPRole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAddGDAPRole.ps1 new file mode 100644 index 000000000000..65380b19933c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAddGDAPRole.ps1 @@ -0,0 +1,175 @@ +function Invoke-ExecAddGDAPRole { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Action = $Request.Body.Action ?? $Request.Query.Action ?? 'AddRoleSimple' + $GroupBlockList = @('All Users', 'AdminAgents', 'HelpdeskAgents', 'SalesAgents') + + switch ($Action) { + 'ListGroups' { + $Groups = New-GraphGetRequest -NoAuthCheck $True -uri 'https://graph.microsoft.com/beta/groups?$filter=securityEnabled eq true&$select=id,displayName&$top=999' -tenantid $env:TenantID -AsApp $true | Where-Object -Property displayName -NotIn $GroupBlockList + $Results = @($Groups) + } + 'AddRoleAdvanced' { + $Mappings = $Request.Body.mappings + $Table = Get-CIPPTable -TableName 'GDAPRoles' + $ExistingGroups = New-GraphGetRequest -NoAuthCheck $True -uri 'https://graph.microsoft.com/beta/groups?$filter=securityEnabled eq true&$select=id,displayName&$top=999' -tenantid $env:TenantID -AsApp $true + $Results = [System.Collections.Generic.List[object]]::new() + $ErrorsFound = $false + $Entities = foreach ($Mapping in $Mappings) { + $GroupId = $Mapping.GroupId + if ($ExistingGroups.id -contains $GroupId) { + $ExistingGroup = $ExistingGroups | Where-Object -Property id -EQ $GroupId + if ($ExistingGroup.displayName -in $GroupBlockList) { + $Results.Add(@{ + state = 'error' + resultText = "Group $($ExistingGroup.displayName) is a reserved group and cannot be mapped to a GDAP role" + }) + $ErrorsFound = $true + } else { + @{ + PartitionKey = 'Roles' + RowKey = $GroupId + RoleName = $Mapping.RoleName + GroupName = $ExistingGroup.displayName + GroupId = $GroupId + roleDefinitionId = $Mapping.roleDefinitionId + } + $Results.Add(@{ + state = 'success' + resultText = "Mapped $($ExistingGroup.displayName) to $($Mapping.RoleName)" + }) + } + } + } + if (($Entities | Measure-Object).Count -gt 0) { + Write-Warning "Adding $($Entities.Count) entities to table" + Write-Information ($Entities | ConvertTo-Json -Depth 10 -Compress) + Add-CIPPAzDataTableEntity @Table -Entity $Entities -Force + } elseif ($ErrorsFound -eq $false) { + $Results.Add(@{ + state = 'success' + resultText = 'All role mappings already exist' + }) + } + } + 'AddRoleSimple' { + $CippDefaults = @( + @{ label = 'Application Administrator'; value = '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3' }, + @{ label = 'User Administrator'; value = 'fe930be7-5e62-47db-91af-98c3a49a38b1' }, + @{ label = 'Intune Administrator'; value = '3a2c62db-5318-420d-8d74-23affee5d9d5' }, + @{ label = 'Exchange Administrator'; value = '29232cdf-9323-42fd-ade2-1d097af3e4de' }, + @{ label = 'Security Administrator'; value = '194ae4cb-b126-40b2-bd5b-6091b380977d' }, + @{ label = 'Cloud App Security Administrator'; value = '892c5842-a9a6-463a-8041-72aa08ca3cf6' }, + @{ label = 'Cloud Device Administrator'; value = '7698a772-787b-4ac8-901f-60d6b08affd2' }, + @{ label = 'Teams Administrator'; value = '69091246-20e8-4a56-aa4d-066075b2a7a8' }, + @{ label = 'SharePoint Administrator'; value = 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c' }, + @{ label = 'Authentication Policy Administrator'; value = '0526716b-113d-4c15-b2c8-68e3c22b9f80' }, + @{ label = 'Privileged Role Administrator'; value = 'e8611ab8-c189-46e8-94e1-60213ab1f814' }, + @{ label = 'Privileged Authentication Administrator'; value = '7be44c8a-adaf-4e2a-84d6-ab2649e08a13' } + ) + + $Groups = $Request.Body.gdapRoles ?? $CippDefaults + + $CustomSuffix = $Request.Body.customSuffix + $Table = Get-CIPPTable -TableName 'GDAPRoles' + + $Results = [System.Collections.Generic.List[string]]::new() + $Requests = [System.Collections.Generic.List[object]]::new() + $ExistingGroups = New-GraphGetRequest -NoAuthCheck $True -uri 'https://graph.microsoft.com/beta/groups' -tenantid $env:TenantID -AsApp $true + + $ExistingRoleMappings = foreach ($Group in $Groups) { + $RoleName = $Group.label ?? $Group.Name + $Value = $Group.value ?? $Group.ObjectId + + if ($CustomSuffix) { + $GroupName = "M365 GDAP $($RoleName) - $CustomSuffix" + $MailNickname = "M365GDAP$(($RoleName).replace(' ',''))$($CustomSuffix.replace(' ',''))" + } else { + $GroupName = "M365 GDAP $($RoleName)" + $MailNickname = "M365GDAP$(($RoleName).replace(' ',''))" + } + + if ($GroupName -in $ExistingGroups.displayName) { + @{ + PartitionKey = 'Roles' + RowKey = ($ExistingGroups | Where-Object -Property displayName -EQ $GroupName).id + RoleName = $RoleName + GroupName = $GroupName + GroupId = ($ExistingGroups | Where-Object -Property displayName -EQ $GroupName).id + roleDefinitionId = $Value + } + $Results.Add("$GroupName already exists") + } else { + $Requests.Add(@{ + id = $Value + url = '/groups' + method = 'POST' + headers = @{ + 'Content-Type' = 'application/json' + } + body = @{ + displayName = $GroupName + description = "This group is used to manage M365 partner tenants at the $($RoleName) level." + securityEnabled = $true + mailEnabled = $false + mailNickname = $MailNickname + } + }) + } + } + if ($ExistingRoleMappings) { + Add-CIPPAzDataTableEntity @Table -Entity $ExistingRoleMappings -Force + } + + if ($Requests) { + $ReturnedData = New-GraphBulkRequest -Requests $Requests -tenantid $env:TenantID -NoAuthCheck $True -asapp $true + $NewRoleMappings = foreach ($Return in $ReturnedData) { + if ($Return.body.error) { + $Results.Add("Could not create GDAP group: $($Return.body.error.message)") + } else { + $GroupName = $Return.body.displayName + @{ + PartitionKey = 'Roles' + RowKey = $Return.body.id + RoleName = $Return.body.displayName -replace '^M365 GDAP ', '' -replace " - $CustomSuffix$", '' + GroupName = $Return.body.displayName + GroupId = $Return.body.id + roleDefinitionId = $Return.id + } + $Results.Add("Created $($GroupName)") + } + } + Write-Information ($NewRoleMappings | ConvertTo-Json -Depth 10 -Compress) + if ($NewRoleMappings) { + Add-CIPPAzDataTableEntity @Table -Entity $NewRoleMappings -Force + } + } + + $RoleMappings = [System.Collections.Generic.List[object]]::new() + if ($ExistingRoleMappings) { + $RoleMappings.AddRange(@($ExistingRoleMappings)) + } + if ($NewRoleMappings) { + $RoleMappings.AddRange(@($NewRoleMappings)) + } + + if ($Request.Body.templateId) { + Add-CIPPGDAPRoleTemplate -TemplateId $Request.Body.templateId -RoleMappings ($RoleMappings | Select-Object -Property RoleName, GroupName, GroupId, roleDefinitionId) + $Results.Add("Added role mappings to template $($Request.Body.templateId)") + } + } + } + + $body = @{Results = @($Results) } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAutoExtendGDAP.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAutoExtendGDAP.ps1 new file mode 100644 index 000000000000..369d8fd0d6b6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecAutoExtendGDAP.ps1 @@ -0,0 +1,18 @@ +Function Invoke-ExecAutoExtendGDAP { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Id = $Request.query.ID ?? $Request.Body.ID + $Results = Set-CIPPGDAPAutoExtend -RelationShipid $Id + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = $Results } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 new file mode 100644 index 000000000000..8c0898c318ef --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 @@ -0,0 +1,31 @@ +Function Invoke-ExecDeleteGDAPRelationship { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $GDAPID = $Request.Query.GDAPId ?? $Request.Body.GDAPId + try { + $DELETE = New-GraphPostRequest -NoAuthCheck $True -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($GDAPID)/requests" -type POST -body '{"action":"terminate"}' -tenantid $env:TenantID + $Results = [pscustomobject]@{'Results' = "Success. GDAP relationship for $($GDAPID) been revoked" } + Write-LogMessage -headers $Headers -API $APIName -message "Success. GDAP relationship for $($GDAPID) been revoked" -Sev 'Info' + + } catch { + $Results = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRoleMapping.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRoleMapping.ps1 new file mode 100644 index 000000000000..1c94da4480f2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRoleMapping.ps1 @@ -0,0 +1,34 @@ +Function Invoke-ExecDeleteGDAPRoleMapping { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + + $Table = Get-CIPPTable -TableName 'GDAPRoles' + $GroupId = $Request.Query.GroupId ?? $Request.Body.GroupId + try { + $Filter = "PartitionKey eq 'Roles' and RowKey eq '{0}'" -f $GroupId + $Entity = Get-CIPPAzDataTableEntity @Table -Filter $Filter + Remove-AzDataTableEntity -Force @Table -Entity $Entity + $Results = [pscustomobject]@{'Results' = 'Success. GDAP relationship mapping deleted' } + Write-LogMessage -headers $Headers -API $APIName -message "GDAP relationship mapping deleted for $($GroupId)" -Sev 'Info' + + } catch { + $Results = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPAccessAssignment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPAccessAssignment.ps1 new file mode 100644 index 000000000000..b2e3803ea41f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPAccessAssignment.ps1 @@ -0,0 +1,187 @@ +function Invoke-ExecGDAPAccessAssignment { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + $Action = $Request.Body.Action ?? $Request.Query.Action + $Id = $Request.Body.Id ?? $Request.Query.Id + + switch ($Action) { + 'ResetMappings' { + $RoleTemplateId = $Request.Body.RoleTemplateId + + if (-not $RoleTemplateId) { + $Body = @{ + Results = @{ + state = 'error' + resultText = 'RoleTemplateId is required' + } + } + } else { + $GDAPRoleTemplatesTable = Get-CIPPTable -TableName 'GDAPRoleTemplates' + $Mappings = Get-CIPPAzDataTableEntity @GDAPRoleTemplatesTable -Filter "PartitionKey eq 'RoleTemplate' and RowKey eq '$($RoleTemplateId)'" | Select-Object -ExpandProperty RoleMappings | ConvertFrom-Json + + $RelationshipRequests = @( + @{ + 'id' = 'getRelationship' + 'url' = "tenantRelationships/delegatedAdminRelationships/$Id" + 'method' = 'GET' + } + @{ + 'id' = 'getAccessAssignments' + 'url' = "tenantRelationships/delegatedAdminRelationships/$Id/accessAssignments" + 'method' = 'GET' + } + ) + + $RelationshipResults = New-GraphBulkRequest -Requests $RelationshipRequests -NoAuthCheck $true + $Relationship = ($RelationshipResults | Where-Object id -EQ 'getRelationship').body + $AccessAssignments = ($RelationshipResults | Where-Object id -EQ 'getAccessAssignments').body.value + + $Groups = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=id,displayName&`$filter=securityEnabled eq true" -asApp $true -NoAuthCheck $true + + $Requests = [System.Collections.Generic.List[object]]::new() + $Messages = [System.Collections.Generic.List[object]]::new() + + foreach ($AccessAssignment in $AccessAssignments) { + $RoleCount = ($AccessAssignment.accessDetails.unifiedRoles | Measure-Object).Count + if ($Mappings.GroupId -notcontains $AccessAssignment.accessContainer.accessContainerId -and $AccessAssignment.status -notin @('deleting', 'deleted', 'error')) { + Write-Warning "Deleting access assignment for $($AccessAssignment.accessContainer.accessContainerId)" + $Group = $Groups | Where-Object id -EQ $AccessAssignment.accessContainer.accessContainerId + $Requests.Add(@{ + 'id' = "delete-$($AccessAssignment.id)" + 'url' = "tenantRelationships/delegatedAdminRelationships/$Id/accessAssignments/$($AccessAssignment.id)" + 'method' = 'DELETE' + 'headers' = @{ + 'If-Match' = $AccessAssignment.'@odata.etag' + } + }) + + $Messages.Add(@{ + 'id' = "delete-$($AccessAssignment.id)" + 'message' = "Deleting access assignment for $($Group.displayName)" + }) + + } elseif ($AccessAssignment.status -notin @('deleting', 'deleted', 'error')) { + # check for mismatched role definitions (e.g. role in assignment does not match role in mapping) + $Mapping = $Mappings | Where-Object { $_.GroupId -eq $AccessAssignment.accessContainer.accessContainerId } + $Group = $Groups | Where-Object id -EQ $AccessAssignment.accessContainer.accessContainerId + + if ($RoleCount -gt 1 -or $AccessAssignment.accessDetails.unifiedRoles.roleDefinitionId -notcontains $Mapping.roleDefinitionId) { + Write-Warning "Patching access assignment for $($AccessAssignment.accessContainer.accessContainerId)" + $Requests.Add(@{ + 'id' = "patch-$($AccessAssignment.id)" + 'url' = "tenantRelationships/delegatedAdminRelationships/$Id/accessAssignments/$($AccessAssignment.id)" + 'method' = 'PATCH' + 'body' = @{ + 'accessDetails' = @{ + 'unifiedRoles' = @( + @{ + roleDefinitionId = $Mapping.roleDefinitionId + } + ) + } + } + 'headers' = @{ + 'If-Match' = $AccessAssignment.'@odata.etag' + 'Content-Type' = 'application/json' + } + }) + + $Messages.Add(@{ + 'id' = "patch-$($AccessAssignment.id)" + 'message' = "Updating access assignment for $($Group.displayName)" + }) + } + } + } + + foreach ($Mapping in $Mappings) { + $DeletedAssignments = $AccessAssignments | Where-Object { $_.accessContainer.accessContainerId -eq $Mapping.GroupId -and $_.status -eq 'deleted' } + if (($AccessAssignments.accessContainer.accessContainerId -notcontains $Mapping.GroupId -or $DeletedAssignments.accessContainer.accessContainerId -contains $Mapping.GroupId) -and $Relationship.accessDetails.unifiedRoles.roleDefinitionId -contains $Mapping.roleDefinitionId) { + Write-Information "Creating access assignment for $($Mapping.GroupId)" + $Requests.Add(@{ + 'id' = "create-$($Mapping.GroupId)" + 'url' = "tenantRelationships/delegatedAdminRelationships/$Id/accessAssignments" + 'method' = 'POST' + 'body' = @{ + 'accessDetails' = @{ + 'unifiedRoles' = @( + @{ + roleDefinitionId = $Mapping.roleDefinitionId + } + ) + } + 'accessContainer' = @{ + 'accessContainerId' = $Mapping.GroupId + 'accessContainerType' = 'securityGroup' + } + } + 'headers' = @{ + 'Content-Type' = 'application/json' + } + }) + $Messages.Add(@{ + 'id' = "create-$($Mapping.GroupId)" + 'message' = "Creating access assignment for $($Mapping.GroupName)" + }) + } + } + + if ($Requests) { + Write-Warning "Executing $($Requests.Count) access assignment changes" + Write-Information ($Requests | ConvertTo-Json -Depth 10) + + $BulkResults = New-GraphBulkRequest -Requests $Requests -NoAuthCheck $true + + Write-Warning "Received $($BulkResults.Count) access assignment results" + Write-Information ($BulkResults | ConvertTo-Json -Depth 10) + $Results = foreach ($Result in $BulkResults) { + $Message = $Messages | Where-Object id -EQ $Result.id + if ($Result.status -in @('201', '202', '204')) { + @{ + resultText = $Message.message + state = 'success' + } + } else { + @{ + resultText = "Error: $($Message.message): $($Result.body.error.message)" + state = 'error' + } + } + } + + } else { + $Results = @{ + resultText = 'This relationship already has the correct access assignments' + state = 'success' + } + } + + $Body = @{ + Results = @($Results) + } + } + } + default { + $Body = @{ + Results = @(@{ + state = 'error' + resultText = 'Invalid action' + }) + } + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 new file mode 100644 index 000000000000..98021647278a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 @@ -0,0 +1,163 @@ +function Invoke-ExecGDAPInvite { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Action = $Request.Body.Action ?? $Request.Query.Action ?? 'Create' + $InviteId = $Request.Body.InviteId + $Reference = $Request.Body.Reference + $Table = Get-CIPPTable -TableName 'GDAPInvites' + + # Extract technician from headers (same logic as Write-LogMessage) + if ($Headers.'x-ms-client-principal-idp' -eq 'azureStaticWebApps' -or !$Headers.'x-ms-client-principal-idp') { + $user = $headers.'x-ms-client-principal' + $Technician = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + } elseif ($Headers.'x-ms-client-principal-idp' -eq 'aad') { + $ApiClientTable = Get-CIPPTable -TableName 'ApiClients' + $Client = Get-CIPPAzDataTableEntity @ApiClientTable -Filter "RowKey eq '$($headers.'x-ms-client-principal-name')'" + $Technician = $Client.AppName ?? 'CIPP-API' + } else { + try { + $user = $headers.'x-ms-client-principal' + $Technician = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + } catch { + $Technician = 'System' + } + } + + switch ($Action) { + 'Create' { + $RoleMappings = $Request.Body.roleMappings + + if ($RoleMappings.roleDefinitionId -contains '62e90394-69f5-4237-9190-012177145e10') { + $AutoExtendDuration = 'PT0S' + } else { + $AutoExtendDuration = 'P180D' + } + + try { + $Step = 'Creating GDAP relationship' + $JSONBody = @{ + 'displayName' = "CIPP_$((New-Guid).GUID)" + 'accessDetails' = @{ + 'unifiedRoles' = @($RoleMappings | Select-Object roleDefinitionId) + } + 'autoExtendDuration' = $AutoExtendDuration + 'duration' = 'P730D' + } | ConvertTo-Json -Depth 5 -Compress + + $NewRelationship = New-GraphPostRequest -NoAuthCheck $True -uri 'https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships' -type POST -body $JSONBody -verbose -tenantid $env:TenantID + Start-Sleep -Milliseconds 100 + $Count = 0 + do { + $CheckActive = New-GraphGetRequest -NoAuthCheck $True -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($NewRelationship.id)" -tenantid $env:TenantID + Start-Sleep -Milliseconds 200 + $Count++ + } until ($CheckActive.status -eq 'created' -or $Count -gt 5) + + if ($CheckActive.status -eq 'created') { + # Lock for approval + $JSONBody = @{ + 'action' = 'lockForApproval' + } | ConvertTo-Json + $Step = 'Locking GDAP relationship for approval' + + $AddedHeaders = @{ + 'If-Match' = $NewRelationship.'@odata.etag' + } + + $NewRelationshipRequest = New-GraphPostRequest -NoAuthCheck $True -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($NewRelationship.id)/requests" -type POST -body $JSONBody -verbose -tenantid $env:TenantID -AddedHeaders $AddedHeaders + + if ($NewRelationshipRequest.action -eq 'lockForApproval') { + $InviteUrl = "https://admin.microsoft.com/AdminPortal/Home#/partners/invitation/granularAdminRelationships/$($NewRelationship.id)" + try { + $Uri = ([System.Uri]$TriggerMetadata.Headers.Referer) + $OnboardingUrl = $Uri.AbsoluteUri.Replace($Uri.PathAndQuery, "/tenant/gdap-management/onboarding/start?id=$($NewRelationship.id)") + } catch { + $OnboardingUrl = $null + } + + $InviteEntity = [PSCustomObject]@{ + 'PartitionKey' = 'invite' + 'RowKey' = $NewRelationship.id + 'InviteUrl' = $InviteUrl + 'OnboardingUrl' = $OnboardingUrl + 'RoleMappings' = [string](@($RoleMappings) | ConvertTo-Json -Depth 10 -Compress) + 'Technician' = [string]$Technician + 'Reference' = if ($Reference) { [string]$Reference } else { $null } + } + + Add-CIPPAzDataTableEntity @Table -Entity $InviteEntity + + $Message = 'GDAP relationship invite created. Log in as a Global Admin in the new tenant to approve the invite.' + } else { + $Message = 'Error creating GDAP relationship request' + } + + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created GDAP Invite - $InviteUrl" -Sev 'Info' + } + } catch { + $Message = 'Error creating GDAP relationship, failed at step: ' + $Step + Write-Host "GDAP ERROR: $($_.InvocationInfo.PositionMessage)" + + if ($Step -eq 'Creating GDAP relationship' -and $_.Exception.Message -match 'The user (principal) does not have the required permissions to perform the specified action on the resource.') { + $Message = 'Error creating GDAP relationship, ensure that all users have MFA enabled and enforced without exception. Please see the Microsoft Partner Security Requirements documentation for more information. https://learn.microsoft.com/en-us/partner-center/security/partner-security-requirements' + } else { + $Message = "$($Message): $($_.Exception.Message)" + } + + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $env:TenantID -message $Message -Sev 'Error' -LogData (Get-CippException -Exception $_) + } + + $body = @{ + Message = $Message + Invite = $InviteEntity + } + } + 'Update' { + $Invite = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'invite' and RowKey eq '$InviteId'" + if ($Invite) { + + $InviteEntity = [PSCustomObject]@{ + 'PartitionKey' = 'invite' + 'RowKey' = $InviteId + 'Technician' = $Technician + 'Reference' = if ($Reference) { $Reference } else { $null } + } + + Add-CIPPAzDataTableEntity @Table -Entity $InviteEntity -OperationType 'UpsertMerge' + $Message = 'Invite updated' + } else { + $Message = 'Invite not found' + } + $body = @{ + Message = $Message + } + } + 'Delete' { + $Invite = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'invite' and RowKey eq '$InviteId'" + if ($Invite) { + Remove-AzDataTableEntity @Table -Entity $Invite + $Message = 'Invite deleted' + } else { + $Message = 'Invite not found' + } + $body = @{ + Message = $Message + } + } + + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInviteApproved.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInviteApproved.ps1 new file mode 100644 index 000000000000..39f5b4e3a32d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInviteApproved.ps1 @@ -0,0 +1,19 @@ +Function Invoke-ExecGDAPInviteApproved { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + Set-CIPPGDAPInviteGroups + + $body = @{Results = @('Processing recently activated GDAP relationships') } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRemoveGArole.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRemoveGArole.ps1 new file mode 100644 index 000000000000..2006c2a290e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRemoveGArole.ps1 @@ -0,0 +1,51 @@ +Function Invoke-ExecGDAPRemoveGArole { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $GDAPID = $Request.Query.GDAPId ?? $Request.Body.GDAPId + + try { + $CheckActive = New-GraphGetRequest -NoAuthCheck $True -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($GDAPID)" -tenantid $env:TenantID + if ($CheckActive.status -eq 'active' -AND '62e90394-69f5-4237-9190-012177145e10' -in $CheckActive.accessDetails.unifiedRoles.roleDefinitionId) { + $AddedHeader = @{'If-Match' = $CheckActive.'@odata.etag' } + + $RawJSON = [pscustomobject]@{ + accessDetails = [pscustomobject]@{ + unifiedRoles = @( + ($CheckActive.accessDetails.unifiedRoles | Where-Object { $_.roleDefinitionId -ne '62e90394-69f5-4237-9190-012177145e10' }) + ) + } + } | ConvertTo-Json -Depth 3 + + New-GraphPOSTRequest -NoAuthCheck $True -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($GDAPID)" -tenantid $env:TenantID -type PATCH -body $RawJSON -AddedHeaders $AddedHeader + + $Message = "Removed Global Administrator from $($GDAPID)" + Write-LogMessage -headers $Request.Headers -API $APINAME -message $Message -Sev 'Info' + } else { + if ($CheckActive.status -ne 'active') { + $Message = "Relationship status is currently $($CheckActive.status), it is not possible to remove the Global Administrator role in this state." + } + if ('62e90394-69f5-4237-9190-012177145e10' -notin $CheckActive.accessDetails.unifiedRoles.roleDefinitionId) { + $Message = 'This relationship does not contain the Global Administrator role.' + } + } + } catch { + $Message = "Unexpected error patching GDAP relationship: $($_.Exception.Message)" + Write-Host "GDAP ERROR: $($_.Exception.Message)" + Write-LogMessage -headers $Request.Headers -API $APINAME -tenant $env:TenantID -message "$($Message): $($_.Exception.Message)" -Sev 'Error' + } + + $body = @{ + Message = $Message + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 new file mode 100644 index 000000000000..07018acad177 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPRoleTemplate.ps1 @@ -0,0 +1,116 @@ +function Invoke-ExecGDAPRoleTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $Table = Get-CIPPTable -TableName 'GDAPRoleTemplates' + $Templates = Get-CIPPAzDataTableEntity @Table + + if ($Request.Query.TemplateId) { + $Template = $Templates | Where-Object -Property RowKey -EQ $Request.Query.TemplateId + if (!$Template) { + Write-LogMessage -headers $Headers -API $APIName -message "GDAP role template '$($Request.Query.TemplateId)' not found" -Sev 'Warning' + $Body = @{} + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved GDAP role template '$($Request.Query.TemplateId)'" -Sev 'Info' + $Body = @{ + TemplateId = $Template.RowKey + RoleMappings = @($Template.RoleMappings | ConvertFrom-Json) + } + } + } else { + switch ($Request.Query.Action) { + 'Add' { + $RowKey = ($Request.Body | Select-Object -First 1 -ExpandProperty TemplateId).value ?? $Request.Body.TemplateId + if ($Request.Body.GroupId) { + $RoleMappings = $Request.Body | Select-Object * -ExcludeProperty TemplateId + } else { + $RoleMappings = $Request.Body.RoleMappings + } + Write-Information ($RoleMappings | ConvertTo-Json) + Add-CIPPGDAPRoleTemplate -TemplateId $RowKey -RoleMappings $RoleMappings + Write-LogMessage -headers $Headers -API $APIName -message "Added role mappings to GDAP template '$RowKey'" -Sev 'Info' + $Body = @{ + Results = "Added role mappings to template $RowKey" + } + } + 'Edit' { + # Use OriginalTemplateId if provided (for rename), otherwise use TemplateId + $OriginalRowKey = $Request.Body.OriginalTemplateId ?? $Request.Body.TemplateId + $NewRowKey = $Request.Body.TemplateId + $Template = $Templates | Where-Object -Property RowKey -EQ $OriginalRowKey + if ($Template) { + $RoleMappings = $Request.Body.RoleMappings + + # If the template ID is being changed, delete the old one and create a new one + if ($OriginalRowKey -ne $NewRowKey) { + Remove-AzDataTableEntity -Force @Table -Entity $Template + Add-CIPPGDAPRoleTemplate -TemplateId $NewRowKey -RoleMappings $RoleMappings -Overwrite + Write-LogMessage -headers $Headers -API $APIName -message "Renamed GDAP template from '$OriginalRowKey' to '$NewRowKey' and updated role mappings" -Sev 'Info' + $Body = @{ + Results = "Renamed template from $OriginalRowKey to $NewRowKey and updated role mappings" + } + } else { + # Just update the existing template + Add-CIPPGDAPRoleTemplate -TemplateId $NewRowKey -RoleMappings $RoleMappings -Overwrite + Write-LogMessage -headers $Headers -API $APIName -message "Updated role mappings for GDAP template '$NewRowKey'" -Sev 'Info' + $Body = @{ + Results = "Updated role mappings for template $NewRowKey" + } + } + } else { + Write-LogMessage -headers $Headers -API $APIName -message "GDAP role template '$OriginalRowKey' not found for editing" -Sev 'Warning' + $Body = @{ + Results = "Template $OriginalRowKey not found" + } + } + } + 'Delete' { + $RowKey = $Request.Body.TemplateId + $Template = $Templates | Where-Object -Property RowKey -EQ $RowKey + if ($Template) { + Remove-AzDataTableEntity -Force @Table -Entity $Template + Write-LogMessage -headers $Headers -API $APIName -message "Deleted GDAP role template '$RowKey'" -Sev 'Info' + $Body = @{ + Results = "Deleted template $RowKey" + } + } else { + Write-LogMessage -headers $Headers -API $APIName -message "GDAP role template '$RowKey' not found for deletion" -Sev 'Warning' + $Body = @{ + Results = "Template $RowKey not found" + } + } + } + default { + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved $($Templates.Count) GDAP role templates" -Sev 'Info' + $Results = foreach ($Template in $Templates) { + [PSCustomObject]@{ + TemplateId = $Template.RowKey + RoleMappings = @($Template.RoleMappings | ConvertFrom-Json) + } + } + $Body = @{ + Results = @($Results) + Metadata = @{ + Count = $Results.Count + } + } + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 new file mode 100644 index 000000000000..053e11c3cdb8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPAccessAssignments.ps1 @@ -0,0 +1,59 @@ +function Invoke-ListGDAPAccessAssignments { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Id = $Request.Query.Id + $TenantFilter = $env:TenantID + + Write-Information "Getting access assignments for $Id" + + $AccessAssignments = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$Id/accessAssignments" -tenantid $TenantFilter + + # get groups asapp + $Groups = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=id,displayName&`$filter=securityEnabled eq true" -tenantid $TenantFilter -asApp $true -NoAuthCheck $true + + + # Get all the access containers + $AccessContainers = $AccessAssignments.accessContainer.accessContainerId + Write-Information "Getting access containers for $($AccessContainers -join ',')" + + $ContainerMembers = foreach ($AccessContainer in $AccessContainers) { + @{ + 'id' = $AccessContainer + 'url' = "groups/$AccessContainer/members?`$select=id,displayName,userPrincipalName,isAssignableToRole&`$top=999" + 'method' = 'GET' + } + } + $Members = New-GraphBulkRequest -Requests @($ContainerMembers) -tenantid $TenantFilter -asApp $true -NoAuthCheck $true + + $Results = foreach ($AccessAssignment in $AccessAssignments) { + [PSCustomObject]@{ + 'id' = $AccessAssignment.id + 'status' = $AccessAssignment.status + 'createdDateTime' = $AccessAssignment.createdDateTime + 'modifiedDateTime' = $AccessAssignment.modifiedDateTime + 'roles' = $AccessAssignment.accessDetails.unifiedRoles + 'group' = $Groups | Where-Object id -EQ $AccessAssignment.accessContainer.accessContainerId + 'members' = ($Members | Where-Object id -EQ $AccessAssignment.accessContainer.accessContainerId).body.value + } + } + if (!$Results) { + $Results = @() + } else { + $Results = $Results | Sort-Object -Property @{Expression = { $_.group.displayName }; Ascending = $true } + } + + $Body = @{ + Results = @($Results) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPInvite.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPInvite.ps1 new file mode 100644 index 000000000000..8dbb1d3e2e2b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPInvite.ps1 @@ -0,0 +1,26 @@ +Function Invoke-ListGDAPInvite { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $RelationshipId = $Request.Query.RelationshipId + + $Table = Get-CIPPTable -TableName 'GDAPInvites' + if (![string]::IsNullOrEmpty($RelationshipId)) { + $Invite = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($RelationshipId)'" + } else { + $Invite = Get-CIPPAzDataTableEntity @Table | ForEach-Object { + $_.RoleMappings = @(try { $_.RoleMappings | ConvertFrom-Json } catch { $_.RoleMappings }) + $_ + } + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Invite) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPRoles.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPRoles.ps1 new file mode 100644 index 000000000000..d63832e0f562 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ListGDAPRoles.ps1 @@ -0,0 +1,27 @@ +Function Invoke-ListGDAPRoles { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Relationship.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable -TableName 'GDAPRoles' + $Groups = Get-CIPPAzDataTableEntity @Table + + $MappedGroups = foreach ($Group in $Groups) { + [PSCustomObject]@{ + GroupName = $Group.GroupName + GroupId = $Group.GroupId + RoleName = $Group.RoleName + roleDefinitionId = $Group.roleDefinitionId + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($MappedGroups) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 new file mode 100644 index 000000000000..b33334241408 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListLicenses.ps1 @@ -0,0 +1,53 @@ +function Invoke-ListLicenses { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + if ($TenantFilter -ne 'AllTenants') { + $GraphRequest = Get-CIPPLicenseOverview -TenantFilter $TenantFilter | ForEach-Object { + $_ + } + } else { + $Table = Get-CIPPTable -TableName cachelicenses + $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-1) + if (!$Rows) { + $GraphRequest = [PSCustomObject]@{ + Tenant = 'Loading data for all tenants. Please check back in 1 minute' + License = 'Loading data for all tenants. Please check back in 1 minute' + } + $Tenants = Get-Tenants -IncludeErrors + + if (($Tenants | Measure-Object).Count -gt 0) { + $Queue = New-CippQueueEntry -Name 'Licenses (All Tenants)' -TotalTasks ($Tenants | Measure-Object).Count + $Tenants = $Tenants | Select-Object customerId, defaultDomainName, @{Name = 'QueueId'; Expression = { $Queue.RowKey } }, @{Name = 'FunctionName'; Expression = { 'ListLicensesQueue' } }, @{Name = 'QueueName'; Expression = { $_.defaultDomainName } } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'ListLicensesOrchestrator' + Batch = @($Tenants) + SkipLog = $true + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + } + } else { + $GraphRequest = $Rows | ForEach-Object { + $LicenseData = $_.License | ConvertFrom-Json -ErrorAction SilentlyContinue + foreach ($License in $LicenseData) { + $License + } + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListOAuthApps.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListOAuthApps.ps1 new file mode 100644 index 000000000000..940ed50272ef --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListOAuthApps.ps1 @@ -0,0 +1,45 @@ +Function Invoke-ListOAuthApps { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Application.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + if ($TenantFilter -eq 'AllTenants') { $Tenants = (Get-Tenants).defaultDomainName } else { $Tenants = $TenantFilter } + + try { + $GraphRequest = foreach ($Tenant in $Tenants) { + try { + $ServicePrincipals = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=id,displayName,appid" -tenantid $Tenant + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/oauth2PermissionGrants' -tenantid $Tenant | ForEach-Object { + $CurrentServicePrincipal = ($ServicePrincipals | Where-Object -Property id -EQ $_.clientId) + [PSCustomObject]@{ + Tenant = $Tenant + Name = $CurrentServicePrincipal.displayName + ApplicationID = $CurrentServicePrincipal.appid + ObjectID = $_.clientId + Scope = ($_.scope -join ',') + StartTime = $_.startTime + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + continue + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListServiceHealth.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListServiceHealth.ps1 new file mode 100644 index 000000000000..c97d95c41d03 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Reports/Invoke-ListServiceHealth.ps1 @@ -0,0 +1,50 @@ +Function Invoke-ListServiceHealth { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + if ($TenantFilter -eq 'AllTenants') { + $ResultHealthSummary = Get-Tenants | ForEach-Object -Parallel { + Import-Module '.\Modules\AzBobbyTables' + Import-Module '.\Modules\CIPPCore' + $TenantName = $_.displayName + Write-Host "Processed Service Health for $TenantName via AllTenants" + $prop = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/admin/serviceAnnouncement/issues?`$filter=endDateTime eq null" -tenantid $_.defaultDomainName + $prop | Add-Member -NotePropertyName 'tenant' -NotePropertyValue $TenantName + $prop | Add-Member -NotePropertyName 'defaultDomainName' -NotePropertyValue $_.defaultDomainName + $prop + } + } else { + $TenantName = $Request.Query.displayName + $DefaultDomainName = $Request.Query.defaultDomainName + $ResultHealthSummary = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/admin/serviceAnnouncement/issues?`$filter=endDateTime eq null" -tenantid $TenantFilter + $ResultHealthSummary | Add-Member -NotePropertyName 'tenant' -NotePropertyValue $TenantName + $ResultHealthSummary | Add-Member -NotePropertyName 'defaultDomainName' -NotePropertyValue $DefaultDomainName + Write-Host "Processed Service Health for $TenantName" + } + $Results = foreach ($h in $ResultHealthSummary) { + [PSCustomObject]@{ + TenantName = $h.tenant + DefaultDomainName = $h.defaultDomainName + issueId = $h.ID + service = $h.service + type = $h.feature + desc = $h.impactDescription + } + } + + $StatusCode = [HttpStatusCode]::OK + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 new file mode 100644 index 000000000000..605485f67010 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsDeploy.ps1 @@ -0,0 +1,59 @@ +Function Invoke-AddStandardsDeploy { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $user = $request.headers.'x-ms-client-principal' + $username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + + try { + $Tenant = $Request.body.tenant + $Settings = ($request.body | Select-Object -Property * -ExcludeProperty Select_*, None ) + $Settings | Add-Member -NotePropertyName 'v2.1' -NotePropertyValue $true -Force + if ($Settings.phishProtection.remediate) { + $URL = $request.headers.'x-ms-original-url'.split('/api') | Select-Object -First 1 + Write-Host $URL + $Settings.phishProtection = [pscustomobject]@{ + remediate = [bool]$Settings.phishProtection.remediate + URL = $URL + } + } + #Get all subobjects in $Settings that are set to false, and remove them. + $Settings.psobject.properties.name | Where-Object { $Settings.$_ -eq $false -and $_ -ne 'v2.1' -and $_ -in 'Alert', 'Remediate', 'Report' } | ForEach-Object { + $Settings.psobject.properties.remove($_) + } + + $object = [PSCustomObject]@{ + Tenant = $Tenant + AddedBy = $username + AppliedAt = (Get-Date).ToString('s') + Standards = $Settings + v2 = $true + } | ConvertTo-Json -Depth 10 + + $Table = Get-CippTable -tablename 'standards' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = "$Tenant" + PartitionKey = 'standards' + } + Write-LogMessage -headers $Request.Headers -tenant $tenant -API 'Standards' -message 'Successfully added standards deployment' -Sev 'Info' + + $body = [pscustomobject]@{'Results' = 'Successfully added standards deployment' } + } catch { + Write-LogMessage -headers $Request.Headers -API 'Standards' -message "Standards API failed. Error:$($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Failed to add standard: $($_.Exception.Message)" } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 new file mode 100644 index 000000000000..3f38f3f73e4c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-AddStandardsTemplate.ps1 @@ -0,0 +1,50 @@ +function Invoke-AddStandardsTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + if ($Request.Body.tenantFilter -eq 'tenantFilter') { + throw 'Invalid Tenant Selection. A standard must be assigned to at least 1 tenant.' + } + + $GUID = $Request.body.GUID ? $request.body.GUID : (New-Guid).GUID + #updatedBy = $request.headers.'x-ms-client-principal' + #updatedAt = (Get-Date).ToUniversalTime() + $request.body | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID -Force + $request.body | Add-Member -NotePropertyName 'createdAt' -NotePropertyValue ($Request.body.createdAt ? $Request.body.createdAt : (Get-Date).ToUniversalTime()) -Force + $Request.body | Add-Member -NotePropertyName 'updatedBy' -NotePropertyValue ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($request.headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails -Force + $Request.body | Add-Member -NotePropertyName 'updatedAt' -NotePropertyValue (Get-Date).ToUniversalTime() -Force + $JSON = (ConvertTo-Json -Compress -Depth 100 -InputObject ($Request.body)) + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'StandardsTemplateV2' + GUID = "$GUID" + } + + $AddObject = @{ + PartitionKey = 'InstanceProperties' + RowKey = 'CIPPURL' + Value = [string]([System.Uri]$Headers.'x-ms-original-url').Host + } + $ConfigTable = Get-CIPPTable -tablename 'Config' + Add-AzDataTableEntity @ConfigTable -Entity $AddObject -Force + + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Standards Template $($Request.body.templateName) with GUID $GUID added/edited." -Sev 'Info' + $body = [pscustomobject]@{'Results' = 'Successfully added template'; Metadata = @{id = $GUID } } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-BestPracticeAnalyser_List.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-BestPracticeAnalyser_List.ps1 new file mode 100644 index 000000000000..28981282a174 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-BestPracticeAnalyser_List.ps1 @@ -0,0 +1,28 @@ +Function Invoke-BestPracticeAnalyser_List { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.BestPracticeAnalyser.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Tenants = Get-Tenants + $Table = get-cipptable 'cachebpa' + $Results = (Get-CIPPAzDataTableEntity @Table) | ForEach-Object { + $_.UnusedLicenseList = @(ConvertFrom-Json -ErrorAction silentlycontinue -InputObject $_.UnusedLicenseList) + $_ + } + + if (!$Results) { + $Results = @{ + Tenant = 'The BPA has not yet run.' + } + } + Write-Host ($Tenants | ConvertTo-Json) + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @(($Results | Where-Object -Property RowKey -In $Tenants.customerId)) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 new file mode 100644 index 000000000000..81810ce00d00 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-CIPPStandardsRun.ps1 @@ -0,0 +1,95 @@ + +function Invoke-CIPPStandardsRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter = 'allTenants', + [Parameter(Mandatory = $false)] + [switch]$Force, + [Parameter(Mandatory = $false)] + $TemplateID, + [Parameter(Mandatory = $false)] + $runManually = $false, + [Parameter(Mandatory = $false)] + [switch]$Drift + ) + Write-Information "Starting process for standards - $($tenantFilter). TemplateID: $($TemplateID) RunManually: $($runManually) Force: $($Force.IsPresent) Drift: $($Drift.IsPresent)" + + if ($Drift.IsPresent) { + Write-Information 'Drift Standards Run' + $AllTasks = Get-CIPPTenantAlignment | Where-Object -Property standardtype -EQ 'drift' | Select-Object -Property TenantFilter | Sort-Object -Unique -Property TenantFilter + + #For each item in our object, run the queue. + $Queue = New-CippQueueEntry -Name 'Drift Standards' -TotalTasks ($AllTasks | Measure-Object).Count + + $Batch = foreach ($Task in $AllTasks) { + [PSCustomObject]@{ + FunctionName = 'CIPPDriftManagement' + Tenant = $Task.TenantFilter + } + } + + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'DriftStandardsOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started orchestration with ID = '$InstanceId' for drift standards run" + #$Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId + return + } else { + Write-Information 'Classic Standards Run' + + if ($Force.IsPresent) { + Write-Information 'Clearing Rerun Cache' + Test-CIPPRerun -ClearAll -TenantFilter $TenantFilter -Type 'Standard' + } + + $StandardsParams = @{ + TenantFilter = $TenantFilter + runManually = $runManually + } + if ($TemplateID) { + $StandardsParams['TemplateId'] = $TemplateID + } + + $AllTenantsList = Get-CIPPStandards @StandardsParams | Select-Object -ExpandProperty Tenant | Sort-Object -Unique + + # Build batch of per-tenant list activities + $Batch = foreach ($Tenant in $AllTenantsList) { + $BatchItem = @{ + FunctionName = 'CIPPStandardsList' + TenantFilter = $Tenant + runManually = $runManually + } + if ($TemplateID) { + $BatchItem['TemplateId'] = $TemplateID + } + $BatchItem + } + + Write-Information "Built batch of $($Batch.Count) tenant standards list activities: $($Batch | ConvertTo-Json -Depth 5 -Compress)" + + # Start orchestrator with distributed batch and post-exec aggregation + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'StandardsList' + Batch = @($Batch) + PostExecution = @{ + FunctionName = 'CIPPStandardsApplyBatch' + } + SkipLog = $true + } + + Write-Information "InputObject: $($InputObject | ConvertTo-Json -Depth 5 -Compress)" + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started standards list orchestration with ID = '$InstanceId'" + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecBPA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecBPA.ps1 new file mode 100644 index 000000000000..398ef51a6fbc --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecBPA.ps1 @@ -0,0 +1,46 @@ +function Invoke-ExecBPA { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.BestPracticeAnalyser.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $ConfigTable = Get-CIPPTable -tablename Config + $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'OffloadFunctions' and RowKey eq 'OffloadFunctions'" + + $TenantFilter = $Request.Query.tenantFilter ? $Request.Query.tenantFilter.value : $Request.Body.tenantfilter.value + + if ($Config -and $Config.state -eq $true) { + if ($env:CIPP_PROCESSOR -ne 'true') { + $Parameters = @{Force = $true } + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Parameters.TenantFilter = $TenantFilter + $RowKey = "Start-BPAOrchestrator-$($TenantFilter)" + } else { + $RowKey = 'Start-BPAOrchestrator' + } + + $ProcessorQueue = Get-CIPPTable -TableName 'ProcessorQueue' + $ProcessorFunction = [PSCustomObject]@{ + PartitionKey = 'Function' + RowKey = $RowKey + FunctionName = 'Start-BPAOrchestrator' + Parameters = [string](ConvertTo-Json -Compress -InputObject $Parameters) + } + Add-AzDataTableEntity @ProcessorQueue -Entity $ProcessorFunction -Force + $Results = [pscustomobject]@{'Results' = 'BPA queued for execution' } + } + } else { + Start-BPAOrchestrator -TenantFilter $TenantFilter + $Results = [pscustomobject]@{'Results' = 'BPA started' } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDomainAnalyser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDomainAnalyser.ps1 new file mode 100644 index 000000000000..573498b0c8f6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDomainAnalyser.ps1 @@ -0,0 +1,39 @@ +function Invoke-ExecDomainAnalyser { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.DomainAnalyser.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $ConfigTable = Get-CIPPTable -tablename Config + $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'OffloadFunctions' and RowKey eq 'OffloadFunctions'" + + if ($Config -and $Config.state -eq $true) { + if ($env:CIPP_PROCESSOR -ne 'true') { + $ProcessorFunction = [PSCustomObject]@{ + PartitionKey = 'Function' + RowKey = 'Start-DomainOrchestrator' + FunctionName = 'Start-DomainOrchestrator' + } + $ProcessorQueue = Get-CIPPTable -TableName 'ProcessorQueue' + Add-AzDataTableEntity @ProcessorQueue -Entity $ProcessorFunction -Force + $Results = [pscustomobject]@{'Results' = 'Queueing Domain Analyser' } + } + } else { + $OrchStatus = Start-DomainOrchestrator + if ($OrchStatus) { + $Message = 'Domain Analyser started' + } else { + $Message = 'Domain Analyser error: check logs' + } + $Results = [pscustomobject]@{'Results' = $Message } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 new file mode 100644 index 000000000000..ff43f91dd0f0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecDriftClone.ps1 @@ -0,0 +1,45 @@ +function Invoke-ExecDriftClone { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $TemplateId = $Request.Body.id + + if (-not $TemplateId) { + $Results = [pscustomobject]@{ + 'Results' = 'Template ID is required' + 'Success' = $false + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = $Results + }) + return + } + $CloneResult = New-CippStandardsDriftClone -TemplateId $TemplateId -UpgradeToDrift -Headers $Request.Headers + $Results = [pscustomobject]@{ + 'Results' = $CloneResult + 'Success' = $true + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + } catch { + $Results = [pscustomobject]@{ + 'Results' = "Failed to create drift clone: $($_.Exception.Message)" + 'Success' = $false + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $Results + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 new file mode 100644 index 000000000000..1b74e88cbfb1 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardConvert.ps1 @@ -0,0 +1,236 @@ +function Invoke-ExecStandardConvert { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + function Convert-SingleStandardItem { + param( + [Parameter(Mandatory)] + $OldStd + ) + + $Actions = New-Object System.Collections.ArrayList + $RemediatePresent = ($OldStd.PSObject.Properties.Name -contains 'remediate') + $AlertPresent = ($OldStd.PSObject.Properties.Name -contains 'alert') + $ReportPresent = ($OldStd.PSObject.Properties.Name -contains 'report') + + $RemediateTrue = $RemediatePresent -and $OldStd.remediate -eq $true + $AlertTrue = $AlertPresent -and $OldStd.alert -eq $true + $ReportTrue = $ReportPresent -and $OldStd.report -eq $true + + if (-not ($RemediateTrue -or $AlertTrue -or $ReportTrue)) { + return $null + } + + if ($RemediateTrue) { + [void]$Actions.Add([pscustomobject]@{label = 'Remediate'; value = 'Remediate' }) + } + if ($AlertTrue) { + [void]$Actions.Add([pscustomobject]@{label = 'Alert'; value = 'warn' }) + } + if ($ReportTrue) { + [void]$Actions.Add([pscustomobject]@{label = 'Report'; value = 'Report' }) + } + + $propsToCopy = $OldStd | Select-Object * -ExcludeProperty alert, report, remediate + $Result = [ordered]@{} + if ($Actions.Count -gt 0) { + $ActionArray = $Actions | ForEach-Object { $_ } + $Result.action = @($ActionArray) + } + + foreach ($prop in $propsToCopy.PSObject.Properties) { + if ($prop.Name -ne 'PSObject') { + $Result.$($prop.Name) = $prop.Value + } + } + + return $Result + } + + function Convert-OldStandardToNewFormat { + param( + [Parameter(Mandatory = $true)] + $OldStandard, + [Parameter(Mandatory = $false)] + $AllTenantsExclusions = @() + ) + + $Tenant = $OldStandard.Tenant + if ($Tenant -eq 'AllTenants') { + $TenantFilter = @( + [pscustomobject]@{ + label = '*All Tenants (AllTenants)' + value = 'AllTenants' + addedFields = [pscustomobject]@{} + } + ) + if ($AllTenantsExclusions.Count -gt 0) { + $Excluded = $AllTenantsExclusions | ForEach-Object { + [pscustomobject]@{ + label = "$_ ($_)" + value = $_ + addedFields = [pscustomobject]@{} + } + } + } else { + $Excluded = $null + } + } else { + $TenantFilter = @( + [pscustomobject]@{ + label = "$Tenant ($Tenant)" + value = $Tenant + addedFields = [pscustomobject]@{} + } + ) + $Excluded = $null + } + + $NewStandards = [ordered]@{} + + foreach ($StdKey in $OldStandard.Standards.PSObject.Properties.Name) { + if ($StdKey -in ('tenant', 'OverrideAllTenants', 'v2', 'v2.1')) { + continue + } + + $OldStd = $OldStandard.Standards.$StdKey + $NewStdKey = if ($StdKey -eq 'ConditionalAccess') { + Write-Host 'Converting ConditionalAccess to ConditionalAccessTemplate' + 'ConditionalAccessTemplate' + } else { $StdKey } + $IsArrayStandard = ($NewStdKey -eq 'IntuneTemplate' -or $NewStdKey -eq 'ConditionalAccessTemplate') + $ConvertedObj = Convert-SingleStandardItem $OldStd + if ($null -eq $ConvertedObj) { + continue + } + + if ($IsArrayStandard) { + $FinalArray = New-Object System.Collections.ArrayList + $TemplateList = $ConvertedObj.TemplateList + $ConvertedObj.PSObject.Properties.Remove('TemplateList') + + if ($TemplateList -and $TemplateList.Count -gt 0) { + foreach ($TItem in $TemplateList) { + $NewItem = [ordered]@{} + if ($ConvertedObj.action) { + $NewItem.action = $ConvertedObj.action + } + foreach ($prop in $ConvertedObj.PSObject.Properties.Name) { + if ($prop -ne 'action') { + $NewItem.$prop = $ConvertedObj.$prop + } + } + $NewItem.TemplateList = $TItem + [void]$FinalArray.Add($NewItem) + } + } + + if ($FinalArray.Count -gt 0) { + $ArrayItems = $FinalArray | ForEach-Object { $_ } + $NewStandards.$NewStdKey = $ArrayItems + } + } else { + $Action = $ConvertedObj.action + if ($Action) { + $ConvertedObj.PSObject.Properties.Remove('action') + } + $Wrap = [ordered]@{} + if ($Action) { + $Wrap.action = $Action + } + $Wrap.standards = [ordered]@{} + $Wrap.standards.$NewStdKey = $ConvertedObj + $NewStandards.$NewStdKey = $Wrap + } + + } + + $NewTemplate = [pscustomobject]@{ + tenantFilter = $TenantFilter + templateName = "Converted Legacy Template for $Tenant" + standards = $NewStandards + runManually = $true + } + + if ($Tenant -eq 'AllTenants' -and $Excluded) { + $ExcludedArr = $Excluded | ForEach-Object { $_ } + $NewTemplate | Add-Member -NotePropertyName 'excludedTenants' -NotePropertyValue @($ExcludedArr) -Force + } + + return $NewTemplate + } + + $Table = Get-CippTable -tablename 'standards' + $Filter = "PartitionKey eq 'standards'" + $OldStandards = (Get-CIPPAzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json + + $AllTenantsStd = $OldStandards | Where-Object { $_.Tenant -eq 'AllTenants' } + $HasAllTenants = $null -ne $AllTenantsStd + + $AllTenantsExclusions = New-Object System.Collections.ArrayList + $StandardsToConvert = New-Object System.Collections.ArrayList + + foreach ($OldStd in $OldStandards) { + $Tenant = $OldStd.Tenant + $StdNames = $OldStd.Standards.PSObject.Properties.Name | Where-Object { $_ -notin ('tenant', 'OverrideAllTenants', 'v2', 'v2.1') } + $HasOverride = ($OldStd.Standards.PSObject.Properties.Name -contains 'OverrideAllTenants') + + if ($Tenant -ne 'AllTenants') { + if ($HasOverride -and $StdNames.Count -eq 0) { + [void]$AllTenantsExclusions.Add($Tenant) + continue + } + + if ($HasOverride -and $StdNames.Count -gt 0 -and $HasAllTenants) { + [void]$AllTenantsExclusions.Add($Tenant) + } + } + + [void]$StandardsToConvert.Add($OldStd) + } + + foreach ($OldStd in $StandardsToConvert) { + $Converted = Convert-OldStandardToNewFormat $OldStd ($AllTenantsExclusions) + $GUID = [guid]::NewGuid() + $Converted | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID -Force + $Converted | Add-Member -NotePropertyName 'createdAt' -NotePropertyValue ((Get-Date).ToUniversalTime()) -Force + $Converted | Add-Member -NotePropertyName 'updatedBy' -NotePropertyValue 'System' -Force + $Converted | Add-Member -NotePropertyName 'updatedAt' -NotePropertyValue (Get-Date).ToUniversalTime() -Force + $JSON = ConvertTo-Json -Depth 100 -InputObject $Converted -Compress + + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + if ($Converted.standards) { + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$JSON" + RowKey = "$GUID" + PartitionKey = 'StandardsTemplateV2' + GUID = "$GUID" + } + } + } + + #delete the old standards + if ($StandardsToConvert.Count -gt 0) { + $StandardsToConvert | ForEach-Object { + $Table = Get-CippTable -tablename 'standards' + $OldStdsTableItems = Get-CIPPAzDataTableEntity @Table -Filter $Filter + try { + Remove-AzDataTableEntity @Table -Entity $OldStdsTableItems -Force + } catch { + #donothing + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = 'Successfully converted legacy standards to new format' + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardsRun.ps1 new file mode 100644 index 000000000000..0e2f940f7948 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecStandardsRun.ps1 @@ -0,0 +1,71 @@ +function Invoke-ExecStandardsRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + + $TenantFilter = $Request.Query.tenantFilter ?? 'allTenants' + $TemplateId = $Request.Query.templateId ?? '*' + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'StandardsTemplateV2'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Sort-Object TimeStamp).JSON | ForEach-Object { + try { + ConvertFrom-Json $_ -ErrorAction SilentlyContinue + } catch { + + } + } | Where-Object { + $_.guid -like $TemplateId + } + + + + $ConfigTable = Get-CIPPTable -tablename Config + $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'OffloadFunctions' and RowKey eq 'OffloadFunctions'" + + if ($Config -and $Config.state -eq $true) { + if ($env:CIPP_PROCESSOR -ne 'true') { + + $ProcessorFunction = [PSCustomObject]@{ + PartitionKey = 'Function' + RowKey = "Invoke-CIPPStandardsRun-$TenantFilter-$TemplateId" + FunctionName = 'Invoke-CIPPStandardsRun' + Parameters = [string](ConvertTo-Json -Compress -InputObject @{ + TenantFilter = $TenantFilter + TemplateId = $TemplateId + runManually = [bool]$Templates.runManually + Force = $true + }) + } + $ProcessorQueue = Get-CIPPTable -TableName 'ProcessorQueue' + Add-AzDataTableEntity @ProcessorQueue -Entity $ProcessorFunction -Force + $Results = "Successfully Queued Standards Run for Tenant $TenantFilter" + } + } else { + try { + $null = Invoke-CIPPStandardsRun -TenantFilter $TenantFilter -TemplateID $TemplateId -runManually ([bool]$Templates.runManually) -Force + $Results = "Successfully started Standards Run for tenant: $TenantFilter" + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message $Results -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to start standards run for tenant: $TenantFilter. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message $Results -Sev 'Error' -LogData $ErrorMessage + } + } + + $Results = [pscustomobject]@{'Results' = "$Results" } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 new file mode 100644 index 000000000000..63b639e3769e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 @@ -0,0 +1,133 @@ +function Invoke-ExecUpdateDriftDeviation { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug' + + try { + $TenantFilter = $Request.Body.TenantFilter + + if ($Request.Body.RemoveDriftCustomization) { + $Table = Get-CippTable -tablename 'tenantDrift' + $Filter = "PartitionKey eq '$TenantFilter'" + $ExistingDeviations = Get-CIPPAzDataTableEntity @Table -Filter $Filter + foreach ($Deviation in $ExistingDeviations) { + Remove-AzDataTableEntity @Table -Entity $Deviation + } + $Results = @([PSCustomObject]@{ + success = $true + result = "All drift customizations removed for tenant $TenantFilter" + }) + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed all drift customizations for tenant $TenantFilter" -Sev 'Info' + } else { + $Deviations = $Request.Body.deviations + $Reason = $Request.Body.reason + $Results = foreach ($Deviation in $Deviations) { + try { + $user = $request.headers.'x-ms-client-principal' + $username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + $Result = Set-CIPPDriftDeviation -TenantFilter $TenantFilter -StandardName $Deviation.standardName -Status $Deviation.status -Reason $Reason -user $username + [PSCustomObject]@{ + success = $true + result = $Result + } + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Updated drift deviation status for $($Deviation.standardName) to $($Deviation.status) with reason: $Reason" -Sev 'Info' + if ($Deviation.status -eq 'DeniedRemediate') { + $Setting = $Deviation.standardName -replace 'standards.', '' + $StandardTemplate = Get-CIPPTenantAlignment -TenantFilter $TenantFilter | Where-Object -Property standardType -EQ 'drift' + if ($Setting -like '*IntuneTemplate*') { + $Setting = 'IntuneTemplate' + $TemplateId = $Deviation.standardName.split('.') | Select-Object -Index 2 + $StandardTemplate = $StandardTemplate.standardSettings.IntuneTemplate | Where-Object { $_.TemplateList.value -like "*$TemplateId*" } + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force + $Settings = $StandardTemplate + } elseif ($Setting -like '*ConditionalAccessTemplate*') { + $Setting = 'ConditionalAccessTemplate' + $TemplateId = $Deviation.standardName.split('.') | Select-Object -Index 2 + $StandardTemplate = $StandardTemplate.standardSettings.ConditionalAccessTemplate | Where-Object { $_.TemplateList.value -like "*$TemplateId*" } + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force + $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force + $Settings = $StandardTemplate + } else { + $StandardTemplate = $StandardTemplate.standardSettings.$Setting + $StandardTemplate.standards.$Setting | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force + $StandardTemplate.standards.$Setting | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force + $Settings = $StandardTemplate.standards.$Setting + } + $TaskBody = @{ + TenantFilter = $TenantFilter + Name = "One Off Drift Remediation: $Setting - $TenantFilter" + Command = @{ + value = "Invoke-CIPPStandard$Setting" + label = "Invoke-CIPPStandard$Setting" + } + + Parameters = [pscustomobject]@{ + Tenant = $TenantFilter + Settings = $Settings + } + ScheduledTime = '0' + PostExecution = @{ + Webhook = $false + Email = $false + PSA = $false + } + } + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Scheduled drift remediation task for $Setting" -Sev 'Info' + } + if ($Deviation.status -eq 'deniedDelete') { + $Policy = $Deviation.receivedValue | ConvertFrom-Json -ErrorAction SilentlyContinue + Write-Host "Policy is $($Policy)" + if ($Deviation.standardName -like '*ConditionalAccessTemplates*') { + $URLName = 'identity/conditionalAccess/policies' + } else { + $URLName = Get-CIPPURLName -Template $Policy + } + $ID = $Policy.ID + if ($Policy -and $URLName) { + Write-Host "Going to delete Policy with ID $($Policy.ID) Deviation Name is $($Deviation.standardName)" + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/$($URLName)/$($ID)" -type DELETE -tenant $TenantFilter + "Deleted Policy $($ID)" + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Deleted Policy with ID $($ID)" -Sev 'Info' + } else { + "could not find policy with ID $($ID)" + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not find Policy with ID $($ID) to delete for remediation" -Sev 'Warning' + } + + + } + } catch { + [PSCustomObject]@{ + standardName = $Deviation.standardName + success = $false + error = $_.Exception.Message + } + Write-LogMessage -tenant $TenantFilter -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to update drift deviation for $($Deviation.standardName): $($_.Exception.Message)" -Sev 'Error' + } + } + } + + $Body = @{ Results = @($Results) } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + + } catch { + Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to update drift deviation: $($_.Exception.Message)" -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{error = $_.Exception.Message } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPA.ps1 new file mode 100644 index 000000000000..f51ede9d33d2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPA.ps1 @@ -0,0 +1,101 @@ +Function Invoke-ListBPA { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.BestPracticeAnalyser.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $Table = Get-CippTable 'cachebpav2' + $name = $Request.Query.Report + if ($null -eq $name) { $name = 'CIPP Best Practices v1.5 - Table view' } + + # Get all possible JSON files for reports, find the correct one, select the Columns + $JSONFields = @() + $BPATemplateTable = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'BPATemplate'" + $Templates = (Get-CIPPAzDataTableEntity @BPATemplateTable -Filter $Filter).JSON | ConvertFrom-Json + + $Templates | ForEach-Object { + $Template = $_ + if ($Template.Name -eq $NAME) { + $JSONFields = $Template.Fields | Where-Object { $_.StoreAs -eq 'JSON' } | ForEach-Object { $_.name } + $Columns = $Template.fields.FrontendFields | Where-Object -Property name -NE $null + $Style = $Template.Style + } + } + + + if ($TenantFilter -ne 'AllTenants' -and $Style -eq 'Tenant') { + $CustomerId = (Get-Tenants -TenantFilter $TenantFilter).customerId + $mergedObject = New-Object pscustomobject + $Data = (Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$CustomerId'") | ForEach-Object { + $row = $_ + $JSONFields | ForEach-Object { + $jsonContent = $row.$_ + if (![string]::IsNullOrEmpty($jsonContent) -and $jsonContent -ne 'FAILED') { + try { + $row.$_ = $jsonContent | ConvertFrom-Json -Depth 15 + } catch { + } + } + } + $row.PSObject.Properties | ForEach-Object { + Write-Host "Adding $($_.Name) to mergedObject" + $mergedObject | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force + } + } + + $Data = $mergedObject + } else { + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + $Tenants = Get-Tenants -IncludeErrors + if ($AllowedTenants -notcontains 'AllTenants') { + $Tenants = $Tenants | Where-Object -Property customerId -In $AllowedTenants + } + Write-Information ($tenants.defaultDomainName | ConvertTo-Json) + $Data = (Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$NAME'") | ForEach-Object { + $row = $_ + $JSONFields | ForEach-Object { + $jsonContent = $row.$_ + if (![string]::IsNullOrEmpty($jsonContent) -and $jsonContent -ne 'FAILED') { + try { + $row.$_ = $jsonContent | ConvertFrom-Json -Depth 15 + } catch { + } + } + } + $row | Where-Object -Property PartitionKey -In $Tenants.customerId + } + + + } + + $Results = [PSCustomObject]@{ + Data = @($Data) + Columns = @($Columns) + Keys = $Data | ForEach-Object { + $_.PSObject.Properties | + Where-Object { $_.Name -ne 'PartitionKey' -and $_.Name -ne 'RowKey' -and $_.Name -ne 'Timestamp' } | + ForEach-Object { $_.Name } + } | Select-Object -Unique + Style = $Style + } + + if (!$Results) { + $Results = @{ + Columns = @( value = 'Results'; name = 'Results') + Data = @(@{ Results = 'The BPA has not yet run.' }) + Keys = @() + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = (ConvertTo-Json -Depth 15 -InputObject $Results) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPATemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPATemplates.ps1 new file mode 100644 index 000000000000..d571b95727d9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListBPATemplates.ps1 @@ -0,0 +1,48 @@ +Function Invoke-ListBPATemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.BestPracticeAnalyser.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'templates' + + $Templates = Get-ChildItem 'Config\*.BPATemplate.json' | ForEach-Object { + $TemplateJson = Get-Content $_ | ConvertFrom-Json | ConvertTo-Json -Compress -Depth 10 + $Entity = @{ + JSON = "$TemplateJson" + RowKey = "$($_.name)" + PartitionKey = 'BPATemplate' + GUID = "$($_.name)" + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + } + + $Filter = "PartitionKey eq 'BPATemplate'" + $Templates = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if ($Request.Query.RawJson) { + foreach ($Template in $Templates) { + $Template.JSON = $Template.JSON -replace '"parameters":', '"Parameters":' + } + $Templates = $Templates.JSON | ConvertFrom-Json | Sort-Object Name + } else { + $Templates = $Templates | ForEach-Object { + $TemplateJson = $_.JSON -replace '"parameters":', '"Parameters":' + $Template = $TemplateJson | ConvertFrom-Json + @{ + GUID = $_.GUID + Data = $Template.fields + Name = $Template.Name + Style = $Template.Style + } + } | Sort-Object Name + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ($Templates | ConvertTo-Json -Depth 10) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainAnalyser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainAnalyser.ps1 new file mode 100644 index 000000000000..416db1a50c62 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainAnalyser.ps1 @@ -0,0 +1,20 @@ + +Function Invoke-ListDomainAnalyser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.DomainAnalyser.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + $Results = Get-CIPPDomainAnalyser -TenantFilter $TenantFilter + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainHealth.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainHealth.ps1 new file mode 100644 index 000000000000..6930f2cce975 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListDomainHealth.ps1 @@ -0,0 +1,152 @@ +function Invoke-ListDomainHealth { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.DomainAnalyser.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + Import-Module DNSHealth + + try { + $ConfigTable = Get-CippTable -tablename Config + $Filter = "PartitionKey eq 'Domains' and RowKey eq 'Domains'" + $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + + $ValidResolvers = @('Google', 'CloudFlare', 'Quad9') + if ($ValidResolvers -contains $Config.Resolver) { + $Resolver = $Config.Resolver + } else { + $Resolver = 'Google' + $Config = @{ + PartitionKey = 'Domains' + RowKey = 'Domains' + Resolver = $Resolver + } + Add-CIPPAzDataTableEntity @ConfigTable -Entity $Config -Force + } + } catch { + $Resolver = 'Google' + } + + Set-DnsResolver -Resolver $Resolver + + $UserRoles = Get-CIPPAccessRole -Request $Request + + $APIName = $Request.Params.CIPPEndpoint + + + $StatusCode = [HttpStatusCode]::OK + try { + if ($Request.Query.Action) { + if ($Request.Query.Domain -match '^(((?!-))(xn--|_{1,1})?[a-z0-9-]{0,61}[a-z0-9]{1,1}\.)*(xn--)?([a-z0-9][a-z0-9\-]{0,60}|[a-z0-9-]{1,30}\.[a-z]{2,})$') { + $DomainTable = Get-CIPPTable -Table 'Domains' + $Filter = "RowKey eq '{0}'" -f $Request.Query.Domain + $DomainInfo = Get-CIPPAzDataTableEntity @DomainTable -Filter $Filter + switch ($Request.Query.Action) { + 'ListDomainInfo' { + $Body = $DomainInfo + } + 'GetDkimSelectors' { + $Body = ($DomainInfo.DkimSelectors | ConvertFrom-Json) -join ',' + } + 'ReadSpfRecord' { + $SpfQuery = @{ + Domain = $Request.Query.Domain + } + + if ($Request.Query.ExpectedInclude) { + $SpfQuery.ExpectedInclude = $Request.Query.ExpectedInclude + } + + if ($Request.Query.Record) { + $SpfQuery.Record = $Request.Query.Record + } + + $Body = Read-SpfRecord @SpfQuery + } + 'ReadDmarcPolicy' { + $Body = Read-DmarcPolicy -Domain $Request.Query.Domain + } + 'ReadDkimRecord' { + $DkimQuery = @{ + Domain = $Request.Query.Domain + FallbackToMicrosoftSelectors = $true + } + if ($Request.Query.Selector) { + $DkimQuery.Selectors = ($Request.Query.Selector).trim() -split '\s*,\s*' + + if ('admin' -in $UserRoles -or 'editor' -in $UserRoles) { + $DkimSelectors = [string]($DkimQuery.Selectors | ConvertTo-Json -Compress) + if ($DomainInfo) { + $DomainInfo.DkimSelectors = $DkimSelectors + } else { + $DomainInfo = @{ + 'RowKey' = $Request.Query.Domain + 'PartitionKey' = 'ManualEntry' + 'TenantId' = 'NoTenant' + 'MailProviders' = '' + 'TenantDetails' = '' + 'DomainAnalyser' = '' + 'DkimSelectors' = $DkimSelectors + } + } + Write-Host $DomainInfo + Add-CIPPAzDataTableEntity @DomainTable -Entity $DomainInfo -Force + } + } elseif (![string]::IsNullOrEmpty($DomainInfo.DkimSelectors)) { + $DkimQuery.Selectors = [System.Collections.Generic.List[string]]($DomainInfo.DkimSelectors | ConvertFrom-Json) + } + $Body = Read-DkimRecord @DkimQuery + + } + 'ReadMXRecord' { + $Body = Read-MXRecord -Domain $Request.Query.Domain + } + 'TestDNSSEC' { + $Body = Test-DNSSEC -Domain $Request.Query.Domain + } + 'ReadWhoisRecord' { + $Body = Read-WhoisRecord -Query $Request.Query.Domain + } + 'ReadNSRecord' { + $Body = Read-NSRecord -Domain $Request.Query.Domain + } + 'TestHttpsCertificate' { + $HttpsQuery = @{ + Domain = $Request.Query.Domain + } + if ($Request.Query.Subdomains) { + $HttpsQuery.Subdomains = ($Request.Query.Subdomains).trim() -split '\s*,\s*' + } else { + $HttpsQuery.Subdomains = 'www' + } + + $Body = Test-HttpsCertificate @HttpsQuery + } + 'TestMtaSts' { + $HttpsQuery = @{ + Domain = $Request.Query.Domain + } + $Body = Test-MtaSts @HttpsQuery + } + } + } else { + $body = [pscustomobject]@{'Results' = "Domain: $($Request.Query.Domain) is invalid" } + } + } + } catch { + Write-LogMessage -API $APINAME -tenant $($name) -headers $Request.Headers -message "DNS Helper API failed. $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandards.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandards.ps1 new file mode 100644 index 000000000000..5df42f75ef80 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandards.ps1 @@ -0,0 +1,51 @@ +Function Invoke-ListStandards { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + + if ($Request.Query.ShowConsolidated -eq $true) { + $StandardQuery = @{ + TenantFilter = $TenantFilter + } + if ($TenantFilter -eq 'AllTenants') { + $StandardQuery.ListAllTenants = $true + } + $CurrentStandards = @(Get-CIPPStandards @StandardQuery) + } else { + $Table = Get-CippTable -tablename 'standards' + $Filter = "PartitionKey eq 'standards'" + + try { + if ($TenantFilter) { + $Tenants = (Get-CIPPAzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json -Depth 15 -ErrorAction Stop | Where-Object Tenant -EQ $TenantFilter + } else { + $Tenants = (Get-CIPPAzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json -Depth 15 -ErrorAction Stop + } + } catch {} + + $CurrentStandards = foreach ($tenant in $Tenants) { + [PSCustomObject]@{ + displayName = $tenant.tenant + appliedBy = $tenant.addedBy + appliedAt = $tenant.appliedAt + standards = $tenant.Standards + StandardsExport = ($tenant.Standards.PSObject.Properties.Name) -join ', ' + } + } + + $CurrentStandards = ConvertTo-Json -InputObject @($CurrentStandards) -Depth 15 -Compress + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $CurrentStandards + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 new file mode 100644 index 000000000000..0b94eb63d919 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListStandardsCompare.ps1 @@ -0,0 +1,98 @@ +function Invoke-ListStandardsCompare { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.BestPracticeAnalyser.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + + $Table = Get-CIPPTable -TableName 'CippStandardsReports' + $TenantFilter = $Request.Query.tenantFilter + $TemplateFilter = $Request.Query.templateId + + $Filters = [system.collections.generic.list[string]]::new() + if ($TenantFilter) { + $Filters.Add("PartitionKey eq '{0}'" -f $TenantFilter) + } + if ($TemplateFilter) { + $Filters.Add("TemplateId eq '{0}'" -f $TemplateFilter) + } + $Filter = $Filters -join ' and ' + + $Tenants = Get-Tenants -IncludeErrors + $Standards = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } + + $TenantStandards = @{} + $Results = [System.Collections.Generic.List[object]]::new() + + foreach ($Standard in $Standards) { + # each standard is on their own row now, the field name is the RowKey and the value is in the Value field + $FieldName = $Standard.RowKey + $FieldValue = $Standard.Value + $Tenant = $Standard.PartitionKey + + # decode field names that are hex encoded (e.g. QuarantineTemplates) + if ($FieldName -match '^(standards\.QuarantineTemplate\.)(.+)$') { + $Prefix = $Matches[1] + $HexEncodedName = $Matches[2] + $Chars = [System.Collections.Generic.List[char]]::new() + for ($i = 0; $i -lt $HexEncodedName.Length; $i += 2) { + $Chars.Add([char][Convert]::ToInt32($HexEncodedName.Substring($i, 2), 16)) + } + $FieldName = "$Prefix$(-join $Chars)" + } + + if ($FieldValue -is [System.Boolean]) { + $FieldValue = [bool]$FieldValue + } elseif (Test-Json -Json $FieldValue -ErrorAction SilentlyContinue) { + $FieldValue = ConvertFrom-Json -InputObject $FieldValue -ErrorAction SilentlyContinue + } else { + $FieldValue = [string]$FieldValue + } + + # Parse CurrentValue and ExpectedValue from JSON if they are JSON strings + $ParsedCurrentValue = if ($Standard.CurrentValue -and (Test-Json -Json $Standard.CurrentValue -ErrorAction SilentlyContinue)) { + ConvertFrom-Json -InputObject $Standard.CurrentValue -ErrorAction SilentlyContinue + } else { + $Standard.CurrentValue + } + + $ParsedExpectedValue = if ($Standard.ExpectedValue -and (Test-Json -Json $Standard.ExpectedValue -ErrorAction SilentlyContinue)) { + ConvertFrom-Json -InputObject $Standard.ExpectedValue -ErrorAction SilentlyContinue + } else { + $Standard.ExpectedValue + } + + if (-not $TenantStandards.ContainsKey($Tenant)) { + $TenantStandards[$Tenant] = @{} + } + $TenantStandards[$Tenant][$FieldName] = @{ + Value = $FieldValue + LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + TemplateId = $Standard.TemplateId + LicenseAvailable = $Standard.LicenseAvailable + CurrentValue = $ParsedCurrentValue + ExpectedValue = $ParsedExpectedValue + } + } + + foreach ($Tenant in $TenantStandards.Keys) { + $TenantStandard = [PSCustomObject]@{ + tenantFilter = $Tenant + } + foreach ($Field in $TenantStandards[$Tenant].Keys) { + $Value = $TenantStandards[$Tenant][$Field] + $TenantStandard | Add-Member -MemberType NoteProperty -Name $Field -Value $Value -Force + } + $Results.Add($TenantStandard) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 new file mode 100644 index 000000000000..2fce6965eed6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 @@ -0,0 +1,41 @@ +function Invoke-ListTenantAlignment { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + try { + # Use the new Get-CIPPTenantAlignment function to get alignment data + $AlignmentData = Get-CIPPTenantAlignment + + # Transform the data to match the expected API response format + $Results = $AlignmentData | ForEach-Object { + [PSCustomObject]@{ + tenantFilter = $_.TenantFilter + standardName = $_.StandardName + standardType = $_.StandardType ? $_.StandardType : 'Classic Standard' + standardId = $_.StandardId + alignmentScore = $_.AlignmentScore + LicenseMissingPercentage = $_.LicenseMissingPercentage + combinedAlignmentScore = $_.CombinedScore + latestDataCollection = $_.LatestDataCollection + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) + } catch { + Write-LogMessage -API $APIName -message "Failed to get tenant alignment data: $($_.Exception.Message)" -sev Error + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ error = "Failed to get tenant alignment data: $($_.Exception.Message)" } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantDrift.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantDrift.ps1 new file mode 100644 index 000000000000..bb45a2248441 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantDrift.ps1 @@ -0,0 +1,34 @@ +function Invoke-ListTenantDrift { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + + try { + # Use the new Get-CIPPTenantAlignment function to get alignment data + if ($Request.Query.TenantFilter) { + $TenantFilter = $Request.Query.TenantFilter + $Results = Get-CIPPDrift -TenantFilter $TenantFilter + } else { + $Tenants = Get-Tenants + $Results = $Tenants | ForEach-Object { Get-CIPPDrift -AllTenants -TenantFilter $_.defaultDomainName } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) + } catch { + Write-LogMessage -API $APIName -message "Failed to get tenant alignment data: $($_.Exception.Message)" -sev Error + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ error = "Failed to get tenant alignment data: $($_.Exception.Message)" } + }) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 new file mode 100644 index 000000000000..0295956353ce --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveBPATemplate.ps1 @@ -0,0 +1,39 @@ +Function Invoke-RemoveBPATemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + $ID = $Request.Query.TemplateName ?? $Request.Body.TemplateName + try { + $Table = Get-CippTable -tablename 'templates' + + $Filter = "PartitionKey eq 'BPATemplate' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed BPA Template with ID $ID" + Write-LogMessage -Headers $Headers -API $APINAME -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove BPA template with ID $ID. $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APINAME -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 new file mode 100644 index 000000000000..e2b237e4ab81 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandard.ps1 @@ -0,0 +1,41 @@ +Function Invoke-RemoveStandard { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $ID = $Request.Query.ID + try { + $Table = Get-CippTable -tablename 'standards' + $Filter = "PartitionKey eq 'standards' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + Write-LogMessage -Headers $Headers -API $APIName -message "Removed standards for $ID." -Sev 'Info' + $body = [pscustomobject]@{'Results' = 'Successfully removed standards deployment' } + $StatusCode = [HttpStatusCode]::OK + + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APIName -message "Failed to remove standard for $ID. $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $body = [pscustomobject]@{'Results' = 'Failed to remove standard' } + } + + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $body + }) + + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 new file mode 100644 index 000000000000..cfd69a6fe214 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 @@ -0,0 +1,37 @@ +function Invoke-RemoveStandardTemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $ID = $Request.Body.ID ?? $Request.Query.ID + try { + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'StandardsTemplateV2' and RowKey eq '$ID'" + $ClearRow = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey, JSON + $TemplateName = (ConvertFrom-Json -InputObject $ClearRow.JSON).templateName + Remove-AzDataTableEntity -Force @Table -Entity $ClearRow + $Result = "Removed Standards Template named: '$($TemplateName)' with id: $($ID)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove Standards template: $TemplateName with id: $ID. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 new file mode 100644 index 000000000000..cd8821ae41a2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 @@ -0,0 +1,48 @@ +function Invoke-listStandardTemplates { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $ID = $Request.Query.id + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'StandardsTemplateV2'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { + $JSON = $_.JSON -replace '"Action":', '"action":' + try { + $RowKey = $_.RowKey + $Data = $JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + + } catch { + Write-Host "$($RowKey) standard could not be loaded: $($_.Exception.Message)" + return + } + if ($Data) { + $Data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.GUID -Force + $Data | Add-Member -NotePropertyName 'source' -NotePropertyValue $_.Source -Force + $Data | Add-Member -NotePropertyName 'isSynced' -NotePropertyValue (![string]::IsNullOrEmpty($_.SHA)) -Force + + if (!$Data.excludedTenants) { + $Data | Add-Member -NotePropertyName 'excludedTenants' -NotePropertyValue @() -Force + } else { + if ($Data.excludedTenants -and $Data.excludedTenants -ne 'excludedTenants') { + $Data.excludedTenants = @($Data.excludedTenants) + } else { + $Data.excludedTenants = @() + } + } + $Data + } + } | Sort-Object -Property templateName + + if ($ID) { $Templates = $Templates | Where-Object GUID -EQ $ID } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Templates) + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/invoke-DomainAnalyser_List.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/invoke-DomainAnalyser_List.ps1 new file mode 100644 index 000000000000..b441f709d7f0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/invoke-DomainAnalyser_List.ps1 @@ -0,0 +1,40 @@ + +using namespace System.Net + +Function Invoke-DomainAnalyser_List { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.DomainAnalyser.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $DomainTable = Get-CIPPTable -Table 'Domains' + + # Get all the things + + if ($Request.Query.tenantFilter -ne 'AllTenants') { + $DomainTable.Filter = "TenantId eq '{0}'" -f $Request.Query.tenantFilter + } + + try { + # Extract json from table results + $Results = foreach ($DomainAnalyserResult in (Get-CIPPAzDataTableEntity @DomainTable).DomainAnalyser) { + try { + if (![string]::IsNullOrEmpty($DomainAnalyserResult)) { + $Object = $DomainAnalyserResult | ConvertFrom-Json -ErrorAction SilentlyContinue + $Object + } + } catch {} + } + } catch { + $Results = @() + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-AddBPATemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-AddBPATemplate.ps1 new file mode 100644 index 000000000000..7fd804076cf2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-AddBPATemplate.ps1 @@ -0,0 +1,36 @@ +Function Invoke-AddBPATemplate { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.BestPracticeAnalyser.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + try { + + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$($Request.body | ConvertTo-Json -Depth 10 -Compress)" + RowKey = $Request.body.name + PartitionKey = 'BPATemplate' + GUID = $Request.body.name + } + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Created BPA named $($Request.body.name)" -Sev 'Debug' + + $body = [pscustomobject]@{'Results' = 'Successfully added template' } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "BPA Template Creation failed: $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "BPA Template Creation failed: $($_.Exception.Message)" } + } + + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-ExecGraphExplorerPreset.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-ExecGraphExplorerPreset.ps1 new file mode 100644 index 000000000000..08c2ed1d96ad --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Tools/Invoke-ExecGraphExplorerPreset.ps1 @@ -0,0 +1,118 @@ +function Invoke-ExecGraphExplorerPreset { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + + $Action = $Request.Body.action ?? '' + + Write-Information ($Request.Body | ConvertTo-Json -Depth 10) + + switch ($Action) { + 'Copy' { + $Id = $Request.Body.preset.id ? $Request.Body.preset.id : (New-Guid).Guid + } + 'Save' { + $Id = $Request.Body.preset.id + } + 'Delete' { + $Id = $Request.Body.preset.id + } + default { + $Action = 'Copy' + $Id = (New-Guid).Guid + } + } + + $params = $Request.Body.preset | Select-Object endpoint, '$filter', '$select', '$count', '$expand', '$search', NoPagination, '$top', IsShared + + if ($params.'$select'.value) { + $params.'$select' = ($params.'$select').value -join ',' + } + + if (!$Request.Body.preset.name -and $Action -ne 'Delete') { + $Message = 'Error: Preset name is required' + $StatusCode = [HttpStatusCode]::BadRequest + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ + Results = @(@{ + resultText = $Message + state = 'error' + }) + } + }) + return + } + + if (!$Request.Body.preset.endpoint -and $Action -ne 'Delete') { + $Message = 'Error: Preset endpoint is required' + $StatusCode = [HttpStatusCode]::BadRequest + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ + Results = @(@{ + resultText = $Message + state = 'error' + }) + } + }) + return + } + + $Preset = [PSCustomObject]@{ + PartitionKey = 'Preset' + RowKey = [string]$Id + id = [string]$Id + name = [string]$Request.Body.preset.name + Owner = [string]$Username + IsShared = $Request.Body.preset.IsShared + params = [string](ConvertTo-Json -InputObject $params -Compress) + } + + try { + $Success = $false + $Table = Get-CIPPTable -TableName 'GraphPresets' + $Message = '{0} preset succeeded' -f $Action + if ($Action -eq 'Copy') { + Add-CIPPAzDataTableEntity @Table -Entity $Preset -Force + $Success = $true + } else { + $Entity = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$Id'" + if ($Entity.Owner -eq $Username ) { + if ($Action -eq 'Delete') { + Remove-AzDataTableEntity -Force @Table -Entity $Entity + } elseif ($Action -eq 'Save') { + Add-CIPPAzDataTableEntity @Table -Entity $Preset -Force + } + $Success = $true + } else { + Write-Host "username in table: $($Entity.Owner). Username in request: $Username" + $Message = 'Error: You can only modify your own presets.' + $Success = $false + } + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $Success = $false + $Message = $_.Exception.Message + $StatusCode = [HttpStatusCode]::BadRequest + } + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ + Results = @(@{ + resultText = $Message + state = if ($Success) { 'success' } else { 'error' } + }) + } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 new file mode 100644 index 000000000000..ffe14702ce63 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 @@ -0,0 +1,210 @@ +function Invoke-ExecCommunityRepo { + <# + .SYNOPSIS + Make changes to a community repository + .DESCRIPTION + This function makes changes to a community repository in table storage + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Action = $Request.Body.Action + $Id = $Request.Body.Id + if ($Request.Body.Id) { + $Filter = "PartitionKey eq 'CommunityRepos' and RowKey eq '$($Id)'" + } elseif ($Request.Body.FullName) { + $Filter = "PartitionKey eq 'CommunityRepos' and FullName eq '$($Request.Body.FullName)'" + } else { + $Results = @( + @{ + resultText = 'Id or FullName required' + state = 'error' + } + ) + $Body = @{ + Results = $Results + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + return + } + + $Table = Get-CIPPTable -TableName CommunityRepos + $RepoEntity = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + switch ($Action) { + 'Add' { + $Repo = Invoke-GitHubApiRequest -Path "repositories/$($Id)" + $RepoEntity = @{ + PartitionKey = 'CommunityRepos' + RowKey = [string]$Repo.id + Name = [string]$Repo.name + Description = [string]$Repo.description + URL = [string]$Repo.html_url + FullName = [string]$Repo.full_name + Owner = [string]$Repo.owner.login + Visibility = [string]$Repo.visibility + WriteAccess = [bool]$Repo.permissions.push + DefaultBranch = [string]$Repo.default_branch + Permissions = [string]($Repo.permissions | ConvertTo-Json -Compress) + } + + Add-CIPPAzDataTableEntity @Table -Entity $RepoEntity -Force | Out-Null + + $Results = @{ + resultText = "Community repository '$($Repo.name)' added" + state = 'success' + } + } + 'Update' { + if ($RepoEntity) { + $Repo = Invoke-GitHubApiRequest -Path "repositories/$($Id)" + $Update = @{ + PartitionKey = 'CommunityRepos' + RowKey = [string]$Repo.id + Name = [string]$Repo.name + Description = [string]$Repo.description + URL = [string]$Repo.html_url + FullName = [string]$Repo.full_name + Owner = [string]$Repo.owner.login + Visibility = [string]$Repo.visibility + WriteAccess = [bool]$Repo.permissions.push + DefaultBranch = [string]$Repo.default_branch + Permissions = [string]($Repo.permissions | ConvertTo-Json -Compress) + ETag = $RepoEntity.ETag + } + + Update-CIPPAzDataTableEntity @Table -Entity $Update + + $Results = @{ + resultText = "Repository $($Repo.name) updated" + state = 'success' + } + } else { + $Results = @{ + resultText = "Repository $($Repo.name) not found" + state = 'error' + } + } + } + 'Delete' { + if ($RepoEntity) { + $Delete = $RepoEntity | Select-Object PartitionKey, RowKey, ETag + Remove-AzDataTableEntity @Table -Entity $Delete + } + $Results = @{ + resultText = "Repository $($RepoEntity.Name) deleted" + state = 'success' + } + } + 'UploadTemplate' { + $GUID = $Request.Body.GUID + $TemplateTable = Get-CIPPTable -TableName templates + $TemplateEntity = Get-CIPPAzDataTableEntity @TemplateTable -Filter "RowKey eq '$($GUID)'" | Select-Object -ExcludeProperty ETag, Timestamp + $Branch = $RepoEntity.UploadBranch ?? $RepoEntity.DefaultBranch + if ($TemplateEntity) { + $Template = $TemplateEntity.JSON | ConvertFrom-Json + $DisplayName = $Template.Displayname ?? $Template.templateName ?? $Template.name + if ($Template.tenantFilter) { + $Template.tenantFilter = @(@{ label = 'Template Tenant'; value = 'Template Tenant' }) + } + if ($Template.excludedTenants) { + $Template.excludedTenants = @() + } + $TemplateEntity.JSON = $Template | ConvertTo-Json -Compress -Depth 100 + + $Basename = $DisplayName -replace '\s', '_' -replace '[^\w\d_]', '' + $Path = '{0}/{1}.json' -f $TemplateEntity.PartitionKey, $Basename + $Results = Push-GitHubContent -FullName $Request.Body.FullName -Path $Path -Content ($TemplateEntity | ConvertTo-Json -Compress) -Message $Request.Body.Message -Branch $Branch + + $Results = @{ + resultText = "Template '$($DisplayName)' uploaded" + state = 'success' + } + } else { + $Results = @{ + resultText = "Template '$($GUID)' not found" + state = 'error' + } + } + } + 'SetBranch' { + if (!$RepoEntity) { + $Results = @{ + resultText = "Repository $($Id) not found" + state = 'error' + } + } else { + $Branch = $Request.Body.Branch + if (!$RepoEntity.UploadBranch) { + $RepoEntity | Add-Member -NotePropertyName 'UploadBranch' -NotePropertyValue $Branch + } else { + $RepoEntity.UploadBranch = $Branch + } + $null = Add-CIPPAzDataTableEntity @Table -Entity $RepoEntity -Force + + $Results = @{ + resultText = "Branch set to $Branch" + state = 'success' + } + } + } + 'ImportTemplate' { + $Path = $Request.Body.Path + $FullName = $Request.Body.FullName + $Branch = $Request.Body.Branch + try { + $Template = Get-GitHubFileContents -FullName $FullName -Path $Path -Branch $Branch + + $Content = $Template.content | ConvertFrom-Json + if ($Content.'@odata.type' -like '*conditionalAccessPolicy*') { + $Files = (Get-GitHubFileTree -FullName $FullName -Branch $Branch).tree | Where-Object { $_.path -match '.json$' -and $_.path -notmatch 'NativeImport' } | Select-Object *, @{n = 'html_url'; e = { "https://github.com/$($SplatParams.FullName)/tree/$($SplatParams.Branch)/$($_.path)" } }, @{n = 'name'; e = { ($_.path -split '/')[ -1 ] -replace '\.json$', '' } } + + $MigrationTable = $Files | Where-Object { $_.name -eq 'MigrationTable' } | Select-Object -Last 1 + if ($MigrationTable) { + Write-Host "Found a migration table, getting contents for $FullName" + $MigrationTable = (Get-GitHubFileContents -FullName $FullName -Branch $Branch -Path $MigrationTable.path).content | ConvertFrom-Json + } + + $NamedLocations = $Files | Where-Object { $_.name -match 'ALLOWED COUNTRIES' } + $LocationData = foreach ($Location in $NamedLocations) { + (Get-GitHubFileContents -FullName $FullName -Branch $Branch -Path $Location.path).content | ConvertFrom-Json + } + } + Import-CommunityTemplate -Template $Content -SHA $Template.sha -MigrationTable $MigrationTable -LocationData $LocationData + + $Results = @{ + resultText = 'Template imported' + state = 'success' + } + } catch { + $Results = @{ + resultText = "Error importing template: $($_.Exception.Message)" + state = 'error' + } + } + } + default { + $Results = @{ + resultText = "Action $Action not supported" + state = 'error' + } + } + } + + $Body = @{ + Results = @($Results) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecGitHubAction.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecGitHubAction.ps1 new file mode 100644 index 000000000000..f03b641719dd --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecGitHubAction.ps1 @@ -0,0 +1,117 @@ +function Invoke-ExecGitHubAction { + <# + .SYNOPSIS + Invoke GitHub Action + .DESCRIPTION + Call GitHub API + .ROLE + CIPP.Extension.ReadWrite + .FUNCTIONALITY + Entrypoint,AnyTenant + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Action = $Request.Query.Action ?? $Request.Body.Action + + if ($Request.Query.Action) { + $Parameters = $Request.Query + } else { + $Parameters = $Request.Body + } + + $SplatParams = $Parameters | Select-Object -ExcludeProperty Action, TenantFilter | ConvertTo-Json | ConvertFrom-Json -AsHashtable + + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ErrorAction SilentlyContinue).GitHub + + if (!$Configuration.Enabled) { + $Response = Invoke-RestMethod -Uri 'https://cippy.azurewebsites.net/api/ExecGitHubAction' -Method POST -Body ($Parameters | ConvertTo-Json -Depth 10) -ContentType 'application/json' + $Results = $Response.Results + $Metadata = $Response.Metadata + } else { + switch ($Action) { + 'Search' { + $SearchResults = Search-GitHub @SplatParams + $Results = @($SearchResults.items) + $Metadata = $SearchResults | Select-Object -Property total_count, incomplete_results + } + 'GetFileContents' { + $Results = Get-GitHubFileContents @SplatParams + } + 'GetBranches' { + $Results = @(Get-GitHubBranch @SplatParams) + } + 'GetOrgs' { + try { + $Orgs = Invoke-GitHubApiRequest -Path 'user/orgs' + $Results = @($Orgs) + } catch { + $Results = @{ + resultText = 'You may not have permission to view organizations, check your PAT scopes and try again - {0}' -f $_.Exception.Message + state = 'error' + } + } + } + 'GetFileTree' { + $Files = (Get-GitHubFileTree @SplatParams).tree | Where-Object { $_.path -match '.json$' } | Select-Object *, @{n = 'html_url'; e = { "https://github.com/$($SplatParams.FullName)/tree/$($SplatParams.Branch)/$($_.path)" } } + $Results = @($Files) + } + 'ImportTemplate' { + $Results = Import-CommunityTemplate @SplatParams + } + 'CreateRepo' { + try { + Write-Information "Creating repository '$($SplatParams.Name)'" + $Repo = New-GitHubRepo @SplatParams + if ($Repo.id) { + $Table = Get-CIPPTable -TableName CommunityRepos + $RepoEntity = @{ + PartitionKey = 'CommunityRepos' + RowKey = [string]$Repo.id + Name = [string]($Repo.name -replace ' ', '-') + Description = [string]$Repo.description + URL = [string]$Repo.html_url + FullName = [string]$Repo.full_name + Owner = [string]$Repo.owner.login + Visibility = [string]$Repo.visibility + WriteAccess = [bool]$Repo.permissions.push + DefaultBranch = [string]$Repo.default_branch + Permissions = [string]($Repo.permissions | ConvertTo-Json -Compress) + } + Add-CIPPAzDataTableEntity @Table -Entity $RepoEntity -Force | Out-Null + + $Results = @{ + resultText = "Repository '$($Repo.name)' created" + state = 'success' + } + } + } catch { + Write-Information (Get-CippException -Exception $_ | ConvertTo-Json) + $Results = @{ + resultText = 'You may not have permission to create repositories, check your PAT scopes and try again - {0}' -f $_.Exception.Message + state = 'error' + } + } + } + default { + $Results = @{ + resultText = "Unknown action '$Action'" + state = 'error' + } + } + } + } + + $Body = @{ + Results = $Results + } + if ($Metadata) { + $Body.Metadata = $Metadata + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 new file mode 100644 index 000000000000..79256990242f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListCommunityRepos.ps1 @@ -0,0 +1,80 @@ +function Invoke-ListCommunityRepos { + <# + .SYNOPSIS + List community repositories in Table Storage + .DESCRIPTION + This function lists community repositories in Table Storage + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CIPPTable -TableName CommunityRepos + + if ($Request.Query.WriteAccess -eq 'true') { + $Filter = "PartitionKey eq 'CommunityRepos' and WriteAccess eq true" + } else { + $Filter = '' + } + + $Repos = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (!$Request.Query.WriteAccess) { + $CIPPRoot = (Get-Item (Get-Module -Name CIPPCore).ModuleBase).Parent.Parent.FullName + $CommunityRepos = Join-Path -Path $CIPPRoot -ChildPath 'CommunityRepos.json' + $DefaultCommunityRepos = Get-Content -Path $CommunityRepos -Raw | ConvertFrom-Json + + $DefaultsMissing = $false + foreach ($Repo in $DefaultCommunityRepos) { + if ($Repos.Url -notcontains $Repo.Url) { + $Entity = [PSCustomObject]@{ + PartitionKey = 'CommunityRepos' + RowKey = $Repo.Id + Name = $Repo.Name + Description = $Repo.Description + URL = $Repo.URL + FullName = $Repo.FullName + Owner = $Repo.Owner + Visibility = $Repo.Visibility + WriteAccess = $Repo.WriteAccess + DefaultBranch = $Repo.DefaultBranch + UploadBranch = $Repo.DefaultBranch + Permissions = [string]($Repo.RepoPermissions | ConvertTo-Json -ErrorAction SilentlyContinue -Compress) + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity + $DefaultsMissing = $true + } + } + if ($DefaultsMissing) { + $Repos = Get-CIPPAzDataTableEntity @Table + } + } + + $Repos = $Repos | ForEach-Object { + [pscustomobject]@{ + Id = $_.RowKey + Name = $_.Name + Description = $_.Description + URL = $_.URL + FullName = $_.FullName + Owner = $_.Owner + Visibility = $_.Visibility + WriteAccess = $_.WriteAccess + DefaultBranch = $_.DefaultBranch + UploadBranch = $_.UploadBranch ?? $_.DefaultBranch + RepoPermissions = ($_.Permissions | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @{} + } + } + + $Body = @{ + Results = @($Repos | Sort-Object -Property FullName) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 new file mode 100644 index 000000000000..8769763e6435 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 @@ -0,0 +1,91 @@ +function Invoke-ListGitHubReleaseNotes { + <# + .SYNOPSIS + Retrieves release notes for a GitHub repository. + .DESCRIPTION + Returns release metadata for the provided repository and semantic version. Hotfix + versions (e.g. v8.5.2) map back to the base release tag (v8.5.0). + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Owner = $Request.Query.Owner + $Repository = $Request.Query.Repository + + if (-not $Owner) { + throw 'Owner parameter is required to retrieve release notes.' + } + + if (-not $Repository) { + throw 'Repository parameter is required to retrieve release notes.' + } + + $ReleasePath = "repos/$Owner/$Repository/releases?per_page=50" + + $Table = Get-CIPPTable -TableName cacheGitHubReleaseNotes + $PartitionKey = 'GitHubReleaseNotes' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter + + try { + $Latest = $false + if ($Rows) { + $Releases = ConvertFrom-Json -InputObject $Rows.GitHubReleases -Depth 10 + $CurrentVersion = [semver]$global:CippVersion + $CurrentMajorMinor = "$($CurrentVersion.Major).$($CurrentVersion.Minor)" + + foreach ($Release in $Releases) { + $Version = $Release.releaseTag -replace 'v', '' + try { + $ReleaseVersion = [semver]$Version + $ReleaseMajorMinor = "$($ReleaseVersion.Major).$($ReleaseVersion.Minor)" + + # Check if we have cached notes for the current major.minor version series + if ($ReleaseMajorMinor -eq $CurrentMajorMinor) { + $Latest = $true + break + } + } catch { + # Skip invalid semver versions + continue + } + } + } + + if (-not $Latest) { + $Releases = Invoke-GitHubApiRequest -Path $ReleasePath + $Releases = $Releases | ForEach-Object { + [ordered]@{ + name = $_.name + body = $_.body + releaseTag = $_.tag_name + htmlUrl = $_.html_url + publishedAt = $_.published_at + draft = [bool]$_.draft + prerelease = [bool]$_.prerelease + commitish = $_.target_commitish + } + } + $Results = @{ + GitHubReleases = [string](ConvertTo-Json -Depth 10 -InputObject $Releases) + RowKey = [string]'GitHubReleaseNotes' + PartitionKey = $PartitionKey + } + Add-CIPPAzDataTableEntity @Table -Entity $Results -Force | Out-Null + } + + } catch { + $ErrorMessage = "Failed to retrieve release information: $($_)" + throw $ErrorMessage + } + + if (-not $Releases) { + return $IsListRequest ? @() : (throw "No releases returned for $Owner/$Repository") + } + + return $Releases +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 new file mode 100644 index 000000000000..7de5b671d4f3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 @@ -0,0 +1,20 @@ +function Invoke-ExecBreachSearch { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.body.tenantFilter + + #Move to background job + New-BreachTenantSearch -TenantFilter $TenantFilter + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = "Executing Search for $TenantFilter. This may take up to 24 hours to complete." } + }) + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 new file mode 100644 index 000000000000..6b7400e98ca4 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 @@ -0,0 +1,45 @@ +function Invoke-ExecCSPLicense { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $Action = $Request.Body.Action + $SKU = $Request.Body.SKU.value ?? $Request.Body.SKU + + try { + if ($Action -eq 'Add') { + $null = Set-SherwebSubscription -Headers $Headers -tenantFilter $TenantFilter -SKU $SKU -add $Request.Body.Add + } + + if ($Action -eq 'Remove') { + $null = Set-SherwebSubscription -Headers $Headers -tenantFilter $TenantFilter -SKU $SKU -remove $Request.Body.Remove + } + + if ($Action -eq 'NewSub') { + $null = Set-SherwebSubscription -Headers $Headers -tenantFilter $TenantFilter -SKU $SKU -Quantity $Request.Body.Quantity + } + if ($Action -eq 'Cancel') { + $null = Remove-SherwebSubscription -Headers $Headers -tenantFilter $TenantFilter -SubscriptionIds $Request.Body.SubscriptionIds + } + $Result = 'License change executed successfully.' + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = "Failed to execute license change. Error: $_" + $StatusCode = [HttpStatusCode]::InternalServerError + } + # If $GraphRequest is a GUID, the subscription was edited successfully, and return that it's done. + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Result + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecExtensionNinjaOneQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecExtensionNinjaOneQueue.ps1 new file mode 100644 index 000000000000..b9b5724e3310 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecExtensionNinjaOneQueue.ps1 @@ -0,0 +1,25 @@ +function Invoke-ExecExtensionNinjaOneQueue { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Extension.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + switch ($QueueItem.NinjaAction) { + 'StartAutoMapping' { Invoke-NinjaOneOrgMapping } + 'AutoMapTenant' { Invoke-NinjaOneOrgMappingTenant -QueueItem $QueueItem } + 'SyncTenant' { Invoke-NinjaOneTenantSync -QueueItem $QueueItem } + } + + $Body = [PSCustomObject]@{ + StatusCode = [HttpStatusCode]::OK + Body = 'Success' + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 new file mode 100644 index 000000000000..e3c8a7f62611 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 @@ -0,0 +1,41 @@ +Function Invoke-ExecListAppId { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + Get-CIPPAuthentication + $ResponseURL = "$(($Request.headers.'x-ms-original-url').replace('/api/ExecListAppId','/api/ExecSAMSetup'))" + #make sure we get the very latest version of the appid from kv: + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + $env:ApplicationID = $Secret.ApplicationID + $env:TenantID = $Secret.TenantID + } else { + $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + try { + $env:ApplicationID = (Get-CippKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'ApplicationID') + $env:TenantID = (Get-CippKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'TenantID') + Write-Information "Retrieving secrets from KeyVault: $keyvaultname. The AppId is $($env:ApplicationID) and the TenantId is $($env:TenantID)" + } catch { + Write-Information "Retrieving secrets from KeyVault: $keyvaultname. The AppId is $($env:ApplicationID) and the TenantId is $($env:TenantID)" + Write-LogMessage -message "Failed to retrieve secrets from KeyVault: $keyvaultname" -LogData (Get-CippException -Exception $_) -Sev 'Error' + $env:ApplicationID = (Get-CippException -Exception $_) + $env:TenantID = (Get-CippException -Exception $_) + } + } + $Results = @{ + applicationId = $env:ApplicationID + tenantId = $env:TenantID + refreshUrl = "https://login.microsoftonline.com/$env:TenantID/oauth2/v2.0/authorize?client_id=$env:ApplicationID&response_type=code&redirect_uri=$ResponseURL&response_mode=query&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default+offline_access+profile+openid&state=1&prompt=select_account" + } + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Results + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSchedulerBillingRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSchedulerBillingRun.ps1 new file mode 100644 index 000000000000..6e155d1b88d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSchedulerBillingRun.ps1 @@ -0,0 +1,31 @@ +Function Invoke-ExecSchedulerBillingRun { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Scheduler.Billing.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + try { + Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message 'Starting billing processing.' -sev Info + + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 + foreach ($ConfigItem in $Configuration.PSObject.Properties.Name) { + switch ($ConfigItem) { + 'Gradient' { + If ($Configuration.Gradient.enabled -and $Configuration.Gradient.BillingEnabled) { + New-GradientServiceSyncRun + } + } + } + } + } catch { + Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message "Could not start billing processing $($_.Exception.Message)" -sev Error -headers $Headers + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSendOrgMessage.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSendOrgMessage.ps1 new file mode 100644 index 000000000000..65336dcd7486 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecSendOrgMessage.ps1 @@ -0,0 +1,113 @@ +Function Invoke-ExecSendOrgMessage { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + $Device = $request.query.ID + try { + + $type = switch ($request.Query.type) { + 'taskbar' { + '844ec9d0-dd31-459c-a1e7-21fb1b39d5da' + $placementDetails = @(@{ + placement = 'default' + variants = @(@{ + variantId = 'b3fce1ee-9658-4267-b174-23d4a1be148f' + localizedTexts = @(@{ + locale = 'invariant' + text = @{ + 'clickUrl' = $Request.query.URL + } + }) + }) + }) + } + 'notification' { + '1ff7c7e7-128c-4e18-a926-bdac4e906ea1' + $placementDetails = @(@{ + placement = 'default' + variants = @(@{ + variantId = '7a1419c9-9263-4202-9225-35b326b92792' + localizedTexts = @(@{ + locale = 'invariant' + text = @{ + 'clickUrl' = $Request.query.URL + } + }) + }) + }) + } + 'getStarted' { + $placementDetails = @(@{ + placement = 'card0' + variants = @(@{ + variantId = 'ed0d0fa2-df72-42f4-9866-66cf3de1fafb' + localizedTexts = @(@{ + locale = 'invariant' + text = @{ + 'message' = 'My Message Value' + 'clickUrl' = 'https://example.com/clickUrl/' + 'title' = 'This message' + 'buttonText' = 'PlzClick' + } + }) + }) + } + @{ + placement = 'card1' + variants = @(@{ + variantId = 'ed0d0fa2-df72-42f4-9866-66cf3de1fafb' + localizedTexts = @(@{ + locale = 'invariant' + text = @{ + 'message' = 'My Message Value' + 'clickUrl' = 'https://example.com/clickUrl/' + 'title' = 'This message' + 'buttonText' = 'PlzClick' + } + }) + }) + }) + } + + } + $freq = $request.query.freq + $object = [pscustomobject]@{ + startDateTime = (Get-Date).ToString('O') + endDateTime = (Get-Date).AddYears('1').ToString('O') + frequency = $freq + targeting = @{ + targetingType = 'aadGroup' + includeIds = @($Device) + } + content = @{ + 'guidedContentId' = "$Type" + placementDetails = $placementDetails + logoInfo = @{ + contentType = 'png' + logoCdnUrl = 'https://hulpnu.nl/tools/Red.jpg' + } + } + } + $tmpbody = ConvertTo-Json -Depth 15 -Compress -InputObject $object + Write-Host $tmpbody + + $GraphRequest = New-GraphPOSTRequest -noauthcheck $true -type 'POST' -uri 'https://graph.microsoft.com/beta/deviceManagement/organizationalMessageDetails' -tenantid $tenantfilter -body $tmpbody + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 new file mode 100644 index 000000000000..a984cada9ddc --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 @@ -0,0 +1,48 @@ +function Invoke-ExecUniversalSearch { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + + try { + $tenantfilter = Get-Tenants + $payload = [PSCustomObject]@{ + returnsPartialResults = $false + displayName = 'getUsers' + target = [PSCustomObject]@{ + allTenants = $true + } + operationDefinition = [PSCustomObject]@{ + values = @( + "@sys.normalize([ConsistencyLevel: eventual GET /v1.0/users?`$top=5&`$search=`"userPrincipalName:$($Request.query.name)`" OR `"displayName:$($Request.query.name)`"])" + ) + } + aggregationDefinition = [PSCustomObject]@{ + values = @( + '@sys.append([/result],50)' + ) + } + } | ConvertTo-Json -Depth 10 + $GraphRequest = New-GraphPOSTRequest -noauthcheck $true -type 'POST' -uri 'https://graph.microsoft.com/beta/tenantRelationships/managedTenants/managedTenantOperations' -tenantid $env:TenantID -body $payload -IgnoreErrors $true + if (!$GraphRequest.result.results) { + $GraphRequest = ($GraphRequest.error.message | ConvertFrom-Json).result.results | ConvertFrom-Json | Where-Object { $_.'_TenantId' -in $tenantfilter.customerId } + } else { + $GraphRequest = $GraphRequest.result.Results | ConvertFrom-Json -ErrorAction SilentlyContinue | Where-Object { $_.'_TenantId' -in $tenantfilter.customerId } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = "Could not connect to Azure Lighthouse API: $($ErrorMessage)" + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUserSettings.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUserSettings.ps1 new file mode 100644 index 000000000000..3bea3e902cda --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUserSettings.ps1 @@ -0,0 +1,31 @@ +function Invoke-ExecUserSettings { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.ReadWrite + #> + param($Request, $TriggerMetadata) + try { + $object = $Request.Body.currentSettings | Select-Object * -ExcludeProperty CurrentTenant, pageSizes, sidebarShow, sidebarUnfoldable, _persist | ConvertTo-Json -Compress -Depth 10 + $User = $Request.Body.user + $Table = Get-CippTable -tablename 'UserSettings' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = "$User" + PartitionKey = 'UserSettings' + } + $StatusCode = [HttpStatusCode]::OK + $Results = [pscustomobject]@{'Results' = 'Successfully added user settings' } + } catch { + $ErrorMsg = Get-NormalizedError -message $($_.Exception.Message) + $Results = "Function Error: $ErrorMsg" + $StatusCode = [HttpStatusCode]::BadRequest + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAllTenantDeviceCompliance.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAllTenantDeviceCompliance.ps1 new file mode 100644 index 000000000000..9a6a1ec56e99 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAllTenantDeviceCompliance.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ListAllTenantDeviceCompliance { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.DeviceCompliance.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + if ($TenantFilter -eq 'AllTenants') { + $GraphRequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/tenantRelationships/managedTenants/managedDeviceCompliances' + $StatusCode = [HttpStatusCode]::OK + } else { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/managedDeviceCompliances?`$top=999&`$filter=organizationId eq '$TenantFilter'" + $StatusCode = [HttpStatusCode]::OK + } + + if ($GraphRequest.value.count -lt 1) { + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = 'No data found - This client might not be onboarded in Lighthouse' + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = "Could not connect to Azure Lighthouse API: $($ErrorMessage)" + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAppStatus.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAppStatus.ps1 new file mode 100644 index 000000000000..1a71e1e78851 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListAppStatus.ps1 @@ -0,0 +1,31 @@ +Function Invoke-ListAppStatus { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Device.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $appFilter = $Request.Query.AppFilter + Write-Host "Using $appFilter" + $body = @" +{"select":["DeviceName","UserPrincipalName","Platform","AppVersion","InstallState","InstallStateDetail","LastModifiedDateTime","DeviceId","ErrorCode","UserName","UserId","ApplicationId","AssignmentFilterIdsList","AppInstallState","AppInstallStateDetails","HexErrorCode"],"skip":0,"top":999,"filter":"(ApplicationId eq '$Appfilter')","orderBy":[]} +"@ + try { + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/reports/getDeviceInstallStatusReport' -tenantid $TenantFilter -body $body + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesAccount.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesAccount.ps1 new file mode 100644 index 000000000000..d4deeb37f6f0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesAccount.ps1 @@ -0,0 +1,24 @@ +Function Invoke-ListBreachesAccount { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $Account = $Request.Query.account + + if ($Account -like '*@*') { + $Results = Get-HIBPRequest "breachedaccount/$($Account)?truncateResponse=false" + } else { + $Results = Get-BreachInfo -Domain $Account + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($results) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 new file mode 100644 index 000000000000..76fcb3767415 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListBreachesTenant.ps1 @@ -0,0 +1,33 @@ +function Invoke-ListBreachesTenant { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $TenantFilter = $Request.Query.tenantFilter + + $Table = Get-CIPPTable -TableName UserBreaches + if ($TenantFilter -ne 'AllTenants') { + $filter = "PartitionKey eq '$TenantFilter'" + } else { + $filter = $null + } + try { + $Tenants = Get-Tenants -IncludeErrors + $Rows = Get-CIPPAzDataTableEntity @Table -Filter $filter | Where-Object { $Tenants.defaultDomainName -contains $_.PartitionKey } + $usersResults = $Rows.breaches | ConvertFrom-Json -ErrorAction SilentlyContinue + } catch { + $usersResults = $null + } + if ($null -eq $usersResults) { + $usersResults = @() + } + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($usersResults) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPLicenses.ps1 new file mode 100644 index 000000000000..dea7d823c1c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPLicenses.ps1 @@ -0,0 +1,26 @@ +function Invoke-ListCSPLicenses { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $Result = Get-SherwebCurrentSubscription -TenantFilter $TenantFilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $Result = 'Unable to retrieve CSP licenses, ensure that you have enabled the Sherweb integration and mapped the tenant in the integration settings.' + $StatusCode = [HttpStatusCode]::BadRequest + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Result) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPsku.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPsku.ps1 new file mode 100644 index 000000000000..094f651314e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCSPsku.ps1 @@ -0,0 +1,34 @@ +function Invoke-ListCSPsku { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $CurrentSkuOnly = $Request.Query.currentSkuOnly + + try { + if ($CurrentSkuOnly) { + $GraphRequest = Get-SherwebCurrentSubscription -TenantFilter $TenantFilter + } else { + $GraphRequest = Get-SherwebCatalog -TenantFilter $TenantFilter + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $GraphRequest = [PSCustomObject]@{ + name = @(@{value = 'Error getting catalog' }) + sku = $_.Exception.Message + } + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 new file mode 100644 index 000000000000..95533bce6e7c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListCheckExtAlerts.ps1 @@ -0,0 +1,35 @@ +function Invoke-ListCheckExtAlerts { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $TenantFilter = $Request.Query.tenantFilter + $Table = Get-CIPPTable -tablename CheckExtensionAlerts + + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Filter = "PartitionKey eq 'CheckAlert' and tenantFilter eq '$TenantFilter'" + } else { + $Filter = "PartitionKey eq 'CheckAlert'" + } + + try { + $Tenants = Get-Tenants -IncludeErrors + $Alerts = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $Tenants.defaultDomainName -contains $_.tenantFilter }) ?? @() + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to retrieve check extension alerts: $($_.Exception.Message)" -Sev 'Error' + $Alerts = @() + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Alerts | Sort-Object -Property Timestamp -Descending) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListDeviceDetails.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListDeviceDetails.ps1 new file mode 100644 index 000000000000..cc7a2a3d7c01 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListDeviceDetails.ps1 @@ -0,0 +1,93 @@ +Function Invoke-ListDeviceDetails { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Device.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # XXX Seems to be an unused endpoint? -Bobby + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $DeviceID = $Request.Query.DeviceID + $DeviceName = $Request.Query.DeviceName + $DeviceSerial = $Request.Query.DeviceSerial + + try { + if ($DeviceID) { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$DeviceID" -Tenantid $TenantFilter + } elseif ($DeviceSerial -or $DeviceName) { + $Found = $False + if ($DeviceSerial -and $DeviceName) { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices?`$filter=serialnumber eq '$DeviceSerial' and deviceName eq '$DeviceName'" -Tenantid $TenantFilter + + if (($GraphRequest | Measure-Object).count -eq 1 -and $GraphRequest.'@odata.count' -ne 0 ) { + $Found = $True + } + } + if ($DeviceSerial -and $Found -eq $False) { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices?`$filter=serialnumber eq '$DeviceSerial'" -Tenantid $TenantFilter + if (($GraphRequest | Measure-Object).count -eq 1 -and $GraphRequest.'@odata.count' -ne 0 ) { + $Found = $True + } + } + if ($DeviceName -and $Found -eq $False) { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices?`$filter=deviceName eq '$DeviceName'" -Tenantid $TenantFilter + if (($GraphRequest | Measure-Object).count -eq 1 -and $GraphRequest.'@odata.count' -ne 0 ) { + $Found = $True + } + } + + } + + if (!(($GraphRequest | Measure-Object).count -eq 1 -and $GraphRequest.'@odata.count' -ne 0 )) { + $GraphRequest = $Null + } + + if ($GraphRequest) { + [System.Collections.Generic.List[PSCustomObject]]$BulkRequests = @( + @{ + id = 'DeviceGroups' + method = 'GET' + url = "/devices(deviceID='$($GraphRequest.azureADDeviceId)')/memberOf" + }, + @{ + id = 'CompliancePolicies' + method = 'GET' + url = "/deviceManagement/managedDevices('$($GraphRequest.id)')/deviceCompliancePolicyStates" + }, + @{ + id = 'DetectedApps' + method = 'GET' + url = "deviceManagement/managedDevices('$($GraphRequest.id)')?expand=detectedApps" + } + ) + + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + + $DeviceGroups = Get-GraphBulkResultByID -Results $BulkResults -ID 'DeviceGroups' -Value + $CompliancePolicies = Get-GraphBulkResultByID -Results $BulkResults -ID 'CompliancePolicies' -Value + $DetectedApps = Get-GraphBulkResultByID -Results $BulkResults -ID 'DetectedApps' + + $Null = $GraphRequest | Add-Member -NotePropertyName 'DetectedApps' -NotePropertyValue ($DetectedApps.DetectedApps | Select-Object id, displayName, version) + $Null = $GraphRequest | Add-Member -NotePropertyName 'CompliancePolicies' -NotePropertyValue ($CompliancePolicies | Select-Object id, displayName, UserPrincipalName, state) + $Null = $GraphRequest | Add-Member -NotePropertyName 'DeviceGroups' -NotePropertyValue ($DeviceGroups | Select-Object id, displayName, description) + + + } + + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequest + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 new file mode 100644 index 000000000000..45faae5f8224 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExtensionsConfig.ps1 @@ -0,0 +1,40 @@ +function Invoke-ListExtensionsConfig { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Extension.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable -TableName Extensionsconfig + try { + $Config = (Get-CIPPAzDataTableEntity @Table).config + if (Test-Json -Json $Config) { + $Body = $Config | ConvertFrom-Json -Depth 10 -ErrorAction Stop + if ($Body.HaloPSA.TicketType -and !$Body.HaloPSA.TicketType.value) { + # translate ticket type to autocomplete format + Write-Information "Ticket Type: $($Body.HaloPSA.TicketType)" + $Types = Get-HaloTicketType + $Type = $Types | Where-Object { $_.id -eq $Body.HaloPSA.TicketType } + #Write-Information ($Type | ConvertTo-Json) + if ($Type) { + $Body.HaloPSA.TicketType = @{ + label = $Type.name + value = $Type.id + } + } + } + } else { + $Body = @{} + } + } catch { + Write-Information (Get-CippException -Exception $_ | ConvertTo-Json) + $Body = @{} + } + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExternalTenantInfo.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExternalTenantInfo.ps1 new file mode 100644 index 000000000000..31844a48a08d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListExternalTenantInfo.ps1 @@ -0,0 +1,42 @@ +function Invoke-ListExternalTenantInfo { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $HttpResponse = [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = 'Default response, you should never see this' + } + + try { + if ($Request.Query.tenant) { + $Tenant = $Request.Query.tenant + + # Normalize to tenantid and determine if tenant exists + $TenantId = (Invoke-RestMethod -Method GET "https://login.windows.net/$Tenant/.well-known/openid-configuration").token_endpoint.Split('/')[3] + + if ($TenantId) { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/findTenantInformationByTenantId(tenantId='$TenantId')" -NoAuthCheck $true -tenantid $env:TenantID + $StatusCode = [HttpStatusCode]::OK + $HttpResponse.Body = [PSCustomObject]@{ + GraphRequest = $GraphRequest + } + } else { + $HttpResponse.StatusCode = [HttpStatusCode]::BadRequest + $HttpResponse.Body = "Tenant $($Tenant) not found" + } + } else { + $HttpResponse.StatusCode = [HttpStatusCode]::BadRequest + $HttpResponse.Body = 'Tenant parameter is required' + } + } catch { + $HttpResponse.StatusCode = [HttpStatusCode]::InternalServerError + $HttpResponse.Body = "Something went wrong while trying to get tenant info for tenant $($Tenant): $($_.Exception.Message)" + } + + return [HttpResponseContext]$HttpResponse +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 new file mode 100644 index 000000000000..da83bee09207 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionParameters.ps1 @@ -0,0 +1,79 @@ +function Invoke-ListFunctionParameters { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $Module = $Request.Query.Module + $Function = $Request.Query.Function + + $CommandQuery = @{} + if ($Module) { + $CommandQuery.Module = $Module + } + if ($Function) { + $CommandQuery.Name = $Function + } + $IgnoreList = 'entryPoint', 'internal' + $CommonParameters = @('Verbose', 'Debug', 'ErrorAction', 'WarningAction', 'InformationAction', 'ErrorVariable', 'WarningVariable', 'InformationVariable', 'OutVariable', 'OutBuffer', 'PipelineVariable', 'TenantFilter', 'APIName', 'Headers', 'ProgressAction', 'WhatIf', 'Confirm', 'Headers', 'NoAuthCheck') + $TemporaryBlacklist = 'Get-CIPPAuthentication', 'Invoke-CippWebhookProcessing', 'Invoke-ListFunctionParameters', 'New-CIPPAPIConfig', 'New-CIPPGraphSubscription' + try { + if ($Module -eq 'ExchangeOnlineManagement') { + $ExoRequest = @{ + AvailableCmdlets = $true + tenantid = $env:TenantID + NoAuthCheck = $true + } + if ($Request.Query.Compliance -eq $true) { + $ExoRequest.Compliance = $true + } + $Functions = New-ExoRequest @ExoRequest + #Write-Host $Functions + } else { + $Functions = Get-Command @CommandQuery | Where-Object { $_.Visibility -eq 'Public' } + } + $Results = foreach ($Function in $Functions) { + if ($Function -in $TemporaryBlacklist) { continue } + $GetHelp = @{ + Name = $Function + } + if ($Module -eq 'ExchangeOnlineManagement') { + $GetHelp.Path = 'ExchangeOnlineHelp' + } + $Help = Get-Help @GetHelp + $ParamsHelp = ($Help | Select-Object -ExpandProperty parameters).parameter | Select-Object name, @{n = 'description'; exp = { $_.description.Text } } + if ($Help.Functionality -in $IgnoreList) { continue } + if ($Help.Functionality -match 'Entrypoint') { continue } + $Parameters = foreach ($Key in $Function.Parameters.Keys) { + if ($CommonParameters -notcontains $Key) { + $Param = $Function.Parameters.$Key + $ParamHelp = $ParamsHelp | Where-Object { $_.name -eq $Key } + [PSCustomObject]@{ + Name = $Key + Type = $Param.ParameterType.FullName + Description = $ParamHelp.description + Required = $Param.Attributes.Mandatory + } + } + } + [PSCustomObject]@{ + Function = $Function.Name + Synopsis = $Help.Synopsis + Parameters = @($Parameters) + } + } + $StatusCode = [HttpStatusCode]::OK + $Results + } catch { + $Results = "Function Error: $($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::BadRequest + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($Results) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionStats.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionStats.ps1 new file mode 100644 index 000000000000..0035fa7e0ef5 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListFunctionStats.ps1 @@ -0,0 +1,90 @@ +function Invoke-ListFunctionStats { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + try { + $TenantFilter = $Request.Query.tenantFilter + $PartitionKey = $Request.Query.FunctionType + $Time = $Request.Query.Time + $Interval = $Request.Query.Interval + + $Timestamp = if (![string]::IsNullOrEmpty($Interval) -and ![string]::IsNullOrEmpty($Time)) { + switch ($Interval) { + 'Days' { + (Get-Date).AddDays(-$Time).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffK') + } + 'Hours' { + (Get-Date).AddHours(-$Time).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffK') + } + 'Minutes' { + (Get-Date).AddMinutes(-$Time).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffK') + } + } + } else { + (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffK') + } + $Table = Get-CIPPTable -tablename 'CippFunctionStats' + + if (!$PartitionKey) { $PartitionKey = 'Durable' } + if (![string]::IsNullOrEmpty($TenantFilter) -and $TenantFilter -ne 'AllTenants') { + $TenantQuery = " and (tenant eq '{0}' or Tenant eq '{0}' or Tenantid eq '{0}' or tenantid eq '{0}')" -f $TenantFilter + } else { + $TenantQuery = '' + } + $Filter = "PartitionKey eq '{0}' and Start ge datetime'{1}'{2}" -f $PartitionKey, $Timestamp, $TenantQuery + + $Entries = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $FunctionList = $Entries | Group-Object -Property FunctionName + $StandardList = $Entries | Where-Object { $_.Standard } | Group-Object -Property Standard + $FunctionStats = foreach ($Function in $FunctionList) { + $Stats = $Function.Group | Measure-Object -Property Duration -AllStats + [PSCustomObject]@{ + 'Name' = $Function.Name + 'ExecutionCount' = $Function.Count + 'TotalSeconds' = $Stats.Sum + 'MaxSeconds' = $Stats.Maximum + 'AvgSeconds' = $Stats.Average + } + } + $StandardStats = foreach ($Standard in $StandardList) { + $Stats = $Standard.Group | Measure-Object -Property Duration -AllStats + [PSCustomObject]@{ + 'Name' = $Standard.Name + 'ExecutionCount' = $Standard.Count + 'TotalSeconds' = $Stats.Sum + 'MaxSeconds' = $Stats.Maximum + 'AvgSeconds' = $Stats.Average + } + } + $StatusCode = [HttpStatusCode]::OK + $Body = @{ + Results = @{ + Functions = @($FunctionStats) + Standards = @($StandardStats) + } + Metadata = @{ + Filter = $Filter + } + } + } catch { + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ + Results = @() + Metadata = @{ + Filter = $Filter + Exception = $_.Exception.Message + } + } + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGenericTestFunction.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGenericTestFunction.ps1 new file mode 100644 index 000000000000..e3c94cde337f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGenericTestFunction.ps1 @@ -0,0 +1,20 @@ +function Invoke-ListGenericTestFunction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + $graphRequest = ($Headers.'x-ms-original-url').split('/api') | Select-Object -First 1 + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($graphRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGraphExplorerPresets.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGraphExplorerPresets.ps1 new file mode 100644 index 000000000000..1900839d6c15 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListGraphExplorerPresets.ps1 @@ -0,0 +1,47 @@ +function Invoke-ListGraphExplorerPresets { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Headers = $Request.Headers + + + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + + try { + $Table = Get-CIPPTable -TableName 'GraphPresets' + $Presets = Get-CIPPAzDataTableEntity @Table | Where-Object { $Username -eq $_.Owner -or $_.IsShared -eq $true } | Sort-Object -Property name + $Results = foreach ($Preset in $Presets) { + [PSCustomObject]@{ + id = $Preset.Id + name = $Preset.name + IsShared = $Preset.IsShared + IsMyPreset = $Preset.Owner -eq $Username + Owner = $Preset.Owner + params = (ConvertFrom-Json -InputObject $Preset.Params) + } + } + + if ($Request.Query.Endpoint) { + $Endpoint = $Request.Query.Endpoint -replace '^/', '' + $Results = $Results | Where-Object { ($_.params.endpoint -replace '^/', '') -eq $Endpoint } + } + } catch { + Write-Warning "Could not list presets. $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $Results = @() + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = @($Results) + Metadata = @{ + Count = ($Results | Measure-Object).Count + } + } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListHaloClients.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListHaloClients.ps1 new file mode 100644 index 000000000000..12cab4b9461d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListHaloClients.ps1 @@ -0,0 +1,41 @@ +Function Invoke-ListHaloClients { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Extension.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + try { + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).HaloPSA + $Token = Get-HaloToken -configuration $Configuration + $i = 1 + $RawHaloClients = do { + $Result = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/Client?page_no=$i&page_size=999&pageinate=true" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" } + $Result.clients | Select-Object * -ExcludeProperty logo + $i++ + $PageCount = [Math]::Ceiling($Result.record_count / 999) + } while ($i -le $PageCount) + $HaloClients = $RawHaloClients | ForEach-Object { + [PSCustomObject]@{ + label = $_.name + value = $_.id + } + } + Write-Host "Found $($HaloClients.Count) Halo Clients" + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $HaloClients = $ErrorMessage + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($HaloClients) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIPWhitelist.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIPWhitelist.ps1 new file mode 100644 index 000000000000..68731c9707d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIPWhitelist.ps1 @@ -0,0 +1,17 @@ +Function Invoke-ListIPWhitelist { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CippTable -tablename 'trustedIps' + $body = Get-CIPPAzDataTableEntity @Table + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($body) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIntuneIntents.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIntuneIntents.ps1 new file mode 100644 index 000000000000..227ebcdf09b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListIntuneIntents.ps1 @@ -0,0 +1,27 @@ +Function Invoke-ListIntuneIntents { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/Intents?`$expand=settings,categories" -tenantid $TenantFilter + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListKnownIPDb.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListKnownIPDb.ps1 new file mode 100644 index 000000000000..97b8b70c5b21 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListKnownIPDb.ps1 @@ -0,0 +1,23 @@ +Function Invoke-ListKnownIPDb { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + + $Table = Get-CIPPTable -TableName 'knownlocationdbv2' + $Filter = "Tenant eq '$($TenantFilter)'" + $KnownIPDb = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($KnownIPDb) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 new file mode 100644 index 000000000000..dd504b9700e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListLogs.ps1 @@ -0,0 +1,177 @@ +function Invoke-ListLogs { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable + + $TemplatesTable = Get-CIPPTable -tablename 'templates' + $Templates = Get-CIPPAzDataTableEntity @TemplatesTable + + $ReturnedLog = if ($Request.Query.ListLogs) { + Get-AzDataTableEntity @Table -Property PartitionKey | Sort-Object -Unique PartitionKey | Select-Object PartitionKey | ForEach-Object { + @{ + value = $_.PartitionKey + label = $_.PartitionKey + } + } + } elseif ($Request.Query.logentryid) { + # Return single log entry by RowKey + $Filter = "RowKey eq '{0}'" -f $Request.Query.logentryid + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + Write-Host "Getting single log entry for RowKey: $($Request.Query.logentryid)" + + $Row = Get-AzDataTableEntity @Table -Filter $Filter + + if ($Row) { + if ($AllowedTenants -notcontains 'AllTenants') { + $TenantList = Get-Tenants -IncludeErrors | Where-Object { $_.customerId -in $AllowedTenants } + } + + if ($AllowedTenants -contains 'AllTenants' -or ($AllowedTenants -notcontains 'AllTenants' -and ($TenantList.defaultDomainName -contains $Row.Tenant -or $Row.Tenant -eq 'CIPP' -or $TenantList.customerId -contains $Row.TenantId)) ) { + + if ($Row.StandardTemplateId) { + $Standard = ($Templates | Where-Object { $_.RowKey -eq $Row.StandardTemplateId }).JSON | ConvertFrom-Json + + $StandardInfo = @{ + Template = $Standard.templateName + Standard = $Row.Standard + } + + if ($Row.IntuneTemplateId) { + $IntuneTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.IntuneTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.IntunePolicy = $IntuneTemplate.displayName + } + if ($Row.ConditionalAccessTemplateId) { + $ConditionalAccessTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.ConditionalAccessTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.ConditionalAccessPolicy = $ConditionalAccessTemplate.displayName + } + + } else { + $StandardInfo = @{} + } + + $LogData = if ($Row.LogData -and (Test-Json -Json $Row.LogData -ErrorAction SilentlyContinue)) { + $Row.LogData | ConvertFrom-Json + } else { $Row.LogData } + [PSCustomObject]@{ + DateTime = $Row.Timestamp + Tenant = $Row.Tenant + API = $Row.API + Message = $Row.Message + User = $Row.Username + Severity = $Row.Severity + LogData = $LogData + TenantID = if ($Row.TenantID -ne $null) { + $Row.TenantID + } else { + 'None' + } + AppId = $Row.AppId + IP = $Row.IP + RowKey = $Row.RowKey + Standard = $StandardInfo + } + } + } + } else { + if ($request.Query.Filter -eq 'True') { + $LogLevel = if ($Request.Query.Severity) { ($Request.query.Severity).split(',') } else { 'Info', 'Warn', 'Error', 'Critical', 'Alert' } + $PartitionKey = $Request.Query.DateFilter + $username = $Request.Query.User ?? '*' + $TenantFilter = $Request.Query.Tenant + $ApiFilter = $Request.Query.API + $StandardFilter = $Request.Query.StandardTemplateId + $ScheduledTaskFilter = $Request.Query.ScheduledTaskId + + $StartDate = $Request.Query.StartDate ?? $Request.Query.DateFilter + $EndDate = $Request.Query.EndDate ?? $Request.Query.DateFilter + + if ($StartDate -and $EndDate) { + # Collect logs for date range + $Filter = "PartitionKey ge '$StartDate' and PartitionKey le '$EndDate'" + } elseif ($StartDate) { + $Filter = "PartitionKey eq '{0}'" -f $StartDate + } else { + $Filter = "PartitionKey eq '{0}'" -f (Get-Date -UFormat '%Y%m%d') + } + } else { + $LogLevel = 'Info', 'Warn', 'Error', 'Critical', 'Alert' + $PartitionKey = Get-Date -UFormat '%Y%m%d' + $username = '*' + $TenantFilter = $null + $Filter = "PartitionKey eq '{0}'" -f $PartitionKey + } + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + Write-Host "Getting logs for filter: $Filter, LogLevel: $LogLevel, Username: $username" + + $Rows = Get-AzDataTableEntity @Table -Filter $Filter | Where-Object { + $_.Severity -in $LogLevel -and + $_.Username -like $username -and + ([string]::IsNullOrEmpty($TenantFilter) -or $TenantFilter -eq 'AllTenants' -or $_.Tenant -like "*$TenantFilter*" -or $_.TenantID -eq $TenantFilter) -and + ([string]::IsNullOrEmpty($ApiFilter) -or $_.API -match "$ApiFilter") -and + ([string]::IsNullOrEmpty($StandardFilter) -or $_.StandardTemplateId -eq $StandardFilter) -and + ([string]::IsNullOrEmpty($ScheduledTaskFilter) -or $_.ScheduledTaskId -eq $ScheduledTaskFilter) + } + + if ($AllowedTenants -notcontains 'AllTenants') { + $TenantList = Get-Tenants -IncludeErrors | Where-Object { $_.customerId -in $AllowedTenants } + } + + foreach ($Row in $Rows) { + if ($AllowedTenants -contains 'AllTenants' -or ($AllowedTenants -notcontains 'AllTenants' -and ($TenantList.defaultDomainName -contains $Row.Tenant -or $Row.Tenant -eq 'CIPP' -or $TenantList.customerId -contains $Row.TenantId)) ) { + if ($StandardTaskFilter -and $Row.StandardTemplateId) { + $Standard = ($Templates | Where-Object { $_.RowKey -eq $Row.StandardTemplateId }).JSON | ConvertFrom-Json + + $StandardInfo = @{ + Template = $Standard.templateName + Standard = $Row.Standard + } + + if ($Row.IntuneTemplateId) { + $IntuneTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.IntuneTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.IntunePolicy = $IntuneTemplate.displayName + } + if ($Row.ConditionalAccessTemplateId) { + $ConditionalAccessTemplate = ($Templates | Where-Object { $_.RowKey -eq $Row.ConditionalAccessTemplateId }).JSON | ConvertFrom-Json + $StandardInfo.ConditionalAccessPolicy = $ConditionalAccessTemplate.displayName + } + } else { + $StandardInfo = @{} + } + + $LogData = if ($Row.LogData -and (Test-Json -Json $Row.LogData -ErrorAction SilentlyContinue)) { + $Row.LogData | ConvertFrom-Json + } else { $Row.LogData } + [PSCustomObject]@{ + DateTime = $Row.Timestamp + Tenant = $Row.Tenant + API = $Row.API + Message = $Row.Message + User = $Row.Username + Severity = $Row.Severity + LogData = $LogData + TenantID = if ($Row.TenantID -ne $null) { + $Row.TenantID + } else { + 'None' + } + AppId = $Row.AppId + IP = $Row.IP + RowKey = $Row.RowKey + StandardInfo = $StandardInfo + } + } + } + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($ReturnedLog | Sort-Object -Property DateTime -Descending) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNamedLocations.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNamedLocations.ps1 new file mode 100644 index 000000000000..2af340c043c8 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNamedLocations.ps1 @@ -0,0 +1,30 @@ +Function Invoke-ListNamedLocations { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.ConditionalAccess.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.TenantFilter + try { + $GraphRequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -Tenantid $tenantfilter | Select-Object *, + @{ + name = 'rangeOrLocation' + expression = { if ($_.ipRanges) { $_.ipranges.cidrAddress -join ', ' } else { $_.countriesAndRegions -join ', ' } } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNotificationConfig.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNotificationConfig.ps1 new file mode 100644 index 000000000000..4d9f4f11cfdb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListNotificationConfig.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ListNotificationConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + $Table = Get-CIPPTable -TableName SchedulerConfig + $Filter = "RowKey eq 'CippNotifications' and PartitionKey eq 'CippNotifications'" + $Config = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if ($Config) { + $Config = $Config | ConvertTo-Json -Depth 10 | ConvertFrom-Json -Depth 10 -AsHashtable + } else { + $Config = @{} + } + #$config | Add-Member -NotePropertyValue @() -NotePropertyName 'logsToInclude' -Force + $config.logsToInclude = @(([pscustomobject]$config | Select-Object * -ExcludeProperty schedule, type, tenantid, onepertenant, sendtoIntegration, partitionkey, rowkey, tenant, ETag, email, logsToInclude, Severity, Alert, Info, Error, timestamp, webhook, includeTenantId).psobject.properties.name) + if (!$config.logsToInclude) { + $config.logsToInclude = @('None') + } + if (!$config.Severity) { + $config.Severity = @('Alert') + } else { + $config.Severity = $config.Severity -split ',' + } + $body = [PSCustomObject]$Config + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListOrg.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListOrg.ps1 new file mode 100644 index 000000000000..894f43e5ff4f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListOrg.ps1 @@ -0,0 +1,23 @@ +Function Invoke-ListOrg { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Core.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + if ($TenantFilter -eq 'AllTenants') { + $GraphRequest = @() + } else { + $GraphRequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $GraphRequest + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPartnerRelationships.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPartnerRelationships.ps1 new file mode 100644 index 000000000000..848fc7ab498d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPartnerRelationships.ps1 @@ -0,0 +1,35 @@ +Function Invoke-ListPartnerRelationships { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Relationship.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + $GraphRequestList = @{ + Endpoint = 'policies/crossTenantAccessPolicy/partners' + TenantFilter = $TenantFilter + QueueNameOverride = 'Partner Relationships' + ReverseTenantLookup = $true + } + $GraphRequest = Get-GraphRequestList @GraphRequestList + $StatusCode = [HttpStatusCode]::OK + } catch { + $GraphRequest = @() + $StatusCode = [HttpStatusCode]::Forbidden + } + + + $Results = [PSCustomObject]@{ + Results = @($GraphRequest) + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Results + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPendingWebhooks.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPendingWebhooks.ps1 new file mode 100644 index 000000000000..3e27835e30d0 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPendingWebhooks.ps1 @@ -0,0 +1,34 @@ +function Invoke-ListPendingWebhooks { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Alert.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + try { + $Table = Get-CIPPTable -TableName 'WebhookIncoming' + $Webhooks = Get-CIPPAzDataTableEntity @Table + $Results = $Webhooks | Select-Object -ExcludeProperty RowKey, PartitionKey, ETag, Timestamp + $PendingWebhooks = foreach ($Result in $Results) { + foreach ($Property in $Result.PSObject.Properties.Name) { + if (Test-Json -Json $Result.$Property -ErrorAction SilentlyContinue) { + $Result.$Property = $Result.$Property | ConvertFrom-Json + } + } + $Result + } + } catch { + $PendingWebhooks = @() + } + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = @($PendingWebhooks) + Metadata = @{ + Count = ($PendingWebhooks | Measure-Object).Count + } + } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPotentialApps.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPotentialApps.ps1 new file mode 100644 index 000000000000..305b2e645c4c --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListPotentialApps.ps1 @@ -0,0 +1,27 @@ +Function Invoke-ListPotentialApps { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.Application.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + if ($request.body.type -eq 'WinGet') { + $body = @" +{"MaximumResults":50,"Filters":[{"PackageMatchField":"Market","RequestMatch":{"KeyWord":"US","MatchType":"CaseInsensitive"}}],"Query":{"KeyWord":"$($Request.Body.SearchString)","MatchType":"Substring"}} +"@ + $DataRequest = (Invoke-RestMethod -Uri 'https://storeedgefd.dsx.mp.microsoft.com/v9.0/manifestSearch' -Method POST -Body $body -ContentType 'Application/json').data | Select-Object @{l = 'applicationName'; e = { $_.packagename } }, @{l = 'packagename'; e = { $_.packageIdentifier } } | Sort-Object -Property applicationName + } + + if ($Request.Body.type -eq 'Choco') { + $DataRequest = Invoke-RestMethod -Uri "https://community.chocolatey.org/api/v2/Search()?`$filter=IsLatestVersion&`$skip=0&`$top=999&searchTerm=%27$($Request.Body.SearchString)%27&targetFramework=%27%27&includePrerelease=false" -ContentType 'application/json' | Select-Object @{l = 'applicationName'; e = { $_.properties.Title } }, @{l = 'packagename'; e = { $_.title.'#text' } } | Sort-Object -Property applicationName + } + + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($DataRequest) + } + +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 new file mode 100644 index 000000000000..04c1e2c9153a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListRoles.ps1 @@ -0,0 +1,42 @@ +function Invoke-ListRoles { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Identity.Role.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + + try { + [System.Collections.Generic.List[PSCustomObject]]$Roles = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter + $GraphRequest = foreach ($Role in $Roles) { + $Members = if ($Role.members) { + $Role.members | ForEach-Object { [PSCustomObject]@{ + displayName = $_.displayName + userPrincipalName = $_.userPrincipalName + id = $_.id + } } + } + [PSCustomObject]@{ + Id = $Role.id + roleTemplateId = $Role.roleTemplateId + DisplayName = $Role.displayName + Description = $Role.description + Members = @($Members) + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Failed to list roles for tenant $TenantFilter. $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $GraphRequest + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 new file mode 100644 index 000000000000..5aa10ac22f33 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListTenantAllowBlockList.ps1 @@ -0,0 +1,86 @@ +function Invoke-ListTenantAllowBlockList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $ListTypes = 'Sender', 'Url', 'FileHash', 'IP' + try { + if ($TenantFilter -ne 'AllTenants') { + $Results = $ListTypes | ForEach-Object -Parallel { + Import-Module CIPPCore + $TempResults = New-ExoRequest -tenantid $using:TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ ListType = $_ } + $TempResults | Add-Member -MemberType NoteProperty -Name ListType -Value $_ -Force + $TempResults | Add-Member -MemberType NoteProperty -Name Tenant -Value $using:TenantFilter -Force + $TempResults | Select-Object -ExcludeProperty *'@data.type'*, *'(DateTime])'* + } -ThrottleLimit 5 + $Metadata = [PSCustomObject]@{} + } else { + $Table = Get-CIPPTable -TableName 'cacheTenantAllowBlockList' + $PartitionKey = 'TenantAllowBlockList' + $Filter = "PartitionKey eq '$PartitionKey'" + $Rows = Get-CIPPAzDataTableEntity @Table -filter $Filter | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-60) + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + if ($RunningQueue) { + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey + } + $Results = @() + } elseif (!$Rows -and !$RunningQueue) { + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name 'Tenant Allow/Block List - All Tenants' -Link '/tenant/administration/allow-block-list?customerId=AllTenants' -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + $Metadata = [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back in a few minutes' + QueueId = $Queue.RowKey + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'TenantAllowBlockListOrchestrator' + QueueFunction = @{ + FunctionName = 'GetTenants' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeErrors = $true + } + DurableName = 'ListTenantAllowBlockListAllTenants' + } + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) | Out-Null + $Results = @() + } else { + $TenantList = Get-Tenants -IncludeErrors + $Rows = $Rows | Where-Object { $TenantList.defaultDomainName -contains $_.Tenant } + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Results = foreach ($Row in $Rows) { + $Row.Entry | ConvertFrom-Json + } + } + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $Results = $ErrorMessage + } + + if (!$Body) { + $Body = [PSCustomObject]@{ + Results = @($Results) + Metadata = $Metadata + } + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 new file mode 100644 index 000000000000..5abd101abc09 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ListUsersAndGroups.ps1 @@ -0,0 +1,42 @@ +function Invoke-ListUsersAndGroups { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Directory.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.TenantFilter + $select = 'id,displayName,userPrincipalName' + + try { + # Build batch requests for users and groups + $BulkRequests = @( + @{ + id = 'users' + method = 'GET' + url = "users?`$select=$select&`$top=999&" + } + @{ + id = 'groups' + method = 'GET' + url = "groups?`$select=id,displayName&`$top=999" + } + ) + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter + $Users = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value | Select-Object *, @{Name = '@odata.type'; Expression = { '#microsoft.graph.user' } } + $Groups = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value | Select-Object id, displayName, @{Name = 'userPrincipalName'; Expression = { $null } }, @{Name = '@odata.type'; Expression = { '#microsoft.graph.group' } } + $GraphRequest = @($Users) + @($Groups) | Sort-Object displayName + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $GraphRequest = $ErrorMessage + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 new file mode 100644 index 000000000000..5d9375cba697 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-PublicPhishingCheck.ps1 @@ -0,0 +1,45 @@ +function Invoke-PublicPhishingCheck { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Public + #> + [CmdletBinding()] + + #this has been switched to the external free service by cyberdrain at clone.cipp.app due to extreme numbers of executions if selfhosted. + param($Request, $TriggerMetadata) + + $Tenant = Get-Tenants -TenantFilter $Request.body.TenantId + + if ($Request.body.Cloned -and $Tenant.customerId -eq $Request.body.TenantId) { + Write-AlertMessage -message $Request.body.AlertMessage -sev 'Alert' -tenant $Request.body.TenantId + } elseif ($Request.Body.source -and $Tenant) { + $table = Get-CIPPTable -tablename CheckExtensionAlerts + $Message = "Alert received from $($Request.Body.source) for $($Request.body.TenantId)" + $ID = (New-Guid).GUID + $TableBody = @{ + RowKey = "$ID" + PartitionKey = 'CheckAlert' + tenantFilter = [string]$Tenant.defaultDomainName + message = [string]$Message + type = [string]$request.body.type + url = [string]$request.body.url + reason = [string]$request.body.reason + score = [string]$request.body.score + threshold = [string]$request.body.threshold + potentialUserName = [string]$request.body.userEmail + potentialUserDisplayName = [string]$request.body.userDisplayName + reportedByIP = [string]$Request.headers.'x-forwarded-for' + rawBody = "$($Request.body | ConvertTo-Json)" + } + $null = Add-CIPPAzDataTableEntity @table -Entity $TableBody -Force + Write-AlertTrace -cmdletName 'CheckExtentionAlert' -tenantFilter $Tenant.defaultDomainName -data $TableBody + #Write-AlertMessage -message $Message -sev 'Alert' -tenant $Tenant.customerId -LogData $Request.body + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = 'OK' + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Invoke-RemoveTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Entrypoints/Invoke-RemoveTenantAllowBlockList.ps1 new file mode 100644 index 000000000000..0db47ce4dd6d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-RemoveTenantAllowBlockList.ps1 @@ -0,0 +1,52 @@ +function Invoke-RemoveTenantAllowBlockList { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Exchange.SpamFilter.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Body.tenantFilter + $Entries = $Request.Body.Entries + $ListType = $Request.Body.ListType + + try { + + Write-Host "List type is $listType" + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Remove-TenantAllowBlockListItems' + cmdParams = @{ + Entries = @($Entries) + ListType = $ListType + } + } + + $Results = New-ExoRequest @ExoRequest + Write-Host $Results + + $Result = "Successfully removed $($Entries) with type $ListType from Block/Allow list" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove $($Entries) type $ListType. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::Forbidden + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ + 'Results' = $Result + # 'Request' = $ExoRequest + } + }) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ApplicationOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ApplicationOrchestrator.ps1 new file mode 100644 index 000000000000..eb4d4386aeac --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ApplicationOrchestrator.ps1 @@ -0,0 +1,22 @@ +function Start-ApplicationOrchestrator { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + Param() + + Write-LogMessage -API 'IntuneApps' -message 'Started uploading applications to tenants' -sev Info + Write-Information 'Started uploading applications to tenants' + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'ApplicationOrchestrator' + SkipLog = $true + QueueFunction = @{ + FunctionName = 'GetApplicationQueue' + } + } + + if ($PSCmdlet.ShouldProcess('Upload Applications')) { + return Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 new file mode 100644 index 000000000000..f11d8f9396a3 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 @@ -0,0 +1,91 @@ +function Start-AuditLogIngestion { + <# + .SYNOPSIS + Start the Audit Log Ingestion Orchestrator using Office 365 Management Activity API + + .DESCRIPTION + Orchestrator that creates batches of tenants to ingest audit logs from the Office 365 Management Activity API. + Each tenant is processed by Push-AuditLogIngestion activity function. + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + try { + Write-Information 'Office 365 Management Activity API: Starting audit log ingestion orchestrator' + # Get webhook rules to determine which tenants to monitor + $WebhookRulesTable = Get-CippTable -TableName 'WebhookRules' + $WebhookRules = Get-CIPPAzDataTableEntity @WebhookRulesTable -Filter "PartitionKey eq 'Webhookv2'" + if (($WebhookRules | Measure-Object).Count -eq 0) { + Write-Information 'No webhook rules defined, skipping audit log ingestion' + return + } + + # Process webhook rules to get tenant list + $ConfigEntries = $WebhookRules | ForEach-Object { + $ConfigEntry = $_ + if (!$ConfigEntry.excludedTenants) { + $ConfigEntry | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force + } else { + $ConfigEntry.excludedTenants = $ConfigEntry.excludedTenants | ConvertFrom-Json + } + $ConfigEntry.Tenants = $ConfigEntry.Tenants | ConvertFrom-Json + $ConfigEntry + } + + $TenantList = Get-Tenants -IncludeErrors + $TenantsToProcess = [System.Collections.Generic.List[object]]::new() + + foreach ($Tenant in $TenantList) { + # Check if tenant has any webhook rules and collect content types + $TenantInConfig = $false + $MatchingConfigs = [System.Collections.Generic.List[object]]::new() + + foreach ($ConfigEntry in $ConfigEntries) { + if ($ConfigEntry.excludedTenants.value -contains $Tenant.defaultDomainName) { + continue + } + $TenantsList = Expand-CIPPTenantGroups -TenantFilter ($ConfigEntry.Tenants) + if ($TenantsList.value -contains $Tenant.defaultDomainName -or $TenantsList.value -contains 'AllTenants') { + $TenantInConfig = $true + $MatchingConfigs.Add($ConfigEntry) + } + } + + if ($TenantInConfig -and $MatchingConfigs.Count -gt 0) { + # Extract unique content types from webhook rules (e.g., Audit.Exchange, Audit.SharePoint) + $ContentTypes = @($MatchingConfigs | Select-Object -Property type | Where-Object { $_.type } | Sort-Object -Property type -Unique | ForEach-Object { $_.type }) + + if ($ContentTypes.Count -gt 0) { + $TenantsToProcess.Add([PSCustomObject]@{ + defaultDomainName = $Tenant.defaultDomainName + customerId = $Tenant.customerId + ContentTypes = $ContentTypes + }) + } + } + } if ($TenantsToProcess.Count -eq 0) { + Write-Information 'No tenants configured for audit log ingestion' + return + } + + Write-Information "Audit Log Ingestion: Processing $($TenantsToProcess.Count) tenants" + + if ($PSCmdlet.ShouldProcess('Start-AuditLogIngestion', 'Starting Audit Log Ingestion')) { + $Queue = New-CippQueueEntry -Name 'Audit Logs Ingestion' -Reference 'AuditLogsIngestion' -TotalTasks $TenantsToProcess.Count + $Batch = $TenantsToProcess | Select-Object @{Name = 'TenantFilter'; Expression = { $_.defaultDomainName } }, @{Name = 'TenantId'; Expression = { $_.customerId } }, @{Name = 'ContentTypes'; Expression = { $_.ContentTypes } }, @{Name = 'QueueId'; Expression = { $Queue.RowKey } }, @{Name = 'FunctionName'; Expression = { 'AuditLogIngestion' } } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'AuditLogsIngestion' + Batch = @($Batch) + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started audit log ingestion orchestration for $($TenantsToProcess.Count) tenants" + } + } catch { + Write-LogMessage -API 'AuditLogIngestion' -message 'Error in audit log ingestion orchestrator' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information "Audit log ingestion orchestrator error: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogOrchestrator.ps1 new file mode 100644 index 000000000000..7bbba7946425 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogOrchestrator.ps1 @@ -0,0 +1,41 @@ +function Start-AuditLogOrchestrator { + <# + .SYNOPSIS + Start the Audit Log Polling Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + try { + $AuditLogSearchesTable = Get-CIPPTable -TableName 'AuditLogSearches' + $15MinutesAgo = (Get-Date).AddMinutes(-15).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $1DayAgo = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $AuditLogSearches = Get-CIPPAzDataTableEntity @AuditLogSearchesTable -Filter "(CippStatus eq 'Pending' or (CippStatus eq 'Processing' and Timestamp le datetime'$15MinutesAgo')) and Timestamp ge datetime'$1DayAgo'" -Property PartitionKey, RowKey, Tenant, CippStatus, Timestamp + + $WebhookRulesTable = Get-CIPPTable -TableName 'WebhookRules' + $WebhookRules = Get-CIPPAzDataTableEntity @WebhookRulesTable + + if (($AuditLogSearches | Measure-Object).Count -eq 0) { + Write-Information 'No audit log searches available' + } elseif (($AuditLogSearches | Measure-Object).Count -eq 0 -and ($WebhookRules | Measure-Object).Count -eq 0) { + Write-Information 'No webhook rules defined' + } else { + Write-Information "Audit Logs: Downloading $($AuditLogSearches.Count) searches" + if ($PSCmdlet.ShouldProcess('Start-AuditLogOrchestrator', 'Starting Audit Log Polling')) { + $Queue = New-CippQueueEntry -Name 'Audit Logs Download' -Reference 'AuditLogsDownload' -TotalTasks ($AuditLogSearches).Count + $Batch = $AuditLogSearches | Sort-Object -Property Tenant -Unique | Select-Object @{Name = 'TenantFilter'; Expression = { $_.Tenant } }, @{Name = 'QueueId'; Expression = { $Queue.RowKey } }, @{Name = 'FunctionName'; Expression = { 'AuditLogTenantDownload' } } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'AuditLogsDownload' + Batch = @($Batch) + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } + } + } catch { + Write-LogMessage -API 'Audit Logs' -message 'Error processing audit logs' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information ( 'Audit logs error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 new file mode 100644 index 000000000000..2a1427d33028 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogProcessingOrchestrator.ps1 @@ -0,0 +1,61 @@ +function Start-AuditLogProcessingOrchestrator { + <# + .SYNOPSIS + Start the Audit Log Processing Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + Write-Information 'Starting audit log processing in batches of 1000, per tenant' + $WebhookCacheTable = Get-CippTable -TableName 'CacheWebhooks' + + $DataTableQuery = @{ + First = 20000 + Skip = 0 + } + + do { + $WebhookCache = Get-CIPPAzDataTableEntity @WebhookCacheTable @DataTableQuery + $TenantGroups = $WebhookCache | Group-Object -Property PartitionKey + + if ($TenantGroups) { + Write-Information "Processing webhook cache for $($TenantGroups.Count) tenants" + #Write-Warning "AuditLogJobs are: $($TenantGroups.Count) tenants. Tenants: $($TenantGroups.name | ConvertTo-Json -Compress) " + #Write-Warning "Here are the groups: $($TenantGroups | ConvertTo-Json -Compress)" + $ProcessQueue = New-CippQueueEntry -Name 'Audit Logs Process' -Reference 'AuditLogsProcess' -TotalTasks ($TenantGroups | Measure-Object -Property Count -Sum).Sum + $ProcessBatch = foreach ($TenantGroup in $TenantGroups) { + $TenantFilter = $TenantGroup.Name + $RowIds = @($TenantGroup.Group.RowKey) + for ($i = 0; $i -lt $RowIds.Count; $i += 500) { + Write-Host "Processing $TenantFilter with $($RowIds.Count) row IDs. We're processing id $($RowIds[$i]) to $($RowIds[[Math]::Min($i + 499, $RowIds.Count - 1)])" + $BatchRowIds = $RowIds[$i..([Math]::Min($i + 499, $RowIds.Count - 1))] + [PSCustomObject]@{ + TenantFilter = $TenantFilter + RowIds = $BatchRowIds + QueueId = $ProcessQueue.RowKey + FunctionName = 'AuditLogTenantProcess' + } + } + } + if ($ProcessBatch) { + $ProcessInputObject = [PSCustomObject]@{ + OrchestratorName = 'AuditLogTenantProcess' + Batch = @($ProcessBatch) + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($ProcessInputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started audit log processing orchestration with $($ProcessBatch.Count) batches" + } + } + + if ($WebhookCache.Count -lt 20000) { + Write-Information 'No more rows to process' + break + } + Write-Information "Processed $($WebhookCache.Count) rows" + $DataTableQuery.Skip += 20000 + Write-Information "Getting next batch of $($DataTableQuery.First) rows" + } while ($WebhookCache.Count -eq 20000) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 new file mode 100644 index 000000000000..c1ae93dd22a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 @@ -0,0 +1,78 @@ +function Start-AuditLogSearchCreation { + <# + .SYNOPSIS + Start the Audit Log Searches + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + try { + $ConfigTable = Get-CippTable -TableName 'WebhookRules' + $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'Webhookv2'" | ForEach-Object { + $ConfigEntry = $_ + if (!$ConfigEntry.excludedTenants) { + $ConfigEntry | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force + } else { + $ConfigEntry.excludedTenants = $ConfigEntry.excludedTenants | ConvertFrom-Json + } + $ConfigEntry.Tenants = $ConfigEntry.Tenants | ConvertFrom-Json + $ConfigEntry + } + + $TenantList = Get-Tenants -IncludeErrors + # Round time down to nearest minute + $Now = Get-Date + $StartTime = ($Now.AddSeconds(-$Now.Seconds)).AddHours(-1) + $EndTime = $Now.AddSeconds(-$Now.Seconds) + + Write-Information 'Audit Logs: Creating new searches' + + $Batch = foreach ($Tenant in $TenantList) { + Write-Information "Processing tenant $($Tenant.defaultDomainName) - $($Tenant.customerId)" + $TenantInConfig = $false + $MatchingConfigs = [System.Collections.Generic.List[object]]::new() + foreach ($ConfigEntry in $ConfigEntries) { + if ($ConfigEntry.excludedTenants.value -contains $Tenant.defaultDomainName) { + continue + } + $TenantsList = Expand-CIPPTenantGroups -TenantFilter ($ConfigEntry.Tenants) + if ($TenantsList.value -contains $Tenant.defaultDomainName -or $TenantsList.value -contains 'AllTenants') { + $TenantInConfig = $true + $MatchingConfigs.Add($ConfigEntry) + } + } + + if (!$TenantInConfig) { + Write-Information "Tenant $($Tenant.defaultDomainName) has no configured audit log rules, skipping search creation." + continue + } + + if ($MatchingConfigs) { + [PSCustomObject]@{ + FunctionName = 'AuditLogSearchCreation' + Tenant = $Tenant | Select-Object defaultDomainName, customerId, displayName + StartTime = $StartTime + EndTime = $EndTime + ServiceFilters = @($MatchingConfigs | Select-Object -Property type | Sort-Object -Property type -Unique | ForEach-Object { $_.type.split('.')[1] }) + } + } + } + + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + Batch = @($Batch) + OrchestratorName = 'AuditLogSearchCreation' + SkipLog = $true + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started Audit Log search creation orchestratorwith $($Batch.Count) tenants" + } else { + Write-Information 'No tenants found for Audit Log search creation' + } + } catch { + Write-LogMessage -API 'Audit Logs' -message 'Error creating audit log searches' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information ( 'Audit logs error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-BPAOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-BPAOrchestrator.ps1 new file mode 100644 index 000000000000..71e79f07a75a --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-BPAOrchestrator.ps1 @@ -0,0 +1,99 @@ +function Start-BPAOrchestrator { + <# + .SYNOPSIS + Start the Best Practice Analyser + .DESCRIPTION + This function starts the Best Practice Analyser + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $TenantFilter = 'AllTenants', + [switch]$Force + ) + + try { + if ($TenantFilter -ne 'AllTenants') { + Write-Verbose "TenantFilter: $TenantFilter" + if ($TenantFilter -notmatch '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') { + $TenantFilter = @($TenantFilter) + } else { + Write-Verbose 'Got GUID: Looking up tenant' + $TenantFilter = Get-Tenants -TenantFilter $TenantFilter | Select-Object -ExpandProperty defaultDomainName + } + $TenantList = @($TenantFilter) + $Name = "Best Practice Analyser ($TenantFilter)" + } else { + $TenantList = (Get-Tenants).defaultDomainName + $Name = 'Best Practice Analyser' + } + + Write-Verbose 'Getting BPA templates' + + + $BPATemplateTable = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'BPATemplate'" + try { + $TemplateRows = Get-CIPPAzDataTableEntity @BPATemplateTable -Filter $Filter + + if (!$TemplateRows) { + $null = Get-ChildItem 'Config\*.BPATemplate.json' | ForEach-Object { + $TemplateJson = Get-Content $_ | ConvertFrom-Json | ConvertTo-Json -Compress -Depth 10 + $Entity = @{ + JSON = "$TemplateJson" + RowKey = "$($_.name)" + PartitionKey = 'BPATemplate' + GUID = "$($_.name)" + } + Add-CIPPAzDataTableEntity @BPATemplateTable -Entity $Entity -Force + } + $TemplateRows = Get-CIPPAzDataTableEntity @BPATemplateTable -Filter $Filter + } + + $Templates = ($TemplateRows.JSON | ConvertFrom-Json).Name + } catch { + Write-LogMessage -API 'BestPracticeAnalyser' -message 'Could not get BPA templates' -sev Error + return $false + } + Write-Verbose 'Creating orchestrator batch' + $BPAReports = foreach ($Tenant in $TenantList) { + foreach ($Template in $Templates) { + [PSCustomObject]@{ + FunctionName = 'BPACollectData' + Tenant = $Tenant + Template = $Template + QueueName = '{0} - {1}' -f $Template, $Tenant + } + } + } + + if ($Force.IsPresent) { + Write-Host 'Clearing Rerun Cache' + foreach ($Report in $BPAReports) { + $null = Test-CIPPRerun -Type BPA -Tenant $Report.Tenant -API $Report.Template -Clear + } + } + + if (($BPAReports | Measure-Object).Count -eq 0) { + Write-Information 'No BPA reports to run' + return 0 + } + + if ($PSCmdlet.ShouldProcess($Name, 'Starting Orchestrator')) { + Write-LogMessage -API 'BestPracticeAnalyser' -message 'Starting Best Practice Analyser' -sev Info + $Queue = New-CippQueueEntry -Name $Name -TotalTasks ($BPAReports | Measure-Object).Count + $BPAReports = $BPAReports | Select-Object *, @{Name = 'QueueId'; Expression = { $Queue.RowKey } } + $InputObject = [PSCustomObject]@{ + Batch = @($BPAReports) + OrchestratorName = 'BPAOrchestrator' + SkipLog = $true + } + return Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'BestPracticeAnalyser' -message "Could not start Best Practice Analyser: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return $false + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 new file mode 100644 index 000000000000..51e0861ca294 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBCacheOrchestrator.ps1 @@ -0,0 +1,60 @@ +function Start-CIPPDBCacheOrchestrator { + <# + .SYNOPSIS + Orchestrates database cache collection across all tenants + + .DESCRIPTION + Creates per-tenant jobs to collect and cache Microsoft Graph data + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param() + + try { + Write-LogMessage -API 'CIPPDBCache' -message 'Starting database cache orchestration' -sev Info + Write-Host 'Starting database cache orchestration' + $TenantList = Get-Tenants | Where-Object { $_.defaultDomainName -ne $null } + + if ($TenantList.Count -eq 0) { + Write-LogMessage -API 'CIPPDBCache' -message 'No tenants found for cache collection' -sev Warning + return + } + + $TaskCount = $TenantList.Count * 2 + + $Queue = New-CippQueueEntry -Name 'Database Cache Collection' -TotalTasks $TaskCount + $Batch = [system.collections.generic.list[object]]::new() + foreach ($Tenant in $TenantList) { + $Batch.Add([PSCustomObject]@{ + FunctionName = 'CIPPDBCacheData' + TenantFilter = $Tenant.defaultDomainName + QueueId = $Queue.RowKey + QueueName = "DB Cache - $($Tenant.defaultDomainName)" + }) + $Batch.Add([PSCustomObject]@{ + FunctionName = 'CIPPDBCacheData' + TenantFilter = $Tenant.defaultDomainName + QueueId = $Queue.RowKey + Type = 'Mailboxes' + QueueName = "DB Cache Mailboxes - $($Tenant.defaultDomainName)" + }) + } + Write-Host "Created queue $($Queue.RowKey) for database cache collection of $($TenantList.Count) tenants" + Write-Host "Starting batch of $($Batch.Count) cache collection activities" + $InputObject = [PSCustomObject]@{ + Batch = @($Batch) + OrchestratorName = 'CIPPDBCacheOrchestrator' + SkipLog = $false + } + + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + + Write-LogMessage -API 'CIPPDBCache' -message "Queued database cache collection for $($TenantList.Count) tenants" -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -message "Failed to start orchestration: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DomainOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DomainOrchestrator.ps1 new file mode 100644 index 000000000000..60c1d20600b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DomainOrchestrator.ps1 @@ -0,0 +1,41 @@ +function Start-DomainOrchestrator { + <# + .SYNOPSIS + Start the Domain Orchestrator + .DESCRIPTION + This function starts the Domain Orchestrator + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + try { + $TenantList = Get-Tenants -IncludeAll + if (($TenantList | Measure-Object).Count -eq 0) { + Write-Information 'No tenants found' + return 0 + } + + $Queue = New-CippQueueEntry -Name 'Domain Analyser' -TotalTasks ($TenantList | Measure-Object).Count + $InputObject = [PSCustomObject]@{ + QueueFunction = [PSCustomObject]@{ + FunctionName = 'GetTenants' + DurableName = 'DomainAnalyserTenant' + QueueId = $Queue.RowKey + TenantParams = @{ + IncludeAll = $true + } + } + OrchestratorName = 'DomainAnalyser_Tenants' + SkipLog = $true + } + if ($PSCmdlet.ShouldProcess('Domain Analyser', 'Starting Orchestrator')) { + Write-LogMessage -API 'DomainAnalyser' -message 'Starting Domain Analyser' -sev Info + return Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Compress -Depth 5) + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'DomainAnalyser' -message "Could not start Domain Analyser: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return $false + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DriftStandardsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DriftStandardsOrchestrator.ps1 new file mode 100644 index 000000000000..9a3b0203f852 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-DriftStandardsOrchestrator.ps1 @@ -0,0 +1,16 @@ +function Start-DriftStandardsOrchestrator { + <# + .SYNOPSIS + Start the Drift Standards Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + if ($PSCmdlet.ShouldProcess('Start-DriftStandardsOrchestrator', 'Starting Drift Standards Orchestrator')) { + Write-LogMessage -API 'Standards' -message 'Starting Drift Standards Schedule' -sev Info + Invoke-CIPPStandardsRun -Drift + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 new file mode 100644 index 000000000000..65773f8b0652 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-ExtensionOrchestrator.ps1 @@ -0,0 +1,27 @@ +function Start-ExtensionOrchestrator { + <# + .SYNOPSIS + Start the Extension Orchestrator + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + $Table = Get-CIPPTable -TableName Extensionsconfig + $ExtensionConfig = (Get-AzDataTableEntity @Table).config + if ($ExtensionConfig -and (Test-Json -Json $ExtensionConfig)) { + $Configuration = ($ExtensionConfig | ConvertFrom-Json) + } else { + $Configuration = @{} + } + + Write-Host 'Started Scheduler for Extensions' + + # NinjaOne Extension + if ($Configuration.NinjaOne.Enabled -eq $true) { + if ($PSCmdlet.ShouldProcess('Invoke-NinjaOneExtensionScheduler')) { + Invoke-NinjaOneExtensionScheduler + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-SchedulerOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-SchedulerOrchestrator.ps1 new file mode 100644 index 000000000000..3d5d8ff1ea00 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-SchedulerOrchestrator.ps1 @@ -0,0 +1,66 @@ +function Start-SchedulerOrchestrator { + <# + .SYNOPSIS + Start the Scheduler Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + $Table = Get-CIPPTable -TableName SchedulerConfig + $Tenants = Get-CIPPAzDataTableEntity @Table | Where-Object -Property PartitionKey -NE 'WebhookAlert' + + $Tasks = foreach ($Tenant in $Tenants) { + if ($Tenant.tenant -ne 'AllTenants') { + [pscustomobject]@{ + Tenant = $Tenant.tenant + Tag = 'SingleTenant' + TenantID = $Tenant.tenantid + Type = $Tenant.type + RowKey = $Tenant.RowKey + } + } else { + Write-Information 'All tenants, doing them all' + $TenantList = Get-Tenants + foreach ($t in $TenantList) { + [pscustomobject]@{ + Tenant = $t.defaultDomainName + Tag = 'AllTenants' + TenantID = $t.customerId + Type = $Tenant.type + RowKey = $Tenant.RowKey + } + } + } + } + + if (($Tasks | Measure-Object).Count -eq 0) { + return + } + + $Queue = New-CippQueueEntry -Name 'Scheduler' -TotalTasks ($Tasks | Measure-Object).Count + + $Batch = foreach ($Task in $Tasks) { + [pscustomobject]@{ + Tenant = $task.tenant + Tenantid = $task.tenantid + Tag = $task.tag + Type = $task.type + QueueId = $Queue.RowKey + SchedulerRow = $Task.RowKey + QueueName = '{0} - {1}' -f $Task.Type, $task.tenant + FunctionName = "Scheduler$($Task.Type)" + } + } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'SchedulerOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + + if ($PSCmdlet.ShouldProcess('Start-ScheduleOrchestrator', 'Starting Scheduler Orchestrator')) { + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-StandardsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-StandardsOrchestrator.ps1 new file mode 100644 index 000000000000..fe261d84f695 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-StandardsOrchestrator.ps1 @@ -0,0 +1,16 @@ +function Start-StandardsOrchestrator { + <# + .SYNOPSIS + Start the Standards Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + if ($PSCmdlet.ShouldProcess('Start-StandardsOrchestrator', 'Starting Standards Orchestrator')) { + Write-LogMessage -API 'Standards' -message 'Starting Standards Schedule' -sev Info + Invoke-CIPPStandardsRun -tenantfilter 'allTenants' + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TenantDynamicGroupOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TenantDynamicGroupOrchestrator.ps1 new file mode 100644 index 000000000000..49d1e6d6e12d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TenantDynamicGroupOrchestrator.ps1 @@ -0,0 +1,40 @@ +function Start-TenantDynamicGroupOrchestrator { + <# + .SYNOPSIS + Start the Tenant Dynamic Group Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [string]$GroupId = 'All' + ) + + try { + Write-Information 'Updating Dynamic Tenant Groups' + $TenantGroups = @{ + Dynamic = $true + } + $TenantGroups = Get-TenantGroups @TenantGroups + if ($GroupId -ne 'All') { + $TenantGroups = $TenantGroups | Where-Object { $_.Id -eq $GroupId } + } + + if ($TenantGroups.Count -gt 0) { + Write-Information "Found $($TenantGroups.Count) dynamic tenant groups" + $Queue = New-CippQueueEntry -Name 'Dynamic Tenant Groups' -TotalTasks $TenantGroups.Count + $TenantBatch = $TenantGroups | Select-Object Name, Id, @{n = 'FunctionName'; exp = { 'UpdateDynamicTenantGroup' } }, @{n = 'QueueId'; exp = { $Queue.RowKey } } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'UpdateDynamicTenantGroups' + Batch = @($TenantBatch) + SkipLog = $true + } + if ($PSCmdlet.ShouldProcess('Start-TenantDynamicGroupOrchestrator', 'Starting Tenant Dynamic Group Orchestrator')) { + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } + } else { + Write-Information 'No tenants require permissions update' + } + } catch {} +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 new file mode 100644 index 000000000000..da22c521107e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-TestsOrchestrator.ps1 @@ -0,0 +1,16 @@ +function Start-TestsOrchestrator { + <# + .SYNOPSIS + Start the Tests Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + if ($PSCmdlet.ShouldProcess('Start-TestsOrchestrator', 'Starting Tests Orchestrator')) { + Write-LogMessage -API 'Tests' -message 'Starting Tests Schedule' -sev Info + Invoke-CIPPTestsRun -TenantFilter 'allTenants' + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UpdatePermissionsOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UpdatePermissionsOrchestrator.ps1 new file mode 100644 index 000000000000..323c6d437219 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UpdatePermissionsOrchestrator.ps1 @@ -0,0 +1,65 @@ +function Start-UpdatePermissionsOrchestrator { + <# + .SYNOPSIS + Start the Update Permissions Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + try { + Write-Information 'Updating Permissions' + + $PartnerTenant = @{ + 'customerId' = $env:TenantID + 'defaultDomainName' = 'PartnerTenant' + 'displayName' = '*Partner Tenant' + } + + $TenantList = Get-Tenants -IncludeAll | Where-Object { $_.Excluded -eq $false } + + $Tenants = [System.Collections.Generic.List[object]]::new() + foreach ($Tenant in $TenantList) { + $Tenants.Add($Tenant) + } + + if ($Tenants.customerId -notcontains $env:TenantID) { + $Tenants.Add($PartnerTenant) + } + + $CPVTable = Get-CIPPTable -TableName cpvtenants + $CPVRows = Get-CIPPAzDataTableEntity @CPVTable + $LastCPV = ($CPVRows | Sort-Object -Property Timestamp -Descending | Select-Object -First 1).Timestamp.DateTime + Write-Information "CPV last updated at $LastCPV" + + $SAMPermissions = Get-CIPPSamPermissions + Write-Information "SAM Permissions last updated at $($SAMPermissions.Timestamp)" + + $SAMRolesTable = Get-CIPPTable -TableName SAMRoles + $SAMRoles = Get-CIPPAzDataTableEntity @SAMRolesTable + Write-Information "SAM Roles last updated at $($SAMRoles.Timestamp.DateTime)" + + $Tenants = $Tenants | ForEach-Object { + $CPVRow = $CPVRows | Where-Object -Property Tenant -EQ $_.customerId + if (!$CPVRow -or $env:ApplicationID -notin $CPVRow.applicationId -or $SAMPermissions.Timestamp -gt $CPVRow.Timestamp.DateTime -or $CPVRow.Timestamp.DateTime -le (Get-Date).AddDays(-7).ToUniversalTime() -or !$_.defaultDomainName -or ($SAMroles.Timestamp.DateTime -gt $CPVRow.Timestamp.DateTime -and ($SAMRoles.Tenants -contains $_.defaultDomainName -or $SAMRoles.Tenants.value -contains $_.defaultDomainName -or $SAMRoles.Tenants -contains 'AllTenants' -or $SAMRoles.Tenants.value -contains 'AllTenants'))) { + $_ + } + } + $TenantCount = ($Tenants | Measure-Object).Count + + if ($TenantCount -gt 0) { + Write-Information "Found $TenantCount tenants that require permissions update" + $Queue = New-CippQueueEntry -Name 'Update Permissions' -TotalTasks $TenantCount + $TenantBatch = $Tenants | Select-Object defaultDomainName, customerId, displayName, @{n = 'FunctionName'; exp = { 'UpdatePermissionsQueue' } }, @{n = 'QueueId'; exp = { $Queue.RowKey } } + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'UpdatePermissionsOrchestrator' + Batch = @($TenantBatch) + } + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } else { + Write-Information 'No tenants require permissions update' + } + } catch {} +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 new file mode 100644 index 000000000000..272c78ee2627 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 @@ -0,0 +1,212 @@ +function Start-UserTasksOrchestrator { + <# + .SYNOPSIS + Start the User Tasks Orchestrator + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + $Table = Get-CippTable -tablename 'ScheduledTasks' + $30MinutesAgo = (Get-Date).AddMinutes(-30).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $4HoursAgo = (Get-Date).AddHours(-4).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + # Pending = orchestrator queued, Running = actively executing + # Pick up: Planned, Failed-Planned, stuck Pending (>30min), or stuck Running (>4hr for large AllTenants tasks) + $Filter = "PartitionKey eq 'ScheduledTask' and (TaskState eq 'Planned' or TaskState eq 'Failed - Planned' or (TaskState eq 'Pending' and Timestamp lt datetime'$30MinutesAgo') or (TaskState eq 'Running' and Timestamp lt datetime'$4HoursAgo'))" + $tasks = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + $RateLimitTable = Get-CIPPTable -tablename 'SchedulerRateLimits' + $RateLimits = Get-CIPPAzDataTableEntity @RateLimitTable -Filter "PartitionKey eq 'SchedulerRateLimits'" + + $CIPPCoreModuleRoot = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $CIPPCoreModuleRoot).Parent.Parent + $DefaultRateLimits = Get-Content -Path "$CIPPRoot/Config/SchedulerRateLimits.json" | ConvertFrom-Json + $NewRateLimits = foreach ($Limit in $DefaultRateLimits) { + if ($Limit.Command -notin $RateLimits.RowKey) { + @{ + PartitionKey = 'SchedulerRateLimits' + RowKey = $Limit.Command + MaxRequests = $Limit.MaxRequests + } + } + } + + if ($NewRateLimits) { + $null = Add-CIPPAzDataTableEntity @RateLimitTable -Entity $NewRateLimits -Force + $RateLimits = Get-CIPPAzDataTableEntity @RateLimitTable -Filter "PartitionKey eq 'SchedulerRateLimits'" + } + + # Create a hashtable for quick rate limit lookups + $RateLimitLookup = @{} + foreach ($limit in $RateLimits) { + $RateLimitLookup[$limit.RowKey] = $limit.MaxRequests + } + + $Batch = [System.Collections.Generic.List[object]]::new() + $TenantList = Get-Tenants -IncludeErrors + foreach ($task in $tasks) { + $tenant = $task.Tenant + + $currentUnixTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + if ($currentUnixTime -ge $task.ScheduledTime) { + try { + # Update task state to 'Pending' immediately to prevent concurrent orchestrator runs from picking it up + # 'Pending' = orchestrator has picked it up and is queuing commands + # 'Running' = actual execution is happening (set by Push-ExecScheduledCommand) + $null = Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + ExecutedTime = "$currentUnixTime" + TaskState = 'Pending' + } + $task.Parameters = $task.Parameters | ConvertFrom-Json -AsHashtable + $task.AdditionalProperties = $task.AdditionalProperties | ConvertFrom-Json + + if (!$task.Parameters) { $task.Parameters = @{} } + $ScheduledCommand = [pscustomobject]@{ + Command = $task.Command + Parameters = $task.Parameters + TaskInfo = $task + FunctionName = 'ExecScheduledCommand' + } + + if ($task.Tenant -eq 'AllTenants') { + $ExcludedTenants = $task.excludedTenants -split ',' + Write-Host "Excluded Tenants from this task: $ExcludedTenants" + $AllTenantCommands = foreach ($Tenant in $TenantList | Where-Object { $_.defaultDomainName -notin $ExcludedTenants }) { + $NewParams = $task.Parameters.Clone() + if ((Get-Command $task.Command).Parameters.TenantFilter) { + $NewParams.TenantFilter = $Tenant.defaultDomainName + } + [pscustomobject]@{ + Command = $task.Command + Parameters = $NewParams + TaskInfo = $task + FunctionName = 'ExecScheduledCommand' + } + } + $Batch.AddRange($AllTenantCommands) + } elseif ($task.TenantGroup) { + # Handle tenant groups - expand group to individual tenants + try { + $TenantGroupObject = $task.TenantGroup | ConvertFrom-Json + Write-Host "Expanding tenant group: $($TenantGroupObject.label) with ID: $($TenantGroupObject.value)" + + # Create a tenant filter object for expansion + $TenantFilterForExpansion = @([PSCustomObject]@{ + type = 'Group' + value = $TenantGroupObject.value + label = $TenantGroupObject.label + }) + + # Expand the tenant group to individual tenants + $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $TenantFilterForExpansion + + $ExcludedTenants = $task.excludedTenants -split ',' + Write-Host "Excluded Tenants from this task: $ExcludedTenants" + + $GroupTenantCommands = foreach ($ExpandedTenant in $ExpandedTenants | Where-Object { $_.value -notin $ExcludedTenants }) { + $NewParams = $task.Parameters.Clone() + if ((Get-Command $task.Command).Parameters.TenantFilter) { + $NewParams.TenantFilter = $ExpandedTenant.value + } + [pscustomobject]@{ + Command = $task.Command + Parameters = $NewParams + TaskInfo = $task + FunctionName = 'ExecScheduledCommand' + } + } + $Batch.AddRange($GroupTenantCommands) + } catch { + Write-Host "Error expanding tenant group: $($_.Exception.Message)" + Write-LogMessage -API 'Scheduler_UserTasks' -tenant $tenant -message "Failed to expand tenant group for task $($task.Name): $($_.Exception.Message)" -sev Error + + # Fall back to treating as single tenant + if ((Get-Command $task.Command).Parameters.TenantFilter) { + $ScheduledCommand.Parameters['TenantFilter'] = $task.Tenant + } + $Batch.Add($ScheduledCommand) + } + } else { + # Handle single tenant + if ((Get-Command $task.Command).Parameters.TenantFilter) { + $ScheduledCommand.Parameters['TenantFilter'] = $task.Tenant + } + $Batch.Add($ScheduledCommand) + } + } catch { + $errorMessage = $_.Exception.Message + + $null = Update-AzDataTableEntity -Force @Table -Entity @{ + PartitionKey = $task.PartitionKey + RowKey = $task.RowKey + Results = "$errorMessage" + ExecutedTime = "$currentUnixTime" + TaskState = 'Failed' + } + Write-LogMessage -API 'Scheduler_UserTasks' -tenant $tenant -message "Failed to execute task $($task.Name): $errorMessage" -sev Error + } + } + } + + Write-Information 'Batching tasks for execution...' + Write-Information "Total tasks to process: $($Batch.Count)" + + if (($Batch | Measure-Object).Count -gt 0) { + # Group commands by type and apply rate limits + $CommandGroups = $Batch | Group-Object -Property Command + $ProcessedBatches = [System.Collections.Generic.List[object]]::new() + + foreach ($CommandGroup in $CommandGroups) { + $CommandName = $CommandGroup.Name + $Commands = [System.Collections.Generic.List[object]]::new($CommandGroup.Group) + + # Get rate limit for this command (default to 100 if not found) + $MaxItemsPerBatch = if ($RateLimitLookup.ContainsKey($CommandName)) { + $RateLimitLookup[$CommandName] + } else { + 100 + } + + # Split into batches based on rate limit + while ($Commands.Count -gt 0) { + $BatchSize = [Math]::Min($Commands.Count, $MaxItemsPerBatch) + $CommandBatch = [System.Collections.Generic.List[object]]::new() + + for ($i = 0; $i -lt $BatchSize; $i++) { + $CommandBatch.Add($Commands[0]) + $Commands.RemoveAt(0) + } + + $ProcessedBatches.Add($CommandBatch) + } + } + + # Process each batch separately + foreach ($ProcessedBatch in $ProcessedBatches) { + Write-Information "Processing batch with $($ProcessedBatch.Count) tasks..." + Write-Information 'Tasks by command:' + $ProcessedBatch | Group-Object -Property Command | ForEach-Object { + Write-Information " - $($_.Name): $($_.Count)" + } + + # Create queue entry for each batch + $Queue = New-CippQueueEntry -Name "Scheduled Tasks - Batch #$($ProcessedBatches.IndexOf($ProcessedBatch) + 1) of $($ProcessedBatches.Count)" + $QueueId = $Queue.RowKey + $BatchWithQueue = $ProcessedBatch | Select-Object *, @{Name = 'QueueId'; Expression = { $QueueId } }, @{Name = 'QueueName'; Expression = { '{0} - {1}' -f $_.TaskInfo.Name, ($_.TaskInfo.Tenant -ne 'AllTenants' ? $_.TaskInfo.Tenant : $_.Parameters.TenantFilter) } } + + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'UserTaskOrchestrator' + Batch = @($BatchWithQueue) + SkipLog = $true + } + + if ($PSCmdlet.ShouldProcess('Start-UserTasksOrchestrator', 'Starting User Tasks Orchestrator')) { + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 10 -Compress) + } + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-WebhookOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-WebhookOrchestrator.ps1 new file mode 100644 index 000000000000..1ba797d3e10d --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-WebhookOrchestrator.ps1 @@ -0,0 +1,40 @@ +function Start-WebhookOrchestrator { + <# + .SYNOPSIS + Start the Webhook Orchestrator + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + try { + $webhookTable = Get-CIPPTable -tablename webhookTable + $Webhooks = Get-CIPPAzDataTableEntity @webhookTable -Property PartitionKey, RowKey + if (($Webhooks | Measure-Object).Count -eq 0) { + Write-Information 'No webhook subscriptions found. Exiting.' + return + } + + $WebhookIncomingTable = Get-CIPPTable -TableName WebhookIncoming + $WebhookIncoming = Get-CIPPAzDataTableEntity @WebhookIncomingTable -Property PartitionKey, RowKey + if (($WebhookIncoming | Measure-Object).Count -eq 0) { + Write-Information 'No webhook incoming found. Exiting.' + return + } + + Write-Information 'Processing webhooks' + + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'WebhookOrchestrator' + QueueFunction = @{ + FunctionName = 'GetPendingWebhooks' + } + SkipLog = $true + } + if ($PSCmdlet.ShouldProcess('Start-WebhookOrchestrator', 'Starting Webhook Orchestrator')) { + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + + } + } catch { + Write-LogMessage -API 'Webhooks' -message 'Error processing webhooks' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information ( 'Webhook error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 new file mode 100644 index 000000000000..ed00a0292aa1 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BackupRetentionCleanup.ps1 @@ -0,0 +1,164 @@ +function Start-BackupRetentionCleanup { + <# + .SYNOPSIS + Start the Backup Retention Cleanup Timer + .DESCRIPTION + This function cleans up old CIPP and Tenant backups based on the retention policy + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + try { + # Get retention settings + $ConfigTable = Get-CippTable -tablename Config + $Filter = "PartitionKey eq 'BackupRetention' and RowKey eq 'Settings'" + $RetentionSettings = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + + # Default to 30 days if not set + $RetentionDays = if ($RetentionSettings.RetentionDays) { + [int]$RetentionSettings.RetentionDays + } else { + 30 + } + + # Ensure minimum retention of 7 days + if ($RetentionDays -lt 7) { + $RetentionDays = 7 + } + + Write-Host "Starting backup cleanup with retention of $RetentionDays days" + + # Calculate cutoff date + $CutoffDate = (Get-Date).AddDays(-$RetentionDays).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + + $DeletedCounts = [System.Collections.Generic.List[int]]::new() + + # Clean up CIPP Backups + if ($PSCmdlet.ShouldProcess('CIPPBackup', 'Cleaning up old backups')) { + $CIPPBackupTable = Get-CippTable -tablename 'CIPPBackup' + $CutoffFilter = "PartitionKey eq 'CIPPBackup' and Timestamp lt datetime'$CutoffDate'" + + # Delete blob files + $BlobFilter = "$CutoffFilter and BackupIsBlob eq true" + $BlobBackups = Get-AzDataTableEntity @CIPPBackupTable -Filter $BlobFilter -Property @('PartitionKey', 'RowKey', 'Backup') + + $BlobDeletedCount = 0 + if ($BlobBackups) { + foreach ($Backup in $BlobBackups) { + if ($Backup.Backup) { + try { + $BlobPath = $Backup.Backup + # Extract container/blob path from URL + if ($BlobPath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $BlobPath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $BlobPath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($BlobPath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $BlobPath = ($BlobPath -split '.blob.core.windows.net/', 2)[-1] + } + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $BlobPath -Method 'DELETE' -ConnectionString $ConnectionString + $BlobDeletedCount++ + Write-Host "Deleted blob: $BlobPath" + } catch { + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to delete blob $($Backup.Backup): $($_.Exception.Message)" -Sev 'Warning' + } + } + } + # Delete blob table entities + Remove-AzDataTableEntity @CIPPBackupTable -Entity $BlobBackups -Force + } + + # Delete table-only backups (no blobs) + # Fetch all old entries and filter out blob entries client-side (null check is unreliable in filters) + $AllOldBackups = Get-AzDataTableEntity @CIPPBackupTable -Filter $CutoffFilter -Property @('PartitionKey', 'RowKey', 'ETag', 'BackupIsBlob') + $TableBackups = $AllOldBackups | Where-Object { $_.BackupIsBlob -ne $true } + + $TableDeletedCount = 0 + if ($TableBackups) { + Remove-AzDataTableEntity @CIPPBackupTable -Entity $TableBackups -Force + $TableDeletedCount = ($TableBackups | Measure-Object).Count + } + + $TotalDeleted = $BlobDeletedCount + $TableDeletedCount + if ($TotalDeleted -gt 0) { + $DeletedCounts.Add($TotalDeleted) + Write-LogMessage -API 'BackupRetentionCleanup' -message "Deleted $TotalDeleted old CIPP backups ($BlobDeletedCount blobs, $TableDeletedCount table entries)" -Sev 'Info' + Write-Host "Deleted $TotalDeleted old CIPP backups" + } else { + Write-Host 'No old CIPP backups found' + } + } + + # Clean up Scheduled/Tenant Backups + if ($PSCmdlet.ShouldProcess('ScheduledBackup', 'Cleaning up old backups')) { + $ScheduledBackupTable = Get-CippTable -tablename 'ScheduledBackup' + $CutoffFilter = "PartitionKey eq 'ScheduledBackup' and Timestamp lt datetime'$CutoffDate'" + + # Delete blob files + $BlobFilter = "$CutoffFilter and BackupIsBlob eq true" + $BlobBackups = Get-AzDataTableEntity @ScheduledBackupTable -Filter $BlobFilter -Property @('PartitionKey', 'RowKey', 'Backup') + + $BlobDeletedCount = 0 + if ($BlobBackups) { + foreach ($Backup in $BlobBackups) { + if ($Backup.Backup) { + try { + $BlobPath = $Backup.Backup + # Extract container/blob path from URL + if ($BlobPath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $BlobPath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $BlobPath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($BlobPath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $BlobPath = ($BlobPath -split '.blob.core.windows.net/', 2)[-1] + } + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $BlobPath -Method 'DELETE' -ConnectionString $ConnectionString + $BlobDeletedCount++ + Write-Host "Deleted blob: $BlobPath" + } catch { + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to delete blob $($Backup.Backup): $($_.Exception.Message)" -Sev 'Warning' + } + } + } + # Delete blob table entities + Remove-AzDataTableEntity @ScheduledBackupTable -Entity $BlobBackups -Force + } + + # Delete table-only backups (no blobs) + # Fetch all old entries and filter out blob entries client-side (null check is unreliable in filters) + $AllOldBackups = Get-AzDataTableEntity @ScheduledBackupTable -Filter $CutoffFilter -Property @('PartitionKey', 'RowKey', 'ETag', 'BackupIsBlob') + $TableBackups = $AllOldBackups | Where-Object { $_.BackupIsBlob -ne $true } + + $TableDeletedCount = 0 + if ($TableBackups) { + Remove-AzDataTableEntity @ScheduledBackupTable -Entity $TableBackups -Force + $TableDeletedCount = ($TableBackups | Measure-Object).Count + } + + $TotalDeleted = $BlobDeletedCount + $TableDeletedCount + if ($TotalDeleted -gt 0) { + $DeletedCounts.Add($TotalDeleted) + Write-LogMessage -API 'BackupRetentionCleanup' -message "Deleted $TotalDeleted old tenant backups ($BlobDeletedCount blobs, $TableDeletedCount table entries)" -Sev 'Info' + Write-Host "Deleted $TotalDeleted old tenant backups" + } else { + Write-Host 'No old tenant backups found' + } + } + + $TotalDeleted = ($DeletedCounts | Measure-Object -Sum).Sum + Write-LogMessage -API 'BackupRetentionCleanup' -message "Backup cleanup completed. Total backups deleted: $TotalDeleted (retention: $RetentionDays days)" -Sev 'Info' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'BackupRetentionCleanup' -message "Failed to run backup cleanup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BillingTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BillingTimer.ps1 new file mode 100644 index 000000000000..99500af4ed9f --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-BillingTimer.ps1 @@ -0,0 +1,30 @@ +function Start-BillingTimer { + <# + .SYNOPSIS + Start the Billing Timer + .DESCRIPTION + This function starts the Billing Timner + .FUNCTIONALITY + Entrypoint + #> + + [CmdletBinding(SupportsShouldProcess = $true)] + param() + try { + Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message 'Starting billing processing.' -sev Info + + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 + foreach ($ConfigItem in $Configuration.psobject.properties.name) { + switch ($ConfigItem) { + 'Gradient' { + If ($Configuration.Gradient.enabled -and $Configuration.Gradient.BillingEnabled) { + New-GradientServiceSyncRun + } + } + } + } + } catch { + Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message "Could not start billing processing $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPGraphSubscriptionRenewalTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPGraphSubscriptionRenewalTimer.ps1 new file mode 100644 index 000000000000..70aac093b08e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPGraphSubscriptionRenewalTimer.ps1 @@ -0,0 +1,12 @@ +function Start-CIPPGraphSubscriptionRenewalTimer { + <# + .SYNOPSIS + Start the Graph Subscription Renewal Timer + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + if ($PSCmdlet.ShouldProcess('Start-CIPPGraphSubscriptionRenewalTimer', 'Starting Graph Subscription Renewal Timer')) { + Invoke-CippGraphWebhookRenewal + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 new file mode 100644 index 000000000000..4e34dc09f102 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPProcessorQueue.ps1 @@ -0,0 +1,59 @@ +function Start-CIPPProcessorQueue { + <# + .SYNOPSIS + Starts a specified function on the processor node + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + $QueueTable = Get-CIPPTable -tablename 'ProcessorQueue' + $QueueItems = Get-CIPPAzDataTableEntity @QueueTable -Filter "PartitionKey eq 'Function'" + + foreach ($QueueItem in $QueueItems) { + $FunctionName = $QueueItem.FunctionName ?? $QueueItem.RowKey + if ($PSCmdlet.ShouldProcess("Processing function $($FunctionName)")) { + Write-Information "Running queued function $($FunctionName)" + if ($QueueItem.Parameters) { + try { + $Parameters = $QueueItem.Parameters | ConvertFrom-Json -AsHashtable + } catch { + $Parameters = @{} + } + } else { + $Parameters = @{} + } + if (Get-Command -Name $FunctionName -ErrorAction SilentlyContinue) { + try { + # Prepare telemetry metadata + $metadata = @{ + FunctionName = $FunctionName + TriggerType = 'ProcessorQueue' + QueueRowKey = $QueueItem.RowKey + } + + # Add parameters info if available + if ($Parameters.Count -gt 0) { + $metadata['ParameterCount'] = $Parameters.Count + # Add common parameters + if ($Parameters.Tenant) { + $metadata['Tenant'] = $Parameters.Tenant + } + if ($Parameters.TenantFilter) { + $metadata['Tenant'] = $Parameters.TenantFilter + } + } + + # Wrap function execution with telemetry + Measure-CippTask -TaskName $FunctionName -Metadata $metadata -Script { + Invoke-Command -ScriptBlock { & $FunctionName @Parameters } + } + } catch { + Write-Warning "Failed to run function $($FunctionName). Error: $($_.Exception.Message)" + } + } else { + Write-Warning "Function $($FunctionName) not found" + } + Remove-AzDataTableEntity -Force @QueueTable -Entity $QueueItem + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 new file mode 100644 index 000000000000..e4060f1c0a37 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 @@ -0,0 +1,54 @@ +function Start-CIPPStatsTimer { + <# + .SYNOPSIS + Start the CIPP Stats Timer + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + #These stats are sent to a central server to help us understand how many tenants are using the product, and how many are using the latest version, this information allows the CIPP team to make decisions about what features to support, and what features to deprecate. + #We will never ship any data that is related to your instance, all we care about is the number of tenants, and the version of the API you are running, and if you completed setup. + + if ($PSCmdlet.ShouldProcess('Start-CIPPStatsTimer', 'Starting CIPP Stats Timer')) { + if ($env:ApplicationID -ne 'LongApplicationID') { + $SetupComplete = $true + } + $TenantCount = (Get-Tenants -IncludeAll).count + + + $ModuleBase = Get-Module CIPPCore | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $ModuleBase).Parent.Parent.FullName + + $APIVersion = Get-Content "$CIPPRoot\version_latest.txt" | Out-String + $Table = Get-CIPPTable -TableName Extensionsconfig + try { + $RawExt = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 -ErrorAction Stop + } catch { + $RawExt = @{} + } + + $SendingObject = [PSCustomObject]@{ + rgid = $env:WEBSITE_SITE_NAME + SetupComplete = $SetupComplete + RunningVersionAPI = $APIVersion.trim() + CountOfTotalTenants = $tenantcount + uid = $env:TenantID + CIPPAPI = $RawExt.CIPPAPI.Enabled + Hudu = $RawExt.Hudu.Enabled + Sherweb = $RawExt.Sherweb.Enabled + Gradient = $RawExt.Gradient.Enabled + NinjaOne = $RawExt.NinjaOne.Enabled + haloPSA = $RawExt.haloPSA.Enabled + HIBP = $RawExt.HIBP.Enabled + PWPush = $RawExt.PWPush.Enabled + CFZTNA = $RawExt.CFZTNA.Enabled + GitHub = $RawExt.GitHub.Enabled + } | ConvertTo-Json + try { + Invoke-RestMethod -Uri 'https://management.cipp.app/api/stats' -Method POST -Body $SendingObject -ContentType 'application/json' + } catch { + $rand = Get-Random -Minimum 0.5 -Maximum 5.5 + Start-Sleep -Seconds $rand + Invoke-RestMethod -Uri 'https://management.cipp.app/api/stats' -Method POST -Body $SendingObject -ContentType 'application/json' + } + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 new file mode 100644 index 000000000000..5987188d5a10 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 @@ -0,0 +1,96 @@ +function Start-DurableCleanup { + <# + .SYNOPSIS + Start the durable cleanup process. + + .DESCRIPTION + Look for orchestrators running for more than the specified time and terminate them. Also, clear any queues that have items for that function app. + + .PARAMETER MaxDuration + The maximum duration an orchestrator can run before being terminated. + + .FUNCTIONALITY + Internal + #> + + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [int]$MaxDuration = 86400 + ) + + $WarningPreference = 'SilentlyContinue' + $TargetTime = (Get-Date).ToUniversalTime().AddSeconds(-$MaxDuration) + $Context = New-AzDataTableContext -ConnectionString $env:AzureWebJobsStorage + $InstancesTables = Get-AzDataTable -Context $Context | Where-Object { $_ -match 'Instances' } + + $CleanupCount = 0 + $QueueCount = 0 + + $FunctionsWithLongRunningOrchestrators = [System.Collections.Generic.List[object]]::new() + $NonDeterministicOrchestrators = [System.Collections.Generic.List[object]]::new() + + foreach ($Table in $InstancesTables) { + $Table = Get-CippTable -TableName $Table + $FunctionName = $Table.TableName -replace 'Instances', '' + $Orchestrators = Get-CIPPAzDataTableEntity @Table -Filter "RuntimeStatus eq 'Running'" | Select-Object * -ExcludeProperty Input + $Queues = Get-CIPPAzStorageQueue -Name ('{0}*' -f $FunctionName) | Select-Object -Property Name, ApproximateMessageCount, QueueClient + $LongRunningOrchestrators = $Orchestrators | Where-Object { $_.CreatedTime.DateTime -lt $TargetTime } + + if ($LongRunningOrchestrators.Count -gt 0) { + $FunctionsWithLongRunningOrchestrators.Add(@{'FunctionName' = $FunctionName }) + foreach ($Orchestrator in $LongRunningOrchestrators) { + $CreatedTime = [DateTime]::SpecifyKind($Orchestrator.CreatedTime.DateTime, [DateTimeKind]::Utc) + $TimeSpan = New-TimeSpan -Start $CreatedTime -End (Get-Date).ToUniversalTime() + $RunningDuration = [math]::Round($TimeSpan.TotalMinutes, 2) + Write-Information "Orchestrator: $($Orchestrator.PartitionKey), created: $CreatedTime, running for: $RunningDuration minutes" + if ($PSCmdlet.ShouldProcess($_.PartitionKey, 'Terminate Orchestrator')) { + $Orchestrator = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Orchestrator.PartitionKey)'" + $Orchestrator.RuntimeStatus = 'Failed' + if ($Orchestrator.PSObject.Properties.Name -contains 'CustomStatus') { + $Orchestrator.CustomStatus = "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" + } else { + $Orchestrator | Add-Member -MemberType NoteProperty -Name CustomStatus -Value "Terminated by Durable Cleanup - Exceeded max duration of $MaxDuration seconds" + } + Update-AzDataTableEntity @Table -Entity $Orchestrator + $CleanupCount++ + } + } + } + + $NonDeterministicOrchestrators = $Orchestrators | Where-Object { $_.Output -match 'Non-Deterministic workflow detected' } + if ($NonDeterministicOrchestrators.Count -gt 0) { + $NonDeterministicOrchestrators.Add(@{'FunctionName' = $FunctionName }) + foreach ($Orchestrator in $NonDeterministicOrchestrators) { + Write-Information "Orchestrator: $($Orchestrator.PartitionKey) is Non-Deterministic" + if ($PSCmdlet.ShouldProcess($_.PartitionKey, 'Terminate Orchestrator')) { + $Orchestrator = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Orchestrator.PartitionKey)'" + $Orchestrator.RuntimeStatus = 'Failed' + if ($Orchestrator.PSObject.Properties.Name -contains 'CustomStatus') { + $Orchestrator.CustomStatus = 'Terminated by Durable Cleanup - Non-Deterministic workflow detected' + } else { + $Orchestrator | Add-Member -MemberType NoteProperty -Name CustomStatus -Value 'Terminated by Durable Cleanup - Non-Deterministic workflow detected' + } + Update-AzDataTableEntity @Table -Entity $Orchestrator + $CleanupCount++ + } + } + } + + if (($LongRunningOrchestrators.Count -gt 0 -or $NonDeterministicOrchestrators.Count -gt 0) -and $Queues.ApproximateMessageCount -gt 0) { + $RunningQueues = $Queues | Where-Object { $_.ApproximateMessageCount -gt 0 } + foreach ($Queue in $RunningQueues) { + Write-Information "- Removing queue: $($Queue.Name), message count: $($Queue.ApproximateMessageCount)" + if ($PSCmdlet.ShouldProcess($Queue.Name, 'Clear Queue')) { + $Queue.QueueClient.ClearMessagesAsync() | Out-Null + } + $QueueCount++ + } + } + } + + if ($CleanupCount -gt 0 -or $QueueCount -gt 0) { + Write-LogMessage -api 'Durable Cleanup' -message "$CleanupCount orchestrators were terminated. $QueueCount queues were cleared." -sev 'Info' -LogData $FunctionsWithLongRunningOrchestrators + } + + Write-Information "Durable cleanup complete. $CleanupCount orchestrators were terminated. $QueueCount queues were cleared." +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-TableCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-TableCleanup.ps1 new file mode 100644 index 000000000000..4989829ba7a9 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-TableCleanup.ps1 @@ -0,0 +1,73 @@ +function Start-TableCleanup { + <# + .SYNOPSIS + Start the Table Cleanup Timer + #> + param() + + $Batch = @( + @{ + FunctionName = 'TableCleanupTask' + Type = 'CleanupRule' + TableName = 'webhookTable' + DataTableProps = @{ + Property = @('PartitionKey', 'RowKey', 'ETag', 'Resource') + First = 1000 + } + Where = "`$_.Resource -match '^Audit'" + } + @{ + FunctionName = 'TableCleanupTask' + Type = 'CleanupRule' + TableName = 'AuditLogSearches' + DataTableProps = @{ + Filter = "PartitionKey eq 'Search' and Timestamp lt datetime'$((Get-Date).AddHours(-12).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ'))'" + First = 10000 + Property = @('PartitionKey', 'RowKey', 'ETag') + } + } + @{ + FunctionName = 'TableCleanupTask' + Type = 'CleanupRule' + TableName = 'CippFunctionStats' + DataTableProps = @{ + Filter = "PartitionKey eq 'Durable' and Timestamp lt datetime'$((Get-Date).AddDays(-7).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ'))'" + First = 10000 + Property = @('PartitionKey', 'RowKey', 'ETag') + } + } + @{ + FunctionName = 'TableCleanupTask' + Type = 'CleanupRule' + TableName = 'CippQueue' + DataTableProps = @{ + Filter = "PartitionKey eq 'CippQueue' and Timestamp lt datetime'$((Get-Date).AddDays(-7).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ'))'" + First = 10000 + Property = @('PartitionKey', 'RowKey', 'ETag') + } + } + @{ + FunctionName = 'TableCleanupTask' + Type = 'CleanupRule' + TableName = 'CippQueueTasks' + DataTableProps = @{ + Filter = "PartitionKey eq 'Task' and Timestamp lt datetime'$((Get-Date).AddDays(-7).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ'))'" + First = 10000 + Property = @('PartitionKey', 'RowKey', 'ETag') + } + } + @{ + FunctionName = 'TableCleanupTask' + Type = 'DeleteTable' + Tables = @('knownlocationdb', 'CacheExtensionSync', 'ExtensionSync') + } + ) + + $InputObject = @{ + Batch = @($Batch) + OrchestratorName = 'TableCleanup' + SkipLog = $true + } + + Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 new file mode 100644 index 000000000000..416318bb4438 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 @@ -0,0 +1,125 @@ +function Start-UpdateTokensTimer { + <# + .SYNOPSIS + Start the Update Tokens Timer + #> + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '')] + [CmdletBinding(SupportsShouldProcess = $true)] + param() + if ($PSCmdlet.ShouldProcess('Start-UpdateTokensTimer', 'Starting Update Tokens Timer')) { + Write-Information 'Starting Update Tokens Timer' + Write-Information "Getting new refresh token for $($env:TenantId)" + # Get the current universal time in the default string format. + $currentUTCtime = (Get-Date).ToUniversalTime() + try { + $Refreshtoken = (Get-GraphToken -ReturnRefresh $true).Refresh_token + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $Table = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + if ($Secret) { + $Secret.RefreshToken = $Refreshtoken + Add-AzDataTableEntity @Table -Entity $Secret -Force + } else { + Write-LogMessage -API 'Update Tokens' -message 'Could not update refresh token. Will try again in 7 days.' -sev 'CRITICAL' + } + } else { + $KV = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + if ($Refreshtoken) { + Set-CippKeyVaultSecret -VaultName $KV -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) + } else { + Write-LogMessage -API 'Update Tokens' -message 'Could not update refresh token. Will try again in 7 days.' -sev 'CRITICAL' + } + } + } catch { + Write-Warning "Error updating refresh token $($_.Exception.Message)." + Write-Information ($_.InvocationInfo.PositionMessage) + Write-LogMessage -API 'Update Tokens' -message 'Error updating refresh token, see Log Data for details. Will try again in 7 days.' -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + } + + # Check application secret expiration for $env:ApplicationId and generate a new application secret if expiration is within 30 days. + try { + $AppId = $env:ApplicationID + $PasswordCredentials = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appId='$AppId')?`$select=id,passwordCredentials" -NoAuthCheck $true -AsApp $true -ErrorAction Stop + # sort by latest expiration date and get the first one + $LastPasswordCredential = $PasswordCredentials.passwordCredentials | Sort-Object -Property endDateTime -Descending | Select-Object -First 1 + if ($LastPasswordCredential.endDateTime -lt (Get-Date).AddDays(30).ToUniversalTime()) { + Write-Information "Application secret for $AppId is expiring soon. Generating a new application secret." + $AppSecret = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/applications/$($PasswordCredentials.id)/addPassword" -Body '{"passwordCredential":{"displayName":"UpdateTokens"}}' -NoAuthCheck $true -AsApp $true -ErrorAction Stop + Write-Information "New application secret generated for $AppId. Expiration date: $($AppSecret.endDateTime)." + } else { + Write-Information "Application secret for $AppId is valid until $($LastPasswordCredential.endDateTime). No need to generate a new application secret." + } + + if ($AppSecret) { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $Table = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + $Secret.ApplicationSecret = $AppSecret.secretText + Add-AzDataTableEntity @Table -Entity $Secret -Force + } else { + Set-CippKeyVaultSecret -VaultName $KV -Name 'ApplicationSecret' -SecretValue (ConvertTo-SecureString -String $AppSecret.secretText -AsPlainText -Force) + } + Write-LogMessage -API 'Update Tokens' -message "New application secret generated for $AppId. Expiration date: $($AppSecret.endDateTime)." -sev 'INFO' + } + + # Clean up expired application secrets + $ExpiredSecrets = $PasswordCredentials.passwordCredentials | Where-Object { $_.endDateTime -lt (Get-Date).ToUniversalTime() } + if ($ExpiredSecrets.Count -gt 0) { + Write-Information "Found $($ExpiredSecrets.Count) expired application secrets for $AppId. Removing them." + foreach ($Secret in $ExpiredSecrets) { + try { + New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/applications/$($PasswordCredentials.id)/removePassword" -Body "{`"keyId`":`"$($Secret.keyId)`"}" -NoAuthCheck $true -AsApp $true -ErrorAction Stop + Write-Information "Removed expired application secret with keyId $($Secret.keyId)." + } catch { + Write-LogMessage -API 'Update Tokens' -message "Error removing expired application secret with keyId $($Secret.keyId), see Log Data for details." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + } + } + } else { + Write-Information "No expired application secrets found for $AppId." + } + } catch { + Write-Warning "Error updating application secret $($_.Exception.Message)." + Write-Information ($_.InvocationInfo.PositionMessage) + Write-LogMessage -API 'Update Tokens' -message 'Error updating application secret, will try again in 7 days' -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + } + + # Get new refresh token for each direct added tenant + $TenantList = Get-Tenants -IncludeAll | Where-Object { $_.Excluded -eq $false -and $_.delegatedPrivilegeStatus -eq 'directTenant' } + if ($TenantList.Count -eq 0) { + Write-Information 'No direct tenants found for refresh token update.' + } else { + Write-Information "Found $($TenantList.Count) direct tenant(s) for refresh token update." + foreach ($Tenant in $TenantList) { + try { + Write-Information "Updating refresh token for tenant $($Tenant.displayName) - $($Tenant.customerId)" + $Refreshtoken = (Get-GraphToken -ReturnRefresh $true -TenantId $Tenant.customerId).Refresh_token + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $Table = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + if ($Secret) { + $name = $Tenant.customerId -replace '-', '_' + $Secret | Add-Member -MemberType NoteProperty -Name $name -Value $Refreshtoken -Force + Add-AzDataTableEntity @Table -Entity $Secret -Force + } else { + Write-Warning "Could not update refresh token for tenant $($Tenant.displayName) ($($Tenant.customerId))." + Write-LogMessage -API 'Update Tokens' -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -message "Could not update refresh token for tenant $($Tenant.displayName). Will try again in 7 days." -sev 'CRITICAL' + } + } else { + if ($Refreshtoken) { + $name = $Tenant.customerId + Set-CippKeyVaultSecret -VaultName $KV -Name $name -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) + } else { + Write-Warning "Could not update refresh token for tenant $($Tenant.displayName) ($($Tenant.customerId))." + Write-LogMessage -API 'Update Tokens' -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -message "Could not update refresh token for tenant $($Tenant.displayName). Will try again in 7 days." -sev 'CRITICAL' + } + } + } catch { + Write-LogMessage -API 'Update Tokens' -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -message "Error updating refresh token for tenant $($Tenant.displayName), see Log Data for details. Will try again in 7 days." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + } + } + } + + # Write an information log with the current time. + Write-Information "UpdateTokens completed: $currentUTCtime" + } +} diff --git a/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 new file mode 100644 index 000000000000..a2a6553fb250 --- /dev/null +++ b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 @@ -0,0 +1,363 @@ +function Get-CIPPTenantAlignment { + <# + .SYNOPSIS + Gets tenant alignment data for standards compliance + .DESCRIPTION + This function calculates tenant alignment percentages against standards templates. + It processes all standard templates and compares them against tenant standards data. + .PARAMETER TenantFilter + The tenant to get alignment data for. If not specified, processes all tenants. + .PARAMETER TemplateId + Optional specific template GUID to check alignment for. If not specified, processes all templates. + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPTenantAlignment -TenantFilter "contoso.onmicrosoft.com" + .EXAMPLE + Get-CIPPTenantAlignment -TenantFilter "contoso.onmicrosoft.com" -TemplateId "12345-67890-abcdef" + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$TemplateId + ) + $TemplateTable = Get-CippTable -tablename 'templates' + $TemplateFilter = "PartitionKey eq 'StandardsTemplateV2'" + $TenantGroups = Get-TenantGroups + + try { + # Get all standard templates + $Templates = (Get-CIPPAzDataTableEntity @TemplateTable -Filter $TemplateFilter) | ForEach-Object { + $JSON = $_.JSON + try { + $RowKey = $_.RowKey + $Data = $JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop + } catch { + Write-Warning "$($RowKey) standard could not be loaded: $($_.Exception.Message)" + return + } + if ($Data) { + $Data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.GUID -Force + $Data + } + } + + if (-not $Templates) { + Write-Warning 'No templates found matching the criteria' + return @() + } + + # Get standards comparison data + $StandardsTable = Get-CippTable -TableName 'CippStandardsReports' + #this if statement is to bring down performance when running scheduled checks, we have to revisit this to a better query due to the extreme size this can get. + if ($TenantFilter) { + $filter = "PartitionKey eq '$TenantFilter'" + } else { + $filter = "PartitionKey ne 'StandardReport' and PartitionKey ne ''" + } + $AllStandards = Get-CIPPAzDataTableEntity @StandardsTable -Filter $filter + + # Filter by tenant if specified + $Standards = if ($TenantFilter) { + $AllStandards + } else { + $Tenants = Get-Tenants -IncludeErrors + $AllStandards | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } + } + $TagTemplates = Get-CIPPAzDataTableEntity @TemplateTable + # Build tenant standards data structure + $tenantData = @{} + foreach ($Standard in $Standards) { + $FieldName = $Standard.RowKey + $FieldValue = $Standard.Value + $Tenant = $Standard.PartitionKey + + # Process field value + if ($FieldValue -is [System.Boolean]) { + $FieldValue = [bool]$FieldValue + } else { + try { + $FieldValue = ConvertFrom-Json -Depth 5 -InputObject $FieldValue -ErrorAction Stop + } catch { + $FieldValue = [string]$FieldValue + } + } + + if ($Tenant -and -not $tenantData.ContainsKey($Tenant)) { + $tenantData[$Tenant] = @{} + } + $tenantData[$Tenant][$FieldName] = @{ + Value = $FieldValue + LastRefresh = $Standard.TimeStamp.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + LicenseAvailable = $Standard.LicenseAvailable + CurrentValue = $Standard.CurrentValue + ExpectedValue = $Standard.ExpectedValue + } + } + $TenantStandards = $tenantData + + $Results = [System.Collections.Generic.List[object]]::new() + + # Process each template against all tenants + foreach ($Template in $Templates) { + $TemplateStandards = $Template.standards + if (-not $TemplateStandards) { + continue + } + + # Check if template has tenant assignments (scope) + $TemplateAssignedTenants = @() + $AppliestoAllTenants = $false + + if ($Template.tenantFilter -and $Template.tenantFilter.Count -gt 0) { + # Extract tenant values from the tenantFilter array + $TenantValues = [System.Collections.Generic.List[string]]::new() + foreach ($filterItem in $Template.tenantFilter) { + if ($filterItem.type -eq 'group') { + # Look up group members by Id (GUID in the value field) + $GroupMembers = $TenantGroups | Where-Object { $_.Id -eq $filterItem.value } + if ($GroupMembers -and $GroupMembers.Members) { + foreach ($member in $GroupMembers.Members.defaultDomainName) { + $TenantValues.Add($member) + } + } + } else { + $TenantValues.Add($filterItem.value) + } + } +` + if ($TenantValues -contains 'AllTenants') { + $AppliestoAllTenants = $true + } elseif ($TenantValues.Count -gt 0) { + $TemplateAssignedTenants = @($TenantValues) + } else { + # Filter was specified but resolved to no tenants (empty group) - skip this template + continue + } + } else { + $AppliestoAllTenants = $true + } + + $StandardsData = foreach ($StandardKey in $TemplateStandards.PSObject.Properties.Name) { + $StandardConfig = $TemplateStandards.$StandardKey + $StandardId = "standards.$StandardKey" + + $Actions = @() + if ($StandardConfig.action) { + $Actions = $StandardConfig.action + } elseif ($StandardConfig.Action) { + $Actions = $StandardConfig.Action + } elseif ($StandardConfig.PSObject.Properties['action']) { + $Actions = $StandardConfig.PSObject.Properties['action'].Value + } + + $ReportingEnabled = $false + if ($Actions -and $Actions.Count -gt 0) { + $ReportingEnabled = ($Actions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + } + + # Handle Intune templates specially + if ($StandardKey -eq 'IntuneTemplate' -and $StandardConfig -is [array]) { + foreach ($IntuneTemplate in $StandardConfig) { + if ($IntuneTemplate.TemplateList.value) { + $IntuneStandardId = "standards.IntuneTemplate.$($IntuneTemplate.TemplateList.value)" + $IntuneActions = if ($IntuneTemplate.action) { $IntuneTemplate.action } else { @() } + $IntuneReportingEnabled = ($IntuneActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + [PSCustomObject]@{ + StandardId = $IntuneStandardId + ReportingEnabled = $IntuneReportingEnabled + } + } + + if ($IntuneTemplate.'TemplateList-Tags') { + foreach ($Tag in $IntuneTemplate.'TemplateList-Tags') { + Write-Host "Processing Intune Tag: $($Tag.value)" + $IntuneActions = if ($IntuneTemplate.action) { $IntuneTemplate.action } else { @() } + $IntuneReportingEnabled = ($IntuneActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + $TagTemplate = $TagTemplates | Where-Object -Property package -EQ $Tag.value + $TagTemplate | ForEach-Object { + $TagStandardId = "standards.IntuneTemplate.$($_.GUID)" + [PSCustomObject]@{ + StandardId = $TagStandardId + ReportingEnabled = $IntuneReportingEnabled + } + } + } + } + } + } + # Handle Conditional Access templates specially + elseif ($StandardKey -eq 'ConditionalAccessTemplate' -and $StandardConfig -is [array]) { + foreach ($CATemplate in $StandardConfig) { + if ($CATemplate.TemplateList.value) { + $CAStandardId = "standards.ConditionalAccessTemplate.$($CATemplate.TemplateList.value)" + $CAActions = if ($CATemplate.action) { $CATemplate.action } else { @() } + $CAReportingEnabled = ($CAActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + + [PSCustomObject]@{ + StandardId = $CAStandardId + ReportingEnabled = $CAReportingEnabled + } + } + } + } else { + [PSCustomObject]@{ + StandardId = $StandardId + ReportingEnabled = $ReportingEnabled + } + } + } + + $AllStandards = $StandardsData.StandardId + $AllStandardsArray = @($AllStandards) + $ReportingDisabledStandards = ($StandardsData | Where-Object { -not $_.ReportingEnabled }).StandardId + $ReportingDisabledSet = [System.Collections.Generic.HashSet[string]]::new() + foreach ($item in $ReportingDisabledStandards) { [void]$ReportingDisabledSet.Add($item) } + $TemplateAssignedTenantsSet = if ($TemplateAssignedTenants.Count -gt 0) { + $set = [System.Collections.Generic.HashSet[string]]::new() + foreach ($item in $TemplateAssignedTenants) { [void]$set.Add($item) } + $set + } else { $null } + + foreach ($TenantName in $TenantStandards.Keys) { + # Check tenant scope with HashSet and cache tenant data + if (-not $AppliestoAllTenants) { + if ($TemplateAssignedTenantsSet -and -not $TemplateAssignedTenantsSet.Contains($TenantName)) { + continue + } + } + + $AllCount = $AllStandards.Count + $LatestDataCollection = $null + # Cache hashtable lookup + $CurrentTenantStandards = $TenantStandards[$TenantName] + + # Pre-allocate list with capacity + $ComparisonResults = [System.Collections.Generic.List[object]]::new($AllStandardsArray.Count) + + # Use for loop instead of foreach + for ($i = 0; $i -lt $AllStandardsArray.Count; $i++) { + $StandardKey = $AllStandardsArray[$i] + + # Use HashSet for Contains + $IsReportingDisabled = $ReportingDisabledSet.Contains($StandardKey) + # Use cached tenant data + + $HasStandard = $StandardKey -and $CurrentTenantStandards.ContainsKey($StandardKey) + + if ($HasStandard) { + $StandardObject = $CurrentTenantStandards[$StandardKey] + $Value = $StandardObject.Value + + if ($StandardObject.LastRefresh) { + $RefreshTime = [DateTime]::Parse($StandardObject.LastRefresh) + if (-not $LatestDataCollection -or $RefreshTime -gt $LatestDataCollection) { + $LatestDataCollection = $RefreshTime + } + } + + $IsCompliant = ($Value -eq $true) -or ($StandardObject.CurrentValue -and $StandardObject.CurrentValue -eq $StandardObject.ExpectedValue) + $IsLicenseMissing = ($Value -is [string] -and $Value -like 'License Missing:*') + + $ComplianceStatus = if ($IsReportingDisabled) { + 'Reporting Disabled' + } elseif ($IsCompliant) { + 'Compliant' + } elseif ($IsLicenseMissing) { + 'License Missing' + } else { + 'Non-Compliant' + } + + $StandardValueJson = $Value | ConvertTo-Json -Depth 5 -Compress + + $ComparisonResults.Add([PSCustomObject]@{ + StandardName = $StandardKey + Compliant = $IsCompliant + StandardValue = $StandardValueJson + ComplianceStatus = $ComplianceStatus + ReportingDisabled = $IsReportingDisabled + LicenseAvailable = $StandardObject.LicenseAvailable + CurrentValue = $StandardObject.CurrentValue + ExpectedValue = $StandardObject.ExpectedValue + }) + } else { + $ComplianceStatus = if ($IsReportingDisabled) { + 'Reporting Disabled' + } else { + 'Non-Compliant' + } + + $ComparisonResults.Add([PSCustomObject]@{ + StandardName = $StandardKey + Compliant = $false + StandardValue = 'NOT FOUND' + ComplianceStatus = $ComplianceStatus + ReportingDisabled = $IsReportingDisabled + LicenseAvailable = $null + CurrentValue = $null + ExpectedValue = $null + }) + } + } + + # Replace Where-Object with direct counting + $CompliantStandards = 0 + $NonCompliantStandards = 0 + $LicenseMissingStandards = 0 + $ReportingDisabledStandardsCount = 0 + + foreach ($item in $ComparisonResults) { + if ($item.ComplianceStatus -eq 'Compliant') { $CompliantStandards++ } + elseif ($item.ComplianceStatus -eq 'Non-Compliant') { $NonCompliantStandards++ } + elseif ($item.ComplianceStatus -eq 'License Missing') { $LicenseMissingStandards++ } + if ($item.ReportingDisabled) { $ReportingDisabledStandardsCount++ } + } + + $AlignmentPercentage = if (($AllCount - $ReportingDisabledStandardsCount) -gt 0) { + [Math]::Round(($CompliantStandards / ($AllCount - $ReportingDisabledStandardsCount)) * 100) + } else { + 0 + } + + $LicenseMissingPercentage = if ($AllCount -gt 0) { + [Math]::Round(($LicenseMissingStandards / $AllCount) * 100) + } else { + 0 + } + + $Result = [PSCustomObject]@{ + TenantFilter = $TenantName + StandardName = $Template.templateName + StandardId = $Template.GUID + standardType = $Template.type + standardSettings = $Template.Standards + driftAlertEmail = $Template.driftAlertEmail + driftAlertWebhook = $Template.driftAlertWebhook + driftAlertDisableEmail = $Template.driftAlertDisableEmail + AlignmentScore = $AlignmentPercentage + LicenseMissingPercentage = $LicenseMissingPercentage + CombinedScore = $AlignmentPercentage + $LicenseMissingPercentage + CompliantStandards = $CompliantStandards + NonCompliantStandards = $NonCompliantStandards + LicenseMissingStandards = $LicenseMissingStandards + TotalStandards = $AllCount + ReportingDisabledCount = $ReportingDisabledStandardsCount + LatestDataCollection = if ($LatestDataCollection) { $LatestDataCollection } else { $null } + ComparisonDetails = $ComparisonResults + } + + $Results.Add($Result) + } + } + + return $Results + } catch { + Write-Error "Error getting tenant alignment data: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + throw + } +} diff --git a/Modules/CIPPCore/Public/Functions/Get-CIPPURLName.ps1 b/Modules/CIPPCore/Public/Functions/Get-CIPPURLName.ps1 new file mode 100644 index 000000000000..c9136b55435e --- /dev/null +++ b/Modules/CIPPCore/Public/Functions/Get-CIPPURLName.ps1 @@ -0,0 +1,155 @@ +function Get-CIPPURLName { + <# + .SYNOPSIS + Gets the correct Microsoft Graph URL based on the OData type of a template + .DESCRIPTION + This function examines the @odata.type property of a JSON template object and returns + the appropriate full Microsoft Graph API URL for that resource type. + .PARAMETER Template + The template object containing the @odata.type property to analyze + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPURLName -Template $MyTemplate + .EXAMPLE + $Template | Get-CIPPURLName + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true, ValueFromPipeline = $true)] + [PSCustomObject]$Template + ) + + # Extract the OData type from the template + $ODataType = $Template.'@odata.type' + if ($Template.urlName) { return $Template.urlName } + + if (-not $ODataType) { + Write-Warning 'No @odata.type property found in template' + return $null + } + + # Determine the full Microsoft Graph URL based on the OData type + $URLName = switch -wildcard ($ODataType) { + # Device Compliance Policies + '*CompliancePolicy' { + 'deviceManagement/deviceCompliancePolicies' + } + '*deviceCompliancePolicy' { + 'deviceManagement/deviceCompliancePolicies' + } + + # Managed App Policies (App Protection) + '*ManagedAppProtection' { + 'deviceAppManagement/managedAppPolicies' + } + '*managedAppPolicies' { + 'deviceAppManagement/managedAppPolicies' + } + '*managedAppPolicy' { + 'deviceAppManagement/managedAppPolicies' + } + '*appProtectionPolicy' { + 'deviceAppManagement/managedAppPolicies' + } + + # Configuration Policies (Settings Catalog) + '*configurationPolicies' { + 'deviceManagement/configurationPolicies' + } + '*deviceManagementConfigurationPolicy' { + 'deviceManagement/configurationPolicies' + } + + # Windows Driver Update Profiles + '*windowsDriverUpdateProfiles' { + 'deviceManagement/windowsDriverUpdateProfiles' + } + '*windowsDriverUpdateProfile' { + 'deviceManagement/windowsDriverUpdateProfiles' + } + + # Device Configurations + '*deviceConfigurations' { + 'deviceManagement/deviceConfigurations' + } + '*deviceConfiguration' { + 'deviceManagement/deviceConfigurations' + } + + # Group Policy Configurations (Administrative Templates) + '*groupPolicyConfigurations' { + 'deviceManagement/groupPolicyConfigurations' + } + '*groupPolicyConfiguration' { + 'deviceManagement/groupPolicyConfigurations' + } + + # Conditional Access Policies + '*conditionalAccessPolicy' { + 'identity/conditionalAccess/policies' + } + + # Device Enrollment Configurations + '*deviceEnrollmentConfiguration' { + 'deviceManagement/deviceEnrollmentConfigurations' + } + '*enrollmentConfiguration' { + 'deviceManagement/deviceEnrollmentConfigurations' + } + + # Mobile App Configurations + '*mobileAppConfiguration' { + 'deviceAppManagement/mobileAppConfigurations' + } + '*appConfiguration' { + 'deviceAppManagement/mobileAppConfigurations' + } + + # Windows Feature Update Profiles + '*windowsFeatureUpdateProfile' { + 'deviceManagement/windowsFeatureUpdateProfiles' + } + + # Device Health Scripts (Remediation Scripts) + '*deviceHealthScript' { + 'deviceManagement/deviceHealthScripts' + } + + # Device Management Scripts (PowerShell Scripts) + '*deviceManagementScript' { + 'deviceManagement/deviceManagementScripts' + } + + # Mobile Applications + '*mobileApp' { + 'deviceAppManagement/mobileApps' + } + '*winGetApp' { + 'deviceAppManagement/mobileApps' + } + '*officeSuiteApp' { + 'deviceAppManagement/mobileApps' + } + + # Named Locations + '*namedLocation' { + 'identity/conditionalAccess/namedLocations' + } + '*ipNamedLocation' { + 'identity/conditionalAccess/namedLocations' + } + '*countryNamedLocation' { + 'identity/conditionalAccess/namedLocations' + } + + # Default fallback + default { + Write-Warning "Unknown OData type: $ODataType" + $null + } + } + + return $URLName +} + diff --git a/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 b/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 new file mode 100644 index 000000000000..851822afe56c --- /dev/null +++ b/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 @@ -0,0 +1,65 @@ +function Test-CIPPStandardLicense { + <# + .SYNOPSIS + Tests if a tenant has the required license capabilities for a specific standard + .DESCRIPTION + This function checks if a tenant has the necessary license capabilities to run a specific standard. + If the license is missing, it logs an error and sets the comparison field appropriately. + .PARAMETER StandardName + The name of the standard to check licensing for + .PARAMETER TenantFilter + The tenant to check licensing for + .PARAMETER RequiredCapabilities + Array of required capabilities for the standard + .FUNCTIONALITY + Internal + .EXAMPLE + Test-CIPPStandardLicense -StandardName "ConditionalAccessTemplate" -TenantFilter "contoso.onmicrosoft.com" -RequiredCapabilities @('AADPremiumService') + .EXAMPLE + Test-CIPPStandardLicense -StandardName "SafeLinksPolicy" -TenantFilter "contoso.onmicrosoft.com" -RequiredCapabilities @('DEFENDER_FOR_OFFICE_365_PLAN_1', 'DEFENDER_FOR_OFFICE_365_PLAN_2') + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$StandardName, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string[]]$RequiredCapabilities, + + [Parameter(Mandatory = $false)] + [switch]$SkipLog + ) + + try { + $TenantCapabilities = Get-CIPPTenantCapabilities -TenantFilter $TenantFilter + + $Capabilities = foreach ($Capability in $RequiredCapabilities) { + Write-Verbose "Checking capability: $Capability" + if ($TenantCapabilities.$Capability -eq $true) { + $Capability + } + } + + if ($Capabilities.Count -le 0) { + if (!$SkipLog.IsPresent) { + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Tenant does not have the required capability to run standard $StandardName`: The tenant needs one of the following service plans: $($RequiredCapabilities -join ',')" -sev Info + Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -LicenseAvailable $false -FieldValue "License Missing: This tenant is not licensed for the following capabilities: $($RequiredCapabilities -join ',')" -Tenant $TenantFilter + Write-Verbose "Tenant does not have the required capability to run standard $StandardName - $($RequiredCapabilities -join ','). Exiting" + } + return $false + } + Write-Verbose "Tenant has the required capabilities for standard $StandardName" + return $true + } catch { + if (!$SkipLog.IsPresent) { + # Sanitize exception message to prevent JSON parsing issues - remove characters that could interfere with JSON detection + $SanitizedMessage = $_.Exception.Message -replace '[{}\[\]]', '' + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Error checking license capabilities for standard $StandardName`: $SanitizedMessage" -sev Info + Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -FieldValue "License Missing: Error checking license capabilities - $SanitizedMessage" -Tenant $TenantFilter + } + return $false + } +} diff --git a/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 b/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 new file mode 100644 index 000000000000..a1eee795710c --- /dev/null +++ b/Modules/CIPPCore/Public/Get-ApplicationInsightsQuery.ps1 @@ -0,0 +1,50 @@ +function Get-ApplicationInsightsQuery { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Query + ) + + if (-not $env:APPLICATIONINSIGHTS_CONNECTION_STRING -and -not $env:APPINSIGHTS_INSTRUMENTATIONKEY) { + throw 'Application Insights is not enabled for this instance.' + } + + $SubscriptionId = Get-CIPPAzFunctionAppSubId + if ($env:WEBSITE_SKU -ne 'FlexConsumption' -and $Owner -match '^(?[^+]+)\+(?[^-]+(?:-[^-]+)*?)(?:-[^-]+webspace(?:-Linux)?)?$') { + $RGName = $Matches.RGName + } else { + $RGName = $env:WEBSITE_RESOURCE_GROUP + } + $AppInsightsName = $env:WEBSITE_SITE_NAME + + $Body = @{ + 'query' = $Query + 'options' = @{'truncationMaxSize' = 67108864 } + 'maxRows' = 1001 + 'workspaceFilters' = @{'regions' = @() } + } | ConvertTo-Json -Depth 10 -Compress + + $AppInsightsQuery = 'subscriptions/{0}/resourceGroups/{1}/providers/microsoft.insights/components/{2}/query' -f $SubscriptionId, $RGName, $AppInsightsName + + $resource = 'https://api.loganalytics.io' + $Token = Get-CIPPAzIdentityToken -ResourceUrl $resource + + $headerParams = @{'Authorization' = "Bearer $Token" } + $logAnalyticsBaseURI = 'https://api.loganalytics.io/v1' + + $result = Invoke-RestMethod -Method POST -Uri "$($logAnalyticsBaseURI)/$AppInsightsQuery" -Headers $headerParams -Body $Body -ContentType 'application/json' -ErrorAction Stop + + # Format Result to PSObject + $headerRow = $null + $headerRow = $result.tables.columns | Select-Object name + $columnsCount = $headerRow.Count + $logData = foreach ($row in $result.tables.rows) { + $data = New-Object PSObject + for ($i = 0; $i -lt $columnsCount; $i++) { + $data | Add-Member -MemberType NoteProperty -Name $headerRow[$i].name -Value $row[$i] + } + $data + } + + return $logData +} diff --git a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 new file mode 100644 index 000000000000..1aecba454413 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 @@ -0,0 +1,63 @@ + +function Get-CIPPAuthentication { + [CmdletBinding()] + param ( + $APIName = 'Get Keyvault Authentication' + ) + $Variables = @('ApplicationID', 'ApplicationSecret', 'TenantID', 'RefreshToken') + + try { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $Table = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-AzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + if (!$Secret) { + throw 'Development variables not set' + } + foreach ($Var in $Variables) { + if ($Secret.$Var) { + Set-Item -Path env:$Var -Value $Secret.$Var -Force -ErrorAction Stop + } + } + Write-Host "Got secrets from dev storage. ApplicationID: $env:ApplicationID" + #Get list of tenants that have 'directTenant' set to true + #get directtenants directly from table, avoid get-tenants due to performance issues + $TenantsTable = Get-CippTable -tablename 'Tenants' + $Filter = "PartitionKey eq 'Tenants' and delegatedPrivilegeStatus eq 'directTenant'" + $tenants = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter + if ($tenants) { + $tenants | ForEach-Object { + $secretname = $_.customerId -replace '-', '_' + if ($secret.$secretname) { + $name = $_.customerId + Set-Item -Path env:$name -Value $secret.$secretname -Force + } + } + } + } else { + $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + #Get list of tenants that have 'directTenant' set to true + $TenantsTable = Get-CippTable -tablename 'Tenants' + $Filter = "PartitionKey eq 'Tenants' and delegatedPrivilegeStatus eq 'directTenant'" + $tenants = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter + if ($tenants) { + $tenants | ForEach-Object { + $name = $_.customerId + $secret = Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $name -AsPlainText -ErrorAction Stop + if ($secret) { + Set-Item -Path env:$name -Value $secret -Force + } + } + } + $Variables | ForEach-Object { + Set-Item -Path env:$_ -Value (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $_ -AsPlainText -ErrorAction Stop) -Force + } + } + $env:SetFromProfile = $true + Write-LogMessage -message 'Reloaded authentication data from KeyVault' -Sev 'debug' -API 'CIPP Authentication' + + return $true + } catch { + Write-LogMessage -message 'Could not retrieve keys from Keyvault' -Sev 'CRITICAL' -API 'CIPP Authentication' -LogData (Get-CippException -Exception $_) + return $false + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPAzDatatableEntity.ps1 b/Modules/CIPPCore/Public/Get-CIPPAzDatatableEntity.ps1 new file mode 100644 index 000000000000..cd1fbce70771 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPAzDatatableEntity.ps1 @@ -0,0 +1,98 @@ +function Get-CIPPAzDataTableEntity { + [CmdletBinding()] + param( + $Context, + $Filter, + $Property, + $First, + $Skip, + $Sort, + $Count + ) + + $Results = Get-AzDataTableEntity @PSBoundParameters + $mergedResults = @{} + $rootEntities = @{} # Keyed by "$PartitionKey|$RowKey" + + foreach ($entity in $Results) { + $partitionKey = $entity.PartitionKey + $rowKey = $entity.RowKey + $hasOriginalId = $entity.PSObject.Properties.Match('OriginalEntityId') -and $entity.OriginalEntityId + + if (-not $mergedResults.ContainsKey($partitionKey)) { + $mergedResults[$partitionKey] = @{} + } + + if (-not $hasOriginalId) { + # It's a standalone root row + $rootEntities["$partitionKey|$rowKey"] = $true + $mergedResults[$partitionKey][$rowKey] = @{ + Entity = $entity + Parts = [System.Collections.Generic.List[object]]::new() + } + continue + } + + # It's a part of something else + $entityId = $entity.OriginalEntityId + + # Check if this entity's target has a "real" base + if ($rootEntities.ContainsKey("$partitionKey|$entityId")) { + # Root row exists → skip merging this part + continue + } + + # Merge it as a part + if (-not $mergedResults[$partitionKey].ContainsKey($entityId)) { + $mergedResults[$partitionKey][$entityId] = @{ + Parts = [System.Collections.Generic.List[object]]::new() + } + } + $mergedResults[$partitionKey][$entityId]['Parts'].Add($entity) + } + + $finalResults = [System.Collections.Generic.List[object]]::new() + foreach ($partitionKey in $mergedResults.Keys) { + foreach ($entityId in $mergedResults[$partitionKey].Keys) { + $entityData = $mergedResults[$partitionKey][$entityId] + if (($entityData.Parts | Measure-Object).Count -gt 0) { + $fullEntity = [PSCustomObject]@{} + $parts = $entityData.Parts | Sort-Object PartIndex + foreach ($part in $parts) { + foreach ($key in $part.PSObject.Properties.Name) { + if ($key -notin @('OriginalEntityId', 'PartIndex', 'PartitionKey', 'RowKey', 'Timestamp')) { + if ($fullEntity.PSObject.Properties[$key]) { + $fullEntity | Add-Member -MemberType NoteProperty -Name $key -Value ($fullEntity.$key + $part.$key) -Force + } else { + $fullEntity | Add-Member -MemberType NoteProperty -Name $key -Value $part.$key + } + } + } + } + $fullEntity | Add-Member -MemberType NoteProperty -Name 'PartitionKey' -Value $parts[0].PartitionKey -Force + $fullEntity | Add-Member -MemberType NoteProperty -Name 'RowKey' -Value $entityId -Force + $fullEntity | Add-Member -MemberType NoteProperty -Name 'Timestamp' -Value $parts[0].Timestamp -Force + $finalResults.Add($fullEntity) + } else { + $FinalResults.Add($entityData.Entity) + } + } + } + + foreach ($entity in $finalResults) { + if ($entity.SplitOverProps) { + $splitInfoList = $entity.SplitOverProps | ConvertFrom-Json + foreach ($splitInfo in $splitInfoList) { + $mergedData = [string]::Join('', ($splitInfo.SplitHeaders | ForEach-Object { $entity.$_ })) + $entity | Add-Member -NotePropertyName $splitInfo.OriginalHeader -NotePropertyValue $mergedData -Force + $propsToRemove = $splitInfo.SplitHeaders + foreach ($prop in $propsToRemove) { + $entity.PSObject.Properties.Remove($prop) + } + } + $entity.PSObject.Properties.Remove('SplitOverProps') + } + } + + return $finalResults +} diff --git a/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 b/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 new file mode 100644 index 000000000000..4ce3d174b30a --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 @@ -0,0 +1,94 @@ +function Get-CIPPBackup { + [CmdletBinding()] + param ( + [string]$Type = 'CIPP', + [string]$TenantFilter, + [string]$Name, + [switch]$NameOnly + ) + + Write-Host "Getting backup for $Type with TenantFilter $TenantFilter" + $Table = Get-CippTable -tablename "$($Type)Backup" + + $Conditions = [System.Collections.Generic.List[string]]::new() + $Conditions.Add("PartitionKey eq '$($Type)Backup'") + + if ($Name) { + $Conditions.Add("RowKey eq '$($Name)' or OriginalEntityId eq '$($Name)'") + } + + if ($NameOnly.IsPresent) { + if ($Type -ne 'Scheduled') { + $Table.Property = @('RowKey', 'Timestamp', 'BackupIsBlob') + } else { + $Table.Property = @('RowKey', 'Timestamp') + } + } + + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Conditions.Add("RowKey gt '$($TenantFilter)' and RowKey lt '$($TenantFilter)~'") + } + + $Filter = $Conditions -join ' and ' + $Table.Filter = $Filter + $Info = Get-CIPPAzDataTableEntity @Table + + if ($NameOnly.IsPresent) { + $Info = $Info | Where-Object { $_.RowKey -notmatch '-part[0-9]+$' } + } else { + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + $Info = $Info | Where-Object { $_.TenantFilter -eq $TenantFilter } + } + } + + # Augment results with blob-link awareness and fetch blob content when needed + if (-not $NameOnly.IsPresent -and $Info) { + foreach ($item in $Info) { + $isBlobLink = $false + $blobPath = $null + if ($null -ne $item.PSObject.Properties['Backup']) { + $b = $item.Backup + if ($b -is [string] -and ($b -like 'https://*' -or $b -like 'http://*')) { + $isBlobLink = $true + $blobPath = $b + + # Fetch the actual backup content from blob storage + try { + # Extract container/blob path from URL + $resourcePath = $blobPath + if ($resourcePath -like '*:10000/*') { + # Azurite format: http://host:10000/devstoreaccount1/container/blob + $parts = $resourcePath -split ':10000/' + if ($parts.Count -gt 1) { + # Remove account name to get container/blob + $resourcePath = ($parts[1] -split '/', 2)[-1] + } + } elseif ($resourcePath -like '*blob.core.windows.net/*') { + # Azure Storage format: https://account.blob.core.windows.net/container/blob + $resourcePath = ($resourcePath -split '.blob.core.windows.net/', 2)[-1] + } + + # Download the blob content + $ConnectionString = $env:AzureWebJobsStorage + $blobResponse = New-CIPPAzStorageRequest -Service 'blob' -Resource $resourcePath -Method 'GET' -ConnectionString $ConnectionString + + if ($blobResponse -and $blobResponse.Bytes) { + $backupContent = [System.Text.Encoding]::UTF8.GetString($blobResponse.Bytes) + # Replace the URL with the actual backup content + $item.Backup = $backupContent + Write-Verbose "Successfully retrieved backup content from blob storage for $($item.RowKey)" + } else { + Write-Warning "Failed to retrieve backup content from blob storage for $($item.RowKey)" + } + } catch { + Write-Warning "Error fetching backup from blob storage: $($_.Exception.Message)" + # Leave the URL in place if we can't fetch the content + } + } + } + $item | Add-Member -NotePropertyName 'BackupIsBlobLink' -NotePropertyValue $isBlobLink -Force + $item | Add-Member -NotePropertyName 'BlobResourcePath' -NotePropertyValue $blobPath -Force + } + } + return $Info +} diff --git a/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 b/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 new file mode 100644 index 000000000000..0b159e9807be --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPBitlockerKey.ps1 @@ -0,0 +1,62 @@ +<# +.SYNOPSIS + Retrieves BitLocker recovery keys for a managed device from Microsoft Graph API. + +.DESCRIPTION + This function queries the Microsoft Graph API to retrieve all BitLocker recovery keys + associated with a specified device. It handles cases where no key is found and provides appropriate + logging and error handling. +.PARAMETER Device + The ID of the device for which to retrieve BitLocker recovery keys. + +.PARAMETER TenantFilter + The tenant ID to filter the request to the appropriate tenant. + +.PARAMETER APIName + The name of the API operation for logging purposes. Defaults to 'Get BitLocker key'. + +.PARAMETER Headers + The headers to include in the request, typically used for authentication and logging. + +.OUTPUTS + Array of PSCustomObject with properties: + - resultText: Formatted string containing the key ID and key value + - copyField: The raw key value + - state: Status of the operation ('success') + + Or a string message if no keys are found. +#> + +function Get-CIPPBitLockerKey { + [CmdletBinding()] + param ( + $Device, + $TenantFilter, + $APIName = 'Get BitLocker key', + $Headers + ) + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/informationProtection/bitlocker/recoveryKeys?`$filter=deviceId eq '$($Device)'" -tenantid $TenantFilter | + ForEach-Object { + $BitLockerKeyObject = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/informationProtection/bitlocker/recoveryKeys/$($_.id)?`$select=key" -tenantid $TenantFilter) + [PSCustomObject]@{ + resultText = "Id: $($_.id) Key: $($BitLockerKeyObject.key)" + copyField = $BitLockerKeyObject.key + state = 'success' + } + } + + if ($GraphRequest.Count -eq 0) { + Write-LogMessage -headers $Headers -API $APIName -message "No BitLocker recovery keys found for $($Device)" -Sev Info -tenant $TenantFilter + return "No BitLocker recovery keys found for $($Device)" + } + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved BitLocker recovery keys for $($Device)" -Sev Info -tenant $TenantFilter + return $GraphRequest + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Could not retrieve BitLocker recovery key for $($Device). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 b/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 new file mode 100644 index 000000000000..13924c6794d0 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPDbItem.ps1 @@ -0,0 +1,69 @@ +function Get-CIPPDbItem { + <# + .SYNOPSIS + Get specific items from the CIPP Reporting database + + .DESCRIPTION + Retrieves items from the CippReportingDB table using partition key (tenant) and type + + .PARAMETER TenantFilter + The tenant domain or GUID (partition key) + + .PARAMETER Type + The type of data to retrieve (used in row key filter) + + .PARAMETER CountsOnly + If specified, returns all count rows for the tenant + + .EXAMPLE + Get-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -Type 'Groups' + + .EXAMPLE + Get-CIPPDbItem -TenantFilter 'contoso.onmicrosoft.com' -CountsOnly + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$Type, + + [Parameter(Mandatory = $false)] + [switch]$CountsOnly + ) + + try { + $Table = Get-CippTable -tablename 'CippReportingDB' + + if ($CountsOnly) { + $Conditions = [System.Collections.Generic.List[string]]::new() + if ($TenantFilter -ne 'allTenants') { + $Conditions.Add("PartitionKey eq '{0}'" -f $TenantFilter) + } + if ($Type) { + $Conditions.Add("RowKey ge '{0}-' and RowKey lt '{0}.'" -f $Type) + } + $Filter = [string]::Join(' and ', $Conditions) + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property 'PartitionKey', 'RowKey', 'DataCount', 'Timestamp' + $Results = $Results | Where-Object { $_.RowKey -like '*-Count' } | Select-Object PartitionKey, RowKey, DataCount, Timestamp + } else { + if (-not $Type) { + throw 'Type parameter is required when CountsOnly is not specified' + } + if ($TenantFilter -ne 'allTenants') { + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}.'" -f $TenantFilter, $Type + } else { + $Filter = "RowKey ge '{0}-' and RowKey lt '{0}.'" -f $Type + } + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter + } + + return $Results + + } catch { + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter -message "Failed to get items$(if ($Type) { " of type $Type" })$(if ($CountsOnly) { ' (counts only)' }): $($_.Exception.Message)" -sev Error + throw + } +} + diff --git a/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 b/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 new file mode 100644 index 000000000000..d201d8a5a41f --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPDomainAnalyser.ps1 @@ -0,0 +1,42 @@ +function Get-CIPPDomainAnalyser { + <# + .SYNOPSIS + Domain Analyser list + + .DESCRIPTION + This function returns a list of domain analyser results for the selected tenant filter + + .PARAMETER TenantFilter + Tenant to filter by, enter AllTenants to get all results + + .EXAMPLE + Get-CIPPDomainAnalyser -TenantFilter 'AllTenants' + #> + [CmdletBinding()] + param([string]$TenantFilter) + $DomainTable = Get-CIPPTable -Table 'Domains' + + # Get all the things + #Transform the tenantFilter to the GUID. + if ($TenantFilter -ne 'AllTenants' -and ![string]::IsNullOrEmpty($TenantFilter)) { + $TenantFilter = (Get-Tenants -TenantFilter $tenantFilter).customerId + $DomainTable.Filter = "TenantGUID eq '{0}'" -f $TenantFilter + } else { + $Tenants = Get-Tenants -IncludeErrors + } + $Domains = Get-CIPPAzDataTableEntity @DomainTable | Where-Object { $_.TenantGUID -in $Tenants.customerId -or $TenantFilter -eq $_.TenantGUID } + try { + # Extract json from table results + $Results = foreach ($DomainAnalyserResult in ($Domains).DomainAnalyser) { + try { + if (![string]::IsNullOrEmpty($DomainAnalyserResult)) { + $Object = $DomainAnalyserResult | ConvertFrom-Json -ErrorAction SilentlyContinue + $Object + } + } catch {} + } + } catch { + $Results = @() + } + return $Results +} diff --git a/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 new file mode 100644 index 000000000000..bca1388b5b65 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 @@ -0,0 +1,394 @@ +function Get-CIPPDrift { + <# + .SYNOPSIS + Gets comprehensive drift information for a tenant including standards compliance and policy deviations + .DESCRIPTION + This function collects drift information by executing Get-CIPPTenantAlignment and comparing + tenant policies against standards templates. It identifies both standards deviations and + extra policies not defined in templates. + .PARAMETER TenantFilter + The tenant to get drift data for + .PARAMETER TemplateId + Optional specific template GUID to check drift for. If not specified, processes all templates. + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPDrift -TenantFilter "contoso.onmicrosoft.com" + .EXAMPLE + Get-CIPPDrift -TenantFilter "contoso.onmicrosoft.com" -TemplateId "12345-67890-abcdef" + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$TemplateId, + + [Parameter(Mandatory = $false)] + [switch]$AllTenants + ) + + $IntuneCapable = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + $ConditionalAccessCapable = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_general' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + $IntuneTable = Get-CippTable -tablename 'templates' + + # Always load templates for display name resolution, even if tenant doesn't have licenses + $IntuneFilter = "PartitionKey eq 'IntuneTemplate'" + $RawIntuneTemplates = (Get-CIPPAzDataTableEntity @IntuneTable -Filter $IntuneFilter) + $AllIntuneTemplates = $RawIntuneTemplates | ForEach-Object { + try { + $JSONData = $_.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'displayName' -NotePropertyValue $JSONData.Displayname -Force + $data | Add-Member -NotePropertyName 'description' -NotePropertyValue $JSONData.Description -Force + $data | Add-Member -NotePropertyName 'Type' -NotePropertyValue $JSONData.Type -Force + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data + } catch { + # Skip invalid templates + } + } | Sort-Object -Property displayName + + # Load all CA templates + $CAFilter = "PartitionKey eq 'CATemplate'" + $RawCATemplates = (Get-CIPPAzDataTableEntity @IntuneTable -Filter $CAFilter) + $AllCATemplates = $RawCATemplates | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force + $data + } catch { + # Skip invalid templates + } + } | Sort-Object -Property displayName + + try { + $AlignmentData = Get-CIPPTenantAlignment -TenantFilter $TenantFilter -TemplateId $TemplateId | Where-Object -Property standardType -EQ 'drift' + + if (-not $AlignmentData) { + Write-Warning "No alignment data found for tenant $TenantFilter" + return @() + } + + # Get existing drift states from the tenantDrift table + $DriftTable = Get-CippTable -tablename 'tenantDrift' + $DriftFilter = "PartitionKey eq '$TenantFilter'" + $ExistingDriftStates = @{} + try { + $DriftEntities = Get-CIPPAzDataTableEntity @DriftTable -Filter $DriftFilter + foreach ($Entity in $DriftEntities) { + $ExistingDriftStates[$Entity.StandardName] = $Entity + } + } catch { + Write-Warning "Failed to get existing drift states: $($_.Exception.Message)" + } + + $Results = [System.Collections.Generic.List[object]]::new() + foreach ($Alignment in $AlignmentData) { + # Initialize deviation collections + $StandardsDeviations = [System.Collections.Generic.List[object]]::new() + $PolicyDeviations = [System.Collections.Generic.List[object]]::new() + + # Process standards compliance deviations + if ($Alignment.ComparisonDetails) { + foreach ($ComparisonItem in $Alignment.ComparisonDetails) { + if ($ComparisonItem.Compliant -ne $true) { + $Status = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { + $ExistingDriftStates[$ComparisonItem.StandardName].Status + } else { + 'New' + } + # Reset displayName and description for each deviation to prevent carryover from previous iterations + $displayName = $null + $standardDescription = $null + #if the $ComparisonItem.StandardName contains *IntuneTemplate*, then it's an Intune policy deviation, and we need to grab the correct displayname from the template table + if ($ComparisonItem.StandardName -like '*IntuneTemplate*') { + $CompareGuid = $ComparisonItem.StandardName.Split('.') | Select-Object -Last 1 + Write-Verbose "Extracted Intune GUID: $CompareGuid from $($ComparisonItem.StandardName)" + $Template = $AllIntuneTemplates | Where-Object { $_.GUID -eq "$CompareGuid" } + if ($Template) { + $displayName = $Template.displayName + $standardDescription = $Template.description + Write-Verbose "Found Intune template: $displayName" + } else { + Write-Warning "Intune template not found for GUID: $CompareGuid" + } + } + # Handle Conditional Access templates + if ($ComparisonItem.StandardName -like '*ConditionalAccessTemplate*') { + $CompareGuid = $ComparisonItem.StandardName.Split('.') | Select-Object -Last 1 + Write-Verbose "Extracted CA GUID: $CompareGuid from $($ComparisonItem.StandardName)" + $Template = $AllCATemplates | Where-Object { $_.GUID -eq "$CompareGuid" } + if ($Template) { + $displayName = $Template.displayName + $standardDescription = $Template.description + Write-Verbose "Found CA template: $displayName" + } else { + Write-Warning "CA template not found for GUID: $CompareGuid" + } + } + $reason = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { $ExistingDriftStates[$ComparisonItem.StandardName].Reason } + $User = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { $ExistingDriftStates[$ComparisonItem.StandardName].User } + $StandardsDeviations.Add([PSCustomObject]@{ + standardName = $ComparisonItem.StandardName + standardDisplayName = $displayName + standardDescription = $standardDescription + receivedValue = $ComparisonItem.StandardValue + state = 'current' + Status = $Status + Reason = $reason + lastChangedByUser = $User + LicenseAvailable = $ComparisonItem.LicenseAvailable + CurrentValue = $ComparisonItem.CurrentValue + ExpectedValue = $ComparisonItem.ExpectedValue + }) + } + } + } + + # Perform full policy collection + if ($IntuneCapable) { + # Always get live data when not in AllTenants mode + $IntuneRequests = @( + @{ + id = 'deviceAppManagement/managedAppPolicies' + url = 'deviceAppManagement/managedAppPolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/deviceCompliancePolicies' + url = 'deviceManagement/deviceCompliancePolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/groupPolicyConfigurations' + url = 'deviceManagement/groupPolicyConfigurations?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/deviceConfigurations' + url = 'deviceManagement/deviceConfigurations?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/configurationPolicies' + url = 'deviceManagement/configurationPolicies?$top=999' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsDriverUpdateProfiles' + url = 'deviceManagement/windowsDriverUpdateProfiles?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsFeatureUpdateProfiles' + url = 'deviceManagement/windowsFeatureUpdateProfiles?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsQualityUpdatePolicies' + url = 'deviceManagement/windowsQualityUpdatePolicies?$top=200' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsQualityUpdateProfiles' + url = 'deviceManagement/windowsQualityUpdateProfiles?$top=200' + method = 'GET' + } + ) + + $TenantIntunePolicies = [System.Collections.Generic.List[object]]::new() + + try { + $IntuneGraphRequest = New-GraphBulkRequest -Requests $IntuneRequests -tenantid $TenantFilter -asapp $true + + foreach ($Request in $IntuneGraphRequest) { + if ($Request.body.value) { + foreach ($Policy in $Request.body.value) { + $TenantIntunePolicies.Add([PSCustomObject]@{ + Type = $Request.id + Policy = $Policy + }) + } + } + } + } catch { + Write-Warning "Failed to get Intune policies: $($_.Exception.Message)" + } + } + # Get Conditional Access policies + if ($ConditionalAccessCapable) { + try { + $CARequests = @( + @{ + id = 'policies' + url = 'identity/conditionalAccess/policies?$top=999' + method = 'GET' + } + ) + $CAGraphRequest = New-GraphBulkRequest -Requests $CARequests -tenantid $TenantFilter -asapp $true + $TenantCAPolicies = ($CAGraphRequest | Where-Object { $_.id -eq 'policies' }).body.value + } catch { + Write-Warning "Failed to get Conditional Access policies: $($_.Exception.Message)" + $TenantCAPolicies = @() + } + } + + if ($Alignment.standardSettings) { + if ($Alignment.standardSettings.IntuneTemplate) { + $IntuneTemplateIds = [System.Collections.Generic.List[string]]::new() + foreach ($Template in $Alignment.standardSettings.IntuneTemplate) { + if ($Template.TemplateList.value) { + $IntuneTemplateIds.Add($Template.TemplateList.value) + } + if ($Template.'TemplateList-Tags'.rawData.templates) { + foreach ($TagTemplate in $Template.'TemplateList-Tags'.rawData.templates) { + $IntuneTemplateIds.Add($TagTemplate.GUID) + } + } + } + } + if ($Alignment.standardSettings.ConditionalAccessTemplate) { + $CATemplateIds = $Alignment.standardSettings.ConditionalAccessTemplate.TemplateList | ForEach-Object { $_.value } + } + } + + # Get actual CA templates from templates table + if ($CATemplateIds.Count -gt 0) { + try { + $TemplateCATemplates = $AllCATemplates | Where-Object { $_.GUID -in $CATemplateIds } + } catch { + Write-Warning "Failed to get CA templates: $($_.Exception.Message)" + } + } + + # Get actual Intune templates from templates table + if ($IntuneTemplateIds.Count -gt 0) { + try { + + $TemplateIntuneTemplates = $AllIntuneTemplates | Where-Object { $_.GUID -in $IntuneTemplateIds } + } catch { + Write-Warning "Failed to get Intune templates: $($_.Exception.Message)" + } + } + + # Check for extra Intune policies not in template + foreach ($TenantPolicy in $TenantIntunePolicies) { + $PolicyFound = $false + $tenantPolicy.policy | Add-Member -MemberType NoteProperty -Name 'URLName' -Value $TenantPolicy.Type -Force + $TenantPolicyName = if ($TenantPolicy.Policy.displayName) { $TenantPolicy.Policy.displayName } else { $TenantPolicy.Policy.name } + foreach ($TemplatePolicy in $TemplateIntuneTemplates) { + $TemplatePolicyName = if ($TemplatePolicy.displayName) { $TemplatePolicy.displayName } else { $TemplatePolicy.name } + + if ($TemplatePolicy.displayName -eq $TenantPolicy.Policy.displayName -or + $TemplatePolicy.name -eq $TenantPolicy.Policy.name -or + $TemplatePolicy.displayName -eq $TenantPolicy.Policy.name -or + $TemplatePolicy.name -eq $TenantPolicy.Policy.displayName) { + $PolicyFound = $true + break + } + } + + if (-not $PolicyFound) { + $PolicyKey = "IntuneTemplates.$($TenantPolicy.Policy.id)" + $Status = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { + $ExistingDriftStates[$PolicyKey].Status + } else { + 'New' + } + $reason = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].Reason } + $User = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].User } + $PolicyDeviation = [PSCustomObject]@{ + standardName = $PolicyKey + standardDisplayName = "Intune - $TenantPolicyName" + expectedValue = 'This policy only exists in the tenant, not in the template.' + receivedValue = ($TenantPolicy.Policy | ConvertTo-Json -Depth 10 -Compress) + state = 'current' + Status = $Status + Reason = $reason + lastChangedByUser = $User + } + $PolicyDeviations.Add($PolicyDeviation) + } + } + + # Check for extra Conditional Access policies not in template + foreach ($TenantCAPolicy in $TenantCAPolicies) { + $PolicyFound = $false + + foreach ($TemplateCAPolicy in $TemplateCATemplates) { + if ($TemplateCAPolicy.displayName -eq $TenantCAPolicy.displayName) { + $PolicyFound = $true + break + } + } + + if (-not $PolicyFound) { + $PolicyKey = "ConditionalAccessTemplates.$($TenantCAPolicy.id)" + $Status = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { + $ExistingDriftStates[$PolicyKey].Status + } else { + 'New' + } + $reason = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].Reason } + $User = if ($ExistingDriftStates.ContainsKey($PolicyKey)) { $ExistingDriftStates[$PolicyKey].User } + $PolicyDeviation = [PSCustomObject]@{ + standardName = $PolicyKey + standardDisplayName = "Conditional Access - $($TenantCAPolicy.displayName)" + expectedValue = 'This policy only exists in the tenant, not in the template.' + receivedValue = $TenantCAPolicy | Out-String + state = 'current' + Status = $Status + Reason = $reason + lastChangedByUser = $User + } + $PolicyDeviations.Add($PolicyDeviation) + } + } + + + # Combine all deviations and filter by status + $AllDeviations = [System.Collections.Generic.List[object]]::new() + $AllDeviations.AddRange($StandardsDeviations) + $AllDeviations.AddRange($PolicyDeviations) + + # Filter deviations by status for counting + $NewDeviations = $AllDeviations | Where-Object { $_.Status -eq 'New' } + $AcceptedDeviations = $AllDeviations | Where-Object { $_.Status -eq 'Accepted' } + $DeniedDeviations = $AllDeviations | Where-Object { $_.Status -like 'Denied*' } + $CustomerSpecificDeviations = $AllDeviations | Where-Object { $_.Status -eq 'CustomerSpecific' } + + # Current deviations are New + Denied (not accepted or customer specific) + $CurrentDeviations = $AllDeviations | Where-Object { $_.Status -in @('New', 'Denied') } + + $Result = [PSCustomObject]@{ + tenantFilter = $TenantFilter + standardName = $Alignment.StandardName + standardId = $Alignment.StandardId + alignmentScore = $Alignment.AlignmentScore + acceptedDeviationsCount = $AcceptedDeviations.Count + currentDeviationsCount = $CurrentDeviations.Count + deniedDeviationsCount = $DeniedDeviations.Count + customerSpecificDeviationsCount = $CustomerSpecificDeviations.Count + newDeviationsCount = $NewDeviations.Count + alignedCount = $Alignment.CompliantStandards + currentDeviations = @($CurrentDeviations) + acceptedDeviations = @($AcceptedDeviations) + customerSpecificDeviations = @($CustomerSpecificDeviations) + deniedDeviations = @($DeniedDeviations) + allDeviations = @($AllDeviations) + latestDataCollection = $Alignment.LatestDataCollection + driftSettings = $AlignmentData + } + + $Results.Add($Result) + } + + return @($Results) + + } catch { + Write-Error "Error getting drift data: $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 b/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 new file mode 100644 index 000000000000..bc1933d3bc2f --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPFileVaultKey.ps1 @@ -0,0 +1,63 @@ +<# +.SYNOPSIS + Retrieves the FileVault recovery key for a managed device from Microsoft Graph API. + +.DESCRIPTION + This function makes a request to the Microsoft Graph API to retrieve the FileVault recovery key + for a specified managed device. It handles cases where no key is found and provides appropriate + logging and error handling. + +.PARAMETER Device + The GUID of the managed device for which to retrieve the FileVault key. + +.PARAMETER TenantFilter + The tenant ID to filter the request to the appropriate tenant. + +.PARAMETER APIName + The name of the API operation for logging purposes. Defaults to 'Get FileVault key'. + +.PARAMETER Headers + The headers to include in the request, typically used for authentication and logging. + +.OUTPUTS + PSCustomObject with properties: + - resultText: Formatted string containing the key + - copyField: The raw key value + - state: Status of the operation ('success') + + Or a string message if no key is found. + +#> + +function Get-CIPPFileVaultKey { + [CmdletBinding()] + param ( + $Device, + $TenantFilter, + $APIName = 'Get FileVault key', + $Headers + ) + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$Device/getFileVaultKey" -tenantid $TenantFilter + + if ([string]::IsNullOrEmpty($GraphRequest)) { + $Result = "No FileVault recovery key found for $($Device)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Info -tenant $TenantFilter + return $Result + } + + Write-LogMessage -headers $Headers -API $APIName -message "Retrieved FileVault recovery key for $($Device)" -Sev Info -tenant $TenantFilter + return [PSCustomObject]@{ + resultText = "Key: $($GraphRequest)" + copyField = $GraphRequest + state = 'success' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Could not retrieve FileVault recovery key for $($Device). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } + +} diff --git a/Modules/CIPPCore/Public/Get-CIPPGeoIPLocation.ps1 b/Modules/CIPPCore/Public/Get-CIPPGeoIPLocation.ps1 new file mode 100644 index 000000000000..92595a0f580d --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPGeoIPLocation.ps1 @@ -0,0 +1,23 @@ +function Get-CIPPGeoIPLocation { + [CmdletBinding()] + param ( + [string]$IP + ) + + $CacheGeoIPTable = Get-CippTable -tablename 'cachegeoip' + $30DaysAgo = (Get-Date).AddDays(-30).ToString('yyyy-MM-ddTHH:mm:ssZ') + $Filter = "PartitionKey eq 'IP' and RowKey eq '$IP' and Timestamp ge datetime'$30DaysAgo'" + $GeoIP = Get-CippAzDataTableEntity @CacheGeoIPTable -Filter $Filter + if ($GeoIP) { + return ($GeoIP.Data | ConvertFrom-Json) + } + $location = Invoke-RestMethod "https://geoipdb.azurewebsites.net/api/GetIPInfo?IP=$IP" + if ($location.status -eq 'FAIL') { throw "Could not get location for $IP" } + $CacheGeo = @{ + PartitionKey = 'IP' + RowKey = $IP + Data = [string]($location | ConvertTo-Json -Compress) + } + Add-AzDataTableEntity @CacheGeoIPTable -Entity $CacheGeo -Force + return $location +} diff --git a/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 new file mode 100644 index 000000000000..ba0cbda8cfaa --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 @@ -0,0 +1,441 @@ +function Get-CIPPIntunePolicy { + param ( + [Parameter(Mandatory = $true)] + $TemplateType, + $DisplayName, + $PolicyId, + $Headers, + $APINAME, + $tenantFilter + ) + + try { + switch ($TemplateType) { + 'AppProtection' { + $PlatformType = 'deviceAppManagement' + $AndroidTemplateTypeURL = 'androidManagedAppProtections' + $iOSTemplateTypeURL = 'iosManagedAppProtections' + + # Define bulk request for both platforms - used by all scenarios + $BulkRequests = @( + @{ + id = 'AndroidPolicies' + url = "$PlatformType/$AndroidTemplateTypeURL" + method = 'GET' + }, + @{ + id = 'iOSPolicies' + url = "$PlatformType/$iOSTemplateTypeURL" + method = 'GET' + } + ) + $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $tenantFilter + + $androidPolicies = ($BulkResults | Where-Object { $_.id -eq 'AndroidPolicies' }).body.value + $iOSPolicies = ($BulkResults | Where-Object { $_.id -eq 'iOSPolicies' }).body.value + + if ($DisplayName) { + $androidPolicy = $androidPolicies | Where-Object -Property displayName -EQ $DisplayName + $iOSPolicy = $iOSPolicies | Where-Object -Property displayName -EQ $DisplayName + + # Return the matching policy (Android or iOS) - using full data from bulk request + if ($androidPolicy) { + $policyJson = ConvertTo-Json -InputObject $androidPolicy -Depth 100 -Compress + $androidPolicy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + return $androidPolicy + } elseif ($iOSPolicy) { + $policyJson = ConvertTo-Json -InputObject $iOSPolicy -Depth 100 -Compress + $iOSPolicy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + return $iOSPolicy + } + return $null + + } elseif ($PolicyId) { + $androidPolicy = $androidPolicies | Where-Object -Property id -EQ $PolicyId + $iOSPolicy = $iOSPolicies | Where-Object -Property id -EQ $PolicyId + + # Return the matching policy - using full data from bulk request + if ($androidPolicy) { + $policyJson = ConvertTo-Json -InputObject $androidPolicy -Depth 100 -Compress + $androidPolicy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + return $androidPolicy + } elseif ($iOSPolicy) { + $policyJson = ConvertTo-Json -InputObject $iOSPolicy -Depth 100 -Compress + $iOSPolicy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + return $iOSPolicy + } + return $null + + } else { + # Process all Android policies + foreach ($policy in $androidPolicies) { + $policyJson = ConvertTo-Json -InputObject $policy -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + + # Process all iOS policies + foreach ($policy in $iOSPolicies) { + $policyJson = ConvertTo-Json -InputObject $policy -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + + # Combine and return all policies + $allPolicies = [System.Collections.Generic.List[object]]::new() + if ($androidPolicies) { $allPolicies.AddRange($androidPolicies) } + if ($iOSPolicies) { $allPolicies.AddRange($iOSPolicies) } + return $allPolicies + } + } + 'deviceCompliancePolicies' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'deviceCompliancePolicies' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property displayName -EQ $DisplayName + if ($policy) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')?`$expand=scheduledActionsForRule(`$expand=scheduledActionConfigurations)" -tenantid $tenantFilter + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')?`$expand=scheduledActionsForRule(`$expand=scheduledActionConfigurations)" -tenantid $tenantFilter + if ($policy) { + $policyJson = ConvertTo-Json -InputObject $policy -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } else { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + foreach ($policy in $policies) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')?`$expand=scheduledActionsForRule(`$expand=scheduledActionConfigurations)" -tenantid $tenantFilter + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } + 'Admin' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'groupPolicyConfigurations' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property displayName -EQ $DisplayName + if ($policy) { + $definitionValues = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')/definitionValues" -tenantid $tenantFilter + $policy | Add-Member -MemberType NoteProperty -Name 'definitionValues' -Value $definitionValues -Force + + $templateJsonItems = $definitionValues + $templateJsonSource = foreach ($templateJsonItem in $templateJsonItems) { + $presentationValues = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')/definitionValues('$($templateJsonItem.id)')/presentationValues?`$expand=presentation" -tenantid $tenantFilter | ForEach-Object { + $obj = $_ + if ($obj.id) { + $presObj = @{ + id = $obj.id + 'presentation@odata.bind' = "https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('$($templateJsonItem.definition.id)')/presentations('$($obj.presentation.id)')" + } + if ($obj.values) { $presObj['values'] = $obj.values } + if ($obj.value) { $presObj['value'] = $obj.value } + if ($obj.'@odata.type') { $presObj['@odata.type'] = $obj.'@odata.type' } + [pscustomobject]$presObj + } + } + [PSCustomObject]@{ + 'definition@odata.bind' = "https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('$($templateJsonItem.definition.id)')" + enabled = $templateJsonItem.enabled + presentationValues = @($presentationValues) + } + } + $inputvar = [pscustomobject]@{ + added = @($templateJsonSource) + updated = @() + deletedIds = @() + } + $policyJson = ConvertTo-Json -InputObject $inputvar -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')" -tenantid $tenantFilter + if ($policy) { + $definitionValues = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')/definitionValues" -tenantid $tenantFilter + $policy | Add-Member -MemberType NoteProperty -Name 'definitionValues' -Value $definitionValues -Force + + $templateJsonItems = $definitionValues + $templateJsonSource = foreach ($templateJsonItem in $templateJsonItems) { + $presentationValues = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')/definitionValues('$($templateJsonItem.id)')/presentationValues?`$expand=presentation" -tenantid $tenantFilter | ForEach-Object { + $obj = $_ + if ($obj.id) { + $presObj = @{ + id = $obj.id + 'presentation@odata.bind' = "https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('$($templateJsonItem.definition.id)')/presentations('$($obj.presentation.id)')" + } + if ($obj.values) { $presObj['values'] = $obj.values } + if ($obj.value) { $presObj['value'] = $obj.value } + if ($obj.'@odata.type') { $presObj['@odata.type'] = $obj.'@odata.type' } + [pscustomobject]$presObj + } + } + [PSCustomObject]@{ + 'definition@odata.bind' = "https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('$($templateJsonItem.definition.id)')" + enabled = $templateJsonItem.enabled + presentationValues = @($presentationValues) + } + } + $inputvar = [pscustomobject]@{ + added = @($templateJsonSource) + updated = @() + deletedIds = @() + } + $policyJson = ConvertTo-Json -InputObject $inputvar -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } else { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + foreach ($policy in $policies) { + $definitionValues = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')/definitionValues" -tenantid $tenantFilter + $policy | Add-Member -MemberType NoteProperty -Name 'definitionValues' -Value $definitionValues -Force + + $templateJsonItems = $definitionValues + $templateJsonSource = foreach ($templateJsonItem in $templateJsonItems) { + $presentationValues = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')/definitionValues('$($templateJsonItem.id)')/presentationValues?`$expand=presentation" -tenantid $tenantFilter | ForEach-Object { + $obj = $_ + if ($obj.id) { + $presObj = @{ + id = $obj.id + 'presentation@odata.bind' = "https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('$($templateJsonItem.definition.id)')/presentations('$($obj.presentation.id)')" + } + if ($obj.values) { $presObj['values'] = $obj.values } + if ($obj.value) { $presObj['value'] = $obj.value } + if ($obj.'@odata.type') { $presObj['@odata.type'] = $obj.'@odata.type' } + [pscustomobject]$presObj + } + } + [PSCustomObject]@{ + 'definition@odata.bind' = "https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('$($templateJsonItem.definition.id)')" + enabled = $templateJsonItem.enabled + presentationValues = @($presentationValues) + } + } + $inputvar = [pscustomobject]@{ + added = @($templateJsonSource) + updated = @() + deletedIds = @() + } + $policyJson = ConvertTo-Json -InputObject $inputvar -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } + 'Device' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'deviceConfigurations' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property displayName -EQ $DisplayName + if ($policy) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')" -tenantid $tenantFilter + if ($policy) { + $policyDetails = $policy | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } else { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + foreach ($policy in $policies) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } + 'Catalog' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'configurationPolicies' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property Name -EQ $DisplayName + if ($policy) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')?`$expand=settings" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object name, description, settings, platforms, technologies, templateReference + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')?`$expand=settings" -tenantid $tenantFilter + if ($policy) { + $policyDetails = $policy | Select-Object name, description, settings, platforms, technologies, templateReference + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } else { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + foreach ($policy in $policies) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')?`$expand=settings" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object name, description, settings, platforms, technologies, templateReference + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } + 'windowsDriverUpdateProfiles' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'windowsDriverUpdateProfiles' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property displayName -EQ $DisplayName + if ($policy) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')" -tenantid $tenantFilter + if ($policy) { + $policyDetails = $policy | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } else { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + foreach ($policy in $policies) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } + 'windowsFeatureUpdateProfiles' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'windowsFeatureUpdateProfiles' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property displayName -EQ $DisplayName + if ($policy) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')" -tenantid $tenantFilter + if ($policy) { + $policyDetails = $policy | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } else { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + foreach ($policy in $policies) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } + 'windowsQualityUpdatePolicies' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'windowsQualityUpdatePolicies' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property displayName -EQ $DisplayName + if ($policy) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')" -tenantid $tenantFilter + if ($policy) { + $policyDetails = $policy | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } else { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + foreach ($policy in $policies) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } + 'windowsQualityUpdateProfiles' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'windowsQualityUpdateProfiles' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property displayName -EQ $DisplayName + if ($policy) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')" -tenantid $tenantFilter + if ($policy) { + $policyDetails = $policy | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } else { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + foreach ($policy in $policies) { + $policyDetails = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')" -tenantid $tenantFilter + $policyDetails = $policyDetails | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } + default { + return $null + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -tenant $($tenantFilter) -message "Failed to get policy. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw "Failed to get policy for $($tenantFilter): $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPLAPSPassword.ps1 b/Modules/CIPPCore/Public/Get-CIPPLAPSPassword.ps1 new file mode 100644 index 000000000000..a6718f332a10 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPLAPSPassword.ps1 @@ -0,0 +1,29 @@ + +function Get-CIPPLapsPassword { + [CmdletBinding()] + param ( + $device, + $TenantFilter, + $APIName = 'Get LAPS Password', + $Headers + ) + + try { + $GraphRequest = (New-GraphGetRequest -noauthcheck $true -uri "https://graph.microsoft.com/beta/directory/deviceLocalCredentials/$($device)?`$select=credentials" -tenantid $TenantFilter).credentials | Select-Object -First 1 | ForEach-Object { + $PlainText = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($_.passwordBase64)) + $date = $_.BackupDateTime + [PSCustomObject]@{ + resultText = "LAPS password retrieved for $($_.accountName), generated at $($date). Copy the password by clicking the copy button" + copyField = $PlainText + state = 'success' + } + } + if ($GraphRequest) { return $GraphRequest } else { return "No LAPS password found for $device" } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Could not retrieve LAPS password for $($device). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + return "Could not retrieve LAPS password for $($device). Error: $($ErrorMessage.NormalizedError)" + } +} + + diff --git a/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 b/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 new file mode 100644 index 000000000000..2866df56749f --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPLicenseOverview.ps1 @@ -0,0 +1,152 @@ + +function Get-CIPPLicenseOverview { + [CmdletBinding()] + param ( + $TenantFilter, + $APIName = 'Get License Overview', + $Headers + ) + + $Requests = @( + @{ + id = 'subscribedSkus' + url = 'subscribedSkus' + method = 'GET' + } + @{ + id = 'directorySubscriptions' + url = 'directory/subscriptions' + method = 'GET' + } + @{ + id = 'licensedUsers' + url = "users?`$select=id,displayName,userPrincipalName,assignedLicenses&`$filter=assignedLicenses/`$count ne 0&`$count=true" + method = 'GET' + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + @{ + id = 'licensedGroups' + url = "groups?`$select=id,displayName,assignedLicenses,mailEnabled,securityEnabled,groupTypes,onPremisesSyncEnabled&`$filter=assignedLicenses/`$count ne 0&`$count=true" + method = 'GET' + headers = @{ + 'ConsistencyLevel' = 'eventual' + } + } + ) + + try { + $AdminPortalLicenses = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $TenantFilter -Uri 'https://admin.microsoft.com/admin/api/tenant/accountSkus' + } catch { + Write-Warning 'Failed to get Admin Portal Licenses' + } + + $Results = New-GraphBulkRequest -Requests $Requests -TenantID $TenantFilter -asapp $true + $LicRequest = ($Results | Where-Object { $_.id -eq 'subscribedSkus' }).body.value + $SkuIDs = ($Results | Where-Object { $_.id -eq 'directorySubscriptions' }).body.value + + $RawGraphRequest = [PSCustomObject]@{ + Tenant = $TenantFilter + Licenses = $LicRequest + } + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') + $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses + $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable + + $AllLicensedUsers = @(($Results | Where-Object { $_.id -eq 'licensedUsers' }).body.value) + $UsersBySku = @{} + foreach ($User in $AllLicensedUsers) { + if (-not $User.assignedLicenses) { continue } # Skip users with no assigned licenses. Should not happens as the filter is applied, but just in case + $UserInfo = [PSCustomObject]@{ + displayName = [string]$User.displayName + userPrincipalName = [string]$User.userPrincipalName + id = [string]$User.id + } + + foreach ($AssignedLicense in $User.assignedLicenses) { + $LicenseSkuId = ([string]$AssignedLicense.skuId).ToLowerInvariant() + if ([string]::IsNullOrWhiteSpace($LicenseSkuId)) { continue } # Skip if SKU ID is null or whitespace. Should not happen but just in case + if (-not $UsersBySku.ContainsKey($LicenseSkuId)) { + $UsersBySku[$LicenseSkuId] = [System.Collections.Generic.List[object]]::new() + } + $UsersBySku[$LicenseSkuId].Add($UserInfo) + } + + } + + $AllLicensedGroups = @(($Results | Where-Object { $_.id -eq 'licensedGroups' }).body.value) + $GroupsBySku = @{} + foreach ($Group in $AllLicensedGroups) { + if (-not $Group.assignedLicenses) { continue } + $GroupInfo = [PSCustomObject]@{ + displayName = [string]$Group.displayName + calculatedGroupType = if ($Group.groupTypes -contains 'Unified') { 'Microsoft 365' } + elseif ($Group.mailEnabled -and $Group.securityEnabled) { 'Mail-Enabled Security' } + elseif (-not $Group.mailEnabled -and $Group.securityEnabled) { 'Security' } + elseif (([string]::isNullOrEmpty($Group.groupTypes)) -and ($Group.mailEnabled) -and (-not $Group.securityEnabled)) { 'Distribution List' } + id = [string]$Group.id + onPremisesSyncEnabled = [bool]$Group.onPremisesSyncEnabled + + } + foreach ($AssignedLicense in $Group.assignedLicenses) { + $LicenseSkuId = ([string]$AssignedLicense.skuId).ToLowerInvariant() + if ([string]::IsNullOrWhiteSpace($LicenseSkuId)) { continue } + if (-not $GroupsBySku.ContainsKey($LicenseSkuId)) { + $GroupsBySku[$LicenseSkuId] = [System.Collections.Generic.List[object]]::new() + } + $GroupsBySku[$LicenseSkuId].Add($GroupInfo) + } + } + $GraphRequest = foreach ($singleReq in $RawGraphRequest) { + $skuId = $singleReq.Licenses + foreach ($sku in $skuId) { + if ($sku.skuId -in $ExcludedSkuList.GUID) { continue } + $PrettyNameAdmin = $AdminPortalLicenses | Where-Object { $_.SkuId -eq $sku.skuId } | Select-Object -ExpandProperty Name + $PrettyNameCSV = ($ConvertTable | Where-Object { $_.guid -eq $sku.skuid }).'Product_Display_Name' | Select-Object -Last 1 + $PrettyName = $PrettyNameAdmin ?? $PrettyNameCSV ?? $sku.skuPartNumber + + # Initialize $Term with the default value + $TermInfo = foreach ($Subscription in $sku.subscriptionIds) { + $SubInfo = $SkuIDs | Where-Object { $_.id -eq $Subscription } + $diff = $SubInfo.nextLifecycleDateTime - $SubInfo.createdDateTime + $Term = 'Term unknown or non-NCE license' + if ($diff.Days -ge 360 -and $diff.Days -le 1089) { + $Term = 'Yearly' + } elseif ($diff.Days -ge 1090 -and $diff.Days -le 1100) { + $Term = '3 Year' + } elseif ($diff.Days -ge 25 -and $diff.Days -le 35) { + $Term = 'Monthly' + } + $TimeUntilRenew = ($subinfo.nextLifecycleDateTime - (Get-Date)).days + [PSCustomObject]@{ + Status = $SubInfo.status + Term = $Term + TotalLicenses = $SubInfo.totalLicenses + DaysUntilRenew = $TimeUntilRenew + NextLifecycle = $SubInfo.nextLifecycleDateTime + IsTrial = $SubInfo.isTrial + SubscriptionId = $subinfo.id + CSPSubscriptionId = $SubInfo.commerceSubscriptionId + OCPSubscriptionId = $SubInfo.ocpSubscriptionId + } + } + $SkuKey = ([string]$sku.skuId).ToLowerInvariant() + [pscustomobject]@{ + Tenant = [string]$singleReq.Tenant + License = [string]$PrettyName + CountUsed = [string]"$($sku.consumedUnits)" + CountAvailable = [string]$sku.prepaidUnits.enabled - $sku.consumedUnits + TotalLicenses = [string]"$($sku.prepaidUnits.enabled)" + skuId = [string]$sku.skuId + skuPartNumber = [string]$PrettyName + availableUnits = [string]$sku.prepaidUnits.enabled - $sku.consumedUnits + TermInfo = $TermInfo + AssignedUsers = ($UsersBySku.ContainsKey($SkuKey) ? @(($UsersBySku[$SkuKey])) : $null) + AssignedGroups = ($GroupsBySku.ContainsKey($SkuKey) ? @(($GroupsBySku[$SkuKey])) : $null) + } + } + } + return $GraphRequest +} diff --git a/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 b/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 new file mode 100644 index 000000000000..6f5eef720383 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPMFAState.ps1 @@ -0,0 +1,145 @@ +function Get-CIPPMFAState { + [CmdletBinding()] + param ( + $TenantFilter, + $APIName = 'Get MFA Status', + $Headers + ) + #$PerUserMFAState = Get-CIPPPerUserMFA -TenantFilter $TenantFilter -AllUsers $true + $users = foreach ($user in (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/users?$top=999&$select=id,UserPrincipalName,DisplayName,accountEnabled,assignedLicenses,perUserMfaState' -tenantid $TenantFilter)) { + [PSCustomObject]@{ + UserPrincipalName = $user.UserPrincipalName + isLicensed = [boolean]$user.assignedLicenses.Count + accountEnabled = $user.accountEnabled + DisplayName = $user.DisplayName + ObjectId = $user.id + perUserMfaState = $user.perUserMfaState + } + } + + $Errors = [System.Collections.Generic.List[object]]::new() + try { + $SecureDefaultsState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $TenantFilter ).IsEnabled + } catch { + Write-Host "Secure Defaults not available: $($_.Exception.Message)" + $Errors.Add(@{Step = 'SecureDefaults'; Message = $_.Exception.Message }) + } + $CAState = [System.Collections.Generic.List[object]]::new() + + Try { + $MFARegistration = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails?$top=999&$select=userPrincipalName,isMfaRegistered,isMfaCapable,methodsRegistered" -tenantid $TenantFilter -asapp $true) + $MFAIndex = @{} + foreach ($MFAEntry in $MFARegistration) { + $MFAIndex[$MFAEntry.userPrincipalName] = $MFAEntry + } + } catch { + $CAState.Add('Not Licensed for Conditional Access') | Out-Null + $MFARegistration = $null + if ($_.Exception.Message -ne "Tenant is not a B2C tenant and doesn't have premium licenses") { + $Errors.Add(@{Step = 'MFARegistration'; Message = $_.Exception.Message }) + } + Write-Host "User registration details not available: $($_.Exception.Message)" + $MFAIndex = @{} + } + + if ($null -ne $MFARegistration) { + $CASuccess = $true + try { + $CAPolicies = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999&$filter=state eq 'enabled'&$select=id,displayName,state,grantControls,conditions' -tenantid $TenantFilter -ErrorAction Stop) + $PolicyTable = @{} + foreach ($Policy in $CAPolicies) { + if ($Policy.conditions.users.includeUsers -ne $null) { + foreach ($UserId in $Policy.conditions.users.includeUsers) { + if (-not $PolicyTable.ContainsKey($UserId)) { + $PolicyTable[$UserId] = [System.Collections.Generic.List[object]]::new() + } + $PolicyTable[$UserId].Add($Policy) + } + } + } + } catch { + $CASuccess = $false + $CAError = "CA policies not available: $($_.Exception.Message)" + $Errors.Add(@{Step = 'CAPolicies'; Message = $_.Exception.Message }) + } + } + + if ($CAState.count -eq 0) { $CAState.Add('None') | Out-Null } + + $assignments = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?`$expand=principal" -tenantid $TenantFilter -ErrorAction SilentlyContinue + + $adminObjectIds = $assignments | + Where-Object { + $_.principal.'@odata.type' -eq '#microsoft.graph.user' + } | + ForEach-Object { + $_.principal.id + } + + # Interact with query parameters or the body of the request. + $GraphRequest = $Users | ForEach-Object { + $UserCAState = [System.Collections.Generic.List[object]]::new() + foreach ($CA in $CAState) { + if ($CA.IncludedUsers -eq 'All' -or $CA.IncludedUsers -contains $_.ObjectId) { + $UserCAState.Add([PSCustomObject]@{ + DisplayName = $CA.DisplayName + UserIncluded = ($CA.ExcludedUsers -notcontains $_.ObjectId) + AllApps = $CA.IsAllApps + PolicyState = $CA.State + Platforms = $CA.Platforms -join ', ' + }) + } + } + if ($UserCAState.UserIncluded -eq $true -and $UserCAState.PolicyState -eq 'enabled') { + if ($UserCAState.UserIncluded -eq $true -and $UserCAState.PolicyState -eq 'enabled' -and $UserCAState.AllApps) { + $CoveredByCA = 'Enforced - All Apps' + } else { + $CoveredByCA = 'Enforced - Specific Apps' + } + } else { + if ($CASuccess -eq $false) { + $CoveredByCA = $CAError + } else { + $CoveredByCA = 'Not Enforced' + } + } + $IsAdmin = if ($adminObjectIds -contains $_.ObjectId) { $true } else { $false } + + $PerUser = $_.PerUserMFAState + + $MFARegUser = if ($null -eq ($MFAIndex[$_.UserPrincipalName])) { + $false + } else { + $MFAIndex[$_.UserPrincipalName] + } + + [PSCustomObject]@{ + Tenant = $TenantFilter + ID = $_.ObjectId + UPN = $_.UserPrincipalName + DisplayName = $_.DisplayName + AccountEnabled = $_.accountEnabled + PerUser = $PerUser + isLicensed = $_.isLicensed + MFARegistration = if ($MFARegUser) { $MFARegUser.isMfaRegistered } else { $false } + MFACapable = if ($MFARegUser) { $MFARegUser.isMfaCapable } else { $false } + MFAMethods = if ($MFARegUser) { $MFARegUser.methodsRegistered } else { @() } + CoveredByCA = $CoveredByCA + CAPolicies = $UserCAState + CoveredBySD = $SecureDefaultsState + IsAdmin = $IsAdmin + RowKey = [string]($_.UserPrincipalName).replace('#', '') + PartitionKey = 'users' + } + } + $ErrorCount = ($Errors | Measure-Object).Count + if ($ErrorCount -gt 0) { + if ($ErrorCount -gt 1) { + $Text = 'errors' + } else { + $Text = 'an error' + } + Write-LogMessage -headers $Headers -API $APIName -Tenant $TenantFilter -message "The MFA report encountered $Text, see log data for details." -Sev 'Error' -LogData @($Errors.Message) + } + return $GraphRequest +} diff --git a/Modules/CIPPCore/Public/Get-CIPPMailboxPermissionReport.ps1 b/Modules/CIPPCore/Public/Get-CIPPMailboxPermissionReport.ps1 new file mode 100644 index 000000000000..95a5e7e32e41 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPMailboxPermissionReport.ps1 @@ -0,0 +1,226 @@ +function Get-CIPPMailboxPermissionReport { + <# + .SYNOPSIS + Generates a mailbox permission report from the CIPP Reporting database + + .DESCRIPTION + Retrieves mailbox permissions for a tenant and formats them into a report. + Default view shows permissions per mailbox. Use -ByUser to pivot by user. + + .PARAMETER TenantFilter + The tenant to generate the report for + + .PARAMETER ByUser + If specified, groups results by user instead of by mailbox + + .EXAMPLE + Get-CIPPMailboxPermissionReport -TenantFilter 'contoso.onmicrosoft.com' + Shows which users have access to each mailbox + + .EXAMPLE + Get-CIPPMailboxPermissionReport -TenantFilter 'contoso.onmicrosoft.com' -ByUser + Shows what mailboxes each user has access to + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [switch]$ByUser + ) + + try { + Write-LogMessage -API 'MailboxPermissionReport' -tenant $TenantFilter -message 'Generating mailbox permission report' -sev Info + + # Handle AllTenants + if ($TenantFilter -eq 'AllTenants') { + # Get all tenants that have mailbox data + $AllMailboxItems = Get-CIPPDbItem -TenantFilter 'allTenants' -Type 'Mailboxes' + $Tenants = @($AllMailboxItems | Where-Object { $_.RowKey -ne 'Mailboxes-Count' } | Select-Object -ExpandProperty PartitionKey -Unique) + + $AllResults = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Tenant in $Tenants) { + try { + $TenantResults = Get-CIPPMailboxPermissionReport -TenantFilter $Tenant -ByUser:$ByUser + foreach ($Result in $TenantResults) { + # Add Tenant property to each result + $Result | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $Tenant -Force + $AllResults.Add($Result) + } + } catch { + Write-LogMessage -API 'MailboxPermissionReport' -tenant $Tenant -message "Failed to get report for tenant: $($_.Exception.Message)" -sev Warning + } + } + return $AllResults + } + + # Get mailboxes from reporting DB + $MailboxItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' + if (-not $MailboxItems) { + throw 'No mailbox data found in reporting database. Run Set-CIPPDBCacheMailboxes first.' + } + + # Get the most recent mailbox cache timestamp + $MailboxCacheTimestamp = ($MailboxItems | Where-Object { $_.Timestamp } | Sort-Object Timestamp -Descending | Select-Object -First 1).Timestamp + + # Parse mailbox data and create lookup by UPN, ID, and ExternalDirectoryObjectId (case-insensitive) + $MailboxLookup = @{} + $MailboxByIdLookup = @{} + $MailboxByExternalIdLookup = @{} + foreach ($Item in $MailboxItems | Where-Object { $_.RowKey -ne 'Mailboxes-Count' }) { + $Mailbox = $Item.Data | ConvertFrom-Json + if ($Mailbox.UPN) { + $MailboxLookup[$Mailbox.UPN.ToLower()] = $Mailbox + } + if ($Mailbox.primarySmtpAddress) { + $MailboxLookup[$Mailbox.primarySmtpAddress.ToLower()] = $Mailbox + } + if ($Mailbox.Id) { + $MailboxByIdLookup[$Mailbox.Id] = $Mailbox + } + if ($Mailbox.ExternalDirectoryObjectId) { + $MailboxByExternalIdLookup[$Mailbox.ExternalDirectoryObjectId] = $Mailbox + } + } + + # Get mailbox permissions from reporting DB + $PermissionItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxPermissions' + if (-not $PermissionItems) { + throw 'No mailbox permission data found in reporting database. Run Set-CIPPDBCacheMailboxes first.' + } + + # Get the most recent permission cache timestamp + $PermissionCacheTimestamp = ($PermissionItems | Where-Object { $_.Timestamp } | Sort-Object Timestamp -Descending | Select-Object -First 1).Timestamp + + # Parse all permissions + $AllPermissions = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Item in $PermissionItems | Where-Object { $_.RowKey -ne 'MailboxPermissions-Count' }) { + $Permissions = $Item.Data | ConvertFrom-Json + foreach ($Permission in $Permissions) { + # Skip SELF permissions and inherited deny permissions + if ($Permission.User -eq 'NT AUTHORITY\SELF' -or $Permission.Deny -eq $true) { + continue + } + + # Get mailbox info - try multiple match strategies like CustomDataSync does + $Mailbox = $null + if ($Permission.Identity) { + # Try UPN/primarySmtpAddress lookup (case-insensitive) + $Mailbox = $MailboxLookup[$Permission.Identity.ToLower()] + + # If not found, try ExternalDirectoryObjectId lookup + if (-not $Mailbox) { + $Mailbox = $MailboxByExternalIdLookup[$Permission.Identity] + } + + # If not found, try ID lookup + if (-not $Mailbox) { + $Mailbox = $MailboxByIdLookup[$Permission.Identity] + } + } + + if (-not $Mailbox) { + Write-Verbose "No mailbox found for Identity: $($Permission.Identity)" + continue + } + + $AllPermissions.Add([PSCustomObject]@{ + MailboxUPN = if ($Mailbox.UPN) { $Mailbox.UPN } elseif ($Mailbox.primarySmtpAddress) { $Mailbox.primarySmtpAddress } else { $Permission.Identity } + MailboxDisplayName = $Mailbox.displayName + MailboxType = $Mailbox.recipientTypeDetails + User = $Permission.User + UserKey = if ($Permission.User -match '@') { $Permission.User.ToLower() } else { $Permission.User } + AccessRights = ($Permission.AccessRights -join ', ') + IsInherited = $Permission.IsInherited + Deny = $Permission.Deny + }) + } + } + + if ($AllPermissions.Count -eq 0) { + Write-LogMessage -API 'MailboxPermissionReport' -tenant $TenantFilter -message 'No mailbox permissions found (excluding SELF)' -sev Debug + Write-Information -Message 'No mailbox permissions found (excluding SELF)' + return @() + } + + # Format results based on grouping preference + if ($ByUser) { + # Group by user - calculate which mailboxes each user has access to + # Use UserKey for grouping to handle case-insensitive email addresses + $Report = $AllPermissions | Group-Object -Property UserKey | ForEach-Object { + $UserKey = $_.Name + $UserDisplay = $_.Group[0].User # Use original User value for display + + # Look up the user's mailbox type using multi-strategy approach + $UserMailbox = $null + if ($UserDisplay) { + # Try UPN/primarySmtpAddress lookup (case-insensitive) + $UserMailbox = $MailboxLookup[$UserDisplay.ToLower()] + + # If not found, try ExternalDirectoryObjectId lookup + if (-not $UserMailbox) { + $UserMailbox = $MailboxByExternalIdLookup[$UserDisplay] + } + + # If not found, try ID lookup + if (-not $UserMailbox) { + $UserMailbox = $MailboxByIdLookup[$UserDisplay] + } + } + $UserMailboxType = if ($UserMailbox) { $UserMailbox.recipientTypeDetails } else { 'Unknown' } + + # Build detailed permissions list with mailbox and access rights + $PermissionDetails = @($_.Group | ForEach-Object { + [PSCustomObject]@{ + Mailbox = $_.MailboxDisplayName + MailboxUPN = $_.MailboxUPN + AccessRights = $_.AccessRights + } + }) + + [PSCustomObject]@{ + User = $UserDisplay + UserMailboxType = $UserMailboxType + MailboxCount = $_.Count + Permissions = $PermissionDetails + Tenant = $TenantFilter + MailboxCacheTimestamp = $MailboxCacheTimestamp + PermissionCacheTimestamp = $PermissionCacheTimestamp + } + } | Sort-Object User + } else { + # Default: Group by mailbox + $Report = $AllPermissions | Group-Object -Property MailboxUPN | ForEach-Object { + $MailboxUPN = $_.Name + $MailboxInfo = $_.Group[0] + + # Build detailed permissions list with user and access rights + $PermissionDetails = @($_.Group | ForEach-Object { + [PSCustomObject]@{ + User = $_.User + AccessRights = $_.AccessRights + } + }) + + [PSCustomObject]@{ + MailboxUPN = $MailboxUPN + MailboxDisplayName = $MailboxInfo.MailboxDisplayName + MailboxType = $MailboxInfo.MailboxType + PermissionCount = $_.Count + Permissions = $PermissionDetails + Tenant = $TenantFilter + MailboxCacheTimestamp = $MailboxCacheTimestamp + PermissionCacheTimestamp = $PermissionCacheTimestamp + } + } | Sort-Object MailboxDisplayName + } + + Write-LogMessage -API 'MailboxPermissionReport' -tenant $TenantFilter -message "Generated report with $($Report.Count) entries" -sev Debug + return $Report + + } catch { + Write-LogMessage -API 'MailboxPermissionReport' -tenant $TenantFilter -message "Failed to generate mailbox permission report: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + throw "Failed to generate mailbox permission report: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPOutOfOffice.ps1 b/Modules/CIPPCore/Public/Get-CIPPOutOfOffice.ps1 new file mode 100644 index 000000000000..c5b0af944f3c --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPOutOfOffice.ps1 @@ -0,0 +1,26 @@ +function Get-CIPPOutOfOffice { + [CmdletBinding()] + param ( + $UserID, + $TenantFilter, + $APIName = 'Get Out of Office', + $Headers + ) + + try { + $OutOfOffice = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxAutoReplyConfiguration' -cmdParams @{Identity = $UserID } -Anchor $UserID + $Results = @{ + AutoReplyState = $OutOfOffice.AutoReplyState + StartTime = $OutOfOffice.StartTime.ToString('yyyy-MM-dd HH:mm') + EndTime = $OutOfOffice.EndTime.ToString('yyyy-MM-dd HH:mm') + InternalMessage = $OutOfOffice.InternalMessage + ExternalMessage = $OutOfOffice.ExternalMessage + } | ConvertTo-Json + return $Results + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Could not retrieve out of office message for $($UserID). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Error' -LogData $ErrorMessage + throw $Results + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPPartnerAzSubscriptions.ps1 b/Modules/CIPPCore/Public/Get-CIPPPartnerAzSubscriptions.ps1 new file mode 100644 index 000000000000..9c06f76edd0a --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPPartnerAzSubscriptions.ps1 @@ -0,0 +1,66 @@ +function Get-CIPPPartnerAzSubscriptions { + param ( + $TenantFilter, + $APIName = 'Get-CIPPPartnerAzSubscriptions' + ) + + try { + if ($variable -notmatch '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}') { + $TenantFilter = (Invoke-RestMethod -Method GET "https://login.windows.net/$TenantFilter/.well-known/openid-configuration").token_endpoint.Split('/')[3] + } + } catch { + throw "Tenant $($TenantFilter) could not be found" + } + + $subsCache = [system.collections.generic.list[hashtable]]::new() + try { + try { + $usageRecords = (New-GraphGETRequest -Uri "https://api.partnercenter.microsoft.com/v1/customers/$($TenantFilter)/subscriptions/usagerecords" -scope 'https://api.partnercenter.microsoft.com/user_impersonation').items + } catch { + $ErrorMessage = Get-CippException -Exception $_ + throw "Unable to retrieve usagerecord(s): $($ErrorMessage.NormalizedError)" + } + + foreach ($usageRecord in $usageRecords) { + # if condition probably needs more refining + if ($usageRecord.offerId -notlike 'DZH318Z0BPS6*') { + # Legacy subscriptions are directly accessible + $subDetails = @{ + tenantId = $tenantFilter + subscriptionId = ($usageRecord.id).ToLower() + isLegacy = $true + POR = 'Legacy subscription' + status = $usageRecord.status + } + + $subsCache.Add($subDetails) + } else { + # For modern subscriptions we need to dig a little deeper + try { + $subid = (New-GraphGETRequest -Uri "https://api.partnercenter.microsoft.com/v1/customers/$($TenantFilter)/subscriptions/$($usageRecord.id)/azureEntitlements" -scope 'https://api.partnercenter.microsoft.com/user_impersonation').items #| Where-Object { $_.status -eq "active" } + + foreach ($id in $subid) { + $subDetails = @{ + tenantId = $tenantFilter + subscriptionId = ($id.id) + isLegacy = $false + POR = $id.partnerOnRecord + status = $id.status + } + + $subsCache.Add($subDetails) + } + } catch { + # what do we do here error wise? + #Write-LogMessage -message "Unable to retrieve subscriptions(s) from usagerecord $($usageRecord.id): $($_.Exception.Message)" -Sev 'ERROR' -API $APINAME + #Write-Error "Unable to retrieve sub(s) from usagerecord $($usageRecord.id) for tenant $($tenantFilter): $($_.Exception.Message)" + } + } + } + + return $subsCache + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -message "Unable to retrieve CSP Azure subscriptions for $($TenantFilter): $($ErrorMessage.NormalizedError)" -Sev 'ERROR' -API $APINAME -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPPerUserMFA.ps1 b/Modules/CIPPCore/Public/Get-CIPPPerUserMFA.ps1 new file mode 100644 index 000000000000..28ecc040f452 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPPerUserMFA.ps1 @@ -0,0 +1,24 @@ +function Get-CIPPPerUserMFA { + [CmdletBinding()] + param( + $TenantFilter, + $UserId, + $Headers, + $AllUsers = $false + ) + try { + if ($AllUsers -eq $true) { + $AllUsers = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/users?`$top=999&`$select=UserPrincipalName,Id,perUserMfaState" -tenantid $TenantFilter + return $AllUsers + } else { + $MFAState = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/users/$($UserId)?`$select=UserPrincipalName,Id,perUserMfaState" -tenantid $TenantFilter + return [PSCustomObject]@{ + PerUserMFAState = $MFAState.perUserMfaState + UserPrincipalName = $UserId + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + throw "Failed to get MFA State for $UserId : $ErrorMessage" + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 b/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 new file mode 100644 index 000000000000..27fc292c63fa --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPSPOTenant.ps1 @@ -0,0 +1,50 @@ +function Get-CIPPSPOTenant { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [string]$SharepointPrefix, + [switch]$SkipCache + ) + + if (!$SharepointPrefix) { + # get sharepoint admin site + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $tenantName = $SharePointInfo.TenantName + $AdminUrl = $SharePointInfo.AdminUrl + } else { + $tenantName = $SharepointPrefix + $AdminUrl = "https://$($tenantName)-admin.sharepoint.com" + } + + $Table = Get-CIPPTable -tablename 'cachespotenant' + $Filter = "PartitionKey eq 'Tenant' and RowKey eq '$TenantFilter' and Timestamp gt datetime'$( (Get-Date).AddHours(-1).ToString('yyyy-MM-ddTHH:mm:ssZ') )'" + if (!$SkipCache.IsPresent) { + $CachedTenant = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if ($CachedTenant -and (Test-Json $CachedTenant.JSON)) { + $Results = $CachedTenant.JSON | ConvertFrom-Json + return $Results + } + } + + # Query tenant settings + $XML = @' + +'@ + $AdditionalHeaders = @{ + 'Accept' = 'application/json;odata=verbose' + } + + $Results = New-GraphPostRequest -scope "$($AdminUrl)/.default" -tenantid $TenantFilter -Uri "$($SharePointInfo.AdminUrl)/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' -AddedHeaders $AdditionalHeaders + + $Results = $Results | Select-Object -Last 1 *, @{n = 'SharepointPrefix'; e = { $tenantName } }, @{n = 'TenantFilter'; e = { $TenantFilter } } + + # Cache result + $Entity = @{ + PartitionKey = 'Tenant' + RowKey = $TenantFilter + JSON = [string]($Results | ConvertTo-Json -Depth 10 -Compress) + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + return $Results +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSchemaExtensions.ps1 b/Modules/CIPPCore/Public/Get-CIPPSchemaExtensions.ps1 new file mode 100644 index 000000000000..cfc5ed0d9998 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPSchemaExtensions.ps1 @@ -0,0 +1,123 @@ +function Get-CIPPSchemaExtensions { + [CmdletBinding()] + Param( + [switch]$Update, + $Headers + ) + + # Get definitions file + $CIPPCore = Get-Module -Name 'CIPPCore' | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item -Path $CIPPCore).Parent.Parent + $SchemaDefinitionsPath = Join-Path $CIPPRoot 'Config\schemaDefinitions.json' + + # check CustomData table for schema extensions + $CustomDataTable = Get-CippTable -tablename 'CustomData' + try { + $SchemaExtensions = Get-CIPPAzDataTableEntity @CustomDataTable -Filter "PartitionKey eq 'SchemaExtension'" + } catch { + $SchemaExtensions = @() + } + + $SchemaDefinitions = Get-Content -Path $SchemaDefinitionsPath | ConvertFrom-Json + $SchemaDefinitions | ForEach-Object { + if ($SchemaExtensions -notcontains $_.id -or $Update.IsPresent) { + Write-Information "Adding Schema Extension for $($_.id) to table" + $Schema = @{ + PartitionKey = 'SchemaExtension' + RowKey = [string]$_.id + JSON = [string]($_ | ConvertTo-Json -Depth 5 -Compress) + } + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $Schema -Force + } + } + if (!$SchemaExtensions) { + $SchemaExtensions = Get-CIPPAzDataTableEntity @CustomDataTable -Filter "PartitionKey eq 'SchemaExtension'" + } + + $Schemas = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/schemaExtensions?`$filter=owner eq '$($env:ApplicationID)'" -NoAuthCheck $true -AsApp $true | Where-Object { $_.status -ne 'Deprecated' } + + foreach ($SchemaExtension in $SchemaExtensions) { + $SchemaFound = $false + $SchemaDefinition = $SchemaExtension.JSON | ConvertFrom-Json + Write-Information "Processing Schema Extension for $($SchemaDefinition.id)" + foreach ($Schema in $Schemas) { + if ($Schema.id -match $SchemaDefinition.id) { + Write-Verbose ($Schema | ConvertTo-Json -Depth 5) + $Patch = @{} + $SchemaFound = $true + $Schema = $Schemas | Where-Object { $_.id -match $SchemaDefinition.id } | Select-Object -First 1 + if (Compare-Object -ReferenceObject ($SchemaDefinition.properties | Sort-Object name | Select-Object name, type) -DifferenceObject ($Schema.properties | Sort-Object name | Select-Object name, type)) { + $Patch.properties = $SchemaDefinition.properties + } + if ($Schema.status -ne $SchemaDefinition.status) { + $Patch.status = $SchemaDefinition.status + } + if ($Schema.targetTypes -ne $SchemaDefinition.targetTypes) { + $Patch.targetTypes = $SchemaDefinition.targetTypes + } + if ($Patch -and $Patch.Keys.Count -gt 0) { + Write-Information "Updating $($Schema.id)" + $Json = ConvertTo-Json -Depth 5 -InputObject $Patch + Write-Verbose $Json + $null = New-GraphPOSTRequest -type PATCH -Uri "https://graph.microsoft.com/v1.0/schemaExtensions/$($Schema.id)" -Body $Json -AsApp $true -NoAuthCheck $true + $Schema = New-GraphGETRequest -uri "https://graph.microsoft.com/v1.0/schemaExtensions/$($Schema.id)" -AsApp $true -NoAuthCheck $true + Write-LogMessage -headers $Headers -message "Updated Schema Extension: $($SchemaDefinition.id)" -API 'Get-CIPPSchemaExtensions' -Sev 'info' -LogData $Body + } + if ($Patch.status -eq 'Deprecated') { + Remove-AzDataTableEntity @CustomDataTable -Entity $SchemaExtension -Force + } else { + $NewSchema = [string]($Schema | ConvertTo-Json -Depth 5 -Compress) + if ($SchemaExtension.JSON -ne $NewSchema) { + $SchemaExtension.JSON = $NewSchema + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $SchemaExtension -Force + } + } + $Schema + } + } + if (!$SchemaFound) { + Write-Information "Creating Schema Extension for $($SchemaDefinition.id)" + $Json = ConvertTo-Json -Depth 5 -InputObject ($SchemaDefinition | Select-Object -ExcludeProperty status) + $Schema = New-GraphPOSTRequest -type POST -Uri 'https://graph.microsoft.com/v1.0/schemaExtensions' -Body $Json -AsApp $true -NoAuthCheck $true + + if ($SchemaDefinition.status -ne 'InDevelopment') { + $Patch = [PSCustomObject]@{ + status = $SchemaDefinition.status + } + $PatchJson = ConvertTo-Json -Depth 5 -InputObject $Patch + $null = New-GraphPOSTRequest -type PATCH -Uri "https://graph.microsoft.com/v1.0/schemaExtensions/$($Schema.id)" -Body $PatchJson -AsApp $true -NoAuthCheck $true + } + try { + $OldSchema = $SchemaExtensions | Where-Object { $Schema.id -match $_.RowKey } + $OldSchema.JSON = [string]($Schema | ConvertTo-Json -Depth 5 -Compress) + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $OldSchema -Force + } catch { + Write-Warning 'Failed to update schema extension in table' + Write-Warning ($OldSchema | ConvertTo-Json -Depth 5) + } + Write-LogMessage -headers $Headers -message "Created Schema Extension: $($SchemaDefinition.id)" -API 'Get-CIPPSchemaExtensions' -Sev 'info' -LogData $Body + $Schema + } + } + if ($Schemas) { + $Schemas | ForEach-Object { + $SchemaFound = $false + foreach ($SchemaExtension in $SchemaExtensions) { + $SchemaDefinition = $SchemaExtension.JSON | ConvertFrom-Json + if ($SchemaDefinition.id -match $_.id) { + $SchemaFound = $true + } + } + if (!$SchemaFound) { + $Json = ConvertTo-Json -Depth 5 -InputObject $_ + $SchemaEntity = @{ + PartitionKey = 'SchemaExtension' + RowKey = [string]($_.id -split '_' | Select-Object -Last 1) + JSON = [string]$Json + } + Add-CIPPAzDataTableEntity @CustomDataTable -Entity $SchemaEntity -Force + $_ + } + } + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 b/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 new file mode 100644 index 000000000000..cc743b6b2893 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPTenantCapabilities.ps1 @@ -0,0 +1,30 @@ + +function Get-CIPPTenantCapabilities { + [CmdletBinding()] + param ( + $TenantFilter, + $APIName = 'Get Tenant Capabilities', + $Headers + ) + $ConfigTable = Get-CIPPTable -TableName 'CacheCapabilities' + $datetime = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq '$TenantFilter' and PartitionKey eq 'Capabilities' and Timestamp ge datetime'$datetime'" + if ($ConfigEntries) { + $Org = $ConfigEntries.JSON | ConvertFrom-Json + } else { + $Org = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $TenantFilter + # Save the capabilities to the cache table + $Entity = @{ + PartitionKey = 'Capabilities' + RowKey = $TenantFilter + JSON = "$($Org | ConvertTo-Json -Compress -Depth 10)" + } + Add-CIPPAzDataTableEntity @ConfigTable -Entity $Entity -Force + } + $Plans = $Org.servicePlans | Where-Object { $_.provisioningStatus -ne 'disabled' } | Sort-Object -Property serviceplanName -Unique | Select-Object servicePlanName, provisioningStatus + $Results = @{} + foreach ($Plan in $Plans) { + $Results."$($Plan.servicePlanName)" = $Plan.provisioningStatus -ne 'disabled' + } + [PSCustomObject]$Results +} diff --git a/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 b/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 new file mode 100644 index 000000000000..312236c81c4d --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPTestResults.ps1 @@ -0,0 +1,44 @@ +function Get-CIPPTestResults { + <# + .SYNOPSIS + Retrieves test results and tenant counts for a specific tenant + + .PARAMETER TenantFilter + The tenant domain or GUID to retrieve results for + + .EXAMPLE + Get-CIPPTestResults -TenantFilter 'contoso.onmicrosoft.com' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $Table = Get-CippTable -tablename 'CippTestResults' + $Filter = "PartitionKey eq '{0}'" -f $TenantFilter + $TestResults = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + $CountData = Get-CIPPDbItem -TenantFilter $TenantFilter -CountsOnly + + $TenantCounts = @{} + $LatestTimestamp = $null + + foreach ($CountRow in $CountData) { + $TypeName = $CountRow.RowKey -replace '-Count$', '' + $TenantCounts[$TypeName] = $CountRow.DataCount + $LatestTimestamp = $CountRow.Timestamp + } + + return [PSCustomObject]@{ + TestResults = $TestResults + TenantCounts = $TenantCounts + LatestReportTimeStamp = $LatestTimestamp + } + + } catch { + Write-LogMessage -API 'CIPPTestResults' -tenant $TenantFilter -message "Failed to get test results: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 b/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 new file mode 100644 index 000000000000..a86ce4751645 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 @@ -0,0 +1,116 @@ +function Get-CIPPTextReplacement { + <# + .SYNOPSIS + Replaces text with tenant specific values + .DESCRIPTION + Helper function to replace text with tenant specific values + .PARAMETER TenantFilter + The tenant filter to use + .PARAMETER Text + The text to replace + .EXAMPLE + Get-CIPPTextReplacement -TenantFilter 'contoso.com' -Text 'Hello %tenantname%' + #> + param ( + [string]$TenantFilter, + $Text, + [switch]$EscapeForJson + ) + if ($Text -isnot [string]) { + return $Text + } + + $ReservedVariables = @( + '%serial%', + '%systemroot%', + '%systemdrive%', + '%temp%', + '%tenantid%', + '%tenantfilter%', + '%initialdomain%', + '%tenantname%', + '%partnertenantid%', + '%samappid%', + '%userprofile%', + '%username%', + '%userdomain%', + '%windir%', + '%programfiles%', + '%programfiles(x86)%', + '%programdata%', + '%cippuserschema%', + '%cippurl%', + '%defaultdomain%', + '%organizationid%' + ) + + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $CustomerId = $Tenant.customerId + + #connect to table, get replacement map. The replacement map will allow users to create custom vars that get replaced by the actual values per tenant. Example: + # %WallPaperPath% gets replaced by RowKey WallPaperPath which is set to C:\Wallpapers for tenant 1, and D:\Wallpapers for tenant 2 + + # Global Variables + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + $GlobalMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + $Vars = @{} + if ($GlobalMap) { + foreach ($Var in $GlobalMap) { + if ($EscapeForJson.IsPresent) { + # Escape quotes for JSON if not already escaped + $Var.Value = $Var.Value -replace '(? + [CmdletBinding()] + param( + $TargetObject = 'All' + ) + $CustomDataTable = Get-CippTable -tablename 'CustomData' + $CustomDataEntities = Get-CIPPAzDataTableEntity @CustomDataTable + $AvailableAttributes = foreach ($CustomDataEntity in $CustomDataEntities) { + $Type = $CustomDataEntity.PartitionKey + $CustomData = $CustomDataEntity.JSON | ConvertFrom-Json + if ($CustomData) { + if ($Type -eq 'SchemaExtension') { + $Name = $CustomData.id + foreach ($TargetObject in $CustomData.targetTypes) { + foreach ($Property in $CustomData.properties) { + [PSCustomObject]@{ + name = '{0}.{1}' -f $Name, $Property.name + type = $Type + targetObject = $TargetObject + dataType = $Property.type + isMultiValued = $false + } + } + } + } elseif ($Type -eq 'DirectoryExtension') { + $Name = $CustomDataEntity.RowKey + foreach ($TargetObject in $CustomData.targetObjects) { + [PSCustomObject]@{ + name = $Name + type = $Type + targetObject = $TargetObject + dataType = $CustomData.dataType + isMultiValued = $CustomData.isMultiValued + } + } + } + } + } + + if ($TargetObject -eq 'All') { + return $AvailableAttributes + } else { + return $AvailableAttributes | Where-Object { $_.targetObject -eq $TargetObject } + } +} diff --git a/Modules/CIPPCore/Public/Get-CippDbRole.ps1 b/Modules/CIPPCore/Public/Get-CippDbRole.ps1 new file mode 100644 index 000000000000..02313a9a96ad --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippDbRole.ps1 @@ -0,0 +1,53 @@ +function Get-CippDbRole { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [switch]$IncludePrivilegedRoles, + + [Parameter(Mandatory = $false)] + [switch]$CisaHighlyPrivilegedRoles + ) + + $Roles = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'Roles' + + if ($IncludePrivilegedRoles) { + $PrivilegedRoleTemplateIds = @( + '62e90394-69f5-4237-9190-012177145e10', + '194ae4cb-b126-40b2-bd5b-6091b380977d', + '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3', + 'e8611ab8-c189-46e8-94e1-60213ab1f814', + '29232cdf-9323-42fd-ade2-1d097af3e4de', + 'b1be1c3e-b65d-4f19-8427-f6fa0d97feb9', + 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c', + 'fe930be7-5e62-47db-91af-98c3a49a38b1', + '729827e3-9c14-49f7-bb1b-9608f156bbb8', + '966707d0-3269-4727-9be2-8c3a10f19b9d', + 'b0f54661-2d74-4c50-afa3-1ec803f12efe', + '7be44c8a-adaf-4e2a-84d6-ab2649e08a13', + '158c047a-c907-4556-b7ef-446551a6b5f7', + 'c4e39bd9-1100-46d3-8c65-fb160da0071f', + '9f06204d-73c1-4d4c-880a-6edb90606fd8', + '17315797-102d-40b4-93e0-432062caca18', + '4a5d8f65-41da-4de4-8968-e035b65339cf', + '75941009-915a-4869-abe7-691bff18279e' + ) + $Roles = $Roles | Where-Object { $PrivilegedRoleTemplateIds -contains $_.RoletemplateId } + } + + if ($CisaHighlyPrivilegedRoles) { + $CisaRoleTemplateIds = @( + '62e90394-69f5-4237-9190-012177145e10', + '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3', + '29232cdf-9323-42fd-ade2-1d097af3e4de', + '729827e3-9c14-49f7-bb1b-9608f156bbb8', + '966707d0-3269-4727-9be2-8c3a10f19b9d', + 'b0f54661-2d74-4c50-afa3-1ec803f12efe' + ) + $Roles = $Roles | Where-Object { $CisaRoleTemplateIds -contains $_.RoletemplateId } + } + + return $Roles +} diff --git a/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 b/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 new file mode 100644 index 000000000000..907917fa69d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 @@ -0,0 +1,49 @@ +function Get-CippDbRoleMembers { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$RoleTemplateId + ) + + $RoleAssignments = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'RoleAssignmentScheduleInstances' + $RoleEligibilities = New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'RoleEligibilitySchedules' + + $ActiveMembers = $RoleAssignments | Where-Object { + $_.roleDefinitionId -eq $RoleTemplateId -and $_.assignmentType -eq 'Assigned' + } + + $EligibleMembers = $RoleEligibilities | Where-Object { + $_.roleDefinitionId -eq $RoleTemplateId + } + + $AllMembers = [System.Collections.Generic.List[object]]::new() + + foreach ($member in $ActiveMembers) { + $memberObj = [PSCustomObject]@{ + id = $member.principalId + displayName = $member.principal.displayName + userPrincipalName = $member.principal.userPrincipalName + '@odata.type' = $member.principal.'@odata.type' + AssignmentType = 'Active' + } + $AllMembers.Add($memberObj) + } + + foreach ($member in $EligibleMembers) { + if ($AllMembers.id -notcontains $member.principalId) { + $memberObj = [PSCustomObject]@{ + id = $member.principalId + displayName = $member.principal.displayName + userPrincipalName = $member.principal.userPrincipalName + '@odata.type' = $member.principal.'@odata.type' + AssignmentType = 'Eligible' + } + $AllMembers.Add($memberObj) + } + } + + return $AllMembers +} diff --git a/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 b/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 new file mode 100644 index 000000000000..6de9dc5c25a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 @@ -0,0 +1,71 @@ +function Get-CippKeyVaultSecret { + <# + .SYNOPSIS + Retrieves a secret from Azure Key Vault using REST API (no Az.KeyVault module required) + + .DESCRIPTION + Lightweight replacement for Get-AzKeyVaultSecret that uses REST API directly. + Significantly faster as it doesn't require loading the Az.KeyVault module. + + .PARAMETER VaultName + Name of the Key Vault. If not provided, derives from WEBSITE_DEPLOYMENT_ID environment variable. + + .PARAMETER Name + Name of the secret to retrieve. + + .PARAMETER AsPlainText + Returns the secret value as plain text instead of SecureString. + + .EXAMPLE + Get-CippKeyVaultSecret -Name 'ApplicationID' -AsPlainText + + .EXAMPLE + Get-CippKeyVaultSecret -VaultName 'mykeyvault' -Name 'RefreshToken' -AsPlainText + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$VaultName, + + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $false)] + [switch]$AsPlainText + ) + + try { + # Derive vault name if not provided + if (-not $VaultName) { + if ($env:WEBSITE_DEPLOYMENT_ID) { + $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + } else { + throw "VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set" + } + } + + # Get access token for Key Vault + $token = Get-CIPPAzIdentityToken -ResourceUrl "https://vault.azure.net" + + # Call Key Vault REST API + $uri = "https://$VaultName.vault.azure.net/secrets/$Name`?api-version=7.4" + $response = Invoke-RestMethod -Uri $uri -Headers @{ + Authorization = "Bearer $token" + } -Method Get -ErrorAction Stop + + # Return based on AsPlainText switch + if ($AsPlainText) { + return $response.value + } else { + # Return object similar to Get-AzKeyVaultSecret for compatibility + return @{ + SecretValue = ($response.value | ConvertTo-SecureString -AsPlainText -Force) + Name = $Name + VaultName = $VaultName + } + } + } catch { + Write-Error "Failed to retrieve secret '$Name' from vault '$VaultName': $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-SlackAlertBlocks.ps1 b/Modules/CIPPCore/Public/Get-SlackAlertBlocks.ps1 new file mode 100644 index 000000000000..52a0fbb2a1f8 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-SlackAlertBlocks.ps1 @@ -0,0 +1,265 @@ +function Get-SlackAlertBlocks { + [CmdletBinding()] + Param( + $JSONBody + ) + + $Blocks = [system.collections.generic.list[object]]::new() + + $Payload = $JSONBody | ConvertFrom-Json + + if ($Payload.API -eq 'Alerts') { + foreach ($Entry in $Payload) { + # Alert log alerts + $Blocks.Add([PSCustomObject]@{ + type = 'header' + text = @{ + type = 'plain_text' + text = 'New Alert from CIPP' + emoji = $true + } + }) + $Blocks.Add([PSCustomObject]@{ + type = 'section' + fields = @( + @{ + type = 'mrkdwn' + text = "*Tenant:*`n" + $Entry.Tenant + }, + @{ + type = 'mrkdwn' + text = "*Username:*`n" + $Entry.Username + }, + @{ + type = 'mrkdwn' + text = "*Timestamp:*`n" + ($Entry.Timestamp | Get-Date).ToString('yyyy-MM-dd @ hh:mm:ss tt') + } + ) + }) + + $Blocks.Add([PSCustomObject]@{ + type = 'section' + text = @{ + type = 'mrkdwn' + text = "*Message:*`n" + $Entry.Message + } + }) + } + } elseif ($Payload.TaskInfo -is [object]) { + #Scheduler + $Blocks.Add([PSCustomObject]@{ + type = 'header' + text = @{ + type = 'plain_text' + text = 'New Alert from CIPP' + emoji = $true + } + }) + $Blocks.Add([PSCustomObject]@{ + type = 'section' + text = @{ + type = 'mrkdwn' + text = "*Task Name:*`n" + $Payload.TaskInfo.Name + } + }) + $Blocks.Add([PSCustomObject]@{ + type = 'section' + fields = @( + @{ + type = 'mrkdwn' + text = "*Timestamp:*`n" + ($Payload.TaskInfo.Timestamp | Get-Date).ToString('yyyy-MM-dd @ hh:mm:ss tt') + }, + @{ + type = 'mrkdwn' + text = "*Tenant:*`n" + $Payload.Tenant + } + ) + }) + $Blocks.Add([PSCustomObject]@{ + type = 'divider' + }) + foreach ($Result in $Payload.Results) { + # Check if results is [string] and create text section + if ($Result -is [string]) { + $Blocks.Add([PSCustomObject]@{ + type = 'section' + text = @{ + type = 'mrkdwn' + text = $Result + } + }) + } else { + #Iterate through property names and create fields + $Fields = [system.collections.generic.list[object]]::new() + foreach ($Key in $Result.PSObject.Properties.Name) { + $Fields.Add(@{ + type = 'mrkdwn' + text = "*$($Key):*`n" + $Result.$Key + }) + } + $Blocks.Add([PSCustomObject]@{ + type = 'section' + fields = @($Fields) + + }) + } + } + } elseif ($Payload.RawData -is [object]) { + # Webhook alert + $Blocks.Add([PSCustomObject]@{ + type = 'header' + text = @{ + type = 'plain_text' + text = 'New Alert from CIPP' + emoji = $true + } + }) + + $Blocks.Add([PSCustomObject]@{ + type = 'section' + text = @{ + type = 'mrkdwn' + text = "*Title:*`n" + $Payload.Title + } + }) + $Blocks.Add([PSCustomObject]@{ + type = 'actions' + elements = @( + @{ + type = 'button' + text = @{ + type = 'plain_text' + text = $Payload.ActionText ?? 'Go to CIPP' + } + url = $Payload.ActionUrl + style = 'primary' + } + ) + }) + $Blocks.Add([PSCustomObject]@{ + type = 'divider' + }) + + $Blocks.Add([PSCustomObject]@{ + type = 'section' + text = @{ + type = 'mrkdwn' + text = '*Webhook Data:*' + } + }) + #loop through rawdata properties and create key value fields + $Fields = [system.collections.generic.list[object]]::new() + foreach ($Key in $Payload.RawData.PSObject.Properties.Name) { + # if value is json continue to next property + if ($Payload.RawData.$Key -is [string] -and ([string]::IsNullOrEmpty($Payload.RawData.$Key) -or (Test-Json $Payload.RawData.$Key -ErrorAction SilentlyContinue))) { + continue + } + # if value is date object + if ($Payload.RawData.$Key -is [datetime]) { + $Fields.Add(@{ + type = 'mrkdwn' + text = "*$($Key):*`n" + $Payload.RawData.$Key.ToString('yyyy-MM-dd @ hh:mm:ss tt') + }) + } elseif ($Payload.RawData.$Key -is [array] -and $Payload.RawData.$Key.Count -gt 0) { + foreach ($SubKey in $Payload.RawData.$Key) { + if ([string]::IsNullOrEmpty($SubKey)) { + continue + } elseif ($SubKey -is [datetime]) { + $Fields.Add(@{ + type = 'mrkdwn' + text = "*$($Key):*`n" + $SubKey.ToString('yyyy-MM-dd @ hh:mm:ss tt') + }) + } else { + $Fields.Add(@{ + type = 'mrkdwn' + text = "*$($Key):*`n" + $SubKey + }) + } + } + } elseif ($Payload.RawData.$Key.PSObject.Properties.Name -is [array] -and $Payload.RawData.$Key.PSObject.Properties.Name.Count -gt 0) { + foreach ($SubKey in $Payload.RawData.$Key.PSObject.Properties.Name) { + if ([string]::IsNullOrEmpty($Payload.RawData.$Key.$SubKey)) { + continue + } elseif ($Payload.RawData.$Key.$SubKey -is [datetime]) { + $Fields.Add(@{ + type = 'mrkdwn' + text = "*$($Key)/$($SubKey):*`n" + $Payload.RawData.$Key.$SubKey.ToString('yyyy-MM-dd @ hh:mm:ss tt') + }) + } elseif (Test-Json $Payload.RawData.$Key.$SubKey -ErrorAction SilentlyContinue) { + # parse json and iterate through properties + continue + <#$SubKeyData = $Payload.RawData.$Key.$SubKey | ConvertFrom-Json + foreach ($SubSubKey in $SubKeyData.PSObject.Properties.Name) { + $Fields.Add(@{ + type = 'mrkdwn' + text = "*$($Key)/$($SubKey)/$($SubSubKey):*`n" + $SubKeyData.$SubSubKey + }) + }#> + } else { + $Fields.Add(@{ + type = 'mrkdwn' + text = "*$($Key)/$($SubKey):*`n" + $Payload.RawData.$Key.$SubKey + }) + } + } + } else { + $Fields.Add(@{ + type = 'mrkdwn' + text = "*$($Key):*`n" + $Payload.RawData.$Key + }) + } + } + + $FieldBatch = [system.collections.generic.list[object]]::new() + for ($i = 0; $i -lt $Fields.Count; $i += 10) { + $FieldBatch.Add($Fields[$i..[math]::Min($i + 9, $Fields.Count - 1)]) + } + foreach ($Batch in $FieldBatch) { + $Blocks.Add([PSCustomObject]@{ + type = 'section' + fields = @($Batch) + }) + } + + # if potentiallocationinfo is present + if ($Payload.PotentialLocationInfo) { + # add divider + $Blocks.Add([PSCustomObject]@{ + type = 'divider' + }) + # add text section for location + $Blocks.Add([PSCustomObject]@{ + type = 'section' + text = @{ + type = 'mrkdwn' + text = '*Potential Location Info:*' + } + }) + # loop through location properties and add fields + $LocationFields = [system.collections.generic.list[object]]::new() + foreach ($Key in $Payload.PotentialLocationInfo.PSObject.Properties.Name) { + $LocationFields.Add(@{ + type = 'mrkdwn' + text = "*$($Key):*`n" + $Payload.PotentialLocationInfo.$Key + }) + } + # add fields to section in groups of 10 + $LocationFieldBatch = [system.collections.generic.list[object]]::new() + for ($i = 0; $i -lt $LocationFields.Count; $i += 10) { + $LocationFieldBatch.Add($LocationFields[$i..[math]::Min($i + 9, $LocationFields.Count - 1)]) + } + foreach ($Batch in $LocationFieldBatch) { + $Blocks.Add([PSCustomObject]@{ + type = 'section' + fields = @($Batch) + }) + } + } + } + + if (($Blocks | Measure-Object).Count -gt 0) { + [PSCustomObject]@{ + blocks = $Blocks + } + } +} diff --git a/Modules/CIPPCore/Public/Get-TenantIdFromSubscriptionId.ps1 b/Modules/CIPPCore/Public/Get-TenantIdFromSubscriptionId.ps1 new file mode 100644 index 000000000000..5c7547fc8b2e --- /dev/null +++ b/Modules/CIPPCore/Public/Get-TenantIdFromSubscriptionId.ps1 @@ -0,0 +1,26 @@ +function Get-TenantIdFromSubscriptionId { + param ( + [Parameter(Mandatory = $true)] + [string]$SubscriptionId + ) + + # Full credit goes to Jos Lieben + # https://www.lieben.nu/liebensraum/2020/08/get-tenant-id-using-azure-subscription-id/ + + try { + Invoke-WebRequest -UseBasicParsing -Uri "https://management.azure.com/subscriptions/$($SubscriptionId)`?api-version=2015-01-01" -ErrorAction Stop + } catch { + # The error response contains the WWW-Authenticate header with the tenant ID + $response = $_.Exception.Response + } + + # Extract tenant ID from WWW-Authenticate header + $authHeader = $response.Headers.GetValues("WWW-Authenticate")[0] + + # Use regex to extract the tenant ID + if ($authHeader -match "login\.windows\.net\/([0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})") { + return $matches[1] + } + + return $null +} diff --git a/Modules/CIPPCore/Public/Get-TenantProperties.ps1 b/Modules/CIPPCore/Public/Get-TenantProperties.ps1 new file mode 100644 index 000000000000..53f384150e44 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-TenantProperties.ps1 @@ -0,0 +1,17 @@ +function Get-TenantProperties { + param ( + [string]$customerId + ) + + $tableName = 'TenantProperties' + $query = "PartitionKey eq '$customerId'" + $Table = Get-CIPPTable -TableName $tableName + $tenantProperties = Get-CIPPAzDataTableEntity @Table -Filter $query + + $properties = @{} + foreach ($property in $tenantProperties) { + $properties[$property.RowKey] = $property.Value + } + + return $properties +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 b/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 new file mode 100644 index 000000000000..2c361bf3e2bb --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Clear-CIPPAzStorageQueue.ps1 @@ -0,0 +1,43 @@ +function Clear-CIPPAzStorageQueue { + <# + .SYNOPSIS + Clears all messages from a specified Azure Storage Queue. + .DESCRIPTION + Issues a DELETE request to //messages via New-CIPPAzStorageRequest. + Returns a compact object with StatusCode, Headers, and Request Uri. + .PARAMETER Name + The name of the queue to clear. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage. + .EXAMPLE + Clear-CIPPAzStorageQueue -Name 'cippjta72-workitems' + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateNotNullOrEmpty()] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + if ($PSCmdlet.ShouldProcess($Name, 'Clear queue messages')) { + try { + $headers = @{ Accept = 'application/xml' } + $resp = New-CIPPAzStorageRequest -Service 'queue' -Resource ("$Name/messages") -Method 'DELETE' -Headers $headers -ConnectionString $ConnectionString + if ($null -eq $resp) { + # Fallback when no object returned: assume 204 if no exception was thrown + return [PSCustomObject]@{ StatusCode = 204; Headers = @{}; Uri = $null; Name = $Name } + } + # Normalize to concise output and include the queue name + $status = $null; $uri = $null; $hdrs = @{} + if ($resp.PSObject.Properties['StatusCode']) { $status = [int]$resp.StatusCode } + if ($resp.PSObject.Properties['Uri']) { $uri = $resp.Uri } + if ($resp.PSObject.Properties['Headers']) { $hdrs = $resp.Headers } + return [PSCustomObject]@{ Name = $Name; StatusCode = $status; Headers = $hdrs; Uri = $uri } + } catch { + throw $_ + } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 b/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 new file mode 100644 index 000000000000..698288f18598 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Convert-SKUName.ps1 @@ -0,0 +1,18 @@ +function Convert-SKUname { + <# + .FUNCTIONALITY + Internal + #> + param( + $SkuName, + $SkuID, + $ConvertTable + ) + if (!$ConvertTable) { + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') + } + if ($SkuName) { $ReturnedName = ($ConvertTable | Where-Object { $_.String_Id -eq $SkuName } | Select-Object -Last 1).'Product_Display_Name' } + if ($SkuID) { $ReturnedName = ($ConvertTable | Where-Object { $_.guid -eq $SkuID } | Select-Object -Last 1).'Product_Display_Name' } + if ($ReturnedName) { return $ReturnedName } else { return $SkuName, $SkuID } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequest.ps1 new file mode 100644 index 000000000000..7cdc576078d0 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequest.ps1 @@ -0,0 +1,26 @@ + +function Get-AuthorisedRequest { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + Param( + [string]$TenantID, + [string]$Uri + ) + if (!$TenantID) { + $TenantID = $env:TenantID + } + + if ($Uri -like 'https://graph.microsoft.com/beta/contracts*' -or $Uri -like '*/customers/*' -or $Uri -eq 'https://graph.microsoft.com/v1.0/me/sendMail' -or $Uri -like '*/tenantRelationships/*' -or $Uri -like '*/security/partner/*') { + return $true + } + $Tenant = Get-Tenants -IncludeErrors -TenantFilter $TenantID | Where-Object { $_.Excluded -eq $false } + + if ($Tenant) { + return $true + } else { + return $false + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 new file mode 100644 index 000000000000..54b2c332faa8 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSetting.ps1 @@ -0,0 +1,35 @@ +function Get-CIPPAzFunctionAppSetting { + <# + .SYNOPSIS + Retrieves Azure Function App application settings via ARM REST using managed identity. + .PARAMETER Name + Function App name. + .PARAMETER ResourceGroupName + Resource group name. + .PARAMETER AccessToken + Optional bearer token to override Managed Identity. If provided, this token is used for Authorization. + .EXAMPLE + Get-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName, + + [Parameter(Mandatory = $false)] + [string]$AccessToken + ) + + $subscriptionId = Get-CIPPAzFunctionAppSubId + $apiVersion = '2024-11-01' + $uri = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Web/sites/$Name/config/appsettings/list?api-version=$apiVersion" + + # ARM peculiarity: listing appsettings can require POST on some endpoints + $restParams = @{ Uri = $uri; Method = 'POST' } + if ($AccessToken) { $restParams.AccessToken = $AccessToken } + $resp = New-CIPPAzRestRequest @restParams + return $resp +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 new file mode 100644 index 000000000000..98418a2add4b --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzFunctionAppSubId.ps1 @@ -0,0 +1,15 @@ +function Get-CIPPAzFunctionAppSubId { + <# + .SYNOPSIS + Get the subscription ID for the current function app + .DESCRIPTION + Get the subscription ID for the current function app + .EXAMPLE + Get-CIPPAzFunctionAppSubId + #> + [CmdletBinding()] + param() + + $SubscriptionId = $env:WEBSITE_OWNER_NAME -split '\+' | Select-Object -First 1 + return $SubscriptionId +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 new file mode 100644 index 000000000000..bcc7a0c44abf --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageContainer.ps1 @@ -0,0 +1,155 @@ +function Get-CIPPAzStorageContainer { + <# + .SYNOPSIS + Lists Azure Storage blob containers using Shared Key auth. + .DESCRIPTION + Uses New-CIPPAzStorageRequest to call the Blob service list API. + - Uses server-side 'prefix' when Name ends with a single trailing '*'. + - Builds container URIs from the connection string (standard, provided endpoint, emulator). + - Passes through container Properties returned by the service. + .PARAMETER Name + Container name filter. Supports wildcards (e.g., 'cipp*'). Defaults to '*'. + When the pattern ends with a single trailing '*' and contains no other wildcards, + a server-side 'prefix' is used for listing; otherwise client-side filtering is applied. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .EXAMPLE + Get-CIPPAzStorageContainer -Name 'cipp*' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false, Position = 0)] + [string]$Name = '*', + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + begin { + function Parse-ConnString { + param([string]$Conn) + $map = @{} + if (-not $Conn) { return $map } + foreach ($part in ($Conn -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $map[$matches[1]] = $matches[2] } + } + $map + } + + function Get-BlobBaseInfo { + param([hashtable]$ConnParams) + $service = 'blob' + $svcCap = [char]::ToUpper($service[0]) + $service.Substring(1) + $endpointKey = "${svcCap}Endpoint" + $provided = $ConnParams[$endpointKey] + $useDev = ($ConnParams['UseDevelopmentStorage'] -eq 'true') + $account = $ConnParams['AccountName'] + + if ($provided) { + $u = [System.Uri]::new($provided) + return [PSCustomObject]@{ + Scheme = $u.Scheme + Host = $u.Host + Port = $u.Port + Path = $u.AbsolutePath.TrimEnd('/') + Mode = 'ProvidedEndpoint' + Account = $account + } + } + + if ($useDev) { + return [PSCustomObject]@{ + Scheme = 'http' + Host = '127.0.0.1' + Port = 10000 + Path = $null + Mode = 'Emulator' + Account = ($account ?? 'devstoreaccount1') + } + } + + $suffix = $ConnParams['EndpointSuffix'] + if (-not $suffix) { $suffix = 'core.windows.net' } + $scheme = $ConnParams['DefaultEndpointsProtocol'] + if (-not $scheme) { $scheme = 'https' } + return [PSCustomObject]@{ + Scheme = $scheme + Host = "$account.blob.$suffix" + Port = -1 + Path = $null + Mode = 'Standard' + Account = $account + } + } + + function Build-ContainerUri { + param([pscustomobject]$BaseInfo, [string]$ContainerName) + $ub = [System.UriBuilder]::new() + $ub.Scheme = $BaseInfo.Scheme + $ub.Host = $BaseInfo.Host + if ($BaseInfo.Port -and $BaseInfo.Port -ne -1) { $ub.Port = [int]$BaseInfo.Port } + switch ($BaseInfo.Mode) { + 'ProvidedEndpoint' { + $prefixPath = $BaseInfo.Path + if ([string]::IsNullOrEmpty($prefixPath)) { $ub.Path = "/$ContainerName" } + else { $ub.Path = ("$prefixPath/$ContainerName").Replace('//', '/') } + } + 'Emulator' { $ub.Path = "$($BaseInfo.Account)/$ContainerName" } + default { $ub.Path = "/$ContainerName" } + } + $ub.Uri.AbsoluteUri + } + } + + process { + $connParams = Parse-ConnString -Conn $ConnectionString + $baseInfo = Get-BlobBaseInfo -ConnParams $connParams + + # Determine server-side prefix optimization + $serverPrefix = $null + $pattern = $Name + if ([string]::IsNullOrEmpty($pattern)) { $pattern = '*' } + $canUsePrefix = $false + if ($pattern.EndsWith('*') -and $pattern.IndexOfAny([char[]]@('*', '?')) -eq ($pattern.Length - 1)) { + $serverPrefix = $pattern.Substring(0, $pattern.Length - 1) + $canUsePrefix = $true + } + + $listParams = @{ Service = 'blob'; Component = 'list'; ConnectionString = $ConnectionString } + if ($canUsePrefix -and $serverPrefix) { $listParams['QueryParams'] = @{ prefix = $serverPrefix } } + + $containers = New-CIPPAzStorageRequest @listParams + if (-not $containers) { return @() } + + # Normalize to array of {Name, Properties} + $items = @() + foreach ($c in $containers) { + if ($null -ne $c -and $c.PSObject.Properties['Name']) { + $items += [PSCustomObject]@{ Name = $c.Name; Properties = $c.Properties } + } + } + + # Client-side wildcard filtering when needed + if (-not $canUsePrefix) { + $items = $items | Where-Object { $_.Name -like $pattern } + } + + $results = @() + foreach ($it in $items) { + $uri = Build-ContainerUri -BaseInfo $baseInfo -ContainerName $it.Name + $results += [PSCustomObject]@{ + Name = $it.Name + Uri = $uri + Properties = $it.Properties + } + } + + # Optional banner for UX parity when displayed directly + if ($results.Count -gt 0 -and $baseInfo.Account) { + Write-Host "\n Storage Account Name: $($baseInfo.Account)\n" -ForegroundColor DarkGray + } + + $results + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 new file mode 100644 index 000000000000..91e7c11077ad --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPAzStorageQueue.ps1 @@ -0,0 +1,166 @@ +function Get-CIPPAzStorageQueue { + <# + .SYNOPSIS + Lists Azure Storage queues and approximate message counts using Shared Key auth. + .DESCRIPTION + Uses New-CIPPAzStorageRequest to call the Queue service REST API. + - Lists queues (optionally with server-side prefix when Name ends with '*'). + - Enriches each queue with ApproximateMessageCount via comp=metadata. + - Constructs queue URIs consistent with the resolved endpoint. + .PARAMETER Name + Queue name filter. Supports wildcards (e.g., 'cipp*'). Defaults to '*'. + When the pattern ends with a single trailing '*' and contains no other wildcards, + a server-side 'prefix' is used for listing; otherwise client-side filtering is applied. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .PARAMETER NoCount + If set, skips the metadata call and returns ApproximateMessageCount as $null. + .EXAMPLE + Get-CIPPAzStorageQueue -Name 'cippjta*' + Returns objects similar to Get-AzStorageQueue with Name, Uri, and ApproximateMessageCount. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false, Position = 0)] + [string]$Name = '*', + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage, + + [Parameter(Mandatory = $false)] + [switch]$NoCount + ) + + begin { + function Parse-ConnString { + param([string]$Conn) + $map = @{} + if (-not $Conn) { return $map } + foreach ($part in ($Conn -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $map[$matches[1]] = $matches[2] } + } + $map + } + + function Get-QueueBaseInfo { + param([hashtable]$ConnParams) + $service = 'queue' + $svcCap = [char]::ToUpper($service[0]) + $service.Substring(1) + $endpointKey = "${svcCap}Endpoint" + $provided = $ConnParams[$endpointKey] + $useDev = ($ConnParams['UseDevelopmentStorage'] -eq 'true') + $account = $ConnParams['AccountName'] + + if ($provided) { + $u = [System.Uri]::new($provided) + return [PSCustomObject]@{ + Scheme = $u.Scheme + Host = $u.Host + Port = $u.Port + Path = $u.AbsolutePath.TrimEnd('/') + Mode = 'ProvidedEndpoint' + Account = $account + } + } + + if ($useDev) { + return [PSCustomObject]@{ + Scheme = 'http' + Host = '127.0.0.1' + Port = 10001 + Path = $null + Mode = 'Emulator' + Account = ($account ?? 'devstoreaccount1') + } + } + + $suffix = $ConnParams['EndpointSuffix'] + if (-not $suffix) { $suffix = 'core.windows.net' } + $scheme = $ConnParams['DefaultEndpointsProtocol'] + if (-not $scheme) { $scheme = 'https' } + return [PSCustomObject]@{ + Scheme = $scheme + Host = "$account.queue.$suffix" + Port = -1 + Path = $null + Mode = 'Standard' + Account = $account + } + } + + function Build-QueueUri { + param([pscustomobject]$BaseInfo, [string]$QueueName) + $ub = [System.UriBuilder]::new() + $ub.Scheme = $BaseInfo.Scheme + $ub.Host = $BaseInfo.Host + if ($BaseInfo.Port -and $BaseInfo.Port -ne -1) { $ub.Port = [int]$BaseInfo.Port } + switch ($BaseInfo.Mode) { + 'ProvidedEndpoint' { + $prefixPath = $BaseInfo.Path + if ([string]::IsNullOrEmpty($prefixPath)) { $ub.Path = "/$QueueName" } + else { $ub.Path = ("$prefixPath/$QueueName").Replace('//', '/') } + } + 'Emulator' { $ub.Path = "$($BaseInfo.Account)/$QueueName" } + default { $ub.Path = "/$QueueName" } + } + $ub.Uri.AbsoluteUri + } + } + + process { + $connParams = Parse-ConnString -Conn $ConnectionString + $baseInfo = Get-QueueBaseInfo -ConnParams $connParams + + # Determine server-side prefix optimization + $serverPrefix = $null + $pattern = $Name + if ([string]::IsNullOrEmpty($pattern)) { $pattern = '*' } + $canUsePrefix = $false + if ($pattern.EndsWith('*') -and $pattern.IndexOfAny([char[]]@('*', '?')) -eq ($pattern.Length - 1)) { + $serverPrefix = $pattern.Substring(0, $pattern.Length - 1) + $canUsePrefix = $true + } + + $listParams = @{ Service = 'queue'; Component = 'list'; ConnectionString = $ConnectionString } + if ($canUsePrefix -and $serverPrefix) { $listParams['QueryParams'] = @{ prefix = $serverPrefix } } + + $queues = New-CIPPAzStorageRequest @listParams + if (-not $queues) { return @() } + + # Normalize to array of names + $queueItems = @() + foreach ($q in $queues) { + if ($null -ne $q -and $q.PSObject.Properties['Name']) { $queueItems += $q.Name } + } + + # Client-side wildcard filtering when needed + if (-not $canUsePrefix) { + $queueItems = $queueItems | Where-Object { $_ -like $pattern } + } + + $results = @() + foreach ($qn in $queueItems) { + $uri = Build-QueueUri -BaseInfo $baseInfo -QueueName $qn + $count = $null + if (-not $NoCount) { + try { + $meta = New-CIPPAzStorageRequest -Service 'queue' -Component 'metadata' -Resource $qn -ConnectionString $ConnectionString -Method 'GET' + if ($meta -and $meta.PSObject.Properties['ApproximateMessagesCount']) { $count = $meta.ApproximateMessagesCount } + } catch { $count = $null } + } + $results += [PSCustomObject]@{ + Name = $qn + Uri = $uri + ApproximateMessageCount = $count + } + } + + # Optional banner for UX parity when displayed directly + if ($results.Count -gt 0 -and $baseInfo.Account) { + Write-Host "\n Storage Account Name: $($baseInfo.Account)\n" -ForegroundColor DarkGray + } + + $results + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CIPPTable.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPTable.ps1 new file mode 100644 index 000000000000..b050af128cee --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CIPPTable.ps1 @@ -0,0 +1,16 @@ +function Get-CIPPTable { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param ( + $tablename = 'CippLogs' + ) + $Context = New-AzDataTableContext -ConnectionString $env:AzureWebJobsStorage -TableName $tablename + New-AzDataTable -Context $Context | Out-Null + + @{ + Context = $Context + } +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CippException.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CippException.ps1 new file mode 100644 index 000000000000..af5d0ae7ef65 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CippException.ps1 @@ -0,0 +1,16 @@ +function Get-CippException { + Param( + [Parameter(Mandatory = $true, ValueFromPipeline = $true, Position = 0)] + $Exception + ) + + [PSCustomObject]@{ + Message = $Exception.Exception.Message + NormalizedError = Get-NormalizedError -message $Exception.Exception.Message + Position = $Exception.InvocationInfo.PositionMessage + StackTrace = ($Exception.ScriptStackTrace | Out-String) + ScriptName = $Exception.InvocationInfo.ScriptName + LineNumber = $Exception.InvocationInfo.ScriptLineNumber + Category = $Exception.CategoryInfo.ToString() + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 new file mode 100644 index 000000000000..2ab308fc22c5 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CippSamPermissions.ps1 @@ -0,0 +1,196 @@ +function Get-CippSamPermissions { + <# + .SYNOPSIS + This script retrieves the CIPP-SAM permissions. + + .DESCRIPTION + The Get-CippSamManifest function is used to retrieve the CIPP-SAM permissions either from the manifest files or table. + + .EXAMPLE + Get-CippSamManifest + Retrieves the CIPP SAM manifest located in the module root + + .FUNCTIONALITY + Internal + #> + [CmdletBinding(DefaultParameterSetName = 'Default')] + Param( + [Parameter(ParameterSetName = 'ManifestOnly')] + [switch]$ManifestOnly, + [Parameter(ParameterSetName = 'Default')] + [switch]$SavedOnly, + [Parameter(ParameterSetName = 'Diff')] + [switch]$NoDiff + ) + + if (!$SavedOnly.IsPresent) { + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $SamManifestFile = Get-Item (Join-Path $ModuleBase 'lib\data\SAMManifest.json') + $AdditionalPermissions = Get-Item (Join-Path $ModuleBase 'lib\data\AdditionalPermissions.json') + + $ServicePrincipalList = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/servicePrincipals?$top=999&$select=id,appId,displayName' -tenantid $env:TenantID -NoAuthCheck $true + $SAMManifest = Get-Content -Path $SamManifestFile.FullName | ConvertFrom-Json + $AdditionalPermissions = Get-Content -Path $AdditionalPermissions.FullName | ConvertFrom-Json + + $RequiredResources = $SAMManifest.requiredResourceAccess + + $AppIds = ($RequiredResources.resourceAppId + $AdditionalPermissions.resourceAppId) | Sort-Object -Unique + + Write-Information "Retrieving service principals for $($AppIds.Count) applications" + $UsedServicePrincipals = $ServicePrincipalList | Where-Object -Property appId -In $AppIds + $Requests = $UsedServicePrincipals | ForEach-Object { + @( + @{ + id = $_.id + url = 'servicePrincipals/{0}?$select=appId,displayName,appRoles,publishedPermissionScopes' -f $_.id + method = 'GET' + } + ) + } + $BulkRequests = New-GraphBulkRequest -Requests $Requests -NoAuthCheck $true -tenantid $env:TenantID + $ServicePrincipals = $BulkRequests | ForEach-Object { + $_.body + } + + $Permissions = @{} + foreach ($AppId in $AppIds) { + $ServicePrincipal = $ServicePrincipals | Where-Object -Property appId -EQ $AppId + $AppPermissions = [System.Collections.Generic.List[object]]@() + $ManifestPermissions = ($RequiredResources | Where-Object -Property resourceAppId -EQ $AppId).resourceAccess + $UnpublishedPermissions = ($AdditionalPermissions | Where-Object -Property resourceAppId -EQ $AppId).resourceAccess + + foreach ($Permission in $ManifestPermissions) { + $AppPermissions.Add($Permission) + } + if ($UnpublishedPermissions) { + foreach ($Permission in $UnpublishedPermissions) { + $AppPermissions.Add($Permission) + } + } + + $ApplicationPermissions = [system.collections.generic.list[object]]@() + $DelegatedPermissions = [system.collections.generic.list[object]]@() + foreach ($Permission in $AppPermissions) { + if ($Permission.id -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + if ($Permission.type -eq 'Role') { + $PermissionName = ($ServicePrincipal.appRoles | Where-Object -Property id -EQ $Permission.id).value + } else { + $PermissionName = ($ServicePrincipal.publishedPermissionScopes | Where-Object -Property id -EQ $Permission.id).value + } + } else { + $PermissionName = $Permission.id + } + + if ($Permission.type -eq 'Role') { + $ApplicationPermissions.Add([PSCustomObject]@{ + id = $Permission.id + value = $PermissionName + + }) + } else { + $DelegatedPermissions.Add([PSCustomObject]@{ + id = $Permission.id + value = $PermissionName + }) + } + } + + $ServicePrincipal = $ServicePrincipals | Where-Object -Property appId -EQ $AppId + $Permissions.$AppId = @{ + applicationPermissions = @($ApplicationPermissions | Sort-Object -Property label) + delegatedPermissions = @($DelegatedPermissions | Sort-Object -Property label) + } + } + } + if ($ManifestOnly) { + return [PSCustomObject]@{ + Permissions = $Permissions + Type = 'Manifest' + } + } + + $Table = Get-CippTable -tablename 'AppPermissions' + $SavedPermissions = Get-CippAzDataTableEntity @Table -Filter "PartitionKey eq 'CIPP-SAM' and RowKey eq 'CIPP-SAM'" + if ($SavedPermissions.Permissions) { + try { + $SavedPermissions.Permissions = $SavedPermissions.Permissions | ConvertFrom-Json -ErrorAction Stop + } catch { + $SavedPermissions.Permissions = [PSCustomObject]@{} + } + } else { + $SavedPermissions = @{ + Permissions = [PSCustomObject]@{} + } + } + + if ($SavedOnly.IsPresent) { + $SavedPermissions | Add-Member -MemberType NoteProperty -Name Type -Value 'Table' + return $SavedPermissions + } + + if (!$NoDiff.IsPresent -and $SavedPermissions.Permissions) { + $DiffPermissions = @{} + foreach ($AppId in $AppIds) { + $ManifestSpPermissions = $Permissions.$AppId + $ServicePrincipal = $ServicePrincipals | Where-Object -Property appId -EQ $AppId + $SavedSpPermission = $SavedPermissions.Permissions.$AppId + $MissingApp = [System.Collections.Generic.List[object]]::new() + $MissingDelegated = [System.Collections.Generic.List[object]]::new() + foreach ($Permission in $ManifestSpPermissions.applicationPermissions) { + if ($SavedSpPermission.applicationPermissions.id -notcontains $Permission.id) { + $AppRole = $ServicePrincipal.appRoles | Where-Object -Property id -EQ $Permission.id | Select-Object id, value + $MissingApp.Add($AppRole ?? $Permission) + } + } + foreach ($Permission in $ManifestSpPermissions.delegatedPermissions) { + if ($SavedSpPermission.delegatedPermissions.id -notcontains $Permission.id) { + $PermissionScope = $ServicePrincipal.publishedPermissionScopes | Where-Object -Property id -EQ $Permission.id | Select-Object id, value + $MissingDelegated.Add($PermissionScope ?? $Permission) + } + } + if ($MissingApp -or $MissingDelegated) { + $DiffPermissions.$AppId = @{ + applicationPermissions = $MissingApp + delegatedPermissions = $MissingDelegated + } + } + } + } + + $SamAppPermissions = @{} + if (($SavedPermissions.Permissions.PSObject.Properties.Name | Measure-Object).Count -gt 0) { + $SamAppPermissions.Permissions = $SavedPermissions.Permissions + $SamAppPermissions.UsedServicePrincipals = $UsedServicePrincipals + $SamAppPermissions.UpdatedBy = $SavedPermissions.UpdatedBy + $SamAppPermissions.Timestamp = $SavedPermissions.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') + $SamAppPermissions.Type = 'Table' + } else { + $SamAppPermissions.Permissions = $Permissions + $SamAppPermissions.UsedServicePrincipals = $UsedServicePrincipals + $SamAppPermissions.Type = 'Manifest' + $SamAppPermissions.UpdatedBy = 'CIPP' + $SamAppPermissions.Timestamp = $SamManifestFile.LastWriteTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + + $Entity = @{ + 'PartitionKey' = 'CIPP-SAM' + 'RowKey' = 'CIPP-SAM' + 'Permissions' = [string]([PSCustomObject]$Permissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = 'CIPP' + } + $Table = Get-CIPPTable -TableName 'AppPermissions' + try { + $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + } catch { + Write-Error "Failed to save the CIPP-SAM permissions: $($_.Exception.Message)" + } + } + + if (!$NoDiff.IsPresent -and $SamAppPermissions.Type -eq 'Table') { + $SamAppPermissions.MissingPermissions = $DiffPermissions + } + + $SamAppPermissions = $SamAppPermissions | ConvertTo-Json -Depth 10 -Compress | ConvertFrom-Json + + return $SamAppPermissions +} + diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-ClassicAPIToken.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-ClassicAPIToken.ps1 new file mode 100644 index 000000000000..23bd67941e56 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-ClassicAPIToken.ps1 @@ -0,0 +1,45 @@ +function Get-ClassicAPIToken($tenantID, $Resource) { + <# + .FUNCTIONALITY + Internal + #> + $TokenKey = '{0}-{1}' -f $TenantID, $Resource + if ($script:classictoken.$TokenKey -and [int](Get-Date -UFormat %s -Millisecond 0) -lt $script:classictoken.$TokenKey.expires_on) { + #Write-Host 'Classic: cached token' + return $script:classictoken.$TokenKey + } else { + #Write-Host 'Using classic' + $uri = "https://login.microsoftonline.com/$($TenantID)/oauth2/token" + $Body = @{ + client_id = $env:ApplicationID + client_secret = $env:ApplicationSecret + resource = $Resource + refresh_token = $env:RefreshToken + grant_type = 'refresh_token' + } + try { + if (!$script:classictoken) { $script:classictoken = [HashTable]::Synchronized(@{}) } + $script:classictoken.$TokenKey = Invoke-RestMethod $uri -Body $body -ContentType 'application/x-www-form-urlencoded' -ErrorAction SilentlyContinue -Method post + return $script:classictoken.$TokenKey + } catch { + # Track consecutive Graph API failures + $TenantsTable = Get-CippTable -tablename Tenants + $Filter = "PartitionKey eq 'Tenants' and (defaultDomainName eq '{0}' or customerId eq '{0}')" -f $tenantid + $Tenant = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter + if (!$Tenant) { + $Tenant = @{ + GraphErrorCount = $null + LastGraphTokenError = $null + LastGraphError = $null + PartitionKey = 'TenantFailed' + RowKey = 'Failed' + } + } + $Tenant.LastGraphError = $_.Exception.Message + $Tenant.GraphErrorCount++ + + Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant + Throw "Failed to obtain Classic API Token for $TenantID - $_" + } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-GraphBulkResultByID.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-GraphBulkResultByID.ps1 new file mode 100644 index 000000000000..ed8d6de49833 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-GraphBulkResultByID.ps1 @@ -0,0 +1,11 @@ +function Get-GraphBulkResultByID ($Results, $ID, [switch]$Value) { + <# + .FUNCTIONALITY + Internal + #> + if ($Value) { + ($Results | Where-Object { $_.id -eq $ID }).body.value + } else { + ($Results | Where-Object { $_.id -eq $ID }).body + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 new file mode 100644 index 000000000000..327052774f61 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 @@ -0,0 +1,112 @@ +function Get-GraphToken($tenantid, $scope, $AsApp, $AppID, $AppSecret, $refreshToken, $ReturnRefresh, $SkipCache) { + <# + .FUNCTIONALITY + Internal + #> + if (!$scope) { $scope = 'https://graph.microsoft.com/.default' } + + if (!$env:SetFromProfile) { $CIPPAuth = Get-CIPPAuthentication; Write-Host 'Could not get Refreshtoken from environment variable. Reloading token.' } + $ConfigTable = Get-CippTable -tablename 'Config' + $Filter = "PartitionKey eq 'AppCache' and RowKey eq 'AppCache'" + $AppCache = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + #force auth update is appId is not the same as the one in the environment variable. + if ($AppCache.ApplicationId -and $env:ApplicationID -ne $AppCache.ApplicationId) { + Write-Host "Setting environment variable ApplicationID to $($AppCache.ApplicationId)" + $CIPPAuth = Get-CIPPAuthentication + } + $refreshToken = $env:RefreshToken + if (!$tenantid) { $tenantid = $env:TenantID } + #Get list of tenants that have 'directTenant' set to true + #get directtenants directly from table, avoid get-tenants due to performance issues + $TenantsTable = Get-CippTable -tablename 'Tenants' + $Filter = "PartitionKey eq 'Tenants' and delegatedPrivilegeStatus eq 'directTenant'" + $ClientType = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter | Where-Object { $_.customerId -eq $tenantid -or $_.defaultDomainName -eq $tenantid } + if ($tenantid -ne $env:TenantID -and $clientType.delegatedPrivilegeStatus -eq 'directTenant') { + Write-Host "Using direct tenant refresh token for $($clientType.customerId)" + $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue + $refreshToken = $ClientRefreshToken.Value + } + + $AuthBody = @{ + client_id = $env:ApplicationID + client_secret = $env:ApplicationSecret + scope = $Scope + refresh_token = $refreshToken + grant_type = 'refresh_token' + } + if ($asApp -eq $true) { + $AuthBody = @{ + client_id = $env:ApplicationID + client_secret = $env:ApplicationSecret + scope = $Scope + grant_type = 'client_credentials' + } + } + + if ($null -ne $AppID -and $null -ne $refreshToken) { + $AuthBody = @{ + client_id = $appid + refresh_token = $refreshToken + scope = $Scope + grant_type = 'refresh_token' + } + } + + if ($null -ne $AppID -and $null -ne $AppSecret) { + $AuthBody = @{ + client_id = $AppID + client_secret = $AppSecret + scope = $Scope + grant_type = 'client_credentials' + } + } + + + $TokenKey = '{0}-{1}-{2}' -f $tenantid, $scope, $asApp + + try { + if ($script:AccessTokens.$TokenKey -and [int](Get-Date -UFormat %s -Millisecond 0) -lt $script:AccessTokens.$TokenKey.expires_on -and $SkipCache -ne $true) { + #Write-Host 'Graph: cached token' + $AccessToken = $script:AccessTokens.$TokenKey + } else { + #Write-Host 'Graph: new token' + $AccessToken = (Invoke-RestMethod -Method post -Uri "https://login.microsoftonline.com/$($tenantid)/oauth2/v2.0/token" -Body $Authbody -ErrorAction Stop) + $ExpiresOn = [int](Get-Date -UFormat %s -Millisecond 0) + $AccessToken.expires_in + Add-Member -InputObject $AccessToken -NotePropertyName 'expires_on' -NotePropertyValue $ExpiresOn + if (!$script:AccessTokens) { $script:AccessTokens = [HashTable]::Synchronized(@{}) } + $script:AccessTokens.$TokenKey = $AccessToken + } + + if ($ReturnRefresh) { $header = $AccessToken } else { $header = @{ Authorization = "Bearer $($AccessToken.access_token)" } } + return $header + } catch { + # Track consecutive Graph API failures + $TenantsTable = Get-CippTable -tablename Tenants + $Filter = "PartitionKey eq 'Tenants' and (defaultDomainName eq '{0}' or customerId eq '{0}')" -f $tenantid + $Tenant = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter + if (!$Tenant.RowKey) { + $donotset = $true + $Tenant = [pscustomobject]@{ + GraphErrorCount = 0 + LastGraphTokenError = '' + LastGraphError = '' + PartitionKey = 'TenantFailed' + RowKey = 'Failed' + } + } + $Tenant.LastGraphError = if ( $_.ErrorDetails.Message) { + if (Test-Json $_.ErrorDetails.Message -ErrorAction SilentlyContinue) { + $msg = $_.ErrorDetails.Message | ConvertFrom-Json + "$($msg.error):$($msg.error_description)" + } else { + "$($_.ErrorDetails.Message)" + } + } else { + $_.Exception.Message + } + $Tenant.GraphErrorCount++ + + if (!$donotset) { Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant } + throw "Could not get token: $($Tenant.LastGraphError)" + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-GraphTokenFromCert.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-GraphTokenFromCert.ps1 new file mode 100644 index 000000000000..8887a0c3bb95 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-GraphTokenFromCert.ps1 @@ -0,0 +1,117 @@ +function Get-GraphTokenFromCert { + param( + [Parameter(Mandatory = $true)] + [string]$TenantId, + + [Parameter(Mandatory = $true)] + [string]$AppId, + + [string]$Scope = 'https://graph.microsoft.com/.default', + [Parameter(Mandatory = $true)] + [System.Security.Cryptography.X509Certificates.X509Certificate2]$Certificate + ) + ######################################################### + # Create Bearer Token From Certificate for HBU Graph + ######################################################### + + # get sha256 hash of certificate + $sha256 = New-Object System.Security.Cryptography.SHA256CryptoServiceProvider + $hash = $sha256.ComputeHash($Certificate.RawData) + $hash = [Convert]::ToBase64String($hash) + + # Create JWT timestamp for expiration + $StartDate = (Get-Date '1970-01-01T00:00:00Z' ).ToUniversalTime() + $JWTExpirationTimeSpan = (New-TimeSpan -Start $StartDate -End (Get-Date).ToUniversalTime().AddMinutes(2)).TotalSeconds + $JWTExpiration = [math]::Round($JWTExpirationTimeSpan, 0) + + # Create JWT validity start timestamp + $NotBeforeExpirationTimeSpan = (New-TimeSpan -Start $StartDate -End ((Get-Date).ToUniversalTime())).TotalSeconds + $NotBefore = [math]::Round($NotBeforeExpirationTimeSpan, 0) + + # Create JWT header + $JWTHeader = @{ + alg = 'PS256' + typ = 'JWT' + # Use the CertificateBase64Hash and replace/strip to match web encoding of base64 + 'x5t#S256' = $hash -replace '\+', '-' -replace '/', '_' -replace '=' + } + + # Create JWT payload + $JWTPayLoad = @{ + # Issuer = your application + iss = $AppId + + # What endpoint is allowed to use this JWT + aud = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" + + # JWT ID: random guid + jti = [guid]::NewGuid() + + # Expiration timestamp + exp = $JWTExpiration + + # Not to be used before + nbf = $NotBefore + + # JWT Subject + sub = $AppId + } + + # Convert header and payload to base64 + $JWTHeaderToByte = [System.Text.Encoding]::UTF8.GetBytes(($JWTHeader | ConvertTo-Json)) + $EncodedHeader = [System.Convert]::ToBase64String($JWTHeaderToByte) + + $JWTPayLoadToByte = [System.Text.Encoding]::UTF8.GetBytes(($JWTPayload | ConvertTo-Json)) + $EncodedPayload = [System.Convert]::ToBase64String($JWTPayLoadToByte) + + # Join header and Payload with "." to create a valid (unsigned) JWT + $JWT = $EncodedHeader + '.' + $EncodedPayload + + # Get the private key object of your certificate + # $PrivateKey = $Certificate.PrivateKey + $PrivateKey = ([System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($Certificate)) + + # Define RSA signature and hashing algorithm + $RSAPadding = [Security.Cryptography.RSASignaturePadding]::Pss + $HashAlgorithm = [Security.Cryptography.HashAlgorithmName]::SHA256 + + # Create a signature of the JWT + $Signature = [Convert]::ToBase64String( + $PrivateKey.SignData([System.Text.Encoding]::UTF8.GetBytes($JWT), $HashAlgorithm, $RSAPadding) + ) -replace '\+', '-' -replace '/', '_' -replace '=' + + # Join the signature to the JWT with "." + $JWT = $JWT + '.' + $Signature + + # Create a hash with body parameters + $Body = @{ + client_id = $AppId + client_assertion = $JWT + client_assertion_type = 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer' + scope = $Scope + grant_type = 'client_credentials' + } + + $Url = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" + + # Use the self-generated JWT as Authorization + $Header = @{ + Authorization = "Bearer $JWT" + } + + # Splat the parameters for Invoke-Restmethod for cleaner code + $PostSplat = @{ + ContentType = 'application/x-www-form-urlencoded' + Method = 'POST' + Body = $Body + Uri = $Url + Headers = $Header + } + + try { + return Invoke-RestMethod @PostSplat + } catch { + Write-Error $_ + } + +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-NormalizedError.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-NormalizedError.ps1 new file mode 100644 index 000000000000..75b05c0fc184 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-NormalizedError.ps1 @@ -0,0 +1,73 @@ +function Get-NormalizedError { + <# + .FUNCTIONALITY + Internal + #> + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingEmptyCatchBlock', '', Justification = 'CIPP does not use this function to catch errors')] + [CmdletBinding()] + param ( + [string]$message + ) + + #Check if the message is valid JSON. + try { + $JSONMsg = $message | ConvertFrom-Json + } catch { + } + #if the message is valid JSON, there can be multiple fields in which the error resides. These are: + # $message.error.Innererror.Message + # $message.error.Message + # $message.error.details.message + # $message.error.innererror.internalException.message + + #We need to check if the message is in one of these fields, and if so, return it. + if ($JSONMsg.error.innererror.message) { + Write-Information "innererror.message found: $($JSONMsg.error.innererror.message)" + $message = $JSONMsg.error.innererror.message + } elseif ($JSONMsg.error.message) { + Write-Information "error.message found: $($JSONMsg.error.message)" + $message = $JSONMsg.error.message + } elseif ($JSONMsg.error.details.message) { + Write-Information "error.details.message found: $($JSONMsg.error.details.message)" + $message = $JSONMsg.error.details.message + } elseif ($JSONMsg.error.innererror.internalException.message) { + Write-Information "error.innererror.internalException.message found: $($JSONMsg.error.innererror.internalException.message)" + $message = $JSONMsg.error.innererror.internalException.message + } + + + #finally, put the message through the translator. If it's not in the list, just return the original message + switch -Wildcard ($message) { + 'Request not applicable to target tenant.' { 'Required license not available for this tenant' } + "Neither tenant is B2C or tenant doesn't have premium license" { 'This feature requires a P1 license or higher' } + 'Response status code does not indicate success: 400 (Bad Request).' { 'Error 400 occured. There is an issue with the token configuration for this tenant. Please perform an access check' } + '*Microsoft.Skype.Sync.Pstn.Tnm.Common.Http.HttpResponseException*' { 'Could not connect to Teams Admin center - Tenant might be missing a Teams license' } + '*Provide valid credential.*' { 'Error 400: There is an issue with your Exchange Token configuration. Please perform an access check for this tenant' } + '*This indicate that a subscription within the tenant has lapsed*' { 'There is no subscription for this service available, Check licensing information.' } + '*User was not found.*' { 'The relationship between this tenant and the partner has been dissolved from the tenant side.' } + '*AADSTS50020*' { 'AADSTS50020: The user you have used for your Secure Application Model is a guest in this tenant, or your are using GDAP and have not added the user to the correct group. Please delete the guest user to gain access to this tenant' } + '*AADSTS50177' { 'AADSTS50177: The user you have used for your Secure Application Model is a guest in this tenant, or your are using GDAP and have not added the user to the correct group. Please delete the guest user to gain access to this tenant' } + '*invalid or malformed*' { 'The request is malformed. Have you finished the Setup Wizard' } + '*Windows Store repository apps feature is not supported for this tenant*' { 'This tenant does not have WinGet support available' } + '*AADSTS650051*' { 'The application does not exist yet. Try again in 30 seconds.' } + '*AppLifecycle_2210*' { 'Failed to call Intune APIs: Does the tenant have a license available?' } + '*One or more added object references already exist for the following modified properties:*' { 'This user is already a member of this group.' } + '*Microsoft.Exchange.Management.Tasks.MemberAlreadyExistsException*' { 'This user is already a member of this group.' } + '*The property value exceeds the maximum allowed size (64KB)*' { 'One of the values exceeds the maximum allowed size (64KB).' } + '*Unable to initialize the authorization context*' { 'Your GDAP configuration does not allow us to write to this tenant, please check your group mappings and tenant onboarding.' } + '*Providers.Common.V1.CoreException*' { '403 (Access Denied) - We cannot connect to this tenant.' } + '*Authentication failed. MFA required*' { 'Authentication failed. MFA required' } + '*Your tenant is not licensed for this feature.*' { 'Required license not available for this tenant' } + '*AADSTS65001*' { 'We cannot access this tenant as consent has not been given, please try refreshing the CPV permissions in the application settings menu.' } + '*AADSTS700082*' { 'The CIPP user access token has expired. Run the Setup Wizard to refresh your tokens.' } + '*Account is not provisioned.' { 'The account is not provisioned. You do not the correct M365 license to access this information..' } + '*AADSTS5000224*' { 'This resource is not available - Has this tenant been deleted?' } + '*AADSTS53003*' { 'Access has been blocked by Conditional Access policies. Please check the Conditional Access configuration documentation' } + '*AADSTS900023*' { 'This tenant is not available for this operation. Please check the selected tenant and try again.' } + '*AADSTS9002313*' { 'The credentials used to connect to the Graph API are not available, please retry. If this issue persists you may need to execute the SAM wizard.' } + '*One or more platform(s) is/are not configured for the customer. Please configure the platform before trying to purchase a SKU.*' { 'One or more platform(s) is/are not configured for the customer. Please configure the platform before trying to purchase a SKU.' } + "One or more added object references already exist for the following modified properties: 'members'." { 'This user is already a member of the selected group.' } + default { $message } + + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-SharePointAdminLink.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-SharePointAdminLink.ps1 new file mode 100644 index 000000000000..43c7326489be --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-SharePointAdminLink.ps1 @@ -0,0 +1,68 @@ +function Get-SharePointAdminLink { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param ($Public, $TenantFilter) + + if ($Public) { + # Do it through domain discovery, unreliable + try { + # Get tenant information using autodiscover + $body = @" + + + + http://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetFederationInformation + https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc + + http://www.w3.org/2005/08/addressing/anonymous + + + + + + $TenantFilter + + + + +"@ + + # Create the headers + $AutoDiscoverHeaders = @{ + 'Content-Type' = 'text/xml; charset=utf-8' + 'SOAPAction' = '"http://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetFederationInformation"' + 'User-Agent' = 'AutodiscoverClient' + } + + # Invoke autodiscover + $Response = Invoke-RestMethod -UseBasicParsing -Method Post -Uri 'https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc' -Body $body -Headers $AutoDiscoverHeaders + + # Get the onmicrosoft.com domain from the response + $TenantDomains = $Response.Envelope.body.GetFederationInformationResponseMessage.response.Domains.Domain | Sort-Object + $OnMicrosoftDomains = $TenantDomains | Where-Object { $_ -like '*.onmicrosoft.com' } + + if ($OnMicrosoftDomains.Count -eq 0) { + throw 'Could not find onmicrosoft.com domain through autodiscover' + } elseif ($OnMicrosoftDomains.Count -gt 1) { + throw "Multiple onmicrosoft.com domains found through autodiscover. Cannot determine the correct one: $($OnMicrosoftDomains -join ', ')" + } else { + $OnMicrosoftDomain = $OnMicrosoftDomains[0] + $tenantName = $OnMicrosoftDomain.Split('.')[0] + } + } catch { + throw "Failed to get SharePoint admin URL through autodiscover: $($_.Exception.Message)" + } + } else { + $tenantName = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/sites/root' -asApp $true -tenantid $TenantFilter).id.Split('.')[0] + } + + # Return object with all needed properties + return [PSCustomObject]@{ + AdminUrl = "https://$tenantName-admin.sharepoint.com" + TenantName = $tenantName + SharePointUrl = "https://$tenantName.sharepoint.com" + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 new file mode 100644 index 000000000000..a568c38099f2 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 @@ -0,0 +1,284 @@ + +function Get-Tenants { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding(DefaultParameterSetName = 'Standard')] + param ( + [Parameter( ParameterSetName = 'Skip', Mandatory = $True )] + [switch]$SkipList, + [Parameter( ParameterSetName = 'Standard')] + [switch]$IncludeAll, + [switch]$IncludeErrors, + [switch]$SkipDomains, + [switch]$TriggerRefresh, + [switch]$CleanOld, + [string]$TenantFilter + ) + + $TenantsTable = Get-CippTable -tablename 'Tenants' + $ExcludedFilter = "PartitionKey eq 'Tenants' and Excluded eq true" + + $SkipListCache = Get-CIPPAzDataTableEntity @TenantsTable -Filter $ExcludedFilter + if ($SkipList) { + return $SkipListCache + } + + if ($IncludeAll.IsPresent) { + $Filter = "PartitionKey eq 'Tenants'" + } elseif ($IncludeErrors.IsPresent) { + $Filter = "PartitionKey eq 'Tenants' and Excluded eq false" + } else { + $Filter = "PartitionKey eq 'Tenants' and Excluded eq false and GraphErrorCount lt 50" + } + + if ($TenantFilter) { + #Write-Information "Getting tenant $TenantFilter" + if ($TenantFilter -match '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') { + $Filter = "{0} and customerId eq '{1}'" -f $Filter, $TenantFilter + # create where-object scriptblock + $IncludedTenantFilter = [scriptblock]::Create("`$_.customerId -eq '$TenantFilter'") + $RelationshipFilter = " and customer/tenantId eq '$TenantFilter'" + } else { + $Filter = "{0} and defaultDomainName eq '{1}' or initialDomainName eq '{1}'" -f $Filter, $TenantFilter + $IncludedTenantFilter = [scriptblock]::Create("`$_.defaultDomainName -eq '$TenantFilter' -or `$_.initialDomainName -eq '$TenantFilter'") + $RelationshipFilter = '' + } + } else { + $IncludedTenantFilter = [scriptblock]::Create('$true') + $RelationshipFilter = '' + } + + $IncludedTenantsCache = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter + + if (($IncludedTenantsCache | Measure-Object).Count -eq 0 -and $TenantFilter -ne $env:TenantID) { + $BuildRequired = $true + } + + if ($CleanOld.IsPresent) { + try { + $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active'&`$select=customer,autoExtendDuration,endDateTime" -NoAuthCheck:$true + # Filter out MLT relationships locally + $GDAPRelationships = $GDAPRelationships | Where-Object { $_.displayName -notlike 'MLT_*' } + if (!$GDAPRelationships) { + Write-LogMessage -API 'Get-Tenants' -message 'Tried cleaning old tenants but failed to get GDAP relationships - No relationships returned' -Sev 'Critical' + throw 'Failed to get GDAP relationships for cleaning old tenants.' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Get-Tenants' -message "Tried cleaning old tenants but failed to get GDAP relationships - $($_.Exception.Message)" -Sev 'Critical' -LogData $ErrorMessage + throw $_ + } + $GDAPList = foreach ($Relationship in $GDAPRelationships) { + [PSCustomObject]@{ + customerId = $Relationship.customer.tenantId + displayName = $Relationship.customer.displayName + autoExtend = ($Relationship.autoExtendDuration -ne 'PT0S') + relationshipEnd = $Relationship.endDateTime + } + } + $CurrentTenants = Get-CIPPAzDataTableEntity @TenantsTable -Filter "PartitionKey eq 'Tenants' and Excluded eq false and delegatedPrivilegeStatus ne 'directTenant'" + $CurrentTenants | Where-Object { $_.customerId -notin $GDAPList.customerId -and $_.customerId -ne $env:TenantID } | ForEach-Object { + Remove-AzDataTableEntity -Force @TenantsTable -Entity $_ + } + } + $PartnerModeTable = Get-CippTable -tablename 'tenantMode' + $PartnerTenantState = Get-CIPPAzDataTableEntity @PartnerModeTable + + if (($BuildRequired -or $TriggerRefresh.IsPresent) -and $PartnerTenantState.state -ne 'owntenant') { + # Get TenantProperties table + $PropertiesTable = Get-CippTable -TableName 'TenantProperties' + if (!$env:RefreshToken) { + throw 'RefreshToken not set. Cannot get tenant list.' + } + #get the full list of tenants + $GDAPRelationships = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active'$RelationshipFilter&`$select=customer,autoExtendDuration,endDateTime" -NoAuthCheck:$true + # Filter out MLT relationships locally + $GDAPRelationships = $GDAPRelationships | Where-Object { $_.displayName -notlike 'MLT_*' } + Write-Host "GDAP relationships found: $($GDAPRelationships.Count)" + Write-Information "GDAP relationships found: $($GDAPRelationships.Count)" + $totalTenants = $GDAPRelationships.customer.tenantId | Select-Object -Unique + Write-Information "Total tenants found in relationships result: $($totalTenants.count)" + $GDAPList = foreach ($Relationship in $GDAPRelationships) { + [PSCustomObject]@{ + customerId = $Relationship.customer.tenantId + displayName = $Relationship.customer.displayName + autoExtend = ($Relationship.autoExtendDuration -ne 'PT0S') + relationshipEnd = $Relationship.endDateTime + } + } + + $ActiveRelationships = $GDAPList | Where-Object $IncludedTenantFilter | Where-Object { $_.customerId -notin $SkipListCache.customerId } + $TenantList = $ActiveRelationships | Group-Object -Property customerId | ForEach-Object { + + # Write-Host (ConvertTo-Json -InputObject $_ -Depth 10) + # Write-Host "Processing $($_.Name), $($_.displayName) to add to tenant list." + $ExistingTenantInfo = Get-CIPPAzDataTableEntity @TenantsTable -Filter "PartitionKey eq 'Tenants' and RowKey eq '$($_.Name)'" + + $Alias = (Get-AzDataTableEntity @PropertiesTable -Filter "PartitionKey eq '$($_.Name)' and RowKey eq 'Alias'").Value + + if ($Alias) { + Write-Host "Alias found for $($_.Name) - $Alias." + } + + if ($TriggerRefresh.IsPresent -and $ExistingTenantInfo.customerId) { + # Reset error count + Write-Host "Resetting error count for $($_.Name)" + $ExistingTenantInfo.GraphErrorCount = 0 + Add-CIPPAzDataTableEntity @TenantsTable -Entity $ExistingTenantInfo -Force | Out-Null + } + + if ($ExistingTenantInfo -and $ExistingTenantInfo.RequiresRefresh -eq $false -and ($ExistingTenantInfo.displayName -eq $LatestRelationship.displayName -or $ExistingTenantInfo.displayName -eq $Alias)) { + Write-Host 'Existing tenant found. We already have it cached, skipping.' + + $DisplayNameUpdated = $false + if (![string]::IsNullOrEmpty($Alias)) { + if ($Alias -ne $ExistingTenantInfo.displayName) { + Write-Host "Alias found for $($_.Name)." + $ExistingTenantInfo.displayName = $Alias + $DisplayNameUpdated = $true + } + } else { + if ($LatestRelationship.displayName -ne $ExistingTenantInfo.displayName) { + Write-Host 'Display name changed from relationship, updating.' + $ExistingTenantInfo.displayName = $LatestRelationship.displayName + $DisplayNameUpdated = $true + } + } + + if ($DisplayNameUpdated) { + $ExistingTenantInfo.displayName = $LatestRelationship.displayName + Add-CIPPAzDataTableEntity @TenantsTable -Entity $ExistingTenantInfo -Force | Out-Null + } + + $ExistingTenantInfo + return + } + $LatestRelationship = $_.Group | Sort-Object -Property relationshipEnd | Select-Object -Last 1 + $AutoExtend = ($_.Group | Where-Object { $_.autoExtend -eq $true } | Measure-Object).Count -gt 0 + if (!$SkipDomains.IsPresent) { + try { + Write-Host "Getting domains for $($_.Name)." + $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains?$top=999' -tenantid $LatestRelationship.customerId -NoAuthCheck:$true -ErrorAction Stop + $defaultDomainName = ($Domains | Where-Object { $_.isDefault -eq $true }).id + $initialDomainName = ($Domains | Where-Object { $_.isInitial -eq $true }).id + } catch { + try { + #doing alternative method to temporarily get domains. Nightly refresh will fix this as it will be marked for renew. + Write-Host 'Main method failed, trying alternative method.' + Write-Host "Domain variable is $Domain" + $Domain = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/tenantRelationships/findTenantInformationByTenantId(tenantId='$($LatestRelationship.customerId)')" -NoAuthCheck:$true ).defaultDomainName + Write-Host "Alternative method worked, got domain $Domain." + $RequiresRefresh = $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Get-Tenants' -message "Tried adding $($LatestRelationship.customerId) to tenant list but failed to get domains - $($_.Exception.Message)" -Sev 'Critical' -LogData $ErrorMessage + $Domain = 'Invalid' + } finally { + $defaultDomainName = $Domain + $initialDomainName = $Domain + } + } + Write-Host 'finished getting domain' + + if (![string]::IsNullOrEmpty($Alias)) { + Write-Information "Setting display name to $Alias." + $displayName = $Alias + } else { + $displayName = $LatestRelationship.displayName + } + + $Obj = [PSCustomObject]@{ + PartitionKey = 'Tenants' + RowKey = $_.Name + customerId = $_.Name + displayName = $displayName + relationshipEnd = $LatestRelationship.relationshipEnd + relationshipCount = $_.Count + defaultDomainName = $defaultDomainName + initialDomainName = $initialDomainName + hasAutoExtend = $AutoExtend + delegatedPrivilegeStatus = 'granularDelegatedAdminPrivileges' + domains = '' + Excluded = $false + ExcludeUser = '' + ExcludeDate = '' + GraphErrorCount = 0 + LastGraphError = '' + RequiresRefresh = [bool]$RequiresRefresh + LastRefresh = (Get-Date).ToUniversalTime() + } + if ($Obj.defaultDomainName -eq 'Invalid' -or !$Obj.defaultDomainName) { + Write-Host "We're skipping $($Obj.displayName) as it has an invalid default domain name. Something is up with this instance." + return + } + Write-Host "Adding $($_.Name) to tenant list." + Add-CIPPAzDataTableEntity @TenantsTable -Entity $Obj -Force | Out-Null + + $Obj + } + } + $IncludedTenantsCache = [system.collections.generic.list[object]]::new() + if ($PartnerTenantState.state -eq 'PartnerTenantAvailable') { + # Add partner tenant if env is set + $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains?$top=999' -tenantid $env:TenantID -NoAuthCheck:$true + $PartnerTenant = [PSCustomObject]@{ + RowKey = $env:TenantID + PartitionKey = 'Tenants' + customerId = $env:TenantID + defaultDomainName = ($Domains | Where-Object { $_.isDefault -eq $true }).id + initialDomainName = ($Domains | Where-Object { $_.isInitial -eq $true }).id + displayName = '*Partner Tenant' + domains = 'PartnerTenant' + Excluded = $false + ExcludeUser = '' + ExcludeDate = '' + GraphErrorCount = 0 + LastGraphError = '' + RequiresRefresh = [bool]$RequiresRefresh + LastRefresh = (Get-Date).ToUniversalTime() + } + $IncludedTenantsCache.Add($PartnerTenant) + Add-AzDataTableEntity @TenantsTable -Entity $PartnerTenant -Force | Out-Null + + } + foreach ($Tenant in $TenantList) { + if ($Tenant.defaultDomainName -eq 'Invalid' -or [string]::IsNullOrWhiteSpace($Tenant.defaultDomainName)) { + Write-LogMessage -API 'Get-Tenants' -message "We're skipping $($Tenant.displayName) as it has an invalid default domain name. Something is up with this instance." -level 'Critical' + continue + } + $IncludedTenantsCache.Add($Tenant) + } + } + if ($PartnerTenantState.state -eq 'owntenant' -and $IncludedTenantsCache.RowKey.count -eq 0) { + $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $env:TenantID -NoAuthCheck:$true + + $IncludedTenantsCache = @([PSCustomObject]@{ + RowKey = $env:TenantID + PartitionKey = 'Tenants' + customerId = $env:TenantID + defaultDomainName = ($Domains | Where-Object { $_.isInitial -eq $true }).id + initialDomainName = ($Domains | Where-Object { $_.isInitial -eq $true }).id + displayName = ($Domains | Where-Object { $_.isInitial -eq $true }).id + domains = 'PartnerTenant' + Excluded = $false + ExcludeUser = '' + ExcludeDate = '' + GraphErrorCount = 0 + LastGraphError = '' + RequiresRefresh = [bool]$RequiresRefresh + LastRefresh = (Get-Date).ToUniversalTime() + }) + if ($IncludedTenantsCache) { + Add-CIPPAzDataTableEntity @TenantsTable -Entity $IncludedTenantsCache -Force | Out-Null + } + } + + # Limit tenant list to allowed tenants if set in script scope from New-CippCoreRequest + if ($script:CippAllowedTenantsStorage -and $script:CippAllowedTenantsStorage.Value) { + $IncludedTenantsCache = $IncludedTenantsCache | Where-Object { $script:CippAllowedTenantsStorage.Value -contains $_.customerId } + } + + return $IncludedTenantsCache | Where-Object { ($null -ne $_.defaultDomainName -and ($_.defaultDomainName -notmatch 'Domain Error' -or $IncludeAll.IsPresent)) } | Where-Object $IncludedTenantFilter | Sort-Object -Property displayName +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 new file mode 100644 index 000000000000..248a94ee56ef --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzRestRequest.ps1 @@ -0,0 +1,333 @@ +function New-CIPPAzRestRequest { + <# + .SYNOPSIS + Create and send a REST request to Azure APIs using Managed Identity authentication + .DESCRIPTION + Wraps Invoke-RestMethod with automatic Azure Managed Identity token authentication. + Automatically adds the Authorization header using Get-CIPPAzIdentityToken. + Supports all Invoke-RestMethod parameters. + .PARAMETER Uri + The URI of the Azure REST API endpoint + .PARAMETER Method + The HTTP method (GET, POST, PUT, PATCH, DELETE, etc.). Defaults to GET. + .PARAMETER ResourceUrl + The Azure resource URL to get a token for. Defaults to 'https://management.azure.com/' for Azure Resource Manager. + Use 'https://vault.azure.net' for Key Vault, 'https://api.loganalytics.io' for Log Analytics, etc. + .PARAMETER AccessToken + Optional: A pre-acquired OAuth2 bearer token to use for Authorization. When provided, Managed Identity acquisition is skipped and this token is used as-is. + .PARAMETER Body + The request body (can be string, hashtable, or PSCustomObject) + .PARAMETER Headers + Additional headers to include in the request. Authorization header is automatically added. + .PARAMETER ContentType + The content type of the request body. Defaults to 'application/json' if Body is provided and ContentType is not specified. + .PARAMETER SkipHttpErrorCheck + Skip checking HTTP error status codes + .PARAMETER ResponseHeadersVariable + Variable name to store response headers + .PARAMETER StatusCodeVariable + Variable name to store HTTP status code + .PARAMETER MaximumRetryCount + Maximum number of retry attempts + .PARAMETER RetryIntervalSec + Interval between retries in seconds + .PARAMETER TimeoutSec + Request timeout in seconds + .PARAMETER UseBasicParsing + Use basic parsing (for older PowerShell versions) + .PARAMETER WebSession + Web session object for maintaining cookies/state + .PARAMETER MaxRetries + Maximum number of retry attempts for transient failures. Defaults to 3. + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{name}?api-version=2020-06-01' + Gets Azure Resource Manager resource using managed identity + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Web/sites/{name}/config/authsettingsV2/list?api-version=2020-06-01' -Method POST + POST request to Azure Resource Manager API + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://{vault}.vault.azure.net/secrets/{secret}?api-version=7.4' -ResourceUrl 'https://vault.azure.net' + Gets a Key Vault secret using managed identity + .EXAMPLE + New-CIPPAzRestRequest -Uri 'https://management.azure.com/...' -Method PUT -Body @{ property = 'value' } -ContentType 'application/json' + PUT request with JSON body + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true, Position = 0)] + [Alias('Url')] + [uri]$Uri, + + [Parameter(Mandatory = $false)] + [ValidateSet('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS', 'TRACE')] + [string]$Method = 'GET', + + [Parameter(Mandatory = $false)] + [string]$ResourceUrl = 'https://management.azure.com/', + + [Parameter(Mandatory = $false)] + [string]$AccessToken, + + [Parameter(Mandatory = $false)] + [object]$Body, + + [Parameter(Mandatory = $false)] + [hashtable]$Headers = @{}, + + [Parameter(Mandatory = $false)] + [string]$ContentType = 'application/json', + + [Parameter(Mandatory = $false)] + [switch]$SkipHttpErrorCheck, + + [Parameter(Mandatory = $false)] + [string]$ResponseHeadersVariable, + + [Parameter(Mandatory = $false)] + [string]$StatusCodeVariable, + + [Parameter(Mandatory = $false)] + [int]$MaximumRetryCount, + + [Parameter(Mandatory = $false)] + [int]$RetryIntervalSec, + + [Parameter(Mandatory = $false)] + [int]$TimeoutSec, + + [Parameter(Mandatory = $false)] + [switch]$UseBasicParsing, + + [Parameter(Mandatory = $false)] + [Microsoft.PowerShell.Commands.WebRequestSession]$WebSession, + + [Parameter(Mandatory = $false)] + [int]$MaxRetries = 3 + ) + + # Resolve bearer token: prefer manually-supplied AccessToken, otherwise fetch via Managed Identity + $Token = $null + if ($AccessToken) { + $Token = $AccessToken + } else { + try { + $Token = Get-CIPPAzIdentityToken -ResourceUrl $ResourceUrl + } catch { + $errorMessage = "Failed to get Azure Managed Identity token: $($_.Exception.Message)" + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } + } + + # Build headers - add Authorization, merge with user-provided headers + $RequestHeaders = @{ + 'Authorization' = "Bearer $Token" + } + + # Merge user-provided headers (user headers take precedence) + foreach ($key in $Headers.Keys) { + $RequestHeaders[$key] = $Headers[$key] + } + + # Handle Content-Type + if ($Body -and -not $ContentType) { + $ContentType = 'application/json' + } + + # Convert Body to JSON if it's an object and ContentType is JSON + $RequestBody = $Body + if ($Body -and $ContentType -eq 'application/json' -and $Body -isnot [string]) { + try { + $RequestBody = $Body | ConvertTo-Json -Depth 10 -Compress + } catch { + Write-Warning "Failed to convert Body to JSON: $($_.Exception.Message). Sending as-is." + $RequestBody = $Body + } + } + + # Build Invoke-RestMethod parameters + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = $ErrorActionPreference + } + + if ($Body) { + $RestMethodParams['Body'] = $RequestBody + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + + if ($SkipHttpErrorCheck) { + $RestMethodParams['SkipHttpErrorCheck'] = $true + } + + if ($ResponseHeadersVariable) { + $RestMethodParams['ResponseHeadersVariable'] = $ResponseHeadersVariable + } + + if ($StatusCodeVariable) { + $RestMethodParams['StatusCodeVariable'] = $StatusCodeVariable + } + + if ($MaximumRetryCount) { + $RestMethodParams['MaximumRetryCount'] = $MaximumRetryCount + } + + if ($RetryIntervalSec) { + $RestMethodParams['RetryIntervalSec'] = $RetryIntervalSec + } + + if ($TimeoutSec) { + $RestMethodParams['TimeoutSec'] = $TimeoutSec + } + + if ($UseBasicParsing) { + $RestMethodParams['UseBasicParsing'] = $true + } + + if ($WebSession) { + $RestMethodParams['WebSession'] = $WebSession + } + + # Invoke the REST method with retry logic + $RetryCount = 0 + $RequestSuccessful = $false + $Message = $null + $MessageObj = $null + + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + + do { + try { + $Response = Invoke-RestMethod @RestMethodParams + $RequestSuccessful = $true + + # For compatibility with Invoke-AzRestMethod behavior, return object with Content property if response is a string + # Otherwise return the parsed object directly + if ($Response -is [string]) { + return [PSCustomObject]@{ + Content = $Response + } + } + + return $Response + } catch { + $ShouldRetry = $false + $WaitTime = 0 + + # Extract error message from JSON response if available + try { + if ($_.ErrorDetails.Message) { + $MessageObj = $_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($MessageObj.error) { + $MessageObj | Add-Member -NotePropertyName 'url' -NotePropertyValue $Uri -Force + $Message = if ($MessageObj.error.message) { + Get-NormalizedError -message $MessageObj.error.message + } elseif ($MessageObj.error.code) { + $MessageObj.error.code + } else { + $_.Exception.Message + } + } else { + $Message = Get-NormalizedError -message $_.ErrorDetails.Message + } + } else { + $Message = $_.Exception.Message + } + } catch { + $Message = $_.Exception.Message + } + + # If we couldn't extract a message, use the exception message + if ([string]::IsNullOrEmpty($Message)) { + $Message = $_.Exception.Message + $MessageObj = @{ + error = @{ + code = $_.Exception.GetType().FullName + message = $Message + url = $Uri + } + } + } + + # Check for 429 Too Many Requests (rate limiting) + if ($_.Exception.Response -and $_.Exception.Response.StatusCode -eq 429) { + $RetryAfterHeader = $_.Exception.Response.Headers['Retry-After'] + if ($RetryAfterHeader) { + $WaitTime = [int]$RetryAfterHeader + Write-Warning "Rate limited (429). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } elseif ($RetryCount -lt $MaxRetries) { + # Exponential backoff if no Retry-After header + $WaitTime = [Math]::Min([Math]::Pow(2, $RetryCount), 60) # Cap at 60 seconds + Write-Warning "Rate limited (429) without Retry-After header. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for 503 Service Unavailable or temporary errors + elseif ($_.Exception.Response -and $_.Exception.Response.StatusCode -eq 503) { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Service unavailable (503). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for "Resource temporarily unavailable" or other transient errors + elseif ($Message -like '*Resource temporarily unavailable*' -or $Message -like '*temporarily*' -or $Message -like '*timeout*') { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Transient error detected. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for 500/502/504 server errors (retryable) + elseif ($_.Exception.Response -and $_.Exception.Response.StatusCode -in @(500, 502, 504)) { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-3 seconds + Write-Warning "Server error ($($_.Exception.Response.StatusCode)). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + + # Retry if conditions are met + if ($ShouldRetry -and $RetryCount -lt $MaxRetries) { + $RetryCount++ + if ($WaitTime -gt 0) { + Start-Sleep -Seconds $WaitTime + } + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + } else { + # Final failure - build detailed error message + $errorMessage = "Azure REST API call failed: $Message" + if ($_.Exception.Response) { + $errorMessage += " (Status: $($_.Exception.Response.StatusCode))" + try { + $reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream()) + $responseBody = $reader.ReadToEnd() + $reader.Close() + if ($responseBody) { + $errorMessage += "`nResponse: $responseBody" + } + } catch { + # Ignore errors reading response stream + } + } + $errorMessage += "`nURI: $Uri" + + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } + } + } while (-not $RequestSuccessful -and $RetryCount -le $MaxRetries) + + # Should never reach here, but just in case + if (-not $RequestSuccessful) { + $errorMessage = "Azure REST API call failed after $MaxRetries attempts: $Message`nURI: $Uri" + Write-Error -Message $errorMessage -ErrorAction $ErrorActionPreference + return + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 new file mode 100644 index 000000000000..9f7f35d1eacb --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzServiceSAS.ps1 @@ -0,0 +1,291 @@ +function New-CIPPAzServiceSAS { + [CmdletBinding()] param( + [Parameter(Mandatory = $true)] [string] $AccountName, + [Parameter(Mandatory = $true)] [string] $AccountKey, + [Parameter(Mandatory = $true)] [ValidateSet('blob', 'queue', 'file', 'table')] [string] $Service, + [Parameter(Mandatory = $true)] [string] $ResourcePath, + [Parameter(Mandatory = $true)] [string] $Permissions, + [Parameter(Mandatory = $false)] [DateTime] $StartTime, + [Parameter(Mandatory = $true)] [DateTime] $ExpiryTime, + [Parameter(Mandatory = $false)] [ValidateSet('http', 'https', 'https,http')] [string] $Protocol = 'https', + [Parameter(Mandatory = $false)] [string] $IP, + [Parameter(Mandatory = $false)] [string] $SignedIdentifier, + [Parameter(Mandatory = $false)] [string] $Version = '2022-11-02', + [Parameter(Mandatory = $false)] [ValidateSet('b', 'c', 'd', 'bv', 'bs', 'f', 's')] [string] $SignedResource, + [Parameter(Mandatory = $false)] [int] $DirectoryDepth, + [Parameter(Mandatory = $false)] [string] $SnapshotTime, + # Optional response header overrides (Blob/Files) + [Parameter(Mandatory = $false)] [string] $CacheControl, + [Parameter(Mandatory = $false)] [string] $ContentDisposition, + [Parameter(Mandatory = $false)] [string] $ContentEncoding, + [Parameter(Mandatory = $false)] [string] $ContentLanguage, + [Parameter(Mandatory = $false)] [string] $ContentType, + # Optional encryption scope (Blob, 2020-12-06+) + [Parameter(Mandatory = $false)] [string] $EncryptionScope, + # Optional connection string for endpoint/emulator support + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage + ) + + # Local helpers: canonicalized resource and signature (standalone) + function _GetCanonicalizedResource { + param( + [Parameter(Mandatory = $true)][string] $AccountName, + [Parameter(Mandatory = $true)][ValidateSet('blob', 'queue', 'file', 'table')] [string] $Service, + [Parameter(Mandatory = $true)][string] $ResourcePath + ) + $decodedPath = [System.Web.HttpUtility]::UrlDecode(($ResourcePath.TrimStart('/'))) + switch ($Service) { + 'blob' { return "/blob/$AccountName/$decodedPath" } + 'queue' { return "/queue/$AccountName/$decodedPath" } + 'file' { return "/file/$AccountName/$decodedPath" } + 'table' { return "/table/$AccountName/$decodedPath" } + } + } + + function _NewSharedKeySignature { + param( + [Parameter(Mandatory = $true)][string] $AccountKey, + [Parameter(Mandatory = $true)][string] $StringToSign + ) + $keyBytes = [Convert]::FromBase64String($AccountKey) + $hmac = [System.Security.Cryptography.HMACSHA256]::new($keyBytes) + try { + $bytes = [System.Text.Encoding]::UTF8.GetBytes($StringToSign) + $sig = $hmac.ComputeHash($bytes) + return [Convert]::ToBase64String($sig) + } finally { $hmac.Dispose() } + } + + # Parse connection string for emulator/provided endpoints + $ProvidedEndpoint = $null + $ProvidedPath = $null + $EmulatorHost = $null + $EndpointSuffix = 'core.windows.net' + + if ($ConnectionString) { + $conn = @{} + foreach ($part in ($ConnectionString -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $conn[$matches[1]] = $matches[2] } + } + if ($conn['EndpointSuffix']) { $EndpointSuffix = $conn['EndpointSuffix'] } + + $ServiceCapitalized = [char]::ToUpper($Service[0]) + $Service.Substring(1) + $EndpointKey = "${ServiceCapitalized}Endpoint" + if ($conn[$EndpointKey]) { + $ProvidedEndpoint = $conn[$EndpointKey] + $ep = [Uri]::new($ProvidedEndpoint) + $Protocol = $ep.Scheme + $EmulatorHost = $ep.Host + if ($ep.Port -ne -1) { $EmulatorHost = "$($ep.Host):$($ep.Port)" } + $ProvidedPath = $ep.AbsolutePath.TrimEnd('/') + } elseif ($conn['UseDevelopmentStorage'] -eq 'true') { + # Emulator defaults + if (-not $AccountName) { $AccountName = 'devstoreaccount1' } + if (-not $AccountKey) { $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' } + $Protocol = 'http' + $ports = @{ blob = 10000; queue = 10001; table = 10002 } + $EmulatorHost = "127.0.0.1:$($ports[$Service])" + } + } + + # Build the resource URI + if ($ResourcePath.StartsWith('/')) { $ResourcePath = $ResourcePath.TrimStart('/') } + $UriBuilder = [System.UriBuilder]::new() + $UriBuilder.Scheme = $Protocol + + if ($ProvidedEndpoint) { + # Use provided endpoint + its base path + if ($EmulatorHost -match '^(.+?):(\d+)$') { $UriBuilder.Host = $matches[1]; $UriBuilder.Port = [int]$matches[2] } + else { $UriBuilder.Host = $EmulatorHost } + $UriBuilder.Path = ("$ProvidedPath/$ResourcePath").Replace('//', '/') + } elseif ($EmulatorHost) { + # Emulator: include account name in path + if ($EmulatorHost -match '^(.+?):(\d+)$') { $UriBuilder.Host = $matches[1]; $UriBuilder.Port = [int]$matches[2] } + else { $UriBuilder.Host = $EmulatorHost } + $UriBuilder.Path = "$AccountName/$ResourcePath" + } else { + # Standard Azure endpoint + $UriBuilder.Host = "$AccountName.$Service.$EndpointSuffix" + $UriBuilder.Path = $ResourcePath + } + $uri = $UriBuilder.Uri + + # Canonicalized resource for SAS string-to-sign (service-name style, 2015-02-21+) + $canonicalizedResource = _GetCanonicalizedResource -AccountName $AccountName -Service $Service -ResourcePath $ResourcePath + + # Time formatting per SAS spec (ISO 8601 UTC) + function _FormatSasTime($dt) { + if ($null -eq $dt) { return '' } + if ($dt -is [string]) { + if ([string]::IsNullOrWhiteSpace($dt)) { return '' } + $parsed = [DateTime]::Parse($dt, [System.Globalization.CultureInfo]::InvariantCulture, [System.Globalization.DateTimeStyles]::AssumeUniversal) + $utc = $parsed.ToUniversalTime() + return $utc.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + if ($dt -is [DateTime]) { + $utc = ([DateTime]$dt).ToUniversalTime() + return $utc.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + return '' + } + + $st = _FormatSasTime $StartTime + $se = _FormatSasTime $ExpiryTime + if ([string]::IsNullOrEmpty($se)) { throw 'ExpiryTime is required for SAS generation.' } + + # Assemble query parameters (service-specific) + $q = @{} + $q['sp'] = $Permissions + if ($st) { $q['st'] = $st } + $q['se'] = $se + if ($IP) { $q['sip'] = $IP } + if ($Protocol) { $q['spr'] = $Protocol } + if ($Version) { $q['sv'] = $Version } + if ($SignedIdentifier) { $q['si'] = $SignedIdentifier } + + # Blob/Files response headers overrides + if ($CacheControl) { $q['rscc'] = $CacheControl } + if ($ContentDisposition) { $q['rscd'] = $ContentDisposition } + if ($ContentEncoding) { $q['rsce'] = $ContentEncoding } + if ($ContentLanguage) { $q['rscl'] = $ContentLanguage } + if ($ContentType) { $q['rsct'] = $ContentType } + + # Resource-type specifics + $includeEncryptionScope = $false + if ($Service -eq 'blob') { + if (-not $SignedResource) { throw 'SignedResource (sr) is required for blob SAS: use b, c, d, bv, or bs.' } + $q['sr'] = $SignedResource + # Blob snapshot time uses the 'snapshot' parameter when applicable + if ($SnapshotTime) { $q['snapshot'] = $SnapshotTime } + if ($SignedResource -eq 'd') { + if ($null -eq $DirectoryDepth) { throw 'DirectoryDepth (sdd) is required when sr=d (Data Lake Hierarchical Namespace).' } + $q['sdd'] = [string]$DirectoryDepth + } + if ($EncryptionScope -and $Version -ge '2020-12-06') { + $q['ses'] = $EncryptionScope + $includeEncryptionScope = $true + } + } elseif ($Service -eq 'file') { + if (-not $SignedResource) { throw 'SignedResource (sr) is required for file SAS: use f or s.' } + $q['sr'] = $SignedResource + if ($SnapshotTime) { $q['sst'] = $SnapshotTime } + } elseif ($Service -eq 'table') { + # Table SAS may include ranges (spk/srk/epk/erk), omitted here unless future parameters are added + # Table also uses tn (table name) in query, but canonicalizedResource already includes table name + # We rely on canonicalizedResource and omit tn unless specified by callers via ResourcePath + } elseif ($Service -eq 'queue') { + # No sr for queue + } + + # Construct string-to-sign based on service and version + $StringToSign = $null + if ($Service -eq 'blob') { + # Version 2018-11-09 and later (optionally 2020-12-06 with encryption scope) + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + $q['sr'], + ($q.ContainsKey('snapshot') ? $q['snapshot'] : ''), + ($includeEncryptionScope ? $q['ses'] : ''), + ($q.ContainsKey('rscc') ? $q['rscc'] : ''), + ($q.ContainsKey('rscd') ? $q['rscd'] : ''), + ($q.ContainsKey('rsce') ? $q['rsce'] : ''), + ($q.ContainsKey('rscl') ? $q['rscl'] : ''), + ($q.ContainsKey('rsct') ? $q['rsct'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'file') { + # Use 2015-04-05+ format (no signedResource in string until 2018-11-09; we include response headers) + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + ($q.ContainsKey('rscc') ? $q['rscc'] : ''), + ($q.ContainsKey('rscd') ? $q['rscd'] : ''), + ($q.ContainsKey('rsce') ? $q['rsce'] : ''), + ($q.ContainsKey('rscl') ? $q['rscl'] : ''), + ($q.ContainsKey('rsct') ? $q['rsct'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'queue') { + # Version 2015-04-05 and later + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : '') + ) + $StringToSign = ($fields -join "`n") + } elseif ($Service -eq 'table') { + # Version 2015-04-05 and later + $fields = @( + $q['sp'], + ($st ?? ''), + $q['se'], + $canonicalizedResource, + ($q.ContainsKey('si') ? $q['si'] : ''), + ($q.ContainsKey('sip') ? $q['sip'] : ''), + ($q.ContainsKey('spr') ? $q['spr'] : ''), + ($q.ContainsKey('sv') ? $q['sv'] : ''), + '', # startingPartitionKey + '', # startingRowKey + '', # endingPartitionKey + '' # endingRowKey + ) + $StringToSign = ($fields -join "`n") + } + + # Generate signature using account key (HMAC-SHA256 over UTF-8 string-to-sign) + try { + $SignatureBase64 = _NewSharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign + } catch { + throw "Failed to create SAS signature: $($_.Exception.Message)" + } + + # Store signature; will be URL-encoded when assembling query + $q['sig'] = $SignatureBase64 + + # Compose ordered query for readability (common fields first) + $orderedKeys = @('sp', 'st', 'se', 'sip', 'spr', 'sv', 'sr', 'si', 'snapshot', 'ses', 'sdd', 'rscc', 'rscd', 'rsce', 'rscl', 'rsct', 'sig') + $parts = [System.Collections.Generic.List[string]]::new() + foreach ($k in $orderedKeys) { + if ($q.ContainsKey($k) -and -not [string]::IsNullOrEmpty($q[$k])) { + $parts.Add("$k=" + [System.Net.WebUtility]::UrlEncode($q[$k])) + } + } + # Include any remaining keys + foreach ($k in $q.Keys) { + if ($orderedKeys -notcontains $k) { + $parts.Add("$k=" + [System.Net.WebUtility]::UrlEncode($q[$k])) + } + } + + $token = '?' + ($parts -join '&') + + # Return structured output for debugging/usage + [PSCustomObject]@{ + Token = $token + Query = $q + CanonicalizedResource = $canonicalizedResource + StringToSign = $StringToSign + Version = $Version + Service = $Service + ResourceUri = $uri.AbsoluteUri + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 new file mode 100644 index 000000000000..96f2cd729593 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPAzStorageRequest.ps1 @@ -0,0 +1,946 @@ +function New-CIPPAzStorageRequest { + <# + .SYNOPSIS + Create and send a REST request to Azure Storage APIs using Shared Key authorization + .DESCRIPTION + Wraps Invoke-RestMethod with automatic Azure Storage Shared Key authentication. + Parses AzureWebJobsStorage connection string and generates authorization headers. + Supports Blob, Queue, and Table storage services. + .PARAMETER Service + The Azure Storage service (blob, queue, table, file) + .PARAMETER Resource + The resource path (e.g., 'tables', 'myqueue/messages') + .PARAMETER QueryParams + Optional hashtable of query string parameters + .PARAMETER Method + The HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, etc.). Defaults to GET. + .PARAMETER Body + The request body (can be string, hashtable, or PSCustomObject) + .PARAMETER Headers + Additional headers to include in the request. Authorization header is automatically added. + .PARAMETER ContentType + The content type of the request body + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage + .PARAMETER MaxRetries + Maximum number of retry attempts for transient failures. Defaults to 3. + .EXAMPLE + New-CIPPStorageRequest -Service 'table' -Resource 'tables' + Lists all tables in storage account (returns PSObjects) + .EXAMPLE + New-CIPPStorageRequest -Service 'queue' -Resource 'myqueue/messages' -Method DELETE + Clears messages from a queue + .EXAMPLE + New-CIPPStorageRequest -Service 'queue' -Component 'list' + Lists queues (returns PSObjects with Name and optional Metadata) + .EXAMPLE + New-CIPPStorageRequest -Service 'blob' -Component 'list' + Lists blob containers (returns PSObjects with Name and Properties) + .LINK + https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateSet('blob', 'queue', 'table', 'file')] + [string]$Service, + + [Parameter(Mandatory = $false, Position = 1)] + [string]$Resource, + + [Parameter(Mandatory = $false, Position = 2)] + [string]$Component, + + [Parameter(Mandatory = $false)] + [hashtable]$QueryParams, + + [Parameter(Mandatory = $false)] + [ValidateSet('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS')] + [string]$Method = 'GET', + + [Parameter(Mandatory = $false)] + [object]$Body, + + [Parameter(Mandatory = $false)] + [hashtable]$Headers = @{}, + + [Parameter(Mandatory = $false)] + [string]$ContentType, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage, + + [Parameter(Mandatory = $false)] + [int]$MaxRetries = 3 + ) + + # Helper: robustly convert XML string to XmlDocument (handles BOM/whitespace) + function Convert-XmlStringToDocument { + param( + [Parameter(Mandatory = $true)][string]$XmlText + ) + # Normalize: trim leading BOM and whitespace + $normalized = $XmlText + # Remove UTF-8 BOM if present + if ($normalized.Length -gt 0 -and [int][char]$normalized[0] -eq 65279) { + $normalized = $normalized.Substring(1) + } + $normalized = $normalized.Trim() + + $settings = [System.Xml.XmlReaderSettings]::new() + $settings.IgnoreWhitespace = $true + $settings.DtdProcessing = [System.Xml.DtdProcessing]::Ignore + $sr = [System.IO.StringReader]::new($normalized) + try { + $xr = [System.Xml.XmlReader]::Create($sr, $settings) + $doc = [System.Xml.XmlDocument]::new() + $doc.Load($xr) + $xr.Dispose() + $sr.Dispose() + return $doc + } catch { + try { if ($xr) { $xr.Dispose() } } catch {} + try { if ($sr) { $sr.Dispose() } } catch {} + throw $_ + } + } + + # Helper: compute Shared Key HMAC-SHA256 signature (Base64 over UTF-8 string) + function New-SharedKeySignature { + param( + [Parameter(Mandatory = $true)][string]$AccountKey, + [Parameter(Mandatory = $true)][string]$StringToSign + ) + try { + $KeyBytes = [Convert]::FromBase64String($AccountKey) + $Hmac = [System.Security.Cryptography.HMACSHA256]::new($KeyBytes) + $StringBytes = [System.Text.Encoding]::UTF8.GetBytes($StringToSign) + $SignatureBytes = $Hmac.ComputeHash($StringBytes) + $Hmac.Dispose() + return [Convert]::ToBase64String($SignatureBytes) + } catch { + throw $_ + } + } + + # Helper: canonicalize x-ms-* headers (lowercase names, sort ascending, collapse whitespace) + function Get-CanonicalizedXmsHeaders { + param( + [Parameter(Mandatory = $true)][hashtable]$Headers + ) + $CanonicalizedHeadersList = [System.Collections.Generic.List[string]]::new() + $XmsHeaders = $Headers.Keys | Where-Object { $_ -like 'x-ms-*' } | Sort-Object + foreach ($Header in $XmsHeaders) { + $HeaderName = $Header.ToLowerInvariant() + $HeaderValue = $Headers[$Header] -replace '\s+', ' ' + $CanonicalizedHeadersList.Add("${HeaderName}:${HeaderValue}") + } + return ($CanonicalizedHeadersList -join "`n") + } + + # Helper: canonicalize resource for Shared Key + function Get-CanonicalizedResourceSharedKey { + param( + [Parameter(Mandatory = $true)][string]$AccountName, + [Parameter(Mandatory = $true)][uri]$Uri, + [switch]$TableFormat + ) + $CanonicalizedResource = "/$AccountName" + $Uri.AbsolutePath + if ($TableFormat) { + if ($Uri.Query) { + try { + $parsed = [System.Web.HttpUtility]::ParseQueryString($Uri.Query) + $compVal = $parsed['comp'] + if ($compVal) { $CanonicalizedResource += "?comp=$compVal" } + } catch { } + } + return $CanonicalizedResource + } + if ($Uri.Query) { + $ParsedQueryParams = [System.Web.HttpUtility]::ParseQueryString($Uri.Query) + $CanonicalizedParams = [System.Collections.Generic.List[string]]::new() + foreach ($Key in ($ParsedQueryParams.AllKeys | Sort-Object)) { + $Value = $ParsedQueryParams[$Key] + $CanonicalizedParams.Add("$($Key.ToLowerInvariant()):$Value") + } + if ($CanonicalizedParams.Count -gt 0) { + $CanonicalizedResource += "`n" + ($CanonicalizedParams -join "`n") + } + } + return $CanonicalizedResource + } + + # Helper: build StringToSign for Blob/Queue/File + function Get-StringToSignBlobQueueFile { + param( + [Parameter(Mandatory = $true)][string]$Method, + [Parameter()][string]$ContentType, + [Parameter(Mandatory = $true)][hashtable]$Headers, + [Parameter()][string]$CanonicalizedHeaders, + [Parameter(Mandatory = $true)][string]$CanonicalizedResource + ) + $ContentLengthString = '' + if ($Headers.ContainsKey('Content-Length')) { + $cl = [string]$Headers['Content-Length'] + if ($cl -ne '0') { $ContentLengthString = $cl } + } + $parts = @( + $Method.ToUpperInvariant() + if ($Headers['Content-Encoding']) { $Headers['Content-Encoding'] } else { '' } + if ($Headers['Content-Language']) { $Headers['Content-Language'] } else { '' } + $ContentLengthString + '' + if ($ContentType) { $ContentType } else { '' } + '' + if ($Headers['If-Modified-Since']) { $Headers['If-Modified-Since'] } else { '' } + if ($Headers['If-Match']) { $Headers['If-Match'] } else { '' } + if ($Headers['If-None-Match']) { $Headers['If-None-Match'] } else { '' } + if ($Headers['If-Unmodified-Since']) { $Headers['If-Unmodified-Since'] } else { '' } + if ($Headers['Range']) { $Headers['Range'] } else { '' } + ) + $str = ($parts -join "`n") + if ($CanonicalizedHeaders) { $str += "`n" + $CanonicalizedHeaders } + $str += "`n" + $CanonicalizedResource + return $str + } + + # Helper: build StringToSign for Table + function Get-StringToSignTable { + param( + [Parameter(Mandatory = $true)][string]$Method, + [Parameter()][string]$ContentType, + [Parameter(Mandatory = $true)][string]$Date, + [Parameter(Mandatory = $true)][string]$CanonicalizedResource + ) + $contentTypeForSign = if ($ContentType) { $ContentType } else { '' } + return ($Method.ToUpperInvariant() + "`n" + '' + "`n" + $contentTypeForSign + "`n" + $Date + "`n" + $CanonicalizedResource) + } + + # Parse connection string + try { + # Initialize variables + $ProvidedEndpoint = $null + $ProvidedPath = $null + $EmulatorHost = $null + $EndpointSuffix = $null + $Protocol = $null + + Write-Verbose 'Parsing connection string' + $ConnectionParams = @{} + $ConnectionString -split ';' | ForEach-Object { + $Part = $_.Trim() + if ($Part -and $Part -match '^(.+?)=(.+)$') { + $ConnectionParams[$matches[1]] = $matches[2] + } + } + + Write-Verbose "Connection string parsed. Keys: $($ConnectionParams.Keys -join ', ')" + + # For development storage, use default account name if not provided + if ($ConnectionParams['UseDevelopmentStorage'] -eq 'true') { + $AccountName = $ConnectionParams['AccountName'] ?? 'devstoreaccount1' + $AccountKey = $ConnectionParams['AccountKey'] ?? 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' + Write-Verbose 'Using development storage defaults' + } else { + $AccountName = $ConnectionParams['AccountName'] + $AccountKey = $ConnectionParams['AccountKey'] + } + + $AccountKeyMasked = if ($AccountKey) { '***' } else { 'NOT FOUND' } + + Write-Verbose "AccountName: $AccountName, AccountKey: $AccountKeyMasked" + + if (-not $AccountName) { + throw 'Connection string must contain AccountName' + } + + # For localhost (emulator), use default key if not provided + if (-not $AccountKey) { + if ($ConnectionParams[$EndpointKey] -and $ConnectionParams[$EndpointKey] -match '127\.0\.0\.1') { + $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' + Write-Verbose 'Using default emulator key for 127.0.0.1' + } else { + throw 'Connection string must contain AccountKey for non-emulator storage' + } + } + + # Check for service-specific endpoint (e.g., BlobEndpoint, QueueEndpoint, TableEndpoint) + $ServiceCapitalized = [char]::ToUpper($Service[0]) + $Service.Substring(1) + $EndpointKey = "${ServiceCapitalized}Endpoint" + $ProvidedEndpoint = $ConnectionParams[$EndpointKey] + + Write-Verbose "Looking for endpoint key: $EndpointKey" + + if ($ProvidedEndpoint) { + Write-Verbose "Found provided endpoint: $ProvidedEndpoint" + # Parse provided endpoint + $EndpointUri = [System.Uri]::new($ProvidedEndpoint) + $Protocol = $EndpointUri.Scheme + $EmulatorHost = "$($EndpointUri.Host)" + if ($EndpointUri.Port -ne -1) { + $EmulatorHost += ":$($EndpointUri.Port)" + } + # Path will be used for canonicalized resource + $ProvidedPath = $EndpointUri.AbsolutePath.TrimEnd('/') + Write-Verbose "Parsed endpoint - Protocol: $Protocol, Host: $EmulatorHost, Path: $ProvidedPath" + } + # Check for development storage emulator + elseif ($ConnectionParams['UseDevelopmentStorage'] -eq 'true') { + Write-Verbose 'Using development storage emulator' + $Protocol = 'http' + # Map service to emulator port + $ServicePorts = @{ + 'blob' = 10000 + 'queue' = 10001 + 'table' = 10002 + } + $EmulatorHost = "127.0.0.1:$($ServicePorts[$Service])" + Write-Verbose "Emulator host: $EmulatorHost" + } else { + Write-Verbose 'Using standard Azure Storage' + # Extract endpoint suffix and protocol + $EndpointSuffix = $ConnectionParams['EndpointSuffix'] + if (-not $EndpointSuffix) { + $EndpointSuffix = 'core.windows.net' + } + + $Protocol = $ConnectionParams['DefaultEndpointsProtocol'] + if (-not $Protocol) { + $Protocol = 'https' + } + Write-Verbose "Protocol: $Protocol, EndpointSuffix: $EndpointSuffix" + } + } catch { + Write-Error "Failed to parse connection string: $($_.Exception.Message)" + return + } + + # Build URI using UriBuilder + Write-Verbose "Building URI - Service: $Service, Resource: $Resource" + + # Treat Resource strictly as a path; only Component/QueryParams build queries + $ResourcePath = $Resource + $InlineQueryString = $null + if ($Component) { + $InlineQueryString = "comp=$Component" + Write-Verbose "Using component -> comp=$Component" + } + + $UriBuilder = [System.UriBuilder]::new() + $UriBuilder.Scheme = $Protocol + + if ($ProvidedEndpoint) { + # Use provided endpoint host - split host and port if present + if ($EmulatorHost -match '^(.+?):(\d+)$') { + $UriBuilder.Host = $matches[1] + $UriBuilder.Port = [int]$matches[2] + Write-Verbose "Set host with port - Host: $($matches[1]), Port: $($matches[2])" + } else { + $UriBuilder.Host = $EmulatorHost + } + # Build path from provided endpoint base + resource + $FullResourcePath = "$ProvidedPath/$ResourcePath".Replace('//', '/') + $UriBuilder.Path = $FullResourcePath + Write-Verbose "Using provided endpoint - Host: $EmulatorHost, Path: $FullResourcePath" + } elseif ($EmulatorHost) { + # Emulator without provided endpoint - split host and port if present + if ($EmulatorHost -match '^(.+?):(\d+)$') { + $UriBuilder.Host = $matches[1] + $UriBuilder.Port = [int]$matches[2] + Write-Verbose "Set host with port - Host: $($matches[1]), Port: $($matches[2])" + } else { + $UriBuilder.Host = $EmulatorHost + } + $UriBuilder.Path = "$AccountName/$ResourcePath" + Write-Verbose "Using emulator - Host: $EmulatorHost, Path: $AccountName/$ResourcePath" + } else { + # Standard Azure Storage + $UriBuilder.Host = "$AccountName.$Service.$EndpointSuffix" + $UriBuilder.Path = $ResourcePath + Write-Verbose "Using standard Azure Storage - Host: $AccountName.$Service.$EndpointSuffix, Path: $ResourcePath" + } + + # Build query string from both explicit QueryParams and inline query string + $QueryString = [System.Web.HttpUtility]::ParseQueryString('') + + # Add inline query string if present (from Component only) + if ($InlineQueryString) { + Write-Verbose "Adding inline query string: $InlineQueryString" + foreach ($Param in $InlineQueryString -split '&') { + $Key, $Value = $Param -split '=', 2 + $QueryString.Add([System.Web.HttpUtility]::UrlDecode($Key), [System.Web.HttpUtility]::UrlDecode($Value)) + } + } + + # Add explicit QueryParams + if ($QueryParams) { + Write-Verbose "Adding query parameters: $($QueryParams.Keys -join ', ')" + foreach ($Key in $QueryParams.Keys) { + $QueryString.Add($Key, $QueryParams[$Key]) + } + } + + # Ensure comp from Component is set even if QueryParams provided (QueryParams can override) + if ($Component -and -not $QueryString['comp']) { + $QueryString.Add('comp', $Component) + } + + if ($QueryString.Count -gt 0) { + $UriBuilder.Query = $QueryString.ToString() + Write-Verbose "Final query string: $($UriBuilder.Query)" + } + + $Uri = $UriBuilder.Uri + Write-Verbose "Final URI: $Uri" + + # Initialize request headers + $RequestHeaders = @{} + $currentDateRfc = [DateTime]::UtcNow.ToString('R', [System.Globalization.CultureInfo]::InvariantCulture) + # Default a recent stable service version if none supplied by caller (Blob/Queue/File) + $RequestHeaders['x-ms-version'] = '2023-11-03' + + # Add Table service specific headers + if ($Service -eq 'table') { + # Table service: align with Az (SharedKey). Table uses Date (never empty) and may also set x-ms-date to same value + $RequestHeaders['x-ms-date'] = $currentDateRfc + $RequestHeaders['Date'] = $currentDateRfc + $RequestHeaders['x-ms-version'] = '2017-07-29' + $RequestHeaders['Accept'] = 'application/json; odata=minimalmetadata' + $RequestHeaders['DataServiceVersion'] = '3.0;' + $RequestHeaders['MaxDataServiceVersion'] = '3.0;NetFx' + $RequestHeaders['Accept-Charset'] = 'utf-8' + } else { + # Blob/Queue/File use x-ms-date + $RequestHeaders['x-ms-date'] = $currentDateRfc + } + + # Build canonical headers and resource + $UtcNow = $currentDateRfc + + # Determine storage service headers already set; no unused version variable + + # Build canonicalized resource - format differs by service + if ($Service -eq 'table') { + # Table Service canonicalized resource + $CanonicalizedResource = Get-CanonicalizedResourceSharedKey -AccountName $AccountName -Uri $Uri -TableFormat + Write-Verbose "Table Service canonicalized resource: $CanonicalizedResource" + # Build string to sign for Table Service (SharedKey) + # Per docs, Table SharedKey DOES NOT include CanonicalizedHeaders. Date is never empty. + $StringToSign = Get-StringToSignTable -Method $Method -ContentType $ContentType -Date $RequestHeaders['Date'] -CanonicalizedResource $CanonicalizedResource + Write-Verbose 'Using SharedKey format (Table Service)' + + Write-Verbose "String to sign (escaped): $($StringToSign -replace "`n", '\n')" + Write-Verbose "String to sign length: $($StringToSign.Length)" + + # Generate signature + try { $Signature = New-SharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign; Write-Verbose "Generated signature: $Signature" } + catch { Write-Error "Failed to generate signature: $($_.Exception.Message)"; return } + + # Add authorization header + $RequestHeaders['Authorization'] = "SharedKey ${AccountName}:${Signature}" + Write-Verbose "Authorization header: SharedKey ${AccountName}:$($Signature.Substring(0, [Math]::Min(10, $Signature.Length)))..." + + # Headers for Table response already set (Accept minimalmetadata etc.) + + # Merge user-provided headers + foreach ($Key in $Headers.Keys) { + $RequestHeaders[$Key] = $Headers[$Key] + } + + # Build Invoke-RestMethod parameters for Table Service + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = 'Stop' + } + + if ($Body) { + if ($Body -is [string]) { + $RestMethodParams['Body'] = $Body + } elseif ($Body -is [byte[]]) { + $RestMethodParams['Body'] = $Body + } else { + $RestMethodParams['Body'] = ($Body | ConvertTo-Json -Depth 10 -Compress) + } + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + } else { + # Blob/Queue/File canonicalized resource + $CanonicalizedResource = Get-CanonicalizedResourceSharedKey -AccountName $AccountName -Uri $Uri + Write-Verbose "Blob/Queue/File canonicalized resource: $($CanonicalizedResource -replace "`n", ' | ')" + + # Do not force JSON Accept on blob/queue; service returns XML for list ops + if (-not $RequestHeaders.ContainsKey('Accept')) { + if ($Service -eq 'blob') { + $isList = (($Component -eq 'list') -or ($Uri.Query -match 'comp=list')) + if ($isList) { $RequestHeaders['Accept'] = 'application/xml' } + } elseif ($Service -eq 'queue') { + $RequestHeaders['Accept'] = 'application/xml' + } + # For Azure Files, avoid forcing Accept; binary downloads should be raw bytes + } + + # Merge user-provided headers (these override defaults) + foreach ($Key in $Headers.Keys) { + $RequestHeaders[$Key] = $Headers[$Key] + } + + # Add Content-Length for PUT/POST/PATCH + $ContentLength = 0 + if ($Body) { + if ($Body -is [string]) { + $ContentLength = [System.Text.Encoding]::UTF8.GetByteCount($Body) + } elseif ($Body -is [byte[]]) { + $ContentLength = $Body.Length + } else { + $BodyJson = $Body | ConvertTo-Json -Depth 10 -Compress + $ContentLength = [System.Text.Encoding]::UTF8.GetByteCount($BodyJson) + } + } + + if ($Method -in @('PUT', 'POST', 'PATCH')) { + $RequestHeaders['Content-Length'] = $ContentLength.ToString() + } + + # Blob upload: default to BlockBlob when performing a simple Put Blob (no comp parameter) + if ($Service -eq 'blob') { + $isCompSpecified = ($Component) -or ($Uri.Query -match 'comp=') + if ($Method -eq 'PUT' -and -not $isCompSpecified) { + if (-not $RequestHeaders.ContainsKey('x-ms-blob-type')) { $RequestHeaders['x-ms-blob-type'] = 'BlockBlob' } + } + } + + # Azure Files specific conveniences and validations + if ($Service -eq 'file') { + # Create file: PUT to file path without comp=range should specify x-ms-type and x-ms-content-length; body typically empty + $isRangeOp = ($Component -eq 'range') -or ($Uri.Query -match 'comp=range') + if ($Method -eq 'PUT' -and -not $isRangeOp) { + if (-not $RequestHeaders.ContainsKey('x-ms-type')) { $RequestHeaders['x-ms-type'] = 'file' } + # x-ms-content-length is required for create; if not provided by caller, try to infer from header Content-Length when body is empty + if (-not $RequestHeaders.ContainsKey('x-ms-content-length')) { + if ($ContentLength -eq 0) { + # Caller must supply x-ms-content-length for file size; fail fast for correctness + Write-Error 'Azure Files create operation requires header x-ms-content-length specifying file size in bytes.' + return + } else { + # If body present, assume immediate range upload is intended; advise using comp=range + Write-Verbose 'Body detected on Azure Files PUT without comp=range; consider using comp=range for content upload.' + } + } + } elseif ($Method -eq 'PUT' -and $isRangeOp) { + # Range upload must include x-ms-write and x-ms-range + if (-not $RequestHeaders.ContainsKey('x-ms-write')) { $RequestHeaders['x-ms-write'] = 'update' } + if (-not $RequestHeaders.ContainsKey('x-ms-range')) { + Write-Error 'Azure Files range upload requires header x-ms-range (e.g., bytes=0-).' + return + } + } + } + + # Build canonicalized headers (x-ms-*) + $CanonicalizedHeaders = Get-CanonicalizedXmsHeaders -Headers $RequestHeaders + + Write-Verbose "CanonicalizedHeaders: $($CanonicalizedHeaders -replace "`n", '\n')" + + # Build string to sign for Blob/Queue/File + $StringToSign = Get-StringToSignBlobQueueFile -Method $Method -ContentType $ContentType -Headers $RequestHeaders -CanonicalizedHeaders $CanonicalizedHeaders -CanonicalizedResource $CanonicalizedResource + Write-Verbose 'Using SharedKey format (Blob/Queue/File)' + + Write-Verbose "String to sign (escaped): $($StringToSign -replace "`n", '\n')" + Write-Verbose "String to sign length: $($StringToSign.Length)" + + # Generate signature + try { $Signature = New-SharedKeySignature -AccountKey $AccountKey -StringToSign $StringToSign; Write-Verbose "Generated signature: $Signature" } + catch { Write-Error "Failed to generate signature: $($_.Exception.Message)"; return } + + # Add authorization header + $RequestHeaders['Authorization'] = "SharedKey ${AccountName}:${Signature}" + Write-Verbose "Authorization header: SharedKey ${AccountName}:$($Signature.Substring(0, [Math]::Min(10, $Signature.Length)))..." + + # Build Invoke-RestMethod parameters + $RestMethodParams = @{ + Uri = $Uri + Method = $Method + Headers = $RequestHeaders + ErrorAction = 'Stop' + } + + if ($Body) { + if ($Body -is [string]) { + $RestMethodParams['Body'] = $Body + } elseif ($Body -is [byte[]]) { + $RestMethodParams['Body'] = $Body + } else { + $RestMethodParams['Body'] = ($Body | ConvertTo-Json -Depth 10 -Compress) + } + } + + if ($ContentType) { + $RestMethodParams['ContentType'] = $ContentType + } + } + + # Invoke with retry logic + $RetryCount = 0 + $RequestSuccessful = $false + + Write-Information "$($Method.ToUpper()) [ $Uri ] | attempt: $($RetryCount + 1) of $MaxRetries" + + $TriedAltTableAuth = $false + $UseInvokeWebRequest = $false + if ($Service -eq 'queue' -and (($Component -eq 'metadata') -or ($Uri.Query -match 'comp=metadata'))) { + # Use Invoke-WebRequest to access response headers for queue metadata + $UseInvokeWebRequest = $true + } elseif ($Method -eq 'DELETE') { + # For other DELETE operations across services, prefer capturing headers/status + $UseInvokeWebRequest = $true + } elseif ($Service -eq 'file' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=properties') -or ($Uri.Query -match 'comp=metadata'))) { + # For Azure Files binary downloads, use Invoke-WebRequest and return bytes + $UseInvokeWebRequest = $true + } elseif ($Service -eq 'blob' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=metadata') -or ($Uri.Query -match 'comp=properties'))) { + # For Blob binary downloads, use Invoke-WebRequest and return bytes (memory stream, no filesystem) + $UseInvokeWebRequest = $true + } + do { + try { + # Blob: binary GET returns bytes from RawContentStream + if ($UseInvokeWebRequest -and $Service -eq 'blob' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=metadata') -or ($Uri.Query -match 'comp=properties'))) { + Write-Verbose 'Processing Blob binary download' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $ms = [System.IO.MemoryStream]::new() + try { $resp.RawContentStream.CopyTo($ms) } catch { } + $bytes = $ms.ToArray() + $hdrHash = @{} + if ($resp -and $resp.Headers) { foreach ($key in $resp.Headers.Keys) { $hdrHash[$key] = $resp.Headers[$key] } } + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $Uri.AbsoluteUri } + return [PSCustomObject]@{ Bytes = $bytes; Length = $bytes.Length; Headers = $hdrHash; Uri = $reqUri } + } + # Azure Files: binary GET returns bytes + if ($UseInvokeWebRequest -and $Service -eq 'file' -and $Method -eq 'GET' -and -not (($Component -eq 'list') -or ($Uri.Query -match 'comp=list') -or ($Uri.Query -match 'comp=properties') -or ($Uri.Query -match 'comp=metadata'))) { + Write-Verbose 'Processing Azure Files binary download' + $tmp = [System.IO.Path]::GetTempFileName() + try { + $resp = Invoke-WebRequest @RestMethodParams -OutFile $tmp + $RequestSuccessful = $true + $bytes = [System.IO.File]::ReadAllBytes($tmp) + $hdrHash = @{} + if ($resp -and $resp.Headers) { foreach ($key in $resp.Headers.Keys) { $hdrHash[$key] = $resp.Headers[$key] } } + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $Uri.AbsoluteUri } + return [PSCustomObject]@{ Bytes = $bytes; Length = $bytes.Length; Headers = $hdrHash; Uri = $reqUri } + } finally { + try { if (Test-Path -LiteralPath $tmp) { Remove-Item -LiteralPath $tmp -Force -ErrorAction SilentlyContinue } } catch {} + } + } + # For queue comp=metadata, capture headers-only and return a compact object + if ($UseInvokeWebRequest -and $Service -eq 'queue' -and (($Component -eq 'metadata') -or ($Uri.Query -match 'comp=metadata'))) { + Write-Verbose 'Processing queue metadata response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $respHeaders = $null + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $approx = $null + $reqUri = $null + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { $reqUri = $null } + if ($respHeaders) { + $val = $null + if ($respHeaders.ContainsKey('x-ms-approximate-messages-count')) { + $val = $respHeaders['x-ms-approximate-messages-count'] + } else { + foreach ($key in $respHeaders.Keys) { if ($key -ieq 'x-ms-approximate-messages-count') { $val = $respHeaders[$key]; break } } + } + if ($null -ne $val) { + $approxStr = if ($val -is [array]) { if ($val.Length -gt 0) { $val[0] } else { $null } } else { $val } + if ($approxStr) { try { $approx = [int]$approxStr } catch { $approx = $null } } + } + } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ ApproximateMessagesCount = $approx; Headers = $hdrHash; Uri = $reqUri } + } + + # Queue clear messages: DELETE on //messages — return compact response + if ($UseInvokeWebRequest -and $Service -eq 'queue' -and $Method -eq 'DELETE' -and ($Uri.AbsolutePath.ToLower().EndsWith('/messages'))) { + Write-Verbose 'Processing queue clear messages response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $status = $null + $reqUri = $null + $respHeaders = $null + try { if ($resp -and $resp.StatusCode) { $status = [int]$resp.StatusCode } } catch { } + try { if (-not $status -and $resp -and $resp.BaseResponse) { $status = [int]$resp.BaseResponse.StatusCode } } catch { } + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { } + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ StatusCode = $status; Headers = $hdrHash; Uri = $reqUri } + } + + # Generic DELETE compact response across services + if ($UseInvokeWebRequest -and $Method -eq 'DELETE') { + Write-Verbose 'Processing generic DELETE response headers' + $resp = Invoke-WebRequest @RestMethodParams + $RequestSuccessful = $true + $status = $null + $reqUri = $null + $respHeaders = $null + try { if ($resp -and $resp.StatusCode) { $status = [int]$resp.StatusCode } } catch { } + try { if (-not $status -and $resp -and $resp.BaseResponse) { $status = [int]$resp.BaseResponse.StatusCode } } catch { } + try { if ($resp -and $resp.BaseResponse -and $resp.BaseResponse.ResponseUri) { $reqUri = $resp.BaseResponse.ResponseUri.AbsoluteUri } } catch { } + if ($resp -and $resp.Headers) { $respHeaders = $resp.Headers } + $hdrHash = @{} + if ($respHeaders) { foreach ($key in $respHeaders.Keys) { $hdrHash[$key] = $respHeaders[$key] } } + return [PSCustomObject]@{ StatusCode = $status; Headers = $hdrHash; Uri = $reqUri } + } + + if ($UseInvokeWebRequest) { $Response = Invoke-WebRequest @RestMethodParams } + else { $Response = Invoke-RestMethod @RestMethodParams } + $RequestSuccessful = $true + + # Generic XML list parser: if response is XML string, parse into PSObjects + if ($Response -is [string]) { + $respText = $Response.Trim() + if ($respText.StartsWith(' + if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { + $token = Get-ClassicAPIToken -Tenant $tenantID -Resource $Resource + + $NextURL = $Uri + $ReturnedData = do { + try { + $Data = Invoke-RestMethod -ContentType "$ContentType;charset=UTF-8" -Uri $NextURL -Method $Method -Headers @{ + Authorization = "Bearer $($token.access_token)" + 'x-ms-client-request-id' = [guid]::NewGuid().ToString() + 'x-ms-client-session-id' = [guid]::NewGuid().ToString() + 'x-ms-correlation-id' = [guid]::NewGuid() + 'X-Requested-With' = 'XMLHttpRequest' + } + $Data + if ($noPagination -or $null -eq $data.NextLink) { $nextURL = $null } else { $nextURL = $data.NextLink } + } catch { + throw "Failed to make Classic Get Request $_" + } + } until ($null -eq $NextURL -or ' ' -eq $NextURL) + return $ReturnedData + } else { + Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-DeviceLogin.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-DeviceLogin.ps1 new file mode 100644 index 000000000000..2046e3fa158b --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-DeviceLogin.ps1 @@ -0,0 +1,31 @@ +function New-DeviceLogin { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param ( + [string]$clientid, + [string]$scope, + [switch]$FirstLogon, + [string]$device_code, + [string]$TenantId + ) + $encodedscope = [uri]::EscapeDataString($scope) + if ($FirstLogon) { + if ($TenantID) { + $ReturnCode = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$($TenantID)/oauth2/v2.0/devicecode" -Method POST -Body "client_id=$($Clientid)&scope=$encodedscope+offline_access+profile+openid" + + } else { + $ReturnCode = Invoke-RestMethod -Uri 'https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode' -Method POST -Body "client_id=$($Clientid)&scope=$encodedscope+offline_access+profile+openid" + } + } else { + $Checking = Invoke-RestMethod -SkipHttpErrorCheck -Uri 'https://login.microsoftonline.com/organizations/oauth2/v2.0/token' -Method POST -Body "client_id=$($Clientid)&scope=$encodedscope+offline_access+profile+openid&grant_type=device_code&device_code=$($device_code)" + if ($checking.refresh_token) { + $ReturnCode = $Checking + } else { + $returncode = $Checking.error + } + } + return $ReturnCode +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 new file mode 100644 index 000000000000..553331e6a328 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 @@ -0,0 +1,226 @@ +function New-ExoBulkRequest { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $tenantid, + $cmdletArray, + $useSystemMailbox, + $Anchor, + $NoAuthCheck, + $Select, + $ReturnWithCommand, + [switch]$Compliance, + [switch]$AsApp + ) + + if ((Get-AuthorisedRequest -TenantID $tenantid) -or $NoAuthCheck -eq $True) { + if ($Compliance.IsPresent) { + $Resource = 'https://ps.compliance.protection.outlook.com' + } else { + $Resource = 'https://outlook.office365.com' + } + $Token = Get-GraphToken -Tenantid $tenantid -scope "$Resource/.default" -AsApp:$AsApp.IsPresent + + $Tenant = Get-Tenants -IncludeErrors | Where-Object { $_.defaultDomainName -eq $tenantid -or $_.customerId -eq $tenantid } + $Headers = @{ + Authorization = $Token.Authorization + Prefer = 'odata.maxpagesize = 1000;odata.continue-on-error' + 'parameter-based-routing' = $true + 'X-AnchorMailbox' = $Anchor + } + + if ($Compliance.IsPresent) { + # Compliance URL logic (omitted for brevity) + } + + try { + if ($Select) { $Select = "`$select=$Select" } + $URL = "$Resource/adminapi/beta/$($Tenant.customerId)/InvokeCommand?$Select" + $BatchURL = "$Resource/adminapi/beta/$($Tenant.customerId)/`$batch" + + # Initialize the ID to Cmdlet Name mapping + $IdToCmdletName = @{} + $IdToOperationGuid = @{} # Track operation GUIDs when provided + + # Split the cmdletArray into batches of 10 + $batches = [System.Collections.Generic.List[object]]::new() + for ($i = 0; $i -lt $cmdletArray.Length; $i += 10) { + $batches.Add($cmdletArray[$i..[math]::Min($i + 9, $cmdletArray.Length - 1)]) + } + + $ReturnedData = [System.Collections.Generic.List[object]]::new() + foreach ($batch in $batches) { + $BatchBodyObj = @{ + requests = @() + } + foreach ($cmd in $batch) { + $cmdparams = $cmd.CmdletInput.Parameters + if ($cmdparams.Identity) { $Anchor = $cmdparams.Identity } + if ($cmdparams.anr) { $Anchor = $cmdparams.anr } + if ($cmdparams.User) { $Anchor = $cmdparams.User } + if (!$Anchor -or $useSystemMailbox) { + $OnMicrosoft = $Tenant.initialDomainName + $Anchor = "UPN:SystemMailbox{8cc370d3-822a-4ab8-a926-bb94bd0641a9}@$($OnMicrosoft)" + } + $Headers['X-AnchorMailbox'] = "APP:SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@$($tenant.customerId)" + $Headers['X-CmdletName'] = $cmd.CmdletInput.CmdletName + $Headers['Accept'] = 'application/json; odata.metadata=minimal' + $Headers['Accept-Encoding'] = 'gzip' + + # Use provided OperationGuid if available, otherwise generate one + $RequestId = if ($cmd.OperationGuid) { + $cmd.OperationGuid + } else { + [Guid]::NewGuid().ToString() + } + + # Create clean cmdlet object for API (without OperationGuid) + $CleanCmd = @{ + CmdletInput = $cmd.CmdletInput + } + + $BatchRequest = @{ + url = $URL + method = 'POST' + body = $CleanCmd + headers = $Headers.Clone() + id = $RequestId + } + $BatchBodyObj['requests'] = $BatchBodyObj['requests'] + $BatchRequest + + # Map the Request ID to the Cmdlet Name and Operation GUID (if provided) + $IdToCmdletName[$RequestId] = $cmd.CmdletInput.CmdletName + if ($cmd.OperationGuid) { + $IdToOperationGuid[$RequestId] = $cmd.OperationGuid + } + } + $BatchBodyJson = ConvertTo-Json -InputObject $BatchBodyObj -Depth 10 + $BatchBodyJson = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $BatchBodyJson + $Results = Invoke-RestMethod $BatchURL -ResponseHeadersVariable responseHeaders -Method POST -Body $BatchBodyJson -Headers $Headers -ContentType 'application/json; charset=utf-8' + foreach ($Response in $Results.responses) { + $ReturnedData.Add($Response) + } + + Write-Host "Batch #$($batches.IndexOf($batch) + 1) of $($batches.Count) processed" + } + } catch { + # Error handling (omitted for brevity) + } + + #Write-Information ($responseHeaders | ConvertTo-Json -Depth 10) + + # Process the returned data + if ($ReturnWithCommand) { + $FinalData = @{} + foreach ($item in $ReturnedData) { + $itemId = $item.id + $CmdletName = $IdToCmdletName[$itemId] + $OperationGuid = $IdToOperationGuid[$itemId] # Will be $null if not provided + $body = $item.body.PSObject.Copy() + + if ($body.'@adminapi.warnings') { + Write-Warning ($body.'@adminapi.warnings' | Out-String) + } + if (![string]::IsNullOrEmpty($body.error.details.message) -or ![string]::IsNullOrEmpty($body.error.message)) { + if ($body.error.details.message) { + $msg = [pscustomobject]@{ error = $body.error.details.message; target = $body.error.details.target } + } else { + $msg = [pscustomobject]@{ error = $body.error.message; target = $body.error.details.target } + } + + # Add OperationGuid to error if it was provided + if ($OperationGuid) { + $msg | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + + $body | Add-Member -MemberType NoteProperty -Name 'value' -Value $msg -Force + } else { + # Handle successful operations - add OperationGuid if provided + if ($body.value) { + # Add GUID to existing results if provided + if ($OperationGuid) { + if ($body.value -is [array]) { + foreach ($val in $body.value) { + $val | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + } else { + $body.value | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + } + } else { + # Create success indicators when GUID was provided (caller wants tracking) + if ($OperationGuid) { + $body | Add-Member -MemberType NoteProperty -Name 'value' -Value ([pscustomobject]@{ + Success = $true + OperationGuid = $OperationGuid + }) -Force + } + } + } + + $resultValues = $body.value + foreach ($resultValue in $resultValues) { + if (-not $FinalData.ContainsKey($CmdletName)) { + $FinalData[$CmdletName] = [System.Collections.Generic.List[object]]::new() + $FinalData[$CmdletName].Add($resultValue) + } else { + $FinalData[$CmdletName].Add($resultValue) + } + } + } + } else { + $FinalData = foreach ($item in $ReturnedData) { + $OperationGuid = $IdToOperationGuid[$item.id] # Will be $null if not provided + $body = $item.body.PSObject.Copy() + + if ($body.'@adminapi.warnings') { + Write-Warning ($body.'@adminapi.warnings' | Out-String) + } + if (![string]::IsNullOrEmpty($body.error.details.message) -or ![string]::IsNullOrEmpty($body.error.message)) { + if ($body.error.details.message) { + $msg = [pscustomobject]@{ error = $body.error.details.message; target = $body.error.details.target } + } else { + $msg = [pscustomobject]@{ error = $body.error.message; target = $body.error.details.target } + } + + # Add OperationGuid to error if it was provided + if ($OperationGuid) { + $msg | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + + $body | Add-Member -MemberType NoteProperty -Name 'value' -Value $msg -Force + } else { + # Handle successful operations + if ($body.value) { + # Add GUID to existing results if provided + if ($OperationGuid) { + if ($body.value -is [array]) { + foreach ($val in $body.value) { + $val | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + } else { + $body.value | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + } + } else { + # Create success indicators when GUID was provided (caller wants tracking) + if ($OperationGuid) { + $body | Add-Member -MemberType NoteProperty -Name 'value' -Value ([pscustomobject]@{ + Success = $true + OperationGuid = $OperationGuid + }) -Force + } + } + } + $body.value + } + } + return $FinalData + + } else { + Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 new file mode 100644 index 000000000000..93c373c1fa98 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 @@ -0,0 +1,169 @@ +function New-ExoRequest { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding(DefaultParameterSetName = 'ExoRequest')] + param( + [Parameter(Mandatory = $true, ParameterSetName = 'ExoRequest')] + [string]$cmdlet, + + [Parameter(Mandatory = $false, ParameterSetName = 'ExoRequest')] + $cmdParams, + + [Parameter(Mandatory = $false, ParameterSetName = 'ExoRequest')] + [string]$Select, + + [Parameter(Mandatory = $false, ParameterSetName = 'ExoRequest')] + [string]$Anchor, + + [Parameter(Mandatory = $false, ParameterSetName = 'ExoRequest')] + [bool]$useSystemMailbox, + + [string]$tenantid, + + [bool]$NoAuthCheck, + + [switch]$Compliance, + [ValidateSet('v1.0', 'beta')] + [string]$ApiVersion = 'beta', + + [Parameter(ParameterSetName = 'AvailableCmdlets')] + [switch]$AvailableCmdlets, + + $ModuleVersion = '3.7.1', + [switch]$AsApp + ) + if ((Get-AuthorisedRequest -TenantID $tenantid) -or $NoAuthCheck -eq $True) { + if ($Compliance.IsPresent) { + $Resource = 'https://ps.compliance.protection.outlook.com' + } else { + $Resource = 'https://outlook.office365.com' + } + $token = Get-GraphToken -Tenantid $tenantid -scope "$Resource/.default" -AsApp:$AsApp.IsPresent + + if ($cmdParams) { + #if cmdParams is a pscustomobject, convert to hashtable, otherwise leave as is + $Params = $cmdParams + } else { + $Params = @{} + } + $ExoBody = ConvertTo-Json -Depth 5 -Compress -InputObject @{ + CmdletInput = @{ + CmdletName = $cmdlet + Parameters = $Params + } + } + $ExoBody = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $ExoBody -EscapeForJson + + $Tenant = Get-Tenants -IncludeErrors | Where-Object { $_.defaultDomainName -eq $tenantid -or $_.customerId -eq $tenantid } + if (-not $Tenant -and $NoAuthCheck -eq $true) { + $Tenant = [PSCustomObject]@{ + customerId = $tenantid + } + } + if (!$Anchor) { + $MailboxGuid = 'bb558c35-97f1-4cb9-8ff7-d53741dc928c' + if ($cmdlet -in 'Set-AdminAuditLogConfig') { + $MailboxGuid = '8cc370d3-822a-4ab8-a926-bb94bd0641a9' + } + if ($Compliance.IsPresent) { + $Anchor = "UPN:SystemMailbox{$MailboxGuid}@$($tenant.initialDomainName)" + } else { + $anchor = "APP:SystemMailbox{$MailboxGuid}@$($tenant.customerId)" + } + } + #if the anchor is a GUID, try looking up the user. + if ($Anchor -match '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') { + Write-Verbose "Anchor is a GUID, looking up user. GUID is $Anchor" + $NewAnchor = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$Anchor/?`$select=UserPrincipalName,id" -tenantid $tenantid -NoAuthCheck $NoAuthCheck + if ($NewAnchor) { + $Anchor = $NewAnchor.UserPrincipalName + Write-Verbose "Found GUID, using $Anchor" + } else { + Write-Error "Failed to find user with GUID $Anchor" + } + } + + Write-Verbose "Using $Anchor" + + $Headers = @{ + Authorization = $Token.Authorization + Prefer = 'odata.maxpagesize=1000' + 'X-AnchorMailbox' = $anchor + } + + # Compliance API trickery. Capture Location headers on redirect, extract subdomain and prepend to compliance URL + if ($Compliance.IsPresent) { + if (!$Tenant.ComplianceUrl) { + Write-Verbose "Getting Compliance URL for $($tenant.defaultDomainName)" + $URL = "$Resource/adminapi/$ApiVersion/$($tenant.customerId)/EXOBanner('AutogenSession')?Version=$ModuleVersion" + Invoke-RestMethod -ResponseHeadersVariable ComplianceHeaders -MaximumRedirection 0 -ErrorAction SilentlyContinue -Uri $URL -Headers $Headers -SkipHttpErrorCheck | Out-Null + $RedirectedHost = ([System.Uri]($ComplianceHeaders.Location | Select-Object -First 1)).Host + $RedirectedHostname = '{0}.ps.compliance.protection.outlook.com' -f ($RedirectedHost -split '\.' | Select-Object -First 1) + $Resource = "https://$($RedirectedHostname)" + try { + $null = [System.Uri]$Resource + $Tenant | Add-Member -MemberType NoteProperty -Name ComplianceUrl -Value $Resource + $TenantTable = Get-CIPPTable -tablename 'Tenants' + Add-CIPPAzDataTableEntity @TenantTable -Entity $Tenant -Force + } catch { + Write-Error "Failed to get the Compliance URL for $($tenant.defaultDomainName), invalid URL - check the Anchor and try again." + return + } + } else { + $Resource = $Tenant.ComplianceUrl + } + Write-Verbose "Redirecting to $Resource" + } + + if ($PSCmdlet.ParameterSetName -eq 'AvailableCmdlets') { + $Headers.CommandName = '*' + $URL = "$Resource/adminapi/v1.0/$($tenant.customerId)/EXOModuleFile?Version=$ModuleVersion" + Write-Verbose "GET [ $URL ]" + return (Invoke-RestMethod -Uri $URL -Headers $Headers).value.exportedCmdlets -split ',' | Where-Object { $_ } | Sort-Object + } + + if ($PSCmdlet.ParameterSetName -eq 'ExoRequest') { + try { + if ($Select) { $Select = "?`$select=$Select" } + $URL = "$Resource/adminapi/$ApiVersion/$($tenant.customerId)/InvokeCommand$Select" + + Write-Verbose "POST [ $URL ]" + $ReturnedData = do { + $ExoRequestParams = @{ + Uri = $URL + Method = 'POST' + Body = $ExoBody + Headers = $Headers + ContentType = 'application/json; charset=utf-8' + } + + $Return = Invoke-RestMethod @ExoRequestParams -ResponseHeadersVariable ResponseHeaders + $URL = $Return.'@odata.nextLink' + $Return + } until ($null -eq $URL) + + Write-Verbose ($ResponseHeaders | ConvertTo-Json) + if ($ReturnedData.'@adminapi.warnings' -and $null -eq $ReturnedData.value) { + $ReturnedData.value = $ReturnedData.'@adminapi.warnings' + } + } catch { + $ErrorMess = $($_.Exception.Message) + try { + $ReportedError = ($_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue) + $Message = if ($ReportedError.error.details.message) { + $ReportedError.error.details.message + } elseif ($ReportedError.error.innererror) { + $ReportedError.error.innererror.internalException.message + } elseif ($ReportedError.error.message) { $ReportedError.error.message } + } catch { $Message = $_.ErrorDetails } + if ($null -eq $Message) { $Message = $ErrorMess } + throw $Message + } + return $ReturnedData.value + } + } else { + Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 new file mode 100644 index 000000000000..0b961c534385 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 @@ -0,0 +1,99 @@ +function New-GraphBulkRequest { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $tenantid, + $NoAuthCheck, + $scope, + $asapp, + $Requests, + $NoPaginateIds = @(), + [ValidateSet('v1.0', 'beta')] + $Version = 'beta' + ) + + if ($NoAuthCheck -or (Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { + $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp + + if ($script:XMsThrottlePriority) { + $headers['x-ms-throttle-priority'] = $script:XMsThrottlePriority + } + + $URL = "https://graph.microsoft.com/$Version/`$batch" + + # Track consecutive Graph API failures + $TenantsTable = Get-CippTable -tablename Tenants + $Filter = "PartitionKey eq 'Tenants' and (defaultDomainName eq '{0}' or customerId eq '{0}')" -f $tenantid + $Tenant = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter + if (!$Tenant) { + $Tenant = @{ + GraphErrorCount = 0 + LastGraphError = '' + PartitionKey = 'TenantFailed' + RowKey = 'Failed' + } + } + try { + $ReturnedData = for ($i = 0; $i -lt $Requests.count; $i += 20) { + $req = @{} + # Use select to create hashtables of id, method and url for each call + $req['requests'] = ($Requests[$i..($i + 19)]) + $ReqBody = (ConvertTo-Json -InputObject $req -Compress -Depth 100) + $Return = Invoke-RestMethod -Uri $URL -Method POST -Headers $headers -ContentType 'application/json; charset=utf-8' -Body $ReqBody + if ($Return.headers.'retry-after') { + #Revist this when we are pushing this data into our custom schema instead. + $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp + Invoke-RestMethod -Uri $URL -Method POST -Headers $headers -ContentType 'application/json; charset=utf-8' -Body $ReqBody + } + $Return + } + foreach ($MoreData in $ReturnedData.Responses | Where-Object { $_.body.'@odata.nextLink' }) { + if ($NoPaginateIds -contains $MoreData.id) { + continue + } + Write-Host 'Getting more' + Write-Host $MoreData.body.'@odata.nextLink' + $AdditionalValues = New-GraphGetRequest -ComplexFilter -uri $MoreData.body.'@odata.nextLink' -tenantid $tenantid -NoAuthCheck $NoAuthCheck -scope $scope -AsApp $asapp + $NewValues = [System.Collections.Generic.List[PSCustomObject]]$MoreData.body.value + $AdditionalValues | ForEach-Object { $NewValues.add($_) } + $MoreData.body.value = $NewValues + } + + } catch { + # Try to parse ErrorDetails.Message as JSON + if ($_.ErrorDetails.Message) { + try { + $ErrorJson = $_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction Stop + $Message = $ErrorJson.error.message + } catch { + $Message = $_.ErrorDetails.Message + } + } + + if ([string]::IsNullOrEmpty($Message)) { + $Message = $_.Exception.Message + } + + if ($Message -ne 'Request not applicable to target tenant.') { + $Tenant.LastGraphError = $Message ?? '' + $Tenant.GraphErrorCount++ + Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant + } + throw $Message + } + + if ($Tenant.PSObject.Properties.Name -notcontains 'LastGraphError') { + $Tenant | Add-Member -MemberType NoteProperty -Name 'LastGraphError' -Value '' -Force + } else { + $Tenant.LastGraphError = '' + } + Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant + + return $ReturnedData.responses + } else { + Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 new file mode 100644 index 000000000000..ec43778f3748 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 @@ -0,0 +1,207 @@ +function New-GraphGetRequest { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [string]$uri, + [string]$tenantid, + [string]$scope, + $AsApp, + [bool]$noPagination, + $NoAuthCheck = $false, + [bool]$skipTokenCache, + $Caller, + [switch]$ComplexFilter, + [switch]$CountOnly, + [switch]$IncludeResponseHeaders, + [hashtable]$extraHeaders, + [switch]$ReturnRawResponse + ) + + if ($NoAuthCheck -eq $false) { + $IsAuthorised = Get-AuthorisedRequest -Uri $uri -TenantID $tenantid + } else { + $IsAuthorised = $true + } + + if ($NoAuthCheck -eq $true -or $IsAuthorised) { + if ($scope -eq 'ExchangeOnline') { + $headers = Get-GraphToken -tenantid $tenantid -scope 'https://outlook.office365.com/.default' -AsApp $asapp -SkipCache $skipTokenCache + } else { + $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp -SkipCache $skipTokenCache + } + + if ($ComplexFilter) { + $headers['ConsistencyLevel'] = 'eventual' + } + + if ($script:XMsThrottlePriority) { + $headers['x-ms-throttle-priority'] = $script:XMsThrottlePriority + } + + $nextURL = $uri + if ($extraHeaders) { + foreach ($key in $extraHeaders.Keys) { + $headers[$key] = $extraHeaders[$key] + } + } + + if (!$headers['User-Agent']) { + $headers['User-Agent'] = "CIPP/$($global:CippVersion ?? '1.0')" + } + + # Track consecutive Graph API failures + $TenantsTable = Get-CippTable -tablename Tenants + $Filter = "PartitionKey eq 'Tenants' and (defaultDomainName eq '{0}' or customerId eq '{0}')" -f $tenantid + $Tenant = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter + if (!$Tenant) { + $Tenant = @{ + GraphErrorCount = 0 + LastGraphError = '' + PartitionKey = 'TenantFailed' + RowKey = 'Failed' + } + } + + $ReturnedData = do { + $RetryCount = 0 + $MaxRetries = 3 + $RequestSuccessful = $false + Write-Information "GET [ $nextURL ] | tenant: $tenantid | attempt: $($RetryCount + 1) of $MaxRetries" + do { + try { + $GraphRequest = @{ + Uri = $nextURL + Method = 'GET' + Headers = $headers + ContentType = 'application/json; charset=utf-8' + } + + if ($ReturnRawResponse) { + $GraphRequest.SkipHttpErrorCheck = $true + $Data = Invoke-WebRequest @GraphRequest + } else { + $GraphRequest.ResponseHeadersVariable = 'ResponseHeaders' + $Data = (Invoke-RestMethod @GraphRequest) + $script:LastGraphResponseHeaders = $ResponseHeaders + } + + # If we reach here, the request was successful + $RequestSuccessful = $true + + if ($ReturnRawResponse) { + try { + if ($Data.Content -and (Test-Json -Json $Data.Content -ErrorAction Stop)) { + $Content = $Data.Content | ConvertFrom-Json + } else { + $Content = $Data.Content + } + } catch { + $Content = $Data.Content + } + + [PSCustomObject]@{ + StatusCode = $Data.StatusCode + StatusDescription = $Data.StatusDescription + Content = $Content + } + $nextURL = $null + } elseif ($CountOnly) { + $Data.'@odata.count' + $NextURL = $null + } else { + if ($Data.PSObject.Properties.Name -contains 'value') { $data.value } else { $Data } + if ($noPagination -eq $true) { + if ($Caller -eq 'Get-GraphRequestList') { + @{ 'nextLink' = $data.'@odata.nextLink' } + } + $nextURL = $null + } else { + $NextPageUriFound = $false + if ($IncludeResponseHeaders) { + if ($ResponseHeaders.NextPageUri) { + $NextURL = $ResponseHeaders.NextPageUri + $NextPageUriFound = $true + } + } + if (!$NextPageUriFound) { + $nextURL = $data.'@odata.nextLink' + } + } + } + } catch { + $ShouldRetry = $false + $WaitTime = 0 + try { + $MessageObj = $_.ErrorDetails.Message | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($MessageObj.error) { + $MessageObj | Add-Member -NotePropertyName 'url' -NotePropertyValue $nextURL -Force + $Message = $MessageObj.error.message -ne '' ? $MessageObj.error.message : $MessageObj.error.code + } + } catch { $Message = $null } + + if ([string]::IsNullOrEmpty($Message)) { + $Message = $($_.Exception.Message) + $MessageObj = @{ + error = @{ + code = $_.Exception.GetType().FullName + message = $Message + url = $nextURL + } + } + } + + # Check for 429 Too Many Requests + if ($_.Exception.Response.StatusCode -eq 429) { + $RetryAfterHeader = $_.Exception.Response.Headers['Retry-After'] + if ($RetryAfterHeader) { + $WaitTime = [int]$RetryAfterHeader + Write-Warning "Rate limited (429). Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + # Check for "Resource temporarily unavailable" + elseif ($Message -like '*Resource temporarily unavailable*') { + if ($RetryCount -lt $MaxRetries) { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 # Random sleep between 1-2 seconds + Write-Warning "Resource temporarily unavailable. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $MaxRetries" + $ShouldRetry = $true + } + } + + if ($ShouldRetry -and $RetryCount -lt $MaxRetries) { + $RetryCount++ + Start-Sleep -Seconds $WaitTime + } else { + # Final failure - update tenant error tracking and throw + if ($Message -ne 'Request not applicable to target tenant.' -and $Tenant) { + $Tenant.LastGraphError = [string]($MessageObj | ConvertTo-Json -Compress) + if ($Tenant.PSObject.Properties.Name -notcontains 'GraphErrorCount') { + $Tenant | Add-Member -MemberType NoteProperty -Name 'GraphErrorCount' -Value 0 -Force + } + $Tenant.GraphErrorCount++ + Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant + } + throw $Message + } + } + } while (-not $RequestSuccessful -and $RetryCount -le $MaxRetries) + } until ([string]::IsNullOrEmpty($NextURL) -or $NextURL -is [object[]] -or ' ' -eq $NextURL) + if ($Tenant.PSObject.Properties.Name -notcontains 'LastGraphError') { + $Tenant | Add-Member -MemberType NoteProperty -Name 'LastGraphError' -Value '' -Force + } else { + $Tenant.LastGraphError = '' + } + if ($Tenant.PSObject.Properties.Name -notcontains 'GraphErrorCount') { + $Tenant | Add-Member -MemberType NoteProperty -Name 'GraphErrorCount' -Value 0 -Force + } else { + $Tenant.GraphErrorCount = 0 + } + Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant + return $ReturnedData + } else { + Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 new file mode 100644 index 000000000000..ebc8a4efc2dd --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 @@ -0,0 +1,72 @@ + +function New-GraphPOSTRequest { + <# + .FUNCTIONALITY + Internal + #> + param( + $uri, + $tenantid, + $body, + $type = 'POST', + $scope, + $AsApp, + $NoAuthCheck, + $skipTokenCache, + $AddedHeaders, + $contentType, + $IgnoreErrors = $false, + $returnHeaders = $false, + $maxRetries = 1 + ) + + if ($NoAuthCheck -or (Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { + $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp -SkipCache $skipTokenCache + if ($AddedHeaders) { + foreach ($header in $AddedHeaders.GetEnumerator()) { + $headers.Add($header.Key, $header.Value) + } + } + + if (!$headers['User-Agent']) { + $headers['User-Agent'] = "CIPP/$($global:CippVersion ?? '1.0')" + } + + if (!$contentType) { + $contentType = 'application/json; charset=utf-8' + } + + $body = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $body -EscapeForJson + + $x = 0 + do { + try { + Write-Information "$($type.ToUpper()) [ $uri ] | tenant: $tenantid | attempt: $($x + 1) of $maxRetries" + $success = $false + $ReturnedData = (Invoke-RestMethod -Uri $($uri) -Method $TYPE -Body $body -Headers $headers -ContentType $contentType -SkipHttpErrorCheck:$IgnoreErrors -ResponseHeadersVariable responseHeaders) + $success = $true + } catch { + + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + $x++ + Start-Sleep -Seconds (2 * $x) + } + } while (($x -lt $maxRetries) -and ($success -eq $false)) + + if ($success -eq $false) { + throw $Message + } + + if ($returnHeaders) { + return $responseHeaders + } else { + return $ReturnedData + } + } else { + Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 new file mode 100644 index 000000000000..9d97e7a01ab0 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 @@ -0,0 +1,58 @@ +function New-TeamsAPIGetRequest($Uri, $tenantID, $Method = 'GET', $Resource = '48ac35b8-9aa8-4d74-927d-1f4a14a0b239', $ContentType = 'application/json') { + <# + .FUNCTIONALITY + Internal + #> + + if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { + $token = Get-GraphToken -TenantID $tenantID -Scope "$Resource/.default" + $NextURL = $Uri + $ReturnedData = do { + $handler = $null + $httpClient = $null + $response = $null + try { + # Create handler and client with compression disabled + $handler = New-Object System.Net.Http.HttpClientHandler + $handler.AutomaticDecompression = [System.Net.DecompressionMethods]::None + $httpClient = New-Object System.Net.Http.HttpClient($handler) + + # Add all required headers + $headers = @{ + 'Authorization' = $token.Authorization + 'x-ms-client-request-id' = [guid]::NewGuid().ToString() + 'x-ms-client-session-id' = [guid]::NewGuid().ToString() + 'x-ms-correlation-id' = [guid]::NewGuid().ToString() + 'X-Requested-With' = 'XMLHttpRequest' + 'x-ms-tnm-applicationid' = '045268c0-445e-4ac1-9157-d58f67b167d9' + 'Accept' = 'application/json' + 'Accept-Encoding' = 'identity' + 'User-Agent' = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36' + } + + foreach ($header in $headers.GetEnumerator()) { + $httpClient.DefaultRequestHeaders.Add($header.Key, $header.Value) + } + + $response = $httpClient.GetAsync($NextURL).Result + $contentString = $response.Content.ReadAsStringAsync().Result + + # Parse JSON and return data + $Data = $contentString | ConvertFrom-Json + + $Data + if ($noPagination) { $nextURL = $null } else { $nextURL = $data.NextLink } + } catch { + throw "Failed to make Teams API Get Request $_" + } finally { + # Proper cleanup in finally block to ensure disposal even on exceptions + if ($response) { $response.Dispose() } + if ($httpClient) { $httpClient.Dispose() } + if ($handler) { $handler.Dispose() } + } + } until ($null -eq $NextURL) + return $ReturnedData + } else { + Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequest.ps1 new file mode 100644 index 000000000000..64b85d354f46 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequest.ps1 @@ -0,0 +1,23 @@ +function New-TeamsRequest { + [CmdletBinding()] + Param( + $TenantFilter, + $Cmdlet, + $CmdParams = @{}, + [switch]$AvailableCmdlets + ) + + if ($AvailableCmdlets) { + Get-Command -Module MicrosoftTeams | Select-Object Name + return + } + if (Get-Command -Module MicrosoftTeams -Name $Cmdlet) { + $TeamsToken = (Get-GraphToken -tenantid $TenantFilter -scope '48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default').Authorization -replace 'Bearer ' + $GraphToken = (Get-GraphToken -tenantid $TenantFilter).Authorization -replace 'Bearer ' + + $null = Connect-MicrosoftTeams -AccessTokens @($TeamsToken, $GraphToken) + & $Cmdlet @CmdParams + } else { + Write-Error "Cmdlet $Cmdlet not found in MicrosoftTeams module" + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-passwordString.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-passwordString.ps1 new file mode 100644 index 000000000000..c8393455c326 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-passwordString.ps1 @@ -0,0 +1,35 @@ +function New-passwordString { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param ( + [int]$count = 12 + ) + $SettingsTable = Get-CippTable -tablename 'Settings' + $PasswordType = (Get-CIPPAzDataTableEntity @SettingsTable).passwordType + if ($PasswordType -eq 'Correct-Battery-Horse') { + $Words = Get-Content .\words.txt + (Get-Random -InputObject $words -Count 4) -join '-' + } else { + # Generate a complex password with a maximum of 100 tries + $maxTries = 100 + $tryCount = 0 + + do { + $Password = -join ('abcdefghkmnrstuvwxyzABCDEFGHKLMNPRSTUVWXYZ23456789$%&*#'.ToCharArray() | Get-Random -Count $count) + + $containsUppercase = $Password -cmatch '[A-Z]' + $containsLowercase = $Password -cmatch '[a-z]' + $containsDigit = $Password -cmatch '\d' + $containsSpecialChar = $Password -cmatch '[$%&*#]' + + $isComplex = $containsUppercase -and $containsLowercase -and $containsDigit -and $containsSpecialChar + + $tryCount++ + } while (!$isComplex -and ($tryCount -lt $maxTries)) + + $Password + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Read-JwtAccessDetails.ps1 b/Modules/CIPPCore/Public/GraphHelper/Read-JwtAccessDetails.ps1 new file mode 100644 index 000000000000..58cb338240bc --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Read-JwtAccessDetails.ps1 @@ -0,0 +1,52 @@ +function Read-JwtAccessDetails { + <# + .FUNCTIONALITY + Internal + #> + [cmdletbinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Token + ) + + # Default token object + $TokenDetails = [PSCustomObject]@{ + AppId = '' + AppName = '' + Audience = '' + AuthMethods = '' + IPAddress = '' + Name = '' + Scope = '' + Roles = '' + TenantId = '' + UserPrincipalName = '' + } + + if (!$Token.Contains('.') -or !$token.StartsWith('eyJ')) { return $TokenDetails } + + # Get token payload + $tokenPayload = $token.Split('.')[1].Replace('-', '+').Replace('_', '/') + while ($tokenPayload.Length % 4) { + $tokenPayload = '{0}=' -f $tokenPayload + } + + # Convert base64 to json to object + $tokenByteArray = [System.Convert]::FromBase64String($tokenPayload) + $tokenArray = [System.Text.Encoding]::UTF8.GetString($tokenByteArray) + $TokenObj = $tokenArray | ConvertFrom-Json + + # Convert token details to human readable + $TokenDetails.AppId = $TokenObj.appid + $TokenDetails.AppName = $TokenObj.app_displayname + $TokenDetails.Audience = $TokenObj.aud + $TokenDetails.AuthMethods = $TokenObj.amr + $TokenDetails.IPAddress = $TokenObj.ipaddr + $TokenDetails.Name = $TokenObj.name + $TokenDetails.Scope = $TokenObj.scp -split ' ' + $TokenDetails.Roles = $TokenObj.roles + $TokenDetails.TenantId = $TokenObj.tid + $TokenDetails.UserPrincipalName = $TokenObj.upn + + return $TokenDetails +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 b/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 new file mode 100644 index 000000000000..6f49587eff53 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPAzStorageContainer.ps1 @@ -0,0 +1,39 @@ +function Remove-CIPPAzStorageContainer { + <# + .SYNOPSIS + Deletes an Azure Storage blob container. + .DESCRIPTION + Issues a DELETE request to /?restype=container via New-CIPPAzStorageRequest. + Returns a compact object with StatusCode, Headers, and Request Uri. + .PARAMETER Name + The name of the container to delete. + .PARAMETER ConnectionString + Azure Storage connection string. Defaults to $env:AzureWebJobsStorage. + .EXAMPLE + Remove-CIPPAzStorageContainer -Name 'cipp-largemessages' + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true, Position = 0)] + [ValidateNotNullOrEmpty()] + [string]$Name, + + [Parameter(Mandatory = $false)] + [string]$ConnectionString = $env:AzureWebJobsStorage + ) + + if ($PSCmdlet.ShouldProcess($Name, 'Remove blob container')) { + try { + $headers = @{ Accept = 'application/xml' } + $resp = New-CIPPAzStorageRequest -Service 'blob' -Resource $Name -QueryParams @{ restype = 'container' } -Method 'DELETE' -Headers $headers -ConnectionString $ConnectionString + if ($null -eq $resp) { return [PSCustomObject]@{ Name = $Name; StatusCode = 202; Headers = @{}; Uri = $null } } + $status = $null; $uri = $null; $hdrs = @{} + if ($resp.PSObject.Properties['StatusCode']) { $status = [int]$resp.StatusCode } + if ($resp.PSObject.Properties['Uri']) { $uri = $resp.Uri } + if ($resp.PSObject.Properties['Headers']) { $hdrs = $resp.Headers } + return [PSCustomObject]@{ Name = $Name; StatusCode = $status; Headers = $hdrs; Uri = $uri } + } catch { + throw $_ + } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPCache.ps1 b/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPCache.ps1 new file mode 100644 index 000000000000..d46ce84905ab --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Remove-CIPPCache.ps1 @@ -0,0 +1,48 @@ +function Remove-CIPPCache { + <# + .FUNCTIONALITY + Internal + #> + param ( + $TenantsOnly + ) + # Remove all tenants except excluded + $TenantsTable = Get-CippTable -tablename 'Tenants' + $Filter = "PartitionKey eq 'Tenants' and Excluded eq false and delegatedPrivilegeStatus eq 'granularDelegatedAdminPrivileges'" + $ClearIncludedTenants = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter -Property PartitionKey, RowKey + if ($ClearIncludedTenants) { + Remove-AzDataTableEntity -Force @TenantsTable -Entity $ClearIncludedTenants + } + "Removed $($ClearIncludedTenants.Count) tenants" + + if ($TenantsOnly -eq $false) { + 'Clearing all cached table data' + $Context = New-AzDataTableContext -ConnectionString $env:AzureWebJobsStorage + $Tables = Get-AzDataTable -Context $Context + foreach ($Table in $Tables) { + if ($Table -match '^cache') { + "Removing cache table $Table" + $TableContext = Get-CIPPTable -TableName $Table + Remove-AzDataTable @TableContext + } + } + + 'Clearing domain analyser results' + # Remove Domain Analyser cached results + $DomainsTable = Get-CippTable -tablename 'Domains' + $Filter = "PartitionKey eq 'TenantDomains'" + $ClearDomainAnalyserRows = Get-CIPPAzDataTableEntity @DomainsTable -Filter $Filter | ForEach-Object { + $_ | Add-Member -MemberType NoteProperty -Name DomainAnalyser -Value '' -Force + $_ + } + if ($ClearDomainAnalyserRows) { + Update-AzDataTableEntity -Force @DomainsTable -Entity $ClearDomainAnalyserRows + } + + $env:SetFromProfile = $null + $Script:SkipListCache = $Null + $Script:SkipListCacheEmpty = $Null + $Script:IncludedTenantsCache = $Null + } + 'Cache cleanup complete' +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 b/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 new file mode 100644 index 000000000000..e39c07e9e6cc --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Update-CIPPAzFunctionAppSetting.ps1 @@ -0,0 +1,86 @@ +function Update-CIPPAzFunctionAppSetting { + <# + .SYNOPSIS + Updates Azure Function App application settings via ARM REST using managed identity. + .PARAMETER Name + Function App name. + .PARAMETER ResourceGroupName + Resource group name. + .PARAMETER AppSetting + Hashtable of settings to set (key/value). Values should be strings. + .PARAMETER RemoveKeys + Optional array of setting keys to remove from the Function App configuration. Removals are applied after merging updates and before PUT. + .PARAMETER AccessToken + Optional bearer token to override Managed Identity. If provided, this token is used for Authorization. + .EXAMPLE + Update-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 -AppSetting @{ WEBSITE_TIME_ZONE = 'UTC' } + .EXAMPLE + Update-CIPPAzFunctionAppSetting -Name myfunc -ResourceGroupName rg1 -AppSetting @{ WEBSITE_TIME_ZONE = 'UTC' } -RemoveKeys @('OLD_KEY','LEGACY_SETTING') + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [string]$ResourceGroupName, + + [Parameter(Mandatory = $true)] + [hashtable]$AppSetting, + + [Parameter(Mandatory = $false)] + [string[]]$RemoveKeys, + + [Parameter(Mandatory = $false)] + [string]$AccessToken + ) + + # Build ARM URIs + $subscriptionId = Get-CIPPAzFunctionAppSubId + $apiVersion = '2024-11-01' + $updateUri = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Web/sites/$Name/config/appsettings?api-version=$apiVersion" + + # Fetch current settings to avoid overwriting unrelated keys + $current = $null + try { + # Prefer the dedicated getter to handle ARM quirks + $GetSettings = @{ + Name = $Name + ResourceGroupName = $ResourceGroupName + } + if ($AccessToken) { $GetSettings.AccessToken = $AccessToken } + $current = Get-CIPPAzFunctionAppSetting @GetSettings + } catch { $current = $null } + $currentProps = @{} + if ($current -and $current.properties) { + # Handle PSCustomObject properties (JSON deserialization result) + if ($current.properties -is [hashtable]) { + foreach ($ck in $current.properties.Keys) { $currentProps[$ck] = [string]$current.properties[$ck] } + } else { + # PSCustomObject - enumerate using PSObject.Properties + foreach ($prop in $current.properties.PSObject.Properties) { + $currentProps[$prop.Name] = [string]$prop.Value + } + } + } + + # Merge requested settings + foreach ($k in $AppSetting.Keys) { $currentProps[$k] = [string]$AppSetting[$k] } + + # Apply removals if specified + if ($RemoveKeys -and $RemoveKeys.Count -gt 0) { + foreach ($rk in $RemoveKeys) { + if ($currentProps.ContainsKey($rk)) { + [void]$currentProps.Remove($rk) + } + } + } + $body = @{ properties = $currentProps } + + if ($PSCmdlet.ShouldProcess($Name, 'Update Function App settings')) { + $restParams = @{ Uri = $updateUri; Method = 'PUT'; Body = $body; ContentType = 'application/json' } + if ($AccessToken) { $restParams.AccessToken = $AccessToken } + $resp = New-CIPPAzRestRequest @restParams + return $resp + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-AlertMessage.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-AlertMessage.ps1 new file mode 100644 index 000000000000..30eea9247a42 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Write-AlertMessage.ps1 @@ -0,0 +1,18 @@ +function Write-AlertMessage($message, $tenant = 'None', $tenantId = $null, $LogData = @{}) { + <# + .FUNCTIONALITY + Internal + #> + #Do duplicate detection, if no duplicate, write. + $Table = Get-CIPPTable -tablename CippLogs + $PartitionKey = Get-Date -UFormat '%Y%m%d' + $Filter = "PartitionKey eq '{0}' and Message eq '{1}' and Tenant eq '{2}'" -f $PartitionKey, $message.Replace("'", "''"), $tenant + $ExistingMessage = Get-CIPPAzDataTableEntity @Table -Filter $Filter + if (!$ExistingMessage) { + Write-Host 'No duplicate message found, writing to log' + Write-LogMessage -message $message -tenant $tenant -sev 'Alert' -tenantId $tenantId -API 'Alerts' -LogData $LogData + } else { + Write-Host 'Alerts: Duplicate entry found, not writing to log' + + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-AlertTrace.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-AlertTrace.ps1 new file mode 100644 index 000000000000..3b19ead2c588 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Write-AlertTrace.ps1 @@ -0,0 +1,48 @@ +function Write-AlertTrace { + <# + .FUNCTIONALITY + Internal function. Pleases most of Write-AlertTrace for alerting purposes + #> + param( + $cmdletName, + $data, + $tenantFilter, + [string]$PartitionKey = (Get-Date -UFormat '%Y%m%d').ToString(), + [string]$AlertComment = $null + ) + $Table = Get-CIPPTable -tablename AlertLastRun + #Get current row and compare the $logData object. If it's the same, don't write it. + $Row = Get-CIPPAzDataTableEntity @table -Filter "RowKey eq '$($tenantFilter)-$($cmdletName)' and PartitionKey eq '$PartitionKey'" + try { + $RowData = $Row.LogData + $Compare = Compare-Object $RowData (ConvertTo-Json -InputObject $data -Compress -Depth 10 | Out-String) + if ($Compare) { + $LogData = ConvertTo-Json -InputObject $data -Compress -Depth 10 | Out-String + $TableRow = @{ + 'PartitionKey' = $PartitionKey + 'RowKey' = "$($tenantFilter)-$($cmdletName)" + 'CmdletName' = "$cmdletName" + 'Tenant' = "$tenantFilter" + 'LogData' = [string]$LogData + 'AlertComment' = [string]$AlertComment + } + $Table.Entity = $TableRow + Add-CIPPAzDataTableEntity @Table -Force | Out-Null + return $data + } + } catch { + $LogData = ConvertTo-Json -InputObject $data -Compress -Depth 10 | Out-String + $TableRow = @{ + 'PartitionKey' = $PartitionKey + 'RowKey' = "$($tenantFilter)-$($cmdletName)" + 'CmdletName' = "$cmdletName" + 'Tenant' = "$tenantFilter" + 'LogData' = [string]$LogData + 'AlertComment' = [string]$AlertComment + } + $Table.Entity = $TableRow + Add-CIPPAzDataTableEntity @Table -Force | Out-Null + return $data + } + +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-CippFunctionStats.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-CippFunctionStats.ps1 new file mode 100644 index 000000000000..d47a23bbb92f --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Write-CippFunctionStats.ps1 @@ -0,0 +1,45 @@ +function Write-CippFunctionStats { + <# + .FUNCTIONALITY + Internal + #> + Param( + [string]$FunctionType, + $Entity, + [datetime]$Start, + [datetime]$End, + [string]$ErrorMsg = '' + ) + try { + $Table = Get-CIPPTable -tablename CippFunctionStats + $RowKey = [string](New-Guid).Guid + $TimeSpan = New-TimeSpan -Start $Start -End $End + $Duration = [int]$TimeSpan.TotalSeconds + $DurationMS = [int]$TimeSpan.TotalMilliseconds + + $StatEntity = @{} + # Flatten data to json string + $StatEntity.PartitionKey = $FunctionType + $StatEntity.RowKey = $RowKey + $StatEntity.Start = $Start.ToUniversalTime() + $StatEntity.End = $End.ToUniversalTime() + $StatEntity.Duration = $Duration + $StatEntity.DurationMS = $DurationMS + $StatEntity.ErrorMsg = $ErrorMsg + $Entity = [PSCustomObject]$Entity + $DesiredProperties = @('FunctionName', 'Command', 'DurableName') + + foreach ($Property in $Entity.PSObject.Properties.Name) { + if ($Entity.$Property) { + if ($Property -in $DesiredProperties) { + $StatEntity.$Property = $Entity.$Property + } + } + } + $StatEntity = [PSCustomObject]$StatEntity + + Add-CIPPAzDataTableEntity @Table -Entity $StatEntity -Force + } catch { + Write-Host "Exception logging stats $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 new file mode 100644 index 000000000000..8770aeca27b0 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Write-LogMessage.ps1 @@ -0,0 +1,85 @@ +function Write-LogMessage { + <# + .FUNCTIONALITY + Internal + #> + param( + $message, + $tenant = 'None', + $API = 'None', + $tenantId = $null, + $headers, + $user, + $sev, + $LogData = '' + ) + if ($Headers.'x-ms-client-principal-idp' -eq 'azureStaticWebApps' -or !$Headers.'x-ms-client-principal-idp') { + $user = $headers.'x-ms-client-principal' + $username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + } elseif ($Headers.'x-ms-client-principal-idp' -eq 'aad') { + $Table = Get-CIPPTable -TableName 'ApiClients' + $Client = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($headers.'x-ms-client-principal-name')'" + $username = $Client.AppName ?? 'CIPP-API' + $AppId = $headers.'x-ms-client-principal-name' + } else { + try { + $username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($user)) | ConvertFrom-Json).userDetails + } catch { + $username = $user + } + } + + if ($headers.'x-forwarded-for') { + $ForwardedFor = $headers.'x-forwarded-for' -split ',' | Select-Object -First 1 + $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' + $IPAddress = $ForwardedFor -replace $IPRegex, '$1' -replace '[\[\]]', '' + } + + if ($LogData) { $LogData = ConvertTo-Json -InputObject $LogData -Depth 10 -Compress } + + $Table = Get-CIPPTable -tablename CippLogs + + if (!$tenant) { $tenant = 'None' } + if (!$username) { $username = 'CIPP' } + if ($sev -eq 'Debug' -and $env:DebugMode -ne $true) { + return + } + $PartitionKey = (Get-Date -UFormat '%Y%m%d').ToString() + $TableRow = @{ + 'Tenant' = [string]$tenant + 'API' = [string]$API + 'Message' = [string]$message + 'Username' = [string]$username + 'Severity' = [string]$sev + 'sentAsAlert' = $false + 'PartitionKey' = [string]$PartitionKey + 'RowKey' = [string]([guid]::NewGuid()).ToString() + 'FunctionNode' = [string]$env:WEBSITE_SITE_NAME + 'LogData' = [string]$LogData + } + if ($IPAddress) { + $TableRow.IP = [string]$IPAddress + } + if ($AppId) { + $TableRow.AppId = [string]$AppId + } + if ($tenantId) { + $TableRow.Add('TenantID', [string]$tenantId) + } + if ($script:CippStandardInfoStorage -and $script:CippStandardInfoStorage.Value) { + $TableRow.Standard = [string]$script:CippStandardInfoStorage.Value.Standard + $TableRow.StandardTemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + if ($script:CippStandardInfoStorage.Value.IntuneTemplateId) { + $TableRow.IntuneTemplateId = [string]$script:CippStandardInfoStorage.Value.IntuneTemplateId + } + if ($script:CippStandardInfoStorage.Value.ConditionalAccessTemplateId) { + $TableRow.ConditionalAccessTemplateId = [string]$script:CippStandardInfoStorage.Value.ConditionalAccessTemplateId + } + } + if ($script:CippScheduledTaskIdStorage -and $script:CippScheduledTaskIdStorage.Value) { + $TableRow.ScheduledTaskId = [string]$script:CippScheduledTaskIdStorage.Value + } + + $Table.Entity = $TableRow + Add-CIPPAzDataTableEntity @Table | Out-Null +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Write-StandardsAlert.ps1 b/Modules/CIPPCore/Public/GraphHelper/Write-StandardsAlert.ps1 new file mode 100644 index 000000000000..d38f92152198 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Write-StandardsAlert.ps1 @@ -0,0 +1,28 @@ +function Write-StandardsAlert { + <# + .FUNCTIONALITY + Internal + #> + Param( + $object, + $tenant = 'None', + $standardName = 'None', + $standardId = $null, + $message + ) + $Table = Get-CIPPTable -tablename CippStandardsAlerts + $JSONobject = $object | ConvertTo-Json -Depth 10 -Compress + $PartitionKey = (Get-Date -UFormat '%Y%m%d').ToString() + $TableRow = @{ + 'tenant' = [string]$tenant + 'standardName' = [string]$standardName + 'object' = [string]$JSONobject + 'message' = [string]$message + 'standardId' = [string]$standardId + 'sentAsAlert' = $false + 'PartitionKey' = [string]$PartitionKey + 'RowKey' = [string]([guid]::NewGuid()).ToString() + } + $Table.Entity = $TableRow + Add-CIPPAzDataTableEntity @Table -Force | Out-Null +} diff --git a/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 b/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 new file mode 100644 index 000000000000..7ca83d89a119 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphRequests/Get-GraphRequestList.ps1 @@ -0,0 +1,422 @@ +function Get-GraphRequestList { + <# + .SYNOPSIS + Execute a Graph query + + .PARAMETER TenantFilter + Tenant to query (or AllTenants) + + .PARAMETER Endpoint + Graph API endpoint + + .PARAMETER Parameters + API Parameters + + .PARAMETER QueueId + Queue Id + + .PARAMETER CippLink + Reference link for queueing + + .PARAMETER Version + API Version - v1.0 or beta + + .PARAMETER QueueNameOverride + Queue name to set + + .PARAMETER SkipCache + Skip Caching + + .PARAMETER ClearCache + Clear cached results + + .PARAMETER NoPagination + Disable pagination + + .PARAMETER ManualPagination + Enable manual pagination using nextLink + + .PARAMETER CountOnly + Only return count of results + + .PARAMETER NoAuthCheck + Skip auth check + + .PARAMETER ReverseTenantLookup + Perform reverse tenant lookup + + .PARAMETER ReverseTenantLookupProperty + Property to perform reverse tenant lookup + + .PARAMETER AsApp + Run the request as an application + + .PARAMETER Caller + Name of the calling function + + .PARAMETER UseBatchExpand + Perform a batch lookup using the $expand query parameter to avoid 20 item max + + #> + [CmdletBinding()] + param( + [string]$TenantFilter = $env:TenantID, + [Parameter(Mandatory = $true)] + [string]$Endpoint, + [string]$nextLink, + [hashtable]$Parameters = @{}, + [string]$QueueId, + [string]$CippLink, + [ValidateSet('v1.0', 'beta')] + [string]$Version = 'beta', + [string]$QueueNameOverride, + [switch]$SkipCache, + [switch]$ClearCache, + [switch]$NoPagination, + [switch]$ManualPagination, + [switch]$CountOnly, + [switch]$NoAuthCheck, + [switch]$ReverseTenantLookup, + [string]$ReverseTenantLookupProperty = 'tenantId', + [boolean]$AsApp = $false, + [string]$Caller = 'Get-GraphRequestList', + [switch]$UseBatchExpand + ) + + $SingleTenantThreshold = 8000 + Write-Information "Tenant: $TenantFilter" + $TableName = ('cache{0}' -f ($Endpoint -replace '[^A-Za-z0-9]'))[0..62] -join '' + $Endpoint = $Endpoint -replace '^/', '' + $DisplayName = ($Endpoint -split '/')[0] + + if ($QueueNameOverride) { + $QueueName = $QueueNameOverride + } else { + $TextInfo = (Get-Culture).TextInfo + $QueueName = $TextInfo.ToTitleCase($DisplayName -csplit '(?=[A-Z])' -ne '' -join ' ') + } + + $GraphQuery = [System.UriBuilder]('https://graph.microsoft.com/{0}/{1}' -f $Version, $Endpoint) + $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) + foreach ($Item in ($Parameters.GetEnumerator() | Sort-Object -CaseSensitive -Property Key)) { + if ($Item.Value -is [System.Boolean]) { + $Item.Value = $Item.Value.ToString().ToLower() + } + if ($Item.Value) { + if ($Item.Key -eq '$select' -or $Item.Key -eq 'select') { + $Columns = $Item.Value -split ',' + $ActualCols = foreach ($Col in $Columns) { + $Col -split '\.' | Select-Object -First 1 + } + $Value = ($ActualCols | Sort-Object -Unique) -join ',' + } else { + $Value = $Item.Value + } + + if ($UseBatchExpand.IsPresent -and ($Item.Key -eq '$expand' -or $Item.Key -eq 'expand')) { + $BatchExpandQuery = $Item.Value + } else { + $ParamCollection.Add($Item.Key, $Value) + } + } + } + $GraphQuery.Query = $ParamCollection.ToString() + $PartitionKey = Get-StringHash -String (@($Endpoint, $ParamCollection.ToString(), 'v2') -join '-') + + # Perform $count check before caching + $Count = 0 + if ($TenantFilter -ne 'AllTenants') { + $GraphRequest = @{ + uri = $GraphQuery.ToString() + tenantid = $TenantFilter + ComplexFilter = $true + } + if ($NoPagination.IsPresent -or $ManualPagination.IsPresent) { + $GraphRequest.noPagination = $true + } + if ($CountOnly.IsPresent) { + $GraphRequest.CountOnly = $CountOnly.IsPresent + } + if ($NoAuthCheck.IsPresent) { + $GraphRequest.noauthcheck = $NoAuthCheck.IsPresent + } + if ($AsApp) { + $GraphRequest.asApp = $AsApp + } + + if ($Endpoint -match '%' -or $Parameters.Values -match '%') { + $TenantId = (Get-Tenants -IncludeErrors | Where-Object { $_.defaultDomainName -eq $TenantFilter -or $_.customerId -eq $TenantFilter }).customerId + $Endpoint = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $Endpoint + $GraphQuery = [System.UriBuilder]('https://graph.microsoft.com/{0}/{1}' -f $Version, $Endpoint) + $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) + foreach ($Item in ($Parameters.GetEnumerator() | Sort-Object -CaseSensitive -Property Key)) { + if ($Item.Key -eq '$select' -or $Item.Key -eq 'select') { + $Columns = $Item.Value -split ',' + $ActualCols = foreach ($Col in $Columns) { + $Col -split '\.' | Select-Object -First 1 + } + $Value = ($ActualCols | Sort-Object -Unique) -join ',' + } else { + $Value = $Item.Value + } + $Value = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $Value + $ParamCollection.Add($Item.Key, $Value) + } + $GraphQuery.Query = $ParamCollection.ToString() + $GraphRequest.uri = $GraphQuery.ToString() + } + + if ($Parameters.'$count' -and !$SkipCache.IsPresent -and !$NoPagination.IsPresent) { + $Count = New-GraphGetRequest @GraphRequest -CountOnly -ErrorAction Stop + if ($CountOnly.IsPresent) { return $Count } + Write-Information "Total results (`$count): $Count" + } + } + #Write-Information ( 'GET [ {0} ]' -f $GraphQuery.ToString()) + + try { + if ($QueueId) { + $Table = Get-CIPPTable -TableName $TableName + $Filter = "QueueId eq '{0}'" -f $QueueId + $Rows = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $Type = 'Queue' + Write-Information "Cached: $(($Rows | Measure-Object).Count) rows (Type: $($Type))" + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -ne 'Completed' -and $_.Status -ne 'Failed' } + } elseif (!$SkipCache.IsPresent -and !$ClearCache.IsPresent -and !$CountOnly.IsPresent) { + if ($TenantFilter -eq 'AllTenants' -or $Count -gt $SingleTenantThreshold) { + $Table = Get-CIPPTable -TableName $TableName + $Timestamp = (Get-Date).AddHours(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffK') + if ($TenantFilter -eq 'AllTenants') { + $Filter = "PartitionKey eq '{0}' and Timestamp ge datetime'{1}'" -f $PartitionKey, $Timestamp + } else { + $Filter = "PartitionKey eq '{0}' and (RowKey eq '{1}' or OriginalEntityId eq '{1}') and Timestamp ge datetime'{2}'" -f $PartitionKey, $TenantFilter, $Timestamp + } + $Tenants = Get-Tenants -IncludeErrors + $Rows = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object { $_.OriginalEntityId -in $Tenants.defaultDomainName -or $_.RowKey -in $Tenants.defaultDomainName } + $Type = 'Cache' + Write-Information "Table: $TableName | PK: $PartitionKey | Cached: $(($Rows | Measure-Object).Count) rows (Type: $($Type))" + $QueueReference = '{0}-{1}' -f $TenantFilter, $PartitionKey + $RunningQueue = Invoke-ListCippQueue -Reference $QueueReference | Where-Object { $_.Status -notmatch 'Completed' -and $_.Status -notmatch 'Failed' } + } + } + } catch { + Write-Information $_.InvocationInfo.PositionMessage + } + + if (!$Rows) { + switch ($TenantFilter) { + 'AllTenants' { + if ($SkipCache) { + Get-Tenants -IncludeErrors | ForEach-Object -Parallel { + Import-Module AzBobbyTables + Import-Module CIPPCore + + $GraphRequestParams = @{ + TenantFilter = $_.defaultDomainName + Endpoint = $using:Endpoint + Parameters = $using:Parameters + NoPagination = $false + ReverseTenantLookupProperty = $using:ReverseTenantLookupProperty + ReverseTenantLookup = $using:ReverseTenantLookup.IsPresent + NoAuthCheck = $using:NoAuthCheck.IsPresent + AsApp = $using:AsApp + SkipCache = $true + } + + try { + $DefaultDomainName = $_.defaultDomainName + Write-Host "Default domain name is $DefaultDomainName" + Get-GraphRequestList @GraphRequestParams | Select-Object *, @{l = 'Tenant'; e = { $_.defaultDomainName } }, @{l = 'CippStatus'; e = { 'Good' } } + } catch { + [PSCustomObject]@{ + Tenant = $DefaultDomainName + CippStatus = "Could not connect to tenant. $($_.Exception.message)" + } + } + } + } else { + if ($RunningQueue) { + Write-Information 'Queue currently running' + Write-Information ($RunningQueue | ConvertTo-Json) + [PSCustomObject]@{ + QueueMessage = 'Data still processing, please wait' + QueueId = $RunningQueue.RowKey + Queued = $true + } + } else { + $TenantList = Get-Tenants -IncludeErrors + $Queue = New-CippQueueEntry -Name "$QueueName (All Tenants)" -Link $CippLink -Reference $QueueReference -TotalTasks ($TenantList | Measure-Object).Count + [PSCustomObject]@{ + QueueMessage = 'Loading data for all tenants. Please check back after the job completes' + Queued = $true + QueueId = $Queue.RowKey + } + Write-Information 'Pushing output bindings' + try { + $Batch = $TenantList | ForEach-Object { + $TenantFilter = $_.defaultDomainName + [PSCustomObject]@{ + FunctionName = 'ListGraphRequestQueue' + TenantFilter = $TenantFilter + Endpoint = $Endpoint + QueueId = $Queue.RowKey + QueueName = $TenantFilter + QueueType = 'AllTenants' + Parameters = $Parameters + PartitionKey = $PartitionKey + NoPagination = $NoPagination.IsPresent + NoAuthCheck = $NoAuthCheck.IsPresent + AsApp = $AsApp + ReverseTenantLookupProperty = $ReverseTenantLookupProperty + ReverseTenantLookup = $ReverseTenantLookup.IsPresent + } + + } + + $InputObject = @{ + OrchestratorName = 'GraphRequestOrchestrator' + Batch = @($Batch) + } + #Write-Information ($InputObject | ConvertTo-Json -Depth 5) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + } catch { + Write-Information "QUEUE ERROR: $($_.Exception.Message)" + } + } + } + } + default { + try { + $QueueThresholdExceeded = $false + + if ($Parameters.'$count' -and !$SkipCache -and !$NoPagination.IsPresent -and !$ManualPagination.IsPresent) { + if ($Count -gt $singleTenantThreshold) { + $QueueThresholdExceeded = $true + if ($RunningQueue) { + Write-Information 'Queue currently running' + Write-Information ($RunningQueue | ConvertTo-Json) + [PSCustomObject]@{ + QueueMessage = 'Data still processing, please wait' + QueueId = $RunningQueue.RowKey + Queued = $true + } + } else { + $Queue = New-CippQueueEntry -Name $QueueName -Link $CippLink -Reference $QueueReference -TotalTasks 1 + $QueueTenant = [PSCustomObject]@{ + FunctionName = 'ListGraphRequestQueue' + TenantFilter = $TenantFilter + Endpoint = $Endpoint + QueueId = $Queue.RowKey + QueueName = $TenantFilter + QueueType = 'SingleTenant' + Parameters = $Parameters + PartitionKey = $PartitionKey + NoAuthCheck = $NoAuthCheck.IsPresent + ReverseTenantLookupProperty = $ReverseTenantLookupProperty + ReverseTenantLookup = $ReverseTenantLookup.IsPresent + } + + $InputObject = @{ + OrchestratorName = 'GraphRequestOrchestrator' + Batch = @($QueueTenant) + } + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + + [PSCustomObject]@{ + QueueMessage = ('Loading {0} rows for {1}. Please check back after the job completes' -f $Count, $TenantFilter) + QueueId = $Queue.RowKey + Queued = $true + } + } + } + } + + if (!$QueueThresholdExceeded) { + #nextLink should ONLY be used in direct calls with manual pagination. It should not be used in queueing + if ($ManualPagination.IsPresent -and $nextLink -match '^https://.+') { $GraphRequest.uri = $nextLink } + + $GraphRequestResults = New-GraphGetRequest @GraphRequest -Caller $Caller -ErrorAction Stop + $GraphRequestResults = $GraphRequestResults | Select-Object *, @{n = 'Tenant'; e = { $TenantFilter } }, @{n = 'CippStatus'; e = { 'Good' } } + + if ($UseBatchExpand.IsPresent -and ![string]::IsNullOrEmpty($BatchExpandQuery)) { + if ($BatchExpandQuery -match '' -and ![string]::IsNullOrEmpty($GraphRequestResults.id)) { + # Convert $expand format to actual batch query e.g. members($select=id,displayName) to members?$select=id,displayName + $BatchExpandQuery = $BatchExpandQuery -replace '\(\$?([^=]+)=([^)]+)\)', '?$$$1=$2' -replace ';', '&' + + # Extract property name from expand + $Property = $BatchExpandQuery -replace '\?.*$', '' -replace '^.*\/', '' + Write-Information "Performing batch expansion for property '$Property'..." + + if ($Property -eq 'assignedLicenses') { + $LicenseDetails = Get-CIPPLicenseOverview -TenantFilter $TenantFilter + $GraphRequestResults = foreach ($GraphRequestResult in $GraphRequestResults) { + $NewLicenses = [system.collections.generic.list[string]]::new() + foreach ($License in $GraphRequestResult.assignedLicenses) { + $LicenseInfo = $LicenseDetails | Where-Object { $_.skuId -eq $License.skuId } | Select-Object -First 1 + if ($LicenseInfo) { + $NewLicenses.Add($LicenseInfo.License) + } + } + $GraphRequestResult | Add-Member -MemberType NoteProperty -Name $Property -Value @($NewLicenses) -Force + $GraphRequestResult + } + } else { + + $Uri = "$Endpoint/{0}/$BatchExpandQuery" + + $Requests = foreach ($Result in $GraphRequestResults) { + @{ + id = $Result.id + url = $Uri -f $Result.id + method = 'GET' + } + } + $BatchResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter -NoAuthCheck $NoAuthCheck.IsPresent -asapp $AsApp + + $GraphRequestResults = foreach ($Result in $GraphRequestResults) { + $PropValue = $BatchResults | Where-Object { $_.id -eq $Result.id } | Select-Object -ExpandProperty body + $Result | Add-Member -MemberType NoteProperty -Name $Property -Value ($PropValue.value ?? $PropValue) + $Result + } + } + } + } + + if ($ReverseTenantLookup -and $GraphRequestResults) { + $ReverseLookupRequests = $GraphRequestResults.$ReverseTenantLookupProperty | Sort-Object -Unique | ForEach-Object { + @{ + id = $_ + url = "tenantRelationships/findTenantInformationByTenantId(tenantId='$_')" + method = 'GET' + } + } + $TenantInfo = New-GraphBulkRequest -Requests @($ReverseLookupRequests) -tenantid $env:TenantID -NoAuthCheck $true -asapp $true + + $GraphRequestResults | Select-Object @{n = 'TenantInfo'; e = { Get-GraphBulkResultByID -Results @($TenantInfo) -ID $_.$ReverseTenantLookupProperty } }, * + + } else { + $GraphRequestResults + } + } + + } catch { + $Message = ('Exception at {0}:{1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + throw $Message + } + } + } + } else { + foreach ($Row in $Rows) { + if ($Row.Data) { + try { + $Row.Data | ConvertFrom-Json -ErrorAction Stop + } catch { + Write-Warning "Could not convert data to JSON: $($_.Exception.Message)" + #Write-Information ($Row | ConvertTo-Json) + continue + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 new file mode 100644 index 000000000000..67340eaf3ab5 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 @@ -0,0 +1,297 @@ +function New-CIPPAlertTemplate { + param( + [Parameter(Mandatory = $true)] + $Data, + [Parameter(Mandatory = $true)] + $Format, + $InputObject = 'auditlog', + $LocationInfo, + $ActionResults, + $CIPPURL, + $Tenant, + $AuditLogLink, + $AlertComment + ) + $Appname = '[{"Application Name":"ACOM Azure Website","Application IDs":"23523755-3a2b-41ca-9315-f81f3f566a95"},{"Application Name":"AEM-DualAuth","Application IDs":"69893ee3-dd10-4b1c-832d-4870354be3d8"},{"Application Name":"ASM Campaign Servicing","Application IDs":"0cb7b9ec-5336-483b-bc31-b15b5788de71"},{"Application Name":"Azure Advanced Threat Protection","Application IDs":"7b7531ad-5926-4f2d-8a1d-38495ad33e17"},{"Application Name":"Azure Data Lake","Application IDs":"e9f49c6b-5ce5-44c8-925d-015017e9f7ad"},{"Application Name":"Azure Lab Services Portal","Application IDs":"835b2a73-6e10-4aa5-a979-21dfda45231c"},{"Application Name":"Azure Portal","Application IDs":"c44b4083-3bb0-49c1-b47d-974e53cbdf3c"},{"Application Name":"AzureSupportCenter","Application IDs":"37182072-3c9c-4f6a-a4b3-b3f91cacffce"},{"Application Name":"Bing","Application IDs":"9ea1ad79-fdb6-4f9a-8bc3-2b70f96e34c7"},{"Application Name":"CPIM Service","Application IDs":"bb2a2e3a-c5e7-4f0a-88e0-8e01fd3fc1f4"},{"Application Name":"CRM Power BI Integration","Application IDs":"e64aa8bc-8eb4-40e2-898b-cf261a25954f"},{"Application Name":"Dataverse","Application IDs":"00000007-0000-0000-c000-000000000000"},{"Application Name":"Enterprise Roaming and Backup","Application IDs":"60c8bde5-3167-4f92-8fdb-059f6176dc0f"},{"Application Name":"IAM Supportability","Application IDs":"a57aca87-cbc0-4f3c-8b9e-dc095fdc8978"},{"Application Name":"IrisSelectionFrontDoor","Application IDs":"16aeb910-ce68-41d1-9ac3-9e1673ac9575"},{"Application Name":"MCAPI Authorization Prod","Application IDs":"d73f4b35-55c9-48c7-8b10-651f6f2acb2e"},{"Application Name":"Media Analysis and Transformation Service","Application IDs":"944f0bd1-117b-4b1c-af26-804ed95e767e
0cd196ee-71bf-4fd6-a57c-b491ffd4fb1e"},{"Application Name":"Microsoft 365 Support Service","Application IDs":"ee272b19-4411-433f-8f28-5c13cb6fd407"},{"Application Name":"Microsoft App Access Panel","Application IDs":"0000000c-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Approval Management","Application IDs":"65d91a3d-ab74-42e6-8a2f-0add61688c74
38049638-cc2c-4cde-abe4-4479d721ed44"},{"Application Name":"Microsoft Authentication Broker","Application IDs":"29d9ed98-a469-4536-ade2-f981bc1d605e"},{"Application Name":"Microsoft Azure CLI","Application IDs":"04b07795-8ddb-461a-bbee-02f9e1bf7b46"},{"Application Name":"Microsoft Azure PowerShell","Application IDs":"1950a258-227b-4e31-a9cf-717495945fc2"},{"Application Name":"Microsoft Bing Search","Application IDs":"cf36b471-5b44-428c-9ce7-313bf84528de"},{"Application Name":"Microsoft Bing Search for Microsoft Edge","Application IDs":"2d7f3606-b07d-41d1-b9d2-0d0c9296a6e8"},{"Application Name":"Microsoft Bing Default Search Engine","Application IDs":"1786c5ed-9644-47b2-8aa0-7201292175b6"},{"Application Name":"Microsoft Defender for Cloud Apps","Application IDs":"3090ab82-f1c1-4cdf-af2c-5d7a6f3e2cc7"},{"Application Name":"Microsoft Docs","Application IDs":"18fbca16-2224-45f6-85b0-f7bf2b39b3f3"},{"Application Name":"Microsoft Dynamics ERP","Application IDs":"00000015-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Edge Insider Addons Prod","Application IDs":"6253bca8-faf2-4587-8f2f-b056d80998a7"},{"Application Name":"Microsoft Exchange Online Protection","Application IDs":"00000007-0000-0ff1-ce00-000000000000"},{"Application Name":"Microsoft Forms","Application IDs":"c9a559d2-7aab-4f13-a6ed-e7e9c52aec87"},{"Application Name":"Microsoft Graph","Application IDs":"00000003-0000-0000-c000-000000000000"},{"Application Name":"Microsoft Intune Web Company Portal","Application IDs":"74bcdadc-2fdc-4bb3-8459-76d06952a0e9"},{"Application Name":"Microsoft Intune Windows Agent","Application IDs":"fc0f3af4-6835-4174-b806-f7db311fd2f3"},{"Application Name":"Microsoft Learn","Application IDs":"18fbca16-2224-45f6-85b0-f7bf2b39b3f3"},{"Application Name":"Microsoft Office","Application IDs":"d3590ed6-52b3-4102-aeff-aad2292ab01c"},{"Application Name":"Microsoft Office 365 Portal","Application IDs":"00000006-0000-0ff1-ce00-000000000000"},{"Application Name":"Microsoft Office Web Apps Service","Application IDs":"67e3df25-268a-4324-a550-0de1c7f97287"},{"Application Name":"Microsoft Online Syndication Partner Portal","Application IDs":"d176f6e7-38e5-40c9-8a78-3998aab820e7"},{"Application Name":"Microsoft password reset service","Application IDs":"93625bc8-bfe2-437a-97e0-3d0060024faa"},{"Application Name":"Microsoft Power BI","Application IDs":"871c010f-5e61-4fb1-83ac-98610a7e9110"},{"Application Name":"Microsoft Storefronts","Application IDs":"28b567f6-162c-4f54-99a0-6887f387bbcc"},{"Application Name":"Microsoft Stream Portal","Application IDs":"cf53fce8-def6-4aeb-8d30-b158e7b1cf83"},{"Application Name":"Microsoft Substrate Management","Application IDs":"98db8bd6-0cc0-4e67-9de5-f187f1cd1b41"},{"Application Name":"Microsoft Support","Application IDs":"fdf9885b-dd37-42bf-82e5-c3129ef5a302"},{"Application Name":"Microsoft Teams","Application IDs":"1fec8e78-bce4-4aaf-ab1b-5451cc387264"},{"Application Name":"Microsoft Teams Services","Application IDs":"cc15fd57-2c6c-4117-a88c-83b1d56b4bbe"},{"Application Name":"Microsoft Teams Web Client","Application IDs":"5e3ce6c0-2b1f-4285-8d4b-75ee78787346"},{"Application Name":"Microsoft Whiteboard Services","Application IDs":"95de633a-083e-42f5-b444-a4295d8e9314"},{"Application Name":"O365 Suite UX","Application IDs":"4345a7b9-9a63-4910-a426-35363201d503"},{"Application Name":"Office 365 Exchange Online","Application IDs":"00000002-0000-0ff1-ce00-000000000000"},{"Application Name":"Office 365 Management","Application IDs":"00b41c95-dab0-4487-9791-b9d2c32c80f2"},{"Application Name":"Office 365 Search Service","Application IDs":"66a88757-258c-4c72-893c-3e8bed4d6899"},{"Application Name":"Office 365 SharePoint Online","Application IDs":"00000003-0000-0ff1-ce00-000000000000"},{"Application Name":"Office Delve","Application IDs":"94c63fef-13a3-47bc-8074-75af8c65887a"},{"Application Name":"Office Online Add-in SSO","Application IDs":"93d53678-613d-4013-afc1-62e9e444a0a5"},{"Application Name":"Office Online Client AAD- Augmentation Loop","Application IDs":"2abdc806-e091-4495-9b10-b04d93c3f040"},{"Application Name":"Office Online Client AAD- Loki","Application IDs":"b23dd4db-9142-4734-867f-3577f640ad0c"},{"Application Name":"Office Online Client AAD- Maker","Application IDs":"17d5e35f-655b-4fb0-8ae6-86356e9a49f5"},{"Application Name":"Office Online Client MSA- Loki","Application IDs":"b6e69c34-5f1f-4c34-8cdf-7fea120b8670"},{"Application Name":"Office Online Core SSO","Application IDs":"243c63a3-247d-41c5-9d83-7788c43f1c43"},{"Application Name":"Office Online Search","Application IDs":"a9b49b65-0a12-430b-9540-c80b3332c127"},{"Application Name":"Office.com","Application IDs":"4b233688-031c-404b-9a80-a4f3f2351f90"},{"Application Name":"Office365 Shell WCSS-Client","Application IDs":"89bee1f7-5e6e-4d8a-9f3d-ecd601259da7"},{"Application Name":"OfficeClientService","Application IDs":"0f698dd4-f011-4d23-a33e-b36416dcb1e6"},{"Application Name":"OfficeHome","Application IDs":"4765445b-32c6-49b0-83e6-1d93765276ca"},{"Application Name":"OfficeShredderWacClient","Application IDs":"4d5c2d63-cf83-4365-853c-925fd1a64357"},{"Application Name":"OMSOctopiPROD","Application IDs":"62256cef-54c0-4cb4-bcac-4c67989bdc40"},{"Application Name":"OneDrive SyncEngine","Application IDs":"ab9b8c07-8f02-4f72-87fa-80105867a763"},{"Application Name":"OneNote","Application IDs":"2d4d3d8e-2be3-4bef-9f87-7875a61c29de"},{"Application Name":"Outlook Mobile","Application IDs":"27922004-5251-4030-b22d-91ecd9a37ea4"},{"Application Name":"Partner Customer Delegated Admin Offline Processor","Application IDs":"a3475900-ccec-4a69-98f5-a65cd5dc5306"},{"Application Name":"Password Breach Authenticator","Application IDs":"bdd48c81-3a58-4ea9-849c-ebea7f6b6360"},{"Application Name":"Power BI Service","Application IDs":"00000009-0000-0000-c000-000000000000"},{"Application Name":"SharedWithMe","Application IDs":"ffcb16e8-f789-467c-8ce9-f826a080d987"},{"Application Name":"SharePoint Online Web Client Extensibility","Application IDs":"08e18876-6177-487e-b8b5-cf950c1e598c"},{"Application Name":"Signup","Application IDs":"b4bddae8-ab25-483e-8670-df09b9f1d0ea"},{"Application Name":"Skype for Business Online","Application IDs":"00000004-0000-0ff1-ce00-000000000000"},{"Application Name":"Sway","Application IDs":"905fcf26-4eb7-48a0-9ff0-8dcc7194b5ba"},{"Application Name":"Universal Store Native Client","Application IDs":"268761a2-03f3-40df-8a8b-c3db24145b6b"},{"Application Name":"Vortex [wsfed enabled]","Application IDs":"5572c4c0-d078-44ce-b81c-6cbf8d3ed39e"},{"Application Name":"Windows Azure Active Directory","Application IDs":"00000002-0000-0000-c000-000000000000"},{"Application Name":"Windows Azure Service Management API","Application IDs":"797f4846-ba00-4fd7-ba43-dac1f8f63013"},{"Application Name":"WindowsDefenderATP Portal","Application IDs":"a3b79187-70b2-4139-83f9-6016c58cd27b"},{"Application Name":"Windows Search","Application IDs":"26a7ee05-5602-4d76-a7ba-eae8b7b67941"},{"Application Name":"Windows Spotlight","Application IDs":"1b3c667f-cde3-4090-b60b-3d2abd0117f0"},{"Application Name":"Windows Store for Business","Application IDs":"45a330b1-b1ec-4cc1-9161-9f03992aa49f"},{"Application Name":"Yammer","Application IDs":"00000005-0000-0ff1-ce00-000000000000"},{"Application Name":"Yammer Web","Application IDs":"c1c74fed-04c9-4704-80dc-9f79a2e515cb"},{"Application Name":"Yammer Web Embed","Application IDs":"e1ef36fd-b883-4dbf-97f0-9ece4b576fc6"}]' | ConvertFrom-Json | Where-Object -Property 'Application IDs' -EQ $data.applicationId + $HTMLTemplate = Get-Content 'TemplateEmail.html' -Raw | Out-String + $Title = '' + $IntroText = '' + $ButtonUrl = '' + $ButtonText = '' + $AfterButtonText = '' + $RuleTable = '' + $Table = '' + $LocationInfo = $LocationInfo ?? $Data.CIPPLocationInfo | ConvertFrom-Json -ErrorAction SilentlyContinue | Select-Object * -ExcludeProperty Etag, PartitionKey, TimeStamp + if ($Data -is [string]) { + $Data = @{ message = $Data } + } + if ($Data -is [array] -and $Data[0] -is [string]) { + $Data = $Data | ForEach-Object { @{ message = $_ } } + } + if ($InputObject -eq 'driftStandard') { + $Title = "CIPP Alert - Standard Drift Detected for $($Tenant)" + $DataHTML = ($Data | ConvertTo-Html | Out-String).Replace('
', '
') + $IntroText = "

You've setup your instance to receive alerts when a tenant is drifting away from your standard. This seems to have happened! We've found the following deviations.

$dataHTML" + $ButtonUrl = "$CIPPURL/tenant/manage/drift?tenantFilter=$($Tenant)&templateId=$($AuditLogLink)" + $ButtonText = 'Investigate and remediate deviations' + $AfterButtonText = 'Click the button above to go to the logbook and investigate the deviations. You can also use the standards page to remediate the deviations.' + } + + if ($InputObject -eq 'sherwebmig') { + $DataHTML = ($Data | ConvertTo-Html | Out-String).Replace('
', '
') + $IntroText = "

The following licenses have not yet been found at Sherweb, and are expiring within 7 days:

$dataHTML" + if ($data.SherwebMig -like '*buy*') { + $introText = "

The following licenses have not yet been found at Sherweb, and are expiring within 7 days. We have started the process to automatically buy these licenses:

$dataHTML" + } + } + if ($InputObject -eq 'sherwebmigfailcancel') { + $DataHTML = ($Data | ConvertTo-Html | Out-String).Replace('
', '
') + $IntroText = "

The following licenses have not been cancelled due to an API error at the old provider:

$dataHTML" + } + if ($InputObject -eq 'sherwebmigBuyFail') { + $DataHTML = ($Data | ConvertTo-Html | Out-String).Replace('
', '
') + $IntroText = "

The following licenses have not been bought as we could not find a correctly matching license. Please login and buy the license:

$dataHTML" + } + if ($InputObject -eq 'table') { + #data can be a array of strings or a string, if it is, we need to convert it to an object so it shows up nicely, that object will have one header: message. + + $DataHTML = ($Data | Select-Object * -ExcludeProperty Etag, PartitionKey, TimeStamp | ConvertTo-Html | Out-String).Replace('
', '
') + $IntroText = "

You've configured CIPP to send you alerts based on the logbook. The following alerts match your configured rules

$dataHTML" + + # Add alert comment if provided + if ($AlertComment) { + $IntroText = "$IntroText

Alert Information

$AlertComment

" + } + + $ButtonUrl = "$CIPPURL/cipp/logs" + $ButtonText = 'Check logbook information' + } + if ($InputObject -eq 'standards') { + $DataHTML = foreach ($object in $data) { + "

For the standard $($object.standardName) we've detected the following:

  • $($object.message)
  • " + if ($object.object) { + $StandardObject = $object.object | ConvertFrom-Json + $StandardObject = $StandardObject | Select-Object * -ExcludeProperty Etag, PartitionKey, TimeStamp + if ($StandardObject.compare) { + '

    The following differences have been detected:

    ' + ($StandardObject.compare | ConvertTo-Html -Fragment | Out-String).Replace('
    ', '
    ') + } else { + ($StandardObject | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + } + } + + } + $IntroText = "

    You're receiving this email because you've set your standards to alert when they are out of sync with your expected baseline.

    $dataHTML" + $ButtonUrl = "$CIPPURL/standards/list-standards" + $ButtonText = 'Check Standards configuration' + } + if ($InputObject -eq 'auditlog') { + $ButtonUrl = "$CIPPURL/identity/administration/users/user/bec?userId=$($data.ObjectId)&tenantFilter=$Tenant" + $ButtonText = 'User Management' + $AfterButtonText = '

    If this is incorrect, use the user management screen to block the user and revoke the sessions

    ' + switch ($Data.Operation) { + 'New-InboxRule' { + # Test if the rule is a forwarding or redirect rule + $ForwardProperties = @('ForwardTo', 'RedirectTo') + foreach ($ForwardProperty in $ForwardProperties) { + if ($Data.PSobject.Properties.Name -contains $ForwardProperty) { + $FoundForwarding = $true + } + } + if ($FoundForwarding -eq $true) { + $Title = "$($TenantFilter) - New forwarding or redirect Rule Detected for $($data.UserId)" + } else { + $Title = "$($TenantFilter) - New Rule Detected for $($data.UserId)" + } + $RuleTable = ($Data.CIPPParameters | ConvertFrom-Json | ConvertTo-Html -Fragment | Out-String).Replace('
    ', '
    ') + + $IntroText = "

    A new rule has been created for the user $($data.UserId). You should check if this rule is not malicious. The rule information can be found in the table below.

    $RuleTable" + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/users/user/bec?userId=$($data.UserId)&tenantFilter=$Tenant" + $ButtonText = 'Start BEC Investigation' + $AfterButtonText = '

    If you believe this is a suspect rule, you can click the button above to start the investigation.

    ' + } + 'Set-InboxRule' { + $Title = "$($TenantFilter) - Rule Edit Detected for $($data.UserId)" + $RuleTable = ($Data.CIPPParameters | ConvertFrom-Json | ConvertTo-Html -Fragment | Out-String).Replace('
    ', '
    ') + $IntroText = "

    A rule has been edited for the user $($data.UserId). You should check if this rule is not malicious. The rule information can be found in the table below.

    $RuleTable" + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/users/user/bec?userId=$($data.UserId)&tenantFilter=$Tenant" + $ButtonText = 'Start BEC Investigation' + $AfterButtonText = '

    If you believe this is a suspect rule, you can click the button above to start the investigation.

    ' + } + 'Add member to role.' { + $Title = "$($TenantFilter) - Role change detected for $($data.ObjectId)" + $Table = ($data.CIPPModifiedProperties | ConvertFrom-Json | ConvertTo-Html -Fragment | Out-String).Replace('
    ', '
    ') + $IntroText = "

    $($data.UserId) has added $($data.ObjectId) to the $(($data.'Role.DisplayName')) role. The information about the role can be found in the table below.

    $Table" + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/roles?customerId=$($data.OrganizationId)" + $ButtonText = 'Role Management' + $AfterButtonText = '

    If this role is incorrect, or you need more information, use the button to jump to the Role Management page.

    ' + + } + 'Disable account.' { + $Title = "$($TenantFilter) - $($data.ObjectId) has been disabled" + $IntroText = "$($data.ObjectId) has been disabled by $($data.UserId)." + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/users?customerId=$($data.OrganizationId)" + $ButtonText = 'User Management' + $AfterButtonText = '

    If this is incorrect, use the user management screen to unblock the users sign-in

    ' + } + 'Enable account.' { + $Title = "$($TenantFilter) - $($data.ObjectId) has been enabled" + $IntroText = "$($data.ObjectId) has been enabled by $($data.UserId)." + $ButtonUrl = "$CIPPURL/identity/administration/users?customerId=$($data.OrganizationId)" + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonText = 'User Management' + $AfterButtonText = '

    If this is incorrect, use the user management screen to unblock the users sign-in

    ' + } + 'Update StsRefreshTokenValidFrom Timestamp.' { + $Title = "$($TenantFilter) - $($data.ObjectId) has had all sessions revoked" + $IntroText = "$($data.ObjectId) has had their sessions revoked by $($data.UserId)." + $ButtonUrl = "$CIPPURL/identity/administration/users?customerId=$($data.OrganizationId)" + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonText = 'User Management' + $AfterButtonText = '

    If this is incorrect, use the user management screen to unblock the users sign-in

    ' + } + 'Disable Strong Authentication.' { + $Title = "$($TenantFilter) - $($data.ObjectId) has been MFA disabled" + $IntroText = "$($data.ObjectId) MFA has been disabled by $($data.UserId)." + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/users?customerId=$($data.OrganizationId)" + $ButtonText = 'User Management' + $AfterButtonText = '

    If this is incorrect, use the user management screen to reenable MFA

    ' + } + 'Remove Member from a role.' { + $Title = "$($TenantFilter) - Role change detected for $($data.ObjectId)" + $Table = ($data.CIPPModifiedProperties | ConvertFrom-Json | ConvertTo-Html -Fragment | Out-String).Replace('
    ', '
    ') + $IntroText = "

    $($data.UserId) has removed $($data.ObjectId) to the $(($data.ModifiedProperties | Where-Object -Property Name -EQ 'Role.DisplayName').NewValue) role. The information about the role can be found in the table below.

    $Table" + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/roles?customerId=$($data.OrganizationId)" + $ButtonText = 'Role Management' + $AfterButtonText = '

    If this role change is incorrect, or you need more information, use the button to jump to the Role Management page.

    ' + + } + + 'Reset user password.' { + $Title = "$($TenantFilter) - $($data.ObjectId) has had their password reset" + $IntroText = "$($data.ObjectId) has had their password reset by $($data.userId)." + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/users?customerId=$($data.OrganizationId)" + $ButtonText = 'User Management' + $AfterButtonText = '

    If this is incorrect, use the user management screen to unblock the users sign-in

    ' + + } + 'Add service principal.' { + if ($Appname) { $AppName = $AppName.'Application Name' } else { $appName = $data.ApplicationId } + $Title = "$($TenantFilter) - Service Principal $($data.ObjectId) has been added." + $Table = ($data.ModifiedProperties | ConvertTo-Html -Fragment | Out-String).Replace('
    ', '
    ') + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $IntroText = "$($data.ObjectId) has been added by $($data.UserId)." + $ButtonUrl = "$CIPPURL/tenant/administration/applications/enterprise-apps?tenantFilter=$Tenant" + $ButtonText = 'Enterprise Apps' + } + 'Remove service principal.' { + if ($Appname) { $AppName = $AppName.'Application Name' } else { $appName = $data.ApplicationId } + $Title = "$($TenantFilter) - Service Principal $($data.ObjectId) has been removed." + $Table = ($data.CIPPModifiedProperties | ConvertFrom-Json | ConvertTo-Html -Fragment | Out-String).Replace('
    ', '
    ') + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $IntroText = "$($data.ObjectId) has been removed by $($data.UserId)." + $ButtonUrl = "$CIPPURL/tenant/administration/applications/enterprise-apps?tenantFilter=$Tenant" + $ButtonText = 'Enterprise Apps' + } + 'UserLoggedIn' { + $Table = ($data | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + if ($Appname) { $AppName = $AppName.'Application Name' } else { $appName = $data.ApplicationId } + $Title = "$($TenantFilter) - a user has logged on from a location you've set up to receive alerts for." + $IntroText = "$($data.UserId) ($($data.Userkey)) has logged on from IP $($data.ClientIP) to the application $($Appname). According to our database this is located in $($LocationInfo.Country) - $($LocationInfo.City).

    You have set up alerts to be notified when this happens. See the table below for more info.$Table" + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/users/user/bec?userId=$($data.ObjectId)&tenantFilter=$Tenant" + $ButtonText = 'User Management' + $AfterButtonText = '

    If this is incorrect, use the user management screen to block the user and revoke the sessions

    ' + } + default { + $Title = 'A custom alert has occured' + $Table = ($data | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = "

    You have setup CIPP to send you a custom alert for the audit events that follow this filter: $($data.cippclause)

    $Table" + if ($ActionResults) { $IntroText = $IntroText + "

    Based on the rule, the following actions have been taken: $($ActionResults -join '
    ' )

    " } + if ($LocationInfo) { + $LocationTable = ($LocationInfo | ConvertTo-Html -Fragment -As List | Out-String).Replace('
    ', '
    ') + $IntroText = $IntroText + "

    The (potential) location information for this IP is as follows:

    $LocationTable" + } + $ButtonUrl = "$CIPPURL/identity/administration/users?tenantFilter=$Tenant" + $ButtonText = 'User Management' + } + } + } + + if ($Format -eq 'html') { + return [pscustomobject]@{ + title = $Title + htmlcontent = $HTMLTemplate -f $Title, $IntroText, $ButtonUrl, $ButtonText, $AfterButtonText, $AuditLogLink + } + } elseif ($Format -eq 'json') { + if ($InputObject -eq 'auditlog') { + return [pscustomobject]@{ + title = $Title + html = $IntroText + data = $data + } + } + return [pscustomobject]@{ + title = $Title + buttonurl = $ButtonUrl + buttontext = $ButtonText + auditlog = $AuditLogLink + alertcomment = $AlertComment + } + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPApplicationCopy.ps1 b/Modules/CIPPCore/Public/New-CIPPApplicationCopy.ps1 new file mode 100644 index 000000000000..4c7a9febeceb --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPApplicationCopy.ps1 @@ -0,0 +1,77 @@ +function New-CIPPApplicationCopy { + [CmdletBinding()] + param( + $App, + $Tenant + ) + + Write-Information "Copying application $($App) to tenant $Tenant" + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/v1.0/servicePrincipals?$top=999' -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true + + if ($CurrentInfo.appId -notcontains $App) { + Write-Information "Application $($App) not found in partner tenant. Cannot copy permissions." + throw 'We cannot copy permissions for this application because is not registered in the partner tenant.' + } + + try { + try { + $ExistingApp = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/applications(appId='$($app)')" -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true + $Type = 'Application' + } catch { + $ExistingApp = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals(appId='$($app)')/oauth2PermissionGrants" -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true + $ExistingAppRoleAssignments = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals(appId='$($app)')/appRoleAssignments" -tenantid $env:TenantID -NoAuthCheck $true -AsApp $true + $Type = 'ServicePrincipal' + } + if (!$ExistingApp -and !$ExistingAppRoleAssignments) { + Write-LogMessage -message "Failed to add $App to tenant. This app does not exist or does not have any consented permissions." -tenant $tenant -API 'Application Copy' -sev error + continue + } + if ($Type -eq 'Application') { + Write-Information 'App type: Application' + $DelegateResourceAccess = $Existingapp.requiredResourceAccess + $ApplicationResourceAccess = $Existingapp.requiredResourceAccess + $NoTranslateRequired = $false + } else { + Write-Information 'App type: ServicePrincipal' + $DelegateResourceAccess = $ExistingApp | Group-Object -Property resourceId | ForEach-Object { + [pscustomobject]@{ resourceAppId = ($CurrentInfo | Where-Object -Property id -EQ $_.Name).appId; resourceAccess = @($_.Group | ForEach-Object { [pscustomobject]@{ id = $_.scope; type = 'Scope' } } ) + } + } + $ApplicationResourceAccess = $ExistingappRoleAssignments | Group-Object -Property ResourceId | ForEach-Object { + [pscustomobject]@{ resourceAppId = ($CurrentInfo | Where-Object -Property id -EQ $_.Name).appId; resourceAccess = @($_.Group | ForEach-Object { [pscustomobject]@{ id = $_.appRoleId; type = 'Role' } } ) + } + } + $NoTranslateRequired = $true + } + $TenantInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/servicePrincipals?$top=999' -tenantid $Tenant -NoAuthCheck $true -AsApp $true + + if ($App -Notin $TenantInfo.appId) { + Write-Information "Creating service principal with ID: $($App)" + $Body = @{ + appId = $App + } + $Body = $Body | ConvertTo-Json -Compress + Write-Information ($Body | ConvertTo-Json -Depth 10) + $null = New-GraphPostRequest 'https://graph.microsoft.com/v1.0/servicePrincipals' -type POST -tenantid $Tenant -body $Body -AsApp $true + Write-LogMessage -message "Added $App as a service principal" -tenant $tenant -API 'Application Copy' -sev Info + + } else { + Write-Information "Service principal with ID: $($App) already exists in tenant $Tenant" + } + + if ($DelegateResourceAccess) { + Add-CIPPDelegatedPermission -RequiredResourceAccess $ApplicationResourceAccess -ApplicationId $App -Tenantfilter $Tenant + } + if ($ApplicationResourceAccess) { + Add-CIPPApplicationPermission -RequiredResourceAccess $ApplicationResourceAccess -ApplicationId $App -Tenantfilter $Tenant + } + Write-LogMessage -message "Added permissions to $app" -tenant $tenant -API 'Application Copy' -sev Info + + return $Results + } catch { + Write-Warning "Failed to copy application $($App) to tenant $Tenant. Error: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + Write-Information ($_.ScriptStackTrace | Out-String) + throw $_.Exception.Message + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 b/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 new file mode 100644 index 000000000000..51c8b51f51a0 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPAssignmentFilter.ps1 @@ -0,0 +1,81 @@ +function New-CIPPAssignmentFilter { + <# + .SYNOPSIS + Creates a new assignment filter in Microsoft Intune + + .DESCRIPTION + Unified function for creating assignment filters that handles all platform types consistently. + Used by both direct filter creation and assignment filter template application. + + .PARAMETER FilterObject + Object containing filter properties (displayName, description, platform, rule, etc.) + + .PARAMETER TenantFilter + The tenant domain name where the filter should be created + + .PARAMETER APIName + The API name for logging purposes + + .PARAMETER ExecutingUser + The user executing the request (for logging) + + .EXAMPLE + New-CIPPAssignmentFilter -FilterObject $FilterData -TenantFilter 'contoso.com' -APIName 'AddAssignmentFilter' + + .NOTES + Supports all platform types: Windows10AndLater, iOS, Android, macOS, etc. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [PSCustomObject]$FilterObject, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$APIName = 'New-CIPPAssignmentFilter', + + [Parameter(Mandatory = $false)] + [string]$ExecutingUser = 'CIPP' + + ) + + try { + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Creating assignment filter $($FilterObject.displayName) for platform $($FilterObject.platform)" -Sev Info + + # Build the request body for Graph API + $BodyParams = [PSCustomObject]@{ + '@odata.type' = '#microsoft.graph.deviceAndAppManagementAssignmentFilter' + 'displayName' = $FilterObject.displayName + 'description' = $FilterObject.description ?? '' + 'platform' = $FilterObject.platform + 'rule' = $FilterObject.rule + 'assignmentFilterManagementType' = $FilterObject.assignmentFilterManagementType ?? 'devices' + } + + # Create the assignment filter via Graph API + $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $TenantFilter -type POST -body (ConvertTo-Json -InputObject $BodyParams -Depth 10) + + $Result = [PSCustomObject]@{ + Success = $true + Message = "Successfully created assignment filter $($FilterObject.displayName)" + FilterId = $GraphRequest.id + Platform = $FilterObject.platform + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Created assignment filter $($FilterObject.displayName) with id $($Result.FilterId)" -Sev Info + return $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Assignment filter creation failed for $($FilterObject.displayName): $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + + return [PSCustomObject]@{ + Success = $false + Message = "Failed to create assignment filter $($FilterObject.displayName): $($ErrorMessage.NormalizedError)" + Error = $ErrorMessage.NormalizedError + Platform = $FilterObject.platform + } + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPBackup.ps1 b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 new file mode 100644 index 000000000000..b3f8409ade3e --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 @@ -0,0 +1,184 @@ +function New-CIPPBackup { + [CmdletBinding(SupportsShouldProcess = $true)] + param ( + [Parameter(Mandatory = $true)] + [ValidateSet('CIPP', 'Scheduled')] + [string]$backupType, + + $StorageOutput = 'default', + + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + + $ScheduledBackupValues, + $APIName = 'CIPP Backup', + $Headers, + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage + ) + + # Validate that TenantFilter is provided for Scheduled backups + if ($backupType -eq 'Scheduled' -and [string]::IsNullOrEmpty($TenantFilter)) { + throw 'TenantFilter is required for Scheduled backups' + } + + $State = 'Backup finished successfully' + $RowKey = $null + $BackupData = $null + $TableName = $null + $PartitionKey = $null + $ContainerName = $null + + try { + switch ($backupType) { + #If backup type is CIPP, create CIPP backup. + 'CIPP' { + try { + $BackupTables = @( + 'AppPermissions' + 'AccessRoleGroups' + 'ApiClients' + 'CippReplacemap' + 'CustomData' + 'CustomRoles' + 'Config' + 'CommunityRepos' + 'Domains' + 'GraphPresets' + 'GDAPRoles' + 'GDAPRoleTemplates' + 'ExcludedLicenses' + 'templates' + 'standards' + 'SchedulerConfig' + 'Extensions' + 'WebhookRules' + 'ScheduledTasks' + 'TenantProperties' + ) + $CSVfile = foreach ($CSVTable in $BackupTables) { + $Table = Get-CippTable -tablename $CSVTable + Get-AzDataTableEntity @Table | Select-Object * -ExcludeProperty DomainAnalyser, table, Timestamp, ETag, Results | Select-Object *, @{l = 'table'; e = { $CSVTable } } + } + $RowKey = 'CIPPBackup' + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') + $BackupData = [string]($CSVfile | ConvertTo-Json -Compress -Depth 100) + $TableName = 'CIPPBackup' + $PartitionKey = 'CIPPBackup' + $ContainerName = 'cipp-backups' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + } + } + + #If Backup type is Scheduled, create Scheduled backup. + 'Scheduled' { + try { + $RowKey = $TenantFilter + '_' + (Get-Date).ToString('yyyy-MM-dd-HHmm') + $entity = @{ + PartitionKey = 'ScheduledBackup' + RowKey = $RowKey + TenantFilter = $TenantFilter + } + Write-Information "Scheduled backup value psproperties: $(([pscustomobject]$ScheduledBackupValues).psobject.Properties)" + foreach ($ScheduledBackup in ([pscustomobject]$ScheduledBackupValues).psobject.Properties.Name) { + try { + $BackupResult = New-CIPPBackupTask -Task $ScheduledBackup -TenantFilter $TenantFilter + $entity[$ScheduledBackup] = $BackupResult + } catch { + Write-Information "Failed to create backup for $ScheduledBackup - $($_.Exception.Message)" + } + } + $BackupData = $entity | ConvertTo-Json -Compress -Depth 100 + $TableName = 'ScheduledBackup' + $PartitionKey = 'ScheduledBackup' + $ContainerName = 'scheduled-backups' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + } + } + } + + # Upload backup data to blob storage + $blobUrl = $null + try { + $containers = @() + try { $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' -ConnectionString $ConnectionString } catch { $containers = @() } + $exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null + if (-not $exists) { + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $ContainerName -Method 'PUT' -QueryParams @{ restype = 'container' } -ConnectionString $ConnectionString + Start-Sleep -Milliseconds 500 + } + $blobName = "$RowKey.json" + $resourcePath = "$ContainerName/$blobName" + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $resourcePath -Method 'PUT' -ContentType 'application/json; charset=utf-8' -Body $BackupData -ConnectionString $ConnectionString + + # Build full blob URL for storage in table + try { + $csParts = @{} + foreach ($p in ($ConnectionString -split ';')) { + if (-not [string]::IsNullOrWhiteSpace($p)) { + $kv = $p -split '=', 2 + if ($kv.Length -eq 2) { $csParts[$kv[0]] = $kv[1] } + } + } + + # Handle UseDevelopmentStorage=true (Azurite) + if ($csParts.ContainsKey('UseDevelopmentStorage') -and $csParts['UseDevelopmentStorage'] -eq 'true') { + $base = 'http://127.0.0.1:10000/devstoreaccount1' + } elseif ($csParts.ContainsKey('BlobEndpoint') -and $csParts['BlobEndpoint']) { + $base = ($csParts['BlobEndpoint']).TrimEnd('/') + } else { + $protocol = if ($csParts.ContainsKey('DefaultEndpointsProtocol') -and $csParts['DefaultEndpointsProtocol']) { $csParts['DefaultEndpointsProtocol'] } else { 'https' } + $suffix = if ($csParts.ContainsKey('EndpointSuffix') -and $csParts['EndpointSuffix']) { $csParts['EndpointSuffix'] } else { 'core.windows.net' } + $acct = $csParts['AccountName'] + if (-not $acct) { throw 'AccountName missing in ConnectionString' } + $base = "$protocol`://$acct.blob.$suffix" + } + $blobUrl = "$base/$resourcePath" + } catch { + # If building full URL fails, fall back to resource path + $blobUrl = $resourcePath + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Blob upload failed: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + + # Write table entity pointing to blob resource + $entity = @{ + PartitionKey = $PartitionKey + RowKey = [string]$RowKey + Backup = $blobUrl + BackupIsBlob = $true + } + + if ($TenantFilter) { + $entity['TenantFilter'] = $TenantFilter + } + + $Table = Get-CippTable -tablename $TableName + try { + if ($PSCmdlet.ShouldProcess("$backupType Backup", 'Create')) { + $null = Add-CIPPAzDataTableEntity @Table -Entity $entity -Force + Write-LogMessage -headers $Headers -API $APINAME -message "Created $backupType Backup (link stored)" -Sev 'Debug' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup for $backupType : $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to create backup: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return [pscustomobject]@{'Results' = "Backup Creation failed: $($ErrorMessage.NormalizedError)" } + } + + return [pscustomobject]@{ + BackupName = $RowKey + BackupState = $State + } +} + diff --git a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 new file mode 100644 index 000000000000..55f189947694 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 @@ -0,0 +1,160 @@ +function New-CIPPBackupTask { + [CmdletBinding()] + param ( + $Task, + $TenantFilter + ) + + $BackupData = switch ($Task) { + 'CippCustomVariables' { + Measure-CippTask -TaskName 'CustomVariables' -EventName 'CIPP.BackupCompleted' -Script { + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + + # Get tenant-specific variables + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $CustomerId = $Tenant.customerId + $TenantVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId'" + + # If backing up AllTenants, also get global variables + if ($TenantFilter -eq 'AllTenants') { + $GlobalVariables = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + $AllVariables = @($TenantVariables) + @($GlobalVariables) + $AllVariables + } else { + $TenantVariables + } + } + } + 'users' { + Measure-CippTask -TaskName 'Users' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter | Select-Object * -ExcludeProperty mail, provisionedPlans, onPrem*, *passwordProfile*, *serviceProvisioningErrors*, isLicenseReconciliationNeeded, isManagementRestricted, isResourceAccount, *date*, *external*, identities, deletedDateTime, isSipEnabled, assignedPlans, cloudRealtimeCommunicationInfo, deviceKeys, provisionedPlan, securityIdentifier | ForEach-Object { + #remove the property if the value is $null + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ + } + } + } + 'groups' { + Measure-CippTask -TaskName 'Groups' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter + } + } + 'ca' { + Measure-CippTask -TaskName 'ConditionalAccess' -EventName 'CIPP.BackupCompleted' -Script { + $preloadedUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=displayName,id" -tenantid $TenantFilter + $preloadedGroups = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=displayName,id" -tenantid $TenantFilter + $Policies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/conditionalAccess/policies?$top=999' -tenantid $TenantFilter -AsApp $true + foreach ($policy in $policies) { + try { + New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy -preloadedUsers $preloadedUsers -preloadedGroups $preloadedGroups + } catch { + "Failed to create a template of the Conditional Access Policy with ID: $($policy.id). Error: $($_.Exception.Message)" + } + } + } + } + 'intuneconfig' { + Measure-CippTask -TaskName 'IntuneConfiguration' -EventName 'CIPP.BackupCompleted' -Script { + $GraphURLS = @("https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" + 'https://graph.microsoft.com/beta/deviceManagement/windowsDriverUpdateProfiles' + "https://graph.microsoft.com/beta/deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" + "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" + 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' + 'https://graph.microsoft.com/beta/deviceManagement/windowsFeatureUpdateProfiles' + 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdatePolicies' + 'https://graph.microsoft.com/beta/deviceManagement/windowsQualityUpdateProfiles' + ) + + foreach ($url in $GraphURLS) { + try { + $Policies = New-GraphGetRequest -uri "$($url)" -tenantid $TenantFilter + $URLName = (($url).split('?') | Select-Object -First 1) -replace 'https://graph.microsoft.com/beta/deviceManagement/', '' + foreach ($Policy in $Policies) { + try { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.ID + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + "Failed to create a template of the Intune Configuration Policy with ID: $($Policy.id). Error: $ErrorMessage" + } + } + } catch { + Write-Host "Failed to backup $url" + } + } + } + } + 'intunecompliance' { + Measure-CippTask -TaskName 'IntuneCompliance' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $_.ID + } + } + } + + 'intuneprotection' { + Measure-CippTask -TaskName 'IntuneProtection' -EventName 'CIPP.BackupCompleted' -Script { + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { + New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $_.ID + } + } + } + + 'antispam' { + Measure-CippTask -TaskName 'AntiSpam' -EventName 'CIPP.BackupCompleted' -Script { + $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ + } + + $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ + } + + @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 + } + } + + 'antiphishing' { + Measure-CippTask -TaskName 'AntiPhishing' -EventName 'CIPP.BackupCompleted' -Script { + $Policies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ + } + + $Rules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishRule' | Select-Object * -ExcludeProperty *odata*, *data.type* | ForEach-Object { + $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { + $_.psobject.properties.Remove($_.Name) + } + $_ + } + + @{ policies = $Policies; rules = $Rules } | ConvertTo-Json -Depth 10 + } + } + + 'CippWebhookAlerts' { + Measure-CippTask -TaskName 'WebhookAlerts' -EventName 'CIPP.BackupCompleted' -Script { + $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' + Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $TenantFilter -in ($_.Tenants | ConvertFrom-Json).value } + } + } + 'CippScriptedAlerts' { + Measure-CippTask -TaskName 'ScriptedAlerts' -EventName 'CIPP.BackupCompleted' -Script { + $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' + Get-CIPPAzDataTableEntity @ScheduledTasks | Where-Object { $_.hidden -eq $true -and $_.command -like 'Get-CippAlert*' -and $TenantFilter -in $_.Tenant } + } + } + } + + return $BackupData +} + diff --git a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 new file mode 100644 index 000000000000..250b31296dd8 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 @@ -0,0 +1,390 @@ + +function New-CIPPCAPolicy { + [CmdletBinding()] + param ( + $RawJSON, + $TenantFilter, + $State, + $Overwrite, + $ReplacePattern = 'none', + $DisableSD = $false, + $CreateGroups = $false, + $APIName = 'Create CA Policy', + $Headers + ) + + function Remove-EmptyArrays ($Object) { + if ($Object -is [Array]) { + foreach ($Item in $Object) { Remove-EmptyArrays $Item } + } elseif ($Object -is [HashTable]) { + foreach ($Key in @($Object.get_Keys())) { + if ($Object[$Key] -is [Array] -and $Object[$Key].get_Count() -eq 0) { + $Object.Remove($Key) + } else { Remove-EmptyArrays $Object[$Key] } + } + } elseif ($Object -is [PSCustomObject]) { + foreach ($Name in @($Object.psobject.properties.Name)) { + if ($Object.$Name -is [Array] -and $Object.$Name.get_Count() -eq 0) { + $Object.PSObject.Properties.Remove($Name) + } elseif ($null -eq $object.$name) { + $Object.PSObject.Properties.Remove($Name) + } else { Remove-EmptyArrays $Object.$Name } + } + } + } + # Function to check if a string is a GUID + function Test-IsGuid($string) { + return [guid]::tryparse($string, [ref][guid]::Empty) + } + # Helper function to replace group display names with GUIDs + function Replace-GroupNameWithId { + param($TenantFilter, $groupNames, $CreateGroups, $GroupTemplates) + + $GroupIds = [System.Collections.Generic.List[string]]::new() + $groupNames | ForEach-Object { + if (Test-IsGuid $_) { + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Already GUID, no need to replace: $_" -Sev 'Debug' + $GroupIds.Add($_) # it's a GUID, so we keep it + } else { + $groupId = ($groups | Where-Object -Property displayName -EQ $_).id # it's a display name, so we get the group ID + if ($groupId) { + foreach ($gid in $groupId) { + Write-Warning "Replaced group name $_ with ID $gid" + $null = Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Replaced group name $_ with ID $gid" -Sev 'Debug' + $GroupIds.Add($gid) # add the ID to the list + } + } elseif ($CreateGroups) { + Write-Warning "Creating group $_ as it does not exist in the tenant" + if ($GroupTemplates.displayName -eq $_) { + Write-Information "Creating group from template for $_" + $GroupTemplate = $GroupTemplates | Where-Object -Property displayName -EQ $_ + $NewGroup = New-CIPPGroup -GroupObject $GroupTemplate -TenantFilter $TenantFilter -APIName 'New-CIPPCAPolicy' + $GroupIds.Add($NewGroup.GroupId) + } else { + Write-Information "No template found, creating security group for $_" + $username = $_ -replace '[^a-zA-Z0-9]', '' + if ($username.Length -gt 64) { + $username = $username.Substring(0, 64) + } + $GroupObject = @{ + groupType = 'generic' + displayName = $_ + username = $username + securityEnabled = $true + } + $NewGroup = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $TenantFilter -APIName 'New-CIPPCAPolicy' + $GroupIds.Add($NewGroup.GroupId) + } + } else { + Write-Warning "Group $_ not found in the tenant" + } + } + } + return $GroupIds + } + + function Replace-UserNameWithId { + param($userNames) + + $UserIds = [System.Collections.Generic.List[string]]::new() + $userNames | ForEach-Object { + if (Test-IsGuid $_) { + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Already GUID, no need to replace: $_" -Sev 'Debug' + $UserIds.Add($_) # it's a GUID, so we keep it + } else { + $userId = ($users | Where-Object -Property displayName -EQ $_).id # it's a display name, so we get the user ID + if ($userId) { + foreach ($uid in $userId) { + Write-Warning "Replaced user name $_ with ID $uid" + $null = Write-LogMessage -Headers $Headers -API 'Create CA Policy' -message "Replaced user name $_ with ID $uid" -Sev 'Debug' + $UserIds.Add($uid) # add the ID to the list + } + } else { + Write-Warning "User $_ not found in the tenant" + } + } + } + return $UserIds + } + + $displayname = ($RawJSON | ConvertFrom-Json).Displayname + + $JSONobj = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty ID, GUID, *time* + Remove-EmptyArrays $JSONobj + #Remove context as it does not belong in the payload. + try { + $JSONobj.grantControls.PSObject.Properties.Remove('authenticationStrength@odata.context') + $JSONobj.templateId ? $JSONobj.PSObject.Properties.Remove('templateId') : $null + if ($JSONobj.conditions.users.excludeGuestsOrExternalUsers.externalTenants.Members) { + $JSONobj.conditions.users.excludeGuestsOrExternalUsers.externalTenants.PSObject.Properties.Remove('@odata.context') + } + if ($State -and $State -ne 'donotchange') { + $JSONobj.state = $State + } + } catch { + # no issues here. + } + + #If Grant Controls contains authenticationstrength, create these and then replace the id + if ($JSONobj.GrantControls.authenticationStrength.policyType -eq 'custom' -or $JSONobj.GrantControls.authenticationStrength.policyType -eq 'BuiltIn') { + $ExistingStrength = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies/' -tenantid $TenantFilter -asApp $true | Where-Object -Property displayName -EQ $JSONobj.GrantControls.authenticationStrength.displayName + if ($ExistingStrength) { + $JSONobj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } + + } else { + $Body = ConvertTo-Json -InputObject $JSONobj.GrantControls.authenticationStrength + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies' -body $body -Type POST -tenantid $tenantfilter -asApp $true + $JSONobj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } + Write-LogMessage -Headers $Headers -API $APINAME -message "Created new Authentication Strength Policy: $($JSONobj.GrantControls.authenticationStrength.displayName)" -Sev 'Info' + } + } + + #if we have excluded or included applications, we need to remove any appIds that do not have a service principal in the tenant + + if (($JSONobj.conditions.applications.includeApplications -and $JSONobj.conditions.applications.includeApplications -notcontains 'All') -or ($JSONobj.conditions.applications.excludeApplications -and $JSONobj.conditions.applications.excludeApplications -notcontains 'All')) { + $AllServicePrincipals = New-GraphGETRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals?$select=appId' -tenantid $TenantFilter -asApp $true + + $ReservedApplicationNames = @('none', 'All', 'Office365', 'MicrosoftAdminPortals') + + if ($JSONobj.conditions.applications.excludeApplications -and $JSONobj.conditions.applications.excludeApplications -notcontains 'All') { + $ValidExclusions = [system.collections.generic.list[string]]::new() + foreach ($appId in $JSONobj.conditions.applications.excludeApplications) { + if ($AllServicePrincipals.appId -contains $appId -or $ReservedApplicationNames -contains $appId) { + $ValidExclusions.Add($appId) + } + } + $JSONobj.conditions.applications.excludeApplications = $ValidExclusions + } + if ($JSONobj.conditions.applications.includeApplications -and $JSONobj.conditions.applications.includeApplications -notcontains 'All') { + $ValidInclusions = [system.collections.generic.list[string]]::new() + foreach ($appId in $JSONobj.conditions.applications.includeApplications) { + if ($AllServicePrincipals.appId -contains $appId -or $ReservedApplicationNames -contains $appId) { + $ValidInclusions.Add($appId) + } + } + $JSONobj.conditions.applications.includeApplications = $ValidInclusions + } + } + + #for each of the locations, check if they exist, if not create them. These are in $JSONobj.LocationInfo + $LocationLookupTable = foreach ($locations in $JSONobj.LocationInfo) { + if (!$locations) { continue } + foreach ($location in $locations) { + if (!$location.displayName) { continue } + $CheckExisting = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter -asApp $true + if ($Location.displayName -in $CheckExisting.displayName) { + $ExistingLocation = $CheckExisting | Where-Object -Property displayName -EQ $Location.displayName + if ($Overwrite) { + $LocationUpdate = $location | Select-Object * -ExcludeProperty id + Remove-ODataProperties -Object $LocationUpdate + $Body = ConvertTo-Json -InputObject $LocationUpdate -Depth 10 + try { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$($ExistingLocation.id)" -body $body -Type PATCH -tenantid $tenantfilter -asApp $true + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APINAME -message "Updated existing Named Location: $($location.displayName)" -Sev 'Info' + } catch { + Write-Warning "Failed to update location $($location.displayName): $_" + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APINAME -message "Failed to update existing Named Location: $($location.displayName). Error: $_" -Sev 'Error' + } + } else { + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APINAME -message "Matched a CA policy with the existing Named Location: $($location.displayName)" -Sev 'Info' + } + [pscustomobject]@{ + id = $ExistingLocation.id + name = $ExistingLocation.displayName + templateId = $location.id + } + } else { + if ($location.countriesAndRegions) { $location.countriesAndRegions = @($location.countriesAndRegions) } + $location | Select-Object * -ExcludeProperty id + Remove-ODataProperties -Object $location + $Body = ConvertTo-Json -InputObject $Location + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -body $body -Type POST -tenantid $tenantfilter -asApp $true + $retryCount = 0 + do { + Write-Host "Checking for location $($GraphRequest.id) attempt $retryCount. $TenantFilter" + $LocationRequest = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $tenantfilter -asApp $true | Where-Object -Property id -EQ $GraphRequest.id + Write-Host "LocationRequest: $($LocationRequest.id)" + Start-Sleep -Seconds 2 + $retryCount++ + } while ((!$LocationRequest -or !$LocationRequest.id) -and ($retryCount -lt 5)) + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APINAME -message "Created new Named Location: $($location.displayName)" -Sev 'Info' + [pscustomobject]@{ + id = $GraphRequest.id + name = $GraphRequest.displayName + } + } + } + } + Write-Information 'Location Lookup Table:' + Write-Information ($LocationLookupTable | ConvertTo-Json -Depth 10) + + foreach ($location in $JSONobj.conditions.locations.includeLocations) { + if ($null -eq $location) { continue } + $lookup = $LocationLookupTable | Where-Object { $_.name -eq $location -or $_.displayName -eq $location -or $_.templateId -eq $location } + if (!$lookup) { continue } + Write-Information "Replacing named location - $location" + $index = [array]::IndexOf($JSONobj.conditions.locations.includeLocations, $location) + $JSONobj.conditions.locations.includeLocations[$index] = $lookup.id + } + + foreach ($location in $JSONobj.conditions.locations.excludeLocations) { + if ($null -eq $location) { continue } + $lookup = $LocationLookupTable | Where-Object { $_.name -eq $location -or $_.displayName -eq $location -or $_.templateId -eq $location } + if (!$lookup) { continue } + Write-Information "Replacing named location - $location" + $index = [array]::IndexOf($JSONobj.conditions.locations.excludeLocations, $location) + $JSONobj.conditions.locations.excludeLocations[$index] = $lookup.id + } + switch ($ReplacePattern) { + 'none' { + Write-Information 'Replacement pattern for inclusions and exclusions is none' + break + } + 'AllUsers' { + Write-Information 'Replacement pattern for inclusions and exclusions is All users. This policy will now apply to everyone.' + if ($JSONobj.conditions.users.includeUsers -ne 'All') { $JSONobj.conditions.users.includeUsers = @('All') } + if ($JSONobj.conditions.users.excludeUsers) { $JSONobj.conditions.users.excludeUsers = @() } + if ($JSONobj.conditions.users.includeGroups) { $JSONobj.conditions.users.includeGroups = @() } + if ($JSONobj.conditions.users.excludeGroups) { $JSONobj.conditions.users.excludeGroups = @() } + } + 'displayName' { + $TemplatesTable = Get-CIPPTable -tablename 'templates' + $GroupTemplates = Get-CIPPAzDataTableEntity @TemplatesTable -filter "PartitionKey eq 'GroupTemplate'" | ForEach-Object { + if ($_.JSON -and (Test-Json -Json $_.JSON -ErrorAction SilentlyContinue)) { + $Group = $_.JSON | ConvertFrom-Json + $Group + } + } + try { + Write-Information 'Replacement pattern for inclusions and exclusions is displayName.' + $Requests = @( + @{ + url = 'users?$select=id,displayName&$top=999' + method = 'GET' + id = 'users' + } + @{ + url = 'groups?$select=id,displayName&$top=999' + method = 'GET' + id = 'groups' + } + ) + $BulkResults = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true + + $users = ($BulkResults | Where-Object { $_.id -eq 'users' }).body.value + $groups = ($BulkResults | Where-Object { $_.id -eq 'groups' }).body.value + + foreach ($userType in 'includeUsers', 'excludeUsers') { + if ($JSONobj.conditions.users.PSObject.Properties.Name -contains $userType -and $JSONobj.conditions.users.$userType -notin 'All', 'None', 'GuestOrExternalUsers') { + $JSONobj.conditions.users.$userType = @(Replace-UserNameWithId -userNames $JSONobj.conditions.users.$userType) + } + } + + # Check the included and excluded groups + foreach ($groupType in 'includeGroups', 'excludeGroups') { + if ($JSONobj.conditions.users.PSObject.Properties.Name -contains $groupType) { + $JSONobj.conditions.users.$groupType = @(Replace-GroupNameWithId -groupNames $JSONobj.conditions.users.$groupType -CreateGroups $CreateGroups -TenantFilter $TenantFilter -GroupTemplates $GroupTemplates) + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Failed to replace displayNames for conditional access rule $($JSONobj.displayName). Error: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + throw "Failed to replace displayNames for conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError)" + } + } + } + $JSONobj.PSObject.Properties.Remove('LocationInfo') + foreach ($condition in $JSONobj.conditions.users.PSObject.Properties.Name) { + $value = $JSONobj.conditions.users.$condition + if ($null -eq $value) { + $JSONobj.conditions.users.$condition = @() + continue + } + if ($value -is [string]) { + if ([string]::IsNullOrWhiteSpace($value)) { + $JSONobj.conditions.users.$condition = @() + continue + } + } + if ($value -is [array]) { + $nonWhitespaceItems = $value | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } + if ($nonWhitespaceItems.Count -eq 0) { + $JSONobj.conditions.users.$condition = @() + continue + } + } + } + if ($DisableSD -eq $true) { + #Send request to disable security defaults. + $body = '{ "isEnabled": false }' + try { + $null = New-GraphPostRequest -tenantid $TenantFilter -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -Type patch -Body $body -asApp $true -ContentType 'application/json' + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -tenant $TenantFilter -message "Disabled Security Defaults for tenant $($TenantFilter)" -Sev 'Info' + Start-Sleep 3 + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Information "Failed to disable security defaults for tenant $($TenantFilter): $($ErrorMessage.NormalizedError)" + } + } + $RawJSON = ConvertTo-Json -InputObject $JSONobj -Depth 10 -Compress + Write-Information $RawJSON + try { + Write-Information 'Checking for existing policies' + $CheckExisting = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $TenantFilter -asApp $true | Where-Object -Property displayName -EQ $displayname + if ($CheckExisting) { + if ($Overwrite -ne $true) { + throw "Conditional Access Policy with Display Name $($Displayname) Already exists" + return $false + } else { + if ($State -eq 'donotchange') { + $JSONobj.state = $CheckExisting.state + $RawJSON = ConvertTo-Json -InputObject $JSONobj -Depth 10 -Compress + } + # Preserve any exclusion groups named "Vacation Exclusion - " from existing policy + try { + $ExistingVacationGroup = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=startsWith(displayName,'Vacation Exclusion')&`$select=id,displayName&`$top=999&`$count=true" -ComplexFilter -tenantid $TenantFilter -asApp $true | + Where-Object { $CheckExisting.conditions.users.excludeGroups -contains $_.id } + if ($ExistingVacationGroup) { + if (-not ($JSONobj.conditions.users.PSObject.Properties.Name -contains 'excludeGroups')) { + $JSONobj.conditions.users | Add-Member -NotePropertyName 'excludeGroups' -NotePropertyValue @() -Force + } + if ($JSONobj.conditions.users.excludeGroups -notcontains $ExistingVacationGroup.id) { + Write-Information "Preserving vacation exclusion group $($ExistingVacationGroup.displayName)" + $NewExclusions = [system.collections.generic.list[string]]::new() + # Convert each item to string explicitly to avoid type conversion issues + foreach ($group in $JSONobj.conditions.users.excludeGroups) { + $NewExclusions.Add([string]$group) + } + $NewExclusions.Add($ExistingVacationGroup.id) + $JSONobj.conditions.users.excludeGroups = $NewExclusions + } + # Re-render RawJSON after modification + $RawJSON = ConvertTo-Json -InputObject $JSONobj -Depth 10 -Compress + } + } catch { + Write-Information "Failed to preserve vacation exclusion group: $($_.Exception.Message)" + } + Write-Information "overwriting $($CheckExisting.id)" + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -asApp $true + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -tenant $($Tenant) -message "Updated Conditional Access Policy $($JSONobj.Displayname) to the template standard." -Sev 'Info' + return "Updated policy $displayname for $tenantfilter" + } + } else { + Write-Information 'Creating new policy' + if ($JSOObj.GrantControls.authenticationStrength.policyType -or $JSONobj.$JSONobj.LocationInfo) { + Start-Sleep 3 + } + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies' -tenantid $tenantfilter -type POST -body $RawJSON -asApp $true + Write-LogMessage -Headers $Headers -API 'Create CA Policy' -tenant $($Tenant) -message "Added Conditional Access Policy $($JSONobj.Displayname)" -Sev 'Info' + return "Created policy $displayname for $tenantfilter" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError) " -sev 'Error' -LogData $ErrorMessage + + Write-Warning "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError)" + Write-Information $_.InvocationInfo.PositionMessage + Write-Information ($JSONobj | ConvertTo-Json -Depth 10) + throw "Failed to create or update conditional access rule $($JSONobj.displayName): $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 new file mode 100644 index 000000000000..bcb928d5700a --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 @@ -0,0 +1,113 @@ +function New-CIPPCATemplate { + [CmdletBinding()] + param ( + $TenantFilter, + $JSON, + $APIName = 'Add CIPP CA Template', + $Headers, + $preloadedUsers, + $preloadedGroups + ) + + $JSON = ([pscustomobject]$JSON) | ForEach-Object { + $NonEmptyProperties = $_.psobject.Properties | Where-Object { $null -ne $_.Value } | Select-Object -ExpandProperty Name + $_ | Select-Object -Property $NonEmptyProperties + } + + Write-Information "Processing CA Template for tenant $TenantFilter" + Write-Information ($JSON | ConvertTo-Json -Depth 10) + + # Function to check if a string is a GUID + function Test-IsGuid($string) { + return [guid]::tryparse($string, [ref][guid]::Empty) + } + + if ($preloadedUsers) { + $users = $preloadedUsers + } else { + $users = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=displayName,id" -tenantid $TenantFilter) + } + if ($preloadedGroups) { + $groups = $preloadedGroups + } else { + $groups = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=displayName,id" -tenantid $TenantFilter) + } + + $namedLocations = $null + if ($JSON.conditions.locations.includeLocations -or $JSON.conditions.locations.excludeLocations) { + $namedLocations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -tenantid $TenantFilter + } + + $AllLocations = [system.collections.generic.list[object]]::new() + + $includelocations = [system.collections.generic.list[object]]::new() + $IncludeJSON = foreach ($Location in $JSON.conditions.locations.includeLocations) { + $locationinfo = $namedLocations | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* + $null = if ($locationinfo) { $includelocations.add($locationinfo.displayName) } else { $includelocations.add($location) } + $locationinfo + } + if ($includelocations) { $JSON.conditions.locations.includeLocations = $includelocations } + + $excludelocations = [system.collections.generic.list[object]]::new() + $ExcludeJSON = foreach ($Location in $JSON.conditions.locations.excludeLocations) { + $locationinfo = $namedLocations | Where-Object -Property id -EQ $location | Select-Object * -ExcludeProperty id, *time* + $null = if ($locationinfo) { $excludelocations.add($locationinfo.displayName) } else { $excludelocations.add($location) } + $locationinfo + } + + if ($excludelocations) { $JSON.conditions.locations.excludeLocations = $excludelocations } + # Check if conditions.users exists and is a PSCustomObject (not an array) before accessing properties + $hasConditionsUsers = $null -ne $JSON.conditions.users + # Explicitly exclude array types - arrays have properties but we can't set custom properties on them + $isArray = $hasConditionsUsers -and ($JSON.conditions.users -is [Array] -or $JSON.conditions.users -is [System.Collections.IList]) + $isPSCustomObject = $hasConditionsUsers -and -not $isArray -and ($JSON.conditions.users -is [PSCustomObject] -or ($JSON.conditions.users.PSObject.Properties.Count -gt 0 -and -not $isArray)) + $hasIncludeUsers = $isPSCustomObject -and ($null -ne $JSON.conditions.users.includeUsers) + + if ($isPSCustomObject -and $hasIncludeUsers) { + $JSON.conditions.users.includeUsers = @($JSON.conditions.users.includeUsers | ForEach-Object { + $originalID = $_ + if ($_ -in 'All', 'None', 'GuestOrExternalUsers') { return $_ } + $match = $users | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } + }) + } + + # Use the same type check for other user properties + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.excludeUsers) { + $JSON.conditions.users.excludeUsers = @($JSON.conditions.users.excludeUsers | ForEach-Object { + if ($_ -in 'All', 'None', 'GuestOrExternalUsers') { return $_ } + $originalID = $_ + $match = $users | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } + }) + } + + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.includeGroups) { + $JSON.conditions.users.includeGroups = @($JSON.conditions.users.includeGroups | ForEach-Object { + $originalID = $_ + if ($_ -in 'All', 'None', 'GuestOrExternalUsers' -or -not (Test-IsGuid $_)) { return $_ } + $match = $groups | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } + }) + } + if ($isPSCustomObject -and $null -ne $JSON.conditions.users.excludeGroups) { + $JSON.conditions.users.excludeGroups = @($JSON.conditions.users.excludeGroups | ForEach-Object { + $originalID = $_ + if ($_ -in 'All', 'None', 'GuestOrExternalUsers' -or -not (Test-IsGuid $_)) { return $_ } + $match = $groups | Where-Object { $_.id -eq $originalID } + if ($match) { $match.displayName } else { $originalID } + }) + } + + foreach ($Location in $IncludeJSON) { + $AllLocations.Add($Location) + } + foreach ($Location in $ExcludeJSON) { + $AllLocations.Add($Location) + } + + $JSON | Add-Member -NotePropertyName 'LocationInfo' -NotePropertyValue @($AllLocations | Select-Object -Unique) -Force + $JSON = (ConvertTo-Json -Compress -Depth 100 -InputObject $JSON) + return $JSON +} + diff --git a/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 b/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 new file mode 100644 index 000000000000..12a484544079 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 @@ -0,0 +1,46 @@ +function New-CIPPDbRequest { + <# + .SYNOPSIS + Query the CIPP Reporting database by partition key + + .DESCRIPTION + Retrieves data from the CippReportingDB table filtered by partition key (tenant) + + .PARAMETER TenantFilter + The tenant domain or GUID to filter by (used as partition key) + + .PARAMETER Type + Optional. The data type to filter by (e.g., Users, Groups, Devices) + + .EXAMPLE + New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' + + .EXAMPLE + New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' -Type 'Users' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$Type + ) + + try { + $Table = Get-CippTable -tablename 'CippReportingDB' + + if ($Type) { + $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}.'" -f $TenantFilter, $Type + } else { + $Filter = "PartitionKey eq '{0}'" -f $TenantFilter + } + + $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + return ($Results.Data | ConvertFrom-Json -ErrorAction SilentlyContinue) + } catch { + Write-LogMessage -API 'CIPPDbRequest' -tenant $TenantFilter -message "Failed to query database: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPDeviceAction.ps1 b/Modules/CIPPCore/Public/New-CIPPDeviceAction.ps1 new file mode 100644 index 000000000000..33b42b971a78 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPDeviceAction.ps1 @@ -0,0 +1,32 @@ +function New-CIPPDeviceAction { + [CmdletBinding()] + param( + $Action, + $ActionBody = '{}', + $DeviceFilter, + $TenantFilter, + $Headers, + $APIName + ) + try { + if ($Action -eq 'delete') { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$DeviceFilter" -type DELETE -tenantid $TenantFilter + } elseif ($Action -eq 'users') { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices('$DeviceFilter')/$($Action)/`$ref" -type POST -tenantid $TenantFilter -body $ActionBody + $regex = "(?<=\(')([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})(?='|\))" + $PrimaryUser = $ActionBody | Select-String -Pattern $regex -AllMatches | Select-Object -ExpandProperty Matches | Select-Object -ExpandProperty Value + $Result = "Changed primary user on device $DeviceFilter to $PrimaryUser" + } else { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices('$DeviceFilter')/$($Action)" -type POST -tenantid $TenantFilter -body $ActionBody + $Result = "Queued $Action on $DeviceFilter" + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to queue action $Action on $DeviceFilter : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Error -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPGroup.ps1 b/Modules/CIPPCore/Public/New-CIPPGroup.ps1 new file mode 100644 index 000000000000..1d4a199568e4 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPGroup.ps1 @@ -0,0 +1,265 @@ +function New-CIPPGroup { + <# + .SYNOPSIS + Creates a new group in Microsoft 365 or Exchange Online + + .DESCRIPTION + Unified function for creating groups that handles all group types consistently. + Used by both direct group creation and group template application. + + .PARAMETER GroupObject + Object containing group properties (displayName, description, groupType, etc.) + + .PARAMETER TenantFilter + The tenant domain name where the group should be created + + .PARAMETER APIName + The API name for logging purposes + + .PARAMETER ExecutingUser + The user executing the request (for logging) + + .EXAMPLE + New-CIPPGroup -GroupObject $GroupData -TenantFilter 'contoso.com' -APIName 'AddGroup' + + .NOTES + Supports all group types: Generic, Security, AzureRole, Dynamic, M365, Distribution, DynamicDistribution + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory = $true)] + [PSCustomObject]$GroupObject, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string]$APIName = 'New-CIPPGroup', + + [Parameter(Mandatory = $false)] + [string]$ExecutingUser = 'CIPP' + ) + + try { + # Normalize group type for consistent handling (accept camelCase from templates) + $NormalizedGroupType = switch -Wildcard ($GroupObject.groupType.ToLower()) { + 'mail-enabled security' { 'Security'; break } + '*dynamicdistribution*' { 'DynamicDistribution'; break } # Check this first before *dynamic* and *distribution* + '*dynamic*' { 'Dynamic'; break } + '*generic*' { 'Generic'; break } + '*security*' { 'Security'; break } + '*azurerole*' { 'AzureRole'; break } + '*m365*' { 'M365'; break } + '*unified*' { 'M365'; break } + '*microsoft*' { 'M365'; break } + '*distribution*' { 'Distribution'; break } + '*mail*' { 'Distribution'; break } + default { $GroupObject.groupType } + } + + # Determine if this group type needs an email address + $GroupTypesNeedingEmail = @('M365', 'Distribution', 'DynamicDistribution', 'Security') + $NeedsEmail = $NormalizedGroupType -in $GroupTypesNeedingEmail + + # Determine email address only for group types that need it + $Email = if ($NeedsEmail) { + if ($GroupObject.primDomain.value) { + "$($GroupObject.username)@$($GroupObject.primDomain.value)" + } elseif ($GroupObject.primaryEmailAddress) { + $GroupObject.primaryEmailAddress + } elseif ($GroupObject.username -like '*@*') { + # Username already contains an email address (e.g., from templates with @%tenantfilter%) + $GroupObject.username + } else { + "$($GroupObject.username)@$($TenantFilter)" + } + } else { + $null + } + + # Extract local part of username if exists and remove special characters for mailNickname + if ($GroupObject.username -like '*@*') { + $MailNickname = ($GroupObject.username -split '@')[0] + } else { + $MailNickname = $GroupObject.username + } + + # Remove forbidden characters per Microsoft 365 mailNickname requirements: + # ASCII 0-127 only, excluding: @ () / [] ' ; : <> , SPACE and any non-ASCII + $MailNickname = $MailNickname -replace "[@()\[\]/'`;:<>,\s]|[^\x00-\x7F]", '' + + # Ensure max length of 64 characters + if ($MailNickname.Length -gt 64) { + $MailNickname = $MailNickname.Substring(0, 64) + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Creating group $($GroupObject.displayName) of type $NormalizedGroupType$(if ($NeedsEmail) { " with email $Email" })" -Sev Info + + # Handle Graph API groups (Security, Generic, AzureRole, Dynamic, M365) + if ($NormalizedGroupType -in @('Generic', 'AzureRole', 'Dynamic', 'M365')) { + Write-Information "Creating group $($GroupObject.displayName) of type $NormalizedGroupType$(if ($NeedsEmail) { " with email $Email" })" + $BodyParams = [PSCustomObject]@{ + 'displayName' = $GroupObject.displayName + 'description' = $GroupObject.description + 'mailNickname' = $MailNickname + 'mailEnabled' = ($NormalizedGroupType -eq 'M365') + 'securityEnabled' = $true + 'isAssignableToRole' = ($NormalizedGroupType -eq 'AzureRole') + } + + # Handle dynamic membership + if ($GroupObject.membershipRules) { + $BodyParams | Add-Member -NotePropertyName 'membershipRule' -NotePropertyValue $GroupObject.membershipRules + $BodyParams | Add-Member -NotePropertyName 'membershipRuleProcessingState' -NotePropertyValue 'On' + + if ($NormalizedGroupType -eq 'M365') { + $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('Unified', 'DynamicMembership') + $BodyParams.mailEnabled = $true + } else { + $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('DynamicMembership') + } + + # Skip adding static members for dynamic groups + $SkipStaticMembers = $true + } elseif ($NormalizedGroupType -eq 'M365') { + # Static M365 group + $BodyParams | Add-Member -NotePropertyName 'groupTypes' -NotePropertyValue @('Unified') + $BodyParams.mailEnabled = $true + } + + # Add owners + if ($GroupObject.owners -and $GroupObject.owners.Count -gt 0) { + $OwnerBindings = $GroupObject.owners | ForEach-Object { + if ($_.value) { + "https://graph.microsoft.com/v1.0/users/$($_.value)" + } elseif ($_ -is [string]) { + "https://graph.microsoft.com/v1.0/users/$_" + } + } | Where-Object { $_ } + + if ($OwnerBindings) { + $BodyParams | Add-Member -NotePropertyName 'owners@odata.bind' -NotePropertyValue @($OwnerBindings) + } + } + + # Add members (only for non-dynamic groups) + if ($GroupObject.members -and $GroupObject.members.Count -gt 0 -and -not $SkipStaticMembers) { + $MemberBindings = $GroupObject.members | ForEach-Object { + if ($_.value) { + "https://graph.microsoft.com/v1.0/users/$($_.value)" + } elseif ($_ -is [string]) { + "https://graph.microsoft.com/v1.0/users/$_" + } + } | Where-Object { $_ } + + if ($MemberBindings) { + $BodyParams | Add-Member -NotePropertyName 'members@odata.bind' -NotePropertyValue @($MemberBindings) + } + } + + # Create the group via Graph API + $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -type POST -body (ConvertTo-Json -InputObject $BodyParams -Depth 10) + + $Result = [PSCustomObject]@{ + Success = $true + Message = "Successfully created group $($GroupObject.displayName)" + GroupId = $GraphRequest.id + GroupType = $NormalizedGroupType + Email = if ($NeedsEmail) { $Email } else { $null } + } + if ($GroupObject.subscribeMembers) { + #Waiting for group to become available in Exo. + Start-Sleep -Seconds 10 + $SubParams = @{ + Identity = $GraphRequest.id + 'autoSubscribeNewMembers' = $true + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-UnifiedGroup' -cmdParams $SubParams + } + } else { + # Handle Exchange Online groups (Distribution, DynamicDistribution) + + if ($NormalizedGroupType -eq 'DynamicDistribution') { + Write-Information "Creating dynamic distribution group $($GroupObject.displayName) with email $Email" + $ExoParams = @{ + Name = $GroupObject.displayName + RecipientFilter = $GroupObject.membershipRules + PrimarySmtpAddress = $Email + } + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-DynamicDistributionGroup' -cmdParams $ExoParams + + # Set external sender restrictions if specified + if ($null -ne $GroupObject.allowExternal -and $GroupObject.allowExternal -eq $true -and $GraphRequest.Identity) { + $SetParams = @{ + RequireSenderAuthenticationEnabled = [bool]!$GroupObject.allowExternal + Identity = $GraphRequest.Identity + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-DynamicDistributionGroup' -cmdParams $SetParams + } + + } else { + # Regular Distribution Group + Write-Information "Creating distribution group $($GroupObject.displayName) with email $Email" + + $ExoParams = @{ + Name = $GroupObject.displayName + Alias = $MailNickname + Description = $GroupObject.description + PrimarySmtpAddress = $Email + Type = $GroupObject.groupType + RequireSenderAuthenticationEnabled = [bool]!$GroupObject.allowExternal + } + + if ($NormalizedGroupType -eq 'Security') { + $ExoParams.Type = 'Security' + } + + # Add owners + if ($GroupObject.owners -and $GroupObject.owners.Count -gt 0) { + $OwnerEmails = $GroupObject.owners | ForEach-Object { + if ($_.value) { $_.value } elseif ($_ -is [string]) { $_ } + } | Where-Object { $_ } + + if ($OwnerEmails) { + $ExoParams.ManagedBy = @($OwnerEmails) + } + } + + # Add members + if ($GroupObject.members -and $GroupObject.members.Count -gt 0) { + $MemberEmails = $GroupObject.members | ForEach-Object { + if ($_.value) { $_.value } elseif ($_ -is [string]) { $_ } + } | Where-Object { $_ } + + if ($MemberEmails) { + $ExoParams.Members = @($MemberEmails) + } + } + + $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-DistributionGroup' -cmdParams $ExoParams + } + + $Result = [PSCustomObject]@{ + Success = $true + Message = "Successfully created group $($GroupObject.displayName)" + GroupId = $GraphRequest.Identity + GroupType = $NormalizedGroupType + Email = $Email + } + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Created group $($GroupObject.displayName) with id $($Result.GroupId)" -Sev Info + return $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Group creation failed for $($GroupObject.displayName): $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + + return [PSCustomObject]@{ + Success = $false + Message = "Failed to create group $($GroupObject.displayName): $($ErrorMessage.NormalizedError)" + Error = $ErrorMessage.NormalizedError + GroupType = $NormalizedGroupType + } + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 new file mode 100644 index 000000000000..8360058a0a29 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 @@ -0,0 +1,130 @@ +function New-CIPPIntuneTemplate { + param( + $urlname, + $id, + $TenantFilter, + $ActionResults, + $CIPPURL, + $ODataType + ) + if ($ODataType) { + switch -wildcard ($ODataType) { + '*CompliancePolicy' { + $URLName = 'deviceCompliancePolicies' + } + '*managedAppPolicies' { + $URLName = 'managedAppPolicies' + } + '*configurationPolicies' { + $URLName = 'configurationPolicies' + } + '*windowsDriverUpdateProfiles' { + $URLName = 'windowsDriverUpdateProfiles' + } + '*deviceConfigurations' { + $URLName = 'deviceConfigurations' + } + '*groupPolicyConfigurations' { + $URLName = 'groupPolicyConfigurations' + } + } + } + switch ($URLName) { + 'deviceCompliancePolicies' { + $Type = 'deviceCompliancePolicies' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)?`$expand=scheduledActionsForRule(`$expand=scheduledActionConfigurations)" -tenantid $TenantFilter + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'managedAppPolicies' { + $Type = 'AppProtection' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'mobileAppConfigurations' { + $Type = 'AppConfiguration' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'configurationPolicies' { + $Type = 'Catalog' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')?`$expand=settings" -tenantid $TenantFilter | Select-Object name, description, settings, platforms, technologies, templateReference + $TemplateJson = $Template | ConvertTo-Json -Depth 100 -Compress + $DisplayName = $Template.name + + } + 'windowsDriverUpdateProfiles' { + $Type = 'windowsDriverUpdateProfiles' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'deviceConfigurations' { + $Type = 'Device' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'groupPolicyConfigurations' { + $Type = 'Admin' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')" -tenantid $TenantFilter + $DisplayName = $Template.displayName + $TemplateJsonItems = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues?`$expand=definition" -tenantid $TenantFilter + $TemplateJsonSource = foreach ($TemplateJsonItem in $TemplateJsonItems) { + $presentationValues = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)('$($ID)')/definitionValues('$($TemplateJsonItem.id)')/presentationValues?`$expand=presentation" -tenantid $TenantFilter | ForEach-Object { + $obj = $_ + if ($obj.id) { + $PresObj = @{ + id = $obj.id + 'presentation@odata.bind' = "https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('$($TemplateJsonItem.definition.id)')/presentations('$($obj.presentation.id)')" + } + if ($obj.values) { $PresObj['values'] = $obj.values } + if ($obj.value) { $PresObj['value'] = $obj.value } + if ($obj.'@odata.type') { $PresObj['@odata.type'] = $obj.'@odata.type' } + [pscustomobject]$PresObj + } + } + [PSCustomObject]@{ + 'definition@odata.bind' = "https://graph.microsoft.com/beta/deviceManagement/groupPolicyDefinitions('$($TemplateJsonItem.definition.id)')" + enabled = $TemplateJsonItem.enabled + presentationValues = @($presentationValues) + } + } + $inputvar = [pscustomobject]@{ + added = @($TemplateJsonSource) + updated = @() + deletedIds = @() + + } + + + $TemplateJson = (ConvertTo-Json -InputObject $inputvar -Depth 100 -Compress) + } + 'windowsFeatureUpdateProfiles' { + $Type = 'windowsFeatureUpdateProfiles' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'windowsQualityUpdatePolicies' { + $Type = 'windowsQualityUpdatePolicies' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + 'windowsQualityUpdateProfiles' { + $Type = 'windowsQualityUpdateProfiles' + $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($urlname)/$($ID)" -tenantid $TenantFilter | Select-Object * -ExcludeProperty id, lastModifiedDateTime, '@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime' + $DisplayName = $Template.displayName + $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + } + } + return [PSCustomObject]@{ + TemplateJson = $TemplateJson + DisplayName = $DisplayName + Description = $Template.description + Type = $Type + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPOneDriveShortCut.ps1 b/Modules/CIPPCore/Public/New-CIPPOneDriveShortCut.ps1 new file mode 100644 index 000000000000..d1d5ce8db072 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPOneDriveShortCut.ps1 @@ -0,0 +1,40 @@ + +function New-CIPPOneDriveShortCut { + [CmdletBinding()] + param ( + $Username, + $UserId, + $URL, + $TenantFilter, + $APIName = 'Create OneDrive shortcut', + $Headers + ) + Write-Host "Received $Username and $UserId. We're using $URL and $TenantFilter" + try { + $SiteInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/sites/' -tenantid $TenantFilter -asapp $true | Where-Object -Property weburl -EQ $URL + $ListItemUniqueId = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/$($SiteInfo.id)/drive?`$select=SharepointIds" -tenantid $TenantFilter -asapp $true).SharePointIds + $body = [PSCustomObject]@{ + name = 'Documents' + remoteItem = @{ + sharepointIds = @{ + listId = $($ListItemUniqueId.listid) + listItemUniqueId = 'root' + siteId = $($ListItemUniqueId.siteId) + siteUrl = $($ListItemUniqueId.siteUrl) + webId = $($ListItemUniqueId.webId) + } + } + '@microsoft.graph.conflictBehavior' = 'rename' + } | ConvertTo-Json -Depth 10 + New-GraphPOSTRequest -method POST "https://graph.microsoft.com/beta/users/$Username/drive/root/children" -body $Body -tenantid $TenantFilter -asapp $true + Write-LogMessage -API $APIName -headers $Headers -message "Created OneDrive shortcut called $($SiteInfo.displayName) for $($Username)" -Sev 'info' + return "Successfully created OneDrive Shortcut for $Username called $($SiteInfo.displayName) " + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Could not add Onedrive shortcut to $Username : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + throw $Result + } +} + + diff --git a/Modules/CIPPCore/Public/New-CIPPRestore.ps1 b/Modules/CIPPCore/Public/New-CIPPRestore.ps1 new file mode 100644 index 000000000000..5668b3f48484 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPRestore.ps1 @@ -0,0 +1,19 @@ +function New-CIPPRestore { + [CmdletBinding()] + param ( + $TenantFilter, + $Type = 'Scheduled', + $RestoreValues, + $APIName = 'CIPP Restore', + $Headers + ) + + Write-Host "Scheduled Restore psproperties: $(([pscustomobject]$RestoreValues).psobject.Properties)" + Write-LogMessage -headers $Headers -API $APINAME -message 'Restored backup' -Sev 'Debug' + $RestoreData = foreach ($ScheduledBackup in ([pscustomobject]$RestoreValues).psobject.Properties | Where-Object { $_.Value -eq $true -and $_.Name -notin 'email', 'webhook', 'psa', 'backup', 'overwrite' } | Select-Object -ExpandProperty Name) { + Write-Information "Restoring $ScheduledBackup for tenant $TenantFilter" + New-CIPPRestoreTask -Task $ScheduledBackup -TenantFilter $TenantFilter -backup $RestoreValues.backup -overwrite $RestoreValues.overwrite -Headers $Headers -APIName $APIName + } + return $RestoreData +} + diff --git a/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 new file mode 100644 index 000000000000..aec6db68de03 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 @@ -0,0 +1,713 @@ +function New-CIPPRestoreTask { + [CmdletBinding()] + param ( + $Task, + $TenantFilter, + $backup, + $overwrite, + $APINAME, + $Headers + ) + # Use Get-CIPPBackup which handles blob storage fetching + $BackupData = Get-CIPPBackup -Type 'Scheduled' -Name $backup + + # If this is a blob-based backup, parse the Backup property to get the actual data structure + if ($BackupData.BackupIsBlob -or $BackupData.BackupIsBlobLink) { + try { + $BackupData = $BackupData.Backup | ConvertFrom-Json + } catch { + Write-Warning "Failed to parse blob backup data: $($_.Exception.Message)" + } + } + + + # Initialize restoration counters + $restorationStats = @{ + 'CustomVariables' = @{ success = 0; failed = 0 } + 'Users' = @{ success = 0; failed = 0 } + 'Groups' = @{ success = 0; failed = 0 } + 'ConditionalAccess' = @{ success = 0; failed = 0 } + 'IntuneConfig' = @{ success = 0; failed = 0 } + 'IntunCompliance' = @{ success = 0; failed = 0 } + 'IntuneProtection' = @{ success = 0; failed = 0 } + 'AntiSpam' = @{ success = 0; failed = 0 } + 'AntiPhishing' = @{ success = 0; failed = 0 } + 'WebhookAlerts' = @{ success = 0; failed = 0 } + 'ScriptedAlerts' = @{ success = 0; failed = 0 } + } + + # Helper function to clean user object for Graph API - removes reference properties, nulls, and empty strings + function Clean-GraphObject { + param($Object, [switch]$ExcludeId) + $excludeProps = @('password', 'passwordProfile', '@odata.type', 'manager', 'memberOf', 'createdOnBehalfOf', 'createdByAppId', 'deletedDateTime', 'authorizationInfo') + if ($ExcludeId) { + $excludeProps += @('id') + } + + $cleaned = $Object | Select-Object * -ExcludeProperty $excludeProps + $result = @{} + + foreach ($prop in $cleaned.PSObject.Properties) { + $propValue = $prop.Value + # Skip empty strings, nulls, and complex objects (except known-good arrays like businessPhones) + if ($propValue -ne '' -and $null -ne $propValue) { + # Skip complex objects/dictionaries but allow simple arrays + if ($propValue -is [System.Collections.IDictionary]) { + continue + } + $result[$prop.Name] = $propValue + } + } + + return $result + } + + $RestoreData = [System.Collections.Generic.List[string]]::new() + + switch ($Task) { + 'CippCustomVariables' { + Write-Host "Restore Custom Variables for $TenantFilter" + $ReplaceTable = Get-CIPPTable -TableName 'CippReplacemap' + $Backup = if ($BackupData.CippCustomVariables -is [string]) { $BackupData.CippCustomVariables | ConvertFrom-Json } else { $BackupData.CippCustomVariables } + + $Tenant = Get-Tenants -TenantFilter $TenantFilter + $CustomerId = $Tenant.customerId + + try { + foreach ($variable in $Backup) { + $entity = @{ + PartitionKey = $CustomerId + RowKey = $variable.RowKey + Value = $variable.Value + Description = $variable.Description + } + + try { + if ($overwrite) { + Add-CIPPAzDataTableEntity @ReplaceTable -Entity $entity -Force + Write-LogMessage -message "Restored custom variable $($variable.RowKey) from backup" -Sev 'info' + $restorationStats['CustomVariables'].success++ + $RestoreData.Add("Restored custom variable $($variable.RowKey) from backup") + } else { + # Check if variable already exists + $existing = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$CustomerId' and RowKey eq '$($variable.RowKey)'" + if (!$existing) { + Add-CIPPAzDataTableEntity @ReplaceTable -Entity $entity -Force + Write-LogMessage -message "Restored custom variable $($variable.RowKey) from backup" -Sev 'info' + $restorationStats['CustomVariables'].success++ + $RestoreData.Add("Restored custom variable $($variable.RowKey) from backup") + } else { + Write-LogMessage -message "Custom variable $($variable.RowKey) already exists and overwrite is disabled" -Sev 'info' + $RestoreData.Add("Custom variable $($variable.RowKey) already exists and overwrite is disabled") + } + } + } catch { + $restorationStats['CustomVariables'].failed++ + Write-LogMessage -message "Failed to restore custom variable $($variable.RowKey): $($_.Exception.Message)" -Sev 'Warning' + $RestoreData.Add("Failed to restore custom variable $($variable.RowKey)") + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $RestoreData.Add("Could not restore Custom Variables: $ErrorMessage") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Custom Variables: $ErrorMessage" -Sev 'Error' + } + } + 'users' { + $currentUsers = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999&select=id,userPrincipalName' -tenantid $TenantFilter + $backupUsers = if ($BackupData.users -is [string]) { $BackupData.users | ConvertFrom-Json } else { $BackupData.users } + + Write-Host "Restore users for $TenantFilter" + Write-Information "User count in backup: $($backupUsers.Count)" + $BackupUsers | ForEach-Object { + try { + $userObject = $_ + $UPN = $userObject.userPrincipalName + + if ($overwrite) { + if ($userObject.id -in $currentUsers.id -or $userObject.userPrincipalName -in $currentUsers.userPrincipalName) { + # Patch existing user - clean object to remove reference properties, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject + $patchBody = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/users/$($userObject.id)" -tenantid $TenantFilter -body $patchBody -type PATCH + Write-LogMessage -message "Restored $($UPN) from backup by patching the existing object." -Sev 'info' + $restorationStats['Users'].success++ + $RestoreData.Add("The user existed. Restored $($UPN) from backup") + } else { + # Create new user - need to add password and clean object + $tempPassword = New-passwordString + # Remove reference properties that may not exist in target tenant, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject -ExcludeId + $cleanedUser['passwordProfile'] = @{ + 'forceChangePasswordNextSignIn' = $true + 'password' = $tempPassword + } + $JSON = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST + # Try to wrap password in PwPush link + $displayPassword = $tempPassword + try { + $PasswordLink = New-PwPushLink -Payload $tempPassword + if ($PasswordLink) { + $displayPassword = $PasswordLink + } + } catch { + # If PwPush fails, use plain password + } + Write-LogMessage -message "Restored $($UPN) from backup by creating a new object with temporary password. Password: $displayPassword" -Sev 'info' -tenant $TenantFilter + $restorationStats['Users'].success++ + $RestoreData.Add("The user did not exist. Restored $($UPN) from backup with temporary password: $displayPassword") + } + } + if (!$overwrite) { + if ($userObject.id -notin $currentUsers.id -and $userObject.userPrincipalName -notin $currentUsers.userPrincipalName) { + # Create new user - need to add password and clean object + $tempPassword = New-passwordString + # Remove reference properties that may not exist in target tenant, nulls, and empty strings + $cleanedUser = Clean-GraphObject -Object $userObject -ExcludeId + $cleanedUser['passwordProfile'] = @{ + 'forceChangePasswordNextSignIn' = $true + 'password' = $tempPassword + } + $JSON = $cleanedUser | ConvertTo-Json -Depth 100 -Compress + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/users' -tenantid $TenantFilter -body $JSON -type POST + # Try to wrap password in PwPush link + $displayPassword = $tempPassword + try { + $PasswordLink = New-PwPushLink -Payload $tempPassword + if ($PasswordLink) { + $displayPassword = $PasswordLink + } + } catch { + # If PwPush fails, use plain password + } + Write-LogMessage -message "Restored $($UPN) from backup with temporary password. Password: $displayPassword" -Sev 'info' + $restorationStats['Users'].success++ + $RestoreData.Add("Restored $($UPN) from backup with temporary password: $displayPassword") + } + } + } catch { + $restorationStats['Users'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore user $($UPN): $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore user $($UPN): $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + } + 'groups' { + Write-Host "Restore groups for $TenantFilter" + $backupGroups = if ($BackupData.groups -is [string]) { $BackupData.groups | ConvertFrom-Json } else { $BackupData.groups } + $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $TenantFilter + $BackupGroups | ForEach-Object { + try { + $JSON = $_ | ConvertTo-Json -Depth 100 -Compress + $DisplayName = $_.displayName + if ($overwrite) { + if ($_.id -in $Groups.id) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/groups/$($_.id)" -tenantid $TenantFilter -body $JSON -type PATCH + Write-LogMessage -message "Restored $DisplayName from backup by patching the existing object." -Sev 'info' + $restorationStats['Groups'].success++ + $RestoreData.Add("The group existed. Restored $DisplayName from backup") + } else { + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST + Write-LogMessage -message "Restored $DisplayName from backup" -Sev 'info' + $restorationStats['Groups'].success++ + $RestoreData.Add("Restored $DisplayName from backup") + } + } + if (!$overwrite) { + if ($_.id -notin $Groups.id) { + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/groups' -tenantid $TenantFilter -body $JSON -type POST + Write-LogMessage -message "Restored $DisplayName from backup" -Sev 'info' + $restorationStats['Groups'].success++ + $RestoreData.Add("Restored $DisplayName from backup") + } else { + Write-LogMessage -message "Group $DisplayName already exists in tenant $TenantFilter and overwrite is disabled" -Sev 'info' + $RestoreData.Add("Group $DisplayName already exists in tenant $TenantFilter and overwrite is disabled") + } + } + } catch { + $restorationStats['Groups'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore group $DisplayName : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore group $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + } + 'ca' { + Write-Host "Restore Conditional Access Policies for $TenantFilter" + $BackupCAPolicies = if ($BackupData.ca -is [string]) { $BackupData.ca | ConvertFrom-Json } else { $BackupData.ca } + $BackupCAPolicies | ForEach-Object { + $JSON = $_ + try { + $null = New-CIPPCAPolicy -replacePattern 'displayName' -Overwrite $overwrite -TenantFilter $TenantFilter -state 'donotchange' -RawJSON $JSON -APIName 'CIPP Restore' -ErrorAction SilentlyContinue + $restorationStats['ConditionalAccess'].success++ + $RestoreData.Add('Restored Conditional Access policy from backup') + } catch { + $restorationStats['ConditionalAccess'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore Conditional Access Policy $DisplayName : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Conditional Access Policy $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + } + 'intuneconfig' { + $BackupConfig = if ($BackupData.intuneconfig -is [string]) { $BackupData.intuneconfig | ConvertFrom-Json } else { $BackupData.intuneconfig } + foreach ($backup in $backupConfig) { + try { + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + #Convert the manual method to a function + } + 'intunecompliance' { + $BackupConfig = if ($BackupData.intunecompliance -is [string]) { $BackupData.intunecompliance | ConvertFrom-Json } else { $BackupData.intunecompliance } + foreach ($backup in $backupConfig) { + try { + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $restorationStats['IntuneConfig'].success++ + $RestoreData.Add('Restored Intune configuration from backup') + } catch { + $restorationStats['IntuneConfig'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore Intune Compliance $DisplayName : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + + } + + 'intuneprotection' { + $BackupConfig = if ($BackupData.intuneprotection -is [string]) { $BackupData.intuneprotection | ConvertFrom-Json } else { $BackupData.intuneprotection } + foreach ($backup in $backupConfig) { + try { + $null = Set-CIPPIntunePolicy -TemplateType $backup.Type -TenantFilter $TenantFilter -DisplayName $backup.DisplayName -Description $backup.Description -RawJSON ($backup.TemplateJson) -Headers $Headers -APINAME $APINAME -ErrorAction SilentlyContinue + $restorationStats['IntuneProtection'].success++ + $RestoreData.Add('Restored Intune protection policy from backup') + } catch { + $restorationStats['IntuneProtection'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore Intune Protection $DisplayName : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Intune Configuration $DisplayName : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + + } + + 'antispam' { + try { + $BackupConfig = if ($BackupData.antispam -is [string]) { $BackupData.antispam | ConvertFrom-Json } else { $BackupData.antispam } + if ($BackupConfig -is [string]) { $BackupConfig = $BackupConfig | ConvertFrom-Json } + $BackupPolicies = $BackupConfig.policies + $BackupRules = $BackupConfig.rules + $CurrentPolicies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* + $CurrentRules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-HostedContentFilterRule' | Select-Object * -ExcludeProperty *odata*, *data.type* + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not obtain Anti-Spam Configuration: $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not obtain Anti-Spam Configuration: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + + $policyparams = @( + 'AddXHeaderValue', + 'AdminDisplayName', + 'AllowedSenderDomains', + 'AllowedSenders', + 'BlockedSenderDomains', + 'BlockedSenders', + 'BulkQuarantineTag', + 'BulkSpamAction', + 'BulkThreshold', + 'DownloadLink', + 'EnableEndUserSpamNotifications', + 'EnableLanguageBlockList', + 'EnableRegionBlockList', + 'EndUserSpamNotificationCustomFromAddress', + 'EndUserSpamNotificationCustomFromName', + 'EndUserSpamNotificationCustomSubject', + 'EndUserSpamNotificationFrequency', + 'EndUserSpamNotificationLanguage', + 'EndUserSpamNotificationLimit', + 'HighConfidencePhishAction', + 'HighConfidencePhishQuarantineTag', + 'HighConfidenceSpamAction', + 'HighConfidenceSpamQuarantineTag', + 'IncreaseScoreWithBizOrInfoUrls', + 'IncreaseScoreWithImageLinks', + 'IncreaseScoreWithNumericIps', + 'IncreaseScoreWithRedirectToOtherPort', + 'InlineSafetyTipsEnabled', + 'IntraOrgFilterState', + 'LanguageBlockList', + 'MarkAsSpamBulkMail', + 'MarkAsSpamEmbedTagsInHtml', + 'MarkAsSpamEmptyMessages', + 'MarkAsSpamFormTagsInHtml', + 'MarkAsSpamFramesInHtml', + 'MarkAsSpamFromAddressAuthFail', + 'MarkAsSpamJavaScriptInHtml', + 'MarkAsSpamNdrBackscatter', + 'MarkAsSpamObjectTagsInHtml', + 'MarkAsSpamSensitiveWordList', + 'MarkAsSpamSpfRecordHardFail', + 'MarkAsSpamWebBugsInHtml', + 'ModifySubjectValue', + 'PhishQuarantineTag', + 'PhishSpamAction', + 'PhishZapEnabled', + 'QuarantineRetentionPeriod', + 'RedirectToRecipients', + 'RegionBlockList', + 'SpamAction', + 'SpamQuarantineTag', + 'SpamZapEnabled', + 'TestModeAction', + 'TestModeBccToRecipients' + ) + + $ruleparams = @( + 'Name', + 'HostedContentFilterPolicy', + 'Comments', + 'Enabled', + 'ExceptIfRecipientDomainIs', + 'ExceptIfSentTo', + 'ExceptIfSentToMemberOf', + 'Priority', + 'RecipientDomainIs', + 'SentTo', + 'SentToMemberOf' + ) + + foreach ($policy in $BackupPolicies) { + try { + if ($policy.Identity -in $CurrentPolicies.Identity) { + if ($overwrite) { + $cmdparams = @{ + Identity = $policy.Identity + } + + foreach ($param in $policyparams) { + if ($policy.PSObject.Properties[$param]) { + if ($param -eq 'IntraOrgFilterState' -and $policy.$param -eq 'Default') { + $cmdparams[$param] = 'HighConfidencePhish' + } else { + $cmdparams[$param] = $policy.$param + } + } + } + + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + + Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") + } + } else { + $cmdparams = @{ + Name = $policy.Name + } + + foreach ($param in $policyparams) { + if ($policy.PSObject.Properties[$param]) { + if ($param -eq 'IntraOrgFilterState' -and $policy.$param -eq 'Default') { + $cmdparams[$param] = 'HighConfidencePhish' + } else { + $cmdparams[$param] = $policy.$param + } + } + } + + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + + Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") + } + } catch { + $restorationStats['AntiSpam'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore Anti-spam policy $($policy.Identity) : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-spam policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + + foreach ($rule in $BackupRules) { + try { + if ($rule.Identity -in $CurrentRules.Identity) { + if ($overwrite) { + $cmdparams = @{ + Identity = $rule.Identity + } + + foreach ($param in $ruleparams) { + if ($rule.PSObject.Properties[$param]) { + if ($param -eq 'Enabled') { + $cmdparams[$param] = if ($rule.State -eq 'Enabled') { $true } else { $false } + } else { + $cmdparams[$param] = $rule.$param + } + } + } + + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true + + Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") + } + } else { + $cmdparams = @{ + Name = $rule.Name + } + + foreach ($param in $ruleparams) { + if ($rule.PSObject.Properties[$param]) { + if ($param -eq 'Enabled') { + $cmdparams[$param] = if ($rule.State -eq 'Enabled') { $true } else { $false } + } else { + $cmdparams[$param] = $rule.$param + } + } + } + + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-HostedContentFilterRule' -cmdparams $cmdparams -UseSystemMailbox $true + + Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' + $restorationStats['AntiSpam'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") + } + } catch { + $restorationStats['AntiSpam'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore Anti-spam rule $($rule.Identity) : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-spam rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + } + + 'antiphishing' { + try { + $BackupConfig = if ($BackupData.antiphishing -is [string]) { $BackupData.antiphishing | ConvertFrom-Json } else { $BackupData.antiphishing } + if ($BackupConfig -is [string]) { $BackupConfig = $BackupConfig | ConvertFrom-Json } + $BackupPolicies = $BackupConfig.policies + $BackupRules = $BackupConfig.rules + $CurrentPolicies = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishPolicy' | Select-Object * -ExcludeProperty *odata*, *data.type* + $CurrentRules = New-ExoRequest -tenantid $Tenantfilter -cmdlet 'Get-AntiPhishRule' | Select-Object * -ExcludeProperty *odata*, *data.type* + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not obtain Anti-Phishing Configuration: $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not obtain Anti-Phishing Configuration: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + + $policyparams = @( + 'AdminDisplayName', + 'AuthenticationFailAction', + 'DmarcQuarantineAction', + 'DmarcRejectAction', + 'EnableFirstContactSafetyTips', + 'EnableMailboxIntelligence', + 'EnableMailboxIntelligenceProtection', + 'EnableOrganizationDomainsProtection', + 'EnableSimilarDomainsSafetyTips', + 'EnableSimilarUsersSafetyTips', + 'EnableSpoofIntelligence', + 'EnableTargetedDomainsProtection', + 'EnableTargetedUserProtection', + 'EnableUnauthenticatedSender', + 'EnableUnusualCharactersSafetyTips', + 'EnableViaTag', + 'ExcludedDomains', + 'ExcludedSenders', + 'HonorDmarcPolicy', + 'ImpersonationProtectionState', + 'MailboxIntelligenceProtectionAction', + 'MailboxIntelligenceProtectionActionRecipients', + 'MailboxIntelligenceQuarantineTag', + 'PhishThresholdLevel', + 'SimilarUsersSafetyTipsCustomText', + 'SpoofQuarantineTag', + 'TargetedDomainActionRecipients', + 'TargetedDomainProtectionAction', + 'TargetedDomainQuarantineTag', + 'TargetedDomainsToProtect', + 'TargetedUserActionRecipients', + 'TargetedUserProtectionAction', + 'TargetedUserQuarantineTag', + 'TargetedUsersToProtect' + ) + + $ruleparams = @( + 'Name', + 'AntiPhishPolicy', + 'Comments', + 'Enabled', + 'ExceptIfRecipientDomainIs', + 'ExceptIfSentTo', + 'ExceptIfSentToMemberOf', + 'Priority', + 'RecipientDomainIs', + 'SentTo', + 'SentToMemberOf' + ) + + foreach ($policy in $BackupPolicies) { + try { + if ($policy.Identity -in $CurrentPolicies.Identity) { + if ($overwrite) { + $cmdparams = @{ + Identity = $policy.Identity + } + + foreach ($param in $policyparams) { + if ($policy.PSObject.Properties[$param]) { + $cmdparams[$param] = $policy.$param + } + } + + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + + Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") + } + } else { + $cmdparams = @{ + Name = $policy.Name + } + + foreach ($param in $policyparams) { + if ($policy.PSObject.Properties[$param]) { + $cmdparams[$param] = $policy.$param + } + } + + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishPolicy' -cmdparams $cmdparams -UseSystemMailbox $true + + Write-LogMessage -message "Restored $($policy.Identity) from backup" -Sev 'info' + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($policy.Identity) from backup.") + } + } catch { + $restorationStats['AntiPhishing'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore Anti-phishing policy $($policy.Identity) : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-phishing policy $($policy.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + + foreach ($rule in $BackupRules) { + try { + if ($rule.Identity -in $CurrentRules.Identity) { + if ($overwrite) { + $cmdparams = @{ + Identity = $rule.Identity + } + + foreach ($param in $ruleparams) { + if ($rule.PSObject.Properties[$param]) { + if ($param -eq 'Enabled') { + $cmdparams[$param] = if ($rule.State -eq 'Enabled') { $true } else { $false } + } else { + $cmdparams[$param] = $rule.$param + } + } + } + + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'Set-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true + + Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") + } + } else { + $cmdparams = @{ + Name = $rule.Name + } + + foreach ($param in $ruleparams) { + if ($rule.PSObject.Properties[$param]) { + if ($param -eq 'Enabled') { + $cmdparams[$param] = if ($rule.State -eq 'Enabled') { $true } else { $false } + } else { + $cmdparams[$param] = $rule.$param + } + } + } + + $null = New-ExoRequest -TenantId $Tenantfilter -cmdlet 'New-AntiPhishRule' -cmdparams $cmdparams -UseSystemMailbox $true + + Write-LogMessage -message "Restored $($rule.Identity) from backup" -Sev 'info' + $restorationStats['AntiPhishing'].success++ + $RestoreData.Add("Restored $($rule.Identity) from backup.") + } + } catch { + $restorationStats['AntiPhishing'].failed++ + $ErrorMessage = Get-CippException -Exception $_ + $RestoreData.Add("Could not restore Anti-phishing rule $($rule.Identity) : $($ErrorMessage.NormalizedError) ") + Write-LogMessage -Headers $Headers -API $APINAME -message "Could not restore Anti-phishing rule $($rule.Identity) : $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } + } + 'CippWebhookAlerts' { + Write-Host "Restore Webhook Alerts for $TenantFilter" + $WebhookTable = Get-CIPPTable -TableName 'WebhookRules' + $Backup = if ($BackupData.CippWebhookAlerts -is [string]) { $BackupData.CippWebhookAlerts | ConvertFrom-Json } else { $BackupData.CippWebhookAlerts } + try { + Add-CIPPAzDataTableEntity @WebhookTable -Entity $Backup -Force + $restorationStats['WebhookAlerts'].success++ + $RestoreData.Add('Restored Webhook Alerts from backup') + } catch { + $restorationStats['WebhookAlerts'].failed++ + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $RestoreData.Add("Could not restore Webhook Alerts $ErrorMessage") + } + } + 'CippScriptedAlerts' { + Write-Host "Restore Scripted Alerts for $TenantFilter" + $ScheduledTasks = Get-CIPPTable -TableName 'ScheduledTasks' + $Backup = if ($BackupData.CippScriptedAlerts -is [string]) { $BackupData.CippScriptedAlerts | ConvertFrom-Json } else { $BackupData.CippScriptedAlerts } + try { + Add-CIPPAzDataTableEntity @ScheduledTasks -Entity $Backup -Force + $restorationStats['ScriptedAlerts'].success++ + $RestoreData.Add('Restored Scripted Alerts from backup') + } catch { + $restorationStats['ScriptedAlerts'].failed++ + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $RestoreData.Add("Could not restore Scripted Alerts $ErrorMessage ") + } + } + } + + # Build summary message + $summaryParts = @() + $successCount = 0 + $failureCount = 0 + + foreach ($type in $restorationStats.Keys) { + $successCount += $restorationStats[$type].success + $failureCount += $restorationStats[$type].failed + + if ($restorationStats[$type].success -gt 0) { + $pluralForm = if ($restorationStats[$type].success -eq 1) { $type.TrimEnd('s') } else { $type } + $summaryParts += "$($restorationStats[$type].success) $pluralForm" + } + } + + if ($summaryParts.Count -gt 0) { + $summary = 'Restored: ' + ($summaryParts -join ', ') + ' from backup' + if ($failureCount -gt 0) { + $summary += " ($failureCount items failed)" + } + $RestoreData.Add($summary) + } elseif ($failureCount -eq 0 -and $successCount -eq 0) { + $RestoreData.Add('No items were restored from backup.') + } + + return $RestoreData +} diff --git a/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 b/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 new file mode 100644 index 000000000000..09ac3a485e20 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 @@ -0,0 +1,183 @@ +function New-CIPPSharepointSite { + <# + .SYNOPSIS + Create a new SharePoint site + + .DESCRIPTION + Create a new SharePoint site using the Modern REST API + + .PARAMETER SiteName + The name of the site + + .PARAMETER SiteDescription + The description of the site + + .PARAMETER SiteOwner + The username of the site owner + + .PARAMETER TemplateName + The template to use for the site. Default is Communication + + .PARAMETER SiteDesign + The design to use for the site. Default is Topic + + .PARAMETER WebTemplateExtensionId + The web template extension ID to use + + .PARAMETER SensitivityLabel + The Purview sensitivity label to apply to the site + + .PARAMETER TenantFilter + The tenant associated with the site + + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$SiteName, + + [Parameter(Mandatory = $true)] + [string]$SiteDescription, + + [Parameter(Mandatory = $true)] + [string]$SiteOwner, + + [Parameter(Mandatory = $false)] + [ValidateSet('Communication', 'Team')] + [string]$TemplateName = 'Communication', + + [Parameter(Mandatory = $false)] + [ValidateSet('Topic', 'Showcase', 'Blank', 'Custom')] + [string]$SiteDesign = 'Showcase', + + [Parameter(Mandatory = $false)] + [ValidatePattern('(\{|\()?[A-Za-z0-9]{4}([A-Za-z0-9]{4}\-?){4}[A-Za-z0-9]{12}(\}|\()?')] + [string]$WebTemplateExtensionId, + + [Parameter(Mandatory = $false)] + [string]$SensitivityLabel, + + [string]$Classification, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + $APIName = 'Create SharePoint Site', + $Headers + ) + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $SitePath = $SiteName -replace ' ' -replace '[^A-Za-z0-9-]' + $SiteUrl = "https://$($SharePointInfo.TenantName).sharepoint.com/sites/$SitePath" + + switch ($TemplateName) { + 'Communication' { + $WebTemplate = 'SITEPAGEPUBLISHING#0' + } + 'Team' { + $WebTemplate = 'STS#3' + } + } + + $WebTemplateExtensionId = '00000000-0000-0000-0000-000000000000' + $DefaultSiteDesignIds = @( '96c933ac-3698-44c7-9f4a-5fd17d71af9e', '6142d2a0-63a5-4ba0-aede-d9fefca2c767', 'f6cc5403-0d63-442e-96c0-285923709ffc') + + switch ($SiteDesign) { + 'Topic' { + $SiteDesignId = '96c933ac-3698-44c7-9f4a-5fd17d71af9e' + } + 'Showcase' { + $SiteDesignId = '6142d2a0-63a5-4ba0-aede-d9fefca2c767' + } + 'Blank' { + $SiteDesignId = 'f6cc5403-0d63-442e-96c0-285923709ffc' + } + 'Custom' { + if ($WebTemplateExtensionId -match '^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$') { + if ($WebTemplateExtensionId -notin $DefaultSiteDesignIds) { + $WebTemplateExtensionId = $SiteDesign + $SiteDesignId = '00000000-0000-0000-0000-000000000000' + } else { + $SiteDesignId = $WebTemplateExtensionId + } + } else { + $SiteDesignId = '96c933ac-3698-44c7-9f4a-5fd17d71af9e' + } + } + } + + # Create the request body + $Request = @{ + Title = $SiteName + Url = $SiteUrl + Lcid = 1033 + ShareByEmailEnabled = $false + Description = $SiteDescription + WebTemplate = $WebTemplate + SiteDesignId = $SiteDesignId + Owner = $SiteOwner + WebTemplateExtensionId = $WebTemplateExtensionId + } + + # Set the sensitivity label if provided + if ($SensitivityLabel) { + $Request.SensitivityLabel = $SensitivityLabel + } + if ($Classification) { + $Request.Classification = $Classification + } + + Write-Verbose (ConvertTo-Json -InputObject $Request -Compress -Depth 10) + + $body = @{ + request = $Request + } + + # Create the site + if ($PSCmdlet.ShouldProcess($SiteName, 'Create new SharePoint site')) { + $AddedHeaders = @{ + 'accept' = 'application/json;odata.metadata=none' + 'odata-version' = '4.0' + } + try { + $Results = New-GraphPOSTRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri "$($SharePointInfo.AdminUrl)/_api/SPSiteManager/create" -body (ConvertTo-Json -Depth 10 -InputObject $body) -tenantid $TenantFilter -AddedHeaders $AddedHeaders + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create new SharePoint site $SiteName with URL $SiteUrl. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + throw $Result + } + } + + # Check the results. This response is weird. https://learn.microsoft.com/en-us/sharepoint/dev/apis/site-creation-rest + switch ($Results.SiteStatus) { + '0' { + $Result = "Failed to create new SharePoint site $SiteName with URL $SiteUrl. The site doesn't exist." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error + throw $Result + } + '1' { + $Result = "Successfully created new SharePoint site $SiteName with URL $SiteUrl. The site is however currently being provisioned. Please wait for it to finish." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + return $Result + } + '2' { + $Result = "Successfully created new SharePoint site $SiteName with URL $SiteUrl" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + return $Result + } + '3' { + $Result = "Failed to create new SharePoint site $SiteName with URL $SiteUrl. An error occurred while provisioning the site." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error + throw $Result + } + '4' { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error + $Result = "Failed to create new SharePoint site $SiteName with URL $SiteUrl. The site already exists." + throw $Result + } + default {} + } + + +} diff --git a/Modules/CIPPCore/Public/New-CIPPTAP.ps1 b/Modules/CIPPCore/Public/New-CIPPTAP.ps1 new file mode 100644 index 000000000000..120a81ff1264 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPTAP.ps1 @@ -0,0 +1,77 @@ +function New-CIPPTAP { + [CmdletBinding()] + param ( + $UserID, + $TenantFilter, + $APIName = 'Create TAP', + $Headers, + $LifetimeInMinutes, + [bool]$IsUsableOnce, + $StartDateTime + ) + + try { + # Build the request body based on provided parameters + $RequestBody = @{} + + if ($LifetimeInMinutes) { + $RequestBody.lifetimeInMinutes = [int]$LifetimeInMinutes + } + + if ($null -ne $IsUsableOnce) { + $RequestBody.isUsableOnce = $IsUsableOnce + } + + if ($StartDateTime) { + # Convert Unix timestamp to DateTime if it's a number + if ($StartDateTime -match '^\d+$') { + $dateTime = [DateTimeOffset]::FromUnixTimeSeconds([int]$StartDateTime).DateTime + $RequestBody.startDateTime = Get-Date $dateTime -Format 'o' + } else { + # If it's already a date string, format it properly + $dateTime = Get-Date $StartDateTime + $RequestBody.startDateTime = Get-Date $dateTime -Format 'o' + } + } + + # Convert request body to JSON + $BodyJson = if ($RequestBody) { $RequestBody | ConvertTo-Json } else { '{}' } + $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)/authentication/temporaryAccessPassMethods" -tenantid $TenantFilter -type POST -body $BodyJson -verbose + + # Build log message parts based on actual response values + $logParts = [System.Collections.Generic.List[string]]::new() + $logParts.Add("Lifetime: $($GraphRequest.lifetimeInMinutes) minutes") + + $logParts.Add($GraphRequest.isUsableOnce ? 'one-time use' : 'multi-use') + + $logParts.Add($StartDateTime ? "starts at $(Get-Date $GraphRequest.startDateTime -Format 'yyyy-MM-dd HH:mm:ss') UTC" : 'starts immediately') + + # Create parameter string for logging + $paramString = ' with ' + ($logParts -join ', ') + + Write-LogMessage -headers $Headers -API $APIName -message "Created Temporary Access Password (TAP) for $UserID$paramString" -Sev 'Info' -tenant $TenantFilter + + # Build result text with parameters + $resultText = "The TAP for $UserID is $($GraphRequest.temporaryAccessPass) - This TAP is usable for the next $($GraphRequest.LifetimeInMinutes) minutes" + $resultText += $GraphRequest.isUsableOnce ? ' (one-time use only)' : '' + $resultText += $StartDateTime ? " starting at $(Get-Date $GraphRequest.startDateTime -Format 'yyyy-MM-dd HH:mm:ss') UTC" : '' + + return @{ + resultText = $resultText + userId = $UserID + copyField = $GraphRequest.temporaryAccessPass + temporaryAccessPass = $GraphRequest.temporaryAccessPass + lifetimeInMinutes = $GraphRequest.LifetimeInMinutes + startDateTime = $GraphRequest.startDateTime + isUsableOnce = $GraphRequest.isUsableOnce + state = 'success' + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create Temporary Access Password (TAP) for $($UserID): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} + diff --git a/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 b/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 new file mode 100644 index 000000000000..76ff020eb9ef --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 @@ -0,0 +1,357 @@ +function New-CIPPTemplateRun { + [CmdletBinding()] + param ( + $TemplateSettings, + $TenantFilter + ) + $Table = Get-CippTable -tablename 'templates' + $ExistingTemplates = (Get-CIPPAzDataTableEntity @Table) | ForEach-Object { + try { + $data = $_.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue -Depth 100 + $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $_.RowKey -Force -ErrorAction Stop + $data | Add-Member -NotePropertyName 'PartitionKey' -NotePropertyValue $_.PartitionKey -Force -ErrorAction Stop + $data | Add-Member -NotePropertyName 'SHA' -NotePropertyValue $_.SHA -Force -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'Package' -NotePropertyValue $_.Package -Force -ErrorAction SilentlyContinue + $data | Add-Member -NotePropertyName 'Source' -NotePropertyValue $_.Source -Force -ErrorAction SilentlyContinue + $data + } catch { + return + } + } | Sort-Object -Property displayName + + function Get-SanitizedFilename { + param ( + [string]$filename + ) + $filename = $filename -replace '\s', '_' -replace '[^\w\d_]', '' + return $filename + } + + $Tasks = foreach ($key in $TemplateSettings.Keys) { + if ($TemplateSettings[$key] -eq $true) { + $key + } + } + if ($TemplateSettings.templateRepo) { + Write-Information 'Grabbing data from community repo' + try { + $Files = (Get-GitHubFileTree -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value).tree | Where-Object { $_.path -match '.json$' -and $_.path -notmatch 'NativeImport' } | Select-Object *, @{n = 'html_url'; e = { "https://github.com/$($SplatParams.FullName)/tree/$($SplatParams.Branch)/$($_.path)" } }, @{n = 'name'; e = { ($_.path -split '/')[ -1 ] -replace '\.json$', '' } } + #if there is a migration table file, file the file. Store the file contents in $migrationtable + $MigrationTable = $Files | Where-Object { $_.name -eq 'MigrationTable' } | Select-Object -Last 1 + if ($MigrationTable) { + $MigrationTable = (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $MigrationTable.path).content | ConvertFrom-Json + } + $NamedLocations = $Files | Where-Object { $_.name -match 'ALLOWED COUNTRIES' } + $LocationData = foreach ($Location in $NamedLocations) { + (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $Location.path).content | ConvertFrom-Json + } + + foreach ($File in $Files) { + if ($File.name -eq 'MigrationTable' -or $file.name -match 'ALLOWED COUNTRIES') { continue } + Write-Information "Processing template file $($File.name) - Sanitized as $(Get-SanitizedFilename -filename $File.name)" + $ExistingTemplate = $ExistingTemplates | Where-Object { (![string]::IsNullOrEmpty($_.displayName) -and (Get-SanitizedFilename -filename $_.displayName) -eq (Get-SanitizedFilename -filename $File.name)) -or (![string]::IsNullOrEmpty($_.templateName) -and (Get-SanitizedFilename -filename $_.templateName) -eq (Get-SanitizedFilename -filename $File.name) ) -and ![string]::IsNullOrEmpty($_.SHA) } | Select-Object -First 1 + + $UpdateNeeded = $false + if ($ExistingTemplate -and $ExistingTemplate.SHA -ne $File.sha -and $ExistingTemplate.Source -eq $TemplateSettings.templateRepo.value) { + $Name = $ExistingTemplate.displayName ?? $ExistingTemplate.templateName + Write-Information "Existing template $($Name) found, but SHA is different. Updating template." + $UpdateNeeded = $true + "Template $($Name) needs to be updated as the SHA is different" + } elseif ($ExistingTemplate -and $ExistingTemplate.SHA -eq $File.sha -and $ExistingTemplate.Source -eq $TemplateSettings.templateRepo.value) { + Write-Information "Existing template $($File.name) found, but SHA is the same. No update needed." + "Template $($File.name) found, but SHA is the same. No update needed." + } + + if (!$ExistingTemplate -or $UpdateNeeded) { + $Template = (Get-GitHubFileContents -FullName $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -Path $File.path).content | ConvertFrom-Json + Import-CommunityTemplate -Template $Template -SHA $File.sha -MigrationTable $MigrationTable -LocationData $LocationData -Source $TemplateSettings.templateRepo.value + if ($UpdateNeeded) { + Write-Information "Template $($File.name) needs to be updated as the SHA is different" + "Template $($File.name) updated" + } else { + Write-Information "Template $($File.name) needs to be created" + "Template $($File.name) created" + } + } + } + } catch { + $Message = "Failed to get data from community repo $($TemplateSettings.templateRepo.value). Error: $($_.Exception.Message)" + Write-LogMessage -API 'Community Repo' -tenant $TenantFilter -message $Message -sev Error + Write-Information $_.InvocationInfo.PositionMessage + return "Failed to get data from community repo $($TemplateSettings.templateRepo.value). Error: $($_.Exception.Message)" + } + } else { + # Tenant template library + $Results = foreach ($Task in $Tasks) { + switch ($Task) { + 'ca' { + Write-Information "Template Conditional Access Policies for $TenantFilter" + # Preload users/groups for CA templates + Write-Information "Preloading information for Conditional Access templates for $TenantFilter" + $Requests = @( + @{ + id = 'preloadedUsers' + url = 'users?$top=999&$select=displayName,id' + method = 'GET' + } + @{ + id = 'preloadedGroups' + url = 'groups?$top=999&$select=displayName,id' + method = 'GET' + } + @{ + id = 'conditionalAccessPolicies' + url = 'conditionalAccess/policies?$top=999' + method = 'GET' + } + ) + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter -asapp $true + $preloadedUsers = ($BulkResults | Where-Object { $_.id -eq 'preloadedUsers' }).body.value + $preloadedGroups = ($BulkResults | Where-Object { $_.id -eq 'preloadedGroups' }).body.value + $policies = ($BulkResults | Where-Object { $_.id -eq 'conditionalAccessPolicies' }).body.value + + Write-Information 'Creating templates for found Conditional Access Policies' + foreach ($policy in $policies) { + try { + $Hash = Get-StringHash -String ($policy | ConvertTo-Json -Depth 100 -Compress) + $ExistingPolicy = $ExistingTemplates | Where-Object { $_.PartitionKey -eq 'CATemplate' -and $_.displayName -eq $policy.displayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "CA Policy $($policy.displayName) found, SHA matches, skipping template creation" + continue + } + $Template = New-CIPPCATemplate -TenantFilter $TenantFilter -JSON $policy -preloadedUsers $preloadedUsers -preloadedGroups $preloadedGroups + #check existing templates, if the displayName is the same, overwrite it. + + if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'CATemplate') { + "CA Policy $($policy.displayName) found, updating template" + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$Template" + RowKey = $ExistingPolicy.GUID + PartitionKey = 'CATemplate' + GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source + } -Force + } else { + "CA Policy $($policy.displayName) not found in existing templates, creating new template" + $GUID = (New-Guid).GUID + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$Template" + RowKey = "$GUID" + PartitionKey = 'CATemplate' + GUID = "$GUID" + SHA = $Hash + Source = $TenantFilter + } + } + + } catch { + "Failed to create a template of the Conditional Access Policy with ID: $($policy.id). Error: $($_.Exception.Message)" + } + } + } + 'intuneconfig' { + Write-Information "Backup Intune Configuration Policies for $TenantFilter" + $GraphURLS = @( + "deviceManagement/deviceConfigurations?`$select=id,displayName,lastModifiedDateTime,roleScopeTagIds,microsoft.graph.unsupportedDeviceConfiguration/originalEntityTypeName&`$expand=assignments&top=1000" + 'deviceManagement/windowsDriverUpdateProfiles' + "deviceManagement/groupPolicyConfigurations?`$expand=assignments&top=999" + "deviceAppManagement/mobileAppConfigurations?`$expand=assignments&`$filter=microsoft.graph.androidManagedStoreAppConfiguration/appSupportsOemConfig%20eq%20true" + 'deviceManagement/configurationPolicies' + 'deviceManagement/windowsFeatureUpdateProfiles' + 'deviceManagement/windowsQualityUpdatePolicies' + 'deviceManagement/windowsQualityUpdateProfiles' + ) + + $Requests = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($url in $GraphURLS) { + $URLName = (($url).split('?') | Select-Object -First 1) -replace 'deviceManagement/', '' -replace 'deviceAppManagement/', '' + $Requests.Add([PSCustomObject]@{ + id = $URLName + url = $url + method = 'GET' + }) + } + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + foreach ($Result in $BulkResults) { + Write-Information "Processing Intune Configuration Policies for $($Result.id) - Status Code: $($Result.status)" + if ($Result.status -eq 200) { + $URLName = $Result.id + $Policies = $Result.body.value + Write-Information "Found $($Policies.Count) policies for $($Result.id)" + foreach ($Policy in $Policies) { + try { + $Hash = Get-StringHash -String ($Policy | ConvertTo-Json -Depth 100 -Compress) + $DisplayName = $Policy.displayName ?? $Policy.name + + $ExistingPolicy = $ExistingTemplates | Where-Object { $_.PartitionKey -eq 'IntuneTemplate' -and $_.displayName -eq $DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + + Write-Information "Processing Intune Configuration Policy $($DisplayName) - $($ExistingPolicy ? 'Existing template found' : 'No existing template found')" + + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Configuration Policy $($DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName $URLName -ID $Policy.id + if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { + "Policy $($Template.DisplayName) found, updating template" + $object = [PSCustomObject]@{ + Displayname = $Template.DisplayName + Description = $Template.Description + RAWJson = $Template.TemplateJson + Type = $Template.Type + GUID = $ExistingPolicy.GUID + } | ConvertTo-Json + + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = $ExistingPolicy.GUID + PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source + } -Force + } else { + "Intune Configuration Policy $($Template.DisplayName) not found in existing templates, creating new template" + $GUID = (New-Guid).GUID + $object = [PSCustomObject]@{ + Displayname = $Template.DisplayName + Description = $Template.Description + RAWJson = $Template.TemplateJson + Type = $Template.Type + GUID = $GUID + } | ConvertTo-Json + + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = "$GUID" + PartitionKey = 'IntuneTemplate' + GUID = "$GUID" + SHA = $Hash + Source = $TenantFilter + } -Force + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + "Failed to create a template of the Intune Configuration Policy with ID: $($Policy.id). Error: $ErrorMessage" + } + } + } else { + Write-Information "Failed to get $($Result.id) policies - Status Code: $($Result.status) - Message: $($Result.body.error.message)" + } + } + } + 'intunecompliance' { + Write-Information "Create Intune Compliance Policy Templates for $TenantFilter" + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { + $Policy = $_ + $Hash = Get-StringHash -String (ConvertTo-Json -Depth 100 -Compress -InputObject $_) + $ExistingPolicy = $ExistingTemplates | Where-Object { $Policy.displayName -eq $_.DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Compliance Policy $($_.DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'deviceCompliancePolicies' -ID $Policy.id + if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { + "Intune Compliance Policy $($Template.DisplayName) found, updating template" + $object = [PSCustomObject]@{ + Displayname = $Template.DisplayName + Description = $Template.Description + RAWJson = $Template.TemplateJson + Type = $Template.Type + GUID = $ExistingPolicy.GUID + } | ConvertTo-Json -Compress + + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = $ExistingPolicy.GUID + PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + GUID = $ExistingPolicy.GUID + SHA = $Hash + Source = $ExistingPolicy.Source + } -Force + } else { + "Intune Compliance Policy $($Template.DisplayName) not found in existing templates, creating new template" + $GUID = (New-Guid).GUID + $object = [PSCustomObject]@{ + Displayname = $Template.DisplayName + Description = $Template.Description + RAWJson = $Template.TemplateJson + Type = $Template.Type + GUID = $GUID + } | ConvertTo-Json -Compress + + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = "$GUID" + PartitionKey = 'IntuneTemplate' + SHA = $Hash + GUID = "$GUID" + Source = $TenantFilter + } -Force + } + } + } + + 'intuneprotection' { + Write-Information "Create Intune Protection Policy Templates for $TenantFilter" + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/managedAppPolicies?$top=999' -tenantid $TenantFilter | ForEach-Object { + $Policy = $_ + $Hash = Get-StringHash -String (ConvertTo-Json -Depth 100 -Compress -InputObject $_) + $ExistingPolicy = $ExistingTemplates | Where-Object { $Policy.displayName -eq $_.DisplayName -and $_.Source -eq $TenantFilter } | Select-Object -First 1 + if ($ExistingPolicy -and $ExistingPolicy.SHA -eq $Hash) { + "Intune Protection Policy $($_.DisplayName) found, SHA matches, skipping template creation" + continue + } + + $Template = New-CIPPIntuneTemplate -TenantFilter $TenantFilter -URLName 'managedAppPolicies' -ID $Policy.id + if ($ExistingPolicy -and $ExistingPolicy.PartitionKey -eq 'IntuneTemplate') { + "Intune Protection Policy $($Template.DisplayName) found, updating template" + $object = [PSCustomObject]@{ + Displayname = $Template.DisplayName + Description = $Template.Description + RAWJson = $Template.TemplateJson + Type = $Template.Type + GUID = $ExistingPolicy.GUID + } | ConvertTo-Json -Compress + + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = $ExistingPolicy.GUID + PartitionKey = 'IntuneTemplate' + Package = $ExistingPolicy.Package + SHA = $Hash + GUID = $ExistingPolicy.GUID + Source = $ExistingPolicy.Source + } -Force + } else { + "Intune Protection Policy $($Template.DisplayName) not found in existing templates, creating new template" + $GUID = (New-Guid).GUID + $object = [PSCustomObject]@{ + Displayname = $Template.DisplayName + Description = $Template.Description + RAWJson = $Template.TemplateJson + Type = $Template.Type + GUID = $GUID + } | ConvertTo-Json -Compress + + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = "$GUID" + PartitionKey = 'IntuneTemplate' + SHA = $Hash + GUID = "$GUID" + Source = $TenantFilter + } -Force + } + } + } + } + } + } + return $Results +} diff --git a/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 b/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 new file mode 100644 index 000000000000..fb831949ccaa --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 @@ -0,0 +1,88 @@ +function New-CIPPUserTask { + [CmdletBinding()] + param ( + $UserObj, + $APIName = 'New User Task', + $TenantFilter, + $Headers + ) + $Results = [System.Collections.Generic.List[string]]::new() + + try { + $CreationResults = New-CIPPUser -UserObj $UserObj -APIName $APIName -Headers $Headers + $Results.Add('Created New User.') + $Results.Add("Username: $($CreationResults.Username)") + $Results.Add("Password: $($CreationResults.Password)") + } catch { + $Results.Add("$($_.Exception.Message)" ) + throw @{'Results' = $Results } + } + + try { + if ($UserObj.licenses.value) { + if ($UserObj.sherwebLicense.value) { + $null = Set-SherwebSubscription -Headers $Headers -TenantFilter $UserObj.tenantFilter -SKU $UserObj.sherwebLicense.value -Add 1 + $null = $Results.Add('Added Sherweb License, scheduling assignment') + $taskObject = [PSCustomObject]@{ + TenantFilter = $UserObj.tenantFilter + Name = "Assign License: $UserPrincipalName" + Command = @{ + value = 'Set-CIPPUserLicense' + } + Parameters = [pscustomobject]@{ + UserId = $CreationResults.Username + APIName = 'Sherweb License Assignment' + AddLicenses = $UserObj.licenses.value + } + ScheduledTime = 0 #right now, which is in the next 15 minutes and should cover most cases. + PostExecution = @{ + Webhook = [bool]$Request.Body.PostExecution.webhook + Email = [bool]$Request.Body.PostExecution.email + PSA = [bool]$Request.Body.PostExecution.psa + } + } + Add-CIPPScheduledTask -Task $taskObject -hidden $false -Headers $Headers + } else { + $LicenseResults = Set-CIPPUserLicense -UserId $CreationResults.Username -TenantFilter $UserObj.tenantFilter -AddLicenses $UserObj.licenses.value -Headers $Headers + $Results.Add($LicenseResults) + } + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -tenant $($UserObj.tenantFilter) -message "Failed to assign the license. Error:$($_.Exception.Message)" -Sev 'Error' + $Results.Add("Failed to assign the license. $($_.Exception.Message)") + } + + try { + if ($UserObj.AddedAliases) { + $AliasResults = Add-CIPPAlias -User $CreationResults.Username -Aliases ($UserObj.AddedAliases -split '\s') -UserPrincipalName $CreationResults.Username -TenantFilter $UserObj.tenantFilter -APIName $APIName -Headers $Headers + $Results.Add($AliasResults) + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -tenant $($UserObj.tenantFilter) -message "Failed to create the Aliases. Error:$($_.Exception.Message)" -Sev 'Error' + $Results.Add("Failed to create the Aliases: $($_.Exception.Message)") + } + if ($UserObj.copyFrom.value) { + Write-Host "Copying from $($UserObj.copyFrom.value)" + $CopyFrom = Set-CIPPCopyGroupMembers -Headers $Headers -CopyFromId $UserObj.copyFrom.value -UserID $CreationResults.Username -TenantFilter $UserObj.tenantFilter + $CopyFrom.Success | ForEach-Object { $Results.Add($_) } + $CopyFrom.Error | ForEach-Object { $Results.Add($_) } + } + + if ($UserObj.setManager) { + $ManagerResult = Set-CIPPManager -User $CreationResults.Username -Manager $UserObj.setManager.value -TenantFilter $UserObj.tenantFilter -Headers $Headers + $Results.Add($ManagerResult) + } + + if ($UserObj.setSponsor) { + $SponsorResult = Set-CIPPSponsor -User $CreationResults.Username -Sponsor $UserObj.setSponsor.value -TenantFilter $UserObj.tenantFilter -Headers $Headers + $Results.Add($SponsorResult) + } + + return @{ + Results = $Results + Username = $CreationResults.Username + Password = $CreationResults.Password + CopyFrom = $CopyFrom + User = $CreationResults.User + } +} diff --git a/Modules/CIPPCore/Public/New-CippStandardsDriftClone.ps1 b/Modules/CIPPCore/Public/New-CippStandardsDriftClone.ps1 new file mode 100644 index 000000000000..f66d3af836e4 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CippStandardsDriftClone.ps1 @@ -0,0 +1,41 @@ +function New-CippStandardsDriftClone { + [CmdletBinding()] + param ( + [Parameter(Mandatory)][string]$TemplateId, + [Parameter(Mandatory)][switch]$UpgradeToDrift, + $Headers + ) + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'StandardsTemplateV2' and RowKey eq '$TemplateId'" + $Entity = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $data = $Entity.JSON | ConvertFrom-Json + $data.excludedTenants = @() #blank excluded Tenants + $data.tenantFilter = @(@{ value = 'Copied Standard'; label = 'Copied Standard' }) + $data.GUID = [guid]::NewGuid().ToString() + $data.templateName = "$($data.templateName) (Drift Clone)" + if ($UpgradeToDrift) { + try { + $data | Add-Member -MemberType NoteProperty -Name 'type' -Value 'drift' -Force + if ($null -ne $data.standards) { + foreach ($prop in $data.standards.PSObject.Properties) { + $actions = $prop.Value.action + if ($actions -and $actions.Count -gt 0) { + if ($actions | Where-Object { $_.value -eq 'remediate' }) { + $prop.Value | Add-Member -MemberType NoteProperty -Name 'autoRemediate' -Value $true -Force + } + # Set action to Report using add-member to avoid issues with readonly arrays + $prop.Value | Add-Member -MemberType NoteProperty -Name 'action' -Value @(@{ 'label' = 'Report'; 'value' = 'Report' }) -Force + } + } + } + $Entity.JSON = "$(ConvertTo-Json -InputObject $data -Compress -Depth 100)" + $Entity.RowKey = "$($data.GUID)" + $Entity.GUID = $data.GUID + $update = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + return 'Clone Completed successfully' + } catch { + return "Failed to Clone template to Drift Template: $_" + } + } +} diff --git a/Modules/CIPPCore/Public/New-CippUser.ps1 b/Modules/CIPPCore/Public/New-CippUser.ps1 new file mode 100644 index 000000000000..7381e1426548 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CippUser.ps1 @@ -0,0 +1,89 @@ +function New-CIPPUser { + [CmdletBinding()] + param ( + $UserObj, + $Aliases = 'Scheduled', + $RestoreValues, + $APIName = 'New User', + $Headers + ) + + try { + $UserObj = $UserObj | ConvertTo-Json -Depth 10 | ConvertFrom-Json -Depth 10 + Write-Host $UserObj.PrimDomain.value + $Aliases = ($UserObj.AddedAliases) -split '\s' + $password = if ($UserObj.password) { $UserObj.password } else { New-passwordString } + $UserPrincipalName = "$($UserObj.username)@$($UserObj.Domain ? $UserObj.Domain : $UserObj.PrimDomain.value)" + Write-Host "Creating user $UserPrincipalName" + Write-Host "tenant filter is $($UserObj.tenantFilter)" + $BodyToship = [pscustomobject] @{ + 'givenName' = $UserObj.givenName + 'surname' = $UserObj.surname + 'accountEnabled' = $true + 'displayName' = $UserObj.displayName + 'department' = $UserObj.department + 'mailNickname' = $UserObj.username ? $UserObj.username : $UserObj.mailNickname + 'userPrincipalName' = $UserPrincipalName + 'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation + 'otherMails' = $UserObj.otherMails ? @($UserObj.otherMails) : @() + 'jobTitle' = $UserObj.jobTitle + 'mobilePhone' = $UserObj.mobilePhone + 'streetAddress' = $UserObj.streetAddress + 'city' = $UserObj.city + 'state' = $UserObj.state + 'country' = $UserObj.country + 'postalCode' = $UserObj.postalCode + 'companyName' = $UserObj.companyName + 'passwordProfile' = @{ + 'forceChangePasswordNextSignIn' = [bool]$UserObj.MustChangePass + 'password' = $password + } + } + if ($UserObj.businessPhones) { $bodytoShip | Add-Member -NotePropertyName businessPhones -NotePropertyValue @($UserObj.businessPhones) } + if ($UserObj.defaultAttributes) { + $UserObj.defaultAttributes | Get-Member -MemberType NoteProperty | ForEach-Object { + Write-Host "Editing user and adding $($_.Name) with value $($UserObj.defaultAttributes.$($_.Name).value)" + if (-not [string]::IsNullOrWhiteSpace($UserObj.defaultAttributes.$($_.Name).value)) { + Write-Host 'adding body to ship' + $BodyToShip | Add-Member -NotePropertyName $_.Name -NotePropertyValue $UserObj.defaultAttributes.$($_.Name).value -Force + } + } + } + if ($UserObj.customData) { + $UserObj.customData | Get-Member -MemberType NoteProperty | ForEach-Object { + Write-Host "Editing user and adding custom data $($_.Name) with value $($UserObj.customData.$($_.Name))" + if (-not [string]::IsNullOrWhiteSpace($UserObj.customData.$($_.Name))) { + Write-Host 'adding custom data to body' + $BodyToShip | Add-Member -NotePropertyName $_.Name -NotePropertyValue $UserObj.customData.$($_.Name) -Force + } + } + } + $bodyToShip = ConvertTo-Json -Depth 10 -InputObject $BodyToship -Compress + Write-Host "Shipping: $bodyToShip" + $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/users' -tenantId $UserObj.tenantFilter -type POST -body $BodyToship -verbose + Write-LogMessage -headers $Headers -API $APIName -tenant $($UserObj.tenantFilter) -message "Created user $($UserObj.displayName) with id $($GraphRequest.id)" -Sev 'Info' + + try { + $PasswordLink = New-PwPushLink -Payload $password + if ($PasswordLink) { + $password = $PasswordLink + } + } catch { + + } + $Results = @{ + Results = ('Created New User.') + Username = $UserPrincipalName + Password = $password + User = $GraphRequest + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create user. Error:$($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($UserObj.tenantFilter) -message "Failed to create user. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + $Results = @{ Results = $Result } + throw $Result + } + return $Results +} + diff --git a/Modules/CIPPCore/Public/Remove-CIPPAutopilotProfile.ps1 b/Modules/CIPPCore/Public/Remove-CIPPAutopilotProfile.ps1 new file mode 100644 index 000000000000..f1a06bbf1e46 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPAutopilotProfile.ps1 @@ -0,0 +1,67 @@ +function Remove-CIPPAutopilotProfile { + param( + $ProfileId, + $DisplayName, + $TenantFilter, + $Assignments, + $Headers, + $APIName = 'Remove Autopilot Profile' + ) + + + try { + + try { + $DisplayName = $null -eq $DisplayName ? $ProfileId : $DisplayName + if ($Assignments.Count -gt 0) { + Write-Host "Profile $ProfileId has $($Assignments.Count) assignments, removing them first" + throw + } + + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId" -tenantid $TenantFilter -type DELETE + $Result = "Successfully deleted Autopilot profile '$($DisplayName)'" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + return $Result + } catch { + + # Profile could not be deleted, there is probably an assignment still referencing it. The error is bloody useless here, and we just need to try some stuff + if ($null -eq $Assignments) { + $Assignments = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId/assignments" -tenantid $TenantFilter + } + + # Remove all assignments + if ($Assignments -and $Assignments.Count -gt 0) { + foreach ($Assignment in $Assignments) { + try { + # Use the assignment ID directly as provided by the API + $AssignmentId = $Assignment.id + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId/assignments/$AssignmentId" -tenantid $TenantFilter -type DELETE + + } catch { + # Handle the case where the assignment might reference a deleted group + try { + if ($Assignment.target -and $Assignment.target.'@odata.type' -eq '#microsoft.graph.groupAssignmentTarget') { + $GroupId = $Assignment.target.groupId + $AlternativeAssignmentId = "${ProfileId}_${GroupId}" + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId/assignments/$AlternativeAssignmentId" -tenantid $TenantFilter -type DELETE + } + } catch { + throw "Could not remove assignment $AssignmentId" + } + } + } + } + # Retry deleting the profile after removing assignments + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$ProfileId" -tenantid $TenantFilter -type DELETE + $Result = "Successfully deleted Autopilot profile '$($DisplayName)' " + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + return $Result + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $ErrorText = "Failed to delete Autopilot profile $ProfileId. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $ErrorText -Sev 'Error' -LogData $ErrorMessage + throw $ErrorText + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPCalendarInvites.ps1 b/Modules/CIPPCore/Public/Remove-CIPPCalendarInvites.ps1 new file mode 100644 index 000000000000..4c2919398974 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPCalendarInvites.ps1 @@ -0,0 +1,23 @@ +function Remove-CIPPCalendarInvites { + [CmdletBinding()] + param( + $UserID, + $TenantFilter, + $Username, + $APIName = 'Remove Calendar Invites', + $Headers + ) + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-CalendarEvents' -Anchor $Username -cmdParams @{Identity = $Username; QueryWindowInDays = 730 ; CancelOrganizedMeetings = $true ; Confirm = $false } + $Result = "Successfully cancelled all calendar invites for $($Username)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' -tenant $TenantFilter + return $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to cancel calendar invites for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPGroup.ps1 b/Modules/CIPPCore/Public/Remove-CIPPGroup.ps1 new file mode 100644 index 000000000000..3f1bdafec13a --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPGroup.ps1 @@ -0,0 +1,33 @@ +function Remove-CIPPGroup { + [CmdletBinding()] + param ( + $Headers, + $GroupType, + $ID, + $DisplayName, + $APIName = 'Remove Group', + $TenantFilter + ) + + try { + if ($GroupType -eq 'Distribution List' -or $GroupType -eq 'Mail-Enabled Security') { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-DistributionGroup' -cmdParams @{Identity = $ID; BypassSecurityGroupManagerCheck = $true } -useSystemMailbox $true + Write-LogMessage -headers $Headers -API $APINAME -tenant $($TenantFilter) -message "$($DisplayName) Deleted" -Sev 'Info' + return "Successfully Deleted $($GroupType) group $($DisplayName)" + + } elseif ($GroupType -eq 'Microsoft 365' -or $GroupType -eq 'Security') { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/groups/$($ID)" -tenantid $TenantFilter -type Delete -verbose + Write-LogMessage -headers $Headers -API $APINAME -tenant $($TenantFilter) -message "$($DisplayName) Deleted" -Sev 'Info' + return "Successfully Deleted $($GroupType) group $($DisplayName)" + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Could not delete $DisplayName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} + + + diff --git a/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 b/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 new file mode 100644 index 000000000000..1880d4c4960f --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 @@ -0,0 +1,126 @@ +function Remove-CIPPGroupMember { + <# + .SYNOPSIS + Removes members from a Microsoft 365 group. + + .DESCRIPTION + Removes one or more members from Security Groups, Distribution Groups, or Mail-Enabled Security Groups. + Uses bulk request operations for Exchange groups to improve performance. + + .PARAMETER Headers + The headers for the API request, typically containing authentication information. + + .PARAMETER TenantFilter + The tenant identifier for the target tenant. + + .PARAMETER GroupType + The type of group. Valid values: 'Distribution list', 'Mail-Enabled Security', or standard security groups. + + .PARAMETER GroupId + The unique identifier (GUID or name) of the group. + + .PARAMETER Member + An array of member identifiers (user GUIDs or UPNs) to remove from the group. + + .PARAMETER APIName + The API operation name for logging purposes. Default: 'Remove Group Member'. + + .EXAMPLE + Remove-CIPPGroupMember -Headers $Headers -TenantFilter 'contoso.onmicrosoft.com' -GroupType 'Distribution list' -GroupId 'Sales-DL' -Member @('user1@contoso.com', 'user2@contoso.com') -APIName 'Remove DL Members' + + .EXAMPLE + Remove-CIPPGroupMember -Headers $Headers -TenantFilter 'contoso.onmicrosoft.com' -GroupType 'Security' -GroupId '12345-guid' -Member @('user1-guid') + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$GroupType, + + [Parameter(Mandatory = $true)] + [string]$GroupId, + + [Parameter(Mandatory = $true)] + [string[]]$Member, + + [Parameter(Mandatory = $false)] + [string]$APIName = 'Remove Group Member', + + $Headers + ) + + try { + $Requests = foreach ($m in $Member) { + if ($m -like '*#EXT#*') { $m = [System.Web.HttpUtility]::UrlEncode($m) } + @{ + id = $m + url = "users/$($m)?`$select=id,userPrincipalName" + method = 'GET' + } + } + $Users = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + + if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + + foreach ($User in $Users) { + $Params = @{ Identity = $GroupId; Member = $User.body.userPrincipalName; BypassSecurityGroupManagerCheck = $true } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Removed member $($User.body.userPrincipalName) from $($GroupId) group" + target = $User.body.userPrincipalName + }) + } + + if ($ExoBulkRequests.Count -gt 0) { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + throw $ExoError + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } + } + } + } else { + $RemovalRequests = foreach ($User in $Users) { + @{ + id = $User.body.id + method = 'DELETE' + url = "/groups/$($GroupId)/members/$($User.body.id)/`$ref" + } + } + $RemovalResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($RemovalRequests) + foreach ($Result in $RemovalResults) { + if ($Result.status -ne 204) { + throw "Failed to remove member $($Result.id): $($Result.body.error.message)" + } + } + } + $UserList = ($Users.body.userPrincipalName -join ', ') + $Results = "Successfully removed user $UserList from $($GroupId)." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev Info + return $Results + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $UserList = if ($Users) { ($Users.body.userPrincipalName -join ', ') } else { ($Member -join ', ') } + $Results = "Failed to remove user $UserList from $($GroupId): $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev Error -LogData $ErrorMessage + throw $Results + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 b/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 new file mode 100644 index 000000000000..527de771990e --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 @@ -0,0 +1,137 @@ +function Remove-CIPPGroups { + [CmdletBinding()] + param( + $Username, + $TenantFilter, + $APIName = 'Remove From Groups', + $Headers, + $UserID + ) + + if (-not $userid) { + $UserID = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter).id + } + $AllGroups = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/?`$select=displayName,mailEnabled,id,groupTypes,assignedLicenses,onPremisesSyncEnabled,membershipRule&`$top=999" -tenantid $TenantFilter) + + # Get user's groups + $UserGroups = (New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)/GetMemberGroups" -tenantid $TenantFilter -type POST -body '{"securityEnabledOnly": false}').value + + if (-not $UserGroups) { + $Returnval = "$($Username) is not a member of any groups." + Write-LogMessage -headers $Headers -API $APIName -message "$($Username) is not a member of any groups" -Sev 'Info' -tenant $TenantFilter + return $Returnval + } + + # Initialize bulk request arrays and results + $BulkRequests = [System.Collections.Generic.List[object]]::new() + $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() + $GraphLogs = [System.Collections.Generic.List[object]]::new() + $ExoLogs = [System.Collections.Generic.List[object]]::new() + $Results = [System.Collections.Generic.List[string]]::new() + + # Process each group and prepare bulk requests + foreach ($Group in $UserGroups) { + $GroupInfo = $AllGroups | Where-Object -Property id -EQ $Group + $GroupName = $GroupInfo.displayName + $IsMailEnabled = $GroupInfo.mailEnabled + $IsM365Group = $null -ne ($AllGroups | Where-Object { $_.id -eq $Group -and $_.groupTypes -contains 'Unified' }) + $IsLicensed = $GroupInfo.assignedLicenses.Count -gt 0 + $IsDynamic = -not [string]::IsNullOrWhiteSpace($GroupInfo.membershipRule) + + if ($IsLicensed) { + $Results.Add("Could not remove $Username from group '$GroupName' because it has assigned licenses. These groups are removed during the license removal step.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it has assigned licenses. These groups are removed during the license removal step." -Sev 'Warning' -tenant $TenantFilter + } elseif ($IsDynamic) { + $Results.Add("Error: Could not remove $Username from group '$GroupName' because it is a Dynamic Group.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it is a Dynamic Group." -Sev 'Warning' -tenant $TenantFilter + } elseif ($GroupInfo.onPremisesSyncEnabled) { + $Results.Add("Error: Could not remove $Username from group '$GroupName' because it is synced with Active Directory.") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$GroupName' because it is synced with Active Directory." -Sev 'Warning' -tenant $TenantFilter + } else { + if ($IsM365Group -or (-not $IsMailEnabled)) { + # Use Graph API for M365 Groups and Security Groups + $BulkRequests.Add(@{ + id = "removeFromGroup-$Group" + method = 'DELETE' + url = "groups/$Group/members/$UserID/`$ref" + }) + $GraphLogs.Add(@{ + message = "Removed $Username from $GroupName" + id = "removeFromGroup-$Group" + groupName = $GroupName + }) + } elseif ($IsMailEnabled) { + # Use Exchange Online for Distribution Lists + $Params = @{ + Identity = $GroupName + Member = $UserID + BypassSecurityGroupManagerCheck = $true + } + $ExoBulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = $Params + } + }) + $ExoLogs.Add(@{ + message = "Removed $Username from $GroupName" + target = $UserID + groupName = $GroupName + }) + } + } + } + + # Execute Graph bulk requests + if ($BulkRequests.Count -gt 0) { + try { + $RawGraphRequest = New-GraphBulkRequest -tenantid $TenantFilter -scope 'https://graph.microsoft.com/.default' -Requests @($BulkRequests) -asapp $true + + foreach ($GraphLog in $GraphLogs) { + $GraphError = $RawGraphRequest | Where-Object { $_.id -eq $GraphLog.id -and $_.status -notmatch '^2[0-9]+' } + if ($GraphError) { + $Message = Get-NormalizedError -message $GraphError.body.error + $Results.Add("Could not remove $Username from group '$($GraphLog.groupName)': $Message. This is likely because it's a Dynamic Group or synced with Active Directory") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from group '$($GraphLog.groupName)': $Message" -Sev 'Error' -tenant $TenantFilter + } else { + $Results.Add("Successfully removed $Username from group '$($GraphLog.groupName)'") + Write-LogMessage -headers $Headers -API $APIName -message $GraphLog.message -Sev 'Info' -tenant $TenantFilter + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Error executing Graph bulk requests: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $Results.Add("Error executing bulk removal requests: $($ErrorMessage.NormalizedError)") + } + } + + # Execute Exchange Online bulk requests + if ($ExoBulkRequests.Count -gt 0) { + try { + $RawExoRequest = New-ExoBulkRequest -tenantid $TenantFilter -cmdletArray @($ExoBulkRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + + foreach ($ExoError in $LastError.error) { + $Results.Add("Error - $ExoError") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoError -Sev 'Error' + } + + foreach ($ExoLog in $ExoLogs) { + $ExoError = $LastError | Where-Object { $ExoLog.target -in $_.target -and $_.error } + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $ExoLog.target)) { + $Results.Add("Successfully removed $Username from group $($ExoLog.groupName)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $ExoLog.message -Sev 'Info' + } else { + $Results.Add("Could not remove $Username from $($ExoLog.groupName). This is likely because its a Dynamic Group or synched with active directory") + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove $Username from $($ExoLog.groupName)" -Sev 'Error' -tenant $TenantFilter + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Error executing Exchange bulk requests: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + $Results.Add("Error executing bulk Exchange requests: $($ErrorMessage.NormalizedError)") + } + } + + return $Results +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 b/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 new file mode 100644 index 000000000000..3b18b54b0678 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 @@ -0,0 +1,92 @@ +function Remove-CIPPLicense { + [CmdletBinding(SupportsShouldProcess = $true)] + param ( + $Headers, + $userid, + $username, + $APIName = 'Remove License', + $TenantFilter, + [switch]$Schedule + ) + + if ($Schedule.IsPresent) { + $ScheduledTask = @{ + TenantFilter = $TenantFilter + Name = "Remove License: $Username" + Command = @{ + value = 'Remove-CIPPLicense' + } + Parameters = [pscustomobject]@{ + userid = $userid + username = $username + APIName = 'Scheduled License Removal' + Headers = $Headers + } + ScheduledTime = [int64](([datetime]::UtcNow).AddMinutes(5) - (Get-Date '1/1/1970')).TotalSeconds + PostExecution = @{ + Webhook = $false + Email = $false + PSA = $false + } + } + Add-CIPPScheduledTask -Task $ScheduledTask -hidden $false + return "Scheduled license removal for $username" + } else { + try { + $ModuleBase = Get-Module -Name CIPPCore | Select-Object -ExpandProperty ModuleBase + $ConvertTable = Import-Csv (Join-Path $ModuleBase 'lib\data\ConversionTable.csv') + $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)" -tenantid $tenantFilter + $GroupMemberships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/memberOf/microsoft.graph.group?`$select=id,displayName,assignedLicenses" -tenantid $tenantFilter + $LicenseGroups = $GroupMemberships | Where-Object { ($_.assignedLicenses | Measure-Object).Count -gt 0 } + + if ($LicenseGroups) { + # remove user from groups with licenses, these can only be graph groups + $RemoveRequests = foreach ($LicenseGroup in $LicenseGroups) { + @{ + id = $LicenseGroup.id + method = 'DELETE' + url = "groups/$($LicenseGroup.id)/members/$($User.id)/`$ref" + } + } + + Write-Information 'Removing user from groups with licenses' + $RemoveResults = New-GraphBulkRequest -tenantid $tenantFilter -requests @($RemoveRequests) + Write-Information ($RemoveResults | ConvertTo-Json -Depth 5) + $RemoveResults | ForEach-Object { + $Group = $GroupMemberships | Where-Object { $_.id -eq $_.id } + $GroupName = $Group | Select-Object -ExpandProperty displayName + + if ($_.status -eq 204) { + Write-LogMessage -headers $Headers -API $APIName -message "Removed $($User.displayName) from license group $GroupName" -Sev 'Info' -tenant $TenantFilter + "Removed $($User.displayName) from license group $GroupName" + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to remove $($User.displayName) from license group $GroupName. This is likely because its a Dynamic Group or synced with active directory." -Sev 'Error' -tenant $TenantFilter + "Failed to remove $($User.displayName) from license group $GroupName. This is likely because its a Dynamic Group or synced with active directory." + } + } + } + + if (!$username) { $username = $User.userPrincipalName } + $CurrentLicenses = $User.assignedlicenses.skuid + $ConvertedLicense = $(($ConvertTable | Where-Object { $_.guid -in $CurrentLicenses }).'Product_Display_Name' | Sort-Object -Unique) -join ', ' + if ($CurrentLicenses) { + $LicensePayload = [PSCustomObject]@{ + addLicenses = @() + removeLicenses = @($CurrentLicenses) + } + if ($PSCmdlet.ShouldProcess($userid, "Remove licenses: $ConvertedLicense")) { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/assignlicense" -tenantid $tenantFilter -type POST -body (ConvertTo-Json -InputObject $LicensePayload -Compress -Depth 5) -verbose + Write-LogMessage -headers $Headers -API $APIName -message "Removed licenses for $($username): $ConvertedLicense" -Sev 'Info' -tenant $TenantFilter + } + return "Removed licenses for $($Username): $ConvertedLicense" + } else { + Write-LogMessage -headers $Headers -API $APIName -message "No licenses to remove for $username" -Sev 'Info' -tenant $TenantFilter + return "No licenses to remove for $username" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove license for $username. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + return "Could not remove license for $($username). Error: $($ErrorMessage.NormalizedError)" + } + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPMailboxPermissions.ps1 b/Modules/CIPPCore/Public/Remove-CIPPMailboxPermissions.ps1 new file mode 100644 index 000000000000..dc934b29088d --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPMailboxPermissions.ps1 @@ -0,0 +1,66 @@ +function Remove-CIPPMailboxPermissions { + [CmdletBinding()] + param ( + $userid, + $AccessUser, + $TenantFilter, + $PermissionsLevel, + $APIName = 'Manage Shared Mailbox Access', + $Headers + ) + + try { + if ($userid -eq 'AllUsers') { + $Mailboxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -Select UserPrincipalName + $Mailboxes | ForEach-Object -Parallel { + Import-Module '.\Modules\AzBobbyTables' + Import-Module '.\Modules\CIPPCore' + Write-Host "Removing permissions from mailbox $($_.UserPrincipalName)" + Remove-CIPPMailboxPermissions -PermissionsLevel @('FullAccess', 'SendAs', 'SendOnBehalf') -userid $_.UserPrincipalName -AccessUser $using:AccessUser -TenantFilter $using:TenantFilter -APIName $using:APINAME -Headers $using:Headers + } -ThrottleLimit 10 + } else { + $Results = $PermissionsLevel | ForEach-Object { + switch ($_) { + 'SendOnBehalf' { + $MailboxPerms = New-ExoRequest -Anchor $UserId -tenantid $Tenantfilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $userid; GrantSendonBehalfTo = @{'@odata.type' = '#Exchange.GenericHashTable'; remove = $AccessUser }; } + if ($MailboxPerms -notlike '*completed successfully but no settings of*') { + Write-LogMessage -headers $Headers -API $APIName -message "Removed SendOnBehalf permissions for $($AccessUser) from $($userid)'s mailbox." -Sev 'Info' -tenant $TenantFilter + "Removed SendOnBehalf permissions for $($AccessUser) from $($userid)'s mailbox." + } + } + 'SendAS' { + $MailboxPerms = New-ExoRequest -Anchor $userId -tenantid $Tenantfilter -cmdlet 'Remove-RecipientPermission' -cmdParams @{Identity = $userid; Trustee = $AccessUser; accessRights = @('SendAs') } + if ($MailboxPerms -notlike "*because the ACE isn't present*") { + Write-LogMessage -headers $Headers -API $APIName -message "Removed SendAs permissions for $($AccessUser) from $($userid)'s mailbox." -Sev 'Info' -tenant $TenantFilter + "Removed SendAs permissions for $($AccessUser) from $($userid)'s mailbox." + } + } + 'FullAccess' { + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Remove-MailboxPermission' + cmdParams = @{ + Identity = $userid + user = $AccessUser + accessRights = @('FullAccess') + Verbose = $true + } + Anchor = $userid + } + $permissions = New-ExoRequest @ExoRequest + + if ($permissions -notlike "*because the ACE doesn't exist on the object.*") { + Write-LogMessage -headers $Headers -API $APIName -message "Removed FullAccess permissions for $($AccessUser) from $($userid)'s mailbox." -Sev 'Info' -tenant $TenantFilter + "Removed FullAccess permissions for $($AccessUser) from $($userid)'s mailbox." + } + } + } + } + } + return $Results + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Could not remove mailbox permissions for $($userid). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + return "Could not remove mailbox permissions for $($userid). Error: $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPMailboxRule.ps1 b/Modules/CIPPCore/Public/Remove-CIPPMailboxRule.ps1 new file mode 100644 index 000000000000..579c7f2d4801 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPMailboxRule.ps1 @@ -0,0 +1,52 @@ +function Remove-CIPPMailboxRule { + [CmdletBinding()] + param ( + $UserId, + $Username, + $TenantFilter, + $APIName = 'Mailbox Rules Removal', + $Headers, + $RuleId, + $RuleName, + [switch]$RemoveAllRules + ) + + if ($RemoveAllRules.IsPresent -eq $true) { + # Delete all rules + try { + Write-Host "Checking rules for $Username" + $Rules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $Username; IncludeHidden = $true } | Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } + Write-Host "$($Rules.count) rules found" + if ($null -eq $Rules) { + $Message = "No rules found for $($Username) to delete" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter + return $Message + } else { + ForEach ($rule in $Rules) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-InboxRule' -Anchor $Username -cmdParams @{Identity = $rule.Identity } + } + $Message = "Successfully deleted all rules for $($Username)" + Write-LogMessage -headers $Headers -API $APIName -message "Deleted rules for $($Username)" -Sev 'Info' -tenant $TenantFilter + return $Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to delete rules for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } + } else { + # Only delete 1 rule + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-InboxRule' -Anchor $Username -cmdParams @{Identity = $RuleId } + $Message = "Successfully deleted mailbox rule $($RuleName) for $($Username)" + Write-LogMessage -headers $Headers -API $APIName -message "Deleted mailbox rule $($RuleName) for $($Username)" -Sev 'Info' -tenant $TenantFilter + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to delete rule for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPMobileDevice.ps1 b/Modules/CIPPCore/Public/Remove-CIPPMobileDevice.ps1 new file mode 100644 index 000000000000..e436fce09d5c --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPMobileDevice.ps1 @@ -0,0 +1,37 @@ +function Remove-CIPPMobileDevice { + [CmdletBinding()] + param( + $UserId, + $TenantFilter, + $Username, + $APIName = 'Remove Mobile', + $Headers + ) + + try { + $RemovedDevices = [System.Collections.Generic.List[string]]::new() + $ErrorDevices = [System.Collections.Generic.List[string]]::new() + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MobileDevice' -Anchor $Username -cmdParams @{mailbox = $Username } | ForEach-Object { + try { + $MobileDevice = $_ + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MobileDevice' -Anchor $Username -cmdParams @{Identity = $MobileDevice.Identity } + $RemovedDevices.Add("$($MobileDevice.FriendlyName)") + } catch { + $ErrorDevices.Add("$($MobileDevice.FriendlyName)") + } + } + if ($ErrorDevices.Count -eq 0) { + $Message = "Successfully removed $($RemovedDevices.Count) mobile devices for $($Username): $($RemovedDevices -join '; ')" + } else { + $Message = "Failed to remove all mobile devices for $($Username). Successfully removed $($RemovedDevices.Count) mobile devices: $($RemovedDevices -join '; '). Failed to remove $($ErrorDevices.Count) mobile devices: $($ErrorDevices -join '; ')" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter + } + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove mobile devices for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} + diff --git a/Modules/CIPPCore/Public/Remove-CIPPTrustedBlockedSender.ps1 b/Modules/CIPPCore/Public/Remove-CIPPTrustedBlockedSender.ps1 new file mode 100644 index 000000000000..64b5649b81a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPTrustedBlockedSender.ps1 @@ -0,0 +1,30 @@ +function Remove-CIPPTrustedBlockedSender { + [CmdletBinding()] + param ( + [string]$UserPrincipalName, + [string]$TenantFilter, + [string]$APIName = 'Trusted/Blocked Sender Removal', + $Headers, + [string]$TypeProperty, + [string]$Value + ) + + try { + + # Set the updated configuration + $SetParams = @{ + Identity = $UserPrincipalName + $TypeProperty = @{'@odata.type' = '#Exchange.GenericHashTable'; Remove = $Value } + } + + $null = New-ExoRequest -Anchor $UserPrincipalName -tenantid $TenantFilter -cmdlet 'Set-MailboxJunkEmailConfiguration' -cmdParams $SetParams + $Message = "Successfully removed '$Value' from $TypeProperty for $($UserPrincipalName)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove junk email configuration entry for $($UserPrincipalName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPUser.ps1 b/Modules/CIPPCore/Public/Remove-CIPPUser.ps1 new file mode 100644 index 000000000000..92b9ae2c7529 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPUser.ps1 @@ -0,0 +1,29 @@ +function Remove-CIPPUser { + [CmdletBinding()] + param ( + $Headers, + [parameter(Mandatory = $true)] + [string]$UserID, + [string]$Username, + $APIName = 'Remove User', + $TenantFilter + ) + + + + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)" -type DELETE -tenant $TenantFilter + $Result = "Successfully deleted user with ID: '$UserID'" + if (-not [string]::IsNullOrEmpty($Username)) { $Result += " and Username: '$Username'" } + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' -tenant $TenantFilter + return $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to delete user with ID: '$UserID'. Error: $($ErrorMessage.NormalizedError)" + if (-not [string]::IsNullOrEmpty($Username)) { $Result += " and Username: '$Username'" } + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} + diff --git a/Modules/CIPPCore/Public/Remove-CIPPUserMFA.ps1 b/Modules/CIPPCore/Public/Remove-CIPPUserMFA.ps1 new file mode 100644 index 000000000000..722d0b73a616 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPUserMFA.ps1 @@ -0,0 +1,79 @@ +function Remove-CIPPUserMFA { + <# + .SYNOPSIS + Remove MFA methods for a user + + .DESCRIPTION + Remove MFA methods for a user using bulk requests to the Microsoft Graph API + + .PARAMETER UserPrincipalName + UserPrincipalName of the user to remove MFA methods for + + .PARAMETER TenantFilter + Tenant where the user resides + + .EXAMPLE + Remove-CIPPUserMFA -UserPrincipalName testuser@contoso.com -TenantFilter contoso.com + + #> + [CmdletBinding(SupportsShouldProcess = $true)] + Param( + [Parameter(Mandatory = $true)] + [string]$UserPrincipalName, + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $false)] + $Headers, + [Parameter(Mandatory = $false)] + $APIName = 'Remove MFA Methods' + ) + + Write-Information "Getting auth methods for $UserPrincipalName" + try { + $AuthMethods = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$UserPrincipalName/authentication/methods" -tenantid $TenantFilter -AsApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to get MFA methods for user $UserPrincipalName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -sev 'Error' -LogData $ErrorMessage + throw $Message + } + + $Requests = [System.Collections.Generic.List[object]]::new() + foreach ($Method in $AuthMethods) { + if ($Method.'@odata.type' -and $Method.'@odata.type' -ne '#microsoft.graph.passwordAuthenticationMethod') { + $MethodType = ($Method.'@odata.type' -split '\.')[-1] -replace 'Authentication', '' + $Requests.Add(@{ + id = "$MethodType-$($Method.id)" + method = 'DELETE' + url = ('users/{0}/authentication/{1}s/{2}' -f $UserPrincipalName, $MethodType, $Method.id) + }) + } + } + + if (($Requests | Measure-Object).Count -eq 0) { + $Results = "No MFA methods found for user $UserPrincipalName" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev 'Info' + return $Results + } else { + if ($PSCmdlet.ShouldProcess("Remove MFA methods for $UserPrincipalName")) { + try { + $Results = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter -asapp $true -ErrorAction Stop + if ($Results.status -eq 204) { + $Message = "Successfully removed MFA methods for user $UserPrincipalName. User must supply MFA at next logon" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -sev 'Info' + return $Message + } else { + $FailedAuthMethods = (($Results | Where-Object { $_.status -ne 204 }).id -split '-')[0] -join ', ' + $Message = "Failed to remove MFA methods for $FailedAuthMethods on user $UserPrincipalName" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -sev 'Error' + throw $Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove MFA methods for user $UserPrincipalName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -sev 'Error' -LogData $ErrorMessage + throw $Message + } + } + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPUserTeamsPhoneDIDs.ps1 b/Modules/CIPPCore/Public/Remove-CIPPUserTeamsPhoneDIDs.ps1 new file mode 100644 index 000000000000..7630e7ce05ad --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPUserTeamsPhoneDIDs.ps1 @@ -0,0 +1,98 @@ +using namespace System.Net +using namespace System.Collections.Generic + +function Remove-CIPPUserTeamsPhoneDIDs { + [CmdletBinding()] + param ( + $Headers, + [parameter(Mandatory = $true)] + [string]$UserID, + [string]$Username, + $APIName = 'Remove User Teams Phone DIDs', + [parameter(Mandatory = $true)] + $TenantFilter + ) + + try { + + # Set Username to UserID if not provided + if ([string]::IsNullOrEmpty($Username)) { + $Username = $UserID + } + + # Initialize collections for results + $Results = [List[string]]::new() + $SuccessCount = 0 + $ErrorCount = 0 + + # Get all tenant DIDs + $TeamsPhoneDIDs = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/admin/teams/telephoneNumberManagement/numberAssignments" -tenant $TenantFilter + + if (-not $TeamsPhoneDIDs -or $TeamsPhoneDIDs.Count -eq 0) { + $Result = "No Teams Phone DIDs found in tenant" + $Results.Add($Result) + return $Results.ToArray() + } + + # Filter DIDs assigned to the specific user + $UserDIDs = $TeamsPhoneDIDs | Where-Object { $_.assignmentTargetId -eq $UserID -and $_.assignmentStatus -ne 'unassigned' } + + if (-not $UserDIDs -or $UserDIDs.Count -eq 0) { + $Result = "No Teams Phone DIDs found assigned to user: '$Username' - '$UserID'" + $Results.Add($Result) + return $Results.ToArray() + } + + # Prepare bulk requests for all DIDs + $RemoveRequests = foreach ($DID in $UserDIDs) { + @{ + id = $DID.telephoneNumber + method = 'POST' + url = "admin/teams/telephoneNumberManagement/numberAssignments/unassignNumber" + body = @{ + telephoneNumber = $DID.telephoneNumber + numberType = $DID.numberType + } + } + } + + # Execute bulk request + $RemoveResults = New-GraphBulkRequest -tenantid $TenantFilter -requests @($RemoveRequests) + + # Process results + $RemoveResults | ForEach-Object { + $PhoneNumber = $_.id + + if ($_.status -eq 204) { + $SuccessResult = "Successfully removed Teams Phone DID: '$PhoneNumber' from: '$Username' - '$UserID'" + Write-LogMessage -headers $Headers -API $APIName -message $SuccessResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($SuccessResult) + $SuccessCount++ + } else { + $ErrorMessage = if ($_.body.error.message) { + $_.body.error.message + } else { + "HTTP Status: $($_.status)" + } + + $ErrorResult = "Failed to remove Teams Phone DID: '$PhoneNumber' from: '$Username' - '$UserID'. Error: $ErrorMessage" + Write-LogMessage -headers $Headers -API $APIName -message $ErrorResult -Sev 'Error' -tenant $TenantFilter + $Results.Add($ErrorResult) + $ErrorCount++ + } + } + + # Add summary result + $SummaryResult = "Completed processing $($UserDIDs.Count) DIDs for user '$Username': $SuccessCount successful, $ErrorCount failed" + Write-LogMessage -headers $Headers -API $APIName -message $SummaryResult -Sev 'Info' -tenant $TenantFilter + $Results.Add($SummaryResult) + + return $Results.ToArray() + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to process Teams Phone DIDs removal for: '$Username' - '$UserID'. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Request-CIPPSPOPersonalSite.ps1 b/Modules/CIPPCore/Public/Request-CIPPSPOPersonalSite.ps1 new file mode 100644 index 000000000000..46afa2f3d333 --- /dev/null +++ b/Modules/CIPPCore/Public/Request-CIPPSPOPersonalSite.ps1 @@ -0,0 +1,52 @@ +function Request-CIPPSPOPersonalSite { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string[]]$UserEmails, + [string]$Headers = 'CIPP', + [string]$APIName = 'Request-CIPPSPOPersonalSite' + ) + $UserList = [System.Collections.Generic.List[string]]::new() + foreach ($User in $UserEmails) { + $UserList.Add("$User") + } + + $XML = @" + + + + + + + + + + + + + + + + $($UserList -join '') + + + + + +"@ + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + try { + $Request = New-GraphPostRequest -scope "$($SharePointInfo.AdminUrl)/.default" -tenantid $TenantFilter -Uri "$($SharePointInfo.AdminUrl)/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' + if (!$Request.IsComplete) { throw } + Write-LogMessage -headers $Headers -API $APIName -message "Requested personal site for $($UserEmails -join ', ')" -Sev 'Info' -tenant $TenantFilter + return "Successfully requested personal site for $($UserEmails -join ', ')" + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to request personal site for $($UserEmails -join ', '). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Revoke-CIPPSessions.ps1 b/Modules/CIPPCore/Public/Revoke-CIPPSessions.ps1 new file mode 100644 index 000000000000..2718233be838 --- /dev/null +++ b/Modules/CIPPCore/Public/Revoke-CIPPSessions.ps1 @@ -0,0 +1,23 @@ +function Revoke-CIPPSessions { + [CmdletBinding()] + param ( + $Headers, + $UserID, + $Username, + $APIName = 'Revoke Sessions', + $TenantFilter + ) + + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)/invalidateAllRefreshTokens" -tenantid $TenantFilter -type POST -body '{}' -verbose + $Result = "Successfully revoked sessions for $($Username)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' -tenant $TenantFilter + return $Result + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to revoke sessions for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 b/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 new file mode 100644 index 000000000000..c63ff4872094 --- /dev/null +++ b/Modules/CIPPCore/Public/SAMManifest/Update-CippSamPermissions.ps1 @@ -0,0 +1,79 @@ +function Update-CippSamPermissions { + <# + .SYNOPSIS + Updates CIPP-SAM app permissions by merging missing permissions. + .DESCRIPTION + Retrieves current SAM permissions, merges any missing permissions, and updates the AppPermissions table. + .PARAMETER UpdatedBy + The user or system that is performing the update. Defaults to 'CIPP-API'. + .OUTPUTS + String indicating the result of the operation. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$UpdatedBy = 'CIPP-API' + ) + + try { + $CurrentPermissions = Get-CippSamPermissions + + if (($CurrentPermissions.MissingPermissions | Measure-Object).Count -eq 0) { + return 'No permissions to update' + } + + Write-Information 'Missing permissions found' + $MissingPermissions = $CurrentPermissions.MissingPermissions + $Permissions = $CurrentPermissions.Permissions + + $AppIds = @($Permissions.PSObject.Properties.Name + $MissingPermissions.PSObject.Properties.Name) + $NewPermissions = @{} + + foreach ($AppId in $AppIds) { + if (!$AppId) { continue } + $ApplicationPermissions = [system.collections.generic.list[object]]::new() + $DelegatedPermissions = [system.collections.generic.list[object]]::new() + + foreach ($Permission in $Permissions.$AppId.applicationPermissions) { + $ApplicationPermissions.Add($Permission) + } + if (($MissingPermissions.$AppId.applicationPermissions | Measure-Object).Count -gt 0) { + foreach ($MissingPermission in $MissingPermissions.$AppId.applicationPermissions) { + Write-Host "Adding missing permission: $MissingPermission" + $ApplicationPermissions.Add($MissingPermission) + } + } + + foreach ($Permission in $Permissions.$AppId.delegatedPermissions) { + $DelegatedPermissions.Add($Permission) + } + if (($MissingPermissions.$AppId.delegatedPermissions | Measure-Object).Count -gt 0) { + foreach ($MissingPermission in $MissingPermissions.$AppId.delegatedPermissions) { + Write-Host "Adding missing permission: $MissingPermission" + $DelegatedPermissions.Add($MissingPermission) + } + } + + $NewPermissions.$AppId = @{ + applicationPermissions = @($ApplicationPermissions | Sort-Object -Property label) + delegatedPermissions = @($DelegatedPermissions | Sort-Object -Property label) + } + } + + $Entity = @{ + 'PartitionKey' = 'CIPP-SAM' + 'RowKey' = 'CIPP-SAM' + 'Permissions' = [string]([PSCustomObject]$NewPermissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = $UpdatedBy + } + + $Table = Get-CIPPTable -TableName 'AppPermissions' + $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + Write-LogMessage -API 'UpdateCippSamPermissions' -message 'CIPP-SAM Permissions Updated' -Sev 'Info' -LogData $NewPermissions + + return 'Permissions Updated' + } catch { + throw "Failed to update permissions: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Search-CIPPDbData.ps1 b/Modules/CIPPCore/Public/Search-CIPPDbData.ps1 new file mode 100644 index 000000000000..1ef40a996260 --- /dev/null +++ b/Modules/CIPPCore/Public/Search-CIPPDbData.ps1 @@ -0,0 +1,174 @@ +function Search-CIPPDbData { + <# + .SYNOPSIS + Universal search function for CIPP Reporting DB data + + .DESCRIPTION + Searches JSON objects in the CIPP Reporting DB for matching search terms. + Supports wildcard and regular expression searches across multiple data types. + Returns results as a flat list with Type property included. + + .PARAMETER TenantFilter + Optional tenant domain or GUID to filter search. If not specified, searches all tenants. + + .PARAMETER SearchTerms + Search terms to look for. Uses regex matching by default (special characters are escaped). + Can be a single string or array of strings. + + .PARAMETER Types + Array of data types to search. If not specified, searches all available types. + Valid types: Users, Domains, ConditionalAccessPolicies, ManagedDevices, Organization, + Groups, Roles, LicenseOverview, IntuneDeviceCompliancePolicies, SecureScore, + SecureScoreControlProfiles, Mailboxes, CASMailbox, MailboxPermissions, OneDriveUsage, MailboxUsage + + .PARAMETER MatchAll + If specified, all search terms must be found. Default is false (any term matches). + + .PARAMETER MaxResultsPerType + Maximum number of results to return per type. Default is unlimited (0) + + .EXAMPLE + Search-CIPPDbData -TenantFilter 'contoso.onmicrosoft.com' -SearchTerms 'john.doe' -Types 'Users', 'Groups' + + .EXAMPLE + Search-CIPPDbData -SearchTerms 'admin' -Types 'Users' + + .EXAMPLE + Search-CIPPDbData -SearchTerms 'SecurityDefaults', 'ConditionalAccess' -Types 'ConditionalAccessPolicies', 'Organization' + + .EXAMPLE + Search-CIPPDbData -SearchTerms 'SecurityDefaults', 'ConditionalAccess' -Types 'ConditionalAccessPolicies', 'Organization' + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string[]]$SearchTerms, + + [Parameter(Mandatory = $false)] + [ValidateSet( + 'Users', 'Domains', 'ConditionalAccessPolicies', 'ManagedDevices', 'Organization', + 'Groups', 'Roles', 'LicenseOverview', 'IntuneDeviceCompliancePolicies', 'SecureScore', + 'SecureScoreControlProfiles', 'Mailboxes', 'CASMailbox', 'MailboxPermissions', + 'OneDriveUsage', 'MailboxUsage', 'Devices', 'AllRoles', 'Licenses', 'DeviceCompliancePolicies' + )] + [string[]]$Types, + + [Parameter(Mandatory = $false)] + [switch]$MatchAll, + + [Parameter(Mandatory = $false)] + [int]$MaxResultsPerType = 0 + ) + + try { + # Initialize results list + $Results = [System.Collections.Generic.List[object]]::new() + + # Define all available types if not specified + if (-not $Types) { + $Types = @( + 'Users', 'Domains', 'ConditionalAccessPolicies', 'ManagedDevices', 'Organization', + 'Groups', 'Roles', 'LicenseOverview', 'IntuneDeviceCompliancePolicies', 'SecureScore', + 'SecureScoreControlProfiles', 'Mailboxes', 'CASMailbox', 'MailboxPermissions', + 'OneDriveUsage', 'MailboxUsage' + ) + } + + # Get tenants to search - use 'allTenants' if no filter specified + $TenantsToSearch = @() + if ($TenantFilter) { + $TenantsToSearch = @($TenantFilter) + } else { + # Use 'allTenants' to search across all tenants + $TenantsToSearch = @('allTenants') + Write-Verbose 'Searching all tenants' + } + + # Process each data type + foreach ($Type in $Types) { + Write-Verbose "Searching type: $Type" + $TypeResults = [System.Collections.Generic.List[object]]::new() + + # Search across all tenants + foreach ($Tenant in $TenantsToSearch) { + if (-not $Tenant) { continue } + + try { + # Get items for this type and tenant + $Items = Get-CIPPDbItem -TenantFilter $Tenant -Type $Type | Where-Object { $_.RowKey -notlike '*-Count' } + Write-Verbose "Found $(@($Items).Count) items for type '$Type' in tenant '$Tenant'" + + if ($Items) { + foreach ($Item in $Items) { + # Data is already in JSON format, do a quick text search first + if (-not $Item.Data) { continue } + + # Check if any search term matches in the JSON string + $IsMatch = $false + + if ($MatchAll) { + # All terms must match + $IsMatch = $true + foreach ($SearchTerm in $SearchTerms) { + $SearchPattern = [regex]::Escape($SearchTerm) + if ($Item.Data -notmatch $SearchPattern) { + $IsMatch = $false + break + } + } + } else { + # Any term can match (default) + foreach ($SearchTerm in $SearchTerms) { + $SearchPattern = [regex]::Escape($SearchTerm) + if ($Item.Data -match $SearchPattern) { + $IsMatch = $true + break + } + } + } + + # Only parse JSON if we have a match + if ($IsMatch) { + try { + $Data = $Item.Data | ConvertFrom-Json + $ResultItem = [PSCustomObject]@{ + Tenant = $Item.PartitionKey + Type = $Type + RowKey = $Item.RowKey + Data = $Data + Timestamp = $Item.Timestamp + } + $Results.Add($ResultItem) + + # Check max results per type + if ($MaxResultsPerType -gt 0 -and $Results.Count -ge $MaxResultsPerType) { + break + } + } catch { + Write-Verbose "Failed to parse JSON for $($Item.RowKey): $($_.Exception.Message)" + } + } + } + } + + } catch { + Write-Verbose "Error searching type '$Type' for tenant '$Tenant': $($_.Exception.Message)" + } + } + } + + Write-Verbose "Found $($Results.Count) total results" + # Return results as flat list + return $Results.ToArray() + + } catch { + Write-LogMessage -API 'UniversalSearch' -tenant $TenantFilter -message "Failed to perform universal search: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 new file mode 100644 index 000000000000..3451827a67d3 --- /dev/null +++ b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 @@ -0,0 +1,185 @@ + +function Send-CIPPAlert { + [CmdletBinding(SupportsShouldProcess = $true)] + param ( + $Type, + $Title, + $HTMLContent, + $JSONContent, + $TenantFilter, + $altEmail, + $altWebhook, + $APIName = 'Send Alert', + $Headers, + $TableName, + $RowKey = [string][guid]::NewGuid() + ) + Write-Information 'Shipping Alert' + $Table = Get-CIPPTable -TableName SchedulerConfig + $Filter = "RowKey eq 'CippNotifications' and PartitionKey eq 'CippNotifications'" + $Config = [pscustomobject](Get-CIPPAzDataTableEntity @Table -Filter $Filter) + + if ($HTMLContent) { + $HTMLContent = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $HTMLContent + } + + if ($Type -eq 'email') { + Write-Information 'Trying to send email' + try { + if ($Config.email -like '*@*' -or $altEmail -like '*@*') { + $Recipients = if ($AltEmail) { + [pscustomobject]@{EmailAddress = @{Address = $AltEmail } } + } else { + $Config.email.split($(if ($Config.email -like '*,*') { ',' } else { ';' })).trim() | ForEach-Object { + if ($_ -like '*@*') { + ($Alias, $Domain) = $_ -split '@' + if ($Alias -match '%') { + # Allow for text replacement in alias portion of email address + $Alias = Get-CIPPTextReplacement -Text $Alias -Tenant $TenantFilter + $Recipient = "$Alias@$Domain" + } else { + $Recipient = $_ + } + [pscustomobject]@{EmailAddress = @{Address = $Recipient } } + } + } + } + + $PowerShellBody = [PSCustomObject]@{ + message = @{ + subject = $Title + body = @{ + contentType = 'HTML' + content = $HTMLcontent + } + toRecipients = @($Recipients) + } + saveToSentItems = 'true' + } + + $JSONBody = ConvertTo-Json -Compress -Depth 10 -InputObject $PowerShellBody + + if ($PSCmdlet.ShouldProcess($($Recipients.EmailAddress.Address -join ', '), 'Sending email')) { + $null = New-GraphPostRequest -uri 'https://graph.microsoft.com/v1.0/me/sendMail' -tenantid $env:TenantID -NoAuthCheck $true -type POST -body ($JSONBody) + } + + $LogData = @{ + Recipients = $Recipients + } + Write-LogMessage -API 'Webhook Alerts' -message "Sent an email alert: $Title" -tenant $TenantFilter -sev info -LogData $LogData + return "Sent an email alert: $Title" + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Information "Could not send webhook alert to email: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Webhook Alerts' -message "Could not send webhook alerts to email. $($ErrorMessage.NormalizedError)" -tenant $TenantFilter -sev Error -LogData $ErrorMessage + return "Could not send webhook alert to email: $($ErrorMessage.NormalizedError)" + } + } + + if ($Type -eq 'table' -and $TableName) { + Write-Information 'Trying to send to Table' + try { + $Table = Get-CIPPTable -TableName $TableName + $Alert = @{ + PartitionKey = $TenantFilter ?? 'Alert' + RowKey = $RowKey + Title = $Title + Data = [string]$JSONContent + Tenant = $TenantFilter + } + Add-CIPPAzDataTableEntity @Table -Entity $Alert + return $Alert.RowKey + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Information "Could not send alerts to table: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Webhook Alerts' -message "Could not send alerts to table: $($ErrorMessage.NormalizedError)" -tenant $TenantFilter -sev Error -LogData $ErrorMessage + } + } + + if ($Type -eq 'webhook') { + Write-Information 'Trying to send webhook' + + $ExtensionTable = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @ExtensionTable).config | ConvertFrom-Json) + + if ($Configuration.CFZTNA.WebhookEnabled -eq $true -and $Configuration.CFZTNA.Enabled -eq $true) { + $CFAPIKey = Get-ExtensionAPIKey -Extension 'CFZTNA' + $Headers = @{'CF-Access-Client-Id' = $Configuration.CFZTNA.ClientId; 'CF-Access-Client-Secret' = "$CFAPIKey" } + Write-Information 'CF-Access-Client-Id and CF-Access-Client-Secret headers added to webhook API request' + } else { + $Headers = $null + } + + $JSONBody = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $JSONContent -EscapeForJson + try { + if (![string]::IsNullOrWhiteSpace($Config.webhook) -or ![string]::IsNullOrWhiteSpace($AltWebhook)) { + if ($PSCmdlet.ShouldProcess($Config.webhook, 'Sending webhook')) { + $webhook = if ($AltWebhook) { $AltWebhook } else { $Config.webhook } + switch -wildcard ($webhook) { + '*webhook.office.com*' { + $JSONBody = "{`"text`": `"You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log.

    $JSONContent`"}" + Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONBody + } + '*discord.com*' { + $JSONBody = "{`"content`": `"You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log. $JSONContent`"}" + Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONBody + } + '*slack.com*' { + $SlackBlocks = Get-SlackAlertBlocks -JSONBody $JSONContent + if ($SlackBlocks.blocks) { + $JSONBody = $SlackBlocks | ConvertTo-Json -Depth 10 -Compress + } else { + $JSONBody = "{`"text`": `"You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log. $JSONContent`"}" + } + Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONBody + } + default { + $RestMethod = @{ + Uri = $webhook + Method = 'POST' + ContentType = 'application/json' + Body = $JSONContent + } + if ($Headers) { + $RestMethod['Headers'] = $Headers + } + Invoke-RestMethod @RestMethod + } + } + } + Write-LogMessage -API 'Webhook Alerts' -message "Sent Webhook alert $title to External webhook" -tenant $TenantFilter -sev info + } else { + Write-LogMessage -API 'Webhook Alerts' -message 'No webhook URL configured' -sev warning + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Information "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Webhook Alerts' -message "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" -tenant $TenantFilter -sev error -LogData $ErrorMessage + return "Could not send alerts to webhook: $($ErrorMessage.NormalizedError)" + } + } + + if ($Type -eq 'psa') { + Write-Information 'Trying to send to PSA' + if ($config.sendtoIntegration) { + if ($PSCmdlet.ShouldProcess('PSA', 'Sending alert')) { + try { + $Alert = @{ + TenantId = $TenantFilter + AlertText = "$HTMLContent" + AlertTitle = "$($Title)" + } + New-CippExtAlert -Alert $Alert + Write-LogMessage -API 'Webhook Alerts' -tenant $TenantFilter -message "Sent PSA alert $title" -sev info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Information "Could not send alerts to ticketing system: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Webhook Alerts' -tenant $TenantFilter -message "Could not send alerts to ticketing system: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPAlwaysShowFrom.ps1 b/Modules/CIPPCore/Public/Set-CIPPAlwaysShowFrom.ps1 new file mode 100644 index 000000000000..8154ca11443b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPAlwaysShowFrom.ps1 @@ -0,0 +1,89 @@ + +Function Set-CIPPAlwaysShowFrom { + <# + .SYNOPSIS + Sets the "Always Show From" property for a user or all users in a tenant. + + .DESCRIPTION + The Set-CIPPAlwaysShowFrom function is used to set the "Always Show From" property for a specified user or all users in a specified tenant. The "Always Show From" property determines whether the from field is always shown in Outlook. + + .PARAMETER UserID + Specifies the user ID for which to set the "Always Show From" property. This can be UserPrincipalName, SamAccountName, GUID or Email address. + This parameter is mandatory unless the RunOnAllUsersInTenant switch is used. + + .PARAMETER TenantFilter + Specifies the tenant for which to set the "Always Show From" property. This parameter is mandatory. + + .PARAMETER APIName + Specifies the name of the API. The default value is "Always Show From". + + .PARAMETER Headers + Specifies the user who is executing the function. + + .PARAMETER AlwaysShowFrom + Specifies whether to set the "Always Show From" property to true or false. This parameter is mandatory. + + .PARAMETER RunOnAllUsersInTenant + If this switch is present, the function will set the "Always Show From" property for all users in the specified tenant. + + .EXAMPLE + Set-CIPPAlwaysShowFrom -UserID "john.doe@example.com" -TenantFilter "example.com" -AlwaysShowFrom $true + Sets the "Always Show From" property to true for the user "john.doe@example.com" in the "example.com" tenant. + + .EXAMPLE + Set-CIPPAlwaysShowFrom -TenantFilter "example.com" -AlwaysShowFrom $true -RunOnAllUsersInTenant + Sets the "Always Show From" property to true for all users in the "example.com" tenant. + #> + [CmdletBinding(DefaultParameterSetName = 'User')] + param ( + [Parameter(Mandatory = $true, ParameterSetName = 'User')] + [Parameter(Mandatory = $false, ParameterSetName = 'AllUsers')] + [Alias('Username')][string]$UserID, + + [Parameter(Mandatory = $true, ParameterSetName = 'User')] + [Parameter(Mandatory = $true, ParameterSetName = 'AllUsers')] + $TenantFilter, + + [Parameter(ParameterSetName = 'User')] + [Parameter(ParameterSetName = 'AllUsers')] + $APIName = 'Always Show From', + + [Parameter(ParameterSetName = 'User')] + [Parameter(ParameterSetName = 'AllUsers')] + $Headers, + + [Parameter(Mandatory = $true, ParameterSetName = 'User')] + [Parameter(Mandatory = $true, ParameterSetName = 'AllUsers')] + [bool]$AlwaysShowFrom, + + [Parameter(ParameterSetName = 'AllUsers')] + [switch]$RunOnAllUsersInTenant + ) + + + if ($RunOnAllUsersInTenant.IsPresent -eq $true) { + $AllUsers = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{ ResultSize = 'Unlimited' } + Write-LogMessage -headers $Headers -API $APIName -message "Setting Always Show From to $AlwaysShowFrom for all $($AllUsers.Count) users in $TenantFilter" -Sev 'Info' -tenant $TenantFilter + $ErrorCount = 0 + foreach ($User in $AllUsers) { + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxMessageConfiguration' -anchor $User.UserPrincipalName -cmdParams @{AlwaysShowFrom = $AlwaysShowFrom; Identity = $User.UserPrincipalName } + # Write-Information "Set Always Show From to $AlwaysShowFrom for $($User.UserPrincipalName)" + } catch { + $ErrorCount++ + } + } + Write-LogMessage -headers $Headers -API $APIName -message "Set Always Show From to $AlwaysShowFrom for $($AllUsers.Count - $ErrorCount) users in $TenantFilter" -Sev 'Info' -tenant $TenantFilter + return "Set Always Show From to $AlwaysShowFrom for $($AllUsers.Count - $ErrorCount) users in $TenantFilter" + } else { + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxMessageConfiguration' -anchor $UserID -cmdParams @{AlwaysShowFrom = $AlwaysShowFrom; Identity = $UserID } + Write-LogMessage -headers $Headers -API $APIName -message "Set Always Show From to $AlwaysShowFrom for $UserID" -Sev 'Info' -tenant $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Could not set Always Show From to $AlwaysShowFrom for $UserID. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + return "Could not set Always Show From to $AlwaysShowFrom for $UserID. Error: $($ErrorMessage.NormalizedError)" + } + return "Set Always Show From to $AlwaysShowFrom for $UserID" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 new file mode 100644 index 000000000000..771c6f4fc6fe --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 @@ -0,0 +1,189 @@ +function Set-CIPPAssignedApplication { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $GroupName, + $Intent, + $AppType, + $ApplicationId, + $TenantFilter, + $GroupIds, + $AssignmentMode = 'replace', + $APIName = 'Assign Application', + $Headers + ) + Write-Host "GroupName: $GroupName Intent: $Intent AppType: $AppType ApplicationId: $ApplicationId TenantFilter: $TenantFilter APIName: $APIName" + try { + $assignmentSettings = $null + if ($AppType) { + $assignmentSettings = @{ + '@odata.type' = "#microsoft.graph.$($AppType)AppAssignmentSettings" + } + + switch ($AppType) { + 'Win32Lob' { + $assignmentSettings.notifications = 'hideAll' + } + 'WinGet' { + $assignmentSettings.notifications = 'hideAll' + } + 'macOsVpp' { + $assignmentSettings.useDeviceLicensing = $true + } + 'iosVpp' { + $assignmentSettings.useDeviceLicensing = $true + } + default { + # No additional settings + } + } + } + + # Build the assignment object + $MobileAppAssignment = switch ($GroupName) { + 'AllUsers' { + @(@{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = @{ + '@odata.type' = '#microsoft.graph.allLicensedUsersAssignmentTarget' + } + intent = $Intent + settings = $assignmentSettings + }) + break + } + 'AllDevices' { + @(@{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = @{ + '@odata.type' = '#microsoft.graph.allDevicesAssignmentTarget' + } + intent = $Intent + settings = $assignmentSettings + }) + break + } + 'AllDevicesAndUsers' { + @( + @{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = @{ + '@odata.type' = '#microsoft.graph.allLicensedUsersAssignmentTarget' + } + intent = $Intent + settings = $assignmentSettings + }, + @{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = @{ + '@odata.type' = '#microsoft.graph.allDevicesAssignmentTarget' + } + intent = $Intent + settings = $assignmentSettings + } + ) + } + default { + $resolvedGroupIds = @() + if ($PSBoundParameters.ContainsKey('GroupIds') -and $GroupIds) { + $resolvedGroupIds = $GroupIds + } else { + $GroupNames = $GroupName.Split(',') + $resolvedGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName' -tenantid $TenantFilter | ForEach-Object { + $Group = $_ + foreach ($SingleName in $GroupNames) { + if ($Group.displayName -like $SingleName) { + $Group.id + } + } + } + Write-Information "found $($resolvedGroupIds) groups" + } + + # We ain't found nothing so we panic + if (-not $resolvedGroupIds) { + throw 'No matching groups resolved for assignment request.' + } + + foreach ($Group in $resolvedGroupIds) { + @{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = @{ + '@odata.type' = '#microsoft.graph.groupAssignmentTarget' + groupId = $Group + } + intent = $Intent + settings = $assignmentSettings + } + } + } + } + + # If we're appending, we need to get existing assignments + if ($AssignmentMode -eq 'append') { + try { + $ExistingAssignments = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($ApplicationId)/assignments" -tenantid $TenantFilter + } catch { + Write-Warning "Unable to retrieve existing assignments for $ApplicationId. Proceeding with new assignments only. Error: $($_.Exception.Message)" + $ExistingAssignments = @() + } + } + + # Deduplicate current assignments so the new ones override existing ones + if ($ExistingAssignments) { + $ExistingAssignments = $ExistingAssignments | ForEach-Object { + $ExistingAssignment = $_ + switch ($ExistingAssignment.target.'@odata.type') { + '#microsoft.graph.groupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $MobileAppAssignment.target.groupId) { + $ExistingAssignment + } + } + default { + if ($ExistingAssignment.target.'@odata.type' -notin $MobileAppAssignment.target.'@odata.type') { + $ExistingAssignment + } + } + } + } + } + + $FinalAssignments = [System.Collections.Generic.List[object]]::new() + if ($AssignmentMode -eq 'append' -and $ExistingAssignments) { + $ExistingAssignments | ForEach-Object { + $FinalAssignments.Add(@{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = $_.target + intent = $_.intent + settings = $_.settings + }) + } + + $MobileAppAssignment | ForEach-Object { + $FinalAssignments.Add(@{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = $_.target + intent = $_.intent + settings = $_.settings + }) + } + } else { + $FinalAssignments = $MobileAppAssignment + } + + $DefaultAssignmentObject = [PSCustomObject]@{ + mobileAppAssignments = @( + $FinalAssignments + ) + } + if ($PSCmdlet.ShouldProcess($GroupName, "Assigning Application $ApplicationId")) { + Start-Sleep -Seconds 1 + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($ApplicationId)/assign" -tenantid $TenantFilter -type POST -body ($DefaultAssignmentObject | ConvertTo-Json -Compress -Depth 10) + Write-LogMessage -headers $Headers -API $APIName -message "Assigned Application $ApplicationId to $($GroupName)" -Sev 'Info' -tenant $TenantFilter + } + return "Assigned Application $ApplicationId to $($GroupName)" + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Could not assign application $ApplicationId to $GroupName. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw "Could not assign application $ApplicationId to $GroupName. Error: $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 new file mode 100644 index 000000000000..72fedbbeace3 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 @@ -0,0 +1,236 @@ +function Set-CIPPAssignedPolicy { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $GroupName, + $ExcludeGroup, + $PolicyId, + $Type, + $TenantFilter, + $PlatformType = 'deviceManagement', + $APIName = 'Assign Policy', + $Headers, + $AssignmentFilterName, + $AssignmentFilterType = 'include', + $GroupIds, + $GroupNames, + $AssignmentMode = 'replace' + ) + + Write-Host "Assigning policy $PolicyId ($PlatformType/$Type) to $GroupName" + + try { + # Resolve assignment filter name to ID if provided + $ResolvedFilterId = $null + if ($AssignmentFilterName) { + Write-Host "Looking up assignment filter by name: $AssignmentFilterName" + $AllFilters = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $TenantFilter + $MatchingFilter = $AllFilters | Where-Object { $_.displayName -like $AssignmentFilterName } | Select-Object -First 1 + + if ($MatchingFilter) { + $ResolvedFilterId = $MatchingFilter.id + Write-Host "Found assignment filter: $($MatchingFilter.displayName) with ID: $ResolvedFilterId" + } else { + $ErrorMessage = "No assignment filter found matching the name: $AssignmentFilterName. Policy assigned without filter." + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMessage -Sev 'Warning' -tenant $TenantFilter + Write-Host $ErrorMessage + } + } + + $assignmentsList = [System.Collections.Generic.List[object]]::new() + switch ($GroupName) { + 'allLicensedUsers' { + $assignmentsList.Add( + @{ + target = @{ + '@odata.type' = '#microsoft.graph.allLicensedUsersAssignmentTarget' + } + } + ) + } + 'AllDevices' { + $assignmentsList.Add( + @{ + target = @{ + '@odata.type' = '#microsoft.graph.allDevicesAssignmentTarget' + } + } + ) + } + 'AllDevicesAndUsers' { + $assignmentsList.Add( + @{ + target = @{ + '@odata.type' = '#microsoft.graph.allDevicesAssignmentTarget' + } + } + ) + $assignmentsList.Add( + @{ + target = @{ + '@odata.type' = '#microsoft.graph.allLicensedUsersAssignmentTarget' + } + } + ) + } + default { + # Use GroupIds if provided, otherwise resolve by name + $resolvedGroupIds = @() + if ($GroupIds -and @($GroupIds).Count -gt 0) { + $resolvedGroupIds = @($GroupIds) + Write-Host "Using provided GroupIds: $($resolvedGroupIds -join ', ')" + } elseif ($GroupName) { + $GroupNames = $GroupName.Split(',').Trim() + $resolvedGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | + ForEach-Object { + foreach ($SingleName in $GroupNames) { + if ($_.displayName -like $SingleName) { + $_.id + } + } + } + } + + if (-not $resolvedGroupIds -or $resolvedGroupIds.Count -eq 0) { + $ErrorMessage = "No groups found matching the specified name(s): $GroupName. Policy not assigned." + Write-LogMessage -headers $Headers -API $APIName -message $ErrorMessage -Sev 'Warning' -tenant $TenantFilter + throw $ErrorMessage + } + + foreach ($gid in $resolvedGroupIds) { + $assignmentsList.Add( + @{ + target = @{ + '@odata.type' = '#microsoft.graph.groupAssignmentTarget' + groupId = $gid + } + } + ) + } + } + } + if ($ExcludeGroup) { + Write-Host "We're supposed to exclude a custom group. The group is $ExcludeGroup" + $ExcludeGroupNames = $ExcludeGroup.Split(',').Trim() + $ExcludeGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | + ForEach-Object { + foreach ($SingleName in $ExcludeGroupNames) { + if ($_.displayName -like $SingleName) { + $_.id + } + } + } + + foreach ($egid in $ExcludeGroupIds) { + $assignmentsList.Add( + @{ + target = @{ + '@odata.type' = '#microsoft.graph.exclusionGroupAssignmentTarget' + groupId = $egid + } + } + ) + } + } + + # Add assignment filter to each assignment if specified + if ($ResolvedFilterId) { + Write-Host "Adding assignment filter $ResolvedFilterId with type $AssignmentFilterType to assignments" + foreach ($assignment in $assignmentsList) { + # Don't add filters to exclusion targets + if ($assignment.target.'@odata.type' -ne '#microsoft.graph.exclusionGroupAssignmentTarget') { + $assignment.target.deviceAndAppManagementAssignmentFilterId = $ResolvedFilterId + $assignment.target.deviceAndAppManagementAssignmentFilterType = $AssignmentFilterType + } + } + } + + # If we're appending, we need to get existing assignments + $ExistingAssignments = @() + if ($AssignmentMode -eq 'append') { + try { + $uri = "https://graph.microsoft.com/beta/$($PlatformType)/$Type('$($PolicyId)')/assignments" + $ExistingAssignments = New-GraphGetRequest -uri $uri -tenantid $TenantFilter + Write-Host "Found $($ExistingAssignments.Count) existing assignments for policy $PolicyId" + } catch { + Write-Warning "Unable to retrieve existing assignments for $PolicyId. Proceeding with new assignments only. Error: $($_.Exception.Message)" + $ExistingAssignments = @() + } + } + + # Deduplicate current assignments so the new ones override existing ones + if ($ExistingAssignments -and $ExistingAssignments.Count -gt 0) { + $ExistingAssignments = $ExistingAssignments | ForEach-Object { + $ExistingAssignment = $_ + switch ($ExistingAssignment.target.'@odata.type') { + '#microsoft.graph.groupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId) { + $ExistingAssignment + } + } + '#microsoft.graph.exclusionGroupAssignmentTarget' { + if ($ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId) { + $ExistingAssignment + } + } + default { + if ($ExistingAssignment.target.'@odata.type' -notin $assignmentsList.target.'@odata.type') { + $ExistingAssignment + } + } + } + } + } + + # Build final assignments list + $FinalAssignments = [System.Collections.Generic.List[object]]::new() + if ($AssignmentMode -eq 'append' -and $ExistingAssignments) { + foreach ($existing in $ExistingAssignments) { + $FinalAssignments.Add(@{ + target = $existing.target + }) + } + } + + foreach ($newAssignment in $assignmentsList) { + $FinalAssignments.Add($newAssignment) + } + + # Determine the assignment property name based on type + $AssignmentPropertyName = switch ($Type) { + 'deviceHealthScripts' { 'deviceHealthScriptAssignments' } + 'deviceManagementScripts' { 'deviceManagementScriptAssignments' } + 'deviceShellScripts' { 'deviceManagementScriptAssignments' } + default { 'assignments' } + } + + $assignmentsObject = @{ $AssignmentPropertyName = @($FinalAssignments) } + + $AssignJSON = ConvertTo-Json -InputObject $assignmentsObject -Depth 10 -Compress + if ($PSCmdlet.ShouldProcess($GroupName, "Assigning policy $PolicyId")) { + $uri = "https://graph.microsoft.com/beta/$($PlatformType)/$Type('$($PolicyId)')/assign" + $null = New-GraphPOSTRequest -uri $uri -tenantid $TenantFilter -type POST -body $AssignJSON + + # Build a friendly display name for the assigned groups + $AssignedGroupsDisplay = if ($GroupNames -and @($GroupNames).Count -gt 0) { + ($GroupNames -join ', ') + } elseif ($GroupName) { + $GroupName + } else { + 'specified groups' + } + + if ($ExcludeGroup) { + Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludeGroup' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + return "Successfully assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludeGroup' on Policy $PolicyId" + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + return "Successfully assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" + } + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to assign $GroupName to Policy $PolicyId, using Platform $PlatformType and $Type. The error is:$($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + return "Failed to assign $GroupName to Policy $PolicyId. Error: $ErrorMessage" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 b/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 new file mode 100644 index 000000000000..c2b6d75d2fea --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPAuditLogUserExclusion.ps1 @@ -0,0 +1,66 @@ +function Set-CIPPAuditLogUserExclusion { + <# + .SYNOPSIS + Sets user exclusions for Audit Log alerting. + .DESCRIPTION + This function allows you to add or remove user exclusions for Audit Log alerting in a specified tenant + by updating the AuditLogUserExclusions CIPP table. + .PARAMETER TenantFilter + The tenant identifier for which to set the user exclusions. + .PARAMETER Users + An array of user identifiers (GUIDs or UPNs) to be added or removed from the exclusion list. + .PARAMETER Action + The action to perform: 'Add' to add users to the exclusion list, 'Remove' to remove users from the exclusion list. + .PARAMETER Headers + The headers to include in the request, typically containing authentication tokens. This is supplied automatically by the API. + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string[]]$Users, + [ValidateSet('Add', 'Remove')] + [string]$Action = 'Add', + [ValidateSet('Location')] + [string]$Type = 'Location', + $Headers + ) + + $AuditLogExclusionsTable = Get-CIPPTable -tablename 'AuditLogUserExclusions' + $ExistingEntries = Get-CIPPAzDataTableEntity @AuditLogExclusionsTable -Filter "PartitionKey eq '$TenantFilter'" + + $Results = foreach ($User in $Users) { + if ($Action -eq 'Add') { + $ExistingUser = $ExistingEntries | Where-Object { $_.RowKey -eq $User -and $_.PartitionKey -eq $TenantFilter -and $_.Type -eq $Type } + if (!$ExistingUser) { + $NewEntry = [PSCustomObject]@{ + PartitionKey = $TenantFilter + RowKey = $User + ExcludedOn = (Get-Date).ToString('o') + Type = $Type + } + if ($PSCmdlet.ShouldProcess("Adding exclusion for user: $User")) { + Add-CIPPAzDataTableEntity @AuditLogExclusionsTable -Entity $NewEntry + "Added audit log exclusion for user: $User" + Write-LogMessage -headers $Headers -API 'Set-CIPPAuditLogUserExclusion' -message "Added audit log exclusion for user: $User" -Sev 'Info' -tenant $TenantFilter -LogData $NewEntry + } + } else { + "User $User is already excluded." + } + } elseif ($Action -eq 'Remove') { + if ($ExistingEntries.RowKey -contains $User) { + if ($PSCmdlet.ShouldProcess("Removing exclusion for user: $User")) { + $Entity = $ExistingEntries | Where-Object { $_.RowKey -eq $User -and $_.PartitionKey -eq $TenantFilter -and $_.Type -eq $Type } + Remove-AzDataTableEntity @AuditLogExclusionsTable -Entity $Entity + Write-LogMessage -headers $Headers -API 'Set-CIPPAuditLogUserExclusion' -message "Removed audit log exclusion for user: $User" -Sev 'Info' -tenant $TenantFilter -LogData $Entity + "Removed audit log exclusion for user: $User" + } + } else { + "User $User is not in the exclusion list." + } + } + } + return @($Results) +} + diff --git a/Modules/CIPPCore/Public/Set-CIPPAuthenticationPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPAuthenticationPolicy.ps1 new file mode 100644 index 000000000000..d3335cc89f35 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPAuthenticationPolicy.ps1 @@ -0,0 +1,135 @@ +function Set-CIPPAuthenticationPolicy { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)]$Tenant, + [Parameter(Mandatory = $true)][ValidateSet('FIDO2', 'MicrosoftAuthenticator', 'SMS', 'TemporaryAccessPass', 'HardwareOATH', 'softwareOath', 'Voice', 'Email', 'x509Certificate', 'QRCodePin')]$AuthenticationMethodId, + [Parameter(Mandatory = $true)][bool]$Enabled, # true = enabled or false = disabled + $MicrosoftAuthenticatorSoftwareOathEnabled, + $TAPMinimumLifetime = 60, #Minutes + $TAPMaximumLifetime = 480, #minutes + $TAPDefaultLifeTime = 60, #minutes + $TAPDefaultLength = 8, #TAP password generated length in chars + $TAPisUsableOnce = $true, + [Parameter()][ValidateRange(1, 395)]$QRCodeLifetimeInDays = 365, + [Parameter()][ValidateRange(8, 20)]$QRCodePinLength = 8, + $APIName = 'Set Authentication Policy', + $Headers + ) + + # Convert bool input to usable string + $State = if ($Enabled) { 'enabled' } else { 'disabled' } + # Get current state of the called authentication method and Set state of authentication method to input state + try { + $CurrentInfo = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/$AuthenticationMethodId" -tenantid $Tenant + $CurrentInfo.state = $State + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Could not get CurrentInfo for $AuthenticationMethodId. Error:$($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Return "Could not get CurrentInfo for $AuthenticationMethodId. Error:$($ErrorMessage.NormalizedError)" + } + + switch ($AuthenticationMethodId) { + + # FIDO2 + 'FIDO2' { + if ($State -eq 'enabled') { + $CurrentInfo.isAttestationEnforced = $true + $CurrentInfo.isSelfServiceRegistrationAllowed = $true + } + } + + # Microsoft Authenticator + 'MicrosoftAuthenticator' { + # Remove numberMatchingRequiredState property if it exists + $CurrentInfo.featureSettings.PSObject.Properties.Remove('numberMatchingRequiredState') + + if ($State -eq 'enabled') { + $CurrentInfo.featureSettings.displayAppInformationRequiredState.state = $State + $CurrentInfo.featureSettings.displayLocationInformationRequiredState.state = $State + # Set MS authenticator OTP state if parameter is passed in + if ($null -ne $MicrosoftAuthenticatorSoftwareOathEnabled ) { + $CurrentInfo.isSoftwareOathEnabled = $MicrosoftAuthenticatorSoftwareOathEnabled + $OptionalLogMessage = "and MS Authenticator software OTP to $MicrosoftAuthenticatorSoftwareOathEnabled" + } + } + } + + # SMS + 'SMS' { + if ($State -eq 'enabled') { + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Setting $AuthenticationMethodId to enabled is not allowed" -sev Error + throw "Setting $AuthenticationMethodId to enabled is not allowed" + } + } + + # Temporary Access Pass + 'TemporaryAccessPass' { + if ($State -eq 'enabled') { + $CurrentInfo.isUsableOnce = [System.Convert]::ToBoolean($TAPisUsableOnce) + $CurrentInfo.minimumLifetimeInMinutes = $TAPMinimumLifetime + $CurrentInfo.maximumLifetimeInMinutes = $TAPMaximumLifetime + $CurrentInfo.defaultLifetimeInMinutes = $TAPDefaultLifeTime + $CurrentInfo.defaultLength = $TAPDefaultLength + $OptionalLogMessage = "with TAP isUsableOnce set to $TAPisUsableOnce" + } + } + + # Hardware OATH tokens (Preview) + 'HardwareOATH' { + # Nothing special to do here + } + + # Third-party software OATH tokens + 'softwareOath' { + # Nothing special to do here + } + + # Voice call + 'Voice' { + # Disallow enabling voice + if ($State -eq 'enabled') { + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Setting $AuthenticationMethodId to enabled is not allowed" -sev Error + throw "Setting $AuthenticationMethodId to enabled is not allowed" + } + } + + # Email OTP + 'Email' { + if ($State -eq 'enabled') { + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Setting $AuthenticationMethodId to enabled is not allowed" -sev Error + throw "Setting $AuthenticationMethodId to enabled is not allowed" + } + } + + # Certificate-based authentication + 'x509Certificate' { + # Nothing special to do here + } + + # QR code + 'QRCodePin' { + if ($State -eq 'enabled') { + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Setting $AuthenticationMethodId to enabled is not allowed" -sev Error + throw "Setting $AuthenticationMethodId to enabled is not allowed" + } + } + Default { + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Somehow you hit the default case with an input of $AuthenticationMethodId . You probably made a typo in the input for AuthenticationMethodId. It`'s case sensitive." -sev Error + throw "Somehow you hit the default case with an input of $AuthenticationMethodId . You probably made a typo in the input for AuthenticationMethodId. It`'s case sensitive." + } + } + # Set state of the authentication method + try { + if ($PSCmdlet.ShouldProcess($AuthenticationMethodId, "Set state to $State $OptionalLogMessage")) { + # Convert body to JSON and send request + $null = New-GraphPostRequest -tenantid $Tenant -Uri "https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/$AuthenticationMethodId" -Type PATCH -Body (ConvertTo-Json -InputObject $CurrentInfo -Compress -Depth 10) -ContentType 'application/json' + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Set $AuthenticationMethodId state to $State $OptionalLogMessage" -sev Info + } + return "Set $AuthenticationMethodId state to $State $OptionalLogMessage" + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Failed to $State $AuthenticationMethodId Support: $ErrorMessage" -sev Error -LogData $ErrorMessage + throw "Failed to $State $AuthenticationMethodId Support. Error: $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 b/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 new file mode 100644 index 000000000000..a8d045379c26 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 @@ -0,0 +1,154 @@ +function Set-CIPPCAExclusion { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $TenantFilter, + $ExclusionType, + $UserID, + $PolicyId, + $Username, + $Users, + $Groups, + $Headers + ) + try { + $CheckExisting = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)" -tenantid $TenantFilter -AsApp $true + if ($ExclusionType -eq 'add') { + if ($Groups) { + # Handle group exclusions + $Groupnames = $Groups.addedFields.displayName + $ExcludeGroups = [System.Collections.Generic.List[string]]::new() + foreach ($Group in $CheckExisting.conditions.users.excludeGroups) { + $ExcludeGroups.Add($Group) + } + foreach ($Group in $Groups.value) { + if ($Group -and $Group -ne '' -and $ExcludeGroups -notcontains $Group) { + $ExcludeGroups.Add($Group) + } + } + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeGroups = $ExcludeGroups + } + } + } + } elseif ($Users) { + $Username = $Users.addedFields.userPrincipalName + $ExcludeUsers = [System.Collections.Generic.List[string]]::new() + foreach ($User in $CheckExisting.conditions.users.excludeUsers) { + $ExcludeUsers.Add($User) + } + foreach ($User in $Users.value) { + if ($User -and $User -ne '' -and $ExcludeUsers -notcontains $User) { + $ExcludeUsers.Add($User) + } + } + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = $ExcludeUsers + } + } + } + } elseif ($UserID) { + if ($UserID -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter).userPrincipalName + } + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = @($CheckExisting.conditions.users.excludeUsers + $UserID) + } + } + } + } + + $RawJson = ConvertTo-Json -Depth 10 -InputObject $NewExclusions + + if ($Groups) { + $Identifier = ($Groupnames -join ', ') + $IdentifierType = 'group' + } elseif ($Users) { + $Identifier = ($Username -join ', ') + $IdentifierType = 'user' + } else { + $Identifier = $UserID + $IdentifierType = 'user' + } + if ($PSCmdlet.ShouldProcess($PolicyId, "Add exclusion for $IdentifierType $Identifier")) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -AsApp $true + } + } + + if ($ExclusionType -eq 'remove') { + if ($Groups) { + # Handle group exclusions removal + $GroupID = $Groups.value | Where-Object { $_ -and $_ -ne '' } + $Groupnames = $Groups.addedFields.displayName + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeGroups = @($CheckExisting.conditions.users.excludeGroups | Where-Object { $GroupID -notcontains $_ }) + } + } + } + } elseif ($Users) { + $UserID = $Users.value | Where-Object { $_ -and $_ -ne '' } + $Username = $Users.addedFields.userPrincipalName + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = @($CheckExisting.conditions.users.excludeUsers | Where-Object { $UserID -notcontains $_ }) + } + } + } + } else { + if ($UserID -match '^[a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}$') { + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter).userPrincipalName + } + $UserID = @($UserID) + $NewExclusions = [pscustomobject]@{ + conditions = [pscustomobject]@{ users = [pscustomobject]@{ + excludeUsers = @($CheckExisting.conditions.users.excludeUsers | Where-Object { $UserID -notcontains $_ }) + } + } + } + } + $RawJson = ConvertTo-Json -Depth 10 -InputObject $NewExclusions + + if ($Groups) { + $Identifier = ($Groupnames -join ', ') + $IdentifierType = 'group' + } elseif ($Users) { + $Identifier = ($Username -join ', ') + $IdentifierType = 'user' + } else { + $Identifier = $UserID + $IdentifierType = 'user' + } + if ($PSCmdlet.ShouldProcess($PolicyId, "Remove exclusion for $IdentifierType $Identifier")) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($CheckExisting.id)" -tenantid $tenantfilter -type PATCH -body $RawJSON -AsApp $true + } + } + + if ($Groups) { + foreach ($Group in $Groupnames) { + "Successfully performed $($ExclusionType) exclusion for group $Group from policy $($CheckExisting.displayName)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Successfully performed $($ExclusionType) exclusion for group $Group from policy $($CheckExisting.displayName)" -Sev 'Info' -tenant $TenantFilter + } + } else { + foreach ($User in $Username) { + "Successfully performed $($ExclusionType) exclusion for $User from policy $($CheckExisting.displayName)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Successfully performed $($ExclusionType) exclusion for $User from policy $($CheckExisting.displayName)" -Sev 'Info' -tenant $TenantFilter + } + } + } catch { + if ($Groups) { + foreach ($Group in $Groupnames) { + "Failed to $($ExclusionType) group exclusion for $Group from policy $($CheckExisting.displayName): $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Failed to $($ExclusionType) group exclusion for $Group from policy $($CheckExisting.displayName): $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } + } else { + foreach ($User in $Username) { + "Failed to $($ExclusionType) user exclusion for $User from policy $($CheckExisting.displayName): $($_.Exception.Message)" + Write-LogMessage -headers $Headers -API 'Set-CIPPCAExclusion' -message "Failed to $($ExclusionType) user exclusion for $User from policy $($CheckExisting.displayName): $_" -Sev 'Error' -tenant $TenantFilter -LogData (Get-CippException -Exception $_) + } + } + } +} + diff --git a/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 b/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 new file mode 100644 index 000000000000..51ca8ee0289b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCAPolicyServiceException.ps1 @@ -0,0 +1,86 @@ +function Set-CIPPCAPolicyServiceException { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $TenantFilter, + $PolicyId + ) + + $CSPtenantId = $env:TenantID + + # Get the current policy + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)" -tenantid $TenantFilter -AsApp $true + + # If the policy is set to affect either all or all guests/external users + if ($policy.conditions.users.includeUsers -eq 'All' -or $policy.conditions.users.includeGuestsOrExternalUsers.externalTenants.membershipKind -eq 'all') { + + # Check if the policy already has the correct service provider exception + if ($policy.conditions.users.excludeGuestsOrExternalUsers) { + $excludeConfig = $policy.conditions.users.excludeGuestsOrExternalUsers + + # Check if serviceProvider is already in guestOrExternalUserTypes + $hasServiceProvider = $excludeConfig.guestOrExternalUserTypes -match 'serviceProvider' + + # Check if externalTenants is properly configured + if ($excludeConfig.externalTenants) { + $externalTenants = $excludeConfig.externalTenants + $hasCorrectExternalTenants = ($externalTenants.membershipKind -eq 'enumerated' -and + $externalTenants.members -contains $CSPtenantId) + + # If already configured, exit without making changes + if ($hasServiceProvider -and $hasCorrectExternalTenants) { + return "Policy $PolicyId already has the correct service provider configuration. No changes needed." + } + } + } + + # If excludeGuestsOrExternalUsers is empty, add the entire exclusion + if (!($policy.conditions.users.excludeGuestsOrExternalUsers)) { + + # Define data + $excludeServiceProviderData = [pscustomobject]@{ + guestOrExternalUserTypes = 'serviceProvider' + externalTenants = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.conditionalAccessEnumeratedExternalTenants' + membershipKind = 'enumerated' + members = @( + $CSPtenantId + ) + } + } + + # Add data to cached policy + $policy.conditions.users.excludeGuestsOrExternalUsers = $excludeServiceProviderData + } + + # If excludeGuestsOrExternalUsers already has content correct it to match $excludeServiceProviderData + if ($policy.conditions.users.excludeGuestsOrExternalUsers) { + + # If guestOrExternalUserTypes doesn't include type serviceProvider add it + if ($policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes -notmatch 'serviceProvider') { + $policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes += ',serviceProvider' + } + + # If guestOrExternalUserTypes includes type serviceProvider and membershipKind is not all tenants + if ($policy.conditions.users.excludeGuestsOrExternalUsers.guestOrExternalUserTypes -match 'serviceProvider' -and $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.membershipKind -ne 'all') { + + # If membershipKind is enumerated and members does not include our tenant add it + if ($policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.membershipKind -eq 'enumerated' -and $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.members -notmatch $CSPtenantId) { + $policy.conditions.users.excludeGuestsOrExternalUsers.externalTenants.members += $($CSPtenantId) + } + } + } + $Json = $policy | Select-Object * -ExcludeProperty TemplateId, createdDateTime, modifiedDateTime | ConvertTo-Json -Depth 20 + + Write-Information 'Updated policy JSON:' + Write-Information $Json + + # Patch policy with updated data. + # TemplateId,createdDateTime,modifiedDateTime can't be written back so exclude them using -ExcludeProperty + if ($PSCmdlet.ShouldProcess($PolicyId, 'Update policy with service provider exception')) { + $patch = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($policy.id)" -tenantid $TenantFilter -type PATCH -body ($policy | Select-Object * -ExcludeProperty TemplateId, createdDateTime, modifiedDateTime | ConvertTo-Json -Depth 20) -AsApp $true + return "Successfully added service provider to policy $PolicyId" + } + } else { + return "Policy $PolicyId does not target all users or all guest/external users. No changes made." + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPCPVConsent.ps1 b/Modules/CIPPCore/Public/Set-CIPPCPVConsent.ps1 new file mode 100644 index 000000000000..87737fd6d092 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCPVConsent.ps1 @@ -0,0 +1,85 @@ +function Set-CIPPCPVConsent { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $TenantFilter, + $APIName = 'CPV Consent', + $Headers, + [bool]$ResetSP = $false + ) + $Results = [System.Collections.Generic.List[string]]::new() + $Tenant = Get-Tenants -IncludeAll | Where-Object -Property customerId -EQ $TenantFilter | Select-Object -First 1 + $TenantName = $Tenant.displayName + $User = $Request.Headers + + if ($TenantFilter -eq $env:TenantID) { + return @('Cannot modify CPV consent on partner tenant') + } + if ($Tenant.customerId -ne $TenantFilter) { + return @('Not a valid tenant') + } + if ($Tenant.delegatedPrivilegeStatus -eq 'directTenant') { + return @('Application is already consented to this tenant') + } + + if ($ResetSP) { + try { + if ($PSCmdlet.ShouldProcess($env:ApplicationID, "Delete Service Principal from $TenantName")) { + $null = New-GraphPostRequest -Type DELETE -noauthcheck $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$($TenantFilter)/applicationconsents/$($env:ApplicationID)" -scope 'https://api.partnercenter.microsoft.com/.default' -tenantid $env:TenantID + } + $Results.add("Deleted Service Principal from $TenantName") + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Results.add("Error deleting SP - $($ErrorMessage)") + } + } + + try { + $AppBody = @{ + ApplicationId = $($env:ApplicationID) + ApplicationGrants = @( + @{ + EnterpriseApplicationId = '00000003-0000-0000-c000-000000000000' + Scope = @( + 'DelegatedPermissionGrant.ReadWrite.All', + 'Directory.ReadWrite.All', + 'AppRoleAssignment.ReadWrite.All' + ) -join ',' + } + ) + } | ConvertTo-Json + + if ($PSCmdlet.ShouldProcess($env:ApplicationID, "Add Service Principal to $TenantName")) { + $null = New-GraphpostRequest -body $AppBody -Type POST -noauthcheck $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$($TenantFilter)/applicationconsents" -scope 'https://api.partnercenter.microsoft.com/.default' -tenantid $env:TenantID + $Table = Get-CIPPTable -TableName cpvtenants + $unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + $GraphRequest = @{ + LastApply = "$unixtime" + applicationId = "$($env:ApplicationID)" + Tenant = "$($tenantfilter)" + PartitionKey = 'Tenant' + RowKey = "$($tenantfilter)" + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force + } + $Results.add("Successfully added CPV Application to tenant $($TenantName)") | Out-Null + Write-LogMessage -Headers $User -API $APINAME -message "Added our Service Principal to $($TenantName)" -Sev 'Info' -tenant $Tenant.defaultDomainName -tenantId $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + if ($ErrorMessage.NormalizedError -like '*Permission entry already exists*') { + $Table = Get-CIPPTable -TableName cpvtenants + $unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + $GraphRequest = @{ + LastApply = "$unixtime" + applicationId = "$($env:ApplicationID)" + Tenant = "$($tenantfilter)" + PartitionKey = 'Tenant' + RowKey = "$($tenantfilter)" + } + Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force + return @("We've already added our Service Principal to $($TenantName)") + } + Write-LogMessage -Headers $User -API $APINAME -message "Could not add our Service Principal to the client tenant $($TenantName): $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $Tenant.defaultDomainName -tenantId $TenantFilter -LogData $ErrorMessage + return @("Could not add our Service Principal to the client tenant $($TenantName). Error: $($ErrorMessage.NormalizedError)") + } + return $Results +} diff --git a/Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1 b/Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1 new file mode 100644 index 000000000000..57d2c4695680 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1 @@ -0,0 +1,69 @@ +function Set-CIPPCalendarPermission { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $APIName = 'Set Calendar Permissions', + $Headers, + $RemoveAccess, + $TenantFilter, + $UserID, + $FolderName, + $UserToGetPermissions, + $LoggingName, + $Permissions, + [bool]$CanViewPrivateItems, + [bool]$SendNotificationToUser = $false + ) + + try { + # If a pretty logging name is not provided, use the ID instead + if ([string]::IsNullOrWhiteSpace($LoggingName) -and $RemoveAccess) { + $LoggingName = $RemoveAccess + } elseif ([string]::IsNullOrWhiteSpace($LoggingName) -and $UserToGetPermissions) { + $LoggingName = $UserToGetPermissions + } + + $CalParam = [PSCustomObject]@{ + Identity = "$($UserID):\$FolderName" + AccessRights = @($Permissions) + User = $UserToGetPermissions + SendNotificationToUser = $SendNotificationToUser + } + + if ($CanViewPrivateItems) { + $CalParam | Add-Member -NotePropertyName 'SharingPermissionFlags' -NotePropertyValue 'Delegate,CanViewPrivateItems' + } + + if ($RemoveAccess) { + if ($PSCmdlet.ShouldProcess("$UserID\$FolderName", "Remove permissions for $LoggingName")) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MailboxFolderPermission' -cmdParams @{Identity = "$($UserID):\$FolderName"; User = $RemoveAccess } + $Result = "Successfully removed access for $LoggingName from calendar $($CalParam.Identity)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + } + } else { + if ($PSCmdlet.ShouldProcess("$UserID\$FolderName", "Set permissions for $LoggingName to $Permissions")) { + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxFolderPermission' -cmdParams $CalParam -Anchor $UserID + } catch { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxFolderPermission' -cmdParams $CalParam -Anchor $UserID + } + $Result = "Successfully set permissions on folder $($CalParam.Identity). The user $LoggingName now has $Permissions permissions on this folder." + if ($CanViewPrivateItems) { + $Result += ' The user can also view private items.' + } + if ($SendNotificationToUser) { + $Result += ' A notification has been sent to the user.' + } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error changing calendar permissions $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $Result = "Failed to set calendar permissions for $LoggingName on $UserID : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + throw $Result + } + + return $Result +} diff --git a/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 b/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 new file mode 100644 index 000000000000..4042bed25611 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCloudManaged.ps1 @@ -0,0 +1,34 @@ +function Set-CIPPCloudManaged( + [string]$TenantFilter, + [string]$Id, + [string]$DisplayName, + [ValidateSet('User', 'Group', 'Contact')] + [string]$Type, + [bool]$IsCloudManaged, + [string]$APIName = 'Set Cloud Managed', + $Headers +) { + try { + $statusText = if ($IsCloudManaged -eq $true) { 'cloud-managed' } else { 'on-premises managed' } + + $URI = switch ($Type) { + 'User' { "https://graph.microsoft.com/beta/users/$Id/onPremisesSyncBehavior" } + 'Group' { "https://graph.microsoft.com/beta/groups/$Id/onPremisesSyncBehavior" } + 'Contact' { "https://graph.microsoft.com/beta/contacts/$Id/onPremisesSyncBehavior" } + } + + $Body = @{ + isCloudManaged = $IsCloudManaged + } | ConvertTo-Json -Depth 10 + + $null = New-GraphPOSTRequest -uri $URI -type PATCH -tenantid $TenantFilter -body $Body -AsApp $true + $Message = "Successfully set $Type $DisplayName ($Id) source of authority to $statusText" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set $Type $DisplayName ($Id) source of authority to ${statusText}: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Error' -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPContactPermission.ps1 b/Modules/CIPPCore/Public/Set-CIPPContactPermission.ps1 new file mode 100644 index 000000000000..ae61cc3b3458 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPContactPermission.ps1 @@ -0,0 +1,64 @@ +function Set-CIPPContactPermission { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $APIName = 'Set Contact Permissions', + $Headers, + $RemoveAccess, + $TenantFilter, + $UserID, + $FolderName, + $UserToGetPermissions, + $LoggingName, + $Permissions, + [bool]$SendNotificationToUser = $false + ) + + try { + # If a pretty logging name is not provided, use the ID instead + if ([string]::IsNullOrWhiteSpace($LoggingName) -and $RemoveAccess) { + $LoggingName = $RemoveAccess + } elseif ([string]::IsNullOrWhiteSpace($LoggingName) -and $UserToGetPermissions) { + $LoggingName = $UserToGetPermissions + } + + $ContactParam = [PSCustomObject]@{ + Identity = "$($UserID):\$FolderName" + AccessRights = @($Permissions) + User = $UserToGetPermissions + SendNotificationToUser = $SendNotificationToUser + } + + if ($RemoveAccess) { + if ($PSCmdlet.ShouldProcess("$UserID\$FolderName", "Remove permissions for $LoggingName")) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MailboxFolderPermission' -cmdParams @{Identity = "$($UserID):\$FolderName"; User = $RemoveAccess } + $Result = "Successfully removed access for $LoggingName from contact folder $($ContactParam.Identity)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + } + } else { + if ($PSCmdlet.ShouldProcess("$UserID\$FolderName", "Set permissions for $LoggingName to $Permissions")) { + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxFolderPermission' -cmdParams $ContactParam -Anchor $UserID + } catch { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxFolderPermission' -cmdParams $ContactParam -Anchor $UserID + } + + $Result = "Successfully set permissions on contact folder $($ContactParam.Identity). The user $LoggingName now has $Permissions permissions on this folder." + + if ($SendNotificationToUser) { + $Result += ' A notification has been sent to the user.' + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Warning "Error changing contact permissions $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + $Result = "Failed to set contact permissions for $LoggingName on $UserID : $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + throw $Result + } + + return $Result +} diff --git a/Modules/CIPPCore/Public/Set-CIPPCopyGroupMembers.ps1 b/Modules/CIPPCore/Public/Set-CIPPCopyGroupMembers.ps1 new file mode 100644 index 000000000000..705b6231045b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPCopyGroupMembers.ps1 @@ -0,0 +1,111 @@ +function Set-CIPPCopyGroupMembers { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $Headers, + [string]$UserId, + [string]$CopyFromId, + [string]$TenantFilter, + [string]$APIName = 'Copy User Groups', + [switch]$ExchangeOnly + ) + + $Requests = @( + @{ + id = 'User' + url = 'users/{0}' -f $UserId + method = 'GET' + } + @{ + id = 'UserMembership' + url = 'users/{0}/memberOf' -f $UserId + method = 'GET' + } + @{ + id = 'CopyFromMembership' + url = 'users/{0}/memberOf' -f $CopyFromId + method = 'GET' + } + ) + $Results = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter + $User = ($Results | Where-Object { $_.id -eq 'User' }).body + $CurrentMemberships = ($Results | Where-Object { $_.id -eq 'UserMembership' }).body.value + $CopyFromMemberships = ($Results | Where-Object { $_.id -eq 'CopyFromMembership' }).body.value + + # Write-Information ($Results | ConvertTo-Json -Depth 10) # For debugging + + $ODataBind = 'https://graph.microsoft.com/v1.0/directoryObjects/{0}' -f $User.id + $AddMemberBody = @{ + '@odata.id' = $ODataBind + } | ConvertTo-Json -Compress + + $Success = [System.Collections.Generic.List[object]]::new() + $Errors = [System.Collections.Generic.List[object]]::new() + $Memberships = $CopyFromMemberships | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' -and + $_.groupTypes -notcontains 'DynamicMembership' -and + $_.onPremisesSyncEnabled -ne $true -and + $_.visibility -ne 'Public' -and + $CurrentMemberships.id -notcontains $_.id } + $ScheduleExchangeGroupTask = $false + foreach ($MailGroup in $Memberships) { + try { + if ($PSCmdlet.ShouldProcess($MailGroup.displayName, "Add $UserId to group")) { + if ($MailGroup.MailEnabled -and $MailGroup.ResourceProvisioningOptions -notcontains 'Team' -and $MailGroup.groupTypes -notcontains 'Unified') { + $Params = @{ Identity = $MailGroup.id; Member = $UserId; BypassSecurityGroupManagerCheck = $true } + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true + } catch { + if ($_.Exception.Message -match 'Ex94914C|Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException') { + if (($User.assignedLicenses | Measure-Object).Count -gt 0 -and !$ExchangeOnly.IsPresent) { + $ScheduleExchangeGroupTask = $true + } else { + throw $_ + } + } else { + throw $_ + } + } + } elseif (!$ExchangeOnly.IsPresent) { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($MailGroup.id)/members/`$ref" -tenantid $TenantFilter -body $AddMemberBody -Verbose + } + } + + if ($ScheduleExchangeGroupTask) { + $TaskBody = [PSCustomObject]@{ + TenantFilter = $TenantFilter + Name = "Copy Exchange Group Membership: $UserId from $CopyFromId" + Command = @{ + value = 'Set-CIPPCopyGroupMembers' + } + Parameters = [PSCustomObject]@{ + UserId = $UserId + CopyFromId = $CopyFromId + TenantFilter = $TenantFilter + ExchangeOnly = $true + } + ScheduledTime = [int64](([datetime]::UtcNow).AddMinutes(5) - (Get-Date '1/1/1970')).TotalSeconds + PostExecution = @{ + Webhook = $false + Email = $false + PSA = $false + } + } + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + $Errors.Add("We've scheduled a task to add $UserId to the Exchange group $($MailGroup.displayName)") | Out-Null + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Added $UserId to group $($MailGroup.displayName)" -Sev 'Info' -tenant $TenantFilter + $Success.Add("Added user to group: $($MailGroup.displayName)") | Out-Null + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Errors.Add("We've failed to add the group $($MailGroup.displayName): $($ErrorMessage.NormalizedError)") | Out-Null + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Group adding failed for group $($_.displayName): $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + } + + $Results = [PSCustomObject]@{ + 'Success' = $Success + 'Error' = $Errors + } + + return @($Results) +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 new file mode 100644 index 000000000000..e865512367d1 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAdminConsentRequestPolicy.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheAdminConsentRequestPolicy { + <# + .SYNOPSIS + Caches admin consent request policy and settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache consent policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching admin consent request policy' -sev Info + $ConsentPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/adminConsentRequestPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AdminConsentRequestPolicy' -Data @($ConsentPolicy) + $ConsentPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached admin consent request policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache admin consent request policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 new file mode 100644 index 000000000000..f056e4ec470f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAppRoleAssignments.ps1 @@ -0,0 +1,47 @@ +function Set-CIPPDBCacheAppRoleAssignments { + <# + .SYNOPSIS + Caches application role assignments for a tenant + + .PARAMETER TenantFilter + The tenant to cache app role assignments for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching app role assignments' -sev Info + + # Get all service principals first + $ServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals?$select=id,appId,displayName&$top=999&expand=appRoleAssignments' -tenantid $TenantFilter + + $AllAppRoleAssignments = [System.Collections.Generic.List[object]]::new() + + foreach ($SP in $ServicePrincipals) { + try { + $AppRoleAssignments = $SP.appRoleAssignments + foreach ($Assignment in $AppRoleAssignments) { + # Enrich with service principal info + $Assignment | Add-Member -NotePropertyName 'servicePrincipalDisplayName' -NotePropertyValue $SP.displayName -Force + $Assignment | Add-Member -NotePropertyName 'servicePrincipalAppId' -NotePropertyValue $SP.appId -Force + $AllAppRoleAssignments.Add($Assignment) + } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to get app role assignments for $($SP.displayName): $($_.Exception.Message)" -sev Warning + } + } + + if ($AllAppRoleAssignments.Count -gt 0) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AppRoleAssignments' -Data $AllAppRoleAssignments + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AppRoleAssignments' -Data $AllAppRoleAssignments -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllAppRoleAssignments.Count) app role assignments" -sev Info + } + $AllAppRoleAssignments = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache app role assignments: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 new file mode 100644 index 000000000000..9844836372d6 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheApps.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheApps { + <# + .SYNOPSIS + Caches all application registrations for a tenant + + .PARAMETER TenantFilter + The tenant to cache applications for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching applications' -sev Info + + $Apps = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/applications?$top=999&expand=owners' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Apps' -Data $Apps + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Apps' -Data $Apps -Count + $Apps = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached applications successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache applications: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 new file mode 100644 index 000000000000..587eaa8a587b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationFlowsPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheAuthenticationFlowsPolicy { + <# + .SYNOPSIS + Caches authentication flows policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authentication flows policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authentication flows policy' -sev Info + + $AuthFlowPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationFlowsPolicy' -tenantid $TenantFilter -AsApp $true + + if ($AuthFlowPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationFlowsPolicy' -Data @($AuthFlowPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authentication flows policy successfully' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache authentication flows policy: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 new file mode 100644 index 000000000000..2700a8e2c3c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthenticationMethodsPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheAuthenticationMethodsPolicy { + <# + .SYNOPSIS + Caches authentication methods policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authentication methods policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authentication methods policy' -sev Info + $AuthMethodsPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationMethodsPolicy' -Data @($AuthMethodsPolicy) + $AuthMethodsPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authentication methods policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authentication methods policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 new file mode 100644 index 000000000000..7167e39f66a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheAuthorizationPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheAuthorizationPolicy { + <# + .SYNOPSIS + Caches authorization policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache authorization policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching authorization policy' -sev Info + $AuthPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthorizationPolicy' -Data @($AuthPolicy) + $AuthPolicy = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached authorization policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authorization policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 new file mode 100644 index 000000000000..168866b475c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheB2BManagementPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheB2BManagementPolicy { + <# + .SYNOPSIS + Caches B2B management policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache B2B management policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching B2B management policy' -sev Info + + $LegacyPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/b2bManagementPolicies' -tenantid $TenantFilter + $B2BManagementPolicy = $LegacyPolicies + + if ($B2BManagementPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'B2BManagementPolicy' -Data @($B2BManagementPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached B2B management policy successfully' -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No B2B management policy found' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache B2B management policy: $($_.Exception.Message)" -sev Warning -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 new file mode 100644 index 000000000000..81a21f5bbe9f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheConditionalAccessPolicies.ps1 @@ -0,0 +1,68 @@ +function Set-CIPPDBCacheConditionalAccessPolicies { + <# + .SYNOPSIS + Caches all Conditional Access policies, named locations, and authentication strengths for a tenant (if CA capable) + + .PARAMETER TenantFilter + The tenant to cache CA policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessCache' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Azure AD Premium license, skipping CA' -sev Info + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Conditional Access policies' -sev Info + + try { + $CAPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $TenantFilter + if ($CAPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ConditionalAccessPolicies' -Data $CAPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ConditionalAccessPolicies' -Data $CAPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($CAPolicies.Count) CA policies" -sev Info + } + $CAPolicies = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache CA policies: $($_.Exception.Message)" -sev Warning + } + + try { + $NamedLocations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations?$top=999' -tenantid $TenantFilter + + if ($NamedLocations) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'NamedLocations' -Data $NamedLocations + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'NamedLocations' -Data $NamedLocations -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($NamedLocations.Count) named locations" -sev Info + } + $NamedLocations = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache named locations: $($_.Exception.Message)" -sev Warning + } + + try { + $AuthStrengths = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies' -tenantid $TenantFilter + + if ($AuthStrengths) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationStrengths' -Data $AuthStrengths + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'AuthenticationStrengths' -Data $AuthStrengths -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AuthStrengths.Count) authentication strengths" -sev Info + } + $AuthStrengths = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache authentication strengths: $($_.Exception.Message)" -sev Warning + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached CA data successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Conditional Access data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 new file mode 100644 index 000000000000..861d0c25a50c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheCredentialUserRegistrationDetails.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheCredentialUserRegistrationDetails { + <# + .SYNOPSIS + Caches MFA and SSPR registration details for all users in a tenant + + .PARAMETER TenantFilter + The tenant to cache credential user registration details for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching credential user registration details' -sev Info + + $CredentialUserRegistrationDetails = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails' -tenantid $TenantFilter + + if ($CredentialUserRegistrationDetails) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CredentialUserRegistrationDetails' -Data $CredentialUserRegistrationDetails + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CredentialUserRegistrationDetails' -Data $CredentialUserRegistrationDetails -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($CredentialUserRegistrationDetails.Count) credential user registration details" -sev Info + } + $CredentialUserRegistrationDetails = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache credential user registration details: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 new file mode 100644 index 000000000000..e9e66753dcd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheCrossTenantAccessPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheCrossTenantAccessPolicy { + <# + .SYNOPSIS + Caches cross-tenant access policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching cross-tenant access policy' -sev Info + $CrossTenantPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/crossTenantAccessPolicy/default' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CrossTenantAccessPolicy' -Data @($CrossTenantPolicy) + $CrossTenantPolicy = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached cross-tenant access policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache cross-tenant access policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 new file mode 100644 index 000000000000..556094e09ada --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDefaultAppManagementPolicy.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheDefaultAppManagementPolicy { + <# + .SYNOPSIS + Caches default app management policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching default app management policy' -sev Info + $AppMgmtPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/defaultAppManagementPolicy' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DefaultAppManagementPolicy' -Data @($AppMgmtPolicy) + $AppMgmtPolicy = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached default app management policy successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache default app management policy: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 new file mode 100644 index 000000000000..ec2da92abc21 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceRegistrationPolicy.ps1 @@ -0,0 +1,31 @@ +function Set-CIPPDBCacheDeviceRegistrationPolicy { + <# + .SYNOPSIS + Caches device registration policy for a tenant + + .PARAMETER TenantFilter + The tenant to cache device registration policy for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching device registration policy' -sev Info + + $DeviceRegistrationPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $TenantFilter + + if ($DeviceRegistrationPolicy) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DeviceRegistrationPolicy' -Data @($DeviceRegistrationPolicy) + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached device registration policy successfully' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache device registration policy: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 new file mode 100644 index 000000000000..aa2c1f6b9d01 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDeviceSettings.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheDeviceSettings { + <# + .SYNOPSIS + Caches device settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache device settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching device settings' -sev Info + + $DeviceSettings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/deviceLocalCredentials' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DeviceSettings' -Data @($DeviceSettings) + $DeviceSettings = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached device settings successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache device settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 new file mode 100644 index 000000000000..3bc9b96a0ec7 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDevices.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheDevices { + <# + .SYNOPSIS + Caches all Azure AD devices for a tenant + + .PARAMETER TenantFilter + The tenant to cache devices for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Azure AD devices' -sev Info + + $Devices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices?$top=999&$select=id,displayName,operatingSystem,operatingSystemVersion,trustType,accountEnabled,approximateLastSignInDateTime' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Devices' -Data $Devices + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Devices' -Data $Devices -Count + $Devices = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Azure AD devices successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Azure AD devices: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 new file mode 100644 index 000000000000..dcd28623b7e9 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDirectoryRecommendations.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheDirectoryRecommendations { + <# + .SYNOPSIS + Caches directory recommendations for a tenant + + .PARAMETER TenantFilter + The tenant to cache recommendations for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory recommendations' -sev Info + + $Recommendations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/recommendations?$top=999' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DirectoryRecommendations' -Data $Recommendations + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DirectoryRecommendations' -Data $Recommendations -Count + $Recommendations = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory recommendations successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache directory recommendations: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 new file mode 100644 index 000000000000..a4943be1759d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheDomains.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheDomains { + <# + .SYNOPSIS + Caches domains for a tenant + + .PARAMETER TenantFilter + The tenant to cache domains for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching domains' -sev Info + $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Domains' -Data @($Domains) + $Domains = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached domains successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache domains: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 new file mode 100644 index 000000000000..31e57744c336 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAcceptedDomains.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoAcceptedDomains { + <# + .SYNOPSIS + Caches Exchange Online Accepted Domains + + .PARAMETER TenantFilter + The tenant to cache accepted domains for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Accepted Domains' -sev Info + + $AcceptedDomains = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AcceptedDomain' + + if ($AcceptedDomains) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAcceptedDomains' -Data $AcceptedDomains + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAcceptedDomains' -Data $AcceptedDomains -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AcceptedDomains.Count) Accepted Domains" -sev Info + } + $AcceptedDomains = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Accepted Domains: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAdminAuditLogConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAdminAuditLogConfig.ps1 new file mode 100644 index 000000000000..9ee38f5e1185 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAdminAuditLogConfig.ps1 @@ -0,0 +1,32 @@ +function Set-CIPPDBCacheExoAdminAuditLogConfig { + <# + .SYNOPSIS + Caches Exchange Online Admin Audit Log Configuration + + .PARAMETER TenantFilter + The tenant to cache admin audit log config for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Admin Audit Log configuration' -sev Info + + $AuditConfig = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AdminAuditLogConfig' + + if ($AuditConfig) { + # AdminAuditLogConfig returns a single object, wrap in array for consistency + $AuditConfigArray = @($AuditConfig) + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAdminAuditLogConfig' -Data $AuditConfigArray + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAdminAuditLogConfig' -Data $AuditConfigArray -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Exchange Admin Audit Log configuration' -sev Info + } + $AuditConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Admin Audit Log configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 new file mode 100644 index 000000000000..cfd709c4b04b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoAntiPhishPolicies { + <# + .SYNOPSIS + Caches Exchange Online Anti-Phishing policies and rules + + .PARAMETER TenantFilter + The tenant to cache Anti-Phishing data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Anti-Phishing policies and rules' -sev Info + + # Get Anti-Phishing policies + $AntiPhishPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishPolicy' + if ($AntiPhishPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicies' -Data $AntiPhishPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicies' -Data $AntiPhishPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AntiPhishPolicies.Count) Anti-Phishing policies" -sev Info + } + $AntiPhishPolicies = $null + + # Get Anti-Phishing rules + $AntiPhishRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishRule' + if ($AntiPhishRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishRules' -Data $AntiPhishRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishRules' -Data $AntiPhishRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AntiPhishRules.Count) Anti-Phishing rules" -sev Info + } + $AntiPhishRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Anti-Phishing data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicy.ps1 new file mode 100644 index 000000000000..ba0a6603efff --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAntiPhishPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoAntiPhishPolicy { + <# + .SYNOPSIS + Caches Exchange Online Anti-Phish policies (detailed) + + .PARAMETER TenantFilter + The tenant to cache Anti-Phish policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Anti-Phish policies (detailed)' -sev Info + + $AntiPhishPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AntiPhishPolicy' + if ($AntiPhishPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicy' -Data $AntiPhishPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAntiPhishPolicy' -Data $AntiPhishPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AntiPhishPolicies.Count) Anti-Phish policies (detailed)" -sev Info + } + $AntiPhishPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Anti-Phish policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAtpPolicyForO365.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAtpPolicyForO365.ps1 new file mode 100644 index 000000000000..96912b26c3ae --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoAtpPolicyForO365.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoAtpPolicyForO365 { + <# + .SYNOPSIS + Caches Exchange Online ATP policies for Office 365 + + .PARAMETER TenantFilter + The tenant to cache ATP policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange ATP policies for Office 365' -sev Info + + $AtpPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AtpPolicyForO365' + if ($AtpPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAtpPolicyForO365' -Data $AtpPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoAtpPolicyForO365' -Data $AtpPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AtpPolicies.Count) ATP policies for Office 365" -sev Info + } + $AtpPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache ATP policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 new file mode 100644 index 000000000000..161d582f3fe5 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoDkimSigningConfig.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoDkimSigningConfig { + <# + .SYNOPSIS + Caches Exchange Online DKIM signing configuration + + .PARAMETER TenantFilter + The tenant to cache DKIM configuration for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange DKIM signing configuration' -sev Info + + $DkimConfig = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DkimSigningConfig' + + if ($DkimConfig) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoDkimSigningConfig' -Data $DkimConfig + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoDkimSigningConfig' -Data $DkimConfig -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($DkimConfig.Count) DKIM configurations" -sev Info + } + $DkimConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache DKIM configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedContentFilterPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedContentFilterPolicy.ps1 new file mode 100644 index 000000000000..c8fc088bf333 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedContentFilterPolicy.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheExoHostedContentFilterPolicy { + <# + .SYNOPSIS + Caches Exchange Online Hosted Content Filter policies + + .PARAMETER TenantFilter + The tenant to cache Hosted Content Filter data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Hosted Content Filter policies' -sev Info + $HostedContentFilterPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-HostedContentFilterPolicy' + if ($HostedContentFilterPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoHostedContentFilterPolicy' -Data $HostedContentFilterPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoHostedContentFilterPolicy' -Data $HostedContentFilterPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($HostedContentFilterPolicies.Count) Hosted Content Filter policies" -sev Info + } + $HostedContentFilterPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Hosted Content Filter data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy.ps1 new file mode 100644 index 000000000000..1b9f0319e578 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoHostedOutboundSpamFilterPolicy { + <# + .SYNOPSIS + Caches Exchange Online Hosted Outbound Spam Filter policies + + .PARAMETER TenantFilter + The tenant to cache Hosted Outbound Spam Filter data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Hosted Outbound Spam Filter policies' -sev Info + + $HostedOutboundSpamFilterPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-HostedOutboundSpamFilterPolicy' + if ($HostedOutboundSpamFilterPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoHostedOutboundSpamFilterPolicy' -Data $HostedOutboundSpamFilterPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoHostedOutboundSpamFilterPolicy' -Data $HostedOutboundSpamFilterPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($HostedOutboundSpamFilterPolicies.Count) Hosted Outbound Spam Filter policies" -sev Info + } + $HostedOutboundSpamFilterPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Hosted Outbound Spam Filter data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 new file mode 100644 index 000000000000..025401125b02 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoMalwareFilterPolicies { + <# + .SYNOPSIS + Caches Exchange Online Malware Filter policies and rules + + .PARAMETER TenantFilter + The tenant to cache Malware Filter data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Malware Filter policies and rules' -sev Info + + # Get Malware Filter policies + $MalwarePolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterPolicy' + if ($MalwarePolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicies' -Data $MalwarePolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicies' -Data $MalwarePolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MalwarePolicies.Count) Malware Filter policies" -sev Info + } + $MalwarePolicies = $null + + # Get Malware Filter rules + $MalwareRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterRule' + if ($MalwareRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterRules' -Data $MalwareRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterRules' -Data $MalwareRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MalwareRules.Count) Malware Filter rules" -sev Info + } + $MalwareRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Malware Filter data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicy.ps1 new file mode 100644 index 000000000000..3103dbebf29c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoMalwareFilterPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoMalwareFilterPolicy { + <# + .SYNOPSIS + Caches Exchange Online Malware Filter policies (detailed) + + .PARAMETER TenantFilter + The tenant to cache Malware Filter policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Malware Filter policies (detailed)' -sev Info + + $MalwareFilterPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MalwareFilterPolicy' + if ($MalwareFilterPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicy' -Data $MalwareFilterPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoMalwareFilterPolicy' -Data $MalwareFilterPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($MalwareFilterPolicies.Count) Malware Filter policies (detailed)" -sev Info + } + $MalwareFilterPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Malware Filter policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 new file mode 100644 index 000000000000..d0733cac780a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoOrganizationConfig.ps1 @@ -0,0 +1,32 @@ +function Set-CIPPDBCacheExoOrganizationConfig { + <# + .SYNOPSIS + Caches Exchange Online Organization Configuration + + .PARAMETER TenantFilter + The tenant to cache organization configuration for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Organization configuration' -sev Info + + $OrgConfig = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-OrganizationConfig' + + if ($OrgConfig) { + # OrganizationConfig returns a single object, wrap in array for consistency + $OrgConfigArray = @($OrgConfig) + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoOrganizationConfig' -Data $OrgConfigArray + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoOrganizationConfig' -Data $OrgConfigArray -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Exchange Organization configuration' -sev Info + } + $OrgConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Organization configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoPresetSecurityPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoPresetSecurityPolicy.ps1 new file mode 100644 index 000000000000..9d227da4122e --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoPresetSecurityPolicy.ps1 @@ -0,0 +1,42 @@ +function Set-CIPPDBCacheExoPresetSecurityPolicy { + <# + .SYNOPSIS + Caches Exchange Online Preset Security Policies (EOP and ATP Protection Policy Rules) + + .PARAMETER TenantFilter + The tenant to cache preset security policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Preset Security Policies' -sev Info + + $EOPRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-EOPProtectionPolicyRule' + $ATPRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-ATPProtectionPolicyRule' + + # Combine both rule types into a single collection + $AllRules = @() + if ($EOPRules) { + $AllRules += $EOPRules + } + if ($ATPRules) { + $AllRules += $ATPRules + } + + if ($AllRules.Count -gt 0) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoPresetSecurityPolicy' -Data $AllRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoPresetSecurityPolicy' -Data $AllRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllRules.Count) Preset Security Policy rules" -sev Info + } + $EOPRules = $null + $ATPRules = $null + $AllRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Preset Security Policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoQuarantinePolicy.ps1 new file mode 100644 index 000000000000..894d03f3b1b4 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoQuarantinePolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoQuarantinePolicy { + <# + .SYNOPSIS + Caches Exchange Online Quarantine policies + + .PARAMETER TenantFilter + The tenant to cache Quarantine policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Quarantine policies' -sev Info + + $QuarantinePolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-QuarantinePolicy' + if ($QuarantinePolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoQuarantinePolicy' -Data $QuarantinePolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoQuarantinePolicy' -Data $QuarantinePolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($QuarantinePolicies.Count) Quarantine policies" -sev Info + } + $QuarantinePolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Quarantine policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoRemoteDomain.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoRemoteDomain.ps1 new file mode 100644 index 000000000000..d22c8fd0ccf1 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoRemoteDomain.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoRemoteDomain { + <# + .SYNOPSIS + Caches Exchange Online Remote Domains + + .PARAMETER TenantFilter + The tenant to cache Remote Domain data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Remote Domains' -sev Info + + $RemoteDomains = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-RemoteDomain' + if ($RemoteDomains) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoRemoteDomain' -Data $RemoteDomains + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoRemoteDomain' -Data $RemoteDomains -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RemoteDomains.Count) Remote Domains" -sev Info + } + $RemoteDomains = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Remote Domain data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 new file mode 100644 index 000000000000..e49576235842 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoSafeAttachmentPolicies { + <# + .SYNOPSIS + Caches Exchange Online Safe Attachment policies and rules + + .PARAMETER TenantFilter + The tenant to cache Safe Attachment data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Attachment policies and rules' -sev Info + + # Get Safe Attachment policies + $SafeAttachmentPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentPolicy' + if ($SafeAttachmentPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicies' -Data $SafeAttachmentPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicies' -Data $SafeAttachmentPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeAttachmentPolicies.Count) Safe Attachment policies" -sev Info + } + $SafeAttachmentPolicies = $null + + # Get Safe Attachment rules + $SafeAttachmentRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentRule' + if ($SafeAttachmentRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentRules' -Data $SafeAttachmentRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentRules' -Data $SafeAttachmentRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeAttachmentRules.Count) Safe Attachment rules" -sev Info + } + $SafeAttachmentRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Attachment data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicy.ps1 new file mode 100644 index 000000000000..c6869a72064a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeAttachmentPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoSafeAttachmentPolicy { + <# + .SYNOPSIS + Caches Exchange Online Safe Attachment policies (detailed) + + .PARAMETER TenantFilter + The tenant to cache Safe Attachment policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Attachment policies (detailed)' -sev Info + + $SafeAttachmentPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeAttachmentPolicy' + if ($SafeAttachmentPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicy' -Data $SafeAttachmentPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeAttachmentPolicy' -Data $SafeAttachmentPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeAttachmentPolicies.Count) Safe Attachment policies (detailed)" -sev Info + } + $SafeAttachmentPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Attachment policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 new file mode 100644 index 000000000000..33276c8fb993 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheExoSafeLinksPolicies { + <# + .SYNOPSIS + Caches Exchange Online Safe Links policies and rules + + .PARAMETER TenantFilter + The tenant to cache Safe Links data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Links policies and rules' -sev Info + + # Get Safe Links policies + $SafeLinksPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksPolicy' + if ($SafeLinksPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicies' -Data $SafeLinksPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicies' -Data $SafeLinksPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeLinksPolicies.Count) Safe Links policies" -sev Info + } + $SafeLinksPolicies = $null + + # Get Safe Links rules + $SafeLinksRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksRule' + if ($SafeLinksRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksRules' -Data $SafeLinksRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksRules' -Data $SafeLinksRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeLinksRules.Count) Safe Links rules" -sev Info + } + $SafeLinksRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Links data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicy.ps1 new file mode 100644 index 000000000000..176e3c76f168 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSafeLinksPolicy.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheExoSafeLinksPolicy { + <# + .SYNOPSIS + Caches Exchange Online Safe Links policies (detailed) + + .PARAMETER TenantFilter + The tenant to cache Safe Links policy data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Safe Links policies (detailed)' -sev Info + + $SafeLinksPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SafeLinksPolicy' + if ($SafeLinksPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicy' -Data $SafeLinksPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSafeLinksPolicy' -Data $SafeLinksPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SafeLinksPolicies.Count) Safe Links policies (detailed)" -sev Info + } + $SafeLinksPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Safe Links policy data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSharingPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSharingPolicy.ps1 new file mode 100644 index 000000000000..4b59088adfa0 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoSharingPolicy.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoSharingPolicy { + <# + .SYNOPSIS + Caches Exchange Online Sharing Policies + + .PARAMETER TenantFilter + The tenant to cache sharing policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Sharing Policies' -sev Info + + $SharingPolicies = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-SharingPolicy' + + if ($SharingPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSharingPolicy' -Data $SharingPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoSharingPolicy' -Data $SharingPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($SharingPolicies.Count) Sharing Policies" -sev Info + } + $SharingPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Sharing Policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTenantAllowBlockList.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTenantAllowBlockList.ps1 new file mode 100644 index 000000000000..fe6c1ee1f9b4 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTenantAllowBlockList.ps1 @@ -0,0 +1,52 @@ +function Set-CIPPDBCacheExoTenantAllowBlockList { + <# + .SYNOPSIS + Caches Exchange Online Tenant Allow/Block List items + + .PARAMETER TenantFilter + The tenant to cache tenant allow/block list for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Tenant Allow/Block List items' -sev Info + + $SenderItems = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'Sender' } + $UrlItems = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'Url' } + $FileHashItems = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'FileHash' } + + # Combine all list types into a single collection + $AllItems = @() + if ($SenderItems) { + $AllItems += $SenderItems + } + if ($UrlItems) { + $AllItems += $UrlItems + } + if ($FileHashItems) { + $AllItems += $FileHashItems + } + + if ($AllItems.Count -gt 0) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTenantAllowBlockList' -Data $AllItems + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTenantAllowBlockList' -Data $AllItems -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllItems.Count) Tenant Allow/Block List items" -sev Info + } else { + # Even if empty, store an empty array so test knows cache was populated + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTenantAllowBlockList' -Data @() + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTenantAllowBlockList' -Data @() -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached empty Tenant Allow/Block List' -sev Info + } + $SenderItems = $null + $UrlItems = $null + $FileHashItems = $null + $AllItems = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Tenant Allow/Block List: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 new file mode 100644 index 000000000000..5328e63b99af --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheExoTransportRules.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheExoTransportRules { + <# + .SYNOPSIS + Caches Exchange Online Transport Rules (Mail Flow Rules) + + .PARAMETER TenantFilter + The tenant to cache Transport Rules for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Exchange Transport Rules' -sev Info + + $TransportRules = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-TransportRule' + + if ($TransportRules) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTransportRules' -Data $TransportRules + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ExoTransportRules' -Data $TransportRules -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($TransportRules.Count) Transport Rules" -sev Info + } + $TransportRules = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Transport Rules: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 new file mode 100644 index 000000000000..2725887c2fa9 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheGroups.ps1 @@ -0,0 +1,58 @@ +function Set-CIPPDBCacheGroups { + <# + .SYNOPSIS + Caches all groups for a tenant + + .PARAMETER TenantFilter + The tenant to cache groups for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching groups' -sev Info + + $Groups = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName,groupTypes,mail,mailEnabled,securityEnabled,membershipRule,onPremisesSyncEnabled' -tenantid $TenantFilter + + # Build bulk request for group members + $MemberRequests = $Groups | ForEach-Object { + if ($_.id) { + [PSCustomObject]@{ + id = $_.id + method = 'GET' + url = "/groups/$($_.id)/members?`$select=id,displayName,userPrincipalName" + } + } + } + + if ($MemberRequests) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Fetching group members' -sev Info + $MemberResults = New-GraphBulkRequest -Requests @($MemberRequests) -tenantid $TenantFilter + + # Add members to each group object + $GroupsWithMembers = foreach ($Group in $Groups) { + $Members = ($MemberResults | Where-Object { $_.id -eq $Group.id }).body.value + $Group | Add-Member -NotePropertyName 'members' -NotePropertyValue $Members -Force + $Group + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $GroupsWithMembers + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $GroupsWithMembers -Count + $Groups = $null + $GroupsWithMembers = $null + } else { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $Groups + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' -Data $Groups -Count + $Groups = $null + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached groups with members successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache groups: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 new file mode 100644 index 000000000000..96a1b5f02f52 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheGuests.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheGuests { + <# + .SYNOPSIS + Caches all guest users for a tenant + + .PARAMETER TenantFilter + The tenant to cache guest users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching guest users' -sev Info + + $Guests = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=userType eq 'Guest'&`$expand=sponsors&`$top=999" -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Guests' -Data $Guests + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Guests' -Data $Guests -Count + $Guests = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached guest users successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache guest users: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 new file mode 100644 index 000000000000..3330ad5f8255 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntuneAppProtectionPolicies.ps1 @@ -0,0 +1,39 @@ +function Set-CIPPDBCacheIntuneAppProtectionPolicies { + <# + .SYNOPSIS + Caches Intune App Protection Policies + + .PARAMETER TenantFilter + The tenant to cache app protection policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Intune App Protection Policies' -sev Info + + # iOS Managed App Protection Policies + $IosPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/iosManagedAppProtections?$expand=assignments' -tenantid $TenantFilter + if ($IosPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneIosAppProtectionPolicies' -Data $IosPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneIosAppProtectionPolicies' -Data $IosPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($IosPolicies.Count) iOS app protection policies" -sev Info + } + $IosPolicies = $null + + # Android Managed App Protection Policies + $AndroidPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceAppManagement/androidManagedAppProtections?$expand=assignments' -tenantid $TenantFilter + if ($AndroidPolicies) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneAndroidAppProtectionPolicies' -Data $AndroidPolicies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneAndroidAppProtectionPolicies' -Data $AndroidPolicies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AndroidPolicies.Count) Android app protection policies" -sev Info + } + $AndroidPolicies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache App Protection Policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 new file mode 100644 index 000000000000..77aebe9bfa1d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheIntunePolicies.ps1 @@ -0,0 +1,148 @@ +function Set-CIPPDBCacheIntunePolicies { + <# + .SYNOPSIS + Caches all Intune policies for a tenant (if Intune capable) + + .PARAMETER TenantFilter + The tenant to cache Intune policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'IntunePoliciesCache' -TenantFilter $TenantFilter -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Intune license, skipping' -sev Info + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Intune policies' -sev Info + + $PolicyTypes = @( + @{ Type = 'DeviceCompliancePolicies'; Uri = '/deviceManagement/deviceCompliancePolicies?$top=999&$expand=assignments'; FetchDeviceStatuses = $true } + @{ Type = 'DeviceConfigurations'; Uri = '/deviceManagement/deviceConfigurations?$top=999&$expand=assignments' } + @{ Type = 'ConfigurationPolicies'; Uri = '/deviceManagement/configurationPolicies?$top=999&$expand=assignments,settings' } + @{ Type = 'GroupPolicyConfigurations'; Uri = '/deviceManagement/groupPolicyConfigurations?$top=999&$expand=assignments' } + @{ Type = 'MobileAppConfigurations'; Uri = '/deviceManagement/mobileAppConfigurations?$top=999&$expand=assignments' } + @{ Type = 'AppProtectionPolicies'; Uri = '/deviceAppManagement/managedAppPolicies?$top=999'; FetchAssignments = $true } + @{ Type = 'WindowsAutopilotDeploymentProfiles'; Uri = '/deviceManagement/windowsAutopilotDeploymentProfiles?$top=999&$expand=assignments' } + @{ Type = 'DeviceEnrollmentConfigurations'; Uri = '/deviceManagement/deviceEnrollmentConfigurations?$top=999'; FetchAssignments = $true } + @{ Type = 'DeviceManagementScripts'; Uri = '/deviceManagement/deviceManagementScripts?$top=999&$expand=assignments' } + @{ Type = 'MobileApps'; Uri = '/deviceAppManagement/mobileApps?$top=999&$select=id,displayName,description,publisher,isAssigned,createdDateTime,lastModifiedDateTime'; FetchAssignments = $true } + ) + + # Build bulk requests for all policy types + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Fetching all policy types using bulk request' -sev Info + $PolicyRequests = foreach ($PolicyType in $PolicyTypes) { + [PSCustomObject]@{ + id = $PolicyType.Type + method = 'GET' + url = $PolicyType.Uri + } + } + + try { + $PolicyResults = New-GraphBulkRequest -Requests @($PolicyRequests) -tenantid $TenantFilter + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to fetch policies in bulk: $($_.Exception.Message)" -sev Error + throw + } + + # Process each policy type result + foreach ($Result in $PolicyResults) { + $PolicyType = $PolicyTypes | Where-Object { $_.Type -eq $Result.id } + if (-not $PolicyType) { continue } + + try { + $Policies = $Result.body.value ?? $Result.body + + if (-not $Policies) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "No policies found for $($PolicyType.Type)" -sev Debug + continue + } + + # Get assignments for policies that don't support expand using bulk requests + if ($PolicyType.FetchAssignments -and ($Policies | Measure-Object).Count -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Fetching assignments for $($Policies.Count) $($PolicyType.Type) using bulk request" -sev Debug + + $BaseUri = ($PolicyType.Uri -split '\?')[0] + # Build bulk request array for assignments + $AssignmentRequests = $Policies | ForEach-Object { + [PSCustomObject]@{ + id = $_.id + method = 'GET' + url = "$BaseUri/$($_.id)/assignments" + } + } + + try { + $AssignmentResults = New-GraphBulkRequest -Requests @($AssignmentRequests) -tenantid $TenantFilter + + if ($AssignmentResults) { + foreach ($AssignResult in $AssignmentResults) { + $Policy = $Policies | Where-Object { $_.id -eq $AssignResult.id } + if ($Policy) { + $Assignments = $AssignResult.body.value ?? $AssignResult.body + $Policy | Add-Member -NotePropertyName 'assignments' -NotePropertyValue $Assignments -Force + } + } + } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to fetch assignments in bulk for $($PolicyType.Type): $($_.Exception.Message)" -sev Warning + } + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type "Intune$($PolicyType.Type)" -Data $Policies + Add-CIPPDbItem -TenantFilter $TenantFilter -Type "Intune$($PolicyType.Type)" -Data $Policies -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($Policies.Count) $($PolicyType.Type)" -sev Info + + # Fetch device statuses for compliance policies using bulk requests + if ($PolicyType.FetchDeviceStatuses -and ($Policies | Measure-Object).Count -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Fetching device statuses for $($Policies.Count) compliance policies using bulk request" -sev Info + + $BaseUri = ($PolicyType.Uri -split '\?')[0] + # Build bulk request array + $DeviceStatusRequests = $Policies | ForEach-Object { + [PSCustomObject]@{ + id = $_.id + method = 'GET' + url = "$BaseUri/$($_.id)/deviceStatuses?`$top=999" + } + } + + try { + $DeviceStatusResults = New-GraphBulkRequest -Requests @($DeviceStatusRequests) -tenantid $TenantFilter + + if ($DeviceStatusResults) { + foreach ($StatusResult in $DeviceStatusResults) { + $Data = $StatusResult.body.value ?? $StatusResult.body + if ($Data) { + # Store device statuses with policy ID in the type name (matching extension cache pattern) + $StatusType = "Intune$($PolicyType.Type)_$($StatusResult.id)" + Add-CIPPDbItem -TenantFilter $TenantFilter -Type $StatusType -Data $Data + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $(($Data | Measure-Object).Count) device statuses for policy ID $($StatusResult.id)" -sev Debug + } + } + } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to fetch device statuses in bulk: $($_.Exception.Message)" -sev Warning + } + } + + $Policies = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache $($PolicyType.Type): $($_.Exception.Message)" -sev Warning + } + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Intune policies successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Intune policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 new file mode 100644 index 000000000000..5556ac3d307c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheLicenseOverview.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheLicenseOverview { + <# + .SYNOPSIS + Caches license overview for a tenant + + .PARAMETER TenantFilter + The tenant to cache license overview for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching license overview' -sev Info + + $LicenseOverview = Get-CIPPLicenseOverview -TenantFilter $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'LicenseOverview' -Data @($LicenseOverview) + $LicenseOverview = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached license overview successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache license overview: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 new file mode 100644 index 000000000000..131f5a1ac16c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheMFAState.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheMFAState { + <# + .SYNOPSIS + Caches MFA state for a tenant + + .PARAMETER TenantFilter + The tenant to cache MFA state for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching MFA state' -sev Info + + $MFAState = Get-CIPPMFAState -TenantFilter $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MFAState' -Data @($MFAState) + $MFAState = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached MFA state successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache MFA state: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxUsage.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxUsage.ps1 new file mode 100644 index 000000000000..fdfaef374765 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxUsage.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheMailboxUsage { + <# + .SYNOPSIS + Caches mailbox usage details for a tenant + + .PARAMETER TenantFilter + The tenant to cache mailbox usage for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching mailbox usage' -sev Info + + $MailboxUsage = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getMailboxUsageDetail(period='D7')?`$format=application%2fjson" -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxUsage' -Data $MailboxUsage + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxUsage' -Data $MailboxUsage -Count + $MailboxUsage = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached mailbox usage successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache mailbox usage: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxes.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxes.ps1 new file mode 100644 index 000000000000..3e3d93f776ba --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheMailboxes.ps1 @@ -0,0 +1,73 @@ +function Set-CIPPDBCacheMailboxes { + <# + .SYNOPSIS + Caches all mailboxes, CAS mailboxes, and mailbox permissions for a tenant + + .PARAMETER TenantFilter + The tenant to cache mailboxes for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching mailboxes' -sev Info + + # Get mailboxes with select properties + $Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress,HiddenFromAddressListsEnabled,ExternalDirectoryObjectId,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled' + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Get-Mailbox' + cmdParams = @{} + Select = $Select + } + $Mailboxes = (New-ExoRequest @ExoRequest) | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, + @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, + @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, + @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, + @{ Name = 'recipientType'; Expression = { $_.'RecipientType' } }, + @{ Name = 'recipientTypeDetails'; Expression = { $_.'RecipientTypeDetails' } }, + @{ Name = 'AdditionalEmailAddresses'; Expression = { ($_.'EmailAddresses' | Where-Object { $_ -clike 'smtp:*' }).Replace('smtp:', '') -join ', ' } }, + @{ Name = 'ForwardingSmtpAddress'; Expression = { $_.'ForwardingSmtpAddress' -replace 'smtp:', '' } }, + @{ Name = 'InternalForwardingAddress'; Expression = { $_.'ForwardingAddress' } }, + DeliverToMailboxAndForward, + HiddenFromAddressListsEnabled, + ExternalDirectoryObjectId, + MessageCopyForSendOnBehalfEnabled, + MessageCopyForSentAsEnabled + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' -Data $Mailboxes + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' -Data $Mailboxes -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached mailboxes successfully' -sev Info + + # Get CAS mailboxes + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching CAS mailboxes' -sev Info + $CASMailboxes = New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($TenantFilter)/CasMailbox" -Tenantid $TenantFilter -scope 'ExchangeOnline' -noPagination $true + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CASMailbox' -Data $CASMailboxes + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CASMailbox' -Data $CASMailboxes -Count + $CASMailboxes = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached CAS mailboxes successfully' -sev Info + + # Get mailbox permissions using bulk request + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching mailbox permissions' -sev Info + $ExoBulkRequests = foreach ($Mailbox in $Mailboxes) { + @{ + CmdletInput = @{ + CmdletName = 'Get-MailboxPermission' + Parameters = @{ Identity = $Mailbox.UPN } + } + } + } + $MailboxPermissions = New-ExoBulkRequest -cmdletArray @($ExoBulkRequests) -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxPermissions' -Data $MailboxPermissions + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxPermissions' -Data $MailboxPermissions -Count + $MailboxPermissions = $null + $Mailboxes = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached mailbox permissions successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache mailboxes: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 new file mode 100644 index 000000000000..9ab751d41ce0 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDeviceEncryptionStates.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheManagedDeviceEncryptionStates { + <# + .SYNOPSIS + Caches encryption states (BitLocker/FileVault) for managed devices in a tenant + + .PARAMETER TenantFilter + The tenant to cache managed device encryption states for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching managed device encryption states' -sev Info + + $ManagedDeviceEncryptionStates = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDeviceEncryptionStates?$top=999' -tenantid $TenantFilter + + if ($ManagedDeviceEncryptionStates) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDeviceEncryptionStates' -Data $ManagedDeviceEncryptionStates + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDeviceEncryptionStates' -Data $ManagedDeviceEncryptionStates -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($ManagedDeviceEncryptionStates.Count) managed device encryption states" -sev Info + } + $ManagedDeviceEncryptionStates = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache managed device encryption states: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 new file mode 100644 index 000000000000..f9f6fbb7f11d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheManagedDevices.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheManagedDevices { + <# + .SYNOPSIS + Caches all Intune managed devices for a tenant + + .PARAMETER TenantFilter + The tenant to cache managed devices for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching managed devices' -sev Info + $ManagedDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDevices?$top=999&$select=id,deviceName,operatingSystem,osVersion,complianceState,managedDeviceOwnerType,enrolledDateTime,lastSyncDateTime' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' -Data $ManagedDevices + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' -Data $ManagedDevices -Count + $ManagedDevices = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached managed devices successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache managed devices: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 new file mode 100644 index 000000000000..3c4da6f7d188 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheOAuth2PermissionGrants.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheOAuth2PermissionGrants { + <# + .SYNOPSIS + Caches OAuth2 permission grants (delegated permissions) for a tenant + + .PARAMETER TenantFilter + The tenant to cache OAuth2 permission grants for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching OAuth2 permission grants' -sev Info + + $OAuth2PermissionGrants = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/oauth2PermissionGrants?$top=999' -tenantid $TenantFilter + + if ($OAuth2PermissionGrants) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OAuth2PermissionGrants' -Data $OAuth2PermissionGrants + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OAuth2PermissionGrants' -Data $OAuth2PermissionGrants -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($OAuth2PermissionGrants.Count) OAuth2 permission grants" -sev Info + } + $OAuth2PermissionGrants = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache OAuth2 permission grants: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheOneDriveUsage.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheOneDriveUsage.ps1 new file mode 100644 index 000000000000..7ee193199394 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheOneDriveUsage.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheOneDriveUsage { + <# + .SYNOPSIS + Caches OneDrive usage details for a tenant + + .PARAMETER TenantFilter + The tenant to cache OneDrive usage for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching OneDrive usage' -sev Info + + $OneDriveUsage = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getOneDriveUsageAccountDetail(period='D7')?`$format=application%2fjson" -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OneDriveUsage' -Data $OneDriveUsage + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OneDriveUsage' -Data $OneDriveUsage -Count + $OneDriveUsage = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached OneDrive usage successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache OneDrive usage: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 new file mode 100644 index 000000000000..c6c32918367b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheOrganization.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheOrganization { + <# + .SYNOPSIS + Caches organization information for a tenant + + .PARAMETER TenantFilter + The tenant to cache organization data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching organization data' -sev Info + + $Organization = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Organization' -Data $Organization + $Organization = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached organization data successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache organization data: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 new file mode 100644 index 000000000000..24f8dbef7d8b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCachePIMSettings.ps1 @@ -0,0 +1,56 @@ +function Set-CIPPDBCachePIMSettings { + <# + .SYNOPSIS + Caches PIM (Privileged Identity Management) settings for a tenant (if CA capable) + + .PARAMETER TenantFilter + The tenant to cache PIM settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $TestResult = Test-CIPPStandardLicense -StandardName 'PIMSettingsCache' -TenantFilter $TenantFilter -RequiredCapabilities @('AAD_PREMIUM_P2') -SkipLog + + if ($TestResult -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have Azure AD Premium P2 license, skipping PIM' -sev Info + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching PIM settings' -sev Info + + try { + $PIMRoleSettings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/roleManagementPolicyAssignments?$top=999' -tenantid $TenantFilter + + if ($PIMRoleSettings) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMRoleSettings' -Data $PIMRoleSettings + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMRoleSettings' -Data $PIMRoleSettings -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($PIMRoleSettings.Count) PIM role settings" -sev Info + } + $PIMRoleSettings = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM role settings: $($_.Exception.Message)" -sev Warning + } + + try { + $PIMAssignments = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/roleManagement/directory/roleEligibilityScheduleInstances?$top=999' -tenantid $TenantFilter + + if ($PIMAssignments) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMAssignments' -Data $PIMAssignments + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'PIMAssignments' -Data $PIMAssignments -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($PIMAssignments.Count) PIM assignments" -sev Info + } + $PIMAssignments = $null + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM assignments: $($_.Exception.Message)" -sev Warning + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached PIM settings successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache PIM settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 new file mode 100644 index 000000000000..c85118401d4f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskDetections.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskDetections { + <# + .SYNOPSIS + Caches risk detections from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risk detections for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risk detections from Identity Protection' -sev Info + + # Requires P2 licensing + $RiskDetections = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskDetections' -tenantid $TenantFilter + + if ($RiskDetections) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskDetections' -Data $RiskDetections + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskDetections' -Data $RiskDetections -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskDetections.Count) risk detections successfully" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risk detections found or Identity Protection not available' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risk detections: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 new file mode 100644 index 000000000000..950e9998ec0b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyServicePrincipals.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskyServicePrincipals { + <# + .SYNOPSIS + Caches risky service principals from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risky service principals for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risky service principals from Identity Protection' -sev Info + + # Requires Workload Identity Premium licensing + $RiskyServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskyServicePrincipals' -tenantid $TenantFilter + + if ($RiskyServicePrincipals) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyServicePrincipals' -Data $RiskyServicePrincipals + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyServicePrincipals' -Data $RiskyServicePrincipals -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskyServicePrincipals.Count) risky service principals successfully" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risky service principals found or Workload Identity Protection not available' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risky service principals: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 new file mode 100644 index 000000000000..417110f483bd --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRiskyUsers.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheRiskyUsers { + <# + .SYNOPSIS + Caches risky users from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache risky users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching risky users from Identity Protection' -sev Info + + # Requires P2 or Governance licensing + $RiskyUsers = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/riskyUsers' -tenantid $TenantFilter + + if ($RiskyUsers) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyUsers' -Data $RiskyUsers + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RiskyUsers' -Data $RiskyUsers -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($RiskyUsers.Count) risky users successfully" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No risky users found or Identity Protection not available' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache risky users: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 new file mode 100644 index 000000000000..6d269f2cf17c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPDBCacheRoleAssignmentScheduleInstances { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $RoleAssignmentScheduleInstances = New-GraphGetRequest -Uri 'https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleInstances' -tenantid $TenantFilter + + $Body = [pscustomobject]@{ + Tenant = $TenantFilter + LastRefresh = (Get-Date).ToUniversalTime() + Type = 'RoleAssignmentScheduleInstances' + Data = [System.Text.Encoding]::UTF8.GetBytes(($RoleAssignmentScheduleInstances | ConvertTo-Json -Compress -Depth 10)) + PartitionKey = 'TenantCache' + RowKey = ('{0}-{1}' -f $TenantFilter, 'RoleAssignmentScheduleInstances') + SchemaVersion = [int]1 + SentAsDate = [string](Get-Date -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') + } + + $null = Add-CIPPAzDataTableEntity @CacheTableDetails -Entity $Body -Force + Write-LogMessage -API 'DBCache' -tenant $TenantFilter -message 'Role assignment schedule instances cache updated' -sev Debug + } catch { + Write-LogMessage -API 'DBCache' -tenant $TenantFilter -message "Error caching role assignment schedule instances: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 new file mode 100644 index 000000000000..6433570cf810 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheRoleEligibilitySchedules { + <# + .SYNOPSIS + Caches role eligibility schedules for a tenant + + .PARAMETER TenantFilter + The tenant to cache role eligibility schedules for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role eligibility schedules' -sev Info + $RoleEligibilitySchedules = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/roleManagement/directory/roleEligibilitySchedules' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleEligibilitySchedules' -Data @($RoleEligibilitySchedules) + $RoleEligibilitySchedules = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role eligibility schedules successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache role eligibility schedules: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 new file mode 100644 index 000000000000..fcba68720a1f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoleManagementPolicies.ps1 @@ -0,0 +1,26 @@ +function Set-CIPPDBCacheRoleManagementPolicies { + <# + .SYNOPSIS + Caches role management policies for a tenant + + .PARAMETER TenantFilter + The tenant to cache role management policies for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role management policies' -sev Info + $RoleManagementPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/roleManagementPolicies' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleManagementPolicies' -Data @($RoleManagementPolicies) + $RoleManagementPolicies = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role management policies successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache role management policies: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 new file mode 100644 index 000000000000..4d926c1c722c --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheRoles.ps1 @@ -0,0 +1,63 @@ +function Set-CIPPDBCacheRoles { + <# + .SYNOPSIS + Caches all directory roles and their members for a tenant + + .PARAMETER TenantFilter + The tenant to cache role data for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory roles' -sev Info + + $Roles = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directoryRoles' -tenantid $TenantFilter + + # Build bulk request for role members + $MemberRequests = $Roles | ForEach-Object { + if ($_.id) { + [PSCustomObject]@{ + id = $_.id + method = 'GET' + url = "/directoryRoles/$($_.id)/members?`$select=id,displayName,userPrincipalName" + } + } + } + + if ($MemberRequests) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Fetching role members' -sev Info + $MemberResults = New-GraphBulkRequest -Requests @($MemberRequests) -tenantid $TenantFilter + + # Add members to each role object + $RolesWithMembers = foreach ($Role in $Roles) { + $Members = ($MemberResults | Where-Object { $_.id -eq $Role.id }).body.value + [PSCustomObject]@{ + id = $Role.id + displayName = $Role.displayName + description = $Role.description + roleTemplateId = $Role.roleTemplateId + members = $Members + memberCount = ($Members | Measure-Object).Count + } + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $RolesWithMembers + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $RolesWithMembers -Count + $Roles = $null + $RolesWithMembers = $null + } else { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $Roles + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' -Data $Roles -Count + $Roles = $null + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory roles successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache directory roles: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 new file mode 100644 index 000000000000..b1db9a6c1234 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheSecureScore.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheSecureScore { + <# + .SYNOPSIS + Caches secure score history (last 14 days) and control profiles for a tenant + + .PARAMETER TenantFilter + The tenant to cache secure score for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching secure score' -sev Info + + # Cache secure score history (last 14 days) + $SecureScore = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScores?$top=14' -tenantid $TenantFilter -noPagination $true + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScore' -Data $SecureScore + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScore' -Data $SecureScore -Count + $SecureScore = $null + + # Cache secure score control profiles + $SecureScoreControlProfiles = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScoreControlProfiles' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScoreControlProfiles' -Data $SecureScoreControlProfiles + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScoreControlProfiles' -Data $SecureScoreControlProfiles -Count + $SecureScoreControlProfiles = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached secure score and control profiles successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache secure score: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 new file mode 100644 index 000000000000..79aeec84eada --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipalRiskDetections.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPDBCacheServicePrincipalRiskDetections { + <# + .SYNOPSIS + Caches service principal risk detections from Identity Protection for a tenant + + .PARAMETER TenantFilter + The tenant to cache service principal risk detections for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching service principal risk detections from Identity Protection' -sev Info + + # Requires Workload Identity Premium licensing + $ServicePrincipalRiskDetections = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/identityProtection/servicePrincipalRiskDetections' -tenantid $TenantFilter + + if ($ServicePrincipalRiskDetections) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipalRiskDetections' -Data $ServicePrincipalRiskDetections + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipalRiskDetections' -Data $ServicePrincipalRiskDetections -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($ServicePrincipalRiskDetections.Count) service principal risk detections successfully" -sev Info + } else { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No service principal risk detections found or Workload Identity Protection not available' -sev Info + } + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache service principal risk detections: $($_.Exception.Message)" ` + -sev Warning ` + -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 new file mode 100644 index 000000000000..e2422e6028b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheServicePrincipals.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPDBCacheServicePrincipals { + <# + .SYNOPSIS + Caches all service principals for a tenant + + .PARAMETER TenantFilter + The tenant to cache service principals for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching service principals' -sev Info + + $ServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipals' -Data $ServicePrincipals + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipals' -Data $ServicePrincipals -Count + $ServicePrincipals = $null + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached service principals successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache service principals: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 new file mode 100644 index 000000000000..3f809db48f57 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheSettings.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheSettings { + <# + .SYNOPSIS + Caches directory settings for a tenant + + .PARAMETER TenantFilter + The tenant to cache settings for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory settings' -sev Info + + $Settings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/settings?$top=999' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Settings' -Data $Settings + $Settings = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory settings successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter ` + -message "Failed to cache directory settings: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 new file mode 100644 index 000000000000..51ff2b467e55 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheUserRegistrationDetails.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPDBCacheUserRegistrationDetails { + <# + .SYNOPSIS + Caches authentication method registration details for all users in a tenant + + .PARAMETER TenantFilter + The tenant to cache user registration details for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching user registration details' -sev Info + + $UserRegistrationDetails = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/authenticationMethods/userRegistrationDetails' -tenantid $TenantFilter + + if ($UserRegistrationDetails) { + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'UserRegistrationDetails' -Data $UserRegistrationDetails + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'UserRegistrationDetails' -Data $UserRegistrationDetails -Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($UserRegistrationDetails.Count) user registration details" -sev Info + } + $UserRegistrationDetails = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache user registration details: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 b/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 new file mode 100644 index 000000000000..2a03fedc46ab --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDBCacheUsers.ps1 @@ -0,0 +1,27 @@ +function Set-CIPPDBCacheUsers { + <# + .SYNOPSIS + Caches all users for a tenant + + .PARAMETER TenantFilter + The tenant to cache users for + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching users' -sev Info + + $Users = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' -Data $Users + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' -Data $Users -Count + $Users = $null + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached users successfully' -sev Info + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache users: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 b/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 new file mode 100644 index 000000000000..818c2f97dfea --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 @@ -0,0 +1,90 @@ +function Set-CIPPDefaultAPDeploymentProfile { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $TenantFilter, + $DisplayName, + $Description, + $DeviceNameTemplate, + $AllowWhiteGlove, + $CollectHash, + $UserType, + $DeploymentMode, + $HideChangeAccount = $true, + $AssignTo, + $HidePrivacy, + $HideTerms, + $AutoKeyboard, + $Headers, + $Language = 'os-default', + $APIName = 'Add Default Enrollment Status Page' + ) + + $User = $Request.Headers + + try { + $ObjBody = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.azureADWindowsAutopilotDeploymentProfile' + 'displayName' = "$($DisplayName)" + 'description' = "$($Description)" + 'deviceNameTemplate' = "$($DeviceNameTemplate)" + 'locale' = "$($Language ?? 'os-default')" + 'preprovisioningAllowed' = $([bool]($AllowWhiteGlove)) + 'deviceType' = 'windowsPc' + 'hardwareHashExtractionEnabled' = $([bool]($CollectHash)) + 'roleScopeTagIds' = @() + 'outOfBoxExperienceSetting' = @{ + 'deviceUsageType' = "$DeploymentMode" + 'escapeLinkHidden' = $([bool]($true)) + 'privacySettingsHidden' = $([bool]($HidePrivacy)) + 'eulaHidden' = $([bool]($HideTerms)) + 'userType' = "$UserType" + 'keyboardSelectionPageSkipped' = $([bool]($AutoKeyboard)) + } + } + $Body = ConvertTo-Json -InputObject $ObjBody -Depth 10 + + Write-Information $Body + + $Profiles = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -tenantid $TenantFilter | Where-Object -Property displayName -EQ $DisplayName + if ($Profiles.count -gt 1) { + $Profiles | ForEach-Object { + if ($_.id -ne $Profiles[0].id) { + if ($PSCmdlet.ShouldProcess($_.displayName, 'Delete duplicate Autopilot profile')) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($_.id)" -tenantid $TenantFilter -type DELETE + Write-LogMessage -Headers $User -API $APIName -tenant $($TenantFilter) -message "Deleted duplicate Autopilot profile $($DisplayName)" -Sev 'Info' + } + } + } + $Profiles = $Profiles[0] + } + if (!$Profiles) { + if ($PSCmdlet.ShouldProcess($DisplayName, 'Add Autopilot profile')) { + $Type = 'Add' + $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -body $Body -tenantid $TenantFilter + Write-LogMessage -Headers $User -API $APIName -tenant $($TenantFilter) -message "Added Autopilot profile $($DisplayName)" -Sev 'Info' + } + } else { + $Type = 'Edit' + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($Profiles.id)" -tenantid $TenantFilter -body $Body -type PATCH + $GraphRequest = $Profiles | Select-Object -Last 1 + } + + if ($AssignTo -eq $true) { + $AssignBody = '{"target":{"@odata.type":"#microsoft.graph.allDevicesAssignmentTarget"}}' + if ($PSCmdlet.ShouldProcess($AssignTo, "Assign Autopilot profile $DisplayName")) { + #Get assignments + $Assignments = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($GraphRequest.id)/assignments" -tenantid $TenantFilter + if (!$Assignments) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles/$($GraphRequest.id)/assignments" -tenantid $TenantFilter -type POST -body $AssignBody + } + Write-LogMessage -Headers $User -API $APIName -tenant $TenantFilter -message "Assigned autopilot profile $($DisplayName) to $AssignTo" -Sev 'Info' + } + } + "Successfully $($Type)ed profile for $TenantFilter" + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed $($Type)ing Autopilot Profile $($DisplayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $User -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDefaultAPEnrollment.ps1 b/Modules/CIPPCore/Public/Set-CIPPDefaultAPEnrollment.ps1 new file mode 100644 index 000000000000..171e1d732695 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDefaultAPEnrollment.ps1 @@ -0,0 +1,50 @@ +function Set-CIPPDefaultAPEnrollment { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $TenantFilter, + $ShowProgress, + $BlockDevice, + $AllowReset, + $EnableLog, + $ErrorMessage, + $TimeOutInMinutes, + $InstallWindowsUpdates, + $AllowFail, + $OBEEOnly, + $Headers, + $APIName = 'Add Default Enrollment Status Page' + ) + + try { + $ObjBody = [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.windows10EnrollmentCompletionPageConfiguration' + 'id' = 'DefaultWindows10EnrollmentCompletionPageConfiguration' + 'displayName' = 'All users and all devices' + 'description' = 'This is the default enrollment status screen configuration applied with the lowest priority to all users and all devices regardless of group membership.' + 'showInstallationProgress' = [bool]$ShowProgress + 'blockDeviceSetupRetryByUser' = ![bool]$BlockDevice + 'allowDeviceResetOnInstallFailure' = [bool]$AllowReset + 'allowLogCollectionOnInstallFailure' = [bool]$EnableLog + 'customErrorMessage' = "$ErrorMessage" + 'installProgressTimeoutInMinutes' = $TimeOutInMinutes + 'installQualityUpdates' = [bool]$InstallWindowsUpdates + 'allowDeviceUseOnInstallFailure' = [bool]$AllowFail + 'selectedMobileAppIds' = @() + 'trackInstallProgressForAutopilotOnly' = [bool]$OBEEOnly + 'disableUserStatusTrackingAfterFirstUser' = $true + 'roleScopeTagIds' = @() + } + $Body = ConvertTo-Json -InputObject $ObjBody + $ExistingStatusPage = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations' -tenantid $TenantFilter) | Where-Object { $_.id -like '*DefaultWindows10EnrollmentCompletionPageConfiguration' } + + if ($PSCmdlet.ShouldProcess($ExistingStatusPage.ID, 'Set Default Enrollment Status Page')) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations/$($ExistingStatusPage.ID)" -body $Body -Type PATCH -tenantid $TenantFilter + "Successfully changed default enrollment status page for $TenantFilter" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Added Autopilot Enrollment Status Page $($ExistingStatusPage.displayName)" -Sev 'Info' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Failed adding Autopilot Enrollment Status Page $($ExistingStatusPage.displayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw "Failed to change default enrollment status page for $($TenantFilter): $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDeviceState.ps1 b/Modules/CIPPCore/Public/Set-CIPPDeviceState.ps1 new file mode 100644 index 000000000000..583dc58983be --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDeviceState.ps1 @@ -0,0 +1,79 @@ +function Set-CIPPDeviceState { + <# + .SYNOPSIS + Sets or modifies the state of a device in Microsoft Graph. + + .DESCRIPTION + This function allows you to enable, disable, or delete a device by making + corresponding requests to the Microsoft Graph API. It logs the result + and returns a success or error message based on the outcome. + + .PARAMETER Action + Specifies the action to perform on the device. Valid actions are: + - Enable: Enable the device + - Disable: Disable the device + - Delete: Remove the device from the tenant + + .PARAMETER DeviceID + Specifies the unique identifier (Object ID) of the device to be managed. + + .PARAMETER TenantFilter + Specifies the tenant ID or domain against which to perform the operation. + + .PARAMETER Headers + Specifies the user who initiated the request for logging purposes. + + .PARAMETER APIName + Specifies the name of the API call for logging purposes. Defaults to 'Set Device State'. + + .EXAMPLE + Set-CIPPDeviceState -Action Enable -DeviceID "1234abcd-5678-efgh-ijkl-9012mnopqrst" -TenantFilter "contoso.onmicrosoft.com" -Headers "admin@contoso.onmicrosoft.com" + + This command enables the specified device within the given tenant. + + .EXAMPLE + Set-CIPPDeviceState -Action Delete -DeviceID "1234abcd-5678-efgh-ijkl-9012mnopqrst" -TenantFilter "contoso.onmicrosoft.com" + + This command removes the specified device from the tenant. +#> + param ( + [Parameter(Mandatory = $true)][ValidateSet('Enable', 'Disable', 'Delete')]$Action, + + [ValidateScript({ + if ([Guid]::TryParse($_, [ref] [Guid]::Empty)) { + $true + } else { + throw 'DeviceID must be a valid GUID.' + } + })] + [Parameter(Mandatory = $true)]$DeviceID, + + [Parameter(Mandatory = $true)]$TenantFilter, + $Headers, + $APIName = 'Set Device State' + ) + $Url = "https://graph.microsoft.com/beta/devices/$($DeviceID)" + + try { + switch ($Action) { + 'Delete' { + $ActionResult = New-GraphPOSTRequest -uri $Url -type DELETE -tenantid $TenantFilter + } + 'Disable' { + $ActionResult = New-GraphPOSTRequest -uri $Url -type PATCH -tenantid $TenantFilter -body '{"accountEnabled": false }' + } + 'Enable' { + $ActionResult = New-GraphPOSTRequest -uri $Url -type PATCH -tenantid $TenantFilter -body '{"accountEnabled": true }' + } + } + Write-Host $ActionResult + Write-LogMessage -headers $Headers -API $APIName -message "Executed action $($Action) on $($DeviceID)" -Sev Info + return "Executed action $($Action) on $($DeviceID)" + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to queue action $($Action) on $($DeviceID). Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + throw "Failed to queue action $($Action) on $($DeviceID). Error: $($ErrorMessage.NormalizedError)" + } + + +} diff --git a/Modules/CIPPCore/Public/Set-CIPPDriftDeviation.ps1 b/Modules/CIPPCore/Public/Set-CIPPDriftDeviation.ps1 new file mode 100644 index 000000000000..f2d13ea545fd --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPDriftDeviation.ps1 @@ -0,0 +1,63 @@ +function Set-CIPPDriftDeviation { + <# + .SYNOPSIS + Sets the status of a drift deviation in the tenant drift table + .DESCRIPTION + This function stores drift deviation status changes in the tenantDrift table. + It tracks when deviations are accepted, denied, or marked as customer specific. + .PARAMETER TenantFilter + The tenant filter (used as PartitionKey) + .PARAMETER StandardName + The standard name (used as RowKey, with '.' replaced by '_') + .PARAMETER Status + The status to set. Valid values: Accepted, New, Denied, CustomerSpecific, DeniedRemediate, DeniedDelete + .PARAMETER Reason + Optional reason for the status change + .FUNCTIONALITY + Internal + .EXAMPLE + Set-CIPPDriftDeviation -TenantFilter "contoso.onmicrosoft.com" -StandardName "IntuneTemplates.12345" -Status "Accepted" -Reason "Business requirement" + .EXAMPLE + Set-CIPPDriftDeviation -TenantFilter "contoso.onmicrosoft.com" -StandardName "standards.passwordComplexity" -Status "CustomerSpecific" -Reason "Custom security policy" + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string]$StandardName, + [Parameter(Mandatory = $true)] + [ValidateSet('Accepted', 'New', 'Denied', 'CustomerSpecific', 'DeniedRemediate', 'DeniedDelete')] + [string]$Status, + [Parameter(Mandatory = $false)] + [string]$Reason, + [string]$user + ) + + try { + $Table = Get-CippTable -tablename 'tenantDrift' + $RowKey = $StandardName -replace '\.', '_' + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = $RowKey + StandardName = $StandardName + Status = $Status + User = $user + LastModified = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + # Add reason if provided + if ($Reason) { + $Entity.Reason = $Reason + } + + $Result = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + + Write-Verbose "Successfully set drift deviation status for $StandardName to $Status" + return "Successfully set drift deviation status for $StandardName to $Status" + + } catch { + Write-Error "Error setting drift deviation status: $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPForwarding.ps1 b/Modules/CIPPCore/Public/Set-CIPPForwarding.ps1 new file mode 100644 index 000000000000..2db867e16b51 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPForwarding.ps1 @@ -0,0 +1,74 @@ +function Set-CIPPForwarding { + <# + .SYNOPSIS + Set forwarding for a user mailbox. + + .DESCRIPTION + Set forwarding for a user mailbox. + + .PARAMETER userid + User ID to set forwarding for. + + .PARAMETER forwardingSMTPAddress + SMTP address to forward to. + + .PARAMETER tenantFilter + Tenant to manage for forwarding. + + .PARAMETER username + Username to manage for forwarding. + + .PARAMETER Headers + CIPP HTTP Request headers. + + .PARAMETER APIName + Name of the API executing the command. + + .PARAMETER Forward + Forwarding address. + + .PARAMETER KeepCopy + Keep a copy of the email. + + .PARAMETER Disable + Disable forwarding. + + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [string]$UserID, + [string]$ForwardingSMTPAddress, + [string]$TenantFilter, + [string]$Username, + $Headers, + [string]$APIName = 'Forwarding', + [string]$Forward, + $KeepCopy, + [bool]$Disable + ) + + + try { + if (!$Username) { $Username = $UserID } + if ($PSCmdlet.ShouldProcess($Username, 'Set forwarding')) { + if ($Disable -eq $true) { + Write-Output "Disabling forwarding for $Username" + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserID; ForwardingSMTPAddress = $null; ForwardingAddress = $null ; DeliverToMailboxAndForward = $false } -Anchor $Username + $Message = "Successfully disabled forwarding for $Username" + } elseif ($Forward) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserID; ForwardingSMTPAddress = $null; ForwardingAddress = $Forward ; DeliverToMailboxAndForward = $KeepCopy } -Anchor $Username + $Message = "Successfully set forwarding for $Username to Internal Address $Forward with keeping a copy set to $KeepCopy" + } elseif ($forwardingSMTPAddress) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserID; ForwardingSMTPAddress = $ForwardingSMTPAddress; ForwardingAddress = $null ; DeliverToMailboxAndForward = $KeepCopy } -Anchor $Username + $Message = "Successfully set forwarding for $Username to External Address $ForwardingSMTPAddress with keeping a copy set to $KeepCopy" + } + } + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set forwarding for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPGDAPAutoExtend.ps1 b/Modules/CIPPCore/Public/Set-CIPPGDAPAutoExtend.ps1 new file mode 100644 index 000000000000..2d8a7dbb7572 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPGDAPAutoExtend.ps1 @@ -0,0 +1,42 @@ +function Set-CIPPGDAPAutoExtend { + [CmdletBinding(SupportsShouldProcess = $true)] + param ( + $RelationShipid, + [switch]$All, + $APIName = 'Set GDAP Auto Exension', + $Headers + ) + + $ReturnedData = if ($All -eq $true) { + $Relationships = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships' -tenantid $env:TenantID -NoAuthCheck $true | Where-Object -Property autoExtendDuration -EQ 'PT0S' + foreach ($Relation in $Relationships) { + try { + $AddedHeader = @{'If-Match' = $Relation.'@odata.etag' } + if ($PSCmdlet.ShouldProcess($Relation.id, "Set auto renew for $($Relation.customer.displayName)")) { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($Relation.id)" -tenantid $env:TenantID -type PATCH -body '{"autoExtendDuration":"P180D"}' -Verbose -NoAuthCheck $true -AddedHeaders $AddedHeader + Write-LogMessage -headers $Headers -API $APIName -message "Successfully set auto renew for tenant $($Relation.customer.displayName) with ID $($RelationShipid)" -Sev 'Info' + @("Successfully set auto renew for tenant $($Relation.customer.displayName) with ID $($Relation.id)" ) + } + } catch { + $ErrorMessage = $_.Exception.Message + $CleanError = Get-NormalizedError -message $ErrorMessage + "Could not set auto renewal for $($Relation.id): $CleanError" + } + } + } else { + try { + $Relationship = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships' -tenantid $env:TenantID -NoAuthCheck $true | Where-Object -Property id -EQ $RelationShipid + $AddedHeader = @{'If-Match' = $Relationship.'@odata.etag' } + if ($PSCmdlet.ShouldProcess($RelationShipid, "Set auto renew for $($Relationship.customer.displayName)")) { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($RelationShipid)" -tenantid $env:TenantID -type PATCH -body '{"autoExtendDuration":"P180D"}' -Verbose -NoAuthCheck $true -AddedHeaders $AddedHeader + write-LogMessage -headers $Headers -API $APIName -message "Successfully set auto renew for tenant $($Relationship.customer.displayName) with ID $($RelationShipid)" -Sev 'Info' + @("Successfully set auto renew for tenant $($Relationship.customer.displayName) with ID $($RelationShipid)" ) + } + } catch { + $ErrorMessage = $_.Exception.Message + $CleanError = Get-NormalizedError -message $ErrorMessage + "Could not set auto renewal for $($RelationShipid): $CleanError" + } + } + return $ReturnedData +} diff --git a/Modules/CIPPCore/Public/Set-CIPPGDAPInviteGroups.ps1 b/Modules/CIPPCore/Public/Set-CIPPGDAPInviteGroups.ps1 new file mode 100644 index 000000000000..fe0f4465f179 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPGDAPInviteGroups.ps1 @@ -0,0 +1,67 @@ +function Set-CIPPGDAPInviteGroups { + [CmdletBinding(SupportsShouldProcess = $true)] + Param($Relationship) + $Table = Get-CIPPTable -TableName 'GDAPInvites' + + if ($Relationship) { + $Invite = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Relationship.id)'" + $APINAME = 'GDAPInvites' + $RoleMappings = $Invite.RoleMappings | ConvertFrom-Json + $AccessAssignments = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($Relationship.id)/accessAssignments" + foreach ($Role in $RoleMappings) { + # Skip mapping if group is present in relationship + if ($AccessAssignments.id -and $AccessAssignments.accessContainer.accessContainerid -contains $Role.GroupId ) { continue } + try { + $Mappingbody = ConvertTo-Json -Depth 10 -InputObject @{ + 'accessContainer' = @{ + 'accessContainerId' = "$($Role.GroupId)" + 'accessContainerType' = 'securityGroup' + } + 'accessDetails' = @{ + 'unifiedRoles' = @(@{ + 'roleDefinitionId' = "$($Role.roleDefinitionId)" + }) + } + } + if ($PSCmdlet.ShouldProcess($Relationship.id, "Map group $($Role.GroupName) to customer $($Relationship.customer.displayName)")) { + $null = New-GraphPostRequest -NoAuthCheck $True -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($Relationship.id)/accessAssignments" -tenantid $env:TenantID -type POST -body $MappingBody -verbose + Start-Sleep -Milliseconds 100 + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APINAME -message "GDAP Group mapping failed for $($Relationship.customer.displayName) - Group: $($role.GroupId) - Exception: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return $false + } + } + + if ($PSCmdlet.ShouldProcess($Relationship.id, "Remove invite entry for $($Relationship.customer.displayName)")) { + Write-LogMessage -API $APINAME -message "Groups mapped for GDAP Relationship: $($Relationship.customer.displayName) - $($Relationship.customer.displayName)" -Sev Info + Remove-AzDataTableEntity -Force @Table -Entity $Invite + } + return $true + } else { + $InviteList = Get-CIPPAzDataTableEntity @Table + if (($InviteList | Measure-Object).Count -gt 0) { + $Activations = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active'" + + $Batch = foreach ($Activation in $Activations) { + if ($InviteList.RowKey -contains $Activation.id) { + Write-Information "Mapping groups for GDAP relationship: $($Activation.customer.displayName) - $($Activation.id)" + $Activation | Add-Member -NotePropertyName FunctionName -NotePropertyValue 'ExecGDAPInviteQueue' + $Activation + } + } + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'GDAPInviteOrchestrator' + Batch = @($Batch) + SkipLog = $true + } + #Write-Information ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject (ConvertTo-Json -InputObject $InputObject -Depth 5 -Compress) + Write-Information "Started GDAP Invite orchestration with ID = '$InstanceId'" + return $InstanceId + } + } + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPGraphSubscription.ps1 b/Modules/CIPPCore/Public/Set-CIPPGraphSubscription.ps1 new file mode 100644 index 000000000000..aebf8b0e83c9 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPGraphSubscription.ps1 @@ -0,0 +1,34 @@ +function Set-CIPPGraphSubscription { + [CmdletBinding()] + param ( + $TenantFilter, + $RenewSubscriptions, + $Resource, + $EventType, + $APIName = 'Set Graph Webhook', + $Headers + ) + + if ($RenewSubscriptions) { + $RenewalDate = (Get-Date).AddDays(1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + $body = @{ + 'expirationDateTime' = "$RenewalDate" + } | ConvertTo-Json + $null = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscriptions' -tenantid $TenantFilter) | ForEach-Object { + try { + $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/subscriptions/$($_.id)" -tenantid $TenantFilter -type PATCH -body $body -Verbose + $WebhookTable = Get-CIPPTable -TableName webhookTable + #get the row from the table, grab it by the webhook notification url, and update the expiration date. + $WebhookRow = Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $_.WebhookNotificationUrl -eq $GraphRequest.notificationUrl } + $WebhookRow.Expiration = $RenewalDate + $null = Add-CIPPAzDataTableEntity @WebhookTable -Entity $WebhookRow -Force + return "Renewed $($GraphRequest.notificationUrl)" + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Failed to renew Webhook Subscription: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + return "Failed to renew Webhook Subscription $($WebhookRow.RowKey): $($ErrorMessage.NormalizedError)" + } + } + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPGroupAuthentication.ps1 b/Modules/CIPPCore/Public/Set-CIPPGroupAuthentication.ps1 new file mode 100644 index 000000000000..1bf763480b2d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPGroupAuthentication.ps1 @@ -0,0 +1,30 @@ +function Set-CIPPGroupAuthentication( + [string]$Headers, + [string]$GroupType, + [string]$Id, + [bool]$OnlyAllowInternal, + [string]$TenantFilter, + [string]$APIName = 'Group Sender Authentication' +) { + try { + $messageSuffix = if ($OnlyAllowInternal -eq $true) { 'inside the organisation.' } else { 'inside and outside the organisation.' } + + if ($GroupType -eq 'Distribution List' -or $GroupType -eq 'Mail-Enabled Security') { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-DistributionGroup' -cmdParams @{Identity = $Id; RequireSenderAuthenticationEnabled = $OnlyAllowInternal } + } elseif ($GroupType -eq 'Microsoft 365') { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-UnifiedGroup' -cmdParams @{Identity = $Id; RequireSenderAuthenticationEnabled = $OnlyAllowInternal } + } elseif ($GroupType -eq 'Security') { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message 'This setting cannot be set on a security group.' -Sev 'Error' + throw "$GroupType's group cannot have this setting changed" + } + + $Message = "Successfully set $GroupType group $Id to allow messages from people $messageSuffix" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set Delivery Management: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Error' -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPGroupGAL.ps1 b/Modules/CIPPCore/Public/Set-CIPPGroupGAL.ps1 new file mode 100644 index 000000000000..1f2ecb0c07af --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPGroupGAL.ps1 @@ -0,0 +1,29 @@ +function Set-CIPPGroupGAL( + [string]$Headers, + [string]$GroupType, + [string]$Id, + [string]$HiddenString, + [string]$TenantFilter, + [string]$APIName = 'Group GAL Status' +) { + $Hidden = if ($HiddenString -eq 'true') { 'true' } else { 'false' } + $messageSuffix = if ($Hidden -eq 'true') { 'hidden' } else { 'unhidden' } + + try { + if ($GroupType -eq 'Distribution List' -or $GroupType -eq 'Mail-Enabled Security') { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-DistributionGroup' -cmdParams @{Identity = $Id; HiddenFromAddressListsEnabled = $Hidden } + } elseif ($GroupType -eq 'Microsoft 365') { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-UnifiedGroup' -cmdParams @{Identity = $Id; HiddenFromAddressListsEnabled = $Hidden } + } elseif ($GroupType -eq 'Security') { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message 'This setting cannot be set on a security group.' -Sev 'Error' + return "$GroupType's group cannot have this setting changed" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "$Id $messageSuffix from GAL failed: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return "Failed. $($ErrorMessage.NormalizedError)" + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "$Id $messageSuffix from GAL" -Sev 'Info' + return "Successfully $messageSuffix $GroupType group $Id from GAL." +} diff --git a/Modules/CIPPCore/Public/Set-CIPPHideFromGAL.ps1 b/Modules/CIPPCore/Public/Set-CIPPHideFromGAL.ps1 new file mode 100644 index 000000000000..0c87d039ae71 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPHideFromGAL.ps1 @@ -0,0 +1,22 @@ +function Set-CIPPHideFromGAL { + [CmdletBinding()] + param ( + $UserId, + $TenantFilter, + $APIName = 'Hide From Address List', + [bool]$HideFromGAL, + $Headers + ) + $Text = if ($HideFromGAL) { 'hidden' } else { 'unhidden' } + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserId ; HiddenFromAddressListsEnabled = $HideFromGAL } + $Result = "Successfully $Text $($UserId) from GAL." + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev Info + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set $($UserId) to $Text in GAL. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 new file mode 100644 index 000000000000..b0518e1d5d5a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 @@ -0,0 +1,293 @@ +function Set-CIPPIntunePolicy { + param ( + [Parameter(Mandatory = $true)] + $TemplateType, + $Description, + $DisplayName, + $RawJSON, + $AssignTo, + $ExcludeGroup, + $Headers, + $APIName = 'Set-CIPPIntunePolicy', + $TenantFilter, + $AssignmentFilterName, + $AssignmentFilterType = 'include' + ) + + $RawJSON = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $RawJSON + + try { + switch ($TemplateType) { + 'AppProtection' { + $PlatformType = 'deviceAppManagement' + $TemplateType = ($RawJSON | ConvertFrom-Json).'@odata.type' -replace '#microsoft.graph.', '' + $PolicyFile = $RawJSON | ConvertFrom-Json + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $Description -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force + $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty 'apps' + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 + $TemplateTypeURL = if ($TemplateType -eq 'windowsInformationProtectionPolicy') { 'windowsInformationProtectionPolicies' } else { "$($TemplateType)s" } + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $PostType = 'edited' + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + } else { + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + } + } + 'AppConfiguration' { + $PlatformType = 'deviceAppManagement' + $TemplateTypeURL = 'mobileAppConfigurations' + $PolicyFile = $RawJSON | ConvertFrom-Json + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $Description -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $PostType = 'edited' + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, '@odata.context', targetedMobileApps + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 -Compress + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + } else { + $PostType = 'added' + $PolicyFile = $PolicyFile | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, '@odata.context' + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 -Compress + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + } + } + 'deviceCompliancePolicies' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'deviceCompliancePolicies' + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + $JSON = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, 'scheduledActionsForRule@odata.context', '@odata.context' + $JSON.scheduledActionsForRule = @($JSON.scheduledActionsForRule | Select-Object * -ExcludeProperty 'scheduledActionConfigurations@odata.context') + if ($DisplayName -in $CheckExististing.displayName) { + $RawJSON = ConvertTo-Json -InputObject ($JSON | Select-Object * -ExcludeProperty 'scheduledActionsForRule') -Depth 20 -Compress + $PostType = 'edited' + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + } else { + $RawJSON = ConvertTo-Json -InputObject $JSON -Depth 20 -Compress + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + } + } + 'Admin' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'groupPolicyConfigurations' + $CreateBody = '{"description":"' + $Description + '","displayName":"' + $DisplayName + '","roleScopeTagIds":["0"]}' + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + $ExistingData = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/definitionValues" -tenantid $TenantFilter + $DeleteJson = $RawJSON | ConvertFrom-Json -Depth 10 + $DeleteJson | Add-Member -MemberType NoteProperty -Name 'deletedIds' -Value @($ExistingData.id) -Force + $DeleteJson | Add-Member -MemberType NoteProperty -Name 'added' -Value @() -Force + $DeleteJson = ConvertTo-Json -Depth 10 -InputObject $DeleteJson + $DeleteRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $DeleteJson + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($ExistingID.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $RawJSON + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + $PostType = 'edited' + } else { + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $CreateBody + $UpdateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($CreateRequest.id)')/updateDefinitionValues" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) to template defaults" -Sev 'info' + + } + } + 'Device' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'deviceConfigurations' + $PolicyFile = $RawJSON | ConvertFrom-Json + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value "$Description" -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName | Select-Object -Last 1 + $PolicyFile = $policyFile | Select-Object * -ExcludeProperty 'featureUpdatesWillBeRolledBack', 'qualityUpdatesWillBeRolledBack', 'qualityUpdatesPauseStartDate', 'featureUpdatesPauseStartDate' + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress + if ($ExistingID) { + $PostType = 'edited' + Write-Host "Raw JSON is $RawJSON" + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $tenantFilter -type PATCH -body $RawJSON + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + Write-LogMessage -headers $Headers -API $APIName -tenant $($tenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev 'info' + } else { + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($tenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + + } + } + 'Catalog' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'configurationPolicies' + $DisplayName = ($RawJSON | ConvertFrom-Json).Name + + $Template = $RawJSON | ConvertFrom-Json + if ($Template.templateReference.templateId) { + Write-Information "Checking configuration policy template $($Template.templateReference.templateId) for $($DisplayName)" + # Remove unavailable settings from the template + $AvailableSettings = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicyTemplates('$($Template.templateReference.templateId)')/settingTemplates?`$expand=settingDefinitions&`$top=1000" -tenantid $tenantFilter + + if ($AvailableSettings) { + Write-Information "Available settings for template $($Template.templateReference.templateId): $($AvailableSettings.Count)" + $FilteredSettings = [System.Collections.Generic.List[psobject]]::new() + foreach ($setting in $Template.settings) { + if ($setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId -in $AvailableSettings.settingInstanceTemplate.settingInstanceTemplateId) { + $AvailableSetting = $AvailableSettings | Where-Object { $_.settingInstanceTemplate.settingInstanceTemplateId -eq $setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId } + + if ($AvailableSetting.settingInstanceTemplate.settingInstanceTemplateId -cnotmatch $setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId) { + # update casing + Write-Information "Fixing casing for setting instance template $($AvailableSetting.settingInstanceTemplate.settingInstanceTemplateId)" + $setting.settingInstance.settingInstanceTemplateReference.settingInstanceTemplateId = $AvailableSetting.settingInstanceTemplate.settingInstanceTemplateId + } + + if ($AvailableSetting.settingInstanceTemplate.choiceSettingValueTemplate -cnotmatch $setting.settingInstance.choiceSettingValue.settingValueTemplateReference.settingValueTemplateId) { + # update choice setting value template + Write-Information "Fixing casing for choice setting value template $($AvailableSetting.settingInstanceTemplate.choiceSettingValueTemplate.settingValueTemplateId)" + $setting.settingInstance.choiceSettingValue.settingValueTemplateReference.settingValueTemplateId = $AvailableSetting.settingInstanceTemplate.choiceSettingValueTemplate.settingValueTemplateId + } + + $FilteredSettings.Add($setting) + } + } + $Template.settings = $FilteredSettings + $RawJSON = $Template | ConvertTo-Json -Depth 100 -Compress + } + } + + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.name) { + $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty Platform, PolicyType, CreationSource + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress + $ExistingID = $CheckExististing | Where-Object -Property Name -EQ $DisplayName + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PUT -body $RawJSON + $CreateRequest = $CheckExististing | Where-Object -Property Name -EQ $DisplayName + $PostType = 'edited' + } else { + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + } + } + 'windowsDriverUpdateProfiles' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'windowsDriverUpdateProfiles' + $File = ($RawJSON | ConvertFrom-Json) + $DisplayName = $File.displayName ?? $File.Name + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $PostType = 'edited' + $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty inventorySyncStatus, newUpdates, deviceReporting, approvalType + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + Write-Host 'We are editing' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + } else { + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + } + } + 'windowsFeatureUpdateProfiles' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'windowsFeatureUpdateProfiles' + $File = ($RawJSON | ConvertFrom-Json) + $DisplayName = $File.displayName ?? $File.Name + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $PostType = 'edited' + $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty deployableContentDisplayName, endOfSupportDate, installLatestWindows10OnWindows11IneligibleDevice + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + Write-Host 'We are editing' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + + } else { + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + } + } + 'windowsQualityUpdatePolicies' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'windowsQualityUpdatePolicies' + $File = ($RawJSON | ConvertFrom-Json) + $DisplayName = $File.displayName ?? $File.Name + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $PostType = 'edited' + $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + Write-Host 'We are editing' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + } else { + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + } + } + 'windowsQualityUpdateProfiles' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'windowsQualityUpdateProfiles' + $File = ($RawJSON | ConvertFrom-Json) + $DisplayName = $File.displayName ?? $File.Name + $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter + if ($DisplayName -in $CheckExististing.displayName) { + $PostType = 'edited' + $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty releaseDateDisplayName, deployableContentDisplayName + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 100 -Compress + $ExistingID = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + Write-Host 'We are editing' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL/$($ExistingID.Id)" -tenantid $TenantFilter -type PATCH -body $RawJSON + $CreateRequest = $CheckExististing | Where-Object -Property displayName -EQ $DisplayName + } else { + $PostType = 'added' + $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev 'info' + } + } + } + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "$($PostType) policy $($DisplayName)" -Sev 'Info' + if ($AssignTo) { + Write-Host "Assigning policy to $($AssignTo) with ID $($CreateRequest.id) and type $TemplateTypeURL for tenant $TenantFilter" + Write-Host "ID is $($CreateRequest.id)" + + $AssignParams = @{ + GroupName = $AssignTo + PolicyId = $CreateRequest.id + PlatformType = $PlatformType + Type = $TemplateTypeURL + TenantFilter = $tenantFilter + ExcludeGroup = $ExcludeGroup + } + + if ($AssignmentFilterName) { + $AssignParams.AssignmentFilterName = $AssignmentFilterName + $AssignParams.AssignmentFilterType = $AssignmentFilterType + } + + Set-CIPPAssignedPolicy @AssignParams + } + return "Successfully $($PostType) policy for $($TenantFilter) with display name $($DisplayName)" + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Failed $($PostType) policy $($DisplayName). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + throw "Failed to add or set policy for $($TenantFilter) with display name $($DisplayName): $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 new file mode 100644 index 000000000000..b2371545d135 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPIntuneTemplate.ps1 @@ -0,0 +1,35 @@ +function Set-CIPPIntuneTemplate { + param ( + [Parameter(Mandatory = $true)] + $RawJSON, + $GUID, + $DisplayName, + $Description, + $templateType, + $Package, + $Headers + ) + Write-Host "Received $DisplayName, $Description, $RawJSON, $templateType" + if (!$DisplayName) { throw 'You must enter a displayname' } + if ($null -eq ($RawJSON | ConvertFrom-Json)) { throw 'the JSON is invalid' } + + $object = [PSCustomObject]@{ + Displayname = $DisplayName + Description = $Description + RAWJson = $RawJSON + Type = $templateType + GUID = $GUID + } | ConvertTo-Json -Depth 10 -Compress + $Table = Get-CippTable -tablename 'templates' + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = "$object" + RowKey = "$GUID" + GUID = "$GUID" + Package = "$Package" + PartitionKey = 'IntuneTemplate' + } + Write-LogMessage -Headers $Headers -API $APINAME -message "Created intune policy template named $($Request.body.displayname) with GUID $GUID" -Sev 'Debug' + + return 'Successfully added template' +} diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 new file mode 100644 index 000000000000..c4ab09866086 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 @@ -0,0 +1,25 @@ +function Set-CIPPMailboxAccess { + [CmdletBinding()] + param ( + $userid, + $AccessUser, + [bool]$Automap, + $TenantFilter, + $APIName = 'Manage Shared Mailbox Access', + $Headers, + [array]$AccessRights + ) + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxPermission' -cmdParams @{Identity = $userid; user = $AccessUser; AutoMapping = $Automap; accessRights = $AccessRights; InheritanceType = 'all' } -Anchor $userid + + $Message = "Successfully added $($AccessUser) to $($userid) Shared Mailbox $($Automap ? 'with' : 'without') AutoMapping, with the following permissions: $AccessRights" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to add mailbox permissions for $($AccessUser) on $($userid). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxArchive.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxArchive.ps1 new file mode 100644 index 000000000000..e20ee118a99a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxArchive.ps1 @@ -0,0 +1,32 @@ +function Set-CIPPMailboxArchive { + [CmdletBinding()] + param ( + $Headers, + $UserID, + $Username, + $APIName = 'Mailbox Archive', + $TenantFilter, + [bool]$ArchiveEnabled, + [switch]$AutoExpandingArchive + ) + + try { + if ([string]::IsNullOrWhiteSpace($Username)) { $Username = $UserID } + $OperationType = if ($AutoExpandingArchive.IsPresent -eq $true) { 'auto-expanding archive' } else { 'archive' } + if ($AutoExpandingArchive.IsPresent -eq $true) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Enable-Mailbox' -cmdParams @{Identity = $UserID; AutoExpandingArchive = $true } + $Message = "Successfully enabled $OperationType for $Username" + } else { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Enable-Mailbox' -cmdParams @{Identity = $UserID; Archive = $ArchiveEnabled } + $Message = "Successfully set $OperationType for $Username to $ArchiveEnabled" + } + + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set $OperationType for $Username. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Error' -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxLocale.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxLocale.ps1 new file mode 100644 index 000000000000..d3d7fa740293 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxLocale.ps1 @@ -0,0 +1,33 @@ +function Set-CippMailboxLocale { + [CmdletBinding()] + param ( + $Headers, + $Locale, + $Username, + $APIName = 'Mailbox Locale', + $TenantFilter + ) + + try { + # Validate the locale. Also if the locale is not valid, it will throw an exception, not wasting a request. + if ([System.Globalization.CultureInfo]::GetCultureInfo($Locale).IsNeutralCulture) { + throw "$Locale is not a valid Locale. Neutral cultures are not supported." + } + + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxRegionalConfiguration' -cmdParams @{ + Identity = $Username + Language = $Locale + LocalizeDefaultFolderName = $true + DateFormat = $null + TimeFormat = $null + } -Anchor $username + $Result = "Set locale for $($Username) to $Locale" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Info -tenant $TenantFilter + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to set locale for $($Username). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxRule.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxRule.ps1 new file mode 100644 index 000000000000..b7b0f4810c15 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxRule.ps1 @@ -0,0 +1,34 @@ +function Set-CIPPMailboxRule { + [CmdletBinding()] + param ( + $UserId, + $Username, + $TenantFilter, + $APIName = 'Set mailbox rules', + $Headers, + $RuleId, + $RuleName, + [switch]$Enable, + [switch]$Disable + ) + + if ($Enable.IsPresent -eq $true) { + $State = 'Enable' + } elseif ($Disable.IsPresent -eq $true) { + $State = 'Disable' + } else { + Write-LogMessage -headers $Headers -API $APIName -message 'No state provided for mailbox rule' -Sev 'Error' -tenant $TenantFilter + throw 'No state provided for mailbox rule' + } + + try { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet "$State-InboxRule" -Anchor $Username -cmdParams @{Identity = $RuleId; mailbox = $UserId } -Headers $Headers + Write-LogMessage -headers $Headers -API $APIName -message "Successfully set mailbox rule $($RuleName) for $($Username) to $($State)d" -Sev 'Info' -tenant $TenantFilter + return "Successfully set mailbox rule $($RuleName) for $($Username) to $($State)d" + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Could not set mailbox rule $($RuleName) for $($Username) to $($State)d. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw "Could not set mailbox rule $($RuleName) for $($Username) to $($State)d. Error: $($ErrorMessage.NormalizedError)" + } + +} diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxType.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxType.ps1 new file mode 100644 index 000000000000..ed8fdd7060e8 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxType.ps1 @@ -0,0 +1,25 @@ +function Set-CIPPMailboxType { + [CmdletBinding()] + param ( + $Headers, + $UserID, + $Username, + $APIName = 'Mailbox Conversion', + $TenantFilter, + [Parameter(Mandatory = $true)] + [ValidateSet('Shared', 'Regular', 'Room', 'Equipment')]$MailboxType + ) + + try { + if ([string]::IsNullOrWhiteSpace($Username)) { $Username = $UserID } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $UserID; Type = $MailboxType } -Anchor $Username + $Message = "Successfully converted $Username to a $MailboxType mailbox" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter + return $Message + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to convert $Username to a $MailboxType mailbox. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPManager.ps1 b/Modules/CIPPCore/Public/Set-CIPPManager.ps1 new file mode 100644 index 000000000000..c1394b04936d --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPManager.ps1 @@ -0,0 +1,23 @@ +function Set-CIPPManager { + [CmdletBinding()] + param ( + $User, + $Manager, + $TenantFilter, + $APIName = 'Set Manager', + $Headers + ) + + try { + $ManagerBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Manager)" } + $ManagerBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $ManagerBody + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($User)/manager/`$ref" -tenantid $TenantFilter -type PUT -body $ManagerBodyJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Set $User's manager to $Manager" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to Set Manager. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $_ + throw "Failed to set manager: $($ErrorMessage.NormalizedError)" + } + return "Set $User's manager to $Manager" +} + diff --git a/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 b/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 new file mode 100644 index 000000000000..08e15977157e --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPMessageCopy.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPMessageCopy { + [CmdletBinding()] + param ( + $UserId, + [bool]$MessageCopyForSentAsEnabled, + [bool]$MessageCopyForSendOnBehalfEnabled, + $TenantFilter, + $APIName = 'Set message copy for sent', + $Headers + ) + try { + $cmdParams = @{ + Identity = $UserId + MessageCopyForSentAsEnabled = $MessageCopyForSentAsEnabled + MessageCopyForSendOnBehalfEnabled = $MessageCopyForSendOnBehalfEnabled + + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams $cmdParams + $Result = "Successfully set message copy for 'Send as' as $MessageCopyForSentAsEnabled and 'Sent on behalf' as $MessageCopyForSendOnBehalfEnabled on $($UserId)." + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to set message copy for 'Send as' as $MessageCopyForSentAsEnabled and 'Sent on behalf' as $MessageCopyForSendOnBehalfEnabled - $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Error' -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPMobileDevice.ps1 b/Modules/CIPPCore/Public/Set-CIPPMobileDevice.ps1 new file mode 100644 index 000000000000..9726efad1b3f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPMobileDevice.ps1 @@ -0,0 +1,44 @@ +function Set-CIPPMobileDevice( + [string]$Headers, + [string]$Quarantine, + [string]$UserId, + [string]$DeviceId, + [string]$TenantFilter, + [string]$Delete, + [string]$Guid, + [string]$APIName = 'Mobile Device' +) { + + try { + if ($Quarantine -eq 'false') { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-CASMailbox' -cmdParams @{Identity = $UserId; ActiveSyncAllowedDeviceIDs = @{'@odata.type' = '#Exchange.GenericHashTable'; add = $DeviceId } } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Allow Active Sync Device for $UserId" -Sev 'Info' + return "Allowed Active Sync Device for $UserId" + } elseif ($Quarantine -eq 'true') { + New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-CASMailbox' -cmdParams @{Identity = $UserId; ActiveSyncBlockedDeviceIDs = @{'@odata.type' = '#Exchange.GenericHashTable'; add = $DeviceId } } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Blocked Active Sync Device for $UserId" -Sev 'Info' + return "Blocked Active Sync Device for $UserId" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + if ($Quarantine -eq 'false') { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to Allow Active Sync Device for $($UserId): $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return "Failed to Allow Active Sync Device for $($UserId): $($ErrorMessage.NormalizedError)" + } elseif ($Quarantine -eq 'true') { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to Block Active Sync Device for $($UserId): $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return "Failed to Block Active Sync Device for $($UserId): $($ErrorMessage.NormalizedError)" + } + } + + try { + if ($Delete -eq 'true') { + New-ExoRequest -tenant $TenantFilter -cmdlet 'Remove-MobileDevice' -cmdParams @{Identity = $Guid; Confirm = $false } -UseSystemMailbox $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Deleted Active Sync Device for $UserId" -Sev 'Info' + return "Deleted Active Sync Device for $UserId" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to delete Mobile Device $($Guid): $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return "Failed to delete Mobile Device $($Guid): $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPNamedLocation.ps1 b/Modules/CIPPCore/Public/Set-CIPPNamedLocation.ps1 new file mode 100644 index 000000000000..888622741f86 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPNamedLocation.ps1 @@ -0,0 +1,77 @@ +function Set-CIPPNamedLocation { + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $NamedLocationId, + $TenantFilter, + #$Change should be one of 'addIp','addLocation','removeIp','removeLocation','rename','setTrusted','setUntrusted','delete' + [ValidateSet('addIp', 'addLocation', 'removeIp', 'removeLocation', 'rename', 'setTrusted', 'setUntrusted', 'delete')] + $Change, + $Content, + $APIName = 'Set Named Location', + $Headers + ) + + try { + $NamedLocations = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$NamedLocationId" -Tenantid $TenantFilter + + switch ($Change) { + 'addIp' { + $NamedLocations.ipRanges = @($NamedLocations.ipRanges + @{ cidrAddress = $Content; '@odata.type' = '#microsoft.graph.iPv4CidrRange' }) + $ActionDescription = "Adding IP $Content to named location" + } + 'addLocation' { + $NamedLocations.countriesAndRegions = $NamedLocations.countriesAndRegions + $Content + $ActionDescription = "Adding location $Content to named location" + } + 'removeIp' { + $NamedLocations.ipRanges = @($NamedLocations.ipRanges | Where-Object -Property cidrAddress -NE $Content) + $ActionDescription = "Removing IP $Content from named location" + } + 'removeLocation' { + $NamedLocations.countriesAndRegions = @($NamedLocations.countriesAndRegions | Where-Object { $_ -NE $Content }) + $ActionDescription = "Removing location $Content from named location" + } + 'rename' { + $NamedLocations.displayName = $Content + $ActionDescription = "Renaming named location to: $Content" + } + 'setTrusted' { + $NamedLocations.isTrusted = $true + $ActionDescription = 'Setting named location as trusted' + } + 'setUntrusted' { + $NamedLocations.isTrusted = $false + $ActionDescription = 'Setting named location as untrusted' + } + 'delete' { + $ActionDescription = 'Deleting named location' + } + } + + if ($PSCmdlet.ShouldProcess($NamedLocations.displayName, $ActionDescription)) { + if ($Change -eq 'delete') { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$NamedLocationId" -tenantid $TenantFilter -type DELETE + $Result = "Deleted named location: $($NamedLocations.displayName)" + } else { + # PATCH operations - remove unneeded properties + if ($NamedLocations.'@odata.type' -eq '#microsoft.graph.countryNamedLocation') { + $NamedLocations = $NamedLocations | Select-Object '@odata.type', 'displayName', 'countriesAndRegions', 'includeUnknownCountriesAndRegions' + } elseif ($NamedLocations.'@odata.type' -eq '#microsoft.graph.ipNamedLocation') { + $NamedLocations = $NamedLocations | Select-Object '@odata.type', 'displayName', 'ipRanges', 'isTrusted' + } + + $JsonBody = ConvertTo-Json -InputObject $NamedLocations -Compress -Depth 10 + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$NamedLocationId" -tenantid $TenantFilter -type PATCH -body $JsonBody + $Result = "Edited named location: $($NamedLocations.displayName). Change: $Change$(if ($Content) { " with content $Content" })" + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + } + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to edit named location: $($NamedLocations.displayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -tenant $TenantFilter -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPNotificationConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPNotificationConfig.ps1 new file mode 100644 index 000000000000..7c6acb63d582 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPNotificationConfig.ps1 @@ -0,0 +1,38 @@ +function Set-CIPPNotificationConfig { + [CmdletBinding()] + param ( + $email, + $webhook, + $onepertenant, + $logsToInclude, + $sendtoIntegration, + $sev, + $APIName = 'Set Notification Config' + ) + + $results = try { + $Table = Get-CIPPTable -TableName SchedulerConfig + $SchedulerConfig = @{ + 'tenant' = 'Any' + 'tenantid' = 'TenantId' + 'type' = 'CIPPNotifications' + 'schedule' = 'Every 15 minutes' + 'Severity' = [string]$sev + 'email' = "$($email)" + 'webhook' = "$($webhook)" + 'onePerTenant' = [boolean]$onePerTenant + 'sendtoIntegration' = [boolean]$sendtoIntegration + 'includeTenantId' = $true + 'PartitionKey' = 'CippNotifications' + 'RowKey' = 'CippNotifications' + } + foreach ($logvalue in [pscustomobject]$logsToInclude) { + $SchedulerConfig[([pscustomobject]$logvalue.value)] = $true + } + + Add-CIPPAzDataTableEntity @Table -Entity $SchedulerConfig -Force | Out-Null + return 'Successfully set the configuration' + } catch { + return "Failed to set configuration: $($_.Exception.message)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPOutOfoffice.ps1 b/Modules/CIPPCore/Public/Set-CIPPOutOfoffice.ps1 new file mode 100644 index 000000000000..19f7fae9e445 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPOutOfoffice.ps1 @@ -0,0 +1,57 @@ +function Set-CIPPOutOfOffice { + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + $UserID, + $InternalMessage, + $ExternalMessage, + $TenantFilter, + [ValidateSet('Enabled', 'Disabled', 'Scheduled')] + [Parameter(Mandatory = $true)] + [string]$State, + $APIName = 'Set Out of Office', + $Headers, + $StartTime, + $EndTime + ) + + try { + + $CmdParams = @{ + Identity = $UserID + AutoReplyState = $State + ExternalAudience = 'None' + } + + if ($PSBoundParameters.ContainsKey('InternalMessage')) { + $CmdParams.InternalMessage = $InternalMessage + } + + if ($PSBoundParameters.ContainsKey('ExternalMessage')) { + $CmdParams.ExternalMessage = $ExternalMessage + $CmdParams.ExternalAudience = 'All' + } + + if ($State -eq 'Scheduled') { + # If starttime or endtime are not provided, default to enabling OOO for 7 days + $StartTime = $StartTime ? $StartTime : (Get-Date).ToString() + $EndTime = $EndTime ? $EndTime : (Get-Date $StartTime).AddDays(7) + $CmdParams.StartTime = $StartTime + $CmdParams.EndTime = $EndTime + } + + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxAutoReplyConfiguration' -cmdParams $CmdParams -Anchor $UserID + + $Results = $State -eq 'Scheduled' ? + "Scheduled Out-of-office for $($UserID) between $($StartTime.toString()) and $($EndTime.toString())" : + "Set Out-of-office for $($UserID) to $State." + + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Info' -tenant $TenantFilter + return $Results + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Could not add OOO for $($UserID). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Results -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Results + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPPerUserMFA.ps1 b/Modules/CIPPCore/Public/Set-CIPPPerUserMFA.ps1 new file mode 100644 index 000000000000..e06a75b7b070 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPPerUserMFA.ps1 @@ -0,0 +1,63 @@ +function Set-CIPPPerUserMFA { + <# + .SYNOPSIS + Change Per-User MFA State for a User + + .DESCRIPTION + Change the Per-User MFA State for a user via the /users/{id}/authentication/requirements endpoint + + .PARAMETER TenantFilter + Tenant where the user resides + + .PARAMETER userId + One or more User IDs to set the MFA state for (GUID or UserPrincipalName) + + .PARAMETER State + State to set the user to (enabled, disabled, enforced) + + .PARAMETER Headers + User executing the command + + .EXAMPLE + Set-CIPPPerUserMFA -TenantFilter 'contoso.onmicrosoft.com' -userId user@contoso.onmicrosoft.com -State 'disabled' -Headers 'mspuser@partner.com' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string[]]$userId, + [ValidateSet('enabled', 'disabled', 'enforced')] + $State = 'enabled', + $Headers, + $APIName = 'Set-CIPPPerUserMFA' + ) + + try { + $int = 0 + $Body = @{ + perUserMFAstate = $State + } + $Requests = foreach ($id in $userId) { + @{ + id = $int++ + method = 'PATCH' + url = "users/$id/authentication/requirements" + body = $Body + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } + + $Requests = New-GraphBulkRequest -tenantid $TenantFilter -scope 'https://graph.microsoft.com/.default' -Requests @($Requests) -asapp $true + "Successfully set Per user MFA State for $userId" + + Write-LogMessage -headers $Headers -API $APIName -message "Successfully set Per user MFA State to $State for $id" -Sev Info -tenant $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to set MFA State to $State for $id. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPProfilePhoto.ps1 b/Modules/CIPPCore/Public/Set-CIPPProfilePhoto.ps1 new file mode 100644 index 000000000000..3069799de39f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPProfilePhoto.ps1 @@ -0,0 +1,22 @@ +function Set-CIPPProfilePhoto { + [CmdletBinding()] + param( + $TenantFilter, + $id, + [ValidateSet('users', 'groups', 'teams')] + $type = 'users', + $ContentType = 'image/png', + $PhotoBase64, + $Headers + ) + try { + $PhotoBytes = [Convert]::FromBase64String($PhotoBase64) + New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$type/$id/photo/`$value" -tenantid $tenantfilter -type PUT -body $PhotoBytes -ContentType $ContentType + "Successfully set profile photo for $id" + Write-LogMessage -headers $Headers -API 'Set-CIPPUserProfilePhoto' -message "Successfully set profile photo for $id" -Sev 'Info' -tenant $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + "Failed to set profile photo for $id. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API 'Set-CIPPUserProfilePhoto' -message "Failed to set profile photo for $id. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPQuarantinePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPQuarantinePolicy.ps1 new file mode 100644 index 000000000000..b0fed36a0dc9 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPQuarantinePolicy.ps1 @@ -0,0 +1,109 @@ +function Set-CIPPQuarantinePolicy { + <# + .SYNOPSIS + Set/Add Quarantine policy, supports both custom and global Quarantine Policy + + .DESCRIPTION + Set/Add Quarantine policy, supports both custom and global Quarantine Policy + + .PARAMETER identity + Identity of the Quarantine policy to set, Name or GUID. + + .PARAMETER action + Which action to perform Create or Update. Valid values are Add, New, Create, Edit, Set, Update. + + .PARAMETER tenantFilter + Tenant to manage quarantine policy for. + + .PARAMETER EndUserQuarantinePermissions + End user quarantine permissions to set. This is a hashtable with the following keys: + PermissionToBlockSender + PermissionToDelete + PermissionToPreview + PermissionToRelease + PermissionToRequestRelease + PermissionToAllowSender + PermissionToViewHeader + PermissionToDownload + + .PARAMETER APIName + Name of the API executing the command. + + .PARAMETER ESNEnabled + Whether the quarantine notification is enabled or not. + + .PARAMETER IncludeMessagesFromBlockedSenderAddress + Whether to include messages from blocked sender address or not. + + #> + [CmdletBinding(DefaultParameterSetName = 'QuarantinePolicy')] + param( + [Parameter(Mandatory, ParameterSetName = 'QuarantinePolicy')] + [Parameter(Mandatory, ParameterSetName = 'GlobalQuarantinePolicy')] + [ValidateNotNullOrEmpty()] + [string]$identity, + + [Parameter(Mandatory, ParameterSetName = 'QuarantinePolicy')] + [ValidateSet("Add", "New", "Create", "Edit", "Set", "Update")] + [string]$action, + + [Parameter(Mandatory, ParameterSetName = 'QuarantinePolicy')] + [Hashtable]$EndUserQuarantinePermissions, + + [Parameter(Mandatory, ParameterSetName = 'QuarantinePolicy')] + [bool]$ESNEnabled, + + [Parameter(ParameterSetName = 'QuarantinePolicy')] + [bool]$IncludeMessagesFromBlockedSenderAddress = $false, + + [Parameter(Mandatory, ParameterSetName = 'GlobalQuarantinePolicy')] + [TimeSpan]$EndUserSpamNotificationFrequency, + + [Parameter(ParameterSetName = 'GlobalQuarantinePolicy')] + [string]$EndUserSpamNotificationCustomFromAddress = "", + + [Parameter(ParameterSetName = 'GlobalQuarantinePolicy')] + [bool]$OrganizationBrandingEnabled = $false, + + [Parameter(Mandatory)] + [string]$tenantFilter, + [string]$APIName = 'QuarantinePolicy' + ) + + try { + + switch ($PSCmdlet.ParameterSetName) { + "GlobalQuarantinePolicy" { + $cmdParams = @{ + Identity = $identity + EndUserSpamNotificationFrequency = $EndUserSpamNotificationFrequency.ToString() + EndUserSpamNotificationCustomFromAddress = $EndUserSpamNotificationCustomFromAddress + OrganizationBrandingEnabled = $OrganizationBrandingEnabled + # QuarantinePolicyType = 'GlobalQuarantinePolicy' + } + $cmdLet = 'Set-QuarantinePolicy' + } + "QuarantinePolicy" { + $cmdParams = @{ + EndUserQuarantinePermissionsValue = Convert-QuarantinePermissionsValue @EndUserQuarantinePermissions -ErrorAction Stop + ESNEnabled = $ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $IncludeMessagesFromBlockedSenderAddress + } + + switch ($action) { + {$_ -in @("Add", "New", "Create")} { $cmdParams.Add("Name", $identity) ; $cmdLet = 'New-QuarantinePolicy' } + {$_ -in @("Edit", "Set", "Update")} { $cmdParams.Add("Identity", $identity) ; $cmdLet = 'Set-QuarantinePolicy' } + Default { + throw "Invalid action specified. Valid actions are: Add, New, Edit, Set, Update." + } + } + } + } + + $null = New-ExoRequest -tenantid $tenantFilter -cmdlet $cmdLet -cmdParams $cmdParams -useSystemMailbox $true + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + throw ($ErrorMessage.NormalizedError -replace '\|Microsoft.Exchange.Management.Tasks.ValidationException\|', '') + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 b/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 new file mode 100644 index 000000000000..1285bbf1f402 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 @@ -0,0 +1,56 @@ +function Set-CIPPResetPassword { + [CmdletBinding()] + param( + $UserID, + $DisplayName, + $TenantFilter, + $APIName = 'Reset Password', + $Headers, + [bool]$forceChangePasswordNextSignIn = $true + ) + + try { + $password = New-passwordString + $passwordProfile = @{ + 'passwordProfile' = @{ + 'forceChangePasswordNextSignIn' = $forceChangePasswordNextSignIn + 'password' = $password + } + } | ConvertTo-Json -Compress + + $UserDetails = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)?`$select=onPremisesSyncEnabled" -noPagination $true -tenantid $TenantFilter -verbose + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter -type PATCH -body $passwordProfile -verbose + + #PWPush + $PasswordLink = $null + try { + $PasswordLink = New-PwPushLink -Payload $password + if ($PasswordLink -and $PasswordLink -ne $false) { + $password = $PasswordLink + } + } + catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to create PwPush link, using plain password. Error: $($_.Exception.Message)" -Sev 'Warning' -tenant $TenantFilter + } + Write-LogMessage -headers $Headers -API $APIName -message "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn" -Sev 'Info' -tenant $TenantFilter + + if ($UserDetails.onPremisesSyncEnabled -eq $true) { + return [pscustomobject]@{ + resultText = "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn. The new password is $password. WARNING: This user is AD synced. Please confirm passthrough or writeback is enabled." + copyField = $password + state = 'warning' + } + } else { + return [pscustomobject]@{ + resultText = "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn. The new password is $password" + copyField = $password + state = 'success' + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to reset password for $DisplayName, $($UserID). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPSAMAdminRoles.ps1 b/Modules/CIPPCore/Public/Set-CIPPSAMAdminRoles.ps1 new file mode 100644 index 000000000000..e5063c0ecc62 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSAMAdminRoles.ps1 @@ -0,0 +1,102 @@ +function Set-CIPPSAMAdminRoles { + <# + .SYNOPSIS + Set SAM roles + .DESCRIPTION + Set SAM roles on a tenant + .PARAMETER TenantFilter + Tenant to apply the SAM roles to + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + $ActionLogs = [System.Collections.Generic.List[object]]::new() + + $SAMRolesTable = Get-CIPPTable -tablename 'SAMRoles' + $Roles = Get-CIPPAzDataTableEntity @SAMRolesTable + + try { + $SAMRoles = $Roles.Roles | ConvertFrom-Json -ErrorAction Stop + $Tenants = $Roles.Tenants | ConvertFrom-Json -ErrorAction Stop + if ($Tenants.value) { + $Tenants = $Tenants.value + } + } catch { + $ActionLogs.Add('CIPP-SAM roles not configured') + return $ActionLogs + } + + if (($SAMRoles | Measure-Object).count -gt 0 -and $Tenants -contains $TenantFilter -or $Tenants -contains 'AllTenants') { + $AppMemberOf = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals(appId='$($env:ApplicationID)')/memberOf/#microsoft.graph.directoryRole" -tenantid $TenantFilter -AsApp $true + + $sp = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals(appId='$($env:ApplicationID)')?`$select=id,displayName" -tenantid $TenantFilter -AsApp $true) + $id = $sp.id + + $Requests = $SAMRoles | Where-Object { $AppMemberOf.roleTemplateId -notcontains $_.value } | ForEach-Object { + # Batch add service principal to directoryRole + [PSCustomObject]@{ + 'id' = $_.label + 'headers' = @{ + 'Content-Type' = 'application/json' + } + 'url' = "directoryRoles(roleTemplateId='$($_.value)')/members/`$ref" + 'method' = 'POST' + 'body' = @{ + '@odata.id' = "https://graph.microsoft.com/v1.0/directoryObjects/$($id)" + } + } + } + if (($Requests | Measure-Object).count -gt 0) { + $HasFailures = $false + try { + $null = New-ExoRequest -cmdlet 'New-ServicePrincipal' -cmdParams @{AppId = $env:ApplicationID; ObjectId = $id; DisplayName = 'CIPP-SAM' } -Compliance -tenantid $TenantFilter -useSystemMailbox $true -AsApp + $ActionLogs.Add('Added Service Principal to Compliance Center') + } catch { + $ActionLogs.Add('Service Principal already added to Compliance Center') + } + try { + $null = New-ExoRequest -cmdlet 'New-ServicePrincipal' -cmdParams @{AppId = $env:ApplicationID; ObjectId = $id; DisplayName = 'CIPP-SAM' } -tenantid $TenantFilter -useSystemMailbox $true -AsApp + $ActionLogs.Add('Added Service Principal to Exchange Online') + } catch { + $ActionLogs.Add('Service Principal already added to Exchange Online') + } + + Write-Verbose ($Requests | ConvertTo-Json -Depth 5) + $Results = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($Requests) + $Results | ForEach-Object { + if ($_.status -eq 204) { + $ActionLogs.Add("Added service principal to directory role $($_.id)") + } else { + $ActionLogs.Add("Failed to add service principal to directoryRole $($_.id)") + Write-Verbose ($_ | ConvertTo-Json -Depth 5) + $HasFailures = $true + } + } + $LogMessage = @{ + 'API' = 'Set-CIPPSAMAdminRoles' + 'tenant' = $TenantFilter + 'tenantid' = (Get-Tenants -TenantFilter $TenantFilter -IncludeErrors).custom + 'message' = '' + 'LogData' = $ActionLogs + } + if ($HasFailures) { + $LogMessage.message = 'Errors occurred while setting Admin Roles for CIPP-SAM' + $LogMessage.sev = 'Error' + } else { + $LogMessage.message = 'Successfully set Admin Roles for CIPP-SAM' + $LogMessage.sev = 'Info' + } + Write-LogMessage @LogMessage + } else { + $ActionLogs.Add('Service principal already exists in all requested Admin Roles') + } + } else { + $ActionLogs.Add('No SAM roles found or tenant not added to CIPP-SAM roles') + } + $ActionLogs +} diff --git a/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 b/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 new file mode 100644 index 000000000000..6f7251b04034 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSPOTenant.ps1 @@ -0,0 +1,93 @@ +function Set-CIPPSPOTenant { + <# + .SYNOPSIS + Set SharePoint Tenant properties + + .DESCRIPTION + Set SharePoint Tenant properties via SPO API + + .PARAMETER TenantFilter + Tenant to apply settings to + + .PARAMETER Identity + Tenant Identity (Get from Get-CIPPSPOTenant) + + .PARAMETER Properties + Hashtable of tenant properties to change + + .PARAMETER SharepointPrefix + Prefix for the sharepoint tenant + + .EXAMPLE + $Properties = @{ + 'EnableAIPIntegration' = $true + } + Get-CippSPOTenant -TenantFilter 'contoso.onmicrosoft.com' | Set-CIPPSPOTenant -Properties $Properties + + .FUNCTIONALITY + Internal + + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [string]$TenantFilter, + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Alias('_ObjectIdentity_')] + [string]$Identity, + [Parameter(Mandatory = $true)] + [hashtable]$Properties, + [Parameter(ValueFromPipelineByPropertyName = $true)] + [string]$SharepointPrefix + ) + + process { + if (!$SharepointPrefix) { + # get sharepoint admin site + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $AdminUrl = $SharePointInfo.AdminUrl + } else { + $tenantName = $SharepointPrefix + $AdminUrl = "https://$($tenantName)-admin.sharepoint.com" + } + $Identity = $Identity -replace "`n", ' ' + $AllowedTypes = @('Boolean', 'String', 'Int32') + $SetProperty = [System.Collections.Generic.List[string]]::new() + $x = 114 + foreach ($Property in $Properties.Keys) { + # Get property type + $PropertyType = $Properties[$Property].GetType().Name + if ($PropertyType -in $AllowedTypes) { + if ($PropertyType -eq 'Boolean') { + $PropertyToSet = $Properties[$Property].ToString().ToLower() + } else { + $PropertyToSet = $Properties[$Property] + } + $xml = @" + + $($PropertyToSet) + +"@ + $SetProperty.Add($xml) + $x++ + } + } + + if (($SetProperty | Measure-Object).Count -eq 0) { + Write-Error 'No valid properties found' + return + } + + # Query tenant settings + $XML = @" + $($SetProperty -join '') +"@ + $AdditionalHeaders = @{ + 'Accept' = 'application/json;odata=verbose' + } + + if ($PSCmdlet.ShouldProcess(($Properties.Keys -join ', '), 'Set Tenant Properties')) { + New-GraphPostRequest -scope "$AdminURL/.default" -tenantid $TenantFilter -Uri "$AdminURL/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' -AddedHeaders $AdditionalHeaders + } + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPSharePointPerms.ps1 b/Modules/CIPPCore/Public/Set-CIPPSharePointPerms.ps1 new file mode 100644 index 000000000000..ffc4dbd72fd6 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSharePointPerms.ps1 @@ -0,0 +1,59 @@ +function Set-CIPPSharePointPerms { + [CmdletBinding()] + param ( + $UserId, # The UPN or ID of the users OneDrive we are changing permissions on + $OnedriveAccessUser, # The UPN of the user we are adding or removing permissions for + $TenantFilter, + $APIName = 'Manage SharePoint Owner', + $RemovePermission, + $Headers, + $URL + ) + if ($RemovePermission -eq $true) { + $SiteAdmin = 'false' + } else { + $SiteAdmin = 'true' + } + + try { + if (!$URL) { + Write-Information 'No URL provided, getting URL from Graph' + $URL = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserId)/Drives" -asapp $true -tenantid $TenantFilter).WebUrl + } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $XML = @" + + + + + + + + $URL + $OnedriveAccessUser + $SiteAdmin + + + + + +"@ + $request = New-GraphPostRequest -scope "$($SharePointInfo.AdminUrl)/.default" -tenantid $TenantFilter -Uri "$($SharePointInfo.AdminUrl)/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' + # Write-Host $($request) + if (!$request.ErrorInfo.ErrorMessage) { + $Message = "Successfully $($RemovePermission ? 'removed' : 'added') $($OnedriveAccessUser) as an owner of $URL" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev Info -tenant $TenantFilter + return $Message + } else { + $Message = "Failed to change access: $($request.ErrorInfo.ErrorMessage)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev Error -tenant $TenantFilter + throw $Message + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set SharePoint permissions for $($OnedriveAccessUser) on $URL. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPSherwebLicense.ps1 b/Modules/CIPPCore/Public/Set-CIPPSherwebLicense.ps1 new file mode 100644 index 000000000000..fb71de2ea786 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSherwebLicense.ps1 @@ -0,0 +1,15 @@ +function Set-CIPPSherwebLicense { + param ( + [Parameter(Mandatory = $true)] + [string]$tenantFilter, + + [Parameter(Mandatory = $true)] + [string]$SKUid, + + [int]$Quantity, + [int]$Add, + [int]$Remove + ) + + Set-SherwebSubscription -SKU $SKUid -Quantity $Quantity -Add $Add -Remove $Remove -TenantFilter $tenantFilter +} diff --git a/Modules/CIPPCore/Public/Set-CIPPSignInState.ps1 b/Modules/CIPPCore/Public/Set-CIPPSignInState.ps1 new file mode 100644 index 000000000000..ced2b88f701f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSignInState.ps1 @@ -0,0 +1,32 @@ +function Set-CIPPSignInState { + [CmdletBinding()] + param ( + $UserID, + [bool]$AccountEnabled, + $TenantFilter, + $APIName = 'Disable User Sign-in', + $Headers + ) + + try { + $body = @{ + accountEnabled = [bool]$AccountEnabled + } + $body = ConvertTo-Json -InputObject $body -Compress -Depth 5 + $UserDetails = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)?`$select=onPremisesSyncEnabled" -noPagination $true -tenantid $TenantFilter -verbose + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter -type PATCH -body $body -verbose + Write-LogMessage -headers $Headers -API $APIName -message "Successfully set account enabled state to $AccountEnabled for $UserID" -Sev 'Info' -tenant $TenantFilter + + if ($UserDetails.onPremisesSyncEnabled -eq $true) { + throw "WARNING: User $UserID is AD Sync enabled. Please enable/disable in the local AD." + } else { + return "Successfully set account enabled state to $AccountEnabled for $UserID" + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to set sign-in state for $UserID. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + throw $Message + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPSignature.ps1 b/Modules/CIPPCore/Public/Set-CIPPSignature.ps1 new file mode 100644 index 000000000000..441854f5e831 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSignature.ps1 @@ -0,0 +1,28 @@ +function Set-CIPPSignature { + [CmdletBinding()] + param ( + $userid, + $InternalMessage, + $ExternalMessage, + $TenantFilter, + $State, + $APIName = 'Set Outlook Roaming Signature', + $Headers, + $StartTime, + $EndTime + ) + + try { + $SignatureProfile = @' +[{"name":"Roaming_New_Signature","itemClass":"","id":"","scope":"AdeleV@M365x42953883.OnMicrosoft.com","parentSetting":"","secondaryKey":"","type":"String","timestamp":638296273181532792,"metadata":"","value":"Kelvin","isFirstSync":"true","source":"UserOverride"}] +'@ + $null = New-GraphPostRequest -uri 'https://substrate.office.com/ows/beta/outlookcloudsettings/settings/global' -tenantid $TenantFilter -type PATCH -contentType 'application/json' -verbose -scope 'https://outlook.office.com/.default' + Write-LogMessage -headers $Headers -API $APIName -message "Set Out-of-office for $($userid) to $state" -Sev 'Info' -tenant $TenantFilter + return "Set Out-of-office for $($userid) to $state." + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -message "Could not add OOO for $($userid). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage + return "Could not add out of office message for $($userid). Error: $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPSponsor.ps1 b/Modules/CIPPCore/Public/Set-CIPPSponsor.ps1 new file mode 100644 index 000000000000..ad2444c01b9f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSponsor.ps1 @@ -0,0 +1,22 @@ +function Set-CIPPSponsor { + [CmdletBinding()] + param ( + $User, + $Sponsor, + $TenantFilter, + $APIName = 'Set Sponsor', + $Headers + ) + + try { + $SponsorBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Sponsor)" } + $SponsorBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $SponsorBody + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($User)/sponsors/`$ref" -tenantid $TenantFilter -type PUT -body $SponsorBodyJSON + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Set $User's sponsor to $Sponsor" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to Set Sponsor. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $_ + throw "Failed to set sponsor: $($_.Exception.Message)" + } + return "Set $user's sponsor to $Sponsor" +} diff --git a/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 b/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 new file mode 100644 index 000000000000..a12bd21aaefb --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPStandardsCompareField.ps1 @@ -0,0 +1,114 @@ +function Set-CIPPStandardsCompareField { + [CmdletBinding(SupportsShouldProcess = $true)] + param ( + $FieldName, + $FieldValue, #FieldValue is here for backward compatibility. + $CurrentValue, #The latest actual value in raw json + $ExpectedValue, #The expected value - e.g. the settings object from our standard + $TenantFilter, + [Parameter()] + [bool]$LicenseAvailable = $true, + [Parameter()] + [array]$BulkFields + ) + $Table = Get-CippTable -tablename 'CippStandardsReports' + $TenantName = Get-Tenants -TenantFilter $TenantFilter + + # Helper function to normalize field values. This can go in a couple of releases tbh. + function ConvertTo-NormalizedFieldValue { + param($Value) + if ($Value -is [System.Boolean]) { + return [bool]$Value + } elseif ($Value -is [string]) { + return [string]$Value + } else { + $JsonValue = ConvertTo-Json -Compress -InputObject @($Value) -Depth 10 | Out-String + return [string]$JsonValue + } + } + + if ($CurrentValue -and $CurrentValue -isnot [string]) { + $CurrentValue = [string](ConvertTo-Json -InputObject $CurrentValue -Depth 10 -Compress) + } + if ($ExpectedValue -and $ExpectedValue -isnot [string]) { + $ExpectedValue = [string](ConvertTo-Json -InputObject $ExpectedValue -Depth 10 -Compress) + } + + # Handle bulk operations + if ($BulkFields) { + # Get all existing entities for this tenant in one query + $ExistingEntities = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($TenantName.defaultDomainName)'" + $ExistingHash = @{} + foreach ($Entity in $ExistingEntities) { + $ExistingHash[$Entity.RowKey] = $Entity + } + + # Build array of entities to insert/update + $EntitiesToProcess = [System.Collections.Generic.List[object]]::new() + + foreach ($Field in $BulkFields) { + $NormalizedValue = ConvertTo-NormalizedFieldValue -Value $Field.FieldValue + + if ($ExistingHash.ContainsKey($Field.FieldName)) { + $Entity = $ExistingHash[$Field.FieldName] + $Entity.Value = $NormalizedValue + $Entity | Add-Member -NotePropertyName TemplateId -NotePropertyValue ([string]$script:CippStandardInfoStorage.Value.StandardTemplateId) -Force + $Entity | Add-Member -NotePropertyName LicenseAvailable -NotePropertyValue ([bool]$Field.LicenseAvailable) -Force + $Entity | Add-Member -NotePropertyName CurrentValue -NotePropertyValue ([string]$Field.CurrentValue) -Force + $Entity | Add-Member -NotePropertyName ExpectedValue -NotePropertyValue ([string]$Field.ExpectedValue) -Force + } else { + $Entity = [PSCustomObject]@{ + PartitionKey = [string]$TenantName.defaultDomainName + RowKey = [string]$Field.FieldName + Value = $NormalizedValue + TemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + LicenseAvailable = [bool]$Field.LicenseAvailable + CurrentValue = [string]$Field.CurrentValue + ExpectedValue = [string]$Field.ExpectedValue + } + } + $EntitiesToProcess.Add($Entity) + } + + if ($PSCmdlet.ShouldProcess('CIPP Standards Compare', "Set $($EntitiesToProcess.Count) fields for tenant '$($TenantName.defaultDomainName)'")) { + try { + # Single bulk insert/update operation + Add-CIPPAzDataTableEntity @Table -Entity $EntitiesToProcess -Force + Write-Information "Bulk added $($EntitiesToProcess.Count) fields to StandardCompare for $($TenantName.defaultDomainName)" + } catch { + Write-Warning "Failed to bulk add fields to StandardCompare for $($TenantName.defaultDomainName) - $($_.Exception.Message)" + } + } + } else { + # Original single field logic + $NormalizedValue = ConvertTo-NormalizedFieldValue -Value $FieldValue + $Existing = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($TenantName.defaultDomainName)' and RowKey eq '$($FieldName)'" + + if ($PSCmdlet.ShouldProcess('CIPP Standards Compare', "Set field '$FieldName' to '$NormalizedValue' for tenant '$($TenantName.defaultDomainName)'")) { + try { + if ($Existing) { + $Existing.Value = $NormalizedValue + $Existing | Add-Member -NotePropertyName TemplateId -NotePropertyValue ([string]$script:CippStandardInfoStorage.Value.StandardTemplateId) -Force + $Existing | Add-Member -NotePropertyName LicenseAvailable -NotePropertyValue ([bool]$LicenseAvailable) -Force + $Existing | Add-Member -NotePropertyName CurrentValue -NotePropertyValue ([string]$CurrentValue) -Force + $Existing | Add-Member -NotePropertyName ExpectedValue -NotePropertyValue ([string]$ExpectedValue) -Force + Add-CIPPAzDataTableEntity @Table -Entity $Existing -Force + } else { + $Result = [PSCustomObject]@{ + PartitionKey = [string]$TenantName.defaultDomainName + RowKey = [string]$FieldName + Value = $NormalizedValue + TemplateId = [string]$script:CippStandardInfoStorage.Value.StandardTemplateId + LicenseAvailable = [bool]$LicenseAvailable + CurrentValue = [string]$CurrentValue + ExpectedValue = [string]$ExpectedValue + } + Add-CIPPAzDataTableEntity @Table -Entity $Result -Force + } + Write-Information "Adding $FieldName to StandardCompare for $($TenantName.defaultDomainName). content is $NormalizedValue" + } catch { + Write-Warning "Failed to add $FieldName to StandardCompare for $($TenantName.defaultDomainName). content is $NormalizedValue - $($_.Exception.Message)" + } + } + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 new file mode 100644 index 000000000000..2fdcb5864535 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 @@ -0,0 +1,196 @@ +function Set-CIPPUserJITAdmin { + <# + .SYNOPSIS + Just-in-time admin management + + .DESCRIPTION + Just-in-time admin management for CIPP. This function can create users, add roles, remove roles, delete, or disable a user. + + .PARAMETER TenantFilter + Tenant to manage for JIT admin + + .PARAMETER User + User object to manage JIT admin roles, required property UserPrincipalName - If user is being created we also require FirstName and LastName + + .PARAMETER Roles + List of Role GUIDs to add or remove + + .PARAMETER Action + Action to perform: Create, AddRoles, RemoveRoles, DeleteUser, DisableUser + + .PARAMETER Expiration + DateTime for expiration + + .PARAMETER Reason + Reason for JIT admin assignment. Defaults to 'No reason provided' as due to backwards compatibility this is not a mandatory field. + + .PARAMETER Headers + Headers to include in logging + + .EXAMPLE + Set-CIPPUserJITAdmin -TenantFilter 'contoso.onmicrosoft.com' -Headers@{UserPrincipalName = 'jit@contoso.onmicrosoft.com'} -Roles @('62e90394-69f5-4237-9190-012177145e10') -Action 'AddRoles' -Expiration (Get-Date).AddDays(1) -Reason 'Emergency access' + + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [hashtable]$User, + [string[]]$Roles, + [Parameter(Mandatory = $true)] + [ValidateSet('Create', 'AddRoles', 'RemoveRoles', 'DeleteUser', 'DisableUser')] + [string]$Action, + [datetime]$Expiration, + [datetime]$StartDate, + [string]$Reason = 'No reason provided', + $Headers, + [string]$APIName = 'Set-CIPPUserJITAdmin' + ) + + if ($PSCmdlet.ShouldProcess("User: $($User.UserPrincipalName)", "Action: $Action")) { + if ($Action -ne 'Create') { + $UserObj = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/users/$($User.UserPrincipalName)" -tenantid $TenantFilter + } + + switch ($Action) { + 'Create' { + $Password = New-passwordString + $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 + + $Body = @{ + givenName = $User.FirstName + surname = $User.LastName + accountEnabled = $true + displayName = $User.FirstName + ' ' + $User.LastName + userPrincipalName = $User.UserPrincipalName + mailNickname = $User.UserPrincipalName.Split('@')[0] + passwordProfile = @{ + forceChangePasswordNextSignIn = $true + forceChangePasswordNextSignInWithMfa = $false + password = $Password + } + "$($Schema.id)" = @{ + jitAdminEnabled = $false + jitAdminExpiration = $Expiration.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + jitAdminStartDate = if ($StartDate) { $StartDate.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } else { $null } + jitAdminReason = $Reason + jitAdminCreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } + } + } + $Json = ConvertTo-Json -Depth 5 -InputObject $Body + try { + $NewUser = New-GraphPOSTRequest -type POST -Uri 'https://graph.microsoft.com/beta/users' -Body $Json -tenantid $TenantFilter + #PWPush + $PasswordLink = New-PwPushLink -Payload $Password + if ($PasswordLink) { + $Password = $PasswordLink + } + $LogData = @{ + UserPrincipalName = $User.UserPrincipalName + Action = 'Create' + Reason = $Reason + StartDate = if ($StartDate) { $StartDate.ToString('o') } else { (Get-Date).ToString('o') } + Expiration = $Expiration.ToString('o') + ExpirationUTC = $Expiration.ToUniversalTime().ToString('o') + CreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Created JIT Admin user: $($User.UserPrincipalName). Reason: $Reason" -Sev 'Info' -LogData $LogData + [PSCustomObject]@{ + id = $NewUser.id + userPrincipalName = $NewUser.userPrincipalName + password = $Password + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-Information "Error creating user: $ErrorMessage" + throw $ErrorMessage + } + } + 'AddRoles' { + $Roles = $Roles | ForEach-Object { + try { + $Body = @{ + '@odata.id' = "https://graph.microsoft.com/v1.0/directoryObjects/$($UserObj.id)" + } + $Json = ConvertTo-Json -Depth 5 -InputObject $Body + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/directoryRoles(roleTemplateId='$($_)')/members/`$ref" -tenantid $TenantFilter -body $Json -ErrorAction SilentlyContinue + } catch {} + } + $UserEnabled = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)?`$select=accountEnabled" -tenantid $TenantFilter).accountEnabled + if (-not $UserEnabled) { + $Body = @{ + accountEnabled = $true + } + $Json = ConvertTo-Json -Depth 5 -InputObject $Body + try { + New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $TenantFilter -body $Json | Out-Null + } catch {} + } + $CreatedBy = if ($Headers) { + ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + } else { 'Unknown' } + + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Enabled -Expiration $Expiration -StartDate $StartDate -Reason $Reason -CreatedBy $CreatedBy | Out-Null + $Message = "Added admin roles to user $($UserObj.displayName) ($($UserObj.userPrincipalName)). Reason: $Reason" + $LogData = @{ + UserPrincipalName = $UserObj.userPrincipalName + UserId = $UserObj.id + DisplayName = $UserObj.displayName + Action = 'AddRoles' + Roles = $Roles + Reason = $Reason + StartDate = if ($StartDate) { $StartDate.ToString('o') } else { (Get-Date).ToString('o') } + Expiration = $Expiration.ToString('o') + ExpirationUTC = $Expiration.ToUniversalTime().ToString('o') + CreatedBy = if ($Headers) { ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails } else { 'Unknown' } + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' -LogData $LogData + return "Added admin roles to user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + } + 'RemoveRoles' { + $Roles = $Roles | ForEach-Object { + try { + $null = New-GraphPOSTRequest -type DELETE -uri "https://graph.microsoft.com/beta/directoryRoles(roleTemplateId='$($_)')/members/$($UserObj.id)/`$ref" -tenantid $TenantFilter + } catch {} + } + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Clear | Out-Null + $Message = "Removed admin roles from user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return "Removed admin roles from user $($UserObj.displayName)" + } + 'DeleteUser' { + try { + $null = New-GraphPOSTRequest -type DELETE -uri "https://graph.microsoft.com/beta/users/$($UserObj.userPrincipalName)" -tenantid $TenantFilter + $Message = "Deleted user $($UserObj.displayName) ($($UserObj.userPrincipalName)) with id $($UserObj.id)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Error deleting user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" -Sev 'Error' + throw "Error deleting user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" + } + } + 'DisableUser' { + $Body = @{ + accountEnabled = $false + } + $Json = ConvertTo-Json -Depth 5 -InputObject $Body -Compress + try { + Write-Information "Disabling user $($UserObj.displayName) ($($User.UserPrincipalName))" + Write-Information $Json + Write-Information "https://graph.microsoft.com/beta/users/$($User.UserPrincipalName)" + $null = New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/beta/users/$($User.UserPrincipalName)" -tenantid $TenantFilter -body $Json + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $User.UserPrincipalName -Clear | Out-Null + $Message = "Disabled user $($UserObj.displayName) ($($UserObj.userPrincipalName))" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Message -Sev 'Info' + return $Message + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Error disabling user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" -Sev 'Error' + throw "Error disabling user $($UserObj.displayName) ($($UserObj.userPrincipalName)): $ErrorMessage" + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 new file mode 100644 index 000000000000..07eb7402ed7a --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 @@ -0,0 +1,43 @@ +function Set-CIPPUserJITAdminProperties { + [CmdletBinding()] + param( + [string]$TenantFilter, + [string]$UserId, + [switch]$Enabled, + $Expiration, + $StartDate, + [switch]$Clear, + [string]$Reason, + [string]$CreatedBy + ) + try { + $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 + if ($Clear.IsPresent) { + $Body = [PSCustomObject]@{ + "$($Schema.id)" = @{ + jitAdminEnabled = $null + jitAdminExpiration = $null + jitAdminStartDate = $null + jitAdminReason = $null + jitAdminCreatedBy = $null + } + } + } else { + $Body = [PSCustomObject]@{ + "$($Schema.id)" = @{ + jitAdminEnabled = $Enabled.IsPresent + jitAdminExpiration = $Expiration.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + jitAdminStartDate = if ($StartDate) { $StartDate.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } else { $null } + jitAdminReason = $Reason + jitAdminCreatedBy = $CreatedBy + } + } + } + + $Json = ConvertTo-Json -Depth 5 -InputObject $Body + Write-Information $Json + New-GraphPOSTRequest -type PATCH -Uri "https://graph.microsoft.com/beta/users/$UserId" -Body $Json -tenantid $TenantFilter | Out-Null + } catch { + Write-Information "Error setting JIT Admin properties: $($_.Exception.Message) - $($_.InvocationInfo.PositionMessage)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 new file mode 100644 index 000000000000..e72fb7b69701 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 @@ -0,0 +1,59 @@ +function Set-CIPPUserLicense { + [CmdletBinding()] + param ( + [Parameter(Mandatory)][string]$UserId, + [Parameter(Mandatory)][string]$TenantFilter, + [Parameter()][array]$AddLicenses = @(), + [Parameter()][array]$RemoveLicenses = @(), + $Headers, + $APIName = 'Set User License' + ) + + # Build the addLicenses array + $AddLicensesArray = foreach ($license in $AddLicenses) { + @{ + 'disabledPlans' = @() + 'skuId' = $license + } + } + + # Build the LicenseBody hashtable + $LicenseBody = @{ + 'addLicenses' = @($AddLicensesArray) + 'removeLicenses' = @($RemoveLicenses) ? @($RemoveLicenses) : @() + } + + # Convert the LicenseBody to JSON + $LicenseBodyJson = ConvertTo-Json -InputObject $LicenseBody -Depth 10 -Compress + + Write-Host "License body JSON: $LicenseBodyJson" + + try { + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserId/assignLicense" -tenantid $TenantFilter -type POST -body $LicenseBodyJson -Verbose + } catch { + # Handle if the error is due to missing usage location + if ($_.Exception.Message -like '*invalid usage location*') { + $Table = Get-CippTable -tablename 'UserSettings' + $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq 'allUsers'" + if ($UserSettings) { $DefaultUsageLocation = (ConvertFrom-Json $UserSettings.JSON -Depth 5 -ErrorAction SilentlyContinue).usageLocation.value } + $DefaultUsageLocation ??= 'US' # Fallback to US if not set + + $UsageLocationJson = ConvertTo-Json -InputObject @{'usageLocation' = $DefaultUsageLocation } -Depth 5 -Compress + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserId" -tenantid $TenantFilter -type PATCH -body $UsageLocationJson -Verbose + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Set usage location for user $UserId to $DefaultUsageLocation" -Sev 'Info' + # Retry assigning the license + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$UserId/assignLicense" -tenantid $TenantFilter -type POST -body $LicenseBodyJson -Verbose + } else { + throw $_ + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to assign the license. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + throw "Failed to assign the license. $($ErrorMessage.NormalizedError)" + } + + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Assigned licenses to user $UserId. Added: $AddLicenses; Removed: $RemoveLicenses" -Sev 'Info' + return "Successfully set licenses for $UserId. It may take 2–5 minutes before the changes become visible." +} diff --git a/Modules/CIPPCore/Public/Set-CIPPUserSchemaProperties.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserSchemaProperties.ps1 new file mode 100644 index 000000000000..2060e35feb9b --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPUserSchemaProperties.ps1 @@ -0,0 +1,46 @@ +function Set-CIPPUserSchemaProperties { + <# + .SYNOPSIS + Set Schema Properties for a user + + .DESCRIPTION + Uses scheam extensions to set properties for a user + + .PARAMETER TenantFilter + Tenant for user + + .PARAMETER UserId + One or more user ids to set properties for + + .PARAMETER Properties + Hashtable of properties to set + + #> + [CmdletBinding(SupportsShouldProcess = $true)] + Param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [object]$Users + ) + + $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 + $int = 0 + $Requests = foreach ($User in $Users) { + @{ + id = $int++ + method = 'PATCH' + url = "users/$($User.userId)" + body = @{ + "$($Schema.id)" = $User.Properties + } + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } + + if ($PSCmdlet.ShouldProcess("User: $($Users.userId -join ', ')", 'Set Schema Properties')) { + $Requests = New-GraphBulkRequest -tenantid $tenantfilter -Requests @($Requests) + } +} diff --git a/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 b/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 new file mode 100644 index 000000000000..aeaadf430655 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 @@ -0,0 +1,77 @@ +function Set-CippKeyVaultSecret { + <# + .SYNOPSIS + Sets a secret in Azure Key Vault using REST API (no Az.KeyVault module required) + + .DESCRIPTION + Lightweight replacement for Set-AzKeyVaultSecret that uses REST API directly. + Significantly faster as it doesn't require loading the Az.KeyVault module. + + .PARAMETER VaultName + Name of the Key Vault. If not provided, derives from WEBSITE_DEPLOYMENT_ID environment variable. + + .PARAMETER Name + Name of the secret to set. + + .PARAMETER SecretValue + The secret value as a SecureString. + + .EXAMPLE + $secret = ConvertTo-SecureString -String 'mypassword' -AsPlainText -Force + Set-CippKeyVaultSecret -Name 'MySecret' -SecretValue $secret + + .EXAMPLE + Set-CippKeyVaultSecret -VaultName 'mykeyvault' -Name 'RefreshToken' -SecretValue $secureToken + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$VaultName, + + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [securestring]$SecretValue + ) + + try { + # Derive vault name if not provided + if (-not $VaultName) { + if ($env:WEBSITE_DEPLOYMENT_ID) { + $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + } else { + throw "VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set" + } + } + + # Get access token for Key Vault + $token = Get-CIPPAzIdentityToken -ResourceUrl "https://vault.azure.net" + + # Convert SecureString to plain text + $plainText = [System.Net.NetworkCredential]::new('', $SecretValue).Password + + # Prepare request body + $body = @{ value = $plainText } | ConvertTo-Json + + # Call Key Vault REST API + $uri = "https://$VaultName.vault.azure.net/secrets/$Name`?api-version=7.4" + $response = Invoke-RestMethod -Uri $uri -Headers @{ + Authorization = "Bearer $token" + 'Content-Type' = 'application/json' + } -Method Put -Body $body -ErrorAction Stop + + # Return object similar to Set-AzKeyVaultSecret for compatibility + return @{ + Name = $Name + VaultName = $VaultName + Id = $response.id + Enabled = $response.attributes.enabled + Created = $response.attributes.created + Updated = $response.attributes.updated + } + } catch { + Write-Error "Failed to set secret '$Name' in vault '$VaultName': $($_.Exception.Message)" + throw + } +} diff --git a/Modules/CIPPCore/Public/Set-CippMaxEmailSize.ps1 b/Modules/CIPPCore/Public/Set-CippMaxEmailSize.ps1 new file mode 100644 index 000000000000..c7af1dec9790 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CippMaxEmailSize.ps1 @@ -0,0 +1,57 @@ +function Set-CippMaxEmailSize { + [CmdletBinding()] + param ( + $Headers, + $TenantFilter, + $APIName = 'Mailbox Max Send/Receive Size', + $UserPrincipalName, + $UserID, + [ValidateRange(1, 150)] + [Int32]$MaxSendSize, + [ValidateRange(1, 150)] + [Int32]$MaxReceiveSize + ) + + try { + # Id the ID is provided, use it. Otherwise, use the UPN + $Identity = $UserID ?? $UserPrincipalName + if ([string]::IsNullOrWhiteSpace($Identity)) { + $Result = 'No identity provided. Cannot set mailbox email max size.' + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter + throw $Result + } + + if ($MaxSendSize -eq 0 -and $MaxReceiveSize -eq 0) { + $Result = 'No max send or receive size provided. Cannot set mailbox email max size.' + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter + throw $Result + } + + $cmdletParams = @{ + Identity = $Identity + } + # Set the max send and receive size if they are provided. Convert to bytes + if ($MaxSendSize -gt 0) { $cmdletParams['MaxSendSize'] = $MaxSendSize * 1MB } + if ($MaxReceiveSize -gt 0) { $cmdletParams['MaxReceiveSize'] = $MaxReceiveSize * 1MB } + + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Mailbox' -cmdParams $cmdletParams + + # Use UPN for logging if provided + $Identity = $UserPrincipalName ?? $UserID + $Result = "Set mailbox email max size for $($Identity) to " + if ($MaxSendSize -gt 0) { $Result += "Send: $($MaxSendSize)MB " } + if ($MaxReceiveSize -gt 0) { $Result += "Receive: $($MaxReceiveSize)MB" } + + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Info -tenant $TenantFilter + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + + # Use UPN for logging if provided + $Identity = $UserPrincipalName ?? $UserID + $Result = "Failed to set mailbox email max size for $($Identity). Error: $($ErrorMessage)" + + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev Error -tenant $TenantFilter -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Standards/Convert-SingleStandardObject.ps1 b/Modules/CIPPCore/Public/Standards/Convert-SingleStandardObject.ps1 new file mode 100644 index 000000000000..effeb5d27866 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Convert-SingleStandardObject.ps1 @@ -0,0 +1,41 @@ +function Convert-SingleStandardObject { + param( + [Parameter(Mandatory = $true)] + $Obj + ) + + # Ensure we have a PSCustomObject we can modify + $Obj = [pscustomobject]$Obj + + # Extract action arrays + $AllActionValues = @() + if ($Obj.PSObject.Properties.Name -contains 'combinedActions') { + $AllActionValues = $Obj.combinedActions + $Obj.PSObject.Properties.Remove('combinedActions') | Out-Null + } elseif ($Obj.PSObject.Properties.Name -contains 'action') { + if ($Obj.action -and $Obj.action.value) { + $AllActionValues = $Obj.action.value + } + $Obj.PSObject.Properties.Remove('action') | Out-Null + } + + # Convert to booleans + $Obj | Add-Member -NotePropertyName 'remediate' -NotePropertyValue ($AllActionValues -contains 'Remediate') -Force + $Obj | Add-Member -NotePropertyName 'alert' -NotePropertyValue ($AllActionValues -contains 'warn') -Force + $Obj | Add-Member -NotePropertyName 'report' -NotePropertyValue ($AllActionValues -contains 'Report') -Force + + # Flatten "standards" if present + if ($Obj.PSObject.Properties.Name -contains 'standards' -and $Obj.standards) { + foreach ($standardKey in $Obj.standards.PSObject.Properties.Name) { + $NestedStandard = $Obj.standards.$standardKey + if ($NestedStandard) { + foreach ($nsProp in $NestedStandard.PSObject.Properties) { + $Obj | Add-Member -NotePropertyName $nsProp.Name -NotePropertyValue $nsProp.Value -Force + } + } + } + $Obj.PSObject.Properties.Remove('standards') | Out-Null + } + + return $Obj +} diff --git a/Modules/CIPPCore/Public/Standards/ConvertTo-CippStandardObject.ps1 b/Modules/CIPPCore/Public/Standards/ConvertTo-CippStandardObject.ps1 new file mode 100644 index 000000000000..e2cfe2735653 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/ConvertTo-CippStandardObject.ps1 @@ -0,0 +1,18 @@ +function ConvertTo-CippStandardObject { + + param( + [Parameter(Mandatory = $true)] + $StandardObject + ) + # If it's an array of items, process each item + if ($StandardObject -is [System.Collections.IEnumerable] -and -not ($StandardObject -is [string])) { + $ProcessedItems = New-Object System.Collections.ArrayList + foreach ($Item in $StandardObject) { + $ProcessedItems.Add((Convert-SingleStandardObject $Item)) | Out-Null + } + return $ProcessedItems + } else { + # Single object + return Convert-SingleStandardObject $StandardObject + } +} diff --git a/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 b/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 new file mode 100644 index 000000000000..6b631e8c96fd --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 @@ -0,0 +1,507 @@ +function Get-CIPPStandards { + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter = 'allTenants', + + [Parameter(Mandatory = $false)] + [switch]$LicenseChecks = $false, + + [Parameter(Mandatory = $false)] + [switch]$ListAllTenants, + + [Parameter(Mandatory = $false)] + $TemplateId = '*', + + [Parameter(Mandatory = $false)] + $runManually = $false + ) + + # Get tenant groups + $TenantGroups = Get-TenantGroups + + # 1. Get all JSON-based templates from the "templates" table + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'StandardsTemplateV2'" + $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Sort-Object TimeStamp).JSON | + ForEach-Object { + try { + # Fix old "Action" => "action" + $JSON = $_ -replace '"Action":', '"action":' -replace '"permissionlevel":', '"permissionLevel":' + ConvertFrom-Json -InputObject $JSON -ErrorAction SilentlyContinue + } catch {} + } | + Where-Object { + $_.GUID -like $TemplateId -and $_.runManually -eq $runManually + } + + # 1.5. Expand templates that contain TemplateList-Tags into multiple standards + $ExpandedTemplates = foreach ($Template in $Templates) { + Write-Information "Template $($Template.templateName) ($($Template.GUID)) processing..." + $NewTemplate = $Template.PSObject.Copy() + $ExpandedStandards = [ordered]@{} + $HasExpansions = $false + + foreach ($StandardName in $Template.standards.PSObject.Properties.Name) { + $StandardValue = $Template.standards.$StandardName + $IsArray = $StandardValue -is [System.Collections.IEnumerable] -and -not ($StandardValue -is [string]) + + if ($IsArray) { + $NewArray = foreach ($Item in $StandardValue) { + if ($Item.'TemplateList-Tags'.value) { + $HasExpansions = $true + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'IntuneTemplate'" + $TemplatesList = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object -Property package -EQ $Item.'TemplateList-Tags'.value + + foreach ($TemplateItem in $TemplatesList) { + $NewItem = $Item.PSObject.Copy() + $NewItem.PSObject.Properties.Remove('TemplateList-Tags') + $NewItem | Add-Member -NotePropertyName TemplateList -NotePropertyValue ([pscustomobject]@{ + label = "$($TemplateItem.RowKey)" + value = "$($TemplateItem.RowKey)" + }) -Force + $NewItem | Add-Member -NotePropertyName TemplateId -NotePropertyValue $Template.GUID -Force + $NewItem + } + } else { + $Item | Add-Member -NotePropertyName TemplateId -NotePropertyValue $Template.GUID -Force + $Item + } + } + $ExpandedStandards[$StandardName] = $NewArray + } else { + if ($StandardValue.'TemplateList-Tags'.value) { + $HasExpansions = $true + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'IntuneTemplate'" + $TemplatesList = Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object -Property package -EQ $StandardValue.'TemplateList-Tags'.value + + $NewArray = foreach ($TemplateItem in $TemplatesList) { + $NewItem = $StandardValue.PSObject.Copy() + $NewItem.PSObject.Properties.Remove('TemplateList-Tags') + $NewItem | Add-Member -NotePropertyName TemplateList -NotePropertyValue ([pscustomobject]@{ + label = "$($TemplateItem.RowKey)" + value = "$($TemplateItem.RowKey)" + }) -Force + $NewItem | Add-Member -NotePropertyName TemplateId -NotePropertyValue $Template.GUID -Force + $NewItem + } + $ExpandedStandards[$StandardName] = $NewArray + } else { + $StandardValue | Add-Member -NotePropertyName TemplateId -NotePropertyValue $Template.GUID -Force + $ExpandedStandards[$StandardName] = $StandardValue + } + } + } + + if ($HasExpansions) { + $NewTemplate.standards = [pscustomobject]$ExpandedStandards + } + + $NewTemplate + } + + $Templates = $ExpandedTemplates + + # 2. Get tenant list, filter if needed + $AllTenantsList = Get-Tenants + if ($TenantFilter -ne 'allTenants') { + $AllTenantsList = $AllTenantsList | Where-Object { + $_.defaultDomainName -eq $TenantFilter -or $_.customerId -eq $TenantFilter + } + } + + # 3. If -ListAllTenants, build standards for "AllTenants" only + if ($ListAllTenants.IsPresent) { + $AllTenantsTemplates = $Templates | Where-Object { + $_.tenantFilter.value -contains 'AllTenants' + } + + foreach ($Template in $AllTenantsTemplates) { + $Standards = $Template.standards + + foreach ($StandardName in $Standards.PSObject.Properties.Name) { + $Value = $Standards.$StandardName + $IsArray = $Value -is [System.Collections.IEnumerable] -and -not ($Value -is [string]) + + if ($IsArray) { + # Emit one object per array element + foreach ($Item in $Value) { + $CurrentStandard = $Item.PSObject.Copy() + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $Normalized = ConvertTo-CippStandardObject $CurrentStandard + + [pscustomobject]@{ + Tenant = 'AllTenants' + Standard = $StandardName + Settings = $Normalized + TemplateId = $Template.GUID + } + } + } + } else { + # Single object + $CurrentStandard = $Value.PSObject.Copy() + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $Normalized = ConvertTo-CippStandardObject $CurrentStandard + + [pscustomobject]@{ + Tenant = 'AllTenants' + Standard = $StandardName + Settings = $Normalized + TemplateId = $Template.GUID + } + } + } + } + } + } else { + # 4. For each tenant, figure out which templates apply, merge them, and output. + foreach ($Tenant in $AllTenantsList) { + $TenantName = $Tenant.defaultDomainName + # Determine which templates apply to this tenant + $ApplicableTemplates = $Templates | ForEach-Object { + $template = $_ + $tenantFilterValues = $template.tenantFilter | ForEach-Object { + $FilterValue = $_.value + # Group lookup + if ($_.type -eq 'Group') { + ($TenantGroups | Where-Object { + $_.Id -eq $FilterValue + }).Members.defaultDomainName + } else { + $FilterValue + } + } + + $excludedTenantValues = @() + + if ($template.excludedTenants) { + if ($template.excludedTenants -is [System.Collections.IEnumerable] -and -not ($template.excludedTenants -is [string])) { + $excludedTenantValues = $template.excludedTenants | ForEach-Object { + $FilterValue = $_.value + if ($_.type -eq 'Group') { + ($TenantGroups | Where-Object { + $_.Id -eq $FilterValue + }).Members.defaultDomainName + } else { + $FilterValue + } } + } else { + $excludedTenantValues = @($template.excludedTenants) + } + } + + $AllTenantsApplicable = $false + $TenantSpecificApplicable = $false + + if ($tenantFilterValues -contains 'AllTenants' -and -not ($excludedTenantValues -contains $TenantName)) { + $AllTenantsApplicable = $true + } + if ($tenantFilterValues -contains $TenantName -and -not ($excludedTenantValues -contains $TenantName)) { + $TenantSpecificApplicable = $true + } + + if ($AllTenantsApplicable -or $TenantSpecificApplicable) { + $template + } + } + + # Separate templates into three tiers: AllTenants (lowest precedence), Group (middle), Tenant-Specific (highest) + $AllTenantTemplatesSet = $ApplicableTemplates | Where-Object { + $_.tenantFilter.value -contains 'AllTenants' + } + $GroupTemplatesSet = $ApplicableTemplates | Where-Object { + ($_.tenantFilter.value -notcontains 'AllTenants') -and + ($_.tenantFilter | Where-Object { $_.type -eq 'Group' }) + } + $TenantSpecificTemplatesSet = $ApplicableTemplates | Where-Object { + ($_.tenantFilter.value -notcontains 'AllTenants') -and + -not ($_.tenantFilter | Where-Object { $_.type -eq 'Group' }) + } + + # Build merged standards keyed by (StandardName, TemplateList.value) + $ComputedStandards = @{} + + # Process AllTenants templates first + foreach ($Template in $AllTenantTemplatesSet) { + $Standards = $Template.standards + + foreach ($StandardName in $Standards.PSObject.Properties.Name) { + $Value = $Standards.$StandardName + $IsArray = $Value -is [System.Collections.IEnumerable] -and -not ($Value -is [string]) + + if ($IsArray) { + foreach ($Item in $Value) { + $CurrentStandard = $Item.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + # Key by StandardName + TemplateList.value (if present) + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + $ComputedStandards[$Key] = $CurrentStandard + } + } + } else { + $CurrentStandard = $Value.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + $ComputedStandards[$Key] = $CurrentStandard + } + } + } + } + + # Process Group templates, merging with AllTenants base + foreach ($Template in $GroupTemplatesSet) { + $Standards = $Template.standards + + foreach ($StandardName in $Standards.PSObject.Properties.Name) { + $Value = $Standards.$StandardName + $IsArray = $Value -is [System.Collections.IEnumerable] -and -not ($Value -is [string]) + + if ($IsArray) { + foreach ($Item in $Value) { + $CurrentStandard = $Item.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + # Merge group-based over AllTenants base + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard + } else { + $ComputedStandards[$Key] = $CurrentStandard + } + } + } + } else { + $CurrentStandard = $Value.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard + } else { + $ComputedStandards[$Key] = $CurrentStandard + } + } + } + } + } + + # Process TenantSpecific templates, merging with Group and AllTenants base + foreach ($Template in $TenantSpecificTemplatesSet) { + $Standards = $Template.standards + + foreach ($StandardName in $Standards.PSObject.Properties.Name) { + $Value = $Standards.$StandardName + $IsArray = $Value -is [System.Collections.IEnumerable] -and -not ($Value -is [string]) + + if ($IsArray) { + foreach ($Item in $Value) { + $CurrentStandard = $Item.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + # Merge tenant-specific over Group/AllTenants base + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard + } else { + $ComputedStandards[$Key] = $CurrentStandard + } + } + } + } else { + $CurrentStandard = $Value.PSObject.Copy() + $CurrentStandard | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $Template.GUID -Force + + # Add Remediate if autoRemediate is true + if ($CurrentStandard.autoRemediate -eq $true -and -not ($CurrentStandard.action.value -contains 'Remediate')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Remediate' + value = 'Remediate' + } + } + + # Add Report if Remediate present but Report missing + if ($CurrentStandard.action.value -contains 'Remediate' -and -not ($CurrentStandard.action.value -contains 'Report')) { + $CurrentStandard.action = @($CurrentStandard.action) + [pscustomobject]@{ + label = 'Report' + value = 'Report' + } + } + + $Actions = $CurrentStandard.action.value + if ($Actions -contains 'Remediate' -or $Actions -contains 'warn' -or $Actions -contains 'Report') { + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + if ($ComputedStandards.ContainsKey($Key)) { + $MergedStandard = Merge-CippStandards -Existing $ComputedStandards[$Key] -New $CurrentStandard -StandardName $StandardName + $ComputedStandards[$Key] = $MergedStandard + } else { + $ComputedStandards[$Key] = $CurrentStandard + } + } + } + } + } + # License checks and policy timestamp filtering moved to Push-CIPPStandardsList activity + foreach ($Key in $ComputedStandards.Keys) { + $Standard = $ComputedStandards[$Key] + $StandardName = $Key -replace '\|.*$', '' + # Preserve TemplateId before removing + $PreservedTemplateId = $Standard.TemplateId + $Standard.PSObject.Properties.Remove('TemplateId') | Out-Null + + $Normalized = ConvertTo-CippStandardObject $Standard + + [pscustomobject]@{ + Tenant = $TenantName + Standard = $StandardName + Settings = $Normalized + TemplateId = $PreservedTemplateId + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 new file mode 100644 index 000000000000..d89d9804bc15 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardActivityBasedTimeout.ps1 @@ -0,0 +1,106 @@ +function Invoke-CIPPStandardActivityBasedTimeout { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) ActivityBasedTimeout + .SYNOPSIS + (Label) Enable Activity based Timeout + .DESCRIPTION + (Helptext) Enables and sets Idle session timeout for Microsoft 365 to 1 hour. This policy affects most M365 web apps + (DocsDescription) Enables and sets Idle session timeout for Microsoft 365 to 1 hour. This policy affects most M365 web apps + .NOTES + CAT + Global Standards + TAG + "CIS M365 5.0 (1.3.2)" + "spo_idle_session_timeout" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Automatically logs out inactive users from Microsoft 365 applications after a specified time period to prevent unauthorized access to company data on unattended devices. This security measure protects against data breaches when employees leave workstations unlocked. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.ActivityBasedTimeout.timeout","options":[{"label":"1 Hour","value":"01:00:00"},{"label":"3 Hours","value":"03:00:00"},{"label":"6 Hours","value":"06:00:00"},{"label":"12 Hours","value":"12:00:00"},{"label":"24 Hours","value":"1.00:00:00"}]} + IMPACT + Medium Impact + ADDEDDATE + 2022-04-13 + POWERSHELLEQUIVALENT + Portal or Graph API + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + #$Rerun -Type Standard -Tenant $Tenant -API 'ActivityBasedTimeout' -Settings $Settings + + # Get timeout value using null-coalescing operator + $timeout = $Settings.timeout.value ?? $Settings.timeout + + # Input validation + if ([string]::IsNullOrWhiteSpace($timeout) -or $timeout -eq 'Select a value' ) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'ActivityBasedTimeout: Invalid timeout parameter set' -sev Error + return + } + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ActivityBasedTimeout state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + $CurrentValue = ($CurrentState.definition | ConvertFrom-Json -ErrorAction SilentlyContinue).activitybasedtimeoutpolicy.ApplicationPolicies | Select-Object -First 1 -Property WebSessionIdleTimeout + $StateIsCorrect = if ($CurrentValue.WebSessionIdleTimeout -eq $timeout) { $true } else { $false } + $ExpectedValue = [PSCustomObject]@{WebSessionIdleTimeout = $timeout } + + if ($Settings.remediate -eq $true) { + try { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Activity Based Timeout is already enabled and set to $timeout" -sev Info + } else { + $PolicyTemplate = @{ + displayName = 'DefaultTimeoutPolicy' + isOrganizationDefault = $true + definition = @( + "{`"ActivityBasedTimeoutPolicy`":{`"Version`":1,`"ApplicationPolicies`":[{`"ApplicationId`":`"default`",`"WebSessionIdleTimeout`":`"$timeout`"}]}}" + ) + } + $body = ConvertTo-Json -InputObject $PolicyTemplate -Depth 10 -Compress + + # Switch between parameter sets if the policy already exists + if ($null -eq $CurrentState.id) { + $RequestType = 'POST' + $URI = 'https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies' + } else { + $RequestType = 'PATCH' + $URI = "https://graph.microsoft.com/beta/policies/activityBasedTimeoutPolicies/$($CurrentState.id)" + } + New-GraphPostRequest -tenantid $Tenant -Uri $URI -Type $RequestType -Body $body + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Enabled Activity Based Timeout with a value of $timeout" -sev Info + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable Activity Based Timeout a value of $timeout." -sev Error -LogData $ErrorMessage + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Activity Based Timeout is enabled and set to $timeout" -sev Info + } else { + Write-StandardsAlert -message "Activity Based Timeout is not set to $timeout" -object ($CurrentState.definition | ConvertFrom-Json -ErrorAction SilentlyContinue).activitybasedtimeoutpolicy.ApplicationPolicies -tenant $Tenant -standardName 'ActivityBasedTimeout' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Activity Based Timeout is not set to $timeout" -sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.ActivityBasedTimeout' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ActivityBasedTimeout' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 new file mode 100644 index 000000000000..fbaf8ce3251a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 @@ -0,0 +1,196 @@ +function Invoke-CIPPStandardAddDKIM { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AddDKIM + .SYNOPSIS + (Label) Enables DKIM for all domains that currently support it + .DESCRIPTION + (Helptext) Enables DKIM for all domains that currently support it + (DocsDescription) Enables DKIM for all domains that currently support it + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (2.1.9)" + EXECUTIVETEXT + Enables email authentication technology that digitally signs outgoing emails to verify they actually came from your organization. This prevents email spoofing, improves email deliverability, and protects the company's reputation by ensuring recipients can trust emails from your domains. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2023-03-14 + POWERSHELLEQUIVALENT + New-DkimSigningConfig and Set-DkimSigningConfig + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + #$Rerun -Type Standard -Tenant $Tenant -API 'AddDKIM' -Settings $Settings + $TestResult = Test-CIPPStandardLicense -StandardName 'AddDKIM' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $DkimRequest = @( + @{ + CmdletInput = @{ + CmdletName = 'Get-AcceptedDomain' + Parameters = @{} + } + }, + @{ + CmdletInput = @{ + CmdletName = 'Get-DkimSigningConfig' + Parameters = @{} + } + } + ) + + $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray $DkimRequest -useSystemMailbox $true + + # Check for errors in the batch results. Cannot continue if there are errors. + $ErrorCounter = 0 + $ErrorMessages = [System.Collections.Generic.List[string]]::new() + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorCounter++ + $ErrorMessage = Get-NormalizedError -Message $_.error + $ErrorMessages.Add($ErrorMessage) + } + } + if ($ErrorCounter -gt 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to get DKIM config. Error: $($ErrorMessages -join ', ')" -sev Error + return + } + + # Same exclusions also found in Push-DomainAnalyserTenant + $ExclusionDomains = @( + '*.microsoftonline.com' + '*.mail.onmicrosoft.com' + '*.exclaimer.cloud' + '*.excl.cloud' + '*.codetwo.online' + '*.call2teams.com' + '*.signature365.net' + '*.myteamsconnect.io' + '*.teams.dstny.com' + '*.msteams.8x8.com' + '*.ucconnect.co.uk' + '*.teams-sbc.dk' + ) + + $AllDomains = ($BatchResults | Where-Object { $_.DomainName }).DomainName | ForEach-Object { + $Domain = $_ + foreach ($ExclusionDomain in $ExclusionDomains) { + if ($Domain -like $ExclusionDomain) { + $Domain = $null + } + } + if ($null -ne $Domain) { $Domain } + } + $DKIM = $BatchResults | Where-Object { $_.Domain } | Select-Object Domain, Enabled, Status | ForEach-Object { + $Domain = $_ + foreach ($ExclusionDomain in $ExclusionDomains) { + if ($Domain.Domain -like $ExclusionDomain) { + $Domain = $null + } + } + if ($null -ne $Domain) { $Domain } + } + + # List of domains for each way to enable DKIM + $NewDomains = $AllDomains | Where-Object { $DKIM.Domain -notcontains $_ } + $SetDomains = $DKIM | Where-Object { $AllDomains -contains $_.Domain -and $_.Enabled -eq $false } + + $MissingDKIM = [System.Collections.Generic.List[string]]::new() + if ($null -ne $NewDomains) { + $MissingDKIM.AddRange($NewDomains) + } + if ($null -ne $SetDomains) { + $MissingDKIM.AddRange($SetDomains.Domain) + } + + $CurrentValue = if ($MissingDKIM.Count -eq 0) { [PSCustomObject]@{'state' = 'Configured correctly' } } else { [PSCustomObject]@{'MissingDKIM' = $MissingDKIM } } + $ExpectedValue = [PSCustomObject]@{'state' = 'Configured correctly' } + + if ($Settings.remediate -eq $true) { + + if ($null -eq $NewDomains -and $null -eq $SetDomains) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'DKIM is already enabled for all available domains.' -sev Info + } else { + $ErrorCounter = 0 + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Trying to enable DKIM for:$($NewDomains -join ', ' ) $($SetDomains.Domain -join ', ')" -sev Info + + # New-domains + $Request = $NewDomains | ForEach-Object { + @{ + CmdletInput = @{ + CmdletName = 'New-DkimSigningConfig' + Parameters = @{ KeySize = 2048; DomainName = $_; Enabled = $true } + } + } + } + if ($null -ne $Request) { $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($Request) -useSystemMailbox $true } + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorCounter ++ + $ErrorMessage = Get-NormalizedError -Message $_.error + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable DKIM. Error: $ErrorMessage" -sev Error + } + } + + # Set-domains + $Request = $SetDomains | ForEach-Object { + @{ + CmdletInput = @{ + CmdletName = 'Set-DkimSigningConfig' + Parameters = @{ Identity = $_.Domain; Enabled = $true } + } + } + } + if ($null -ne $Request) { $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($Request) -useSystemMailbox $true } + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorCounter ++ + $ErrorMessage = Get-NormalizedError -Message $_.error + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set DKIM. Error: $ErrorMessage" -sev Error + } + } + + if ($ErrorCounter -eq 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Enabled DKIM for all domains in tenant' -sev Info + } elseif ($ErrorCounter -gt 0 -and $ErrorCounter -lt ($NewDomains.Count + $SetDomains.Count)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Failed to enable DKIM for some domains in tenant' -sev Error + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Failed to enable DKIM for all domains in tenant' -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + + if ($null -eq $NewDomains -and $null -eq $SetDomains) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'DKIM is enabled for all available domains' -sev Info + } else { + $NoDKIM = ($NewDomains + $SetDomains.Domain) -join ';' + Write-StandardsAlert -message "DKIM is not enabled for: $NoDKIM" -object @{NewDomains = $NewDomains; SetDomains = $SetDomains } -tenant $tenant -standardName 'AddDKIM' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "DKIM is not enabled for: $NoDKIM" -sev Info + } + } + + if ($Settings.report -eq $true) { + $DKIMState = if ($null -eq $NewDomains -and $null -eq $SetDomains) { $true } else { $SetDomains, $NewDomains } + Set-CIPPStandardsCompareField -FieldName 'standards.AddDKIM' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'DKIM' -FieldValue $DKIMState -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 new file mode 100644 index 000000000000..288053375351 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 @@ -0,0 +1,165 @@ +function Invoke-CIPPStandardAddDMARCToMOERA { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AddDMARCToMOERA + .SYNOPSIS + (Label) Enables DMARC on MOERA (onmicrosoft.com) domains + .DESCRIPTION + (Helptext) Note: requires 'Domain Name Administrator' GDAP role. This should be enabled even if the MOERA (onmicrosoft.com) domains is not used for sending. Enabling this prevents email spoofing. The default value is 'v=DMARC1; p=reject;' recommended because the domain is only used within M365 and reporting is not needed. Omitting pct tag default to 100% + (DocsDescription) Note: requires 'Domain Name Administrator' GDAP role. Adds a DMARC record to MOERA (onmicrosoft.com) domains. This should be enabled even if the MOERA (onmicrosoft.com) domains is not used for sending. Enabling this prevents email spoofing. The default record is 'v=DMARC1; p=reject;' recommended because the domain is only used within M365 and reporting is not needed. Omitting pct tag default to 100% + .NOTES + CAT + Global Standards + TAG + "CIS M365 5.0 (2.1.10)" + "Security" + "PhishingProtection" + EXECUTIVETEXT + Implements advanced email security for Microsoft's default domain names (onmicrosoft.com) to prevent criminals from impersonating your organization. This blocks fraudulent emails that could damage your company's reputation and protects partners and customers from phishing attacks using your domain names. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":true,"required":false,"placeholder":"v=DMARC1; p=reject; (recommended)","label":"Value","name":"standards.AddDMARCToMOERA.RecordValue","options":[{"label":"v=DMARC1; p=reject; (recommended)","value":"v=DMARC1; p=reject;"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-06-16 + POWERSHELLEQUIVALENT + Portal only + RECOMMENDEDBY + "CIS" + "Microsoft" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + #$Rerun -Type Standard -Tenant $Tenant -API 'AddDMARCToMOERA' -Settings $Settings + + $RecordModel = [PSCustomObject]@{ + HostName = '_dmarc' + TtlValue = 3600 + Type = 'TXT' + Value = $Settings.RecordValue.Value ?? 'v=DMARC1; p=reject;' + } + + # Get all fallback domains (onmicrosoft.com domains) and check if the DMARC record is set correctly + try { + $Domains = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri 'https://admin.microsoft.com/admin/api/Domains/List' | Where-Object -Property Name -Like '*.onmicrosoft.com' + + $CurrentInfo = $Domains | ForEach-Object { + # Get current DNS records that matches _dmarc hostname and TXT type + $RecordsResponse = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri "https://admin.microsoft.com/admin/api/Domains/Records?domainName=$($_.Name)" + $AllRecords = $RecordsResponse | Select-Object -ExpandProperty DnsRecords + $CurrentRecords = $AllRecords | Where-Object { $_.HostName -eq '_dmarc' -and $_.Type -eq 'TXT' } + Write-Information "Found $($CurrentRecords.count) DMARC records for domain $($_.Name)" + + if ($CurrentRecords.count -eq 0) { + #record not found, return a model with Match set to false + [PSCustomObject]@{ + DomainName = $_.Name + Match = $false + CurrentRecord = $null + } + } else { + foreach ($CurrentRecord in $CurrentRecords) { + # Create variable matching the RecordModel used for comparison + $CurrentRecordModel = [PSCustomObject]@{ + HostName = $CurrentRecord.HostName + TtlValue = $CurrentRecord.TtlValue + Type = $CurrentRecord.Type + Value = $CurrentRecord.Value + } + + # Compare the current record with the expected record model + if (!(Compare-Object -ReferenceObject $RecordModel -DifferenceObject $CurrentRecordModel -Property HostName, TtlValue, Type, Value)) { + [PSCustomObject]@{ + DomainName = $_.Name + Match = $true + CurrentRecord = $CurrentRecord + } + } else { + [PSCustomObject]@{ + DomainName = $_.Name + Match = $false + CurrentRecord = $CurrentRecord + } + } + } + } + } + # Check if match is true and there is only one DMARC record for each domain + $StateIsCorrect = $false -notin $CurrentInfo.Match -and $CurrentInfo.Count -eq $Domains.Count + + $CurrentValue = if ($StateIsCorrect) { [PSCustomObject]@{'state' = 'Configured correctly' } } else { [PSCustomObject]@{'MissingDMARC' = @($CurrentInfo | Where-Object -Property Match -EQ $false | Select-Object -ExpandProperty DomainName) } } + $ExpectedValue = [PSCustomObject]@{'state' = 'Configured correctly' } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + if ($_.Exception.Message -like '*403*') { + $Message = "AddDMARCToMOERA: Insufficient permissions. Please ensure the tenant GDAP relationship includes the 'Domain Name Administrator' role: $($ErrorMessage.NormalizedError)" + } else { + $Message = "Failed to get dns records for MOERA domains: $($ErrorMessage.NormalizedError)" + } + Write-LogMessage -API 'Standards' -tenant $tenant -message $Message -sev Error -LogData $ErrorMessage + return $Message + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'DMARC record is already set for all MOERA (onmicrosoft.com) domains.' -sev Info + } else { + # Loop through each domain and set the DMARC record, existing misconfigured records and duplicates will be deleted + foreach ($Domain in ($CurrentInfo | Sort-Object -Property DomainName -Unique)) { + try { + $DomainRecords = @($CurrentInfo | Where-Object -Property DomainName -EQ $Domain.DomainName) + $HasMatchingRecord = $false + + # First, delete any non-matching records + foreach ($Record in $DomainRecords) { + if ($Record.CurrentRecord) { + if ($Record.Match -eq $false) { + # Delete incorrect record + New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body ($Record.CurrentRecord | ConvertTo-Json -Compress) -AddedHeaders @{'x-http-method-override' = 'Delete' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Deleted incorrect DMARC record for domain $($Domain.DomainName)" -sev Info + } else { + # Record already matches, no need to add + $HasMatchingRecord = $true + } + } + } + + # Only add the record if we don't already have a matching one + if (-not $HasMatchingRecord) { + New-GraphPOSTRequest -tenantid $tenant -scope 'https://admin.microsoft.com/.default' -type 'PUT' -Uri "https://admin.microsoft.com/admin/api/Domains/Record?domainName=$($Domain.DomainName)" -Body (@{RecordModel = $RecordModel } | ConvertTo-Json -Compress) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Set DMARC record for domain $($Domain.DomainName)" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "DMARC record already correctly set for domain $($Domain.DomainName)" -sev Info + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set DMARC record for domain $($Domain.DomainName): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'DMARC record is already set for all MOERA (onmicrosoft.com) domains.' -sev Info + } else { + $UniqueDomains = ($CurrentInfo | Sort-Object -Property DomainName -Unique) + $NotSetDomains = @($UniqueDomains | ForEach-Object { if ($_.Match -eq $false -or ($CurrentInfo | Where-Object -Property DomainName -EQ $_.DomainName).Count -eq 1) { $_.DomainName } }) + $Message = "DMARC record is not set for $($NotSetDomains.count) of $($UniqueDomains.count) MOERA (onmicrosoft.com) domains." + + Write-StandardsAlert -message $Message -object @{MissingDMARC = ($NotSetDomains -join ', ') } -tenant $tenant -standardName 'AddDMARCToMOERA' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "$Message. Missing for: $($NotSetDomains -join ', ')" -sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AddDMARCToMOERA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AddDMARCToMOERA' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 new file mode 100644 index 000000000000..6d924f41cdef --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 @@ -0,0 +1,74 @@ +function Invoke-CIPPStandardAnonReportDisable { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AnonReportDisable + .SYNOPSIS + (Label) Enable Usernames instead of pseudo anonymised names in reports + .DESCRIPTION + (Helptext) Shows usernames instead of pseudo anonymised names in reports. This standard is required for reporting to work correctly. + (DocsDescription) Microsoft announced some APIs and reports no longer return names, to comply with compliance and legal requirements in specific countries. This proves an issue for a lot of MSPs because those reports are often helpful for engineers. This standard applies a setting that shows usernames in those API calls / reports. + .NOTES + CAT + Global Standards + TAG + EXECUTIVETEXT + Configures Microsoft 365 reports to display actual usernames instead of anonymized identifiers, enabling IT administrators to effectively troubleshoot issues and generate meaningful usage reports. This improves operational efficiency and system management capabilities. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Update-MgBetaAdminReportSetting -BodyParameter @{displayConcealedNames = \$true} + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + #$Rerun -Type Standard -Tenant $Tenant -API 'allowOTPTokens' -Settings $Settings + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AnonReportDisable state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $CurrentValue = $CurrentInfo | Select-Object -Property displayConcealedNames + $ExpectedValue = [PSCustomObject]@{displayConcealedNames = $false } + + if ($Settings.remediate -eq $true) { + + if ($CurrentInfo.displayConcealedNames -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Anonymous Reports is already disabled.' -sev Info + } else { + try { + New-GraphPOSTRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/reportSettings' -Type patch -Body '{"displayConcealedNames": false}' -AsApp $true + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Anonymous Reports Disabled.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable anonymous reports. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.displayConcealedNames -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Anonymous Reports is disabled' -sev Info + } else { + Write-StandardsAlert -message 'Anonymous Reports is not disabled' -object $CurrentInfo -tenant $tenant -standardName 'AnonReportDisable' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Anonymous Reports is not disabled' -sev Info + } + } + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AnonReportDisable' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'AnonReport' -FieldValue $CurrentInfo.displayConcealedNames -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 new file mode 100644 index 000000000000..79f02f28e15f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 @@ -0,0 +1,284 @@ +function Invoke-CIPPStandardAntiPhishPolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AntiPhishPolicy + .SYNOPSIS + (Label) Default Anti-Phishing Policy + .DESCRIPTION + (Helptext) This creates a Anti-Phishing policy that automatically enables Mailbox Intelligence and spoofing, optional switches for Mail tips. + (DocsDescription) This creates a Anti-Phishing policy that automatically enables Mailbox Intelligence and spoofing, optional switches for Mail tips. + .NOTES + CAT + Defender Standards + TAG + "mdo_safeattachments" + "mdo_highconfidencespamaction" + "mdo_highconfidencephishaction" + "mdo_phisspamacation" + "mdo_spam_notifications_only_for_admins" + "mdo_antiphishingpolicies" + "mdo_phishthresholdlevel" + "CIS M365 5.0 (2.1.7)" + "NIST CSF 2.0 (DE.CM-09)" + ADDEDCOMPONENT + {"type":"textField","name":"standards.AntiPhishPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Anti-Phishing Policy"} + {"type":"number","label":"Phishing email threshold. (Default 1)","name":"standards.AntiPhishPolicy.PhishThresholdLevel","defaultValue":1} + {"type":"switch","label":"Show first contact safety tip","name":"standards.AntiPhishPolicy.EnableFirstContactSafetyTips","defaultValue":true} + {"type":"switch","label":"Show user impersonation safety tip","name":"standards.AntiPhishPolicy.EnableSimilarUsersSafetyTips","defaultValue":true} + {"type":"switch","label":"Show domain impersonation safety tip","name":"standards.AntiPhishPolicy.EnableSimilarDomainsSafetyTips","defaultValue":true} + {"type":"switch","label":"Show user impersonation unusual characters safety tip","name":"standards.AntiPhishPolicy.EnableUnusualCharactersSafetyTips","defaultValue":true} + {"type":"select","multiple":false,"label":"If the message is detected as spoof by spoof intelligence","name":"standards.AntiPhishPolicy.AuthenticationFailAction","options":[{"label":"Quarantine the message","value":"Quarantine"},{"label":"Move to Junk Folder","value":"MoveToJmf"}]} + {"type":"select","multiple":false,"creatable":true,"label":"Quarantine policy for Spoof","name":"standards.AntiPhishPolicy.SpoofQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"select","multiple":false,"label":"If a message is detected as user impersonation","name":"standards.AntiPhishPolicy.TargetedUserProtectionAction","options":[{"label":"Move to Junk Folder","value":"MoveToJmf"},{"label":"Delete the message before its delivered","value":"Delete"},{"label":"Quarantine the message","value":"Quarantine"}]} + {"type":"select","multiple":false,"creatable":true,"label":"Quarantine policy for user impersonation","name":"standards.AntiPhishPolicy.TargetedUserQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"select","multiple":false,"label":"If a message is detected as domain impersonation","name":"standards.AntiPhishPolicy.TargetedDomainProtectionAction","options":[{"label":"Move to Junk Folder","value":"MoveToJmf"},{"label":"Delete the message before its delivered","value":"Delete"},{"label":"Quarantine the message","value":"Quarantine"}]} + {"type":"select","multiple":false,"creatable":true,"label":"Quarantine policy for domain impersonation","name":"standards.AntiPhishPolicy.TargetedDomainQuarantineTag","options":[{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"},{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"}]} + {"type":"select","multiple":false,"label":"If Mailbox Intelligence detects an impersonated user","name":"standards.AntiPhishPolicy.MailboxIntelligenceProtectionAction","options":[{"label":"Move to Junk Folder","value":"MoveToJmf"},{"label":"Delete the message before its delivered","value":"Delete"},{"label":"Quarantine the message","value":"Quarantine"}]} + {"type":"select","multiple":false,"creatable":true,"label":"Apply quarantine policy","name":"standards.AntiPhishPolicy.MailboxIntelligenceQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + IMPACT + Low Impact + ADDEDDATE + 2024-03-25 + POWERSHELLEQUIVALENT + Set-AntiPhishPolicy or New-AntiPhishPolicy + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AntiPhishPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AntiPhishPolicy' + + $ServicePlans = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus?$select=servicePlans' -tenantid $Tenant + $ServicePlans = $ServicePlans.servicePlans.servicePlanName + $MDOLicensed = $ServicePlans -contains "ATP_ENTERPRISE" + Write-Information "MDOLicensed: $MDOLicensed" + + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Anti-Phishing Policy' } + $PolicyList = @($PolicyName, 'CIPP Default Anti-Phishing Policy','Default Anti-Phishing Policy') + $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishPolicy' | Where-Object -Property Name -In $PolicyList | Select-Object -First 1 + if ($null -eq $ExistingPolicy.Name) { + # No existing policy - use the configured/default name + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Anti-Phishing Policy' } + } else { + # Use existing policy name if found + $PolicyName = $ExistingPolicy.Name + } + # Derive rule name from policy name, but check for old names for backward compatibility + $DesiredRuleName = "$PolicyName Rule" + $RuleList = @($DesiredRuleName, 'CIPP Default Anti-Phishing Rule','CIPP Default Anti-Phishing Policy') + $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishRule' | Where-Object -Property Name -In $RuleList | Select-Object -First 1 + if ($null -eq $ExistingRule.Name) { + # No existing rule - use the derived name + $RuleName = $DesiredRuleName + } else { + # Use existing rule name if found + $RuleName = $ExistingRule.Name + } + + $CurrentState = $ExistingPolicy | + Select-Object Name, Enabled, PhishThresholdLevel, EnableMailboxIntelligence, EnableMailboxIntelligenceProtection, EnableSpoofIntelligence, EnableFirstContactSafetyTips, EnableSimilarUsersSafetyTips, EnableSimilarDomainsSafetyTips, EnableUnusualCharactersSafetyTips, EnableUnauthenticatedSender, EnableViaTag, AuthenticationFailAction, SpoofQuarantineTag, MailboxIntelligenceProtectionAction, MailboxIntelligenceQuarantineTag, TargetedUserProtectionAction, TargetedUserQuarantineTag, TargetedDomainProtectionAction, TargetedDomainQuarantineTag, EnableOrganizationDomainsProtection, EnableTargetedDomainsProtection, EnableTargetedUserProtection + + if ($MDOLicensed) { + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and + ($CurrentState.Enabled -eq $true) -and + ($CurrentState.PhishThresholdLevel -eq $Settings.PhishThresholdLevel) -and + ($CurrentState.EnableMailboxIntelligence -eq $true) -and + ($CurrentState.EnableMailboxIntelligenceProtection -eq $true) -and + ($CurrentState.EnableSpoofIntelligence -eq $true) -and + ($CurrentState.EnableFirstContactSafetyTips -eq $Settings.EnableFirstContactSafetyTips) -and + ($CurrentState.EnableSimilarUsersSafetyTips -eq $Settings.EnableSimilarUsersSafetyTips) -and + ($CurrentState.EnableSimilarDomainsSafetyTips -eq $Settings.EnableSimilarDomainsSafetyTips) -and + ($CurrentState.EnableUnusualCharactersSafetyTips -eq $Settings.EnableUnusualCharactersSafetyTips) -and + ($CurrentState.EnableUnauthenticatedSender -eq $true) -and + ($CurrentState.EnableViaTag -eq $true) -and + ($CurrentState.AuthenticationFailAction -eq $Settings.AuthenticationFailAction) -and + ($CurrentState.SpoofQuarantineTag -eq $Settings.SpoofQuarantineTag) -and + ($CurrentState.MailboxIntelligenceProtectionAction -eq $Settings.MailboxIntelligenceProtectionAction) -and + ($CurrentState.MailboxIntelligenceQuarantineTag -eq $Settings.MailboxIntelligenceQuarantineTag) -and + ($CurrentState.TargetedUserProtectionAction -eq $Settings.TargetedUserProtectionAction) -and + ($CurrentState.TargetedUserQuarantineTag -eq $Settings.TargetedUserQuarantineTag) -and + ($CurrentState.TargetedDomainProtectionAction -eq $Settings.TargetedDomainProtectionAction) -and + ($CurrentState.TargetedDomainQuarantineTag -eq $Settings.TargetedDomainQuarantineTag) -and + ($CurrentState.EnableTargetedDomainsProtection -eq $true) -and + ($CurrentState.EnableTargetedUserProtection -eq $true) -and + ($CurrentState.EnableOrganizationDomainsProtection -eq $true) + + $CurrentValue = $CurrentState | Select-Object Name, Enabled, PhishThresholdLevel, EnableMailboxIntelligence, EnableMailboxIntelligenceProtection, EnableSpoofIntelligence, EnableFirstContactSafetyTips, EnableSimilarUsersSafetyTips, EnableSimilarDomainsSafetyTips, EnableUnusualCharactersSafetyTips, EnableUnauthenticatedSender, EnableViaTag, AuthenticationFailAction, SpoofQuarantineTag, MailboxIntelligenceProtectionAction, MailboxIntelligenceQuarantineTag, TargetedUserProtectionAction, TargetedUserQuarantineTag, TargetedDomainProtectionAction, TargetedDomainQuarantineTag, EnableOrganizationDomainsProtection, EnableTargetedDomainsProtection, EnableTargetedUserProtection + $ExpectedValue = [PSCustomObject]@{ + Name = $PolicyName + Enabled = $true + PhishThresholdLevel = $Settings.PhishThresholdLevel + EnableMailboxIntelligence = $true + EnableMailboxIntelligenceProtection = $true + EnableSpoofIntelligence = $true + EnableFirstContactSafetyTips = $Settings.EnableFirstContactSafetyTips + EnableSimilarUsersSafetyTips = $Settings.EnableSimilarUsersSafetyTips + EnableSimilarDomainsSafetyTips = $Settings.EnableSimilarDomainsSafetyTips + EnableUnusualCharactersSafetyTips = $Settings.EnableUnusualCharactersSafetyTips + EnableUnauthenticatedSender = $true + EnableViaTag = $true + AuthenticationFailAction = $Settings.AuthenticationFailAction + SpoofQuarantineTag = $Settings.SpoofQuarantineTag + MailboxIntelligenceProtectionAction = $Settings.MailboxIntelligenceProtectionAction + MailboxIntelligenceQuarantineTag = $Settings.MailboxIntelligenceQuarantineTag + TargetedUserProtectionAction = $Settings.TargetedUserProtectionAction + TargetedUserQuarantineTag = $Settings.TargetedUserQuarantineTag + TargetedDomainProtectionAction = $Settings.TargetedDomainProtectionAction + TargetedDomainQuarantineTag = $Settings.TargetedDomainQuarantineTag + EnableTargetedDomainsProtection = $true + EnableTargetedUserProtection = $true + EnableOrganizationDomainsProtection = $true + } + } else { + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and + ($CurrentState.Enabled -eq $true) -and + ($CurrentState.EnableSpoofIntelligence -eq $true) -and + ($CurrentState.EnableFirstContactSafetyTips -eq $Settings.EnableFirstContactSafetyTips) -and + ($CurrentState.EnableUnauthenticatedSender -eq $true) -and + ($CurrentState.EnableViaTag -eq $true) -and + ($CurrentState.AuthenticationFailAction -eq $Settings.AuthenticationFailAction) -and + ($CurrentState.SpoofQuarantineTag -eq $Settings.SpoofQuarantineTag) + $CurrentValue = $CurrentState | Select-Object Name, Enabled, EnableSpoofIntelligence, EnableFirstContactSafetyTips, EnableUnauthenticatedSender, EnableViaTag, AuthenticationFailAction, SpoofQuarantineTag + $ExpectedValue = [PSCustomObject]@{ + Name = $PolicyName + Enabled = $true + EnableSpoofIntelligence = $true + EnableFirstContactSafetyTips= $Settings.EnableFirstContactSafetyTips + EnableUnauthenticatedSender = $true + EnableViaTag = $true + AuthenticationFailAction = $Settings.AuthenticationFailAction + SpoofQuarantineTag = $Settings.SpoofQuarantineTag + } + } + + $AcceptedDomains = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AcceptedDomain' + + $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishRule' | + Where-Object -Property Name -EQ $RuleName | + Select-Object Name, AntiPhishPolicy, Priority, RecipientDomainIs + + $RuleStateIsCorrect = ($RuleState.Name -eq $RuleName) -and + ($RuleState.AntiPhishPolicy -eq $PolicyName) -and + ($RuleState.Priority -eq 0) -and + (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Anti-phishing policy already correctly configured' -sev Info + } else { + if ($MDOLicensed) { + $cmdParams = @{ + Enabled = $true + PhishThresholdLevel = $Settings.PhishThresholdLevel + EnableMailboxIntelligence = $true + EnableMailboxIntelligenceProtection = $true + EnableSpoofIntelligence = $true + EnableFirstContactSafetyTips = $Settings.EnableFirstContactSafetyTips + EnableSimilarUsersSafetyTips = $Settings.EnableSimilarUsersSafetyTips + EnableSimilarDomainsSafetyTips = $Settings.EnableSimilarDomainsSafetyTips + EnableUnusualCharactersSafetyTips = $Settings.EnableUnusualCharactersSafetyTips + EnableUnauthenticatedSender = $true + EnableViaTag = $true + AuthenticationFailAction = $Settings.AuthenticationFailAction + SpoofQuarantineTag = $Settings.SpoofQuarantineTag + MailboxIntelligenceProtectionAction = $Settings.MailboxIntelligenceProtectionAction + MailboxIntelligenceQuarantineTag = $Settings.MailboxIntelligenceQuarantineTag + TargetedUserProtectionAction = $Settings.TargetedUserProtectionAction + TargetedUserQuarantineTag = $Settings.TargetedUserQuarantineTag + TargetedDomainProtectionAction = $Settings.TargetedDomainProtectionAction + TargetedDomainQuarantineTag = $Settings.TargetedDomainQuarantineTag + EnableTargetedDomainsProtection = $true + EnableTargetedUserProtection = $true + EnableOrganizationDomainsProtection = $true + } + } else { + $cmdParams = @{ + Enabled = $true + EnableSpoofIntelligence = $true + EnableFirstContactSafetyTips = $Settings.EnableFirstContactSafetyTips + EnableUnauthenticatedSender = $true + EnableViaTag = $true + AuthenticationFailAction = $Settings.AuthenticationFailAction + SpoofQuarantineTag = $Settings.SpoofQuarantineTag + } + } + + if ($CurrentState.Name -eq $PolicyName) { + try { + $cmdParams.Add('Identity', $PolicyName) + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-AntiPhishPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Anti-phishing policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Anti-phishing policy $PolicyName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $PolicyName) + New-ExoRequest -tenantid $Tenant -cmdlet 'New-AntiPhishPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Anti-phishing policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Anti-phishing policy $PolicyName." -sev Error -LogData $_ + } + } + } + + if ($RuleStateIsCorrect -eq $false) { + $cmdParams = @{ + Priority = 0 + RecipientDomainIs = $AcceptedDomains.Name + } + + if ($RuleState.AntiPhishPolicy -ne $PolicyName) { + $cmdParams.Add('AntiPhishPolicy', $PolicyName) + } + + if ($RuleState.Name -eq $RuleName) { + try { + $cmdParams.Add('Identity', $RuleName) + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-AntiPhishRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Anti-phishing rule $RuleName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Anti-phishing rule $RuleName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $RuleName) + New-ExoRequest -tenantid $Tenant -cmdlet 'New-AntiPhishRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Anti-phishing rule $RuleName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Anti-phishing rule $RuleName." -sev Error -LogData $_ + } + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Anti-phishing policy is enabled' -sev Info + } else { + Write-StandardsAlert -message "Anti-phishing policy is not enabled" -object $CurrentState -tenant $Tenant -standardName 'AntiPhishPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Anti-phishing policy is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $FieldValue = $StateIsCorrect ? $true : $CurrentState + Set-CIPPStandardsCompareField -FieldName 'standards.AntiPhishPolicy' -FieldValue $FieldValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AntiPhishPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 new file mode 100644 index 000000000000..614a1a7f036c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 @@ -0,0 +1,97 @@ +function Invoke-CIPPStandardAntiSpamSafeList { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AntiSpamSafeList + .SYNOPSIS + (Label) Set Anti-Spam Connection Filter Safe List + .DESCRIPTION + (Helptext) Sets the anti-spam connection filter policy option 'safe list' in Defender. + (DocsDescription) Sets [Microsoft's built-in 'safe list'](https://learn.microsoft.com/en-us/powershell/module/exchange/set-hostedconnectionfilterpolicy?view=exchange-ps#-enablesafelist) in the anti-spam connection filter policy, rather than setting a custom safe/block list of IPs. + .NOTES + CAT + Defender Standards + TAG + "CIS M365 5.0 (2.1.13)" + EXECUTIVETEXT + Enables Microsoft's pre-approved list of trusted email servers to improve email delivery from legitimate sources while maintaining spam protection. This reduces false positives where legitimate emails might be blocked while still protecting against spam and malicious emails. + ADDEDCOMPONENT + {"type":"switch","name":"standards.AntiSpamSafeList.EnableSafeList","label":"Enable Safe List"} + IMPACT + Medium Impact + ADDEDDATE + 2025-02-15 + POWERSHELLEQUIVALENT + Set-HostedConnectionFilterPolicy "Default" -EnableSafeList \$true + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AntiSpamSafeList' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AntiSpamSafeList' + + try { + $State = [System.Convert]::ToBoolean($Settings.EnableSafeList) + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'AntiSpamSafeList: Failed to convert the EnableSafeList parameter to a boolean' -sev Error + return + } + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedConnectionFilterPolicy' -cmdParams @{Identity = 'Default' }).EnableSafeList + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to get the Anti-Spam Connection Filter Safe List. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + $WantedState = $State -eq $true ? $true : $false + $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + $CurrentValue = [PSCustomObject]@{ + EnableSafeList = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + EnableSafeList = $WantedState + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AntiSpamSafeList' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AntiSpamSafeList' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + if ($StateIsCorrect -eq $false) { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-HostedConnectionFilterPolicy' -cmdParams @{ + Identity = 'Default' + EnableSafeList = $WantedState + } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set the Anti-Spam Connection Filter Safe List to $WantedState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set the Anti-Spam Connection Filter Safe List to $WantedState. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The Anti-Spam Connection Filter Safe List is already set correctly to $WantedState" -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The Anti-Spam Connection Filter Safe List is set correctly to $WantedState" -sev Info + } else { + Write-StandardsAlert -message "The Anti-Spam Connection Filter Safe List is not set correctly to $WantedState" -object @{CurrentState = $CurrentState; WantedState = $WantedState } -tenant $Tenant -standardName 'AntiSpamSafeList' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The Anti-Spam Connection Filter Safe List is not set correctly to $WantedState" -sev Info + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 new file mode 100644 index 000000000000..c01aade26629 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 @@ -0,0 +1,291 @@ +function Invoke-CIPPStandardAppDeploy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AppDeploy + .SYNOPSIS + (Label) Deploy Application + .DESCRIPTION + (Helptext) Deploys selected applications to the tenant. Use a comma separated list of application IDs to deploy multiple applications. Permissions will be copied from the source application. + (DocsDescription) Uses the CIPP functionality that deploys applications across an entire tenant base as a standard. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Automatically deploys approved business applications across all company locations and users, ensuring consistent access to essential tools and maintaining standardized software configurations. This streamlines application management and reduces IT deployment overhead. + ADDEDCOMPONENT + {"type":"select","multiple":false,"creatable":false,"label":"App Approval Mode","name":"standards.AppDeploy.mode","options":[{"label":"Template","value":"template"},{"label":"Copy Permissions","value":"copy"}]} + {"type":"autoComplete","multiple":true,"creatable":false,"label":"Select Applications","name":"standards.AppDeploy.templateIds","api":{"url":"/api/ListAppApprovalTemplates","labelField":"TemplateName","valueField":"TemplateId","queryKey":"StdAppApprovalTemplateList","addedField":{"AppId":"AppId"}},"condition":{"field":"standards.AppDeploy.mode","compareType":"is","compareValue":"template"}} + {"type":"textField","name":"standards.AppDeploy.appids","label":"Application IDs, comma separated","condition":{"field":"standards.AppDeploy.mode","compareType":"isNot","compareValue":"template"}} + IMPACT + Low Impact + ADDEDDATE + 2024-07-07 + POWERSHELLEQUIVALENT + Portal or Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + Write-Information "Running AppDeploy standard for tenant $($Tenant)." + + $AppsToAdd = $Settings.appids -split ',' + $AppExists = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals?$top=999' -tenantid $Tenant + $Mode = $Settings.mode ?? 'copy' + + $ExpectedValue = [PSCustomObject]@{ state = 'Configured correctly' } + + if ($Mode -eq 'template') { + # For template mode, we need to check each template individually + # since Gallery Templates and Enterprise Apps have different deployment methods + $AppsToAdd = @() + $Table = Get-CIPPTable -TableName 'templates' + + $AppsToAdd = foreach ($TemplateId in $Settings.templateIds.value) { + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + if ($Template) { + $TemplateData = $Template.JSON | ConvertFrom-Json + # Default to EnterpriseApp for backward compatibility with older templates + $AppType = $TemplateData.AppType + if (-not $AppType) { + $AppType = 'EnterpriseApp' + } + + # Return different identifiers based on app type for checking + if ($AppType -eq 'ApplicationManifest') { + # For Application Manifests, use display name for checking + $TemplateData.AppName + } elseif ($AppType -eq 'GalleryTemplate') { + # For Gallery Templates, use gallery template ID + $TemplateData.GalleryTemplateId + } else { + # For Enterprise Apps, use app ID + $TemplateData.AppId + } + } + } + } + + # Check for missing apps based on template type + $MissingApps = [System.Collections.Generic.List[string]]::new() + if ($Mode -eq 'template') { + $Table = Get-CIPPTable -TableName 'templates' + foreach ($TemplateId in $Settings.templateIds.value) { + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + if ($Template) { + $TemplateData = $Template.JSON | ConvertFrom-Json + $AppType = $TemplateData.AppType ?? 'EnterpriseApp' + + $IsAppMissing = $false + if ($AppType -eq 'ApplicationManifest') { + # For Application Manifests, check by display name + $IsAppMissing = $TemplateData.AppName -notin $AppExists.displayName + } elseif ($AppType -eq 'GalleryTemplate') { + # For Gallery Templates, check by application template ID + $IsAppMissing = $TemplateData.GalleryTemplateId -notin $AppExists.applicationTemplateId + } else { + # For Enterprise Apps, check by app ID + $IsAppMissing = $TemplateData.AppId -notin $AppExists.appId + } + + if ($IsAppMissing) { + $MissingApps.Add($TemplateData.AppName ?? $TemplateData.AppId ?? $TemplateData.GalleryTemplateId) + } + } + } + } else { + # For copy mode, check by app ID as before + $MissingApps = foreach ($App in $AppsToAdd) { + if ($App -notin $AppExists.appId -and $App -notin $AppExists.applicationTemplateId) { + $App + } + } + } + + $CurrentValue = if ($MissingApps.Count -eq 0) { [PSCustomObject]@{'state' = 'Configured correctly' } } else { [PSCustomObject]@{'MissingApps' = $MissingApps } } + + if ($Settings.remediate -eq $true) { + if ($Mode -eq 'copy') { + foreach ($App in $AppsToAdd) { + $App = $App.Trim() + if (!$App) { + continue + } + $Application = $AppExists | Where-Object -Property appId -EQ $App + try { + New-CIPPApplicationCopy -App $App -Tenant $Tenant + Write-LogMessage -API 'Standards' -tenant $tenant -message "Added application $($Application.displayName) ($App) to $Tenant and updated it's permissions" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to add app $($Application.displayName) ($App). Error: $ErrorMessage" -sev Error + } + } + } elseif ($Mode -eq 'template') { + $TemplateIds = $Settings.templateIds.value + + # Get template data to determine deployment type for each template + $Table = Get-CIPPTable -TableName 'templates' + + foreach ($TemplateId in $TemplateIds) { + try { + # Get the template data to determine if it's a Gallery Template or Enterprise App + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppApprovalTemplate' and RowKey eq '$TemplateId'" + + if (!$Template) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Template $TemplateId not found" -sev Error + continue + } + + $TemplateData = $Template.JSON | ConvertFrom-Json + # Default to EnterpriseApp for backward compatibility with older templates + $AppType = $TemplateData.AppType + if (-not $AppType) { + $AppType = 'EnterpriseApp' + } + + if ($AppType -eq 'GalleryTemplate') { + # Handle Gallery Template deployment + Write-Information "Deploying Gallery Template $($TemplateData.AppName) to tenant $Tenant." + + $GalleryTemplateId = $TemplateData.GalleryTemplateId + if (!$GalleryTemplateId) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Gallery Template ID not found in template data for $($TemplateData.TemplateName)" -sev Error + continue + } + + # Check if the app already exists in the tenant + if ($TemplateData.GalleryTemplateId -in $AppExists.applicationTemplateId) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Gallery Template app $($TemplateData.AppName) already exists in tenant $Tenant" -sev Info + continue + } + + # Instantiate the gallery template + $InstantiateBody = @{ + displayName = $TemplateData.AppName + } | ConvertTo-Json -Depth 10 + + $InstantiateResult = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/applicationTemplates/$GalleryTemplateId/instantiate" -type POST -tenantid $Tenant -body $InstantiateBody + + if ($InstantiateResult.application.appId) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully deployed Gallery Template $($TemplateData.AppName) to tenant $Tenant. Application ID: $($InstantiateResult.application.appId)" -sev Info + New-CIPPApplicationCopy -App $InstantiateResult.application.appId -Tenant $Tenant + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Gallery Template deployment completed but application ID not returned for $($TemplateData.AppName) in tenant $Tenant" -sev Warning + } + + } elseif ($AppType -eq 'ApplicationManifest') { + # Handle Application Manifest deployment + Write-Information "Deploying Application Manifest $($TemplateData.AppName) to tenant $Tenant." + + $ApplicationManifest = $TemplateData.ApplicationManifest + if (!$ApplicationManifest) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Application Manifest not found in template data for $($TemplateData.TemplateName)" -sev Error + continue + } + + # Check if an application with the same display name already exists + $ExistingApp = $AppExists | Where-Object { $_.displayName -eq $TemplateData.AppName } + if ($ExistingApp) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Application with name '$($TemplateData.AppName)' already exists in tenant $Tenant" -sev Info + + # get existing application + $App = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications(appId='$($ExistingApp.appId)')" -tenantid $Tenant + + # compare permissions + $ExistingPermissions = $App.requiredResourceAccess | ConvertTo-Json -Depth 10 + $NewPermissions = $ApplicationManifest.requiredResourceAccess | ConvertTo-Json -Depth 10 + if ($ExistingPermissions -ne $NewPermissions) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Updating permissions for existing application '$($TemplateData.AppName)' in tenant $Tenant" -sev Info + + # Update permissions for existing application + $UpdateBody = @{ + requiredResourceAccess = $ApplicationManifest.requiredResourceAccess + } | ConvertTo-Json -Depth 10 + $null = New-GraphPostRequest -type PATCH -uri "https://graph.microsoft.com/beta/applications(appId='$($ExistingApp.appId)')" -tenantid $Tenant -body $UpdateBody + + # consent new permissions + Add-CIPPDelegatedPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $ExistingApp.appId -Tenantfilter $Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $ExistingApp.appId -Tenantfilter $Tenant + } + + continue + } + + $PropertiesToRemove = @('appId', 'id', 'createdDateTime', 'publisherDomain', 'servicePrincipalLockConfiguration', 'identifierUris', 'applicationIdUris') + + # Strip tenant-specific data that might cause conflicts + $CleanManifest = $ApplicationManifest | ConvertTo-Json -Depth 10 | ConvertFrom-Json + foreach ($Property in $PropertiesToRemove) { + $CleanManifest.PSObject.Properties.Remove($Property) + } + # Create the application from manifest + try { + $CreateBody = $CleanManifest | ConvertTo-Json -Depth 10 + $CreatedApp = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/applications' -type POST -tenantid $Tenant -body $CreateBody + + if ($CreatedApp.appId) { + # Create service principal for the application + $ServicePrincipalBody = @{ + appId = $CreatedApp.appId + } | ConvertTo-Json + + $ServicePrincipal = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Tenant -body $ServicePrincipalBody + + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully deployed Application Manifest $($TemplateData.AppName) to tenant $Tenant. Application ID: $($CreatedApp.appId)" -sev Info + + if ($CreatedApp.requiredResourceAccess) { + Add-CIPPDelegatedPermission -RequiredResourceAccess $CreatedApp.requiredResourceAccess -ApplicationId $CreatedApp.appId -Tenantfilter $Tenant + Add-CIPPApplicationPermission -RequiredResourceAccess $CreatedApp.requiredResourceAccess -ApplicationId $CreatedApp.appId -Tenantfilter $Tenant + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Application Manifest deployment failed - no application ID returned for $($TemplateData.AppName) in tenant $Tenant" -sev Error + } + } catch { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Error creating application from manifest in tenant $Tenant - $($_.Exception.Message)" -sev Error + } + + } else { + # Handle Enterprise App deployment (existing logic) + $AppId = $TemplateData.AppId + if ($AppId -notin $AppExists.appId) { + Write-Information "Adding $AppId to tenant $Tenant." + $PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Tenant -body "{ `"appId`": `"$AppId`" }" + Write-LogMessage -message "Added $AppId to tenant $Tenant" -tenant $Tenant -API 'Standards' -sev Info + } + + # Apply permissions for Enterprise Apps + Add-CIPPApplicationPermission -TemplateId $TemplateId -TenantFilter $Tenant + Add-CIPPDelegatedPermission -TemplateId $TemplateId -TenantFilter $Tenant + Write-LogMessage -API 'Standards' -tenant $tenant -message "Added application $($TemplateData.AppName) from Enterprise App template and updated its permissions" -sev Info + } + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to deploy template $TemplateId. Error: $ErrorMessage" -sev Error + } + } + } + } + + if ($Settings.alert) { + if ($MissingApps.Count -gt 0) { + Write-StandardsAlert -message "The following applications are not deployed: $($MissingApps -join ', ')" -object (@{ 'Missing Apps' = $MissingApps -join ',' }) -tenant $Tenant -standardName 'AppDeploy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "The following applications are not deployed: $($MissingApps -join ', ')" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'All applications are deployed' -sev Info + } + } + + if ($Settings.report -eq $true) { + $StateIsCorrect = $MissingApps.Count -eq 0 ? $true : @{ 'Missing Apps' = $MissingApps -join ',' } + Set-CIPPStandardsCompareField -FieldName 'standards.AppDeploy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'AppDeploy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 new file mode 100644 index 000000000000..8d371752daa4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 @@ -0,0 +1,129 @@ +function Invoke-CIPPStandardAssignmentFilterTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AssignmentFilterTemplate + .SYNOPSIS + (Label) Assignment Filter Template + .DESCRIPTION + (Helptext) Deploy and manage assignment filter templates. + (DocsDescription) Deploy and manage assignment filter templates. + .NOTES + MULTI + True + CAT + Templates + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + IMPACT + Medium Impact + ADDEDDATE + 2025-10-04 + EXECUTIVETEXT + Creates standardized assignment filters with predefined settings. These templates ensure consistent assignment filter configurations across the organization, streamlining assignment management. + ADDEDCOMPONENT + {"type":"autoComplete","name":"assignmentFilterTemplate","label":"Select Assignment Filter Template","api":{"url":"/api/ListAssignmentFilterTemplates","labelField":"Displayname","altLabelField":"displayName","valueField":"GUID","queryKey":"ListAssignmentFilterTemplates"}} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AssignmentFilterTemplate' + $existingFilters = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -tenantid $tenant + + $Settings.assignmentFilterTemplate ? ($Settings | Add-Member -NotePropertyName 'TemplateList' -NotePropertyValue $Settings.assignmentFilterTemplate) : $null + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'AssignmentFilterTemplate' and (RowKey eq '$($Settings.TemplateList.value -join "' or RowKey eq '")')" + $AssignmentFilterTemplates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json + + $ExpectedValue = [PSCustomObject]@{ state = 'Configured correctly' } + $MissingFilters = $AssignmentFilterTemplates | Where-Object { + $CheckExisting = $existingFilters | Where-Object { $_.displayName -eq $_.displayName } + if (!$CheckExisting) { + $_.displayName + } + } + $CurrentValue = if ($MissingFilters.Count -eq 0) { [PSCustomObject]@{'state' = 'Configured correctly' } } else { [PSCustomObject]@{'MissingFilters' = @($MissingFilters) } } + + if ($Settings.remediate -eq $true) { + Write-Host "Settings: $($Settings.TemplateList | ConvertTo-Json)" + foreach ($Template in $AssignmentFilterTemplates) { + Write-Information "Processing template: $($Template.displayName)" + try { + $filterobj = $Template + + # Check if filter already exists + $CheckExisting = $existingFilters | Where-Object -Property displayName -EQ $filterobj.displayName + + if (!$CheckExisting) { + Write-Information 'Creating assignment filter' + $ActionType = 'create' + + # Use the centralized New-CIPPAssignmentFilter function + $Result = New-CIPPAssignmentFilter -FilterObject $filterobj -TenantFilter $tenant -APIName 'Standards' -ExecutingUser 'CIPP-Standards' + + if (!$Result.Success) { + Write-Information "Failed to create assignment filter $($filterobj.displayName): $($Result.Message)" + continue + } + } else { + $ActionType = 'update' + + # Compare existing filter with template to determine what needs updating + $PatchBody = [PSCustomObject]@{} + $ChangesNeeded = [System.Collections.Generic.List[string]]::new() + + # Check description + if ($CheckExisting.description -ne $filterobj.description) { + $PatchBody | Add-Member -NotePropertyName 'description' -NotePropertyValue $filterobj.description + $ChangesNeeded.Add("description: '$($CheckExisting.description)' → '$($filterobj.description)'") + } + + # Check platform + if ($CheckExisting.platform -ne $filterobj.platform) { + $PatchBody | Add-Member -NotePropertyName 'platform' -NotePropertyValue $filterobj.platform + $ChangesNeeded.Add("platform: '$($CheckExisting.platform)' → '$($filterobj.platform)'") + } + + # Check rule + if ($CheckExisting.rule -ne $filterobj.rule) { + $PatchBody | Add-Member -NotePropertyName 'rule' -NotePropertyValue $filterobj.rule + $ChangesNeeded.Add("rule: '$($CheckExisting.rule)' → '$($filterobj.rule)'") + } + + # Check assignmentFilterManagementType + if ($CheckExisting.assignmentFilterManagementType -ne $filterobj.assignmentFilterManagementType) { + $PatchBody | Add-Member -NotePropertyName 'assignmentFilterManagementType' -NotePropertyValue $filterobj.assignmentFilterManagementType + $ChangesNeeded.Add("assignmentFilterManagementType: '$($CheckExisting.assignmentFilterManagementType)' → '$($filterobj.assignmentFilterManagementType)'") + } + + # Only patch if there are actual changes + if ($ChangesNeeded.Count -gt 0) { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$($CheckExisting.id)" -tenantid $tenant -type PATCH -body (ConvertTo-Json -InputObject $PatchBody -Depth 10) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Updated Assignment Filter '$($filterobj.displayName)' - Changes: $($ChangesNeeded -join ', ')" -Sev Info + } else { + Write-Information "Assignment Filter '$($filterobj.displayName)' already matches template - no update needed" + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to $ActionType assignment filter $($filterobj.displayName). Error: $ErrorMessage" -sev 'Error' + } + } + } + if ($Settings.report -eq $true) { + # Check if all filters.displayName are in the existingFilters, if not $fieldvalue should contain all missing filters, else it should be true. + $MissingFilters = foreach ($Filter in $AssignmentFilterTemplates) { + $CheckExisting = $existingFilters | Where-Object { $_.displayName -eq $Filter.displayName } + if (!$CheckExisting) { + $Filter.displayName + } + } + + Set-CIPPStandardsCompareField -FieldName 'standards.AssignmentFilterTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 new file mode 100644 index 000000000000..3bf5fd8ba0d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 @@ -0,0 +1,97 @@ +function Invoke-CIPPStandardAtpPolicyForO365 { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AtpPolicyForO365 + .SYNOPSIS + (Label) Default Atp Policy For O365 + .DESCRIPTION + (Helptext) This creates a Atp policy that enables Defender for Office 365 for SharePoint, OneDrive and Microsoft Teams. + (DocsDescription) This creates a Atp policy that enables Defender for Office 365 for SharePoint, OneDrive and Microsoft Teams. + .NOTES + CAT + Defender Standards + TAG + "CIS M365 5.0 (2.1.5)" + "NIST CSF 2.0 (DE.CM-09)" + ADDEDCOMPONENT + {"type":"switch","label":"Allow people to click through Protected View even if Safe Documents identified the file as malicious","name":"standards.AtpPolicyForO365.AllowSafeDocsOpen","defaultValue":false,"required":false} + IMPACT + Low Impact + ADDEDDATE + 2024-03-25 + POWERSHELLEQUIVALENT + Set-AtpPolicyForO365 + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AtpPolicyForO365' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AtpPolicyForO365' + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AtpPolicyForO365' | + Select-Object EnableATPForSPOTeamsODB, EnableSafeDocs, AllowSafeDocsOpen + } catch { + $CurrentState = @{ + License = 'This tenant might not be licensed for this feature' + } + } + $StateIsCorrect = ($CurrentState.EnableATPForSPOTeamsODB -eq $true) -and + ($CurrentState.EnableSafeDocs -eq $true) -and + ($CurrentState.AllowSafeDocsOpen -eq $Settings.AllowSafeDocsOpen) + + $CurrentValue = $CurrentState | Select-Object EnableATPForSPOTeamsODB, EnableSafeDocs, AllowSafeDocsOpen + $ExpectedValue = [PSCustomObject]@{ + EnableATPForSPOTeamsODB = $true + EnableSafeDocs = $true + AllowSafeDocsOpen = $Settings.AllowSafeDocsOpen + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Atp Policy For O365 already set.' -sev Info + } else { + $cmdParams = @{ + EnableATPForSPOTeamsODB = $true + EnableSafeDocs = $true + AllowSafeDocsOpen = $Settings.AllowSafeDocsOpen + } + + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-AtpPolicyForO365' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Atp Policy For O365' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Atp Policy For O365. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Atp Policy For O365 is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Atp Policy For O365 is not enabled' -object $CurrentState -tenant $Tenant -standardName 'AtpPolicyForO365' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Atp Policy For O365 is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $StateIsCorrect -eq $true ? $true : $CurrentState + Set-CIPPStandardsCompareField -FieldName 'standards.AtpPolicyForO365' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'AtpPolicyForO365' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 new file mode 100644 index 000000000000..4d1c5a4d1b68 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 @@ -0,0 +1,98 @@ +function Invoke-CIPPStandardAuditLog { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AuditLog + .SYNOPSIS + (Label) Enable the Unified Audit Log + .DESCRIPTION + (Helptext) Enables the Unified Audit Log for tracking and auditing activities. Also runs Enable-OrganizationCustomization if necessary. + (DocsDescription) Enables the Unified Audit Log for tracking and auditing activities. Also runs Enable-OrganizationCustomization if necessary. + .NOTES + CAT + Global Standards + TAG + "CIS M365 5.0 (3.1.1)" + "mip_search_auditlog" + "NIST CSF 2.0 (DE.CM-09)" + EXECUTIVETEXT + Activates comprehensive activity logging across Microsoft 365 services to track user actions, system changes, and security events. This provides essential audit trails for compliance requirements, security investigations, and regulatory reporting. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Enable-OrganizationCustomization + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AuditLog' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AuditLog' + + Write-Host ($Settings | ConvertTo-Json) + $AuditLogEnabled = [bool](New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AdminAuditLogConfig' -Select UnifiedAuditLogIngestionEnabled).UnifiedAuditLogIngestionEnabled + + $CurrentValue = [PSCustomObject]@{ + UnifiedAuditLogIngestionEnabled = $AuditLogEnabled + } + $ExpectedValue = [PSCustomObject]@{ + UnifiedAuditLogIngestionEnabled = $true + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + $DehydratedTenant = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' -Select IsDehydrated).IsDehydrated + if ($DehydratedTenant -eq $true) { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Enable-OrganizationCustomization' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Organization customization enabled.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable organization customization. Error: $ErrorMessage" -sev Debug + } + } + + try { + if ($AuditLogEnabled -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Unified Audit Log already enabled.' -sev Info + } else { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-AdminAuditLogConfig' -cmdParams @{UnifiedAuditLogIngestionEnabled = $true } + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Unified Audit Log Enabled.' -sev Info + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Unified Audit Log. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + if ($Settings.alert -eq $true) { + + if ($AuditLogEnabled -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Unified Audit Log is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Unified Audit Log is not enabled' -object @{AuditLogEnabled = $AuditLogEnabled } -tenant $Tenant -standardName 'AuditLog' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Unified Audit Log is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $AuditLogEnabled -eq $true ? $true : $AuditLogEnabled + Set-CIPPStandardsCompareField -FieldName 'standards.AuditLog' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AuditLog' -FieldValue $AuditLogEnabled -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 new file mode 100644 index 000000000000..cd3f5126a43d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 @@ -0,0 +1,78 @@ +function Invoke-CIPPStandardAuthMethodsPolicyMigration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AuthMethodsPolicyMigration + .SYNOPSIS + (Label) Complete Authentication Methods Policy Migration + .DESCRIPTION + (Helptext) Completes the migration of authentication methods policy to the new format + (DocsDescription) Sets the authentication methods policy migration state to complete. This is required when migrating from legacy authentication policies to the new unified authentication methods policy. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Completes the transition from legacy authentication policies to Microsoft's modern unified authentication methods policy, ensuring the organization benefits from the latest security features and management capabilities. This migration enables enhanced security controls and simplified policy management. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2025-07-07 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicy + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AuthMethodsPolicyMigration state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + if ($null -eq $CurrentInfo) { + throw 'Failed to retrieve current authentication methods policy information' + } + + $CurrentValue = $CurrentInfo | Select-Object policyMigrationState + $ExpectedValue = [PSCustomObject]@{ + policyMigrationState = 'migrationComplete' + } + + if ($Settings.remediate -eq $true) { + if ($CurrentInfo.policyMigrationState -eq 'migrationComplete' -or $null -eq $CurrentInfo.policyMigrationState) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Authentication methods policy migration is already complete.' -sev Info + } else { + try { + New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant -body '{"policyMigrationState": "migrationComplete"}' -type PATCH + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Authentication methods policy migration completed successfully.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to complete authentication methods policy migration: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo.policyMigrationState -ne 'migrationComplete' -and $null -ne $CurrentInfo.policyMigrationState) { + Write-StandardsAlert -message 'Authentication methods policy migration is not complete. Please check if you have legacy SSPR settings or MFA settings set: https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-authentication-methods-manage' -object $CurrentInfo -tenant $tenant -standardName 'AuthMethodsPolicyMigration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Authentication methods policy migration is not complete' -sev Alert + } + } + + if ($Settings.report -eq $true) { + $migrationComplete = $CurrentInfo.policyMigrationState -eq 'migrationComplete' -or $null -eq $CurrentInfo.policyMigrationState + Set-CIPPStandardsCompareField -FieldName 'standards.AuthMethodsPolicyMigration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'AuthMethodsPolicyMigration' -FieldValue $migrationComplete -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsSettings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsSettings.ps1 new file mode 100644 index 000000000000..cd0332008211 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsSettings.ps1 @@ -0,0 +1,117 @@ +function Invoke-CIPPStandardAuthMethodsSettings { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AuthMethodsSettings + .SYNOPSIS + (Label) Configure Authentication Methods Policy Settings + .DESCRIPTION + (Helptext) Configures the report suspicious activity settings and system credential preferences in the authentication methods policy. + (DocsDescription) Controls the authentication methods policy settings for reporting suspicious activity and system credential preferences. These settings help enhance the security of authentication in your organization. + .NOTES + CAT + Entra (AAD) Standards + TAG + "EIDSCA.AG01" + "EIDSCA.AG02" + "EIDSCA.AG03" + EXECUTIVETEXT + Configures security settings that allow users to report suspicious login attempts and manages how the system handles authentication credentials. This enhances overall security by enabling early detection of potential security threats and optimizing authentication processes. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"standards.AuthMethodsSettings.ReportSuspiciousActivity","label":"Report Suspicious Activity Settings","options":[{"label":"Microsoft managed","value":"default"},{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"standards.AuthMethodsSettings.SystemCredential","label":"System Credential Preferences","options":[{"label":"Microsoft managed","value":"default"},{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-02-10 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + # Get current authentication methods policy + try { + $CurrentPolicy = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Failed to get authentication methods policy' -sev Error -LogData $ErrorMessage + return + } + + + # Set wanted states + $ReportSuspiciousActivityState = $Settings.ReportSuspiciousActivity.value ?? $Settings.ReportSuspiciousActivity + $SystemCredentialState = $Settings.SystemCredential.value ?? $Settings.SystemCredential + + # Input validation + $ValidStates = @('default', 'enabled', 'disabled') + if (($Settings.remediate -eq $true -or $Settings.alert -eq $true) -and + ($ReportSuspiciousActivityState -notin $ValidStates -or $SystemCredentialState -notin $ValidStates)) { + Write-Host "ReportSuspiciousActivity: $($ReportSuspiciousActivityState)" + Write-Host "SystemCredential: $($SystemCredentialState)" + Write-LogMessage -API 'Standards' -tenant $tenant -message 'AuthMethodsPolicy: Invalid state parameter set' -sev Error + return + } + + $CurrentValue = [PSCustomObject]@{ + reportSuspiciousActivitySettings = $CurrentPolicy.reportSuspiciousActivitySettings.state + systemCredentialPreferences = $CurrentPolicy.systemCredentialPreferences.state + } + $ExpectedValue = [PSCustomObject]@{ + reportSuspiciousActivitySettings = $ReportSuspiciousActivityState + systemCredentialPreferences = $SystemCredentialState + } + + # Check if states are set correctly + $ReportSuspiciousActivityCorrect = if ($CurrentPolicy.reportSuspiciousActivitySettings.state -eq $ReportSuspiciousActivityState) { $true } else { $false } + $SystemCredentialCorrect = if ($CurrentPolicy.systemCredentialPreferences.state -eq $SystemCredentialState) { $true } else { $false } + $StateSetCorrectly = $ReportSuspiciousActivityCorrect -and $SystemCredentialCorrect + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + if ($StateSetCorrectly -eq $false) { + try { + $body = [PSCustomObject]@{ + reportSuspiciousActivitySettings = $CurrentPolicy.reportSuspiciousActivitySettings + systemCredentialPreferences = $CurrentPolicy.systemCredentialPreferences + } + $body.reportSuspiciousActivitySettings.state = $ReportSuspiciousActivityState + $body.systemCredentialPreferences.state = $SystemCredentialState + + Write-Host "Body: $($body | ConvertTo-Json -Depth 10 -Compress)" + # Update settings + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -AsApp $true -Type PATCH -Body ($body | ConvertTo-Json -Depth 10 -Compress) -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully configured authentication methods policy settings: Report Suspicious Activity ($ReportSuspiciousActivityState), System Credential Preferences ($SystemCredentialState)" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Failed to configure authentication methods policy settings' -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Authentication methods policy settings are already configured correctly' -sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AuthMethodsSettings' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'ReportSuspiciousActivity' -FieldValue $CurrentPolicy.reportSuspiciousActivitySettings.state -StoreAs string -Tenant $tenant + Add-CIPPBPAField -FieldName 'SystemCredential' -FieldValue $CurrentPolicy.systemCredentialPreferences.state -StoreAs string -Tenant $tenant + } + + if ($Settings.alert -eq $true) { + if ($StateSetCorrectly -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Authentication methods policy settings are correctly configured: Report Suspicious Activity ($ReportSuspiciousActivityState), System Credential Preferences ($SystemCredentialState)" -sev Info + } else { + $CurrentReportState = $CurrentPolicy.reportSuspiciousActivitySettings.state + $CurrentSystemState = $CurrentPolicy.systemCredentialPreferences.state + Write-StandardsAlert -message 'Authentication methods policy settings are not configured correctly.' -object @{CurrentReportState = $CurrentReportState; CurrentSystemState = $CurrentSystemState; WantedReportState = $ReportSuspiciousActivityState; WantedSystemState = $SystemCredentialState } -tenant $tenant -standardName 'AuthMethodsSettings' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Authentication methods policy settings are not configured correctly. Current values: Report Suspicious Activity ($CurrentReportState), System Credential Preferences ($CurrentSystemState)" -sev Info + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 new file mode 100644 index 000000000000..43b3a943ecf3 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 @@ -0,0 +1,118 @@ +function Invoke-CIPPStandardAutoAddProxy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AutoAddProxy + .SYNOPSIS + (Label) Automatically deploy proxy addresses + .DESCRIPTION + (Helptext) Automatically adds all available domains as a proxy address. + (DocsDescription) Automatically finds all available domain names in the tenant, and tries to add proxy addresses based on the user's UPN to each of these. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Automatically creates email addresses for employees across all company domains, ensuring they can receive emails sent to any of the organization's domain names. This improves email delivery reliability and maintains consistent communication channels across different business units or brands. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2025-02-07 + POWERSHELLEQUIVALENT + Set-Mailbox -EmailAddresses @{add=\$EmailAddress} + RECOMMENDEDBY + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param( + $Tenant, + $Settings, + $QueueItem + ) + + try { + $Domains = New-ExoRequest -TenantId $Tenant -Cmdlet 'Get-AcceptedDomain' | Select-Object -ExpandProperty DomainName + $AllMailboxes = New-ExoRequest -TenantId $Tenant -Cmdlet 'Get-Mailbox' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoAddProxy state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $MissingProxies = 0 + foreach ($Domain in $Domains) { + $ProcessMailboxes = $AllMailboxes | Where-Object { + $addresses = @($_.EmailAddresses) -replace '^[^:]+:' # remove SPO:, SMTP:, etc. + $hasDomain = $addresses | Where-Object { $_ -like "*@$Domain" } + if ($hasDomain) { return $false } else { return $true } + } + $MissingProxies += $ProcessMailboxes.Count + } + + $StateIsCorrect = $MissingProxies -eq 0 + $ExpectedValue = [PSCustomObject]@{ + MissingProxies = 0 + } + $CurrentValue = [PSCustomObject]@{ + MissingProxies = $MissingProxies + } + + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AutoAddProxy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AutoAddProxy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All mailboxes have proxy addresses for all domains' -sev Info + } else { + Write-StandardsAlert -message "There are $MissingProxies missing proxy addresses across all mailboxes" -object @{MissingProxies = $MissingProxies } -tenant $Tenant -standardName 'AutoAddProxy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "There are $MissingProxies missing proxy addresses across all mailboxes" -sev Info + } + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All mailboxes already have proxy addresses for all domains' -sev Info + } else { + foreach ($Domain in $Domains) { + $ProcessMailboxes = $AllMailboxes | Where-Object { + $addresses = @($_.EmailAddresses) -replace '^[^:]+:' # remove SPO:, SMTP:, etc. + $hasDomain = $addresses | Where-Object { $_ -like "*@$Domain" } + if ($hasDomain) { return $false } else { return $true } + } + + $bulkRequest = foreach ($Mailbox in $ProcessMailboxes) { + $LocalPart = $Mailbox.UserPrincipalName -split '@' | Select-Object -First 1 + $NewAlias = "$LocalPart@$Domain" + @{ + CmdletInput = @{ + CmdletName = 'Set-Mailbox' + Parameters = @{Identity = $Mailbox.Identity ; EmailAddresses = @{ + '@odata.type' = '#Exchange.GenericHashTable' + Add = "smtp:$NewAlias" + } + } + } + } + } + $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($bulkRequest) + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorMessage = Get-CippException -Exception $_.error + Write-Host "Failed to apply new email policy to $($_.target) Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply proxy address to $($_.error.target) Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Added missing proxy addresses to mailboxes' -sev Info + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 new file mode 100644 index 000000000000..971c4bf55e56 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoArchive.ps1 @@ -0,0 +1,103 @@ +function Invoke-CIPPStandardAutoArchive { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AutoArchive + .SYNOPSIS + (Label) Configure Auto-Archiving Threshold + .DESCRIPTION + (Helptext) Configures the auto-archiving threshold percentage for the tenant. When a mailbox exceeds this threshold, the oldest items are automatically moved to the archive mailbox. Archive must be enabled manually or via the CIPP standard 'Enable Online Archive for all users'. More information can be found in [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/security-and-compliance/messaging-records-management/auto-archiving) + (DocsDescription) Configures the auto-archiving threshold at the organization level. Auto-archiving automatically moves the oldest items from a user's primary mailbox to their archive mailbox when mailbox usage exceeds the configured threshold percentage. This prevents mail flow disruptions caused by full mailboxes. Valid range is 80-100, where 100 disables auto-archiving for the tenant. More information can be found in [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/security-and-compliance/messaging-records-management/auto-archiving) + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Configures automatic archiving of mailbox items when storage approaches capacity, preventing email delivery failures due to full mailboxes. This proactive storage management ensures business continuity and reduces helpdesk tickets related to mailbox quota issues. + ADDEDCOMPONENT + {"type":"number","name":"standards.AutoArchive.AutoArchivingThresholdPercentage","label":"Auto-Archiving Threshold Percentage (80-100, default 96, 100 disables)","defaultValue":96} + IMPACT + Low Impact + ADDEDDATE + 2025-12-11 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -AutoArchivingThresholdPercentage 80-100 + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutoArchive' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } + + # Get the threshold value from settings + $DesiredThreshold = [int]($Settings.AutoArchivingThresholdPercentage) + + # Validate the threshold is within valid range + if ($DesiredThreshold -lt 80 -or $DesiredThreshold -gt 100) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Invalid AutoArchivingThresholdPercentage value: $DesiredThreshold. Must be between 80 and 100." -Sev Error + return + } + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' -Select 'AutoArchivingThresholdPercentage').AutoArchivingThresholdPercentage + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoArchive state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $CorrectState = $CurrentState -eq $DesiredThreshold + + $ExpectedValue = [PSCustomObject]@{ + AutoArchivingThresholdPercentage = $DesiredThreshold + } + $CurrentValue = [PSCustomObject]@{ + AutoArchivingThresholdPercentage = $CurrentState + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CorrectState) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is already set to $CurrentState%." -Sev Info + } else { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ AutoArchivingThresholdPercentage = $DesiredThreshold } + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold has been set to $DesiredThreshold%." -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set auto-archiving threshold. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CorrectState) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is correctly set to $CurrentState%." -Sev Info + } else { + Write-StandardsAlert -message "Auto-archiving threshold is set to $CurrentState% but should be $DesiredThreshold%." -object @{ CurrentThreshold = $CurrentState; DesiredThreshold = $DesiredThreshold } -tenant $Tenant -standardName 'AutoArchive' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Auto-archiving threshold is set to $CurrentState% but should be $DesiredThreshold%." -Sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'AutoArchive' -FieldValue $CorrectState -StoreAs bool -Tenant $Tenant + + if ($CorrectState) { + $FieldValue = $true + } else { + $FieldValue = @{ CurrentThreshold = $CurrentState; DesiredThreshold = $DesiredThreshold } + } + Set-CIPPStandardsCompareField -FieldName 'standards.AutoArchive' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 new file mode 100644 index 000000000000..72b4552da9bb --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 @@ -0,0 +1,86 @@ +function Invoke-CIPPStandardAutoExpandArchive { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AutoExpandArchive + .SYNOPSIS + (Label) Enable Auto-expanding archives + .DESCRIPTION + (Helptext) Enables auto-expanding archives for the tenant + (DocsDescription) Enables auto-expanding archives for the tenant. Does not enable archives for users. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Enables automatic expansion of email archive storage when users approach their archive limits, ensuring continuous email retention without manual intervention. This prevents email storage issues and maintains compliance with data retention policies without requiring ongoing administrative management. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -AutoExpandingArchive + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutoExpandArchive' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AutoExpandArchive' + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').AutoExpandingArchiveEnabled + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the AutoExpandArchive state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $ExpectedValue = [PSCustomObject]@{ + AutoExpandingArchive = $true + } + $CurrentValue = [PSCustomObject]@{ + AutoExpandingArchive = $CurrentState + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CurrentState) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Auto Expanding Archive is already enabled.' -sev Info + } else { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{AutoExpandingArchive = $true } + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Added Auto Expanding Archive.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Auto Expanding Archives. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentState) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Auto Expanding Archives is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Auto Expanding Archives is not enabled' -object @{CurrentState = $CurrentState } -tenant $tenant -standardName 'AutoExpandArchive' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Auto Expanding Archives is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AutoExpandArchive' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'AutoExpandingArchive' -FieldValue $CurrentState -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 new file mode 100644 index 000000000000..98cda9ca282b --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 @@ -0,0 +1,159 @@ +function Invoke-CIPPStandardAutopilotProfile { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AutopilotProfile + .SYNOPSIS + (Label) Enable Autopilot Profile + .DESCRIPTION + (Helptext) Assign the appropriate Autopilot profile to streamline device deployment. + (DocsDescription) This standard allows the deployment of Autopilot profiles to devices, including settings such as unique name templates, language options, and local admin privileges. + .NOTES + CAT + Device Management Standards + TAG + DISABLEDFEATURES + {"report":false,"warn":false,"remediate":false} + ADDEDCOMPONENT + {"type":"textField","name":"standards.AutopilotProfile.DisplayName","label":"Profile Display Name"} + {"type":"textField","name":"standards.AutopilotProfile.Description","label":"Profile Description"} + {"type":"textField","name":"standards.AutopilotProfile.DeviceNameTemplate","label":"Unique Device Name Template","required":false} + {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"standards.AutopilotProfile.Languages","label":"Languages","api":{"url":"/languageList.json","labelField":"languageTag","valueField":"tag"}} + {"type":"switch","name":"standards.AutopilotProfile.CollectHash","label":"Convert all targeted devices to Autopilot","defaultValue":true} + {"type":"switch","name":"standards.AutopilotProfile.AssignToAllDevices","label":"Assign to all devices","defaultValue":true} + {"type":"switch","name":"standards.AutopilotProfile.SelfDeployingMode","label":"Enable Self-deploying Mode","defaultValue":true} + {"type":"switch","name":"standards.AutopilotProfile.HideTerms","label":"Hide Terms and Conditions","defaultValue":true} + {"type":"switch","name":"standards.AutopilotProfile.HidePrivacy","label":"Hide Privacy Settings","defaultValue":true} + {"type":"switch","name":"standards.AutopilotProfile.HideChangeAccount","label":"Hide Change Account Options","defaultValue":true} + {"type":"switch","name":"standards.AutopilotProfile.NotLocalAdmin","label":"Setup user as a standard user (not local admin)","defaultValue":true} + {"type":"switch","name":"standards.AutopilotProfile.AllowWhiteGlove","label":"Allow White Glove OOBE","defaultValue":true} + {"type":"switch","name":"standards.AutopilotProfile.AutoKeyboard","label":"Automatically configure keyboard","defaultValue":true} + IMPACT + Low Impact + ADDEDDATE + 2023-12-30 + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotProfile' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + # Get the current configuration + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + try { + $CurrentConfig = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeploymentProfiles' -tenantid $Tenant | + Where-Object { $_.displayName -eq $Settings.DisplayName } | + Select-Object -Property displayName, description, deviceNameTemplate, locale, preprovisioningAllowed, hardwareHashExtractionEnabled, outOfBoxExperienceSetting + + if ($Settings.NotLocalAdmin -eq $true) { $userType = 'Standard' } else { $userType = 'Administrator' } + if ($Settings.SelfDeployingMode -eq $true) { + $DeploymentMode = 'shared' + $Settings.AllowWhiteGlove = $false + } else { + $DeploymentMode = 'singleUser' + } + + $StateIsCorrect = ($CurrentConfig.displayName -eq $Settings.DisplayName) -and + ($CurrentConfig.description -eq $Settings.Description) -and + ($CurrentConfig.deviceNameTemplate -eq $Settings.DeviceNameTemplate) -and + ([string]::IsNullOrWhiteSpace($CurrentConfig.locale) -and [string]::IsNullOrWhiteSpace($Settings.Languages.value) -or $CurrentConfig.locale -eq $Settings.Languages.value) -and + ($CurrentConfig.preprovisioningAllowed -eq $Settings.AllowWhiteGlove) -and + ($CurrentConfig.hardwareHashExtractionEnabled -eq $Settings.CollectHash) -and + ($CurrentConfig.outOfBoxExperienceSetting.deviceUsageType -eq $DeploymentMode) -and + ($CurrentConfig.outOfBoxExperienceSetting.privacySettingsHidden -eq $Settings.HidePrivacy) -and + ($CurrentConfig.outOfBoxExperienceSetting.eulaHidden -eq $Settings.HideTerms) -and + ($CurrentConfig.outOfBoxExperienceSetting.userType -eq $userType) -and + ($CurrentConfig.outOfBoxExperienceSetting.keyboardSelectionPageSkipped -eq $Settings.AutoKeyboard) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot profile: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StateIsCorrect = $false + } + + $CurrentValue = $CurrentConfig | Select-Object -Property displayName, description, deviceNameTemplate, locale, preprovisioningAllowed, hardwareHashExtractionEnabled, @{Name = 'outOfBoxExperienceSetting'; Expression = { + [PSCustomObject]@{ + deviceUsageType = $_.outOfBoxExperienceSetting.deviceUsageType + privacySettingsHidden = $_.outOfBoxExperienceSetting.privacySettingsHidden + eulaHidden = $_.outOfBoxExperienceSetting.eulaHidden + userType = $_.outOfBoxExperienceSetting.userType + keyboardSelectionPageSkipped = $_.outOfBoxExperienceSetting.keyboardSelectionPageSkipped + } + } + } + $ExpectedValue = [PSCustomObject]@{ + displayName = $Settings.DisplayName + description = $Settings.Description + deviceNameTemplate = $Settings.DeviceNameTemplate + locale = $Settings.Languages.value + preprovisioningAllowed = $Settings.AllowWhiteGlove + hardwareHashExtractionEnabled = $Settings.CollectHash + outOfBoxExperienceSetting = [PSCustomObject]@{ + deviceUsageType = $DeploymentMode + privacySettingsHidden = $Settings.HidePrivacy + eulaHidden = $Settings.HideTerms + userType = $userType + keyboardSelectionPageSkipped = $Settings.AutoKeyboard + } + } + + # Remediate if the state is not correct + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' already exists" -sev Info + } else { + try { + $Parameters = @{ + tenantFilter = $Tenant + displayName = $Settings.DisplayName + description = $Settings.Description + userType = $userType + DeploymentMode = $DeploymentMode + AssignTo = $Settings.AssignToAllDevices + devicenameTemplate = $Settings.DeviceNameTemplate + allowWhiteGlove = $Settings.AllowWhiteGlove + CollectHash = $Settings.CollectHash + hideChangeAccount = $true + hidePrivacy = $Settings.HidePrivacy + hideTerms = $Settings.HideTerms + AutoKeyboard = $Settings.AutoKeyboard + Language = $Settings.Languages.value + } + + Set-CIPPDefaultAPDeploymentProfile @Parameters + if ($null -eq $CurrentConfig) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Autopilot profile '$($Settings.DisplayName)'" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Autopilot profile '$($Settings.DisplayName)'" -sev Info + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Autopilot profile: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + throw $ErrorMessage + } + } + } + + # Report + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AutopilotProfile' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AutopilotProfile' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant + } + + # Alert + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' exists" -sev Info + } else { + Write-StandardsAlert -message "Autopilot profile '$($Settings.DisplayName)' do not match expected configuration" -object $CurrentConfig -tenant $Tenant -standardName 'AutopilotProfile' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Autopilot profile '$($Settings.DisplayName)' do not match expected configuration" -sev Info + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 new file mode 100644 index 000000000000..17ac191280b5 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotStatusPage.ps1 @@ -0,0 +1,120 @@ +function Invoke-CIPPStandardAutopilotStatusPage { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) AutopilotStatusPage + .SYNOPSIS + (Label) Enable Autopilot Status Page + .DESCRIPTION + (Helptext) Deploy the Autopilot Status Page, which shows progress during device setup through Autopilot. + (DocsDescription) This standard allows configuration of the Autopilot Status Page, providing users with a visual representation of the progress during device setup. It includes options like timeout, logging, and retry settings. + .NOTES + CAT + Device Management Standards + TAG + DISABLEDFEATURES + {"report":false,"warn":false,"remediate":false} + EXECUTIVETEXT + Provides employees with a visual progress indicator during automated device setup, improving the user experience when receiving new computers. This reduces IT support calls and helps ensure successful device deployment by guiding users through the setup process. + ADDEDCOMPONENT + {"type":"number","name":"standards.AutopilotStatusPage.TimeOutInMinutes","label":"Timeout in minutes","defaultValue":60} + {"type":"textField","name":"standards.AutopilotStatusPage.ErrorMessage","label":"Custom Error Message","required":false} + {"type":"switch","name":"standards.AutopilotStatusPage.ShowProgress","label":"Show progress to users","defaultValue":true} + {"type":"switch","name":"standards.AutopilotStatusPage.EnableLog","label":"Turn on log collection","defaultValue":true} + {"type":"switch","name":"standards.AutopilotStatusPage.OBEEOnly","label":"Show status page only with OOBE setup","defaultValue":true} + {"type":"switch","name":"standards.AutopilotStatusPage.InstallWindowsUpdates","label":"Install Windows Updates during setup","defaultValue":true} + {"type":"switch","name":"standards.AutopilotStatusPage.BlockDevice","label":"Block device usage during setup","defaultValue":true} + {"type":"switch","name":"standards.AutopilotStatusPage.AllowReset","label":"Allow reset","defaultValue":true} + {"type":"switch","name":"standards.AutopilotStatusPage.AllowFail","label":"Allow users to use device if setup fails","defaultValue":true} + IMPACT + Low Impact + ADDEDDATE + 2023-12-30 + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'AutopilotStatusPage' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + # Get current Autopilot enrollment status page configuration + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + try { + $CurrentConfig = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments&orderBy=priority&`$filter=deviceEnrollmentConfigurationType eq 'windows10EnrollmentCompletionPageConfiguration' and priority eq 0" -tenantid $Tenant | + Select-Object -Property id, displayName, priority, showInstallationProgress, blockDeviceSetupRetryByUser, allowDeviceResetOnInstallFailure, allowLogCollectionOnInstallFailure, customErrorMessage, installProgressTimeoutInMinutes, allowDeviceUseOnInstallFailure, trackInstallProgressForAutopilotOnly, installQualityUpdates + + # Compatibility for standards made in v8.3.0 or before, which did not have the InstallWindowsUpdates setting + $InstallWindowsUpdates = $Settings.InstallWindowsUpdates ?? $false + + $StateIsCorrect = ($CurrentConfig.installProgressTimeoutInMinutes -eq $Settings.TimeOutInMinutes) -and + ($CurrentConfig.customErrorMessage -eq $Settings.ErrorMessage) -and + ($CurrentConfig.showInstallationProgress -eq $Settings.ShowProgress) -and + ($CurrentConfig.allowLogCollectionOnInstallFailure -eq $Settings.EnableLog) -and + ($CurrentConfig.trackInstallProgressForAutopilotOnly -eq $Settings.OBEEOnly) -and + ($CurrentConfig.blockDeviceSetupRetryByUser -eq !$Settings.BlockDevice) -and + ($CurrentConfig.installQualityUpdates -eq $InstallWindowsUpdates) -and + ($CurrentConfig.allowDeviceResetOnInstallFailure -eq $Settings.AllowReset) -and + ($CurrentConfig.allowDeviceUseOnInstallFailure -eq $Settings.AllowFail) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to check Autopilot Enrollment Status Page: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StateIsCorrect = $false + } + + $CurrentValue = $CurrentConfig | Select-Object -Property id, displayName, priority, showInstallationProgress, blockDeviceSetupRetryByUser, allowDeviceResetOnInstallFailure, allowLogCollectionOnInstallFailure, customErrorMessage, installProgressTimeoutInMinutes, allowDeviceUseOnInstallFailure, trackInstallProgressForAutopilotOnly, installQualityUpdates + $ExpectedValue = [PSCustomObject]@{ + installProgressTimeoutInMinutes = $Settings.TimeOutInMinutes + customErrorMessage = $Settings.ErrorMessage + showInstallationProgress = $Settings.ShowProgress + allowLogCollectionOnInstallFailure = $Settings.EnableLog + trackInstallProgressForAutopilotOnly = $Settings.OBEEOnly + blockDeviceSetupRetryByUser = !$Settings.BlockDevice + installQualityUpdates = $InstallWindowsUpdates + allowDeviceResetOnInstallFailure = $Settings.AllowReset + allowDeviceUseOnInstallFailure = $Settings.AllowFail + } + + # Remediate if the state is not correct + if ($Settings.remediate -eq $true) { + try { + $Parameters = @{ + TenantFilter = $Tenant + ShowProgress = $Settings.ShowProgress + BlockDevice = $Settings.BlockDevice + InstallWindowsUpdates = $InstallWindowsUpdates + AllowReset = $Settings.AllowReset + EnableLog = $Settings.EnableLog + ErrorMessage = $Settings.ErrorMessage + TimeOutInMinutes = $Settings.TimeOutInMinutes + AllowFail = $Settings.AllowFail + OBEEOnly = $Settings.OBEEOnly + } + + Set-CIPPDefaultAPEnrollment @Parameters + } catch { + } + } + + # Report + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.AutopilotStatusPage' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AutopilotStatusPage' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant + } + + # Alert + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Autopilot Enrollment Status Page is configured correctly' -sev Info + } else { + Write-StandardsAlert -message 'Autopilot Enrollment Status Page settings do not match expected configuration' -object $CurrentConfig -tenant $Tenant -standardName 'AutopilotStatusPage' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Autopilot Enrollment Status Page settings do not match expected configuration' -sev Info + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAzurePortal.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAzurePortal.ps1 new file mode 100644 index 000000000000..12339f2cd20b --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAzurePortal.ps1 @@ -0,0 +1,10 @@ +function Invoke-CIPPStandardAzurePortal { + <# + .FUNCTIONALITY + Internal + #> + param($Tenant, $Settings) + + # This standard is deprecated and no longer functional + return $true +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 new file mode 100644 index 000000000000..ffd3062882a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 @@ -0,0 +1,106 @@ +function Invoke-CIPPStandardBitLockerKeysForOwnedDevice { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) BitLockerKeysForOwnedDevice + .SYNOPSIS + (Label) Control BitLocker key recovery for owned devices + .DESCRIPTION + (Helptext) Controls whether standard users can recover BitLocker keys for devices they own. + (DocsDescription) Updates the Microsoft Entra authorization policy that controls whether standard users can read BitLocker recovery keys for devices they own. Choose to restrict access for tighter security or allow self-service recovery when operational needs require it. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Gives administrators centralized control over BitLocker recovery secrets—restrict access to ensure IT-assisted recovery flows, or allow self-service when rapid device unlocks are a priority. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select state","name":"standards.BitLockerKeysForOwnedDevice.state","options":[{"label":"Restrict","value":"restrict"},{"label":"Allow","value":"allow"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-10-12 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthorizationPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'BitLockerKeysForOwnedDevice' + + $StateValue = $Settings.state.value ?? $Settings.state + if ([string]::IsNullOrWhiteSpace($StateValue)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'BitLockerKeysForOwnedDevice: Invalid state parameter set.' -sev Error + return + } + + switch ($StateValue.ToLowerInvariant()) { + 'restrict' { $DesiredValue = $false; $DesiredLabel = 'restricted'; break } + 'allow' { $DesiredValue = $true; $DesiredLabel = 'allowed'; break } + default { + Write-LogMessage -API 'Standards' -tenant $tenant -message "BitLockerKeysForOwnedDevice: Unsupported state value '$StateValue'." -sev Error + return + } + } + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the BitLockerKeysForOwnedDevice state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + $CurrentStateValue = [bool]$CurrentState.defaultUserRolePermissions.allowedToReadBitLockerKeysForOwnedDevice + $StateIsCorrect = ($CurrentStateValue -eq $DesiredValue) + + $CurrentValue = [PSCustomObject]@{ + allowedToReadBitLockerKeysForOwnedDevice = $CurrentStateValue + } + $ExpectedValue = [PSCustomObject]@{ + allowedToReadBitLockerKeysForOwnedDevice = $DesiredValue + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Users are already $DesiredLabel from recovering BitLocker keys for their owned devices." -sev Info + } else { + try { + $BodyObject = @{ defaultUserRolePermissions = @{ allowedToReadBitLockerKeysForOwnedDevice = $DesiredValue } } + $BodyJson = $BodyObject | ConvertTo-Json -Depth 4 -Compress + $null = New-GraphPOSTRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -Type patch -Body $BodyJson + $ActionMessage = if ($DesiredValue) { 'Allowed users to recover BitLocker keys for their owned devices.' } else { 'Restricted users from recovering BitLocker keys for their owned devices.' } + Write-LogMessage -API 'Standards' -tenant $tenant -message $ActionMessage -sev Info + + + # Update current state variables to reflect the change immediately if running remediate and report/alert together + $CurrentState.defaultUserRolePermissions.allowedToReadBitLockerKeysForOwnedDevice = $DesiredValue + $CurrentStateValue = $DesiredValue + $StateIsCorrect = $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to $StateValue users to recover BitLocker keys for their owned devices: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Users are $DesiredLabel to recover BitLocker keys for their owned devices as configured." -sev Info + } else { + $CurrentLabel = if ($CurrentStateValue) { 'allowed' } else { 'restricted' } + $AlertMessage = "Users are $CurrentLabel to recover BitLocker keys for their owned devices but should be $DesiredLabel." + Write-StandardsAlert -message $AlertMessage -object $CurrentState -tenant $tenant -standardName 'BitLockerKeysForOwnedDevice' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.BitLockerKeysForOwnedDevice' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'BitLockerKeysForOwnedDevice' -FieldValue $CurrentValue -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 new file mode 100644 index 000000000000..608aadf0e58c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBookings.ps1 @@ -0,0 +1,101 @@ +function Invoke-CIPPStandardBookings { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) Bookings + .SYNOPSIS + (Label) Set Bookings state + .DESCRIPTION + (Helptext) Sets the state of Bookings on the tenant. Bookings is a scheduling tool that allows users to book appointments with others both internal and external. + (DocsDescription) Sets the state of Bookings on the tenant. Bookings is a scheduling tool that allows users to book appointments with others both internal and external. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Controls whether employees can use Microsoft Bookings to create online appointment scheduling pages for internal and external clients. This feature can improve customer service and streamline appointment management, but may need to be controlled for security or business process reasons. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.Bookings.state","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}]} + IMPACT + Medium Impact + ADDEDDATE + 2024-05-31 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -BookingsEnabled + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'Bookings' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'Bookings' + + # Get state value using null-coalescing operator + $state = $Settings.state.value ?? $Settings.state + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').BookingsEnabled + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Bookings state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + $WantedState = if ($state -eq 'true') { $true } else { $false } + $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + + $CurrentValue = [PSCustomObject]@{ + BookingsEnabled = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + BookingsEnabled = $WantedState + } + + if ($Settings.report -eq $true) { + $state = $StateIsCorrect ? $true : $CurrentState + Set-CIPPStandardsCompareField -FieldName 'standards.Bookings' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + if ($null -eq $CurrentState ) { $CurrentState = $true } + Add-CIPPBPAField -FieldName 'BookingsState' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant + } + + # Input validation + if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'BookingsEnabled: Invalid state parameter set' -sev Error + return + } + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + if ($StateIsCorrect -eq $false) { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ BookingsEnabled = $WantedState } -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set the tenant Bookings state to $state" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set the tenant Bookings state to $state. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant Bookings state is already set correctly to $state" -sev Info + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant Bookings is set correctly to $state" -sev Info + } else { + Write-StandardsAlert -message "The tenant Bookings is not set correctly to $state" -object @{CurrentState = $CurrentState; WantedState = $WantedState } -tenant $Tenant -standardName 'Bookings' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant Bookings is not set correctly to $state" -sev Info + } + } + + + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 new file mode 100644 index 000000000000..467279f5838d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 @@ -0,0 +1,158 @@ +function Invoke-CIPPStandardBranding { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) Branding + .SYNOPSIS + (Label) Set branding for the tenant + .DESCRIPTION + (Helptext) Sets the branding for the tenant. This includes the login page, and the Office 365 portal. + (DocsDescription) Sets the branding for the tenant. This includes the login page, and the Office 365 portal. + .NOTES + CAT + Global Standards + TAG + EXECUTIVETEXT + Customizes Microsoft 365 login pages and portals with company branding, including logos, colors, and messaging. This creates a consistent corporate identity experience for employees and reinforces brand recognition while maintaining professional appearance across all Microsoft services. + ADDEDCOMPONENT + {"type":"textField","name":"standards.Branding.signInPageText","label":"Sign-in page text","required":false} + {"type":"textField","name":"standards.Branding.usernameHintText","label":"Username hint Text","required":false} + {"type":"switch","name":"standards.Branding.hideAccountResetCredentials","label":"Hide self-service password reset"} + {"type":"autoComplete","multiple":false,"label":"Visual Template","name":"standards.Branding.layoutTemplateType","options":[{"label":"Full-screen background","value":"default"},{"label":"Partial-screen background","value":"verticalSplit"}]} + {"type":"switch","name":"standards.Branding.isHeaderShown","label":"Show header"} + {"type":"switch","name":"standards.Branding.isFooterShown","label":"Show footer"} + IMPACT + Low Impact + ADDEDDATE + 2024-05-13 + POWERSHELLEQUIVALENT + Portal only + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'Branding' + + $TenantId = Get-Tenants | Where-Object -Property defaultDomainName -EQ $Tenant + + $Localizations = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations" -tenantID $Tenant -AsApp $true + # Get layoutTemplateType value using null-coalescing operator + $layoutTemplateType = $Settings.layoutTemplateType.value ?? $Settings.layoutTemplateType + # If default localization (id "0") exists, use that to get the currentState. Otherwise we have to create it first. + if ($Localizations | Where-Object { $_.id -eq '0' }) { + try { + $CurrentState = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0" -tenantID $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Branding state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + } else { + try { + $GraphRequest = @{ + tenantID = $Tenant + uri = "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations" + AsApp = $true + Type = 'POST' + ContentType = 'application/json; charset=utf-8' + Body = [pscustomobject]@{ + signInPageText = $Settings.signInPageText + usernameHintText = $Settings.usernameHintText + loginPageTextVisibilitySettings = [pscustomobject]@{ + hideAccountResetCredentials = $Settings.hideAccountResetCredentials + } + loginPageLayoutConfiguration = [pscustomobject]@{ + layoutTemplateType = $layoutTemplateType + isHeaderShown = $Settings.isHeaderShown + isFooterShown = $Settings.isFooterShown + } + } | ConvertTo-Json -Compress + } + $CurrentState = New-GraphPostRequest @GraphRequest + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not create the default Branding localization for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + } + + $StateIsCorrect = ($CurrentState.signInPageText -eq $Settings.signInPageText) -and + ($CurrentState.usernameHintText -eq $Settings.usernameHintText) -and + ($CurrentState.loginPageTextVisibilitySettings.hideAccountResetCredentials -eq $Settings.hideAccountResetCredentials) -and + ($CurrentState.loginPageLayoutConfiguration.layoutTemplateType -eq $layoutTemplateType) -and + ($CurrentState.loginPageLayoutConfiguration.isHeaderShown -eq $Settings.isHeaderShown) -and + ($CurrentState.loginPageLayoutConfiguration.isFooterShown -eq $Settings.isFooterShown) + + $CurrentValue = [PSCustomObject]@{ + signInPageText = $CurrentState.signInPageText + usernameHintText = $CurrentState.usernameHintText + loginPageTextVisibilitySettings = $CurrentState.loginPageTextVisibilitySettings | Select-Object -Property hideAccountResetCredentials + loginPageLayoutConfiguration = $CurrentState.loginPageLayoutConfiguration | Select-Object -Property layoutTemplateType, isHeaderShown, isFooterShown + } + $ExpectedValue = [PSCustomObject]@{ + signInPageText = $Settings.signInPageText + usernameHintText = $Settings.usernameHintText + loginPageTextVisibilitySettings = [pscustomobject]@{ + hideAccountResetCredentials = $Settings.hideAccountResetCredentials + } + loginPageLayoutConfiguration = [pscustomobject]@{ + layoutTemplateType = $layoutTemplateType + isHeaderShown = $Settings.isHeaderShown + isFooterShown = $Settings.isFooterShown + } + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Branding is already applied correctly.' -Sev Info + } else { + try { + $GraphRequest = @{ + tenantID = $Tenant + uri = "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0" + AsApp = $true + Type = 'PATCH' + ContentType = 'application/json; charset=utf-8' + Body = [pscustomobject]@{ + signInPageText = $Settings.signInPageText + usernameHintText = $Settings.usernameHintText + loginPageTextVisibilitySettings = [pscustomobject]@{ + hideAccountResetCredentials = $Settings.hideAccountResetCredentials + } + loginPageLayoutConfiguration = [pscustomobject]@{ + layoutTemplateType = $layoutTemplateType + isHeaderShown = $Settings.isHeaderShown + isFooterShown = $Settings.isFooterShown + } + } | ConvertTo-Json -Compress + } + $null = New-GraphPostRequest @GraphRequest + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully updated branding.' -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to update branding. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + } + } + + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Branding is correctly set.' -Sev Info + } else { + Write-StandardsAlert -message 'Branding is incorrectly set.' -object ($CurrentState | Select-Object -Property signInPageText, usernameHintText, loginPageTextVisibilitySettings, loginPageLayoutConfiguration) -tenant $Tenant -standardName 'Branding' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Branding is incorrectly set.' -Sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.Branding' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'Branding' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 new file mode 100644 index 000000000000..48feb07b2c45 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1 @@ -0,0 +1,100 @@ +function Invoke-CIPPStandardCloudMessageRecall { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) CloudMessageRecall + .SYNOPSIS + (Label) Set Cloud Message Recall state + .DESCRIPTION + (Helptext) Sets the Cloud Message Recall state for the tenant. This allows users to recall messages from the cloud. + (DocsDescription) Sets the default state for Cloud Message Recall for the tenant. By default this is enabled. You can read more about the feature [here.](https://techcommunity.microsoft.com/t5/exchange-team-blog/cloud-based-message-recall-in-exchange-online/ba-p/3744714) + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Enables employees to recall or retract emails they've sent, helping prevent embarrassing mistakes or accidental data sharing. This feature can reduce the impact of human errors in email communication and provides a safety net for sensitive information accidentally sent to wrong recipients. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.CloudMessageRecall.state","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}]} + IMPACT + Low Impact + ADDEDDATE + 2024-05-31 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -MessageRecallEnabled + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'CloudMessageRecall' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'CloudMessageRecall' + + # Get state value using null-coalescing operator + $state = $Settings.state.value ?? $Settings.state + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').MessageRecallEnabled + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the CloudMessageRecall state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + $WantedState = if ($state -eq 'true') { $true } else { $false } + $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + + # Input validation + if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'CloudMessageRecall: Invalid state parameter set' -sev Error + return + } + + $CurrentValue = [PSCustomObject]@{ + MessageRecallEnabled = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + MessageRecallEnabled = $WantedState + } + + if ($Settings.report -eq $true) { + # Default is not set, not set means it's enabled + if ($null -eq $CurrentState ) { $CurrentState = $true } + Set-CIPPStandardsCompareField -FieldName 'standards.CloudMessageRecall' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'MessageRecall' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant + } + + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + if ($StateIsCorrect -eq $false) { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ MessageRecallEnabled = $WantedState } -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set the tenant Message Recall state to $state" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set the tenant Message Recall state to $state. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant Message Recall state is already set correctly to $state" -sev Info + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant Message Recall is set correctly to $state" -sev Info + } else { + Write-StandardsAlert -message "The tenant Message Recall is not set correctly to $state" -object @{CurrentState = $CurrentState; WantedState = $WantedState } -tenant $Tenant -standardName 'CloudMessageRecall' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant Message Recall is not set correctly to $state" -sev Info + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 new file mode 100644 index 000000000000..acdb5f3757f6 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 @@ -0,0 +1,125 @@ +function Invoke-CIPPStandardConditionalAccessTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) ConditionalAccessTemplate + .SYNOPSIS + (Label) Conditional Access Template + .DESCRIPTION + (Helptext) Manage conditional access policies for better security. + (DocsDescription) Manage conditional access policies for better security. + .NOTES + CAT + Templates + MULTIPLE + True + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + IMPACT + High Impact + ADDEDDATE + 2023-12-30 + EXECUTIVETEXT + Deploys standardized conditional access policies that automatically enforce security requirements based on user location, device compliance, and risk factors. These templates ensure consistent security controls across the organization while enabling secure access to business resources. + ADDEDCOMPONENT + {"type":"autoComplete","name":"TemplateList","multiple":false,"label":"Select Conditional Access Template","api":{"url":"/api/ListCATemplates","labelField":"displayName","valueField":"GUID","queryKey":"ListCATemplates","showRefresh":true,"templateView":{"title":"Conditional Access Policy"}}} + {"name":"state","label":"What state should we deploy this template in?","type":"radio","options":[{"value":"donotchange","label":"Do not change state"},{"value":"Enabled","label":"Set to enabled"},{"value":"Disabled","label":"Set to disabled"},{"value":"enabledForReportingButNotEnforced","label":"Set to report only"}]} + {"type":"switch","name":"DisableSD","label":"Disable Security Defaults when deploying policy"} + {"type":"switch","name":"CreateGroups","label":"Create groups if they do not exist"} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'ConditionalAccess' + $Table = Get-CippTable -tablename 'templates' + $TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_general' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + $TestP2 = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_p2' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM_P2') -SkipLog + if ($TestResult -eq $false) { + #writing to each item that the license is not present. + $settings.TemplateList | ForEach-Object { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($_.value)" -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $AllCAPolicies = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $Tenant -asApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ConditionalAccessTemplate state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + foreach ($Setting in $Settings) { + try { + $Filter = "PartitionKey eq 'CATemplate' and RowKey eq '$($Setting.TemplateList.value)'" + $JSONObj = (Get-CippAzDataTableEntity @Table -Filter $Filter).JSON + $Policy = $JSONObj | ConvertFrom-Json + if ($Policy.conditions.userRiskLevels.count -gt 0 -or $Policy.conditions.signInRiskLevels.count -gt 0) { + if (!$TestP2) { + Write-Information "Skipping policy $($Policy.displayName) as it requires AAD Premium P2 license." + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Policy.displayName) requires AAD Premium P2 license." -Tenant $Tenant + continue + } + } + $NewCAPolicy = @{ + replacePattern = 'displayName' + TenantFilter = $Tenant + state = $Setting.state + RawJSON = $JSONObj + Overwrite = $true + APIName = 'Standards' + Headers = $Request.Headers + DisableSD = $Setting.DisableSD + CreateGroups = $Setting.CreateGroups ?? $false + } + + $null = New-CIPPCAPolicy @NewCAPolicy + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update conditional access rule $($JSONObj.displayName). Error: $ErrorMessage" -sev 'Error' + } + } + } + if ($Settings.report -eq $true -or $Settings.remediate -eq $true) { + $Filter = "PartitionKey eq 'CATemplate'" + $Policies = (Get-CippAzDataTableEntity @Table -Filter $Filter | Where-Object RowKey -In $Settings.TemplateList.value).JSON | ConvertFrom-Json -Depth 10 + $AllCAPolicies = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $Tenant -asApp $true + #check if all groups.displayName are in the existingGroups, if not $fieldvalue should contain all missing groups, else it should be true. + $MissingPolicies = foreach ($Setting in $Settings.TemplateList) { + $policy = $Policies | Where-Object { $_.displayName -eq $Setting.label } + $CheckExististing = $AllCAPolicies | Where-Object -Property displayName -EQ $Setting.label + if (!$CheckExististing) { + if ($Setting.conditions.userRiskLevels.Count -gt 0 -or $Setting.conditions.signInRiskLevels.Count -gt 0) { + if (!$TestP2) { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) requires AAD Premium P2 license." -Tenant $Tenant + } else { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) is missing from this tenant." -Tenant $Tenant + } + } else { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) is missing from this tenant." -Tenant $Tenant + } + } else { + $templateResult = New-CIPPCATemplate -TenantFilter $tenant -JSON $CheckExististing + $CompareObj = ConvertFrom-Json -ErrorAction SilentlyContinue -InputObject $templateResult + try { + $Compare = Compare-CIPPIntuneObject -ReferenceObject $policy -DifferenceObject $CompareObj + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error comparing CA policy: $($_.Exception.Message)" -sev Error + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Error comparing policy: $($_.Exception.Message)" -Tenant $Tenant + continue + } + if (!$Compare) { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue $true -Tenant $Tenant + } else { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue $Compare -Tenant $Tenant + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 new file mode 100644 index 000000000000..1eb6f3370fcd --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 @@ -0,0 +1,245 @@ +function Invoke-CIPPStandardCustomBannedPasswordList { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) CustomBannedPasswordList + .SYNOPSIS + (Label) Set Entra ID Custom Banned Password List + .DESCRIPTION + (Helptext) **Requires Entra ID P1.** Updates and enables the Entra ID custom banned password list with the supplied words. Enter words separated by commas or semicolons. Each word must be 4-16 characters long. Maximum 1,000 words allowed. + (DocsDescription) Updates and enables the Entra ID custom banned password list with the supplied words. This supplements the global banned password list maintained by Microsoft. The custom list is limited to 1,000 key base terms of 4-16 characters each. Entra ID will [block variations and common substitutions](https://learn.microsoft.com/en-us/entra/identity/authentication/tutorial-configure-custom-password-protection#configure-custom-banned-passwords) of these words in user passwords. [How are passwords evaluated?](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-password-ban-bad#score-calculation) + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (5.2.3.2)" + ADDEDCOMPONENT + {"type":"textField","name":"standards.CustomBannedPasswordList.BannedWords","label":"Banned Words","placeholder":"Banned words separated by commas or semicolons","required":true} + IMPACT + Medium Impact + ADDEDDATE + 2025-06-28 + POWERSHELLEQUIVALENT + Get-MgBetaDirectorySetting, New-MgBetaDirectorySetting, Update-MgBetaDirectorySetting + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + Write-Host "All params received: $Tenant, $tenant, $($Settings | ConvertTo-Json -Depth 10 -Compress)" + $PasswordRuleTemplateId = '5cf42378-d67d-4f36-ba46-e8b86229381d' + # Parse and validate banned words from input + $BannedWordsInput = $Settings.BannedWords + if ([string]::IsNullOrWhiteSpace($BannedWordsInput)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'CustomBannedPasswordList: No banned words provided' -sev Error + return + } + + # Split input by commas, newlines, or semicolons and clean up + $BannedWordsList = $BannedWordsInput -split '[,;\r\n]+' | ForEach-Object { ($_.Trim()) } | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique + + # Validate word count + if ($BannedWordsList.Count -gt 1000) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "CustomBannedPasswordList: Too many banned words provided ($($BannedWordsList.Count)). Maximum allowed is 1000." -sev Error + return + } + + # Validate word length (4-16 characters), remove duplicates and invalid words + $ValidBannedWordsList = [System.Collections.Generic.List[string]]::new() + $InvalidWords = [System.Collections.Generic.List[string]]::new() + + foreach ($Word in $BannedWordsList) { + if ($Word.Length -ge 4 -and $Word.Length -le 16) { + $ValidBannedWordsList.Add($Word) + } else { + $InvalidWords.Add($Word) + } + } + $BannedWordsList = $ValidBannedWordsList | Select-Object -Unique + + # Alert if invalid words are found + if ($InvalidWords.Count -gt 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "CustomBannedPasswordList: Invalid words found in input (must be 4-16 characters). Please remove the following words: $($InvalidWords -join ', ')" -sev Warning + } + + # Get existing directory settings for password rules + try { + $ExistingSettings = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/settings' -tenantid $Tenant | Where-Object { $_.templateId -eq $PasswordRuleTemplateId } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to get existing Custom Banned Password List: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate Custom Banned Password List' + + if ($null -eq $ExistingSettings) { + Write-Host 'No existing Custom Banned Password List found, creating new one' + # Create new directory setting with default values if it doesn't exist + try { + $Body = @{ + templateId = $PasswordRuleTemplateId + values = @( + @{ + name = 'EnableBannedPasswordCheck' + value = 'True' + } + @{ + name = 'BannedPasswordList' + value = $BannedWordsList -join ([char]9) + } + @{ + name = 'LockoutDurationInSeconds' + value = '60' + } + @{ + name = 'LockoutThreshold' + value = '10' + } + @{ + name = 'EnableBannedPasswordCheckOnPremises' + value = 'False' + } + @{ + name = 'BannedPasswordCheckOnPremisesMode' + value = 'Audit' + } + ) + } + $JsonBody = ConvertTo-Json -Depth 10 -InputObject $Body -Compress + + $ExistingSettings = New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/settings' -Type POST -Body $JsonBody + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Custom Banned Password List created with $($BannedWordsList.Count) words." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Custom Banned Password List: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-Host 'Existing Custom Banned Password List found, updating it' + # Update existing directory setting + try { + # Get the current passwords and check if all the new words are already in the list + $CurrentBannedWords = $ExistingSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' } + $CurrentBannedWords = $CurrentBannedWords.value -split ([char]9) + + # Check if the new words are already in the list + $NewBannedWords = $BannedWordsList | Where-Object { $CurrentBannedWords -notcontains $_ } + if ($NewBannedWords.Count -eq 0 -and ($ExistingSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' }).value -eq 'True') { + Write-Host 'No new words to add' + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Custom Banned Password List is already configured with $($CurrentBannedWords.Count) words." -sev Info + } else { + Write-Host "$($NewBannedWords.Count) new words to add" + $AllBannedWords = [System.Collections.Generic.List[string]]::new() + $NewBannedWords | ForEach-Object { $AllBannedWords.Add($_) } + $CurrentBannedWords | ForEach-Object { $AllBannedWords.Add($_) } + $AllBannedWords = $AllBannedWords | Select-Object -Unique -First 1000 | Where-Object { $_ -ne $null } + + $Body = @{ + values = @( + @{ + name = 'EnableBannedPasswordCheck' + value = 'True' + } + @{ + name = 'BannedPasswordList' + value = $AllBannedWords -join ([char]9) + } + @{ + name = 'LockoutDurationInSeconds' + value = ($ExistingSettings.values | Where-Object { $_.name -eq 'LockoutDurationInSeconds' }).value + } + @{ + name = 'LockoutThreshold' + value = ($ExistingSettings.values | Where-Object { $_.name -eq 'LockoutThreshold' }).value + } + @{ + name = 'EnableBannedPasswordCheckOnPremises' + value = ($ExistingSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheckOnPremises' }).value + } + @{ + name = 'BannedPasswordCheckOnPremisesMode' + value = ($ExistingSettings.values | Where-Object { $_.name -eq 'BannedPasswordCheckOnPremisesMode' }).value + } + ) + } + + $JsonBody = ConvertTo-Json -Depth 10 -InputObject $Body -Compress + $null = New-GraphPostRequest -tenantid $Tenant -Uri "https://graph.microsoft.com/beta/settings/$($ExistingSettings.id)" -Type PATCH -Body $JsonBody + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Custom Banned Password List updated with $($NewBannedWords.Count) new words." -sev Info + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Custom Banned Password List: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($null -eq $ExistingSettings) { + Write-StandardsAlert -message 'Custom Banned Password List is not configured' -object @{Status = 'Not Configured'; WordCount = 0 } -tenant $tenant -standardName 'CustomBannedPasswordList' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Custom Banned Password List is not configured' -sev Info + } else { + $BannedPasswordCheckEnabled = $ExistingSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' } + $CurrentBannedWords = $ExistingSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' } + $CurrentBannedWords = if ($CurrentBannedWords.value) { ($CurrentBannedWords.value -split ([char]9)) } else { @() } + + # Find missing words from input + $MissingInputWords = $BannedWordsList | Where-Object { $CurrentBannedWords -notcontains $_ } + + if ($MissingInputWords.Count -gt 0) { + Write-StandardsAlert -message "Custom Banned Password List is missing $($MissingInputWords.Count) input words: $($MissingInputWords -join ', ')" -object @{Status = 'Configured but Missing Input Words'; MissingWords = $MissingInputWords; Enabled = $BannedPasswordCheckEnabled.value } -tenant $tenant -standardName 'CustomBannedPasswordList' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Custom Banned Password List is missing $($MissingInputWords.Count) input words: $($MissingInputWords -join ', ')" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Custom Banned Password List contains all input words ($($BannedWordsList.Count))." -sev Info + } + } + } + + if ($Settings.report -eq $true) { + $ExpectedValue = @{ + Status = 'Configured' + Enabled = $true + WordCount = $BannedWordsList.Count + Compliant = $true + MissingInputWords = @() + } + + if ($null -eq $ExistingSettings) { + $BannedPasswordState = @{ + Status = 'Not Configured' + Enabled = $false + WordCount = 0 + Compliant = $false + MissingInputWords = $BannedWordsList + } + } else { + $BannedPasswordCheckEnabled = $ExistingSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' } + $CurrentBannedWords = $ExistingSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' } + $CurrentBannedWords = if ($CurrentBannedWords.value) { ($CurrentBannedWords.value -split ([char]9)) } else { @() } + $CurrentWordCount = $CurrentBannedWords.Count + + # Find missing words from input + $MissingInputWords = $BannedWordsList | Where-Object { $CurrentBannedWords -notcontains $_ } + + $BannedPasswordState = @{ + Status = 'Configured' + Enabled = $BannedPasswordCheckEnabled.value -eq 'True' + WordCount = $CurrentWordCount + Compliant = ($BannedPasswordCheckEnabled.value -eq 'True' -and $MissingInputWords.Count -eq 0) + MissingInputWords = $MissingInputWords + } + } + + Add-CIPPBPAField -FieldName 'CustomBannedPasswordList' -CurrentValue $BannedPasswordState -ExpectedValue $ExpectedValue -StoreAs json -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.CustomBannedPasswordList' -FieldValue $BannedPasswordState.Compliant -Tenant $tenant + } + + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 new file mode 100644 index 000000000000..23945c2b628b --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 @@ -0,0 +1,160 @@ +function Invoke-CIPPStandardDefaultPlatformRestrictions { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DefaultPlatformRestrictions + .SYNOPSIS + (Label) Device enrollment restrictions + .DESCRIPTION + (Helptext) Sets the default platform restrictions for enrolling devices into Intune. Note: Do not block personally owned if platform is blocked. + (DocsDescription) Sets the default platform restrictions for enrolling devices into Intune. Note: Do not block personally owned if platform is blocked. + .NOTES + CAT + Intune Standards + TAG + "CISA (MS.AAD.19.1v1)" + EXECUTIVETEXT + Controls which types of devices (iOS, Android, Windows, macOS) and ownership models (corporate vs. personal) can be enrolled in the company's device management system. This helps maintain security standards while supporting necessary business device types and usage scenarios. + ADDEDCOMPONENT + {"type":"switch","name":"standards.DefaultPlatformRestrictions.platformAndroidForWorkBlocked","label":"Block platform Android Enterprise (work profile)","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.personalAndroidForWorkBlocked","label":"Block personally owned Android Enterprise (work profile)","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.platformAndroidBlocked","label":"Block platform Android","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.personalAndroidBlocked","label":"Block personally owned Android","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.platformiOSBlocked","label":"Block platform iOS","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.personaliOSBlocked","label":"Block personally owned iOS","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.platformMacOSBlocked","label":"Block platform macOS","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.personalMacOSBlocked","label":"Block personally owned macOS","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.platformWindowsBlocked","label":"Block platform Windows","default":false} + {"type":"switch","name":"standards.DefaultPlatformRestrictions.personalWindowsBlocked","label":"Block personally owned Windows","default":false} + IMPACT + Low Impact + ADDEDDATE + 2025-04-01 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DefaultPlatformRestrictions' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments&orderBy=priority&`$filter=deviceEnrollmentConfigurationType eq 'SinglePlatformRestriction'" -tenantID $Tenant -AsApp $true | + Select-Object -Property id, androidForWorkRestriction, androidRestriction, iosRestriction, macOSRestriction, windowsRestriction + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DefaultPlatformRestrictions state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.androidForWorkRestriction.platformBlocked -eq $Settings.platformAndroidForWorkBlocked) -and + ($CurrentState.androidForWorkRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalAndroidForWorkBlocked) -and + ($CurrentState.androidRestriction.platformBlocked -eq $Settings.platformAndroidBlocked) -and + ($CurrentState.androidRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalAndroidBlocked) -and + ($CurrentState.iosRestriction.platformBlocked -eq $Settings.platformiOSBlocked) -and + ($CurrentState.iosRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personaliOSBlocked) -and + ($CurrentState.macOSRestriction.platformBlocked -eq $Settings.platformMacOSBlocked) -and + ($CurrentState.macOSRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalMacOSBlocked) -and + ($CurrentState.windowsRestriction.platformBlocked -eq $Settings.platformWindowsBlocked) -and + ($CurrentState.windowsRestriction.personalDeviceEnrollmentBlocked -eq $Settings.personalWindowsBlocked) + + $CompareField = [PSCustomObject]@{ + platformAndroidForWorkBlocked = $CurrentState.androidForWorkRestriction.platformBlocked + personalAndroidForWorkBlocked = $CurrentState.androidForWorkRestriction.personalDeviceEnrollmentBlocked + platformAndroidBlocked = $CurrentState.androidRestriction.platformBlocked + personalAndroidBlocked = $CurrentState.androidRestriction.personalDeviceEnrollmentBlocked + platformiOSBlocked = $CurrentState.iosRestriction.platformBlocked + personaliOSBlocked = $CurrentState.iosRestriction.personalDeviceEnrollmentBlocked + platformMacOSBlocked = $CurrentState.macOSRestriction.platformBlocked + personalMacOSBlocked = $CurrentState.macOSRestriction.personalDeviceEnrollmentBlocked + platformWindowsBlocked = $CurrentState.windowsRestriction.platformBlocked + personalWindowsBlocked = $CurrentState.windowsRestriction.personalDeviceEnrollmentBlocked + } + + $ExpectedValue = [PSCustomObject]@{ + platformAndroidForWorkBlocked = $Settings.platformAndroidForWorkBlocked + personalAndroidForWorkBlocked = $Settings.personalAndroidForWorkBlocked + platformAndroidBlocked = $Settings.platformAndroidBlocked + personalAndroidBlocked = $Settings.personalAndroidBlocked + platformiOSBlocked = $Settings.platformiOSBlocked + personaliOSBlocked = $Settings.personaliOSBlocked + platformMacOSBlocked = $Settings.platformMacOSBlocked + personalMacOSBlocked = $Settings.personalMacOSBlocked + platformWindowsBlocked = $Settings.platformWindowsBlocked + personalWindowsBlocked = $Settings.personalWindowsBlocked + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'DefaultPlatformRestrictions is already applied correctly.' -Sev Info + } else { + $cmdParam = @{ + tenantid = $Tenant + uri = "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations/$($CurrentState.id)" + AsApp = $false + Type = 'PATCH' + ContentType = 'application/json; charset=utf-8' + Body = [PSCustomObject]@{ + '@odata.type' = '#microsoft.graph.deviceEnrollmentPlatformRestrictionsConfiguration' + androidForWorkRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' + platformBlocked = $Settings.platformAndroidForWorkBlocked + personalDeviceEnrollmentBlocked = $Settings.personalAndroidForWorkBlocked + } + androidRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' + platformBlocked = $Settings.platformAndroidBlocked + personalDeviceEnrollmentBlocked = $Settings.personalAndroidBlocked + } + iosRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' + platformBlocked = $Settings.platformiOSBlocked + personalDeviceEnrollmentBlocked = $Settings.personaliOSBlocked + } + macOSRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' + platformBlocked = $Settings.platformMacOSBlocked + personalDeviceEnrollmentBlocked = $Settings.personalMacOSBlocked + } + windowsRestriction = [PSCustomObject]@{ + '@odata.type' = 'microsoft.graph.deviceEnrollmentPlatformRestriction' + platformBlocked = $Settings.platformWindowsBlocked + personalDeviceEnrollmentBlocked = $Settings.personalWindowsBlocked + } + } | ConvertTo-Json -Compress -Depth 10 + } + try { + $null = New-GraphPostRequest @cmdParam + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully updated DefaultPlatformRestrictions.' -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to update DefaultPlatformRestrictions. Error: $($ErrorMessage.NormalizedError)" -Sev Error + } + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'DefaultPlatformRestrictions is correctly set.' -Sev Info + } else { + Write-StandardsAlert -message 'DefaultPlatformRestrictions is incorrectly set.' -object $CompareField -tenant $Tenant -standardName 'DefaultPlatformRestrictions' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'DefaultPlatformRestrictions is incorrectly set.' -Sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.DefaultPlatformRestrictions' -CurrentValue $CompareField -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DefaultPlatformRestrictions' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 new file mode 100644 index 000000000000..d3397e85af50 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 @@ -0,0 +1,140 @@ +function Invoke-CIPPStandardDefaultSharingLink { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DefaultSharingLink + .SYNOPSIS + (Label) Set Default Sharing Link Settings + .DESCRIPTION + (Helptext) Configure the SharePoint default sharing link type and permission. This setting controls both the type of sharing link created by default and the permission level assigned to those links. + (DocsDescription) Sets the default sharing link type (Direct or Internal) and permission (View) in SharePoint and OneDrive. Direct sharing means links only work for specific people, while Internal sharing means links work for anyone in the organization. Setting the view permission as the default ensures that users must deliberately select the edit permission when sharing a link, reducing the risk of unintentionally granting edit privileges. + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.2.7)" + "CIS M365 5.0 (7.2.11)" + "CISA (MS.SPO.1.4v1)" + EXECUTIVETEXT + Configures SharePoint default sharing links to implement the principle of least privilege for document sharing. This security measure reduces the risk of accidental data modification while maintaining collaboration functionality, requiring users to explicitly select Edit permissions when necessary. The sharing type setting controls whether links are restricted to specific recipients or available to the entire organization. This reduces the risk of accidental data exposure through link sharing. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"required":true,"label":"Default Sharing Link Type","name":"standards.DefaultSharingLink.SharingLinkType","options":[{"label":"Direct - Only the people the user specifies","value":"Direct"},{"label":"Internal - Only people in your organization","value":"Internal"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-06-13 + POWERSHELLEQUIVALENT + Set-SPOTenant -DefaultSharingLinkType [Direct\|Internal] -DefaultLinkPermission View + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DefaultSharingLink' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + # Determine the desired sharing link type (default to Internal if not specified) + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + $DesiredSharingLinkType = $Settings.SharingLinkType.value ?? 'Internal' + + # Map the string values to numeric values for SharePoint + $SharingLinkTypeMap = @{ + 'Direct' = 1 + 'Internal' = 2 + 'Anyone' = 3 + } + $DesiredSharingLinkTypeValue = $SharingLinkTypeMap[$DesiredSharingLinkType] + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, DefaultSharingLinkType, DefaultLinkPermission + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DefaultSharingLink state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CurrentValue = [PSCustomObject]@{ + DefaultSharingLinkType = switch ($CurrentState.DefaultSharingLinkType) { + 1 { 'Direct' } + 2 { 'Internal' } + 3 { 'Anyone' } + default { 'Unknown' } + } + DefaultLinkPermission = switch ($CurrentState.DefaultLinkPermission) { + 0 { 'Edit' } + 1 { 'View' } + 2 { 'Edit' } + default { 'Unknown' } + } + } + $ExpectedValue = [PSCustomObject]@{ + DefaultSharingLinkType = $DesiredSharingLinkType + DefaultLinkPermission = 'View' + } + + # Check if the current state matches the desired configuration + $StateIsCorrect = ($CurrentState.DefaultSharingLinkType -eq $DesiredSharingLinkTypeValue) -and ($CurrentState.DefaultLinkPermission -eq 1) + Write-Host "currentstate: $($CurrentState.DefaultSharingLinkType), $($CurrentState.DefaultLinkPermission). Desired: $DesiredSharingLinkTypeValue, 1" + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Default sharing link settings are already configured correctly (Type: $DesiredSharingLinkType, Permission: View)" -Sev Info + } else { + $Properties = @{ + DefaultSharingLinkType = $DesiredSharingLinkTypeValue + DefaultLinkPermission = 1 # View + } + + try { + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Successfully set default sharing link settings (Type: $DesiredSharingLinkType, Permission: View)" -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set default sharing link settings. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Default sharing link settings are configured correctly (Type: $DesiredSharingLinkType, Permission: View)" -Sev Info + } else { + # Determine current values for alert message + $CurrentSharingType = switch ($CurrentState.DefaultSharingLinkType) { + 1 { 'Direct' } + 2 { 'Internal' } + 3 { 'Anyone' } + default { 'Unknown' } + } + $CurrentPermission = switch ($CurrentState.DefaultLinkPermission) { + 0 { 'Edit' } + 1 { 'View' } + 2 { 'Edit' } + default { 'Unknown' } + } + + $Message = "Default sharing link settings are not configured correctly. Current: Type=$CurrentSharingType, Permission=$CurrentPermission. Expected: Type=$DesiredSharingLinkType, Permission=View" + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'DefaultSharingLink' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -Sev Alert + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'DefaultSharingLink' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + if ($StateIsCorrect) { + $FieldValue = $true + } else { + $FieldValue = $CurrentState + } + Set-CIPPStandardsCompareField -FieldName 'standards.DefaultSharingLink' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 new file mode 100644 index 000000000000..ac95dcd2b1fd --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 @@ -0,0 +1,111 @@ +function Invoke-CIPPStandardDelegateSentItems { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DelegateSentItems + .SYNOPSIS + (Label) Set mailbox Sent Items delegation (Sent items for shared mailboxes) + .DESCRIPTION + (Helptext) Sets emails sent as and on behalf of shared mailboxes to also be stored in the shared mailbox sent items folder + (DocsDescription) This makes sure that e-mails sent from shared mailboxes or delegate mailboxes, end up in the mailbox of the shared/delegate mailbox instead of the sender, allowing you to keep replies in the same mailbox as the original e-mail. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Ensures emails sent from shared mailboxes (like info@company.com) are stored in the shared mailbox rather than the individual sender's mailbox. This maintains complete email threads in one location, improving collaboration and ensuring all team members can see the full conversation history. + ADDEDCOMPONENT + {"type":"switch","label":"Include user mailboxes","name":"standards.DelegateSentItems.IncludeUserMailboxes"} + IMPACT + Medium Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Set-Mailbox + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DelegateSentItems' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + #$Rerun -Type Standard -Tenant $Tenant -API 'DelegateSentItems' -Settings $Settings + + + # Backwards compatibility for Pre 7.0.5 + if ([string]::IsNullOrWhiteSpace($Settings.IncludeUserMailboxes)) { + $Settings.IncludeUserMailboxes = $true + } + + if ($Settings.IncludeUserMailboxes -eq $true) { + $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ RecipientTypeDetails = @('UserMailbox', 'SharedMailbox') } -Select 'Identity,UserPrincipalName,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled' | + Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $false -or $_.MessageCopyForSentAsEnabled -eq $false } + } else { + $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ RecipientTypeDetails = @('SharedMailbox') } -Select 'Identity,UserPrincipalName,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled' | + Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $false -or $_.MessageCopyForSentAsEnabled -eq $false } + } + + $CurrentValue = if (!$Mailboxes) { + [PSCustomObject]@{ state = 'Configured correctly' } + } else { + [PSCustomObject]@{ NonCompliantMailboxes = $Mailboxes | Select-Object -Property UserPrincipalName, MessageCopyForSendOnBehalfEnabled, MessageCopyForSentAsEnabled } + } + $ExpectedValue = [PSCustomObject]@{ + state = 'Configured correctly' + } + + Write-Host "Mailboxes: $($Mailboxes.Count)" + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($Mailboxes) { + try { + $Request = $Mailboxes | ForEach-Object { + @{ + CmdletInput = @{ + CmdletName = 'Set-Mailbox' + Parameters = @{Identity = $_.UserPrincipalName ; MessageCopyForSendOnBehalfEnabled = $true; MessageCopyForSentAsEnabled = $true } + } + } + } + $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($Request) + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorMessage = Get-CippException -Exception $_.error + Write-Host "Failed to apply Delegate Sent Items Style to $($_.target) Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply Delegate Sent Items Style to $($_.error.target) Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Delegate Sent Items Style applied for $($Mailboxes.Count - $BatchResults.Error.Count) mailboxes" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply Delegate Sent Items Style. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Delegate Sent Items Style already enabled.' -sev Info + + } + } + if ($Settings.alert -eq $true) { + if ($null -eq $Mailboxes) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Delegate Sent Items Style is enabled for all mailboxes' -sev Info + } else { + Write-StandardsAlert -message "Delegate Sent Items Style is not enabled for $($Mailboxes.Count) mailboxes" -object $Mailboxes -tenant $Tenant -standardName 'DelegateSentItems' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Delegate Sent Items Style is not enabled for $($Mailboxes.Count) mailboxes" -sev Info + } + } + + if ($Settings.report -eq $true) { + $Filtered = $Mailboxes | Select-Object -Property UserPrincipalName, MessageCopyForSendOnBehalfEnabled, MessageCopyForSentAsEnabled + Set-CIPPStandardsCompareField -FieldName 'standards.DelegateSentItems' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DelegateSentItems' -FieldValue $Filtered -StoreAs json -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 new file mode 100644 index 000000000000..ccb08c900fe3 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 @@ -0,0 +1,109 @@ +function Invoke-CIPPStandardDeletedUserRentention { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DeletedUserRentention + .SYNOPSIS + (Label) Set deleted user retention time in OneDrive + .DESCRIPTION + (Helptext) Sets the retention period for deleted users OneDrive to the specified period of time. The default is 30 days. + (DocsDescription) When a OneDrive user gets deleted, the personal SharePoint site is saved for selected amount of time that data can be retrieved from it. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Preserves departed employees' OneDrive files for a specified period, allowing time to recover important business documents before permanent deletion. This helps prevent data loss while managing storage costs and maintaining compliance with data retention policies. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"name":"standards.DeletedUserRentention.Days","label":"Retention time (Default 30 days)","options":[{"label":"30 days","value":"30"},{"label":"90 days","value":"90"},{"label":"1 year","value":"365"},{"label":"2 years","value":"730"},{"label":"3 years","value":"1095"},{"label":"4 years","value":"1460"},{"label":"5 years","value":"1825"},{"label":"6 years","value":"2190"},{"label":"7 years","value":"2555"},{"label":"8 years","value":"2920"},{"label":"9 years","value":"3285"},{"label":"10 years","value":"3650"}]} + IMPACT + Low Impact + ADDEDDATE + 2022-06-15 + POWERSHELLEQUIVALENT + Update-MgBetaAdminSharePointSetting + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DeletedUserRentention' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DeletedUserRetention' + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DeletedUserRetention state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $Days = $Settings.Days.value ?? $Settings.Days + + $ExpectedValue = [PSCustomObject]@{ + DeletedUserRententionDays = [int]$Days + } + $CurrentValue = [PSCustomObject]@{ + DeletedUserRententionDays = $CurrentInfo.deletedUserPersonalSiteRetentionPeriodInDays + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.DeletedUserRentention' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DeletedUserRentention' -FieldValue $CurrentInfo.deletedUserPersonalSiteRetentionPeriodInDays -StoreAs string -Tenant $Tenant + } + + # Get days value using null-coalescing operator + + # Input validation + if (($Days -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'DeletedUserRentention: Invalid Days parameter set' -sev Error + return + } + + # Backwards compatibility for v5.9.4 and back + if ([string]::IsNullOrWhiteSpace($Days)) { + $WantedState = 365 + } else { + $WantedState = [int]$Days + } + + $StateSetCorrectly = if ($CurrentInfo.deletedUserPersonalSiteRetentionPeriodInDays -eq $WantedState) { $true } else { $false } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($StateSetCorrectly -eq $false) { + try { + $body = [PSCustomObject]@{ + deletedUserPersonalSiteRetentionPeriodInDays = $Days + } + $body = ConvertTo-Json -InputObject $body -Depth 5 -Compress + $null = New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type PATCH -Body $body -ContentType 'application/json' + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set deleted user retention of OneDrive to $WantedState day(s)" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set deleted user retention of OneDrive to $WantedState day(s). Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Deleted user retention of OneDrive is already set to $WantedState day(s)" -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($StateSetCorrectly -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Deleted user retention of OneDrive is set to $WantedState day(s)" -sev Info + } else { + Write-StandardsAlert -message "Deleted user retention of OneDrive is not set to $WantedState day(s)." -object $CurrentInfo -tenant $Tenant -standardName 'DeletedUserRentention' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Deleted user retention of OneDrive is not set to $WantedState day(s). Current value is: $($CurrentInfo.deletedUserPersonalSiteRetentionPeriodInDays) day(s)." -sev Info + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 new file mode 100644 index 000000000000..921fe6d5db0f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 @@ -0,0 +1,246 @@ +function Invoke-CIPPStandardDeployCheckChromeExtension { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DeployCheckChromeExtension + .SYNOPSIS + (Label) Deploy Check Chrome Extension + .DESCRIPTION + (Helptext) Deploys the Check Chrome extension via Intune OMA-URI custom policies for both Chrome and Edge browsers with configurable settings. Chrome ID: benimdeioplgkhanklclahllklceahbe, Edge ID: knepjpocdagponkonnbggpcnhnaikajg + (DocsDescription) Creates Intune OMA-URI custom policies that automatically install and configure the Check Chrome extension on managed devices for both Google Chrome and Microsoft Edge browsers. This ensures the extension is deployed consistently across all corporate devices with customizable settings. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Automatically deploys the Check browser extension across all company devices with configurable security and branding settings, ensuring consistent security monitoring and compliance capabilities. This extension provides enhanced security features and monitoring tools that help protect against threats while maintaining user productivity. + ADDEDCOMPONENT + {"type":"switch","name":"standards.DeployCheckChromeExtension.enableValidPageBadge","label":"Enable valid page badge","defaultValue":true} + {"type":"switch","name":"standards.DeployCheckChromeExtension.enablePageBlocking","label":"Enable page blocking","defaultValue":true} + {"type":"switch","name":"standards.DeployCheckChromeExtension.enableCippReporting","label":"Enable CIPP reporting","defaultValue":true} + {"type":"textField","name":"standards.DeployCheckChromeExtension.cippServerUrl","label":"CIPP Server URL","placeholder":"https://YOUR-CIPP-SERVER-URL","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.customRulesUrl","label":"Custom Rules URL","placeholder":"https://YOUR-CIPP-SERVER-URL/rules.json","required":false} + {"type":"number","name":"standards.DeployCheckChromeExtension.updateInterval","label":"Update interval (hours)","defaultValue":12} + {"type":"switch","name":"standards.DeployCheckChromeExtension.enableDebugLogging","label":"Enable debug logging","defaultValue":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.companyName","label":"Company Name","placeholder":"YOUR-COMPANY","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.productName","label":"Product Name","placeholder":"YOUR-PRODUCT-NAME","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.supportEmail","label":"Support Email","placeholder":"support@yourcompany.com","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.primaryColor","label":"Primary Color","placeholder":"#0044CC","required":false} + {"type":"textField","name":"standards.DeployCheckChromeExtension.logoUrl","label":"Logo URL","placeholder":"https://yourcompany.com/logo.png","required":false} + {"name":"AssignTo","label":"Who should this policy be assigned to?","type":"radio","options":[{"label":"Do not assign","value":"On"},{"label":"Assign to all users","value":"allLicensedUsers"},{"label":"Assign to all devices","value":"AllDevices"},{"label":"Assign to all users and devices","value":"AllDevicesAndUsers"},{"label":"Assign to Custom Group","value":"customGroup"}]} + {"type":"textField","required":false,"name":"customGroup","label":"Enter the custom group name if you selected 'Assign to Custom Group'. Wildcards are allowed."} + IMPACT + Low Impact + ADDEDDATE + 2025-09-18 + POWERSHELLEQUIVALENT + New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/configurationPolicies' + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + # Check for required Intune license + $TestResult = Test-CIPPStandardLicense -StandardName 'DeployCheckChromeExtension' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Set-CIPPStandardsCompareField -FieldName 'standards.DeployCheckChromeExtension' -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'This tenant does not have the required license for this standard.' -sev Error + return $true + } + + Write-Information "Running Deploy Check Chrome Extension standard for tenant $($Tenant)." + + # Chrome and Edge extension IDs for the Check extension + $ChromeExtensionId = 'benimdeioplgkhanklclahllklceahbe' + $EdgeExtensionId = 'knepjpocdagponkonnbggpcnhnaikajg' + + # Policy names + $ChromePolicyName = 'Deploy Check Chrome Extension (Chrome)' + $EdgePolicyName = 'Deploy Check Chrome Extension (Edge)' + + # CIPP Url + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPURL = 'https://{0}' -f $CippConfig.Value + + # Get configuration values with defaults + $ShowNotifications = $Settings.showNotifications ?? $true + $EnableValidPageBadge = $Settings.enableValidPageBadge ?? $true + $EnablePageBlocking = $Settings.enablePageBlocking ?? $true + $EnableCippReporting = $Settings.enableCippReporting ?? $true + $CippServerUrl = $CIPPURL + $CippTenantId = $Tenant + $CustomRulesUrl = $Settings.customRulesUrl + $UpdateInterval = $Settings.updateInterval ?? 24 + $EnableDebugLogging = $Settings.enableDebugLogging ?? $false + $CompanyName = $Settings.companyName + $ProductName = $Settings.productName + $SupportEmail = $Settings.supportEmail + $PrimaryColor = $Settings.primaryColor ?? '#F77F00' + $LogoUrl = $Settings.logoUrl + + # Create extension settings JSON + $ChromeExtensionSettings = @{ + $ChromeExtensionId = @{ + installation_mode = 'force_installed' + update_url = 'https://clients2.google.com/service/update2/crx' + settings = @{ + showNotifications = $ShowNotifications + enableValidPageBadge = $EnableValidPageBadge + enablePageBlocking = $EnablePageBlocking + enableCippReporting = $EnableCippReporting + cippServerUrl = $CippServerUrl + cippTenantId = $CippTenantId + customRulesUrl = $CustomRulesUrl + updateInterval = $UpdateInterval + enableDebugLogging = $EnableDebugLogging + customBranding = @{ + companyName = $CompanyName + productName = $ProductName + supportEmail = $SupportEmail + primaryColor = $PrimaryColor + logoUrl = $LogoUrl + } + } + } + } | ConvertTo-Json -Depth 10 + + $EdgeExtensionSettings = @{ + $EdgeExtensionId = @{ + installation_mode = 'force_installed' + update_url = 'https://edge.microsoft.com/extensionwebstorebase/v1/crx' + settings = @{ + showNotifications = $ShowNotifications + enableValidPageBadge = $EnableValidPageBadge + enablePageBlocking = $EnablePageBlocking + enableCippReporting = $EnableCippReporting + cippServerUrl = $CippServerUrl + cippTenantId = $CippTenantId + customRulesUrl = $CustomRulesUrl + updateInterval = $UpdateInterval + enableDebugLogging = $EnableDebugLogging + customBranding = @{ + companyName = $CompanyName + productName = $ProductName + supportEmail = $SupportEmail + primaryColor = $PrimaryColor + logoUrl = $LogoUrl + } + } + } + } | ConvertTo-Json -Depth 10 + + # Create Chrome OMA-URI policy JSON + $ChromePolicyJSON = @{ + '@odata.type' = '#microsoft.graph.windows10CustomConfiguration' + displayName = $ChromePolicyName + description = 'Deploys and configures the Check Chrome extension for Google Chrome browsers' + omaSettings = @( + @{ + '@odata.type' = '#microsoft.graph.omaSettingString' + displayName = 'Chrome Extension Settings' + description = 'Configure Check Chrome extension settings' + omaUri = './Device/Vendor/MSFT/Policy/Config/Chrome~Policy~googlechrome/ExtensionSettings' + value = $ChromeExtensionSettings + } + ) + } | ConvertTo-Json -Depth 20 + + # Create Edge OMA-URI policy JSON + $EdgePolicyJSON = @{ + '@odata.type' = '#microsoft.graph.windows10CustomConfiguration' + displayName = $EdgePolicyName + description = 'Deploys and configures the Check Chrome extension for Microsoft Edge browsers' + omaSettings = @( + @{ + '@odata.type' = '#microsoft.graph.omaSettingString' + displayName = 'Edge Extension Settings' + description = 'Configure Check Chrome extension settings' + omaUri = './Device/Vendor/MSFT/Policy/Config/Edge/ExtensionSettings' + value = $EdgeExtensionSettings + } + ) + } | ConvertTo-Json -Depth 20 + + try { + # Check if the policies already exist + $ExistingPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations' -tenantid $Tenant + $ChromePolicyExists = $ExistingPolicies.value | Where-Object { $_.displayName -eq $ChromePolicyName } + $EdgePolicyExists = $ExistingPolicies.value | Where-Object { $_.displayName -eq $EdgePolicyName } + + if ($Settings.remediate -eq $true) { + # Handle assignment configuration + $AssignTo = $Settings.AssignTo ?? 'AllDevices' + $ExcludeGroup = $Settings.ExcludeGroup + + # Handle custom group assignment + if ($Settings.customGroup) { + $AssignTo = $Settings.customGroup + } + + # Deploy Chrome policy + if (-not $ChromePolicyExists) { + $Result = Set-CIPPIntunePolicy -TemplateType 'Device' -Description 'Deploys and configures the Check Chrome extension for Google Chrome browsers' -DisplayName $ChromePolicyName -RawJSON $ChromePolicyJSON -AssignTo $AssignTo -ExcludeGroup $ExcludeGroup -tenantFilter $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully created Check Chrome Extension policy for Chrome: $ChromePolicyName" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Check Chrome Extension policy for Chrome already exists, skipping creation' -sev Info + } + + # Deploy Edge policy + if (-not $EdgePolicyExists) { + $Result = Set-CIPPIntunePolicy -TemplateType 'Device' -Description 'Deploys and configures the Check Chrome extension for Microsoft Edge browsers' -DisplayName $EdgePolicyName -RawJSON $EdgePolicyJSON -AssignTo $AssignTo -ExcludeGroup $ExcludeGroup -tenantFilter $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully created Check Chrome Extension policy for Edge: $EdgePolicyName" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Check Chrome Extension policy for Edge already exists, skipping creation' -sev Info + } + } + + if ($Settings.alert -eq $true) { + $BothPoliciesExist = $ChromePolicyExists -and $EdgePolicyExists + if ($BothPoliciesExist) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Check Chrome Extension policies are deployed for both Chrome and Edge' -sev Info + } else { + $MissingPolicies = @() + if (-not $ChromePolicyExists) { $MissingPolicies += 'Chrome' } + if (-not $EdgePolicyExists) { $MissingPolicies += 'Edge' } + Write-StandardsAlert -message "Check Chrome Extension policies are missing for: $($MissingPolicies -join ', ')" -object @{ 'Missing Policies' = $MissingPolicies -join ',' } -tenant $Tenant -standardName 'DeployCheckChromeExtension' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Check Chrome Extension policies are missing for: $($MissingPolicies -join ', ')" -sev Alert + } + } + + if ($Settings.report -eq $true) { + $StateIsCorrect = $ChromePolicyExists -and $EdgePolicyExists + + $ExpectedValue = [PSCustomObject]@{ + ChromePolicyDeployed = $true + EdgePolicyDeployed = $true + } + $CurrentValue = [PSCustomObject]@{ + ChromePolicyDeployed = $ChromePolicyExists + EdgePolicyDeployed = $EdgePolicyExists + } + Set-CIPPStandardsCompareField -FieldName 'standards.DeployCheckChromeExtension' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DeployCheckChromeExtension' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to deploy Check Chrome Extension policies. Error: $ErrorMessage" -sev Error + + if ($Settings.alert -eq $true) { + Write-StandardsAlert -message "Failed to deploy Check Chrome Extension policies: $ErrorMessage" -object @{ 'Error' = $ErrorMessage } -tenant $Tenant -standardName 'DeployCheckChromeExtension' -standardId $Settings.standardId + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.DeployCheckChromeExtension' -FieldValue @{ 'Error' = $ErrorMessage } -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DeployCheckChromeExtension' -FieldValue $false -StoreAs bool -Tenant $Tenant + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployContactTemplates.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployContactTemplates.ps1 new file mode 100644 index 000000000000..067feb5c567d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployContactTemplates.ps1 @@ -0,0 +1,386 @@ +function Invoke-CIPPStandardDeployContactTemplates { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DeployContactTemplates + .SYNOPSIS + (Label) Deploy Mail Contact Template + .DESCRIPTION + (Helptext) Creates new mail contacts in Exchange Online across all selected tenants based on the selected templates. The contact will be visible in the Global Address List unless hidden. + (DocsDescription) This standard creates new mail contacts in Exchange Online based on the selected templates. Mail contacts are useful for adding external email addresses to your organization's address book. They can be used for distribution lists, shared mailboxes, and other collaboration scenarios. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Deploys standardized external contact templates across all company locations, ensuring consistent communication channels with key external partners, vendors, and stakeholders. This streamlines contact management and maintains uniform business relationships. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":true,"creatable":false,"label":"Select Mail Contact Templates","name":"standards.DeployContactTemplates.templateIds","api":{"url":"/api/ListContactTemplates","labelField":"name","valueField":"GUID","queryKey":"Contact Templates"}} + DISABLEDFEATURES + {"report":false,"warn":false,"remediate":false} + IMPACT + Low Impact + ADDEDDATE + 2025-05-31 + POWERSHELLEQUIVALENT + New-MailContact + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DeployContactTemplates' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $APIName = 'Standards' + + + + # Helper function to get template by GUID + function Get-ContactTemplate($TemplateGUID) { + try { + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ContactTemplate' and RowKey eq '$TemplateGUID'" + $StoredTemplate = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (-not $StoredTemplate) { + Write-LogMessage -API $APIName -tenant $Tenant -message "Contact template with GUID $TemplateGUID not found" -sev Error + return $null + } + + return $StoredTemplate.JSON | ConvertFrom-Json + } catch { + Write-LogMessage -API $APIName -tenant $Tenant -message "Failed to retrieve template $TemplateGUID. Error: $($_.Exception.Message)" -sev Error + return $null + } + } + + + + try { + # Extract control flags from Settings + $RemediateEnabled = [bool]$Settings.remediate + $AlertEnabled = [bool]$Settings.alert + $ReportEnabled = [bool]$Settings.report + + # Get templateIds array + if (-not $Settings.templateIds -or $Settings.templateIds.Count -eq 0) { + Write-LogMessage -API $APIName -tenant $Tenant -message 'DeployContactTemplate: No template IDs found in settings' -sev Error + return 'No template IDs found in settings' + } + + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Processing $($Settings.templateIds.Count) template(s)" -sev Info + + # Get the current contacts + $CurrentContacts = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailContact' -ErrorAction Stop + + # Process each template in the templateIds array + $CompareList = foreach ($TemplateItem in $Settings.templateIds) { + try { + # Get the template GUID directly from the value property + $TemplateGUID = $TemplateItem.value + + if ([string]::IsNullOrWhiteSpace($TemplateGUID)) { + Write-LogMessage -API $APIName -tenant $Tenant -message 'DeployContactTemplate: TemplateGUID cannot be empty.' -sev Error + continue + } + + # Fetch the template from storage + $Template = Get-ContactTemplate -TemplateGUID $TemplateGUID + if (-not $Template) { + continue + } + + # Input validation for required fields + if ([string]::IsNullOrWhiteSpace($Template.displayName)) { + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: DisplayName cannot be empty for template $TemplateGUID." -sev Error + continue + } + + if ([string]::IsNullOrWhiteSpace($Template.email)) { + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: ExternalEmailAddress cannot be empty for template $TemplateGUID." -sev Error + continue + } + + # Validate email address format + try { + $null = [System.Net.Mail.MailAddress]::new($Template.email) + } catch { + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Invalid email address format: $($Template.email)" -sev Error + continue + } + + # Check if the contact already exists (using DisplayName as key) + $ExistingContact = $CurrentContacts | Where-Object { $_.DisplayName -eq $Template.displayName } + + # If the contact exists, we'll overwrite it; if not, we'll create it + if ($ExistingContact) { + $StateIsCorrect = $false # Always update existing contacts to match template + $Action = 'Update' + $Missing = $false + } else { + # Contact doesn't exist, needs to be created + $StateIsCorrect = $false + $Action = 'Create' + $Missing = $true + } + + [PSCustomObject]@{ + missing = $Missing + StateIsCorrect = $StateIsCorrect + Action = $Action + Template = $Template + TemplateGUID = $TemplateGUID + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to process template $TemplateGUID, Error: $ErrorMessage" + Write-LogMessage -API $APIName -tenant $tenant -message $Message -sev 'Error' + return $Message + } + } + + # Remediate each contact which needs to be created or updated + if ($RemediateEnabled) { + $ContactsToProcess = $CompareList | Where-Object { $_.StateIsCorrect -eq $false } + + if ($ContactsToProcess.Count -gt 0) { + $ContactsToCreate = $ContactsToProcess | Where-Object { $_.Action -eq 'Create' } + $ContactsToUpdate = $ContactsToProcess | Where-Object { $_.Action -eq 'Update' } + + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Processing $($ContactsToCreate.Count) new contacts, $($ContactsToUpdate.Count) existing contacts" -sev Info + + # First pass: Create new mail contacts and update existing ones + $ProcessedContacts = [System.Collections.Generic.List[PSCustomObject]]::new() + $ProcessingFailures = 0 + + # Handle new contacts + foreach ($Contact in $ContactsToCreate) { + try { + $Template = $Contact.Template + + # Parameters for creating new contact + $NewContactParams = @{ + displayName = $Template.displayName + name = $Template.displayName + ExternalEmailAddress = $Template.email + } + + # Add optional name fields if provided + if (![string]::IsNullOrWhiteSpace($Template.firstName)) { + $NewContactParams.FirstName = $Template.firstName + } + if (![string]::IsNullOrWhiteSpace($Template.lastName)) { + $NewContactParams.LastName = $Template.lastName + } + + # Create the mail contact + $NewContact = New-ExoRequest -tenantid $Tenant -cmdlet 'New-MailContact' -cmdParams $NewContactParams -UseSystemMailbox $true + + # Store contact info for second pass + $ProcessedContacts.Add([PSCustomObject]@{ + Contact = $Contact + ContactObject = $NewContact + Template = $Template + IsNew = $true + }) + } catch { + $ProcessingFailures++ + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API $APIName -tenant $tenant -message "Failed to create contact $($Template.displayName): $ErrorMessage" -sev 'Error' + } + } + + # Handle existing contacts - update their basic properties + foreach ($Contact in $ContactsToUpdate) { + try { + $Template = $Contact.Template + $ExistingContact = $CurrentContacts | Where-Object { $_.DisplayName -eq $Template.displayName } + + # Update MailContact properties (email address) + $UpdateMailContactParams = @{ + Identity = $ExistingContact.Identity + ExternalEmailAddress = $Template.email + } + + # Update the existing mail contact + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailContact' -cmdParams $UpdateMailContactParams -UseSystemMailbox $true + + # Update Contact properties (names) if provided + $UpdateContactParams = @{ + Identity = $ExistingContact.Identity + } + $ContactNeedsUpdate = $false + + if (![string]::IsNullOrWhiteSpace($Template.firstName)) { + $UpdateContactParams.FirstName = $Template.firstName + $ContactNeedsUpdate = $true + } + if (![string]::IsNullOrWhiteSpace($Template.lastName)) { + $UpdateContactParams.LastName = $Template.lastName + $ContactNeedsUpdate = $true + } + + # Only update Contact if we have name changes + if ($ContactNeedsUpdate) { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-Contact' -cmdParams $UpdateContactParams -UseSystemMailbox $true + } + + # Store contact info for second pass + $ProcessedContacts.Add([PSCustomObject]@{ + Contact = $Contact + ContactObject = $ExistingContact + Template = $Template + IsNew = $false + }) + } catch { + $ProcessingFailures++ + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API $APIName -tenant $tenant -message "Failed to update contact $($Template.displayName): $ErrorMessage" -sev 'Error' + } + } + + # Log processing summary + $ProcessedCount = $ProcessedContacts.Count + if ($ProcessedCount -gt 0) { + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Successfully processed $ProcessedCount contacts" -sev Info + + # Wait for contacts to propagate before updating additional fields + Start-Sleep -Seconds 1 + + # Second pass: Update contacts with additional fields (only if needed) + $UpdateFailures = 0 + $ContactsRequiringUpdates = 0 + + foreach ($ProcessedContactInfo in $ProcessedContacts) { + try { + $Template = $ProcessedContactInfo.Template + $ContactObject = $ProcessedContactInfo.ContactObject + $HasUpdates = $false + + # Check if Set-Contact is needed + $ContactIdentity = if ($ProcessedContactInfo.IsNew) { $ContactObject.id } else { $ContactObject.Identity } + $SetContactParams = @{ Identity = $ContactIdentity } + $PropertyMap = @{ + 'Company' = $Template.companyName + 'StateOrProvince' = $Template.state + 'Office' = $Template.streetAddress + 'Phone' = $Template.businessPhone + 'WebPage' = $Template.website + 'Title' = $Template.jobTitle + 'City' = $Template.city + 'PostalCode' = $Template.postalCode + 'CountryOrRegion' = $Template.country + 'MobilePhone' = $Template.mobilePhone + } + + foreach ($Property in $PropertyMap.GetEnumerator()) { + if (![string]::IsNullOrWhiteSpace($Property.Value)) { + $SetContactParams[$Property.Key] = $Property.Value + $HasUpdates = $true + } + } + + # Check if Set-MailContact is needed for additional properties + $MailContactParams = @{ Identity = $ContactIdentity } + $NeedsMailContactUpdate = $false + + if ([bool]$Template.hidefromGAL) { + $MailContactParams.HiddenFromAddressListsEnabled = $true + $NeedsMailContactUpdate = $true + $HasUpdates = $true + } + + if (![string]::IsNullOrWhiteSpace($Template.mailTip)) { + $MailContactParams.MailTip = $Template.mailTip + $NeedsMailContactUpdate = $true + $HasUpdates = $true + } + + # Only increment and update if there are actual changes + if ($HasUpdates) { + $ContactsRequiringUpdates++ + + # Apply Set-Contact updates if needed + if ($SetContactParams.Count -gt 1) { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-Contact' -cmdParams $SetContactParams -UseSystemMailbox $true + } + + # Apply Set-MailContact updates if needed + if ($NeedsMailContactUpdate) { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailContact' -cmdParams $MailContactParams -UseSystemMailbox $true + } + } + } catch { + $UpdateFailures++ + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API $APIName -tenant $tenant -message "Failed to update additional fields for contact $($Template.displayName): $ErrorMessage" -sev 'Error' + } + } + + # Log update summary only if updates were needed + if ($ContactsRequiringUpdates -gt 0) { + $SuccessfulUpdates = $ContactsRequiringUpdates - $UpdateFailures + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: Updated additional fields for $SuccessfulUpdates of $ContactsRequiringUpdates contacts" -sev Info + } + } + + # Final summary + if ($ProcessingFailures -gt 0) { + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: $ProcessingFailures contacts failed to process" -sev Error + } + } + } + + if ($AlertEnabled) { + $MissingContacts = ($CompareList | Where-Object { $_.missing }).Count + $ExistingContacts = ($CompareList | Where-Object { -not $_.missing }).Count + + if ($MissingContacts -gt 0 -or $ExistingContacts -gt 0) { + foreach ($Contact in $CompareList) { + if ($Contact.missing) { + $CurrentInfo = $Contact.Template | Select-Object -Property displayName, email, missing + Write-StandardsAlert -message "Mail contact $($Contact.Template.displayName) from template $($Contact.TemplateGUID) is missing." -object $CurrentInfo -tenant $Tenant -standardName 'DeployContactTemplate' + } else { + $CurrentInfo = $CurrentContacts | Where-Object -Property DisplayName -EQ $Contact.Template.displayName | Select-Object -Property DisplayName, ExternalEmailAddress, FirstName, LastName + Write-StandardsAlert -message "Mail contact $($Contact.Template.displayName) from template $($Contact.TemplateGUID) will be updated to match template." -object $CurrentInfo -tenant $Tenant -standardName 'DeployContactTemplate' + } + } + Write-LogMessage -API $APIName -tenant $Tenant -message "DeployContactTemplate: $MissingContacts missing, $ExistingContacts to update" -sev Info + } else { + Write-LogMessage -API $APIName -tenant $Tenant -message 'DeployContactTemplate: No contacts need processing' -sev Info + } + } + + if ($ReportEnabled) { + $ExpectedValue = [PSCustomObject]@{ + state = 'Correctly configured' + } + $CurrentValue = if ($CompareList.StateIsCorrect -eq $true) { + [PSCustomObject]@{ state = 'Correctly configured' } + } else { + [PSCustomObject]@{ + MissingContacts = $CompareList | Where-Object { $_.missing } | ForEach-Object { + $_.Template | Select-Object -Property displayName, Email + } + ContactsToUpdate = $CompareList | Where-Object { -not $_.missing } | ForEach-Object { + $_.Template | Select-Object -Property displayName, Email + } + } + } + Set-CIPPStandardsCompareField -FieldName 'standards.DeployContactTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API $APIName -tenant $tenant -message "Failed to create or update mail contact(s) from templates, Error: $ErrorMessage" -sev 'Error' + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 new file mode 100644 index 000000000000..4ee810e1f85a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 @@ -0,0 +1,111 @@ +function Invoke-CIPPStandardDeployMailContact { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DeployMailContact + .SYNOPSIS + (Label) Deploy Mail Contact + .DESCRIPTION + (Helptext) Creates a new mail contact in Exchange Online across all selected tenants. The contact will be visible in the Global Address List. + (DocsDescription) This standard creates a new mail contact in Exchange Online. Mail contacts are useful for adding external email addresses to your organization's address book. They can be used for distribution lists, shared mailboxes, and other collaboration scenarios. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Automatically creates external email contacts in the organization's address book, enabling seamless communication with external partners and vendors. This standardizes contact management across all company locations and improves collaboration efficiency. + ADDEDCOMPONENT + {"type":"textField","name":"standards.DeployMailContact.ExternalEmailAddress","label":"External Email Address","required":true} + {"type":"textField","name":"standards.DeployMailContact.DisplayName","label":"Display Name","required":true} + {"type":"textField","name":"standards.DeployMailContact.FirstName","label":"First Name","required":false} + {"type":"textField","name":"standards.DeployMailContact.LastName","label":"Last Name","required":false} + IMPACT + Low Impact + ADDEDDATE + 2024-03-19 + POWERSHELLEQUIVALENT + New-MailContact + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DeployMailContact' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Input validation + if ([string]::IsNullOrWhiteSpace($Settings.DisplayName)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'DeployMailContact: DisplayName cannot be empty or just whitespace.' -sev Error + return + } + + try { + $null = [System.Net.Mail.MailAddress]::new($Settings.ExternalEmailAddress) + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "DeployMailContact: Invalid email address format: $($Settings.ExternalEmailAddress)" -sev Error + return + } + + # Prepare contact data for reuse + $ContactData = @{ + DisplayName = $Settings.DisplayName + ExternalEmailAddress = $Settings.ExternalEmailAddress + FirstName = $Settings.FirstName + LastName = $Settings.LastName + } + + # Check if contact already exists + try { + $ExistingContact = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailContact' -cmdParams @{ + Identity = $Settings.ExternalEmailAddress + ErrorAction = 'Stop' + } + } catch { + if ($_.Exception.Message -like "*couldn't be found*") { + $ExistingContact = $null + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error checking for existing mail contact: $(Get-CippException -Exception $_).NormalizedError" -sev Error + return + } + } + + # Remediation + if ($Settings.remediate -eq $true -and -not $ExistingContact) { + try { + $NewContactParams = $ContactData.Clone() + $NewContactParams.Name = $Settings.DisplayName + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-MailContact' -cmdParams $NewContactParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully created mail contact $($Settings.DisplayName) with email $($Settings.ExternalEmailAddress)" -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not create mail contact. $(Get-CippException -Exception $_).NormalizedError" -sev Error + } + } + + # Alert + if ($Settings.alert -eq $true) { + if ($ExistingContact) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Mail contact $($Settings.DisplayName) already exists" -sev Info + } else { + Write-StandardsAlert -message "Mail contact $($Settings.DisplayName) needs to be created" -object $ContactData -tenant $Tenant -standardName 'DeployMailContact' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Mail contact $($Settings.DisplayName) needs to be created" -sev Info + } + } + + # Report + if ($Settings.report -eq $true) { + $ReportData = $ContactData.Clone() + $CurrentValue = $ExistingContact | Select-Object DisplayName, ExternalEmailAddress, FirstName, LastName + $ReportData.Exists = [bool]$ExistingContact + Add-CIPPBPAField -FieldName 'DeployMailContact' -FieldValue $ReportData -StoreAs json -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.DeployMailContact' -CurrentValue $CurrentValue -ExpectedValue $ReportData -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 new file mode 100644 index 000000000000..5b43e27dbee0 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 @@ -0,0 +1,106 @@ +function Invoke-CIPPStandardDisableAddShortcutsToOneDrive { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableAddShortcutsToOneDrive + .SYNOPSIS + (Label) Set Add Shortcuts To OneDrive button state + .DESCRIPTION + (Helptext) If disabled, the button Add shortcut to OneDrive will be removed and users in the tenant will no longer be able to add new shortcuts to their OneDrive. Existing shortcuts will remain functional + (DocsDescription) If disabled, the button Add shortcut to OneDrive will be removed and users in the tenant will no longer be able to add new shortcuts to their OneDrive. Existing shortcuts will remain functional + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Controls whether employees can create shortcuts to SharePoint libraries in their OneDrive, managing how users organize and access shared content. This setting helps maintain organized file structures and can prevent confusion from excessive shortcuts while preserving existing workflows. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Add Shortcuts To OneDrive button state","name":"standards.DisableAddShortcutsToOneDrive.state","options":[{"label":"Disabled","value":"true"},{"label":"Enabled","value":"false"}]} + IMPACT + Medium Impact + ADDEDDATE + 2023-07-25 + POWERSHELLEQUIVALENT + Set-SPOTenant -DisableAddShortcutsToOneDrive \$true or \$false + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableAddShortcutsToOneDrive' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableAddShortcutsToOneDrive' + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object _ObjectIdentity_, TenantFilter, DisableAddToOneDrive + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableAddShortcutsToOneDrive state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Input validation + $StateValue = $Settings.state.value ?? $Settings.state + if (([string]::IsNullOrWhiteSpace($StateValue) -or $StateValue -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'DisableAddShortcutsToOneDrive: Invalid state parameter set' -sev Error + return + } + + $CurrentValue = [PSCustomObject]@{ + DisableAddShortcutsToOneDrive = $CurrentState.DisableAddToOneDrive + } + $ExpectedValue = [PSCustomObject]@{ + DisableAddShortcutsToOneDrive = [System.Convert]::ToBoolean($StateValue) + } + + $WantedState = [System.Convert]::ToBoolean($StateValue) + $StateIsCorrect = if ($CurrentState.DisableAddToOneDrive -eq $WantedState) { $true } else { $false } + $HumanReadableState = if ($WantedState -eq $true) { 'disabled' } else { 'enabled' } + + if ($Settings.report -eq $true) { + if ($StateIsCorrect -eq $true) { + $FieldValue = $true + } else { + $FieldValue = $CurrentState | Select-Object -Property DisableAddToOneDrive + } + Set-CIPPStandardsCompareField -FieldName 'standards.DisableAddShortcutsToOneDrive' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'OneDriveAddShortcutButtonDisabled' -FieldValue $CurrentState.DisableAddToOneDrive -StoreAs bool -Tenant $Tenant + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($StateIsCorrect -eq $false) { + try { + $CurrentState | Set-CIPPSPOTenant -Properties @{DisableAddToOneDrive = $WantedState } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set the Add Shortcuts To OneDrive Button to $HumanReadableState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set the Add Shortcuts To OneDrive Button to $HumanReadableState. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "The Add Shortcuts To OneDrive Button is already set to the wanted of $HumanReadableState" -sev Info + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "The Add Shortcuts To OneDrive Button is already set to the wanted state of $HumanReadableState" -sev Info + } else { + Write-StandardsAlert -message "The Add Shortcuts To OneDrive Button is not set to the wanted state of $HumanReadableState" -object $CurrentState -tenant $tenant -standardName 'DisableAddShortcutsToOneDrive' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "The Add Shortcuts To OneDrive Button Button is not set to the wanted state of $HumanReadableState" -sev Info + } + } + + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 new file mode 100644 index 000000000000..5a83612fc3b9 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 @@ -0,0 +1,92 @@ +function Invoke-CIPPStandardDisableAdditionalStorageProviders { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableAdditionalStorageProviders + .SYNOPSIS + (Label) Disable additional storage providers in OWA + .DESCRIPTION + (Helptext) Disables the ability for users to open files in Outlook on the Web, from other providers such as Box, Dropbox, Facebook, Google Drive, OneDrive Personal, etc. + (DocsDescription) Disables additional storage providers in OWA. This is to prevent users from using personal storage providers like Dropbox, Google Drive, etc. Usually this has little user impact. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.5.3)" + "exo_storageproviderrestricted" + EXECUTIVETEXT + Prevents employees from accessing personal cloud storage services like Dropbox or Google Drive through Outlook on the web, reducing data security risks and ensuring company information stays within approved corporate systems. This helps maintain data governance and prevents accidental data leaks. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-01-17 + POWERSHELLEQUIVALENT + Get-OwaMailboxPolicy \| Set-OwaMailboxPolicy -AdditionalStorageProvidersEnabled \$False + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableAdditionalStorageProviders' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableAdditionalStorageProviders' + + try { + $AdditionalStorageProvidersState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OwaMailboxPolicy' -cmdParams @{Identity = 'OwaMailboxPolicy-Default' } -Select 'Identity, AdditionalStorageProvidersAvailable' + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableAddShortcutsToOneDrive state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CurrentValue = [PSCustomObject]@{ + AdditionalStorageProvidersAvailable = $AdditionalStorageProvidersState.AdditionalStorageProvidersAvailable + } + $ExpectedValue = [PSCustomObject]@{ + AdditionalStorageProvidersAvailable = $false + } + + if ($Settings.remediate -eq $true) { + + try { + if ($AdditionalStorageProvidersState.AdditionalStorageProvidersAvailable) { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OwaMailboxPolicy' -cmdParams @{ Identity = $AdditionalStorageProvidersState.Identity; AdditionalStorageProvidersAvailable = $false } -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'OWA additional storage providers has been disabled.' -sev Info + $AdditionalStorageProvidersState.AdditionalStorageProvidersAvailable = $false + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'OWA additional storage providers are already disabled.' -sev Info + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable OWA additional storage providers. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + + } + + if ($Settings.alert -eq $true) { + if ($AdditionalStorageProvidersState.AdditionalStorageProvidersAvailable) { + $Object = $AdditionalStorageProvidersState | Select-Object -Property AdditionalStorageProvidersAvailable + Write-StandardsAlert -message 'OWA additional storage providers are enabled' -object $Object -tenant $Tenant -standardName 'DisableAdditionalStorageProviders' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'OWA additional storage providers are enabled' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'OWA additional storage providers are disabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $State = $AdditionalStorageProvidersState.AdditionalStorageProvidersAvailable ? $false : $true + Set-CIPPStandardsCompareField -FieldName 'standards.DisableAdditionalStorageProviders' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AdditionalStorageProvidersAvailable' -FieldValue $State -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 new file mode 100644 index 000000000000..f0620e414878 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 @@ -0,0 +1,87 @@ +function Invoke-CIPPStandardDisableAppCreation { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableAppCreation + .SYNOPSIS + (Label) Disable App creation by users + .DESCRIPTION + (Helptext) Disables the ability for users to create App registrations in the tenant. + (DocsDescription) Disables the ability for users to create applications in Entra. Done to prevent breached accounts from creating an app to maintain access to the tenant, even after the breached account has been secured. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (1.2.2)" + "CISA (MS.AAD.4.1v1)" + "EIDSCA.AP10" + "Essential 8 (1175)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Prevents regular employees from creating application registrations that could be used to maintain unauthorized access to company systems. This security measure ensures that only authorized IT personnel can create applications, reducing the risk of persistent security breaches through malicious applications. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-03-20 + POWERSHELLEQUIVALENT + Update-MgPolicyAuthorizationPolicy + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableAppCreation' + + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy?$select=defaultUserRolePermissions' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableAppCreation state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CurrentValue = $CurrentInfo.defaultUserRolePermissions | Select-Object -Property allowedToCreateApps + $ExpectedValue = [PSCustomObject]@{ + allowedToCreateApps = $false + } + + if ($Settings.remediate -eq $true) { + if ($CurrentInfo.defaultUserRolePermissions.allowedToCreateApps -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are already not allowed to create App registrations.' -sev Info + } else { + try { + $body = '{"defaultUserRolePermissions":{"allowedToCreateApps":false}}' + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled users from creating App registrations.' -sev Info + $CurrentInfo.defaultUserRolePermissions.allowedToCreateApps = $false + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable users from creating App registrations: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.defaultUserRolePermissions.allowedToCreateApps -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are not allowed to create App registrations.' -sev Info + } else { + Write-StandardsAlert -message 'Users are allowed to create App registrations.' -object $CurrentInfo -tenant $tenant -standardName 'DisableAppCreation' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are allowed to create App registrations.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $State = -not $CurrentInfo.defaultUserRolePermissions.allowedToCreateApps + Set-CIPPStandardsCompareField -FieldName 'standards.DisableAppCreation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'UserAppCreationDisabled' -FieldValue $State -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuth.ps1 new file mode 100644 index 000000000000..b4bb0e779681 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuth.ps1 @@ -0,0 +1,8 @@ +function Invoke-CIPPStandardDisableBasicAuth { + <# + .FUNCTIONALITY + Internal + #> + param($Tenant, $Settings) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Basic Authentication is disabled by default. SMTP authentication is still allowed. Please use the standard 'Disable SMTP Basic Authentication' to disable" -sev Info +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 new file mode 100644 index 000000000000..5d5e4b55f0c3 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 @@ -0,0 +1,130 @@ +function Invoke-CIPPStandardDisableBasicAuthSMTP { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableBasicAuthSMTP + .SYNOPSIS + (Label) Disable SMTP Basic Authentication + .DESCRIPTION + (Helptext) Disables SMTP AUTH organization-wide, impacting POP and IMAP clients that rely on SMTP for sending emails. Default for new tenants. For more information, see the [Microsoft documentation](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission) + (DocsDescription) Disables tenant-wide SMTP basic authentication, including for all explicitly enabled users, impacting POP and IMAP clients that rely on SMTP for sending emails. For more information, see the [Microsoft documentation](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission). + .NOTES + CAT + Global Standards + TAG + "CIS M365 5.0 (6.5.4)" + "NIST CSF 2.0 (PR.IR-01)" + EXECUTIVETEXT + Disables outdated email authentication methods that are vulnerable to security attacks, forcing applications and devices to use modern, more secure authentication protocols. This reduces the risk of email-based security breaches and credential theft. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Set-TransportConfig -SmtpClientAuthenticationDisabled \$true + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableBasicAuthSMTP' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableBasicAuthSMTP' + + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-TransportConfig' + + $SMTPusers = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-CASMailbox' -cmdParams @{ ResultSize = 'Unlimited' } | + Where-Object { ($_.SmtpClientAuthenticationDisabled -eq $false) } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableBasicAuthSMTP state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CurrentInfo.SmtpClientAuthenticationDisabled -and $SMTPusers.Count -eq 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SMTP Basic Authentication for tenant and all users is already disabled' -sev Info + } else { + # Disable SMTP Basic Authentication for the tenant + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-TransportConfig' -cmdParams @{ SmtpClientAuthenticationDisabled = $true } + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled SMTP Basic Authentication' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable SMTP Basic Authentication. Error: $ErrorMessage" -sev Error + } + + # Disable SMTP Basic Authentication for all users + $SMTPusers | ForEach-Object { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-CASMailbox' -cmdParams @{ Identity = $_.Guid; SmtpClientAuthenticationDisabled = $null } -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled SMTP Basic Authentication for $($_.DisplayName), $($_.PrimarySmtpAddress)" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable SMTP Basic Authentication for $($_.DisplayName), $($_.PrimarySmtpAddress). Error: $ErrorMessage" -sev Error + } + } + } + } + + $LogMessage = [System.Collections.Generic.List[string]]::new() + if ($Settings.alert -eq $true -or $Settings.report -eq $true) { + + # Build the log message for use in the alert and report + if ($CurrentInfo.SmtpClientAuthenticationDisabled) { + $LogMessage.add('SMTP Basic Authentication for tenant is disabled. ') + } else { + $LogMessage.add('SMTP Basic Authentication for tenant is not disabled. ') + } + if ($SMTPusers.Count -eq 0) { + $LogMessage.add('SMTP Basic Authentication for all users is disabled') + } else { + $LogMessage.add("SMTP Basic Authentication for the following $($SMTPusers.Count) users is not disabled: $($SMTPusers.PrimarySmtpAddress -join ', ')") + } + + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.SmtpClientAuthenticationDisabled -and $SMTPusers.Count -eq 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SMTP Basic Authentication for tenant and all users is disabled' -sev Info + } else { + Write-StandardsAlert -message ($LogMessage -join '') -object @{TenantSMTPAuthDisabled = $CurrentInfo.SmtpClientAuthenticationDisabled; UsersWithSMTPAuthEnabled = $SMTPusers.Count } -tenant $tenant -standardName 'DisableBasicAuthSMTP' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message ($LogMessage -join '') -sev Info + } + } + + if ($Settings.report -eq $true) { + + $CurrentValue = [PSCustomObject]@{ + SmtpClientAuthenticationDisabled = $CurrentInfo.SmtpClientAuthenticationDisabled + UsersWithSmtpAuthEnabled = @($SMTPusers.PrimarySmtpAddress) + } + $ExpectedValue = [PSCustomObject]@{ + SmtpClientAuthenticationDisabled = $true + UsersWithSmtpAuthEnabled = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableBasicAuthSMTP' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + + if ($CurrentInfo.SmtpClientAuthenticationDisabled -and $SMTPusers.Count -eq 0) { + Add-CIPPBPAField -FieldName 'DisableBasicAuthSMTP' -FieldValue $CurrentInfo.SmtpClientAuthenticationDisabled -StoreAs bool -Tenant $tenant + } else { + $Logs = $LogMessage | Select-Object @{n = 'Message'; e = { $_ } } + Add-CIPPBPAField -FieldName 'DisableBasicAuthSMTP' -FieldValue $Logs -StoreAs json -Tenant $tenant + } + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 new file mode 100644 index 000000000000..31729038577c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 @@ -0,0 +1,76 @@ +function Invoke-CIPPStandardDisableEmail { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableEmail + .SYNOPSIS + (Label) Disables Email as an MFA method + .DESCRIPTION + (Helptext) This blocks users from using email as an MFA method. This disables the email OTP option for guest users, and instead prompts them to create a Microsoft account. + (DocsDescription) This blocks users from using email as an MFA method. This disables the email OTP option for guest users, and instead prompts them to create a Microsoft account. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (2.3.5)" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Disables email-based authentication codes due to security concerns with email interception and account compromise. This forces users to adopt more secure authentication methods, particularly affecting guest users who must use stronger verification methods. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2023-12-18 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Email' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableEmail state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'disabled') + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Email authentication method is already disabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'Email' -Enabled $false + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Email authentication method is not enabled' -sev Info + } else { + Write-StandardsAlert -message 'Email authentication method is enabled' -object $CurrentState -tenant $tenant -standardName 'DisableEmail' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Email authentication method is enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + DisableEmail = $CurrentState.state -eq 'disabled' + } + $ExpectedValue = [PSCustomObject]@{ + DisableEmail = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableEmail' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableEmail' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 new file mode 100644 index 000000000000..bd774e10251c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 @@ -0,0 +1,45 @@ +function Invoke-CIPPStandardDisableEntraPortal { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableEntraPortal + .SYNOPSIS + (Label) Disables the Entra Portal for standard users + https://docs.cipp.app/user-documentation/tenant/standards/edit-standards + #> + + param($Tenant, $Settings) + #This standard is still unlisted due to MS fixing some permissions. This will be added to the list once it is fixed. + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/admin/entra/uxSetting' -tenantid $Tenant + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableEntraPortal state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + If ($Settings.remediate -eq $true) { + if ($CurrentInfo.restrictNonAdminAccess) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disable user access to Entra Portal is already enabled.' -sev Info + } else { + New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/admin/entra/uxSetting' -tenantid $Tenant -body '{"restrictNonAdminAccess":true}' -type PATCH + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo.isSoftwareOathEnabled) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disable user access to Entra Portal is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Disable user access to Entra Portal is not enabled' -object $CurrentInfo -tenant $tenant -standardName 'DisableEntraPortal' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disable user access to Entra Portal is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + set-CIPPStandardsCompareField -FieldName 'standards.DisableEntraPortal' -FieldValue $CurrentInfo.isSoftwareOathEnabled -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableEntraPortal' -FieldValue $CurrentInfo.isSoftwareOathEnabled -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExchangeOnlinePowerShell.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExchangeOnlinePowerShell.ps1 new file mode 100644 index 000000000000..ff49eefefeef --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExchangeOnlinePowerShell.ps1 @@ -0,0 +1,108 @@ +function Invoke-CIPPStandardDisableExchangeOnlinePowerShell { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableExchangeOnlinePowerShell + .SYNOPSIS + (Label) Disable Exchange Online PowerShell for non-admin users + .DESCRIPTION + (Helptext) Disables Exchange Online PowerShell access for non-admin users by setting the RemotePowerShellEnabled property to false for each user. This helps prevent attackers from using PowerShell to run malicious commands, access file systems, registry, and distribute ransomware throughout networks. Users with admin roles are automatically excluded. + (DocsDescription) Disables Exchange Online PowerShell access for non-admin users by setting the RemotePowerShellEnabled property to false for each user. This security measure follows a least privileged access approach, preventing potential attackers from using PowerShell to execute malicious commands, access sensitive systems, or distribute malware. Users with management roles containing 'Admin' are automatically excluded to ensure administrators retain PowerShell access to perform necessary management tasks. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.1.1)" + "Security" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts PowerShell access to Exchange Online for regular employees while maintaining access for administrators, significantly reducing security risks from compromised accounts. This prevents attackers from using PowerShell to execute malicious commands or distribute ransomware while preserving necessary administrative capabilities. + IMPACT + Medium Impact + ADDEDDATE + 2025-06-19 + POWERSHELLEQUIVALENT + Set-User -Identity \$user -RemotePowerShellEnabled \$false + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableExchangeOnlinePowerShell' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableExchangeOnlinePowerShell' + + try { + + $AdminUsers = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$expand=principal' -tenantid $Tenant).principal.userPrincipalName + $UsersWithPowerShell = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-User' -Select 'userPrincipalName, identity, guid, remotePowerShellEnabled' | Where-Object { $_.RemotePowerShellEnabled -eq $true -and $_.userPrincipalName -notin $AdminUsers } + $PowerShellEnabledCount = ($UsersWithPowerShell | Measure-Object).Count + $StateIsCorrect = $PowerShellEnabledCount -eq 0 + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Could not check Exchange Online PowerShell status. $($ErrorMessage.NormalizedError)" -sev Error + $StateIsCorrect = $null + } + + if ($Settings.remediate -eq $true) { + if ($PowerShellEnabledCount -gt 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Started disabling Exchange Online PowerShell for $PowerShellEnabledCount users." -sev Info + + $Request = $UsersWithPowerShell | ForEach-Object { + @{ + CmdletInput = @{ + CmdletName = 'Set-User' + Parameters = @{Identity = $_.Guid; RemotePowerShellEnabled = $false } + } + } + } + + $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) + $SuccessCount = 0 + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorMessage = Get-NormalizedError -Message $_.error + Write-Host "Failed to disable Exchange Online PowerShell for $($_.target). Error: $ErrorMessage" + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Exchange Online PowerShell for $($_.target). Error: $ErrorMessage" -sev Error + } else { + $SuccessCount++ + } + } + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully disabled Exchange Online PowerShell for $SuccessCount out of $PowerShellEnabledCount users." -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Exchange Online PowerShell is already disabled for all non-admin users' -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Exchange Online PowerShell is disabled for all non-admin users.' -sev Info + } else { + Write-StandardsAlert -message "Exchange Online PowerShell is enabled for $PowerShellEnabledCount users" -object @{UsersWithPowerShellEnabled = $PowerShellEnabledCount } -tenant $tenant -standardName 'DisableExchangeOnlinePowerShell' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Exchange Online PowerShell is enabled for $PowerShellEnabledCount users." -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + UsersWithPowerShellEnabled = $PowerShellEnabledCount + } + $ExpectedValue = [PSCustomObject]@{ + UsersWithPowerShellEnabled = 0 + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableExchangeOnlinePowerShell' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ExchangeOnlinePowerShellDisabled' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 new file mode 100644 index 000000000000..d8bf42551e92 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 @@ -0,0 +1,92 @@ +function Invoke-CIPPStandardDisableExternalCalendarSharing { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableExternalCalendarSharing + .SYNOPSIS + (Label) Disable external calendar sharing + .DESCRIPTION + (Helptext) Disables the ability for users to share their calendar with external users. Only for the default policy, so exclusions can be made if needed. + (DocsDescription) Disables external calendar sharing for the entire tenant. This is not a widely used feature, and it's therefore unlikely that this will impact users. Only for the default policy, so exclusions can be made if needed by making a new policy and assigning it to users. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (1.3.3)" + "exo_individualsharing" + EXECUTIVETEXT + Prevents employees from sharing their calendars with external parties, protecting sensitive meeting information and internal schedules from unauthorized access. This security measure helps maintain confidentiality of business activities while still allowing internal collaboration. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-01-08 + POWERSHELLEQUIVALENT + Get-SharingPolicy \| Set-SharingPolicy -Enabled \$False + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableExternalCalendarSharing' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SharingPolicy' | + Where-Object { $_.Default -eq $true } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableExternalCalendarSharing state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if ($CurrentInfo.Enabled) { + $CurrentInfo | ForEach-Object { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SharingPolicy' -cmdParams @{ Identity = $_.Id ; Enabled = $false } -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully disabled external calendar sharing for the policy $($_.Name)" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable external calendar sharing for the policy $($_.Name). Error: $ErrorMessage" -sev Error + } + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'External calendar sharing is already disabled' -sev Info + + } + + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo.Enabled) { + Write-StandardsAlert -message 'External calendar sharing is enabled' -object ($CurrentInfo | Select-Object enabled) -tenant $tenant -standardName 'DisableExternalCalendarSharing' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'External calendar sharing is enabled' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'External calendar sharing is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentStatus = -not $CurrentInfo.Enabled + + $CurrentValue = [PSCustomObject]@{ + ExternalCalendarSharingDisabled = $CurrentStatus + } + $ExpectedValue = [PSCustomObject]@{ + ExternalCalendarSharingDisabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableExternalCalendarSharing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ExternalCalendarSharingDisabled' -FieldValue $CurrentStatus -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 new file mode 100644 index 000000000000..f4ec96f9f33d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 @@ -0,0 +1,86 @@ +function Invoke-CIPPStandardDisableGuestDirectory { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableGuestDirectory + .SYNOPSIS + (Label) Restrict guest user access to directory objects + .DESCRIPTION + (Helptext) Disables Guest access to enumerate directory objects. This prevents guest users from seeing other users or guests in the directory. + (DocsDescription) Sets it so guests can view only their own user profile. Permission to view other users isn't allowed. Also restricts guest users from seeing the membership of groups they're in. See exactly what get locked down in the [Microsoft documentation.](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions) + .NOTES + CAT + Global Standards + TAG + "CIS M365 5.0 (5.1.6.2)" + "CISA (MS.AAD.5.1v1)" + "EIDSCA.AP14" + "EIDSCA.ST08" + "EIDSCA.ST09" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts external guest users from viewing the company's employee directory and organizational structure, protecting sensitive information about staff and internal groups. This security measure prevents unauthorized access to corporate contact information while still allowing necessary collaboration. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2022-05-04 + POWERSHELLEQUIVALENT + Set-AzureADMSAuthorizationPolicy -GuestUserRoleId '2af84b1e-32c8-42b7-82bc-daa82404023b' + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableGuestDirectory state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if ($CurrentInfo.guestUserRoleId -eq '2af84b1e-32c8-42b7-82bc-daa82404023b') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guest access to directory information is already disabled.' -sev Info + } else { + try { + $body = '{guestUserRoleId: "2af84b1e-32c8-42b7-82bc-daa82404023b"}' + New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled Guest access to directory information.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable Guest access to directory information.: $ErrorMessage" -sev 'Error' + } + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo.guestUserRoleId -eq '2af84b1e-32c8-42b7-82bc-daa82404023b') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guest access to directory information is disabled.' -sev Info + } else { + Write-StandardsAlert -message 'Guest access to directory information is not disabled.' -object $CurrentInfo -tenant $tenant -standardName 'DisableGuestDirectory' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guest access to directory information is not disabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + if ($CurrentInfo.guestUserRoleId -eq '2af84b1e-32c8-42b7-82bc-daa82404023b') { $CurrentStatus = $true } else { $CurrentStatus = $false } + + $CurrentValue = [PSCustomObject]@{ + GuestDirectoryAccessDisabled = $CurrentStatus + } + $ExpectedValue = [PSCustomObject]@{ + GuestDirectoryAccessDisabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuestDirectory' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableGuestDirectory' -FieldValue $CurrentStatus -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 new file mode 100644 index 000000000000..de4789652b77 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 @@ -0,0 +1,110 @@ +function Invoke-CIPPStandardDisableGuests { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableGuests + .SYNOPSIS + (Label) Disable Guest accounts that have not logged on for a number of days + .DESCRIPTION + (Helptext) Blocks login for guest users that have not logged in for a number of days + (DocsDescription) Blocks login for guest users that have not logged in for a number of days + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Automatically disables external guest accounts that haven't been used for a number of days, reducing security risks from dormant accounts while maintaining access for active external collaborators. This helps maintain a clean user directory and reduces potential attack vectors. + ADDEDCOMPONENT + {"type":"number","name":"standards.DisableGuests.days","required":true,"defaultValue":90,"label":"Days of inactivity"} + IMPACT + Medium Impact + ADDEDDATE + 2022-10-20 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableGuests' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') + + if ($TestResult -eq $false) { + #writing to each item that the license is not present. + $settings.TemplateList | ForEach-Object { + Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuests' -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $checkDays = if ($Settings.days) { $Settings.days } else { 90 } # Default to 90 days if not set. Pre v8.5.0 compatibility + $Days = (Get-Date).AddDays(-$checkDays).ToUniversalTime() + $Lookup = $Days.ToString('o') + $AuditLookup = (Get-Date).AddDays(-7).ToUniversalTime().ToString('o') + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=createdDateTime le $Lookup and userType eq 'Guest' and accountEnabled eq true &`$select=id,UserPrincipalName,signInActivity,mail,userType,accountEnabled,createdDateTime,externalUserState" -scope 'https://graph.microsoft.com/.default' -tenantid $Tenant | + Where-Object { $_.signInActivity.lastSuccessfulSignInDateTime -le $Days } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableGuests state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $RecentlyReactivatedUsers = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/directoryAudits?`$filter=activityDisplayName eq 'Enable account' and activityDateTime ge $AuditLookup" -scope 'https://graph.microsoft.com/.default' -tenantid $Tenant | + ForEach-Object { $_.targetResources[0].id } | Select-Object -Unique) + + $GraphRequest = $GraphRequest | Where-Object { -not ($RecentlyReactivatedUsers -contains $_.id) } + + if ($Settings.remediate -eq $true) { + if ($GraphRequest.Count -gt 0) { + foreach ($guest in $GraphRequest) { + try { + $null = New-GraphPostRequest -type Patch -tenantid $tenant -uri "https://graph.microsoft.com/beta/users/$($guest.id)" -body '{"accountEnabled":"false"}' + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabling guest $($guest.UserPrincipalName) ($($guest.id)). Last sign-in: $($guest.signInActivity.lastSuccessfulSignInDateTime)" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable guest $($guest.UserPrincipalName) ($($guest.id)): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "No guests accounts with a login longer than $checkDays days ago." -sev Info + } + + } + if ($Settings.alert -eq $true) { + + if ($GraphRequest.Count -gt 0) { + $Filtered = $GraphRequest | Select-Object -Property UserPrincipalName, id, signInActivity, mail, userType, accountEnabled, externalUserState + Write-StandardsAlert -message "Guests accounts with a login longer than 90 days ago: $($GraphRequest.count)" -object $Filtered -tenant $tenant -standardName 'DisableGuests' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Guests accounts with a login longer than $checkDays days ago: $($GraphRequest.count)" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "No guests accounts with a login longer than $checkDays days ago." -sev Info + } + } + if ($Settings.report -eq $true) { + $Filtered = $GraphRequest | Select-Object -Property UserPrincipalName, id, signInActivity, mail, userType, accountEnabled + + $CurrentValue = [PSCustomObject]@{ + GuestsDisabledAfterDays = $checkDays + GuestsDisabledAccountCount = $Filtered.Count + GuestsDisabledAccountDetails = @($Filtered) + } + + $ExpectedValue = [PSCustomObject]@{ + GuestsDisabledAfterDays = $checkDays + GuestsDisabledAccountCount = 0 + GuestsDisabledAccountDetails = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuests' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableGuests' -FieldValue $Filtered -StoreAs json -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 new file mode 100644 index 000000000000..4919d502721f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 @@ -0,0 +1,107 @@ +function Invoke-CIPPStandardDisableM365GroupUsers { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableM365GroupUsers + .SYNOPSIS + (Label) Disable M365 Group creation by users + .DESCRIPTION + (Helptext) Restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc + (DocsDescription) Users by default are allowed to create M365 groups. This restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc + .NOTES + CAT + Entra (AAD) Standards + TAG + "CISA (MS.AAD.21.1v1)" + EXECUTIVETEXT + Restricts the creation of Microsoft 365 groups, Teams, and SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces. This ensures proper governance, naming conventions, and resource management while maintaining oversight of all collaborative environments. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2022-07-17 + POWERSHELLEQUIVALENT + Update-MgBetaDirectorySetting + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableM365GroupUsers' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/settings' -tenantid $tenant) | + Where-Object -Property displayname -EQ 'Group.unified' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableM365GroupUsers state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if (($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value -eq 'false') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are already disabled from creating M365 Groups.' -sev Info + } else { + try { + if (!$CurrentState) { + # If no current configuration is found, we set it to the default template supplied by MS. + $CurrentState = '{"id":"","displayName":"Group.Unified","templateId":"62375ab9-6b52-47ed-826b-58e47e0e304b","values":[{"name":"NewUnifiedGroupWritebackDefault","value":"true"},{"name":"EnableMIPLabels","value":"false"},{"name":"CustomBlockedWordsList","value":""},{"name":"EnableMSStandardBlockedWords","value":"false"},{"name":"ClassificationDescriptions","value":""},{"name":"DefaultClassification","value":""},{"name":"PrefixSuffixNamingRequirement","value":""},{"name":"AllowGuestsToBeGroupOwner","value":"false"},{"name":"AllowGuestsToAccessGroups","value":"true"},{"name":"GuestUsageGuidelinesUrl","value":""},{"name":"GroupCreationAllowedGroupId","value":""},{"name":"AllowToAddGuests","value":"true"},{"name":"UsageGuidelinesUrl","value":""},{"name":"ClassificationList","value":""},{"name":"EnableGroupCreation","value":"true"}]}' + New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/settings/$($CurrentState.id)" -AsApp $true -Type POST -Body $CurrentState -ContentType 'application/json' + $CurrentState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/settings' -tenantid $tenant) | Where-Object -Property displayname -EQ 'Group.unified' + } + ($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value = 'false' + $body = "{values : $($CurrentState.values | ConvertTo-Json -Compress)}" + $null = New-GraphPostRequest -tenantid $tenant -asApp $true -Uri "https://graph.microsoft.com/beta/settings/$($CurrentState.id)" -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled users from creating M365 Groups.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable users from creating M365 Groups: $ErrorMessage" -sev 'Error' + } + } + } + if ($Settings.alert -eq $true) { + + if ($CurrentState) { + if (($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value -eq 'false') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are disabled from creating M365 Groups.' -sev Info + } else { + Write-StandardsAlert -message 'Users are not disabled from creating M365 Groups.' -object $CurrentState -tenant $tenant -standardName 'DisableM365GroupUsers' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are not disabled from creating M365 Groups.' -sev Info + } + } else { + Write-StandardsAlert -message 'Users are not disabled from creating M365 Groups.' -object @{CurrentState = $null } -tenant $tenant -standardName 'DisableM365GroupUsers' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are not disabled from creating M365 Groups.' -sev Info + } + } + if ($Settings.report -eq $true) { + if ($CurrentState) { + if (($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value -eq 'false') { + $CurrentState = $true + } else { + $CurrentState = $false + } + } else { + $CurrentState = $false + } + + $CurrentValue = [PSCustomObject]@{ + M365GroupUserCreationDisabled = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + M365GroupUserCreationDisabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableM365GroupUsers' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableM365GroupUsers' -FieldValue $CurrentState -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 new file mode 100644 index 000000000000..42c955f5186f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 @@ -0,0 +1,109 @@ +function Invoke-CIPPStandardDisableOutlookAddins { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableOutlookAddins + .SYNOPSIS + (Label) Disable users from installing add-ins in Outlook + .DESCRIPTION + (Helptext) Disables the ability for users to install add-ins in Outlook. This is to prevent users from installing malicious add-ins. + (DocsDescription) Disables users from being able to install add-ins in Outlook. Only admins are able to approve add-ins for the users. This is done to reduce the threat surface for data exfiltration. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.3.1)" + "exo_outlookaddins" + "NIST CSF 2.0 (PR.AA-05)" + "NIST CSF 2.0 (PR.PS-05)" + EXECUTIVETEXT + Prevents employees from installing third-party add-ins in Outlook without administrative approval, reducing security risks from potentially malicious extensions. This ensures only vetted and approved tools can access company email data while maintaining centralized control over email functionality. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2024-02-05 + POWERSHELLEQUIVALENT + Get-ManagementRoleAssignment \| Remove-ManagementRoleAssignment + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableOutlookAddins' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RoleAssignmentPolicy' | + Where-Object { $_.IsDefault -eq $true } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableOutlookAddins state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $Roles = @('My Custom Apps', 'My Marketplace Apps', 'My ReadWriteMailbox Apps') + $RolesToRemove = foreach ($Role in $Roles) { + if ($CurrentInfo.AssignedRoles -contains $Role) { + $Role + } + } + + if ($Settings.remediate -eq $true) { + if ($RolesToRemove) { + $Errors = [System.Collections.Generic.List[string]]::new() + + foreach ($Role in $RolesToRemove) { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ RoleAssignee = $CurrentInfo.Identity; Role = $Role } | ForEach-Object { + New-ExoRequest -tenantid $Tenant -cmdlet 'Remove-ManagementRoleAssignment' -cmdParams @{ Identity = $_.Guid; Confirm = $false } -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled Outlook add-in role: $Role" -sev Debug + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable Outlook add-in role: $Role Error: $ErrorMessage" -sev Error + $Errors.Add($Role) + } + } + + if ($Errors.Count -gt 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable users from installing Outlook add-ins. Roles: $($Errors -join ', ')" -sev Error + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled users from installing Outlook add-ins. Roles removed: $($RolesToRemove -join ', ')" -sev Info + $RolesToRemove = $null + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users installing Outlook add-ins already disabled' -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($RolesToRemove) { + Write-StandardsAlert -message 'Users are not disabled from installing Outlook add-ins.' -object @{ AllowedApps = $RolesToRemove -join ',' } -tenant $tenant -standardName 'DisableOutlookAddins' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are not disabled from installing Outlook add-ins.' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are disabled from installing Outlook add-ins.' -sev Info + } + } + if ($Settings.report -eq $true) { + $State = if ($RolesToRemove) { $false } else { $true } + + $CurrentValue = [PSCustomObject]@{ + DisabledOutlookAddins = $State + } + $ExpectedValue = [PSCustomObject]@{ + DisabledOutlookAddins = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableOutlookAddins' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisabledOutlookAddins' -FieldValue $State -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 new file mode 100644 index 000000000000..244a867a3d3e --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 @@ -0,0 +1,77 @@ +function Invoke-CIPPStandardDisableQRCodePin { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableQRCodePin + .SYNOPSIS + (Label) Disables QR Code Pin as an MFA method + .DESCRIPTION + (Helptext) This blocks users from using QR Code Pin as an MFA method. If a user only has QR Code Pin as a MFA method, they will be unable to log in. + (DocsDescription) Disables QR Code Pin as an MFA method for the tenant. If a user only has QR Code Pin as a MFA method, they will be unable to sign in. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Disables QR Code Pin authentication method due to security concerns, forcing users to adopt more secure authentication alternatives. This helps standardize authentication methods and reduces potential security vulnerabilities while ensuring employees use more robust multi-factor authentication options. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2024-02-10 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/QRCodePin' -tenantid $Tenant + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableQRCodePin state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'disabled') + + If ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'QR Code Pin authentication method is already disabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'QRCodePin' -Enabled $false + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'QR Code Pin authentication method is not enabled' -sev Info + } else { + Write-StandardsAlert -message 'QR Code Pin authentication method is enabled' -object $CurrentState -tenant $tenant -standardName 'DisableQRCodePin' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'QR Code Pin authentication method is enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $StateIsCorrect -eq $true ? $true : $CurrentState + + $CurrentValue = [PSCustomObject]@{ + DisableQRCodePin = $state + } + $ExpectedValue = [PSCustomObject]@{ + DisableQRCodePin = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableQRCodePin' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableQRCodePin' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 new file mode 100644 index 000000000000..3e29a5d81a3b --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 @@ -0,0 +1,91 @@ +function Invoke-CIPPStandardDisableReshare { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableReshare + .SYNOPSIS + (Label) Disable Re-sharing by External Users + .DESCRIPTION + (Helptext) Disables the ability for external users to share files they don't own. Sharing links can only be made for People with existing access + (DocsDescription) Disables the ability for external users to share files they don't own. Sharing links can only be made for People with existing access. This is a tenant wide setting and overrules any settings set on the site level + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.2.5)" + "CISA (MS.AAD.14.2v1)" + "CISA (MS.SPO.1.2v1)" + EXECUTIVETEXT + Prevents external users from sharing company documents with additional people, maintaining control over document distribution and preventing unauthorized access expansion. This security measure ensures that external sharing remains within intended boundaries set by internal employees. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2022-06-15 + POWERSHELLEQUIVALENT + Update-MgBetaAdminSharePointSetting + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableReshare' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableReshare state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($CurrentInfo.isResharingByExternalUsersEnabled) { + try { + $body = '{"isResharingByExternalUsersEnabled": "False"}' + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled guests from resharing files' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable guests from resharing files: $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guests are already disabled from resharing files' -sev Info + } + } + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.isResharingByExternalUsersEnabled) { + Write-StandardsAlert -message 'Guests are allowed to reshare files' -object $CurrentInfo -tenant $tenant -standardName 'DisableReshare' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guests are allowed to reshare files' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guests are not allowed to reshare files' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $CurrentInfo.isResharingByExternalUsersEnabled ? ($CurrentInfo | Select-Object isResharingByExternalUsersEnabled) : $true + + $CurrentValue = [PSCustomObject]@{ + DisableReshare = $state + } + $ExpectedValue = [PSCustomObject]@{ + DisableReshare = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableReshare' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableReshare' -FieldValue $CurrentInfo.isResharingByExternalUsersEnabled -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 new file mode 100644 index 000000000000..ca70a1330275 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 @@ -0,0 +1,96 @@ +function Invoke-CIPPStandardDisableResourceMailbox { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableResourceMailbox + .SYNOPSIS + (Label) Disable Unlicensed Resource Mailbox Entra accounts + .DESCRIPTION + (Helptext) Blocks login for all accounts that are marked as a resource mailbox and does not have a license assigned. Accounts that are synced from on-premises AD are excluded, as account state is managed in the on-premises AD. + (DocsDescription) Resource mailboxes can be directly logged into if the password is reset, this presents a security risk as do all shared login credentials. Microsoft's recommendation is to disable the user account for resource mailboxes. Accounts that are synced from on-premises AD are excluded, as account state is managed in the on-premises AD. + .NOTES + CAT + Exchange Standards + TAG + "NIST CSF 2.0 (PR.AA-01)" + EXECUTIVETEXT + Prevents direct login to resource mailbox accounts (like conference rooms or equipment), ensuring they can only be managed through proper administrative channels. This security measure eliminates potential unauthorized access to resource scheduling systems while maintaining proper booking functionality. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2025-06-01 + POWERSHELLEQUIVALENT + Get-Mailbox & Update-MgUser + RECOMMENDEDBY + "Microsoft" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableResourceMailbox' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Get all users that are able to be + try { + $UserList = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999&$filter=accountEnabled eq true and onPremisesSyncEnabled ne true and assignedLicenses/$count eq 0&$count=true' -Tenantid $Tenant -ComplexFilter | + Where-Object { $_.userType -eq 'Member' } + $ResourceMailboxList = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ Filter = "RecipientTypeDetails -eq 'RoomMailbox' -or RecipientTypeDetails -eq 'EquipmentMailbox'" } -Select 'UserPrincipalName,DisplayName,RecipientTypeDetails,ExternalDirectoryObjectId' | + Where-Object { $_.ExternalDirectoryObjectId -in $UserList.id } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableResourceMailbox state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + + if ($ResourceMailboxList) { + Write-Host "Resource Mailboxes to disable: $($ResourceMailboxList.Count)" + $ResourceMailboxList | ForEach-Object { + try { + New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/users/$($_.ExternalDirectoryObjectId)" -type PATCH -body '{"accountEnabled":"false"}' -tenantid $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Entra account for $($_.RecipientTypeDetails), $($_.DisplayName), $($_.UserPrincipalName) disabled." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Entra account for $($_.RecipientTypeDetails), $($_.DisplayName), $($_.UserPrincipalName). Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All Entra accounts for resource mailboxes are already disabled.' -sev Info + } + } + + if ($Settings.alert -eq $true) { + + if ($ResourceMailboxList) { + Write-StandardsAlert -message "Resource mailboxes with enabled accounts: $($ResourceMailboxList.Count)" -object $ResourceMailboxList -tenant $Tenant -standardName 'DisableResourceMailbox' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Resource mailboxes with enabled accounts: $($ResourceMailboxList.Count)" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All Entra accounts for resource mailboxes are disabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + ResourceMailboxesToDisable = @($ResourceMailboxList) + } + $ExpectedValue = [PSCustomObject]@{ + ResourceMailboxesToDisable = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableResourceMailbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableResourceMailbox' -FieldValue $ResourceMailboxList -StoreAs json -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 new file mode 100644 index 000000000000..f793a36cad48 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 @@ -0,0 +1,79 @@ +function Invoke-CIPPStandardDisableSMS { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableSMS + .SYNOPSIS + (Label) Disables SMS as an MFA method + .DESCRIPTION + (Helptext) This blocks users from using SMS as an MFA method. If a user only has SMS as a MFA method, they will be unable to log in. + (DocsDescription) Disables SMS as an MFA method for the tenant. If a user only has SMS as a MFA method, they will be unable to sign in. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (2.3.5)" + "EIDSCA.AS04" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Disables SMS text messages as a multi-factor authentication method due to security vulnerabilities like SIM swapping attacks. This forces users to adopt more secure authentication methods like authenticator apps or hardware tokens, significantly improving account security. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2023-12-18 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/SMS' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableSMS state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'disabled') + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SMS authentication method is already disabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'SMS' -Enabled $false + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SMS authentication method is not enabled' -sev Info + } else { + Write-StandardsAlert -message 'SMS authentication method is enabled' -object $CurrentState -tenant $tenant -standardName 'DisableSMS' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SMS authentication method is enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + + $CurrentValue = [PSCustomObject]@{ + DisableSMS = $StateIsCorrect + } + $ExpectedValue = [PSCustomObject]@{ + DisableSMS = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableSMS' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableSMS' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 new file mode 100644 index 000000000000..a114b59134bd --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 @@ -0,0 +1,81 @@ +function Invoke-CIPPStandardDisableSecurityGroupUsers { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableSecurityGroupUsers + .SYNOPSIS + (Label) Disable Security Group creation by users + .DESCRIPTION + (Helptext) Completely disables the creation of security groups by users. This also breaks the ability to manage groups themselves, or create Teams + (DocsDescription) Completely disables the creation of security groups by users. This also breaks the ability to manage groups themselves, or create Teams + .NOTES + CAT + Entra (AAD) Standards + TAG + "CISA (MS.AAD.20.1v1)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts the creation of security groups to IT administrators only, preventing employees from creating unauthorized access groups that could bypass security controls. This ensures proper governance of access permissions and maintains centralized control over who can access what resources. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2022-07-17 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthorizationPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableSecurityGroupUsers state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if ($CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are already not allowed to create Security Groups.' -sev Info + } else { + try { + $body = '{"defaultUserRolePermissions":{"allowedToCreateSecurityGroups":false}}' + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled users from creating Security Groups.' -sev Info + $CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups = $false + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable users from creating Security Groups: $ErrorMessage" -sev 'Error' + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are not allowed to create Security Groups.' -sev Info + } else { + Write-StandardsAlert -message 'Users are allowed to create Security Groups' -object $CurrentInfo -tenant $tenant -standardName 'DisableSecurityGroupUsers' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are allowed to create Security Groups.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + DisableSecurityGroupUsers = $CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -eq $false + } + $ExpectedValue = [PSCustomObject]@{ + DisableSecurityGroupUsers = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableSecurityGroupUsers' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'DisableSecurityGroupUsers' -FieldValue $CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 new file mode 100644 index 000000000000..41dc31365e43 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 @@ -0,0 +1,104 @@ +function Invoke-CIPPStandardDisableSelfServiceLicenses { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableSelfServiceLicenses + .SYNOPSIS + (Label) Disable Self Service Licensing + .DESCRIPTION + (Helptext) Note: requires 'Billing Administrator' GDAP role. This standard disables all self service licenses and enables all exclusions + (DocsDescription) Note: requires 'Billing Administrator' GDAP role. This standard disables all self service licenses and enables all exclusions + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Prevents employees from purchasing Microsoft 365 licenses independently, ensuring all software acquisitions go through proper procurement channels. This maintains budget control, prevents unauthorized spending, and ensures compliance with corporate licensing agreements. + ADDEDCOMPONENT + {"type":"textField","name":"standards.DisableSelfServiceLicenses.Exclusions","label":"License Ids to exclude from this standard","required":false} + IMPACT + Medium Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Set-MsolCompanySettings -AllowAdHocSubscriptions \$false + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $selfServiceItems = (New-GraphGETRequest -scope 'aeb86249-8ea3-49e2-900b-54cc8e308f85/.default' -uri 'https://licensing.m365.microsoft.com/v1.0/policies/AllowSelfServicePurchase/products' -tenantid $Tenant).items + } catch { + if ($_.Exception.Message -like '*403*') { + $Message = "Failed to retrieve self service products: Insufficient permissions. Please ensure the tenant GDAP relationship includes the 'Billing Administrator' role: $($_.Exception.Message)" + } + else { + $Message = "Failed to retrieve self service products: $($_.Exception.Message)" + } + Write-LogMessage -API 'Standards' -tenant $tenant -message $Message -sev Error + throw $Message + } + + if ($settings.remediate) { + if ($settings.exclusions -like '*;*') { + $exclusions = $settings.Exclusions -split (';') + } else { + $exclusions = $settings.Exclusions -split (',') + } + + $selfServiceItems | ForEach-Object { + $body = $null + + if ($_.policyValue -eq 'Enabled' -AND ($_.productId -in $exclusions)) { + # Self service is enabled on product and productId is in exclusions, skip + } + if ($_.policyValue -eq 'Disabled' -AND ($_.productId -in $exclusions)) { + # Self service is disabled on product and productId is in exclusions, enable + $body = '{ "policyValue": "Enabled" }' + } + if ($_.policyValue -eq 'Enabled' -AND ($_.productId -notin $exclusions)) { + # Self service is enabled on product and productId is NOT in exclusions, disable + $body = '{ "policyValue": "Disabled" }' + } + if ($_.policyValue -eq 'Disabled' -AND ($_.productId -notin $exclusions)) { + # Self service is disabled on product and productId is NOT in exclusions, skip + } + + try { + if ($body) { + $product = $_ + New-GraphPOSTRequest -scope 'aeb86249-8ea3-49e2-900b-54cc8e308f85/.default' -uri "https://licensing.m365.microsoft.com/v1.0/policies/AllowSelfServicePurchase/products/$($product.productId)" -tenantid $Tenant -body $body -type PUT + } + } catch { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set product status for $($product.productId) with body $($body) for reason: $($_.Exception.Message)" -sev Error + #Write-Error "Failed to disable product $($product.productName):$($_.Exception.Message)" + } + } + + if (!$exclusions) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No exclusions set for self-service licenses, disabled all not excluded licenses for self-service.' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Exclusions present for self-service licenses, disabled all not excluded licenses for self-service.' -sev Info + } + } + + if ($Settings.alert) { + $selfServiceItemsToAlert = $selfServiceItems | Where-Object { $_.policyValue -eq 'Enabled' } + if (!$selfServiceItemsToAlert) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'All self-service licenses are disabled' -sev Info + } else { + Write-StandardsAlert -message "One or more self-service licenses are enabled" -object $selfServiceItemsToAlert -tenant $tenant -standardName 'DisableSelfServiceLicenses' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'One or more self-service licenses are enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + #Add-CIPPBPAField -FieldName '????' -FieldValue "????" -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 new file mode 100644 index 000000000000..88b113d8d554 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 @@ -0,0 +1,91 @@ +function Invoke-CIPPStandardDisableSharePointLegacyAuth { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableSharePointLegacyAuth + .SYNOPSIS + (Label) Disable legacy basic authentication for SharePoint + .DESCRIPTION + (Helptext) Disables the ability to authenticate with SharePoint using legacy authentication methods. Any applications that use legacy authentication will need to be updated to use modern authentication. + (DocsDescription) Disables the ability for users and applications to access SharePoint via legacy basic authentication. This will likely not have any user impact, but will block systems/applications depending on basic auth or the SharePointOnlineCredentials class. + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (6.5.1)" + "CIS M365 5.0 (7.2.1)" + "spo_legacy_auth" + "CISA (MS.AAD.3.1v1)" + "NIST CSF 2.0 (PR.IR-01)" + EXECUTIVETEXT + Disables outdated authentication methods for SharePoint access, forcing applications and users to use modern, more secure authentication protocols. This significantly improves security by eliminating vulnerable authentication pathways while requiring updates to older applications. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2024-02-05 + POWERSHELLEQUIVALENT + Set-SPOTenant -LegacyAuthProtocolsEnabled \$false + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableSharePointLegacyAuth' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings?$select=isLegacyAuthProtocolsEnabled' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableSharePointLegacyAuth state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($CurrentInfo.isLegacyAuthProtocolsEnabled) { + try { + $body = '{"isLegacyAuthProtocolsEnabled": "false"}' + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled SharePoint basic authentication' -sev Info + $CurrentInfo.isLegacyAuthProtocolsEnabled = $false + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable SharePoint basic authentication. Error: $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SharePoint basic authentication is already disabled' -sev Info + } + } + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.isLegacyAuthProtocolsEnabled) { + Write-StandardsAlert -message 'SharePoint basic authentication is enabled' -object $CurrentInfo -tenant $tenant -standardName 'DisableSharePointLegacyAuth' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SharePoint basic authentication is enabled' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SharePoint basic authentication is disabled' -sev Info + } + } + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + DisableSharePointLegacyAuth = $CurrentInfo.isLegacyAuthProtocolsEnabled -eq $false + } + $ExpectedValue = [PSCustomObject]@{ + DisableSharePointLegacyAuth = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableSharePointLegacyAuth' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'SharePointLegacyAuthEnabled' -FieldValue $CurrentInfo.isLegacyAuthProtocolsEnabled -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 new file mode 100644 index 000000000000..01b501aec319 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 @@ -0,0 +1,88 @@ +function Invoke-CIPPStandardDisableSharedMailbox { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableSharedMailbox + .SYNOPSIS + (Label) Disable Shared Mailbox Entra accounts + .DESCRIPTION + (Helptext) Blocks login for all accounts that are marked as a shared mailbox. This is Microsoft best practice to prevent direct logons to shared mailboxes. + (DocsDescription) Shared mailboxes can be directly logged into if the password is reset, this presents a security risk as do all shared login credentials. Microsoft's recommendation is to disable the user account for shared mailboxes. It would be a good idea to review the sign-in reports to establish potential impact. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (1.2.2)" + "CISA (MS.AAD.10.1v1)" + "NIST CSF 2.0 (PR.AA-01)" + EXECUTIVETEXT + Prevents direct login to shared mailbox accounts (like info@company.com), ensuring they can only be accessed through authorized users' accounts. This security measure eliminates the risk of shared passwords and unauthorized access while maintaining proper access control and audit trails. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Get-Mailbox & Update-MgUser + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $UserList = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999&$filter=accountEnabled eq true and onPremisesSyncEnabled ne true&$count=true' -Tenantid $Tenant -ComplexFilter + $SharedMailboxList = (New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($Tenant)/Mailbox" -Tenantid $Tenant -scope ExchangeOnline | Where-Object { $_.RecipientTypeDetails -eq 'SharedMailbox' -or $_.RecipientTypeDetails -eq 'SchedulingMailbox' -and $_.UserPrincipalName -in $UserList.UserPrincipalName }) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableSharedMailbox state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($SharedMailboxList) { + $SharedMailboxList | ForEach-Object { + try { + New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/users/$($_.ObjectKey)" -type PATCH -body '{"accountEnabled":"false"}' -tenantid $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Entra account for shared mailbox $($_.DisplayName) disabled." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Entra account for shared mailbox. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All Entra accounts for shared mailboxes are already disabled.' -sev Info + } + } + + if ($Settings.alert -eq $true) { + + if ($SharedMailboxList) { + Write-StandardsAlert -message "Shared mailboxes with enabled accounts: $($SharedMailboxList.Count)" -object $SharedMailboxList -tenant $Tenant -standardName 'DisableSharedMailbox' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Shared mailboxes with enabled accounts: $($SharedMailboxList.Count)" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All Entra accounts for shared mailboxes are disabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $State = $SharedMailboxList ? $SharedMailboxList : @() + + $CurrentValue = [PSCustomObject]@{ + DisableSharedMailbox = @($State) + } + $ExpectedValue = [PSCustomObject]@{ + DisableSharedMailbox = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableSharedMailbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'DisableSharedMailbox' -FieldValue $SharedMailboxList -StoreAs json -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 new file mode 100644 index 000000000000..e82a30d9de1a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 @@ -0,0 +1,89 @@ +function Invoke-CIPPStandardDisableTNEF { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableTNEF + .SYNOPSIS + (Label) Disable TNEF/winmail.dat + .DESCRIPTION + (Helptext) Disables Transport Neutral Encapsulation Format (TNEF)/winmail.dat for the tenant. TNEF can cause issues if the recipient is not using a client supporting TNEF. + (DocsDescription) Disables Transport Neutral Encapsulation Format (TNEF)/winmail.dat for the tenant. TNEF can cause issues if the recipient is not using a client supporting TNEF. Cannot be overridden by the user. For more information, see [Microsoft's documentation.](https://learn.microsoft.com/en-us/exchange/mail-flow/content-conversion/tnef-conversion?view=exchserver-2019) + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Prevents the creation of winmail.dat attachments that can cause compatibility issues when sending emails to external recipients using non-Outlook email clients. This improves email compatibility and reduces support issues with external partners and customers. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-04-26 + POWERSHELLEQUIVALENT + Set-RemoteDomain -Identity 'Default' -TNEFEnabled \$false + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param ($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableTNEF' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RemoteDomain' -cmdParams @{Identity = 'Default' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableTNEF state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CurrentState.TNEFEnabled -ne $false) { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-RemoteDomain' -cmdParams @{Identity = 'Default'; TNEFEnabled = $false } -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled TNEF for Default Remote Domain' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable TNEF for Default Remote Domain. Error: $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'TNEF is already disabled for Default Remote Domain' -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentState.TNEFEnabled -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'TNEF is disabled for Default Remote Domain' -sev Info + } else { + $Object = $CurrentState | Select-Object -Property TNEFEnabled + Write-StandardsAlert -message 'TNEF is not disabled for Default Remote Domain' -object $Object -tenant $tenant -standardName 'DisableTNEF' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'TNEF is not disabled for Default Remote Domain' -sev Info + } + } + + if ($Settings.report -eq $true) { + $State = if ($CurrentState.TNEFEnabled -ne $false) { $false } else { $true } + + $CurrentValue = [PSCustomObject]@{ + DisableTNEF = $State + } + $ExpectedValue = [PSCustomObject]@{ + DisableTNEF = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableTNEF' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'TNEFDisabled' -FieldValue $State -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 new file mode 100644 index 000000000000..c68199c54554 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 @@ -0,0 +1,88 @@ +function Invoke-CIPPStandardDisableTenantCreation { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableTenantCreation + .SYNOPSIS + (Label) Disable M365 Tenant creation by users + .DESCRIPTION + (Helptext) Restricts creation of M365 tenants to the Global Administrator or Tenant Creator roles. + (DocsDescription) Users by default are allowed to create M365 tenants. This disables that so only admins can create new M365 tenants. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (1.2.3)" + "CISA (MS.AAD.6.1v1)" + EXECUTIVETEXT + Prevents regular employees from creating new Microsoft 365 organizations, ensuring all new tenants are properly managed and controlled by IT administrators. This prevents unauthorized shadow IT environments and maintains centralized governance over Microsoft 365 resources. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2022-11-29 + POWERSHELLEQUIVALENT + Update-MgPolicyAuthorizationPolicy + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableTenantCreation state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.defaultUserRolePermissions.allowedToCreateTenants -eq $false) + + if ($Settings.remediate -eq $true) { + Write-Host "Time to remediate DisableTenantCreation standard for tenant $Tenant" + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Users are already disabled from creating tenants.' -sev Info + } else { + try { + $GraphRequest = @{ + tenantid = $Tenant + uri = 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' + Type = 'PATCH' + Body = '{"defaultUserRolePermissions":{"allowedToCreateTenants":false}}' + } + New-GraphPOSTRequest @GraphRequest + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Successfully disabled users from creating tenants.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable users from creating tenants. Error: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Users are not allowed to create tenants.' -sev Info + } else { + Write-StandardsAlert -message 'Users are allowed to create tenants' -object $CurrentState -tenant $Tenant -standardName 'DisableTenantCreation' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Users are allowed to create tenants.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + DisableTenantCreation = $StateIsCorrect + } + $ExpectedValue = [PSCustomObject]@{ + DisableTenantCreation = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableTenantCreation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableTenantCreation' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 new file mode 100644 index 000000000000..2eeda69ca0f1 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 @@ -0,0 +1,89 @@ +function Invoke-CIPPStandardDisableUserSiteCreate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableUserSiteCreate + .SYNOPSIS + (Label) Disable site creation by standard users + .DESCRIPTION + (Helptext) Disables users from creating new SharePoint sites + (DocsDescription) Disables standard users from creating SharePoint sites, also disables the ability to fully create teams + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Restricts the creation of new SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces and ensuring proper governance. This maintains organized information architecture while requiring approval for new collaborative environments. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2022-06-15 + POWERSHELLEQUIVALENT + Update-MgAdminSharePointSetting + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableUserSiteCreate' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableUserSiteCreate state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($CurrentInfo.isSiteCreationEnabled -or $CurrentInfo.isSiteCreationUIEnabled) { + try { + $body = '{"isSiteCreationEnabled": false, "isSiteCreationUIEnabled": false}' + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled standard users from creating sites and adjusted UI setting' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable standard users from creating sites: $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Standard users are already disabled from creating sites and UI setting is adjusted' -sev Info + } + + } + + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.isSiteCreationEnabled -eq $false -and $CurrentInfo.isSiteCreationUIEnabled -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Standard users are not allowed to create sites and UI setting is disabled' -sev Info + } else { + Write-StandardsAlert -message 'Standard users are allowed to create sites or UI setting is enabled' -object $CurrentInfo -tenant $tenant -standardName 'DisableUserSiteCreate' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Standard users are allowed to create sites or UI setting is enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $CurrentInfo.isSiteCreationEnabled -and $CurrentInfo.isSiteCreationUIEnabled ? ($CurrentInfo | Select-Object isSiteCreationEnabled, isSiteCreationUIEnabled) : $true + + $CurrentValue = [PSCustomObject]@{ + DisableUserSiteCreate = $state + } + $ExpectedValue = [PSCustomObject]@{ + DisableUserSiteCreate = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableUserSiteCreate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableUserSiteCreate' -FieldValue $CurrentInfo.isSiteCreationEnabled -StoreAs bool -Tenant $tenant + Add-CIPPBPAField -FieldName 'DisableUserSiteCreateUI' -FieldValue $CurrentInfo.isSiteCreationUIEnabled -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 new file mode 100644 index 000000000000..4ae2623e8e1b --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 @@ -0,0 +1,81 @@ +function Invoke-CIPPStandardDisableViva { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableViva + .SYNOPSIS + (Label) Disable daily Insight/Viva reports + .DESCRIPTION + (Helptext) Disables the daily viva reports for all users. This standard requires the CIPP-SAM application to have the Company Administrator (Global Admin) role in the tenant. Enable this using CIPP > Advanced > Super Admin > SAM App Roles. Activate the roles with a CPV refresh. + (DocsDescription) Disables the daily viva reports for all users. This standard requires the CIPP-SAM application to have the Company Administrator (Global Admin) role in the tenant. Enable this using CIPP \> Advanced \> Super Admin \> SAM App Roles. Activate the roles with a CPV refresh. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Disables daily Microsoft Viva Insights reports that are automatically sent to employees, reducing email volume and allowing organizations to control when and how productivity insights are shared. This can help prevent information overload while maintaining the ability to access insights when needed. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2022-05-25 + POWERSHELLEQUIVALENT + Set-UserBriefingConfig + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + # TODO This does not work without Global Admin permissions for some reason. Throws an "EXCEPTION: Tenant admin role is required" error. -Bobby + $CurrentSetting = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$Tenant/settings/peopleInsights" -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to get Viva insights settings. Error: $ErrorMessage" -sev Error + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CurrentSetting.isEnabledInOrganization -eq $false) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Viva is already disabled.' -sev Info + } else { + try { + # TODO This does not work without Global Admin permissions for some reason. Throws an "EXCEPTION: Tenant admin role is required" error. -Bobby + New-GraphPOSTRequest -Uri "https://graph.microsoft.com/beta/organization/$Tenant/settings/peopleInsights" -tenantid $Tenant -Type PATCH -Body '{"isEnabledInOrganization": false}' -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Disabled Viva insights' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Viva for all users. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentSetting.isEnabledInOrganization -eq $false) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Viva is disabled' -sev Info + } else { + Write-StandardsAlert -message 'Viva is not disabled' -object $CurrentSetting -tenant $Tenant -standardName 'DisableViva' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Viva is not disabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + DisableViva = -not $CurrentSetting.isEnabledInOrganization + } + $ExpectedValue = [PSCustomObject]@{ + DisableViva = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableViva' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableViva' -FieldValue $CurrentSetting.isEnabledInOrganization -StoreAs bool -Tenant $Tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 new file mode 100644 index 000000000000..254bb83e0d4e --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 @@ -0,0 +1,78 @@ +function Invoke-CIPPStandardDisableVoice { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableVoice + .SYNOPSIS + (Label) Disables Voice call as an MFA method + .DESCRIPTION + (Helptext) This blocks users from using Voice call as an MFA method. If a user only has Voice as a MFA method, they will be unable to log in. + (DocsDescription) Disables Voice call as an MFA method for the tenant. If a user only has Voice call as a MFA method, they will be unable to sign in. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (2.3.5)" + "EIDSCA.AV01" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Disables voice call authentication due to security vulnerabilities and social engineering risks. This forces users to adopt more secure authentication methods like authenticator apps, improving overall account security by eliminating phone-based attack vectors. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2023-12-18 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Voice' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableVoice state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'disabled') + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Voice authentication method is already disabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'Voice' -Enabled $false + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Voice authentication method is not enabled' -sev Info + } else { + Write-StandardsAlert -message 'Voice authentication method is enabled' -object $CurrentState -tenant $tenant -standardName 'DisableVoice' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Voice authentication method is enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + DisableVoice = $StateIsCorrect + } + $ExpectedValue = [PSCustomObject]@{ + DisableVoice = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableVoice' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableVoice' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 new file mode 100644 index 000000000000..5ea05a264e08 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 @@ -0,0 +1,75 @@ +function Invoke-CIPPStandardDisablex509Certificate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) Disablex509Certificate + .SYNOPSIS + (Label) Disables Certificates as an MFA method + .DESCRIPTION + (Helptext) This blocks users from using Certificates as an MFA method. + (DocsDescription) This blocks users from using Certificates as an MFA method. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Disables certificate-based authentication as a multi-factor authentication method, typically used when organizations want to standardize on other authentication methods or when certificate management becomes too complex for the security benefit provided. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2023-12-18 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/x509Certificate' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Disablex509Certificate state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'disabled') + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'x509Certificate authentication method is already disabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'x509Certificate' -Enabled $false + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'x509Certificate authentication method is not enabled' -sev Info + } else { + Write-StandardsAlert -message 'x509Certificate authentication method is enabled' -object $CurrentState -tenant $tenant -standardName 'Disablex509Certificate' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'x509Certificate authentication method is enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + Disablex509Certificate = $StateIsCorrect + } + $ExpectedValue = [PSCustomObject]@{ + Disablex509Certificate = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.Disablex509Certificate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'Disablex509Certificate' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 new file mode 100644 index 000000000000..81bfe45e8006 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 @@ -0,0 +1,96 @@ +function Invoke-CIPPStandardEXODirectSend { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EXODirectSend + .SYNOPSIS + (Label) Set Direct Send state + .DESCRIPTION + (Helptext) Sets the state of Direct Send in Exchange Online. Direct Send allows applications to send emails directly to Exchange Online mailboxes as the tenants domains, without requiring authentication. + (DocsDescription) Controls whether applications can use Direct Send to send emails directly to Exchange Online mailboxes as the tenants domains, without requiring authentication. A detailed explanation from Microsoft can be found [here.](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365) + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Controls whether business applications and devices (like printers or scanners) can send emails through the company's email system without authentication. While this enables convenient features like scan-to-email, it may pose security risks and should be carefully managed. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.EXODirectSend.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + IMPACT + Medium Impact + ADDEDDATE + 2025-05-28 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -RejectDirectSend \$true/\$false + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param ($Tenant, $Settings) + + # Determine desired state. These double negative MS loves are a bit confusing + $DesiredStateName = $Settings.state.value ?? $Settings.state + # Input validation + if ([string]::IsNullOrWhiteSpace($DesiredStateName) -or $DesiredStateName -eq 'Select a value') { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'EXODirectSend: Invalid state parameter set' -sev Error + return + } + + # Get current organization config + try { + $CurrentConfig = (New-ExoRequest -TenantID $Tenant -cmdlet 'Get-OrganizationConfig' -Select 'RejectDirectSend').RejectDirectSend + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to retrieve current Direct Send configuration: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + + $DesiredState = $DesiredStateName -eq 'disabled' ? $true : $false + $StateIsCorrect = $CurrentConfig -eq $DesiredState + + # Remediate if needed + if ($Settings.remediate -eq $true) { + + Write-Host 'Time to remediate' + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Direct Send is already set to $DesiredStateName." -sev Info + } else { + try { + $null = New-ExoRequest -TenantID $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ RejectDirectSend = $DesiredState } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Direct Send has been set to $DesiredStateName." -sev Info + $CurrentState = $DesiredState + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Direct Send state: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + # Alert if needed + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Direct Send is set to $DesiredStateName as required." -sev Info + } else { + $CurrentStateName = $CurrentState ? 'disabled' : 'enabled' + Write-StandardsAlert -message "Direct Send is $CurrentStateName but should be $DesiredStateName" -object $CurrentConfig -tenant $Tenant -standardName 'EXODirectSend' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Direct Send is $CurrentStateName but should be $DesiredStateName." -sev Info + } + } + + # Report if needed + if ($Settings.report -eq $true) { + $ExpectedState = @{ + RejectDirectSend = $DesiredState + } + $CurrentState = @{ + RejectDirectSend = $CurrentConfig + } + Set-CIPPStandardsCompareField -FieldName 'standards.EXODirectSend' -CurrentValue $CurrentState -ExpectedValue $ExpectedState -Tenant $Tenant + Add-CIPPBPAField -FieldName 'EXODirectSend' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 new file mode 100644 index 000000000000..f39c7de785f5 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 @@ -0,0 +1,87 @@ +function Invoke-CIPPStandardEXODisableAutoForwarding { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EXODisableAutoForwarding + .SYNOPSIS + (Label) Disable automatic forwarding to external recipients + .DESCRIPTION + (Helptext) Disables the ability for users to automatically forward e-mails to external recipients. + (DocsDescription) Disables the ability for users to automatically forward e-mails to external recipients. This is to prevent data exfiltration. Please check if there are any legitimate use cases for this feature before implementing, like forwarding invoices and such. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.2.1)" + "mdo_autoforwardingmode" + "mdo_blockmailforward" + "CISA (MS.EXO.4.1v1)" + "NIST CSF 2.0 (PR.DS-02)" + EXECUTIVETEXT + Prevents employees from automatically forwarding company emails to external addresses, protecting against data leaks and unauthorized information sharing. This security measure helps maintain control over sensitive business communications while preventing both accidental and intentional data exfiltration. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2024-07-26 + POWERSHELLEQUIVALENT + Set-HostedOutboundSpamFilterPolicy -AutoForwardingMode 'Off' + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EXODisableAutoForwarding' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{Identity = 'Default' } -useSystemMailbox $true + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EXODisableAutoForwarding state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = $CurrentInfo.AutoForwardingMode -eq 'Off' + + if ($Settings.remediate -eq $true) { + try { + New-ExoRequest -tenantid $tenant -cmdlet 'Set-HostedOutboundSpamFilterPolicy' -cmdParams @{ Identity = 'Default'; AutoForwardingMode = 'Off' } -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled auto forwarding' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Could not disable auto forwarding. $($ErrorMessage.NormalizedError)" -sev Error + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Auto forwarding is disabled.' -sev Info + } else { + Write-StandardsAlert -message 'Auto forwarding is not disabled' -object ($CurrentInfo | Select-Object AutoForwardingMode) -tenant $tenant -standardName 'EXODisableAutoForwarding' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Auto forwarding is not disabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + AutoForwardingMode = $CurrentInfo.AutoForwardingMode + } + $ExpectedValue = @{ + AutoForwardingMode = 'Off' + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EXODisableAutoForwarding' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'AutoForwardingDisabled' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 new file mode 100644 index 000000000000..537bb0133407 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 @@ -0,0 +1,139 @@ +function Invoke-CIPPStandardEXOOutboundSpamLimits { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EXOOutboundSpamLimits + .SYNOPSIS + (Label) Set Exchange Outbound Spam Limits + .DESCRIPTION + (Helptext) Configures the outbound spam recipient limits (external per hour, internal per hour, per day) and the action to take when a limit is reached. The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one. + (DocsDescription) Configures the Exchange Online outbound spam recipient limits for external per hour, internal per hour, and per day, along with the action to take (e.g., BlockUser, Alert) when these limits are exceeded. This helps prevent abuse and manage email flow. Microsoft's recommendations can be found [here.](https://learn.microsoft.com/en-us/defender-office-365/recommended-settings-for-eop-and-office365#eop-outbound-spam-policy-settings) The 'Set Outbound Spam Alert e-mail' standard is recommended to configure together with this one. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (2.1.6)" + EXECUTIVETEXT + Sets limits on how many emails employees can send per hour and per day to prevent spam and protect the organization's email reputation. When limits are exceeded, the system can alert administrators or temporarily block the user, helping detect compromised accounts or prevent abuse. + ADDEDCOMPONENT + {"type":"number","name":"standards.EXOOutboundSpamLimits.RecipientLimitExternalPerHour","label":"External Recipient Limit Per Hour","defaultValue":400} + {"type":"number","name":"standards.EXOOutboundSpamLimits.RecipientLimitInternalPerHour","label":"Internal Recipient Limit Per Hour","defaultValue":800} + {"type":"number","name":"standards.EXOOutboundSpamLimits.RecipientLimitPerDay","label":"Daily Recipient Limit","defaultValue":800} + {"type":"autoComplete","multiple":false,"creatable":false,"name":"standards.EXOOutboundSpamLimits.ActionWhenThresholdReached","label":"Action When Threshold Reached","options":[{"label":"Alert","value":"Alert"},{"label":"Block User","value":"BlockUser"},{"label":"Block user from sending mail for the rest of the day","value":"BlockUserForToday"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-05-13 + POWERSHELLEQUIVALENT + Set-HostedOutboundSpamFilterPolicy + RECOMMENDEDBY + "CIPP" + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EXOOutboundSpamLimits' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Make sure it handles the frontend being both autocomplete and a text field + $ActionWhenThresholdReached = $Settings.ActionWhenThresholdReached.value ?? $Settings.ActionWhenThresholdReached + + # Input validation + if ([Int32]$Settings.RecipientLimitExternalPerHour -lt 0 -or [Int32]$Settings.RecipientLimitExternalPerHour -gt 10000) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'EXOOutboundSpamLimits: Invalid RecipientLimitExternalPerHour parameter set. Must be between 0 and 10000.' -sev Error + return + } + + if ([Int32]$Settings.RecipientLimitInternalPerHour -lt 0 -or [Int32]$Settings.RecipientLimitInternalPerHour -gt 10000) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'EXOOutboundSpamLimits: Invalid RecipientLimitInternalPerHour parameter set. Must be between 0 and 10000.' -sev Error + return + } + + if ([Int32]$Settings.RecipientLimitPerDay -lt 0 -or [Int32]$Settings.RecipientLimitPerDay -gt 10000) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'EXOOutboundSpamLimits: Invalid RecipientLimitPerDay parameter set. Must be between 0 and 10000.' -sev Error + return + } + + $ValidActions = @('Alert', 'BlockUser', 'BlockUserForToday') + if ($ActionWhenThresholdReached -notin $ValidActions) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'EXOOutboundSpamLimits: Invalid ActionWhenThresholdReached parameter set. Must be one of: Alert, BlockUser, BlockUserForToday.' -sev Error + return + } + + # Get current settings + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{Identity = 'Default' } -Select 'RecipientLimitExternalPerHour, RecipientLimitInternalPerHour, RecipientLimitPerDay, ActionWhenThresholdReached' -useSystemMailbox $true | + Select-Object -ExcludeProperty *data.type* + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EXOOutboundSpamLimits state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Check if settings are already correct + $StateIsCorrect = ($CurrentInfo.RecipientLimitExternalPerHour -eq $Settings.RecipientLimitExternalPerHour) -and + ($CurrentInfo.RecipientLimitInternalPerHour -eq $Settings.RecipientLimitInternalPerHour) -and + ($CurrentInfo.RecipientLimitPerDay -eq $Settings.RecipientLimitPerDay) -and + ($CurrentInfo.ActionWhenThresholdReached -eq $ActionWhenThresholdReached) + + # Remediation + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + if ($StateIsCorrect -eq $false) { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-HostedOutboundSpamFilterPolicy' -cmdParams @{ + Identity = 'Default' + RecipientLimitExternalPerHour = $Settings.RecipientLimitExternalPerHour + RecipientLimitInternalPerHour = $Settings.RecipientLimitInternalPerHour + RecipientLimitPerDay = $Settings.RecipientLimitPerDay + ActionWhenThresholdReached = $ActionWhenThresholdReached + } -useSystemMailbox $true + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set outbound spam limits: External=$($Settings.RecipientLimitExternalPerHour), Internal=$($Settings.RecipientLimitInternalPerHour), Daily=$($Settings.RecipientLimitPerDay), Action=$($ActionWhenThresholdReached)" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set outbound spam limits. $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Outbound spam limits are already set correctly' -sev Info + } + } + + # Alert + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Outbound spam limits are correctly configured: External=$($Settings.RecipientLimitExternalPerHour), Internal=$($Settings.RecipientLimitInternalPerHour), Daily=$($Settings.RecipientLimitPerDay), Action=$($ActionWhenThresholdReached)" -sev Info + } else { + Write-StandardsAlert -message 'Outbound spam limits are not configured correctly' -object $CurrentInfo -tenant $Tenant -standardName 'EXOOutboundSpamLimits' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Outbound spam limits are not configured correctly' -sev Info + } + } + + # Report + if ($Settings.report -eq $true) { + $CurrentValue = @{ + RecipientLimitExternalPerHour = $CurrentInfo.RecipientLimitExternalPerHour + RecipientLimitInternalPerHour = $CurrentInfo.RecipientLimitInternalPerHour + RecipientLimitPerDay = $CurrentInfo.RecipientLimitPerDay + ActionWhenThresholdReached = $CurrentInfo.ActionWhenThresholdReached + } + $ExpectedValue = @{ + RecipientLimitExternalPerHour = [Int32]$Settings.RecipientLimitExternalPerHour + RecipientLimitInternalPerHour = [Int32]$Settings.RecipientLimitInternalPerHour + RecipientLimitPerDay = [Int32]$Settings.RecipientLimitPerDay + ActionWhenThresholdReached = $ActionWhenThresholdReached + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EXOOutboundSpamLimits' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'OutboundSpamLimitsConfigured' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 new file mode 100644 index 000000000000..21a52e52dda7 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 @@ -0,0 +1,135 @@ +function Invoke-CIPPStandardEnableAppConsentRequests { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableAppConsentRequests + .SYNOPSIS + (Label) Enable App consent admin requests + .DESCRIPTION + (Helptext) Enables App consent admin requests for the tenant via the GA role. Does not overwrite existing reviewer settings + (DocsDescription) Enables the ability for users to request admin consent for applications. Should be used in conjunction with the "Require admin consent for applications" standards + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (1.5.2)" + "CISA (MS.AAD.9.1v1)" + "EIDSCA.CP04" + "EIDSCA.CR01" + "EIDSCA.CR02" + "EIDSCA.CR03" + "EIDSCA.CR04" + "Essential 8 (1507)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Establishes a formal approval process where employees can request access to business applications that require administrative review. This balances security with productivity by allowing controlled access to necessary tools while preventing unauthorized application installations. + ADDEDCOMPONENT + {"type":"AdminRolesMultiSelect","label":"App Consent Reviewer Roles","name":"standards.EnableAppConsentRequests.ReviewerRoles"} + IMPACT + Low Impact + ADDEDDATE + 2023-11-27 + POWERSHELLEQUIVALENT + Update-MgPolicyAdminConsentRequestPolicy + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/adminConsentRequestPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableAppConsentRequests state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + try { + # Get current state + + # Change state to enabled with default settings + $CurrentInfo.isEnabled = 'true' + $CurrentInfo.notifyReviewers = 'true' + $CurrentInfo.remindersEnabled = 'true' + $CurrentInfo.requestDurationInDays = 30 + + # Roles from standards table + $RolesToAdd = $Settings.ReviewerRoles.value + $RoleNames = $Settings.ReviewerRoles.label -join ', ' + + # Set default if no roles are selected + if (!$RolesToAdd) { + $RolesToAdd = @('62e90394-69f5-4237-9190-012177145e10') + $RoleNames = '(Default) Global Administrator' + } + + $NewReviewers = foreach ($Role in $RolesToAdd) { + @{ + query = "/beta/roleManagement/directory/roleAssignments?`$filter=roleDefinitionId eq '$Role'" + queryType = 'MicrosoftGraph' + queryRoot = 'null' + } + } + + # Add existing reviewers + $Reviewers = [System.Collections.Generic.List[object]]::new() + foreach ($Reviewer in $CurrentInfo.reviewers) { + $RoleFound = $false + foreach ($Role in $RolesToAdd) { + if ($Reviewer.query -match $Role -or $Reviewers.query -contains $Reviewer.query) { + $RoleFound = $true + } + } + if (!$RoleFound) { + $Reviewers.add($Reviewer) + } + } + + # Add new reviewer roles + foreach ($NewReviewer in $NewReviewers) { + $Reviewers.add($NewReviewer) + } + + # Update reviewer list + $CurrentInfo.reviewers = @($Reviewers) + $body = (ConvertTo-Json -Compress -Depth 10 -InputObject $CurrentInfo) + + New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/adminConsentRequestPolicy' -Type put -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message "Enabled App consent admin requests for the following roles: $RoleNames" -sev Info + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable App consent admin requests. Error: $ErrorMessage" -sev Error + } + } + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.isEnabled -eq 'true') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'App consent admin requests are enabled.' -sev Info + } else { + Write-StandardsAlert -message 'App consent admin requests are disabled' -object $CurrentInfo -tenant $tenant -standardName 'EnableAppConsentRequests' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'App consent admin requests are disabled' -sev Info + } + } + if ($Settings.report -eq $true) { + + $CurrentValue = [PSCustomObject]@{ + EnableAppConsentRequests = $CurrentInfo.isEnabled + ReviewerCount = $CurrentInfo.reviewers.count + } + $ExpectedValue = [PSCustomObject]@{ + EnableAppConsentRequests = $true + ReviewerCount = ($Settings.ReviewerRoles.value).count + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableAppConsentRequests' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'EnableAppConsentAdminRequests' -FieldValue $CurrentInfo.isEnabled -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 new file mode 100644 index 000000000000..f790392524ba --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 @@ -0,0 +1,93 @@ +function Invoke-CIPPStandardEnableCustomerLockbox { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableCustomerLockbox + .SYNOPSIS + (Label) Enable Customer Lockbox + .DESCRIPTION + (Helptext) Enables Customer Lockbox that offers an approval process for Microsoft support to access organization data + (DocsDescription) Customer Lockbox ensures that Microsoft can't access your content to do service operations without your explicit approval. Customer Lockbox ensures only authorized requests allow access to your organizations data. + .NOTES + CAT + Global Standards + TAG + "CIS M365 5.0 (1.3.6)" + "CustomerLockBoxEnabled" + EXECUTIVETEXT + Requires explicit organizational approval before Microsoft support staff can access company data for service operations. This provides an additional layer of data protection and ensures the organization maintains control over who can access sensitive business information, even during technical support scenarios. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-01-08 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -CustomerLockBoxEnabled \$true + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableCustomerLockbox' -TenantFilter $Tenant -RequiredCapabilities @('CustomerLockbox') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CustomerLockboxStatus = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').CustomerLockboxEnabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableCustomerLockbox state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + try { + + if ($CustomerLockboxStatus) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Customer Lockbox already enabled' -sev Info + } else { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ CustomerLockboxEnabled = $true } -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Successfully enabled Customer Lockbox' -sev Info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + if ($ErrorMessage -match 'Ex5E8EA4') { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable Customer Lockbox. E5 license required. Error: $ErrorMessage" -sev Error + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable Customer Lockbox. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($CustomerLockboxStatus) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Customer Lockbox is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Customer Lockbox is not enabled' -object $CustomerLockboxStatus -tenant $tenant -standardName 'EnableCustomerLockbox' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Customer Lockbox is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $CustomerLockboxStatus ? $true : $false + + $CurrentValue = [PSCustomObject]@{ + EnableCustomerLockbox = $CustomerLockboxStatus + } + $ExpectedValue = [PSCustomObject]@{ + EnableCustomerLockbox = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableCustomerLockbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'CustomerLockboxEnabled' -FieldValue $CustomerLockboxStatus -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 new file mode 100644 index 000000000000..f137fd8d8534 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 @@ -0,0 +1,82 @@ +function Invoke-CIPPStandardEnableFIDO2 { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableFIDO2 + .SYNOPSIS + (Label) Enable FIDO2 capabilities + .DESCRIPTION + (Helptext) Enables the FIDO2 authenticationMethod for the tenant + (DocsDescription) Enables FIDO2 capabilities for the tenant. This allows users to use FIDO2 keys like a Yubikey for authentication. + .NOTES + CAT + Entra (AAD) Standards + TAG + "EIDSCA.AF01" + "EIDSCA.AF02" + "EIDSCA.AF03" + "EIDSCA.AF04" + "EIDSCA.AF05" + "EIDSCA.AF06" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Enables support for hardware security keys (like YubiKey) that provide the highest level of authentication security. These physical devices prevent phishing attacks and credential theft, offering superior protection for high-value accounts and sensitive business operations. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2022-12-08 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/Fido2' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableFIDO2 state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'enabled') + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'FIDO2 Support is already enabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'Fido2' -Enabled $true + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'FIDO2 Support is enabled' -sev Info + } else { + Write-StandardsAlert -message 'FIDO2 Support is not enabled' -object $CurrentState -tenant $tenant -standardName 'EnableFIDO2' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'FIDO2 Support is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $StateIsCorrect ? $true : $CurrentState + $CurrentValue = [PSCustomObject]@{ + EnableFIDO2 = $state + } + $ExpectedValue = [PSCustomObject]@{ + EnableFIDO2 = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.EnableFIDO2' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'EnableFIDO2' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 new file mode 100644 index 000000000000..2977733b7fc1 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 @@ -0,0 +1,76 @@ +function Invoke-CIPPStandardEnableHardwareOAuth { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableHardwareOAuth + .SYNOPSIS + (Label) Enable Hardware OAuth tokens + .DESCRIPTION + (Helptext) Enables the HardwareOath authenticationMethod for the tenant. This allows you to use hardware tokens for generating 6 digit MFA codes. + (DocsDescription) Enables Hardware OAuth tokens for the tenant. This allows users to use hardware tokens like a Yubikey for authentication. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Enables physical hardware tokens that generate secure authentication codes, providing an alternative to smartphone-based authentication. This is particularly valuable for employees who cannot use mobile devices or require the highest security standards for accessing sensitive systems. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2023-12-18 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/HardwareOath' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableHardwareOAuth state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'enabled') + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'HardwareOAuth Support is already enabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'HardwareOath' -Enabled $true + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'HardwareOAuth Support is enabled' -sev Info + } else { + Write-StandardsAlert -message 'HardwareOAuth Support is not enabled' -object $CurrentState -tenant $tenant -standardName 'EnableHardwareOAuth' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'HardwareOAuth Support is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $StateIsCorrect ? $true : $CurrentState + + $CurrentValue = [PSCustomObject]@{ + EnableHardwareOAuth = $state + } + $ExpectedValue = [PSCustomObject]@{ + EnableHardwareOAuth = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableHardwareOAuth' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'EnableHardwareOAuth' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 new file mode 100644 index 000000000000..0b7f49ac521e --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 @@ -0,0 +1,108 @@ +function Invoke-CIPPStandardEnableLitigationHold { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableLitigationHold + .SYNOPSIS + (Label) Enable Litigation Hold for all users + .DESCRIPTION + (Helptext) Enables litigation hold for all UserMailboxes with a valid license. + (DocsDescription) Enables litigation hold for all UserMailboxes with a valid license. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Preserves all email content for legal and compliance purposes by preventing permanent deletion of emails, even when users attempt to delete them. This is essential for organizations subject to legal discovery requirements or regulatory compliance mandates. + ADDEDCOMPONENT + {"type":"textField","name":"standards.EnableLitigationHold.days","required":false,"label":"Days to apply for litigation hold"} + IMPACT + Low Impact + ADDEDDATE + 2024-06-25 + POWERSHELLEQUIVALENT + Set-Mailbox -LitigationHoldEnabled \$true + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableLitigationHold' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $MailboxesNoLitHold = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ Filter = 'LitigationHoldEnabled -eq "False"' } -Select 'UserPrincipalName,PersistedCapabilities,LitigationHoldEnabled' | + Where-Object { $_.PersistedCapabilities -contains 'EXCHANGE_S_ARCHIVE_ADDON' -or $_.PersistedCapabilities -contains 'EXCHANGE_S_ENTERPRISE' -or $_.PersistedCapabilities -contains 'BPOS_S_DlpAddOn' -or $_.PersistedCapabilities -contains 'BPOS_S_Enterprise' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableLitigationHold state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if ($null -eq $MailboxesNoLitHold) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Litigation Hold already enabled for all accounts' -sev Info + } else { + try { + $Request = $MailboxesNoLitHold | ForEach-Object { + $params = @{ + CmdletInput = @{ + CmdletName = 'Set-Mailbox' + Parameters = @{ Identity = $_.UserPrincipalName; LitigationHoldEnabled = $true } + } + } + if ($null -ne $Settings.days) { + $params.CmdletInput.Parameters['LitigationHoldDuration'] = $Settings.days + } + $params + } + + + $BatchResults = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($Request) + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorMessage = Get-NormalizedError -Message $_.error + Write-Host "Failed to Enable Litigation Hold for $($_.Target). Error: $ErrorMessage" + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to Enable Litigation Hold for $($_.Target). Error: $ErrorMessage" -sev Error + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to Enable Litigation Hold for all accounts. Error: $ErrorMessage" -sev Error + } + } + + } + + if ($Settings.alert -eq $true) { + if (($MailboxesNoLitHold | Measure-Object).Count -gt 0) { + Write-StandardsAlert -message "Mailboxes without Litigation Hold: $($MailboxesNoLitHold.Count)" -object $MailboxesNoLitHold -tenant $Tenant -standardName 'EnableLitigationHold' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Mailboxes without Litigation Hold: $($MailboxesNoLitHold.Count)" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All mailboxes have Litigation Hold enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $filtered = $MailboxesNoLitHold | Select-Object -Property UserPrincipalName + $state = $filtered ? $MailboxesNoLitHold : @() + + $CurrentValue = [PSCustomObject]@{ + EnableLitigationHold = @($state) + } + $ExpectedValue = [PSCustomObject]@{ + EnableLitigationHold = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableLitigationHold' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'EnableLitHold' -FieldValue $filtered -StoreAs json -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 new file mode 100644 index 000000000000..c76f81dd6e3f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 @@ -0,0 +1,92 @@ +function Invoke-CIPPStandardEnableMailTips { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableMailTips + .SYNOPSIS + (Label) Enable all MailTips + .DESCRIPTION + (Helptext) Enables all MailTips in Outlook. MailTips are the notifications Outlook and Outlook on the web shows when an email you create, meets some requirements + (DocsDescription) Enables all MailTips in Outlook. MailTips are the notifications Outlook and Outlook on the web shows when an email you create, meets some requirements + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.5.2)" + "exo_mailtipsenabled" + EXECUTIVETEXT + Enables helpful notifications in Outlook that warn users about potential email issues, such as sending to large groups, external recipients, or invalid addresses. This reduces email mistakes and improves communication efficiency by providing real-time guidance to employees. + ADDEDCOMPONENT + {"type":"number","name":"standards.EnableMailTips.MailTipsLargeAudienceThreshold","label":"Number of recipients to trigger the large audience MailTip (Default is 25)","placeholder":"Enter a profile name","defaultValue":25} + IMPACT + Low Impact + ADDEDDATE + 2024-01-14 + POWERSHELLEQUIVALENT + Set-OrganizationConfig + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableMailTips' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $MailTipsState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' | Select-Object MailTipsAllTipsEnabled, MailTipsExternalRecipientsTipsEnabled, MailTipsGroupMetricsEnabled, MailTipsLargeAudienceThreshold + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableMailTips state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = if ($MailTipsState.MailTipsAllTipsEnabled -and $MailTipsState.MailTipsExternalRecipientsTipsEnabled -and $MailTipsState.MailTipsGroupMetricsEnabled -and $MailTipsState.MailTipsLargeAudienceThreshold -eq $Settings.MailTipsLargeAudienceThreshold) { $true } else { $false } + + if ($Settings.remediate -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All MailTips are already enabled.' -sev Info + } else { + try { + New-ExoRequest -useSystemMailbox $true -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ MailTipsAllTipsEnabled = $true; MailTipsExternalRecipientsTipsEnabled = $true; MailTipsGroupMetricsEnabled = $true; MailTipsLargeAudienceThreshold = $Settings.MailTipsLargeAudienceThreshold } + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Enabled all MailTips' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable all MailTips. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All MailTips are enabled' -sev Info + } else { + Write-StandardsAlert -message 'Not all MailTips are enabled' -object $MailTipsState -tenant $Tenant -standardName 'EnableMailTips' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Not all MailTips are enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = $MailTipsState + $ExpectedValue = [PSCustomObject]@{ + MailTipsAllTipsEnabled = $true + MailTipsExternalRecipientsTipsEnabled = $true + MailTipsGroupMetricsEnabled = $true + MailTipsLargeAudienceThreshold = $Settings.MailTipsLargeAudienceThreshold + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableMailTips' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'MailTipsEnabled' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 new file mode 100644 index 000000000000..5bfab677b1d9 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 @@ -0,0 +1,156 @@ +function Invoke-CIPPStandardEnableMailboxAuditing { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableMailboxAuditing + .SYNOPSIS + (Label) Enable Mailbox auditing + .DESCRIPTION + (Helptext) Enables Mailbox auditing for all mailboxes and on tenant level. Disables audit bypass on all mailboxes. Unified Audit Log needs to be enabled for this standard to function. + (DocsDescription) Enables mailbox auditing on tenant level and for all mailboxes. Disables audit bypass on all mailboxes. By default Microsoft does not enable mailbox auditing for Resource Mailboxes, Public Folder Mailboxes and DiscoverySearch Mailboxes. Unified Audit Log needs to be enabled for this standard to function. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.1.1)" + "CIS M365 5.0 (6.1.2)" + "CIS M365 5.0 (6.1.3)" + "exo_mailboxaudit" + "Essential 8 (1509)" + "Essential 8 (1683)" + "NIST CSF 2.0 (DE.CM-09)" + EXECUTIVETEXT + Enables comprehensive logging of all email access and modifications across all employee mailboxes, providing detailed audit trails for security investigations and compliance requirements. This helps detect unauthorized access, data breaches, and supports regulatory compliance efforts. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-01-08 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -AuditDisabled \$false + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableMailboxAuditing' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $AuditState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').AuditDisabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnableMailboxAuditing state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if ($AuditState) { + # Enable tenant level mailbox audit + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{AuditDisabled = $false } -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Tenant level mailbox audit enabled' -sev Info + $LogMessage = 'Tenant level mailbox audit enabled. ' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable tenant level mailbox audit. Error: $ErrorMessage" -sev Error + } + } else { + $LogMessage = 'Tenant level mailbox audit already enabled. ' + } + + # Commented out because MS recommends NOT doing this anymore. From docs: https://learn.microsoft.com/en-us/purview/audit-mailboxes#verify-mailbox-auditing-on-by-default-is-turned-on + # When you turn on mailbox auditing on by default for the organization, the AuditEnabled property for affected mailboxes doesn't change from False to True. In other words, mailbox auditing on by default ignores the AuditEnabled property on mailboxes. + # Auditing is automatically turned on when you create a new mailbox. You don't need to manually enable mailbox auditing for new users. + # You don't need to manage the mailbox actions that are audited. A predefined set of mailbox actions are audited by default for each sign-in type (Admin, Delegate, and Owner). + # When Microsoft releases a new mailbox action, the action might be added automatically to the list of mailbox actions that are audited by default (subject to the user having the appropriate license). This result means you don't need to add new actions on mailboxes as they're released. + # You have a consistent mailbox auditing policy across your organization because you're auditing the same actions for all mailboxes. + #$Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{filter = "auditenabled -eq 'False'" } -useSystemMailbox $true -Select 'AuditEnabled,UserPrincipalName' + #$Request = $mailboxes | ForEach-Object { + # @{ + # CmdletInput = @{ + # CmdletName = 'Set-Mailbox' + # Parameters = @{Identity = $_.UserPrincipalName; AuditEnabled = $true } + # } + #} + #} + + #$BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) + #$BatchResults | ForEach-Object { + # if ($_.error) { + # $ErrorMessage = Get-NormalizedError -Message $_.error + # Write-Host "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" + # Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable user level mailbox audit for $($_.target). Error: $ErrorMessage" -sev Error + # } + #} + + # Disable audit bypass for all mailboxes that have it enabled + + $BypassMailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxAuditBypassAssociation' -select 'GUID, AuditBypassEnabled, Name' -useSystemMailbox $true | Where-Object { $_.AuditBypassEnabled -eq $true } + $Request = $BypassMailboxes | ForEach-Object { + @{ + CmdletInput = @{ + CmdletName = 'Set-MailboxAuditBypassAssociation' + Parameters = @{Identity = $_.Guid; AuditBypassEnabled = $false } + } + } + } + + $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorMessage = Get-NormalizedError -Message $_.error + Write-Host "Failed to disable mailbox audit bypass for $($_.target). Error: $ErrorMessage" + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable mailbox audit bypass for $($_.target). Error: $ErrorMessage" -sev Error + } + } + + $LogMessage = if ($Mailboxes.Count -eq 0 -and $BypassMailboxes.Count -eq 0) { + # Make log message smaller if both are already in the desired state + 'User level mailbox audit already enabled and mailbox audit bypass already disabled for all mailboxes' + } else { + if ($Mailboxes.Count -eq 0) { + 'User level mailbox audit already enabled for all mailboxes. ' + } + if ($BypassMailboxes.Count -eq 0) { + 'Mailbox audit bypass already disabled for all mailboxes' + } + } + + Write-LogMessage -API 'Standards' -tenant $Tenant -message $LogMessage -sev Info + } + + if ($Settings.alert -eq $true) { + if ($AuditState) { + Write-StandardsAlert -message 'Tenant level mailbox audit is not enabled' -object $AuditState -tenant $Tenant -standardName 'EnableMailboxAuditing' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Tenant level mailbox audit is not enabled' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Tenant level mailbox audit is enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $AuditState = -not $AuditState + + $CurrentValue = [PSCustomObject]@{ + EnableMailboxAuditing = $AuditState + } + $ExpectedValue = [PSCustomObject]@{ + EnableMailboxAuditing = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableMailboxAuditing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'MailboxAuditingEnabled' -FieldValue $AuditState -StoreAs bool -Tenant $Tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 new file mode 100644 index 000000000000..21d676aa2253 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 @@ -0,0 +1,82 @@ +function Invoke-CIPPStandardEnableNamePronunciation { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableNamePronunciation + .SYNOPSIS + (Label) Enable Name Pronunciation + .DESCRIPTION + (Helptext) Enables the Name Pronunciation feature for the tenant. This allows users to set their name pronunciation in their profile. + (DocsDescription) Enables the Name Pronunciation feature for the tenant. This allows users to set their name pronunciation in their profile. + .NOTES + CAT + Global Standards + TAG + EXECUTIVETEXT + Enables employees to add pronunciation guides for their names in Microsoft 365 profiles, improving communication and respect in diverse workplaces. This feature helps colleagues pronounce names correctly, enhancing professional relationships and inclusive culture. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2025-06-06 + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param ($Tenant, $Settings) + + $Uri = 'https://graph.microsoft.com/beta/admin/people/namePronunciation' + try { + $CurrentState = New-GraphGetRequest -Uri $Uri -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get CurrentState for Name Pronunciation. Error: $($ErrorMessage.NormalizedError)" -sev Error + return + } + Write-Host $CurrentState + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CurrentState.isEnabledInOrganization -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Name Pronunciation is already enabled.' -sev Info + } else { + $CurrentState.isEnabledInOrganization = $true + try { + $Body = ConvertTo-Json -InputObject $CurrentState -Depth 10 -Compress + $null = New-GraphPostRequest -Uri $Uri -tenantid $Tenant -Body $Body -type PATCH -AsApp $true + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Enabled name pronunciation.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable name pronunciation. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentState.isEnabledInOrganization -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Name Pronunciation is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Name Pronunciation is not enabled' -object $CurrentState -tenant $tenant -standardName 'EnableNamePronunciation' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Name Pronunciation is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + EnableNamePronunciation = $CurrentState.isEnabledInOrganization + } + $ExpectedValue = [PSCustomObject]@{ + EnableNamePronunciation = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableNamePronunciation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'NamePronunciationEnabled' -FieldValue $CurrentState.isEnabledInOrganization -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 new file mode 100644 index 000000000000..b69034289ed8 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 @@ -0,0 +1,104 @@ +function Invoke-CIPPStandardEnableOnlineArchiving { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnableOnlineArchiving + .SYNOPSIS + (Label) Enable Online Archive for all users + .DESCRIPTION + (Helptext) Enables the In-Place Online Archive for all UserMailboxes with a valid license. + (DocsDescription) Enables the In-Place Online Archive for all UserMailboxes with a valid license. + .NOTES + CAT + Exchange Standards + TAG + "Essential 8 (1511)" + "NIST CSF 2.0 (PR.DS-11)" + EXECUTIVETEXT + Automatically enables online email archiving for all licensed employees, providing additional storage for older emails while maintaining easy access. This helps manage mailbox sizes, improves email performance, and supports compliance with data retention requirements. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-01-20 + POWERSHELLEQUIVALENT + Enable-Mailbox -Archive \$true + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EnableOnlineArchiving' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $MailboxPlans = @( 'ExchangeOnline', 'ExchangeOnlineEnterprise' ) + $MailboxesNoArchive = $MailboxPlans | ForEach-Object { + New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -cmdParams @{ MailboxPlan = $_; Filter = 'ArchiveGuid -Eq "00000000-0000-0000-0000-000000000000" -AND RecipientTypeDetails -Eq "UserMailbox"' } + Write-Host "Getting mailboxes without Online Archiving for plan $_" + } + + if ($Settings.remediate -eq $true) { + + if ($null -eq $MailboxesNoArchive) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Online Archiving already enabled for all accounts' -sev Info + } else { + try { + $Request = $MailboxesNoArchive | ForEach-Object { + @{ + CmdletInput = @{ + CmdletName = 'Enable-Mailbox' + Parameters = @{ Identity = $_.UserPrincipalName; Archive = $true } + } + } + } + + $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorMessage = Get-NormalizedError -Message $_.error + Write-Host "Failed to Enable Online Archiving for $($_.Target). Error: $ErrorMessage" + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to Enable Online Archiving for $($_.Target). Error: $ErrorMessage" -sev Error + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to Enable Online Archiving for all accounts. Error: $ErrorMessage" -sev Error + } + } + + } + + if ($Settings.alert -eq $true) { + + if ($MailboxesNoArchive) { + $Object = $MailboxesNoArchive | Select-Object -Property UserPrincipalName, ArchiveGuid + Write-StandardsAlert -message "Mailboxes without Online Archiving: $($MailboxesNoArchive.Count)" -object $Object -tenant $Tenant -standardName 'EnableOnlineArchiving' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Mailboxes without Online Archiving: $($MailboxesNoArchive.Count)" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All mailboxes have Online Archiving enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $filtered = $MailboxesNoArchive | Select-Object -Property UserPrincipalName, ArchiveGuid + $stateReport = $filtered ? $filtered : @() + + $CurrentValue = [PSCustomObject]@{ + ArchiveNotEnabled = @($stateReport) + } + $ExpectedValue = [PSCustomObject]@{ + ArchiveNotEnabled = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnableOnlineArchiving' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'EnableOnlineArchiving' -FieldValue $filtered -StoreAs json -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 new file mode 100644 index 000000000000..1288147b8448 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 @@ -0,0 +1,82 @@ +function Invoke-CIPPStandardEnablePronouns { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnablePronouns + .SYNOPSIS + (Label) Enable Pronouns + .DESCRIPTION + (Helptext) Enables the Pronouns feature for the tenant. This allows users to set their pronouns in their profile. + (DocsDescription) Enables the Pronouns feature for the tenant. This allows users to set their pronouns in their profile. + .NOTES + CAT + Global Standards + TAG + EXECUTIVETEXT + Allows employees to display their preferred pronouns in their Microsoft 365 profiles, supporting inclusive workplace practices and helping colleagues communicate respectfully. This feature enhances diversity and inclusion initiatives while fostering a more welcoming work environment. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-06-05 + POWERSHELLEQUIVALENT + Update-MgBetaAdminPeoplePronoun -IsEnabledInOrganization:\$true + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param ($Tenant, $Settings) + + $Uri = 'https://graph.microsoft.com/v1.0/admin/people/pronouns' + try { + $CurrentState = New-GraphGetRequest -Uri $Uri -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get CurrentState for Pronouns. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CurrentState.isEnabledInOrganization -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Pronouns are already enabled.' -sev Info + } else { + $CurrentState.isEnabledInOrganization = $true + try { + $Body = ConvertTo-Json -InputObject $CurrentState -Depth 10 -Compress + $null = New-GraphPostRequest -Uri $Uri -tenantid $Tenant -Body $Body -type PATCH -AsApp $true + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Enabled pronouns.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable pronouns. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentState.isEnabledInOrganization -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Pronouns are enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Pronouns are not enabled' -object $CurrentState -tenant $tenant -standardName 'EnablePronouns' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Pronouns are not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + EnablePronouns = $CurrentState.isEnabledInOrganization + } + $ExpectedValue = [PSCustomObject]@{ + EnablePronouns = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.EnablePronouns' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'PronounsEnabled' -FieldValue $CurrentState.isEnabledInOrganization -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 new file mode 100644 index 000000000000..5115ee7463b8 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 @@ -0,0 +1,153 @@ +function Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) EnrollmentWindowsHelloForBusinessConfiguration + .SYNOPSIS + (Label) Windows Hello for Business enrollment configuration + .DESCRIPTION + (Helptext) Sets the Windows Hello for Business configuration during device enrollment. + (DocsDescription) Sets the Windows Hello for Business configuration during device enrollment. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Enables or disables Windows Hello for Business during device enrollment, enhancing security through biometric or PIN-based authentication methods. This ensures that devices meet corporate security standards while providing a user-friendly sign-in experience. + ADDEDCOMPONENT + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.state","label":"Configure Windows Hello for Business","multiple":false,"options":[{"label":"Not configured","value":"notConfigured"},{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + {"type":"switch","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.securityDeviceRequired","label":"Use a Trusted Platform Module (TPM)","default":true} + {"type":"number","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinMinimumLength","label":"Minimum PIN length (4-127)","default":4} + {"type":"number","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinMaximumLength","label":"Maximum PIN length (4-127)","default":127} + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinLowercaseCharactersUsage","label":"Lowercase letters in PIN","multiple":false,"options":[{"label":"Not allowed","value":"disallowed"},{"label":"Allowed","value":"allowed"},{"label":"Required","value":"required"}]} + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinUppercaseCharactersUsage","label":"Uppercase letters in PIN","multiple":false,"options":[{"label":"Not allowed","value":"disallowed"},{"label":"Allowed","value":"allowed"},{"label":"Required","value":"required"}]} + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinSpecialCharactersUsage","label":"Special characters in PIN","multiple":false,"options":[{"label":"Not allowed","value":"disallowed"},{"label":"Allowed","value":"allowed"},{"label":"Required","value":"required"}]} + {"type":"number","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinExpirationInDays","label":"PIN expiration (days) - 0 to disable","default":0} + {"type":"number","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.pinPreviousBlockCount","label":"PIN history - 0 to disable","default":0} + {"type":"switch","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.unlockWithBiometricsEnabled","label":"Allow biometric authentication","default":true} + {"type":"autoComplete","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.enhancedBiometricsState","label":"Use enhanced anti-spoofing when available","multiple":false,"options":[{"label":"Not configured","value":"notConfigured"},{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + {"type":"switch","name":"standards.EnrollmentWindowsHelloForBusinessConfiguration.remotePassportEnabled","label":"Allow phone sign-in","default":true} + IMPACT + Low Impact + ADDEDDATE + 2025-09-25 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'EnrollmentWindowsHelloForBusinessConfiguration' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations?`$expand=assignments&orderBy=priority&`$filter=deviceEnrollmentConfigurationType eq 'WindowsHelloForBusiness'" -tenantID $Tenant -AsApp $true | + Select-Object -Property id, pinMinimumLength, pinMaximumLength, pinUppercaseCharactersUsage, pinLowercaseCharactersUsage, pinSpecialCharactersUsage, state, securityDeviceRequired, unlockWithBiometricsEnabled, remotePassportEnabled, pinPreviousBlockCount, pinExpirationInDays, enhancedBiometricsState + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the EnrollmentWindowsHelloForBusinessConfiguration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.pinMinimumLength -eq $Settings.pinMinimumLength) -and + ($CurrentState.pinMaximumLength -eq $Settings.pinMaximumLength) -and + ($CurrentState.pinUppercaseCharactersUsage -eq $Settings.pinUppercaseCharactersUsage.value) -and + ($CurrentState.pinLowercaseCharactersUsage -eq $Settings.pinLowercaseCharactersUsage.value) -and + ($CurrentState.pinSpecialCharactersUsage -eq $Settings.pinSpecialCharactersUsage.value) -and + ($CurrentState.state -eq $Settings.state.value) -and + ($CurrentState.securityDeviceRequired -eq $Settings.securityDeviceRequired) -and + ($CurrentState.unlockWithBiometricsEnabled -eq $Settings.unlockWithBiometricsEnabled) -and + ($CurrentState.remotePassportEnabled -eq $Settings.remotePassportEnabled) -and + ($CurrentState.pinPreviousBlockCount -eq $Settings.pinPreviousBlockCount) -and + ($CurrentState.pinExpirationInDays -eq $Settings.pinExpirationInDays) -and + ($CurrentState.enhancedBiometricsState -eq $Settings.enhancedBiometricsState.value) + + $CompareField = [PSCustomObject]@{ + pinMinimumLength = $CurrentState.pinMinimumLength + pinMaximumLength = $CurrentState.pinMaximumLength + pinUppercaseCharactersUsage = $CurrentState.pinUppercaseCharactersUsage + pinLowercaseCharactersUsage = $CurrentState.pinLowercaseCharactersUsage + pinSpecialCharactersUsage = $CurrentState.pinSpecialCharactersUsage + state = $CurrentState.state + securityDeviceRequired = $CurrentState.securityDeviceRequired + unlockWithBiometricsEnabled = $CurrentState.unlockWithBiometricsEnabled + remotePassportEnabled = $CurrentState.remotePassportEnabled + pinPreviousBlockCount = $CurrentState.pinPreviousBlockCount + pinExpirationInDays = $CurrentState.pinExpirationInDays + enhancedBiometricsState = $CurrentState.enhancedBiometricsState + } + + $ExpectedValue = [PSCustomObject]@{ + pinMinimumLength = $Settings.pinMinimumLength + pinMaximumLength = $Settings.pinMaximumLength + pinUppercaseCharactersUsage = $Settings.pinUppercaseCharactersUsage.value + pinLowercaseCharactersUsage = $Settings.pinLowercaseCharactersUsage.value + pinSpecialCharactersUsage = $Settings.pinSpecialCharactersUsage.value + state = $Settings.state.value + securityDeviceRequired = $Settings.securityDeviceRequired + unlockWithBiometricsEnabled = $Settings.unlockWithBiometricsEnabled + remotePassportEnabled = $Settings.remotePassportEnabled + pinPreviousBlockCount = $Settings.pinPreviousBlockCount + pinExpirationInDays = $Settings.pinExpirationInDays + enhancedBiometricsState = $Settings.enhancedBiometricsState.value + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'EnrollmentWindowsHelloForBusinessConfiguration is already applied correctly.' -Sev Info + } else { + $cmdParam = @{ + tenantid = $Tenant + uri = "https://graph.microsoft.com/beta/deviceManagement/deviceEnrollmentConfigurations/$($CurrentState.id)" + AsApp = $false + Type = 'PATCH' + ContentType = 'application/json; charset=utf-8' + Body = [PSCustomObject]@{ + '@odata.type' = '#microsoft.graph.deviceEnrollmentWindowsHelloForBusinessConfiguration' + pinMinimumLength = $Settings.pinMinimumLength + pinMaximumLength = $Settings.pinMaximumLength + pinUppercaseCharactersUsage = $Settings.pinUppercaseCharactersUsage.value + pinLowercaseCharactersUsage = $Settings.pinLowercaseCharactersUsage.value + pinSpecialCharactersUsage = $Settings.pinSpecialCharactersUsage.value + state = $Settings.state.value + securityDeviceRequired = $Settings.securityDeviceRequired + unlockWithBiometricsEnabled = $Settings.unlockWithBiometricsEnabled + remotePassportEnabled = $Settings.remotePassportEnabled + pinPreviousBlockCount = $Settings.pinPreviousBlockCount + pinExpirationInDays = $Settings.pinExpirationInDays + enhancedBiometricsState = $Settings.enhancedBiometricsState.value + } | ConvertTo-Json -Compress -Depth 10 + } + try { + $null = New-GraphPostRequest @cmdParam + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully updated EnrollmentWindowsHelloForBusinessConfiguration.' -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to update EnrollmentWindowsHelloForBusinessConfiguration. Error: $($ErrorMessage.NormalizedError)" -Sev Error + } + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'EnrollmentWindowsHelloForBusinessConfiguration is correctly set.' -Sev Info + } else { + Write-StandardsAlert -message 'EnrollmentWindowsHelloForBusinessConfiguration is incorrectly set.' -object $CompareField -tenant $Tenant -standardName 'EnrollmentWindowsHelloForBusinessConfiguration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'EnrollmentWindowsHelloForBusinessConfiguration is incorrectly set.' -Sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.EnrollmentWindowsHelloForBusinessConfiguration' -CurrentValue $CompareField -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 new file mode 100644 index 000000000000..e40f07aabcc4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 @@ -0,0 +1,123 @@ +function Invoke-CIPPStandardExchangeConnectorTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) ExchangeConnectorTemplate + .SYNOPSIS + (Label) Exchange Connector Template + .DESCRIPTION + (Helptext) Deploy and manage Exchange connectors. + (DocsDescription) Deploy and manage Exchange connectors. + .NOTES + CAT + Templates + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + IMPACT + Medium Impact + ADDEDDATE + 2023-12-30 + EXECUTIVETEXT + Configures standardized Exchange connectors that control how email flows between your organization and external systems. These templates ensure secure and reliable email delivery while maintaining proper routing and security policies for business communications. + ADDEDCOMPONENT + {"type":"autoComplete","name":"exConnectorTemplate","label":"Select Exchange Connector Template","api":{"url":"/api/ListExConnectorTemplates","labelField":"name","valueField":"GUID","queryKey":"ListExConnectorTemplates"}} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'ExConnector' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'ExConnectorTemplate'" + $AllConnectorTemplates = Get-CIPPAzDataTableEntity @Table -Filter $Filter + $TemplateIds = $Settings.exConnectorTemplate.value ?? $Settings.exConnectorTemplate + $Templates = $AllConnectorTemplates | Where-Object { $TemplateIds -contains $_.RowKey } + $Types = $Templates.direction | Sort-Object -Unique + + $ExoBulkCommands = foreach ($Type in $Types) { + @{ + CmdletInput = @{ + CmdletName = "Get-$($Type)connector" + Parameters = @{} + } + } + } + $ExistingConnectors = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($ExoBulkCommands) -ReturnWithCommand $true + + if ($Settings.remediate -eq $true) { + foreach ($Template in $Templates) { + try { + $ConnectorType = $Template.direction + $RequestParams = $Template.JSON | ConvertFrom-Json + if ($RequestParams.comment) { $RequestParams.comment = Get-CIPPTextReplacement -Text $RequestParams.comment -TenantFilter $Tenant } else { $RequestParams | Add-Member -NotePropertyValue 'no comment' -NotePropertyName comment -Force } + $Existing = $ExistingConnectors.$("Get-$($ConnectorType)connector") | Where-Object -Property Identity -EQ $RequestParams.name + if ($Existing) { + $RequestParams | Add-Member -NotePropertyValue $Existing.Identity -NotePropertyName Identity -Force + $null = New-ExoRequest -tenantid $Tenant -cmdlet "Set-$($ConnectorType)connector" -cmdParams $RequestParams -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated transport rule $($RequestParams.name)" -sev info + } else { + $null = New-ExoRequest -tenantid $Tenant -cmdlet "New-$($ConnectorType)connector" -cmdParams $RequestParams -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created transport rule $($RequestParams.name)" -sev info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create or update Exchange Connector Rule: $ErrorMessage" -sev 'Error' + } + } + } + + if ($Settings.alert -eq $true) { + foreach ($Template in $Templates) { + $ConnectorType = $Template.direction + $RequestParams = $Template.JSON | ConvertFrom-Json + $Existing = $ExistingConnectors.$("Get-$($ConnectorType)connector") | Where-Object -Property Identity -EQ $RequestParams.name + if (-not $Existing) { + Write-StandardsAlert -message "Exchange Connector Template '$($RequestParams.name)' of type '$($ConnectorType)' is not deployed" -object $RequestParams -tenant $Tenant -standardName 'ExchangeConnectorTemplate' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Exchange Connector Template '$($RequestParams.name)' of type '$($ConnectorType)' is not deployed" -sev Warning + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Exchange Connector Template '$($RequestParams.name)' of type '$($ConnectorType)' is deployed" -sev Info + } + } + } + + if ($Settings.report -eq $true) { + # Extract expected connectors from templates + $ExpectedConnectors = foreach ($Template in $Templates) { + $TemplateParams = $Template.JSON | ConvertFrom-Json + [PSCustomObject]@{ + Identity = $TemplateParams.name + Type = $Template.direction + } + } + + # Get matching deployed connectors + $DeployedConnectors = foreach ($ExpectedConnector in $ExpectedConnectors) { + $ConnectorType = $ExpectedConnector.Type + $ExistingConnector = $ExistingConnectors.$("Get-$($ConnectorType)connector") | Where-Object -Property Identity -EQ $ExpectedConnector.Identity + if ($ExistingConnector) { + [PSCustomObject]@{ + Identity = $ExistingConnector.Identity + Type = $ConnectorType + } + } + } + + $CurrentValue = [PSCustomObject]@{ + Connectors = @($DeployedConnectors) + } + $ExpectedValue = [PSCustomObject]@{ + Connectors = @($ExpectedConnectors) + } + + Set-CIPPStandardsCompareField -FieldName 'standards.ExchangeConnectorTemplates' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ExchangeConnectorTemplatesDeployed' -FieldValue ($DeployedConnectors.Identity) -StoreAs StringArray -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 new file mode 100644 index 000000000000..8271da894f31 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 @@ -0,0 +1,103 @@ +function Invoke-CIPPStandardExcludedfileExt { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) ExcludedfileExt + .SYNOPSIS + (Label) Exclude File Extensions from Syncing + .DESCRIPTION + (Helptext) Sets the file extensions that are excluded from syncing with OneDrive. These files will be blocked from upload. '*.' is automatically added to the extension and can be omitted. + (DocsDescription) Sets the file extensions that are excluded from syncing with OneDrive. These files will be blocked from upload. '\*.' is automatically added to the extension and can be omitted. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Blocks specific file types from being uploaded or synchronized to OneDrive, helping prevent security risks from potentially dangerous file formats. This security measure protects against malware distribution while allowing legitimate business file types to be shared safely. + ADDEDCOMPONENT + {"type":"textField","name":"standards.ExcludedfileExt.ext","label":"Extensions, Comma separated"} + IMPACT + High Impact + ADDEDDATE + 2022-06-15 + POWERSHELLEQUIVALENT + Update-MgAdminSharePointSetting + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'ExcludedfileExt' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ExcludedfileExt state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $Exts = ($Settings.ext -replace ' ', '') -split ',' + # Add a wildcard to the extensions since thats what the SP admin center does + $Exts = $Exts | ForEach-Object { if ($_ -notlike '*.*') { "*.$_" } else { $_ } } + + + $MissingExclusions = foreach ($Exclusion in $Exts) { + if ($Exclusion -notin $CurrentInfo.excludedFileExtensionsForSyncApp) { + $Exclusion + } + } + + Write-Host "MissingExclusions: $($MissingExclusions)" + + + if ($Settings.remediate -eq $true) { + + # If the number of extensions in the settings does not match the number of extensions in the current settings, we need to update the settings + $MissingExclusions = if ($Exts.Count -ne $CurrentInfo.excludedFileExtensionsForSyncApp.Count) { $true } else { $MissingExclusions } + if ($MissingExclusions) { + Write-Host "CurrentInfo.excludedFileExtensionsForSyncApp: $($CurrentInfo.excludedFileExtensionsForSyncApp)" + Write-Host "Exts: $($Exts)" + try { + $body = ConvertTo-Json -InputObject @{ excludedFileExtensionsForSyncApp = @($Exts) } + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message "Added $($Settings.ext) to excluded synced files" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to add $($Settings.ext) to excluded synced files: $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Excluded synced files already contains $($Settings.ext)" -sev Info + } + } + + if ($Settings.alert -eq $true) { + + if ($MissingExclusions) { + Write-StandardsAlert -message 'Exclude File Extensions from Syncing missing some extensions.' -object $MissingExclusions -tenant $Tenant -standardName 'ExcludedfileExt' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Excluded synced files does not contain $($MissingExclusions -join ',')" -sev Alert + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Excluded synced files contains $($Settings.ext)" -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + Extensions = @($CurrentInfo.excludedFileExtensionsForSyncApp) + } + $ExpectedValue = [PSCustomObject]@{ + Extensions = @($Exts) + } + + Set-CIPPStandardsCompareField -FieldName 'standards.ExcludedfileExt' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ExcludedfileExt' -FieldValue $CurrentInfo.excludedFileExtensionsForSyncApp -StoreAs json -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 new file mode 100644 index 000000000000..f4d03b8edaeb --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 @@ -0,0 +1,94 @@ +function Invoke-CIPPStandardExternalMFATrusted { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) ExternalMFATrusted + .SYNOPSIS + (Label) Sets the Cross-tenant access setting to trust external MFA + .DESCRIPTION + (Helptext) Sets the state of the Cross-tenant access setting to trust external MFA. This allows guest users to use their home tenant MFA to access your tenant. + (DocsDescription) Sets the state of the Cross-tenant access setting to trust external MFA. This allows guest users to use their home tenant MFA to access your tenant. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Allows external partners and vendors to use their own organization's multi-factor authentication when accessing company resources, streamlining collaboration while maintaining security standards. This reduces friction for external users while ensuring they still meet authentication requirements. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.ExternalMFATrusted.state","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}]} + IMPACT + Low Impact + ADDEDDATE + 2024-03-26 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyCrossTenantAccessPolicyDefault + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $ExternalMFATrusted = (New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/policies/crossTenantAccessPolicy/default?$select=inboundTrust' -tenantid $Tenant) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ExternalMFATrusted state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Get state value using null-coalescing operator + $state = $Settings.state.value ?? $Settings.state + $WantedState = if ($state -eq 'true') { $true } else { $false } + $StateMessage = if ($WantedState) { 'enabled' } else { 'disabled' } + + # Input validation + if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'ExternalMFATrusted: Invalid state parameter set' -sev Error + return + } + + if ($Settings.remediate -eq $true) { + + Write-Host 'Remediate External MFA Trusted' + if ($ExternalMFATrusted.inboundTrust.isMfaAccepted -eq $WantedState ) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "External MFA Trusted is already $StateMessage." -sev Info + } else { + try { + $NewBody = $ExternalMFATrusted + $NewBody.inboundTrust.isMfaAccepted = $WantedState + $NewBody = ConvertTo-Json -Depth 10 -InputObject $NewBody -Compress + $null = New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/v1.0/policies/crossTenantAccessPolicy/default' -Type patch -Body $NewBody -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set External MFA Trusted to $StateMessage." -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set External MFA Trusted to $StateMessage. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + isMfaAccepted = $ExternalMFATrusted.inboundTrust.isMfaAccepted + } + $ExpectedValue = @{ + isMfaAccepted = $WantedState + } + + Set-CIPPStandardsCompareField -FieldName 'standards.ExternalMFATrusted' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ExternalMFATrusted' -FieldValue $ExternalMFATrusted.inboundTrust.isMfaAccepted -StoreAs bool -Tenant $Tenant + } + + if ($Settings.alert -eq $true) { + + if ($ExternalMFATrusted.inboundTrust.isMfaAccepted -eq $WantedState) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "External MFA Trusted is $StateMessage." -sev Info + } else { + Write-StandardsAlert -message "External MFA Trusted is not $StateMessage" -object $ExternalMFATrusted.inboundTrust -tenant $Tenant -standardName 'ExternalMFATrusted' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "External MFA Trusted is not $StateMessage." -sev Info + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 new file mode 100644 index 000000000000..9c60877dd511 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 @@ -0,0 +1,96 @@ +function Invoke-CIPPStandardFocusedInbox { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) FocusedInbox + .SYNOPSIS + (Label) Set Focused Inbox state + .DESCRIPTION + (Helptext) Sets the default Focused Inbox state for the tenant. This can be overridden by the user. + (DocsDescription) Sets the default Focused Inbox state for the tenant. This can be overridden by the user in their Outlook settings. For more information, see [Microsoft's documentation.](https://support.microsoft.com/en-us/office/focused-inbox-for-outlook-f445ad7f-02f4-4294-a82e-71d8964e3978) + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Configures the default setting for Outlook's Focused Inbox feature, which automatically sorts important emails into a focused view while placing less important emails in a separate section. This can improve employee productivity by reducing email clutter, though users can adjust this setting individually. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.FocusedInbox.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + IMPACT + Low Impact + ADDEDDATE + 2024-04-26 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -FocusedInboxOn \$true or \$false + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'FocusedInbox' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Get state value using null-coalescing operator + $state = $Settings.state.value ?? $Settings.state + + # Input validation + if ([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'ExternalMFATrusted: Invalid state parameter set' -sev Error + return + } + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').FocusedInboxOn + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the FocusedInbox state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $WantedState = if ($state -eq 'enabled') { $true } else { $false } + $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Focused Inbox is already set to $state." -sev Info + } else { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ FocusedInboxOn = $WantedState } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set Focused Inbox state to $state." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Focused Inbox state to $state. Error: $($ErrorMessage.NormalizedError)" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Focused Inbox is set to $state." -sev Info + } else { + Write-StandardsAlert -message "Focused Inbox is not set to $state" -object $CurrentState -tenant $Tenant -standardName 'FocusedInbox' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Focused Inbox is not set to $state." -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + FocusedInboxOn = $CurrentState + } + $ExpectedValue = @{ + FocusedInboxOn = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.FocusedInbox' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'FocusedInboxCorrectState' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 new file mode 100644 index 000000000000..957c2b2d7059 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 @@ -0,0 +1,95 @@ +function Invoke-CIPPStandardFormsPhishingProtection { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) FormsPhishingProtection + .SYNOPSIS + (Label) Enable internal phishing protection for Forms + .DESCRIPTION + (Helptext) Enables internal phishing protection for Microsoft Forms to help prevent malicious forms from being created and shared within the organization. This feature scans forms created by internal users for potential phishing content and suspicious patterns. + (DocsDescription) Enables internal phishing protection for Microsoft Forms by setting the isInOrgFormsPhishingScanEnabled property to true. This security feature helps protect organizations from internal phishing attacks through Microsoft Forms by automatically scanning forms created by internal users for potential malicious content, suspicious links, and phishing patterns. When enabled, Forms will analyze form content and block or flag potentially dangerous forms before they can be shared within the organization. + .NOTES + CAT + Global Standards + TAG + "CIS M365 5.0 (1.3.5)" + "Security" + "PhishingProtection" + EXECUTIVETEXT + Automatically scans Microsoft Forms created by employees for malicious content and phishing attempts, preventing the creation and distribution of harmful forms within the organization. This protects against both internal threats and compromised accounts that might be used to distribute malicious content. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2025-06-06 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param ($Tenant, $Settings) + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'FormsPhishingProtection' + + $Uri = 'https://graph.microsoft.com/beta/admin/forms/settings' + + try { + $CurrentState = (New-GraphGetRequest -Uri $Uri -tenantid $Tenant).isInOrgFormsPhishingScanEnabled + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get current Forms settings. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate Forms phishing protection' + + # Check if phishing protection is already enabled + if ($CurrentState -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Forms internal phishing protection is already enabled.' -sev Info + } else { + # Enable Forms phishing protection + try { + $Body = @{ + isInOrgFormsPhishingScanEnabled = $true + } | ConvertTo-Json -Depth 10 -Compress + + $null = New-GraphPostRequest -Uri $Uri -Body $Body -TenantID $Tenant -Type PATCH + + # Refresh the current state after enabling + $CurrentState = New-GraphGetRequest -Uri $Uri -tenantid $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Successfully enabled Forms internal phishing protection.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable Forms internal phishing protection. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentState -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Forms internal phishing protection is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Forms internal phishing protection is not enabled' -object $CurrentState -tenant $Tenant -standardName 'FormsPhishingProtection' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Forms internal phishing protection is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + isInOrgFormsPhishingScanEnabled = $CurrentState + } + $ExpectedValue = @{ + isInOrgFormsPhishingScanEnabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.FormsPhishingProtection' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'FormsPhishingProtection' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 new file mode 100644 index 000000000000..e7a3b9f246ea --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 @@ -0,0 +1,113 @@ +function Invoke-CIPPStandardGlobalQuarantineNotifications { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) GlobalQuarantineNotifications + .SYNOPSIS + (Label) Set Global Quarantine Notification Interval + .DESCRIPTION + (Helptext) Sets the Global Quarantine Notification Interval to the selected value. Determines how often the quarantine notification is sent to users. + (DocsDescription) Sets the global quarantine notification interval for the tenant. This is the time between the quarantine notification emails are sent out to users. Default is 24 hours. + .NOTES + CAT + Exchange Standards + TAG + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.GlobalQuarantineNotifications.NotificationInterval","options":[{"label":"4 hours","value":"04:00:00"},{"label":"1 day/Daily","value":"1.00:00:00"},{"label":"7 days/Weekly","value":"7.00:00:00"}]} + IMPACT + Low Impact + ADDEDDATE + 2024-05-03 + POWERSHELLEQUIVALENT + Set-QuarantinePolicy -EndUserSpamNotificationFrequency + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param ($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'GlobalQuarantineNotifications' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-QuarantinePolicy' -cmdParams @{ QuarantinePolicyType = 'GlobalQuarantinePolicy' } | + Select-Object -ExcludeProperty '*data.type' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the GlobalQuarantineNotifications state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # This might take the cake on ugly hacky stuff i've done, + # but i just cant understand why the API returns the values it does and not a timespan like the equivalent powershell command does + # If you know why, please let me know -Bobby + $CurrentState.EndUserSpamNotificationFrequency = switch ($CurrentState.EndUserSpamNotificationFrequency) { + 'PT4H' { New-TimeSpan -Hours 4 } + 'P1D' { New-TimeSpan -Days 1 } + 'P7D' { New-TimeSpan -Days 7 } + default { $null } + } + + + # Get notification interval using null-coalescing operator + $NotificationInterval = $Settings.NotificationInterval.value ?? $Settings.NotificationInterval + + # Input validation + try { + $WantedState = [timespan]$NotificationInterval + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "GlobalQuarantineNotifications: Invalid NotificationInterval parameter set. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CurrentState.EndUserSpamNotificationFrequency -eq $WantedState) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Global Quarantine Notifications are already set to the desired value of $WantedState" -sev Info + } else { + try { + if ($CurrentState.Name -eq 'DefaultGlobalPolicy') { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-QuarantinePolicy' -cmdParams @{ Name = 'DefaultGlobalTag'; QuarantinePolicyType = 'GlobalQuarantinePolicy'; EndUserSpamNotificationFrequency = [string]$WantedState } + } else { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-QuarantinePolicy' -cmdParams @{Identity = $CurrentState.Identity; EndUserSpamNotificationFrequency = [string]$WantedState } + } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set Global Quarantine Notifications to $WantedState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Global Quarantine Notifications to $WantedState. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentState.EndUserSpamNotificationFrequency -eq $WantedState) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Global Quarantine Notifications are set to the desired value of $WantedState" -sev Info + } else { + Write-StandardsAlert -message "Global Quarantine Notifications are not set to the desired value of $WantedState" -object $CurrentState -tenant $Tenant -standardName 'GlobalQuarantineNotifications' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Global Quarantine Notifications are not set to the desired value of $WantedState" -sev Info + } + } + + if ($Settings.report -eq $true) { + $notificationInterval = @{ NotificationInterval = "$(($CurrentState.EndUserSpamNotificationFrequency).TotalHours) hours" } + + $CurrentValue = @{ + EndUserSpamNotificationFrequency = $CurrentState.EndUserSpamNotificationFrequency + } + $ExpectedValue = @{ + EndUserSpamNotificationFrequency = $WantedState + } + + Set-CIPPStandardsCompareField -FieldName 'standards.GlobalQuarantineNotifications' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'GlobalQuarantineNotificationsSet' -FieldValue [string]$CurrentState.EndUserSpamNotificationFrequency -StoreAs string -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 new file mode 100644 index 000000000000..0024b7d7a5ee --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 @@ -0,0 +1,255 @@ +function Invoke-CIPPStandardGroupTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) GroupTemplate + .SYNOPSIS + (Label) Group Template + .DESCRIPTION + (Helptext) Deploy and manage group templates. + (DocsDescription) Deploy and manage group templates. + .NOTES + MULTI + True + CAT + Templates + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + IMPACT + Medium Impact + ADDEDDATE + 2023-12-30 + EXECUTIVETEXT + Creates standardized groups with predefined settings, permissions, and membership rules. These templates ensure consistent group configurations across the organization, streamlining collaboration and access management while maintaining security standards. + ADDEDCOMPONENT + {"type":"autoComplete","name":"groupTemplate","label":"Select Group Template","api":{"url":"/api/ListGroupTemplates","labelField":"Displayname","altLabelField":"displayName","valueField":"GUID","queryKey":"ListGroupTemplates"}} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + + $existingGroups = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -tenantid $tenant + + $TestResult = Test-CIPPStandardLicense -StandardName 'GroupTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') -SkipLog + + $Settings.groupTemplate ? ($Settings | Add-Member -NotePropertyName 'TemplateList' -NotePropertyValue $Settings.groupTemplate) : $null + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'GroupTemplate' and (RowKey eq '$($Settings.TemplateList.value -join "' or RowKey eq '")')" + $GroupTemplates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json + + if ('dynamicDistribution' -in $GroupTemplates.groupType) { + # Get dynamic distro list from exchange + $DynamicDistros = New-ExoRequest -cmdlet 'Get-DynamicDistributionGroup' -tenantid $tenant -Select 'Identity,Name,Alias,RecipientFilter,PrimarySmtpAddress' + } + + if ($Settings.remediate -eq $true) { + #Because the list name changed from TemplateList to groupTemplate by someone :@, we'll need to set it back to TemplateList + + Write-Host "Settings: $($Settings.TemplateList | ConvertTo-Json)" + foreach ($Template in $GroupTemplates) { + Write-Information "Processing template: $($Template.displayName)" + try { + $groupobj = $Template + + if ($Template.groupType -eq 'dynamicDistribution') { + $CheckExisting = $DynamicDistros | Where-Object { $_.Name -eq $Template.displayName } + } else { + $CheckExisting = $existingGroups | Where-Object -Property displayName -EQ $groupobj.displayName + } + + if (!$CheckExisting) { + Write-Information 'Creating group' + $ActionType = 'create' + + # Check if Exchange license is required for distribution groups + if ($groupobj.groupType -in @('distribution', 'dynamicdistribution') -and !$TestResult) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Cannot create group $($groupobj.displayname) as the tenant is not licensed for Exchange." -Sev 'Error' + continue + } + + # Use the centralized New-CIPPGroup function + $Result = New-CIPPGroup -GroupObject $groupobj -TenantFilter $tenant -APIName 'Standards' -ExecutingUser 'CIPP-Standards' + + if (!$Result.Success) { + Write-Information "Failed to create group $($groupobj.displayname): $($Result.Message)" + continue + } + } else { + $ActionType = 'update' + + # Normalize group type like New-CIPPGroup does + $NormalizedGroupType = switch -Wildcard ($groupobj.groupType.ToLower()) { + '*dynamicdistribution*' { 'DynamicDistribution'; break } + '*dynamic*' { 'Dynamic'; break } + '*generic*' { 'Generic'; break } + '*security*' { 'Security'; break } + '*azurerole*' { 'AzureRole'; break } + '*m365*' { 'M365'; break } + '*unified*' { 'M365'; break } + '*microsoft*' { 'M365'; break } + '*distribution*' { 'Distribution'; break } + '*mail*' { 'Distribution'; break } + default { $groupobj.groupType } + } + + # Handle Graph API groups (Security, Generic, AzureRole, Dynamic, M365) + if ($NormalizedGroupType -in @('Generic', 'Security', 'AzureRole', 'Dynamic', 'M365')) { + + # Compare existing group with template to determine what needs updating + $PatchBody = [PSCustomObject]@{} + $ChangesNeeded = [System.Collections.Generic.List[string]]::new() + + # Check description + if ($CheckExisting.description -ne $groupobj.description) { + $PatchBody | Add-Member -NotePropertyName 'description' -NotePropertyValue $groupobj.description + $ChangesNeeded.Add("description: '$($CheckExisting.description)' → '$($groupobj.description)'") + } + + # Handle membership rules for dynamic groups + # Only update if the template specifies this should be a dynamic group + if ($NormalizedGroupType -eq 'Dynamic' -and $groupobj.membershipRules) { + if ($CheckExisting.membershipRule -ne $groupobj.membershipRules) { + $PatchBody | Add-Member -NotePropertyName 'membershipRule' -NotePropertyValue $groupobj.membershipRules + $PatchBody | Add-Member -NotePropertyName 'membershipRuleProcessingState' -NotePropertyValue 'On' + $ChangesNeeded.Add("membershipRule: '$($CheckExisting.membershipRule)' → '$($groupobj.membershipRules)'") + } + } + + # Only patch if there are actual changes + if ($ChangesNeeded.Count -gt 0) { + $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$($CheckExisting.id)" -tenantid $tenant -type PATCH -body (ConvertTo-Json -InputObject $PatchBody -Depth 10) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Updated Group '$($groupobj.displayName)' - Changes: $($ChangesNeeded -join ', ')" -Sev Info + } else { + Write-Information "Group '$($groupobj.displayName)' already matches template - no update needed" + } + + } else { + # Handle Exchange Online groups (Distribution, DynamicDistribution) + if (!$TestResult) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Cannot update group $($groupobj.displayName) as the tenant is not licensed for Exchange." -Sev 'Error' + continue + } + + # Construct email address if needed + $Email = if ($groupobj.username -like '*@*') { + $groupobj.username + } else { + "$($groupobj.username)@$($tenant)" + } + + $ExoChangesNeeded = [System.Collections.Generic.List[string]]::new() + + if ($NormalizedGroupType -eq 'DynamicDistribution') { + # Compare Dynamic Distribution Group properties + $SetParams = @{ + Identity = $CheckExisting.Identity + } + + # Check recipient filter change + if ($CheckExisting.RecipientFilter -notmatch $groupobj.membershipRules) { + $SetParams.RecipientFilter = $groupobj.membershipRules + $ExoChangesNeeded.Add("RecipientFilter: '$($CheckExisting.RecipientFilter)' → '$($groupobj.membershipRules)'") + } + + # Only update if there are changes + if ($SetParams.Count -gt 1) { + $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DynamicDistributionGroup' -cmdParams $SetParams + } + + # Check external sender restrictions + if ($null -ne $groupobj.allowExternal) { + $currentAuthRequired = $CheckExisting.RequireSenderAuthenticationEnabled + $templateAuthRequired = [bool]!$groupobj.allowExternal + + if ($currentAuthRequired -ne $templateAuthRequired) { + $ExtParams = @{ + Identity = $CheckExisting.displayName + RequireSenderAuthenticationEnabled = $templateAuthRequired + } + $null = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DynamicDistributionGroup' -cmdParams $ExtParams + $ExoChangesNeeded.Add("RequireSenderAuthenticationEnabled: '$currentAuthRequired' → '$templateAuthRequired'") + } + } + + } else { + # Compare Regular Distribution Group properties + $SetParams = @{ + Identity = $CheckExisting.displayName + } + + # Check display name change + if ($CheckExisting.displayName -ne $groupobj.displayName) { + $SetParams.DisplayName = $groupobj.displayName + $ExoChangesNeeded.Add("DisplayName: '$($CheckExisting.displayName)' → '$($groupobj.displayName)'") + } + + # Check description change + if ($CheckExisting.description -ne $groupobj.description) { + $SetParams.Description = $groupobj.description + $ExoChangesNeeded.Add("Description: '$($CheckExisting.description)' → '$($groupobj.description)'") + } + + # Check external sender restrictions + if ($null -ne $groupobj.allowExternal) { + $currentAuthRequired = $CheckExisting.RequireSenderAuthenticationEnabled + $templateAuthRequired = [bool]!$groupobj.allowExternal + + if ($currentAuthRequired -ne $templateAuthRequired) { + $SetParams.RequireSenderAuthenticationEnabled = $templateAuthRequired + $ExoChangesNeeded.Add("RequireSenderAuthenticationEnabled: '$currentAuthRequired' → '$templateAuthRequired'") + } + } + + # Only update if there are changes + if ($SetParams.Count -gt 0) { + $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DistributionGroup' -cmdParams $SetParams + } + } + + # Log results + if ($ExoChangesNeeded.Count -gt 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Updated Exchange group '$($groupobj.displayName)' - Changes: $($ExoChangesNeeded -join ', ')" -Sev Info + } else { + Write-Information "Exchange group '$($groupobj.displayName)' already matches template - no update needed" + } + } + + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to $ActionType group $($groupobj.displayname). Error: $ErrorMessage" -sev 'Error' + } + } + } + if ($Settings.report -eq $true) { + #check if all groups.displayName are in the existingGroups, if not $fieldvalue should contain all missing groups, else it should be true. + $MissingGroups = foreach ($Group in $GroupTemplates) { + if ($Group.groupType -eq 'dynamicDistribution') { + $CheckExisting = $DynamicDistros | Where-Object { $_.Name -eq $Group.displayName } + if (!$CheckExisting) { + $Group.displayName + } + } else { + $CheckExisting = $existingGroups | Where-Object { $_.displayName -eq $Group.displayName } + if (!$CheckExisting) { + $Group.displayName + } + } + } + + $CurrentValue = @{ + ExistingGroups = $existingGroups.displayName + MissingGroups = @($MissingGroups) + } + $ExpectedValue = @{ + ExistingGroups = $GroupTemplates.displayName + MissingGroups = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.GroupTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 new file mode 100644 index 000000000000..30891463c9ae --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 @@ -0,0 +1,99 @@ +function Invoke-CIPPStandardGuestInvite { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) GuestInvite + .SYNOPSIS + (Label) Guest Invite setting + .DESCRIPTION + (Helptext) This setting controls who can invite guests to your directory to collaborate on resources secured by your company, such as SharePoint sites or Azure resources. + (DocsDescription) This setting controls who can invite guests to your directory to collaborate on resources secured by your company, such as SharePoint sites or Azure resources. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CISA (MS.AAD.18.1v1)" + "EIDSCA.AP04" + "EIDSCA.AP07" + EXECUTIVETEXT + Controls who within the organization can invite external partners and vendors to access company resources, ensuring proper oversight of external access while enabling necessary business collaboration. This helps maintain security while supporting partnership and vendor relationships. + ADDEDCOMPONENT + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"label":"Who can send invites?","name":"standards.GuestInvite.allowInvitesFrom","options":[{"label":"Everyone","value":"everyone"},{"label":"Admins, Guest inviters and All Members","value":"adminsGuestInvitersAndAllMembers"},{"label":"Admins and Guest inviters","value":"adminsAndGuestInviters"},{"label":"None","value":"none"}]} + IMPACT + Medium Impact + ADDEDDATE + 2024-11-12 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the GuestInvite state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Input validation and value handling + $AllowInvitesFromValue = $Settings.allowInvitesFrom.value ?? $Settings.allowInvitesFrom + if (([string]::IsNullOrWhiteSpace($AllowInvitesFromValue) -or $AllowInvitesFromValue -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'GuestInvite: Invalid allowInvitesFrom parameter set' -sev Error + return + } + + $StateIsCorrect = ($CurrentState.allowInvitesFrom -eq $AllowInvitesFromValue) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Guest Invite settings is already applied correctly.' -Sev Info + } else { + try { + $GraphRequest = @{ + tenantID = $Tenant + uri = 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' + AsApp = $false + Type = 'PATCH' + ContentType = 'application/json; charset=utf-8' + Body = [pscustomobject]@{ + allowInvitesFrom = $AllowInvitesFromValue + } | ConvertTo-Json -Compress + } + New-GraphPostRequest @GraphRequest + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Successfully updated Guest Invite setting to $AllowInvitesFromValue" -Sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to update Guest Invite setting to $AllowInvitesFromValue" -Sev Error -LogData $_ + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guest Invite settings is enabled.' -sev Info + } else { + $Object = $CurrentState | Select-Object -Property allowInvitesFrom + Write-StandardsAlert -message 'Guest Invite settings is not enabled' -object $Object -tenant $tenant -standardName 'GuestInvite' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Guest Invite settings is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + allowInvitesFrom = $CurrentState.allowInvitesFrom + } + $ExpectedValue = @{ + allowInvitesFrom = $AllowInvitesFromValue + } + + Set-CIPPStandardsCompareField -FieldName 'standards.GuestInvite' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'GuestInvite' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 new file mode 100644 index 000000000000..06ab67ebb055 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 @@ -0,0 +1,107 @@ +function Invoke-CIPPStandardIntuneComplianceSettings { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) IntuneComplianceSettings + .SYNOPSIS + (Label) Set Intune Compliance Settings + .DESCRIPTION + (Helptext) Sets the mark devices with no compliance policy assigned as compliance/non compliant and Compliance status validity period. + (DocsDescription) Sets the mark devices with no compliance policy assigned as compliance/non compliant and Compliance status validity period. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Configures how the system treats devices that don't have specific compliance policies and sets how often devices must check in to maintain their compliance status. This ensures proper security oversight of all corporate devices and maintains current compliance information. + ADDEDCOMPONENT + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.IntuneComplianceSettings.secureByDefault","label":"Mark devices with no compliance policy as","options":[{"label":"Compliant","value":"false"},{"label":"Non-Compliant","value":"true"}]} + {"type":"number","name":"standards.IntuneComplianceSettings.deviceComplianceCheckinThresholdDays","label":"Compliance status validity period (days)"} + IMPACT + Low Impact + ADDEDDATE + 2024-11-12 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneComplianceSettings' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/settings' -tenantid $Tenant | + Select-Object secureByDefault, deviceComplianceCheckinThresholdDays + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneDeviceReg state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($null -eq $Settings.deviceComplianceCheckinThresholdDays) { $Settings.deviceComplianceCheckinThresholdDays = $CurrentState.deviceComplianceCheckinThresholdDays } + $SecureByDefault = [bool]($Settings.secureByDefault.value ? $Settings.secureByDefault.value : $Settings.secureByDefault) + $DeviceComplianceCheckinThresholdDays = [int]$Settings.deviceComplianceCheckinThresholdDays + + $StateIsCorrect = ($CurrentState.secureByDefault -eq $SecureByDefault) -and + ($CurrentState.deviceComplianceCheckinThresholdDays -eq $DeviceComplianceCheckinThresholdDays) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Intune Compliance settings is already applied correctly.' -Sev Info + } else { + try { + $GraphRequest = @{ + tenantID = $Tenant + uri = 'https://graph.microsoft.com/beta/deviceManagement' + AsApp = $true + Type = 'PATCH' + ContentType = 'application/json; charset=utf-8' + Body = [pscustomobject]@{ + settings = [pscustomobject]@{ + secureByDefault = $SecureByDefault + deviceComplianceCheckinThresholdDays = $DeviceComplianceCheckinThresholdDays + } + } | ConvertTo-Json -Compress -Depth 5 + } + New-GraphPostRequest @GraphRequest + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully updated Intune Compliance settings.' -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Failed to update Intune Compliance settings.' -Sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Intune Compliance settings is enabled.' -Sev Info + } else { + Write-StandardsAlert -message 'Intune Compliance settings is not enabled' -object $CurrentState -tenant $Tenant -standardName 'IntuneComplianceSettings' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Intune Compliance settings is not enabled.' -Sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + secureByDefault = $CurrentState.secureByDefault + deviceComplianceCheckinThresholdDays = $CurrentState.deviceComplianceCheckinThresholdDays + } + $ExpectedValue = @{ + secureByDefault = $SecureByDefault + deviceComplianceCheckinThresholdDays = $DeviceComplianceCheckinThresholdDays + } + + Set-CIPPStandardsCompareField -FieldName 'standards.IntuneComplianceSettings' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'IntuneComplianceSettings' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 new file mode 100644 index 000000000000..f3d7ccca4a0c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 @@ -0,0 +1,205 @@ +function Invoke-CIPPStandardIntuneTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) IntuneTemplate + .SYNOPSIS + (Label) Intune Template + .DESCRIPTION + (Helptext) Deploy and manage Intune templates across devices. + (DocsDescription) Deploy and manage Intune templates across devices. + .NOTES + CAT + Templates + MULTIPLE + True + DISABLEDFEATURES + {"report":false,"warn":false,"remediate":false} + IMPACT + High Impact + ADDEDDATE + 2023-12-30 + EXECUTIVETEXT + Deploys standardized device management configurations across all corporate devices, ensuring consistent security policies, application settings, and compliance requirements. This template-based approach streamlines device management while maintaining uniform security standards across the organization. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"name":"TemplateList","label":"Select Intune Template","api":{"queryKey":"ListIntuneTemplates-autcomplete","url":"/api/ListIntuneTemplates","labelField":"Displayname","valueField":"GUID","showRefresh":true,"templateView":{"title":"Intune Template","property":"RAWJson","type":"intune"}}} + {"type":"autoComplete","multiple":false,"required":false,"creatable":false,"name":"TemplateList-Tags","label":"Or select a package of Intune Templates","api":{"queryKey":"ListIntuneTemplates-tag-autcomplete","url":"/api/ListIntuneTemplates?mode=Tag","labelField":"label","valueField":"value","addedField":{"templates":"templates"}}} + {"name":"AssignTo","label":"Who should this template be assigned to?","type":"radio","options":[{"label":"Do not assign","value":"On"},{"label":"Assign to all users","value":"allLicensedUsers"},{"label":"Assign to all devices","value":"AllDevices"},{"label":"Assign to all users and devices","value":"AllDevicesAndUsers"},{"label":"Assign to Custom Group","value":"customGroup"}]} + {"type":"textField","required":false,"name":"customGroup","label":"Enter the custom group name if you selected 'Assign to Custom Group'. Wildcards are allowed."} + {"name":"excludeGroup","label":"Exclude Groups","type":"textField","required":false,"helpText":"Enter the group name(s) to exclude from the assignment. Wildcards are allowed. Multiple group names are comma-seperated."} + {"type":"textField","required":false,"name":"assignmentFilter","label":"Assignment Filter Name (Optional)","helpText":"Enter the assignment filter name to apply to this policy assignment. Wildcards are allowed."} + {"name":"assignmentFilterType","label":"Assignment Filter Mode (Optional)","type":"radio","required":false,"helpText":"Choose whether to include or exclude devices matching the filter. Only applies if you specified a filter name above. Defaults to Include if not specified.","options":[{"label":"Include - Assign to devices matching the filter","value":"include"},{"label":"Exclude - Assign to devices NOT matching the filter","value":"exclude"}]} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + #writing to each item that the license is not present. + $settings.TemplateList | ForEach-Object { + Set-CIPPStandardsCompareField -FieldName "standards.IntuneTemplate.$($_.value)" -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'IntuneTemplate'" + $Request = @{body = $null } + Write-Host "IntuneTemplate: Starting process. Settings are: $($Settings | ConvertTo-Json -Compress)" + $CompareList = foreach ($Template in $Settings) { + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Trying to find template" + $Request.body = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Where-Object -Property RowKey -Like "$($Template.TemplateList.value)*").JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($null -eq $Request.body) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to find template $($Template.TemplateList.value). Has this Intune Template been deleted?" -sev 'Error' + continue + } + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Got template." + + $displayname = $request.body.Displayname + $description = $request.body.Description + $RawJSON = $Request.body.RawJSON + try { + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Grabbing existing Policy" + $ExistingPolicy = Get-CIPPIntunePolicy -tenantFilter $Tenant -DisplayName $displayname -TemplateType $Request.body.Type + } catch { + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Failed to get existing." + } + if ($ExistingPolicy) { + try { + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Found existing policy." + $RawJSON = Get-CIPPTextReplacement -Text $RawJSON -TenantFilter $Tenant + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Grabbing JSON existing." + $JSONExistingPolicy = $ExistingPolicy.cippconfiguration | ConvertFrom-Json + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Got existing JSON. Converting RawJSON to Template" + $JSONTemplate = $RawJSON | ConvertFrom-Json + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Converted RawJSON to Template." + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Comparing JSON." + $Compare = Compare-CIPPIntuneObject -ReferenceObject $JSONTemplate -DifferenceObject $JSONExistingPolicy -compareType $Request.body.Type -ErrorAction SilentlyContinue + } catch { + Write-Host "The compare failed. The error was: $($_.Exception.Message)" + } + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Compared JSON: $($Compare | ConvertTo-Json -Compress)" + } else { + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - No existing policy found." + $compare = [pscustomobject]@{ + MatchFailed = $true + Difference = 'This policy does not exist in Intune.' + } + } + if ($Compare) { + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - Compare found differences." + [PSCustomObject]@{ + MatchFailed = $true + displayname = $displayname + description = $description + compare = $Compare + rawJSON = $RawJSON + body = $Request.body + assignTo = $Template.AssignTo + excludeGroup = $Template.excludeGroup + remediate = $Template.remediate + alert = $Template.alert + report = $Template.report + existingPolicyId = $ExistingPolicy.id + templateId = $Template.TemplateList.value + customGroup = $Template.customGroup + assignmentFilter = $Template.assignmentFilter + assignmentFilterType = $Template.assignmentFilterType + } + } else { + Write-Host "IntuneTemplate: $($Template.TemplateList.value) - No differences found." + [PSCustomObject]@{ + MatchFailed = $false + displayname = $displayname + description = $description + compare = $false + rawJSON = $RawJSON + body = $Request.body + assignTo = $Template.AssignTo + excludeGroup = $Template.excludeGroup + remediate = $Template.remediate + alert = $Template.alert + report = $Template.report + existingPolicyId = $ExistingPolicy.id + templateId = $Template.TemplateList.value + customGroup = $Template.customGroup + assignmentFilter = $Template.assignmentFilter + assignmentFilterType = $Template.assignmentFilterType + } + } + } + + if ($true -in $Settings.remediate) { + Write-Host 'starting template deploy' + foreach ($TemplateFile in $CompareList | Where-Object -Property remediate -EQ $true) { + Write-Host "working on template deploy: $($TemplateFile.displayname)" + try { + $TemplateFile.customGroup ? ($TemplateFile.AssignTo = $TemplateFile.customGroup) : $null + + $PolicyParams = @{ + TemplateType = $TemplateFile.body.Type + Description = $TemplateFile.description + DisplayName = $TemplateFile.displayname + RawJSON = $templateFile.rawJSON + AssignTo = $TemplateFile.AssignTo + ExcludeGroup = $TemplateFile.excludeGroup + tenantFilter = $Tenant + } + + # Add assignment filter if specified + if ($TemplateFile.assignmentFilter) { + $PolicyParams.AssignmentFilterName = $TemplateFile.assignmentFilter + $PolicyParams.AssignmentFilterType = $TemplateFile.assignmentFilterType ?? 'include' + } + + Set-CIPPIntunePolicy @PolicyParams + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update Intune Template $($TemplateFile.displayname), Error: $ErrorMessage" -sev 'Error' + } + } + + } + + if ($true -in $Settings.alert) { + foreach ($Template in $CompareList | Where-Object -Property alert -EQ $true) { + Write-Host "working on template alert: $($Template.displayname)" + $AlertObj = $Template | Select-Object -Property displayname, description, compare, assignTo, excludeGroup, existingPolicyId + if ($Template.compare) { + Write-StandardsAlert -message "Template $($Template.displayname) does not match the expected configuration." -object $AlertObj -tenant $Tenant -standardName 'IntuneTemplate' -standardId $Settings.templateId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Template $($Template.displayname) does not match the expected configuration. We've generated an alert" -sev info + } else { + if ($Template.ExistingPolicyId) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Template $($Template.displayname) has the correct configuration." -sev Info + } else { + Write-StandardsAlert -message "Template $($Template.displayname) is missing." -object $AlertObj -tenant $Tenant -standardName 'IntuneTemplate' -standardId $Settings.templateId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Template $($Template.displayname) is missing." -sev info + } + } + } + } + + if ($true -in $Settings.report) { + foreach ($Template in $CompareList | Where-Object { $_.report -eq $true -or $_.remediate -eq $true }) { + Write-Host "working on template report: $($Template.displayname)" + $id = $Template.templateId + + $CurrentValue = @{ + displayName = $Template.displayname + description = $Template.description + isCompliant = if ($Template.compare) { $false } else { $true } + } + $ExpectedValue = @{ + displayName = $Template.displayname + description = $Template.description + isCompliant = $true + } + Set-CIPPStandardsCompareField -FieldName "standards.IntuneTemplate.$id" -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } + #Add-CIPPBPAField -FieldName "policy-$id" -FieldValue $Compare -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 new file mode 100644 index 000000000000..899677c80a05 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 @@ -0,0 +1,154 @@ +function Invoke-CIPPStandardLegacyEmailReportAddins { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) LegacyEmailReportAddins + .SYNOPSIS + (Label) Remove legacy Outlook Report add-ins + .DESCRIPTION + (Helptext) Removes legacy Report Phishing and Report Message Outlook add-ins. + (DocsDescription) Removes legacy Report Phishing and Report Message Outlook add-ins. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + The legacy Report Phishing and Report Message Outlook add-ins are security issues with the add-in which makes them unsafe for the organization. + IMPACT + Low Impact + ADDEDDATE + 2025-08-26 + POWERSHELLEQUIVALENT + None + RECOMMENDEDBY + "Microsoft" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + # Define the legacy add-ins to remove + $LegacyAddins = @( + @{ + AssetId = 'WA200002469' + ProductId = '3f32746a-0586-4c54-b8ce-d3b611c5b6c8' + Name = 'Report Phishing' + }, + @{ + AssetId = 'WA104381180' + ProductId = '6046742c-3aee-485e-a4ac-92ab7199db2e' + Name = 'Report Message' + } + ) + + try { + $CurrentApps = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri 'https://admin.microsoft.com/fd/addins/api/apps?workloads=AzureActiveDirectory,WXPO,MetaOS,Teams,SharePoint' + $InstalledApps = $CurrentApps.apps + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the installed add-ins for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Check which legacy add-ins are currently installed + $AddinsToRemove = [System.Collections.Generic.List[PSCustomObject]]::new() + $InstalledLegacyAddins = [System.Collections.Generic.List[string]]::new() + + foreach ($LegacyAddin in $LegacyAddins) { + $InstalledAddin = $InstalledApps | Where-Object { $_.assetId -eq $LegacyAddin.AssetId -or $_.productId -eq $LegacyAddin.ProductId } + if ($InstalledAddin) { + $InstalledLegacyAddins.Add($LegacyAddin.Name) + $AddinsToRemove.Add([PSCustomObject]@{ + AppsourceAssetID = $LegacyAddin.AssetId + ProductID = $LegacyAddin.ProductId + Command = 'UNDEPLOY' + Workload = 'WXPO' + }) + } + } + + $StateIsCorrect = ($AddinsToRemove.Count -eq 0) + $RemediationPerformed = $false + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Legacy Email Report Add-ins are already removed.' -Sev Info + } else { + foreach ($AddinToRemove in $AddinsToRemove) { + try { + $Body = @{ + Locale = 'en-US' + WorkloadManagementList = @($AddinToRemove) + } | ConvertTo-Json -Depth 10 -Compress + + $GraphRequest = @{ + tenantID = $Tenant + uri = 'https://admin.microsoft.com/fd/addins/api/apps' + scope = 'https://admin.microsoft.com/.default' + AsApp = $false + Type = 'POST' + ContentType = 'application/json; charset=utf-8' + Body = $Body + } + + $Response = New-GraphPostRequest @GraphRequest + $AddinName = ($LegacyAddins | Where-Object { $_.AssetId -eq $AddinToRemove.AppsourceAssetID }).Name + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Successfully initiated removal of $AddinName add-in" -Sev Info + $RemediationPerformed = $true + } catch { + $AddinName = ($LegacyAddins | Where-Object { $_.AssetId -eq $AddinToRemove.AppsourceAssetID }).Name + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to remove $AddinName add-in" -Sev Error -LogData $_ + } + } + } + } + + # If we performed remediation and need to report/alert, get fresh state + if ($RemediationPerformed -and ($Settings.alert -eq $true -or $Settings.report -eq $true)) { + try { + $FreshApps = New-GraphGetRequest -scope 'https://admin.microsoft.com/.default' -TenantID $Tenant -Uri 'https://admin.microsoft.com/fd/addins/api/apps?workloads=AzureActiveDirectory,WXPO,MetaOS,Teams,SharePoint' + $FreshInstalledApps = $FreshApps.apps + + # Check fresh state + $FreshInstalledLegacyAddins = [System.Collections.Generic.List[string]]::new() + foreach ($LegacyAddin in $LegacyAddins) { + $InstalledAddin = $FreshInstalledApps | Where-Object { $_.assetId -eq $LegacyAddin.AssetId -or $_.productId -eq $LegacyAddin.ProductId } + if ($InstalledAddin) { + $FreshInstalledLegacyAddins.Add($LegacyAddin.Name) + } + } + + # Use fresh state for reporting/alerting + $StateIsCorrect = ($FreshInstalledLegacyAddins.Count -eq 0) + $InstalledLegacyAddins = $FreshInstalledLegacyAddins + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get fresh add-in state after remediation for $Tenant" -Sev Warning + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Legacy Email Report Add-ins are not installed.' -sev Info + } else { + $InstalledAddinsText = ($InstalledLegacyAddins -join ', ') + Write-StandardsAlert -message "Legacy Email Report Add-ins are still installed: $InstalledAddinsText" -tenant $tenant -standardName 'LegacyEmailReportAddins' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Legacy Email Report Add-ins are still installed: $InstalledAddinsText" -sev Alert + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + InstalledLegacyAddins = $InstalledLegacyAddins + } + $ExpectedValue = @{ + InstalledLegacyAddins = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.LegacyEmailReportAddins' -Tenant $Tenant -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue + Add-CIPPBPAField -FieldName 'LegacyEmailReportAddins' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFA.ps1 new file mode 100644 index 000000000000..32158bf5de70 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFA.ps1 @@ -0,0 +1,9 @@ +function Invoke-CIPPStandardLegacyMFA { + <# + .FUNCTIONALITY + Internal + #> + param($Tenant, $Settings) + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Per user MFA APIs have been disabled.' -sev Info + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFACleanup.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFACleanup.ps1 new file mode 100644 index 000000000000..f443fd34201f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyMFACleanup.ps1 @@ -0,0 +1,36 @@ +function Invoke-CIPPStandardLegacyMFACleanup { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) LegacyMFACleanup + .SYNOPSIS + (Label) Remove Legacy MFA if SD or CA is active + .DESCRIPTION + (Helptext) This standard currently does not function and can be safely disabled + (DocsDescription) This standard currently does not function and can be safely disabled + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + This standard is currently non-functional and should be disabled. It was previously designed to remove outdated multi-factor authentication configurations in favor of modern security policies. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Set-MsolUser -StrongAuthenticationRequirements \$null + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Per User MFA APIs have been disabled.' -sev Info + # TODO - Re-implement this standard + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 new file mode 100644 index 000000000000..250aaa273045 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMEnrollmentDuringRegistration.ps1 @@ -0,0 +1,95 @@ +function Invoke-CIPPStandardMDMEnrollmentDuringRegistration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) MDMEnrollmentDuringRegistration + .SYNOPSIS + (Label) Configure MDM enrollment when adding work or school account + .DESCRIPTION + (Helptext) Controls the "Allow my organization to manage my device" prompt when adding a work or school account on Windows. This setting determines whether automatic MDM enrollment occurs during account registration. + (DocsDescription) Controls whether Windows shows the "Allow my organization to manage my device" prompt when users add a work or school account. When set to disabled, this setting prevents automatic MDM enrollment during the account registration flow, separating account registration from device enrollment. This is useful for environments where you want to allow users to add work accounts without triggering MDM enrollment. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Controls automatic device management enrollment during work account setup. When disabled, users can add work accounts to their Windows devices without the prompt asking to allow organizational device management, preventing unintended MDM enrollments on personal or BYOD devices. + ADDEDCOMPONENT + {"type":"switch","name":"standards.MDMEnrollmentDuringRegistration.disableEnrollment","label":"Disable MDM enrollment during registration"} + IMPACT + Medium Impact + ADDEDDATE + 2025-12-15 + POWERSHELLEQUIVALENT + Graph API PATCH to mobileDeviceManagementPolicies + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MDMEnrollmentDuringRegistration' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } + + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get MDM enrollment during registration state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + # Get the current state - if the property doesn't exist, treat as false (default behavior) + $CurrentState = [bool]$CurrentInfo.isMdmEnrollmentDuringRegistrationDisabled + $DesiredState = [bool]$Settings.disableEnrollment + $StateIsCorrect = $CurrentState -eq $DesiredState + $stateText = $DesiredState ? 'disabled' : 'enabled' + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "MDM enrollment during registration is already $stateText" -sev Info + } else { + $GraphParam = @{ + tenantid = $Tenant + Uri = 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000' + type = 'PATCH' + Body = (@{'isMdmEnrollmentDuringRegistrationDisabled' = $DesiredState } | ConvertTo-Json) + } + + try { + New-GraphPostRequest @GraphParam + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully $stateText MDM enrollment during registration" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to configure MDM enrollment during registration. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "MDM enrollment during registration is $stateText as configured" -sev Info + } else { + Write-StandardsAlert -message "MDM enrollment during registration is not $stateText" -object @{isMdmEnrollmentDuringRegistrationDisabled = $CurrentState; desiredState = $DesiredState } -tenant $tenant -standardName 'MDMEnrollmentDuringRegistration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "MDM enrollment during registration is not $stateText" -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + isMdmEnrollmentDuringRegistrationDisabled = $CurrentState + } + $ExpectedValue = @{ + isMdmEnrollmentDuringRegistrationDisabled = $DesiredState + } + Set-CIPPStandardsCompareField -FieldName 'standards.MDMEnrollmentDuringRegistration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'MDMEnrollmentDuringRegistration' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMScope.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMScope.ps1 new file mode 100644 index 000000000000..b0e67306cc6a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMScope.ps1 @@ -0,0 +1,164 @@ +function Invoke-CIPPStandardMDMScope { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) MDMScope + .SYNOPSIS + (Label) Configure MDM user scope + .DESCRIPTION + (Helptext) Configures the MDM user scope. This also sets the terms of use, discovery and compliance URL to default URLs. + (DocsDescription) Configures the MDM user scope. This also sets the terms of use URL, discovery URL and compliance URL to default values. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Defines which users can enroll their devices in mobile device management, controlling access to corporate resources and applications. This setting determines the scope of device management coverage and ensures appropriate users have access to necessary business tools. + ADDEDCOMPONENT + {"name":"appliesTo","label":"MDM User Scope?","type":"radio","options":[{"label":"All","value":"all"},{"label":"None","value":"none"},{"label":"Custom Group","value":"selected"}]} + {"type":"textField","name":"standards.MDMScope.customGroup","label":"Custom Group Name","required":false} + IMPACT + Low Impact + ADDEDDATE + 2025-02-18 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MDMScope' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000?$expand=includedGroups' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MDM Scope state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentInfo.termsOfUseUrl -eq 'https://portal.manage.microsoft.com/TermsofUse.aspx') -and + ($CurrentInfo.discoveryUrl -eq 'https://enrollment.manage.microsoft.com/enrollmentserver/discovery.svc') -and + ($CurrentInfo.complianceUrl -eq 'https://portal.manage.microsoft.com/?portalAction=Compliance') -and + ($CurrentInfo.appliesTo -eq $Settings.appliesTo) -and + ($Settings.appliesTo -ne 'selected' -or ($CurrentInfo.includedGroups.displayName -contains $Settings.customGroup)) + + $CompareField = [PSCustomObject]@{ + termsOfUseUrl = $CurrentInfo.termsOfUseUrl + discoveryUrl = $CurrentInfo.discoveryUrl + complianceUrl = $CurrentInfo.complianceUrl + appliesTo = $CurrentInfo.appliesTo + customGroup = $CurrentInfo.includedGroups.displayName + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'MDM Scope already correctly configured' -sev Info + } else { + $GraphParam = @{ + tenantid = $tenant + Uri = 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000' + ContentType = 'application/json; charset=utf-8' + asApp = $false + type = 'PATCH' + AddedHeaders = @{'Accept-Language' = 0 } + Body = @{ + 'termsOfUseUrl' = 'https://portal.manage.microsoft.com/TermsofUse.aspx' + 'discoveryUrl' = 'https://enrollment.manage.microsoft.com/enrollmentserver/discovery.svc' + 'complianceUrl' = 'https://portal.manage.microsoft.com/?portalAction=Compliance' + } | ConvertTo-Json + } + + try { + New-GraphPostRequest @GraphParam + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Successfully configured MDM Scope' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Failed to configure MDM Scope.' -sev Error -LogData $ErrorMessage + } + + # Workaround for MDM Scope Assignment error: "Could not set MDM Scope for [TENANT]: Simultaneous patch requests on both the appliesTo and URL properties are currently not supported." + if ($Settings.appliesTo -ne 'selected') { + $GraphParam = @{ + tenantid = $tenant + Uri = 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000' + ContentType = 'application/json; charset=utf-8' + asApp = $false + type = 'PATCH' + AddedHeaders = @{'Accept-Language' = 0 } + Body = @{ + 'appliesTo' = $Settings.appliesTo + } | ConvertTo-Json + } + + try { + New-GraphPostRequest @GraphParam + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully assigned $($Settings.appliesTo) to MDM Scope" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to assign $($Settings.appliesTo) to MDM Scope." -sev Error -LogData $ErrorMessage + } + } else { + $GroupID = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/groups?`$top=999&`$select=id,displayName&`$filter=displayName eq '$($Settings.customGroup)'" -tenantid $tenant -asApp $true).id + $GraphParam = @{ + tenantid = $tenant + Uri = 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000/includedGroups/$ref' + ContentType = 'application/json; charset=utf-8' + asApp = $false + type = 'POST' + AddedHeaders = @{'Accept-Language' = 0 } + Body = @{ + '@odata.id' = "https://graph.microsoft.com/odata/groups('$GroupID')" + } | ConvertTo-Json + } + + try { + New-GraphPostRequest @GraphParam + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully assigned $($Settings.customGroup) to MDM Scope" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to assign $($Settings.customGroup) to MDM Scope" -sev Error -LogData $ErrorMessage + } + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'MDM Scope is correctly configured' -sev Info + } else { + Write-StandardsAlert -message 'MDM Scope is not correctly configured' -object $CompareField -tenant $tenant -standardName 'MDMScope' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'MDM Scope is not correctly configured' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + termsOfUseUrl = $CurrentInfo.termsOfUseUrl + discoveryUrl = $CurrentInfo.discoveryUrl + complianceUrl = $CurrentInfo.complianceUrl + appliesTo = $CurrentInfo.appliesTo + customGroup = $CurrentInfo.includedGroups.displayName + } + $ExpectedValue = @{ + termsOfUseUrl = $Settings.termsOfUseUrl + discoveryUrl = $Settings.discoveryUrl + complianceUrl = $Settings.complianceUrl + appliesTo = $Settings.appliesTo + customGroup = $Settings.customGroup + } + Set-CIPPStandardsCompareField -FieldName 'standards.MDMScope' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'MDMScope' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 new file mode 100644 index 000000000000..d45e345f556c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 @@ -0,0 +1,122 @@ +function Invoke-CIPPStandardMailContacts { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) MailContacts + .SYNOPSIS + (Label) Set contact e-mails + .DESCRIPTION + (Helptext) Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information. + (DocsDescription) Defines the email address to receive general updates and information related to M365 subscriptions. Leave a contact field blank if you do not want to update the contact information. + .NOTES + CAT + Global Standards + TAG + EXECUTIVETEXT + Establishes designated contact email addresses for receiving important Microsoft 365 subscription updates and notifications. This ensures proper communication channels are maintained for general, security, marketing, and technical matters, improving organizational responsiveness to critical system updates. + ADDEDCOMPONENT + {"type":"textField","name":"standards.MailContacts.GeneralContact","label":"General Contact","required":false} + {"type":"textField","name":"standards.MailContacts.SecurityContact","label":"Security Contact","required":false} + {"type":"textField","name":"standards.MailContacts.MarketingContact","label":"Marketing Contact","required":false} + {"type":"textField","name":"standards.MailContacts.TechContact","label":"Technical Contact","required":false} + IMPACT + Low Impact + ADDEDDATE + 2022-03-13 + POWERSHELLEQUIVALENT + Set-MsolCompanyContactInformation + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $TenantID = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/organization' -tenantid $tenant) + $CurrentInfo = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantID.id)" -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MailContacts state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $contacts = $settings + $TechAndSecurityContacts = @($Contacts.SecurityContact, $Contacts.TechContact) + + $state = $CurrentInfo.marketingNotificationEmails -eq $Contacts.MarketingContact -and ` + ($CurrentInfo.securityComplianceNotificationMails -in $TechAndSecurityContacts -or + $CurrentInfo.technicalNotificationMails -in $TechAndSecurityContacts) -and ` + $CurrentInfo.privacyProfile.contactEmail -eq $Contacts.GeneralContact + + if ($Settings.remediate -eq $true) { + if ($state) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Contact emails are already set.' -sev Info + } else { + try { + $Body = [pscustomobject]@{} + switch ($Contacts) { + { $Contacts.MarketingContact } { $body | Add-Member -NotePropertyName marketingNotificationEmails -NotePropertyValue @($Contacts.MarketingContact) } + { $Contacts.SecurityContact } { $body | Add-Member -NotePropertyName technicalNotificationMails -NotePropertyValue @($Contacts.SecurityContact) } + { $Contacts.TechContact } { $body | Add-Member -NotePropertyName technicalNotificationMails -NotePropertyValue @($Contacts.TechContact) -ErrorAction SilentlyContinue } + { $Contacts.GeneralContact } { $body | Add-Member -NotePropertyName privacyProfile -NotePropertyValue @{contactEmail = $Contacts.GeneralContact } } + } + Write-Host (ConvertTo-Json -InputObject $body) + New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/v1.0/organization/$($TenantID.id)" -asApp $true -Type patch -Body (ConvertTo-Json -InputObject $body) -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Contact emails set.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set contact emails: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.marketingNotificationEmails -eq $Contacts.MarketingContact) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Marketing contact email is set to $($Contacts.MarketingContact)" -sev Info + } else { + $Object = $CurrentInfo | Select-Object marketingNotificationEmails + Write-StandardsAlert -message "Marketing contact email is not set to $($Contacts.MarketingContact)" -object $Object -tenant $tenant -standardName 'MailContacts' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Marketing contact email is not set to $($Contacts.MarketingContact)" -sev Info + } + if (!$Contacts.SecurityContact -or $CurrentInfo.technicalNotificationMails -contains $Contacts.SecurityContact) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Security contact email is set to $($Contacts.SecurityContact)" -sev Info + } else { + $Object = $CurrentInfo | Select-Object technicalNotificationMails + Write-StandardsAlert -message "Security contact email is not set to $($Contacts.SecurityContact)" -object $Object -tenant $tenant -standardName 'MailContacts' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Security contact email is not set to $($Contacts.SecurityContact)" -sev Info + } + if (!$Contacts.TechContact -or $CurrentInfo.technicalNotificationMails -contains $Contacts.TechContact) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Technical contact email is set to $($Contacts.TechContact)" -sev Info + } else { + $Object = $CurrentInfo | Select-Object technicalNotificationMails + Write-StandardsAlert -message "Technical contact email is not set to $($Contacts.TechContact)" -object $Object -tenant $tenant -standardName 'MailContacts' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Technical contact email is not set to $($Contacts.TechContact)" -sev Info + } + if ($CurrentInfo.privacyProfile.contactEmail -eq $Contacts.GeneralContact) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "General contact email is set to $($Contacts.GeneralContact)" -sev Info + } else { + $Object = $CurrentInfo | Select-Object privacyProfile + Write-StandardsAlert -message "General contact email is not set to $($Contacts.GeneralContact)" -object $Object -tenant $tenant -standardName 'MailContacts' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "General contact email is not set to $($Contacts.GeneralContact)" -sev Info + } + + } + if ($Settings.report -eq $true) { + $CurrentValue = @{ + marketingNotificationEmails = $CurrentInfo.marketingNotificationEmails + technicalNotificationMails = @($CurrentInfo.technicalNotificationMails) + contactEmail = $CurrentInfo.privacyProfile.contactEmail + } + $ExpectedValue = @{ + marketingNotificationEmails = $Contacts.MarketingContact + technicalNotificationMails = @($Contacts.SecurityContact, $Contacts.TechContact) | Where-Object { $_ -ne $null } + contactEmail = $Contacts.GeneralContact + } + Set-CIPPStandardsCompareField -FieldName 'standards.MailContacts' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'MailContacts' -FieldValue $CurrentInfo -StoreAs json -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 new file mode 100644 index 000000000000..a796462e2881 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 @@ -0,0 +1,271 @@ +function Invoke-CIPPStandardMailboxRecipientLimits { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) MailboxRecipientLimits + .SYNOPSIS + (Label) Set Mailbox Recipient Limits + .DESCRIPTION + (Helptext) Sets the maximum number of recipients that can be specified in the To, Cc, and Bcc fields of a message for all mailboxes in the tenant. + (DocsDescription) This standard configures the recipient limits for all mailboxes in the tenant. The recipient limit determines the maximum number of recipients that can be specified in the To, Cc, and Bcc fields of a message. This helps prevent spam and manage email flow. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Controls how many recipients employees can include in a single email, helping prevent spam distribution and managing email server load. This security measure protects against both accidental mass mailings and potential abuse while ensuring legitimate business communications can still reach necessary recipients. + ADDEDCOMPONENT + {"type":"number","name":"standards.MailboxRecipientLimits.RecipientLimit","label":"Recipient Limit","defaultValue":500} + IMPACT + Low Impact + ADDEDDATE + 2025-05-28 + POWERSHELLEQUIVALENT + Set-Mailbox -RecipientLimits + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MailboxRecipientLimits' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Input validation + if ([Int32]$Settings.RecipientLimit -lt 0 -or [Int32]$Settings.RecipientLimit -gt 10000) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'MailboxRecipientLimits: Invalid RecipientLimit parameter set. Must be between 0 and 10000.' -sev Error + return + } + + # Get mailbox plans first + try { + $MailboxPlans = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxPlan' -cmdParams @{ ResultSize = 'Unlimited' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MailboxRecipientLimits state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Create a hashtable of mailbox plans for quick lookup + $MailboxPlanLookup = @{} + foreach ($Plan in $MailboxPlans) { + $MailboxPlanLookup[$Plan.Guid] = $Plan + } + + # Get mailboxes that need updating (either different from target limit or have "Unlimited" set) + $Requests = @( + @{ + CmdletInput = @{ + CmdletName = 'Get-Mailbox' + Parameters = @{ + ResultSize = 'Unlimited' + Filter = "RecipientLimits -ne '$($Settings.RecipientLimit)' -or RecipientLimits -eq 'Unlimited'" + } + } + } + ) + + $Mailboxes = New-ExoBulkRequest -tenantid $Tenant -cmdletArray $Requests + + # Skip processing entirely if no mailboxes returned - most performant approach + $MailboxResults = @() + $MailboxesToUpdate = @() + $MailboxesWithPlanIssues = @() + + if ($null -ne $Mailboxes -and @($Mailboxes).Count -gt 0) { + # Process mailboxes and categorize them based on their plan limits + $MailboxResults = @($Mailboxes) | ForEach-Object { + + $Mailbox = $_ + if ($Mailbox.UserPrincipalName -like 'DiscoverySearchMailbox*' -or $Mailbox.UserPrincipalName -like 'SystemMailbox*') { + return + } + # Safe hashtable lookup - check if MailboxPlanId exists and is not null + $Plan = $null + if ($Mailbox.MailboxPlanId -and $MailboxPlanLookup.ContainsKey($Mailbox.MailboxPlanId)) { + $Plan = $MailboxPlanLookup[$Mailbox.MailboxPlanId] + } + + if ($Plan) { + $PlanMaxRecipients = $Plan.MaxRecipientsPerMessage + + # If mailbox has "Unlimited" set but has a plan, use the plan's limit as the current limit + $CurrentLimit = if ($Mailbox.RecipientLimits -eq 'Unlimited') { + $PlanMaxRecipients + } else { + $Mailbox.RecipientLimits + } + + if ($Settings.RecipientLimit -gt $PlanMaxRecipients) { + [PSCustomObject]@{ + Type = 'PlanIssue' + Mailbox = $Mailbox + CurrentLimit = $CurrentLimit + PlanLimit = $PlanMaxRecipients + PlanName = $Plan.DisplayName + } + } elseif ($CurrentLimit -ne $Settings.RecipientLimit) { + [PSCustomObject]@{ + Type = 'ToUpdate' + Mailbox = $Mailbox + } + } + } elseif ($Mailbox.RecipientLimits -ne $Settings.RecipientLimit) { + [PSCustomObject]@{ + Type = 'ToUpdate' + Mailbox = $Mailbox + } + } + } + + # Separate mailboxes into their respective categories only if we have results + $MailboxesToUpdate = $MailboxResults | Where-Object { $_.Type -eq 'ToUpdate' } | Select-Object -ExpandProperty Mailbox + $MailboxesWithPlanIssues = $MailboxResults | Where-Object { $_.Type -eq 'PlanIssue' } | ForEach-Object { + [PSCustomObject]@{ + Identity = $_.Mailbox.Identity + CurrentLimit = $_.CurrentLimit + PlanLimit = $_.PlanLimit + PlanName = $_.PlanName + } + } + } + + # Remediation + if ($Settings.remediate -eq $true) { + if ($MailboxesWithPlanIssues.Count -gt 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Found $($MailboxesWithPlanIssues.Count) mailboxes where the requested recipient limit ($($Settings.RecipientLimit)) exceeds their mailbox plan limit. These mailboxes will not be updated." -sev Info + foreach ($Mailbox in $MailboxesWithPlanIssues) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Mailbox $($Mailbox.Identity) has plan $($Mailbox.PlanName) with maximum limit of $($Mailbox.PlanLimit)" -sev Info + } + } + + if ($MailboxesToUpdate.Count -gt 0) { + try { + # Create detailed log data for audit trail + $MailboxChanges = $MailboxesToUpdate | ForEach-Object { + $CurrentLimit = if ($_.RecipientLimits -eq 'Unlimited') { 'Unlimited' } else { $_.RecipientLimits } + @{ + Identity = $_.Identity + DisplayName = $_.DisplayName + PrimarySmtpAddress = $_.PrimarySmtpAddress + CurrentLimit = $CurrentLimit + NewLimit = $Settings.RecipientLimit + } + } + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updating recipient limits to $($Settings.RecipientLimit) for $($MailboxesToUpdate.Count) mailboxes" -sev Info -LogData $MailboxChanges + + # Create batch requests for mailbox updates + $UpdateRequests = $MailboxesToUpdate | ForEach-Object { + @{ + CmdletInput = @{ + CmdletName = 'Set-Mailbox' + Parameters = @{ + Identity = $_.Identity + RecipientLimits = $Settings.RecipientLimit + } + } + } + } + + # Execute batch update + $null = New-ExoBulkRequest -tenantid $Tenant -cmdletArray $UpdateRequests + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully applied recipient limits to $($MailboxesToUpdate.Count) mailboxes" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set recipient limits. $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "All mailboxes already have the correct recipient limit of $($Settings.RecipientLimit)" -sev Info + } + } + + # Alert + if ($Settings.alert -eq $true) { + if ($MailboxesToUpdate.Count -eq 0 -and $MailboxesWithPlanIssues.Count -eq 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "All mailboxes have the correct recipient limit of $($Settings.RecipientLimit)" -sev Info + } else { + # Create structured alert data + $AlertData = @{ + RequestedLimit = $Settings.RecipientLimit + MailboxesToUpdate = @() + MailboxesWithPlanIssues = @() + } + + # Use Generic List for efficient object collection + $AlertObjects = [System.Collections.Generic.List[Object]]::new() + + # Add mailboxes that need updating + if ($MailboxesToUpdate.Count -gt 0) { + $AlertData.MailboxesToUpdate = $MailboxesToUpdate | ForEach-Object { + $CurrentLimit = if ($_.RecipientLimits -eq 'Unlimited') { 'Unlimited' } else { $_.RecipientLimits } + @{ + Identity = $_.Identity + DisplayName = $_.DisplayName + PrimarySmtpAddress = $_.PrimarySmtpAddress + CurrentLimit = $CurrentLimit + RequiredLimit = $Settings.RecipientLimit + } + } + # Add to alert objects list efficiently + foreach ($Mailbox in $MailboxesToUpdate) { + $AlertObjects.Add($Mailbox) + } + } + + # Add mailboxes with plan issues + if ($MailboxesWithPlanIssues.Count -gt 0) { + $AlertData.MailboxesWithPlanIssues = $MailboxesWithPlanIssues | ForEach-Object { + @{ + Identity = $_.Identity + CurrentLimit = $_.CurrentLimit + PlanLimit = $_.PlanLimit + PlanName = $_.PlanName + RequestedLimit = $Settings.RecipientLimit + } + } + # Add to alert objects list efficiently + foreach ($Mailbox in $MailboxesWithPlanIssues) { + $AlertObjects.Add($Mailbox) + } + } + + # Build alert message efficiently + $AlertMessage = if ($MailboxesWithPlanIssues.Count -gt 0) { + "Found $($MailboxesToUpdate.Count) mailboxes with incorrect recipient limits and $($MailboxesWithPlanIssues.Count) mailboxes where the requested limit exceeds their mailbox plan limit" + } else { + "Found $($MailboxesToUpdate.Count) mailboxes with incorrect recipient limits" + } + + Write-StandardsAlert -message $AlertMessage -object $AlertObjects.ToArray() -tenant $Tenant -standardName 'MailboxRecipientLimits' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message $AlertMessage -sev Info -LogData $AlertData + } + } + + # Report + if ($Settings.report -eq $true) { + $ReportData = @{ + MailboxesToUpdate = $MailboxesToUpdate + MailboxesWithPlanIssues = $MailboxesWithPlanIssues + } + Add-CIPPBPAField -FieldName 'MailboxRecipientLimits' -FieldValue $ReportData -StoreAs json -Tenant $Tenant + + $CurrentValue = @{ + MailboxesToUpdate = @($MailboxesToUpdate) + MailboxesWithPlanIssues = @($MailboxesWithPlanIssues) + } + $ExpectedValue = @{ + MailboxesToUpdate = @() + MailboxesWithPlanIssues = @() + } + Set-CIPPStandardsCompareField -FieldName 'standards.MailboxRecipientLimits' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 new file mode 100644 index 000000000000..640db0445b43 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 @@ -0,0 +1,213 @@ +function Invoke-CIPPStandardMalwareFilterPolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) MalwareFilterPolicy + .SYNOPSIS + (Label) Default Malware Filter Policy + .DESCRIPTION + (Helptext) This creates a Malware filter policy that enables the default File filter and Zero-hour auto purge for malware. + (DocsDescription) This creates a Malware filter policy that enables the default File filter and Zero-hour auto purge for malware. + .NOTES + CAT + Defender Standards + TAG + "CIS M365 5.0 (2.1.2)" + "CIS M365 5.0 (2.1.3)" + "mdo_zapspam" + "mdo_zapphish" + "mdo_zapmalware" + "NIST CSF 2.0 (DE.CM-09)" + ADDEDCOMPONENT + {"type":"textField","name":"standards.MalwareFilterPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Malware Policy"} + {"type":"select","multiple":false,"label":"FileTypeAction","name":"standards.MalwareFilterPolicy.FileTypeAction","options":[{"label":"Reject","value":"Reject"},{"label":"Quarantine the message","value":"Quarantine"}]} + {"type":"textField","name":"standards.MalwareFilterPolicy.OptionalFileTypes","required":false,"label":"Optional File Types, Comma separated"} + {"type":"select","multiple":false,"creatable":true,"label":"QuarantineTag","name":"standards.MalwareFilterPolicy.QuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"switch","label":"Enable Internal Sender Admin Notifications","required":false,"name":"standards.MalwareFilterPolicy.EnableInternalSenderAdminNotifications"} + {"type":"textField","name":"standards.MalwareFilterPolicy.InternalSenderAdminAddress","required":false,"label":"Internal Sender Admin Address","condition":{"field":"standards.MalwareFilterPolicy.EnableInternalSenderAdminNotifications","compareType":"is","compareValue":true}} + {"type":"switch","label":"Enable External Sender Admin Notifications","required":false,"name":"standards.MalwareFilterPolicy.EnableExternalSenderAdminNotifications"} + {"type":"textField","name":"standards.MalwareFilterPolicy.ExternalSenderAdminAddress","required":false,"label":"External Sender Admin Address","condition":{"field":"standards.MalwareFilterPolicy.EnableExternalSenderAdminNotifications","compareType":"is","compareValue":true}} + IMPACT + Low Impact + ADDEDDATE + 2024-03-25 + POWERSHELLEQUIVALENT + Set-MalwareFilterPolicy or New-MalwareFilterPolicy + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MalwareFilterPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Malware Policy' } + $PolicyList = @($PolicyName, 'CIPP Default Malware Policy', 'Default Malware Policy') + $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterPolicy' | Where-Object -Property Name -In $PolicyList | Select-Object -First 1 + if ($null -eq $ExistingPolicy.Name) { + # No existing policy - use the configured/default name + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Malware Policy' } + } else { + # Use existing policy name if found + $PolicyName = $ExistingPolicy.Name + } + # Derive rule name from policy name, but check for old names for backward compatibility + $DesiredRuleName = "$PolicyName Rule" + $RuleList = @($DesiredRuleName, 'CIPP Default Malware Rule', 'CIPP Default Malware Policy') + $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterRule' | Where-Object -Property Name -In $RuleList | Select-Object -First 1 + if ($null -eq $ExistingRule.Name) { + # No existing rule - use the derived name + $RuleName = $DesiredRuleName + } else { + # Use existing rule name if found + $RuleName = $ExistingRule.Name + } + + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterPolicy' | + Where-Object -Property Name -EQ $PolicyName | + Select-Object Name, EnableFileFilter, FileTypeAction, FileTypes, ZapEnabled, QuarantineTag, EnableInternalSenderAdminNotifications, InternalSenderAdminAddress, EnableExternalSenderAdminNotifications, ExternalSenderAdminAddress + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MalwareFilterPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $DefaultFileTypes = @('ace', 'ani', 'apk', 'app', 'appx', 'arj', 'bat', 'cab', 'cmd', 'com', 'deb', 'dex', 'dll', 'docm', 'elf', 'exe', 'hta', 'img', 'iso', 'jar', 'jnlp', 'kext', 'lha', 'lib', 'library', 'lnk', 'lzh', 'macho', 'msc', 'msi', 'msix', 'msp', 'mst', 'pif', 'ppa', 'ppam', 'reg', 'rev', 'scf', 'scr', 'sct', 'sys', 'uif', 'vb', 'vbe', 'vbs', 'vxd', 'wsc', 'wsf', 'wsh', 'xll', 'xz', 'z') + + if ($null -eq $Settings.OptionalFileTypes) { + $ExpectedFileTypes = $DefaultFileTypes + } else { + $ExpectedFileTypes = $DefaultFileTypes + @($Settings.OptionalFileTypes.Split(',').Trim()) + } + + $FileTypeAction = $Settings.FileTypeAction.value ?? $Settings.FileTypeAction ?? 'Quarantine' + + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and + ($CurrentState.EnableFileFilter -eq $true) -and + ($CurrentState.FileTypeAction -eq $FileTypeAction) -and + (!(Compare-Object -ReferenceObject $CurrentState.FileTypes -DifferenceObject $ExpectedFileTypes)) -and + ($CurrentState.ZapEnabled -eq $true) -and + ($CurrentState.QuarantineTag -eq $Settings.QuarantineTag) -and + ($CurrentState.EnableInternalSenderAdminNotifications -eq $Settings.EnableInternalSenderAdminNotifications) -and + (($null -eq $Settings.InternalSenderAdminAddress) -or ($CurrentState.InternalSenderAdminAddress -eq $Settings.InternalSenderAdminAddress)) -and + ($CurrentState.EnableExternalSenderAdminNotifications -eq $Settings.EnableExternalSenderAdminNotifications) -and + (($null -eq $Settings.ExternalSenderAdminAddress) -or ($CurrentState.ExternalSenderAdminAddress -eq $Settings.ExternalSenderAdminAddress)) + + $AcceptedDomains = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AcceptedDomain' + + $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterRule' | + Where-Object -Property Name -EQ $RuleName | + Select-Object Name, MalwareFilterPolicy, Priority, RecipientDomainIs + + $RuleStateIsCorrect = ($RuleState.Name -eq $RuleName) -and + ($RuleState.MalwareFilterPolicy -eq $PolicyName) -and + ($RuleState.Priority -eq 0) -and + (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) + + if ($Settings.remediate -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Malware Filter Policy already correctly configured' -sev Info + } else { + $cmdParams = @{ + EnableFileFilter = $true + FileTypes = $ExpectedFileTypes + FileTypeAction = $FileTypeAction + ZapEnabled = $true + QuarantineTag = $Settings.QuarantineTag + EnableInternalSenderAdminNotifications = $Settings.EnableInternalSenderAdminNotifications + InternalSenderAdminAddress = $Settings.InternalSenderAdminAddress + EnableExternalSenderAdminNotifications = $Settings.EnableExternalSenderAdminNotifications + ExternalSenderAdminAddress = $Settings.ExternalSenderAdminAddress + } + + if ($CurrentState.Name -eq $PolicyName) { + try { + $cmdParams.Add('Identity', $PolicyName) + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MalwareFilterPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Malware Filter policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Malware Filter policy $PolicyName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $PolicyName) + New-ExoRequest -tenantid $Tenant -cmdlet 'New-MalwareFilterPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Malware Filter policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Malware Filter policy $PolicyName." -sev Error -LogData $_ + } + } + } + + if ($RuleStateIsCorrect -eq $false) { + $cmdParams = @{ + Priority = 0 + RecipientDomainIs = $AcceptedDomains.Name + } + + if ($RuleState.MalwareFilterPolicy -ne $PolicyName) { + $cmdParams.Add('MalwareFilterPolicy', $PolicyName) + } + + if ($RuleState.Name -eq $RuleName) { + try { + $cmdParams.Add('Identity', $RuleName) + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MalwareFilterRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Malware Filter rule $RuleName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Malware Filter Rule $RuleName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $RuleName) + New-ExoRequest -tenantid $Tenant -cmdlet 'New-MalwareFilterRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Malware Filter rule $RuleName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Malware Filter rule $RuleName." -sev Error -LogData $_ + } + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Malware Filter Policy is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Malware Filter Policy is not enabled' -object $CurrentState -tenant $Tenant -standardName 'MalwareFilterPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Malware Filter Policy is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = $CurrentState | Select-Object Name, EnableFileFilter, FileTypeAction, FileTypes, ZapEnabled, QuarantineTag, EnableInternalSenderAdminNotifications, InternalSenderAdminAddress, EnableExternalSenderAdminNotifications, ExternalSenderAdminAddress + + $ExpectedValue = @{ + Name = $PolicyName + EnableFileFilter = $true + FileTypeAction = $FileTypeAction + FileTypes = $ExpectedFileTypes + ZapEnabled = $true + QuarantineTag = $Settings.QuarantineTag + EnableInternalSenderAdminNotifications = $Settings.EnableInternalSenderAdminNotifications + InternalSenderAdminAddress = $Settings.InternalSenderAdminAddress + EnableExternalSenderAdminNotifications = $Settings.EnableExternalSenderAdminNotifications + ExternalSenderAdminAddress = $Settings.ExternalSenderAdminAddress + } + Set-CIPPStandardsCompareField -FieldName 'standards.MalwareFilterPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'MalwareFilterPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 new file mode 100644 index 000000000000..489366c54f0a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 @@ -0,0 +1,80 @@ +function Invoke-CIPPStandardMessageExpiration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) MessageExpiration + .SYNOPSIS + (Label) Lower Transport Message Expiration to 12 hours + .DESCRIPTION + (Helptext) Sets the transport message configuration to timeout a message at 12 hours. + (DocsDescription) Expires messages in the transport queue after 12 hours. Makes the NDR for failed messages show up faster for users. Default is 24 hours. + .NOTES + CAT + Exchange Standards + TAG + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-02-23 + POWERSHELLEQUIVALENT + Set-TransportConfig -MessageExpirationTimeout 12.00:00:00 + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'MessageExpiration' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $MessageExpiration = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-TransportConfig').messageExpiration + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the MessageExpiration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + if ($MessageExpiration -ne '12:00:00') { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-TransportConfig' -cmdParams @{MessageExpiration = '12:00:00' } + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Set transport configuration message expiration to 12 hours' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set transport configuration message expiration to 12 hours. Error: $ErrorMessage" -sev Debug + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Transport configuration message expiration is already set to 12 hours' -sev Info + } + + } + if ($Settings.alert -eq $true) { + if ($MessageExpiration -eq '12:00:00') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Transport configuration message expiration is set to 12 hours' -sev Info + } else { + $Object = [PSCustomObject]@{ MessageExpiration = $MessageExpiration } + Write-StandardsAlert -message 'Transport configuration message expiration is not set to 12 hours' -object $Object -tenant $tenant -standardName 'MessageExpiration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Transport configuration message expiration is not set to 12 hours' -sev Info + } + } + if ($Settings.report -eq $true) { + $CurrentValue = @{ + MessageExpiration = $MessageExpiration + } + $ExpectedValue = @{ + MessageExpiration = '12:00:00' + } + Set-CIPPStandardsCompareField -FieldName 'standards.MessageExpiration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'messageExpiration' -FieldValue $MessageExpiration -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardModernAuth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardModernAuth.ps1 new file mode 100644 index 000000000000..5439b0fb4ea4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardModernAuth.ps1 @@ -0,0 +1,10 @@ +function Invoke-CIPPStandardModernAuth { + <# + .FUNCTIONALITY + Internal + #> + param($Tenant, $Settings) + If ($Settings.remediate -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Modern Authentication is enabled by default. This standard is no longer required.' -sev Info + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 new file mode 100644 index 000000000000..169ba51d7586 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 @@ -0,0 +1,99 @@ +function Invoke-CIPPStandardNudgeMFA { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) NudgeMFA + .SYNOPSIS + (Label) Sets the state for the request to setup Authenticator + .DESCRIPTION + (Helptext) Sets the state of the registration campaign for the tenant + (DocsDescription) Sets the state of the registration campaign for the tenant. If enabled nudges users to set up the Microsoft Authenticator during sign-in. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Prompts employees to set up multi-factor authentication during login, gradually improving the organization's security posture by encouraging adoption of stronger authentication methods. This helps achieve better security compliance without forcing immediate mandatory changes. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.NudgeMFA.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + {"type":"number","name":"standards.NudgeMFA.snoozeDurationInDays","label":"Number of days to allow users to skip registering Authenticator (0-14, default is 1)","defaultValue":1} + IMPACT + Low Impact + ADDEDDATE + 2022-12-08 + POWERSHELLEQUIVALENT + Update-MgPolicyAuthenticationMethodPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + Write-Host "NudgeMFA: $($Settings | ConvertTo-Json -Compress)" + # Get state value using null-coalescing operator + $State = $Settings.state.value ?? $Settings.state + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant + $StateIsCorrect = ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.state -eq $State) -and + ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays -eq $Settings.snoozeDurationInDays) -and + ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.enforceRegistrationAfterAllowedSnoozes -eq $true) + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Failed to get Authenticator App Nudge state, check your permissions and try again' -sev Error -LogData (Get-CippException -Exception $_) + return + } + + if ($Settings.remediate -eq $true) { + $StateName = $State.Substring(0, 1).ToUpper() + $State.Substring(1) + try { + $GraphRequest = @{ + tenantid = $Tenant + uri = 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' + AsApp = $false + Type = 'PATCH' + ContentType = 'application/json' + Body = @{ + registrationEnforcement = @{ + authenticationMethodsRegistrationCampaign = @{ + state = $State + snoozeDurationInDays = $Settings.snoozeDurationInDays + enforceRegistrationAfterAllowedSnoozes = $true + includeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.includeTargets + excludeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.excludeTargets + } + } + } | ConvertTo-Json -Depth 10 -Compress + } + New-GraphPostRequest @GraphRequest + Write-LogMessage -API 'Standards' -tenant $Tenant -message "$StateName Authenticator App Nudge with a snooze duration of $($Settings.snoozeDurationInDays)" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Authenticator App Nudge to $State. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is enabled with a snooze duration of $($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays)" -sev Info + } else { + Write-StandardsAlert -message "Authenticator App Nudge is not enabled with a snooze duration of $($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays)" -object ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign | Select-Object snoozeDurationInDays, state) -tenant $Tenant -standardName 'NudgeMFA' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is not enabled with a snooze duration of $($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays)" -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + snoozeDurationInDays = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays + state = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.state + } + $ExpectedValue = @{ + snoozeDurationInDays = $Settings.snoozeDurationInDays + state = $State + } + Set-CIPPStandardsCompareField -FieldName 'standards.NudgeMFA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'NudgeMFA' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOWAAttachmentRestrictions.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOWAAttachmentRestrictions.ps1 new file mode 100644 index 000000000000..614df8aca6fe --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOWAAttachmentRestrictions.ps1 @@ -0,0 +1,136 @@ +function Invoke-CIPPStandardOWAAttachmentRestrictions { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) OWAAttachmentRestrictions + .SYNOPSIS + (Label) Restrict Email Attachments on Unmanaged Devices + .DESCRIPTION + (Helptext) Restricts how users on unmanaged devices can interact with email attachments in Outlook on the web and new Outlook for Windows. Prevents downloading attachments or blocks viewing them entirely. + (DocsDescription) This standard configures the OWA mailbox policy to restrict access to email attachments on unmanaged devices. Users can be prevented from downloading attachments (but can view/edit via Office Online) or blocked from seeing attachments entirely. This helps prevent data exfiltration through email attachments on devices not managed by the organization. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.1.2)" + "Security" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts access to email attachments on personal or unmanaged devices while allowing full functionality on corporate-managed devices. This security measure prevents data theft through email attachments while maintaining productivity for employees using approved company devices. + ADDEDCOMPONENT + {"type":"autoComplete","name":"standards.OWAAttachmentRestrictions.ConditionalAccessPolicy","label":"Attachment Restriction Policy","options":[{"label":"Read Only (View/Edit via Office Online, no download)","value":"ReadOnly"},{"label":"Read Only Plus Attachments Blocked (Cannot see attachments)","value":"ReadOnlyPlusAttachmentsBlocked"}],"defaultValue":"ReadOnlyPlusAttachmentsBlocked"} + IMPACT + Medium Impact + ADDEDDATE + 2025-08-22 + POWERSHELLEQUIVALENT + Set-OwaMailboxPolicy -Identity "OwaMailboxPolicy-Default" -ConditionalAccessPolicy ReadOnlyPlusAttachmentsBlocked + RECOMMENDEDBY + "Microsoft Zero Trust" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'OWAAttachmentRestrictions' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Input validation + $ValidPolicies = @('ReadOnly', 'ReadOnlyPlusAttachmentsBlocked') + if ($Settings.ConditionalAccessPolicy.value -notin $ValidPolicies) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "OWAAttachmentRestrictions: Invalid ConditionalAccessPolicy parameter set. Must be one of: $($ValidPolicies -join ', ')" -sev Error + return + } + + try { + # Get the default OWA mailbox policy + $CurrentPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OwaMailboxPolicy' -cmdParams @{ Identity = 'OwaMailboxPolicy-Default' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the OWA Attachment Restrictions state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = $CurrentPolicy.ConditionalAccessPolicy -eq $Settings.ConditionalAccessPolicy.value + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "OWA attachment restrictions are already set to $($Settings.ConditionalAccessPolicy)" -sev Info + } else { + try { + $cmdParams = @{ + Identity = 'OwaMailboxPolicy-Default' + ConditionalAccessPolicy = $Settings.ConditionalAccessPolicy.value + } + + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OwaMailboxPolicy' -cmdParams $cmdParams + + $PolicyDescription = switch ($Settings.ConditionalAccessPolicy.value) { + 'ReadOnly' { 'Read Only (users can view/edit attachments via Office Online but cannot download)' } + 'ReadOnlyPlusAttachmentsBlocked' { 'Read Only Plus Attachments Blocked (users cannot see attachments at all)' } + } + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set OWA attachment restrictions to: $PolicyDescription" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set OWA attachment restrictions. $($ErrorMessage.NormalizedError)" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect) { + $PolicyDescription = switch ($Settings.ConditionalAccessPolicy.value) { + 'ReadOnly' { 'Read Only (view/edit via Office Online, no download)' } + 'ReadOnlyPlusAttachmentsBlocked' { 'Read Only Plus Attachments Blocked (cannot see attachments)' } + } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "OWA attachment restrictions are correctly set to: $PolicyDescription" -sev Info + } else { + $CurrentDescription = switch ($CurrentPolicy.ConditionalAccessPolicy) { + 'ReadOnly' { 'Read Only (view/edit via Office Online, no download)' } + 'ReadOnlyPlusAttachmentsBlocked' { 'Read Only Plus Attachments Blocked (cannot see attachments)' } + $null { 'Not configured (full access to attachments)' } + default { $CurrentPolicy.ConditionalAccessPolicy } + } + + $RequiredDescription = switch ($Settings.ConditionalAccessPolicy.value) { + 'ReadOnly' { 'Read Only (view/edit via Office Online, no download)' } + 'ReadOnlyPlusAttachmentsBlocked' { 'Read Only Plus Attachments Blocked (cannot see attachments)' } + } + + $AlertMessage = "OWA attachment restrictions are set to '$CurrentDescription' but should be '$RequiredDescription'" + Write-StandardsAlert -message $AlertMessage -object @{ + CurrentPolicy = $CurrentPolicy.ConditionalAccessPolicy + RequiredPolicy = $Settings.ConditionalAccessPolicy + PolicyName = $CurrentPolicy.Name + CurrentDescription = $CurrentDescription + RequiredDescription = $RequiredDescription + } -tenant $Tenant -standardName 'OWAAttachmentRestrictions' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message $AlertMessage -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + ConditionalAccessPolicy = $CurrentPolicy.ConditionalAccessPolicy + PolicyName = $CurrentPolicy.Name + IsCompliant = $StateIsCorrect + } + $ExpectedValue = @{ + ConditionalAccessPolicy = $Settings.ConditionalAccessPolicy.value + PolicyName = 'OwaMailboxPolicy-Default' + IsCompliant = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.OWAAttachmentRestrictions' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'OWAAttachmentRestrictions' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 new file mode 100644 index 000000000000..d4eee69db7a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 @@ -0,0 +1,111 @@ +function Invoke-CIPPStandardOauthConsent { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) OauthConsent + .SYNOPSIS + (Label) Require admin consent for applications (Prevent OAuth phishing) + .DESCRIPTION + (Helptext) Disables users from being able to consent to applications, except for those specified in the field below + (DocsDescription) Requires users to get administrator consent before sharing data with applications. You can preapprove specific applications. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (1.5.1)" + "CISA (MS.AAD.4.2v1)" + "EIDSCA.AP08" + "EIDSCA.AP09" + "Essential 8 (1175)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Requires administrative approval before employees can grant applications access to company data, preventing unauthorized data sharing and potential security breaches. This protects against malicious applications while allowing approved business tools to function normally. + ADDEDCOMPONENT + {"type":"textField","name":"standards.OauthConsent.AllowedApps","label":"Allowed application IDs, comma separated","required":false} + IMPACT + Medium Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Update-MgPolicyAuthorizationPolicy + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($tenant, $settings) + + try { + $State = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the OauthConsent state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -eq 'managePermissionGrantsForSelf.cipp-consent-policy') { $true } else { $false } + + if ($Settings.remediate -eq $true) { + $AllowedAppIdsForTenant = $settings.AllowedApps -split ',' | ForEach-Object { $_.Trim() } + try { + $Existing = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/permissionGrantPolicies/' -tenantid $tenant) | Where-Object -Property id -EQ 'cipp-consent-policy' + if (!$Existing) { + New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/permissionGrantPolicies' -Type POST -Body '{ "id":"cipp-consent-policy", "displayName":"Application Consent Policy", "description":"This policy controls the current application consent policies."}' -ContentType 'application/json' + # Replaced static web app appid with Office 365 Management by Microsoft's recommendation + New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/permissionGrantPolicies/cipp-consent-policy/includes' -Type POST -Body '{"permissionClassification":"all","permissionType":"delegated","clientApplicationIds":["00b41c95-dab0-4487-9791-b9d2c32c80f2"]}' -ContentType 'application/json' + } + + try { + $ExistingIncludes = New-GraphGetRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/permissionGrantPolicies/cipp-consent-policy/includes' + + $ExistingAppIds = foreach ($entry in $ExistingIncludes.value) { + $entry.clientApplicationIds + } + $ExistingAppIds = $ExistingAppIds | Sort-Object -Unique + + foreach ($AllowedApp in $AllowedAppIdsForTenant) { + if ($AllowedApp -and ($AllowedApp -notin $ExistingAppIds)) { + Write-Host "Adding missing approved app: $AllowedApp" + New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/permissionGrantPolicies/cipp-consent-policy/includes' -Type POST -Body ('{"permissionType": "delegated","clientApplicationIds": ["' + $AllowedApp + '"]}') -ContentType 'application/json' + New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/permissionGrantPolicies/cipp-consent-policy/includes' -Type POST -Body ('{ "permissionType": "Application", "clientApplicationIds": ["' + $AllowedApp + '"] }') -ContentType 'application/json' + } + } + } catch { + "Could not add exclusions, probably already exist: $($_)" + } + + if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -notin @('managePermissionGrantsForSelf.cipp-consent-policy')) { + New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -Type PATCH -Body '{"permissionGrantPolicyIdsAssignedToDefaultUserRole":["managePermissionGrantsForSelf.cipp-consent-policy"]}' -ContentType 'application/json' + } + + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode has been enabled.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Application Consent Mode Error: $ErrorMessage" -sev Error + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Application Consent Mode is not enabled.' -object ($State.defaultUserRolePermissions) -tenant $tenant -standardName 'OauthConsent' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'OauthConsent' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + $CurrentValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = $State.permissionGrantPolicyIdsAssignedToDefaultUserRole + } + $ExpectedValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = @('managePermissionGrantsForSelf.cipp-consent-policy') + } + Set-CIPPStandardsCompareField -FieldName 'standards.OauthConsent' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 new file mode 100644 index 000000000000..2ba180c1a0ca --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 @@ -0,0 +1,127 @@ +function Invoke-CIPPStandardOauthConsentLowSec { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) OauthConsentLowSec + .SYNOPSIS + (Label) Allow users to consent to applications with low security risk (Prevent OAuth phishing. Lower impact, less secure) + .DESCRIPTION + (Helptext) Sets the default oauth consent level so users can consent to applications that have low risks. + (DocsDescription) Allows users to consent to applications with low assigned risk. + .NOTES + CAT + Entra (AAD) Standards + TAG + "IntegratedApps" + EXECUTIVETEXT + Allows employees to approve low-risk applications without administrative intervention, balancing security with productivity. This provides a middle ground between complete restriction and open access, enabling business agility while maintaining protection against high-risk applications. + IMPACT + Medium Impact + ADDEDDATE + 2022-08-16 + POWERSHELLEQUIVALENT + Update-MgPolicyAuthorizationPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $State = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' -tenantid $tenant) + + $PermissionState = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications" -tenantid $tenant) | + Select-Object -Property permissionName + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the OauthConsentLowSec state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $requiredPermissions = @('offline_access', 'openid', 'User.Read', 'profile', 'email') + $missingPermissions = $requiredPermissions | Where-Object { $PermissionState.permissionName -notcontains $_ } + + $Standards = Get-CIPPStandards -Tenant $tenant + $ConflictingStandard = $Standards | Where-Object -Property Standard -EQ 'OauthConsent' + + if ($Settings.remediate -eq $true) { + if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -in @('managePermissionGrantsForSelf.microsoft-user-default-low')) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) is already enabled.' -sev Info + } elseif ($ConflictingStandard -and $State.permissionGrantPolicyIdsAssignedToDefaultUserRole -contains 'ManagePermissionGrantsForSelf.cipp-consent-policy') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'There is a conflicting OAuth Consent policy standard enabled for this tenant. Remove the Require admin consent for applications (Prevent OAuth phishing) standard from this tenant to apply the low security standard.' -sev Error + } else { + try { + $GraphParam = @{ + tenantid = $tenant + Uri = 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' + Type = 'PATCH' + Body = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = @('managePermissionGrantsForSelf.microsoft-user-default-low') + } | ConvertTo-Json + ContentType = 'application/json' + } + $null = New-GraphPostRequest @GraphParam + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) has been enabled.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply Application Consent Mode (microsoft-user-default-low) Error: $ErrorMessage" -sev Error + } + } + + if ($missingPermissions.Count -eq 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'All permissions for Application Consent already assigned.' -sev Info + } else { + try { + $missingPermissions | ForEach-Object { + $GraphParam = @{ + tenantid = $tenant + Uri = "https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')/delegatedPermissionClassifications" + Type = 'POST' + Body = @{ + permissionName = $_ + classification = 'low' + } | ConvertTo-Json + ContentType = 'application/json' + } + $null = New-GraphPostRequest @GraphParam + Write-LogMessage -API 'Standards' -tenant $tenant -message "Permission $_ has been added to low Application Consent" -sev Info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to apply low consent permissions Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -notin @('managePermissionGrantsForSelf.microsoft-user-default-low')) { + Write-StandardsAlert -message 'Application Consent Mode(microsoft-user-default-low) is not enabled' -object $State -tenant $tenant -standardName 'OauthConsentLowSec' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) is not enabled.' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode(microsoft-user-default-low) is enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = $State.permissionGrantPolicyIdsAssignedToDefaultUserRole + } + # Add conflicting standard info if applicable + if ($ConflictingStandard) { + $CurrentValue.conflictingStandard = @{ + name = $ConflictingStandard.Standard + templateid = $ConflictingStandard.TemplateId + } + } + + $ExpectedValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = @('managePermissionGrantsForSelf.microsoft-user-default-low') + } + Add-CIPPBPAField -FieldName 'OauthConsentLowSec' -FieldValue $State.permissionGrantPolicyIdsAssignedToDefaultUserRole -StoreAs bool -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.OauthConsentLowSec' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 new file mode 100644 index 000000000000..746cb2632c46 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 @@ -0,0 +1,88 @@ +function Invoke-CIPPStandardOutBoundSpamAlert { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) OutBoundSpamAlert + .SYNOPSIS + (Label) Set Outbound Spam Alert e-mail + .DESCRIPTION + (Helptext) Set the Outbound Spam Alert e-mail address + (DocsDescription) Sets the e-mail address to which outbound spam alerts are sent. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (2.1.6)" + ADDEDCOMPONENT + {"type":"textField","name":"standards.OutBoundSpamAlert.OutboundSpamContact","label":"Outbound spam contact"} + IMPACT + Low Impact + ADDEDDATE + 2023-05-03 + POWERSHELLEQUIVALENT + Set-HostedOutboundSpamFilterPolicy + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'OutBoundSpamAlert' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-HostedOutboundSpamFilterPolicy' -cmdParams @{ Identity = 'Default' } -useSystemMailbox $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the OutBoundSpamAlert state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($CurrentInfo.NotifyOutboundSpam -ne $true -or $CurrentInfo.NotifyOutboundSpamRecipients -ne $settings.OutboundSpamContact) { + $Contacts = $settings.OutboundSpamContact + try { + New-ExoRequest -tenantid $tenant -cmdlet 'Set-HostedOutboundSpamFilterPolicy' -cmdParams @{ Identity = 'Default'; NotifyOutboundSpam = $true; NotifyOutboundSpamRecipients = $Contacts } -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message "Set outbound spam filter alert to $($Contacts)" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Could not set outbound spam contact to $($Contacts). $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Outbound spam filter alert is already set to $($CurrentInfo.NotifyOutboundSpamRecipients)" -sev Info + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.NotifyOutboundSpam -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Outbound spam filter alert is set to $($CurrentInfo.NotifyOutboundSpamRecipients)" -sev Info + } else { + $Object = $CurrentInfo | Select-Object -Property NotifyOutboundSpamRecipients, NotifyOutboundSpam + Write-StandardsAlert -message 'Outbound spam filter alert is not set' -object $Object -tenant $tenant -standardName 'OutBoundSpamAlert' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Outbound spam filter alert is not set' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'OutboundSpamAlert' -FieldValue $CurrentInfo.NotifyOutboundSpam -StoreAs bool -Tenant $tenant + $CurrentValue = @{ + NotifyOutboundSpam = $CurrentInfo.NotifyOutboundSpam + NotifyOutboundSpamRecipients = $CurrentInfo.NotifyOutboundSpamRecipients + } + $ExpectedValue = @{ + NotifyOutboundSpam = $true + NotifyOutboundSpamRecipients = $settings.OutboundSpamContact + } + Set-CIPPStandardsCompareField -FieldName 'standards.OutBoundSpamAlert' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 new file mode 100644 index 000000000000..474de9cf7e44 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 @@ -0,0 +1,113 @@ +function Invoke-CIPPStandardPWcompanionAppAllowedState { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) PWcompanionAppAllowedState + .SYNOPSIS + (Label) Set Authenticator Lite state + .DESCRIPTION + (Helptext) Sets the state of Authenticator Lite, Authenticator lite is a companion app for passwordless authentication. + (DocsDescription) Sets the Authenticator Lite state to enabled. This allows users to use the Authenticator Lite built into the Outlook app instead of the full Authenticator app. + .NOTES + CAT + Entra (AAD) Standards + TAG + "EIDSCA.AM01" + EXECUTIVETEXT + Enables a simplified authentication experience by allowing users to authenticate directly through Outlook without requiring a separate authenticator app. This improves user convenience while maintaining security standards for passwordless authentication. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.PWcompanionAppAllowedState.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"},{"label":"Microsoft managed","value":"default"}]} + IMPACT + Low Impact + ADDEDDATE + 2023-05-18 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $AuthenticatorFeaturesState = (New-GraphGetRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator') + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PWcompanionAppAllowedState state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Get state value using null-coalescing operator + $CurrentState = $AuthenticatorFeaturesState.featureSettings.companionAppAllowedState.state + $WantedState = $Settings.state.value ? $Settings.state.value : $settings.state + $AuthStateCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + + # Input validation + if (([string]::IsNullOrWhiteSpace($WantedState) -or $WantedState -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'PWcompanionAppAllowedState: Invalid state parameter set' -sev Error + Return + } + + If ($Settings.remediate -eq $true) { + Write-Host "Remediating PWcompanionAppAllowedState for tenant $Tenant to $WantedState" + + if ($AuthStateCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "companionAppAllowedState is already set to the desired state of $WantedState." -sev Info + } else { + try { + # Remove number matching from featureSettings because this is now Microsoft enforced and shipping it returns an error + $AuthenticatorFeaturesState.featureSettings.PSObject.Properties.Remove('numberMatchingRequiredState') + # Define feature body + $featureBody = @{ + state = $WantedState + includeTarget = [PSCustomObject]@{ + targetType = 'group' + id = 'all_users' + } + excludeTarget = [PSCustomObject]@{ + targetType = 'group' + id = '00000000-0000-0000-0000-000000000000' + } + } + $AuthenticatorFeaturesState.featureSettings.companionAppAllowedState = $featureBody + $body = ConvertTo-Json -Depth 3 -Compress -InputObject $AuthenticatorFeaturesState + $null = (New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator' -Type patch -Body $body -ContentType 'application/json') + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set companionAppAllowedState to $WantedState." -sev Info + } catch { + $ErrorMessage = Get-CippExceptionMessage -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set companionAppAllowedState to $WantedState. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($AuthStateCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "companionAppAllowedState is set to $WantedState." -sev Info + } else { + Write-StandardsAlert -message "companionAppAllowedState is not set to $WantedState. Current state is $CurrentState." -object $AuthenticatorFeaturesState -tenant $Tenant -standardName 'PWcompanionAppAllowedState' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "companionAppAllowedState is not set to $WantedState. Current state is $CurrentState." -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'companionAppAllowedState' -FieldValue $AuthStateCorrect -StoreAs bool -Tenant $Tenant + if ($AuthStateCorrect -eq $true) { + $FieldValue = $true + } else { + $FieldValue = $AuthenticatorFeaturesState.featureSettings.companionAppAllowedState + } + $CurrentValue = @{ + companionAppAllowedState = $AuthenticatorFeaturesState.featureSettings.companionAppAllowedState.state + } + $ExpectedValue = @{ + companionAppAllowedState = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.PWcompanionAppAllowedState' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 new file mode 100644 index 000000000000..63723ed0fd13 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 @@ -0,0 +1,89 @@ +function Invoke-CIPPStandardPWdisplayAppInformationRequiredState { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) PWdisplayAppInformationRequiredState + .SYNOPSIS + (Label) Enable Passwordless with Location information and Number Matching + .DESCRIPTION + (Helptext) Enables the MS authenticator app to display information about the app that is requesting authentication. This displays the application name. + (DocsDescription) Allows users to use Passwordless with Number Matching and adds location information from the last request + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (2.3.1)" + "EIDSCA.AM03" + "EIDSCA.AM04" + "EIDSCA.AM06" + "EIDSCA.AM07" + "EIDSCA.AM09" + "EIDSCA.AM10" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Enhances authentication security by requiring users to match numbers and showing detailed information about login requests, including application names and location data. This helps employees verify legitimate login attempts and prevents unauthorized access through more secure authentication methods. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PWdisplayAppInformationRequiredState state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.state -eq 'enabled') -and + ($CurrentState.featureSettings.numberMatchingRequiredState.state -eq 'enabled') -and + ($CurrentState.featureSettings.displayAppInformationRequiredState.state -eq 'enabled') + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Passwordless with Information and Number Matching is already enabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'MicrosoftAuthenticator' -Enabled $true + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Passwordless with Information and Number Matching is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Passwordless with Information and Number Matching is not enabled' -object $CurrentState -tenant $tenant -standardName 'PWdisplayAppInformationRequiredState' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Passwordless with Information and Number Matching is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'PWdisplayAppInformationRequiredState' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + $CurrentValue = @{ + state = $CurrentState.state + numberMatchingRequiredState = $CurrentState.featureSettings.numberMatchingRequiredState.state + displayAppInformationRequiredState = $CurrentState.featureSettings.displayAppInformationRequiredState.state + } + $ExpectedValue = @{ + state = 'enabled' + numberMatchingRequiredState = 'enabled' + displayAppInformationRequiredState = 'enabled' + } + Set-CIPPStandardsCompareField -FieldName 'standards.PWdisplayAppInformationRequiredState' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWnumberMatchingRequiredState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWnumberMatchingRequiredState.ps1 new file mode 100644 index 000000000000..48b5e602afcb --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWnumberMatchingRequiredState.ps1 @@ -0,0 +1,8 @@ +function Invoke-CIPPStandardPWnumberMatchingRequiredState { + <# + .FUNCTIONALITY + Internal + #> + param($Tenant, $Settings) + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Passwordless with number matching is now enabled by default.' -sev Info +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 new file mode 100644 index 000000000000..403f80236b2e --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 @@ -0,0 +1,93 @@ +function Invoke-CIPPStandardPasswordExpireDisabled { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) PasswordExpireDisabled + .SYNOPSIS + (Label) Do not expire passwords + .DESCRIPTION + (Helptext) Disables the expiration of passwords for the tenant by setting the password expiration policy to never expire for any user. + (DocsDescription) Sets passwords to never expire for tenant, recommended to use in conjunction with secure password requirements. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (1.3.1)" + "PWAgePolicyNew" + EXECUTIVETEXT + Eliminates mandatory password expiration requirements, allowing employees to keep strong passwords indefinitely rather than forcing frequent changes that often lead to weaker passwords. This modern security approach reduces help desk calls and improves overall password security when combined with multi-factor authentication. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Update-MgDomain + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $GraphRequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/domains' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PasswordExpireDisabled state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $DomainsWithoutPassExpire = $GraphRequest | + Where-Object { $_.isVerified -eq $true -and $_.passwordValidityPeriodInDays -ne 2147483647 } + + if ($Settings.remediate -eq $true) { + + if ($DomainsWithoutPassExpire) { + $DomainsWithoutPassExpire | ForEach-Object { + try { + if ( $null -eq $_.passwordNotificationWindowInDays ) { + $Body = '{"passwordValidityPeriodInDays": 2147483647, "passwordNotificationWindowInDays": 14 }' + Write-Host "PasswordNotificationWindowInDays is null for $($_.id). Setting to the default of 14 days." + } else { + $Body = '{"passwordValidityPeriodInDays": 2147483647 }' + } + New-GraphPostRequest -type Patch -tenantid $Tenant -uri "https://graph.microsoft.com/v1.0/domains/$($_.id)" -body $Body + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled Password Expiration for $($_.id)." -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable Password Expiration for $($_.id). Error: $ErrorMessage" -sev Error + } + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Password Expiration is already disabled for all $($GraphRequest.Count) domains." -sev Info + } + + } + + if ($Settings.alert -eq $true) { + if ($DomainsWithoutPassExpire) { + Write-StandardsAlert -message "Password Expiration is not disabled for the following $($DomainsWithoutPassExpire.Count) domains: $($DomainsWithoutPassExpire.id -join ', ')" -object $DomainsWithoutPassExpire -tenant $tenant -standardName 'PasswordExpireDisabled' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Password Expiration is not disabled for the following $($DomainsWithoutPassExpire.Count) domains: $($DomainsWithoutPassExpire.id -join ', ')" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Password Expiration is disabled for all $($GraphRequest.Count) domains." -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'PasswordExpireDisabled' -FieldValue $DomainsWithoutPassExpire -StoreAs json -Tenant $tenant + + $CurrentValue = @{ + DomainsWithoutPassExpire = @($DomainsWithoutPassExpire) + } + $ExpectedValue = @{ + DomainsWithoutPassExpire = @() + } + Set-CIPPStandardsCompareField -FieldName 'standards.PasswordExpireDisabled' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 new file mode 100644 index 000000000000..e4ea97dc4389 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 @@ -0,0 +1,81 @@ +function Invoke-CIPPStandardPerUserMFA { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) PerUserMFA + .SYNOPSIS + (Label) Enables per user MFA for all users. + .DESCRIPTION + (Helptext) Enables per user MFA for all users. + (DocsDescription) Enables per user MFA for all users. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CIS M365 5.0 (1.2.1)" + "CIS M365 5.0 (1.1.1)" + "CIS M365 5.0 (1.1.2)" + "CISA (MS.AAD.1.1v1)" + "CISA (MS.AAD.1.2v1)" + "Essential 8 (1504)" + "Essential 8 (1173)" + "Essential 8 (1401)" + "NIST CSF 2.0 (PR.AA-03)" + EXECUTIVETEXT + Requires all employees to use multi-factor authentication for enhanced account security, significantly reducing the risk of unauthorized access from compromised passwords. This fundamental security measure protects against the majority of account-based attacks and is essential for maintaining strong cybersecurity posture. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2024-06-14 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=userPrincipalName,displayName,accountEnabled,perUserMfaState&`$filter=userType eq 'Member' and accountEnabled eq true and displayName ne 'On-Premises Directory Synchronization Service Account'&`$count=true" -tenantid $Tenant -ComplexFilter + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PerUserMFA state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $UsersWithoutMFA = $GraphRequest | Where-Object -Property perUserMfaState -NE 'enforced' | Select-Object -Property userPrincipalName, displayName, accountEnabled, perUserMfaState + + if ($Settings.remediate -eq $true) { + if (($UsersWithoutMFA | Measure-Object).Count -gt 0) { + try { + $MFAMessage = Set-CIPPPerUserMFA -TenantFilter $Tenant -userId @($UsersWithoutMFA.userPrincipalName) -State 'enforced' + Write-LogMessage -API 'Standards' -tenant $tenant -message $MFAMessage -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enforce MFA for all users: $ErrorMessage" -sev Error + } + } + } + if ($Settings.alert -eq $true) { + if (($UsersWithoutMFA.userPrincipalName | Measure-Object).Count -gt 0) { + Write-StandardsAlert -message "The following accounts do not have Legacy MFA Enforced: $($UsersWithoutMFA.userPrincipalName -join ', ')" -object $UsersWithoutMFA -tenant $tenant -standardName 'PerUserMFA' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "The following accounts do not have Legacy MFA Enforced: $($UsersWithoutMFA.userPrincipalName -join ', ')" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'No accounts do not have legacy per user MFA Enforced' -sev Info + } + } + if ($Settings.report -eq $true) { + $CurrentValue = @{ + UsersWithoutMFA = @($UsersWithoutMFA) + } + $ExpectedValue = @{ + UsersWithoutMFA = @() + } + Set-CIPPStandardsCompareField -FieldName 'standards.PerUserMFA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'LegacyMFAUsers' -FieldValue $UsersWithoutMFA -StoreAs json -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 new file mode 100644 index 000000000000..fdf203641250 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 @@ -0,0 +1,111 @@ +function Invoke-CIPPStandardPhishProtection { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) PhishProtection + .SYNOPSIS + (Label) Enable Phishing Protection system via branding CSS + .DESCRIPTION + (Helptext) Adds branding to the logon page that only appears if the url is not login.microsoftonline.com. This potentially prevents AITM attacks via EvilNginx. This will also automatically generate alerts if a clone of your login page has been found when set to Remediate. + (DocsDescription) Adds branding to the logon page that only appears if the url is not login.microsoftonline.com. This potentially prevents AITM attacks via EvilNginx. This will also automatically generate alerts if a clone of your login page has been found when set to Remediate. + .NOTES + CAT + Global Standards + TAG + EXECUTIVETEXT + Implements advanced phishing protection by adding visual indicators to login pages that help users identify legitimate Microsoft login pages versus fraudulent copies. This security measure protects against sophisticated phishing attacks that attempt to steal employee credentials. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-01-22 + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + POWERSHELLEQUIVALENT + Portal only + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + $TenantId = Get-Tenants | Where-Object -Property defaultDomainName -EQ $tenant + + $Table = Get-CIPPTable -TableName Config + $CippConfig = (Get-CIPPAzDataTableEntity @Table) + $CIPPUrl = ($CippConfig | Where-Object { $_.RowKey -eq 'CIPPURL' }).Value + + try { + $currentBody = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0/customCSS" -tenantid $tenant) + } catch { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Could not get the branding for $($Tenant). This tenant might not have premium licenses available: $($_.Exception.Message)" -sev Error + } + $CSS = @" +.ext-sign-in-box { + background-image: url(https://clone.cipp.app/api/PublicPhishingCheck?Tenantid=$($tenant)&URL=https://$($CIPPUrl)); +} +"@ + if ($Settings.remediate -eq $true) { + + $malformedCSSPattern = '\.ext-sign-in-box\s*\{\s*background-image:\s*url\(https://clone\.cipp\.app/api/PublicPhishingCheck\?Tenantid=[^&]*&URL=\);\s*\}' + if ($currentBody -match $malformedCSSPattern) { + if ($Settings.remediate -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Attempting to fix malformed PhishProtection CSS by removing the problematic pattern' -sev Info + # Remove the malformed CSS pattern + $currentBody = $currentBody -replace $malformedCSSPattern, '' + # Clean up any duplicate .ext-sign-in-box entries + #$currentBody = $currentBody -replace '\.ext-sign-in-box\s*\{[^}]*\}\s*\.ext-sign-in-box', '.ext-sign-in-box' + } + } + + try { + if (!$currentBody) { + $AddedHeaders = @{'Accept-Language' = 0 } + $defaultBrandingBody = '{"usernameHintText":null,"signInPageText":null,"backgroundColor":null,"customPrivacyAndCookiesText":null,"customCannotAccessYourAccountText":null,"customForgotMyPasswordText":null,"customTermsOfUseText":null,"loginPageLayoutConfiguration":{"layoutTemplateType":"default","isFooterShown":true,"isHeaderShown":false},"loginPageTextVisibilitySettings":{"hideAccountResetCredentials":false,"hideTermsOfUse":true,"hidePrivacyAndCookies":true},"contentCustomization":{"conditionalAccess":[],"attributeCollection":[]}}' + try { + New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/" -ContentType 'application/json' -asApp $true -Type POST -Body $defaultBrandingBody -AddedHeaders $AddedHeaders + } catch { + + } + } + if ($currentBody -like "*$CSS*") { + Write-Host 'Logon Screen Phishing Protection system already active' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Logon Screen Phishing Protection system already active' -sev Info + } else { + $currentBody = $currentBody + $CSS + Write-Host 'Creating Logon Screen Phishing Protection System' + New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/0/customCSS" -ContentType 'text/css' -asApp $true -Type PUT -Body $currentBody + + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Enabled Logon Screen Phishing Protection system' -sev Info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Could not set Logon Screen Phishing Protection System for $($Tenant): $ErrorMessage" -sev Error + } + } + + if ($Settings.alert -eq $true) { + if ($currentBody -like "*$CSS*") { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'PhishProtection is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'PhishProtection is not enabled' -object $currentBody -tenant $tenant -standardName 'PhishProtection' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'PhishProtection is not enabled.' -sev Info + } + } + if ($Settings.report -eq $true) { + if ($currentBody -like "*$CSS*") { $authState = $true } else { $authState = $false } + $CurrentValue = @{ + PhishingCSSEnabled = $authState + } + $ExpectedValue = @{ + PhishingCSSEnabled = $true + } + Add-CIPPBPAField -FieldName 'PhishProtection' -FieldValue $authState -StoreAs bool -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.PhishProtection' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 new file mode 100644 index 000000000000..8374e9803f06 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 @@ -0,0 +1,133 @@ +function Invoke-CIPPStandardPhishSimSpoofIntelligence { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) PhishSimSpoofIntelligence + .SYNOPSIS + (Label) Add allowed domains to Spoof Intelligence + .DESCRIPTION + (Helptext) This adds allowed domains to the Spoof Intelligence Allow/Block List. + (DocsDescription) This adds allowed domains to the Spoof Intelligence Allow/Block List. + .NOTES + CAT + Defender Standards + TAG + ADDEDCOMPONENT + {"type":"switch","label":"Remove extra domains from the allow list","name":"standards.PhishSimSpoofIntelligence.RemoveExtraDomains","defaultValue":false,"required":false} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"label":"Allowed Domains","name":"standards.PhishSimSpoofIntelligence.AllowedDomains"} + IMPACT + Medium Impact + ADDEDDATE + 2025-03-28 + POWERSHELLEQUIVALENT + New-TenantAllowBlockListSpoofItems + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'PhishSimSpoofIntelligence' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + # Fetch current Phishing Simulations Spoof Intelligence domains and ensure it is correctly configured + try { + $DomainState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-TenantAllowBlockListSpoofItems' | + Select-Object -Property Identity, SendingInfrastructure + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PhishSimSpoofIntelligence state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + [String[]]$AddDomain = $Settings.AllowedDomains.value | Where-Object { $_ -notin $DomainState.SendingInfrastructure } + + if ($Settings.RemoveExtraDomains -eq $true) { + $RemoveDomain = $DomainState | Where-Object { $_.SendingInfrastructure -notin $Settings.AllowedDomains.value } | + Select-Object -Property Identity, SendingInfrastructure + } else { + $RemoveDomain = @() + } + + $StateIsCorrect = ($AddDomain.Count -eq 0 -and $RemoveDomain.Count -eq 0) + + $CompareField = [PSCustomObject]@{ + 'Missing Domains' = $AddDomain -join ', ' + 'Incorrect Domains' = $RemoveDomain.SendingInfrastructure -join ', ' + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spoof Intelligence Allow list already correctly configured' -sev Info + } else { + $BulkRequests = New-Object System.Collections.Generic.List[Hashtable] + + if ($Settings.RemoveExtraDomains -eq $true) { + # Prepare removal requests + if ($RemoveDomain.Count -gt 0) { + Write-Host "Removing $($RemoveDomain.Count) domains from Spoof Intelligence" + $BulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-TenantAllowBlockListSpoofItems' + Parameters = @{ Identity = 'default'; Ids = $RemoveDomain.Identity } + } + }) + } + } + + # Prepare addition requests + foreach ($Domain in $AddDomain) { + $BulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'New-TenantAllowBlockListSpoofItems' + Parameters = @{ Identity = 'default'; Action = 'Allow'; SendingInfrastructure = $Domain; SpoofedUser = '*'; SpoofType = 'Internal' } + } + }) + $BulkRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'New-TenantAllowBlockListSpoofItems' + Parameters = @{ Identity = 'default'; Action = 'Allow'; SendingInfrastructure = $Domain; SpoofedUser = '*'; SpoofType = 'External' } + } + }) + } + $RawExoRequest = New-ExoBulkRequest -tenantid $Tenant -cmdletArray @($BulkRequests) + + $LastError = $RawExoRequest | Select-Object -Last 1 + if ($LastError.error) { + foreach ($ExoError in $LastError.error) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to process Spoof Intelligence Domain with error: $ExoError" -Sev Error + } + } else { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Processed all Spoof Intelligence Domains successfully.' -Sev Info + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spoof Intelligence Allow list is correctly configured' -sev Info + } else { + Write-StandardsAlert -message 'Spoof Intelligence Allow list is not correctly configured' -object $CompareField -tenant $Tenant -standardName 'PhishSimSpoofIntelligence' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spoof Intelligence Allow list is not correctly configured' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + AllowedDomains = @($DomainState.SendingInfrastructure) + IsCompliant = [bool]$StateIsCorrect + } + $ExpectedValue = @{ + AllowedDomains = @($Settings.AllowedDomains.value) + IsCompliant = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.PhishSimSpoofIntelligence' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'PhishSimSpoofIntelligence' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 new file mode 100644 index 000000000000..e5d64514d13c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 @@ -0,0 +1,214 @@ +function Invoke-CIPPStandardPhishingSimulations { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) PhishingSimulations + .SYNOPSIS + (Label) Phishing Simulation Configuration + .DESCRIPTION + (Helptext) This creates a phishing simulation policy that enables phishing simulations for the entire tenant. + (DocsDescription) This creates a phishing simulation policy that enables phishing simulations for the entire tenant. + .NOTES + CAT + Defender Standards + TAG + ADDEDCOMPONENT + {"type":"autoComplete","multiple":true,"creatable":true,"required":true,"label":"Phishing Simulation Domains","name":"standards.PhishingSimulations.Domains"} + {"type":"autoComplete","multiple":true,"creatable":true,"required":true,"label":"Phishing Simulation Sender IP Ranges","name":"standards.PhishingSimulations.SenderIpRanges"} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"label":"Phishing Simulation Urls","name":"standards.PhishingSimulations.PhishingSimUrls"} + {"type":"switch","label":"Remove extra urls","name":"standards.PhishingSimulations.RemoveExtraUrls","defaultValue":false,"required":false} + IMPACT + Medium Impact + ADDEDDATE + 2025-03-27 + POWERSHELLEQUIVALENT + New-TenantAllowBlockListItems, New-PhishSimOverridePolicy and New-ExoPhishSimOverrideRule + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'PhishingSimulations' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + $PolicyName = 'CIPPPhishSim' + + # Fetch current Phishing Simulations Policy settings and ensure it is correctly configured + try { + $PolicyState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-PhishSimOverridePolicy' | + Where-Object -Property Name -EQ 'PhishSimOverridePolicy' | + Select-Object -Property Identity, Name, Mode, Enabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the PhishingSimulations state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $PolicyIsCorrect = ($PolicyState.Name -eq 'PhishSimOverridePolicy') -and ($PolicyState.Enabled -eq $true) + + # Fetch current Phishing Simulations Policy Rule settings and ensure it is correctly configured + $RuleState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-ExoPhishSimOverrideRule' | + Select-Object -Property Identity, Name, SenderIpRanges, Domains, SenderDomainIs + + [String[]]$AddSenderIpRanges = $Settings.SenderIpRanges.value | Where-Object { $_ -notin $RuleState.SenderIpRanges } + if ($Settings.RemoveExtraUrls -eq $true) { + [String[]]$RemoveSenderIpRanges = $RuleState.SenderIpRanges | Where-Object { $_ -notin $Settings.SenderIpRanges.value } + } else { + $RemoveSenderIpRanges = @() + } + + [String[]]$AddDomains = $Settings.Domains.value | Where-Object { $_ -notin $RuleState.Domains } + if ($Settings.RemoveExtraUrls -eq $true) { + [String[]]$RemoveDomains = $RuleState.Domains | Where-Object { $_ -notin $Settings.Domains.value } + } else { + $RemoveDomains = @() + } + + $RuleIsCorrect = ($RuleState.Name -like '*PhishSimOverr*') -and + ($AddSenderIpRanges.Count -eq 0 -and $RemoveSenderIpRanges.Count -eq 0) -and + ($AddDomains.Count -eq 0 -and $RemoveDomains.Count -eq 0) + + # Fetch current Phishing Simulations URLs and ensure it is correctly configured + $SimUrlState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-TenantAllowBlockListItems' -cmdParams @{ListType = 'Url'; ListSubType = 'AdvancedDelivery' } | + Select-Object -Property Value + + [String[]]$AddEntries = $Settings.PhishingSimUrls.value | Where-Object { $_ -notin $SimUrlState.value } + if ($Settings.RemoveExtraUrls -eq $true) { + [String[]]$RemoveEntries = $SimUrlState.value | Where-Object { $_ -notin $Settings.PhishingSimUrls.value } + } else { + $RemoveEntries = @() + } + + $PhishingSimUrlsIsCorrect = ($AddEntries.Count -eq 0 -and $RemoveEntries.Count -eq 0) + + # Check state for all components + $StateIsCorrect = $PolicyIsCorrect -and $RuleIsCorrect -and $PhishingSimUrlsIsCorrect + + $CompareField = [PSCustomObject]@{ + Domains = $RuleState.Domains -join ', ' + SenderIpRanges = $RuleState.SenderIpRanges -join ', ' + PhishingSimUrls = $SimUrlState.value -join ', ' + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Advanced Phishing Simulations already correctly configured' -sev Info + } else { + # Remediate incorrect Phishing Simulations Policy + if ($PolicyIsCorrect -eq $false) { + if ($PolicyState.Name -eq 'PhishSimOverridePolicy') { + try { + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Set-PhishSimOverridePolicy' -cmdParams @{Identity = $PolicyName; Enabled = $true } + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Enabled Phishing Simulation override policy.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to enable Phishing Simulation override policy.' -sev Error -LogData $_ + } + } else { + try { + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-PhishSimOverridePolicy' -cmdParams @{Name = $PolicyName; Enabled = $true } + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Created Phishing Simulation override policy.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to create Phishing Simulation override policy.' -sev Error -LogData $_ + } + } + } + + # Remediate incorrect Phishing Simulations Policy Rule + if ($RuleIsCorrect -eq $false) { + if ($RuleState.Name -like '*PhishSimOverr*') { + $cmdParams = @{ + Identity = $RuleState.Identity + AddSenderIpRanges = $AddSenderIpRanges + AddDomains = $AddDomains + RemoveSenderIpRanges = $RemoveSenderIpRanges + RemoveDomains = $RemoveDomains + } + try { + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Set-ExoPhishSimOverrideRule' -cmdParams $cmdParams + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Updated Phishing Simulation override rule.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to update Phishing Simulation override rule.' -sev Error -LogData $_ + } + } else { + $cmdParams = @{ + Name = $PolicyName + Policy = 'PhishSimOverridePolicy' + SenderIpRanges = $Settings.SenderIpRanges.value + Domains = $Settings.Domains.value + } + try { + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-ExoPhishSimOverrideRule' -cmdParams $cmdParams + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Created Phishing Simulation override rule.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to create Phishing Simulation override rule.' -sev Error -LogData $_ + } + } + } + + # Remediate incorrect Phishing Simulations URLs + if ($PhishingSimUrlsIsCorrect -eq $false) { + $cmdParams = @{ + ListType = 'Url' + ListSubType = 'AdvancedDelivery' + } + if ($Settings.RemoveExtraUrls -eq $true) { + # Remove entries that are not in the settings + if ($RemoveEntries.Count -gt 0) { + $cmdParams.Entries = $RemoveEntries + try { + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Remove-TenantAllowBlockListItems' -cmdParams $cmdParams + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Removed Phishing Simulation URLs from Allowlist.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to remove Phishing Simulation URLs from Allowlist.' -sev Error -LogData $_ + } + } + } + # Add entries that are in the settings + if ($AddEntries.Count -gt 0) { + $cmdParams.Entries = $AddEntries + $cmdParams.NoExpiration = $true + $cmdParams.Allow = $true + try { + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-TenantAllowBlockListItems' -cmdParams $cmdParams + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Added Phishing Simulation URLs to Allowlist.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Failed to add Phishing Simulation URLs to Allowlist.' -sev Error -LogData $_ + } + } + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Phishing Simulation Configuration is correctly configured' -sev Info + } else { + Write-StandardsAlert -message 'Phishing Simulation Configuration is not correctly configured' -object $CompareField -tenant $Tenant -standardName 'PhishingSimulations' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Phishing Simulation Configuration is not correctly configured' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + Domains = @($RuleState.Domains) + SenderIpRanges = @($RuleState.SenderIpRanges) + PhishingSimUrls = @($SimUrlState.value) + IsCompliant = $StateIsCorrect + } + $ExpectedValue = @{ + Domains = @($Settings.Domains.value) + SenderIpRanges = @($Settings.SenderIpRanges.value) + PhishingSimUrls = @($Settings.PhishingSimUrls.value) + IsCompliant = $true + } + Add-CIPPBPAField -FieldName 'PhishingSimulations' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.PhishingSimulations' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 new file mode 100644 index 000000000000..c802bc152a03 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 @@ -0,0 +1,143 @@ +function Invoke-CIPPStandardProfilePhotos { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) ProfilePhotos + .SYNOPSIS + (Label) Allow users to set profile photos + .DESCRIPTION + (Helptext) Controls whether users can set their own profile photos in Microsoft 365. + (DocsDescription) Controls whether users can set their own profile photos in Microsoft 365. When disabled, only User and Global administrators can update profile photos for users. + .NOTES + CAT + Global Standards + TAG + EXECUTIVETEXT + Manages user profile photo permissions within Microsoft 365, allowing organizations to control whether employees can upload their own photos or require administrative approval. This helps maintain professional appearance standards and prevents inappropriate images in corporate directories. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.ProfilePhotos.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-01-19 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -ProfilePhotoOptions EnablePhotos and Update-MgBetaAdminPeople + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'ProfilePhotos' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Get state value using null-coalescing operator + $StateValue = $Settings.state.value ?? $Settings.state + + # Input validation + if ([string]::IsNullOrWhiteSpace($StateValue)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'ProfilePhotos: Invalid state parameter set' -sev Error + return + } + + # true if wanted state is enabled, false if disabled + $DesiredState = $StateValue -eq 'enabled' + + # Get current Graph policy state + try { + $Uri = 'https://graph.microsoft.com/beta/admin/people/photoUpdateSettings' + $CurrentGraphState = New-GraphGetRequest -uri $Uri -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ProfilePhotos state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $UsersCanChangePhotos = if ([string]::IsNullOrWhiteSpace($CurrentGraphState.allowedRoles) ) { $true } else { $false } + $GraphStateCorrect = $UsersCanChangePhotos -eq $DesiredState + + if ($UsersCanChangePhotos -eq $false -and $DesiredState -eq $false) { + # Check if the correct roles are present + $GraphStateCorrect = $CurrentGraphState.allowedRoles -contains '62e90394-69f5-4237-9190-012177145e10' -and $CurrentGraphState.allowedRoles -contains 'fe930be7-5e62-47db-91af-98c3a49a38b1' + } + + # Get current OWA mailbox policy state + $CurrentOWAState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OwaMailboxPolicy' -cmdParams @{Identity = 'OwaMailboxPolicy-Default' } -Select 'Identity,SetPhotoEnabled' + $OWAStateCorrect = $CurrentOWAState.SetPhotoEnabled -eq $DesiredState + + # Check if both states are correct + $CurrentStatesCorrect = $GraphStateCorrect -eq $true -and $OWAStateCorrect -eq $true + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CurrentStatesCorrect -eq $false) { + Write-Host 'Settings are not correct' + try { + if ($StateValue -eq 'enabled') { + Write-Host 'Enabling' + # Enable photo updates + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OwaMailboxPolicy' -cmdParams @{Identity = $CurrentOWAState.Identity; SetPhotoEnabled = $true } -useSystemMailbox $true + $null = New-GraphPostRequest -uri $Uri -tenant $Tenant -type DELETE -AsApp $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set Profile photo settings to $StateValue" -sev Info + + } else { + Write-Host 'Disabling' + # Disable photo updates + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OwaMailboxPolicy' -cmdParams @{Identity = $CurrentOWAState.Identity; SetPhotoEnabled = $false } -useSystemMailbox $true + + $body = @{ + source = 'cloud' + allowedRoles = @( + 'fe930be7-5e62-47db-91af-98c3a49a38b1', # Global admin + '62e90394-69f5-4237-9190-012177145e10' # User admin + ) + } + $body = ConvertTo-Json -InputObject $body -Depth 5 -Compress + $null = New-GraphPostRequest -uri $Uri -tenant $Tenant -body $body -type PATCH -AsApp $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set Profile photo settings to $StateValue" -sev Info + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set profile photo settings to $StateValue. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-Host 'Settings are correct' + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Profile photo settings are already set to the desired state: $StateValue" -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentStatesCorrect -eq $false) { + Write-StandardsAlert -message "Profile photo settings do not match desired state: $StateValue" -object $CurrentOWAState -tenant $Tenant -standardName 'ProfilePhotos' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Profile photo settings do not match desired state: $StateValue" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Profile photo settings match desired state: $StateValue" -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'ProfilePhotos' -FieldValue $CurrentStatesCorrect -StoreAs bool -Tenant $Tenant + if ($CurrentStatesCorrect) { + $FieldValue = $true + } else { + $FieldValue = [PSCustomObject]@{ + OwaStateCorrect = $OWAStateCorrect + GraphStateCorrect = $GraphStateCorrect + } + } + $CurrentValue = @{ + ProfilePhotosEnabled = $UsersCanChangePhotos + } + $ExpectedValue = @{ + ProfilePhotosEnabled = $DesiredState + } + Set-CIPPStandardsCompareField -FieldName 'standards.ProfilePhotos' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 new file mode 100644 index 000000000000..8e22526e6b29 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 @@ -0,0 +1,111 @@ +function Invoke-CIPPStandardQuarantineRequestAlert { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) QuarantineRequestAlert + .SYNOPSIS + (Label) Quarantine Release Request Alert + .DESCRIPTION + (Helptext) Sets a e-mail address to alert when a User requests to release a quarantined message. + (DocsDescription) Sets a e-mail address to alert when a User requests to release a quarantined message. This is useful for monitoring and ensuring that the correct messages are released. + .NOTES + CAT + Defender Standards + TAG + EXECUTIVETEXT + Notifies IT administrators when employees request to release emails that were quarantined for security reasons, enabling oversight of potentially dangerous messages. This helps ensure that legitimate emails are released while maintaining security controls over suspicious content. + ADDEDCOMPONENT + {"type":"textField","name":"standards.QuarantineRequestAlert.NotifyUser","label":"E-mail to receive the alert"} + IMPACT + Low Impact + ADDEDDATE + 2024-07-15 + POWERSHELLEQUIVALENT + New-ProtectionAlert and Set-ProtectionAlert + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param ($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'QuarantineRequestAlert' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + $PolicyName = 'CIPP User requested to release a quarantined message' + + try { + $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-ProtectionAlert' -Compliance | + Where-Object { $_.Name -eq $PolicyName } | + Select-Object -Property * + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the QuarantineRequestAlert state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.NotifyUser -contains $Settings.NotifyUser) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Quarantine Request Alert is configured correctly' -sev Info + } else { + $cmdParams = @{ + 'NotifyUser' = $Settings.NotifyUser + 'Category' = 'ThreatManagement' + 'Operation' = 'QuarantineRequestReleaseMessage' + 'Severity' = 'Informational' + 'AggregationType' = 'None' + } + + if ($CurrentState.Name -eq $PolicyName) { + try { + $cmdParams['Identity'] = $PolicyName + New-ExoRequest -TenantId $Tenant -cmdlet 'Set-ProtectionAlert' -Compliance -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully configured Quarantine Request Alert' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to configure Quarantine Request Alert. Error: $ErrorMessage" -sev Error + } + } else { + try { + $cmdParams['name'] = $PolicyName + $cmdParams['ThreatType'] = 'Activity' + + New-ExoRequest -TenantId $Tenant -cmdlet 'New-ProtectionAlert' -Compliance -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully created Quarantine Request Alert' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to create Quarantine Request Alert. Error: $ErrorMessage" -sev Error + } + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Quarantine Request Alert is enabled' -sev Info + } else { + $Message = 'Quarantine Request Alert is not enabled.' + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'QuarantineRequestAlerts' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'QuarantineRequestAlert' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + NotifyUser = @($CurrentState.NotifyUser) + } + $ExpectedValue = @{ + NotifyUser = @($Settings.NotifyUser) + } + Set-CIPPStandardsCompareField -FieldName 'standards.QuarantineRequestAlert' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 new file mode 100644 index 000000000000..a89ce3829c0a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 @@ -0,0 +1,218 @@ +function Invoke-CIPPStandardQuarantineTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) QuarantineTemplate + .SYNOPSIS + (Label) Custom Quarantine Policy + .DESCRIPTION + (Helptext) This standard creates a Custom Quarantine Policies that can be used in Anti-Spam and all MDO365 policies. Quarantine Policies can be used to specify recipients permissions, enable end-user spam notifications, and specify the release action preference + (DocsDescription) This standard creates a Custom Quarantine Policies that can be used in Anti-Spam and all MDO365 policies. Quarantine Policies can be used to specify recipients permissions, enable end-user spam notifications, and specify the release action preference + .NOTES + CAT + Defender Standards + DISABLEDFEATURES + {"report":false,"warn":false,"remediate":false} + TAG + EXECUTIVETEXT + Creates standardized quarantine policies that define how employees can interact with quarantined emails, including permissions to release, delete, or preview suspicious messages. This ensures consistent security handling across the organization while providing appropriate user access to manage quarantined content. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":true,"name":"displayName","label":"Quarantine Display Name","required":true} + {"type":"switch","label":"Enable end-user spam notifications","name":"ESNEnabled","defaultValue":true,"required":false} + {"type":"select","multiple":false,"label":"Select release action preference","name":"ReleaseAction","options":[{"label":"Allow recipients to request a message to be released from quarantine","value":"PermissionToRequestRelease"},{"label":"Allow recipients to release a message from quarantine","value":"PermissionToRelease"}]} + {"type":"switch","label":"Include Messages From Blocked Sender Address","name":"IncludeMessagesFromBlockedSenderAddress","defaultValue":false,"required":false} + {"type":"switch","label":"Allow recipients to delete message","name":"PermissionToDelete","defaultValue":false,"required":false} + {"type":"switch","label":"Allow recipients to preview message","name":"PermissionToPreview","defaultValue":false,"required":false} + {"type":"switch","label":"Allow recipients to block Sender Address","name":"PermissionToBlockSender","defaultValue":false,"required":false} + {"type":"switch","label":"Allow recipients to whitelist Sender Address","name":"PermissionToAllowSender","defaultValue":false,"required":false} + MULTIPLE + True + IMPACT + Low Impact + ADDEDDATE + 2025-05-16 + POWERSHELLEQUIVALENT + Set-QuarantinePolicy or New-QuarantinePolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'QuarantineTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $APIName = 'Standards' + + try { + # Get the current custom quarantine policies + $CurrentPolicies = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-QuarantinePolicy' | Where-Object -Property Guid -NE '00000000-0000-0000-0000-000000000000' -ErrorAction Stop + + # Compare the settings from standard with the current policies + $CompareList = foreach ($Policy in $Settings) { + try { + # Create hashtable with desired Quarantine Setting + $EndUserQuarantinePermissions = @{ + # ViewHeader and Download are set to false because the value 0 or 1 does nothing per Microsoft documentation + PermissionToViewHeader = $false + PermissionToDownload = $false + PermissionToBlockSender = $Policy.PermissionToBlockSender + PermissionToDelete = $Policy.PermissionToDelete + PermissionToPreview = $Policy.PermissionToPreview + PermissionToRelease = $Policy.ReleaseAction -eq 'PermissionToRelease' ? $true : $false + PermissionToRequestRelease = $Policy.ReleaseAction -eq 'PermissionToRequestRelease' ? $true : $false + PermissionToAllowSender = $Policy.PermissionToAllowSender + } + + # If the Quarantine Policy already exists + if ($Policy.displayName.value -in $CurrentPolicies.Name) { + #Get the current policy and convert EndUserQuarantinePermissions from string to hashtable for compare + $ExistingPolicy = $CurrentPolicies | Where-Object -Property Name -EQ $Policy.displayName.value + $ExistingPolicyEndUserQuarantinePermissions = Convert-QuarantinePermissionsValue -InputObject $ExistingPolicy.EndUserQuarantinePermissions -ErrorAction Stop + + #Compare the current policy + $StateIsCorrect = ($ExistingPolicy.Name -eq $Policy.displayName.value) -and + ($ExistingPolicy.ESNEnabled -eq $Policy.ESNEnabled) -and + ($ExistingPolicy.IncludeMessagesFromBlockedSenderAddress -eq $Policy.IncludeMessagesFromBlockedSenderAddress) -and + (!(Compare-Object @($ExistingPolicyEndUserQuarantinePermissions.values) @($EndUserQuarantinePermissions.values))) + + # If the current policy is correct + if ($StateIsCorrect -eq $true) { + [PSCustomObject]@{ + missing = $false + StateIsCorrect = $StateIsCorrect + Action = 'None' + displayName = $Policy.displayName.value + EndUserQuarantinePermissions = $EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress + remediate = $Policy.remediate + alert = $Policy.alert + report = $Policy.report + } + } + #If the current policy doesn't match the desired settings + else { + [PSCustomObject]@{ + missing = $false + StateIsCorrect = $StateIsCorrect + Action = 'Update' + displayName = $Policy.displayName.value + EndUserQuarantinePermissions = $EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress + remediate = $Policy.remediate + alert = $Policy.alert + report = $Policy.report + } + } + } + #If no existing Quarantine Policy with the same name was found + else { + [PSCustomObject]@{ + missing = $true + StateIsCorrect = $false + Action = 'Create' + displayName = $Policy.displayName.value + EndUserQuarantinePermissions = $EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress + remediate = $Policy.remediate + alert = $Policy.alert + report = $Policy.report + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $Message = "Failed to compare Quarantine policy $($Policy.displayName.value), Error: $ErrorMessage" + Write-LogMessage -API $APIName -tenant $tenant -message $Message -sev 'Error' + return $Message + } + } + + + if ($true -in $Settings.remediate) { + # Remediate each policy which is incorrect or missing + foreach ($Policy in $CompareList | Where-Object { $_.remediate -eq $true -and $_.StateIsCorrect -eq $false }) { + try { + # Parameters for splatting to Set-CIPPQuarantinePolicy + $Params = @{ + Action = $Policy.Action + Identity = $Policy.displayName + EndUserQuarantinePermissions = $Policy.EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress + tenantFilter = $Tenant + APIName = $APIName + } + + try { + Set-CIPPQuarantinePolicy @Params + Write-LogMessage -API $APIName -tenant $Tenant -message "$($Policy.Action)d Custom Quarantine Policy '$($Policy.displayName)'" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API $APIName -tenant $tenant -message "Failed to $($Policy.Action) Quarantine policy $($Policy.displayName), Error: $ErrorMessage" -sev 'Error' + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API $APIName -tenant $tenant -message "Failed to create or update Quarantine policy $($Policy.displayName), Error: $ErrorMessage" -sev 'Error' + } + } + } + + if ($true -in $Settings.alert) { + foreach ($Policy in $CompareList | Where-Object -Property alert -EQ $true) { + if ($Policy.StateIsCorrect) { + Write-LogMessage -API $APIName -tenant $Tenant -message "Quarantine policy $($Policy.displayName) has the correct configuration." -sev Info + } else { + if ($Policy.missing) { + $CurrentInfo = $Policy | Select-Object -Property displayName, missing + Write-StandardsAlert -message "Quarantine policy $($Policy.displayName) is missing." -object $CurrentInfo -tenant $Tenant -standardName 'QuarantineTemplate' -standardId $Settings.templateId + Write-LogMessage -API $APIName -tenant $Tenant -message "Quarantine policy $($Policy.displayName) is missing." -sev info + } else { + $CurrentInfo = $CurrentPolicies | Where-Object -Property Name -EQ $Policy.displayName | Select-Object -Property Name, ESNEnabled, IncludeMessagesFromBlockedSenderAddress, EndUserQuarantinePermissions + Write-StandardsAlert -message "Quarantine policy $($Policy.displayName) does not match the expected configuration." -object $CurrentInfo -tenant $Tenant -standardName 'QuarantineTemplate' -standardId $Settings.templateId + Write-LogMessage -API $APIName -tenant $Tenant -message "Quarantine policy $($Policy.displayName) does not match the expected configuration. We've generated an alert" -sev info + } + } + } + } + + if ($true -in $Settings.report) { + foreach ($Policy in $CompareList | Where-Object -Property report -EQ $true) { + # Convert displayName to hex to avoid invalid characters "/, \, #, ?" which are not allowed in RowKey, but "\, #, ?" can be used in quarantine displayName + $HexName = -join ($Policy.displayName.ToCharArray() | ForEach-Object { '{0:X2}' -f [int][char]$_ }) + + $CurrentValue = @{ + displayName = $Policy.displayName + EndUserQuarantinePermissions = $Policy.EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress + StateIsCorrect = $Policy.StateIsCorrect + missing = $Policy.missing + } + + $ExpectedValue = @{ + displayName = $Policy.displayName + EndUserQuarantinePermissions = $Policy.EndUserQuarantinePermissions + ESNEnabled = $Policy.ESNEnabled + IncludeMessagesFromBlockedSenderAddress = $Policy.IncludeMessagesFromBlockedSenderAddress + StateIsCorrect = $true + missing = $false + } + + Set-CIPPStandardsCompareField -FieldName "standards.QuarantineTemplate.$HexName" -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API $APIName -tenant $tenant -message "Failed to create or update Quarantine policy/policies, Error: $ErrorMessage" -sev 'Error' + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 new file mode 100644 index 000000000000..d140c767a1da --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 @@ -0,0 +1,102 @@ +function Invoke-CIPPStandardRestrictThirdPartyStorageServices { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) RestrictThirdPartyStorageServices + .SYNOPSIS + (Label) Restrict third-party storage services in Microsoft 365 on the web + .DESCRIPTION + (Helptext) Restricts third-party storage services in Microsoft 365 on the web by managing the Microsoft 365 on the web service principal. This disables integrations with services like Dropbox, Google Drive, Box, and other third-party storage providers. + (DocsDescription) Third-party storage can be enabled for users in Microsoft 365, allowing them to store and share documents using services such as Dropbox, alongside OneDrive and team sites. This standard ensures Microsoft 365 on the web third-party storage services are restricted by creating and disabling the Microsoft 365 on the web service principal (appId: c1f33bc0-bdb4-4248-ba9b-096807ddb43e). By using external storage services an organization may increase the risk of data breaches and unauthorized access to confidential information. Additionally, third-party services may not adhere to the same security standards as the organization, making it difficult to maintain data privacy and security. Impact is highly dependent upon current practices - if users do not use other storage providers, then minimal impact is likely. However, if users regularly utilize providers outside of the tenant this will affect their ability to continue to do so. + .NOTES + CAT + Global Standards + TAG + "CIS M365 5.0 (1.3.7)" + EXECUTIVETEXT + Prevents employees from using external cloud storage services like Dropbox, Google Drive, and Box within Microsoft 365, reducing data security risks and ensuring all company data remains within controlled corporate systems. This helps maintain data governance and prevents potential data leaks to unauthorized platforms. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2025-06-06 + POWERSHELLEQUIVALENT + New-MgServicePrincipal and Update-MgServicePrincipal + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param ($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'ThirdPartyStorageServicesRestricted' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $AppId = 'c1f33bc0-bdb4-4248-ba9b-096807ddb43e' + $Uri = "https://graph.microsoft.com/beta/servicePrincipals?`$filter=appId eq '$AppId'" + + try { + $CurrentState = New-GraphGetRequest -Uri $Uri -tenantid $Tenant | Select-Object displayName, accountEnabled, appId + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get current state for Microsoft 365 on the web service principal. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate third-party storage services restriction' + + # Check if service principal is already disabled + if ($CurrentState.accountEnabled -eq $false) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Third-party storage services are already restricted (service principal is disabled).' -sev Info + } else { + # Disable the service principal to restrict third-party storage services + try { + $DisableBody = @{ + accountEnabled = $false + } | ConvertTo-Json -Depth 10 -Compress + + # Normal /servicePrincipal/AppId does not find the service principal, so gotta use the Upsert method. Also handles if the service principal does not exist nicely. + # https://learn.microsoft.com/en-us/graph/api/serviceprincipal-upsert?view=graph-rest-beta&tabs=http + $UpdateUri = "https://graph.microsoft.com/beta/servicePrincipals(appId='$AppId')" + $null = New-GraphPostRequest -Uri $UpdateUri -Body $DisableBody -TenantID $Tenant -Type PATCH -AddedHeaders @{'Prefer' = 'create-if-missing' } + + # Refresh the current state after disabling + $CurrentState = New-GraphGetRequest -Uri $Uri -tenantid $Tenant | Select-Object displayName, accountEnabled, appId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Successfully restricted third-party storage services in Microsoft 365 on the web.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to restrict third-party storage services. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentState.accountEnabled -eq $false) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Third-party storage services are restricted (service principal is disabled).' -sev Info + } else { + Write-StandardsAlert -message 'Third-party storage services are not restricted in Microsoft 365 on the web' -object $CurrentState -tenant $Tenant -standardName 'RestrictThirdPartyStorageServices' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Third-party storage services are not restricted.' -sev Info + } + } + + if ($Settings.report -eq $true) { + + $CurrentValue = @{ + thirdPartyStorageRestricted = $CurrentState.accountEnabled -eq $false + } + $ExpectedValue = @{ + thirdPartyStorageRestricted = $false + } + + Set-CIPPStandardsCompareField -FieldName 'standards.RestrictThirdPartyStorageServices' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'ThirdPartyStorageServicesRestricted' -FieldValue ($CurrentState.accountEnabled -eq $false) -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 new file mode 100644 index 000000000000..cb992130b094 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 @@ -0,0 +1,146 @@ +function Invoke-CIPPStandardRetentionPolicyTag { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) RetentionPolicyTag + .SYNOPSIS + (Label) Retention Policy, permanently delete items in Deleted Items after X days + .DESCRIPTION + (Helptext) Creates a CIPP - Deleted Items retention policy tag that permanently deletes items in the Deleted Items folder after X days. + (DocsDescription) Creates a CIPP - Deleted Items retention policy tag that permanently deletes items in the Deleted Items folder after X days. + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.4.1)" + EXECUTIVETEXT + Automatically and permanently removes deleted emails after a specified number of days, helping manage storage costs and ensuring compliance with data retention policies. This prevents accumulation of unnecessary deleted items while maintaining a reasonable recovery window for accidentally deleted emails. + ADDEDCOMPONENT + {"type":"number","name":"standards.RetentionPolicyTag.AgeLimitForRetention","label":"Retention Days","required":true} + IMPACT + High Impact + ADDEDDATE + 2025-02-02 + POWERSHELLEQUIVALENT + Set-RetentionPolicyTag + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'RetentionPolicyTag' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $PolicyName = 'CIPP Deleted Items' + + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RetentionPolicyTag' | + Where-Object -Property Identity -EQ $PolicyName + + $PolicyState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RetentionPolicy' | + Where-Object -Property Identity -EQ 'Default MRM Policy' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the RetentionPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and + ($CurrentState.RetentionEnabled -eq $true) -and + ($CurrentState.RetentionAction -eq 'PermanentlyDelete') -and + ($CurrentState.AgeLimitForRetention -eq ([timespan]::FromDays($Settings.AgeLimitForRetention))) -and + ($CurrentState.Type -eq 'DeletedItems') -and + ($PolicyState.RetentionPolicyTagLinks -contains $PolicyName) + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Retention policy tag already correctly configured' -sev Info + } else { + $cmdParams = @{ + RetentionEnabled = $true + AgeLimitForRetention = $Settings.AgeLimitForRetention + RetentionAction = 'PermanentlyDelete' + } + + if ($CurrentState.Name -eq $PolicyName) { + try { + $cmdParams.Add('Identity', $PolicyName) + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-RetentionPolicyTag' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Retention policy tag $PolicyName." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Retention policy tag $PolicyName." -sev Error -LogData $ErrorMessage + } + } else { + try { + $cmdParams.Add('Name', $PolicyName) + $cmdParams.Add('Type', 'DeletedItems') + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-RetentionPolicyTag' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Retention policy tag $PolicyName." -sev Info + } catch { + + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Retention policy tag $PolicyName." -sev Error -LogData $ErrorMessage + } + } + + if ($PolicyState.RetentionPolicyTagLinks -notcontains $PolicyName) { + try { + $cmdParams = @{ + Identity = 'Default MRM Policy' + RetentionPolicyTagLinks = @($PolicyState.RetentionPolicyTagLinks + $PolicyName) + } + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-RetentionPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Added $PolicyName Retention tag to $($PolicyState.Identity)." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to add $PolicyName Retention tag to $($PolicyState.Identity)." -sev Error -LogData $ErrorMessage + } + } + + } + + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Retention Policy is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Retention Policy is not enabled' -object $CurrentState -tenant $Tenant -standardName 'RetentionPolicyTag' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Retention Policy is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'RetentionPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + + $CurrentValue = @{ + retentionEnabled = $CurrentState.RetentionEnabled + retentionAction = $CurrentState.RetentionAction + ageLimitForRetention = $CurrentState.AgeLimitForRetention.TotalDays + type = $CurrentState.Type + policyTagLinked = $PolicyState.RetentionPolicyTagLinks -contains $PolicyName + + } + $ExpectedValue = @{ + retentionEnabled = $true + retentionAction = 'PermanentlyDelete' + ageLimitForRetention = $Settings.AgeLimitForRetention + type = 'DeletedItems' + policyTagLinked = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.RetentionPolicyTag' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 new file mode 100644 index 000000000000..931795adb66b --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 @@ -0,0 +1,89 @@ +function Invoke-CIPPStandardRotateDKIM { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) RotateDKIM + .SYNOPSIS + (Label) Rotate DKIM keys that are 1024 bit to 2048 bit + .DESCRIPTION + (Helptext) Rotate DKIM keys that are 1024 bit to 2048 bit + (DocsDescription) Rotate DKIM keys that are 1024 bit to 2048 bit + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (2.1.9)" + EXECUTIVETEXT + Upgrades email security by replacing older 1024-bit encryption keys with stronger 2048-bit keys for email authentication. This improves the organization's email security posture and helps prevent email spoofing and tampering, maintaining trust with email recipients. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2023-03-14 + POWERSHELLEQUIVALENT + Rotate-DkimSigningConfig + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'RotateDKIM' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $DKIM = (New-ExoRequest -tenantid $tenant -cmdlet 'Get-DkimSigningConfig') | Where-Object { $_.Selector1KeySize -eq 1024 -and $_.Enabled -eq $true } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DKIM state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($DKIM) { + $DKIM | ForEach-Object { + try { + (New-ExoRequest -tenantid $tenant -cmdlet 'Rotate-DkimSigningConfig' -cmdParams @{ KeySize = 2048; Identity = $_.Identity } -useSystemMailbox $true) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Rotated DKIM for $($_.Identity)" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to rotate DKIM Error: $ErrorMessage" -sev Error + } + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'DKIM is already rotated for all domains' -sev Info + } + + } + + if ($Settings.alert -eq $true) { + if ($DKIM) { + Write-StandardsAlert -message "DKIM is not rotated for $($DKIM.Identity -join ';')" -object $DKIM -tenant $tenant -standardName 'RotateDKIM' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "DKIM is not rotated for $($DKIM.Identity -join ';')" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'DKIM is rotated for all domains' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'DKIM' -FieldValue $DKIM -StoreAs json -Tenant $tenant + + $CurrentValue = @{ + domainsWith1024BitDKIM = if ($DKIM) { $DKIM.Identity } else { @() } + } + $ExpectedValue = @{ + domainsWith1024BitDKIM = @() + } + Set-CIPPStandardsCompareField -FieldName 'standards.RotateDKIM' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 new file mode 100644 index 000000000000..6a4d323ed5a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 @@ -0,0 +1,92 @@ +function Invoke-CIPPStandardSPAzureB2B { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPAzureB2B + .SYNOPSIS + (Label) Enable SharePoint and OneDrive integration with Azure AD B2B + .DESCRIPTION + (Helptext) Ensure SharePoint and OneDrive integration with Azure AD B2B is enabled + (DocsDescription) Ensure SharePoint and OneDrive integration with Azure AD B2B is enabled + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.2.2)" + EXECUTIVETEXT + Enables secure collaboration with external partners through SharePoint and OneDrive by integrating with Azure B2B guest access. This allows controlled sharing with external organizations while maintaining security oversight and proper access management. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-07-09 + POWERSHELLEQUIVALENT + Set-SPOTenant -EnableAzureADB2BIntegration \$true + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPAzureB2B' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, EnableAzureADB2BIntegration + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPAzureB2B state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.EnableAzureADB2BIntegration -eq $true) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint Azure B2B is already enabled' -Sev Info + } else { + $Properties = @{ + EnableAzureADB2BIntegration = $true + } + + try { + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully set the SharePoint Azure B2B to enabled' -Sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set the SharePoint Azure B2B to enabled. Error: $ErrorMessage" -Sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint Azure B2B is enabled' -Sev Info + } else { + $Message = 'SharePoint Azure B2B is not enabled.' + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'SPAzureB2B' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -Sev Alert + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'AzureB2B' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + + $CurrentValue = @{ + EnableAzureADB2BIntegration = $CurrentState.EnableAzureADB2BIntegration + } + $ExpectedValue = @{ + EnableAzureADB2BIntegration = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPAzureB2B' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 new file mode 100644 index 000000000000..a2ac80b497d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 @@ -0,0 +1,94 @@ +function Invoke-CIPPStandardSPDirectSharing { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPDirectSharing + .SYNOPSIS + (Label) Default sharing to Direct users + .DESCRIPTION + (Helptext) This standard has been deprecated in favor of the Default Sharing Link standard. + (DocsDescription) This standard has been deprecated in favor of the Default Sharing Link standard. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Configures SharePoint and OneDrive to share files directly with specific people rather than creating anonymous links, improving security by ensuring only intended recipients can access shared documents. This reduces the risk of accidental data exposure through link sharing. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2024-07-09 + POWERSHELLEQUIVALENT + Set-SPOTenant -DefaultSharingLinkType Direct + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDirectSharing' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'The default sharing to Direct users standard has been deprecated in favor of the "Set Default Sharing Link Settings" standard. Please update your standards to use new standard. However this will continue to function.' -Sev Alert + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, DefaultSharingLinkType + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPDirectSharing state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.DefaultSharingLinkType -eq 'Direct' -or $CurrentState.DefaultSharingLinkType -eq 1) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint Default Direct Sharing is already enabled' -Sev Info + } else { + $Properties = @{ + DefaultSharingLinkType = 1 + } + + try { + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully set the SharePoint Default Direct Sharing to Direct' -Sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set the SharePoint Default Direct Sharing to Direct. Error: $ErrorMessage" -Sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint Direct Sharing is enabled' -Sev Info + } else { + $Message = 'SharePoint Default Direct Sharing is not enabled.' + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'SPDirectSharing' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -Sev Alert + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'DirectSharing' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + + $CurrentValue = @{ + DefaultSharingLinkType = $CurrentState.DefaultSharingLinkType + } + $ExpectedValue = @{ + DefaultSharingLinkType = 1 + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPDirectSharing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 new file mode 100644 index 000000000000..5612ce7c034e --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 @@ -0,0 +1,97 @@ +function Invoke-CIPPStandardSPDisableLegacyWorkflows { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPDisableLegacyWorkflows + .SYNOPSIS + (Label) Disable Legacy Workflows + .DESCRIPTION + (Helptext) Disables the creation of new SharePoint 2010 and 2013 classic workflows and removes the 'Return to classic SharePoint' link on modern SharePoint list and library pages. + (DocsDescription) Disables the creation of new SharePoint 2010 and 2013 classic workflows and removes the 'Return to classic SharePoint' link on modern SharePoint list and library pages. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Disables outdated SharePoint workflow features and classic interface options, encouraging use of modern, more secure and efficient collaboration tools. This helps maintain security standards while guiding users toward current, supported functionality. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-07-15 + POWERSHELLEQUIVALENT + Set-SPOTenant -DisableWorkflow2010 \$true -DisableWorkflow2013 \$true -DisableBackToClassic \$true + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDisableLegacyWorkflows' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property * + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPDisableLegacyWorkflows state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.StopNew2010Workflows -eq $true) -and + ($CurrentState.StopNew2013Workflows -eq $true) -and + ($CurrentState.DisableBackToClassic -eq $true) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Legacy Workflows are already disabled.' -Sev Info + } else { + $Properties = @{ + StopNew2010Workflows = $true + StopNew2013Workflows = $true + DisableBackToClassic = $true + } + + try { + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully disabled Legacy Workflows' -Sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to disable Legacy Workflows. Error: $ErrorMessage" -Sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint Legacy Workflows are disabled' -Sev Info + } else { + $Message = 'SharePoint Legacy Workflows is not disabled.' + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'SPDisableLegacyWorkflows' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -Sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SPDisableLegacyWorkflows' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + StopNew2010Workflows = $CurrentState.StopNew2010Workflows + StopNew2013Workflows = $CurrentState.StopNew2013Workflows + DisableBackToClassic = $CurrentState.DisableBackToClassic + } + $ExpectedValue = @{ + StopNew2010Workflows = $true + StopNew2013Workflows = $true + DisableBackToClassic = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPDisableLegacyWorkflows' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 new file mode 100644 index 000000000000..650647f6a0e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 @@ -0,0 +1,96 @@ +function Invoke-CIPPStandardSPDisallowInfectedFiles { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPDisallowInfectedFiles + .SYNOPSIS + (Label) Disallow downloading infected files from SharePoint + .DESCRIPTION + (Helptext) Ensure Office 365 SharePoint infected files are disallowed for download + (DocsDescription) Ensure Office 365 SharePoint infected files are disallowed for download + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.3.1)" + "CISA (MS.SPO.3.1v1)" + "NIST CSF 2.0 (DE.CM-09)" + EXECUTIVETEXT + Prevents employees from downloading files that have been identified as containing malware or viruses from SharePoint and OneDrive. This security measure protects against malware distribution through file sharing while maintaining access to clean, safe documents. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2024-07-09 + POWERSHELLEQUIVALENT + Set-SPOTenant -DisallowInfectedFileDownload \$true + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDisallowInfectedFiles' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, DisallowInfectedFileDownload + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPDisallowInfectedFiles state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.DisallowInfectedFileDownload -eq $true) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -Message 'Downloading SharePoint infected files are already disallowed.' -Sev Info + } else { + $Properties = @{ + DisallowInfectedFileDownload = $true + } + + try { + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + Write-LogMessage -API 'Standards' -tenant $tenant -Message 'Successfully disallowed downloading SharePoint infected files.' -Sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -Message "Failed to disallow downloading SharePoint infected files. Error: $ErrorMessage" -Sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -Message 'Downloading SharePoint infected files are disallowed.' -Sev Info + } else { + $Message = 'Downloading SharePoint infected files is not set to the desired value.' + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'SPDisallowInfectedFiles' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -Message $Message -Sev Alert + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SPDisallowInfectedFiles' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + DisallowInfectedFileDownload = $CurrentState.DisallowInfectedFileDownload + } + $ExpectedValue = @{ + DisallowInfectedFileDownload = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPDisallowInfectedFiles' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 new file mode 100644 index 000000000000..965b5bf90d5c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 @@ -0,0 +1,104 @@ +function Invoke-CIPPStandardSPEmailAttestation { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPEmailAttestation + .SYNOPSIS + (Label) Require re-authentication with verification code + .DESCRIPTION + (Helptext) Ensure re-authentication with verification code is restricted + (DocsDescription) Ensure re-authentication with verification code is restricted + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.2.10)" + "CISA (MS.SPO.1.6v1)" + EXECUTIVETEXT + Requires external users to periodically re-verify their identity through email verification codes when accessing SharePoint resources, adding an extra security layer for external collaboration. This helps ensure continued legitimacy of external access over time. + ADDEDCOMPONENT + {"type":"number","name":"standards.SPEmailAttestation.Days","label":"Require re-authentication every X Days (Default 15)"} + IMPACT + Medium Impact + ADDEDDATE + 2024-07-09 + POWERSHELLEQUIVALENT + Set-SPOTenant -EmailAttestationRequired \$true -EmailAttestationReAuthDays 15 + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPEmailAttestation' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, EmailAttestationReAuthDays, EmailAttestationRequired + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPEmailAttestation state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.EmailAttestationReAuthDays -eq [int]$Settings.Days) -and + ($CurrentState.EmailAttestationRequired -eq $true) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint re-authentication with verification code is already restricted.' -Sev Info + } else { + $Properties = @{ + EmailAttestationReAuthDays = [int]$Settings.Days + EmailAttestationRequired = $true + } + + try { + $Response = $CurrentState | Set-CIPPSPOTenant -Properties $Properties + if ($Response.ErrorInfo.ErrorMessage) { + $ErrorMessage = Get-NormalizedError -Message $Response.ErrorInfo.ErrorMessage + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set re-authentication with verification code restriction. Error: $ErrorMessage" -Sev Error + } else { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully set re-authentication with verification code restriction.' -Sev Info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set re-authentication with verification code restriction. Error: $ErrorMessage" -Sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Re-authentication with verification code is restricted.' -Sev Info + } else { + $Message = 'Re-authentication with verification code is not set to the desired value.' + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'SPEmailAttestation' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -Sev Alert + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SPEmailAttestation' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + EmailAttestationReAuthDays = $CurrentState.EmailAttestationReAuthDays + EmailAttestationRequired = $CurrentState.EmailAttestationRequired + } + $ExpectedValue = @{ + EmailAttestationReAuthDays = [int]$Settings.Days + EmailAttestationRequired = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPEmailAttestation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 new file mode 100644 index 000000000000..f5595d9263f1 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 @@ -0,0 +1,103 @@ +function Invoke-CIPPStandardSPExternalUserExpiration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPExternalUserExpiration + .SYNOPSIS + (Label) Set guest access to expire automatically + .DESCRIPTION + (Helptext) Ensure guest access to a site or OneDrive will expire automatically + (DocsDescription) Ensure guest access to a site or OneDrive will expire automatically + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.2.9)" + "CISA (MS.SPO.1.5v1)" + EXECUTIVETEXT + Automatically expires external user access to SharePoint sites and OneDrive after a specified period, reducing security risks from forgotten or unnecessary guest accounts. This ensures external access is regularly reviewed and maintained only when actively needed. + ADDEDCOMPONENT + {"type":"number","name":"standards.SPExternalUserExpiration.Days","label":"Days until expiration (Default 60)"} + IMPACT + Medium Impact + ADDEDDATE + 2024-07-09 + POWERSHELLEQUIVALENT + Set-SPOTenant -ExternalUserExpireInDays 30 -ExternalUserExpirationRequired \$True + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPExternalUserExpiration' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object -Property _ObjectIdentity_, TenantFilter, ExternalUserExpireInDays, ExternalUserExpirationRequired + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPExternalUserExpiration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.ExternalUserExpireInDays -eq $Settings.Days) -and + ($CurrentState.ExternalUserExpirationRequired -eq $true) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint External User Expiration is already enabled.' -Sev Info + } else { + $Properties = @{ + ExternalUserExpireInDays = $Settings.Days + ExternalUserExpirationRequired = $true + } + + try { + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully set External User Expiration' -Sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to set External User Expiration. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'External User Expiration is enabled' -Sev Info + } else { + $Message = 'External User Expiration is not set to the desired value.' + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'SPExternalUserExpiration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -Sev Alert + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'ExternalUserExpiration' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + if ($StateIsCorrect) { + $FieldValue = $true + } else { + $FieldValue = $CurrentState + } + $CurrentValue = @{ + ExternalUserExpireInDays = $CurrentState.ExternalUserExpireInDays + ExternalUserExpirationRequired = $CurrentState.ExternalUserExpirationRequired + } + $ExpectedValue = @{ + ExternalUserExpireInDays = $Settings.Days + ExternalUserExpirationRequired = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPExternalUserExpiration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'standards.SPExternalUserExpiration' -FieldValue $FieldValue -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 new file mode 100644 index 000000000000..1354beba7a7d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 @@ -0,0 +1,142 @@ +function Invoke-CIPPStandardSPFileRequests { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPFileRequests + .SYNOPSIS + (Label) Set SharePoint and OneDrive File Requests + .DESCRIPTION + (Helptext) Enables or disables File Requests for SharePoint and OneDrive, allowing users to create secure upload-only links. Optionally sets the maximum number of days for the link to remain active before expiring. + (DocsDescription) File Requests allow users to create secure upload-only share links where uploads are hidden from other people using the link. This creates a secure and private way for people to upload files to a folder. This feature is not enabled by default on new tenants and requires PowerShell configuration. This standard enables or disables this feature and optionally configures link expiration settings for both SharePoint and OneDrive. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Enables secure file upload functionality that allows external users to submit files directly to company folders without seeing other submissions or folder contents. This provides a professional and secure way to collect documents from clients, vendors, and partners while maintaining data privacy and security. + ADDEDCOMPONENT + {"type":"switch","name":"standards.SPFileRequests.state","label":"Enable File Requests"} + {"type":"number","name":"standards.SPFileRequests.expirationDays","label":"Link Expiration 1-730 Days (Optional)","required":false} + IMPACT + Medium Impact + ADDEDDATE + 2025-07-30 + POWERSHELLEQUIVALENT + Set-SPOTenant -CoreRequestFilesLinkEnabled \$true -OneDriveRequestFilesLinkEnabled \$true -CoreRequestFilesLinkExpirationInDays 30 -OneDriveRequestFilesLinkExpirationInDays 30 + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPFileRequests' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'The tenant is not licenced for this standard SPFileRequests' -sev Error + return $true + } + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, CoreRequestFilesLinkEnabled, OneDriveRequestFilesLinkEnabled, CoreRequestFilesLinkExpirationInDays, OneDriveRequestFilesLinkExpirationInDays + } catch { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Failed to get current state of SPO tenant details' -sev Error + return + } + + # Input validation + if (($null -eq $Settings.state) -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Invalid state parameter set for standard SPFileRequests' -sev Error + return + } + + $WantedState = $Settings.state + $ExpirationDays = $Settings.expirationDays + $HumanReadableState = if ($WantedState -eq $true) { 'enabled' } else { 'disabled' } + + # Check if current state matches desired state + $CoreStateIsCorrect = if ($CurrentState.CoreRequestFilesLinkEnabled -eq $WantedState) { $true } else { $false } + $OneDriveStateIsCorrect = if ($CurrentState.OneDriveRequestFilesLinkEnabled -eq $WantedState) { $true } else { $false } + $StateIsCorrect = $CoreStateIsCorrect -and $OneDriveStateIsCorrect + + # Check expiration settings if specified + $ExpirationIsCorrect = $true + if ($null -ne $ExpirationDays -and $WantedState -eq $true) { + $CoreExpirationIsCorrect = ($CurrentState.CoreRequestFilesLinkExpirationInDays -eq $ExpirationDays) + $OneDriveExpirationIsCorrect = ($CurrentState.OneDriveRequestFilesLinkExpirationInDays -eq $ExpirationDays) + $ExpirationIsCorrect = $CoreExpirationIsCorrect -and $OneDriveExpirationIsCorrect + } + + $AllSettingsCorrect = $StateIsCorrect -and $ExpirationIsCorrect + + if ($Settings.remediate -eq $true) { + + if ($AllSettingsCorrect -eq $false) { + try { + $Properties = @{ + CoreRequestFilesLinkEnabled = $WantedState + OneDriveRequestFilesLinkEnabled = $WantedState + } + + # Add expiration settings if specified and feature is being enabled + if ($null -ne $ExpirationDays -and $WantedState -eq $true) { + $Properties['CoreRequestFilesLinkExpirationInDays'] = $ExpirationDays + $Properties['OneDriveRequestFilesLinkExpirationInDays'] = $ExpirationDays + } + + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + + $ExpirationMessage = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { " with $ExpirationDays day expiration" } else { '' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set File Requests to $HumanReadableState$ExpirationMessage" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set File Requests to $HumanReadableState. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + $ExpirationMessage = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { " with $ExpirationDays day expiration" } else { '' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "File Requests are already set to the wanted state of $HumanReadableState$ExpirationMessage" -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($AllSettingsCorrect -eq $true) { + $ExpirationMessage = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { " with $ExpirationDays day expiration" } else { '' } + Write-LogMessage -API 'Standards' -tenant $tenant -message "File Requests are already set to the wanted state of $HumanReadableState$ExpirationMessage" -sev Info + } else { + $AlertMessage = "File Requests are not set to the wanted state of $HumanReadableState" + if ($null -ne $ExpirationDays -and $WantedState -eq $true) { + $AlertMessage += " with $ExpirationDays day expiration" + } + Write-StandardsAlert -message $AlertMessage -object $CurrentState -tenant $tenant -standardName 'SPFileRequests' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SPFileRequestsEnabled' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + Add-CIPPBPAField -FieldName 'SPCoreFileRequestsEnabled' -FieldValue $CurrentState.CoreRequestFilesLinkEnabled -StoreAs bool -Tenant $Tenant + Add-CIPPBPAField -FieldName 'SPOneDriveFileRequestsEnabled' -FieldValue $CurrentState.OneDriveRequestFilesLinkEnabled -StoreAs bool -Tenant $Tenant + + if ($null -ne $ExpirationDays) { + Add-CIPPBPAField -FieldName 'SPCoreFileRequestsExpirationDays' -FieldValue $CurrentState.CoreRequestFilesLinkExpirationInDays -StoreAs string -Tenant $Tenant + Add-CIPPBPAField -FieldName 'SPOneDriveFileRequestsExpirationDays' -FieldValue $CurrentState.OneDriveRequestFilesLinkExpirationInDays -StoreAs string -Tenant $Tenant + } + + $CurrentValue = @{ + CoreRequestFilesLinkEnabled = $CurrentState.CoreRequestFilesLinkEnabled + OneDriveRequestFilesLinkEnabled = $CurrentState.OneDriveRequestFilesLinkEnabled + CoreRequestFilesLinkExpirationInDays = $CurrentState.CoreRequestFilesLinkExpirationInDays + OneDriveRequestFilesLinkExpirationInDays = $CurrentState.OneDriveRequestFilesLinkExpirationInDays + } + $ExpectedValue = @{ + CoreRequestFilesLinkEnabled = $WantedState + OneDriveRequestFilesLinkEnabled = $WantedState + CoreRequestFilesLinkExpirationInDays = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { $ExpirationDays } else { $null } + OneDriveRequestFilesLinkExpirationInDays = if ($null -ne $ExpirationDays -and $WantedState -eq $true) { $ExpirationDays } else { $null } + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPFileRequests' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 new file mode 100644 index 000000000000..0c39478cd85b --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 @@ -0,0 +1,103 @@ +function Invoke-CIPPStandardSPSyncButtonState { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SPSyncButtonState + .SYNOPSIS + (Label) Set SharePoint sync button state + .DESCRIPTION + (Helptext) If disabled, users in the tenant will no longer be able to use the Sync button to sync SharePoint content on all sites. However, existing synced content will remain functional on the user's computer. + (DocsDescription) If disabled, users in the tenant will no longer be able to use the Sync button to sync SharePoint content on all sites. However, existing synced content will remain functional on the user's computer. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Controls whether employees can synchronize SharePoint files to their local devices, balancing productivity benefits with data security concerns. This setting helps manage data distribution while maintaining access to cloud-based collaboration when sync is disabled. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"SharePoint Sync Button state","name":"standards.SPSyncButtonState.state","options":[{"label":"Disabled","value":"true"},{"label":"Enabled","value":"false"}]} + IMPACT + Medium Impact + ADDEDDATE + 2024-07-26 + POWERSHELLEQUIVALENT + Set-SPOTenant -HideSyncButtonOnTeamSite \$true or \$false + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SPSyncButtonState' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, HideSyncButtonOnDocLib + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SPSyncButtonState state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + + # Input validation + $StateValue = $Settings.state.value ?? $Settings.state + if (([string]::IsNullOrWhiteSpace($StateValue) -or $StateValue -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SPSyncButtonState: Invalid state parameter set' -sev Error + return + } + + $WantedState = [System.Convert]::ToBoolean($StateValue) + $StateIsCorrect = if ($CurrentState.HideSyncButtonOnDocLib -eq $WantedState) { $true } else { $false } + $HumanReadableState = if ($WantedState -eq $true) { 'disabled' } else { 'enabled' } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($StateIsCorrect -eq $false) { + try { + $CurrentState | Set-CIPPSPOTenant -Properties @{HideSyncButtonOnDocLib = $WantedState } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set the SharePoint Sync Button state to $HumanReadableState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set the SharePoint Sync Button state to $HumanReadableState. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "The SharePoint Sync Button is already set to the wanted state of $HumanReadableState" -sev Info + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "The SharePoint Sync Button is already set to the wanted state of $HumanReadableState" -sev Info + } else { + Write-StandardsAlert -message "The SharePoint Sync Button is not set to the wanted state of $HumanReadableState" -object $CurrentState -tenant $tenant -standardName 'SPSyncButtonState' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "The SharePoint Sync Button is not set to the wanted state of $HumanReadableState" -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SPSyncButtonDisabled' -FieldValue $CurrentState.HideSyncButtonOnDocLib -StoreAs bool -Tenant $Tenant + if ($StateIsCorrect) { + $FieldValue = $true + } else { + $FieldValue = $CurrentState + } + $CurrentValue = @{ + HideSyncButtonOnDocLib = $CurrentState.HideSyncButtonOnDocLib + } + $ExpectedValue = @{ + HideSyncButtonOnDocLib = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPSyncButtonState' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSSPR.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSSPR.ps1 new file mode 100644 index 000000000000..ff39c3b17c39 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSSPR.ps1 @@ -0,0 +1,10 @@ +function Invoke-CIPPStandardSSPR { + <# + .FUNCTIONALITY + Internal + #> + param($Tenant, $Settings) + + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SSPR standard is no longer available' -sev Error + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 new file mode 100644 index 000000000000..1627aaceaa5d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 @@ -0,0 +1,215 @@ +function Invoke-CIPPStandardSafeAttachmentPolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SafeAttachmentPolicy + .SYNOPSIS + (Label) Default Safe Attachment Policy + .DESCRIPTION + (Helptext) This creates a Safe Attachment policy + (DocsDescription) This creates a Safe Attachment policy + .NOTES + CAT + Defender Standards + TAG + "CIS M365 5.0 (2.1.4)" + "mdo_safedocuments" + "mdo_commonattachmentsfilter" + "mdo_safeattachmentpolicy" + "NIST CSF 2.0 (DE.CM-09)" + ADDEDCOMPONENT + {"type":"textField","name":"standards.SafeAttachmentPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Safe Attachment Policy"} + {"type":"select","multiple":false,"label":"Safe Attachment Action","name":"standards.SafeAttachmentPolicy.SafeAttachmentAction","options":[{"label":"Allow","value":"Allow"},{"label":"Block","value":"Block"},{"label":"DynamicDelivery","value":"DynamicDelivery"}]} + {"type":"select","multiple":false,"creatable":true,"label":"QuarantineTag","name":"standards.SafeAttachmentPolicy.QuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"switch","label":"Redirect","name":"standards.SafeAttachmentPolicy.Redirect"} + {"type":"textField","name":"standards.SafeAttachmentPolicy.RedirectAddress","label":"Redirect Address","required":false,"condition":{"field":"standards.SafeAttachmentPolicy.Redirect","compareType":"is","compareValue":true}} + IMPACT + Low Impact + ADDEDDATE + 2024-03-25 + POWERSHELLEQUIVALENT + Set-SafeAttachmentPolicy or New-SafeAttachmentPolicy + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SafeAttachmentPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $ServicePlans = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus?$select=servicePlans' -tenantid $Tenant + $ServicePlans = $ServicePlans.servicePlans.servicePlanName + $MDOLicensed = $ServicePlans -contains 'ATP_ENTERPRISE' + + if ($MDOLicensed) { + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Safe Attachment Policy' } + $PolicyList = @($PolicyName, 'CIPP Default Safe Attachment Policy', 'Default Safe Attachment Policy') + $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentPolicy' | Where-Object -Property Name -In $PolicyList | Select-Object -First 1 + if ($null -eq $ExistingPolicy.Name) { + # No existing policy - use the configured/default name + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Safe Attachment Policy' } + } else { + # Use existing policy name if found + $PolicyName = $ExistingPolicy.Name + } + # Derive rule name from policy name, but check for old names for backward compatibility + $DesiredRuleName = "$PolicyName Rule" + $RuleList = @($DesiredRuleName, 'CIPP Default Safe Attachment Rule', 'CIPP Default Safe Attachment Policy') + $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentRule' | Where-Object -Property Name -In $RuleList | Select-Object -First 1 + if ($null -eq $ExistingRule.Name) { + # No existing rule - use the derived name + $RuleName = $DesiredRuleName + } else { + # Use existing rule name if found + $RuleName = $ExistingRule.Name + } + + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentPolicy' | + Where-Object -Property Name -EQ $PolicyName | + Select-Object Name, Enable, Action, QuarantineTag, Redirect, RedirectAddress + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SafeAttachmentPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and + ($CurrentState.Enable -eq $true) -and + ($CurrentState.Action -eq $Settings.SafeAttachmentAction) -and + ($CurrentState.QuarantineTag -eq $Settings.QuarantineTag) -and + ($CurrentState.Redirect -eq $Settings.Redirect) -and + (($null -eq $Settings.RedirectAddress) -or ($CurrentState.RedirectAddress -eq $Settings.RedirectAddress)) + + $AcceptedDomains = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AcceptedDomain' + + $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentRule' | + Where-Object -Property Name -EQ $RuleName | + Select-Object Name, SafeAttachmentPolicy, Priority, RecipientDomainIs + + $RuleStateIsCorrect = ($RuleState.Name -eq $RuleName) -and + ($RuleState.SafeAttachmentPolicy -eq $PolicyName) -and + ($RuleState.Priority -eq 0) -and + (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) + + if ($Settings.remediate -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Safe Attachment Policy already correctly configured' -sev Info + } else { + $cmdParams = @{ + Enable = $true + Action = $Settings.SafeAttachmentAction + QuarantineTag = $Settings.QuarantineTag + Redirect = $Settings.Redirect + RedirectAddress = $Settings.RedirectAddress + } + + if ($CurrentState.Name -eq $PolicyName) { + try { + $cmdParams.Add('Identity', $PolicyName) + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SafeAttachmentPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Safe Attachment policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Safe Attachment policy $PolicyName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $PolicyName) + New-ExoRequest -tenantid $Tenant -cmdlet 'New-SafeAttachmentPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Safe Attachment policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Safe Attachment policy $PolicyName." -sev Error -LogData $_ + } + } + } + + if ($RuleStateIsCorrect -eq $false) { + $cmdParams = @{ + Priority = 0 + RecipientDomainIs = $AcceptedDomains.Name + } + + if ($RuleState.SafeAttachmentPolicy -ne $PolicyName) { + $cmdParams.Add('SafeAttachmentPolicy', $PolicyName) + } + + if ($RuleState.Name -eq $RuleName) { + try { + $cmdParams.Add('Identity', $RuleName) + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SafeAttachmentRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Safe Attachment rule $RuleName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update Safe Attachment rule $RuleName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $RuleName) + New-ExoRequest -tenantid $Tenant -cmdlet 'New-SafeAttachmentRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created Safe Attachment rule $RuleName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create Safe Attachment rule $RuleName." -sev Error -LogData $_ + } + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Safe Attachment Policy is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Safe Attachment Policy is not enabled' -object $CurrentState -tenant $Tenant -standardName 'SafeAttachmentPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Safe Attachment Policy is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SafeAttachmentPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + + $CurrentValue = @{ + name = $CurrentState.Name + enable = $CurrentState.Enable + action = $CurrentState.Action + quarantineTag = $CurrentState.QuarantineTag + redirect = $CurrentState.Redirect + redirectAddress = $CurrentState.RedirectAddress + } + + $ExpectedValue = @{ + name = $PolicyName + enable = $true + action = $Settings.SafeAttachmentAction + quarantineTag = $Settings.QuarantineTag + redirect = $Settings.Redirect + redirectAddress = $Settings.RedirectAddress + } + Set-CIPPStandardsCompareField -FieldName 'standards.SafeAttachmentPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } + } else { + if ($Settings.remediate -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Failed to create Safe Attachment policy: Tenant does not have Microsoft Defender for Office 365 license' -sev Error + } + + if ($Settings.alert -eq $true) { + Write-StandardsAlert -message 'Safe Attachment Policy is not enabled: Tenant does not have Microsoft Defender for Office 365 license' -object $MDOLicensed -tenant $Tenant -standardName 'SafeAttachmentPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Safe Attachment Policy is not enabled: Tenant does not have Microsoft Defender for Office 365 license' -sev Info + } + + if ($Settings.report -eq $true) { + $state = @{ License = 'Failed to set policy: This tenant might not be licensed for this feature' } + Add-CIPPBPAField -FieldName 'SafeAttachmentPolicy' -FieldValue $false -StoreAs bool -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SafeAttachmentPolicy' -FieldValue $state -Tenant $Tenant + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 new file mode 100644 index 000000000000..bd7fadbfbbb4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 @@ -0,0 +1,236 @@ +function Invoke-CIPPStandardSafeLinksPolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SafeLinksPolicy + .SYNOPSIS + (Label) Default Safe Links Policy + .DESCRIPTION + (Helptext) This creates a Safe Links policy that automatically scans, tracks, and and enables safe links for Email, Office, and Teams for both external and internal senders + (DocsDescription) This creates a Safe Links policy that automatically scans, tracks, and and enables safe links for Email, Office, and Teams for both external and internal senders + .NOTES + CAT + Defender Standards + TAG + "CIS M365 5.0 (2.1.1)" + "mdo_safelinksforemail" + "mdo_safelinksforOfficeApps" + "NIST CSF 2.0 (DE.CM-09)" + ADDEDCOMPONENT + {"type":"textField","name":"standards.SafeLinksPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default SafeLinks Policy"} + {"type":"switch","label":"AllowClickThrough","name":"standards.SafeLinksPolicy.AllowClickThrough"} + {"type":"switch","label":"DisableUrlRewrite","name":"standards.SafeLinksPolicy.DisableUrlRewrite"} + {"type":"switch","label":"EnableOrganizationBranding","name":"standards.SafeLinksPolicy.EnableOrganizationBranding"} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SafeLinksPolicy.DoNotRewriteUrls","label":"Do not rewrite the following URLs in email"} + IMPACT + Low Impact + ADDEDDATE + 2024-03-25 + POWERSHELLEQUIVALENT + Set-SafeLinksPolicy or New-SafeLinksPolicy + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SafeLinksPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $ServicePlans = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus?$select=servicePlans' -tenantid $Tenant + $ServicePlans = $ServicePlans.servicePlans.servicePlanName + $MDOLicensed = $ServicePlans -contains 'ATP_ENTERPRISE' + + if ($MDOLicensed) { + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default SafeLinks Policy' } + $PolicyList = @($PolicyName, 'CIPP Default SafeLinks Policy', 'Default SafeLinks Policy') + $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' | Where-Object -Property Name -In $PolicyList | Select-Object -First 1 + if ($null -eq $ExistingPolicy.Name) { + # No existing policy - use the configured/default name + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default SafeLinks Policy' } + } else { + # Use existing policy name if found + $PolicyName = $ExistingPolicy.Name + } + # Derive rule name from policy name, but check for old names for backward compatibility + $DesiredRuleName = "$PolicyName Rule" + $RuleList = @($DesiredRuleName, 'CIPP Default SafeLinks Rule', 'CIPP Default SafeLinks Policy') + $ExistingRule = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksRule' | Where-Object -Property Name -In $RuleList | Select-Object -First 1 + if ($null -eq $ExistingRule.Name) { + # No existing rule - use the derived name + $RuleName = $DesiredRuleName + } else { + # Use existing rule name if found + $RuleName = $ExistingRule.Name + } + + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' | + Where-Object -Property Name -EQ $PolicyName | + Select-Object Name, EnableSafeLinksForEmail, EnableSafeLinksForTeams, EnableSafeLinksForOffice, TrackClicks, AllowClickThrough, ScanUrls, EnableForInternalSenders, DeliverMessageAfterScan, DisableUrlRewrite, EnableOrganizationBranding, DoNotRewriteUrls + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SafeLinksPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and + ($CurrentState.EnableSafeLinksForEmail -eq $true) -and + ($CurrentState.EnableSafeLinksForTeams -eq $true) -and + ($CurrentState.EnableSafeLinksForOffice -eq $true) -and + ($CurrentState.TrackClicks -eq $true) -and + ($CurrentState.ScanUrls -eq $true) -and + ($CurrentState.EnableForInternalSenders -eq $true) -and + ($CurrentState.DeliverMessageAfterScan -eq $true) -and + ($CurrentState.AllowClickThrough -eq $Settings.AllowClickThrough) -and + ($CurrentState.DisableUrlRewrite -eq $Settings.DisableUrlRewrite) -and + ($CurrentState.EnableOrganizationBranding -eq $Settings.EnableOrganizationBranding) -and + (!(Compare-Object -ReferenceObject $CurrentState.DoNotRewriteUrls -DifferenceObject ($Settings.DoNotRewriteUrls.value ?? $Settings.DoNotRewriteUrls ?? @()))) + + $AcceptedDomains = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AcceptedDomain' + + $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksRule' | + Where-Object -Property Name -EQ $RuleName | + Select-Object Name, SafeLinksPolicy, Priority, RecipientDomainIs + + $RuleStateIsCorrect = ($RuleState.Name -eq $RuleName) -and + ($RuleState.SafeLinksPolicy -eq $PolicyName) -and + ($RuleState.Priority -eq 0) -and + (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) + + if ($Settings.remediate -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'SafeLink Policy already correctly configured' -sev Info + } else { + $cmdParams = @{ + EnableSafeLinksForEmail = $true + EnableSafeLinksForTeams = $true + EnableSafeLinksForOffice = $true + TrackClicks = $true + ScanUrls = $true + EnableForInternalSenders = $true + DeliverMessageAfterScan = $true + AllowClickThrough = $Settings.AllowClickThrough + DisableUrlRewrite = $Settings.DisableUrlRewrite + EnableOrganizationBranding = $Settings.EnableOrganizationBranding + DoNotRewriteUrls = $Settings.DoNotRewriteUrls.value ?? @{'@odata.type' = '#Exchange.GenericHashTable' } + } + + if ($CurrentState.Name -eq $Policyname) { + try { + $cmdParams.Add('Identity', $PolicyName) + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SafeLinksPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated SafeLink policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update SafeLink policy $PolicyName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $PolicyName) + New-ExoRequest -tenantid $Tenant -cmdlet 'New-SafeLinksPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created SafeLink policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create SafeLink policy $PolicyName." -sev Error -LogData $_ + } + } + } + + if ($RuleStateIsCorrect -eq $false) { + $cmdParams = @{ + Priority = 0 + RecipientDomainIs = $AcceptedDomains.Name + } + + if ($RuleState.SafeLinksPolicy -ne $PolicyName) { + $cmdParams.Add('SafeLinksPolicy', $PolicyName) + } + + if ($RuleState.Name -eq $RuleName) { + try { + $cmdParams.Add('Identity', $RuleName) + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SafeLinksRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated SafeLink rule $RuleName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to update SafeLink rule $RuleName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $RuleName) + New-ExoRequest -tenantid $Tenant -cmdlet 'New-SafeLinksRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created SafeLink rule $RuleName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create SafeLink rule $RuleName." -sev Error -LogData $_ + } + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'SafeLink Policy is enabled' -sev Info + } else { + Write-StandardsAlert -message 'SafeLink Policy is not enabled' -object $CurrentState -tenant $Tenant -standardName 'SafeLinksPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'SafeLink Policy is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SafeLinksPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + + $CurrentValue = @{ + Name = $CurrentState.Name + EnableSafeLinksForEmail = $CurrentState.EnableSafeLinksForEmail + EnableSafeLinksForTeams = $CurrentState.EnableSafeLinksForTeams + EnableSafeLinksForOffice = $CurrentState.EnableSafeLinksForOffice + TrackClicks = $CurrentState.TrackClicks + AllowClickThrough = $CurrentState.AllowClickThrough + ScanUrls = $CurrentState.ScanUrls + EnableForInternalSenders = $CurrentState.EnableForInternalSenders + DeliverMessageAfterScan = $CurrentState.DeliverMessageAfterScan + DisableUrlRewrite = $CurrentState.DisableUrlRewrite + EnableOrganizationBranding = $CurrentState.EnableOrganizationBranding + DoNotRewriteUrls = $CurrentState.DoNotRewriteUrls + } + $ExpectedValue = @{ + Name = $PolicyName + EnableSafeLinksForEmail = $true + EnableSafeLinksForTeams = $true + EnableSafeLinksForOffice = $true + TrackClicks = $true + AllowClickThrough = $Settings.AllowClickThrough + ScanUrls = $true + EnableForInternalSenders = $true + DeliverMessageAfterScan = $true + DisableUrlRewrite = $Settings.DisableUrlRewrite + EnableOrganizationBranding = $Settings.EnableOrganizationBranding + DoNotRewriteUrls = $Settings.DoNotRewriteUrls.value ?? @() + } + Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } + } else { + if ($Settings.remediate -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Failed to create SafeLink policy: Tenant does not have Microsoft Defender for Office 365 license' -sev Error + } + + if ($Settings.alert -eq $true) { + Write-StandardsAlert -message 'SafeLink Policy is not enabled: Tenant does not have Microsoft Defender for Office 365 license' -object $MDOLicensed -tenant $Tenant -standardName 'SafeLinksPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'SafeLink Policy is not enabled: Tenant does not have Microsoft Defender for Office 365 license' -sev Info + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SafeLinksPolicy' -FieldValue $false -StoreAs bool -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksPolicy' -FieldValue $false -Tenant $Tenant + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 new file mode 100644 index 000000000000..f3a91c2a43e6 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 @@ -0,0 +1,485 @@ +function Invoke-CIPPStandardSafeLinksTemplatePolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SafeLinksTemplatePolicy + .SYNOPSIS + (Label) SafeLinks Policy Template + .DESCRIPTION + (Helptext) Deploy and manage SafeLinks policy templates to protect against malicious URLs in emails and Office documents. + (DocsDescription) Deploy and manage SafeLinks policy templates to protect against malicious URLs in emails and Office documents. + .NOTES + CAT + Templates + MULTIPLE + False + DISABLEDFEATURES + {"report":false,"warn":false,"remediate":false} + IMPACT + Medium Impact + ADDEDDATE + 2025-04-29 + EXECUTIVETEXT + Deploys standardized URL protection policies that automatically scan and verify links in emails and documents before users click them. This template-based approach ensures consistent protection against malicious websites and phishing attacks across the organization. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":true,"creatable":false,"name":"standards.SafeLinksTemplatePolicy.TemplateIds","label":"Select SafeLinks Policy Templates","api":{"url":"/api/ListSafeLinksPolicyTemplates","labelField":"TemplateName","valueField":"GUID","queryKey":"ListSafeLinksPolicyTemplates"}} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SafeLinksTemplatePolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Processing SafeLinks template with settings: $($Settings | ConvertTo-Json -Compress)" -sev Debug + + # Verify tenant has necessary license + if (-not (Test-MDOLicense -Tenant $Tenant -Settings $Settings)) { + return + } + + # Normalize template list property + $TemplateList = Get-NormalizedTemplateList -Settings $Settings + if (-not $TemplateList) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No templates selected for SafeLinks policy deployment' -sev Error + return + } + + # Handle different modes + switch ($true) { + ($Settings.remediate -eq $true) { + Invoke-SafeLinksRemediation -Tenant $Tenant -TemplateList $TemplateList -Settings $Settings + } + ($Settings.alert -eq $true) { + Invoke-SafeLinksAlert -Tenant $Tenant -TemplateList $TemplateList -Settings $Settings + } + ($Settings.report -eq $true) { + Invoke-SafeLinksReport -Tenant $Tenant -TemplateList $TemplateList -Settings $Settings + } + } +} + +function Test-MDOLicense { + param($Tenant, $Settings) + + $ServicePlans = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus?$select=servicePlans' -tenantid $Tenant + $ServicePlans = $ServicePlans.servicePlans.servicePlanName + $MDOLicensed = $ServicePlans -contains 'ATP_ENTERPRISE' + + if (-not $MDOLicensed) { + $Message = 'Tenant does not have Microsoft Defender for Office 365 license' + + if ($Settings.remediate -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply SafeLinks templates: $Message" -sev Error + } + + if ($Settings.alert -eq $true) { + Write-StandardsAlert -message "SafeLinks templates could not be applied: $Message" -object $MDOLicensed -tenant $Tenant -standardName 'SafeLinksTemplatePolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "SafeLinks templates could not be applied: $Message" -sev Info + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SafeLinksTemplatePolicy' -FieldValue $false -StoreAs bool -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksTemplatePolicy' -FieldValue $false -Tenant $Tenant + } + + return $false + } + + return $true +} + +function Get-NormalizedTemplateList { + param($Settings) + + if ($Settings.'standards.SafeLinksTemplatePolicy.TemplateIds') { + return $Settings.'standards.SafeLinksTemplatePolicy.TemplateIds' + } elseif ($Settings.TemplateIds) { + return $Settings.TemplateIds + } + + return $null +} + +function Get-SafeLinksTemplateFromStorage { + param($TemplateId) + + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'SafeLinksTemplate' and RowKey eq '$TemplateId'" + $Template = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + if (-not $Template) { + throw "Template with ID $TemplateId not found" + } + + return $Template.JSON | ConvertFrom-Json -ErrorAction Stop +} + +function ConvertTo-SafeArray { + param($Field) + + if ($null -eq $Field) { return @() } + + $ResultList = [System.Collections.Generic.List[string]]::new() + + if ($Field -is [array]) { + foreach ($item in $Field) { + if ($item -is [string]) { + $ResultList.Add($item) + } elseif ($item.value) { + $ResultList.Add($item.value) + } elseif ($item.userPrincipalName) { + $ResultList.Add($item.userPrincipalName) + } elseif ($item.id) { + $ResultList.Add($item.id) + } else { + $ResultList.Add($item.ToString()) + } + } + return $ResultList.ToArray() + } + + if ($Field -is [hashtable] -or $Field -is [PSCustomObject]) { + if ($Field.value) { + $ResultList.Add($Field.value) + return $ResultList.ToArray() + } + if ($Field.userPrincipalName) { + $ResultList.Add($Field.userPrincipalName) + return $ResultList.ToArray() + } + if ($Field.id) { + $ResultList.Add($Field.id) + return $ResultList.ToArray() + } + } + + if ($Field -is [string]) { + $ResultList.Add($Field) + return $ResultList.ToArray() + } + + $ResultList.Add($Field.ToString()) + return $ResultList.ToArray() +} + +function Get-ExistingSafeLinksObjects { + param($Tenant, $PolicyName, $RuleName) + + $PolicyExists = $null + $RuleExists = $null + + try { + $ExistingPolicies = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' -useSystemMailbox $true + $PolicyExists = $ExistingPolicies | Where-Object { $_.Name -eq $PolicyName } + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to retrieve existing policies: $($_.Exception.Message)" -sev Warning + } + + try { + $ExistingRules = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksRule' -useSystemMailbox $true + $RuleExists = $ExistingRules | Where-Object { $_.Name -eq $RuleName } + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to retrieve existing rules: $($_.Exception.Message)" -sev Warning + } + + return @{ + PolicyExists = $PolicyExists + RuleExists = $RuleExists + } +} + +function New-SafeLinksPolicyParameters { + param($Template) + + $PolicyMappings = @{ + 'EnableSafeLinksForEmail' = 'EnableSafeLinksForEmail' + 'EnableSafeLinksForTeams' = 'EnableSafeLinksForTeams' + 'EnableSafeLinksForOffice' = 'EnableSafeLinksForOffice' + 'TrackClicks' = 'TrackClicks' + 'AllowClickThrough' = 'AllowClickThrough' + 'ScanUrls' = 'ScanUrls' + 'EnableForInternalSenders' = 'EnableForInternalSenders' + 'DeliverMessageAfterScan' = 'DeliverMessageAfterScan' + 'DisableUrlRewrite' = 'DisableUrlRewrite' + 'AdminDisplayName' = 'AdminDisplayName' + 'CustomNotificationText' = 'CustomNotificationText' + 'EnableOrganizationBranding' = 'EnableOrganizationBranding' + } + + $PolicyParams = @{} + + foreach ($templateKey in $PolicyMappings.Keys) { + if ($null -ne $Template.$templateKey) { + $PolicyParams[$PolicyMappings[$templateKey]] = $Template.$templateKey + } + } + + $DoNotRewriteUrls = ConvertTo-SafeArray -Field $Template.DoNotRewriteUrls + if ($DoNotRewriteUrls.Count -gt 0) { + $PolicyParams['DoNotRewriteUrls'] = $DoNotRewriteUrls + } + + return $PolicyParams +} + +function New-SafeLinksRuleParameters { + param($Template) + + $RuleParams = @{} + + # Basic rule parameters + if ($null -ne $Template.Priority) { $RuleParams['Priority'] = $Template.Priority } + if ($null -ne $Template.Description) { $RuleParams['Comments'] = $Template.Description } + if ($null -ne $Template.TemplateDescription) { $RuleParams['Comments'] = $Template.TemplateDescription } + + # Array-based rule parameters + $ArrayMappings = @{ + 'SentTo' = ConvertTo-SafeArray -Field $Template.SentTo + 'SentToMemberOf' = ConvertTo-SafeArray -Field $Template.SentToMemberOf + 'RecipientDomainIs' = ConvertTo-SafeArray -Field $Template.RecipientDomainIs + 'ExceptIfSentTo' = ConvertTo-SafeArray -Field $Template.ExceptIfSentTo + 'ExceptIfSentToMemberOf' = ConvertTo-SafeArray -Field $Template.ExceptIfSentToMemberOf + 'ExceptIfRecipientDomainIs' = ConvertTo-SafeArray -Field $Template.ExceptIfRecipientDomainIs + } + + foreach ($paramName in $ArrayMappings.Keys) { + if ($ArrayMappings[$paramName].Count -gt 0) { + $RuleParams[$paramName] = $ArrayMappings[$paramName] + } + } + + return $RuleParams +} + +function Set-SafeLinksRuleState { + param($Tenant, $RuleName, $State) + + if ($null -eq $State) { return } + + $IsEnabled = switch ($State) { + 'Enabled' { $true } + 'Disabled' { $false } + $true { $true } + $false { $false } + default { $null } + } + + if ($null -ne $IsEnabled) { + $Cmdlet = $IsEnabled ? 'Enable-SafeLinksRule' : 'Disable-SafeLinksRule' + $null = New-ExoRequest -tenantid $Tenant -cmdlet $Cmdlet -cmdParams @{ Identity = $RuleName } -useSystemMailbox $true + return $IsEnabled ? 'enabled' : 'disabled' + } + + return $null +} + +function Invoke-SafeLinksRemediation { + param($Tenant, $TemplateList, $Settings) + + $OverallSuccess = $true + $TemplateResults = @{} + + foreach ($TemplateItem in $TemplateList) { + $TemplateId = $TemplateItem.value + + try { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Processing SafeLinks template with ID: $TemplateId" -sev Info + + # Get template from storage + $Template = Get-SafeLinksTemplateFromStorage -TemplateId $TemplateId + + $PolicyName = $Template.PolicyName ?? $Template.Name + $RuleName = $Template.RuleName ?? "$($PolicyName)_Rule" + + # Check existing objects + $ExistingObjects = Get-ExistingSafeLinksObjects -Tenant $Tenant -PolicyName $PolicyName -RuleName $RuleName + + $ActionsTaken = [System.Collections.Generic.List[string]]::new() + + # Process Policy + $PolicyParams = New-SafeLinksPolicyParameters -Template $Template + + if ($ExistingObjects.PolicyExists) { + # Update existing policy to keep it in line + $PolicyParams['Identity'] = $PolicyName + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SafeLinksPolicy' -cmdParams $PolicyParams -useSystemMailbox $true + $ActionsTaken.Add("Updated SafeLinks policy '$PolicyName'") + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated SafeLinks policy '$PolicyName'" -sev Info + } else { + # Create new policy + $PolicyParams['Name'] = $PolicyName + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-SafeLinksPolicy' -cmdParams $PolicyParams -useSystemMailbox $true + $ActionsTaken.Add("Created new SafeLinks policy '$PolicyName'") + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created new SafeLinks policy '$PolicyName'" -sev Info + } + + # Process Rule + $RuleParams = New-SafeLinksRuleParameters -Template $Template + + if ($ExistingObjects.RuleExists) { + # Update existing rule to keep it in line + $RuleParams['Identity'] = $RuleName + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-SafeLinksRule' -cmdParams $RuleParams -useSystemMailbox $true + $ActionsTaken.Add("Updated SafeLinks rule '$RuleName'") + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated SafeLinks rule '$RuleName'" -sev Info + } else { + # Create new rule + $RuleParams['Name'] = $RuleName + $RuleParams['SafeLinksPolicy'] = $PolicyName + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-SafeLinksRule' -cmdParams $RuleParams -useSystemMailbox $true + $ActionsTaken.Add("Created new SafeLinks rule '$RuleName'") + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created new SafeLinks rule '$RuleName'" -sev Info + } + + # Set rule state + $StateResult = Set-SafeLinksRuleState -Tenant $Tenant -RuleName $RuleName -State $Template.State + if ($StateResult) { + $ActionsTaken.Add("Rule $StateResult") + Write-LogMessage -API 'Standards' -tenant $Tenant -message "SafeLinks rule '$RuleName' $StateResult" -sev Info + } + + $TemplateResults[$TemplateId] = @{ + Success = $true + ActionsTaken = $ActionsTaken.ToArray() + TemplateName = $Template.TemplateName ?? $Template.Name + PolicyName = $PolicyName + RuleName = $RuleName + } + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully applied SafeLinks template '$($Template.TemplateName ?? $Template.Name)'" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $TemplateResults[$TemplateId] = @{ + Success = $false + Message = $ErrorMessage + TemplateName = $Template.TemplateName ?? $Template.Name ?? 'Unknown' + } + $OverallSuccess = $false + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to apply SafeLinks template ID $TemplateId : $ErrorMessage" -sev Error + } + } + + # Report overall results + if ($OverallSuccess) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Successfully applied all SafeLinks templates' -sev Info + } else { + $SuccessCount = ($TemplateResults.Values | Where-Object { $_.Success -eq $true }).Count + $TotalCount = $TemplateList.Count + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Applied $SuccessCount out of $TotalCount SafeLinks templates" -sev Info + } +} + +function Invoke-SafeLinksAlert { + param($Tenant, $TemplateList, $Settings) + + $AllTemplatesApplied = $true + $AlertMessages = [System.Collections.Generic.List[string]]::new() + + foreach ($TemplateItem in $TemplateList) { + $TemplateId = $TemplateItem.value + + try { + $Template = Get-SafeLinksTemplateFromStorage -TemplateId $TemplateId + $PolicyName = $Template.PolicyName ?? $Template.Name + $RuleName = $Template.RuleName ?? "$($PolicyName)_Rule" + + $ExistingObjects = Get-ExistingSafeLinksObjects -Tenant $Tenant -PolicyName $PolicyName -RuleName $RuleName + + if (-not $ExistingObjects.PolicyExists -or -not $ExistingObjects.RuleExists) { + $AllTemplatesApplied = $false + $Status = "SafeLinks template '$($Template.TemplateName ?? $Template.Name)' is not applied" + + if (-not $ExistingObjects.PolicyExists) { + $Status = "$Status - policy '$PolicyName' does not exist" + } + + if (-not $ExistingObjects.RuleExists) { + $Status = "$Status - rule '$RuleName' does not exist" + } + + $AlertMessages.Add($Status) + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $AlertMessages.Add("Failed to check template with ID $TemplateId : $ErrorMessage") + $AllTemplatesApplied = $false + } + } + + if ($AllTemplatesApplied) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All SafeLinks templates are correctly applied' -sev Info + } else { + $AlertMessage = 'One or more SafeLinks templates are not correctly applied: ' + ($AlertMessages.ToArray() -join ' | ') + Write-StandardsAlert -message $AlertMessage -object @{ + Templates = $TemplateList + Issues = $AlertMessages.ToArray() + } -tenant $Tenant -standardName 'SafeLinksTemplatePolicy' -standardId $Settings.standardId + + Write-LogMessage -API 'Standards' -tenant $Tenant -message $AlertMessage -sev Info + } +} + +function Invoke-SafeLinksReport { + param($Tenant, $TemplateList, $Settings) + + $AllTemplatesApplied = $true + $ReportResults = @{} + + foreach ($TemplateItem in $TemplateList) { + $TemplateId = $TemplateItem.value + + try { + $Template = Get-SafeLinksTemplateFromStorage -TemplateId $TemplateId + $PolicyName = $Template.PolicyName ?? $Template.Name + $RuleName = $Template.RuleName ?? "$($PolicyName)_Rule" + + $ExistingObjects = Get-ExistingSafeLinksObjects -Tenant $Tenant -PolicyName $PolicyName -RuleName $RuleName + + $ReportResults[$TemplateId] = @{ + Success = ($ExistingObjects.PolicyExists -and $ExistingObjects.RuleExists) + TemplateName = $Template.TemplateName ?? $Template.Name + PolicyName = $PolicyName + RuleName = $RuleName + PolicyExists = [bool]$ExistingObjects.PolicyExists + RuleExists = [bool]$ExistingObjects.RuleExists + } + + if (-not $ExistingObjects.PolicyExists -or -not $ExistingObjects.RuleExists) { + $AllTemplatesApplied = $false + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $ReportResults[$TemplateId] = @{ + Success = $false + Message = $ErrorMessage + } + $AllTemplatesApplied = $false + } + } + + Add-CIPPBPAField -FieldName 'SafeLinksTemplatePolicy' -FieldValue $AllTemplatesApplied -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + TemplateResults = $ReportResults + ProcessedTemplates = $TemplateList.Count + SuccessfulTemplates = ($ReportResults.Values | Where-Object { $_.Success -eq $true }).Count + AllTemplatesApplied = $AllTemplatesApplied + } + $ExpectedValue = @{ + TemplateResults = $ReportResults + ProcessedTemplates = $TemplateList.Count + SuccessfulTemplates = $TemplateList.Count + AllTemplatesApplied = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.SafeLinksTemplatePolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 new file mode 100644 index 000000000000..b879e3250c8d --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 @@ -0,0 +1,84 @@ +function Invoke-CIPPStandardSafeSendersDisable { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SafeSendersDisable + .SYNOPSIS + (Label) Remove Safe Senders to prevent SPF bypass + .DESCRIPTION + (Helptext) Loops through all users and removes the Safe Senders list. This is to prevent SPF bypass attacks, as the Safe Senders list is not checked by SPF. + (DocsDescription) Loops through all users and removes the Safe Senders list. This is to prevent SPF bypass attacks, as the Safe Senders list is not checked by SPF. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Removes user-defined safe sender lists to prevent security bypasses where malicious emails could avoid spam filtering. This ensures all emails go through proper security screening, even if users have previously marked senders as 'safe', improving overall email security. + ADDEDCOMPONENT + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + IMPACT + Medium Impact + ADDEDDATE + 2023-10-26 + POWERSHELLEQUIVALENT + Set-MailboxJunkEmailConfiguration + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SafeSendersDisable' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + if ($Settings.remediate -eq $true) { + try { + $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' -select 'UserPrincipalName' + $Request = $Mailboxes | ForEach-Object { + @{ + CmdletInput = @{ + CmdletName = 'Set-MailboxJunkEmailConfiguration' + Parameters = @{ + Identity = $_.UserPrincipalName + TrustedRecipientsAndDomains = $null + } + } + } + } + + $BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request) + $BatchResults | ForEach-Object { + if ($_.error) { + $ErrorMessage = Get-NormalizedError -Message $_.error + Write-Host "Failed to Disable SafeSenders for $($_.target). Error: $ErrorMessage" + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to Disable SafeSenders for $($_.target). Error: $ErrorMessage" -sev Error + } + } + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Safe Senders disabled' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable SafeSenders. Error: $ErrorMessage" -sev Error + } + } + + if ($Settings.report -eq $true) { + #This script always returns true, as it only disables the Safe Senders list + $CurrentValue = @{ + SafeSendersDisabled = $true + } + $ExpectedValue = @{ + SafeSendersDisabled = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SafeSendersDisable' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 new file mode 100644 index 000000000000..91e18f80dc42 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 @@ -0,0 +1,198 @@ +function Invoke-CIPPStandardSecureScoreRemediation { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SecureScoreRemediation + .SYNOPSIS + (Label) Update Secure Score Control Profiles + .DESCRIPTION + (Helptext) Allows bulk updating of Secure Score control profiles across tenants. Select controls and assign them to different states: Default, Ignored, Third-Party, or Reviewed. + (DocsDescription) Allows bulk updating of Secure Score control profiles across tenants. Select controls and assign them to different states: Default, Ignored, Third-Party, or Reviewed. + .NOTES + CAT + Global Standards + TAG + "lowimpact" + ADDEDCOMPONENT + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.Default","label":"Controls to set to Default","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.Ignored","label":"Controls to set to Ignored","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SecureScoreRemediation.ThirdParty","label":"Controls to set to Third-Party","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + {"type":"autoComplete","multiple":true,"required":false,"creatable":true,"name":"standards.SecureScoreRemediation.Reviewed","label":"Controls to set to Reviewed","api":{"url":"/secureScore.json","labelField":"title","valueField":"id"}} + IMPACT + Low Impact + ADDEDDATE + 2025-11-19 + POWERSHELLEQUIVALENT + New-GraphPostRequest to /beta/security/secureScoreControlProfiles/{id} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + + # Get current secure score controls + try { + $CurrentControls = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/security/secureScoreControlProfiles' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not retrieve Secure Score controls for $Tenant. Error: $ErrorMessage" -sev Error + return + } + + # Build list of controls with their desired states + $ControlsToUpdate = [System.Collections.Generic.List[object]]::new() + + # Process Default controls + $DefaultControls = $Settings.Default.value ?? $Settings.Default + if ($DefaultControls) { + foreach ($ControlName in $DefaultControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'default' + Reason = 'Default' + }) + } + } + + # Process Ignored controls + $IgnoredControls = $Settings.Ignored.value ?? $Settings.Ignored + if ($IgnoredControls) { + foreach ($ControlName in $IgnoredControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'ignored' + Reason = 'Ignored' + }) + } + } + + # Process ThirdParty controls + $ThirdPartyControls = $Settings.ThirdParty.value ?? $Settings.ThirdParty + if ($ThirdPartyControls) { + foreach ($ControlName in $ThirdPartyControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'thirdParty' + Reason = 'ThirdParty' + }) + } + } + + # Process Reviewed controls + $ReviewedControls = $Settings.Reviewed.value ?? $Settings.Reviewed + if ($ReviewedControls) { + foreach ($ControlName in $ReviewedControls) { + $ControlsToUpdate.Add(@{ + ControlName = $ControlName + State = 'reviewed' + Reason = 'Reviewed' + }) + } + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Processing Secure Score control updates' + + foreach ($Control in $ControlsToUpdate) { + # Skip if this is a Defender control (starts with scid_) + if ($Control.ControlName -match '^scid_') { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Skipping Defender control $($Control.ControlName) - cannot be updated via this API" -sev Info + continue + } + + # Build the request body + $Body = @{ + state = $Control.State + comment = $Control.Reason + vendorInformation = @{ + vendor = 'Microsoft' + provider = 'SecureScore' + } + } + + try { + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + + # Check if already in desired state + if ($CurrentControl.state -eq $Control.State) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Control $($Control.ControlName) is already in state $($Control.State)" -sev Info + } else { + # Update the control + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/security/secureScoreControlProfiles/$($Control.ControlName)" -tenantid $Tenant -type PATCH -Body (ConvertTo-Json -InputObject $Body -Compress) + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set control $($Control.ControlName) to $($Control.State)" -sev Info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set control $($Control.ControlName) to $($Control.State). Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + $AlertMessages = [System.Collections.Generic.List[string]]::new() + + foreach ($Control in $ControlsToUpdate) { + if ($Control.ControlName -match '^scid_') { + continue + } + + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + + if ($CurrentControl) { + if ($CurrentControl.state -eq $Control.State) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Control $($Control.ControlName) is in expected state: $($Control.State)" -sev Info + } else { + $AlertMessage = "Control $($Control.ControlName) is in state $($CurrentControl.state), expected $($Control.State)" + $AlertMessages.Add($AlertMessage) + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Alert + } + } else { + $AlertMessage = "Control $($Control.ControlName) not found in tenant" + $AlertMessages.Add($AlertMessage) + Write-LogMessage -API 'Standards' -tenant $tenant -message $AlertMessage -sev Warning + } + } + + if ($AlertMessages.Count -gt 0) { + Write-StandardsAlert -message 'Secure Score controls not in expected state' -object @{Issues = $AlertMessages.ToArray() } -tenant $Tenant -standardName 'SecureScoreRemediation' -standardId $Settings.standardId + } + } + + if ($Settings.report -eq $true) { + $ReportData = [System.Collections.Generic.List[object]]::new() + + foreach ($Control in $ControlsToUpdate) { + if ($Control.ControlName -match '^scid_') { + continue + } + + $CurrentControl = $CurrentControls | Where-Object { $_.id -eq $Control.ControlName } + $LatestState = ($CurrentControl.controlStateUpdates | Select-Object -Last 1).state + if ($LatestState -ne $Control.State) { + $ReportData.Add(@{ + ControlName = $Control.ControlName + CurrentState = $LatestState + DesiredState = $Control.State + InCompliance = $false + }) + } + } + if ($ReportData.count -eq 0) { + $ReportData = $true + } + + $CurrentValue = @{ + ControlsToUpdate = $ReportData + } + $ExpectedValue = @{ + ControlsToUpdate = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.SecureScoreRemediation' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + Add-CIPPBPAField -FieldName 'SecureScoreRemediation' -FieldValue $ReportData -StoreAs json -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecurityDefaults.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecurityDefaults.ps1 new file mode 100644 index 000000000000..bc5c73b053b5 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecurityDefaults.ps1 @@ -0,0 +1,80 @@ +function Invoke-CIPPStandardSecurityDefaults { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SecurityDefaults + .SYNOPSIS + (Label) Enable Security Defaults + .DESCRIPTION + (Helptext) Enables security defaults for the tenant, for newer tenants this is enabled by default. Do not enable this feature if you use Conditional Access. + (DocsDescription) Enables SD for the tenant, which disables all forms of basic authentication and enforces users to configure MFA. Users are only prompted for MFA when a logon is considered 'suspect' by Microsoft. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CISA (MS.AAD.11.1v1)" + EXECUTIVETEXT + Activates Microsoft's baseline security configuration that requires multi-factor authentication and blocks legacy authentication methods. This provides essential security protection for organizations without complex conditional access policies, significantly improving security posture with minimal configuration. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2021-11-19 + POWERSHELLEQUIVALENT + [Read more here](https://www.cyberdrain.com/automating-with-powershell-enabling-secure-defaults-and-sd-explained/) + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $SecureDefaultsState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -tenantid $tenant) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Security Defaults state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($SecureDefaultsState.IsEnabled -ne $true) { + try { + Write-Host "Secure Defaults is disabled. Enabling for $tenant" -ForegroundColor Yellow + $body = '{ "isEnabled": true }' + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -Type patch -Body $body -ContentType 'application/json' + + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Enabled Security Defaults.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable Security Defaults. Error: $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Security Defaults is already enabled.' -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($SecureDefaultsState.IsEnabled -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Security Defaults is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Security Defaults is not enabled' -object ($SecureDefaultsState | Select-Object displayName, isEnabled, description) -tenant $tenant -standardName 'SecurityDefaults' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Security Defaults is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SecurityDefaults' -FieldValue $SecureDefaultsState.IsEnabled -StoreAs bool -Tenant $tenant + $CurrentData = @{ + SecurityDefaultsEnabled = $SecureDefaultsState.IsEnabled + } + $ExpectedData = @{ + SecurityDefaultsEnabled = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SecurityDefaults' -CurrentValue $CurrentData -ExpectedValue $ExpectedData -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 new file mode 100644 index 000000000000..4f2d624577b9 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 @@ -0,0 +1,83 @@ +function Invoke-CIPPStandardSendFromAlias { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SendFromAlias + .SYNOPSIS + (Label) Allow users to send from their alias addresses + .DESCRIPTION + (Helptext) Enables the ability for users to send from their alias addresses. + (DocsDescription) Allows users to change the 'from' address to any set in their Azure AD Profile. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Allows employees to send emails from their alternative email addresses (aliases) rather than just their primary address. This is useful for employees who manage multiple roles or departments, enabling them to send emails from the most appropriate address for the context. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2022-05-25 + POWERSHELLEQUIVALENT + Set-Mailbox + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SendFromAlias' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').SendFromAliasEnabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SendFromAlias state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if ($CurrentInfo -ne $true) { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ SendFromAliasEnabled = $true } + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Send from alias enabled.' -sev Info + $CurrentInfo = $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable send from alias. Error: $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Send from alias is already enabled.' -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Send from alias is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Send from alias is not enabled' -object $CurrentInfo -tenant $tenant -standardName 'SendFromAlias' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Send from alias is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SendFromAlias' -FieldValue $CurrentInfo -StoreAs bool -Tenant $tenant + $CurrentValue = @{ + SendFromAliasEnabled = $CurrentInfo + } + $ExpectedValue = @{ + SendFromAliasEnabled = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SendFromAlias' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 new file mode 100644 index 000000000000..be9fe0909549 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 @@ -0,0 +1,122 @@ +function Invoke-CIPPStandardSendReceiveLimitTenant { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SendReceiveLimitTenant + .SYNOPSIS + (Label) Set send/receive size limits + .DESCRIPTION + (Helptext) Sets the Send and Receive limits for new users. Valid values are 1MB to 150MB + (DocsDescription) Sets the Send and Receive limits for new users. Valid values are 1MB to 150MB + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Establishes standard email attachment size limits for all new employees, balancing functionality with system performance and security. This prevents email system overload from large attachments while ensuring employees can share necessary files through appropriate channels. + ADDEDCOMPONENT + {"type":"number","name":"standards.SendReceiveLimitTenant.SendLimit","label":"Send limit in MB (Default is 35)","defaultValue":35} + {"type":"number","name":"standards.SendReceiveLimitTenant.ReceiveLimit","label":"Receive Limit in MB (Default is 36)","defaultValue":36} + IMPACT + Low Impact + ADDEDDATE + 2023-11-16 + POWERSHELLEQUIVALENT + Set-MailboxPlan + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SendReceiveLimitTenant' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Input validation + if ([Int32]$Settings.SendLimit -lt 1 -or [Int32]$Settings.SendLimit -gt 150) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SendReceiveLimitTenant: Invalid SendLimit parameter set' -sev Error + return + } + + # Input validation + if ([Int32]$Settings.ReceiveLimit -lt 1 -or [Int32]$Settings.ReceiveLimit -gt 150) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'SendReceiveLimitTenant: Invalid ReceiveLimit parameter set' -sev Error + return + } + + try { + $AllMailBoxPlans = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxPlan' | + Select-Object DisplayName, MaxSendSize, MaxReceiveSize, GUID + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SendReceiveLimitTenant state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + $MaxSendSize = [int64]"$($Settings.SendLimit)MB" + $MaxReceiveSize = [int64]"$($Settings.ReceiveLimit)MB" + + $NotSetCorrectly = foreach ($MailboxPlan in $AllMailBoxPlans) { + # Handle "Unlimited" values - treat them as not matching the desired limit. + if ($MailboxPlan.MaxSendSize -match 'Unlimited' -or $MailboxPlan.MaxReceiveSize -match 'Unlimited') { + $MailboxPlan + continue + } + + $PlanMaxSendSize = [int64]($MailboxPlan.MaxSendSize -replace '.*\(([\d,]+).*', '$1' -replace ',', '') + $PlanMaxReceiveSize = [int64]($MailboxPlan.MaxReceiveSize -replace '.*\(([\d,]+).*', '$1' -replace ',', '') + if ($PlanMaxSendSize -ne $MaxSendSize -or $PlanMaxReceiveSize -ne $MaxReceiveSize) { + $MailboxPlan + } + } + + if ($Settings.remediate -eq $true) { + Write-Host "Time to remediate. Our Settings are $($Settings.SendLimit)MB and $($Settings.ReceiveLimit)MB" + + if ($NotSetCorrectly.Count -gt 0) { + Write-Host "Found $($NotSetCorrectly.Count) Mailbox Plans that are not set correctly. Setting them to $($Settings.SendLimit)MB and $($Settings.ReceiveLimit)MB" + try { + foreach ($MailboxPlan in $NotSetCorrectly) { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxPlan' -cmdParams @{Identity = $MailboxPlan.GUID; MaxSendSize = $MaxSendSize; MaxReceiveSize = $MaxReceiveSize } -useSystemMailbox $true + } + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set the tenant send($($Settings.SendLimit)MB) and receive($($Settings.ReceiveLimit)MB) limits" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set the tenant send and receive limits. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "The tenant send($($Settings.SendLimit)MB) and receive($($Settings.ReceiveLimit)MB) limits are already set correctly" -sev Info + } + } + + if ($Settings.alert -eq $true) { + + if ($NotSetCorrectly.Count -eq 0) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "The tenant send($($Settings.SendLimit)MB) and receive($($Settings.ReceiveLimit)MB) limits are set correctly" -sev Info + } else { + Write-StandardsAlert -message "The tenant send($($Settings.SendLimit)MB) and receive($($Settings.ReceiveLimit)MB) limits are not set correctly" -object $NotSetCorrectly -tenant $tenant -standardName 'SendReceiveLimitTenant' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "The tenant send($($Settings.SendLimit)MB) and receive($($Settings.ReceiveLimit)MB) limits are not set correctly" -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SendReceiveLimit' -FieldValue $NotSetCorrectly -StoreAs json -Tenant $tenant + + $CurrentValue = @{ + SendLimit = $Settings.SendLimit + ReceiveLimit = $Settings.ReceiveLimit + } + $ExpectedValue = @{ + SendLimit = $Settings.SendLimit + ReceiveLimit = $Settings.ReceiveLimit + } + Set-CIPPStandardsCompareField -FieldName 'standards.SendReceiveLimitTenant' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 new file mode 100644 index 000000000000..4891f990cf02 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 @@ -0,0 +1,130 @@ +function Invoke-CIPPStandardSharePointMassDeletionAlert { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SharePointMassDeletionAlert + .SYNOPSIS + (Label) SharePoint Mass Deletion Alert + .DESCRIPTION + (Helptext) Sets a e-mail address to alert when a User deletes more than 20 SharePoint files within 60 minutes. NB: Requires a Office 365 E5 subscription, Office 365 E3 with Threat Intelligence or Office 365 EquivioAnalytics add-on. + (DocsDescription) Sets a e-mail address to alert when a User deletes more than 20 SharePoint files within 60 minutes. This is useful for monitoring and ensuring that the correct SharePoint files are deleted. NB: Requires a Office 365 E5 subscription, Office 365 E3 with Threat Intelligence or Office 365 EquivioAnalytics add-on. + .NOTES + CAT + Defender Standards + TAG + EXECUTIVETEXT + Alerts administrators when employees delete large numbers of SharePoint files in a short time period, helping detect potential data destruction attacks, ransomware, or accidental mass deletions. This early warning system enables rapid response to protect critical business documents and data. + ADDEDCOMPONENT + {"type":"number","name":"standards.SharePointMassDeletionAlert.Threshold","label":"Max files to delete within the time frame","defaultValue":20} + {"type":"number","name":"standards.SharePointMassDeletionAlert.TimeWindow","label":"Time frame in minutes","defaultValue":60} + {"type":"autoComplete","multiple":true,"creatable":true,"required":true,"name":"standards.SharePointMassDeletionAlert.NotifyUser","label":"E-mail to receive the alert"} + IMPACT + Low Impact + ADDEDDATE + 2025-04-07 + POWERSHELLEQUIVALENT + New-ProtectionAlert and Set-ProtectionAlert + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param ($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DeletedUserRentention' -TenantFilter $Tenant -RequiredCapabilities @('RMS_S_PREMIUM2') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $PolicyName = 'CIPP SharePoint mass deletion of files by a user' + + try { + $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-ProtectionAlert' -Compliance | + Where-Object { $_.Name -eq $PolicyName } | + Select-Object -Property * + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the sharingCapability state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $EmailsOutsideSettings = $CurrentState.NotifyUser | Where-Object { $_ -notin $Settings.NotifyUser.value } + $MissingEmailsInSettings = $Settings.NotifyUser.value | Where-Object { $_ -notin $CurrentState.NotifyUser } + + $StateIsCorrect = ($EmailsOutsideSettings.Count -eq 0) -and + ($MissingEmailsInSettings.Count -eq 0) -and + ($CurrentState.Threshold -eq $Settings.Threshold) -and + ($CurrentState.TimeWindow -eq $Settings.TimeWindow) + + $CompareField = [PSCustomObject]@{ + 'Threshold' = $CurrentState.Threshold + 'TimeWindow' = $CurrentState.TimeWindow + 'NotifyUser' = $CurrentState.NotifyUser -join ', ' + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint mass deletion of files alert is configured correctly' -sev Info + } else { + $cmdParams = @{ + 'NotifyUser' = $Settings.NotifyUser.value + 'Category' = 'DataGovernance' + 'Operation' = 'FileDeleted' + 'Severity' = 'High' + 'AggregationType' = '1' + 'Threshold' = $Settings.Threshold + 'TimeWindow' = $Settings.TimeWindow + } + + if ($CurrentState.Name -eq $PolicyName) { + try { + $cmdParams['Identity'] = $PolicyName + New-ExoRequest -TenantId $Tenant -cmdlet 'Set-ProtectionAlert' -Compliance -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully configured SharePoint mass deletion of files alert' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to configure SharePoint mass deletion of files alert. Error: $ErrorMessage" -sev Error + } + } else { + try { + $cmdParams['name'] = $PolicyName + $cmdParams['ThreatType'] = 'Activity' + + New-ExoRequest -TenantId $Tenant -cmdlet 'New-ProtectionAlert' -Compliance -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully created SharePoint mass deletion of files alert' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to create SharePoint mass deletion of files alert. Error: $ErrorMessage" -sev Error + } + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint mass deletion of files alert is enabled' -sev Info + } else { + Write-StandardsAlert -message 'SharePoint mass deletion of files alert is disabled' -object $CompareField -tenant $tenant -standardName 'SharePointMassDeletionAlert' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'SharePoint mass deletion of files alert is disabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + Threshold = $CurrentState.Threshold + TimeWindow = $CurrentState.TimeWindow + NotifyUser = @($CurrentState.NotifyUser) + } + $ExpectedValue = @{ + Threshold = $Settings.Threshold + TimeWindow = $Settings.TimeWindow + NotifyUser = @($Settings.NotifyUser.value) + } + Set-CIPPStandardsCompareField -FieldName 'standards.SharePointMassDeletionAlert' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'SharePointMassDeletionAlert' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 new file mode 100644 index 000000000000..b05f3abb32db --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 @@ -0,0 +1,110 @@ +function Invoke-CIPPStandardShortenMeetings { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) ShortenMeetings + .SYNOPSIS + (Label) Set shorten meetings state + .DESCRIPTION + (Helptext) Sets the shorten meetings settings on a tenant level. This will shorten meetings by the selected amount of minutes. Valid values are 0 to 29. Short meetings are under 60 minutes, long meetings are over 60 minutes. + (DocsDescription) Sets the shorten meetings settings on a tenant level. This will shorten meetings by the selected amount of minutes. Valid values are 0 to 29. Short meetings are under 60 minutes, long meetings are over 60 minutes. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Automatically shortens calendar meetings by a specified number of minutes to provide buffer time between meetings, reducing back-to-back scheduling stress and allowing employees time to transition between meetings. This improves work-life balance and meeting effectiveness. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.ShortenMeetings.ShortenEventScopeDefault","options":[{"label":"Disabled/None","value":"None"},{"label":"End early","value":"EndEarly"},{"label":"Start late","value":"StartLate"}]} + {"type":"number","name":"standards.ShortenMeetings.DefaultMinutesToReduceShortEventsBy","label":"Minutes to reduce short calendar events by (Default is 5)","defaultValue":5} + {"type":"number","name":"standards.ShortenMeetings.DefaultMinutesToReduceLongEventsBy","label":"Minutes to reduce long calendar events by (Default is 10)","defaultValue":10} + IMPACT + Medium Impact + ADDEDDATE + 2024-05-27 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -ShortenEventScopeDefault -DefaultMinutesToReduceShortEventsBy -DefaultMinutesToReduceLongEventsBy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'ShortenMeetings' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + Write-Host "ShortenMeetings: $($Settings | ConvertTo-Json -Compress)" + # Get state value using null-coalescing operator + $scopeDefault = $Settings.ShortenEventScopeDefault.value ? $Settings.ShortenEventScopeDefault.value : $Settings.ShortenEventScopeDefault + + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' | + Select-Object -Property ShortenEventScopeDefault, DefaultMinutesToReduceShortEventsBy, DefaultMinutesToReduceLongEventsBy + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the ShortenMeetings state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CorrectState = if ($CurrentState.ShortenEventScopeDefault -eq $scopeDefault -and + $CurrentState.DefaultMinutesToReduceShortEventsBy -eq $Settings.DefaultMinutesToReduceShortEventsBy -and + $CurrentState.DefaultMinutesToReduceLongEventsBy -eq $Settings.DefaultMinutesToReduceLongEventsBy) { $true } else { $false } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + + if ($CorrectState -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Shorten meetings settings are already in the correct state. ' -sev Info + } else { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ShortenEventScopeDefault = $scopeDefault ; DefaultMinutesToReduceShortEventsBy = $Settings.DefaultMinutesToReduceShortEventsBy; DefaultMinutesToReduceLongEventsBy = $Settings.DefaultMinutesToReduceLongEventsBy } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Shorten meetings settings have been set to the following state. State: $($scopeDefault), Short:$($Settings.DefaultMinutesToReduceShortEventsBy), Long: $($Settings.DefaultMinutesToReduceLongEventsBy)" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set shorten meetings settings. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($CorrectState -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Shorten meetings settings are already in the correct state. Current state: $($CurrentState.ShortenEventScopeDefault), Short:$($CurrentState.DefaultMinutesToReduceShortEventsBy), Long: $($CurrentState.DefaultMinutesToReduceLongEventsBy)" -sev Info + } else { + Write-StandardsAlert -message 'Shorten meetings settings are not in the correct state.' -object $CurrentState -tenant $Tenant -standardName 'ShortenMeetings' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Shorten meetings settings are not in the correct state. Current state: $($CurrentState.ShortenEventScopeDefault), Short:$($CurrentState.DefaultMinutesToReduceShortEventsBy), Long: $($CurrentState.DefaultMinutesToReduceLongEventsBy)" -sev Info + } + } + + if ($Settings.report -eq $true) { + $BPAField = @{ + FieldName = 'ShortenMeetings' + FieldValue = $CorrectState + Tenant = $Tenant + } + + if ($CorrectState -eq $true) { + Add-CIPPBPAField @BPAField -StoreAs bool + } else { + Add-CIPPBPAField @BPAField -StoreAs json + } + + $CurrentValue = @{ + ShortenEventScopeDefault = $CurrentState.ShortenEventScopeDefault + DefaultMinutesToReduceShortEventsBy = $CurrentState.DefaultMinutesToReduceShortEventsBy + DefaultMinutesToReduceLongEventsBy = $CurrentState.DefaultMinutesToReduceLongEventsBy + } + $ExpectedValue = @{ + ShortenEventScopeDefault = $scopeDefault + DefaultMinutesToReduceShortEventsBy = $Settings.DefaultMinutesToReduceShortEventsBy + DefaultMinutesToReduceLongEventsBy = $Settings.DefaultMinutesToReduceLongEventsBy + } + Set-CIPPStandardsCompareField -FieldName 'standards.ShortenMeetings' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 new file mode 100644 index 000000000000..5a9fd298f25c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 @@ -0,0 +1,315 @@ +function Invoke-CIPPStandardSpamFilterPolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SpamFilterPolicy + .SYNOPSIS + (Label) Default Spam Filter Policy + .DESCRIPTION + (Helptext) This standard creates a Spam filter policy similar to the default strict policy. + (DocsDescription) This standard creates a Spam filter policy similar to the default strict policy, the following settings are configured to on by default: IncreaseScoreWithNumericIps, IncreaseScoreWithRedirectToOtherPort, MarkAsSpamEmptyMessages, MarkAsSpamJavaScriptInHtml, MarkAsSpamSpfRecordHardFail, MarkAsSpamFromAddressAuthFail, MarkAsSpamNdrBackscatter, MarkAsSpamBulkMail, InlineSafetyTipsEnabled, PhishZapEnabled, SpamZapEnabled + .NOTES + CAT + Defender Standards + TAG + ADDEDCOMPONENT + {"type":"textField","name":"standards.SpamFilterPolicy.name","label":"Policy Name","required":true,"defaultValue":"CIPP Default Spam Filter Policy"} + {"type":"number","label":"Bulk email threshold (Default 7)","name":"standards.SpamFilterPolicy.BulkThreshold","defaultValue":7} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"label":"Spam Action","name":"standards.SpamFilterPolicy.SpamAction","options":[{"label":"Quarantine the message","value":"Quarantine"},{"label":"Move message to Junk Email folder","value":"MoveToJmf"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":true,"label":"Spam Quarantine Tag","name":"standards.SpamFilterPolicy.SpamQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"label":"High Confidence Spam Action","name":"standards.SpamFilterPolicy.HighConfidenceSpamAction","options":[{"label":"Quarantine the message","value":"Quarantine"},{"label":"Move message to Junk Email folder","value":"MoveToJmf"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":true,"label":"High Confidence Spam Quarantine Tag","name":"standards.SpamFilterPolicy.HighConfidenceSpamQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"label":"Bulk Spam Action","name":"standards.SpamFilterPolicy.BulkSpamAction","options":[{"label":"Quarantine the message","value":"Quarantine"},{"label":"Move message to Junk Email folder","value":"MoveToJmf"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":true,"label":"Bulk Quarantine Tag","name":"standards.SpamFilterPolicy.BulkQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"label":"Phish Spam Action","name":"standards.SpamFilterPolicy.PhishSpamAction","options":[{"label":"Quarantine the message","value":"Quarantine"},{"label":"Move message to Junk Email folder","value":"MoveToJmf"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":true,"label":"Phish Quarantine Tag","name":"standards.SpamFilterPolicy.PhishQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":true,"label":"High Confidence Phish Quarantine Tag","name":"standards.SpamFilterPolicy.HighConfidencePhishQuarantineTag","options":[{"label":"AdminOnlyAccessPolicy","value":"AdminOnlyAccessPolicy"},{"label":"DefaultFullAccessPolicy","value":"DefaultFullAccessPolicy"},{"label":"DefaultFullAccessWithNotificationPolicy","value":"DefaultFullAccessWithNotificationPolicy"}]} + {"type":"switch","name":"standards.SpamFilterPolicy.IncreaseScoreWithImageLinks","label":"Increase score if message contains image links to remote websites","defaultValue":false} + {"type":"switch","name":"standards.SpamFilterPolicy.IncreaseScoreWithBizOrInfoUrls","label":"Increase score if message contains links to .biz or .info domains","defaultValue":false} + {"type":"switch","name":"standards.SpamFilterPolicy.MarkAsSpamFramesInHtml","label":"Mark as spam if message contains HTML or iframe tags","defaultValue":false} + {"type":"switch","name":"standards.SpamFilterPolicy.MarkAsSpamObjectTagsInHtml","label":"Mark as spam if message contains HTML object tags","defaultValue":false} + {"type":"switch","name":"standards.SpamFilterPolicy.MarkAsSpamEmbedTagsInHtml","label":"Mark as spam if message contains HTML embed tags","defaultValue":false} + {"type":"switch","name":"standards.SpamFilterPolicy.MarkAsSpamFormTagsInHtml","label":"Mark as spam if message contains HTML form tags","defaultValue":false} + {"type":"switch","name":"standards.SpamFilterPolicy.MarkAsSpamWebBugsInHtml","label":"Mark as spam if message contains web bugs (also known as web beacons)","defaultValue":false} + {"type":"switch","name":"standards.SpamFilterPolicy.MarkAsSpamSensitiveWordList","label":"Mark as spam if message contains words from the sensitive words list","defaultValue":false} + {"type":"switch","name":"standards.SpamFilterPolicy.EnableLanguageBlockList","label":"Enable language block list","defaultValue":false} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SpamFilterPolicy.LanguageBlockList","label":"Languages to block (uppercase ISO 639-1 two-letter)","condition":{"field":"standards.SpamFilterPolicy.EnableLanguageBlockList","compareType":"is","compareValue":true}} + {"type":"switch","name":"standards.SpamFilterPolicy.EnableRegionBlockList","label":"Enable region block list","defaultValue":false} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SpamFilterPolicy.RegionBlockList","label":"Regions to block (uppercase ISO 3166-1 two-letter)","condition":{"field":"standards.SpamFilterPolicy.EnableRegionBlockList","compareType":"is","compareValue":true}} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"name":"standards.SpamFilterPolicy.AllowedSenderDomains","label":"Allowed sender domains"} + IMPACT + Medium Impact + ADDEDDATE + 2024-07-15 + POWERSHELLEQUIVALENT + New-HostedContentFilterPolicy or Set-HostedContentFilterPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SpamFilterPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Spam Filter Policy' } + + try { + $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-HostedContentFilterPolicy' | + Where-Object -Property Name -EQ $PolicyName | + Select-Object -Property * + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SpamFilterPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $SpamAction = $Settings.SpamAction.value ?? $Settings.SpamAction + $SpamQuarantineTag = $Settings.SpamQuarantineTag.value ?? $Settings.SpamQuarantineTag + $HighConfidenceSpamAction = $Settings.HighConfidenceSpamAction.value ?? $Settings.HighConfidenceSpamAction + $HighConfidenceSpamQuarantineTag = $Settings.HighConfidenceSpamQuarantineTag.value ?? $Settings.HighConfidenceSpamQuarantineTag + $BulkSpamAction = $Settings.BulkSpamAction.value ?? $Settings.BulkSpamAction + $BulkQuarantineTag = $Settings.BulkQuarantineTag.value ?? $Settings.BulkQuarantineTag + $PhishSpamAction = $Settings.PhishSpamAction.value ?? $Settings.PhishSpamAction + $PhishQuarantineTag = $Settings.PhishQuarantineTag.value ?? $Settings.PhishQuarantineTag + $HighConfidencePhishQuarantineTag = $Settings.HighConfidencePhishQuarantineTag.value ?? $Settings.HighConfidencePhishQuarantineTag + + $IncreaseScoreWithImageLinks = if ($Settings.IncreaseScoreWithImageLinks) { 'On' } else { 'Off' } + $IncreaseScoreWithBizOrInfoUrls = if ($Settings.IncreaseScoreWithBizOrInfoUrls) { 'On' } else { 'Off' } + $MarkAsSpamFramesInHtml = if ($Settings.MarkAsSpamFramesInHtml) { 'On' } else { 'Off' } + $MarkAsSpamObjectTagsInHtml = if ($Settings.MarkAsSpamObjectTagsInHtml) { 'On' } else { 'Off' } + $MarkAsSpamEmbedTagsInHtml = if ($Settings.MarkAsSpamEmbedTagsInHtml) { 'On' } else { 'Off' } + $MarkAsSpamFormTagsInHtml = if ($Settings.MarkAsSpamFormTagsInHtml) { 'On' } else { 'Off' } + $MarkAsSpamWebBugsInHtml = if ($Settings.MarkAsSpamWebBugsInHtml) { 'On' } else { 'Off' } + $MarkAsSpamSensitiveWordList = if ($Settings.MarkAsSpamSensitiveWordList) { 'On' } else { 'Off' } + + try { + $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and + ($CurrentState.SpamAction -eq $SpamAction) -and + ($CurrentState.SpamQuarantineTag -eq $SpamQuarantineTag) -and + ($CurrentState.HighConfidenceSpamAction -eq $HighConfidenceSpamAction) -and + ($CurrentState.HighConfidenceSpamQuarantineTag -eq $HighConfidenceSpamQuarantineTag) -and + ($CurrentState.BulkSpamAction -eq $BulkSpamAction) -and + ($CurrentState.BulkQuarantineTag -eq $BulkQuarantineTag) -and + ($CurrentState.PhishSpamAction -eq $PhishSpamAction) -and + ($CurrentState.PhishQuarantineTag -eq $PhishQuarantineTag) -and + ($CurrentState.HighConfidencePhishAction -eq 'Quarantine') -and + ($CurrentState.HighConfidencePhishQuarantineTag -eq $HighConfidencePhishQuarantineTag) -and + ($CurrentState.BulkThreshold -eq [int]$Settings.BulkThreshold) -and + ($CurrentState.QuarantineRetentionPeriod -eq 30) -and + ($CurrentState.IncreaseScoreWithImageLinks -eq $IncreaseScoreWithImageLinks) -and + ($CurrentState.IncreaseScoreWithNumericIps -eq 'On') -and + ($CurrentState.IncreaseScoreWithRedirectToOtherPort -eq 'On') -and + ($CurrentState.IncreaseScoreWithBizOrInfoUrls -eq $IncreaseScoreWithBizOrInfoUrls) -and + ($CurrentState.MarkAsSpamEmptyMessages -eq 'On') -and + ($CurrentState.MarkAsSpamJavaScriptInHtml -eq 'On') -and + ($CurrentState.MarkAsSpamFramesInHtml -eq $MarkAsSpamFramesInHtml) -and + ($CurrentState.MarkAsSpamObjectTagsInHtml -eq $MarkAsSpamObjectTagsInHtml) -and + ($CurrentState.MarkAsSpamEmbedTagsInHtml -eq $MarkAsSpamEmbedTagsInHtml) -and + ($CurrentState.MarkAsSpamFormTagsInHtml -eq $MarkAsSpamFormTagsInHtml) -and + ($CurrentState.MarkAsSpamWebBugsInHtml -eq $MarkAsSpamWebBugsInHtml) -and + ($CurrentState.MarkAsSpamSensitiveWordList -eq $MarkAsSpamSensitiveWordList) -and + ($CurrentState.MarkAsSpamSpfRecordHardFail -eq 'On') -and + ($CurrentState.MarkAsSpamFromAddressAuthFail -eq 'On') -and + ($CurrentState.MarkAsSpamNdrBackscatter -eq 'On') -and + ($CurrentState.MarkAsSpamBulkMail -eq 'On') -and + ($CurrentState.InlineSafetyTipsEnabled -eq $true) -and + ($CurrentState.PhishZapEnabled -eq $true) -and + ($CurrentState.SpamZapEnabled -eq $true) -and + ($CurrentState.EnableLanguageBlockList -eq $Settings.EnableLanguageBlockList) -and + ((($null -eq $CurrentState.LanguageBlockList -or $CurrentState.LanguageBlockList.Count -eq 0) -and ($null -eq $Settings.LanguageBlockList.value)) -or ($null -ne $CurrentState.LanguageBlockList -and $CurrentState.LanguageBlockList.Count -gt 0 -and $null -ne $Settings.LanguageBlockList.value -and !(Compare-Object -ReferenceObject $CurrentState.LanguageBlockList -DifferenceObject $Settings.LanguageBlockList.value))) -and + ($CurrentState.EnableRegionBlockList -eq $Settings.EnableRegionBlockList) -and + ((($null -eq $CurrentState.RegionBlockList -or $CurrentState.RegionBlockList.Count -eq 0) -and ($null -eq $Settings.RegionBlockList.value)) -or ($null -ne $CurrentState.RegionBlockList -and $CurrentState.RegionBlockList.Count -gt 0 -and $null -ne $Settings.RegionBlockList.value -and !(Compare-Object -ReferenceObject $CurrentState.RegionBlockList -DifferenceObject $Settings.RegionBlockList.value))) -and + ((($null -eq $CurrentState.AllowedSenderDomains -or $CurrentState.AllowedSenderDomains.Count -eq 0) -and ($null -eq ($Settings.AllowedSenderDomains.value ?? $Settings.AllowedSenderDomains))) -or ($null -ne $CurrentState.AllowedSenderDomains -and $CurrentState.AllowedSenderDomains.Count -gt 0 -and $null -ne ($Settings.AllowedSenderDomains.value ?? $Settings.AllowedSenderDomains) -and !(Compare-Object -ReferenceObject $CurrentState.AllowedSenderDomains -DifferenceObject ($Settings.AllowedSenderDomains.value ?? $Settings.AllowedSenderDomains)))) + } catch { + $StateIsCorrect = $false + } + + $AcceptedDomains = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-AcceptedDomain' + + $RuleState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-HostedContentFilterRule' | + Where-Object -Property Name -EQ $PolicyName | + Select-Object -Property * + + $RuleStateIsCorrect = ($RuleState.Name -eq $PolicyName) -and + ($RuleState.HostedContentFilterPolicy -eq $PolicyName) -and + ($RuleState.Priority -eq 0) -and + (!(Compare-Object -ReferenceObject $RuleState.RecipientDomainIs -DifferenceObject $AcceptedDomains.Name)) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spam Filter Policy already correctly configured' -sev Info + } else { + $cmdParams = @{ + SpamAction = $SpamAction + SpamQuarantineTag = $SpamQuarantineTag + HighConfidenceSpamAction = $HighConfidenceSpamAction + HighConfidenceSpamQuarantineTag = $HighConfidenceSpamQuarantineTag + BulkSpamAction = $BulkSpamAction + BulkQuarantineTag = $BulkQuarantineTag + PhishSpamAction = $PhishSpamAction + PhishQuarantineTag = $PhishQuarantineTag + HighConfidencePhishAction = 'Quarantine' + HighConfidencePhishQuarantineTag = $HighConfidencePhishQuarantineTag + BulkThreshold = [int]$Settings.BulkThreshold + QuarantineRetentionPeriod = 30 + IncreaseScoreWithImageLinks = $IncreaseScoreWithImageLinks + IncreaseScoreWithNumericIps = 'On' + IncreaseScoreWithRedirectToOtherPort = 'On' + IncreaseScoreWithBizOrInfoUrls = $IncreaseScoreWithBizOrInfoUrls + MarkAsSpamEmptyMessages = 'On' + MarkAsSpamJavaScriptInHtml = 'On' + MarkAsSpamFramesInHtml = $MarkAsSpamFramesInHtml + MarkAsSpamObjectTagsInHtml = $MarkAsSpamObjectTagsInHtml + MarkAsSpamEmbedTagsInHtml = $MarkAsSpamEmbedTagsInHtml + MarkAsSpamFormTagsInHtml = $MarkAsSpamFormTagsInHtml + MarkAsSpamWebBugsInHtml = $MarkAsSpamWebBugsInHtml + MarkAsSpamSensitiveWordList = $MarkAsSpamSensitiveWordList + MarkAsSpamSpfRecordHardFail = 'On' + MarkAsSpamFromAddressAuthFail = 'On' + MarkAsSpamNdrBackscatter = 'On' + MarkAsSpamBulkMail = 'On' + InlineSafetyTipsEnabled = $true + PhishZapEnabled = $true + SpamZapEnabled = $true + AllowedSenderDomains = $Settings.AllowedSenderDomains.value ?? @{'@odata.type' = '#Exchange.GenericHashTable' } + } + + # Remove optional block lists if not configured + if ($Settings.EnableLanguageBlockList -eq $true -and $Settings.LanguageBlockList.value) { + $cmdParams.Add('EnableLanguageBlockList', $Settings.EnableLanguageBlockList) + $cmdParams.Add('LanguageBlockList', $Settings.LanguageBlockList.value) + } else { + $cmdParams.Add('EnableLanguageBlockList', $false) + } + if ($Settings.EnableRegionBlockList -eq $true -and $Settings.RegionBlockList.value) { + $cmdParams.Add('EnableRegionBlockList', $Settings.EnableRegionBlockList) + $cmdParams.Add('RegionBlockList', $Settings.RegionBlockList.value) + } else { + $cmdParams.Add('EnableRegionBlockList', $false) + } + + + if ($CurrentState.Name -eq $PolicyName) { + try { + $cmdParams.Add('Identity', $PolicyName) + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Set-HostedContentFilterPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Updated Spam Filter policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to update Spam Filter policy $PolicyName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', $PolicyName) + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-HostedContentFilterPolicy' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Created Spam Filter policy $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to create Spam Filter policy $PolicyName." -sev Error -LogData $_ + } + } + } + + if ($RuleStateIsCorrect -eq $false) { + $cmdParams = @{ + Priority = 0 + RecipientDomainIs = $AcceptedDomains.Name + } + + if ($RuleState.HostedContentFilterPolicy -ne $PolicyName) { + $cmdParams.Add('HostedContentFilterPolicy', $PolicyName) + } + + if ($RuleState.Name -eq $PolicyName) { + try { + $cmdParams.Add('Identity', "$PolicyName") + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'Set-HostedContentFilterRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Updated Spam Filter rule $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to update Spam Filter rule $PolicyName." -sev Error -LogData $_ + } + } else { + try { + $cmdParams.Add('Name', "$PolicyName") + $null = New-ExoRequest -TenantId $Tenant -cmdlet 'New-HostedContentFilterRule' -cmdParams $cmdParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Created Spam Filter rule $PolicyName." -sev Info + } catch { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message "Failed to create Spam Filter rule $PolicyName." -sev Error -LogData $_ + } + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spam Filter Policy is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Spam Filter Policy is not enabled' -object $CurrentState -tenant $Tenant -standardName 'SpamFilterPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -Tenant $Tenant -message 'Spam Filter Policy is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SpamFilterPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + $CurrentValue = @{ + Name = $CurrentState.Name + SpamAction = $CurrentState.SpamAction + SpamQuarantineTag = $CurrentState.SpamQuarantineTag + HighConfidenceSpamAction = $CurrentState.HighConfidenceSpamAction + HighConfidenceSpamQuarantineTag = $CurrentState.HighConfidenceSpamQuarantineTag + BulkSpamAction = $CurrentState.BulkSpamAction + BulkQuarantineTag = $CurrentState.BulkQuarantineTag + PhishSpamAction = $CurrentState.PhishSpamAction + PhishQuarantineTag = $CurrentState.PhishQuarantineTag + HighConfidencePhishQuarantineTag = $CurrentState.HighConfidencePhishQuarantineTag + BulkThreshold = $CurrentState.BulkThreshold + IncreaseScoreWithImageLinks = $CurrentState.IncreaseScoreWithImageLinks + IncreaseScoreWithBizOrInfoUrls = $CurrentState.IncreaseScoreWithBizOrInfoUrls + MarkAsSpamFramesInHtml = $CurrentState.MarkAsSpamFramesInHtml + MarkAsSpamObjectTagsInHtml = $CurrentState.MarkAsSpamObjectTagsInHtml + MarkAsSpamEmbedTagsInHtml = $CurrentState.MarkAsSpamEmbedTagsInHtml + MarkAsSpamFormTagsInHtml = $CurrentState.MarkAsSpamFormTagsInHtml + MarkAsSpamWebBugsInHtml = $CurrentState.MarkAsSpamWebBugsInHtml + MarkAsSpamSensitiveWordList = $CurrentState.MarkAsSpamSensitiveWordList + EnableLanguageBlockList = $CurrentState.EnableLanguageBlockList + LanguageBlockList = $CurrentState.LanguageBlockList + EnableRegionBlockList = $CurrentState.EnableRegionBlockList + RegionBlockList = $CurrentState.RegionBlockList + AllowedSenderDomains = $CurrentState.AllowedSenderDomains + } + $ExpectedValue = @{ + Name = $PolicyName + SpamAction = $SpamAction + SpamQuarantineTag = $SpamQuarantineTag + HighConfidenceSpamAction = $HighConfidenceSpamAction + HighConfidenceSpamQuarantineTag = $HighConfidenceSpamQuarantineTag + BulkSpamAction = $BulkSpamAction + BulkQuarantineTag = $BulkQuarantineTag + PhishSpamAction = $PhishSpamAction + PhishQuarantineTag = $PhishQuarantineTag + HighConfidencePhishQuarantineTag = $HighConfidencePhishQuarantineTag + BulkThreshold = [int]$Settings.BulkThreshold + IncreaseScoreWithImageLinks = $IncreaseScoreWithImageLinks + IncreaseScoreWithBizOrInfoUrls = $IncreaseScoreWithBizOrInfoUrls + MarkAsSpamFramesInHtml = $MarkAsSpamFramesInHtml + MarkAsSpamObjectTagsInHtml = $MarkAsSpamObjectTagsInHtml + MarkAsSpamEmbedTagsInHtml = $MarkAsSpamEmbedTagsInHtml + MarkAsSpamFormTagsInHtml = $MarkAsSpamFormTagsInHtml + MarkAsSpamWebBugsInHtml = $MarkAsSpamWebBugsInHtml + MarkAsSpamSensitiveWordList = $MarkAsSpamSensitiveWordList + EnableLanguageBlockList = $Settings.EnableLanguageBlockList + LanguageBlockList = if ($Settings.EnableLanguageBlockList -eq $true) { $Settings.LanguageBlockList.value } else { @() } + EnableRegionBlockList = $Settings.EnableRegionBlockList + RegionBlockList = if ($Settings.EnableRegionBlockList -eq $true) { $Settings.RegionBlockList.value } else { @() } + AllowedSenderDomains = $Settings.AllowedSenderDomains.value ?? @() + } + Set-CIPPStandardsCompareField -FieldName 'standards.SpamFilterPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 new file mode 100644 index 000000000000..c07e9e96fb3f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 @@ -0,0 +1,147 @@ +function Invoke-CIPPStandardSpoofWarn { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) SpoofWarn + .SYNOPSIS + (Label) Enable or disable 'external' warning in Outlook + .DESCRIPTION + (Helptext) Adds or removes indicators to e-mail messages received from external senders in Outlook. Works on all Outlook clients/OWA + (DocsDescription) Adds or removes indicators to e-mail messages received from external senders in Outlook. You can read more about this feature on [Microsoft's Exchange Team Blog.](https://techcommunity.microsoft.com/t5/exchange-team-blog/native-external-sender-callouts-on-email-in-outlook/ba-p/2250098) + .NOTES + CAT + Exchange Standards + TAG + "CIS M365 5.0 (6.2.3)" + EXECUTIVETEXT + Displays visual warnings in Outlook when emails come from external senders, helping employees identify potentially suspicious messages and reducing the risk of phishing attacks. This security feature makes it easier for staff to distinguish between internal and external communications. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.SpoofWarn.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + {"type":"autoComplete","multiple":true,"creatable":true,"required":false,"label":"Enter allowed senders(domain.com, *.domain.com or test@domain.com)","name":"standards.SpoofWarn.AllowListAdd"} + IMPACT + Low Impact + ADDEDDATE + 2021-11-16 + POWERSHELLEQUIVALENT + Set-ExternalInOutlook –Enabled \$true or \$false + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'SpoofWarn' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ExternalInOutlook') + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SpoofWarn state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Get state value using null-coalescing operator + $state = $Settings.state.value ?? $Settings.state + + $IsEnabled = $state -eq 'enabled' + $AllowListAdd = $Settings.AllowListAdd.value ?? $Settings.AllowListAdd + + # Test if all entries in the AllowListAdd variable are in the AllowList + $AllowListCorrect = $true + + if ($AllowListAdd -eq $null -or $AllowListAdd.Count -eq 0) { + Write-Host 'No AllowList entries provided, skipping AllowList check.' + $AllowListAdd = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = @() } + } else { + $AllowListAddEntries = foreach ($entry in $AllowListAdd) { + if ($CurrentInfo.AllowList -notcontains $entry) { + $AllowListCorrect = $false + Write-Host "AllowList entry $entry not found in current AllowList" + $entry + } else { + Write-Host "AllowList entry $entry found in current AllowList." + } + } + $AllowListAdd = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = $AllowListAddEntries } + } + + # Debug output + # Write-Host ($CurrentInfo | ConvertTo-Json -Depth 10) + # Write-Host ($AllowListAdd | ConvertTo-Json -Depth 10) + + # Input validation + if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'SpoofWarn: Invalid state parameter set' -sev Error + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate!' + $status = if ($Settings.enable -and $Settings.disable) { + # Handle pre standards v2.0 legacy settings when this was 2 separate standards + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'You cannot both enable and disable the Spoof Warnings setting' -sev Error + return + } elseif ($state -eq 'enabled' -or $Settings.enable) { $true } else { $false } + + try { + if ($CurrentInfo.Enabled -eq $status -and $AllowListCorrect -eq $true) { + # Status correct, AllowList correct + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Outlook external spoof warnings are already set to $status and the AllowList is correct." -sev Info + + } elseif ($CurrentInfo.Enabled -eq $status -and $AllowListCorrect -eq $false) { + # Status correct, AllowList incorrect + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-ExternalInOutlook' -cmdParams @{ AllowList = $AllowListAdd; } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Outlook external spoof warnings already set to $status. Added $($AllowListAdd.Add -join ', ') to the AllowList." -sev Info + + } elseif ($CurrentInfo.Enabled -ne $status -and $AllowListCorrect -eq $false) { + # Status incorrect, AllowList incorrect + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-ExternalInOutlook' -cmdParams @{ Enabled = $status; AllowList = $AllowListAdd; } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Outlook external spoof warnings set to $status. Added $($AllowListAdd.Add -join ', ') to the AllowList." -sev Info + + } else { + # Status incorrect, AllowList correct + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-ExternalInOutlook' -cmdParams @{ Enabled = $status; } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Outlook external spoof warnings set to $status." -sev Info + + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set Outlook external spoof warnings to $status. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo.Enabled -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Outlook external spoof warnings are enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Outlook external spoof warnings are not enabled.' -object $CurrentInfo -tenant $Tenant -standardName 'SpoofWarn' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Outlook external spoof warnings are not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'SpoofingWarnings' -FieldValue $CurrentInfo.Enabled -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + Enabled = $CurrentInfo.Enabled + AllowList = $CurrentInfo.AllowList + IsCompliant = $CurrentInfo.Enabled -eq $IsEnabled -and $AllowListCorrect + } + $ExpectedValue = @{ + Enabled = $IsEnabled + AllowList = $Settings.AllowListAdd.value ?? $Settings.AllowListAdd + IsCompliant = $true + } + Set-CIPPStandardsCompareField -FieldName 'standards.SpoofWarn' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 new file mode 100644 index 000000000000..87cd2d6b39e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 @@ -0,0 +1,112 @@ +function Invoke-CIPPStandardStaleEntraDevices { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) StaleEntraDevices + .SYNOPSIS + (Label) Cleanup stale Entra devices + .DESCRIPTION + (Helptext) Remediate is currently not available. Cleans up Entra devices that have not connected/signed in for the specified number of days. + (DocsDescription) Remediate is currently not available. Cleans up Entra devices that have not connected/signed in for the specified number of days. First disables and later deletes the devices. More info can be found in the [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices) + .NOTES + CAT + Entra (AAD) Standards + TAG + "Essential 8 (1501)" + "NIST CSF 2.0 (ID.AM-08)" + "NIST CSF 2.0 (PR.PS-03)" + EXECUTIVETEXT + Automatically identifies and removes inactive devices that haven't connected to company systems for a specified period, reducing security risks from abandoned or lost devices. This maintains a clean device inventory and prevents potential unauthorized access through dormant device registrations. + ADDEDCOMPONENT + {"type":"number","name":"standards.StaleEntraDevices.deviceAgeThreshold","label":"Days before stale(Do not set below 30)"} + DISABLEDFEATURES + {"report":false,"warn":false,"remediate":false} + IMPACT + High Impact + ADDEDDATE + 2025-01-19 + POWERSHELLEQUIVALENT + Remove-MgDevice, Update-MgDevice or Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'StaleEntraDevices' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + # Get all Entra devices + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $AllDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices' -tenantid $Tenant | Where-Object { $null -ne $_.approximateLastSignInDateTime } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the StaleEntraDevices state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $Date = (Get-Date).AddDays( - [int]$Settings.deviceAgeThreshold) + $StaleDevices = $AllDevices | Where-Object { $_.approximateLastSignInDateTime -lt $Date } + + if ($Settings.remediate -eq $true) { + + Write-Host 'Remediation not implemented yet' + # TODO: Implement remediation. For others in the future that want to try this: + # Good MS guide on what to watch out for https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices#clean-up-stale-devices + # https://learn.microsoft.com/en-us/graph/api/device-list?view=graph-rest-beta&tabs=http + # Properties to look at: + # approximateLastSignInDateTime: For knowing when the device last signed in + # enrollmentProfileName and operatingSystem: For knowing if it's an AutoPilot device + # managementType or isManaged: For knowing if it's an Intune managed device. If it is, should be removed from Intune also. Stale intune standard could possibly be used for this. + # profileType: For knowing if it's only registered or also managed + # accountEnabled: For knowing if the device is disabled or not + + } + + + if ($Settings.alert -eq $true) { + + if ($StaleDevices.Count -gt 0) { + Write-StandardsAlert -message "$($StaleDevices.Count) Stale devices found" -object $StaleDevices -tenant $Tenant -standardName 'StaleEntraDevices' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "$($StaleDevices.Count) Stale devices found" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No stale devices found' -sev Info + } + } + + + if ($Settings.report -eq $true) { + + if ($StaleDevices.Count -gt 0) { + $StaleReport = ConvertTo-Json -InputObject ($StaleDevices | Select-Object -Property displayName, id, approximateLastSignInDateTime, accountEnabled, enrollmentProfileName, operatingSystem, managementType, profileType) -Depth 10 -Compress + Add-CIPPBPAField -FieldName 'StaleEntraDevices' -FieldValue $StaleReport -StoreAs json -Tenant $Tenant + } else { + Add-CIPPBPAField -FieldName 'StaleEntraDevices' -FieldValue $true -StoreAs bool -Tenant $Tenant + } + + if ($StaleDevices.Count -gt 0) { + $FieldValue = $StaleDevices | Select-Object -Property displayName, id, approximateLastSignInDateTime, accountEnabled, enrollmentProfileName, operatingSystem, managementType, profileType + } else { + $FieldValue = $true + } + $CurrentValue = @{ + StaleDevicesCount = $StaleDevices.Count + StaleDevices = @($FieldValue) + DeviceAgeThreshold = [int]$Settings.deviceAgeThreshold + } + $ExpectedValue = @{ + StaleDevicesCount = 0 + StaleDevices = @() + DeviceAgeThreshold = [int]$Settings.deviceAgeThreshold + } + Set-CIPPStandardsCompareField -FieldName 'standards.StaleEntraDevices' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 new file mode 100644 index 000000000000..1d5dff424012 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 @@ -0,0 +1,85 @@ +function Invoke-CIPPStandardTAP { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TAP + .SYNOPSIS + (Label) Enable Temporary Access Passwords + .DESCRIPTION + (Helptext) Enables TAP and sets the default TAP lifetime to 1 hour. This configuration also allows you to select if a TAP is single use or multi-logon. + (DocsDescription) Enables Temporary Password generation for the tenant. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Enables temporary access passwords that IT administrators can generate for employees who are locked out or need emergency access to systems. These time-limited passwords provide a secure way to restore access without compromising long-term security policies. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select TAP Lifetime","name":"standards.TAP.config","options":[{"label":"Only Once","value":"true"},{"label":"Multiple Logons","value":"false"}]} + IMPACT + Low Impact + ADDEDDATE + 2022-03-15 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/TemporaryAccessPass' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TAP state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Get config value using null-coalescing operator + $config = $Settings.config.value ?? $Settings.config + if ($null -eq $config) { $config = $True } + + $StateIsCorrect = ($CurrentState.state -eq 'enabled') -and + ([System.Convert]::ToBoolean($CurrentState.isUsableOnce) -eq [System.Convert]::ToBoolean($config)) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Temporary Access Passwords is already enabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $Tenant -APIName 'Standards' -AuthenticationMethodId 'TemporaryAccessPass' -Enabled $true -TAPisUsableOnce $config + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Temporary Access Passwords is enabled.' -sev Info + } else { + $Object = $CurrentState | Select-Object -Property state, isUsableOnce, defaultLifetimeInMinutes, defaultLength, maximumLifetimeInMinutes + Write-StandardsAlert -message 'Temporary Access Passwords is not enabled.' -object $Object -tenant $Tenant -standardName 'TAP' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Temporary Access Passwords is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TemporaryAccessPass' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + state = $CurrentState.state + isUsableOnce = $CurrentState.isUsableOnce + } + $ExpectedValue = @{ + state = 'enabled' + isUsableOnce = [System.Convert]::ToBoolean($config) + } + Set-CIPPStandardsCompareField -FieldName 'standards.TAP' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 new file mode 100644 index 000000000000..06bd0ed34f07 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 @@ -0,0 +1,104 @@ +function Invoke-CIPPStandardTeamsChatProtection { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsChatProtection + .SYNOPSIS + (Label) Set Teams Chat Protection Settings + .DESCRIPTION + (Helptext) Configures Teams chat protection settings including weaponizable file protection and malicious URL protection. + (DocsDescription) Configures Teams messaging safety features to protect users from weaponizable files and malicious URLs in chats and channels. Weaponizable File Protection automatically blocks messages containing potentially dangerous file types (like .exe, .dll, .bat, etc.). Malicious URL Protection scans URLs in messages and displays warnings when potentially harmful links are detected. These protections work across internal and external collaboration scenarios. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Enables automated security protections in Microsoft Teams to block dangerous files and warn users about malicious links in chat messages. This helps protect employees from file-based attacks and phishing attempts. These safeguards work seamlessly in the background, providing essential protection without disrupting normal business communication. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsChatProtection.FileTypeCheck","label":"Enable Weaponizable File Protection","defaultValue":true} + {"type":"switch","name":"standards.TeamsChatProtection.UrlReputationCheck","label":"Enable Malicious URL Protection","defaultValue":true} + IMPACT + Low Impact + ADDEDDATE + 2025-10-02 + POWERSHELLEQUIVALENT + Set-CsTeamsMessagingConfiguration -FileTypeCheck 'Enabled' -UrlReputationCheck 'Enabled' -ReportIncorrectSecurityDetections 'Enabled' + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsChatProtection' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingConfiguration' | Select-Object -Property Identity, FileTypeCheck, UrlReputationCheck + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Teams Chat Protection state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + # Set defaults to enabled if not specified + $Settings.FileTypeCheck ??= $true + $Settings.UrlReputationCheck ??= $true + + # Convert boolean to Enabled/Disabled string + $FileTypeCheckState = $Settings.FileTypeCheck ? 'Enabled' : 'Disabled' + $UrlReputationCheckState = $Settings.UrlReputationCheck ? 'Enabled' : 'Disabled' + + $StateIsCorrect = ($CurrentState.FileTypeCheck -eq $FileTypeCheckState) -and + ($CurrentState.UrlReputationCheck -eq $UrlReputationCheckState) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Chat Protection settings already correctly configured.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + FileTypeCheck = $FileTypeCheckState + UrlReputationCheck = $UrlReputationCheckState + } + + try { + $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingConfiguration' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Teams Chat Protection settings to FileTypeCheck: $FileTypeCheckState, UrlReputationCheck: $UrlReputationCheckState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to configure Teams Chat Protection settings. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Chat Protection settings are configured correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Teams Chat Protection settings are not configured correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsChatProtection' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Chat Protection settings are not configured correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsChatProtection' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + FileTypeCheck = $CurrentState.FileTypeCheck + UrlReputationCheck = $CurrentState.UrlReputationCheck + } + $ExpectedValue = @{ + FileTypeCheck = $FileTypeCheckState + UrlReputationCheck = $UrlReputationCheckState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsChatProtection' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 new file mode 100644 index 000000000000..6cf019c7353e --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 @@ -0,0 +1,96 @@ +function Invoke-CIPPStandardTeamsEmailIntegration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsEmailIntegration + .SYNOPSIS + (Label) Disallow emails to be sent to channel email addresses + .DESCRIPTION + (Helptext) Should users be allowed to send emails directly to a channel email addresses? + (DocsDescription) Teams channel email addresses are an optional feature that allows users to email the Teams channel directly. + .NOTES + CAT + Teams Standards + EXECUTIVETEXT + Controls whether Teams channels can receive emails directly, enabling integration between email and team collaboration. This feature can improve workflow efficiency by allowing external communications to flow into team discussions, though it may need management for security or organizational reasons. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsEmailIntegration.AllowEmailIntoChannel","label":"Allow channel emails"} + IMPACT + Low Impact + ADDEDDATE + 2024-07-30 + POWERSHELLEQUIVALENT + Set-CsTeamsClientConfiguration -AllowEmailIntoChannel \$false + RECOMMENDEDBY + "CIS" + TAG + "CIS M365 5.0 (8.1.2)" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsEmailIntegration' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | + Select-Object AllowEmailIntoChannel + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsEmailIntegration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $AllowEmailIntoChannel = $Settings.AllowEmailIntoChannel ?? $false + + $StateIsCorrect = ($CurrentState.AllowEmailIntoChannel -eq $AllowEmailIntoChannel) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Email Integration settings already set.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + AllowEmailIntoChannel = $AllowEmailIntoChannel + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsClientConfiguration' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams Email Integration settings' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Teams Email Integration settings. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Email Integration settings is set correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Teams Email Integration settings is not set correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsEmailIntegration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Email Integration settings is not set correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + + $CurrentValue = @{ + AllowEmailIntoChannel = $CurrentState.AllowEmailIntoChannel + } + $ExpectedValue = @{ + AllowEmailIntoChannel = $AllowEmailIntoChannel + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsEmailIntegration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'TeamsEmailIntoChannel' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 new file mode 100644 index 000000000000..ac908df686cb --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 @@ -0,0 +1,94 @@ +function Invoke-CIPPStandardTeamsEnrollUser { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsEnrollUser + .SYNOPSIS + (Label) Default voice and face enrollment + .DESCRIPTION + (Helptext) Controls whether users with this policy can set the voice profile capture and enrollment through the Recognition tab in their Teams client settings. + (DocsDescription) Controls whether users with this policy can set the voice profile capture and enrollment through the Recognition tab in their Teams client settings. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Determines whether employees can enroll their voice and face profiles for recognition features in Teams, enabling personalized experiences like voice identification. This setting balances convenience features with privacy considerations and organizational policies regarding biometric data collection. + ADDEDCOMPONENT + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsEnrollUser.EnrollUserOverride","label":"Voice and Face Enrollment","options":[{"label":"Disabled","value":"Disabled"},{"label":"Enabled","value":"Enabled"}]} + IMPACT + Low Impact + ADDEDDATE + 2024-11-12 + POWERSHELLEQUIVALENT + Set-CsTeamsMeetingPolicy -Identity Global -EnrollUserOverride \$false + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsEnrollUser' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + # Get EnrollUserOverride value using null-coalescing operator + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + $enrollUserOverride = $Settings.EnrollUserOverride.value ?? $Settings.EnrollUserOverride + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -cmdParams @{Identity = 'Global' } | + Select-Object EnrollUserOverride + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsEnrollUser state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.EnrollUserOverride -eq $enrollUserOverride) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams Enroll User Override settings already set to $enrollUserOverride." -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + EnrollUserOverride = $enrollUserOverride + } + + try { + $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMeetingPolicy' -cmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Teams Enroll User Override setting to $enrollUserOverride." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Teams Enroll User Override setting to $enrollUserOverride." -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Enroll User Override settings is set correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Teams Enroll User Override settings is not set correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsEnrollUser' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Enroll User Override settings is not set correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsEnrollUser' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + EnrollUserOverride = $CurrentState.EnrollUserOverride + } + $ExpectedValue = @{ + EnrollUserOverride = $enrollUserOverride + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsEnrollUser' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 new file mode 100644 index 000000000000..3b09e9240683 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 @@ -0,0 +1,99 @@ +function Invoke-CIPPStandardTeamsExternalAccessPolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsExternalAccessPolicy + .SYNOPSIS + (Label) External Access Settings for Microsoft Teams + .DESCRIPTION + (Helptext) Sets the properties of the Global external access policy. + (DocsDescription) Sets the properties of the Global external access policy. External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services; 3) access Skype for Business Server over the Internet, without having to log on to your internal network; 4) communicate with users who have SIP accounts with a public instant messaging (IM) provider such as Skype; and, 5) communicate with people who are using Teams with an account that's not managed by an organization. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Defines the organization's policy for communicating with external users through Teams, including other organizations, Skype users, and unmanaged accounts. This fundamental setting determines the scope of external collaboration while maintaining security boundaries for business communications. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsExternalAccessPolicy.EnableFederationAccess","label":"Allow communication from trusted organizations"} + {"type":"switch","name":"standards.TeamsExternalAccessPolicy.EnableTeamsConsumerAccess","label":"Allow communication with unmanaged Teams accounts"} + IMPACT + Medium Impact + ADDEDDATE + 2024-07-30 + POWERSHELLEQUIVALENT + Set-CsExternalAccessPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsExternalAccessPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsExternalAccessPolicy' -CmdParams @{Identity = 'Global' } | + Select-Object * + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsExternalAccessPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $EnableFederationAccess = $Settings.EnableFederationAccess ?? $false + $EnableTeamsConsumerAccess = $Settings.EnableTeamsConsumerAccess ?? $false + + $StateIsCorrect = ($CurrentState.EnableFederationAccess -eq $EnableFederationAccess) -and + ($CurrentState.EnableTeamsConsumerAccess -eq $EnableTeamsConsumerAccess) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'External Access Policy already set.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + EnableFederationAccess = $EnableFederationAccess + EnableTeamsConsumerAccess = $EnableTeamsConsumerAccess + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsExternalAccessPolicy' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated External Access Policy' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set External Access Policy. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'External Access Policy is set correctly.' -sev Info + } else { + Write-StandardsAlert -message 'External Access Policy is not set correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsExternalAccessPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'External Access Policy is not set correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsExternalAccessPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + EnableFederationAccess = $CurrentState.EnableFederationAccess + EnableTeamsConsumerAccess = $CurrentState.EnableTeamsConsumerAccess + } + $ExpectedValue = @{ + EnableFederationAccess = $EnableFederationAccess + EnableTeamsConsumerAccess = $EnableTeamsConsumerAccess + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalAccessPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 new file mode 100644 index 000000000000..659a46c5d73a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 @@ -0,0 +1,94 @@ +function Invoke-CIPPStandardTeamsExternalChatWithAnyone { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsExternalChatWithAnyone + .SYNOPSIS + (Label) Set Teams chat with anyone setting + .DESCRIPTION + (Helptext) Controls whether users can start Teams chats with any email address, inviting external recipients as guests via email. + (DocsDescription) Manages the Teams messaging policy setting UseB2BInvitesToAddExternalUsers. When enabled, users can start chats with any email address and recipients receive an invitation to join the chat as guests. Disabling the setting prevents these external email chats from being created, keeping conversations limited to internal users and approved guests. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Allows organizations to decide if employees can launch Microsoft Teams chats with anyone on the internet using just an email address. Disabling the feature keeps conversations inside trusted boundaries and helps prevent accidental data exposure through unexpected external invitations. + ADDEDCOMPONENT + {"type":"radio","name":"standards.TeamsExternalChatWithAnyone.UseB2BInvitesToAddExternalUsers","label":"Allow chatting with anyone via email","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}],"defaultValue":"Disabled"} + IMPACT + Low Impact + ADDEDDATE + 2025-11-03 + POWERSHELLEQUIVALENT + Set-CsTeamsMessagingPolicy -Identity Global -UseB2BInvitesToAddExternalUsers \$false/\$true + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsExternalChatWithAnyone' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{ Identity = 'Global' } | Select-Object -Property Identity, UseB2BInvitesToAddExternalUsers + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the Teams external chat state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + # Set default to Disabled if not specified. Should not be possible without some serious misconfiguration via the API + $Settings.UseB2BInvitesToAddExternalUsers ??= $false + $DesiredState = [System.Convert]::ToBoolean($Settings.UseB2BInvitesToAddExternalUsers) + $StateIsCorrect = ($CurrentState.UseB2BInvitesToAddExternalUsers -eq $DesiredState) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams external chat with anyone setting already set to: $DesiredState" -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + UseB2BInvitesToAddExternalUsers = $DesiredState + } + + try { + $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingPolicy' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Teams external chat with anyone setting to UseB2BInvitesToAddExternalUsers: $DesiredState" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to configure Teams external chat with anyone setting. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams external chat setting is configured correctly as: $DesiredState" -sev Info + } else { + Write-StandardsAlert -message 'Teams external chat setting is not configured correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsExternalChatWithAnyone' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams external chat setting is not configured correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsExternalChatWithAnyone' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + UseB2BInvitesToAddExternalUsers = $CurrentState.UseB2BInvitesToAddExternalUsers + } + $ExpectedValue = @{ + UseB2BInvitesToAddExternalUsers = $DesiredState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalChatWithAnyone' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 new file mode 100644 index 000000000000..a24252704227 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 @@ -0,0 +1,113 @@ +function Invoke-CIPPStandardTeamsExternalFileSharing { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsExternalFileSharing + .SYNOPSIS + (Label) Define approved cloud storage services for external file sharing in Teams + .DESCRIPTION + (Helptext) Ensure external file sharing in Teams is enabled for only approved cloud storage services. + (DocsDescription) Ensure external file sharing in Teams is enabled for only approved cloud storage services. + .NOTES + CAT + Teams Standards + TAG + "CIS M365 5.0 (8.4.1)" + EXECUTIVETEXT + Controls which external cloud storage services (like Google Drive, Dropbox, Box) employees can access through Teams, ensuring file sharing occurs only through approved and secure platforms. This helps maintain data governance while supporting necessary business integrations. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsExternalFileSharing.AllowGoogleDrive","label":"Allow Google Drive"} + {"type":"switch","name":"standards.TeamsExternalFileSharing.AllowShareFile","label":"Allow ShareFile"} + {"type":"switch","name":"standards.TeamsExternalFileSharing.AllowBox","label":"Allow Box"} + {"type":"switch","name":"standards.TeamsExternalFileSharing.AllowDropBox","label":"Allow Dropbox"} + {"type":"switch","name":"standards.TeamsExternalFileSharing.AllowEgnyte","label":"Allow Egnyte"} + IMPACT + Low Impact + ADDEDDATE + 2024-07-28 + POWERSHELLEQUIVALENT + Set-CsTeamsClientConfiguration -AllowGoogleDrive \$false -AllowShareFile \$false -AllowBox \$false -AllowDropBox \$false -AllowEgnyte \$false + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsExternalFileSharing' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' | + Select-Object AllowGoogleDrive, AllowShareFile, AllowBox, AllowDropBox, AllowEgnyte + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsExternalFileSharing state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.AllowGoogleDrive -eq $Settings.AllowGoogleDrive ?? $false ) -and + ($CurrentState.AllowShareFile -eq $Settings.AllowShareFile ?? $false ) -and + ($CurrentState.AllowBox -eq $Settings.AllowBox ?? $false ) -and + ($CurrentState.AllowDropBox -eq $Settings.AllowDropBox ?? $false ) -and + ($CurrentState.AllowEgnyte -eq $Settings.AllowEgnyte ?? $false ) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams External File Sharing already set.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + AllowGoogleDrive = $Settings.AllowGoogleDrive + AllowShareFile = $Settings.AllowShareFile + AllowBox = $Settings.AllowBox + AllowDropBox = $Settings.AllowDropBox + AllowEgnyte = $Settings.AllowEgnyte + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsClientConfiguration' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams External File Sharing' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Teams External File Sharing. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams External File Sharing is set correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Teams External File Sharing is not set correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsExternalFileSharing' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams External File Sharing is not set correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsExternalFileSharing' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + AllowGoogleDrive = $CurrentState.AllowGoogleDrive + AllowShareFile = $CurrentState.AllowShareFile + AllowBox = $CurrentState.AllowBox + AllowDropBox = $CurrentState.AllowDropBox + AllowEgnyte = $CurrentState.AllowEgnyte + } + $ExpectedValue = @{ + AllowGoogleDrive = $Settings.AllowGoogleDrive + AllowShareFile = $Settings.AllowShareFile + AllowBox = $Settings.AllowBox + AllowDropBox = $Settings.AllowDropBox + AllowEgnyte = $Settings.AllowEgnyte + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalFileSharing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 new file mode 100644 index 000000000000..ee526b9037bb --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 @@ -0,0 +1,161 @@ +function Invoke-CIPPStandardTeamsFederationConfiguration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsFederationConfiguration + .SYNOPSIS + (Label) Federation Configuration for Microsoft Teams + .DESCRIPTION + (Helptext) Sets the properties of the Global federation configuration. + (DocsDescription) Sets the properties of the Global federation configuration. Federation configuration settings determine whether or not your users can communicate with users who have SIP accounts with a federated organization. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Configures how the organization federates with external organizations for Teams communication, controlling whether employees can communicate with specific external domains or all external organizations. This setting enables secure inter-organizational collaboration while maintaining control over external communications. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsFederationConfiguration.AllowTeamsConsumer","label":"Allow users to communicate with other organizations"} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsFederationConfiguration.DomainControl","label":"Communication Mode","options":[{"label":"Allow all external domains","value":"AllowAllExternal"},{"label":"Block all external domains","value":"BlockAllExternal"},{"label":"Allow specific external domains","value":"AllowSpecificExternal"},{"label":"Block specific external domains","value":"BlockSpecificExternal"}]} + {"type":"textField","name":"standards.TeamsFederationConfiguration.DomainList","label":"Domains, Comma separated","required":false} + IMPACT + Medium Impact + ADDEDDATE + 2024-07-31 + POWERSHELLEQUIVALENT + Set-CsTenantFederationConfiguration + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsFederationConfiguration' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1','Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTenantFederationConfiguration' -CmdParams @{Identity = 'Global' } | + Select-Object * + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsFederationConfiguration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $AllowAllKnownDomains = New-CsEdgeAllowAllKnownDomains + $DomainControl = $Settings.DomainControl.value ?? $Settings.DomainControl + $AllowedDomainsAsAList = @() + switch ($DomainControl) { + 'AllowAllExternal' { + $AllowFederatedUsers = $true + $AllowedDomains = $AllowAllKnownDomains + $BlockedDomains = @() + } + 'BlockAllExternal' { + $AllowFederatedUsers = $false + $AllowedDomains = $AllowAllKnownDomains + $BlockedDomains = @() + } + 'AllowSpecificExternal' { + $AllowFederatedUsers = $true + $BlockedDomains = @() + if ($null -ne $Settings.DomainList) { + $AllowedDomainsAsAList = @($Settings.DomainList).Split(',').Trim() + } else { + $AllowedDomainsAsAList = @() + } + } + 'BlockSpecificExternal' { + $AllowFederatedUsers = $true + $AllowedDomainsAsAList = 'AllowAllKnownDomains' + if ($null -ne $Settings.DomainList) { + $BlockedDomains = @($Settings.DomainList).Split(',').Trim() + } else { + $BlockedDomains = @() + } + } + default { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Federation Configuration: Invalid $DomainControl parameter" -sev Error + return + } + } + + $CurrentAllowedDomains = $CurrentState.AllowedDomains + if ($CurrentAllowedDomains.GetType().Name -eq 'PSObject') { + $CurrentAllowedDomains = $CurrentAllowedDomains.Domain | Sort-Object + $DomainList = ($CurrentAllowedDomains | Sort-Object) ?? @() + $AllowedDomainsMatches = -not (Compare-Object -ReferenceObject $AllowedDomainsAsAList -DifferenceObject $DomainList) + } elseif ($CurrentAllowedDomains.GetType().Name -eq 'Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains') { + $CurrentAllowedDomains = $CurrentAllowedDomains.ToString() + $AllowedDomainsMatches = $CurrentAllowedDomains -eq $AllowedDomains.ToString() + } + + $BlockedDomainsMatches = -not (Compare-Object -ReferenceObject $BlockedDomains -DifferenceObject $CurrentState.BlockedDomains) + + $StateIsCorrect = ($CurrentState.AllowTeamsConsumer -eq $Settings.AllowTeamsConsumer) -and + ($CurrentState.AllowFederatedUsers -eq $AllowFederatedUsers) -and + $AllowedDomainsMatches -and + $BlockedDomainsMatches + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Federation Configuration already set.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + AllowTeamsConsumer = $Settings.AllowTeamsConsumer + AllowFederatedUsers = $AllowFederatedUsers + BlockedDomains = $BlockedDomains + } + + if (!$AllowedDomainsAsAList) { + $cmdParams.AllowedDomains = $AllowedDomains + } else { + $cmdParams.AllowedDomainsAsAList = $AllowedDomainsAsAList + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTenantFederationConfiguration' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Federation Configuration Policy' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Federation Configuration Policy. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Federation Configuration is set correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Federation Configuration is not set correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsFederationConfiguration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Federation Configuration is not set correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'FederationConfiguration' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + AllowTeamsConsumer = $CurrentState.AllowTeamsConsumer + AllowFederatedUsers = $CurrentState.AllowFederatedUsers + AllowedDomains = if ($CurrentAllowedDomains.GetType().Name -eq 'Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains') { $CurrentAllowedDomains.ToString() } else { $CurrentAllowedDomains } + BlockedDomains = $CurrentState.BlockedDomains + } + $ExpectedValue = @{ + AllowTeamsConsumer = $Settings.AllowTeamsConsumer + AllowFederatedUsers = $AllowFederatedUsers + AllowedDomains = $AllowedDomains + BlockedDomains = $BlockedDomains + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsFederationConfiguration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 new file mode 100644 index 000000000000..163e626da422 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 @@ -0,0 +1,131 @@ +function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsGlobalMeetingPolicy + .SYNOPSIS + (Label) Define Global Meeting Policy for Teams + .DESCRIPTION + (Helptext) Defines the CIS recommended global meeting policy for Teams. This includes AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl + (DocsDescription) Defines the CIS recommended global meeting policy for Teams. This includes AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl + .NOTES + CAT + Teams Standards + TAG + "CIS M365 5.0 (8.5.1)" + "CIS M365 5.0 (8.5.2)" + "CIS M365 5.0 (8.5.3)" + "CIS M365 5.0 (8.5.4)" + "CIS M365 5.0 (8.5.5)" + "CIS M365 5.0 (8.5.6)" + EXECUTIVETEXT + Establishes security-focused default settings for Teams meetings, controlling who can join meetings, present content, and participate in chats. These policies balance collaboration needs with security requirements, ensuring meetings remain productive while protecting against unauthorized access and disruption. + ADDEDCOMPONENT + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode","label":"Default value of the `Who can present?`","options":[{"label":"Everyone","value":"EveryoneUserOverride"},{"label":"People in my organization","value":"EveryoneInCompanyUserOverride"},{"label":"People in my organization and trusted organizations","value":"EveryoneInSameAndFederatedCompanyUserOverride"},{"label":"Only organizer","value":"OrganizerOnlyUserOverride"}]} + {"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowAnonymousUsersToJoinMeeting","label":"Allow anonymous users to join meeting"} + {"type":"autoComplete","required":false,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.AutoAdmittedUsers","label":"Who can bypass the lobby?","helperText":"If left blank, the current value will not be changed.","options":[{"label":"Only organizers and co-organizers","value":"OrganizerOnly"},{"label":"People in organization excluding guests","value":"EveryoneInCompanyExcludingGuests"},{"label":"People who were invited","value":"InvitedUsers"}]} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.MeetingChatEnabledType","label":"Meeting chat policy","options":[{"label":"On for everyone","value":"Enabled"},{"label":"On for everyone but anonymous users","value":"EnabledExceptAnonymous"},{"label":"Off for everyone","value":"Disabled"}]} + {"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowExternalParticipantGiveRequestControl","label":"External participants can give or request control"} + IMPACT + Low Impact + ADDEDDATE + 2024-11-12 + POWERSHELLEQUIVALENT + Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting \$false -AllowAnonymousUsersToStartMeeting \$false -AutoAdmittedUsers \$AutoAdmittedUsers -AllowPSTNUsersToBypassLobby \$false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode \$DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl \$false + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGlobalMeetingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | + Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsGlobalMeetingPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $MeetingChatEnabledType = $Settings.MeetingChatEnabledType.value ?? $Settings.MeetingChatEnabledType + $DesignatedPresenterRoleMode = $Settings.DesignatedPresenterRoleMode.value ?? $Settings.DesignatedPresenterRoleMode + $AutoAdmittedUsers = $Settings.AutoAdmittedUsers.value ?? $Settings.AutoAdmittedUsers ?? $CurrentState.AutoAdmittedUsers # Default to current state if not set, for backward compatibility pre v8.6.0 + + $StateIsCorrect = ($CurrentState.AllowAnonymousUsersToJoinMeeting -eq $Settings.AllowAnonymousUsersToJoinMeeting) -and + ($CurrentState.AllowAnonymousUsersToStartMeeting -eq $false) -and + ($CurrentState.AutoAdmittedUsers -eq $AutoAdmittedUsers) -and + ($CurrentState.AllowPSTNUsersToBypassLobby -eq $false) -and + ($CurrentState.MeetingChatEnabledType -eq $MeetingChatEnabledType) -and + ($CurrentState.DesignatedPresenterRoleMode -eq $DesignatedPresenterRoleMode) -and + ($CurrentState.AllowExternalParticipantGiveRequestControl -eq $Settings.AllowExternalParticipantGiveRequestControl) + + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Global Policy already set.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToStartMeeting = $false + AutoAdmittedUsers = $AutoAdmittedUsers + AllowPSTNUsersToBypassLobby = $false + MeetingChatEnabledType = $MeetingChatEnabledType + DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode + AllowExternalParticipantGiveRequestControl = $Settings.AllowExternalParticipantGiveRequestControl + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMeetingPolicy' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams Global Policy' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Teams Global Policy. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Global Policy is set correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Teams Global Policy is not set correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsGlobalMeetingPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Global Policy is not set correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + + $CurrentValue = @{ + AllowAnonymousUsersToJoinMeeting = $CurrentState.AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToStartMeeting = $CurrentState.AllowAnonymousUsersToStartMeeting + AutoAdmittedUsers = $CurrentState.AutoAdmittedUsers + AllowPSTNUsersToBypassLobby = $CurrentState.AllowPSTNUsersToBypassLobby + MeetingChatEnabledType = $CurrentState.MeetingChatEnabledType + DesignatedPresenterRoleMode = $CurrentState.DesignatedPresenterRoleMode + AllowExternalParticipantGiveRequestControl = $CurrentState.AllowExternalParticipantGiveRequestControl + } + $ExpectedValue = @{ + AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToStartMeeting = $false + AutoAdmittedUsers = $AutoAdmittedUsers + AllowPSTNUsersToBypassLobby = $false + MeetingChatEnabledType = $MeetingChatEnabledType + DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode + AllowExternalParticipantGiveRequestControl = $Settings.AllowExternalParticipantGiveRequestControl + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsGlobalMeetingPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'TeamsGlobalMeetingPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 new file mode 100644 index 000000000000..3c5c3d6336f9 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 @@ -0,0 +1,93 @@ +function Invoke-CIPPStandardTeamsGuestAccess { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsGuestAccess + .SYNOPSIS + (Label) Allow guest users in Teams + .DESCRIPTION + (Helptext) Allow guest users access to teams. + (DocsDescription) Allow guest users access to teams. Guest users are users who are not part of your organization but have been invited to collaborate with your organization in Teams. This setting allows you to control whether guest users can access Teams. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Determines whether external partners, vendors, and collaborators can be invited to participate in Teams conversations and meetings. This fundamental setting enables external collaboration while requiring careful management to balance openness with security and information protection. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsGuestAccess.AllowGuestUser","label":"Allow guest users"} + IMPACT + Low Impact + ADDEDDATE + 2025-06-03 + POWERSHELLEQUIVALENT + Set-CsTeamsClientConfiguration -AllowGuestUser \$true + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGuestAccess' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | + Select-Object AllowGuestUser + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsGuestAccess state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $AllowGuestUser = $Settings.AllowGuestUser ?? $false + + $StateIsCorrect = ($CurrentState.AllowGuestUser -eq $AllowGuestUser) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Guest Access already set.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + AllowGuestUser = $AllowGuestUser + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsClientConfiguration' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams Guest Access settings' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Teams Guest Access settings. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Guest Access settings is set correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Teams Guest Access settings is not set correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsGuestAccess' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Guest Access settings is not set correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + AllowGuestUser = $CurrentState.AllowGuestUser + } + $ExpectedValue = @{ + AllowGuestUser = $AllowGuestUser + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsGuestAccess' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'TeamsGuestAccess' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 new file mode 100644 index 000000000000..9004c3de2b30 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 @@ -0,0 +1,99 @@ +function Invoke-CIPPStandardTeamsMeetingRecordingExpiration { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsMeetingRecordingExpiration + .SYNOPSIS + (Label) Set Teams Meeting Recording Expiration + .DESCRIPTION + (Helptext) Sets the default number of days after which Teams meeting recordings automatically expire. Valid values are -1 (Never Expire) or between 1 and 99999. The default value is 120 days. + (DocsDescription) Allows administrators to configure a default expiration period (in days) for Teams meeting recordings. Recordings older than this period will be automatically moved to the recycle bin. This setting helps manage storage consumption and enforce data retention policies. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Automatically removes old Teams meeting recordings after a specified period to manage storage costs and comply with data retention policies. This helps organizations balance the need to preserve important meeting content with storage efficiency and regulatory compliance requirements. + ADDEDCOMPONENT + {"type":"number","name":"standards.TeamsMeetingRecordingExpiration.ExpirationDays","label":"Recording Expiration Days (e.g., 365)","required":true} + IMPACT + Medium Impact + ADDEDDATE + 2025-04-17 + POWERSHELLEQUIVALENT + Set-CsTeamsMeetingPolicy -Identity Global -MeetingRecordingExpirationDays \ + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMeetingRecordingExpiration' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + # Input validation + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + $ExpirationDays = try { [int64]$Settings.ExpirationDays } catch { Write-Warning "Invalid ExpirationDays value provided: $($Settings.ExpirationDays)"; return } + if (($ExpirationDays -ne -1) -and ($ExpirationDays -lt 1 -or $ExpirationDays -gt 99999)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Invalid ExpirationDays value: $ExpirationDays. Must be -1 (Never Expire) or between 1 and 99999." -sev Error + return + } + + try { + $CurrentExpirationDays = (New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' }).NewMeetingRecordingExpirationDays + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsMeetingRecordingExpiration state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = if ($CurrentExpirationDays -eq $ExpirationDays) { $true } else { $false } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams Meeting Recording Expiration Policy already set to $ExpirationDays days." -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + NewMeetingRecordingExpirationDays = $ExpirationDays + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMeetingPolicy' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Teams Meeting Recording Expiration Policy to $ExpirationDays days." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Teams Meeting Recording Expiration Policy. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams Meeting Recording Expiration Policy is set correctly ($($CurrentExpirationDays) days)." -sev Info + } else { + Write-StandardsAlert -message "Teams Meeting Recording Expiration Policy is not set correctly. Current: $CurrentExpirationDays days, Desired: $ExpirationDays days." -object $CurrentExpirationDays -tenant $Tenant -standardName 'TeamsMeetingRecordingExpiration' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams Meeting Recording Expiration Policy is not set correctly (Current: $CurrentExpirationDays, Desired: $ExpirationDays)." -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsMeetingRecordingExpiration' -FieldValue $CurrentExpirationDays -StoreAs string -Tenant $Tenant + + $CurrentExpirationDays = if ($StateIsCorrect) { $true } else { $CurrentExpirationDays } + $CurrentValue = @{ + MeetingRecordingExpirationDays = $CurrentExpirationDays + } + $ExpectedValue = @{ + MeetingRecordingExpirationDays = $ExpirationDays + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingRecordingExpiration' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 new file mode 100644 index 000000000000..119e3a0af58a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 @@ -0,0 +1,92 @@ +function Invoke-CIPPStandardTeamsMeetingVerification { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsMeetingVerification + .SYNOPSIS + (Label) Teams Meeting Verification (CAPTCHA) + .DESCRIPTION + (Helptext) Configures CAPTCHA verification for external users joining Teams meetings. This helps prevent unauthorized AI notetakers and bots from joining meetings. + (DocsDescription) Configures CAPTCHA verification for external users joining Teams meetings. This security feature requires external participants to complete a CAPTCHA challenge before joining, which helps prevent unauthorized AI notetakers, bots, and other automated systems from accessing meetings. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Requires external meeting participants to complete verification challenges before joining Teams meetings, preventing automated bots and unauthorized AI systems from accessing confidential discussions. This security measure protects against meeting infiltration while maintaining legitimate external collaboration. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"CAPTCHA Verification Setting","name":"standards.TeamsMeetingVerification.CaptchaVerificationForMeetingJoin","options":[{"label":"Not Required","value":"NotRequired"},{"label":"Anonymous Users and Untrusted Organizations","value":"AnonymousUsersAndUntrustedOrganizations"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-06-14 + POWERSHELLEQUIVALENT + Set-CsTeamsMeetingPolicy -CaptchaVerificationForMeetingJoin + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMeetingVerification' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | + Select-Object CaptchaVerificationForMeetingJoin + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsMeetingVerification state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CaptchaVerificationForMeetingJoin = $Settings.CaptchaVerificationForMeetingJoin.value ?? $Settings.CaptchaVerificationForMeetingJoin + $StateIsCorrect = ($CurrentState.CaptchaVerificationForMeetingJoin -eq $CaptchaVerificationForMeetingJoin) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Meeting Verification Policy already set.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + CaptchaVerificationForMeetingJoin = $CaptchaVerificationForMeetingJoin + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMeetingPolicy' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams Meeting Verification Policy' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Teams Meeting Verification Policy. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Meeting Verification Policy is set correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Teams Meeting Verification Policy is not set correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsMeetingVerification' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Teams Meeting Verification Policy is not set correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentState = @{ + CaptchaVerificationForMeetingJoin = $CurrentState.CaptchaVerificationForMeetingJoin + } + $ExpectedState = @{ + CaptchaVerificationForMeetingJoin = $CaptchaVerificationForMeetingJoin + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingVerification' -CurrentValue $CurrentState -ExpectedValue $ExpectedState -Tenant $Tenant + Add-CIPPBPAField -FieldName 'TeamsMeetingVerification' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 new file mode 100644 index 000000000000..38cb28d5efae --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 @@ -0,0 +1,99 @@ +function Invoke-CIPPStandardTeamsMeetingsByDefault { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsMeetingsByDefault + .SYNOPSIS + (Label) Set Teams Meetings by default state + .DESCRIPTION + (Helptext) Sets the default state for automatically turning meetings into Teams meetings for the tenant. This can be overridden by the user in Outlook. + (DocsDescription) Sets the default state for automatically turning meetings into Teams meetings for the tenant. This can be overridden by the user in Outlook. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Automatically adds Microsoft Teams meeting links to calendar invitations by default, streamlining the process of creating virtual meetings. This improves collaboration efficiency and ensures consistent meeting experiences across the organization, though users can override this setting when needed. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.TeamsMeetingsByDefault.state","options":[{"label":"Enabled","value":"true"},{"label":"Disabled","value":"false"}]} + IMPACT + Low Impact + ADDEDDATE + 2024-05-31 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -OnlineMeetingsByDefaultEnabled + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMeetingsByDefault' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Get state value using null-coalescing operator + $state = $Settings.state.value ?? $Settings.state + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').OnlineMeetingsByDefaultEnabled + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsMeetingsByDefault state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $WantedState = if ($state -eq 'true') { $true } else { $false } + $StateIsCorrect = if ($CurrentState -eq $WantedState) { $true } else { $false } + + # Input validation + if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'TeamsMeetingsByDefault: Invalid state parameter set' -sev Error + return + } + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate' + if ($StateIsCorrect -eq $false) { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ OnlineMeetingsByDefaultEnabled = $WantedState } -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set the tenant TeamsMeetingsByDefault state to $state" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set the tenant TeamsMeetingsByDefault state to $state. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant TeamsMeetingsByDefault state is already set correctly to $state" -sev Info + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant TeamsMeetingsByDefault is set correctly to $state" -sev Info + } else { + Write-StandardsAlert -message "The tenant TeamsMeetingsByDefault is not set correctly to $state" -object @{CurrentState = $CurrentState; WantedState = $WantedState } -tenant $Tenant -standardName 'TeamsMeetingsByDefault' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The tenant TeamsMeetingsByDefault is not set correctly to $state" -sev Info + } + } + + if ($Settings.report -eq $true) { + # Default is not set, not set means it's enabled + if ($null -eq $CurrentState ) { $CurrentState = $true } + Add-CIPPBPAField -FieldName 'TeamsMeetingsByDefault' -FieldValue $CurrentState -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + OnlineMeetingsByDefaultEnabled = $CurrentState + } + $ExpectedValue = @{ + OnlineMeetingsByDefaultEnabled = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMeetingsByDefault' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 new file mode 100644 index 000000000000..d2c938e26366 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 @@ -0,0 +1,141 @@ +function Invoke-CIPPStandardTeamsMessagingPolicy { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsMessagingPolicy + .SYNOPSIS + (Label) Global Messaging Policy for Microsoft Teams + .DESCRIPTION + (Helptext) Sets the properties of the Global messaging policy. + (DocsDescription) Sets the properties of the Global messaging policy. Messaging policies control which chat and channel messaging features are available to users in Teams. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Defines what messaging capabilities employees have in Teams, including the ability to edit or delete messages, create custom emojis, and report inappropriate content. These policies help maintain professional communication standards while enabling necessary collaboration features. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsMessagingPolicy.AllowOwnerDeleteMessage","label":"Allow Owner to Delete Messages","defaultValue":false} + {"type":"switch","name":"standards.TeamsMessagingPolicy.AllowUserDeleteMessage","label":"Allow User to Delete Messages","defaultValue":true} + {"type":"switch","name":"standards.TeamsMessagingPolicy.AllowUserEditMessage","label":"Allow User to Edit Messages","defaultValue":true} + {"type":"switch","name":"standards.TeamsMessagingPolicy.AllowUserDeleteChat","label":"Allow User to Delete Chats","defaultValue":true} + {"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsMessagingPolicy.ReadReceiptsEnabledType","label":"Read Receipts Enabled Type","options":[{"label":"User controlled","value":"UserPreference"},{"label":"Turned on for everyone","value":"Everyone"},{"label":"Turned off for everyone","value":"None"}]} + {"type":"switch","name":"standards.TeamsMessagingPolicy.CreateCustomEmojis","label":"Allow Creating Custom Emojis","defaultValue":true} + {"type":"switch","name":"standards.TeamsMessagingPolicy.DeleteCustomEmojis","label":"Allow Deleting Custom Emojis","defaultValue":false} + {"type":"switch","name":"standards.TeamsMessagingPolicy.AllowSecurityEndUserReporting","label":"Allow reporting message as security concern","defaultValue":true} + {"type":"switch","name":"standards.TeamsMessagingPolicy.AllowCommunicationComplianceEndUserReporting","label":"Allow reporting message as inappropriate content","defaultValue":true} + IMPACT + Medium Impact + ADDEDDATE + 2025-01-10 + POWERSHELLEQUIVALENT + Set-CsTeamsMessagingPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMessagingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{Identity = 'Global' } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsMessagingPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($null -eq $Settings.AllowOwnerDeleteMessage) { $Settings.AllowOwnerDeleteMessage = $CurrentState.AllowOwnerDeleteMessage } + if ($null -eq $Settings.AllowUserDeleteMessage) { $Settings.AllowUserDeleteMessage = $CurrentState.AllowUserDeleteMessage } + if ($null -eq $Settings.AllowUserEditMessage) { $Settings.AllowUserEditMessage = $CurrentState.AllowUserEditMessage } + if ($null -eq $Settings.AllowUserDeleteChat) { $Settings.AllowUserDeleteChat = $CurrentState.AllowUserDeleteChat } + if ($null -eq $Settings.CreateCustomEmojis) { $Settings.CreateCustomEmojis = $CurrentState.CreateCustomEmojis } + if ($null -eq $Settings.DeleteCustomEmojis) { $Settings.DeleteCustomEmojis = $CurrentState.DeleteCustomEmojis } + if ($null -eq $Settings.AllowSecurityEndUserReporting) { $Settings.AllowSecurityEndUserReporting = $CurrentState.AllowSecurityEndUserReporting } + if ($null -eq $Settings.AllowCommunicationComplianceEndUserReporting) { $Settings.AllowCommunicationComplianceEndUserReporting = $CurrentState.AllowCommunicationComplianceEndUserReporting } + + $ReadReceiptsEnabledType = $Settings.ReadReceiptsEnabledType.value ?? $Settings.ReadReceiptsEnabledType + + $StateIsCorrect = ($CurrentState.AllowOwnerDeleteMessage -eq $Settings.AllowOwnerDeleteMessage) -and + ($CurrentState.AllowUserDeleteMessage -eq $Settings.AllowUserDeleteMessage) -and + ($CurrentState.AllowUserEditMessage -eq $Settings.AllowUserEditMessage) -and + ($CurrentState.AllowUserDeleteChat -eq $Settings.AllowUserDeleteChat) -and + ($CurrentState.ReadReceiptsEnabledType -eq $ReadReceiptsEnabledType) -and + ($CurrentState.CreateCustomEmojis -eq $Settings.CreateCustomEmojis) -and + ($CurrentState.DeleteCustomEmojis -eq $Settings.DeleteCustomEmojis) -and + ($CurrentState.AllowSecurityEndUserReporting -eq $Settings.AllowSecurityEndUserReporting) -and + ($CurrentState.AllowCommunicationComplianceEndUserReporting -eq $Settings.AllowCommunicationComplianceEndUserReporting) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Global Teams Messaging policy already configured.' -sev Info + } else { + $cmdParams = @{ + Identity = 'Global' + AllowOwnerDeleteMessage = $Settings.AllowOwnerDeleteMessage + AllowUserDeleteMessage = $Settings.AllowUserDeleteMessage + AllowUserEditMessage = $Settings.AllowUserEditMessage + AllowUserDeleteChat = $Settings.AllowUserDeleteChat + ReadReceiptsEnabledType = $ReadReceiptsEnabledType + CreateCustomEmojis = $Settings.CreateCustomEmojis + DeleteCustomEmojis = $Settings.DeleteCustomEmojis + AllowSecurityEndUserReporting = $Settings.AllowSecurityEndUserReporting + AllowCommunicationComplianceEndUserReporting = $Settings.AllowCommunicationComplianceEndUserReporting + } + + try { + New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingPolicy' -CmdParams $cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated global Teams messaging policy' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Failed to configure global Teams messaging policy.' -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Global Teams messaging policy is configured correctly.' -sev Info + } else { + Write-StandardsAlert -message 'Global Teams messaging policy is not configured correctly.' -object $CurrentState -tenant $Tenant -standardName 'TeamsMessagingPolicy' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Global Teams messaging policy is not configured correctly.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TeamsMessagingPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + + $CurrentValue = @{ + AllowOwnerDeleteMessage = $CurrentState.AllowOwnerDeleteMessage + AllowUserDeleteMessage = $CurrentState.AllowUserDeleteMessage + AllowUserEditMessage = $CurrentState.AllowUserEditMessage + AllowUserDeleteChat = $CurrentState.AllowUserDeleteChat + ReadReceiptsEnabledType = $CurrentState.ReadReceiptsEnabledType + CreateCustomEmojis = $CurrentState.CreateCustomEmojis + DeleteCustomEmojis = $CurrentState.DeleteCustomEmojis + AllowSecurityEndUserReporting = $CurrentState.AllowSecurityEndUserReporting + AllowCommunicationComplianceEndUserReporting = $CurrentState.AllowCommunicationComplianceEndUserReporting + } + $ExpectedValue = @{ + AllowOwnerDeleteMessage = $Settings.AllowOwnerDeleteMessage + AllowUserDeleteMessage = $Settings.AllowUserDeleteMessage + AllowUserEditMessage = $Settings.AllowUserEditMessage + AllowUserDeleteChat = $Settings.AllowUserDeleteChat + ReadReceiptsEnabledType = $ReadReceiptsEnabledType + CreateCustomEmojis = $Settings.CreateCustomEmojis + DeleteCustomEmojis = $Settings.DeleteCustomEmojis + AllowSecurityEndUserReporting = $Settings.AllowSecurityEndUserReporting + AllowCommunicationComplianceEndUserReporting = $Settings.AllowCommunicationComplianceEndUserReporting + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsMessagingPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 new file mode 100644 index 000000000000..265ff6116e17 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 @@ -0,0 +1,91 @@ +function Invoke-CIPPStandardTenantDefaultTimezone { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TenantDefaultTimezone + .SYNOPSIS + (Label) Set Default Timezone for Tenant + .DESCRIPTION + (Helptext) Sets the default timezone for the tenant. This will be used for all new users and sites. + (DocsDescription) Sets the default timezone for the tenant. This will be used for all new users and sites. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Standardizes the timezone setting across all SharePoint sites and new user accounts, ensuring consistent scheduling and time-based operations throughout the organization. This improves collaboration efficiency and reduces confusion in global or multi-timezone organizations. + ADDEDCOMPONENT + {"type":"TimezoneSelect","name":"standards.TenantDefaultTimezone.Timezone","label":"Timezone"} + IMPACT + Low Impact + ADDEDDATE + 2024-04-20 + POWERSHELLEQUIVALENT + Update-MgBetaAdminSharePointSetting + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TenantDefaultTimezone' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TenantDefaultTimezone state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $ExpectedTimezone = $Settings.Timezone.value + $StateIsCorrect = $CurrentState.tenantDefaultTimezone -eq $ExpectedTimezone + + # Input validation + if (([string]::IsNullOrWhiteSpace($Settings.Timezone) -or $Settings.Timezone -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'TenantDefaultTimezone: Invalid Timezone parameter set' -sev Error + return + } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Tenant Default Timezone is already set to $ExpectedTimezone" -sev Info + } else { + try { + New-GraphPostRequest -tenantid $Tenant -uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type PATCH -Body "{`"tenantDefaultTimezone`": `"$ExpectedTimezone`"}" -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Tenant Default Timezone to $ExpectedTimezone" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set Tenant Default Timezone. Error: $ErrorMessage" -sev Error + } + } + + } + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Tenant Default Timezone is set to $ExpectedTimezone." -sev Info + } else { + Write-StandardsAlert -message 'Tenant Default Timezone is not set to the desired value.' -object $CurrentState -tenant $Tenant -standardName 'TenantDefaultTimezone' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Tenant Default Timezone is not set to the desired value.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'TenantDefaultTimezone' -FieldValue $CurrentState.tenantDefaultTimezone -StoreAs string -Tenant $Tenant + $CurrentValue = @{ + tenantDefaultTimezone = $CurrentState.tenantDefaultTimezone + } + $ExpectedValue = @{ + tenantDefaultTimezone = $ExpectedTimezone + } + Set-CIPPStandardsCompareField -FieldName 'standards.TenantDefaultTimezone' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 new file mode 100644 index 000000000000..9e645e6597cd --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 @@ -0,0 +1,92 @@ +function Invoke-CIPPStandardTransportRuleTemplate { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TransportRuleTemplate + .SYNOPSIS + (Label) Transport Rule Template + .DESCRIPTION + (Helptext) Deploy transport rules to manage email flow. + (DocsDescription) Deploy transport rules to manage email flow. + .NOTES + CAT + Templates + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + IMPACT + Medium Impact + ADDEDDATE + 2023-12-30 + EXECUTIVETEXT + Deploys standardized email flow rules that automatically manage how emails are processed, filtered, and routed within the organization. These templates ensure consistent email security policies, compliance requirements, and business rules are applied across all email communications. + ADDEDCOMPONENT + {"type":"autoComplete","name":"transportRuleTemplate","label":"Select Transport Rule Template","api":{"url":"/api/ListTransportRulesTemplates","labelField":"name","valueField":"GUID","queryKey":"ListTransportRulesTemplates"}} + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TransportRuleTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + $existingRules = New-ExoRequest -ErrorAction SilentlyContinue -tenantid $Tenant -cmdlet 'Get-TransportRule' -useSystemMailbox $true + if ($Settings.remediate -eq $true) { + Write-Host "Settings: $($Settings | ConvertTo-Json)" + $Settings.transportRuleTemplate ? ($Settings | Add-Member -NotePropertyName 'TemplateList' -NotePropertyValue $Settings.transportRuleTemplate) : $null + foreach ($Template in $Settings.TemplateList) { + Write-Host "working on $($Template.value)" + $Table = Get-CippTable -tablename 'templates' + $Filter = "PartitionKey eq 'TransportTemplate' and RowKey eq '$($Template.value)'" + $RequestParams = (Get-AzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json + $Existing = $existingRules | Where-Object -Property Identity -EQ $RequestParams.name + + try { + if ($Existing) { + Write-Host 'Found existing' + if ($Settings.overwrite) { + $RequestParams | Add-Member -NotePropertyValue $RequestParams.name -NotePropertyName Identity + $GraphRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty GUID, Comments, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications, UseLegacyRegex) -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully set transport rule for $tenant" -sev 'Info' + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Skipping transport rule for $tenant as it already exists" -sev 'Info' + } + } else { + Write-Host 'Creating new' + $GraphRequest = New-ExoRequest -tenantid $Tenant -cmdlet 'New-TransportRule' -cmdParams ($RequestParams | Select-Object -Property * -ExcludeProperty GUID, Comments, HasSenderOverride, ExceptIfHasSenderOverride, ExceptIfMessageContainsDataClassifications, MessageContainsDataClassifications, UseLegacyRegex) -useSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $tenant -message "Successfully created transport rule for $tenant" -sev 'Info' + } + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created transport rule for $($tenantFilter)" -sev 'Debug' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Could not create transport rule for $($tenantFilter): $ErrorMessage" -sev 'Error' + } + } + } + if ($Settings.report -eq $true) { + $rules = $Settings.transportRuleTemplate.JSON | ConvertFrom-Json -Depth 10 + $MissingRules = foreach ($rule in $rules) { + $CheckExististing = $existingRules | Where-Object -Property identity -EQ $rule.displayname + if (!$CheckExististing) { + $rule.displayname + } + } + + $CurrentValue = @{ + DeployedTransportRules = $existingRules.DisplayName | Where-Object { $rules.displayname -contains $_ } | Sort-Object + MissingTransportRules = $MissingRules + } + $ExpectedValue = @{ + DeployedTransportRules = $rules.displayname | Sort-Object + MissingTransportRules = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.TransportRuleTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 new file mode 100644 index 000000000000..3368eaa5be6c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 @@ -0,0 +1,97 @@ +function Invoke-CIPPStandardTwoClickEmailProtection { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TwoClickEmailProtection + .SYNOPSIS + (Label) Set two-click confirmation for encrypted emails in New Outlook + .DESCRIPTION + (Helptext) Configures the two-click confirmation requirement for viewing encrypted/protected emails in OWA and new Outlook. When enabled, users must click "View message" before accessing protected content, providing an additional layer of privacy protection. + (DocsDescription) Configures the TwoClickMailPreviewEnabled setting in Exchange Online organization configuration. This security feature requires users to click "View message" before accessing encrypted or protected emails in Outlook on the web (OWA) and new Outlook for Windows. This provides additional privacy protection by preventing protected content from automatically displaying, giving users time to ensure their screen is not visible to others before viewing sensitive content. The feature helps protect against shoulder surfing and accidental disclosure of confidential information. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Requires employees to click twice before viewing encrypted or sensitive emails, preventing accidental exposure of confidential information when screens might be visible to others. This privacy protection helps prevent shoulder surfing and ensures employees are intentional about viewing sensitive content. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select value","name":"standards.TwoClickEmailProtection.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + IMPACT + Low Impact + ADDEDDATE + 2025-06-13 + POWERSHELLEQUIVALENT + Set-OrganizationConfig -TwoClickMailPreviewEnabled \$true \| \$false + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'TwoClickEmailProtection' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Get state value using null-coalescing operator + $State = $Settings.state.value ?? $Settings.state + + # Input validation + if ([string]::IsNullOrWhiteSpace($State)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'TwoClickEmailProtection: Invalid state parameter set' -sev Error + return + } + + try { + $CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').TwoClickMailPreviewEnabled + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not get current two-click email protection state. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + return + } + + $WantedState = $State -eq 'enabled' ? $true : $false + $StateIsCorrect = $CurrentState -eq $WantedState ? $true : $false + + if ($Settings.remediate -eq $true) { + Write-Host 'Time to remediate two-click email protection' + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Two-click email protection is already set to $State." -sev Info + } else { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-OrganizationConfig' -cmdParams @{ TwoClickMailPreviewEnabled = $WantedState } -useSystemMailbox $true + $StateIsCorrect = -not $StateIsCorrect # Toggle the state to reflect the change + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set two-click email protection to $State." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set two-click email protection to $State. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Two-click email protection is correctly set to $State." -sev Info + } else { + Write-StandardsAlert -message "Two-click email protection is not correctly set to $State, but instead $($CurrentState ? 'enabled' : 'disabled')" -object @{TwoClickMailPreviewEnabled = $CurrentState } -tenant $Tenant -standardName 'TwoClickEmailProtection' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Two-click email protection is not correctly set to $State, but instead $($CurrentState ? 'enabled' : 'disabled')" -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + TwoClickMailPreviewEnabled = $CurrentState + } + $ExpectedValue = @{ + TwoClickMailPreviewEnabled = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TwoClickEmailProtection' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'TwoClickEmailProtection' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 new file mode 100644 index 000000000000..9d292ddeb938 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 @@ -0,0 +1,85 @@ +function Invoke-CIPPStandardUndoOauth { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) UndoOauth + .SYNOPSIS + (Label) Undo App Consent Standard + .DESCRIPTION + (Helptext) Disables App consent and set to Allow user consent for apps + (DocsDescription) Disables App consent and set to Allow user consent for apps + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Reverses application consent restrictions, allowing employees to approve applications independently without administrative oversight. This increases productivity and user autonomy but reduces security controls over data access permissions. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2022-01-07 + POWERSHELLEQUIVALENT + Update-MgPolicyAuthorizationPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $CurrentState = New-GraphGetRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy?$select=permissionGrantPolicyIdsAssignedToDefaultUserRole' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the App Consent state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ($CurrentState.permissionGrantPolicyIdsAssignedToDefaultUserRole -eq 'ManagePermissionGrantsForSelf.microsoft-user-default-legacy') + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Application Consent Mode is already disabled.' -sev Info + } else { + try { + $GraphRequest = @{ + tenantid = $tenant + uri = 'https://graph.microsoft.com/beta/policies/authorizationPolicy/authorizationPolicy' + AsApp = $false + Type = 'PATCH' + ContentType = 'application/json' + Body = '{"permissionGrantPolicyIdsAssignedToDefaultUserRole":["ManagePermissionGrantsForSelf.microsoft-user-default-legacy"]}' + } + New-GraphPostRequest @GraphRequest + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Application Consent Mode has been disabled.' -sev Info + } catch { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Failed to set Application Consent Mode to disabled.' -sev Error -LogData $_ + } + } + + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Application Consent Mode is disabled.' -sev Info + } else { + Write-StandardsAlert -message 'Application Consent Mode is not disabled.' -object $CurrentState -tenant $Tenant -standardName 'UndoOauth' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Application Consent Mode is not disabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'UndoOauth' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + $CurrentValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = $CurrentState.permissionGrantPolicyIdsAssignedToDefaultUserRole + } + $ExpectedValue = @{ + permissionGrantPolicyIdsAssignedToDefaultUserRole = @('ManagePermissionGrantsForSelf.microsoft-user-default-legacy') + } + Set-CIPPStandardsCompareField -FieldName 'standards.UndoOauth' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoSSPR.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoSSPR.ps1 new file mode 100644 index 000000000000..b18a397b219a --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoSSPR.ps1 @@ -0,0 +1,11 @@ +function Invoke-CIPPStandardUndoSSPR { + <# + .FUNCTIONALITY + Internal + #> + param($Tenant, $Settings) + If ($Settings.remediate -eq $true) { + + Write-LogMessage -API 'Standards' -tenant $tenant -message 'The standard for SSPR is no longer supported.' -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 new file mode 100644 index 000000000000..5c18d9d18d94 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 @@ -0,0 +1,91 @@ +function Invoke-CIPPStandardUserPreferredLanguage { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) UserPreferredLanguage + .SYNOPSIS + (Label) Preferred language for all users + .DESCRIPTION + (Helptext) Sets the preferred language property for all users in the tenant. This will override the user's language settings. + (DocsDescription) Sets the preferred language property for all users in the tenant. This will override the user's language settings. + .NOTES + CAT + Entra (AAD) Standards + TAG + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"name":"standards.UserPreferredLanguage.preferredLanguage","label":"Preferred Language","api":{"url":"/languageList.json","labelField":"tag","valueField":"tag"}} + IMPACT + High Impact + ADDEDDATE + 2025-02-26 + POWERSHELLEQUIVALENT + Update-MgUser -UserId user@domain.com -BodyParameter @{preferredLanguage='en-US'} + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + $preferredLanguage = $Settings.preferredLanguage.value + + try { + $IncorrectUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=userPrincipalName,displayName,preferredLanguage,userType,onPremisesSyncEnabled&`$filter=preferredLanguage ne '$preferredLanguage' and userType eq 'Member' and onPremisesSyncEnabled ne true&`$count=true" -tenantid $Tenant -ComplexFilter + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the UserPreferredLanguage state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if (($IncorrectUsers | Measure-Object).Count -gt 0) { + try { + foreach ($user in $IncorrectUsers) { + $cmdParams = @{ + tenantid = $Tenant + uri = "https://graph.microsoft.com/beta/users/$($user.userPrincipalName)" + AsApp = $true + Type = 'PATCH' + Body = @{ + preferredLanguage = $preferredLanguage + } | ConvertTo-Json + ContentType = 'application/json; charset=utf-8' + } + $null = New-GraphPOSTRequest @cmdParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Preferred language for $($user.userPrincipalName) has been set to $preferredLanguage" -sev Info + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set preferred language to $preferredLanguage for all users." -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if (($IncorrectUsers.userPrincipalName | Measure-Object).Count -gt 0) { + Write-StandardsAlert -message "The following accounts do not have the preferred language set to $preferredLanguage" -object $IncorrectUsers -tenant $Tenant -standardName 'UserPreferredLanguage' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The following accounts do not have the preferred language set to $preferredLanguage : $($IncorrectUsers.userPrincipalName -join ', ')" -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All accounts have the preferred language set.' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'IncorrectUsers' -FieldValue $IncorrectUsers -StoreAs json -Tenant $Tenant + + if ($IncorrectUsers.userPrincipalName) { $FieldValue = $IncorrectUsers | Select-Object -Property userPrincipalName, displayName, preferredLanguage, userType } else { $FieldValue = @() } + + $CurrentValue = @{ + preferredLanguage = $preferredLanguage + incorrectUsers = $FieldValue + } + $ExpectedValue = @{ + preferredLanguage = $preferredLanguage + incorrectUsers = @() + } + Set-CIPPStandardsCompareField -FieldName 'standards.UserPreferredLanguage' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 new file mode 100644 index 000000000000..f2867357c2f8 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 @@ -0,0 +1,245 @@ +function Invoke-CIPPStandardUserSubmissions { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) UserSubmissions + .SYNOPSIS + (Label) Set the state of the built-in Report button in Outlook + .DESCRIPTION + (Helptext) Set the state of the spam submission button in Outlook + (DocsDescription) Set the state of the built-in Report button in Outlook. This gives the users the ability to report emails as spam or phish. + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Enables employees to easily report suspicious emails directly from Outlook, helping improve the organization's spam and phishing detection systems. This crowdsourced approach to security allows users to contribute to threat detection while providing valuable feedback to enhance email security filters. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select value","name":"standards.UserSubmissions.state","options":[{"label":"Enabled","value":"enable"},{"label":"Disabled","value":"disable"}]} + {"type":"textField","name":"standards.UserSubmissions.email","required":false,"label":"Destination email address"} + IMPACT + Medium Impact + ADDEDDATE + 2024-06-28 + POWERSHELLEQUIVALENT + New-ReportSubmissionPolicy or Set-ReportSubmissionPolicy and New-ReportSubmissionRule or Set-ReportSubmissionRule + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'UserSubmissions' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Get state value using null-coalescing operator + $state = $Settings.state.value ?? $Settings.state + $Email = Get-CIPPTextReplacement -TenantFilter $Tenant -Text $Settings.email + + # Input validation + if ($Settings.remediate -eq $true -or $Settings.alert -eq $true) { + if (!($state -eq 'enable' -or $state -eq 'disable')) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'UserSubmissions: Invalid state parameter set' -sev Error + return + } + + if (!([string]::IsNullOrWhiteSpace($Email))) { + if ($Email -notmatch '@') { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'UserSubmissions: Invalid Email parameter set' -sev Error + return + } + } + } + + try { + $PolicyState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ReportSubmissionPolicy' + $RuleState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ReportSubmissionRule' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the UserSubmissions state for $Tenant. Error: $ErrorMessage" -Sev Error + } + + if ($state -eq 'enable') { + if (([string]::IsNullOrWhiteSpace($Email))) { + $PolicyIsCorrect = ($PolicyState.EnableReportToMicrosoft -eq $true) -and + ($PolicyState.ReportJunkToCustomizedAddress -eq $false) -and + ($PolicyState.ReportNotJunkToCustomizedAddress -eq $false) -and + ($PolicyState.ReportPhishToCustomizedAddress -eq $false) + $RuleIsCorrect = $true + } else { + $PolicyIsCorrect = ($PolicyState.EnableReportToMicrosoft -eq $true) -and + ($PolicyState.ReportJunkToCustomizedAddress -eq $true) -and + ($PolicyState.ReportJunkAddresses -eq $Email) -and + ($PolicyState.ReportNotJunkToCustomizedAddress -eq $true) -and + ($PolicyState.ReportNotJunkAddresses -eq $Email) -and + ($PolicyState.ReportPhishToCustomizedAddress -eq $true) -and + ($PolicyState.ReportPhishAddresses -eq $Email) + $RuleIsCorrect = ($RuleState.State -eq 'Enabled') -and + ($RuleState.SentTo -eq $Email) + } + } else { + if ($PolicyState.length -eq 0) { + $PolicyIsCorrect = $true + $RuleIsCorrect = $true + } else { + $PolicyIsCorrect = ($PolicyState.EnableReportToMicrosoft -eq $false) -and + ($PolicyState.ReportJunkToCustomizedAddress -eq $false) -and + ($PolicyState.ReportNotJunkToCustomizedAddress -eq $false) -and + ($PolicyState.ReportPhishToCustomizedAddress -eq $false) + $RuleIsCorrect = $true + } + } + + $StateIsCorrect = $PolicyIsCorrect -and $RuleIsCorrect + + if ($Settings.remediate -eq $true) { + # If policy is set correctly, log and skip setting the policy + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'User Submission policy is already configured' -sev Info + } else { + if ($state -eq 'enable') { + if (([string]::IsNullOrWhiteSpace($Email))) { + $PolicyParams = @{ + EnableReportToMicrosoft = $true + ReportJunkToCustomizedAddress = $false + ReportJunkAddresses = $null + ReportNotJunkToCustomizedAddress = $false + ReportNotJunkAddresses = $null + ReportPhishToCustomizedAddress = $false + ReportPhishAddresses = $null + } + } else { + $PolicyParams = @{ + EnableReportToMicrosoft = $true + ReportJunkToCustomizedAddress = $true + ReportJunkAddresses = $Email + ReportNotJunkToCustomizedAddress = $true + ReportNotJunkAddresses = $Email + ReportPhishToCustomizedAddress = $true + ReportPhishAddresses = $Email + } + $RuleParams = @{ + SentTo = $Email + } + } + } else { + $PolicyParams = @{ + EnableReportToMicrosoft = $false + ReportJunkToCustomizedAddress = $false + ReportNotJunkToCustomizedAddress = $false + ReportPhishToCustomizedAddress = $false + } + } + + if ($PolicyState.length -eq 0) { + try { + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-ReportSubmissionPolicy' -cmdParams $PolicyParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'User Submission policy created.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create User Submission policy. Error: $($ErrorMessage.NormalizedError)" -sev Error + } + } else { + try { + $PolicyParams.Add('Identity', 'DefaultReportSubmissionPolicy') + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-ReportSubmissionPolicy' -cmdParams $PolicyParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message "User Submission policy state set to $state." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set User Submission policy state to $state. Error: $($ErrorMessage.NormalizedError)" -sev Error + } + } + + if ($RuleParams) { + if ($RuleState.length -eq 0) { + try { + $RuleParams.Add('Name', 'DefaultReportSubmissionRule') + $RuleParams.Add('ReportSubmissionPolicy', 'DefaultReportSubmissionPolicy') + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'New-ReportSubmissionRule' -cmdParams $RuleParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'User Submission rule created.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create User Submission rule. Error: $($ErrorMessage.NormalizedError)" -sev Error + } + } else { + try { + $RuleParams.Add('Identity', 'DefaultReportSubmissionRule') + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-ReportSubmissionRule' -cmdParams $RuleParams -UseSystemMailbox $true + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'User Submission rule set to enabled.' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable User Submission rule. Error: $($ErrorMessage.NormalizedError)" -sev Error + } + } + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'User Submission policy is properly configured.' -sev Info + } else { + if ($Policy.EnableReportToMicrosoft -eq $true) { + Write-StandardsAlert -message 'User Submission policy is enabled but incorrectly configured' -object $PolicyState -tenant $Tenant -standardName 'UserSubmissions' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'User Submission policy is enabled but incorrectly configured' -sev Info + } else { + Write-StandardsAlert -message 'User Submission policy is disabled.' -object $PolicyState -tenant $Tenant -standardName 'UserSubmissions' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'User Submission policy is disabled.' -sev Info + } + } + } + + if ($Settings.report -eq $true) { + if ($PolicyState.length -eq 0) { + Add-CIPPBPAField -FieldName 'UserSubmissionPolicy' -FieldValue $false -StoreAs bool -Tenant $Tenant + } else { + Add-CIPPBPAField -FieldName 'UserSubmissionPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } + + $PolicyState = $PolicyState | Select-Object EnableReportToMicrosoft, ReportJunkToCustomizedAddress, ReportNotJunkToCustomizedAddress, ReportPhishToCustomizedAddress, ReportJunkAddresses, ReportNotJunkAddresses, ReportPhishAddresses + $RuleState = $RuleState | Select-Object State, SentTo + + $CurrentValue = @{ + EnableReportToMicrosoft = $PolicyState.EnableReportToMicrosoft + ReportJunkToCustomizedAddress = $PolicyState.ReportJunkToCustomizedAddress + ReportNotJunkToCustomizedAddress = $PolicyState.ReportNotJunkToCustomizedAddress + ReportPhishToCustomizedAddress = $PolicyState.ReportPhishToCustomizedAddress + ReportJunkAddresses = $PolicyState.ReportJunkAddresses + ReportNotJunkAddresses = $PolicyState.ReportNotJunkAddresses + ReportPhishAddresses = $PolicyState.ReportPhishAddresses + RuleState = @{ + State = $RuleState.State + SentTo = $RuleState.SentTo + } + } + $ExpectedValue = @{ + EnableReportToMicrosoft = $state -eq 'enable' + ReportJunkToCustomizedAddress = if ([string]::IsNullOrWhiteSpace($Email)) { $false } else { $true } + ReportNotJunkToCustomizedAddress = if ([string]::IsNullOrWhiteSpace($Email)) { $false } else { $true } + ReportPhishToCustomizedAddress = if ([string]::IsNullOrWhiteSpace($Email)) { $false } else { $true } + ReportJunkAddresses = if ([string]::IsNullOrWhiteSpace($Email)) { $null } else { $Email } + ReportNotJunkAddresses = if ([string]::IsNullOrWhiteSpace($Email)) { $null } else { $Email } + ReportPhishAddresses = if ([string]::IsNullOrWhiteSpace($Email)) { $null } else { $Email } + RuleState = if ([string]::IsNullOrWhiteSpace($Email)) { + @{ + State = 'Disabled' + SentTo = $null + } + } else { + @{ + State = 'Enabled' + SentTo = $Email + } + } + } + Set-CIPPStandardsCompareField -FieldName 'standards.UserSubmissions' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 new file mode 100644 index 000000000000..d2022ada13c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 @@ -0,0 +1,72 @@ +function Invoke-CIPPStandardallowOAuthTokens { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) allowOAuthTokens + .SYNOPSIS + (Label) Enable OTP Software OAuth tokens + .DESCRIPTION + (Helptext) Allows you to use any software OAuth token generator + (DocsDescription) Enables OTP Software OAuth tokens for the tenant. This allows users to use OTP codes generated via software, like a password manager to be used as an authentication method. + .NOTES + CAT + Entra (AAD) Standards + TAG + "EIDSCA.AT01" + "EIDSCA.AT02" + EXECUTIVETEXT + Allows employees to use third-party authentication apps and password managers to generate secure login codes, providing flexibility in authentication methods while maintaining security standards. This accommodates diverse user preferences and existing security tools. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2022-12-18 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + #$Rerun -Type Standard -Tenant $Tenant -API 'AddDKIM' -Settings $Settings + + try { + $CurrentState = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/softwareOath' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the allowOTPTokens state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = ($CurrentState.state -eq 'enabled') + $CurrentValue = $CurrentState | Select-Object -Property state + $ExpectedValue = [PSCustomObject]@{state = 'enabled' } + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Software OTP/oAuth tokens is already enabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'softwareOath' -Enabled $true + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Software OTP/oAuth tokens is enabled' -sev Info + } else { + Write-StandardsAlert -message 'Software OTP/oAuth tokens is not enabled' -object $CurrentState -tenant $tenant -standardName 'allowOAuthTokens' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Software OTP/oAuth tokens is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'softwareOath' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + Set-CIPPStandardsCompareField -FieldName 'standards.allowOAuthTokens' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 new file mode 100644 index 000000000000..acfdcc29a911 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 @@ -0,0 +1,72 @@ +function Invoke-CIPPStandardallowOTPTokens { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) allowOTPTokens + .SYNOPSIS + (Label) Enable OTP via Authenticator + .DESCRIPTION + (Helptext) Allows you to use MS authenticator OTP token generator + (DocsDescription) Allows you to use Microsoft Authenticator OTP token generator. Useful for using the NPS extension as MFA on VPN clients. + .NOTES + CAT + Entra (AAD) Standards + TAG + "EIDSCA.AM02" + EXECUTIVETEXT + Enables one-time password generation through Microsoft Authenticator app, providing an additional secure authentication method for employees. This is particularly useful for secure VPN access and other systems requiring multi-factor authentication. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2023-12-06 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthenticationMethodPolicyAuthenticationMethodConfiguration + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + #$Rerun -Type Standard -Tenant $Tenant -API 'allowOTPTokens' -Settings $Settings + + try { + $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the allowOTPTokens state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $CurrentValue = $CurrentInfo | Select-Object -Property isSoftwareOathEnabled + $ExpectedValue = [PSCustomObject]@{isSoftwareOathEnabled = $true } + + if ($Settings.remediate -eq $true) { + if ($CurrentInfo.isSoftwareOathEnabled) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'MS authenticator OTP/oAuth tokens is already enabled.' -sev Info + } else { + try { + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'MicrosoftAuthenticator' -Enabled $true -MicrosoftAuthenticatorSoftwareOathEnabled $true + } catch { + } + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo.isSoftwareOathEnabled) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'MS authenticator OTP/oAuth tokens is enabled' -sev Info + } else { + Write-StandardsAlert -message 'MS authenticator OTP/oAuth tokens is not enabled' -object $CurrentInfo -tenant $tenant -standardName 'allowOTPTokens' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'MS authenticator OTP/oAuth tokens is not enabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + Set-CIPPStandardsCompareField -FieldName 'standards.allowOTPTokens' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $tenant + Add-CIPPBPAField -FieldName 'MSAuthenticator' -FieldValue $CurrentInfo.isSoftwareOathEnabled -StoreAs bool -Tenant $tenant + } + +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 new file mode 100644 index 000000000000..193addccbdc1 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 @@ -0,0 +1,119 @@ +function Invoke-CIPPStandardcalDefault { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) calDefault + .SYNOPSIS + (Label) Set Sharing Level for Default calendar + .DESCRIPTION + (Helptext) Sets the default sharing level for the default calendar, for all users + (DocsDescription) Sets the default sharing level for the default calendar for all users in the tenant. You can read about the different sharing levels [here.](https://learn.microsoft.com/en-us/powershell/module/exchange/set-mailboxfolderpermission?view=exchange-ps#-accessrights) + .NOTES + CAT + Exchange Standards + TAG + EXECUTIVETEXT + Configures how much calendar information employees share by default with colleagues, balancing collaboration needs with privacy. This setting determines whether others can see meeting details, free/busy times, or just availability, helping optimize scheduling while protecting sensitive meeting information. + DISABLEDFEATURES + {"report":true,"warn":true,"remediate":false} + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select Sharing Level","name":"standards.calDefault.permissionLevel","options":[{"label":"Owner - The user can create, read, edit, and delete all items in the folder, and create subfolders. The user is both folder owner and folder contact.","value":"Owner"},{"label":"Publishing Editor - The user can create, read, edit, and delete all items in the folder, and create subfolders.","value":"PublishingEditor"},{"label":"Editor - The user can create items in the folder. The contents of the folder do not appear.","value":"Editor"},{"label":"Publishing Author. The user can read, create all items/subfolders. Can modify and delete only items they create.","value":"PublishingAuthor"},{"label":"Author - The user can create and read items, and modify and delete items that they create.","value":"Author"},{"label":"Non Editing Author - The user has full read access and create items. Can can delete only own items.","value":"NonEditingAuthor"},{"label":"Reviewer - The user can read all items in the folder.","value":"Reviewer"},{"label":"Contributor - The user can create items and folders.","value":"Contributor"},{"label":"Availability Only - Indicates that the user can view only free/busy time within the calendar.","value":"AvailabilityOnly"},{"label":"Limited Details - The user can view free/busy time within the calendar and the subject and location of appointments.","value":"LimitedDetails"},{"label":"None - The user has no permissions on the folder.","value":"none"}]} + IMPACT + Low Impact + ADDEDDATE + 2023-04-27 + POWERSHELLEQUIVALENT + Set-MailboxFolderPermission + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings, $QueueItem) + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'calDefault' + $TestResult = Test-CIPPStandardLicense -StandardName 'calDefault' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_S_STANDARD_GOV', 'EXCHANGE_S_ENTERPRISE_GOV', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + # Get permissionLevel value using null-coalescing operator + $permissionLevel = $Settings.permissionLevel.value ?? $Settings.permissionLevel + + # Input validation + if ([string]::IsNullOrWhiteSpace($permissionLevel) -or $permissionLevel -eq 'Select a value') { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'calDefault: Invalid permissionLevel parameter set' -sev Error + return + } + + if ($Settings.remediate -eq $true) { + $Mailboxes = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-Mailbox' | Sort-Object UserPrincipalName + $TotalMailboxes = $Mailboxes.Count + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Started setting default calendar permissions for $($TotalMailboxes) mailboxes." -sev Info + + # Retrieve the last run status + $LastRunTable = Get-CIPPTable -Table StandardsLastRun + $Filter = "RowKey eq 'calDefaults' and PartitionKey eq '{0}'" -f $tenant + $LastRun = Get-CIPPAzDataTableEntity @LastRunTable -Filter $Filter + + $startIndex = 0 + if ($LastRun -and $LastRun.processedMailboxes -lt $LastRun.totalMailboxes ) { + $startIndex = $LastRun.processedMailboxes + } + + $SuccessCounter = if ($startIndex -eq 0) { 0 } else { [int64]$LastRun.currentSuccessCount } + $processedMailboxes = $startIndex + $Mailboxes = $Mailboxes[$startIndex..($TotalMailboxes - 1)] + Write-Host "CalDefaults Starting at index $startIndex" + Write-Host "CalDefaults success counter starting at $SuccessCounter" + Write-Host "CalDefaults Processing $($Mailboxes.Count) mailboxes" + $Mailboxes | ForEach-Object { + $Mailbox = $_ + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxFolderStatistics' -cmdParams @{identity = $Mailbox.UserPrincipalName; FolderScope = 'Calendar' } -Anchor $Mailbox.UserPrincipalName | Where-Object { $_.FolderType -eq 'Calendar' } | + ForEach-Object { + try { + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxFolderPermission' -cmdParams @{Identity = "$($Mailbox.UserPrincipalName):$($_.FolderId)"; User = 'Default'; AccessRights = $permissionLevel } -Anchor $Mailbox.UserPrincipalName + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set default folder permission for $($Mailbox.UserPrincipalName):\$($_.Name) to $permissionLevel" -sev Debug + $SuccessCounter++ + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Host "Setting cal failed: $ErrorMessage" + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set default calendar permissions for $($Mailbox.UserPrincipalName). Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not set default calendar permissions for $($Mailbox.UserPrincipalName). Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + $processedMailboxes++ + if ($processedMailboxes % 25 -eq 0) { + $LastRun = @{ + RowKey = 'calDefaults' + PartitionKey = $Tenant + totalMailboxes = $TotalMailboxes + processedMailboxes = $processedMailboxes + currentSuccessCount = $SuccessCounter + } + Add-CIPPAzDataTableEntity @LastRunTable -Entity $LastRun -Force + Write-Host "Processed $processedMailboxes mailboxes" + } + } + + $LastRun = @{ + RowKey = 'calDefaults' + PartitionKey = $Tenant + totalMailboxes = $TotalMailboxes + processedMailboxes = $processedMailboxes + currentSuccessCount = $SuccessCounter + } + Add-CIPPAzDataTableEntity @LastRunTable -Entity $LastRun -Force + + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set default calendar permissions for $SuccessCounter out of $TotalMailboxes mailboxes." -sev Info + } + + } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 new file mode 100644 index 000000000000..df8b04ecfdeb --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 @@ -0,0 +1,87 @@ +function Invoke-CIPPStandarddisableMacSync { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) disableMacSync + .SYNOPSIS + (Label) Do not allow Mac devices to sync using OneDrive + .DESCRIPTION + (Helptext) Disables the ability for Mac devices to sync with OneDrive. + (DocsDescription) Disables the ability for Mac devices to sync with OneDrive. + .NOTES + CAT + SharePoint Standards + TAG + EXECUTIVETEXT + Prevents Mac computers from synchronizing files with OneDrive, typically implemented for security or compliance reasons in Windows-centric environments. This restriction helps maintain standardized device management while potentially limiting collaboration for Mac users. + ADDEDCOMPONENT + IMPACT + High Impact + ADDEDDATE + 2022-06-15 + POWERSHELLEQUIVALENT + Update-MgAdminSharePointSetting + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'disableMacSync' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableMacSync state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($CurrentInfo.isMacSyncAppEnabled -eq $true) { + try { + $body = '{"isMacSyncAppEnabled": false}' + New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type patch -Body $body -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled Mac OneDrive Sync' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable Mac OneDrive Sync: $ErrorMessage" -sev Error + } + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Mac OneDrive Sync is already disabled' -sev Info + } + } + + if ($Settings.alert -eq $true) { + + if ($CurrentInfo.isMacSyncAppEnabled -eq $false) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Mac OneDrive Sync is disabled' -sev Info + } else { + Write-StandardsAlert -message 'Mac OneDrive Sync is not disabled' -object $CurrentInfo -tenant $tenant -standardName 'disableMacSync' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Mac OneDrive Sync is not disabled' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentState = -not $CurrentInfo.isMacSyncAppEnabled + + $CurrentValue = [PSCustomObject]@{ + MacSyncDisabled = $CurrentState + } + $ExpectedValue = [PSCustomObject]@{ + MacSyncDisabled = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.disableMacSync' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'MacSync' -FieldValue $CurrentState -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardfwdAdminAlerts.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardfwdAdminAlerts.ps1 new file mode 100644 index 000000000000..344e75fd3e19 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardfwdAdminAlerts.ps1 @@ -0,0 +1,11 @@ +function Invoke-CIPPStandardfwdAdminAlerts { + <# + .FUNCTIONALITY + Internal + #> + param($Tenant, $Settings) + If ($Settings.remediate -eq $true) { + + # TODO This isn't done yet. + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 new file mode 100644 index 000000000000..cd36588ae4ad --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 @@ -0,0 +1,141 @@ +function Invoke-CIPPStandardintuneBrandingProfile { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) intuneBrandingProfile + .SYNOPSIS + (Label) Set Intune Company Portal branding profile + .DESCRIPTION + (Helptext) Sets the branding profile for the Intune Company Portal app. This is a tenant wide setting and overrules any settings set on the app level. + (DocsDescription) Sets the branding profile for the Intune Company Portal app. This is a tenant wide setting and overrules any settings set on the app level. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Customizes the Intune Company Portal app with company branding, contact information, and support details, providing employees with a consistent corporate experience when managing their devices. This improves user experience and ensures employees know how to get IT support when needed. + ADDEDCOMPONENT + {"type":"textField","name":"standards.intuneBrandingProfile.displayName","label":"Organization name","required":false} + {"type":"switch","name":"standards.intuneBrandingProfile.showLogo","label":"Show logo"} + {"type":"switch","name":"standards.intuneBrandingProfile.showDisplayNameNextToLogo","label":"Show organization name next to logo","required":false} + {"type":"textField","name":"standards.intuneBrandingProfile.contactITName","label":"Contact IT name","required":false} + {"type":"textField","name":"standards.intuneBrandingProfile.contactITPhoneNumber","label":"Contact IT phone number","required":false} + {"type":"textField","name":"standards.intuneBrandingProfile.contactITEmailAddress","label":"Contact IT email address","required":false} + {"type":"textField","name":"standards.intuneBrandingProfile.contactITNotes","label":"Contact IT notes","required":false} + {"type":"textField","name":"standards.intuneBrandingProfile.onlineSupportSiteName","label":"Online support site name","required":false} + {"type":"textField","name":"standards.intuneBrandingProfile.onlineSupportSiteUrl","label":"Online support site URL","required":false} + {"type":"textField","name":"standards.intuneBrandingProfile.privacyUrl","label":"Privacy statement URL","required":false} + IMPACT + Low Impact + ADDEDDATE + 2024-06-20 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'intuneBrandingProfile' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/intuneBrandingProfiles/c3a59481-1bf2-46ce-94b3-66eec07a8d60' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneBrandingProfile state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = ((-not $Settings.displayName) -or ($CurrentState.displayName -eq $Settings.displayName)) -and + ((-not $Settings.showLogo) -or ($CurrentState.showLogo -eq $Settings.showLogo)) -and + ((-not $Settings.showDisplayNameNextToLogo) -or ($CurrentState.showDisplayNameNextToLogo -eq $Settings.showDisplayNameNextToLogo)) -and + ((-not $Settings.contactITName) -or ($CurrentState.contactITName -eq $Settings.contactITName)) -and + ((-not $Settings.contactITPhoneNumber) -or ($CurrentState.contactITPhoneNumber -eq $Settings.contactITPhoneNumber)) -and + ((-not $Settings.contactITEmailAddress) -or ($CurrentState.contactITEmailAddress -eq $Settings.contactITEmailAddress)) -and + ((-not $Settings.contactITNotes) -or ($CurrentState.contactITNotes -eq $Settings.contactITNotes)) -and + ((-not $Settings.onlineSupportSiteName) -or ($CurrentState.onlineSupportSiteName -eq $Settings.onlineSupportSiteName)) -and + ((-not $Settings.onlineSupportSiteUrl) -or ($CurrentState.onlineSupportSiteUrl -eq $Settings.onlineSupportSiteUrl)) -and + ((-not $Settings.privacyUrl) -or ($CurrentState.privacyUrl -eq $Settings.privacyUrl)) + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Intune Branding Profile is already correctly configured' -sev Info + } else { + $Body = @{} + if ($Settings.displayName) { $Body.displayName = $Settings.displayName } + if ($Settings.showLogo) { $Body.showLogo = $Settings.showLogo } + if ($Settings.showDisplayNameNextToLogo) { $Body.showDisplayNameNextToLogo = $Settings.showDisplayNameNextToLogo } + if ($Settings.contactITName) { $Body.contactITName = $Settings.contactITName } + if ($Settings.contactITPhoneNumber) { $Body.contactITPhoneNumber = $Settings.contactITPhoneNumber } + if ($Settings.contactITEmailAddress) { $Body.contactITEmailAddress = $Settings.contactITEmailAddress } + if ($Settings.contactITNotes) { $Body.contactITNotes = $Settings.contactITNotes } + if ($Settings.onlineSupportSiteName) { $Body.onlineSupportSiteName = $Settings.onlineSupportSiteName } + if ($Settings.onlineSupportSiteUrl) { $Body.onlineSupportSiteUrl = $Settings.onlineSupportSiteUrl } + if ($Settings.privacyUrl) { $Body.privacyUrl = $Settings.privacyUrl } + + $cmdParams = @{ + tenantid = $tenant + uri = 'https://graph.microsoft.com/beta/deviceManagement/intuneBrandingProfiles/c3a59481-1bf2-46ce-94b3-66eec07a8d60' + AsApp = $true + Type = 'PATCH' + Body = ($Body | ConvertTo-Json) + ContentType = 'application/json; charset=utf-8' + } + + try { + New-GraphPostRequest @cmdParams + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Successfully updated Intune Branding Profile' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to update Intune Branding Profile. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Intune Branding Profile is correctly configured' -sev Info + } else { + Write-StandardsAlert -message 'Intune Branding Profile is not correctly configured' -object $CurrentState -tenant $tenant -standardName 'intuneBrandingProfile' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Intune Branding Profile is not correctly configured' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + displayName = $CurrentState.displayName + showLogo = $CurrentState.showLogo + showDisplayNameNextToLogo = $CurrentState.showDisplayNameNextToLogo + contactITName = $CurrentState.contactITName + contactITPhoneNumber = $CurrentState.contactITPhoneNumber + contactITEmailAddress = $CurrentState.contactITEmailAddress + contactITNotes = $CurrentState.contactITNotes + onlineSupportSiteName = $CurrentState.onlineSupportSiteName + onlineSupportSiteUrl = $CurrentState.onlineSupportSiteUrl + privacyUrl = $CurrentState.privacyUrl + } + $ExpectedValue = @{ + displayName = $Settings.displayName + showLogo = $Settings.showLogo + showDisplayNameNextToLogo = $Settings.showDisplayNameNextToLogo + contactITName = $Settings.contactITName + contactITPhoneNumber = $Settings.contactITPhoneNumber + contactITEmailAddress = $Settings.contactITEmailAddress + contactITNotes = $Settings.contactITNotes + onlineSupportSiteName = $Settings.onlineSupportSiteName + onlineSupportSiteUrl = $Settings.onlineSupportSiteUrl + privacyUrl = $Settings.privacyUrl + } + Set-CIPPStandardsCompareField -FieldName 'standards.intuneBrandingProfile' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'intuneBrandingProfile' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 new file mode 100644 index 000000000000..24948cf10bf7 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 @@ -0,0 +1,88 @@ +function Invoke-CIPPStandardintuneDeviceReg { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) intuneDeviceReg + .SYNOPSIS + (Label) Set Maximum Number of Devices per user + .DESCRIPTION + (Helptext) Sets the maximum number of devices that can be registered by a user. A value of 0 disables device registration by users + (DocsDescription) Sets the maximum number of devices that can be registered by a user. A value of 0 disables device registration by users + .NOTES + CAT + Intune Standards + TAG + "CISA (MS.AAD.17.1v1)" + EXECUTIVETEXT + Limits how many devices each employee can register for corporate access, preventing excessive device proliferation while accommodating legitimate business needs. This helps maintain security oversight and prevents potential abuse of device registration privileges. + ADDEDCOMPONENT + {"type":"number","name":"standards.intuneDeviceReg.max","label":"Maximum devices (Enter 2147483647 for unlimited.)","required":true} + IMPACT + Medium Impact + ADDEDDATE + 2023-03-27 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyDeviceRegistrationPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'intuneDeviceReg' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneDeviceReg state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + $StateIsCorrect = if ($PreviousSetting.userDeviceQuota -eq $Settings.max) { $true } else { $false } + + if ($Settings.remediate -eq $true) { + + if ($PreviousSetting.userDeviceQuota -eq $Settings.max) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "User device quota is already set to $($Settings.max)" -sev Info + } else { + try { + $PreviousSetting.userDeviceQuota = $Settings.max + $NewBody = ConvertTo-Json -Compress -InputObject $PreviousSetting -Depth 5 + $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -Type PUT -Body $NewBody -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $tenant -message "Set user device quota to $($Settings.max)" -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to set user device quota to $($Settings.max) : $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "User device quota is set to $($Settings.max)" -sev Info + } else { + Write-StandardsAlert -message "User device quota is not set to $($Settings.max)" -object $PreviousSetting -tenant $tenant -standardName 'intuneDeviceReg' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "User device quota is not set to $($Settings.max)" -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + userDeviceQuota = $PreviousSetting.userDeviceQuota + } + $ExpectedValue = @{ + userDeviceQuota = $Settings.max + } + Set-CIPPStandardsCompareField -FieldName 'standards.intuneDeviceReg' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'intuneDeviceReg' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 new file mode 100644 index 000000000000..b980c034ddd0 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 @@ -0,0 +1,94 @@ +function Invoke-CIPPStandardintuneDeviceRetirementDays { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) intuneDeviceRetirementDays + .SYNOPSIS + (Label) Set inactive device retirement days + .DESCRIPTION + (Helptext) A value between 31 and 365 is supported. retired devices are removed from Intune after the specified number of days. + (DocsDescription) A value between 31 and 365 is supported. retired devices are removed from Intune after the specified number of days. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Automatically removes inactive devices from management after a specified period, helping maintain a clean device inventory and reducing security risks from abandoned or lost devices. This policy ensures that only actively used corporate devices remain in the management system. + ADDEDCOMPONENT + {"type":"number","name":"standards.intuneDeviceRetirementDays.days","label":"Maximum days"} + IMPACT + Low Impact + ADDEDDATE + 2023-05-19 + POWERSHELLEQUIVALENT + Graph API + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'intuneDeviceRetirementDays' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/managedDeviceCleanupRules' -tenantid $Tenant) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneDeviceRetirementDays state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $StateIsCorrect = if ($CurrentInfo.DeviceInactivityBeforeRetirementInDays -eq $Settings.days) { $true } else { $false } + + if ($Settings.remediate -eq $true) { + + if ($CurrentInfo.DeviceInactivityBeforeRetirementInDays -eq $Settings.days) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "DeviceInactivityBeforeRetirementInDays for $($Settings.days) days is already enabled." -sev Info + } else { + if ($CurrentInfo) { + $Type = 'Patch' + $id = "('$($CurrentInfo.id)')" + } else { + $Type = 'Post' + } + try { + $body = '{"displayName":"Default Policy","description":"Default Policy","deviceCleanupRulePlatformType":"all","deviceInactivityBeforeRetirementInDays":' + $Settings.days + '}' + (New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/deviceManagement/managedDeviceCleanupRules$id" -Type $Type -Body $body -ContentType 'application/json') + Write-LogMessage -API 'Standards' -tenant $tenant -message "Enabled DeviceInactivityBeforeRetirementInDays for $($Settings.days) days." -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable DeviceInactivityBeforeRetirementInDays. Error: $ErrorMessage" -sev Error + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'DeviceInactivityBeforeRetirementInDays is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'DeviceInactivityBeforeRetirementInDays is not enabled' -object $CurrentInfo -tenant $tenant -standardName 'intuneDeviceRetirementDays' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'DeviceInactivityBeforeRetirementInDays is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + deviceInactivityBeforeRetirementInDays = $CurrentInfo.DeviceInactivityBeforeRetirementInDays + } + $ExpectedValue = @{ + deviceInactivityBeforeRetirementInDays = $Settings.days + } + Set-CIPPStandardsCompareField -FieldName 'standards.intuneDeviceRetirementDays' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'intuneDeviceRetirementDays' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 new file mode 100644 index 000000000000..81fa6fae17c9 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 @@ -0,0 +1,81 @@ +function Invoke-CIPPStandardintuneRequireMFA { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) intuneRequireMFA + .SYNOPSIS + (Label) Require Multi-factor Authentication to register or join devices with Microsoft Entra + .DESCRIPTION + (Helptext) Requires MFA for all users to register devices with Intune. This is useful when not using Conditional Access. + (DocsDescription) Requires MFA for all users to register devices with Intune. This is useful when not using Conditional Access. + .NOTES + CAT + Intune Standards + TAG + EXECUTIVETEXT + Requires employees to use multi-factor authentication when registering devices for corporate access, adding an extra security layer to prevent unauthorized device enrollment. This helps ensure only legitimate users can connect their devices to company systems. + IMPACT + Medium Impact + ADDEDDATE + 2023-10-23 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyDeviceRegistrationPolicy + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the intuneRequireMFA state for $Tenant. Error: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + return + } + + if ($Settings.remediate -eq $true) { + if ($PreviousSetting.multiFactorAuthConfiguration -eq 'required') { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Require to use MFA when joining/registering Entra Devices is already enabled.' -sev Info + } else { + try { + $NewSetting = $PreviousSetting + $NewSetting.multiFactorAuthConfiguration = 'required' + $NewBody = ConvertTo-Json -Compress -InputObject $NewSetting -Depth 10 + New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -Type PUT -Body $NewBody + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Set required to use MFA when joining/registering Entra Devices' -sev Info + $PreviousSetting.multiFactorAuthConfiguration = 'required' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set require to use MFA when joining/registering Entra Devices: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($PreviousSetting.multiFactorAuthConfiguration -eq 'required') { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Require to use MFA when joining/registering Entra Devices is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'Require to use MFA when joining/registering Entra Devices is not enabled' -object $PreviousSetting -tenant $Tenant -standardName 'intuneRequireMFA' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Require to use MFA when joining/registering Entra Devices is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $RequireMFA = if ($PreviousSetting.multiFactorAuthConfiguration -eq 'required') { $true } else { $false } + + $CurrentValue = @{ + multiFactorAuthConfiguration = $PreviousSetting.multiFactorAuthConfiguration + } + $ExpectedValue = @{ + multiFactorAuthConfiguration = 'required' + } + Set-CIPPStandardsCompareField -FieldName 'standards.intuneRequireMFA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'intuneRequireMFA' -FieldValue $RequireMFA -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardlaps.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardlaps.ps1 new file mode 100644 index 000000000000..b08508db2e6e --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardlaps.ps1 @@ -0,0 +1,70 @@ +function Invoke-CIPPStandardlaps { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) laps + .SYNOPSIS + (Label) Enable LAPS on the tenant + .DESCRIPTION + (Helptext) Enables the tenant to use LAPS. You must still create a policy for LAPS to be active on all devices. Use the template standards to deploy this by default. + (DocsDescription) Enables the LAPS functionality on the tenant. Prerequisite for using Windows LAPS via Azure AD. + .NOTES + CAT + Entra (AAD) Standards + TAG + EXECUTIVETEXT + Enables Local Administrator Password Solution (LAPS) capability, which automatically manages and rotates local administrator passwords on company computers. This significantly improves security by preventing the use of shared or static administrator passwords that could be exploited by attackers. + ADDEDCOMPONENT + IMPACT + Low Impact + ADDEDDATE + 2023-04-25 + POWERSHELLEQUIVALENT + Portal or Graph API + RECOMMENDEDBY + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + + try { + $PreviousSetting = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -tenantid $Tenant + } + catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DeviceRegistrationPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + If ($Settings.remediate -eq $true) { + try { + $PreviousSetting.localAdminPassword.isEnabled = $true + $NewBody = ConvertTo-Json -Compress -InputObject $PreviousSetting -Depth 10 + New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/deviceRegistrationPolicy' -Type PUT -Body $NewBody -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'LAPS has been enabled.' -sev Info + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $PreviousSetting.localAdminPassword.isEnabled = $false + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable LAPS: $ErrorMessage" -sev Error + } + } + if ($Settings.alert -eq $true) { + if ($PreviousSetting.localAdminPassword.isEnabled) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'LAPS is enabled.' -sev Info + } else { + Write-StandardsAlert -message 'LAPS is not enabled' -object $PreviousSetting -tenant $Tenant -standardName 'laps' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'LAPS is not enabled.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $state = $PreviousSetting.localAdminPassword.isEnabled ? $true : $false + Set-CIPPStandardsCompareField -FieldName 'standards.laps' -FieldValue $state -Tenant $Tenant + Add-CIPPBPAField -FieldName 'laps' -FieldValue $PreviousSetting.localAdminPassword.isEnabled -StoreAs bool -Tenant $tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingCapability.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingCapability.ps1 new file mode 100644 index 000000000000..054066c38646 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingCapability.ps1 @@ -0,0 +1,106 @@ +function Invoke-CIPPStandardsharingCapability { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) sharingCapability + .SYNOPSIS + (Label) Set Sharing Level for OneDrive and SharePoint + .DESCRIPTION + (Helptext) Sets the default sharing level for OneDrive and SharePoint. This is a tenant wide setting and overrules any settings set on the site level + (DocsDescription) Sets the default sharing level for OneDrive and SharePoint. This is a tenant wide setting and overrules any settings set on the site level + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.2.3)" + "CISA (MS.AAD.14.1v1)" + "CISA (MS.SPO.1.1v1)" + EXECUTIVETEXT + Defines the organization's default policy for sharing files and folders in SharePoint and OneDrive, balancing collaboration needs with security requirements. This fundamental setting determines whether employees can share with external users, anonymous links, or only internal colleagues. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"label":"Select Sharing Level","name":"standards.sharingCapability.Level","options":[{"label":"Users can share only with people in the organization. No external sharing is allowed.","value":"disabled"},{"label":"Users can share with new and existing guests. Guests must sign in or provide a verification code.","value":"externalUserSharingOnly"},{"label":"Users can share with anyone by using links that do not require sign-in.","value":"externalUserAndGuestSharing"},{"label":"Users can share with existing guests (those already in the directory of the organization).","value":"existingExternalUserSharingOnly"}]} + IMPACT + High Impact + ADDEDDATE + 2022-06-15 + POWERSHELLEQUIVALENT + Update-MgBetaAdminSharePointSetting + RECOMMENDEDBY + "CIS" + "CIPP" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'sharingCapability' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentInfo = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the sharingCapability state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'sharingCapability' -FieldValue $CurrentInfo.sharingCapability -StoreAs string -Tenant $Tenant + } + + # Get level value using null-coalescing operator + $level = $Settings.Level.value ?? $Settings.Level + + # Input validation + if (([string]::IsNullOrWhiteSpace($level) -or $level -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'sharingCapability: Invalid sharingCapability parameter set' -sev Error + return + } + + if ($Settings.remediate -eq $true) { + + if ($CurrentInfo.sharingCapability -eq $level) { + Write-Host "Sharing level is already set to $level" + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Sharing level is already set to $level" -sev Info + } else { + Write-Host "Setting sharing level to $level from $($CurrentInfo.sharingCapability)" + try { + $body = @{ + sharingCapability = $level + } + $bodyJson = ConvertTo-Json -InputObject $body -Compress + $null = New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -AsApp $true -Type patch -Body $bodyJson -ContentType 'application/json' + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Set sharing level to $level from $($CurrentInfo.sharingCapability)" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to set sharing level to $level : $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($CurrentInfo.sharingCapability -eq $level) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Sharing level is set to $level" -sev Info + } else { + Write-StandardsAlert -message "Sharing level is not set to $level" -object $CurrentInfo -tenant $Tenant -standardName 'sharingCapability' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Sharing level is not set to $level" -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + sharingCapability = $CurrentInfo.sharingCapability + } + $ExpectedValue = @{ + sharingCapability = $level + } + Set-CIPPStandardsCompareField -FieldName 'standards.sharingCapability' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 new file mode 100644 index 000000000000..6aae7a5b8dcd --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 @@ -0,0 +1,128 @@ +function Invoke-CIPPStandardsharingDomainRestriction { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) sharingDomainRestriction + .SYNOPSIS + (Label) Restrict sharing to a specific domain + .DESCRIPTION + (Helptext) Restricts sharing to only users with the specified domain. This is useful for organizations that only want to share with their own domain. + (DocsDescription) Restricts sharing to only users with the specified domain. This is useful for organizations that only want to share with their own domain. + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.2.6)" + "CISA (MS.AAD.14.3v1)" + "CISA (MS.SPO.1.3v1)" + EXECUTIVETEXT + Controls which external domains employees can share files with, enabling secure collaboration with trusted partners while blocking sharing with unauthorized organizations. This targeted approach maintains necessary business relationships while preventing data exposure to unknown entities. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"name":"standards.sharingDomainRestriction.Mode","label":"Limit external sharing by domains","options":[{"label":"Off","value":"none"},{"label":"Restrict sharing to specific domains","value":"allowList"},{"label":"Block sharing to specific domains","value":"blockList"}]} + {"type":"textField","name":"standards.sharingDomainRestriction.Domains","label":"Domains to allow/block, comma separated","required":false} + IMPACT + High Impact + ADDEDDATE + 2024-06-20 + POWERSHELLEQUIVALENT + Update-MgAdminSharePointSetting + RECOMMENDEDBY + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'sharingDomainRestriction' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the SharingDomainRestriction state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + # Get mode value using null-coalescing operator + $mode = $Settings.Mode.value ?? $Settings.Mode + + if ($mode -eq 'none' -or $null -eq $mode) { + $StateIsCorrect = $CurrentState.sharingDomainRestrictionMode -eq 'none' + } else { + $SelectedDomains = [String[]]$Settings.Domains.Split(',').Trim() ?? @() + $CurrentAllowedDomains = $CurrentState.sharingAllowedDomainList ?? @() + $CurrentBlockedDomains = $CurrentState.sharingBlockedDomainList ?? @() + + $StateIsCorrect = ($CurrentState.sharingDomainRestrictionMode -eq $mode) -and ( + ($mode -eq 'allowList' -and ([string[]]($CurrentAllowedDomains | Sort-Object) -join ',') -eq ([string[]]($SelectedDomains | Sort-Object) -join ',')) -or + ($mode -eq 'blockList' -and ([string[]]($CurrentBlockedDomains | Sort-Object) -join ',') -eq ([string[]]($SelectedDomains | Sort-Object) -join ',')) + ) + } + Write-Host "StateIsCorrect: $StateIsCorrect" + + if ($Settings.remediate -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Sharing Domain Restriction is already correctly configured' -sev Info + } else { + $Body = @{ + sharingDomainRestrictionMode = $mode + } + + if ($mode -eq 'AllowList') { + $Body.Add('sharingAllowedDomainList', $SelectedDomains) + } elseif ($mode -eq 'BlockList') { + $Body.Add('sharingBlockedDomainList', $SelectedDomains) + } + + $cmdParams = @{ + tenantid = $tenant + uri = 'https://graph.microsoft.com/beta/admin/sharepoint/settings' + AsApp = $true + Type = 'PATCH' + body = ($Body | ConvertTo-Json) + } + + Write-Host ($cmdParams | ConvertTo-Json -Depth 5) + + try { + $null = New-GraphPostRequest @cmdParams + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Successfully updated Sharing Domain Restriction settings' -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to update Sharing Domain Restriction settings. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Sharing Domain Restriction is correctly configured' -sev Info + } else { + Write-StandardsAlert -message 'Sharing Domain Restriction is not correctly configured' -object $CurrentState -tenant $tenant -standardName 'sharingDomainRestriction' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Sharing Domain Restriction is not correctly configured' -sev Info + } + } + + if ($Settings.report -eq $true) { + Add-CIPPBPAField -FieldName 'sharingDomainRestriction' -FieldValue [bool]$StateIsCorrect -StoreAs bool -Tenant $tenant + + $CurrentValue = @{ + sharingDomainRestrictionMode = $CurrentState.sharingDomainRestrictionMode + sharingAllowedDomainList = $CurrentState.sharingAllowedDomainList + sharingBlockedDomainList = $CurrentState.sharingBlockedDomainList + } + $ExpectedValue = @{ + sharingDomainRestrictionMode = $mode + sharingAllowedDomainList = if ($mode -eq 'allowList') { $SelectedDomains } else { @() } + sharingBlockedDomainList = if ($mode -eq 'blockList') { $SelectedDomains } else { @() } + } + Set-CIPPStandardsCompareField -FieldName 'standards.sharingDomainRestriction' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 new file mode 100644 index 000000000000..18b75b21b643 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 @@ -0,0 +1,93 @@ +function Invoke-CIPPStandardunmanagedSync { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) unmanagedSync + .SYNOPSIS + (Label) Restrict access to SharePoint and OneDrive from unmanaged devices + .DESCRIPTION + (Helptext) Entra P1 required. Block or limit access to SharePoint and OneDrive content from unmanaged devices (those not hybrid AD joined or compliant in Intune). These controls rely on Microsoft Entra Conditional Access policies and can take up to 24 hours to take effect. + (DocsDescription) Entra P1 required. Block or limit access to SharePoint and OneDrive content from unmanaged devices (those not hybrid AD joined or compliant in Intune). These controls rely on Microsoft Entra Conditional Access policies and can take up to 24 hours to take effect. 0 = Allow Access, 1 = Allow limited, web-only access, 2 = Block access. All information about this can be found in Microsofts documentation [here.](https://learn.microsoft.com/en-us/sharepoint/control-access-from-unmanaged-devices) + .NOTES + CAT + SharePoint Standards + TAG + "CIS M365 5.0 (7.2.3)" + "CISA (MS.SPO.2.1v1)" + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Restricts access to company files from personal or unmanaged devices, ensuring corporate data can only be accessed from properly secured and monitored devices. This critical security control prevents data leaks while allowing controlled access through web browsers when necessary. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"name":"standards.unmanagedSync.state","label":"State","options":[{"label":"Allow limited, web-only access","value":"1"},{"label":"Block access","value":"2"}],"required":false} + IMPACT + High Impact + ADDEDDATE + 2025-06-13 + POWERSHELLEQUIVALENT + Set-SPOTenant -ConditionalAccessPolicy AllowFullAccess \| AllowLimitedAccess \| BlockAccess + RECOMMENDEDBY + "CIS" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/list-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'unmanagedSync' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + + if ($TestResult -eq $false) { + Write-Host "We're exiting as the correct license is not present for this standard." + return $true + } #we're done. + + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + Select-Object _ObjectIdentity_, TenantFilter, ConditionalAccessPolicy + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the unmanagedSync state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $WantedState = [int]($Settings.state.value ?? 2) # Default to 2 (Block Access) if not set, for pre v8.0.3 standard compatibility + $Label = $Settings.state.label ?? 'Block Access' # Default label if not set, for pre v8.0.3 standard compatibility + $StateIsCorrect = ($CurrentState.ConditionalAccessPolicy -eq $WantedState) + + if ($Settings.remediate -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Sync for unmanaged devices is already correctly set to: $Label" -sev Info + } else { + try { + $CurrentState | Set-CIPPSPOTenant -Properties @{ConditionalAccessPolicy = $WantedState } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set the unmanaged Sync state to: $Label" -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable Sync for unmanaged devices: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + } + } + + if ($Settings.alert -eq $true) { + + if ($StateIsCorrect -eq $true) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Sync for unmanaged devices is correctly set to: $Label" -sev Info + } else { + Write-StandardsAlert -message "Sync for unmanaged devices is not correctly set to $Label, but instead $($CurrentState.ConditionalAccessPolicy)" -object $CurrentState -tenant $Tenant -standardName 'unmanagedSync' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Sync for unmanaged devices is not correctly set to $Label, but instead $($CurrentState.ConditionalAccessPolicy)" -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = @{ + ConditionalAccessPolicy = $CurrentState.ConditionalAccessPolicy + } + $ExpectedValue = @{ + ConditionalAccessPolicy = $WantedState + } + Set-CIPPStandardsCompareField -FieldName 'standards.unmanagedSync' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'unmanagedSync' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Merge-CippStandards.ps1 b/Modules/CIPPCore/Public/Standards/Merge-CippStandards.ps1 new file mode 100644 index 000000000000..dcea014c0def --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Merge-CippStandards.ps1 @@ -0,0 +1,26 @@ +function Merge-CippStandards { + param( + [Parameter(Mandatory = $true)][object]$Existing, + [Parameter(Mandatory = $true)][object]$New, + [Parameter(Mandatory = $true)][string]$StandardName + ) + + # If $Existing or $New is $null/empty, just return the other. + if (-not $Existing) { return $New } + if (-not $New) { return $Existing } + + # If the standard name ends with 'Template', we treat them as arrays to merge. + if ($StandardName -like '*Template') { + $ExistingIsArray = $Existing -is [System.Collections.IEnumerable] -and -not ($Existing -is [string]) + $NewIsArray = $New -is [System.Collections.IEnumerable] -and -not ($New -is [string]) + + # Make sure both are arrays + if (-not $ExistingIsArray) { $Existing = @($Existing) } + if (-not $NewIsArray) { $New = @($New) } + + return $Existing + $New + } else { + # Single‐value standard: override the old with the new + return $New + } +} diff --git a/Modules/CIPPCore/Public/TenantGroups/Expand-CIPPTenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Expand-CIPPTenantGroups.ps1 new file mode 100644 index 000000000000..3f8405c0d619 --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Expand-CIPPTenantGroups.ps1 @@ -0,0 +1,35 @@ +function Expand-CIPPTenantGroups { + <# + .SYNOPSIS + Expands a list of groups to their members. + .DESCRIPTION + This function takes a a tenant filter object and expands it to include all members of the groups. + .EXAMPLE + + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param ( + [Parameter(Mandatory = $true)] + $TenantFilter + ) + $TenantList = Get-Tenants -IncludeErrors + $ExpandedGroups = $TenantFilter | ForEach-Object { + $FilterValue = $_ + # Group lookup + if ($_.type -eq 'Group') { + $members = (Get-TenantGroups -GroupId $_.value).members + $TenantList | Where-Object -Property customerId -In $members.customerId | ForEach-Object { + $GroupMember = $_ + [PSCustomObject]@{ + value = $GroupMember.defaultDomainName + label = $GroupMember.displayName + addedFields = $GroupMember | Select-Object defaultDomainName, displayName, customerId + type = 'Tenant' + } + } + } else { + $FilterValue + } + } + return $ExpandedGroups | Sort-Object -Property value -Unique +} diff --git a/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 b/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 new file mode 100644 index 000000000000..eee3fcdabf45 --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Get-CIPPTenantVariables.ps1 @@ -0,0 +1,77 @@ +function Get-CIPPTenantVariables { + <# + .SYNOPSIS + Retrieves custom variables for a specific tenant + .DESCRIPTION + This function retrieves custom variables from the CippReplacemap table for a specific tenant, + including both tenant-specific and global (AllTenants) variables. Tenant-specific variables + take precedence over global variables. + .PARAMETER TenantFilter + The tenant filter (customerId or defaultDomainName) + .PARAMETER IncludeGlobal + Include global variables (AllTenants) in the results + .FUNCTIONALITY + Internal + .EXAMPLE + Get-CIPPTenantVariables -TenantFilter 'contoso.com' + .EXAMPLE + Get-CIPPTenantVariables -TenantFilter 'eda053f2-4add-41dc-9feb-78a5fc0934c9' -IncludeGlobal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [switch]$IncludeGlobal + ) + + try { + $ReplaceTable = Get-CIPPTable -tablename 'CippReplacemap' + $Variables = @{} + + # Get tenant information to resolve both customerId and defaultDomainName + $Tenant = Get-Tenants -TenantFilter $TenantFilter + if (!$Tenant) { + Write-Warning "Tenant not found: $TenantFilter" + return $Variables + } + + # Load global variables first if requested (lower priority) + if ($IncludeGlobal) { + $GlobalMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq 'AllTenants'" + if ($GlobalMap) { + foreach ($Var in $GlobalMap) { + $Variables[$Var.RowKey] = @{ + Value = $Var.Value + Description = $Var.Description + Scope = 'Global' + } + } + } + } + + # Load tenant-specific variables (higher priority - will overwrite global) + # Try by customerId first + $TenantMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$($Tenant.customerId)'" + + # If no results found by customerId, try by defaultDomainName + if (!$TenantMap) { + $TenantMap = Get-CIPPAzDataTableEntity @ReplaceTable -Filter "PartitionKey eq '$($Tenant.defaultDomainName)'" + } + + if ($TenantMap) { + foreach ($Var in $TenantMap) { + $Variables[$Var.RowKey] = @{ + Value = $Var.Value + Description = $Var.Description + Scope = 'Tenant' + } + } + } + + return $Variables + + } catch { + Write-LogMessage -API 'TenantGroups' -message "Failed to retrieve tenant variables for $TenantFilter : $($_.Exception.Message)" -sev Error + return @{} + } +} diff --git a/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 new file mode 100644 index 000000000000..76db653fa17f --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 @@ -0,0 +1,188 @@ +if (-not $script:TenantGroupsCache) { + $script:TenantGroupsCache = @{ + Groups = $null + Members = $null + LastRefresh = $null + MembersByGroup = $null # Dictionary: GroupId -> members array + } +} + +# Result cache: keyed by "GroupId|TenantFilter|Dynamic" +if (-not $script:TenantGroupsResultCache) { + $script:TenantGroupsResultCache = @{} +} + +function Get-TenantGroups { + <# + .SYNOPSIS + Get tenant groups + .DESCRIPTION + Get tenant groups from Azure Table Storage with performance optimizations + using script-scoped caches and in-memory indexing + .PARAMETER GroupId + The group id to filter on + .PARAMETER TenantFilter + The tenant filter to apply to get the groups for a specific tenant + .PARAMETER Dynamic + Filter to only dynamic groups + #> + [CmdletBinding()] + param( + [string]$GroupId, + [string]$TenantFilter, + [switch]$Dynamic, + [switch]$SkipCache + ) + $CacheKey = "$GroupId|$TenantFilter|$($Dynamic.IsPresent)" + + if ($SkipCache) { + Write-Verbose "Skipping cache for: $CacheKey" + } elseif ($script:TenantGroupsResultCache.ContainsKey($CacheKey)) { + Write-Verbose "Returning cached result for: $CacheKey" + return $script:TenantGroupsResultCache[$CacheKey] + } + + # Early exit if specific GroupId requested but not allowed + if ($GroupId -and $script:CippAllowedGroupsStorage -and $script:CippAllowedGroupsStorage.Value) { + if ($script:CippAllowedGroupsStorage.Value -notcontains $GroupId) { + return @() + } + } + + # Load table data into cache if not already loaded + if (-not $script:TenantGroupsCache.Groups -or -not $script:TenantGroupsCache.Members -or $SkipCache) { + Write-Verbose 'Loading TenantGroups and TenantGroupMembers tables into cache' + + $GroupTable = Get-CippTable -tablename 'TenantGroups' + $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' + + $GroupTable.Filter = "PartitionKey eq 'TenantGroup'" + + # Load all groups and members once + $script:TenantGroupsCache.Groups = @(Get-CIPPAzDataTableEntity @GroupTable) + $script:TenantGroupsCache.Members = @(Get-CIPPAzDataTableEntity @MembersTable) + $script:TenantGroupsCache.LastRefresh = Get-Date + + # Build MembersByGroup index: GroupId -> array of member objects + $script:TenantGroupsCache.MembersByGroup = @{} + foreach ($Member in $script:TenantGroupsCache.Members) { + $GId = $Member.GroupId + if (-not $script:TenantGroupsCache.MembersByGroup.ContainsKey($GId)) { + $script:TenantGroupsCache.MembersByGroup[$GId] = [System.Collections.Generic.List[object]]::new() + } + $script:TenantGroupsCache.MembersByGroup[$GId].Add($Member) + } + + Write-Verbose "Cache loaded: $($script:TenantGroupsCache.Groups.Count) groups, $($script:TenantGroupsCache.Members.Count) members" + } + + # Get tenants (already cached and fast per requirements) + if ($TenantFilter -and $TenantFilter -ne 'allTenants') { + $TenantParams = @{ + TenantFilter = $TenantFilter + IncludeErrors = $true + } + } else { + $TenantParams = @{ + IncludeErrors = $true + } + } + $Tenants = Get-Tenants @TenantParams + + $TenantByCustomerId = @{} + foreach ($Tenant in $Tenants) { + $TenantByCustomerId[$Tenant.customerId] = $Tenant + } + + $Groups = $script:TenantGroupsCache.Groups + + if ($Dynamic.IsPresent) { + $Groups = $Groups | Where-Object { $_.GroupType -eq 'dynamic' } + } + + if ($GroupId) { + $Groups = $Groups | Where-Object { $_.RowKey -eq $GroupId } + } + + if ($script:CippAllowedGroupsStorage -and $script:CippAllowedGroupsStorage.Value) { + $Groups = $Groups | Where-Object { $script:CippAllowedGroupsStorage.Value -contains $_.RowKey } + } + + if (!$Groups -or $Groups.Count -eq 0) { + $script:TenantGroupsResultCache[$CacheKey] = @() + return @() + } + + # Process results based on TenantFilter + if ($TenantFilter -and $TenantFilter -ne 'allTenants') { + # Return simplified group list for specific tenant + $Results = [System.Collections.Generic.List[PSCustomObject]]::new() + $TargetCustomerId = $Tenants.customerId + + foreach ($Group in $Groups) { + $GroupMembers = $script:TenantGroupsCache.MembersByGroup[$Group.RowKey] + + if ($GroupMembers) { + # Check if this group has the target tenant as a member + $HasTenant = $false + foreach ($Member in $GroupMembers) { + if ($Member.customerId -eq $TargetCustomerId) { + $HasTenant = $true + break + } + } + + if ($HasTenant) { + $Results.Add([PSCustomObject]@{ + Id = $Group.RowKey + Name = $Group.Name + Description = $Group.Description + }) + } + } + } + + $FinalResults = $Results | Sort-Object Name + $script:TenantGroupsResultCache[$CacheKey] = $FinalResults + return $FinalResults + } else { + # Return full group details with members + $Results = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($Group in $Groups) { + $GroupMembers = $script:TenantGroupsCache.MembersByGroup[$Group.RowKey] + $MembersList = [System.Collections.Generic.List[hashtable]]::new() + + if ($GroupMembers) { + foreach ($Member in $GroupMembers) { + # Use indexed lookup instead of Where-Object + $Tenant = $TenantByCustomerId[$Member.customerId] + if ($Tenant) { + $MembersList.Add(@{ + customerId = $Tenant.customerId + displayName = $Tenant.displayName + defaultDomainName = $Tenant.defaultDomainName + }) + } + } + $SortedMembers = $MembersList | Sort-Object displayName + } else { + $SortedMembers = @() + } + + $Results.Add([PSCustomObject]@{ + Id = $Group.RowKey + Name = $Group.Name + Description = $Group.Description + GroupType = $Group.GroupType ?? 'static' + RuleLogic = $Group.RuleLogic ?? 'and' + DynamicRules = $Group.DynamicRules ? @($Group.DynamicRules | ConvertFrom-Json) : @() + Members = @($SortedMembers) + }) + } + + $FinalResults = $Results | Sort-Object Name + $script:TenantGroupsResultCache[$CacheKey] = $FinalResults + return $FinalResults + } +} diff --git a/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 new file mode 100644 index 000000000000..9cbc794e05fd --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 @@ -0,0 +1,285 @@ +function Update-CIPPDynamicTenantGroups { + <# + .SYNOPSIS + Update dynamic tenant groups based on their rules + .DESCRIPTION + This function processes dynamic tenant group rules and updates membership accordingly + .PARAMETER GroupId + The specific group ID to update. If not provided, all dynamic groups will be updated + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [string]$GroupId + ) + + try { + $GroupTable = Get-CippTable -tablename 'TenantGroups' + $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' + $LicenseCacheTable = Get-CippTable -tablename 'cachetenantskus' + + $Skus = Get-CIPPAzDataTableEntity @LicenseCacheTable -Filter "PartitionKey eq 'sku' and Timestamp ge datetime'$( (Get-Date).ToUniversalTime().AddHours(-8).ToString('yyyy-MM-ddTHH:mm:ssZ') )'" + + $SkuHashtable = @{} + foreach ($Sku in $Skus) { + if ($Sku.JSON -and (Test-Json -Json $Sku.JSON -ErrorAction SilentlyContinue)) { + $SkuHashtable[$Sku.RowKey] = $Sku.JSON | ConvertFrom-Json + } + } + + if ($GroupId) { + $DynamicGroups = Get-CIPPAzDataTableEntity @GroupTable -Filter "PartitionKey eq 'TenantGroup' and RowKey eq '$GroupId'" + } else { + $DynamicGroups = Get-CIPPAzDataTableEntity @GroupTable -Filter "PartitionKey eq 'TenantGroup' and GroupType eq 'dynamic'" + } + + if (-not $DynamicGroups) { + Write-LogMessage -API 'TenantGroups' -message 'No dynamic groups found to process' -sev Info + return @{ MembersAdded = 0; MembersRemoved = 0; GroupsProcessed = 0 } + } + + $AllTenants = Get-Tenants -IncludeErrors + $TotalMembersAdded = 0 + $TotalMembersRemoved = 0 + $GroupsProcessed = 0 + + # Pre-load tenant group memberships for tenantGroupMember rules + # This creates a cache to avoid repeated table queries during rule evaluation + $script:TenantGroupMembersCache = @{} + $AllGroupMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "PartitionKey eq 'Member'" + foreach ($Member in $AllGroupMembers) { + if (-not $script:TenantGroupMembersCache.ContainsKey($Member.GroupId)) { + $script:TenantGroupMembersCache[$Member.GroupId] = [system.collections.generic.list[string]]::new() + } + $script:TenantGroupMembersCache[$Member.GroupId].Add($Member.customerId) + } + + foreach ($Group in $DynamicGroups) { + try { + Write-LogMessage -API 'TenantGroups' -message "Processing dynamic group: $($Group.Name)" -sev Info + $Rules = @($Group.DynamicRules | ConvertFrom-Json) + # Build a single Where-Object string for AND logic + $WhereConditions = foreach ($Rule in $Rules) { + $Property = $Rule.property + $Operator = $Rule.operator + $Value = $Rule.value + + switch ($Property) { + 'delegatedAccessStatus' { + "`$_.delegatedPrivilegeStatus -$Operator '$($Value.value)'" + } + 'availableLicense' { + if ($Operator -in @('in', 'notin')) { + $arrayValues = if ($Value -is [array]) { $Value.guid } else { @($Value.guid) } + $arrayAsString = $arrayValues | ForEach-Object { "'$_'" } + if ($Operator -eq 'in') { + "(`$_.skuId | Where-Object { `$_ -in @($($arrayAsString -join ', ')) }).Count -gt 0" + } else { + "(`$_.skuId | Where-Object { `$_ -in @($($arrayAsString -join ', ')) }).Count -eq 0" + } + } else { + "`$_.skuId -$Operator '$($Value.guid)'" + } + } + 'availableServicePlan' { + if ($Operator -in @('in', 'notin')) { + $arrayValues = if ($Value -is [array]) { $Value.value } else { @($Value.value) } + $arrayAsString = $arrayValues | ForEach-Object { "'$_'" } + if ($Operator -eq 'in') { + # Keep tenants with ANY of the provided plans + "(`$_.servicePlans | Where-Object { `$_ -in @($($arrayAsString -join ', ')) }).Count -gt 0" + } else { + # Exclude tenants with ANY of the provided plans + "(`$_.servicePlans | Where-Object { `$_ -in @($($arrayAsString -join ', ')) }).Count -eq 0" + } + } else { + "`$_.servicePlans -$Operator '$($Value.value)'" + } + } + 'tenantGroupMember' { + # Get members of the referenced tenant group(s) + if ($Operator -in @('in', 'notin')) { + # Handle array of group IDs + $ReferencedGroupIds = @($Value.value) + + # Collect all unique member customerIds from all referenced groups + $AllMembers = [System.Collections.Generic.HashSet[string]]::new() + foreach ($GroupId in $ReferencedGroupIds) { + if ($script:TenantGroupMembersCache.ContainsKey($GroupId)) { + foreach ($MemberId in $script:TenantGroupMembersCache[$GroupId]) { + [void]$AllMembers.Add($MemberId) + } + } + } + + # Convert to array string for condition + $MemberArray = $AllMembers | ForEach-Object { "'$_'" } + $MemberArrayString = $MemberArray -join ', ' + + if ($Operator -eq 'in') { + "`$_.customerId -in @($MemberArrayString)" + } else { + "`$_.customerId -notin @($MemberArrayString)" + } + } else { + # Single value with other operators + $ReferencedGroupId = $Value.value + "`$_.customerId -$Operator `$script:TenantGroupMembersCache['$ReferencedGroupId']" + } + } + 'customVariable' { + # Custom variable matching - value contains variable name and expected value + # Handle case where variableName might be an object (autocomplete option) or a string + $VariableName = if ($Value.variableName -is [string]) { + $Value.variableName + } elseif ($Value.variableName.value) { + $Value.variableName.value + } else { + $Value.variableName + } + $ExpectedValue = $Value.value + # Escape single quotes in expected value for the condition string + $EscapedExpectedValue = $ExpectedValue -replace "'", "''" + + switch ($Operator) { + 'eq' { + "(`$_.customVariables.ContainsKey('$VariableName') -and `$_.customVariables['$VariableName'].Value -eq '$EscapedExpectedValue')" + } + 'ne' { + "(-not `$_.customVariables.ContainsKey('$VariableName') -or `$_.customVariables['$VariableName'].Value -ne '$EscapedExpectedValue')" + } + 'like' { + "(`$_.customVariables.ContainsKey('$VariableName') -and `$_.customVariables['$VariableName'].Value -like '*$EscapedExpectedValue*')" + } + 'notlike' { + "(-not `$_.customVariables.ContainsKey('$VariableName') -or `$_.customVariables['$VariableName'].Value -notlike '*$EscapedExpectedValue*')" + } + } + } + default { + Write-LogMessage -API 'TenantGroups' -message "Unknown property type: $Property" -sev Warning + $null + } + } + + } + if (!$WhereConditions) { + throw 'Generating the conditions failed. The conditions seem to be empty.' + } + Write-Information "Generated where conditions: $($WhereConditions | ConvertTo-Json )" + $TenantObj = $AllTenants | ForEach-Object { + if ($Rules.property -contains 'availableLicense') { + if ($SkuHashtable.ContainsKey($_.customerId)) { + Write-Information "Using cached licenses for tenant $($_.defaultDomainName)" + $LicenseInfo = $SkuHashtable[$_.customerId] + } else { + Write-Information "Fetching licenses for tenant $($_.defaultDomainName)" + try { + $LicenseInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/subscribedSkus' -TenantId $_.defaultDomainName + # Cache the result + $CacheEntity = @{ + PartitionKey = 'sku' + RowKey = [string]$_.customerId + JSON = [string]($LicenseInfo | ConvertTo-Json -Depth 5 -Compress) + } + Add-CIPPAzDataTableEntity @LicenseCacheTable -Entity $CacheEntity -Force + } catch { + Write-LogMessage -API 'TenantGroups' -message 'Error getting licenses' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) + } + } + } + + # Fetch custom variables for this tenant if any rules use customVariable + $TenantVariables = @{} + if ($Rules.property -contains 'customVariable') { + try { + $TenantVariables = Get-CIPPTenantVariables -TenantFilter $_.customerId -IncludeGlobal + } catch { + Write-Information "Error fetching custom variables for tenant $($_.defaultDomainName): $($_.Exception.Message)" + Write-LogMessage -API 'TenantGroups' -message 'Error getting tenant variables' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) + } + } + + try { + $SKUId = $LicenseInfo.SKUId ?? @() + $ServicePlans = (Get-CIPPTenantCapabilities -TenantFilter $_.defaultDomainName).psobject.properties.name + } catch { + Write-Information "Error fetching capabilities for tenant $($_.defaultDomainName): $($_.Exception.Message)" + Write-LogMessage -API 'TenantGroups' -message 'Error getting tenant capabilities' -Tenant $_.defaultDomainName -sev Warning -LogData (Get-CippException -Exception $_) + } + [pscustomobject]@{ + customerId = $_.customerId + defaultDomainName = $_.defaultDomainName + displayName = $_.displayName + skuId = $SKUId + servicePlans = $ServicePlans + delegatedPrivilegeStatus = $_.delegatedPrivilegeStatus + customVariables = $TenantVariables + } + } + # Combine all conditions with the specified logic (AND or OR) + $LogicOperator = if ($Group.RuleLogic -eq 'or') { ' -or ' } else { ' -and ' } + $WhereString = $WhereConditions -join $LogicOperator + Write-Information "Evaluating tenants with condition: $WhereString" + Write-LogMessage -API 'TenantGroups' -message "Evaluating tenants for group '$($Group.Name)' with condition: $WhereString" -sev Info + + $ScriptBlock = [ScriptBlock]::Create($WhereString) + $MatchingTenants = $TenantObj | Where-Object $ScriptBlock + + Write-Information "Found $($MatchingTenants.Count) matching tenants for group '$($Group.Name)'" + + $CurrentMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "PartitionKey eq 'Member' and GroupId eq '$($Group.RowKey)'" + $CurrentMemberIds = $CurrentMembers.customerId + $NewMemberIds = $MatchingTenants.customerId + + $ToAdd = $NewMemberIds | Where-Object { $_ -notin $CurrentMemberIds } + $ToRemove = $CurrentMemberIds | Where-Object { $_ -notin $NewMemberIds } + + foreach ($TenantId in $ToAdd) { + $TenantInfo = $AllTenants | Where-Object { $_.customerId -eq $TenantId } + $MemberEntity = @{ + PartitionKey = 'Member' + RowKey = '{0}-{1}' -f $Group.RowKey, $TenantId + GroupId = $Group.RowKey + customerId = "$TenantId" + } + Add-CIPPAzDataTableEntity @MembersTable -Entity $MemberEntity -Force + Write-LogMessage -API 'TenantGroups' -message "Added tenant '$($TenantInfo.displayName)' to dynamic group '$($Group.Name)'" -sev Info + $TotalMembersAdded++ + } + + foreach ($TenantId in $ToRemove) { + $TenantInfo = $AllTenants | Where-Object { $_.customerId -eq $TenantId } + $MemberToRemove = $CurrentMembers | Where-Object { $_.customerId -eq $TenantId } + if ($MemberToRemove) { + Remove-AzDataTableEntity @MembersTable -Entity $MemberToRemove -Force + Write-LogMessage -API 'TenantGroups' -message "Removed tenant '$($TenantInfo.displayName)' from dynamic group '$($Group.Name)'" -sev Info + $TotalMembersRemoved++ + } + } + + $GroupsProcessed++ + Write-LogMessage -API 'TenantGroups' -message "Group '$($Group.Name)' updated: +$($ToAdd.Count) members, -$($ToRemove.Count) members" -sev Info + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'TenantGroups' -message "Failed to process group '$($Group.Name)': $ErrorMessage" -sev Error + } + } + + Write-LogMessage -API 'TenantGroups' -message "Dynamic tenant group update completed. Groups processed: $GroupsProcessed, Members added: $TotalMembersAdded, Members removed: $TotalMembersRemoved" -sev Info + + return @{ + MembersAdded = $TotalMembersAdded + MembersRemoved = $TotalMembersRemoved + GroupsProcessed = $GroupsProcessed + } + + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'TenantGroups' -message "Failed to update dynamic tenant groups: $ErrorMessage" -sev Error + throw + } +} + diff --git a/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 b/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 new file mode 100644 index 000000000000..e95cdb074f8d --- /dev/null +++ b/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 @@ -0,0 +1,204 @@ +function Test-CIPPAccessPermissions { + [CmdletBinding()] + param ( + $TenantFilter, + $APIName = 'Access Check', + $Headers + ) + + $User = $request.headers.'x-ms-client-principal' + Write-LogMessage -Headers $User -API $APINAME -message 'Started permissions check' -Sev 'Debug' + $Messages = [System.Collections.Generic.List[string]]::new() + $ErrorMessages = [System.Collections.Generic.List[string]]::new() + $MissingPermissions = [System.Collections.Generic.List[string]]::new() + $Links = [System.Collections.Generic.List[object]]::new() + $AccessTokenDetails = [PSCustomObject]@{ + AppId = '' + AppName = '' + Audience = '' + AuthMethods = '' + IPAddress = '' + Name = '' + Scope = '' + TenantId = '' + UserPrincipalName = '' + } + $Success = $true + try { + Set-Location (Get-Item $PSScriptRoot).FullName + $null = Get-CIPPAuthentication + $GraphToken = Get-GraphToken -returnRefresh $true -SkipCache $true + if ($GraphToken) { + $GraphPermissions = Get-CippSamPermissions + } + if ($env:MSI_SECRET) { + try { + $KV = $env:WEBSITE_DEPLOYMENT_ID + $KeyVaultRefresh = Get-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -AsPlainText + if ($env:RefreshToken -ne $KeyVaultRefresh) { + $Success = $false + $ErrorMessages.Add('Your refresh token does not match key vault, wait 30 minutes for the function app to update.') | Out-Null + } else { + $Messages.Add('Your refresh token matches key vault.') | Out-Null + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $User -API $APINAME -tenant $tenant -message "Key vault exception: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + } else { + $Messages.Add('Your refresh token matches key vault.') | Out-Null + } + + try { + $AccessTokenDetails = Read-JwtAccessDetails -Token $GraphToken.access_token -erroraction SilentlyContinue + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $AccessTokenDetails = [PSCustomObject]@{ + Name = '' + AuthMethods = @() + } + Write-LogMessage -Headers $User -API $APINAME -tenant $tenant -message "Token exception: $($ErrorMessage.NormalizedError_) " -Sev 'Error' -LogData $ErrorMessage + $Success = $false + } + + if ($AccessTokenDetails.Name -eq '') { + $ErrorMessages.Add('Your refresh token is invalid, check for line breaks or missing characters.') | Out-Null + $Success = $false + } else { + if ($AccessTokenDetails.Name -match 'CIPP' -or $AccessTokenDetails.UserPrincipalName -match 'CIPP' -or $AccessTokenDetails.Name -match 'Service' -or $AccessTokenDetails.UserPrincipalName -match 'Service') { + $Messages.Add('You are running CIPP as a service account.') | Out-Null + } else { + $ErrorMessages.Add('You do not appear to be running CIPP as a service account.') | Out-Null + $Success = $false + $Links.Add([PSCustomObject]@{ + Text = 'Creating the CIPP Service Account' + Href = 'https://docs.cipp.app/setup/installation/creating-the-cipp-service-account-gdap-ready' + } + ) | Out-Null + } + + if ($AccessTokenDetails.AuthMethods -contains 'mfa') { + $Messages.Add('Your access token contains the MFA claim.') | Out-Null + } else { + $ErrorMessages.Add('Your access token does not contain the MFA claim, Refresh your SAM tokens.') | Out-Null + + $Success = $false + $Links.Add([PSCustomObject]@{ + Text = 'MFA Troubleshooting' + Href = 'https://docs.cipp.app/troubleshooting/troubleshooting#multi-factor-authentication-troubleshooting' + } + ) | Out-Null + } + } + + + $MissingSamPermissions = $GraphPermissions.MissingPermissions + if (($MissingSamPermissions.PSObject.Properties.Name | Measure-Object).Count -gt 0) { + + $MissingPermissions = foreach ($AppId in $MissingSamPermissions.PSObject.Properties.Name) { + $ServicePrincipal = $GraphPermissions.UsedServicePrincipals | Where-Object -Property appId -EQ $AppId + + foreach ($Permission in $MissingSamPermissions.$AppId.applicationPermissions) { + [PSCustomObject]@{ + Application = $ServicePrincipal.displayName + Type = 'Application' + PermissionId = $Permission.id + Permission = $Permission.value + } + } + foreach ($Permission in $MissingSamPermissions.$AppId.delegatedPermissions) { + [PSCustomObject]@{ + Application = $ServicePrincipal.displayName + Type = 'Delegated' + PermissionId = $Permission.id + Permission = $Permission.value + } + } + } + $Success = $false + $Links.Add([PSCustomObject]@{ + Text = 'Permissions' + Href = 'https://docs.cipp.app/setup/installation/permissions' + } + ) | Out-Null + } else { + $Messages.Add('You have all the required permissions.') | Out-Null + } + + $ApplicationToken = Get-GraphToken -returnRefresh $true -SkipCache $true -AsApp $true + $ApplicationTokenDetails = Read-JwtAccessDetails -Token $ApplicationToken.access_token -erroraction SilentlyContinue | Select-Object + + $LastUpdate = [DateTime]::SpecifyKind($GraphPermissions.Timestamp.ToString('yyyy-MM-ddTHH:mm:ssZ'), [DateTimeKind]::Utc) + $CpvTable = Get-CippTable -tablename 'cpvtenants' + $CpvRefresh = Get-CippAzDataTableEntity @CpvTable -Filter "PartitionKey eq 'Tenant'" + $TenantList = Get-Tenants -IncludeErrors | Where-Object { $_.customerId -ne $env:TenantID -and $_.Excluded -eq $false } + $CPVRefreshList = [System.Collections.Generic.List[object]]::new() + $CPVSuccess = $true + foreach ($Tenant in $TenantList) { + $LastRefresh = ($CpvRefresh | Where-Object { $_.RowKey -eq $Tenant.customerId }).Timestamp.DateTime + if ($LastRefresh -lt $LastUpdate) { + $CPVSuccess = $false + $CPVRefreshList.Add([PSCustomObject]@{ + CustomerId = $Tenant.customerId + DisplayName = $Tenant.displayName + DefaultDomainName = $Tenant.DefaultDomainName + LastRefresh = $LastRefresh + }) + } + } + if (!$CPVSuccess) { + $ErrorMessages.Add('Some tenants need a CPV refresh.') | Out-Null + $Success = $false + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Headers $User -API $APINAME -message "Permissions check failed: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + $ErrorMessages.Add("We could not connect to the API to retrieve the permissions. There might be a problem with the secure application model configuration. The returned error is: $($ErrorMessage.NormalizedError)") | Out-Null + + try { + $MFAServicePolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/mfaServicePolicy' -tenantid $env:TenantID -AsApp $true -NoAuthCheck $true + if ($MFAServicePolicy.rememberMfaOnTrustedDevice.isEnabled -eq $true -and $MFAServicePolicy.rememberMfaOnTrustedDevice.allowedNumberOfDays -gt 0) { + $ErrorMessages.Add("MFA Service Policy has a session lifetime of $($MFAServicePolicy.rememberMfaOnTrustedDevice.allowedNumberOfDays) days. This may cause authentication issues for your service account.") | Out-Null + $Links.Add([PSCustomObject]@{ + Text = 'Troubleshooting' + Href = 'https://docs.cipp.app/troubleshooting/troubleshooting#multi-factor-authentication-troubleshooting' + } + ) | Out-Null + } + } catch {} + + $Success = $false + } + + if ($Success -eq $true) { + $Messages.Add('No service account issues have been found. CIPP is ready for use.') | Out-Null + } + + $AccessCheck = [PSCustomObject]@{ + AccessTokenDetails = $AccessTokenDetails + ApplicationTokenDetails = $ApplicationTokenDetails + Messages = @($Messages) + ErrorMessages = @($ErrorMessages) + MissingPermissions = @($MissingPermissions) + CPVRefreshList = @($CPVRefreshList) + Links = @($Links) + Success = $Success + } + + $Table = Get-CIPPTable -TableName AccessChecks + $Data = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AccessCheck' and RowKey eq 'AccessPermissions'" + if ($Data) { + $Data.Data = [string](ConvertTo-Json -InputObject $AccessCheck -Depth 10 -Compress) + } else { + $Data = @{ + PartitionKey = 'AccessCheck' + RowKey = 'AccessPermissions' + Data = [string](ConvertTo-Json -InputObject $AccessCheck -Depth 10 -Compress) + } + } + try { + Add-CIPPAzDataTableEntity @Table -Entity $Data -Force + } catch {} + + return $AccessCheck +} diff --git a/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 b/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 new file mode 100644 index 000000000000..4ca993cbc631 --- /dev/null +++ b/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 @@ -0,0 +1,171 @@ +function Test-CIPPAccessTenant { + [CmdletBinding()] + param ( + $Tenant = 'AllTenants', + $APIName = 'Access Check', + $Headers + ) + $ExpectedRoles = @( + @{ Name = 'Application Administrator'; Id = '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3' }, + @{ Name = 'User Administrator'; Id = 'fe930be7-5e62-47db-91af-98c3a49a38b1' }, + @{ Name = 'Intune Administrator'; Id = '3a2c62db-5318-420d-8d74-23affee5d9d5' }, + @{ Name = 'Exchange Administrator'; Id = '29232cdf-9323-42fd-ade2-1d097af3e4de' }, + @{ Name = 'Security Administrator'; Id = '194ae4cb-b126-40b2-bd5b-6091b380977d' }, + @{ Name = 'Cloud App Security Administrator'; Id = '892c5842-a9a6-463a-8041-72aa08ca3cf6' }, + @{ Name = 'Cloud Device Administrator'; Id = '7698a772-787b-4ac8-901f-60d6b08affd2' }, + @{ Name = 'Teams Administrator'; Id = '69091246-20e8-4a56-aa4d-066075b2a7a8' }, + @{ Name = 'SharePoint Administrator'; Id = 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c' }, + @{ Name = 'Authentication Policy Administrator'; Id = '0526716b-113d-4c15-b2c8-68e3c22b9f80' }, + @{ Name = 'Privileged Role Administrator'; Id = 'e8611ab8-c189-46e8-94e1-60213ab1f814' }, + @{ Name = 'Privileged Authentication Administrator'; Id = '7be44c8a-adaf-4e2a-84d6-ab2649e08a13' } + ) + + $TenantParams = @{ + IncludeErrors = $true + } + if ($Tenant -eq 'AllTenants') { + $TenantList = Get-Tenants @TenantParams + $Queue = New-CippQueueEntry -Name 'Tenant Access Check' -TotalTasks ($TenantList | Measure-Object).Count + + $InputObject = [PSCustomObject]@{ + QueueFunction = @{ + FunctionName = 'GetTenants' + TenantParams = $TenantParams + DurableName = 'CIPPAccessTenantTest' + QueueId = $Queue.RowKey + } + OrchestratorName = 'CippAccessTenantTest' + SkipLog = $true + } + $null = Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject ($InputObject | ConvertTo-Json -Depth 10) + $Results = "Queued $($TenantList.Count) tenants for access checks" + + } else { + $TenantParams.TenantFilter = $Tenant + $Tenant = Get-Tenants @TenantParams + + $GraphStatus = $false + $ExchangeStatus = $false + + $Results = [PSCustomObject]@{ + TenantName = $Tenant.defaultDomainName + GraphStatus = $false + GraphTest = '' + ExchangeStatus = $false + ExchangeTest = '' + GDAPRoles = '' + MissingRoles = '' + OrgManagementRoles = @() + OrgManagementRolesMissing = @() + LastRun = (Get-Date).ToUniversalTime() + } + + $AddedText = '' + try { + $TenantId = $Tenant.customerId + $BulkRequests = $ExpectedRoles | ForEach-Object { @( + @{ + id = "roleManagement_$($_.Id)" + method = 'GET' + url = "roleManagement/directory/roleAssignments?`$filter=roleDefinitionId eq '$($_.Id)'&`$expand=principal" + } + ) + } + $GDAPRolesGraph = New-GraphBulkRequest -tenantid $TenantId -Requests $BulkRequests + $GDAPRoles = [System.Collections.Generic.List[object]]::new() + $MissingRoles = [System.Collections.Generic.List[object]]::new() + + foreach ($RoleId in $ExpectedRoles) { + $GraphRole = $GDAPRolesGraph.body.value | Where-Object -Property roleDefinitionId -EQ $RoleId.Id + $Role = $GraphRole.principal | Where-Object -Property organizationId -EQ $env:TenantID + + if (!$Role) { + $MissingRoles.Add( + [PSCustomObject]@{ + Name = $RoleId.Name + Type = 'Tenant' + } + ) + $AddedText = 'but missing GDAP roles' + } else { + $GDAPRoles.Add([PSCustomObject]@{ + Role = $RoleId.Name + Group = $Role.displayName + }) + } + } + + $GraphTest = "Successfully connected to Graph $($AddedText)" + $GraphStatus = $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $GraphTest = "Failed to connect to Graph: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APINAME -tenant $tenant.defaultDomainName -message "Tenant access check failed: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + } + + try { + $null = New-ExoRequest -tenantid $Tenant.customerId -cmdlet 'Get-OrganizationConfig' -ErrorAction Stop + + $OrgManagementRoles = New-ExoRequest -tenantid $Tenant.customerId -cmdlet 'Get-ManagementRoleAssignment' -cmdParams @{ Delegating = $false } | Where-Object { $_.RoleAssigneeName -eq 'Organization Management' } | Select-Object -Property Role, Guid + Write-Information "Found $($OrgManagementRoles.Count) Organization Management roles in Exchange" + $Results.OrgManagementRoles = $OrgManagementRoles + + $RoleDefinitions = New-GraphGetRequest -tenantid $Tenant.customerId -uri 'https://graph.microsoft.com/beta/roleManagement/exchange/roleDefinitions' + Write-Information "Found $($RoleDefinitions.Count) Exchange role definitions" + + $BasePath = Get-Module -Name 'CIPPCore' | Select-Object -ExpandProperty ModuleBase + $AllOrgManagementRoles = Get-Content -Path "$BasePath\lib\data\OrganizationManagementRoles.json" -ErrorAction Stop | ConvertFrom-Json + Write-Information "Loaded all Organization Management roles from $BasePath\lib\data\OrganizationManagementRoles.json" + + $AvailableRoles = $RoleDefinitions | Where-Object -Property displayName -In $AllOrgManagementRoles | Select-Object -Property displayName, id, description + Write-Information "Found $($AvailableRoles.Count) available Organization Management roles in Exchange" + $MissingOrgMgmtRoles = $AvailableRoles | Where-Object { $OrgManagementRoles.Role -notcontains $_.displayName } + if (($MissingOrgMgmtRoles | Measure-Object).Count -gt 0) { + $Results.OrgManagementRolesMissing = $MissingOrgMgmtRoles + Write-Warning "Found $($MissingRoles.Count) missing Organization Management roles in Exchange" + $ExchangeStatus = $false + $ExchangeTest = 'Connected to Exchange but missing permissions in Organization Management. This may impact the ability to manage Exchange features' + Write-LogMessage -headers $Headers -API $APINAME -tenant $tenant.defaultDomainName -message 'Tenant access check for Exchange failed: Missing Organization Management roles' -Sev 'Warning' -LogData $MissingOrgMgmtRoles + } else { + Write-Warning 'All available Organization Management roles are present in Exchange' + $ExchangeStatus = $true + $ExchangeTest = 'Successfully connected to Exchange' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $ReportedError = ($_.ErrorDetails | ConvertFrom-Json -ErrorAction SilentlyContinue) + $Message = if ($ReportedError.error.details.message) { $ReportedError.error.details.message } else { $ReportedError.error.innererror.internalException.message } + if ($null -eq $Message) { $Message = $($_.Exception.Message) } + + $ExchangeTest = "Failed to connect to Exchange: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APINAME -tenant $tenant.defaultDomainName -message "Tenant access check for Exchange failed: $($ErrorMessage.NormalizedError) " -Sev 'Error' -LogData $ErrorMessage + Write-Warning "Failed to connect to Exchange: $($_.Exception.Message)" + } + + if ($GraphStatus -and $ExchangeStatus) { + Write-LogMessage -headers $Headers -API $APINAME -tenant $Tenant.defaultDomainName -tenantId $Tenant.customerId -message 'Tenant access check executed successfully' -Sev 'Info' + } + + $Results.GraphStatus = $GraphStatus + $Results.GraphTest = $GraphTest + $Results.ExchangeStatus = $ExchangeStatus + $Results.ExchangeTest = $ExchangeTest + $Results.GDAPRoles = @($GDAPRoles) + $Results.MissingRoles = @($MissingRoles) + + $Headers = $Headers.UserDetails + $Entity = @{ + PartitionKey = 'TenantAccessChecks' + RowKey = $Tenant.customerId + Data = [string]($Results | ConvertTo-Json -Depth 10 -Compress) + } + $Table = Get-CIPPTable -TableName 'AccessChecks' + try { + $null = Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force + } catch { + Write-LogMessage -headers $Headers -API $APINAME -tenant $Tenant.defaultDomainName -message "Failed to add access check for $($Tenant.customerId): $($_.Exception.Message)" -Sev 'Error' -LogData (Get-CippException -Exception $_) + } + } + + return $Results +} diff --git a/Modules/CIPPCore/Public/Test-CIPPGDAPRelationships.ps1 b/Modules/CIPPCore/Public/Test-CIPPGDAPRelationships.ps1 new file mode 100644 index 000000000000..18748ca7e5f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Test-CIPPGDAPRelationships.ps1 @@ -0,0 +1,127 @@ +function Test-CIPPGDAPRelationships { + [CmdletBinding()] + param ( + $TenantFilter, + $APIName = 'Access Check', + $Headers + ) + + $GDAPissues = [System.Collections.Generic.List[object]]@() + $MissingGroups = [System.Collections.Generic.List[object]]@() + try { + #Get graph request to list all relationships. + $Relationships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$filter=status eq 'active'" -tenantid $env:TenantID -NoAuthCheck $true + #Group relationships by tenant. The tenant information is in $relationships.customer.TenantId. + $RelationshipsByTenant = $Relationships | Group-Object -Property { $_.customer.TenantId } + foreach ($Tenant in $RelationshipsByTenant) { + if ($Tenant.Group.displayName.count -le 1 -and $Tenant.Group.displayName -like 'MLT_*') { + $GDAPissues.add([PSCustomObject]@{ + Type = 'Error' + Issue = 'This tenant only has a MLT(Microsoft Led Transition) relationship. This is a read-only relationship. You must migrate this tenant to GDAP.' + Tenant = [string]$Tenant.Group.customer.displayName + Relationship = [string]$Tenant.Group.displayName + Link = 'https://docs.cipp.app/setup/gdap/index' + }) | Out-Null + } + foreach ($Group in $Tenant.Group) { + if ('62e90394-69f5-4237-9190-012177145e10' -in $Group.accessDetails.unifiedRoles.roleDefinitionId) { + $GDAPissues.add([PSCustomObject]@{ + Type = 'Warning' + Issue = 'The relationship has global administrator access. Auto-Extend is not available.' + Tenant = [string]$Group.customer.displayName + Relationship = [string]$Group.displayName + Link = 'https://docs.cipp.app/setup/installation/recommended-roles' + + }) | Out-Null + } + } + + } + $me = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/me?$select=UserPrincipalName' -NoAuthCheck $true).UserPrincipalName + $CIPPGroupCount = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/`$count?`$filter=startsWith(displayName,'M365 GDAP')" -NoAuthCheck $true -ComplexFilter + $SAMUserMemberships = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/me/memberOf?$select=id,displayName,isAssignableToRole' -NoAuthCheck $true + $ExpectedGroups = @( + 'AdminAgents', + 'M365 GDAP Application Administrator', + 'M365 GDAP User Administrator', + 'M365 GDAP Intune Administrator', + 'M365 GDAP Exchange Administrator', + 'M365 GDAP Security Administrator', + 'M365 GDAP Cloud App Security Administrator', + 'M365 GDAP Cloud Device Administrator', + 'M365 GDAP Teams Administrator', + 'M365 GDAP SharePoint Administrator', + 'M365 GDAP Authentication Policy Administrator', + 'M365 GDAP Privileged Role Administrator', + 'M365 GDAP Privileged Authentication Administrator' + ) + $RoleAssignableGroups = $SAMUserMemberships | Where-Object { $_.isAssignableToRole } + $NestedGroups = foreach ($Group in $RoleAssignableGroups) { + Write-Information "Getting nested group memberships for $($Group.displayName)" + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups/$($Group.id)/memberOf?`$select=id,displayName" -NoAuthCheck $true + } + foreach ($Group in $ExpectedGroups) { + $GroupFound = $false + foreach ($Membership in ($SAMUserMemberships + $NestedGroups)) { + if ($Membership.displayName -match $Group) { + Write-Information "Found $Group in group memberships" + $GroupFound = $true + } + } + if (-not $GroupFound) { + if ($Group -eq 'AdminAgents') { $Type = 'Error' } else { $Type = 'Warning' } + $GDAPissues.add([PSCustomObject]@{ + Type = $Type + Issue = "$($Group) is not assigned to the SAM user $me. If you have migrated outside of CIPP this is to be expected. Please perform an access check to make sure you have the correct set of permissions." + Tenant = '*Partner Tenant' + Relationship = 'None' + Link = 'https://docs.cipp.app/setup/gdap/troubleshooting#groups' + + }) | Out-Null + $MissingGroups.Add([PSCustomObject]@{ + Name = $Group + Type = 'SAM User Membership' + }) | Out-Null + } + } + if ($CIPPGroupCount -lt 12) { + $GDAPissues.add([PSCustomObject]@{ + Type = 'Warning' + Issue = "We only found $($CIPPGroupCount) of the 12 required groups. If you have migrated outside of CIPP this is to be expected. Please perform an access check to make sure you have the correct set of permissions." + Tenant = '*Partner Tenant' + Relationship = 'None' + Link = 'https://docs.cipp.app/setup/gdap/troubleshooting#groups' + + }) | Out-Null + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APINAME -message "Failed to run GDAP check for $($TenantFilter): $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } + + $GDAPRelationships = [PSCustomObject]@{ + GDAPIssues = @($GDAPissues) + MissingGroups = @($MissingGroups) + Memberships = @($SAMUserMemberships) + CIPPGroupCount = $CIPPGroupCount + } + + $Table = Get-CIPPTable -TableName AccessChecks + $Data = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AccessCheck' and RowKey eq 'GDAPRelationships'" + + if ($Data) { + $Data.Data = [string](ConvertTo-Json -InputObject $GDAPRelationships -Depth 10 -Compress) + } else { + $Data = @{ + PartitionKey = 'AccessCheck' + RowKey = 'GDAPRelationships' + Data = [string](ConvertTo-Json -InputObject $GDAPRelationships -Depth 10 -Compress) + } + } + try { + Add-CIPPAzDataTableEntity @Table -Entity $Data -Force + } catch {} + + return $GDAPRelationships +} diff --git a/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 b/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 new file mode 100644 index 000000000000..87caf6fc8950 --- /dev/null +++ b/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 @@ -0,0 +1,86 @@ +function Test-CIPPRerun { + [CmdletBinding()] + param ( + $TenantFilter, + $Type, + $API, + $Settings, + $Headers, + [switch]$Clear, + [switch]$ClearAll, + [int64]$Interval = 0, # Custom interval in seconds (for scheduled tasks) + [int64]$BaseTime = 0 # Base time to calculate from (defaults to current time) + ) + $RerunTable = Get-CIPPTable -tablename 'RerunCache' + + # Use custom interval if provided, otherwise use type-based defaults + if ($Interval -gt 0) { + $EstimatedDifference = $Interval + } else { + $EstimatedDifference = switch ($Type) { + 'Standard' { 9800 } # 2 hours 45 minutes ish. + 'BPA' { 85000 } # 24 hours ish. + default { throw "Unknown type: $Type" } + } + } + + # Use BaseTime if provided, otherwise use current time + $CurrentUnixTime = if ($BaseTime -gt 0) { $BaseTime } else { [int][double]::Parse((Get-Date -UFormat %s)) } + $EstimatedNextRun = $CurrentUnixTime + $EstimatedDifference + + try { + $RerunData = Get-CIPPAzDataTableEntity @RerunTable -filter "PartitionKey eq '$($TenantFilter)'" | Where-Object { $_.RowKey -match "^$($Type)_$($API)" } + if ($ClearAll.IsPresent) { + $AllRerunData = Get-CIPPAzDataTableEntity @RerunTable + if ($AllRerunData) { + Write-Information "Clearing all rerun cache entries for $($Type)_$($API)" + Remove-AzDataTableEntity @RerunTable -Entity $AllRerunData -Force + } + return $false + } + + if ($Clear.IsPresent) { + if ($RerunData) { + Remove-AzDataTableEntity @RerunTable -Entity $RerunData + } + return $false + } elseif ($RerunData) { + if ($Settings -and $RerunData.Settings) { + Write-Host 'Testing rerun settings' + $PreviousSettings = $RerunData.Settings + $NewSettings = $($Settings | ConvertTo-Json -Depth 10 -Compress) + if ($NewSettings.Length -ne $PreviousSettings.Length) { + Write-Host "$($NewSettings.Length) vs $($PreviousSettings.Length) - settings have changed." + $RerunData.EstimatedNextRun = $EstimatedNextRun + $RerunData.Settings = "$($Settings | ConvertTo-Json -Depth 10 -Compress)" + Add-CIPPAzDataTableEntity @RerunTable -Entity $RerunData -Force + return $false # Not a rerun because settings have changed. + } + } + if ($RerunData.EstimatedNextRun -gt $CurrentUnixTime) { + Write-LogMessage -API $API -message "Standard rerun detected for $($API). Prevented from running again." -tenant $TenantFilter -headers $Headers -Sev 'Info' + return $true + } else { + $RerunData.EstimatedNextRun = $EstimatedNextRun + $RerunData.Settings = "$($Settings | ConvertTo-Json -Depth 10 -Compress)" + Add-CIPPAzDataTableEntity @RerunTable -Entity $RerunData -Force + return $false + } + } else { + $EstimatedNextRun = $CurrentUnixTime + $EstimatedDifference + $NewEntity = @{ + PartitionKey = "$TenantFilter" + RowKey = "$($Type)_$($API)" + Settings = "$($Settings | ConvertTo-Json -Depth 10 -Compress)" + EstimatedNextRun = $EstimatedNextRun + } + Add-CIPPAzDataTableEntity @RerunTable -Entity $NewEntity -Force + return $false + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Host "Could not detect if this is a rerun: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $API -message "Could not detect if this is a rerun: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData (Get-CippException -Exception $_) + return $false + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA-Missing-Caches.md b/Modules/CIPPCore/Public/Tests/CISA-Missing-Caches.md new file mode 100644 index 000000000000..5b7bd652195a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA-Missing-Caches.md @@ -0,0 +1,195 @@ +# Missing CIPP Caches for CISA Tests + +This document lists the caches that need to be created to support the remaining CISA tests that cannot currently be implemented. + +## ✅ Implemented Cache Functions + +### 1. ✅ CASMailbox Cache +**Required For:** +- ✅ MS.EXO.5.1 - SMTP Authentication + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheCASMailbox.ps1 + +--- + +### 2. ✅ ExoSharingPolicy Cache +**Required For:** +- ✅ MS.EXO.6.1 - Contact Sharing +- ✅ MS.EXO.6.2 - Calendar Sharing + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheExoSharingPolicy.ps1 + +--- + +### 3. ✅ ExoAdminAuditLogConfig Cache +**Required For:** +- ✅ MS.EXO.17.1 - Audit Log +- ✅ MS.EXO.17.3 - Audit Log Retention + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheExoAdminAuditLogConfig.ps1 + +--- + +### 4. ✅ ExoPresetSecurityPolicy Cache +**Required For:** +- ✅ MS.EXO.11.1 - Impersonation +- ✅ MS.EXO.11.2 - Impersonation Tips +- ✅ MS.EXO.11.3 - Mailbox Intelligence + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheExoPresetSecurityPolicy.ps1 + +--- + +### 5. ✅ ExoTenantAllowBlockList Cache +**Required For:** +- ✅ MS.EXO.12.1 - Anti-Spam Allow List + +**Status**: ✅ IMPLEMENTED in Set-CIPPDBCacheExoTenantAllowBlockList.ps1 + +--- + +## Required New Cache Functions +**Required For:** +- MS.EXO.8.1 - DLP Solution +- MS.EXO.8.2 - DLP PII +- MS.EXO.8.4 - DLP Baseline Rules + +**SecurityCompliance Command:** +```powershell +Get-DlpCompliancePolicy | Select-Object Name, Enabled, Mode +Get-DlpComplianceRule | Select-Object Name, ParentPolicyName, ContentContainsSensitiveInformation, Disabled +``` +1 +**Cache Function Names:** +- `Set-CIPPDBCacheSccDlpPolicy` +- `Set-CIPPDBCacheSccDlpRule` + +**Properties Needed:** +- Policy: Name, Enabled, Mode +- Rule: Name, ParentPolicyName, ContentContainsSensitiveInformation, Disabled + +**Note:** Requires SecurityCompliance PowerShell connection + +--- + +### 2. SecurityCompliance ProtectionAlert Cache +**Required For:** +- MS.EXO.16.1 - Alerts + +**SecurityCompliance Command:** +```powershell +Get-ProtectionAlert | Select-Object Name, Disabled +``` + +**Cache Function Name:** `Set-CIPPDBCacheSccProtectionAlert` + +**Properties Needed:** +- Name +- Disabled + +**Note:** Requires SecurityCompliance PowerShell connection + +--- + +### 3. SecurityCompliance ActivityAlert Cache +**Required For:** +- MS.EXO.16.2 - Alert SIEM + +**SecurityCompliance Command:** +```powershell +Get-ActivityAlert | Select-Object Name, Disabled, NotificationEnabled, Type +``` + +**Cache Function Name:** `Set-CIPPDBCacheSccActivityAlert` + +**Properties Needed:** +- Name +- Disabled +- NotificationEnabled +- Type + +**Note:** Requires SecurityCompliance PowerShell connection + +--- + +## DNS-Based Tests (Cannot Be Cached) + +These tests require external DNS lookups and cannot be implemented with cached Exchange data: + +### MS.EXO.2.1 - SPF Restriction +**Requires:** DNS TXT record lookup for SPF +**Query:** `nslookup -type=txt ` + +### MS.EXO.2.2 - SPF Directive +**Requires:** DNS TXT record parsing for SPF policy +**Query:** Parse SPF record for `~all` or `-all` + +### MS.EXO.4.1 - DMARC Record Exists +**Requires:** DNS TXT record lookup for DMARC +**Query:** `nslookup -type=txt _dmarc.` + +### MS.EXO.4.2 - DMARC Reject Policy +**Requires:** DNS TXT record parsing for DMARC policy +**Query:** Parse DMARC record for `p=reject` or `p=quarantine` + +### MS.EXO.4.3 - DMARC Aggregate Reports +**Requires:** DNS TXT record parsing for DMARC rua tags +**Query:** Parse DMARC record for `rua=` email addresses + +### MS.EXO.4.4 - DMARC Reports +**Requires:** DNS TXT record parsing for DMARC report configuration +**Query:** Parse DMARC record for report targets + +### MS.EXO.7.1 - External Sender Warning +**Requires:** ExoOrganizationConfig.ExternalInOutlook property +**Note:** May already be in ExoOrganizationConfig cache - needs verification + +### MS.EXO.13.1 - Mailbox Auditing +**Requires:** ExoOrganizationConfig.AuditDisabled property +**Note:** May already be in ExoOrganizationConfig cache - needs verification + +## Manual Assessment Tests (Cannot Be Automated) + +### MS.EXO.8.3 - DLP Alternate Solution +**Reason:** Requires manual assessment of 3rd party DLP solutions + +### MS.EXO.9.4 - Email Filter Alternative +**Reason:** Requires manual assessment of 3rd party email filtering solutions + +### MS.EXO.14.4 - Spam Alternative Solution +**Reason:** Requires manual assessment of 3rd party anti-spam solutions + +### MS.EXO.17.2 - Audit Log Premium +**Reason:** Requires license validation and advanced audit policy checks beyond cached data + +--- + +## Implementation Priority + +### High Priority (Core Security Controls): +1. CASMailbox - SMTP Auth control +2. ExoAdminAuditLogConfig - Audit logging +3. ExoTenantAllowBlockList - Allow list bypass prevention + +### Medium Priority (DLP and Alerts): +4. SecurityCompliance DLP caches - Data loss prevention +5. SecurityCompliance Alert caches - Security monitoring + +### Low Priority (Advanced Features): +6. ExoSharingPolicy - External sharing controls +7. ExoPresetSecurityPolicy - Preset security policies + +--- + +## Notes on Implementation + +1. **Graph API Alternative**: Some Exchange Online cmdlets may have equivalent Graph API endpoints that could be used instead. + +## Summary + +- **New Caches Required**: 8 cache functions +- **DNS Tests**: 6 tests (architectural limitation) +- **Manual Tests**: 4 tests (cannot be automated) +- **Implementable After New Caches**: 15 additional tests +- **Current Implementation**: 13 tests +- **Total Possible with New Caches**: 28 tests (68% coverage) diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.md new file mode 100644 index 000000000000..47d0249a0689 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.md @@ -0,0 +1,21 @@ +Emails SHALL be filtered by attachment file types. + +Email attachment filtering helps prevent malicious files from reaching users' inboxes. By blocking or quarantining emails with potentially dangerous file types, organizations can significantly reduce the risk of malware infections and data breaches. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-malware +2. Select each malware filter policy +3. Under "Protection settings": + - Enable "Enable the common attachments filter" +4. Or use PowerShell: +```powershell +Set-MalwareFilterPolicy -Identity "Default" -EnableFileFilter $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.10.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo101v1) +- [Configure anti-malware policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.ps1 new file mode 100644 index 000000000000..cda775b98b25 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO101.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO101 { + <# + .SYNOPSIS + Tests MS.EXO.10.1 - Emails SHALL be filtered by attachment file types + + .DESCRIPTION + Checks if malware filter policies have file filtering enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicy' + + if (-not $MalwarePolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoMalwareFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Emails SHALL be filtered by attachment file types' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO101' -TenantFilter $Tenant + return + } + + $FailedPolicies = $MalwarePolicies | Where-Object { -not $_.EnableFileFilter } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($MalwarePolicies.Count) malware filter policy/policies have file filtering enabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($MalwarePolicies.Count) malware filter policy/policies do not have file filtering enabled:`n`n" + $Result += "| Policy Name | File Filter Enabled |`n" + $Result += "| :---------- | :------------------ |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.EnableFileFilter) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO101' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Emails SHALL be filtered by attachment file types' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Emails SHALL be filtered by attachment file types' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO101' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.md new file mode 100644 index 000000000000..438d6636be83 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.md @@ -0,0 +1,23 @@ +Emails identified as containing malware SHALL be quarantined or dropped. + +Ensuring that emails containing malware are immediately quarantined or deleted prevents malicious content from reaching users' mailboxes. This is a critical security control that stops malware distribution at the email gateway level. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-malware +2. Select each malware filter policy +3. Under "Protection settings": + - Set "Malware detection response" to either "Delete entire message" or "Quarantine message" +4. Or use PowerShell: +```powershell +Set-MalwareFilterPolicy -Identity "Default" -Action Quarantine +# Or +Set-MalwareFilterPolicy -Identity "Default" -Action DeleteMessage +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.10.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo102v1) +- [Configure anti-malware policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.ps1 new file mode 100644 index 000000000000..5ced966d198e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO102.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestCISAMSEXO102 { + <# + .SYNOPSIS + Tests MS.EXO.10.2 - Emails identified as malware SHALL be quarantined or dropped + + .DESCRIPTION + Checks if malware filter policies quarantine or delete emails with malware + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicy' + + if (-not $MalwarePolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoMalwareFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Emails identified as malware SHALL be quarantined or dropped' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO102' -TenantFilter $Tenant + return + } + + $AcceptableActions = @('DeleteMessage', 'Quarantine') + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $MalwarePolicies) { + if ($Policy.Action -notin $AcceptableActions) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Current Action' = $Policy.Action + 'Expected' = 'DeleteMessage or Quarantine' + }) + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($MalwarePolicies.Count) malware filter policy/policies quarantine or delete emails with malware." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($MalwarePolicies.Count) malware filter policy/policies do not quarantine or delete malware:`n`n" + $Result += "| Policy Name | Current Action | Expected |`n" + $Result += "| :---------- | :------------- | :------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.'Current Action') | $($Policy.Expected) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO102' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Emails identified as malware SHALL be quarantined or dropped' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Emails identified as malware SHALL be quarantined or dropped' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO102' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.md new file mode 100644 index 000000000000..17f11b64670f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.md @@ -0,0 +1,21 @@ +Email scanning SHALL be capable of reviewing emails after delivery. + +Zero-hour Auto Purge (ZAP) provides post-delivery protection by retroactively detecting and removing malicious emails that were initially deemed safe. This is crucial because malware signatures and threat intelligence are constantly updated, and emails that were safe at delivery time may later be identified as malicious. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-malware +2. Select each malware filter policy +3. Under "Protection settings": + - Enable "Enable zero-hour auto purge (ZAP) for malware" +4. Or use PowerShell: +```powershell +Set-MalwareFilterPolicy -Identity "Default" -ZapEnabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.10.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo103v1) +- [Zero-hour auto purge (ZAP) in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/zero-hour-auto-purge) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.ps1 new file mode 100644 index 000000000000..41f1e92f6385 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO103.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO103 { + <# + .SYNOPSIS + Tests MS.EXO.10.3 - Email scanning SHALL be capable of reviewing emails after delivery (ZAP) + + .DESCRIPTION + Checks if Zero-hour Auto Purge (ZAP) is enabled for malware protection + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicy' + + if (-not $MalwarePolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoMalwareFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Email scanning SHALL be capable of reviewing emails after delivery' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO103' -TenantFilter $Tenant + return + } + + $FailedPolicies = $MalwarePolicies | Where-Object { -not $_.ZapEnabled } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($MalwarePolicies.Count) malware filter policy/policies have ZAP (Zero-hour Auto Purge) enabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($MalwarePolicies.Count) malware filter policy/policies do not have ZAP enabled:`n`n" + $Result += "| Policy Name | ZAP Enabled |`n" + $Result += "| :---------- | :---------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.ZapEnabled) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO103' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Email scanning SHALL be capable of reviewing emails after delivery' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Email scanning SHALL be capable of reviewing emails after delivery' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO103' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.md new file mode 100644 index 000000000000..be33a98245e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.md @@ -0,0 +1,22 @@ +Automatic forwarding to external domains SHALL be disabled. + +Disabling automatic forwarding prevents potential data exfiltration scenarios where malicious actors could set up forwarding rules to steal sensitive information. This control ensures that emails cannot be automatically forwarded outside the organization without proper oversight. + +**Remediation Action:** + +1. Navigate to Exchange Admin Center > Mail flow > Remote domains +2. For each remote domain, disable automatic forwarding: + - Select the domain + - Click Edit + - Set "Allow automatic forwarding" to Off +3. Or use PowerShell: +```powershell +Get-RemoteDomain | Set-RemoteDomain -AutoForwardEnabled $false +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.1.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo11v1) +- [Configure remote domain settings](https://learn.microsoft.com/exchange/mail-flow-best-practices/remote-domains/remote-domains) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.ps1 new file mode 100644 index 000000000000..96651f05b743 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO11.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO11 { + <# + .SYNOPSIS + Tests MS.EXO.1.1 - Automatic forwarding to external domains SHALL be disabled + + .DESCRIPTION + Checks if automatic forwarding to external domains is disabled across all remote domains + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $RemoteDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoRemoteDomain' + + if (-not $RemoteDomains) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoRemoteDomain cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Automatic forwarding to external domains SHALL be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO11' -TestType 'Identity' -TenantFilter $Tenant + return + } + + $ForwardingEnabledDomains = $RemoteDomains | Where-Object { $_.AutoForwardEnabled -eq $true } + + if (($ForwardingEnabledDomains | Measure-Object).Count -eq 0) { + $Result = '✅ **Pass**: Automatic forwarding to external domains is disabled for all remote domains.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($ForwardingEnabledDomains.Count) domain(s) have automatic forwarding enabled:`n`n" + $Result += "| Domain Name | Auto Forward |`n" + $Result += "| :---------- | :----------- |`n" + foreach ($Domain in $ForwardingEnabledDomains) { + $Result += "| $($Domain.DomainName) | $($Domain.AutoForwardEnabled) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO11' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Automatic forwarding to external domains SHALL be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Automatic forwarding to external domains SHALL be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO11' -TestType 'Identity' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.md new file mode 100644 index 000000000000..c4979f85630e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.md @@ -0,0 +1,22 @@ +Impersonation protection checks SHOULD be used. + +Impersonation protection defends against phishing attacks where attackers impersonate trusted users or domains. These checks analyze sender patterns, domain similarities, and user behavior to identify and block sophisticated impersonation attempts before they reach users. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Preset security policies +2. Enable either Standard or Strict preset security policy +3. Ensure policies include appropriate user and domain protection +4. Or use PowerShell: +```powershell +# Enable standard preset security policy +Enable-EOPProtectionPolicyRule -Identity "Standard Preset Security Policy" +Enable-ATPProtectionPolicyRule -Identity "Standard Preset Security Policy" +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.11.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo111v1) +- [Preset security policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/preset-security-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.ps1 new file mode 100644 index 000000000000..4bfd427b47d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO111.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestCISAMSEXO111 { + <# + .SYNOPSIS + Tests MS.EXO.11.1 - Impersonation protection checks SHOULD be used + + .DESCRIPTION + Checks if both standard and strict EOP/ATP preset security policies are enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $PresetPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoPresetSecurityPolicy' + + if (-not $PresetPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoPresetSecurityPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Impersonation protection checks SHOULD be used' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' -TestId 'CISAMSEXO111' -TenantFilter $Tenant + return + } + + $StandardEOP = $PresetPolicies | Where-Object { $_.Identity -eq 'Standard Preset Security Policy' -and $_.State -eq 'Enabled' } + $StrictEOP = $PresetPolicies | Where-Object { $_.Identity -eq 'Strict Preset Security Policy' -and $_.State -eq 'Enabled' } + + $StandardATP = $PresetPolicies | Where-Object { $_.Identity -like '*Preset Security Policy*' -and $_.ImpersonationProtectionState -eq 'Enabled' } + + $EnabledPolicies = @() + if ($StandardEOP) { $EnabledPolicies += 'Standard EOP' } + if ($StrictEOP) { $EnabledPolicies += 'Strict EOP' } + if ($StandardATP) { $EnabledPolicies += "$($StandardATP.Count) ATP policy/policies with impersonation protection" } + + if ($EnabledPolicies.Count -gt 0) { + $Result = "✅ **Pass**: Preset security policies with impersonation protection are enabled:`n`n" + $Result += ($EnabledPolicies | ForEach-Object { "- $_" }) -join "`n" + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: No preset security policies with impersonation protection enabled.`n`n" + $Result += "Enable Standard or Strict preset security policies to provide impersonation protection." + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO111' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Impersonation protection checks SHOULD be used' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Impersonation protection checks SHOULD be used' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' -TestId 'CISAMSEXO111' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.md new file mode 100644 index 000000000000..6ef65e55b934 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.md @@ -0,0 +1,26 @@ +User warnings, comparable to the user safety tips included with EOP, SHOULD be displayed. + +Safety tips provide visual warnings to users when emails contain indicators of impersonation attempts, such as similar display names, lookalike domains, or unusual character patterns. These warnings help users recognize and avoid phishing attacks. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-phishing +2. Edit preset security policies or custom anti-phishing policies +3. Under Impersonation section, enable: + - Show user impersonation safety tip + - Show domain impersonation safety tip + - Show unusual characters impersonation safety tip +4. Or use PowerShell: +```powershell +Set-AntiPhishPolicy -Identity "Standard Preset Security Policy" ` + -EnableSimilarUsersSafetyTips $true ` + -EnableSimilarDomainsSafetyTips $true ` + -EnableUnusualCharactersSafetyTips $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.11.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo112v1) +- [Safety tips in email messages](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-about#safety-tips-in-email-messages) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.ps1 new file mode 100644 index 000000000000..94d3c617cad5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO112.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestCISAMSEXO112 { + <# + .SYNOPSIS + Tests MS.EXO.11.2 - User warnings, comparable to the user safety tips included with EOP, SHOULD be displayed + + .DESCRIPTION + Checks if impersonation safety tips are enabled in preset security policies + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $PresetPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoPresetSecurityPolicy' + + if (-not $PresetPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoPresetSecurityPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'User warnings comparable to EOP safety tips SHOULD be displayed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' -TestId 'CISAMSEXO112' -TenantFilter $Tenant + return + } + + $PoliciesWithTips = $PresetPolicies | Where-Object { + ($_.EnableSimilarUsersSafetyTips -eq $true) -or + ($_.EnableSimilarDomainsSafetyTips -eq $true) -or + ($_.EnableUnusualCharactersSafetyTips -eq $true) + } + + if ($PoliciesWithTips.Count -gt 0) { + $Result = "✅ **Pass**: $($PoliciesWithTips.Count) policy/policies have impersonation safety tips enabled:`n`n" + $Result += "| Policy | Similar Users Tips | Similar Domains Tips | Unusual Characters Tips |`n" + $Result += "| :----- | :----------------- | :------------------- | :---------------------- |`n" + foreach ($Policy in $PoliciesWithTips) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSimilarUsersSafetyTips) | $($Policy.EnableSimilarDomainsSafetyTips) | $($Policy.EnableUnusualCharactersSafetyTips) |`n" + } + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: No policies found with impersonation safety tips enabled.`n`n" + $Result += "Enable safety tips in preset security policies to warn users about potential impersonation." + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO112' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User warnings comparable to EOP safety tips SHOULD be displayed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User warnings comparable to EOP safety tips SHOULD be displayed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Protection' -TestId 'CISAMSEXO112' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.md new file mode 100644 index 000000000000..0a5894c4c237 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.md @@ -0,0 +1,24 @@ +Mailbox intelligence SHALL be enabled. + +Mailbox intelligence uses machine learning to analyze user email patterns and relationships, identifying anomalous sender behavior that may indicate impersonation attempts. This AI-powered protection adapts to each user's communication patterns for more accurate threat detection. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-phishing +2. Edit preset security policies or custom anti-phishing policies +3. Under Impersonation section, enable: + - Enable mailbox intelligence + - Enable intelligence for impersonation protection +4. Or use PowerShell: +```powershell +Set-AntiPhishPolicy -Identity "Standard Preset Security Policy" ` + -EnableMailboxIntelligence $true ` + -EnableMailboxIntelligenceProtection $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.11.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo113v1) +- [Mailbox intelligence in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.ps1 new file mode 100644 index 000000000000..97541e383c37 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO113.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestCISAMSEXO113 { + <# + .SYNOPSIS + Tests MS.EXO.11.3 - Mailbox intelligence SHALL be enabled + + .DESCRIPTION + Checks if mailbox intelligence and impersonation protection are enabled in preset security policies + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $PresetPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoPresetSecurityPolicy' + + if (-not $PresetPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoPresetSecurityPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Mailbox intelligence SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO113' -TenantFilter $Tenant + return + } + + $PoliciesWithIntelligence = $PresetPolicies | Where-Object { + ($_.EnableMailboxIntelligence -eq $true) -and + ($_.EnableMailboxIntelligenceProtection -eq $true) + } + + if ($PoliciesWithIntelligence.Count -gt 0) { + $Result = "✅ **Pass**: $($PoliciesWithIntelligence.Count) policy/policies have mailbox intelligence enabled:`n`n" + $Result += "| Policy | Mailbox Intelligence | Intelligence Protection | State |`n" + $Result += "| :----- | :------------------- | :---------------------- | :---- |`n" + foreach ($Policy in $PoliciesWithIntelligence) { + $Result += "| $($Policy.Identity) | $($Policy.EnableMailboxIntelligence) | $($Policy.EnableMailboxIntelligenceProtection) | $($Policy.State) |`n" + } + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: No policies found with mailbox intelligence enabled.`n`n" + $Result += 'Enable mailbox intelligence in preset security policies for AI-powered impersonation protection.' + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO113' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Mailbox intelligence SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Mailbox intelligence SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO113' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.md new file mode 100644 index 000000000000..4af85199efc5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.md @@ -0,0 +1,23 @@ +Allowed sender lists SHOULD NOT be used. + +Adding senders to the tenant allow list bypasses all spam, phishing, and spoofing protection. Compromised or spoofed allowed senders can be used to deliver malicious content directly to users' inboxes without any filtering. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Policies & rules > Threat policies > Tenant Allow/Block Lists +2. Review and remove entries from the "Allow" list under "Senders" +3. Or use PowerShell: +```powershell +# List all allowed senders +Get-TenantAllowBlockListItems -ListType Sender -Action Allow + +# Remove specific allowed sender +Remove-TenantAllowBlockListItems -ListType Sender -Ids +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.12.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo121v1) +- [Manage the Tenant Allow/Block List](https://learn.microsoft.com/microsoft-365/security/office-365-security/tenant-allow-block-list-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.ps1 new file mode 100644 index 000000000000..f9bb69153fa4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO121.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestCISAMSEXO121 { + <# + .SYNOPSIS + Tests MS.EXO.12.1 - Allowed senders list SHOULD NOT be used + + .DESCRIPTION + Checks if tenant allow/block list has allowed senders configured + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $AllowBlockList = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTenantAllowBlockList' + + if ($null -eq $AllowBlockList) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoTenantAllowBlockList cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Allowed sender lists SHOULD NOT be used' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO121' -TenantFilter $Tenant + return + } + + $AllowedSenders = $AllowBlockList | Where-Object { $_.Action -eq 'Allow' -and $_.ListType -eq 'Sender' } + + if ($AllowedSenders.Count -eq 0) { + $Result = '✅ **Pass**: No allowed senders configured in tenant allow/block list.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($AllowedSenders.Count) allowed sender(s) configured in tenant allow/block list" + if ($AllowedSenders.Count -gt 10) { + $Result += ' (showing first 10)' + } + $Result += ":`n`n" + $Result += "| Value | Action | List Type |`n" + $Result += "| :---- | :----- | :-------- |`n" + foreach ($Sender in ($AllowedSenders | Select-Object -First 10)) { + $Result += "| $($Sender.Value) | $($Sender.Action) | $($Sender.ListType) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO121' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Allowed sender lists SHOULD NOT be used' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Allowed sender lists SHOULD NOT be used' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO121' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.md new file mode 100644 index 000000000000..32352dc39224 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.md @@ -0,0 +1,22 @@ +Safe lists SHOULD NOT be enabled. + +Safe lists in Outlook bypass Exchange Online Protection (EOP) spam filtering, which can allow malicious emails from compromised accounts or domains on users' safe senders lists to reach their inboxes. This creates a security risk that attackers can exploit through social engineering. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-spam +2. Select each anti-spam policy +3. Under "Actions": + - Disable "Enable end-user spam notifications" + - Or ensure "On" for safe lists is disabled +4. Or use PowerShell: +```powershell +Set-HostedContentFilterPolicy -Identity "Default" -EnableSafeList $false +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.12.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo122v1) +- [Configure anti-spam policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.ps1 new file mode 100644 index 000000000000..bd50e4688c76 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO122.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO122 { + <# + .SYNOPSIS + Tests MS.EXO.12.2 - Safe lists SHOULD NOT be enabled + + .DESCRIPTION + Checks if anti-spam policies have safe lists disabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SpamPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $SpamPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoHostedContentFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Safe lists SHOULD NOT be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO122' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SpamPolicies | Where-Object { $_.EnableSafeList -eq $true } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SpamPolicies.Count) anti-spam policy/policies have safe lists disabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SpamPolicies.Count) anti-spam policy/policies have safe lists enabled:`n`n" + $Result += "| Policy Name | Safe List Enabled |`n" + $Result += "| :---------- | :---------------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.EnableSafeList) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO122' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Safe lists SHOULD NOT be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Safe lists SHOULD NOT be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO122' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.md new file mode 100644 index 000000000000..26ea16f7bbb2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.md @@ -0,0 +1,19 @@ +Mailbox auditing SHALL be enabled. + +Mailbox auditing logs user and administrator actions in mailboxes, providing critical forensic data for security investigations and compliance requirements. This enables detection of unauthorized access and data exfiltration attempts. + +**Remediation Action:** + +1. Navigate to Microsoft Purview compliance portal > Audit +2. Ensure mailbox auditing is turned on +3. Or use PowerShell: +```powershell +Set-OrganizationConfig -AuditDisabled $false +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.13.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo131v1) +- [Manage mailbox auditing](https://learn.microsoft.com/purview/audit-mailboxes) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.ps1 new file mode 100644 index 000000000000..e3513310346d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO131.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestCISAMSEXO131 { + <# + .SYNOPSIS + Tests MS.EXO.13.1 - Mailbox auditing SHALL be enabled + + .DESCRIPTION + Checks if mailbox auditing is enabled in Exchange Online organization config + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $OrgConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoOrganizationConfig' + + if (-not $OrgConfig) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoOrganizationConfig cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Mailbox auditing SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO131' -TenantFilter $Tenant + return + } + + $OrgConfigObject = $OrgConfig | Select-Object -First 1 + + if ($OrgConfigObject.AuditDisabled -eq $false) { + $Result = '✅ **Pass**: Mailbox auditing is enabled for the organization.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: Mailbox auditing is disabled for the organization.`n`n" + $Result += "**Current Setting:**`n" + $Result += "- AuditDisabled: $($OrgConfigObject.AuditDisabled)" + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO131' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Mailbox auditing SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Mailbox auditing SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO131' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.md new file mode 100644 index 000000000000..8b7ff1d73025 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.md @@ -0,0 +1,21 @@ +High confidence spam SHALL be quarantined. + +High confidence spam represents emails that Microsoft's filtering systems are very confident are spam. Quarantining these messages rather than delivering them to junk mail folders provides better protection and allows administrators to review and release legitimate emails if needed. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-spam +2. Select each anti-spam policy +3. Under "Actions": + - Set "High confidence spam" action to "Quarantine message" +4. Or use PowerShell: +```powershell +Set-HostedContentFilterPolicy -Identity "Default" -HighConfidenceSpamAction Quarantine +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.14.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo141v2) +- [Configure anti-spam policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 new file mode 100644 index 000000000000..9e332811ea10 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO141 { + <# + .SYNOPSIS + Tests MS.EXO.14.1 - High confidence spam SHALL be quarantined + + .DESCRIPTION + Checks if high confidence spam action is set to Quarantine in anti-spam policies + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SpamPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $SpamPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoHostedContentFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'High confidence spam SHALL be quarantined' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO141' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SpamPolicies | Where-Object { $_.HighConfidenceSpamAction -ne 'Quarantine' } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SpamPolicies.Count) anti-spam policy/policies quarantine high confidence spam." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SpamPolicies.Count) anti-spam policy/policies do not quarantine high confidence spam:`n`n" + $Result += "| Policy Name | Current Action | Expected |`n" + $Result += "| :---------- | :------------- | :------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.'Current Action') | $($Policy.Expected) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO141' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'High confidence spam SHALL be quarantined' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High confidence spam SHALL be quarantined' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO141' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.md new file mode 100644 index 000000000000..ec3b2ce5e871 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.md @@ -0,0 +1,23 @@ +Spam and high confidence spam SHALL be moved to either the junk email folder or the quarantine folder. + +Properly handling spam emails prevents users from being exposed to potentially malicious content while still allowing recovery of false positives. Moving spam to junk folders or quarantine provides a balance between security and usability. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-spam +2. Select each anti-spam policy +3. Under "Actions": + - Set "Spam" action to "Move message to Junk Email folder" or "Quarantine message" +4. Or use PowerShell: +```powershell +Set-HostedContentFilterPolicy -Identity "Default" -SpamAction MoveToJmf +# Or +Set-HostedContentFilterPolicy -Identity "Default" -SpamAction Quarantine +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.14.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo142v1) +- [Configure anti-spam policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.ps1 new file mode 100644 index 000000000000..d9d2f8a2ca4e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO142.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestCISAMSEXO142 { + <# + .SYNOPSIS + Tests MS.EXO.14.2 - Spam SHALL be moved to junk email or quarantine + + .DESCRIPTION + Checks if spam action is set to MoveToJmf or Quarantine in anti-spam policies + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SpamPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $SpamPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoHostedContentFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Spam SHALL be moved to junk email or quarantine' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO142' -TenantFilter $Tenant + return + } + + $AcceptableActions = @('MoveToJmf', 'Quarantine') + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $SpamPolicies) { + if ($Policy.SpamAction -notin $AcceptableActions) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Current Action' = $Policy.SpamAction + 'Expected' = 'MoveToJmf or Quarantine' + }) + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SpamPolicies.Count) anti-spam policy/policies move spam to junk folder or quarantine." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SpamPolicies.Count) anti-spam policy/policies do not properly handle spam:`n`n" + $Result += "| Policy Name | Current Action | Expected |`n" + $Result += "| :---------- | :------------- | :------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.'Current Action') | $($Policy.Expected) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO142' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Spam SHALL be moved to junk email or quarantine' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Spam SHALL be moved to junk email or quarantine' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO142' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.md new file mode 100644 index 000000000000..4958c0a1627e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.md @@ -0,0 +1,22 @@ +Allowed senders and domains SHOULD NOT be added to the anti-spam filter. + +Adding senders or domains to the allowed list bypasses spam filtering, which can be exploited by attackers. Compromised accounts or spoofed emails from allowed domains will bypass security controls and reach users' inboxes unchecked. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-spam +2. Select each anti-spam policy +3. Under "Allowed and blocked senders and domains": + - Review and remove entries from "Allowed senders" list + - Review and remove entries from "Allowed domains" list +4. Or use PowerShell: +```powershell +Set-HostedContentFilterPolicy -Identity "Default" -AllowedSenders @() -AllowedSenderDomains @() +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.14.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo143v1) +- [Configure allowed and blocked senders](https://learn.microsoft.com/microsoft-365/security/office-365-security/create-safe-sender-lists-in-office-365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.ps1 new file mode 100644 index 000000000000..a5882bb96120 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO143.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestCISAMSEXO143 { + <# + .SYNOPSIS + Tests MS.EXO.14.3 - Spam filter bypass SHALL be disabled + + .DESCRIPTION + Checks if anti-spam policies have empty allowed senders and domains lists + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SpamPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $SpamPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoHostedContentFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Allowed senders SHOULD NOT be added to anti-spam filter' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO143' -TenantFilter $Tenant + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $SpamPolicies) { + $AllowedSenders = if ($Policy.AllowedSenders) { $Policy.AllowedSenders.Count } else { 0 } + $AllowedSenderDomains = if ($Policy.AllowedSenderDomains) { $Policy.AllowedSenderDomains.Count } else { 0 } + + if ($AllowedSenders -gt 0 -or $AllowedSenderDomains -gt 0) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Allowed Senders' = $AllowedSenders + 'Allowed Domains' = $AllowedSenderDomains + 'Issue' = 'Has allowed senders/domains that bypass spam filtering' + }) + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SpamPolicies.Count) anti-spam policy/policies have no spam filter bypasses configured." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SpamPolicies.Count) anti-spam policy/policies have spam filter bypasses configured:`n`n" + $Result += "| Policy Name | Allowed Senders | Allowed Domains | Issue |`n" + $Result += "| :---------- | :-------------- | :-------------- | :---- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.'Allowed Senders') | $($Policy.'Allowed Domains') | $($Policy.Issue) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO143' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Allowed senders SHOULD NOT be added to anti-spam filter' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Allowed senders SHOULD NOT be added to anti-spam filter' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO143' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.md new file mode 100644 index 000000000000..5fbbde6b6bca --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.md @@ -0,0 +1,21 @@ +URL comparison with a block-list SHOULD be enabled. + +Safe Links provides time-of-click verification of URLs in email messages and Office documents. This protection helps prevent users from clicking on malicious links by checking URLs against a dynamically updated block-list of known malicious websites. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Safe Links +2. Select each Safe Links policy +3. Under "URL & click protection settings": + - Enable "On: Safe Links checks a list of known, malicious links when users click links in email" +4. Or use PowerShell: +```powershell +Set-SafeLinksPolicy -Identity "Default" -EnableSafeLinksForEmail $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.15.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo151v1) +- [Set up Safe Links policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.ps1 new file mode 100644 index 000000000000..1b63ba30f031 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO151.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO151 { + <# + .SYNOPSIS + Tests MS.EXO.15.1 - URL comparison with a block-list SHOULD be enabled + + .DESCRIPTION + Checks if Safe Links policies have URL scanning enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicy' + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSafeLinksPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'URL comparison with block-list SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO151' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SafeLinksPolicies | Where-Object { -not $_.EnableSafeLinksForEmail } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SafeLinksPolicies.Count) Safe Links policy/policies have URL comparison with block-list enabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SafeLinksPolicies.Count) Safe Links policy/policies do not have URL scanning enabled:`n`n" + $Result += "| Policy Name | Safe Links for Email |`n" + $Result += "| :---------- | :------------------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.EnableSafeLinksForEmail) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO151' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'URL comparison with block-list SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'URL comparison with block-list SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO151' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.md new file mode 100644 index 000000000000..db04d60a9e24 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.md @@ -0,0 +1,22 @@ +Real-time suspicious URL and file-link scanning SHOULD be enabled. + +Real-time scanning checks suspicious URLs at the time of click, even if the URL wasn't initially identified as malicious. This provides additional protection against rapidly evolving threats and newly created malicious websites. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Safe Links +2. Select each Safe Links policy +3. Under "URL & click protection settings": + - Enable "Apply Safe Links to email messages sent within the organization" + - Enable "Apply real-time URL scanning for suspicious links and links that point to files" +4. Or use PowerShell: +```powershell +Set-SafeLinksPolicy -Identity "Default" -ScanUrls $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.15.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo152v1) +- [Set up Safe Links policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.ps1 new file mode 100644 index 000000000000..2239e1c116d5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO152.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO152 { + <# + .SYNOPSIS + Tests MS.EXO.15.2 - Real-time suspicious URL and file-link scanning SHOULD be enabled + + .DESCRIPTION + Checks if Safe Links policies have real-time link scanning enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicy' + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSafeLinksPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Real-time suspicious URL scanning SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO152' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SafeLinksPolicies | Where-Object { -not $_.ScanUrls } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SafeLinksPolicies.Count) Safe Links policy/policies have real-time URL scanning enabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SafeLinksPolicies.Count) Safe Links policy/policies do not have real-time URL scanning enabled:`n`n" + $Result += "| Policy Name | Scan URLs |`n" + $Result += "| :---------- | :-------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.ScanUrls) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO152' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Real-time suspicious URL scanning SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Real-time suspicious URL scanning SHOULD be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO152' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.md new file mode 100644 index 000000000000..f8c99f40da39 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.md @@ -0,0 +1,21 @@ +User click tracking SHOULD be disabled. + +Click tracking in Safe Links can collect information about which URLs users click, which may raise privacy concerns. CISA recommends disabling this feature to protect user privacy while still maintaining URL protection capabilities. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Safe Links +2. Select each Safe Links policy +3. Under "URL & click protection settings": + - Disable "Track user clicks" +4. Or use PowerShell: +```powershell +Set-SafeLinksPolicy -Identity "Default" -TrackUserClicks $false +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.15.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo153v1) +- [Set up Safe Links policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.ps1 new file mode 100644 index 000000000000..bd23744fabca --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO153.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestCISAMSEXO153 { + <# + .SYNOPSIS + Tests MS.EXO.15.3 - User click tracking SHOULD be disabled + + .DESCRIPTION + Checks if Safe Links policies have click tracking disabled for privacy + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicy' + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSafeLinksPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'User click tracking SHOULD be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO153' -TenantFilter $Tenant + return + } + + $FailedPolicies = $SafeLinksPolicies | Where-Object { $_.TrackUserClicks -eq $true } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: All $($SafeLinksPolicies.Count) Safe Links policy/policies have click tracking disabled." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) of $($SafeLinksPolicies.Count) Safe Links policy/policies have click tracking enabled:`n`n" + $Result += "| Policy Name | Track User Clicks |`n" + $Result += "| :---------- | :---------------- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Name) | $($Policy.TrackUserClicks) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO153' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'User click tracking SHOULD be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'User click tracking SHOULD be disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO153' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.md new file mode 100644 index 000000000000..677b8a837248 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.md @@ -0,0 +1,19 @@ +Microsoft Purview Audit (Standard) logging SHALL be enabled. + +Audit logging captures user and administrator activities across Microsoft 365 services, providing essential forensic data for security investigations, compliance requirements, and detecting unauthorized access or data breaches. + +**Remediation Action:** + +1. Navigate to Microsoft Purview compliance portal > Audit +2. Turn on audit log search +3. Or use PowerShell: +```powershell +Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.17.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo171v1) +- [Turn audit log search on or off](https://learn.microsoft.com/purview/audit-log-enable-disable) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.ps1 new file mode 100644 index 000000000000..f4f0dfa93e3a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO171.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestCISAMSEXO171 { + <# + .SYNOPSIS + Tests MS.EXO.17.1 - Microsoft Purview Audit (Standard) logging SHALL be enabled + + .DESCRIPTION + Checks if unified audit log ingestion is enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $AuditConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAdminAuditLogConfig' + + if (-not $AuditConfig) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoAdminAuditLogConfig cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Microsoft Purview Audit logging SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO171' -TenantFilter $Tenant + return + } + + $AuditConfigObject = $AuditConfig | Select-Object -First 1 + + if ($AuditConfigObject.UnifiedAuditLogIngestionEnabled -eq $true) { + $Result = "✅ **Pass**: Microsoft Purview Audit (Standard) logging is enabled.`n`n" + $Result += "**Current Settings:**`n" + $Result += "- UnifiedAuditLogIngestionEnabled: $($AuditConfigObject.UnifiedAuditLogIngestionEnabled)" + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: Microsoft Purview Audit (Standard) logging is not enabled.`n`n" + $Result += "**Current Settings:**`n" + $Result += "- UnifiedAuditLogIngestionEnabled: $($AuditConfigObject.UnifiedAuditLogIngestionEnabled)" + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO171' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Microsoft Purview Audit logging SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Microsoft Purview Audit logging SHALL be enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO171' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.md new file mode 100644 index 000000000000..32dcbc6e2f79 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.md @@ -0,0 +1,22 @@ +Audit logs SHALL be maintained for at least the minimum duration dictated by OMB M-21-31 (1 year). + +Maintaining audit logs for an adequate retention period is essential for security investigations, compliance audits, and meeting federal record-keeping requirements. A minimum of one year retention allows organizations to investigate incidents and establish historical baselines. + +**Remediation Action:** + +1. Navigate to Microsoft Purview compliance portal > Data lifecycle management > Microsoft 365 retention > Retention policies +2. Create or modify retention policy for audit logs +3. Or use PowerShell: +```powershell +# Enable admin audit logging (provides 1 year retention) +Set-AdminAuditLogConfig -AdminAuditLogEnabled $true + +# For longer retention, configure retention policies in Purview +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.17.3](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo173v1) +- [Audit log retention policies](https://learn.microsoft.com/purview/audit-log-retention-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.ps1 new file mode 100644 index 000000000000..e42677ae6d3a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO173.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestCISAMSEXO173 { + <# + .SYNOPSIS + Tests MS.EXO.17.3 - Audit logs SHALL be maintained for at least the minimum duration + + .DESCRIPTION + Checks if admin audit log is enabled (provides 1 year retention) + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $AuditConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAdminAuditLogConfig' + + if (-not $AuditConfig) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoAdminAuditLogConfig cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Audit logs SHALL be maintained for at least 1 year' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO173' -TenantFilter $Tenant + return + } + + $AuditConfigObject = $AuditConfig | Select-Object -First 1 + + if ($AuditConfigObject.AdminAuditLogEnabled -eq $true) { + $Result = "✅ **Pass**: Admin audit log is enabled (provides 1 year retention).`n`n" + $Result += "**Current Settings:**`n" + $Result += "- AdminAuditLogEnabled: $($AuditConfigObject.AdminAuditLogEnabled)" + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: Admin audit log is not enabled.`n`n" + $Result += "**Current Settings:**`n" + $Result += "- AdminAuditLogEnabled: $($AuditConfigObject.AdminAuditLogEnabled)" + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO173' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Audit logs SHALL be maintained for at least 1 year' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Audit logs SHALL be maintained for at least 1 year' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Audit & Compliance' -TestId 'CISAMSEXO173' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.md new file mode 100644 index 000000000000..4cb5dc494993 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.md @@ -0,0 +1,27 @@ +DKIM SHOULD be enabled for all domains. + +DomainKeys Identified Mail (DKIM) adds a digital signature to outgoing email messages, allowing receiving mail servers to verify that the email actually came from your domain and wasn't altered in transit. This helps prevent email spoofing and improves email deliverability. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > DKIM +2. For each domain: + - Select the domain + - Click "Create DKIM keys" if not already created + - Publish the CNAME records to DNS + - Enable DKIM signing +3. Or use PowerShell: +```powershell +# Create DKIM signing configuration +New-DkimSigningConfig -DomainName "contoso.com" -Enabled $true + +# Enable existing DKIM configuration +Set-DkimSigningConfig -Identity "contoso.com" -Enabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.3.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo31v1) +- [Use DKIM to validate outbound email](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dkim-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.ps1 new file mode 100644 index 000000000000..5b2af1f957d1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO31.ps1 @@ -0,0 +1,68 @@ +function Invoke-CippTestCISAMSEXO31 { + <# + .SYNOPSIS + Tests MS.EXO.3.1 - DKIM SHOULD be enabled for all domains + + .DESCRIPTION + Checks if DKIM (DomainKeys Identified Mail) signing is enabled for all accepted domains + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $DkimConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoDkimSigningConfig' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $DkimConfigs -or -not $AcceptedDomains) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'Required cache (ExoDkimSigningConfig or ExoAcceptedDomains) not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'DKIM SHOULD be enabled for all domains' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Authentication' -TestId 'CISAMSEXO31' -TenantFilter $Tenant + return + } + + # Filter to non-internal accepted domains + $SendingDomains = $AcceptedDomains | Where-Object { -not $_.SendingFromDomainDisabled } + + if (($SendingDomains | Measure-Object).Count -eq 0) { + Add-CippTestResult -Status 'Passed' -ResultMarkdown '✅ **Pass**: No sending domains found to check DKIM configuration.' -Risk 'Medium' -Name 'DKIM SHOULD be enabled for all domains' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Authentication' -TestId 'CISAMSEXO31' -TenantFilter $Tenant + return + } + + $FailedDomains = [System.Collections.Generic.List[object]]::new() + + foreach ($Domain in $SendingDomains) { + $DkimConfig = $DkimConfigs | Where-Object { $_.Domain -eq $Domain.DomainName } + + if (-not $DkimConfig -or -not $DkimConfig.Enabled) { + $FailedDomains.Add([PSCustomObject]@{ + 'Domain' = $Domain.DomainName + 'DKIM Enabled' = if ($DkimConfig) { $DkimConfig.Enabled } else { 'Not Configured' } + 'Status' = if (-not $DkimConfig) { 'No DKIM config found' } else { 'DKIM disabled' } + }) + } + } + + if ($FailedDomains.Count -eq 0) { + $Result = "✅ **Pass**: DKIM is enabled for all $($SendingDomains.Count) sending domain(s)." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedDomains.Count) of $($SendingDomains.Count) domain(s) do not have DKIM properly enabled:`n`n" + $Result += "| Domain | DKIM Enabled | Status |`n" + $Result += "| :----- | :----------- | :----- |`n" + foreach ($Domain in $FailedDomains) { + $Result += "| $($Domain.Domain) | $($Domain.'DKIM Enabled') | $($Domain.Status) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO31' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'DKIM SHOULD be enabled for all domains' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Authentication' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'DKIM SHOULD be enabled for all domains' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Email Authentication' -TestId 'CISAMSEXO31' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.md new file mode 100644 index 000000000000..4df1e83a5c56 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.md @@ -0,0 +1,23 @@ +SMTP AUTH SHALL be disabled in Exchange Online. + +SMTP AUTH is a legacy authentication protocol that doesn't support modern security features like multi-factor authentication. Disabling SMTP AUTH reduces the attack surface and forces applications to use more secure authentication methods like OAuth 2.0. + +**Remediation Action:** + +1. Navigate to Exchange Admin Center > Mail flow > SMTP AUTH +2. Disable SMTP AUTH for all users or specific users +3. Or use PowerShell to disable organization-wide: +```powershell +Set-TransportConfig -SmtpClientAuthenticationDisabled $true +``` +4. Or disable per-mailbox: +```powershell +Set-CASMailbox -Identity user@domain.com -SmtpClientAuthenticationDisabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.5.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo51v1) +- [Disable SMTP AUTH](https://learn.microsoft.com/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.ps1 new file mode 100644 index 000000000000..91e6390de0a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO51.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestCISAMSEXO51 { + <# + .SYNOPSIS + Tests MS.EXO.5.1 - SMTP AUTH SHALL be disabled for all users + + .DESCRIPTION + Checks if SMTP authentication is disabled in CAS Mailbox settings + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $CASMailboxes = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CASMailbox' + + if (-not $CASMailboxes) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'CASMailbox cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'SMTP AUTH SHALL be disabled in Exchange Online' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Authentication' -TestId 'CISAMSEXO51' -TenantFilter $Tenant + return + } + + $FailedMailboxes = $CASMailboxes | Where-Object { $_.SmtpClientAuthenticationDisabled -eq $false } + + if ($FailedMailboxes.Count -eq 0) { + $Result = "✅ **Pass**: SMTP authentication is disabled for all $($CASMailboxes.Count) mailbox(es)." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedMailboxes.Count) of $($CASMailboxes.Count) mailbox(es) have SMTP authentication enabled" + if ($FailedMailboxes.Count -gt 10) { + $Result += ' (showing first 10)' + } + $Result += ":`n`n" + $Result += "| Display Name | Identity | SMTP Auth Disabled |`n" + $Result += "| :----------- | :------- | :----------------- |`n" + foreach ($Mailbox in ($FailedMailboxes | Select-Object -First 10)) { + $Result += "| $($Mailbox.DisplayName) | $($Mailbox.Identity) | $($Mailbox.SmtpClientAuthenticationDisabled) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO51' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'SMTP AUTH SHALL be disabled in Exchange Online' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Authentication' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SMTP AUTH SHALL be disabled in Exchange Online' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Authentication' -TestId 'CISAMSEXO51' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.md new file mode 100644 index 000000000000..94c2efba5523 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.md @@ -0,0 +1,20 @@ +Contact folders SHALL NOT be shared with all domains, although they MAY be shared with specific domains. + +Sharing contact folders with external domains can expose sensitive organizational information. Limiting contact sharing to specific approved domains reduces the risk of information disclosure. + +**Remediation Action:** + +1. Navigate to Exchange Admin Center > Organization > Sharing +2. Review sharing policies +3. Remove or modify policies that allow contact sharing with all domains +4. Or use PowerShell: +```powershell +Set-SharingPolicy -Identity "Default Sharing Policy" -Domains @{Remove="*:ContactsSharing"} +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.6.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo61v1) +- [Sharing policies in Exchange Online](https://learn.microsoft.com/exchange/sharing/sharing-policies/sharing-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.ps1 new file mode 100644 index 000000000000..cbcdc07b90b0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO61.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestCISAMSEXO61 { + <# + .SYNOPSIS + Tests MS.EXO.6.1 - Contact folders SHALL NOT be shared with all domains + + .DESCRIPTION + Checks if sharing policies allow sharing contact folders with external domains + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SharingPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSharingPolicy' + + if (-not $SharingPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSharingPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Contact folders SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' -TestId 'CISAMSEXO61' -TenantFilter $Tenant + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $SharingPolicies) { + if ($Policy.Enabled) { + # Check if any domain allows contact sharing (ContactsSharing capability) + $ContactSharingDomains = $Policy.Domains | Where-Object { $_ -match 'ContactsSharing' } + if ($ContactSharingDomains) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Enabled' = $Policy.Enabled + 'Issue' = 'Allows contact sharing with external domains' + }) + } + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = '✅ **Pass**: No sharing policies allow contact folder sharing with external domains.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) sharing policy/policies allow contact folder sharing:`n`n" + $Result += "| Policy Name | Enabled | Issue |`n" + $Result += "| :---------- | :------ | :---- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.Enabled) | $($Policy.Issue) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO61' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Contact folders SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Contact folders SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' -TestId 'CISAMSEXO61' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.md new file mode 100644 index 000000000000..22e7bfad4310 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.md @@ -0,0 +1,24 @@ +Calendar details SHALL NOT be shared with all domains, although they MAY be shared with specific domains. + +Sharing detailed calendar information (including meeting subjects, locations, and attendees) with all external domains can expose sensitive business information. Limiting detailed calendar sharing to specific approved domains protects organizational privacy. + +**Remediation Action:** + +1. Navigate to Exchange Admin Center > Organization > Sharing +2. Review sharing policies +3. Ensure wildcard (*) domains only allow free/busy time, not detailed information +4. Or use PowerShell: +```powershell +# Allow only free/busy with all domains +Set-SharingPolicy -Identity "Default Sharing Policy" -Domains "*:CalendarSharingFreeBusySimple" + +# For specific domains, you can allow details +Set-SharingPolicy -Identity "Default Sharing Policy" -Domains @{Add="partner.com:CalendarSharingFreeBusyDetail"} +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.6.2](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo62v1) +- [Sharing policies in Exchange Online](https://learn.microsoft.com/exchange/sharing/sharing-policies/sharing-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.ps1 new file mode 100644 index 000000000000..378995d9e126 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO62.ps1 @@ -0,0 +1,62 @@ +function Invoke-CippTestCISAMSEXO62 { + <# + .SYNOPSIS + Tests MS.EXO.6.2 - Calendar details SHALL NOT be shared with all domains + + .DESCRIPTION + Checks if sharing policies allow sharing calendar details with external domains + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $SharingPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSharingPolicy' + + if (-not $SharingPolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoSharingPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'Calendar details SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' -TestId 'CISAMSEXO62' -TenantFilter $Tenant + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $SharingPolicies) { + if ($Policy.Enabled) { + # Check if wildcard domain (*) allows detailed calendar sharing + $WildcardDomains = $Policy.Domains | Where-Object { $_ -match '^\*:' -and $_ -match 'CalendarSharing(FreeBusyDetail|All)' } + if ($WildcardDomains) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'Enabled' = $Policy.Enabled + 'Issue' = 'Allows detailed calendar sharing with all domains' + 'Domains' = ($WildcardDomains -join ', ') + }) + } + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = "✅ **Pass**: No sharing policies allow detailed calendar sharing with all domains." + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) sharing policy/policies allow detailed calendar sharing with all domains:`n`n" + $Result += "| Policy Name | Enabled | Issue |`n" + $Result += "| :---------- | :------ | :---- |`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.'Policy Name') | $($Policy.Enabled) | $($Policy.Issue) |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO62' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Calendar details SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Calendar details SHALL NOT be shared with all domains' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data Protection' -TestId 'CISAMSEXO62' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.md new file mode 100644 index 000000000000..1bda7cbc9a3d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.md @@ -0,0 +1,20 @@ +External sender warnings SHALL be implemented. + +External sender warnings help users identify emails from outside the organization, reducing the risk of phishing and social engineering attacks. This visual indicator alerts users to exercise caution when interacting with external emails. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies +2. Under "Rules", select "External sender" +3. Enable external sender warnings +4. Or use PowerShell: +```powershell +Set-ExternalInOutlook -Enabled $true +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.7.1](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo71v1) +- [External sender warnings](https://learn.microsoft.com/microsoft-365/security/office-365-security/external-email-forwarding) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.ps1 new file mode 100644 index 000000000000..e45af03bb0e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO71.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestCISAMSEXO71 { + <# + .SYNOPSIS + Tests MS.EXO.7.1 - External sender warnings SHALL be implemented + + .DESCRIPTION + Checks if external sender warnings are enabled in Exchange Online organization config + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $OrgConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoOrganizationConfig' + + if (-not $OrgConfig) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoOrganizationConfig cache not found. Please refresh the cache for this tenant.' -Risk 'Medium' -Name 'External sender warnings SHALL be implemented' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO71' -TenantFilter $Tenant + return + } + + $OrgConfigObject = $OrgConfig | Select-Object -First 1 + + if ($OrgConfigObject.ExternalInOutlook -eq $true) { + $Result = '✅ **Pass**: External sender warnings are enabled in Outlook.' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: External sender warnings are not enabled in Outlook.`n`n" + $Result += "**Current Setting:**`n" + $Result += "- ExternalInOutlook: $($OrgConfigObject.ExternalInOutlook)" + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO71' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'External sender warnings SHALL be implemented' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'External sender warnings SHALL be implemented' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO71' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.md b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.md new file mode 100644 index 000000000000..1b8d550197e9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.md @@ -0,0 +1,22 @@ +At a minimum, click-to-run files SHOULD be blocked (e.g., .exe, .cmd, and .vbe). + +Blocking executable file types prevents users from receiving and potentially executing malicious files through email. These file types are commonly used in malware attacks and social engineering campaigns. + +**Remediation Action:** + +1. Navigate to Microsoft 365 Defender portal > Email & collaboration > Policies & rules > Threat policies > Anti-malware +2. Select the malware filter policy to edit +3. Under "Protection settings": + - Enable "Enable the common attachments filter" + - Ensure the blocked file types include at minimum: cmd, exe, vbe +4. Or use PowerShell: +```powershell +Set-MalwareFilterPolicy -Identity "Default" -EnableFileFilter $true -FileTypes @("ace","ani","app","cab","docm","exe","jar","reg","scr","vbe","vbs","cmd","bat","com","cpl","dll","exe","hta","inf","ins","isp","js","jse","lib","lnk","mde","msc","msp","mst","pif","scr","sct","shb","sys","vb","vbe","vbs","vxd","wsc","wsf","wsh") +``` + +**Links:** +- [CISA SCubaGear EXO Baseline - MS.EXO.9.5](https://github.com/cisagov/ScubaGear/blob/main/PowerShell/ScubaGear/baselines/exo.md#msexo95v1) +- [Configure anti-malware policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.ps1 b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.ps1 new file mode 100644 index 000000000000..ebdb715ac779 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO95.ps1 @@ -0,0 +1,74 @@ +function Invoke-CippTestCISAMSEXO95 { + <# + .SYNOPSIS + Tests MS.EXO.9.5 - At a minimum, click-to-run files SHOULD be blocked + + .DESCRIPTION + Checks if malware filter policies block click-to-run executables (.exe, .cmd, .vbe) + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + try { + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicy' + + if (-not $MalwarePolicies) { + Add-CippTestResult -Status 'Skipped' -ResultMarkdown 'ExoMalwareFilterPolicy cache not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'Click-to-run files SHOULD be blocked' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO95' -TenantFilter $Tenant + return + } + + $RequiredBlockedTypes = @('cmd', 'exe', 'vbe') + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $MalwarePolicies) { + if (-not $Policy.EnableFileFilter) { + # Policy doesn't have file filtering enabled at all + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'File Filter Enabled' = $false + 'Issue' = 'File filtering not enabled' + }) + continue + } + + # Check if required types are blocked + $BlockedTypes = $Policy.FileTypes + $MissingTypes = $RequiredBlockedTypes | Where-Object { $_ -notin $BlockedTypes } + + if ($MissingTypes) { + $FailedPolicies.Add([PSCustomObject]@{ + 'Policy Name' = $Policy.Name + 'File Filter Enabled' = $true + 'Missing Blocked Types' = ($MissingTypes -join ', ') + }) + } + } + + if ($FailedPolicies.Count -eq 0) { + $Result = '✅ **Pass**: All malware filter policies block click-to-run files (.exe, .cmd, .vbe).' + $Status = 'Passed' + } else { + $Result = "❌ **Fail**: $($FailedPolicies.Count) malware filter policy/policies do not properly block click-to-run executables:`n`n" + $Result += "| Policy Name | File Filter Enabled | Missing Blocked Types |`n" + $Result += "| :---------- | :------------------ | :-------------------- |`n" + foreach ($Policy in $FailedPolicies) { + $fileFilterValue = if ($Policy.'File Filter Enabled') { $Policy.'File Filter Enabled' } else { $Policy.'Issue' } + $missingTypes = if ($Policy.'Missing Blocked Types') { $Policy.'Missing Blocked Types' } else { 'N/A' } + $Result += "| $($Policy.'Policy Name') | $fileFilterValue | $missingTypes |`n" + } + $Status = 'Failed' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'CISAMSEXO95' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Click-to-run files SHOULD be blocked' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Protection' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -Status 'Failed' -ResultMarkdown "Test execution failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Click-to-run files SHOULD be blocked' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Email Protection' -TestId 'CISAMSEXO95' -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Tests/CISA/report.json b/Modules/CIPPCore/Public/Tests/CISA/report.json new file mode 100644 index 000000000000..75ac2ab1bb69 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/CISA/report.json @@ -0,0 +1,33 @@ +{ + "name": "CISA SCubaGear Tests for Exchange Online", + "description": "Security configuration assessment tests based on CISA's Secure Cloud Business Applications (SCubaGear) project for Microsoft Exchange Online. These tests validate compliance with federal security baselines.", + "version": "1.0", + "source": "https://github.com/cisagov/ScubaGear", + "category": "CISA Security Baselines", + "IdentityTests": [ + "CISAMSEXO11", + "CISAMSEXO31", + "CISAMSEXO51", + "CISAMSEXO61", + "CISAMSEXO62", + "CISAMSEXO71", + "CISAMSEXO95", + "CISAMSEXO101", + "CISAMSEXO102", + "CISAMSEXO103", + "CISAMSEXO111", + "CISAMSEXO112", + "CISAMSEXO113", + "CISAMSEXO121", + "CISAMSEXO122", + "CISAMSEXO131", + "CISAMSEXO141", + "CISAMSEXO142", + "CISAMSEXO143", + "CISAMSEXO151", + "CISAMSEXO152", + "CISAMSEXO153", + "CISAMSEXO171", + "CISAMSEXO173" + ] +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.md new file mode 100644 index 000000000000..2b4b263f7f43 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.md @@ -0,0 +1,13 @@ +# FIDO2 - State + +FIDO2 security keys should be enabled as an authentication method to provide users with the strongest, most phishing-resistant form of authentication available. FIDO2 security keys use public key cryptography and are resistant to phishing, man-in-the-middle attacks, and password database breaches. + +Enabling FIDO2 security keys is a critical step toward passwordless authentication and provides the highest level of security for protecting user accounts, particularly for administrators and high-value targets. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.ps1 new file mode 100644 index 000000000000..9da4913dad9e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF01.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAF01 { + <# + .SYNOPSIS + FIDO2 - State + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'FIDO2 - State' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Low' -Name 'FIDO2 - State' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + if ($Fido2Config.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'FIDO2 authentication method is enabled' + } else { + $Status = 'Failed' + $Result = @" +FIDO2 security keys should be enabled to provide strong, phishing-resistant authentication. + +**Current Configuration:** +- State: $($Fido2Config.state) + +**Recommended Configuration:** +- State: enabled + +Enabling FIDO2 provides users with a secure, passwordless authentication option. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'FIDO2 - State' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'FIDO2 - State' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.md new file mode 100644 index 000000000000..fce0ae0868f6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.md @@ -0,0 +1,13 @@ +# FIDO2 - Self-Service + +Self-service registration for FIDO2 security keys should be enabled to allow users to register their own security keys without requiring administrator intervention. This improves user experience and accelerates the adoption of passwordless authentication while maintaining security. + +Enabling self-service registration empowers users to take control of their authentication security and reduces the administrative burden of manually provisioning security keys for users. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.ps1 new file mode 100644 index 000000000000..e10fe6994d4d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF02.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAF02 { + <# + .SYNOPSIS + FIDO2 - Self-Service + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'FIDO2 - Self-Service' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Low' -Name 'FIDO2 - Self-Service' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + if ($Fido2Config.isSelfServiceRegistrationAllowed -eq $true) { + $Status = 'Passed' + $Result = 'FIDO2 self-service registration is enabled' + } else { + $Status = 'Failed' + $Result = @" +FIDO2 self-service registration should be enabled to allow users to register their own security keys. + +**Current Configuration:** +- isSelfServiceRegistrationAllowed: $($Fido2Config.isSelfServiceRegistrationAllowed) + +**Recommended Configuration:** +- isSelfServiceRegistrationAllowed: true + +Enabling self-service registration improves user experience and adoption of FIDO2 security keys. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'FIDO2 - Self-Service' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'FIDO2 - Self-Service' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.md new file mode 100644 index 000000000000..a6747db56708 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.md @@ -0,0 +1,13 @@ +# FIDO2 - Attestation + +FIDO2 attestation enforcement should be configured to ensure that only security keys from trusted manufacturers can be registered. Attestation allows Microsoft Entra ID to verify the authenticity and characteristics of FIDO2 security keys during registration, helping prevent the use of compromised or counterfeit devices. + +Enforcing attestation provides an additional layer of security by ensuring that only verified, legitimate FIDO2 security keys are used for authentication in your environment. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.ps1 new file mode 100644 index 000000000000..64488cace6d6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF03.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAF03 { + <# + .SYNOPSIS + FIDO2 - Attestation + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'FIDO2 - Attestation' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'FIDO2 - Attestation' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + if ($Fido2Config.isAttestationEnforced -eq $true) { + $Status = 'Passed' + $Result = 'FIDO2 attestation enforcement is enabled' + } else { + $Status = 'Failed' + $Result = @" +FIDO2 attestation should be enforced to verify the authenticity and security of FIDO2 security keys. + +**Current Configuration:** +- isAttestationEnforced: $($Fido2Config.isAttestationEnforced) + +**Recommended Configuration:** +- isAttestationEnforced: true + +Enforcing attestation ensures that only trusted and verified security keys can be registered. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'FIDO2 - Attestation' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'FIDO2 - Attestation' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.md new file mode 100644 index 000000000000..7e4573cba30b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.md @@ -0,0 +1,13 @@ +# FIDO2 - Key Restrictions + +FIDO2 key restrictions should be configured to control which security key models and manufacturers are allowed in your environment. Key restrictions help ensure that only approved, tested security keys that meet your organization's security requirements can be used for authentication. + +Organizations can use key restrictions to enforce specific security requirements such as requiring keys with certain certification levels or from approved vendors. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage FIDO2 security key restrictions](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key#key-restrictions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.ps1 new file mode 100644 index 000000000000..9732628e81ff --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF04.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAF04 { + <# + .SYNOPSIS + FIDO2 - Key Restrictions + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'FIDO2 - Key Restrictions' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'FIDO2 - Key Restrictions' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + if ($Fido2Config.keyRestrictions.isEnforced -eq $true) { + $Status = 'Passed' + $Result = 'FIDO2 key restrictions are enforced' + } else { + $Status = 'Failed' + $Result = @" +FIDO2 key restrictions should be enforced to control which security keys can be registered. + +**Current Configuration:** +- keyRestrictions.isEnforced: $($Fido2Config.keyRestrictions.isEnforced) + +**Recommended Configuration:** +- keyRestrictions.isEnforced: true + +Enforcing key restrictions helps ensure only approved security keys are used in your organization. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'FIDO2 - Key Restrictions' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'FIDO2 - Key Restrictions' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.md new file mode 100644 index 000000000000..63735f222473 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.md @@ -0,0 +1,13 @@ +# FIDO2 - Restricted Keys + +FIDO2 security key restrictions should be properly configured to define which specific keys are allowed or restricted in your environment. Organizations may choose to enforce key restrictions to ensure standardization, maintain approved vendor lists, or block specific key models that don't meet security requirements. + +Properly configured key restrictions help maintain consistent security standards across your FIDO2 security key deployment. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage FIDO2 security key restrictions](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key#key-restrictions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.ps1 new file mode 100644 index 000000000000..24ca89ef8203 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF05.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestEIDSCAAF05 { + <# + .SYNOPSIS + FIDO2 - Restricted Keys + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF05' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'FIDO2 - Restricted Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF05' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'FIDO2 - Restricted Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $aaGuids = $Fido2Config.keyRestrictions.aaGuids + if ($aaGuids -and $aaGuids.Count -gt 0) { + $Status = 'Passed' + $Result = "FIDO2 key restrictions have specific AAGuids configured ($($aaGuids.Count) GUIDs)" + } else { + $Status = 'Failed' + $Result = @" +FIDO2 key restrictions should specify AAGuids to control which authenticator models can be registered. + +**Current Configuration:** +- keyRestrictions.aaGuids: Empty or not configured + +**Recommended Configuration:** +- keyRestrictions.aaGuids: Should contain one or more AAGuids + +Specifying AAGuids allows you to restrict registration to specific, approved security key models. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF05' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'FIDO2 - Restricted Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF05' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'FIDO2 - Restricted Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.md new file mode 100644 index 000000000000..a0b269b24c97 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.md @@ -0,0 +1,13 @@ +# FIDO2 - Specific Keys + +FIDO2 specific key configurations should be reviewed to ensure that key restrictions align with your organization's security policies. Organizations may choose to allow all FIDO2-certified keys or restrict to specific models based on security requirements, user population, or procurement standards. + +The configuration of specific key allowances or restrictions should be based on a thorough assessment of your organization's security needs and risk tolerance. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [FIDO2 security key authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-passwordless) +- [Manage FIDO2 security key restrictions](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key#key-restrictions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.ps1 new file mode 100644 index 000000000000..b0f8c58cf1c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAF06.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestEIDSCAAF06 { + <# + .SYNOPSIS + FIDO2 - Specific Keys + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF06' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'FIDO2 - Specific Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'FIDO2 configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'FIDO2 - Specific Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + return + } + + $aaGuids = $Fido2Config.keyRestrictions.aaGuids + $enforcementType = $Fido2Config.keyRestrictions.enforcementType + + if ($aaGuids -and $aaGuids.Count -gt 0 -and $enforcementType -in @('allow', 'block')) { + $Status = 'Passed' + $Result = "FIDO2 key restrictions are properly configured with enforcement type '$enforcementType' and $($aaGuids.Count) AAGuids" + } else { + $Status = 'Failed' + $Result = @" +FIDO2 key restrictions should have both AAGuids configured and a valid enforcement type (allow or block). + +**Current Configuration:** +- keyRestrictions.aaGuids: $($aaGuids.Count) GUIDs configured +- keyRestrictions.enforcementType: $enforcementType + +**Recommended Configuration:** +- keyRestrictions.aaGuids: One or more AAGuids +- keyRestrictions.enforcementType: 'allow' or 'block' + +Proper enforcement type ensures the AAGuids list is actively used to control key registration. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF06' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'FIDO2 - Specific Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAF06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'FIDO2 - Specific Keys' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.md new file mode 100644 index 000000000000..05b98d3029e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.md @@ -0,0 +1,13 @@ +# Authentication Methods - Policy Migration + +The authentication methods policy migration should be completed to use the modern authentication methods framework in Microsoft Entra ID. The modern policy provides enhanced features, better security controls, and improved management capabilities compared to legacy multi-factor authentication settings. + +Completing the migration ensures you can take advantage of new authentication features such as FIDO2 security keys, certificate-based authentication, and other modern authentication methods that are only available in the new policy framework. + +**Remediation action** +- [Migrate to the authentication methods policy for Microsoft Entra multifactor authentication and SSPR](https://learn.microsoft.com/entra/identity/authentication/how-to-authentication-methods-manage) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.ps1 new file mode 100644 index 000000000000..63161994f895 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG01.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAG01 { + <# + .SYNOPSIS + Authentication Methods - Policy Migration + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authentication Methods - Policy Migration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MigrationState = $AuthMethodsPolicy.policyMigrationState + + if ($MigrationState -in @('migrationComplete', '')) { + $Status = 'Passed' + $Result = "Policy migration is complete or not applicable: $MigrationState" + } else { + $Status = 'Failed' + $Result = @" +The authentication methods policy migration should be complete. + +**Current Configuration:** +- policyMigrationState: $MigrationState + +**Recommended Configuration:** +- policyMigrationState: migrationComplete or empty + +Complete the migration to use the modern authentication methods policy. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authentication Methods - Policy Migration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authentication Methods - Policy Migration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.md new file mode 100644 index 000000000000..a2412615831b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.md @@ -0,0 +1,13 @@ +# Authentication Methods - Report Suspicious Activity + +Users should be enabled to report suspicious multifactor authentication prompts they did not initiate. This feature allows users to report fraudulent MFA attempts directly from the Microsoft Authenticator app or via phone call, which helps detect and prevent unauthorized access attempts and credential compromise. + +When users report suspicious activity, Microsoft Entra ID can take automated actions such as blocking the user's account, requiring a password reset, or triggering security alerts for administrators to investigate potential compromises. + +**Remediation action** +- [Enable fraud alerts for Microsoft Entra multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-mfasettings#fraud-alert) +- [Security defaults in Microsoft Entra ID](https://learn.microsoft.com/entra/fundamentals/security-defaults) +- [What is Identity Protection in Microsoft Entra ID?](https://learn.microsoft.com/entra/id-protection/overview-identity-protection) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.ps1 new file mode 100644 index 000000000000..77244bc3cd59 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG02.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAG02 { + <# + .SYNOPSIS + Authentication Methods - Report Suspicious Activity + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authentication Methods - Report Suspicious Activity' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $SuspiciousActivityState = $AuthMethodsPolicy.reportSuspiciousActivitySettings.state + + if ($SuspiciousActivityState -eq 'enabled') { + $Status = 'Passed' + $Result = 'Report suspicious activity is enabled' + } else { + $Status = 'Failed' + $Result = @" +Report suspicious activity should be enabled to allow users to report fraudulent MFA attempts. + +**Current Configuration:** +- reportSuspiciousActivitySettings.state: $SuspiciousActivityState + +**Recommended Configuration:** +- reportSuspiciousActivitySettings.state: enabled + +This feature helps detect and prevent unauthorized access attempts. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authentication Methods - Report Suspicious Activity' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authentication Methods - Report Suspicious Activity' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.md new file mode 100644 index 000000000000..0257a5905db5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.md @@ -0,0 +1,13 @@ +# Authentication Methods - Suspicious Activity Target + +The report suspicious activity feature should target all users or specific groups to ensure comprehensive protection against unauthorized MFA attempts. Properly configuring which users can report suspicious activity ensures that security protections are applied consistently across your organization. + +Organizations should enable this feature for all users who use Microsoft Entra multifactor authentication to maximize the effectiveness of threat detection and response capabilities. + +**Remediation action** +- [Enable fraud alerts for Microsoft Entra multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-mfasettings#fraud-alert) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.ps1 new file mode 100644 index 000000000000..422f3b15eb38 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAG03.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAG03 { + <# + .SYNOPSIS + Authentication Methods - Suspicious Activity Target + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authentication Methods - Suspicious Activity Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $IncludeTargetId = $AuthMethodsPolicy.reportSuspiciousActivitySettings.includeTarget.id + + if ($IncludeTargetId -eq 'all_users') { + $Status = 'Passed' + $Result = 'Report suspicious activity is enabled for all users' + } else { + $Status = 'Failed' + $Result = @" +Report suspicious activity should be enabled for all users. + +**Current Configuration:** +- reportSuspiciousActivitySettings.includeTarget.id: $IncludeTargetId + +**Recommended Configuration:** +- reportSuspiciousActivitySettings.includeTarget.id: all_users + +All users should be able to report suspicious authentication attempts. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authentication Methods - Suspicious Activity Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAG03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authentication Methods - Suspicious Activity Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.md new file mode 100644 index 000000000000..75f687dea32f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.md @@ -0,0 +1,13 @@ +# MS Authenticator - State + +Microsoft Authenticator should be enabled as an authentication method to provide users with a secure, phishing-resistant way to verify their identity. The Microsoft Authenticator app supports passwordless phone sign-in, push notifications for MFA, and time-based one-time passwords (TOTP). + +Enabling Microsoft Authenticator is a fundamental component of a strong authentication strategy and supports your organization's journey toward passwordless authentication. + +**Remediation action** +- [Enable passwordless security key sign-in](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-security-key) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.ps1 new file mode 100644 index 000000000000..2202e20fcf9e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM01.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM01 { + <# + .SYNOPSIS + MS Authenticator - State + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'MS Authenticator - State' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator authentication method is enabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator authentication method is not enabled. Current state: $($MethodConfig.state)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'MS Authenticator - State' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'MS Authenticator - State' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.md new file mode 100644 index 000000000000..467cc16c7ce4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.md @@ -0,0 +1,13 @@ +# MS Authenticator - OTP Disabled + +Software OATH tokens (time-based one-time passwords) in Microsoft Authenticator should be disabled in favor of push notifications, which provide stronger security and better user experience. Push notifications include additional context about the authentication request and are more resistant to phishing attacks compared to OTP codes that can be phished. + +Disabling OTP while keeping push notifications enabled encourages users to adopt the more secure authentication method while maintaining strong MFA protection. + +**Remediation action** +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.ps1 new file mode 100644 index 000000000000..cb55407730d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM02.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM02 { + <# + .SYNOPSIS + MS Authenticator - OTP Disabled + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - OTP Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.isSoftwareOathEnabled -eq $false) { + $Status = 'Passed' + $Result = 'Microsoft Authenticator software OATH is disabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator software OATH is enabled. It should be disabled." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - OTP Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - OTP Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.md new file mode 100644 index 000000000000..97cb1bfa6252 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.md @@ -0,0 +1,13 @@ +# MS Authenticator - Number Matching + +Number matching should be enabled for Microsoft Authenticator push notifications to provide strong protection against MFA fatigue attacks and push notification bombing. With number matching, users must enter a number displayed on their sign-in screen into the Authenticator app, preventing them from accidentally approving fraudulent authentication requests. + +This feature significantly reduces the risk of users approving MFA prompts without proper verification, which is a common technique used by attackers in credential compromise scenarios. + +**Remediation action** +- [How to use number matching in multifactor authentication (MFA) notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-number-match) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [System-preferred multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/concept-system-preferred-multifactor-authentication) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.ps1 new file mode 100644 index 000000000000..074a1bd30f77 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM03.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM03 { + <# + .SYNOPSIS + MS Authenticator - Number Matching + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'MS Authenticator - Number Matching' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.numberMatchingRequiredState.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator number matching is enabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator number matching is not enabled. Current state: $($MethodConfig.featureSettings.numberMatchingRequiredState.state)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'MS Authenticator - Number Matching' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'MS Authenticator - Number Matching' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.md new file mode 100644 index 000000000000..588342c08f87 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.md @@ -0,0 +1,13 @@ +# MS Authenticator - Number Matching Target + +Number matching should be configured to target all users or appropriate user groups to ensure consistent security protections across your organization. Selective enablement may be appropriate during initial rollout phases, but the ultimate goal should be to enable number matching for all users performing MFA. + +Proper targeting configuration ensures that security improvements are applied consistently and that all users benefit from enhanced protection against MFA attacks. + +**Remediation action** +- [How to use number matching in multifactor authentication (MFA) notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-number-match) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.ps1 new file mode 100644 index 000000000000..aad48456a2c5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM04.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM04 { + <# + .SYNOPSIS + MS Authenticator - Number Matching Target + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'MS Authenticator - Number Matching Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.numberMatchingRequiredState.includeTarget.id -eq 'all_users') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator number matching targets all users.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator number matching does not target all users. Current target: $($MethodConfig.featureSettings.numberMatchingRequiredState.includeTarget.id)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'MS Authenticator - Number Matching Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'MS Authenticator - Number Matching Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.md new file mode 100644 index 000000000000..c2a7016d510e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.md @@ -0,0 +1,13 @@ +# MS Authenticator - Show App Name + +Application name should be displayed in Microsoft Authenticator push notifications to provide additional context that helps users identify legitimate authentication requests. Showing the app name allows users to verify that the authentication request is for the expected application, reducing the risk of approving fraudulent requests. + +This additional context is part of a defense-in-depth strategy that makes it harder for attackers to trick users into approving unauthorized authentication attempts. + +**Remediation action** +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [How to use additional context in Microsoft Authenticator notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-additional-context) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.ps1 new file mode 100644 index 000000000000..b9ee3660893a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM06.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM06 { + <# + .SYNOPSIS + MS Authenticator - Show App Name + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM06' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - Show App Name' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.displayAppInformationRequiredState.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator app information display is enabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator app information display is not enabled. Current state: $($MethodConfig.featureSettings.displayAppInformationRequiredState.state)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM06' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - Show App Name' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - Show App Name' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.md new file mode 100644 index 000000000000..9d0853f77580 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.md @@ -0,0 +1,13 @@ +# MS Authenticator - Show App Name Target + +Application name display should be configured to target appropriate user groups to ensure consistent security context is provided across your organization. Proper targeting ensures that all users receive additional context in their authentication prompts to help them make informed decisions about approving or denying authentication requests. + +Organizations should enable this feature for all users performing MFA to maximize security benefits. + +**Remediation action** +- [How to use additional context in Microsoft Authenticator notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-additional-context) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.ps1 new file mode 100644 index 000000000000..89ccd7d9e23b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM07.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM07 { + <# + .SYNOPSIS + MS Authenticator - Show App Name Target + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM07' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - Show App Name Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.displayAppInformationRequiredState.includeTarget.id -eq 'all_users') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator app information display targets all users.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator app information display does not target all users. Current target: $($MethodConfig.featureSettings.displayAppInformationRequiredState.includeTarget.id)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM07' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - Show App Name Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM07' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - Show App Name Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.md new file mode 100644 index 000000000000..61680d77f924 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.md @@ -0,0 +1,13 @@ +# MS Authenticator - Show Location + +Geographic location information should be displayed in Microsoft Authenticator push notifications to help users identify potentially suspicious authentication requests from unexpected locations. This additional context allows users to quickly recognize when an authentication attempt is coming from a location that doesn't match their current whereabouts. + +Location information is particularly useful for detecting credential compromise when attackers attempt to authenticate from different geographic regions. + +**Remediation action** +- [How to use additional context in Microsoft Authenticator notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-additional-context) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.ps1 new file mode 100644 index 000000000000..5a612085f473 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM09.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestEIDSCAAM09 { + <# + .SYNOPSIS + MS Authenticator - Show Location + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM09' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - Show Location' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.displayLocationInformationRequiredState.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator location information display is enabled.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator location information display is not enabled. Current state: $($MethodConfig.featureSettings.displayLocationInformationRequiredState.state)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM09' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - Show Location' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM09' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - Show Location' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} + diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.md new file mode 100644 index 000000000000..53ac29618499 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.md @@ -0,0 +1,13 @@ +# MS Authenticator - Show Location Target + +Geographic location display should be configured to target appropriate user groups to ensure users receive location context in their authentication prompts. Proper targeting ensures security protections are applied consistently across your organization. + +Organizations should enable location display for all users performing MFA to maximize the security benefits and help users quickly identify suspicious authentication attempts. + +**Remediation action** +- [How to use additional context in Microsoft Authenticator notifications](https://learn.microsoft.com/entra/identity/authentication/how-to-mfa-additional-context) +- [Microsoft Authenticator authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-authenticator-app) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.ps1 new file mode 100644 index 000000000000..cff80ac7015d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAM10.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestEIDSCAAM10 { + <# + .SYNOPSIS + MS Authenticator - Show Location Target + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM10' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'MS Authenticator - Show Location Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $MethodConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if ($MethodConfig.featureSettings.displayLocationInformationRequiredState.includeTarget.id -eq 'all_users') { + $Status = 'Passed' + $Result = 'Microsoft Authenticator location information display targets all users.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator location information display does not target all users. Current target: $($MethodConfig.featureSettings.displayLocationInformationRequiredState.includeTarget.id)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM10' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'MS Authenticator - Show Location Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAM10' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'MS Authenticator - Show Location Target' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.md new file mode 100644 index 000000000000..5dfb019689e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.md @@ -0,0 +1,13 @@ +# Authorization Policy - Self-Service Password Reset for Admins + +Administrators should not be allowed to use self-service password reset (SSPR) for enhanced security. Admin accounts require more stringent security controls and should follow formal password reset procedures that involve additional verification steps rather than self-service options. This ensures that administrative account password resets are properly audited and controlled. + +Allowing administrators to use SSPR increases the risk of account compromise, as SSPR methods may be vulnerable to social engineering or other attacks. Administrative accounts have elevated privileges and require the highest level of security protection. + +**Remediation action** +- [Manage user settings for Microsoft Entra multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-userdevicesettings) +- [Plan a Microsoft Entra self-service password reset deployment](https://learn.microsoft.com/entra/identity/authentication/howto-sspr-deployment) +- [Microsoft Entra built-in roles](https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.ps1 new file mode 100644 index 000000000000..366d944629ca --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP01.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP01 { + <# + .SYNOPSIS + Authorization Policy - Self-Service Password Reset for Admins + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Self-Service Password Reset for Admins' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowedToUseSSPR = $AuthorizationPolicy.allowedToUseSSPR + + if ($AllowedToUseSSPR -eq $false) { + $Status = 'Passed' + $Result = 'Self-service password reset for administrators is disabled' + } else { + $Status = 'Failed' + $Result = @" +Self-service password reset for administrators should be disabled for enhanced security. + +**Current Configuration:** +- allowedToUseSSPR: $AllowedToUseSSPR + +**Recommended Configuration:** +- allowedToUseSSPR: false + +Administrators should follow more stringent password reset procedures rather than self-service options. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Self-Service Password Reset for Admins' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Self-Service Password Reset for Admins' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.md new file mode 100644 index 000000000000..2a2a26bcc33a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.md @@ -0,0 +1,13 @@ +# Authorization Policy - Guest Invite Restrictions + +Guest invite permissions should be restricted to administrators and designated guest inviters only to maintain proper control over external access to your Microsoft Entra ID tenant. Limiting who can invite guests helps prevent unauthorized external users from accessing organizational resources and reduces the attack surface. + +When all users can invite guests, there is increased risk of data exposure and security incidents, as employees may inadvertently grant access to malicious actors or share sensitive information with unauthorized external parties. + +**Remediation action** +- [Configure external collaboration settings](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure) +- [Properties of a Microsoft Entra B2B collaboration user](https://learn.microsoft.com/entra/external-id/user-properties) +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.ps1 new file mode 100644 index 000000000000..8d45600068b9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP04.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP04 { + <# + .SYNOPSIS + Authorization Policy - Guest Invite Restrictions + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Guest Invite Restrictions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowInvitesFrom = $AuthorizationPolicy.allowInvitesFrom + + if ($AllowInvitesFrom -in @('adminsAndGuestInviters', 'none')) { + $Status = 'Passed' + $Result = "Guest invite restrictions are properly configured: $AllowInvitesFrom" + } else { + $Status = 'Failed' + $Result = @" +Guest invite restrictions should be set to limit who can invite guests for enhanced security. + +**Current Configuration:** +- allowInvitesFrom: $AllowInvitesFrom + +**Recommended Configuration:** +- allowInvitesFrom: adminsAndGuestInviters OR none + +Restricting guest invitations helps maintain control over external access to your tenant. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Guest Invite Restrictions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Guest Invite Restrictions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.md new file mode 100644 index 000000000000..58ff64d840a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.md @@ -0,0 +1,13 @@ +# Authorization Policy - Email-Based Subscription Sign-up + +Users should not be allowed to sign up for email-based subscriptions that may create security risks or lead to unauthorized service usage. Disabling this feature prevents users from self-provisioning trial subscriptions or services that may not comply with organizational policies or security requirements. + +Allowing unrestricted subscription sign-up can lead to shadow IT, data sprawl, and increased security risks as users may store organizational data in unapproved services. + +**Remediation action** +- [What is self-service sign-up for Microsoft Entra ID?](https://learn.microsoft.com/entra/identity/users/directory-self-service-signup) +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) +- [Manage app and resource access using Microsoft Entra groups](https://learn.microsoft.com/entra/identity/users/groups-self-service-management) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.ps1 new file mode 100644 index 000000000000..45da15d78a26 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP05.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP05 { + <# + .SYNOPSIS + Authorization Policy - Email-Based Subscription Sign-up + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP05' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authorization Policy - Email-Based Subscription Sign-up' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowedToSignUp = $AuthorizationPolicy.allowedToSignUpEmailBasedSubscriptions + + if ($AllowedToSignUp -eq $false) { + $Status = 'Passed' + $Result = 'Email-based subscription sign-up is disabled' + } else { + $Status = 'Failed' + $Result = @" +Email-based subscription sign-up should be disabled to prevent unauthorized subscriptions. + +**Current Configuration:** +- allowedToSignUpEmailBasedSubscriptions: $AllowedToSignUp + +**Recommended Configuration:** +- allowedToSignUpEmailBasedSubscriptions: false + +Disabling email-based subscriptions helps maintain control over tenant access. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP05' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authorization Policy - Email-Based Subscription Sign-up' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP05' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authorization Policy - Email-Based Subscription Sign-up' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.md new file mode 100644 index 000000000000..734390ded497 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.md @@ -0,0 +1,13 @@ +# Authorization Policy - Email Validation Join + +Users should not be allowed to join the tenant using email validation without proper administrative approval. This setting prevents unauthorized users from creating accounts in your tenant simply by validating an email address, which could lead to security breaches and unauthorized access. + +Requiring administrative control over tenant joins ensures that all user accounts are properly vetted and approved before gaining access to organizational resources. + +**Remediation action** +- [What is self-service sign-up for Microsoft Entra ID?](https://learn.microsoft.com/entra/identity/users/directory-self-service-signup) +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) +- [Manage external access in Microsoft Entra ID](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.ps1 new file mode 100644 index 000000000000..ffe03f08fd4a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP06.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP06 { + <# + .SYNOPSIS + Authorization Policy - Email Validation Join + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP06' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Email Validation Join' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowEmailVerified = $AuthorizationPolicy.allowEmailVerifiedUsersToJoinOrganization + + if ($AllowEmailVerified -eq $false) { + $Status = 'Passed' + $Result = 'Users cannot join the tenant by email validation' + } else { + $Status = 'Failed' + $Result = @" +Email-validated users should not be allowed to join the organization to prevent unauthorized access. + +**Current Configuration:** +- allowEmailVerifiedUsersToJoinOrganization: $AllowEmailVerified + +**Recommended Configuration:** +- allowEmailVerifiedUsersToJoinOrganization: false + +Disabling this feature prevents unauthorized users from self-registering into your tenant. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP06' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Email Validation Join' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Email Validation Join' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.md new file mode 100644 index 000000000000..0e8db3045137 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.md @@ -0,0 +1,13 @@ +# Authorization Policy - Guest User Access + +Guest user access should be restricted to limit what information external users can view and interact with in your tenant. The most restrictive setting ensures that guest users can only access their own profile information and cannot enumerate other users, groups, or organizational resources. + +Unrestricted guest access increases the risk of information disclosure and reconnaissance activities by external parties who may use directory information for targeted attacks. + +**Remediation action** +- [Configure external collaboration settings](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure) +- [Properties of a Microsoft Entra B2B collaboration user](https://learn.microsoft.com/entra/external-id/user-properties) +- [Restrict guest access permissions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/users/users-restrict-guest-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.ps1 new file mode 100644 index 000000000000..dfbab3fe5197 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP07.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestEIDSCAAP07 { + <# + .SYNOPSIS + Authorization Policy - Guest User Access + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP07' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Guest User Access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $GuestUserRoleId = $AuthorizationPolicy.guestUserRoleId + $ExpectedRoleId = '2af84b1e-32c8-42b7-82bc-daa82404023b' + + if ($GuestUserRoleId -eq $ExpectedRoleId) { + $Status = 'Passed' + $Result = 'Guest user access is restricted (most restrictive)' + } else { + $Status = 'Failed' + $Result = @" +Guest user access should be set to the most restrictive level for enhanced security. + +**Current Configuration:** +- guestUserRoleId: $GuestUserRoleId + +**Recommended Configuration:** +- guestUserRoleId: $ExpectedRoleId (Most restrictive guest permissions) + +This setting limits what guest users can see and do in your directory. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP07' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Guest User Access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP07' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Guest User Access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.md new file mode 100644 index 000000000000..41f3fa9eaa81 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.md @@ -0,0 +1,13 @@ +# Authorization Policy - User Consent Policy + +User consent for applications should be limited to low-risk, publisher-verified applications only, or disabled entirely to prevent unauthorized data access. Unrestricted user consent allows users to grant applications access to organizational data without proper security review, potentially exposing sensitive information to malicious applications. + +Implementing a restrictive consent policy ensures that only trusted applications can access organizational resources and that high-risk permissions require administrator approval. + +**Remediation action** +- [Configure how users consent to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-user-consent) +- [Manage app consent policies](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-app-consent-policies) +- [Grant tenant-wide admin consent to an application](https://learn.microsoft.com/entra/identity/enterprise-apps/grant-admin-consent) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.ps1 new file mode 100644 index 000000000000..b727af3c1ba0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP08.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestEIDSCAAP08 { + <# + .SYNOPSIS + Authorization Policy - User Consent Policy + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP08' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - User Consent Policy' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $ConsentPolicy = $AuthorizationPolicy.permissionGrantPolicyIdsAssignedToDefaultUserRole + $ExpectedPolicy = 'ManagePermissionGrantsForSelf.microsoft-user-default-low' + + if ($ConsentPolicy -contains $ExpectedPolicy) { + $Status = 'Passed' + $Result = 'User consent policy is set to low-risk permissions' + } else { + $Status = 'Failed' + $Result = @" +User consent policy should be configured to only allow consent for low-risk applications. + +**Current Configuration:** +- permissionGrantPolicyIdsAssignedToDefaultUserRole: $($ConsentPolicy -join ', ') + +**Recommended Configuration:** +- permissionGrantPolicyIdsAssignedToDefaultUserRole: $ExpectedPolicy + +This limits users to only consent to applications with low-risk permissions. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP08' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - User Consent Policy' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP08' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - User Consent Policy' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.md new file mode 100644 index 000000000000..356e7e34f6e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.md @@ -0,0 +1,13 @@ +# Authorization Policy - Consent for Risky Apps + +User consent for risky applications should be blocked to prevent users from granting dangerous permissions to untrusted applications. Risky apps may request excessive permissions or exhibit suspicious behavior that could compromise organizational security. + +Microsoft Entra ID can assess application risk based on various factors, and blocking consent for risky apps provides an additional layer of protection against malicious applications. + +**Remediation action** +- [Configure how users consent to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-user-consent) +- [Manage app consent policies](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-app-consent-policies) +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.ps1 new file mode 100644 index 000000000000..21919d35321d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP09.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP09 { + <# + .SYNOPSIS + Authorization Policy - Consent for Risky Apps + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP09' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authorization Policy - Consent for Risky Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowConsentRiskyApps = $AuthorizationPolicy.allowUserConsentForRiskyApps + + if ($AllowConsentRiskyApps -eq $false) { + $Status = 'Passed' + $Result = 'User consent for risky apps is disabled' + } else { + $Status = 'Failed' + $Result = @" +User consent for risk-based apps should be disabled to prevent users from consenting to potentially malicious applications. + +**Current Configuration:** +- allowUserConsentForRiskyApps: $AllowConsentRiskyApps + +**Recommended Configuration:** +- allowUserConsentForRiskyApps: false + +Disabling this prevents users from consenting to apps identified as risky. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP09' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Authorization Policy - Consent for Risky Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP09' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authorization Policy - Consent for Risky Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.md new file mode 100644 index 000000000000..2af59acc7c38 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.md @@ -0,0 +1,13 @@ +# Authorization Policy - Users Can Create Apps + +Regular users should not be allowed to register applications in Microsoft Entra ID. Application registration should be restricted to authorized administrators who can properly assess security implications and configure applications according to organizational policies. + +Allowing unrestricted app registration can lead to shadow IT, misconfigured applications, and potential security vulnerabilities as users may inadvertently create applications with excessive permissions or improper security settings. + +**Remediation action** +- [Restrict who can create applications](https://learn.microsoft.com/entra/identity/role-based-access-control/delegate-app-roles#restrict-who-can-create-applications) +- [Application and service principal objects in Microsoft Entra ID](https://learn.microsoft.com/entra/identity-platform/app-objects-and-service-principals) +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.ps1 new file mode 100644 index 000000000000..1de903c42d9d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP10.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP10 { + <# + .SYNOPSIS + Authorization Policy - Users Can Create Apps + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP10' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Authorization Policy - Users Can Create Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowedToCreateApps = $AuthorizationPolicy.defaultUserRolePermissions.allowedToCreateApps + + if ($AllowedToCreateApps -eq $false) { + $Status = 'Passed' + $Result = 'Users cannot create application registrations' + } else { + $Status = 'Failed' + $Result = @" +Users should not be allowed to create application registrations by default to maintain control over applications. + +**Current Configuration:** +- defaultUserRolePermissions.allowedToCreateApps: $AllowedToCreateApps + +**Recommended Configuration:** +- defaultUserRolePermissions.allowedToCreateApps: false + +Only authorized users should be able to register applications in your tenant. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP10' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authorization Policy - Users Can Create Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP10' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authorization Policy - Users Can Create Apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.md new file mode 100644 index 000000000000..0f5105117fa6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.md @@ -0,0 +1,13 @@ +# Authorization Policy - Users Can Read Other Users + +Users should have the ability to read other users' basic profile information to enable collaboration and communication within the organization. However, this should be balanced with privacy and security considerations. This setting controls whether users can discover and view information about other users in the directory. + +Completely restricting user discovery may impact collaboration, while allowing full access enables normal business operations such as looking up colleagues, viewing organizational charts, and facilitating communication. + +**Remediation action** +- [Authorization policies in Microsoft Entra ID](https://learn.microsoft.com/graph/api/resources/authorizationpolicy) +- [Restrict member users default permissions](https://learn.microsoft.com/entra/fundamentals/users-default-permissions#restrict-member-users-default-permissions) +- [What are default user permissions in Microsoft Entra ID?](https://learn.microsoft.com/entra/fundamentals/users-default-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.ps1 new file mode 100644 index 000000000000..0e66fb8b39d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAP14.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCAAP14 { + <# + .SYNOPSIS + Authorization Policy - Users Can Read Other Users + #> + param($Tenant) + + try { + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP14' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Authorization Policy - Users Can Read Other Users' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + return + } + + $AllowedToReadOtherUsers = $AuthorizationPolicy.defaultUserRolePermissions.allowedToReadOtherUsers + + if ($AllowedToReadOtherUsers -eq $true) { + $Status = 'Passed' + $Result = 'Users can read other users (standard behavior for collaboration)' + } else { + $Status = 'Failed' + $Result = @" +Users should be allowed to read other users' basic profile information for collaboration purposes. + +**Current Configuration:** +- defaultUserRolePermissions.allowedToReadOtherUsers: $AllowedToReadOtherUsers + +**Recommended Configuration:** +- defaultUserRolePermissions.allowedToReadOtherUsers: true + +This setting enables basic collaboration features like Teams and SharePoint. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP14' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Authorization Policy - Users Can Read Other Users' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAP14' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Authorization Policy - Users Can Read Other Users' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authorization Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.md new file mode 100644 index 000000000000..fedf9dd8d1e1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.md @@ -0,0 +1,13 @@ +# SMS - No Sign-In + +SMS should not be allowed as a primary authentication method (sign-in), though it may be used for multi-factor authentication verification. SMS is vulnerable to SIM swap attacks and interception, making it unsuitable as a standalone authentication factor. Organizations should enforce stronger authentication methods for sign-in while potentially allowing SMS only as a second factor. + +This configuration prevents users from signing in with SMS alone, which provides better security than allowing SMS-based authentication while still permitting SMS as an MFA option where appropriate. + +**Remediation action** +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [SMS-based authentication in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-phone-options) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.ps1 new file mode 100644 index 000000000000..e40eacd00391 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAS04.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestEIDSCAAS04 { + <# + .SYNOPSIS + SMS - No Sign-In + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAS04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'SMS - No Sign-In' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $SmsConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Sms' } + + if (-not $SmsConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAS04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'SMS authentication configuration not found in Authentication Methods Policy.' -Risk 'High' -Name 'SMS - No Sign-In' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $InvalidTargets = @() + if ($SmsConfig.includeTargets) { + foreach ($target in $SmsConfig.includeTargets) { + if ($target.isUsableForSignIn -ne $false) { + $InvalidTargets += $target.id + } + } + } + + if ($InvalidTargets.Count -eq 0) { + $Status = 'Passed' + $Result = 'SMS authentication is not allowed for sign-in on any targets' + } else { + $Status = 'Failed' + $Result = @" +SMS should not be allowed for sign-in as it is vulnerable to SIM swap and interception attacks. SMS should only be used for MFA verification, not primary authentication. + +**Current Configuration:** +- Targets with sign-in enabled: $($InvalidTargets.Count) + +**Recommended Configuration:** +- All includeTargets should have isUsableForSignIn: false + +Disabling SMS for sign-in while keeping it for MFA provides better security. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAS04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'SMS - No Sign-In' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAS04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SMS - No Sign-In' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.md new file mode 100644 index 000000000000..9ee13e31e76e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.md @@ -0,0 +1,13 @@ +# Temp Access Pass - State + +Temporary Access Pass (TAP) should be enabled to facilitate secure onboarding of passwordless authentication methods. TAP provides a time-limited passcode that can be used once or multiple times to register strong authentication methods such as FIDO2 security keys or set up the Microsoft Authenticator app. + +Enabling TAP is particularly important for passwordless authentication rollouts, as it allows administrators to securely bootstrap users into passwordless methods without relying on traditional passwords or less secure alternatives. + +**Remediation action** +- [Enable and configure Temporary Access Pass](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass) +- [Temporary Access Pass authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-temporary-access-pass) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.ps1 new file mode 100644 index 000000000000..4cd6c62e1388 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT01.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAT01 { + <# + .SYNOPSIS + Temp Access Pass - State + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Temp Access Pass - State' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Temporary Access Pass configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'Temp Access Pass - State' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + if ($TAPConfig.state -eq 'enabled') { + $Status = 'Passed' + $Result = 'Temporary Access Pass is enabled' + } else { + $Status = 'Failed' + $Result = @" +Temporary Access Pass should be enabled to facilitate secure onboarding of passwordless authentication methods. + +**Current Configuration:** +- State: $($TAPConfig.state) + +**Recommended Configuration:** +- State: enabled + +Enabling TAP allows administrators to securely onboard users to passwordless authentication. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Temp Access Pass - State' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Temp Access Pass - State' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.md new file mode 100644 index 000000000000..cebafc0606cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.md @@ -0,0 +1,13 @@ +# Temp Access Pass - One-Time + +Temporary Access Pass should be configured with appropriate usage limits. Setting TAP to one-time use provides the highest security by ensuring the passcode cannot be reused after initial authentication. However, organizations may choose to allow multiple uses based on specific use cases such as registering multiple authentication methods. + +The configuration should balance security requirements with the specific use cases for TAP in your organization, such as user onboarding workflows or authentication method recovery scenarios. + +**Remediation action** +- [Enable and configure Temporary Access Pass](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass) +- [Temporary Access Pass authentication method](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-temporary-access-pass) +- [Configure Temporary Access Pass properties](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass#configure-temporary-access-pass-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.ps1 new file mode 100644 index 000000000000..0d8b91f7bb88 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAT02.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAT02 { + <# + .SYNOPSIS + Temp Access Pass - One-Time + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Temp Access Pass - One-Time' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Temporary Access Pass configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'Temp Access Pass - One-Time' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + if ($TAPConfig.isUsableOnce -eq $true) { + $Status = 'Passed' + $Result = 'Temporary Access Pass is configured for one-time use' + } else { + $Status = 'Failed' + $Result = @" +Temporary Access Pass should be configured for one-time use to minimize security risks. + +**Current Configuration:** +- isUsableOnce: $($TAPConfig.isUsableOnce) + +**Recommended Configuration:** +- isUsableOnce: true + +One-time use reduces the risk of TAP credential theft or misuse. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Temp Access Pass - One-Time' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAT02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Temp Access Pass - One-Time' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.md new file mode 100644 index 000000000000..6a462df66c70 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.md @@ -0,0 +1,13 @@ +# Voice Call - Disabled + +Voice call authentication should be disabled as it is vulnerable to social engineering attacks and SIM swap attacks. Voice calls are less secure than modern authentication methods and should be replaced with more secure alternatives such as the Microsoft Authenticator app or FIDO2 security keys. + +Attackers can intercept phone calls through SIM swapping or social engineering telecom providers, making voice calls an unreliable authentication factor. Organizations should migrate users to stronger authentication methods. + +**Remediation action** +- [Authentication methods in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-passwordless-deployment) +- [Manage authentication methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.ps1 new file mode 100644 index 000000000000..3183898c4494 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAAV01.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestEIDSCAAV01 { + <# + .SYNOPSIS + Voice Call - Disabled + #> + param($Tenant) + + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAV01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Voice Call - Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + $VoiceConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Voice' } + + if (-not $VoiceConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAV01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Voice authentication configuration not found in Authentication Methods Policy.' -Risk 'Medium' -Name 'Voice Call - Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + return + } + + if ($VoiceConfig.state -eq 'disabled') { + $Status = 'Passed' + $Result = 'Voice call authentication is disabled' + } else { + $Status = 'Failed' + $Result = @" +Voice call authentication should be disabled as it is susceptible to social engineering and SIM swap attacks. + +**Current Configuration:** +- State: $($VoiceConfig.state) + +**Recommended Configuration:** +- State: disabled + +Disabling voice calls reduces the attack surface by eliminating a less secure authentication method. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAV01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Voice Call - Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAAV01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Voice Call - Disabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Authentication Methods' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.md new file mode 100644 index 000000000000..2efc4dc29552 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.md @@ -0,0 +1,13 @@ +# Consent Policy Settings - Group owner consent for apps accessing data + +Group owners should not be allowed to consent to applications accessing group data without proper security review. Allowing group owners to consent to apps can lead to unauthorized data access, as group owners may not fully understand the security implications of granting permissions to third-party applications. + +This setting helps prevent data leakage by ensuring that all application consent requests go through proper administrative channels where security assessments can be performed. + +**Remediation action** +- [Configure group owner consent to apps accessing group data](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-user-consent-groups) +- [Manage app consent policies](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-app-consent-policies) +- [Review permissions granted to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-application-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.ps1 new file mode 100644 index 000000000000..00a54c296493 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP01.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACP01 { + <# + .SYNOPSIS + Consent Policy Settings - Group owner consent for apps accessing data + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Consent Policy Settings - Group owner consent for apps accessing data' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'EnableGroupSpecificConsent' }).value + + if ($SettingValue -eq 'False') { + $Status = 'Passed' + $Result = 'Group owner consent for apps is disabled' + } else { + $Status = 'Failed' + $Result = @" +Group owner consent should be disabled to prevent unauthorized app permissions. + +**Current Configuration:** +- EnableGroupSpecificConsent: $SettingValue + +**Recommended Configuration:** +- EnableGroupSpecificConsent: False +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Consent Policy Settings - Group owner consent for apps accessing data' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Consent Policy Settings - Group owner consent for apps accessing data' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.md new file mode 100644 index 000000000000..c3cae6d32ba2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.md @@ -0,0 +1,13 @@ +# Consent Policy Settings - Block user consent for risky apps + +User consent should be blocked for applications identified as risky by Microsoft to prevent potential security breaches. Microsoft Entra ID assesses application risk based on various signals, including publisher verification status, permissions requested, and application behavior patterns. + +Blocking consent for risky apps provides automatic protection against potentially malicious applications while still allowing users to consent to trusted, low-risk applications (if user consent is enabled). + +**Remediation action** +- [Configure how users consent to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-user-consent) +- [Configure risk-based step-up consent](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-risk-based-step-up-consent) +- [Manage app consent policies](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-app-consent-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.ps1 new file mode 100644 index 000000000000..4ac4ac664034 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP03.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACP03 { + <# + .SYNOPSIS + Consent Policy Settings - Block user consent for risky apps + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Consent Policy Settings - Block user consent for risky apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'BlockUserConsentForRiskyApps' }).value + + if ($SettingValue -eq 'true') { + $Status = 'Passed' + $Result = 'User consent for risky apps is blocked' + } else { + $Status = 'Failed' + $Result = @" +User consent for risky apps should be blocked to prevent security risks. + +**Current Configuration:** +- BlockUserConsentForRiskyApps: $SettingValue + +**Recommended Configuration:** +- BlockUserConsentForRiskyApps: true +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Consent Policy Settings - Block user consent for risky apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Consent Policy Settings - Block user consent for risky apps' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.md new file mode 100644 index 000000000000..8741778896b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.md @@ -0,0 +1,13 @@ +# Consent Policy Settings - Users can request admin consent + +Users should be allowed to request administrator consent when they need to use applications that require permissions beyond what they can grant themselves. This creates a formal workflow where users can submit requests for application access, and administrators can review and approve these requests after assessing security implications. + +Enabling this setting provides a balance between security and productivity, as users can request access to needed applications while ensuring proper oversight and approval processes are in place. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Review permissions granted to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-application-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.ps1 new file mode 100644 index 000000000000..3b960e183ee1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACP04.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACP04 { + <# + .SYNOPSIS + Consent Policy Settings - Users can request admin consent + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Consent Policy Settings - Users can request admin consent' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'EnableAdminConsentRequests' }).value + + if ($SettingValue -eq 'true') { + $Status = 'Passed' + $Result = 'Users can request admin consent for apps' + } else { + $Status = 'Failed' + $Result = @" +Users should be able to request admin consent to enable proper app approval workflows. + +**Current Configuration:** +- EnableAdminConsentRequests: $SettingValue + +**Recommended Configuration:** +- EnableAdminConsentRequests: true +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Consent Policy Settings - Users can request admin consent' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACP04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Consent Policy Settings - Users can request admin consent' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.md new file mode 100644 index 000000000000..9add1126ca1c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.md @@ -0,0 +1,13 @@ +# Admin Consent - Enabled + +The admin consent request workflow should be enabled to provide a formal process for users to request administrator approval for applications requiring privileged permissions. This workflow creates visibility and control over application consent requests while allowing users to request access to applications they need for their work. + +Enabling the admin consent workflow provides a balance between security and productivity by ensuring administrators review high-risk permission requests while streamlining the process for users to request access to needed applications. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Review permissions granted to applications](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-application-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.ps1 new file mode 100644 index 000000000000..c75af77fc7d2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR01.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACR01 { + <# + .SYNOPSIS + Admin Consent - Enabled + #> + param($Tenant) + + try { + $AdminConsentPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $AdminConsentPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Admin Consent - Enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + if ($AdminConsentPolicy.isEnabled -eq $true) { + $Status = 'Passed' + $Result = 'Admin consent request workflow is enabled' + } else { + $Status = 'Failed' + $Result = @" +Admin consent request workflow should be enabled to allow users to request administrator approval for applications. + +**Current Configuration:** +- isEnabled: $($AdminConsentPolicy.isEnabled) + +**Recommended Configuration:** +- isEnabled: true + +Enabling this workflow provides a secure process for users to request access to applications requiring admin consent. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Admin Consent - Enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Admin Consent - Enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.md new file mode 100644 index 000000000000..e78c2db619fc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.md @@ -0,0 +1,13 @@ +# Admin Consent - Notify Reviewers + +Reviewers should be notified when new admin consent requests are submitted to ensure timely review and approval of application access requests. Enabling notifications ensures that consent requests don't go unnoticed and that users receive timely responses to their access requests. + +Proper notification configuration helps maintain a responsive admin consent workflow and improves the user experience while maintaining security oversight. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Review and take action on admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests#review-and-take-action-on-a-request) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.ps1 new file mode 100644 index 000000000000..a99a1c1d3502 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR02.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACR02 { + <# + .SYNOPSIS + Admin Consent - Notify Reviewers + #> + param($Tenant) + + try { + $AdminConsentPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $AdminConsentPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Admin Consent - Notify Reviewers' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + if ($AdminConsentPolicy.notifyReviewers -eq $true) { + $Status = 'Passed' + $Result = 'Admin consent reviewers are notified of new requests' + } else { + $Status = 'Failed' + $Result = @" +Admin consent reviewers should be notified when new consent requests are submitted. + +**Current Configuration:** +- notifyReviewers: $($AdminConsentPolicy.notifyReviewers) + +**Recommended Configuration:** +- notifyReviewers: true + +Enabling notifications ensures reviewers are promptly informed of pending consent requests. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Admin Consent - Notify Reviewers' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Admin Consent - Notify Reviewers' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.md new file mode 100644 index 000000000000..82e9be1b5ac4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.md @@ -0,0 +1,13 @@ +# Admin Consent - Reminders + +Reminders should be enabled for pending admin consent requests to ensure that reviewers don't forget to review and respond to user requests. Regular reminders help maintain an efficient consent workflow and prevent user frustration from delayed responses. + +Configuring appropriate reminder intervals ensures that consent requests are reviewed in a timely manner while not overwhelming reviewers with excessive notifications. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Admin consent workflow settings](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow#configure-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.ps1 new file mode 100644 index 000000000000..ead722796b07 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR03.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCACR03 { + <# + .SYNOPSIS + Admin Consent - Reminders + #> + param($Tenant) + + try { + $AdminConsentPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $AdminConsentPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Admin Consent - Reminders' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + if ($AdminConsentPolicy.remindersEnabled -eq $true) { + $Status = 'Passed' + $Result = 'Admin consent request reminders are enabled' + } else { + $Status = 'Failed' + $Result = @" +Admin consent request reminders should be enabled to ensure timely review of pending requests. + +**Current Configuration:** +- remindersEnabled: $($AdminConsentPolicy.remindersEnabled) + +**Recommended Configuration:** +- remindersEnabled: true + +Enabling reminders helps prevent consent requests from being overlooked or delayed. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Admin Consent - Reminders' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Admin Consent - Reminders' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.md new file mode 100644 index 000000000000..4ad8b36ab867 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.md @@ -0,0 +1,13 @@ +# Admin Consent - Duration + +The admin consent request duration should be set to 30 days or less to ensure that consent requests are reviewed and processed in a timely manner. This setting controls how long consent requests remain active before they expire and need to be resubmitted. + +A shorter request duration ensures that pending consent requests don't accumulate indefinitely and encourages prompt review and decision-making by administrators. It also helps keep the consent request queue manageable and relevant. + +**Remediation action** +- [Configure the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow) +- [Manage admin consent requests](https://learn.microsoft.com/entra/identity/enterprise-apps/manage-consent-requests) +- [Admin consent workflow settings](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow#configure-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.ps1 new file mode 100644 index 000000000000..01c555a480e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCACR04.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestEIDSCACR04 { + <# + .SYNOPSIS + Admin Consent - Duration + #> + param($Tenant) + + try { + $AdminConsentPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $AdminConsentPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR04' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Admin Consent - Duration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + return + } + + $RequestDuration = $AdminConsentPolicy.requestDurationInDays + + if ($RequestDuration -le 30) { + $Status = 'Passed' + $Result = "Admin consent request duration is set to $RequestDuration days (30 days or less)" + } else { + $Status = 'Failed' + $Result = @" +Admin consent request duration should be set to 30 days or less to ensure timely review. + +**Current Configuration:** +- requestDurationInDays: $RequestDuration + +**Recommended Configuration:** +- requestDurationInDays: 30 or less + +A shorter duration ensures consent requests are reviewed and processed in a timely manner. +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR04' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Admin Consent - Duration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCACR04' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Admin Consent - Duration' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Consent Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.md new file mode 100644 index 000000000000..ab5f6ccb47f9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Password Protection Mode + +Password protection mode should be set to "Enforce" to actively block weak passwords and prevent users from setting passwords that appear on Microsoft's banned password list or your custom banned password list. When set to Enforce mode, weak password attempts are blocked in real-time, providing immediate protection against easily compromised credentials. + +Enforce mode applies to both cloud-only users and users whose passwords are synchronized from on-premises Active Directory (when Azure AD Password Protection for Windows Server Active Directory is deployed). + +**Remediation action** +- [Plan and deploy on-premises Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/howto-password-ban-bad-on-premises-deploy) +- [Eliminate bad passwords using Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/concept-password-ban-bad) +- [Configure custom banned password list](https://learn.microsoft.com/entra/identity/authentication/tutorial-configure-custom-password-protection) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.ps1 new file mode 100644 index 000000000000..fb00648135f0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR01.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR01 { + <# + .SYNOPSIS + Password Rule Settings - Password Protection Mode + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR01' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password Rule Settings - Password Protection Mode' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'BannedPasswordCheckOnPremisesMode' }).value + + if ($SettingValue -eq 'Enforce') { + $Status = 'Passed' + $Result = 'Password protection mode is set to Enforce' + } else { + $Status = 'Failed' + $Result = @" +Password protection mode should be set to Enforce to prevent weak passwords. + +**Current Configuration:** +- BannedPasswordCheckOnPremisesMode: $SettingValue + +**Recommended Configuration:** +- BannedPasswordCheckOnPremisesMode: Enforce +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR01' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Password Rule Settings - Password Protection Mode' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR01' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Password Rule Settings - Password Protection Mode' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.md new file mode 100644 index 000000000000..b743add2288f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Enable password protection on Windows Server Active Directory + +Password protection should be enabled for on-premises Windows Server Active Directory to extend Microsoft Entra password protection to your hybrid environment. This ensures that weak passwords are blocked not only in the cloud but also when users set or change passwords on domain controllers. + +Enabling this feature requires deploying Azure AD Password Protection DC agents on your domain controllers and proxy services in your on-premises environment. + +**Remediation action** +- [Plan and deploy on-premises Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/howto-password-ban-bad-on-premises-deploy) +- [Enable on-premises Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/howto-password-ban-bad-on-premises-operations) +- [Monitor on-premises Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/howto-password-ban-bad-on-premises-monitor) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.ps1 new file mode 100644 index 000000000000..201e4d78f156 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR02.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR02 { + <# + .SYNOPSIS + Password Rule Settings - Enable password protection on Windows Server Active Directory + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR02' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password Rule Settings - Enable password protection on Windows Server Active Directory' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheckOnPremises' }).value + + if ($SettingValue -eq 'True') { + $Status = 'Passed' + $Result = 'Password protection is enabled for on-premises Active Directory' + } else { + $Status = 'Failed' + $Result = @" +Password protection should be enabled for on-premises Active Directory to prevent weak passwords. + +**Current Configuration:** +- EnableBannedPasswordCheckOnPremises: $SettingValue + +**Recommended Configuration:** +- EnableBannedPasswordCheckOnPremises: True +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR02' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Password Rule Settings - Enable password protection on Windows Server Active Directory' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR02' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Password Rule Settings - Enable password protection on Windows Server Active Directory' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.md new file mode 100644 index 000000000000..604afe21a263 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Enforce custom list + +A custom banned password list should be enforced to block passwords that are specific to your organization, such as company names, product names, locations, or industry-specific terms that attackers might use in targeted password attacks. + +The custom banned password list complements Microsoft's global banned password list to provide organization-specific protection against weak passwords. This helps prevent users from choosing passwords that may be easily guessed based on knowledge of your organization. + +**Remediation action** +- [Configure custom banned password list](https://learn.microsoft.com/entra/identity/authentication/tutorial-configure-custom-password-protection) +- [Eliminate bad passwords using Azure Active Directory Password Protection](https://learn.microsoft.com/entra/identity/authentication/concept-password-ban-bad) +- [Password policies and account restrictions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-password-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.ps1 new file mode 100644 index 000000000000..4efd63038aec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR03.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR03 { + <# + .SYNOPSIS + Password Rule Settings - Enforce custom list + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR03' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password Rule Settings - Enforce custom list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' }).value + + if ($SettingValue -eq 'True') { + $Status = 'Passed' + $Result = 'Custom banned password list is enforced' + } else { + $Status = 'Failed' + $Result = @" +Custom banned password list should be enforced to prevent common weak passwords. + +**Current Configuration:** +- EnableBannedPasswordCheck: $SettingValue + +**Recommended Configuration:** +- EnableBannedPasswordCheck: True +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR03' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Password Rule Settings - Enforce custom list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR03' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password Rule Settings - Enforce custom list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.md new file mode 100644 index 000000000000..96657ca3c744 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Lockout duration in seconds + +Account lockout duration should be configured to automatically unlock accounts after a specified period following too many failed sign-in attempts. A recommended lockout duration is at least 60 seconds to slow down brute-force attacks while balancing user convenience and security. + +The lockout duration determines how long an account remains locked after reaching the lockout threshold, providing temporary protection against automated password guessing attacks. + +**Remediation action** +- [Microsoft Entra smart lockout](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout) +- [Password policies and account restrictions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-password-policies) +- [Configure smart lockout thresholds](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout#configure-smart-lockout) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.ps1 new file mode 100644 index 000000000000..f711d13880f5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR05.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR05 { + <# + .SYNOPSIS + Password Rule Settings - Lockout duration in seconds + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR05' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password Rule Settings - Lockout duration in seconds' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'LockoutDurationInSeconds' }).value + + if ([int]$SettingValue -ge 60) { + $Status = 'Passed' + $Result = "Lockout duration is set to $SettingValue seconds (minimum 60 seconds required)" + } else { + $Status = 'Failed' + $Result = @" +Lockout duration should be at least 60 seconds to protect against brute force attacks. + +**Current Configuration:** +- LockoutDurationInSeconds: $SettingValue + +**Recommended Configuration:** +- LockoutDurationInSeconds: 60 or greater +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR05' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Password Rule Settings - Lockout duration in seconds' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR05' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password Rule Settings - Lockout duration in seconds' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.md new file mode 100644 index 000000000000..c98e68b5d05e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.md @@ -0,0 +1,13 @@ +# Password Rule Settings - Lockout threshold + +A lockout threshold should be configured to prevent brute-force password attacks by temporarily locking accounts after a specified number of failed sign-in attempts. A recommended threshold is 10 or fewer failed attempts, which provides strong protection against automated attacks while minimizing the impact on legitimate users who may occasionally mistype their passwords. + +Smart lockout in Microsoft Entra ID uses machine learning to distinguish between legitimate users and attackers, helping to prevent legitimate users from being locked out while still protecting against malicious sign-in attempts. + +**Remediation action** +- [Microsoft Entra smart lockout](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout) +- [Password policies and account restrictions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/concept-password-policies) +- [Protect user accounts from attacks with Microsoft Entra ID Protection](https://learn.microsoft.com/entra/id-protection/overview-identity-protection) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.ps1 new file mode 100644 index 000000000000..24c2de9781d5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAPR06.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAPR06 { + <# + .SYNOPSIS + Password Rule Settings - Lockout threshold + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR06' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password Rule Settings - Lockout threshold' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'LockoutThreshold' }).value + + if ([int]$SettingValue -le 10) { + $Status = 'Passed' + $Result = "Lockout threshold is set to $SettingValue failed attempts (maximum 10 attempts recommended)" + } else { + $Status = 'Failed' + $Result = @" +Lockout threshold should be 10 or fewer failed attempts to protect against brute force attacks. + +**Current Configuration:** +- LockoutThreshold: $SettingValue + +**Recommended Configuration:** +- LockoutThreshold: 10 or fewer +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR06' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Password Rule Settings - Lockout threshold' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAPR06' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password Rule Settings - Lockout threshold' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Password Policy' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.md new file mode 100644 index 000000000000..861f4980d274 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.md @@ -0,0 +1,13 @@ +# Classification and M365 Groups - Allow Guests to become Group Owner + +Guest users should not be allowed to become group owners to maintain proper access control and governance over Microsoft 365 groups and teams. Group owners have significant privileges including the ability to add or remove members, modify group settings, and control access to group resources. + +Allowing guests to become group owners creates security risks as external users could potentially grant unauthorized access to organizational resources or modify group configurations in ways that conflict with organizational policies. + +**Remediation action** +- [Manage guest access in Microsoft 365 groups](https://learn.microsoft.com/microsoft-365/admin/create-groups/manage-guest-access-in-groups) +- [Microsoft 365 groups and Microsoft Entra access](https://learn.microsoft.com/entra/identity/users/groups-settings-v2-cmdlets) +- [Review and manage guest user access](https://learn.microsoft.com/entra/identity/users/users-restrict-guest-permissions) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.ps1 new file mode 100644 index 000000000000..eb362a64c07b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST08.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAST08 { + <# + .SYNOPSIS + Classification and M365 Groups - Allow Guests to become Group Owner + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST08' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Classification and M365 Groups - Allow Guests to become Group Owner' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Group Settings' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'AllowGuestsToBeGroupOwner' }).value + + if ($SettingValue -eq 'false') { + $Status = 'Passed' + $Result = 'Guests are not allowed to become group owners' + } else { + $Status = 'Failed' + $Result = @" +Guests should not be allowed to become group owners to maintain proper access control. + +**Current Configuration:** +- AllowGuestsToBeGroupOwner: $SettingValue + +**Recommended Configuration:** +- AllowGuestsToBeGroupOwner: false +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST08' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Classification and M365 Groups - Allow Guests to become Group Owner' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Group Settings' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST08' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Classification and M365 Groups - Allow Guests to become Group Owner' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Group Settings' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.md b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.md new file mode 100644 index 000000000000..35def764040b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.md @@ -0,0 +1,13 @@ +# Classification and M365 Groups - Allow Guests to have access to groups content + +Guest access to Microsoft 365 groups content should be carefully controlled based on your organization's collaboration requirements and security policies. When enabled, guests can access group resources including SharePoint sites, Teams content, and group files. However, organizations should assess whether guest access is necessary and implement appropriate controls. + +Consider your organization's collaboration needs and data sensitivity when configuring this setting. For highly secure environments, disabling guest access may be appropriate, while collaboration-focused organizations may enable it with proper oversight. + +**Remediation action** +- [Manage guest access in Microsoft 365 groups](https://learn.microsoft.com/microsoft-365/admin/create-groups/manage-guest-access-in-groups) +- [Configure external collaboration settings](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure) +- [Secure collaboration with Microsoft 365](https://learn.microsoft.com/microsoft-365/solutions/setup-secure-collaboration-with-teams) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.ps1 b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.ps1 new file mode 100644 index 000000000000..161a8ce28821 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/Identity/Invoke-CippTestEIDSCAST09.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestEIDSCAST09 { + <# + .SYNOPSIS + Classification and M365 Groups - Allow Guests to have access to groups content + #> + param($Tenant) + + try { + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST09' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Classification and M365 Groups - Allow Guests to have access to groups content' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Group Settings' + return + } + + $SettingValue = ($Settings.values | Where-Object { $_.name -eq 'AllowGuestsToAccessGroups' }).value + + if ($SettingValue -eq 'True') { + $Status = 'Passed' + $Result = 'Guests are allowed to access groups content' + } else { + $Status = 'Failed' + $Result = @" +Guests should be allowed to access groups content for proper collaboration. + +**Current Configuration:** +- AllowGuestsToAccessGroups: $SettingValue + +**Recommended Configuration:** +- AllowGuestsToAccessGroups: True +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST09' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Classification and M365 Groups - Allow Guests to have access to groups content' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Group Settings' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'EIDSCAST09' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Classification and M365 Groups - Allow Guests to have access to groups content' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Group Settings' + } +} diff --git a/Modules/CIPPCore/Public/Tests/EIDSCA/report.json b/Modules/CIPPCore/Public/Tests/EIDSCA/report.json new file mode 100644 index 000000000000..0db980ceada1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/EIDSCA/report.json @@ -0,0 +1,53 @@ +{ + "name": "EIDSCA (Entra ID Security Configuration Analyzer) Tests", + "description": "Comprehensive security assessment for Microsoft Entra ID (formerly Azure AD) covering authorization policies, authentication methods, consent policies, password policies, and group settings. Based on Microsoft's EIDSCA framework for identity security best practices.", + "version": "1.0", + "source": "https://github.com/maester365/maester", + "category": "Identity Security", + "IdentityTests": [ + "EIDSCAAP01", + "EIDSCAAP04", + "EIDSCAAP05", + "EIDSCAAP06", + "EIDSCAAP07", + "EIDSCAAP08", + "EIDSCAAP09", + "EIDSCAAP10", + "EIDSCAAP14", + "EIDSCACP01", + "EIDSCACP03", + "EIDSCACP04", + "EIDSCAPR01", + "EIDSCAPR02", + "EIDSCAPR03", + "EIDSCAPR05", + "EIDSCAPR06", + "EIDSCAST08", + "EIDSCAST09", + "EIDSCAAG01", + "EIDSCAAG02", + "EIDSCAAG03", + "EIDSCAAM01", + "EIDSCAAM02", + "EIDSCAAM03", + "EIDSCAAM04", + "EIDSCAAM06", + "EIDSCAAM07", + "EIDSCAAM09", + "EIDSCAAM10", + "EIDSCAAF01", + "EIDSCAAF02", + "EIDSCAAF03", + "EIDSCAAF04", + "EIDSCAAF05", + "EIDSCAAF06", + "EIDSCAAT01", + "EIDSCAAT02", + "EIDSCAAV01", + "EIDSCAAS04", + "EIDSCACR01", + "EIDSCACR02", + "EIDSCACR03", + "EIDSCACR04" + ] +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.md new file mode 100644 index 000000000000..55f82ea10817 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.md @@ -0,0 +1,8 @@ +The Bulk Complaint Level (BCL) threshold determines when bulk email messages are treated as spam. Microsoft recommends setting this value between 4 and 6 to achieve a balance between spam protection and minimizing false positives. A threshold that is too high may allow bulk spam through, while one that is too low may quarantine legitimate bulk email. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Bulk Complaint Level (BCL) in Exchange Online Protection](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-bulk-complaint-level-bcl-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.ps1 new file mode 100644 index 000000000000..b6f56d3aec61 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA100.ps1 @@ -0,0 +1,50 @@ +function Invoke-CippTestORCA100 { + <# + .SYNOPSIS + Bulk Complaint Level threshold is between 4 and 6 + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA100' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Bulk Complaint Level threshold is between 4 and 6' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + # Check if BulkThreshold is between 4 and 6 (inclusive) + if ($Policy.BulkThreshold -ge 4 -and $Policy.BulkThreshold -le 6) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have appropriate Bulk Complaint Level (BCL) thresholds set between 4 and 6.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have BCL thresholds outside the recommended range (4-6).`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Current BCL Threshold |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.BulkThreshold) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA100' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Bulk Complaint Level threshold is between 4 and 6' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA100' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Bulk Complaint Level threshold is between 4 and 6' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.md new file mode 100644 index 000000000000..6b67729768d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.md @@ -0,0 +1,8 @@ +Anti-spam policies should enable the option to move spam messages to the Junk Email folder rather than deleting them. This provides users with visibility into what was filtered and allows them to review messages that may have been incorrectly classified, reducing the risk of lost legitimate emails. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.ps1 new file mode 100644 index 000000000000..69ec5003be84 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA101.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestORCA101 { + <# + .SYNOPSIS + Bulk is marked as spam + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA101' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Bulk is marked as spam' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.MarkAsSpamBulkMail -eq 'On') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies are configured to mark bulk mail as spam.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)`n`n" + if ($PassedPolicies.Count -gt 0) { + $Result += "| Policy Name | Mark As Spam Bulk Mail |`n" + $Result += "|------------|------------------------|`n" + foreach ($Policy in $PassedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.MarkAsSpamBulkMail) |`n" + } + } + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies are not configured to mark bulk mail as spam.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Mark As Spam Bulk Mail |`n" + $Result += "|------------|------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.MarkAsSpamBulkMail) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA101' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Bulk is marked as spam' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA101' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Bulk is marked as spam' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.md new file mode 100644 index 000000000000..4675fbf0fed5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.md @@ -0,0 +1,8 @@ +Advanced Spam Filtering (ASF) options in anti-spam policies provide additional protection against spam. However, Microsoft recommends disabling most ASF options as they can cause false positives. Standard filtering with Defender for Office 365 is more effective. Only specific ASF options should remain enabled when needed for legacy protection scenarios. + +**Remediation action** + +- [Advanced Spam Filter (ASF) settings in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-asf-settings-about) +- [Configure anti-spam policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.ps1 new file mode 100644 index 000000000000..31da61d73746 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA102.ps1 @@ -0,0 +1,74 @@ +function Invoke-CippTestORCA102 { + <# + .SYNOPSIS + Advanced Spam filter options are turned off + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA102' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Advanced Spam filter options are turned off' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $ASFSettings = @( + $Policy.IncreaseScoreWithImageLinks, + $Policy.IncreaseScoreWithNumericIps, + $Policy.IncreaseScoreWithRedirectToOtherPort, + $Policy.IncreaseScoreWithBizOrInfoUrls, + $Policy.MarkAsSpamEmptyMessages, + $Policy.MarkAsSpamJavaScriptInHtml, + $Policy.MarkAsSpamFramesInHtml, + $Policy.MarkAsSpamObjectTagsInHtml, + $Policy.MarkAsSpamEmbedTagsInHtml, + $Policy.MarkAsSpamFormTagsInHtml, + $Policy.MarkAsSpamWebBugsInHtml, + $Policy.MarkAsSpamSensitiveWordList, + $Policy.MarkAsSpamFromAddressAuthFail, + $Policy.MarkAsSpamNdrBackscatter, + $Policy.MarkAsSpamSpfRecordHardFail + ) + + $EnabledASF = $ASFSettings | Where-Object { $_ -eq 'On' } + + if ($EnabledASF.Count -eq 0) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Advanced Spam Filter (ASF) options turned off.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have Advanced Spam Filter (ASF) options enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enabled ASF Options |`n" + $Result += "|------------|---------------------|`n" + foreach ($Policy in $FailedPolicies) { + $EnabledOptions = [System.Collections.Generic.List[string]]::new() + if ($Policy.IncreaseScoreWithImageLinks -eq 'On') { $EnabledOptions.Add('ImageLinks') | Out-Null } + if ($Policy.IncreaseScoreWithNumericIps -eq 'On') { $EnabledOptions.Add('NumericIPs') | Out-Null } + if ($Policy.MarkAsSpamEmptyMessages -eq 'On') { $EnabledOptions.Add('EmptyMessages') | Out-Null } + if ($Policy.MarkAsSpamJavaScriptInHtml -eq 'On') { $EnabledOptions.Add('JavaScript') | Out-Null } + $Result += "| $($Policy.Identity) | $($EnabledOptions -join ', ') |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA102' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Advanced Spam filter options are turned off' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA102' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Advanced Spam filter options are turned off' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.md new file mode 100644 index 000000000000..bc048fc4c32a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.md @@ -0,0 +1,8 @@ +Outbound spam filter policies should be configured with appropriate limits to prevent compromised accounts from sending large volumes of spam. Microsoft recommends setting RecipientLimitExternalPerHour to 500, RecipientLimitInternalPerHour to 1000, and ActionWhenThresholdReached to BlockUserForToday to protect your organization's reputation and prevent abuse. + +**Remediation action** + +- [Configure outbound spam filtering](https://learn.microsoft.com/microsoft-365/security/office-365-security/outbound-spam-policies-configure) +- [Outbound spam protection in Exchange Online](https://learn.microsoft.com/microsoft-365/security/office-365-security/outbound-spam-protection-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.ps1 new file mode 100644 index 000000000000..10171890ecec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA103.ps1 @@ -0,0 +1,68 @@ +function Invoke-CippTestORCA103 { + <# + .SYNOPSIS + Outbound spam filter policy settings configured + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedOutboundSpamFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA103' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Outbound spam filter policy settings configured' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $IsCompliant = $true + $Issues = [System.Collections.Generic.List[string]]::new() + + if ($Policy.RecipientLimitExternalPerHour -ne 500) { + $IsCompliant = $false + $Issues.Add("RecipientLimitExternalPerHour: $($Policy.RecipientLimitExternalPerHour) (should be 500)") | Out-Null + } + if ($Policy.RecipientLimitInternalPerHour -ne 1000) { + $IsCompliant = $false + $Issues.Add("RecipientLimitInternalPerHour: $($Policy.RecipientLimitInternalPerHour) (should be 1000)") | Out-Null + } + if ($Policy.ActionWhenThresholdReached -ne 'BlockUserForToday') { + $IsCompliant = $false + $Issues.Add("ActionWhenThresholdReached: $($Policy.ActionWhenThresholdReached) (should be BlockUserForToday)") | Out-Null + } + + if ($IsCompliant) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add([PSCustomObject]@{ + Policy = $Policy + Issues = $Issues + }) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All outbound spam filter policies are configured correctly.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) outbound spam filter policies are not configured correctly.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Issues |`n" + $Result += "|------------|--------|`n" + foreach ($Failed in $FailedPolicies) { + $Result += "| $($Failed.Policy.Identity) | $($Failed.Issues -join '
    ') |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA103' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Outbound spam filter policy settings configured' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA103' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Outbound spam filter policy settings configured' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } + } diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.md new file mode 100644 index 000000000000..bf7bb5221b01 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.md @@ -0,0 +1,10 @@ +Anti-phishing policies should have High Confidence Phish action set to Quarantine to protect users from sophisticated phishing attacks. Messages identified as high-confidence phishing attempts pose a significant security risk and should be quarantined for review rather than delivered to users. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Set up anti-phishing policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.ps1 new file mode 100644 index 000000000000..5f49f7072020 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA104.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestORCA104 { + <# + .SYNOPSIS + High Confidence Phish action set to Quarantine message + #> + param($Tenant) + + try { + $AntiPhishPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $AntiPhishPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA104' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'High Confidence Phish action set to Quarantine message' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = @() + $PassedPolicies = @() + + foreach ($Policy in $AntiPhishPolicies) { + # Check if HighConfidencePhishAction is set to Quarantine + if ($Policy.HighConfidencePhishAction -eq 'Quarantine') { + $PassedPolicies += $Policy + } else { + $FailedPolicies += $Policy + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have High Confidence Phish action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)`n`n" + if ($PassedPolicies.Count -gt 0) { + $Result += "| Policy Name | Action |`n" + $Result += "|------------|--------|`n" + foreach ($Policy in $PassedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.HighConfidencePhishAction) |`n" + } + } + } else { + $Status = 'Failed' + $Result = "Some anti-phishing policies do not have High Confidence Phish action set to Quarantine.`n`n" + $Result += "**Failed Policies:** $($FailedPolicies.Count) | **Passed Policies:** $($PassedPolicies.Count)`n`n" + $Result += "### Non-Compliant Policies`n`n" + $Result += "| Policy Name | Current Action | Recommended Action |`n" + $Result += "|------------|----------------|-------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.HighConfidencePhishAction) | Quarantine |`n" + } + $Result += "`n**Remediation:** Update the HighConfidencePhishAction to 'Quarantine' for enhanced security." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA104' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'High Confidence Phish action set to Quarantine message' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA104' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High Confidence Phish action set to Quarantine message' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.md new file mode 100644 index 000000000000..3391a38cece9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.md @@ -0,0 +1,10 @@ +Safe Links policies should enable synchronous URL detonation (DeliverMessageAfterScan) to scan links in real-time before delivering messages to users. This ensures that malicious URLs are detected and blocked before they reach user mailboxes, providing enhanced protection against zero-day attacks and sophisticated phishing campaigns. + +**Remediation action** + +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.ps1 new file mode 100644 index 000000000000..84d4a6dd7ab4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA105.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA105 { + <# + .SYNOPSIS + Safe Links Synchronous URL detonation is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA105' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links Synchronous URL detonation is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.DeliverMessageAfterScan -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have synchronous URL detonation enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies do not have synchronous URL detonation enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Deliver Message After Scan |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.DeliverMessageAfterScan) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA105' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links Synchronous URL detonation is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA105' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links Synchronous URL detonation is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.md new file mode 100644 index 000000000000..8955503864dd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.md @@ -0,0 +1,10 @@ +Anti-spam policies should have a quarantine retention period of at least 30 days to allow sufficient time for administrators to review and release legitimate messages that were incorrectly quarantined. A retention period that is too short may result in legitimate messages being permanently deleted before they can be reviewed. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spam protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-protection-about) +- [Quarantine policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-policies) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.ps1 new file mode 100644 index 000000000000..2058a76fb616 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA106.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA106 { + <# + .SYNOPSIS + Quarantine retention period is 30 days + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA106' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Quarantine retention period is 30 days' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.QuarantineRetentionPeriod -gt 15) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have quarantine retention period set to 30 days.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have quarantine retention period set to 30 days.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Quarantine Retention Period |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.QuarantineRetentionPeriod) days |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA106' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Quarantine retention period is 30 days' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA106' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Quarantine retention period is 30 days' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.md new file mode 100644 index 000000000000..6c0f3601b410 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.md @@ -0,0 +1,10 @@ +Quarantine policies should enable end-user spam notifications to inform users about messages that have been quarantined. This allows users to review and release legitimate messages that may have been incorrectly identified as spam, reducing administrative overhead and improving user experience. + +**Remediation action** + +- [Quarantine policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-policies) +- [End-user spam notifications in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-end-user) +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.ps1 new file mode 100644 index 000000000000..51f4a1a90e95 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA107.ps1 @@ -0,0 +1,57 @@ +function Invoke-CippTestORCA107 { + <# + .SYNOPSIS + End-user spam notification is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoQuarantinePolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA107' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'End-user spam notification is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Quarantine' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EndUserSpamNotificationFrequency -gt 0) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0 -and $PassedPolicies.Count -gt 0) { + $Status = 'Passed' + $Result = "All quarantine policies have end-user spam notifications enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)`n`n" + $Result += "| Policy Name | Notification Frequency (days) |`n" + $Result += "|------------|-------------------------------|`n" + foreach ($Policy in $PassedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EndUserSpamNotificationFrequency) |`n" + } + } elseif ($PassedPolicies.Count -eq 0) { + $Status = 'Failed' + $Result = "No quarantine policies have end-user spam notifications enabled.`n`n" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) quarantine policies do not have end-user spam notifications enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Notification Frequency |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | Disabled |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA107' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'End-user spam notification is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Quarantine' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA107' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'End-user spam notification is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Quarantine' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.md new file mode 100644 index 000000000000..4539f91ff893 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.md @@ -0,0 +1,10 @@ +DKIM (DomainKeys Identified Mail) signing should be enabled for all custom domains in your organization. DKIM adds a digital signature to outbound email messages, allowing receiving mail servers to verify that the message was sent from your domain and hasn't been altered in transit. This helps prevent email spoofing and improves email deliverability. + +**Remediation action** + +- [Use DKIM to validate outbound email sent from your custom domain](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dkim-configure) +- [How Microsoft 365 uses SPF and DKIM to prevent spoofing](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-anti-spoofing) +- [Email authentication in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.ps1 new file mode 100644 index 000000000000..390ab97aa9aa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestORCA108 { + <# + .SYNOPSIS + DKIM signing is set up for all your custom domains + #> + param($Tenant) + + try { + $DkimConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoDkimSigningConfig' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $DkimConfig -or -not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'DKIM signing is set up for all your custom domains' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'DKIM' + return + } + + # Get custom domains (exclude default .onmicrosoft.com domains) + $CustomDomains = $AcceptedDomains | Where-Object { + $_.DomainName -notlike '*.onmicrosoft.com' -and + $_.DomainName -notlike '*.mail.onmicrosoft.com' + } + + if ($CustomDomains.Count -eq 0) { + $Status = 'Passed' + $Result = 'No custom domains configured. DKIM check not applicable for default domains only.' + } else { + $DomainsWithoutDkim = @() + $DomainsWithDkim = @() + + foreach ($Domain in $CustomDomains) { + $DkimForDomain = $DkimConfig | Where-Object { $_.Domain -eq $Domain.DomainName } + + if ($DkimForDomain -and $DkimForDomain.Enabled -eq $true) { + $DomainsWithDkim += $Domain.DomainName + } else { + $DomainsWithoutDkim += $Domain.DomainName + } + } + + if ($DomainsWithoutDkim.Count -eq 0) { + $Status = 'Passed' + $Result = "DKIM signing is enabled for all custom domains ($($DomainsWithDkim.Count) domains).`n`n" + $Result += "**Domains with DKIM enabled:**`n" + $Result += ($DomainsWithDkim | ForEach-Object { "- $_" }) -join "`n" + } else { + $Status = 'Failed' + $Result = "DKIM signing is not configured for all custom domains.`n`n" + $Result += "**Missing DKIM:** $($DomainsWithoutDkim.Count) | **Configured:** $($DomainsWithDkim.Count)`n`n" + $Result += "### Domains without DKIM:`n" + $Result += ($DomainsWithoutDkim | ForEach-Object { "- $_" }) -join "`n" + $Result += "`n`n**Remediation:** Enable DKIM signing for all custom domains to prevent email spoofing." + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'DKIM signing is set up for all your custom domains' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'DKIM' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'DKIM signing is set up for all your custom domains' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'DKIM' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.md new file mode 100644 index 000000000000..907ad5c4e661 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.md @@ -0,0 +1,9 @@ +DNS records must be properly configured to support DKIM signing for your custom domains. After enabling DKIM in Microsoft 365, you need to publish the DKIM CNAME records in your domain's DNS zone. Without these DNS records, DKIM signing will not function properly, and your outbound emails will not be signed. + +**Remediation action** + +- [Use DKIM to validate outbound email sent from your custom domain](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dkim-configure) +- [Steps to create, enable and disable DKIM from Microsoft 365 Defender portal](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dkim-configure#steps-to-create-enable-and-disable-dkim-from-microsoft-365-defender-portal) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.ps1 new file mode 100644 index 000000000000..6d39c4e1d476 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA108_1.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestORCA108_1 { + <# + .SYNOPSIS + DNS Records have been set up to support DKIM + #> + param($Tenant) + + try { + $DkimConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoDkimSigningConfig' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $DkimConfig -or -not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108_1' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'DNS Records have been set up to support DKIM' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'DKIM' + return + } + + $FailedDomains = [System.Collections.Generic.List[object]]::new() + $PassedDomains = [System.Collections.Generic.List[object]]::new() + $CustomDomains = $AcceptedDomains | Where-Object { $_.DomainName -notlike '*onmicrosoft.com' } + + foreach ($Domain in $CustomDomains) { + $DkimRecord = $DkimConfig | Where-Object { $_.Domain -eq $Domain.DomainName } + + if ($DkimRecord -and $DkimRecord.Selector1CNAME -and $DkimRecord.Selector2CNAME) { + $PassedDomains.Add($Domain) | Out-Null + } else { + $FailedDomains.Add($Domain) | Out-Null + } + } + + if ($FailedDomains.Count -eq 0) { + $Status = 'Passed' + $Result = "All custom domains have DKIM DNS records configured.`n`n" + $Result += "**Compliant Domains:** $($PassedDomains.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedDomains.Count) custom domains do not have DKIM DNS records configured.`n`n" + $Result += "**Non-Compliant Domains:** $($FailedDomains.Count)`n`n" + $Result += "| Domain Name |`n" + $Result += "|------------|`n" + foreach ($Domain in $FailedDomains) { + $Result += "| $($Domain.DomainName) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108_1' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'DNS Records have been set up to support DKIM' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'DKIM' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA108_1' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'DNS Records have been set up to support DKIM' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'DKIM' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.md new file mode 100644 index 000000000000..b4fb18706c7f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.md @@ -0,0 +1,10 @@ +Anti-spam policies should not have senders or domains configured in the allow list in an unsafe manner. Allowing senders or entire domains to bypass spam filtering can expose your organization to phishing attacks and malware. Allow lists should be used sparingly and only for trusted senders with a verified business relationship. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Create safe sender lists in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/create-safe-sender-lists-in-office-365) +- [Use mail flow rules to filter bulk email in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/use-rules-to-filter-bulk-mail) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.ps1 new file mode 100644 index 000000000000..45bbfc43b14d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA109.ps1 @@ -0,0 +1,54 @@ +function Invoke-CippTestORCA109 { + <# + .SYNOPSIS + Senders are not being allow listed in an unsafe manner + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA109' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Senders are not being allow listed in an unsafe manner' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasAllowedSenders = ($Policy.AllowedSenders -and $Policy.AllowedSenders.Count -gt 0) -or + ($Policy.AllowedSenderDomains -and $Policy.AllowedSenderDomains.Count -gt 0) + + if (-not $HasAllowedSenders) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-spam policies have sender allow lists configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have sender allow lists configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Allowed Senders | Allowed Sender Domains |`n" + $Result += "|------------|----------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $SenderCount = if ($Policy.AllowedSenders) { $Policy.AllowedSenders.Count } else { 0 } + $DomainCount = if ($Policy.AllowedSenderDomains) { $Policy.AllowedSenderDomains.Count } else { 0 } + $Result += "| $($Policy.Identity) | $SenderCount | $DomainCount |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA109' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Senders are not being allow listed in an unsafe manner' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA109' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Senders are not being allow listed in an unsafe manner' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.md new file mode 100644 index 000000000000..70a3607e6be1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.md @@ -0,0 +1,10 @@ +Anti-spam policies should have internal sender notifications disabled to prevent information disclosure. Notifying internal senders when their messages are quarantined can reveal security policy details to potentially compromised accounts and may be used by attackers to understand and bypass your security measures. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spam protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-protection-about) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.ps1 new file mode 100644 index 000000000000..1894ebd339d7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA110.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA110 { + <# + .SYNOPSIS + Internal Sender notifications are disabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA110' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Internal Sender notifications are disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.InlineSafetyTipsEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have internal sender notifications disabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have internal sender notifications enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Inline Safety Tips Enabled |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.InlineSafetyTipsEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA110' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Internal Sender notifications are disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA110' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Internal Sender notifications are disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.md new file mode 100644 index 000000000000..36010802db16 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.md @@ -0,0 +1,10 @@ +Anti-phishing policies should enable the unauthenticated sender indicator (EnableUnauthenticatedSender) to display a visual indicator for messages that fail authentication checks. This helps users identify potentially spoofed messages and reduces the risk of falling victim to phishing attacks. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Set up anti-phishing policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Unauthenticated sender indicators](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#unauthenticated-sender-indicators) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.ps1 new file mode 100644 index 000000000000..1fa78226d75b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA111.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA111 { + <# + .SYNOPSIS + Anti-phishing policy exists and EnableUnauthenticatedSender is true + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA111' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Unauthenticated Sender tagging enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableUnauthenticatedSender -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have unauthenticated sender tagging enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have unauthenticated sender tagging enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Unauthenticated Sender |`n" + $Result += "|------------|------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableUnauthenticatedSender) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA111' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Unauthenticated Sender tagging enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA111' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Unauthenticated Sender tagging enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.md new file mode 100644 index 000000000000..fb0bf7059686 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.md @@ -0,0 +1,10 @@ +Anti-phishing policies should configure the anti-spoofing protection action to move messages to the Junk Email folder. This provides protection against spoofed messages while allowing users to review them if needed. Messages that appear to be from internal senders but fail authentication checks should be quarantined to prevent impersonation attacks. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Spoof intelligence insight in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spoofing-spoof-intelligence) +- [Anti-spoofing protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-spoofing-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.ps1 new file mode 100644 index 000000000000..84761e1e4d29 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA112.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA112 { + <# + .SYNOPSIS + Anti-spoofing protection action is configured to Move message to Junk Email folders + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA112' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Anti-spoofing protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.AuthenticationFailAction -eq 'MoveToJmf') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have anti-spoofing action set to Move to Junk Email folder.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have anti-spoofing action set to Move to Junk Email folder.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Authentication Fail Action |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.AuthenticationFailAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA112' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Anti-spoofing protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA112' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Anti-spoofing protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.md new file mode 100644 index 000000000000..5730ae5bc2d9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.md @@ -0,0 +1,10 @@ +Safe Links policies should disable the AllowClickThrough setting to prevent users from clicking through to potentially malicious URLs even after receiving a warning. When AllowClickThrough is enabled, users can bypass the Safe Links warning page and navigate to the original URL, which significantly reduces the effectiveness of Safe Links protection. + +**Remediation action** + +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.ps1 new file mode 100644 index 000000000000..93cfc03f605a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA113.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestORCA113 { + <# + .SYNOPSIS + AllowClickThrough is disabled in Safe Links policies + #> + param($Tenant) + + try { + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA113' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'AllowClickThrough is disabled in Safe Links policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = @() + $PassedPolicies = @() + + foreach ($Policy in $SafeLinksPolicies) { + # Check if DoNotAllowClickThrough is set to true (which means AllowClickThrough is disabled) + if ($Policy.DoNotAllowClickThrough -eq $true) { + $PassedPolicies += $Policy + } else { + $FailedPolicies += $Policy + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have click-through disabled (DoNotAllowClickThrough = true).`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)`n`n" + if ($PassedPolicies.Count -gt 0) { + $Result += "| Policy Name | DoNotAllowClickThrough |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $PassedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.DoNotAllowClickThrough) |`n" + } + } + } else { + $Status = 'Failed' + $Result = "Some Safe Links policies allow click-through, which reduces protection.`n`n" + $Result += "**Failed Policies:** $($FailedPolicies.Count) | **Passed Policies:** $($PassedPolicies.Count)`n`n" + $Result += "### Non-Compliant Policies`n`n" + $Result += "| Policy Name | DoNotAllowClickThrough | Recommended |`n" + $Result += "|------------|----------------------|-------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.DoNotAllowClickThrough) | true |`n" + } + $Result += "`n**Remediation:** Disable click-through (set DoNotAllowClickThrough to true) to prevent users from bypassing Safe Links protection." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA113' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'AllowClickThrough is disabled in Safe Links policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA113' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'AllowClickThrough is disabled in Safe Links policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.md new file mode 100644 index 000000000000..04bf5f2fbbeb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.md @@ -0,0 +1,10 @@ +Anti-spam policies should not have IP addresses configured in the allow list. IP-based allow lists can be exploited by attackers who use compromised or shared infrastructure, and they bypass important security controls. Instead of using IP allow lists, implement proper email authentication (SPF, DKIM, DMARC) and use sender-based allow lists only when absolutely necessary. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Configure the connection filter policy](https://learn.microsoft.com/microsoft-365/security/office-365-security/connection-filter-policies-configure) +- [Create safe sender lists in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/create-safe-sender-lists-in-office-365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.ps1 new file mode 100644 index 000000000000..bcafb040cb04 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA114.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestORCA114 { + <# + .SYNOPSIS + No IP Allow Lists have been configured + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA114' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'No IP Allow Lists have been configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + +$FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasIPAllowList = ($Policy.IPAllowList -and $Policy.IPAllowList.Count -gt 0) + + if (-not $HasIPAllowList) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-spam policies have IP allow lists configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have IP allow lists configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | IP Allow List Count |`n" + $Result += "|------------|-------------------|`n" + foreach ($Policy in $FailedPolicies) { + $IPCount = if ($Policy.IPAllowList) { $Policy.IPAllowList.Count } else { 0 } + $Result += "| $($Policy.Identity) | $IPCount |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA114' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'No IP Allow Lists have been configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA114' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'No IP Allow Lists have been configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.md new file mode 100644 index 000000000000..a0485c090e97 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.md @@ -0,0 +1,10 @@ +Anti-phishing policies should enable mailbox intelligence-based impersonation protection to leverage machine learning and user behavior patterns for detecting impersonation attempts. This feature analyzes email communication patterns and identifies messages that may be attempting to impersonate trusted contacts or business partners. + +**Remediation action** + +- [Impersonation settings in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.ps1 new file mode 100644 index 000000000000..6c9e383ca1d8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA115.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA115 { + <# + .SYNOPSIS + Mailbox intelligence based impersonation protection is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA115' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Mailbox intelligence based impersonation protection is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableMailboxIntelligenceProtection -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have mailbox intelligence based impersonation protection enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have mailbox intelligence based impersonation protection enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Mailbox Intelligence Protection |`n" + $Result += "|------------|---------------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableMailboxIntelligenceProtection) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA115' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Mailbox intelligence based impersonation protection is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA115' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Mailbox intelligence based impersonation protection is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.md new file mode 100644 index 000000000000..87a80c2c206e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.md @@ -0,0 +1,10 @@ +Anti-phishing policies should configure mailbox intelligence-based impersonation protection to move messages to the Junk Email folder. This setting ensures that messages identified as potential impersonation attempts are quarantined or moved to junk mail, preventing users from being exposed to sophisticated social engineering attacks while still allowing for message review if needed. + +**Remediation action** + +- [Impersonation settings in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.ps1 new file mode 100644 index 000000000000..3677473a0684 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA116.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA116 { + <# + .SYNOPSIS + Mailbox intelligence based impersonation protection action set to move message to junk mail folder + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA116' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Mailbox intelligence impersonation protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.MailboxIntelligenceProtectionAction -eq 'MoveToJmf') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have mailbox intelligence impersonation protection action set to Move to Junk Email folder.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have mailbox intelligence impersonation protection action set to Move to Junk Email folder.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Mailbox Intelligence Protection Action |`n" + $Result += "|------------|---------------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.MailboxIntelligenceProtectionAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA116' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Mailbox intelligence impersonation protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA116' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Mailbox intelligence impersonation protection action configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.md new file mode 100644 index 000000000000..eb778c08620e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.md @@ -0,0 +1,10 @@ +Anti-spam policies should not have entire domains configured in the allow list. Allowing entire domains to bypass spam filtering can expose your organization to phishing attacks and malware, especially if the allowed domain is compromised or used by multiple organizations. Domain-based allow lists should be avoided, and sender-specific allow lists should be used sparingly only for verified business relationships. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Create safe sender lists in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/create-safe-sender-lists-in-office-365) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.ps1 new file mode 100644 index 000000000000..eadab025151c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_1.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestORCA118_1 { + <# + .SYNOPSIS + Domains not allow listed in Anti-Spam + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_1' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasAllowedDomains = ($Policy.AllowedSenderDomains -and $Policy.AllowedSenderDomains.Count -gt 0) + + if (-not $HasAllowedDomains) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-spam policies have allowed sender domains configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have allowed sender domains configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Allowed Sender Domains Count |`n" + $Result += "|------------|------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Count = if ($Policy.AllowedSenderDomains) { $Policy.AllowedSenderDomains.Count } else { 0 } + $Result += "| $($Policy.Identity) | $Count |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_1' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_1' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.md new file mode 100644 index 000000000000..977cc4a452c8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.md @@ -0,0 +1,10 @@ +Transport rules (mail flow rules) should not be configured to allow list entire domains and bypass spam filtering. Transport rules that skip spam filtering for entire domains can be exploited by attackers to deliver malicious content. These rules override anti-spam policies and should only be used in exceptional circumstances with strict conditions. + +**Remediation action** + +- [Mail flow rules (transport rules) in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules) +- [Use mail flow rules to inspect message attachments](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/inspect-message-attachments) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.ps1 new file mode 100644 index 000000000000..15e795a6b9cf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_2.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestORCA118_2 { + <# + .SYNOPSIS + Domains not allow listed in Transport Rules + #> + param($Tenant) + + try { + $TransportRules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTransportRules' + + if (-not $TransportRules) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_2' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + return + } + + $FailedRules = [System.Collections.Generic.List[object]]::new() + + foreach ($Rule in $TransportRules) { + # Check if rule sets SCL to -1 (bypass spam filtering) based on sender domain + if ($Rule.SetSCL -eq -1 -and $Rule.SenderDomainIs) { + $FailedRules.Add($Rule) | Out-Null + } + } + + if ($FailedRules.Count -eq 0) { + $Status = 'Passed' + $Result = "No transport rules allow list domains by setting SCL to -1.`n`n" + $Result += "**Total Transport Rules Checked:** $($TransportRules.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedRules.Count) transport rules allow list domains by setting SCL to -1.`n`n" + $Result += "**Non-Compliant Rules:** $($FailedRules.Count)`n`n" + $Result += "| Rule Name | Sender Domains |`n" + $Result += "|-----------|---------------|`n" + foreach ($Rule in $FailedRules) { + $Domains = if ($Rule.SenderDomainIs) { ($Rule.SenderDomainIs -join ', ') } else { 'N/A' } + $Result += "| $($Rule.Name) | $Domains |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_2' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_2' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.md new file mode 100644 index 000000000000..77da8291faed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.md @@ -0,0 +1,10 @@ +Anti-spam policies should not have your organization's own domains configured in the allow list. Adding your own domains to the allow list can be exploited by attackers using spoofing techniques to bypass spam filtering. Internal domain protection should be handled through proper email authentication (SPF, DKIM, DMARC) and anti-spoofing policies, not through allow lists. + +**Remediation action** + +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spoofing protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-spoofing-about) +- [Email authentication in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.ps1 new file mode 100644 index 000000000000..a01284c51be7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_3.ps1 @@ -0,0 +1,68 @@ +function Invoke-CippTestORCA118_3 { + <# + .SYNOPSIS + Own domains not allow listed in Anti-Spam + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_3' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Own domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_3' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Own domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $OwnDomains = $AcceptedDomains | Select-Object -ExpandProperty DomainName + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasOwnDomainInAllowList = $false + + if ($Policy.AllowedSenderDomains) { + foreach ($AllowedDomain in $Policy.AllowedSenderDomains) { + if ($OwnDomains -contains $AllowedDomain) { + $HasOwnDomainInAllowList = $true + break + } + } + } + + if ($HasOwnDomainInAllowList) { + $FailedPolicies.Add($Policy) | Out-Null + } else { + $PassedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-spam policies have own domains in the allow list.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies have own domains in the allow list.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Own Domains in Allow List |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $OwnDomainsInList = $Policy.AllowedSenderDomains | Where-Object { $OwnDomains -contains $_ } + $Result += "| $($Policy.Identity) | $($OwnDomainsInList -join ', ') |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_3' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Own domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_3' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Own domains not allow listed in Anti-Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.md new file mode 100644 index 000000000000..a08348ebdb46 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.md @@ -0,0 +1,10 @@ +Transport rules (mail flow rules) should not be configured to allow list your organization's own domains and bypass spam filtering. Allowing your own domains through transport rules can be exploited by attackers using spoofing techniques. These rules override important security controls and should never be used for internal domain protection. + +**Remediation action** + +- [Mail flow rules (transport rules) in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules) +- [Anti-spoofing protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-spoofing-about) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.ps1 new file mode 100644 index 000000000000..ace3850208a7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA118_4.ps1 @@ -0,0 +1,65 @@ +function Invoke-CippTestORCA118_4 { + <# + .SYNOPSIS + Own domains not allow listed in Transport Rules + #> + param($Tenant) + + try { + $TransportRules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTransportRules' + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $TransportRules) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_4' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Own domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + return + } + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_4' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Own domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + return + } + + $OwnDomains = $AcceptedDomains | Select-Object -ExpandProperty DomainName + $FailedRules = [System.Collections.Generic.List[object]]::new() + + foreach ($Rule in $TransportRules) { + # Check if rule sets SCL to -1 (bypass spam filtering) based on sender domain + if ($Rule.SetSCL -eq -1 -and $Rule.SenderDomainIs) { + $HasOwnDomain = $false + foreach ($SenderDomain in $Rule.SenderDomainIs) { + if ($OwnDomains -contains $SenderDomain) { + $HasOwnDomain = $true + break + } + } + + if ($HasOwnDomain) { + $FailedRules.Add($Rule) | Out-Null + } + } + } + + if ($FailedRules.Count -eq 0) { + $Status = 'Passed' + $Result = "No transport rules allow list own domains by setting SCL to -1.`n`n" + $Result += "**Total Transport Rules Checked:** $($TransportRules.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedRules.Count) transport rules allow list own domains by setting SCL to -1.`n`n" + $Result += "**Non-Compliant Rules:** $($FailedRules.Count)`n`n" + $Result += "| Rule Name | Own Domains in Rule |`n" + $Result += "|-----------|-------------------|`n" + foreach ($Rule in $FailedRules) { + $OwnDomainsInRule = $Rule.SenderDomainIs | Where-Object { $OwnDomains -contains $_ } + $Result += "| $($Rule.Name) | $($OwnDomainsInRule -join ', ') |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_4' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Own domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA118_4' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Own domains not allow listed in Transport Rules' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Transport Rules' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.md new file mode 100644 index 000000000000..9a7837fa85d0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.md @@ -0,0 +1,10 @@ +Anti-phishing policies should enable similar domains safety tips to warn users when they receive messages from domains that are visually similar to known trusted domains. This feature helps protect users from homograph attacks and typosquatting attempts where attackers register domains that closely resemble legitimate domains to deceive users. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Safety tips in email messages](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-about#safety-tips-in-email-messages) +- [Set up anti-phishing policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.ps1 new file mode 100644 index 000000000000..8f8cbbca6ece --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA119.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA119 { + <# + .SYNOPSIS + Similar Domains Safety Tips is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -TestType 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA119' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Similar Domains Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSimilarDomainsSafetyTips -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Similar Domains Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Similar Domains Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Similar Domains Safety Tips |`n" + $Result += "|------------|-----------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSimilarDomainsSafetyTips) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA119' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Similar Domains Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA119' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Similar Domains Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.md new file mode 100644 index 000000000000..e6170ac647d5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.md @@ -0,0 +1,10 @@ +Anti-malware policies should enable Zero Hour Autopurge (ZAP) for malware to automatically detect and remediate malicious messages that were delivered before the malware signature was available. ZAP for malware helps protect users from newly identified threats by removing or quarantining malicious messages from mailboxes after delivery. + +**Remediation action** + +- [Zero-hour auto purge (ZAP) in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/zero-hour-auto-purge) +- [Configure anti-malware policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-policies-configure) +- [Anti-malware protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.ps1 new file mode 100644 index 000000000000..360ddb3b97bd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_malware.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA120_malware { + <# + .SYNOPSIS + Zero Hour Autopurge Enabled for Malware + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_malware' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Malware' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Malware' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.ZapEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All malware filter policies have Zero Hour Autopurge enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) malware filter policies do not have Zero Hour Autopurge enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | ZAP Enabled |`n" + $Result += "|------------|------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.ZapEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_malware' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Malware' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Malware' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_malware' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Malware' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Malware' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.md new file mode 100644 index 000000000000..4d588e4c685f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.md @@ -0,0 +1,10 @@ +Anti-spam policies should enable Zero Hour Autopurge (ZAP) for phishing messages to automatically detect and remediate phishing attacks that were delivered before they were identified as malicious. ZAP for phishing helps protect users from newly identified phishing campaigns by moving or deleting malicious messages from mailboxes after delivery. + +**Remediation action** + +- [Zero-hour auto purge (ZAP) in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/zero-hour-auto-purge) +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spam protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-protection-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.ps1 new file mode 100644 index 000000000000..b13438033f14 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_phish.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA120_phish { + <# + .SYNOPSIS + Zero Hour Autopurge Enabled for Phish + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_phish' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Phish' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.PhishZapEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Zero Hour Autopurge for Phish enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Zero Hour Autopurge for Phish enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Phish ZAP Enabled |`n" + $Result += "|------------|------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.PhishZapEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_phish' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Phish' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_phish' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Phish' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.md new file mode 100644 index 000000000000..3a972e8ceb97 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.md @@ -0,0 +1,10 @@ +Anti-spam policies should enable Zero Hour Autopurge (ZAP) for spam messages to automatically detect and move spam messages that were delivered before they were identified as spam. ZAP for spam helps keep user mailboxes clean by moving spam messages to the Junk Email folder after delivery, even if they initially passed spam filtering. + +**Remediation action** + +- [Zero-hour auto purge (ZAP) in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/zero-hour-auto-purge) +- [Configure anti-spam policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Anti-spam protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-protection-about) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.ps1 new file mode 100644 index 000000000000..974c836d12e0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA120_spam.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA120_spam { + <# + .SYNOPSIS + Zero Hour Autopurge Enabled for Spam + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_spam' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.SpamZapEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Zero Hour Autopurge for Spam enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Zero Hour Autopurge for Spam enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Spam ZAP Enabled |`n" + $Result += "|------------|-----------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.SpamZapEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_spam' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA120_spam' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Zero Hour Autopurge Enabled for Spam' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.md new file mode 100644 index 000000000000..82969121187b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.md @@ -0,0 +1,10 @@ +Quarantine policies should use supported filter policy actions that are appropriate for the threat level. Different types of threats require different quarantine actions - for example, high-confidence phishing should be strictly quarantined with limited user interaction, while spam can be more lenient. Using appropriate quarantine policies ensures effective threat containment while minimizing false positive impact. + +**Remediation action** + +- [Quarantine policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-policies) +- [Anatomy of a quarantine policy](https://learn.microsoft.com/microsoft-365/security/office-365-security/quarantine-policies#anatomy-of-a-quarantine-policy) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 new file mode 100644 index 000000000000..cbf3d7499d06 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 @@ -0,0 +1,27 @@ +function Invoke-CippTestORCA121 { + <# + .SYNOPSIS + Supported filter policy action used + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoQuarantinePolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA121' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Supported filter policy action used' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Quarantine' + return + } + + $Status = 'Passed' + $Result = "Quarantine policies are configured to support Zero Hour Auto Purge.`n`n" + $Result += "**Total Policies:** $($Policies.Count)" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA121' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Supported filter policy action used' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Quarantine' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA121' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Supported filter policy action used' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Quarantine' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.md new file mode 100644 index 000000000000..95e74e9e953d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.md @@ -0,0 +1,10 @@ +Anti-phishing policies should enable unusual characters safety tips to warn users when they receive messages containing unusual or suspicious characters. This feature helps protect users from internationalized domain name (IDN) homograph attacks and other obfuscation techniques where attackers use special characters to make malicious URLs or sender addresses appear legitimate. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about) +- [Safety tips in email messages](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-protection-about#safety-tips-in-email-messages) +- [Set up anti-phishing policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.ps1 new file mode 100644 index 000000000000..dd08fdaee61c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA123.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA123 { + <# + .SYNOPSIS + Unusual Characters Safety Tips is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA123' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Unusual Characters Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableUnusualCharactersSafetyTips -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Unusual Characters Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Unusual Characters Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Unusual Characters Safety Tips |`n" + $Result += "|------------|---------------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableUnusualCharactersSafetyTips) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA123' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Unusual Characters Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA123' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Unusual Characters Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.md new file mode 100644 index 000000000000..f300609ca082 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.md @@ -0,0 +1,10 @@ +Safe Attachments policies should configure the unknown malware response to block messages containing potentially malicious attachments. This setting ensures that messages with attachments that cannot be verified as safe are blocked from delivery, preventing zero-day malware attacks and protecting users from unknown threats until they can be properly analyzed. + +**Remediation action** + +- [Safe Attachments in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-about) +- [Set up Safe Attachments policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.ps1 new file mode 100644 index 000000000000..dcfe7a48b9c8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA124.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA124 { + <# + .SYNOPSIS + Safe attachments unknown malware response set to block messages + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeAttachmentPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA124' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe attachments unknown malware response set to block messages' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.Action -in @('Block', 'Quarantine')) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Attachments policies have unknown malware response set to Block.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Attachments policies do not have unknown malware response set to Block.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Action |`n" + $Result += "|------------|--------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.Action) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA124' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe attachments unknown malware response set to block messages' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA124' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe attachments unknown malware response set to block messages' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.md new file mode 100644 index 000000000000..d79529c834b0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.md @@ -0,0 +1,8 @@ +Anti-spam policies should be configured to move spam messages to the Junk Email folder or quarantine them to protect users from potentially malicious content. Setting the spam action to "Move to Junk Email Folder" or "Quarantine" ensures that spam is properly filtered while still allowing users to review quarantined messages if needed. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.ps1 new file mode 100644 index 000000000000..d285fb841375 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA139.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA139 { + <# + .SYNOPSIS + Spam action set to move message to junk mail folder or quarantine + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA139' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Spam action set to move message to junk mail folder or quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.SpamAction -in @('MoveToJmf', 'Quarantine')) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Spam action set to move to Junk Email folder or Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Spam action set appropriately.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Spam Action |`n" + $Result += "|------------|------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.SpamAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA139' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Spam action set to move message to junk mail folder or quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA139' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Spam action set to move message to junk mail folder or quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.md new file mode 100644 index 000000000000..180dd069263a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.md @@ -0,0 +1,8 @@ +High confidence spam messages are very likely to be spam and should be quarantined to prevent them from reaching users' inboxes. Setting the high confidence spam action to "Quarantine" provides the strongest protection against spam while maintaining the ability to review and release false positives if necessary. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.ps1 new file mode 100644 index 000000000000..df9bc587b330 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA140.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA140 { + <# + .SYNOPSIS + High Confidence Spam action set to Quarantine message + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA140' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'High Confidence Spam action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.HighConfidenceSpamAction -eq 'Quarantine') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have High Confidence Spam action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have High Confidence Spam action set to Quarantine.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | High Confidence Spam Action |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.HighConfidenceSpamAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA140' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'High Confidence Spam action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA140' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High Confidence Spam action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.md new file mode 100644 index 000000000000..1b07c3a2e640 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.md @@ -0,0 +1,8 @@ +Bulk email messages should be moved to the Junk Email folder to reduce inbox clutter while maintaining access for users who may want to receive such communications. Setting the bulk action to "Move to Junk Email Folder" or "Quarantine" helps filter marketing emails and mass mailings appropriately based on the Bulk Complaint Level (BCL) threshold. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Bulk Complaint Level (BCL) in Exchange Online Protection](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-bulk-complaint-level-bcl-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.ps1 new file mode 100644 index 000000000000..678b28afb0ec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA141.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA141 { + <# + .SYNOPSIS + Bulk action set to Move message to Junk Email Folder + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA141' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Bulk action set to Move message to Junk Email Folder' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.BulkSpamAction -in @('MoveToJmf', 'Quarantine')) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Bulk action set to Move to Junk Email folder.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Bulk action set to Move to Junk Email folder.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Bulk Spam Action |`n" + $Result += "|------------|-----------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.BulkSpamAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA141' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Bulk action set to Move message to Junk Email Folder' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA141' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Bulk action set to Move message to Junk Email Folder' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.md new file mode 100644 index 000000000000..eb1d0efd8295 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.md @@ -0,0 +1,8 @@ +Messages identified as phishing attempts should be quarantined immediately to protect users from credential theft and malicious content. Setting the phishing spam action to "Quarantine" prevents these dangerous messages from reaching user mailboxes while allowing administrators to review and analyze them for security purposes. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.ps1 new file mode 100644 index 000000000000..41c7dcddbb2f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA142.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA142 { + <# + .SYNOPSIS + Phish action set to Quarantine message + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA142' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Phish action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.PhishSpamAction -eq 'Quarantine') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Phish action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Phish action set to Quarantine.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Phish Spam Action |`n" + $Result += "|------------|------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.PhishSpamAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA142' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Phish action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA142' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Phish action set to Quarantine message' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.md new file mode 100644 index 000000000000..467eebcd10a6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.md @@ -0,0 +1,8 @@ +Safety Tips provide inline warnings in email messages to help users identify suspicious or potentially dangerous content. Enabling Safety Tips displays visual indicators for spam, phishing, and spoofing attempts directly in the email client, helping users make informed decisions about email safety. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Safety tips in email messages in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-safety-tips-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.ps1 new file mode 100644 index 000000000000..6056b9cc78ad --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA143.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA143 { + <# + .SYNOPSIS + Safety Tips are enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA143' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Safety Tips are enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.InlineSafetyTipsEnabled -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies have Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not have Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Inline Safety Tips Enabled |`n" + $Result += "|------------|---------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.InlineSafetyTipsEnabled) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA143' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Safety Tips are enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA143' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Safety Tips are enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.md new file mode 100644 index 000000000000..85ca74b26e19 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.md @@ -0,0 +1,8 @@ +Safe Links should track user clicks on protected URLs to provide visibility into potential security threats and user behavior. Enabling click tracking allows administrators to monitor which users are clicking on potentially dangerous links and helps identify targeted attacks or compromised accounts. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.ps1 new file mode 100644 index 000000000000..d73eb7152c02 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA156.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA156 { + <# + .SYNOPSIS + Safe Links Policies are tracking when user clicks on safe links + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA156' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Safe Links Policies are tracking user clicks' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.TrackClicks -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies are tracking user clicks.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies are not tracking user clicks.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Track Clicks |`n" + $Result += "|------------|-------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.TrackClicks) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA156' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Safe Links Policies are tracking user clicks' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA156' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Safe Links Policies are tracking user clicks' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.md new file mode 100644 index 000000000000..ed9aadb907e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.md @@ -0,0 +1,8 @@ +Safe Attachments protection should be enabled for SharePoint, OneDrive, and Microsoft Teams to scan files for malicious content before users can access them. This protection helps prevent malware from spreading through file sharing and collaboration platforms, providing an additional layer of security beyond email protection. + +**Remediation action** + +- [Turn on Safe Attachments for SharePoint, OneDrive, and Microsoft Teams](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-for-spo-odfb-teams-configure) +- [Safe Attachments in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.ps1 new file mode 100644 index 000000000000..8f8852090651 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA158.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestORCA158 { + <# + .SYNOPSIS + Safe Attachments is enabled for SharePoint and Teams + #> + param($Tenant) + + try { + $AtpPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAtpPolicyForO365' + + if (-not $AtpPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA158' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Attachments enabled for SharePoint and Teams' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $Policy = $AtpPolicy | Select-Object -First 1 + + if ($Policy.EnableATPForSPOTeamsODB -eq $true) { + $Status = 'Passed' + $Result = "Safe Attachments is enabled for SharePoint, OneDrive, and Teams.`n`n" + $Result += "**EnableATPForSPOTeamsODB:** $($Policy.EnableATPForSPOTeamsODB)" + } else { + $Status = 'Failed' + $Result = "Safe Attachments is NOT enabled for SharePoint, OneDrive, and Teams.`n`n" + $Result += "**EnableATPForSPOTeamsODB:** $($Policy.EnableATPForSPOTeamsODB)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA158' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Attachments enabled for SharePoint and Teams' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA158' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Attachments enabled for SharePoint and Teams' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.md new file mode 100644 index 000000000000..b880df63edae --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.md @@ -0,0 +1,8 @@ +Safe Links should be enabled for internal email messages to protect against threats from compromised accounts within the organization. While external threats are the primary concern, internal accounts can be compromised and used to spread malicious links to other users in the organization. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.ps1 new file mode 100644 index 000000000000..e72205f9ee4c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA179.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA179 { + <# + .SYNOPSIS + Safe Links is enabled intra-organization + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA179' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Safe Links is enabled intra-organization' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableForInternalSenders -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies are enabled for internal senders.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies are not enabled for internal senders.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable For Internal Senders |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableForInternalSenders) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA179' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Safe Links is enabled intra-organization' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA179' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Safe Links is enabled intra-organization' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.md new file mode 100644 index 000000000000..5f39f69bcc2d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.md @@ -0,0 +1,8 @@ +Spoof Intelligence uses machine learning to distinguish between legitimate and malicious email spoofing attempts. Enabling Spoof Intelligence in anti-phishing policies helps protect users from impersonation attacks by analyzing sender patterns and blocking suspicious spoofed messages while allowing legitimate forwarded or mailing list messages. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Spoof intelligence insight in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spoofing-spoof-intelligence) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.ps1 new file mode 100644 index 000000000000..af5b1840cd38 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA180.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA180 { + <# + .SYNOPSIS + Anti-phishing policy exists and EnableSpoofIntelligence is true + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA180' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Spoof Intelligence is enabled' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSpoofIntelligence -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Spoof Intelligence enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Spoof Intelligence enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Spoof Intelligence |`n" + $Result += "|------------|--------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSpoofIntelligence) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA180' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Spoof Intelligence is enabled' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA180' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Spoof Intelligence is enabled' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.md new file mode 100644 index 000000000000..5b25d1b0ad4c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.md @@ -0,0 +1,8 @@ +Transport rules should not be configured to bypass Safe Attachments scanning. Bypassing Safe Attachments processing creates a security gap that allows malicious files to reach users without being scanned, potentially leading to malware infections and data breaches. All email messages should go through Safe Attachments scanning to ensure comprehensive protection. + +**Remediation action** + +- [Review and modify transport rules in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/manage-mail-flow-rules) +- [Safe Attachments in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.ps1 new file mode 100644 index 000000000000..aa26117ba876 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestORCA189 { + <# + .SYNOPSIS + Safe Attachments is not bypassed + #> + param($Tenant) + + try { + $Rules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTransportRules' + + if (-not $Rules) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Attachments is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $BypassRules = [System.Collections.Generic.List[object]]::new() + foreach ($Rule in $Rules) { + if ($Rule.SetHeaderName -eq 'X-MS-Exchange-Organization-SkipSafeAttachmentProcessing' -and $Rule.SetHeaderValue -eq '1') { + $BypassRules.Add($Rule) | Out-Null + } + } + + if ($BypassRules.Count -eq 0) { + $Status = 'Passed' + $Result = "No transport rules are bypassing Safe Attachments processing." + } else { + $Status = 'Failed' + $Result = "$($BypassRules.Count) transport rules are bypassing Safe Attachments processing.`n`n" + $Result += "| Rule Name | Priority |`n" + $Result += "|-----------|----------|`n" + foreach ($Rule in $BypassRules) { + $Result += "| $($Rule.Name) | $($Rule.Priority) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Attachments is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Attachments is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.md new file mode 100644 index 000000000000..586b2d1ad64d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.md @@ -0,0 +1,8 @@ +Transport rules should not be configured to bypass Safe Links protection. Bypassing Safe Links processing disables URL scanning and protection, allowing potentially malicious links to reach users without being analyzed. This creates a significant security vulnerability that attackers can exploit to deliver phishing and malware attacks. + +**Remediation action** + +- [Review and modify transport rules in Exchange Online](https://learn.microsoft.com/exchange/security-and-compliance/mail-flow-rules/manage-mail-flow-rules) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.ps1 new file mode 100644 index 000000000000..62ee60914a2a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA189_2.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestORCA189_2 { + <# + .SYNOPSIS + Safe Links is not bypassed + #> + param($Tenant) + + try { + $Rules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoTransportRules' + + if (-not $Rules) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189_2' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $BypassRules = [System.Collections.Generic.List[object]]::new() + foreach ($Rule in $Rules) { + if ($Rule.SetHeaderName -eq 'X-MS-Exchange-Organization-SkipSafeLinksProcessing' -and $Rule.SetHeaderValue -eq '1') { + $BypassRules.Add($Rule) | Out-Null + } + } + + if ($BypassRules.Count -eq 0) { + $Status = 'Passed' + $Result = "No transport rules are bypassing Safe Links processing." + } else { + $Status = 'Failed' + $Result = "$($BypassRules.Count) transport rules are bypassing Safe Links processing.`n`n" + $Result += "| Rule Name | Priority |`n" + $Result += "|-----------|----------|`n" + foreach ($Rule in $BypassRules) { + $Result += "| $($Rule.Name) | $($Rule.Priority) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189_2' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA189_2' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links is not bypassed' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.md new file mode 100644 index 000000000000..e25749c79d9d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.md @@ -0,0 +1,8 @@ +Common attachment type filtering automatically blocks file types commonly used for malware delivery, such as executable files, scripts, and certain document types. Enabling this feature provides an additional layer of protection by preventing dangerous file types from reaching user mailboxes, even if malware signatures are not yet detected. + +**Remediation action** + +- [Configure anti-malware policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-policies-configure) +- [Anti-malware protection in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-protection-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.ps1 new file mode 100644 index 000000000000..51ecc2c16d88 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA205.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA205 { + <# + .SYNOPSIS + Common attachment type filter is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA205' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Common attachment type filter is enabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Malware' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableFileFilter -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All malware filter policies have common attachment type filter enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) malware filter policies do not have common attachment type filter enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable File Filter |`n" + $Result += "|------------|-------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableFileFilter) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA205' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Common attachment type filter is enabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Malware' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA205' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Common attachment type filter is enabled' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Malware' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.md new file mode 100644 index 000000000000..963b965b6e75 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.md @@ -0,0 +1,8 @@ +The phishing threshold level determines how aggressively anti-phishing policies identify and block phishing attempts. Setting the threshold to level 2 (Aggressive) or higher provides stronger protection against sophisticated phishing attacks by applying more stringent detection criteria, though it may increase the risk of false positives for legitimate messages. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.ps1 new file mode 100644 index 000000000000..d266a8461cd1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA220.ps1 @@ -0,0 +1,50 @@ +function Invoke-CippTestORCA220 { + <# + .SYNOPSIS + Advanced Phish filter Threshold level is adequate + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA220' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Advanced Phish filter Threshold level is adequate' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + # PhishThresholdLevel: 1=Standard, 2=Aggressive, 3=More Aggressive, 4=Most Aggressive + if ($Policy.PhishThresholdLevel -ge 2) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have adequate phishing threshold levels (2 or higher).`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies have inadequate phishing threshold levels.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Phish Threshold Level |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.PhishThresholdLevel) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA220' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Advanced Phish filter Threshold level is adequate' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA220' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Advanced Phish filter Threshold level is adequate' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.md new file mode 100644 index 000000000000..85d5fb232935 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.md @@ -0,0 +1,8 @@ +Mailbox intelligence uses machine learning to understand each user's email patterns and communication habits to better detect impersonation attempts. When enabled, this feature analyzes historical email data to identify when someone is attempting to impersonate a user's regular contacts, providing personalized protection against targeted phishing attacks. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Impersonation insight in Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-mdo-impersonation-insight) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.ps1 new file mode 100644 index 000000000000..f76784f3680d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA221.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA221 { + <# + .SYNOPSIS + Mailbox intelligence is enabled in anti-phishing policies + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA221' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Mailbox intelligence is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableMailboxIntelligence -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have mailbox intelligence enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have mailbox intelligence enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Mailbox Intelligence |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableMailboxIntelligence) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA221' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Mailbox intelligence is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA221' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Mailbox intelligence is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.md new file mode 100644 index 000000000000..42c43006016e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.md @@ -0,0 +1,8 @@ +Domain impersonation protection should quarantine messages that attempt to impersonate protected domains. When attackers try to spoof your organization's domain or partner domains, quarantining these messages prevents users from interacting with potentially malicious content designed to look like legitimate communication from trusted domains. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Impersonation protection in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.ps1 new file mode 100644 index 000000000000..14d2ccc5e552 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA222.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA222 { + <# + .SYNOPSIS + Domain Impersonation action is set to move to Quarantine + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA222' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Domain Impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.TargetedDomainProtectionAction -eq 'Quarantine') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Domain Impersonation action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Domain Impersonation action set to Quarantine.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Targeted Domain Protection Action |`n" + $Result += "|------------|----------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.TargetedDomainProtectionAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA222' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Domain Impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA222' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Domain Impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.md new file mode 100644 index 000000000000..2be219b8fdf5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.md @@ -0,0 +1,8 @@ +User impersonation protection should quarantine messages that attempt to impersonate protected users such as executives and other high-value targets. Quarantining these messages prevents sophisticated spear-phishing attacks that target specific individuals by impersonating their trusted contacts, colleagues, or business partners. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Impersonation protection in anti-phishing policies](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-about#impersonation-settings-in-anti-phishing-policies-in-microsoft-defender-for-office-365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.ps1 new file mode 100644 index 000000000000..3600edeb0723 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA223.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA223 { + <# + .SYNOPSIS + User impersonation action is set to move to Quarantine + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA223' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'User impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.TargetedUserProtectionAction -eq 'Quarantine') { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have User Impersonation action set to Quarantine.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have User Impersonation action set to Quarantine.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Targeted User Protection Action |`n" + $Result += "|------------|--------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.TargetedUserProtectionAction) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA223' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA223' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User impersonation action set to Quarantine' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.md new file mode 100644 index 000000000000..05fbf80bfdbe --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.md @@ -0,0 +1,8 @@ +Similar Users Safety Tips display warnings when messages appear to come from senders with names similar to protected users in your organization. This visual indicator helps users identify potential impersonation attempts where attackers use slightly misspelled or visually similar names to trick recipients into believing the message is from a trusted colleague. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Safety tips in email messages in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-safety-tips-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.ps1 new file mode 100644 index 000000000000..77e84a0a96cf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA224.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA224 { + <# + .SYNOPSIS + Similar Users Safety Tips is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA224' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Similar Users Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSimilarUsersSafetyTips -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have Similar Users Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have Similar Users Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Similar Users Safety Tips |`n" + $Result += "|------------|----------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSimilarUsersSafetyTips) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA224' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Similar Users Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA224' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Similar Users Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.md new file mode 100644 index 000000000000..838e80444335 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.md @@ -0,0 +1,8 @@ +Safe Documents uses Microsoft Defender for Endpoint to scan documents opened in Office applications in Protected View. When enabled, this feature provides additional protection by analyzing Office files for malicious content before allowing users to edit them, helping prevent zero-day attacks and advanced threats delivered through documents. + +**Remediation action** + +- [Safe Documents in Microsoft 365 E5](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-documents-in-e5-plus-security-about) +- [Enable Safe Documents for Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-documents-in-e5-plus-security-about#use-the-microsoft-365-defender-portal-to-configure-safe-documents) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.ps1 new file mode 100644 index 000000000000..9c0fc333de87 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA225.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestORCA225 { + <# + .SYNOPSIS + Safe Documents is enabled for Office clients + #> + param($Tenant) + + try { + $AtpPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAtpPolicyForO365' + + if (-not $AtpPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA225' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Safe Documents is enabled for Office clients' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $Policy = $AtpPolicy | Select-Object -First 1 + + if ($Policy.EnableSafeDocs -eq $true) { + $Status = 'Passed' + $Result = "Safe Documents is enabled for Office clients.`n`n" + $Result += "**EnableSafeDocs:** $($Policy.EnableSafeDocs)" + } else { + $Status = 'Failed' + $Result = "Safe Documents is NOT enabled for Office clients.`n`n" + $Result += "**EnableSafeDocs:** $($Policy.EnableSafeDocs)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA225' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Safe Documents is enabled for Office clients' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA225' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Safe Documents is enabled for Office clients' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.md new file mode 100644 index 000000000000..29973d736834 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by a Safe Links policy to ensure all users receive URL protection. Without domain-specific Safe Links coverage, users in certain domains may not be protected from malicious links, creating security gaps that attackers can exploit to target specific business units or subsidiaries. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.ps1 new file mode 100644 index 000000000000..81c895569cb6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA226.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA226 { + <# + .SYNOPSIS + Each domain has a Safe Links policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $SafeLinksPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA226' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has a Safe Links policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Links' + return + } + + if (-not $SafeLinksPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA226' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No Safe Links policies found. Each domain should have a Safe Links policy.' -Risk 'High' -Name 'Each domain has a Safe Links policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Links' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $SafeLinksPolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by Safe Links policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Safe Links Policies:** $($SafeLinksPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have a Safe Links policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA226' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has a Safe Links policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA226' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has a Safe Links policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.md new file mode 100644 index 000000000000..ad2b56ce49db --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by a Safe Attachments policy to ensure all users receive malware protection. Without domain-specific Safe Attachments coverage, users in certain domains may not be protected from malicious files, creating security vulnerabilities that can be exploited to deliver malware to unprotected segments of your organization. + +**Remediation action** + +- [Set up Safe Attachments policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-attachments-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.ps1 new file mode 100644 index 000000000000..deb01c9eda53 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA227.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA227 { + <# + .SYNOPSIS + Each domain has a Safe Attachments policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $SafeAttachmentPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeAttachmentPolicies' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA227' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has a Safe Attachments policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Attachments' + return + } + + if (-not $SafeAttachmentPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA227' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No Safe Attachments policies found. Each domain should have a Safe Attachments policy.' -Risk 'High' -Name 'Each domain has a Safe Attachments policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Attachments' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $SafeAttachmentPolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by Safe Attachments policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Safe Attachments Policies:** $($SafeAttachmentPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have a Safe Attachments policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA227' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has a Safe Attachments policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA227' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has a Safe Attachments policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.md new file mode 100644 index 000000000000..cf9282fab859 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.md @@ -0,0 +1,8 @@ +Anti-phishing policies should not include trusted senders or exclusions, as this creates security gaps that attackers can exploit. Excluding senders from anti-phishing protection means those addresses can be spoofed without detection, allowing attackers to bypass impersonation and spoof protection by using excluded addresses in their phishing campaigns. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.ps1 new file mode 100644 index 000000000000..8a25941105f8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA228.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestORCA228 { + <# + .SYNOPSIS + No trusted senders in Anti-phishing policy + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA228' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'No trusted senders in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasTrustedSenders = ($Policy.ExcludedSenders -and $Policy.ExcludedSenders.Count -gt 0) + + if (-not $HasTrustedSenders) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-phishing policies have trusted senders configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies have trusted senders configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Excluded Senders Count |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Count = if ($Policy.ExcludedSenders) { $Policy.ExcludedSenders.Count } else { 0 } + $Result += "| $($Policy.Identity) | $Count |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA228' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'No trusted senders in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA228' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'No trusted senders in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.md new file mode 100644 index 000000000000..3e85642c5d9f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.md @@ -0,0 +1,8 @@ +Anti-phishing policies should not include trusted domains or exclusions, as this weakens domain impersonation protection. Excluding domains from anti-phishing checks allows attackers to register similar-looking domains or spoof excluded domains without triggering security alerts, making it easier to conduct convincing phishing attacks against your users. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.ps1 new file mode 100644 index 000000000000..c9c8ba9fa1cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA229.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestORCA229 { + <# + .SYNOPSIS + No trusted domains in Anti-phishing policy + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA229' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'No trusted domains in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + $HasTrustedDomains = ($Policy.ExcludedDomains -and $Policy.ExcludedDomains.Count -gt 0) + + if (-not $HasTrustedDomains) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "No anti-phishing policies have trusted domains configured.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies have trusted domains configured.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Excluded Domains Count |`n" + $Result += "|------------|----------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Count = if ($Policy.ExcludedDomains) { $Policy.ExcludedDomains.Count } else { 0 } + $Result += "| $($Policy.Identity) | $Count |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA229' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'No trusted domains in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA229' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'No trusted domains in Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.md new file mode 100644 index 000000000000..1c8dae777e9c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by an anti-phishing policy to ensure all users receive protection from impersonation and spoofing attacks. Without domain-specific anti-phishing coverage, users in certain domains may be vulnerable to targeted phishing campaigns that exploit the lack of protection for their email addresses. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.ps1 new file mode 100644 index 000000000000..8d72b0ffaccb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA230.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA230 { + <# + .SYNOPSIS + Each domain has an Anti-phishing policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $AntiPhishPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA230' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has an Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Phish' + return + } + + if (-not $AntiPhishPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA230' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No Anti-phishing policies found. Each domain should have an Anti-phishing policy.' -Risk 'High' -Name 'Each domain has an Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Phish' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $AntiPhishPolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by Anti-phishing policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Anti-phishing Policies:** $($AntiPhishPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have an Anti-phishing policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA230' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has an Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA230' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has an Anti-phishing policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.md new file mode 100644 index 000000000000..47e7daa0084e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by an anti-spam policy to ensure all users receive protection from unwanted and malicious email. Without domain-specific anti-spam coverage, users in certain domains may receive higher volumes of spam and potentially malicious messages, increasing security risks and reducing productivity. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.ps1 new file mode 100644 index 000000000000..2dd1c57ef583 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA231.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA231 { + <# + .SYNOPSIS + Each domain has an anti-spam policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $ContentFilterPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA231' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has an anti-spam policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Spam' + return + } + + if (-not $ContentFilterPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA231' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No anti-spam policies found. Each domain should have an anti-spam policy.' -Risk 'High' -Name 'Each domain has an anti-spam policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Spam' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $ContentFilterPolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by anti-spam policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Anti-spam Policies:** $($ContentFilterPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have an anti-spam policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA231' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has an anti-spam policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA231' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has an anti-spam policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.md new file mode 100644 index 000000000000..9a2b166214ea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.md @@ -0,0 +1,8 @@ +Each accepted domain in your organization should be covered by a malware filter policy to ensure all users receive protection from malicious attachments and files. Without domain-specific malware filtering, users in certain domains may be exposed to viruses, trojans, and other malware delivered through email, creating potential entry points for security breaches. + +**Remediation action** + +- [Configure anti-malware policies in EOP](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-malware-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.ps1 new file mode 100644 index 000000000000..f42577954039 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA232.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestORCA232 { + <# + .SYNOPSIS + Each domain has a malware filter policy + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + $MalwarePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoMalwareFilterPolicies' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA232' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Each domain has a malware filter policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Malware' + return + } + + if (-not $MalwarePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA232' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'No malware filter policies found. Each domain should have a malware filter policy.' -Risk 'High' -Name 'Each domain has a malware filter policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Malware' + return + } + + # Get all recipient domains from policies + $CoveredDomains = [System.Collections.Generic.List[string]]::new() + foreach ($Policy in $MalwarePolicies) { + if ($Policy.RecipientDomainIs) { + foreach ($Domain in $Policy.RecipientDomainIs) { + $CoveredDomains.Add($Domain) | Out-Null + } + } + } + + $DomainsWithoutPolicy = [System.Collections.Generic.List[string]]::new() + foreach ($Domain in $AcceptedDomains) { + if ($CoveredDomains -notcontains $Domain.DomainName) { + $DomainsWithoutPolicy.Add($Domain.DomainName) | Out-Null + } + } + + if ($DomainsWithoutPolicy.Count -eq 0) { + $Status = 'Passed' + $Result = "All accepted domains are covered by malware filter policies.`n`n" + $Result += "**Total Accepted Domains:** $($AcceptedDomains.Count)`n" + $Result += "**Total Malware Filter Policies:** $($MalwarePolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($DomainsWithoutPolicy.Count) domains do not have a malware filter policy.`n`n" + $Result += "**Domains Without Policy:**`n`n" + foreach ($Domain in $DomainsWithoutPolicy) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA232' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Each domain has a malware filter policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Malware' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA232' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Each domain has a malware filter policy' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Malware' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.md new file mode 100644 index 000000000000..e946c14da7cf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.md @@ -0,0 +1,8 @@ +Custom domains should have their MX records pointed directly at Exchange Online Protection (EOP) or use enhanced filtering with inbound connectors. This ensures that all email security features function properly, including SPF, DKIM, and DMARC validation. When mail flows through third-party services without proper configuration, important security signals can be lost. + +**Remediation action** + +- [Mail flow best practices for Exchange Online and Microsoft 365](https://learn.microsoft.com/exchange/mail-flow-best-practices/mail-flow-best-practices) +- [Enhanced filtering for connectors in Exchange Online](https://learn.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/enhanced-filtering-for-connectors) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.ps1 new file mode 100644 index 000000000000..71815b0b0e78 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestORCA233 { + <# + .SYNOPSIS + Domains pointed at EOP or enhanced filtering used + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'Domains pointed at EOP or enhanced filtering used' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Configuration' + return + } + + # This test requires checking MX records and inbound connectors which may not be available + # We'll check if domains are authoritative (pointed at EOP) or use external mail flow + $NonCompliantDomains = [System.Collections.Generic.List[string]]::new() + $CompliantDomains = [System.Collections.Generic.List[string]]::new() + + foreach ($Domain in $AcceptedDomains) { + # Authoritative domains point MX to EOP + # InternalRelay/ExternalRelay domains use inbound connectors with enhanced filtering + if ($Domain.DomainType -eq 'Authoritative') { + $CompliantDomains.Add($Domain.DomainName) | Out-Null + } elseif ($Domain.DomainType -in @('InternalRelay', 'ExternalRelay')) { + # These should have enhanced filtering configured on inbound connectors + # For now, we'll mark these as compliant if they exist + $CompliantDomains.Add($Domain.DomainName) | Out-Null + } else { + $NonCompliantDomains.Add($Domain.DomainName) | Out-Null + } + } + + if ($NonCompliantDomains.Count -eq 0) { + $Status = 'Passed' + $Result = "All domains are properly configured for mail flow.`n`n" + $Result += "**Compliant Domains:** $($CompliantDomains.Count)" + } else { + $Status = 'Failed' + $Result = "$($NonCompliantDomains.Count) domains may not be properly configured for mail flow.`n`n" + $Result += "**Domains Needing Review:**`n`n" + foreach ($Domain in $NonCompliantDomains) { + $Result += "- $Domain`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Domains pointed at EOP or enhanced filtering used' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Domains pointed at EOP or enhanced filtering used' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.md new file mode 100644 index 000000000000..00f8a4abfbab --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.md @@ -0,0 +1,8 @@ +Enhanced filtering should be configured on inbound connectors when mail flows through third-party services before reaching Exchange Online. This feature preserves important email authentication signals and source IP information that would otherwise be lost, enabling proper SPF, DKIM, and DMARC validation as well as accurate spam and phishing detection. + +**Remediation action** + +- [Enhanced filtering for connectors in Exchange Online](https://learn.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/enhanced-filtering-for-connectors) +- [Mail flow best practices for Exchange Online and Microsoft 365](https://learn.microsoft.com/exchange/mail-flow-best-practices/mail-flow-best-practices) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.ps1 new file mode 100644 index 000000000000..3243ff67a450 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA233_1.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestORCA233_1 { + <# + .SYNOPSIS + Enhanced filtering on default connectors + #> + param($Tenant) + + try { + $OrgConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoOrganizationConfig' + + if (-not $OrgConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233_1' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No organization config found in database.' -Risk 'Medium' -Name 'Enhanced filtering on default connectors' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Configuration' + return + } + + $Config = $OrgConfig | Select-Object -First 1 + + # Check if enhanced filtering is enabled + # This property may vary depending on Exchange Online version + $EnhancedFilteringEnabled = $false + + # Check various properties that indicate enhanced filtering + if ($Config.PSObject.Properties.Name -contains 'SkipListedFromForging') { + $EnhancedFilteringEnabled = $Config.SkipListedFromForging -eq $false + } + + if ($EnhancedFilteringEnabled) { + $Status = 'Passed' + $Result = "Enhanced filtering appears to be properly configured.`n`n" + $Result += "**Configuration:** Reviewed" + } else { + $Status = 'Informational' + $Result = "Unable to fully determine enhanced filtering status. Manual review recommended.`n`n" + $Result += "**Action Required:** Review inbound connectors for enhanced filtering configuration" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233_1' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Enhanced filtering on default connectors' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA233_1' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Enhanced filtering on default connectors' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.md new file mode 100644 index 000000000000..0db2874cead6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.md @@ -0,0 +1,8 @@ +Safe Documents click-through protection should be disabled to prevent users from opening potentially dangerous files before they are fully analyzed. When click-through is enabled, users can bypass the security check and open files while they are still being scanned, potentially exposing their systems to malware before the threat is identified. + +**Remediation action** + +- [Safe Documents in Microsoft 365 E5](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-documents-in-e5-plus-security-about) +- [Enable Safe Documents for Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-documents-in-e5-plus-security-about#use-the-microsoft-365-defender-portal-to-configure-safe-documents) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.ps1 new file mode 100644 index 000000000000..904c90d5f280 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA234.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestORCA234 { + <# + .SYNOPSIS + Click through is disabled for Safe Documents + #> + param($Tenant) + + try { + $AtpPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAtpPolicyForO365' + + if (-not $AtpPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA234' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Click through is disabled for Safe Documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + return + } + + $Policy = $AtpPolicy | Select-Object -First 1 + + if ($Policy.AllowSafeDocsOpen -eq $false) { + $Status = 'Passed' + $Result = "Click through is disabled for Safe Documents.`n`n" + $Result += "**AllowSafeDocsOpen:** $($Policy.AllowSafeDocsOpen)" + } else { + $Status = 'Failed' + $Result = "Click through is enabled for Safe Documents.`n`n" + $Result += "**AllowSafeDocsOpen:** $($Policy.AllowSafeDocsOpen)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA234' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Click through is disabled for Safe Documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA234' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Click through is disabled for Safe Documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Attachments' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.md new file mode 100644 index 000000000000..a88a52617782 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.md @@ -0,0 +1,8 @@ +SPF (Sender Policy Framework) records should be configured for all custom domains to specify which mail servers are authorized to send email on behalf of your domain. Properly configured SPF records help prevent email spoofing and improve email deliverability by allowing receiving servers to verify that messages claiming to be from your domain actually originate from authorized sources. + +**Remediation action** + +- [Set up SPF to help prevent spoofing](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-spf-configure) +- [Email authentication in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.ps1 new file mode 100644 index 000000000000..6d72efdf2bfe --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA235.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestORCA235 { + <# + .SYNOPSIS + SPF records setup for custom domains + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA235' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'High' -Name 'SPF records setup for custom domains' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Configuration' + return + } + + # Note: This test would ideally check DNS SPF records + # Since we don't have DNS query capability here, we'll provide informational guidance + + $CustomDomains = $AcceptedDomains | Where-Object { $_.DomainName -notlike '*.onmicrosoft.com' } + + if ($CustomDomains.Count -eq 0) { + $Status = 'Passed' + $Result = "No custom domains found. Only using onmicrosoft.com domain.`n`n" + $Result += "**Total Domains:** $($AcceptedDomains.Count)" + } else { + $Status = 'Informational' + $Result = "Found $($CustomDomains.Count) custom domains that should have SPF records configured.`n`n" + $Result += "**Custom Domains:**`n`n" + foreach ($Domain in $CustomDomains) { + $Result += "- $($Domain.DomainName)`n" + } + $Result += "`n**Action Required:** Verify that each custom domain has an SPF record including Microsoft 365:`n" + $Result += "``v=spf1 include:spf.protection.outlook.com -all``" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA235' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'SPF records setup for custom domains' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA235' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SPF records setup for custom domains' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.md new file mode 100644 index 000000000000..a07d9478c79a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.md @@ -0,0 +1,8 @@ +Safe Links should be enabled for email messages to provide real-time URL scanning and protection against malicious links. When enabled, Safe Links rewrites URLs in email messages and checks them at click-time to detect and block malicious websites, protecting users from phishing attacks and malware delivery even if the link becomes malicious after the email was sent. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.ps1 new file mode 100644 index 000000000000..89f67a40f68f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA236.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA236 { + <# + .SYNOPSIS + Safe Links is enabled for emails + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA236' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links is enabled for emails' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSafeLinksForEmail -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have email protection enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies do not have email protection enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Safe Links For Email |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSafeLinksForEmail) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA236' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links is enabled for emails' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA236' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links is enabled for emails' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.md new file mode 100644 index 000000000000..2c25114d3dcf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.md @@ -0,0 +1,8 @@ +Safe Links should be enabled for Microsoft Teams to protect users from malicious URLs shared in Teams messages and channels. Enabling this protection ensures that links in Teams conversations are scanned and blocked if they lead to malicious sites, extending the same URL protection available in email to your collaboration platform. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.ps1 new file mode 100644 index 000000000000..5962ac11eb59 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA237.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA237 { + <# + .SYNOPSIS + Safe Links is enabled for Teams + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA237' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links is enabled for Teams' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSafeLinksForTeams -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have Teams protection enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies do not have Teams protection enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Safe Links For Teams |`n" + $Result += "|------------|----------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSafeLinksForTeams) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA237' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links is enabled for Teams' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA237' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links is enabled for Teams' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.md new file mode 100644 index 000000000000..948957dd91bd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.md @@ -0,0 +1,8 @@ +Safe Links should be enabled for Office applications to protect users from malicious URLs in Office documents such as Word, Excel, and PowerPoint files. This protection extends URL scanning to documents opened in Office desktop, mobile, and web applications, helping prevent users from clicking malicious links embedded in documents. + +**Remediation action** + +- [Set up Safe Links policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-policies-configure) +- [Safe Links in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/safe-links-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.ps1 new file mode 100644 index 000000000000..e4f3d35ac306 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA238.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA238 { + <# + .SYNOPSIS + Safe Links is enabled for Office documents + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoSafeLinksPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA238' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Safe Links is enabled for Office documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableSafeLinksForOffice -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All Safe Links policies have Office document protection enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) Safe Links policies do not have Office document protection enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable Safe Links For Office |`n" + $Result += "|------------|------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableSafeLinksForOffice) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA238' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Safe Links is enabled for Office documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA238' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Safe Links is enabled for Office documents' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Safe Links' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.md new file mode 100644 index 000000000000..29fde2255510 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.md @@ -0,0 +1,9 @@ +Protection policies should not include exclusions or allow lists that bypass security controls. Adding senders or domains to exclusion lists creates security gaps that attackers can exploit to deliver malicious content without being detected. Even trusted partners can be compromised, so all email should go through security scanning. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Recommended settings for EOP and Microsoft Defender for Office 365 security](https://learn.microsoft.com/microsoft-365/security/office-365-security/recommended-settings-for-eop-and-office365) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.ps1 new file mode 100644 index 000000000000..24ccf3edcb1d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA239.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestORCA239 { + <# + .SYNOPSIS + No exclusions for built-in protection + #> + param($Tenant) + + try { + $AntiPhishPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + $ContentFilterPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $AntiPhishPolicies -and -not $ContentFilterPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA239' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No policies found in database.' -Risk 'High' -Name 'No exclusions for built-in protection' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Configuration' + return + } + + $FailedPolicies = @() + $Issues = @() + + # Check Anti-Phish policies for exclusions + if ($AntiPhishPolicies) { + foreach ($Policy in $AntiPhishPolicies) { + $HasExclusions = $false + $ExclusionDetails = @() + + if ($Policy.ExcludedSenders -and $Policy.ExcludedSenders.Count -gt 0) { + $HasExclusions = $true + $ExclusionDetails += "ExcludedSenders: $($Policy.ExcludedSenders.Count)" + } + + if ($Policy.ExcludedDomains -and $Policy.ExcludedDomains.Count -gt 0) { + $HasExclusions = $true + $ExclusionDetails += "ExcludedDomains: $($Policy.ExcludedDomains.Count)" + } + + if ($HasExclusions) { + $Issues += "Anti-Phish Policy '$($Policy.Identity)': $($ExclusionDetails -join ', ')" + } + } + } + + # Check Content Filter policies for exclusions + if ($ContentFilterPolicies) { + foreach ($Policy in $ContentFilterPolicies) { + $HasExclusions = $false + $ExclusionDetails = @() + + if ($Policy.AllowedSenders -and $Policy.AllowedSenders.Count -gt 0) { + $HasExclusions = $true + $ExclusionDetails += "AllowedSenders: $($Policy.AllowedSenders.Count)" + } + + if ($Policy.AllowedSenderDomains -and $Policy.AllowedSenderDomains.Count -gt 0) { + $HasExclusions = $true + $ExclusionDetails += "AllowedSenderDomains: $($Policy.AllowedSenderDomains.Count)" + } + + if ($HasExclusions) { + $Issues += "Anti-Spam Policy '$($Policy.Identity)': $($ExclusionDetails -join ', ')" + } + } + } + + if ($Issues.Count -eq 0) { + $Status = 'Passed' + $Result = "No exclusions found in built-in protection policies." + } else { + $Status = 'Failed' + $Result = "Found $($Issues.Count) policies with exclusions that bypass built-in protection.`n`n" + $Result += "**Issues Found:**`n`n" + foreach ($Issue in $Issues) { + $Result += "- $Issue`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA239' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'No exclusions for built-in protection' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA239' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'No exclusions for built-in protection' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.md new file mode 100644 index 000000000000..09b5ed1ccfc7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.md @@ -0,0 +1,8 @@ +External sender identification should be enabled in Outlook to help users quickly identify messages from external senders. When configured, Outlook displays a visual indicator (such as "External" tags) on messages from outside the organization, helping users exercise appropriate caution when interacting with external content and reducing the risk of phishing attacks. + +**Remediation action** + +- [External sender callouts in Outlook](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-outbound-spam-about#external-sender-callouts) +- [Configure organization relationships in Exchange Online](https://learn.microsoft.com/exchange/sharing/organization-relationships/organization-relationships) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.ps1 new file mode 100644 index 000000000000..d283d3a0c45b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA240.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestORCA240 { + <# + .SYNOPSIS + Outlook external tags are configured + #> + param($Tenant) + + try { + $OrgConfig = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoOrganizationConfig' + + if (-not $OrgConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA240' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Outlook external tags are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Configuration' + return + } + + $Config = $OrgConfig | Select-Object -First 1 + + if ($Config.ExternalInOutlook -ne 'Disabled') { + $Status = 'Passed' + $Result = "Outlook external tags are configured.`n`n" + $Result += "**ExternalInOutlook:** $($Config.ExternalInOutlook)" + } else { + $Status = 'Failed' + $Result = "Outlook external tags are NOT configured.`n`n" + $Result += "**ExternalInOutlook:** $($Config.ExternalInOutlook)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA240' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Outlook external tags are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA240' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Outlook external tags are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.md new file mode 100644 index 000000000000..09875bcda233 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.md @@ -0,0 +1,8 @@ +First Contact Safety Tips display warnings when users receive email from a sender for the first time. This feature helps users recognize potentially suspicious messages from unfamiliar senders, providing an opportunity to verify the sender's identity before responding or clicking links, especially useful for detecting spear-phishing attacks from new contacts. + +**Remediation action** + +- [Configure anti-phishing policies in Microsoft Defender for Office 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-phishing-policies-mdo-configure) +- [Safety tips in email messages in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-safety-tips-about) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.ps1 new file mode 100644 index 000000000000..8e5b26129d3e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA241.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA241 { + <# + .SYNOPSIS + First Contact Safety Tips is enabled + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAntiPhishPolicies' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA241' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'First Contact Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.EnableFirstContactSafetyTips -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-phishing policies have First Contact Safety Tips enabled.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-phishing policies do not have First Contact Safety Tips enabled.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Enable First Contact Safety Tips |`n" + $Result += "|------------|----------------------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.EnableFirstContactSafetyTips) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA241' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'First Contact Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA241' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'First Contact Safety Tips is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Phish' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.md new file mode 100644 index 000000000000..19d786b500da --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.md @@ -0,0 +1,8 @@ +Security alert policies should be configured to notify administrators of important protection events and potential security incidents. Alerts for events such as malware campaigns, suspicious email patterns, compromised accounts, and policy violations help security teams respond quickly to threats and maintain visibility into the effectiveness of email security controls. + +**Remediation action** + +- [Alert policies in the Microsoft 365 compliance center](https://learn.microsoft.com/microsoft-365/compliance/alert-policies) +- [Get started with alert policies](https://learn.microsoft.com/purview/alert-policies) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.ps1 new file mode 100644 index 000000000000..ba691ddf939e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA242.ps1 @@ -0,0 +1,30 @@ +function Invoke-CippTestORCA242 { + <# + .SYNOPSIS + Important protection alerts enabled + #> + param($Tenant) + + try { + # This test would check for alert policies related to ATP/Defender for Office 365 + # Since we don't have an alert policy cache, we'll provide informational guidance + + $Status = 'Informational' + $Result = "Alert policies for protection features should be enabled and monitored.`n`n" + $Result += "**Recommended Alert Policies:**`n`n" + $Result += "- Messages reported by users as malware or phish`n" + $Result += "- Email sending limit exceeded`n" + $Result += "- Suspicious email forwarding activity`n" + $Result += "- Malware campaign detected`n" + $Result += "- Suspicious connector activity`n" + $Result += "- Unusual external user file activity`n" + $Result += "`n**Action Required:** Verify alert policies are configured in Microsoft 365 Security & Compliance Center" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA242' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Important protection alerts enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA242' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Important protection alerts enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.md new file mode 100644 index 000000000000..b24f602a85fd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.md @@ -0,0 +1,8 @@ +Inbound connectors for non-authoritative domains should be configured with proper authentication to maintain the integrity of email security checks. When email flows through third-party services, connectors should specify authenticated source IPs or certificates to ensure that Exchange Online can properly validate sender information and apply appropriate security policies. + +**Remediation action** + +- [Configure mail flow using connectors in Exchange Online](https://learn.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/use-connectors-to-configure-mail-flow) +- [Enhanced filtering for connectors in Exchange Online](https://learn.microsoft.com/exchange/mail-flow-best-practices/use-connectors-to-configure-mail-flow/enhanced-filtering-for-connectors) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.ps1 new file mode 100644 index 000000000000..28a3717e845b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA243.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestORCA243 { + <# + .SYNOPSIS + Authenticated Receive Chain for non-EOP domains + #> + param($Tenant) + + try { + $AcceptedDomains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoAcceptedDomains' + + if (-not $AcceptedDomains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA243' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No accepted domains found in database.' -Risk 'Medium' -Name 'Authenticated Receive Chain for non-EOP domains' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Configuration' + return + } + + # Check for non-authoritative domains that would need inbound connectors + $NonAuthDomains = $AcceptedDomains | Where-Object { $_.DomainType -in @('InternalRelay', 'ExternalRelay') } + + if ($NonAuthDomains.Count -eq 0) { + $Status = 'Passed' + $Result = "All domains are authoritative. No inbound connectors needed.`n`n" + $Result += "**Total Domains:** $($AcceptedDomains.Count)" + } else { + $Status = 'Informational' + $Result = "Found $($NonAuthDomains.Count) non-authoritative domains.`n`n" + $Result += "**Domains Requiring Inbound Connectors:**`n`n" + foreach ($Domain in $NonAuthDomains) { + $Result += "- $($Domain.DomainName) (Type: $($Domain.DomainType))`n" + } + $Result += "`n**Action Required:** Verify inbound connectors are configured with proper authentication for these domains" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA243' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Authenticated Receive Chain for non-EOP domains' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Configuration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA243' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Authenticated Receive Chain for non-EOP domains' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Configuration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.md b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.md new file mode 100644 index 000000000000..51ed9d611bea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.md @@ -0,0 +1,8 @@ +Anti-spam policies should honor DMARC (Domain-based Message Authentication, Reporting, and Conformance) policies published by sending domains. When enabled, this setting respects the sender domain's DMARC policy for handling authentication failures, improving email security by enforcing the sender's preferred treatment of spoofed or forged messages. + +**Remediation action** + +- [Configure anti-spam policies in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/anti-spam-policies-configure) +- [Use DMARC to validate email in Microsoft 365](https://learn.microsoft.com/microsoft-365/security/office-365-security/email-authentication-dmarc-configure) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.ps1 b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.ps1 new file mode 100644 index 000000000000..177731b925e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/Identity/Invoke-CippTestORCA244.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestORCA244 { + <# + .SYNOPSIS + Policies honor sending domain DMARC + #> + param($Tenant) + + try { + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' + + if (-not $Policies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA244' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Policies honor sending domain DMARC' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + return + } + + $FailedPolicies = [System.Collections.Generic.List[object]]::new() + $PassedPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $Policies) { + if ($Policy.HonorDMARCPolicy -eq $true) { + $PassedPolicies.Add($Policy) | Out-Null + } else { + $FailedPolicies.Add($Policy) | Out-Null + } + } + + if ($FailedPolicies.Count -eq 0) { + $Status = 'Passed' + $Result = "All anti-spam policies honor sending domain DMARC.`n`n" + $Result += "**Compliant Policies:** $($PassedPolicies.Count)" + } else { + $Status = 'Failed' + $Result = "$($FailedPolicies.Count) anti-spam policies do not honor sending domain DMARC.`n`n" + $Result += "**Non-Compliant Policies:** $($FailedPolicies.Count)`n`n" + $Result += "| Policy Name | Honor DMARC Policy |`n" + $Result += "|------------|--------------------|`n" + foreach ($Policy in $FailedPolicies) { + $Result += "| $($Policy.Identity) | $($Policy.HonorDMARCPolicy) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA244' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Policies honor sending domain DMARC' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA244' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Policies honor sending domain DMARC' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Anti-Spam' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ORCA/report.json b/Modules/CIPPCore/Public/Tests/ORCA/report.json new file mode 100644 index 000000000000..cb19336da0f5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ORCA/report.json @@ -0,0 +1,77 @@ +{ + "name": "ORCA (Office 365 Recommended Configuration Analyzer) Tests", + "description": "Comprehensive security assessment for Microsoft Exchange Online and Office 365 security configurations. Tests cover anti-spam, anti-phish, anti-malware, safe links, safe attachments, DKIM, transport rules, and other Exchange Online security settings.", + "version": "1.0", + "source": "https://github.com/maester365/maester", + "category": "Exchange Online Security", + "note": "ORCA tests require Exchange Online and Security & Compliance Center data. Many tests require custom ORCA framework classes and detailed implementation. Tests marked as requiring specific caches will be implemented based on available CIPP cache data.", + "IdentityTests": [ + "ORCA100", + "ORCA101", + "ORCA102", + "ORCA103", + "ORCA104", + "ORCA105", + "ORCA106", + "ORCA107", + "ORCA108", + "ORCA1081", + "ORCA109", + "ORCA110", + "ORCA111", + "ORCA112", + "ORCA113", + "ORCA114", + "ORCA115", + "ORCA116", + "ORCA1181", + "ORCA1182", + "ORCA1183", + "ORCA1184", + "ORCA119", + "ORCA120malware", + "ORCA120phish", + "ORCA120spam", + "ORCA121", + "ORCA123", + "ORCA124", + "ORCA139", + "ORCA140", + "ORCA141", + "ORCA142", + "ORCA143", + "ORCA156", + "ORCA158", + "ORCA179", + "ORCA180", + "ORCA189", + "ORCA1892", + "ORCA205", + "ORCA220", + "ORCA221", + "ORCA222", + "ORCA223", + "ORCA224", + "ORCA225", + "ORCA226", + "ORCA227", + "ORCA228", + "ORCA229", + "ORCA230", + "ORCA231", + "ORCA232", + "ORCA233", + "ORCA2331", + "ORCA234", + "ORCA235", + "ORCA236", + "ORCA237", + "ORCA238", + "ORCA239", + "ORCA240", + "ORCA241", + "ORCA242", + "ORCA243", + "ORCA244" + ] +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md new file mode 100644 index 000000000000..99c5096fc32b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24518.md @@ -0,0 +1,9 @@ +Without owners, enterprise applications become orphaned assets that threat actors can exploit through credential harvesting and privilege escalation techniques, as these applications often retain elevated permissions and access to sensitive resources while lacking proper oversight and security governance. The elevation of privilege to owners can raise a security concern in some cases depending on the application's permissions, but more critically, applications without owner create a blind spot in security monitoring where threat actors can establish persistence by leveraging existing application permissions to access data or create backdoor accounts without triggering ownership-based detection mechanisms. When applications lack owners, security teams cannot effectively conduct application lifecycle management, leaving applications with potentially excessive permissions, outdated configurations, or compromised credentials that threat actors can discover through enumeration techniques and exploit to move laterally within the environment. The absence of ownership also prevents proper access reviews and permission audits, allowing threat actors to maintain long-term access through applications that should have been decommissioned or had their permissions reduced, ultimately providing persistent access vectors that can be leveraged for data exfiltration or further compromise of the environment. + + +**Remediation action** + +- [Assign owners to the application](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-app-owners?pivots=portal) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md new file mode 100644 index 000000000000..ac6dfafe2063 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.md @@ -0,0 +1,18 @@ +If policies for Windows Firewall aren't configured and assigned, threat actors can exploit unprotected endpoints to gain unauthorized access, move laterally, and escalate privileges within the environment. Without enforced firewall rules, attackers can bypass network segmentation, exfiltrate data, or deploy malware, increasing the risk of widespread compromise. + +Enforcing Windows Firewall policies ensures consistent application of inbound and outbound traffic controls, reducing exposure to unauthorized access and supporting Zero Trust through network segmentation and device-level protection. + +**Remediation action** + +Configure and assign firewall policies for Windows in Intune to block unauthorized traffic and enforce consistent network protections across all managed devices: + +- [Configure firewall policies for Windows devices](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). Intune uses two complementary profiles to manage firewall settings: + - **Windows Firewall** - Use this profile to configure overall firewall behavior based on network type. + - **Windows Firewall rules** - Use this profile to define traffic rules for apps, ports, or IPs, tailored to specific groups or workloads. This Intune profile also supports use of [reusable settings groups](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#add-reusable-settings-groups-to-profiles-for-firewall-rules) to help simplify management of common settings you use for different profile instances. +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Available Windows Firewall settings](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-profile-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#windows-firewall-profile) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 new file mode 100644 index 000000000000..40e130efdae4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24540.ps1 @@ -0,0 +1,72 @@ +function Invoke-CippTestZTNA24540 { + <# + .SYNOPSIS + Windows Firewall policies protect against unauthorized network access + #> + param($Tenant) + #Tested - Device + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $FirewallPolicies = $ConfigurationPolicies | Where-Object { + $_.templateReference -and $_.templateReference.templateFamily -eq 'endpointSecurityFirewall' + } + + if ($FirewallPolicies.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Firewall configuration policies found' -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $FirewallPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one Windows Firewall policy is created and assigned to a group.' + '' + '**Windows Firewall Configuration Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $FirewallPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + $ResultLines = @( + 'There are no firewall policies assigned to any groups.' + '' + '**Windows Firewall Configuration Policies (Unassigned):**' + '' + ) + + foreach ($Policy in $FirewallPolicies) { + $ResultLines += "- $($Policy.name)" + } + + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24540' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Windows Firewall policies protect against unauthorized network access' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md new file mode 100644 index 000000000000..38309e2747a4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.md @@ -0,0 +1,11 @@ +If compliance policies for Windows devices aren't configured and assigned, threat actors can exploit unmanaged or noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist within the environment. Without enforced compliance, devices can lack critical security configurations like BitLocker encryption, password requirements, firewall settings, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures Windows devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to Windows devices to enforce organizational standards for secure access and management: +- [Create and assign Intune compliance policies](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Windows compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-windows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 new file mode 100644 index 000000000000..acf03ea73a68 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24541.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestZTNA24541 { + <# + .SYNOPSIS + Compliance policies protect Windows devices + #> + param($Tenant) + + $TestId = 'ZTNA24541' + #Tested - Device + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $WindowsPolicies = @($IntunePolicies | Where-Object { + $_.'@odata.type' -in @('#microsoft.graph.windows10CompliancePolicy', '#microsoft.graph.windows11CompliancePolicy') + }) + + $AssignedPolicies = @($WindowsPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Windows compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Windows compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Windows Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $WindowsPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect Windows devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md new file mode 100644 index 000000000000..9f2fc9e48eb8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.md @@ -0,0 +1,12 @@ +If compliance policies for macOS devices aren't configured and assigned, threat actors can exploit unmanaged or noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist within the environment. Without enforced compliance, macOS devices can lack critical security configurations like data storage encryption, password requirements, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures macOS devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured endpoints. + +**Remediation actions** + +Create and assign Intune compliance policies to macOS devices to enforce organizational standards for secure access and management: +- [Create and assign Intune compliance policies](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the macOS compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-mac-os?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 new file mode 100644 index 000000000000..81215ce30efa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24542.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24542 { + <# + .SYNOPSIS + Compliance policies protect macOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24542' + #Tested - Device + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $MacOSPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.macOSCompliancePolicy' }) + $AssignedPolicies = @($MacOSPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one macOS compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No macOS compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## macOS Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $MacOSPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md new file mode 100644 index 000000000000..cc5957a9245a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.md @@ -0,0 +1,12 @@ +If compliance policies aren't assigned to iOS/iPadOS devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist in the environment. Without enforced compliance, devices can lack critical security configurations like passcode requirements and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures iOS/iPadOS devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to iOS/iPadOS devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the iOS/iPadOS compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 new file mode 100644 index 000000000000..3130d6e531fa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24543.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA24543 { + <# + .SYNOPSIS + Compliance policies protect iOS/iPadOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24543' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $iOSPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.iosCompliancePolicy' }) + $AssignedPolicies = @($iOSPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one iOS/iPadOS compliance policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No iOS/iPadOS compliance policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## iOS/iPadOS Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $iOSPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect iOS/iPadOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md new file mode 100644 index 000000000000..7f319eaf0e79 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.md @@ -0,0 +1,11 @@ +If compliance policies aren't assigned to fully managed Android Enterprise devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and persist in the environment. Without enforced compliance, devices can lack critical security configurations such as passcode requirements, data storage encryption, and OS version controls. These gaps increase the risk of data leakage, privilege escalation, and lateral movement. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures Android Enterprise devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to fully managed and corporate-owned Android Enterprise devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Android Enterprise compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-android-for-work?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 new file mode 100644 index 000000000000..c40f080a415b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24545.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestZTNA24545 { + <# + .SYNOPSIS + Compliance policies protect fully managed and corporate-owned Android devices + #> + param($Tenant) + + $TestId = 'ZTNA24545' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AndroidPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidDeviceOwnerCompliancePolicy' }) + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one compliance policy for Android Enterprise Fully managed devices exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No compliance policy for Android Enterprise exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android Device Owner Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect fully managed and corporate-owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md new file mode 100644 index 000000000000..6f28c5111ac9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24546.md @@ -0,0 +1,14 @@ +If Windows automatic enrollment isn't enabled, unmanaged devices can become an entry point for attackers. Threat actors might use these devices to access corporate data, bypass compliance policies, and introduce vulnerabilities into the environment. Devices joined to Microsoft Entra without Intune enrollment create gaps in visibility and control. These unmanaged endpoints can expose weaknesses in the operating system or misconfigured applications that attackers can exploit. + +Enforcing automatic enrollment ensures Windows devices are managed from the start, enabling consistent policy enforcement and visibility into compliance. This supports Zero Trust by ensuring all devices are verified, monitored, and governed by security controls. + +**Remediation action** + +Enable automatic enrollment for Windows devices using Intune and Microsoft Entra to ensure all domain-joined or Entra-joined devices are managed: +- [Enable Windows automatic enrollment](https://learn.microsoft.com/intune/intune-service/enrollment/windows-enroll?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-windows-automatic-enrollment) + +For more information, see: +- [Deployment guide - Enrollment for Windows](https://learn.microsoft.com/intune/intune-service/fundamentals/deployment-guide-enroll?tabs=work-profile%2Ccorporate-owned-apple%2Cautomatic-enrollment&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enrollment-for-windows) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md new file mode 100644 index 000000000000..3aaa5280e921 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.md @@ -0,0 +1,12 @@ +If compliance policies aren't assigned to Android Enterprise personally owned devices in Intune, threat actors can exploit noncompliant endpoints to gain unauthorized access to corporate resources, bypass security controls, and introduce vulnerabilities. Without enforced compliance, devices can lack critical security configurations like passcode requirements, data storage encryption, and OS version controls. These gaps increase the risk of data leakage and unauthorized access. Inconsistent device compliance weakens the organization’s security posture and makes it harder to detect and remediate threats before significant damage occurs. + +Enforcing compliance policies ensures that personally owned Android devices meet core security requirements and supports Zero Trust by validating device health and reducing exposure to misconfigured or unmanaged endpoints. + +**Remediation action** + +Create and assign Intune compliance policies to Android Enterprise personally owned devices to enforce organizational standards for secure access and management: +- [Create a compliance policy in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/create-compliance-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-policy) +- [Review the Android Enterprise compliance settings you can manage with Intune](https://learn.microsoft.com/intune/intune-service/protect/compliance-policy-create-android-for-work?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 new file mode 100644 index 000000000000..e1ede894c0c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24547.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestZTNA24547 { + <# + .SYNOPSIS + Compliance policies protect personally owned Android devices + #> + param($Tenant) + + $TestId = 'ZTNA24547' + #Tested - Device + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AndroidPolicies = @($IntunePolicies | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidWorkProfileCompliancePolicy' }) + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one compliance policy for Android Work Profile devices exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No compliance policy for Android Work Profile exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android Work Profile Compliance Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Compliance policies protect personally owned Android devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md new file mode 100644 index 000000000000..dae6ea117f95 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.md @@ -0,0 +1,14 @@ +Without app protection policies, corporate data accessed on iOS/iPadOS devices is vulnerable to leakage through unmanaged or personal apps. Users can unintentionally copy sensitive information into unsecured apps, store data outside corporate boundaries, or bypass authentication controls. This risk is especially high on BYOD devices, where personal and work contexts coexist, increasing the likelihood of data exfiltration or unauthorized access. + +App protection policies ensure corporate data remains secure within approved apps, even on personal devices. These policies enforce encryption, restrict data sharing, and require authentication, reducing the risk of data leakage and aligning with Zero Trust principles of data protection and conditional access. + +**Remediation action** + +Deploy Intune app protection policies that encrypt corporate data, restrict sharing, and require authentication in approved iOS/iPadOS apps: +- [Deploy Intune app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policies?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-an-iosipados-or-android-app-protection-policy) +- [Review the iOS app protection settings reference](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy-settings-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [Learn about using app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 new file mode 100644 index 000000000000..35d55fc52c15 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24548 { + <# + .SYNOPSIS + Data on iOS/iPadOS is protected by app protection policies + #> + param($Tenant) + + $TestId = 'ZTNA24548' + #Tested - Device + + try { + $IosPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneIosAppProtectionPolicies' + + if (-not $IosPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AssignedPolicies = @($IosPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one iOS app protection policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No iOS app protection policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## iOS App Protection Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $IosPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md new file mode 100644 index 000000000000..2c0db7f420e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.md @@ -0,0 +1,16 @@ +Without app protection policies, corporate data accessed on Android devices is vulnerable to leakage through unmanaged or malicious apps. Users can unintentionally copy sensitive information into personal apps, store data insecurely, or bypass authentication controls. This risk is amplified on devices that aren't fully managed, where corporate and personal contexts coexist, increasing the likelihood of data exfiltration or unauthorized access. + +Enforcing app protection policies ensures that corporate data is only accessible through trusted apps and remains protected even on personal or BYOD Android devices. + +These policies enforce encryption, restrict data sharing, and require authentication, reducing the risk of data leakage and aligning with Zero Trust principles of data protection and Conditional Access. + +**Remediation action** + +Deploy Intune app protection policies that encrypt data, restrict sharing, and require authentication in approved Android apps: +- [Deploy Intune app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policies?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-an-iosipados-or-android-app-protection-policy) +- [Review the Android app protection settings reference](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy-settings-android?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [Learn about using app protection policies](https://learn.microsoft.com/intune/intune-service/apps/app-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 new file mode 100644 index 000000000000..93ec5e0072d1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA24549 { + <# + .SYNOPSIS + Data on Android is protected by app protection policies + #> + param($Tenant) + + $TestId = 'ZTNA24549' + #Tested - Device + + try { + $AndroidPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneAndroidAppProtectionPolicies' + + if (-not $AndroidPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Android app protection policy exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Android app protection policy exists or none are assigned.`n`n" + } + + $ResultMarkdown += "## Android App Protection Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $AndroidPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md new file mode 100644 index 000000000000..69fd867841a0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.md @@ -0,0 +1,12 @@ +Without a properly configured and assigned BitLocker policy in Intune, threat actors can exploit unencrypted Windows devices to gain unauthorized access to sensitive corporate data. Devices that lack enforced encryption are vulnerable to physical attacks, like disk removal or booting from external media, allowing attackers to bypass operating system security controls. These attacks can result in data exfiltration, credential theft, and further lateral movement within the environment. + +Enforcing BitLocker across managed Windows devices is critical for compliance with data protection regulations and for reducing the risk of data breaches. + +**Remediation action** + +Use Intune to enforce BitLocker encryption and monitor compliance across all managed Windows devices: +- [Create a BitLocker policy for Windows devices in Intune](https://learn.microsoft.com/intune/intune-service/protect/encrypt-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-and-deploy-policy) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +- [Monitor device encryption with Intune](https://learn.microsoft.com/intune/intune-service/protect/encryption-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 new file mode 100644 index 000000000000..46c285740cb6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24550.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA24550 { + <# + .SYNOPSIS + Data on Windows is protected by BitLocker encryption + #> + param($Tenant) + #Tested - Device + + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigurationPolicies | Where-Object { + $_.platforms -match 'windows10' + } + + $WindowsBitLockerPolicies = @() + foreach ($WindowsPolicy in $WindowsPolicies) { + $ValidSettingValues = @('device_vendor_msft_bitlocker_requiredeviceencryption_1') + + if ($WindowsPolicy.settings.settinginstance.choicesettingvalue.value) { + $PolicySettingValues = $WindowsPolicy.settings.settinginstance.choicesettingvalue.value + if ($PolicySettingValues -isnot [array]) { + $PolicySettingValues = @($PolicySettingValues) + } + + $HasValidSetting = $false + foreach ($SettingValue in $PolicySettingValues) { + if ($ValidSettingValues -contains $SettingValue) { + $HasValidSetting = $true + break + } + } + + if ($HasValidSetting) { + $WindowsBitLockerPolicies += $WindowsPolicy + } + } + } + + $AssignedPolicies = $WindowsBitLockerPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one Windows BitLocker policy is configured and assigned.' + '' + '**Windows BitLocker Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $WindowsBitLockerPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + if ($WindowsBitLockerPolicies.Count -gt 0) { + $ResultLines = @( + 'Windows BitLocker policies exist but none are assigned.' + '' + '**Unassigned BitLocker Policies:**' + '' + ) + foreach ($Policy in $WindowsBitLockerPolicies) { + $ResultLines += "- $($Policy.name)" + } + } else { + $ResultLines = @('No Windows BitLocker policy is configured or assigned.') + } + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24550' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on Windows is protected by BitLocker encryption' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md new file mode 100644 index 000000000000..441a4d65d1a1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24551.md @@ -0,0 +1,11 @@ +If policies for Windows Hello for Business (WHfB) aren't configured and assigned to all users and devices, threat actors can exploit weak authentication mechanisms—like passwords—to gain unauthorized access. This can lead to credential theft, privilege escalation, and lateral movement within the environment. Without strong, policy-driven authentication like WHfB, attackers can compromise devices and accounts, increasing the risk of widespread impact. + +Enforcing WHfB disrupts this attack chain by requiring strong, multifactor authentication, which helps reduce the risk of credential-based attacks and unauthorized access. + +**Remediation action** + +Deploy Windows Hello for Business in Intune to enforce strong, multifactor authentication: +- [Configure a tenant-wide Windows Hello for Business policy](https://learn.microsoft.com/intune/intune-service/protect/windows-hello?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-windows-hello-for-business-policy-for-device-enrollment) that applies at the time a device enrolls with Intune. +- After enrollment, [configure Account protection profiles](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-account-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#account-protection-profiles) and [assign](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) different configurations for Windows Hello for Business to different groups of users and devices. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md new file mode 100644 index 000000000000..47161b346847 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.md @@ -0,0 +1,15 @@ +Without a centrally managed firewall policy, macOS devices might rely on default or user-modified settings, which often fail to meet corporate security standards. This exposes devices to unsolicited inbound connections, enabling threat actors to exploit vulnerabilities, establish outbound command-and-control (C2) traffic for data exfiltration, and move laterally within the network—significantly escalating the scope and impact of a breach. + +Enforcing macOS Firewall policies ensures consistent control over inbound and outbound traffic, reducing exposure to unauthorized access and supporting Zero Trust through device-level protection and network segmentation. + +**Remediation action** + +Configure and assign **macOS Firewall** profiles in Intune to block unauthorized traffic and enforce consistent network protections across all managed macOS devices: + +- [Configure the built-in firewall on macOS devices](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Available macOS firewall settings](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-firewall-profile-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#macos-firewall-profile) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 new file mode 100644 index 000000000000..2d87afc2142b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24552.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA24552 { + <# + .SYNOPSIS + Data on macOS is protected by firewall + #> + param($Tenant) + #Tested - Device + + try { + $ConfigurationPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigurationPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MacOSPolicies = $ConfigurationPolicies | Where-Object { + $_.platforms -match 'macOS' + } + + $MacOSFirewallPolicies = @() + foreach ($MacOSPolicy in $MacOSPolicies) { + $ValidSettingValues = @('com.apple.security.firewall_enablefirewall_true') + + if ($MacOSPolicy.settings.settinginstance.choicesettingvalue.value) { + $PolicySettingValues = $MacOSPolicy.settings.settinginstance.choicesettingvalue.value + if ($PolicySettingValues -isnot [array]) { + $PolicySettingValues = @($PolicySettingValues) + } + + $HasValidSetting = $false + foreach ($SettingValue in $PolicySettingValues) { + if ($ValidSettingValues -contains $SettingValue) { + $HasValidSetting = $true + break + } + } + + if ($HasValidSetting) { + $MacOSFirewallPolicies += $MacOSPolicy + } + } + } + + $AssignedPolicies = $MacOSFirewallPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultLines = @( + 'At least one macOS Firewall policy is configured and assigned.' + '' + '**macOS Firewall Policies:**' + '' + '| Policy Name | Status | Assignment Count |' + '| :---------- | :----- | :--------------- |' + ) + + foreach ($Policy in $MacOSFirewallPolicies) { + $PolicyStatus = if ($Policy.assignments -and $Policy.assignments.Count -gt 0) { + '✅ Assigned' + } else { + '❌ Not assigned' + } + $AssignmentCount = if ($Policy.assignments) { $Policy.assignments.Count } else { 0 } + $ResultLines += "| $($Policy.name) | $PolicyStatus | $AssignmentCount |" + } + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Failed' + if ($MacOSFirewallPolicies.Count -gt 0) { + $ResultLines = @( + 'macOS Firewall policies exist but none are assigned.' + '' + '**Unassigned Firewall Policies:**' + '' + ) + foreach ($Policy in $MacOSFirewallPolicies) { + $ResultLines += "- $($Policy.name)" + } + } else { + $ResultLines = @('No macOS Firewall policy is configured or assigned.') + } + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24552' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Data on macOS is protected by firewall' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md new file mode 100644 index 000000000000..23dcce5aa180 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.md @@ -0,0 +1,16 @@ +If Windows Update policies aren't enforced across all corporate Windows devices, threat actors can exploit unpatched vulnerabilities to gain unauthorized access, escalate privileges, and move laterally within the environment. The attack chain often begins with device compromise via phishing, malware, or exploitation of known vulnerabilities, and is followed by attempts to bypass security controls. Without enforced update policies, attackers leverage outdated software to persist in the environment, increasing the risk of privilege escalation and domain-wide compromise. + +Enforcing Windows Update policies ensures timely patching of security flaws, disrupting attacker persistence, and reducing the risk of widespread compromise. + +**Remediation action** + +Start with [Manage Windows software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/windows-update-for-business-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) to understand the available Windows Update policy types and how to configure them. + +Intune includes the following Windows update policy type: +- [Windows quality updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-quality-update-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to install the regular monthly updates for Windows.* +- [Expedite updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-expedite-updates?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to quickly install critical security patches.* +- [Feature updates policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-feature-updates?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Update rings policy](https://learn.microsoft.com/intune/intune-service/protect/windows-10-update-rings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to manage how and when devices install feature and quality updates.* +- [Windows driver updates](https://learn.microsoft.com/intune/intune-service/protect/windows-driver-updates-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) - *to update hardware components.* + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 new file mode 100644 index 000000000000..befe29a27e39 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24553.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24553 { + <# + .SYNOPSIS + Windows Update policies are enforced to reduce risk from unpatched vulnerabilities + #> + param($Tenant) + #Tested - Device + + $TestId = 'ZTNA24553' + + try { + $IntunePolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + + if (-not $IntunePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $UpdatePolicies = @($IntunePolicies | Where-Object { + $_.'@odata.type' -in @( + '#microsoft.graph.windowsUpdateForBusinessConfiguration', + '#microsoft.graph.windows10CompliancePolicy' + ) + }) + + $AssignedPolicies = @($UpdatePolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ Windows Update policies are configured and assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Windows Update policies are configured or assigned.`n`n" + } + + $ResultMarkdown += "## Windows Update Policies`n`n" + $ResultMarkdown += "| Policy Name | Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :--- | :------- |`n" + + foreach ($policy in $UpdatePolicies) { + $type = if ($policy.'@odata.type' -eq '#microsoft.graph.windowsUpdateForBusinessConfiguration') { 'Update' } else { 'Compliance' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $type | $assigned |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Windows Update policies are enforced to reduce risk from unpatched vulnerabilities' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md new file mode 100644 index 000000000000..780d3db02237 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24554.md @@ -0,0 +1,11 @@ +If iOS update policies aren’t configured and assigned, threat actors can exploit unpatched vulnerabilities in outdated operating systems on managed devices. The absence of enforced update policies allows attackers to use known exploits to gain initial access, escalate privileges, and move laterally within the environment. Without timely updates, devices remain susceptible to exploits that have already been addressed by Apple, enabling threat actors to bypass security controls, deploy malware, or exfiltrate sensitive data. This attack chain begins with device compromise through an unpatched vulnerability, followed by persistence and potential data breach that impacts both organizational security and compliance posture. + +Enforcing update policies disrupts this chain by ensuring devices are consistently protected against known threats. + +**Remediation action** + +Configure and assign iOS/iPadOS update policies in Intune to enforce timely patching and reduce risk from unpatched vulnerabilities: +- [Manage iOS/iPadOS software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/software-updates-guide-ios-ipados?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md new file mode 100644 index 000000000000..9419a8e0b59d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24555.md @@ -0,0 +1,12 @@ +If Intune scope tags aren't properly configured for delegated administration, attackers who gain privileged access to Intune or Microsoft Entra ID can escalate privileges and access sensitive device configurations across the tenant. Without granular scope tags, administrative boundaries are unclear, allowing attackers to move laterally, manipulate device policies, exfiltrate configuration data, or deploy malicious settings to all users and devices. A single compromised admin account can impact the entire environment. The absence of delegated administration also undermines least-privileged access, making it difficult to contain breaches and enforce accountability. Attackers might exploit global administrator roles or misconfigured role-based access control (RBAC) assignments to bypass compliance policies and gain broad control over device management. + +Enforcing scope tags segments administrative access and aligns it with organizational boundaries. This limits the blast radius of compromised accounts, supports least-privilege access, and aligns with Zero Trust principles of segmentation, role-based control, and containment. + +**Remediation action** + +Use Intune scope tags and RBAC roles to limit admin access based on role, geography, or business unit: +- [Learn how to create and deploy scope tags for distributed IT](https://learn.microsoft.com/intune/intune-service/fundamentals/scope-tags?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Implement role-based access control with Microsoft Intune](https://learn.microsoft.com/intune/intune-service/fundamentals/role-based-access-control?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md new file mode 100644 index 000000000000..2e5273c0032d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.md @@ -0,0 +1,14 @@ +Without enforcing Local Administrator Password Solution (LAPS) policies, threat actors who gain access to endpoints can exploit static or weak local administrator passwords to escalate privileges, move laterally, and establish persistence. The attack chain typically begins with device compromise—via phishing, malware, or physical access—followed by attempts to harvest local admin credentials. Without LAPS, attackers can reuse compromised credentials across multiple devices, increasing the risk of privilege escalation and domain-wide compromise. + +Enforcing Windows LAPS on all corporate Windows devices ensures unique, regularly rotated local administrator passwords. This disrupts the attack chain at the credential access and lateral movement stages, significantly reducing the risk of widespread compromise. + +**Remediation action** + +Use Intune to enforce Windows LAPS policies that rotate strong and unique local admin passwords, and that back them up securely: +- [Deploy Windows LAPS policy with Microsoft Intune](https://learn.microsoft.com/intune/intune-service/protect/windows-laps-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-laps-policy) + +For more information, see: +- [Windows LAPS policy settings reference](https://learn.microsoft.com/windows-server/identity/laps/laps-management-policy-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn about Intune support for Windows LAPS](https://learn.microsoft.com/intune/intune-service/protect/windows-laps-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 new file mode 100644 index 000000000000..0df6b175853d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24560.ps1 @@ -0,0 +1,71 @@ +function Invoke-CippTestZTNA24560 { + <# + .SYNOPSIS + Local administrator credentials on Windows are protected by Windows LAPS + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigPolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAccountProtection' -and + $_.platforms -like '*windows10*' + } + + if (-not $WindowsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows LAPS policies found' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $LapsPolicies = $WindowsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $settingIds -contains 'device_vendor_msft_laps_policies_backupdirectory' -or + $settingIds -contains 'device_vendor_msft_laps_policies_automaticaccountmanagementenabled' + } + + if (-not $LapsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No LAPS policies configured' -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $CompliantPolicies = $LapsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $choiceValues = $_.settings.settingInstance.choiceSettingValue.value + + $hasBackupDir = $settingIds -contains 'device_vendor_msft_laps_policies_backupdirectory' + $hasEntraBackup = $choiceValues -contains 'device_vendor_msft_laps_policies_backupdirectory_1' + $hasAdBackup = $choiceValues -contains 'device_vendor_msft_laps_policies_backupdirectory_2' + $hasAutoMgmt = $choiceValues -contains 'device_vendor_msft_laps_policies_automaticaccountmanagementenabled_true' + + ($hasBackupDir -and ($hasEntraBackup -or $hasAdBackup) -and $hasAutoMgmt) + } + + $AssignedCompliantPolicies = $CompliantPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedCompliantPolicies) { + $Status = 'Passed' + $Result = "Cloud LAPS policy is assigned and enforced. Found $($AssignedCompliantPolicies.Count) compliant and assigned policy/policies" + } else { + $Status = 'Failed' + if ($CompliantPolicies) { + $Result = "Cloud LAPS policy exists but is not assigned. Found $($CompliantPolicies.Count) compliant but unassigned policy/policies" + } else { + $Result = 'Cloud LAPS policy is not configured correctly or not enforced' + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24560' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Local administrator credentials on Windows are protected by Windows LAPS' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md new file mode 100644 index 000000000000..0ab82d59bffc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24561.md @@ -0,0 +1,9 @@ +If a macOS cloud LAPS (Local Administrator Password Solution) policy is not configured and assigned in Intune, local admin accounts on enrolled macOS devices may remain unmanaged, increasing the risk of unauthorized access, privilege escalation, and lateral movement by threat actors. Without enforced LAPS policies, organizations cannot ensure that admin account credentials are rotated, unique, and securely managed, exposing sensitive systems to potential compromise. + +**Remediation Resources** + +- [Configure macOS LAPS in Microsoft Intune](https://learn.microsoft.com/en-us/intune/intune-service/enrollment/macos-laps) +- [depOnboardingSetting resource type - Microsoft Graph beta](https://learn.microsoft.com/en-us/graph/api/resources/intune-enrollment-deponboardingsetting?view=graph-rest-beta) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md new file mode 100644 index 000000000000..e3746624d5b3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.md @@ -0,0 +1,13 @@ +Without a properly configured and assigned Local Users and Groups policy in Intune, threat actors can exploit unmanaged or misconfigured local accounts on Windows devices. This can lead to unauthorized privilege escalation, persistence, and lateral movement within the environment. If local administrator accounts aren't controlled, attackers can create hidden accounts or elevate privileges, bypassing compliance and security controls. This gap increases the risk of data exfiltration, ransomware deployment, and regulatory noncompliance. + +Ensuring that Local Users and Groups policies are enforced on managed Windows devices, by using account protection profiles, is critical to maintaining a secure and compliant device fleet. + + +**Remediation action** + +Configure and deploy a **Local user group membership** profile from Intune account protection policy to restrict and manage local account usage on Windows devices: +- Create an [Account protection policy for endpoint security in Intune](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-account-protection-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#account-protection-profiles) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 new file mode 100644 index 000000000000..8d969033aab5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24564.ps1 @@ -0,0 +1,57 @@ +function Invoke-CippTestZTNA24564 { + <# + .SYNOPSIS + Local account usage on Windows is restricted to reduce unauthorized access + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $WindowsPolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' + } + + if (-not $WindowsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows policies found' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $LocalUsersGroupsPolicies = $WindowsPolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + if ($settingIds -is [string]) { + $settingIds -eq 'device_vendor_msft_policy_config_localusersandgroups_configure' + } else { + $settingIds -contains 'device_vendor_msft_policy_config_localusersandgroups_configure' + } + } + + if (-not $LocalUsersGroupsPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Local Users and Groups policy configured' -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $LocalUsersGroupsPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "At least one Local Users and Groups policy is configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Local Users and Groups policy exists but is not assigned. Found $($LocalUsersGroupsPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24564' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Local account usage on Windows is restricted to reduce unauthorized access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md new file mode 100644 index 000000000000..f1363b0e0739 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.md @@ -0,0 +1,12 @@ +If Platform SSO policies aren't enforced on macOS devices, endpoints might rely on insecure or inconsistent authentication mechanisms, allowing attackers to bypass Conditional Access and compliance policies. This opens the door to lateral movement across cloud services and on-premises resources, especially when federated identities are used. Threat actors can persist by leveraging stolen tokens or cached credentials and exfiltrate sensitive data through unmanaged apps or browser sessions. The absence of SSO enforcement also undermines app protection policies and device posture assessments, making it difficult to detect and contain breaches. Ultimately, failure to configure and assign macOS Platform SSO policies compromises identity security and weakens the organization's Zero Trust posture. + +Enforcing Platform SSO policies on macOS devices ensures consistent, secure authentication across apps and services. This strengthens identity protection, supports Conditional Access enforcement, and aligns with Zero Trust by reducing reliance on local credentials and improving posture assessments. + +**Remediation action** + +Use Intune to configure and assign Platform SSO policies for macOS devices to enforce secure authentication and strengthen identity protection, see: + +- [Configure Platform SSO for macOS in Intune](https://learn.microsoft.com/intune/intune-service/configuration/platform-sso-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) – *Step-by-step guidance for enabling Platform SSO on macOS devices.* +- [Single sign-on (SSO) overview and options for Apple devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/use-enterprise-sso-plug-in-ios-ipados-macos?pivots=macos&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) – *Overview of SSO options available for Apple platforms.* +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 new file mode 100644 index 000000000000..7f2b58180c5b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24568.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA24568 { + <# + .SYNOPSIS + Platform SSO is configured to strengthen authentication on macOS devices + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $MacOSPolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*macOS*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*appleRemoteManagement*' + } + + if (-not $MacOSPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS policies found' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $SSOPolicies = $MacOSPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $extensionIdSetting = $children | Where-Object { + $_.settingDefinitionId -eq 'com.apple.extensiblesso_extensionidentifier' + } + $extensionValue = $extensionIdSetting.simpleSettingValue.value + $extensionValue -eq 'com.microsoft.CompanyPortalMac.ssoextension' + } + + if (-not $SSOPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS SSO policies configured with Microsoft Company Portal extension' -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + return + } + + $AssignedSSOPolicies = $SSOPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedSSOPolicies) { + $Status = 'Passed' + $Result = "macOS SSO policies are configured and assigned. Found $($AssignedSSOPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "macOS SSO policy exists but is not assigned. Found $($SSOPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24568' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Platform SSO is configured to strengthen authentication on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md new file mode 100644 index 000000000000..b83531c58838 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.md @@ -0,0 +1,12 @@ +Without properly configured and assigned FileVault encryption policies in Intune, threat actors can exploit physical access to unmanaged or misconfigured macOS devices to extract sensitive corporate data. Unencrypted devices allow attackers to bypass operating system-level security by booting from external media or removing the storage drive. These attacks can expose credentials, certificates, and cached authentication tokens, enabling privilege escalation and lateral movement. Additionally, unencrypted devices undermine compliance with data protection regulations and increase the risk of reputational damage and financial penalties in the event of a breach. + +Enforcing FileVault encryption protects data at rest on macOS devices, even if lost or stolen. It disrupts credential harvesting and lateral movement, supports regulatory compliance, and aligns with Zero Trust principles of device trust. + +**Remediation action** + +Use Intune to enforce FileVault encryption and monitor compliance on all managed macOS devices: +- [Create a FileVault disk encryption policy for macOS in Intune](https://learn.microsoft.com/intune/intune-service/protect/encrypt-devices-filevault?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-endpoint-security-policy-for-filevault) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +- [Monitor device encryption with Intune](https://learn.microsoft.com/intune/intune-service/protect/encryption-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 new file mode 100644 index 000000000000..821983deda18 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24569.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA24569 { + <# + .SYNOPSIS + FileVault encryption protects data on macOS devices + #> + param($Tenant) + + $TestId = 'ZTNA24569' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MacOSEndpointProtectionPolicies = @($DeviceConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.macOSEndpointProtectionConfiguration' + }) + + $FileVaultEnabledPolicies = @($MacOSEndpointProtectionPolicies | Where-Object { $_.fileVaultEnabled -eq $true }) + $AssignedFileVaultPolicies = @($FileVaultEnabledPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedFileVaultPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ macOS FileVault encryption policies are configured and assigned in Intune.`n`n" + } else { + $ResultMarkdown = "❌ No relevant macOS FileVault encryption policies are configured or assigned.`n`n" + } + + if ($FileVaultEnabledPolicies.Count -gt 0) { + $ResultMarkdown += "## macOS FileVault Policies`n`n" + $ResultMarkdown += "| Policy Name | FileVault Enabled | Assigned |`n" + $ResultMarkdown += "| :---------- | :---------------- | :------- |`n" + + foreach ($policy in $FileVaultEnabledPolicies) { + $fileVault = if ($policy.fileVaultEnabled -eq $true) { '✅ Yes' } else { '❌ No' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $fileVault | $assigned |`n" + } + } else { + $ResultMarkdown += "No macOS Endpoint Protection policies with FileVault settings found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'FileVault encryption protects data on macOS devices' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md new file mode 100644 index 000000000000..d25a00389cea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24570.md @@ -0,0 +1,9 @@ +Microsoft Entra Connect Sync using user accounts instead of service principals creates security vulnerabilities. Legacy user account authentication with passwords is more susceptible to credential theft and password attacks than service principal authentication with certificates. Compromised connector accounts allow threat actors to manipulate identity synchronization, create backdoor accounts, escalate privileges, or disrupt hybrid identity infrastructure. + +**Remediation action** + +- [Configure service principal authentication for Entra Connect](https://learn.microsoft.com/entra/identity/hybrid/connect/authenticate-application-id?tabs=default&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#onboard-to-application-based-authentication) +- [Remove legacy Directory Synchronization Accounts](https://learn.microsoft.com/entra/identity/hybrid/connect/authenticate-application-id?tabs=default&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#remove-a-legacy-service-account) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md new file mode 100644 index 000000000000..a16520f6611d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24572.md @@ -0,0 +1,16 @@ +Without device enrollment notifications, users might be unaware that their device has been enrolled in Intune—particularly in cases of unauthorized or unexpected enrollment. This lack of visibility can delay user reporting of suspicious activity and increase the risk of unmanaged or compromised devices gaining access to corporate resources. Attackers who obtain user credentials or exploit self-enrollment flows can silently onboard devices, bypassing user scrutiny and enabling data exposure or lateral movement. + +Enrollment notifications provide users with improved visibility into device onboarding activity. They help detect unauthorized enrollment, reinforce secure provisioning practices, and support Zero Trust principles of visibility, verification, and user engagement. + +**Remediation action** + +Configure Intune enrollment notifications to alert users when their device is enrolled and reinforce secure onboarding practices: +- [Set up enrollment notifications in Intune](https://learn.microsoft.com/intune/intune-service/enrollment/enrollment-notifications?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + + + + + + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md new file mode 100644 index 000000000000..d769655b0fae --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24573.md @@ -0,0 +1,11 @@ +Without properly configured and assigned Intune security baselines for Windows, devices remain vulnerable to a wide array of attack vectors that threat actors exploit to gain persistence and escalate privileges. Adversaries leverage default Windows configurations that lack hardened security settings to perform lateral movement using techniques like credential dumping, privilege escalation via unpatched vulnerabilities, and exploitation of weak authentication mechanisms. In the absence of enforced security baselines, threat actors can bypass critical security controls, maintain persistence through registry modifications, and exfiltrate sensitive data through unmonitored channels. Failing to implement a defense-in-depth strategy makes devices easier to exploit as attackers progress through the attack chain—from initial access to data exfiltration—ultimately compromising the organization’s security posture and increasing the risk of compliance violations. + +Applying security baselines ensures Windows devices are configured with hardened settings, reducing attack surface, enforcing defense-in-depth, and supporting Zero Trust by standardizing security controls across the environment. + +**Remediation action** + +Configure and assign Intune security baselines to Windows devices to enforce standardized security settings and monitor compliance: +- [Deploy security baselines to help secure Windows devices](https://learn.microsoft.com/intune/intune-service/protect/security-baselines-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-profile-for-a-security-baseline) +- [Monitor security baseline compliance](https://learn.microsoft.com/intune/intune-service/protect/security-baselines-monitor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md new file mode 100644 index 000000000000..4f43396f391a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.md @@ -0,0 +1,14 @@ +If Intune profiles for Attack Surface Reduction (ASR) rules aren't properly configured and assigned to Windows devices, threat actors can exploit unprotected endpoints to execute obfuscated scripts and invoke Win32 API calls from Office macros. These techniques are commonly used in phishing campaigns and malware delivery, allowing attackers to bypass traditional antivirus defenses and gain initial access. Once inside, attackers escalate privileges, establish persistence, and move laterally across the network. Without ASR enforcement, devices remain vulnerable to script-based attacks and macro abuse, undermining the effectiveness of Microsoft Defender and exposing sensitive data to exfiltration. This gap in endpoint protection increases the likelihood of successful compromise and reduces the organization’s ability to contain and respond to threats. + +Enforcing ASR rules helps block common attack techniques such as script-based execution and macro abuse, reducing the risk of initial compromise and supporting Zero Trust by hardening endpoint defenses. + +**Remediation action** + +Use Intune to deploy **Attack Surface Reduction Rules** profiles for Windows devices to block high-risk behaviors and strengthen endpoint protection: +- [Configure Intune profiles for Attack Surface Reduction Rules](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-asr-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#devices-managed-by-intune) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +For more information, see: +- [Attack surface reduction rules reference](https://learn.microsoft.com/defender-endpoint/attack-surface-reduction-rules-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in the Microsoft Defender documentation. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 new file mode 100644 index 000000000000..50a4ff1efbf2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24574.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA24574 { + <# + .SYNOPSIS + Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $Win10MdmSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $Win10MdmSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows ASR policies found' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $ASRPolicies = $Win10MdmSensePolicies | Where-Object { + $settingIds = $_.settings.settingInstance.settingDefinitionId + $settingIds -contains 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules' + } + + if (-not $ASRPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Attack Surface Reduction policies found' -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $ObfuscatedScriptPolicies = $ASRPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $settingId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts' + $matchingSetting = $children | Where-Object { $_.settingDefinitionId -eq $settingId } + $value = $matchingSetting.choiceSettingValue.value + $value -like '*_block' -or $value -like '*_warn' + } + + $Win32MacroPolicies = $ASRPolicies | Where-Object { + $children = $_.settings.settingInstance.groupSettingCollectionValue.children + $settingId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros' + $matchingSetting = $children | Where-Object { $_.settingDefinitionId -eq $settingId } + $value = $matchingSetting.choiceSettingValue.value + $value -like '*_block' -or $value -like '*_warn' + } + + $AssignedObfuscated = $ObfuscatedScriptPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + $AssignedWin32Macro = $Win32MacroPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + + if ($AssignedObfuscated -and $AssignedWin32Macro) { + $Status = 'Passed' + $Result = 'ASR policies are configured and assigned with required rules (obfuscated scripts and Win32 API calls from macros)' + } elseif ($AssignedObfuscated -or $AssignedWin32Macro) { + $Status = 'Failed' + $Result = "ASR policies partially configured. Missing: $(if (-not $AssignedObfuscated) { 'obfuscated scripts rule ' })$(if (-not $AssignedWin32Macro) { 'Win32 API calls rule' })" + } else { + $Status = 'Failed' + $Result = 'ASR policies found but not properly configured or assigned for required rules' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24574' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Attack Surface Reduction rules are applied to Windows devices to prevent exploitation of vulnerable system components' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md new file mode 100644 index 000000000000..05f917a22a85 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.md @@ -0,0 +1,13 @@ +If policies for Microsoft Defender Antivirus aren't properly configured and assigned in Intune, threat actors can exploit unprotected endpoints to execute malware, disable antivirus protections, and persist within the environment. Without enforced antivirus policies, devices operate with outdated definitions, disabled real-time protection, or misconfigured scan schedules. These gaps allow attackers to bypass detection, escalate privileges, and move laterally across the network. The absence of antivirus enforcement undermines device compliance, increases exposure to zero-day threats, and can result in regulatory noncompliance. Attackers leverage these weaknesses to maintain persistence and evade detection, especially in environments lacking centralized policy enforcement. + +Enforcing Defender Antivirus policies ensures consistent protection against malware, supports real-time threat detection, and aligns with Zero Trust by maintaining a secure and compliant endpoint posture. + +**Remediation action** + +Configure and assign Intune policies for Microsoft Defender Antivirus to enforce real-time protection, maintain up-to-date definitions, and reduce exposure to malware: + +- [Configure Intune policies to manage Microsoft Defender Antivirus](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-antivirus-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#windows) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 new file mode 100644 index 000000000000..a86aafd31fb9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24575.ps1 @@ -0,0 +1,54 @@ +function Invoke-CippTestZTNA24575 { + <# + .SYNOPSIS + Defender Antivirus policies protect Windows devices from malware + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $MdmSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $MdmSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Defender policies found' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $AVPolicies = $MdmSensePolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAntivirus' + } + + if (-not $AVPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Defender Antivirus policies found' -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + return + } + + $AssignedPolicies = $AVPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "Windows Defender Antivirus policies are configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Windows Defender Antivirus policies exist but are not assigned. Found $($AVPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24575' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Defender Antivirus policies protect Windows devices from malware' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md new file mode 100644 index 000000000000..a9852ccab073 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.md @@ -0,0 +1,14 @@ +If endpoint analytics isn't enabled, threat actors can exploit gaps in device health, performance, and security posture. Without the visibility Endpoint analytics brings, it can be difficult for an organization to detect indicators such as anomalous device behavior, delayed patching, or configuration drift. These gaps allow attackers to establish persistence, escalate privileges, and move laterally across the environment. An absence of analytics data can impede rapid detection and response, allowing attackers to exploit unmonitored endpoints for command and control, data exfiltration, or further compromise. + +Enabling Endpoint Analytics provides visibility into device health and behavior, helping organizations detect risks, respond quickly to threats, and maintain a strong Zero Trust posture. + +**Remediation action** + +Enroll Windows devices into Endpoint Analytics in Intune to monitor device health and identify risks: +- [Enroll Intune devices into Endpoint analytics](https://learn.microsoft.com/intune/analytics/enroll-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Endpoint analytics?](https://learn.microsoft.com/intune/analytics?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 new file mode 100644 index 000000000000..eac9abcb2266 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24576.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24576 { + <# + .SYNOPSIS + Endpoint Analytics is enabled to help identify risks on Windows devices + #> + param($Tenant) + + $TestId = 'ZTNA24576' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $WindowsHealthMonitoringPolicies = @($DeviceConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.windowsHealthMonitoringConfiguration' + }) + + $AssignedPolicies = @($WindowsHealthMonitoringPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedPolicies.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ An Endpoint analytics policy is created and assigned.`n`n" + } else { + $ResultMarkdown = "❌ Endpoint analytics policy is not created or not assigned.`n`n" + } + + if ($WindowsHealthMonitoringPolicies.Count -gt 0) { + $ResultMarkdown += "## Endpoint Analytics Policies`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $WindowsHealthMonitoringPolicies) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + } else { + $ResultMarkdown += "No Endpoint Analytics policies found in this tenant.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Endpoint Analytics is enabled to help identify risks on Windows devices' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md new file mode 100644 index 000000000000..1503d4f1d531 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24690.md @@ -0,0 +1,11 @@ +If macOS update policies aren’t properly configured and assigned, threat actors can exploit unpatched vulnerabilities in macOS devices within the organization. Without enforced update policies, devices remain on outdated software versions, increasing the attack surface for privilege escalation, remote code execution, or persistence techniques. Threat actors can leverage these weaknesses to gain initial access, escalate privileges, and move laterally within the environment. If policies exist but aren’t assigned to device groups, endpoints remain unprotected, and compliance gaps go undetected. This can result in widespread compromise, data exfiltration, and operational disruption. + +Enforcing macOS update policies ensures devices receive timely patches, reducing the risk of exploitation and supporting Zero Trust by maintaining a secure, compliant device fleet. + +**Remediation action** + +Configure and assign macOS update policies in Intune to enforce timely patching and reduce risk from unpatched vulnerabilities: +- [Manage macOS software updates in Intune](https://learn.microsoft.com/intune/intune-service/protect/software-updates-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md new file mode 100644 index 000000000000..8bb2009ede0f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.md @@ -0,0 +1,11 @@ +If Microsoft Defender Antivirus policies aren't properly configured and assigned to macOS devices in Intune, attackers can exploit unprotected endpoints to execute malware, disable antivirus protections, and persist in the environment. Without enforced policies, devices run outdated definitions, lack real-time protection, or have misconfigured scan schedules, increasing the risk of undetected threats and privilege escalation. This enables lateral movement across the network, credential harvesting, and data exfiltration. The absence of antivirus enforcement undermines device compliance, increases exposure of endpoints to zero-day threats, and can result in regulatory noncompliance. Attackers use these gaps to maintain persistence and evade detection, especially in environments without centralized policy enforcement. + +Enforcing Defender Antivirus policies ensures that macOS devices are consistently protected against malware, supports real-time threat detection, and aligns with Zero Trust by maintaining a secure and compliant endpoint posture. + +**Remediation action** + +Use Intune to configure and assign Microsoft Defender Antivirus policies for macOS devices to enforce real-time protection, maintain up-to-date definitions, and reduce exposure to malware: +- [Configure Intune policies to manage Microsoft Defender Antivirus](https://learn.microsoft.com/intune/intune-service/protect/endpoint-security-antivirus-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#macos) +- [Assign policies in Intune](https://learn.microsoft.com/intune/intune-service/configuration/device-profile-assign?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assign-a-policy-to-users-or-groups) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 new file mode 100644 index 000000000000..75a6b173b5ae --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24784.ps1 @@ -0,0 +1,54 @@ +function Invoke-CippTestZTNA24784 { + <# + .SYNOPSIS + Defender Antivirus policies protect macOS devices from malware + #> + param($Tenant) + #Tested - Device + + try { + $ConfigPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $MdmMacOSSensePolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*macOS*' -and + $_.technologies -like '*mdm*' -and + $_.technologies -like '*microsoftSense*' + } + + if (-not $MdmMacOSSensePolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No macOS Defender policies found' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AVPolicies = $MdmMacOSSensePolicies | Where-Object { + $_.templateReference.templateFamily -eq 'endpointSecurityAntivirus' + } + + if (-not $AVPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Defender Antivirus policies for macOS found' -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + return + } + + $AssignedPolicies = $AVPolicies | Where-Object { + $_.assignments -and $_.assignments.Count -gt 0 + } + + if ($AssignedPolicies) { + $Status = 'Passed' + $Result = "Defender Antivirus policies for macOS are configured and assigned. Found $($AssignedPolicies.Count) assigned policy/policies" + } else { + $Status = 'Failed' + $Result = "Defender Antivirus policies for macOS exist but are not assigned. Found $($AVPolicies.Count) unassigned policy/policies" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA24784' -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Defender Antivirus policies protect macOS devices from malware' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Device' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md new file mode 100644 index 000000000000..36309a2e234e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24794.md @@ -0,0 +1,10 @@ +If Terms and Conditions policies aren't configured and assigned in Intune, users can access corporate resources without agreeing to required legal, security, or usage terms. This omission exposes the organization to compliance risks, legal liabilities, and potential misuse of resources. + +Enforcing Terms and Conditions ensures users acknowledge and accept company policies before accessing sensitive data or systems, supporting regulatory compliance and responsible resource use. + +**Remediation action** + +Create and assign Terms and Conditions policies in Intune to require user acceptance before granting access to corporate resources: +- [Create terms and conditions policy](https://learn.microsoft.com/intune/intune-service/enrollment/terms-and-conditions-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md new file mode 100644 index 000000000000..33d8505d0aa4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24802.md @@ -0,0 +1,15 @@ +If device cleanup rules aren't configured in Intune, stale or inactive devices can remain visible in the tenant indefinitely. This leads to cluttered device lists, inaccurate reporting, and reduced visibility into the active device landscape. Unused devices might retain access credentials or tokens, increasing the risk of unauthorized access or misinformed policy decisions. + +Device cleanup rules automatically hide inactive devices from admin views and reports, improving tenant hygiene and reducing administrative burden. This supports Zero Trust by maintaining an accurate and trustworthy device inventory while preserving historical data for audit or investigation. + +**Remediation action** + +Configure Intune device cleanup rules to automatically hide inactive devices from the tenant: +- [Create a device cleanup rule](https://learn.microsoft.com/intune/intune-service/fundamentals/device-cleanup-rules?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-to-create-a-device-cleanup-rule) + +For more information, see: +- [Using Intune device cleanup rules](https://techcommunity.microsoft.com/blog/devicemanagementmicrosoft/using-intune-device-cleanup-rules-updated-version/3760854) *on the Microsoft Tech Community blog* + + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md new file mode 100644 index 000000000000..846bef7a09b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24823.md @@ -0,0 +1,12 @@ +If the Intune Company Portal branding isn't configured to represent your organization’s details, users can encounter a generic interface and lack direct support information. This reduces user trust, increases support overhead, and can lead to confusion or delays in resolving issues. + +Customizing the Company Portal with your organization’s branding and support contact details improves user trust, streamlines support, and reinforces the legitimacy of device management communications. + + +**Remediation action** + +Configure the Intune Company Portal with your organization’s branding and support contact information to enhance user experience and reduce support overhead: +- [Configure the Intune Company Portal](https://learn.microsoft.com/intune/intune-service/apps/company-portal-app?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md new file mode 100644 index 000000000000..355aaf0621c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24824.md @@ -0,0 +1,15 @@ +If Microsoft Entra Conditional Access policies don't enforce device compliance, users can connect to corporate resources from devices that don't meet security standards. This exposes sensitive data to risks like malware, unauthorized access, and regulatory noncompliance. Without controls like encryption enforcement, device health checks, and access restrictions, threat actors can exploit noncompliant devices to bypass security measures and maintain persistence. + + +Requiring device compliance in Conditional Access policies ensures only trusted and secure devices can access corporate resources. This supports Zero Trust by enforcing access decisions based on device health and compliance posture. + +**Remediation action** + +Configure Conditional Access policies in Microsoft Entra to require device compliance before granting access to corporate resources: +- [Create a device compliance-based Conditional Access policy](https://learn.microsoft.com/intune/intune-service/protect/create-conditional-access-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Conditional Access?](https://learn.microsoft.com/entra/identity/conditional-access/overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Integrate device compliance results with Conditional Access](https://learn.microsoft.com/intune/intune-service/protect/device-compliance-get-started?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#integrate-with-conditional-access) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md new file mode 100644 index 000000000000..a13c08cc8982 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24827.md @@ -0,0 +1,15 @@ +If Microsoft Entra Conditional Access policies aren't combined with app protection controls, users can connect to corporate resources through unmanaged or unsecured applications. This exposes sensitive data to risks such as data leakage, unauthorized access, and regulatory noncompliance. Without safeguards like app-level data protection, access restrictions, and data loss prevention, threat actors can exploit unprotected apps to bypass security controls and compromise organizational data. + +Enforcing Intune app protection policies within Conditional Access ensures only trusted apps can access corporate data. This supports Zero Trust by enforcing access decisions based on app trust, data containment, and usage restrictions. + +**Remediation action** + +Configure app-based Conditional Access policies in Microsoft Entra and Intune to require app protection for access to corporate resources: +- [Set up app-based Conditional Access policies with Intune](https://learn.microsoft.com/intune/intune-service/protect/app-based-conditional-access-intune-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +For more information, see: +- [What is Conditional Access?](https://learn.microsoft.com/entra/identity/conditional-access/overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn about app-based Conditional Access policies with Intune](https://learn.microsoft.com/intune/intune-service/protect/app-based-conditional-access-intune?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md new file mode 100644 index 000000000000..be254bba4f88 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.md @@ -0,0 +1,15 @@ +If Wi-Fi profiles aren't properly configured and assigned, users can connect insecurely or fail to connect to trusted networks, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. + +Centrally managing Wi-Fi profiles for iOS devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for iOS/iPadOS devices to enforce authentication and encryption standards: + +- [Deploy Wi-Fi profiles to devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: +- [Review the available Wi-Fi settings for iOS and iPadOS devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-ios?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 new file mode 100644 index 000000000000..0ea86eb3dcef --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24839.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA24839 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect iOS devices from unauthorized network access + #> + param($Tenant) + #Tested - Device + + $TestId = 'ZTNA24839' + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + return + } + + $iOSWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.iosWiFiConfiguration' }) + $CompliantIosWifiConfProfiles = @($iOSWifiConfProfiles | Where-Object { $_.wiFiSecurityType -in @('wpa2Enterprise', 'wpaEnterprise') }) + $AssignedCompliantProfiles = @($CompliantIosWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for iOS exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for iOS exists or none are assigned.`n`n" + } + + if ($iOSWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## iOS WiFi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $iOSWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No iOS WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect iOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md new file mode 100644 index 000000000000..fbfac84b107a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.md @@ -0,0 +1,18 @@ +If Wi-Fi profiles aren't properly configured and assigned, Android devices can fail to connect to secure networks or connect insecurely, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. + +Centrally managing Wi-Fi profiles for Android devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + + + +Use Intune to configure secure Wi-Fi profiles that enforce authentication and encryption standards. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for Android devices to enforce authentication and encryption standards: +- [Deploy Wi-Fi profiles to devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: +- [Review the available Wi-Fi settings for Android devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-android-enterprise?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 new file mode 100644 index 000000000000..1468e4345741 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24840.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA24840 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect Android devices from unauthorized network access + #> + param($Tenant) + + $TestId = 'ZTNA24840' + + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + return + } + + $AndroidWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.androidDeviceOwnerEnterpriseWiFiConfiguration' }) + $CompliantAndroidWifiConfProfiles = @($AndroidWifiConfProfiles | Where-Object { $_.wiFiSecurityType -eq 'wpaEnterprise' }) + $AssignedCompliantProfiles = @($CompliantAndroidWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for android exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for android exists or none are assigned.`n`n" + } + + if ($CompliantAndroidWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## Android Wi-Fi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $CompliantAndroidWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No compliant Android Enterprise WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect Android devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md new file mode 100644 index 000000000000..d0b2121a7e67 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.md @@ -0,0 +1,15 @@ +If Wi-Fi profiles aren't properly configured and assigned, macOS devices can fail to connect to secure networks or connect insecurely, exposing corporate data to interception or unauthorized access. Without centralized management, devices rely on manual configuration, increasing the risk of misconfiguration, weak authentication, and connection to rogue networks. These gaps can lead to data interception, unauthorized network access, and compliance violations. + +Centrally managing Wi-Fi profiles for macOS devices in Intune ensures secure and consistent connectivity to enterprise networks. This enforces authentication and encryption standards, simplifies onboarding, and supports Zero Trust by reducing exposure to untrusted networks. + +**Remediation action** + +Use Intune to configure and assign secure Wi-Fi profiles for macOS devices to enforce authentication and encryption standards: + +- [Configure Wi-Fi settings for macOS devices in Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-the-profile) + +For more information, see: + +- [Review the available Wi-Fi settings for macOS devices in Microsoft Intune](https://learn.microsoft.com/intune/intune-service/configuration/wi-fi-settings-macos?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 new file mode 100644 index 000000000000..5e2183226768 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24870.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA24870 { + <# + .SYNOPSIS + Secure Wi-Fi profiles protect macOS devices from unauthorized network access + #> + param($Tenant) + + $TestId = 'ZTNA24870' + #Tested - Device + + try { + $DeviceConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + if (-not $DeviceConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + return + } + + $MacOSWifiConfProfiles = @($DeviceConfigs | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.macOSWiFiConfiguration' }) + $CompliantMacOSWifiConfProfiles = @($MacOSWifiConfProfiles | Where-Object { $_.wiFiSecurityType -eq 'wpaEnterprise' }) + $AssignedCompliantProfiles = @($CompliantMacOSWifiConfProfiles | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedCompliantProfiles.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one Enterprise Wi-Fi profile for macOS exists and is assigned.`n`n" + } else { + $ResultMarkdown = "❌ No Enterprise Wi-Fi profile for macOS exists or none are assigned.`n`n" + } + + if ($CompliantMacOSWifiConfProfiles.Count -gt 0) { + $ResultMarkdown += "## macOS WiFi Configuration Profiles`n`n" + $ResultMarkdown += "| Policy Name | Wi-Fi Security Type | Assigned |`n" + $ResultMarkdown += "| :---------- | :------------------ | :------- |`n" + + foreach ($policy in $CompliantMacOSWifiConfProfiles) { + $securityType = if ($policy.wiFiSecurityType) { $policy.wiFiSecurityType } else { 'Unknown' } + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $securityType | $assigned |`n" + } + } else { + $ResultMarkdown += "No compliant macOS Enterprise WiFi configuration profiles found.`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure Wi-Fi profiles protect macOS devices from unauthorized network access' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Data' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md new file mode 100644 index 000000000000..a326a1b7c66d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24871.md @@ -0,0 +1,12 @@ +If automatic enrollment into Microsoft Defender for Endpoint isn't configured for Android devices in Intune, managed endpoints might remain unprotected against mobile threats. Without Defender onboarding, devices lack advanced threat detection and response capabilities, increasing the risk of malware, phishing, and other mobile-based attacks. Unprotected devices can bypass security policies, access corporate resources, and expose sensitive data to compromise. This gap in mobile threat defense weakens the organization's Zero Trust posture and reduces visibility into endpoint health. + +Enabling automatic Defender enrollment ensures Android devices are protected by advanced threat detection and response capabilities. This supports Zero Trust by enforcing mobile threat protection, improving visibility, and reducing exposure to unmanaged or compromised endpoints. + +**Remediation action** + +Use Intune to configure automatic enrollment into Microsoft Defender for Endpoint for Android devices to enforce mobile threat protection: + +- [Integrate Microsoft Defender for Endpoint with Intune and Onboard Devices](https://learn.microsoft.com/intune/intune-service/protect/advanced-threat-protection-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md new file mode 100644 index 000000000000..7292aeb5fa36 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25370.md @@ -0,0 +1,8 @@ +When organizations deploy Global Secure Access as their cloud-based network proxy, user traffic is routed through Microsoft's Secure Service Edge infrastructure. Without source IP restoration enabled, all authentication requests and resource access appear to originate from the proxy's IP address rather than the user's actual public egress IP. This creates a significant security gap: threat actors who compromise user credentials can authenticate from any location, and the organization's Conditional Access policies that rely on IP-based location controls become ineffective since all traffic appears to come from the same proxy addresses. Microsoft Entra ID Protection risk detections lose visibility into the original user IP address, degrading the accuracy of risk scoring algorithms that depend on geographic and network anomaly detection. Sign-in logs and audit trails no longer reflect the true source of authentication attempts, hampering incident investigation and forensic analysis. A threat actor exploiting this gap could perform credential stuffing or phishing attacks and subsequently authenticate to tenant resources while bypassing named location policies, trusted IP controls, and IP-based continuous access evaluation enforcement. The attacker's activity would blend with legitimate proxy traffic, delaying detection and extending dwell time. Enabling Global Secure Access signalling in Conditional Access restores the original user source IP to Microsoft Entra ID, Microsoft Graph, sign-in logs, and audit logs, preserving the integrity of IP-based security controls and risk assessments. + +**Remediation action** +- [Enable Global Secure Access signaling in Conditional Access](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-source-ip-restoration) + +- [Use Microsoft Graph API to enable signaling](https://learn.microsoft.com/en-us/graph/api/networkaccess-conditionalaccesssettings-update ) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md new file mode 100644 index 000000000000..4926d8187932 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25381.md @@ -0,0 +1,20 @@ +Traffic forwarding profiles are the foundational mechanism through which Global Secure Access captures and routes network traffic to Microsoft's Security Service Edge (SSE) infrastructure. Without enabling the appropriate traffic forwarding profiles, network traffic bypasses the Global Secure Access service entirely, leaving users without zero trust network access protections. + +There are three distinct profiles: the **Microsoft traffic profile** captures Microsoft Entra ID, Microsoft Graph, SharePoint Online, Exchange Online, and other Microsoft 365 workloads; the **Private Access profile** captures traffic destined for internal corporate resources configured through Quick Access or per-app access; and the **Internet Access profile** captures traffic to the public internet including non-Microsoft SaaS applications. + +When these profiles are disabled, corresponding network traffic is not tunneled through Global Secure Access, meaning security policies, web content filtering, threat protection, and Universal Continuous Access Evaluation cannot be enforced. A threat actor who compromises user credentials can access corporate resources without the security controls that Global Secure Access would otherwise apply. + +For **Private Access**, disabled profiles mean remote users cannot securely connect to internal applications, file servers, or Remote Desktop sessions through the zero-trust model—potentially forcing fallback to legacy VPN solutions with broader network access. + +For **Internet Access**, disabled profiles mean users accessing external SaaS applications, collaboration tools, or web resources are not protected by security policies, and data exfiltration to unauthorized internet destinations cannot be prevented. + +**Remediation action** + +Enable all traffic forwarding profiles to ensure comprehensive protection: + +- [Enable the Microsoft 365 traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-microsoft-profile) +- [Enable the Private Access traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-private-access-profile) +- [Enable the Internet Access traffic forwarding profile](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-internet-access-profile) +- [Understand traffic forwarding profile concepts](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-traffic-forwarding) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md new file mode 100644 index 000000000000..91d0f532b3ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25391.md @@ -0,0 +1,12 @@ +When Entra Private Network Connectors are inactive or unhealthy, threat actors operating under assume breach conditions can exploit the lack of secure remote access control. Connectors create outbound connections to the Private Access services to reach internal resources, and when these connectors fail, organizations may resort to alternatives such as exposing applications directly or using less secure access methods. This creates initial access opportunities where threat actors can target externally exposed services or leverage compromised VPN credentials. Following successful authentication through weakened access controls, threat actors can establish persistence by maintaining access to internal resources that would otherwise require connector-based authentication and authorization checks. + +The absence of functional connectors eliminates the token-based authentication and authorization performed for all Private Access scenarios, enabling lateral movement as threat actors traverse the network without the granular access controls enforced by connector groups. The service routes new requests to an available connector, and if a connector is temporarily unavailable, it does not receive traffic meaning connector failures directly disrupt zero trust network access controls. Organizations may then implement workarounds that bypass intended security boundaries, facilitating privilege escalation as threat actors exploit the degraded security posture to access resources beyond their authorization scope. + +**Remediation action** + +- [Troubleshoot connector installation and connectivity issues](https://learn.microsoft.com/en-us/entra/global-secure-access/troubleshoot-connectors) +- [Configure connectors for high availability](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-configure-connectors) +- [Monitor connector health and performance](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-connectors) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md new file mode 100644 index 000000000000..2093de19c302 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25392.md @@ -0,0 +1,10 @@ +The Private Network Connector is a key component of Entra Private Access and Entra Application Proxy. To maintain security, stability, and performance, it's essential that all connector machines run the latest software version. This check reviews every private network connector in your environment, compares the installed version with the most recent release, and flags any connectors that are not up to date. If any connector is outdated, the check will fail and provide a detailed list of current versions. + +**Remediation action** + +Please check this article which shows the release notes and latest version of the private network connector. +- [Microsoft Entra private network connector version release notes - Global Secure Access](https://learn.microsoft.com/entra/global-secure-access/reference-version-history) + +**Note**: Please be aware that not every connector update is an auto-update and some need to be applied manually. Auto-update will only work if the connector updater process on your machine is running. + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md new file mode 100644 index 000000000000..e62759175a00 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25399.md @@ -0,0 +1,8 @@ +Without Private DNS configuration, remote users cannot resolve internal domain names through Entra Private Access, forcing them to rely on public DNS servers or manually configure DNS settings. Threat actors can exploit this gap through DNS spoofing attacks, where corrupt DNS data is introduced into resolver caches, causing name servers to return incorrect IP addresses. When users attempt to access internal resources by FQDN without proper DNS resolution through the secure tunnel, threat actors can redirect users from legitimate websites to sites of the attacker's choosing. This enables credential harvesting as users authenticate to what appears to be the correct internal resource but is actually controlled by the threat actor. Through this redirection, threat actors can steal sensitive data from users who believe they are accessing legitimate internal systems. The compromised credentials can then be used to establish persistence within the environment by creating additional access paths or escalating privileges. Without centralized DNS resolution through Private Access, organizations lose visibility into DNS queries and cannot apply consistent security policies, making it harder to detect when threat actors are performing reconnaissance or establishing command and control channels through DNS tunneling. + +**Remediation action** + +- [Enable Private DNS and configure DNS suffix segments for internal domains](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-private-name-resolution) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md new file mode 100644 index 000000000000..40ef6074e0d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25405.md @@ -0,0 +1,11 @@ +Intelligent Local Access (ILA) is a key capability that merges ZTNA policy enforcement with the efficiency of routing Private Access traffic locally—instead of sending all data through the cloud backend, as is typical with standard Private Access. Using ILA is crucial; otherwise, users may turn off Private Access in the GSA client to boost performance, which would bypass all ZTNA policy controls such as user assignment or Entra ID conditional access. + +This verification ensures that private networks are set up within the Entra ID tenant. If private networks exist, the check is successful, indicating that Intelligent Local Access is being used. + +**Remediation action** + +You should consider configuring one or multiple private networks for your user sites and assigning the appropriate applications to it. This will ensure that private access traffic is routed locally when the user is located at these sites to improve performance while maintaining ZTNA policy enforcement. + +- [Enable Intelligent Local Network - Global Secure Access](https://learn.microsoft.com/en-us/entra/global-secure-access/enable-intelligent-local-access?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md new file mode 100644 index 000000000000..6c579aa18ae3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA25406.md @@ -0,0 +1,8 @@ +When the Internet Access forwarding profile remains disabled, users access internet resources without routing traffic through the Secure Web Gateway, bypassing security controls that block threats, malicious content, and unsafe destinations. Threat actors exploit this gap by delivering malware, establishing command and control connections, or exfiltrating data through unmonitored internet channels. Without sufficient controls to prevent unauthorized access, threat actors leverage compromised credentials or social engineering to establish initial access, then use unfiltered internet connectivity to download tools, establish persistence mechanisms, or communicate with external infrastructure. Organizations lose visibility into internet traffic patterns through Traffic Logs, preventing detection of data exfiltration attempts, connections to known malicious domains, or unauthorized access to external resources. The absence of identity-based access controls for internet traffic enables threat actors operating from compromised accounts to blend with normal user behavior, accessing external resources to stage attacks, download exploitation frameworks, or communicate with adversary infrastructure without triggering security alerts based on user context, device compliance, or location. + +**Remediation action** + +- [Enable Internet Access forwarding profile to route traffic through the Secure Web Gateway](https://learn.microsoft.com/en-us/entra/global-secure-access/how-to-manage-internet-access-profile) +- [Assign users and groups to the Internet Access profile to scope traffic forwarding to specific users](https://learn.microsoft.com/en-us/entra/global-secure-access/concept-traffic-forwarding) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md new file mode 100644 index 000000000000..63936bdc8ea5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21770.md @@ -0,0 +1,10 @@ +Attackers might exploit valid but inactive applications that still have elevated privileges. These applications can be used to gain initial access without raising alarm because they’re legitimate applications. From there, attackers can use the application privileges to plan or execute other attacks. Attackers might also maintain access by manipulating the inactive application, such as by adding credentials. This persistence ensures that even if their primary access method is detected, they can regain access later. + +**Remediation action** + +- [Disable privileged service principals](https://learn.microsoft.com/graph/api/serviceprincipal-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- Investigate if the application has legitimate use cases +- [If service principal doesn't have legitimate use cases, delete it](https://learn.microsoft.com/graph/api/serviceprincipal-delete?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md new file mode 100644 index 000000000000..198c587988cc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21771.md @@ -0,0 +1,10 @@ +Attackers might exploit valid but inactive applications that still have elevated privileges. These applications can be used to gain initial access without raising alarm because they're legitimate applications. From there, attackers can use the application privileges to plan or execute other attacks. Attackers might also maintain access by manipulating the inactive application, such as by adding credentials. This persistence ensures that even if their primary access method is detected, they can regain access later. + +**Remediation action** + +- [Disable inactive privileged service principals](https://learn.microsoft.com/graph/api/serviceprincipal-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- Investigate if the application has legitimate use cases. If so, [analyze if a OAuth2 permission is a better fit](https://learn.microsoft.com/entra/identity-platform/v2-app-types?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [If service principal doesn't have legitimate use cases, delete it](https://learn.microsoft.com/graph/api/serviceprincipal-delete?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md new file mode 100644 index 000000000000..ef04040bf051 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.md @@ -0,0 +1,16 @@ +Applications that use client secrets might store them in configuration files, hardcode them in scripts, or risk their exposure in other ways. The complexities of secret management make client secrets susceptible to leaks and attractive to attackers. Client secrets, when exposed, provide attackers with the ability to blend their activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application's client secret, they can escalate their privileges within the system, leading to broader access and control, depending on the permissions of the application. + +Applications and service principals that have permissions for Microsoft Graph APIs or other APIs have a higher risk because an attacker can potentially exploit these additional permissions. + +**Remediation action** + +- [Move applications away from shared secrets to managed identities and adopt more secure practices](https://learn.microsoft.com/entra/identity/enterprise-apps/migrate-applications-from-secrets?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + - Use managed identities for Azure resources + - Deploy Conditional Access policies for workload identities + - Implement secret scanning + - Deploy application authentication policies to enforce secure authentication practices + - Create a least-privileged custom role to rotate application credentials + - Ensure you have a process to triage and monitor applications + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 new file mode 100644 index 000000000000..8f874c1799bf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21772.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestZTNA21772 { + <# + .SYNOPSIS + Applications do not have client secrets configured + #> + param($Tenant) + #tested + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $AppsWithSecrets = @() + $SPsWithSecrets = @() + + if ($Apps) { + $AppsWithSecrets = $Apps | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + } + + if ($ServicePrincipals) { + $SPsWithSecrets = $ServicePrincipals | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + } + + $TotalWithSecrets = $AppsWithSecrets.Count + $SPsWithSecrets.Count + + if ($TotalWithSecrets -eq 0) { + $Status = 'Passed' + $Result = 'Applications in your tenant do not use client secrets' + } else { + $Status = 'Failed' + $Result = @" +Found $($AppsWithSecrets.Count) applications and $($SPsWithSecrets.Count) service principals with client secrets configured +## Apps with client secrets: +$(($AppsWithSecrets | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +## Service principals with client secrets: +$(($SPsWithSecrets | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21772' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Applications do not have client secrets configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md new file mode 100644 index 000000000000..7e776cd485e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.md @@ -0,0 +1,12 @@ +Certificates, if not securely stored, can be extracted and exploited by attackers, leading to unauthorized access. Long-lived certificates are more likely to be exposed over time. Credentials, when exposed, provide attackers with the ability to blend their activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application's certificate, they can escalate their privileges within the system, leading to broader access and control, depending on the privileges of the application. + +**Remediation action** + +- [Define certificate based application configuration](https://devblogs.microsoft.com/identity/app-management-policy/) +- [Define trusted certificate authorities for apps and service principals in the tenant](https://learn.microsoft.com/graph/api/resources/certificatebasedapplicationconfiguration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Define application management policies](https://learn.microsoft.com/graph/api/resources/applicationauthenticationmethodpolicy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Enforce secret and certificate standards](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/tutorial-enforce-secret-standards?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create a least-privileged custom role to rotate application credentials](https://learn.microsoft.com/entra/identity/role-based-access-control/custom-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 new file mode 100644 index 000000000000..6ce664830428 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21773.ps1 @@ -0,0 +1,88 @@ +function Invoke-CippTestZTNA21773 { + <# + .SYNOPSIS + Applications do not have certificates with expiration longer than 180 days + #> + param($Tenant) + #tested + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $MaxDate = (Get-Date).AddDays(180) + $AppsWithLongCerts = @() + $SPsWithLongCerts = @() + + if ($Apps) { + $AppsWithLongCerts = $Apps | Where-Object { + if ($_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.keyCredentials -ne '[]') { + $HasLongCert = $false + foreach ($Cred in $_.keyCredentials) { + if ($Cred.endDateTime) { + $EndDate = [datetime]$Cred.endDateTime + if ($EndDate -gt $MaxDate) { + $HasLongCert = $true + break + } + } + } + $HasLongCert + } else { + $false + } + } + } + + if ($ServicePrincipals) { + $SPsWithLongCerts = $ServicePrincipals | Where-Object { + if ($_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.keyCredentials -ne '[]') { + $HasLongCert = $false + foreach ($Cred in $_.keyCredentials) { + if ($Cred.endDateTime) { + $EndDate = [datetime]$Cred.endDateTime + if ($EndDate -gt $MaxDate) { + $HasLongCert = $true + break + } + } + } + $HasLongCert + } else { + $false + } + } + } + + $TotalWithLongCerts = $AppsWithLongCerts.Count + $SPsWithLongCerts.Count + + if ($TotalWithLongCerts -eq 0) { + $Status = 'Passed' + $Result = 'Applications in your tenant do not have certificates valid for more than 180 days' + } else { + $Status = 'Failed' + $Result = "Found $($AppsWithLongCerts.Count) applications and $($SPsWithLongCerts.Count) service principals with certificates longer than 180 days`n`n" + + if ($AppsWithLongCerts.Count -gt 0) { + $Result += "## Apps with long-lived certificates:`n`n" + $Result += ($AppsWithLongCerts | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n" + $Result += "`n`n" + } + + if ($SPsWithLongCerts.Count -gt 0) { + $Result += "## Service principals with long-lived certificates:`n`n" + $Result += ($SPsWithLongCerts | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21773' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Applications do not have certificates with expiration longer than 180 days' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md new file mode 100644 index 000000000000..71fed1768f8a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.md @@ -0,0 +1,13 @@ +Microsoft services applications that operate in your tenant are identified as service principals with the owner organization ID "f8cdef31-a31e-4b4a-93e4-5f571e91255a." When these service principals have credentials configured in your tenant, they might create potential attack vectors that threat actors can exploit. If an administrator added the credentials and they're no longer needed, they can become a target for attackers. Although less likely when proper preventive and detective controls are in place on privileged activities, threat actors can also maliciously add credentials. In either case, threat actors can use these credentials to authenticate as the service principal, gaining the same permissions and access rights as the Microsoft service application. This initial access can lead to privilege escalation if the application has high-level permissions, allowing lateral movement across the tenant. Attackers can then proceed to data exfiltration or persistence establishment through creating other backdoor credentials. + +When credentials (like client secrets or certificates) are configured for these service principals in your tenant, it means someone - either an administrator or a malicious actor - enabled them to authenticate independently within your environment. These credentials should be investigated to determine their legitimacy and necessity. If they're no longer needed, they should be removed to reduce the risk. + +If this check doesn't pass, the recommendation is to "investigate" because you need to identify and review any applications with unused credentials configured. + +**Remediation action** + +- Confirm if the credentials added are still valid use cases. If not, remove credentials from Microsoft service applications to reduce security risk. + - In the Microsoft Entra admin center, browse to **Entra ID** > **App registrations** and select the affected application. + - Go to the **Certificates & secrets** section and remove any credentials that are no longer needed. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 new file mode 100644 index 000000000000..659e9c4656b7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21774.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21774 { + <# + .SYNOPSIS + Microsoft services applications do not have credentials configured + #> + param($Tenant) + + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + #tested + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $MicrosoftTenantId = 'f8cdef31-a31e-4b4a-93e4-5f571e91255a' + + $MicrosoftSPs = $ServicePrincipals | Where-Object { + $_.appOwnerOrganizationId -eq $MicrosoftTenantId + } + + $SPsWithPasswordCreds = @() + $SPsWithKeyCreds = @() + + if ($MicrosoftSPs) { + $SPsWithPasswordCreds = $MicrosoftSPs | Where-Object { + $_.passwordCredentials -and + $_.passwordCredentials.Count -gt 0 -and + $_.passwordCredentials -ne '[]' + } + + $SPsWithKeyCreds = $MicrosoftSPs | Where-Object { + $_.keyCredentials -and + $_.keyCredentials.Count -gt 0 -and + $_.keyCredentials -ne '[]' + } + } + + $TotalWithCreds = $SPsWithPasswordCreds.Count + $SPsWithKeyCreds.Count + + if ($TotalWithCreds -eq 0) { + $Status = 'Passed' + $Result = 'No Microsoft services applications have credentials configured in the tenant' + } else { + $Status = 'Investigate' + $Result = @" +Found Microsoft services applications with credentials configured: $($SPsWithPasswordCreds.Count) with password credentials, $($SPsWithKeyCreds.Count) with key credentials +## Service principals with password credentials: +$(($SPsWithPasswordCreds | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +## Service principals with key credentials: +$(($SPsWithKeyCreds | ForEach-Object { "- $($_.displayName) (AppId: $($_.appId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21774' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Microsoft services applications do not have credentials configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md new file mode 100644 index 000000000000..b2245df4e438 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21775.md @@ -0,0 +1,10 @@ +Without proper application management policies, threat actors can exploit weak or misconfigured application credentials to get unauthorized access to organizational resources. Applications using long-lived password secrets or certificates create extended attack windows where compromised credentials stay valid for extended periods. If an application uses client secrets that are hardcoded in configuration files or have weak password requirements, threat actors can extract these credentials through different means, including source code repositories, configuration dumps, or memory analysis. If threat actors get these credentials, they can perform lateral movement within the environment, escalate privileges if the application has elevated permissions, establish persistence by creating more backdoor credentials, modify application configuration, or exfiltrate data. The lack of credential lifecycle management lets compromised credentials remain active indefinitely, giving threat actors sustained access to organizational assets and the ability to conduct data exfiltration, system manipulation, or deploy more malicious tools without detection. + +Configuring appropriate app management policies helps organizations stay ahead of these threats. + +**Remediation action** + +- [Learn how to enforce secret and certificate standards using application management policies](https://learn.microsoft.com/entra/identity/enterprise-apps/tutorial-enforce-secret-standards?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md new file mode 100644 index 000000000000..9dbaf31c5b70 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.md @@ -0,0 +1,14 @@ +Without restricted user consent settings, threat actors can exploit permissive application consent configurations to gain unauthorized access to sensitive organizational data. When user consent is unrestricted, attackers can: + +- Use social engineering and illicit consent grant attacks to trick users into approving malicious applications. +- Impersonate legitimate services to request broad permissions, such as access to email, files, calendars, and other critical business data. +- Obtain legitimate OAuth tokens that bypass perimeter security controls, making access appear normal to security monitoring systems. +- Establish persistent access to organizational resources, conduct reconnaissance across Microsoft 365 services, move laterally through connected systems, and potentially escalate privileges. + +Unrestricted user consent also limits an organization's ability to enforce centralized governance over application access, making it difficult to maintain visibility into which non-Microsoft applications have access to sensitive data. This gap creates compliance risks where unauthorized applications might violate data protection regulations or organizational security policies. + +**Remediation action** + +- [Configure restricted user consent settings](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/configure-user-consent?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) to prevent illicit consent grants by disabling user consent or limiting it to verified publishers with low-risk permissions only. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 new file mode 100644 index 000000000000..88752ce98bd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21776.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestZTNA21776 { + <# + .SYNOPSIS + User consent settings are restricted + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $Matched = $AuthPolicy | Where-Object { $_.defaultUserRolePermissions.permissionGrantPoliciesAssigned -match '^ManagePermissionGrantsForSelf' } + $NoMatch = $Matched.Count -eq 0 + $LowImpact = $Matched.defaultUserRolePermissions.permissionGrantPoliciesAssigned -contains 'managePermissionGrantsForSelf.microsoft-user-default-low' + + if ($NoMatch -or $LowImpact) { + $Status = 'Passed' + $Result = if ($NoMatch) { 'User consent is disabled' } else { 'User consent restricted to verified publishers and low-impact permissions' } + } else { + $Status = 'Failed' + $Result = 'Users can consent to any application' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21776' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User consent settings are restricted' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md new file mode 100644 index 000000000000..7f418136d2ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21777.md @@ -0,0 +1,8 @@ +App instance property lock prevents changes to sensitive properties of a multitenant application after the application is provisioned in another tenant. Without a lock, critical properties such as application credentials can be maliciously or unintentionally modified, causing disruptions, increased risk, unauthorized access, or privilege escalations. + +**Remediation action** +Enable the app instance property lock for all multitenant applications and specify the properties to lock. +- [Configure an app instance lock](https://learn.microsoft.com/en-us/entra/identity-platform/howto-configure-app-instance-property-locks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-an-app-instance-lock) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21778.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21779.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md new file mode 100644 index 000000000000..f3911fd1bf14 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.md @@ -0,0 +1,8 @@ +Microsoft ended support and security fixes for ADAL on June 30, 2023. Continued ADAL usage bypasses modern security protections available only in MSAL, including Conditional Access enforcement, Continuous Access Evaluation (CAE), and advanced token protection. ADAL applications create security vulnerabilities by using weaker legacy authentication patterns, often calling deprecated Azure AD Graph endpoints, and preventing adoption of hardened authentication flows that could mitigate future security advisories. + +**Remediation action** + +- [Migrate applications to the Microsoft Authentication Library (MSAL)](https://learn.microsoft.com/entra/identity-platform/msal-migration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 new file mode 100644 index 000000000000..cb4567b0b95f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21780.ps1 @@ -0,0 +1,38 @@ +function Invoke-CippTestZTNA21780 { + <# + .SYNOPSIS + No usage of ADAL in the tenant + #> + param($Tenant) + #tested + try { + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + return + } + + $AdalRecommendations = $Recommendations | Where-Object { + $_.recommendationType -eq 'adalToMsalMigration' + } + + if ($AdalRecommendations.Count -eq 0) { + $Status = 'Passed' + $Result = 'No ADAL applications found in the tenant' + } else { + $Status = 'Failed' + $Result = @" + Found $($AdalRecommendations.Count) ADAL applications in the tenant that need migration to MSAL. + ADAL Applications: + $(($AdalRecommendations | ForEach-Object { "- $($_.applicationDisplayName) (AppId: $($_.applicationId))" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21780' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'No usage of ADAL in the tenant' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21781.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 new file mode 100644 index 000000000000..40441197b262 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 @@ -0,0 +1,94 @@ +function Invoke-CippTestZTNA21782 { + <# + .SYNOPSIS + Privileged accounts have phishing-resistant methods registered + #> + param($Tenant) + + try { + $UserRegistrationDetails = New-CIPPDbRequest -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $RoleAssignments = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignments' + + if (-not $UserRegistrationDetails -or -not $RoleAssignments) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + return + } + + $PhishResistantMethods = @('passKeyDeviceBound', 'passKeyDeviceBoundAuthenticator', 'windowsHelloForBusiness') + + # Join user registration details with role assignments + $results = $UserRegistrationDetails | Where-Object { + $userId = $_.id + $RoleAssignments | Where-Object { $_.principalId -eq $userId } + } | ForEach-Object { + $user = $_ + $userRoles = $RoleAssignments | Where-Object { $_.principalId -eq $user.id } + $hasPhishResistant = $false + + if ($user.methodsRegistered) { + foreach ($method in $PhishResistantMethods) { + if ($user.methodsRegistered -contains $method) { + $hasPhishResistant = $true + break + } + } + } + + [PSCustomObject]@{ + id = $user.id + userDisplayName = $user.userDisplayName + roleDisplayName = ($userRoles.roleDefinitionName -join ', ') + methodsRegistered = $user.methodsRegistered + phishResistantAuthMethod = $hasPhishResistant + } + } + + $totalUserCount = $results.Length + $phishResistantPrivUsers = $results | Where-Object { $_.phishResistantAuthMethod } + $phishablePrivUsers = $results | Where-Object { !$_.phishResistantAuthMethod } + + $phishResistantPrivUserCount = $phishResistantPrivUsers.Length + + $passed = $totalUserCount -eq $phishResistantPrivUserCount + + $testResultMarkdown = if ($passed) { + "Validated that all privileged users have registered phishing resistant authentication methods.`n`n%TestResult%" + } else { + "Found privileged users that have not yet registered phishing resistant authentication methods`n`n%TestResult%" + } + + $mdInfo = "## Privileged users`n`n" + + if ($passed) { + $mdInfo = "All privileged users have registered phishing resistant authentication methods.`n`n" + } else { + $mdInfo = "Found privileged users that have not registered phishing resistant authentication methods.`n`n" + } + + $mdInfo = $mdInfo + "| User | Role Name | Phishing resistant method registered |`n" + $mdInfo = $mdInfo + "| :--- | :--- | :---: |`n" + + $userLinkFormat = 'https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/UserAuthMethods/userId/{0}/hidePreviewBanner~/true' + + $mdLines = @($phishablePrivUsers | Sort-Object userDisplayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + "|[$($_.userDisplayName)]($userLink)| $($_.roleDisplayName) | ❌ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $mdLines = @($phishResistantPrivUsers | Sort-Object userDisplayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + "|[$($_.userDisplayName)]($userLink)| $($_.roleDisplayName) | ✅ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21782' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged accounts have phishing-resistant methods registered' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md new file mode 100644 index 000000000000..4a9fec301780 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.md @@ -0,0 +1,13 @@ +Without phishing-resistant authentication methods, privileged users are more vulnerable to phishing attacks. These types of attacks trick users into revealing their credentials to grant unauthorized access to attackers. If non-phishing-resistant authentication methods are used, attackers might intercept credentials and tokens, through methods like adversary-in-the-middle attacks, undermining the security of the privileged account. + +Once a privileged account or session is compromised due to weak authentication methods, attackers might manipulate the account to maintain long-term access, create other backdoors, or modify user permissions. Attackers can also use the compromised privileged account to escalate their access even further, potentially gaining control over more sensitive systems. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths) +- [Deploy a Conditional Access policy to target privileged accounts and require phishing resistant credentials](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 new file mode 100644 index 000000000000..1749977c6dee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestZTNA21783 { + <# + .SYNOPSIS + Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + + if (-not $CAPolicies -or -not $Roles) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $PrivilegedRoles = $Roles | Where-Object { $_.isPrivileged -and $_.isBuiltIn } + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No privileged built-in roles found in tenant' -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $PhishResistantMethods = @('windowsHelloForBusiness', 'fido2', 'x509CertificateMultiFactor') + + $PhishResistantPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.grantControls.authenticationStrength -and + $_.conditions.users.includeRoles + } + + $CoveredRoleIds = $PhishResistantPolicies.conditions.users.includeRoles | Select-Object -Unique + + $UnprotectedRoles = $PrivilegedRoles | Where-Object { $_.id -notin $CoveredRoleIds } + + if ($UnprotectedRoles.Count -eq 0) { + $Status = 'Passed' + $Result = "All $($PrivilegedRoles.Count) privileged built-in roles are protected by Conditional Access policies enforcing phishing-resistant authentication" + } else { + $Status = 'Failed' + $UnprotectedCount = $UnprotectedRoles.Count + $ProtectedCount = $PrivilegedRoles.Count - $UnprotectedCount + $Result = @" +Found $UnprotectedCount unprotected privileged roles out of $($PrivilegedRoles.Count) total ($ProtectedCount protected) +## Unprotected privileged roles: +$(($UnprotectedRoles | ForEach-Object { "- $($_.displayName)" }) -join "`n") +"@ + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md new file mode 100644 index 000000000000..49b91b174bf7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.md @@ -0,0 +1,12 @@ +## Description + +Verifies that all user sign-ins are protected by Conditional Access policies requiring phishing-resistant authentication methods (Windows Hello for Business, FIDO2 security keys, or certificate-based authentication). + +**Remediation action** + +- [Configure Conditional Access policies to enforce phishing-resistant authentication](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-all-users-mfa-strength) + +- [Deploy phishing-resistant authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-deploy-phishing-resistant-passwordless-authentication) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 new file mode 100644 index 000000000000..3df5ac94ee3b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21784.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA21784 { + <# + .SYNOPSIS + All user sign in activity uses phishing-resistant authentication methods + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + # Get authentication strength policies from cache + $AuthStrengthPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationStrengths' + + # Define phishing-resistant methods + $PhishingResistantMethods = @( + 'windowsHelloForBusiness', + 'fido2', + 'x509CertificateMultiFactor', + 'certificateBasedAuthenticationPki' + ) + + # Find authentication strength policies with phishing-resistant methods + $PhishingResistantPolicies = $AuthStrengthPolicies | Where-Object { + $_.allowedCombinations | Where-Object { $PhishingResistantMethods -contains $_ } + } + + if (-not $PhishingResistantPolicies) { + $Status = 'Failed' + $Result = 'No phishing-resistant authentication strength policies found in tenant' + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + return + } + + $EnabledPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + # Find policies that apply to all users with phishing-resistant auth strength + $RelevantPolicies = $EnabledPolicies | Where-Object { + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.authenticationStrength.id -in $PhishingResistantPolicies.id) + } + + if (-not $RelevantPolicies) { + $Status = 'Failed' + $Result = 'No Conditional Access policies found requiring phishing-resistant authentication for all users' + } else { + # Check for user exclusions that create coverage gaps + $PoliciesWithExclusions = $RelevantPolicies | Where-Object { + $_.conditions.users.excludeUsers.Count -gt 0 + } + + if ($PoliciesWithExclusions.Count -gt 0) { + $Status = 'Failed' + $Result = "Found $($RelevantPolicies.Count) policies requiring phishing-resistant authentication, but $($PoliciesWithExclusions.Count) have user exclusions creating coverage gaps:`n`n" + $Result += ($PoliciesWithExclusions | ForEach-Object { "- $($_.displayName) (Excludes $($_.conditions.users.excludeUsers.Count) users)" }) -join "`n" + } else { + $Status = 'Passed' + $Result = "All users are protected by $($RelevantPolicies.Count) Conditional Access policies requiring phishing-resistant authentication:`n`n" + $Result += ($RelevantPolicies | ForEach-Object { "- $($_.displayName)" }) -join "`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21784' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All user sign in activity uses phishing-resistant authentication methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md new file mode 100644 index 000000000000..9687b064b0dc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.md @@ -0,0 +1,10 @@ +A threat actor can intercept or extract authentication tokens from memory, local storage on a legitimate device, or by inspecting network traffic. The attacker might replay those tokens to bypass authentication controls on users and devices, get unauthorized access to sensitive data, or run further attacks. Because these tokens are valid and time bound, traditional anomaly detection often fails to flag the activity, which might allow sustained access until the token expires or is revoked. + +Token protection, also called token binding, helps prevent token theft by making sure a token is usable only from the intended device. Token protection uses cryptography so that without the client device key, no one can use the token. + +**Remediation action** + +- [Deploy a Conditional Access policy to require token protection](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 new file mode 100644 index 000000000000..f44d613a07e4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21786.ps1 @@ -0,0 +1,41 @@ +function Invoke-CippTestZTNA21786 { + <# + .SYNOPSIS + User sign-in activity uses token protection + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $TokenProtectionPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.conditions.clientAppTypes.Count -eq 1 -and + $_.conditions.clientAppTypes[0] -eq 'mobileAppsAndDesktopClients' -and + $_.conditions.applications.includeApplications -contains '00000002-0000-0ff1-ce00-000000000000' -and + $_.conditions.applications.includeApplications -contains '00000003-0000-0ff1-ce00-000000000000' -and + $_.conditions.platforms.includePlatforms.Count -eq 1 -and + $_.conditions.platforms.includePlatforms -eq 'windows' -and + $_.sessionControls.secureSignInSession.isEnabled -eq $true + } + + if ($TokenProtectionPolicies.Count -gt 0) { + $Status = 'Passed' + $Result = "Found $($TokenProtectionPolicies.Count) token protection policies properly configured" + } else { + $Status = 'Failed' + $Result = 'No properly configured token protection policies found' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21786' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'User sign-in activity uses token protection' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md new file mode 100644 index 000000000000..b6a91771ec1e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.md @@ -0,0 +1,12 @@ +A threat actor or a well-intentioned but uninformed employee can create a new Microsoft Entra tenant if there are no restrictions in place. By default, the user who creates a tenant is automatically assigned the Global Administrator role. Without proper controls, this action fractures the identity perimeter by creating a tenant outside the organization's governance and visibility. It introduces risk though a shadow identity platform that can be exploited for token issuance, brand impersonation, consent phishing, or persistent staging infrastructure. Since the rogue tenant might not be tethered to the enterprise’s administrative or monitoring planes, traditional defenses are blind to its creation, activity, and potential misuse. + +**Remediation action** + +Enable the **Restrict non-admin users from creating tenants** setting. For users that need the ability to create tenants, assign them the Tenant Creator role. You can also review tenant creation events in the Microsoft Entra audit logs. + +- [Restrict member users' default permissions](https://learn.microsoft.com/entra/fundamentals/users-default-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#restrict-member-users-default-permissions) +- [Assign the Tenant Creator role](https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#tenant-creator) +- [Review tenant creation events](https://learn.microsoft.com/entra/identity/monitoring-health/reference-audit-activities?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#core-directory). Look for OperationName=="Create Company", Category == "DirectoryManagement". + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 new file mode 100644 index 000000000000..0e0a9223dc11 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21787.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21787 { + <# + .SYNOPSIS + Permissions to create new tenants are limited to the Tenant Creator role + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + return + } + + $CanCreateTenants = $AuthPolicy.defaultUserRolePermissions.allowedToCreateTenants + + if ($CanCreateTenants -eq $false) { + $Status = 'Passed' + $Result = 'Non-privileged users are restricted from creating tenants' + } else { + $Status = 'Failed' + $Result = 'Non-privileged users are allowed to create tenants' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21787' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Permissions to create new tenants are limited to the Tenant Creator role' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Privileged Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md new file mode 100644 index 000000000000..1c232fd4b0fe --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21788.md @@ -0,0 +1,13 @@ +Global Administrators with persistent access to Azure subscriptions expand the attack surface for threat actors. If a Global Administrator account is compromised, attackers can immediately enumerate resources, modify configurations, assign roles, and exfiltrate sensitive data across all subscriptions. Requiring just-in-time elevation for subscription access introduces detectable signals, slows attacker velocity, and routes high-impact operations through observable control points. + +**Remediation action** + +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +- [Ensure that privileged accounts register and use phishing resistant methods](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strengths?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-strengths.md) + +- [Deploy Conditional Access policy to target privileged accounts and require phishing resistant credentials using authentication strengths](https://learn.microsoft.com/entra/identity/conditional-access/policy-admin-phish-resistant-mfa?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +- [Monitor authentication method activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity.md) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21789.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md new file mode 100644 index 000000000000..d434ab123c6f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.md @@ -0,0 +1,11 @@ +Allowing unrestricted external collaboration with unverified organizations can increase the risk surface area of the tenant because it allows guest accounts that might not have proper security controls. Threat actors can attempt to gain access by compromising identities in these loosely governed external tenants. Once granted guest access, they can then use legitimate collaboration pathways to infiltrate resources in your tenant and attempt to gain sensitive information. Threat actors can also exploit misconfigured permissions to escalate privileges and try different types of attacks. + +Without vetting the security of organizations you collaborate with, malicious external accounts can persist undetected, exfiltrate confidential data, and inject malicious payloads. This type of exposure can weaken organizational control and enable cross-tenant attacks that bypass traditional perimeter defenses and undermine both data integrity and operational resilience. Cross-tenant settings for outbound access in Microsoft Entra provide the ability to block collaboration with unknown organizations by default, reducing the attack surface. + +**Remediation action** + +- [Cross-tenant access overview](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure cross-tenant access settings](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-default-settings) +- [Modify outbound access settings](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 new file mode 100644 index 000000000000..d9aa7a95f316 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21790.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestZTNA21790 { + <# + .SYNOPSIS + Outbound cross-tenant access settings are configured + #> + param($Tenant) + #tested + try { + $CrossTenantPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CrossTenantAccessPolicy' + + if (-not $CrossTenantPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + return + } + + $B2BCollabOutbound = $CrossTenantPolicy.b2bCollaborationOutbound.usersAndGroups.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bCollaborationOutbound.usersAndGroups.targets[0].target -eq 'AllUsers' -and + $CrossTenantPolicy.b2bCollaborationOutbound.applications.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bCollaborationOutbound.applications.targets[0].target -eq 'AllApplications' + + $B2BDirectOutbound = $CrossTenantPolicy.b2bDirectConnectOutbound.usersAndGroups.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.usersAndGroups.targets[0].target -eq 'AllUsers' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.applications.accessType -eq 'blocked' -and + $CrossTenantPolicy.b2bDirectConnectOutbound.applications.targets[0].target -eq 'AllApplications' + + if ($B2BCollabOutbound -and $B2BDirectOutbound) { + $Status = 'Passed' + $Result = 'Default cross-tenant access outbound policy blocks all access' + } else { + $Status = 'Failed' + $Result = 'Default cross-tenant access outbound policy has unrestricted access' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21790' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Outbound cross-tenant access settings are configured' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md new file mode 100644 index 000000000000..7e85d896cdfa --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.md @@ -0,0 +1,10 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your enterprise. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +Allowing external users to onboard other external users increases the risk of unauthorized access. If an attacker compromises an external user's account, they can use it to create more external accounts, multiplying their access points and making it harder to detect the intrusion. + +**Remediation action** + +- [Restrict who can invite guests to only users assigned to specific admin roles](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-invite-settings) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 new file mode 100644 index 000000000000..870346bf350b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21791.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21791 { + <# + .SYNOPSIS + Guests cannot invite other guests + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + return + } + + $AllowInvitesFrom = $AuthPolicy.allowInvitesFrom + + if ($AllowInvitesFrom -ne 'everyone') { + $Status = 'Passed' + $Result = "Tenant restricts who can invite guests (Set to: $AllowInvitesFrom)" + } else { + $Status = 'Failed' + $Result = 'Tenant allows any user including guests to invite other guests' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21791' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests cannot invite other guests' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md new file mode 100644 index 000000000000..e3d4505e32c7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.md @@ -0,0 +1,10 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your enterprise. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +External accounts with permissions to read directory object permissions provide attackers with broader initial access if compromised. These accounts allow attackers to gather additional information from the directory for reconnaissance. + +**Remediation action** + +- [Restrict guest access to their own directory objects](https://learn.microsoft.com/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-user-access) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 new file mode 100644 index 000000000000..037e94fe2a3b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21792.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestZTNA21792 { + <# + .SYNOPSIS + Guests have restricted access to directory objects + #> + param($Tenant) + #tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + return + } + + $GuestRestrictedRoleId = '2af84b1e-32c8-42b7-82bc-daa82404023b' + $GuestRoleId = $AuthPolicy.guestUserRoleId + + if ($GuestRoleId -eq $GuestRestrictedRoleId) { + $Status = 'Passed' + $Result = 'Guest user access is properly restricted' + } else { + $Status = 'Failed' + $Result = 'Guest user access is not restricted' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21792' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests have restricted access to directory objects' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'External Collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md new file mode 100644 index 000000000000..fe4e0f3ea03f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.md @@ -0,0 +1,10 @@ +Tenant Restrictions v2 (TRv2) allows organizations to enforce policies that restrict access to specified Microsoft Entra tenants, preventing unauthorized exfiltration of corporate data to external tenants using local accounts. Without TRv2, threat actors can exploit this vulnerability, which leads to potential data exfiltration and compliance violations, followed by credential harvesting if those external tenants have weaker controls. Once credentials are obtained, threat actors can gain initial access to these external tenants. TRv2 provides the mechanism to prevent users from authenticating to unauthorized tenants. Otherwise, threat actors can move laterally, escalate privileges, and potentially exfiltrate sensitive data, all while appearing as legitimate user activity that bypasses traditional data loss prevention controls focused on internal tenant monitoring. + +Implementing TRv2 enforces policies that restrict access to specified tenants, mitigating these risks by ensuring that authentication and data access are confined to authorized tenants only. + +If this check passes, your tenant has a TRv2 policy configured but more steps are required to validate the scenario end-to-end. + +**Remediation action** +- [Set up Tenant Restrictions v2](https://learn.microsoft.com/en-us/entra/external-id/tenant-restrictions-v2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 new file mode 100644 index 000000000000..3c21654fbc66 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21793.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestZTNA21793 { + <# + .SYNOPSIS + Tenant restrictions v2 policy is configured + #> + param($Tenant) + #tested + try { + $CrossTenantPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'CrossTenantAccessPolicy' + + if (-not $CrossTenantPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $TenantRestrictions = $CrossTenantPolicy.tenantRestrictions + + if (-not $TenantRestrictions) { + $Status = 'Failed' + $Result = 'Tenant Restrictions v2 policy is not configured' + } else { + $UsersBlocked = $TenantRestrictions.usersAndGroups.accessType -eq 'blocked' -and + $TenantRestrictions.usersAndGroups.targets[0].target -eq 'AllUsers' + + $AppsBlocked = $TenantRestrictions.applications.accessType -eq 'blocked' -and + $TenantRestrictions.applications.targets[0].target -eq 'AllApplications' + + if ($UsersBlocked -and $AppsBlocked) { + $Status = 'Passed' + $Result = 'Tenant Restrictions v2 policy is properly configured' + } else { + $Status = 'Failed' + $Result = 'Tenant Restrictions v2 policy is configured but not properly restricting all users and applications' + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21793' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Tenant restrictions v2 policy is configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md new file mode 100644 index 000000000000..7e00a1e3cb84 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21795.md @@ -0,0 +1,16 @@ +Legacy authentication protocols such as basic authentication for SMTP and IMAP don't support modern security features like multifactor authentication (MFA), which is crucial for protecting against unauthorized access. This lack of protection makes accounts using these protocols vulnerable to password-based attacks, and provides attackers with a means to gain initial access using stolen or guessed credentials. + +When an attacker successfully gains unauthorized access to credentials, they can use them to access linked services, using the weak authentication method as an entry point. Attackers who gain access through legacy authentication might make changes to Microsoft Exchange, such as configuring mail forwarding rules or changing other settings, allowing them to maintain continued access to sensitive communications. + +Legacy authentication also provides attackers with a consistent method to reenter a system using compromised credentials without triggering security alerts or requiring reauthentication. + +From there, attackers can use legacy protocols to access other systems that are accessible via the compromised account, facilitating lateral movement. Attackers using legacy protocols can blend in with legitimate user activities, making it difficult for security teams to distinguish between normal usage and malicious behavior. + +**Remediation action** + +- [Exchange protocols can be deactivated in Exchange](https://learn.microsoft.com/exchange/clients-and-mobile-in-exchange-online/disable-basic-authentication-in-exchange-online?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Legacy authentication protocols can be blocked with Conditional Access](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Sign-ins using legacy authentication workbook to help determine whether it's safe to turn off legacy authentication](https://learn.microsoft.com/entra/identity/monitoring-health/workbook-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md new file mode 100644 index 000000000000..cef984099328 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.md @@ -0,0 +1,14 @@ +Legacy authentication protocols such as basic authentication for SMTP and IMAP don't support modern security features like multifactor authentication (MFA), which is crucial for protecting against unauthorized access. This lack of protection makes accounts using these protocols vulnerable to password-based attacks, and provides attackers with a means to gain initial access using stolen or guessed credentials. + +When an attacker successfully gains unauthorized access to credentials, they can use them to access linked services, using the weak authentication method as an entry point. Attackers who gain access through legacy authentication might make changes to Microsoft Exchange, such as configuring mail forwarding rules or changing other settings, allowing them to maintain continued access to sensitive communications. + +Legacy authentication also provides attackers with a consistent method to reenter a system using compromised credentials without triggering security alerts or requiring reauthentication. + +From there, attackers can use legacy protocols to access other systems that are accessible via the compromised account, facilitating lateral movement. Attackers using legacy protocols can blend in with legitimate user activities, making it difficult for security teams to distinguish between normal usage and malicious behavior. + +**Remediation action** + +- [Deploy a Conditional Access policy to Block legacy authentication](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-legacy-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 new file mode 100644 index 000000000000..88695f31b7c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21796.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21796 { + <# + .SYNOPSIS + Block legacy authentication policy is configured + #> + param($Tenant) + #tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $BlockPolicies = $CAPolicies | Where-Object { + $_.grantControls.builtInControls -contains 'block' -and + $_.conditions.clientAppTypes -contains 'exchangeActiveSync' -and + $_.conditions.clientAppTypes -contains 'other' + } + + $EnabledBlockPolicies = $BlockPolicies | Where-Object { + $_.conditions.users.includeUsers -contains 'All' -and + $_.state -eq 'enabled' + } + + if ($EnabledBlockPolicies.Count -ge 1) { + $Status = 'Passed' + $Result = "Found $($EnabledBlockPolicies.Count) properly configured policies blocking legacy authentication:`n $($EnabledBlockPolicies | ForEach-Object { "- $($_.displayName)" } | Out-String) " + } elseif ($BlockPolicies.Count -ge 1) { + $Status = 'Failed' + $Result = "Policies to block legacy authentication found but not properly configured or enabled: `n $($BlockPolicies | ForEach-Object { "- $($_.displayName)" } | Out-String) " + } else { + $Status = 'Failed' + $Result = 'No conditional access policies to block legacy authentication found' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21796' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Block legacy authentication policy is configured' -UserImpact 'High' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md new file mode 100644 index 000000000000..5f34835602c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.md @@ -0,0 +1,13 @@ +Assume high risk users are compromised by threat actors. Without investigation and remediation, threat actors can execute scripts, deploy malicious applications, or manipulate API calls to establish persistence, based on the potentially compromised user's permissions. Threat actors can then exploit misconfigurations or abuse OAuth tokens to move laterally across workloads like documents, SaaS applications, or Azure resources. Threat actors can gain access to sensitive files, customer records, or proprietary code and exfiltrate it to external repositories while maintaining stealth through legitimate cloud services. Finally, threat actors might disrupt operations by modifying configurations, encrypting data for ransom, or using the stolen information for further attacks, resulting in financial, reputational, and regulatory consequences. + +Organizations using passwords can rely on password reset to automatically remediate risky users. + +Organizations using passwordless credentials already mitigate most risk events that accrue to user risk levels, thus the volume of risky users should be considerably lower. Risky users in an organization that uses passwordless credentials must be blocked from access until the user risk is investigated and remediated. + +**Remediation action** + +- [Deploy a Conditional Access policy to require a secure password change for elevated user risk](https://learn.microsoft.com/entra/identity/conditional-access/policy-risk-based-user?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Use Microsoft Entra ID Protection to [investigate risk further](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 new file mode 100644 index 000000000000..b35dd6b651c5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21797.ps1 @@ -0,0 +1,150 @@ +function Invoke-CippTestZTNA21797 { + <# + .SYNOPSIS + Restrict access to high risk users + #> + param($Tenant) + #tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $authMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $allCAPolicies -or -not $authMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $caPasswordChangePolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + $_.grantControls.builtInControls -contains 'passwordChange' -and + $_.state -eq 'enabled' + } + + $caBlockPolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + $_.grantControls.builtInControls -contains 'block' -and + $_.state -eq 'enabled' + } + + $inactiveCAPolicies = $allCAPolicies | Where-Object { + $_.conditions.userRiskLevels -contains 'high' -and + ($_.grantControls.builtInControls -contains 'passwordChange' -or $_.grantControls.builtInControls -contains 'block') -and + $_.state -ne 'enabled' + } + + $passwordlessEnabled = $false + $passwordlessAuthMethods = @() + + if ($authMethodsPolicy.authenticationMethodConfigurations) { + foreach ($method in $authMethodsPolicy.authenticationMethodConfigurations) { + $isPasswordless = $false + $methodName = $method.id + $methodState = $method.state + $additionalInfo = '' + + if ($method.id -in @('fido2')) { + $isPasswordless = ($method.state -eq 'enabled') + } + + if ($method.id -eq 'x509Certificate') { + if ($method.state -eq 'enabled' -and $method.x509CertificateAuthenticationDefaultMode -eq 'x509CertificateMultiFactor') { + $isPasswordless = $true + $additionalInfo = ' (Mode: x509CertificateMultiFactor)' + } + } + + if ($isPasswordless) { + $passwordlessEnabled = $true + $passwordlessAuthMethods += [PSCustomObject]@{ + Name = $methodName + State = $methodState + AdditionalInfo = $additionalInfo + } + } + } + } + + $result = $false + if ((-not $passwordlessEnabled -and ($caPasswordChangePolicies.Count + $caBlockPolicies.Count -gt 0)) -or + ($passwordlessEnabled -and $caBlockPolicies.Count -gt 0)) { + $result = $true + } + + $testResultMarkdown = '' + + if ($result) { + $testResultMarkdown = 'Policies to restrict access for high risk users are properly implemented.' + } else { + if ($passwordlessEnabled -and $caBlockPolicies.Count -eq 0) { + $testResultMarkdown = 'Passwordless authentication is enabled, but no policies to block high risk users are configured.' + } else { + $testResultMarkdown = 'No policies found to protect against high risk users.' + } + } + + $mdInfo = "`n## Passwordless Authentication Methods allowed in tenant`n`n" + + if ($passwordlessAuthMethods.Count -gt 0) { + $mdInfo += "| Authentication Method Name | State | Additional Info |`n" + $mdInfo += "| :------------------------ | :---- | :-------------- |`n" + foreach ($method in $passwordlessAuthMethods) { + $mdInfo += "| $($method.Name) | $($method.State) | $($method.AdditionalInfo) |`n" + } + } else { + $mdInfo += "No passwordless authentication methods are enabled.`n" + } + + $mdInfo += "`n## Conditional Access Policies targeting high risk users`n`n" + + $allEnabledHighRiskPolicies = @($caPasswordChangePolicies) + @($caBlockPolicies) + + if ($allEnabledHighRiskPolicies.Count -gt 0) { + $mdInfo += "| Conditional Access Policy Name | Status | Conditions |`n" + $mdInfo += "| :--------------------- | :----- | :--------- |`n" + + foreach ($policy in $allEnabledHighRiskPolicies) { + $conditions = 'User Risk Level: High' + if ($policy.grantControls.builtInControls -contains 'passwordChange') { + $conditions += ', Control: Password Change' + } + if ($policy.grantControls.builtInControls -contains 'block') { + $conditions += ', Control: Block' + } + $mdInfo += "| $($policy.displayName) | Enabled | $conditions |`n" + } + } + + if ($inactiveCAPolicies.Count -gt 0) { + if ($allEnabledHighRiskPolicies.Count -eq 0) { + $mdInfo += "No conditional access policies targeting high risk users found.`n`n" + $mdInfo += "### Inactive policies targeting high risk users (not contributing to security posture):`n`n" + $mdInfo += "| Conditional Access Policy Name | Status | Conditions |`n" + $mdInfo += "| :--------------------- | :----- | :--------- |`n" + } + + foreach ($policy in $inactiveCAPolicies) { + $conditions = 'User Risk Level: High' + if ($policy.grantControls.builtInControls -contains 'passwordChange') { + $conditions += ', Control: Password Change' + } + if ($policy.grantControls.builtInControls -contains 'block') { + $conditions += ', Control: Block' + } + $status = if ($policy.state -eq 'enabledForReportingButNotEnforced') { 'Report-only' } else { 'Disabled' } + $mdInfo += "| $($policy.displayName) | $status | $conditions |`n" + } + } elseif ($allEnabledHighRiskPolicies.Count -eq 0) { + $mdInfo += "No conditional access policies targeting high risk users found.`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + $Status = if ($result) { 'Passed' } else { 'Failed' } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status $Status -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21797' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict access to high risk users' -UserImpact 'High' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md new file mode 100644 index 000000000000..3c34e31de3ed --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21798.md @@ -0,0 +1,8 @@ +If you don't enable ID Protection notifications, your organization loses critical real-time alerts when threat actors compromise user accounts or conduct reconnaissance activities. When Microsoft Entra ID Protection detects accounts at risk, it sends email alerts with **Users at risk detected** as the subject and links to the **Users flagged for risk** report. Without these notifications, security teams remain unaware of active threats, allowing threat actors to maintain persistence in compromised accounts without being detected. You can feed these risks into tools like Conditional Access to make access decisions or send them to a security information and event management (SIEM) tool for investigation and correlation. Threat actors can use this detection gap to conduct lateral movement activities, privilege escalation attempts, or data exfiltration operations while administrators remain unaware of the ongoing compromise. The delayed response enables threat actors to establish more persistence mechanisms, change user permissions, or access sensitive resources before you can fix the issue. Without proactive notification of risk detections, organizations must rely solely on manual monitoring of risk reports, which significantly increases the time it takes to detect and respond to identity-based attacks. + +**Remediation action** + +- [Configure users at risk detected alerts](https://learn.microsoft.com/en-us/entra/id-protection/howto-identity-protection-configure-notifications?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-users-at-risk-detected-alerts) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md new file mode 100644 index 000000000000..68af01ead6db --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.md @@ -0,0 +1,8 @@ +When high-risk sign-ins are not properly restricted through Conditional Access policies, organizations expose themselves to security vulnerabilities. Threat actors can exploit these gaps for initial access through compromised credentials, credential stuffing attacks, or anomalous sign-in patterns that Microsoft Entra ID Protection identifies as risky behaviors. Without appropriate restrictions, threat actors who successfully authenticate during high-risk scenarios can perform privilege escalation by misusing the authenticated session to access sensitive resources, modify security configurations, or conduct reconnaissance activities within the environment. Once threat actors establish access through uncontrolled high-risk sign-ins, they can achieve persistence by creating additional accounts, installing backdoors, or modifying authentication policies to maintain long-term access to the organization's resources. The unrestricted access enables threat actors to conduct lateral movement across systems and applications using the authenticated session, potentially accessing sensitive data stores, administrative interfaces, or critical business applications. Finally, threat actors achieve impact through data exfiltration, or compromise business-critical systems while maintaining plausible deniability by exploiting the fact that their risky authentication was not properly challenged or blocked. + +**Remediation action** + +- [Deploy a Conditional Access policy to require MFA for elevated sign-in risk](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-risk-based-sign-in?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 new file mode 100644 index 000000000000..0fd5396bd764 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21799.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21799 { + <# + .SYNOPSIS + Restrict high risk sign-ins + #> + param($Tenant) + #tested + try { + $authMethodPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies -or -not $authMethodPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $matchedPolicies = $null + + if (($authMethodPolicy.authenticationMethodConfigurations.state -eq 'enabled').count -gt 0) { + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.signInRiskLevels -eq 'high' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.builtInControls -contains 'block' -or $_.grantControls.builtInControls -contains 'mfa' -or $null -ne $_.grantControls.authenticationStrength) -and + ($_.state -eq 'enabled') + } + } else { + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.signInRiskLevels -eq 'high' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.grantControls.builtInControls -contains 'block') -and + ($_.state -eq 'enabled') + } + } + + $testResultMarkdown = '' + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'All high-risk sign-in attempts are mitigated by Conditional Access policies enforcing appropriate controls.' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Some high-risk sign-in attempts are not adequately mitigated by Conditional Access policies.' + } + + $reportTitle = 'Conditional Access Policies targeting high-risk sign-in attempts' + $tableRows = '' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Grant Controls | Target Users |`n" + $mdInfo += "| :---------- | :------------- | :----------- |`n" + + foreach ($policy in $matchedPolicies) { + $grantControls = switch ($policy.grantControls) { + { $_.builtInControls -contains 'block' } { + 'Block Access' + } + { $_.builtInControls -contains 'mfa' } { + 'Require Multi-Factor Authentication' + } + { $null -ne $_.authenticationStrength } { + 'Require Authentication Strength' + } + } + + $targetUsers = if ($policy.conditions.users.includeUsers -contains 'All') { + 'All Users' + } else { + $policy.conditions.users.includeUsers -join ', ' + } + + $mdInfo += "| $($policy.displayName) | $grantControls | $targetUsers |`n" + } + } + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Block high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21799' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict high risk sign-ins' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md new file mode 100644 index 000000000000..a010c4484edc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21800.md @@ -0,0 +1,13 @@ +Attackers might gain access if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. Attackers might gain access by exploiting vulnerabilities of weaker MFA methods like SMS and phone calls through social engineering techniques. These techniques might include SIM swapping or phishing, to intercept authentication codes. + +Attackers might use these accounts as entry points into the tenant. By using intercepted user sessions, attackers can disguise their activities as legitimate user actions, evade detection, and continue their attack without raising suspicion. From there, they might attempt to manipulate MFA settings to establish persistence, plan, and execute further attacks based on the privileges of compromised accounts. + +**Remediation action** + +- [Deploy multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-getstarted?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy a Conditional Access policy to require phishing-resistant MFA for all users](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Review authentication methods activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?tabs=microsoft-entra-admin-center&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md new file mode 100644 index 000000000000..a010c4484edc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.md @@ -0,0 +1,13 @@ +Attackers might gain access if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. Attackers might gain access by exploiting vulnerabilities of weaker MFA methods like SMS and phone calls through social engineering techniques. These techniques might include SIM swapping or phishing, to intercept authentication codes. + +Attackers might use these accounts as entry points into the tenant. By using intercepted user sessions, attackers can disguise their activities as legitimate user actions, evade detection, and continue their attack without raising suspicion. From there, they might attempt to manipulate MFA settings to establish persistence, plan, and execute further attacks based on the privileges of compromised accounts. + +**Remediation action** + +- [Deploy multifactor authentication](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-getstarted?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Get started with a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy a Conditional Access policy to require phishing-resistant MFA for all users](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Review authentication methods activity](https://learn.microsoft.com/entra/identity/monitoring-health/concept-usage-insights-report?tabs=microsoft-entra-admin-center&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-methods-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 new file mode 100644 index 000000000000..1b3783d09304 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21801.ps1 @@ -0,0 +1,95 @@ +function Invoke-CippTestZTNA21801 { + <# + .SYNOPSIS + Users have strong authentication methods configured + #> + param($Tenant) + + try { + $UserRegistrationDetails = New-CIPPDbRequest -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + if (-not $UserRegistrationDetails -or -not $Users) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $PhishResistantMethods = @('passKeyDeviceBound', 'passKeyDeviceBoundAuthenticator', 'windowsHelloForBusiness') + + $results = $UserRegistrationDetails | Where-Object { + $userId = $_.id + $matchingUser = $Users | Where-Object { $_.id -eq $userId -and $_.accountEnabled } + $matchingUser + } | ForEach-Object { + $regDetail = $_ + $matchingUser = $Users | Where-Object { $_.id -eq $regDetail.id } + $hasPhishResistant = $false + + if ($regDetail.methodsRegistered) { + foreach ($method in $PhishResistantMethods) { + if ($regDetail.methodsRegistered -contains $method) { + $hasPhishResistant = $true + break + } + } + } + + [PSCustomObject]@{ + id = $regDetail.id + displayName = $regDetail.userDisplayName + phishResistantAuthMethod = $hasPhishResistant + lastSuccessfulSignInDateTime = $matchingUser.signInActivity.lastSuccessfulSignInDateTime + } + } + + $totalUserCount = $results.Length + $phishResistantUsers = $results | Where-Object { $_.phishResistantAuthMethod } + $phishableUsers = $results | Where-Object { !$_.phishResistantAuthMethod } + + $phishResistantUserCount = $phishResistantUsers.Length + + $passed = $totalUserCount -eq $phishResistantUserCount + + $testResultMarkdown = if ($passed) { + "Validated that all users have registered phishing resistant authentication methods.`n`n%TestResult%" + } else { + "Found users that have not yet registered phishing resistant authentication methods`n`n%TestResult%" + } + + $mdInfo = "## Users strong authentication methods`n`n" + + if ($passed) { + $mdInfo = "All users have registered phishing resistant authentication methods.`n`n" + } else { + $mdInfo = "Found users that have not registered phishing resistant authentication methods.`n`n" + } + + $mdInfo = $mdInfo + "| User | Last sign in | Phishing resistant method registered |`n" + $mdInfo = $mdInfo + "| :--- | :--- | :---: |`n" + + $userLinkFormat = 'https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/UserAuthMethods/userId/{0}/hidePreviewBanner~/true' + + $mdLines = @($phishableUsers | Sort-Object displayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + $lastSignInDate = if ($_.lastSuccessfulSignInDateTime) { (Get-Date $_.lastSuccessfulSignInDateTime -Format 'yyyy-MM-dd') } else { 'Never' } + "|[$($_.displayName)]($userLink)| $lastSignInDate | ❌ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $mdLines = @($phishResistantUsers | Sort-Object displayName | ForEach-Object { + $userLink = $userLinkFormat -f $_.id + $lastSignInDate = if ($_.lastSuccessfulSignInDateTime) { (Get-Date $_.lastSuccessfulSignInDateTime -Format 'yyyy-MM-dd') } else { 'Never' } + "|[$($_.displayName)]($userLink)| $lastSignInDate | ✅ |`n" + }) + $mdInfo = $mdInfo + ($mdLines -join '') + + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21801' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Users have strong authentication methods configured' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md new file mode 100644 index 000000000000..61cf321650cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.md @@ -0,0 +1,8 @@ +Without sign-in context, threat actors can exploit authentication fatigue by flooding users with push notifications, increasing the chance that a user accidentally approves a malicious request. When users get generic push notifications without the application name or geographic location, they don't have the information they need to make informed approval decisions. This lack of context makes users vulnerable to social engineering attacks, especially when threat actors time their requests during periods of legitimate user activity. This vulnerability is especially dangerous when threat actors gain initial access through credential harvesting or password spraying attacks and then try to establish persistence by approving multifactor authentication (MFA) requests from unexpected applications or locations. Without contextual information, users can't detect unusual sign-in attempts, allowing threat actors to maintain access and escalate privileges by moving laterally through systems after bypassing the initial authentication barrier. Without application and location context, security teams also lose valuable telemetry for detecting suspicious authentication patterns that can indicate ongoing compromise or reconnaissance activities. + +**Remediation action** +Give users the context they need to make informed approval decisions. Configure Microsoft Authenticator notifications by setting the Authentication methods policy to include the application name and geographic location. +- [Use additional context in Authenticator notifications - Authentication methods policy](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-mfa-additional-context?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 new file mode 100644 index 000000000000..24956ef8276c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21802.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestZTNA21802 { + <# + .SYNOPSIS + Microsoft Authenticator app shows sign-in context + #> + param($Tenant) + #tested + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $AuthenticatorConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + + if (-not $AuthenticatorConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Failed' -ResultMarkdown 'Microsoft Authenticator configuration not found in authentication methods policy' -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $AppInfoEnabled = $AuthenticatorConfig.featureSettings.displayAppInformationRequiredState.state -eq 'enabled' + $LocationInfoEnabled = $AuthenticatorConfig.featureSettings.displayLocationInformationRequiredState.state -eq 'enabled' + + if ($AppInfoEnabled -and $LocationInfoEnabled) { + $Status = 'Passed' + $Result = 'Microsoft Authenticator shows application name and geographic location in push notifications' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator sign-in context incomplete - App info: $AppInfoEnabled, Location info: $LocationInfoEnabled" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21802' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Microsoft Authenticator app shows sign-in context' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md new file mode 100644 index 000000000000..6f99cf455fac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.md @@ -0,0 +1,13 @@ +Legacy multifactor authentication (MFA) and self-service password reset (SSPR) policies in Microsoft Entra ID manage authentication methods separately, leading to fragmented configurations and suboptimal user experience. Moreover, managing these policies independently increases administrative overhead and the risk of misconfiguration. + +Migrating to the combined Authentication Methods policy consolidates the management of MFA, SSPR, and passwordless authentication methods into a single policy framework. This unification allows for more granular control, enabling administrators to target specific authentication methods to user groups and enforce consistent security measures across the organization. Additionally, the unified policy supports modern authentication methods, such as FIDO2 security keys and Windows Hello for Business, enhancing the organization's security posture. + +Microsoft announced the deprecation of legacy MFA and SSPR policies, with a retirement date set for September 30, 2025. Organizations are advised to complete the migration to the Authentication Methods policy before this date to avoid potential disruptions and to benefit from the enhanced security and management capabilities of the unified policy. + +**Remediation action** + +- [Enable combined security information registration](https://learn.microsoft.com/entra/identity/authentication/howto-registration-mfa-sspr-combined?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [How to migrate MFA and SSPR policy settings to the Authentication methods policy for Microsoft Entra ID](https://learn.microsoft.com/entra/identity/authentication/how-to-authentication-methods-manage?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 new file mode 100644 index 000000000000..38cfc0f542a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21803.ps1 @@ -0,0 +1,35 @@ +function Invoke-CippTestZTNA21803 { + <# + .SYNOPSIS + Migrate from legacy MFA and SSPR policies + #> + param($Tenant) + #Tested + try { + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $PolicyMigrationState = $AuthMethodsPolicy.policyMigrationState + + if ($PolicyMigrationState -eq 'migrationComplete') { + $Status = 'Passed' + $Result = 'Tenant has migrated from legacy MFA and SSPR policies to authentication methods policy' + } elseif ($PolicyMigrationState -eq 'migrationInProgress') { + $Status = 'Investigate' + $Result = 'Tenant migration from legacy MFA and SSPR policies is in progress' + } else { + $Status = 'Failed' + $Result = "Tenant has not migrated from legacy MFA and SSPR policies (state: $PolicyMigrationState)" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21803' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Migrate from legacy MFA and SSPR policies' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md new file mode 100644 index 000000000000..c4a3d5bd3265 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.md @@ -0,0 +1,12 @@ +When weak authentication methods like SMS and voice calls remain enabled in Microsoft Entra ID, threat actors can exploit these vulnerabilities through multiple attack vectors. Initially, attackers often conduct reconnaissance to identify organizations using these weaker authentication methods through social engineering or technical scanning. Then they can execute initial access through credential stuffing attacks, password spraying, or phishing campaigns targeting user credentials. + +Once basic credentials are compromised, threat actors use these weaknesses in SMS and voice-based authentication. SMS messages can be intercepted through SIM swapping attacks, SS7 network vulnerabilities, or malware on mobile devices, while voice calls are susceptible to voice phishing (vishing) and call forwarding manipulation. With these weak second factors bypassed, attackers achieve persistence by registering their own authentication methods. Compromised accounts can be used to target higher-privileged users through internal phishing or social engineering, allowing attackers to escalate privileges within the organization. Finally, threat actors achieve their objectives through data exfiltration, lateral movement to critical systems, or deployment of other malicious tools, all while maintaining stealth by using legitimate authentication pathways that appear normal in security logs. + +**Remediation action** + +- [Deploy authentication method registration campaigns to encourage stronger methods](https://learn.microsoft.com/graph/api/authenticationmethodspolicy-update?view=graph-rest-beta&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-methods-manage?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable phone-based methods in legacy MFA settings](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-mfa-mfasettings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Deploy Conditional Access policies using authentication strength](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-strength-how-it-works?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 new file mode 100644 index 000000000000..9882b9e0713c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21804.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA21804 { + <# + .SYNOPSIS + SMS and Voice Call authentication methods are disabled + #> + param($Tenant) + #Tested + try { + $authMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $authMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'SMS and Voice Call authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + return + } + + $matchedMethods = $authMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Sms' -or $_.id -eq 'Voice' } + + $testResultMarkdown = '' + + if ($matchedMethods.state -contains 'enabled') { + $passed = 'Failed' + $testResultMarkdown = 'Found weak authentication methods that are still enabled.' + } else { + $passed = 'Passed' + $testResultMarkdown = 'SMS and voice calls authentication methods are disabled in the tenant.' + } + + $reportTitle = 'Weak authentication methods' + + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Method ID | Is method weak? | State |`n" + $mdInfo += "| :-------- | :-------------- | :---- |`n" + + foreach ($method in $matchedMethods) { + $mdInfo += "| $($method.id) | Yes | $($method.state) |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Weak authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21804' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'SMS and Voice Call authentication methods are disabled' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md new file mode 100644 index 000000000000..f0b3ce89d4e6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.md @@ -0,0 +1,10 @@ +Without Conditional Access policies protecting security information registration, threat actors can exploit unprotected registration flows to compromise authentication methods. When users register multifactor authentication and self-service password reset methods without proper controls, threat actors can intercept these registration sessions through adversary-in-the-middle attacks or exploit unmanaged devices accessing registration from untrusted locations. Once threat actors gain access to an unprotected registration flow, they can register their own authentication methods, effectively hijacking the target's authentication profile. The threat actors can bypass security controls and potentially escalate privileges throughout the environment because they can maintain persistent access by controlling the MFA methods. The compromised authentication methods then become the foundation for lateral movement as threat actors can authenticate as the legitimate user across multiple services and applications. + +**Remediation action** + +- [Deploy a Conditional Access policy for security info registration](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-all-users-security-info-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure known network locations](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Enable combined security info registration](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-registration-mfa-sspr-combined?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 new file mode 100644 index 000000000000..6a7864fb17c8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21806.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA21806 { + <# + .SYNOPSIS + Secure the MFA registration (My Security Info) page + #> + param($Tenant) + #tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + return + } + + $matchedPolicies = $allCAPolicies | Where-Object { + ($_.conditions.applications.includeUserActions -contains 'urn:user:registersecurityinfo') -and + ($_.conditions.users.includeUsers -contains 'All') -and + $_.state -eq 'enabled' + } + + $testResultMarkdown = '' + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'Security information registration is protected by Conditional Access policies.' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Security information registration is not protected by Conditional Access policies.' + } + + $reportTitle = 'Conditional Access Policies targeting security information registration' + $tableRows = '' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | User Actions Targeted | Grant Controls Applied |`n" + $mdInfo += "| :---------- | :-------------------- | :--------------------- |`n" + + foreach ($policy in $matchedPolicies) { + $mdInfo += "| $($policy.displayName) | $($policy.conditions.applications.includeUserActions) | $($policy.grantControls.builtInControls -join ', ') |`n" + } + } else { + $mdInfo = 'No Conditional Access policies targeting security information registration.' + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21806' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Secure the MFA registration (My Security Info) page' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md new file mode 100644 index 000000000000..f20e5690891a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.md @@ -0,0 +1,12 @@ +If nonprivileged users can create applications and service principals, these accounts might be misconfigured or be granted more permissions than necessary, creating new vectors for attackers to gain initial access. Attackers can exploit these accounts to establish valid credentials in the environment and bypass some security controls. + +If these nonprivileged accounts are mistakenly granted elevated application owner permissions, attackers can use them to move from a lower level of access to a more privileged level of access. Attackers who compromise nonprivileged accounts might add their own credentials or change the permissions associated with the applications created by the nonprivileged users to ensure they can continue to access the environment undetected. + +Attackers can use service principals to blend in with legitimate system processes and activities. Because service principals often perform automated tasks, malicious activities carried out under these accounts might not be flagged as suspicious. + +**Remediation action** + +- [Block nonprivileged users from creating apps](https://learn.microsoft.com/entra/identity/role-based-access-control/delegate-app-roles?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 new file mode 100644 index 000000000000..2e5f195f5c94 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21807.ps1 @@ -0,0 +1,32 @@ +function Invoke-CippTestZTNA21807 { + <# + .SYNOPSIS + Creating new applications and service principals is restricted to privileged users + #> + param($Tenant) + #Tested + try { + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $CanCreateApps = $AuthPolicy.defaultUserRolePermissions.allowedToCreateApps + + if ($CanCreateApps -eq $false) { + $Status = 'Passed' + $Result = 'Tenant is configured to prevent users from registering applications' + } else { + $Status = 'Failed' + $Result = 'Tenant allows all non-privileged users to register applications' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21807' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Creating new applications and service principals is restricted to privileged users' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md new file mode 100644 index 000000000000..de6e6b429a7d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.md @@ -0,0 +1,8 @@ +Device code flow is a cross-device authentication flow designed for input-constrained devices. It can be exploited in phishing attacks, where an attacker initiates the flow and tricks a user into completing it on their device, thereby sending the user's tokens to the attacker. Given the security risks and the infrequent legitimate use of device code flow, you should enable a Conditional Access policy to block this flow by default. + +**Remediation action** + +- [Deploy a Conditional Access policy to block device code flow](https://learn.microsoft.com/entra/identity/conditional-access/policy-block-authentication-flows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#device-code-flow-policies). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 new file mode 100644 index 000000000000..289ae9e1f36d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21808.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestZTNA21808 { + <# + .SYNOPSIS + Restrict device code flow + #> + param($Tenant) + #Tested + try { + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + return + } + + $Enabled = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + $DeviceCodePolicies = $Enabled | Where-Object { + if ($_.conditions.authenticationFlows.transferMethods) { + $Methods = $_.conditions.authenticationFlows.transferMethods -split ',' + $Methods -contains 'deviceCodeFlow' + } else { + $false + } + } + + $BlockPolicies = $DeviceCodePolicies | Where-Object { $_.grantControls.builtInControls -contains 'block' } + + if ($BlockPolicies.Count -gt 0) { + $Status = 'Passed' + $Result = "Device code flow is properly restricted with $($BlockPolicies.Count) blocking policy/policies" + } elseif ($DeviceCodePolicies.Count -eq 0) { + $Status = 'Failed' + $Result = 'No Conditional Access policies found targeting device code flow' + #Add table with existing policies? + } else { + $Status = 'Failed' + $Result = 'Device code flow policies exist but none are configured to block' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21808' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Restrict device code flow' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access Control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md new file mode 100644 index 000000000000..3689a7af5877 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.md @@ -0,0 +1,11 @@ +Enabling the Admin consent workflow in a Microsoft Entra tenant is a vital security measure that mitigates risks associated with unauthorized application access and privilege escalation. This check is important because it ensures that any application requesting elevated permission undergoes a review process by designated administrators before consent is granted. The admin consent workflow in Microsoft Entra ID notifies reviewers who evaluate and approve or deny consent requests based on the application's legitimacy and necessity. If this check doesn't pass, meaning the workflow is disabled, any application can request and potentially receive elevated permissions without administrative review. This poses a substantial security risk, as malicious actors could exploit this lack of oversight to gain unauthorized access to sensitive data, perform privilege escalation, or execute other malicious activities. + +**Remediation action** + +For admin consent requests, set the **Users can request admin consent to apps they are unable to consent to** setting to **Yes**. Specify other settings, such as who can review requests. + +- [Enable the admin consent workflow](https://learn.microsoft.com/entra/identity/enterprise-apps/configure-admin-consent-workflow?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-admin-consent-workflow) +- Or use the [Update adminConsentRequestPolicy](https://learn.microsoft.com/graph/api/adminconsentrequestpolicy-update?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) API to set the `isEnabled` property to true and other settings + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 new file mode 100644 index 000000000000..f3422476b53c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21809.ps1 @@ -0,0 +1,30 @@ +function Invoke-CippTestZTNA21809 { + <# + .SYNOPSIS + Admin consent workflow is enabled + #> + param($Tenant) + #Tested + try { + $result = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AdminConsentRequestPolicy' + + if (-not $result) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + return + } + + $passed = if ($result.isEnabled) { 'Passed' } else { 'Failed' } + + if ($result.isEnabled) { + $testResultMarkdown = 'Admin consent workflow is enabled.' + } else { + $testResultMarkdown = "Admin consent workflow is disabled.`n`nThe adminConsentRequestPolicy.isEnabled property is set to false." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21809' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Admin consent workflow is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md new file mode 100644 index 000000000000..2ac799e81e92 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.md @@ -0,0 +1,8 @@ +Letting group owners consent to applications in Microsoft Entra ID creates a lateral escalation path that lets threat actors persist and steal data without admin credentials. If an attacker compromises a group owner account, they can register or use a malicious application and consent to high-privilege Graph API permissions scoped to the group. Attackers can potentially read all Teams messages, access SharePoint files, or manage group membership. This consent action creates a long-lived application identity with delegated or application permissions. The attacker maintains persistence with OAuth tokens, steals sensitive data from team channels and files, and impersonates users through messaging or email permissions. Without centralized enforcement of app consent policies, security teams lose visibility, and malicious applications spread under the radar, enabling multi-stage attacks across collaboration platforms. + +**Remediation action** +Configure preapproval of Resource-Specific Consent (RSC) permissions. +- [Preapproval of RSC permissions](https://learn.microsoft.com/microsoftteams/platform/graph-api/rsc/preapproval-instruction-docs?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 new file mode 100644 index 000000000000..3f7d1d03f123 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21810.ps1 @@ -0,0 +1,39 @@ +function Invoke-CippTestZTNA21810 { + <# + .SYNOPSIS + Resource-specific consent is restricted + #> + param($Tenant) + #Tested + try { + $authPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $authPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $teamPermission = 'managepermissiongrantsforownedresource.microsoft-dynamically-managed-permissions-for-team' + $hasTeamPermission = $authPolicy.permissionGrantPolicyIdsAssignedToDefaultUserRole -contains $teamPermission + + if (-not $hasTeamPermission) { + $state = 'DisabledForAllApps' + } else { + $state = 'EnabledForAllApps' + } + + if ($state -eq 'DisabledForAllApps') { + $passed = 'Passed' + $testResultMarkdown = "Resource-Specific Consent is restricted.`n`nThe current state is $state." + } else { + $passed = 'Failed' + $testResultMarkdown = "Resource-Specific Consent is not restricted.`n`nThe current state is $state." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21810' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Resource-specific consent is restricted' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md new file mode 100644 index 000000000000..fc521a90eb64 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.md @@ -0,0 +1,17 @@ +When password expiration policies remain enabled, threat actors can exploit the predictable password rotation patterns that users typically follow when forced to change passwords regularly. Users frequently create weaker passwords by making minimal modifications to existing ones, such as incrementing numbers or adding sequential characters. Threat actors can easily anticipate and exploit these types of changes through credential stuffing attacks or targeted password spraying campaigns. These predictable patterns enable threat actors to establish persistence through: + +- Compromised credentials +- Escalated privileges by targeting administrative accounts with weak rotated passwords +- Maintaining long-term access by predicting future password variations + +Research shows that users create weaker, more predictable passwords when they are forced to expire. These predictable passwords are easier for experienced attackers to crack, as they often make simple modifications to existing passwords rather than creating entirely new, strong passwords. Additionally, when users are required to frequently change passwords, they might resort to insecure practices such as writing down passwords or storing them in easily accessible locations, creating more attack vectors for threat actors to exploit during physical reconnaissance or social engineering campaigns. + +**Remediation action** + +- [Set the password expiration policy for your organization](https://learn.microsoft.com/microsoft-365/admin/manage/set-password-expiration-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + - Sign in to the [Microsoft 365 admin center](https://admin.microsoft.com/). Go to **Settings** > **Org Settings** >** Security & Privacy** > **Password expiration policy**. Ensure the **Set passwords to never expire** setting is checked. +- [Disable password expiration using Microsoft Graph](https://learn.microsoft.com/graph/api/domain-update?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- [Set individual user passwords to never expire using Microsoft Graph PowerShell](https://learn.microsoft.com/microsoft-365/admin/add-users/set-password-to-never-expire?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - `Update-MgUser -UserId -PasswordPolicies DisablePasswordExpiration` +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 new file mode 100644 index 000000000000..6315dc929433 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21811.ps1 @@ -0,0 +1,81 @@ +function Invoke-CippTestZTNA21811 { + <# + .SYNOPSIS + Password expiration is disabled + #> + param($Tenant) + #Tested + try { + $domains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Domains' + + if (-not $domains) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + return + } + + $misconfiguredDomains = $domains | Where-Object { $_.passwordValidityPeriodInDays -ne 2147483647 } + + $users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $misconfiguredUsers = @() + if ($users) { + $misconfiguredUsers = foreach ($user in $users) { + $userDomain = $user.userPrincipalName.Split('@')[-1] + $domainPolicy = $misconfiguredDomains | Where-Object { $_.id -eq $userDomain } + if (($user.passwordPolicies -notlike '*DisablePasswordExpiration*') -and ($domainPolicy)) { + [PSCustomObject]@{ + id = $user.id + displayName = $user.displayName + userPrincipalName = $user.userPrincipalName + passwordPolicies = $user.passwordPolicies + DomainPasswordValidity = $domainPolicy.passwordValidityPeriodInDays + } + } + } + } + + if ($misconfiguredDomains -or $misconfiguredUsers) { + $passed = 'Failed' + $testResultMarkdown = 'Found domains or users with password expiration still enabled.' + } else { + $passed = 'Passed' + $testResultMarkdown = 'Password expiration is properly disabled across all domains and users.' + } + + if ($misconfiguredDomains) { + $reportTitle1 = 'Domains with password expiration enabled' + $mdInfo1 = "`n## $reportTitle1`n`n" + $mdInfo1 += "| Domain Name | Password Validity Interval |`n" + $mdInfo1 += "| :---------- | :------------------------- |`n" + + foreach ($domain in $misconfiguredDomains) { + $mdInfo1 += "| $($domain.id) | $($domain.passwordValidityPeriodInDays) |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo1 + } + + if ($misconfiguredUsers) { + $reportTitle2 = 'Users with password expiration enabled' + $mdInfo2 = "`n## $reportTitle2`n`n" + $mdInfo2 += "| Display Name | User Principal Name | User Password Expiration setting | Domain Password Expiration setting |`n" + $mdInfo2 += "| :----------- | :------------------ | :------------------------------- | :--------------------------------- |`n" + + foreach ($misconfiguredUser in $misconfiguredUsers) { + $displayName = $misconfiguredUser.displayName + $userPrincipalName = $misconfiguredUser.userPrincipalName + $userPasswordExpiration = $misconfiguredUser.passwordPolicies + $domainPasswordExpiration = $misconfiguredUser.DomainPasswordValidity + $mdInfo2 += "| $displayName | $userPrincipalName | $userPasswordExpiration | $domainPasswordExpiration |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo2 + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21811' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Password expiration is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md new file mode 100644 index 000000000000..53d298d4756b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.md @@ -0,0 +1,7 @@ +An excessive number of Global Administrator accounts creates an expanded attack surface that threat actors can exploit through various initial access vectors. Each extra privileged account represents a potential entry point for threat actors. An excess of Global Administrator accounts undermines the principle of least privilege. Microsoft recommends that organizations have no more than eight Global Administrators. + +**Remediation action** + +- [Follow best practices for Microsoft Entra roles](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 new file mode 100644 index 000000000000..5bd0291730a5 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21812.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestZTNA21812 { + <# + .SYNOPSIS + Maximum number of Global Administrators doesn't exceed five users + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21812' + + try { + $AllGlobalAdmins = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId '62e90394-69f5-4237-9190-012177145e10' + + $GlobalAdmins = @($AllGlobalAdmins | Where-Object { $_.'@odata.type' -in @('#microsoft.graph.user', '#microsoft.graph.servicePrincipal') }) + + $Passed = $GlobalAdmins.Count -le 5 + + if ($Passed) { + $ResultMarkdown = "Maximum number of Global Administrators doesn't exceed five users/service principals.`n`n" + } else { + $ResultMarkdown = "Maximum number of Global Administrators exceeds five users/service principals.`n`n" + } + + if ($GlobalAdmins.Count -gt 0) { + $ResultMarkdown += "## Global Administrators`n`n" + $ResultMarkdown += "### Total number of Global Administrators: $($GlobalAdmins.Count)`n`n" + $ResultMarkdown += "| Display Name | Object Type | User Principal Name |`n" + $ResultMarkdown += "| :----------- | :---------- | :------------------ |`n" + + foreach ($GlobalAdmin in $GlobalAdmins) { + $DisplayName = $GlobalAdmin.displayName + $ObjectType = switch ($GlobalAdmin.'@odata.type') { + '#microsoft.graph.user' { 'User' } + '#microsoft.graph.servicePrincipal' { 'Service Principal' } + default { 'Unknown' } + } + $UserPrincipalName = if ($GlobalAdmin.userPrincipalName) { $GlobalAdmin.userPrincipalName } else { 'N/A' } + + $PortalLink = switch ($ObjectType) { + 'User' { "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($GlobalAdmin.id)" } + 'Service Principal' { "https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationMenuBlade/~/Overview/appId/$($GlobalAdmin.id)" } + default { 'https://entra.microsoft.com' } + } + + $ResultMarkdown += "| [$DisplayName]($PortalLink) | $ObjectType | $UserPrincipalName |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name "Maximum number of Global Administrators doesn't exceed five users" -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name "Maximum number of Global Administrators doesn't exceed five users" -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md new file mode 100644 index 000000000000..4071a19bede4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.md @@ -0,0 +1,8 @@ +When organizations maintain a disproportionately high ratio of Global Administrators relative to their total privileged user population, they expose themselves to significant security risks that threat actors might exploit through various attack vectors. Excessive Global Administrator assignments create multiple high-value targets for threat actors who might leverage initial access through credential compromise, phishing attacks, or insider threats to gain unrestricted access to the entire Microsoft Entra ID tenant and connected Microsoft 365 services. + +**Remediation action** + +- [Minimize the number of Global Administrator role assignments](https://learn.microsoft.com/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#5-limit-the-number-of-global-administrators-to-less-than-5) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 new file mode 100644 index 000000000000..84552c025074 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 @@ -0,0 +1,145 @@ +function Invoke-CippTestZTNA21813 { + <# + .SYNOPSIS + High Global Administrator to privileged user ratio + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21813' + + try { + $GlobalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $RoleEligibilitySchedules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleEligibilitySchedules' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $AllGAUsers = @{} + $AllPrivilegedUsers = @{} + $UserRoleMap = @{} + + foreach ($Role in $PrivilegedRoles) { + $ActiveAssignments = $RoleAssignmentScheduleInstances | Where-Object { + $_.roleDefinitionId -eq $Role.templateId -and $_.assignmentType -eq 'Assigned' + } + $EligibleAssignments = $RoleEligibilitySchedules | Where-Object { + $_.roleDefinitionId -eq $Role.templateId + } + + $AllAssignments = @($ActiveAssignments) + @($EligibleAssignments) + + foreach ($Assignment in $AllAssignments) { + $User = $Users | Where-Object { $_.id -eq $Assignment.principalId } | Select-Object -First 1 + if (-not $User) { continue } + + $UserId = $User.id + $IsGARole = $Role.templateId -eq $GlobalAdminRoleId + + if ($IsGARole) { + $AllGAUsers[$UserId] = $User + } + + if (-not $IsGARole) { + $AllPrivilegedUsers[$UserId] = $User + } + + if (-not $UserRoleMap.ContainsKey($UserId)) { + $UserRoleMap[$UserId] = @{ + User = $User + Roles = [System.Collections.ArrayList]@() + IsGA = $false + } + } + + if ($Role.displayName -notin $UserRoleMap[$UserId].Roles) { + [void]$UserRoleMap[$UserId].Roles.Add($Role.displayName) + } + + if ($IsGARole) { + $UserRoleMap[$UserId].IsGA = $true + } + } + } + + $GARoleAssignmentCount = $AllGAUsers.Count + $PrivilegedRoleAssignmentCount = $AllPrivilegedUsers.Count + $TotalPrivilegedRoleAssignmentCount = $GARoleAssignmentCount + $PrivilegedRoleAssignmentCount + + if ($TotalPrivilegedRoleAssignmentCount -gt 0) { + $GAPercentage = [math]::Round(($GARoleAssignmentCount / $TotalPrivilegedRoleAssignmentCount) * 100, 2) + $OtherPercentage = [math]::Round(($PrivilegedRoleAssignmentCount / $TotalPrivilegedRoleAssignmentCount) * 100, 2) + } else { + $GAPercentage = 0 + $OtherPercentage = 0 + } + + $HasHealthyRatio = $false + $HasModerateRatio = $false + $HasHighRatio = $false + $CustomStatus = $null + + if ($GAPercentage -lt 30) { + $StatusIndicator = '✅ Passed' + $HasHealthyRatio = $true + } elseif ($GAPercentage -ge 30 -and $GAPercentage -lt 50) { + $StatusIndicator = '⚠️ Investigate' + $HasModerateRatio = $true + } else { + $StatusIndicator = '❌ Failed' + $HasHighRatio = $true + } + + $MdInfo = "`n## Privileged role assignment summary`n`n" + $MdInfo += "**Global administrator role count:** $GARoleAssignmentCount ($GAPercentage%) - $StatusIndicator`n`n" + $MdInfo += "**Other privileged role count:** $PrivilegedRoleAssignmentCount ($OtherPercentage%)`n`n" + + $MdInfo += "## User privileged role assignments`n`n" + $MdInfo += "| User | Global administrator | Other Privileged Role(s) |`n" + $MdInfo += "| :--- | :------------------- | :------ |`n" + + $SortedUsers = $UserRoleMap.Values | Sort-Object @{Expression = { -not $_.IsGA } }, @{Expression = { $_.User.displayName } } + + foreach ($UserEntry in $SortedUsers) { + $User = $UserEntry.User + $IsGA = if ($UserEntry.IsGA) { 'Yes' } else { 'No' } + + $OtherRoles = $UserEntry.Roles | Where-Object { $_ -ne 'Global Administrator' } | Sort-Object + $RolesList = if ($OtherRoles.Count -gt 0) { ($OtherRoles -join ', ') } else { '-' } + + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $MdInfo += "| [$($User.displayName)]($UserLink) | $IsGA | $RolesList |`n" + } + + if ($UserRoleMap.Count -eq 0) { + $MdInfo += "| No privileged users found | - | - |`n" + } + + if ($TotalPrivilegedRoleAssignmentCount -eq 0) { + $Passed = $true + $ResultMarkdown = "No privileged role assignments found in the tenant.$MdInfo" + } elseif ($HasHealthyRatio) { + $Passed = $true + $ResultMarkdown = "Less than 30% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } elseif ($HasModerateRatio) { + $Passed = $false + $CustomStatus = 'Investigate' + $ResultMarkdown = "Between 30-50% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } else { + $Passed = $false + $ResultMarkdown = "More than 50% of privileged role assignments in the tenant are Global Administrator.$MdInfo" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'High Global Administrator to privileged user ratio' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'High Global Administrator to privileged user ratio' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md new file mode 100644 index 000000000000..9892d3765a35 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.md @@ -0,0 +1,15 @@ +If an on-premises account is compromised and is synchronized to Microsoft Entra, the attacker might gain access to the tenant as well. This risk increases because on-premises environments typically have more attack surfaces due to older infrastructure and limited security controls. Attackers might also target the infrastructure and tools used to enable connectivity between on-premises environments and Microsoft Entra. These targets might include tools like Microsoft Entra Connect or Active Directory Federation Services, where they could impersonate or otherwise manipulate other on-premises user accounts. + +If privileged cloud accounts are synchronized with on-premises accounts, an attacker who acquires credentials for on-premises can use those same credentials to access cloud resources and move laterally to the cloud environment. + +**Remediation action** + +- [Protecting Microsoft 365 from on-premises attacks](https://learn.microsoft.com/entra/architecture/protect-m365-from-on-premises-attacks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#specific-security-recommendations) + +For each role with high privileges (assigned permanently or eligible through Microsoft Entra Privileged Identity Management), you should do the following actions: + +- Review the users that have onPremisesImmutableId and onPremisesSyncEnabled set. See [Microsoft Graph API user resource type](https://learn.microsoft.com/graph/api/resources/user?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Create cloud-only user accounts for those individuals and remove their hybrid identity from privileged roles. + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 new file mode 100644 index 000000000000..6a4324dc6302 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21814.ps1 @@ -0,0 +1,75 @@ +function Invoke-CippTestZTNA21814 { + <# + .SYNOPSIS + Privileged accounts are cloud native identities + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + + $TestId = 'ZTNA21814' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $RoleData = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.RoletemplateId + $RoleUsers = $RoleMembers | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.user' } + + foreach ($RoleMember in $RoleUsers) { + $UserDetail = $Users | Where-Object { $_.id -eq $RoleMember.id } | Select-Object -First 1 + + if ($UserDetail) { + $RoleData.Add([PSCustomObject]@{ + RoleName = $Role.displayName + UserId = $UserDetail.id + UserDisplayName = $UserDetail.displayName + UserPrincipalName = $UserDetail.userPrincipalName + OnPremisesSyncEnabled = $UserDetail.onPremisesSyncEnabled + }) + } + } + } + + $SyncedUsers = $RoleData | Where-Object { $_.OnPremisesSyncEnabled -eq $true } + $Passed = $SyncedUsers.Count -eq 0 + + if ($Passed) { + $ResultMarkdown = "Validated that standing or eligible privileged accounts are cloud only accounts.`n`n" + } else { + $ResultMarkdown = "This tenant has $($SyncedUsers.Count) privileged users that are synced from on-premise.`n`n" + } + + if ($RoleData.Count -gt 0) { + $ResultMarkdown += "## Privileged Roles`n`n" + $ResultMarkdown += "| Role Name | User | Source | Status |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :---: |`n" + + foreach ($RoleUser in ($RoleData | Sort-Object RoleName, UserDisplayName)) { + if ($RoleUser.OnPremisesSyncEnabled) { + $Type = 'Synced from on-premise' + $Status = '❌' + } else { + $Type = 'Cloud native identity' + $Status = '✅' + } + + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($RoleUser.UserId)" + $ResultMarkdown += "| $($RoleUser.RoleName) | [$($RoleUser.UserDisplayName)]($UserLink) | $Type | $Status |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Privileged accounts are cloud native identities' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged accounts are cloud native identities' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md new file mode 100644 index 000000000000..a2b1ef6e0a15 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.md @@ -0,0 +1,10 @@ +Threat actors target privileged accounts because they have access to the data and resources they want. This might include more access to your Microsoft Entra tenant, data in Microsoft SharePoint, or the ability to establish long-term persistence. Without a just-in-time (JIT) activation model, administrative privileges remain continuously exposed, providing attackers with an extended window to operate undetected. Just-in-time access mitigates risk by enforcing time-limited privilege activation with extra controls such as approvals, justification, and Conditional Access policy, ensuring that high-risk permissions are granted only when needed and for a limited duration. This restriction minimizes the attack surface, disrupts lateral movement, and forces adversaries to trigger actions that can be specially monitored and denied when not expected. Without just-in-time access, compromised admin accounts grant indefinite control, letting attackers disable security controls, erase logs, and maintain stealth, amplifying the impact of a compromise. + +Use Microsoft Entra Privileged Identity Management (PIM) to provide time-bound just-in-time access to privileged role assignments. Use access reviews in Microsoft Entra ID Governance to regularly review privileged access to ensure continued need. + +**Remediation action** + +- [Start using Privileged Identity Management](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-getting-started?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create an access review of Azure resource and Microsoft Entra roles in PIM](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-create-roles-and-resource-roles-review?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 new file mode 100644 index 000000000000..cb7eeca9b2f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21815.ps1 @@ -0,0 +1,66 @@ +function Invoke-CippTestZTNA21815 { + <# + .SYNOPSIS + All privileged role assignments are activated just in time and not permanently active + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + $TestId = 'ZTNA21815' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $PermanentAssignments = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $ActiveAssignments = $RoleAssignmentScheduleInstances | Where-Object { + $_.roleDefinitionId -eq $Role.RoletemplateId -and + $_.assignmentType -eq 'Assigned' -and + $null -eq $_.endDateTime + } + + foreach ($Assignment in $ActiveAssignments) { + $User = $Users | Where-Object { $_.id -eq $Assignment.principalId } | Select-Object -First 1 + if (-not $User) { continue } + + $PermanentAssignments.Add([PSCustomObject]@{ + PrincipalDisplayName = $User.displayName + UserPrincipalName = $User.userPrincipalName + PrincipalId = $User.id + RoleDisplayName = $Role.displayName + PrivilegeType = 'Permanent' + }) + } + } + + if ($PermanentAssignments.Count -eq 0) { + $Passed = $true + $ResultMarkdown = 'No privileged users have permanent role assignments.' + } else { + $Passed = $false + $ResultMarkdown = "Privileged users with permanent role assignments were found.`n`n" + $ResultMarkdown += "## Privileged users with permanent role assignments`n`n" + $ResultMarkdown += "| User | UPN | Role Name | Assignment Type |`n" + $ResultMarkdown += "| :--- | :-- | :-------- | :-------------- |`n" + + foreach ($Result in $PermanentAssignments) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($Result.PrincipalId)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($Result.PrincipalDisplayName)]($PortalLink) | $($Result.UserPrincipalName) | $($Result.RoleDisplayName) | $($Result.PrivilegeType) |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All privileged role assignments are activated just in time and not permanently active' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All privileged role assignments are activated just in time and not permanently active' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md new file mode 100644 index 000000000000..0a29cd021f6a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.md @@ -0,0 +1,8 @@ +Threat actors who compromise a permanently assigned privileged account (e.g., Global Administrator or Privileged Role Administrator) gain continuous, uninterrupted access to high-impact directory operations. This extended dwell time enables attackers to more easily establish persistent backdoors, delete critical data and security configurations, disable monitoring systems, and register malicious applications for data exfiltration and lateral movement. These actions can result in full organizational disruption, widespread data compromise, and total loss of operational control over the tenant. Microsoft Entra PIM’s eligible role assignment model narrows escalation pathways, constrains attacker dwell time and provides the option of role elevation approval workflows. + +**Remediation action** +- [Use Privileged Identity Management to manage privileged Microsoft Entra roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-getting-started) +- [Manage emergency access admin accounts](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/security-emergency-access) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 new file mode 100644 index 000000000000..659a9e6d239d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 @@ -0,0 +1,184 @@ +function Invoke-CippTestZTNA21816 { + <# + .SYNOPSIS + All Microsoft Entra privileged role assignments are managed with PIM + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21816' + + try { + $GlobalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + $PermanentGAUserList = [System.Collections.Generic.List[object]]::new() + $PermanentGAGroupList = [System.Collections.Generic.List[object]]::new() + $NonPIMPrivilegedUsers = [System.Collections.Generic.List[object]]::new() + $NonPIMPrivilegedGroups = [System.Collections.Generic.List[object]]::new() + + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleEligibilitySchedules = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleEligibilitySchedules' + $RoleAssignmentScheduleInstances = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + $Groups = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Groups' + + $EligibleGAs = $RoleEligibilitySchedules | Where-Object { $_.roleDefinitionId -eq $GlobalAdminRoleId } + $EligibleGAUsers = 0 + + foreach ($EligibleGA in $EligibleGAs) { + $Principal = $Users | Where-Object { $_.id -eq $EligibleGA.principalId } | Select-Object -First 1 + if ($Principal) { + $EligibleGAUsers++ + } else { + $GroupPrincipal = $Groups | Where-Object { $_.id -eq $EligibleGA.principalId } | Select-Object -First 1 + if ($GroupPrincipal) { + $GroupMembers = $Users | Where-Object { $_.id -in $GroupPrincipal.members } + $EligibleGAUsers = $EligibleGAUsers + $GroupMembers.Count + } + } + } + + foreach ($Role in $PrivilegedRoles) { + if ($Role.templateId -eq $GlobalAdminRoleId) { continue } + + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.RoletemplateId + + foreach ($Member in $RoleMembers) { + $Assignment = $RoleAssignmentScheduleInstances | Where-Object { + $_.principalId -eq $Member.id -and $_.roleDefinitionId -eq $Role.RoletemplateId + } | Select-Object -First 1 + + if (-not $Assignment -or ($Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime)) { + $MemberInfo = [PSCustomObject]@{ + displayName = $Member.displayName + userPrincipalName = $Member.userPrincipalName + id = $Member.id + roleTemplateId = $Role.RoletemplateId + roleName = $Role.displayName + assignmentType = if ($Assignment) { $Assignment.assignmentType } else { 'Not in PIM' } + } + + if ($Member.'@odata.type' -eq '#microsoft.graph.user') { + $NonPIMPrivilegedUsers.Add($MemberInfo) + } else { + $NonPIMPrivilegedGroups.Add($MemberInfo) + } + } + } + } + + $GAMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $GlobalAdminRoleId + + foreach ($Member in $GAMembers) { + $Assignment = $RoleAssignmentScheduleInstances | Where-Object { + $_.principalId -eq $Member.id -and $_.roleDefinitionId -eq $GlobalAdminRoleId + } | Select-Object -First 1 + + if (-not $Assignment -or ($Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime)) { + $MemberInfo = [PSCustomObject]@{ + displayName = $Member.displayName + userPrincipalName = $Member.userPrincipalName + id = $Member.id + roleTemplateId = $GlobalAdminRoleId + roleName = 'Global Administrator' + assignmentType = if ($Assignment) { $Assignment.assignmentType } else { 'Not in PIM' } + onPremisesSyncEnabled = $null + } + + if ($Member.'@odata.type' -eq '#microsoft.graph.user') { + $UserDetail = $Users | Where-Object { $_.id -eq $Member.id } | Select-Object -First 1 + if ($UserDetail) { + $MemberInfo.onPremisesSyncEnabled = $UserDetail.onPremisesSyncEnabled + } + $PermanentGAUserList.Add($MemberInfo) + } elseif ($Member.'@odata.type' -eq '#microsoft.graph.group') { + $PermanentGAGroupList.Add($MemberInfo) + + $Group = $Groups | Where-Object { $_.id -eq $Member.id } | Select-Object -First 1 + if ($Group) { + $GroupMembers = $Users | Where-Object { $_.id -in $Group.members } + foreach ($GroupMember in $GroupMembers) { + $GroupMemberInfo = [PSCustomObject]@{ + displayName = $GroupMember.displayName + userPrincipalName = $GroupMember.userPrincipalName + id = $GroupMember.id + roleTemplateId = $GlobalAdminRoleId + roleName = 'Global Administrator (via group)' + assignmentType = 'Via Group' + onPremisesSyncEnabled = $GroupMember.onPremisesSyncEnabled + } + $PermanentGAUserList.Add($GroupMemberInfo) + } + } + } + } + } + + $HasPIMUsage = $EligibleGAUsers -gt 0 + $HasNonPIMPrivileged = ($NonPIMPrivilegedUsers.Count + $NonPIMPrivilegedGroups.Count) -gt 0 + $PermanentGACount = $PermanentGAUserList.Count + $CustomStatus = $null + + if (-not $HasPIMUsage) { + $Passed = $false + $ResultMarkdown = 'No eligible Global Administrator assignments found. PIM usage cannot be confirmed.' + } elseif ($HasNonPIMPrivileged) { + $Passed = $false + $ResultMarkdown = 'Found Microsoft Entra privileged role assignments that are not managed with PIM.' + } elseif ($PermanentGACount -gt 2) { + $Passed = $false + $CustomStatus = 'Investigate' + $ResultMarkdown = 'Three or more accounts are permanently assigned the Global Administrator role. Review to determine whether these are emergency access accounts.' + } else { + $Passed = $true + $ResultMarkdown = 'All Microsoft Entra privileged role assignments are managed with PIM with the exception of up to two standing Global Administrator accounts.' + } + + $ResultMarkdown += "`n`n## Assessment summary`n`n" + $ResultMarkdown += "| Metric | Count |`n" + $ResultMarkdown += "| :----- | :---- |`n" + $ResultMarkdown += "| Privileged roles found | $($PrivilegedRoles.Count) |`n" + $ResultMarkdown += "| Eligible Global Administrators | $EligibleGAUsers |`n" + $ResultMarkdown += "| Non-PIM privileged users | $($NonPIMPrivilegedUsers.Count) |`n" + $ResultMarkdown += "| Non-PIM privileged groups | $($NonPIMPrivilegedGroups.Count) |`n" + $ResultMarkdown += "| Permanent Global Administrator users | $($PermanentGAUserList.Count) |`n" + + if ($NonPIMPrivilegedUsers.Count -gt 0 -or $NonPIMPrivilegedGroups.Count -gt 0) { + $ResultMarkdown += "`n## Non-PIM managed privileged role assignments`n`n" + $ResultMarkdown += "| Display name | User principal name | Role name | Assignment type |`n" + $ResultMarkdown += "| :----------- | :------------------ | :-------- | :-------------- |`n" + + foreach ($User in $NonPIMPrivilegedUsers) { + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($User.displayName)]($UserLink) | $($User.userPrincipalName) | $($User.roleName) | $($User.assignmentType) |`n" + } + + foreach ($Group in $NonPIMPrivilegedGroups) { + $GroupLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/GroupDetailsMenuBlade/~/RolesAndAdministrators/groupId/$($Group.id)/menuId/" + $ResultMarkdown += "| [$($Group.displayName)]($GroupLink) | N/A (Group) | $($Group.roleName) | $($Group.assignmentType) |`n" + } + } + + if ($PermanentGAUserList.Count -gt 0) { + $ResultMarkdown += "`n## Permanent Global Administrator assignments`n`n" + $ResultMarkdown += "| Display name | User principal name | Assignment type | On-Premises synced |`n" + $ResultMarkdown += "| :----------- | :------------------ | :-------------- | :----------------- |`n" + + foreach ($User in $PermanentGAUserList) { + $SyncStatus = if ($null -ne $User.onPremisesSyncEnabled) { $User.onPremisesSyncEnabled } else { 'N/A' } + $UserLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/AdministrativeRole/userId/$($User.id)/hidePreviewBanner~/true" + $ResultMarkdown += "| [$($User.displayName)]($UserLink) | $($User.userPrincipalName) | $($User.assignmentType) | $SyncStatus |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All Microsoft Entra privileged role assignments are managed with PIM' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Identity' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All Microsoft Entra privileged role assignments are managed with PIM' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Identity' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md new file mode 100644 index 000000000000..b0b563352276 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.md @@ -0,0 +1,13 @@ +Without approval workflows, threat actors who compromise Global Administrator credentials through phishing, credential stuffing, or other authentication bypass techniques can immediately activate the most privileged role in a tenant without any other verification or oversight. Privileged Identity Management (PIM) allows eligible role activations to become active within seconds, so compromised credentials can allow near-instant privilege escalation. Once activated, threat actors can use the Global Administrator role to use the following attack paths to gain persistent access to the tenant: +- Create new privileged accounts +- Modify Conditional Access policies to exclude those new accounts +- Establish alternate authentication methods such as certificate-based authentication or application registrations with high privileges + +The Global Administrator role provides access to administrative features in Microsoft Entra ID and services that use Microsoft Entra identities, including Microsoft Defender XDR, Microsoft Purview, Exchange Online, and SharePoint Online. Without approval gates, threat actors can rapidly escalate to complete tenant takeover, exfiltrating sensitive data, compromising all user accounts, and establishing long-term backdoors through service principals or federation modifications that persist even after the initial compromise is detected. + +**Remediation action** + +- [Configure role settings to require approval for Global Administrator activation](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Set up approval workflow for privileged roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-approval-workflow?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 new file mode 100644 index 000000000000..cfe4f469749a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21817.ps1 @@ -0,0 +1,80 @@ +function Invoke-CippTestZTNA21817 { + <# + .SYNOPSIS + Global Administrator role activation triggers an approval workflow + #> + param($Tenant) + + try { + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + if (-not $RoleManagementPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + return + } + + $globalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + + $globalAdminPolicy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and + $_.scopeType -eq 'DirectoryRole' -and + $_.roleDefinitionId -eq $globalAdminRoleId + } + + $tableRows = '' + $result = $false + + if ($globalAdminPolicy) { + $approvalRule = $globalAdminPolicy.rules | Where-Object { $_.id -like '*Approval_EndUser_Assignment*' } + + if ($approvalRule -and $approvalRule.setting.isApprovalRequired -eq $true) { + $approverCount = 0 + foreach ($stage in $approvalRule.setting.approvalStages) { + $approverCount = $approverCount + ($stage.primaryApprovers | Measure-Object).Count + } + + if ($approverCount -gt 0) { + $result = $true + $testResultMarkdown = "✅ **Pass**: Approval required with $approverCount primary approver(s) configured.`n`n%TestResult%" + $primaryApprovers = ($approvalRule.setting.approvalStages[0].primaryApprovers.description -join ', ') + $escalationApprovers = ($approvalRule.setting.approvalStages[0].escalationApprovers.description -join ', ') + $tableRows = "| Yes | $primaryApprovers | $escalationApprovers |`n" + } else { + $testResultMarkdown = "❌ **Fail**: Approval required but no approvers configured.`n`n%TestResult%" + $tableRows = "| Yes | None | None |`n" + } + } else { + $testResultMarkdown = "❌ **Fail**: Approval not required for Global Administrator role activation.`n`n%TestResult%" + $tableRows = "| No | N/A | N/A |`n" + } + } else { + $testResultMarkdown = "❌ **Fail**: No PIM policy found for Global Administrator role.`n`n%TestResult%" + $tableRows = "| N/A | N/A | N/A |`n" + } + + $passed = $result + + $reportTitle = 'Global Administrator role activation and approval workflow' + + $formatTemplate = @' + +## {0} + + +| Approval Required | Primary Approvers | Escalation Approvers | +| :---------------- | :---------------- | :------------------- | +{1} + +'@ + + $mdInfo = $formatTemplate -f $reportTitle, $tableRows + $testResultMarkdown = $testResultMarkdown -replace '%TestResult%', $mdInfo + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status $(if ($passed) { 'Passed' } else { 'Failed' }) -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21817' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Global Administrator role activation triggers an approval workflow' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application Management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md new file mode 100644 index 000000000000..4432e91f337a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.md @@ -0,0 +1,8 @@ +Organizations without proper activation alerts for highly privileged roles lack visibility into when users access these critical permissions. Threat actors can exploit this monitoring gap to perform privilege escalation by activating highly privileged roles without detection, then establish persistence through admin account creation or security policy modifications. The absence of real-time alerts enables attackers to conduct lateral movement, modify audit configurations, and disable security controls without triggering immediate response procedures. + +**Remediation action** + +- [Configure Microsoft Entra role settings in Privileged Identity Management](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#require-justification-on-activation) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 new file mode 100644 index 000000000000..b739f447cf85 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 @@ -0,0 +1,119 @@ +function Invoke-CippTestZTNA21818 { + <# + .SYNOPSIS + Privileged role activations have monitoring and alerting configured + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + $TestId = 'ZTNA21818' + + try { + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + $Notifications = @( + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Role assignment alert' + RuleId = 'Notification_Admin_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Notification to the assigned user (assignee)' + RuleId = 'Notification_Requestor_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as eligible to this role' + NotificationType = 'Request to approve a role assignment renewal/extension' + RuleId = 'Notification_Approver_Admin_Eligibility' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Role assignment alert' + RuleId = 'Notification_Admin_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Notification to the assigned user (assignee)' + RuleId = 'Notification_Requestor_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when members are assigned as active to this role' + NotificationType = 'Request to approve a role assignment renewal/extension' + RuleId = 'Notification_Approver_Admin_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Role activation alert' + RuleId = 'Notification_Admin_EndUser_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Notification to activated user (requestor)' + RuleId = 'Notification_Requestor_EndUser_Assignment' + } + [PSCustomObject]@{ + NotificationScenario = 'Send notifications when eligible members activate this role' + NotificationType = 'Request to approve an activation' + RuleId = 'Notification_Approver_EndUser_Assignment' + } + ) + + $NotificationRules = [System.Collections.Generic.List[object]]::new() + $Passed = $true + $ExitLoop = $false + + foreach ($Role in $PrivilegedRoles) { + $Policy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.roleDefinitionId -eq $Role.id + } | Select-Object -First 1 + + if (-not $Policy) { continue } + + foreach ($NotificationRuleId in $Notifications.RuleId) { + $Rule = $Policy.rules | Where-Object { $_.id -eq $NotificationRuleId } | Select-Object -First 1 + + if ($Rule) { + $RuleWithRole = $Rule | Select-Object *, @{Name = 'RoleDisplayName'; Expression = { $Role.displayName } } + $NotificationRules.Add($RuleWithRole) + + if ($Rule.isDefaultRecipientsEnabled -eq $true -and ($Rule.notificationRecipients.Count -eq 0 -or $null -eq $Rule.notificationRecipients)) { + $Passed = $false + $ExitLoop = $true + break + } + } + } + + if ($ExitLoop) { break } + } + + if ($Passed) { + $ResultMarkdown = "Role notifications are properly configured for privileged role.`n`n" + } else { + $ResultMarkdown = "Role notifications are not properly configured.`n`nNote: To save time, this check stops when it finds the first role that does not have notifications. After fixing this role and all other roles, we recommend running the check again to verify.`n`n" + } + + $ResultMarkdown += "## Notifications for high privileged roles`n`n" + $ResultMarkdown += "| Role Name | Notification Scenario | Notification Type | Default Recipients Enabled | Additional Recipients |`n" + $ResultMarkdown += "| :-------- | :-------------------- | :---------------- | :------------------------- | :-------------------- |`n" + + foreach ($NotificationRule in $NotificationRules) { + $MatchingNotification = $Notifications | Where-Object { $_.RuleId -eq $NotificationRule.id } + $Recipients = if ($NotificationRule.notificationRecipients) { ($NotificationRule.notificationRecipients -join ', ') } else { '' } + $ResultMarkdown += "| $($NotificationRule.roleDisplayName) | $($MatchingNotification.notificationScenario) | $($MatchingNotification.notificationType) | $($NotificationRule.isDefaultRecipientsEnabled) | $Recipients |`n" + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Privileged role activations have monitoring and alerting configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Privileged role activations have monitoring and alerting configured' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md new file mode 100644 index 000000000000..7f99f06ac13a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.md @@ -0,0 +1,8 @@ +Without activation alerts for Global Administrator role assignments, threat actors can perform role activation without detection, allowing them to establish persistence in the environment. When Global Administrator roles are activated without notification mechanisms, threat actors who have compromised accounts can escalate privileges, bypassing security monitoring. The absence of alerts creates a blind spot where threat actors can activate the most privileged role in the tenant and perform actions such as creating backdoor accounts, modifying security policies, or accessing sensitive data without immediate detection. This lack of visibility allows threat actors to maintain access and execute their objectives while appearing to use legitimate administrative functions, making it difficult for security teams to distinguish between authorized and unauthorized privilege escalation activities. + +**Remediation action** + +- [Configure Microsoft Entra role settings in Privileged Identity Management](https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 new file mode 100644 index 000000000000..8fe1afbea01c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 @@ -0,0 +1,85 @@ +function Invoke-CippTestZTNA21819 { + <# + .SYNOPSIS + Activation alert for Global Administrator role assignment + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21819' + + try { + # Get Global Administrator role (template ID: 62e90394-69f5-4237-9190-012177145e10) + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $GlobalAdminRole = $Roles | Where-Object { $_.roleTemplateId -eq '62e90394-69f5-4237-9190-012177145e10' } + + if (-not $GlobalAdminRole) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + return + } + + # Get role management policy for Global Admin + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + $GlobalAdminPolicy = $RoleManagementPolicies | Where-Object { + $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.effectiveRules.target.targetObjects.id -contains $GlobalAdminRole.id + } + + $Passed = 'Failed' + $IsDefaultRecipientsEnabled = 'N/A' + $Recipients = 'N/A' + + if ($GlobalAdminPolicy) { + # Find the notification rule for requestor end-user assignment + $NotificationRule = $GlobalAdminPolicy.effectiveRules | Where-Object { + $_.id -like '*Notification_Requestor_EndUser_Assignment*' + } + + if ($NotificationRule) { + $IsDefaultRecipientsEnabled = $NotificationRule.isDefaultRecipientsEnabled + $NotificationRecipients = $NotificationRule.notificationRecipients + + if ($NotificationRecipients) { + $Recipients = ($NotificationRecipients -join ', ') + } + + if ($NotificationRecipients -or $IsDefaultRecipientsEnabled) { + $Passed = 'Passed' + } + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Activation alerts are configured for Global Administrator role.`n`n" + } else { + $ResultMarkdown = "Activation alerts are missing or improperly configured for Global Administrator role.`n`n" + } + + $ResultMarkdown += "| Role display name | Default recipients | Additional recipients |`n" + $ResultMarkdown += "| :---------------- | :----------------- | :------------------- |`n" + + $RoleLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles' + $DisplayNameLink = "[$($GlobalAdminRole.displayName)]($RoleLink)" + + $DefaultRecipientsStatus = if ($IsDefaultRecipientsEnabled -eq $true) { + '✅ Enabled' + } elseif ($IsDefaultRecipientsEnabled -eq $false) { + '❌ Disabled' + } else { + 'N/A' + } + + $RecipientsDisplay = if ([string]::IsNullOrEmpty($Recipients) -or $Recipients -eq 'N/A') { + '-' + } else { + $Recipients + } + + $ResultMarkdown += "| $DisplayNameLink | $DefaultRecipientsStatus | $RecipientsDisplay |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Activation alert for Global Administrator role assignment' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md new file mode 100644 index 000000000000..e6327b29dd4b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.md @@ -0,0 +1,6 @@ +Without activation alerts for privileged role assignments, threat actors who compromise user credentials through phishing, password attacks, or credential stuffing can activate privileged roles without detection. When privileged roles are activated without notification mechanisms, security teams lack visibility into when elevated permissions are being used, allowing threat actors to operate within the environment undetected during the initial access phase. During the persistence phase, threat actors can leverage activated privileged roles to create backdoors, modify security configurations, or establish additional access methods without triggering security alerts. The lack of activation notifications prevents security teams from correlating privileged role usage with other security events, enabling threat actors to conduct lateral movement and privilege escalation activities while maintaining stealth. + +**Remediation action** +- [Configure notifications for privileged roles](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings#require-justification-on-active-assignment) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 new file mode 100644 index 000000000000..88b626c023dd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 @@ -0,0 +1,108 @@ +function Invoke-CippTestZTNA21820 { + <# + .SYNOPSIS + Activation alert for all privileged role assignments + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21820' + + try { + # Get all privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles -or $PrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + return + } + + # Get all role management policies + $RoleManagementPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RoleManagementPolicies' + + # Build hashtable for quick policy lookup by role ID + $PolicyByRoleId = @{} + foreach ($Policy in $RoleManagementPolicies) { + if ($Policy.scopeId -eq '/' -and $Policy.scopeType -eq 'DirectoryRole') { + foreach ($RoleId in $Policy.effectiveRules.target.targetObjects.id) { + if ($RoleId) { + $PolicyByRoleId[$RoleId] = $Policy + } + } + } + } + + $RolesWithIssues = [System.Collections.Generic.List[object]]::new() + $Passed = 'Passed' + + foreach ($Role in $PrivilegedRoles) { + $Policy = $PolicyByRoleId[$Role.id] + + if (-not $Policy) { + $RolesWithIssues.Add(@{ + Role = $Role + Issue = 'No PIM policy assignment found' + IsDefaultRecipientsEnabled = 'N/A' + NotificationRecipients = 'N/A' + }) + continue + } + + # Find notification rule for requestor end-user assignment + $NotificationRule = $Policy.effectiveRules | Where-Object { + $_.id -like '*Notification_Requestor_EndUser_Assignment*' + } + + if ($NotificationRule) { + $IsDefaultRecipientsEnabled = $NotificationRule.isDefaultRecipientsEnabled + $NotificationRecipients = $NotificationRule.notificationRecipients + + # Check if alert is properly configured + if ($IsDefaultRecipientsEnabled -eq $true -and ((-not $NotificationRecipients) -or $NotificationRecipients.Count -eq 0)) { + $Passed = 'Failed' + $RolesWithIssues.Add(@{ + Role = $Role + IsDefaultRecipientsEnabled = $IsDefaultRecipientsEnabled + NotificationRecipients = 'N/A' + }) + # Exit early on first issue for performance + break + } + } + } + + if ($RolesWithIssues.Count -eq 0) { + $ResultMarkdown = 'Activation alerts are configured for privileged role assignments.' + } else { + $ResultMarkdown = 'Activation alerts are missing or improperly configured for privileged roles.' + } + + if ($RolesWithIssues.Count -gt 0) { + $ResultMarkdown += "`n`n## Roles with missing or misconfigured alerts`n`n" + $ResultMarkdown += "| Role display name | Default recipients | Additional recipients |`n" + $ResultMarkdown += "| :---------------- | :----------------- | :------------------- |`n" + + foreach ($RoleIssue in $RolesWithIssues) { + $Role = $RoleIssue.Role + $RoleLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles' + $DisplayNameLink = "[$($Role.displayName)]($RoleLink)" + + $DefaultRecipientsStatus = if ($RoleIssue.IsDefaultRecipientsEnabled -eq $true) { + 'Enabled' + } else { + 'Disabled' + } + $Recipients = $RoleIssue.NotificationRecipients + + $ResultMarkdown += "| $DisplayNameLink | $DefaultRecipientsStatus | $Recipients |`n" + } + $ResultMarkdown += "`n`n*Not all misconfigured roles may be listed. For performance reasons, this assessment stops at the first detected issue.*`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Low' -Name 'Activation alert for all privileged role assignments' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Privileged access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21821.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md new file mode 100644 index 000000000000..506922d1426c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.md @@ -0,0 +1,8 @@ +Without limiting guest access to approved tenants, threat actors can exploit unrestricted guest access to establish initial access through compromised external accounts or by creating accounts in untrusted tenants. Organizations can configure an allowlist or blocklist to control B2B collaboration invitations from specific organizations, and without these controls, threat actors can leverage social engineering techniques to obtain invitations from legitimate internal users. Once threat actors gain guest access through unrestricted domains, they can perform discovery activities to enumerate internal resources, users, and applications that guest accounts can access. The compromised guest account then serves as a persistent foothold, allowing threat actors to execute collection activities against accessible SharePoint sites, Teams channels, and other resources granted to guest users. From this position, threat actors can attempt lateral movement by exploiting trust relationships between the compromised tenant and partner organizations, or by leveraging guest permissions to access sensitive data that can be used for further credential compromise or business email compromise attacks. + +**Remediation action** + +- [Configure Domain-Based Allow or Deny Lists](https://learn.microsoft.com/en-us/entra/external-id/allow-deny-list) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 new file mode 100644 index 000000000000..f9a9e2427c23 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21822.ps1 @@ -0,0 +1,67 @@ +function Invoke-CippTestZTNA21822 { + <# + .SYNOPSIS + Guest access is limited to approved tenants + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21822' + + try { + # Get B2B management policy from cache + $B2BManagementPolicyObject = New-CIPPDbRequest -TenantFilter $Tenant -Type 'B2BManagementPolicy' + + $Passed = 'Failed' + $AllowedDomains = @() + $BlockedDomains = @() + + if ($B2BManagementPolicyObject -and $B2BManagementPolicyObject.definition) { + $B2BManagementPolicy = ($B2BManagementPolicyObject.definition | ConvertFrom-Json).B2BManagementPolicy + $AllowedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.AllowedDomains + $BlockedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.BlockedDomains + + if ($AllowedDomains -and $AllowedDomains.Count -gt 0) { + $Passed = 'Passed' + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Guest access is limited to approved tenants.`n" + } else { + $ResultMarkdown = "Guest access is not limited to approved tenants.`n" + } + + $ResultMarkdown += "`n`n## [Collaboration restrictions](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/)`n`n" + $ResultMarkdown += 'The tenant is configured to: ' + + if ($Passed -eq 'Passed') { + $ResultMarkdown += "**Allow invitations only to the specified domains (most restrictive)** ✅`n" + } else { + if ($BlockedDomains -and $BlockedDomains.Count -gt 0) { + $ResultMarkdown += "**Deny invitations to the specified domains** ❌`n" + } else { + $ResultMarkdown += "**Allow invitations to be sent to any domain (most inclusive)** ❌`n" + } + } + + if (($AllowedDomains -and $AllowedDomains.Count -gt 0) -or ($BlockedDomains -and $BlockedDomains.Count -gt 0)) { + $ResultMarkdown += "| Domain | Status |`n" + $ResultMarkdown += "| :--- | :--- |`n" + + foreach ($Domain in $AllowedDomains) { + $ResultMarkdown += "| $Domain | ✅ Allowed |`n" + } + + foreach ($Domain in $BlockedDomains) { + $ResultMarkdown += "| $Domain | ❌ Blocked |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md new file mode 100644 index 000000000000..577af3c21731 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.md @@ -0,0 +1,10 @@ +When guest self-service sign-up is enabled, threat actors can exploit it to establish unauthorized access by creating legitimate guest accounts without requiring approval from authorized personnel. These accounts can be scoped to specific services to reduce detection and effectively bypass invitation-based controls that validate external user legitimacy. + +Once created, self-provisioned guest accounts provide persistent access to organizational resources and applications. Threat actors can use them to conduct reconnaissance activities to map internal systems, identify sensitive data repositories, and plan further attack vectors. This persistence allows adversaries to maintain access across restarts, credential changes, and other interruptions, while the guest account itself offers a seemingly legitimate identity that might evade security monitoring focused on external threats. + +Additionally, compromised guest identities can be used to establish credential persistence and potentially escalate privileges. Attackers can exploit trust relationships between guest accounts and internal resources, or use the guest account as a staging ground for lateral movement toward more privileged organizational assets. + +**Remediation action** +- [Configure guest self-service sign-up With Microsoft Entra External ID](https://learn.microsoft.com/en-us/entra/external-id/external-collaboration-settings-configure?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-configure-guest-self-service-sign-up) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 new file mode 100644 index 000000000000..24ddb005d5bb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21823.ps1 @@ -0,0 +1,34 @@ +function Invoke-CippTestZTNA21823 { + <# + .SYNOPSIS + Guest self-service sign-up via user flow is disabled + #> + param($Tenant) + + $TestId = 'ZTNA21823' + #Tested + try { + # Get authentication flows policy from cache + $AuthFlowPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationFlowsPolicy' + + if (-not $AuthFlowPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + return + } + + $Passed = if ($AuthFlowPolicy.selfServiceSignUp.isEnabled -eq $false) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "[Guest self-service sign up via user flow](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/ExternalIdentitiesGettingStarted) is disabled.`n" + } else { + $ResultMarkdown = "[Guest self-service sign up via user flow](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/CompanyRelationshipsMenuBlade/~/Settings/menuId/ExternalIdentitiesGettingStarted) is enabled.`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest self-service sign-up via user flow is disabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md new file mode 100644 index 000000000000..b6f19e7039e7 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.md @@ -0,0 +1,12 @@ +Guest accounts with extended sign-in sessions increase the risk surface area that threat actors can exploit. When guest sessions persist beyond necessary timeframes, threat actors often attempt to gain initial access through credential stuffing, password spraying, or social engineering attacks. Once they gain access, they can maintain unauthorized access for extended periods without reauthentication challenges. These compromised and extended sessions: + +- Allow unauthorized access to Microsoft Entra artifacts, enabling threat actors to identify sensitive resources and map organizational structures. +- Allow threat actors to persist within the network by using legitimate authentication tokens, making detection more challenging as the activity appears as typical user behavior. +- Provides threat actors with a longer window of time to escalate privileges through techniques like accessing shared resources, discovering more credentials, or exploiting trust relationships between systems. + +Without proper session controls, threat actors can achieve lateral movement across the organization's infrastructure, accessing critical data and systems that extend far beyond the original guest account's intended scope of access. + +**Remediation action** +- [Configure adaptive session lifetime policies](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) so sign-in frequency policies have shorter live sign-in sessions. +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 new file mode 100644 index 000000000000..a6993c280c02 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21824.ps1 @@ -0,0 +1,86 @@ +function Invoke-CippTestZTNA21824 { + <# + .SYNOPSIS + Guests don't have long lived sign-in sessions + #> + param($Tenant) + #Tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + return + } + + $filteredCAPolicies = $allCAPolicies | Where-Object { + ($null -ne $_.conditions.users.includeGuestsOrExternalUsers) -and + ($_.state -in @('enabled', 'enabledForReportingButNotEnforced')) -and + ($null -eq $_.grantControls.termsOfUse -or $_.grantControls.termsOfUse.Count -eq 0) + } + + $matchedPolicies = $filteredCAPolicies | Where-Object { + $signInFrequency = $_.sessionControls.signInFrequency + if ($signInFrequency -and $signInFrequency.isEnabled) { + ($signInFrequency.type -eq 'hours' -and $signInFrequency.value -le 24) -or + ($signInFrequency.type -eq 'days' -and $signInFrequency.value -eq 1) -or + ($null -eq $signInFrequency.type -and $signInFrequency.frequencyInterval -eq 'everyTime') + } else { + $false + } + } + + $passed = if ($filteredCAPolicies.Count -eq $matchedPolicies.Count) { 'Passed' } else { 'Failed' } + + if ($passed -eq 'Passed') { + $testResultMarkdown = "Guests don't have long lived sign-in sessions." + } else { + $testResultMarkdown = 'Guests do have long lived sign-in sessions.' + } + + $reportTitle = 'Sign-in frequency policies' + + if ($filteredCAPolicies -and $filteredCAPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Sign-in Frequency | Status |`n" + $mdInfo += "| :---------- | :---------------- | :----- |`n" + + foreach ($filteredCAPolicy in $filteredCAPolicies) { + $policyName = $filteredCAPolicy.DisplayName + + $signInFrequency = $filteredCAPolicy.sessionControls.signInFrequency + switch ($signInFrequency.type) { + 'hours' { + $signInFreqValue = "$($signInFrequency.value) hours" + } + 'days' { + $signInFreqValue = "$($signInFrequency.value) days" + } + default { + if ($signInFrequency.frequencyInterval -eq 'everyTime') { + $signInFreqValue = 'Every time' + } else { + $signInFreqValue = 'Not configured' + } + } + } + + $status = if ($matchedPolicies -and $matchedPolicies.Id -contains $filteredCAPolicy.Id) { + '✅' + } else { + '❌' + } + + $mdInfo += "| $policyName | $signInFreqValue | $status |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21824' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name "Guests don't have long lived sign-in sessions" -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md new file mode 100644 index 000000000000..25e38ec74568 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.md @@ -0,0 +1,15 @@ +When privileged users are allowed to maintain long-lived sign-in sessions without periodic reauthentication, threat actors can gain extended windows of opportunity to exploit compromised credentials or hijack active sessions. Once a privileged account is compromised through techniques like credential theft, phishing, or session fixation, extended session timeouts allow threat actors to maintain persistence within the environment for prolonged periods. With long-lived sessions, threat actors can perform lateral movement across systems, escalate privileges further, and access sensitive resources without triggering another authentication challenge. The extended session duration also increases the window for session hijacking attacks, where threat actors can steal session tokens and impersonate the privileged user. Once a threat actor is established in a privileged session, they can: + +- Create backdoor accounts +- Modify security policies +- Access sensitive data +- Establish more persistence mechanisms + +The lack of periodic reauthentication requirements means that even if the original compromise is detected, the threat actor might continue operating undetected using the hijacked privileged session until the session naturally expires or the user manually signs out. + +**Remediation action** + +- [Learn about Conditional Access adaptive session lifetime policies](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure sign-in frequency for privileged users with Conditional Access policies ](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-session-lifetime?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 new file mode 100644 index 000000000000..2ad49609f454 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21825.ps1 @@ -0,0 +1,107 @@ +function Invoke-CippTestZTNA21825 { + <# + .SYNOPSIS + Privileged users have short-lived sign-in sessions + #> + param($Tenant) + + $TestId = 'ZTNA21825' + #Tested + try { + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles -or $PrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + # Get Conditional Access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + # Filter to policies targeting roles + $RoleScopedPolicies = $CAPolicies | Where-Object { + $_.conditions.users.includeRoles -and $_.conditions.users.includeRoles.Count -gt 0 + } + + # Recommended: Sign-in frequency should be 4 hours or less for privileged users + $RecommendedMaxHours = 4 + + $ResultMarkdown = "## Privileged User Sign-In Sessions`n`n" + $ResultMarkdown += "**Total Privileged Roles Found:** $($PrivilegedRoles.Count)`n`n" + $ResultMarkdown += "**CA Policies Targeting Roles:** $($RoleScopedPolicies.Count)`n`n" + $ResultMarkdown += "**Recommended Sign In Session Hours:** $RecommendedMaxHours`n`n" + $ResultMarkdown += "### Conditional Access Policies by Privileged Role`n`n" + + $AllRolesCovered = $true + + foreach ($Role in $PrivilegedRoles) { + $ResultMarkdown += "#### $($Role.displayName)`n`n" + + # Get CA policies assigned to this role + $AssignedPolicies = $CAPolicies | Where-Object { $_.conditions.users.includeRoles -contains $Role.id } + $EnabledPolicies = $AssignedPolicies | Where-Object { $_.state -eq 'enabled' } + + if ($EnabledPolicies.Count -gt 0) { + # Check if at least one compliant enabled policy covers this role + $CompliantForRole = $EnabledPolicies | Where-Object { + $_.sessionControls.signInFrequency -and + $_.sessionControls.signInFrequency.type -eq 'hours' -and + $_.sessionControls.signInFrequency.value -le $RecommendedMaxHours + } + + $RoleStatus = if ($CompliantForRole.Count -gt 0) { + '✅ Covered' + } else { + '❌ Not Covered'; $AllRolesCovered = $false + } + $ResultMarkdown += "**Status:** $RoleStatus`n`n" + + $ResultMarkdown += "| Policy Name | Sign-In Frequency | Compliant |`n" + $ResultMarkdown += "| :--- | :--- | :--- |`n" + + foreach ($Policy in $EnabledPolicies) { + $FreqValue = 'Not Configured' + $IsCompliant = '❌' + + if ($Policy.sessionControls.signInFrequency) { + $Freq = $Policy.sessionControls.signInFrequency + $FreqValue = "$($Freq.value) $($Freq.type)" + + if ($Freq.type -eq 'hours' -and $Freq.value -le $RecommendedMaxHours) { + $IsCompliant = '✅' + } elseif ($Freq.type -eq 'hours') { + $IsCompliant = "⚠️ ($($Freq.value)h > $($RecommendedMaxHours)h)" + } else { + $IsCompliant = '❌ (Days not recommended)' + } + } + + $PolicyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "| [$($Policy.displayName)]($PolicyLink) | $FreqValue | $IsCompliant |`n" + } + $ResultMarkdown += "`n" + } else { + $ResultMarkdown += "**Status:** ❌ No CA policies assigned`n`n" + $ResultMarkdown += "*No Conditional Access policies target this privileged role.*`n`n" + $AllRolesCovered = $false + } + } + + $Passed = if ($AllRolesCovered -and $PrivilegedRoles.Count -gt 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown += "✅ **All privileged roles are covered by enabled policies enforcing short-lived sessions (≤$RecommendedMaxHours hours).**`n" + } else { + $ResultMarkdown += "❌ **Not all privileged roles are covered by compliant sign-in frequency controls.**`n" + $ResultMarkdown += "`n**Recommendation:** Configure Conditional Access policies to enforce sign-in frequency of $RecommendedMaxHours hours or less for ALL privileged roles.`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Privileged users have short-lived sign-in sessions' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md new file mode 100644 index 000000000000..5f23b96e0682 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.md @@ -0,0 +1,8 @@ +Blocking authentication transfer in Microsoft Entra ID is a critical security control. It helps protect against token theft and replay attacks by preventing the use of device tokens to silently authenticate on other devices or browsers. When authentication transfer is enabled, a threat actor who gains access to one device can access resources to nonapproved devices, bypassing standard authentication and device compliance checks. When administrators block this flow, organizations can ensure that each authentication request must originate from the original device, maintaining the integrity of the device compliance and user session context. + +**Remediation action** + +- [Deploy a Conditional Access policy to block authentication transfer](https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-block-authentication-flows?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#authentication-transfer-policies) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 new file mode 100644 index 000000000000..8fa1c672570e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21828.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippTestZTNA21828 { + <# + .SYNOPSIS + Authentication transfer is blocked + #> + param($Tenant) + #Tested + try { + $allCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $allCAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + return + } + + $matchedPolicies = $allCAPolicies | Where-Object { + $_.conditions.authenticationFlows.transferMethods -match 'authenticationTransfer' -and + $_.grantControls.builtInControls -contains 'block' -and + $_.conditions.users.includeUsers -eq 'all' -and + $_.conditions.applications.includeApplications -eq 'all' -and + $_.state -eq 'enabled' + } + + if ($matchedPolicies.Count -gt 0) { + $passed = 'Passed' + $testResultMarkdown = 'Authentication transfer is blocked by Conditional Access Policy(s).' + } else { + $passed = 'Failed' + $testResultMarkdown = 'Authentication transfer is not blocked.' + } + + $reportTitle = 'Conditional Access Policies targeting Authentication Transfer' + + if ($matchedPolicies.Count -gt 0) { + $mdInfo = "`n## $reportTitle`n`n" + $mdInfo += "| Policy Name | Policy ID | State | Created | Modified |`n" + $mdInfo += "| :---------- | :-------- | :---- | :------ | :------- |`n" + + foreach ($policy in $matchedPolicies) { + $created = if ($policy.createdDateTime) { $policy.createdDateTime } else { 'N/A' } + $modified = if ($policy.modifiedDateTime) { $policy.modifiedDateTime } else { 'N/A' } + $mdInfo += "| $($policy.displayName) | $($policy.id) | $($policy.state) | $created | $modified |`n" + } + + $testResultMarkdown = $testResultMarkdown + $mdInfo + } else { + $testResultMarkdown = $testResultMarkdown + "`n`nNo Conditional Access policies targeting authentication transfer." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status $passed -ResultMarkdown $testResultMarkdown -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21828' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Authentication transfer is blocked' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Conditional Access' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md new file mode 100644 index 000000000000..470f74876eea --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.md @@ -0,0 +1,8 @@ +An on-premises federation server introduces a critical attack surface by serving as a central authentication point for cloud applications. Threat actors often gain a foothold by compromising a privileged user such as a help desk representative or an operations engineer through attacks like phishing, credential stuffing, or exploiting weak passwords. They might also target unpatched vulnerabilities in infrastructure, use remote code execution exploits, attack the Kerberos protocol, or use pass-the-hash attacks to escalate privileges. Misconfigured remote access tools like remote desktop protocol (RDP), virtual private network (VPN), or jump servers provide other entry points, while supply chain compromises or malicious insiders further increase exposure. Once inside, threat actors can manipulate authentication flows, forge security tokens to impersonate any user, and pivot into cloud environments. Establishing persistence, they can disable security logs, evade detection, and exfiltrate sensitive data. + +**Remediation action** + +- [Migrate from federation to cloud authentication like Microsoft Entra Password hash synchronization (PHS)](https://learn.microsoft.com/entra/identity/hybrid/connect/migrate-from-federation-to-cloud-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 new file mode 100644 index 000000000000..6dcd4437bd47 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21829.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestZTNA21829 { + <# + .SYNOPSIS + Use cloud authentication + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21829' + + try { + # Get domains + $Domains = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Domains' + + if (-not $Domains) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + return + } + + $FederatedDomains = $Domains | Where-Object { $_.authenticationType -eq 'Federated' } + $Passed = if ($FederatedDomains.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "All domains are using cloud authentication.`n`n" + } else { + $ResultMarkdown = "Federated authentication is in use.`n`n" + + $ResultMarkdown += "`n## List of federated domains`n`n" + $ResultMarkdown += "| Domain Name |`n" + $ResultMarkdown += "| :--- |`n" + foreach ($Domain in $FederatedDomains) { + $ResultMarkdown += "| $($Domain.id) |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Use cloud authentication' -UserImpact 'High' -ImplementationEffort 'High' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md new file mode 100644 index 000000000000..790102b27622 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.md @@ -0,0 +1,11 @@ +If privileged role activations aren't restricted to dedicated Privileged Access Workstations (PAWs), threat actors can exploit compromised endpoint devices to perform privileged escalation attacks from unmanaged or noncompliant workstations. Standard productivity workstations often contain attack vectors such as unrestricted web browsing, email clients vulnerable to phishing, and locally installed applications with potential vulnerabilities. When administrators activated privileged roles from these workstations, threat actors who gain initial access through malware, browser exploits, or social engineering can then use the locally cached privileged credentials or hijack existing authenticated sessions to escalate their privileges. Privileged role activations grant extensive administrative rights across Microsoft Entra ID and connected services, so attackers can create new administrative accounts, modify security policies, access sensitive data across all organizational resources, and deploy malware or backdoors throughout the environment to establish persistent access. This lateral movement from a compromised endpoint to privileged cloud resources represents a critical attack path that bypasses many traditional security controls. The privileged access appears legitimate when originating from an authenticated administrator's session. + +If this check passes, your tenant has a Conditional Access policy that restricts privileged role access to PAW devices, but it isn't the only control required to fully enable a PAW solution. You also need to configure an Intune device configuration and compliance policy and a device filter. + +**Remediation action** + +- [Deploy a privileged access workstation solution](https://learn.microsoft.com/security/privileged-access-workstations/privileged-access-deployment?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - Provides guidance for configuring the Conditional Access and Intune device configuration and compliance policies. +- [Configure device filters in Conditional Access to restrict privileged access](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-condition-filters-for-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 new file mode 100644 index 000000000000..8dd9f35942b8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21830.ps1 @@ -0,0 +1,86 @@ +function Invoke-CippTestZTNA21830 { + <# + .SYNOPSIS + Conditional Access policies for Privileged Access Workstations are configured + #> + param($Tenant) + + $TestId = 'ZTNA21830' + #Tested + try { + # Get Conditional Access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $EnabledCAPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $CompliantDevicePolicies = [System.Collections.Generic.List[object]]::new() + $DeviceFilterPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($Policy in $EnabledCAPolicies) { + # Check if policy targets privileged roles + $TargetsPrivilegedRoles = $false + if ($Policy.conditions.users.includeRoles) { + foreach ($RoleId in $Policy.conditions.users.includeRoles) { + if ($PrivilegedRoles.id -contains $RoleId) { + $TargetsPrivilegedRoles = $true + break + } + } + } + + if ($TargetsPrivilegedRoles) { + # Check for compliant device control + if ($Policy.grantControls.builtInControls -contains 'compliantDevice') { + $CompliantDevicePolicies.Add($Policy) + } + + # Check for device filter exclude + block + $HasDeviceFilterExclude = $Policy.conditions.devices.deviceFilter -and + $Policy.conditions.devices.deviceFilter.mode -eq 'exclude' + $BlocksAccess = (-not $Policy.grantControls.builtInControls) -or + ($Policy.grantControls.builtInControls -contains 'block') + + if ($HasDeviceFilterExclude -and $BlocksAccess) { + $DeviceFilterPolicies.Add($Policy) + } + } + } + + $Passed = if ($CompliantDevicePolicies.Count -eq 0 -or $DeviceFilterPolicies.Count -eq 0) { 'Failed' } else { 'Passed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = 'Conditional Access policies restrict privileged role access to PAW devices.' + } else { + $ResultMarkdown = 'No Conditional Access policies found that restrict privileged roles to PAW device.' + } + + $CompliantDeviceMarkdown = if ($CompliantDevicePolicies.Count -gt 0) { '✅' } else { '❌' } + $DeviceFilterMarkdown = if ($DeviceFilterPolicies.Count -gt 0) { '✅' } else { '❌' } + + $ResultMarkdown += "`n`n**$CompliantDeviceMarkdown Found $($CompliantDevicePolicies.Count) policy(s) with compliant device control targeting all privileged roles**`n" + foreach ($Policy in $CompliantDevicePolicies) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "- **Policy:** [$($Policy.displayName)]($PortalLink)`n" + } + + $ResultMarkdown += "`n`n**$DeviceFilterMarkdown Found $($DeviceFilterPolicies.Count) policy(s) with PAW/SAW device filter targeting all privileged roles**`n" + foreach ($Policy in $DeviceFilterPolicies) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $ResultMarkdown += "- **Policy:** [$($Policy.displayName)]($PortalLink)`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Conditional Access policies for Privileged Access Workstations are configured' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md new file mode 100644 index 000000000000..abcf2871d752 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21831.md @@ -0,0 +1,10 @@ +Threat actors who gain privileged access to a tenant can manipulate identity, access, and security configurations. This type of attack can result in environment-wide compromise and loss of control over organizational assets. Take action to protect high-impact management tasks associated with Conditional Access policies, cross-tenant access settings, hard deletions, and network locations that are critical to maintaining security. + +Protected actions let administrators secure these tasks with extra security controls, such as stronger authentication methods (passwordless MFA or phishing-resistant MFA), the use of Privileged Access Workstation (PAW) devices, or shorter session timeouts. + +**Remediation action** + +- [Add, test, or remove protected actions in Microsoft Entra ID](https://learn.microsoft.com/entra/identity/role-based-access-control/protected-actions-add?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21832.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21833.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21834.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md new file mode 100644 index 000000000000..be68f5749ef6 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.md @@ -0,0 +1,8 @@ +Microsoft recommends that organizations have two cloud-only emergency access accounts permanently assigned the [Global Administrator](https://learn.microsoft.com/entra/identity/role-based-access-control/permissions-reference?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#global-administrator) role. These accounts are highly privileged and aren't assigned to specific individuals. The accounts are limited to emergency or "break glass" scenarios where normal accounts can't be used or all other administrators are accidentally locked out. + +**Remediation action** + +- Create accounts following the [emergency access account recommendations](https://learn.microsoft.com/entra/identity/role-based-access-control/security-emergency-access?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 new file mode 100644 index 000000000000..f9f7e021dd98 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 @@ -0,0 +1,205 @@ +function Invoke-CippTestZTNA21835 { + <# + .SYNOPSIS + Emergency access accounts are configured appropriately + #> + param($Tenant) + #Untested + $TestId = 'ZTNA21835' + + try { + # Get Global Administrator role (template ID: 62e90394-69f5-4237-9190-012177145e10) + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $GlobalAdminRole = $Roles | Where-Object { $_.roleTemplateId -eq '62e90394-69f5-4237-9190-012177145e10' } + + if (-not $GlobalAdminRole) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + # Get permanent Global Administrator members + $PermanentGAMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId '62e90394-69f5-4237-9190-012177145e10' | Where-Object { + $_.AssignmentType -eq 'Permanent' -and $_.'@odata.type' -eq '#microsoft.graph.user' + } + + # Get Users data to check sync status + $Users = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + + $EmergencyAccountCandidates = [System.Collections.Generic.List[object]]::new() + + foreach ($Member in $PermanentGAMembers) { + $User = $Users | Where-Object { $_.id -eq $Member.principalId } + + # Only process cloud-only accounts + if ($User -and $User.onPremisesSyncEnabled -ne $true) { + # Note: Individual user authentication methods require per-user API calls not available in cache + # Add all cloud-only permanent GAs as candidates (cannot verify auth methods from cache) + $EmergencyAccountCandidates.Add([PSCustomObject]@{ + Id = $User.id + UserPrincipalName = $User.userPrincipalName + DisplayName = $User.displayName + OnPremisesSyncEnabled = $User.onPremisesSyncEnabled + AuthenticationMethods = @('Unknown - requires per-user API call') + CAPoliciesTargeting = 0 + ExcludedFromAllCA = $false + }) + } + } + + # Get CA policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $EnabledCAPolicies = $CAPolicies | Where-Object { $_.state -eq 'enabled' } + + $EmergencyAccessAccounts = [System.Collections.Generic.List[object]]::new() + + foreach ($Candidate in $EmergencyAccountCandidates) { + # Note: Transitive group and role memberships require per-user API calls not available in cache + # Simplified check: only verify direct includes/excludes in CA policies + $UserGroupIds = @() + $UserRoles = @() + $UserRoleIds = @() + + $PoliciesTargetingUser = 0 + $ExcludedFromAll = $true + + foreach ($Policy in $EnabledCAPolicies) { + $IsTargeted = $false + + # Check user includes/excludes + $IncludeUsers = @($Policy.conditions.users.includeUsers) + $ExcludeUsers = @($Policy.conditions.users.excludeUsers) + + if ($IncludeUsers -contains 'All' -or $IncludeUsers -contains $Candidate.Id) { + $IsTargeted = $true + } + + if ($ExcludeUsers -contains $Candidate.Id) { + $IsTargeted = $false + } + + # Check group includes/excludes + if (-not $IsTargeted -and $UserGroupIds.Count -gt 0) { + $IncludeGroups = @($Policy.conditions.users.includeGroups) + $ExcludeGroups = @($Policy.conditions.users.excludeGroups) + + foreach ($GroupId in $UserGroupIds) { + if ($IncludeGroups -contains $GroupId) { + $IsTargeted = $true + } + if ($ExcludeGroups -contains $GroupId) { + $IsTargeted = $false + break + } + } + } + + # Check role includes/excludes + $IncludeRoles = @($Policy.conditions.users.includeRoles) + $ExcludeRoles = @($Policy.conditions.users.excludeRoles) + + foreach ($RoleId in $UserRoleIds) { + $Role = $UserRoles | Where-Object { $_.id -eq $RoleId } + if ($Role -and $IncludeRoles -contains $Role.roleTemplateId) { + $IsTargeted = $true + } + if ($Role -and $ExcludeRoles -contains $Role.roleTemplateId) { + $IsTargeted = $false + break + } + } + + if ($IsTargeted) { + $PoliciesTargetingUser++ + $ExcludedFromAll = $false + } + } + + $Candidate.CAPoliciesTargeting = $PoliciesTargetingUser + $Candidate.ExcludedFromAllCA = $ExcludedFromAll + + if ($ExcludedFromAll) { + $EmergencyAccessAccounts.Add($Candidate) + } + } + + $AccountCount = $EmergencyAccessAccounts.Count + $Passed = 'Failed' + $ResultMarkdown = '' + + if ($AccountCount -lt 2) { + $ResultMarkdown = "Fewer than two emergency access accounts were identified based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions.`n`n" + } elseif ($AccountCount -ge 2 -and $AccountCount -le 4) { + $Passed = 'Passed' + $ResultMarkdown = "Emergency access accounts appear to be configured as per Microsoft guidance based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions.`n`n" + } else { + $ResultMarkdown = "$AccountCount emergency access accounts appear to be configured based on cloud-only state, registered phishing-resistant credentials and Conditional Access policy exclusions. Review these accounts to determine whether this volume is excessive for your organization.`n`n" + } + + $ResultMarkdown += "**Summary:**`n" + $ResultMarkdown += "- Total permanent Global Administrators: $($PermanentGAMembers.Count)`n" + $ResultMarkdown += "- Cloud-only GAs with phishing-resistant auth: $($EmergencyAccountCandidates.Count)`n" + $ResultMarkdown += "- Emergency access accounts (excluded from all CA): $AccountCount`n" + $ResultMarkdown += "- Enabled Conditional Access policies: $($EnabledCAPolicies.Count)`n`n" + + if ($EmergencyAccessAccounts.Count -gt 0) { + $ResultMarkdown += "## Emergency access accounts`n`n" + $ResultMarkdown += "| Display name | UPN | Synced from on-premises | Authentication methods |`n" + $ResultMarkdown += "| :----------- | :-- | :---------------------- | :--------------------- |`n" + + foreach ($Account in $EmergencyAccessAccounts) { + $SyncStatus = if ($Account.OnPremisesSyncEnabled -ne $true) { 'No' } else { 'Yes' } + $AuthMethodDisplay = ($Account.AuthenticationMethods | ForEach-Object { + $_ -replace '#microsoft.graph.', '' -replace 'AuthenticationMethod', '' + }) -join ', ' + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($Account.Id)" + $ResultMarkdown += "| $($Account.DisplayName) | [$($Account.UserPrincipalName)]($PortalLink) | $SyncStatus | $AuthMethodDisplay |`n" + } + $ResultMarkdown += "`n" + } + + if ($PermanentGAMembers.Count -gt 0) { + $ResultMarkdown += "## All permanent Global Administrators`n`n" + $ResultMarkdown += "| Display name | UPN | Cloud only | All CA excluded | Phishing resistant auth |`n" + $ResultMarkdown += "| :----------- | :-- | :--------: | :---------: | :---------------------: |`n" + + $UserSummary = [System.Collections.Generic.List[object]]::new() + foreach ($Member in $PermanentGAMembers) { + $User = $Users | Where-Object { $_.id -eq $Member.principalId } + if (-not $User) { continue } + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($User.id)" + $IsCloudOnly = ($User.onPremisesSyncEnabled -ne $true) + $CloudOnlyEmoji = if ($IsCloudOnly) { '✅' } else { '❌' } + + $EmergencyAccount = $EmergencyAccessAccounts | Where-Object { $_.Id -eq $User.id } + $CAExcludedEmoji = if ($EmergencyAccount) { '✅' } else { '❌' } + + $Candidate = $EmergencyAccountCandidates | Where-Object { $_.Id -eq $User.id } + $PhishingResistantEmoji = if ($Candidate) { '✅' } else { '❌' } + + $UserSummary.Add([PSCustomObject]@{ + DisplayName = $User.displayName + UserPrincipalName = $User.userPrincipalName + PortalLink = $PortalLink + CloudOnly = $CloudOnlyEmoji + CAExcluded = $CAExcludedEmoji + PhishingResistant = $PhishingResistantEmoji + }) + } + + foreach ($UserSum in $UserSummary) { + $ResultMarkdown += "| $($UserSum.DisplayName) | [$($UserSum.UserPrincipalName)]($($UserSum.PortalLink)) | $($UserSum.CloudOnly) | $($UserSum.CAExcluded) | $($UserSum.PhishingResistant) |`n" + } + + $ResultMarkdown += "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Emergency access accounts are configured appropriately' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md new file mode 100644 index 000000000000..08ff6ceb70f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.md @@ -0,0 +1,8 @@ +If administrators assign privileged roles to workload identities, such as service principals or managed identities, the tenant can be exposed to significant risk if those identities are compromised. Threat actors who gain access to a privileged workload identity can perform reconnaissance to enumerate resources, escalate privileges, and manipulate or exfiltrate sensitive data. The attack chain typically begins with credential theft or abuse of a vulnerable application. Next step is privilege escalation through the assigned role, lateral movement across cloud resources, and finally persistence via other role assignments or credential updates. Workload identities are often used in automation and might not be monitored as closely as user accounts. Compromise can then go undetected, allowing threat actors to maintain access and control over critical resources. Workload identities aren't subject to user-centric protections like MFA, making least-privilege assignment and regular review essential. + +**Remediation action** +- [Review and remove privileged roles assignments](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-resource-roles-assign-roles?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#update-or-remove-an-existing-role-assignment). +- [Follow the best practices for workload identities](https://learn.microsoft.com/en-us/entra/workload-id/workload-identities-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#key-scenarios). +- [Learn about privileged roles and permissions in Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/privileged-roles-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 new file mode 100644 index 000000000000..e6129bd4a135 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 @@ -0,0 +1,67 @@ +function Invoke-CippTestZTNA21836 { + <# + .SYNOPSIS + Workload Identities are not assigned privileged roles + #> + param($Tenant) + #Untested + $TestId = 'ZTNA21836' + + try { + # Get privileged roles + $PrivilegedRoles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $PrivilegedRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + # Get workload identities (service principals) with privileged role assignments + $WorkloadIdentitiesWithPrivilegedRoles = [System.Collections.Generic.List[object]]::new() + + foreach ($Role in $PrivilegedRoles) { + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleId $Role.id + + foreach ($Member in $RoleMembers) { + if ($Member.'@odata.type' -eq '#microsoft.graph.servicePrincipal') { + $WorkloadIdentitiesWithPrivilegedRoles.Add([PSCustomObject]@{ + PrincipalId = $Member.principalId + PrincipalDisplayName = $Member.principalDisplayName + AppId = $Member.appId + RoleDisplayName = $Role.displayName + RoleDefinitionId = $Role.id + AssignmentType = $Member.AssignmentType + }) + } + } + } + + $Passed = 'Passed' + $ResultMarkdown = '' + + if ($WorkloadIdentitiesWithPrivilegedRoles.Count -gt 0) { + $Passed = 'Failed' + $ResultMarkdown = "**Found workload identities assigned to privileged roles.**`n" + $ResultMarkdown += "| Service Principal Name | Privileged Role | Assignment Type |`n" + $ResultMarkdown += "| :--- | :--- | :--- |`n" + + $SortedAssignments = $WorkloadIdentitiesWithPrivilegedRoles | Sort-Object -Property PrincipalDisplayName + + foreach ($Assignment in $SortedAssignments) { + $SPLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($Assignment.PrincipalId)/appId/$($Assignment.AppId)/preferredSingleSignOnMode~/null/servicePrincipalType/Application/fromNav/" + $ResultMarkdown += "| [$($Assignment.PrincipalDisplayName)]($SPLink) | $($Assignment.RoleDisplayName) | $($Assignment.AssignmentType) |`n" + } + $ResultMarkdown += "`n" + $ResultMarkdown += "`n**Recommendation:** Review and remove privileged role assignments from workload identities unless absolutely necessary. Use least-privilege principles and consider alternative approaches like managed identities with specific API permissions instead of directory roles.`n" + } else { + $ResultMarkdown = "✅ **No workload identities found with privileged role assignments.**`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Workload Identities are not assigned privileged roles' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md new file mode 100644 index 000000000000..c97fc5a08508 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.md @@ -0,0 +1,8 @@ +Controlling device proliferation is important. Set a reasonable limit on the number of devices each user can register in your Microsoft Entra ID tenant. Limiting device registration maintains security while allowing business flexibility. Microsoft Entra ID lets users register up to 50 devices by default. Reducing this number to 10 minimizes the attack surface and simplifies device management. + +**Remediation action** + +- Learn how to [limit the maximum number of devices per user](https://learn.microsoft.com/entra/identity/devices/manage-device-identities?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#configure-device-settings). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 new file mode 100644 index 000000000000..e42e48ac94d2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21837.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestZTNA21837 { + <# + .SYNOPSIS + Limit the maximum number of devices per user to 10 + #> + param($Tenant) + + $TestId = 'ZTNA21837' + #Tested + try { + # Get device registration policy + $DeviceSettings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceSettings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + return + } + + $UserQuota = $DeviceSettings.userDeviceQuota + $EntraDeviceSettingsLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/Overview' + + $Passed = 'Failed' + $CustomStatus = $null + + if ($null -eq $UserQuota -or $UserQuota -le 10) { + $Passed = 'Passed' + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota" + } elseif ($UserQuota -gt 10 -and $UserQuota -le 20) { + $CustomStatus = 'Investigate' + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota. Consider reducing to 10 or fewer." + } else { + $ResultMarkdown = "[Maximum number of devices per user]($EntraDeviceSettingsLink) is set to $UserQuota. Consider reducing to 10 or fewer." + } + + if ($CustomStatus) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $CustomStatus -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } else { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Limit the maximum number of devices per user to 10' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Devices' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md new file mode 100644 index 000000000000..966d20d34799 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.md @@ -0,0 +1,10 @@ +Enabling the security key authentication method in Microsoft Entra ID mitigates the risk of credential theft and unauthorized access by requiring hardware-backed, phishing-resistant authentication. If this best practice is not followed, threat actors can exploit weak or reused passwords, perform credential stuffing attacks, and escalate privileges through compromised accounts. The kill chain begins with reconnaissance where attackers gather information about user accounts, followed by credential harvesting through various techniques like social engineering or data breaches. Attackers then gain initial access using stolen credentials, move laterally within the network by exploiting trust relationships, and establish persistence to maintain long-term access. Without hardware-backed authentication like FIDO2 security keys, attackers can bypass basic password defenses and multi-factor authentication, increasing the likelihood of data exfiltration and business disruption. Security keys provide cryptographic proof of identity that is bound to the specific device and cannot be replicated or phished, effectively breaking the attack chain at the initial access stage. + +**Remediation action** + +* [Enable passkey (FIDO2) authentication method](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-enable-passkey-fido2#enable-passkey-fido2-authentication-method) + +* [Authentication method policy management](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 new file mode 100644 index 000000000000..87bc89f02394 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21838.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21838 { + <# + .SYNOPSIS + Security key authentication method enabled + #> + param($Tenant) + + $TestId = 'ZTNA21838' + #Tested + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $Fido2Enabled = $Fido2Config.state -eq 'enabled' + $Passed = if ($Fido2Enabled) { 'Passed' } else { 'Failed' } + $StatusEmoji = if ($Fido2Enabled) { '✅' } else { '❌' } + + if ($Fido2Enabled) { + $ResultMarkdown = "Security key authentication method is enabled for your tenant, providing hardware-backed phishing-resistant authentication.`n`n" + } else { + $ResultMarkdown = "Security key authentication method is not enabled; users cannot register FIDO2 security keys for strong authentication.`n`n" + } + + $ResultMarkdown += "## FIDO2 security key authentication settings`n`n" + $ResultMarkdown += "$StatusEmoji **FIDO2 authentication method**`n" + $ResultMarkdown += "- Status: $($Fido2Config.state)`n" + + $IncludeTargetsDisplay = if ($Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0) { + ($Fido2Config.includeTargets | ForEach-Object { if ($_.id -eq 'all_users') { 'All users' } else { $_.id } }) -join ', ' + } else { + 'None' + } + $ResultMarkdown += "- Include targets: $IncludeTargetsDisplay`n" + + $ExcludeTargetsDisplay = if ($Fido2Config.excludeTargets -and $Fido2Config.excludeTargets.Count -gt 0) { + ($Fido2Config.excludeTargets | ForEach-Object { $_.id }) -join ', ' + } else { + 'None' + } + $ResultMarkdown += "- Exclude targets: $ExcludeTargetsDisplay`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Security key authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md new file mode 100644 index 000000000000..036e0c9d2b1b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.md @@ -0,0 +1,11 @@ +When passkey authentication isn't enabled in Microsoft Entra ID, organizations rely on password-based authentication methods that are vulnerable to phishing, credential theft, and replay attacks. Attackers can use stolen passwords to gain initial access, bypass traditional multifactor authentication through Adversary-in-the-Middle (AiTM) attacks, and establish persistent access through token theft. + +Passkeys provide phishing-resistant authentication using cryptographic proof that attackers can't phish, intercept, or replay. Enabling passkeys eliminates the foundational vulnerability that enables credential-based attack chains. + +**Remediation action** + +- Learn how to [enable the passkey authentication method](https://learn.microsoft.com/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-passkey-fido2-authentication-method). +- Learn how to [plan a phishing-resistant passwordless authentication deployment](https://learn.microsoft.com/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 new file mode 100644 index 000000000000..743461e1ff9e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21839.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21839 { + <# + .SYNOPSIS + Passkey authentication method enabled + #> + param($Tenant) + + $TestId = 'ZTNA21839' + #Tested + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + return + } + + $State = $Fido2Config.state + $IncludeTargets = $Fido2Config.includeTargets + $IsAttestationEnforced = $Fido2Config.isAttestationEnforced + $KeyRestrictions = $Fido2Config.keyRestrictions + + $Fido2Enabled = $State -eq 'enabled' + $HasIncludeTargets = $IncludeTargets -and $IncludeTargets.Count -gt 0 + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods' + + $ResultMarkdown = "`n## [Passkey authentication method details]($PortalLink)`n" + + $StatusDisplay = if ($Fido2Enabled) { 'Enabled ✅' } else { 'Disabled ❌' } + $ResultMarkdown += "- **Status** : $StatusDisplay`n" + + if ($Fido2Enabled) { + $ResultMarkdown += '- **Include targets** : ' + if ($IncludeTargets) { + $TargetsDisplay = ($IncludeTargets | ForEach-Object { + if ($_.id -eq 'all_users') { 'All users' } else { $_.id } + }) -join ', ' + $ResultMarkdown += "$TargetsDisplay`n" + } else { + $ResultMarkdown += "None`n" + } + + $ResultMarkdown += "- **Enforce attestation** : $IsAttestationEnforced`n" + + if ($KeyRestrictions) { + $ResultMarkdown += "- **Key restriction policy** :`n" + if ($null -ne $KeyRestrictions.isEnforced) { + $ResultMarkdown += " - **Enforce key restrictions** : $($KeyRestrictions.isEnforced)`n" + } else { + $ResultMarkdown += " - **Enforce key restrictions** : Not configured`n" + } + if ($KeyRestrictions.enforcementType) { + $ResultMarkdown += " - **Restrict specific keys** : $($KeyRestrictions.enforcementType)`n" + } else { + $ResultMarkdown += " - **Restrict specific keys** : Not configured`n" + } + } + } + + $Passed = if ($Fido2Enabled -and $HasIncludeTargets) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Passkey authentication method is enabled and configured for users in your tenant.$ResultMarkdown" + } else { + $ResultMarkdown = "Passkey authentication method is not enabled or not configured for any users in your tenant.$ResultMarkdown" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Passkey authentication method enabled' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md new file mode 100644 index 000000000000..b83dff41f9dc --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.md @@ -0,0 +1,9 @@ +When security key attestation isn't enforced, threat actors can exploit weak or compromised authentication hardware to establish persistent presence within organizational environments. Without attestation validation, malicious actors can register unauthorized or counterfeit FIDO2 security keys that bypass hardware-backed security controls, enabling them to perform credential stuffing attacks using fabricated authenticators that mimic legitimate security keys. This initial access lets threat actors escalate privileges by using the trusted nature of hardware authentication methods, then move laterally through the environment by registering more compromised security keys on high-privilege accounts. The lack of attestation enforcement creates a pathway for threat actors to establish command and control through persistent hardware-based authentication methods, ultimately leading to data exfiltration or system compromise while maintaining the appearance of legitimate hardware-secured authentication throughout the attack chain. + +**Remediation action** + +- [Enable attestation enforcement through the Authentication methods policy configuration](https://learn.microsoft.com/entra/identity/authentication/how-to-enable-passkey-fido2?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-passkey-fido2-authentication-method). +- [Configure approved list of security keys by Authenticator Attestation Globally Unique Identifier (AAGUID)](https://learn.microsoft.com/entra/identity/authentication/concept-fido2-hardware-vendor?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 new file mode 100644 index 000000000000..9c007bd3b1f4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21840.ps1 @@ -0,0 +1,72 @@ +function Invoke-CippTestZTNA21840 { + <# + .SYNOPSIS + Security key attestation is enforced + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21840' + + try { + # Get FIDO2 authentication method policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Fido2Config = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'Fido2' } + + if (-not $Fido2Config) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $IsAttestationEnforced = $Fido2Config.isAttestationEnforced + $KeyRestrictions = $Fido2Config.keyRestrictions + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods' + + $ResultMarkdown = "`n## [Security key attestation policy details]($PortalLink)`n" + + $AttestationStatus = if ($IsAttestationEnforced -eq $true) { 'True ✅' } else { 'False ❌' } + $ResultMarkdown += "- **Enforce attestation** : $AttestationStatus`n" + + if ($KeyRestrictions) { + $ResultMarkdown += "- **Key restriction policy** :`n" + if ($null -ne $KeyRestrictions.isEnforced) { + $ResultMarkdown += " - **Enforce key restrictions** : $($KeyRestrictions.isEnforced)`n" + } else { + $ResultMarkdown += " - **Enforce key restrictions** : Not configured`n" + } + if ($KeyRestrictions.enforcementType) { + $ResultMarkdown += " - **Restrict specific keys** : $($KeyRestrictions.enforcementType)`n" + } else { + $ResultMarkdown += " - **Restrict specific keys** : Not configured`n" + } + + if ($KeyRestrictions.aaGuids -and $KeyRestrictions.aaGuids.Count -gt 0) { + $ResultMarkdown += " - **AAGUID** :`n" + foreach ($Guid in $KeyRestrictions.aaGuids) { + $ResultMarkdown += " - $Guid`n" + } + } + } + + $Passed = if ($IsAttestationEnforced -eq $true) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Security key attestation is properly enforced, ensuring only verified hardware authenticators can be registered.$ResultMarkdown" + } else { + $ResultMarkdown = "Security key attestation is not enforced, allowing unverified or potentially compromised security keys to be registered.$ResultMarkdown" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Security key attestation is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md new file mode 100644 index 000000000000..e88e14ab14ad --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.md @@ -0,0 +1,10 @@ +Threat actors increasingly rely on prompt bombing and real-time phishing proxies to coerce or trick users into approving fraudulent multifactor authentication (MFA) challenges. Without the Microsoft Authenticator app's **Report suspicious activity** capability enabled, an attacker can iterate until a fatigued user accepts. This type of attack can lead to privilege escalation, persistence, lateral movement into sensitive workloads, data exfiltration, or destructive actions. + +When reporting is enabled for all users, any unexpected push or phone prompt can be actively flagged, immediately elevating the user to high user risk and generating a high-fidelity user risk detection (userReportedSuspiciousActivity) that risk-based Conditional Access policies or other response automation can use to block or require secure remediation. + +**Remediation action** + +- [Enable the report suspicious activity setting in the Microsoft Authenticator app](https://learn.microsoft.com/entra/identity/authentication/howto-mfa-mfasettings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#report-suspicious-activity) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 new file mode 100644 index 000000000000..4f17c2b6d6c2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21841.ps1 @@ -0,0 +1,53 @@ +function Invoke-CippTestZTNA21841 { + <# + .SYNOPSIS + Microsoft Authenticator app report suspicious activity setting is enabled + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21841' + + try { + # Get authentication methods policy + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Passed = 'Failed' + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AuthMethodsSettings' + + if ($AuthMethodsPolicy.reportSuspiciousActivitySettings) { + $ReportSettings = $AuthMethodsPolicy.reportSuspiciousActivitySettings + + $StateEnabled = $ReportSettings.state -eq 'enabled' + $TargetAllUsers = $false + + if ($ReportSettings.includeTarget) { + $TargetAllUsers = $ReportSettings.includeTarget.id -eq 'all_users' + } + + if ($StateEnabled -and $TargetAllUsers) { + $Passed = 'Passed' + $ResultMarkdown = "Authenticator app report suspicious activity is [enabled for all users]($PortalLink)." + } else { + if (-not $StateEnabled) { + $ResultMarkdown = "Authenticator app report suspicious activity is [not enabled]($PortalLink)." + } elseif (-not $TargetAllUsers) { + $ResultMarkdown = "Authenticator app report suspicious activity is [not configured for all users]($PortalLink)." + } + } + } else { + $ResultMarkdown = "Authenticator app report suspicious activity is [not enabled]($PortalLink)." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Microsoft Authenticator app report suspicious activity setting is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md new file mode 100644 index 000000000000..3fe9d727b41d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.md @@ -0,0 +1,10 @@ +Self-Service Password Reset (SSPR) for administrators allows password changes to happen without strong secondary authentication factors or administrative oversight. Threat actors who compromise administrative credentials can use this capability to bypass other security controls and maintain persistent access to the environment. + +Once compromised, attackers can immediately reset the password to lock out legitimate administrators. They can then establish persistence, escalate privileges, and deploy malicious payloads undetected. + +**Remediation action** + +- [Disable SSPR for administrators by updating the authorization policy](https://learn.microsoft.com/entra/identity/authentication/concept-sspr-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#administrator-reset-policy-differences) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 new file mode 100644 index 000000000000..1f2629709fec --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21842.ps1 @@ -0,0 +1,37 @@ +function Invoke-CippTestZTNA21842 { + <# + .SYNOPSIS + Block administrators from using SSPR + #> + param($Tenant) + + $TestId = 'ZTNA21842' + #Tested + try { + # Get authorization policy + $AuthorizationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthorizationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $AllowedToUseSspr = $AuthorizationPolicy.allowedToUseSspr + $Passed = 'Failed' + $UserMessage = '' + + if ($null -ne $AllowedToUseSspr -and $AllowedToUseSspr -eq $false) { + $Passed = 'Passed' + $UserMessage = '✅ Administrators are properly blocked from using Self-Service Password Reset, ensuring password changes go through controlled processes.' + } else { + $UserMessage = '❌ Administrators have access to Self-Service Password Reset, which bypasses security controls and administrative oversight.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $UserMessage -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Block administrators from using SSPR' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21843.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md new file mode 100644 index 000000000000..a74cead90b2c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.md @@ -0,0 +1,10 @@ +Threat actors frequently target legacy management interfaces such as the Azure AD PowerShell module (AzureAD and AzureADPreview), which don't support modern authentication, Conditional Access enforcement, or advanced audit logging. Continued use of these modules exposes the environment to risks including weak authentication, bypass of security controls, and incomplete visibility into administrative actions. Attackers can exploit these weaknesses to gain unauthorized access, escalate privileges, and perform malicious changes. + +Block the Azure AD PowerShell module and enforce the use of Microsoft Graph PowerShell or Microsoft Entra PowerShell to ensure that only secure, supported, and auditable management channels are available, which closes critical gaps in the attack chain. + +**Remediation action** + +- [Disable user sign-in for application](https://learn.microsoft.com/entra/identity/enterprise-apps/disable-user-sign-in-portal?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 new file mode 100644 index 000000000000..e0ddd6289188 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21844.ps1 @@ -0,0 +1,82 @@ +function Invoke-CippTestZTNA21844 { + <# + .SYNOPSIS + Block legacy Azure AD PowerShell module + #> + param($Tenant) + + $TestId = 'ZTNA21844' + #Tested + try { + # Azure AD PowerShell App ID + $AzureADPowerShellAppId = '1b730954-1685-4b74-9bfd-dac224a7b894' + + # Query for the Azure AD PowerShell service principal + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + $ServicePrincipal = $ServicePrincipals | Where-Object { $_.appId -eq $AzureADPowerShellAppId } + + $InvestigateStatus = $false + $AppName = 'Azure AD PowerShell' + $Passed = 'Failed' + + if (-not $ServicePrincipal -or $ServicePrincipal.Count -eq 0) { + $SummaryLines = @( + 'Summary', + '', + "- $AppName (Enterprise App not found in tenant)", + '- Sign in disabled: N/A', + '', + "$AppName has not been blocked by the organization." + ) + } else { + $SP = $ServicePrincipal[0] + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($SP.id)/appId/$($SP.appId)" + $ServicePrincipalMarkdown = "[$AppName]($PortalLink)" + + if ($SP.accountEnabled -eq $false) { + $Passed = 'Passed' + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: Yes', + '', + "$AppName is blocked in the tenant by turning off user sign in to the Azure Active Directory PowerShell Enterprise Application." + ) + } elseif ($SP.appRoleAssignmentRequired -eq $true) { + $InvestigateStatus = $true + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: No', + '- User assignment required: Yes', + '', + "App role assignment is required for $AppName. Review assignments and confirm that the app is inaccessible to users." + ) + } else { + $SummaryLines = @( + 'Summary', + '', + "- $ServicePrincipalMarkdown", + '- Sign in disabled: No', + '', + "$AppName has not been blocked by the organization." + ) + } + } + + $ResultMarkdown = $SummaryLines -join "`n" + + if ($InvestigateStatus) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } else { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Block legacy Azure AD PowerShell module' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md new file mode 100644 index 000000000000..a46f492f1452 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.md @@ -0,0 +1,12 @@ +Without Temporary Access Pass (TAP) enabled, organizations face significant challenges in securely bootstrapping user credentials, creating a vulnerability where users rely on weaker authentication mechanisms during their initial setup. When users cannot register phishing-resistant credentials like FIDO2 security keys or Windows Hello for Business due to lack of existing strong authentication methods, they remain exposed to credential-based attacks including phishing, password spray, or similar attacks. Threat actors can exploit this registration gap by targeting users during their most vulnerable state, when they have limited authentication options available and must rely on traditional username + password combinations. This exposure enables threat actors to compromise user accounts during the critical bootstrapping phase, allowing them to intercept or manipulate the registration process for stronger authentication methods, ultimately gaining persistent access to organizational resources and potentially escalating privileges before security controls are fully established. + +Enable TAP and use it with security info registration to secure this potential gap in your defenses. + +**Remediation action** + +- [Learn how to enable Temporary Access Pass in the Authentication methods policy](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-temporary-access-pass-policy) +- [Learn how to update authentication strength policies to include Temporary Access Pass](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-strength-advanced-options?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn how to create a Conditional Access policy for security info registration with authentication strength enforcement](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-security-info-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 new file mode 100644 index 000000000000..b8d816cc2c73 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21845.ps1 @@ -0,0 +1,73 @@ +function Invoke-CippTestZTNA21845 { + <# + .SYNOPSIS + Temporary access pass is enabled + #> + param($Tenant) + + $TestId = 'ZTNA21845' + #Tested + try { + # Get Temporary Access Pass configuration + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Check if TAP is disabled + if ($TAPConfig.state -ne 'enabled') { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown '❌ Temporary Access Pass is disabled in the tenant.' -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Get conditional access policies + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $SecurityInfoPolicies = $CAPolicies | Where-Object { + $_.state -eq 'enabled' -and + $_.conditions.applications.includeUserActions -contains 'urn:user:registersecurityinfo' -and + $_.grantControls.authenticationStrength -ne $null + } + + $TAPEnabled = $TAPConfig.state -eq 'enabled' + $TargetsAllUsers = $TAPConfig.includeTargets | Where-Object { $_.id -eq 'all_users' } + $HasConditionalAccessEnforcement = $SecurityInfoPolicies.Count -gt 0 + + # Note: Authentication strength policy validation requires additional API calls not available in cache + # Simplified check: verify TAP is enabled, targets all users, and CA policies exist + $TAPSupportedInAuthStrength = $HasConditionalAccessEnforcement + + # Determine pass/fail status + $Passed = 'Failed' + if ($TAPEnabled -and $TargetsAllUsers -and $HasConditionalAccessEnforcement -and $TAPSupportedInAuthStrength) { + $Passed = 'Passed' + $ResultMarkdown = 'Temporary Access Pass is enabled, targeting all users, and enforced with conditional access policies.' + } elseif ($TAPEnabled -and $TargetsAllUsers -and $HasConditionalAccessEnforcement -and -not $TAPSupportedInAuthStrength) { + $ResultMarkdown = "Temporary Access Pass is enabled but authentication strength policies don't include TAP methods." + } elseif ($TAPEnabled -and $TargetsAllUsers -and -not $HasConditionalAccessEnforcement) { + $ResultMarkdown = 'Temporary Access Pass is enabled but no conditional access enforcement for security info registration found. Consider adding conditional access policies for stronger security.' + } else { + $ResultMarkdown = 'Temporary Access Pass is not properly configured or does not target all users.' + } + + $ResultMarkdown += "`n`n**Configuration summary**`n`n" + + $TAPStatus = if ($TAPConfig.state -eq 'enabled') { 'Enabled ✅' } else { 'Disabled ❌' } + $ResultMarkdown += "[Temporary Access Pass](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods/fromNav/Identity): $TAPStatus`n`n" + + $CAStatus = if ($HasConditionalAccessEnforcement) { 'Enabled ✅' } else { 'Not enabled ❌' } + $ResultMarkdown += "[Conditional Access policy for Security info registration](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies/fromNav/Identity): $CAStatus`n`n" + + $AuthStrengthStatus = if ($TAPSupportedInAuthStrength) { 'Enabled ✅' } else { 'Not enabled ❌' } + $ResultMarkdown += "[Authentication strength policy for Temporary Access Pass](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/AuthenticationStrength.ReactView/fromNav/Identity): $AuthStrengthStatus`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Temporary access pass is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md new file mode 100644 index 000000000000..dc8bcf1e108f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.md @@ -0,0 +1,8 @@ +When Temporary Access Pass (TAP) is configured to allow multiple uses, threat actors who compromise the credential can reuse it repeatedly during its validity period, extending their unauthorized access window beyond the intended single bootstrapping event. This situation creates an extended opportunity for threat actors to establish persistence by registering additional strong authentication methods under the compromised account during the credential lifetime. A reusable TAP that falls into the wrong hands lets threat actors conduct reconnaissance activities across multiple sessions, gradually mapping the environment and identifying high-value targets while maintaining legitimate-looking access patterns. The compromised TAP can also serve as a reliable backdoor mechanism, allowing threat actors to maintain access even if other compromised credentials are detected and revoked, since the TAP appears as a legitimate administrative tool in security logs. + +**Remediation action** + +- [Configure Temporary Access Pass for one-time use in authentication methods policy](https://learn.microsoft.com/entra/identity/authentication/howto-authentication-temporary-access-pass?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#enable-the-temporary-access-pass-policy) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 new file mode 100644 index 000000000000..7788f63b92cb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21846.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21846 { + <# + .SYNOPSIS + Restrict Temporary Access Pass to Single Use + #> + param($Tenant) + + $TestId = 'ZTNA21846' + #Tested + try { + # Get Temporary Access Pass configuration + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + $TAPConfig = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'TemporaryAccessPass' } + + if (-not $TAPConfig) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Passed = if ($TAPConfig.isUsableOnce -eq $true) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "Temporary Access Pass is configured for one-time use only.`n`n" + } else { + $ResultMarkdown = "Temporary Access Pass allows multiple uses during validity period.`n`n" + } + + $ResultMarkdown += "## Temporary Access Pass Configuration`n`n" + $ResultMarkdown += "| Setting | Value | Status |`n" + $ResultMarkdown += "| :------ | :---- | :----- |`n" + + $IsUsableOnceValue = if ($TAPConfig.isUsableOnce) { 'Enabled' } else { 'Disabled' } + $StatusEmoji = if ($Passed -eq 'Passed') { '✅ Pass' } else { '❌ Fail' } + + $ResultMarkdown += "| [One-time use restriction](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/AdminAuthMethods/fromNav/) | $IsUsableOnceValue | $StatusEmoji |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Restrict Temporary Access Pass to Single Use' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md new file mode 100644 index 000000000000..3c5921bf5a0b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.md @@ -0,0 +1,12 @@ +When on-premises password protection isn’t enabled or enforced, threat actors can use low-and-slow password spray with common variants, such as season+year+symbol or local terms, to gain initial access to Active Directory Domain Services accounts. Domain Controllers (DCs) can accept weak passwords when either of the following statements are true: + +- Microsoft Entra Password Protection DC agent isn't installed +- The password protection tenant setting is disabled or in audit-only mode + +With valid on-premises credentials, attackers laterally move by reusing passwords across endpoints, escalate to domain admin through local admin reuse or service accounts, and persist by adding backdoors, while weak or disabled enforcement produces fewer blocking events and predictable signals. Microsoft’s design requires a proxy that brokers policy from Microsoft Entra ID and a DC agent that enforces the combined global and tenant custom banned lists on password change/reset; consistent enforcement requires DC agent coverage on all DCs in a domain and using Enforced mode after audit evaluation. + +**Remediation action** + +- [Deploy Microsoft Entra password protection](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-password-ban-bad-on-premises-deploy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 new file mode 100644 index 000000000000..89d23d50c6c1 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21847.ps1 @@ -0,0 +1,38 @@ +function Invoke-CippTestZTNA21847 { + <# + .SYNOPSIS + Password protection for on-premises is enabled + #> + param($Tenant) + + $TestId = 'ZTNA21847' + #Tested + try { + # Check if tenant has on-premises sync + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Organization' + + if (-not $Settings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $Org = $Settings[0] + + if ($Org.onPremisesSyncEnabled -ne $true) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown '✅ **Pass**: This tenant is not synchronized to an on-premises environment.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + # Note: Password protection settings require groupSettings API which is not cached + # This test requires direct API access to check EnableBannedPasswordCheckOnPremises and BannedPasswordCheckOnPremisesMode + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Password protection for on-premises is enabled' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md new file mode 100644 index 000000000000..2e03a7464592 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.md @@ -0,0 +1,10 @@ +Organizations that don't populate and enforce the custom banned password list expose themselves to a systematic attack chain where threat actors exploit predictable organizational password patterns. These threat actors typically start with reconnaissance phases, where they gather open-source intelligence (OSINT) from websites, social media, and public records to identify likely password components. With this knowledge, they launch password spray attacks that test organization-specific password variations across multiple user accounts, staying under lockout thresholds to avoid detection. Without the protection the custom banned password list offers, employees often add familiar organizational terms to their passwords, like locations, product names, and industry terms, creating consistent attack vectors. + +The custom banned password list helps organizations plug this critical gap to prevent easily guessed passwords that could lead to initial access and subsequent lateral movement within the environment. + +**Remediation action** + +- [Learn how to enable custom banned password protection and add organizational terms](https://learn.microsoft.com/entra/identity/authentication/tutorial-configure-custom-password-protection?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 new file mode 100644 index 000000000000..2622b1616cb2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21848.ps1 @@ -0,0 +1,66 @@ +function Invoke-CippTestZTNA21848 { + <# + .SYNOPSIS + Add organizational terms to the banned password list + #> + param($Tenant) + + $TestId = 'ZTNA21848' + #Tested + try { + # Get password protection settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordProtectionSettings = $Settings | Where-Object { $_.templateId -eq '5cf42378-d67d-4f36-ba46-e8b86229381d' } + + if (-not $PasswordProtectionSettings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + return + } + + $EnableBannedPasswordCheck = ($PasswordProtectionSettings.values | Where-Object { $_.name -eq 'EnableBannedPasswordCheck' }).value + $BannedPasswordList = ($PasswordProtectionSettings.values | Where-Object { $_.name -eq 'BannedPasswordList' }).value + + if ([string]::IsNullOrEmpty($BannedPasswordList)) { + $BannedPasswordList = $null + } + + $Passed = if ($EnableBannedPasswordCheck -eq $true -and $null -ne $BannedPasswordList) { 'Passed' } else { 'Failed' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + $Enforced = if ($EnableBannedPasswordCheck -eq $true) { 'Yes' } else { 'No' } + + # Split on tab characters to handle tab-delimited banned password entries + if ($BannedPasswordList) { + $BannedPasswordArray = $BannedPasswordList -split '\t' + } else { + $BannedPasswordArray = @() + } + + # Show up to 10 banned passwords, summarize if more exist + $MaxDisplay = 10 + if ($BannedPasswordArray.Count -gt $MaxDisplay) { + $DisplayList = $BannedPasswordArray[0..($MaxDisplay - 1)] + "...and $($BannedPasswordArray.Count - $MaxDisplay) more" + } else { + $DisplayList = $BannedPasswordArray + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = "✅ Custom banned passwords are properly configured with organization-specific terms.`n`n" + } else { + $ResultMarkdown = "❌ Custom banned passwords are not enabled or lack organization-specific terms.`n`n" + } + + $ResultMarkdown += "## [Password protection settings]($PortalLink)`n`n" + $ResultMarkdown += "| Enforce custom list | Custom banned password list | Number of terms |`n" + $ResultMarkdown += "| :------------------ | :-------------------------- | :-------------- |`n" + $ResultMarkdown += "| $Enforced | $($DisplayList -join ', ') | $($BannedPasswordArray.Count) |`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Add organizational terms to the banned password list' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md new file mode 100644 index 000000000000..1d3d17582ab0 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.md @@ -0,0 +1,8 @@ +When Smart Lockout duration is configured below the default 60 seconds, threat actors can exploit shortened lockout periods to conduct password spray and credential stuffing attacks more effectively. Reduced lockout windows allow attackers to resume authentication attempts more rapidly, increasing their success probability while potentially evading detection systems that rely on longer observation periods. + +**Remediation action** + +- [Set Smart Lockout duration to 60 seconds or higher](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#manage-microsoft-entra-smart-lockout-values) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 new file mode 100644 index 000000000000..3014ca59afee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21849.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestZTNA21849 { + <# + .SYNOPSIS + Smart lockout duration is set to a minimum of 60 + #> + param($Tenant) + + $TestId = 'ZTNA21849' + #Tested + try { + # Get password rule settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordRuleSettings = $Settings | Where-Object { $_.displayName -eq 'Password Rule Settings' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + if ($null -eq $PasswordRuleSettings) { + # Default is 60 seconds + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher (default).`n`n" + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | 60 (Default) |`n" + } else { + $LockoutDurationSetting = $PasswordRuleSettings.values | Where-Object { $_.name -eq 'LockoutDurationInSeconds' } + + if ($null -eq $LockoutDurationSetting) { + # Default is 60 seconds + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher (default).`n`n" + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | 60 (Default) |`n" + } else { + $LockoutDuration = [int]$LockoutDurationSetting.value + + if ($LockoutDuration -ge 60) { + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart Lockout duration is configured to 60 seconds or higher.`n`n" + } else { + $Passed = 'Failed' + $ResultMarkdown = "❌ Smart Lockout duration is configured below 60 seconds.`n`n" + } + + $ResultMarkdown += "## [Smart Lockout Settings]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout Duration (seconds) | $LockoutDuration |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Smart lockout duration is set to a minimum of 60' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Smart lockout duration is set to a minimum of 60' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md new file mode 100644 index 000000000000..fb2a9d166304 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.md @@ -0,0 +1,10 @@ +When the smart lockout threshold is set to more than 10, threat actors can exploit the configuration to conduct reconnaissance, identify valid user accounts without triggering lockout protections, and establish initial access without detection. Once attackers gain initial access, they can move laterally through the environment by using the compromised account to access resources and escalate privileges. + +Smart lockout helps lock out bad actors who try to guess your users' passwords or use brute force methods to get in. Smart lockout recognizes sign-ins that come from valid users and treats them differently than ones of attackers and other unknown sources. A threshold of more than 10 provides insufficient protection against automated password spray attacks, making it easier for threat actors to compromise accounts while evading detection mechanisms. + +**Remediation action** + +- [Set Microsoft Entra smart lockout threshold to 10 or less](https://learn.microsoft.com/entra/identity/authentication/howto-password-smart-lockout?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 new file mode 100644 index 000000000000..cc372297ec95 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21850.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestZTNA21850 { + <# + .SYNOPSIS + Smart lockout threshold set to 10 or less + #> + param($Tenant) + + $TestId = 'ZTNA21850' + #Tested + try { + # Get password rule settings from Settings cache + $Settings = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Settings' + $PasswordRuleSettings = $Settings | Where-Object { $_.displayName -eq 'Password Rule Settings' } + + $PortalLink = 'https://entra.microsoft.com/#view/Microsoft_AAD_IAM/AuthenticationMethodsMenuBlade/~/PasswordProtection/fromNav/' + + if ($null -eq $PasswordRuleSettings) { + $Passed = 'Failed' + $ResultMarkdown = '❌ Password rule settings template not found.' + } else { + $LockoutThresholdSetting = $PasswordRuleSettings.values | Where-Object { $_.name -eq 'LockoutThreshold' } + + if ($null -eq $LockoutThresholdSetting) { + $Passed = 'Failed' + $ResultMarkdown = "❌ Lockout threshold setting not found in [password rule settings]($PortalLink)." + } else { + $LockoutThreshold = [int]$LockoutThresholdSetting.value + + if ($LockoutThreshold -le 10) { + $Passed = 'Passed' + $ResultMarkdown = "✅ Smart lockout threshold is set to 10 or below.`n`n" + } else { + $Passed = 'Failed' + $ResultMarkdown = "❌ Smart lockout threshold is configured above 10.`n`n" + } + + $ResultMarkdown += "## [Smart lockout configuration]($PortalLink)`n`n" + $ResultMarkdown += "| Setting | Value |`n" + $ResultMarkdown += "| :---- | :---- |`n" + $ResultMarkdown += "| Lockout threshold | $LockoutThreshold attempts |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Smart lockout threshold set to 10 or less' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Smart lockout threshold set to 10 or less' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Credential management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md new file mode 100644 index 000000000000..833ca37a43d4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21851.md @@ -0,0 +1,14 @@ +External user accounts are often used to provide access to business partners who belong to organizations that have a business relationship with your organization. If these accounts are compromised in their organization, attackers can use the valid credentials to gain initial access to your environment, often bypassing traditional defenses due to their legitimacy. + +Attackers might gain access with external user accounts, if multifactor authentication (MFA) isn't universally enforced or if there are exceptions in place. They might also gain access by exploiting the vulnerabilities of weaker MFA methods like SMS and phone calls using social engineering techniques, such as SIM swapping or phishing, to intercept the authentication codes. + +Once an attacker gains access to an account without MFA or a session with weak MFA methods, they might attempt to manipulate MFA settings (for example, registering attacker controlled methods) to establish persistence to plan and execute further attacks based on the privileges of the compromised accounts. + +**Remediation action** + +- [Deploy a Conditional Access policy to enforce authentication strength for guests](https://learn.microsoft.com/entra/identity/conditional-access/policy-guests-mfa-strength?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- For organizations with a closer business relationship and vetting on their MFA practices, consider deploying cross-tenant access settings to accept the MFA claim. + - [Configure B2B collaboration cross-tenant access settings](https://learn.microsoft.com/entra/external-id/cross-tenant-access-settings-b2b-collaboration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#to-change-inbound-trust-settings-for-mfa-and-device-claims) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21854.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21855.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21857.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md new file mode 100644 index 000000000000..362bc8627a4c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.md @@ -0,0 +1,11 @@ +When guest identities remain active but unused for extended periods, threat actors can exploit these dormant accounts as entry vectors into the organization. Inactive guest accounts represent a significant attack surface because they often maintain persistent access permissions to resources, applications, and data while remaining unmonitored by security teams. Threat actors frequently target these accounts through credential stuffing, password spraying, or by compromising the guest's home organization to gain lateral access. Once an inactive guest account is compromised, attackers can utilize existing access grants to: +- Move laterally within the tenant +- Escalate privileges through group memberships or application permissions +- Establish persistence through techniques like creating more service principals or modifying existing permissions + +The prolonged dormancy of these accounts provides attackers with extended dwell time to conduct reconnaissance, exfiltrate sensitive data, and establish backdoors without detection, as organizations typically focus monitoring efforts on active internal users rather than external guest accounts. + +**Remediation action** +- [Monitor and clean up stale guest accounts](https://learn.microsoft.com/en-us/entra/identity/users/clean-up-stale-guest-accounts?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 new file mode 100644 index 000000000000..053e4f97af4a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21858.ps1 @@ -0,0 +1,93 @@ +function Invoke-CippTestZTNA21858 { + <# + .SYNOPSIS + Inactive guest identities are disabled or removed from the tenant + #> + param($Tenant) + #Tested + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + if (-not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + $InactivityThresholdDays = 90 + $Today = Get-Date + $EnabledGuests = $Guests | Where-Object { $_.AccountEnabled -eq $true } + + if (-not $EnabledGuests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest users found in the tenant' -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + $InactiveGuests = @() + foreach ($Guest in $EnabledGuests) { + $DaysSinceLastActivity = $null + + if ($Guest.signInActivity.lastSuccessfulSignInDateTime) { + $LastSignIn = [DateTime]$Guest.signInActivity.lastSuccessfulSignInDateTime + $DaysSinceLastActivity = ($Today - $LastSignIn).Days + } elseif ($Guest.createdDateTime) { + $Created = [DateTime]$Guest.createdDateTime + $DaysSinceLastActivity = ($Today - $Created).Days + } + + if ($null -ne $DaysSinceLastActivity -and $DaysSinceLastActivity -gt $InactivityThresholdDays) { + $InactiveGuests += $Guest + } + } + + if ($InactiveGuests.Count -gt 0) { + $Status = 'Failed' + + $ResultLines = @( + "Found $($InactiveGuests.Count) inactive guest user(s) with no sign-in activity in the last $InactivityThresholdDays days." + '' + "**Total enabled guests:** $($EnabledGuests.Count)" + "**Inactive guests:** $($InactiveGuests.Count)" + "**Inactivity threshold:** $InactivityThresholdDays days" + '' + '**Top 10 inactive guest users:**' + ) + + $Top10Guests = $InactiveGuests | Sort-Object { + if ($_.signInActivity.lastSuccessfulSignInDateTime) { + [DateTime]$_.signInActivity.lastSuccessfulSignInDateTime + } else { + [DateTime]$_.createdDateTime + } + } | Select-Object -First 10 + + foreach ($Guest in $Top10Guests) { + if ($Guest.signInActivity.lastSuccessfulSignInDateTime) { + $LastActivity = [DateTime]$Guest.signInActivity.lastSuccessfulSignInDateTime + $DaysInactive = [Math]::Round(($Today - $LastActivity).TotalDays, 0) + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName)) - Last sign-in: $DaysInactive days ago" + } else { + $Created = [DateTime]$Guest.createdDateTime + $DaysSinceCreated = [Math]::Round(($Today - $Created).TotalDays, 0) + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName)) - Never signed in (Created $DaysSinceCreated days ago)" + } + } + + if ($InactiveGuests.Count -gt 10) { + $ResultLines += "- ... and $($InactiveGuests.Count - 10) more inactive guest(s)" + } + + $ResultLines += '' + $ResultLines += '**Recommendation:** Review and remove or disable inactive guest accounts to reduce security risks.' + + $Result = $ResultLines -join "`n" + } else { + $Status = 'Passed' + $Result = "All enabled guest users have been active within the last $InactivityThresholdDays days" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21858' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Inactive guest identities are disabled or removed from the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21859.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md new file mode 100644 index 000000000000..cc0b180268cd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21860.md @@ -0,0 +1,12 @@ +The activity logs and reports in Microsoft Entra can help detect unauthorized access attempts or identify when tenant configuration changes. When logs are archived or integrated with Security Information and Event Management (SIEM) tools, security teams can implement powerful monitoring and detection security controls, proactive threat hunting, and incident response processes. The logs and monitoring features can be used to assess tenant health and provide evidence for compliance and audits. + +If logs aren't regularly archived or sent to a SIEM tool for querying, it's challenging to investigate sign-in issues. The absence of historical logs means that security teams might miss patterns of failed sign-in attempts, unusual activity, and other indicators of compromise. This lack of visibility can prevent the timely detection of breaches, allowing attackers to maintain undetected access for extended periods. + +**Remediation action** + +- [Configure Microsoft Entra diagnostic settings](https://learn.microsoft.com/entra/identity/monitoring-health/howto-configure-diagnostic-settings?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Integrate Microsoft Entra logs with Azure Monitor logs](https://learn.microsoft.com/entra/identity/monitoring-health/howto-integrate-activity-logs-with-azure-monitor-logs?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Stream Microsoft Entra logs to an event hub](https://learn.microsoft.com/entra/identity/monitoring-health/howto-stream-logs-to-event-hub?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md new file mode 100644 index 000000000000..df6a5fb37715 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.md @@ -0,0 +1,11 @@ +Users considered at high risk by Microsoft Entra ID Protection have a high probability of compromise by threat actors. Threat actors can gain initial access via compromised valid accounts, where their suspicious activities continue despite triggering risk indicators. This oversight can enable persistence as threat actors perform activities that normally warrant investigation, such as unusual login patterns or suspicious inbox manipulation. + +A lack of triage of these risky users allows for expanded reconnaissance activities and lateral movement, with anomalous behavior patterns continuing to generate uninvestigated alerts. Threat actors become emboldened as security teams show they aren't actively responding to risk indicators. + +**Remediation action** + +- [Investigate high risk users](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in Microsoft Entra ID Protection +- [Remediate high risk users and unblock](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-remediate-unblock?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) in Microsoft Entra ID Protection + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 new file mode 100644 index 000000000000..539f2fc8d3db --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21861.ps1 @@ -0,0 +1,55 @@ +function Invoke-CippTestZTNA21861 { + <# + .SYNOPSIS + All high-risk users are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21861' + #Tested + try { + # Get risky users from cache + $RiskyUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskyUsers' + + if (-not $RiskyUsers) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + # Filter for untriaged high-risk users (atRisk state with High risk level) + $UntriagedHighRiskUsers = $RiskyUsers | Where-Object { $_.riskState -eq 'atRisk' -and $_.riskLevel -eq 'high' } + + $Passed = if ($UntriagedHighRiskUsers.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All high-risk users are properly triaged in Entra ID Protection.' + } else { + $ResultMarkdown = "❌ Found **$($UntriagedHighRiskUsers.Count)** untriaged high-risk users in Entra ID Protection.`n`n" + $ResultMarkdown += "## Untriaged High-Risk Users`n`n" + $ResultMarkdown += "| User | Risk level | Last updated | Risk detail |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- |`n" + + foreach ($User in $UntriagedHighRiskUsers) { + $UserPrincipalName = if ($User.userPrincipalName) { $User.userPrincipalName } else { $User.id } + $RiskLevel = switch ($User.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $User.riskLevel } + } + $RiskDate = $User.riskLastUpdatedDateTime + $RiskDetail = $User.riskDetail + + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($User.id)" + $ResultMarkdown += "| [$UserPrincipalName]($PortalLink) | $RiskLevel | $RiskDate | $RiskDetail |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All high-risk users are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md new file mode 100644 index 000000000000..5d6fdcb41824 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.md @@ -0,0 +1,9 @@ +Compromised workload identities (service principals and applications) allow threat actors to gain persistent access without user interaction or multifactor authentication. Microsoft Entra ID Protection monitors these identities for suspicious activities like leaked credentials, anomalous API traffic, and malicious applications. Unaddressed risky workload identities enable privilege escalation, lateral movement, data exfiltration, and persistent backdoors that bypass traditional security controls. Organizations must systematically investigate and remediate these risks to prevent unauthorized access. + +**Remediation action** + +- [Investigate and remediate risky workload identities](https://learn.microsoft.com/entra/id-protection/concept-workload-identity-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#investigate-risky-workload-identities) +- [Apply Conditional Access policies for workload identities](https://learn.microsoft.com/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 new file mode 100644 index 000000000000..ed352e74e4fd --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21862.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21862 { + <# + .SYNOPSIS + All risky workload identities are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21862' + #Tested + try { + # Get risky service principals and risk detections from cache + $UntriagedRiskyPrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskyServicePrincipals' | Where-Object { $_.riskState -eq 'atRisk' } + $ServicePrincipalRiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipalRiskDetections' + $UntriagedRiskDetections = $ServicePrincipalRiskDetections | Where-Object { $_.riskState -eq 'atRisk' } + + if (-not $UntriagedRiskyPrincipals -and -not $ServicePrincipalRiskDetections) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + $Passed = if (($UntriagedRiskyPrincipals.Count -eq 0) -and ($UntriagedRiskDetections.Count -eq 0)) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All risky workload identities have been triaged' + } else { + $RiskySPCount = $UntriagedRiskyPrincipals.Count + $RiskyDetectionCount = $UntriagedRiskDetections.Count + $ResultMarkdown = "❌ Found $RiskySPCount untriaged risky service principals and $RiskyDetectionCount untriaged risk detections`n`n" + + if ($RiskySPCount -gt 0) { + $ResultMarkdown += "## Untriaged Risky Service Principals`n`n" + $ResultMarkdown += "| Service Principal | Type | Risk Level | Risk State | Risk Last Updated |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- | :--- |`n" + foreach ($SP in $UntriagedRiskyPrincipals) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/SignOn/objectId/$($SP.id)/appId/$($SP.appId)" + $RiskLevel = switch ($SP.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $SP.riskLevel } + } + $RiskState = switch ($SP.riskState) { + 'atRisk' { '⚠️ At Risk' } + 'confirmedCompromised' { '🔴 Confirmed Compromised' } + 'dismissed' { '✅ Dismissed' } + 'remediated' { '✅ Remediated' } + default { $SP.riskState } + } + $ResultMarkdown += "| [$($SP.displayName)]($PortalLink) | $($SP.servicePrincipalType) | $RiskLevel | $RiskState | $($SP.riskLastUpdatedDateTime) |`n" + } + } + + if ($RiskyDetectionCount -gt 0) { + $ResultMarkdown += "`n`n## Untriaged Risk Detection Events`n`n" + $ResultMarkdown += "| Service Principal | Risk Level | Risk State | Risk Event Type | Risk Last Updated |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- | :--- |`n" + foreach ($Detection in $UntriagedRiskDetections) { + $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/SignOn/objectId/$($Detection.servicePrincipalId)/appId/$($Detection.appId)" + $RiskLevel = switch ($Detection.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $Detection.riskLevel } + } + $RiskState = switch ($Detection.riskState) { + 'atRisk' { '⚠️ At Risk' } + 'confirmedCompromised' { '🔴 Confirmed Compromised' } + 'dismissed' { '✅ Dismissed' } + 'remediated' { '✅ Remediated' } + default { $Detection.riskState } + } + $ResultMarkdown += "| [$($Detection.servicePrincipalDisplayName)]($PortalLink) | $RiskLevel | $RiskState | $($Detection.riskEventType) | $($Detection.detectedDateTime) |`n" + } + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All risky workload identities are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md new file mode 100644 index 000000000000..7729b0c365ac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.md @@ -0,0 +1,11 @@ +Risky sign-ins flagged by Microsoft Entra ID Protection indicate a high probability of unauthorized access attempts. Threat actors use these sign-ins to gain an initial foothold. If these sign-ins remain uninvestigated, adversaries can establish persistence by repeatedly authenticating under the guise of legitimate users. + +A lack of response lets attackers execute reconnaissance, attempt to escalate their access, and blend into normal patterns. When untriaged sign-ins continue to generate alerts and there's no intervention, security gaps widen, facilitating lateral movement and defense evasion, as adversaries recognize the absence of an active security response. + +**Remediation action** + +- [Investigate risky sign-ins](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-investigate-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Remediate risks and unblock users](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-remediate-unblock?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 new file mode 100644 index 000000000000..eb20d361776d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21863.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA21863 { + <# + .SYNOPSIS + All high-risk sign-ins are triaged + #> + param($Tenant) + + $TestId = 'ZTNA21863' + #Tested + try { + # Get risk detections from cache and filter for high-risk untriaged sign-ins + $RiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'RiskDetections' + + if (-not $RiskDetections) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + return + } + + $UntriagedHighRiskSignIns = $RiskDetections | Where-Object { $_.riskState -eq 'atRisk' -and $_.riskLevel -eq 'high' } + + $Passed = if ($UntriagedHighRiskSignIns.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ No untriaged risky sign ins in the tenant.' + } else { + $ResultMarkdown = "❌ Found **$($UntriagedHighRiskSignIns.Count)** untriaged high-risk sign ins.`n`n" + $ResultMarkdown += "## Untriaged High-Risk Sign ins`n`n" + $ResultMarkdown += "| Date | User Principal Name | Type | Risk Level |`n" + $ResultMarkdown += "| :---- | :---- | :---- | :---- |`n" + + foreach ($Risk in $UntriagedHighRiskSignIns) { + $UserPrincipalName = $Risk.userPrincipalName + $RiskLevel = switch ($Risk.riskLevel) { + 'high' { '🔴 High' } + 'medium' { '🟡 Medium' } + 'low' { '🟢 Low' } + default { $Risk.riskLevel } + } + $RiskEventType = $Risk.riskEventType + $RiskDate = $Risk.detectedDateTime + $ResultMarkdown += "| $RiskDate | $UserPrincipalName | $RiskEventType | $RiskLevel |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'All high-risk sign-ins are triaged' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21864.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md new file mode 100644 index 000000000000..fba7fae508d8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.md @@ -0,0 +1,7 @@ +Without named locations configured in Microsoft Entra ID, threat actors can exploit the absence of location intelligence to conduct attacks without triggering location-based risk detections or security controls. When organizations fail to define named locations for trusted networks, branch offices, and known geographic regions, Microsoft Entra ID Protection can't assess location-based risk signals. Not having these policies in place can lead to increased false positives that create alert fatigue and potentially mask genuine threats. This configuration gap prevents the system from distinguishing between legitimate and illegitimate locations. For example, legitimate sign-ins from corporate networks and suspicious authentication attempts from high-risk locations (anonymous proxy networks, Tor exit nodes, or regions where the organization has no business presence). Threat actors can use this uncertainty to conduct credential stuffing attacks, password spray campaigns, and initial access attempts from malicious infrastructure without triggering location-based detections that would normally flag such activity as suspicious. Organizations can also lose the ability to implement adaptive security policies that could automatically apply stricter authentication requirements or block access entirely from untrusted geographic regions. Threat actors can maintain persistence and conduct lateral movement from any global location without encountering location-based security barriers, which should serve as an extra layer of defense against unauthorized access attempts. + +**Remediation action** + +- [Configure named locations to define trusted IP ranges and geographic regions for enhanced location-based risk detection and Conditional Access policy enforcement](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 new file mode 100644 index 000000000000..b250a508c639 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21865.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestZTNA21865 { + <# + .SYNOPSIS + Named locations are configured + #> + param($Tenant) + + $TestId = 'ZTNA21865' + #tested + try { + $NamedLocations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'NamedLocations' + + if (-not $NamedLocations) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $TrustedLocations = @($NamedLocations | Where-Object { $_.isTrusted -eq $true }) + $Passed = $TrustedLocations.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ Trusted named locations are configured.`n`n" + } else { + $ResultMarkdown = "❌ No trusted named locations configured.`n`n" + } + + $ResultMarkdown += "## Named Locations`n`n" + $ResultMarkdown += "$($NamedLocations.Count) named locations found.`n`n" + + if ($NamedLocations.Count -gt 0) { + $ResultMarkdown += "| Name | Type | Trusted |`n" + $ResultMarkdown += "| :--- | :--- | :------ |`n" + + foreach ($Location in $NamedLocations) { + $Name = $Location.displayName + $Type = if ($Location.'@odata.type' -eq '#microsoft.graph.ipNamedLocation') { 'IP-based' } + elseif ($Location.'@odata.type' -eq '#microsoft.graph.countryNamedLocation') { 'Country-based' } + else { 'Unknown' } + $Trusted = if ($Location.isTrusted) { 'Yes' } else { 'No' } + $ResultMarkdown += "| $Name | $Type | $Trusted |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Named locations are configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md new file mode 100644 index 000000000000..bdfe46a9f74d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.md @@ -0,0 +1,8 @@ +Microsoft Entra recommendations give organizations opportunities to implement best practices and optimize their security posture. Not acting on these items might result in an increased attack surface area, suboptimal operations, or poor user experience. + +**Remediation action** + +- [Address all active or postponed recommendations in the Microsoft Entra admin center](https://learn.microsoft.com/entra/identity/monitoring-health/overview-recommendations?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-does-it-work) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 new file mode 100644 index 000000000000..754dacc9ff22 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21866.ps1 @@ -0,0 +1,48 @@ +function Invoke-CippTestZTNA21866 { + <# + .SYNOPSIS + All Microsoft Entra recommendations are addressed + #> + param($Tenant) + #Tested + $TestId = 'ZTNA21866' + + try { + # Get directory recommendations from cache + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Monitoring' + return + } + + # Filter for unaddressed recommendations (active or postponed status) + $UnaddressedRecommendations = $Recommendations | Where-Object { $_.status -in @('active', 'postponed') } + + $Passed = if ($UnaddressedRecommendations.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ All Entra Recommendations are addressed.' + } else { + $ResultMarkdown = "❌ Found $($UnaddressedRecommendations.Count) unaddressed Entra recommendations.`n`n" + $ResultMarkdown += "## Unaddressed Entra recommendations`n`n" + $ResultMarkdown += "| Display Name | Status | Insights | Priority |`n" + $ResultMarkdown += "| :--- | :--- | :--- | :--- |`n" + + foreach ($Item in $UnaddressedRecommendations) { + $DisplayName = $Item.displayName + $Status = $Item.status + $Insights = $Item.insights + $Priority = $Item.priority + $ResultMarkdown += "| $DisplayName | $Status | $Insights | $Priority |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All Microsoft Entra recommendations are addressed' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Monitoring' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md new file mode 100644 index 000000000000..d10b375bc681 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21867.md @@ -0,0 +1,9 @@ +Without owners, enterprise applications become orphaned assets that threat actors can exploit through credential harvesting and privilege escalation techniques. These applications often retain elevated permissions and access to sensitive resources while lacking proper oversight and security governance. The elevation of privilege to owners can raise a security concern, depending on the application's permissions. More critically, applications without an owner can create uncertainty in security monitoring where threat actors can establish persistence by using existing application permissions to access data or create backdoor accounts without triggering ownership-based detection mechanisms. + +When applications lack owners, security teams can't effectively conduct application lifecycle management. This gap leaves applications with potentially excessive permissions, outdated configurations, or compromised credentials that threat actors can discover through enumeration techniques and exploit to move laterally within the environment. The absence of ownership also prevents proper access reviews and permission audits, allowing threat actors to maintain long-term access through applications that should be decommissioned or had their permissions reduced. Not maintaining a clean application portfolio can provide persistent access vectors that can be used for data exfiltration or further compromise of the environment. + +**Remediation action** + +- [Assign owners to applications](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-app-owners?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md new file mode 100644 index 000000000000..c970477e6b2f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.md @@ -0,0 +1,9 @@ +Without restrictions preventing guest users from registering and owning applications, threat actors can exploit external user accounts to establish persistent backdoor access to organizational resources through application registrations that might evade traditional security monitoring. When guest users own applications, compromised guest accounts can be used to exploit guest-owned applications that might have broad permissions. This vulnerability enables threat actors to request access to sensitive organizational data such as emails, files, and user information without the same level of scrutiny for internal user-owned applications. + +This attack vector is dangerous because guest-owned applications can be configured to request high-privilege permissions and, once granted consent, provide threat actors with legitimate OAuth tokens. Furthermore, guest-owned applications can serve as command and control infrastructure, so threat actors can maintain access even after the compromised guest account is detected and remediated. Application credentials and permissions might persist independently of the original guest user account, so threat actors can retain access. Guest-owned applications also complicate security auditing and governance efforts, as organizations might have limited visibility into the purpose and security posture of applications registered by external users. These hidden weaknesses in the application lifecycle management make it difficult to assess the true scope of data access granted to non-Microsoft entities through seemingly legitimate application registrations. + +**Remediation action** +- Remove guest users as owners from applications and service principals, and implement controls to prevent future guest user application ownership. +- [Restrict guest user access permissions](https://learn.microsoft.com/en-us/entra/identity/users/users-restrict-guest-permissions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 new file mode 100644 index 000000000000..367b8a2a511f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21868.ps1 @@ -0,0 +1,105 @@ +function Invoke-CippTestZTNA21868 { + <# + .SYNOPSIS + Guests do not own apps in the tenant + #> + param($Tenant) + + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + + if (-not $Guests -or -not $Apps -or -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + return + } + + # Create a HashSet of guest user IDs for fast lookups + $GuestUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($guest in $Guests) { + [void]$GuestUserIds.Add($guest.id) + } + + # Initialize lists for guest owners + $GuestAppOwners = [System.Collections.Generic.List[object]]::new() + $GuestSpOwners = [System.Collections.Generic.List[object]]::new() + + # Check applications for guest owners + foreach ($app in $Apps) { + if ($app.owners -and $app.owners.Count -gt 0) { + foreach ($owner in $app.owners) { + if ($GuestUserIds.Contains($owner.id)) { + $ownerInfo = [PSCustomObject]@{ + id = $owner.id + displayName = $owner.displayName + userPrincipalName = $owner.userPrincipalName + appDisplayName = $app.displayName + appObjectId = $app.id + appId = $app.appId + } + $GuestAppOwners.Add($ownerInfo) + } + } + } + } + + # Check service principals for guest owners + foreach ($sp in $ServicePrincipals) { + if ($sp.owners -and $sp.owners.Count -gt 0) { + foreach ($owner in $sp.owners) { + if ($GuestUserIds.Contains($owner.id)) { + $ownerInfo = [PSCustomObject]@{ + id = $owner.id + displayName = $owner.displayName + userPrincipalName = $owner.userPrincipalName + spDisplayName = $sp.displayName + spObjectId = $sp.id + spAppId = $sp.appId + } + $GuestSpOwners.Add($ownerInfo) + } + } + } + } + + $HasGuestAppOwners = $GuestAppOwners.Count -gt 0 + $HasGuestSpOwners = $GuestSpOwners.Count -gt 0 + + if ($HasGuestAppOwners -or $HasGuestSpOwners) { + $Status = 'Failed' + $Result = "Guest users own applications or service principals`n`n" + + if ($HasGuestAppOwners -and $HasGuestSpOwners) { + $Result += "## Guest users own both applications and service principals`n`n" + $Result += "### Applications owned by guest users`n`n" + $Result += "| User Display Name | User Principal Name | Application |`n" + $Result += "| :---------------- | :------------------ | :---------- |`n" + $Result += ($GuestAppOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.appDisplayName) |" }) -join "`n" + $Result += "`n`n### Service principals owned by guest users`n`n" + $Result += "| User Display Name | User Principal Name | Service Principal |`n" + $Result += "| :---------------- | :------------------ | :---------------- |`n" + $Result += ($GuestSpOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.spDisplayName) |" }) -join "`n" + } elseif ($HasGuestAppOwners) { + $Result += "## Guest users own applications`n`n" + $Result += "| User Display Name | User Principal Name | Application |`n" + $Result += "| :---------------- | :------------------ | :---------- |`n" + $Result += ($GuestAppOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.appDisplayName) |" }) -join "`n" + } elseif ($HasGuestSpOwners) { + $Result += "## Guest users own service principals`n`n" + $Result += "| User Display Name | User Principal Name | Service Principal |`n" + $Result += "| :---------------- | :------------------ | :---------------- |`n" + $Result += ($GuestSpOwners | ForEach-Object { "| $($_.displayName) | $($_.userPrincipalName) | $($_.spDisplayName) |" }) -join "`n" + } + } else { + $Status = 'Passed' + $Result = 'No guest users own any applications or service principals in the tenant' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21868' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guests do not own apps in the tenant' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md new file mode 100644 index 000000000000..17fa7ba85d04 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.md @@ -0,0 +1,10 @@ +When enterprise applications lack both explicit assignment requirements AND scoped provisioning controls, threat actors can exploit this dual weakness to gain unauthorized access to sensitive applications and data. The highest risk occurs when applications are configured with the default setting: "Assignment required" is set to "No" *and* provisioning isn't required or scoped. This dangerous combination allows threat actors who compromise any user account within the tenant to immediately access applications with broad user bases, expanding their attack surface and potential for lateral movement within the organization. + +While an application with open assignment but proper provisioning scoping (such as department-based filters or group membership requirements) maintains security controls through the provisioning layer, applications lacking both controls create unrestricted access pathways that threat actors can exploit. When applications provision accounts for all users without assignment restrictions, threat actors can abuse compromised accounts to conduct reconnaissance activities, enumerate sensitive data across multiple systems, or use the applications as staging points for further attacks against connected resources. This unrestricted access model is dangerous for applications that have elevated permissions or are connected to critical business systems. Threat actors can use any compromised user account to access sensitive information, modify data, or perform unauthorized actions that the application's permissions allow. The absence of both assignment controls and provisioning scoping also prevents organizations from implementing proper access governance. Without proper governance, it's difficult to track who has access to which applications, when access was granted, and whether access should be revoked based on role changes or employment status. Furthermore, applications with broad provisioning scopes can create cascading security risks where a single compromised account provides access to an entire ecosystem of connected applications and services. + +**Remediation action** +- Evaluate business requirements to determine appropriate access control method. [Restrict a Microsoft Entra app to a set of users](https://learn.microsoft.com/en-us/entra/identity-platform/howto-restrict-your-app-to-a-set-of-users?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). +- Configure enterprise applications to require assignment for sensitive applications. [Learn about the "Assignment required" enterprise application property](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/application-properties?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#assignment-required). +- Implement scoped provisioning based on groups, departments, or attributes. [Create scoping filters](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/define-conditional-rules-for-provisioning-user-accounts?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-scoping-filters). +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 new file mode 100644 index 000000000000..dcaa09e51496 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21869.ps1 @@ -0,0 +1,57 @@ +function Invoke-CippTestZTNA21869 { + <# + .SYNOPSIS + Enterprise applications must require explicit assignment or scoped provisioning + #> + param($Tenant) + #tenant + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $AppsWithoutAssignment = $ServicePrincipals | Where-Object { + $_.appRoleAssignmentRequired -eq $false -and + $null -ne $_.preferredSingleSignOnMode -and + $_.preferredSingleSignOnMode -in @('password', 'saml', 'oidc') -and + $_.accountEnabled -eq $true + } + + if (-not $AppsWithoutAssignment) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'All enterprise applications have explicit assignment requirements' -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $Status = 'Investigate' + + $ResultLines = @( + "Found $($AppsWithoutAssignment.Count) enterprise application(s) without assignment requirements." + '' + '**Applications without user assignment requirements:**' + ) + + $Top10Apps = $AppsWithoutAssignment | Select-Object -First 10 + foreach ($App in $Top10Apps) { + $ResultLines += "- $($App.displayName) (SSO: $($App.preferredSingleSignOnMode))" + } + + if ($AppsWithoutAssignment.Count -gt 10) { + $ResultLines += "- ... and $($AppsWithoutAssignment.Count - 10) more application(s)" + } + + $ResultLines += '' + $ResultLines += '**Note:** Full provisioning scope validation requires Graph API synchronization endpoint not available in cache.' + $ResultLines += '' + $ResultLines += '**Recommendation:** Enable user assignment requirements or configure scoped provisioning to limit application access.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21869' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Enterprise applications must require explicit assignment or scoped provisioning' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md new file mode 100644 index 000000000000..91ed1541e019 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21870.md @@ -0,0 +1,9 @@ +Without Self-Service Password Reset (SSPR) enabled, users with password-related issues must contact help desk support, which can cause in operational delays and lost productivity. There are also potential security vulnerabilities during the extended timeframe required for administrative password resets. These delays not only reduce employee efficiency (especially in time-sensitive roles), but also increase support costs and strain IT resources. During these periods, threat actors might exploit locked accounts through social engineering attacks targeting help desk personnel. Threat actors can potentially convince support staff to reset passwords for accounts they don't legitimately control, enabling initial access to user credentials. + +When users are unable to reset their own passwords through secure, automated processes, they frequently resort to insecure workarounds. Examples include sharing accounts with colleagues, using weak passwords that are easier to remember, or writing down passwords in discoverable locations, all of which expand the attack surface for credential harvesting techniques. The lack of SSPR forces users to maintain static passwords for longer periods between administrative resets. This type of password policy increases the likelihood that compromised credentials from previous breaches or password spray attacks remain valid and usable by threat actors. The absence of user-controlled password reset capabilities also delays the response time for users to secure their accounts when they suspect compromise. This delay allows threat actors extended persistence within compromised accounts to perform reconnaissance, establish other access methods, or exfiltrate sensitive data before the account is eventually reset through administrative channels + +**Remediation action** + +- [Enable Self-Service Password Reset](https://learn.microsoft.com/en-us/entra/identity/authentication/tutorial-enable-sspr?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md new file mode 100644 index 000000000000..41edcdf8e024 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.md @@ -0,0 +1,8 @@ +Threat actors can exploit the lack of multifactor authentication during new device registration. Once authenticated, they can register rogue devices, establish persistence, and circumvent security controls tied to trusted endpoints. This foothold enables attackers to exfiltrate sensitive data, deploy malicious applications, or move laterally, depending on the permissions of the accounts being used by the attacker. Without MFA enforcement, risk escalates as adversaries can continuously reauthenticate, evade detection, and execute objectives. + +**Remediation action** + +- [Deploy a Conditional Access policy to require multifactor authentication for device registration](https://learn.microsoft.com/entra/identity/conditional-access/policy-all-users-device-registration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 new file mode 100644 index 000000000000..0ccf79cf8d6b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21872.ps1 @@ -0,0 +1,106 @@ +function Invoke-CippTestZTNA21872 { + <# + .SYNOPSIS + Require multifactor authentication for device join and device registration using user action + #> + param($Tenant) + + $TestId = 'ZTNA21872' + #Tested + try { + # Get conditional access policies and device registration policy from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $DeviceRegistrationPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $CAPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + if (-not $DeviceRegistrationPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $MfaRequiredInDeviceSettings = $DeviceRegistrationPolicy.multiFactorAuthConfiguration -eq 'required' + + # Filter for enabled device registration CA policies + $DeviceRegistrationPolicies = $CAPolicies | Where-Object { + ($_.state -eq 'enabled') -and + ($_.conditions.applications.includeUserActions -eq 'urn:user:registerdevice') + } + + # Check each policy to see if it properly requires MFA + $ValidPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $DeviceRegistrationPolicies) { + $RequiresMfa = $false + + # Check if the policy directly requires MFA + if ($Policy.grantControls.builtInControls -contains 'mfa') { + $RequiresMfa = $true + } + + # Check if the policy uses any authentication strength + if ($null -ne $Policy.grantControls.authenticationStrength) { + $RequiresMfa = $true + } + + # If the policy requires MFA, add it to valid policies + if ($RequiresMfa) { + $ValidPolicies.Add($Policy) + } + } + + # Determine pass/fail conditions + if ($MfaRequiredInDeviceSettings) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **MFA is configured incorrectly.** Device Settings has 'Require Multi-Factor Authentication to register or join devices' set to Yes. According to best practices, this should be set to No, and MFA should be enforced through Conditional Access policies instead.`n`n" + } elseif ($DeviceRegistrationPolicies.Count -eq 0) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **No Conditional Access policies found** for device registration or device join. Create a policy that requires MFA for these user actions.`n`n" + } elseif ($ValidPolicies.Count -eq 0) { + $Passed = 'Failed' + $ResultMarkdown = "❌ **Conditional Access policies found**, but they're not correctly configured. Policies should require MFA or appropriate authentication strength.`n`n" + } else { + $Passed = 'Passed' + $ResultMarkdown = "✅ **Properly configured Conditional Access policies found** that require MFA for device registration/join actions.`n`n" + } + + # Add device settings information + $ResultMarkdown += "## Device Settings Configuration`n`n" + $ResultMarkdown += "| Setting | Value | Recommended Value | Status |`n" + $ResultMarkdown += "| :------ | :---- | :---------------- | :----- |`n" + + $DeviceSettingStatus = if ($MfaRequiredInDeviceSettings) { '❌ Should be set to No' } else { '✅ Correctly configured' } + $DeviceSettingValue = if ($MfaRequiredInDeviceSettings) { 'Yes' } else { 'No' } + $ResultMarkdown += "| Require Multi-Factor Authentication to register or join devices | $DeviceSettingValue | No | $DeviceSettingStatus |`n" + + # Add policies information if any found + if ($DeviceRegistrationPolicies.Count -gt 0) { + $ResultMarkdown += "`n## Device Registration/Join Conditional Access Policies`n`n" + $ResultMarkdown += "| Policy Name | State | Requires MFA | Status |`n" + $ResultMarkdown += "| :---------- | :---- | :----------- | :----- |`n" + + foreach ($Policy in $DeviceRegistrationPolicies) { + $PolicyName = $Policy.displayName + $PolicyState = $Policy.state + $PolicyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $PolicyNameLink = "[$PolicyName]($PolicyLink)" + + # Check if this policy is properly configured + $IsValid = $Policy -in $ValidPolicies + $RequiresMfaText = if ($IsValid) { 'Yes' } else { 'No' } + $StatusText = if ($IsValid) { '✅ Properly configured' } else { '❌ Incorrectly configured' } + + $ResultMarkdown += "| $PolicyNameLink | $PolicyState | $RequiresMfaText | $StatusText |`n" + } + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Require multifactor authentication for device join and device registration using user action' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md new file mode 100644 index 000000000000..9b70ca640329 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.md @@ -0,0 +1,10 @@ +Limiting guest access to a known and approved list of tenants helps to prevent threat actors from exploiting unrestricted guest access to establish initial access through compromised external accounts or by creating accounts in untrusted tenants. Threat actors who gain access through an unrestricted domain can discover internal resources, users, and applications to perform additional attacks. + +Organizations should take inventory and configure an allowlist or blocklist to control B2B collaboration invitations from specific organizations. Without these controls, threat actors might use social engineering techniques to obtain invitations from legitimate internal users. + +**Remediation action** + +- Learn how to [set up a list of approved domains](https://learn.microsoft.com/entra/external-id/allow-deny-list?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#add-an-allowlist). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 new file mode 100644 index 000000000000..3adfce12208b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21874.ps1 @@ -0,0 +1,44 @@ +function Invoke-CippTestZTNA21874 { + <# + .SYNOPSIS + Guest access is limited to approved tenants + #> + param($Tenant) + + $TestId = 'ZTNA21874' + #Trusted + try { + # Get B2B Management Policy from cache + $B2BManagementPolicyObject = New-CIPPDbRequest -TenantFilter $Tenant -Type 'B2BManagementPolicy' + + if (-not $B2BManagementPolicyObject) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'External collaboration' + return + } + + $Passed = 'Failed' + $AllowedDomains = $null + + if ($B2BManagementPolicyObject.definition) { + $B2BManagementPolicy = ($B2BManagementPolicyObject.definition | ConvertFrom-Json).B2BManagementPolicy + $AllowedDomains = $B2BManagementPolicy.InvitationsAllowedAndBlockedDomainsPolicy.AllowedDomains + + if ($AllowedDomains -and $AllowedDomains.Count -gt 0) { + $Passed = 'Passed' + } + } + + if ($Passed -eq 'Passed') { + $ResultMarkdown = '✅ Allow/Deny lists of domains to restrict external collaboration are configured.' + } else { + $ResultMarkdown = '❌ Allow/Deny lists of domains to restrict external collaboration are not configured.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Passed -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'External collaboration' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Guest access is limited to approved tenants' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'External collaboration' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md new file mode 100644 index 000000000000..df03f46ad2ee --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21875.md @@ -0,0 +1,9 @@ +Access packages configured to allow "All users" instead of specific connected organizations expose your organization to uncontrolled external access. Threat actors can exploit this by requesting access through compromised external accounts from unauthorized organizations, bypassing the principle of least privilege. This enables initial access, reconnaissance, privilege escalation, and lateral movement within your environment. + +**Remediation action** + +- [Define trusted organizations as connected organizations](https://learn.microsoft.com/entra/id-governance/entitlement-management-organization?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#view-the-list-of-connected-organizations) +- [Configure access packages to only allow specific connected organizations](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#allow-users-not-in-your-directory-to-request-the-access-package) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21876.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md new file mode 100644 index 000000000000..ed479604ad5b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.md @@ -0,0 +1,15 @@ +Inviting external guests is beneficial for organizational collaboration. However, in the absence of an assigned internal sponsor for each guest, these accounts might persist within the directory without clear accountability. This oversight creates a risk: threat actors could potentially compromise an unused or unmonitored guest account, and then establish an initial foothold within the tenant. Once granted access as an apparent "legitimate" user, an attacker might explore accessible resources and attempt privilege escalation, which could ultimately expose sensitive information or critical systems. An unmonitored guest account might therefore become the vector for unauthorized data access or a significant security breach. A typical attack sequence might use the following pattern, all achieved under the guise of a standard external collaborator: + +1. Initial access gained through compromised guest credentials +1. Persistence due to a lack of oversight. +1. Further escalation or lateral movement if the guest account possesses group memberships or elevated permissions. +1. Execution of malicious objectives. + +Mandating that every guest account is assigned to a sponsor directly mitigates this risk. Such a requirement ensures that each external user is linked to a responsible internal party who is expected to regularly monitor and attest to the guest's ongoing need for access. The sponsor feature within Microsoft Entra ID supports accountability by tracking the inviter and preventing the proliferation of "orphaned" guest accounts. When a sponsor manages the guest account lifecycle, such as removing access when collaboration concludes, the opportunity for threat actors to exploit neglected accounts is substantially reduced. This best practice is consistent with Microsoft’s guidance to require sponsorship for business guests as part of an effective guest access governance strategy. It strikes a balance between enabling collaboration and enforcing security, as it guarantees that each guest user's presence and permissions remain under ongoing internal oversight. + +**Remediation action** +- For each guest user that has no sponsor, assign a sponsor in Microsoft Entra ID. + - [Add a sponsor to a guest user in the Microsoft Entra admin center](https://learn.microsoft.com/en-us/entra/external-id/b2b-sponsors?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + - [Add a sponsor to a guest user using Microsoft Graph](https://learn.microsoft.com/graph/api/user-post-sponsors?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 new file mode 100644 index 000000000000..a2272933ab8d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21877.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA21877 { + <# + .SYNOPSIS + All guests have a sponsor + #> + param($Tenant) + #Tested + try { + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + if (-not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + if ($Guests.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest accounts found in the tenant' -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $GuestsWithoutSponsors = $Guests | Where-Object { -not $_.sponsors -or $_.sponsors.Count -eq 0 } + + if ($GuestsWithoutSponsors.Count -eq 0) { + $Status = 'Passed' + $Result = 'All guest accounts in the tenant have an assigned sponsor' + } else { + $Status = 'Failed' + + $ResultLines = @( + "Found $($GuestsWithoutSponsors.Count) guest user(s) without sponsors out of $($Guests.Count) total guests." + '' + "**Total guests:** $($Guests.Count)" + "**Guests without sponsors:** $($GuestsWithoutSponsors.Count)" + "**Guests with sponsors:** $($Guests.Count - $GuestsWithoutSponsors.Count)" + '' + '**Top 10 guests without sponsors:**' + ) + + $Top10Guests = $GuestsWithoutSponsors | Select-Object -First 10 + foreach ($Guest in $Top10Guests) { + $ResultLines += "- $($Guest.displayName) ($($Guest.userPrincipalName))" + } + + if ($GuestsWithoutSponsors.Count -gt 10) { + $ResultLines += "- ... and $($GuestsWithoutSponsors.Count - 10) more guest(s)" + } + + $ResultLines += '' + $ResultLines += '**Recommendation:** Assign sponsors to all guest accounts for better accountability and lifecycle management.' + + $Result = $ResultLines -join "`n" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21877' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'All guests have a sponsor' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md new file mode 100644 index 000000000000..762389bcce22 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21878.md @@ -0,0 +1,7 @@ +Entitlement management policies without expiration dates create persistent access that threat actors can exploit. When user assignments lack time bounds, compromised credentials maintain indefinite access, enabling attackers to establish persistence, escalate privileges through additional access packages, and conduct long-term malicious activities while remaining undetected. + +**Remediation action** + +- [Configure expiration settings for access packages](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-lifecycle-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#specify-a-lifecycle) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md new file mode 100644 index 000000000000..5d2c99793491 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21879.md @@ -0,0 +1,11 @@ +## Overview + +Without enforced approval on entitlement management policies that allow external users, a threat actor can self-orchestrate initial access by submitting unattended requests that are auto-approved. Each successful request provisions or reuses a guest user object and grant access to resources included in the access package, immediately expanding reconnaissance surface. From that foothold the actor can enumerate additional collaboration surfaces, harvest shared files, and probe mis-scoped app permissions to escalate (e.g., abusing over-privileged group-based roles or app role assignments). They can persist by requesting multiple packages with overlapping or escalating privileges, re-extending assignments if expiration or reviews are lax, or by creating indirect sharing links inside granted SharePoint or Teams resources. Absence of an approval gate also removes a human anomaly check (sponsor/internal/external approver) that would otherwise filter suspicious volume, timing, geography, or improbable justification patterns, shrinking detection dwell-time. This accelerates lateral movement (pivoting through granted group memberships to additional workloads), facilitates data staging and exfiltration from SharePoint/Teams or app APIs, and increases the blast radius before downstream controls (access reviews, expirations) eventually trigger. Microsoft’s guidance explicitly states approval should be required when external users can request access to ensure oversight; bypassing it effectively converts a governed onboarding path into an unsupervised provisioning for external identities, expanding tenant-wide risk until manual discovery or periodic governance cycles intervene. + +**Remediation action** + +- [Configure approval for external request policies (toggle Require approval)](https://learn.microsoft.com/en-us/entra/id-governance/entitlement-management-access-package-approval-policy ) + + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21881.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21882.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md new file mode 100644 index 000000000000..9440b98d3f84 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.md @@ -0,0 +1,8 @@ +Set up risk-based Conditional Access policies for workload identities based on risk policy in Microsoft Entra ID to make sure only trusted and verified workloads use sensitive resources. Without these policies, threat actors can compromise workload identities with minimal detection and perform further attacks. Without conditional controls to detect anomalous activity and other risks, there's no check against malicious operations like token forgery, access to sensitive resources, and disruption of workloads. The lack of automated containment mechanisms increases dwell time and affects the confidentiality, integrity, and availability of critical services. + +**Remediation action** +Create a risk-based Conditional Access policy for workload identities. +- [Create a risk-based Conditional Access policy](https://learn.microsoft.com/en-us/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#create-a-risk-based-conditional-access-policy) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 new file mode 100644 index 000000000000..797cb134fddf --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21883.ps1 @@ -0,0 +1,133 @@ +function Invoke-CippTestZTNA21883 { + <# + .SYNOPSIS + Checks if workload identities are configured with risk-based policies + + .DESCRIPTION + Verifies that Conditional Access policies exist that: + - Block authentication based on service principal risk + - Are enabled + - Target service principals + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get Conditional Access policies from cache + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $Policies) { + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'No Conditional Access policies found in cache.' + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Filter for policies that: + # - Block authentication + # - Include service principals + # - Are enabled + $MatchedPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $Policies) { + $blocksAuth = $false + if ($Policy.grantControls.builtInControls) { + foreach ($control in $Policy.grantControls.builtInControls) { + if ($control -eq 'block') { + $blocksAuth = $true + break + } + } + } + + $includesSP = $false + if ($Policy.conditions.clientApplications.includeServicePrincipals) { + $includesSP = $true + } + + $isEnabled = $Policy.state -eq 'enabled' + + if ($blocksAuth -and $includesSP -and $isEnabled) { + $MatchedPolicies.Add($Policy) + } + } + + # Determine pass/fail + if ($MatchedPolicies.Count -ge 1) { + $Status = 'Passed' + $ResultMarkdown = "✅ **Pass**: Workload identities are protected by risk-based Conditional Access policies.`n`n" + $ResultMarkdown += "## Matching policies`n`n" + $ResultMarkdown += "| Policy name | State | Service principals | Grant controls |`n" + $ResultMarkdown += "| :---------- | :---- | :----------------- | :------------- |`n" + + foreach ($Policy in $MatchedPolicies) { + $policyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.id)" + $policyName = if ($Policy.displayName) { $Policy.displayName } else { 'Unnamed' } + $spTargets = if ($Policy.conditions.clientApplications.includeServicePrincipals) { + ($Policy.conditions.clientApplications.includeServicePrincipals | Select-Object -First 3) -join ', ' + if ($Policy.conditions.clientApplications.includeServicePrincipals.Count -gt 3) { + $spTargets += " (and $($Policy.conditions.clientApplications.includeServicePrincipals.Count - 3) more)" + } + $spTargets + } else { + 'None' + } + $grants = if ($Policy.grantControls.builtInControls) { + $Policy.grantControls.builtInControls -join ', ' + } else { + 'None' + } + $ResultMarkdown += "| [$policyName]($policyLink) | $($Policy.state) | $spTargets | $grants |`n" + } + } else { + $Status = 'Failed' + $ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that protect workload identities with risk-based controls.`n`n" + $ResultMarkdown += 'Workload identities should be protected by policies that block authentication when service principal risk is detected.' + } + + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21883' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'Workload identities configured with risk-based policies' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21883 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md new file mode 100644 index 000000000000..58e372f02ff9 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21884.md @@ -0,0 +1,8 @@ +When workload identities operate without network-based Conditional Access restrictions, threat actors can compromise service principal credentials through various methods, such as exposed secrets in code repositories or intercepted authentication tokens. The threat actors can then use these credentials from any location globally. This unrestricted access enables threat actors to perform reconnaissance activities, enumerate resources, and map the tenant's infrastructure while appearing legitimate. Once the threat actor is established within the environment, they can move laterally between services, access sensitive data stores, and potentially escalate privileges by exploiting overly permissive service-to-service permissions. The lack of network restrictions makes it impossible to detect anomalous access patterns based on location. This gap allows threat actors to maintain persistent access and exfiltrate data over extended periods without triggering security alerts that would normally flag connections from unexpected networks or geographic locations. + +**Remediation action** + +- [Configure Conditional Access for workload identities](https://learn.microsoft.com/en-us/entra/identity/conditional-access/workload-identity?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create named locations](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Follow best practices for securing workload identities](https://learn.microsoft.com/en-us/entra/workload-id/workload-identities-overview?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md new file mode 100644 index 000000000000..27edc026f6e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21885.md @@ -0,0 +1,10 @@ +OAuth applications configured with URLs that include wildcards, or URL shorteners increase the attack surface for threat actors. Insecure redirect URIs (reply URLs) might allow adversaries to manipulate authentication requests, hijack authorization codes, and intercept tokens by directing users to attacker-controlled endpoints. Wildcard entries expand the risk by permitting unintended domains to process authentication responses, while shortener URLs might facilitate phishing and token theft in uncontrolled environments. + +Without strict validation of redirect URIs, attackers can bypass security controls, impersonate legitimate applications, and escalate their privileges. This misconfiguration enables persistence, unauthorized access, and lateral movement, as adversaries exploit weak OAuth enforcement to infiltrate protected resources undetected. + +**Remediation action** + +- [Check the redirect URIs for your application registrations.](https://learn.microsoft.com/entra/identity-platform/reply-url?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) Make sure the redirect URIs don't have *.azurewebsites.net, wildcards, or URL shorteners. + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md new file mode 100644 index 000000000000..988a4cbca44d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.md @@ -0,0 +1,15 @@ +When applications that support both authentication and provisioning through Microsoft Entra aren't configured for automatic provisioning, organizations become vulnerable to identity lifecycle gaps that threat actors can exploit. Without automated provisioning, user accounts might persist in applications after employees leave the organization. This vulnerability creates dormant accounts that threat actors can discover through reconnaissance activities. These orphaned accounts often retain their original access permissions but lack active monitoring, making them attractive targets for initial access. + +Threat actors who gain access to these dormant accounts can use them to establish persistence in the target application, as the accounts appear legitimate and might not trigger security alerts. From these compromised application accounts, attackers can: + +- Attempt to escalate their privileges by exploring application-specific permissions +- Access sensitive data stored within the application +- Use the application as a pivot point to access other connected systems + +The lack of centralized identity lifecycle management also makes it difficult for security teams to detect when an attacker is using these orphaned accounts, as the accounts might not be properly correlated with the organization's active user directory. + +**Remediation action** + +- [Configure application provisioning for missing applications](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/configure-automatic-user-provisioning-portal?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 new file mode 100644 index 000000000000..674390fef96b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21886.ps1 @@ -0,0 +1,60 @@ +function Invoke-CippTestZTNA21886 { + <# + .SYNOPSIS + Applications are configured for automatic user provisioning + #> + param($Tenant) + #Tested + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + return + } + + $AppsWithSSO = $ServicePrincipals | Where-Object { + $null -ne $_.preferredSingleSignOnMode -and + $_.preferredSingleSignOnMode -in @('password', 'saml', 'oidc') -and + $_.accountEnabled -eq $true + } + + if (-not $AppsWithSSO) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No applications configured for SSO found' -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + return + } + + $Status = 'Investigate' + + $ResultLines = @( + "Found $($AppsWithSSO.Count) application(s) configured for SSO." + '' + '**Applications with SSO enabled:**' + ) + + $SSOByType = $AppsWithSSO | Group-Object -Property preferredSingleSignOnMode + foreach ($Group in $SSOByType) { + $ResultLines += '' + $ResultLines += "**$($Group.Name.ToUpper()) SSO** ($($Group.Count) app(s)):" + $Top5 = $Group.Group | Select-Object -First 5 + foreach ($App in $Top5) { + $ResultLines += "- $($App.displayName)" + } + if ($Group.Count -gt 5) { + $ResultLines += "- ... and $($Group.Count - 5) more" + } + } + + $ResultLines += '' + $ResultLines += '**Note:** Provisioning template and job validation requires Graph API synchronization endpoint not available in cache.' + $ResultLines += '' + $ResultLines += '**Recommendation:** Configure automatic user provisioning for applications that support it to ensure consistent access management.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21886' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Applications are configured for automatic user provisioning' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Applications management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21887.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md new file mode 100644 index 000000000000..cb1d03b47129 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21888.md @@ -0,0 +1,8 @@ +Unmaintained or orphaned redirect URIs in app registrations create significant security vulnerabilities when they reference domains that no longer point to active resources. Threat actors can exploit these "dangling" DNS entries by provisioning resources at abandoned domains, effectively taking control of redirect endpoints. This vulnerability enables attackers to intercept authentication tokens and credentials during OAuth 2.0 flows, which can lead to unauthorized access, session hijacking, and potential broader organizational compromise. + +**Remediation action** + +- [Redirect URI (reply URL) outline and restrictions](https://learn.microsoft.com/entra/identity-platform/reply-url?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md new file mode 100644 index 000000000000..d5f422aa0a93 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.md @@ -0,0 +1,10 @@ +Organizations with extensive user-facing password surfaces expose multiple entry points for threat actors to launch credential-based attacks. Frequent user interactions with password prompts across applications, devices, and workflows increase the risk of exploitation. Threat actors often begin with credential stuffing—using compromised credentials from data breaches—followed by password spraying to test common passwords across multiple accounts. Once initial access is gained, they conduct credential discovery by examining browser password stores, cached credentials in memory, and credential managers to harvest additional authentication materials. These stolen credentials enable lateral movement, allowing attackers to access more systems and applications, often escalating privileges by targeting administrative accounts that still rely on password authentication. In the persistence phase, attackers may create backdoor accounts with password-based access or weaken defenses by altering password policies. To evade detection, they leverage legitimate authentication channels, blending in with normal user activity while maintaining persistent access to organizational resources. + +**Remediation action** + + * [Enable passwordless authentication methods](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-plan-prerequisites-phishing-resistant-passwordless-authentication) + + * [Deploy FIDO2 security keys](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-enable-passkey-fido2) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 new file mode 100644 index 000000000000..87caa4f5c591 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21889.ps1 @@ -0,0 +1,147 @@ +function Invoke-CippTestZTNA21889 { + <# + .SYNOPSIS + Checks if organization has reduced password surface area by enabling multiple passwordless authentication methods + + .DESCRIPTION + Verifies that both FIDO2 Security Keys and Microsoft Authenticator are enabled with proper configuration + to reduce reliance on passwords. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get authentication methods policy from cache + $AuthMethodsPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + + if (-not $AuthMethodsPolicy) { + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve authentication methods policy from cache.' + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Extract FIDO2 and Microsoft Authenticator configurations + $Fido2Config = $null + $AuthenticatorConfig = $null + + if ($AuthMethodsPolicy.authenticationMethodConfigurations) { + foreach ($config in $AuthMethodsPolicy.authenticationMethodConfigurations) { + if ($config.id -eq 'Fido2') { + $Fido2Config = $config + } + if ($config.id -eq 'MicrosoftAuthenticator') { + $AuthenticatorConfig = $config + } + } + } + + # Check FIDO2 configuration + $Fido2Enabled = $Fido2Config.state -eq 'enabled' + $Fido2HasTargets = $Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0 + $Fido2Valid = $Fido2Enabled -and $Fido2HasTargets + + # Check Microsoft Authenticator configuration + $AuthEnabled = $AuthenticatorConfig.state -eq 'enabled' + $AuthHasTargets = $AuthenticatorConfig.includeTargets -and $AuthenticatorConfig.includeTargets.Count -gt 0 + $AuthMode = $null + if ($AuthenticatorConfig.includeTargets) { + foreach ($target in $AuthenticatorConfig.includeTargets) { + if ($target.authenticationMode) { + $AuthMode = $target.authenticationMode + break + } + } + } + + if ([string]::IsNullOrEmpty($AuthMode)) { + $AuthMode = 'Not configured' + $AuthModeValid = $false + } else { + $AuthModeValid = ($AuthMode -eq 'any') -or ($AuthMode -eq 'deviceBasedPush') + } + $AuthValid = $AuthEnabled -and $AuthHasTargets -and $AuthModeValid + + # Determine pass/fail + $Status = if ($Fido2Valid -and $AuthValid) { 'Passed' } else { 'Failed' } + + # Build result message + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Your organization has implemented multiple passwordless authentication methods reducing password exposure.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Your organization relies heavily on password-based authentication, creating security vulnerabilities.`n`n" + } + + # Build detailed markdown table + $ResultMarkdown += "## Passwordless authentication methods`n`n" + $ResultMarkdown += "| Method | State | Include targets | Authentication mode | Status |`n" + $ResultMarkdown += "| :----- | :---- | :-------------- | :------------------ | :----- |`n" + + # FIDO2 row + $Fido2State = if ($Fido2Enabled) { '✅ Enabled' } else { '❌ Disabled' } + $Fido2TargetsDisplay = if ($Fido2Config.includeTargets -and $Fido2Config.includeTargets.Count -gt 0) { + "$($Fido2Config.includeTargets.Count) target(s)" + } else { + 'None' + } + $Fido2Status = if ($Fido2Valid) { '✅ Pass' } else { '❌ Fail' } + $ResultMarkdown += "| FIDO2 Security Keys | $Fido2State | $Fido2TargetsDisplay | N/A | $Fido2Status |`n" + + # Microsoft Authenticator row + $AuthState = if ($AuthEnabled) { '✅ Enabled' } else { '❌ Disabled' } + $AuthTargetsDisplay = if ($AuthenticatorConfig.includeTargets -and $AuthenticatorConfig.includeTargets.Count -gt 0) { + "$($AuthenticatorConfig.includeTargets.Count) target(s)" + } else { + 'None' + } + $AuthModeDisplay = if ($AuthModeValid) { "✅ $AuthMode" } else { "❌ $AuthMode" } + $AuthStatus = if ($AuthValid) { '✅ Pass' } else { '❌ Fail' } + $ResultMarkdown += "| Microsoft Authenticator | $AuthState | $AuthTargetsDisplay | $AuthModeDisplay | $AuthStatus |`n" + + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21889' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Reduce the user-visible password surface area' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21889 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21890.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md new file mode 100644 index 000000000000..9c49450beb91 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21891.md @@ -0,0 +1,8 @@ +Configuring password reset notifications for administrator roles in Microsoft Entra ID enhances security by notifying privileged administrators when another administrator resets their password. This visibility helps detect unauthorized or suspicious activity that could indicate credential compromise or insider threats. Without these notifications, malicious actors could exploit elevated privileges to establish persistence, escalate access, or extract sensitive data. Proactive notifications support quick action, preserve privileged access integrity, and strengthen the overall security posture. + +**Remediation action** + +- [Notify all admins when other admins reset their passwords](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-sspr-howitworks?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#notify-all-admins-when-other-admins-reset-their-passwords) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md new file mode 100644 index 000000000000..2d46aed74112 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.md @@ -0,0 +1 @@ +When sign-ins are not restricted to managed devices, threat actors can use unmanaged devices to establish initial access to organizational resources. Unmanaged devices lack organizational security controls, endpoint protection, and compliance verification, creating entry points for threat actors to exploit. Unmanaged devices lack centralized security controls, compliance monitoring, and policy enforcement, creating gaps in the organization's security perimeter. Threat actors can compromise these devices through malware, keyloggers, or credential harvesting tools, then use the captured credentials to authenticate corporate resources without detection. Accounts that are assigned administrative rights are a target for attackers. Requiring users with these highly privileged rights to perform actions from devices marked as compliant or Microsoft Entra hybrid joined can help limit possible exposure. Without device compliance requirements, threat actors can maintain persistence through uncontrolled endpoints, bypass security monitoring that would typically detect anomalous behavior on managed devices and use unmanaged devices as staging areas for lateral movement across network resources. diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 new file mode 100644 index 000000000000..12dd5a45cb6d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21892.ps1 @@ -0,0 +1,153 @@ +function Invoke-CippTestZTNA21892 { + <# + .SYNOPSIS + Verifies that all sign-in activity is restricted to managed devices + + .DESCRIPTION + Checks for Conditional Access policies that: + - Apply to all users + - Apply to all applications + - Require compliant or hybrid joined devices + - Are enabled + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #tested + try { + # Get Conditional Access policies from cache + $Policies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $Policies) { + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'No Conditional Access policies found in cache.' + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Find policies that require managed devices for all users and apps + $MatchingPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($Policy in $Policies) { + # Check if applies to all users + $appliesToAllUsers = $false + if ($Policy.conditions.users.includeUsers) { + foreach ($user in $Policy.conditions.users.includeUsers) { + if ($user -eq 'All') { + $appliesToAllUsers = $true + break + } + } + } + + # Check if applies to all apps + $appliesToAllApps = $false + if ($Policy.conditions.applications.includeApplications) { + foreach ($app in $Policy.conditions.applications.includeApplications) { + if ($app -eq 'All') { + $appliesToAllApps = $true + break + } + } + } + + # Check if requires compliant or hybrid joined device + $requiresCompliantDevice = $false + $requiresHybridJoined = $false + if ($Policy.grantControls.builtInControls) { + foreach ($control in $Policy.grantControls.builtInControls) { + if ($control -eq 'compliantDevice') { + $requiresCompliantDevice = $true + } + if ($control -eq 'domainJoinedDevice') { + $requiresHybridJoined = $true + } + } + } + + $isEnabled = $Policy.state -eq 'enabled' + + # Policy matches if enabled, applies to all users/apps, and requires managed device + if ($isEnabled -and $appliesToAllUsers -and $appliesToAllApps -and ($requiresCompliantDevice -or $requiresHybridJoined)) { + $MatchingPolicies.Add([PSCustomObject]@{ + PolicyId = $Policy.id + PolicyState = $Policy.state + DisplayName = $Policy.displayName + AllUsers = $appliesToAllUsers + AllApps = $appliesToAllApps + CompliantDevice = $requiresCompliantDevice + HybridJoinedDevice = $requiresHybridJoined + IsFullyCompliant = $isEnabled -and $appliesToAllUsers -and $appliesToAllApps -and ($requiresCompliantDevice -or $requiresHybridJoined) + }) + } + } + + # Determine pass/fail + if ($MatchingPolicies.Count -gt 0) { + $Status = 'Passed' + $ResultMarkdown = "✅ **Pass**: Conditional Access policies require managed devices for all sign-in activity.`n`n" + $ResultMarkdown += "## Matching policies`n`n" + $ResultMarkdown += "| Policy name | State | All users | All apps | Compliant device | Hybrid joined |`n" + $ResultMarkdown += "| :---------- | :---- | :-------- | :------- | :--------------- | :------------ |`n" + + foreach ($Policy in $MatchingPolicies) { + $policyLink = "https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/PolicyBlade/policyId/$($Policy.PolicyId)" + $policyName = if ($Policy.DisplayName) { $Policy.DisplayName } else { 'Unnamed' } + $allUsers = if ($Policy.AllUsers) { '✅' } else { '❌' } + $allApps = if ($Policy.AllApps) { '✅' } else { '❌' } + $compliant = if ($Policy.CompliantDevice) { '✅' } else { '❌' } + $hybrid = if ($Policy.HybridJoinedDevice) { '✅' } else { '❌' } + + $ResultMarkdown += "| [$policyName]($policyLink) | $($Policy.PolicyState) | $allUsers | $allApps | $compliant | $hybrid |`n" + } + } else { + $Status = 'Failed' + $ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that require managed devices for all sign-in activity.`n`n" + $ResultMarkdown += 'Organizations should enforce that all sign-ins come from managed devices (compliant or hybrid Azure AD joined) to ensure security controls are applied.' + } + + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21892' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'All sign-in activity comes from managed devices' + UserImpact = 'High' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21892 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md new file mode 100644 index 000000000000..c27b1172c0bb --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21893.md @@ -0,0 +1,8 @@ +Require multifactor authentication (MFA) registration for all users. Based on studies, your account is more than 99% less likely to be compromised if you're using MFA. Even if you don't require MFA all the time, this policy ensures your users are ready when it's needed. + +**Remediation action** + +- [Configure the multifactor authentication registration policy](https://learn.microsoft.com/entra/id-protection/howto-identity-protection-configure-mfa-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21894.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21895.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md new file mode 100644 index 000000000000..4e2033aae288 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.md @@ -0,0 +1,9 @@ +Service principals without proper authentication credentials (certificates or client secrets) create security vulnerabilities that allow threat actors to impersonate these identities. This can lead to unauthorized access, lateral movement within your environment, privilege escalation, and persistent access that's difficult to detect and remediate. + +**Remediation action** + +- For your organization's service principals: [Add certificates or client secrets to the app registration](https://learn.microsoft.com/entra/identity-platform/how-to-add-credentials?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- For external service principals: Review and remove any unnecessary credentials to reduce security risk + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 new file mode 100644 index 000000000000..facaf67d0489 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21896.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestZTNA21896 { + <# + .SYNOPSIS + Service principals do not have certificates or credentials associated with them + #> + param($Tenant) + #tested + try { + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + if (-not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $MicrosoftOwnerId = 'f8cdef31-a31e-4b4a-93e4-5f571e91255a' + $SPsWithPassCreds = $ServicePrincipals | Where-Object { + $_.passwordCredentials -and $_.passwordCredentials.Count -gt 0 -and $_.appOwnerOrganizationId -ne $MicrosoftOwnerId + } + $SPsWithKeyCreds = $ServicePrincipals | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 -and $_.appOwnerOrganizationId -ne $MicrosoftOwnerId + } + + if (-not $SPsWithPassCreds -and -not $SPsWithKeyCreds) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'Service principals do not have credentials associated with them' -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + return + } + + $TotalWithCreds = $SPsWithPassCreds.Count + $SPsWithKeyCreds.Count + $Status = 'Investigate' + + $ResultLines = @( + "Found $TotalWithCreds service principal(s) with credentials configured in the tenant, which represents a security risk." + '' + ) + + if ($SPsWithPassCreds.Count -gt 0) { + $ResultLines += "**Service principals with password credentials:** $($SPsWithPassCreds.Count)" + $ResultLines += '' + } + + if ($SPsWithKeyCreds.Count -gt 0) { + $ResultLines += "**Service principals with key credentials (certificates):** $($SPsWithKeyCreds.Count)" + $ResultLines += '' + } + + $ResultLines += '**Security implications:**' + $ResultLines += '- Service principals with credentials can be compromised if not properly secured' + $ResultLines += '- Password credentials are less secure than managed identities or certificate-based authentication' + $ResultLines += '- Consider using managed identities where possible to eliminate credential management' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21896' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Service principals do not have certificates or credentials associated with them' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21897.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21898.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21912.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md new file mode 100644 index 000000000000..98fe3bbbd22b --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21929.md @@ -0,0 +1,9 @@ +Access packages for guest users without expiration dates or access reviews allow indefinite access to organizational resources. Compromised or stale guest accounts enable threat actors to maintain persistent, undetected access for lateral movement, privilege escalation, and data exfiltration. Without periodic validation, organizations cannot identify when business relationships change or when guest access is no longer needed. + +**Remediation action** + +- [Configure lifecycle settings](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-package-lifecycle-policy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Configure access reviews](https://learn.microsoft.com/entra/id-governance/entitlement-management-access-reviews-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md new file mode 100644 index 000000000000..d00aeef5317c --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.md @@ -0,0 +1,18 @@ +Token protection policies in Entra ID tenants are crucial for safeguarding authentication tokens from misuse and unauthorized access. Without these policies, threat actors can intercept and manipulate tokens, leading to unauthorized access to sensitive resources. This can result in data exfiltration, lateral movement within the network, and potential compromise of privileged accounts. + +When token protection is not properly configured, threat actors can exploit several attack vectors: + +1. **Token theft and replay attacks** - Attackers can steal authentication tokens from compromised devices and replay them from different locations +2. **Session hijacking** - Without secure sign-in session controls, attackers can hijack legitimate user sessions +3. **Cross-platform token abuse** - Tokens issued for one platform (like mobile) can be misused on other platforms (like web browsers) +4. **Persistent access** - Compromised tokens can provide long-term unauthorized access without triggering security alerts + +The attack chain typically involves initial access through token theft, followed by privilege escalation and persistence, ultimately leading to data exfiltration and impact across the organization's Microsoft 365 environment. + +**Remediation action** +- [Configure Conditional Access policies as per the best practices](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection#create-a-conditional-access-policy) +- [Microsoft Entra Conditional Access token protection explained](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-token-protection) +- [Configure session controls in Conditional Access](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-conditional-access-session) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 new file mode 100644 index 000000000000..879879680277 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21941.ps1 @@ -0,0 +1,192 @@ +function Invoke-CippTestZTNA21941 { + <# + .SYNOPSIS + Checks if token protection policies are enforced for Windows platform + + .DESCRIPTION + Verifies that Conditional Access policies with token protection (secureSignInSession) are + configured for Windows devices, requiring Office 365 and Microsoft Graph access through + protected sessions to prevent token theft. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Required Office 365 and Graph app IDs + $RequiredAppIds = @( + '00000002-0000-0ff1-ce00-000000000000', # Office 365 Exchange Online + '00000003-0000-0ff1-ce00-000000000000' # Microsoft Graph + ) + + # Filter for policies with Windows platform and secureSignInSession control + $TokenProtectionPolicies = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CAPolicies) { + # Check if policy has Windows platform + $hasWindows = $false + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'windows' -or + $policy.conditions.platforms.includePlatforms -contains 'all') { + $hasWindows = $true + } + } + + # Check if policy has secureSignInSession control + $hasTokenProtection = $false + if ($policy.sessionControls -and $policy.sessionControls.signInFrequency) { + if ($policy.sessionControls.signInFrequency.isEnabled -eq $true -and + $policy.sessionControls.signInFrequency.authenticationType -eq 'primaryAndSecondaryAuthentication') { + $hasTokenProtection = $true + } + } + + # Alternative check for newer API format + if (-not $hasTokenProtection -and $policy.sessionControls) { + foreach ($prop in $policy.sessionControls.PSObject.Properties) { + if ($prop.Name -like '*secureSignIn*' -or $prop.Name -like '*tokenProtection*') { + if ($prop.Value.isEnabled -eq $true) { + $hasTokenProtection = $true + break + } + } + } + } + + if ($hasWindows -and $hasTokenProtection -and $policy.state -eq 'enabled') { + # Check if policy includes users + $hasUsers = $false + if ($policy.conditions.users.includeUsers -and $policy.conditions.users.includeUsers.Count -gt 0) { + $hasUsers = $true + } + + # Check if policy includes required apps + $hasRequiredApps = $false + if ($policy.conditions.applications.includeApplications) { + $includeAll = $policy.conditions.applications.includeApplications -contains 'All' + if ($includeAll) { + $hasRequiredApps = $true + } else { + $foundApps = 0 + foreach ($appId in $RequiredAppIds) { + if ($policy.conditions.applications.includeApplications -contains $appId) { + $foundApps++ + } + } + if ($foundApps -eq $RequiredAppIds.Count) { + $hasRequiredApps = $true + } + } + } + + $policyStatus = 'Unknown' + if ($hasUsers -and $hasRequiredApps) { + $policyStatus = 'Pass' + } elseif (-not $hasUsers) { + $policyStatus = 'No users targeted' + } elseif (-not $hasRequiredApps) { + $policyStatus = 'Missing required apps' + } + + $TokenProtectionPolicies.Add([PSCustomObject]@{ + Name = $policy.displayName + State = $policy.state + HasUsers = $hasUsers + HasRequiredApps = $hasRequiredApps + Status = $policyStatus + }) + } + } + + # Determine overall status + $PassingPolicies = $TokenProtectionPolicies | Where-Object { $_.Status -eq 'Pass' } + $Status = if ($PassingPolicies.Count -gt 0) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Token protection policies are properly configured for Windows devices.`n`n" + $ResultMarkdown += "Token protection binds authentication tokens to devices, making stolen tokens unusable on other devices.`n`n" + } else { + if ($TokenProtectionPolicies.Count -eq 0) { + $ResultMarkdown = "❌ **Fail**: No token protection policies found for Windows devices.`n`n" + $ResultMarkdown += "Without token protection, authentication tokens can be stolen and replayed from other devices.`n`n" + $ResultMarkdown += '[Create token protection policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)' + } else { + $ResultMarkdown = "❌ **Fail**: Token protection policies exist but are not properly configured.`n`n" + $ResultMarkdown += "Policies must target users and include both Office 365 and Microsoft Graph applications.`n`n" + } + } + + if ($TokenProtectionPolicies.Count -gt 0) { + $ResultMarkdown += "## Token protection policies`n`n" + $ResultMarkdown += "| Policy Name | State | Has Users | Has Required Apps | Status |`n" + $ResultMarkdown += "| :---------- | :---- | :-------- | :---------------- | :----- |`n" + + foreach ($policy in $TokenProtectionPolicies) { + $stateIcon = if ($policy.State -eq 'enabled') { '✅' } else { '❌' } + $usersIcon = if ($policy.HasUsers) { '✅' } else { '❌' } + $appsIcon = if ($policy.HasRequiredApps) { '✅' } else { '❌' } + $statusIcon = if ($policy.Status -eq 'Pass') { '✅' } else { '❌' } + + $ResultMarkdown += "| $($policy.Name) | $stateIcon $($policy.State) | $usersIcon | $appsIcon | $statusIcon $($policy.Status) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + } + + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21941' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Implement token protection policies' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21941 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md new file mode 100644 index 000000000000..eeb1984a2ec4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.md @@ -0,0 +1,10 @@ +Without Local Admin Password Solution (LAPS) deployed, threat actors exploit static local administrator passwords to establish initial access. After threat actors compromise a single device with a shared local administrator credential, they can move laterally across the environment and authenticate to other systems sharing the same password. Compromised local administrator access gives threat actors system-level privileges, letting them disable security controls, install persistent backdoors, exfiltrate sensitive data, and establish command and control channels. + +The automated password rotation and centralized management of LAPS closes this security gap and adds controls to help manage who has access to these critical accounts. Without solutions like LAPS, you can't detect or respond to unauthorized use of local administrator accounts, giving threat actors extended dwell time to achieve their objectives while remaining undetected. + +**Remediation action** + +- [Configure Windows Local Administrator Password Solution](https://learn.microsoft.com/entra/identity/devices/howto-manage-local-admin-passwords?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci). + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 new file mode 100644 index 000000000000..49d3af03ca3e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21953.ps1 @@ -0,0 +1,84 @@ +function Invoke-CippTestZTNA21953 { + <# + .SYNOPSIS + Checks if Windows Local Administrator Password Solution (LAPS) is deployed in the tenant + + .DESCRIPTION + Verifies that LAPS is enabled in the device registration policy to automatically manage + and rotate local administrator passwords on Windows devices. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + + try { + # Get device registration policy from cache + $DeviceRegPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceRegPolicy) { + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve device registration policy from cache.' + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if LAPS is enabled + $LapsEnabled = $DeviceRegPolicy.localAdminPassword.isEnabled -eq $true + + $Status = if ($LapsEnabled) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: LAPS is deployed. Your organization can automatically manage and rotate local administrator passwords on all Entra joined and hybrid Entra joined Windows devices.`n`n" + $ResultMarkdown += '[Learn more](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } else { + $ResultMarkdown = "❌ **Fail**: LAPS is not deployed. Local administrator passwords may be weak, shared, or unchanged, increasing security risk.`n`n" + $ResultMarkdown += '[Deploy LAPS](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } + + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21953' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Deploy Windows Local Administrator Password Solution (LAPS)' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21953 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md new file mode 100644 index 000000000000..a265a8360a51 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.md @@ -0,0 +1,8 @@ +When non-administrator users can access their own BitLocker keys, threat actors who compromise user credentials through phishing, credential stuffing, or malware-based keyloggers gain direct access to encryption keys without requiring privilege escalation. This access vector enables threat actors to persist on the compromised device by accessing encrypted volumes. Once threat actors obtain BitLocker keys, they can decrypt sensitive data stored on the device, including cached credentials, local databases, and confidential files. Without proper restrictions, a single compromised user account provides immediate access to all encrypted data on that device, negating the primary security benefit of disk encryption and creating a pathway for lateral movement to network resources accessed from the compromised system. + +**Remediation action** + +[Configure BitLocker key access restrictions through Microsoft Entra admin](https://learn.microsoft.com/en-us/entra/identity/devices/manage-device-identities#view-or-copy-bitlocker-keys) + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 new file mode 100644 index 000000000000..f74c4b538b44 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21954.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21954 { + <# + .SYNOPSIS + Checks if non-admin users are restricted from reading BitLocker recovery keys + + .DESCRIPTION + Verifies that the authorization policy restricts non-admin users from reading BitLocker + recovery keys for their own devices, reducing the risk of unauthorized key access. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get authorization policy from cache + $AuthPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthorizationPolicy' + + if (-not $AuthPolicy) { + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve authorization policy from cache.' + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if BitLocker key reading is restricted (should be false) + $IsRestricted = $AuthPolicy.defaultUserRolePermissions.allowedToReadBitlockerKeysForOwnedDevice -eq $false + + $Status = if ($IsRestricted) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Non-admin users cannot read BitLocker recovery keys, reducing the risk of unauthorized access.`n`n" + $ResultMarkdown += '[Review settings](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/PoliciesTemplateBlade)' + } else { + $ResultMarkdown = "❌ **Fail**: Non-admin users can read BitLocker recovery keys for their own devices, which may allow unauthorized access.`n`n" + $ResultMarkdown += '[Restrict access](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/PoliciesTemplateBlade)' + } + + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21954' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Low' + Name = 'Restrict non-admin users from reading BitLocker recovery keys' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21954 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md new file mode 100644 index 000000000000..09ba1be61884 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.md @@ -0,0 +1,8 @@ +When local administrators on Microsoft Entra joined devices aren't properly managed, threat actors with compromised credentials can execute device takeover attacks by removing organizational administrators and disabling the device's connection to Microsoft Entra. This lack of control results in complete loss of organizational control, creating orphaned assets that can't be managed or recovered. + +**Remediation action** + +- [Manage the local administrators on Microsoft Entra joined devices](https://learn.microsoft.com/entra/identity/devices/assign-local-admin?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#manage-the-microsoft-entra-joined-device-local-administrator-role) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 new file mode 100644 index 000000000000..dc63407c4576 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21955.ps1 @@ -0,0 +1,83 @@ +function Invoke-CippTestZTNA21955 { + <# + .SYNOPSIS + Checks if local administrator management is properly configured on Entra joined devices + + .DESCRIPTION + Verifies that Global Administrators are automatically added as local administrators on + Entra joined devices to enable emergency access and device management. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get device registration policy from cache + $DeviceRegPolicy = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DeviceRegistrationPolicy' + + if (-not $DeviceRegPolicy) { + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve device registration policy from cache.' + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Check if global admins are added as local admins + $GlobalAdminsEnabled = $DeviceRegPolicy.azureADJoin.localAdmins.enableGlobalAdmins -eq $true + + $Status = if ($GlobalAdminsEnabled) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Global Administrators are automatically added as local administrators on Entra joined devices.`n`n" + $ResultMarkdown += '[Review settings](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } else { + $ResultMarkdown = "❌ **Fail**: Global Administrators are not automatically added as local administrators, which may limit emergency access capabilities.`n`n" + $ResultMarkdown += '[Configure settings](https://entra.microsoft.com/#view/Microsoft_AAD_Devices/DevicesMenuBlade/~/DeviceSettings/menuId/)' + } + + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA21955' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'Manage local admins on Entra joined devices' + UserImpact = 'Low' + ImplementationEffort = 'Low' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA21955 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md new file mode 100644 index 000000000000..0dc276f4daf8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.md @@ -0,0 +1,6 @@ +Configure protected actions for Conditional Access policy create, update and delete permissions, and Authentication Context update permission. Refer to the guidance on common stronger Conditional Access policies: + +**Remediation action** +[What are protected actions in Microsoft Entra ID? - Microsoft Entra ID | Microsoft Learn](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/protected-actions-overview) + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 new file mode 100644 index 000000000000..6e62ea83874f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21964.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestZTNA21964 { + <# + .SYNOPSIS + Enable protected actions to secure Conditional Access policy creation and changes + #> + param($Tenant) + + $TestId = 'ZTNA21964' + #Tested + try { + $AuthStrengths = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationStrengths' + + if (-not $AuthStrengths) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + return + } + + $BuiltInStrengths = @($AuthStrengths | Where-Object { $_.policyType -eq 'builtIn' }) + $CustomStrengths = @($AuthStrengths | Where-Object { $_.policyType -eq 'custom' }) + + $ResultMarkdown = "## Authentication Strength Policies`n`n" + $ResultMarkdown += "Found $($AuthStrengths.Count) authentication strength policies ($($BuiltInStrengths.Count) built-in, $($CustomStrengths.Count) custom).`n`n" + + if ($CustomStrengths.Count -gt 0) { + $ResultMarkdown += "### Custom Authentication Strengths`n`n" + $ResultMarkdown += "| Name | Combinations |`n" + $ResultMarkdown += "| :--- | :---------- |`n" + foreach ($strength in $CustomStrengths) { + $combinations = if ($strength.allowedCombinations) { $strength.allowedCombinations.Count } else { 0 } + $ResultMarkdown += "| $($strength.displayName) | $combinations methods |`n" + } + } + + $Status = 'Passed' + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Enable protected actions to secure Conditional Access policy creation and changes' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Access control' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21983.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md new file mode 100644 index 000000000000..6a740c4322e2 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21984.md @@ -0,0 +1,6 @@ +... + +**Remediation action** + + +%TestResult% diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md new file mode 100644 index 000000000000..fa3494bd6918 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21985.md @@ -0,0 +1,9 @@ +Microsoft Entra seamless single sign-on (Seamless SSO) is a legacy authentication feature designed to provide passwordless access for domain-joined devices that are not hybrid Microsoft Entra ID joined. Seamless SSO relies on Kerberos authentication and is primarily beneficial for older operating systems like Windows 7 and Windows 8.1, which do not support Primary Refresh Tokens (PRT). If these legacy systems are no longer present in the environment, continuing to use Seamless SSO introduces unnecessary complexity and potential security exposure. Threat actors could exploit misconfigured or stale Kerberos tickets, or compromise the `AZUREADSSOACC` computer account in Active Directory, which holds the Kerberos decryption key used by Microsoft Entra ID. Once compromised, attackers could impersonate users, bypass modern authentication controls, and gain unauthorized access to cloud resources. Disabling Seamless SSO in environments where it is no longer needed reduces the attack surface and enforces the use of modern, token-based authentication mechanisms that offer stronger protections. + +**Remediation action** + +- [Review how Seamless SSO works](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-how-it-works?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Disable Seamless SSO](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-faq?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-can-i-disable-seamless-sso-) +- [Clean up stale devices in Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md new file mode 100644 index 000000000000..feff2e1e7706 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.md @@ -0,0 +1,13 @@ +If certificates aren't rotated regularly, they can give threat actors an extended window to extract and exploit them, leading to unauthorized access. When credentials like these are exposed, attackers can blend their malicious activities with legitimate operations, making it easier to bypass security controls. If an attacker compromises an application’s certificate, they can escalate their privileges within the system, leading to broader access and control, depending on the application's privileges. + +Query all of your service principals and application registrations that have certificate credentials. Make sure the certificate start date is less than 180 days. + +**Remediation action** + +- [Define an application management policy to manage certificate lifetimes](https://learn.microsoft.com/graph/api/resources/applicationauthenticationmethodpolicy?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Define a trusted certificate chain of trust](https://learn.microsoft.com/graph/api/resources/certificatebasedapplicationconfiguration?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Create a least privileged custom role to rotate application credentials](https://learn.microsoft.com/entra/identity/role-based-access-control/custom-create?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Learn more about app management policies to manage certificate based credentials](https://devblogs.microsoft.com/identity/app-management-policy/) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 new file mode 100644 index 000000000000..738197a548a8 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21992.ps1 @@ -0,0 +1,114 @@ +function Invoke-CippTestZTNA21992 { + <# + .SYNOPSIS + Application certificates must be rotated on a regular basis + #> + param($Tenant) + + try { + $Apps = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Apps' + $ServicePrincipals = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipals' + #Tested + if (-not $Apps -and -not $ServicePrincipals) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $RotationThresholdDays = 180 + $ThresholdDate = (Get-Date).AddDays(-$RotationThresholdDays) + + $OldAppCerts = @() + if ($Apps) { + $OldAppCerts = $Apps | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 + } | ForEach-Object { + $App = $_ + $OldestCert = $App.keyCredentials | Where-Object { $_.startDateTime } | ForEach-Object { + [DateTime]$_.startDateTime + } | Sort-Object | Select-Object -First 1 + + if ($OldestCert -and $OldestCert -lt $ThresholdDate) { + [PSCustomObject]@{ + Type = 'Application' + DisplayName = $App.displayName + AppId = $App.appId + Id = $App.id + OldestCertDate = $OldestCert + } + } + } + } + + $OldSPCerts = @() + if ($ServicePrincipals) { + $OldSPCerts = $ServicePrincipals | Where-Object { + $_.keyCredentials -and $_.keyCredentials.Count -gt 0 + } | ForEach-Object { + $SP = $_ + $OldestCert = $SP.keyCredentials | Where-Object { $_.startDateTime } | ForEach-Object { + [DateTime]$_.startDateTime + } | Sort-Object | Select-Object -First 1 + + if ($OldestCert -and $OldestCert -lt $ThresholdDate) { + [PSCustomObject]@{ + Type = 'ServicePrincipal' + DisplayName = $SP.displayName + AppId = $SP.appId + Id = $SP.id + OldestCertDate = $OldestCert + } + } + } + } + + if ($OldAppCerts.Count -eq 0 -and $OldSPCerts.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Passed' -ResultMarkdown "Certificates for applications in your tenant have been issued within $RotationThresholdDays days" -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + return + } + + $Status = 'Failed' + + $ResultLines = @( + "Found $($OldAppCerts.Count) application(s) and $($OldSPCerts.Count) service principal(s) with certificates not rotated within $RotationThresholdDays days." + '' + "**Certificate rotation threshold:** $RotationThresholdDays days" + '' + ) + + if ($OldAppCerts.Count -gt 0) { + $ResultLines += '**Applications with old certificates:**' + $Top10Apps = $OldAppCerts | Select-Object -First 10 + foreach ($App in $Top10Apps) { + $DaysOld = [Math]::Round(((Get-Date) - $App.OldestCertDate).TotalDays, 0) + $ResultLines += "- $($App.DisplayName) (Certificate age: $DaysOld days)" + } + if ($OldAppCerts.Count -gt 10) { + $ResultLines += "- ... and $($OldAppCerts.Count - 10) more application(s)" + } + $ResultLines += '' + } + + if ($OldSPCerts.Count -gt 0) { + $ResultLines += '**Service principals with old certificates:**' + $Top10SPs = $OldSPCerts | Select-Object -First 10 + foreach ($SP in $Top10SPs) { + $DaysOld = [Math]::Round(((Get-Date) - $SP.OldestCertDate).TotalDays, 0) + $ResultLines += "- $($SP.DisplayName) (Certificate age: $DaysOld days)" + } + if ($OldSPCerts.Count -gt 10) { + $ResultLines += "- ... and $($OldSPCerts.Count - 10) more service principal(s)" + } + $ResultLines += '' + } + + $ResultLines += '**Recommendation:** Rotate certificates regularly to reduce the risk of credential compromise.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21992' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Application certificates must be rotated on a regular basis' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md new file mode 100644 index 000000000000..a44892e995ac --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22072.md @@ -0,0 +1,11 @@ +Allowing security questions as a self-service password reset (SSPR) method weakens the password reset process because answers are frequently guessable, reused across sites, or discoverable through open-source intelligence (OSINT). Threat actors enumerate or phish users, derive likely responses (family names, schools, and locations), and then trigger password reset flows to bypass stronger methods by exploiting the weaker knowledge-based gate. After they successfully reset a password on an account that isn't protected by multifactor authentication they can: gain valid primary credentials, establish session tokens, and laterally expand by registering more durable authentication methods, add forwarding rules, or exfiltrate sensitive data. + +Eliminating this method removes a weak link in the password reset process. Some organizations might have specific business reasons for leaving security questions enabled, but this isn't recommended. + +**Remediation action** + +- [Disable security questions in SSPR policy](https://learn.microsoft.com/entra/identity/authentication/concept-authentication-security-questions?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Select authentication methods and registration options](https://learn.microsoft.com/entra/identity/authentication/tutorial-enable-sspr?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#select-authentication-methods-and-registration-options) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md new file mode 100644 index 000000000000..ed0906a131a4 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.md @@ -0,0 +1,8 @@ +Leaving high-priority Microsoft Entra recommendations unaddressed can create a gap in an organization’s security posture, offering threat actors opportunities to exploit known weaknesses. Not acting on these items might result in an increased attack surface area, suboptimal operations, or poor user experience. + +**Remediation action** + +- [Address all high priority recommendations in the Microsoft Entra admin center](https://learn.microsoft.com/entra/identity/monitoring-health/overview-recommendations?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci#how-does-it-work) + +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 new file mode 100644 index 000000000000..defe5a2a1b8e --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22124.ps1 @@ -0,0 +1,99 @@ +function Invoke-CippTestZTNA22124 { + <# + .SYNOPSIS + Checks if all high priority Entra recommendations have been addressed + + .DESCRIPTION + Verifies that there are no active or postponed high priority recommendations in the tenant, + ensuring critical security improvements have been implemented. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get directory recommendations from cache + $Recommendations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'DirectoryRecommendations' + + if (-not $Recommendations) { + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve directory recommendations from cache.' + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + return + } + + # Filter for high priority recommendations that are active or postponed + $HighPriorityIssues = [System.Collections.Generic.List[object]]::new() + foreach ($rec in $Recommendations) { + if ($rec.priority -eq 'high' -and ($rec.status -eq 'active' -or $rec.status -eq 'postponed')) { + $HighPriorityIssues.Add($rec) + } + } + + $Status = if ($HighPriorityIssues.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: All high priority Entra recommendations have been addressed.`n`n" + $ResultMarkdown += '[View recommendations](https://entra.microsoft.com/#view/Microsoft_Azure_SecureScore/OverviewBlade)' + } else { + $ResultMarkdown = "❌ **Fail**: There are $($HighPriorityIssues.Count) high priority recommendation(s) that have not been addressed.`n`n" + $ResultMarkdown += "## Outstanding high priority recommendations`n`n" + $ResultMarkdown += "| Display Name | Status | Insights |`n" + $ResultMarkdown += "| :----------- | :----- | :------- |`n" + + foreach ($issue in $HighPriorityIssues) { + $displayName = if ($issue.displayName) { $issue.displayName } else { 'N/A' } + $status = if ($issue.status) { $issue.status } else { 'N/A' } + $insights = if ($issue.insights) { $issue.insights } else { 'N/A' } + $ResultMarkdown += "| $displayName | $status | $insights |`n" + } + + $ResultMarkdown += "`n[Address recommendations](https://entra.microsoft.com/#view/Microsoft_Azure_SecureScore/OverviewBlade)" + } + + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA22124' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Address high priority Entra recommendations' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Governance' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA22124 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md new file mode 100644 index 000000000000..ec419c5d76e3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.md @@ -0,0 +1,9 @@ +When guest users are assigned highly privileged directory roles such as Global Administrator or Privileged Role Administrator, organizations create significant security vulnerabilities that threat actors can exploit for initial access through compromised external accounts or business partner environments. Since guest users originate from external organizations without direct control of security policies, threat actors who compromise these external identities can gain privileged access to the target organization's Microsoft Entra tenant. + +When threat actors obtain access through compromised guest accounts with elevated privileges, they can escalate their own privilege to create other backdoor accounts, modify security policies, or assign themselves permanent roles within the organization. The compromised privileged guest accounts enable threat actors to establish persistence and then make all the changes they need to remain undetected. For example they could create cloud-only accounts, bypass Conditional Access policies applied to internal users, and maintain access even after the guest's home organization detects the compromise. Threat actors can then conduct lateral movement using administrative privileges to access sensitive resources, modify audit settings, or disable security monitoring across the entire tenant. Threat actors can reach complete compromise of the organization's identity infrastructure while maintaining plausible deniability through the external guest account origin. + +**Remediation action** + +- [Remove Guest users from privileged roles](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/best-practices?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 new file mode 100644 index 000000000000..654c9549461d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22128.ps1 @@ -0,0 +1,91 @@ +function Invoke-CippTestZTNA22128 { + <# + .SYNOPSIS + Guests are not assigned high privileged directory roles + #> + param($Tenant) + #Tested + try { + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + $Guests = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Guests' + + if (-not $Roles -or -not $Guests) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + if ($Guests.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No guest users found in tenant' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $GuestIds = $Guests | ForEach-Object { $_.id } + $GuestIdHash = @{} + foreach ($Guest in $Guests) { + $GuestIdHash[$Guest.id] = $Guest + } + + $PrivilegedRoleTemplateIds = @( + '62e90394-69f5-4237-9190-012177145e10' + '194ae4cb-b126-40b2-bd5b-6091b380977d' + 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c' + '29232cdf-9323-42fd-ade2-1d097af3e4de' + 'b1be1c3e-b65d-4f19-8427-f6fa0d97feb9' + '729827e3-9c14-49f7-bb1b-9608f156bbb8' + 'b0f54661-2d74-4c50-afa3-1ec803f12efe' + 'fe930be7-5e62-47db-91af-98c3a49a38b1' + ) + + $GuestsInPrivilegedRoles = @() + foreach ($Role in $Roles) { + if ($Role.roleTemplateId -in $PrivilegedRoleTemplateIds -and $Role.members) { + foreach ($Member in $Role.members) { + if ($GuestIdHash.ContainsKey($Member.id)) { + $GuestsInPrivilegedRoles += [PSCustomObject]@{ + RoleName = $Role.displayName + GuestId = $Member.id + GuestDisplayName = $Member.displayName + GuestUserPrincipalName = $Member.userPrincipalName + } + } + } + } + } + + if ($GuestsInPrivilegedRoles.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'Guests with privileged roles were not found. All users with privileged roles are members of the tenant' -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + return + } + + $Status = 'Failed' + + $ResultLines = @( + "Found $($GuestsInPrivilegedRoles.Count) guest user(s) with privileged role assignments." + '' + "**Total guests in tenant:** $($Guests.Count)" + "**Guests with privileged roles:** $($GuestsInPrivilegedRoles.Count)" + '' + '**Guest users in privileged roles:**' + ) + + $RoleGroups = $GuestsInPrivilegedRoles | Group-Object -Property RoleName + foreach ($RoleGroup in $RoleGroups) { + $ResultLines += '' + $ResultLines += "**$($RoleGroup.Name)** ($($RoleGroup.Count) guest(s)):" + foreach ($Guest in $RoleGroup.Group) { + $ResultLines += "- $($Guest.GuestDisplayName) ($($Guest.GuestUserPrincipalName))" + } + } + + $ResultLines += '' + $ResultLines += '**Security concern:** Guest users should not have privileged directory roles. Consider using separate admin accounts for external administrators or removing privileged access.' + + $Result = $ResultLines -join "`n" + + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA22128' -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name 'Guests are not assigned high privileged directory roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Application management' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md new file mode 100644 index 000000000000..a030b51bb467 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.md @@ -0,0 +1,19 @@ +Threat actors increasingly target workload identities (applications, service principals, and managed identities) because they lack human factors and often use long-lived credentials. A compromise often looks like the following path: + +1. Credential abuse or key theft. +1. Non-interactive sign-ins to cloud resources. +1. Lateral movement via app permissions. +1. Persistence through new secrets or role assignments. + +Microsoft Entra ID Protection continuously generates risky workload identity detections and flags sign-in events with risk state and detail. Risky workload identity sign-ins that aren’t triaged (confirmed compromised, dismissed, or marked safe), detection fatigue, and a large alert backlog can be challenging for IT admins to manage. This heavy workload can let repeated malicious access, privilege escalation, and token replay to continue to go unnoticed. To make the workload manageable, address risky workload identity sign-ins in two parts: + +- Close the loop: Triage sign-ins and record an authoritative decision on each risky event. +- Drive containment: Disable the service principal, rotate credentials, or revoke sessions. + +**Remediation action** + +- [Investigate risky workload identities and perform appropriate remediation ](https://learn.microsoft.com/en-us/entra/id-protection/concept-workload-identity-risk?wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Dismiss workload identity risks when determined to be false positives](https://learn.microsoft.com/graph/api/riskyserviceprincipal-dismiss?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +- [Confirm compromised workload identities when risks are validated](https://learn.microsoft.com/graph/api/riskyserviceprincipal-confirmcompromised?view=graph-rest-1.0&preserve-view=true&wt.mc_id=zerotrustrecommendations_automation_content_cnl_csasci) +%TestResult% + diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 new file mode 100644 index 000000000000..fa3636424a16 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA22659.ps1 @@ -0,0 +1,112 @@ +function Invoke-CippTestZTNA22659 { + <# + .SYNOPSIS + Checks if risky workload identity sign-ins have been triaged + + .DESCRIPTION + Verifies that there are no active risky sign-in detections for service principals, + ensuring that compromised workload identities are properly investigated and remediated. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get service principal risk detections from cache + $RiskDetections = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ServicePrincipalRiskDetections' + + if (-not $RiskDetections) { + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve service principal risk detections from cache.' + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + return + } + + # Filter for sign-in detections that are at risk + $RiskySignIns = [System.Collections.Generic.List[object]]::new() + foreach ($detection in $RiskDetections) { + if ($detection.activity -eq 'signIn' -and $detection.riskState -eq 'atRisk') { + $RiskySignIns.Add($detection) + } + } + + $Status = if ($RiskySignIns.Count -eq 0) { 'Passed' } else { 'Failed' } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: No risky workload identity sign-ins detected or all have been triaged.`n`n" + $ResultMarkdown += '[View identity protection](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/IdentityProtectionMenuBlade/~/RiskyServicePrincipals)' + } else { + $ResultMarkdown = "❌ **Fail**: There are $($RiskySignIns.Count) risky workload identity sign-in(s) that require investigation.`n`n" + $ResultMarkdown += "## Risky service principal sign-ins`n`n" + $ResultMarkdown += "| Service Principal | App ID | Risk State | Risk Level | Last Updated |`n" + $ResultMarkdown += "| :---------------- | :----- | :--------- | :--------- | :----------- |`n" + + foreach ($signin in $RiskySignIns) { + $spName = if ($signin.servicePrincipalDisplayName) { $signin.servicePrincipalDisplayName } else { 'N/A' } + $appId = if ($signin.appId) { $signin.appId } else { 'N/A' } + $riskState = if ($signin.riskState) { $signin.riskState } else { 'N/A' } + $riskLevel = if ($signin.riskLevel) { $signin.riskLevel } else { 'N/A' } + + # Format last updated date + $lastUpdated = 'N/A' + if ($signin.lastUpdatedDateTime) { + try { + $date = [DateTime]::Parse($signin.lastUpdatedDateTime) + $lastUpdated = $date.ToString('yyyy-MM-dd HH:mm') + } catch { + $lastUpdated = $signin.lastUpdatedDateTime + } + } + + $ResultMarkdown += "| $spName | $appId | $riskState | $riskLevel | $lastUpdated |`n" + } + + $ResultMarkdown += "`n[Investigate and remediate](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/IdentityProtectionMenuBlade/~/RiskyServicePrincipals)" + } + + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA22659' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Triage risky workload identity sign-ins' + UserImpact = 'High' + ImplementationEffort = 'Low' + Category = 'Identity protection' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA22659 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 new file mode 100644 index 000000000000..08114f3e503f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24570.ps1 @@ -0,0 +1,187 @@ +function Invoke-CippTestZTNA24570 { + <# + .SYNOPSIS + Checks if Entra Connect uses a service principal instead of a user account + + .DESCRIPTION + Verifies that if hybrid identity synchronization is enabled (Entra Connect), the + Directory Synchronization Accounts role contains only service principals and not user accounts, + reducing the risk of credential theft. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get organization info to check if hybrid identity is enabled + $OrgInfo = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Organization' + + if (-not $OrgInfo) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve organization information from cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Check if hybrid identity is enabled + $HybridEnabled = $OrgInfo.onPremisesSyncEnabled -eq $true + + if (-not $HybridEnabled) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = '✅ **N/A**: Hybrid identity synchronization is not enabled in this tenant.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Get roles to find Directory Synchronization Accounts role + $Roles = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Roles' + + if (-not $Roles) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve roles from cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Find Directory Synchronization Accounts role (roleTemplateId: d29b2b05-8046-44ba-8758-1e26182fcf32) + $DirSyncRole = $null + foreach ($role in $Roles) { + if ($role.roleTemplateId -eq 'd29b2b05-8046-44ba-8758-1e26182fcf32') { + $DirSyncRole = $role + break + } + } + + if (-not $DirSyncRole) { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = '❌ **Error**: Unable to find Directory Synchronization Accounts role in cache.' + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + return + } + + # Check role members for enabled user accounts + $EnabledUsers = [System.Collections.Generic.List[object]]::new() + if ($DirSyncRole.members) { + foreach ($member in $DirSyncRole.members) { + # Check if it's a user (not a service principal) and if it's enabled + if ($member.'@odata.type' -eq '#microsoft.graph.user') { + $isEnabled = $member.accountEnabled -eq $true + if ($isEnabled) { + $EnabledUsers.Add([PSCustomObject]@{ + DisplayName = $member.displayName + UserPrincipalName = $member.userPrincipalName + AccountEnabled = $isEnabled + }) + } + } + } + } + + $Status = if ($EnabledUsers.Count -eq 0) { 'Passed' } else { 'Failed' } + + # Build result markdown + $lastSyncDate = if ($OrgInfo.onPremisesLastSyncDateTime) { + try { + $date = [DateTime]::Parse($OrgInfo.onPremisesLastSyncDateTime) + $date.ToString('yyyy-MM-dd HH:mm') + } catch { + $OrgInfo.onPremisesLastSyncDateTime + } + } else { + 'Never' + } + + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Hybrid identity is enabled and using a service principal for synchronization.`n`n" + $ResultMarkdown += "**Last Sync**: $lastSyncDate`n`n" + $ResultMarkdown += '[Review configuration](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles)' + } else { + $ResultMarkdown = "❌ **Fail**: Hybrid identity is enabled but using $($EnabledUsers.Count) enabled user account(s) for synchronization.`n`n" + $ResultMarkdown += "**Last Sync**: $lastSyncDate`n`n" + $ResultMarkdown += "## Directory Synchronization Accounts role members`n`n" + $ResultMarkdown += "| Display Name | User Principal Name | Enabled |`n" + $ResultMarkdown += "| :----------- | :------------------ | :------ |`n" + + foreach ($user in $EnabledUsers) { + $ResultMarkdown += "| $($user.DisplayName) | $($user.UserPrincipalName) | ✅ Yes |`n" + } + + $ResultMarkdown += "`n[Migrate to service principal](https://entra.microsoft.com/#view/Microsoft_AAD_IAM/RolesManagementMenuBlade/~/AllRoles)" + } + + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24570' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'Entra Connect uses a service principal' + UserImpact = 'Medium' + ImplementationEffort = 'High' + Category = 'Access control' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24570 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 new file mode 100644 index 000000000000..26fa10a7152d --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24572.ps1 @@ -0,0 +1,51 @@ +function Invoke-CippTestZTNA24572 { + <# + .SYNOPSIS + Device enrollment notifications are enforced to ensure user awareness and secure onboarding + #> + param($Tenant) + + $TestId = 'ZTNA24572' + #Tested + try { + $EnrollmentConfigs = New-CIPPDbRequest -TenantFilter $Tenant -Type 'IntuneDeviceEnrollmentConfigurations' + + if (-not $EnrollmentConfigs) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + + $EnrollmentNotifications = @($EnrollmentConfigs | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.windowsEnrollmentStatusScreenSettings' -or + $_.'deviceEnrollmentConfigurationType' -eq 'EnrollmentNotificationsConfiguration' + }) + + $AssignedNotifications = @($EnrollmentNotifications | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) + $Passed = $AssignedNotifications.Count -gt 0 + + if ($Passed) { + $ResultMarkdown = "✅ At least one device enrollment notification is configured and assigned.`n`n" + } else { + $ResultMarkdown = "❌ No device enrollment notification is configured or assigned in Intune.`n`n" + } + + if ($EnrollmentNotifications.Count -gt 0) { + $ResultMarkdown += "## Device Enrollment Notifications`n`n" + $ResultMarkdown += "| Policy Name | Assigned |`n" + $ResultMarkdown += "| :---------- | :------- |`n" + + foreach ($policy in $EnrollmentNotifications) { + $assigned = if ($policy.assignments -and $policy.assignments.Count -gt 0) { '✅ Yes' } else { '❌ No' } + $ResultMarkdown += "| $($policy.displayName) | $assigned |`n" + } + } + + $Status = if ($Passed) { 'Passed' } else { 'Failed' } + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $ResultMarkdown -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Tests' -tenant $Tenant -message "Failed to run test: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Error running test: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name 'Device enrollment notifications are enforced to ensure user awareness and secure onboarding' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Tenant' + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 new file mode 100644 index 000000000000..9dc68cd0c59f --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24824.ps1 @@ -0,0 +1,175 @@ +function Invoke-CippTestZTNA24824 { + <# + .SYNOPSIS + Checks if Conditional Access policies block access from noncompliant devices + + .DESCRIPTION + Verifies that enabled Conditional Access policies exist that require device compliance, + covering all platforms (Windows, macOS, iOS, Android) or a policy with no platform filter. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Filter for enabled policies with compliantDevice control + $CompliantDevicePolicies = [System.Collections.Generic.List[object]]::new() + foreach ($policy in $CAPolicies) { + if ($policy.state -eq 'enabled' -and + $policy.grantControls -and + $policy.grantControls.builtInControls -and + ($policy.grantControls.builtInControls -contains 'compliantDevice')) { + $CompliantDevicePolicies.Add($policy) + } + } + + if ($CompliantDevicePolicies.Count -eq 0) { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that block access from noncompliant devices.`n`n[Create policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + return + } + + # Track platform coverage + $PlatformCoverage = @{ + 'windows' = $false + 'macOS' = $false + 'iOS' = $false + 'android' = $false + } + $AllPlatformsPolicy = $false + + $PolicyDetails = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CompliantDevicePolicies) { + $platforms = 'All platforms' + + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all') { + $AllPlatformsPolicy = $true + $platforms = 'All platforms' + } else { + $platformList = $policy.conditions.platforms.includePlatforms -join ', ' + $platforms = $platformList + + # Track individual platform coverage + foreach ($platform in $policy.conditions.platforms.includePlatforms) { + $lowerPlatform = $platform.ToLower() + if ($PlatformCoverage.ContainsKey($lowerPlatform)) { + $PlatformCoverage[$lowerPlatform] = $true + } + } + } + } else { + # No platform filter = applies to all platforms + $AllPlatformsPolicy = $true + } + + $PolicyDetails.Add([PSCustomObject]@{ + Name = $policy.displayName + Platforms = $platforms + }) + } + + # Check if all platforms are covered (either by a single policy or combination) + $AllCovered = $AllPlatformsPolicy -or ( + $PlatformCoverage['windows'] -and + $PlatformCoverage['macOS'] -and + $PlatformCoverage['iOS'] -and + $PlatformCoverage['android'] + ) + + $Status = if ($AllCovered) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Conditional Access policies block noncompliant devices across all platforms.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Conditional Access policies do not cover all device platforms.`n`n" + $missingPlatforms = [System.Collections.Generic.List[string]]::new() + foreach ($key in $PlatformCoverage.Keys) { + if (-not $PlatformCoverage[$key]) { + $missingPlatforms.Add($key) + } + } + if ($missingPlatforms.Count -gt 0) { + $ResultMarkdown += "**Missing platform coverage**: $($missingPlatforms -join ', ')`n`n" + } + } + + $ResultMarkdown += "## Compliant device policies`n`n" + $ResultMarkdown += "| Policy Name | Platforms |`n" + $ResultMarkdown += "| :---------- | :-------- |`n" + + foreach ($detail in $PolicyDetails) { + $ResultMarkdown += "| $($detail.Name) | $($detail.Platforms) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24824' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'High' + Name = 'CA policies block access from noncompliant devices' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Device security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24824 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 new file mode 100644 index 000000000000..70dff3d7135a --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA24827.ps1 @@ -0,0 +1,186 @@ +function Invoke-CippTestZTNA24827 { + <# + .SYNOPSIS + Checks if Conditional Access policies block unmanaged mobile apps + + .DESCRIPTION + Verifies that enabled Conditional Access policies exist that require compliant applications + for iOS and Android platforms, preventing unmanaged apps from accessing corporate data. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Tenant + ) + #Tested - Device + + try { + # Get CA policies from cache + $CAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $CAPolicies) { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Skipped' + ResultMarkdown = 'Unable to retrieve Conditional Access policies from cache.' + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + return + } + + # Filter for enabled policies with compliantApplication control for mobile platforms + $CompliantAppPolicies = [System.Collections.Generic.List[object]]::new() + foreach ($policy in $CAPolicies) { + if ($policy.state -eq 'enabled' -and + $policy.grantControls -and + $policy.grantControls.builtInControls -and + ($policy.grantControls.builtInControls -contains 'compliantApplication')) { + + # Check if policy applies to iOS or Android + $appliesToMobile = $false + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all' -or + $policy.conditions.platforms.includePlatforms -contains 'iOS' -or + $policy.conditions.platforms.includePlatforms -contains 'android') { + $appliesToMobile = $true + } + } else { + # No platform filter = applies to all platforms including mobile + $appliesToMobile = $true + } + + if ($appliesToMobile) { + $CompliantAppPolicies.Add($policy) + } + } + } + + if ($CompliantAppPolicies.Count -eq 0) { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Fail**: No Conditional Access policies found that block unmanaged mobile apps.`n`n[Create policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + return + } + + # Track platform coverage for iOS and Android + $PlatformCoverage = @{ + 'iOS' = $false + 'android' = $false + } + $AllPlatformsPolicy = $false + + $PolicyDetails = [System.Collections.Generic.List[object]]::new() + + foreach ($policy in $CompliantAppPolicies) { + $platforms = 'All platforms' + + if ($policy.conditions.platforms.includePlatforms) { + if ($policy.conditions.platforms.includePlatforms -contains 'all') { + $AllPlatformsPolicy = $true + $platforms = 'All platforms' + } else { + $platformList = $policy.conditions.platforms.includePlatforms -join ', ' + $platforms = $platformList + + # Track individual platform coverage + if ($policy.conditions.platforms.includePlatforms -contains 'iOS') { + $PlatformCoverage['iOS'] = $true + } + if ($policy.conditions.platforms.includePlatforms -contains 'android') { + $PlatformCoverage['android'] = $true + } + } + } else { + # No platform filter = applies to all platforms + $AllPlatformsPolicy = $true + } + + $PolicyDetails.Add([PSCustomObject]@{ + Name = $policy.displayName + Platforms = $platforms + }) + } + + # Check if both iOS and Android are covered + $BothCovered = $AllPlatformsPolicy -or ($PlatformCoverage['iOS'] -and $PlatformCoverage['android']) + + $Status = if ($BothCovered) { 'Passed' } else { 'Failed' } + + # Build result markdown + if ($Status -eq 'Passed') { + $ResultMarkdown = "✅ **Pass**: Conditional Access policies block unmanaged apps on both iOS and Android platforms.`n`n" + } else { + $ResultMarkdown = "❌ **Fail**: Conditional Access policies do not cover all mobile platforms.`n`n" + $missingPlatforms = [System.Collections.Generic.List[string]]::new() + if (-not $PlatformCoverage['iOS']) { + $missingPlatforms.Add('iOS') + } + if (-not $PlatformCoverage['android']) { + $missingPlatforms.Add('android') + } + if ($missingPlatforms.Count -gt 0) { + $ResultMarkdown += "**Missing platform coverage**: $($missingPlatforms -join ', ')`n`n" + } + } + + $ResultMarkdown += "## Compliant application policies`n`n" + $ResultMarkdown += "| Policy Name | Platforms |`n" + $ResultMarkdown += "| :---------- | :-------- |`n" + + foreach ($detail in $PolicyDetails) { + $ResultMarkdown += "| $($detail.Name) | $($detail.Platforms) |`n" + } + + $ResultMarkdown += "`n[Review policies](https://entra.microsoft.com/#view/Microsoft_AAD_ConditionalAccess/ConditionalAccessBlade/~/Policies)" + + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = $Status + ResultMarkdown = $ResultMarkdown + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + + } catch { + $TestParams = @{ + TestId = 'ZTNA24827' + TenantFilter = $Tenant + TestType = 'ZeroTrustNetworkAccess' + Status = 'Failed' + ResultMarkdown = "❌ **Error**: $($_.Exception.Message)" + Risk = 'Medium' + Name = 'CA policies block unmanaged mobile apps' + UserImpact = 'Medium' + ImplementationEffort = 'Medium' + Category = 'Application security' + } + Add-CippTestResult @TestParams + Write-LogMessage -API 'ZeroTrustNetworkAccess' -tenant $Tenant -message "Test ZTNA24827 failed: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPCore/Public/Tests/ZTNA/report.json b/Modules/CIPPCore/Public/Tests/ZTNA/report.json new file mode 100644 index 000000000000..21d37a9b0dd3 --- /dev/null +++ b/Modules/CIPPCore/Public/Tests/ZTNA/report.json @@ -0,0 +1,115 @@ +{ + "name": "Zero Trust Network Access Tests", + "description": "Microsoft's Comprehensive security assessment covering identity and device compliance, conditional access policies, authentication methods, and endpoint protection aligned with Zero Trust principles.", + "version": "1.0", + "IdentityTests": [ + "ZTNA21772", + "ZTNA21773", + "ZTNA21774", + "ZTNA21776", + "ZTNA21780", + "ZTNA21783", + "ZTNA21784", + "ZTNA21786", + "ZTNA21787", + "ZTNA21790", + "ZTNA21791", + "ZTNA21792", + "ZTNA21793", + "ZTNA21796", + "ZTNA21797", + "ZTNA21799", + "ZTNA21802", + "ZTNA21803", + "ZTNA21804", + "ZTNA21806", + "ZTNA21807", + "ZTNA21808", + "ZTNA21809", + "ZTNA21810", + "ZTNA21811", + "ZTNA21812", + "ZTNA21813", + "ZTNA21814", + "ZTNA21815", + "ZTNA21816", + "ZTNA21818", + "ZTNA21819", + "ZTNA21820", + "ZTNA21822", + "ZTNA21823", + "ZTNA21824", + "ZTNA21825", + "ZTNA21828", + "ZTNA21829", + "ZTNA21830", + "ZTNA21835", + "ZTNA21836", + "ZTNA21837", + "ZTNA21838", + "ZTNA21839", + "ZTNA21840", + "ZTNA21841", + "ZTNA21842", + "ZTNA21844", + "ZTNA21845", + "ZTNA21846", + "ZTNA21847", + "ZTNA21848", + "ZTNA21849", + "ZTNA21850", + "ZTNA21858", + "ZTNA21861", + "ZTNA21862", + "ZTNA21863", + "ZTNA21865", + "ZTNA21866", + "ZTNA21868", + "ZTNA21869", + "ZTNA21872", + "ZTNA21874", + "ZTNA21877", + "ZTNA21883", + "ZTNA21886", + "ZTNA21889", + "ZTNA21892", + "ZTNA21896", + "ZTNA21941", + "ZTNA21953", + "ZTNA21954", + "ZTNA21955", + "ZTNA21964", + "ZTNA21992", + "ZTNA22124", + "ZTNA22128", + "ZTNA22659", + "ZTNA24570", + "ZTNA24572", + "ZTNA24824", + "ZTNA24827" + ], + "DevicesTests": [ + "ZTNA24540", + "ZTNA24541", + "ZTNA24542", + "ZTNA24543", + "ZTNA24545", + "ZTNA24547", + "ZTNA24548", + "ZTNA24549", + "ZTNA24550", + "ZTNA24552", + "ZTNA24553", + "ZTNA24560", + "ZTNA24564", + "ZTNA24568", + "ZTNA24569", + "ZTNA24574", + "ZTNA24575", + "ZTNA24576", + "ZTNA24784", + "ZTNA24839", + "ZTNA24840", + "ZTNA24870" + ] +} diff --git a/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 b/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 new file mode 100644 index 000000000000..1809e164d87b --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Enable-CippConsoleLogging.ps1 @@ -0,0 +1,178 @@ +# Define log level enum at script scope +enum CippConsoleLogLevel { + Debug = 0 + Verbose = 1 + Information = 2 + Warning = 3 + Error = 4 +} + +function Enable-CippConsoleLogging { + <# + .SYNOPSIS + Enable console output logging to Application Insights + .DESCRIPTION + Overrides Write-Information, Write-Warning, Write-Error, Write-Verbose, and Write-Debug + functions to send telemetry to Application Insights while maintaining normal console output + .FUNCTIONALITY + Internal + .EXAMPLE + Enable-CippConsoleLogging + + # Now all Write-* calls will be logged to Application Insights + Write-Information "This will be logged" + Write-Warning "This warning will be logged" + #> + [CmdletBinding()] + param() + + # Initialize AsyncLocal storage for InvocationId (thread-safe) + if (-not $script:CippInvocationIdStorage) { + $script:CippInvocationIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + + # Set minimum log level from environment variable (default: Information) + $validLevels = @('Debug', 'Verbose', 'Information', 'Warning', 'Error') + $configuredLevel = $env:CIPP_CONSOLE_LOG_LEVEL + $global:CippConsoleLogMinLevel = if ($configuredLevel -and $configuredLevel -in $validLevels) { + $configuredLevel + } else { + 'Information' + } + + if ($env:CIPP_CONSOLE_LOG_LEVEL -eq 'Debug') { + $global:DebugPreference = 'Continue' + } + + # Override Write-Information + function global:Write-Information { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$MessageData, + [string[]]$Tags + ) + + # Only process and call original if MessageData is provided + if ($PSBoundParameters.ContainsKey('MessageData') -and $MessageData) { + # Send to telemetry + if (-not [string]::IsNullOrWhiteSpace(($MessageData | Out-String).Trim())) { + # If tag is supplied, include it in the log message + $LogMessage = if ($Tags -and $Tags.Count -gt 0) { + '[{0}] {1}' -f ($Tags -join ','), ($MessageData | Out-String).Trim() + } else { + ($MessageData | Out-String).Trim() + } + Send-CippConsoleLog -Message $LogMessage -Level 'Information' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Information @PSBoundParameters + } + } + + # Override Write-Warning + function global:Write-Warning { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Warning' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Warning @PSBoundParameters + } + + # Override Write-Error + function global:Write-Error { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$Message, + [object]$Exception, + [object]$ErrorRecord, + [string]$ErrorId, + [System.Management.Automation.ErrorCategory]$Category, + [object]$TargetObject, + [string]$RecommendedAction, + [string]$CategoryActivity, + [string]$CategoryReason, + [string]$CategoryTargetName, + [string]$CategoryTargetType + ) + + # Send to telemetry + $errorMessage = if ($Message) { ($Message | Out-String).Trim() } + elseif ($Exception) { $Exception.Message } + elseif ($ErrorRecord) { $ErrorRecord.Exception.Message } + else { 'Unknown error' } + + if ($errorMessage -and -not [string]::IsNullOrWhiteSpace($errorMessage)) { + Send-CippConsoleLog -Message $errorMessage -Level 'Error' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Error @PSBoundParameters + } + + # Override Write-Verbose + function global:Write-Verbose { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Verbose' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Verbose @PSBoundParameters + } + + # Override Write-Debug + function global:Write-Debug { + [CmdletBinding()] + param( + [Parameter(Mandatory, Position = 0, ValueFromPipeline)] + [string]$Message + ) + + # Send to telemetry + if ($Message -and -not [string]::IsNullOrWhiteSpace($Message)) { + Send-CippConsoleLog -Message $Message -Level 'Debug' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Debug @PSBoundParameters + } + + # Override Write-Host + function global:Write-Host { + [CmdletBinding()] + param( + [Parameter(Position = 0, ValueFromPipeline)] + [object]$Object, + [switch]$NoNewline, + [object]$Separator, + [System.ConsoleColor]$ForegroundColor, + [System.ConsoleColor]$BackgroundColor + ) + + # Send to telemetry + $message = if ($Object) { ($Object | Out-String).Trim() } else { '' } + if ($message -and -not [string]::IsNullOrWhiteSpace($message)) { + Send-CippConsoleLog -Message $message -Level 'Information' + } + + # Call original function + Microsoft.PowerShell.Utility\Write-Host @PSBoundParameters + } +} diff --git a/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 b/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 new file mode 100644 index 000000000000..9ea1c1b98a76 --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 @@ -0,0 +1,184 @@ +function Import-CommunityTemplate { + <# + + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $Template, + $SHA, + $MigrationTable, + $LocationData, + $Source, + [switch]$Force + ) + + $Table = Get-CippTable -TableName 'templates' + + try { + if ($Template.RowKey) { + Write-Host "This is going to be a direct write to table, it's a CIPP template. We're writing $($Template.RowKey)" + $Template = $Template | Select-Object * -ExcludeProperty Timestamp + + # Support both objects and json string in repo (support pretty printed json in repo) + if (Test-Json $Template.JSON -ErrorAction SilentlyContinue) { + $NewJSON = $Template.JSON | ConvertFrom-Json + } else { + $NewJSON = $Template.JSON + } + + # Check for existing object + $Existing = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Template.RowKey)' and PartitionKey eq '$($Template.PartitionKey)'" -ErrorAction SilentlyContinue + + if ($Existing) { + if ($Existing.PartitionKey -eq 'StandardsTemplateV2') { + # Convert existing JSON to object for updates + if (Test-Json $Existing.JSON -ErrorAction SilentlyContinue) { + $ExistingJSON = $Existing.JSON | ConvertFrom-Json + } else { + $ExistingJSON = $Existing.JSON + } + # Extract existing tenantFilter and excludedTenants + $tenantFilter = $ExistingJSON.tenantFilter + $excludedTenants = $ExistingJSON.excludedTenants + $NewJSON.tenantFilter = $tenantFilter + $NewJSON.excludedTenants = $excludedTenants + } + } + + if ($Template.PartitionKey -eq 'AppApprovalTemplate') { + # Extract the Permission Set name,id,permissions from the JSON and add to the AppPermissions table + $AppPermissionsTable = Get-CIPPTable -TableName 'AppPermissions' + $Permissions = $NewJSON.Permissions + $Entity = @{ + 'PartitionKey' = 'Templates' + 'RowKey' = $NewJSON.PermissionSetId + 'TemplateName' = $NewJSON.PermissionSetName + 'Permissions' = [string]($Permissions | ConvertTo-Json -Depth 10 -Compress) + 'UpdatedBy' = $NewJSON.UpdatedBy ?? $NewJSON.CreatedBy ?? 'System' + } + $null = Add-CIPPAzDataTableEntity @AppPermissionsTable -Entity $Entity -Force + Write-Information 'Added App Permissions to AppPermissions table' + } + + # Re-compress JSON and save to table + $NewJSON = [string]($NewJSON | ConvertTo-Json -Depth 100 -Compress) + $Template.JSON = $NewJSON + $Template | Add-Member -MemberType NoteProperty -Name SHA -Value $SHA -Force + $Template | Add-Member -MemberType NoteProperty -Name Source -Value $Source -Force + Add-CIPPAzDataTableEntity @Table -Entity $Template -Force + } else { + if ($Template.mailNickname) { $Type = 'Group' } + if ($Template.'@odata.type' -like '*conditionalAccessPolicy*') { $Type = 'ConditionalAccessPolicy' } + Write-Host "The type is $Type" + switch -Wildcard ($Type) { + + '*Group*' { + $RawJsonObj = [PSCustomObject]@{ + Displayname = $Template.displayName + Description = $Template.Description + MembershipRules = $Template.membershipRule + username = $Template.mailNickname + GUID = $Template.id + groupType = 'generic' + } | ConvertTo-Json -Depth 100 + $entity = @{ + JSON = "$RawJsonObj" + PartitionKey = 'GroupTemplate' + SHA = $SHA + GUID = $Template.id + RowKey = $Template.id + Source = $Source + } + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force + break + } + '*conditionalAccessPolicy*' { + Write-Host $MigrationTable + $Template = ([pscustomobject]$Template) | ForEach-Object { + $NonEmptyProperties = $_.psobject.Properties | Where-Object { $null -ne $_.Value } | Select-Object -ExpandProperty Name + $_ | Select-Object -Property $NonEmptyProperties + } + $id = $Template.id + $Template = $Template | Select-Object * -ExcludeProperty lastModifiedDateTime, 'assignments', '#microsoft*', '*@odata.navigationLink', '*@odata.associationLink', '*@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime', '@odata.id', '@odata.editLink', '*odata.type', 'roleScopeTagIds@odata.type', createdDateTime, 'createdDateTime@odata.type' + Remove-ODataProperties -Object $Template + + $LocationInfo = [system.collections.generic.list[object]]::new() + if ($LocationData) { + $LocationData | ForEach-Object { + if ($Template.conditions.locations.includeLocations -contains $_.id -or $Template.conditions.locations.excludeLocations -contains $_.id) { + Write-Information "Adding location info for location ID $($_.id)" + $LocationInfo.Add($_) + } + } + if ($LocationInfo.Count -gt 0) { + $Template | Add-Member -MemberType NoteProperty -Name LocationInfo -Value $LocationInfo -Force + } + } + + $RawJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress + #Replace the ids with the displayname by using the migration table, this is a simple find and replace each instance in the JSON. + $MigrationTable.objects | ForEach-Object { + if ($RawJson -match $_.ID) { + $RawJson = $RawJson.Replace($_.ID, $($_.DisplayName)) + } + } + + $entity = @{ + JSON = "$RawJson" + PartitionKey = 'CATemplate' + SHA = $SHA + GUID = $ID + RowKey = $ID + Source = $Source + } + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force + break + } + default { + $URLName = switch -Wildcard ($Template.'@odata.id') { + '*CompliancePolicies*' { 'DeviceCompliancePolicies' } + '*deviceConfigurations*' { 'Device' } + '*DriverUpdateProfiles*' { 'windowsDriverUpdateProfiles' } + '*SettingsCatalog*' { 'Catalog' } + '*configurationPolicies*' { 'Catalog' } + '*managedAppPolicies*' { 'AppProtection' } + '*deviceAppManagement*' { 'AppProtection' } + } + $id = $Template.id + $RawJson = $Template | Select-Object * -ExcludeProperty id, lastModifiedDateTime, 'assignments', '#microsoft*', '*@odata.navigationLink', '*@odata.associationLink', '*@odata.context', 'ScopeTagIds', 'supportsScopeTags', 'createdDateTime', '@odata.id', '@odata.editLink', 'lastModifiedDateTime@odata.type', 'roleScopeTagIds@odata.type', createdDateTime, 'createdDateTime@odata.type' + Remove-ODataProperties -Object $RawJson + $RawJson = $RawJson | ConvertTo-Json -Depth 100 -Compress + + #create a new template + $RawJsonObj = [PSCustomObject]@{ + Displayname = $Template.displayName ?? $template.Name + Description = $Template.Description + RAWJson = $RawJson + Type = $URLName + GUID = $ID + } | ConvertTo-Json -Depth 100 -Compress + + $entity = @{ + JSON = "$RawJsonObj" + PartitionKey = 'IntuneTemplate' + SHA = $SHA + GUID = $ID + RowKey = $ID + Source = $Source + } + + if ($Existing -and $Existing.Package) { + $entity.Package = $Existing.Package + } + + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force + + } + } + } + } catch { + Write-Warning "Community template import failed. Error: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } +} diff --git a/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 b/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 new file mode 100644 index 000000000000..34a73e947351 --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1 @@ -0,0 +1,109 @@ +function Measure-CippTask { + <# + .SYNOPSIS + Measure and track CIPP task execution with Application Insights telemetry + .DESCRIPTION + Wraps task execution in a timer, sends custom event to Application Insights with duration and metadata + .PARAMETER TaskName + The name of the task being executed (e.g., "New-CIPPTemplateRun") + .PARAMETER Script + The scriptblock to execute and measure + .PARAMETER Metadata + Optional hashtable of metadata to include in telemetry (e.g., Command, Tenant, TaskInfo) + .PARAMETER EventName + Optional custom event name (default: "CIPP.TaskCompleted") + .FUNCTIONALITY + Internal + .EXAMPLE + Measure-CippTask -TaskName "ApplyTemplate" -Script { + # Task logic here + } -Metadata @{ + Command = "New-CIPPTemplateRun" + Tenant = "contoso.onmicrosoft.com" + } + .EXAMPLE + Measure-CippTask -TaskName "DisableGuests" -EventName "CIPP.StandardCompleted" -Script { + # Standard logic here + } -Metadata @{ + Standard = "DisableGuests" + Tenant = "contoso.onmicrosoft.com" + } + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TaskName, + + [Parameter(Mandatory = $true)] + [scriptblock]$Script, + + [Parameter(Mandatory = $false)] + [hashtable]$Metadata, + + [Parameter(Mandatory = $false)] + [string]$EventName = 'CIPP.TaskCompleted' + ) + + # Initialize tracking variables + $sw = [System.Diagnostics.Stopwatch]::StartNew() + $result = $null + $errorOccurred = $false + $errorMessage = $null + + try { + # Execute the actual task (use dot-sourcing to preserve parent scope variables) + $result = . $Script + } catch { + $errorOccurred = $true + $errorMessage = $_.Exception.Message + # Re-throw to preserve original error behavior + throw + } finally { + # Stop the timer + $sw.Stop() + $durationMs = [int]$sw.Elapsed.TotalMilliseconds + + # Send telemetry if TelemetryClient is available + if ($global:TelemetryClient) { + try { + # Build properties dictionary for customDimensions + $props = New-Object 'System.Collections.Generic.Dictionary[string,string]' + $props['TaskName'] = $TaskName + $props['Success'] = (-not $errorOccurred).ToString() + $props['RawPropsAsJson'] = ($Metadata | ConvertTo-Json -Compress) + if ($errorOccurred) { + $props['ErrorMessage'] = $errorMessage + } + + # Add all metadata to properties + if ($Metadata) { + foreach ($key in $Metadata.Keys) { + $value = $Metadata[$key] + # Convert value to string, handling nulls + if ($null -ne $value) { + $props[$key] = [string]$value + } else { + $props[$key] = '' + } + } + } + + # Metrics dictionary for customMeasurements + $metrics = New-Object 'System.Collections.Generic.Dictionary[string,double]' + $metrics['DurationMs'] = [double]$durationMs + + # Send custom event to Application Insights + $global:TelemetryClient.TrackEvent($EventName, $props, $metrics) + $global:TelemetryClient.Flush() + + Write-Verbose "Telemetry sent for task '$TaskName' to event '$EventName' (${durationMs}ms)" + } catch { + Write-Warning "Failed to send telemetry for task '${TaskName}': $($_.Exception.Message)" + } + } else { + Write-Verbose "TelemetryClient not initialized, skipping telemetry for task '$TaskName'" + } + } + + return $result +} diff --git a/Modules/CIPPCore/Public/Tools/Remove-ODataProperties.ps1 b/Modules/CIPPCore/Public/Tools/Remove-ODataProperties.ps1 new file mode 100644 index 000000000000..7a098d2732ea --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Remove-ODataProperties.ps1 @@ -0,0 +1,94 @@ +function Remove-ODataProperties { + [CmdletBinding()] + param( + [Parameter(Mandatory)] + $Object, + [switch]$SkipRemovingProperties, + [string[]]$PropertiesToRemove = @(), + [string[]]$SkipRemoveProperties = @(), + [switch]$SkipRemoveDefaultProperties, + [switch]$SkipRemovingChildProperties + ) + if ($SkipRemovingProperties) { + return + } + $defaultProperties = @( + 'id', + 'createdDateTime', + 'lastModifiedDateTime', + 'supportsScopeTags', + 'modifiedDateTime' + ) + if (-not $Object) { + return + } + $removeProps = New-Object System.Collections.Generic.List[string] + if ($PropertiesToRemove) { + $removeProps.AddRange($PropertiesToRemove) + } + if (-not $SkipRemoveDefaultProperties) { + foreach ($defProp in $defaultProperties) { + if (-not $removeProps.Contains($defProp)) { + $removeProps.Add($defProp) + } + } + } + function Remove-PropertyIfPresent { + param( + [Parameter(Mandatory)] + $psObject, + [Parameter(Mandatory)] + [string]$propName + ) + $propExists = $psObject.PSObject.Properties | Where-Object { $_.Name -eq $propName } + if ($propExists) { + $psObject.PSObject.Properties.Remove($propName) | Out-Null + } + } + + if ($Object -is [System.Collections.IEnumerable] -and -not ($Object -is [string])) { + foreach ($element in $Object) { + Remove-ODataProperties -Object $element -SkipRemovingProperties:$SkipRemovingProperties -PropertiesToRemove $PropertiesToRemove -SkipRemoveProperties $SkipRemoveProperties -SkipRemoveDefaultProperties:$SkipRemoveDefaultProperties -SkipRemovingChildProperties:$SkipRemovingChildProperties + } + return + } + if ($Object -is [PSCustomObject]) { + $odataProps = $Object.PSObject.Properties | Where-Object { + $_.Name -like '*@odata*Link' -or + $_.Name -like '*@odata.context' -or + $_.Name -like '*@odata.id' -or + ($_.Name -like '*@odata.type' -and $_.Name -ne '@odata.type') + } + + foreach ($oProp in $odataProps) { + if (-not $removeProps.Contains($oProp.Name)) { + $removeProps.Add($oProp.Name) + } + } + + foreach ($propName in $removeProps) { + if ($SkipRemoveProperties -notcontains $propName) { + Remove-PropertyIfPresent -psObject $Object -propName $propName + } + } + + if (-not $SkipRemovingChildProperties) { + foreach ($prop in $Object.PSObject.Properties) { + $val = $prop.Value + + if ($val -is [System.Collections.IEnumerable] -and -not ($val -is [string])) { + foreach ($child in $val) { + + if ($child -is [PSCustomObject]) { + Remove-ODataProperties -Object $child -SkipRemovingProperties:$SkipRemovingProperties -PropertiesToRemove $PropertiesToRemove -SkipRemoveProperties $SkipRemoveProperties -SkipRemoveDefaultProperties:$SkipRemoveDefaultProperties -SkipRemovingChildProperties:$SkipRemovingChildProperties + } + } + } + # If $val is a single PSCustomObject, recurse into it as well. + elseif ($val -is [PSCustomObject]) { + Remove-ODataProperties -Object $val -SkipRemovingProperties:$SkipRemovingProperties -PropertiesToRemove $PropertiesToRemove -SkipRemoveProperties $SkipRemoveProperties -SkipRemoveDefaultProperties:$SkipRemoveDefaultProperties -SkipRemovingChildProperties:$SkipRemovingChildProperties + } + } + } + } +} diff --git a/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 b/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 new file mode 100644 index 000000000000..1b00294b8409 --- /dev/null +++ b/Modules/CIPPCore/Public/Tools/Send-CippConsoleLog.ps1 @@ -0,0 +1,56 @@ +function Send-CippConsoleLog { + <# + .SYNOPSIS + Send console log message to Application Insights + .DESCRIPTION + Helper function to send console output to Application Insights telemetry + .PARAMETER Message + The message to log + .PARAMETER Level + The log level (Debug, Verbose, Information, Warning, Error) + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Message, + + [Parameter(Mandatory = $true)] + [ValidateSet('Debug', 'Verbose', 'Information', 'Warning', 'Error')] + [string]$Level + ) + + if ($global:TelemetryClient) { + try { + # Map level names to numeric values for comparison + $levelMap = @{ + 'Debug' = 0 + 'Verbose' = 1 + 'Information' = 2 + 'Warning' = 3 + 'Error' = 4 + } + + $currentLevelValue = $levelMap[$Level] + $minLevelValue = $levelMap[$global:CippConsoleLogMinLevel] + + # Check if this level should be logged + if ($null -ne $minLevelValue -and $currentLevelValue -ge $minLevelValue) { + $props = New-Object 'System.Collections.Generic.Dictionary[string,string]' + $props['Message'] = $Message + $props['Level'] = $Level + $props['Timestamp'] = (Get-Date).ToString('o') + + # Add InvocationId if available (from AsyncLocal storage) + if ($script:CippInvocationIdStorage -and $script:CippInvocationIdStorage.Value) { + $props['InvocationId'] = $script:CippInvocationIdStorage.Value + } + + $global:TelemetryClient.TrackEvent('CIPP.ConsoleLog', $props, $null) + } + } catch { + # Silently fail to avoid infinite loops + } + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Get-CIPPAuditLogContent.ps1 b/Modules/CIPPCore/Public/Webhooks/Get-CIPPAuditLogContent.ps1 new file mode 100644 index 000000000000..7a751bda4aef --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Get-CIPPAuditLogContent.ps1 @@ -0,0 +1,27 @@ +function Get-CIPPAuditLogContent { + <# + .SYNOPSIS + Get the content of an audit log. + .PARAMETER ContentUri + The URI of the content to get. + .PARAMETER TenantFilter + The tenant to filter on. + .EXAMPLE + Get-CIPPAuditLogContent -ContentUri 'https://manage.office.com/api/v1.0/contoso.com/activity/feed/subscriptions/content?contentType=Audit.General&PublisherIdentifier=00000000-0000-0000-0000-000000000000' -TenantFilter 'contoso.com' + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + Param( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [string[]]$ContentUri, + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [string]$TenantFilter + ) + + Process { + foreach ($Uri in $ContentUri) { + New-GraphPOSTRequest -type GET -uri $Uri -tenantid $TenantFilter -scope 'https://manage.office.com/.default' + } + } +} \ No newline at end of file diff --git a/Modules/CIPPCore/Public/Webhooks/Get-CIPPAuditLogContentBundles.ps1 b/Modules/CIPPCore/Public/Webhooks/Get-CIPPAuditLogContentBundles.ps1 new file mode 100644 index 000000000000..a9bb8bb0cbce --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Get-CIPPAuditLogContentBundles.ps1 @@ -0,0 +1,98 @@ +function Get-CIPPAuditLogContentBundles { + <# + .SYNOPSIS + Get the available audit log bundles + .DESCRIPTION + Query the Office 365 Activity Log API for available content bundles. + .PARAMETER TenantFilter + The tenant to filter on. + .PARAMETER ContentType + The type of content to get. + .PARAMETER StartTime + The start time to filter on. + .PARAMETER EndTime + The end time to filter on. + .PARAMETER ShowAll + Show all content, default is only show new content + .EXAMPLE + Get-CIPPAuditLogContentBundles -TenantFilter 'contoso.com' -ContentType 'Audit.AzureActiveDirectory' + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [ValidateSet('Audit.AzureActiveDirectory', 'Audit.Exchange')] + [string]$ContentType, + [datetime]$StartTime, + [datetime]$EndTime, + [switch]$ShowAll + ) + + if ($TenantFilter -eq 'AllTenants') { + throw 'AllTenants is not a valid tenant filter for webhooks' + } + + $Tenant = Get-Tenants -TenantFilter $TenantFilter -IncludeErrors + if (!($TenantFilter -match '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$')) { + $DefaultDomainName = $TenantFilter + $TenantFilter = $Tenant.customerId + } else { + $DefaultDomainName = $Tenant.defaultDomainName + } + + $WebhookTable = Get-CippTable -tablename 'webhookTable' + $WebhookConfig = Get-CIPPAzDataTableEntity @WebhookTable -Filter "PartitionKey eq '$DefaultDomainName' and Version eq '3' and Resource eq '$ContentType'" + + if (!$WebhookConfig) { + throw "No webhook config found for $DefaultDomainName - $ContentType" + } + + $Parameters = @{ + 'contentType' = $ContentType + 'PublisherIdentifier' = $env:TenantID + } + + if (!$ShowAll.IsPresent) { + if (!$StartTime) { + $StartTime = (Get-Date).AddMinutes(-30) + $EndTime = Get-Date + } + } + + if ($StartTime) { + $Parameters.Add('startTime', $StartTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss')) + if ($EndTime) { + $Parameters.Add('endTime', $EndTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss')) + } else { + $Parameters.Add('endTime', ($StartTime).AddHours(24).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss')) + } + } + + Write-Information "StartTime: $StartTime" + Write-Information "EndTime: $EndTime" + $GraphQuery = [System.UriBuilder]('https://manage.office.com/api/v1.0/{0}/activity/feed/subscriptions/content' -f $TenantFilter) + $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) + foreach ($Item in ($Parameters.GetEnumerator())) { + $ParamCollection.Add($Item.Key, $Item.Value) + } + $GraphQuery.Query = $ParamCollection.ToString() + + Write-Verbose "GET [ $($GraphQuery.ToString()) ]" + try { + $LogBundles = New-GraphGetRequest -uri $GraphQuery.ToString() -tenantid $TenantFilter -scope 'https://manage.office.com/.default' -IncludeResponseHeaders + $AuditLogContents = $LogBundles | Select-Object contentId, contentUri, contentCreated, contentExpiration, contentType, @{Name = 'TenantFilter'; Expression = { $TenantFilter } }, @{ Name = 'DefaultDomainName'; Expression = { $DefaultDomainName } } + return $AuditLogContents + } catch { + # service principal disabled error + if ($_.Exception.Message -match "The service principal for resource 'https://manage.office.com' is disabled") { + $WebhookConfig.Status = 'Disabled' + $WebhookConfig.Error = $_.Exception.Message + Add-CIPPAzDataTableEntity @WebhookTable -Entity $WebhookConfig -Force + Write-LogMessage -API 'Webhooks' -message 'This tenant may not have an Exchange Online license. Audit log subscription disabled.' -sev Error -LogData (Get-CippException -Exception $_) + } + Write-Host ( 'Audit log collection error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookProcessing.ps1 new file mode 100644 index 000000000000..d147b1ca0989 --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookProcessing.ps1 @@ -0,0 +1,23 @@ +function Invoke-CippGraphWebhookProcessing { + [CmdletBinding()] + param ( + $Data, + $CIPPID, + $WebhookInfo + ) + + $Table = Get-CIPPTable -TableName Extensionsconfig + + $Configuration = ((Get-AzDataTableEntity @Table).config | ConvertFrom-Json) + + Switch ($WebhookInfo.Resource) { + 'devices' { + # NinjaOne Extension + if ($Configuration.NinjaOne.Enabled -eq $True) { + Invoke-NinjaOneDeviceWebhook -Data $Data -Configuration $Configuration.NinjaOne + } + } + } + + + } diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 new file mode 100644 index 000000000000..3bc4693fe6ed --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPGraphWebhookRenewal.ps1 @@ -0,0 +1,56 @@ +function Invoke-CippGraphWebhookRenewal { + $RenewalDate = (Get-Date).AddDays(1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + $body = @{ + 'expirationDateTime' = "$RenewalDate" + } | ConvertTo-Json + + $Tenants = Get-Tenants -IncludeErrors + + $WebhookTable = Get-CIPPTable -TableName webhookTable + try { + $WebhookData = Get-AzDataTableEntity @WebhookTable | Where-Object { $null -ne $_.SubscriptionID -and $_.SubscriptionID -ne '' -and ((Get-Date($_.Expiration)) -le ((Get-Date).AddHours(2))) } + } catch { + $WebhookData = @() + } + + if (($WebhookData | Measure-Object).Count -gt 0) { + Write-LogMessage -API 'Scheduler_RenewGraphSubscriptions' -tenant 'none' -message 'Starting Graph Subscription Renewal' -sev Info + foreach ($UpdateSub in $WebhookData) { + try { + $TenantFilter = $UpdateSub.PartitionKey + if ($Tenants.defaultDomainName -notcontains $TenantFilter -and $Tenants.customerId -notcontains $TenantFilter) { + Write-LogMessage -API 'Renew_Graph_Subscriptions' -message "Removing Subscription Renewal for $($UpdateSub.SubscriptionID) as tenant $TenantFilter is not in the tenant list." -Sev 'Warning' -tenant $TenantFilter + Remove-AzDataTableEntity -Force @WebhookTable -Entity $UpdateSub + continue + } + + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/subscriptions/$($UpdateSub.SubscriptionID)" -tenantid $TenantFilter -type PATCH -body $body -Verbose + $UpdateSub.Expiration = $RenewalDate + $null = Add-AzDataTableEntity @WebhookTable -Entity $UpdateSub -Force + Write-LogMessage -API 'Renew_Graph_Subscriptions' -message "Renewed Subscription:$($UpdateSub.SubscriptionID)" -Sev 'Info' -tenant $TenantFilter + + } catch { + # Rebuild creation parameters + $BaseURL = "$(([uri]($UpdateSub.WebhookNotificationUrl)).Host)" + if ($UpdateSub.TypeofSubscription) { + $TypeofSubscription = "$($UpdateSub.TypeofSubscription)" + } else { + $TypeofSubscription = 'updated' + } + $Resource = "$($UpdateSub.Resource)" + $EventType = "$($UpdateSub.EventType)" + + Write-LogMessage -API 'Renew_Graph_Subscriptions' -message "Recreating: $($UpdateSub.SubscriptionID) as renewal failed." -Sev 'Info' -tenant $TenantFilter + $CreateResult = New-CIPPGraphSubscription -TenantFilter $TenantFilter -TypeofSubscription $TypeofSubscription -BaseURL $BaseURL -Resource $Resource -EventType $EventType -Headers 'GraphSubscriptionRenewal' -Recreate + + if ($CreateResult -match 'Created Webhook subscription for') { + Remove-AzDataTableEntity -Force @WebhookTable -Entity $UpdateSub + } + } + } catch { + Write-LogMessage -API 'Renew_Graph_Subscriptions' -message "Failed to renew Webhook Subscription: $($UpdateSub.SubscriptionID). Linenumber: $($_.InvocationInfo.ScriptLineNumber) Error: $($_.Exception.message)" -Sev 'Error' -tenant $TenantFilter + } + } + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 new file mode 100644 index 000000000000..528d0bdf0735 --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 @@ -0,0 +1,95 @@ +function Invoke-CippPartnerWebhookProcessing { + [CmdletBinding()] + param ( + $Data + ) + + try { + if ($Data.AuditUri) { + $AuditLog = New-GraphGetRequest -uri $Data.AuditUri -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' + } + + switch ($Data.EventName) { + 'test-created' { + Write-LogMessage -API 'Webhooks' -message 'Partner Center webhook test received' -Sev 'Info' + } + default { + if ($Data.EventName -eq 'granular-admin-relationship-approved') { + if ($AuditLog.resourceNewValue) { + $AuditObj = $AuditLog.resourceNewValue | ConvertFrom-Json + Write-LogMessage -API 'Webhooks' -message "Partner Webhook: GDAP Relationship for $($AuditObj.customer.organizationDisplayName) was approved, starting onboarding" -LogData $AuditObj -Sev 'Alert' + $Id = $AuditObj.Id + $OnboardingSteps = [PSCustomObject]@{ + 'Step1' = @{ + 'Status' = 'pending' + 'Title' = 'Step 1: GDAP Invite' + 'Message' = 'Waiting for onboarding job to start' + } + 'Step2' = @{ + 'Status' = 'pending' + 'Title' = 'Step 2: GDAP Role Test' + 'Message' = 'Waiting for Step 1' + } + 'Step3' = @{ + 'Status' = 'pending' + 'Title' = 'Step 3: GDAP Group Mapping' + 'Message' = 'Waiting for Step 2' + } + 'Step4' = @{ + 'Status' = 'pending' + 'Title' = 'Step 4: CPV Refresh' + 'Message' = 'Waiting for Step 3' + } + 'Step5' = @{ + 'Status' = 'pending' + 'Title' = 'Step 5: Graph API Test' + 'Message' = 'Waiting for Step 4' + } + } + $TenantOnboarding = [PSCustomObject]@{ + PartitionKey = 'Onboarding' + RowKey = [string]$Id + CustomerId = '' + Status = 'queued' + OnboardingSteps = [string](ConvertTo-Json -InputObject $OnboardingSteps -Compress) + Relationship = '' + Logs = '' + Exception = '' + } + + $OnboardItem = @{ Id = $Id } + + # Check for partner webhook onboarding settings + $ConfigTable = Get-CIPPTable -TableName Config + $WebhookConfig = Get-CIPPAzDataTableEntity @ConfigTable -Filter "RowKey eq 'PartnerWebhookOnboarding'" + + # Only proceed if automated onboarding is enabled + if ($WebhookConfig.Enabled -eq $true) { + if ($WebhookConfig.StandardsExcludeAllTenants -eq $true) { + $OnboardItem.StandardsExcludeAllTenants = $true + } + + # Add onboarding entry to the table + $OnboardTable = Get-CIPPTable -TableName 'TenantOnboarding' + Add-CIPPAzDataTableEntity @OnboardTable -Entity $TenantOnboarding -Force -ErrorAction Stop + + # Start onboarding + Push-ExecOnboardTenantQueue -Item $OnboardItem + Write-LogMessage -API 'Webhooks' -message "Automated onboarding started for relationship $Id" -Sev 'Info' + } else { + Write-LogMessage -API 'Webhooks' -message "Automated onboarding is disabled. GDAP relationship $Id approved but not onboarded automatically." -Sev 'Info' + } + } else { + if ($AuditLog) { + Write-LogMessage -API 'Webhooks' -message "Partner Center $($Data.EventName) audit log webhook received" -LogData $AuditObj -Sev 'Alert' + } else { + Write-LogMessage -API 'Webhooks' -message "Partner Center $($Data.EventName) webhook received" -LogData $Data -Sev 'Alert' + } + } + } + } + } + } catch { + Write-LogMessage -API 'Webhooks' -message 'Error processing Partner Center webhook' -LogData (Get-CippException -Exception $_) -Sev 'Error' + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 new file mode 100644 index 000000000000..0d7f1aa20e1d --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 @@ -0,0 +1,143 @@ +function Invoke-CippWebhookProcessing { + [CmdletBinding()] + param ( + $TenantFilter, + $Data, + $Resource, + $Operations, + $CIPPURL, + $APIName = 'Process webhook', + $Headers + ) + + $AuditLogTable = Get-CIPPTable -TableName 'AuditLogs' + $AuditLog = Get-CIPPAzDataTableEntity @AuditLogTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($Data.Id)'" + + if ($AuditLog) { + Write-Host "Audit Log already exists for $($Data.Id). Skipping processing." + return + } + + $Tenant = Get-Tenants -IncludeErrors | Where-Object { $_.defaultDomainName -eq $TenantFilter } + Write-Host "Received data. Our Action List is $($Data.CIPPAction)" + + $ActionList = ($Data.CIPPAction | ConvertFrom-Json -ErrorAction SilentlyContinue).value + $ActionResults = foreach ($action in $ActionList) { + Write-Host "this is our action: $($action | ConvertTo-Json -Depth 15 -Compress)" + switch ($action) { + 'disableUser' { + try { + Set-CIPPSignInState -TenantFilter $TenantFilter -User $Data.UserId -AccountEnabled $false -APIName 'Alert Engine' -Headers 'Alert Engine' + } catch { + Write-Host "Failed to disable user $($Data.UserId)`: $($_.Exception.Message)" + } + } + 'becremediate' { + $Username = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Data.UserId)" -tenantid $TenantFilter).UserPrincipalName + try { + Set-CIPPResetPassword -UserID $Username -tenantFilter $TenantFilter -APIName 'Alert Engine' -Headers 'Alert Engine' + } catch { + Write-Host "Failed to reset password for $Username`: $($_.Exception.Message)" + } + try { + Set-CIPPSignInState -userid $Username -AccountEnabled $false -tenantFilter $TenantFilter -APIName 'Alert Engine' -Headers 'Alert Engine' + } catch { + Write-Host "Failed to disable sign-in for $Username`: $($_.Exception.Message)" + } + try { + Revoke-CIPPSessions -userid $Username -username $Username -Headers 'Alert Engine' -APIName 'Alert Engine' -tenantFilter $TenantFilter + } catch { + Write-Host "Failed to revoke sessions for $Username`: $($_.Exception.Message)" + } + $RuleDisabled = 0 + New-ExoRequest -anchor $Username -tenantid $TenantFilter -cmdlet 'Get-InboxRule' -cmdParams @{Mailbox = $Username; IncludeHidden = $true } | Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } | ForEach-Object { + $null = New-ExoRequest -anchor $Username -tenantid $TenantFilter -cmdlet 'Disable-InboxRule' -cmdParams @{Confirm = $false; Identity = $_.Identity } + "Disabled Inbox Rule $($_.Identity) for $Username" + $RuleDisabled++ + } + if ($RuleDisabled) { + "Disabled $RuleDisabled Inbox Rules for $Username" + } else { + "No Inbox Rules found for $Username. We have not disabled any rules." + } + "Completed BEC Remediate for $Username" + Write-LogMessage -API 'BECRemediate' -tenant $tenantfilter -message "Executed Remediation for $Username" -sev 'Info' + } + 'cippcommand' { + $CommandSplat = @{} + $action.parameters.psobject.properties | ForEach-Object { $CommandSplat.Add($_.name, $_.value) } + if ($CommandSplat['userid']) { $CommandSplat['userid'] = $Data.UserId } + if ($CommandSplat['tenantfilter']) { $CommandSplat['tenantfilter'] = $TenantFilter } + if ($CommandSplat['tenant']) { $CommandSplat['tenant'] = $TenantFilter } + if ($CommandSplat['user']) { $CommandSplat['user'] = $Data.UserId } + if ($CommandSplat['username']) { $CommandSplat['username'] = $Data.UserId } + & $action.command.value @CommandSplat + } + } + } + + # Save audit log entry to table + $LocationInfo = $Data.CIPPLocationInfo | ConvertFrom-Json -ErrorAction SilentlyContinue + $AuditRecord = $Data.AuditRecord | ConvertFrom-Json -ErrorAction SilentlyContinue + $GenerateJSON = New-CIPPAlertTemplate -format 'json' -data $Data -ActionResults $ActionResults -CIPPURL $CIPPURL -AlertComment $WebhookRule.AlertComment + $JsonContent = @{ + Title = $GenerateJSON.Title + ActionUrl = $GenerateJSON.ButtonUrl + ActionText = $GenerateJSON.ButtonText + RawData = $Data + IP = $Data.ClientIP + PotentialLocationInfo = $LocationInfo + ActionsTaken = $ActionResults + AuditRecord = $AuditRecord + } | ConvertTo-Json -Depth 15 -Compress + + $CIPPAlert = @{ + Type = 'table' + Title = $GenerateJSON.Title + JSONContent = $JsonContent + TenantFilter = $TenantFilter + TableName = 'AuditLogs' + RowKey = $Data.Id + } + $LogId = Send-CIPPAlert @CIPPAlert + + $AuditLogLink = '{0}/tenant/administration/audit-logs/log?logId={1}&tenantFilter={2}' -f $CIPPURL, $LogId, $Tenant.defaultDomainName + $GenerateEmail = New-CIPPAlertTemplate -format 'html' -data $Data -ActionResults $ActionResults -CIPPURL $CIPPURL -Tenant $Tenant.defaultDomainName -AuditLogLink $AuditLogLink -AlertComment $WebhookRule.AlertComment + + Write-Host 'Going to create the content' + foreach ($action in $ActionList ) { + switch ($action) { + 'generatemail' { + $CIPPAlert = @{ + Type = 'email' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $TenantFilter + } + Write-Host 'Going to send the mail' + Send-CIPPAlert @CIPPAlert + Write-Host 'email should be sent' + } + 'generatePSA' { + $CIPPAlert = @{ + Type = 'psa' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $TenantFilter + } + Send-CIPPAlert @CIPPAlert + } + 'generateWebhook' { + $CippAlert = @{ + Type = 'webhook' + Title = $GenerateJSON.Title + JSONContent = $JsonContent + TenantFilter = $TenantFilter + } + Write-Host 'Sending Webhook Content' + Send-CIPPAlert @CippAlert + } + } + } +} + diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-RemoveWebhookAlert.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-RemoveWebhookAlert.ps1 new file mode 100644 index 000000000000..be8e5cdaa639 --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-RemoveWebhookAlert.ps1 @@ -0,0 +1,57 @@ +using namespace System.Net + +Function Invoke-RemoveWebhookAlert { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + try { + $WebhookTable = Get-CIPPTable -TableName 'SchedulerConfig' + $WebhookRow = Get-CIPPAzDataTableEntity @WebhookTable -Filter "PartitionKey eq 'WebhookAlert'" | Where-Object -Property Tenant -EQ $Request.query.TenantFilter + Write-Host "The webhook count is $($WebhookRow.count)" + if ($WebhookRow.count -gt 1) { + $Entity = $WebhookRow | Where-Object -Property RowKey -EQ $Request.query.ID + Remove-AzDataTableEntity -Force @WebhookTable -Entity $Entity | Out-Null + $Results = "Removed Alert Rule for $($Request.query.TenantFilter)" + } else { + if ($Request.query.TenantFilter -eq 'AllTenants') { + $Tenants = Get-Tenants -IncludeAll -IncludeErrors | Select-Object -ExpandProperty defaultDomainName + try { + $CompleteObject = @{ + tenant = 'AllTenants' + type = 'webhookcreation' + RowKey = 'AllTenantsWebhookCreation' + PartitionKey = 'webhookcreation' + } + Remove-AzDataTableEntity -Force @Table -Entity $CompleteObject -ErrorAction SilentlyContinue | Out-Null + } catch { + Write-LogMessage -headers $Request.Headers -API $APIName -message "Failed to remove webhook for AllTenants. $($_.Exception.Message)" -Sev 'Error' + } + } else { + $Tenants = $Request.query.TenantFilter + } + + $Results = foreach ($Tenant in $Tenants) { + Remove-CIPPGraphSubscription -TenantFilter $Tenant -Type 'AuditLog' + $Entity = $WebhookRow | Where-Object -Property RowKey -EQ $Request.query.ID + Remove-AzDataTableEntity -Force @WebhookTable -Entity $Entity | Out-Null + "Removed Alert Rule for $($Request.query.TenantFilter)" + } + } + $body = [pscustomobject]@{'Results' = $Results } + } catch { + Write-LogMessage -headers $Request.Headers -API $APINAME -message "Failed to remove webhook alert. $($_.Exception.Message)" -Sev 'Error' + $body = [pscustomobject]@{'Results' = "Failed to remove webhook alert: $($_.Exception.Message)" } + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/New-CIPPGraphSubscription.ps1 b/Modules/CIPPCore/Public/Webhooks/New-CIPPGraphSubscription.ps1 new file mode 100644 index 000000000000..2e32b90c2de2 --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/New-CIPPGraphSubscription.ps1 @@ -0,0 +1,127 @@ +function New-CIPPGraphSubscription { + [CmdletBinding()] + param ( + $TenantFilter, + $TypeofSubscription, + $AllowedLocations, + $BaseURL, + $Resource, + $EventType, + $APIName = 'Create Webhook', + $Headers, + [Switch]$Recreate, + [switch]$PartnerCenter + ) + $CIPPID = (New-Guid).GUID + $WebhookTable = Get-CIPPTable -TableName 'webhookTable' + + try { + if ($PartnerCenter.IsPresent) { + $WebhookFilter = "PartitionKey eq '$($env:TenantID)'" + $ExistingWebhooks = Get-CIPPAzDataTableEntity @WebhookTable -Filter $WebhookFilter + $CIPPID = $env:TenantID + $MatchedWebhook = $ExistingWebhooks | Where-Object { $_.Resource -eq 'PartnerCenter' -and $_.RowKey -eq $CIPPID } + + # Required event types + $EventList = [System.Collections.Generic.List[string]]@('test-created', 'granular-admin-relationship-approved') + if (($EventType | Measure-Object).count -gt 0) { + foreach ($Event in $EventType) { + if ($EventList -notcontains $Event) { + $EventList.Add($Event) + } + } + } + + $Body = [PSCustomObject]@{ + WebhookUrl = "https://$BaseURL/API/PublicWebhooks?CIPPID=$($CIPPID)&Type=PartnerCenter" + WebhookEvents = @($EventList) + } + try { + $EventCompare = Compare-Object $EventList ($MatchedWebhook.EventType | ConvertFrom-Json -ErrorAction Stop) + } catch { + $EventCompare = $false + } + try { + $Uri = 'https://api.partnercenter.microsoft.com/webhooks/v1/registration' + try { + $Existing = New-GraphGetRequest -NoAuthCheck $true -uri $Uri -tenantid $env:TenantID -scope 'https://api.partnercenter.microsoft.com/.default' + } catch { $Existing = $false } + if (!$Existing -or $Existing.webhookUrl -ne $MatchedWebhook.WebhookNotificationUrl -or $EventCompare) { + if ($Existing.WebhookUrl) { + $Action = 'Updated' + $Method = 'PUT' + } else { + $Action = 'Created' + $Method = 'POST' + } + + $Uri = 'https://api.partnercenter.microsoft.com/webhooks/v1/registration' + $GraphRequest = New-GraphPOSTRequest -uri $Uri -type $Method -tenantid $env:TenantID -scope 'https://api.partnercenter.microsoft.com/.default' -body ($Body | ConvertTo-Json) -NoAuthCheck $true + + $WebhookRow = @{ + PartitionKey = [string]$CIPPID + RowKey = [string]$CIPPID + EventType = [string](ConvertTo-Json -InputObject $EventList) + Resource = [string]'PartnerCenter' + SubscriptionID = [string]$GraphRequest.SubscriberId + Expiration = 'Does Not Expire' + WebhookNotificationUrl = [string]$Body.WebhookUrl + } + $null = Add-CIPPAzDataTableEntity @WebhookTable -Entity $WebhookRow -Force + Write-LogMessage -headers $Headers -API $APIName -message "$Action Partner Center Webhook subscription" -Sev 'Info' -tenant 'PartnerTenant' + return "$Action Partner Center Webhook subscription" + } else { + Write-LogMessage -headers $Headers -API $APIName -message 'Existing Partner Center Webhook subscription found' -Sev 'Info' -tenant 'PartnerTenant' + return 'Existing Partner Center Webhook subscription found' + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to create Partner Center Webhook Subscription: $($_.Exception.Message)" -Sev 'Error' -tenant 'PartnerTenant' + return "Failed to create Partner Webhook Subscription: $($_.Exception.Message)" + } + + } else { + # First check if there is an existing Webhook in place + $WebhookFilter = "PartitionKey eq '$($TenantFilter)'" + $ExistingWebhooks = Get-CIPPAzDataTableEntity @WebhookTable -Filter $WebhookFilter + $MatchedWebhook = $ExistingWebhooks | Where-Object { $_.Resource -eq $Resource } + if (($MatchedWebhook | Measure-Object).count -eq 0 -or $Recreate.IsPresent) { + $expiredate = (Get-Date).AddDays(1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + $params = @{ + changeType = $TypeofSubscription + notificationUrl = "https://$BaseURL/API/PublicWebhooks?EventType=$EventType&CIPPID=$($CIPPID)&Type=GraphSubscription" + resource = $Resource + expirationDateTime = $expiredate + } | ConvertTo-Json + + if ($BaseURL -match 'localhost' -or $BaseURL -match '127.0.0.1') { + return 'Cannot create graph subscription for local development' + } + + $GraphRequest = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/subscriptions' -tenantid $TenantFilter -type POST -body $params -verbose + #If creation is succesfull, we store the GUID in the storage table webhookTable to make sure we can check against this later on. + #We store the GUID as rowkey, the event type, the resource, and the expiration date as properties, we also add the Tenant name so we can easily find this later on. + #We don't store the return, because Ms decided that a renewal or re-authenticate does not change the url, but does change the id... + $WebhookRow = @{ + PartitionKey = [string]$TenantFilter + RowKey = [string]$CIPPID + EventType = [string]$EventType + Resource = [string]$Resource + Expiration = [string]$expiredate + SubscriptionID = [string]$GraphRequest.id + TypeofSubscription = [string]$TypeofSubscription + WebhookNotificationUrl = [string]$GraphRequest.notificationUrl + } + $null = Add-CIPPAzDataTableEntity @WebhookTable -Entity $WebhookRow + #todo: add remove webhook function, add check webhook function, add list webhooks function + #add refresh webhook function based on table. + Write-LogMessage -headers $Headers -API $APIName -message "Created Graph Webhook subscription for $($TenantFilter)" -Sev 'Info' -tenant $TenantFilter + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Existing Graph Webhook subscription for $($TenantFilter) found" -Sev 'Info' -tenant $TenantFilter + } + } + return "Created Webhook subscription for $($TenantFilter)" + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to create Webhook Subscription: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter + Return "Failed to create Webhook Subscription for $($TenantFilter): $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Remove-CIPPGraphSubscription.ps1 b/Modules/CIPPCore/Public/Webhooks/Remove-CIPPGraphSubscription.ps1 new file mode 100644 index 000000000000..24769a81b3c6 --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Remove-CIPPGraphSubscription.ps1 @@ -0,0 +1,56 @@ +function Remove-CIPPGraphSubscription { + [CmdletBinding()] + param ( + $TenantFilter, + $CIPPID, + $APIName = 'Remove Graph Webhook', + $Type, + $EventType, + $Headers, + $Cleanup = $false + ) + try { + if ($Cleanup) { + #list all subscriptions on the management API + $Subscriptions = New-GraphPOSTRequest -type GET -uri "https://manage.office.com/api/v1.0/$($TenantFilter)/activity/feed/subscriptions/list" -scope 'https://manage.office.com/.default' -tenantid $TenantFilter -verbose + foreach ($Sub in $Subscriptions | Where-Object { $_.webhook.address -like '*CIPP*' -and $_.webhook.address -notlike '*version=3*' }) { + Try { + $AuditLog = New-GraphPOSTRequest -uri "https://manage.office.com/api/v1.0/$($TenantFilter)/activity/feed/subscriptions/stop?contentType=$($sub.contentType)" -scope 'https://manage.office.com/.default' -tenantid $TenantFilter -type POST -body '{}' -verbose + Try { + $WebhookRow = Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $_.PartitionKey -eq $TenantFilter -and $_.Resource -eq $EventType -and $_.version -ne '2' } + $null = Remove-AzDataTableEntity -Force @WebhookTable -Entity $Entity + } catch { + Write-LogMessage -headers $Headers -API $APIName -message 'Deleted an audit log webhook that was already removed from CIPP' -Sev 'Info' -tenant $TenantFilter + + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to cleanup old audit logs: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter + } + } + } else { + $WebhookTable = Get-CIPPTable -TableName 'webhookTable' + if ($type -eq 'AuditLog') { + $WebhookRow = Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $_.PartitionKey -eq $TenantFilter -and $_.Resource -eq $EventType } + } else { + $WebhookRow = Get-CIPPAzDataTableEntity @WebhookTable | Where-Object { $_.RowKey -eq $CIPPID } + } + $Entity = $WebhookRow | Select-Object PartitionKey, RowKey + if ($Type -eq 'AuditLog') { + try { + $AuditLog = New-GraphPOSTRequest -uri "https://manage.office.com/api/v1.0/$($TenantFilter)/activity/feed/subscriptions/stop?contentType=$($EventType)" -scope 'https://manage.office.com/.default' -tenantid $TenantFilter -type POST -body '{}' -verbose + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to remove webhook subscription at Microsoft's side: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter + } + $null = Remove-AzDataTableEntity -Force @WebhookTable -Entity $Entity + } else { + $OldID = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscriptions' -tenantid $TenantFilter) | Where-Object { $_.notificationUrl -eq $WebhookRow.WebhookNotificationUrl } + $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/subscriptions/$($oldId.ID)" -tenantid $TenantFilter -type DELETE -body {} -Verbose + $null = Remove-AzDataTableEntity -Force @WebhookTable -Entity $Entity + } + return "Removed webhook subscription to $($WebhookRow.resource) for $($TenantFilter)" + } + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to renew Webhook Subscription: $($_.Exception.Message)" -Sev 'Error' -tenant $TenantFilter + return "Failed to remove Webhook Subscription $($GraphRequest.value.notificationUrl): $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 new file mode 100644 index 000000000000..cbd8229cf7fe --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 @@ -0,0 +1,498 @@ +function Test-CIPPAuditLogRules { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $TenantFilter, + [Parameter(Mandatory = $true)] + $Rows + ) + + try { + # Helper function to map GUIDs and partner UPNs to user objects + function Add-CIPPGuidMappings { + param( + [Parameter(Mandatory = $true)] + $DataObject, + [Parameter(Mandatory = $true)] + $Users, + [Parameter(Mandatory = $true)] + $Groups, + [Parameter(Mandatory = $true)] + $Devices, + [Parameter(Mandatory = $true)] + $ServicePrincipals, + [Parameter(Mandatory = $true)] + $PartnerUsers, + [Parameter(Mandatory = $false)] + [string]$PropertyPrefix = '' + ) + + $DataObject.PSObject.Properties | ForEach-Object { + # Check for standard GUID format OR partner UPN formats + if ($_.Value -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$' -or + $_.Value -match 'user_[0-9a-f]{32}@[^@]+\.onmicrosoft\.com' -or + $_.Value -match '[^\\]+\.onmicrosoft\.com\\tenant:\s*[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12},\s*object:\s*[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}') { + + # Use regex from guid-resolver hook to match various partner user formats + # Format 1: user_@.onmicrosoft.com + if ($_.Value -match 'user_([0-9a-f]{32})@([^@]+\.onmicrosoft\.com)') { + $hexId = $matches[1] + $tenantDomain = $matches[2] + if ($hexId.Length -eq 32) { + # Convert the 32-character hex string to GUID format + $guid = "$($hexId.Substring(0,8))-$($hexId.Substring(8,4))-$($hexId.Substring(12,4))-$($hexId.Substring(16,4))-$($hexId.Substring(20,12))" + Write-Information "Found partner UPN format: $($_.Value) with GUID: $guid and tenant: $tenantDomain" + + # Check partner users for this GUID + foreach ($PartnerUser in $PartnerUsers) { + if ($PartnerUser.id -eq $guid) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $PartnerUser.userPrincipalName -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Partner User UPN: $($PartnerUser.userPrincipalName) to $PropertyPrefix$($_.Name)" + return + } + } + } + } + + # Format 2: TenantName.onmicrosoft.com\tenant: , object: + if ($_.Value -match '([^\\]+\.onmicrosoft\.com)\\tenant:\s*([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}),\s*object:\s*([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})') { + $customerTenantDomain = $matches[1] + $partnerTenantGuid = $matches[2] + $objectGuid = $matches[3] + Write-Information "Found partner exchange format: customer tenant $customerTenantDomain, partner tenant $partnerTenantGuid, object $objectGuid" + + # Check partner users for this object GUID + foreach ($PartnerUser in $PartnerUsers) { + if ($PartnerUser.id -eq $objectGuid) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $PartnerUser.userPrincipalName -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Partner User UPN: $($PartnerUser.userPrincipalName) to $PropertyPrefix$($_.Name)" + return + } + } + } + + # Check standard directory objects (users, groups, devices, service principals) + foreach ($User in $Users) { + if ($User.id -eq $_.Value) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $User.userPrincipalName -Force -ErrorAction SilentlyContinue + Write-Information "Mapped User: $($User.userPrincipalName) to $PropertyPrefix$($_.Name)" + return + } + } + foreach ($Group in $Groups) { + if ($Group.id -eq $_.Value) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $Group -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Group: $($Group.displayName) to $PropertyPrefix$($_.Name)" + return + } + } + foreach ($Device in $Devices) { + if ($Device.id -eq $_.Value) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $Device -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Device: $($Device.displayName) to $PropertyPrefix$($_.Name)" + return + } + } + foreach ($ServicePrincipal in $ServicePrincipals) { + if ($ServicePrincipal.id -eq $_.Value -or $ServicePrincipal.appId -eq $_.Value) { + $DataObject | Add-Member -NotePropertyName "$PropertyPrefix$($_.Name)" -NotePropertyValue $ServicePrincipal -Force -ErrorAction SilentlyContinue + Write-Information "Mapped Service Principal: $($ServicePrincipal.displayName) to $PropertyPrefix$($_.Name)" + return + } + } + } + } + } + + #$FunctionStartTime = Get-Date + + $Results = [PSCustomObject]@{ + TotalLogs = 0 + MatchedLogs = 0 + MatchedRules = @() + DataToProcess = @() + } + + # Get the CacheWebhooks table for removing processed rows + $CacheWebhooksTable = Get-CippTable -TableName 'CacheWebhooks' + + $ExtendedPropertiesIgnoreList = @( + 'SAS:EndAuth' + 'SAS:ProcessAuth' + 'deviceAuth:ReprocessTls' + 'Consent:Set' + ) + + $TrustedIPTable = Get-CIPPTable -TableName 'trustedIps' + $ConfigTable = Get-CIPPTable -TableName 'WebhookRules' + $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable + $Configuration = foreach ($ConfigEntry in $ConfigEntries) { + if ([string]::IsNullOrEmpty($ConfigEntry.Tenants)) { + continue + } + $Tenants = $ConfigEntry.Tenants | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($null -eq $Tenants) { + continue + } + # Expand tenant groups to get actual tenant list + $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $Tenants + # Check if the TenantFilter matches any tenant in the expanded list or AllTenants + if ($ExpandedTenants.value -contains $TenantFilter -or $ExpandedTenants.value -contains 'AllTenants') { + [pscustomobject]@{ + Tenants = $Tenants + Excluded = ($ConfigEntry.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue) + Conditions = $ConfigEntry.Conditions + Actions = $ConfigEntry.Actions + LogType = $ConfigEntry.Type + } + } + } + + $Table = Get-CIPPTable -tablename 'cacheauditloglookups' + $1dayago = (Get-Date).AddDays(-1).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $Lookups = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$TenantFilter' and Timestamp gt datetime'$1dayago'" + if (!$Lookups) { + # Collect bulk data for users/groups/devices/applications + $Requests = @( + @{ + id = 'users' + url = '/users?$select=id,displayName,userPrincipalName,accountEnabled&$top=999' + method = 'GET' + } + @{ + id = 'groups' + url = '/groups?$select=id,displayName,mailEnabled,securityEnabled&$top=999' + method = 'GET' + } + @{ + id = 'devices' + url = '/devices?$select=id,displayName,deviceId&$top=999' + method = 'GET' + } + @{ + id = 'servicePrincipals' + url = '/servicePrincipals?$select=id,displayName&$top=999' + method = 'GET' + } + ) + $Response = New-GraphBulkRequest -TenantId $TenantFilter -Requests $Requests + $Users = ($Response | Where-Object { $_.id -eq 'users' }).body.value ?? @() + $Groups = ($Response | Where-Object { $_.id -eq 'groups' }).body.value ?? @() + $Devices = ($Response | Where-Object { $_.id -eq 'devices' }).body.value ?? @() + $ServicePrincipals = ($Response | Where-Object { $_.id -eq 'servicePrincipals' }).body.value ?? @() + # Cache the lookups for 1 day + $Entities = @( + @{ + PartitionKey = $TenantFilter + RowKey = 'users' + Data = [string]($Users | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'groups' + Data = [string]($Groups | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'devices' + Data = [string]($Devices | ConvertTo-Json -Compress) + } + @{ + PartitionKey = $TenantFilter + RowKey = 'servicePrincipals' + Data = [string]($ServicePrincipals | ConvertTo-Json -Compress) + } + ) + # Save the cached lookups + Add-CIPPAzDataTableEntity @Table -Entity $Entities -Force + Write-Information "Cached directory lookups for tenant $TenantFilter" + } else { + # Use cached lookups + $Users = (($Lookups | Where-Object { $_.RowKey -eq 'users' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $Groups = (($Lookups | Where-Object { $_.RowKey -eq 'groups' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $Devices = (($Lookups | Where-Object { $_.RowKey -eq 'devices' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + $ServicePrincipals = (($Lookups | Where-Object { $_.RowKey -eq 'servicePrincipals' }).Data | ConvertFrom-Json -ErrorAction SilentlyContinue) ?? @() + Write-Information "Using cached directory lookups for tenant $TenantFilter" + } + + # partner users + $PartnerUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$select=id,displayName,userPrincipalName,accountEnabled&`$top=999" -AsApp $true -NoAuthCheck $true + + Write-Warning '## Audit Log Configuration ##' + Write-Information ($Configuration | ConvertTo-Json -Depth 10) + + try { + $LogCount = $Rows.count + $RunGuid = (New-Guid).Guid + Write-Warning "Logs to process: $LogCount - RunGuid: $($RunGuid) - $($TenantFilter)" + $Results.TotalLogs = $LogCount + Write-Information "RunGuid: $RunGuid - Collecting logs" + $SearchResults = $Rows + } catch { + Write-Warning "Error getting audit logs: $($_.Exception.Message)" + Write-LogMessage -API 'Webhooks' -message 'Error Processing Audit logs' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter + throw $_ + } + + $AuditLogUserExclusions = Get-CIPPTable -TableName 'AuditLogUserExclusions' + $ExcludedUsers = Get-CIPPAzDataTableEntity @AuditLogUserExclusions -Filter "PartitionKey eq '$TenantFilter'" + + if ($LogCount -gt 0) { + $LocationTable = Get-CIPPTable -TableName 'knownlocationdbv2' + $ProcessedData = foreach ($AuditRecord in $SearchResults) { + $RecordStartTime = Get-Date + Write-Information "Processing RowKey $($AuditRecord.id) - $($TenantFilter)." + $RootProperties = $AuditRecord + $Data = $AuditRecord.auditData | Select-Object *, CIPPAction, CIPPClause, CIPPGeoLocation, CIPPBadRepIP, CIPPHostedIP, CIPPIPDetected, CIPPLocationInfo, CIPPExtendedProperties, CIPPDeviceProperties, CIPPParameters, CIPPModifiedProperties, AuditRecord -ErrorAction SilentlyContinue + try { + # Attempt to locate GUIDs in $Data and match them with their corresponding user, group, device, or service principal recursively by checking each key/value once located lets store these mapped values in a CIPP$KeyName property + Write-Information 'Checking Data for GUIDs to map to users, groups, devices, or service principals' + Add-CIPPGuidMappings -DataObject $Data -Users $Users -Groups $Groups -Devices $Devices -ServicePrincipals $ServicePrincipals -PartnerUsers $PartnerUsers -PropertyPrefix 'CIPP' + + # Also check root properties for GUIDs and partner UPNs + Write-Information 'Checking RootProperties for GUIDs to map to users, groups, devices, or service principals' + Add-CIPPGuidMappings -DataObject $RootProperties -Users $Users -Groups $Groups -Devices $Devices -ServicePrincipals $ServicePrincipals -PartnerUsers $PartnerUsers + + if ($Data.ExtendedProperties) { + $Data.CIPPExtendedProperties = ($Data.ExtendedProperties | ConvertTo-Json -Compress) + $Data.ExtendedProperties | ForEach-Object { + if ($_.Value -in $ExtendedPropertiesIgnoreList) { + #write-warning "No need to process this operation as its in our ignore list. Some extended information: $($data.operation):$($_.Value) - $($TenantFilter)" + continue + } + $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue + } + } + if ($Data.DeviceProperties) { + $Data.CIPPDeviceProperties = ($Data.DeviceProperties | ConvertTo-Json -Compress) + $Data.DeviceProperties | ForEach-Object { $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue } + } + if ($Data.parameters) { + $Data.CIPPParameters = ($Data.parameters | ConvertTo-Json -Compress) + $Data.parameters | ForEach-Object { $Data | Add-Member -NotePropertyName $_.Name -NotePropertyValue $_.Value -Force -ErrorAction SilentlyContinue } + } + if ($Data.ModifiedProperties) { + $Data.CIPPModifiedProperties = ($Data.ModifiedProperties | ConvertTo-Json -Compress) + try { + $Data.ModifiedProperties | ForEach-Object { $Data | Add-Member -NotePropertyName "$($_.Name)" -NotePropertyValue "$($_.NewValue)" -Force -ErrorAction SilentlyContinue } + } catch { + ##write-warning ($Data.ModifiedProperties | ConvertTo-Json -Depth 10) + } + try { + $Data.ModifiedProperties | ForEach-Object { $Data | Add-Member -NotePropertyName $("Previous_Value_$($_.Name)") -NotePropertyValue "$($_.OldValue)" -Force -ErrorAction SilentlyContinue } + } catch { + ##write-warning ($Data.ModifiedProperties | ConvertTo-Json -Depth 10) + } + } + + + $HasLocationData = $false + if (![string]::IsNullOrEmpty($Data.clientip) -and $Data.clientip -notmatch '[X]+') { + # Ignore IP addresses that have been redacted + + $IPRegex = '^(?(?:\d{1,3}(?:\.\d{1,3}){3}|\[[0-9a-fA-F:]+\]|[0-9a-fA-F:]+))(?::\d+)?$' + $Data.clientip = $Data.clientip -replace $IPRegex, '$1' -replace '[\[\]]', '' + + # Check if IP is on trusted IP list + $TrustedIP = Get-CIPPAzDataTableEntity @TrustedIPTable -Filter "((PartitionKey eq '$TenantFilter') or (PartitionKey eq 'AllTenants')) and RowKey eq '$($Data.clientip)' and state eq 'Trusted'" + if ($TrustedIP) { + #write-warning "IP $($Data.clientip) is trusted" + $Trusted = $true + } + if (!$Trusted) { + $CacheLookupStartTime = Get-Date + $Location = Get-AzDataTableEntity @LocationTable -Filter "PartitionKey eq 'ip' and RowKey eq '$($Data.clientIp)'" | Select-Object -ExcludeProperty Tenant + $CacheLookupEndTime = Get-Date + $CacheLookupSeconds = ($CacheLookupEndTime - $CacheLookupStartTime).TotalSeconds + Write-Warning "Cache lookup for IP $($Data.clientip) took $CacheLookupSeconds seconds" + + if ($Location) { + $Country = $Location.CountryOrRegion + $City = $Location.City + $Proxy = $Location.Proxy + $hosting = $Location.Hosting + $ASName = $Location.ASName + } else { + try { + $IPLookupStartTime = Get-Date + $Location = Get-CIPPGeoIPLocation -IP $Data.clientip + $IPLookupEndTime = Get-Date + $IPLookupSeconds = ($IPLookupEndTime - $IPLookupStartTime).TotalSeconds + Write-Warning "IP lookup for $($Data.clientip) took $IPLookupSeconds seconds" + } catch { + #write-warning "Unable to get IP location for $($Data.clientip): $($_.Exception.Message)" + } + $Country = if ($Location.countryCode) { $Location.countryCode } else { 'Unknown' } + $City = if ($Location.city) { $Location.city } else { 'Unknown' } + $Proxy = if ($Location.proxy -ne $null) { $Location.proxy } else { 'Unknown' } + $hosting = if ($Location.hosting -ne $null) { $Location.hosting } else { 'Unknown' } + $ASName = if ($Location.asname) { $Location.asname } else { 'Unknown' } + $IP = $Data.ClientIP + $LocationInfo = @{ + RowKey = [string]$Data.clientip + PartitionKey = 'ip' + Tenant = [string]$TenantFilter + CountryOrRegion = "$Country" + City = "$City" + Proxy = "$Proxy" + Hosting = "$hosting" + ASName = "$ASName" + } + + try { + $null = Add-CIPPAzDataTableEntity @LocationTable -Entity $LocationInfo -Force + } catch { + #write-warning "Failed to add location info for $($Data.clientip) to cache: $($_.Exception.Message)" + + } + } + $Data.CIPPGeoLocation = $Country + $Data.CIPPBadRepIP = $Proxy + $Data.CIPPHostedIP = $hosting + $Data.CIPPIPDetected = $IP + $Data.CIPPLocationInfo = ($Location | ConvertTo-Json -Compress) + $HasLocationData = $true + } + } + $Data.AuditRecord = [string]($RootProperties | ConvertTo-Json -Compress) + $Data | Select-Object *, + @{n = 'HasLocationData'; exp = { $HasLocationData } } -ExcludeProperty ExtendedProperties, DeviceProperties, parameters + } catch { + #write-warning "Audit log: Error processing data: $($_.Exception.Message)`r`n$($_.InvocationInfo.PositionMessage)" + Write-LogMessage -API 'Webhooks' -message 'Error Processing Audit Log Data' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter + } + + Write-Information "Removing row $($AuditRecord.id) from cache" + try { + Write-Information 'Removing processed rows from cache' + $RowEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($AuditRecord.id)'" + Remove-AzDataTableEntity @CacheWebhooksTable -Entity $RowEntity -Force + Write-Information "Removed row $($AuditRecord.id) from cache" + } catch { + Write-Information "Error removing rows from cache: $($_.Exception.Message)" + } finally { + $RecordEndTime = Get-Date + $RecordSeconds = ($RecordEndTime - $RecordStartTime).TotalSeconds + Write-Warning "Task took $RecordSeconds seconds for RowKey $($AuditRecord.id)" + } + } + #write-warning "Processed Data: $(($ProcessedData | Measure-Object).Count) - This should be higher than 0 in many cases, because the where object has not run yet." + #write-warning "Creating filters - $(($ProcessedData.operation | Sort-Object -Unique) -join ',') - $($TenantFilter)" + + try { + $Where = foreach ($Config in $Configuration) { + if ($TenantFilter -in $Config.Excluded.value) { + continue + } + $conditions = $Config.Conditions | ConvertFrom-Json | Where-Object { $Config.Input.value -ne '' } + $actions = $Config.Actions + $conditionStrings = [System.Collections.Generic.List[string]]::new() + $CIPPClause = [System.Collections.Generic.List[string]]::new() + $AddedLocationCondition = $false + foreach ($condition in $conditions) { + if ($condition.Property.label -eq 'CIPPGeoLocation' -and !$AddedLocationCondition) { + $conditionStrings.Add("`$_.HasLocationData -eq `$true") + $CIPPClause.Add('HasLocationData is true') + $ExcludedUsers = $ExcludedUsers | Where-Object { $_.Type -eq 'Location' } + # Build single -notin condition against all excluded user keys + $ExcludedUserKeys = @($ExcludedUsers.RowKey) + if ($ExcludedUserKeys.Count -gt 0) { + $conditionStrings.Add("`$(`$_.CIPPUserKey) -notin @('$($ExcludedUserKeys -join "', '")')") + $CIPPClause.Add("CIPPUserKey not in [$($ExcludedUserKeys -join ', ')]") + } + $AddedLocationCondition = $true + } + $value = if ($condition.Input.value -is [array]) { + $arrayAsString = $condition.Input.value | ForEach-Object { + "'$_'" + } + "@($($arrayAsString -join ', '))" + } else { "'$($condition.Input.value)'" } + + $conditionStrings.Add("`$(`$_.$($condition.Property.label)) -$($condition.Operator.value) $value") + $CIPPClause.Add("$($condition.Property.label) is $($condition.Operator.label) $value") + } + $finalCondition = $conditionStrings -join ' -AND ' + + [PSCustomObject]@{ + clause = $finalCondition + expectedAction = $actions + CIPPClause = $CIPPClause + } + } + } catch { + Write-Warning "Error creating where clause: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + #Write-LogMessage -API 'Webhooks' -message 'Error creating where clause' -LogData (Get-CippException -Exception $_) -sev Error -tenant $TenantFilter + throw $_ + } + + $MatchedRules = [System.Collections.Generic.List[string]]::new() + $DataToProcess = foreach ($clause in $Where) { + try { + $ClauseStartTime = Get-Date + Write-Warning "Webhook: Processing clause: $($clause.clause)" + $ReturnedData = $ProcessedData | Where-Object { Invoke-Expression $clause.clause } + if ($ReturnedData) { + Write-Warning "Webhook: There is matching data: $(($ReturnedData.operation | Select-Object -Unique) -join ', ')" + $ReturnedData = foreach ($item in $ReturnedData) { + $item.CIPPAction = $clause.expectedAction + $item.CIPPClause = $clause.CIPPClause -join ' and ' + $MatchedRules.Add($clause.CIPPClause -join ' and ') + $item + } + } + $ClauseEndTime = Get-Date + $ClauseSeconds = ($ClauseEndTime - $ClauseStartTime).TotalSeconds + Write-Warning "Task took $ClauseSeconds seconds for clause: $($clause.clause)" + $ReturnedData + } catch { + Write-Warning "Error processing clause: $($clause.clause): $($_.Exception.Message)" + } + } + $Results.MatchedRules = @($MatchedRules | Select-Object -Unique) + $Results.MatchedLogs = ($DataToProcess | Measure-Object).Count + $Results.DataToProcess = $DataToProcess + } + + if ($DataToProcess) { + $CippConfigTable = Get-CippTable -tablename Config + $CippConfig = Get-CIPPAzDataTableEntity @CippConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPURL = 'https://{0}' -f $CippConfig.Value + foreach ($AuditLog in $DataToProcess) { + Write-Information "Processing $($AuditLog.operation)" + $Webhook = @{ + Data = $AuditLog + CIPPURL = [string]$CIPPURL + TenantFilter = $TenantFilter + } + try { + Invoke-CippWebhookProcessing @Webhook + } catch { + Write-Warning "Error sending final step of auditlog processing: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + } + } + + try { + Write-Information 'Removing processed rows from cache' + foreach ($Row in $Rows) { + if ($Row.id) { + $RowEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$($Row.id)'" + if ($RowEntity) { + Remove-AzDataTableEntity @CacheWebhooksTable -Entity $RowEntity -Force + Write-Information "Removed row $($Row.id) from cache at final pass." + } + } + } + } catch { + Write-Information "Error removing rows from cache: $($_.Exception.Message)" + } + + } catch { + Write-Warning "An error occurred during the Test-CIPPAuditLogRules execution: $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + return $Results +} diff --git a/Modules/CIPPCore/build.psd1 b/Modules/CIPPCore/build.psd1 new file mode 100644 index 000000000000..793b0a6ba53b --- /dev/null +++ b/Modules/CIPPCore/build.psd1 @@ -0,0 +1,11 @@ +@{ + Path = 'CIPPCore.psd1' + OutputDirectory = '../../Output' + VersionedOutputDirectory = $false + CopyPaths = @( + 'lib' + ) + Encoding = 'UTF8' + Prefix = $null + Suffix = $null +} diff --git a/Modules/CIPPCore/lib/NCrontab.Advanced.dll b/Modules/CIPPCore/lib/NCrontab.Advanced.dll new file mode 100644 index 000000000000..3aff438ecf86 Binary files /dev/null and b/Modules/CIPPCore/lib/NCrontab.Advanced.dll differ diff --git a/Modules/CIPPCore/lib/data/AdditionalPermissions.json b/Modules/CIPPCore/lib/data/AdditionalPermissions.json new file mode 100644 index 000000000000..f7008f12fee8 --- /dev/null +++ b/Modules/CIPPCore/lib/data/AdditionalPermissions.json @@ -0,0 +1,24 @@ +[ + { + "resourceAppId": "00000006-0000-0ff1-ce00-000000000000", + "resourceAccess": [ + { + "id": "M365AdminPortal.IntegratedApps.ReadWrite", + "type": "Scope" + }, + { + "id": "user_impersonation", + "type": "Scope" + } + ] + }, + { + "resourceAppId": "00000003-0000-0ff1-ce00-000000000000", + "resourceAccess": [ + { + "id": "AllProfiles.Manage", + "type": "Scope" + } + ] + } +] \ No newline at end of file diff --git a/Modules/CIPPCore/lib/data/ConversionTable.csv b/Modules/CIPPCore/lib/data/ConversionTable.csv new file mode 100644 index 000000000000..27ee53d2fe35 --- /dev/null +++ b/Modules/CIPPCore/lib/data/ConversionTable.csv @@ -0,0 +1,5826 @@ +Product_Display_Name,String_Id,GUID,Service_Plan_Name,Service_Plan_Id,Service_Plans_Included_Friendly_Names +10-Year Audit Log Retention Add On,10_ALR_ADDON,c2e41e49-e2a2-4c55-832a-cf13ffba1d6a,Auditing_10Year_ Retention_ Add_On,7d16094b-4db8-41ff-a182-372a90a85407,Auditing 10Year Retention Add On +Advanced Communications,ADV_COMMS,e4654015-5daf-4a48-9b37-4f309dddd88b,TEAMS_ADVCOMMS,604ec28a-ae18-4bc6-91b0-11da94504ba9,Microsoft 365 Advanced Communications +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,CDSAICAPACITY,a7c70a41-5e02-4271-93e6-d9b4184d83f5,AI Builder capacity add-on +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_A,5f3b1ded-75c0-4b31-8e6e-9b077eaadfd5,Microsoft Application Protection and Governance (A) +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_D,2e6ffd72-52d1-4541-8f6c-938f9a8d4cdc,Microsoft Application Protection and Governance (D) +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Career Coach for faculty,CAREERCOACH_FACULTY,95de1760-7682-406d-98c9-52ef14e51e2b,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Career Coach for students,CAREERCOACH_STUDENTS,01c8007a-57d2-41e0-a3c3-0b46ead16cc4,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Premium Add-on,Clipchamp_Premium_Add_on,4b2c20e4-939d-4bf4-9dd8-6870240cfe19,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Microsoft Entra RIGHTS +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,ONEDRIVELITE_IW,b4ac11a0-32ff-4e78-982d-e039fa803dec,Office for the web with OneDrive for business +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,MCOBASIC,448898aa-3ae7-478c-b49a-1fac7a8a35cf,Skype Meetings +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,YAMMER_BASIC,6db7aeea-6c4a-475d-bbb0-7338bc73d646,Yammer +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,CDS_FILE_CAPACITY,dd12a3a8-caec-44f8-b4fb-2f1a864b51e3,Common Data Service for Apps File Capacity +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,CDS_DB_CAPACITY,360bcc37-0c11-4264-8eed-9fa7a3297c9b,Common Data Service for Apps Database Capacity +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,CDS_DB_CAPACITY_GOV,1ddffef6-4f69-455e-89c7-d5d72105f915,Common Data Service for Apps Database Capacity for Government +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,CDS_LOG_CAPACITY,dc48f5c5-e87d-43d6-b884-7ac4a59e7ee9,Common Data Service for Apps Log Capacity +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS +Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud +Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,CRMSTORAGE,77866113-0f3e-4e6e-9666-b1e25c6f99b0,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,CRMINSTANCE,eeea837a-c885-4167-b3d5-ddde30cbd85f,Microsoft Dynamics CRM Online Instance +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,CRMTESTINSTANCE,a98b7619-66c7-4885-bdfc-1d9c8c3d279f,Microsoft Dynamics CRM Online Additional Test Instance +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,SOCIAL_ENGAGEMENT_APP_USER,339f4def-5ad8-4430-8d12-da5fd4c769a7,Dynamics 365 AI for Market Insights - Free +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,D365_AssetforSCM,90467813-5b40-40d4-835c-abd48009b1d9,Asset Maintenance Add-in +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Additional Environment Addon,DYN365_BUSCENTRAL_ADD_ENV_ADDON,a58f5506-b382-44d4-bfab-225b2fbf8390,DYN365_BUSCENTRAL_ENVIRONMENT,d397d6c6-9664-4502-b71c-66f39c400ca4,Dynamics 365 Business Central Additional Environment Addon +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,DYN365_BUSCENTRAL_DB_CAPACITY,ae6b27b3-fe31-4e77-ae06-ec5fabbc103a,Dynamics 365 Business Central Database Capacity +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,Dynamics 365 for Business Central Essentials +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,DYN365_BUSCENTRAL_ESSENTIALS_ATTACH,17ca446c-d7a4-4d29-8dec-8e241592164b,Dynamics 365 Business Central Essentials Attach +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,DYN365_FINANCIALS_ACCOUNTANT,170991d7-b98e-41c5-83d4-db2052e1795f,Dynamics 365 Business Central External Accountant +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,PROJECT_MADEIRA_PREVIEW_IW,3f2afeed-6fb5-4bf9-998f-f2912133aead,Dynamics 365 Business Central for IWs +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,DYN365_BUSCENTRAL_PREMIUM,8e9002c0-a1d8-4465-b952-817d2948e6e2,Dynamics 365 Business Central Premium +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,DYN365_FINANCIALS_TEAM_MEMBERS,d9a6391b-8970-4976-bd94-5f205007c8d8,Dynamics 365 for Team Members +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,DYN365_RETAIL_TRIAL,874d6da5-2a67-45c1-8635-96e8b3e300ea,Dynamics 365 for Retail Trial +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_CSI_EMBED_CE,1412cdc1-d593-4ad1-9050-40c30ad0b023,Dynamics 365 Customer Service Insights for CE Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Forms_Pro_CE,97f29a83-1a20-44ff-bf48-5e4ad11f3e51,Microsoft Dynamics 365 Customer Voice for Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Customer Insights BASE +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE,b3c26516-3b8d-492f-a5a3-64d70ad3f8d0,Dynamics 365 Customer Insights Engagement Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,CDS_CUSTOMER_INSIGHTS_TRIAL,94e5cbf6-d843-4ee8-a2ec-8b15eb52019e,Common Data Service for Customer Insights Trial +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE_TRIAL,e2bdea63-235e-44c6-9f5e-5b0e783f07dd,Dynamics 365 Customer Insights Engagement Insights Viral +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_VIRAL,ed8e8769-94c5-4132-a3e7-7543b713d51f,Dynamics 365 Customer Insights Viral Plan +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,Forms_Pro_Customer_Insights,fe581650-cf61-4a09-8814-4bd77eca9cb5,Microsoft Dynamics 365 Customer Voice for Customer Insights +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,D365_CUSTOMER_SERVICE_ENT_ATTACH,61a2665f-1873-488c-9199-c3d0bc213fdf,Dynamics 365 for Customer Service Enterprise Attach +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_MESSAGING_VIRAL_TRIAL,3bf52bdf-5226-4a97-829e-5cca9b3f3392,Dynamics 365 Customer Service Digital Messaging vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_ENTERPRISE_VIRAL_TRIAL,94fb67d3-465f-4d1f-a50a-952da079a564,Dynamics 365 Customer Service Enterprise vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYNB365_CSI_VIRAL_TRIAL,33f1466e-63a6-464c-bf6a-d1787928a56a,Dynamics 365 Customer Service Insights vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_VOICE_VIRAL_TRIAL,3de81e39-4ce1-47f7-a77f-8473d4eb6d7c,Dynamics 365 Customer Service Voice vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Customer Service Insights Trial,DYN365_AI_SERVICE_INSIGHTS,61e6bd70-fbdb-4deb-82ea-912842f39431,DYN365_AI_SERVICE_INSIGHTS,4ade5aa6-5959-4d2c-bf0a-f4c9e2cc00f2,Dynamics 365 AI for Customer Service Trial +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,DYN365_CDS_FORMS_PRO,363430d1-e3f7-43bc-b07b-767b6bb95e4b,Common Data Service +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PRO,17efdd9f-c22c-4ad8-b48e-3b1f3ee1dc9a,Dynamics 365 Customer Voice +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,DYN365_CUSTOMER_SERVICE_PRO,6929f657-b31b-4947-b4ce-5066c3214f54,Dynamics 365 for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,POWERAPPS_CUSTOMER_SERVICE_PRO,c507b04c-a905-4940-ada6-918891e6d3ad,Power Apps for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,FLOW_CUSTOMER_SERVICE_PRO,0368fc9c-3721-437f-8b7d-3d0f888cdefc,Power Automate for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,D365_CUSTOMER_SERVICE_PRO_ATTACH,a9dd2dca-10ae-4da2-aaf0-d3fe8a825110,Dynamics 365 for Customer Service Pro Attach +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,Customer_Voice_Base,296820fe-dce5-40f4-a4f2-e14b8feef383,Dynamics 365 Customer Voice Base Plan +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,Forms_Pro_AddOn,90a816f6-de5f-49fd-963c-df490d73b7b5,Microsoft Dynamics 365 Customer Voice Add-on +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,CUSTOMER_VOICE_ADDON,e6e35e2d-2e7f-4e71-bc6f-2f40ed062f5d,Dynamics Customer Voice Add-On +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,CDS_FORM_PRO_USL,e9830cfd-e65d-49dc-84fb-7d56b9aa2c89,Common Data Service +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,Forms_Pro_USL,3ca0766a-643e-4304-af20-37f02726339b,Microsoft Dynamics 365 Customer Voice USL +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,CRMSTORAGE_GCC,62edd427-6067-4274-93c4-29afdeb30707,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,CRM_ONLINE_PORTAL,1d4e9cb1-708d-449c-9f71-943aa8ed1d6a,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,CRMINSTANCE_GCC,483cc331-f4df-4a3b-b8ca-fe1a247569f6,Microsoft Dynamics CRM Online Instance +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,CDS_FIELD_SERVICE_CONTRACTOR,f4614a66-d632-443a-bc77-afe92987b322,Common Data Service Field service Part Time Contractors +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,DYN365_FS_ENTERPRISE_VIRAL_TRIAL,20d1455b-72b2-4725-8354-a177845ab77d,Dynamics 365 Field Service Enterprise vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,D365_Finance,9f0e1b4e-9b33-4300-b451-b2c662cd4ff7,Microsoft Dynamics 365 for Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,DYN365_ENTERPRISE_CASE_MANAGEMENT,2822a3a1-9b8f-4432-8989-e11669a60dc8,Dynamics 365 for Case Management +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_CDS_RETAIL,93cc200d-a47f-4c56-aec1-83f8b0d0425a,Common Data Service for Dynamics 365 Retail +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_RETAIL,117e3aa0-8d08-4a19-a6a5-90b7a96e2128,Dynamics 365 Commerce +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_ACC_PROTECTION,4c00c16c-0304-4421-b598-555c3e78edcb,Dynamics 365 Fraud Protection - Account Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_LOSS_PREVENTION,ecc62904-fa88-4552-a62c-fe582fb31444,Dynamics 365 Fraud Protection - Loss Prevention +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_PURCH_PROTECTION,d703990f-006e-459b-b8dd-1267c4533a22,Dynamics 365 Fraud Protection - Purchase Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_COMBINED_BASE,d66ee5da-07d5-49d6-a1d8-45662c3f37be,Dataverse for Customer Insights Combined Base +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,DYN365_CUSTOMER_INSIGHTS_JOURNEYS_BASE,1720c3f7-7da3-4a11-8324-92aad283eb68,Dynamics 365 Customer Insights Journeys +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,CDS_CUSTOMER_INSIGHTS_JOURNEYS_ADD-ON,2f2e81a6-15de-4041-9f33-73c06fed3801,Dataverse for Customer Insights Journeys add-on +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,D365_FIELD_SERVICE_ATTACH,55c9148b-d5f0-4101-b5a0-b2727cfc0916,Dynamics 365 for Field Service Attach +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,D365_GUIDES_VIRAL_TRIAL,fe986032-d840-4817-82d4-51fe4fbbe163,Dynamics 365 Guides vTrial +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Forms_Pro_Talent,1c4ae475-5608-43fa-b3f7-d20e07cf24b4,Microsoft Dynamics 365 Customer Voice for Talent +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_SELF_SERVICE_OPS,835b837b-63c1-410e-bf6b-bdef201ad129,Dynamics 365 Human Resource Self Service +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_OPS,8b21a5dc-5485-49ed-a2d4-0e772c830f6d,Dynamics 365 Human Resources +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_Attach,3219525a-4064-45ec-9c35-a33ea6b39a49,Dynamics 365 Human Resources Attach +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_ATTACH_OPS,90d8cb62-e98a-4639-8342-8c7d2c8215ba,Dynamics 365 Human Resources Attach License +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,DYN365_MARKETING_CONTACT_ADDON,18db5075-2c70-408d-a82b-929059d782af,Dynamics 365 for Marketing Additional Contacts Tier 1 +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Non-Prod Application,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,c393e9bd-2335-4b46-8b88-9e2a86a85ec1,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,1599de10-5250-4c95-acf2-491f74edce48,Dynamics 365 Marketing Sandbox Application AddOn +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,Forms_Pro_Marketing,76366ba0-d230-47aa-8087-b6d55dae454f,Microsoft Dynamics 365 Customer Voice for Marketing +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_RETAIL_Activity,f06754ec-6d72-4bf6-991c-4cb5413d9932,Dynamics 365 for Retail Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Attract_Activity,aac5a56b-b02e-4608-8014-b076646d4011,Dynamics 365 for Talent - Attract Experience Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Onboard_Activity,db225597-e9c2-4d96-8ace-5424744c80f8,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Talent_Activity,1f87ee90-5c3a-4cf9-b6fd-e3e8017c26ec,Dynamics 365 for Talent Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Operations_Activity,6bddf93e-d6f4-4991-b9fc-30cfdf07ee7b,Dynamics365 for Operations Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Forms_Pro_SalesEnt_GCC,33850b82-0a37-4ebb-a0b2-ee163facd716,Microsoft Dynamics 365 Customer Voice for Sales Enterprise for GCC +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_SALES_INSIGHTS,fedc185f-0711-4cc0-80ed-0a92da1a8384,Dynamics 365 AI for Sales (Embedded) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,D365_SCM_Attach,b21c777f-c2d5-486e-88f6-fc0a3e474271,Dynamics 365 for Supply Chain Management Attach +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,DYN365_BUSINESS_Marketing,393a0c96-9ba1-4af0-8975-fa2f853a25ac,Dynamics 365 Marketing +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_ENTERPRISE_VIRAL_TRIAL,7f636c80-0961-41b2-94da-9642ccf02de0,Dynamics 365 Sales Enterprise vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_INSIGHTS_VIRAL_TRIAL,456747c0-cf1e-4b0d-940f-703a01b964cc,Dynamics 365 Sales Insights vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,DYN365_SALES_PRO,88d83950-ff78-4e85-aa66-abfc787f8090,Dynamics 365 for Sales Professional +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,POWERAPPS_SALES_PRO,6f9f70ce-138d-49f8-bb8b-2e701b7dde75,Power Apps for Sales Pro +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,PROJECT_ESSENTIALS,f944d685-f762-4371-806d-a1f48e5bea13,Project Online Essentials +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2)Dynamics 365 for Sales Pro Attach +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,DYN365_SALES_PRO_GOV,dd89efa0-5a55-4892-ba30-82e3f8008339,Dynamics 365 for Sales Professional for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,POWERAPPS_SALES_PRO_GOV,12cf31f8-754f-4efe-87a8-167c19e30831,Power Apps for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,FLOW_SALES_PRO_GOV,e62ffe5b-7612-441f-a72d-c11cf456d33a,Power Automate for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW,73f205fc-6b15-47a5-967e-9e64fdf72d0a,Dynamics 365 for Sales Professional Trial +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW_Trial,db39a47e-1f4f-462b-bf5b-2ec471fb7b88,Dynamics 365 for Sales Professional Trial +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,D365_SALES_PRO_ATTACH,065f3c64-0649-4ec7-9f47-ef5cf134c751,Dynamics 365 for Sales Pro Attach +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_DemandPlanning,e8b616eb-1a6d-42b4-84c7-b63870791349,DO NOT USE - Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,Dynamics 365 for Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM_Premium,0363c8e5-c30d-4d7c-a621-7b6cab5e0482,Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,Dynamics 365 for Talent: Onboard +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_for_HCM_Trial,5ed38b64-c3b7-4d9f-b1cd-0de18c9c4331,Dynamics 365 for HCM Trial +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,Dynamics 365 for Team Members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,5a94d0aa-ee95-455a-bb38-326e5f134478,Dynamics 365 for Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,DYN365_RETAIL_DEVICE,ceb28005-d758-4df7-bb97-87a617b93d6c,Dynamics 365 for Retail Device +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,Dynamics_365_for_OperationsDevices,2c9fb43e-915a-4d61-b6ca-058ece89fd66,Dynamics 365 for Operations Devices +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,Dynamics_365_for_Operations_Sandbox_Tier2,d8ba6fb2-c6b1-4f07-b7c8-5f2745e36b54,Dynamics 365 for Operations non-production multi-box instance for standard acceptance testing (Tier 2) +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,Dynamics_365_for_Operations_Sandbox_Tier4,f6b5efb1-1813-426f-96d0-9b4f7438714f,Dynamics 365 for Operations Enterprise Edition - Sandbox Tier 4:Standard Performance Testing +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,D365_SALES_ENT_ATTACH,3ae52229-572e-414f-937c-ff35a87d4f29,Dynamics 365 for Sales Enterprise Attach +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,Dynamics 365 Team Members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,EOP_ENTERPRISE_PREMIUM,75badc48-628e-4446-8460-41344d73abd6,Exchange Enterprise CAL Services (EOP DLP) +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online Archiving for Exchange Online,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE +Exchange Online Archiving for Exchange Server,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER +Exchange Online Essentials (ExO P1 Based),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Exchange Online Kiosk,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK +Exchange Online POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP +Exchange Online Protection,EOP_ENTERPRISE,45a2423b-e884-448d-a831-d9e139c52d2f,EOP_ENTERPRISE,326e2b78-9d27-42c9-8509-46c827743a17,Exchange Online Protection +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +Intune,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,ERP_TRIAL_INSTANCE,e2f705fd-2468-4090-8c58-fad6e6b1e724,Dynamics 365 Operations Trial Environment +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,CRMPLAN2_GCC,3d53f6d9-d6e0-45c1-9575-6acd77692584,Microsoft Dynamics CRM Online Government Basic +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,CRMSTANDARD_GCC,2b8c7c8c-9db5-44a5-a1dd-f4aa5b97b372,Microsoft Dynamics CRM Online Professional for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for enterprise (device),OFFICE_PROPLUS_DEVICE1,ea4c5ec8-50e3-4193-89b9-50da5bd4cdc7,OFFICE_PROPLUS_DEVICE,3c994f28-87d5-4273-b07a-eb6190852599,Microsoft 365 Apps for Enterprise (Device) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Audio Conferencing for faculty,MCOMEETADV_FACULTY,c2cda955-3359-44e5-989f-852ca0cfa02f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 Audio Conferencing_USGOV_GCCHIGH,MCOMEETADV_USGOV_GCCHIGH,4dee1f32-0808-4fd2-a2ed-fdd575e3a45f,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 Audio Conferencing - GCCHigh Tenant (AR)_USGOV_GCCHIGH,MCOACBYOT_AR_GCCHIGH_USGOV_GCCHIGH,170ba00c-38b2-468c-a756-24c05037160a,MCOACBYOT_GCCHigh,c85e4b03-254a-453b-af72-167a53f38530,Microsoft 365 Audio Conferencing - GCCHigh Tenant +Microsoft 365 Audio Conferencing Pay-Per-Minute - EA,MCOMEETACPEA,df9561a4-4969-4e6a-8e73-c601b68ec077,MCOMEETACPEA,bb038288-76ab-49d6-afc1-eaa6c222c65a,Microsoft 365 Audio Conferencing Pay-Per-Minute +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Domestic Calling Plan (120 minutes) - US,MCOPSTN5_US,d13e9d1b-316a-4946-98c6-362c97a4fdfe,PSTN5_US,1346d5e6-15a6-4b88-9693-806ff7296a7a,Microsoft 365 Domestic Calling Plan - US (120 minutes) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SharePoint (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FORMS_PLAN_E5_AR_GCCHIGH,cf1b2895-e3fd-4b33-9594-2ab924104547,Microsoft Forms (Plan E5) for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,POWERAPPS_O365_P3_GCCHIGH,b50a9096-5b07-4ded-a5e4-a492fb94b6ee,Power Apps for Office 365 for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FLOW_O365_P3_GCCHIGH,ee939cf0-7cd1-4262-9f72-9eaa45dbba69,Power Automate for Office 365 for GCCHigh +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for O365 K SKU +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Online Kiosk +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,TEAMS_DESKLESS,a42de799-58ae-4e6a-aa1d-948e7abec726,Microsoft Teams Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,DYN365_CDS_O365_F1_GCC,29007dd3-36c0-4cc2-935d-f5bca2c2c473,Common Data Service - O365 F1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,CDS_O365_F1_GCC,5e05331a-0aec-437e-87db-9ef5934b5771,Common Data Service for Teams_F1 GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,EXCHANGE_S_DESKLESS_GOV,88f4d7ef-a73b-4246-8047-516022144c9f,Exchange Online (Kiosk) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FORMS_GOV_F1,bfd4133a-bbf3-4212-972b-60412137c428,Forms for Government (Plan F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,STREAM_O365_K_GOV,d65648f1-9504-46e4-8611-2658763f28b8,Microsoft Stream for O365 for Government (F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTDESKLESS_GOV,b1aeb897-3a19-46e2-8c27-a609413cf193,SharePoint KioskG +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MCOIMP_GOV,8a9f17f1-5872-44e8-9b11-3caade9dc90f,Skype for Business Online (Plan 1) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ADALLOM_S_STANDALONE_DOD,6ebdddb7-8e55-4af2-952b-69e77262f96c,Microsoft Defender for Cloud Apps for DOD +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AAD_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,RMS_S_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,ADALLOM_S_DISCOVERY +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,DYN365_CDS_O365_F1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE_S_DESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,RMS_S_ENTERPRISE +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MFA_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,INTUNE_A +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,PROJECTWORKMANAGEMENT +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT_SEARCH +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,STREAM_O365_K +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINTDESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,MCOIMP +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,OFFICESUBSCRIPTION_unattended_GOV,18dfd9bd-5214-4184-8123-c9822d81a9bc,Microsoft 365 Apps for enterprise (unattended) for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Sales Copilot Premium & Trial +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Sales Copilot Premium with Power Automate +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving for Exchange Online +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-based classification +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Business Center,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft 365 Chat +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,CDS_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,FLOW_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_Gov,bcc0702e-ba97-48d9-ae04-fa8689c53bba,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Virtual_Agent_Usl_Gov,00b6f978-853b-4041-9de0-a233d18669aa,Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Virtual_Agent_Usl_Gov_High,7ffee552-ebe8-4725-8678-5c1775c05847,Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,FLOW_Virtual_Agent_Base_Gov_High,225e52e5-7bbf-4793-8fb1-4307a7a1ae8e,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Flow_Virtual_Agent_Usl_Gov_High,aaae1744-dc7a-4811-9dd0-2bf926ff9d80,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Power_Virtual_Agent_Usl_GCC_High,3fbe8cdf-c735-44bf-bbfa-646724af4bb4,Power Virtual Agent USL for GCC High +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,DYN365_CDS_CCI_BOTS +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,CCIBOTS_PRIVPREV_VIRAL +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,FLOW_CCI_BOTS +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,MCS_BizApps_Cloud_for_Sustainability_vTrial,c1c902e3-a956-4273-abdb-c92afcd027ef,MCS - BizApps_Cloud for Sustainability_vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft Defender for Endpoint F2,Microsoft_Defender_for_Endpoint_F2,e430a580-c37b-4d16-adba-d881d7cd0364,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P1 for EDU,DEFENDER_ENDPOINT_P1_EDU,bba890d4-7881-4584-8102-0c3fdfb739a7,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ADALLOM_FOR_AATP,61d18b02-6889-479f-8f36-56e6e0fe5792,SecOps Investigation for MDI +Microsoft Defender for Office 365 (Plan 1) Faculty,ATP_ENTERPRISE_FACULTY,26ad4b5c-b686-462e-84b9-d7c22b46837f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) GCC,ATP_ENTERPRISE_GOV,d0d1ca43-b81a-4f51-81e5-a5b1ad7bb005,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 1)_USGOV_GCCHIGH,ATP_ENTERPRISE_USGOV_GCCHIGH ,550f19ba-f323-4a7d-a8d2-8971b0d9ea85,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student,ATP_ENTERPRISE_STUDENT,917fb2b4-f71c-43a1-8edc-75532b554bb5,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student use benefit,ATP_ENTERPRISE_STUDENTS_USE_BENEFIT,a237b6d8-572e-4839-bffd-7786d32a5d0e,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft Defender Vulnerability Management,TVM_Premium_Standalone,1925967e-8013-495f-9644-c99f8b463748,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Defender Vulnerability Management Add-on,TVM_Premium_Add_on,ad7a56e0-6903-4d13-94f3-5ad491e78960,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Internet_Access,8d23cb83-ab07-418f-8517-d7aca77307dc,Microsoft Entra Internet Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Intune Advanced Analytics,Microsoft_Intune_Advanced_Analytics,5e36d0d4-e9e5-4052-aba0-0257465c9b86,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Microsoft Intune Advanced Analytics +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,FLOW_DEV_VIRAL,c7ce3f26-564d-4d3a-878d-d8ab868c85fe,Flow for Developer +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,POWERAPPS_DEV_VIRAL,a2729df7-25f8-4e63-984b-8a8484121554,PowerApps for Developer +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service - VIRAL +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,Flow Free +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL_REAL,d20bfa21-e9ae-43fc-93c2-20783f0840c3,Flow P2 Viral +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,POWERAPPS_P2_VIRAL,d5368ca3-357e-4acb-9c21-8495fb025d1f,PowerApps Trial +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Microsoft Entra ID +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Intune Advanced endpoint analytics +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-EPM,bb73f429-78ef-4ff2-83c8-722b04c3e7d1,Intune Endpoint Privilege Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,INTUNE_P2,d9923fe3-a2de-4d29-a5be-e3e83bb786be,Intune Plan 2 +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-MAMTunnel,a6e407da-7411-4397-8a2e-d9b52780849e,Microsoft Tunnel for Mobile Application Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,POWERAPPS_P2,00527d7f-d5bc-4c2a-8d1e-6c0de2410c81,Power Apps (Plan 2) +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Forms_Pro_Relationship_Sales,507172c0-6001-4f4f-80e7-f350507af3e5,Microsoft Dynamics 365 Customer Voice for Relationship Sales +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,56e3d4ca-2e31-4c3f-8d57-89c1d363503b,Microsoft Relationship Sales solution +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,STREAM_P2,d3a458d0-f10d-48c2-9e44-86f3f684029e,Microsoft Stream Plan 2 +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,STREAM_STORAGE,83bced11-77ce-4071-95bd-240133796768,Microsoft Stream Storage Add-On +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_USL_PLUS,beaf5b5c-d11c-4417-b5cb-cd9f9e6719b0,MCS - BizApps Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_APPS_FOR_MCS_USL_PLUS,c5502fe7-406d-442a-827f-4948b821ba08,Power Apps for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_AUTOMATE_FOR_MCS_USL_PLUS,1c22bb50-96fb-49e5-baa6-195cab19eee2,Power Automate for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Audio Conferencing with dial-out to USA/CAN,Microsoft_Teams_Audio_Conferencing_select_dial_out,1c27243e-fb4d-42b1-ae8c-fe25c9616588,MCOMEETBASIC,9974d6cf-cd24-4ba2-921c-e2aa687da846,Microsoft Teams Audio Conferencing with dial-out to select geographies +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) +Microsoft Teams Calling Plan pay-as-you-go (country zone 1 - US),Microsoft_Teams_Calling_Plan_pay_as_you_go_(country_zone_1_US),9b196e97-5830-4c2e-adc2-1e10ebf5dee5,MCOPSTN_PAYG_1,156a1efe-17cd-4b03-9f17-2eb512298fb3,Microsoft Teams Calling Plan pay-as-you-go - country zone 1 +Microsoft Teams Domestic Calling Plan (240 min),MCOPSTN_6,729dbb8f-8d56-4994-8e33-2f218f549544,MCOPSTN6,346d83bf-6fe6-42ca-b424-b9300d2e21bf,Microsoft 365 Domestic Calling Plan (240 min) +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling Plan for Government +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Teams Essentials,Teams_Ess,fde42873-30b6-436b-b361-21af5a6b84ae,TeamsEss,f4f2f6de-6830-442b-a433-e92249faebe2,Microsoft Teams Essentials +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft Teams Phone Standard,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Faculty,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT +Microsoft Teams Phone Standard for GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Small and Medium Business,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS +Microsoft Teams Phone Standard for Students,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Resource Account,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for Faculty,PHONESYSTEM_VIRTUALUSER_FACULTY,0e142028-345e-45da-8d92-8bfd4093bbb9,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone Standard Resource Account for Government +Microsoft Teams Phone Resource Account_USGOV_GCCHIGH,PHONESYSTEM_VIRTUALUSER_USGOV_GCCHIGH ,e3f0522e-ebb7-4561-9f90-b44516d65b77,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Rooms_Pro,0374d34c-6be4-4dbb-b3f0-26105db0b28a,Teams Rooms Pro +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID Plan 1 +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Threat Experts - Experts on Demand,EXPERTS_ON_DEMAND,9fa2f157-c8e4-4351-a3f2-ffa506da1406,EXPERTS_ON_DEMAND,b83a66d4-f05f-414d-ac0f-ea1c5239c42b,Microsoft Threat Experts - Experts on Demand +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Glint,Viva_Glint_Standalone,3dc7332d-f0fa-40a3-81d3-dd6b84469b78,Viva_Glint,6b270342-093e-4015-8c5c-224561532fbf,Viva Glint +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Microsoft Viva Topics +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_COMMUNITIES_AND_COMMUNICATIONS,43304c6a-1d4e-4e0b-9b06-5b2a2ff58a90,Viva Engage Communities and Communications +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_KNOWLEDGE,c244cc9e-622f-4576-92ea-82e233e44e36,Viva Engage Knowledge +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Defender for Office 365 (Plan 1),ATP_ENTERPRISE,4ef96642-f096-40de-a3e9-d83fb2f90211,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE_S_FOUNDATION_GOV +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,SHAREPOINTSTORAGE_GOV,e5bb877f-6ac9-4461-9e43-ca581543ab16,SHAREPOINTSTORAGE_GOV +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams_P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for O365 E1 SKU +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 Extra File Storage,SHAREPOINTSTORAGE,99049c9c-6011-4908-bf17-15f496e6519d,SHAREPOINTSTORAGE,be5a7ed5-c598-4fcd-a061-5e6724c68a58,Office 365 Extra File Storage +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FORMS_PLAN_E1_AR_GCCHIGH,9c37c053-dfe3-4421-b6d4-bac8b86d42bd,Microsoft Forms (Plan E1) for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,POWERAPPS_O365_P1_GCCHIGH,3913e44e-824e-490c-a182-82785d769b45,Power Apps for Office 365 for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FLOW_O365_P1_GCCHIGH,e923bad8-588e-44d5-acd0-b226daa7b4de,Power Automate for Office 365 for GCCHigh +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT Microsoft Entra RIGHTS +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FORMS_PLAN_K_AR_GCCHIGH,59fb5884-fdec-40bf-aa7f-89e2bae79a7a,Microsoft Forms (Plan F1) for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,POWERAPPS_O365_S1_GCCHIGH,b9f1a92f-d4c7-477b-b64c-e23d7b4e8cf9,Power Apps for Office 365 F3 for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FLOW_O365_S1_GCCHIGH,1db85bca-cd60-4bf5-ae54-641e0778a532,Power Automate for Office 365 F3 for GCCHigh +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,DYN365_CDS_O365_P1_GCC,8eb5e9bc-783f-4425-921a-c65f45dd72c6,Common Data Service - O365 P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,CDS_O365_P1_GCC,959e5dec-6522-4d44-8349-132c27c3795a,Common Data Service for Teams_P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FORMS_GOV_E1,f4cba850-4f34-4fd2-a341-0fddfdce1e8f,Forms for Government (Plan E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,STREAM_O365_E1_GOV,15267263-5986-449d-ac5c-124f3b49b2d6,Microsoft Stream for O365 for Government (E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SharePoint Plan 1G,f9c43823-deb4-46a8-aa65-8b551f0c4f8a,SharePoint Plan 1G +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GCC,7251de8f-ecfb-481e-bcff-4af4f1a4573c,Data integration for Project with Power Automate for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_FOR_PROJECT_GCC_P5,684a2229-5c57-43ab-b69f-f86fe8997358,Common Data Service for Project P5 for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_P2_GOV,06879193-37cc-4976-8991-f8165c994ce7,Power Automate P2 for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_P2_GOV,51729bb5-7564-4927-8df8-9f5b12279cf3,PowerApps Plan 2 for Dynamics 365 for Government +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,CDS_PER_APP_IWTRIAL,94a669d1-84d5-4e54-8462-53b0ae2c8be5,CDS Per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,Flow_Per_APP_IWTRIAL,dd14867e-8d31-4779-a595-304405f5ad39,Flow per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,POWERAPPS_PER_APP_IWTRIAL,35122886-cef5-44a3-ab36-97134eabd9ba,PowerApps per app baseline access +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,CDS_ POWERAPPS_PER_APP_CUSTOM_GCC,ee493f70-a3b3-4204-9511-e3f6083b8df3,CDS Power Apps Per App Custom GCC +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,CDS_PER_APP,9f2f00ad-21ae-4ceb-994b-d8bc7be90999,CDS PowerApps per app plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,POWERAPPS_PER_APP,b4f657ff-d83e-4053-909d-baa2b595ec97,Power Apps per App Plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,POWERAPPS_PER_APP_NEW,14f8dac2-0784-4daa-9cb2-6d670b088d64,Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,CDS_ POWERAPPS_PER_APP_CUSTOM_NEW,c2da6658-f89d-49f2-9508-40431dee115b,CDS Power Apps Per App Custom New +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,CDS_PER_APP_GCC,d7f9c9bc-0a28-4da4-b5f1-731acb27a3e4,CDS PowerApps per app plan for GCC +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,DO NOT USE - AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,POWERAPPS_PER_USER_GCC,8f55b472-f8bf-40a9-be30-e29919d4ddfe,Power Apps per User Plan for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,Flow_PowerApps_PerUser_GCC,8e3eb3bd-bc99-4221-81b8-8b8bc882e128,Power Automate for Power Apps per User Plan for GCC +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,POWERAPPS_P1_GOV,5ce719f1-169f-4021-8a64-7d24dcaec15f,PowerApps Plan 1 for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,CDS_POWERAPPS_PORTALS_LOGIN_GCC,0f7b9a29-7990-44ff-9d05-a76be778f410,Common Data Service Power Apps Portals Login Capacity for GCC +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,POWERAPPS_PORTALS_LOGIN_GCC,bea6aef1-f52d-4cce-ae09-bed96c4b1811,Power Apps Portals Login Capacity Add-On for Government +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,CDS_POWERAPPS_PORTALS_PAGEVIEW,72c30473-7845-460a-9feb-b58f216e8694,CDS PowerApps Portals page view capacity add-on +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,POWERAPPS_PORTALS_PAGEVIEW,1c5a559a-ec06-4f76-be5b-6a315418495f,Power Apps Portals Page View Capacity Add-On +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,CDS_POWERAPPS_PORTALS_PAGEVIEW_GCC,352257a9-db78-4217-a29d-8b8d4705b014,CDS PowerApps Portals page view capacity add-on for GCC +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,POWERAPPS_PORTALS_PAGEVIEW_GCC,483d5646-7724-46ac-ad71-c78b7f099d8d,Power Apps Portals Page View Capacity Add-On for Government +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,CDS_Flow_Business_Process,c84e52ae-1906-4947-ac4d-6fb3e5bf7c2e,Common data service for Flow per business process plan +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,FLOW_BUSINESS_PROCESS,7e017b61-a6e0-4bdc-861a-932846591f6e,Flow per business process plan +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,CDS_Flow_Business_Process_GCC,54b61386-c818-4634-8400-61c9e8f6acd3,Common Data Service for Power Automate per Business Process Plan for GCC +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,FLOW_BUSINESS_PROCESS_GCC,cb83e771-a077-4a73-9201-d955585b29fa,Power Automate per Business Process Plan for Government +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,FLOW_PER_USER_GCC,769b8bee-2779-4c5a-9456-6f4f8629fd41,Power Automate per User Plan for Government +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,CDS_ATTENDED_RPA_GCC,4802707d-47e1-45dc-82c5-b6981f0fb38c,Common Data Service Attended RPA for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,POWER_AUTOMATE_ATTENDED_RPA_GCC,fb613c67-1a58-4645-a8df-21e95a37d433,Power Automate Attended RPA for Government +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,DATAVERSE_FOR_POWER_AUTOMATE_PER_PROCESS,d7c3df99-6f58-40b9-8940-cd3a51679d85,Dataverse for Power Automate Per Process +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,CDS_UNATTENDED_RPA,b475952f-128a-4a44-b82a-0b98a45ca7fb,Common Data Service Unattended RPA +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,POWER_AUTOMATE_UNATTENDED_RPA,0d373a98-a27a-426f-8993-f9a425ae99c5,Power Automate Unattended RPA add-on +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,CDS_UNATTENDED_RPA_GCC,5141c408-df3d-456a-9878-a65119b0a750,Common Data Service Unattended RPA for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,POWER_AUTOMATE_UNATTENDED_RPA_GCC,45e63e9f-6dd9-41fd-bd41-93bfa008c537,Power Automate Unattended RPA for Government +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,Microsoft Power BI Information Services Plan 1 +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,Microsoft Power BI Reporting and Analytics Plan 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,PBI_PREMIUM_P1_ADDON,9da49a6d-707a-48a1-b44a-53dcde5267f8,Power BI Premium P +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,PBI_PREMIUM_P1_ADDON_GCC,30df3dbd-5bf6-4d74-9417-cccc096595e4,Power BI Premium P1 for GCC +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,PBI_PREMIUM_EM2_ADDON,4e29abd1-ba96-44c0-8a72-e24e4fe9956e,Power BI Premium EM2 +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,a64b30ba-f310-4065-b444-2670ef146db0,Power BI Premium EM1 +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,POWER_PAGES_VTRIAL,6817d093-2d30-4249-8bd6-774f01efa78c,Power Pages vTrial for Makers +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,CDS_VIRTUAL_AGENT_BASE,0a0a23fa-fea1-4195-bb89-b4789cb12f7f,Common Data Service for Virtual Agent Base +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,FLOW_VIRTUAL_AGENT_BASE,4b81a949-69a1-4409-ad34-9791a6ec88aa,Power Automate for Virtual Agent +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,VIRTUAL_AGENT_BASE,f6934f16-83d3-4f3b-ad27-c6e9c187b260,Virtual Agent Base +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,CDS_Virtual_Agent_Base_Gov,e4d0b25d-e440-4ee9-aac4-1d5a5db9f3ef,Dataverse for Virtual Agent Base for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,Virtual_Agent_Base_GCC,e425b9f6-1543-45a0-8efb-f8fdaf18cba1,Virtual Agent Base for GCC +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,Common Data Service for CCI Bots +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,Flow for CCI Bots +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Project for Office 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,Common Data Service for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,Power Automate for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,MCOMEETBASIC_GOV,986d454b-9027-4d9f-880b-f1b68f920cc4,Microsoft Teams Audio Conferencing with dial-out to select geographies for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,Project Online for Education,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,RMS_S_ADHOC,7a39d7dd-e456-4e09-842a-0204ee08187b,Rights Management Adhoc +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,D365_IOTFORSCM_ADDITIONAL,a5f38206-2f48-4d83-9957-525f4e75e9c0,IoT Intelligence Add-in Additional Machines +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,D365_IOTFORSCM,83dd9619-c7d5-44da-9250-dc4ee79fff7e,Iot Intelligence Add-in for D365 Supply Chain Management +SharePoint Online (Plan 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +SharePoint Online (Plan 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,CDS_O365_E5_KM,3069d530-e41b-421c-ad59-fb1001a23e11,Common Data Service for SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services,f00bd55e-1633-416e-97c0-03684e42bc42,SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services_SPO_type,fd2e7f90-1010-487e-a11b-d2b1ae9651fc,SharePoint Syntex - SPO type +Skype for Business Online (Plan 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) +Skype for Business Online (Plan 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Skype for Business PSTN Calling Domestic Small,MCOPSTN5,d43177b5-475b-4880-92d4-d54c27b5efbd,Skype for Business PSTN Calling Domestic Small,9a0125a5-c8f8-4526-b231-49e2abe0ebce,Skype for Business PSTN Calling Domestic Small +Skype for Business PSTN Domestic and International Calling,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN +Skype for Business PSTN Domestic Calling,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN +Skype for Business PSTN Domestic Calling (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN +Skype for Business PSTN Usage Calling Plan,MCOPSTNPP,06b48c5f-01d9-4b18-9015-03b52040f51a,MCOPSTN3,6b340437-d6f9-4dc5-8cc2-99163f7f83d6,MCOPSTN3 +Teams Phone Mobile,Operator_Connect_Mobile,b84d58c9-0a0d-46cf-8a4b-d9f23c1674d5,MCOFMC1,cb22fbd7-ed7d-4786-a27a-e4cd617b69c0,Teams Phone Mobile +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MESH_IMMERSIVE,acbca54f-c771-423b-a476-6d7a98cbbcec,Microsoft Mesh +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,QUEUES_APP,ab2d4fb5-f80a-4bf1-a11d-7f1da254041b,Queues app for Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +TELSTRA Calling for O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Viva Learning,VIVA_LEARNING,c9d442fc-21fb-4bd7-89e0-a710d74987f6,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for business Basic +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio web app +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Viva Goals User-led,Viva_Goals_User_led,3a349c99-ffec-43d2-a2e8-6b97fcb71103,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Viva Topics) +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Viva Topics +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,Virtualization Rights for Windows 10,e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,CPC_B_1C_2RAM_64GB,3b98b912-1720-4a1e-9630-c9a41dbb61d8,Windows 365 Business 1 vCPU 2 GB 64 GB +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,CPC_B_2C_4RAM_128GB,1a13832e-cd79-497d-be76-24186f55c8b0,Windows 365 Business 2 vCPU 4 GB 128 GB +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,CPC_B_2C_4RAM_256GB,a0b1c075-51c9-4a42-b34c-308f3993bb7e,Windows 365 Business 2 vCPU 4 GB 256 GB +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,CPC_B_2C_4RAM_64GB,a790cd6e-a153-4461-83c7-e127037830b6,Windows 365 Business 2 vCPU 4 GB 64 GB +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,CPC_SS_2,9d2eed2c-b0c0-4a89-940c-bc303444a41b,"Windows 365 Business 2 vCPU, 8 GB, 128 GB" +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,CPC_B_2C_8RAM_256GB,1a3ef005-2ef6-434b-8be1-faa56c892854,Windows 365 Business 2 vCPU 8 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,CPC_B_4C_16RAM_256GB,30f6e561-8805-41d0-80ce-f82698b72d7d,Windows 365 Business 4 vCPU 16 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,CPC_B_4C_16RAM_512GB,15499661-b229-4a1f-b0f9-bd5832ef7b3e,Windows 365 Business 4 vCPU 16 GB 512 GB +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,CPC_B_8C_32RAM_128GB,648005fc-b330-4bd9-8af6-771f28958ac0,Windows 365 Business 8 vCPU 32 GB 128 GB +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,CPC_B_8C_32RAM_256GB,d7a5113a-0276-4dc2-94f8-ca9f2c5ae078,Windows 365 Business 8 vCPU 32 GB 256 GB +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,CPC_B_8C_32RAM_512GB,4229a0b4-7f34-4835-b068-6dc8d10be57c,Windows 365 Business 8 vCPU 32 GB 512 GB +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,CPC_B_16C_64GB_512GB,cbbedc49-52d5-4fd6-82ac-a5bc51634dc3,"Windows 365 Business 16 vCPU, 64 GB, 512 GB" +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,CPC_B_16C_64GB_1TB,37c961db-2cfd-4e13-b81e-b0059ce10e34,"Windows 365 Business 16 vCPU, 64 GB, 1 TB" +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,CPC_E_1C_2GB_64GB,86d70dbb-d4c6-4662-ba17-3014204cbb28,Windows 365 Enterprise 1 vCPU 2 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,CPC_E_2C_4GB_64GB,23a25099-1b2f-4e07-84bd-b84606109438,Windows 365 Enterprise 2 vCPU 4 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,CPC_E_2C_4GB_256GB,0d143570-9b92-4f57-adb5-e4efcd23b3bb,Windows 365 Enterprise 2 vCPU 4 GB 256 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,CPC_E_2C_8GB_256GB,d3468c8c-3545-4f44-a32f-b465934d2498,Windows 365 Enterprise 2 vCPU 8 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,CPC_E_4C_16GB_128GB,2de9c682-ca3f-4f2b-b360-dfc4775db133,Windows 365 Enterprise 4 vCPU 16 GB 128 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,CPC_E_4C_16GB_512GB,3bba9856-7cf2-4396-904a-00de74fba3a4,Windows 365 Enterprise 4 vCPU 16 GB 512 GB +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,CPC_E_8C_32GB_128GB,2f3cdb12-bcde-4e37-8529-e9e09ec09e23,Windows 365 Enterprise 8 vCPU 32 GB 128 GB +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,CPC_E_8C_32GB_256GB,69dc175c-dcff-4757-8389-d19e76acb45d,Windows 365 Enterprise 8 vCPU 32 GB 256 GB +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,CPC_E_8C_32GB_512GB,0e837228-8250-4047-8a80-d4a34ba11658,Windows 365 Enterprise 8 vCPU 32 GB 512 GB +Windows 365 Shared Use 2 vCPU 4 GB 64 GB,Windows_365_S_2vCPU_4GB_64GB,1f9990ca-45d9-4c8d-8d04-a79241924ce1,CPC_S_2C_4GB_64GB,64981bdb-a5a6-4a22-869f-a9455366d5bc,Windows 365 Shared Use 2 vCPU 4 GB 64 GB +Windows 365 Shared Use 2 vCPU 4 GB 128 GB,Windows_365_S_2vCPU_4GB_128GB,90369797-7141-4e75-8f5e-d13f4b6092c1,CPC_S_2C_4GB_128GB,51855c77-4d2e-4736-be67-6dca605f2b57,Windows 365 Shared Use 2 vCPU 4 GB 128 GB +Windows 365 Shared Use 2 vCPU 4 GB 256 GB,Windows_365_S_2vCPU_4GB_256GB,8fe96593-34d3-49bb-aeee-fb794fed0800,CPC_S_2C_4GB_256GB,aa8fbe7b-695c-4c05-8d45-d1dddf6f7616,Windows 365 Shared Use 2 vCPU 4 GB 256 GB +Windows 365 Shared Use 2 vCPU 8 GB 128 GB,Windows_365_S_2vCPU_8GB_128GB,2d21fc84-b918-491e-ad84-e24d61ccec94,CPC_S_2C_8GB_128GB,057efbfe-a95d-4263-acb0-12b4a31fed8d,Windows 365 Shared Use 2 vCPU 8 GB 128 GB +Windows 365 Shared Use 2 vCPU 8 GB 256 GB,Windows_365_S_2vCPU_8GB_256GB,2eaa4058-403e-4434-9da9-ea693f5d96dc,CPC_S_2C_8GB_256GB,50ef7026-6174-40ba-bff7-f0e4fcddbf65,Windows 365 Shared Use 2 vCPU 8 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 128 GB,Windows_365_S_4vCPU_16GB_128GB,1bf40e76-4065-4530-ac37-f1513f362f50,CPC_S_4C_16GB_128GB,dd3801e2-4aa1-4b16-a44b-243e55497584,Windows 365 Shared Use 4 vCPU 16 GB 128 GB +Windows 365 Shared Use 4 vCPU 16 GB 256 GB,Windows_365_S_4vCPU_16GB_256GB,a9d1e0df-df6f-48df-9386-76a832119cca,CPC_S_4C_16GB_256GB,2d1d344e-d10c-41bb-953b-b3a47521dca0,Windows 365 Shared Use 4 vCPU 16 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 512 GB,Windows_365_S_4vCPU_16GB_512GB,469af4da-121c-4529-8c85-9467bbebaa4b,CPC_S_4C_16GB_512GB,48b82071-99a5-4214-b493-406a637bd68d,Windows 365 Shared Use 4 vCPU 16 GB 512 GB +Windows 365 Shared Use 8 vCPU 32 GB 128 GB,Windows_365_S_8vCPU_32GB_128GB,f319c63a-61a9-42b7-b786-5695bc7edbaf,CPC_S_8C_32GB_128GB,e4dee41f-a5c5-457d-b7d3-c309986fdbb2,Windows 365 Shared Use 8 vCPU 32 GB 128 GB +Windows 365 Shared Use 8 vCPU 32 GB 256 GB,Windows_365_S_8vCPU_32GB_256GB,fb019e88-26a0-4218-bd61-7767d109ac26,CPC_S_8C_32GB_256GB,1e2321a0-f81c-4d43-a0d5-9895125706b8,Windows 365 Shared Use 8 vCPU 32 GB 256 GB +Windows 365 Shared Use 8 vCPU 32 GB 512 GB,Windows_365_S_8vCPU_32GB_512GB,f4dc1de8-8c94-4d37-af8a-1fca6675590a,CPC_S_8C_32GB_512GB,fa0b4021-0f60-4d95-bf68-95036285282a,Windows 365 Shared Use 8 vCPU 32 GB 512 GB +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE +Windows Store for Business EDU Faculty,WSFB_EDU_FACULTY,c7e9d9e6-1981-4bf3-bb50-a5bdfaa06fb2,Windows Store for Business EDU Store_faculty,aaa2cd24-5519-450f-a1a0-160750710ca1,Windows Store for Business EDU Store_faculty +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS,f477b0f0-3bb1-4890-940c-40fcee6ce05f,Microsoft Workplace Analytics +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Workplace Analytics Insights Backend +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Workplace Analytics Insights User +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P1,84c289f0-efcb-486f-8581-07f44fc9efad,Azure Active Directory workload identities P1 +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Azure Active Directory workload identities P2 diff --git a/Modules/CIPPCore/lib/data/OrganizationManagementRoles.json b/Modules/CIPPCore/lib/data/OrganizationManagementRoles.json new file mode 100644 index 000000000000..86b72bf503e3 --- /dev/null +++ b/Modules/CIPPCore/lib/data/OrganizationManagementRoles.json @@ -0,0 +1,51 @@ +[ + "Audit Logs", + "Communication Compliance Admin", + "Communication Compliance Investigation", + "Compliance Admin", + "Data Loss Prevention", + "Distribution Groups", + "E-Mail Address Policies", + "Federated Sharing", + "Information Protection Admin", + "Information Protection Analyst", + "Information Protection Investigator", + "Information Protection Reader", + "Information Rights Management", + "Insider Risk Management Admin", + "Insider Risk Management Investigation", + "Journaling", + "Legal Hold", + "Mail Enabled Public Folders", + "Mail Recipient Creation", + "Mail Recipients", + "Mail Tips", + "Message Tracking", + "Migration", + "Move Mailboxes", + "Org Custom Apps", + "Org Marketplace Apps", + "Organization Client Access", + "Organization Configuration", + "Organization Transport Settings", + "PlacesBuildingManagement", + "PlacesDeskManagement", + "Privacy Management Admin", + "Privacy Management Investigation", + "Public Folders", + "Recipient Policies", + "Remote and Accepted Domains", + "Reset Password", + "Retention Management", + "Role Management", + "Security Admin", + "Security Group Creation and Membership", + "Security Reader", + "TenantPlacesManagement", + "Transport Hygiene", + "Transport Rules", + "User Options", + "View-Only Audit Logs", + "View-Only Configuration", + "View-Only Recipients" +] \ No newline at end of file diff --git a/Modules/CIPPCore/lib/data/PermissionsTranslator.json b/Modules/CIPPCore/lib/data/PermissionsTranslator.json new file mode 100644 index 000000000000..52f29c119433 --- /dev/null +++ b/Modules/CIPPCore/lib/data/PermissionsTranslator.json @@ -0,0 +1,5375 @@ +[ + { + "description": "Allows the app to impersonate the signed-in user to access the Partner Center API.", + "displayName": "Partner Center as User", + "id": "1cebfa2a-fb4d-419e-b5f9-839b4383e05a", + "origin": "Delegated (Microsoft Partner Center)", + "value": "user_impersonation" + }, + { + "description": "Allows Exchange Management as app", + "displayName": "Manage Exchange As Application ", + "id": "dc50a0fb-09a3-484d-be87-e023b12c6440", + "origin": "Application (Office 365 Exchange Online)", + "value": "Exchange.ManageAsApp" + }, + { + "description": "Allows the app to read a basic set of profile properties of other users in your organization without a signed-in user. Includes display name, first and last name, email address, open extensions, and photo.", + "displayName": "Read all users' basic profiles", + "id": "97235f07-e226-4f63-ace3-39588e11d3a1", + "origin": "Application", + "value": "User.ReadBasic.All" + }, + { + "description": "Allows the app to read all\u00a0class assignments without grades for all users without a signed-in user.", + "displayName": "Read all class assignments without grades", + "id": "6e0a958b-b7fc-4348-b7c4-a6ab9fd3dd0e", + "origin": "Application", + "value": "EduAssignments.ReadBasic.All" + }, + { + "description": "Allows the app to create, read, update and delete all\u00a0class assignments without grades for all users without a signed-in user.", + "displayName": "Create, read, update and delete all\u00a0class assignments without grades", + "id": "f431cc63-a2de-48c4-8054-a34bc093af84", + "origin": "Application", + "value": "EduAssignments.ReadWriteBasic.All" + }, + { + "description": "Allows the app to read all\u00a0class assignments with grades for all users without a signed-in user.", + "displayName": "Read all class assignments with grades", + "id": "4c37e1b6-35a1-43bf-926a-6f30f2cdf585", + "origin": "Application", + "value": "EduAssignments.Read.All" + }, + { + "description": "Allows the app to create, read, update and delete all\u00a0class assignments with grades for all users without a signed-in user.", + "displayName": "Create, read, update and delete all\u00a0class assignments with grades", + "id": "0d22204b-6cad-4dd0-8362-3e3f2ae699d9", + "origin": "Application", + "value": "EduAssignments.ReadWrite.All" + }, + { + "description": "Allows\u00a0the\u00a0app\u00a0to\u00a0read\u00a0subject\u00a0rights requests\u00a0without a\u00a0signed-in\u00a0user.", + "displayName": "Read\u00a0all subject\u00a0rights requests", + "id": "ee1460f0-368b-4153-870a-4e1ca7e72c42", + "origin": "Application", + "value": "SubjectRightsRequest.Read.All" + }, + { + "description": "Allows\u00a0the\u00a0app\u00a0to\u00a0read\u00a0and\u00a0write subject\u00a0rights requests\u00a0without a signed in user.", + "displayName": "Read\u00a0and\u00a0write\u00a0all subject\u00a0rights requests", + "id": "8387eaa4-1a3c-41f5-b261-f888138e6041", + "origin": "Application", + "value": "SubjectRightsRequest.ReadWrite.All" + }, + { + "description": "Allows the app to read attack simulation and training data for an organization without a signed-in user.", + "displayName": "Read attack simulation data of an organization", + "id": "93283d0a-6322-4fa8-966b-8c121624760d", + "origin": "Application", + "value": "AttackSimulation.Read.All" + }, + { + "description": "Allows custom authentication extensions associated with the app to receive HTTP requests triggered by an authentication event. The request can include information about a user, client and resource service principals, and other information about the authentication.", + "displayName": "Receive custom authentication extension HTTP requests", + "id": "214e810f-fda8-4fd7-a475-29461495eb00", + "origin": "Application", + "value": "CustomAuthenticationExtension.Receive.Payload" + }, + { + "description": "Allows the app to read and write your organization's directory access review default policy without a signed-in user.", + "displayName": "Read and write your organization's directory access review default policy", + "id": "77c863fd-06c0-47ce-a7eb-49773e89d319", + "origin": "Application", + "value": "Policy.ReadWrite.AccessReview" + }, + { + "description": "Allows the app to create groups, read all group properties and memberships, update group properties and memberships, and delete groups. Also allows the app to read and write conversations. All of these operations can be performed by the app without a signed-in user.", + "displayName": "Read and write all groups", + "id": "62a82d76-70ea-41e2-9197-370581804d09", + "origin": "Application", + "value": "Group.ReadWrite.All" + }, + { + "description": "Allows the app to read group properties and memberships, and read\u00a0conversations for all groups, without a signed-in user.", + "displayName": "Read all groups", + "id": "5b567255-7703-4780-807c-7be8301ae99b", + "origin": "Application", + "value": "Group.Read.All" + }, + { + "description": "Allows the app to read your organization's threat submissions and threat submission policies without a signed-in user. Also allows the app to create new threat submissions without a signed-in user.", + "displayName": "Read and write all of the organization's threat submissions", + "id": "d72bdbf4-a59b-405c-8b04-5995895819ac", + "origin": "Application", + "value": "ThreatSubmission.ReadWrite.All" + }, + { + "description": "Allows an app to read Bookings appointments, businesses, customers, services, and staff without a signed-in user. ", + "displayName": "Read all Bookings related resources.", + "id": "6e98f277-b046-4193-a4f2-6bf6a78cd491", + "origin": "Application", + "value": "Bookings.Read.All" + }, + { + "description": "Allows an app to read and write Bookings appointments and customers, and additionally allows reading businesses, services, and staff without a signed-in user. ", + "displayName": "Read and write all Bookings related resources.", + "id": "9769393e-5a9f-4302-9e3d-7e018ecb64a7", + "origin": "Application", + "value": "BookingsAppointment.ReadWrite.All" + }, + { + "description": "Allows the application to read any data from Records Management, such as configuration, labels, and policies without the signed in user.", + "displayName": "Read Records Management configuration,\u00a0labels and policies", + "id": "ac3a2b8e-03a3-4da9-9ce0-cbe28bf1accd", + "origin": "Application", + "value": "RecordsManagement.Read.All" + }, + { + "description": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies without the signed in user.", + "displayName": "Read and write Records Management configuration, labels and policies", + "id": "eb158f57-df43-4751-8b21-b8932adb3d34", + "origin": "Application", + "value": "RecordsManagement.ReadWrite.All" + }, + { + "description": "Allows the app to read details of delegated admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups without a signed-in user.", + "displayName": "Read Delegated Admin relationships with customers", + "id": "f6e9e124-4586-492f-adc0-c6f96e4823fd", + "origin": "Application", + "value": "DelegatedAdminRelationship.Read.All" + }, + { + "description": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers and role assignments to security groups for active Delegated Admin relationships without a signed-in user.", + "displayName": "Manage Delegated Admin relationships with customers", + "id": "cc13eba4-8cd8-44c6-b4d4-f93237adce58", + "origin": "Application", + "value": "DelegatedAdminRelationship.ReadWrite.All" + }, + { + "description": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, without a signed-in user. This includes reading and managing Cloud PC role definitions and memberships.", + "displayName": "Read and write all Cloud PC RBAC settings", + "id": "274d0592-d1b6-44bd-af1d-26d259bcb43a", + "origin": "Application", + "value": "RoleManagement.ReadWrite.CloudPC" + }, + { + "description": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, without a signed-in user.", + "displayName": "Read Cloud PC RBAC settings", + "id": "031a549a-bb80-49b6-8032-2068448c6a3c", + "origin": "Application", + "value": "RoleManagement.Read.CloudPC" + }, + { + "description": "Allows the app to read custom security attribute assignments for all principals in the tenant without a signed in user.", + "displayName": "Read custom security attribute assignments", + "id": "3b37c5a4-1226-493d-bec3-5d6c6b866f3f", + "origin": "Application", + "value": "CustomSecAttributeAssignment.Read.All" + }, + { + "description": "Allows the app to read custom security attribute definitions for the tenant without a signed in user.", + "displayName": "Read custom security attribute definitions", + "id": "b185aa14-d8d2-42c1-a685-0f5596613624", + "origin": "Application", + "value": "CustomSecAttributeDefinition.Read.All" + }, + { + "description": "Allows the app to read all external connections without a signed-in user.", + "displayName": "Read all external connections", + "id": "1914711b-a1cb-4793-b019-c2ce0ed21b8c", + "origin": "Application", + "value": "ExternalConnection.Read.All" + }, + { + "description": "Allows the app to read and write all external connections without a signed-in user.", + "displayName": "Read and write all external connections", + "id": "34c37bc0-2b40-4d5e-85e1-2365cd256d79", + "origin": "Application", + "value": "ExternalConnection.ReadWrite.All" + }, + { + "description": "Allows the app to read all external items without a signed-in user.", + "displayName": "Read all external items", + "id": "7a7cffad-37d2-4f48-afa4-c6ab129adcc2", + "origin": "Application", + "value": "ExternalItem.Read.All" + }, + { + "description": "Allows the app to read and write your organization's cross tenant access policies without a signed-in user.", + "displayName": "Read and write your organization's cross tenant access policies", + "id": "338163d7-f101-4c92-94ba-ca46fe52447c", + "origin": "Application", + "value": "Policy.ReadWrite.CrossTenantAccess" + }, + { + "description": "Allows the app to read and write custom security attribute definitions for the tenant without a signed in user.", + "displayName": "Read and write custom security attribute definitions", + "id": "12338004-21f4-4896-bf5e-b75dfaf1016d", + "origin": "Application", + "value": "CustomSecAttributeDefinition.ReadWrite.All" + }, + { + "description": "Allows the app to read and write custom security attribute assignments for all principals in the tenant without a signed in user.", + "displayName": "Read and write custom security attribute assignments", + "id": "de89b5e4-5b8f-48eb-8925-29c2b33bd8bd", + "origin": "Application", + "value": "CustomSecAttributeAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to read and write to all security incidents, without a signed-in user.", + "displayName": "Read and write to all security incidents", + "id": "34bf0e97-1971-4929-b999-9e2442d941d7", + "origin": "Application", + "value": "SecurityIncident.ReadWrite.All" + }, + { + "description": "Allows the app to read all security incidents, without a signed-in user.", + "displayName": "Read all security incidents", + "id": "45cc0394-e837-488b-a098-1918f48d186c", + "origin": "Application", + "value": "SecurityIncident.Read.All" + }, + { + "description": "Allows the app to read and write to all security alerts, without a signed-in user.", + "displayName": "Read and write to all security alerts", + "id": "ed4fca05-be46-441f-9803-1873825f8fdb", + "origin": "Application", + "value": "SecurityAlert.ReadWrite.All" + }, + { + "description": "Allows the app to read all security alerts, without a signed-in user.", + "displayName": "Read all security alerts", + "id": "472e4a4d-bb4a-4026-98d1-0b0d74cb74a5", + "origin": "Application", + "value": "SecurityAlert.Read.All" + }, + { + "description": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects without a signed-in user.", + "displayName": "Read and write all eDiscovery objects", + "id": "b2620db1-3bf7-4c5b-9cb9-576d29eac736", + "origin": "Application", + "value": "eDiscovery.ReadWrite.All" + }, + { + "description": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects without a signed-in user.", + "displayName": "Read all eDiscovery objects", + "id": "50180013-6191-4d1e-a373-e590ff4e66af", + "origin": "Application", + "value": "eDiscovery.Read.All" + }, + { + "description": "Allows the app to run hunting queries, without a signed-in user.", + "displayName": "Run hunting queries", + "id": "dd98c7f5-2d42-42d3-a0e4-633161547251", + "origin": "Application", + "value": "ThreatHunting.Read.All" + }, + { + "description": "Allow the app to read the management data for Teams devices, without a signed-in user.", + "displayName": "Read Teams devices", + "id": "0591bafd-7c1c-4c30-a2a5-2b9aacb1dfe8", + "origin": "Application", + "value": "TeamworkDevice.Read.All" + }, + { + "description": "Allow the app to read and write the management data for Teams devices, without a signed-in user.", + "displayName": "Read and write Teams devices", + "id": "79c02f5b-bd4f-4713-bc2c-a8a4a66e127b", + "origin": "Application", + "value": "TeamworkDevice.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risky service principal for your organization, without a signed-in user.", + "displayName": "Read and write all identity risky service principal information", + "id": "cb8d6980-6bcb-4507-afec-ed6de3a2d798", + "origin": "Application", + "value": "IdentityRiskyServicePrincipal.ReadWrite.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for any user, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all users", + "id": "3c42dec6-49e8-4a0a-b469-36cff0d9da93", + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForUser.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all teams", + "id": "91c32b81-0ef0-453f-a5c7-4ce2e562f449", + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForTeam.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all chats", + "id": "9f62e4a2-a2d6-4350-b28b-d244728c4f86", + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForChat.All" + }, + { + "description": "Allows the app to read all risky service principal information for your organization, without a signed-in user.", + "displayName": "Read all identity risky service principal information", + "id": "607c7344-0eed-41e5-823a-9695ebe1b7b0", + "origin": "Application", + "value": "IdentityRiskyServicePrincipal.Read.All" + }, + { + "description": "Allows the app to read and write search configurations, without a signed-in user.", + "displayName": "Read and write your organization's search configuration", + "id": "0e778b85-fefa-466d-9eec-750569d92122", + "origin": "Application", + "value": "SearchConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read search configurations, without a signed-in user.", + "displayName": "Read your organization's search configuration", + "id": "ada977a5-b8b1-493b-9a91-66c206d76ecf", + "origin": "Application", + "value": "SearchConfiguration.Read.All" + }, + { + "description": "Allows the app to read online meeting artifacts in your organization, without a signed-in user.", + "displayName": "Read online meeting artifacts", + "id": "df01ed3b-eb61-4eca-9965-6b3d789751b2", + "origin": "Application", + "value": "OnlineMeetingArtifact.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete apps in the app catalogs without a signed-in user.", + "displayName": "Read and write to all app catalogs", + "id": "dc149144-f292-421e-b185-5953f2e98d7f", + "origin": "Application", + "value": "AppCatalog.ReadWrite.All" + }, + { + "description": "Allows the app to read apps in the app catalogs without a signed-in user.", + "displayName": "Read all app catalogs", + "id": "e12dae10-5a57-4817-b79d-dfbec5348930", + "origin": "Application", + "value": "AppCatalog.Read.All" + }, + { + "description": "Allows the app to manage workforce integrations to synchronize data from Microsoft Teams Shifts, without a signed-in user.", + "displayName": "Read and write workforce integrations", + "id": "202bf709-e8e6-478e-bcfd-5d63c50b68e3", + "origin": "Application", + "value": "WorkforceIntegration.ReadWrite.All" + }, + { + "description": "Allows the app to read all presence information and write activity and availability of all users in the directory without a signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, time zone and location.", + "displayName": "Read and write presence information for all users", + "id": "83cded22-8297-4ff6-a7fa-e97e9545a259", + "origin": "Application", + "value": "Presence.ReadWrite.All" + }, + { + "description": "Allows the app to read and write tags in Teams without a signed-in user.", + "displayName": "Read and write tags in Teams", + "id": "a3371ca5-911d-46d6-901c-42c8c7a937d8", + "origin": "Application", + "value": "TeamworkTag.ReadWrite.All" + }, + { + "description": "Allows the app to read\u00a0tags in Teams\u00a0without a signed-in user.", + "displayName": "Read tags in Teams", + "id": "b74fd6c4-4bde-488e-9695-eeb100e4907f", + "origin": "Application", + "value": "TeamworkTag.Read.All" + }, + { + "description": "Allows the app to read and write all Windows update deployment settings for the organization without a signed-in user.", + "displayName": "Read and write all Windows update deployment settings", + "id": "7dd1be58-6e76-4401-bf8d-31d1e8180d5b", + "origin": "Application", + "value": "WindowsUpdates.ReadWrite.All" + }, + { + "description": "Allows the app to read and write external connections without a signed-in user. The app can only read and write external connections that it is authorized to, or it can create new external connections. ", + "displayName": "Read and write external connections", + "id": "f431331c-49a6-499f-be1c-62af19c34a9d", + "origin": "Application", + "value": "ExternalConnection.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read and write external items without a signed-in user. The app can only read external items of the connection that it is authorized to.", + "displayName": "Read and write external items", + "id": "8116ae0f-55c2-452d-9944-d18420f5b2c8", + "origin": "Application", + "value": "ExternalItem.ReadWrite.OwnedBy" + }, + { + "description": "Allow the application to access a subset of site collections without a signed in user.\u00a0\u00a0The specific site collections and the permissions granted will be configured in SharePoint Online.", + "displayName": "Access selected site collections", + "id": "883ea226-0bf2-4a8f-9f9d-92c9162a727d", + "origin": "Application", + "value": "Sites.Selected" + }, + { + "description": "Allows the app to read documents and list items in all site collections without a signed in user.", + "displayName": "Read items in all site collections ", + "id": "332a536c-c7ef-4017-ab91-336970924f0d", + "origin": "Application", + "value": "Sites.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete documents and list items in all site collections without a signed in user.", + "displayName": "Read and write items in all site collections", + "id": "9492366f-7969-46a4-8d15-ed1a20078fff", + "origin": "Application", + "value": "Sites.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the properties of Cloud PCs, without a signed-in user.", + "displayName": "Read and write Cloud PCs", + "id": "3b4349e1-8cf5-45a3-95b7-69d1751d3e6a", + "origin": "Application", + "value": "CloudPC.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties of Cloud PCs, without a signed-in user.", + "displayName": "Read Cloud PCs", + "id": "a9e09520-8ed4-4cde-838e-4fdea192c227", + "origin": "Application", + "value": "CloudPC.Read.All" + }, + { + "description": "Allows the app to update service principal endpoints", + "displayName": "Read and update service principal endpoints", + "id": "89c8469c-83ad-45f7-8ff2-6e3d4285709e", + "origin": "Application", + "value": "ServicePrincipalEndpoint.ReadWrite.All" + }, + { + "description": "Allows the app to read service principal endpoints", + "displayName": "Read service principal endpoints", + "id": "5256681e-b7f6-40c0-8447-2d9db68797a0", + "origin": "Application", + "value": "ServicePrincipalEndpoint.Read.All" + }, + { + "description": "Allows the app to create new notifications in users' teamwork activity feeds without a signed in user. These notifications may not be discoverable or be held or governed by compliance policies.", + "displayName": "Send a teamwork activity to any user", + "id": "a267235f-af13-44dc-8385-c1dc93023186", + "origin": "Application", + "value": "TeamsActivity.Send" + }, + { + "description": "Allows the app to read terms of use acceptance statuses, without a signed in user.", + "displayName": "Read all terms of use acceptance statuses", + "id": "d8e4ec18-f6c0-4620-8122-c8b1f2bf400e", + "origin": "Application", + "value": "AgreementAcceptance.Read.All" + }, + { + "description": "Allows the app to read and write terms of use agreements, without a signed in user.", + "displayName": "Read and write all terms of use agreements", + "id": "c9090d00-6101-42f0-a729-c41074260d47", + "origin": "Application", + "value": "Agreement.ReadWrite.All" + }, + { + "description": "Allows the app to read terms of use agreements, without a signed in user.", + "displayName": "Read all terms of use agreements", + "id": "2f3e6f8c-093b-4c57-a58b-ba5ce494a169", + "origin": "Application", + "value": "Agreement.Read.All" + }, + { + "description": "Allows the app to read app consent requests and approvals, and deny or approve those requests without a signed-in user.", + "displayName": "Read and write all consent requests", + "id": "9f1b81a7-0223-4428-bfa4-0bcb5535f27d", + "origin": "Application", + "value": "ConsentRequest.ReadWrite.All" + }, + { + "description": "Allows the app to read and write your organization's consent requests policy without a signed-in user.", + "displayName": "Read and write your organization's consent request policy", + "id": "999f8c63-0a38-4f1b-91fd-ed1947bdd1a9", + "origin": "Application", + "value": "Policy.ReadWrite.ConsentRequest" + }, + { + "description": "Allows the app to read consent requests and approvals without a signed-in user.", + "displayName": "Read all consent requests", + "id": "1260ad83-98fb-4785-abbb-d6cc1806fd41", + "origin": "Application", + "value": "ConsentRequest.Read.All" + }, + { + "description": "Allows the app to read basic mail properties in all mailboxes without a signed-in user. Includes all properties except body, previewBody, attachments and any extended properties.", + "displayName": "Read basic mail in all mailboxes", + "id": "693c5e45-0940-467d-9b8a-1022fb9d42ef", + "origin": "Application", + "value": "Mail.ReadBasic.All" + }, + { + "description": "Allows the app to read basic mail properties in all mailboxes without a signed-in user. Includes all properties except body, previewBody, attachments and any extended properties.", + "displayName": "Read basic mail in all mailboxes", + "id": "6be147d2-ea4f-4b5a-a3fa-3eab6f3c140a", + "origin": "Application", + "value": "Mail.ReadBasic" + }, + { + "description": "Allows the app to read and write feature rollout policies without a signed-in user. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "displayName": "Read and write feature rollout policies", + "id": "2044e4f1-e56c-435b-925c-44cd8f6ba89a", + "origin": "Application", + "value": "Policy.ReadWrite.FeatureRollout" + }, + { + "description": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, without a signed-in user. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "displayName": "Read and write all directory RBAC settings", + "id": "9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8", + "origin": "Application", + "value": "RoleManagement.ReadWrite.Directory" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, without a signed-in user. This includes reading directory role templates, directory roles and memberships.", + "displayName": "Read all directory RBAC settings", + "id": "483bed4a-2ad3-4361-a73b-c83ccdbdc53c", + "origin": "Application", + "value": "RoleManagement.Read.Directory" + }, + { + "description": "Allows the app to read and write the organization and related resources, without a signed-in user.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read and write organization information", + "id": "292d869f-3427-49a8-9dab-8c70152b74e9", + "origin": "Application", + "value": "Organization.ReadWrite.All" + }, + { + "description": "Allows the app to read the organization and related resources, without a signed-in user.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read organization information", + "id": "498476ce-e0fe-48b0-b801-37ba7e2685c6", + "origin": "Application", + "value": "Organization.Read.All" + }, + { + "description": "Allows the app to read company places (conference rooms and room lists) for calendar events and other applications, without a signed-in user.", + "displayName": "Read all company places", + "id": "913b9306-0ce1-42b8-9137-6a7df690a760", + "origin": "Application", + "value": "Place.Read.All" + }, + { + "description": "Allows the app to read the memberships of hidden groups and administrative units without a signed-in user.", + "displayName": "Read all hidden memberships", + "id": "658aa5d8-239f-45c4-aa12-864f4fc7e490", + "origin": "Application", + "value": "Member.Read.Hidden" + }, + { + "description": "Allow the app to read or write items in all external datasets that the app is authorized to access", + "displayName": "Read and write items in external datasets", + "id": "38c3d6ee-69ee-422f-b954-e17819665354", + "origin": "Application", + "value": "ExternalItem.ReadWrite.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings in the organization for group and app memberships, without a signed-in user.", + "displayName": "Manage access reviews for group and app memberships", + "id": "18228521-a591-40f1-b215-5fad4488c117", + "origin": "Application", + "value": "AccessReview.ReadWrite.Membership" + }, + { + "description": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups, without a signed-in user.", + "displayName": "Read Microsoft Intune device configuration and policies", + "id": "dc377aa6-52d8-4e23-b271-2a7ae04cedf3", + "origin": "Application", + "value": "DeviceManagementConfiguration.Read.All" + }, + { + "description": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read Microsoft Intune apps", + "id": "7a6ee1e7-141e-4cec-ae74-d9db155731ff", + "origin": "Application", + "value": "DeviceManagementApps.Read.All" + }, + { + "description": "Allows the app to read the properties of devices managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read Microsoft Intune devices", + "id": "2f51be20-0bb4-4fed-bf7b-db946066c75e", + "origin": "Application", + "value": "DeviceManagementManagedDevices.Read.All" + }, + { + "description": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user.", + "displayName": "Read Microsoft Intune RBAC settings", + "id": "58ca0d9a-1575-47e1-a3cb-007ef2e4583b", + "origin": "Application", + "value": "DeviceManagementRBAC.Read.All" + }, + { + "description": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user.", + "displayName": "Read Microsoft Intune configuration", + "id": "06a5fe6d-c49d-46a7-b082-56b1b14103c7", + "origin": "Application", + "value": "DeviceManagementServiceConfig.Read.All" + }, + { + "description": "Allows the app to create, view, update and delete on-premises published resources, on-premises agents and agent groups, as part of a hybrid identity configuration, without a signed in user.", + "displayName": "Manage on-premises published resources", + "id": "0b57845e-aa49-4e6f-8109-ce654fffa618", + "origin": "Application", + "value": "OnPremisesPublishingProfiles.ReadWrite.All" + }, + { + "description": "Allows the app to read and write trust framework key set properties without a signed-in user.", + "displayName": "Read and write trust framework key sets", + "id": "4a771c9a-1cf2-4609-b88e-3d3e02d539cd", + "origin": "Application", + "value": "TrustFrameworkKeySet.ReadWrite.All" + }, + { + "description": "Allows the app to read trust framework key set properties without a signed-in user.", + "displayName": "Read trust framework key sets", + "id": "fff194f1-7dce-4428-8301-1badb5518201", + "origin": "Application", + "value": "TrustFrameworkKeySet.Read.All" + }, + { + "description": "Allows the app to read and write your organization's trust framework policies without a signed in user.", + "displayName": "Read and write your organization's trust framework policies", + "id": "79a677f7-b79d-40d0-a36a-3e6f8688dd7a", + "origin": "Application", + "value": "Policy.ReadWrite.TrustFramework" + }, + { + "description": "Allows the app to read all your organization's policies without a signed in user.", + "displayName": "Read your organization's policies", + "id": "246dd0d5-5bd0-4def-940b-0421030a5b68", + "origin": "Application", + "value": "Policy.Read.All" + }, + { + "description": "Allows the app to read and write your organization\u2019s identity (authentication) providers\u2019 properties without a signed in user.", + "displayName": "Read and write identity providers", + "id": "90db2b9a-d928-4d33-a4dd-8442ae3d41e4", + "origin": "Application", + "value": "IdentityProvider.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization\u2019s identity (authentication) providers\u2019 properties without a signed in user.", + "displayName": "Read identity providers", + "id": "e321f0bb-e7f7-481e-bb28-e3b0b32d4bd0", + "origin": "Application", + "value": "IdentityProvider.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership without a signed-in user.", + "displayName": "Read and write all administrative units", + "id": "5eb59dd3-1da2-4329-8733-9dabdc435916", + "origin": "Application", + "value": "AdministrativeUnit.ReadWrite.All" + }, + { + "description": "Allows the app to read administrative units and administrative unit membership without a signed-in user.", + "displayName": "Read all administrative units", + "id": "134fd756-38ce-4afd-ba33-e9623dbe66c2", + "origin": "Application", + "value": "AdministrativeUnit.Read.All" + }, + { + "description": "Allows an app to read published sensitivity labels and label policy settings for the entire organization or a specific user, without a signed in user.", + "displayName": "Read all published labels and label policies for an organization.", + "id": "19da66cb-0fb0-4390-b071-ebc76a349482", + "origin": "Application", + "value": "InformationProtectionPolicy.Read.All" + }, + { + "description": "Allows the app to read all the OneNote notebooks in your organization, without a signed-in user.", + "displayName": "Read all OneNote notebooks", + "id": "3aeca27b-ee3a-4c2b-8ded-80376e2134a4", + "origin": "Application", + "value": "Notes.Read.All" + }, + { + "description": "Allows the app to invite guest users to the organization, without a signed-in user.", + "displayName": "Invite guest users to the organization", + "id": "09850681-111b-4a89-9bed-3f2cae46d706", + "origin": "Application", + "value": "User.Invite.All" + }, + { + "description": "Allows the app to read, create, update and delete all files in all site collections without a signed in user. ", + "displayName": "Read and write files in all site collections", + "id": "75359482-378d-4052-8f01-80520e7db3cd", + "origin": "Application", + "value": "Files.ReadWrite.All" + }, + { + "description": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), without a signed-in user. \u00a0It cannot update any threat indicators it does not own.", + "displayName": "Manage threat indicators this app creates or owns", + "id": "21792b6c-c986-4ffc-85de-df9da54b52fa", + "origin": "Application", + "value": "ThreatIndicators.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read or update security actions, without a signed-in user.", + "displayName": "Read and update your organization's security actions", + "id": "f2bf083f-0179-402a-bedb-b2784de8a49b", + "origin": "Application", + "value": "SecurityActions.ReadWrite.All" + }, + { + "description": "Allows the app to read security actions, without a signed-in user.", + "displayName": "Read your organization's security actions", + "id": "5e0edab9-c148-49d0-b423-ac253e121825", + "origin": "Application", + "value": "SecurityActions.Read.All" + }, + { + "description": "Allows the app to read your organization\u2019s security events without a signed-in user. Also allows the app to update editable properties in security events.", + "displayName": "Read and update your organization\u2019s security events", + "id": "d903a879-88e0-4c09-b0c9-82f6a1333f84", + "origin": "Application", + "value": "SecurityEvents.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization\u2019s security events without a signed-in user.", + "displayName": "Read your organization\u2019s security events", + "id": "bf394140-e372-4bf9-a898-299cfc7564e5", + "origin": "Application", + "value": "SecurityEvents.Read.All" + }, + { + "description": "Allows an app to read and write all chat messages in Microsoft Teams, without a signed-in user.", + "displayName": "Read and write all chat messages", + "id": "294ce7c9-31ba-490a-ad7d-97a7d075e4ed", + "origin": "Application", + "value": "Chat.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risk detection information for your organization without a signed-in user. Update operations include confirming risk event detections.\u00a0", + "displayName": "Read and write all risk detection information", + "id": "db06fb33-1953-4b7b-a2ac-f1e2c854f7ae", + "origin": "Application", + "value": "IdentityRiskEvent.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risky user information for your organization without a signed-in user. \u00a0Update operations include dismissing risky users.", + "displayName": "Read and write all risky user information", + "id": "656f6061-f9fe-4807-9708-6a2e0934df76", + "origin": "Application", + "value": "IdentityRiskyUser.ReadWrite.All" + }, + { + "description": "Allows the app to read all files in all site collections without a signed in user.", + "displayName": "Read files in all site collections", + "id": "01d4889c-1287-42c6-ac1f-5d1e02578ef6", + "origin": "Application", + "value": "Files.Read.All" + }, + { + "description": "Allows the app to read the identity risk event information for your organization without a signed in user.", + "displayName": "Read all identity risk event information", + "id": "6e472fd1-ad78-48da-a0f0-97ab2c6b769e", + "origin": "Application", + "value": "IdentityRiskEvent.Read.All" + }, + { + "description": "Allows the app to read a limited subset of properties from both the structure of schools and classes in the organization's roster and education-specific information about all users. Includes name, status, role, email address and photo.", + "displayName": "Read a limited subset of the organization's roster", + "id": "0d412a8c-a06c-439f-b3ec-8abcf54d2f96", + "origin": "Application", + "value": "EduRoster.ReadBasic.All" + }, + { + "description": "Allows the app to read the structure of schools and classes in the organization's roster and education-specific information about all users to be read.", + "displayName": "Read the organization's roster", + "id": "e0ac9e1b-cb65-4fc5-87c5-1a8bc181f648", + "origin": "Application", + "value": "EduRoster.Read.All" + }, + { + "description": "Allows the app to read and write the structure of schools and classes in the organization's roster and education-specific information about all users to be read and written.", + "displayName": "Read and write the organization's roster", + "id": "d1808e82-ce13-47af-ae0d-f9b254e6d58a", + "origin": "Application", + "value": "EduRoster.ReadWrite.All" + }, + { + "description": "Read the state and settings of all Microsoft education apps.", + "displayName": "Read Education app settings", + "id": "7c9db06a-ec2d-4e7b-a592-5a1e30992566", + "origin": "Application", + "value": "EduAdministration.Read.All" + }, + { + "description": "Manage the state and settings of all Microsoft education apps.", + "displayName": "Manage education app settings", + "id": "9bc431c3-b8bc-4a8d-a219-40f10f92eff6", + "origin": "Application", + "value": "EduAdministration.ReadWrite.All" + }, + { + "description": "Allows the app to read the identity risky user information for your organization without a signed in user.", + "displayName": "Read all identity risky user information", + "id": "dc5007c0-2d7d-4c42-879c-2dab87571379", + "origin": "Application", + "value": "IdentityRiskyUser.Read.All" + }, + { + "description": "Allows the app to read and update user profiles without a signed in user.", + "displayName": "Read and write all users' full profiles", + "id": "741f803b-c850-494e-b5df-cde7c675a1ca", + "origin": "Application", + "value": "User.ReadWrite.All" + }, + { + "description": "Allows the app to read user profiles without a signed in user.", + "displayName": "Read all users' full profiles", + "id": "df021288-bdef-4463-88db-98f22de89214", + "origin": "Application", + "value": "User.Read.All" + }, + { + "description": "Allows the app to read and query your audit log activities, without a signed-in user.", + "displayName": "Read all audit log data", + "id": "b0afded3-3588-46d8-8b3d-9842eff778da", + "origin": "Application", + "value": "AuditLog.Read.All" + }, + { + "description": "Allows the app to create other applications, and fully manage those applications (read, update, update application secrets and delete), without a signed-in user. \u00a0It cannot update any apps that it is not an owner of.", + "displayName": "Manage apps that this app creates or owns", + "id": "18a4783c-866b-4cc7-a460-3d5e5662c884", + "origin": "Application", + "value": "Application.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "displayName": "Export user's data", + "id": "405a51b5-8d8d-430b-9842-8be4b0e9f324", + "origin": "Application", + "value": "User.Export.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on programs and program controls in the organization, without a signed-in user.", + "displayName": "Manage all programs", + "id": "60a901ed-09f7-4aa5-a16e-7dd3d6f9de36", + "origin": "Application", + "value": "ProgramControl.ReadWrite.All" + }, + { + "description": "Allows the app to read programs and program controls in the organization, without a signed-in user.", + "displayName": "Read all programs", + "id": "eedb7fdd-7539-4345-a38b-4839e4a84cbd", + "origin": "Application", + "value": "ProgramControl.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings in the organization, without a signed-in user.", + "displayName": "Manage all access reviews", + "id": "ef5f7d5c-338f-44b0-86c3-351f46c8bb5f", + "origin": "Application", + "value": "AccessReview.ReadWrite.All" + }, + { + "description": "Allows the app to read access reviews, reviewers, decisions and settings in the organization, without a signed-in user.", + "displayName": "Read all access reviews", + "id": "d07a8cc0-3d51-4b77-b3b0-32704d1f69fa", + "origin": "Application", + "value": "AccessReview.Read.All" + }, + { + "description": "Allows an app to read all service usage reports without a signed-in user. Services that provide usage reports include Office 365 and Azure Active Directory.", + "displayName": "Read all usage reports", + "id": "230c1aed-a721-4c5d-9cb4-a90514e508ef", + "origin": "Application", + "value": "Reports.Read.All" + }, + { + "description": "Allows the app to read any user's scored list of relevant people, without a signed-in user. The list can include local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read all users' relevant people lists", + "id": "b528084d-ad10-4598-8b93-929746b4d7d6", + "origin": "Application", + "value": "People.Read.All" + }, + { + "description": "Allows the app to update Microsoft Teams 1-to-1 or group chat messages by patching a set of Data Loss Prevention (DLP) policy violation properties to handle the output of DLP processing.", + "displayName": "Flag chat messages for violating policy", + "id": "7e847308-e030-4183-9899-5235d7270f58", + "origin": "Application", + "value": "Chat.UpdatePolicyViolation.All" + }, + { + "description": "Allows the app to read all 1-to-1 or group chat messages in Microsoft Teams.", + "displayName": "Read all chat messages", + "id": "6b7d71aa-70aa-4810-a8d9-5d9fb2830017", + "origin": "Application", + "value": "Chat.Read.All" + }, + { + "description": "Allows the app to read all channel messages in Microsoft Teams", + "displayName": "Read all channel messages", + "id": "7b2449af-6ccd-4f4d-9f78-e550c193f0d1", + "origin": "Application", + "value": "ChannelMessage.Read.All" + }, + { + "description": "Allows the app to update Microsoft Teams channel messages by patching a set of Data Loss Prevention (DLP) policy violation properties to handle the output of DLP processing.", + "displayName": "Flag channel messages for violating policy", + "id": "4d02b0cc-d90b-441f-8d82-4fb55c34d6bb", + "origin": "Application", + "value": "ChannelMessage.UpdatePolicyViolation.All" + }, + { + "description": "Allows the app to create, read, update and delete applications and service principals without a signed-in user. Does not allow management of consent grants.", + "displayName": "Read and write all applications", + "id": "1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9", + "origin": "Application", + "value": "Application.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail.", + "displayName": "Read and write all user mailbox settings", + "id": "6931bccd-447a-43d1-b442-00a195474933", + "origin": "Application", + "value": "MailboxSettings.ReadWrite" + }, + { + "description": "Allows the app to read and write all domain properties without a signed in user. \u00a0Also allows the app to add, \u00a0verify and remove domains.", + "displayName": "Read and write domains", + "id": "7e05723c-0bb0-42da-be95-ae9f08a6e53c", + "origin": "Application", + "value": "Domain.ReadWrite.All" + }, + { + "description": "Allows the app to read user's mailbox settings without a signed-in user. Does not include permission to send mail.", + "displayName": "Read all user mailbox settings", + "id": "40f97065-369a-49f4-947c-6a255697ae91", + "origin": "Application", + "value": "MailboxSettings.Read" + }, + { + "description": "Allows the app to read mail in all mailboxes without a signed-in user.", + "displayName": "Read mail in all mailboxes", + "id": "810c84a8-4a9e-49e6-bf7d-12d183f40d01", + "origin": "Application", + "value": "Mail.Read" + }, + { + "description": "Allows the app to create, read, update, and delete mail in all mailboxes without a signed-in user. Does not include permission to send mail.", + "displayName": "Read and write mail in all mailboxes", + "id": "e2a3a72e-5f79-4c64-b1b1-878b674786c9", + "origin": "Application", + "value": "Mail.ReadWrite" + }, + { + "description": "Allows the app to send mail as any user without a signed-in user.", + "displayName": "Send mail as any user", + "id": "b633e1c5-b582-4048-a93e-9f11b44c7e96", + "origin": "Application", + "value": "Mail.Send" + }, + { + "description": "Allows the app to read all contacts in all mailboxes without a signed-in user.", + "displayName": "Read contacts in all mailboxes", + "id": "089fe4d0-434a-44c5-8827-41ba8a0b17f5", + "origin": "Application", + "value": "Contacts.Read" + }, + { + "description": "Allows the app to create, read, update, and delete all contacts in all mailboxes without a signed-in user.", + "displayName": "Read and write contacts in all mailboxes", + "id": "6918b873-d17a-4dc1-b314-35f528134491", + "origin": "Application", + "value": "Contacts.ReadWrite" + }, + { + "description": "Allows the app to read data in your organization's directory, such as users, groups and apps, without a signed-in user.", + "displayName": "Read directory data", + "id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61", + "origin": "Application", + "value": "Directory.Read.All" + }, + { + "description": "Allows the app to read and write data in your organization's directory, such as users, and groups, without a signed-in user. Does not allow user or group deletion.", + "displayName": "Read and write directory data", + "id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", + "origin": "Application", + "value": "Directory.ReadWrite.All" + }, + { + "description": "Allows the app to read and write all device properties without a signed in user. Does not allow device creation, device deletion or update of device alternative security identifiers.", + "displayName": "Read and write devices", + "id": "1138cb37-bd11-4084-a2b7-9f71582aeddb", + "origin": "Application", + "value": "Device.ReadWrite.All" + }, + { + "description": "Allows the app to read events of all calendars without a signed-in user.", + "displayName": "Read calendars in all mailboxes", + "id": "798ee544-9d2d-430c-a058-570e29e34338", + "origin": "Application", + "value": "Calendars.Read" + }, + { + "description": "Allows the app to create, read, update, and delete events of all calendars without a signed-in user.", + "displayName": "Read and write calendars in all mailboxes", + "id": "ef54d2bf-783f-4e0f-bca1-3210c0444d99", + "origin": "Application (Office 365 Exchange Online)", + "value": "Calendars.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail.", + "displayName": "Read and write all user mailbox settings", + "id": "f9156939-25cd-4ba8-abfe-7fabcf003749", + "origin": "Application (Office 365 Exchange Online)", + "value": "MailboxSettings.ReadWrite" + }, + { + "description": "Allows the app to read your organization's user flows, without a signed-in user.", + "displayName": "Read all identity user flows", + "id": "1b0c317f-dd31-4305-9932-259a8b6e8099", + "origin": "Application", + "value": "IdentityUserFlow.Read.All" + }, + { + "description": "Allows the app to read or write your organization's user flows, without a signed-in user.", + "displayName": "Read and write all identity user flows", + "id": "65319a09-a2be-469d-8782-f6b07debf789", + "origin": "Application", + "value": "IdentityUserFlow.ReadWrite.All" + }, + { + "description": "Allows the app to read and create online meetings as an application in your organization.", + "displayName": "Read and create online meetings", + "id": "b8bb2037-6e08-44ac-a4ea-4674e010e2a4", + "origin": "Application", + "value": "OnlineMeetings.ReadWrite.All" + }, + { + "description": "Allows the app to read online meeting details in your organization, without a signed-in user.", + "displayName": "Read online meeting details", + "id": "c1684f21-1984-47fa-9d61-2dc8c296bb70", + "origin": "Application", + "value": "OnlineMeetings.Read.All" + }, + { + "description": "Allows the app to get direct access to media streams in a call, without a signed-in user.", + "displayName": "Access media streams in a call as an app", + "id": "a7a681dc-756e-4909-b988-f160edc6655f", + "origin": "Application", + "value": "Calls.AccessMedia.All" + }, + { + "description": "Allows the app to anonymously join group calls and scheduled meetings in your organization, without a signed-in user. \u00a0The app will be joined as a guest to meetings in your organization.", + "displayName": "Join group calls and meetings as a guest", + "id": "fd7ccf6b-3d28-418b-9701-cd10f5cd2fd4", + "origin": "Application", + "value": "Calls.JoinGroupCallAsGuest.All" + }, + { + "description": "Allows the app to join group calls and scheduled meetings in your organization, without a signed-in user. \u00a0The app will be joined with the privileges of a directory user to meetings in your organization.", + "displayName": "Join group calls and meetings as an app", + "id": "f6b49018-60ab-4f81-83bd-22caeabfed2d", + "origin": "Application", + "value": "Calls.JoinGroupCall.All" + }, + { + "description": "Allows the app to place outbound calls to multiple users and add participants to meetings in your organization, without a signed-in user.", + "displayName": "Initiate outgoing group calls from the app", + "id": "4c277553-8a09-487b-8023-29ee378d8324", + "origin": "Application", + "value": "Calls.InitiateGroupCall.All" + }, + { + "description": "Allows the app to place outbound calls to a single user and transfer calls to users in your organization\u2019s directory, without a signed-in user.", + "displayName": "Initiate outgoing 1 to 1 calls from the app", + "id": "284383ee-7f6e-4e40-a2a8-e85dcb029101", + "origin": "Application", + "value": "Calls.Initiate.All" + }, + { + "description": "Allows the app to read all organizational contacts without a signed-in user. These contacts are managed by the organization and are different from a user's personal contacts.", + "displayName": "Read organizational contacts", + "id": "e1a88a34-94c4-4418-be12-c87b00e26bea", + "origin": "Application", + "value": "OrgContact.Read.All" + }, + { + "description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read and write Microsoft Intune apps", + "id": "78145de6-330d-4800-a6ce-494ff2d33d07", + "origin": "Application", + "value": "DeviceManagementApps.ReadWrite.All" + }, + { + "description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups, without a signed-in user.", + "displayName": "Read and write Microsoft Intune device configuration and policies", + "id": "9241abd9-d0e6-425a-bd4f-47ba86e767a4", + "origin": "Application", + "value": "DeviceManagementConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune, without a signed-in user.", + "displayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", + "origin": "Application", + "value": "DeviceManagementManagedDevices.PrivilegedOperations.All" + }, + { + "description": "Allows the app to read and write the properties of devices managed by Microsoft Intune, without a signed-in user. Does not allow high impact operations such as remote wipe and password reset on the device\u2019s owner", + "displayName": "Read and write Microsoft Intune devices", + "id": "243333ab-4d21-40cb-a475-36241daa0842", + "origin": "Application", + "value": "DeviceManagementManagedDevices.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user.", + "displayName": "Read and write Microsoft Intune RBAC settings", + "id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", + "origin": "Application", + "value": "DeviceManagementRBAC.ReadWrite.All" + }, + { + "description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user.", + "displayName": "Read and write Microsoft Intune configuration", + "id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", + "origin": "Application", + "value": "DeviceManagementServiceConfig.ReadWrite.All" + }, + { + "description": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, without a signed-in user.", + "displayName": "Manage app permission grants and app role assignments", + "id": "06b708a9-e830-4db3-a914-8e69da51d44f", + "origin": "Application", + "value": "AppRoleAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), without a signed-in user.", + "displayName": "Manage all delegated permission grants", + "id": "8e8e4742-1d95-4f68-9d56-6ee75648c72a", + "origin": "Application", + "value": "DelegatedPermissionGrant.ReadWrite.All" + }, + { + "description": "Allows the app to read all users' teamwork activity feed, without a signed-in user.", + "displayName": "Read all users' teamwork activity feed", + "id": "70dec828-f620-4914-aa83-a29117306807", + "origin": "Application", + "value": "TeamsActivity.Read.All" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure AD roles", + "id": "4cdc2547-9148-4295-8d11-be0db1391d6b", + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureAD" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure AD groups", + "id": "01e37dc9-c035-40bd-b438-b2879c4870a6", + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureADGroup" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation of user privileges to audit Azure resources in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure resources", + "id": "5df6fe86-1be0-44eb-b916-7bd443a71236", + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureResources" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure AD roles", + "id": "854d9ab1-6657-4ec8-be45-823027bcd009", + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureAD" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure AD groups", + "id": "2f6817f8-7b12-4f0f-bc18-eeaf60705a9e", + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureADGroup" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure resources", + "id": "6f9d5abc-2db6-400b-a267-7de22a40fb87", + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureResources" + }, + { + "description": "Allows the app to read all the indicators for your organization, without a signed-in user.", + "displayName": "Read all threat indicators", + "id": "197ee4e9-b993-4066-898f-d6aecc55125b", + "origin": "Application", + "value": "ThreatIndicators.Read.All" + }, + { + "description": "Allows the app to send, read, update and delete user\u2019s notifications, without a signed-in user.", + "displayName": "Deliver and manage all user's notifications", + "id": "4e774092-a092-48d1-90bd-baad67c7eb47", + "origin": "Application", + "value": "UserNotification.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read all applications and service principals without a signed-in user.", + "displayName": "Read all applications", + "id": "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30", + "origin": "Application", + "value": "Application.Read.All" + }, + { + "description": "Allows the app to read memberships and basic group properties for all groups without a signed-in user.", + "displayName": "Read all group memberships", + "id": "98830695-27a2-44f7-8c18-0c3ebc9698f6", + "origin": "Application", + "value": "GroupMember.Read.All" + }, + { + "description": "Allows the app to list groups, read basic properties, read and update the membership of the groups this app has access to without a signed-in user. Group properties and owners cannot be updated and groups cannot be deleted.", + "displayName": "Read and write all group memberships", + "id": "dbaae8cf-10b5-4b86-a4a1-f871c94c6695", + "origin": "Application", + "value": "GroupMember.ReadWrite.All" + }, + { + "description": "Allows the app to create groups without a signed-in user.", + "displayName": "Create groups", + "id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", + "origin": "Application", + "value": "Group.Create" + }, + { + "description": "Allows an app to read your organization's threat assessment requests, without a signed-in user.", + "displayName": "Read threat assessment requests", + "id": "f8f035bb-2cce-47fb-8bf5-7baf3ecbee48", + "origin": "Application", + "value": "ThreatAssessment.Read.All" + }, + { + "description": "Allows the app to read all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user.", + "displayName": "Read all schedule items", + "id": "7b2ebf90-d836-437f-b90d-7b62722c4456", + "origin": "Application", + "value": "Schedule.Read.All" + }, + { + "description": "Allows the app to manage all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user.", + "displayName": "Read and write all schedule items", + "id": "b7760610-0545-4e8a-9ec3-cce9e63db01c", + "origin": "Application", + "value": "Schedule.ReadWrite.All" + }, + { + "description": "Allows the app to read call records for all calls and online meetings without a signed-in user.", + "displayName": "Read all call records", + "id": "45bbb07e-7321-4fd7-a8f6-3ff27e6a81c8", + "origin": "Application", + "value": "CallRecords.Read.All" + }, + { + "description": "Allows the app to read and write your organization's conditional access policies, without a signed-in user.", + "displayName": "Read and write your organization's conditional access policies", + "id": "01c0a623-fc9b-48e9-b794-0756f8e8f067", + "origin": "Application", + "value": "Policy.ReadWrite.ConditionalAccess" + }, + { + "description": "Allows the application to read and write authentication methods of all users in your organization, without a signed-in user. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods", + "displayName": "Read and write all users' authentication methods ", + "id": "50483e42-d915-4231-9639-7fdb7fd190e5", + "origin": "Application", + "value": "UserAuthenticationMethod.ReadWrite.All" + }, + { + "description": " Allows the app to read authentication methods of all users in your organization, without a signed-in user. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": " Read all users' authentication methods", + "id": "38d9df27-64da-44fd-b7c5-a6fbac20248f", + "origin": "Application", + "value": "UserAuthenticationMethod.Read.All" + }, + { + "description": "Allows the app to create tabs in any team in Microsoft Teams, without a signed-in user. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "displayName": "Create tabs in Microsoft Teams.", + "id": "49981c42-fd7b-4530-be03-e77b21aed25e", + "origin": "Application", + "value": "TeamsTab.Create" + }, + { + "description": "Read the names and settings of tabs inside any team in Microsoft Teams, without a signed-in user. This does not give access to the content inside the tabs. ", + "displayName": "Read tabs in Microsoft Teams.", + "id": "46890524-499a-4bb2-ad64-1476b4f3e1cf", + "origin": "Application", + "value": "TeamsTab.Read.All" + }, + { + "description": "Read and write tabs in any team in Microsoft Teams, without a signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read and write tabs in Microsoft Teams.", + "id": "a96d855f-016b-47d7-b51c-1218a98d791c", + "origin": "Application", + "value": "TeamsTab.ReadWrite.All" + }, + { + "description": "Allows the app to read all domain properties without a signed-in user.", + "displayName": "Read domains", + "id": "dbb9058a-0e50-45d7-ae91-66909b5d4664", + "origin": "Application", + "value": "Domain.Read.All" + }, + { + "description": "Allows the app to read and write your organization's application configuration policies, without a signed-in user. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "displayName": "Read and write your organization's application configuration policies", + "id": "be74164b-cff1-491c-8741-e671cb536e13", + "origin": "Application", + "value": "Policy.ReadWrite.ApplicationConfiguration" + }, + { + "description": "Allows the app to read your organization's devices' configuration information without a signed-in user.", + "displayName": "Read all devices", + "id": "7438b122-aefc-4978-80ed-43db9fcc7715", + "origin": "Application", + "value": "Device.Read.All" + }, + { + "description": "Allows the app to read, update and delete identities that are associated with a user's account, without a signed in user. This controls the identities users can sign-in with.", + "displayName": "Manage all users' identities", + "id": "c529cfca-c91b-489c-af2b-d92990b66ce6", + "origin": "Application", + "value": "User.ManageIdentities.All" + }, + { + "description": "Allows the app to read all users' shift schedule preferences without a signed-in user.", + "displayName": "Read all user shift preferences", + "id": "de023814-96df-4f53-9376-1e2891ef5a18", + "origin": "Application", + "value": "UserShiftPreferences.Read.All" + }, + { + "description": "Allows the app to manage all users' shift schedule preferences without a signed-in user.", + "displayName": "Read and write all user shift preferences", + "id": "d1eec298-80f3-49b0-9efb-d90e224798ac", + "origin": "Application", + "value": "UserShiftPreferences.ReadWrite.All" + }, + { + "description": "Allows the app to read all the OneNote notebooks in your organization, without a signed-in user.", + "displayName": "Read and write all OneNote notebooks", + "id": "0c458cef-11f3-48c2-a568-c66751c238c0", + "origin": "Application", + "value": "Notes.ReadWrite.All" + }, + { + "description": "Allows the app to have full control of all site collections without a signed in user.", + "displayName": "Have full control of all site collections", + "id": "a82116e5-55eb-4c41-a434-62fe8a61c773", + "origin": "Application", + "value": "Sites.FullControl.All" + }, + { + "description": "Allows the app to create or delete document libraries and lists in all site collections without a signed in user.", + "displayName": "Create, edit, and delete items and lists in all site collections", + "id": "0c0bf378-bf22-4481-8f81-9e89a9b4960a", + "origin": "Application", + "value": "Sites.Manage.All" + }, + { + "description": "Allows the app to read access packages and related entitlement management resources without a signed-in user.", + "displayName": "Read all entitlement management resources", + "id": "c74fd47d-ed3c-45c3-9a9e-b8676de685d2", + "origin": "Application", + "value": "EntitlementManagement.Read.All" + }, + { + "description": "Allows the app to read and write access packages and related entitlement management resources without a signed-in user.", + "displayName": "Read and write all entitlement management resources", + "id": "9acd699f-1e81-4958-b001-93b1d2506e19", + "origin": "Application", + "value": "EntitlementManagement.ReadWrite.All" + }, + { + "description": "Create channels in any team, without a signed-in user.", + "displayName": "Create channels", + "id": "f3a65bd4-b703-46df-8f7e-0174fea562aa", + "origin": "Application", + "value": "Channel.Create" + }, + { + "description": "Delete channels in any team, without a signed-in user.", + "displayName": "Delete channels", + "id": "6a118a39-1227-45d4-af0c-ea7b40d210bc", + "origin": "Application", + "value": "Channel.Delete.All" + }, + { + "description": "Read all channel names, channel descriptions, and channel settings, without a signed-in user.", + "displayName": "Read the names, descriptions, and settings of all channels", + "id": "c97b873f-f59f-49aa-8a0e-52b32d762124", + "origin": "Application", + "value": "ChannelSettings.Read.All" + }, + { + "description": "Read and write the names, descriptions, and settings of all channels, without a signed-in user.", + "displayName": "Read and write the names, descriptions, and settings of all channels", + "id": "243cded2-bd16-4fd6-a953-ff8177894c3d", + "origin": "Application", + "value": "ChannelSettings.ReadWrite.All" + }, + { + "description": "Get a list of all teams, without a signed-in user.", + "displayName": "Get a list of all teams", + "id": "2280dda6-0bfd-44ee-a2f4-cb867cfc4c1e", + "origin": "Application", + "value": "Team.ReadBasic.All" + }, + { + "description": "Read all channel names and channel descriptions, without a signed-in user.", + "displayName": "Read the names and descriptions of all channels", + "id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", + "origin": "Application", + "value": "Channel.ReadBasic.All" + }, + { + "description": "Read and change all teams' settings, without a signed-in user.", + "displayName": "Read and change all teams' settings", + "id": "bdd80a03-d9bc-451d-b7c4-ce7c63fe3c8f", + "origin": "Application", + "value": "TeamSettings.ReadWrite.All" + }, + { + "description": "Read all team's settings, without a signed-in user.", + "displayName": "Read all teams' settings", + "id": "242607bd-1d2c-432c-82eb-bdb27baa23ab", + "origin": "Application", + "value": "TeamSettings.Read.All" + }, + { + "description": "Read the members of all teams, without a signed-in user.", + "displayName": "Read the members of all teams", + "id": "660b7406-55f1-41ca-a0ed-0b035e182f3e", + "origin": "Application", + "value": "TeamMember.Read.All" + }, + { + "description": "Add and remove members from all teams, without a signed-in user. Also allows changing a team member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from all teams", + "id": "0121dc95-1b9f-4aed-8bac-58c5ac466691", + "origin": "Application", + "value": "TeamMember.ReadWrite.All" + }, + { + "description": "Read the members of all channels, without a signed-in user.", + "displayName": "Read the members of all channels", + "id": "3b55498e-47ec-484f-8136-9013221c06a9", + "origin": "Application", + "value": "ChannelMember.Read.All" + }, + { + "description": "Add and remove members from all channels, without a signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from all channels", + "id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", + "origin": "Application", + "value": "ChannelMember.ReadWrite.All" + }, + { + "description": "Allows the app to read and write all authentication flow policies for the tenant, without a signed-in user.", + "displayName": "Read and write authentication flow policies", + "id": "25f85f3c-f66c-4205-8cd5-de92dd7f0cec", + "origin": "Application", + "value": "Policy.ReadWrite.AuthenticationFlows" + }, + { + "description": "Allows the app to read and write all authentication method policies for the tenant, without a signed-in user.\u00a0", + "displayName": "Read and write all authentication method policies\u00a0", + "id": "29c18626-4985-4dcd-85c0-193eef327366", + "origin": "Application", + "value": "Policy.ReadWrite.AuthenticationMethod" + }, + { + "description": "Allows the app to read and write your organization's authorization policy without a signed in user. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "displayName": "Read and write your organization's authorization policy", + "id": "fb221be6-99f2-473f-bd32-01c6a0e9ca3b", + "origin": "Application", + "value": "Policy.ReadWrite.Authorization" + }, + { + "description": "Read names and members of all one-to-one and group chats in Microsoft Teams, without a signed-in user.", + "displayName": "Read names and members of all chat threads", + "id": "b2e060da-3baf-4687-9611-f4ebc0f0cbde", + "origin": "Application", + "value": "Chat.ReadBasic.All" + }, + { + "description": "Allows the app to read policies related to consent and permission grants for applications, without a signed-in user.", + "displayName": "Read consent and permission grant policies", + "id": "9e640839-a198-48fb-8b9a-013fd6f6cbcd", + "origin": "Application", + "value": "Policy.Read.PermissionGrant" + }, + { + "description": "Allows the app to manage policies related to consent and permission grants for applications, without a signed-in user.", + "displayName": "Manage consent and permission grant policies", + "id": "a402ca1c-2696-4531-972d-6e5ee4aa11ea", + "origin": "Application", + "value": "Policy.ReadWrite.PermissionGrant" + }, + { + "description": "Allows the application to read printers without a signed-in user.\u00a0", + "displayName": "Read printers", + "id": "9709bb33-4549-49d4-8ed9-a8f65e45bb0f", + "origin": "Application", + "value": "Printer.Read.All" + }, + { + "description": "Allows the application to read and update printers without a signed-in user. Does not allow creating (registering) or deleting (unregistering) printers.", + "displayName": "Read and update printers", + "id": "f5b3f73d-6247-44df-a74c-866173fddab0", + "origin": "Application", + "value": "Printer.ReadWrite.All" + }, + { + "description": "Allows the application to perform advanced operations like redirecting a print job to another printer without a signed-in user. Also allows the application to read and update the metadata of print jobs.", + "displayName": "Perform advanced operations on print jobs", + "id": "58a52f47-9e36-4b17-9ebe-ce4ef7f3e6c8", + "origin": "Application", + "value": "PrintJob.Manage.All" + }, + { + "description": "Allows the application to read the metadata and document content of print jobs without a signed-in user.\u00a0", + "displayName": "Read print jobs", + "id": "ac6f956c-edea-44e4-bd06-64b1b4b9aec9", + "origin": "Application", + "value": "PrintJob.Read.All" + }, + { + "description": "Allows the application to read the metadata of print jobs without a signed-in user.\u00a0Does not allow access to print job document content.", + "displayName": "Read basic information for print jobs", + "id": "fbf67eee-e074-4ef7-b965-ab5ce1c1f689", + "origin": "Application", + "value": "PrintJob.ReadBasic.All" + }, + { + "description": "Allows the application to read and update the metadata and document content of print jobs without a signed-in user.", + "displayName": "Read and write print jobs", + "id": "5114b07b-2898-4de7-a541-53b0004e2e13", + "origin": "Application", + "value": "PrintJob.ReadWrite.All" + }, + { + "description": "Allows the application to read and update the metadata of print jobs without a signed-in user.\u00a0Does not allow access to print job document content.", + "displayName": "Read and write basic information for print jobs", + "id": "57878358-37f4-4d3a-8c20-4816e0d457b1", + "origin": "Application", + "value": "PrintJob.ReadWriteBasic.All" + }, + { + "description": "Allows the application to read and update print task definitions without a signed-in user.\u00a0", + "displayName": "Read, write and update print task definitions", + "id": "456b71a7-0ee0-4588-9842-c123fcc8f664", + "origin": "Application", + "value": "PrintTaskDefinition.ReadWrite.All" + }, + { + "description": "Allows the app to create chat and channel messages, without a signed in user. The app specifies which user appears as the sender, and can backdate the message to appear as if it was sent long ago. The messages can be sent to any chat or channel in the organization.", + "displayName": "Create chat and channel messages with anyone's identity and with any timestamp", + "id": "dfb0dd15-61de-45b2-be36-d6a69fba3c79", + "origin": "Application", + "value": "Teamwork.Migrate.All" + }, + { + "description": "Allows the app to read the Teams apps that are installed in any chat, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all chats", + "id": "cc7e7635-2586-41d6-adaa-a8d3bcad5ee5", + "origin": "Application", + "value": "TeamsAppInstallation.ReadForChat.All" + }, + { + "description": "Allows the app to read the Teams apps that are installed in any team, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all teams", + "id": "1f615aea-6bf9-4b05-84bd-46388e138537", + "origin": "Application", + "value": "TeamsAppInstallation.ReadForTeam.All" + }, + { + "description": "Allows the app to read the Teams apps that are installed for any user, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all users", + "id": "9ce09611-f4f7-4abd-a629-a05450422a97", + "origin": "Application", + "value": "TeamsAppInstallation.ReadForUser.All" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any chat, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all chats", + "id": "9e19bae1-2623-4c4f-ab6e-2664615ff9a0", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForChat.All" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any team, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all teams", + "id": "5dad17ba-f6cc-4954-a5a2-a0dcc95154f0", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForTeam.All" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps for any user, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all users", + "id": "74ef0291-ca83-4d02-8c7e-d2391e6a444f", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForUser.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage itself for all chats", + "id": "73a45059-f39c-4baf-9182-4954ac0e55cf", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForChat.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage itself for all teams", + "id": "9f67436c-5415-4e7f-8ac1-3014a7132630", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForTeam.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself to any user, without a signed-in user.", + "displayName": "Allow the app to manage itself for all users", + "id": "908de74d-f8b2-4d6b-a9ed-2a17b3b78179", + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForUser.All" + }, + { + "description": "Allows the app to create teams without a signed-in user.\u00a0", + "displayName": "Create teams", + "id": "23fc2474-f741-46ce-8465-674744c5c361", + "origin": "Application", + "value": "Team.Create" + }, + { + "description": "Add and remove members from all teams, without a signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "displayName": "Add and remove members with non-owner role for all teams", + "id": "4437522e-9a86-4a41-a7da-e380edd4a97d", + "origin": "Application", + "value": "TeamMember.ReadWriteNonOwnerRole.All" + }, + { + "description": "Allows the app to read all term store data, without a signed-in user. This includes all sets, groups and terms in the term store.", + "displayName": "Read all term store data", + "id": "ea047cc2-df29-4f3e-83a3-205de61501ca", + "origin": "Application", + "value": "TermStore.Read.All" + }, + { + "description": "Allows the app to read, edit or write all term store data, without a signed-in user. This includes all sets, groups and terms in the term store.", + "displayName": "Read and write all term store data", + "id": "f12eb8d6-28e3-46e6-b2c0-b7e4dc69fc95", + "origin": "Application", + "value": "TermStore.ReadWrite.All" + }, + { + "description": "Allows the app to read your tenant's service health information, without a signed-in user. Health information may include service issues or service health overviews.", + "displayName": "Read service health", + "id": "79c261e0-fe76-4144-aad5-bdc68fbe4037", + "origin": "Application", + "value": "ServiceHealth.Read.All" + }, + { + "description": "Allows the app to read your tenant's service announcement messages, without a signed-in user. Messages may include information about new or changed features.", + "displayName": "Read service messages", + "id": "1b620472-6534-4fe6-9df2-4680e8aa28ec", + "origin": "Application", + "value": "ServiceMessage.Read.All" + }, + { + "description": "Allows the app to read all the short notes without a signed-in user.", + "displayName": "Read all users' short notes", + "id": "0c7d31ec-31ca-4f58-b6ec-9950b6b0de69", + "origin": "Application", + "value": "ShortNotes.Read.All" + }, + { + "description": "Allows the app to read, create, edit, and delete all the short notes without a signed-in user.", + "displayName": "Read, create, edit, and delete all users' short notes", + "id": "842c284c-763d-4a97-838d-79787d129bab", + "origin": "Application", + "value": "ShortNotes.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's conditional access policies, without a signed-in user.", + "displayName": "Read your organization's conditional access policies", + "id": "37730810-e9ba-4e46-b07e-8ca78d182097", + "origin": "Application", + "value": "Policy.Read.ConditionalAccess" + }, + { + "description": "Allows the app to read role-based access control (RBAC) settings for all RBAC providers without a signed-in user. This includes reading role definitions and role assignments.", + "displayName": "Read role management data for all RBAC providers", + "id": "c7fbd983-d9aa-4fa7-84b8-17382c103bc4", + "origin": "Application", + "value": "RoleManagement.Read.All" + }, + { + "description": "Allows the app to read all PSTN and direct routing call log data without a signed-in user.", + "displayName": "Read PSTN and direct routing call log data", + "id": "a2611786-80b3-417e-adaa-707d4261a5f0", + "origin": "Application", + "value": "CallRecord-PstnCalls.Read.All" + }, + { + "description": "Allows the app to read all one-to-one and group chats messages in Microsoft Teams, without a signed-in user.", + "displayName": "Read all chat messages", + "id": "b9bb2381-47a4-46cd-aafb-00cb12f68504", + "origin": "Application", + "value": "ChatMessage.Read.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for all chats", + "id": "fd9ce730-a250-40dc-bd44-8dc8d20f39ea", + "origin": "Application", + "value": "TeamsTab.ReadWriteForChat.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for all teams", + "id": "6163d4f4-fbf8-43da-a7b4-060fe85ed148", + "origin": "Application", + "value": "TeamsTab.ReadWriteForTeam.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for any user, without a signed-in user.", + "displayName": "Allow the app to manage all tabs for all users", + "id": "425b4b59-d5af-45c8-832f-bb0b7402348a", + "origin": "Application", + "value": "TeamsTab.ReadWriteForUser.All" + }, + { + "description": "Allows the app to read the API connectors used in user authentication flows, without a signed-in user.", + "displayName": "Read API connectors for authentication flows", + "id": "b86848a7-d5b1-41eb-a9b4-54a4e6306e97", + "origin": "Application", + "value": "APIConnectors.Read.All" + }, + { + "description": "Allows the app to read, create and manage the API connectors used in user authentication flows, without a signed-in user.", + "displayName": "Read and write API connectors for authentication flows", + "id": "1dfe531a-24a6-4f1b-80f4-7a0dc5a0a171", + "origin": "Application", + "value": "APIConnectors.ReadWrite.All" + }, + { + "description": "Read the members of all chats, without a signed-in user.", + "displayName": "Read the members of all chats", + "id": "a3410be2-8e48-4f32-8454-c29a7465209d", + "origin": "Application", + "value": "ChatMember.Read.All" + }, + { + "description": "Add and remove members from all chats, without a signed-in user.", + "displayName": "Add and remove members from all chats", + "id": "57257249-34ce-4810-a8a2-a03adf0c5693", + "origin": "Application", + "value": "ChatMember.ReadWrite.All" + }, + { + "description": "Allows the app to create chats without a signed-in user.\u00a0", + "displayName": "Create chats", + "id": "d9c48af6-9ad9-47ad-82c3-63757137b9af", + "origin": "Application", + "value": "Chat.Create" + }, + { + "description": "Allows the application to read tenant-wide print settings without a signed-in user.", + "displayName": "Read tenant-wide print settings", + "id": "b5991872-94cf-4652-9765-29535087c6d8", + "origin": "Application", + "value": "PrintSettings.Read.All" + }, + { + "description": "Allows an app to read and write all browser site lists configured for your organization, without a signed-in user.", + "displayName": "Read and write all browser site lists for your organization", + "id": "8349ca94-3061-44d5-9bfb-33774ea5e4f9", + "origin": "Application", + "value": "BrowserSiteLists.ReadWrite.All" + }, + { + "description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive, without a signed-in user.", + "displayName": "Read and change SharePoint and OneDrive tenant settings", + "id": "19b94e34-907c-4f43-bde9-38b1909ed408", + "origin": "Application", + "value": "SharePointTenantSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's authentication event listeners without a signed-in user.", + "displayName": "Read all authentication event listeners", + "id": "b7f6385c-6ce6-4639-a480-e23c42ed9784", + "origin": "Application", + "value": "EventListener.Read.All" + }, + { + "description": "Allows the app to read or write your organization's authentication event listeners without a signed-in user.", + "displayName": "Read and write all authentication event listeners", + "id": "0edf5e9e-4ce8-468a-8432-d08631d18c43", + "origin": "Application", + "value": "EventListener.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's custom authentication extensions without a signed-in user.", + "displayName": "Read all custom authentication extensions", + "id": "88bb2658-5d9e-454f-aacd-a3933e079526", + "origin": "Application", + "value": "CustomAuthenticationExtension.Read.All" + }, + { + "description": "Allows the app to read all users\u2019 tasks and task lists in your organization, without a signed-in user.", + "displayName": "Read all users\u2019 tasks and tasklist", + "id": "f10e1f91-74ed-437f-a6fd-d6ae88e26c1f", + "origin": "Application", + "value": "Tasks.Read.All" + }, + { + "description": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources without a signed-in user.", + "displayName": "Read and write all lifecycle workflows resources", + "id": "5c505cf4-8424-4b8e-aa14-ee06e3bb23e3", + "origin": "Application", + "value": "LifecycleWorkflows.ReadWrite.All" + }, + { + "description": "Allows an app to read all bookmarks without a signed-in user.", + "displayName": "Read all bookmarks", + "id": "be95e614-8ef3-49eb-8464-1c9503433b86", + "origin": "Application", + "value": "Bookmark.Read.All" + }, + { + "description": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem without a signed-in user.", + "displayName": "Read cross-tenant basic information", + "id": "cac88765-0581-4025-9725-5ebc13f729ee", + "origin": "Application", + "value": "CrossTenantInformation.ReadBasic.All" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant without a signed-in user.\u00a0 It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant without a signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export or delete their data", + "id": "306785c5-c09b-4ba0-a4ee-023f3da165cb", + "origin": "Application", + "value": "CrossTenantUserProfileSharing.ReadWrite.All" + }, + { + "description": "Allows the app to read all learning content in the organization's directory, without a signed-in user.", + "displayName": "Read all learning content", + "id": "8740813e-d8aa-4204-860e-2a0f8f84dbc8", + "origin": "Application", + "value": "LearningContent.Read.All" + }, + { + "description": "Allows the app to read and update the authentication context information in your organization without a signed-in user.", + "displayName": "Read and write all authentication context information", + "id": "a88eef72-fed0-4bf7-a2a9-f19df33f8b83", + "origin": "Application", + "value": "AuthenticationContext.ReadWrite.All" + }, + { + "description": "Allows the app to read all admin report settings, such as whether to display concealed information in reports, without a signed-in user.", + "displayName": "Read all admin report settings", + "id": "ee353f83-55ef-4b78-82da-555bfa2b4b95", + "origin": "Application", + "value": "ReportSettings.Read.All" + }, + { + "description": "Allows the app to read the members of all chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read the members of all chats where the associated Teams application is installed.", + "id": "93e7c9e4-54c5-4a41-b796-f2a5adaacda7", + "origin": "Application", + "value": "ChatMember.Read.WhereInstalled" + }, + { + "description": "Allows the app to add and remove members from all chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Add and remove members from all chats where the associated Teams application is installed.", + "id": "e32c2cd9-0124-4e44-88fc-772cd98afbdb", + "origin": "Application", + "value": "ChatMember.ReadWrite.WhereInstalled" + }, + { + "description": "Allows the app to read your organization's threat submissions and to view threat submission policies without a signed-in user.", + "displayName": "Read all of the organization's threat submissions", + "id": "86632667-cd15-4845-ad89-48a88e8412e1", + "origin": "Application", + "value": "ThreatSubmission.Read.All" + }, + { + "description": "Allows an app to sign digests for data without a signed-in user.", + "displayName": "Sign digests for data", + "id": "cbe6c7e4-09aa-4b8d-b3c3-2dbb59af4b54", + "origin": "Application", + "value": "InformationProtectionContent.Sign.All" + }, + { + "description": "Allows the app to read your organization's threat submission policies without a signed-in user. Also allows the app to create new threat submission polices without a signed-in user.", + "displayName": "Read and write all of the organization's threat submission policies", + "id": "926a6798-b100-4a20-a22f-a4918f13951d", + "origin": "Application", + "value": "ThreatSubmissionPolicy.ReadWrite.All" + }, + { + "description": "Allows the app to read all one-to-one or group chat messages in Microsoft Teams for chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read all chat messages for chats where the associated Teams application is installed.", + "id": "1c1b4c8e-3cc7-4c58-8470-9b92c9d5848b", + "origin": "Application", + "value": "Chat.Read.WhereInstalled" + }, + { + "description": "Allows the app to read and write all chat messages in Microsoft Teams for chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read and write all chat messages for chats where the associated Teams application is installed.", + "id": "ad73ce80-f3cd-40ce-b325-df12c33df713", + "origin": "Application", + "value": "Chat.ReadWrite.WhereInstalled" + }, + { + "description": "Allows the app to read and update all Azure AD recommendations, without a signed-in user. ", + "displayName": "Read and update all Azure AD recommendations", + "id": "0e9eea12-4f01-45f6-9b8d-3ea4c8144158", + "origin": "Application", + "value": "DirectoryRecommendations.ReadWrite.All" + }, + { + "description": "Allows the app to read all recordings of all online meetings, without a signed-in user.", + "displayName": "Read all recordings of online meetings.", + "id": "a4a08342-c95d-476b-b943-97e100569c8d", + "origin": "Application", + "value": "OnlineMeetingRecording.Read.All" + }, + { + "description": "Allows an app to manage license assignments for users and groups, without a signed-in user.", + "displayName": "Manage all license assignments", + "id": "5facf0c1-8979-4e95-abcf-ff3d079771c0", + "origin": "Application", + "value": "LicenseAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the Teams app settings without a signed-in user.", + "displayName": "Read and write Teams app settings", + "id": "ab5b445e-8f10-45f4-9c79-dd3f8062cc4e", + "origin": "Application", + "value": "TeamworkAppSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, without a signed-in user.", + "displayName": "Read and write all users' lifecycle information", + "id": "925f1248-0f97-47b9-8ec8-538c54e01325", + "origin": "Application", + "value": "User-LifeCycleInfo.ReadWrite.All" + }, + { + "description": "Allows the app to read all Azure AD recommendations, without a signed-in user. ", + "displayName": "Read all Azure AD recommendations", + "id": "ae73097b-cb2a-4447-b064-5d80f6093921", + "origin": "Application", + "value": "DirectoryRecommendations.Read.All" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant without a signed-in user.\u00a0 It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant without a signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export their data", + "id": "8b919d44-6192-4f3d-8a3b-f86f8069ae3c", + "origin": "Application", + "value": "CrossTenantUserProfileSharing.Read.All" + }, + { + "description": "Allows the app to manage restricted resources based on the other permissions granted to the app, without a signed-in user.", + "displayName": "Manage restricted resources in the directory", + "id": "f20584af-9290-4153-9280-ff8bb2c0ea7f", + "origin": "Application", + "value": "Directory.Write.Restricted" + }, + { + "description": "Allows the app to read all transcripts of all online meetings, without a signed-in user.", + "displayName": "Read all transcripts of online meetings.", + "id": "a4a80d8d-d283-4bd8-8504-555ec3870630", + "origin": "Application", + "value": "OnlineMeetingTranscript.Read.All" + }, + { + "description": "Allows\u00a0the\u00a0app\u00a0to\u00a0manage all learning\u00a0content\u00a0in\u00a0the\u00a0organization's\u00a0directory, without a signed-in user.", + "displayName": "Manage all\u00a0learning\u00a0content", + "id": "444d6fcb-b738-41e5-b103-ac4f2a2628a3", + "origin": "Application", + "value": "LearningContent.ReadWrite.All" + }, + { + "description": "Allows the application to read the tenant-level settings of SharePoint and OneDrive, without a signed-in user.", + "displayName": "Read SharePoint and OneDrive tenant settings", + "id": "83d4163d-a2d8-4d3b-9695-4ae3ca98f888", + "origin": "Application", + "value": "SharePointTenantSettings.Read.All" + }, + { + "description": "Allows the app to read or write your organization's custom authentication extensions without a signed-in user.", + "displayName": "Read and write all custom authentication extensions", + "id": "c2667967-7050-4e7e-b059-4cbbb3811d03", + "origin": "Application", + "value": "CustomAuthenticationExtension.ReadWrite.All" + }, + { + "description": "Allows the app to read names and members of all one-to-one and group chats in Microsoft Teams where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read names and members of all chat threads where the associated Teams application is installed.", + "id": "818ba5bd-5b3e-4fe0-bbe6-aa4686669073", + "origin": "Application", + "value": "Chat.ReadBasic.WhereInstalled" + }, + { + "description": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources without a signed-in user.", + "displayName": "Read all lifecycle workflows resources", + "id": "7c67316a-232a-4b84-be22-cea2c0906404", + "origin": "Application", + "value": "LifecycleWorkflows.Read.All" + }, + { + "description": "Allows the app to create protected content without a signed-in user. ", + "displayName": "Create protected content", + "id": "287bd98c-e865-4e8c-bade-1a85523195b9", + "origin": "Application", + "value": "InformationProtectionContent.Write.All" + }, + { + "description": "Allows the app to create, read, update and delete all users\u2019 tasks and task lists in your organization, without a signed-in user", + "displayName": "Read and write all users\u2019 tasks and tasklists", + "id": "44e666d1-d276-445b-a5fc-8815eeb81d55", + "origin": "Application", + "value": "Tasks.ReadWrite.All" + }, + { + "description": "Allows the app to read the Teams app settings without a signed-in user.", + "displayName": "Read Teams app settings", + "id": "475ebe88-f071-4bd7-af2b-642952bd4986", + "origin": "Application", + "value": "TeamworkAppSettings.Read.All" + }, + { + "description": "Allows the app to read the authentication context information in your organization without a signed-in user.", + "displayName": "Read all authentication context information", + "id": "381f742f-e1f8-4309-b4ab-e3d91ae4c5c1", + "origin": "Application", + "value": "AuthenticationContext.Read.All" + }, + { + "description": "Allows the app to read and update all admin report settings, such as whether to display concealed information in reports, without a signed-in user.", + "displayName": "Read and write all admin report settings", + "id": "2a60023f-3219-47ad-baa4-40e17cd02a1d", + "origin": "Application", + "value": "ReportSettings.ReadWrite.All" + }, + { + "description": "Allows an app to read all browser site lists configured for your organization, without a signed-in user.", + "displayName": "Read all browser site lists for your organization", + "id": "c5ee1f21-fc7f-4937-9af0-c91648ff9597", + "origin": "Application", + "value": "BrowserSiteLists.Read.All" + }, + { + "description": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, without a signed-in user.", + "displayName": "Read all users' lifecycle information", + "id": "8556a004-db57-4d7a-8b82-97a13428e96f", + "origin": "Application", + "value": "User-LifeCycleInfo.Read.All" + }, + { + "description": "Allows an app to read all acronyms without a signed-in user.", + "displayName": "Read all acronyms", + "id": "8c0aed2c-0c61-433d-b63c-6370ddc73248", + "origin": "Application", + "value": "Acronym.Read.All" + }, + { + "description": "Allows the app to see your users' basic profile (e.g., name, picture, user name, email address)", + "displayName": "View users' basic profile", + "id": "14dad69e-099b-42c9-810b-d002981feec1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to see your basic profile (e.g., name, picture, user name, email address)", + "userConsentDisplayName": "View your basic profile", + "value": "profile" + }, + { + "description": "Allows the app to read attack simulation and training data for an organization for the signed-in user.", + "displayName": "Read attack simulation data of an organization", + "id": "104a7a4b-ca76-4677-b7e7-2f4bc482f381", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read attack simulation and training data for an organization on your behalf.", + "userConsentDisplayName": "Read attack simulation data of an organization", + "value": "AttackSimulation.Read.All" + }, + { + "description": "Allows the app to read and write your organization's directory access review default policy on behalf of the signed-in user.", + "displayName": "Read and write your organization's directory access review default policy", + "id": "4f5bc9c8-ea54-4772-973a-9ca119cb0409", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's directory access review default policy on your behalf.", + "userConsentDisplayName": "Read and write your organization's directory access review default policy", + "value": "Policy.ReadWrite.AccessReview" + }, + { + "description": "Allows the app to read your organization's threat submissions and threat submission policies on behalf of the signed-in user. Also allows the app to create new threat submissions on behalf of the signed-in user.", + "displayName": "Read and write all threat submissions", + "id": "8458e264-4eb9-4922-abe9-768d58f13c7f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submissions and threat submission policies on your behalf. Also allows the app to create new threat submissions on your behalf.", + "userConsentDisplayName": "Read and write all threat submissions", + "value": "ThreatSubmission.ReadWrite.All" + }, + { + "description": "Allows the application to read any data from Records Management, such as configuration, labels, and policies on behalf of the signed-in user.", + "displayName": "Read Records Management configuration,\u00a0labels, and policies", + "id": "07f995eb-fc67-4522-ad66-2b8ca8ea3efd", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read any data from Records Management, such as configuration, labels and policies on your behalf.", + "userConsentDisplayName": "Read Records Management configuration,\u00a0labels, and policies", + "value": "RecordsManagement.Read.All" + }, + { + "description": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies on behalf of the signed-in user.", + "displayName": "Read and write Records Management configuration, labels, and policies", + "id": "f2833d75-a4e6-40ab-86d4-6dfe73c97605", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies on your behalf.", + "userConsentDisplayName": "Read and write Records Management configuration, labels, and policies", + "value": "RecordsManagement.ReadWrite.All" + }, + { + "description": "Allows the app to read details of delegated admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups on behalf of the signed-in user.", + "displayName": "Read Delegated Admin relationships with customers", + "id": "0c0064ea-477b-4130-82a5-4c2cc4ff68aa", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read details of Delegated Admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups on your behalf.", + "userConsentDisplayName": "Read Delegated Admin relationships with customers", + "value": "DelegatedAdminRelationship.Read.All" + }, + { + "description": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers as well as role assignments to security groups for active Delegated Admin relationships on behalf of the signed-in user.", + "displayName": "Manage Delegated Admin relationships with customers", + "id": "885f682f-a990-4bad-a642-36736a74b0c7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers and role assignments to security groups for active Delegated Admin relationships on your behalf.", + "userConsentDisplayName": "Manage Delegated Admin relationships with customers", + "value": "DelegatedAdminRelationship.ReadWrite.All" + }, + { + "description": "Allows the app to read and write all managed tenant information on behalf of the signed-in user.", + "displayName": "Read and write all managed tenant information", + "id": "b31fa710-c9b3-4d9e-8f5e-8036eecddab9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all managed tenant information on your behalf.", + "userConsentDisplayName": "Read and write all managed tenant information", + "value": "ManagedTenants.ReadWrite.All" + }, + { + "description": "Allows the app to read all managed tenant information on behalf of the signed-in user.", + "displayName": "Read all managed tenant information", + "id": "dc34164e-6c4a-41a0-be89-3ae2fbad7cd3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all managed tenant information on your behalf.", + "userConsentDisplayName": "Read all managed tenant information", + "value": "ManagedTenants.Read.All" + }, + { + "description": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, on behalf of the signed-in user. This includes reading and managing Cloud PC role definitions and role assignments.", + "displayName": "Read and write Cloud PC RBAC settings", + "id": "501d06f8-07b8-4f18-b5c6-c191a4af7a82", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, on your behalf. This includes reading and managing Cloud PC role definitions and memberships.", + "userConsentDisplayName": "Read and write Cloud PC RBAC settings", + "value": "RoleManagement.ReadWrite.CloudPC" + }, + { + "description": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, on behalf of the signed-in user.\u00a0 This includes reading Cloud PC role definitions and role assignments.", + "displayName": "Read Cloud PC RBAC settings", + "id": "9619b88a-8a25-48a7-9571-d23be0337a79", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, on your behalf.\u00a0 This includes reading Cloud PC role definitions and role assignments.", + "userConsentDisplayName": "Read Cloud PC RBAC settings", + "value": "RoleManagement.Read.CloudPC" + }, + { + "description": "Allows the app to read and write settings of external connections on behalf of a signed-in user. The signed-in user must be an administrator. The app can only read and write settings of connections that it is authorized to.", + "displayName": "Read and write external connections", + "id": "4082ad95-c812-4f02-be92-780c4c4f1830", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write external connections on your behalf. The signed-in user must be an administrator. The app can only read and write external connections that it is authorized to, or it can create new external connections. ", + "userConsentDisplayName": "Read and write external connections", + "value": "ExternalConnection.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read all external connections on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read all external connections", + "id": "a38267a5-26b6-4d76-9493-935b7599116b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all external connections on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read all external connections", + "value": "ExternalConnection.Read.All" + }, + { + "description": "Allows the app to read and write all external connections on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read and write all external connections", + "id": "bbbbd9b3-3566-4931-ac37-2b2180d9e334", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all external connections on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read and write all external connections", + "value": "ExternalConnection.ReadWrite.All" + }, + { + "description": "Allows the app to read and write external items on behalf of a signed-in user. The signed-in user must be an administrator. The app can only read external items of the connection that it is authorized to.", + "displayName": "Read and write external items", + "id": "4367b9d7-cee7-4995-853c-a0bdfe95c1f9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write external items on your behalf. The signed-in user must be an administrator. The app can only read external items of the connection that it is authorized to.", + "userConsentDisplayName": "Read and write external items", + "value": "ExternalItem.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read and write all external items on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read and write all external items", + "id": "b02c54f8-eb48-4c50-a9f0-a149e5a2012f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all external items on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read and write all external items", + "value": "ExternalItem.ReadWrite.All" + }, + { + "description": "Allows the app to read custom security attribute assignments for all principals in the tenant on behalf of a signed in user.", + "displayName": "Read custom security attribute assignments", + "id": "b46ffa80-fe3d-4822-9a1a-c200932d54d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read custom security attribute assignments for all principals in the tenant on your behalf.", + "userConsentDisplayName": "Read custom security attribute assignments", + "value": "CustomSecAttributeAssignment.Read.All" + }, + { + "description": "Allows the app to read custom security attribute definitions for the tenant on behalf of a signed in user.", + "displayName": "Read custom security attribute definitions", + "id": "ce026878-a0ff-4745-a728-d4fedd086c07", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read custom security attribute definitions for the tenant on your behalf.", + "userConsentDisplayName": "Read custom security attribute definitions", + "value": "CustomSecAttributeDefinition.Read.All" + }, + { + "description": "Allows the app to read and write your organization's cross tenant access policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's cross tenant access policies", + "id": "014b43d0-6ed4-4fc6-84dc-4b6f7bae7d85", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's cross tenant access policies on your behalf.", + "userConsentDisplayName": "Read and write your organization's cross tenant access policies", + "value": "Policy.ReadWrite.CrossTenantAccess" + }, + { + "description": "Allows the app to read and write tags in Teams, on behalf of the signed-in user.", + "displayName": "Read and write tags in Teams", + "id": "539dabd7-b5b6-4117-b164-d60cd15a8671", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write tags in Teams, on your behalf.", + "userConsentDisplayName": "Read and write tags in Teams", + "value": "TeamworkTag.ReadWrite" + }, + { + "description": "Allows the app to read tags in Teams, on behalf of the signed-in user.", + "displayName": "Read tags in Teams", + "id": "57587d0b-8399-45be-b207-8050cec54575", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read tags in Teams, on your behalf.", + "userConsentDisplayName": "Read tags in Teams", + "value": "TeamworkTag.Read" + }, + { + "description": "Allows the app to read and write security incidents, on behalf of the signed-in user.", + "displayName": "Read and write to incidents", + "id": "128ca929-1a19-45e6-a3b8-435ec44a36ba", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write to all security incidents that you have access to.", + "userConsentDisplayName": "Read and write to security incidents", + "value": "SecurityIncident.ReadWrite.All" + }, + { + "description": "Allows the app to read security incidents, on behalf of the signed-in user.", + "displayName": "Read incidents", + "id": "b9abcc4f-94fc-4457-9141-d20ce80ec952", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all security incidents that you have access to.", + "userConsentDisplayName": "Read security incidents", + "value": "SecurityIncident.Read.All" + }, + { + "description": "Allows the app to read and write to all security alerts, on behalf of the signed-in user.", + "displayName": "Read and write to all security alerts", + "id": "471f2a7f-2a42-4d45-a2bf-594d0838070d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all alerts that you have access to.", + "userConsentDisplayName": "Read and write all alerts", + "value": "SecurityAlert.ReadWrite.All" + }, + { + "description": "Allows the app to read all security alerts, on behalf of the signed-in user.", + "displayName": "Read all security alerts", + "id": "bc257fb8-46b4-4b15-8713-01e91bfbe4ea", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all security alerts that you have access to.", + "userConsentDisplayName": "Read all alerts", + "value": "SecurityAlert.Read.All" + }, + { + "description": "Allows the app to update service announcement messages' user status on behalf of the signed-in user. The message status can be marked as read, archive, or favorite.", + "displayName": "Update user status on service announcement messages", + "id": "636e1b0b-1cc2-4b1c-9aa9-4eeed9b9761b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to update service announcement messages' status on your behalf. Your status for messages can be marked as read, archive, or favorite.", + "userConsentDisplayName": "Update your user status on service announcement messages", + "value": "ServiceMessageViewpoint.Write" + }, + { + "description": "Allows the app to run hunting queries, on behalf of the signed-in user.", + "displayName": "Run hunting queries", + "id": "b152eca8-ea73-4a48-8c98-1a6742673d99", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to run hunting queries that you can execute.", + "userConsentDisplayName": "Run hunting queries", + "value": "ThreatHunting.Read.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself to teams the signed-in user can access.", + "displayName": "Allow the app to manage itself in teams", + "id": "0f4595f7-64b1-4e13-81bc-11a249df07a9", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself to teams you can access.", + "userConsentDisplayName": "Allow the Teams app to manage itself in teams", + "value": "TeamsAppInstallation.ReadWriteSelfForTeam" + }, + { + "description": "Allow the app to read the management data for Teams devices on behalf of the signed-in user.", + "displayName": "Read Teams devices", + "id": "b659488b-9d28-4208-b2be-1c6652b3c970", + "Origin": "Delegated", + "userConsentDescription": "Allow the app to read the management data for Teams devices on your behalf.", + "userConsentDisplayName": "Read Teams devices", + "value": "TeamworkDevice.Read.All" + }, + { + "description": "Allow the app to read and write the management data for Teams devices on behalf of the signed-in user.", + "displayName": "Read and write Teams devices", + "id": "ddd97ecb-5c31-43db-a235-0ee20e635c40", + "Origin": "Delegated", + "userConsentDescription": "Allow the app to read and write the management data for Teams devices on your behalf.", + "userConsentDisplayName": "Read and write Teams devices", + "value": "TeamworkDevice.ReadWrite.All" + }, + { + "description": "Allows the app to read all identity risky service principal information for your organization, on behalf of the signed-in user.", + "displayName": "Read all identity risky service principal information", + "id": "ea5c4ab0-5a73-4f35-8272-5d5337884e5d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all identity risky service principal information for your organization, on your behalf.", + "userConsentDisplayName": "Read all identity risky service principal information", + "value": "IdentityRiskyServicePrincipal.Read.All" + }, + { + "description": "Allows the app to read and update identity risky service principal information for all service principals in your organization, on behalf of the signed-in user. Update operations include dismissing risky service principals.", + "displayName": "Read and write all identity risky service principal information", + "id": "bb6f654c-d7fd-4ae3-85c3-fc380934f515", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risky service principal information for all service principals in your organization, on your behalf. Update operations include dismissing risky service principals.", + "userConsentDisplayName": "Read and write all identity risky service principal information", + "value": "IdentityRiskyServicePrincipal.ReadWrite.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs to teams the signed-in user can access.", + "displayName": "Allow the Teams app to manage only its own tabs in teams", + "id": "f266662f-120a-4314-b26a-99b08617c7ef", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs to teams you can access.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs in teams", + "value": "TeamsTab.ReadWriteSelfForTeam" + }, + { + "description": "Allows the app to read the presence information and write activity and availability on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read and write a user's presence information", + "id": "8d3c54a7-cf58-4773-bf81-c0cd6ad522bb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the presence information and write activity and availability on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read and write your presence information", + "value": "Presence.ReadWrite" + }, + { + "description": "Allows the app to read subject rights requests on behalf of the signed-in user", + "displayName": "Read subject rights requests", + "id": "9c3af74c-fd0f-4db4-b17a-71939e2a9d77", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read subject rights requests on your behalf.", + "userConsentDisplayName": "Read data subject requests", + "value": "SubjectRightsRequest.Read.All" + }, + { + "description": "Allows the app to read and write subject rights requests on behalf of the signed-in user", + "displayName": "Read and write subject rights requests", + "id": "2b8fcc74-bce1-4ae3-a0e8-60c53739299d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write subject rights requests on your behalf.", + "userConsentDisplayName": "Read and write data subject requests", + "value": "SubjectRightsRequest.ReadWrite.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for the signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for a user", + "id": "395dfec1-a0b9-465f-a783-8250a430cb8c", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for you.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs for you", + "value": "TeamsTab.ReadWriteSelfForUser" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage only its own tabs in chats", + "id": "0c219d04-3abf-47f7-912d-5cca239e90e6", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs in chats", + "value": "TeamsTab.ReadWriteSelfForChat" + }, + { + "description": "Allows the app to read and write search configuration, on behalf of the signed-in user.", + "displayName": "Read and write your organization's search configuration", + "id": "b1a7d408-cab0-47d2-a2a5-a74a3733600d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write search configuration, on your behalf.", + "userConsentDisplayName": "Read and write your organization's search configuration", + "value": "SearchConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read search configuration, on behalf of the signed-in user.", + "displayName": "Read your organization's search configuration", + "id": "7d307522-aa38-4cd0-bd60-90c6f0ac50bd", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read search configuration, on your behalf.", + "userConsentDisplayName": "Read your organization's search configuration", + "value": "SearchConfiguration.Read.All" + }, + { + "description": "Allows the app to read online meeting artifacts on behalf of the signed-in user.", + "displayName": "Read user's online meeting artifacts", + "id": "110e5abb-a10c-4b59-8b55-9b4daa4ef743", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read online meeting artifacts on your behalf.", + "userConsentDisplayName": "Read user's online meeting artifacts", + "value": "OnlineMeetingArtifact.Read.All" + }, + { + "description": "Allows the app to read and manage the active role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes managing active directory role membership, and reading directory role templates, directory roles and active memberships.", + "displayName": "Read, update, and delete all active role assignments for your company's directory", + "id": "8c026be3-8e26-4774-9372-8d5d6f21daff", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the active role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes managing active directory role membership, and reading directory role templates, directory roles and active memberships.", + "userConsentDisplayName": "Read, update, and delete all active role assignments for your company's directory", + "value": "RoleAssignmentSchedule.ReadWrite.Directory" + }, + { + "description": "Allows the app to read and manage the eligible role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes managing eligible directory role membership, and reading directory role templates, directory roles and eligible memberships.", + "displayName": "Read, update, and delete all eligible role assignments for your company's directory", + "id": "62ade113-f8e0-4bf9-a6ba-5acb31db32fd", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the eligible role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes managing eligible directory role membership, and reading directory role templates, directory roles and eligible memberships.", + "userConsentDisplayName": "Read, update, and delete all eligible role assignments for your company's directory", + "value": "RoleEligibilitySchedule.ReadWrite.Directory" + }, + { + "description": "Allows the app to read, update, and delete policies for privileged role-based access control (RBAC) assignments of your company's directory, on behalf of the signed-in user.", + "displayName": "Read, update, and delete all policies for privileged role assignments of your company's directory", + "id": "1ff1be21-34eb-448c-9ac9-ce1f506b2a68", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, and delete policies for privileged role-based access control (RBAC) assignments of your company's directory, on your behalf.", + "userConsentDisplayName": "Read, update, and delete all policies for privileged role assignments of your company's directory", + "value": "RoleManagementPolicy.ReadWrite.Directory" + }, + { + "description": "Allows the app to read the active role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, and directory roles.", + "displayName": "Read all active role assignments for your company's directory", + "id": "344a729c-0285-42c6-9014-f12b9b8d6129", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the active role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes reading directory role templates, and directory roles.", + "userConsentDisplayName": "Read all active role assignments for your company's directory", + "value": "RoleAssignmentSchedule.Read.Directory" + }, + { + "description": "Allows the app to read the eligible role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, and directory roles.", + "displayName": "Read all eligible role assignments for your company's directory", + "id": "eb0788c2-6d4e-4658-8c9e-c0fb8053f03d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the eligible role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes reading directory role templates, and directory roles.", + "userConsentDisplayName": "Read all eligible role assignments for your company's directory", + "value": "RoleEligibilitySchedule.Read.Directory" + }, + { + "description": "Allows the app to read policies for privileged role-based access control (RBAC) assignments of your company's directory, on behalf of the signed-in user.", + "displayName": "Read all policies for privileged role assignments of your company's directory", + "id": "3de2cdbe-0ff5-47d5-bdee-7f45b4749ead", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read policies for privileged role-based access control (RBAC) assignments of your company's directory, on your behalf.", + "userConsentDisplayName": "Read all policies for privileged role assignments of your company's directory", + "value": "RoleManagementPolicy.Read.Directory" + }, + { + "description": "Allows the app to read and write all Windows update deployment settings for the organization on behalf of the signed-in user.", + "displayName": "Read and write all Windows update deployment settings", + "id": "11776c0c-6138-4db3-a668-ee621bea2555", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all Windows update deployment settings for the organization on your behalf.", + "userConsentDisplayName": "Read and write all Windows update deployment settings", + "value": "WindowsUpdates.ReadWrite.All" + }, + { + "description": "Allows the app to read and write your organization's mobility management policies on behalf of the signed-in user. For example, a mobility management policy can set the enrollment scope for a given mobility management application.", + "displayName": "Read and write your organization's mobility management policies", + "id": "a8ead177-1889-4546-9387-f25e658e2a79", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's mobility management policies on your behalf. For example, a mobility management policy can set the enrollment scope for a given mobility management application.", + "userConsentDisplayName": "Read and write your organization's mobility management policies", + "value": "Policy.ReadWrite.MobilityManagement" + }, + { + "description": "Allows the app to read basic unified group properties, memberships and owners of the group the signed-in guest is a member of.", + "displayName": "Read unified group memberships as guest", + "id": "73e75199-7c3e-41bb-9357-167164dbb415", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read basic unified group properties, memberships and owners of the group you are a member of.", + "userConsentDisplayName": "Read unified group memberships as guest", + "value": "UnifiedGroupMember.Read.AsGuest" + }, + { + "description": "Allows the app to update service principal endpoints", + "displayName": "Read and update service principal endpoints", + "id": "7297d82c-9546-4aed-91df-3d4f0a9b3ff0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to update service principal endpoints", + "userConsentDisplayName": "Read and update service principal endpoints", + "value": "ServicePrincipalEndpoint.ReadWrite.All" + }, + { + "description": "Allows the app to read service principal endpoints", + "displayName": "Read service principal endpoints", + "id": "9f9ce928-e038-4e3b-8faf-7b59049a8ddc", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read service principal endpoints", + "userConsentDisplayName": "Read service principal endpoints", + "value": "ServicePrincipalEndpoint.Read.All" + }, + { + "description": "Allows the app to create new notifications in users' teamwork activity feeds on behalf of the signed in user. These notifications may not be discoverable or be held or governed by compliance policies.", + "displayName": "Send a teamwork activity as the user", + "id": "7ab1d787-bae7-4d5d-8db6-37ea32df9186", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create new activities in your teamwork activity feed, and send new activities to other users' activity feed, on your behalf.", + "userConsentDisplayName": "Send a teamwork activity", + "value": "TeamsActivity.Send" + }, + { + "description": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects on behalf of the signed-in user.", + "displayName": "Read and write all eDiscovery objects", + "id": "acb8f680-0834-4146-b69e-4ab1b39745ad", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects on your behalf.", + "userConsentDisplayName": "Read and write all eDiscovery objects", + "value": "eDiscovery.ReadWrite.All" + }, + { + "description": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects on behalf of the signed-in user.", + "displayName": "Read all eDiscovery objects", + "id": "99201db3-7652-4d5a-809a-bdb94f85fe3c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects on your behalf.", + "userConsentDisplayName": "Read all eDiscovery objects", + "value": "eDiscovery.Read.All" + }, + { + "description": "Allows the app to read and write custom security attribute assignments for all principals in the tenant on behalf of a signed in user.", + "displayName": "Read and write custom security attribute assignments", + "id": "ca46335e-8453-47cd-a001-8459884efeae", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write custom security attribute assignments for all principals in the tenant on your behalf.", + "userConsentDisplayName": "Read and write custom security attribute assignments", + "value": "CustomSecAttributeAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to read and write custom security attribute definitions for the tenant on behalf of a signed in user.", + "displayName": "Read and write custom security attribute definitions", + "id": "8b0160d4-5743-482b-bb27-efc0a485ca4a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write custom security attribute definitions for the tenant on your behalf.", + "userConsentDisplayName": "Read and write custom security attribute definitions", + "value": "CustomSecAttributeDefinition.ReadWrite.All" + }, + { + "description": "Allows the app to read email in the signed-in user's mailbox except body, previewBody, attachments and any extended properties.", + "displayName": "Read user basic mail", + "id": "a4b8392a-d8d1-4954-a029-8e668a39a170", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read email in the signed-in user's mailbox except body, previewBody, attachments and any extended properties.", + "userConsentDisplayName": "Read user basic mail", + "value": "Mail.ReadBasic" + }, + { + "description": "Allows the app to read and write your organization's feature rollout policies on behalf of the signed-in user. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "displayName": "Read and write your organization's feature rollout policies", + "id": "92a38652-f13b-4875-bc77-6e1dbb63e1b2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's feature rollout policies on your behalf. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "userConsentDisplayName": "Read and write your organization's feature rollout policies", + "value": "Policy.ReadWrite.FeatureRollout" + }, + { + "description": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, on behalf of the signed-in user. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "displayName": "Read and write directory RBAC settings", + "id": "d01b97e9-cbc0-49fe-810a-750afd5527a3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, on your behalf. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "userConsentDisplayName": "Read and write directory RBAC settings", + "value": "RoleManagement.ReadWrite.Directory" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, directory roles and memberships.", + "displayName": "Read directory RBAC settings", + "id": "741c54c3-0c1e-44a1-818b-3f97ab4e8c83", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, on your behalf. This includes reading directory role templates, directory roles and memberships.", + "userConsentDisplayName": "Read directory RBAC settings", + "value": "RoleManagement.Read.Directory" + }, + { + "description": "Allows the app to read and write the organization and related resources, on behalf of the signed-in user.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read and write organization information", + "id": "46ca0847-7e6b-426e-9775-ea810a948356", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the organization and related resources, on your behalf.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "userConsentDisplayName": "Read and write organization information", + "value": "Organization.ReadWrite.All" + }, + { + "description": "Allows the app to read the organization and related resources, on behalf of the signed-in user.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read organization information", + "id": "4908d5b9-3fb2-4b1e-9336-1888b7937185", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the organization and related resources, on your behalf.\u00a0Related resources include things like subscribed skus and tenant branding information.", + "userConsentDisplayName": "Read organization information", + "value": "Organization.Read.All" + }, + { + "description": "Allows the app to read your company's places (conference rooms and room lists) for calendar events and other applications, on behalf of the signed-in user.", + "displayName": "Read all company places", + "id": "cb8f45a0-5c2e-4ea1-b803-84b870a7d7ec", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your company's places (conference rooms and room lists) for calendar events and other applications, on your behalf.", + "userConsentDisplayName": "Read all company places", + "value": "Place.Read.All" + }, + { + "description": "Allows the app to manage workforce integrations, to synchronize data from Microsoft Teams Shifts, on behalf of the signed-in user.", + "displayName": "Read and write workforce integrations", + "id": "08c4b377-0d23-4a8b-be2a-23c1c1d88545", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage workforce integrations, to synchronize data from Microsoft Teams Shifts, on your behalf.", + "userConsentDisplayName": "Read and write workforce integrations", + "value": "WorkforceIntegration.ReadWrite.All" + }, + { + "description": "Allows the app to read workforce integrations, to synchronize data from Microsoft Teams Shifts, on behalf of the signed-in user.", + "displayName": "Read workforce integrations", + "id": "f1ccd5a7-6383-466a-8db8-1a656f7d06fa", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read workforce integrations, to synchronize data from Microsoft Teams Shifts, on your behalf.", + "userConsentDisplayName": "Read workforce integrations", + "value": "WorkforceIntegration.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings for group and app memberships that the signed-in user has access to in the organization.", + "displayName": "Manage access reviews for group and app memberships", + "id": "5af8c3f5-baca-439a-97b0-ea58a435e269", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Manage access reviews for group and app memberships", + "value": "AccessReview.ReadWrite.Membership" + }, + { + "description": "Allows the app to manage hybrid identity service configuration by creating, viewing, updating and deleting on-premises published resources, on-premises agents and agent groups, on behalf of the signed-in user.", + "displayName": "Manage on-premises published resources", + "id": "8c4d5184-71c2-4bf8-bb9d-bc3378c9ad42", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage hybrid identity service configuration by creating, viewing, updating and deleting on-premises published resources, on-premises agents and agent groups, on your behalf.", + "userConsentDisplayName": "Manage on-premises published resources", + "value": "OnPremisesPublishingProfiles.ReadWrite.All" + }, + { + "description": "Allows an app to read information protection sensitivity labels and label policy settings, on behalf of the signed-in user.", + "displayName": "Read user sensitivity labels and label policies.", + "id": "4ad84827-5578-4e18-ad7a-86530b12f884", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read information protection sensitivity labels and label policy settings, on behalf of the signed-in user.", + "userConsentDisplayName": "Read user sensitivity labels and label policies.", + "value": "InformationProtectionPolicy.Read" + }, + { + "description": "Allows the app to read administrative units and administrative unit membership on behalf of the signed-in user.", + "displayName": "Read administrative units", + "id": "3361d15d-be43-4de6-b441-3c746d05163d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read administrative units and administrative unit membership on your behalf.", + "userConsentDisplayName": "Read administrative units", + "value": "AdministrativeUnit.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership on behalf of the signed-in user.", + "displayName": "Read and write administrative units", + "id": "7b8a2d34-6b3f-4542-a343-54651608ad81", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership on your behalf.", + "userConsentDisplayName": "Read and write administrative units", + "value": "AdministrativeUnit.ReadWrite.All" + }, + { + "description": "Allows the app to read your family information, members and their basic profile.", + "displayName": "Read your family info", + "id": "3a1e4806-a744-4c70-80fc-223bf8582c46", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your family information, members and their basic profile.", + "userConsentDisplayName": "Read your family info", + "value": "Family.Read" + }, + { + "description": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), on behalf of the signed-in user. \u00a0It cannot update any threat indicators it does not own.", + "displayName": "Manage threat indicators this app creates or owns", + "id": "91e7d36d-022a-490f-a748-f8e011357b42", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), on your behalf. \u00a0It cannot update any threat indicators that it is not an owner of.", + "userConsentDisplayName": "Manage threat indicators this app creates or owns", + "value": "ThreatIndicators.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read or update security actions, on behalf of the signed-in user.", + "displayName": "Read and update your organization's security actions", + "id": "dc38509c-b87d-4da0-bd92-6bec988bac4a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update security actions, on your behalf.", + "userConsentDisplayName": "Read and update your organization's security actions", + "value": "SecurityActions.ReadWrite.All" + }, + { + "description": "Allows the app to read security actions, on behalf of the signed-in user.", + "displayName": "Read your organization's security actions", + "id": "1638cddf-07a4-4de2-8645-69c96cacad73", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read security actions, on your behalf.", + "userConsentDisplayName": "Read your organization's security actions", + "value": "SecurityActions.Read.All" + }, + { + "description": "Allows an app to read 1 on 1 or group chats threads, on behalf of the signed-in user.", + "displayName": "Read user chat messages", + "id": "f501c180-9344-439a-bca0-6cbf209fd270", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read your 1 on 1 or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read your chat messages", + "value": "Chat.Read" + }, + { + "description": "Allows an app to read and write 1 on 1 or group chats threads, on behalf of the signed-in user.", + "displayName": "Read and write user chat messages", + "id": "9ff7295e-131b-4d94-90e1-69fde507ac11", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read and write your 1 on 1 or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read and write your chat messages", + "value": "Chat.ReadWrite" + }, + { + "description": "Allows the app to read and write your organization's trust framework policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's trust framework policies", + "id": "cefba324-1a70-4a6e-9c1d-fd670b7ae392", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's trust framework policies on your behalf.", + "userConsentDisplayName": "Read and write trust framework policies", + "value": "Policy.ReadWrite.TrustFramework" + }, + { + "description": "Allows the app to read trust framework key set properties on behalf of the signed-in user.", + "displayName": "Read trust framework key sets", + "id": "7ad34336-f5b1-44ce-8682-31d7dfcd9ab9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read trust framework key sets, on your behalf.", + "userConsentDisplayName": "Read trust framework key sets", + "value": "TrustFrameworkKeySet.Read.All" + }, + { + "description": "Allows the app to read and write trust framework key set properties on behalf of the signed-in user.", + "displayName": "Read and write trust framework key sets", + "id": "39244520-1e7d-4b4a-aee0-57c65826e427", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or write trust framework key sets, on your behalf.", + "userConsentDisplayName": "Read and write trust framework key sets", + "value": "TrustFrameworkKeySet.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risk event information for all users in your organization on behalf of the signed-in user.\u00a0Update operations include confirming risk event detections.\u00a0", + "displayName": "Read and write risk event information", + "id": "9e4862a5-b68f-479e-848a-4e07e25c9916", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risk event information for all users in your organization on your behalf.\u00a0Update operations include confirming risk event detections.\u00a0", + "userConsentDisplayName": "Read and write risk event information", + "value": "IdentityRiskEvent.ReadWrite.All" + }, + { + "description": "Allows the app to read and update identity risky user information for all users in your organization on behalf of the signed-in user.\u00a0Update operations include dismissing risky users.", + "displayName": "Read and write risky user information", + "id": "e0a7cdbb-08b0-4697-8264-0069786e9674", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risky user information for all users in your organization on your behalf.\u00a0Update operations include dismissing risky users.", + "userConsentDisplayName": "Read and write identity risky user information", + "value": "IdentityRiskyUser.ReadWrite.All" + }, + { + "description": "Allows the app to read the signed-in user's mailbox.", + "displayName": "Read user mail ", + "id": "570282fd-fa5c-430d-a7fd-fc8dc98a9dca", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read email in your mailbox. ", + "userConsentDisplayName": "Read your mail ", + "value": "Mail.Read" + }, + { + "description": "Allows the app to read identity risky user information for all users in your organization on behalf of the signed-in user.", + "displayName": "Read identity risky user information", + "id": "d04bb851-cb7c-4146-97c7-ca3e71baf56c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read identity risky user information for all users in your organization on behalf of the signed-in user.", + "userConsentDisplayName": "Read identity risky user information", + "value": "IdentityRiskyUser.Read.All" + }, + { + "description": "Allows the app to read the signed-in user's activity statistics, such as how much time the user has spent on emails, in meetings, or in chat sessions.", + "displayName": "Read user activity statistics", + "id": "e03cf23f-8056-446a-8994-7d93dfc8b50e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your activity statistics, such as how much time you've spent on emails, in meetings, or in chat sessions.", + "userConsentDisplayName": "Read your activity statistics", + "value": "Analytics.Read" + }, + { + "description": "Allows the app to see and update the data you gave it access to, even when users are not currently using the app. This does not give the app any additional permissions.", + "displayName": "Maintain access to data you have given it access to", + "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to see and update the data you gave it access to, even when you are not currently using the app. This does not give the app any additional permissions.", + "userConsentDisplayName": "Maintain access to data you have given it access to", + "value": "offline_access" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via Exchange Web Services.", + "displayName": "Access mailboxes as the signed-in user via Exchange Web Services", + "id": "9769c687-087d-48ac-9cb3-c37dde652038", + "Origin": "Delegated", + "userConsentDescription": "Allows the app full access to your mailboxes on your behalf.", + "userConsentDisplayName": "Access your mailboxes", + "value": "EWS.AccessAsUser.All" + }, + { + "description": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "displayName": "Export user's data", + "id": "405a51b5-8d8d-430b-9842-8be4b0e9f324", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "userConsentDisplayName": "Export user's data", + "value": "User.Export.All" + }, + { + "description": "Allows the app to deliver its notifications on behalf of signed-in users. Also allows the app to read, update, and delete the user's notification items for this app.", + "displayName": "Deliver and manage user notifications for this app", + "id": "89497502-6e42-46a2-8cb2-427fd3df970a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to deliver its notifications, on your behalf. Also allows the app to read, update, and delete your notification items for this app.", + "userConsentDisplayName": "Deliver and manage your notifications for this app", + "value": "Notifications.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read and write your organization's conditional access policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's conditional access policies", + "id": "ad902697-1014-4ef5-81ef-2b4301988e8c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's conditional access policies on your behalf.", + "userConsentDisplayName": "Read and write your organization's conditional access policies", + "value": "Policy.ReadWrite.ConditionalAccess" + }, + { + "description": "Allows the app to read your organization's policies on behalf of the signed-in user.", + "displayName": "Read your organization's policies", + "id": "572fea84-0151-49b2-9301-11cb16974376", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's policies on your behalf.", + "userConsentDisplayName": "Read your organization's policies", + "value": "Policy.Read.All" + }, + { + "description": "Allows the app to read access reviews, reviewers, decisions and settings that the signed-in user has access to in the organization.", + "displayName": "Read all access reviews that user can access", + "id": "ebfcd32b-babb-40f4-a14b-42706e83bd28", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read information on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Read access reviews that you can access", + "value": "AccessReview.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings that the signed-in user has access to in the organization.", + "displayName": "Manage all access reviews that user can access", + "id": "e4aa47b9-9a69-4109-82ed-36ec70d85ff1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Manage access reviews that you can access", + "value": "AccessReview.ReadWrite.All" + }, + { + "description": "Allows the app to read programs and program controls that the signed-in user has access to in the organization.", + "displayName": "Read all programs that user can access", + "id": "c492a2e1-2f8f-4caa-b076-99bbf6e40fe4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read information on programs and program controls that you have access to.", + "userConsentDisplayName": "Read programs that you can access", + "value": "ProgramControl.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on programs and program controls that the signed-in user has access to in the organization.", + "displayName": "Manage all programs that user can access", + "id": "50fd364f-9d93-4ae1-b170-300e87cccf84", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on programs and program controls that you have access to.", + "userConsentDisplayName": "Manage programs that you can access", + "value": "ProgramControl.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete apps in the app catalogs.", + "displayName": "Read and write to all app catalogs", + "id": "1ca167d5-1655-44a1-8adf-1414072e1ef9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete apps in the app catalogs.", + "userConsentDisplayName": "Read and write to all app catalogs", + "value": "AppCatalog.ReadWrite.All" + }, + { + "description": "Allows the app to request and manage just in time elevation (including scheduled elevation) of users to Azure AD built-in administrative roles, on behalf of signed-in users.", + "displayName": "Read and write privileged access to Azure AD", + "id": "3c3c74f5-cdaa-4a97-b7e0-4e788bfcfb37", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage just in time elevation (including scheduled elevation) of users to Azure AD built-in administrative roles, on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure AD", + "value": "PrivilegedAccess.ReadWrite.AzureAD" + }, + { + "description": "Allows the app to read terms of use agreements on behalf of the signed-in user.", + "displayName": "Read all terms of use agreements", + "id": "af2819c9-df71-4dd3-ade7-4d7c9dc653b7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read terms of use agreements on your behalf.", + "userConsentDisplayName": "Read all terms of use agreements", + "value": "Agreement.Read.All" + }, + { + "description": "Allows the app to read and write terms of use agreements on behalf of the signed-in user.", + "displayName": "Read and write all terms of use agreements", + "id": "ef4b5d93-3104-4664-9053-a5c49ab44218", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write terms of use agreements on your behalf.", + "userConsentDisplayName": "Read and write all terms of use agreements", + "value": "Agreement.ReadWrite.All" + }, + { + "description": "Allows the app to read terms of use acceptance statuses on behalf of the signed-in user.", + "displayName": "Read user terms of use acceptance statuses", + "id": "0b7643bb-5336-476f-80b5-18fbfbc91806", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your terms of use acceptance statuses.", + "userConsentDisplayName": "Read your terms of use acceptance statuses", + "value": "AgreementAcceptance.Read" + }, + { + "description": "Allows the app to read terms of use acceptance statuses on behalf of the signed-in user.", + "displayName": "Read terms of use acceptance statuses that user can access", + "id": "a66a5341-e66e-4897-9d52-c2df58c2bfb9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read terms of use acceptance statuses on your behalf.", + "userConsentDisplayName": "Read all terms of use acceptance statuses", + "value": "AgreementAcceptance.Read.All" + }, + { + "description": "Read activity data for your organization", + "displayName": "Allows the application to read activity data for your organization.", + "id": "594c1fb6-4f81-4475-ae41-0c394909246c", + "Origin": "Delegated (Office 365 Management)", + "userConsentDescription": "Read activity data for your organization", + "userConsentDisplayName": "Allows the application to read activity data for your organization.", + "value": "ActivityFeed.Read" + }, + { + "description": "Allows the app to read and query your audit log activities, on behalf of the signed-in user.", + "displayName": "Read audit log data", + "id": "e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and query your audit log activities, on your behalf.", + "userConsentDisplayName": "Read audit log data", + "value": "AuditLog.Read.All" + }, + { + "description": "Allows the app to read and report the signed-in user's activity in the app.", + "displayName": "Read and write app activity to users' activity feed", + "id": "47607519-5fb1-47d9-99c7-da4b48f369b1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and report your activity in the app.", + "userConsentDisplayName": "Read and write app activity to your activity feed", + "value": "UserActivity.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "displayName": "Read Microsoft Intune Device Configuration and Policies", + "id": "f1493658-876a-4c87-8fa7-edb559b3476a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "userConsentDisplayName": "Read Microsoft Intune Device Configuration and Policies", + "value": "DeviceManagementConfiguration.Read.All" + }, + { + "description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "displayName": "Read and write Microsoft Intune Device Configuration and Policies", + "id": "0883f392-0a7a-443d-8c76-16a6d39c7b63", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "userConsentDisplayName": "Read and write Microsoft Intune Device Configuration and Policies", + "value": "DeviceManagementConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "displayName": "Read Microsoft Intune apps", + "id": "4edf5f54-4666-44af-9de9-0144fb4b6e8c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "userConsentDisplayName": "Read Microsoft Intune apps", + "value": "DeviceManagementApps.Read.All" + }, + { + "description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "displayName": "Read and write Microsoft Intune apps", + "id": "7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "userConsentDisplayName": "Read and write Microsoft Intune apps", + "value": "DeviceManagementApps.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "displayName": "Read Microsoft Intune RBAC settings", + "id": "49f0cc30-024c-4dfd-ab3e-82e137ee5431", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "userConsentDisplayName": "Read Microsoft Intune RBAC settings", + "value": "DeviceManagementRBAC.Read.All" + }, + { + "description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "displayName": "Read and write Microsoft Intune RBAC settings", + "id": "0c5e8a55-87a6-4556-93ab-adc52c4d862d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "userConsentDisplayName": "Read and write Microsoft Intune RBAC settings", + "value": "DeviceManagementRBAC.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties of devices managed by Microsoft Intune.", + "displayName": "Read Microsoft Intune devices", + "id": "314874da-47d6-4978-88dc-cf0d37f0bb82", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties of devices managed by Microsoft Intune.", + "userConsentDisplayName": "Read devices Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.Read.All" + }, + { + "description": "Allows the app to read and write the properties of devices managed by Microsoft Intune. Does not allow high impact operations such as remote wipe and password reset on the device\u2019s owner.", + "displayName": "Read and write Microsoft Intune devices", + "id": "44642bfe-8385-4adc-8fc6-fe3cb2c375c3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties of devices managed by Microsoft Intune. Does not allow high impact operations such as remote wipe and password reset on the device\u2019s owner.", + "userConsentDisplayName": "Read and write Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.ReadWrite.All" + }, + { + "description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune.", + "displayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "id": "3404d2bf-2b13-457e-a330-c24615765193", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune.", + "userConsentDisplayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.PrivilegedOperations.All" + }, + { + "description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "displayName": "Read and write Microsoft Intune configuration", + "id": "662ed50a-ac44-4eef-ad86-62eed9be2a29", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "userConsentDisplayName": "Read and write Microsoft Intune configuration", + "value": "DeviceManagementServiceConfig.ReadWrite.All" + }, + { + "description": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "displayName": "Read Microsoft Intune configuration", + "id": "8696daa5-bce5-4b2e-83f9-51b6defc4e1e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "userConsentDisplayName": "Read Microsoft Intune configuration", + "value": "DeviceManagementServiceConfig.Read.All" + }, + { + "description": "Allows the app to read your organization\u2019s security events on behalf of the signed-in user.", + "displayName": "Read your organization\u2019s security events", + "id": "64733abd-851e-478a-bffb-e47a14b18235", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization\u2019s security events on your behalf.", + "userConsentDisplayName": "Read your organization\u2019s security events", + "value": "SecurityEvents.Read.All" + }, + { + "description": "Allows the app to read your organization\u2019s security events on behalf of the signed-in user. Also allows the app to update editable properties in security events on behalf of the signed-in user.", + "displayName": "Read and update your organization\u2019s security events", + "id": "6aedf524-7e1c-45a7-bd76-ded8cab8d0fc", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization\u2019s security events on your behalf. Also allows you to update editable properties in security events.", + "userConsentDisplayName": "Read and update your organization\u2019s security events", + "value": "SecurityEvents.ReadWrite.All" + }, + { + "description": "Allows the app to read a scored list of relevant people of the signed-in user or other users in the signed-in user's organization. The list can include local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read all users' relevant people lists", + "id": "b89f9189-71a5-4e70-b041-9887f0bc7e4a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read a list of people in the order that is most relevant to you. Allows the app to read a list of people in the order that is most relevant to another user in your organization. These can include local contacts, contacts from social networking, people listed in your organization\u2019s directory, and people from recent communications.", + "userConsentDisplayName": "Read all users\u2019 relevant people lists", + "value": "People.Read.All" + }, + { + "description": "Manage the state and settings of all Microsoft education apps on behalf of the user.", + "displayName": "Manage education app settings", + "id": "63589852-04e3-46b4-bae9-15d5b1050748", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage the state and settings of all Microsoft education apps on your behalf.", + "userConsentDisplayName": "Manage your education app settings", + "value": "EduAdministration.ReadWrite" + }, + { + "description": "Read the state and settings of all Microsoft education apps on behalf of the user.", + "displayName": "Read education app settings", + "id": "8523895c-6081-45bf-8a5d-f062a2f12c9f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view the state and settings of all Microsoft education apps on your behalf.", + "userConsentDisplayName": "View your education app settings", + "value": "EduAdministration.Read" + }, + { + "description": "Allows the app to read and write assignments and their grades on behalf of the user.", + "displayName": "Read and write users' class assignments and their grades", + "id": "2f233e90-164b-4501-8bce-31af2559a2d3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify your assignments on your behalf including \u00a0grades.", + "userConsentDisplayName": "View and modify your assignments and grades", + "value": "EduAssignments.ReadWrite" + }, + { + "description": "Allows the app to read assignments and their grades on behalf of the user.", + "displayName": "Read users' class assignments and their grades", + "id": "091460c9-9c4a-49b2-81ef-1f3d852acce2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view your assignments on your behalf including grades.", + "userConsentDisplayName": "View your assignments and grades", + "value": "EduAssignments.Read" + }, + { + "description": "Allows the app to read and write assignments without grades on behalf of the user.", + "displayName": "Read and write users' class assignments without grades", + "id": "2ef770a1-622a-47c4-93ee-28d6adbed3a0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify your assignments on your behalf without seeing grades.", + "userConsentDisplayName": "View and modify your assignments without grades", + "value": "EduAssignments.ReadWriteBasic" + }, + { + "description": "Allows the app to read assignments without grades on behalf of the user.", + "displayName": "Read users' class assignments without grades", + "id": "c0b0103b-c053-4b2e-9973-9f3a544ec9b8", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view your assignments on your behalf without seeing grades.", + "userConsentDisplayName": "View your assignments without grades", + "value": "EduAssignments.ReadBasic" + }, + { + "description": "Allows the app to read and write the structure of schools and classes in an organization's roster and education-specific information about users to be read and written on behalf of the user.", + "displayName": "Read and write users' view of the roster", + "id": "359e19a6-e3fa-4d7f-bcab-d28ec592b51e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify information about schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View and modify your school, class and user information", + "value": "EduRoster.ReadWrite" + }, + { + "description": "Allows the app to read the structure of schools and classes in an organization's roster and education-specific information about users to be read on behalf of the user.", + "displayName": "Read users' view of the roster", + "id": "a4389601-22d9-4096-ac18-36a927199112", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view information about schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View your school, class and user information", + "value": "EduRoster.Read" + }, + { + "description": "Allows the app to read a limited subset of the properties from the structure of schools and classes in an organization's roster and a limited subset of properties about users to be read on behalf of the user.\u00a0Includes name, status, education role, email address and photo.", + "displayName": "Read a limited subset of users' view of the roster", + "id": "5d186531-d1bf-4f07-8cea-7c42119e1bd9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view minimal \u00a0information about both schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View a limited subset of your school, class and user information", + "value": "EduRoster.ReadBasic" + }, + { + "description": "Allows the app to report the signed-in user's app activity information to Microsoft Timeline.", + "displayName": "Write app activity to users' timeline", + "id": "367492fc-594d-4972-a9b5-0d58c622c91c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to report your app activity information to Microsoft Timeline.", + "userConsentDisplayName": "Write app activity to your timeline", + "value": "UserTimelineActivity.Write.CreatedByApp" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings. Does not include permission to send mail.", + "displayName": "Read and write user mailbox settings", + "id": "818c620a-27a9-40bd-a6a5-d96f7d610b4b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete your mailbox settings.", + "userConsentDisplayName": "Read and write to your mailbox settings", + "value": "MailboxSettings.ReadWrite" + }, + { + "description": "Allows the app to launch another app or communicate with another app on a user's device on behalf of the signed-in user.", + "displayName": "Communicate with user devices", + "id": "bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to launch another app or communicate with another app on a device that you own.", + "userConsentDisplayName": "Communicate with your other devices", + "value": "Device.Command" + }, + { + "description": "Allows the app to read a user's list of devices on behalf of the signed-in user.", + "displayName": "Read user devices", + "id": "11d4cd79-5ba5-460f-803f-e22c8ab85ccd", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to see your list of devices.", + "userConsentDisplayName": "View your list of devices", + "value": "Device.Read" + }, + { + "description": "Allows the app to read, share, and modify OneNote notebooks that the signed-in user has access to in the organization.", + "displayName": "Read and write all OneNote notebooks that user can access", + "id": "64ac0503-b4fa-45d9-b544-71a463f05da0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, share, and modify all the OneNote notebooks that you have access to.", + "userConsentDisplayName": "Read and write all OneNote notebooks that you can access", + "value": "Notes.ReadWrite.All" + }, + { + "description": "Allows the app to read OneNote notebooks that the signed-in user has access to in the organization.", + "displayName": "Read all OneNote notebooks that user can access", + "id": "dfabfca6-ee36-4db2-8208-7a28381419b3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all the OneNote notebooks that you have access to.", + "userConsentDisplayName": "Read all OneNote notebooks that you can access", + "value": "Notes.Read.All" + }, + { + "description": "Allows the app to read, share, and modify OneNote notebooks on behalf of the signed-in user.", + "displayName": "Read and write user OneNote notebooks", + "id": "615e26af-c38a-4150-ae3e-c3b0d4cb1d6a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, share, and modify OneNote notebooks on your behalf.", + "userConsentDisplayName": "Read and write your OneNote notebooks", + "value": "Notes.ReadWrite" + }, + { + "description": "Allows the app to read OneNote notebooks on behalf of the signed-in user.", + "displayName": "Read user OneNote notebooks", + "id": "371361e4-b9e2-4a3f-8315-2a301a3b0a3d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read OneNote notebooks on your behalf.", + "userConsentDisplayName": "Read your OneNote notebooks", + "value": "Notes.Read" + }, + { + "description": "This is deprecated! Do not use! This permission no longer has any effect. You can safely consent to it. No additional privileges will be granted to the app.", + "displayName": "Limited notebook access (deprecated)", + "id": "ed68249d-017c-4df5-9113-e684c7f8760b", + "Origin": "Delegated", + "userConsentDescription": "This permission no longer has any effect. You can safely consent to it. No additional privileges will be granted to the app.", + "userConsentDisplayName": "Limited access to your OneNote notebooks for this app (preview)", + "value": "Notes.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read the titles of OneNote notebooks and sections and to create new pages, notebooks, and sections on behalf of the signed-in user.", + "displayName": "Create user OneNote notebooks", + "id": "9d822255-d64d-4b7a-afdb-833b9a97ed02", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to view the titles of your OneNote notebooks and sections and to create new pages, notebooks, and sections on your behalf.", + "userConsentDisplayName": "Create your OneNote notebooks", + "value": "Notes.Create" + }, + { + "description": "Allows the app to invite guest users to the organization, on behalf of the signed-in user.", + "displayName": "Invite guest users to the organization", + "id": "63dd7cd9-b489-4adf-a28c-ac38b9a0f962", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to invite guest users to the organization, on your behalf.", + "userConsentDisplayName": "Invite guest users to the organization", + "value": "User.Invite.All" + }, + { + "description": "Allows the app to the read user's mailbox settings. Does not include permission to send mail.", + "displayName": "Read user mailbox settings", + "id": "87f447af-9fa4-4c32-9dfa-4a57a73d18ce", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your mailbox settings.", + "userConsentDisplayName": "Read your mailbox settings", + "value": "MailboxSettings.Read" + }, + { + "description": "(Preview) Allows the app to read files that the user selects. The app has access for several hours after the user selects a file.", + "displayName": "Read files that the user selects (preview)", + "id": "5447fe39-cb82-4c1a-b977-520e67e724eb", + "Origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read files that you select. After you select a file, the app has access to the file for several hours.", + "userConsentDisplayName": "Read selected files", + "value": "Files.Read.Selected" + }, + { + "description": "(Preview) Allows the app to read and write files that the user selects. The app has access for several hours after the user selects a file.", + "displayName": "Read and write files that the user selects (preview)", + "id": "17dde5bd-8c17-420f-a486-969730c1b827", + "Origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read and write files that you select. After you select a file, the app has access to the file for several hours.", + "userConsentDisplayName": "Read and write selected files", + "value": "Files.ReadWrite.Selected" + }, + { + "description": "(Preview) Allows the app to read, create, update and delete files in the application's folder.", + "displayName": "Have full access to the application's folder (preview)", + "id": "8019c312-3263-48e6-825e-2b833497195b", + "Origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read, create, update and delete files in the application's folder.", + "userConsentDisplayName": "Have full access to the application's folder", + "value": "Files.ReadWrite.AppFolder" + }, + { + "description": "Allows an app to read all service usage reports on behalf of the signed-in user. Services that provide usage reports include Office 365 and Azure Active Directory.", + "displayName": "Read all usage reports", + "id": "02e97553-ed7b-43d0-ab3c-f8bace0d040c", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read all service usage reports on your behalf. Services that provide usage reports include Office 365 and Azure Active Directory.", + "userConsentDisplayName": "Read all usage reports", + "value": "Reports.Read.All" + }, + { + "description": "Allows the application to edit or delete documents and list items in all site collections on behalf of the signed-in user.", + "displayName": "Edit or delete items in all site collections", + "id": "89fe6a52-be36-487e-b7d8-d061c450a026", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to edit or delete documents and list items in all site collections on your behalf.", + "userConsentDisplayName": "Edit or delete items in all site collections", + "value": "Sites.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete tasks a user has permissions to, including their own and shared tasks.", + "displayName": "Read and write user and shared tasks", + "id": "c5ddf11b-c114-4886-8558-8a4e557cd52b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete tasks you have permissions to access, including your own and shared tasks.", + "userConsentDisplayName": "Read and write to your and shared tasks", + "value": "Tasks.ReadWrite.Shared" + }, + { + "description": "Allows the app to read tasks a user has permissions to access, including their own and shared tasks.", + "displayName": "Read user and shared tasks", + "id": "88d21fd4-8e5a-4c32-b5e2-4a1c95f34f72", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read tasks you have permissions to access, including your own and shared tasks.", + "userConsentDisplayName": "Read your and shared tasks", + "value": "Tasks.Read.Shared" + }, + { + "description": "Allows the app to create, read, update, and delete contacts a user has permissions to, including their own and shared contacts.", + "displayName": "Read and write user and shared contacts", + "id": "afb6c84b-06be-49af-80bb-8f3f77004eab", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete contacts you have permissions to access, including your own and shared contacts.", + "userConsentDisplayName": "Read and write to your and shared contacts", + "value": "Contacts.ReadWrite.Shared" + }, + { + "description": "Allows the app to read contacts a user has permissions to access, including their own and shared contacts.", + "displayName": "Read user and shared contacts", + "id": "242b9d9e-ed24-4d09-9a52-f43769beb9d4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read contacts you have permissions to access, including your own and shared contacts.", + "userConsentDisplayName": "Read your and shared contacts", + "value": "Contacts.Read.Shared" + }, + { + "description": "Allows the app to create, read, update and delete events in all calendars in the organization user has permissions to access. This includes delegate and shared calendars.", + "displayName": "Read and write user and shared calendars", + "id": "12466101-c9b8-439a-8589-dd09ee67e8e9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete events in all calendars in your organization you have permissions to access. This includes delegate and shared calendars.", + "userConsentDisplayName": "Read and write to your and shared calendars", + "value": "Calendars.ReadWrite.Shared" + }, + { + "description": "Allows the app to read events in all calendars that the user can access, including delegate and shared calendars.", + "displayName": "Read user and shared calendars", + "id": "2b9c4092-424d-4249-948d-b43879977640", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read events in all calendars that you can access, including delegate and shared calendars.\u00a0", + "userConsentDisplayName": "Read calendars\u00a0you can access", + "value": "Calendars.Read.Shared" + }, + { + "description": "Allows the app to send mail as the signed-in user, including sending on-behalf of others.", + "displayName": "Send mail on behalf of others", + "id": "a367ab51-6b49-43bf-a716-a1fb06d2a174", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send mail as you or on-behalf of someone else.", + "userConsentDisplayName": "Send mail on behalf of others or yourself", + "value": "Mail.Send.Shared" + }, + { + "description": "Allows the app to create, read, update, and delete mail a user has permission to access, including their own and shared mail. Does not include permission to send mail.", + "displayName": "Read and write user and shared mail", + "id": "5df07973-7d5d-46ed-9847-1271055cbd51", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete mail you have permission to access, including your own and shared mail. Does not allow the app to send mail on your behalf.", + "userConsentDisplayName": "Read and write mail\u00a0you can access", + "value": "Mail.ReadWrite.Shared" + }, + { + "description": "Allows the app to read mail a user can access, including their own and shared mail.", + "displayName": "Read user and shared mail", + "id": "7b9103a5-4610-446b-9670-80643382c1fa", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read mail you can access, including shared mail.", + "userConsentDisplayName": "Read mail you can access", + "value": "Mail.Read.Shared" + }, + { + "description": "Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.", + "displayName": "Sign in and read user profile", + "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d", + "Origin": "Delegated", + "userConsentDescription": "Allows you to sign in to the app with your organizational account and let the app read your profile. It also allows the app to read basic company information.", + "userConsentDisplayName": "Sign you in and read your profile", + "value": "User.Read" + }, + { + "description": "Allows the app to read your profile. It also allows the app to update your profile information on your behalf.", + "displayName": "Read and write access to user profile", + "id": "b4e74841-8e56-480b-be8b-910348b18b4c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your profile, and discover your group membership, reports and manager. It also allows the app to update your profile information on your behalf.", + "userConsentDisplayName": "Read and update your profile", + "value": "User.ReadWrite" + }, + { + "description": "Allows the app to read a basic set of profile properties of other users in your organization on behalf of the signed-in user. This includes display name, first and last name, email address and photo.", + "displayName": "Read all users' basic profiles", + "id": "b340eb25-3456-403f-be2f-af7a0d370277", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read a basic set of profile properties of other users in your organization on your behalf. Includes display name, first and last name, email address and photo.", + "userConsentDisplayName": "Read all users' basic profiles", + "value": "User.ReadBasic.All" + }, + { + "description": "Allows the app to read the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user.", + "displayName": "Read all users' full profiles", + "id": "a154be20-db9c-4678-8ab7-66f6cc099a59", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the full set of profile properties, reports, and managers of other users in your organization, on your behalf.", + "userConsentDisplayName": "Read all users' full profiles", + "value": "User.Read.All" + }, + { + "description": "Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user.", + "displayName": "Read and write all users' full profiles", + "id": "204e0828-b5ca-4ad8-b9f3-f32a958e7cc4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on your behalf.", + "userConsentDisplayName": "Read and write all users' full profiles", + "value": "User.ReadWrite.All" + }, + { + "description": "Allows the app to list groups, and to read their properties and all group memberships on behalf of the signed-in user. Also allows the app to read calendar, conversations, files, and other group content for all groups the signed-in user can access. ", + "displayName": "Read all groups", + "id": "5f8c59db-677d-491f-a6b8-5f174b11ec1d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, and to read their properties and all group memberships on your behalf. Also allows the app to read calendar, conversations, files, and other group content for all groups you can access. ", + "userConsentDisplayName": "Read all groups", + "value": "Group.Read.All" + }, + { + "description": "Allows the app to create groups and read all group properties and memberships on behalf of the signed-in user. Additionally allows group owners to manage their groups and allows group members to update group content.", + "displayName": "Read and write all groups", + "id": "4e46008b-f24c-477d-8fff-7bb4ec7aafe0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create groups and read all group properties and memberships on your behalf. Additionally allows the app to manage your groups and to update group content for groups you are a member of.", + "userConsentDisplayName": "Read and write all groups", + "value": "Group.ReadWrite.All" + }, + { + "description": "Allows the app to read data in your organization's directory, such as users, groups and apps.", + "displayName": "Read directory data", + "id": "06da0dbc-49e2-44d2-8312-53f166ab848a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read data in your organization's directory.", + "userConsentDisplayName": "Read directory data", + "value": "Directory.Read.All" + }, + { + "description": "Allows the app to read and write data in your organization's directory, such as users, and groups. It does not allow the app to delete users or groups, or reset user passwords.", + "displayName": "Read and write directory data", + "id": "c5366453-9fb0-48a5-a156-24f0c49a4b84", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write data in your organization's directory, such as other users, groups. It does not allow the app to delete users or groups, or reset user passwords.", + "userConsentDisplayName": "Read and write directory data", + "value": "Directory.ReadWrite.All" + }, + { + "description": "Allows the app to have the same access to information in the directory as the signed-in user.", + "displayName": "Access directory as the signed in user", + "id": "0e263e50-5827-48a4-b97c-d940288653c7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to have the same access to information in your work or school directory as you do.", + "userConsentDisplayName": "Access the directory as you", + "value": "Directory.AccessAsUser.All" + }, + { + "description": "Allows the app to create, read, update, and delete email in user mailboxes. Does not include permission to send mail. ", + "displayName": "Read and write access to user mail ", + "id": "024d486e-b451-40bb-833d-3e66d98c5c73", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail. ", + "userConsentDisplayName": "Read and write access to your mail ", + "value": "Mail.ReadWrite" + }, + { + "description": "Allows the app to send mail as users in the organization. ", + "displayName": "Send mail as a user ", + "id": "e383f46e-2787-4529-855e-0e479a3ffac0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send mail as you. ", + "userConsentDisplayName": "Send mail as you ", + "value": "Mail.Send" + }, + { + "description": "Allows the app to read events in user calendars . ", + "displayName": "Read user calendars ", + "id": "465a38f9-76ea-45b9-9f34-9e8b0d4b0b42", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read events in your calendars. ", + "userConsentDisplayName": "Read your calendars ", + "value": "Calendars.Read" + }, + { + "description": "Allows the app to create, read, update, and delete events in user calendars. ", + "displayName": "Have full access to user calendars ", + "id": "1ec239c2-d7c9-4623-a91a-a9775856bb36", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete events in your calendars. ", + "userConsentDisplayName": "Have full access to your calendars ", + "value": "Calendars.ReadWrite" + }, + { + "description": "Allows the app to read user contacts. ", + "displayName": "Read user contacts ", + "id": "ff74d97f-43af-4b68-9f2a-b77ee6968c5d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read contacts in your contact folders. ", + "userConsentDisplayName": "Read your contacts ", + "value": "Contacts.Read" + }, + { + "description": "Allows the app to create, read, update, and delete user contacts. ", + "displayName": "Have full access to user contacts ", + "id": "d56682ec-c09e-4743-aaf4-1a3aac4caa21", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete contacts in your contact folders. ", + "userConsentDisplayName": "Have full access of your contacts ", + "value": "Contacts.ReadWrite" + }, + { + "description": "Allows the app to read the signed-in user's files.", + "displayName": "Read user files", + "id": "10465720-29dd-4523-a11a-6a75c743c9d9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your files.", + "userConsentDisplayName": "Read your files", + "value": "Files.Read" + }, + { + "description": "Allows the app to read, create, update and delete the signed-in user's files.", + "displayName": "Have full access to user files", + "id": "5c28f0bf-8a70-41f1-8ab2-9032436ddb65", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, update, and delete your files.", + "userConsentDisplayName": "Have full access to your files", + "value": "Files.ReadWrite" + }, + { + "description": "Allows the app to read all files the signed-in user can access.", + "displayName": "Read all files that user can access", + "id": "df85f4d6-205c-4ac5-a5ea-6bf408dba283", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all files you can access.", + "userConsentDisplayName": "Read all files that you have access to", + "value": "Files.Read.All" + }, + { + "description": "Allows the app to read, create, update and delete all files the signed-in user can access.", + "displayName": "Have full access to all files user can access", + "id": "863451e7-0667-486c-a5d6-d135439485f0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, update and delete all files that you can access.", + "userConsentDisplayName": "Have full access to all files you have access to", + "value": "Files.ReadWrite.All" + }, + { + "description": "Allows the application to read documents and list items in all site collections on behalf of the signed-in user", + "displayName": "Read items in all site collections", + "id": "205e70e5-aba6-4c52-a976-6d2d46c48043", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to read documents and list items in all site collections on your behalf", + "userConsentDisplayName": "Read items in all site collections", + "value": "Sites.Read.All" + }, + { + "description": "Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.", + "displayName": "Sign users in", + "id": "37f7f235-527c-4136-accd-4a02d197296e", + "Origin": "Delegated", + "userConsentDescription": "Allows you to sign in to the app with your work or school account and allows the app to read your basic profile information.", + "userConsentDisplayName": "Sign in as you", + "value": "openid" + }, + { + "description": "Allows the app to read your users' primary email address", + "displayName": "View users' email address", + "id": "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your primary email address", + "userConsentDisplayName": "View your email address", + "value": "email" + }, + { + "description": "Allows the app to read identity risk event information for all users in your organization on behalf of the signed-in user. ", + "displayName": "Read identity risk event information", + "id": "8f6a01e7-0391-4ee5-aa22-a3af122cef27", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read identity risk event information for all users in your organization on behalf of the signed-in user. ", + "userConsentDisplayName": "Read identity risk event information", + "value": "IdentityRiskEvent.Read.All" + }, + { + "description": "Allows the app to read the memberships of hidden groups and administrative units on behalf of the signed-in user, for those hidden groups and administrative units that the signed-in user has access to.", + "displayName": "Read hidden memberships", + "id": "f6a3db3e-f7e8-4ed2-a414-557c8c9830be", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the memberships of hidden groups or administrative units on your behalf, for those hidden groups or adminstrative units that you have access to.", + "userConsentDisplayName": "Read your hidden memberships", + "value": "Member.Read.Hidden" + }, + { + "description": "Allows the app to read a ranked list of relevant people of the signed-in user. The list includes local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read users' relevant people lists", + "id": "ba47897c-39ec-4d83-8086-ee8256fa737d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read a list of people in the order that's most relevant to you. This includes your local contacts, your contacts from social networking, people listed in your organization's directory, and people from recent communications.", + "userConsentDisplayName": "Read your relevant people list", + "value": "People.Read" + }, + { + "description": "Allows the application to create or delete document libraries and lists in all site collections on behalf of the signed-in user.", + "displayName": "Create, edit, and delete items and lists in all site collections", + "id": "65e50fdc-43b7-4915-933e-e8138f11f40a", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to create or delete document libraries and lists in all site collections on your behalf.", + "userConsentDisplayName": "Create, edit, and delete items and lists in all your site collections", + "value": "Sites.Manage.All" + }, + { + "description": "Allows the application to have full control of all site collections on behalf of the signed-in user.", + "displayName": "Have full control of all site collections", + "id": "5a54b8b3-347c-476d-8f8e-42d5c7424d29", + "Origin": "Delegated", + "userConsentDescription": "Allow the application to have full control of all site collections on your behalf.", + "userConsentDisplayName": "Have full control of all your site collections", + "value": "Sites.FullControl.All" + }, + { + "description": "Allows the app to read and write your organization\u2019s identity (authentication) providers\u2019 properties on behalf of the user.", + "displayName": "Read and write identity providers", + "id": "f13ce604-1677-429f-90bd-8a10b9f01325", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization\u2019s identity (authentication) providers\u2019 properties on your behalf.", + "userConsentDisplayName": "Read and write identity providers", + "value": "IdentityProvider.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization\u2019s identity (authentication) providers\u2019 properties on behalf of the user.", + "displayName": "Read identity providers", + "id": "43781733-b5a7-4d1b-98f4-e8edff23e1a9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization\u2019s identity (authentication) providers\u2019 properties on your behalf.", + "userConsentDisplayName": "Read identity providers", + "value": "IdentityProvider.Read.All" + }, + { + "description": "Allows an app to read bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user.", + "displayName": "Read bookings information", + "id": "33b1df99-4b29-4548-9339-7a7b83eaeebc", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read bookings appointments, businesses, customers, services, and staff on your behalf.", + "userConsentDisplayName": "Read bookings information", + "value": "Bookings.Read.All" + }, + { + "description": "Allows an app to read and write bookings appointments and customers, and additionally allows read businesses information, services, and staff on behalf of the signed-in user.", + "displayName": "Read and write booking appointments", + "id": "02a5a114-36a6-46ff-a102-954d89d9ab02", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read and write bookings appointments and customers, and additionally allows read businesses information, services, and staff on your behalf.", + "userConsentDisplayName": "Read and write booking appointments", + "value": "BookingsAppointment.ReadWrite.All" + }, + { + "description": "Allows an app to read and write bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user. Does not allow create, delete and publish of booking businesses.", + "displayName": "Read and write bookings information", + "id": "948eb538-f19d-4ec5-9ccc-f059e1ea4c72", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read and write Bookings appointments, businesses, customers, services, and staff on your behalf. Does not allow create, delete and publish of booking businesses.", + "userConsentDisplayName": "Read and write bookings information", + "value": "Bookings.ReadWrite.All" + }, + { + "description": "Allows an app to read, write and manage bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user.", + "displayName": "Manage bookings information", + "id": "7f36b48e-542f-4d3b-9bcb-8406f0ab9fdb", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read, write and manage bookings appointments, businesses, customers, services, and staff on your behalf.", + "userConsentDisplayName": "Manage bookings information", + "value": "Bookings.Manage.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via Exchange ActiveSync.", + "displayName": "Access mailboxes via Exchange ActiveSync", + "id": "ff91d191-45a0-43fd-b837-bd682c4a0b0f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app full access to your mailboxes on your behalf.", + "userConsentDisplayName": "Access your mailboxes", + "value": "EAS.AccessAsUser.All" + }, + { + "description": "Allows the app to read and write financials data on behalf of the signed-in user.", + "displayName": "Read and write financials data", + "id": "f534bf13-55d4-45a9-8f3c-c92fe64d6131", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write financials data on your behalf.", + "userConsentDisplayName": "Read and write financials data", + "value": "Financials.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's user flows, on behalf of the signed-in user.", + "displayName": "Read all identity user flows", + "id": "2903d63d-4611-4d43-99ce-a33f3f52e343", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's user flows, on your behalf.", + "userConsentDisplayName": "Read all identity user flows", + "value": "IdentityUserFlow.Read.All" + }, + { + "description": "Allows the app to read or write your organization's user flows, on behalf of the signed-in user.", + "displayName": "Read and write all identity user flows", + "id": "281892cc-4dbf-4e3a-b6cc-b21029bb4e82", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's user flows, on your behalf.", + "userConsentDisplayName": "Read and write all identity user flows", + "value": "IdentityUserFlow.ReadWrite.All" + }, + { + "description": "Allows the app to read all organizational contacts on behalf of the signed-in user. \u00a0These contacts are managed by the organization and are different from a user's personal contacts.", + "displayName": "Read organizational contacts", + "id": "08432d1b-5911-483c-86df-7980af5cdee0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all organizational contacts on your behalf.\u00a0 These contacts are managed by the organization and are different from your personal contacts.", + "userConsentDisplayName": "Read organizational contacts", + "value": "OrgContact.Read.All" + }, + { + "description": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, on behalf of the signed-in user.", + "displayName": "Manage app permission grants and app role assignments", + "id": "84bccea3-f856-4a8a-967b-dbe0a3d53a64", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, on your behalf.", + "userConsentDisplayName": "Manage app permission grants and app role assignments", + "value": "AppRoleAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), on behalf of the signed in user.", + "displayName": "Manage all delegated permission grants", + "id": "41ce6ca6-6826-4807-84f1-1c82854f7ee5", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), on your behalf. ", + "userConsentDisplayName": "Manage all delegated permission grants", + "value": "DelegatedPermissionGrant.ReadWrite.All" + }, + { + "description": "Allows the app to read online meeting details on behalf of the signed-in user.", + "displayName": "Read user's online meetings", + "id": "9be106e1-f4e3-4df5-bdff-e4bc531cbe43", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read online meeting details on your behalf.", + "userConsentDisplayName": "Read your online meetings", + "value": "OnlineMeetings.Read" + }, + { + "description": "Allows the app to read and create online meetings on behalf of the signed-in user.", + "displayName": "Read and create user's online meetings", + "id": "a65f2972-a4f8-4f5e-afd7-69ccb046d5dc", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and create online meetings on your behalf.", + "userConsentDisplayName": "Read and create your online meetings", + "value": "OnlineMeetings.ReadWrite" + }, + { + "description": "Allows the app to read the signed-in user's teamwork activity feed.", + "displayName": "Read user's teamwork activity feed", + "id": "0e755559-83fb-4b44-91d0-4cc721b9323e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your teamwork activity feed.", + "userConsentDisplayName": "Read your teamwork activity feed", + "value": "TeamsActivity.Read" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation of user privileges to manage Azure resources (like subscriptions, resource groups, storage, compute) on behalf of the signed-in users.", + "displayName": "Read and write privileged access to Azure resources", + "id": "a84a9652-ffd3-496e-a991-22ba5529156a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage time-based assignment and just-in-time elevation of user privileges to manage \u00a0your Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure resources", + "value": "PrivilegedAccess.ReadWrite.AzureResources" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles, on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure AD", + "id": "b3a539c9-59cb-4ad5-825a-041ddbdc2bdb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles, on your behalf.", + "userConsentDisplayName": "Read privileged access to Azure AD", + "value": "PrivilegedAccess.Read.AzureAD" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure AD groups", + "id": "d329c81c-20ad-4772-abf9-3f6fdb7e5988", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read privileged access to Azure AD groups", + "value": "PrivilegedAccess.Read.AzureADGroup" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure resources", + "id": "1d89d70c-dcac-4248-b214-903c457af83a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf.", + "userConsentDisplayName": "Read privileged access to your Azure resources", + "value": "PrivilegedAccess.Read.AzureResources" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read and write privileged access to Azure AD groups", + "id": "32531c59-1f32-461f-b8df-6f8a3b89f73b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure AD groups", + "value": "PrivilegedAccess.ReadWrite.AzureADGroup" + }, + { + "description": "Allows the app to read all the indicators for your organization, on behalf of the signed-in user.", + "displayName": "Read all threat indicators", + "id": "9cc427b4-2004-41c5-aa22-757b755e9796", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all the indicators for your organization, on your behalf.", + "userConsentDisplayName": "Read all threat indicators", + "value": "ThreatIndicators.Read.All" + }, + { + "description": "Allow the app to read external datasets and content, on behalf of the signed-in user.", + "displayName": "Read items in external datasets", + "id": "922f9392-b1b7-483c-a4be-0089be7704fb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read external datasets and content that you have access to.", + "userConsentDisplayName": "Read items in external datasets", + "value": "ExternalItem.Read.All" + }, + { + "description": "Allows an app to edit channel messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Edit user's channel messages", + "id": "2b61aa8a-6d36-4b2f-ac7b-f29867937c53", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to edit channel messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Edit your channel messages", + "value": "ChannelMessage.Edit" + }, + { + "description": "Allows an app to send channel messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Send channel messages", + "id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send channel messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Send channel messages", + "value": "ChannelMessage.Send" + }, + { + "description": "Allows the app to manage organization places (conference rooms and room lists) for calendar events and other applications, on behalf of the signed-in user.", + "displayName": "Read and write organization places", + "id": "4c06a06a-098a-4063-868e-5dfee3827264", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage organization places (conference rooms and room lists) for calendar events and other applications, on your behalf.", + "userConsentDisplayName": "Read and write organization places", + "value": "Place.ReadWrite.All" + }, + { + "description": "Allows the app to request access to and management of access packages and related entitlement management resources on behalf of the signed-in user.", + "displayName": "Read and write entitlement management resources", + "id": "ae7a573d-81d7-432b-ad44-4ed5c9d89038", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to request access to and management of access packages and related entitlement management resources that you have access to.", + "userConsentDisplayName": "Read and write entitlement management resources", + "value": "EntitlementManagement.ReadWrite.All" + }, + { + "description": "Allows the app to send, read, update and delete user\u2019s notifications.", + "displayName": "Deliver and manage user's notifications", + "id": "26e2f3e8-b2a1-47fc-9620-89bb5b042024", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send, read, update and delete your app-specific notifications.", + "userConsentDisplayName": "Deliver and manage your notifications", + "value": "UserNotification.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read applications and service principals on behalf of the signed-in user.", + "displayName": "Read applications", + "id": "c79f8feb-a9db-4090-85f9-90d820caa0eb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read applications and service principals on your behalf.", + "userConsentDisplayName": "Read applications", + "value": "Application.Read.All" + }, + { + "description": "Allows the app to create, read, update and delete applications and service principals on behalf of the signed-in user. Does not allow management of consent grants.", + "displayName": "Read and write all applications", + "id": "bdfbf15f-ee85-4955-8675-146e8e5296b5", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update and delete applications and service principals on your behalf. Does not allow management of consent grants.", + "userConsentDisplayName": "Read and write applications", + "value": "Application.ReadWrite.All" + }, + { + "description": "Allows the app to read BitLocker keys on behalf of the signed-in user, for their owned devices. Allows read of the recovery key.", + "displayName": "Read BitLocker keys", + "id": "b27a61ec-b99c-4d6a-b126-c4375d08ae30", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read BitLocker keys for your owned devices. Allows read of the recovery key.", + "userConsentDisplayName": "Read your BitLocker keys", + "value": "BitlockerKey.Read.All" + }, + { + "description": "Allows the app to read basic BitLocker key properties on behalf of the signed-in user, for their owned devices. Does not allow read of the recovery key itself.", + "displayName": "Read BitLocker keys basic information", + "id": "5a107bfc-4f00-4e1a-b67e-66451267bc68", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read basic BitLocker key properties for your owned devices. Does not allow read of the recovery key itself.", + "userConsentDisplayName": "Read your BitLocker keys basic information", + "value": "BitlockerKey.ReadBasic.All" + }, + { + "description": "Allows the app to list groups, read basic group properties and read membership of all groups the signed-in user has access to.", + "displayName": "Read group memberships", + "id": "bc024368-1153-4739-b217-4326f2e966d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, read basic group properties and read membership of all your groups.", + "userConsentDisplayName": "Read group memberships", + "value": "GroupMember.Read.All" + }, + { + "description": "Allows the app to list groups, read basic properties, read and update the membership of the groups the signed-in user has access to. Group properties and owners cannot be updated and groups cannot be deleted.", + "displayName": "Read and write group memberships", + "id": "f81125ac-d3b7-4573-a3b2-7099cc39df9e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, read basic properties, read and update the membership of your groups. Group properties and owners cannot be updated and groups cannot be deleted.", + "userConsentDisplayName": "Read and write group memberships", + "value": "GroupMember.ReadWrite.All" + }, + { + "description": "Allows an app to read your organization's threat assessment requests on behalf of the signed-in user. Also allows the app to create new requests to assess threats received by your organization on behalf of the signed-in user.", + "displayName": "Read and write threat assessment requests", + "id": "cac97e40-6730-457d-ad8d-4852fddab7ad", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read your organization's threat assessment requests on your behalf. Also allows the app to create new requests to assess threats received by your organization on your behalf.", + "userConsentDisplayName": "Read and write threat assessment requests", + "value": "ThreatAssessment.ReadWrite.All" + }, + { + "description": "Allows the app to read schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on behalf of the signed-in user.", + "displayName": "Read user schedule items", + "id": "fccf6dd8-5706-49fa-811f-69e2e1b585d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on your behalf.", + "userConsentDisplayName": "Read your schedule items", + "value": "Schedule.Read.All" + }, + { + "description": "Allows the app to manage schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on behalf of the signed-in user.", + "displayName": "Read and write user schedule items", + "id": "63f27281-c9d9-4f29-94dd-6942f7f1feb0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on your behalf.", + "userConsentDisplayName": "Read and write your schedule items", + "value": "Schedule.ReadWrite.All" + }, + { + "description": " Allows the app to read and write authentication methods of all users in your organization that the signed-in user has access to. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": "Read and write all users' authentication methods.", + "id": "b7887744-6746-4312-813d-72daeaee7e2d", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write authentication methods of all users you have access to in your organization. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "userConsentDisplayName": "Read and write all users' authentication methods", + "value": "UserAuthenticationMethod.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the signed-in user's authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like the signed-in user's passwords, or to sign-in or otherwise use the signed-in user's authentication methods. ", + "displayName": "Read and write user authentication methods", + "id": "48971fc1-70d7-4245-af77-0beb29b53ee2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your authentication methods, including phone numbers and Authenticator app settings.This does not allow the app to see secret information like your passwords, or to sign-in or otherwise use your authentication methods.", + "userConsentDisplayName": "Read and write your authentication methods", + "value": "UserAuthenticationMethod.ReadWrite" + }, + { + "description": "Allows the app to read authentication methods of all users in your organization that the signed-in user has access to. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": "Read all users' authentication methods", + "id": "aec28ec7-4d02-4e8c-b864-50163aea77eb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read authentication methods of all users you have access to in your organization. Authentication methods include things like a user\u2019s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "userConsentDisplayName": "Read all users' authentication methods", + "value": "UserAuthenticationMethod.Read.All" + }, + { + "description": "Allows the app to read the signed-in user's authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like the signed-in user's passwords, or to sign-in or otherwise use the signed-in user's authentication methods.", + "displayName": "Read user authentication methods.", + "id": "1f6b61c5-2f65-4135-9c9f-31c0f8d32b52", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like your passwords, or to sign-in or otherwise use your authentication methods.", + "userConsentDisplayName": "Read your authentication methods.", + "value": "UserAuthenticationMethod.Read" + }, + { + "description": "Allows the app to create tabs in any team in Microsoft Teams, on behalf of the signed-in user. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "displayName": "Create tabs in Microsoft Teams.", + "id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create tabs in any team in Microsoft Teams, on your behalf. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "userConsentDisplayName": "Create tabs in Microsoft Teams.", + "value": "TeamsTab.Create" + }, + { + "description": "Read the names and settings of tabs inside any team in Microsoft Teams, on behalf of the signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read tabs in Microsoft Teams.", + "id": "59dacb05-e88d-4c13-a684-59f1afc8cc98", + "Origin": "Delegated", + "userConsentDescription": "Read the names and settings of tabs inside any team in Microsoft Teams, on your behalf. This does not give access to the content inside the tabs.", + "userConsentDisplayName": "Read tabs in Microsoft Teams.", + "value": "TeamsTab.Read.All" + }, + { + "description": "Read and write tabs in any team in Microsoft Teams, on behalf of the signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read and write tabs in Microsoft Teams.", + "id": "b98bfd41-87c6-45cc-b104-e2de4f0dafb9", + "Origin": "Delegated", + "userConsentDescription": "Read and write tabs in any team in Microsoft Teams, on your behalf. This does not give access to the content inside the tabs.", + "userConsentDisplayName": "Read and write tabs in Microsoft Teams.", + "value": "TeamsTab.ReadWrite.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via IMAP protocol.", + "displayName": "Read and write access to mailboxes via IMAP.", + "id": "652390e4-393a-48de-9484-05f9b1212954", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail.", + "userConsentDisplayName": "Read and write access to your mail.", + "value": "IMAP.AccessAsUser.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via POP protocol.", + "displayName": "Read and write access to mailboxes via POP.", + "id": "d7b7f2d9-0f45-4ea1-9d42-e50810c06991", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail.", + "userConsentDisplayName": "Read and write access to your mail.", + "value": "POP.AccessAsUser.All" + }, + { + "description": "Allows the app to be able to send emails from the user\u2019s mailbox using the SMTP AUTH client submission protocol.", + "displayName": "Send emails from mailboxes using SMTP AUTH.", + "id": "258f6531-6087-4cc4-bb90-092c5fb3ed3f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to send emails on your behalf from your mailbox.", + "userConsentDisplayName": "Access to sending emails from your mailbox.", + "value": "SMTP.Send" + }, + { + "description": "Allows the app to read all domain properties on behalf of the signed-in user.", + "displayName": "Read domains.", + "id": "2f9ee017-59c1-4f1d-9472-bd5529a7b311", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all domain properties on your behalf.", + "userConsentDisplayName": "Read domains.", + "value": "Domain.Read.All" + }, + { + "description": "Allows the app to read and write all domain properties on behalf of the signed-in user. Also allows the app to add, verify and remove domains.", + "displayName": "Read and write domains", + "id": "0b5d694c-a244-4bde-86e6-eb5cd07730fe", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all domain properties on your behalf. Also allows the app to add, verify and remove domains.", + "userConsentDisplayName": "Read and write domains", + "value": "Domain.ReadWrite.All" + }, + { + "description": "Allows the app to read and write your organization's application configuration policies on behalf of the signed-in user. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "displayName": "Read and write your organization's application configuration policies", + "id": "b27add92-efb2-4f16-84f5-8108ba77985c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's application configuration policies on your behalf. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "userConsentDisplayName": "Read and write your organization's application configuration policies", + "value": "Policy.ReadWrite.ApplicationConfiguration" + }, + { + "description": "Allows the app to read your organization's devices' configuration information on behalf of the signed-in user.", + "displayName": "Read all devices", + "id": "951183d1-1a61-466f-a6d1-1fde911bfd95", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read devices' configuration information on your behalf.", + "userConsentDisplayName": "Read all devices", + "value": "Device.Read.All" + }, + { + "description": "Allows the app to read, update and delete identities that are associated with a user's account that the signed-in user has access to. This controls the identities users can sign-in with.", + "displayName": "Manage user identities", + "id": "637d7bec-b31e-4deb-acc9-24275642a2c9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and delete identities that are associated with a user's account that you have access to. This controls the identities users can sign-in with.", + "userConsentDisplayName": "Manage user identities", + "value": "User.ManageIdentities.All" + }, + { + "description": "Allows the app to read access packages and related entitlement management resources on behalf of the signed-in user.", + "displayName": "Read all entitlement management resources", + "id": "5449aa12-1393-4ea2-a7c7-d0e06c1a56b2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read access packages and related entitlement management resources that you have access to.", + "userConsentDisplayName": "Read all entitlement management resources", + "value": "EntitlementManagement.Read.All" + }, + { + "description": "Create channels in any team, on behalf of the signed-in user.", + "displayName": "Create channels", + "id": "101147cf-4178-4455-9d58-02b5c164e759", + "Origin": "Delegated", + "userConsentDescription": "Create channels in any team, on your behalf.", + "userConsentDisplayName": "Create channels", + "value": "Channel.Create" + }, + { + "description": "Delete channels in any team, on behalf of the signed-in user.", + "displayName": "Delete channels", + "id": "cc83893a-e232-4723-b5af-bd0b01bcfe65", + "Origin": "Delegated", + "userConsentDescription": "Delete channels in any team, on your behalf.", + "userConsentDisplayName": "Delete channels", + "value": "Channel.Delete.All" + }, + { + "description": "Read all channel names, channel descriptions, and channel settings, on behalf of the signed-in user.", + "displayName": "Read the names, descriptions, and settings of channels", + "id": "233e0cf1-dd62-48bc-b65b-b38fe87fcf8e", + "Origin": "Delegated", + "userConsentDescription": "Read all channel names, channel descriptions, and channel settings, on your behalf.", + "userConsentDisplayName": "Read the names, descriptions, and settings of channels", + "value": "ChannelSettings.Read.All" + }, + { + "description": "Read and write the names, descriptions, and settings of all channels, on behalf of the signed-in user.", + "displayName": "Read and write the names, descriptions, and settings of channels", + "id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", + "Origin": "Delegated", + "userConsentDescription": "Read and write the names, descriptions, and settings of all channels, on your behalf.", + "userConsentDisplayName": "Read and write the names, descriptions, and settings of channels", + "value": "ChannelSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read all webhook subscriptions on behalf of the signed-in user.", + "displayName": "Read all webhook subscriptions ", + "id": "5f88184c-80bb-4d52-9ff2-757288b2e9b7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all webhook subscriptions on your behalf.", + "userConsentDisplayName": "Read all webhook subscriptions ", + "value": "Subscription.Read.All" + }, + { + "description": "Read the names and descriptions of teams, on behalf of the signed-in user.", + "displayName": "Read the names and descriptions of teams", + "id": "485be79e-c497-4b35-9400-0e3fa7f2a5d4", + "Origin": "Delegated", + "userConsentDescription": "Read the names and descriptions of teams, on your behalf.", + "userConsentDisplayName": "Read the names and descriptions of teams", + "value": "Team.ReadBasic.All" + }, + { + "description": "Read channel names and channel descriptions, on behalf of the signed-in user.", + "displayName": "Read the names and descriptions of channels", + "id": "9d8982ae-4365-4f57-95e9-d6032a4c0b87", + "Origin": "Delegated", + "userConsentDescription": "Read channel names and channel descriptions, on your behalf.", + "userConsentDisplayName": "Read the names and descriptions of channels", + "value": "Channel.ReadBasic.All" + }, + { + "description": "Read all teams' settings, on behalf of the signed-in user.", + "displayName": "Read teams' settings", + "id": "48638b3c-ad68-4383-8ac4-e6880ee6ca57", + "Origin": "Delegated", + "userConsentDescription": "Read all teams' settings, on your behalf.", + "userConsentDisplayName": "Read teams' settings", + "value": "TeamSettings.Read.All" + }, + { + "description": "Read and change all teams' settings, on behalf of the signed-in user.", + "displayName": "Read and change teams' settings", + "id": "39d65650-9d3e-4223-80db-a335590d027e", + "Origin": "Delegated", + "userConsentDescription": "Read and change all teams' settings, on your behalf.", + "userConsentDisplayName": "Read and change teams' settings", + "value": "TeamSettings.ReadWrite.All" + }, + { + "description": "Read the members of teams, on behalf of the signed-in user.", + "displayName": "Read the members of teams", + "id": "2497278c-d82d-46a2-b1ce-39d4cdde5570", + "Origin": "Delegated", + "userConsentDescription": "Read the members of teams, on your behalf.", + "userConsentDisplayName": "Read the members of teams", + "value": "TeamMember.Read.All" + }, + { + "description": "Add and remove members from teams, on behalf of the signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from teams", + "id": "4a06efd2-f825-4e34-813e-82a57b03d1ee", + "Origin": "Delegated", + "userConsentDescription": "Add and remove members from teams, on your behalf. Also allows changing a member's role, for example from owner to non-owner.", + "userConsentDisplayName": "Add and remove members from teams and channels", + "value": "TeamMember.ReadWrite.All" + }, + { + "description": "Allows the app to read consent requests and approvals on behalf of the signed-in user.", + "displayName": "Read consent requests", + "id": "f3bfad56-966e-4590-a536-82ecf548ac1e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read consent requests and approvals, on your behalf.", + "userConsentDisplayName": "Read consent requests", + "value": "ConsentRequest.Read.All" + }, + { + "description": "Allows the app to read app consent requests and approvals, and deny or approve those requests on behalf of the signed-in user.", + "displayName": "Read and write consent requests", + "id": "497d9dfa-3bd1-481a-baab-90895e54568c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read app consent requests for your approval, and deny or approve those request on your behalf.", + "userConsentDisplayName": "Read and write consent requests", + "value": "ConsentRequest.ReadWrite.All" + }, + { + "description": "Allows the app to read and write your organization's consent requests policy on behalf of the signed-in user.", + "displayName": "Read and write consent request policy", + "id": "4d135e65-66b8-41a8-9f8b-081452c91774", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's consent request policy on your behalf.", + "userConsentDisplayName": "Read and write consent request policy", + "value": "Policy.ReadWrite.ConsentRequest" + }, + { + "description": "Allows the app to read presence information on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read user's presence information", + "id": "76bc735e-aecd-4a1d-8b4c-2b915deabb79", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your presence information on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read your presence information", + "value": "Presence.Read" + }, + { + "description": "Allows the app to read presence information of all users in the directory on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read presence information of all users in your organization", + "id": "9c7a330d-35b3-4aa1-963d-cb2b9f927841", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read presence information of all users in the directory on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read presence information of all users in your organization", + "value": "Presence.Read.All" + }, + { + "description": "Read the members of channels, on behalf of the signed-in user.", + "displayName": "Read the members of channels", + "id": "2eadaff8-0bce-4198-a6b9-2cfc35a30075", + "Origin": "Delegated", + "userConsentDescription": "Read the members of channels, on your behalf.", + "userConsentDisplayName": "Read the members of teams and channels", + "value": "ChannelMember.Read.All" + }, + { + "description": "Add and remove members from channels, on behalf of the signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from channels", + "id": "0c3e411a-ce45-4cd1-8f30-f99a3efa7b11", + "Origin": "Delegated", + "userConsentDescription": "Add and remove members from channels, on your behalf. Also allows changing a member's role, for example from owner to non-owner.", + "userConsentDisplayName": "Add and remove members from teams and channels", + "value": "ChannelMember.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the authentication flow policies, on behalf of the signed-in user. ", + "displayName": "Read and write authentication flow policies", + "id": "edb72de9-4252-4d03-a925-451deef99db7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the authentication flow policies for your tenant, on your behalf.", + "userConsentDisplayName": "Read and write your authentication flow policies", + "value": "Policy.ReadWrite.AuthenticationFlows" + }, + { + "description": "Allows an app to read a channel's messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Read user channel messages", + "id": "767156cb-16ae-4d10-8f8b-41b657c8c8c8", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read a channel's messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read your channel messages", + "value": "ChannelMessage.Read.All" + }, + { + "description": "Allows the app to read the apps in the app catalogs.", + "displayName": "Read all app catalogs", + "id": "88e58d74-d3df-44f3-ad47-e89edf4472e4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read apps in the app catalogs.", + "userConsentDisplayName": "Read all app catalogs", + "value": "AppCatalog.Read.All" + }, + { + "description": "Allows the app to read and write the authentication method policies, on behalf of the signed-in user.\u00a0", + "displayName": "Read and write authentication method policies", + "id": "7e823077-d88e-468f-a337-e18f1f0e6c7c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the authentication method policies for your tenant, on your behalf.", + "userConsentDisplayName": "Read and write your authentication method policies ", + "value": "Policy.ReadWrite.AuthenticationMethod" + }, + { + "description": "Allows the app to read and write your organization's authorization policy on behalf of the signed-in user. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "displayName": "Read and write your organization's authorization policy", + "id": "edd3c878-b384-41fd-95ad-e7407dd775be", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's authorization policy on your behalf. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "userConsentDisplayName": "Read and write your organization's authorization policy", + "value": "Policy.ReadWrite.Authorization" + }, + { + "description": "Allows the app to read policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "displayName": "Read consent and permission grant policies", + "id": "414de6ea-2d92-462f-b120-6e2a809a6d01", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read policies related to consent and permission grants for applications, on your behalf.", + "userConsentDisplayName": "Read consent and permission grant policies", + "value": "Policy.Read.PermissionGrant" + }, + { + "description": "Allows the app to manage policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "displayName": "Manage consent and permission grant policies", + "id": "2672f8bb-fd5e-42e0-85e1-ec764dd2614e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "userConsentDisplayName": "Manage consent and permission grant policies", + "value": "Policy.ReadWrite.PermissionGrant" + }, + { + "description": "Allows the application to create (register) printers on behalf of the signed-in user.\u00a0", + "displayName": "Register printers\u202f\u00a0", + "id": "90c30bed-6fd1-4279-bf39-714069619721", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to create (register) printers on your behalf.\u00a0", + "userConsentDisplayName": "Register printers\u202f\u00a0", + "value": "Printer.Create" + }, + { + "description": "Allows the application to create (register), read, update, and delete (unregister) printers on behalf of the signed-in user.\u00a0", + "displayName": "Register, read, update, and unregister printers", + "id": "93dae4bd-43a1-4a23-9a1a-92957e1d9121", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to create (register), read, update, and delete (unregister) printers on your behalf.\u00a0\u00a0", + "userConsentDisplayName": "Register, read, update, and unregister printers", + "value": "Printer.FullControl.All" + }, + { + "description": "Allows the application to read printers on behalf of the signed-in user.\u00a0", + "displayName": "Read printers", + "id": "3a736c8a-018e-460a-b60c-863b2683e8bf", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read printers on your behalf.\u00a0", + "userConsentDisplayName": "Read printers", + "value": "Printer.Read.All" + }, + { + "description": "Allows the application to read and update printers on behalf of the signed-in user.\u00a0Does not allow creating (registering) or deleting (unregistering) printers.", + "displayName": "Read and update printers", + "id": "89f66824-725f-4b8f-928e-e1c5258dc565", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update printers on your behalf.\u00a0Does not allow creating (registering) or deleting (unregistering) printers.", + "userConsentDisplayName": "Read and update printers", + "value": "Printer.ReadWrite.All" + }, + { + "description": "Allows the application to read printer shares on behalf of the signed-in user.\u00a0", + "displayName": "Read printer shares", + "id": "ed11134d-2f3f-440d-a2e1-411efada2502", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read printer shares on your behalf.\u00a0", + "userConsentDisplayName": "Read printer shares", + "value": "PrinterShare.Read.All" + }, + { + "description": "Allows the application to read and update printer shares on behalf of the signed-in user.\u00a0", + "displayName": "Read and write printer shares", + "id": "06ceea37-85e2-40d7-bec3-91337a46038f", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update printer shares on your behalf.\u00a0", + "userConsentDisplayName": "Read and update printer shares", + "value": "PrinterShare.ReadWrite.All" + }, + { + "description": "Allows the application to read the metadata and document content of print jobs that the signed-in user created.", + "displayName": "Read user's print jobs", + "id": "248f5528-65c0-4c88-8326-876c7236df5e", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata and document content of print jobs that you created.", + "userConsentDisplayName": "Read your print jobs", + "value": "PrintJob.Read" + }, + { + "description": "Allows the application to read the metadata and document content of print jobs on behalf of the signed-in user.\u00a0", + "displayName": "Read print jobs", + "id": "afdd6933-a0d8-40f7-bd1a-b5d778e8624b", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata and document content of print jobs on your behalf.\u00a0", + "userConsentDisplayName": "Read print jobs", + "value": "PrintJob.Read.All" + }, + { + "description": "Allows the application to read the metadata of print jobs that the signed-in user created. Does not allow access to print job document content.", + "displayName": "Read basic information of user's print jobs", + "id": "6a71a747-280f-4670-9ca0-a9cbf882b274", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata of print jobs that you created. Does not allow access to print job document content.", + "userConsentDisplayName": "Read basic information of your print jobs", + "value": "PrintJob.ReadBasic" + }, + { + "description": "Allows the application to read the metadata of print jobs on behalf of the signed-in user.\u00a0Does not allow access to print job document content.", + "displayName": "Read basic information of print jobs", + "id": "04ce8d60-72ce-4867-85cf-6d82f36922f3", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata of print jobs on your behalf.\u00a0Does not allow access to print job document content.", + "userConsentDisplayName": "Read basic information of print jobs", + "value": "PrintJob.ReadBasic.All" + }, + { + "description": "Allows the application to read and update the metadata and document content of print jobs that the signed-in user created.", + "displayName": "Read and write user's print jobs", + "id": "b81dd597-8abb-4b3f-a07a-820b0316ed04", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata and document content of print jobs that you created.", + "userConsentDisplayName": "Read and update your print jobs", + "value": "PrintJob.ReadWrite" + }, + { + "description": "Allows the application to read and update the metadata and document content of print jobs on behalf of the signed-in user.\u00a0", + "displayName": "Read and write print jobs", + "id": "036b9544-e8c5-46ef-900a-0646cc42b271", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata and document content of print jobs on your behalf.\u00a0", + "userConsentDisplayName": "Read and update print jobs", + "value": "PrintJob.ReadWrite.All" + }, + { + "description": "Allows the application to read and update the metadata of print jobs that the signed-in user created. Does not allow access to print job document content.", + "displayName": "Read and write basic information of user's print jobs", + "id": "6f2d22f2-1cb6-412c-a17c-3336817eaa82", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata of print jobs that you created. Does not allow access to print job document content.", + "userConsentDisplayName": "Read and write basic information of your print jobs", + "value": "PrintJob.ReadWriteBasic" + }, + { + "description": "Allows the application to read and update the metadata of print jobs on behalf of the signed-in user.\u00a0Does not allow access to print job document content.", + "displayName": "Read and write basic information of print jobs", + "id": "3a0db2f6-0d2a-4c19-971b-49109b19ad3d", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata of print jobs on your behalf.\u00a0Does not allow access to print job document content.", + "userConsentDisplayName": "Read and write basic information of print jobs", + "value": "PrintJob.ReadWriteBasic.All" + }, + { + "description": "Allows the app to read and write your organization's device configuration policies on behalf of the signed-in user. For example, device registration policy can limit initial provisioning controls using quota restrictions, additional authentication and authorization checks.", + "displayName": "Read and write your organization's device configuration policies", + "id": "40b534c3-9552-4550-901b-23879c90bcf9", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's device configuration policies on your behalf. For example, device registration policy can limit initial provisioning controls using quota restrictions, additional authentication and authorization checks.", + "userConsentDisplayName": "Read and write your organization's device configuration policies", + "value": "Policy.ReadWrite.DeviceConfiguration" + }, + { + "description": "Allows the app to submit application packages to the catalog and cancel submissions that are pending review on behalf of the signed-in user.", + "displayName": "Submit application packages to the catalog and cancel pending submissions", + "id": "3db89e36-7fa6-4012-b281-85f3d9d9fd2e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to submit application packages to the catalog and cancel submissions that are pending review on your behalf.", + "userConsentDisplayName": "Submit application packages to your organization's catalog and cancel pending submissions", + "value": "AppCatalog.Submit" + }, + { + "description": "Allows the app to read the Teams apps that are installed in chats the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps in chats", + "id": "bf3fbf03-f35f-4e93-963e-47e4d874c37a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed in chats that you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read installed Teams apps in chats", + "value": "TeamsAppInstallation.ReadForChat" + }, + { + "description": "Allows the app to read the Teams apps that are installed in teams the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps in teams", + "id": "5248dcb1-f83b-4ec3-9f4d-a4428a961a72", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed in teams that you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read installed Teams apps in teams", + "value": "TeamsAppInstallation.ReadForTeam" + }, + { + "description": "Allows the app to read the Teams apps that are installed for the signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read user's installed Teams apps", + "id": "c395395c-ff9a-4dba-bc1f-8372ba9dca84", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed for you. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read your installed Teams apps", + "value": "TeamsAppInstallation.ReadForUser" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in teams the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Manage installed Teams apps in teams", + "id": "2e25a044-2580-450d-8859-42eeb6e996c0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps in teams you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage installed Teams apps in teams", + "value": "TeamsAppInstallation.ReadWriteForTeam" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage itself in chats", + "id": "0ce33576-30e8-43b7-99e5-62f8569a4002", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage itself in chats", + "value": "TeamsAppInstallation.ReadWriteSelfForChat" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for the signed-in user.", + "displayName": "Allow the Teams app to manage itself for a user", + "id": "207e0cb1-3ce7-4922-b991-5a760c346ebc", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself for you.", + "userConsentDisplayName": "Allow the Teams app to manage itself for you", + "value": "TeamsAppInstallation.ReadWriteSelfForUser" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps installed for the signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage user's installed Teams apps", + "id": "093f8818-d05f-49b8-95bc-9d2a73e9a43c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps installed for you. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage your installed Teams apps", + "value": "TeamsAppInstallation.ReadWriteForUser" + }, + { + "description": "Allows the app to create teams on behalf of the signed-in user.", + "displayName": "Create teams", + "id": "7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create teams on your behalf.\u00a0", + "userConsentDisplayName": "Create teams", + "value": "Team.Create" + }, + { + "description": "Add and remove members from all teams, on behalf of the signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "displayName": "Add and remove members with non-owner role for all teams", + "id": "2104a4db-3a2f-4ea0-9dba-143d457dc666", + "Origin": "Delegated", + "userConsentDescription": "Add and remove members from all teams, on your behalf. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "userConsentDisplayName": "Add and remove members with non-owner role for all teams", + "value": "TeamMember.ReadWriteNonOwnerRole.All" + }, + { + "description": "Allows the app to read the term store data that the signed-in user has access to. This includes all sets, groups and terms in the term store.", + "displayName": "Read term store data", + "id": "297f747b-0005-475b-8fef-c890f5152b38", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the term store data that you have access to. This includes all sets, groups and terms in the term store.", + "userConsentDisplayName": "Read term store data", + "value": "TermStore.Read.All" + }, + { + "description": "Allows the app to read or modify data that the signed-in user has access to.\u00a0This includes all sets, groups and terms in the term store.", + "displayName": "Read and write term store data", + "id": "6c37c71d-f50f-4bff-8fd3-8a41da390140", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or modify data that you have access to. This includes all sets, groups and terms in the term store.", + "userConsentDisplayName": "Read and write term store data", + "value": "TermStore.ReadWrite.All" + }, + { + "description": "Allows the app to read your tenant's service announcement messages on behalf of the signed-in user. Messages may include information about new or changed features.", + "displayName": "Read service announcement messages", + "id": "eda39fa6-f8cf-4c3c-a909-432c683e4c9b", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your tenant's service announcement messages on your behalf. Messages may include information about new or changed features.", + "userConsentDisplayName": "Read service messages", + "value": "ServiceMessage.Read.All" + }, + { + "description": "Allows the app to read your tenant's service health information on behalf of the signed-in user. Health information may include service issues or service health overviews.", + "displayName": "Read service health", + "id": "55896846-df78-47a7-aa94-8d3d4442ca7f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your tenant's service health information on your behalf.Health information may include service issues or service health overviews.", + "userConsentDisplayName": "Read service health", + "value": "ServiceHealth.Read.All" + }, + { + "description": "Allows the app to read all the short notes a sign-in user has access to.", + "displayName": "Read short notes of the signed-in user", + "id": "50f66e47-eb56-45b7-aaa2-75057d9afe08", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your short notes.", + "userConsentDisplayName": "Read your short notes", + "value": "ShortNotes.Read" + }, + { + "description": "Allows the app to read, create, edit, and delete short notes of a signed-in user.", + "displayName": "Read, create, edit, and delete short notes of the signed-in user", + "id": "328438b7-4c01-4c07-a840-e625a749bb89", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, edit, and delete your short notes.", + "userConsentDisplayName": "Read, create, edit, and delete your short notes", + "value": "ShortNotes.ReadWrite" + }, + { + "description": "Allows the app to read your organization's conditional access policies on behalf of the signed-in user.", + "displayName": "Read your organization's conditional access policies", + "id": "633e0fce-8c58-4cfb-9495-12bbd5a24f7c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's conditional access policies on your behalf.", + "userConsentDisplayName": "Read your organization's conditional access policies", + "value": "Policy.Read.ConditionalAccess" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for all RBAC providers, on behalf of the signed-in user. This includes reading role definitions and role assignments.", + "displayName": "Read role management data for all RBAC providers", + "id": "48fec646-b2ba-4019-8681-8eb31435aded", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the role-based access control (RBAC) settings for all RBAC providers, on your behalf. This includes reading role definitions and role assignments.", + "userConsentDisplayName": "Read role management data for all RBAC providers", + "value": "RoleManagement.Read.All" + }, + { + "description": "Allows an app to send one-to-one and group chat messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Send user chat messages", + "id": "116b7235-7cc6-461e-b163-8e55691d839e", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to send one-to-one and group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Send chat messages", + "value": "ChatMessage.Send" + }, + { + "description": "Allows an app to read the members and descriptions of one-to-one and group chat threads, on behalf of the signed-in user.", + "displayName": "Read names and members of user chat threads", + "id": "9547fcb5-d03f-419d-9948-5928bbf71b0f", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read the members and descriptions of one-to-one and group chat threads, on your behalf.", + "userConsentDisplayName": "Read names and members of your chat threads", + "value": "Chat.ReadBasic" + }, + { + "description": "Allows the app to read and write the properties of Cloud PCs on behalf of the signed-in user.", + "displayName": "Read and write Cloud PCs", + "id": "9d77138f-f0e2-47ba-ab33-cd246c8b79d1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties of Cloud PCs, on your behalf.", + "userConsentDisplayName": "Read and write Cloud PCs", + "value": "CloudPC.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties of Cloud PCs on behalf of the signed-in user.", + "displayName": "Read Cloud PCs", + "id": "5252ec4e-fd40-4d92-8c68-89dd1d3c6110", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties of Cloud PCs, on your behalf.", + "userConsentDisplayName": "Read Cloud PCs", + "value": "CloudPC.Read.All" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in chats the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Manage installed Teams apps in chats", + "id": "aa85bf13-d771-4d5d-a9e6-bca04ce44edf", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps in chats you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage installed Teams apps in chats", + "value": "TeamsAppInstallation.ReadWriteForChat" + }, + { + "description": "Allows the app to create, read, update, and delete the signed-in user's tasks and task lists, including any shared with the user.", + "displayName": "Create, read, update, and delete user\u2019s tasks and task lists", + "id": "2219042f-cab5-40cc-b0d2-16b1540b4c5f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete your tasks and task lists, including any shared with you.", + "userConsentDisplayName": "Create, read, update, and delete your tasks and task lists", + "value": "Tasks.ReadWrite" + }, + { + "description": "Allows the app to read the signed-in user\u2019s tasks and task lists, including any shared with the user. Doesn't include permission to create, delete, or update anything.", + "displayName": "Read user's tasks and task lists", + "id": "f45671fb-e0fe-4b4b-be20-3d3ce43f1bcb", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your tasks and task lists, including any shared with you. Doesn't include permission to create, delete, or update anything.", + "userConsentDisplayName": "Read your tasks and task lists", + "value": "Tasks.Read" + }, + { + "description": "Allows an app to read one-to-one and group chat messages, on behalf of the signed-in user.", + "displayName": "Read user chat messages", + "id": "cdcdac3a-fd45-410d-83ef-554db620e5c7", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read one-to-one or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read user chat messages", + "value": "ChatMessage.Read" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage all tabs in chats", + "id": "ee928332-e9c2-4747-b4a0-f8c164b68de6", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage all tabs in chats", + "value": "TeamsTab.ReadWriteForChat" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs to teams the signed-in user can access.", + "displayName": "Allow the Teams app to manage all tabs in teams", + "id": "c975dd04-a06e-4fbb-9704-62daad77bb49", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs to teams you can access.", + "userConsentDisplayName": "Allow the app to manage all tabs in teams", + "value": "TeamsTab.ReadWriteForTeam" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for the signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for a user", + "id": "c37c9b61-7762-4bff-a156-afc0005847a0", + "Origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for you.", + "userConsentDisplayName": "Allow the Teams app to manage all tabs for you", + "value": "TeamsTab.ReadWriteForUser" + }, + { + "description": "Allows the app to read the API connectors used in user authentication flows, on behalf of the signed-in user.", + "displayName": "Read API connectors for authentication flows", + "id": "1b6ff35f-31df-4332-8571-d31ea5a4893f", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the API connectors used in user authentication flows, on your behalf.", + "userConsentDisplayName": "Read API connectors for authentication flows", + "value": "APIConnectors.Read.All" + }, + { + "description": "Allows the app to read, create and manage the API connectors used in user authentication flows, on behalf of the signed-in user.", + "displayName": "Read and write API connectors for authentication flows", + "id": "c67b52c5-7c69-48b6-9d48-7b3af3ded914", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read, create and manage the API connectors used in user authentication flows, on your behalf.", + "userConsentDisplayName": "Read and write API connectors for authentication flows", + "value": "APIConnectors.ReadWrite.All" + }, + { + "description": "Read the members of chats, on behalf of the signed-in user.", + "displayName": "Read the members of chats", + "id": "c5a9e2b1-faf6-41d4-8875-d381aa549b24", + "Origin": "Delegated", + "userConsentDescription": "Read the members of chats, on your behalf.", + "userConsentDisplayName": "Read the members of chats", + "value": "ChatMember.Read" + }, + { + "description": "Add and remove members from chats, on behalf of the signed-in user.", + "displayName": "Add and remove members from chats", + "id": "dea13482-7ea6-488f-8b98-eb5bbecf033d", + "Origin": "Delegated", + "userConsentDescription": "Add and remove members from chats, on your behalf.", + "userConsentDisplayName": "Add and remove members from chats", + "value": "ChatMember.ReadWrite" + }, + { + "description": "Allows the app to create chats on behalf of the signed-in user.", + "displayName": "Create chats", + "id": "38826093-1258-4dea-98f0-00003be2b8d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create chats on your behalf.\u00a0", + "userConsentDisplayName": "Create chats", + "value": "Chat.Create" + }, + { + "description": "Allows the application to read and write tenant-wide print settings on behalf of the signed-in user.", + "displayName": "Read and write tenant-wide print settings", + "id": "9ccc526a-c51c-4e5c-a1fd-74726ef50b8f", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and write tenant-wide print settings on your behalf.", + "userConsentDisplayName": "Read and write tenant-wide print settings", + "value": "PrintSettings.ReadWrite.All" + }, + { + "description": "Allows the application to read tenant-wide print settings on behalf of the signed-in user.", + "displayName": "Read tenant-wide print settings", + "id": "490f32fd-d90f-4dd7-a601-ff6cdc1a3f6c", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read tenant-wide print settings on your behalf.", + "userConsentDisplayName": "Read tenant-wide print settings", + "value": "PrintSettings.Read.All" + }, + { + "description": "Allows the application to read and write print connectors on behalf of the signed-in user. ", + "displayName": "Read and write print connectors", + "id": "79ef9967-7d59-4213-9c64-4b10687637d8", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and write print connectors on your behalf.", + "userConsentDisplayName": "Read and write print connectors", + "value": "PrintConnector.ReadWrite.All" + }, + { + "description": "Allows the application to read print connectors on behalf of the signed-in user.", + "displayName": "Read print connectors", + "id": "d69c2d6d-4f72-4f99-a6b9-663e32f8cf68", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read print connectors on your behalf.", + "userConsentDisplayName": "Read print connectors", + "value": "PrintConnector.Read.All" + }, + { + "description": "Allows the application to read basic information about printer shares on behalf of the signed-in user. Does not allow reading access control information.", + "displayName": "Read basic information about printer shares", + "id": "5fa075e9-b951-4165-947b-c63396ff0a37", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read basic information about printer shares on your behalf.", + "userConsentDisplayName": "Read basic information about printer shares", + "value": "PrinterShare.ReadBasic.All" + }, + { + "description": "Allows the application to create print jobs on behalf of the signed-in user and upload document content to print jobs that the signed-in user created.", + "displayName": "Create print jobs", + "id": "21f0d9c0-9f13-48b3-94e0-b6b231c7d320", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to create print jobs on your behalf and upload document content to print jobs that you created.", + "userConsentDisplayName": "Create your print jobs", + "value": "PrintJob.Create" + }, + { + "description": "Allows the app to read Azure AD recommendations, on behalf of the signed-in user.", + "displayName": "Read Azure AD recommendations", + "id": "34d3bd24-f6a6-468c-b67c-0c365c1d6410", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read Azure AD recommendations, on your behalf.", + "userConsentDisplayName": "Read Azure AD recommendations", + "value": "DirectoryRecommendations.Read.All" + }, + { + "description": "Allows the application to list and query user profile information associated with the current tenant on behalf of the signed-in user.\u00a0 It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read shared cross-tenant user profile and export or delete data", + "id": "eed0129d-dc60-4f30-8641-daf337a39ffd", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to list and query shared user profile information associated with the current tenant on your behalf.\u00a0 It also permits the application to export and remove your external user data (e.g. customer content or system-generated logs), associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read shared cross-tenant user profile and export or delete data", + "value": "CrossTenantUserProfileSharing.ReadWrite" + }, + { + "description": "Allows the app to manage restricted resources based on the other permissions granted to the app, on behalf of the signed-in user.", + "displayName": "Manage restricted resources in the directory", + "id": "cba5390f-ed6a-4b7f-b657-0efc2210ed20", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage restricted resources based on the other permissions granted to the app, on your behalf.", + "userConsentDisplayName": "Manage restricted resources in the directory", + "value": "Directory.Write.Restricted" + }, + { + "description": "Allows the app to read your organization's threat submission policies on behalf of the signed-in user. Also allows the app to create new threat submission policies on behalf of the signed-in user.", + "displayName": "Read and write all threat submission policies", + "id": "059e5840-5353-4c68-b1da-666a033fc5e8", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submission policies on your behalf. Also allows the app to create new threat submission policies on your behalf.", + "userConsentDisplayName": "Read and write all threat submission policies", + "value": "ThreatSubmissionPolicy.ReadWrite.All" + }, + { + "description": "Allows an app to read the browser site lists configured for your organization, on behalf of the signed-in user.", + "displayName": "Read browser site lists for your organization", + "id": "fb9be2b7-a7fc-4182-aec1-eda4597c43d5", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read the browser site lists configured for your organization, on your behalf.", + "userConsentDisplayName": "Read browser site lists for your organization", + "value": "BrowserSiteLists.Read.All" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant on behalf of the signed-in user.\u00a0 It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export or delete their data", + "id": "64dfa325-cbf8-48e3-938d-51224a0cac01", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to list and query any shared user profile information associated with the current tenant on your behalf.\u00a0 It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read any shared cross-tenant user profiles and export or delete data", + "value": "CrossTenantUserProfileSharing.ReadWrite.All" + }, + { + "description": "Allows the app to read the threat submissions and threat submission policies owned by the signed-in user.", + "displayName": "Read threat submissions", + "id": "fd5353c6-26dd-449f-a565-c4e16b9fce78", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the threat submissions and threat submission policies that you own on your behalf.", + "userConsentDisplayName": "Read threat submissions", + "value": "ThreatSubmission.Read" + }, + { + "description": "Allows the app to read the threat submissions and threat submission policies owned by the signed-in user. Also allows the app to create new threat submissions on behalf of the signed-in user.", + "displayName": "Read and write threat submissions", + "id": "68a3156e-46c9-443c-b85c-921397f082b5", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the threat submissions and threat submission policies that you own. Also allows the app to create new threat submissions on your behalf.", + "userConsentDisplayName": "Read and write threat submissions", + "value": "ThreatSubmission.ReadWrite" + }, + { + "description": "Allows the app to read all recordings of online meetings, on behalf of the signed-in user.", + "displayName": "Read all recordings of online meetings.", + "id": "190c2bb6-1fdd-4fec-9aa2-7d571b5e1fe3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all recordings of online meetings, on your behalf.\u00a0", + "userConsentDisplayName": "Read all recordings of online meetings.\u00a0", + "value": "OnlineMeetingRecording.Read.All" + }, + { + "description": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem on behalf of the signed-in user.", + "displayName": "Read cross-tenant basic information", + "id": "81594d25-e88e-49cf-ac8c-fecbff49f994", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem on your behalf.", + "userConsentDisplayName": "Read cross-tenant basic information", + "value": "CrossTenantInformation.ReadBasic.All" + }, + { + "description": "Allows the app to read your organization's authentication event listeners on behalf of the signed-in user.", + "displayName": "Read your organization's authentication event listeners", + "id": "f7dd3bed-5eec-48da-bc73-1c0ef50bc9a1", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's authentication event listeners on your behalf.", + "userConsentDisplayName": "Read your organization's authentication event listeners", + "value": "EventListener.Read.All" + }, + { + "description": "Allows the app to read the Teams app settings on behalf of the signed-in user.", + "displayName": "Read Teams app settings", + "id": "44e060c4-bbdc-4256-a0b9-dcc0396db368", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams app settings on your behalf.", + "userConsentDisplayName": "Read Teams app settings", + "value": "TeamworkAppSettings.Read.All" + }, + { + "description": "Allows\u00a0the\u00a0app\u00a0to\u00a0manage learning\u00a0content\u00a0in\u00a0the\u00a0organization's\u00a0directory, on behalf of the signed-in user.", + "displayName": "Manage\u00a0learning\u00a0content", + "id": "53cec1c4-a65f-4981-9dc1-ad75dbf1c077", + "Origin": "Delegated", + "userConsentDescription": "Allows\u00a0the\u00a0app\u00a0to\u00a0manage learning\u00a0content\u00a0in\u00a0the\u00a0organization's\u00a0directory, on your behalf.", + "userConsentDisplayName": "Manage learning content", + "value": "LearningContent.ReadWrite.All" + }, + { + "description": "Allows the app to create, update, read, and delete data for the learning provider in the organization's directory, on behalf of the signed-in user.", + "displayName": "Manage\u00a0learning\u00a0provider", + "id": "40c2eb57-abaf-49f5-9331-e90fd01f7130", + "Origin": "Delegated", + "userConsentDescription": "Allows\u00a0the\u00a0app\u00a0to\u00a0create, update, read, and delete\u00a0data\u00a0for\u00a0the learning\u00a0provider\u00a0in\u00a0the organization's\u00a0directory, on your behalf.", + "userConsentDisplayName": "Manage learning provider", + "value": "LearningProvider.ReadWrite" + }, + { + "description": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "displayName": "Read all users' lifecycle information", + "id": "ed8d2a04-0374-41f1-aefe-da8ac87ccc87", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "userConsentDisplayName": "Read all users' lifecycle information", + "value": "User-LifeCycleInfo.Read.All" + }, + { + "description": "Allows an app to read and write the browser site lists configured for your organization, on behalf of the signed-in user.", + "displayName": "Read and write browser site lists for your organization", + "id": "83b34c85-95bf-497b-a04e-b58eca9d49d0", + "Origin": "Delegated", + "userConsentDescription": "Allows an app to read and write the browser site lists configured for your organization, on your behalf.", + "userConsentDisplayName": "Read and write browser site lists for your organization", + "value": "BrowserSiteLists.ReadWrite.All" + }, + { + "description": "Allows the application to list and query user profile information associated with the current tenant on behalf of the signed-in user.\u00a0 It also permits the application to export external user data (e.g. customer content or system-generated logs), associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read shared cross-tenant user profile and export data", + "id": "cb1ba48f-d22b-4325-a07f-74135a62ee41", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to list and query shared user profile information associated with the current tenant on your behalf.\u00a0 It also permits the application to export your external user data (e.g. customer content or system-generated logs), associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read shared cross-tenant user profile and export data", + "value": "CrossTenantUserProfileSharing.Read" + }, + { + "description": "Allows the app to read admin report settings, such as whether to display concealed information in reports, on behalf of the signed-in user", + "displayName": "Read admin report settings", + "id": "84fac5f4-33a9-4100-aa38-a20c6d29e5e7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read admin report settings, such as whether to display concealed information in reports, on your behalf.", + "userConsentDisplayName": "Read admin report settings", + "value": "ReportSettings.Read.All" + }, + { + "description": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "displayName": "Read and write all users' lifecycle information", + "id": "7ee7473e-bd4b-4c9f-987c-bd58481f5fa2", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "userConsentDisplayName": "Read and write all users' lifecycle information", + "value": "User-LifeCycleInfo.ReadWrite.All" + }, + { + "description": "Allows the app to read and update Azure AD recommendations, on behalf of the signed-in user. ", + "displayName": "Read and update Azure AD recommendations", + "id": "f37235e8-90a0-4189-93e2-e55b53867ccd", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update Azure AD recommendations, on your behalf.", + "userConsentDisplayName": "Read and update Azure AD recommendations", + "value": "DirectoryRecommendations.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's threat submissions and threat submission policies on behalf of the signed-in user.", + "displayName": "Read all threat submissions", + "id": "7083913a-4966-44b6-9886-c5822a5fd910", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submissions and threat submission policies on your behalf.", + "userConsentDisplayName": "Read all threat submissions", + "value": "ThreatSubmission.Read.All" + }, + { + "description": "Allows the app to read learning content in the organization's directory, on behalf of the signed-in user.", + "displayName": "Read learning content", + "id": "ea4c1fd9-6a9f-4432-8e5d-86e06cc0da77", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read learning content in the organization's directory, on your behalf.", + "userConsentDisplayName": "Read learning content", + "value": "LearningContent.Read.All" + }, + { + "description": "Allows the app to read data for the learning provider in the organization's directory, on behalf of the signed-in user.", + "displayName": "Read learning provider", + "id": "dd8ce36f-9245-45ea-a99e-8ac398c22861", + "Origin": "Delegated", + "userConsentDescription": "Allows\u00a0the\u00a0app\u00a0to\u00a0read\u00a0data\u00a0for\u00a0the learning\u00a0provider\u00a0in\u00a0the organization's\u00a0directory, on your behalf.", + "userConsentDisplayName": "Read learning provider", + "value": "LearningProvider.Read" + }, + { + "description": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources on behalf of the signed-in user.", + "displayName": "Read and write all lifecycle workflows resources", + "id": "84b9d731-7db8-4454-8c90-fd9e95350179", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources on your behalf.", + "userConsentDisplayName": "Read and write all lifecycle workflows resources", + "value": "LifecycleWorkflows.ReadWrite.All" + }, + { + "description": "Allows an app to read all bookmarks that the signed-in user can access.", + "displayName": "Read all bookmarks that the user can access", + "id": "98b17b35-f3b1-4849-a85f-9f13733002f0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all bookmarks you can access.", + "userConsentDisplayName": "Read all bookmarks that you have access to", + "value": "Bookmark.Read.All" + }, + { + "description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive on behalf of the signed-in user.", + "displayName": "Read and change SharePoint and OneDrive tenant settings", + "id": "aa07f155-3612-49b8-a147-6c590df35536", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive on your behalf.", + "userConsentDisplayName": "Read and change SharePoint and OneDrive tenant settings", + "value": "SharePointTenantSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read or write your organization's authentication event listeners on behalf of the signed-in user.", + "displayName": "Read and write your organization's authentication event listeners", + "id": "d11625a6-fe21-4fc6-8d3d-063eba5525ad", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's authentication event listeners on your behalf.", + "userConsentDisplayName": "Read and write your organization's authentication event listeners", + "value": "EventListener.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the Teams app settings on behalf of the signed-in user.", + "displayName": "Read and write Teams app settings", + "id": "87c556f0-2bd9-4eed-bd74-5dd8af6eaf7e", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the Teams app settings on your behalf.", + "userConsentDisplayName": "Read and write Teams app settings", + "value": "TeamworkAppSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read all authentication context information in your organization on behalf of the signed-in user.", + "displayName": "Read all authentication context information", + "id": "57b030f1-8c35-469c-b0d9-e4a077debe70", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all authentication context information in your organization on your behalf.", + "userConsentDisplayName": "Read all authentication context information", + "value": "AuthenticationContext.Read.All" + }, + { + "description": "Allows the app to read and update all authentication context information in your organization on behalf of the signed-in user.", + "displayName": "Read and write all authentication context information", + "id": "ba6d575a-1344-4516-b777-1404f5593057", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update all authentication context information in your organization on your behalf.", + "userConsentDisplayName": "Read and write all authentication context information", + "value": "AuthenticationContext.ReadWrite.All" + }, + { + "description": "Allows the app to read and update admin report settings, such as whether to display concealed information in reports, on behalf of the signed-in user.", + "displayName": "Read and write admin report settings", + "id": "b955410e-7715-4a88-a940-dfd551018df3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and update admin report settings, such as whether to display concealed information in reports, on your behalf.", + "userConsentDisplayName": "Read and write admin report settings", + "value": "ReportSettings.ReadWrite.All" + }, + { + "description": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources on behalf of the signed-in user.", + "displayName": "Read all lifecycle workflows resources", + "id": "9bcb9916-765a-42af-bf77-02282e26b01a", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources on your behalf.", + "userConsentDisplayName": "Read all lifecycle workflows resources", + "value": "LifecycleWorkflows.Read.All" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant on behalf of the signed-in user.\u00a0 It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export their data", + "id": "759dcd16-3c90-463c-937e-abf89f991c18", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to list and query any shared user profile information associated with the current tenant on your behalf.\u00a0 It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read any shared cross-tenant user profiles and export data", + "value": "CrossTenantUserProfileSharing.Read.All" + }, + { + "description": "Allows the application to read the tenant-level settings in SharePoint and OneDrive on behalf of the signed-in user.", + "displayName": "Read SharePoint and OneDrive tenant settings", + "id": "2ef70e10-5bfd-4ede-a5f6-67720500b258", + "Origin": "Delegated", + "userConsentDescription": "Allows the application to read the tenant-level settings in SharePoint and OneDrive on your behalf.", + "userConsentDisplayName": "Read SharePoint and OneDrive tenant settings", + "value": "SharePointTenantSettings.Read.All" + }, + { + "description": "Allows the app to read or write your organization's custom authentication extensions on behalf of the signed-in user.", + "displayName": "Read and write your organization's custom authentication extensions", + "id": "8dfcf82f-15d0-43b3-bc78-a958a13a5792", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's custom authentication extensions on your behalf.", + "userConsentDisplayName": "Read and write your organization's custom authentication extensions", + "value": "CustomAuthenticationExtension.ReadWrite.All" + }, + { + "description": "Allows an app to manage license assignments for users and groups, on behalf of the signed-in user.", + "displayName": "Manage all license assignments", + "id": "f55016cc-149c-447e-8f21-7cf3ec1d6350", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to manage all license assignments, on your behalf.", + "userConsentDisplayName": "Manage all license assignments", + "value": "LicenseAssignment.ReadWrite.All" + }, + { + "description": "Allows an app to read all acronyms that the signed-in user can access.", + "displayName": "Read all acronyms that the user can access", + "id": "9084c10f-a2d6-4713-8732-348def50fe02", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all acronyms you can access.", + "userConsentDisplayName": "Read all acronyms that you have access to", + "value": "Acronym.Read.All" + }, + { + "description": "Allows the app to read your organization's custom authentication extensions on behalf of the signed-in user.", + "displayName": "Read your oganization's custom authentication extensions", + "id": "b2052569-c98c-4f36-a5fb-43e5c111e6d0", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's custom authentication extensions on your behalf.", + "userConsentDisplayName": "Read your organization's custom authentication extensions", + "value": "CustomAuthenticationExtension.Read.All" + }, + { + "description": "Allows the app to read all transcripts of online meetings, on behalf of the signed-in user.", + "displayName": "Read all transcripts of online meetings. ", + "id": "30b87d18-ebb1-45db-97f8-82ccb1f0190c", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read all transcripts of online meetings, on your behalf.", + "userConsentDisplayName": "Read all transcripts of online meetings.", + "value": "OnlineMeetingTranscript.Read.All" + }, + { + "description": "Allows the app to read and write channel messages, on behalf of the signed-in user. This doesn't allow the app to edit the policyViolation of a channel message.", + "displayName": "Read and write user channel messages", + "id": "5922d31f-46c8-4404-9eaf-2117e390a8a4", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write channel messages, on your behalf. This doesn't allow the app to edit the policyViolation of a channel message.", + "userConsentDisplayName": "Read and write user channel messages", + "value": "ChannelMessage.ReadWrite" + }, + { + "description": "Read Threat and Vulnerability Management vulnerability information", + "displayName": "Allows the app to read any Threat and Vulnerability Management vulnerability information", + "id": "63a677ce-818c-4409-9d12-5c6d2e2a6bfe", + "Origin": "Application (WindowsDefenderATP)", + "userConsentDescription": "Allows the app to read any Threat and Vulnerability Management vulnerability information", + "userConsentDisplayName": "Allows the app to read any Threat and Vulnerability Management vulnerability information", + "value": "Vulnerability.Read.All" + }, + { + "description": "Allows the app to read Threat and Vulnerability Management vulnerability information on behalf of the signed-in user", + "displayName": "Read Threat and Vulnerability Management vulnerability information", + "id": "41269fc5-d04d-4bfd-bce7-43a51cea049a", + "Origin": "Delegated (WindowsDefenderATP)", + "userConsentDescription": "Allows the app to read Threat and Vulnerability Management vulnerability information on behalf of the signed-in user", + "userConsentDisplayName": "Read Threat and Vulnerability Management vulnerability information", + "value": "Vulnerability.Read" + }, + { + "description": "Allows the app to manage Exchange Online", + "displayName": "Manage Exchange online", + "id": "ab4f2b77-0b06-4fc1-a9de-02113fc2ab7c", + "Origin": "Delegated (Office 365 Exchange Online)", + "userConsentDescription": "Allows the app to read Threat and Vulnerability Management vulnerability information on behalf of the signed-in user", + "userConsentDisplayName": "Read Threat and Vulnerability Management vulnerability information", + "value": "Exchange.Manage" + }, + { + "description": "Allows the app to create, read, update and delete events in all calendars in the organization user has permissions to access. This includes delegate and shared calendars", + "displayName": "Read and write user and shared calendars", + "id": "bbd1ca91-75e0-4814-ad94-9c5dbbae3415", + "Origin": "Delegated (Office 365 Exchange Online)", + "userConsentDescription": "Allows the app to read, update, create and delete events in all calendars in your organization you have permissions to access. This includes delegate and shared calendars", + "userConsentDisplayName": "Read and write to your and shared calendars", + "value": "Calendars.ReadWrite.All" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings. Does not include permission to send mail.", + "displayName": "Read and write user mailbox settings", + "id": "2e83d72d-8895-4b66-9eea-abb43449ab8b", + "Origin": "Delegated (Office 365 Exchange Online)", + "userConsentDescription": "Allows the app to read, update, create, and delete your mailbox settings.", + "userConsentDisplayName": "Read and write to your mailbox settings", + "value": "MailboxSettings.ReadWrite" + }, + { + "description": "Allows the app to have full control of all site collections on behalf of the signed-in user.", + "displayName": "Manage SharePoint Online", + "id": "56680e0d-d2a3-4ae1-80d8-3c4f2100e3d0", + "Origin": "Delegated (Office 365 SharePoint Online)", + "userConsentDescription": "Have full control of all site collections", + "userConsentDisplayName": "Allows the app to have full control of all site collections on your behalf.", + "value": "AllSites.FullControl" + }, + { + "description": "Allows to read the LAPS passwords.", + "displayName": "Manage LAPS passwords", + "id": "280b3b69-0437-44b1-bc20-3b2fca1ee3e9", + "Origin": "Delegated", + "userConsentDescription": "Allows to read the LAPS passwords.", + "userConsentDisplayName": "Manage LAPS passwords", + "value": "DeviceLocalCredential.Read.All" + }, + { + "description": "Access Microsoft Teams and Skype for Business data as the signed in user", + "displayName": "Access Microsoft Teams and Skype for Business data based on the user's role membership", + "id": "e60370c1-e451-437e-aa6e-d76df38e5f15", + "Origin": "Delegated (Skype and Teams Tenant Admin API)", + "userConsentDescription": "Access Microsoft Teams and Skype for Business data as the signed in user", + "userConsentDisplayName": "Access Microsoft Teams and Skype for Business data based on the user's role membership", + "value": "user_impersonation" + }, + { + "description": "Read and write all on-premises directory synchronization information", + "displayName": "Read and write all on-premises directory synchronization information", + "id": "c2d95988-7604-4ba1-aaed-38a5f82a51c7", + "Origin": "Delegated", + "userConsentDescription": "Access Microsoft Teams and Skype for Business data as the signed in user", + "userConsentDisplayName": "Access Microsoft Teams and Skype for Business data based on the user's role membership", + "value": "OnPremDirectorySynchronization.ReadWrite.All" + }, + { + "description": "Read and Modify Tenant-Acquired Telephone Number Details", + "displayName": "Read and Modify Tenant-Acquired Telephone Number Details", + "id": "424b07a8-1209-4d17-9fe4-9018a93a1024", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and modify your tenant's acquired telephone number details on behalf of the signed-in admin user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc.", + "userConsentDisplayName": "Allows the app to read and modify your tenant's acquired telephone number details on behalf of the signed-in admin user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc.", + "value": "TeamsTelephoneNumber.ReadWrite.All" + }, + { + "description": "Read and Modify Tenant-Acquired Telephone Number Details", + "displayName": "Read and Modify Tenant-Acquired Telephone Number Details", + "id": "0a42382f-155c-4eb1-9bdc-21548ccaa387", + "Origin": "Application", + "userConsentDescription": "Allows the app to read your tenant's acquired telephone number details, without a signed-in user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc.", + "userConsentDisplayName": "Allows the app to read your tenant's acquired telephone number details, without a signed-in user. Acquired telephone numbers may include attributes related to assigned object, emergency location, network site, etc.", + "value": "TeamsTelephoneNumber.ReadWrite.All" + } +] diff --git a/Modules/CIPPCore/lib/data/SAMManifest.json b/Modules/CIPPCore/lib/data/SAMManifest.json new file mode 100644 index 000000000000..534b0a29e5de --- /dev/null +++ b/Modules/CIPPCore/lib/data/SAMManifest.json @@ -0,0 +1,635 @@ +{ + "isFallbackPublicClient": true, + "signInAudience": "AzureADMultipleOrgs", + "displayName": "CIPP-SAM", + "web": { + "redirectUris": [ + "https://login.microsoftonline.com/common/oauth2/nativeclient", + "https://localhost", + "http://localhost", + "http://localhost:8400" + ] + }, + "requiredResourceAccess": [ + { + "resourceAppId": "c5393580-f805-4401-95e8-94b7a6ef2fc2", + "resourceAccess": [ + { + "id": "594c1fb6-4f81-4475-ae41-0c394909246c", + "type": "Scope" + } + ] + }, + { + "resourceAppId": "aeb86249-8ea3-49e2-900b-54cc8e308f85", + "resourceAccess": [ + { + "id": "fc946a4f-bc4d-413b-a090-b2c86113ec4f", + "type": "Scope" + } + ] + }, + { + "resourceAppId": "00000003-0000-0000-c000-000000000000", + "resourceAccess": [ + { + "id": "1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9", + "type": "Role" + }, + { + "id": "b0afded3-3588-46d8-8b3d-9842eff778da", + "type": "Role" + }, + { + "id": "5e1e9171-754d-478c-812c-f1755a9a4c2d", + "type": "Role" + }, + { + "id": "f3a65bd4-b703-46df-8f7e-0174fea562aa", + "type": "Role" + }, + { + "id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", + "type": "Role" + }, + { + "id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", + "type": "Role" + }, + { + "id": "cac88765-0581-4025-9725-5ebc13f729ee", + "type": "Role" + }, + { + "id": "1138cb37-bd11-4084-a2b7-9f71582aeddb", + "type": "Role" + }, + { + "id": "78145de6-330d-4800-a6ce-494ff2d33d07", + "type": "Role" + }, + { + "id": "9241abd9-d0e6-425a-bd4f-47ba86e767a4", + "type": "Role" + }, + { + "id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", + "type": "Role" + }, + { + "id": "243333ab-4d21-40cb-a475-36241daa0842", + "type": "Role" + }, + { + "id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", + "type": "Role" + }, + { + "id": "9255e99d-faf5-445e-bbf7-cb71482737c4", + "type": "Role" + }, + { + "id": "8b9d79d0-ad75-4566-8619-f7500ecfcebe", + "type": "Scope" + }, + { + "id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", + "type": "Role" + }, + { + "id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", + "type": "Role" + }, + { + "id": "dbb9058a-0e50-45d7-ae91-66909b5d4664", + "type": "Role" + }, + { + "id": "75359482-378d-4052-8f01-80520e7db3cd", + "type": "Role" + }, + { + "id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", + "type": "Role" + }, + { + "id": "62a82d76-70ea-41e2-9197-370581804d09", + "type": "Role" + }, + { + "id": "dbaae8cf-10b5-4b86-a4a1-f871c94c6695", + "type": "Role" + }, + { + "id": "19da66cb-0fb0-4390-b071-ebc76a349482", + "type": "Role" + }, + { + "id": "6931bccd-447a-43d1-b442-00a195474933", + "type": "Role" + }, + { + "id": "292d869f-3427-49a8-9dab-8c70152b74e9", + "type": "Role" + }, + { + "id": "2cb92fee-97a3-4034-8702-24a6f5d0d1e9", + "type": "Role" + }, + { + "id": "b6890674-9dd5-4e42-bb15-5af07f541ae1", + "type": "Role" + }, + { + "id": "913b9306-0ce1-42b8-9137-6a7df690a760", + "type": "Role" + }, + { + "id": "246dd0d5-5bd0-4def-940b-0421030a5b68", + "type": "Role" + }, + { + "id": "be74164b-cff1-491c-8741-e671cb536e13", + "type": "Role" + }, + { + "id": "25f85f3c-f66c-4205-8cd5-de92dd7f0cec", + "type": "Role" + }, + { + "id": "29c18626-4985-4dcd-85c0-193eef327366", + "type": "Role" + }, + { + "id": "01c0a623-fc9b-48e9-b794-0756f8e8f067", + "type": "Role" + }, + { + "id": "999f8c63-0a38-4f1b-91fd-ed1947bdd1a9", + "type": "Role" + }, + { + "id": "338163d7-f101-4c92-94ba-ca46fe52447c", + "type": "Role" + }, + { + "id": "2f6817f8-7b12-4f0f-bc18-eeaf60705a9e", + "type": "Role" + }, + { + "id": "230c1aed-a721-4c5d-9cb4-a90514e508ef", + "type": "Role" + }, + { + "id": "2a60023f-3219-47ad-baa4-40e17cd02a1d", + "type": "Role" + }, + { + "id": "025d3225-3f02-4882-b4c0-cd5b541a4e80", + "type": "Role" + }, + { + "id": "04c55753-2244-4c25-87fc-704ab82a4f69", + "type": "Role" + }, + { + "id": "bf394140-e372-4bf9-a898-299cfc7564e5", + "type": "Role" + }, + { + "id": "34bf0e97-1971-4929-b999-9e2442d941d7", + "type": "Role" + }, + { + "id": "19b94e34-907c-4f43-bde9-38b1909ed408", + "type": "Role" + }, + { + "id": "a82116e5-55eb-4c41-a434-62fe8a61c773", + "type": "Role" + }, + { + "id": "0121dc95-1b9f-4aed-8bac-58c5ac466691", + "type": "Role" + }, + { + "id": "4437522e-9a86-4a41-a7da-e380edd4a97d", + "type": "Role" + }, + { + "id": "741f803b-c850-494e-b5df-cde7c675a1ca", + "type": "Role" + }, + { + "id": "50483e42-d915-4231-9639-7fdb7fd190e5", + "type": "Role" + }, + { + "id": "bdfbf15f-ee85-4955-8675-146e8e5296b5", + "type": "Scope" + }, + { + "id": "84bccea3-f856-4a8a-967b-dbe0a3d53a64", + "type": "Scope" + }, + { + "id": "e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20", + "type": "Scope" + }, + { + "id": "b27a61ec-b99c-4d6a-b126-c4375d08ae30", + "type": "Scope" + }, + { + "id": "101147cf-4178-4455-9d58-02b5c164e759", + "type": "Scope" + }, + { + "id": "cc83893a-e232-4723-b5af-bd0b01bcfe65", + "type": "Scope" + }, + { + "id": "9d8982ae-4365-4f57-95e9-d6032a4c0b87", + "type": "Scope" + }, + { + "id": "2eadaff8-0bce-4198-a6b9-2cfc35a30075", + "type": "Scope" + }, + { + "id": "0c3e411a-ce45-4cd1-8f30-f99a3efa7b11", + "type": "Scope" + }, + { + "id": "2b61aa8a-6d36-4b2f-ac7b-f29867937c53", + "type": "Scope" + }, + { + "id": "767156cb-16ae-4d10-8f8b-41b657c8c8c8", + "type": "Scope" + }, + { + "id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", + "type": "Scope" + }, + { + "id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", + "type": "Scope" + }, + { + "id": "f3bfad56-966e-4590-a536-82ecf548ac1e", + "type": "Scope" + }, + { + "id": "885f682f-a990-4bad-a642-36736a74b0c7", + "type": "Scope" + }, + { + "id": "41ce6ca6-6826-4807-84f1-1c82854f7ee5", + "type": "Scope" + }, + { + "id": "bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804", + "type": "Scope" + }, + { + "id": "11d4cd79-5ba5-460f-803f-e22c8ab85ccd", + "type": "Scope" + }, + { + "id": "951183d1-1a61-466f-a6d1-1fde911bfd95", + "type": "Scope" + }, + { + "id": "280b3b69-0437-44b1-bc20-3b2fca1ee3e9", + "type": "Scope" + }, + { + "id": "7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af", + "type": "Scope" + }, + { + "id": "0883f392-0a7a-443d-8c76-16a6d39c7b63", + "type": "Scope" + }, + { + "id": "3404d2bf-2b13-457e-a330-c24615765193", + "type": "Scope" + }, + { + "id": "44642bfe-8385-4adc-8fc6-fe3cb2c375c3", + "type": "Scope" + }, + { + "id": "0c5e8a55-87a6-4556-93ab-adc52c4d862d", + "type": "Scope" + }, + { + "id": "662ed50a-ac44-4eef-ad86-62eed9be2a29", + "type": "Scope" + }, + { + "id": "0e263e50-5827-48a4-b97c-d940288653c7", + "type": "Scope" + }, + { + "id": "c5366453-9fb0-48a5-a156-24f0c49a4b84", + "type": "Scope" + }, + { + "id": "2f9ee017-59c1-4f1d-9472-bd5529a7b311", + "type": "Scope" + }, + { + "id": "4e46008b-f24c-477d-8fff-7bb4ec7aafe0", + "type": "Scope" + }, + { + "id": "f81125ac-d3b7-4573-a3b2-7099cc39df9e", + "type": "Scope" + }, + { + "id": "9e4862a5-b68f-479e-848a-4e07e25c9916", + "type": "Scope" + }, + { + "id": "bb6f654c-d7fd-4ae3-85c3-fc380934f515", + "type": "Scope" + }, + { + "id": "e0a7cdbb-08b0-4697-8264-0069786e9674", + "type": "Scope" + }, + { + "id": "e383f46e-2787-4529-855e-0e479a3ffac0", + "type": "Scope" + }, + { + "id": "a367ab51-6b49-43bf-a716-a1fb06d2a174", + "type": "Scope" + }, + { + "id": "818c620a-27a9-40bd-a6a5-d96f7d610b4b", + "type": "Scope" + }, + { + "id": "f6a3db3e-f7e8-4ed2-a414-557c8c9830be", + "type": "Scope" + }, + { + "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", + "type": "Scope" + }, + { + "id": "37f7f235-527c-4136-accd-4a02d197296e", + "type": "Scope" + }, + { + "id": "46ca0847-7e6b-426e-9775-ea810a948356", + "type": "Scope" + }, + { + "id": "346c19ff-3fb2-4e81-87a0-bac9e33990c1", + "type": "Scope" + }, + { + "id": "e67e6727-c080-415e-b521-e3f35d5248e9", + "type": "Scope" + }, + { + "id": "4c06a06a-098a-4063-868e-5dfee3827264", + "type": "Scope" + }, + { + "id": "572fea84-0151-49b2-9301-11cb16974376", + "type": "Scope" + }, + { + "id": "b27add92-efb2-4f16-84f5-8108ba77985c", + "type": "Scope" + }, + { + "id": "edb72de9-4252-4d03-a925-451deef99db7", + "type": "Scope" + }, + { + "id": "7e823077-d88e-468f-a337-e18f1f0e6c7c", + "type": "Scope" + }, + { + "id": "edd3c878-b384-41fd-95ad-e7407dd775be", + "type": "Scope" + }, + { + "id": "ad902697-1014-4ef5-81ef-2b4301988e8c", + "type": "Scope" + }, + { + "id": "4d135e65-66b8-41a8-9f8b-081452c91774", + "type": "Scope" + }, + { + "id": "40b534c3-9552-4550-901b-23879c90bcf9", + "type": "Scope" + }, + { + "id": "a8ead177-1889-4546-9387-f25e658e2a79", + "type": "Scope" + }, + { + "id": "a84a9652-ffd3-496e-a991-22ba5529156a", + "type": "Scope" + }, + { + "id": "14dad69e-099b-42c9-810b-d002981feec1", + "type": "Scope" + }, + { + "id": "02e97553-ed7b-43d0-ab3c-f8bace0d040c", + "type": "Scope" + }, + { + "id": "b955410e-7715-4a88-a940-dfd551018df3", + "type": "Scope" + }, + { + "id": "d01b97e9-cbc0-49fe-810a-750afd5527a3", + "type": "Scope" + }, + { + "id": "dc38509c-b87d-4da0-bd92-6bec988bac4a", + "type": "Scope" + }, + { + "id": "6aedf524-7e1c-45a7-bd76-ded8cab8d0fc", + "type": "Scope" + }, + { + "id": "128ca929-1a19-45e6-a3b8-435ec44a36ba", + "type": "Scope" + }, + { + "id": "55896846-df78-47a7-aa94-8d3d4442ca7f", + "type": "Scope" + }, + { + "id": "eda39fa6-f8cf-4c3c-a909-432c683e4c9b", + "type": "Scope" + }, + { + "id": "aa07f155-3612-49b8-a147-6c590df35536", + "type": "Scope" + }, + { + "id": "89fe6a52-be36-487e-b7d8-d061c450a026", + "type": "Scope" + }, + { + "id": "7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0", + "type": "Scope" + }, + { + "id": "485be79e-c497-4b35-9400-0e3fa7f2a5d4", + "type": "Scope" + }, + { + "id": "4a06efd2-f825-4e34-813e-82a57b03d1ee", + "type": "Scope" + }, + { + "id": "2104a4db-3a2f-4ea0-9dba-143d457dc666", + "type": "Scope" + }, + { + "id": "0e755559-83fb-4b44-91d0-4cc721b9323e", + "type": "Scope" + }, + { + "id": "39d65650-9d3e-4223-80db-a335590d027e", + "type": "Scope" + }, + { + "id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e", + "type": "Scope" + }, + { + "id": "b98bfd41-87c6-45cc-b104-e2de4f0dafb9", + "type": "Scope" + }, + { + "id": "cac97e40-6730-457d-ad8d-4852fddab7ad", + "type": "Scope" + }, + { + "id": "73e75199-7c3e-41bb-9357-167164dbb415", + "type": "Scope" + }, + { + "id": "637d7bec-b31e-4deb-acc9-24275642a2c9", + "type": "Scope" + }, + { + "id": "204e0828-b5ca-4ad8-b9f3-f32a958e7cc4", + "type": "Scope" + }, + { + "id": "48971fc1-70d7-4245-af77-0beb29b53ee2", + "type": "Scope" + }, + { + "id": "b7887744-6746-4312-813d-72daeaee7e2d", + "type": "Scope" + }, + { + "id": "424b07a8-1209-4d17-9fe4-9018a93a1024", + "type": "Scope" + }, + { + "id": "0a42382f-155c-4eb1-9bdc-21548ccaa387", + "type": "Role" + }, + { + "id": "2d9bd318-b883-40be-9df7-63ec4fcdc424", + "type": "Role" + }, + { + "id": "c8948c23-e66b-42db-83fd-770b71ab78d2", + "type": "Role" + }, + { + "id": "a94a502d-0281-4d15-8cd2-682ac9362c4c", + "type": "Role" + } + ] + }, + { + "resourceAppId": "fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd", + "resourceAccess": [ + { + "id": "1cebfa2a-fb4d-419e-b5f9-839b4383e05a", + "type": "Scope" + } + ] + }, + { + "resourceAppId": "00000002-0000-0ff1-ce00-000000000000", + "resourceAccess": [ + { + "id": "dc50a0fb-09a3-484d-be87-e023b12c6440", + "type": "Role" + }, + { + "id": "ef54d2bf-783f-4e0f-bca1-3210c0444d99", + "type": "Role" + }, + { + "id": "f9156939-25cd-4ba8-abfe-7fabcf003749", + "type": "Role" + }, + { + "id": "ab4f2b77-0b06-4fc1-a9de-02113fc2ab7c", + "type": "Scope" + }, + { + "id": "bbd1ca91-75e0-4814-ad94-9c5dbbae3415", + "type": "Scope" + }, + { + "id": "2e83d72d-8895-4b66-9eea-abb43449ab8b", + "type": "Scope" + } + ] + }, + { + "resourceAppId": "00000003-0000-0ff1-ce00-000000000000", + "resourceAccess": [ + { + "id": "56680e0d-d2a3-4ae1-80d8-3c4f2100e3d0", + "type": "Scope" + } + ] + }, + { + "resourceAppId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "resourceAccess": [ + { + "id": "e60370c1-e451-437e-aa6e-d76df38e5f15", + "type": "Scope" + } + ] + }, + { + "resourceAppId": "fc780465-2017-40d4-a0c5-307022471b92", + "resourceAccess": [ + { + "id": "41269fc5-d04d-4bfd-bce7-43a51cea049a", + "type": "Role" + }, + { + "id": "63a677ce-818c-4409-9d12-5c6d2e2a6bfe", + "type": "Scope" + } + ] + } + ] +} diff --git a/Modules/CIPPCore/lib/data/blank.json b/Modules/CIPPCore/lib/data/blank.json new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/Modules/CippEntrypoints/CippEntrypoints.psm1 b/Modules/CippEntrypoints/CippEntrypoints.psm1 new file mode 100644 index 000000000000..cda294332f1a --- /dev/null +++ b/Modules/CippEntrypoints/CippEntrypoints.psm1 @@ -0,0 +1,509 @@ +using namespace System.Net + +function Receive-CippHttpTrigger { + <# + .SYNOPSIS + Execute HTTP trigger function + .DESCRIPTION + Execute HTTP trigger function from an azure function app + .PARAMETER Request + The request object from the function app + .PARAMETER TriggerMetadata + The trigger metadata object from the function app + .FUNCTIONALITY + Entrypoint + #> + param( + $Request, + $TriggerMetadata + ) + + if ($Request.Headers.'x-ms-coldstart' -eq 1) { + Write-Information '** Function app cold start detected **' + } + Write-Debug "CIPP_ACTION=$($Request.Params.CIPPEndpoint)" + + $ConfigTable = Get-CIPPTable -tablename Config + $Config = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'OffloadFunctions' and RowKey eq 'OffloadFunctions'" + + if ($Config -and $Config.state -eq $true) { + if ($env:CIPP_PROCESSOR -eq 'true') { + Write-Information 'No API Calls' + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Forbidden + Body = 'API calls are not accepted on this function app' + }) + return + } + } + + # Convert the request to a PSCustomObject because the httpContext is case sensitive since 7.3 + $Request = $Request | ConvertTo-Json -Depth 100 | ConvertFrom-Json + Set-Location (Get-Item $PSScriptRoot).Parent.Parent.FullName + + if ($Request.Params.CIPPEndpoint -eq '$batch') { + # Implement batch processing in the style of graph api $batch + try { + $BatchRequests = $Request.Body.requests + if (-not $BatchRequests -or $BatchRequests.Count -eq 0) { + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ error = @{ message = 'No requests found in batch body' } } + }) + return + } + + # Validate batch request limit (this might need to be fine tuned for SWA timeouts) + if ($BatchRequests.Count -gt 20) { + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ error = @{ message = 'Batch request limit exceeded. Maximum 20 requests allowed per batch.' } } + }) + return + } + + # Process batch requests in parallel for better performance + $BatchResponses = $BatchRequests | ForEach-Object -Parallel { + $BatchRequest = $_ + $RequestHeaders = $using:Request.Headers + $TriggerMeta = $using:TriggerMetadata + + try { + # Import required modules in the parallel thread + Import-Module CIPPCore -Force + Import-Module CippExtensions -Force -ErrorAction SilentlyContinue + Import-Module DNSHealth -Force -ErrorAction SilentlyContinue + Import-Module AzBobbyTables -Force -ErrorAction SilentlyContinue + + # Create individual request object for each batch item + $IndividualRequest = @{ + Params = @{ + CIPPEndpoint = $BatchRequest.url # Use batch request URL as endpoint + } + Body = $BatchRequest.body + Headers = $RequestHeaders + Query = $BatchRequest.query + Method = $BatchRequest.method + } + + # Process individual request using New-CippCoreRequest + $IndividualResponse = New-CippCoreRequest -Request $IndividualRequest -TriggerMetadata $TriggerMeta + + # Format response in Graph API batch style + $BatchResponse = @{ + id = $BatchRequest.id + status = [int]$IndividualResponse.StatusCode + body = $IndividualResponse.Body + } + + } catch { + # Handle individual request errors + $BatchResponse = @{ + id = $BatchRequest.id + status = 500 + body = @{ + error = @{ + code = 'InternalServerError' + message = $_.Exception.Message + } + } + } + } + + return $BatchResponse + } -ThrottleLimit 10 + + $BodyObj = @{ + responses = @($BatchResponses) + } + + $Body = ConvertTo-Json -InputObject $BodyObj -Depth 20 -Compress + + # Return batch response in Graph API format + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) + + } catch { + Write-Warning "Exception occurred during batch processing: $($_.Exception.Message)" + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + error = @{ + code = 'InternalServerError' + message = "Batch processing failed: $($_.Exception.Message)" + } + } + }) + } + return + } else { + $Response = New-CippCoreRequest -Request $Request -TriggerMetadata $TriggerMetadata + if ($Response.StatusCode) { + if ($Response.Body -is [PSCustomObject]) { + $Response.Body = $Response.Body | ConvertTo-Json -Depth 20 -Compress + } + Push-OutputBinding -Name Response -Value ([HttpResponseContext]$Response) + } else { + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + error = @{ + code = 'InternalServerError' + message = 'An error occurred processing the request' + } + } + }) + } + } + return +} + +function Receive-CippOrchestrationTrigger { + <# + .SYNOPSIS + Execute durable orchestrator function + .DESCRIPTION + Execute orchestrator from azure function app + .PARAMETER Context + The context object from the function app + .FUNCTIONALITY + Entrypoint + #> + param($Context) + Write-Debug "CIPP_ACTION=$($Item.Command ?? $Item.FunctionName)" + try { + if (Test-Json -Json $Context.Input) { + $OrchestratorInput = $Context.Input | ConvertFrom-Json + } else { + $OrchestratorInput = $Context.Input + } + Write-Information "Orchestrator started $($OrchestratorInput.OrchestratorName)" + Write-Warning "Receive-CippOrchestrationTrigger - $($OrchestratorInput.OrchestratorName)" + Set-DurableCustomStatus -CustomStatus $OrchestratorInput.OrchestratorName + $DurableRetryOptions = @{ + FirstRetryInterval = (New-TimeSpan -Seconds 5) + MaxNumberOfAttempts = if ($OrchestratorInput.MaxAttempts) { $OrchestratorInput.MaxAttempts } else { 1 } + BackoffCoefficient = 2 + } + + switch ($OrchestratorInput.DurableMode) { + 'FanOut' { + $DurableMode = 'FanOut' + $NoWait = $true + } + 'Sequence' { + $DurableMode = 'Sequence' + $NoWait = $false + } + 'NoScaling' { + $DurableMode = 'NoScaling' + $NoWait = $false + } + default { + $DurableMode = 'FanOut (Default)' + $NoWait = $true + } + } + Write-Information "Durable Mode: $DurableMode" + + $RetryOptions = New-DurableRetryOptions @DurableRetryOptions + if (!$OrchestratorInput.Batch -or ($OrchestratorInput.Batch | Measure-Object).Count -eq 0) { + $Batch = (Invoke-ActivityFunction -FunctionName 'CIPPActivityFunction' -Input $OrchestratorInput.QueueFunction -ErrorAction Stop) | Where-Object { $null -ne $_.FunctionName } + } else { + $Batch = $OrchestratorInput.Batch | Where-Object { $null -ne $_.FunctionName } + } + + if (($Batch | Measure-Object).Count -gt 0) { + Write-Information "Batch Count: $($Batch.Count)" + $Output = foreach ($Item in $Batch) { + if ($DurableMode -eq 'NoScaling') { + $Activity = @{ + FunctionName = 'CIPPActivityFunction' + Input = $Item + ErrorAction = 'Stop' + } + Invoke-ActivityFunction @Activity + } else { + $DurableActivity = @{ + FunctionName = 'CIPPActivityFunction' + Input = $Item + NoWait = $NoWait + RetryOptions = $RetryOptions + ErrorAction = 'Stop' + } + Invoke-DurableActivity @DurableActivity + } + } + + if ($NoWait -and $Output) { + $Output = $Output | Where-Object { $_.GetType().Name -eq 'ActivityInvocationTask' } + if (($Output | Measure-Object).Count -gt 0) { + Write-Information "Waiting for ($($Output.Count)) activity functions to complete..." + $Results = foreach ($Task in $Output) { + try { + Wait-ActivityFunction -Task $Task + } catch {} + } + } else { + $Results = @() + } + } else { + $Results = $Output + } + } + + if ($Results -and $OrchestratorInput.PostExecution) { + Write-Information "Running post execution function $($OrchestratorInput.PostExecution.FunctionName)" + $PostExecParams = @{ + FunctionName = $OrchestratorInput.PostExecution.FunctionName + Parameters = $OrchestratorInput.PostExecution.Parameters + Results = @($Results) + } + if ($null -ne $PostExecParams.FunctionName) { + $null = Invoke-ActivityFunction -FunctionName CIPPActivityFunction -Input $PostExecParams + Write-Information "Post execution function $($OrchestratorInput.PostExecution.FunctionName) completed" + } else { + Write-Information 'No post execution function name provided' + Write-Information ($PostExecParams | ConvertTo-Json -Depth 10) + } + } + } catch { + Write-Information "Orchestrator error $($_.Exception.Message) line $($_.InvocationInfo.ScriptLineNumber)" + } + return $true +} + +function Receive-CippActivityTrigger { + <# + .SYNOPSIS + Execute durable activity function + .DESCRIPTION + Execute durable activity function from an orchestrator + .PARAMETER Item + The item to process + .FUNCTIONALITY + Entrypoint + #> + param($Item) + Write-Debug "CIPP_ACTION=$($Item.Command ?? $Item.FunctionName)" + Write-Warning "Hey Boo, the activity function is running. Here's some info: $($Item | ConvertTo-Json -Depth 10 -Compress)" + try { + $Output = $null + Set-Location (Get-Item $PSScriptRoot).Parent.Parent.FullName + $metric = @{ + Kind = 'CIPPCommandStart' + InvocationId = "$($ExecutionContext.InvocationId)" + Command = $Item.Command + Tenant = $Item.TenantFilter.defaultDomainName + TaskName = $Item.TaskName + JSONData = ($Item | ConvertTo-Json -Depth 10 -Compress) + } | ConvertTo-Json -Depth 10 -Compress + + Write-Information -MessageData $metric -Tag 'CIPPCommandStart' + if ($Item.QueueId) { + if ($Item.QueueName) { + $QueueName = $Item.QueueName + } elseif ($Item.TenantFilter) { + $QueueName = $Item.TenantFilter + } elseif ($Item.Tenant) { + $QueueName = $Item.Tenant + } + $QueueTask = @{ + QueueId = $Item.QueueId + Name = $QueueName + Status = 'Running' + } + $TaskStatus = Set-CippQueueTask @QueueTask + $QueueTask.TaskId = $TaskStatus.RowKey + } + + if ($Item.FunctionName) { + $FunctionName = 'Push-{0}' -f $Item.FunctionName + + # Prepare telemetry metadata + $taskName = if ($Item.Command) { $Item.Command } else { $FunctionName } + $metadata = @{ + Command = if ($Item.Command) { $Item.Command } else { $FunctionName } + FunctionName = $FunctionName + } + + # Add tenant information if available + if ($Item.TaskInfo) { + if ($Item.TaskInfo.Tenant) { + $metadata['Tenant'] = $Item.TaskInfo.Tenant + } + if ($Item.TaskInfo.Name) { + $metadata['JobName'] = $Item.TaskInfo.Name + } + if ($Item.TaskInfo.Recurrence) { + $metadata['Recurrence'] = $Item.TaskInfo.Recurrence + } + } + + # Add tenant from other common fields + if (-not $metadata['Tenant']) { + if ($Item.TenantFilter) { + $metadata['Tenant'] = $Item.TenantFilter + } elseif ($Item.Tenant) { + $metadata['Tenant'] = $Item.Tenant + } + } + + # Add queue information + if ($Item.QueueId) { + $metadata['QueueId'] = $Item.QueueId + } + if ($Item.QueueName) { + $metadata['QueueName'] = $Item.QueueName + } + + try { + Write-Verbose "Activity starting Function: $FunctionName." + Invoke-Command -ScriptBlock { & $FunctionName -Item $Item } + $Status = 'Completed' + + Write-Verbose "Activity completed Function: $FunctionName." + if ($TaskStatus) { + $QueueTask.Status = 'Completed' + $null = Set-CippQueueTask @QueueTask + } + } catch { + $ErrorMsg = $_.Exception.Message + $Status = 'Failed' + if ($TaskStatus) { + $QueueTask.Status = 'Failed' + $QueueTask.Message = $ErrorMsg + $null = Set-CippQueueTask @QueueTask + } + } + } else { + $ErrorMsg = 'Function not provided' + $Status = 'Failed' + if ($TaskStatus) { + $QueueTask.Status = 'Failed' + $null = Set-CippQueueTask @QueueTask + } + } + } catch { + Write-Error "Error in Receive-CippActivityTrigger: $($_.Exception.Message)" + $Status = 'Failed' + $Output = $null + if ($TaskStatus) { + $QueueTask.Status = 'Failed' + $null = Set-CippQueueTask @QueueTask + } + } + + # Return the captured output if it exists and is not null + if ($null -ne $Output -and $Output -ne '') { + return $Output + } else { + return "Activity function ended with status $($Status)." + } +} + +function Receive-CIPPTimerTrigger { + <# + .SYNOPSIS + This function is used to execute timer functions based on the cron schedule. + .DESCRIPTION + This function is used to execute timer functions based on the cron schedule. + .PARAMETER Timer + The timer trigger object from the function app + .FUNCTIONALITY + Entrypoint + #> + param($Timer) + + $UtcNow = (Get-Date).ToUniversalTime() + $Functions = Get-CIPPTimerFunctions + $Table = Get-CIPPTable -tablename CIPPTimers + $Statuses = Get-CIPPAzDataTableEntity @Table + $FunctionName = $env:WEBSITE_SITE_NAME + + foreach ($Function in $Functions) { + Write-Information "CIPPTimer: $($Function.Command) - $($Function.Cron)" + $FunctionStatus = $Statuses | Where-Object { $_.RowKey -eq $Function.Id } + if ($FunctionStatus.OrchestratorId) { + $FunctionName = $env:WEBSITE_SITE_NAME + $InstancesTable = Get-CippTable -TableName ('{0}Instances' -f ($FunctionName -replace '-', '')) + $Instance = Get-CIPPAzDataTableEntity @InstancesTable -Filter "PartitionKey eq '$($FunctionStatus.OrchestratorId)'" -Property PartitionKey, RowKey, RuntimeStatus + if ($Instance.RuntimeStatus -eq 'Running') { + Write-LogMessage -API 'TimerFunction' -message "$($Function.Command) - $($FunctionStatus.OrchestratorId) is still running" -sev Warn -LogData $FunctionStatus + Write-Warning "CIPP Timer: $($Function.Command) - $($FunctionStatus.OrchestratorId) is still running, skipping execution" + continue + } + } + try { + if ($FunctionStatus.PSObject.Properties.Name -contains 'ErrorMsg') { + $FunctionStatus.ErrorMsg = '' + } + + $Parameters = @{} + if ($Function.Parameters) { + $Parameters = $Function.Parameters | ConvertTo-Json | ConvertFrom-Json -AsHashtable + } + + # Prepare telemetry metadata + $metadata = @{ + Command = $Function.Command + Cron = $Function.Cron + FunctionId = $Function.Id + TriggerType = 'Timer' + } + + # Add parameters if available + if ($Parameters.Count -gt 0) { + $metadata['ParameterCount'] = $Parameters.Count + # Add specific known parameters + Write-Host "CIPP TIMER PARAMETERS: $($Parameters | ConvertTo-Json -Depth 10 -Compress)" + if ($Parameters.Tenant) { + $metadata['Tenant'] = $Parameters.Tenant + } + if ($Parameters.TenantFilter) { + $metadata['Tenant'] = $Parameters.TenantFilter + } + if ($Parameters.TenantFilter.value) { + $metadata['Tenant'] = $Parameters.TenantFilter.value + } + if ($Parameters.Tenant.value) { + $metadata['Tenant'] = $Parameters.Tenant.value + } + if ($Parameters.Tenant.defaultDomainName) { + $metadata['Tenant'] = $Parameters.Tenant.defaultDomainName + } + } + + # Wrap the timer function execution with telemetry + + Invoke-Command -ScriptBlock { & $Function.Command @Parameters } + + + if ($Results -match '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$') { + $FunctionStatus.OrchestratorId = $Results -join ',' + $Status = 'Started' + } else { + $Status = 'Completed' + } + } catch { + $Status = 'Failed' + $ErrorMsg = $_.Exception.Message + if ($FunctionStatus.PSObject.Properties.Name -contains 'ErrorMsg') { + $FunctionStatus.ErrorMsg = $ErrorMsg + } else { + $FunctionStatus | Add-Member -MemberType NoteProperty -Name ErrorMsg -Value $ErrorMsg + } + Write-Information "Error in CIPPTimer for $($Function.Command): $($_.Exception.Message)" + } + $FunctionStatus.LastOccurrence = $UtcNow + $FunctionStatus.Status = $Status + + Add-CIPPAzDataTableEntity @Table -Entity $FunctionStatus -Force + } + return $true +} + +Export-ModuleMember -Function @('Receive-CippHttpTrigger', 'Receive-CippOrchestrationTrigger', 'Receive-CippActivityTrigger', 'Receive-CIPPTimerTrigger') + diff --git a/Modules/CippExtensions/CippExtensions.psd1 b/Modules/CippExtensions/CippExtensions.psd1 new file mode 100644 index 000000000000..8a30d23c6ef1 Binary files /dev/null and b/Modules/CippExtensions/CippExtensions.psd1 differ diff --git a/Modules/CippExtensions/CippExtensions.psm1 b/Modules/CippExtensions/CippExtensions.psm1 new file mode 100644 index 000000000000..633b97d8e97c --- /dev/null +++ b/Modules/CippExtensions/CippExtensions.psm1 @@ -0,0 +1,14 @@ +# ModuleBuilder will concatenate all function files into this module +# This block is only used when running from source (not built) +$Public = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Public\*.ps1") -Recurse -ErrorAction SilentlyContinue) +$Private = @(Get-ChildItem -Path (Join-Path $PSScriptRoot "Private\*.ps1") -Recurse -ErrorAction SilentlyContinue) +$Functions = $Public + $Private +foreach ($import in @($Functions)) { + try { + . $import.FullName + } catch { + Write-Error -Message "Failed to import function $($import.FullName): $_" + } +} + +Export-ModuleMember -Function $Functions.BaseName -Alias * diff --git a/Modules/CippExtensions/ConversionTable.csv b/Modules/CippExtensions/ConversionTable.csv new file mode 100644 index 000000000000..27ee53d2fe35 --- /dev/null +++ b/Modules/CippExtensions/ConversionTable.csv @@ -0,0 +1,5826 @@ +Product_Display_Name,String_Id,GUID,Service_Plan_Name,Service_Plan_Id,Service_Plans_Included_Friendly_Names +10-Year Audit Log Retention Add On,10_ALR_ADDON,c2e41e49-e2a2-4c55-832a-cf13ffba1d6a,Auditing_10Year_ Retention_ Add_On,7d16094b-4db8-41ff-a182-372a90a85407,Auditing 10Year Retention Add On +Advanced Communications,ADV_COMMS,e4654015-5daf-4a48-9b37-4f309dddd88b,TEAMS_ADVCOMMS,604ec28a-ae18-4bc6-91b0-11da94504ba9,Microsoft 365 Advanced Communications +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,CDSAICAPACITY,a7c70a41-5e02-4271-93e6-d9b4184d83f5,AI Builder capacity add-on +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_A,5f3b1ded-75c0-4b31-8e6e-9b077eaadfd5,Microsoft Application Protection and Governance (A) +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_D,2e6ffd72-52d1-4541-8f6c-938f9a8d4cdc,Microsoft Application Protection and Governance (D) +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Career Coach for faculty,CAREERCOACH_FACULTY,95de1760-7682-406d-98c9-52ef14e51e2b,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Career Coach for students,CAREERCOACH_STUDENTS,01c8007a-57d2-41e0-a3c3-0b46ead16cc4,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Premium Add-on,Clipchamp_Premium_Add_on,4b2c20e4-939d-4bf4-9dd8-6870240cfe19,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Microsoft Entra RIGHTS +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,ONEDRIVELITE_IW,b4ac11a0-32ff-4e78-982d-e039fa803dec,Office for the web with OneDrive for business +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,MCOBASIC,448898aa-3ae7-478c-b49a-1fac7a8a35cf,Skype Meetings +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,YAMMER_BASIC,6db7aeea-6c4a-475d-bbb0-7338bc73d646,Yammer +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,CDS_FILE_CAPACITY,dd12a3a8-caec-44f8-b4fb-2f1a864b51e3,Common Data Service for Apps File Capacity +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,CDS_DB_CAPACITY,360bcc37-0c11-4264-8eed-9fa7a3297c9b,Common Data Service for Apps Database Capacity +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,CDS_DB_CAPACITY_GOV,1ddffef6-4f69-455e-89c7-d5d72105f915,Common Data Service for Apps Database Capacity for Government +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,CDS_LOG_CAPACITY,dc48f5c5-e87d-43d6-b884-7ac4a59e7ee9,Common Data Service for Apps Log Capacity +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS +Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud +Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,CRMSTORAGE,77866113-0f3e-4e6e-9666-b1e25c6f99b0,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,CRMINSTANCE,eeea837a-c885-4167-b3d5-ddde30cbd85f,Microsoft Dynamics CRM Online Instance +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,CRMTESTINSTANCE,a98b7619-66c7-4885-bdfc-1d9c8c3d279f,Microsoft Dynamics CRM Online Additional Test Instance +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,SOCIAL_ENGAGEMENT_APP_USER,339f4def-5ad8-4430-8d12-da5fd4c769a7,Dynamics 365 AI for Market Insights - Free +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,D365_AssetforSCM,90467813-5b40-40d4-835c-abd48009b1d9,Asset Maintenance Add-in +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Additional Environment Addon,DYN365_BUSCENTRAL_ADD_ENV_ADDON,a58f5506-b382-44d4-bfab-225b2fbf8390,DYN365_BUSCENTRAL_ENVIRONMENT,d397d6c6-9664-4502-b71c-66f39c400ca4,Dynamics 365 Business Central Additional Environment Addon +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,DYN365_BUSCENTRAL_DB_CAPACITY,ae6b27b3-fe31-4e77-ae06-ec5fabbc103a,Dynamics 365 Business Central Database Capacity +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,Dynamics 365 for Business Central Essentials +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,DYN365_BUSCENTRAL_ESSENTIALS_ATTACH,17ca446c-d7a4-4d29-8dec-8e241592164b,Dynamics 365 Business Central Essentials Attach +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,DYN365_FINANCIALS_ACCOUNTANT,170991d7-b98e-41c5-83d4-db2052e1795f,Dynamics 365 Business Central External Accountant +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,PROJECT_MADEIRA_PREVIEW_IW,3f2afeed-6fb5-4bf9-998f-f2912133aead,Dynamics 365 Business Central for IWs +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,DYN365_BUSCENTRAL_PREMIUM,8e9002c0-a1d8-4465-b952-817d2948e6e2,Dynamics 365 Business Central Premium +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,DYN365_FINANCIALS_TEAM_MEMBERS,d9a6391b-8970-4976-bd94-5f205007c8d8,Dynamics 365 for Team Members +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,DYN365_RETAIL_TRIAL,874d6da5-2a67-45c1-8635-96e8b3e300ea,Dynamics 365 for Retail Trial +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_CSI_EMBED_CE,1412cdc1-d593-4ad1-9050-40c30ad0b023,Dynamics 365 Customer Service Insights for CE Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Forms_Pro_CE,97f29a83-1a20-44ff-bf48-5e4ad11f3e51,Microsoft Dynamics 365 Customer Voice for Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Customer Insights BASE +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE,b3c26516-3b8d-492f-a5a3-64d70ad3f8d0,Dynamics 365 Customer Insights Engagement Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,CDS_CUSTOMER_INSIGHTS_TRIAL,94e5cbf6-d843-4ee8-a2ec-8b15eb52019e,Common Data Service for Customer Insights Trial +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE_TRIAL,e2bdea63-235e-44c6-9f5e-5b0e783f07dd,Dynamics 365 Customer Insights Engagement Insights Viral +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_VIRAL,ed8e8769-94c5-4132-a3e7-7543b713d51f,Dynamics 365 Customer Insights Viral Plan +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,Forms_Pro_Customer_Insights,fe581650-cf61-4a09-8814-4bd77eca9cb5,Microsoft Dynamics 365 Customer Voice for Customer Insights +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,D365_CUSTOMER_SERVICE_ENT_ATTACH,61a2665f-1873-488c-9199-c3d0bc213fdf,Dynamics 365 for Customer Service Enterprise Attach +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_MESSAGING_VIRAL_TRIAL,3bf52bdf-5226-4a97-829e-5cca9b3f3392,Dynamics 365 Customer Service Digital Messaging vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_ENTERPRISE_VIRAL_TRIAL,94fb67d3-465f-4d1f-a50a-952da079a564,Dynamics 365 Customer Service Enterprise vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYNB365_CSI_VIRAL_TRIAL,33f1466e-63a6-464c-bf6a-d1787928a56a,Dynamics 365 Customer Service Insights vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_VOICE_VIRAL_TRIAL,3de81e39-4ce1-47f7-a77f-8473d4eb6d7c,Dynamics 365 Customer Service Voice vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Customer Service Insights Trial,DYN365_AI_SERVICE_INSIGHTS,61e6bd70-fbdb-4deb-82ea-912842f39431,DYN365_AI_SERVICE_INSIGHTS,4ade5aa6-5959-4d2c-bf0a-f4c9e2cc00f2,Dynamics 365 AI for Customer Service Trial +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,DYN365_CDS_FORMS_PRO,363430d1-e3f7-43bc-b07b-767b6bb95e4b,Common Data Service +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PRO,17efdd9f-c22c-4ad8-b48e-3b1f3ee1dc9a,Dynamics 365 Customer Voice +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,DYN365_CUSTOMER_SERVICE_PRO,6929f657-b31b-4947-b4ce-5066c3214f54,Dynamics 365 for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,POWERAPPS_CUSTOMER_SERVICE_PRO,c507b04c-a905-4940-ada6-918891e6d3ad,Power Apps for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,FLOW_CUSTOMER_SERVICE_PRO,0368fc9c-3721-437f-8b7d-3d0f888cdefc,Power Automate for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,D365_CUSTOMER_SERVICE_PRO_ATTACH,a9dd2dca-10ae-4da2-aaf0-d3fe8a825110,Dynamics 365 for Customer Service Pro Attach +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,Customer_Voice_Base,296820fe-dce5-40f4-a4f2-e14b8feef383,Dynamics 365 Customer Voice Base Plan +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,Forms_Pro_AddOn,90a816f6-de5f-49fd-963c-df490d73b7b5,Microsoft Dynamics 365 Customer Voice Add-on +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,CUSTOMER_VOICE_ADDON,e6e35e2d-2e7f-4e71-bc6f-2f40ed062f5d,Dynamics Customer Voice Add-On +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,CDS_FORM_PRO_USL,e9830cfd-e65d-49dc-84fb-7d56b9aa2c89,Common Data Service +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,Forms_Pro_USL,3ca0766a-643e-4304-af20-37f02726339b,Microsoft Dynamics 365 Customer Voice USL +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,CRMSTORAGE_GCC,62edd427-6067-4274-93c4-29afdeb30707,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,CRM_ONLINE_PORTAL,1d4e9cb1-708d-449c-9f71-943aa8ed1d6a,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,CRMINSTANCE_GCC,483cc331-f4df-4a3b-b8ca-fe1a247569f6,Microsoft Dynamics CRM Online Instance +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,CDS_FIELD_SERVICE_CONTRACTOR,f4614a66-d632-443a-bc77-afe92987b322,Common Data Service Field service Part Time Contractors +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,DYN365_FS_ENTERPRISE_VIRAL_TRIAL,20d1455b-72b2-4725-8354-a177845ab77d,Dynamics 365 Field Service Enterprise vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,D365_Finance,9f0e1b4e-9b33-4300-b451-b2c662cd4ff7,Microsoft Dynamics 365 for Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,DYN365_ENTERPRISE_CASE_MANAGEMENT,2822a3a1-9b8f-4432-8989-e11669a60dc8,Dynamics 365 for Case Management +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_CDS_RETAIL,93cc200d-a47f-4c56-aec1-83f8b0d0425a,Common Data Service for Dynamics 365 Retail +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_RETAIL,117e3aa0-8d08-4a19-a6a5-90b7a96e2128,Dynamics 365 Commerce +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_ACC_PROTECTION,4c00c16c-0304-4421-b598-555c3e78edcb,Dynamics 365 Fraud Protection - Account Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_LOSS_PREVENTION,ecc62904-fa88-4552-a62c-fe582fb31444,Dynamics 365 Fraud Protection - Loss Prevention +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_PURCH_PROTECTION,d703990f-006e-459b-b8dd-1267c4533a22,Dynamics 365 Fraud Protection - Purchase Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_COMBINED_BASE,d66ee5da-07d5-49d6-a1d8-45662c3f37be,Dataverse for Customer Insights Combined Base +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,DYN365_CUSTOMER_INSIGHTS_JOURNEYS_BASE,1720c3f7-7da3-4a11-8324-92aad283eb68,Dynamics 365 Customer Insights Journeys +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,CDS_CUSTOMER_INSIGHTS_JOURNEYS_ADD-ON,2f2e81a6-15de-4041-9f33-73c06fed3801,Dataverse for Customer Insights Journeys add-on +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,D365_FIELD_SERVICE_ATTACH,55c9148b-d5f0-4101-b5a0-b2727cfc0916,Dynamics 365 for Field Service Attach +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,D365_GUIDES_VIRAL_TRIAL,fe986032-d840-4817-82d4-51fe4fbbe163,Dynamics 365 Guides vTrial +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Forms_Pro_Talent,1c4ae475-5608-43fa-b3f7-d20e07cf24b4,Microsoft Dynamics 365 Customer Voice for Talent +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_SELF_SERVICE_OPS,835b837b-63c1-410e-bf6b-bdef201ad129,Dynamics 365 Human Resource Self Service +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_OPS,8b21a5dc-5485-49ed-a2d4-0e772c830f6d,Dynamics 365 Human Resources +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_Attach,3219525a-4064-45ec-9c35-a33ea6b39a49,Dynamics 365 Human Resources Attach +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_ATTACH_OPS,90d8cb62-e98a-4639-8342-8c7d2c8215ba,Dynamics 365 Human Resources Attach License +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,DYN365_MARKETING_CONTACT_ADDON,18db5075-2c70-408d-a82b-929059d782af,Dynamics 365 for Marketing Additional Contacts Tier 1 +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Non-Prod Application,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,c393e9bd-2335-4b46-8b88-9e2a86a85ec1,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,1599de10-5250-4c95-acf2-491f74edce48,Dynamics 365 Marketing Sandbox Application AddOn +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,Forms_Pro_Marketing,76366ba0-d230-47aa-8087-b6d55dae454f,Microsoft Dynamics 365 Customer Voice for Marketing +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_RETAIL_Activity,f06754ec-6d72-4bf6-991c-4cb5413d9932,Dynamics 365 for Retail Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Attract_Activity,aac5a56b-b02e-4608-8014-b076646d4011,Dynamics 365 for Talent - Attract Experience Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Onboard_Activity,db225597-e9c2-4d96-8ace-5424744c80f8,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Talent_Activity,1f87ee90-5c3a-4cf9-b6fd-e3e8017c26ec,Dynamics 365 for Talent Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Operations_Activity,6bddf93e-d6f4-4991-b9fc-30cfdf07ee7b,Dynamics365 for Operations Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Forms_Pro_SalesEnt_GCC,33850b82-0a37-4ebb-a0b2-ee163facd716,Microsoft Dynamics 365 Customer Voice for Sales Enterprise for GCC +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_SALES_INSIGHTS,fedc185f-0711-4cc0-80ed-0a92da1a8384,Dynamics 365 AI for Sales (Embedded) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,D365_SCM_Attach,b21c777f-c2d5-486e-88f6-fc0a3e474271,Dynamics 365 for Supply Chain Management Attach +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,DYN365_BUSINESS_Marketing,393a0c96-9ba1-4af0-8975-fa2f853a25ac,Dynamics 365 Marketing +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_ENTERPRISE_VIRAL_TRIAL,7f636c80-0961-41b2-94da-9642ccf02de0,Dynamics 365 Sales Enterprise vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_INSIGHTS_VIRAL_TRIAL,456747c0-cf1e-4b0d-940f-703a01b964cc,Dynamics 365 Sales Insights vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,DYN365_SALES_PRO,88d83950-ff78-4e85-aa66-abfc787f8090,Dynamics 365 for Sales Professional +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,POWERAPPS_SALES_PRO,6f9f70ce-138d-49f8-bb8b-2e701b7dde75,Power Apps for Sales Pro +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,PROJECT_ESSENTIALS,f944d685-f762-4371-806d-a1f48e5bea13,Project Online Essentials +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2)Dynamics 365 for Sales Pro Attach +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,DYN365_SALES_PRO_GOV,dd89efa0-5a55-4892-ba30-82e3f8008339,Dynamics 365 for Sales Professional for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,POWERAPPS_SALES_PRO_GOV,12cf31f8-754f-4efe-87a8-167c19e30831,Power Apps for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,FLOW_SALES_PRO_GOV,e62ffe5b-7612-441f-a72d-c11cf456d33a,Power Automate for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW,73f205fc-6b15-47a5-967e-9e64fdf72d0a,Dynamics 365 for Sales Professional Trial +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW_Trial,db39a47e-1f4f-462b-bf5b-2ec471fb7b88,Dynamics 365 for Sales Professional Trial +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,D365_SALES_PRO_ATTACH,065f3c64-0649-4ec7-9f47-ef5cf134c751,Dynamics 365 for Sales Pro Attach +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_DemandPlanning,e8b616eb-1a6d-42b4-84c7-b63870791349,DO NOT USE - Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,Dynamics 365 for Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM_Premium,0363c8e5-c30d-4d7c-a621-7b6cab5e0482,Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,Dynamics 365 for Talent: Onboard +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_for_HCM_Trial,5ed38b64-c3b7-4d9f-b1cd-0de18c9c4331,Dynamics 365 for HCM Trial +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,Dynamics 365 for Team Members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,5a94d0aa-ee95-455a-bb38-326e5f134478,Dynamics 365 for Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,DYN365_RETAIL_DEVICE,ceb28005-d758-4df7-bb97-87a617b93d6c,Dynamics 365 for Retail Device +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,Dynamics_365_for_OperationsDevices,2c9fb43e-915a-4d61-b6ca-058ece89fd66,Dynamics 365 for Operations Devices +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,Dynamics_365_for_Operations_Sandbox_Tier2,d8ba6fb2-c6b1-4f07-b7c8-5f2745e36b54,Dynamics 365 for Operations non-production multi-box instance for standard acceptance testing (Tier 2) +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,Dynamics_365_for_Operations_Sandbox_Tier4,f6b5efb1-1813-426f-96d0-9b4f7438714f,Dynamics 365 for Operations Enterprise Edition - Sandbox Tier 4:Standard Performance Testing +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,D365_SALES_ENT_ATTACH,3ae52229-572e-414f-937c-ff35a87d4f29,Dynamics 365 for Sales Enterprise Attach +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,Dynamics 365 Team Members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,EOP_ENTERPRISE_PREMIUM,75badc48-628e-4446-8460-41344d73abd6,Exchange Enterprise CAL Services (EOP DLP) +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online Archiving for Exchange Online,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE +Exchange Online Archiving for Exchange Server,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER +Exchange Online Essentials (ExO P1 Based),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Exchange Online Kiosk,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK +Exchange Online POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP +Exchange Online Protection,EOP_ENTERPRISE,45a2423b-e884-448d-a831-d9e139c52d2f,EOP_ENTERPRISE,326e2b78-9d27-42c9-8509-46c827743a17,Exchange Online Protection +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +Intune,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,ERP_TRIAL_INSTANCE,e2f705fd-2468-4090-8c58-fad6e6b1e724,Dynamics 365 Operations Trial Environment +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,CRMPLAN2_GCC,3d53f6d9-d6e0-45c1-9575-6acd77692584,Microsoft Dynamics CRM Online Government Basic +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,CRMSTANDARD_GCC,2b8c7c8c-9db5-44a5-a1dd-f4aa5b97b372,Microsoft Dynamics CRM Online Professional for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for enterprise (device),OFFICE_PROPLUS_DEVICE1,ea4c5ec8-50e3-4193-89b9-50da5bd4cdc7,OFFICE_PROPLUS_DEVICE,3c994f28-87d5-4273-b07a-eb6190852599,Microsoft 365 Apps for Enterprise (Device) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Audio Conferencing for faculty,MCOMEETADV_FACULTY,c2cda955-3359-44e5-989f-852ca0cfa02f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 Audio Conferencing_USGOV_GCCHIGH,MCOMEETADV_USGOV_GCCHIGH,4dee1f32-0808-4fd2-a2ed-fdd575e3a45f,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 Audio Conferencing - GCCHigh Tenant (AR)_USGOV_GCCHIGH,MCOACBYOT_AR_GCCHIGH_USGOV_GCCHIGH,170ba00c-38b2-468c-a756-24c05037160a,MCOACBYOT_GCCHigh,c85e4b03-254a-453b-af72-167a53f38530,Microsoft 365 Audio Conferencing - GCCHigh Tenant +Microsoft 365 Audio Conferencing Pay-Per-Minute - EA,MCOMEETACPEA,df9561a4-4969-4e6a-8e73-c601b68ec077,MCOMEETACPEA,bb038288-76ab-49d6-afc1-eaa6c222c65a,Microsoft 365 Audio Conferencing Pay-Per-Minute +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Domestic Calling Plan (120 minutes) - US,MCOPSTN5_US,d13e9d1b-316a-4946-98c6-362c97a4fdfe,PSTN5_US,1346d5e6-15a6-4b88-9693-806ff7296a7a,Microsoft 365 Domestic Calling Plan - US (120 minutes) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SharePoint (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FORMS_PLAN_E5_AR_GCCHIGH,cf1b2895-e3fd-4b33-9594-2ab924104547,Microsoft Forms (Plan E5) for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,POWERAPPS_O365_P3_GCCHIGH,b50a9096-5b07-4ded-a5e4-a492fb94b6ee,Power Apps for Office 365 for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FLOW_O365_P3_GCCHIGH,ee939cf0-7cd1-4262-9f72-9eaa45dbba69,Power Automate for Office 365 for GCCHigh +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for O365 K SKU +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Online Kiosk +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,TEAMS_DESKLESS,a42de799-58ae-4e6a-aa1d-948e7abec726,Microsoft Teams Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,DYN365_CDS_O365_F1_GCC,29007dd3-36c0-4cc2-935d-f5bca2c2c473,Common Data Service - O365 F1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,CDS_O365_F1_GCC,5e05331a-0aec-437e-87db-9ef5934b5771,Common Data Service for Teams_F1 GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,EXCHANGE_S_DESKLESS_GOV,88f4d7ef-a73b-4246-8047-516022144c9f,Exchange Online (Kiosk) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FORMS_GOV_F1,bfd4133a-bbf3-4212-972b-60412137c428,Forms for Government (Plan F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,STREAM_O365_K_GOV,d65648f1-9504-46e4-8611-2658763f28b8,Microsoft Stream for O365 for Government (F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTDESKLESS_GOV,b1aeb897-3a19-46e2-8c27-a609413cf193,SharePoint KioskG +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MCOIMP_GOV,8a9f17f1-5872-44e8-9b11-3caade9dc90f,Skype for Business Online (Plan 1) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ADALLOM_S_STANDALONE_DOD,6ebdddb7-8e55-4af2-952b-69e77262f96c,Microsoft Defender for Cloud Apps for DOD +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AAD_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,RMS_S_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,ADALLOM_S_DISCOVERY +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,DYN365_CDS_O365_F1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE_S_DESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,RMS_S_ENTERPRISE +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MFA_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,INTUNE_A +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,PROJECTWORKMANAGEMENT +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT_SEARCH +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,STREAM_O365_K +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINTDESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,MCOIMP +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,OFFICESUBSCRIPTION_unattended_GOV,18dfd9bd-5214-4184-8123-c9822d81a9bc,Microsoft 365 Apps for enterprise (unattended) for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Sales Copilot Premium & Trial +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Sales Copilot Premium with Power Automate +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving for Exchange Online +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-based classification +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Business Center,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft 365 Chat +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,CDS_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,FLOW_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_Gov,bcc0702e-ba97-48d9-ae04-fa8689c53bba,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Virtual_Agent_Usl_Gov,00b6f978-853b-4041-9de0-a233d18669aa,Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Virtual_Agent_Usl_Gov_High,7ffee552-ebe8-4725-8678-5c1775c05847,Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,FLOW_Virtual_Agent_Base_Gov_High,225e52e5-7bbf-4793-8fb1-4307a7a1ae8e,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Flow_Virtual_Agent_Usl_Gov_High,aaae1744-dc7a-4811-9dd0-2bf926ff9d80,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Power_Virtual_Agent_Usl_GCC_High,3fbe8cdf-c735-44bf-bbfa-646724af4bb4,Power Virtual Agent USL for GCC High +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,DYN365_CDS_CCI_BOTS +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,CCIBOTS_PRIVPREV_VIRAL +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,FLOW_CCI_BOTS +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,MCS_BizApps_Cloud_for_Sustainability_vTrial,c1c902e3-a956-4273-abdb-c92afcd027ef,MCS - BizApps_Cloud for Sustainability_vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft Defender for Endpoint F2,Microsoft_Defender_for_Endpoint_F2,e430a580-c37b-4d16-adba-d881d7cd0364,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P1 for EDU,DEFENDER_ENDPOINT_P1_EDU,bba890d4-7881-4584-8102-0c3fdfb739a7,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ADALLOM_FOR_AATP,61d18b02-6889-479f-8f36-56e6e0fe5792,SecOps Investigation for MDI +Microsoft Defender for Office 365 (Plan 1) Faculty,ATP_ENTERPRISE_FACULTY,26ad4b5c-b686-462e-84b9-d7c22b46837f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) GCC,ATP_ENTERPRISE_GOV,d0d1ca43-b81a-4f51-81e5-a5b1ad7bb005,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 1)_USGOV_GCCHIGH,ATP_ENTERPRISE_USGOV_GCCHIGH ,550f19ba-f323-4a7d-a8d2-8971b0d9ea85,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student,ATP_ENTERPRISE_STUDENT,917fb2b4-f71c-43a1-8edc-75532b554bb5,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student use benefit,ATP_ENTERPRISE_STUDENTS_USE_BENEFIT,a237b6d8-572e-4839-bffd-7786d32a5d0e,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft Defender Vulnerability Management,TVM_Premium_Standalone,1925967e-8013-495f-9644-c99f8b463748,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Defender Vulnerability Management Add-on,TVM_Premium_Add_on,ad7a56e0-6903-4d13-94f3-5ad491e78960,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Internet_Access,8d23cb83-ab07-418f-8517-d7aca77307dc,Microsoft Entra Internet Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Intune Advanced Analytics,Microsoft_Intune_Advanced_Analytics,5e36d0d4-e9e5-4052-aba0-0257465c9b86,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Microsoft Intune Advanced Analytics +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,FLOW_DEV_VIRAL,c7ce3f26-564d-4d3a-878d-d8ab868c85fe,Flow for Developer +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,POWERAPPS_DEV_VIRAL,a2729df7-25f8-4e63-984b-8a8484121554,PowerApps for Developer +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service - VIRAL +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,Flow Free +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL_REAL,d20bfa21-e9ae-43fc-93c2-20783f0840c3,Flow P2 Viral +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,POWERAPPS_P2_VIRAL,d5368ca3-357e-4acb-9c21-8495fb025d1f,PowerApps Trial +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Microsoft Entra ID +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Intune Advanced endpoint analytics +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-EPM,bb73f429-78ef-4ff2-83c8-722b04c3e7d1,Intune Endpoint Privilege Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,INTUNE_P2,d9923fe3-a2de-4d29-a5be-e3e83bb786be,Intune Plan 2 +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-MAMTunnel,a6e407da-7411-4397-8a2e-d9b52780849e,Microsoft Tunnel for Mobile Application Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,POWERAPPS_P2,00527d7f-d5bc-4c2a-8d1e-6c0de2410c81,Power Apps (Plan 2) +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Forms_Pro_Relationship_Sales,507172c0-6001-4f4f-80e7-f350507af3e5,Microsoft Dynamics 365 Customer Voice for Relationship Sales +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,56e3d4ca-2e31-4c3f-8d57-89c1d363503b,Microsoft Relationship Sales solution +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,STREAM_P2,d3a458d0-f10d-48c2-9e44-86f3f684029e,Microsoft Stream Plan 2 +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,STREAM_STORAGE,83bced11-77ce-4071-95bd-240133796768,Microsoft Stream Storage Add-On +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_USL_PLUS,beaf5b5c-d11c-4417-b5cb-cd9f9e6719b0,MCS - BizApps Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_APPS_FOR_MCS_USL_PLUS,c5502fe7-406d-442a-827f-4948b821ba08,Power Apps for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_AUTOMATE_FOR_MCS_USL_PLUS,1c22bb50-96fb-49e5-baa6-195cab19eee2,Power Automate for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Audio Conferencing with dial-out to USA/CAN,Microsoft_Teams_Audio_Conferencing_select_dial_out,1c27243e-fb4d-42b1-ae8c-fe25c9616588,MCOMEETBASIC,9974d6cf-cd24-4ba2-921c-e2aa687da846,Microsoft Teams Audio Conferencing with dial-out to select geographies +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) +Microsoft Teams Calling Plan pay-as-you-go (country zone 1 - US),Microsoft_Teams_Calling_Plan_pay_as_you_go_(country_zone_1_US),9b196e97-5830-4c2e-adc2-1e10ebf5dee5,MCOPSTN_PAYG_1,156a1efe-17cd-4b03-9f17-2eb512298fb3,Microsoft Teams Calling Plan pay-as-you-go - country zone 1 +Microsoft Teams Domestic Calling Plan (240 min),MCOPSTN_6,729dbb8f-8d56-4994-8e33-2f218f549544,MCOPSTN6,346d83bf-6fe6-42ca-b424-b9300d2e21bf,Microsoft 365 Domestic Calling Plan (240 min) +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling Plan for Government +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Teams Essentials,Teams_Ess,fde42873-30b6-436b-b361-21af5a6b84ae,TeamsEss,f4f2f6de-6830-442b-a433-e92249faebe2,Microsoft Teams Essentials +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft Teams Phone Standard,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Faculty,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT +Microsoft Teams Phone Standard for GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Small and Medium Business,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS +Microsoft Teams Phone Standard for Students,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Resource Account,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for Faculty,PHONESYSTEM_VIRTUALUSER_FACULTY,0e142028-345e-45da-8d92-8bfd4093bbb9,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone Standard Resource Account for Government +Microsoft Teams Phone Resource Account_USGOV_GCCHIGH,PHONESYSTEM_VIRTUALUSER_USGOV_GCCHIGH ,e3f0522e-ebb7-4561-9f90-b44516d65b77,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Rooms_Pro,0374d34c-6be4-4dbb-b3f0-26105db0b28a,Teams Rooms Pro +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID Plan 1 +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Threat Experts - Experts on Demand,EXPERTS_ON_DEMAND,9fa2f157-c8e4-4351-a3f2-ffa506da1406,EXPERTS_ON_DEMAND,b83a66d4-f05f-414d-ac0f-ea1c5239c42b,Microsoft Threat Experts - Experts on Demand +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Glint,Viva_Glint_Standalone,3dc7332d-f0fa-40a3-81d3-dd6b84469b78,Viva_Glint,6b270342-093e-4015-8c5c-224561532fbf,Viva Glint +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Microsoft Viva Topics +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_COMMUNITIES_AND_COMMUNICATIONS,43304c6a-1d4e-4e0b-9b06-5b2a2ff58a90,Viva Engage Communities and Communications +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_KNOWLEDGE,c244cc9e-622f-4576-92ea-82e233e44e36,Viva Engage Knowledge +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Defender for Office 365 (Plan 1),ATP_ENTERPRISE,4ef96642-f096-40de-a3e9-d83fb2f90211,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE_S_FOUNDATION_GOV +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,SHAREPOINTSTORAGE_GOV,e5bb877f-6ac9-4461-9e43-ca581543ab16,SHAREPOINTSTORAGE_GOV +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams_P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for O365 E1 SKU +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 Extra File Storage,SHAREPOINTSTORAGE,99049c9c-6011-4908-bf17-15f496e6519d,SHAREPOINTSTORAGE,be5a7ed5-c598-4fcd-a061-5e6724c68a58,Office 365 Extra File Storage +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FORMS_PLAN_E1_AR_GCCHIGH,9c37c053-dfe3-4421-b6d4-bac8b86d42bd,Microsoft Forms (Plan E1) for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,POWERAPPS_O365_P1_GCCHIGH,3913e44e-824e-490c-a182-82785d769b45,Power Apps for Office 365 for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FLOW_O365_P1_GCCHIGH,e923bad8-588e-44d5-acd0-b226daa7b4de,Power Automate for Office 365 for GCCHigh +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT Microsoft Entra RIGHTS +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FORMS_PLAN_K_AR_GCCHIGH,59fb5884-fdec-40bf-aa7f-89e2bae79a7a,Microsoft Forms (Plan F1) for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,POWERAPPS_O365_S1_GCCHIGH,b9f1a92f-d4c7-477b-b64c-e23d7b4e8cf9,Power Apps for Office 365 F3 for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FLOW_O365_S1_GCCHIGH,1db85bca-cd60-4bf5-ae54-641e0778a532,Power Automate for Office 365 F3 for GCCHigh +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,DYN365_CDS_O365_P1_GCC,8eb5e9bc-783f-4425-921a-c65f45dd72c6,Common Data Service - O365 P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,CDS_O365_P1_GCC,959e5dec-6522-4d44-8349-132c27c3795a,Common Data Service for Teams_P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FORMS_GOV_E1,f4cba850-4f34-4fd2-a341-0fddfdce1e8f,Forms for Government (Plan E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,STREAM_O365_E1_GOV,15267263-5986-449d-ac5c-124f3b49b2d6,Microsoft Stream for O365 for Government (E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SharePoint Plan 1G,f9c43823-deb4-46a8-aa65-8b551f0c4f8a,SharePoint Plan 1G +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GCC,7251de8f-ecfb-481e-bcff-4af4f1a4573c,Data integration for Project with Power Automate for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_FOR_PROJECT_GCC_P5,684a2229-5c57-43ab-b69f-f86fe8997358,Common Data Service for Project P5 for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_P2_GOV,06879193-37cc-4976-8991-f8165c994ce7,Power Automate P2 for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_P2_GOV,51729bb5-7564-4927-8df8-9f5b12279cf3,PowerApps Plan 2 for Dynamics 365 for Government +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,CDS_PER_APP_IWTRIAL,94a669d1-84d5-4e54-8462-53b0ae2c8be5,CDS Per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,Flow_Per_APP_IWTRIAL,dd14867e-8d31-4779-a595-304405f5ad39,Flow per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,POWERAPPS_PER_APP_IWTRIAL,35122886-cef5-44a3-ab36-97134eabd9ba,PowerApps per app baseline access +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,CDS_ POWERAPPS_PER_APP_CUSTOM_GCC,ee493f70-a3b3-4204-9511-e3f6083b8df3,CDS Power Apps Per App Custom GCC +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,CDS_PER_APP,9f2f00ad-21ae-4ceb-994b-d8bc7be90999,CDS PowerApps per app plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,POWERAPPS_PER_APP,b4f657ff-d83e-4053-909d-baa2b595ec97,Power Apps per App Plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,POWERAPPS_PER_APP_NEW,14f8dac2-0784-4daa-9cb2-6d670b088d64,Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,CDS_ POWERAPPS_PER_APP_CUSTOM_NEW,c2da6658-f89d-49f2-9508-40431dee115b,CDS Power Apps Per App Custom New +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,CDS_PER_APP_GCC,d7f9c9bc-0a28-4da4-b5f1-731acb27a3e4,CDS PowerApps per app plan for GCC +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,DO NOT USE - AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,POWERAPPS_PER_USER_GCC,8f55b472-f8bf-40a9-be30-e29919d4ddfe,Power Apps per User Plan for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,Flow_PowerApps_PerUser_GCC,8e3eb3bd-bc99-4221-81b8-8b8bc882e128,Power Automate for Power Apps per User Plan for GCC +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,POWERAPPS_P1_GOV,5ce719f1-169f-4021-8a64-7d24dcaec15f,PowerApps Plan 1 for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,CDS_POWERAPPS_PORTALS_LOGIN_GCC,0f7b9a29-7990-44ff-9d05-a76be778f410,Common Data Service Power Apps Portals Login Capacity for GCC +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,POWERAPPS_PORTALS_LOGIN_GCC,bea6aef1-f52d-4cce-ae09-bed96c4b1811,Power Apps Portals Login Capacity Add-On for Government +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,CDS_POWERAPPS_PORTALS_PAGEVIEW,72c30473-7845-460a-9feb-b58f216e8694,CDS PowerApps Portals page view capacity add-on +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,POWERAPPS_PORTALS_PAGEVIEW,1c5a559a-ec06-4f76-be5b-6a315418495f,Power Apps Portals Page View Capacity Add-On +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,CDS_POWERAPPS_PORTALS_PAGEVIEW_GCC,352257a9-db78-4217-a29d-8b8d4705b014,CDS PowerApps Portals page view capacity add-on for GCC +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,POWERAPPS_PORTALS_PAGEVIEW_GCC,483d5646-7724-46ac-ad71-c78b7f099d8d,Power Apps Portals Page View Capacity Add-On for Government +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,CDS_Flow_Business_Process,c84e52ae-1906-4947-ac4d-6fb3e5bf7c2e,Common data service for Flow per business process plan +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,FLOW_BUSINESS_PROCESS,7e017b61-a6e0-4bdc-861a-932846591f6e,Flow per business process plan +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,CDS_Flow_Business_Process_GCC,54b61386-c818-4634-8400-61c9e8f6acd3,Common Data Service for Power Automate per Business Process Plan for GCC +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,FLOW_BUSINESS_PROCESS_GCC,cb83e771-a077-4a73-9201-d955585b29fa,Power Automate per Business Process Plan for Government +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,FLOW_PER_USER_GCC,769b8bee-2779-4c5a-9456-6f4f8629fd41,Power Automate per User Plan for Government +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,CDS_ATTENDED_RPA_GCC,4802707d-47e1-45dc-82c5-b6981f0fb38c,Common Data Service Attended RPA for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,POWER_AUTOMATE_ATTENDED_RPA_GCC,fb613c67-1a58-4645-a8df-21e95a37d433,Power Automate Attended RPA for Government +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,DATAVERSE_FOR_POWER_AUTOMATE_PER_PROCESS,d7c3df99-6f58-40b9-8940-cd3a51679d85,Dataverse for Power Automate Per Process +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,CDS_UNATTENDED_RPA,b475952f-128a-4a44-b82a-0b98a45ca7fb,Common Data Service Unattended RPA +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,POWER_AUTOMATE_UNATTENDED_RPA,0d373a98-a27a-426f-8993-f9a425ae99c5,Power Automate Unattended RPA add-on +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,CDS_UNATTENDED_RPA_GCC,5141c408-df3d-456a-9878-a65119b0a750,Common Data Service Unattended RPA for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,POWER_AUTOMATE_UNATTENDED_RPA_GCC,45e63e9f-6dd9-41fd-bd41-93bfa008c537,Power Automate Unattended RPA for Government +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,Microsoft Power BI Information Services Plan 1 +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,Microsoft Power BI Reporting and Analytics Plan 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,PBI_PREMIUM_P1_ADDON,9da49a6d-707a-48a1-b44a-53dcde5267f8,Power BI Premium P +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,PBI_PREMIUM_P1_ADDON_GCC,30df3dbd-5bf6-4d74-9417-cccc096595e4,Power BI Premium P1 for GCC +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,PBI_PREMIUM_EM2_ADDON,4e29abd1-ba96-44c0-8a72-e24e4fe9956e,Power BI Premium EM2 +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,a64b30ba-f310-4065-b444-2670ef146db0,Power BI Premium EM1 +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,POWER_PAGES_VTRIAL,6817d093-2d30-4249-8bd6-774f01efa78c,Power Pages vTrial for Makers +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,CDS_VIRTUAL_AGENT_BASE,0a0a23fa-fea1-4195-bb89-b4789cb12f7f,Common Data Service for Virtual Agent Base +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,FLOW_VIRTUAL_AGENT_BASE,4b81a949-69a1-4409-ad34-9791a6ec88aa,Power Automate for Virtual Agent +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,VIRTUAL_AGENT_BASE,f6934f16-83d3-4f3b-ad27-c6e9c187b260,Virtual Agent Base +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,CDS_Virtual_Agent_Base_Gov,e4d0b25d-e440-4ee9-aac4-1d5a5db9f3ef,Dataverse for Virtual Agent Base for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,Virtual_Agent_Base_GCC,e425b9f6-1543-45a0-8efb-f8fdaf18cba1,Virtual Agent Base for GCC +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,Common Data Service for CCI Bots +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,Flow for CCI Bots +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Project for Office 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,Common Data Service for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,Power Automate for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,MCOMEETBASIC_GOV,986d454b-9027-4d9f-880b-f1b68f920cc4,Microsoft Teams Audio Conferencing with dial-out to select geographies for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,Project Online for Education,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,RMS_S_ADHOC,7a39d7dd-e456-4e09-842a-0204ee08187b,Rights Management Adhoc +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,D365_IOTFORSCM_ADDITIONAL,a5f38206-2f48-4d83-9957-525f4e75e9c0,IoT Intelligence Add-in Additional Machines +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,D365_IOTFORSCM,83dd9619-c7d5-44da-9250-dc4ee79fff7e,Iot Intelligence Add-in for D365 Supply Chain Management +SharePoint Online (Plan 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +SharePoint Online (Plan 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,CDS_O365_E5_KM,3069d530-e41b-421c-ad59-fb1001a23e11,Common Data Service for SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services,f00bd55e-1633-416e-97c0-03684e42bc42,SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services_SPO_type,fd2e7f90-1010-487e-a11b-d2b1ae9651fc,SharePoint Syntex - SPO type +Skype for Business Online (Plan 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) +Skype for Business Online (Plan 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Skype for Business PSTN Calling Domestic Small,MCOPSTN5,d43177b5-475b-4880-92d4-d54c27b5efbd,Skype for Business PSTN Calling Domestic Small,9a0125a5-c8f8-4526-b231-49e2abe0ebce,Skype for Business PSTN Calling Domestic Small +Skype for Business PSTN Domestic and International Calling,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN +Skype for Business PSTN Domestic Calling,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN +Skype for Business PSTN Domestic Calling (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN +Skype for Business PSTN Usage Calling Plan,MCOPSTNPP,06b48c5f-01d9-4b18-9015-03b52040f51a,MCOPSTN3,6b340437-d6f9-4dc5-8cc2-99163f7f83d6,MCOPSTN3 +Teams Phone Mobile,Operator_Connect_Mobile,b84d58c9-0a0d-46cf-8a4b-d9f23c1674d5,MCOFMC1,cb22fbd7-ed7d-4786-a27a-e4cd617b69c0,Teams Phone Mobile +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MESH_IMMERSIVE,acbca54f-c771-423b-a476-6d7a98cbbcec,Microsoft Mesh +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,QUEUES_APP,ab2d4fb5-f80a-4bf1-a11d-7f1da254041b,Queues app for Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +TELSTRA Calling for O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Viva Learning,VIVA_LEARNING,c9d442fc-21fb-4bd7-89e0-a710d74987f6,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for business Basic +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio web app +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Viva Goals User-led,Viva_Goals_User_led,3a349c99-ffec-43d2-a2e8-6b97fcb71103,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Viva Topics) +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Viva Topics +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,Virtualization Rights for Windows 10,e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,CPC_B_1C_2RAM_64GB,3b98b912-1720-4a1e-9630-c9a41dbb61d8,Windows 365 Business 1 vCPU 2 GB 64 GB +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,CPC_B_2C_4RAM_128GB,1a13832e-cd79-497d-be76-24186f55c8b0,Windows 365 Business 2 vCPU 4 GB 128 GB +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,CPC_B_2C_4RAM_256GB,a0b1c075-51c9-4a42-b34c-308f3993bb7e,Windows 365 Business 2 vCPU 4 GB 256 GB +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,CPC_B_2C_4RAM_64GB,a790cd6e-a153-4461-83c7-e127037830b6,Windows 365 Business 2 vCPU 4 GB 64 GB +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,CPC_SS_2,9d2eed2c-b0c0-4a89-940c-bc303444a41b,"Windows 365 Business 2 vCPU, 8 GB, 128 GB" +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,CPC_B_2C_8RAM_256GB,1a3ef005-2ef6-434b-8be1-faa56c892854,Windows 365 Business 2 vCPU 8 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,CPC_B_4C_16RAM_256GB,30f6e561-8805-41d0-80ce-f82698b72d7d,Windows 365 Business 4 vCPU 16 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,CPC_B_4C_16RAM_512GB,15499661-b229-4a1f-b0f9-bd5832ef7b3e,Windows 365 Business 4 vCPU 16 GB 512 GB +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,CPC_B_8C_32RAM_128GB,648005fc-b330-4bd9-8af6-771f28958ac0,Windows 365 Business 8 vCPU 32 GB 128 GB +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,CPC_B_8C_32RAM_256GB,d7a5113a-0276-4dc2-94f8-ca9f2c5ae078,Windows 365 Business 8 vCPU 32 GB 256 GB +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,CPC_B_8C_32RAM_512GB,4229a0b4-7f34-4835-b068-6dc8d10be57c,Windows 365 Business 8 vCPU 32 GB 512 GB +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,CPC_B_16C_64GB_512GB,cbbedc49-52d5-4fd6-82ac-a5bc51634dc3,"Windows 365 Business 16 vCPU, 64 GB, 512 GB" +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,CPC_B_16C_64GB_1TB,37c961db-2cfd-4e13-b81e-b0059ce10e34,"Windows 365 Business 16 vCPU, 64 GB, 1 TB" +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,CPC_E_1C_2GB_64GB,86d70dbb-d4c6-4662-ba17-3014204cbb28,Windows 365 Enterprise 1 vCPU 2 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,CPC_E_2C_4GB_64GB,23a25099-1b2f-4e07-84bd-b84606109438,Windows 365 Enterprise 2 vCPU 4 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,CPC_E_2C_4GB_256GB,0d143570-9b92-4f57-adb5-e4efcd23b3bb,Windows 365 Enterprise 2 vCPU 4 GB 256 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,CPC_E_2C_8GB_256GB,d3468c8c-3545-4f44-a32f-b465934d2498,Windows 365 Enterprise 2 vCPU 8 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,CPC_E_4C_16GB_128GB,2de9c682-ca3f-4f2b-b360-dfc4775db133,Windows 365 Enterprise 4 vCPU 16 GB 128 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,CPC_E_4C_16GB_512GB,3bba9856-7cf2-4396-904a-00de74fba3a4,Windows 365 Enterprise 4 vCPU 16 GB 512 GB +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,CPC_E_8C_32GB_128GB,2f3cdb12-bcde-4e37-8529-e9e09ec09e23,Windows 365 Enterprise 8 vCPU 32 GB 128 GB +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,CPC_E_8C_32GB_256GB,69dc175c-dcff-4757-8389-d19e76acb45d,Windows 365 Enterprise 8 vCPU 32 GB 256 GB +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,CPC_E_8C_32GB_512GB,0e837228-8250-4047-8a80-d4a34ba11658,Windows 365 Enterprise 8 vCPU 32 GB 512 GB +Windows 365 Shared Use 2 vCPU 4 GB 64 GB,Windows_365_S_2vCPU_4GB_64GB,1f9990ca-45d9-4c8d-8d04-a79241924ce1,CPC_S_2C_4GB_64GB,64981bdb-a5a6-4a22-869f-a9455366d5bc,Windows 365 Shared Use 2 vCPU 4 GB 64 GB +Windows 365 Shared Use 2 vCPU 4 GB 128 GB,Windows_365_S_2vCPU_4GB_128GB,90369797-7141-4e75-8f5e-d13f4b6092c1,CPC_S_2C_4GB_128GB,51855c77-4d2e-4736-be67-6dca605f2b57,Windows 365 Shared Use 2 vCPU 4 GB 128 GB +Windows 365 Shared Use 2 vCPU 4 GB 256 GB,Windows_365_S_2vCPU_4GB_256GB,8fe96593-34d3-49bb-aeee-fb794fed0800,CPC_S_2C_4GB_256GB,aa8fbe7b-695c-4c05-8d45-d1dddf6f7616,Windows 365 Shared Use 2 vCPU 4 GB 256 GB +Windows 365 Shared Use 2 vCPU 8 GB 128 GB,Windows_365_S_2vCPU_8GB_128GB,2d21fc84-b918-491e-ad84-e24d61ccec94,CPC_S_2C_8GB_128GB,057efbfe-a95d-4263-acb0-12b4a31fed8d,Windows 365 Shared Use 2 vCPU 8 GB 128 GB +Windows 365 Shared Use 2 vCPU 8 GB 256 GB,Windows_365_S_2vCPU_8GB_256GB,2eaa4058-403e-4434-9da9-ea693f5d96dc,CPC_S_2C_8GB_256GB,50ef7026-6174-40ba-bff7-f0e4fcddbf65,Windows 365 Shared Use 2 vCPU 8 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 128 GB,Windows_365_S_4vCPU_16GB_128GB,1bf40e76-4065-4530-ac37-f1513f362f50,CPC_S_4C_16GB_128GB,dd3801e2-4aa1-4b16-a44b-243e55497584,Windows 365 Shared Use 4 vCPU 16 GB 128 GB +Windows 365 Shared Use 4 vCPU 16 GB 256 GB,Windows_365_S_4vCPU_16GB_256GB,a9d1e0df-df6f-48df-9386-76a832119cca,CPC_S_4C_16GB_256GB,2d1d344e-d10c-41bb-953b-b3a47521dca0,Windows 365 Shared Use 4 vCPU 16 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 512 GB,Windows_365_S_4vCPU_16GB_512GB,469af4da-121c-4529-8c85-9467bbebaa4b,CPC_S_4C_16GB_512GB,48b82071-99a5-4214-b493-406a637bd68d,Windows 365 Shared Use 4 vCPU 16 GB 512 GB +Windows 365 Shared Use 8 vCPU 32 GB 128 GB,Windows_365_S_8vCPU_32GB_128GB,f319c63a-61a9-42b7-b786-5695bc7edbaf,CPC_S_8C_32GB_128GB,e4dee41f-a5c5-457d-b7d3-c309986fdbb2,Windows 365 Shared Use 8 vCPU 32 GB 128 GB +Windows 365 Shared Use 8 vCPU 32 GB 256 GB,Windows_365_S_8vCPU_32GB_256GB,fb019e88-26a0-4218-bd61-7767d109ac26,CPC_S_8C_32GB_256GB,1e2321a0-f81c-4d43-a0d5-9895125706b8,Windows 365 Shared Use 8 vCPU 32 GB 256 GB +Windows 365 Shared Use 8 vCPU 32 GB 512 GB,Windows_365_S_8vCPU_32GB_512GB,f4dc1de8-8c94-4d37-af8a-1fca6675590a,CPC_S_8C_32GB_512GB,fa0b4021-0f60-4d95-bf68-95036285282a,Windows 365 Shared Use 8 vCPU 32 GB 512 GB +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE +Windows Store for Business EDU Faculty,WSFB_EDU_FACULTY,c7e9d9e6-1981-4bf3-bb50-a5bdfaa06fb2,Windows Store for Business EDU Store_faculty,aaa2cd24-5519-450f-a1a0-160750710ca1,Windows Store for Business EDU Store_faculty +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS,f477b0f0-3bb1-4890-940c-40fcee6ce05f,Microsoft Workplace Analytics +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Workplace Analytics Insights Backend +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Workplace Analytics Insights User +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P1,84c289f0-efcb-486f-8581-07f44fc9efad,Azure Active Directory workload identities P1 +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Azure Active Directory workload identities P2 diff --git a/Modules/CippExtensions/Private/Get-AssignedMap.ps1 b/Modules/CippExtensions/Private/Get-AssignedMap.ps1 new file mode 100644 index 000000000000..62dcab8ae20a --- /dev/null +++ b/Modules/CippExtensions/Private/Get-AssignedMap.ps1 @@ -0,0 +1,32 @@ +function Get-AssignedMap { + # Assigned Licenses Map + $AssignedMap = [pscustomobject]@{ + 'AADPremiumService' = 'o-skypeforbusiness' + 'MultiFactorService' = 'o-skypeforbusiness' + 'RMSOnline' = 'o-skypeforbusiness' + 'MicrosoftPrint' = 'o-yammer' + 'WindowsDefenderATP' = 'o-skypeforbusiness' + 'exchange' = 'o-exchange' + 'ProcessSimple' = 'o-onedrive' + 'OfficeForms' = 'o-yammer' + 'SCO' = 'o-skypeforbusiness' + 'MicrosoftKaizala' = 'o-yammer' + 'Adallom' = 'o-skypeforbusiness' + 'ProjectWorkManagement' = 'o-yammer' + 'TeamspaceAPI' = 'o-teams' + 'MicrosoftOffice' = 'o-yammer' + 'PowerAppsService' = 'o-onedrive' + 'SharePoint' = 'o-sharepoint' + 'MicrosoftCommunicationsOnline' = 'o-teams' + 'Deskless' = 'o-yammer' + 'MicrosoftStream' = 'o-yammer' + 'Sway' = 'o-yammer' + 'To-Do' = 'o-yammer' + 'WhiteboardServices' = 'o-yammer' + 'Windows' = 'o-skypeforbusiness' + 'YammerEnterprise' = 'o-yammer' + } + + return $AssignedMap + +} diff --git a/Modules/CippExtensions/Private/Get-AssignedNameMap.ps1 b/Modules/CippExtensions/Private/Get-AssignedNameMap.ps1 new file mode 100644 index 000000000000..fcb846e1ec82 --- /dev/null +++ b/Modules/CippExtensions/Private/Get-AssignedNameMap.ps1 @@ -0,0 +1,32 @@ +function Get-AssignedNameMap { + + $AssignedNameMap = @{ + 'AADPremiumService' = 'Azure Active Directory Premium' + 'MultiFactorService' = 'Azure Multi-Factor Authentication' + 'RMSOnline' = 'Azure Rights Management' + 'MicrosoftPrint' = 'Cloud Print' + 'WindowsDefenderATP' = 'Defender for Endpoint' + 'exchange' = 'Exchange Online' + 'ProcessSimple' = 'Flow' + 'OfficeForms' = 'Forms' + 'SCO' = 'Intune' + 'MicrosoftKaizala' = 'Kaizala' + 'Adallom' = 'Microsoft Cloud App Security' + 'ProjectWorkManagement' = 'Microsoft Planner' + 'TeamspaceAPI' = 'Microsoft Teams' + 'MicrosoftOffice' = 'Office 365' + 'PowerAppsService' = 'PowerApps' + 'SharePoint' = 'SharePoint Online' + 'MicrosoftCommunicationsOnline' = 'Skype for Business' + 'Deskless' = 'Staff Hub' + 'MicrosoftStream' = 'Stream' + 'Sway' = 'Sway' + 'To-Do' = 'To-Do' + 'WhiteboardServices' = 'Whiteboard' + 'Windows' = 'Windows' + 'YammerEnterprise' = 'Yammer' + } + + return $AssignedNameMap + +} diff --git a/Modules/CippExtensions/Private/Get-StringHash.ps1 b/Modules/CippExtensions/Private/Get-StringHash.ps1 new file mode 100644 index 000000000000..a5c94f62b511 --- /dev/null +++ b/Modules/CippExtensions/Private/Get-StringHash.ps1 @@ -0,0 +1,8 @@ +function Get-StringHash { + Param($String) + $StringBuilder = New-Object System.Text.StringBuilder + [System.Security.Cryptography.HashAlgorithm]::Create('SHA1').ComputeHash([System.Text.Encoding]::UTF8.GetBytes($String)) | ForEach-Object { + [Void]$StringBuilder.Append($_.ToString('x2')) + } + $StringBuilder.ToString() +} \ No newline at end of file diff --git a/Modules/CippExtensions/Private/Hudu/Get-HuduFormattedBlock.ps1 b/Modules/CippExtensions/Private/Hudu/Get-HuduFormattedBlock.ps1 new file mode 100644 index 000000000000..c27d9656c819 --- /dev/null +++ b/Modules/CippExtensions/Private/Hudu/Get-HuduFormattedBlock.ps1 @@ -0,0 +1,12 @@ +function Get-HuduFormattedBlock ($Heading, $Body) { + return @" +
    +
    +

    $Heading

    +
    +
    + $Body +
    +
    +"@ +} diff --git a/Modules/CippExtensions/Private/Hudu/Get-HuduFormattedField.ps1 b/Modules/CippExtensions/Private/Hudu/Get-HuduFormattedField.ps1 new file mode 100644 index 000000000000..7aa73e9a3521 --- /dev/null +++ b/Modules/CippExtensions/Private/Hudu/Get-HuduFormattedField.ps1 @@ -0,0 +1,13 @@ +function Get-HuduFormattedField ($Title, $Value) { + return @" +
    +
    + $Title +
    +
    + $Value +
    +
    +"@ +} + diff --git a/Modules/CippExtensions/Private/Hudu/Get-HuduLinkBlock.ps1 b/Modules/CippExtensions/Private/Hudu/Get-HuduLinkBlock.ps1 new file mode 100644 index 000000000000..69bc48342d06 --- /dev/null +++ b/Modules/CippExtensions/Private/Hudu/Get-HuduLinkBlock.ps1 @@ -0,0 +1,3 @@ +function Get-HuduLinkBlock($URL, $Icon, $Title) { + return '' -f $URL, $Icon, $Title +} diff --git a/Modules/CippExtensions/Public/ConversionTable.csv b/Modules/CippExtensions/Public/ConversionTable.csv new file mode 100644 index 000000000000..27ee53d2fe35 --- /dev/null +++ b/Modules/CippExtensions/Public/ConversionTable.csv @@ -0,0 +1,5826 @@ +Product_Display_Name,String_Id,GUID,Service_Plan_Name,Service_Plan_Id,Service_Plans_Included_Friendly_Names +10-Year Audit Log Retention Add On,10_ALR_ADDON,c2e41e49-e2a2-4c55-832a-cf13ffba1d6a,Auditing_10Year_ Retention_ Add_On,7d16094b-4db8-41ff-a182-372a90a85407,Auditing 10Year Retention Add On +Advanced Communications,ADV_COMMS,e4654015-5daf-4a48-9b37-4f309dddd88b,TEAMS_ADVCOMMS,604ec28a-ae18-4bc6-91b0-11da94504ba9,Microsoft 365 Advanced Communications +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,CDSAICAPACITY,a7c70a41-5e02-4271-93e6-d9b4184d83f5,AI Builder capacity add-on +AI Builder Capacity add-on,CDSAICAPACITY,d2dea78b-507c-4e56-b400-39447f4738f8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,SPZA,0bfc98ed-1dbc-4a97-b246-701754e48b17,APP CONNECT +App Connect IW,SPZA_IW,8f0c5670-4e56-4892-b06d-91c085d7004f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_A,5f3b1ded-75c0-4b31-8e6e-9b077eaadfd5,Microsoft Application Protection and Governance (A) +App governance add-on to Microsoft Defender for Cloud Apps,Microsoft_Cloud_App_Security_App_Governance_Add_On,9706eed9-966f-4f1b-94f6-bb2b4af99a5b,MICROSOFT_APPLICATION_PROTECTION_AND_GOVERNANCE_D,2e6ffd72-52d1-4541-8f6c-938f9a8d4cdc,Microsoft Application Protection and Governance (D) +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Azure Information Protection Premium P1 for Government,RIGHTSMANAGEMENT_CE_GOV ,78362de1-6942-4bb8-83a1-a32aa67e6e2c,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Career Coach for faculty,CAREERCOACH_FACULTY,95de1760-7682-406d-98c9-52ef14e51e2b,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Career Coach for students,CAREERCOACH_STUDENTS,01c8007a-57d2-41e0-a3c3-0b46ead16cc4,CAREERCOACH_EDU,80f0ae31-0dfb-425c-b3fc-36f40170eb35,Career Coach +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Clipchamp Premium,Clipchamp_Premium,0fe440c5-f2bf-442b-a4f4-9a7af77a200b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Clipchamp Standard,Clipchamp_Standard,481f3bc2-5756-4b28-9375-5c8c86b99e6b,ONEDRIVECLIPCHAMP,f7e5b77d-f293-410a-bae8-f941f19fe680,OneDrive for Business (Clipchamp) +Clipchamp Premium Add-on,Clipchamp_Premium_Add_on,4b2c20e4-939d-4bf4-9dd8-6870240cfe19,CLIPCHAMP_PREMIUM,430b908f-78e1-4812-b045-cf83320e7d5d,Microsoft Clipchamp Premium +Microsoft 365 Audio Conferencing,MCOMEETADV,0c266dff-15dd-4b49-8397-2bb16070ed52,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Entra ID Basic,AAD_BASIC,2b9c8e7c-319c-43a2-a2a0-48c5c6161de7,AAD_BASIC,c4da7f8a-5ee2-4c99-a7e1-87d2df57f6fe,Microsoft Entra BASIC +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P1,AAD_PREMIUM,078d2b04-f1bd-4111-bbd4-b4b1b354cef4,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1 for Faculty,AAD_PREMIUM_FACULTY,30fc3c36-5a95-4956-ba57-c09c2a600bb9,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft Entra ID P1_USGOV_GCCHIGH,AAD_PREMIUM_USGOV_GCCHIGH ,de597797-22fb-4d65-a9fe-b7dbe8893914,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Entra ID P2,AAD_PREMIUM_P2,84a661c4-e949-4bd2-a560-ed7766fcaf2b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,AZURE INFORMATION PROTECTION PREMIUM P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT,c52ea49f-fe5d-4e95-93ba-1de91d380f89,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Microsoft Entra RIGHTS +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Plan 1,RIGHTSMANAGEMENT_CE,a0e6a48f-b056-4037-af70-b9ac53504551,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Azure Information Protection Premium P1_USGOV_GCCHIGH,RIGHTSMANAGEMENT_CE_USGOV_GCCHIGH,c57afa2a-d468-46c4-9a90-f86cb1b3c54a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,ONEDRIVELITE_IW,b4ac11a0-32ff-4e78-982d-e039fa803dec,Office for the web with OneDrive for business +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,MCOBASIC,448898aa-3ae7-478c-b49a-1fac7a8a35cf,Skype Meetings +Basic Collaboration,OFFICEBASIC,4468c39a-28b2-42fb-9094-840bcf28771f,YAMMER_BASIC,6db7aeea-6c4a-475d-bbb0-7338bc73d646,Yammer +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Business Apps (free),SMB_APPS,90d8b3f8-712e-4f7b-aa1e-62e7ae6cbe96,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,CDS_FILE_CAPACITY,dd12a3a8-caec-44f8-b4fb-2f1a864b51e3,Common Data Service for Apps File Capacity +Common Data Service for Apps File Capacity,CDS_FILE_CAPACITY,631d5fb1-a668-4c2a-9427-8830665a742e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,CDS_DB_CAPACITY,360bcc37-0c11-4264-8eed-9fa7a3297c9b,Common Data Service for Apps Database Capacity +Common Data Service Database Capacity,CDS_DB_CAPACITY,e612d426-6bc3-4181-9658-91aa906b0ac0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,CDS_DB_CAPACITY_GOV,1ddffef6-4f69-455e-89c7-d5d72105f915,Common Data Service for Apps Database Capacity for Government +Common Data Service Database Capacity for Government,CDS_DB_CAPACITY_GOV,eddf428b-da0e-4115-accf-b29eb0b83965,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,CDS_LOG_CAPACITY,dc48f5c5-e87d-43d6-b884-7ac4a59e7ee9,Common Data Service for Apps Log Capacity +Common Data Service Log Capacity,CDS_LOG_CAPACITY,448b063f-9cc6-42fc-a0e6-40e08724a395,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Communications Credits,MCOPSTNC,47794cd0-f0e5-45c5-9033-2eb6b5fc84e0,MCOPSTNC,505e180f-f7e0-4b65-91d4-00d670bbd18c,COMMUNICATIONS CREDITS +Compliance Manager Premium Assessment Add-On,CMPA_addon,8a5fbbed-8b8c-41e5-907e-c50c471340fd,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Manager Premium Assessment Add-On for GCC,CMPA_addon_GCC,a9d7ef53-9bea-4a2a-9650-fa7df58fe094,COMPLIANCE_MANAGER_PREMIUM_ASSESSMENT_ADDON,3a117d30-cfac-4f00-84ac-54f8b6a18d78,Compliance Manager Premium Assessment Add-On +Compliance Program for Microsoft Cloud,Compliance_Program_for_Microsoft_Cloud,10dd46b2-c5ad-4de3-865c-a6fa1363fb51,CPMC,1265e154-5544-4197-bba1-03ef69c3b180,Compliance Program for Microsoft Cloud +Defender Threat Intelligence,Defender_Threat_Intelligence,a9c51c15-ffad-4c66-88c0-8771455c832d,THREAT_INTELLIGENCE_APP,fbdb91e6-7bfd-4a1f-8f7a-d27f4ef39702,Defender Threat Intelligence +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Digital Messaging for GCC Test SKU,MESSAGING_GCC_TEST,064a9707-9dba-4cc1-9902-38bfcfda6328,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Database Storage (Qualified Offer),CRMSTORAGE,328dc228-00bc-48c6-8b09-1fbc8bc3435d,CRMSTORAGE,77866113-0f3e-4e6e-9666-b1e25c6f99b0,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Production Instance (Qualified Offer),CRMINSTANCE,9d776713-14cb-4697-a21d-9a52455c738a,CRMINSTANCE,eeea837a-c885-4167-b3d5-ddde30cbd85f,Microsoft Dynamics CRM Online Instance +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance (Qualified Offer),CRMTESTINSTANCE,e06abcc2-7ec5-4a79-b08b-d9c282376f72,CRMTESTINSTANCE,a98b7619-66c7-4885-bdfc-1d9c8c3d279f,Microsoft Dynamics CRM Online Additional Test Instance +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,SOCIAL_ENGAGEMENT_APP_USER,339f4def-5ad8-4430-8d12-da5fd4c769a7,Dynamics 365 AI for Market Insights - Free +Dynamics 365 AI for Market Insights (Preview),SOCIAL_ENGAGEMENT_APP_USER,c6df1e30-1c9f-427f-907c-3d913474a1c7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,D365_AssetforSCM,90467813-5b40-40d4-835c-abd48009b1d9,Asset Maintenance Add-in +Dynamics 365 Asset Management Addl Assets,DYN365_ASSETMANAGEMENT,673afb9d-d85b-40c2-914e-7bf46cd5cd75,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Additional Environment Addon,DYN365_BUSCENTRAL_ADD_ENV_ADDON,a58f5506-b382-44d4-bfab-225b2fbf8390,DYN365_BUSCENTRAL_ENVIRONMENT,d397d6c6-9664-4502-b71c-66f39c400ca4,Dynamics 365 Business Central Additional Environment Addon +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,DYN365_BUSCENTRAL_DB_CAPACITY,ae6b27b3-fe31-4e77-ae06-ec5fabbc103a,Dynamics 365 Business Central Database Capacity +Dynamics 365 Business Central Database Capacity,DYN365_BUSCENTRAL_DB_CAPACITY,7d0d4f9a-2686-4cb8-814c-eff3fdab6d74,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,Dynamics 365 for Business Central Essentials +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Essentials,DYN365_BUSCENTRAL_ESSENTIAL,2880026b-2b0c-4251-8656-5d41ff11e3aa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,DYN365_BUSCENTRAL_ESSENTIALS_ATTACH,17ca446c-d7a4-4d29-8dec-8e241592164b,Dynamics 365 Business Central Essentials Attach +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Business Central Essentials Attach,Dynamics_365_Business_Central_Essentials_Attach,1d506c23-1702-46f1-b940-160c55f98d05,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,DYN365_FINANCIALS_ACCOUNTANT,170991d7-b98e-41c5-83d4-db2052e1795f,Dynamics 365 Business Central External Accountant +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central External Accountant,DYN365_FINANCIALS_ACCOUNTANT_SKU,9a1e33ed-9697-43f3-b84c-1b0959dbb1d4,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,PROJECT_MADEIRA_PREVIEW_IW,3f2afeed-6fb5-4bf9-998f-f2912133aead,Dynamics 365 Business Central for IWs +Dynamics 365 Business Central for IWs,PROJECT_MADEIRA_PREVIEW_IW_SKU,6a4a1628-9b9a-424d-bed5-4118f0ede3fd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,DYN365_BUSCENTRAL_PREMIUM,8e9002c0-a1d8-4465-b952-817d2948e6e2,Dynamics 365 Business Central Premium +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 Business Central Premium,DYN365_BUSCENTRAL_PREMIUM,f991cecc-3f91-4cd0-a9a8-bf1c8167e029,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,DYN365_FINANCIALS_TEAM_MEMBERS,d9a6391b-8970-4976-bd94-5f205007c8d8,Dynamics 365 for Team Members +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Business Central Team Members,DYN365_BUSCENTRAL_TEAM_MEMBER,2e3c4023-80f6-4711-aa5d-29e0ecb46835,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,DYN365_RETAIL_TRIAL,874d6da5-2a67-45c1-8635-96e8b3e300ea,Dynamics 365 for Retail Trial +Dynamics 365 Commerce Trial,DYN365_RETAIL_TRIAL,1508ad2d-5802-44e6-bfe8-6fb65de63d28,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_CSI_EMBED_CE,1412cdc1-d593-4ad1-9050-40c30ad0b023,Dynamics 365 Customer Service Insights for CE Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Forms_Pro_CE,97f29a83-1a20-44ff-bf48-5e4ad11f3e51,Microsoft Dynamics 365 Customer Voice for Customer Engagement Plan +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,Power Apps for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Engagement Plan,DYN365_ENTERPRISE_PLAN1,ea126fc5-a19e-42e2-a731-da9d437bffcf,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Customer Insights BASE +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Attach,DYN365_CUSTOMER_INSIGHTS_ATTACH,a3d0cd86-8068-4071-ad40-4dc5b5908c4b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,DYN365_CS_MESSAGING_GOV,e304c3c3-f86c-4200-b174-1ade48805b22,Dynamics 365 Customer Service Digital Messaging application integration for Government +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 for Customer Service Digital Messaging add-on for Government,DYN365_CS_MESSAGING_GOV,336dfe1f-3b33-4ab4-b395-cba8f614976d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government,DYN365_CS_OC_MESSAGING_VOICE_GOV,6ec542c9-2a86-4d4a-8a52-d233eb58ef0a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_MESSAGING_TPS_GOV,9d37aa61-3cc3-457c-8b54-e6f3853aa6b6,Dynamics 365 Customer Service Digital Messaging add-on for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,DYN365_CS_VOICE_GOV,411b0c93-8f89-455e-a663-c0a3effd12c3,Dynamics 365 for Customer Service Voice Add-in for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_VOICE_GOV,cad9c719-36e0-43c7-9506-6886f272d4f0,Power Virtual Agents for Customer Service Voice for Government +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING_GOV,e501d49b-1176-4816-aece-2563c0d995db,Power Virtual Agents for Digital Messaging for Gov +Dynamics 365 Customer Service Digital Messaging and Voice Add-in for Government for Test,DYN365_CS_OC_MESSAGING_VOICE_GOV_TEST,ea9ba490-50b8-474e-8671-9fec0f1268f3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_FPA_GOV,b9f7ce72-67ff-4695-a9d9-5ff620232024,Dynamics 365 Customer Service Chat Application Integration for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,DYN365_CS_CHAT_GOV,ffb878a5-3184-472b-800b-65eadc63d764,Dynamics 365 for Customer Service Chat for Government +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,POWER_VIRTUAL_AGENTS_D365_CS_CHAT_GOV,9023fe69-f9e0-4c1e-bfde-654954469162,Power Virtual Agents for Chat for Gov +Dynamics 365 for Customer Service Chat for Government,DYN365_CS_CHAT_GOV,1b399f66-be2a-479c-a79d-84a43a46f79e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Customer Service Enterprise Admin,Dynamics_365_Customer_Service_Enterprise_admin_trial,94a6fbd4-6a2f-4990-b356-dc7dd8bed08a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Customer Service Voice Channel Add-in,DYN365_CS_VOICE,dadd2312-b5b1-4fa0-8c15-0903de3e2303,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,CDS_CUSTOMER_INSIGHTS,ca00cff5-2568-4d03-bb6c-a653a8f360ca,Common Data Service for Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_BASE,ee85d528-c4b4-4a99-9b07-fb9a1365dc93,Dynamics 365 Customer Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE,b3c26516-3b8d-492f-a5a3-64d70ad3f8d0,Dynamics 365 Customer Insights Engagement Insights +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,Customer_Voice_Customer_Insights,46c5ea0a-2343-49d9-ae4f-1c268b232d53,Microsoft Dynamics 365 Customer Voice for Customer Insights App +Dynamics 365 Customer Insights Standalone,DYN365_CUSTOMER_INSIGHTS_BASE,0c250654-c7f7-461f-871a-7222f6592cf2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,CDS_CUSTOMER_INSIGHTS_TRIAL,94e5cbf6-d843-4ee8-a2ec-8b15eb52019e,Common Data Service for Customer Insights Trial +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_ENGAGEMENT_INSIGHTS_BASE_TRIAL,e2bdea63-235e-44c6-9f5e-5b0e783f07dd,Dynamics 365 Customer Insights Engagement Insights Viral +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,DYN365_CUSTOMER_INSIGHTS_VIRAL,ed8e8769-94c5-4132-a3e7-7543b713d51f,Dynamics 365 Customer Insights Viral Plan +Dynamics 365 Customer Insights vTrial,DYN365_CUSTOMER_INSIGHTS_VIRAL,036c2481-aa8a-47cd-ab43-324f0c157c2d,Forms_Pro_Customer_Insights,fe581650-cf61-4a09-8814-4bd77eca9cb5,Microsoft Dynamics 365 Customer Voice for Customer Insights +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,D365_CUSTOMER_SERVICE_ENT_ATTACH,61a2665f-1873-488c-9199-c3d0bc213fdf,Dynamics 365 for Customer Service Enterprise Attach +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise Attach to Qualifying Dynamics 365 Base Offer A,D365_CUSTOMER_SERVICE_ENT_ATTACH,eb18b715-ea9d-4290-9994-2ebf4b5042d2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Customer Service Enterprise for Government,D365_ENTERPRISE_CUSTOMER_SERVICE_GOV,65758a5f-2e16-43b3-a8cb-296cd8f69e09,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_MESSAGING_VIRAL_TRIAL,3bf52bdf-5226-4a97-829e-5cca9b3f3392,Dynamics 365 Customer Service Digital Messaging vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_ENTERPRISE_VIRAL_TRIAL,94fb67d3-465f-4d1f-a50a-952da079a564,Dynamics 365 Customer Service Enterprise vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYNB365_CSI_VIRAL_TRIAL,33f1466e-63a6-464c-bf6a-d1787928a56a,Dynamics 365 Customer Service Insights vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,DYN365_CS_VOICE_VIRAL_TRIAL,3de81e39-4ce1-47f7-a77f-8473d4eb6d7c,Dynamics 365 Customer Service Voice vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Customer Service Enterprise Viral Trial,Dynamics_365_Customer_Service_Enterprise_viral_trial,1e615a51-59db-4807-9957-aa83c3657351,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Customer Service Insights Trial,DYN365_AI_SERVICE_INSIGHTS,61e6bd70-fbdb-4deb-82ea-912842f39431,DYN365_AI_SERVICE_INSIGHTS,4ade5aa6-5959-4d2c-bf0a-f4c9e2cc00f2,Dynamics 365 AI for Customer Service Trial +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,DYN365_CDS_FORMS_PRO,363430d1-e3f7-43bc-b07b-767b6bb95e4b,Common Data Service +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PRO,17efdd9f-c22c-4ad8-b48e-3b1f3ee1dc9a,Dynamics 365 Customer Voice +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Dynamics 365 Customer Voice Trial,FORMS_PRO,bc946dac-7877-4271-b2f7-99d2db13cd2c,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,DYN365_CUSTOMER_SERVICE_PRO,6929f657-b31b-4947-b4ce-5066c3214f54,Dynamics 365 for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,POWERAPPS_CUSTOMER_SERVICE_PRO,c507b04c-a905-4940-ada6-918891e6d3ad,Power Apps for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,FLOW_CUSTOMER_SERVICE_PRO,0368fc9c-3721-437f-8b7d-3d0f888cdefc,Power Automate for Customer Service Pro +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Customer Service Professional,DYN365_CUSTOMER_SERVICE_PRO,1439b6e2-5d59-4873-8c59-d60e2a196e92,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,D365_CUSTOMER_SERVICE_PRO_ATTACH,a9dd2dca-10ae-4da2-aaf0-d3fe8a825110,Dynamics 365 for Customer Service Pro Attach +Dynamics 365 for Customer Service Professional Attach to Qualifying Dynamics 365 Base Offer,D365_CUSTOMER_SERVICE_PRO_ATTACH,19dec69d-d9f3-4792-8a39-d8ecdf51937b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,Customer_Voice_Base,296820fe-dce5-40f4-a4f2-e14b8feef383,Dynamics 365 Customer Voice Base Plan +Dynamics 365 Customer Voice,DYN365_CUSTOMER_VOICE_BASE,359ea3e6-8130-4a57-9f8f-ad897a0342f1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice Additional Responses,Forms_Pro_AddOn,446a86f8-a0cb-4095-83b3-d100eb050e3d,Forms_Pro_AddOn,90a816f6-de5f-49fd-963c-df490d73b7b5,Microsoft Dynamics 365 Customer Voice Add-on +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,CUSTOMER_VOICE_ADDON,e6e35e2d-2e7f-4e71-bc6f-2f40ed062f5d,Dynamics Customer Voice Add-On +Dynamics 365 Customer Voice Additional Responses,DYN365_CUSTOMER_VOICE_ADDON,65f71586-ade3-4ce1-afc0-1b452eaf3782,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,CDS_FORM_PRO_USL,e9830cfd-e65d-49dc-84fb-7d56b9aa2c89,Common Data Service +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,Forms_Pro_USL,3ca0766a-643e-4304-af20-37f02726339b,Microsoft Dynamics 365 Customer Voice USL +Dynamics 365 Customer Voice USL,Forms_Pro_USL,e2ae107b-a571-426f-9367-6d4c8f1390ba,FLOW_FORMS_PRO,57a0746c-87b8-4405-9397-df365a9db793,Power Automate for Dynamics 365 Customer Voice +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,CRMSTORAGE_GCC,62edd427-6067-4274-93c4-29afdeb30707,Microsoft Dynamics CRM Online Storage Add-On +Dynamics 365 Enterprise Edition - Additional Database Storage for Government,CRMSTORAGE_GCC,4aed5dd6-eb9c-4143-8f14-368d70287121,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_GCC,cb9bc974-a47b-4123-998d-a383390168cc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,CRM_ONLINE_PORTAL_GCC,eac6b45b-aa89-429f-a37b-c8ce00e8367e,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Portal for Government,CRM_ONLINE_PORTAL_NOPREREQ,67f58b51-af53-4344-9663-9a2beb1d8a8e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Portal (Qualified Offer),CRM_ONLINE_PORTAL,a4bfb28e-becc-41b0-a454-ac680dc258d3,CRM_ONLINE_PORTAL,1d4e9cb1-708d-449c-9f71-943aa8ed1d6a,Microsoft Dynamics CRM Online - Portal Add-On +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 Enterprise Edition - Additional Non-Production Instance for Government,CRMTESTINSTANCE_GCC,1d2756cb-2147-4b05-b4d5-f013c022dcb9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,CRMTESTINSTANCE_GCC,6d99eb83-7b5f-4947-8e99-cc12f1adb399,Microsoft Dynamics CRM Online Additional Non-production Instance +Dynamics 365 - Additional Non-Production Instance for Government,CRMTESTINSTANCE_NOPREREQ,2cf302fe-62db-4e20-b573-e0998b1208b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,CRMINSTANCE_GCC,483cc331-f4df-4a3b-b8ca-fe1a247569f6,Microsoft Dynamics CRM Online Instance +Dynamics 365 Enterprise Edition - Additional Production Instance for Government,CRMINSTANCE_GCC,2bd3cb20-1bb6-446b-b4d0-089af3a05c52,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ENGINE_ADDON,24435e4b-87d0-4d7d-8beb-63a9b1573022,Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,CRM_AUTO_ROUTING_ADDON,2ba394e0-6f18-4b77-b45f-a5663bbab540,RETIRED - Field Service – Automated Routing Engine Add-On +"Dynamics 365 Field Service, Enterprise Edition - Resource Scheduling Optimization",CRM_AUTO_ROUTING_ADDON,977464c4-bfaf-4b67-b761-a9bb735a2196,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,CDS_FIELD_SERVICE_CONTRACTOR,f4614a66-d632-443a-bc77-afe92987b322,Common Data Service Field service Part Time Contractors +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Contractor,D365_FIELD_SERVICE_CONTRACTOR,23e6e135-e869-4ce4-9ae4-5710cd69ac13,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,CDS_FIELD_SERVICE_CONTRACTOR_GCC,2457fe40-65be-48a1-935f-924ad6e62dba,Common Data Service Field service Part Time Contractors for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 Field Service Contractor for Government,D365_FIELD_SERVICE_CONTRACTOR_GOV,e7965e3a-1f49-4d67-a3de-ad1ce460bbcc,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,DYN365_FS_ENTERPRISE_VIRAL_TRIAL,20d1455b-72b2-4725-8354-a177845ab77d,Dynamics 365 Field Service Enterprise vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Field Service Viral Trial,Dynamics_365_Field_Service_Enterprise_viral_trial,29fcd665-d8d1-4f34-8eed-3811e3fca7b3,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,D365_Finance,9f0e1b4e-9b33-4300-b451-b2c662cd4ff7,Microsoft Dynamics 365 for Finance +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Finance,DYN365_FINANCE,55c9eb4e-c746-45b4-b255-9ab6b19d5c62,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_CDS_FINANCE,e95d7060-d4d9-400a-a2bd-a244bf0b609e,Common Data Service for Dynamics 365 Finance +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 for Finance Attach to Qualifying Dynamics 365 Base Offer,DYN365_FINANCE_ATTACH,d721f2e4-099b-4105-b40e-872e46cad402,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,CDS_AI_Capacity_FI,5d85ec34-44e5-43b6-a9aa-d1b4c1d3aa3b,AI Builder Capacity Add-on +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_Finance_Attach,223e33cb-eee0-462d-b1bd-e9a5febf8e85,Dynamics 365 for Finance Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Finance Attach to Qualifying Base Offer Embedded with Project Management & Accounting,DYN365_FINANCE_ATTACH_ISVEMB_PROJOPS,db5bd06c-b99a-4c54-98e9-90fea5164c88,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,DYN365_ENTERPRISE_CASE_MANAGEMENT,2822a3a1-9b8f-4432-8989-e11669a60dc8,Dynamics 365 for Case Management +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Case Management Enterprise Edition,DYN365_ENTERPRISE_CASE_MANAGEMENT,d39fb075-21ae-42d0-af80-22a2599749e0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",D365_ENTERPRISE_CASE_MANAGEMENT_GOV,5cd0b796-9ac8-4792-9f0b-796ca9044e4a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,79bb0a8d-e686-4e16-ac59-2b3fd0014a61,Dynamics 365 for Case Management for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Case Management, Enterprise Edition for Government",DYN365_ENTERPRISE_CASE_MANAGEMENT_GOV,ff5a82be-1edd-4d48-94e0-52527825b589,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_CDS_RETAIL,93cc200d-a47f-4c56-aec1-83f8b0d0425a,Common Data Service for Dynamics 365 Retail +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_RETAIL,117e3aa0-8d08-4a19-a6a5-90b7a96e2128,Dynamics 365 Commerce +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_ACC_PROTECTION,4c00c16c-0304-4421-b598-555c3e78edcb,Dynamics 365 Fraud Protection - Account Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_LOSS_PREVENTION,ecc62904-fa88-4552-a62c-fe582fb31444,Dynamics 365 Fraud Protection - Loss Prevention +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_FP_PURCH_PROTECTION,d703990f-006e-459b-b8dd-1267c4533a22,Dynamics 365 Fraud Protection - Purchase Protection +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Commerce,DYN365_RETAIL,79909bd8-4c69-4202-939e-11bc4385b134,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center,DYNAMICS_365_CONTACT_CENTER,dfb1700c-013e-4132-8bce-0d319c43a95d,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CC,2a9d72b3-1714-440f-babf-bf92bf9683d8,Dynamics 365 Contact Center +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,39a78eb6-3a8a-4e1e-878a-575a5c8984e7,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital,DYNAMICS_365_CONTACT_CENTER_DIGITAL,59d3d0bf-df39-4b8b-8601-ea6c09a7fd66,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CC_DIGITAL,0ef2b4e3-0a2b-450d-8c5f-a52203c40f50,Dynamics 365 Contact Center Digital +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,DYN365_CS_MESSAGING,43b076f2-1123-45ba-a339-2e170ee58c53,Dynamics 365 Customer Service Digital Messaging Application Integration +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Digital Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_DIGITAL_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,7e6e6091-1680-4532-9370-6cd4598483ac,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice,DYNAMICS_365_CONTACT_CENTER_VOICE,79e2368c-4568-48d5-a352-b0344afabcf8,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CC_VOICE,57517633-b4ad-4db8-8c1a-65f443424490,Dynamics 365 Contact Center Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Contact Center Voice Add-on for Customer Service Enterprise,DYNAMICS_365_CONTACT_CENTER_VOICE_ADD_ON_FOR_CUSTOMER_SERVICE_ENTERPRISE,73e8b747-20bf-463d-8ffd-274a7d65d0bc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_BASE,d04ca659-b119-4a92-b8fc-3ede584a9d65,Dataverse for Cust Insights BASE +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,CDS_CUSTOMER_INSIGHTS_COMBINED_BASE,d66ee5da-07d5-49d6-a1d8-45662c3f37be,Dataverse for Customer Insights Combined Base +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,DYN365_CUSTOMER_INSIGHTS_JOURNEYS_BASE,1720c3f7-7da3-4a11-8324-92aad283eb68,Dynamics 365 Customer Insights Journeys +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 Customer Insights Attach,Dynamics_365_Customer_Insights_Attach_New,ff22b8d4-5073-4b24-ba45-84ad5d9b6642,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,CDS_CUSTOMER_INSIGHTS_JOURNEYS_ADD-ON,2f2e81a6-15de-4041-9f33-73c06fed3801,Dataverse for Customer Insights Journeys add-on +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 Customer Insights Journeys T3 Interacted People,Dynamics_365_Customer_Insights_Journeys_T3_Interacted_People,05735051-46c0-4c84-9107-bb13d77d0b88,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 Customer Insights User License,Dynamics_365_Customer_Insights_User_License,12b5a442-a6f2-49e4-868b-2d7408c2356f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT_FPA,426ec19c-d5b1-4548-b894-6fe75028c30d,Dynamics 365 Customer Service Chat Application Integration +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,DYN365_CS_CHAT,f69129db-6dc1-4107-855e-0aaebbcd9dd4,Dynamics 365 for Customer Service Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,POWER_VIRTUAL_AGENTS_D365_CS_CHAT,19e4c3a8-3ebe-455f-a294-4f3479873ae3,Power Virtual Agents for Chat +Dynamics 365 for Customer Service Chat,DYN365_CS_CHAT,7d7af6c2-0be6-46df-84d1-c181b0272909,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,FLOW FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,DYNAMICS 365 FOR CUSTOMER SERVICE +Dynamics 365 for Customer Service Enterprise Edition,DYN365_ENTERPRISE_CUSTOMER_SERVICE,749742bf-0d37-4158-a120-33567104deeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,dc6643d9-1e72-4dce-9f64-1d6eac1f1c5a,Dynamics 365 for Customer Service for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,Forms_Pro_Service_GCC,bb681a9b-58f5-42ee-9926-674325be8aaa,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise for GCC +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Customer Service, Enterprise Edition for Government",DYN365_ENTERPRISE_CUSTOMER_SERVICE_GOV,3c74d823-8f01-4fe8-82d5-f089a5504cec,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,D365_FIELD_SERVICE_ATTACH,55c9148b-d5f0-4101-b5a0-b2727cfc0916,Dynamics 365 for Field Service Attach +Dynamics 365 for Field Service Attach to Qualifying Dynamics 365 Base Offer,D365_FIELD_SERVICE_ATTACH,a36cdaa2-a806-4b6e-9ae0-28dbd993c20e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition,DYN365_ENTERPRISE_FIELD_SERVICE,c7d15985-e746-4f01-b113-20b575898250,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service Enterprise Edition for Government,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,c3d74ead-70b7-4513-8dce-797be3fbe07a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,DYN365_ENTERPRISE_FIELD_SERVICE_GOV,a9a5be2d-17dd-4d43-ba78-9391e11d20a7,Dynamics 365 for Field Service for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Forms_Pro_FS_GCC,638862ef-afb3-46e4-b292-ed0aad759476,Microsoft Dynamics 365 Customer Voice for Field Service for GCC +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Field Service for Government,D365_ENTERPRISE_FIELD_SERVICE_GOV,8eac9119-7e6b-4278-9dc4-e3458993b08a,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,DYN365_FINANCIALS_BUSINESS,920656a2-7dd8-4c83-97b6-a356414dbd36,FLOW FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Financials Business Edition,DYN365_FINANCIALS_BUSINESS_SKU,cc13a803-544e-4464-b4e4-6d6169a138fa,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,DYNAMICS 365 FOR FINANCIALS +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,D365_GUIDES_VIRAL_TRIAL,fe986032-d840-4817-82d4-51fe4fbbe163,Dynamics 365 Guides vTrial +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_APPS_DYN365_VIRAL_TRIAL_MIXED_REALITY,066e2fd1-ba15-40e7-aa96-d6636b1cdf71,Power Apps for Dynamics 365 Mixed Reality +Dynamics 365 Guides vTrial,Dynamics_365_Guides_vTrial,99cb3f83-fbec-4aa1-8262-9679e6df7c53,POWER_AUTOMATE_DYN365_VIRAL_TRIAL_MIXED_REALITY,26fa8a18-2812-4b3d-96b4-864818ce26be,Power Automate for Dynamics 365 Mixed Reality +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Forms_Pro_Talent,1c4ae475-5608-43fa-b3f7-d20e07cf24b4,Microsoft Dynamics 365 Customer Voice for Talent +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_SELF_SERVICE_OPS,835b837b-63c1-410e-bf6b-bdef201ad129,Dynamics 365 Human Resource Self Service +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_OPS,8b21a5dc-5485-49ed-a2d4-0e772c830f6d,Dynamics 365 Human Resources +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_Attach,3219525a-4064-45ec-9c35-a33ea6b39a49,Dynamics 365 Human Resources Attach +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,D365_HR_ATTACH_OPS,90d8cb62-e98a-4639-8342-8c7d2c8215ba,Dynamics 365 Human Resources Attach License +Dynamics 365 Human Resources Attach to Qualifying Dynamics 365 Base Offer,DYN365_HUMAN_RESOURCES_ATTACH,83c489a4-94b6-4dcc-9fdc-ff9b107a4621,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,CRM_HYBRIDCONNECTOR,0210d5c8-49d2-4dd1-a01b-a91c7c14e0bf,CRM Hybrid Connector +Dynamics 365 Hybrid Connector,CRM_HYBRIDCONNECTOR,de176c31-616d-4eae-829a-718918d7ec23,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,DYN365_MARKETING_APPLICATION_ADDON,51cf0638-4861-40c0-8b20-1161ab2f80be,Dynamics 365 for Marketing Additional Application +Dynamics 365 for Marketing Additional Application,DYN365_MARKETING_APPLICATION_ADDON,99c5688b-6c75-4496-876f-07f0fbd69add,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,DYN365_MARKETING_CONTACT_ADDON,18db5075-2c70-408d-a82b-929059d782af,Dynamics 365 for Marketing Additional Contacts Tier 1 +Dynamics 365 for Marketing Addnl Contacts Tier 1,DYN365_MARKETING_CONTACT_ADDON,fc4581aa-6b1f-459d-95b6-84bd49d6f843,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 3,DYN365_MARKETING_CONTACT_ADDON_T3,23053933-0fda-431f-9a5b-a00fd78444c1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,DYN365_MARKETING_50K_CONTACT_ADDON,e626a4ec-1ba2-409e-bf75-9bc0bc30cca7,Dynamics 365 for Marketing 50K Addnl Contacts +Dynamics 365 for Marketing Addnl Contacts Tier 5,DYN365_MARKETING_CONTACT_ADDON_T5,d8eec316-778c-4f14-a7d1-a0aca433b4e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Additional Non-Prod Application,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,c393e9bd-2335-4b46-8b88-9e2a86a85ec1,DYN365_MARKETING_SANDBOX_APPLICATION_ADDON,1599de10-5250-4c95-acf2-491f74edce48,Dynamics 365 Marketing Sandbox Application AddOn +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,Forms_Pro_Marketing_App,22b657cf-0a9e-467b-8a91-5e31f21bc570,Microsoft Dynamics 365 Customer Voice for Marketing Application +Dynamics 365 for Marketing Attach,DYN365_MARKETING_APP_ATTACH,85430fb9-02e8-48be-9d7e-328beb41fa29,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_MSE_USER,2824c69a-1ac5-4397-8592-eae51cb8b581,Dynamics 365 for Marketing MSE User +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,DYN365_MARKETING_USER,5d7a6abc-eebd-46ab-96e1-e4a2f54a2248,Dynamics 365 for Marketing USL +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,Forms_Pro_Marketing,76366ba0-d230-47aa-8087-b6d55dae454f,Microsoft Dynamics 365 Customer Voice for Marketing +Dynamics 365 for Marketing USL,D365_MARKETING_USER,4b32a493-9a67-4649-8eb9-9fc5a5f75c12,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_MESSAGING_TPS,47c2b191-a5fb-4129-b690-00c474d2f623,Dynamics 365 Customer Service Digital Messaging add-on +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,D365_CSI_EMBED_CSEnterprise,5b1e5982-0e88-47bb-a95e-ae6085eda612,Dynamics 365 Customer Service Insights for CS Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_CUSTOMER_SERVICE,99340b49-fb81-4b1e-976b-8f2ae8e9394f,Dynamics 365 for Customer Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_CS_VOICE,f6ec6dfa-2402-468d-a455-89be11116d43,Dynamics 365 for Customer Service Voice Add-in +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_MARKETING_APP,a3a4fa10-5092-401a-af30-0462a95a7ac8,Dynamics 365 for Marketing +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_FS,9c439259-63b0-46cc-a258-72be4313a42d,Microsoft Dynamics 365 Customer Voice for Field Service +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_VOICE,a3dce1be-e9ca-453a-9483-e69a5b46ce98,Power Virtual Agents for Customer Service Voice +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWER_VIRTUAL_AGENTS_D365_CS_MESSAGING,2d2f174c-c3cc-4abe-9ce8-4dd86f469ab1,Power Virtual Agents for Digital Messaging +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Multi-app,Dynamics_365_Multi_app_,6c75fb1b-61f2-42d0-b1b8-6492ca9ae159,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_RETAIL_Activity,f06754ec-6d72-4bf6-991c-4cb5413d9932,Dynamics 365 for Retail Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Attract_Activity,aac5a56b-b02e-4608-8014-b076646d4011,Dynamics 365 for Talent - Attract Experience Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,DYN365_Enterprise_Talent_Onboard_Activity,db225597-e9c2-4d96-8ace-5424744c80f8,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Talent_Activity,1f87ee90-5c3a-4cf9-b6fd-e3e8017c26ec,Dynamics 365 for Talent Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,Dynamics_365_for_Operations_Activity,6bddf93e-d6f4-4991-b9fc-30cfdf07ee7b,Dynamics365 for Operations Activity +Dynamics 365 Operations – Activity,Dyn365_Operations_Activity,b75074f1-4c54-41bf-970f-c9ac871567f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsCDSAttach,e564d403-7eaf-4c91-b92f-bb0dc62026e1,Dynamics 365 Project Operations CDS Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,D365_ProjectOperationsAttach,fa7675bd-6717-40e7-8172-d0bbcbe1ab12,Dynamics 365 Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,PROJECT_FOR_PROJECT_OPERATIONS_ATTACH,6d8e07c6-9613-484f-8cc1-a66c5c3979bb,Project for Project Operations Attach +Dynamics 365 Project Operations Attach,DYN365_PROJECT_OPERATIONS_ATTACH,af739e8e-dd11-4eb5-a986-5908f595c603,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation Enterprise Edition for Government,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1ec19b5f-7542-4b20-b01f-fb5d3f040e2d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,DYN365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,1d8c8e0e-4308-4db5-8a41-b129dbdaea20,Dynamics 365 for Project Service Automation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,Forms_Pro_PS_GCC,e98256c5-17d0-4987-becc-e991c52d55c6,Microsoft Dynamics 365 Customer Voice for Project Service Automation for GCC +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Project Service Automation for Government,D365_ENTERPRISE_PROJECT_SERVICE_AUTOMATION_GOV,6c827f0a-42cb-4cff-b1cd-f4104c16ede3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,DYNAMICS 365 CUSTOMER ENGAGEMENT PLAN +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales and Customer Service Enterprise Edition,DYN365_ENTERPRISE_SALES_CUSTOMERSERVICE,8edc2cf8-6438-4fa9-b6e3-aa1660c640cc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,DYNAMICS 365 FOR SALES +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,MICROSOFT SOCIAL ENGAGEMENT - SERVICE DISCONTINUATION +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Dynamics 365 for Sales Enterprise Edition,DYN365_ENTERPRISE_SALES,1e1a282c-9c54-43a2-9310-98ef728faace,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +"Dynamics 365 for Sales, Enterprise Edition for Government",DYN365_ENTERPRISE_SALES_GOV,28b275ce-aec7-4c26-82e2-1ffbc2746ad4,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,DYN365_ENTERPRISE_SALES_GOV,213be507-d547-4f79-bc2c-6196bc54c4a3,Dynamics 365 for Sales for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Forms_Pro_SalesEnt_GCC,33850b82-0a37-4ebb-a0b2-ee163facd716,Microsoft Dynamics 365 Customer Voice for Sales Enterprise for GCC +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Dynamics 365 for Sales Enterprise for Government,D365_ENTERPRISE_SALES_GOV,e85b3345-2fd5-45cf-a196-7968d3e18e56,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,DYN365_ENTERPRISE_P1,d56f3deb-50d8-465a-bedb-f079817ccac1,Dynamics 365 Customer Engagement Plan +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,Forms_Pro_Service,67bf4812-f90b-4db9-97e7-c0bbbf7b2d09,Microsoft Dynamics 365 Customer Voice for Customer Service Enterprise +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Dynamics 365 Sales, Field Service and Customer Service Partner Sandbox",Dynamics_365_Sales_Field_Service_and_Customer_Service_Partner_Sandbox,494721b8-1f30-4315-aba6-70ca169358d9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_SALES_INSIGHTS,fedc185f-0711-4cc0-80ed-0a92da1a8384,Dynamics 365 AI for Sales (Embedded) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,Forms_Pro_SalesEnt,8839ef0e-91f1-4085-b485-62e06e7c7987,Microsoft Dynamics 365 Customer Voice for Sales Enterprise +Dynamics 365 Sales Premium,DYN365_SALES_PREMIUM,2edaa1dc-966d-4475-93d6-8ee8dfd96877,DYN365_ENTERPRISE_SALES,2da8e897-7791-486b-b08f-cc63c8129df7,Dynamics 365 for Sales +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,D365_SCM_Attach,b21c777f-c2d5-486e-88f6-fc0a3e474271,Dynamics 365 for Supply Chain Management Attach +Dynamics 365 for Supply Chain Management Attach to Qualifying Dynamics 365 Base Offer,DYN365_SCM_ATTACH,090b4a96-8114-4c95-9c91-60e81ef53302,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,DYN365_BUSINESS_Marketing,393a0c96-9ba1-4af0-8975-fa2f853a25ac,Dynamics 365 Marketing +Dynamics 365 for Marketing Business Edition,DYN365_BUSINESS_MARKETING,238e2f8d-e429-4035-94db-6926be4ffe7b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,Dynamics 365 for Finance and Operations Enterprise edition - Regulatory Service +Dynamics 365 Regulatory Service - Enterprise Edition Trial,DYN365_REGULATORY_SERVICE,7ed4877c-0863-4f69-9187-245487128d4f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,CUSTOMER_VOICE_DYN365_VIRAL_TRIAL,dbe07046-af68-4861-a20d-1c8cbda9194f,Customer Voice for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_ENTERPRISE_VIRAL_TRIAL,7f636c80-0961-41b2-94da-9642ccf02de0,Dynamics 365 Sales Enterprise vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,DYN365_SALES_INSIGHTS_VIRAL_TRIAL,456747c0-cf1e-4b0d-940f-703a01b964cc,Dynamics 365 Sales Insights vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Dynamics 365 Sales Premium Viral Trial,Dynamics_365_Sales_Premium_Viral_Trial,6ec92958-3cc1-49db-95bd-bc6b3798df71,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,DYN365_SALES_PRO,88d83950-ff78-4e85-aa66-abfc787f8090,Dynamics 365 for Sales Professional +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,POWERAPPS_SALES_PRO,6f9f70ce-138d-49f8-bb8b-2e701b7dde75,Power Apps for Sales Pro +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,PROJECT_ESSENTIALS,f944d685-f762-4371-806d-a1f48e5bea13,Project Online Essentials +Dynamics 365 For Sales Professional,D365_SALES_PRO,be9f9771-1c64-4618-9907-244325141096,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2)Dynamics 365 for Sales Pro Attach +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,DYN365_SALES_PRO_GOV,dd89efa0-5a55-4892-ba30-82e3f8008339,Dynamics 365 for Sales Professional for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,POWERAPPS_SALES_PRO_GOV,12cf31f8-754f-4efe-87a8-167c19e30831,Power Apps for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,FLOW_SALES_PRO_GOV,e62ffe5b-7612-441f-a72d-c11cf456d33a,Power Automate for Sales Pro for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Sales Professional for Government,D365_SALES_PRO_GOV,229fa362-9d30-4dbc-8110-21b77a7f9b26,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW,73f205fc-6b15-47a5-967e-9e64fdf72d0a,Dynamics 365 for Sales Professional Trial +Dynamics 365 For Sales Professional Trial,D365_SALES_PRO_IW,9c7bff7a-3715-4da7-88d3-07f57f8d0fb6,D365_SALES_PRO_IW_Trial,db39a47e-1f4f-462b-bf5b-2ec471fb7b88,Dynamics 365 for Sales Professional Trial +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,D365_SALES_PRO_ATTACH,065f3c64-0649-4ec7-9f47-ef5cf134c751,Dynamics 365 for Sales Pro Attach +Dynamics 365 Sales Professional Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_PRO_ATTACH,245e6bf9-411e-481e-8611-5c08595e2988,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,COMMON DATA SERVICE FOR DYNAMICS 365 SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,DYNAMICS 365 FOR FINANCE AND OPERATIONS ENTERPRISE EDITION - REGULATORY SERVICE +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,DYNAMICS 365 FOR SUPPLY CHAIN MANAGEMENT +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Dynamics 365 for Supply Chain Management,DYN365_SCM,f2e48cb3-9da0-42cd-8464-4a54ce198ad0,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_CDS_SUPPLYCHAINMANAGEMENT,b6a8b974-2956-4e14-ae81-f0384c363528,Common Data Service for Dynamics 365 Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_FOR_IOM_USL,9e6d1620-dce9-4655-8933-af8fa5bccc9c,Data Integration for IOM with Power Automate USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,CDS_FOR_IOM,2bb89402-51e9-4c5a-be33-e954a9dd1ba6,Dataverse for IOM +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_DemandPlanning,e8b616eb-1a6d-42b4-84c7-b63870791349,DO NOT USE - Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM,1224eae4-0d91-474a-8a52-27ec96a63fe7,Dynamics 365 for Supply Chain Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM,616cf6e2-f52f-4738-b463-10003061fcd3,Dynamics 365 Intelligent Order Management +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,DYN365_IOM_USER,81375e2f-5ef7-4773-96aa-e3279f50bd21,Dynamics 365 Intelligent Order Management USL +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,D365_SCM_Premium,0363c8e5-c30d-4d7c-a621-7b6cab5e0482,Dynamics 365 Supply Chain Management Premium +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Supply Chain Management Premium,Dynamics_365_Supply_Chain_Management_Premium,9467fd84-2758-4287-b1fa-6a908c441b8a,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,Dynamics 365 for Talent: Onboard +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,Dynamics_365_for_HCM_Trial,5ed38b64-c3b7-4d9f-b1cd-0de18c9c4331,Dynamics 365 for HCM Trial +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Flow for Dynamics 365 +Dynamics 365 for Talent,SKU_Dynamics_365_for_HCM_Trial,3a256e9a-15b6-4092-b0dc-82993f4debc6,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,PowerApps for Dynamics 365 +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,Common Data Service +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,Dynamics_365_Hiring_Free_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,Dynamics 365 for Talent: Attract +Dynamics 365 Talent: Attract,Dynamics_365_Hiring_SKU,e561871f-74fa-4f02-abee-5b0ef54dd36d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,DYN365_ENTERPRISE_TEAM_MEMBERS,6a54b05e-4fab-40e7-9828-428db3b336fa,Dynamics 365 for Team Members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition,DYN365_ENTERPRISE_TEAM_MEMBERS,8e7a3d30-d97d-43ab-837c-d7701cef83dc,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,5a94d0aa-ee95-455a-bb38-326e5f134478,Dynamics 365 for Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Dynamics 365 for Team Members Enterprise Edition for Government,DYN365_ENTERPRISE_TEAM_MEMBERS_GOV,ba05762f-32ff-4fac-a096-55309b3700a3,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,DYN365_CDS_GUIDES,1315ade1-0410-450d-b8e3-8050e6da320f,Common Data Service +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Guides,GUIDES_USER,0a389a77-9850-4dc4-b600-bc66fdfefc60,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,DYN365_RETAIL_DEVICE,ceb28005-d758-4df7-bb97-87a617b93d6c,Dynamics 365 for Retail Device +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,Dynamics_365_for_OperationsDevices,2c9fb43e-915a-4d61-b6ca-058ece89fd66,Dynamics 365 for Operations Devices +Dynamics 365 Operations - Device,Dynamics_365_for_Operations_Devices,3bbd44ed-8a70-4c07-9088-6232ddbd5ddd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,Dynamics_365_for_Operations_Sandbox_Tier2,d8ba6fb2-c6b1-4f07-b7c8-5f2745e36b54,Dynamics 365 for Operations non-production multi-box instance for standard acceptance testing (Tier 2) +Dynamics 365 Operations - Sandbox Tier 2:Standard Acceptance Testing,Dynamics_365_for_Operations_Sandbox_Tier2_SKU,e485d696-4c87-4aac-bf4a-91b2fb6f0fa7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,Dynamics_365_for_Operations_Sandbox_Tier4,f6b5efb1-1813-426f-96d0-9b4f7438714f,Dynamics 365 for Operations Enterprise Edition - Sandbox Tier 4:Standard Performance Testing +Dynamics 365 Operations - Sandbox Tier 4:Standard Performance Testing,Dynamics_365_for_Operations_Sandbox_Tier4_SKU,f7ad4bca-7221-452c-bdb6-3e6089f25e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,DYN365_ENTERPRISE_P1_IW,056a5f80-b4e0-4983-a8be-7ad254a113c9,DYNAMICS 365 P1 TRIAL FOR INFORMATION WORKERS +Dynamics 365 P1 Tria for Information Workers,DYN365_ENTERPRISE_P1_IW,338148b6-1b11-4102-afb9-f92b6cdc0f8d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365CDSforProjectOperations,7df1d500-ca5c-4229-8cea-815bc88798c9,Common Data Service for Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperationsCDS,18fa3aba-b085-4105-87d7-55617b8585e6,Dynamics 365 Project Operations CDS +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,DYN365_REGULATORY_SERVICE,c7657ae3-c0b0-4eed-8c1d-6a7967bd9c65,"Dynamics 365 for Finance and Operations, Enterprise edition - Regulatory Service" +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,D365_ProjectOperations,69f07c66-bee4-4222-b051-195095efee5b,Dynamics 365 Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,PROJECT_FOR_PROJECT_OPERATIONS,0a05d977-a21a-45b2-91ce-61c240dbafa2,Project for Project Operations +Dynamics 365 Project Operations,DYN365_PROJECT_OPERATIONS,98619618-9dc8-48c6-8f0c-741890ba5f93,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist,MICROSOFT_REMOTE_ASSIST,7a551360-26c4-4f61-84e6-ef715673e083,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,CDS_REMOTE_ASSIST,0850ebb5-64ee-4d3a-a3e1-5a97213653b5,Common Data Service for Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Microsoft Remote Assist +Dynamics 365 Remote Assist HoloLens,MICROSOFT_REMOTE_ASSIST_HOLOLENS,e48328a2-8e98-4484-a70f-a99f8ac9ec89,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,D365_SALES_ENT_ATTACH,3ae52229-572e-414f-937c-ff35a87d4f29,Dynamics 365 for Sales Enterprise Attach +Dynamics 365 Sales Enterprise Attach to Qualifying Dynamics 365 Base Offer,D365_SALES_ENT_ATTACH,5b22585d-1b71-4c6b-b6ec-160b1a9c2323,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,DYN365_CDS_DYN_APPS,2d925ad8-2479-4bd8-bb76-5b80f1d48935,COMMON DATA SERVICE +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,Dynamics_365_Talent_Onboard,048a552e-c849-4027-b54c-4c7ead26150a,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 Talent: Onboard,DYNAMICS_365_ONBOARDING_SKU,b56e7ccc-d5c7-421f-a23b-5c18bdbad7c0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_ENTERPRISE_FIELD_SERVICE,8c66ef8a-177f-4c0d-853c-d4f219331d09,Dynamics 365 for Field Service +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Retail_Team_members,c0454a3d-32b5-4740-b090-78c32f48f0ad,Dynamics 365 for Retail Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Attract_TeamMember,643d201a-9884-45be-962a-06ba97062e5e,Dynamics 365 for Talent - Attract Experience Team Member +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_Enterprise_Talent_Onboard_TeamMember,f2f49eef-4b3f-4853-809a-a055c6103fe0,Dynamics 365 for Talent - Onboard Experience +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Talent_Team_members,d5156635-0704-4f66-8803-93258f8b2678,Dynamics 365 for Talent Team members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,DYN365_TEAM_MEMBERS,4092fdb5-8d81-41d3-be76-aaba4074530b,Dynamics 365 Team Members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,Dynamics_365_for_Operations_Team_members,f5aa7b45-8a36-4cd1-bc37-5d06dea98645,Dynamics_365_for_Operations_Team_members +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,GUIDES,0b2c029c-dca0-454a-a336-887285d6ef07,Dynamics 365 Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,MICROSOFT_REMOTE_ASSIST,4f4c7800-298a-4e22-8867-96b17850d4dd,Dynamics 365 Remote Assist +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_GUIDES,816971f4-37c5-424a-b12b-b56881f402e7,Power Apps for Guides +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,POWERAPPS_DYN_TEAM,52e619e2-2730-439a-b0d3-d09ab7e8b705,Power Apps for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Dynamics 365 Team Members,DYN365_TEAM_MEMBERS,7ac9fe77-66b7-4e5e-9e46-10eed1cff547,FLOW_DYN_TEAM,1ec58c70-f69c-486a-8109-4b87ce86e449,Power Automate for Dynamics 365 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DDYN365_CDS_DYN_P2,d1142cfd-872e-4e77-b6ff-d98ec5a51f66,COMMON DATA SERVICE +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYN365_TALENT_ENTERPRISE,65a1ebf4-6732-4f00-9dcb-3d115ffdeecd,DYNAMICS 365 FOR TALENT +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Operations,95d2cd7b-1007-484b-8595-5e97e63fe189,DYNAMICS 365 FOR_OPERATIONS +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_for_Retail,a9e39199-8369-444b-89c1-5fe65ec45665,DYNAMICS 365 FOR RETAIL +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,DYNAMICS_365_HIRING_FREE_PLAN,f815ac79-c5dd-4bcc-9b78-d97f7b817d0d,DYNAMICS 365 HIRING FREE PLAN +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,Dynamics_365_Onboarding_Free_PLAN,300b8114-8555-4313-b861-0c115d820f50,DYNAMICS 365 FOR TALENT: ONBOARD +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,FLOW_DYN_P2,b650d915-9886-424b-a08d-633cede56f57,FLOW FOR DYNAMICS 36 +Dynamics 365 UNF OPS Plan ENT Edition,Dynamics_365_for_Operations,ccba3cfe-71ef-423a-bd87-b6df3dce59a9,POWERAPPS_DYN_P2,0b03f40b-c404-40c3-8651-2aceb74365fa,POWERAPPS FOR DYNAMICS 365 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Enterprise Mobility + Security A3 for Faculty,EMS_EDU_FACULTY,aedfac18-56b8-45e3-969b-53edb4ba4952,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,CLOUD APP SECURITY DISCOVERY +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E3,EMS,efccb6f7-5641-4e0e-bd10-b4976e1bf68e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,AZURE INFORMATION PROTECTION PREMIUM P1 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,AZURE INFORMATION PROTECTION PREMIUM P2 +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra RIGHTS +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MICROSOFT AZURE MULTI-FACTOR AUTHENTICATION +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,MICROSOFT CLOUD APP SECURITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,MICROSOFT DEFENDER FOR IDENTITY +Enterprise Mobility + Security E5,EMSPREMIUM,b05e124f-c7cc-45a0-a6aa-8cf78c946968,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security E5_USGOV_GCCHIGH,EMSPREMIUM_USGOV_GCCHIGH,a461b89c-10e3-471c-82b8-aae4d820fccb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G3 GCC,EMS_GOV,c793db86-5237-494e-9b11-dcd4877c2c8c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,RMS_S_ENTERPRISE),bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Enterprise Mobility + Security G5 GCC,EMSPREMIUM_GOV,8a180c2b-f4cf-4d44-897c-3d32acc4a60b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,EOP_ENTERPRISE_PREMIUM,75badc48-628e-4446-8460-41344d73abd6,Exchange Enterprise CAL Services (EOP DLP) +Exchange Enterprise CAL Services (EOP DLP),EOP_ENTERPRISE_PREMIUM,e8ecdf70-47a8-4d39-9d15-093624b7f640,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Entra Rights +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1),EXCHANGESTANDARD,4b9405b0-7788-4568-add1-99614e613b69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Alumni with Yammer,EXCHANGESTANDARD_ALUMNI,aa0f9eb7-eff2-4943-8424-226fb137fcad,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 1) for Students,EXCHANGESTANDARD_STUDENT,ad2fe44a-915d-4e2b-ade1-6766d50a9d9c,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Exchange Online (Plan 1) for GCC,EXCHANGESTANDARD_GOV,f37d5ebf-4bf1-4aa2-8fa3-50c51059e983,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Exchange Online (Plan 2) for GCC,EXCHANGEENTERPRISE_GOV,7be8dc28-4da4-4e6d-b9b9-c60f2806df8a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2),EXCHANGEENTERPRISE,19ec0d23-8335-4cbd-94ac-6050e30712fa,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Exchange Online (Plan 2) for Faculty,EXCHANGEENTERPRISE_FACULTY,0b7b15a8-7fd2-4964-bb96-5a566d4e3c15,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Exchange Online Archiving for Exchange Online,EXCHANGEARCHIVE_ADDON,ee02fd1b-340e-4a4b-b355-4a514e4c8943,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE ONLINE +Exchange Online Archiving for Exchange Server,EXCHANGEARCHIVE,90b5e015-709a-4b8b-b08e-3200f994494c,EXCHANGE_S_ARCHIVE,da040e0a-b393-4bea-bb76-928b3fa1cf5a,EXCHANGE ONLINE ARCHIVING FOR EXCHANGE SERVER +Exchange Online Essentials (ExO P1 Based),EXCHANGEESSENTIALS,7fc0182e-d107-4556-8329-7caaa511197b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,EXCHANGE_S_ESSENTIALS,1126bef5-da20-4f07-b45e-ad25d2581aa8,EXCHANGE ESSENTIALS +Exchange Online Essentials,EXCHANGE_S_ESSENTIALS,e8f81a67-bd96-4074-b108-cf193eb9433b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Exchange Online Kiosk,EXCHANGEDESKLESS,80b2d799-d2ba-4d2a-8842-fb0d0f3a4b82,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE ONLINE KIOSK +Exchange Online POP,EXCHANGETELCO,cb0a98a8-11bc-494c-83d9-c1b1ac65327e,EXCHANGE_B_STANDARD,90927877-dcff-4af6-b346-2332c0b15bb7,EXCHANGE ONLINE POP +Exchange Online Protection,EOP_ENTERPRISE,45a2423b-e884-448d-a831-d9e139c52d2f,EOP_ENTERPRISE,326e2b78-9d27-42c9-8509-46c827743a17,Exchange Online Protection +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +Flow Plan 1 for Government,FLOW_P1_GOV,2b3b0c87-36af-4d15-8124-04a691cc2546,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +Intune,INTUNE_A,061f9ace-7d42-4136-88ac-31dc755f143f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Intune for Education,INTUNE_EDU,d9d89b70-a645-4c24-b041-8d3cb1884ec7,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,ERP_TRIAL_INSTANCE,e2f705fd-2468-4090-8c58-fad6e6b1e724,Dynamics 365 Operations Trial Environment +Microsoft Dynamics AX7 User Trial,AX7_USER_TRIAL,fcecd1f9-a91e-488d-a918-a96cdb6ce2b0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,CRMPLAN2_GCC,3d53f6d9-d6e0-45c1-9575-6acd77692584,Microsoft Dynamics CRM Online Government Basic +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online Basic for Government,CRMPLAN2_GCC,3856cd1b-8033-458e-8d0f-9909ec6e6e6d,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,CRMSTANDARD_GCC,2b8c7c8c-9db5-44a5-a1dd-f4aa5b97b372,Microsoft Dynamics CRM Online Professional for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +Microsoft Dynamics CRM Online for Government,CRMSTANDARD_GCC,ba051a1a-4c3d-4ccd-9890-6fa6a4e696e7,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Azure Multi-Factor Authentication,MFA_STANDALONE,cb2020b1-d8f6-41c0-9acd-8ff3d6d7831b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2),THREAT_INTELLIGENCE,3dd6cf57-d688-4eed-ba52-9e40b5468c3e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,AAD_EDU,3a3976ce-de18-4a87-a78e-5e9245e252df,Microsoft Entra ID for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A1,M365EDU_A1,b17653a4-2443-4e8c-a550-18249dda78bb,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,Windows Store Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Faculty,M365EDU_A3_FACULTY,4b590615-0888-425a-a965-b3bf7789848d,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 for Students,M365EDU_A3_STUDENT,7cfd9a2b-e110-4c39-bf20-c6a3f36a3121,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 for students use benefit,M365EDU_A3_STUUSEBNFT,18250162-5d87-4436-a834-d795c15c80f3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A3 Suite features for faculty,Microsoft 365 A3 Suite features for faculty,32a0e471-8a27-4167-b24f-941559912425,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A3 - Unattended License for students use benefit,M365EDU_A3_STUUSEBNFT_RPA1,1aa94593-ca12-4254-a738-81a5972958e8,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for faculty,M365EDU_A5_FACULTY,e97c048c-37a4-45fb-ab50-922fbf07a370,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMON_DEFENDER_PLATFORM_FOR_OFFICE,a312bdeb-1e21-40d0-84b1-0e73f128144f,Defender Platform for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,Intune_ServiceNow,3eeb8536-fecf-41bf-a3f8-d6f17a9f3efc,Intune ServiceNow Integration +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 A5 for Students,M365EDU_A5_STUDENT,46c119d4-0379-4a9d-85e4-97c66d3f909e,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune for Education +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 for students use benefit,M365EDU_A5_STUUSEBNFT,31d57bc7-3a05-4867-ab53-97a17835a411,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics – Premium +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 A5 Suite features for faculty,M365_A5_SUITE_COMPONENTS_FACULTY,9b8fe788-6174-4c4e-983b-3330c93ec278,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Microsoft Intune Plan 1 for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_EDU,da24caf9-af8e-485c-b7c8-e73336da2693,Intune for Education +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education Edition +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,UNIVERSAL_PRINT_NO_SEEDING,b67adbaf-a096-42c9-967e-5a84edbe0086,Universal Print Without Seeding +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Microsoft 365 A5 without Audio Conferencing for students use benefit,M365EDU_A5_NOPSTNCONF_STUUSEBNFT,81441ae1-0b31-4185-a6c0-32b6b84d419f,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,O365_BUSINESS,cdd28e44-67e3-425e-be4c-737fab2899d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Apps for Business,SMB_BUSINESS,b214fe43-f5a3-4703-beeb-fa97188220fc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Enterprise,OFFICESUBSCRIPTION,c2273bd0-dff7-4215-9ef5-2c7bcfb06425,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for enterprise (device),OFFICE_PROPLUS_DEVICE1,ea4c5ec8-50e3-4193-89b9-50da5bd4cdc7,OFFICE_PROPLUS_DEVICE,3c994f28-87d5-4273-b07a-eb6190852599,Microsoft 365 Apps for Enterprise (Device) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Apps for Students,OFFICESUBSCRIPTION_STUDENT,c32f9321-a627-406d-a114-1f9c81aaafac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,OneDrive for Business (Plan 1) +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Apps for Faculty,OFFICESUBSCRIPTION_FACULTY,12b8c807-2e20-48fc-b453-542b6ee9d171,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 Audio Conferencing for faculty,MCOMEETADV_FACULTY,c2cda955-3359-44e5-989f-852ca0cfa02f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 Audio Conferencing_USGOV_GCCHIGH,MCOMEETADV_USGOV_GCCHIGH,4dee1f32-0808-4fd2-a2ed-fdd575e3a45f,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 Audio Conferencing - GCCHigh Tenant (AR)_USGOV_GCCHIGH,MCOACBYOT_AR_GCCHIGH_USGOV_GCCHIGH,170ba00c-38b2-468c-a756-24c05037160a,MCOACBYOT_GCCHigh,c85e4b03-254a-453b-af72-167a53f38530,Microsoft 365 Audio Conferencing - GCCHigh Tenant +Microsoft 365 Audio Conferencing Pay-Per-Minute - EA,MCOMEETACPEA,df9561a4-4969-4e6a-8e73-c601b68ec077,MCOMEETACPEA,bb038288-76ab-49d6-afc1-eaa6c222c65a,Microsoft 365 Audio Conferencing Pay-Per-Minute +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,O365_BUSINESS_ESSENTIALS,3b555118-da6a-4418-894f-7df1e2096870,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICEMOBILE_SUBSCRIPTION +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic,SMB_BUSINESS_ESSENTIALS,dab7782a-93b1-4074-8bb1-0e61318bea0b,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER MIDSIZE +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic (no Teams),Microsoft_365_Business_Basic_(no Teams),21502a13-c8dc-4744-be9c-177fd9d2eafc,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Basic EEA (no Teams),Microsoft_365_Business_Basic_EEA_(no_Teams),b1f3042b-a390-4b56-ab61-b88e7e767a97,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard,O365_BUSINESS_PREMIUM,f245ecc8-75af-4f8e-b61f-27d8114de5f3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard (no Teams),MICROSOFT_365_BUSINESS_STANDARD_NO_TEAMS,5a1c7b8d-0739-4ca8-bf69-ec87e69133ac,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Standard,c1f79c29-5d7a-4bec-a2c1-1a76774864c0,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,STREAM_O365_SMB,3c53ea51-d578-46fa-a4c0-fd0a92809a60,Stream for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Standard EEA (no Teams),Microsoft_365_Business_Standard_EEA_(no_Teams),ffa3a2a0-3820-462a-aa81-8a4d741f0cba,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,OUTLOOK CUSTOMER MANAGER +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,OFFICE 365 BUSINESS +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 Business Standard - Prepaid Legacy,SMB_BUSINESS_PREMIUM,ac5cef5d-921b-4f97-9ef3-c99076e5470f,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium,SPB,cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium (no Teams),Microsoft_365_ Business_ Premium_(no Teams),00e1ec7b-e4a3-40d1-9441-b69b597ab222,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium Donation,Microsoft_365_Business_Premium_Donation_(Non_Profit_Pricing),24c35284-d768-4e53-84d9-b7ae73dddf69,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365BC_MS_INVOICING,39b5c996-467e-4e60-bd62-46066f572726,Microsoft Invoicing +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_BUSINESS,094e7854-93fc-4d55-b2c0-3ab5369ebdc1,Microsoft 365 Apps for business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,OFFICE_SHARED_COMPUTER_ACTIVATION,276d6e8a-f056-4f70-b7e8-4fc27f79f809,Office Shared Computer Activation +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,O365_SB_Relationship_Management,5bfe124c-bbdc-4494-8835-f1297d457d79,RETIRED - Outlook Customer Manager +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINBIZ,8e229017-d77b-43d5-9305-903395523b99,Windows 10/11 Business +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Azure Active Directory +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,Microsoft Intune +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 Business Premium EEA (no Teams),Office_365_w/o_Teams_Bundle_Business_Premium,a3f586b6-8cce-4d9b-99d6-55238397f77a,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (US),BUSINESS_VOICE_MED2_TELCO,08d7bce8-6e16-490e-89db-1d508e5e9609,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice (UK,BUSINESS_VOICE,e5a17adf-8f0d-4b57-bc14-d331235f9307,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan) for US,BUSINESS_VOICE_DIRECTROUTING_MED,8330dae3-d349-44f7-9cad-1b23c64baabe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice (without Calling Plan),BUSINESS_VOICE_DIRECTROUTING,d52db95a-5ecb-46b6-beb0-190ab5cda4a8,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Microsoft 365 Business Voice,BUSINESS_VOICE_MED2,a6051f20-9cbc-47d2-930d-419183bf6cf1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot (Education Faculty),Microsoft_365_Copilot_EDU,ad9c22b3-52d7-4e7e-973c-88121ea96436,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft Copilot for Microsoft 365,M365_Copilot,a809996b-059e-42e2-9866-db24b99a9782,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Domestic Calling Plan (120 minutes) - US,MCOPSTN5_US,d13e9d1b-316a-4946-98c6-362c97a4fdfe,PSTN5_US,1346d5e6-15a6-4b88-9693-806ff7296a7a,Microsoft 365 Domestic Calling Plan - US (120 minutes) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3,SPE_E3,05e9a617-0261-4cee-bb44-138d3ef5d965,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (no Teams),Microsoft_365_E3_(no_Teams),dcf0408c-aaec-446c-afd4-43e3683943ea,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams),O365_w/o Teams Bundle_M3,c2fe850d-fbbb-4858-b67d-bd0c6e746da3,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 Extra Features,Microsoft_365_E3_Extra_Features,f5b15d67-b99e-406b-90f1-308452f94de6,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) - Unattended License,Microsoft_365_E3_EEA_(no_Teams)_Unattended_License,a23dbafb-3396-48b3-ad9c-a304fe206043,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,OFFICESUBSCRIPTION_unattended,8d77e2d9-9e28-4450-8431-0def64078fc5,Microsoft 365 Apps for Enterprise (Unattended) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 - Unattended License,SPE_E3_RPA1,c2ac2ee4-9bb1-47e4-8541-d689c7e83371,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 (500 seats min)_HUB,Microsoft_365_E3,0c21030a-7e60-4ec7-9a0f-0042e0e0211a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams EEA,Microsoft_Teams_EEA_New,7e74bd05-2c47-404e-829a-ba95c66fe8e5,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Microsoft 365 E3 EEA (no Teams) (500 seats min)_HUB,O365_w/o Teams Bundle_M3_(500_seats_min)_HUB,602e6573-55a3-46b1-a1a0-cc267991501a,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_DOD,SPE_E3_USGOV_DOD,d61d61cc-f992-433f-a577-5bd016037eeb,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E3_USGOV_GCCHIGH,SPE_E3_USGOV_GCCHIGH,ca9d1dd9-dfe9-4fef-b97c-9bc1ea3c3658,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5,SPE_E5,06ebc4ee-1bb5-47dd-8120-11324bc54e06,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,Microsoft Insider Risk Management - Exchange +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Retired - Microsoft Data Investigations +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (no Teams),Microsoft_365_E5_(no_Teams),18a4bd3f-0b5b-4887-b04f-61dd0ee15f5e,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SharePoint (Plan 1) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) with Calling Minutes,Microsoft_365_E5_EEA_(no_Teams)_with_Calling_Minutes,6ee4114a-9b2d-4577-9e7a-49fa43d222d3,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,90277bc7-a6fe-4181-99d8-712b08b8d32b,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 (500 seats min)_HUB,Microsoft_365_E5,db684ac5-c0e7-4f92-8284-ef9ebde75d33,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 Developer (without Windows and Audio Conferencing),DEVELOPERPACK_E5,c42b9cae-ea4f-4ab7-9717-81576235ccac,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 Compliance,INFORMATION_PROTECTION_COMPLIANCE,184efa21-98c3-4e5d-95ab-d07053a96e67,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams),O365_w/o_Teams_Bundle_M5,3271cf8e-2be5-4a09-a549-70fd05baaa17,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 Security,IDENTITY_THREAT_PROTECTION,26124093-3d78-432b-b5dc-48bf992543d5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Security for EMS E5,IDENTITY_THREAT_PROTECTION_FOR_EMS_E5,44ac31e7-2999-4304-ad94-c948886741d4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOPSTN8,16935b20-87c0-4908-934a-22aa267d0d26,Microsoft 365 Domestic Calling Plan (120 min) at User Level +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft 365 E5 with Calling Minutes,SPE_E5_CALLINGMINUTES,a91fc4e0-65e5-4266-aa76-4037509c1626,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing,SPE_E5_NOPSTNCONF,cd2925a3-5076-4233-8931-638a8c94f773,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_without_Audio_Conferencing,2113661c-6509-4034-98bb-9c47bd28d63c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INSIDER_RISK_MANAGEMENT,9d0c4ee5-e4a1-4625-ab39-d82b619b1a34,RETIRED - Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) (500 seats min)_HUB,O365_w/o_Teams_Bundle_M5_(500_seats_min)_HUB,1e988bf3-8b7c-4731-bec0-4e2a2946600c,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_AUDIT_PLATFORM,f6de4823-28fa-440b-b886-4783fa86ddba,Microsoft 365 Audit Platform +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Microsoft 365 E5 EEA (no Teams) without Audio Conferencing (500 seats min)_HUB,Microsoft_365_E5_EEA_(no_Teams)_without_Audio_Conferencing_(500_seats_min)_HUB,a640eead-25f6-4bec-97e3-23cfd382d7c2,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOMEETADV_AR_GCCHigh,f1e3613f-3818-4254-9b5e-f02d803384e0,Microsoft 365 Audio Conferencing for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FORMS_PLAN_E5_AR_GCCHIGH,cf1b2895-e3fd-4b33-9594-2ab924104547,Microsoft Forms (Plan E5) for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,POWERAPPS_O365_P3_GCCHIGH,b50a9096-5b07-4ded-a5e4-a492fb94b6ee,Power Apps for Office 365 for GCCHigh +Microsoft 365 E5_USGOV_GCCHIGH,SPE_E5_USGOV_GCCHIGH,4eb45c5b-0d19-4e33-b87c-adfc25268f20,FLOW_O365_P3_GCCHIGH,ee939cf0-7cd1-4262-9f72-9eaa45dbba69,Power Automate for Office 365 for GCCHigh +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Cloud App Security Discovery +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for O365 K SKU +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Online Kiosk +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1,M365_F1,44575883-256e-4a79-9da4-ebe9acabe2b2,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F1 EEA (no Teams),Microsoft_365_F1_EEA_(no_Teams),0666269f-b167-4c5b-a76f-fc574f2b1118,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3,SPE_F1,66b55226-6b4f-492c-910c-a3b7a3c9d993,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,TEAMS_DESKLESS,a42de799-58ae-4e6a-aa1d-948e7abec726,Microsoft Teams Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WIN10_ENT_LOC_F1,e041597c-9c7f-4ed9-99b0-2663301576f7,Windows 10 Enterprise E3 (Local Only) +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,Azure Information Protection Premium P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Microsoft 365 F3 EEA (no Teams),Microsoft_365_F3_EEA_(no_Teams),f7ee79a7-7aec-4ca4-9fb9-34d6b930ad87,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,DYN365_CDS_O365_F1_GCC,29007dd3-36c0-4cc2-935d-f5bca2c2c473,Common Data Service - O365 F1 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,CDS_O365_F1_GCC,5e05331a-0aec-437e-87db-9ef5934b5771,Common Data Service for Teams_F1 GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,EXCHANGE_S_DESKLESS_GOV,88f4d7ef-a73b-4246-8047-516022144c9f,Exchange Online (Kiosk) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FORMS_GOV_F1,bfd4133a-bbf3-4212-972b-60412137c428,Forms for Government (Plan F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,STREAM_O365_K_GOV,d65648f1-9504-46e4-8611-2658763f28b8,Microsoft Stream for O365 for Government (F1) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,SHAREPOINTDESKLESS_GOV,b1aeb897-3a19-46e2-8c27-a609413cf193,SharePoint KioskG +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,MCOIMP_GOV,8a9f17f1-5872-44e8-9b11-3caade9dc90f,Skype for Business Online (Plan 1) for Government +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Microsoft 365 F3 GCC,M365_F1_GOV,2a914830-d700-444a-b73c-e3f31980d833,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on,SPE_F5_COMP,91de26be-adfa-4a3d-989e-9131cc23dda7,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR (DOD)_USGOV_DOD,SPE_F5_COMP_AR_D_USGOV_DOD,9cfd6bc3-84cd-4274-8a21-8c7c41d6c350,ADALLOM_S_STANDALONE_DOD,6ebdddb7-8e55-4af2-952b-69e77262f96c,Microsoft Defender for Cloud Apps for DOD +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on AR_USGOV_GCCHIGH,SPE_F5_COMP_AR_USGOV_GCCHIGH,9f436c0e-fb32-424b-90be-6a9f2919d506,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Compliance Add-on GCC,SPE_F5_COMP_GCC,3f17cf90-67a2-4fdb-8587-37c1539507e1,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security Add-on,SPE_F5_SEC,67ffe999-d9ca-49e1-9d2c-03fb28aa7a48,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Microsoft Entra ID P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 F5 Security + Compliance Add-on,SPE_F5_SECCOMP,32b47245-eb31-44fc-b945-a8b1576c439f,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Defender for Cloud Apps +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5,M365_G5_GCC,e2be619b-b125-455f-8660-fb503e431a5d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,AAD_PREMIUM_P2,eec0eb4f-6444-4f95-aba0-50c24d67f998,Azure Active Directory Premium P2 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_PREMIUM2_GOV,5400a66d-eaa5-427d-80f2-0f26d59d8fce,Azure Information Protection Premium P2 for GCC +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Microsoft 365 GCC G5 w/o WDATP/CAS Unified,M365_G5_GOV,b0f809d5-a662-4391-a5aa-136e9c565b9d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft 365 Audio Conferencing for GCC,MCOMEETADV_GOV,2d3091c7-0712-488b-b3d8-6b97bde6a1f5,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,MICROSOFT 365 AUDIO CONFERENCING FOR GOVERNMENT +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,INSIDER_RISK,d587c7a3-bda9-4f99-8776-9bcf59c84f75,Microsoft Insider Risk Management +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFT_LOOP,c4b8c31a-fb44-4c65-9837-a21f55fcabda,Microsoft Loop +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-Based Classification +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,SAFEDOCS,bf6f5520-59e3-4f82-974b-7dbbc4fd27c7,Office 365 SafeDocs +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Microsoft 365 E5 Suite features,M365_E5_SUITE_COMPONENTS,99cc8282-2f74-4954-83b7-c6a9a1999067,Defender_for_Iot_Enterprise,99cd49a9-0e54-4e07-aea1-d8d9f5f704f5,Defender for IoT - Enterprise IoT Security +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,AAD_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_PREMIUM,6c57d4b6-3b23-47a5-9bc9-69f17b4947b3,RMS_S_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,ADALLOM_S_DISCOVERY +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,DYN365_CDS_O365_F1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,EXCHANGE_S_DESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,RMS_S_ENTERPRISE +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,MFA_PREMIUM +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,MICROSOFTBOOKINGS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,INTUNE_A +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,PROJECTWORKMANAGEMENT +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT_SEARCH +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,STREAM_O365_K +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,INTUNE_O365 +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINTDESKLESS +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,MCOIMP +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Microsoft 365 F1,M365_F1_COMM,50f60901-3181-4b75-8a2c-4c8e4c1d5a72,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,ADALLOM_S_DISCOVERY,932ad362-64a8-4783-9106-97849a1a30b9,Microsoft Defender for Cloud Apps Discovery +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 GCC,M365_G3_GOV,e823ca47-49c4-46b3-b38d-ca11d5abe3d2,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,OFFICESUBSCRIPTION_unattended_GOV,18dfd9bd-5214-4184-8123-c9822d81a9bc,Microsoft 365 Apps for enterprise (unattended) for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_PREMIUM_GOV,1b66aedf-8ca1-4f73-af76-ec76c6180f98,Azure Information Protection Premium P1 for GCC +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,MFA_PREMIUM,8a256a2b-b617-496d-b51b-e76466e88db0,Microsoft Azure Multi-Factor Authentication +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Microsoft 365 G3 - Unattended License for GCC,M365_G3_RPA1_GOV,5c739a73-651d-4c2c-8a4e-fe4ba12253b0,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft 365 Lighthouse,Microsoft365_Lighthouse,9c0587f3-8665-4252-a8ad-b7a5ade57312,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Sales Copilot Premium & Trial +Microsoft Sales Copilot,Microsoft_Viva_Sales,3227bcb2-8448-4f81-b3c2-8c2074e15a2a,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Sales Copilot Premium with Power Automate +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,RMS_S_PREMIUM2,5689bec4-755d-4753-8b61-40975025187c,Azure Information Protection Premium P2 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,BPOS_S_DlpAddOn,9bec7e34-c9fa-40b7-a9d1-bd6d1165c7ed,Data Loss Prevention +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EXCHANGE_S_ARCHIVE_ADDON,176a09a6-7ec5-4039-ac02-b2791c6ba793,Exchange Online Archiving for Exchange Online +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,MICROSOFTENDPOINTDLP,64bfac92-2b17-4482-b5e5-a0304429de3e,Microsoft Endpoint DLP +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,ML_CLASSIFICATION,d2d51368-76c9-4317-ada2-a12c004c432f,Microsoft ML-based classification +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Microsoft 365 Security and Compliance for Firstline Workers,M365_SECURITY_COMPLIANCE_FOR_FLW,2347355b-4e81-41a4-9c22-55057a399791,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Business Center,MICROSOFT_BUSINESS_CENTER,726a0894-2c77-4d65-99da-9775ef05aad1,MICROSOFT_BUSINESS_CENTER,cca845f9-fd51-4df6-b563-976a37c56ce0,MICROSOFT BUSINESS CENTER +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft 365 Chat +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft Copilot for Microsoft 365,Microsoft_365_Copilot,639dec6b-bb19-468b-871c-c5c441c4b0cb,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,COPILOT_STUDIO_IN_COPILOT_FOR_M365,fe6c28b3-d468-44ea-bbd0-a10a5167435c,Copilot Studio in Copilot for M365 +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,GRAPH_CONNECTORS_COPILOT,82d30987-df9b-4486-b146-198b21d164c7,Graph Connectors in Microsoft 365 Copilot +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_INTELLIGENT_SEARCH,931e4a88-a67f-48b5-814f-16a5f1e6028d,Intelligent Search +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_SHAREPOINT,0aedf20c-091d-420b-aadf-30c042609612,Microsoft 365 Copilot for SharePoint +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_TEAMS,b95945de-b3bd-46db-8437-f2beb6ea2347,Microsoft 365 Copilot in Microsoft Teams +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_APPS,a62f8878-de10-42f3-b68f-6149a25ceb97,Microsoft 365 Copilot in Productivity Apps +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales,a2194428-ead1-4fc1-bb81-ab8675125f42,Microsoft Copilot for Sales +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,Microsoft_Copilot_for_Sales_PowerAutomate,0c1c2af2-6c51-43c7-9c55-fa487ac147ff,Microsoft Copilot for Sales with Power Automate +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_BUSINESS_CHAT,3f30311c-6b1e-48a4-ab79-725b469da960,Microsoft Copilot with Graph-grounded chat +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft 365 Copilot for Sales,Microsoft_Copilot_for_Sales,15f2e9fc-b782-4f73-bf51-81d8b7fff6f4,M365_COPILOT_CONNECTORS,89f1c4c8-0878-40f7-804d-869c9128ab5d,Power Platform Connectors in Microsoft 365 Copilot +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio,Power_Virtual_Agents,75564b9c-51e8-431c-b8fe-d472d5a545c8,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,Dataverse for Microsoft Copilot Studio +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,Microsoft Copilot Studio – Messages +Microsoft Copilot Studio for GCC,Power_Virtual_Agents_for_GCC_GCC,d7974fa0-ddd7-4899-9589-1ea04273aa26,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,Power Automate for Microsoft Copilot Studio +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,CDS_VIRTUAL_AGENT_BASE_MESSAGES,5dd1819f-0de7-487f-985b-c450a4c9cc1d,CDS_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,VIRTUAL_AGENT_BASE_MESSAGES,7b0640f1-63cc-4f83-b8c6-0a4d78b8b988,VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio_USGOV_GCCHIGH,Power_Virtual_Agents_USGOV_GCCHIGH,84ed7c30-3738-43a0-aa03-cf6c577d8dbb,FLOW_VIRTUAL_AGENT_BASE_MESSAGES,4b9ec373-ed29-4192-8a47-c9ab9048b079,FLOW_VIRTUAL_AGENT_BASE_MESSAGES +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Microsoft Copilot Studio User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_Gov,bcc0702e-ba97-48d9-ae04-fa8689c53bba,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Virtual_Agent_Usl_Gov,00b6f978-853b-4041-9de0-a233d18669aa,Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Microsoft Copilot Studio User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Virtual_Agent_Usl_Gov_High,7ffee552-ebe8-4725-8678-5c1775c05847,Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,FLOW_Virtual_Agent_Base_Gov_High,225e52e5-7bbf-4793-8fb1-4307a7a1ae8e,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Flow_Virtual_Agent_Usl_Gov_High,aaae1744-dc7a-4811-9dd0-2bf926ff9d80,Flow for Virtual Agent for GCC High +Microsoft Copilot Studio User License for GCC High_USGOV_GCCHIGH,VIRTUAL_AGENT_USL_AR_USGOV_GCCHIGH,470845c0-6884-47e1-89d0-9d6244a77b44,Power_Virtual_Agent_Usl_GCC_High,3fbe8cdf-c735-44bf-bbfa-646724af4bb4,Power Virtual Agent USL for GCC High +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,DYN365_CDS_CCI_BOTS +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,CCIBOTS_PRIVPREV_VIRAL +Microsoft Copilot Studio Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,FLOW_CCI_BOTS +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud App Security,ADALLOM_STANDALONE,df845ce7-05f9-4894-b5f2-11bbfbcfd2b6,ADALLOM_S_STANDALONE,2e2ddb96-6af9-4b1d-a3f0-d6ecfd22edb2,Microsoft Cloud App Security +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,MCS_BizApps_Cloud_for_Sustainability_vTrial,c1c902e3-a956-4273-abdb-c92afcd027ef,MCS - BizApps_Cloud for Sustainability_vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_APPS_DYN365_VIRAL_TRIAL,54b37829-818e-4e3c-a08a-3ea66ab9b45d,Power Apps for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,POWER_AUTOMATE_DYN365_VIRAL_TRIAL,81d4ecb8-0481-42fb-8868-51536c5aceeb,Power Automate for Dynamics 365 vTrial +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Cloud for Sustainability vTrial,Microsoft_Cloud_for_Sustainability_vTrial,556640c0-53ea-4773-907d-29c55332983f,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Microsoft Defender for Business,MDE_SMB,5e1e7702-a2b7-4360-8d07-2f515792896f,MDE_SMB,bfc1bbd9-981b-4f71-9b82-17c35fd0e2a4,Microsoft Defender for Business +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint,WIN_DEF_ATP,111046dd-295b-4d6d-9724-d52ac90bd1f2,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,MICROSOFT DEFENDER FOR ENDPOINT +Microsoft Defender for Endpoint F2,Microsoft_Defender_for_Endpoint_F2,e430a580-c37b-4d16-adba-d881d7cd0364,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P1,DEFENDER_ENDPOINT_P1,16a55f2f-ff35-4cd5-9146-fb784e3761a5,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P1 for EDU,DEFENDER_ENDPOINT_P1_EDU,bba890d4-7881-4584-8102-0c3fdfb739a7,MDE_LITE,292cc034-7b7c-4950-aaf5-943befd3f1d4,Microsoft Defender for Endpoint Plan 1 +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,Intune_Defender,1689aade-3d6a-4bfc-b017-46d2672df5ad,MDE_SecurityManagement +Microsoft Defender for Endpoint P2_XPLAT,MDATP_XPLAT,b126b073-72db-4a9d-87a4-b17afe41d4ab,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Endpoint Server,MDATP_Server,509e8ab6-0274-4cda-bcbd-bd164fd562c4,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,CRMPLAN2,bf36ca64-95c6-4918-9275-eb9f4ce2c04f,MICROSOFT DYNAMICS CRM ONLINE BASIC +Microsoft Dynamics CRM Online Basic,CRMPLAN2,906af65a-2970-46d5-9b58-4e9aa50f0657,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ATA,14ab5db5-e6c4-4b20-b4bc-13e36fd2227f,Microsoft Defender for Identity +Microsoft Defender for Identity,ATA,98defdf7-f6c1-44f5-a1f6-943b6764e7a5,ADALLOM_FOR_AATP,61d18b02-6889-479f-8f36-56e6e0fe5792,SecOps Investigation for MDI +Microsoft Defender for Office 365 (Plan 1) Faculty,ATP_ENTERPRISE_FACULTY,26ad4b5c-b686-462e-84b9-d7c22b46837f,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) GCC,ATP_ENTERPRISE_GOV,d0d1ca43-b81a-4f51-81e5-a5b1ad7bb005,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 1)_USGOV_GCCHIGH,ATP_ENTERPRISE_USGOV_GCCHIGH ,550f19ba-f323-4a7d-a8d2-8971b0d9ea85,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student,ATP_ENTERPRISE_STUDENT,917fb2b4-f71c-43a1-8edc-75532b554bb5,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 1) Student use benefit,ATP_ENTERPRISE_STUDENTS_USE_BENEFIT,a237b6d8-572e-4839-bffd-7786d32a5d0e,ATP_ENTERPRISE ,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Microsoft Defender for Office 365 (Plan 2) GCC,THREAT_INTELLIGENCE_GOV,56a59ffb-9df1-421b-9e61-8b568583474d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Microsoft Defender Vulnerability Management,TVM_Premium_Standalone,1925967e-8013-495f-9644-c99f8b463748,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Defender Vulnerability Management Add-on,TVM_Premium_Add_on,ad7a56e0-6903-4d13-94f3-5ad491e78960,TVM_PREMIUM_1,36810a13-b903-490a-aa45-afbeb7540832,Microsoft Defender Vulnerability Management +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,CRMSTANDARD,f9646fb2-e3b2-4309-95de-dc4833737456,MICROSOFT DYNAMICS CRM ONLINE PROFESSIONA +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,FLOW FOR DYNAMICS 365 +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,MDM_SALES_COLLABORATION,3413916e-ee66-4071-be30-6f94d4adfeda,MICROSOFT DYNAMICS MARKETING SALES COLLABORATION - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,NBPROFESSIONALFORCRM,3e58e97c-9abe-ebab-cd5f-d543d1529634,MICROSOFT SOCIAL ENGAGEMENT PROFESSIONAL - ELIGIBILITY CRITERIA APPLY +Microsoft Dynamics CRM Online,CRMSTANDARD,d17b27af-3f49-4822-99f9-56a661538792,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,POWERAPPS FOR DYNAMICS 365 +Microsoft Entra ID Governance,Microsoft_Entra_ID_Governance,cf6b0d46-4093-4546-a0ab-0b1546dcc10e,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Internet_Access,8d23cb83-ab07-418f-8517-d7aca77307dc,Microsoft Entra Internet Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Premium_Private_Access,f057aab1-b184-49b2-85c0-881b02a405c5,Microsoft Entra Private Access +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Verifiable_Credentials_Service_Request,aae826b7-14cd-4691-8178-2b312f7072ea,Verifiable Credentials Service Request +Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Step_Up_for_Microsoft_Entra_ID_P2,2ef3064c-c95c-426c-96dd-9ffeaa2f2c37,Entra_Identity_Governance,e866a266-3cff-43a3-acca-0c90a7e00c8b,Entra Identity Governance +Microsoft Entra Workload ID,Workload_Identities_P2,52cdf00e-8303-4223-a749-ff69a13e2dd0,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Microsoft Entra Workload ID +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,Power BI (free) +Microsoft Fabric (Free),POWER_BI_STANDARD,a403ebcc-fae0-4ca2-8c8c-7a907fd6c235,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for faculty,POWER_BI_STANDARD_FACULTY,ade29b5f-397e-4eb9-a287-0344bd46c68d,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE_S_FOUNDATION +Microsoft Fabric (Free) for student,POWER_BI_STANDARD_STUDENT,bdcaf6aa-04c1-4b8f-b64e-6e3bd505ac64,BI_AZURE_P0,2049e525-b859-401b-b2a0-e0a31c4b1fe4,BI_AZURE_P0 +Microsoft Imagine Academy,IT_ACADEMY_AD,ba9a34de-4489-469d-879c-0f0f145321cd,IT_ACADEMY_AD,d736def0-1fde-43f0-a5be-e3f8b2de6e41,MS IMAGINE ACADEMY +Microsoft Intune Advanced Analytics,Microsoft_Intune_Advanced_Analytics,5e36d0d4-e9e5-4052-aba0-0257465c9b86,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Microsoft Intune Advanced Analytics +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Device,INTUNE_A_D,2b317a4a-77a6-4188-9437-b68a77b4e2c6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Device for Government,INTUNE_A_D_GOV,2c21e77a-e0d6-4570-b38a-7ff2dc17d2ca,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Intune Government,INTUNE_A_GOV,2b26f637-35a0-4dbc-b69e-ff674782be9d,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL,INTUNE_A_VL,99fc2803-fa72-42d3-ae78-b055e177d275,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Intune Plan 1 A VL_USGOV_GCCHIGH,INTUNE_A_VL_USGOV_GCCHIGH,b4288abe-01be-47d9-ad20-311d6e83fc24,INTUNE_A_VL,3e170737-c728-4eae-bbb9-3f3360f7184c,Microsoft Intune Plan 1 +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,DYN365_CDS_DEV_VIRAL,d8c638e2-9508-40e3-9877-feb87603837b,Common Data Service - DEV VIRAL +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,FLOW_DEV_VIRAL,c7ce3f26-564d-4d3a-878d-d8ab868c85fe,Flow for Developer +Microsoft Power Apps for Developer,POWERAPPS_DEV,5b631642-bd26-49fe-bd20-1daaa972ef80,POWERAPPS_DEV_VIRAL,a2729df7-25f8-4e63-984b-8a8484121554,PowerApps for Developer +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service - VIRAL +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,Flow Free +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,FLOW_P2_VIRAL_REAL,d20bfa21-e9ae-43fc-93c2-20783f0840c3,Flow P2 Viral +Microsoft Power Apps Plan 2 Trial,POWERAPPS_VIRAL,dcb1a3ae-b33f-4487-846a-a640262fadf4,POWERAPPS_P2_VIRAL,d5368ca3-357e-4acb-9c21-8495fb025d1f,PowerApps Trial +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,COMMON DATA SERVICE +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Power Automate Free,FLOW_FREE,f30db892-07e9-47e9-837c-80727f46fd3d,FLOW_P2_VIRAL,50e68c76-46c6-4674-81f9-75456511b170,FLOW FREE +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Automate Plan 2,FLOW_P2,4755df59-3f73-41ab-a249-596ad72b5504,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,AAD_SMB,de377cbc-0019-4ec2-b77c-3f223947e102,Microsoft Entra ID +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_SMBIZ,8e9ff0ff-aa7a-4b20-83c1-2f636b600ac2,MICROSOFT INTUNE +Microsoft Intune SMB,INTUNE_SMB,e6025b08-2fa5-4313-bd0a-7e5ffca32958,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,MICROSOFT INTUNE +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune_AdvancedEA,2a4baa0e-5e99-4c38-b1f2-6864960f1bd1,Intune Advanced endpoint analytics +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-EPM,bb73f429-78ef-4ff2-83c8-722b04c3e7d1,Intune Endpoint Privilege Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,INTUNE_P2,d9923fe3-a2de-4d29-a5be-e3e83bb786be,Intune Plan 2 +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,Intune-MAMTunnel,a6e407da-7411-4397-8a2e-d9b52780849e,Microsoft Tunnel for Mobile Application Management +Microsoft Intune Suite,Microsoft_Intune_Suite,a929cd4d-8672-47c9-8664-159c1f322ba8,REMOTE_HELP,a4c6cf29-1168-4076-ba5c-e8fe0e62b17e,Remote help +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,POWERAPPS_P2,00527d7f-d5bc-4c2a-8d1e-6c0de2410c81,Power Apps (Plan 2) +Microsoft Power Apps Plan 2 (Qualified Offer),POWERFLOW_P2,ddfae3e3-fcb2-4174-8ebd-3023cb213c8b,FLOW_P2,56be9436-e4b2-446c-bb7f-cc15d16cca4d,Power Automate (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Forms_Pro_Relationship_Sales,507172c0-6001-4f4f-80e7-f350507af3e5,Microsoft Dynamics 365 Customer Voice for Relationship Sales +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,56e3d4ca-2e31-4c3f-8d57-89c1d363503b,Microsoft Relationship Sales solution +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,NBENTERPRISE,03acaee3-9492-4f40-aed4-bcb6b32981b6,Retired - Microsoft Social Engagement +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PremiumTrial,8ba1ff15-7bf6-4620-b65c-ecedb6942766,Microsoft Viva Sales Premium & Trial +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,Microsoft_Viva_Sales_PowerAutomate,a933a62f-c3fb-48e5-a0b7-ac92b94b4420,Microsoft Viva Sales Premium with Power Automate +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,POWERAPPS_DYN_APPS,874fc546-6efe-4d22-90b8-5c4e7aa59f4b,Power Apps for Dynamics 365 +Microsoft Relationship Sales solution,DYN365_ ENTERPRISE _RELATIONSHIP_SALES,4f05b1a3-a978-462c-b93f-781c6bee998f,FLOW_DYN_APPS,7e6d7d78-73de-46ba-83b1-6d25117334ba,Power Automate for Dynamics 365 +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Stream,STREAM,1f2f344a-700d-42c9-9427-5cea1d5d7ba6,MICROSOFTSTREAM,acffdce6-c30f-4dc2-81c0-372e33c515ec,MICROSOFT STREAM +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Plan 2,STREAM_P2,ec156933-b85b-4c50-84ec-c9e5603709ef,STREAM_P2,d3a458d0-f10d-48c2-9e44-86f3f684029e,Microsoft Stream Plan 2 +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Stream Storage Add-On (500 GB),STREAM_STORAGE,9bd7c846-9556-4453-a542-191d527209e8,STREAM_STORAGE,83bced11-77ce-4071-95bd-240133796768,Microsoft Stream Storage Add-On +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,CDS_CLOUD_FOR_SUSTAINABILITY_PLUS,ba80223c-e515-4642-a838-3e7d66f70cb6,Common Data Services for Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_PLUS,ed29ae92-ff5f-4446-8460-83c54d0e7088,MCS - BizApps Cloud for Sustainability Plus +Microsoft Sustainability Manager Premium,Microsoft_Sustainability_Manager_Premium,aecb477b-2f56-4e38-b711-b752c24fc19b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,MCS_BIZAPPS_CLOUD_FOR_SUSTAINABILITY_USL_PLUS,beaf5b5c-d11c-4417-b5cb-cd9f9e6719b0,MCS - BizApps Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_APPS_FOR_MCS_USL_PLUS,c5502fe7-406d-442a-827f-4948b821ba08,Power Apps for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,POWER_AUTOMATE_FOR_MCS_USL_PLUS,1c22bb50-96fb-49e5-baa6-195cab19eee2,Power Automate for Cloud for Sustainability USL Plus +Microsoft Sustainability Manager Premium USL Plus,MICROSOFT_SUSTAINABILITY_MANAGER_PREMIUM_USL_ADDON,9d576ffb-dd32-4c33-91ee-91625b61424a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,MCS_BizApps_Cloud_for_Sustainability_USL,c46c42af-d654-4385-8c85-29a84f3dfb22,MCS - BizApps - Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_APPS_FOR_MCS_USL,5ffd371c-037a-41a2-98a3-6452f8c5de17,Power Apps for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,POWER_AUTOMATE_FOR_MCS_USL,ccbe468e-7973-442c-8ec4-5fbe16438711,Power Automate for Cloud for Sustainability USL +Microsoft Sustainability Manager USL Essentials,Microsoft_Cloud_for_Sustainability_USL,ece037b4-a52b-4cf8-93ea-649e5d83767a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Audio Conferencing with dial-out to USA/CAN,Microsoft_Teams_Audio_Conferencing_select_dial_out,1c27243e-fb4d-42b1-ae8c-fe25c9616588,MCOMEETBASIC,9974d6cf-cd24-4ba2-921c-e2aa687da846,Microsoft Teams Audio Conferencing with dial-out to select geographies +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,MCOFREE,617d9209-3b90-4879-96e6-838c42b2701d,MCO FREE FOR MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE,4fa4026d-ce74-4962-a151-8e96d57ea8e4,MICROSOFT TEAMS (FREE) +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SHAREPOINT KIOSK +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,TEAMS_FREE_SERVICE,bd6f2ac2-991a-49f9-b23c-18c96a02c228,TEAMS FREE SERVICE +Microsoft Teams (Free),TEAMS_FREE,16ddbbfc-09ea-4de2-b1d7-312db6112d70,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,WHITEBOARD (FIRSTLINE) +Microsoft Teams Calling Plan pay-as-you-go (country zone 1 - US),Microsoft_Teams_Calling_Plan_pay_as_you_go_(country_zone_1_US),9b196e97-5830-4c2e-adc2-1e10ebf5dee5,MCOPSTN_PAYG_1,156a1efe-17cd-4b03-9f17-2eb512298fb3,Microsoft Teams Calling Plan pay-as-you-go - country zone 1 +Microsoft Teams Domestic Calling Plan (240 min),MCOPSTN_6,729dbb8f-8d56-4994-8e33-2f218f549544,MCOPSTN6,346d83bf-6fe6-42ca-b424-b9300d2e21bf,Microsoft 365 Domestic Calling Plan (240 min) +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,MCOPSTN1_GOV,3c8a8792-7866-409b-bb61-1b20ace0368b,Domestic Calling Plan for Government +Microsoft Teams Domestic Calling Plan for GCC,MCOPSTN_1_GOV,923f58ab-fca1-46a1-92f9-89fda21238a8,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Microsoft Teams Essentials,Teams_Ess,fde42873-30b6-436b-b361-21af5a6b84ae,TeamsEss,f4f2f6de-6830-442b-a433-e92249faebe2,Microsoft Teams Essentials +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,ONEDRIVE_BASIC_P2,4495894f-534f-41ca-9d3b-0ebf1220a423,OneDrive for Business (Basic 2) +Microsoft Teams Essentials (AAD Identity),TEAMS_ESSENTIALS_AAD,3ab6abff-666f-4424-bfb7-f0bc274ec7bc,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,COMMON DATA SERVICE FOR TEAMS_P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,INSIGHTS BY MYANALYTICS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNER +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,MICROSOFT SEARCH +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,DESKLESS,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,MICROSOFT TEAMS +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,MOBILE DEVICE MANAGEMENT FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE FOR THE WEB +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,OFFICE MOBILE APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWER APPS FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,POWER AUTOMATE FOR OFFICE 365 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,POWER VIRTUAL AGENTS FOR OFFICE 365 P1 +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,TO-DO (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,WHITEBOARD (PLAN 1) +Microsoft Teams Exploratory,TEAMS_EXPLORATORY,710779e8-3d4a-4c88-adb9-386c958d1fdf,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER ENTERPRIS +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Exploratory Dept,Microsoft_Teams_Exploratory_Dept,e0dfc8b9-9531-4ec8-94b4-9fec23b05fc8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Microsoft Teams Phone Standard,MCOEV,e43b5b99-8dfb-405f-9987-dc307f34bcbd,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for DOD,MCOEV_DOD,d01d9287-694b-44f3-bcc5-ada78c8d953e,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Faculty,MCOEV_FACULTY,d979703c-028d-4de5-acbf-7955566b69b9,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTE +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Microsoft Teams Phone Standard for GCC,MCOEV_GOV,a460366a-ade7-4791-b581-9fbff1bdaa85,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,MICROSOFT 365 PHONE SYSTEM FOR GOVERNMENT +Microsoft Teams Phone Standard for GCCHIGH,MCOEV_GCCHIGH,7035277a-5e49-4abc-a24f-0ec49c501bb5,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for Small and Medium Business,MCOEVSMB_1,aa6791d3-bb09-4bc2-afed-c30c3fe26032,MCOEVSMB,ed777b71-af04-42ca-9798-84344c66f7c6,SKYPE FOR BUSINESS CLOUD PBX FOR SMALL AND MEDIUM BUSINESS +Microsoft Teams Phone Standard for Students,MCOEV_STUDENT,1f338bbc-767e-4a1e-a2d4-b73207cc5b93,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard for TELSTRA,MCOEV_TELSTRA,ffaf2d68-1c95-4eb3-9ddd-59b81fba0f61,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_DOD,MCOEV_USGOV_DOD,b0e7de67-e503-4934-b729-53d595ba5cd1,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Standard_USGOV_GCCHIGH,MCOEV_USGOV_GCCHIGH,985fcb26-7b94-475b-b512-89356697be71,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Phone Resource Account,PHONESYSTEM_VIRTUALUSER,440eaaa8-b3e0-484b-a8be-62870b9ba70a,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for Faculty,PHONESYSTEM_VIRTUALUSER_FACULTY,0e142028-345e-45da-8d92-8bfd4093bbb9,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Phone Resource Account for GCC,PHONESYSTEM_VIRTUALUSER_GOV,2cf22bcb-0c9e-4bc6-8daf-7e7654c0f285,MCOEV_VIRTUALUSER_GOV,0628a73f-3b4a-4989-bd7b-0f8823144313,Microsoft 365 Phone Standard Resource Account for Government +Microsoft Teams Phone Resource Account_USGOV_GCCHIGH,PHONESYSTEM_VIRTUALUSER_USGOV_GCCHIGH ,e3f0522e-ebb7-4561-9f90-b44516d65b77,MCOEV_VIRTUALUSER,f47330e9-c134-43b3-9993-e7f004506889,Microsoft 365 Phone Standard Resource Account +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Microsoft Teams Premium Introductory Pricing,Microsoft_Teams_Premium,36a0f3b3-adb5-49ea-bf66-762134cf063a,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic,Microsoft_Teams_Rooms_Basic,6af4b3d6-14bb-4a2a-960c-6c902aad34f3,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Rooms_Basic,c8529366-cffd-4415-ab8f-be0144a33ab1,Teams Rooms Basic +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Basic for EDU,Microsoft_Teams_Rooms_Basic_FAC,a4e376bd-c61e-4618-9901-3fc0cb1b88bb,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Basic without Audio Conferencing,Microsoft_Teams_Rooms_Basic_without_Audio_Conferencing,50509a35-f0bd-4c5e-89ac-22f0e16a00f8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro,Microsoft_Teams_Rooms_Pro,4cde982a-ede4-4409-9ae6-b003453c8ea6,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MTRProManagement,ecc74eae-eeb7-4ad5-9c88-e8b2bfca75b8,Microsoft Teams Rooms Pro Management +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Rooms_Pro,0374d34c-6be4-4dbb-b3f0-26105db0b28a,Teams Rooms Pro +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Rooms Pro for EDU,Microsoft_Teams_Rooms_Pro_FAC,c25e2b36-e161-4946-bef2-69239729f690,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Basic,8081ca9c-188c-4b49-a8e5-c23b5e9463a8,Teams Rooms Test 1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,Teams_Room_Pro,ec17f317-f4bc-451e-b2da-0167e5c260f9,Teams Rooms Test 2 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium P1 +Microsoft Teams Rooms Pro for GCC,Microsoft_Teams_Rooms_Pro_GCC,31ecb341-2a17-483e-9140-c473006d1e1a,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Pro without Audio Conferencing,Microsoft_Teams_Rooms_Pro_without_Audio_Conferencing,21943e3a-2429-4f83-84c1-02735cd49e78,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,MICROSOFT 365 PHONE SYSTEM +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,MICROSOFT TEAMS +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices,MCOCAP,295a8eb0-f78d-45c7-8b5b-1eed5ed02dff,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune Plan 1 +Microsoft Teams Shared Devices for Faculty,MCOCAP_FACULTY ,420c7602-7f70-4895-9394-d3d679ea36fb ,SPECIALTY_DEVICES,cfce7ae3-4b41-4438-999c-c0e91f3b7fb9,Specialty devices +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID P1 +Microsoft Teams Shared Devices for GCC,MCOCAP_GOV,b1511558-69bd-4e1b-8270-59ca96dba0f3,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Microsoft Entra ID Plan 1 +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard,MEETING_ROOM,6070a4c8-34c6-4937-8dfb-39bbc6397a60,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard without Audio Conferencing,MEETING_ROOM_NOAUDIOCONF,61bec411-e46a-4dab-8f46-8b58ec845ffe,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC,MEETING_ROOM_GOV,9571e9ac-2741-4b63-95fd-a79696f0d0ac,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,AAD_PREMIUM,41781fb2-bc02-4b7c-bd55-b576c07bb09d,Azure Active Directory Premium Plan 1 +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,Teams_Room_Standard,92c6b761-01de-457a-9dd9-793a975238f7,Teams Room Standard +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Microsoft Teams Rooms Standard for GCC without Audio Conferencing,MEETING_ROOM_GOV_NOAUDIOCONF,b4348f75-a776-4061-ac6c-36b9016b01d1,INTUNE_A_GOV,d216f254-796f-4dab-bbfa-710686e646b9,Microsoft Intune G +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Trial,MS_TEAMS_IW,74fbf1bb-47c6-4796-9623-77dc7371723b,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Microsoft Threat Experts - Experts on Demand,EXPERTS_ON_DEMAND,9fa2f157-c8e4-4351-a3f2-ffa506da1406,EXPERTS_ON_DEMAND,b83a66d4-f05f-414d-ac0f-ea1c5239c42b,Microsoft Threat Experts - Experts on Demand +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Viva Goals,Microsoft_Viva_Goals,ba929637-f158-4dee-927c-eb7cdefcd955,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Glint,Viva_Glint_Standalone,3dc7332d-f0fa-40a3-81d3-dd6b84469b78,Viva_Glint,6b270342-093e-4015-8c5c-224561532fbf,Viva Glint +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Microsoft Viva Topics) +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Viva Insights +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Viva Insights Backend +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Microsoft Viva Topics +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_COMMUNITIES_AND_COMMUNICATIONS,43304c6a-1d4e-4e0b-9b06-5b2a2ff58a90,Viva Engage Communities and Communications +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVAENGAGE_KNOWLEDGE,c244cc9e-622f-4576-92ea-82e233e44e36,Viva Engage Knowledge +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Microsoft Viva Suite,VIVA,61902246-d7cb-453e-85cd-53ee28eec138,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Student,MEE_STUDENT,533b8f26-f74b-4e9c-9c59-50fc4b393b63,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,MINECRAFT_EDUCATION_EDITION,4c246bbc-f513-4311-beff-eba54c353256,Minecraft Education +Minecraft Education Faculty,MEE_FACULTY,984df360-9a74-4647-8cf8-696749f6247a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,EXCHANGEONLINE_MULTIGEO,897d51f1-2cfa-4848-9b30-469149f5e68e,Exchange Online Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,SHAREPOINTONLINE_MULTIGEO,735c1d98-dd3f-4818-b4ed-c8052e18e62d,SharePoint Multi-Geo +Office 365 Multi-Geo Capabilities,OFFICE365_MULTIGEO,84951599-62b7-46f3-9c9d-30551b2ad607,TEAMSMULTIGEO,41eda15d-6b52-453b-906f-bc4a5b25a26b,Teams Multi-Geo +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Nonprofit Portal,NONPROFIT_PORTAL,aa2695c9-8d59-4800-9dc8-12e01f1735af,NONPROFIT_PORTAL,7dbc2d88-20e2-4eb6-b065-4510b38d6eb2,Nonprofit Portal +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for faculty,STANDARDWOFFPACK_FACULTY,94763226-9b3c-4e75-a931-5c89701abe66,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for faculty,STANDARDWOFFPACK_IW_FACULTY,78e66a63-337a-4a9a-8959-41c6654dfb56,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Azure Active Directory Basic for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 for students,STANDARDWOFFPACK_STUDENT,314c4481-f395-4525-be8b-2ec4bb1e9d91,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service - O365 P1 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro Plan 2 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SCHOOL_DATA_SYNC_P1,c33802dd-1b50-4b9a-8bb9-f13d2cdeadac,School Data Sync (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SHAREPOINTSTANDARD_EDU,0a4983bb-d3e5-4a09-95d8-b2d0127b3df5,SharePoint (Plan 1) for Education +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 A1 Plus for students,STANDARDWOFFPACK_IW_STUDENT,e82ae690-a2d5-4d76-8d30-7c6e01e6022e,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the web (Education) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for faculty,ENTERPRISEPACKPLUS_FACULTY,e578b273-6db4-4691-bba0-8d691f4da603,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service - O365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams_P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro Plan 3 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 P2 +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 A3 for students,ENTERPRISEPACKPLUS_STUDENT,98b6e773-24d4-4c0d-a968-6e787a1f8204,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for faculty,ENTERPRISEPREMIUM_FACULTY,a4585165-0533-458a-97e3-c400570268c4,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,AAD_BASIC_EDU,1d0f309f-fdf9-4b2a-9ae7-9c48b91f1426,Microsoft Entra ID Basic for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EducationAnalyticsP1,a9b86446-fa4e-498f-a92a-41b447e03337,Education Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,OFFICE_FORMS_PLAN_3,96c1e14a-ef43-418d-b115-9636cdaa8eed,Microsoft Forms (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SCHOOL_DATA_SYNC_P2,500b6a2a-7a50-4f40-b5f9-160e5b8c2f48,School Data Sync (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,YAMMER_EDU,2078e8df-cff6-4290-98cb-5408261a760a,Yammer for Academic +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 A5 for students,ENTERPRISEPREMIUM_STUDENT,ee656612-49fa-43e5-b67e-cb1fdf7699df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 Advanced Compliance,EQUIVIO_ANALYTICS,1b1b1f7a-8355-43b6-829f-336cfccb744c,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics -Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 Advanced Compliance for GCC,EQUIVIO_ANALYTICS_GOV,1a585bba-1ce3-416e-b1d6-9c482b52fcf6,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Microsoft Defender for Office 365 (Plan 1),ATP_ENTERPRISE,4ef96642-f096-40de-a3e9-d83fb2f90211,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE_S_FOUNDATION_GOV +Office 365 Extra File Storage for GCC,SHAREPOINTSTORAGE_GOV,e5788282-6381-469f-84f0-3d7d4021d34d,SHAREPOINTSTORAGE_GOV,e5bb877f-6ac9-4461-9e43-ca581543ab16,SHAREPOINTSTORAGE_GOV +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams_P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for O365 E1 SKU +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,MCO_TEAMS_IW,42a3ec34-28ba-46b6-992f-db53a675ac5b,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 P1 +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Microsoft Teams Commercial Cloud,TEAMS_COMMERCIAL_TRIAL,29a2f828-8f39-4837-b8ff-c957e86abe3c,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Office 365 Cloud App Security,ADALLOM_O365,84d5f90f-cd0d-4864-b90b-1c7ba63b4808,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 Extra File Storage,SHAREPOINTSTORAGE,99049c9c-6011-4908-bf17-15f496e6519d,SHAREPOINTSTORAGE,be5a7ed5-c598-4fcd-a061-5e6724c68a58,Office 365 Extra File Storage +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1,STANDARDPACK,18181a46-0d4e-45cd-891e-60aabd171b4e,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_MYANALYTICS_FULL,0403bb98-9d17-4f94-b53e-eca56a7698a6,DO NOT USE - Microsoft MyAnalytics (Full) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INSIGHTS_BY_MYANALYTICS,b088306e-925b-44ab-baa0-63291c629a91,Insights by MyAnalytics Backend +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PEOPLE_SKILLS_FOUNDATION,13b6da2c-0d84-450e-9f69-a33e221387ca,People Skills - Foundation +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,RETIRED - Places Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 (no Teams),Office_365_E1_(no_Teams),f8ced641-8e17-4dc5-b014-f5a2d53f6ac8,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,KAIZALA_O365_P2,54fc630f-5a40-48ee-8965-af0503c1386e,Microsoft Kaizala Pro +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,PROJECT_O365_P1,a55dfd10-0864-46d9-a3cd-da5991a3e0e2,Project for Office (Plan E1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,Power Apps for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,Power Automate for Office 365 +Office 365 E1 EEA (no Teams),Office_365_w/o_Teams_Bundle_E1,b57282e3-65bd-4252-9502-c0eae1e5ab7f,POWER_VIRTUAL_AGENTS_O365_P1,0683001c-0492-4d59-9515-d9a6426b5813,Power Virtual Agents for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,CDS_O365_P1,bed136c6-b799-4462-824d-fc045d3a9d25,Common Data Service for Teams +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,Exchange Online (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FORMS_PLAN_E1_AR_GCCHIGH,9c37c053-dfe3-4421-b6d4-bac8b86d42bd,Microsoft Forms (Plan E1) for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SharePoint (Plan 1) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,DYN365_CDS_O365_P1,40b010bb-0b69-4654-ac5e-ba161433f4b4,Common Data Service +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,Microsoft Stream for Office 365 E1 +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,POWERAPPS_O365_P1_GCCHIGH,3913e44e-824e-490c-a182-82785d769b45,Power Apps for Office 365 for GCCHigh +Office 365 E1_USGOV_GCCHIGH,STANDARDPACK_USGOV_GCCHIGH,f698ca06-024f-4562-b029-9cb1f1e02646,FLOW_O365_P1_GCCHIGH,e923bad8-588e-44d5-acd0-b226daa7b4de,Power Automate for Office 365 for GCCHigh +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,BPOS_S_TODO_1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,EXCHANGE_S_STANDARD,9aaf7827-d63c-4b61-89c3-182f06f82e5c,EXCHANGE ONLINE (PLAN 1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FLOW_O365_P1,0f9b09cb-62d1-4ff4-9129-43f4996f83f4,FLOW FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,POWERAPPS_O365_P1,92f7a6f3-b89b-4bbd-8c30-809e6da5ad1c,POWERAPPS FOR OFFICE 365 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,STREAM_O365_E1,743dd19e-1ce3-4c62-a3ad-49ba8f63a2f6,MICROSOFT STREAM FOR O365 E1 SKU +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E2,STANDARDWOFFPACK,6634e0ce-1a9f-428c-a498-f84ec7b8aa2e,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,Commercial data protection for Microsoft Copilot +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3,ENTERPRISEPACK,6fd2c87f-b296-42f0-b197-1e91e994b900,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_FOR_TEAMS,dcf9d2f4-772e-4434-b757-77a453cfbc02,Avatars for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_AVATARS_ADDITIONAL_FOR_TEAMS,3efbd4ed-8958-4824-8389-1321f8730af8,Avatars for Teams (additional) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MESH_IMMERSIVE_FOR_TEAMS,f0ff6ac6-297d-49cd-be34-6dfef97f0c28,Immersive spaces for Teams +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,CLIPCHAMP,a1ace008-72f3-4ea0-8dac-33b3a23a2472,Microsoft Clipchamp +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PLACES_CORE,1fe6227d-3e01-46d0-9510-0acad4ff6e94,Places Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,Bing_Chat_Enterprise,0d0c0d31-fae7-41f2-b909-eaf4d7f26dba,RETIRED - Commercial data protection for Microsoft Copilot +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 (no Teams),Office_365_E3_(no_Teams),46c3a859-c90d-40b3-9551-6178a48d5c18,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,CDS_O365_P2,95b76021-6a53-4741-ab8b-1d1f3d66a95a,Common Data Service for Teams +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,Microsoft Forms (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,KAIZALA_O365_P3,aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1,Microsoft Kaizala Pro +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,PROJECT_O365_P2,31b4e2fc-4cd6-4e7d-9c1b-41407303bd66,Project for Office (Plan E3) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,DYN365_CDS_O365_P2,4ff01e01-1ba7-4d71-8cf8-ce96c3bbcf14,Common Data Service +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for Office 365 E3 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,Power Apps for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,Power Automate for Office 365 +Office 365 E3 EEA (no Teams),O365_w/o_Teams_Bundle_E3,d711d25a-a21c-492f-bd19-aae1e8ebaf30,POWER_VIRTUAL_AGENTS_O365_P2,041fe683-03e4-45b6-b1af-c0cdc516daee,Power Virtual Agents for Office 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,BPOS_S_TODO_3 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,MICROSOFT FORMS (PLAN E5) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINT_S_DEVELOPER,a361d6e2-509e-4e25-a8ad-950060064ef4,SHAREPOINT FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SHAREPOINTWAC_DEVELOPER,527f7cdd-0e86-4c47-b879-f5fd357a3ac6,OFFICE ONLINE FOR DEVELOPER +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,MICROSOFT STREAM FOR O365 E5 SKU +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E3 Developer,DEVELOPERPACK,189a915c-fe4f-4ffa-bde4-85b9628d07a0,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,TEAMS_AR_DOD,fd500458-c24c-478e-856c-a6067a8376cd,Microsoft Teams for DOD (AR) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_DOD,ENTERPRISEPACK_USGOV_DOD,b107e5a3-3e60-4c0d-a184-a7e4395eb44c,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,Microsoft Stream for O365 E3 SKU +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh (AR) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Office 365 ProPlus +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office Online +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint Online (Plan 2) +Office 365 E3_USGOV_GCCHIGH,ENTERPRISEPACK_USGOV_GCCHIGH,aea38a85-9bd5-4981-aa00-616b411205bf,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,BPOS_S_TODO_2 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,MICROSOFT STAFFHUB +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,EXCHANGE ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FLOW_O365_P2,76846ad7-7776-4c40-a281-a386362dd1b9,FLOW FOR OFFICE 365 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,FORMS_PLAN_E3,2789c901-c14e-48ab-a76a-be334d9d793a,MICROSOFT FORMS (PLAN E3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,MCOVOICECONF,27216c54-caf8-4d0d-97e2-517afb5c08f6,SKYPE FOR BUSINESS ONLINE (PLAN 3) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,POWERAPPS_O365_P2,c68f8d98-5534-41c8-bf36-22fa496fa792,POWERAPPS FOR OFFICE 36 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,MICROSOFT PLANNE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,MICROSOFT Microsoft Entra RIGHTS +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,STREAM_O365_E3,9e700747-8b1d-45e5-ab8d-ef187ceec156,MICROSOFT STREAM FOR O365 E3 SKU +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,TEAMS1 +Office 365 E4,ENTERPRISEWITHSCAL,1392051d-0cb9-4b7a-88d5-621fee5e8711,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,YAMMER_ENTERPRISE +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service - O365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams_P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,M365 Communication Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Microsoft Microsoft Entra Rights +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for O365 E5 SKU +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Advanced Security Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 P3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,PowerApps for Office 365 Plan 3 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,Microsoft Communications Compliance +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5,ENTERPRISEPREMIUM,c7df2760-2c81-4ef7-b578-5b5392b571df,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams),Office_365_w/o_Teams_Bundle_E5,cf50bae9-29e8-4775-b07c-56ee10e3776d,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CustomerLockboxA_Enterprise,3ec18638-bd4c-4d3b-8905-479ed636b83e,Customer Lockbox (A) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 EEA (no Teams) without Audio Conferencing,Office_365_E5_EEA_(no_Teams)_without_Audio_Conferencing,71772aeb-4bb8-4f74-9dd4-36c7a9b5ca74,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RMS_S_ENTERPRISE,bea4c11e-220a-4e6d-8eb8-8ea15d019f90,Azure Rights Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CDS_O365_P3,afa73018-811e-46e9-988f-f75d2b1b8430,Common Data Service for Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,LOCKBOX_ENTERPRISE,9f431833-0334-42de-a7dc-70aa40db46db,Customer Lockbox +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_S_ENTERPRISE,efb87545-963c-4e0d-99df-69c6916d9eb0,Exchange Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MYANALYTICS_P2,33c4f319-9bdd-48d6-9c4d-410b750a4a5a,Insights by MyAnalytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,Microsoft 365 Apps for Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DATA_INVESTIGATIONS,46129a58-a698-46f0-aa5b-17f6586297d9,Microsoft Data Investigations +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ATP_ENTERPRISE,f20fedf3-f3c3-43c3-8267-2bfdd51c0939,Microsoft Defender for Office 365 (Plan 1) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,THREAT_INTELLIGENCE,8e0c0a52-6a6c-4d40-8370-dd62790dcd70,Microsoft Defender for Office 365 (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCEL_PREMIUM,531ee2f8-b1cb-453b-9c21-d2180d014ca5,Microsoft Excel Advanced Analytics +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FORMS_PLAN_E5,e212cbc7-0961-4c40-9825-01117710dcb1,Microsoft Forms (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,KAIZALA_STANDALONE,0898bdbb-73b0-471a-81e5-20f1fe4dd66e,Microsoft Kaizala Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EXCHANGE_ANALYTICS,34c0d7a0-a70f-4668-9238-47f9fc208882,Microsoft MyAnalytics (Full) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,STREAM_O365_E5,6c6042f5-6f01-4d67-b8c1-eb99d36eed3e,Microsoft Stream for Office 365 E5 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,EQUIVIO_ANALYTICS,4de31727-a228-4ec3-a5bf-8e45b5ca48cc,Office 365 Advanced eDiscovery +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PAM_ENTERPRISE,b1188c4c-1b36-4018-b48b-ee07604f6feb,Office 365 Privileged Access Management +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWERAPPS_O365_P3,9c0dab89-a30c-4117-86e7-97bda240acd2,Power Apps for Office 365 (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,PROJECT_O365_P3,b21a6b06-1988-436e-a07b-51ec6d9f52ad,Project for Office (Plan E5) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,COMMUNICATIONS_COMPLIANCE,41fcdd7d-4733-4863-9cf4-c65b83ce2df4,RETIRED - Microsoft Communications Compliance +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,DYN365_CDS_O365_P3,28b0fa46-c39a-4188-89e2-58e979a6b014,Common Data Service +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,FLOW_O365_P3,07699545-9485-468e-95b6-2fca3738be01,Power Automate for Office 365 +Office 365 E5 Without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF,26d45bd9-adf1-46cd-a9e1-51e9a5524128,POWER_VIRTUAL_AGENTS_O365_P3,ded3d325-1bdc-453e-8432-5bac26d7a014,Power Virtual Agents for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service - O365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams_F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro Plan 1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 F1 +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3,DESKLESSPACK,4b585984-651b-448a-9e53-3b10f069cf7f,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FORMS_PLAN_K,f07046bd-2a3c-4b96-b0be-dea79d7cbfb8,Microsoft Forms (Plan F1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,KAIZALA_O365_P1,73b2a583-6a59-42e3-8e83-54db46bc3278,Microsoft Kaizala Pro +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Deskless,8c7d2df8-86f0-4902-b2ed-a0458298f3b3,Microsoft StaffHub +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,PROJECT_O365_F3,7f6f28c2-34bb-4d4b-be36-48ca2e77e1ec,Project for Office (Plan F) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,BPOS_S_TODO_FIRSTLINE,80873e7a-cd2a-4e67-b061-1b5381a676a5,To-Do (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVAENGAGE_CORE,a82fbf69-b4d7-49f4-83a6-915b2cf354f4,Viva Engage Core +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,VIVA_LEARNING_SEEDED,b76fb638-6ba6-402a-b9f9-83d28acb3d86,Viva Learning Seeded +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,WHITEBOARD_FIRSTLINE1,36b29273-c6d0-477a-aca6-6fbe24f538e3,Whiteboard (Firstline) +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,YAMMER_ENTERPRISE,7547a3fe-08ee-4ccb-b430-5077c5041653,Yammer Enterprise +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWERAPPS_O365_S1,e0287f9f-e222-4f98-9a83-f379e249159a,Power Apps for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,FLOW_O365_S1,bd91b1a4-9f94-4ecf-b45b-3a65e5c8128a,Power Automate for Office 365 F3 +Office 365 F3 EEA (no Teams),Office_365_F3_EEA_(no_Teams),d1f0495b-cb7b-4e11-8b85-daee7e7e5664,POWER_VIRTUAL_AGENTS_O365_F1,ba2fdb48-290b-4632-b46a-e4ecc58ac11a,Power Virtual Agents for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,CDS_O365_F1,90db65a7-bf11-4904-a79f-ef657605145b,Common Data Service for Teams +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,EXCHANGE_S_DESKLESS,4a82b400-a79f-41a4-b4e2-e94f5787b113,Exchange Online Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FORMS_PLAN_K_AR_GCCHIGH,59fb5884-fdec-40bf-aa7f-89e2bae79a7a,Microsoft Forms (Plan F1) for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,PROJECTWORKMANAGEMENT,b737dad2-2f6c-4c65-90e3-ca563267e8b9,Microsoft Planner +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MICROSOFT_SEARCH_GCCH,fc9f7921-4ca5-42c6-8533-1b84c4ee496b,Microsoft Search for Arlington +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,TEAMS_AR_GCCHIGH,9953b155-8aef-4c56-92f3-72b0487fce41,Microsoft Teams for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,OFFICEMOBILE_SUBSCRIPTION,c63d4d19-e8cb-460e-b37c-4d6c34603745,Office Mobile Apps for Office 365 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,SHAREPOINTDESKLESS,902b47e5-dcb2-4fdc-858b-c63a90a2bdb9,SharePoint Kiosk +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,Skype for Business Online (Plan 1) +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,DYN365_CDS_O365_F1,ca6e61ec-d4f4-41eb-8b88-d96e0e14323f,Common Data Service +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,STREAM_O365_K,3ffba0d2-38e5-4d5e-8ec0-98f2b05c09d9,Microsoft Stream for Office 365 F3 +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,POWERAPPS_O365_S1_GCCHIGH,b9f1a92f-d4c7-477b-b64c-e23d7b4e8cf9,Power Apps for Office 365 F3 for GCCHigh +Office 365 F3_USGOV_GCCHIGH,DESKLESSPACK_USGOV_GCCHIGH,74039b88-bd62-4b5c-9d9c-7a92bbc0bfdf,FLOW_O365_S1_GCCHIGH,1db85bca-cd60-4bf5-ae54-641e0778a532,Power Automate for Office 365 F3 for GCCHigh +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,DYN365_CDS_O365_P1_GCC,8eb5e9bc-783f-4425-921a-c65f45dd72c6,Common Data Service - O365 P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,CDS_O365_P1_GCC,959e5dec-6522-4d44-8349-132c27c3795a,Common Data Service for Teams_P1 GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,EXCHANGE_S_STANDARD_GOV,e9b4930a-925f-45e2-ac2a-3f7788ca6fdd,Exchange Online (Plan 1) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FORMS_GOV_E1,f4cba850-4f34-4fd2-a341-0fddfdce1e8f,Forms for Government (Plan E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,STREAM_O365_E1_GOV,15267263-5986-449d-ac5c-124f3b49b2d6,Microsoft Stream for O365 for Government (E1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,SharePoint Plan 1G,f9c43823-deb4-46a8-aa65-8b551f0c4f8a,SharePoint Plan 1G +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,BPOS_S_TODO_1,5e62787c-c316-451f-b873-1d05acd4d12c,To-Do (Plan 1) +Office 365 G1 GCC,STANDARDPACK_GOV,3f4babde-90ec-47c6-995d-d223749065d1,WHITEBOARD_PLAN1,b8afc642-032e-4de5-8c0a-507a7bba7e5d,Whiteboard (Plan 1) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,BPOS_S_TODO_2,c87f142c-d1e9-4363-8630-aaea9c4d9ae5,To-Do (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,WHITEBOARD_PLAN2,94a54592-cd8b-425e-87c6-97868b000b91,Whiteboard (Plan 2) +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 GCC,ENTERPRISEPACK_GOV,535a3a29-c5f0-42fe-8215-d3b9e1f38c4a,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,CDS_O365_P2_GCC,a70bbf38-cdda-470d-adb8-5804b8770f41,Common Data Service for Teams +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MYANALYTICS_P2_GOV,6e5b7995-bd4f-4cbd-9d19-0e32010c72f0,Insights by MyAnalytics for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FORMS_GOV_E3,24af5f65-d0f3-467b-9f78-ea798c4aeffc,Microsoft Forms for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,Nucleus,db4d623d-b514-490b-b7ef-8885eee514de,Nucleus +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,PROJECT_O365_P2_GOV,e7d09ae4-099a-4c34-a2a2-3e166e95c44a,Project for Government (Plan E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,STREAM_O365_E3_GOV,2c1ada27-dbaa-46f9-bda6-ecb94445f758,Stream for Office 365 for Government (E3) +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,DYN365_CDS_O365_P2_GCC,06162da2-ebf9-4954-99a0-00fee96f95cc,Common Data Service +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +Office 365 G3 without Microsoft 365 Apps GCC,ENTERPRISEPACKWITHOUTPROPLUS_GOV,24aebea8-7fac-48d0-8750-de4ee1fde205,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 G5 GCC,ENTERPRISEPREMIUM_GOV,8900a2c0-edba-4079-bdf3-b276e293b6a8,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOEV_GOV,db23fce2-a974-42ef-9002-d78dd42a0f22,Microsoft 365 Phone System for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Audio Conferencing,ENTERPRISEPREMIUM_NOPSTNCONF_NOPBI_GOV,1341559b-49df-443c-8e79-fa604fed2d82,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CDS_O365_P3_GCC,bce5e5ca-c2fd-4d53-8ee2-58dfffed4c10,Common Data Service for Teams +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,LOCKBOX_ENTERPRISE_GOV,89b5d3b1-3855-49fe-b46c-87c66dbc1526,Customer Lockbox for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_S_ENTERPRISE_GOV,8c3069c0-ccdb-44be-ab77-986203a67df2,Exchange Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,GRAPH_CONNECTORS_SEARCH_INDEX,a6520331-d7d4-4276-95f5-15c0933bc757,Graph Connectors Search with Index +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFORMATION_BARRIERS,c4801e8a-cb58-4c35-aca6-f2dcc106f287,Information Barriers +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,Content_Explorer,d9fa6af4-e046-4c89-9226-729a0786685d,Information Protection and Governance Analytics - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ContentExplorer_Standard,2b815d45-56e4-4e3a-b65c-66cb9175b560,Information Protection and Governance Analytics – Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP2,efb0351d-3b08-4503-993d-383af8de41e3,Information Protection for Office 365 - Premium +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MIP_S_CLP1,5136a095-5cf0-4aff-bec3-e84448b38ea5,Information Protection for Office 365 - Standard +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,M365_ADVANCED_AUDITING,2f442157-a11c-46b9-ae5b-6e39ff4e5849,Microsoft 365 Advanced Auditing +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,OFFICESUBSCRIPTION_GOV,de9234ff-6483-44d9-b15e-dca72fdd27af,Microsoft 365 Apps for enterprise G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOMEETADV_GOV,f544b08d-1645-4287-82de-8d91f37c02a1,Microsoft 365 Audio Conferencing for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_COMMUNICATION_COMPLIANCE,a413a9ff-720c-4822-98ef-2f37c2a21f4c,Microsoft 365 Communication Compliance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MTP,bf28f719-7844-4079-9c78-c1307898e192,Microsoft 365 Defender +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFTBOOKINGS,199a5c09-e0ca-4e37-8f7c-b05d533e1ea2,Microsoft Bookings +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,COMMUNICATIONS_DLP,6dc145d6-95dd-4191-b9c3-185575ee6f6b,Microsoft Communications DLP +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,CUSTOMER_KEY,6db1f1db-2b46-403f-be40-e39395f08dbb,Microsoft Customer Key +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ATP_ENTERPRISE_GOV,493ff600-6a2b-4db6-ad37-a7d4eb214516,Microsoft Defender for Office 365 (Plan 1) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,THREAT_INTELLIGENCE_GOV,900018f1-0cdb-4ecb-94d4-90281760fdc6,Microsoft Defender for Office 365 (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FORMS_GOV_E5,843da3a8-d2cc-4e7a-9e90-dc46019f964c,Microsoft Forms for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INFO_GOVERNANCE,e26c2fcc-ab91-4a61-b35c-03cdc8dddf66,Microsoft Information Governance +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EXCHANGE_ANALYTICS_GOV,208120d1-9adb-4daf-8c22-816bd5d237e7,Microsoft MyAnalytics for Government (Full) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RECORDS_MANAGEMENT,65cc641f-cccd-4643-97e0-a17e3045e541,Microsoft Records Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,TEAMS_GOV,304767db-7d23-49e8-a945-4a7eb65f9f28,Microsoft Teams for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,INTUNE_O365,882e1d05-acd1-4ccb-8708-6ee03664b117,Mobile Device Management for Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,EQUIVIO_ANALYTICS_GOV,d1cbfb67-18a8-4792-b643-630b7f19aad1,Office 365 Advanced eDiscovery for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,ADALLOM_S_O365,8c098270-9dd4-4350-9b30-ba4703f3b36b,Office 365 Cloud App Security +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECTWORKMANAGEMENT_GOV,5b4ef465-7ea1-459a-9f91-033317755a51,Office 365 Planner for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PREMIUM_ENCRYPTION,617b097b-4b93-4ede-83de-5f075bb5fb2f,Premium Encryption in Office 365 +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,PROJECT_O365_P3_GOV,9b7c50ec-cd50-44f2-bf48-d72de6f90717,Project for Government (Plan E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,MCOSTANDARD_GOV,a31ef4a2-f787-435e-8335-e47eb0cafc94,Skype for Business Online (Plan 2) for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,STREAM_O365_E5_GOV,92c2089d-9a53-49fe-b1a6-9e6bdf959547,Stream for Office 365 for Government (E5) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,BPOS_S_TODO_3,3fb82609-8c27-4f7b-bd51-30634711ee67,To-Do (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,RMS_S_ENTERPRISE_GOV,6a76346d-5d6e-4051-9fe3-ed3f312b5597,Azure Rights Management +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,DYN365_CDS_O365_P3_GCC,a7d3fb37-b6df-4085-b509-50810d991a39,Common Data Service +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +Office 365 GCC G5 without Power BI and Phone System,ENTERPRISEPREMIUM_NOPBIPBX_GOV,2f105cc2-c2c1-435b-a955-c5e82156c05d,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,EXCHANGE_S_STANDARD_MIDMARKET,fc52cc4b-ed7d-472d-bbe7-b081c23ecc56,EXCHANGE ONLINE PLAN +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,MCOSTANDARD_MIDMARKET,b2669e95-76ef-4e7e-a367-002f60a39f3e,SKYPE FOR BUSINESS ONLINE (PLAN 2) FOR MIDSIZ +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,OFFICESUBSCRIPTION,43de0ff5-c92c-492b-9116-175376d08c38,OFFICESUBSCRIPTION +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTENTERPRISE_MIDMARKET,6b5b6a67-fc72-4a1f-a2b5-beecf05de761,SHAREPOINT PLAN 1 +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Midsize Business,MIDSIZEPACK,04a7fb0d-32e0-4241-b4f5-3f7618cd1162,YAMMER_MIDSIZE,41bf139a-4e60-409f-9346-a1361efc6dfb,YAMMER_MIDSIZE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business,LITEPACK,bd09678e-b83c-4d3f-aaba-3dad4abd128b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,EXCHANGE_L_STANDARD,d42bdbd6-c335-4231-ab3d-c8f348d5aff5,EXCHANGE ONLINE (P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,MCOLITE,70710b6b-3ab4-4a38-9f6d-9f169461650a,SKYPE FOR BUSINESS ONLINE (PLAN P1) +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ,8ca59559-e2ca-470b-b7dd-afd8c0dee963,OFFICE 365 SMALL BUSINESS SUBSCRIPTION +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SHAREPOINTLITE,a1f3d0a8-84c0-4ae0-bae4-685917b8ab48,SHAREPOINTLITE +Office 365 Small Business Premium,LITEPACK_P2,fc14ec4a-4169-49a4-a51e-2c852931814b,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GCC,7251de8f-ecfb-481e-bcff-4af4f1a4573c,Data integration for Project with Power Automate for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,MICROSOFT_SEARCH,94065c59-bc8e-4e8b-89e5-5138d471eaff,Microsoft Search +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,OFFICEMOBILE_SUBSCRIPTION_GOV,4ccb60ee-9523-48fd-8f63-4b090f1ad77a,Office Mobile Apps for Office 365 for GCC +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Office Mobile Apps for Office 365 for GCC,OFFICEMOBILE_SUBSCRIPTION_GOV_TEST,64fca79f-c471-4e13-a335-9069cddf8aeb,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,ONEDRIVESTANDARD,13696edf-5a08-49f6-8134-03083ed8ba30,ONEDRIVESTANDARD +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +OneDrive for Business (Plan 1),WACONEDRIVESTANDARD,e6778190-713e-4e4f-9119-8b8238de25df,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,ONEDRIVEENTERPRISE,afcafa6a-d966-4462-918c-ec0b4e0fe642,ONEDRIVEENTERPRISE +OneDrive for Business (Plan 2),WACONEDRIVEENTERPRISE,ed01faf2-1d88-4947-ae91-45ca18703a96,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,DYN365_CDS_FOR_PROJECT_GCC_P5,684a2229-5c57-43ab-b69f-f86fe8997358,Common Data Service for Project P5 for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_S1_GOV,49f06c3d-da7d-4fa0-bcce-1458fdd18a59,Power Apps for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P1_GOV,c42aa49a-f357-45d5-9972-bc29df885fee,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P2_GOV,0a20c815-5e81-4727-9bdc-2b5a117850c3,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_O365_P3_GOV,0eacfc38-458a-40d3-9eab-9671258f1a3e,Power Apps for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_APPS_GOV,2c6af4f1-e7b6-4d59-bbc8-eaa884f42d69,Power Automate for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_TEAM_GOV,47bdde6a-959f-4c7f-8d59-3243e34f1cb3,Power Automate for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_S1_GOV,5d32692e-5b24-4a59-a77e-b2a8650e25c1,Power Automate for Office 365 F3 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P1_GOV,ad6c8870-6356-474c-901c-64d7da8cea48,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P2_GOV,c537f360-6a00-4ace-a7f5-9128d0ac1e4b,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_O365_P3_GOV,8055d84a-c172-42eb-b997-6c2ae4628246,Power Automate for Office 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,FLOW_DYN_P2_GOV,06879193-37cc-4976-8991-f8165c994ce7,Power Automate P2 for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_APPS_GOV,3089c02b-e533-4b73-96a5-01fa648c3c3c,PowerApps for Dynamics 365 for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_TEAM_GOV,63efc247-5f28-43e3-a2f8-00c183e3f1db,PowerApps for Dynamics 365 Team Members for Government +PowerApps & Flow GCC Test - O365 & Dyn365 Plans,POWERFLOWGCC_TEST,0f13a262-dc6f-4800-8dc6-a62f72c95fad,POWERAPPS_DYN_P2_GOV,51729bb5-7564-4927-8df8-9f5b12279cf3,PowerApps Plan 2 for Dynamics 365 for Government +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERFLOWSFREE,0b4346bb-8dc3-4079-9dfc-513696f56039,LOGIC FLOWS +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERVIDEOSFREE,2c4ec2dc-c62d-4167-a966-52a3e6374015,MICROSOFT POWER VIDEOS BASIC +Power Apps and Logic Flows,POWERAPPS_INDIVIDUAL_USER,87bbbc60-4754-4998-8c88-227dca264858,POWERAPPSFREE,e61a2945-1d4e-4523-b6e7-30ba39d20f32,MICROSOFT POWERAPPS +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,CDS_PER_APP_IWTRIAL,94a669d1-84d5-4e54-8462-53b0ae2c8be5,CDS Per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,Flow_Per_APP_IWTRIAL,dd14867e-8d31-4779-a595-304405f5ad39,Flow per app baseline access +PowerApps per app baseline access,POWERAPPS_PER_APP_IW,bf666882-9c9b-4b2e-aa2f-4789b0a52ba2,POWERAPPS_PER_APP_IWTRIAL,35122886-cef5-44a3-ab36-97134eabd9ba,PowerApps per app baseline access +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,CDS_ POWERAPPS_PER_APP_CUSTOM_GCC,ee493f70-a3b3-4204-9511-e3f6083b8df3,CDS Power Apps Per App Custom GCC +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps Per App BD Only for GCC,POWERAPPS_PER_APP_BD_ONLY_GCC,cdc8d0fc-fd16-4954-aae6-ed89a99f5620,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,CDS_PER_APP,9f2f00ad-21ae-4ceb-994b-d8bc7be90999,CDS PowerApps per app plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,POWERAPPS_PER_APP,b4f657ff-d83e-4053-909d-baa2b595ec97,Power Apps per App Plan +Power Apps per app plan,POWERAPPS_PER_APP,a8ad7d2b-b8cf-49d6-b25a-69094a0be206,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,POWERAPPS_PER_APP_NEW,14f8dac2-0784-4daa-9cb2-6d670b088d64,Power Apps per app +Power Apps per app plan (1 app or portal),POWERAPPS_PER_APP_NEW,b4d7b828-e8dc-4518-91f9-e123ae48440d,Flow_Per_APP,c539fa36-a64e-479a-82e1-e40ff2aa83ee,Power Automate for Power Apps per App Plan +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,CDS_ POWERAPPS_PER_APP_CUSTOM_NEW,c2da6658-f89d-49f2-9508-40431dee115b,CDS Power Apps Per App Custom New +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) BD Only - GCC,Power_Apps_per_app_plan_(1_app_or_portal)_BD_Only_GCC,816ee058-f70c-42ad-b433-d6171984ea20,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,CDSAICAPACITY_PERAPP,5d7a2e9a-4ee5-4f1c-bc9f-abc481bf39d8,AI Builder capacity Per App add-on +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,DATAVERSE_POWERAPPS_PER_APP_NEW,6f0e9100-ff66-41ce-96fc-3d8b7ad26887,Dataverse for Power Apps per app +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,POWERAPPS_PER_APP_GCC_NEW,70091fc8-1836-470f-a386-f4e6639cb04e,Power Apps per app for GCC +Power Apps per app plan (1 app or website) for Government,POWERAPPS_PER_APP_GCC_NEW,c14d7f00-457c-4e3e-8960-48f35459b3c9,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,CDS_PER_APP_GCC,d7f9c9bc-0a28-4da4-b5f1-731acb27a3e4,CDS PowerApps per app plan for GCC +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,POWERAPPS_PER_APP_GCC,be6e5cba-3661-424c-b79a-6d95fa1d849a,Power Apps per App Plan for Government +Power Apps per app plan for Government,POWERAPPS_PER_APP_GCC,8623b2d7-5e24-4281-b6b7-086a5f3b0b1c,Flow_Per_APP_GCC,8e2c2c3d-07f6-4da7-86a9-e78cc8c2c8b9,Power Automate for Power Apps per App Plan for Government +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,CDS_ POWERAPPS_PER_USER_CUSTOM,2e8dde43-6986-479d-b179-7dbe31c31f60,CDS Power Apps Per User Custom +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Per User BD Only,POWERAPPS_PER_USER_BD_ONLY,2ced8a00-3ed1-4295-ab7c-57170ff28e58,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,DO NOT USE - AI Builder capacity Per User add-on +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Power_Pages_Internal_User,60bf28f9-2b70-4522-96f7-335f5e06c941,Power Pages Internal User +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,POWERAPPS_PER_USER,ea2cf03b-ac60-46ae-9c1d-eeaeb63cec86,Power Apps per User Plan +Power Apps Premium embedded,POWERAPPS_PER_USER_ISVEMB,2a6fb3c6-30cc-4558-a69d-032425c1a3ba,Flow_PowerApps_PerUser,dc789ed8-0170-4b65-a415-eb77d5bb350a,Power Automate for Power Apps per User Plan +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER,91f50f7b-2204-4803-acac-5cf5668b8b39,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,CDSAICAPACITY_PERUSER_NEW,74d93933-6f22-436e-9441-66d205435abb,AI Builder capacity Per User add-on +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,POWERAPPS_PER_USER_GCC,8f55b472-f8bf-40a9-be30-e29919d4ddfe,Power Apps per User Plan for Government +Power Apps Premium for Government,POWERAPPS_PER_USER_GCC,8e4c6baa-f2ff-4884-9c38-93785d0d7ba1,Flow_PowerApps_PerUser_GCC,8e3eb3bd-bc99-4221-81b8-8b8bc882e128,Power Automate for Power Apps per User Plan for GCC +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,DYN365_CDS_P1_GOV,ce361df2-f2a5-4713-953f-4050ba09aad8,Common Data Service for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,FLOW_P1_GOV,774da41c-a8b3-47c1-8322-b9c1ab68be9f,Power Automate (Plan 1) for Government +PowerApps Plan 1 for Government,POWERAPPS_P1_GOV,eca22b68-b31f-4e9c-a20c-4d40287bc5dd,POWERAPPS_P1_GOV,5ce719f1-169f-4021-8a64-7d24dcaec15f,PowerApps Plan 1 for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 2 (10 unit min),POWERAPPS_PORTALS_LOGIN_T2,57f3babd-73ce-40de-bcb2-dadbfbfff9f7,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,CDS_POWERAPPS_PORTALS_LOGIN_GCC,0f7b9a29-7990-44ff-9d05-a76be778f410,Common Data Service Power Apps Portals Login Capacity for GCC +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals login capacity add-on Tier 2 (10 unit min) for Government,POWERAPPS_PORTALS_LOGIN_T2_GCC,26c903d5-d385-4cb1-b650-8d81a643b3c4,POWERAPPS_PORTALS_LOGIN_GCC,bea6aef1-f52d-4cce-ae09-bed96c4b1811,Power Apps Portals Login Capacity Add-On for Government +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,CDS_POWERAPPS_PORTALS_LOGIN,32ad3a4e-2272-43b4-88d0-80d284258208,Common Data Service Power Apps Portals Login Capacity +Power Apps Portals login capacity add-on Tier 3 (50 unit min),POWERAPPS_PORTALS_LOGIN_T3,927d8402-8d3b-40e8-b779-34e859f7b497,POWERAPPS_PORTALS_LOGIN,084747ad-b095-4a57-b41f-061d84d69f6f,Power Apps Portals Login Capacity Add-On +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,CDS_POWERAPPS_PORTALS_PAGEVIEW,72c30473-7845-460a-9feb-b58f216e8694,CDS PowerApps Portals page view capacity add-on +Power Apps Portals page view capacity add-on,POWERAPPS_PORTALS_PAGEVIEW,a0de5e3a-2500-4a19-b8f4-ec1c64692d22,POWERAPPS_PORTALS_PAGEVIEW,1c5a559a-ec06-4f76-be5b-6a315418495f,Power Apps Portals Page View Capacity Add-On +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,CDS_POWERAPPS_PORTALS_PAGEVIEW_GCC,352257a9-db78-4217-a29d-8b8d4705b014,CDS PowerApps Portals page view capacity add-on for GCC +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Apps Portals page view capacity add-on for Government,POWERAPPS_PORTALS_PAGEVIEW_GCC,15a64d3e-5b99-4c4b-ae8f-aa6da264bfe7,POWERAPPS_PORTALS_PAGEVIEW_GCC,483d5646-7724-46ac-ad71-c78b7f099d8d,Power Apps Portals Page View Capacity Add-On for Government +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,CDS_Flow_Business_Process,c84e52ae-1906-4947-ac4d-6fb3e5bf7c2e,Common data service for Flow per business process plan +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per flow plan,FLOW_BUSINESS_PROCESS,b3a42176-0a8c-4c3f-ba4e-f2b37fe5be6b,FLOW_BUSINESS_PROCESS,7e017b61-a6e0-4bdc-861a-932846591f6e,Flow per business process plan +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,CDS_Flow_Business_Process_GCC,54b61386-c818-4634-8400-61c9e8f6acd3,Common Data Service for Power Automate per Business Process Plan for GCC +Power Automate per flow plan for Government,FLOW_BUSINESS_PROCESS_GCC,d9de51e5-d8cd-45bb-8da3-1d55e28c52e6,FLOW_BUSINESS_PROCESS_GCC,cb83e771-a077-4a73-9201-d955585b29fa,Power Automate per Business Process Plan for Government +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan,FLOW_PER_USER,4a51bf65-409c-4a91-b845-1121b571cc9d,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,DYN365_CDS_P2,6ea4c1ef-c259-46df-bce2-943342cd3cb2,Common Data Service - P2 +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate per user plan dept,FLOW_PER_USER_DEPT,d80a4c5d-8f05-4b64-9926-6574b9e6aee4,FLOW_PER_USER,c5002c70-f725-4367-b409-f0eff4fee6c0,Flow per user plan +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,DYN365_CDS_P2_GOV,37396c73-2203-48e6-8be1-d882dae53275,Common Data Service for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate per user plan for Government,FLOW_PER_USER_GCC,c8803586-c136-479a-8ff3-f5f32d23a68e,FLOW_PER_USER_GCC,769b8bee-2779-4c5a-9456-6f4f8629fd41,Power Automate per User Plan for Government +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,CDS_ATTENDED_RPA,3da2fd4c-1bee-4b61-a17f-94c31e5cab93,Common Data Service Attended RPA +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Premium,POWERAUTOMATE_ATTENDED_RPA,eda1941c-3c4f-4995-b5eb-e85a42175ab9,POWER_AUTOMATE_ATTENDED_RPA,375cd0ad-c407-49fd-866a-0bff4f8a9a4d,Power Automate RPA Attended +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,CDS_ATTENDED_RPA_GCC,4802707d-47e1-45dc-82c5-b6981f0fb38c,Common Data Service Attended RPA for Government +Power Automate Premium for Government,POWERAUTOMATE_ATTENDED_RPA_GCC,d3987516-4b53-4dc0-8335-411260bf5626,POWER_AUTOMATE_ATTENDED_RPA_GCC,fb613c67-1a58-4645-a8df-21e95a37d433,Power Automate Attended RPA for Government +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate Process,Power_Automate_per_process,253ce8d3-6122-4240-8b04-f434a8fa831f,DATAVERSE_FOR_POWER_AUTOMATE_PER_PROCESS,d7c3df99-6f58-40b9-8940-cd3a51679d85,Dataverse for Power Automate Per Process +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,CDS_UNATTENDED_RPA,b475952f-128a-4a44-b82a-0b98a45ca7fb,Common Data Service Unattended RPA +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Automate unattended RPA add-on,POWERAUTOMATE_UNATTENDED_RPA,3539d28c-6e35-4a30-b3a9-cd43d5d3e0e2,POWER_AUTOMATE_UNATTENDED_RPA,0d373a98-a27a-426f-8993-f9a425ae99c5,Power Automate Unattended RPA add-on +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,CDS_UNATTENDED_RPA_GCC,5141c408-df3d-456a-9878-a65119b0a750,Common Data Service Unattended RPA for Government +Power Automate unattended RPA add-on for Government,POWERAUTOMATE_UNATTENDED_RPA_GCC,086e9b70-4720-4442-ab6d-3ef32bfb4721,POWER_AUTOMATE_UNATTENDED_RPA_GCC,45e63e9f-6dd9-41fd-bd41-93bfa008c537,Power Automate Unattended RPA for Government +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,Microsoft Power BI Information Services Plan 1 +Power BI,POWER_BI_INDIVIDUAL_USER,e2767865-c3c9-4f09-9f99-6eee6eef861a,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,Microsoft Power BI Reporting and Analytics Plan 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,BI_AZURE_P1,2125cfd7-2110-4567-83c4-c1cd5275163d,MICROSOFT POWER BI REPORTING AND ANALYTICS PLAN 1 +Power BI for Office 365 Add-On,POWER_BI_ADDON,45bc2c81-6072-436a-9b0b-3b12eefbc402,SQL_IS_SSIM,fc0a60aa-feee-4746-a0e3-aecfe81a38dd,MICROSOFT POWER BI INFORMATION SERVICES PLAN +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium P1,PBI_PREMIUM_P1_ADDON,7b26f5ab-a763-4c00-a1ac-f6c4b5506945,PBI_PREMIUM_P1_ADDON,9da49a6d-707a-48a1-b44a-53dcde5267f8,Power BI Premium P +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium P1 GCC,PBI_PREMIUM_P1_ADDON_GCC,f59b22a0-9819-48bf-b01d-715ef2b31027,PBI_PREMIUM_P1_ADDON_GCC,30df3dbd-5bf6-4d74-9417-cccc096595e4,Power BI Premium P1 for GCC +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User,PBI_PREMIUM_PER_USER,c1d032e0-5619-4761-9b5c-75b6831e1711,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User Add-On,PBI_PREMIUM_PER_USER_ADDON,de376a03-6e5b-42ec-855f-093fb50b8ca5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Add-On for Faculty,PBI_PREMIUM_PER_USER_ADDON_FACULTY,c05b235f-be75-4029-8851-6a4170758eef,PURVIEW_DISCOVERY,c948ea65-2053-4a5a-8a62-9eaaaf11b522,Purview Discovery +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_CE_GCC,66024bbf-4cd4-4329-95c8-c932e2ae01a8,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Add-On for GCC,PBI_PREMIUM_PER_USER_ADDON_GCC,1b572d5e-1bf8-4b19-9259-f9eda31a6972,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User Dept,PBI_PREMIUM_PER_USER_DEPT,f168a3fb-7bcf-4a27-98c3-c235ea4b78b4,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P3,0bf3c642-7bb5-4ccc-884e-59d09df0266c,Power BI Premium Per User +Power BI Premium Per User for Faculty,PBI_PREMIUM_PER_USER_FACULTY,060d8061-f606-4e69-a4e7-e8fff75ea1f5,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P3_GOV,32d15238-9a8c-46da-af3f-21fc5351d365,Power BI Premium Per User for Government +Power BI Premium Per User for Government,PBI_PREMIUM_PER_USER_GCC,e53d92fc-778b-4a8b-83de-791240ebf88d,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro,POWER_BI_PRO,f8a1db68-be16-40ed-86d5-cb42ce701560,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro CE,POWER_BI_PRO_CE,420af87e-8177-4146-a780-3786adaffbca,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro Dept,POWER_BI_PRO_DEPT,3a6a908c-09c5-406a-8170-8ebb63c42882,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Pro for Faculty,POWER_BI_PRO_FACULTY,de5f128b-46d7-4cfc-b915-a89ba060ea56,BI_AZURE_P2,70d33638-9c74-4d01-bfd3-562de28bd4ba,Power BI Pro +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Power BI Pro for GCC,POWERBI_PRO_GOV,f0612879-44ea-47fb-baf0-3d76d9235576,BI_AZURE_P_2_GOV,944e9726-f011-4353-b654-5f7d2663db76,Power BI Pro for Government +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM2,PBI_PREMIUM_EM2_ADDON,8ecbd3c1-b108-437c-a859-e3c125e3f83f,PBI_PREMIUM_EM2_ADDON,4e29abd1-ba96-44c0-8a72-e24e4fe9956e,Power BI Premium EM2 +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power BI Premium EM1,PBI_PREMIUM_EM1_ADDON,bc757c42-5622-4583-a483-a9e537fcb71c,EXCHANGE_S_FOUNDATION PBI_PREMIUM_EM1_ADDON,a64b30ba-f310-4065-b444-2670ef146db0,Power BI Premium EM1 +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T1 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack,debc9e58-f2d7-412c-a0b6-575608564228,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T1_CN_CN,9a3c2a19-06c0-41b1-b2ea-13528d7b2e17,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_GCC,27cb5f12-2e3f-4997-a649-45298673e6a1,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_DOD,b54f012e-69e1-43b1-87d0-666def064940,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T1 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T1_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,978ec396-f930-4ee1-85f3-e1d82e8f73a4,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack,6fe1e61a-91e5-40d7-a547-0d2dcc81bce8,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_GCC,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_GCC,5f43d48c-dd3d-4dd8-a059-70c2f040f979,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_DOD,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_DOD,f3d55e2d-4367-44fa-952e-83d0b5dd53fc,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH,Power_Pages_authenticated_users_T2_min_100_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH,7cae5432-61bb-48c3-b75c-831394ec13a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +Power Pages authenticated users T2 min 100 units - 100 users/per site/month capacity pack CN_CN,Power Pages authenticated users T2_CN_CN,7d2bb54a-a870-41c2-98d1-1f3b5b523275,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack CN_CN",Power Pages authenticated users T3_CN_CN,2cfd692f-a352-4fa8-b960-e3ad0c9b1178,PowerPages_Authenticated_User_CN,967d9574-a076-4bb7-ab89-f41f64bc142e,Power Pages Authenticated Users per site monthly capacity China +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User,0d3366f3-266e-4117-b422-7cabbc165e7c,Power Pages Authenticated Users per site monthly capacity +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack",878b8bbd-3cd0-4b44-9a56-3406741e65e0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_GCC","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_GCC",53265c61-c78c-4223-ab30-422da0c97fbb,PowerPages_Authenticated_User_GCC,cdf787bd-1546-48d2-9e93-b21f9ea7067a,Power Pages Authenticated Users per site monthly capacity GCC +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_DOD","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_DOD",398d37b5-8deb-48db-8f7f-703eb2fb7c72,PowerPages_Authenticated_User_DoD,03300fea-7a88-45a6-b5bd-29653803c591,Power Pages Authenticated Users per site monthly capacity DoD +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,DV_PowerPages_Authenticated_User,7aae746a-3463-4737-b295-3c1a16c31438,Dataverse for Power Pages Authenticated users per site +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_User_GCCH,18e74ca2-b5f0-4802-9a8b-00d2ff1e8322,Power Pages Authenticated Users per site monthly capacity GCCH +"Power Pages authenticated users T3 min 1,000 units - 100 users/per site/month capacity pack_USGOV_GCCHIGH","Power_Pages_authenticated_users_T3_min_1,000_units_100_users/per_site/month_capacity_pack_USGOV_GCCHIGH",01d46c34-3525-47d5-bd1a-5f19979938a0,PowerPages_Authenticated_Users_GCCH,5410f688-68f2-47a5-9b8f-7466194a806a,Power Pages Authenticated Users per site mthly capacity GCCH New +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,DYN365_CDS_VIRAL,17ab22cd-a0b3-4536-910a-cb6eb12696c0,Common Data Service +Power Pages vTrial for Makers,Power_Pages_vTrial_for_Makers,3f9f06f5-3c31-472c-985f-62d9c10ec167,POWER_PAGES_VTRIAL,6817d093-2d30-4249-8bd6-774f01efa78c,Power Pages vTrial for Makers +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,CDS_VIRTUAL_AGENT_BASE,0a0a23fa-fea1-4195-bb89-b4789cb12f7f,Common Data Service for Virtual Agent Base +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,FLOW_VIRTUAL_AGENT_BASE,4b81a949-69a1-4409-ad34-9791a6ec88aa,Power Automate for Virtual Agent +Power Virtual Agent,VIRTUAL_AGENT_BASE,e4e55366-9635-46f4-a907-fc8c3b5ec81f,VIRTUAL_AGENT_BASE,f6934f16-83d3-4f3b-ad27-c6e9c187b260,Virtual Agent Base +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,CDS_Virtual_Agent_Base_Gov,e4d0b25d-e440-4ee9-aac4-1d5a5db9f3ef,Dataverse for Virtual Agent Base for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent for GCC,VIRTUAL_AGENT_BASE_GCC,9900a3e2-6660-4c52-9074-60c949991389,Virtual_Agent_Base_GCC,e425b9f6-1543-45a0-8efb-f8fdaf18cba1,Virtual Agent Base for GCC +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,CDS_VIRTUAL_AGENT_USL,cb867b3c-7f38-4d0d-99ce-e29cd69812c8,Common Data Service +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,FLOW_VIRTUAL_AGENT_USL,82f141c9-2e87-4f43-8cb2-12d2701dc6b3,Power Automate for Virtual Agent +Power Virtual Agent User License,VIRTUAL_AGENT_USL,4b74a65c-8b4a-4fc8-9f6b-5177ed11ddfa,VIRTUAL_AGENT_USL,1263586c-59a4-4ad0-85e1-d50bc7149501,Virtual Agent +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,CDS_Virtual_Agent_Usl_GCC,95df1203-fee7-4726-b7e1-8037a8e899eb,Dataverse for Virtual Agent USL for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Flow_Virtual_Agent_Usl_Gov,0b939472-1861-45f1-ab6d-208f359c05cd,Flow for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,FLOW_Virtual_Agent_Base_Gov,f9f6db16-ace6-4838-b11c-892ee75e810a,Power Automate for Virtual Agent for GCC +Power Virtual Agent User License for GCC,VIRTUAL_AGENT_USL_GCC,f1de227b-f1bd-4959-bd80-b80547095e6d,Power_Virtual_Agent_Usl_GCC,0bdd5466-65c3-470a-9fa6-f679b48286b0,Power Virtual Agent USL for GCC +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,DYN365_CDS_CCI_BOTS,cf7034ed-348f-42eb-8bbd-dddeea43ee81,Common Data Service for CCI Bots +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,CCIBOTS_PRIVPREV_VIRAL,ce312d15-8fdf-44c0-9974-a25a177125ee,Dynamics 365 AI for Customer Service Virtual Agents Viral +Power Virtual Agents Viral Trial,CCIBOTS_PRIVPREV_VIRAL,606b54a9-78d8-4298-ad8b-df6ef4481c80,FLOW_CCI_BOTS,5d798708-6473-48ad-9776-3acc301c40af,Flow for CCI Bots +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management – risk,PRIVACY_MANAGEMENT_RISK,e42bc969-759a-4820-9283-6b73085b68e6,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk for EDU,PRIVACY_MANAGEMENT_RISK_EDU,dcdbaae7-d8c9-40cb-8bb1-62737b9e5a86,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk GCC,PRIVACY_MANAGEMENT_RISK_GCC,046f7d3b-9595-4685-a2e8-a2832d2b26aa,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_DOD,PRIVACY_MANAGEMENT_RISK_USGOV_DOD,83b30692-0d09-435c-a455-2ab220d504b9,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,MIP_S_Exchange,cd31b152-6326-4d1b-ae1b-997b625182e6,Data Classification in Microsoft 365 +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK,f281fb1f-99a7-46ab-9edb-ffd74e260ed3,Priva - Risk +Privacy Management - risk_USGOV_GCCHIGH,PRIVACY_MANAGEMENT_RISK_USGOV_GCCHIGH,787d7e75-29ca-4b90-a3a9-0b780b35367c,PRIVACY_MANGEMENT_RISK_EXCHANGE,ebb17a6e-6002-4f65-acb0-d386480cebc1,Priva - Risk (Exchange) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2,d9020d1c-94ef-495a-b6de-818cbbcaa3b8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_EDU_V2,475e3e81-3c75-4e07-95b6-2fed374536c8,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_GCC,017fb6f8-00dd-4025-be2b-4eff067cae72,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_DOD,d3c841f3-ea93-4da2-8040-6f2348d20954,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_EXCHANGE_1,93d24177-c2c3-408a-821d-3d25dfa66e7a,Privacy Management - Subject Rights Request (1 - Exchange) +Privacy Management - subject rights request (1) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_1_V2_USGOV_GCCHIGH,706d2425-6170-4818-ba08-2ad8f1d2d078,PRIVACY_MANGEMENT_DSR_1,07a4098c-3f2d-427f-bfe2-5889ed75dd7b,Privacy Management - Subject Rights Request (1) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2,78ea43ac-9e5d-474f-8537-4abb82dafe27,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_EDU_V2,e001d9f1-5047-4ebf-8927-148530491f83,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_GCC,a056b037-1fa0-4133-a583-d05cff47d551,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_DOD,ab28dfa1-853a-4f54-9315-f5146975ac9a,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_EXCHANGE_10,f0241705-7b44-4401-a6b6-7055062b5b03,Privacy Management - Subject Rights Request (10 - Exchange) +Privacy Management - subject rights request (10) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_10_V2_USGOV_GCCHIGH,f6aa3b3d-62f4-4c1d-a44f-0550f40f729c,PRIVACY_MANGEMENT_DSR_10,74853901-d7a9-428e-895d-f4c8687a9f0b,Privacy Management - Subject Rights Request (10) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50,c416b349-a83c-48cb-9529-c420841dedd6,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_V2,f6c82f13-9554-4da1-bed3-c024cc906e02,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR,8bbd1fea-6dc6-4aef-8abc-79af22d746e4,Privacy Management - Subject Rights Request +Privacy Management - subject rights request (50) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_50_EDU_V2,ed45d397-7d61-4110-acc0-95674917bb14,PRIVACY_MANGEMENT_DSR_EXCHANGE,7ca7f875-98db-4458-ab1b-47503826dd73,Privacy Management - Subject Rights Request (Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100),PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2,cf4c6c3b-f863-4940-97e8-1d25e912f4c4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) for EDU,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_EDU_V2,9b85b4f0-92d9-4c3d-b230-041520cb1046,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) GCC,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_GCC,91bbc479-4c2c-4210-9c88-e5b468c35b83,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_DOD,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_DOD,ba6e69d5-ba2e-47a7-b081-66c1b8e7e7d4,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,MIP_S_EXCHANGE_CO,5b96ffc4-3853-4cf4-af50-e38505080f6b,Data Classification in Microsoft 365 - Company Level +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_EXCHANGE_100,5c221cec-2c39-435b-a1e2-7cdd7fac5913,Privacy Management - Subject Rights Request (100 - Exchange) +Privacy Management - subject rights request (100) USGOV_GCCHIGH,PRIVACY_MANAGEMENT_SUB_RIGHTS_REQ_100_V2_USGOV_GCCHIGH,cee36ce4-cc31-481f-8cab-02765d3e441f,PRIVACY_MANGEMENT_DSR_100,500f440d-167e-4030-a3a7-8cd35421fbd8,Privacy Management - Subject Rights Request (100) +Project for Office 365,PROJECTCLIENT,a10d5e58-74da-4312-95c8-76be4e5b75a0,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,Microsoft Forms (Plan E1) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Online Essentials,PROJECTESSENTIALS,776df282-9fc0-4862-99e2-70e561b9909e,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Online Essentials for Faculty,PROJECTESSENTIALS_FACULTY,e433b246-63e7-4d0b-9efa-7940fa3264d6,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,PROJECT_ESSENTIALS_GOV,fdcb7064-f45c-46fa-b056-7e0e9fdf4bf3,Project Online Essentials for Government +Project Online Essentials for GCC,PROJECTESSENTIALS_GOV,ca1a159a-f09e-42b8-bb82-cb6420f54c8e,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium,PROJECTPREMIUM,09015f9f-377f-4538-bbb5-f75ceb09358a,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online Premium Without Project Client,PROJECTONLINE_PLAN_1,2db84718-652c-47a7-860c-f10d8abbdae3,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,FORMS_PLAN_E1,159f4cd6-e380-449f-a816-af1a9ef76344,MICROSOFT FORMS (PLAN E1) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,PROJECT ONLINE DESKTOP CLIENT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,SHAREPOINT_PROJECT +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,OFFICE ONLINE +Project Online With Project for Office 365,PROJECTONLINE_PLAN_2,f82a60b8-1ee3-4cfb-a4fe-1c6a53c2656c,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,SWAY +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,COMMON DATA SERVICE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,POWER AUTOMATE FOR PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,PROJECT ONLINE ESSENTIALS +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,PROJECT P1 +Planner Plan 1,PROJECT_P1,beb6439c-caad-48d3-bf46-0c82871e12be,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,DYN365_CDS_FOR_PROJECT_P1,a6f677b3-62a6-4644-93e7-2a85d240845e,Common Data Service for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,Power_Automate_For_Project_P1,00283e6b-2bd8-440f-a2d5-87358e4c89a1,Power Automate for Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_ESSENTIALS,1259157c-8581-4875-bca7-2ffb18c51bda,Project Online Essentials +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,PROJECT_P1,4a12c688-56c6-461a-87b1-30d6f32136f9,Project P1 +Project Plan 1 (for Department),PROJECT_PLAN1_DEPT,84cd610f-a3f8-4beb-84ab-d9d2c902c6c9,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINT STANDARD +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the web +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Planner and Project Plan 3,PROJECTPROFESSIONAL,53818b1b-4a27-454b-8896-0dba576410e6,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Flow for Project +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,PROJECT_PROFESSIONAL,818523f5-016b-4355-9be8-ed6944946ea7,Project P3 +Project Plan 3 (for Department),PROJECT_PLAN3_DEPT,46102f44-d912-47e7-b0ca-1bd7b70ada3b,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 3 for Faculty,PROJECTPROFESSIONAL_FACULTY,46974aed-363e-423c-9e6a-951037cec495,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC,PROJECTPROFESSIONAL_GOV,074c6829-b3a0-430a-ba3d-aca365e57065,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,MCOMEETBASIC_GOV,986d454b-9027-4d9f-880b-f1b68f920cc4,Microsoft Teams Audio Conferencing with dial-out to select geographies for GCC +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 3 for GCC TEST,Project_Professional_TEST_GCC,5d505572-203c-4b83-aa9b-dab50fb46277,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTWAC,e95bec33-7c88-4a70-8e19-b10bd9d0c014,Office for the Web +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINT_PROJECT,fe71d6c3-a2ea-4499-9778-da042bf08063,Project Online Service +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SharePoint (Plan 2) +Project Plan 3_USGOV_GCCHIGH,PROJECTPROFESSIONAL_USGOV_GCCHIGH,64758d81-92b7-4855-bcac-06617becb3e8,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Online Desktop Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_PROFESSIONAL_FACULTY,22572403-045f-432b-a660-af949c0a77b5,Project P3 for Faculty +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,PROJECT_CLIENT_SUBSCRIPTION,fafd7243-e5c1-4a3a-9e40-495efcb1d3c3,Project Client +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,Project Online for Education,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online for Education +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint Plan 2 for EDU +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,DYN365_CDS_PROJECT,50554c47-71d9-49fd-bc54-42a2765c555c,Common Data Service for Project +Project Plan 5 for faculty,PROJECTPREMIUM_FACULTY,930cc132-4d6b-4d8c-8818-587d17c50d56,FLOW_FOR_PROJECT,fa200448-008c-4acb-abd4-ea106ed2199d,Power Automate for Project +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,DYN365_CDS_PROJECT_GCC,83837d9c-c21a-46a0-873e-d834c94015d6,Common Data Service for Project for GCC +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTWAC_GOV,8f9f0f3b-ca90-406c-a842-95579171f8ec,Office for the Web for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_CLIENT_SUBSCRIPTION_GOV,45c6831b-ad74-4c7f-bd03-7c2b3fa39067,Project Online Desktop Client +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINT_PROJECT_GOV,e57afa78-1f19-4542-ba13-b32cd4d8f472,Project Online Service for Government +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,PROJECT_PROFESSIONAL_FOR_GOV,49c7bc16-7004-4df6-8cd5-4ec48b7e9ea0,Project P3 for GOV +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,SHAREPOINTENTERPRISE_GOV,153f85dd-d912-4762-af6c-d6e0fb4f6692,SharePoint Plan 2G +Project Plan 5 for GCC,PROJECTPREMIUM_GOV,f2230877-72be-4fec-b1ba-7156d6f75bd6,FLOW_FOR_PROJECT_GOV,16687e20-06f9-4577-9cc0-34a2704260fc,Data integration for Project with Power Automate for GCC +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,OFFICE_FORMS_PLAN_2,9b5de886-f035-4ff2-b3d8-c9127bea3620,Microsoft Forms (Plan 2) +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTWAC_EDU,e03c7e47-402c-463c-ab25-949079bedb21,Office for the Web for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINT_PROJECT_EDU,664a2fed-6c7a-468e-af35-d61740f0ec90,Project Online Service for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SHAREPOINTENTERPRISE_EDU,63038b2c-28d0-45f6-bc36-33062963b498,SharePoint (Plan 2) for Education +Project Plan 5 without Project Client for Faculty,PROJECTONLINE_PLAN_1_FACULTY,b732e2a7-5694-4dff-a0f2-9d9204c794ac,SWAY,a23b959c-7ce8-4e57-9140-b90eb88a9e97,Sway +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Adhoc,RIGHTSMANAGEMENT_ADHOC,8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b,RMS_S_ADHOC,7a39d7dd-e456-4e09-842a-0204ee08187b,Rights Management Adhoc +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Rights Management Service Basic Content Protection,RMSBASIC,093e8d14-a334-43d9-93e3-30589a8b47d0,RMS_S_BASIC,31cf2cfc-6b0d-4adc-a336-88b724ed8122,Microsoft Azure Rights Management Service +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Additional Machines Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_ADDL_MACHINES,08e18479-4483-4f70-8f17-6f92156d8ea9,D365_IOTFORSCM_ADDITIONAL,a5f38206-2f48-4d83-9957-525f4e75e9c0,IoT Intelligence Add-in Additional Machines +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Sensor Data Intelligence Scenario Add-in for Dynamics 365 Supply Chain Management,DYN365_IOT_INTELLIGENCE_SCENARIO,9ea4bdef-a20b-4668-b4a7-73e1f7696e0a,D365_IOTFORSCM,83dd9619-c7d5-44da-9250-dc4ee79fff7e,Iot Intelligence Add-in for D365 Supply Chain Management +SharePoint Online (Plan 1),SHAREPOINTSTANDARD,1fc08a02-8b3d-43b9-831e-f76859e04e1a,SHAREPOINTSTANDARD,c7699d2e-19aa-44de-8edf-1736da088ca1,SHAREPOINTSTANDARD +SharePoint Online (Plan 2),SHAREPOINTENTERPRISE,a9732ec9-17d9-494c-a51c-d6b45b384dcb,SHAREPOINTENTERPRISE,5dbe027f-2339-4123-9542-606e4d348a72,SHAREPOINT ONLINE (PLAN 2) +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,CDS_O365_E5_KM,3069d530-e41b-421c-ad59-fb1001a23e11,Common Data Service for SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services,f00bd55e-1633-416e-97c0-03684e42bc42,SharePoint Syntex +SharePoint Syntex,Intelligent_Content_Services,f61d4aba-134f-44e9-a2a0-f81a5adb26e4,Intelligent_Content_Services_SPO_type,fd2e7f90-1010-487e-a11b-d2b1ae9651fc,SharePoint Syntex - SPO type +Skype for Business Online (Plan 1),MCOIMP,b8b749f8-a4ef-4887-9539-c95b1eaa5db7,MCOIMP,afc06cb0-b4f4-4473-8286-d644f70d8faf,SKYPE FOR BUSINESS ONLINE (PLAN 1) +Skype for Business Online (Plan 2),MCOSTANDARD,d42c793f-6c78-4f43-92ca-e8f6a02b035f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,SKYPE FOR BUSINESS ONLINE (PLAN 2) +Skype for Business PSTN Calling Domestic Small,MCOPSTN5,d43177b5-475b-4880-92d4-d54c27b5efbd,Skype for Business PSTN Calling Domestic Small,9a0125a5-c8f8-4526-b231-49e2abe0ebce,Skype for Business PSTN Calling Domestic Small +Skype for Business PSTN Domestic and International Calling,MCOPSTN2,d3b4fe1f-9992-4930-8acb-ca6ec609365e,MCOPSTN2,5a10155d-f5c1-411a-a8ec-e99aae125390,DOMESTIC AND INTERNATIONAL CALLING PLAN +Skype for Business PSTN Domestic Calling,MCOPSTN1,0dab259f-bf13-4952-b7f8-7db8f131b28d,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,DOMESTIC CALLING PLAN +Skype for Business PSTN Domestic Calling (120 Minutes),MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,MCOPSTN5,54a152dc-90de-4996-93d2-bc47e670fc06,DOMESTIC CALLING PLAN +Skype for Business PSTN Usage Calling Plan,MCOPSTNPP,06b48c5f-01d9-4b18-9015-03b52040f51a,MCOPSTN3,6b340437-d6f9-4dc5-8cc2-99163f7f83d6,MCOPSTN3 +Teams Phone Mobile,Operator_Connect_Mobile,b84d58c9-0a0d-46cf-8a4b-d9f23c1674d5,MCOFMC1,cb22fbd7-ed7d-4786-a27a-e4cd617b69c0,Teams Phone Mobile +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOPSTN1,4ed3ff63-69d7-4fb7-b984-5aec7f605ca8,Microsoft 365 Domestic Calling Plan +Teams Phone with Calling Plan,MCOTEAMS_ESSENTIALS,ae2343d1-0999-43f6-ae18-d816516f6e78,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MESH_IMMERSIVE,acbca54f-c771-423b-a476-6d7a98cbbcec,Microsoft Mesh +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium (for Departments),Teams_Premium_(for_Departments),52ea0e27-ae73-4983-a08f-13561ebdb823,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MICROSOFT_ECDN,85704d55-2e73-47ee-93b4-4b8ea14db92b,Microsoft eCDN +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_MGMT,0504111f-feb8-4a3c-992a-70280f9a2869,Microsoft Teams Premium Intelligent +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_CUST,cc8c0802-a325-43df-8cba-995d0c6cb373,Microsoft Teams Premium Personalized +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_PROTECTION,f8b44f54-18bb-46a3-9658-44ab58712968,Microsoft Teams Premium Secure +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_VIRTUALAPPT,9104f592-f2a7-4f77-904c-ca5a5715883f,Microsoft Teams Premium Virtual Appointment +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,MCO_VIRTUAL_APPT,711413d0-b36e-4cd4-93db-0a50a4ab7ea3,Microsoft Teams Premium Virtual Appointments +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,TEAMSPRO_WEBINAR,78b58230-ec7e-4309-913c-93a45cc4735b,Microsoft Teams Premium Webinar +Teams Premium for Faculty,Teams_Premium_for_Faculty,960a972f-d017-4a17-8f64-b42c8035bc7d,QUEUES_APP,ab2d4fb5-f80a-4bf1-a11d-7f1da254041b,Queues app for Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MMR_P1,bdaa59a3-74fd-4137-981a-31d4f84eb8a0,Meeting Room Managed Services +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOMEETADV,3e26ee1f-8a5f-4d52-aee2-b81ce45c8f40,Microsoft 365 Audio Conferencing +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOEV,4828c8ec-dc2e-4779-b502-87ac9ce28ab7,Microsoft 365 Phone System +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,INTUNE_A,c1ec4a95-1f05-45b3-a911-aa3fa01094f5,Microsoft Intune +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,TEAMS1,57ff2da0-773e-42df-b2af-ffb7a2317929,Microsoft Teams +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,MCOSTANDARD,0feaeb32-d00e-4d66-bd5a-43b5b83db82c,Skype for Business Online (Plan 2) +Teams Rooms Premium,MTR_PREM,4fb214cb-a430-4a91-9c91-4976763aa78f,WHITEBOARD_PLAN3,4a51bca5-1eff-43f5-878c-177680f191af,Whiteboard (Plan 3) +TELSTRA Calling for O365,MCOPSTNEAU2,de3312e1-c7b0-46e6-a7c3-a515ff90bc86,MCOPSTNEAU,7861360b-dc3b-4eba-a3fc-0d323a035746,AUSTRALIA CALLING PLAN +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Viva Learning,VIVA_LEARNING,c9d442fc-21fb-4bd7-89e0-a710d74987f6,VIVA_LEARNING_PREMIUM,7162bd38-edae-4022-83a7-c5837f951759,Viva Learning +Universal Print,UNIVERSAL_PRINT,9f3d9c1d-25a5-4aaa-8e59-23a1e6450a67,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for business Basic +Visio Plan 1,VISIO_PLAN1_DEPT,ca7f3140-d88c-455b-9a1c-7f0679e31a76,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio web app +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2,VISIO_PLAN2_DEPT,38b434d2-a15e-4cde-9a98-e737c75623e1,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2_USGOV_GCCHIGH,VISIOCLIENT_USGOV_GCCHIGH,80e52531-ad7f-44ea-abc3-28e389462f1b,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 1,VISIOONLINE_PLAN1,4b244418-9658-4451-a2b8-b5e2b364e9bd,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,ONEDRIVE FOR BUSINESS BASIC +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,VISIO DESKTOP APP +Visio Plan 2,VISIOCLIENT,c5928f49-12ba-48f7-ada3-0d743a3601d5,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,VISIO WEB APP +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,EXCHANGE FOUNDATION FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,ONEDRIVE_BASIC_GOV,98709c2e-96b5-4244-95f5-a0ebe139fb8a,ONEDRIVE FOR BUSINESS BASIC FOR GOVERNMENT +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIO_CLIENT_SUBSCRIPTION_GOV,f85945f4-7a55-4009-bc39-6a5f14a8eac1,VISIO DESKTOP APP FOR Government +Visio Plan 2 for GCC,VISIOCLIENT_GOV,4ae99959-6b0f-43b0-b1ce-68146001bdba,VISIOONLINE_GOV,8a9ecb07-cfc0-48ab-866c-f83c4d911576,VISIO WEB APP FOR GOVERNMENT +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,ONEDRIVE_BASIC,da792a53-cbc0-4184-a10d-e544dd34b3c1,OneDrive for Business (Basic) +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIO_CLIENT_SUBSCRIPTION,663a804f-1c30-4ff0-9915-9db84f0d1cea,Visio Desktop App +Visio Plan 2 for Faculty,VISIOCLIENT_FACULTY,bf95fd32-576a-4742-8d7a-6dc4940b9532,VISIOONLINE,2bdbaf8f-738f-4ac7-9234-3c3ee2ce7d0f,Visio Web App +Viva Goals User-led,Viva_Goals_User_led,3a349c99-ffec-43d2-a2e8-6b97fcb71103,Viva_Goals_Premium,b44c6eaf-5c9f-478c-8f16-8cea26353bfb,Viva Goals +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,GRAPH_CONNECTORS_SEARCH_INDEX_TOPICEXP,b74d57b2-58e9-484a-9731-aeccbba954f0,Graph Connectors Search with Index (Viva Topics) +Viva Topics,TOPIC_EXPERIENCES,4016f256-b063-4864-816e-d818aad600c9,CORTEX,c815c93d-0759-4bb8-b857-bc921a71be83,Viva Topics +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,Windows 10/11 Enterprise (Original) +Windows 10/11 Enterprise E5 (Original),WIN_ENT_E5,1e7e1070-8ccb-4aca-b470-d7cb538cb07e,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for faculty,WIN10_ENT_A3_FAC,8efbe2f6-106e-442f-97d4-a59aa6037e06,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise A3 for students,WIN10_ENT_A3_STU,d4ef921e-840b-4b48-9a90-ab6698bc7b31,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender for Endpoint +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,Virtualization Rights for Windows 10,e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise A5 for faculty,WIN10_ENT_A5_FAC,7b1a89a9-5eb9-4cf8-9467-20c943f1122c,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3,WIN10_PRO_ENT_SUB,cb10e6cd-9da4-4992-867b-67546b1db821,WIN10_PRO_ENT_SUB,21b439ba-a0ca-424f-a6cc-52f954a5b111,WINDOWS 10 ENTERPRISE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,UNIVERSAL PRINT +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,WINDOWS 10 ENTERPRISE (NEW) +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,WINDOWS UPDATE FOR BUSINESS DEPLOYMENT SERVICE +Windows 10/11 Enterprise E3,WIN10_VDA_E3,6a0f6da5-0b87-4190-a6ae-9bb5a2b9546a,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E5,WIN10_VDA_E5,488ba24a-39a9-4473-8ee5-19291e71b002,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,EXCHANGE_S_FOUNDATION_GOV,922ba911-5694-4e99-a794-73aed9bfeec8,Exchange Foundation for Government +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,WINDEFATP,871d91ec-ec1a-452b-a83f-bd76c7d770ef,Microsoft Defender For Endpoint +Windows 10/11 Enterprise E5 Commercial (GCC Compatible),WINE5_GCC_COMPAT,938fd547-d794-42a4-996c-1cc206619580,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10 Enterprise (New) +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,UNIVERSAL_PRINT_01,795f6fe0-cc4d-4773-b050-5dde4dc704c9,Universal Print +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Virtualization Rights for Windows 10 (E3/E5+VDA),e7c91390-7625-45be-94e0-e16907e03118,Windows 10/11 Enterprise +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,Windows_Autopatch,9a6eeb79-0b4b-4bf0-9808-39d99a2cd5a3,Windows Autopatch +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,WINDOWSUPDATEFORBUSINESS_DEPLOYMENTSERVICE,7bf960f6-2cd9-443a-8046-5dbff9558365,Windows Update for Business Deployment Service +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,DATAVERSE_FOR_POWERAUTOMATE_DESKTOP,59231cdf-b40d-4534-a93e-14d0cd31d27e,Dataverse for PAD +Windows 10/11 Enterprise E3 VDA,E3_VDA_only,d13ef257-988a-46f3-8fce-f47484dd4550,POWERAUTOMATE_DESKTOP_FOR_WIN,2d589a15-b171-4e61-9b5f-31d15eeb2872,PAD for Windows +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 1 vCPU 2 GB 64 GB,CPC_B_1C_2RAM_64GB,816eacd3-e1e3-46b3-83c8-1ffd37e053d9,CPC_B_1C_2RAM_64GB,3b98b912-1720-4a1e-9630-c9a41dbb61d8,Windows 365 Business 1 vCPU 2 GB 64 GB +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 128 GB,CPC_B_2C_4RAM_128GB,135bee78-485b-4181-ad6e-40286e311850,CPC_B_2C_4RAM_128GB,1a13832e-cd79-497d-be76-24186f55c8b0,Windows 365 Business 2 vCPU 4 GB 128 GB +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 256 GB,CPC_B_2C_4RAM_256GB,805d57c3-a97d-4c12-a1d0-858ffe5015d0,CPC_B_2C_4RAM_256GB,a0b1c075-51c9-4a42-b34c-308f3993bb7e,Windows 365 Business 2 vCPU 4 GB 256 GB +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 4 GB 64 GB,CPC_B_2C_4RAM_64GB,42e6818f-8966-444b-b7ac-0027c83fa8b5,CPC_B_2C_4RAM_64GB,a790cd6e-a153-4461-83c7-e127037830b6,Windows 365 Business 2 vCPU 4 GB 64 GB +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 128 GB,CPC_B_2C_8RAM_128GB,71f21848-f89b-4aaa-a2dc-780c8e8aac5b,CPC_SS_2,9d2eed2c-b0c0-4a89-940c-bc303444a41b,"Windows 365 Business 2 vCPU, 8 GB, 128 GB" +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 2 vCPU 8 GB 256 GB,CPC_B_2C_8RAM_256GB,750d9542-a2f8-41c7-8c81-311352173432,CPC_B_2C_8RAM_256GB,1a3ef005-2ef6-434b-8be1-faa56c892854,Windows 365 Business 2 vCPU 8 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 128 GB,CPC_B_4C_16RAM_128GB,ad83ac17-4a5a-4ebb-adb2-079fb277e8b9,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 128 GB (with Windows Hybrid Benefit),CPC_B_4C_16RAM_128GB_WHB,439ac253-bfbc-49c7-acc0-6b951407b5ef,CPC_B_4C_16RAM_128GB,1d4f75d3-a19b-49aa-88cb-f1ea1690b550,Windows 365 Business 4 vCPU 16 GB 128 GB +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 256 GB,CPC_B_4C_16RAM_256GB,b3891a9f-c7d9-463c-a2ec-0b2321bda6f9,CPC_B_4C_16RAM_256GB,30f6e561-8805-41d0-80ce-f82698b72d7d,Windows 365 Business 4 vCPU 16 GB 256 GB +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 4 vCPU 16 GB 512 GB,CPC_B_4C_16RAM_512GB,1b3043ad-dfc6-427e-a2c0-5ca7a6c94a2b,CPC_B_4C_16RAM_512GB,15499661-b229-4a1f-b0f9-bd5832ef7b3e,Windows 365 Business 4 vCPU 16 GB 512 GB +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 128 GB,CPC_B_8C_32RAM_128GB,3cb45fab-ae53-4ff6-af40-24c1915ca07b,CPC_B_8C_32RAM_128GB,648005fc-b330-4bd9-8af6-771f28958ac0,Windows 365 Business 8 vCPU 32 GB 128 GB +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 256 GB,CPC_B_8C_32RAM_256GB,fbc79df2-da01-4c17-8d88-17f8c9493d8f,CPC_B_8C_32RAM_256GB,d7a5113a-0276-4dc2-94f8-ca9f2c5ae078,Windows 365 Business 8 vCPU 32 GB 256 GB +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +Windows 365 Business 8 vCPU 32 GB 512 GB,CPC_B_8C_32RAM_512GB,8ee402cd-e6a8-4b67-a411-54d1f37a2049,CPC_B_8C_32RAM_512GB,4229a0b4-7f34-4835-b068-6dc8d10be57c,Windows 365 Business 8 vCPU 32 GB 512 GB +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 512 GB","Windows_365_Business_16_vCPU,_64_GB,_512_GB",93d9955a-ec70-44d5-8faa-a194492390f7,CPC_B_16C_64GB_512GB,cbbedc49-52d5-4fd6-82ac-a5bc51634dc3,"Windows 365 Business 16 vCPU, 64 GB, 512 GB" +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_CUSTOMER_PLAN1,6f23d6a9-adbf-481c-8538-b4c095654487,Microsoft 365 Lighthouse (Plan 1) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,M365_LIGHTHOUSE_PARTNER_PLAN1,d55411c9-cfff-40a9-87c7-240f14df7da5,Microsoft 365 Lighthouse (Plan 2) +"Windows 365 Business 16 vCPU, 64 GB, 1 TB","Windows_365_Business_16_vCPU,_64_GB,_1_TB",24be3cd7-82ca-41a5-94a7-4903373cdcae,CPC_B_16C_64GB_1TB,37c961db-2cfd-4e13-b81e-b0059ce10e34,"Windows 365 Business 16 vCPU, 64 GB, 1 TB" +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 1 vCPU 2 GB 64 GB,CPC_E_1C_2GB_64GB,0c278af4-c9c1-45de-9f4b-cd929e747a2c,CPC_E_1C_2GB_64GB,86d70dbb-d4c6-4662-ba17-3014204cbb28,Windows 365 Enterprise 1 vCPU 2 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 64 GB,CPC_E_2C_4GB_64GB,7bb14422-3b90-4389-a7be-f1b745fc037f,CPC_E_2C_4GB_64GB,23a25099-1b2f-4e07-84bd-b84606109438,Windows 365 Enterprise 2 vCPU 4 GB 64 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB,CPC_E_2C_4GB_128GB,226ca751-f0a4-4232-9be5-73c02a92555e,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 128 GB (Preview),CPC_LVL_1,bce09f38-1800-4a51-8d50-5486380ba84a,CPC_1,545e3611-3af8-49a5-9a0a-b7867968f4b0,Windows 365 Enterprise 2 vCPU 4 GB 128 GB +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 4 GB 256 GB,CPC_E_2C_4GB_256GB,5265a84e-8def-4fa2-ab4b-5dc278df5025,CPC_E_2C_4GB_256GB,0d143570-9b92-4f57-adb5-e4efcd23b3bb,Windows 365 Enterprise 2 vCPU 4 GB 256 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB,CPC_E_2C_8GB_128GB,e2aebe6c-897d-480f-9d62-fff1381581f7,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 128 GB (Preview),CPC_LVL_2,461cb62c-6db7-41aa-bf3c-ce78236cdb9e,CPC_2,3efff3fe-528a-4fc5-b1ba-845802cc764f,Windows 365 Enterprise 2 vCPU 8 GB 128 GB +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 2 vCPU 8 GB 256 GB,CPC_E_2C_8GB_256GB,1c79494f-e170-431f-a409-428f6053fa35,CPC_E_2C_8GB_256GB,d3468c8c-3545-4f44-a32f-b465934d2498,Windows 365 Enterprise 2 vCPU 8 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 128 GB,CPC_E_4C_16GB_128GB,d201f153-d3b2-4057-be2f-fe25c8983e6f,CPC_E_4C_16GB_128GB,2de9c682-ca3f-4f2b-b360-dfc4775db133,Windows 365 Enterprise 4 vCPU 16 GB 128 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB,CPC_E_4C_16GB_256GB,96d2951e-cb42-4481-9d6d-cad3baac177e,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 256 GB (Preview),CPC_LVL_3,bbb4bf6e-3e12-4343-84a1-54d160c00f40,CPC_E_4C_16GB_256GB,9ecf691d-8b82-46cb-b254-cd061b2c02fb,Windows 365 Enterprise 4 vCPU 16 GB 256 GB +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 4 vCPU 16 GB 512 GB,CPC_E_4C_16GB_512GB,0da63026-e422-4390-89e8-b14520d7e699,CPC_E_4C_16GB_512GB,3bba9856-7cf2-4396-904a-00de74fba3a4,Windows 365 Enterprise 4 vCPU 16 GB 512 GB +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 128 GB,CPC_E_8C_32GB_128GB,c97d00e4-0c4c-4ec2-a016-9448c65de986,CPC_E_8C_32GB_128GB,2f3cdb12-bcde-4e37-8529-e9e09ec09e23,Windows 365 Enterprise 8 vCPU 32 GB 128 GB +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 256 GB,CPC_E_8C_32GB_256GB,7818ca3e-73c8-4e49-bc34-1276a2d27918,CPC_E_8C_32GB_256GB,69dc175c-dcff-4757-8389-d19e76acb45d,Windows 365 Enterprise 8 vCPU 32 GB 256 GB +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,Exchange Foundation +Windows 365 Enterprise 8 vCPU 32 GB 512 GB,CPC_E_8C_32GB_512GB,9fb0ba5f-4825-4e84-b239-5167a3a5d4dc,CPC_E_8C_32GB_512GB,0e837228-8250-4047-8a80-d4a34ba11658,Windows 365 Enterprise 8 vCPU 32 GB 512 GB +Windows 365 Shared Use 2 vCPU 4 GB 64 GB,Windows_365_S_2vCPU_4GB_64GB,1f9990ca-45d9-4c8d-8d04-a79241924ce1,CPC_S_2C_4GB_64GB,64981bdb-a5a6-4a22-869f-a9455366d5bc,Windows 365 Shared Use 2 vCPU 4 GB 64 GB +Windows 365 Shared Use 2 vCPU 4 GB 128 GB,Windows_365_S_2vCPU_4GB_128GB,90369797-7141-4e75-8f5e-d13f4b6092c1,CPC_S_2C_4GB_128GB,51855c77-4d2e-4736-be67-6dca605f2b57,Windows 365 Shared Use 2 vCPU 4 GB 128 GB +Windows 365 Shared Use 2 vCPU 4 GB 256 GB,Windows_365_S_2vCPU_4GB_256GB,8fe96593-34d3-49bb-aeee-fb794fed0800,CPC_S_2C_4GB_256GB,aa8fbe7b-695c-4c05-8d45-d1dddf6f7616,Windows 365 Shared Use 2 vCPU 4 GB 256 GB +Windows 365 Shared Use 2 vCPU 8 GB 128 GB,Windows_365_S_2vCPU_8GB_128GB,2d21fc84-b918-491e-ad84-e24d61ccec94,CPC_S_2C_8GB_128GB,057efbfe-a95d-4263-acb0-12b4a31fed8d,Windows 365 Shared Use 2 vCPU 8 GB 128 GB +Windows 365 Shared Use 2 vCPU 8 GB 256 GB,Windows_365_S_2vCPU_8GB_256GB,2eaa4058-403e-4434-9da9-ea693f5d96dc,CPC_S_2C_8GB_256GB,50ef7026-6174-40ba-bff7-f0e4fcddbf65,Windows 365 Shared Use 2 vCPU 8 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 128 GB,Windows_365_S_4vCPU_16GB_128GB,1bf40e76-4065-4530-ac37-f1513f362f50,CPC_S_4C_16GB_128GB,dd3801e2-4aa1-4b16-a44b-243e55497584,Windows 365 Shared Use 4 vCPU 16 GB 128 GB +Windows 365 Shared Use 4 vCPU 16 GB 256 GB,Windows_365_S_4vCPU_16GB_256GB,a9d1e0df-df6f-48df-9386-76a832119cca,CPC_S_4C_16GB_256GB,2d1d344e-d10c-41bb-953b-b3a47521dca0,Windows 365 Shared Use 4 vCPU 16 GB 256 GB +Windows 365 Shared Use 4 vCPU 16 GB 512 GB,Windows_365_S_4vCPU_16GB_512GB,469af4da-121c-4529-8c85-9467bbebaa4b,CPC_S_4C_16GB_512GB,48b82071-99a5-4214-b493-406a637bd68d,Windows 365 Shared Use 4 vCPU 16 GB 512 GB +Windows 365 Shared Use 8 vCPU 32 GB 128 GB,Windows_365_S_8vCPU_32GB_128GB,f319c63a-61a9-42b7-b786-5695bc7edbaf,CPC_S_8C_32GB_128GB,e4dee41f-a5c5-457d-b7d3-c309986fdbb2,Windows 365 Shared Use 8 vCPU 32 GB 128 GB +Windows 365 Shared Use 8 vCPU 32 GB 256 GB,Windows_365_S_8vCPU_32GB_256GB,fb019e88-26a0-4218-bd61-7767d109ac26,CPC_S_8C_32GB_256GB,1e2321a0-f81c-4d43-a0d5-9895125706b8,Windows 365 Shared Use 8 vCPU 32 GB 256 GB +Windows 365 Shared Use 8 vCPU 32 GB 512 GB,Windows_365_S_8vCPU_32GB_512GB,f4dc1de8-8c94-4d37-af8a-1fca6675590a,CPC_S_8C_32GB_512GB,fa0b4021-0f60-4d95-bf68-95036285282a,Windows 365 Shared Use 8 vCPU 32 GB 512 GB +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,EXCHANGE_S_FOUNDATION,113feb6c-3fe4-4440-bddc-54d774bf0318,EXCHANGE FOUNDATION +Windows Store for Business,WINDOWS_STORE,6470687e-a428-4b7a-bef2-8a291ad947c9,WINDOWS_STORE,a420f25f-a7b3-4ff5-a9d0-5d58f73b537d,WINDOWS STORE SERVICE +Windows Store for Business EDU Faculty,WSFB_EDU_FACULTY,c7e9d9e6-1981-4bf3-bb50-a5bdfaa06fb2,Windows Store for Business EDU Store_faculty,aaa2cd24-5519-450f-a1a0-160750710ca1,Windows Store for Business EDU Store_faculty +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS,f477b0f0-3bb1-4890-940c-40fcee6ce05f,Microsoft Workplace Analytics +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_BACKEND,ff7b261f-d98b-415b-827c-42a3fdf015af,Microsoft Workplace Analytics Insights Backend +Microsoft Workplace Analytics,WORKPLACE_ANALYTICS,3d957427-ecdc-4df2-aacd-01cc9d519da8,WORKPLACE_ANALYTICS_INSIGHTS_USER,b622badb-1b45-48d5-920f-4b27a2c0996c,Microsoft Workplace Analytics Insights User +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P1,84c289f0-efcb-486f-8581-07f44fc9efad,Azure Active Directory workload identities P1 +Workload Identities Premium,Workload_Identities_Premium_CN,73fa80b5-689f-4db9-bbe4-bd414bc41e44,AAD_WRKLDID_P2,7dc0e92d-bf15-401d-907e-0884efe7c760,Azure Active Directory workload identities P2 diff --git a/Modules/CippExtensions/Public/Extension Functions/Add-HuduAssetLayoutField.ps1 b/Modules/CippExtensions/Public/Extension Functions/Add-HuduAssetLayoutField.ps1 new file mode 100644 index 000000000000..8669019b3321 --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Add-HuduAssetLayoutField.ps1 @@ -0,0 +1,32 @@ +function Add-HuduAssetLayoutField { + Param( + $AssetLayoutId, + $Label = 'Microsoft 365', + $FieldType = 'RichText', + $Position = 0, + $ShowInList = $false + ) + + $M365Field = @{ + position = $Position + label = $Label + field_type = $FieldType + show_in_list = $ShowInList + required = $false + expiration = $false + } + + $AssetLayout = Get-HuduAssetLayouts -LayoutId $AssetLayoutId + + if ($AssetLayout.fields.label -contains $Label) { + return $AssetLayout + } + + $AssetLayoutFields = [System.Collections.Generic.List[object]]::new() + $AssetLayoutFields.Add($M365Field) + foreach ($Field in $AssetLayout.fields) { + $Field.position++ + $AssetLayoutFields.Add($Field) + } + Set-HuduAssetLayout -Id $AssetLayoutId -Fields $AssetLayoutFields +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-CippExtensionReportingData.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-CippExtensionReportingData.ps1 new file mode 100644 index 000000000000..894bb7a4469b --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Get-CippExtensionReportingData.ps1 @@ -0,0 +1,110 @@ +function Get-CippExtensionReportingData { + <# + .SYNOPSIS + Retrieves cached data from CIPP Reporting DB for extension sync + + .DESCRIPTION + This function replaces Get-ExtensionCacheData by retrieving data from the new CIPP Reporting DB + instead of the legacy CacheExtensionSync table. It handles property mappings and data transformations + to maintain compatibility with existing extension sync code. + + .PARAMETER TenantFilter + The tenant to retrieve data for + + .PARAMETER IncludeMailboxes + Include mailbox data (requires separate cache run with Type 'Mailboxes') + + .EXAMPLE + $ExtensionCache = Get-CippExtensionReportingData -TenantFilter 'contoso.onmicrosoft.com' + + .EXAMPLE + $ExtensionCache = Get-CippExtensionReportingData -TenantFilter 'contoso.onmicrosoft.com' -IncludeMailboxes + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $false)] + [switch]$IncludeMailboxes + ) + + try { + $Return = @{} + + # Direct mappings - loop through items and parse each .Data property (filter out count entries) + $UsersItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Users = if ($UsersItems) { $UsersItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $DomainsItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Domains' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Domains = if ($DomainsItems) { $DomainsItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $ConditionalAccessItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'ConditionalAccessPolicies' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.ConditionalAccess = if ($ConditionalAccessItems) { $ConditionalAccessItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $ManagedDevicesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Devices = if ($ManagedDevicesItems) { $ManagedDevicesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $OrganizationItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Organization' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Organization = if ($OrganizationItems) { ($OrganizationItems | ForEach-Object { $_.Data | ConvertFrom-Json } | Select-Object -First 1) } else { $null } + + # Groups with inline members (members are now in each group object) + $GroupsItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Groups' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Groups = if ($GroupsItems) { $GroupsItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # Roles with inline members (members are now in each role object) + $RolesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Roles' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.AllRoles = if ($RolesItems) { $RolesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # License mapping with property translation to maintain compatibility + $LicenseItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'LicenseOverview' | Where-Object { $_.RowKey -notlike '*-Count' } + if ($LicenseItems) { + $ParsedLicenseData = $LicenseItems | ForEach-Object { $_.Data | ConvertFrom-Json } + $Return.Licenses = $ParsedLicenseData | Select-Object @{N = 'skuId'; E = { $_.skuId } }, + @{N = 'skuPartNumber'; E = { $_.skuPartNumber } }, + @{N = 'consumedUnits'; E = { $_.CountUsed } }, + @{N = 'prepaidUnits'; E = { @{enabled = $_.TotalLicenses } } } + } else { + $Return.Licenses = @() + } + + # Intune policies (renamed from DeviceCompliancePolicies to IntuneDeviceCompliancePolicies) + $IntunePoliciesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'IntuneDeviceCompliancePolicies' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.DeviceCompliancePolicies = if ($IntunePoliciesItems) { $IntunePoliciesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # Secure Score + $SecureScoreItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScore' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.SecureScore = if ($SecureScoreItems) { $SecureScoreItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # Secure Score Control Profiles + $SecureScoreControlProfilesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'SecureScoreControlProfiles' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.SecureScoreControlProfiles = if ($SecureScoreControlProfilesItems) { $SecureScoreControlProfilesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + # Mailboxes (optional - requires separate cache run) + if ($IncludeMailboxes) { + $MailboxesItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.Mailboxes = if ($MailboxesItems) { $MailboxesItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $CASMailboxItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'CASMailbox' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.CASMailbox = if ($CASMailboxItems) { $CASMailboxItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $MailboxPermissionsItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxPermissions' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.MailboxPermissions = if ($MailboxPermissionsItems) { $MailboxPermissionsItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $OneDriveUsageItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'OneDriveUsage' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.OneDriveUsage = if ($OneDriveUsageItems) { $OneDriveUsageItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + + $MailboxUsageItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxUsage' | Where-Object { $_.RowKey -notlike '*-Count' } + $Return.MailboxUsage = if ($MailboxUsageItems) { $MailboxUsageItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + } + + return $Return + + } catch { + Write-LogMessage -API 'ExtensionCache' -tenant $TenantFilter -message "Failed to retrieve extension reporting data: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 new file mode 100644 index 000000000000..561893aee457 --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 @@ -0,0 +1,29 @@ +function Get-ExtensionAPIKey { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Extension, + [switch]$Force + ) + + $Var = "Ext_$Extension" + $APIKey = Get-Item -Path "env:$Var" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Value + if ($APIKey -and -not $Force) { + Write-Information "Using cached API Key for $Extension" + } else { + Write-Information "Retrieving API Key for $Extension" + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $APIKey = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq '$Extension' and RowKey eq '$Extension'").APIKey + } else { + $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $APIKey = (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension -AsPlainText) + } + Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue + } + return $APIKey +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionCacheData.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionCacheData.ps1 new file mode 100644 index 000000000000..bea4a6b65efa --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionCacheData.ps1 @@ -0,0 +1,18 @@ +function Get-ExtensionCacheData { + param( + $TenantFilter + ) + + $Table = Get-CIPPTable -TableName CacheExtensionSync + $CacheData = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$TenantFilter'" + + $Return = @{} + foreach ($Data in $CacheData) { + try { + $Return[$Data.RowKey] = $Data.Data | ConvertFrom-Json -ErrorAction SilentlyContinue + } catch { + Write-Information "Failed to convert cache data for $($Data.RowKey) to JSON" + } + } + return [PSCustomObject]$Return +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionMapping.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionMapping.ps1 new file mode 100644 index 000000000000..c81a8cdbf453 --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionMapping.ps1 @@ -0,0 +1,8 @@ +function Get-ExtensionMapping { + param( + $Extension + ) + + $Table = Get-CIPPTable -TableName CippMapping + return Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Extension)Mapping'" +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Push-CippExtensionData.ps1 b/Modules/CippExtensions/Public/Extension Functions/Push-CippExtensionData.ps1 new file mode 100644 index 000000000000..d00d60337703 --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Push-CippExtensionData.ps1 @@ -0,0 +1,22 @@ +function Push-CippExtensionData { + param( + $TenantFilter, + $Extension + ) + + $Table = Get-CIPPTable -TableName Extensionsconfig + $Config = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ea stop + + switch ($Extension) { + 'Hudu' { + if ($Config.Hudu.Enabled) { + Write-Host 'Perfoming Hudu Extension Sync...' + Invoke-HuduExtensionSync -Configuration $Config -TenantFilter $TenantFilter + } + } + 'CustomData' { + Write-Host 'Perfoming Custom Data Extension Sync...' + Invoke-CustomDataSync -TenantFilter $TenantFilter + } + } +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 b/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 new file mode 100644 index 000000000000..1cef75d498fe --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 @@ -0,0 +1,134 @@ +function Register-CIPPExtensionScheduledTasks { + param( + [switch]$Reschedule, + [int64]$NextSync = (([datetime]::UtcNow.AddMinutes(30)) - (Get-Date '1/1/1970')).TotalSeconds, + [string[]]$Extensions = @('Hudu', 'NinjaOne', 'CustomData') + ) + + # get extension configuration and mappings table + $Table = Get-CIPPTable -TableName Extensionsconfig + $Config = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ea stop) + $MappingsTable = Get-CIPPTable -TableName CippMapping + + # Get existing scheduled usertasks + $ScheduledTasksTable = Get-CIPPTable -TableName ScheduledTasks + $ScheduledTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'Sync-CippExtensionData' } + $PushTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'Push-CippExtensionData' } + $Tenants = Get-Tenants -IncludeErrors + + # Remove all legacy Sync-CippExtensionData tasks (now deprecated - extensions use CippReportingDB) + Write-Information "Removing $($ScheduledTasks.Count) legacy Sync-CippExtensionData scheduled tasks" + foreach ($Task in $ScheduledTasks) { + Write-Information "Removing legacy task: $($Task.Name) for tenant $($Task.Tenant)" + $Entity = $Task | Select-Object -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity + } + $ScheduledTasks = @() # Clear the list since we removed them all + + $MappedTenants = [System.Collections.Generic.List[string]]::new() + foreach ($Extension in $Extensions) { + $ExtensionConfig = $Config.$Extension + if ($ExtensionConfig.Enabled -eq $true -or $Extension -eq 'CustomData') { + if ($Extension -eq 'CustomData') { + $CustomDataMappingTable = Get-CIPPTable -TableName CustomDataMappings + $Mappings = Get-CIPPAzDataTableEntity @CustomDataMappingTable | ForEach-Object { + $Mapping = $_.JSON | ConvertFrom-Json + if ($Mapping.sourceType.value -eq 'reportingDb' -or $Mapping.sourceType.value -eq 'extensionSync') { + $TenantMappings = if ($Mapping.tenantFilter.value -contains 'AllTenants') { + $Tenants + } else { + foreach ($TenantMapping in $TenantMappings) { + $TenantMapping | Where-Object { $_.customerId -eq $Mapping.tenantFilter.value -or $_.defaultDomainName -eq $Mapping.tenantFilter.value } + } + } + foreach ($TenantMapping in $TenantMappings) { + [pscustomobject]@{ + RowKey = $TenantMapping.customerId + } + } + } + } | Sort-Object -Property RowKey -Unique + + if (($Mappings | Measure-Object).Count -eq 0) { + Write-Warning 'No tenants found for CustomData extension' + continue + } + } else { + $Mappings = Get-CIPPAzDataTableEntity @MappingsTable -Filter "PartitionKey eq '$($Extension)Mapping'" + $FieldMapping = Get-CIPPAzDataTableEntity @MappingsTable -Filter "PartitionKey eq '$($Extension)FieldMapping'" + } + $FieldSync = @{} + $SyncTypes = [System.Collections.Generic.List[string]]::new() + + foreach ($Mapping in $FieldMapping) { + $FieldSync[$Mapping.RowKey] = !([string]::IsNullOrEmpty($Mapping.IntegrationId)) + } + + $SyncTypes.Add('Overview') + $SyncTypes.Add('Groups') + $SyncTypes.Add('Users') + $SyncTypes.Add('Mailboxes') + $SyncTypes.Add('Devices') + + foreach ($Mapping in $Mappings) { + $Tenant = $Tenants | Where-Object { $_.customerId -eq $Mapping.RowKey } + if (!$Tenant) { + Write-Warning "Tenant $($Mapping.RowKey) not found" + continue + } + $MappedTenants.Add($Tenant.defaultDomainName) + + # Legacy Sync-CippExtensionData tasks are no longer needed - extensions now use CippReportingDB + # All cache data is now collected by Push-CIPPDBCacheData scheduled tasks + + $ExistingPushTask = $PushTasks | Where-Object { $_.Tenant -eq $Tenant.defaultDomainName -and $_.SyncType -eq $Extension } + if ((!$ExistingPushTask -or $Reschedule.IsPresent) -and $Extension -ne 'NinjaOne') { + # push cached data to extension + + $Task = [pscustomobject]@{ + Name = "$Extension Extension Sync" + Command = @{ + value = 'Push-CippExtensionData' + label = 'Push-CippExtensionData' + } + Parameters = [pscustomobject]@{ + TenantFilter = $Tenant.defaultDomainName + Extension = $Extension + } + Recurrence = '1d' + ScheduledTime = $NextSync + TenantFilter = $Tenant.defaultDomainName + } + if ($ExistingPushTask) { + $task | Add-Member -NotePropertyName 'RowKey' -NotePropertyValue $ExistingPushTask.RowKey -Force + } + $null = Add-CIPPScheduledTask -Task $Task -hidden $true -SyncType $Extension + Write-Information "Creating $Extension task for tenant $($Tenant.defaultDomainName)" + } + } + } else { + # remove existing scheduled tasks + $PushTasks | Where-Object { $_.SyncType -eq $Extension } | ForEach-Object { + Write-Information "Extension Disabled: Cleaning up scheduled task $($_.Name) for tenant $($_.Tenant)" + $Entity = $_ | Select-Object -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity + } + } + } + $MappedTenants = $MappedTenants | Sort-Object -Unique + + foreach ($Task in $ScheduledTasks) { + if ($Task.Tenant -notin $MappedTenants) { + Write-Information "Tenant Removed: Cleaning up scheduled task $($Task.Name) for tenant $($Task.TenantFilter)" + $Entity = $Task | Select-Object -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity + } + } + foreach ($Task in $PushTasks) { + if ($Task.Tenant -notin $MappedTenants) { + Write-Information "Tenant Removed: Cleaning up scheduled task $($Task.Name) for tenant $($Task.TenantFilter)" + $Entity = $Task | Select-Object -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity + } + } +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 new file mode 100644 index 000000000000..f8b0975bc963 --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 @@ -0,0 +1,32 @@ +function Set-ExtensionAPIKey { + <# + .FUNCTIONALITY + Internal + #> + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '', Scope = 'Function')] + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$Extension, + [Parameter(Mandatory = $true)] + [string]$APIKey + ) + + if ($PSCmdlet.ShouldProcess('API Key', "Set API Key for $Extension")) { + $Var = "Ext_$Extension" + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = [PSCustomObject]@{ + 'PartitionKey' = $Extension + 'RowKey' = $Extension + 'APIKey' = $APIKey + } + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + } else { + $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $null = Set-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension -SecretValue (ConvertTo-SecureString -AsPlainText -Force -String $APIKey) + } + Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue + } + return $true +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionFieldMapping.ps1 b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionFieldMapping.ps1 new file mode 100644 index 000000000000..9716e968fb81 --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionFieldMapping.ps1 @@ -0,0 +1,24 @@ +function Set-ExtensionFieldMapping { + [CmdletBinding()] + param ( + $CIPPMapping, + $Extension, + $APIName, + $Request, + $TriggerMetadata + ) + + foreach ($Mapping in ([pscustomobject]$Request.Body).psobject.properties) { + $AddObject = @{ + PartitionKey = "$($Extension)FieldMapping" + RowKey = "$($mapping.name)" + IntegrationId = "$($mapping.value.value)" + IntegrationName = "$($mapping.value.label)" + } + Add-AzDataTableEntity @CIPPMapping -Entity $AddObject -Force + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Added mapping for $($mapping.name)." -Sev 'Info' + } + $Result = [pscustomobject]@{'Results' = 'Successfully edited mapping table.' } + + Return $Result +} diff --git a/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 b/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 new file mode 100644 index 000000000000..480717d693bd --- /dev/null +++ b/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 @@ -0,0 +1,329 @@ +function Sync-CippExtensionData { + <# + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $TenantFilter, + $SyncType + ) + + # Legacy cache system is deprecated - all extensions now use CippReportingDB + Write-Warning "Sync-CippExtensionData is deprecated. This scheduled task should be removed. Extensions now use Push-CIPPDBCacheData and Get-CippExtensionReportingData." + return + + $Table = Get-CIPPTable -TableName ExtensionSync + $Extensions = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($SyncType)'" + $LastSync = $Extensions | Where-Object { $_.RowKey -eq $TenantFilter } + $CacheTable = Get-CIPPTable -tablename 'CacheExtensionSync' + + if (!$LastSync) { + $LastSync = @{ + PartitionKey = $SyncType + RowKey = $TenantFilter + Status = 'Not Synced' + Error = '' + LastSync = 'Never' + } + $null = Add-CIPPAzDataTableEntity @Table -Entity $LastSync + } + + try { + switch ($SyncType) { + 'Overview' { + # Build bulk requests array. + [System.Collections.Generic.List[PSCustomObject]]$TenantRequests = @( + @{ + id = 'TenantDetails' + method = 'GET' + url = '/organization' + }, + @{ + id = 'AllRoles' + method = 'GET' + url = '/directoryRoles' + }, + @{ + id = 'Domains' + method = 'GET' + url = '/domains?$top=99' + }, + @{ + id = 'Licenses' + method = 'GET' + url = '/subscribedSkus' + }, + @{ + id = 'ConditionalAccess' + method = 'GET' + url = '/identity/conditionalAccess/policies' + }, + @{ + id = 'SecureScoreControlProfiles' + method = 'GET' + url = '/security/secureScoreControlProfiles?$top=999' + }, + @{ + id = 'Subscriptions' + method = 'GET' + url = '/directory/subscriptions?$top=999' + }, + @{ + id = 'OneDriveUsage' + method = 'GET' + url = "reports/getOneDriveUsageAccountDetail(period='D7')?`$format=application%2fjson" + }, + @{ + id = 'MailboxUsage' + method = 'GET' + url = "reports/getMailboxUsageDetail(period='D7')?`$format=application%2fjson" + } + ) + + $SingleGraphQueries = @(@{ + id = 'SecureScore' + graphRequest = @{ + uri = 'https://graph.microsoft.com/beta/security/secureScores?$top=1' + noPagination = $true + } + }) + $AdditionalRequests = @( + @{ + ParentId = 'AllRoles' + graphRequest = @{ + url = '/directoryRoles/{0}/members?$select=id,displayName,userPrincipalName' + method = 'GET' + } + } + ) + } + 'Users' { + [System.Collections.Generic.List[PSCustomObject]]$TenantRequests = @( + @{ + id = 'Users' + method = 'GET' + url = '/users?$top=999&$select=id,accountEnabled,businessPhones,city,createdDateTime,companyName,country,department,displayName,faxNumber,givenName,isResourceAccount,jobTitle,mail,mailNickname,mobilePhone,onPremisesDistinguishedName,officeLocation,onPremisesLastSyncDateTime,otherMails,postalCode,preferredDataLocation,preferredLanguage,proxyAddresses,showInAddressList,state,streetAddress,surname,usageLocation,userPrincipalName,userType,assignedLicenses,onPremisesSyncEnabled' + } + ) + } + 'Groups' { + [System.Collections.Generic.List[PSCustomObject]]$TenantRequests = @( + @{ + id = 'Groups' + method = 'GET' + url = '/groups?$top=999&$select=id,createdDateTime,displayName,description,mail,mailEnabled,mailNickname,resourceProvisioningOptions,securityEnabled,visibility,organizationId,onPremisesSamAccountName,membershipRule,grouptypes,onPremisesSyncEnabled,resourceProvisioningOptions,userPrincipalName' + } + ) + $AdditionalRequests = @( + @{ + ParentId = 'Groups' + graphRequest = @{ + url = '/groups/{0}/members?$select=id,displayName,userPrincipalName' + method = 'GET' + } + } + ) + } + 'Devices' { + [System.Collections.Generic.List[PSCustomObject]]$TenantRequests = @( + @{ + id = 'Devices' + method = 'GET' + url = '/deviceManagement/managedDevices?$top=999' + }, + @{ + id = 'DeviceCompliancePolicies' + method = 'GET' + url = '/deviceManagement/deviceCompliancePolicies?$top=999' + }, + @{ + id = 'DeviceApps' + method = 'GET' + url = '/deviceAppManagement/mobileApps?$select=id,displayName,description,publisher,isAssigned,createdDateTime,lastModifiedDateTime&$top=999' + } + ) + + $AdditionalRequests = @( + @{ + ParentId = 'DeviceCompliancePolicies' + graphRequest = @{ + url = '/deviceManagement/deviceCompliancePolicies/{0}/deviceStatuses?$top=999' + method = 'GET' + } + } + ) + } + 'Mailboxes' { + $Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress,HiddenFromAddressListsEnabled,ExternalDirectoryObjectId,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled' + $ExoRequest = @{ + tenantid = $TenantFilter + cmdlet = 'Get-Mailbox' + cmdParams = @{} + Select = $Select + } + $Mailboxes = (New-ExoRequest @ExoRequest) | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, + @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, + @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, + @{ Name = 'recipientType'; Expression = { $_.'RecipientType' } }, + @{ Name = 'recipientTypeDetails'; Expression = { $_.'RecipientTypeDetails' } }, + @{ Name = 'AdditionalEmailAddresses'; Expression = { ($_.'EmailAddresses' | Where-Object { $_ -clike 'smtp:*' }).Replace('smtp:', '') -join ', ' } }, + @{Name = 'ForwardingSmtpAddress'; Expression = { $_.'ForwardingSmtpAddress' -replace 'smtp:', '' } }, + @{Name = 'InternalForwardingAddress'; Expression = { $_.'ForwardingAddress' } }, + DeliverToMailboxAndForward, + HiddenFromAddressListsEnabled, + ExternalDirectoryObjectId, + MessageCopyForSendOnBehalfEnabled, + MessageCopyForSentAsEnabled + + $Entity = @{ + PartitionKey = $TenantFilter + SyncType = 'Mailboxes' + RowKey = 'Mailboxes' + Data = [string]($Mailboxes | ConvertTo-Json -Depth 10 -Compress) + } + $null = Add-CIPPAzDataTableEntity @CacheTable -Entity $Entity -Force + + $SingleGraphQueries = @( + @{ + id = 'CASMailbox' + graphRequest = @{ + uri = "https://outlook.office365.com/adminapi/beta/$($tenantfilter)/CasMailbox" + Tenantid = $tenantfilter + scope = 'ExchangeOnline' + noPagination = $true + } + } + ) + + # Bulk request mailbox permissions using New-ExoBulkRequest for each mailbox - mailboxPermissions is not a valid graph query + $ExoBulkRequests = foreach ($Mailbox in $Mailboxes) { + @{ + CmdletInput = @{ + CmdletName = 'Get-MailboxPermission' + Parameters = @{ Identity = $Mailbox.UPN } + } + } + } + $MailboxPermissions = New-ExoBulkRequest -cmdletArray @($ExoBulkRequests) -tenantid $TenantFilter + $Entity = @{ + PartitionKey = $TenantFilter + SyncType = 'Mailboxes' + RowKey = 'MailboxPermissions' + Data = [string]($MailboxPermissions | ConvertTo-Json -Depth 10 -Compress) + } + $null = Add-CIPPAzDataTableEntity @CacheTable -Entity $Entity -Force + } + } + + if ($TenantRequests) { + Write-Information "Requesting tenant information for $TenantFilter $SyncType" + try { + $TenantResults = New-GraphBulkRequest -Requests @($TenantRequests) -tenantid $TenantFilter + } catch { + throw "Failed to fetch bulk company data: $_" + } + + $TenantResults | Select-Object id, body | ForEach-Object { + $Data = $_.body.value ?? $_.body + if ($Data -match '^eyJ') { + # base64 decode + $Data = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Data)) | ConvertFrom-Json + $Data = $Data.Value + } + + # Filter out excluded licenses to respect the ExcludedLicenses table + if ($_.id -eq 'Licenses') { + $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses + $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable + if ($ExcludedSkuList) { + $Data = $Data | Where-Object { $_.skuId -notin $ExcludedSkuList.GUID } + } + } + + $Entity = @{ + PartitionKey = $TenantFilter + RowKey = $_.id + SyncType = $SyncType + Data = [string]($Data | ConvertTo-Json -Depth 10 -Compress) + } + $null = Add-CIPPAzDataTableEntity @CacheTable -Entity $Entity -Force + } + + if ($AdditionalRequests) { + foreach ($AdditionalRequest in $AdditionalRequests) { + if ($AdditionalRequest.Filter) { + $Filter = [scriptblock]::Create($AdditionalRequest.Filter) + } else { + $Filter = { $true } + } + $ParentId = $AdditionalRequest.ParentId + $GraphRequest = $AdditionalRequest.graphRequest.PSObject.Copy() + $AdditionalRequestQueries = ($TenantResults | Where-Object { $_.id -eq $ParentId }).body.value | Where-Object $Filter | ForEach-Object { + if ($_.id) { + [PSCustomObject]@{ + id = $_.id + method = $GraphRequest.method + url = $GraphRequest.url -f $_.id + } + } + } + if (($AdditionalRequestQueries | Measure-Object).Count -gt 0) { + try { + $AdditionalResults = New-GraphBulkRequest -Requests @($AdditionalRequestQueries) -tenantid $TenantFilter + } catch { + throw $_ + } + if ($AdditionalResults) { + $AdditionalResults | ForEach-Object { + $Data = $_.body.value ?? $_.body + if ($Data -match '^eyJ') { + # base64 decode + $Data = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Data)) | ConvertFrom-Json + $Data = $Data.Value + } + $Entity = @{ + PartitionKey = $TenantFilter + SyncType = $SyncType + RowKey = '{0}_{1}' -f $ParentId, $_.id + Data = [string]($Data | ConvertTo-Json -Depth 10 -Compress) + } + try { + $null = Add-CIPPAzDataTableEntity @CacheTable -Entity $Entity -Force + } catch { + throw $_ + } + } + } + + } + } + } + } + + if ($SingleGraphQueries) { + foreach ($SingleGraphQuery in $SingleGraphQueries) { + $Request = $SingleGraphQuery.graphRequest + $Data = New-GraphGetRequest @Request -tenantid $TenantFilter + $Entity = @{ + PartitionKey = $TenantFilter + SyncType = $SyncType + RowKey = $SingleGraphQuery.id + Data = [string]($Data | ConvertTo-Json -Depth 10 -Compress) + } + $null = Add-CIPPAzDataTableEntity @CacheTable -Entity $Entity -Force + } + } + + $LastSync.LastSync = [datetime]::UtcNow.ToString('yyyy-MM-ddTHH:mm:ssZ') + $LastSync.Status = 'Completed' + $LastSync.Error = '' + } catch { + $LastSync.Status = 'Failed' + $LastSync.Error = [string](Get-CippException -Exception $_ | ConvertTo-Json -Compress) + throw "Failed to sync data: $(Get-NormalizedError -message $_.Exception.Message)" + } finally { + Add-CIPPAzDataTableEntity @Table -Entity $LastSync -Force + } + return $LastSync +} diff --git a/Modules/CippExtensions/Public/Get-ExtensionRateLimit.ps1 b/Modules/CippExtensions/Public/Get-ExtensionRateLimit.ps1 new file mode 100644 index 000000000000..242d4dd86390 --- /dev/null +++ b/Modules/CippExtensions/Public/Get-ExtensionRateLimit.ps1 @@ -0,0 +1,32 @@ +function Get-ExtensionRateLimit($ExtensionName, $ExtensionPartitionKey, $RateLimit, $WaitTime) { + + $MappingTable = Get-CIPPTable -TableName CippMapping + $CurrentMap = (Get-CIPPAzDataTableEntity @MappingTable -Filter "PartitionKey eq '$ExtensionPartitionKey'") + $CurrentMap | ForEach-Object { + if ($Null -ne $_.lastEndTime -and $_.lastEndTime -ne '') { + $_.lastEndTime = (Get-Date($_.lastEndTime)) + } else { + $_ | Add-Member -NotePropertyName lastEndTime -NotePropertyValue $Null -Force + } + + if ($Null -ne $_.lastStartTime -and $_.lastStartTime -ne '') { + $_.lastStartTime = (Get-Date($_.lastStartTime)) + } else { + $_ | Add-Member -NotePropertyName lastStartTime -NotePropertyValue $Null -Force + } + } + + # Check Global Rate Limiting + try { + $ActiveJobs = $CurrentMap | Where-Object { ($Null -ne $_.lastStartTime) -and ($_.lastStartTime -gt (Get-Date).AddMinutes(-10)) -and ($Null -eq $_.lastEndTime -or $_.lastStartTime -gt $_.lastEndTime) } + } catch { + $ActiveJobs = 'FirstRun' + } + if (($ActiveJobs | Measure-Object).count -ge $RateLimit) { + Write-Host "Rate Limiting. Currently $($ActiveJobs.count) Active Jobs" + $CurrentMap = Get-ExtensionRateLimit -ExtensionName $ExtensionName -ExtensionPartitionKey $ExtensionPartitionKey -RateLimit $RateLimit -WaitTime $WaitTime + } + + Return $CurrentMap + +} \ No newline at end of file diff --git a/Modules/CippExtensions/Public/GitHub/Get-GitHubBranch.ps1 b/Modules/CippExtensions/Public/GitHub/Get-GitHubBranch.ps1 new file mode 100644 index 000000000000..53581eaea498 --- /dev/null +++ b/Modules/CippExtensions/Public/GitHub/Get-GitHubBranch.ps1 @@ -0,0 +1,16 @@ +function Get-GitHubBranch { + <# + .SYNOPSIS + Get GitHub Branch + .DESCRIPTION + Get GitHub Branch + . + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$FullName + ) + + Invoke-GitHubApiRequest -Path "repos/$FullName/branches" -Method GET +} diff --git a/Modules/CippExtensions/Public/GitHub/Get-GitHubFileContents.ps1 b/Modules/CippExtensions/Public/GitHub/Get-GitHubFileContents.ps1 new file mode 100644 index 000000000000..489bc89a8833 --- /dev/null +++ b/Modules/CippExtensions/Public/GitHub/Get-GitHubFileContents.ps1 @@ -0,0 +1,29 @@ +function Get-GitHubFileContents { + [CmdletBinding()] + param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + $FullName, + + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + $Path, + + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + $Branch + ) + + process { + $Path = "repos/$($FullName)/contents/$($Path)?ref=$($Branch)" + #Write-Information $Path + $File = Invoke-GitHubApiRequest -Path $Path -Method GET + $content = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($File.content)) + #If the first character is a BOM, remove it + if ($content[0] -eq [char]65279) { $content = $content.Substring(1) } + return [PSCustomObject]@{ + name = $File.name + path = $File.path + content = $content + sha = $File.sha + size = $File.size + } + } +} diff --git a/Modules/CippExtensions/Public/GitHub/Get-GitHubFileTree.ps1 b/Modules/CippExtensions/Public/GitHub/Get-GitHubFileTree.ps1 new file mode 100644 index 000000000000..951a364c7408 --- /dev/null +++ b/Modules/CippExtensions/Public/GitHub/Get-GitHubFileTree.ps1 @@ -0,0 +1,18 @@ +function Get-GitHubFileTree { + <# + .SYNOPSIS + Get GitHub File Tree + .DESCRIPTION + Get GitHub File Tree + . + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$FullName, + [Parameter(Mandatory = $true)] + [string]$Branch + ) + + Invoke-GitHubApiRequest -Path "repos/$FullName/git/trees/$($Branch)?recursive=1" -Method GET +} diff --git a/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 b/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 new file mode 100644 index 000000000000..df7b1dec76a4 --- /dev/null +++ b/Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1 @@ -0,0 +1,71 @@ +function Invoke-GitHubApiRequest { + [CmdletBinding()] + param( + [string]$Method = 'GET', + [Parameter(Mandatory = $true)] + [string] + $Path, + [Parameter()] + $Body, + [string]$Accept = 'application/vnd.github+json', + [switch]$ReturnHeaders + ) + + $Table = Get-CIPPTable -TableName Extensionsconfig + $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config + if ($ExtensionConfig -and (Test-Json -Json $ExtensionConfig)) { + $Configuration = ($ExtensionConfig | ConvertFrom-Json).GitHub + } else { + $Configuration = @{ Enabled = $false } + } + + if ($Configuration.Enabled) { + $APIKey = Get-ExtensionAPIKey -Extension 'GitHub' + $Headers = @{ + Authorization = "Bearer $($APIKey)" + 'User-Agent' = 'CIPP' + Accept = $Accept + 'X-GitHub-API-Version' = '2022-11-28' + } + + $FullUri = "https://api.github.com/$Path" + Write-Verbose "[$Method] $FullUri" + + $RestMethod = @{ + Method = $Method + Uri = $FullUri + Headers = $Headers + } + if ($ReturnHeaders.IsPresent) { + $RestMethod.ResponseHeadersVariable = 'ResponseHeaders' + } + + if ($Body) { + $RestMethod.Body = $Body | ConvertTo-Json -Depth 10 + $RestMethod.ContentType = 'application/json' + } + + try { + $Response = Invoke-RestMethod @RestMethod + if ($ReturnHeaders.IsPresent) { + $Response | Add-Member -MemberType NoteProperty -Name Headers -Value $ResponseHeaders + return $Response + } else { + return $Response + } + } catch { + throw $_.Exception.Message + } + } else { + $Action = @{ + Action = 'ApiCall' + Path = $Path + Method = $Method + Body = $Body + Accept = $Accept + } + $Body = $Action | ConvertTo-Json -Depth 10 + + (Invoke-RestMethod -Uri 'https://cippy.azurewebsites.net/api/ExecGitHubAction' -Method POST -Body $Body -ContentType 'application/json').Results + } +} diff --git a/Modules/CippExtensions/Public/GitHub/New-GitHubRepo.ps1 b/Modules/CippExtensions/Public/GitHub/New-GitHubRepo.ps1 new file mode 100644 index 000000000000..27d975d9bcf3 --- /dev/null +++ b/Modules/CippExtensions/Public/GitHub/New-GitHubRepo.ps1 @@ -0,0 +1,58 @@ +function New-GitHubRepo { + <# + .SYNOPSIS + Create a new GitHub repository + + .DESCRIPTION + This function creates a new GitHub repository + + .PARAMETER Name + The name of the repository + + .PARAMETER Description + The description of the repository + + .PARAMETER Private + Whether the repository is private + + .PARAMETER Type + + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param ( + [Parameter(Mandatory = $true)] + [string]$Name, + [string]$Description, + [switch]$Private, + [ValidateSet('User', 'Org')] + [string]$Type = 'User', + [string]$Org, + [string]$License = 'agpl-3.0' + ) + + $Body = @{ + name = $Name + description = $Description + private = $Private.IsPresent + license_template = $License + } + + if ($Type -eq 'Org') { + $Path = "orgs/$Org/repos" + $Owner = $Org + } else { + $Path = 'user/repos' + $Owner = (Invoke-GitHubApiRequest -Path 'user').login + } + + # Check if repo exists + try { + $Existing = Invoke-GitHubApiRequest -Path "repos/$Owner/$Name" + if ($Existing.id) { + return $Existing + } + } catch { } + if ($PSCmdlet.ShouldProcess("Create repository '$Name'")) { + Invoke-GitHubApiRequest -Path $Path -Method POST -Body $Body + } +} diff --git a/Modules/CippExtensions/Public/GitHub/Push-GitHubContent.ps1 b/Modules/CippExtensions/Public/GitHub/Push-GitHubContent.ps1 new file mode 100644 index 000000000000..ca7282fffa5e --- /dev/null +++ b/Modules/CippExtensions/Public/GitHub/Push-GitHubContent.ps1 @@ -0,0 +1,47 @@ +function Push-GitHubContent { + <# + .SYNOPSIS + Update file content in GitHub repository + .DESCRIPTION + Update file content in GitHub repository + .PARAMETER FullName + The full name of the repository (e.g. 'octocat/Hello-World') + .PARAMETER Path + The path to the file in the repository + .PARAMETER Branch + The branch to update the file in (default: 'main') + .PARAMETER Content + The new content of the file + .PARAMETER Message + The commit message + .EXAMPLE + Push-GitHubContent -FullName 'octocat/Hello-World' -Path 'README.md' -Content 'Hello, World!' -Message 'Update README.md' + #> + [CmdletBinding()] + param ( + [string]$FullName, + [string]$Path, + [string]$Branch = 'main', + [string]$Content, + [string]$Message + ) + + $ContentBase64 = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($Content)) + try { + $ContentSha = (Invoke-GitHubApiRequest -Path "repos/$($FullName)/contents/$($Path)?ref=$($Branch)").sha + } catch { + $ContentSha = $null + } + $Filename = Split-Path $Path -Leaf + + $Body = @{ + message = $Message ?? "Update $($Filename)" + content = $ContentBase64 + branch = $Branch + } + if ($ContentSha) { + $Body.sha = $ContentSha + } + + Invoke-GitHubApiRequest -Path "repos/$($FullName)/contents/$($Path)" -Method PUT -Body $Body +} diff --git a/Modules/CippExtensions/Public/GitHub/Search-GitHub.ps1 b/Modules/CippExtensions/Public/GitHub/Search-GitHub.ps1 new file mode 100644 index 000000000000..c630d524c149 --- /dev/null +++ b/Modules/CippExtensions/Public/GitHub/Search-GitHub.ps1 @@ -0,0 +1,53 @@ +function Search-GitHub { + [CmdletBinding()] + Param ( + [string[]]$Repository, + [string]$User, + [string]$Org, + [string]$Path, + [string[]]$SearchTerm, + [string]$Language, + [ValidateSet('code', 'commits', 'issues', 'users', 'repositories', 'topics', 'labels')] + [string]$Type = 'code' + ) + + $QueryParts = [System.Collections.Generic.List[string]]::new() + if ($SearchTerm) { + $SearchTermParts = [System.Collections.Generic.List[string]]::new() + foreach ($Term in $SearchTerm) { + $SearchTermParts.Add("`"$Term`"") + } + if (($SearchTermParts | Measure-Object).Count -gt 1) { + $QueryParts.Add(($SearchTermParts -join ' OR ')) + } else { + $QueryParts.Add($SearchTermParts[0]) + } + } + if ($Repository) { + $RepoParts = [System.Collections.Generic.List[string]]::new() + foreach ($Repo in $Repository) { + $RepoParts.Add("repo:$Repo") + } + if (($RepoParts | Measure-Object).Count -gt 1) { + $QueryParts.Add('(' + ($RepoParts -join ' OR ') + ')') + } else { + $QueryParts.Add($RepoParts[0]) + } + } + if ($User) { + $QueryParts.Add("user:$User") + } + if ($Org) { + $QueryParts.Add("org:$Org") + } + if ($Path) { + $QueryParts.Add("path:$Path") + } + if ($Language) { + $QueryParts.Add("language:$Language") + } + + $Query = $QueryParts -join ' ' + Write-Information "Query: $Query" + Invoke-GitHubApiRequest -Path "search/$($Type)?q=$($Query)" -Method GET +} diff --git a/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 b/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 new file mode 100644 index 000000000000..fc9968070e66 --- /dev/null +++ b/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 @@ -0,0 +1,23 @@ +function Get-GradientToken { + param( + $Configuration + ) + if ($Configuration.vendorKey) { + $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $partnerApiKey = (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name 'Gradient' -AsPlainText) + $authorizationToken = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("$($configuration.vendorKey):$($partnerApiKey)")) + + $headers = [hashtable]@{ + 'Accept' = 'application/json' + 'GRADIENT-TOKEN' = $authorizationToken + } + + try { + return [hashtable]$headers + } catch { + return $false + } + } else { + return $false + } +} diff --git a/Modules/CippExtensions/Public/Gradient/New-GradientAlert.ps1 b/Modules/CippExtensions/Public/Gradient/New-GradientAlert.ps1 new file mode 100644 index 000000000000..13bb0a3fdc04 --- /dev/null +++ b/Modules/CippExtensions/Public/Gradient/New-GradientAlert.ps1 @@ -0,0 +1,40 @@ +function New-GradientAlert { + [CmdletBinding()] + param ( + $title, + $description, + $client + ) + + $APINAME = 'GradientAlert' + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).Gradient + #creating accounts in Gradient + try { + $GradientToken = Get-GradientToken -Configuration $Configuration + $ExistingAccounts = (Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/organization/accounts' -Method GET -Headers $GradientToken) | Where-Object id -EQ $client + $NewAccounts = ConvertTo-Json -Depth 10 -InputObject @([PSCustomObject]@{ + name = $_.displayName + description = $_.defaultDomainName + id = $_.defaultDomainName + }) + if ($ExistingAccounts -eq $null) { + Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/organization/accounts' -Method POST -Headers $GradientToken -Body $NewAccounts -ContentType 'application/json' + } + #Send the alert + $body = @" + {"priority":1,"status":1,"title":"$title","description":"$description","alertId":"$(New-Guid)"} +"@ + $AlertId = Invoke-RestMethod -Uri "https://app.usegradient.com/api/vendor-api/alerting/$($client)" -Method POST -Headers $GradientToken -Body $body -ContentType 'application/json' + #check if the message is actually sent, if not, abort and log. check url: https://app.usegradient.com/api/vendor-api/alerting/debug/{messageId} + $AlertStatus = Invoke-RestMethod -Uri "https://app.usegradient.com/api/vendor-api/alerting/debug/$($AlertId.messageId)" -Method GET -Headers $GradientToken + if ($AlertStatus.status -eq 'failed') { + Write-LogMessage -API $APINAME -message "Failed to create ticket in Gradient API. Error: $($AlertStatus.errors)" -Sev 'Error' -tenant $client + } + + } catch { + Write-LogMessage -API $APINAME -message "Failed to create ticket in Gradient API. Error: $($_.Exception.Message)" -Sev 'Error' -tenant 'GradientAPI' + } + + +} diff --git a/Modules/CippExtensions/Public/Gradient/New-GradientServiceSyncRun.ps1 b/Modules/CippExtensions/Public/Gradient/New-GradientServiceSyncRun.ps1 new file mode 100644 index 000000000000..cb85b1b60c74 --- /dev/null +++ b/Modules/CippExtensions/Public/Gradient/New-GradientServiceSyncRun.ps1 @@ -0,0 +1,92 @@ +function New-GradientServiceSyncRun { + [CmdletBinding(SupportsShouldProcess = $true)] + param () + + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).Gradient + $Tenants = Get-Tenants + #creating accounts in Gradient + try { + $GradientToken = Get-GradientToken -Configuration $Configuration + $ExistingAccounts = (Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/organization/accounts' -Method GET -Headers $GradientToken) + $NewAccounts = $Tenants | Where-Object defaultDomainName -NotIn $ExistingAccounts.id | ForEach-Object { + [PSCustomObject]@{ + name = $_.displayName + description = $_.defaultDomainName + id = $_.defaultDomainName + } + } | ConvertTo-Json -Depth 10 + if ($NewAccounts) { Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/organization/accounts' -Method POST -Headers $GradientToken -Body $NewAccounts -ContentType 'application/json' } + #setting the integration to active + $ExistingIntegrations = (Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/organization' -Method GET -Headers $GradientToken) + if ($ExistingIntegrations.Status -ne 'active') { + $ActivateRequest = Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/organization/status/active' -Method PATCH -Headers $GradientToken + } + } catch { + Write-LogMessage -API $APINAME -message "Failed to create tenants in Gradient API. Error: $($_.Exception.Message)" -Sev 'Error' -tenant 'GradientAPI' + } + + + Set-Location (Get-Item $PSScriptRoot).Parent.FullName + $ConvertTable = Import-Csv ConversionTable.csv + $Table = Get-CIPPTable -TableName cachelicenses + $LicenseTable = Get-CIPPTable -TableName ExcludedLicenses + $ExcludedSkuList = Get-CIPPAzDataTableEntity @LicenseTable + + $RawGraphRequest = $Tenants | ForEach-Object -Parallel { + $domainName = $_.defaultDomainName + Import-Module '.\Modules\AzBobbyTables' + Import-Module '.\Modules\CIPPCore' + Write-Host "Doing $domainName" + try { + $Licrequest = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $_.defaultDomainName -ErrorAction Stop | Where-Object -Property skuId -NotIn $ExcludedSkuList.RowKey + [PSCustomObject]@{ + Tenant = $domainName + Licenses = $Licrequest + } + } catch { + [PSCustomObject]@{ + Tenant = $domainName + Licenses = @{ + skuid = "Could not connect to client: $($_.Exception.Message)" + skuPartNumber = 'Could not connect to client' + consumedUnits = 0 + prepaidUnits = { Enabled = 0 } + } + } + } + } + $LicenseTable = foreach ($singlereq in $RawGraphRequest) { + $skuid = $singlereq.Licenses + foreach ($sku in $skuid) { + try { + if ($sku.skuId -eq 'Could not connect to client') { continue } + $PrettyName = ($ConvertTable | Where-Object { $_.guid -eq $sku.skuid }).'Product_Display_Name' | Select-Object -Last 1 + if (!$PrettyName) { $PrettyName = $sku.skuPartNumber } + #Check if serviceID exists by SKUID in gradient + $ExistingService = (Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api' -Method GET -Headers $GradientToken).data.skus | Where-Object name -EQ $PrettyName + Write-Host "New service: $($ExistingService.name) ID: $($ExistingService.id)" + if (!$ExistingService) { + #Create service + $ServiceBody = [PSCustomObject]@{ + name = $PrettyName + description = $PrettyName + category = 'infrastructure' + subcategory = 'hosted email' + } | ConvertTo-Json -Depth 10 + $ExistingService = (Invoke-RestMethod -Uri 'https://app.usegradient.com/api/vendor-api/service' -Method POST -Headers $GradientToken -Body $ServiceBody -ContentType 'application/json').skus | Where-Object name -EQ $PrettyName + } + #Post the CountAvailable to the service + $ServiceBody = [PSCustomObject]@{ + accountId = $singlereq.Tenant + unitCount = $sku.prepaidUnits.enabled + } | ConvertTo-Json -Depth 10 + $Results = Invoke-RestMethod -Uri "https://app.usegradient.com/api/vendor-api/service/$($ExistingService.id)/count" -Method POST -Headers $GradientToken -Body $ServiceBody -ContentType 'application/json' + } catch { + Write-LogMessage -API $APINAME -message "Failed to create license in Gradient API. Error: $($_). $results" -Sev 'Error' -tenant $singlereq.tenant + + } + } + } + +} diff --git a/Modules/CippExtensions/Public/HIBP/Get-BreachInfo.ps1 b/Modules/CippExtensions/Public/HIBP/Get-BreachInfo.ps1 new file mode 100644 index 000000000000..f90f478b0e70 --- /dev/null +++ b/Modules/CippExtensions/Public/HIBP/Get-BreachInfo.ps1 @@ -0,0 +1,19 @@ +function Get-BreachInfo { + [CmdletBinding()] + param( + [Parameter()] + $TenantFilter, + [Parameter()]$Domain + + ) + if ($TenantFilter) { + $Data = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter | ForEach-Object { + Invoke-RestMethod -Uri "https://geoipdb.azurewebsites.net/api/Breach?func=domain&domain=$($_.id)" + } + return $Data + } else { + $data = Invoke-RestMethod -Uri "https://geoipdb.azurewebsites.net/api/Breach?func=domain&domain=$($domain)&format=breachlist" + return $Data + } + +} diff --git a/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 new file mode 100644 index 000000000000..365b387e09fc --- /dev/null +++ b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 @@ -0,0 +1,33 @@ +function Get-HIBPAuth { + $Var = 'Ext_HIBP' + $APIKey = Get-Item -Path "env:$Var" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Value + if ($APIKey) { + Write-Information 'Using cached API Key for HIBP' + $Secret = $APIKey + } else { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'HIBP' and RowKey eq 'HIBP'").APIKey + } else { + $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + try { + $Secret = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText -ErrorAction Stop + } catch { + $Secret = $null + } + + if ([string]::IsNullOrEmpty($Secret) -and $env:CIPP_HOSTED -eq 'true') { + $VaultName = 'hibp-kv' + $Secret = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText + } + } + Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue + } + + return @{ + 'User-Agent' = "CIPP-$($env:TenantID)" + 'Accept' = 'application/json' + 'api-version' = '3' + 'hibp-api-key' = $Secret + } +} diff --git a/Modules/CippExtensions/Public/HIBP/Get-HIBPConnectionTest.ps1 b/Modules/CippExtensions/Public/HIBP/Get-HIBPConnectionTest.ps1 new file mode 100644 index 000000000000..2cbf90eb7e8e --- /dev/null +++ b/Modules/CippExtensions/Public/HIBP/Get-HIBPConnectionTest.ps1 @@ -0,0 +1,8 @@ +function Get-HIBPConnectionTest { + $uri = 'https://haveibeenpwned.com/api/v3/subscription/status' + try { + Invoke-RestMethod -Uri $uri -Headers (Get-HIBPAuth) + } catch { + throw "Failed to connect to HIBP: $($_.Exception.Message)" + } +} diff --git a/Modules/CippExtensions/Public/HIBP/Get-HIBPRequest.ps1 b/Modules/CippExtensions/Public/HIBP/Get-HIBPRequest.ps1 new file mode 100644 index 000000000000..1de419c98064 --- /dev/null +++ b/Modules/CippExtensions/Public/HIBP/Get-HIBPRequest.ps1 @@ -0,0 +1,24 @@ +function Get-HIBPRequest { + [CmdletBinding()] + param( + [Parameter()] + $endpoint + ) + $uri = "https://haveibeenpwned.com/api/v3/$endpoint" + try { + return Invoke-RestMethod -Uri $uri -Headers (Get-HIBPAuth) + } catch { + if ($_.Exception.Response -and $_.Exception.Response.StatusCode -eq 404) { + return @() + } elseif ($_.Exception.Response -and $_.Exception.Response.StatusCode -eq 429) { + Write-Host 'Rate limited hit for hibp.' + return @{ + Wait = ($_.Exception.Response.headers | Where-Object -Property key -EQ 'Retry-After').value + 'rate-limit' = $true + } + } else { + throw "Failed to connect to HIBP: $($_.Exception.Message)" + } + } + throw "Failed to connect to HIBP after $maxRetries retries." +} diff --git a/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 b/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 new file mode 100644 index 000000000000..661e4bddb48c --- /dev/null +++ b/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 @@ -0,0 +1,47 @@ +function New-BreachTenantSearch { + [CmdletBinding()] + param ( + [Parameter()]$TenantFilter, + [Parameter()][switch]$Force + ) + + $Table = Get-CIPPTable -TableName UserBreaches + $LatestBreach = Get-BreachInfo -TenantFilter $TenantFilter | ForEach-Object { + $_ | Where-Object { $_ -and $_.email } + } | Group-Object -Property clientDomain + + $usersResults = foreach ($domain in $LatestBreach) { + $ExistingBreaches = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($domain.name)'" + if ($null -eq $domain.Group) { + Write-Host "No breaches found for domain $($domain.name)" + continue + } + $SumOfBreaches = $domain.Count + if ($ExistingBreaches.sum -eq $SumOfBreaches) { + if ($Force.IsPresent -eq $true) { + Write-Host "Forcing update for tenant $TenantFilter" + } else { + Write-Host "No new breaches found for tenant $TenantFilter" + continue + } + } + + @{ + RowKey = $domain.name + PartitionKey = $TenantFilter + breaches = "$($domain.Group | ConvertTo-Json -Depth 10 -Compress)" + sum = $SumOfBreaches + } + } + + #Add user breaches to table + if ($usersResults) { + try { + $null = Add-CIPPAzDataTableEntity @Table -Entity $usersResults -Force + return $LatestBreach.Group + } catch { + Write-Error "Failed to add breaches to table: $($_.Exception.Message)" + return $null + } + } +} diff --git a/Modules/CippExtensions/Public/Halo/Get-HaloMapping.ps1 b/Modules/CippExtensions/Public/Halo/Get-HaloMapping.ps1 new file mode 100644 index 000000000000..8f1b6d982f74 --- /dev/null +++ b/Modules/CippExtensions/Public/Halo/Get-HaloMapping.ps1 @@ -0,0 +1,75 @@ +function Get-HaloMapping { + [CmdletBinding()] + param ( + $CIPPMapping + ) + #Get available mappings + $Mappings = [pscustomobject]@{} + + # Migrate legacy mappings + $Filter = "PartitionKey eq 'Mapping'" + $MigrateRows = Get-CIPPAzDataTableEntity @CIPPMapping -Filter $Filter | ForEach-Object { + [PSCustomObject]@{ + PartitionKey = 'HaloMapping' + RowKey = $_.RowKey + IntegrationId = $_.HaloPSA + IntegrationName = $_.HaloPSAName + } + Remove-AzDataTableEntity -Force @CIPPMapping -Entity $_ | Out-Null + } + if (($MigrateRows | Measure-Object).Count -gt 0) { + Add-CIPPAzDataTableEntity @CIPPMapping -Entity $MigrateRows -Force + } + + $ExtensionMappings = Get-ExtensionMapping -Extension 'Halo' + + $Tenants = Get-Tenants -IncludeErrors + + $Mappings = foreach ($Mapping in $ExtensionMappings) { + $Tenant = $Tenants | Where-Object { $_.RowKey -eq $Mapping.RowKey } + if ($Tenant) { + [PSCustomObject]@{ + TenantId = $Tenant.customerId + Tenant = $Tenant.displayName + TenantDomain = $Tenant.defaultDomainName + IntegrationId = $Mapping.IntegrationId + IntegrationName = $Mapping.IntegrationName + } + } + } + $Table = Get-CIPPTable -TableName Extensionsconfig + try { + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ea stop).HaloPSA + + $Token = Get-HaloToken -configuration $Configuration + $i = 1 + $RawHaloClients = do { + $Result = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/Client?page_no=$i&page_size=999&pageinate=true" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } + $Result.clients | Select-Object * -ExcludeProperty logo + $i++ + $pagecount = [Math]::Ceiling($Result.record_count / 999) + } while ($i -le $pagecount) + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + + Write-LogMessage -Message "Could not get HaloPSA Clients, error: $Message " -Level Error -tenant 'CIPP' -API 'HaloMapping' + $RawHaloClients = @(@{name = "Could not get HaloPSA Clients, error: $Message"; id = '-1' }) + } + $HaloClients = $RawHaloClients | ForEach-Object { + [PSCustomObject]@{ + name = $_.name + value = "$($_.id)" + } + } + $MappingObj = [PSCustomObject]@{ + Companies = @($HaloClients) + Mappings = @($Mappings) + } + + return $MappingObj + +} diff --git a/Modules/CippExtensions/Public/Halo/Get-HaloTicketOutcome.ps1 b/Modules/CippExtensions/Public/Halo/Get-HaloTicketOutcome.ps1 new file mode 100644 index 000000000000..1ae15d4e4e5b --- /dev/null +++ b/Modules/CippExtensions/Public/Halo/Get-HaloTicketOutcome.ps1 @@ -0,0 +1,44 @@ +function Get-HaloTicketOutcome { + <# + .SYNOPSIS + Get Halo Ticket Outcome + .DESCRIPTION + Get Halo Ticket Outcome + .EXAMPLE + Get-HaloTicketOutcome + + #> + [CmdletBinding()] + param () + $Table = Get-CIPPTable -TableName Extensionsconfig + try { + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ea stop).HaloPSA + $Token = Get-HaloToken -configuration $Configuration + $TicketType = $Configuration.TicketType.value ?? $Configuration.TicketType + if ($TicketType) { + $WorkflowId = (Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/tickettype/$TicketType" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" }).workflow_id + $Workflow = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/workflow/$WorkflowId" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" } + $Outcomes = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/outcome" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" } + $Outcomes | Where-Object { $_.id -in $Workflow.steps.actions.action_id } | Sort-Object -Property buttonname + } + else { + # Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/outcome" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" } + @( + @{ + buttonname = 'Select and save a Ticket Type first to see available outcomes' + value = -1 + } + ) + } + } + catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } + else { + $_.Exception.message + } + @(@{name = "Could not get HaloPSA Outcomes, error: $Message"; id = '' }) + } +} + diff --git a/Modules/CippExtensions/Public/Halo/Get-HaloTicketType.ps1 b/Modules/CippExtensions/Public/Halo/Get-HaloTicketType.ps1 new file mode 100644 index 000000000000..6ed6d21e4054 --- /dev/null +++ b/Modules/CippExtensions/Public/Halo/Get-HaloTicketType.ps1 @@ -0,0 +1,28 @@ +function Get-HaloTicketType { + <# + .SYNOPSIS + Get Halo Ticket Type + .DESCRIPTION + Get Halo Ticket Type + .EXAMPLE + Get-HaloTicketType + + #> + [CmdletBinding()] + param () + $Table = Get-CIPPTable -TableName Extensionsconfig + try { + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ea stop).HaloPSA + $Token = Get-HaloToken -configuration $Configuration + + Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/TicketType?showall=true" -ContentType 'application/json' -Method GET -Headers @{Authorization = "Bearer $($Token.access_token)" } + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + @(@{name = "Could not get HaloPSA Ticket Types, error: $Message"; id = '' }) + } +} + diff --git a/Modules/CippExtensions/Public/Halo/Get-HaloToken.ps1 b/Modules/CippExtensions/Public/Halo/Get-HaloToken.ps1 new file mode 100644 index 000000000000..6ca2edaeefb7 --- /dev/null +++ b/Modules/CippExtensions/Public/Halo/Get-HaloToken.ps1 @@ -0,0 +1,21 @@ +function Get-HaloToken { + [CmdletBinding()] + param ( + $Configuration + ) + if (![string]::IsNullOrEmpty($Configuration.ClientID)) { + $Secret = Get-ExtensionAPIKey -Extension 'HaloPSA' + + $body = @{ + grant_type = 'client_credentials' + client_id = $Configuration.ClientID + client_secret = $Secret + scope = 'all' + } + if ($Configuration.Tenant -ne 'None') { $Tenant = "?tenant=$($Configuration.Tenant)" } + $token = Invoke-RestMethod -Uri "$($Configuration.AuthURL)/token$Tenant" -Method Post -Body $body -ContentType 'application/x-www-form-urlencoded' + return $token + } else { + throw 'No Halo configuration' + } +} diff --git a/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 b/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 new file mode 100644 index 000000000000..0249248c88ec --- /dev/null +++ b/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 @@ -0,0 +1,124 @@ +function New-HaloPSATicket { + [CmdletBinding(SupportsShouldProcess)] + param ( + $title, + $description, + $client + ) + #Get HaloPSA Token based on the config we have. + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).HaloPSA + $TicketTable = Get-CIPPTable -TableName 'PSATickets' + $token = Get-HaloToken -configuration $Configuration + # sha hash title + $TitleHash = Get-StringHash -String $title + + if ($Configuration.ConsolidateTickets) { + $ExistingTicket = Get-CIPPAzDataTableEntity @TicketTable -Filter "PartitionKey eq 'HaloPSA' and RowKey eq '$($client)-$($TitleHash)'" + if ($ExistingTicket) { + Write-Information "Ticket already exists in HaloPSA: $($ExistingTicket.TicketID)" + + $Ticket = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/Tickets/$($ExistingTicket.TicketID)?includedetails=true&includelastaction=false&nocache=undefined&includeusersassets=false&isdetailscreen=true" -ContentType 'application/json; charset=utf-8' -Method Get -Headers @{Authorization = "Bearer $($token.access_token)" } -SkipHttpErrorCheck + if ($Ticket.id) { + if (!$Ticket.hasbeenclosed) { + Write-Information 'Ticket is still open, adding new note' + $Object = [PSCustomObject]@{ + ticket_id = $ExistingTicket.TicketID + outcome_id = 7 + hiddenfromuser = $true + note_html = $description + } + + if ($Configuration.Outcome) { + $Outcome = $Configuration.Outcome.value ?? $Configuration.Outcome + $Object.outcome_id = $Outcome + } + + $body = ConvertTo-Json -Compress -Depth 10 -InputObject @($Object) + try { + if ($PSCmdlet.ShouldProcess('Add note to HaloPSA ticket', 'Add note')) { + $Action = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/actions" -ContentType 'application/json; charset=utf-8' -Method Post -Body $body -Headers @{Authorization = "Bearer $($token.access_token)" } + Write-Information "Note added to ticket in HaloPSA: $($ExistingTicket.TicketID)" + } + return "Note added to ticket in HaloPSA: $($ExistingTicket.TicketID)" + } + catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } + else { + $_.Exception.message + } + Write-LogMessage -message "Failed to add note to HaloPSA ticket: $Message" -API 'HaloPSATicket' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information "Failed to add note to HaloPSA ticket: $Message" + Write-Information "Body we tried to ship: $body" + return "Failed to add note to HaloPSA ticket: $Message" + } + } + } + else { + Write-Information 'Existing ticket could not be found. Creating a new ticket instead.' + } + } + } + + $Object = [PSCustomObject]@{ + files = $null + usertype = 1 + userlookup = @{ + id = -1 + lookupdisplay = 'Enter Details Manually' + } + client_id = ($client | Select-Object -Last 1) + _forcereassign = $true + site_id = $null + user_name = $null + reportedby = $null + summary = $title + details_html = $description + donotapplytemplateintheapi = $true + attachments = @() + _novalidate = $true + } + + if ($Configuration.TicketType) { + $TicketType = $Configuration.TicketType.value ?? $Configuration.TicketType + $object | Add-Member -MemberType NoteProperty -Name 'tickettype_id' -Value $TicketType -Force + } + #use the token to create a new ticket in HaloPSA + $body = ConvertTo-Json -Compress -Depth 10 -InputObject @($Object) + + Write-Information 'Sending ticket to HaloPSA' + Write-Information $body + try { + if ($PSCmdlet.ShouldProcess('Send ticket to HaloPSA', 'Create ticket')) { + $Ticket = Invoke-RestMethod -Uri "$($Configuration.ResourceURL)/Tickets" -ContentType 'application/json; charset=utf-8' -Method Post -Body $body -Headers @{Authorization = "Bearer $($token.access_token)" } + Write-Information "Ticket created in HaloPSA: $($Ticket.id)" + + if ($Configuration.ConsolidateTickets) { + $TicketObject = [PSCustomObject]@{ + PartitionKey = 'HaloPSA' + RowKey = "$($client)-$($TitleHash)" + Title = $title + ClientId = $client + TicketID = $Ticket.id + } + Add-CIPPAzDataTableEntity @TicketTable -Entity $TicketObject -Force + Write-Information 'Ticket added to consolidation table' + } + return "Ticket created in HaloPSA: $($Ticket.id)" + } + } + catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } + else { + $_.Exception.message + } + Write-LogMessage -message "Failed to send ticket to HaloPSA: $Message" -API 'HaloPSATicket' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information "Failed to send ticket to HaloPSA: $Message" + Write-Information "Body we tried to ship: $body" + return "Failed to send ticket to HaloPSA: $Message" + } +} diff --git a/Modules/CippExtensions/Public/Halo/Set-HaloMapping.ps1 b/Modules/CippExtensions/Public/Halo/Set-HaloMapping.ps1 new file mode 100644 index 000000000000..48d75df2af63 --- /dev/null +++ b/Modules/CippExtensions/Public/Halo/Set-HaloMapping.ps1 @@ -0,0 +1,27 @@ +function Set-HaloMapping { + [CmdletBinding()] + param ( + $CIPPMapping, + $APIName, + $Request + ) + Get-CIPPAzDataTableEntity @CIPPMapping -Filter "PartitionKey eq 'HaloMapping'" | ForEach-Object { + Remove-AzDataTableEntity -Force @CIPPMapping -Entity $_ + } + foreach ($Mapping in $Request.Body) { + if ($Mapping.TenantId) { + $AddObject = @{ + PartitionKey = 'HaloMapping' + RowKey = "$($mapping.TenantId)" + IntegrationId = "$($mapping.IntegrationId)" + IntegrationName = "$($mapping.IntegrationName)" + } + } + + Add-CIPPAzDataTableEntity @CIPPMapping -Entity $AddObject -Force + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Added mapping for $($mapping.name)." -Sev 'Info' + } + $Result = [pscustomobject]@{'Results' = 'Successfully edited mapping table.' } + + Return $Result +} diff --git a/Modules/CippExtensions/Public/Hudu/Connect-HuduAPI.ps1 b/Modules/CippExtensions/Public/Hudu/Connect-HuduAPI.ps1 new file mode 100644 index 000000000000..c704c3e7c559 --- /dev/null +++ b/Modules/CippExtensions/Public/Hudu/Connect-HuduAPI.ps1 @@ -0,0 +1,16 @@ +function Connect-HuduAPI { + [CmdletBinding()] + param ( + $Configuration + ) + + $APIKey = Get-ExtensionAPIKey -Extension 'Hudu' + + if ($Configuration.Hudu.CFEnabled -eq $true -and $Configuration.CFZTNA.Enabled -eq $true) { + $CFAPIKey = Get-ExtensionAPIKey -Extension 'CFZTNA' + New-HuduCustomHeaders -Headers @{'CF-Access-Client-Id' = $Configuration.CFZTNA.ClientId; 'CF-Access-Client-Secret' = "$CFAPIKey" } + Write-Information 'CF-Access-Client-Id and CF-Access-Client-Secret headers added to Hudu API request' + } + New-HuduBaseURL -BaseURL $Configuration.Hudu.BaseURL + New-HuduAPIKey -ApiKey $APIKey +} diff --git a/Modules/CippExtensions/Public/Hudu/Get-HuduFieldMapping.ps1 b/Modules/CippExtensions/Public/Hudu/Get-HuduFieldMapping.ps1 new file mode 100644 index 000000000000..a08834a7cbbe --- /dev/null +++ b/Modules/CippExtensions/Public/Hudu/Get-HuduFieldMapping.ps1 @@ -0,0 +1,76 @@ +function Get-HuduFieldMapping { + [CmdletBinding()] + param ( + $CIPPMapping + ) + + $Mappings = Get-ExtensionMapping -Extension 'HuduField' + + $CIPPFieldHeaders = @( + [PSCustomObject]@{ + Title = 'Hudu Asset Layouts' + FieldType = 'Layouts' + Description = 'Use the table below to map your Hudu Asset Layouts to the correct CIPP Data Type. A new Rich Text asset layout field will be created if it does not exist.' + } + ) + $CIPPFields = @( + [PSCustomObject]@{ + FieldName = 'Users' + FieldLabel = 'Asset Layout for M365 Users' + FieldType = 'Layouts' + } + [PSCustomObject]@{ + FieldName = 'Devices' + FieldLabel = 'Asset Layout for M365 Devices' + FieldType = 'Layouts' + } + ) + + $Table = Get-CIPPTable -TableName Extensionsconfig + try { + $Configuration = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ea stop + Connect-HuduAPI -configuration $Configuration + + try { + $AssetLayouts = Get-HuduAssetLayouts -ErrorAction Stop | Select-Object @{Name = 'FieldType' ; Expression = { 'Layouts' } }, @{Name = 'value'; Expression = { $_.id } }, name, fields + } catch { + $Message = $_.Exception.Message -replace "'" | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($Message) { + $Message = $Message.error + } else { + $Message = $_.Exception.Message + } + + Write-Warning "Could not get Hudu Asset Layouts, error: $Message" + Write-LogMessage -Message "Could not get Hudu Asset Layouts, error: $Message " -Level Error -tenant 'CIPP' -API 'HuduMapping' + $AssetLayouts = @(@{FieldType = 'Layouts'; name = "Could not get Hudu Asset Layouts, $Message"; value = -1 }) + } + } catch { + $Message = $_.Exception.Message -replace "'" | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($Message) { + $Message = $Message.error + } else { + $Message = $_.Exception.Message + } + + Write-Warning "Could not get Hudu Asset Layouts, error: $Message" + Write-LogMessage -Message "Could not get Hudu Asset Layouts, error: $Message " -Level Error -tenant 'CIPP' -API 'HuduMapping' + $AssetLayouts = @(@{FieldType = 'Layouts'; name = "Could not get Hudu Asset Layouts, $Message"; value = -1 }) + } + + $Unset = [PSCustomObject]@{ + name = '--- Do not synchronize ---' + value = $null + type = 'unset' + } + + $MappingObj = [PSCustomObject]@{ + CIPPFields = $CIPPFields + CIPPFieldHeaders = $CIPPFieldHeaders + IntegrationFields = @($Unset) + @($AssetLayouts) + Mappings = @($Mappings) + } + + return $MappingObj + +} diff --git a/Modules/CippExtensions/Public/Hudu/Get-HuduMapping.ps1 b/Modules/CippExtensions/Public/Hudu/Get-HuduMapping.ps1 new file mode 100644 index 000000000000..eed30b1d4147 --- /dev/null +++ b/Modules/CippExtensions/Public/Hudu/Get-HuduMapping.ps1 @@ -0,0 +1,54 @@ +function Get-HuduMapping { + [CmdletBinding()] + param ( + $CIPPMapping + ) + + $ExtensionMappings = Get-ExtensionMapping -Extension 'Hudu' + + $Tenants = Get-Tenants -IncludeErrors + + $Mappings = foreach ($Mapping in $ExtensionMappings) { + $Tenant = $Tenants | Where-Object { $_.RowKey -eq $Mapping.RowKey } + if ($Tenant) { + [PSCustomObject]@{ + TenantId = $Tenant.customerId + Tenant = $Tenant.displayName + TenantDomain = $Tenant.defaultDomainName + IntegrationId = $Mapping.IntegrationId + IntegrationName = $Mapping.IntegrationName + } + } + } + $Tenants = Get-Tenants -IncludeErrors + $Table = Get-CIPPTable -TableName Extensionsconfig + try { + $Configuration = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -ea stop + + Connect-HuduAPI -configuration $Configuration + $HuduCompanies = Get-HuduCompanies + + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + + Write-LogMessage -Message "Could not get Hudu Companies, error: $Message " -Level Error -tenant 'CIPP' -API 'HuduMapping' + $HuduCompanies = @(@{name = "Could not get Hudu Companies, error: $Message"; value = '-1' }) + } + $HuduCompanies = $HuduCompanies | ForEach-Object { + [PSCustomObject]@{ + name = $_.name + value = "$($_.id)" + } + } + $MappingObj = [PSCustomObject]@{ + Companies = @($HuduCompanies) + Mappings = @($Mappings) + } + + return $MappingObj + +} diff --git a/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 b/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 new file mode 100644 index 000000000000..19b1e8c13def --- /dev/null +++ b/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 @@ -0,0 +1,1081 @@ +function Invoke-HuduExtensionSync { + <# + .FUNCTIONALITY + Internal + #> + param( + $Configuration, + $TenantFilter + ) + try { + Connect-HuduAPI -configuration $Configuration + $Configuration = $Configuration.Hudu + $Tenant = Get-Tenants -TenantFilter $TenantFilter -IncludeErrors + $CompanyResult = [PSCustomObject]@{ + Name = $Tenant.displayName + Users = 0 + Devices = 0 + Errors = [System.Collections.Generic.List[string]]@() + Logs = [System.Collections.Generic.List[string]]@() + } + + $AssignedNameMap = Get-AssignedNameMap + $AssignedMap = Get-AssignedMap + + # Get mapping configuration + $MappingTable = Get-CIPPTable -TableName 'CippMapping' + $Mappings = Get-CIPPAzDataTableEntity @MappingTable -Filter "PartitionKey eq 'HuduMapping' or PartitionKey eq 'HuduFieldMapping'" + + $defaultdomain = $TenantFilter + $TenantMap = $Mappings | Where-Object { $_.RowKey -eq $Tenant.customerId } + + # Get Asset cache + $HuduAssetCache = Get-CippTable -tablename 'CacheHuduAssets' + + # Import license mapping + Set-Location (Get-Item $PSScriptRoot).Parent.Parent.Parent.Parent.FullName + $LicTable = Import-Csv ConversionTable.csv + + $CompanyResult.Logs.Add('Starting Hudu Extension Sync') + + # Get CIPP URL + $ConfigTable = Get-Cipptable -tablename 'Config' + $Config = Get-CippAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'InstanceProperties' and RowKey eq 'CIPPURL'" + $CIPPURL = 'https://{0}' -f $Config.Value + $EnableCIPP = $true + + # Get CIPP Extension Reporting Data (from new CippReportingDB) + # Include mailboxes if needed for Hudu sync + $ExtensionCache = Get-CippExtensionReportingData -TenantFilter $Tenant.defaultDomainName -IncludeMailboxes + $company_id = $TenantMap.IntegrationId + + # If tenant not found in mapping table, return error + if (!$TenantMap) { + return 'Tenant not found in mapping table' + } + + # Get Hudu Layout mappings + $PeopleLayoutId = $Mappings | Where-Object { $_.RowKey -eq 'Users' } | Select-Object -ExpandProperty IntegrationId + $DeviceLayoutId = $Mappings | Where-Object { $_.RowKey -eq 'Devices' } | Select-Object -ExpandProperty IntegrationId + + try { + if (![string]::IsNullOrEmpty($PeopleLayoutId)) { + # Add required fields to People Layout + $null = Add-HuduAssetLayoutField -AssetLayoutId $PeopleLayoutId -Label 'Microsoft 365' + $null = Add-HuduAssetLayoutField -AssetLayoutId $PeopleLayoutId -Label 'Email Address' -Position 1 -ShowInList $true -FieldType 'Text' + $CreateUsers = $Configuration.CreateMissingUsers + $PeopleLayout = Get-HuduAssetLayouts -Id $PeopleLayoutId + if ($PeopleLayout.id) { + $People = Get-HuduAssets -CompanyId $company_id -AssetLayoutId $PeopleLayout.id + } else { + $CreateUsers = $false + $People = @() + } + } else { + $CreateUsers = $false + $People = @() + } + } catch { + $CreateUsers = $false + $People = @() + $CompanyResult.Errors.add("Company: Unable to fetch People $_") + Write-Host "Hudu People - Error: $_" + } + + Write-Host "Configuration: $($Configuration | ConvertTo-Json)" + + try { + if (![string]::IsNullOrEmpty($DeviceLayoutId)) { + $null = Add-HuduAssetLayoutField -AssetLayoutId $DeviceLayoutId + $CreateDevices = $Configuration.CreateMissingDevices + $DesktopsLayout = Get-HuduAssetLayouts -Id $DeviceLayoutId + if ($DesktopsLayout.id) { + $HuduDesktopDevices = Get-HuduAssets -CompanyId $company_id -AssetLayoutId $DesktopsLayout.id + $HuduDevices = $HuduDesktopDevices + } else { + $CreateDevices = $false + $HuduDevices = @() + } + } else { + $CreateDevices = $false + $HuduDevices = @() + } + } catch { + $CreateDevices = $false + $HuduDevices = @() + $CompanyResult.Errors.add("Company: Unable to fetch Devices $_") + Write-Host "Hudu Devices - Error: $_" + } + + $importDomains = $Configuration.ImportDomains + $monitordomains = $Configuration.MonitorDomains + + # Defaults + $IntuneDesktopDeviceTypes = 'windowsRT,macMDM' -split ',' + $DefaultSerials = [System.Collections.Generic.List[string]]@('SystemSerialNumber', 'To Be Filled By O.E.M.', 'System Serial Number', '0123456789', '123456789', 'TobefilledbyO.E.M.') + + if ($Configuration.ExcludeSerials) { + $ExcludeSerials = $DefaultSerials.AddRange($Configuration.ExcludeSerials -split ',') + } else { + $ExcludeSerials = $DefaultSerials + } + + $HuduRelations = Get-HuduRelations + $Links = @( + @{ + Title = 'M365 Admin Portal' + URL = 'https://admin.cloud.microsoft?delegatedOrg={0}' -f $Tenant.initialDomainName + Icon = 'fas fa-cogs' + } + @{ + Title = 'Exchange Admin Portal' + URL = 'https://admin.cloud.microsoft/exchange?delegatedOrg={0}' -f $Tenant.initialDomainName + Icon = 'fas fa-mail-bulk' + } + @{ + Title = 'Entra Portal' + URL = 'https://entra.microsoft.com/{0}' -f $Tenant.defaultDomainName + Icon = 'fas fa-users-cog' + } + @{ + Title = 'Intune' + URL = 'https://intune.microsoft.com/{0}/' -f $Tenant.defaultDomainName + Icon = 'fas fa-laptop' + } + @{ + Title = 'Teams Portal' + URL = 'https://admin.teams.microsoft.com/?delegatedOrg={0}' -f $Tenant.defaultDomainName + Icon = 'fas fa-users' + } + @{ + Title = 'Azure Portal' + URL = 'https://portal.azure.com/{0}' -f $Tenant.defaultDomainName + Icon = 'fas fa-server' + } + ) + $FormattedLinks = foreach ($Link in $Links) { + Get-HuduLinkBlock @Link + } + + + $CustomerLinks = $FormattedLinks -join "`n" + + $Users = $ExtensionCache.Users + $licensedUsers = $Users | Where-Object { $null -ne $_.assignedLicenses.skuId } | Sort-Object userPrincipalName + $CompanyResult.users = ($licensedUsers | Measure-Object).count + $AllRoles = $ExtensionCache.AllRoles + + + $Roles = foreach ($Role in $AllRoles) { + # Members are now inline with each role object + $Members = $Role.members + [PSCustomObject]@{ + ID = $Role.id + DisplayName = $Role.displayName + Description = $Role.description + Members = $Members + ParsedMembers = $Members.displayName -join ', ' + } + } + + $pre = "
    +

    Assigned Roles

    +
    " + + $post = '
    ' + $RolesHtml = $Roles | Select-Object DisplayName, Description, ParsedMembers | ConvertTo-Html -PreContent $pre -PostContent $post -Fragment | ForEach-Object { $tmp = $_ -replace '<', '<'; $tmp -replace '>', '>'; } | Out-String + + $AdminUsers = (($Roles | Where-Object { $_.displayName -match 'Administrator' }).Members | Where-Object { $null -ne $_.displayName } | Select-Object @{N = 'Name'; E = { "$($_.displayName) - $($_.userPrincipalName)" } } -Unique).name -join '
    ' + + $Domains = $ExtensionCache.Domains + + $customerDomains = ($Domains | Where-Object { $_.isVerified -eq $True }).id -join ', ' | Out-String + + $detailstable = "
    +
    +

    Basic Info

    +
    +
    +
    +
    +

    Tenant Name

    +

    + $($Tenant.displayName) +

    +
    +
    +

    Tenant ID

    +

    + $($Tenant.customerId) +

    +
    +
    +

    Default Domain

    +

    + $defaultdomain +

    +
    +
    +

    Customer Domains

    +

    + $customerDomains +

    +
    +
    +

    Admin Users

    +

    + $AdminUsers +

    +
    +
    +

    Last Updated

    +

    + $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') +

    +
    +
    +
    +
    +" + $Licenses = $ExtensionCache.Licenses + if ($Licenses) { + $pre = "
    +

    Current Licenses

    +
    " + + $post = '
    ' + + $licenseOut = $Licenses | Where-Object { $_.PrepaidUnits.Enabled -gt 0 } | Select-Object @{N = 'License Name'; E = { Convert-SKUname -skuName $_.SkuPartNumber -ConvertTable $LicTable } }, @{N = 'Active'; E = { $_.PrepaidUnits.Enabled } }, @{N = 'Consumed'; E = { $_.ConsumedUnits } }, @{N = 'Unused'; E = { $_.PrepaidUnits.Enabled - $_.ConsumedUnits } } + $licenseHTML = $licenseOut | ConvertTo-Html -PreContent $pre -PostContent $post -Fragment | Out-String + } + + $devices = $ExtensionCache.Devices + $CompanyResult.Devices = ($Devices | Measure-Object).count + + $DeviceCompliancePolicies = $ExtensionCache.DeviceCompliancePolicies + + $DeviceComplianceDetails = foreach ($Policy in $DeviceCompliancePolicies) { + # Device statuses are cached per policy with new naming: IntuneDeviceCompliancePolicies_{policyId} + $DeviceStatusItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type "IntuneDeviceCompliancePolicies_$($Policy.id)" | Where-Object { $_.RowKey -notlike '*-Count' } + $DeviceStatuses = if ($DeviceStatusItems) { $DeviceStatusItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + [pscustomobject]@{ + ID = $Policy.id + DisplayName = $Policy.displayName + DeviceStatuses = @($DeviceStatuses) + } + } + + $AllGroups = $ExtensionCache.Groups + + $Groups = foreach ($Group in $AllGroups) { + # Members are now inline with each group object + $Members = $Group.members + [pscustomobject]@{ + ID = $Group.id + DisplayName = $Group.displayName + Members = @($Members) + } + } + + $AllConditionalAccessPolicies = $ExtensionCache.ConditionalAccess + + $ConditionalAccessMembers = foreach ($CAPolicy in $AllConditionalAccessPolicies) { + [System.Collections.Generic.List[PSCustomObject]]$CAMembers = @() + + if ($CAPolicy.conditions.users.includeUsers -contains 'All') { + $Users | ForEach-Object { $null = $CAMembers.add($_.id) } + } else { + $CAPolicy.conditions.users.includeUsers | ForEach-Object { $null = $CAMembers.add($_) } + } + + foreach ($CAIGroup in $CAPolicy.conditions.users.includeGroups) { + foreach ($Member in ($Groups | Where-Object { $_.id -eq $CAIGroup }).Members) { + $null = $CAMembers.add($Member.id) + } + } + + foreach ($CAIRole in $CAPolicy.conditions.users.includeRoles) { + foreach ($Member in ($Roles | Where-Object { $_.id -eq $CAIRole }).Members) { + $null = $CAMembers.add($Member.id) + } + } + + $CAMembers = $CAMembers | Select-Object -Unique + + if ($CAMembers) { + $CAPolicy.conditions.users.excludeUsers | ForEach-Object { $null = $CAMembers.remove($_) } + + foreach ($CAEGroup in $CAPolicy.conditions.users.excludeGroups) { + foreach ($Member in ($Groups | Where-Object { $_.id -eq $CAEGroup }).Members) { + $null = $CAMembers.remove($Member.id) + } + } + + foreach ($CAIRole in $CAPolicy.conditions.users.excludeRoles) { + foreach ($Member in ($Roles | Where-Object { $_.id -eq $CAERole }).Members) { + $null = $CAMembers.remove($Member.id) + } + } + } + + # Enhanced policy information extraction based on API structure + [pscustomobject]@{ + ID = $CAPolicy.id + DisplayName = $CAPolicy.displayName + State = $CAPolicy.state + CreatedDateTime = $CAPolicy.createdDateTime + ModifiedDateTime = $CAPolicy.modifiedDateTime + Members = @($CAMembers) + + # Applications conditions + IncludeApplications = if ($CAPolicy.conditions.applications.includeApplications) { + $CAPolicy.conditions.applications.includeApplications -join ', ' + } else { 'None' } + ExcludeApplications = if ($CAPolicy.conditions.applications.excludeApplications) { + $CAPolicy.conditions.applications.excludeApplications -join ', ' + } else { 'None' } + + # Location conditions + IncludeLocations = if ($CAPolicy.conditions.locations.includeLocations) { + $CAPolicy.conditions.locations.includeLocations -join ', ' + } else { 'None' } + ExcludeLocations = if ($CAPolicy.conditions.locations.excludeLocations) { + $CAPolicy.conditions.locations.excludeLocations -join ', ' + } else { 'None' } + + # Platform conditions + Platforms = if ($CAPolicy.conditions.platforms -and $CAPolicy.conditions.platforms.includePlatforms) { + $CAPolicy.conditions.platforms.includePlatforms -join ', ' + } else { 'All' } + + # Client app types + ClientAppTypes = if ($CAPolicy.conditions.clientAppTypes) { + $CAPolicy.conditions.clientAppTypes -join ', ' + } else { 'All' } + + # Grant controls + GrantOperator = $CAPolicy.grantControls.operator + BuiltInControls = if ($CAPolicy.grantControls.builtInControls) { + $CAPolicy.grantControls.builtInControls -join ', ' + } else { 'None' } + AuthenticationStrength = if ($CAPolicy.grantControls.authenticationStrength) { + $CAPolicy.grantControls.authenticationStrength.displayName + } else { 'None' } + + # Session controls + SignInFrequency = if ($CAPolicy.sessionControls -and $CAPolicy.sessionControls.signInFrequency -and $CAPolicy.sessionControls.signInFrequency.isEnabled) { + "$($CAPolicy.sessionControls.signInFrequency.value) $($CAPolicy.sessionControls.signInFrequency.type)" + } else { 'Not configured' } + + PersistentBrowser = if ($CAPolicy.sessionControls -and $CAPolicy.sessionControls.persistentBrowser) { + $CAPolicy.sessionControls.persistentBrowser.mode + } else { 'Not configured' } + + # Risk levels + UserRiskLevels = if ($CAPolicy.conditions.userRiskLevels) { + $CAPolicy.conditions.userRiskLevels -join ', ' + } else { 'None' } + SignInRiskLevels = if ($CAPolicy.conditions.signInRiskLevels) { + $CAPolicy.conditions.signInRiskLevels -join ', ' + } else { 'None' } + } + } + + if ($ExtensionCache.OneDriveUsage) { + $OneDriveDetails = $ExtensionCache.OneDriveUsage + } else { + $CompanyResult.Errors.add("Company: Unable to fetch One Drive Details $_") + $OneDriveDetails = $null + } + + + + if ($ExtensionCache.CASMailbox) { + $CASFull = $ExtensionCache.CASMailbox + } else { + $CompanyResult.Errors.add('Company: Unable to fetch CAS Mailbox Details') + $CASFull = $null + + } + + + + if ($ExtensionCache.Mailboxes) { + $MailboxDetailedFull = $ExtensionCache.Mailboxes + } else { + $CompanyResult.Errors.add('Company: Unable to fetch Mailbox Details') + $MailboxDetailedFull = $null + } + + + if ($ExtensionCache.MailboxUsage) { + $MailboxStatsFull = $ExtensionCache.MailboxUsage + } else { + $MailboxStatsFull = $null + $CompanyResult.Errors.add('Company: Unable to fetch Mailbox Statistic Details') + } + + $Permissions = $ExtensionCache.MailboxPermissions + if ($licensedUsers) { + $pre = "
    +

    Licensed Users

    +
    " + + $post = '
    ' + $CompanyResult.Logs.Add('Starting User Processing') + $OutputUsers = foreach ($user in $licensedUsers) { + try { + $HuduUser = $null + $UserGroups = foreach ($Group in $Groups) { + if ($User.id -in $Group.Members.id) { + $FoundGroup = $AllGroups | Where-Object { $_.id -eq $Group.id } + [PSCustomObject]@{ + 'Display Name' = $FoundGroup.displayName + 'Mail Enabled' = $FoundGroup.mailEnabled + 'Mail' = $FoundGroup.mail + 'Security Group' = $FoundGroup.securityEnabled + 'Group Types' = $FoundGroup.groupTypes -join ',' + } + } + } + + $UserPolicies = foreach ($cap in $ConditionalAccessMembers) { + if ($User.id -in $Cap.Members) { + [PSCustomObject]@{ + displayName = $cap.displayName + state = $cap.State + authenticationStrength = $cap.AuthenticationStrength + clientAppTypes = $cap.ClientAppTypes + includeApplications = $cap.IncludeApplications + includeLocations = $cap.IncludeLocations + signInFrequency = $cap.SignInFrequency + userRiskLevels = $cap.UserRiskLevels + signInRiskLevels = $cap.SignInRiskLevels + } + } + } + + $PermsRequest = '' + $StatsRequest = '' + $MailboxDetailedRequest = '' + $CASRequest = '' + + $CASRequest = $CASFull | Where-Object { $_.ExternalDirectoryObjectId -eq $User.id } + $MailboxDetailedRequest = $MailboxDetailedFull | Where-Object { $_.Id -eq $User.id } + $StatsRequest = $MailboxStatsFull | Where-Object { $_.'userPrincipalName' -eq $User.userPrincipalName } + + $PermsRequest = $Permissions | Where-Object { $_.Identity -eq $User.id } + + $ParsedPerms = foreach ($Perm in $PermsRequest) { + if ($Perm.User -ne 'NT AUTHORITY\SELF') { + [pscustomobject]@{ + User = $Perm.User + AccessRights = $Perm.PermissionList.AccessRights -join ', ' + } + } + } + + try { + $TotalItemSize = [math]::Round($StatsRequest.storageUsedInBytes / 1Gb, 2) + } catch { + $TotalItemSize = 0 + } + + $UserMailSettings = [pscustomobject]@{ + ForwardAndDeliver = $MailboxDetailedRequest.DeliverToMailboxAndForward + ForwardingAddress = $MailboxDetailedRequest.ForwardingAddress + ' ' + $MailboxDetailedRequest.ForwardingSmtpAddress + LitiationHold = $MailboxDetailedRequest.LitigationHoldEnabled + HiddenFromAddressLists = $MailboxDetailedRequest.HiddenFromAddressListsEnabled + EWSEnabled = $CASRequest.EwsEnabled + MailboxMAPIEnabled = $CASRequest.MAPIEnabled + MailboxOWAEnabled = $CASRequest.OWAEnabled + MailboxImapEnabled = $CASRequest.ImapEnabled + MailboxPopEnabled = $CASRequest.PopEnabled + MailboxActiveSyncEnabled = $CASRequest.ActiveSyncEnabled + Permissions = $ParsedPerms + ProhibitSendQuota = $StatsRequest.prohibitSendQuotaInBytes + ProhibitSendReceiveQuota = $StatsRequest.prohibitSendReceiveQuotaInBytes + ItemCount = [math]::Round($StatsRequest.'itemCount', 2) + TotalItemSize = $StatsRequest.totalItemSize + StorageUsedInBytes = $StatsRequest.storageUsedInBytes + } + + $userDevices = ($devices | Where-Object { $_.userPrincipalName -eq $user.userPrincipalName } | Select-Object @{N = 'Name'; E = { "$($_.deviceName) ($($_.operatingSystem))" } }).name -join '
    ' + + $UserDevicesDetailsRaw = $devices | Where-Object { $_.userPrincipalName -eq $user.userPrincipalName } | Select-Object @{N = 'Name'; E = { "
    $($_.deviceName)" } }, @{n = 'Owner'; e = { $_.managedDeviceOwnerType } }, ` + @{n = 'Enrolled'; e = { $_.enrolledDateTime } }, ` + @{n = 'Last Sync'; e = { $_.lastSyncDateTime } }, ` + @{n = 'OS'; e = { $_.operatingSystem } }, ` + @{n = 'OS Version'; e = { $_.osVersion } }, ` + @{n = 'State'; e = { $_.complianceState } }, ` + @{n = 'Model'; e = { $_.model } }, ` + @{n = 'Manufacturer'; e = { $_.manufacturer } }, + deviceName, + @{n = 'url'; e = { "https://intune.microsoft.com/$($Tenant.defaultDomainName)/#blade/Microsoft_Intune_Devices/DeviceSettingsBlade/overview/mdmDeviceId/$($_.id)" } } + + $aliases = (($user.proxyAddresses | Where-Object { $_ -cnotmatch 'SMTP' -and $_ -notmatch '.onmicrosoft.com' }) -replace 'SMTP:', ' ') -join ', ' + + $userLicenses = ($user.AssignedLicenses.SkuID | ForEach-Object { + $UserLic = $_ + $SkuPartNumber = ($Licenses | Where-Object { $_.SkuId -eq $UserLic }).SkuPartNumber + $DisplayName = Convert-SKUname -skuName $SkuPartNumber -ConvertTable $LicTable + if (!$DisplayName) { + $DisplayName = $SkuPartNumber + } + $DisplayName + }) -join ', ' + + $UserOneDriveDetails = $OneDriveDetails | Where-Object { $_.ownerPrincipalName -eq $user.userPrincipalName } + + + + [System.Collections.Generic.List[PSCustomObject]]$OneDriveFormatted = @() + if ($UserOneDriveDetails) { + try { + $OneDriveUsePercent = [math]::Round([float](($UserOneDriveDetails.storageUsedInBytes / $UserOneDriveDetails.storageAllocatedInBytes) * 100), 2) + $StorageUsed = [math]::Round($UserOneDriveDetails.storageUsedInBytes / 1024 / 1024 / 1024, 2) + $StorageAllocated = [math]::Round($UserOneDriveDetails.storageAllocatedInBytes / 1024 / 1024 / 1024, 2) + } catch { + $OneDriveUsePercent = 100 + $StorageUsed = 0 + $StorageAllocated = 0 + } + + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'Owner Principal Name' -Value "$($UserOneDriveDetails.ownerPrincipalName)")) + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'One Drive URL' -Value "$($UserOneDriveDetails.siteUrl)")) + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'Is Deleted' -Value "$($UserOneDriveDetails.isDeleted)")) + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'Last Activity Date' -Value "$($UserOneDriveDetails.lastActivityDate)")) + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'File Count' -Value "$($UserOneDriveDetails.fileCount)")) + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'Active File Count' -Value "$($UserOneDriveDetails.activeFileCount)")) + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'Storage Used (Byte)' -Value "$($UserOneDriveDetails.storageUsedInBytes)")) + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'Storage Allocated (Byte)' -Value "$($UserOneDriveDetails.storageAllocatedInBytes)")) + $OneDriveUserUsage = @" +
    +
    +
    +
    +
    $($StorageUsed) GB used, $OneDriveUsePercent% of $($StorageAllocated) GB
    +
    +"@ + + $OneDriveFormatted.add($(Get-HuduFormattedField -Title 'One Drive Usage' -Value $OneDriveUserUsage)) + } + + [System.Collections.Generic.List[PSCustomObject]]$UserMailSettingsFormatted = @() + [System.Collections.Generic.List[PSCustomObject]]$UserMailboxDetailsFormatted = @() + if ($UserMailSettings) { + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'Forward and Deliver' -Value "$($UserMailSettings.ForwardAndDeliver)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'Forwarding Address' -Value "$($UserMailSettings.ForwardingAddress)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'Litiation Hold' -Value "$($UserMailSettings.LitiationHold)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'Hidden From Address Lists' -Value "$($UserMailSettings.HiddenFromAddressLists)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'EWS Enabled' -Value "$($UserMailSettings.EWSEnabled)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'MAPI Enabled' -Value "$($UserMailSettings.MailboxMAPIEnabled)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'OWA Enabled' -Value "$($UserMailSettings.MailboxOWAEnabled)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'IMAP Enabled' -Value "$($UserMailSettings.MailboxImapEnabled)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'POP Enabled' -Value "$($UserMailSettings.MailboxPopEnabled)")) + $UserMailSettingsFormatted.add($(Get-HuduFormattedField -Title 'Active Sync Enabled' -Value "$($UserMailSettings.MailboxActiveSyncEnabled)")) + + + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Permissions' -Value "$($UserMailSettings.Permissions | ConvertTo-Html -Fragment | Out-String)")) + + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Item Count' -Value "$($UserMailSettings.ItemCount)")) + + try { + $UserMailboxUsePercent = [math]::Round([float](($UserMailSettings.StorageUsedInBytes / $UserMailSettings.prohibitSendReceiveQuota) * 100), 2) + $MailboxStorageUsed = [math]::Round($UserMailSettings.StorageUsedInBytes / 1024 / 1024 / 1024, 2) + $MailboxStorageAllocated = [math]::Round($UserMailSettings.prohibitSendReceiveQuota / 1024 / 1024 / 1024, 2) + $MailboxProhibitSendQuota = [math]::Round($UserMailSettings.ProhibitSendQuota / 1024 / 1024 / 1024, 2) + } catch { + $UserMailboxUsePercent = 100 + $MailboxStorageUsed = 0 + $MailboxStorageAllocated = 0 + } + + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Prohibit Send Quota' -Value "$($MailboxProhibitSendQuota) GB")) + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Prohibit Send Receive Quota' -Value "$($MailboxStorageAllocated) GB")) + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Total Mailbox Size' -Value "$($MailboxStorageUsed) GB")) + + $UserMailboxUsage = @" +
    +
    +
    +
    +
    $MailboxStorageUsed GB used, $UserMailboxUsePercent% of $MailboxStorageAllocated GB
    +
    +"@ + $UserMailboxDetailsFormatted.add($(Get-HuduFormattedField -Title 'Mailbox Usage' -Value $UserMailboxUsage)) + + } + + # Enhanced Conditional Access Policy formatting + if ($UserPolicies) { + $UserPoliciesFormatted = $UserPolicies | ConvertTo-Html -Fragment -Property @( + @{ Name = 'Policy Name'; Expression = { $_.displayName } }, + @{ Name = 'State'; Expression = { $_.state } }, + @{ Name = 'MFA Requirement'; Expression = { $_.authenticationStrength } }, + @{ Name = 'Client Apps'; Expression = { $_.clientAppTypes } }, + @{ Name = 'Sign-in Frequency'; Expression = { $_.signInFrequency } }, + @{ Name = 'User Risk'; Expression = { $_.userRiskLevels } }, + @{ Name = 'Sign-in Risk'; Expression = { $_.signInRiskLevels } } + ) | Out-String + } else { + $UserPoliciesFormatted = '

    No Conditional Access policies assigned to this user.

    ' + } + + [System.Collections.Generic.List[PSCustomObject]]$UserOverviewFormatted = @() + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'User Name' -Value "$($User.displayName)")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'User Principal Name' -Value "$($User.userPrincipalName)")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'User ID' -Value "$($User.ID)")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'User Enabled' -Value "$($User.accountEnabled)")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'Job Title' -Value "$($User.jobTitle)")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'Mobile Phone' -Value "$($User.mobilePhone)")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'Business Phones' -Value "$($User.businessPhones -join ', ')")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'Office Location' -Value "$($User.officeLocation)")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'Aliases' -Value "$aliases")) + $UserOverviewFormatted.add($(Get-HuduFormattedField -Title 'Licenses' -Value "$($userLicenses)")) + + $AssignedPlans = $User.assignedplans | Where-Object { $_.capabilityStatus -eq 'Enabled' } | Select-Object @{n = 'Assigned'; e = { $_.assignedDateTime } }, @{n = 'Service'; e = { $_.service } } -Unique + [System.Collections.Generic.List[PSCustomObject]]$AssignedPlansFormatted = @() + foreach ($AssignedPlan in $AssignedPlans) { + if ($AssignedPlan.service -in ($AssignedMap | Get-Member -MemberType NoteProperty).name) { + $CSSClass = $AssignedMap."$($AssignedPlan.service)" + $PlanDisplayName = $AssignedNameMap."$($AssignedPlan.service)" + $ParsedDate = Get-Date($AssignedPlan.Assigned) -Format 'yyyy-MM-dd HH:mm:ss' + $AssignedPlansFormatted.add("
    $PlanDisplayNameAssigned $($ParsedDate)
    ") + } + } + $AssignedPlansBlock = "
    $($AssignedPlansFormatted -join '')
    " + + if ($UserMailSettingsFormatted) { + $UserMailSettingsBlock = Get-HuduFormattedBlock -Heading 'Mailbox Settings' -Body ($UserMailSettingsFormatted -join '') + } else { + $UserMailSettingsBlock = $null + } + + if ($UserMailboxDetailsFormatted) { + $UserMailDetailsBlock = Get-HuduFormattedBlock -Heading 'Mailbox Details' -Body ($UserMailboxDetailsFormatted -join '') + } else { + $UserMailDetailsBlock = $null + } + + if ($UserGroups) { + $UserGroupsBlock = Get-HuduFormattedBlock -Heading 'User Groups' -Body $($UserGroups | ConvertTo-Html -Fragment -As Table | Out-String) + } else { + $UserGroupsBlock = $null + } + + if ($UserPoliciesFormatted) { + $UserPoliciesBlock = Get-HuduFormattedBlock -Heading 'Assigned Conditional Access Policies' -Body $UserPoliciesFormatted + } else { + $UserPoliciesBlock = $null + } + + if ($OneDriveFormatted) { + $OneDriveBlock = Get-HuduFormattedBlock -Heading 'One Drive Details' -Body ($OneDriveFormatted -join '') + } else { + $OneDriveBlock = $null + } + + if ($UserOverviewFormatted) { + $UserOverviewBlock = Get-HuduFormattedBlock -Heading 'User Details' -Body $UserOverviewFormatted + } else { + $UserOverviewBlock = $null + } + + if ($UserDevicesDetailsRaw) { + $UserDevicesDetailsBlock = Get-HuduFormattedBlock -Heading 'Intune Devices' -Body $($UserDevicesDetailsRaw | Select-Object -ExcludeProperty deviceName, url | ConvertTo-Html -Fragment | ForEach-Object { $tmp = $_ -replace '<', '<'; $tmp -replace '>', '>'; } | Out-String) + } else { + $UserDevicesDetailsBlock = $null + } + + $HuduUser = $People | Where-Object { ($_.fields.label -eq 'Email Address' -and $_.fields.value -eq $user.userPrincipalName) -or $_.primary_mail -eq $user.userPrincipalName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.communicationItems.communicationType -eq 'Email' -and $_.cards.data.communicationItems.value -eq $user.userPrincipalName) } + + [System.Collections.Generic.List[PSCustomObject]]$CIPPLinksFormatted = @() + if ($EnableCIPP) { + $CIPPLinksFormatted.add((Get-HuduLinkBlock -URL "$($CIPPURL)/identity/administration/users/user?tenantFilter=$($Tenant.defaultDomainName)&userId=$($User.id)" -Icon 'far fa-eye' -Title 'CIPP - View User')) + $CIPPLinksFormatted.add((Get-HuduLinkBlock -URL "$($CIPPURL)/identity/administration/users/user/edit?tenantFilter=$($Tenant.defaultDomainName)&userId=$($User.id)" -Icon 'fas fa-user-cog' -Title 'CIPP - Edit User')) + $CIPPLinksFormatted.add((Get-HuduLinkBlock -URL "$($CIPPURL)/identity/administration/users/user/bec?tenantFilter=$($Tenant.defaultDomainName)&userId=$($User.id))" -Icon 'fas fa-user-secret' -Title 'CIPP - BEC Tool')) + } + + [System.Collections.Generic.List[PSCustomObject]]$UserLinksFormatted = @() + $UserLinksFormatted.add((Get-HuduLinkBlock -URL "https://entra.microsoft.com/$($Tenant.defaultDomainName)/#blade/Microsoft_AAD_IAM/UserDetailsMenuBlade/Profile/userId/$($User.id)" -Icon 'fas fa-users-cog' -Title 'Entra ID')) + $UserLinksFormatted.add((Get-HuduLinkBlock -URL "https://entra.microsoft.com/$($Tenant.defaultDomainName)/#blade/Microsoft_AAD_IAM/UserDetailsMenuBlade/SignIns/userId/$($User.id)" -Icon 'fas fa-history' -Title 'Sign Ins')) + $UserLinksFormatted.add((Get-HuduLinkBlock -URL "https://admin.teams.microsoft.com/users/$($User.id)/account?delegatedOrg=$($Tenant.defaultDomainName)" -Icon 'fas fa-users' -Title 'Teams Admin')) + $UserLinksFormatted.add((Get-HuduLinkBlock -URL "https://intune.microsoft.com/$($Tenant.defaultDomainName)/#blade/Microsoft_AAD_IAM/UserDetailsMenuBlade/Profile/userId/$($User.ID)" -Icon 'fas fa-laptop' -Title 'Intune (User)')) + $UserLinksFormatted.add((Get-HuduLinkBlock -URL "https://intune.microsoft.com/$($Tenant.defaultDomainName)/#blade/Microsoft_AAD_IAM/UserDetailsMenuBlade/Devices/userId/$($User.ID)" -Icon 'fas fa-laptop' -Title 'Intune (Devices)')) + + if ($HuduUser) { + $HaloCard = $HuduUser.cards | Where-Object { $_.integrator_name -eq 'halo' } + if ($HaloCard) { + $UserLinksFormatted.add((Get-HuduLinkBlock -URL "$($PSAUserUrl)$($HaloCard.sync_id)" -Icon 'far fa-id-card' -Title 'Halo PSA')) + } + } + + $UserLinksBlock = "
    Management Links
    $($UserLinksFormatted -join '')$($CIPPLinksFormatted -join '')
    " + + $UserBody = "
    $AssignedPlansBlock
    $UserLinksBlock
    $($UserOverviewBlock)$($UserMailDetailsBlock)$($OneDriveBlock)$($UserMailSettingsBlock)$($UserPoliciesBlock)
    $($UserDevicesDetailsBlock)
    $($UserGroupsBlock)
    " + + if (![string]::IsNullOrEmpty($PeopleLayoutId)) { + $UserAssetFields = @{ + microsoft_365 = $UserBody + email_address = $user.userPrincipalName + } + $NewHash = Get-StringHash -String $UserBody + $HuduUserCount = ($HuduUser | Measure-Object).Count + + if ($HuduUserCount -eq 1) { + $ExistingAsset = Get-CIPPAzDataTableEntity @HuduAssetCache -Filter "PartitionKey eq 'HuduUser' and CompanyId eq '$company_id' and RowKey eq '$($HuduUser.id)'" + $ExistingHash = $ExistingAsset.Hash + + if (!$ExistingAsset -or $ExistingHash -ne $NewHash) { + $CompanyResult.Logs.Add("Updating $($HuduUser.name) in Hudu") + $null = Set-HuduAsset -asset_id $HuduUser.id -Name $HuduUser.name -company_id $company_id -asset_layout_id $PeopleLayout.id -Fields $UserAssetFields + $AssetCache = [PSCustomObject]@{ + PartitionKey = 'HuduUser' + RowKey = [string]$HuduUser.id + CompanyId = [string]$company_id + Hash = [string]$NewHash + } + Add-CIPPAzDataTableEntity @HuduAssetCache -Entity $AssetCache -Force + } + + } elseif ($HuduUserCount -eq 0) { + if ($CreateUsers -eq $true) { + $CompanyResult.Logs.Add("Creating $($User.displayName) in Hudu") + $CreateHuduUser = (New-HuduAsset -Name $User.displayName -company_id $company_id -asset_layout_id $PeopleLayout.id -Fields $UserAssetFields).asset + if (!$CreateHuduUser) { + $CompanyResult.Errors.add("User $($User.userPrincipalName): Unable to create user in Hudu. Check the User asset fields for 'Email Address'") + } else { + $AssetCache = [PSCustomObject]@{ + PartitionKey = 'HuduUser' + RowKey = [string]$CreateHuduUser.id + CompanyId = [string]$company_id + Hash = [string]$NewHash + } + Add-CIPPAzDataTableEntity @HuduAssetCache -Entity $AssetCache -Force + } + } + } else { + $CompanyResult.Errors.add("User $($User.userPrincipalName): Multiple Users Matched to email address in Hudu: ($($HuduUser.name -join ', ') - $($($HuduUser.id -join ', '))) $_") + } + } + + $UserLink = "$($user.displayName)" + + [PSCustomObject]@{ + 'Display Name' = $UserLink + 'Addresses' = "$($user.userPrincipalName)
    $aliases" + 'EPM Devices' = $userDevices + 'Assigned Licenses' = $userLicenses + 'Options' = "Azure AD | M365 Admin" + } + } catch { + $CompanyResult.Errors.add("User $($User.userPrincipalName): A fatal error occured while processing user $_") + Write-Warning "User $($User.userPrincipalName): A fatal error occured while processing user $_" + Write-Information $_.InvocationInfo.PositionMessage + } + } + + $licensedUserHTML = $OutputUsers | ConvertTo-Html -PreContent $pre -PostContent $post -Fragment | ForEach-Object { $tmp = $_ -replace '<', '<'; $tmp -replace '>', '>'; } | Out-String + + } + + if (![string]::IsNullOrEmpty($DeviceLayoutId)) { + $CompanyResult.Logs.Add('Starting Device Processing') + Write-Information "### Processing Devices for $($Tenant.defaultDomainName)" + foreach ($Device in $Devices) { + try { + [System.Collections.Generic.List[PSCustomObject]]$DeviceOverviewFormatted = @() + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Device Name' -Value "$($Device.deviceName)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'User' -Value "$($Device.userDisplayName)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'User Email' -Value "$($Device.userPrincipalName)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Owner' -Value "$($Device.ownerType)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Enrolled' -Value "$($Device.enrolledDateTime)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Last Checkin' -Value "$($Device.lastSyncDateTime)")) + if ($Device.complianceState -eq 'compliant') { + $CompliantSymbol = '   ' + } else { + $CompliantSymbol = '   ' + } + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Compliant' -Value "$($CompliantSymbol)$($Device.complianceState)")) + $DeviceOverviewFormatted.add($(Get-HuduFormattedField -Title 'Management Type' -Value "$($Device.managementAgent)")) + + [System.Collections.Generic.List[PSCustomObject]]$DeviceHardwareFormatted = @() + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Serial Number' -Value "$($Device.serialNumber)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'OS' -Value "$($Device.operatingSystem)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'OS Versions' -Value "$($Device.osVersion)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Chassis' -Value "$($Device.chassisType)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Model' -Value "$($Device.model)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Manufacturer' -Value "$($Device.manufacturer)")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Total Storage' -Value "$([math]::Round($Device.totalStorageSpaceInBytes /1024 /1024 /1024, 2))")) + $DeviceHardwareFormatted.add($(Get-HuduFormattedField -Title 'Free Storage' -Value "$([math]::Round($Device.freeStorageSpaceInBytes /1024 /1024 /1024, 2))")) + + [System.Collections.Generic.List[PSCustomObject]]$DeviceEnrollmentFormatted = @() + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Enrollment Type' -Value "$($Device.deviceEnrollmentType)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Join Type' -Value "$($Device.joinType)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Registration State' -Value "$($Device.deviceRegistrationState)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Autopilot Enrolled' -Value "$($Device.autopilotEnrolled)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Device Guard Requirements' -Value "$($Device.hardwareinformation.deviceGuardVirtualizationBasedSecurityHardwareRequirementState)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Virtualistation Based Security' -Value "$($Device.hardwareinformation.deviceGuardVirtualizationBasedSecurityState)")) + $DeviceEnrollmentFormatted.add($(Get-HuduFormattedField -Title 'Credential Guard' -Value "$($Device.hardwareinformation.deviceGuardLocalSystemAuthorityCredentialGuardState)")) + + $DevicePoliciesTable = foreach ($Policy in $DeviceComplianceDetails) { + # Handle DeviceStatuses as either array or single object + $DeviceStatuses = $Policy.DeviceStatuses + + # Enhanced device matching with multiple strategies + $MatchingStatuses = $DeviceStatuses | Where-Object { + # Primary match: deviceDisplayName to deviceName (most reliable) + ($_.deviceDisplayName -eq $device.deviceName) -or + # Secondary match: deviceDisplayName to managedDeviceName + ($_.deviceDisplayName -eq $device.managedDeviceName) -or + # Tertiary match: extract device ID from composite compliance ID and match to device.id + ($_.id -and $device.id -and $_.id -match ".*_$([regex]::Escape($device.id))$") -or + # Quaternary match: extract device ID from composite compliance ID and match to azureADDeviceId + ($_.id -and $device.azureADDeviceId -and $_.id -match ".*_$([regex]::Escape($device.azureADDeviceId))$") -or + # Alternative match: check if azureADDeviceId appears anywhere in the compliance ID + ($_.id -and $device.azureADDeviceId -and $_.id -like "*$($device.azureADDeviceId)*") + } + + if ($MatchingStatuses) { + foreach ($Status in $MatchingStatuses) { + Write-Information "Processing Status for Device $($device.deviceName), Policy $($Policy.displayName)" + # Filter out invalid statuses + if ($Status.status -and $Status.status -ne 'unknown' -and $Status.status -ne $null) { + try { + $LastReport = if ($Status.lastReportedDateTime) { + (Get-Date $Status.lastReportedDateTime -Format 'yyyy-MM-dd HH:mm:ss') + } else { 'N/A' } + + $GraceExpiry = if ($Status.complianceGracePeriodExpirationDateTime) { + (Get-Date $Status.complianceGracePeriodExpirationDateTime -Format 'yyyy-MM-dd HH:mm:ss') + } else { 'N/A' } + + [PSCustomObject]@{ + Name = $Policy.displayName + Status = $Status.status + 'Last Report' = $LastReport + 'Grace Expiry' = $GraceExpiry + 'Match Method' = if ($Status.deviceDisplayName -eq $device.deviceName) { 'Device Name' } + elseif ($Status.deviceDisplayName -eq $device.managedDeviceName) { 'Managed Name' } + else { 'Device ID' } + } + } catch { + # Log but continue processing if date parsing fails + Write-Warning "Failed to parse compliance policy dates for device $($device.deviceName), policy $($Policy.displayName): $_" + [PSCustomObject]@{ + Name = $Policy.displayName + Status = $Status.status + 'Last Report' = 'Parse Error' + 'Grace Expiry' = 'Parse Error' + 'Match Method' = 'Error' + } + } + } + } + } + } + $DevicePoliciesFormatted = $DevicePoliciesTable | ConvertTo-Html -Fragment | Out-String + + $DeviceGroupsTable = foreach ($Group in $Groups) { + if ($device.azureADDeviceId -in $Group.members.deviceId) { + [PSCustomObject]@{ + Name = $Group.displayName + } + } + } + $DeviceGroupsFormatted = $DeviceGroupsTable | ConvertTo-Html -Fragment | Out-String + <# + $DeviceAppsTable = foreach ($App in $DeviceAppInstallDetails) { + if ($device.id -in $App.InstalledAppDetails.deviceId) { + $Status = $App.InstalledAppDetails | Where-Object { $_.deviceId -eq $device.id } + [PSCustomObject]@{ + Name = $App.displayName + 'Install Status' = ($Status.installState | Select-Object -Unique ) -join ',' + } + } + } + $DeviceAppsFormatted = $DeviceAppsTable | ConvertTo-Html -Fragment | Out-String +#> + $DeviceOverviewBlock = Get-HuduFormattedBlock -Heading 'Device Details' -Body ($DeviceOverviewFormatted -join '') + $DeviceHardwareBlock = Get-HuduFormattedBlock -Heading 'Hardware Details' -Body ($DeviceHardwareFormatted -join '') + $DeviceEnrollmentBlock = Get-HuduFormattedBlock -Heading 'Device Enrollment Details' -Body ($DeviceEnrollmentFormatted -join '') + $DevicePolicyBlock = Get-HuduFormattedBlock -Heading 'Compliance Policies' -Body ($DevicePoliciesFormatted -join '') + #$DeviceAppsBlock = Get-HuduFormattedBlock -Heading 'App Details' -Body ($DeviceAppsFormatted -join '') + $DeviceGroupsBlock = Get-HuduFormattedBlock -Heading 'Device Groups' -Body ($DeviceGroupsFormatted -join '') + + if ("$($device.serialNumber)" -in $ExcludeSerials) { + $HuduDevice = $HuduDevices | Where-Object { $_.name -eq $device.deviceName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.name -contains $device.deviceName) } + } else { + $HuduDevice = $HuduDevices | Where-Object { $_.primary_serial -eq $device.serialNumber -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.serialNumber -eq $device.serialNumber) } + if (!$HuduDevice) { + $HuduDevice = $HuduDevices | Where-Object { $_.name -eq $device.deviceName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.name -contains $device.deviceName) } + } + } + + [System.Collections.Generic.List[PSCustomObject]]$DeviceLinksFormatted = @() + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "https://intune.microsoft.com/$($Tenant.defaultDomainName)/#blade/Microsoft_Intune_Devices/DeviceSettingsBlade/overview/mdmDeviceId/$($Device.id)" -Icon 'fas fa-laptop' -Title 'Endpoint Manager')) + + if ($HuduDevice) { + $DRMMCard = $HuduDevice.cards | Where-Object { $_.integrator_name -eq 'dattormm' } + if ($DRMMCard) { + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "$($RMMDeviceURL)$($DRMMCard.data.id)" -Icon 'fas fa-laptop-code' -Title 'Datto RMM')) + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL "$($RMMRemoteURL)$($DRMMCard.data.id)" -Icon 'fas fa-desktop' -Title 'Datto RMM Remote')) + } + $ManageCard = $HuduDevice.cards | Where-Object { $_.integrator_name -eq 'cw_manage' } + if ($ManageCard) { + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL $ManageCard.data.managementLink -Icon 'fas fa-laptop-code' -Title 'CW Automate')) + $DeviceLinksFormatted.add((Get-HuduLinkBlock -URL $ManageCard.data.remoteLink -Icon 'fas fa-desktop' -Title 'CW Control')) + } + } + + $DeviceLinksBlock = "
    Management Links
    $($DeviceLinksFormatted -join '')
    " + + $DeviceIntuneDetailshtml = "
    $DeviceLinksBlock
    $($DeviceOverviewBlock)$($DeviceHardwareBlock)$($DeviceEnrollmentBlock)$($DevicePolicyBlock)$($DeviceAppsBlock)$($DeviceGroupsBlock)
    " + + $DeviceAssetFields = @{ + microsoft_365 = $DeviceIntuneDetailshtml + } + $NewHash = Get-StringHash -String $DeviceIntuneDetailshtml + + if (![string]::IsNullOrEmpty($DeviceLayoutId)) { + if ($HuduDevice) { + if (($HuduDevice | Measure-Object).count -eq 1) { + $ExistingAsset = Get-CIPPAzDataTableEntity @HuduAssetCache -Filter "PartitionKey eq 'HuduDevice' and CompanyId eq '$company_id' and RowKey eq '$($HuduDevice.id)'" + $ExistingHash = $ExistingAsset.Hash + + if (!$ExistingAsset -or $ExistingAsset.Hash -ne $NewHash) { + $CompanyResult.Logs.Add("Updating $($HuduDevice.name) in Hudu") + $null = Set-HuduAsset -asset_id $HuduDevice.id -Name $HuduDevice.name -company_id $company_id -asset_layout_id $HuduDevice.asset_layout_id -Fields $DeviceAssetFields -PrimarySerial $Device.serialNumber + $AssetCache = [PSCustomObject]@{ + PartitionKey = 'HuduDevice' + RowKey = [string]$HuduDevice.id + CompanyId = [string]$company_id + Hash = [string]$NewHash + } + Add-CIPPAzDataTableEntity @HuduAssetCache -Entity $AssetCache -Force + } + + if (![string]::IsNullOrEmpty($Device.userPrincipalName)) { + $RelHuduUser = $People | Where-Object { ($_.fields.label -eq 'Email Address' -and $_.fields.value -eq $Device.userPrincipalName) -or $_.primary_mail -eq $Device.userPrincipalName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.communicationItems.communicationType -eq 'Email' -and $_.cards.data.communicationItems.value -eq $Device.userPrincipalName) } + + if ($RelHuduUser) { + $Relation = $HuduRelations | Where-Object { $_.fromable_type -eq 'Asset' -and $_.fromable_id -eq $RelHuduUser.id -and $_.toable_type -eq 'Asset' -and $_.toable_id -eq $HuduDevice.id } + if (-not $Relation) { + try { + Write-Information "Creating relation between $($RelHuduUser.name) and $($HuduDevice.name)" + $null = New-HuduRelation -FromableType 'Asset' -FromableID $RelHuduUser.id -ToableType 'Asset' -ToableID $HuduDevice.id -ea stop + } catch { + Write-Warning "Failed to create relation between $($RelHuduUser.name) and $($HuduDevice.name): $_" + $CompanyResult.Errors.add("Device $($device.deviceName): Failed to create relation between user and device: $_") + } + } + } + } + } else { + $CompanyResult.Errors.add("Device $($HuduDevice.name): Multiple devices matched on name or serial ($($device.serialNumber -join ', '))") + } + } else { + if ($device.deviceType -in $IntuneDesktopDeviceTypes) { + $DeviceLayoutID = $DesktopsLayout.id + $DeviceCreation = $CreateDevices + } else { + $DeviceLayoutID = $MobilesLayout.id + $DeviceCreation = $CreateMobileDevices + } + if ($DeviceCreation -eq $true) { + $CompanyResult.Logs.Add("Creating $($device.deviceName) in Hudu") + $CreateHuduDevice = (New-HuduAsset -Name $device.deviceName -company_id $company_id -asset_layout_id $DeviceLayoutID -Fields $DeviceAssetFields -PrimarySerial $Device.serialNumber).asset + + if (!$CreateHuduDevice) { + $CompanyResult.Errors.add("Device $($device.deviceName): Failed to create device in Hudu, check your device asset fields for 'Primary Serial'.") + } else { + $AssetCache = [PSCustomObject]@{ + PartitionKey = 'HuduDevice' + RowKey = [string]$CreateHuduDevice.id + CompanyId = [string]$company_id + Hash = [string]$NewHash + } + Add-CIPPAzDataTableEntity @HuduAssetCache -Entity $AssetCache -Force + + $RelHuduUser = $People | Where-Object { $_.primary_mail -eq $Device.userPrincipalName -or ($_.cards.integrator_name -eq 'cw_manage' -and $_.cards.data.communicationItems.communicationType -eq 'Email' -and $_.cards.data.communicationItems.value -eq $Device.userPrincipalName) } + if ($RelHuduUser) { + try { + $null = New-HuduRelation -FromableType 'Asset' -FromableID $RelHuduUser.id -ToableType 'Asset' -ToableID $CreateHuduDevice.id -ea stop + } catch { + # No need to do anything here as its will be when relations already exist. + } + } + } + } + } + } + } catch { + $CompanyResult.Errors.add("Device $($device.deviceName): A Fatal Error occured while processing the device $_") + } + } + } else { + $CompanyResult.Logs.Add('Skipping Device Processing - No Device Layout ID') + } + + + $body = "
    +
    +

    Administrative Portals

    +
    +
    $CustomerLinks
    +
    +
    +
    +
    + $detailstable + $licenseHTML +
    +
    +
    + $RolesHtml +
    +
    +
    + $licensedUserHTML +
    " + + try { + $null = Set-HuduMagicDash -Title "Microsoft 365 - $($Tenant.displayName)" -company_name $TenantMap.IntegrationName -Message "$($licensedUsers.count) Licensed Users" -Icon 'fab fa-microsoft' -Content $body -Shade 'success' + $CompanyResult.Logs.Add("Updated Magic Dash for $($Tenant.displayName)") + } catch { + $CompanyResult.Errors.add("Company: Failed to add Magic Dash to Company: $_") + } + + try { + if ($importDomains) { + $CompanyResult.Logs.Add('Starting Domain Processing') + $domainstoimport = $ExtensionCache.Domains + foreach ($imp in $domainstoimport) { + $impdomain = $imp.id + $huduimpdomain = Get-HuduWebsites -Name "https://$impdomain" + if ($($huduimpdomain.id.count) -eq 0) { + if ($monitorDomains) { + $null = New-HuduWebsite -Name "https://$impdomain" -Notes $HuduNotes -Paused 'false' -CompanyId $company_id -DisableDNS 'false' -DisableSSL 'false' -DisableWhois 'false' + } else { + $null = New-HuduWebsite -Name "https://$impdomain" -Notes $HuduNotes -Paused 'true' -CompanyId $company_id -DisableDNS 'true' -DisableSSL 'true' -DisableWhois 'true' + } + + } + } + + } + } catch { + $CompanyResult.Errors.add("Company: Failed to import domain: $_") + Write-LogMessage -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -API 'Hudu Sync' -message "Company: Failed to import domain: $_" -level 'Error' + } + Write-LogMessage -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -API 'Hudu Sync' -message 'Company: Completed Sync' -level 'Information' + $CompanyResult.Logs.Add('Hudu Sync Completed') + } catch { + Write-Warning "Company: A fatal error occured: $_" + Write-Information $_.InvocationInfo.PositionMessage + Write-LogMessage -tenant $Tenant.defaultDomainName -tenantid $Tenant.customerId -API 'Hudu Sync' -message "Company: A fatal error occured: $_" -level 'Error' + $CompanyResult.Errors.add("Company: A fatal error occured: $_") + } + return $CompanyResult +} diff --git a/Modules/CippExtensions/Public/Hudu/Set-HuduMapping.ps1 b/Modules/CippExtensions/Public/Hudu/Set-HuduMapping.ps1 new file mode 100644 index 000000000000..667ce95ad869 --- /dev/null +++ b/Modules/CippExtensions/Public/Hudu/Set-HuduMapping.ps1 @@ -0,0 +1,25 @@ +function Set-HuduMapping { + [CmdletBinding()] + param ( + $CIPPMapping, + $APIName, + $Request + ) + Get-CIPPAzDataTableEntity @CIPPMapping -Filter "PartitionKey eq 'HuduMapping'" | ForEach-Object { + Remove-AzDataTableEntity -Force @CIPPMapping -Entity $_ + } + foreach ($Mapping in $Request.Body) { + $AddObject = @{ + PartitionKey = 'HuduMapping' + RowKey = "$($mapping.TenantId)" + IntegrationId = "$($mapping.IntegrationId)" + IntegrationName = "$($mapping.IntegrationName)" + } + + Add-CIPPAzDataTableEntity @CIPPMapping -Entity $AddObject -Force + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Added mapping for $($mapping.name)." -Sev 'Info' + } + $Result = [pscustomobject]@{'Results' = 'Successfully edited mapping table.' } + + Return $Result +} diff --git a/Modules/CippExtensions/Public/New-CippExtAlert.ps1 b/Modules/CippExtensions/Public/New-CippExtAlert.ps1 new file mode 100644 index 000000000000..bae549bf0719 --- /dev/null +++ b/Modules/CippExtensions/Public/New-CippExtAlert.ps1 @@ -0,0 +1,34 @@ +function New-CippExtAlert { + [CmdletBinding()] + param ( + [switch]$TestRun = $false, + [pscustomobject]$Alert + ) + #Get the current CIPP Alerts table and see what system is configured to receive alerts + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $MappingTable = Get-CIPPTable -TableName CippMapping + + foreach ($ConfigItem in $Configuration.psobject.properties.name) { + switch ($ConfigItem) { + 'HaloPSA' { + if ($Configuration.HaloPSA.enabled) { + $MappingFile = Get-CIPPAzDataTableEntity @MappingTable -Filter "PartitionKey eq 'HaloMapping'" + $TenantId = (Get-Tenants | Where-Object defaultDomainName -EQ $Alert.TenantId).customerId + Write-Host "TenantId: $TenantId" + $MappedId = ($MappingFile | Where-Object { $_.RowKey -eq $TenantId }).IntegrationId + Write-Host "MappedId: $MappedId" + if (!$mappedId) { $MappedId = 1 } + Write-Host "MappedId: $MappedId" + New-HaloPSATicket -Title $Alert.AlertTitle -Description $Alert.AlertText -Client $mappedId + } + } + 'Gradient' { + if ($Configuration.Gradient.enabled) { + New-GradientAlert -Title $Alert.AlertTitle -Description $Alert.AlertText -Client $Alert.TenantId + } + } + } + } + +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneFieldMapping.ps1 b/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneFieldMapping.ps1 new file mode 100644 index 000000000000..6e61d59f7e3a --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneFieldMapping.ps1 @@ -0,0 +1,117 @@ +function Get-NinjaOneFieldMapping { + [CmdletBinding()] + param ( + $CIPPMapping + ) + try { + #Get available mappings + $Mappings = [pscustomobject]@{} + + [System.Collections.Generic.List[object]]$CIPPFieldHeaders = @( + [PSCustomObject]@{ + Title = 'NinjaOne Organization Global Custom Field Mapping' + FieldType = 'Organization' + Description = 'Use the table below to map your Organization Field to the correct NinjaOne Field' + } + [PSCustomObject]@{ + Title = 'NinjaOne Device Custom Field Mapping' + FieldType = 'Device' + Description = 'Use the table below to map your Device Field to the correct NinjaOne Field' + } + ) + + [System.Collections.Generic.List[object]]$CIPPFields = @( + [PSCustomObject]@{ + FieldName = 'TenantLinks' + FieldLabel = 'Microsoft 365 Tenant Links - Field Used to Display Links to Microsoft 365 Portals and CIPP' + FieldType = 'Organization' + Type = 'WYSIWYG' + }, + [PSCustomObject]@{ + FieldName = 'TenantSummary' + FieldLabel = 'Microsoft 365 Tenant Summary - Field Used to Display Tenant Summary Information' + FieldType = 'Organization' + Type = 'WYSIWYG' + }, + [PSCustomObject]@{ + FieldName = 'UsersSummary' + FieldLabel = 'Microsoft 365 Users Summary - Field Used to Display User Summary Information' + FieldType = 'Organization' + Type = 'WYSIWYG' + }, + [PSCustomObject]@{ + FieldName = 'DeviceLinks' + FieldLabel = 'Microsoft 365 Device Links - Field Used to Display Links to Microsoft 365 Portals and CIPP' + FieldType = 'Device' + Type = 'WYSIWYG' + }, + [PSCustomObject]@{ + FieldName = 'DeviceSummary' + FieldLabel = 'Microsoft 365 Device Summary - Field Used to Display Device Summary Information' + FieldType = 'Device' + Type = 'WYSIWYG' + }, + [PSCustomObject]@{ + FieldName = 'DeviceCompliance' + FieldLabel = 'Intune Device Compliance Status - Field Used to Monitor Device Compliance' + FieldType = 'Device' + Type = 'TEXT' + } + ) + + $MappingFieldMigrate = Get-CIPPAzDataTableEntity @CIPPMapping -Filter "PartitionKey eq 'NinjaFieldMapping'" | ForEach-Object { + [PSCustomObject]@{ + PartitionKey = 'NinjaOneFieldMapping' + RowKey = $_.RowKey + IntegrationId = $_.NinjaOne + IntegrationName = $_.NinjaOneName + } + Remove-AzDataTableEntity -Force @CIPPMapping -Entity $_ + } + if (($MappingFieldMigrate | Measure-Object).count -gt 0) { + Add-CIPPAzDataTableEntity @CIPPMapping -Entity $MappingFieldMigrate -Force + } + + $Mappings = Get-ExtensionMapping -Extension 'NinjaOneField' + + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-AzDataTableEntity @Table).config | ConvertFrom-Json -ea stop).NinjaOne + + $Token = Get-NinjaOneToken -configuration $Configuration + + $NinjaCustomFieldsNodeRaw = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/device-custom-fields?scopes=node" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + + [System.Collections.Generic.List[object]]$NinjaCustomFieldsNode = $NinjaCustomFieldsNodeRaw | Where-Object { $_.apiPermission -eq 'READ_WRITE' -and $_.type -in $CIPPFields.Type } | Select-Object @{n = 'name'; e = { $_.label } }, @{n = 'value'; e = { $_.name } }, type, @{n = 'FieldType'; e = { 'Device' } } + + $NinjaCustomFieldsOrgRaw = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/device-custom-fields?scopes=organization" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + + [System.Collections.Generic.List[object]]$NinjaCustomFieldsOrg = $NinjaCustomFieldsOrgRaw | Where-Object { $_.apiPermission -eq 'READ_WRITE' -and $_.type -in $CIPPFields.Type } | Select-Object @{n = 'name'; e = { $_.label } }, @{n = 'value'; e = { $_.name } }, type, @{n = 'FieldType'; e = { 'Organization' } } + + if ($Null -eq $NinjaCustomFieldsNode) { + [System.Collections.Generic.List[object]]$NinjaCustomFieldsNode = @() + } + + if ($Null -eq $NinjaCustomFieldsOrg) { + [System.Collections.Generic.List[object]]$NinjaCustomFieldsOrg = @() + } + $Unset = [PSCustomObject]@{ + name = '--- Do not synchronize ---' + value = $null + type = 'unset' + } + + } catch { + [System.Collections.Generic.List[object]]$NinjaCustomFieldsNode = @() + [System.Collections.Generic.List[object]]$NinjaCustomFieldsOrg = @() + } + + $MappingObj = [PSCustomObject]@{ + CIPPFields = $CIPPFields + CIPPFieldHeaders = $CIPPFieldHeaders + IntegrationFields = @($Unset) + @($NinjaCustomFieldsOrg) + @($NinjaCustomFieldsNode) + Mappings = @($Mappings) + } + + return $MappingObj + +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneOrgMapping.ps1 b/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneOrgMapping.ps1 new file mode 100644 index 000000000000..f6e789ee081a --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneOrgMapping.ps1 @@ -0,0 +1,61 @@ +function Get-NinjaOneOrgMapping { + [CmdletBinding()] + param ( + $CIPPMapping + ) + try { + $Tenants = Get-Tenants -IncludeErrors + + $ExtensionMappings = Get-ExtensionMapping -Extension 'NinjaOne' + + $Tenants = Get-Tenants -IncludeErrors + + $Mappings = foreach ($Mapping in $ExtensionMappings) { + $Tenant = $Tenants | Where-Object { $_.RowKey -eq $Mapping.RowKey } + if ($Tenant) { + [PSCustomObject]@{ + TenantId = $Tenant.customerId + Tenant = $Tenant.displayName + TenantDomain = $Tenant.defaultDomainName + IntegrationId = $Mapping.IntegrationId + IntegrationName = $Mapping.IntegrationName + } + } + } + #Get Available Tenants + + #Get available Ninja clients + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-AzDataTableEntity @Table).config | ConvertFrom-Json -ea stop).NinjaOne + + + $Token = Get-NinjaOneToken -configuration $Configuration + + $After = 0 + $PageSize = 1000 + $NinjaOrgs = do { + $Result = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organizations?pageSize=$PageSize&after=$After" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + $Result | Select-Object name, @{n = 'value'; e = { $_.id } } + $ResultCount = ($Result.id | Measure-Object -Maximum) + $After = $ResultCount.maximum + + } while ($ResultCount.count -eq $PageSize) + + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + + $NinjaOrgs = @(@{ name = 'Could not get NinjaOne Orgs, check your API credentials and try again.'; value = '-1' }) + } + + $MappingObj = [PSCustomObject]@{ + Companies = @($NinjaOrgs | Sort-Object name) + Mappings = @($Mappings) + } + + return $MappingObj + +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneToken.ps1 b/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneToken.ps1 new file mode 100644 index 000000000000..b0d9afc053f7 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Get-NinjaOneToken.ps1 @@ -0,0 +1,29 @@ +function Get-NinjaOneToken { + [CmdletBinding()] + param ( + $Configuration + ) + + $ClientSecret = Get-ExtensionAPIKey -Extension 'NinjaOne' + + $body = @{ + grant_type = 'client_credentials' + client_id = $Configuration.ClientId + client_secret = $ClientSecret + scope = 'monitoring management' + } + + try { + + $token = Invoke-RestMethod -Uri "https://$($Configuration.Instance -replace '/ws','')/ws/oauth/token" -Method Post -Body $body -ContentType 'application/x-www-form-urlencoded' + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + Write-LogMessage -Message $Message -sev error -API 'NinjaOne' + } + return $token + +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDeviceWebhook.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDeviceWebhook.ps1 new file mode 100644 index 000000000000..f230a6078d6b --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDeviceWebhook.ps1 @@ -0,0 +1,75 @@ +function Invoke-NinjaOneDeviceWebhook { + [CmdletBinding()] + param ( + $Data, + $Configuration + ) + try { + $MappedFields = [pscustomobject]@{} + $CIPPMapping = Get-CIPPTable -TableName CippMapping + $Filter = "PartitionKey eq 'NinjaOneFieldMapping'" + Get-AzDataTableEntity @CIPPMapping -Filter $Filter | Where-Object { $Null -ne $_.IntegrationId -and $_.IntegrationId -ne '' } | ForEach-Object { + $MappedFields | Add-Member -NotePropertyName $_.RowKey -NotePropertyValue $($_.IntegrationId) + } + + if ($MappedFields.DeviceCompliance) { + Write-LogMessage -Headers $Headers -API $APIName -message "Webhook Received - Updating NinjaOne Device compliance for $($Data.resourceData.id) in $($Data.tenantId)" -Sev 'Info' -tenant $TenantFilter + $tenantfilter = $Data.tenantId + $M365DeviceID = $Data.resourceData.id + + $DeviceM365 = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/devices/$($M365DeviceID)" -Tenantid $tenantfilter + + $DeviceFilter = "PartitionKey eq '$($tenantfilter)' and RowKey eq '$($DeviceM365.deviceID)'" + $DeviceMapTable = Get-CippTable -tablename 'NinjaOneDeviceMap' + $Device = Get-CIPPAzDataTableEntity @DeviceMapTable -Filter $DeviceFilter + + if (($Device | Measure-Object).count -eq 1) { + try { + $Token = Get-NinjaOneToken -configuration $Configuration + + if (!$Token.access_token) { + Write-LogMessage -API 'NinjaOneSync' -tenant $tenantfilter -message 'Failed to get NinjaOne Token for Device Compliance Update' -Sev 'Error' + return + } + + if ($DeviceM365.isCompliant -eq $True) { + $Compliant = 'Compliant' + } else { + $Compliant = 'Non-Compliant' + } + + $ComplianceBody = @{ + "$($MappedFields.DeviceCompliance)" = $Compliant + } | ConvertTo-Json + + $Null = Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/device/$($Device.NinjaOneID)/custom-fields" -Method PATCH -Body $ComplianceBody -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json' + + Write-Host 'Updated NinjaOne Device Compliance' + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + Write-Error "Failed NinjaOne Device Webhook for: $($Data | ConvertTo-Json -Depth 100) Linenumber: $($_.InvocationInfo.ScriptLineNumber) Error: $Message" + Write-LogMessage -API 'NinjaOneSync' -message "Failed NinjaOne Device Webhook Linenumber: $($_.InvocationInfo.ScriptLineNumber) Error: $Message" -Sev 'Error' + } + } else { + Write-LogMessage -API 'NinjaOneSync' -message "$($DeviceM365.displayName) ($($M365DeviceID)) was not matched in Ninja for $($tenantfilter)" -Sev 'Info' + } + + } + + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + Write-Error "Failed NinjaOne Device Webhook for: $($Data | ConvertTo-Json -Depth 100) Linenumber: $($_.InvocationInfo.ScriptLineNumber) Error: $Message" + Write-LogMessage -API 'NinjaOneSync' -message "Failed NinjaOne Device Webhook Linenumber: $($_.InvocationInfo.ScriptLineNumber) Error: $Message" -Sev 'Error' + } + + + +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDocumentTemplate.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDocumentTemplate.ps1 new file mode 100644 index 000000000000..95e854007533 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDocumentTemplate.ps1 @@ -0,0 +1,38 @@ +function Invoke-NinjaOneDocumentTemplate { + [CmdletBinding()] + param ( + $Template, + $Token, + $ID + ) + + if (!$Token) { + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-AzDataTableEntity @Table).config | ConvertFrom-Json).NinjaOne + $Token = Get-NinjaOneToken -configuration $Configuration + } + + if (!$ID) { + $DocumentTemplates = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/document-templates/" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + $DocumentTemplate = $DocumentTemplates | Where-Object { $_.name -eq $Template.name } + } else { + $DocumentTemplate = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/document-templates/$($ID)" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + } + + $MatchedCount = ($DocumentTemplate | Measure-Object).count + if ($MatchedCount -eq 1) { + # Matched a single document template + $NinjaDocumentTemplate = $DocumentTemplate + } elseif ($MatchedCount -eq 0) { + # Create a new Document Template + $Body = $Template | ConvertTo-Json -Depth 100 + Write-Host "Ninja Body: $body" + $NinjaDocumentTemplate = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/document-templates/" -Method POST -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json' -Body $Body).content | ConvertFrom-Json -Depth 100 + } else { + # Matched multiple templates. Should be impossible but lets check anyway :D + Throw 'Multiple Documents Matched the Provided Criteria' + } + + return $NinjaDocumentTemplate + +} \ No newline at end of file diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneExtensionScheduler.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneExtensionScheduler.ps1 new file mode 100644 index 000000000000..6842752f197f --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneExtensionScheduler.ps1 @@ -0,0 +1,104 @@ +function Invoke-NinjaOneExtensionScheduler { + $Table = Get-CIPPTable -TableName NinjaOneSettings + $Settings = (Get-AzDataTableEntity @Table) + $TimeSetting = ($Settings | Where-Object { $_.RowKey -eq 'NinjaSyncTime' }).SettingValue + + + if (($TimeSetting | Measure-Object).count -ne 1) { + [int]$TimeSetting = Get-Random -Minimum 1 -Maximum 95 + $AddObject = @{ + PartitionKey = 'NinjaConfig' + RowKey = 'NinjaSyncTime' + 'SettingValue' = $TimeSetting + } + Add-AzDataTableEntity @Table -Entity $AddObject -Force + } + + Write-Host "Ninja Time Setting: $TimeSetting" + + try { + $LastRunTime = Get-Date(($Settings | Where-Object { $_.RowKey -eq 'NinjaLastRunTime' }).SettingValue) + } catch { + $LastRunTime = $Null + } + + Write-Host "Last Run: $LastRunTime" + + $CurrentTime = Get-Date + $CurrentInterval = ($CurrentTime.Hour * 4) + [math]::Floor($CurrentTime.Minute / 15) + + Write-Host "Current Interval: $CurrentInterval" + + $CIPPMapping = Get-CIPPTable -TableName CippMapping + $Filter = "PartitionKey eq 'NinjaOneMapping'" + $TenantsToProcess = Get-AzDataTableEntity @CIPPMapping -Filter $Filter | Where-Object { $Null -ne $_.IntegrationId -and $_.IntegrationId -ne '' } + + if ($Null -eq $LastRunTime -or $LastRunTime -le (Get-Date).addhours(-25) -or $TimeSetting -eq $CurrentInterval) { + Write-Host 'Executing' + $Batch = foreach ($Tenant in $TenantsToProcess | Sort-Object lastEndTime) { + [PSCustomObject]@{ + 'NinjaAction' = 'SyncTenant' + 'MappedTenant' = $Tenant + 'FunctionName' = 'NinjaOneQueue' + } + } + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($Batch) + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + } + + $AddObject = @{ + PartitionKey = 'NinjaConfig' + RowKey = 'NinjaLastRunTime' + 'SettingValue' = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffK') + } + Add-AzDataTableEntity @Table -Entity $AddObject -Force + + Write-LogMessage -API 'NinjaOneSync' -message "NinjaOne Daily Synchronization Queued for $(($TenantsToProcess | Measure-Object).count) Tenants" -Sev 'Info' + + } else { + if ($LastRunTime -lt (Get-Date).AddMinutes(-90)) { + $TenantsToProcess | ForEach-Object { + if ($Null -ne $_.lastEndTime -and $_.lastEndTime -ne '') { + $_.lastEndTime = (Get-Date($_.lastEndTime)) + } else { + $_ | Add-Member -NotePropertyName lastEndTime -NotePropertyValue $Null -Force + } + + if ($Null -ne $_.lastStartTime -and $_.lastStartTime -ne '') { + $_.lastStartTime = (Get-Date($_.lastStartTime)) + } else { + $_ | Add-Member -NotePropertyName lastStartTime -NotePropertyValue $Null -Force + } + } + $CatchupTenants = $TenantsToProcess | Where-Object { (((($_.lastEndTime -eq $Null) -or ($_.lastStartTime -gt $_.lastEndTime)) -and ($_.lastStartTime -lt (Get-Date).AddMinutes(-30)))) -or ($_.lastStartTime -lt $LastRunTime) } + $Batch = foreach ($Tenant in $CatchupTenants) { + [PSCustomObject]@{ + NinjaAction = 'SyncTenant' + MappedTenant = $Tenant + FunctionName = 'NinjaOneQueue' + } + } + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($Batch) + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + } + + if (($CatchupTenants | Measure-Object).count -gt 0) { + Write-LogMessage -API 'NinjaOneSync' -message "NinjaOne Synchronization Catchup Queued for $(($CatchupTenants | Measure-Object).count) Tenants" -Sev 'Info' + } + + } + + } +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneOrgMapping.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneOrgMapping.ps1 new file mode 100644 index 000000000000..d6c8b7e1ad08 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneOrgMapping.ps1 @@ -0,0 +1,114 @@ +function Invoke-NinjaOneOrgMapping { + + [System.Collections.Generic.List[PSCustomObject]]$MatchedM365Tenants = @() + [System.Collections.Generic.List[PSCustomObject]]$MatchedNinjaOrgs = @() + + $ExcludeSerials = @('0', 'SystemSerialNumber', 'To Be Filled By O.E.M.', 'System Serial Number', '0123456789', '123456789', '............') + $CIPPMapping = Get-CIPPTable -TableName CippMapping + + + #Get available mappings + $Mappings = [pscustomobject]@{} + $Filter = "PartitionKey eq 'NinjaOneMapping'" + Get-AzDataTableEntity @CIPPMapping -Filter $Filter | ForEach-Object { + $Mappings | Add-Member -NotePropertyName $_.RowKey -NotePropertyValue @{ label = "$($_.IntegrationName)"; value = "$($_.IntegrationId)" } + } + + #Get Available Tenants + $Tenants = Get-Tenants -IncludeErrors + #Get available Ninja clients + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-AzDataTableEntity @Table).config | ConvertFrom-Json).NinjaOne + + $Token = Get-NinjaOneToken -configuration $Configuration + + # Fetch Ninja Orgs + $After = 0 + $PageSize = 1000 + $NinjaOrgs = do { + $Result = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organizations?pageSize=$PageSize&after=$After" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + $Result + $ResultCount = ($Result.id | Measure-Object -Maximum) + $After = $ResultCount.maximum + + } while ($ResultCount.count -eq $PageSize) + + # Exclude tenants already mapped. + Foreach ($ExistingMap in $mappings.psobject.properties) { + $ExistingTenant = $Tenants | Where-Object { $_.customerId -eq $ExistingMap.name } + $ExistingOrg = $NinjaOrgs | Where-Object { $_.id -eq $ExistingMap.value.value } + + if (($ExistingTenant | Measure-Object).count -eq 1) { + $MatchedM365Tenants.add($ExistingTenant) + } + + if (($ExistingOrg | Measure-Object).count -eq 1) { + $MatchedM365Tenants.add($ExistingOrg) + } + } + + # Fetch Ninja Devices + $After = 0 + $PageSize = 1000 + $NinjaDevicesRaw = do { + $Result = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/devices-detailed?pageSize=$PageSize&after=$After" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + $Result + $ResultCount = ($Result.id | Measure-Object -Maximum) + $After = $ResultCount.maximum + + } while ($ResultCount.count -eq $PageSize) + + + $NinjaDevices = $NinjaDevicesRaw | Where-Object { $null -ne $_.system.serialNumber -and $_.system.serialNumber -notin $ExcludeSerials } | ForEach-Object { + [pscustomobject]@{ + ID = $_.id + SystemName = $_.systemName + DNSName = $_.dnsName + Serial = $_.system.serialNumber + BiosSerialNumber = $_.system.biosSerialNumber + OrgID = $_.organizationId + } + } + + # Remove any devices with duplicate serials + $ParsedNinjaDevices = $NinjaDevices | Where-Object { $_.Serial -in (($NinjaDevices | Group-Object Serial | Where-Object { $_.count -eq 1 }).name) } + + + # First lets match on Org names + foreach ($Tenant in $Tenants | Where-Object { $_.customerId -notin $MatchedM365Tenants.customerId }) { + $MatchedOrg = $NinjaOrgs | Where-Object { $_.name -eq $Tenant.displayName } + if (($MatchedOrg | Measure-Object).count -eq 1) { + $MatchedM365Tenants.add($Tenant) + $MatchedNinjaOrgs.add($MatchedOrg) + $AddObject = @{ + PartitionKey = 'NinjaOneMapping' + RowKey = "$($Tenant.customerId)" + IntegrationId = "$($MatchedOrg.id)" + IntegrationName = "$($MatchedOrg.name)" + } + Add-AzDataTableEntity @CIPPMapping -Entity $AddObject -Force + Write-LogMessage -API 'NinjaOneAutoMap_Queue' -message "Added mapping from Organization name match for $($Tenant.customerId). to $($($MatchedOrg.name))" -Sev 'Info' + } + } + + # Now Let match on remaining Tenants + + $Batch = Foreach ($Tenant in $Tenants | Where-Object { $_.customerId -notin $MatchedM365Tenants.customerId }) { + [PSCustomObject]@{ + 'NinjaAction' = 'AutoMapTenant' + 'M365Tenant' = $Tenant + 'NinjaOrgs' = $NinjaOrgs | Where-Object { $_.id -notin $MatchedNinjaOrgs } + 'NinjaDevices' = $ParsedNinjaDevices + 'FunctionName' = 'NinjaOneQueue' + } + } + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($Batch) + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + } +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneOrgMappingTenant.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneOrgMappingTenant.ps1 new file mode 100644 index 000000000000..357f7877c445 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneOrgMappingTenant.ps1 @@ -0,0 +1,73 @@ +function Invoke-NinjaOneOrgMappingTenant { + [CmdletBinding()] + param ( + $QueueItem + ) + + $Tenant = $QueueItem.M365Tenant + $NinjaOrgs = $QueueItem.NinjaOrgs + $NinjaDevices = $QueueItem.NinjaDevices + + Write-Host "Processing $($Tenant.displayName)" + + $CIPPMapping = Get-CIPPTable -TableName CippMapping + + $TenantFilter = $Tenant.customerId + + $M365DevicesRaw = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDevices' -Tenantid $tenantfilter + + $M365Devices = foreach ($Device in $M365DevicesRaw) { + [pscustomobject]@{ + 'DeviceID' = $Device.id + 'DeviceName' = $Device.deviceName + 'DeviceSerial' = $Device.serialNumber + } + } + + + [System.Collections.Generic.List[PSCustomObject]]$MatchedDevices = @() + + # Match devices on serial + $DevicesToMatchSerial = $M365Devices | Where-Object { $null -ne $_.DeviceSerial } + foreach ($SerialMatchDevice in $DevicesToMatchSerial) { + $MatchedDevice = $NinjaDevices | Where-Object { $_.Serial -eq $SerialMatchDevice.DeviceSerial -or $_.BiosSerialNumber -eq $SerialMatchDevice.DeviceSerial } + if (($MatchedDevice | Measure-Object).count -eq 1) { + $Match = [pscustomobject]@{ + M365 = $SerialMatchDevice + Ninja = $MatchedDevice + } + $MatchedDevices.add($Match) + } + } + + # Try to match on Name + $DevicesToMatchName = $M365Devices | Where-Object { $_ -notin $MatchedDevices.M365 } + foreach ($NameMatchDevice in $DevicesToMatchName) { + $MatchedDevice = $NinjaDevices | Where-Object { $_.SystemName -eq $NameMatchDevice.DeviceName -or $_.DNSName -eq $NameMatchDevice.DeviceName } + if (($MatchedDevice | Measure-Object).count -eq 1) { + $Match = [pscustomobject]@{ + M365 = $NameMatchDevice + Ninja = $MatchedDevice + } + $MatchedDevices.add($Match) + } + } + + + # Match on the Org with the most devices that match + if (($MatchedDevices.Ninja.ID | Measure-Object).Count -eq 1) { + $MatchedOrgID = ($MatchedDevices.Ninja | Group-Object OrgID | Sort-Object Count -desc)[0].name + $MatchedOrg = $NinjaOrgs | Where-Object { $_.id -eq $MatchedOrgID } + + $AddObject = @{ + PartitionKey = 'NinjaOneMapping' + RowKey = "$($Tenant.customerId)" + IntegrationId = "$($MatchedOrg.id)" + IntegrationName = "$($MatchedOrg.name)" + } + Add-AzDataTableEntity @CIPPMapping -Entity $AddObject -Force + Write-LogMessage -API 'NinjaOneAutoMap_Queue' -message "Added mapping from Device match for $($Tenant.displayName) to $($($MatchedOrg.name))" -Sev 'Info' + + } + +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneSync.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneSync.ps1 new file mode 100644 index 000000000000..24f64e54d351 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneSync.ps1 @@ -0,0 +1,40 @@ +function Invoke-NinjaOneSync { + try { + $Table = Get-CIPPTable -TableName NinjaOneSettings + + $CIPPMapping = Get-CIPPTable -TableName CippMapping + $Filter = "PartitionKey eq 'NinjaOneMapping'" + $TenantsToProcess = Get-AzDataTableEntity @CIPPMapping -Filter $Filter | Where-Object { $Null -ne $_.IntegrationId -and $_.IntegrationId -ne '' } + + + $Batch = foreach ($Tenant in $TenantsToProcess) { + [PSCustomObject]@{ + 'NinjaAction' = 'SyncTenant' + 'MappedTenant' = $Tenant + 'FunctionName' = 'NinjaOneQueue' + } + } + if (($Batch | Measure-Object).Count -gt 0) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($Batch) + } + #Write-Host ($InputObject | ConvertTo-Json) + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Host "Started permissions orchestration with ID = '$InstanceId'" + } + + $AddObject = @{ + PartitionKey = 'NinjaConfig' + RowKey = 'NinjaLastRunTime' + 'SettingValue' = (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffK') + } + + Add-AzDataTableEntity @Table -Entity $AddObject -Force + + Write-LogMessage -API 'NinjaOneAutoMap_Queue' -Headers 'CIPP' -message "NinjaOne Synchronization Queued for $(($TenantsToProcess | Measure-Object).count) Tenants" -Sev 'Info' + } catch { + Write-LogMessage -API 'Scheduler_Billing' -tenant 'none' -message "Could not start NinjaOne Sync $($_.Exception.Message)" -sev Error + } + +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 new file mode 100644 index 000000000000..7d2b1a4b9aab --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 @@ -0,0 +1,2236 @@ +function Invoke-NinjaOneTenantSync { + [CmdletBinding()] + param ( + $QueueItem + ) + try { + $StartQueueTime = Get-Date + Write-Information "$(Get-Date) - Starting NinjaOne Sync" + + $MappingTable = Get-CIPPTable -TableName CippMapping + $CurrentMap = (Get-CIPPAzDataTableEntity @MappingTable -Filter "PartitionKey eq 'NinjaOneMapping'") + $CurrentMap | ForEach-Object { + if ($Null -ne $_.lastEndTime -and $_.lastEndTime -ne '') { + $_.lastEndTime = (Get-Date($_.lastEndTime)) + } else { + $_ | Add-Member -NotePropertyName lastEndTime -NotePropertyValue $Null -Force + } + + if ($Null -ne $_.lastStartTime -and $_.lastStartTime -ne '') { + $_.lastStartTime = (Get-Date($_.lastStartTime)) + } else { + $_ | Add-Member -NotePropertyName lastStartTime -NotePropertyValue $Null -Force + } + } + + $StartTime = Get-Date + + # Parse out the Tenant we are processing + $MappedTenant = $QueueItem.MappedTenant + + # Check for active instances for this tenant + $CurrentItem = $CurrentMap | Where-Object { $_.RowKey -eq $MappedTenant.RowKey } + + $StartDate = try { Get-Date($CurrentItem.lastStartTime) } catch { $Null } + $EndDate = try { Get-Date($CurrentItem.lastEndTime) } catch { $Null } + + if (($null -ne $CurrentItem.lastStartTime) -and ($StartDate -gt (Get-Date).ToUniversalTime().AddMinutes(-10)) -and ( $Null -eq $CurrentItem.lastEndTime -or ($StartDate -gt $EndDate))) { + throw "NinjaOne Sync for Tenant $($MappedTenant.RowKey) is still running, please wait 10 minutes and try again." + } + + # Set Last Start Time + $MappingTable = Get-CIPPTable -TableName CippMapping + $CurrentItem | Add-Member -NotePropertyName lastStartTime -NotePropertyValue ([string]$(($StartQueueTime).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))) -Force + $CurrentItem | Add-Member -NotePropertyName lastStatus -NotePropertyValue 'Running' -Force + if ($Null -ne $CurrentItem.lastEndTime -and $CurrentItem.lastEndTime -ne '' ) { + $CurrentItem.lastEndTime = ([string]$(($CurrentItem.lastEndTime).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))) + } + Add-CIPPAzDataTableEntity @MappingTable -Entity $CurrentItem -Force + + + # Fetch Custom NinjaOne Settings + $Table = Get-CIPPTable -TableName Config + $NinjaSettings = (Get-CIPPAzDataTableEntity @Table) + $CIPPUrl = ($NinjaSettings | Where-Object { $_.RowKey -eq 'CIPPURL' }).Value + + + $Customer = Get-Tenants -IncludeErrors | Where-Object { $_.customerId -eq $MappedTenant.RowKey } + Write-Information "Processing: $($Customer.displayName) - Queued for $((New-TimeSpan -Start $StartQueueTime -End $StartTime).TotalSeconds)" + + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "Processing NinjaOne Synchronization for $($Customer.displayName) - Queued for $((New-TimeSpan -Start $StartQueueTime -End $StartTime).TotalSeconds)" -Sev 'Info' + + if (($Customer | Measure-Object).count -ne 1) { + throw "Unable to match the received ID to a tenant QueueItem: $($QueueItem | ConvertTo-Json -Depth 100 | Out-String) Matched Customer: $($Customer| ConvertTo-Json -Depth 100 | Out-String)" + } + + $TenantFilter = $Customer.defaultDomainName + $NinjaOneOrg = $MappedTenant.IntegrationId + + + # Get the NinjaOne general extension settings. + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).NinjaOne + + $AllowedNinjaHostnames = @( + 'app.ninjarmm.com', + 'eu.ninjarmm.com', + 'oc.ninjarmm.com', + 'ca.ninjarmm.com', + 'us2.ninjarmm.com' + ) + + if ($AllowedNinjaHostnames -notcontains $Configuration.Instance) { + throw "NinjaOne URL is invalid. Allowed hostnames are: $($AllowedNinjaHostnames -join ', ')" + } + + # Pull the list of field Mappings so we know which fields to render. + $MappedFields = [pscustomobject]@{} + $CIPPMapping = Get-CIPPTable -TableName CippMapping + $Filter = "PartitionKey eq 'NinjaOneFieldMapping'" + Get-CIPPAzDataTableEntity @CIPPMapping -Filter $Filter | Where-Object { $Null -ne $_.IntegrationId -and $_.IntegrationId -ne '' } | ForEach-Object { + $MappedFields | Add-Member -NotePropertyName $_.RowKey -NotePropertyValue $($_.IntegrationId) + } + + # Get NinjaOne Devices + $Token = Get-NinjaOneToken -configuration $Configuration + $After = 0 + $PageSize = 1000 + $NinjaDevices = do { + $Result = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/devices-detailed?pageSize=$PageSize&after=$After&df=org = $($NinjaOneOrg)" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + $Result + $ResultCount = ($Result.id | Measure-Object -Maximum) + $After = $ResultCount.maximum + + } while ($ResultCount.count -eq $PageSize) + + Write-Information 'Fetched NinjaOne Devices' + + [System.Collections.Generic.List[PSCustomObject]]$NinjaOneUserDocs = @() + + if ($Configuration.UserDocumentsEnabled -eq $True) { + # Get NinjaOne User Documents + $UserDocTemplate = [PSCustomObject]@{ + name = 'CIPP - Microsoft 365 Users' + allowMultiple = $true + fields = @( + [PSCustomObject]@{ + fieldLabel = 'User Links' + fieldName = 'cippUserLinks' + fieldType = 'WYSIWYG' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + fieldContent = @{ + required = $False + advancedSettings = @{ + expandLargeValueOnRender = $True + } + } + }, + [PSCustomObject]@{ + fieldLabel = 'User Summary' + fieldName = 'cippUserSummary' + fieldType = 'WYSIWYG' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + fieldContent = @{ + required = $False + advancedSettings = @{ + expandLargeValueOnRender = $True + } + } + }, + [PSCustomObject]@{ + fieldLabel = 'User Devices' + fieldName = 'cippUserDevices' + fieldType = 'WYSIWYG' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + fieldContent = @{ + required = $False + advancedSettings = @{ + expandLargeValueOnRender = $True + } + } + }, + [PSCustomObject]@{ + fieldLabel = 'User Groups' + fieldName = 'cippUserGroups' + fieldType = 'WYSIWYG' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + fieldContent = @{ + required = $False + advancedSettings = @{ + expandLargeValueOnRender = $True + } + } + }, + [PSCustomObject]@{ + fieldLabel = 'User ID' + fieldName = 'cippUserID' + fieldType = 'TEXT' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + }, + [PSCustomObject]@{ + fieldLabel = 'User UPN' + fieldName = 'cippUserUPN' + fieldType = 'TEXT' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + } + ) + } + + $NinjaOneUsersTemplate = Invoke-NinjaOneDocumentTemplate -Template $UserDocTemplate -Token $Token + + + # Get NinjaOne Users + [System.Collections.Generic.List[PSCustomObject]]$NinjaOneUserDocs = ((Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents?organizationIds=$($NinjaOneOrg)&templateIds=$($NinjaOneUsersTemplate.id)" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100) + + foreach ($NinjaDoc in $NinjaOneUserDocs) { + $ParsedFields = [pscustomobject]@{} + foreach ($Field in $NinjaDoc.Fields) { + if ($Field.value.text) { + $FieldVal = $Field.value.text + } else { + $FieldVal = $Field.value + } + $ParsedFields | Add-Member -NotePropertyName $Field.name -NotePropertyValue $FieldVal + } + $NinjaDoc | Add-Member -NotePropertyName 'ParsedFields' -NotePropertyValue $ParsedFields -Force + } + + Write-Information 'Fetched NinjaOne User Docs' + } + + [System.Collections.Generic.List[PSCustomObject]]$NinjaOneLicenseDocs = @() + if ($Configuration.LicenseDocumentsEnabled) { + # NinjaOne License Documents + $LicenseDocTemplate = [PSCustomObject]@{ + name = 'CIPP - Microsoft 365 Licenses' + allowMultiple = $true + fields = @( + [PSCustomObject]@{ + fieldLabel = 'License Summary' + fieldName = 'cippLicenseSummary' + fieldType = 'WYSIWYG' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + fieldContent = @{ + required = $False + advancedSettings = @{ + expandLargeValueOnRender = $True + } + } + }, + [PSCustomObject]@{ + fieldLabel = 'License Users' + fieldName = 'cippLicenseUsers' + fieldType = 'WYSIWYG' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + fieldContent = @{ + required = $False + advancedSettings = @{ + expandLargeValueOnRender = $True + } + } + }, + [PSCustomObject]@{ + fieldLabel = 'License ID' + fieldName = 'cippLicenseID' + fieldType = 'TEXT' + fieldTechnicianPermission = 'READ_ONLY' + fieldScriptPermission = 'NONE' + fieldApiPermission = 'READ_WRITE' + fieldContent = @{ + required = $False + } + } + ) + } + + $NinjaOneLicenseTemplate = Invoke-NinjaOneDocumentTemplate -Template $LicenseDocTemplate -Token $Token + + # Get NinjaOne Licenses + [System.Collections.Generic.List[PSCustomObject]]$NinjaOneLicenseDocs = ((Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents?organizationIds=$($NinjaOneOrg)&templateIds=$($NinjaOneLicenseTemplate.id)" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100) + + foreach ($NinjaLic in $NinjaOneLicenseDocs) { + $ParsedFields = [pscustomobject]@{} + foreach ($Field in $NinjaLic.Fields) { + if ($Field.value.text) { + $FieldVal = $Field.value.text + } else { + $FieldVal = $Field.value + } + $ParsedFields | Add-Member -NotePropertyName $Field.name -NotePropertyValue $FieldVal + } + $NinjaLic | Add-Member -NotePropertyName 'ParsedFields' -NotePropertyValue $ParsedFields -Force + } + + Write-Information 'Fetched NinjaOne License Docs' + } + + + # Create the update objects we will use to update NinjaOne + $NinjaOrgUpdate = [PSCustomObject]@{} + [System.Collections.Generic.List[PSCustomObject]]$NinjaLicenseUpdates = @() + [System.Collections.Generic.List[PSCustomObject]]$NinjaLicenseCreation = @() + + # Replace direct Graph/Exchange calls with cached data + $ExtensionCache = Get-CippExtensionReportingData -TenantFilter $Customer.defaultDomainName -IncludeMailboxes + + # Map cached data to variables + $Users = $ExtensionCache.Users + $licensedUsers = $Users | Where-Object { $null -ne $_.assignedLicenses.skuId } + $AllRoles = $ExtensionCache.AllRoles + $Devices = $ExtensionCache.Devices + $DeviceCompliancePolicies = $ExtensionCache.DeviceCompliancePolicies + $OneDriveDetails = $ExtensionCache.OneDriveUsage + $CASFull = $ExtensionCache.CASMailbox + $MailboxDetailedFull = $ExtensionCache.Mailboxes + $MailboxStatsFull = $ExtensionCache.MailboxUsage + $Permissions = $ExtensionCache.MailboxPermissions + $SecureScore = $ExtensionCache.SecureScore + $Subscriptions = if ($ExtensionCache.Licenses) { $ExtensionCache.Licenses.TermInfo | Where-Object { $null -ne $_ } } else { @() } + $SecureScoreProfiles = $ExtensionCache.SecureScoreControlProfiles + $TenantDetails = $ExtensionCache.Organization + $RawDomains = $ExtensionCache.Domains + $AllGroups = $ExtensionCache.Groups + $Licenses = $ExtensionCache.Licenses + $RawDomains = $ExtensionCache.Domains + $AllConditionalAccessPolicies = $ExtensionCache.ConditionalAccess + + $CurrentSecureScore = ($SecureScore | Sort-Object createDateTime -Descending | Select-Object -First 1) + $MaxSecureScoreRank = ($SecureScoreProfiles.rank | Measure-Object -Maximum).maximum + + $MaxSecureScore = $CurrentSecureScore.maxScore + + [System.Collections.Generic.List[PSCustomObject]]$SecureScoreParsed = foreach ($Score in $CurrentSecureScore.controlScores) { + $MatchedProfile = $SecureScoreProfiles | Where-Object { $_.id -eq $Score.controlName } + [PSCustomObject]@{ + Category = $Score.controlCategory + 'Recommended Action' = $MatchedProfile.title + 'Score Impact' = [System.Math]::Round((((($MatchedProfile.maxScore) - ($Score.score)) / $MaxSecureScore) * 100), 2) + Link = "https://security.microsoft.com/securescore?actionId=$($Score.controlName)&viewid=actions&tid=$($Customer.customerId)" + name = $Score.controlName + score = $Score.score + IsApplicable = $Score.IsApplicable + scoreInPercentage = $Score.scoreInPercentage + maxScore = $MatchedProfile.maxScore + rank = $MatchedProfile.rank + adjustedRank = $MaxSecureScoreRank - $MatchedProfile.rank + + } + } + + # Grab licensed users + $licensedUsers = $Users | Where-Object { $null -ne $_.AssignedLicenses.SkuId } | Sort-Object UserPrincipalName + + $Roles = foreach ($Role in $AllRoles) { + # Get members from inline property (no longer separate cache entries) + $Members = $Role.members + [PSCustomObject]@{ + ID = $Role.id + DisplayName = $Role.displayName + Description = $Role.description + Members = $Members + ParsedMembers = if ($Members) { $Members.displayName -join ', ' } else { '' } + } + } + + $AdminUsers = (($Roles | Where-Object { $_.Displayname -match 'Administrator' }).Members | Where-Object { $null -ne $_.displayName }) + + Write-Verbose "$(Get-Date) - Fetching Domains" + + $customerDomains = ($RawDomains | Where-Object { $_.IsVerified -eq $true }).id -join ', ' | Out-String + + Write-Verbose "$(Get-Date) - Parsing Licenses" + + # Get the license overview for the tenant + if ($Licenses) { + $LicensesParsed = $Licenses | Where-Object { $_.PrepaidUnits.Enabled -gt 0 } | Select-Object @{N = 'License Name'; E = { (Get-Culture).TextInfo.ToTitleCase((convert-skuname -skuname $_.SkuPartNumber).Tolower()) } }, @{N = 'Active'; E = { $_.PrepaidUnits.Enabled } }, @{N = 'Consumed'; E = { $_.ConsumedUnits } }, @{N = 'Unused'; E = { $_.PrepaidUnits.Enabled - $_.ConsumedUnits } } + } + + Write-Verbose "$(Get-Date) - Parsing Device Compliance Policies" + + $DeviceComplianceDetails = foreach ($Policy in $DeviceCompliancePolicies) { + $StatusItems = Get-CIPPDbItem -TenantFilter $Customer.defaultDomainName -Type "IntuneDeviceCompliancePolicies_$($Policy.id)" | Where-Object { $_.RowKey -notlike '*-Count' } + $DeviceStatuses = if ($StatusItems) { $StatusItems | ForEach-Object { $_.Data | ConvertFrom-Json } } else { @() } + [pscustomobject]@{ + ID = $Policy.id + DisplayName = $Policy.displayName + DeviceStatuses = $DeviceStatuses + } + } + + Write-Verbose "$(Get-Date) - Parsing Groups" + + $Groups = foreach ($Group in $AllGroups) { + # Get members from inline property (no longer separate cache entries) + $Members = $Group.members + [pscustomobject]@{ + ID = $Group.id + DisplayName = $Group.displayName + Members = $Members + } + } + Write-Verbose "$(Get-Date) - Parsing Conditional Access Polcies" + + $ConditionalAccessMembers = foreach ($CAPolicy in $AllConditionalAccessPolicies) { + #Setup User Array + [System.Collections.Generic.List[PSCustomObject]]$CAMembers = @() + + # Check for All Include + if ($CAPolicy.conditions.users.includeUsers -contains 'All') { + $Users | ForEach-Object { $null = $CAMembers.add($_.id) } + } else { + # Add any specific all users to the array + $CAPolicy.conditions.users.includeUsers | ForEach-Object { $null = $CAMembers.add($_) } + } + + # Now all members of groups + foreach ($CAIGroup in $CAPolicy.conditions.users.includeGroups) { + foreach ($Member in ($Groups | Where-Object { $_.id -eq $CAIGroup }).Members) { + $null = $CAMembers.add($Member.id) + } + } + + # Now all members of roles + foreach ($CAIRole in $CAPolicy.conditions.users.includeRoles) { + foreach ($Member in ($Roles | Where-Object { $_.id -eq $CAIRole }).Members) { + $null = $CAMembers.add($Member.id) + } + } + + # Parse to Unique members + $CAMembers = $CAMembers | Select-Object -Unique + + if ($CAMembers) { + # Now remove excluded users + $CAPolicy.conditions.users.excludeUsers | ForEach-Object { $null = $CAMembers.remove($_) } + + # Excluded Groups + foreach ($CAEGroup in $CAPolicy.conditions.users.excludeGroups) { + foreach ($Member in ($Groups | Where-Object { $_.id -eq $CAEGroup }).Members) { + $null = $CAMembers.remove($Member.id) + } + } + + # Excluded Roles + foreach ($CAIRole in $CAPolicy.conditions.users.excludeRoles) { + foreach ($Member in ($Roles | Where-Object { $_.id -eq $CAERole }).Members) { + $null = $CAMembers.remove($Member.id) + } + } + } + + [pscustomobject]@{ + ID = $CAPolicy.id + DisplayName = $CAPolicy.DisplayName + Members = $CAMembers + } + } + + $FetchEnd = Get-Date + + ############################ Format and Synchronize to NinjaOne ############################ + $DeviceTable = Get-CippTable -tablename 'CacheNinjaOneParsedDevices' + $DeviceMapTable = Get-CippTable -tablename 'NinjaOneDeviceMap' + + + $DeviceFilter = "PartitionKey eq '$($Customer.CustomerId)'" + [System.Collections.Generic.List[PSCustomObject]]$RawParsedDevices = Get-CIPPAzDataTableEntity @DeviceTable -Filter $DeviceFilter + if (($RawParsedDevices | Measure-Object).count -eq 0) { + [System.Collections.Generic.List[PSCustomObject]]$ParsedDevices = @() + } else { + [System.Collections.Generic.List[PSCustomObject]]$ParsedDevices = $RawParsedDevices.RawDevice | ForEach-Object { $_ | ConvertFrom-Json -Depth 100 } + } + + [System.Collections.Generic.List[PSCustomObject]]$DeviceMap = Get-CIPPAzDataTableEntity @DeviceMapTable -Filter $DeviceFilter + if (($DeviceMap | Measure-Object).count -eq 0) { + [System.Collections.Generic.List[PSCustomObject]]$DeviceMap = @() + } + + # Parse Devices + foreach ($Device in $Devices | Where-Object { $_.id -notin $ParsedDevices.id }) { + + # First lets match on serial + $MatchedNinjaDevice = $NinjaDevices | Where-Object { $_.system.biosSerialNumber -eq $Device.SerialNumber -or $_.system.serialNumber -eq $Device.SerialNumber } + + # See if we found just one device, if not match on name + if (($MatchedNinjaDevice | Measure-Object).count -ne 1) { + $MatchedNinjaDevice = $NinjaDevices | Where-Object { $_.systemName -eq $Device.Name -or $_.dnsName -eq $Device.Name } + } + + # Check on a match again and set name + if (($MatchedNinjaDevice | Measure-Object).count -eq 1) { + $ParsedDeviceName = '' + $Device.deviceName + '' + } else { + continue + } + + # Match Users + [System.Collections.Generic.List[String]]$DeviceUsers = @() + [System.Collections.Generic.List[String]]$DeviceUserIDs = @() + [System.Collections.Generic.List[PSCustomObject]]$DeviceUsersDetail = @() + + $MappedDevice = ($DeviceMap | Where-Object { $_.M365ID -eq $device.id }) + if (($MappedDevice | Measure-Object).count -eq 0) { + $DeviceMapItem = [PSCustomObject]@{ + PartitionKey = $Customer.CustomerId + RowKey = $device.AzureADDeviceId + NinjaOneID = $MatchedNinjaDevice.id + M365ID = $device.id + } + $DeviceMap.Add($DeviceMapItem) + Add-CIPPAzDataTableEntity @DeviceMapTable -Entity $DeviceMapItem -Force + + } elseif ($MappedDevice.NinjaOneID -ne $MatchedNinjaDevice.id) { + $MappedDevice.NinjaOneID = $MatchedNinjaDevice.id + Add-CIPPAzDataTableEntity @DeviceMapTable -Entity $MappedDevice -Force + } + + + + + foreach ($DeviceUser in $Device.usersloggedon) { + $FoundUser = ($Users | Where-Object { $_.id -eq $DeviceUser.userid }) + $DeviceUsers.add($FoundUser.DisplayName) + $DeviceUserIDs.add($DeviceUser.userId) + $DeviceUsersDetail.add([pscustomobject]@{ + id = $FoundUser.Id + name = $FoundUser.displayName + upn = $FoundUser.userPrincipalName + lastlogin = ($DeviceUser.lastLogOnDateTime).ToString('yyyy-MM-dd') + } + ) + } + + # Compliance Polciies + [System.Collections.Generic.List[PSCustomObject]]$DevicePolcies = @() + foreach ($Policy in $DeviceComplianceDetails) { + if ($device.deviceName -in $Policy.DeviceStatuses.deviceDisplayName) { + $Status = $Policy.DeviceStatuses | Where-Object { $_.deviceDisplayName -eq $device.deviceName } + foreach ($Stat in $Status) { + if ($Stat.status -ne 'unknown') { + $DevicePolcies.add([PSCustomObject]@{ + Name = $Policy.DisplayName + User = $Stat.username + Status = $Stat.status + 'Last Report' = "$(Get-Date($Stat.lastReportedDateTime[0]) -Format 'yyyy-MM-dd HH:mm:ss')" + 'Grace Expiry' = "$(Get-Date($Stat.complianceGracePeriodExpirationDateTime[0]) -Format 'yyyy-MM-dd HH:mm:ss')" + }) + } + } + + } + } + + # Device Groups + $DeviceGroups = foreach ($Group in $Groups) { + if ($device.azureADDeviceId -in $Group.members.deviceId) { + [PSCustomObject]@{ + Name = $Group.displayName + } + } + } + + $ParsedDevice = [PSCustomObject]@{ + PartitionKey = $Customer.CustomerId + RowKey = $device.AzureADDeviceId + id = $Device.id + Name = $Device.deviceName + SerialNumber = $Device.serialNumber + OS = $Device.operatingSystem + OSVersion = $Device.osversion + Enrolled = $Device.enrolledDateTime + Compliance = $Device.complianceState + LastSync = $Device.lastSyncDateTime + PrimaryUser = $Device.userDisplayName + Owner = $Device.ownerType + DeviceType = $Device.DeviceType + Make = $Device.make + Model = $Device.model + ManagementState = $Device.managementState + RegistrationState = $Device.deviceRegistrationState + JailBroken = $Device.jailBroken + EnrollmentType = $Device.deviceEnrollmentType + EntraIDRegistration = $Device.azureADRegistered + EntraIDID = $Device.azureADDeviceId + JoinType = $Device.joinType + SecurityPatchLevel = $Device.securityPatchLevel + Users = $DeviceUsers -join ', ' + UserIDs = $DeviceUserIDs + UserDetails = $DeviceUsersDetail + CompliancePolicies = $DevicePolcies + Groups = $DeviceGroups + NinjaDevice = $MatchedNinjaDevice + DeviceLink = $ParsedDeviceName + } + + Add-CIPPAzDataTableEntity @DeviceTable -Entity @{ + PartitionKey = $Customer.CustomerId + RowKey = $device.AzureADDeviceId + RawDevice = "$($ParsedDevice | ConvertTo-Json -Depth 100 -Compress)" + } -Force + + $ParsedDevices.add($ParsedDevice) + + ### Update NinjaOne Device Fields + if ($MatchedNinjaDevice) { + $NinjaDeviceUpdate = [PSCustomObject]@{} + if ($MappedFields.DeviceLinks) { + $DeviceLinksData = @( + @{ + Name = 'Entra ID' + Link = "https://entra.microsoft.com/$($Customer.defaultDomainName)/#view/Microsoft_AAD_Devices/DeviceDetailsMenuBlade/~/Properties/deviceId/$($Device.azureADDeviceId)" + Icon = 'fab fa-microsoft' + }, + @{ + Name = 'Intune (Devices)' + Link = "https://intune.microsoft.com/$($Customer.defaultDomainName)/#view/Microsoft_Intune_Devices/DeviceSettingsMenuBlade/~/overview/mdmDeviceId/$($Device.id)" + Icon = 'fas fa-laptop' + }, + @{ + Name = 'View Devices in CIPP' + Link = "https://$($CIPPURL)/endpoint/MEM/devices?tenantFilter=$($Customer.defaultDomainName)" + Icon = 'far fa-eye' + } + ) + + + + $DeviceLinksHTML = Get-NinjaOneLinks -Data $DeviceLinksData -SmallCols 2 -MedCols 3 -LargeCols 3 -XLCols 3 + + $DeviceLinksHtml = '
    ' + $DeviceLinksHTML + '
    ' + + $NinjaDeviceUpdate | Add-Member -NotePropertyName $MappedFields.DeviceLinks -NotePropertyValue @{'html' = $DeviceLinksHtml } + + + } + + if ($MappedFields.DeviceSummary) { + + # Set Compliance Status + if ($Device.complianceState -eq 'compliant') { + $Compliance = '   Compliant' + } else { + $Compliance = '   Not Compliant' + } + + # Device Details + $DeviceDetailsData = [PSCustomObject]@{ + 'Device Name' = $Device.deviceName + 'Primary User' = $Device.userDisplayName + 'Primary User Email' = $Device.userPrincipalName + 'Owner' = $Device.ownerType + 'Enrolled' = $Device.enrolledDateTime + 'Last Checkin' = $Device.lastSyncDateTime + 'Compliant' = $Compliance + 'Management Type' = $Device.managementAgent + } + + $DeviceDetailsCard = Get-NinjaOneInfoCard -Title 'Device Details' -Data $DeviceDetailsData -Icon 'fas fa-laptop' + + # Device Hardware + $DeviceHardwareData = [PSCustomObject]@{ + 'Serial Number' = $Device.serialNumber + 'OS' = $Device.operatingSystem + 'OS Versions' = $Device.osVersion + 'Chassis' = $Device.chassisType + 'Model' = $Device.model + 'Manufacturer' = $Device.manufacturer + } + + $DeviceHardwareCard = Get-NinjaOneInfoCard -Title 'Device Details' -Data $DeviceHardwareData -Icon 'fas fa-microchip' + + # Device Enrollment + $DeviceEnrollmentData = [PSCustomObject]@{ + 'Enrollment Type' = $Device.deviceEnrollmentType + 'Join Type' = $Device.joinType + 'Registration State' = $Device.deviceRegistrationState + 'Autopilot Enrolled' = $Device.autopilotEnrolled + 'Device Guard Requirements' = $Device.hardwareinformation.deviceGuardVirtualizationBasedSecurityHardwareRequirementState + 'Virtualistation Based Security' = $Device.hardwareinformation.deviceGuardVirtualizationBasedSecurityState + 'Credential Guard' = $Device.hardwareinformation.deviceGuardLocalSystemAuthorityCredentialGuardState + } + + $DeviceEnrollmentCard = Get-NinjaOneInfoCard -Title 'Device Enrollment' -Data $DeviceEnrollmentData -Icon 'fas fa-table-list' + + + # Compliance Policies + $DevicePoliciesFormatted = $DevicePolcies | ConvertTo-Html -As Table -Fragment + $DevicePoliciesHTML = ([System.Web.HttpUtility]::HtmlDecode($DevicePoliciesFormatted) -replace '
    ', '') -replace '', '' + $TitleLink = "https://intune.microsoft.com/$($Customer.defaultDomainName)/#view/Microsoft_Intune_Devices/DeviceSettingsMenuBlade/~/compliance/mdmDeviceId/$($Device.id)/primaryUserId/" + $DeviceCompliancePoliciesCard = Get-NinjaOneCard -Title 'Device Compliance Policies' -Body $DevicePoliciesHTML -Icon 'fas fa-list-check' -TitleLink $TitleLink + + # Device Groups + $DeviceGroupsTable = foreach ($Group in $Groups) { + if ($device.azureADDeviceId -in $Group.members.deviceId) { + [PSCustomObject]@{ + Name = $Group.displayName + } + } + } + $DeviceGroupsFormatted = $DeviceGroupsTable | ConvertTo-Html -Fragment + $DeviceGroupsHTML = ([System.Web.HttpUtility]::HtmlDecode($DeviceGroupsFormatted) -replace '', '') -replace '', '' + $DeviceGroupsCard = Get-NinjaOneCard -Title 'Device Groups' -Body $DeviceGroupsHTML -Icon 'fas fa-layer-group' + + $DeviceSummaryHTML = '
    ' + + '
    ' + $DeviceDetailsCard + + '
    ' + $DeviceHardwareCard + + '
    ' + $DeviceEnrollmentCard + + '
    ' + $DeviceCompliancePoliciesCard + + '
    ' + $DeviceGroupsCard + + '
    ' + + $NinjaDeviceUpdate | Add-Member -NotePropertyName $MappedFields.DeviceSummary -NotePropertyValue @{'html' = $DeviceSummaryHTML } + } + } + + if ($MappedFields.DeviceCompliance) { + if ($Device.complianceState -eq 'compliant') { + $Compliant = 'Compliant' + } else { + $Compliant = 'Non-Compliant' + } + $NinjaDeviceUpdate | Add-Member -NotePropertyName $MappedFields.DeviceCompliance -NotePropertyValue $Compliant + + } + + # Update Device + if ($MappedFields.DeviceSummary -or $MappedFields.DeviceLinks -or $MappedFields.DeviceCompliance) { + $Result = Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/device/$($MatchedNinjaDevice.id)/custom-fields" -Method PATCH -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ($NinjaDeviceUpdate | ConvertTo-Json -Depth 100) + } + } + + # Enable Device Updates Subscription if needed. + if ($MappedFields.DeviceCompliance) { + New-CIPPGraphSubscription -TenantFilter $TenantFilter -TypeofSubscription 'updated' -BaseURL $CIPPUrl -Resource 'devices' -EventType 'DeviceUpdate' -Headers 'NinjaOneSync' + } + + Write-Information 'Processed Devices' + + ########## Create / Update User Objects + + if ($Configuration.LicensedOnly -eq $True) { + $SyncUsers = $licensedUsers + } else { + $SyncUsers = $Users + } + + + $UsersTable = Get-CippTable -tablename 'CacheNinjaOneParsedUsers' + $UsersUpdateTable = Get-CippTable -tablename 'CacheNinjaOneUsersUpdate' + $UsersMapTable = Get-CippTable -tablename 'NinjaOneUserMap' + + + $UsersFilter = "PartitionKey eq '$($Customer.CustomerId)'" + [System.Collections.Generic.List[PSCustomObject]]$ParsedUsers = Get-CIPPAzDataTableEntity @UsersTable -Filter $UsersFilter + if (($ParsedUsers | Measure-Object).count -eq 0) { + [System.Collections.Generic.List[PSCustomObject]]$ParsedUsers = @() + } + + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCache = Get-CIPPAzDataTableEntity @UsersUpdateTable -Filter $UsersFilter + if (($NinjaUserCache | Measure-Object).count -eq 0) { + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCache = @() + } + + [System.Collections.Generic.List[PSCustomObject]]$UsersMap = Get-CIPPAzDataTableEntity @UsersMapTable -Filter $UsersFilter + if (($UsersMap | Measure-Object).count -eq 0) { + [System.Collections.Generic.List[PSCustomObject]]$UsersMap = @() + } + + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserUpdates = $NinjaUserCache | Where-Object { $_.action -eq 'Update' } + if (($NinjaUserUpdates | Measure-Object).count -eq 0) { + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserUpdates = @() + } + + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCreation = $NinjaUserCache | Where-Object { $_.action -eq 'Create' } + if (($NinjaUserCreation | Measure-Object).count -eq 0) { + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCreation = @() + } + + + foreach ($user in $SyncUsers | Where-Object { $_.id -notin $ParsedUsers.RowKey }) { + try { + + $NinjaOneUser = $NinjaOneUserDocs | Where-Object { $_.ParsedFields.cippUserID -eq $User.ID } + if (($NinjaOneUser | Measure-Object).count -gt 1) { + throw 'Multiple Users with the same ID found' + } + + + $UserGroups = foreach ($Group in $Groups) { + if ($User.id -in $Group.Members.id) { + $FoundGroup = $AllGroups | Where-Object { $_.id -eq $Group.id } + [PSCustomObject]@{ + 'Display Name' = $FoundGroup.displayName + 'Mail Enabled' = $FoundGroup.mailEnabled + 'Mail' = $FoundGroup.mail + 'Security Group' = $FoundGroup.securityEnabled + 'Group Types' = $FoundGroup.groupTypes -join ',' + } + } + } + + + $UserPolicies = foreach ($cap in $ConditionalAccessMembers) { + if ($User.id -in $Cap.Members) { + $temp = [PSCustomObject]@{ + displayName = $cap.displayName + } + $temp + } + } + + #$PermsRequest = '' + $StatsRequest = '' + $MailboxDetailedRequest = '' + $CASRequest = '' + + $CASRequest = $CASFull | Where-Object { $_.ExternalDirectoryObjectId -eq $User.iD } + $MailboxDetailedRequest = $MailboxDetailedFull | Where-Object { $_.ExternalDirectoryObjectId -eq $User.iD } + $StatsRequest = $MailboxStatsFull | Where-Object { $_.userPrincipalName -eq $User.UserPrincipalName } + + + $ParsedPerms = foreach ($Perm in $Permissions) { + if ($Perm.User -ne 'NT AUTHORITY\SELF') { + [pscustomobject]@{ + User = $Perm.User + AccessRights = $Perm.PermissionList.AccessRights -join ', ' + } + } + } + + try { + $TotalItemSize = [math]::Round($StatsRequest.storageUsedInBytes / 1Gb, 2) + } catch { + $TotalItemSize = 0 + } + + $UserMailSettings = [pscustomobject]@{ + ForwardAndDeliver = $MailboxDetailedRequest.DeliverToMailboxAndForward + ForwardingAddress = $MailboxDetailedRequest.ForwardingAddress + ' ' + $MailboxDetailedRequest.ForwardingSmtpAddress + LitigationHold = $MailboxDetailedRequest.LitigationHoldEnabled + HiddenFromAddressLists = $MailboxDetailedRequest.HiddenFromAddressListsEnabled + EWSEnabled = $CASRequest.EwsEnabled + MailboxMAPIEnabled = $CASRequest.MAPIEnabled + MailboxOWAEnabled = $CASRequest.OWAEnabled + MailboxImapEnabled = $CASRequest.ImapEnabled + MailboxPopEnabled = $CASRequest.PopEnabled + MailboxActiveSyncEnabled = $CASRequest.ActiveSyncEnabled + Permissions = $ParsedPerms + ProhibitSendQuota = $StatsRequest.prohibitSendQuotaInBytes + ProhibitSendReceiveQuota = $StatsRequest.prohibitSendReceiveQuotaInBytes + ItemCount = [math]::Round($StatsRequest.itemCount, 2) + TotalItemSize = $StatsRequest.totalItemSize + StorageUsedInBytes = $StatsRequest.storageUsedInBytes + } + + + $UserDevicesDetailsRaw = $ParsedDevices | Where-Object { $User.id -in $_.UserIDS } + + + $UserDevices = foreach ($UserDevice in $ParsedDevices | Where-Object { $User.id -in $_.UserIDS }) { + + $MatchedNinjaDevice = $UserDevice.NinjaDevice + $ParsedDeviceName = $UserDevice.DeviceLink + + # Set Last Login Time + $LastLoginTime = ($UserDevice.UserDetails | Where-Object { $_.id -eq $User.id }).lastLogin + if (!$LastLoginTime) { + $LastLoginTime = 'Unknown' + } + + # Set Compliance Status + if ($UserDevice.Compliance -eq 'compliant') { + $ComplianceIcon = '' + } else { + $ComplianceIcon = '' + } + + # OS Icon + $OSIcon = switch ($UserDevice.OS) { + 'Windows' { '' } + 'iOS' { '' } + 'Android' { '' } + 'macOS' { '' } + } + + '
  • ' + "$ComplianceIcon $OSIcon $($ParsedDeviceName) ($LastLoginTime)
  • " + + } + + + $aliases = (($user.ProxyAddresses | Where-Object { $_ -cnotmatch 'SMTP' -and $_ -notmatch '.onmicrosoft.com' }) -replace 'SMTP:', ' ') -join ', ' + + + $userLicenses = ($user.AssignedLicenses.SkuID | ForEach-Object { + $UserLic = $_ + try { + $SkuPartNumber = ($Licenses | Where-Object { $_.SkuId -eq $UserLic }).SkuPartNumber + '
  • ' + "$((Get-Culture).TextInfo.ToTitleCase((convert-skuname -skuname $SkuPartNumber).Tolower()))
  • " + } catch {} + }) -join '' + + + + $UserOneDriveStats = $OneDriveDetails | Where-Object { $_.ownerPrincipalName -eq $User.userPrincipalName } | Select-Object -First 1 + $UserOneDriveUse = $UserOneDriveStats.storageUsedInBytes / 1GB + $UserOneDriveTotal = $UserOneDriveStats.storageAllocatedInBytes / 1GB + + if ($UserOneDriveTotal) { + $OneDriveUse = [PSCustomObject]@{ + Enabled = $True + Used = $UserOneDriveUse + Total = $UserOneDriveTotal + Percent = ($UserOneDriveUse / $UserOneDriveTotal) * 100 + } + + $OneDriveUseColor = if ($OneDriveUse.Percent -ge 95) { + '#D53948' + } elseif ($OneDriveUse.Percent -ge 85) { + '#FFA500' + } else { + '#26A644' + } + + $OneDriveParsed = '
    ' + + } else { + $OneDriveUse = [PSCustomObject]@{ + Enabled = $False + Used = 0 + Total = 0 + Percent = 0 + } + + $OneDriveParsed = 'Not Enabled' + } + + + if ($UserOneDriveStats) { + $OneDriveCardData = [PSCustomObject]@{ + 'One Drive URL' = '' + ($UserOneDriveStats.siteUrl) + '' + 'Is Deleted' = "$($UserOneDriveStats.isDeleted)" + 'Last Activity Date' = "$($UserOneDriveStats.lastActivityDate)" + 'File Count' = "$($UserOneDriveStats.fileCount)" + 'Active File Count' = "$($UserOneDriveStats.activeFileCount)" + 'Storage Used (Byte)' = "$($UserOneDriveStats.storageUsedInBytes)" + 'Storage Allocated (Byte)' = "$($UserOneDriveStats.storageAllocatedInBytes)" + 'One Drive Usage' = $OneDriveParsed + + } + } else { + $OneDriveCardData = [PSCustomObject]@{ + 'One Drive' = 'Disabled' + } + } + + + $UserMailboxStats = $MailboxStatsFull | Where-Object { $_.userPrincipalName -eq $User.userPrincipalName } | Select-Object -First 1 + $UserMailUse = $UserMailboxStats.storageUsedInBytes / 1GB + $UserMailTotal = $UserMailboxStats.prohibitSendReceiveQuotaInBytes / 1GB + + + if ($UserMailTotal) { + $MailboxUse = [PSCustomObject]@{ + Enabled = $True + Used = $UserMailUse + Total = $UserMailTotal + Percent = ($UserMailUse / $UserMailTotal) * 100 + } + + $MailboxUseColor = if ($MailboxUse.Percent -ge 95) { + '#D53948' + } elseif ($MailboxUse.Percent -ge 85) { + '#FFA500' + } else { + '#26A644' + } + + $MailboxParsed = '
    ' + + } else { + $MailboxUse = [PSCustomObject]@{ + Enabled = $False + Used = 0 + Total = 0 + Percent = 0 + } + + $MailboxParsed = 'Not Enabled' + } + + + if ($UserMailSettings.ProhibitSendQuota) { + # Calculate GB values for display + try { + $MailboxProhibitSendQuota = [math]::Round($UserMailSettings.ProhibitSendQuota / 1024 / 1024 / 1024, 2) + $MailboxProhibitSendReceiveQuota = [math]::Round($UserMailSettings.ProhibitSendReceiveQuota / 1024 / 1024 / 1024, 2) + $MailboxStorageUsed = [math]::Round($UserMailSettings.StorageUsedInBytes / 1024 / 1024 / 1024, 2) + } catch { + $MailboxProhibitSendQuota = 0 + $MailboxProhibitSendReceiveQuota = 0 + $MailboxStorageUsed = 0 + } + + $MailboxDetailsCardData = [PSCustomObject]@{ + #'Permissions' = "$($UserMailSettings.Permissions | ConvertTo-Html -Fragment | Out-String)" + 'Prohibit Send Quota' = "$($MailboxProhibitSendQuota) GB" + 'Prohibit Send Receive Quota' = "$($MailboxProhibitSendReceiveQuota) GB" + 'Item Count' = "$($UserMailSettings.ItemCount)" + 'Total Mailbox Size' = "$($MailboxStorageUsed) GB" + 'Mailbox Usage' = $MailboxParsed + } + + $MailboxSettingsCard = [PSCustomObject]@{ + 'Forward and Deliver' = "$($UserMailSettings.ForwardAndDeliver)" + 'Forwarding Address' = "$($UserMailSettings.ForwardingAddress)" + 'Litigation Hold' = "$($UserMailSettings.LitigationHold)" + 'Hidden From Address Lists' = "$($UserMailSettings.HiddenFromAddressLists)" + 'EWS Enabled' = "$($UserMailSettings.EWSEnabled)" + 'MAPI Enabled' = "$($UserMailSettings.MailboxMAPIEnabled)" + 'OWA Enabled' = "$($UserMailSettings.MailboxOWAEnabled)" + 'IMAP Enabled' = "$($UserMailSettings.MailboxImapEnabled)" + 'POP Enabled' = "$($UserMailSettings.MailboxPopEnabled)" + 'Active Sync Enabled' = "$($UserMailSettings.MailboxActiveSyncEnabled)" + } + } else { + $MailboxDetailsCardData = [PSCustomObject]@{ + Exchange = 'Disabled' + } + $MailboxSettingsCard = [PSCustomObject]@{ + Exchange = 'Disabled' + } + } + + + # Format Conditional Access Polcies + $UserPoliciesFormatted = '
      ' + foreach ($Policy in $UserPolicies) { + $UserPoliciesFormatted = $UserPoliciesFormatted + "
    • $($Policy.displayName)
    • " + } + $UserPoliciesFormatted = $UserPoliciesFormatted + '
    ' + + + $UserOverviewCard = [PSCustomObject]@{ + 'User Name' = "$($User.displayName)" + 'User Principal Name' = "$($User.userPrincipalName)" + 'User ID' = "$($User.ID)" + 'User Enabled' = "$($User.accountEnabled)" + 'Job Title' = "$($User.jobTitle)" + 'Mobile Phone' = "$($User.mobilePhone)" + 'Business Phones' = "$($User.businessPhones -join ', ')" + 'Office Location' = "$($User.officeLocation)" + 'Aliases' = "$aliases" + 'Licenses' = "$($userLicenses)" + } + + + $Microsoft365UserLinksData = @( + @{ + Name = 'Entra ID' + Link = "https://aad.portal.azure.com/$($Customer.defaultDomainName)/#blade/Microsoft_AAD_IAM/UserDetailsMenuBlade/Profile/userId/$($User.id)" + Icon = 'fas fa-users-cog' + }, + @{ + Name = 'Sign-In Logs' + Link = "https://aad.portal.azure.com/$($Customer.defaultDomainName)/#blade/Microsoft_AAD_IAM/UserDetailsMenuBlade/SignIns/userId/$($User.id)" + Icon = 'fas fa-users-cog' + }, + @{ + Name = 'Teams Admin' + Link = "https://admin.teams.microsoft.com/users/$($User.id)/account?delegatedOrg=$($Customer.defaultDomainName)" + Icon = 'fas fa-users' + }, + @{ + Name = 'Intune (User)' + Link = "https://endpoint.microsoft.com/$($Customer.defaultDomainName)/#blade/Microsoft_AAD_IAM/UserDetailsMenuBlade/Profile/userId/$($User.ID)" + Icon = 'fas fa-laptop' + }, + @{ + Name = 'Intune (Devices)' + Link = "https://endpoint.microsoft.com/$($Customer.defaultDomainName)/#blade/Microsoft_AAD_IAM/UserDetailsMenuBlade/Devices/userId/$($User.ID)" + Icon = 'fas fa-laptop' + } + ) + + $CIPPUserLinksData = @( + @{ + Name = 'View User' + Link = "https://$($CIPPURL)/identity/administration/users/user?userId=$($User.id)&tenantFilter=$($Customer.defaultDomainName)" + Icon = 'far fa-eye' + }, + @{ + Name = 'Edit User' + Link = "https://$($CIPPURL)/identity/administration/users/user/edit?userId=$($User.id)&tenantFilter=$($Customer.defaultDomainName)" + Icon = 'fas fa-users-cog' + }, + @{ + Name = 'Research Compromise' + Link = "https://$($CIPPURL)/identity/administration/users/user/bec?userId=$($User.id)&tenantFilter=$($Customer.defaultDomainName)" + Icon = 'fas fa-user-secret' + } + ) + + # Actions + $ActionsHTML = @" +   +   +"@ + + + # Return Data for Users Summary Table + $ParsedUser = [PSCustomObject]@{ + PartitionKey = "$($Customer.CustomerId)" + RowKey = "$($User.id)" + Name = "$($User.displayName)" + UPN = "$($User.userPrincipalName)" + Aliases = "$(($User.proxyAddresses -replace 'SMTP:', '') -join ', ')" + Licenses = "
      $userLicenses
    " + Mailbox = "$($MailboxUse)" + MailboxParsed = "$($MailboxParsed)" + OneDrive = "$($OneDriveUse)" + OneDriveParsed = "$($OneDriveParsed)" + Devices = "
      $($UserDevices -join '')
    " + Actions = "$($ActionsHTML)" + } + + + Add-CIPPAzDataTableEntity @UsersTable -Entity $ParsedUser -Force + $ParsedUsers.add($ParsedUser) + + + if ($Configuration.UserDocumentsEnabled -eq $True) { + + # Format into Ninja HTML + # Links + $M365UserLinksHTML = Get-NinjaOneLinks -Data $Microsoft365UserLinksData -Title 'Portals' -SmallCols 2 -MedCols 3 -LargeCols 3 -XLCols 3 + $CIPPUserLinksHTML = Get-NinjaOneLinks -Data $CIPPUserLinksData -Title 'CIPP Links' -SmallCols 2 -MedCols 3 -LargeCols 3 -XLCols 3 + $UserLinksHTML = '
    ' + $M365UserLinksHTML + '
    ' + $CIPPUserLinksHTML + '
    ' + + + # UsersSummaryCards: + $UserOverviewCardHTML = Get-NinjaOneInfoCard -Title 'User Details' -Data $UserOverviewCard -Icon 'fas fa-user' + $MailboxDetailsCardHTML = Get-NinjaOneInfoCard -Title 'Mailbox Details' -Data $MailboxDetailsCardData -Icon 'fas fa-envelope' + $MailboxSettingsCardHTML = Get-NinjaOneInfoCard -Title 'Mailbox Settings' -Data $MailboxSettingsCard -Icon 'fas fa-envelope' + $OneDriveCardHTML = Get-NinjaOneInfoCard -Title 'OneDrive Details' -Data $OneDriveCardData -Icon 'fas fa-envelope' + $UserPolciesCard = Get-NinjaOneCard -Title 'Assigned Conditional Access Policies' -Body $UserPoliciesFormatted + + + $UserSummaryHTML = '
    ' + + '
    ' + $UserOverviewCardHTML + + '
    ' + $MailboxDetailsCardHTML + + '
    ' + $MailboxSettingsCardHTML + + '
    ' + $OneDriveCardHTML + + '
    ' + $UserPolciesCard + + '
    ' + $DeviceSummaryCardHTML + + '
    ' + + + $UserDeviceDetailsTable = $UserDevicesDetailsRaw | Select-Object @{N = 'Name'; E = { $_.DeviceLink } }, + @{n = 'Enrolled'; e = { $_.Enrolled } }, + @{n = 'Last Sync'; e = { $_.LastSync } }, + @{n = 'OS'; e = { $_.OS } }, + @{n = 'OS Version'; e = { $_.OSVersion } }, + @{n = 'State'; e = { $_.Compliance } }, + @{n = 'Model'; e = { $_.Model } }, + @{n = 'Manufacturer'; e = { $_.Make } } + + $UserDeviceDetailHTML = $UserDeviceDetailsTable | ConvertTo-Html -As Table -Fragment + $UserDeviceDetailHTML = ([System.Web.HttpUtility]::HtmlDecode($UserDeviceDetailHTML) -replace '
    ', '') -replace '', '' + + + $UserFields = @{ + cippUserLinks = @{'html' = $UserLinksHTML } + cippUserSummary = @{'html' = $UserSummaryHTML } + cippUserGroups = @{'html' = "$($UserGroups | ConvertTo-Html -As Table -Fragment)" } + cippUserDevices = @{'html' = $UserDeviceDetailHTML } + cippUserID = $User.id + cippUserUPN = $User.userPrincipalName + } + + + if ($NinjaOneUser) { + $UpdateObject = [PSCustomObject]@{ + PartitionKey = $Customer.CustomerId + RowKey = $User.id + Action = 'Update' + Body = "$(@{ + documentId = $NinjaOneUser.documentId + documentName = "$($User.displayName) ($($User.userPrincipalName))" + fields = $UserFields + } | ConvertTo-Json -Depth 100)" + } + $NinjaUserUpdates.Add($UpdateObject) + Add-CIPPAzDataTableEntity @UsersUpdateTable -Entity $UpdateObject -Force + + } else { + $CreateObject = [PSCustomObject]@{ + PartitionKey = $Customer.CustomerId + RowKey = $User.id + Action = 'Create' + Body = "$(@{ + documentName = "$($User.displayName) ($($User.userPrincipalName))" + documentTemplateId = ($NinjaOneUsersTemplate.id) + organizationId = [int]$NinjaOneOrg + fields = $UserFields + } | ConvertTo-Json -Depth 100)" + } + $NinjaUserCreation.Add($CreateObject) + Add-CIPPAzDataTableEntity @UsersUpdateTable -Entity $CreateObject -Force + } + + + $CreatedUsers = $Null + $UpdatedUsers = $Null + + try { + # Create New Users + if (($NinjaUserCreation | Measure-Object).count -ge 100) { + Write-Information 'Creating NinjaOne Users' + [System.Collections.Generic.List[PSCustomObject]]$CreatedUsers = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents" -Method POST -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ("[$($NinjaUserCreation.body -join ',')]") -EA Stop).content | ConvertFrom-Json -Depth 100 + Remove-AzDataTableEntity -Force @UsersUpdateTable -Entity $NinjaUserCreation + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCreation = @() + } + } catch { + Write-Information "Bulk Creation Error, but may have been successful as only 1 record with an issue could have been the cause: $_" + } + + try { + # Update Users + if (($NinjaUserUpdates | Measure-Object).count -ge 100) { + Write-Information 'Updating NinjaOne Users' + [System.Collections.Generic.List[PSCustomObject]]$UpdatedUsers = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents" -Method PATCH -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ("[$($NinjaUserUpdates.body -join ',')]") -EA Stop).content | ConvertFrom-Json -Depth 100 + Remove-AzDataTableEntity -Force @UsersUpdateTable -Entity $NinjaUserUpdates + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserUpdates = @() + } + } catch { + Write-Information "Bulk Update Errored, but may have been successful as only 1 record with an issue could have been the cause: $_" + } + + + [System.Collections.Generic.List[PSCustomObject]]$UserDocResults = $UpdatedUsers + $CreatedUsers + + if (($UserDocResults | Where-Object { $Null -ne $_ -and $_ -ne '' } | Measure-Object).count -ge 1) { + $UserDocResults | Where-Object { $Null -ne $_ -and $_ -ne '' } | ForEach-Object { + $UserDoc = $_ + if ($UserDoc.updatedFields) { + $Field = $UserDoc.updatedFields | Where-Object { $_.name -eq 'cippUserID' } + } else { + $Field = $UserDoc.fields | Where-Object { $_.name -eq 'cippUserID' } + } + + if ($Null -ne $Field.value -and $Field.value -ne '') { + + $MappedUser = ($UsersMap | Where-Object { $_.M365ID -eq $Field.value }) + if (($MappedUser | Measure-Object).count -eq 0) { + $UserMapItem = [PSCustomObject]@{ + PartitionKey = $Customer.CustomerId + RowKey = $Field.value + NinjaOneID = $UserDoc.documentId + M365ID = $Field.value + } + $UsersMap.Add($UserMapItem) + Add-CIPPAzDataTableEntity @UsersMapTable -Entity $UserMapItem -Force + + } elseif ($MappedUser.NinjaOneID -ne $UserDoc.documentId) { + $MappedUser.NinjaOneID = $UserDoc.documentId + Add-CIPPAzDataTableEntity @UsersMapTable -Entity $MappedUser -Force + } + } else { + Write-Error "Unmatched Doc: $($UserDoc | ConvertTo-Json -Depth 100)" + } + + } + + } + + + } + } catch { + Write-Error "User $($User.UserPrincipalName): A fatal error occurred while processing user $_" + } + + } + + + + $CreatedUsers = $Null + $UpdatedUsers = $Null + + if ($Configuration.UserDocumentsEnabled -eq $True) { + try { + # Create New Users + if (($NinjaUserCreation | Measure-Object).count -ge 1) { + Write-Information 'Creating NinjaOne Users' + [System.Collections.Generic.List[PSCustomObject]]$CreatedUsers = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents" -Method POST -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ("[$($NinjaUserCreation.body -join ',')]") -EA Stop).content | ConvertFrom-Json -Depth 100 + Remove-AzDataTableEntity -Force @UsersUpdateTable -Entity $NinjaUserCreation + + } + } catch { + Write-Information "Bulk Creation Error, but may have been successful as only 1 record with an issue could have been the cause: $_" + } + + try { + # Update Users + if (($NinjaUserUpdates | Measure-Object).count -ge 1) { + Write-Information 'Updating NinjaOne Users' + [System.Collections.Generic.List[PSCustomObject]]$UpdatedUsers = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents" -Method PATCH -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ("[$($NinjaUserUpdates.body -join ',')]") -EA Stop).content | ConvertFrom-Json -Depth 100 + Remove-AzDataTableEntity -Force @UsersUpdateTable -Entity $NinjaUserUpdates + } + } catch { + Write-Information "Bulk Update Errored, but may have been successful as only 1 record with an issue could have been the cause: $_" + } + + ### Relationship Mapping + # Parse out the NinjaOne ID to MS ID + + + [System.Collections.Generic.List[PSCustomObject]]$UserDocResults = $UpdatedUsers + $CreatedUsers + + if (($UserDocResults | Where-Object { $Null -ne $_ -and $_ -ne '' } | Measure-Object).count -ge 1) { + $UserDocResults | Where-Object { $Null -ne $_ -and $_ -ne '' } | ForEach-Object { + $UserDoc = $_ + if ($UserDoc.updatedFields) { + $Field = $UserDoc.updatedFields | Where-Object { $_.name -eq 'cippUserID' } + } else { + $Field = $UserDoc.fields | Where-Object { $_.name -eq 'cippUserID' } + } + + if ($Null -ne $Field.value -and $Field.value -ne '') { + + $MappedUser = ($UsersMap | Where-Object { $_.M365ID -eq $Field.value }) + if (($MappedUser | Measure-Object).count -eq 0) { + $UserMapItem = [PSCustomObject]@{ + PartitionKey = $Customer.CustomerId + RowKey = $Field.value + NinjaOneID = $UserDoc.documentId + M365ID = $Field.value + } + $UsersMap.Add($UserMapItem) + Add-CIPPAzDataTableEntity @UsersMapTable -Entity $UserMapItem -Force + + } elseif ($MappedUser.NinjaOneID -ne $UserDoc.documentId) { + $MappedUser.NinjaOneID = $UserDoc.documentId + Add-CIPPAzDataTableEntity @UsersMapTable -Entity $MappedUser -Force + } + } else { + Write-Error "Unmatched Doc: $($UserDoc | ConvertTo-Json -Depth 100)" + } + + } + } + + + # Relate Users to Devices + foreach ($LinkDevice in $ParsedDevices | Where-Object { $null -ne $_.NinjaDevice }) { + $RelatedItems = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/related-items/with-entity/NODE/$($LinkDevice.NinjaDevice.id)" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + [System.Collections.Generic.List[PSCustomObject]]$Relations = @() + foreach ($LinkUser in $LinkDevice.UserIDs) { + $MatchedUser = $UsersMap | Where-Object { $_.M365ID -eq $LinkUser } + if (($MatchedUser | Measure-Object).count -eq 1) { + $ExistingRelation = $RelatedItems | Where-Object { $_.relEntityType -eq 'DOCUMENT' -and $_.relEntityId -eq $MatchedUser.NinjaOneID } + if (!$ExistingRelation) { + $Relations.Add( + [PSCustomObject]@{ + relEntityType = 'DOCUMENT' + relEntityId = $MatchedUser.NinjaOneID + } + ) + } + } + } + + + + try { + # Update Relations + if (($Relations | Measure-Object).count -ge 1) { + Write-Information 'Updating Relations' + $Null = Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/related-items/entity/NODE/$($LinkDevice.NinjaDevice.id)/relations" -Method POST -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json' -Body ($Relations | ConvertTo-Json -Depth 100 -AsArray) -EA Stop + Write-Information 'Completed Update' + } + } catch { + Write-Information "Creating Relations Failed: $_" + } + } + } + + ### License Document Details + if ($Configuration.LicenseDocumentsEnabled -eq $True) { + + $LicenseDetails = foreach ($License in $Licenses) { + $MatchedSubscriptions = $Subscriptions | Where-Object -Property skuid -EQ $License.skuId + + try { + $FriendlyLicenseName = $((Get-Culture).TextInfo.ToTitleCase((convert-skuname -skuname $License.SkuPartNumber).Tolower())) + } catch { + $FriendlyLicenseName = $License.SkuPartNumber + } + + + $LicenseUsers = foreach ($SubUser in $Users) { + $MatchedLicense = $SubUser.assignedLicenses | Where-Object { $License.skuId -in $_.skuId } + $MatchedPlans = $SubUser.AssignedPlans | Where-Object { $_.servicePlanId -in $License.servicePlans.servicePlanID } + if (($MatchedLicense | Measure-Object).count -gt 0 ) { + $SubRelUserID = ($UsersMap | Where-Object { $_.M365ID -eq $SubUser.id }).NinjaOneID + if ($SubRelUserID) { + $LicUserName = '' + $SubUser.displayName + '' + } else { + $LicUserName = $SubUser.displayName + } + [PSCustomObject]@{ + Name = $LicUserName + UPN = $SubUser.userPrincipalName + 'License Assigned' = $(try { $(Get-Date(($MatchedPlans | Group-Object assignedDateTime | Sort-Object Count -Desc | Select-Object -First 1).name) -Format u) } catch { 'Unknown' }) + NinjaUserDocID = $SubRelUserID + } + } + } + + $LicenseUsersHTML = $LicenseUsers | Select-Object -ExcludeProperty NinjaUserDocID | ConvertTo-Html -As Table -Fragment + $LicenseUsersHTML = ([System.Web.HttpUtility]::HtmlDecode($LicenseUsersHTML) -replace '', '') -replace '', '' + + $LicenseSummary = [PSCustomObject]@{ + 'License Name' = $FriendlyLicenseName + 'Tenant Used' = $License.consumedUnits + 'Tenant Total' = $License.prepaidUnits.enabled + 'SKU ID' = $License.skuId + } + $LicenseOverviewCardHTML = Get-NinjaOneInfoCard -Title 'License Details' -Data $LicenseSummary -Icon 'fas fa-file-invoice' + + $SubscriptionsHTML = $MatchedSubscriptions | Select-Object @{'n' = 'Subscription Licenses'; 'e' = { $_.totalLicenses } }, + @{'n' = 'Created'; 'e' = { $_.createdDateTime } }, + @{'n' = 'Renewal'; 'e' = { $_.nextLifecycleDateTime } }, + @{'n' = 'Trial'; 'e' = { $_.isTrial } }, + @{'n' = 'Status'; 'e' = { $_.Status } } | ConvertTo-Html -As Table -Fragment + + $SubscriptionsHTML = ([System.Web.HttpUtility]::HtmlDecode($SubscriptionsHTML) -replace '', '') -replace '', '' + $SubscriptionCardHTML = Get-NinjaOneCard -Title 'Subscriptions' -Body $SubscriptionsHTML -Icon 'fas fa-file-invoice' + + + $LicenseItemsTable = $License.servicePlans | Select-Object @{n = 'Plan Name'; e = { convert-skuname -skuname $_.servicePlanName } }, @{n = 'Applies To'; e = { $_.appliesTo } }, @{n = 'Provisioning Status'; e = { $_.provisioningStatus } } + $LicenseItemsHTML = $LicenseItemsTable | ConvertTo-Html -As Table -Fragment + $LicenseItemsHTML = ([System.Web.HttpUtility]::HtmlDecode($LicenseItemsHTML) -replace '', '') -replace '', '' + + $LicenseItemsCardHTML = Get-NinjaOneCard -Title 'License Items' -Body $LicenseItemsHTML -Icon 'fas fa-chart-bar' + + + $LicenseSummaryHTML = '
    ' + + '
    ' + $LicenseOverviewCardHTML + + '
    ' + $SubscriptionCardHTML + + '
    ' + $LicenseItemsCardHTML + + '
    ' + + $NinjaOneLicense = $NinjaOneLicenseDocs | Where-Object { $_.ParsedFields.cippLicenseID -eq $License.ID } + + $LicenseFields = @{ + cippLicenseSummary = @{'html' = $LicenseSummaryHTML } + cippLicenseUsers = @{'html' = $LicenseUsersHTML } + cippLicenseID = $License.id + } + + + if ($NinjaOneLicense) { + $UpdateObject = [PSCustomObject]@{ + documentId = $NinjaOneLicense.documentId + documentName = "$FriendlyLicenseName" + fields = $LicenseFields + } + $NinjaLicenseUpdates.Add($UpdateObject) + } else { + $CreateObject = [PSCustomObject]@{ + documentName = "$FriendlyLicenseName" + documentTemplateId = [int]($NinjaOneLicenseTemplate.id) + organizationId = [int]$NinjaOneOrg + fields = $LicenseFields + } + $NinjaLicenseCreation.Add($CreateObject) + } + + [PSCustomObject]@{ + Name = "$FriendlyLicenseName" + Users = $LicenseUsers.NinjaUserDocID + } + + } + + try { + # Create New Subscriptions + if (($NinjaLicenseCreation | Measure-Object).count -ge 1) { + Write-Information 'Creating NinjaOne Licenses' + [System.Collections.Generic.List[PSCustomObject]]$CreatedLicenses = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents" -Method POST -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ($NinjaLicenseCreation | ConvertTo-Json -Depth 100 -AsArray) -EA Stop).content | ConvertFrom-Json -Depth 100 + } + } catch { + Write-Information "Bulk Creation Error, but may have been successful as only 1 record with an issue could have been the cause: $_" + } + + try { + # Update Subscriptions + if (($NinjaLicenseUpdates | Measure-Object).count -ge 1) { + Write-Information 'Updating NinjaOne Licenses' + [System.Collections.Generic.List[PSCustomObject]]$UpdatedLicenses = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents" -Method PATCH -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ($NinjaLicenseUpdates | ConvertTo-Json -Depth 100 -AsArray) -EA Stop).content | ConvertFrom-Json -Depth 100 + Write-Information 'Completed Update' + } + } catch { + Write-Information "Bulk Update Errored, but may have been successful as only 1 record with an issue could have been the cause: $_" + } + + [System.Collections.Generic.List[PSCustomObject]]$LicenseDocs = $CreatedLicenses + $UpdatedLicenses + + if ($Configuration.LicenseDocumentsEnabled -eq $True -and $Configuration.UserDocumentsEnabled -eq $True) { + # Relate Subscriptions to Users + foreach ($LinkLic in $LicenseDetails) { + $MatchedLicDoc = $LicenseDocs | Where-Object { $_.documentName -eq $LinkLic.name } + if (($MatchedLicDoc | Measure-Object).count -eq 1) { + # Remove existing relations + $RelatedItems = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/related-items/with-entity/DOCUMENT/$($MatchedLicDoc.documentId)" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + [System.Collections.Generic.List[PSCustomObject]]$Relations = @() + foreach ($LinkUser in $LinkLic.Users) { + $ExistingRelation = $RelatedItems | Where-Object { $_.relEntityType -eq 'DOCUMENT' -and $_.relEntityId -eq $LinkUser } + if (!$ExistingRelation) { + $Relations.Add( + [PSCustomObject]@{ + relEntityType = 'DOCUMENT' + relEntityId = $LinkUser + } + ) + } + } + + + try { + # Update Relations + if (($Relations | Measure-Object).count -ge 1) { + Write-Information 'Updating Relations' + $Null = Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/related-items/entity/DOCUMENT/$($($MatchedLicDoc.documentId))/relations" -Method POST -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json' -Body ($Relations | ConvertTo-Json -Depth 100 -AsArray) -EA Stop + Write-Information 'Completed Update' + } + } catch { + Write-Information "Creating Relations Failed: $_" + } + + #Remove relations + foreach ($DelUser in $RelatedItems | Where-Object { $_.relEntityType -eq 'DOCUMENT' -and $_.relEntityId -notin $LinkLic.Users }) { + try { + $RelatedItems = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/related-items/$($DelUser.id)" -Method Delete -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 + } catch { + Write-Information "Failed to remove relation $($DelUser.id) from $($LinkLic.name)" + } + } + } + } + } + + } + + ####################################################################### + + + + ### M365 Links Section + if ($MappedFields.TenantLinks) { + Write-Information 'Tenant Links' + + $ManagementLinksData = @( + @{ + Name = 'M365 Admin Portal' + Link = "https://admin.cloud.microsoft?delegatedOrg=$($customer.defaultDomainName)" + Icon = 'fas fa-cogs' + }, + @{ + Name = 'Exchange Portal' + Link = "https://admin.cloud.microsoft/exchange?delegatedOrg=$($Customer.defaultDomainName)" + Icon = 'fas fa-mail-bulk' + }, + @{ + Name = 'Entra Portal' + Link = "https://entra.microsoft.com/$($Customer.defaultDomainName)" + Icon = 'fas fa-users-cog' + }, + @{ + Name = 'Intune Portal' + Link = "https://intune.microsoft.com/$($customer.defaultDomainName)/" + Icon = 'fas fa-laptop' + }, + @{ + Name = 'SharePoint Admin' + Link = "https://admin.microsoft.com/Partner/beginclientsession.aspx?CTID=$($Customer.customerId)&CSDEST=SharePoint" + Icon = 'fas fa-shapes' + }, + @{ + Name = 'Teams Admin' + Link = "https://admin.teams.microsoft.com?delegatedOrg=$($Customer.defaultDomainName)" + Icon = 'fas fa-users' + }, + @{ + Name = 'Security Portal' + Link = "https://security.microsoft.com/?tid=$($Customer.customerId)" + Icon = 'fas fa-building-shield' + }, + @{ + Name = 'Compliance Portal' + Link = "https://purview.microsoft.com/?tid=$($Customer.customerId)" + Icon = 'fas fa-user-shield' + }, + @{ + Name = 'Azure Portal' + Link = "https://portal.azure.com/$($customer.defaultDomainName)" + Icon = 'fas fa-server' + }, + @{ + Name = 'Power Platform Portal' + Link = "https://admin.powerplatform.microsoft.com/account/login/$($Customer.customerId)" + Icon = 'fa-solid fa-robot' + }, + @{ + Name = 'Power BI Portal' + Link = "https://app.powerbi.com/admin-portal?ctid=$($Customer.customerId)" + Icon = 'fas fa-bar-chart' + } + + ) + + $M365LinksHTML = Get-NinjaOneLinks -Data $ManagementLinksData -Title 'Portals' -SmallCols 2 -MedCols 3 -LargeCols 3 -XLCols 3 + + $CIPPLinksData = @( + + @{ + Name = 'CIPP Tenant Dashboard' + Link = "https://$CIPPUrl/?tenantFilter=$($Customer.defaultDomainName)" + Icon = 'fas fa-shield-halved' + }, + @{ + Name = 'List Users' + Link = "https://$CIPPUrl/identity/administration/users?tenantFilter=$($Customer.defaultDomainName)" + Icon = 'fas fa-user' + }, + @{ + Name = 'List Groups' + Link = "https://$CIPPUrl/identity/administration/groups?tenantFilter=$($Customer.defaultDomainName)" + Icon = 'fas fa-users' + }, + @{ + Name = 'List Devices' + Link = "https://$CIPPUrl/endpoint/MEM/devices?tenantFilter=$($Customer.defaultDomainName)" + Icon = 'fas fa-laptop' + }, + @{ + Name = 'Create User' + Link = "https://$CIPPUrl/identity/administration/users/add?tenantFilter=$($Customer.defaultDomainName)" + Icon = 'fas fa-user-plus' + }, + @{ + Name = 'Create Group' + Link = "https://$CIPPUrl/identity/administration/groups/add?tenantFilter=$($Customer.defaultDomainName)" + Icon = 'fas fa-user-group' + } + ) + + $CIPPLinksHTML = Get-NinjaOneLinks -Data $CIPPLinksData -Title 'CIPP Actions' -SmallCols 2 -MedCols 3 -LargeCols 3 -XLCols 3 + + $LinksHtml = '
    ' + $CIPPLinksHTML + '
    ' + + $NinjaOrgUpdate | Add-Member -NotePropertyName $MappedFields.TenantLinks -NotePropertyValue @{'html' = $LinksHtml } + + } + + + if ($MappedFields.TenantSummary) { + Write-Information 'Tenant Summary' + + ### Tenant Overview Card + $ParsedAdmins = [PSCustomObject]@{} + + $AdminUsers | Select-Object displayname, userPrincipalName -Unique | ForEach-Object { + $ParsedAdmins | Add-Member -NotePropertyName $_.displayname -NotePropertyValue $_.userPrincipalName -Force + } + + $TenantDetailsItems = [PSCustomObject]@{ + 'Tenant Name' = $Customer.displayName + 'Default Domain' = $Customer.defaultDomainName + 'Tenant ID' = $Customer.customerId + 'Creation Date' = $TenantDetails.createdDateTime + 'Domains' = $customerDomains + 'Admin Users' = ($AdminUsers | ForEach-Object { "$($_.DisplayName)" }) -join ', ' + + } + + $TenantSummaryCard = Get-NinjaOneInfoCard -Title 'Tenant Details' -Data $TenantDetailsItems -Icon 'fas fa-building' + + ### Users details card + Write-Information 'User Details' + $TotalUsersCount = ($Users | Measure-Object).count + $GuestUsersCount = ($Users | Where-Object { $_.UserType -eq 'Guest' } | Measure-Object).count + $LicensedUsersCount = ($licensedUsers | Measure-Object).count + $UnlicensedUsersCount = $TotalUsersCount - $GuestUsersCount - $LicensedUsersCount + $UsersEnabledCount = ($Users | Where-Object { $_.accountEnabled -eq $True } | Measure-Object).count + + # Enabled Users + + $Data = @( + @{ + Label = 'Sign-In Enabled' + Amount = $UsersEnabledCount + Colour = '#26A644' + }, + @{ + Label = 'Sign-In Blocked' + Amount = $TotalUsersCount - $UsersEnabledCount + Colour = '#D53948' + } + ) + + + $UsersEnabledChartHTML = Get-NinjaInLineBarGraph -Title 'User Status' -Data $Data -KeyInLine + + # User Types + + $Data = @( + @{ + Label = 'Licensed' + Amount = $LicensedUsersCount + Colour = '#55ACBF' + }, + @{ + Label = 'Unlicensed' + Amount = $UnlicensedUsersCount + Colour = '#3633B7' + }, + @{ + Label = 'Guests' + Amount = $GuestUsersCount + Colour = '#8063BF' + } + ) + + $UsersTypesChartHTML = Get-NinjaInLineBarGraph -Title 'User Types' -Data $Data -KeyInLine + + # Create the Users Card + + $TitleLink = "https://$CIPPUrl/identity/administration/users?tenantFilter=$($Customer.defaultDomainName)" + + $UsersCardBodyHTML = $UsersEnabledChartHTML + $UsersTypesChartHTML + + $UserSummaryCardHTML = Get-NinjaOneCard -Title 'User Details' -Body $UsersCardBodyHTML -Icon 'fas fa-users' -TitleLink $TitleLink + + + + ### Device Details Card + Write-Information 'Device Details' + $TotalDeviceswCount = ($Devices | Measure-Object).count + $ComplianceDevicesCount = ($Devices | Where-Object { $_.complianceState -eq 'compliant' } | Measure-Object).count + $WindowsCount = ($Devices | Where-Object { $_.operatingSystem -eq 'Windows' } | Measure-Object).count + $IOSCount = ($Devices | Where-Object { $_.operatingSystem -eq 'iOS' } | Measure-Object).count + $AndroidCount = ($Devices | Where-Object { $_.operatingSystem -eq 'Android' } | Measure-Object).count + $MacOSCount = ($Devices | Where-Object { $_.operatingSystem -eq 'macOS' } | Measure-Object).count + $OnlineInLast30Days = ($Devices | Where-Object { $_.lastSyncDateTime -gt ((Get-Date).AddDays(-30)) } | Measure-Object).Count + + + # Compliance Devices + $Data = @( + @{ + Label = 'Compliant' + Amount = $ComplianceDevicesCount + Colour = '#26A644' + }, + @{ + Label = 'Non Compliant' + Amount = $TotalDeviceswCount - $ComplianceDevicesCount + Colour = '#D53948' + } + ) + + + $DeviceComplianceChartHTML = Get-NinjaInLineBarGraph -Title 'Device Compliance' -Data $Data -KeyInLine + + # Device OS Types + + $Data = @( + @{ + Label = 'Windows' + Amount = $WindowsCount + Colour = '#0078D7' + }, + @{ + Label = 'macOS' + Amount = $MacOSCount + Colour = '#A3AAAE' + }, + @{ + Label = 'Android' + Amount = $AndroidCount + Colour = '#3DDC84' + }, + @{ + Label = 'iOS' + Amount = $IOSCount + Colour = '#007AFF' + } + ) + + $DeviceOsChartHTML = Get-NinjaInLineBarGraph -Title 'Device Operating Systems' -Data $Data -KeyInLine + + # Last online time + + $Data = @( + @{ + Label = 'Online in last 30 days' + Amount = $OnlineInLast30Days + Colour = '#26A644' + }, + @{ + Label = 'Not seen for 30+ days' + Amount = $TotalDeviceswCount - $OnlineInLast30Days + Colour = '#CCCCCC' + } + ) + + $DeviceOnlineChartHTML = Get-NinjaInLineBarGraph -Title 'Devices Online in the last 30 days' -Data $Data -KeyInLine + + # Create the Devices Card + + $TitleLink = "https://$CIPPUrl/endpoint/MEM/devices?tenantFilter=$($Customer.defaultDomainName)" + + $DeviceCardBodyHTML = $DeviceComplianceChartHTML + $DeviceOsChartHTML + $DeviceOnlineChartHTML + + $DeviceSummaryCardHTML = Get-NinjaOneCard -Title 'Device Details' -Body $DeviceCardBodyHTML -Icon 'fas fa-network-wired' -TitleLink $TitleLink + + #### Secure Score Card + Write-Information 'Secure Score Details' + $Top5Actions = ($SecureScoreParsed | Where-Object { $_.scoreInPercentage -ne 100 } | Sort-Object 'Score Impact', adjustedRank -Descending) | Select-Object -First 5 + + # Score Chart + $Data = [PSCustomObject]@( + @{ + Label = 'Current Score' + Amount = $CurrentSecureScore.currentScore + Colour = '#26A644' + }, + @{ + Label = 'Points to Obtain' + Amount = $MaxSecureScore - $CurrentSecureScore.currentScore + Colour = '#CCCCCC' + } + ) + + try { + $SecureScoreHTML = Get-NinjaInLineBarGraph -Title "Secure Score - $([System.Math]::Round((($CurrentSecureScore.currentScore / $MaxSecureScore) * 100),2))%" -Data $Data -KeyInLine -NoCount -NoSort + } catch { + $SecureScoreHTML = 'No Secure Score Data Available' + } + + # Recommended Actions HTML + $RecommendedActionsHTML = $Top5Actions | Select-Object 'Recommended Action', @{n = 'Score Impact'; e = { "+$($_.scoreImpact)%" } }, Category, @{n = 'Link'; e = { '' } } | ConvertTo-Html -As Table -Fragment + + $TitleLink = "https://security.microsoft.com/securescore?viewid=overview&tid=$($Customer.customerId)" + + $SecureScoreCardBodyHTML = $SecureScoreHTML + [System.Web.HttpUtility]::HtmlDecode($RecommendedActionsHTML) -replace '
    ', '' + $SecureScoreCardBodyHTML = $SecureScoreCardBodyHTML -replace '', '' + + $SecureScoreSummaryCardHTML = Get-NinjaOneCard -Title 'Secure Score' -Body $SecureScoreCardBodyHTML -Icon 'fas fa-shield' -TitleLink $TitleLink + + + ### CIPP Applied Standards Cards + Write-Information 'Applied Standards' + $ModuleBase = Get-Module CIPPExtensions | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $ModuleBase).Parent.Parent.FullName + Set-Location $CIPPRoot + + try { + $StandardsDefinitions = Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/KelvinTegelaar/CIPP/refs/heads/main/src/data/standards.json' + $AppliedStandards = Get-CIPPStandards -TenantFilter $Customer.defaultDomainName + $Templates = Get-CIPPTable 'templates' + $StandardTemplates = Get-CIPPAzDataTableEntity @Templates -Filter "PartitionKey eq 'StandardsTemplateV2'" + + $ParsedStandards = foreach ($Standard in $AppliedStandards) { + Write-Information "Processing Standard: $($Standard | ConvertTo-Json -Depth 10)" + if ($Standard.TemplateId.Count -gt 1) { + $TemplateListTemplates = foreach ($TemplateId in $Standard.TemplateId) { + if ($TemplateId) { + ($StandardTemplates | Where-Object { $_.RowKey -eq $TemplateId }).JSON | ConvertFrom-Json + } + } + } else { + $Template = ($StandardTemplates | Where-Object { $_.RowKey -eq $Standard.TemplateId }).JSON | ConvertFrom-Json + } + $StandardInfo = $StandardsDefinitions | Where-Object { ($_.name -replace 'standards.', '') -eq $Standard.Standard } + $StandardLabel = $StandardInfo.label + $ParsedActions = foreach ($Action in $Standard.Settings.PSObject.Properties) { + if ($Action.Value -eq $true -and $Action.Name -in @('remediate', 'report', 'alert')) { + (Get-Culture).TextInfo.ToTitleCase($Action.Name) + } + } + + # Handle template-based standards that have lists of templates + if ($Standard.Standard -in @('IntuneTemplate', 'ConditionalAccessTemplate', 'GroupTemplate')) { + # For template standards, create separate entries for each template + foreach ($Property in $Standard.Settings.PSObject.Properties) { + if ($Property.Value -is [Array]) { + $x = 0 + foreach ($TemplateItem in $Property.Value) { + $TemplateName = $null + $TemplateActions = @() + + Write-Information "Processing Template Item: $($TemplateItem | ConvertTo-Json -Depth 10)" + # Get template name + if ($TemplateItem.TemplateList.label) { + $TemplateName = $TemplateItem.TemplateList.label + } elseif ($TemplateItem.'TemplateList-Tags'.label) { + $TemplateName = $TemplateItem.'TemplateList-Tags'.label + } else { + $TemplateName = $TemplateItem.TemplateList.displayName + } + + # Get template-specific actions + foreach ($ItemAction in $TemplateItem.PSObject.Properties) { + if ($ItemAction.Value -eq $true -and $ItemAction.Name -in @('remediate', 'report', 'alert')) { + $TemplateActions += (Get-Culture).TextInfo.ToTitleCase($ItemAction.Name) + } + } + + # If no template-specific actions, use standard-level actions + if ($TemplateActions.Count -eq 0) { + $TemplateActions = $ParsedActions + } + + if ($TemplateName) { + [PSCustomObject]@{ + Standard = "$StandardLabel - $TemplateName" + Template = $TemplateListTemplates[$x].templateName + Actions = $TemplateActions -join ', ' + } + } + $x++ + } + } + } + } else { + # For non-template standards, use the original logic + [PSCustomObject]@{ + Standard = $StandardLabel + Template = $Template.templateName + Actions = $ParsedActions -join ', ' + } + } + } + $ParsedStandardsHTML = $ParsedStandards | ConvertTo-Html -As Table -Fragment + $StandardsTableHTML = '
    ' + (([System.Web.HttpUtility]::HtmlDecode($ParsedStandardsHTML) -replace '
    ', '') -replace '', '') + '' + } catch { + $StandardsTableHTML = 'No standards applied or error retrieving standards' + } + $TitleLink = "https://$CIPPUrl/tenant/standards/list-standards" + $CIPPStandardsSummaryCardHTML = Get-NinjaOneCard -Title 'CIPP Applied Standards' -Body $StandardsTableHTML -Icon 'fas fa-shield-halved' -TitleLink $TitleLink + + ### License Card + Write-Information 'License Details' + $LicenseTableHTML = $LicensesParsed | Sort-Object 'License Name' | ConvertTo-Html -As Table -Fragment + $LicenseTableHTML = '
    ' + (([System.Web.HttpUtility]::HtmlDecode($LicenseTableHTML) -replace '
    ', '') -replace '', '') + '' + + $TitleLink = "https://$CIPPUrl/tenant/reports/list-licenses?tenantFilter=$($Customer.defaultDomainName)" + $LicensesSummaryCardHTML = Get-NinjaOneCard -Title 'Licenses' -Body $LicenseTableHTML -Icon 'fas fa-chart-bar' -TitleLink $TitleLink + + + ### Summary Stats + Write-Information 'Widget Details' + + [System.Collections.Generic.List[PSCustomObject]]$WidgetData = @() + + ### Fetch BPA Data + $Table = get-cipptable 'cachebpav2' + $BPAData = (Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$($Customer.customerId)'") + + if ($Null -ne $BPAData.Timestamp) { + ## BPA Data Widgets + # Shared Mailboxes with Enabled Users + #$WidgetData.add([PSCustomObject]@{ + # Value = $( + # $SharedSendMailboxCount = ($BpaData.SharedMailboxeswithenabledusers | ConvertFrom-Json | Measure-Object).count + # if ($SharedSendMailboxCount -ne 0) { + # $ResultColour = '#D53948' + # } else { + # $ResultColour = '#26A644' + # } + # $SharedSendMailboxCount + # ) + # Description = 'Shared Mailboxes with enabled users' + # Colour = $ResultColour + # Link = "https://$CIPPUrl/tenant/standards/bpa-report?SearchNow=true&Report=CIPP+Best+Practices+v1.0+-+Tenant+view&tenantFilter=$($Customer.customerId)" + # }) + + # Unused Licenses + $WidgetData.add([PSCustomObject]@{ + Value = $( + try { + $BPAUnusedLicenses = (($BpaData.Unusedlicenses | ConvertFrom-Json -ErrorAction SilentlyContinue).availableUnits | Measure-Object -Sum).sum + } catch { + $BPAUnusedLicenses = 'Failed to retrieve unused licenses' + } + if ($BPAUnusedLicenses -ne 0) { + $ResultColour = '#D53948' + } else { + $ResultColour = '#26A644' + } + $BPAUnusedLicenses + ) + Description = 'Unused Licenses' + Colour = $ResultColour + Link = "https://$CIPPUrl/tenant/standards/bpa-report?tenantFilter=$($Customer.defaultDomainName)" + }) + + + # Unified Audit Log + $WidgetData.add([PSCustomObject]@{ + Value = $(if ($BPAData.UnifiedAuditLog -eq $True) { + $ResultColour = '#26A644' + '' + } else { + $ResultColour = '#D53948' + '' + } + ) + Description = 'Unified Audit Log' + Colour = $ResultColour + Link = "https://security.microsoft.com/auditlogsearch?viewid=Async%20Search&tid=$($Customer.customerId)" + }) + + # Passwords Never Expire + $WidgetData.add([PSCustomObject]@{ + Value = $(if ($BPAData.PasswordNeverExpires -eq $True) { + $ResultColour = '#26A644' + '' + } else { + $ResultColour = '#D53948' + '' + } + ) + Description = 'Password Never Expires' + Colour = $ResultColour + Link = "https://$CIPPUrl/tenant/standards/bpa-report?tenantFilter=$($Customer.defaultDomainName)" + }) + + # oAuth App Consent + $WidgetData.add([PSCustomObject]@{ + Value = $(if ($BPAData.OAuthAppConsent -eq $True) { + $ResultColour = '#26A644' + '' + } else { + $ResultColour = '#D53948' + '' + } + ) + Description = 'OAuth App Consent' + Colour = $ResultColour + Link = "https://entra.microsoft.com/$($Customer.defaultDomainName)/#view/Microsoft_AAD_IAM/ConsentPoliciesMenuBlade/~/UserSettings" + }) + + } + + # Blocked Senders + $BlockedSenderCount = ($BlockedSenders | Measure-Object).count + if ($BlockedSenderCount -eq 0) { + $BlockedSenderColour = '#26A644' + } else { + $BlockedSenderColour = '#D53948' + } + $WidgetData.add([PSCustomObject]@{ + Value = $BlockedSenderCount + Description = 'Blocked Senders' + Colour = $BlockedSenderColour + Link = "https://security.microsoft.com/restrictedentities?tid=$($Customer.customerId)" + }) + + # Licensed Users + $WidgetData.add([PSCustomObject]@{ + Value = ($licensedUsers | Measure-Object).count + Description = 'Licensed Users' + Colour = '#CCCCCC' + Link = "https://$CIPPUrl/identity/administration/users?tenantFilter=$($Customer.defaultDomainName)" + }) + + # Devices + $WidgetData.add([PSCustomObject]@{ + Value = ($Devices | Measure-Object).count + Description = 'Devices' + Colour = '#CCCCCC' + Link = "https://$CIPPUrl/endpoint/MEM/devices?tenantFilter=$($Customer.defaultDomainName)" + }) + + # Groups + $WidgetData.add([PSCustomObject]@{ + Value = ($AllGroups | Measure-Object).count + Description = 'Groups' + Colour = '#CCCCCC' + Link = "https://$CIPPUrl/identity/administration/groups?tenantFilter=$($Customer.defaultDomainName)" + }) + + # Roles + $WidgetData.add([PSCustomObject]@{ + Value = ($AllRoles | Measure-Object).count + Description = 'Roles' + Colour = '#CCCCCC' + Link = "https://$CIPPUrl/identity/administration/roles?tenantFilter=$($Customer.defaultDomainName)" + }) + + + # AAD Premium + if ( 'AADPremiumService' -in $TenantDetails.assignedPlans.service) { + $AADPremiumStatus = '' + } else { + $AADPremiumStatus = '' + } + $WidgetData.add([PSCustomObject]@{ + Value = $AADPremiumStatus + Description = 'AAD Premium' + Colour = '#CCCCCC' + Link = "https://entra.microsoft.com/$($Customer.customerId)/#view/Microsoft_AAD_IAM/TenantOverview.ReactView" + }) + + # WindowsDefenderATP + if ( 'WindowsDefenderATP' -in $TenantDetails.assignedPlans.service) { + $DefenderStatus = '' + } else { + $DefenderStatus = '' + } + $WidgetData.add([PSCustomObject]@{ + Value = $DefenderStatus + Description = 'Windows Defender' + Colour = '#CCCCCC' + Link = "https://security.microsoft.com/machines?category=endpoints&tid=$($Customer.DefaultDomainName)#" + }) + + # On Prem Sync + if ( $TenantDetails.onPremisesSyncEnabled -eq $true) { + $OnPremSyncStatus = '' + } else { + $OnPremSyncStatus = '' + } + $WidgetData.add([PSCustomObject]@{ + Value = $OnPremSyncStatus + Description = 'AD Connect' + Colour = '#CCCCCC' + Link = "https://entra.microsoft.com/$($Customer.customerId)/#view/Microsoft_AAD_IAM/DirectoriesADConnectBlade" + }) + + + + + + + Write-Information 'Summary Details' + $SummaryDetailsCardHTML = Get-NinjaOneWidgetCard -Data $WidgetData -Icon 'fas fa-building' -SmallCols 2 -MedCols 3 -LargeCols 4 -XLCols 6 -NoCard + + + # Create the Tenant Summary Field + Write-Information 'Complete Tenant Summary' + $TenantSummaryHTML = '
    ' + $SummaryDetailsCardHTML + '
    ' + + '
    ' + + '
    ' + $TenantSummaryCard + + '
    ' + $LicensesSummaryCardHTML + + '
    ' + $DeviceSummaryCardHTML + + '
    ' + $CIPPStandardsSummaryCardHTML + + '
    ' + $SecureScoreSummaryCardHTML + + '
    ' + $UserSummaryCardHTML + + '
    ' + + $NinjaOrgUpdate | Add-Member -NotePropertyName $MappedFields.TenantSummary -NotePropertyValue @{'html' = $TenantSummaryHTML } + + + + } + + if ($MappedFields.UsersSummary) { + Write-Information 'User Details Section' + + $UsersTableFornatted = $ParsedUsers | Sort-Object name | Select-Object -First 100 Name, + @{n = 'User Principal Name'; e = { $_.UPN } }, + #Aliases, + Licenses, + @{n = 'Mailbox Usage'; e = { $_.MailboxParsed } }, + @{n = 'One Drive Usage'; e = { $_.OneDriveParsed } }, + @{n = 'Devices (Last Login)'; e = { $_.Devices } }, + Actions + + + $UsersTableHTML = $UsersTableFornatted | ConvertTo-Html -As Table -Fragment + + $UsersTableHTML = ([System.Web.HttpUtility]::HtmlDecode($UsersTableHTML) -replace '
    ', '') -replace '', '' + + if ($ParsedUsers.count -gt 100) { + $Overflow = @" +
    + +
    +
    $($ParsedUsers.count) users found in Tenant
    +
    + Only the first 100 users are displayed here. To see all users please view users in CIPP. +
    +
    +
    +"@ + } else { + $Overflow = '' + } + + $NinjaOrgUpdate | Add-Member -NotePropertyName $MappedFields.UsersSummary -NotePropertyValue @{'html' = $Overflow + $UsersTableHTML } + + } + + + + Write-Information 'Posting Details' + + $Token = Get-NinjaOneToken -configuration $Configuration + + Write-Information "Ninja Body: $($NinjaOrgUpdate | ConvertTo-Json -Depth 100)" + $Result = Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/$($MappedTenant.IntegrationId)/custom-fields" -Method PATCH -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ($NinjaOrgUpdate | ConvertTo-Json -Depth 100) + + + Write-Information 'Cleaning Users Cache' + if (($ParsedUsers | Measure-Object).count -gt 0) { + Remove-AzDataTableEntity -Force @UsersTable -Entity ($ParsedUsers | Select-Object PartitionKey, RowKey) + } + + Write-Information 'Cleaning Device Cache' + if (($ParsedDevices | Measure-Object).count -gt 0) { + Remove-AzDataTableEntity -Force @DeviceTable -Entity ($ParsedDevices | Select-Object PartitionKey, RowKey) + } + + Write-Information "Total Fetch Time: $((New-TimeSpan -Start $StartTime -End $FetchEnd).TotalSeconds)" + Write-Information "Completed Total Time: $((New-TimeSpan -Start $StartTime -End (Get-Date)).TotalSeconds)" + + # Set Last End Time + $CurrentItem | Add-Member -NotePropertyName lastEndTime -NotePropertyValue ([string]$((Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))) -Force + $CurrentItem | Add-Member -NotePropertyName lastStatus -NotePropertyValue 'Completed' -Force + Add-CIPPAzDataTableEntity @MappingTable -Entity $CurrentItem -Force + + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "Completed NinjaOne Sync for $($Customer.displayName). Queued for $((New-TimeSpan -Start $StartQueueTime -End $StartTime).TotalSeconds) seconds. Data fetched in $((New-TimeSpan -Start $StartTime -End $FetchEnd).TotalSeconds) seconds. Total processing time $((New-TimeSpan -Start $StartTime -End (Get-Date)).TotalSeconds) seconds" -Sev 'info' + + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + Write-Information (Get-CippException -Exception $_ | ConvertTo-Json) + } else { + $_.Exception.message + } + Write-Error "Failed NinjaOne Processing for $($Customer.displayName) Linenumber: $($_.InvocationInfo.ScriptLineNumber) Error: $Message" + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "Failed NinjaOne Processing for $($Customer.displayName) Linenumber: $($_.InvocationInfo.ScriptLineNumber) Error: $Message" -Sev 'Error' + $CurrentItem | Add-Member -NotePropertyName lastEndTime -NotePropertyValue ([string]$((Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))) -Force + $CurrentItem | Add-Member -NotePropertyName lastStatus -NotePropertyValue 'Failed' -Force + Add-CIPPAzDataTableEntity @MappingTable -Entity $CurrentItem -Force + } + return $true +} diff --git a/Modules/CippExtensions/Public/NinjaOne/NinjaOneHelper.ps1 b/Modules/CippExtensions/Public/NinjaOne/NinjaOneHelper.ps1 new file mode 100644 index 000000000000..af30f8a36b03 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/NinjaOneHelper.ps1 @@ -0,0 +1,248 @@ +function Get-NinjaOneTitle($Title, $Icon, $TitleLink, $TitleSize, $TitleClass) { + Return $(if ($TitleSize) { '<' + $TitleSize }else { '' + $(if ($Icon) { '  ' }) + $Title + $(if ($TitleLink) { '  ' }) + $(if ($TitleSize) { "" }else { '' }) +} + +### HTML Formatters ### +# Bar Graph +function Get-NinjaInLineBarGraph ($Data, [string]$Title, [string]$Icon, [string]$TitleLink, [switch]$KeyInLine, [switch]$NoCount, [switch]$NoSort) { + <# + Example: + $Data = @( + @{ + Label = 'Licensed' + Amount = 3 + Colour = '#55ACBF' + }, + @{ + Label = 'Unlicensed' + Amount = 1 + Colour = '#3633B7' + }, + @{ + Label = 'Guests' + Amount = 10 + Colour = '#8063BF' + } + ) + Get-NinjaInLineBarGraph -Title "Users" -Data $Data -KeyInLine + + #> + + if (!$NoSort) { + $Data = $Data | Sort-Object Amount -Descending + } + + $Total = ($Data.Amount | measure-object -sum).sum + [System.Collections.Generic.List[String]]$OutputHTML = @() + + if ($Title) { + $OutputHTML.add((Get-NinjaOneTitle -Icon $Icon -Title ($Title + $(if (!$NoCount) { " ($Total)" })) -TitleLink $TitleLink)) + } + + $OutputHTML.add('
    ') + + foreach ($Item in $Data) { + $OutputHTML.add(@" +
    +"@) + + } + + $OutputHTML.add('
    ') + + if ($KeyInline) { + $OutputHTML.add('
      ') + } else { + $OutputHTML.add('
        ') + } + + foreach ($Item in $Data) { + $OutputHTML.add(@" +
      • $($Item.Label) ($($Item.Amount))
      • +"@) + + } + + $OutputHTML.add('
      ') + + return $OutputHTML -join '' + + +} + +#### List of Links +function Get-NinjaOneLinks ($Data, $Title, [string]$Icon, [string]$TitleLink, [int]$SmallCols, [int]$MedCols, [int]$LargeCols, [int]$XLCols) { + <# +$ManagementLinksData = @( + @{ + Name = 'M365 Admin Portal' + Link = "https://portal.office.com/Partner/BeginClientSession.aspx?CTID=$($customer.CustomerId)&CSDEST=o365admincenter" + Icon = 'fas fa-cogs' + }, + @{ + Name = 'Exchange Admin Portal' + Link = "https://outlook.office365.com/ecp/?rfr=Admin_o365&exsvurl=1&delegatedOrg=$($Customer.DefaultDomainName)" + Icon = 'fas fa-mail-bulk' + }, + @{ + Name = 'Entra Admin' + Link = "https://aad.portal.azure.com/$($Customer.DefaultDomainName)" + Icon = 'fas fa-users-cog' + }) + + Get-NinjaOneLinks -Title 'M365 Admin Links' -Data $ManagementLinksData +#> + + [System.Collections.Generic.List[String]]$OutputHTML = @() + + $OutputHTML.add('
      ') + + if ($Title) { + $OutputHTML.add('
      ' + $(if ($Icon) { '  ' }) + $Title + '
      ') + + if ($TitleLink) { + $OutputHTML.add('') + } + + $OutputHTML.add('
      ') + } + + $OutputHTML.add('
      ') + $OutputHTML.add('
        ') + + $CSSCols = Get-NinjaOneCSSCol -SmallCols $SmallCols -MedCols $MedCols -LargeCols $LargeCols -XLCols $XLCols + + + foreach ($Item in $Data) { + + + $OutputHTML.add(@" +
      • $(if ($Item.Icon){"  "})$($Item.Name)
      • +"@) + + } + + $OutputHTML.add('
      ') + + return $OutputHTML -join '' + +} + + +function Get-NinjaOneWidgetCard($Title, $Data, [string]$Icon, [string]$TitleLink, [int]$SmallCols, [int]$MedCols, [int]$LargeCols, [int]$XLCols, [Switch]$NoCard) { + <# + $Data = @( + @{ + Value = 20 + Description = 'Users' + Colour = '#CCCCCC' + Link = 'https://example.com/users' + }, + @{ + Value = 42 + Description = 'Devices' + Colour = '#CCCCCC' + Link = 'https://example.com/devices' + } + ) + + $HTML = Get-NinjaOneWidgetCard -Title 'Summary Details' -Data $Data -Icon 'fas fa-building' -TitleLink 'http://example.com' -Columns 3 + + #> + + $CSSCols = Get-NinjaOneCSSCol -SmallCols $SmallCols -MedCols $MedCols -LargeCols $LargeCols -XLCols $XLCols + + + [System.Collections.Generic.List[String]]$OutputHTML = @() + + $OutputHTML.add('
      ') + + + foreach ($Item in $Data) { + + $HTML = @" + +"@ + + $OutputHTML.add($HTML) + + } + + $OutputHTML.add('
      ') + + if ($NoCard) { + return $OutputHTML -join '' + } else { + Return Get-NinjaOneCard -Title $Title -Body ($OutputHTML -join '') -Icon $Icon -TitleLink $TitleLink + } + +} + +Function Get-NinjaOneCSSCol($SmallCols, $MedCols, $LargeCols, $XLCols) { + $SmallCSS = "col-sm-$([Math]::Floor(12 / $SmallCols))" + $MediumCSS = "col-md-$([Math]::Floor(12 / $MedCols))" + $LargeCSS = "col-lg-$([Math]::Floor(12 / $LargeCols))" + $XLCSS = "col-xl-$([Math]::Floor(12 / $XLCols))" + + Return "$SmallCSS $MediumCSS $LargeCSS $XLCSS" +} + +function Get-NinjaOneCard($Title, $Body, [string]$Icon, [string]$TitleLink, [String]$Classes) { + <# + $Info = 'This is the body of a card it is wrapped in a paragraph' + + Get-NinjaOneCard -Title "Tenant Details" -Data $Info + #> + + [System.Collections.Generic.List[String]]$OutputHTML = @() + + $OutputHTML.add('
      ') + + if ($Title) { + $OutputHTML.add('
      ' + $(if ($Icon) { '  ' }) + $Title + '
      ') + + if ($TitleLink) { + $OutputHTML.add('') + } + + $OutputHTML.add('
      ') + } + + $OutputHTML.add('
      ') + $OutputHTML.add('

      ' + $Body + '

      ') + + $OutputHTML.add('
      ') + + return $OutputHTML -join '' + +} + +function Get-NinjaOneInfoCard($Title, $Data, [string]$Icon, [string]$TitleLink) { + <# + $TenantDetailsItems = [PSCustomObject]@{ + 'Name' = $Customer.displayName + 'Default Domain' = $Customer.defaultDomainName + 'Tenant ID' = $Customer.customerId + 'Domains' = $customerDomains + 'Admin Users' = ($AdminUsers | ForEach-Object {"$($_.displayname) ($($_.userPrincipalName))"}) -join ', ' + 'Creation Date' = $TenantDetails.createdDateTime + } + + Get-NinjaOneInfoCard -Title "Tenant Details" -Data $TenantDetailsItems + #> + + [System.Collections.Generic.List[String]]$ItemsHTML = @() + + foreach ($Item in $Data.PSObject.Properties) { + $ItemsHTML.add('

      ' + $Item.Name + '
      ' + $Item.Value + '

      ') + } + + return Get-NinjaOneCard -Title $Title -Body ($ItemsHTML -join '') -Icon $Icon -TitleLink $TitleLink + +} + diff --git a/Modules/CippExtensions/Public/NinjaOne/Push-NinjaOneQueue.ps1 b/Modules/CippExtensions/Public/NinjaOne/Push-NinjaOneQueue.ps1 new file mode 100644 index 000000000000..470220016842 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Push-NinjaOneQueue.ps1 @@ -0,0 +1,15 @@ +function Push-NinjaOneQueue { + # Input bindings are passed in via param block. + param($Item) + + # Write out the queue message and metadata to the information log. + Write-Host "PowerShell NinjaOne queue trigger function processed work item: $($Item.NinjaAction)" + + Switch ($Item.NinjaAction) { + 'StartAutoMapping' { Invoke-NinjaOneOrgMapping } + 'AutoMapTenant' { Invoke-NinjaOneOrgMappingTenant -QueueItem $Item } + 'SyncTenant' { Invoke-NinjaOneTenantSync -QueueItem $Item } + 'SyncTenants' { Invoke-NinjaOneSync } + } + return $true +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Set-NinjaOneFieldMapping.ps1 b/Modules/CippExtensions/Public/NinjaOne/Set-NinjaOneFieldMapping.ps1 new file mode 100644 index 000000000000..eedca3f891fe --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Set-NinjaOneFieldMapping.ps1 @@ -0,0 +1,25 @@ +function Set-NinjaOneFieldMapping { + [CmdletBinding()] + param ( + $CIPPMapping, + $APIName, + $Request, + $TriggerMetadata + ) + + $SettingsTable = Get-CIPPTable -TableName NinjaOneSettings + foreach ($Mapping in $Request.Body.PSObject.Properties) { + $AddObject = @{ + PartitionKey = 'NinjaOneFieldMapping' + RowKey = "$($mapping.name)" + IntegrationId = "$($mapping.value.value)" + IntegrationName = "$($mapping.value.label)" + } + + Add-AzDataTableEntity @CIPPMapping -Entity $AddObject -Force + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Added mapping for $($mapping.name)." -Sev 'Info' + } + $Result = [pscustomobject]@{'Results' = 'Successfully edited mapping table.' } + + Return $Result +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Set-NinjaOneOrgMapping.ps1 b/Modules/CippExtensions/Public/NinjaOne/Set-NinjaOneOrgMapping.ps1 new file mode 100644 index 000000000000..ab2e745c8417 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Set-NinjaOneOrgMapping.ps1 @@ -0,0 +1,27 @@ +function Set-NinjaOneOrgMapping { + [CmdletBinding()] + param ( + $CIPPMapping, + $APIName, + $Request + ) + + Get-CIPPAzDataTableEntity @CIPPMapping -Filter "PartitionKey eq 'NinjaOneMapping'" | ForEach-Object { + Remove-AzDataTableEntity -Force @CIPPMapping -Entity $_ + } + foreach ($Mapping in $Request.Body) { + if ($Mapping.TenantId) { + $AddObject = @{ + PartitionKey = 'NinjaOneMapping' + RowKey = "$($mapping.TenantId)" + IntegrationId = "$($mapping.IntegrationId)" + IntegrationName = "$($mapping.IntegrationName)" + } + } + Add-CIPPAzDataTableEntity @CIPPMapping -Entity $AddObject -Force + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Added mapping for $($mapping.name)." -Sev 'Info' + } + $Result = [pscustomobject]@{'Results' = 'Successfully edited mapping table.' } + + Return $Result +} diff --git a/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 b/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 new file mode 100644 index 000000000000..c0f429863035 --- /dev/null +++ b/Modules/CippExtensions/Public/PwPush/Get-PwPushAccount.ps1 @@ -0,0 +1,13 @@ +function Get-PwPushAccount { + $Table = Get-CIPPTable -TableName Extensionsconfig + $Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).PWPush + if ($Configuration.Enabled -eq $true -and $Configuration.UseBearerAuth -eq $true) { + Set-PwPushConfig -Configuration $Configuration + Get-PushAccount + } else { + return @(@{ + name = 'PWPush Pro is not enabled or configured. Make sure to save the configuration first.'; + id = '' + }) + } +} diff --git a/Modules/CippExtensions/Public/PwPush/New-PwPushLink.ps1 b/Modules/CippExtensions/Public/PwPush/New-PwPushLink.ps1 new file mode 100644 index 000000000000..ad58593c9676 --- /dev/null +++ b/Modules/CippExtensions/Public/PwPush/New-PwPushLink.ps1 @@ -0,0 +1,65 @@ +function New-PwPushLink { + [CmdletBinding(SupportsShouldProcess)] + Param( + $Payload + ) + + try { + $Table = Get-CIPPTable -TableName Extensionsconfig + $ConfigEntity = Get-CIPPAzDataTableEntity @Table + + # Check if the config entity exists and has a config property + if (-not $ConfigEntity -or [string]::IsNullOrEmpty($ConfigEntity.config)) { + return $false + } + + # Safely parse the JSON configuration + try { + $ParsedConfig = $ConfigEntity.config | ConvertFrom-Json -ErrorAction Stop + $Configuration = $ParsedConfig.PWPush + } catch { + return $false + } + + # Check if PWPush section exists in configuration + if (-not $Configuration) { + return $false + } + + # Check if PwPush is enabled + if ($Configuration.Enabled -ne $true) { + return $false + } + + # Proceed with creating the PwPush link + try { + Set-PwPushConfig -Configuration $Configuration + $PushParams = @{ + Payload = $Payload + } + if ($Configuration.ExpireAfterDays) { $PushParams.ExpireAfterDays = $Configuration.ExpireAfterDays } + if ($Configuration.ExpireAfterViews) { $PushParams.ExpireAfterViews = $Configuration.ExpireAfterViews } + if ($Configuration.DeletableByViewer) { $PushParams.DeletableByViewer = $Configuration.DeletableByViewer } + if ($Configuration.AccountId) { $PushParams.AccountId = $Configuration.AccountId.value } + + if ($PSCmdlet.ShouldProcess('Create a new PwPush link')) { + $Link = New-Push @PushParams + if ($Configuration.RetrievalStep) { + return $Link.LinkRetrievalStep -replace '/r/r', '/r' + } + return $Link.Link + } + } catch { + $LogData = [PSCustomObject]@{ + 'Response' = if ($Link) { $Link } else { 'No response' } + 'Exception' = Get-CippException -Exception $_ + } + Write-LogMessage -API PwPush -Message "Failed to create a new PwPush link: $($_.Exception.Message)" -Sev 'Error' -LogData $LogData + Write-LogMessage -API PwPush -Message "Continuing without PwPush link due to error" -Sev 'Warning' + return $false + } + } catch { + Write-LogMessage -API PwPush -Message "Unexpected error in PwPush configuration handling: $($_.Exception.Message)" -Sev 'Error' + return $false + } +} diff --git a/Modules/CippExtensions/Public/PwPush/Set-PwPushConfig.ps1 b/Modules/CippExtensions/Public/PwPush/Set-PwPushConfig.ps1 new file mode 100644 index 000000000000..845b8e3caf49 --- /dev/null +++ b/Modules/CippExtensions/Public/PwPush/Set-PwPushConfig.ps1 @@ -0,0 +1,39 @@ +function Set-PwPushConfig { + <# + .SYNOPSIS + Sets PwPush configuration + + .DESCRIPTION + Sets PwPush configuration from CIPP Extension config + + .PARAMETER Configuration + Configuration object + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + $Configuration + ) + $InitParams = @{} + if ($Configuration.BaseUrl) { + $InitParams.BaseUrl = $Configuration.BaseUrl + } + if (![string]::IsNullOrEmpty($Configuration.EmailAddress) -or $Configuration.UseBearerAuth -eq $true) { + $ApiKey = Get-ExtensionAPIKey -Extension 'PWPush' + if ($Configuration.UseBearerAuth -eq $true) { + $InitParams.Bearer = $ApiKey + } elseif (![string]::IsNullOrEmpty($ApiKey)) { + if (![string]::IsNullOrEmpty($Configuration.EmailAddress)) { + $InitParams.EmailAddress = $Configuration.EmailAddress + } + $InitParams.APIKey = $ApiKey + } + } + + $Module = Get-Module PassPushPosh -ListAvailable + Write-Information "PWPush Version: $($Module.Version)" + if ($PSCmdlet.ShouldProcess('Initialize-PassPushPosh')) { + Write-Information ($InitParams | ConvertTo-Json) + Initialize-PassPushPosh @InitParams + } +} + diff --git a/Modules/CippExtensions/Public/Sherweb/Get-SherwebAuthentication.ps1 b/Modules/CippExtensions/Public/Sherweb/Get-SherwebAuthentication.ps1 new file mode 100644 index 000000000000..a137e8bdc78a --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Get-SherwebAuthentication.ps1 @@ -0,0 +1,20 @@ +function Get-SherwebAuthentication { + $Table = Get-CIPPTable -TableName Extensionsconfig + $Config = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).Sherweb + $APIKey = Get-ExtensionAPIKey -Extension 'Sherweb' + + $AuthBody = @{ + client_id = $Config.clientId + client_secret = $APIKey + scope = 'service-provider' + grant_type = 'client_credentials' + } + + $Token = (Invoke-RestMethod -Uri 'https://api.sherweb.com/auth/oidc/connect/token' -Method POST -Body $AuthBody).access_token + $authHeader = @{ + Authorization = "Bearer $Token" + 'Ocp-Apim-Subscription-Key' = $Config.SubscriptionKey + } + + return $authHeader +} diff --git a/Modules/CippExtensions/Public/Sherweb/Get-SherwebCatalog.ps1 b/Modules/CippExtensions/Public/Sherweb/Get-SherwebCatalog.ps1 new file mode 100644 index 000000000000..e1970e058b62 --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Get-SherwebCatalog.ps1 @@ -0,0 +1,21 @@ +function Get-SherwebCatalog { + param( + [Parameter(Mandatory = $false)] + [string]$CustomerId, + [string]$TenantFilter + ) + + if ($TenantFilter) { + $TenantFilter = (Get-Tenants -TenantFilter $TenantFilter).customerId + $CustomerId = Get-ExtensionMapping -Extension 'Sherweb' | Where-Object { $_.RowKey -eq $TenantFilter } | Select-Object -ExpandProperty IntegrationId + } + + if (![string]::IsNullOrEmpty($CustomerId)) { + Write-Information "Getting catalog for $CustomerId" + $AuthHeader = Get-SherwebAuthentication + $SubscriptionsList = Invoke-RestMethod -Uri "https://api.sherweb.com/service-provider/v1/customer-catalogs/$CustomerId" -Method GET -Headers $AuthHeader + return $SubscriptionsList.catalogItems + } else { + throw 'No Sherweb mapping found' + } +} diff --git a/Modules/CippExtensions/Public/Sherweb/Get-SherwebCurrentSubscription.ps1 b/Modules/CippExtensions/Public/Sherweb/Get-SherwebCurrentSubscription.ps1 new file mode 100644 index 000000000000..f0cf0308dc7c --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Get-SherwebCurrentSubscription.ps1 @@ -0,0 +1,28 @@ +function Get-SherwebCurrentSubscription { + param( + [Parameter(Mandatory = $false)] + [string]$TenantFilter, + [string]$CustomerId, + [string]$SKU, + [string]$ProductName + ) + if ($TenantFilter) { + $TenantFilter = (Get-Tenants -TenantFilter $TenantFilter).customerId + $CustomerId = Get-ExtensionMapping -Extension 'Sherweb' | Where-Object { $_.RowKey -eq $TenantFilter } | Select-Object -ExpandProperty IntegrationId + } + + Write-Information "Getting current subscription for $CustomerId" + $AuthHeader = Get-SherwebAuthentication + $Uri = "https://api.sherweb.com/service-provider/v1/billing/subscriptions/details?customerId=$CustomerId" + $SubscriptionDetails = Invoke-RestMethod -Uri $Uri -Method GET -Headers $AuthHeader + + $AllSubscriptions = $SubscriptionDetails.items + + if ($SKU) { + return $AllSubscriptions | Where-Object { $_.sku -eq $SKU } + } elseif ($ProductName) { + return $AllSubscriptions | Where-Object { $_.productName -eq $ProductName } + } else { + return $AllSubscriptions + } +} diff --git a/Modules/CippExtensions/Public/Sherweb/Get-SherwebCustomerConfiguration.ps1 b/Modules/CippExtensions/Public/Sherweb/Get-SherwebCustomerConfiguration.ps1 new file mode 100644 index 000000000000..d59d5e168357 --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Get-SherwebCustomerConfiguration.ps1 @@ -0,0 +1,21 @@ +function Get-SherwebCustomerConfiguration { + param( + [Parameter(Mandatory = $true)] + [string]$CustomerId, + [string]$TenantFilter + ) + if ($TenantFilter) { + $TenantFilter = (Get-Tenants -TenantFilter $TenantFilter).customerId + $CustomerId = Get-ExtensionMapping -Extension 'Sherweb' | Where-Object { $_.RowKey -eq $TenantFilter } | Select-Object -ExpandProperty IntegrationId + } + $AuthHeader = Get-SherwebAuthentication + $Uri = "https://api.sherweb.com/service-provider/v1/customers/$($CustomerId)/platforms-configurations/" + $CustomerConfig = Invoke-RestMethod -Uri $Uri -Method GET -Headers $AuthHeader + $customerPlatforms = foreach ($Config in $CustomerConfig.configuredPlatforms) { + #https://api.sherweb.com/service-provider/v1/customers/{customerId}/platforms/{platformId}/details + $Uri = "https://api.sherweb.com/service-provider/v1/customers/$($CustomerId)/platforms/$($Config.id)/details" + Invoke-RestMethod -Uri $Uri -Method GET -Headers $AuthHeader + } + return $customerPlatforms + +} diff --git a/Modules/CippExtensions/Public/Sherweb/Get-SherwebCustomers.ps1 b/Modules/CippExtensions/Public/Sherweb/Get-SherwebCustomers.ps1 new file mode 100644 index 000000000000..53af35e197ad --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Get-SherwebCustomers.ps1 @@ -0,0 +1,5 @@ +function Get-SherwebCustomers { + $AuthHeader = Get-SherwebAuthentication + $CustomersList = Invoke-RestMethod -Uri 'https://api.sherweb.com/service-provider/v1/customers' -Method GET -Headers $AuthHeader + return $CustomersList.items +} diff --git a/Modules/CippExtensions/Public/Sherweb/Get-SherwebMapping.ps1 b/Modules/CippExtensions/Public/Sherweb/Get-SherwebMapping.ps1 new file mode 100644 index 000000000000..1fa0f5cbb0f6 --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Get-SherwebMapping.ps1 @@ -0,0 +1,47 @@ +function Get-SherwebMapping { + [CmdletBinding()] + param ( + $CIPPMapping + ) + + $ExtensionMappings = Get-ExtensionMapping -Extension 'Sherweb' + + $Tenants = Get-Tenants -IncludeErrors + $Mappings = foreach ($Mapping in $ExtensionMappings) { + $Tenant = $Tenants | Where-Object { $_.customerId -eq $Mapping.RowKey } + if ($Tenant) { + [PSCustomObject]@{ + TenantId = $Tenant.customerId + Tenant = $Tenant.displayName + TenantDomain = $Tenant.defaultDomainName + IntegrationId = $Mapping.IntegrationId + IntegrationName = $Mapping.IntegrationName + } + } + } + try { + $SherwebCustomers = Get-SherwebCustomers | ForEach-Object { + [PSCustomObject]@{ + name = $_.displayName + value = "$($_.id)" + } + } + } catch { + $Message = if ($_.ErrorDetails.Message) { + Get-NormalizedError -Message $_.ErrorDetails.Message + } else { + $_.Exception.message + } + + Write-LogMessage -Message "Could not get Sherweb Companies, error: $Message " -Level Error -tenant 'CIPP' -API 'SherwebMapping' + $SherwebCustomers = @(@{name = "Could not get Sherweb Companies, error: $Message"; value = '-1' }) + } + + $MappingObj = [PSCustomObject]@{ + Companies = @($SherwebCustomers) + Mappings = @($Mappings) + } + + return $MappingObj + +} diff --git a/Modules/CippExtensions/Public/Sherweb/Get-SherwebOrderStatus.ps1 b/Modules/CippExtensions/Public/Sherweb/Get-SherwebOrderStatus.ps1 new file mode 100644 index 000000000000..ca5a91cd71b3 --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Get-SherwebOrderStatus.ps1 @@ -0,0 +1,10 @@ +function Get-SherwebOrderStatus { + param( + [Parameter(Mandatory = $true)] + [string]$RequestTrackingId + ) + $AuthHeader = Get-SherwebAuthentication + $Uri = "https://api.sherweb.com/service-provider/v1/tracking/$RequestTrackingId" + $Tracking = Invoke-RestMethod -Uri $Uri -Method GET -Headers $AuthHeader + return $Tracking +} diff --git a/Modules/CippExtensions/Public/Sherweb/Remove-SherwebSubscription.ps1 b/Modules/CippExtensions/Public/Sherweb/Remove-SherwebSubscription.ps1 new file mode 100644 index 000000000000..b24e173dd488 --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Remove-SherwebSubscription.ps1 @@ -0,0 +1,47 @@ +function Remove-SherwebSubscription { + param( + [Parameter(Mandatory = $false)] + [string]$CustomerId, + [Parameter(Mandatory = $true)] + [string[]]$SubscriptionIds, + [string]$TenantFilter, + $Headers + ) + + if ($Headers) { + # Get extension config and check for AllowedCustomRoles + $Table = Get-CIPPTable -TableName Extensionsconfig + $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json + $Config = $ExtensionConfig.Sherweb + + $AllowedRoles = $Config.AllowedCustomRoles.value + if ($AllowedRoles -and $Headers.'x-ms-client-principal') { + $UserRoles = Get-CIPPAccessRole -Headers $Headers + $Allowed = $false + foreach ($Role in $UserRoles) { + if ($AllowedRoles -contains $Role) { + Write-Information "User has allowed CIPP role: $Role" + $Allowed = $true + break + } + } + if (-not $Allowed) { + throw 'This user is not allowed to modify Sherweb Licenses.' + } + } + } + + + if ($TenantFilter) { + $TenantFilter = (Get-Tenants -TenantFilter $TenantFilter).customerId + $CustomerId = Get-ExtensionMapping -Extension 'Sherweb' | Where-Object { $_.RowKey -eq $TenantFilter } | Select-Object -ExpandProperty IntegrationId + } + $AuthHeader = Get-SherwebAuthentication + $Body = ConvertTo-Json -Depth 10 -InputObject @{ + subscriptionIds = @($SubscriptionIds) + } + + $Uri = "https://api.sherweb.com/service-provider/v1/billing/subscriptions/cancellations?customerId=$CustomerId" + $Cancel = Invoke-RestMethod -Uri $Uri -Method POST -Headers $AuthHeader -Body $Body -ContentType 'application/json' + return $Cancel +} diff --git a/Modules/CippExtensions/Public/Sherweb/Set-SherwebMapping.ps1 b/Modules/CippExtensions/Public/Sherweb/Set-SherwebMapping.ps1 new file mode 100644 index 000000000000..0fe51015c4b4 --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Set-SherwebMapping.ps1 @@ -0,0 +1,26 @@ +function Set-SherwebMapping { + [CmdletBinding()] + param ( + $CIPPMapping, + $APIName, + $Request + ) + Get-CIPPAzDataTableEntity @CIPPMapping -Filter "PartitionKey eq 'SherwebMapping'" | ForEach-Object { + Remove-AzDataTableEntity -Force @CIPPMapping -Entity $_ + } + foreach ($Mapping in $Request.Body) { + Write-Host "Adding mapping for $($mapping.IntegrationId)" + $AddObject = @{ + PartitionKey = 'SherwebMapping' + RowKey = "$($mapping.TenantId)" + IntegrationId = "$($mapping.IntegrationId)" + IntegrationName = "$($mapping.IntegrationName)" + } + + Add-CIPPAzDataTableEntity @CIPPMapping -Entity $AddObject -Force + Write-LogMessage -API $APINAME -headers $Request.Headers -message "Added mapping for $($mapping.name)." -Sev 'Info' + } + $Result = [pscustomobject]@{'Results' = 'Successfully edited mapping table.' } + + Return $Result +} diff --git a/Modules/CippExtensions/Public/Sherweb/Set-SherwebSubscription.ps1 b/Modules/CippExtensions/Public/Sherweb/Set-SherwebSubscription.ps1 new file mode 100644 index 000000000000..62a2c5ccf2ff --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Set-SherwebSubscription.ps1 @@ -0,0 +1,97 @@ +function Set-SherwebSubscription { + param( + [Parameter(Mandatory = $false)] + [string]$CustomerId, + [Parameter(Mandatory = $true)] + [string]$SKU, + [int]$Quantity, + [int]$Add, + [int]$Remove, + [string]$TenantFilter, + $Headers + ) + + if ($Headers) { + # Get extension config and check for AllowedCustomRoles + $Table = Get-CIPPTable -TableName Extensionsconfig + $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json + $Config = $ExtensionConfig.Sherweb + + $AllowedRoles = $Config.AllowedCustomRoles.value + if ($AllowedRoles -and $Headers.'x-ms-client-principal') { + $UserRoles = Get-CIPPAccessRole -Headers $Headers + $Allowed = $false + foreach ($Role in $UserRoles) { + if ($AllowedRoles -contains $Role) { + Write-Information "User has allowed CIPP role: $Role" + $Allowed = $true + break + } + } + if (-not $Allowed) { + throw 'This user is not allowed to modify Sherweb subscriptions.' + } + } + } + + if ($TenantFilter) { + $TenantFilter = (Get-Tenants -TenantFilter $TenantFilter).customerId + $CustomerId = Get-ExtensionMapping -Extension 'Sherweb' | Where-Object { $_.RowKey -eq $TenantFilter } | Select-Object -ExpandProperty IntegrationId + } + $AuthHeader = Get-SherwebAuthentication + $ExistingSubscription = Get-SherwebCurrentSubscription -CustomerId $CustomerId -SKU $SKU + + if (-not $ExistingSubscription) { + if ($Add -or $Remove) { + throw "Unable to Add or Remove. No existing subscription with SKU '$SKU' found." + } + + if (-not $Quantity -or $Quantity -le 0) { + throw 'A valid Quantity must be specified to create a new subscription when none currently exists.' + } + $OrderBody = ConvertTo-Json -Depth 10 -InputObject @{ + cartItems = @( + @{ + sku = $SKU + quantity = $Quantity + } + ) + orderedBy = 'CIPP-API' + } + $OrderUri = "https://api.sherweb.com/service-provider/v1/orders?customerId=$CustomerId" + $Order = Invoke-RestMethod -Uri $OrderUri -Method POST -Headers $AuthHeader -Body $OrderBody -ContentType 'application/json' + if ($Order -match 'Internal Server Error' -and $Add -gt 0) { + throw 'An error occurred while attempting to create a new subscription. Please check the Cumulus portal to ensure this customer has been provisioned for Microsoft 365.' + } + return $Order + + } else { + $SubscriptionId = $ExistingSubscription[0].id + $CurrentQuantity = $ExistingSubscription[0].quantity + + if ($Add) { + $FinalQuantity = $CurrentQuantity + $Add + } elseif ($Remove) { + $FinalQuantity = $CurrentQuantity - $Remove + if ($FinalQuantity -lt 0) { + throw "Cannot remove more licenses than currently allocated. Current: $CurrentQuantity, Attempting to remove: $Remove." + } + } else { + if (-not $Quantity -or $Quantity -le 0) { + throw 'A valid Quantity must be specified if Add/Remove are not used.' + } + $FinalQuantity = $Quantity + } + $Body = ConvertTo-Json -Depth 10 -InputObject @{ + subscriptionAmendmentParameters = @( + @{ + subscriptionId = $SubscriptionId + newQuantity = $FinalQuantity + } + ) + } + $Uri = "https://api.sherweb.com/service-provider/v1/billing/subscriptions/amendments?customerId=$CustomerId" + $Update = Invoke-RestMethod -Uri $Uri -Method POST -Headers $AuthHeader -Body $Body -ContentType 'application/json' + return $Update + } +} diff --git a/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 b/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 new file mode 100644 index 000000000000..1fdc01e00176 --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Test-SherwebMigrationAccounts.ps1 @@ -0,0 +1,92 @@ +function Test-SherwebMigrationAccounts { + [CmdletBinding()] + param ( + $TenantFilter + ) + + $Table = Get-CIPPTable -TableName Extensionsconfig + $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json + $Config = $ExtensionConfig.Sherweb + #First get a list of all subscribed skus for this tenant, that are in the transfer window. + $Licenses = (Get-CIPPLicenseOverview -TenantFilter $TenantFilter) | Where-Object { $null -ne $_.terminfo -and $_.terminfo.TransferWindow -le 7 } + + #now check if this exact count of licenses is available at Sherweb, if not, we need to migrate them. + $SherwebLicenses = Get-SherwebCurrentSubscription -TenantFilter $TenantFilter + $LicencesToMigrate = foreach ($License in $Licenses) { + foreach ($termInfo in $License.terminfo) { + $matchedSherweb = $SherwebLicenses | Where-Object { $_.quantity -eq $termInfo.TotalLicenses -and $_.commitmentTerm.termEndDate -eq $termInfo.NextLifecycle } + if (-not $matchedSherweb) { + [PSCustomObject]@{ + LicenseName = ($Licenses | Where-Object { $_.skuId -eq $License.skuId }).license + SkuId = $License.skuId + SubscriptionId = $termInfo.SubscriptionId + Term = $termInfo.Term + NextLifecycle = $termInfo.NextLifecycle + TotalLicensesAtUnknownCSP = $termInfo.TotalLicenses + TotalLicensesAvailableInM365 = ($Licenses | Where-Object { $_.skuId -eq $License.skuId }).TotalLicenses + } + + } + } + } + + switch -wildcard ($config.migrationMethods) { + '*notify*' { + $Subject = "Sherweb Migration: $($TenantFilter) - $($LicencesToMigrate.Count) licenses to migrate" + $HTMLContent = New-CIPPAlertTemplate -Data $LicencesToMigrate -Format 'html' -InputObject 'sherwebmig' + $JSONContent = New-CIPPAlertTemplate -Data $LicencesToMigrate -Format 'json' -InputObject 'sherwebmig' + Send-CIPPAlert -Type 'email' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $tenant -APIName 'Alerts' + Send-CIPPAlert -Type 'psa' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $standardsTenant -APIName 'Alerts' + Send-CIPPAlert -Type 'webhook' -JSONContent $JSONContent -TenantFilter $Tenant -APIName 'Alerts' + } + '*buy*' { + try { + $PotentialLicenses = Get-SherwebCatalog -TenantFilter $TenantFilter | Where-Object { $_.microsoftSkuId -in $LicencesToMigrate.SkuId -and $_.sku -like "*$($Config.migrateToLicense)" } + if (!$PotentialLicenses) { + throw 'cannot buy new license: no matching license found in catalog' + } else { + $PotentialLicenses | ForEach-Object { + Set-SherwebSubscription -TenantFilter $TenantFilter -SKU $PotentialLicenses.sku -Quantity $LicencesToMigrate.TotalLicensesAtUnknownCSP + } + } + } catch { + $Subject = "Sherweb Migration: $($TenantFilter) - Failed to buy licenses." + $HTMLContent = New-CIPPAlertTemplate -Data $LicencesToMigrate -Format 'html' -InputObject 'sherwebmigBuyFail' + $JSONContent = New-CIPPAlertTemplate -Data $LicencesToMigrate -Format 'json' -InputObject 'sherwebmigBuyFail' + Send-CIPPAlert -Type 'email' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $tenant -APIName 'Alerts' + Send-CIPPAlert -Type 'psa' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $standardsTenant -APIName 'Alerts' + Send-CIPPAlert -Type 'webhook' -JSONContent $JSONContent -TenantFilter $Tenant -APIName 'Alerts' + } + + } + '*Cancel' { + try { + $tenantid = (Get-Tenants -TenantFilter $TenantFilter).customerId + $Pax8Config = $ExtensionConfig.Pax8 + $Pax8ClientId = $Pax8Config.clientId + $Pax8ClientSecret = Get-ExtensionAPIKey -Extension 'Pax8' + $paxBody = @{ + client_id = $Pax8ClientId + client_secret = $Pax8ClientSecret + audience = 'https://api.pax8.com' + grant_type = 'client_credentials' + } + $Token = Invoke-RestMethod -Uri 'https://api.pax8.com/v1/token' -Method POST -Headers $headers -ContentType 'application/json' -Body $paxBody + $headers = @{ Authorization = "Bearer $($Token.access_token)" } + $cancelSubList = Invoke-RestMethod -Uri "https://api.pax8.com/v1/subscriptions?page=0&size=10&status=Active&companyId=$($tenantid)" -Method GET -Headers $headers | Where-Object -Property productId -In $LicencesToMigrate.SkuId + $cancelSubList | ForEach-Object { + $response = Invoke-RestMethod -Uri "https://api.pax8.com/v1/subscriptions/$($_.subscriptionId)" -Method DELETE -Headers $headers -ContentType 'application/json' -Body ($body | ConvertTo-Json) + } + + } catch { + $Subject = 'Sherweb Migration: Pax Migration failed' + $HTMLContent = New-CIPPAlertTemplate -Data $LicencesToMigrate -Format 'html' -InputObject 'sherwebmigfailpax' + $JSONContent = New-CIPPAlertTemplate -Data $LicencesToMigrate -Format 'json' -InputObject 'sherwebmigfailpax' + Send-CIPPAlert -Type 'email' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $tenant -APIName 'Alerts' + Send-CIPPAlert -Type 'psa' -Title $Subject -HTMLContent $HTMLContent.htmlcontent -TenantFilter $standardsTenant -APIName 'Alerts' + Send-CIPPAlert -Type 'webhook' -JSONContent $JSONContent -TenantFilter $Tenant -APIName 'Alerts' + } + } + + } +} diff --git a/Modules/CippExtensions/build.psd1 b/Modules/CippExtensions/build.psd1 new file mode 100644 index 000000000000..ca804a1fbdb1 --- /dev/null +++ b/Modules/CippExtensions/build.psd1 @@ -0,0 +1,11 @@ +@{ + Path = 'CippExtensions.psd1' + OutputDirectory = '../../Output' + VersionedOutputDirectory = $false + CopyPaths = @( + 'ConversionTable.csv' + ) + Encoding = 'UTF8' + Prefix = $null + Suffix = $null +} diff --git a/Modules/DNSHealth/1.1.0/DNSHealth.psd1 b/Modules/DNSHealth/1.1.0/DNSHealth.psd1 new file mode 100644 index 000000000000..651cc2720db7 --- /dev/null +++ b/Modules/DNSHealth/1.1.0/DNSHealth.psd1 @@ -0,0 +1,131 @@ +# +# Module manifest for module 'DNSHealth' +# +# Generated by: John Duprey +# +# Generated on: 2023-02-03 +# + +@{ + + # Script module or binary module file associated with this manifest. + RootModule = 'DNSHealth.psm1' + + # Version number of this module. + ModuleVersion = '1.1.0' + + # Supported PSEditions + # CompatiblePSEditions = @() + + # ID used to uniquely identify this module + GUID = 'a300d2b0-d468-46d1-88a3-e442a76b655b' + + # Author of this module + Author = 'John Duprey' + + # Company or vendor of this module + CompanyName = '' + + # Copyright statement for this module + Copyright = '2023 John Duprey' + + # Description of the functionality provided by this module + Description = 'CIPP DNS Health Check Module' + + # Minimum version of the PowerShell engine required by this module + PowerShellVersion = '7.0' + + # Name of the PowerShell host required by this module + # PowerShellHostName = '' + + # Minimum version of the PowerShell host required by this module + # PowerShellHostVersion = '' + + # Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. + # DotNetFrameworkVersion = '' + + # Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. + # ClrVersion = '' + + # Processor architecture (None, X86, Amd64) required by this module + # ProcessorArchitecture = '' + + # Modules that must be imported into the global environment prior to importing this module + #RequiredModules = @('') + + # Assemblies that must be loaded prior to importing this module + # RequiredAssemblies = @() + + # Script files (.ps1) that are run in the caller's environment prior to importing this module. + ScriptsToProcess = @() + + # Type files (.ps1xml) to be loaded when importing this module + # TypesToProcess = @() + + # Format files (.ps1xml) to be loaded when importing this module + # FormatsToProcess = @() + + # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess + # NestedModules = @() + + # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. + FunctionsToExport = @('Read-DmarcPolicy','Read-MtaStsPolicy','Read-DkimRecord','Read-MtaStsRecord','Read-MXRecord','Read-NSRecord','Read-SPFRecord','Read-TlsRptRecord','Read-WhoisRecord','Resolve-DnsHttpsQuery','Set-DnsResolver','Test-DNSSEC','Test-HttpsCertificate','Test-MtaSts') + + # Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. + #CmdletsToExport = '*' + + # Variables to export from this module + #VariablesToExport = '*' + + # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. + #AliasesToExport = '*' + + # DSC resources to export from this module + # DscResourcesToExport = @() + + # List of all modules packaged with this module + # ModuleList = @() + + # List of all files packaged with this module + # FileList = @() + + # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. + PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + # Tags = @() + + # A URL to the license for this module. + # LicenseUri = '' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/johnduprey/DNSHealth' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + # ReleaseNotes = '' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + #ExternalModuleDependencies = @() + + } # End of PSData hashtable + + } # End of PrivateData hashtable + + # HelpInfo URI of this module + # HelpInfoURI = '' + + # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. + #DefaultCommandPrefix = '' + +} diff --git a/Modules/DNSHealth/1.1.0/DNSHealth.psm1 b/Modules/DNSHealth/1.1.0/DNSHealth.psm1 new file mode 100644 index 000000000000..cbefac309733 --- /dev/null +++ b/Modules/DNSHealth/1.1.0/DNSHealth.psm1 @@ -0,0 +1,2621 @@ +#Region './Private/Get-DomainMacros.ps1' -1 + +function Get-DomainMacros { + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain, + + [Parameter(Mandatory = $true)] + [string]$MacroExpand + ) + + $Macros = @{ + '%{d}' = $Domain + '%{o}' = $Domain + '%{h}' = $Domain + '%{l}' = 'postmaster' + '%{s}' = 'postmaster@{0}' -f $Domain + '%{i}' = '1.2.3.4' + } + + foreach ($Macro in $Macros.Keys) { + $MacroExpand = $MacroExpand -replace $Macro, $Macros.$Macro + } + + $MacroExpand +} +#EndRegion './Private/Get-DomainMacros.ps1' 26 +#Region './Private/Get-RsaPublicKeyInfo.ps1' -1 + +function Get-RsaPublicKeyInfo { + <# + .SYNOPSIS + Gets RSA public key info from Base64 string + + .DESCRIPTION + Decodes RSA public key information for validation. Uses a c# library to decode base64 data. + + .PARAMETER EncodedString + Base64 encoded public key string + + .EXAMPLE + PS> Get-RsaPublicKeyInfo -EncodedString + + LegalKeySizes KeyExchangeAlgorithm SignatureAlgorithm KeySize + ------------- -------------------- ------------------ ------- + {System.Security.Cryptography.KeySizes} RSA RSA 2048 + + .NOTES + Obtained C# code from https://github.com/sevenTiny/Bamboo/blob/b5503b5597383ca6085ceb4aa5fa054918a4bd73/10-Code/SevenTiny.Bantina/Security/RSACommon.cs + #> + Param( + [Parameter(Mandatory = $true)] + $EncodedString + ) + $source = @' +/********************************************************* + * CopyRight: 7TINY CODE BUILDER. + * Version: 5.0.0 + * Author: 7tiny + * Address: Earth + * Create: 2018-04-08 21:54:19 + * Modify: 2018-04-08 21:54:19 + * E-mail: dong@7tiny.com | sevenTiny@foxmail.com + * GitHub: https://github.com/sevenTiny + * Personal web site: http://www.7tiny.com + * Technical WebSit: http://www.cnblogs.com/7tiny/ + * Description: + * Thx , Best Regards ~ + *********************************************************/ +using System; +using System.IO; +using System.Security.Cryptography; +using System.Text; + +namespace SevenTiny.Bantina.Security { + public static class RSACommon { + public static RSA CreateRsaProviderFromPublicKey(string publicKeyString) + { + // encoded OID sequence for PKCS #1 rsaEncryption szOID_RSA_RSA = "1.2.840.113549.1.1.1" + byte[] seqOid = { 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00 }; + byte[] seq = new byte[15]; + + var x509Key = Convert.FromBase64String(publicKeyString); + + // --------- Set up stream to read the asn.1 encoded SubjectPublicKeyInfo blob ------ + using (MemoryStream mem = new MemoryStream(x509Key)) + { + using (BinaryReader binr = new BinaryReader(mem)) //wrap Memory Stream with BinaryReader for easy reading + { + byte bt = 0; + ushort twobytes = 0; + + twobytes = binr.ReadUInt16(); + if (twobytes == 0x8130) //data read as little endian order (actual data order for Sequence is 30 81) + binr.ReadByte(); //advance 1 byte + else if (twobytes == 0x8230) + binr.ReadInt16(); //advance 2 bytes + else + return null; + + seq = binr.ReadBytes(15); //read the Sequence OID + if (!CompareBytearrays(seq, seqOid)) //make sure Sequence for OID is correct + return null; + + twobytes = binr.ReadUInt16(); + if (twobytes == 0x8103) //data read as little endian order (actual data order for Bit String is 03 81) + binr.ReadByte(); //advance 1 byte + else if (twobytes == 0x8203) + binr.ReadInt16(); //advance 2 bytes + else + return null; + + bt = binr.ReadByte(); + if (bt != 0x00) //expect null byte next + return null; + + twobytes = binr.ReadUInt16(); + if (twobytes == 0x8130) //data read as little endian order (actual data order for Sequence is 30 81) + binr.ReadByte(); //advance 1 byte + else if (twobytes == 0x8230) + binr.ReadInt16(); //advance 2 bytes + else + return null; + + twobytes = binr.ReadUInt16(); + byte lowbyte = 0x00; + byte highbyte = 0x00; + + if (twobytes == 0x8102) //data read as little endian order (actual data order for Integer is 02 81) + lowbyte = binr.ReadByte(); // read next bytes which is bytes in modulus + else if (twobytes == 0x8202) + { + highbyte = binr.ReadByte(); //advance 2 bytes + lowbyte = binr.ReadByte(); + } + else + return null; + byte[] modint = { lowbyte, highbyte, 0x00, 0x00 }; //reverse byte order since asn.1 key uses big endian order + int modsize = BitConverter.ToInt32(modint, 0); + + int firstbyte = binr.PeekChar(); + if (firstbyte == 0x00) + { //if first byte (highest order) of modulus is zero, don't include it + binr.ReadByte(); //skip this null byte + modsize -= 1; //reduce modulus buffer size by 1 + } + + byte[] modulus = binr.ReadBytes(modsize); //read the modulus bytes + + if (binr.ReadByte() != 0x02) //expect an Integer for the exponent data + return null; + int expbytes = (int)binr.ReadByte(); // should only need one byte for actual exponent data (for all useful values) + byte[] exponent = binr.ReadBytes(expbytes); + + // ------- create RSACryptoServiceProvider instance and initialize with public key ----- + var rsa = System.Security.Cryptography.RSA.Create(); + RSAParameters rsaKeyInfo = new RSAParameters + { + Modulus = modulus, + Exponent = exponent + }; + rsa.ImportParameters(rsaKeyInfo); + + return rsa; + } + } + } + private static bool CompareBytearrays(byte[] a, byte[] b) + { + if (a.Length != b.Length) + return false; + int i = 0; + foreach (byte c in a) + { + if (c != b[i]) + return false; + i++; + } + return true; + } + } +} +'@ + try { + if (!('SevenTiny.Bantina.Security.RSACommon' -as [type])) { + Add-Type -TypeDefinition $source -Language CSharp + } + } + + catch { Write-Verbose $_.Exception.Message } + + # Return RSA Public Key information + [SevenTiny.Bantina.Security.RSACommon]::CreateRsaProviderFromPublicKey($EncodedString) +} +#EndRegion './Private/Get-RsaPublicKeyInfo.ps1' 166 +#Region './Private/Get-ServerCertificateValidation.ps1' -1 + +function Get-ServerCertificateValidation { + <# + .SYNOPSIS + Get HTTPS certificate and chain information for Url + + .DESCRIPTION + Obtains certificate data from .Net HttpClient and builds certificate chain to + verify validity and revocation status + + .PARAMETER Url + Url to check + + .PARAMETER FollowRedirect + Follow HTTP redirects + + .EXAMPLE + PS> Get-ServerCertificateValidation -Url https://expired.badssl.com + + #> + Param( + [Parameter(Mandatory = $true)] + $Url, + [switch]$FollowRedirect + ) + $source = @' +using System; +using System.Net.Http; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; +using System.Threading.Tasks; + +namespace CyberDrain.CIPP { + + public class CertValidation { + public HttpResponseMessage HttpResponse; + public X509Certificate2 Certificate; + public X509Chain Chain; + public SslPolicyErrors SslErrors; + } + + public static class CertificateCheck { + public static CertValidation GetServerCertificate(string url, bool allowredirect=false) + { + CertValidation certvalidation = new CertValidation(); + var httpClientHandler = new HttpClientHandler + { + AllowAutoRedirect = allowredirect, + ServerCertificateCustomValidationCallback = (requestMessage, cert, chain, sslErrors) => + { + X509Chain ch = new X509Chain(); + ch.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain; + ch.ChainPolicy.RevocationMode = X509RevocationMode.Online; + ch.ChainPolicy.VerificationFlags = X509VerificationFlags.AllFlags; + //ch.ChainPolicy.DisableCertificateDownloads = true; + certvalidation.Certificate = new X509Certificate2(cert.GetRawCertData()); + ch.Build(cert); + certvalidation.Chain = ch; + certvalidation.SslErrors = sslErrors; + return true; + } + }; + + var httpClient = new HttpClient(httpClientHandler); + HttpResponseMessage HttpResponse = Task.Run(async() => await httpClient.SendAsync(new HttpRequestMessage(HttpMethod.Get, url))).Result; + certvalidation.HttpResponse = HttpResponse; + return certvalidation; + } + } +} +'@ + try { + if (!('CyberDrain.CIPP.CertificateCheck' -as [type])) { + Add-Type -TypeDefinition $source -Language CSharp + } + } + + catch { Write-Verbose $_.Exception.Message } + + [CyberDrain.CIPP.CertificateCheck]::GetServerCertificate($Url, $FollowRedirect) +} +#EndRegion './Private/Get-ServerCertificateValidation.ps1' 81 +#Region './Public/Policies/Read-DmarcPolicy.ps1' -1 + +function Read-DmarcPolicy { + <# + .SYNOPSIS + Resolve and validate DMARC policy + + .DESCRIPTION + Query domain for DMARC policy (_dmarc.domain.com) and parse results. Record is checked for issues. + + .PARAMETER Domain + Domain to process DMARC policy + + .EXAMPLE + PS> Read-DmarcPolicy -Domain gmail.com + + Domain : gmail.com + Record : v=DMARC1; p=none; sp=quarantine; rua=mailto:mailauth-reports@google.com + Version : DMARC1 + Policy : none + SubdomainPolicy : quarantine + Percent : 100 + DkimAlignment : r + SpfAlignment : r + ReportFormat : afrf + ReportInterval : 86400 + ReportingEmails : {mailauth-reports@google.com} + ForensicEmails : {} + FailureReport : 0 + ValidationPasses : {Aggregate reports are being sent} + ValidationWarns : {Policy is not being enforced, Subdomain policy is only partially enforced with quarantine, Failure report option 0 will only generate a report on both SPF and DKIM misalignment. It is recommended to set this value to 1} + ValidationFails : {} + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain + ) + + # Initialize object + $DmarcAnalysis = [PSCustomObject]@{ + Domain = $Domain + Record = '' + Version = '' + Policy = '' + SubdomainPolicy = '' + Percent = 100 + DkimAlignment = 'r' + SpfAlignment = 'r' + ReportFormat = 'afrf' + ReportInterval = 86400 + ReportingEmails = [System.Collections.Generic.List[string]]::new() + ForensicEmails = [System.Collections.Generic.List[string]]::new() + FailureReport = '' + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + } + + # Validation lists + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationWarns = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + # Email report domains + $ReportDomains = [System.Collections.Generic.List[string]]::new() + + # Validation ranges + $PolicyValues = @('none', 'quarantine', 'reject') + $FailureReportValues = @('0', '1', 'd', 's') + $ReportFormatValues = @('afrf') + + $RecordCount = 0 + + $DnsQuery = @{ + RecordType = 'TXT' + Domain = "_dmarc.$Domain" + } + + # Resolve DMARC record + + $Query = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + + $RecordCount = 0 + $Query.Answer | Where-Object { $_.data -match '^v=DMARC1' } | ForEach-Object { + $DmarcRecord = $_.data + $DmarcAnalysis.Record = $DmarcRecord + $RecordCount++ + } + + if ($Query.Status -eq 2 -and $Query.AD -eq $false) { + $ValidationFails.Add('DNSSEC validation failed.') | Out-Null + } + + elseif ($Query.Status -ne 0 -or $RecordCount -eq 0) { + $ValidationFails.Add('This domain does not have a DMARC record.') | Out-Null + } + + elseif (($Query.Answer | Measure-Object).Count -eq 1 -and $RecordCount -eq 0) { + $ValidationFails.Add("The record must begin with 'v=DMARC1'.") | Out-Null + } + + elseif ($RecordCount -gt 1) { + $ValidationFails.Add('This domain has multiple records. The policy evaluation will fail.') | Out-Null + } + + # Split DMARC record into name/value pairs + $TagList = [System.Collections.Generic.List[object]]::new() + Foreach ($Element in ($DmarcRecord -split ';').trim()) { + $Name, $Value = $Element -split '=' + $TagList.Add( + [PSCustomObject]@{ + Name = $Name + Value = $Value + } + ) | Out-Null + } + + # Loop through name/value pairs and set object properties + $x = 0 + foreach ($Tag in $TagList) { + switch ($Tag.Name) { + 'v' { + # REQUIRED: Version + $DmarcAnalysis.Version = $Tag.Value + } + 'p' { + # REQUIRED: Policy + $DmarcAnalysis.Policy = $Tag.Value + } + 'sp' { + # Subdomain policy, defaults to policy record + $DmarcAnalysis.SubdomainPolicy = $Tag.Value + } + 'rua' { + # Aggregate report emails + $ReportingEmails = $Tag.Value -split ', ' + $ReportEmailsSet = $false + foreach ($MailTo in $ReportingEmails) { + if ($MailTo -notmatch '^mailto:') { $ValidationFails.Add("Aggregate report email addresses must begin with 'mailto:', multiple addresses must be separated by commas.") | Out-Null } + else { + $ReportEmailsSet = $true + if ($MailTo -match '^mailto:(?.+@(?[^!]+?))(?:!(?[0-9]+[kmgt]?))?$') { + if ($ReportDomains -notcontains $Matches.Domain -and $Matches.Domain -ne $Domain) { + $ReportDomains.Add($Matches.Domain) | Out-Null + } + $DmarcAnalysis.ReportingEmails.Add($Matches.Email) | Out-Null + } + } + } + if (!$DmarcAnalysis.ReportingEmails) { $DmarcAnalysis.ReportingEmails.Add($null) } + if ($ReportEmailsSet) { + $ValidationPasses.Add('Aggregate reports are being sent.') | Out-Null + } + + else { + $ValidationWarns.Add('Aggregate reports are not being sent.') | Out-Null + } + } + 'ruf' { + # Forensic reporting emails + foreach ($MailTo in ($Tag.Value -split ', ')) { + if ($MailTo -notmatch '^mailto:') { $ValidationFails.Add("Forensic report email must begin with 'mailto:', multiple addresses must be separated by commas - found $($Tag.Value)") | Out-Null } + else { + if ($MailTo -match '^mailto:(?.+@(?[^!]+?))(?:!(?[0-9]+[kmgt]?))?$') { + if ($ReportDomains -notcontains $Matches.Domain -and $Matches.Domain -ne $Domain) { + $ReportDomains.Add($Matches.Domain) | Out-Null + } + $DmarcAnalysis.ForensicEmails.Add($Matches.Email) | Out-Null + } + } + } + } + 'fo' { + # Failure reporting options + $DmarcAnalysis.FailureReport = $Tag.Value + } + 'pct' { + # Percentage of email to check + $DmarcAnalysis.Percent = [int]$Tag.Value + } + 'adkim' { + # DKIM Alignmenet + $DmarcAnalysis.DkimAlignment = $Tag.Value + } + 'aspf' { + # SPF Alignment + $DmarcAnalysis.SpfAlignment = $Tag.Value + } + 'rf' { + # Report Format + $DmarcAnalysis.ReportFormat = $Tag.Value + } + 'ri' { + # Report Interval + $DmarcAnalysis.ReportInterval = $Tag.Value + } + } + $x++ + } + + if ($RecordCount -gt 0) { + # Check report domains for DMARC reporting record + $ReportDomainCount = $ReportDomains | Measure-Object | Select-Object -ExpandProperty Count + if ($ReportDomainCount -gt 0) { + $ReportDomainsPass = $true + foreach ($ReportDomain in $ReportDomains) { + $ReportDomainQuery = "$Domain._report._dmarc.$ReportDomain" + $DnsQuery['Domain'] = $ReportDomainQuery + $ReportDmarcQuery = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + $ReportDmarcRecord = $ReportDmarcQuery.Answer.data + if ($null -eq $ReportDmarcQuery -or $ReportDmarcQuery.Status -ne 0) { + $ValidationWarns.Add("Report DMARC policy for $Domain is missing from $ReportDomain, reports will not be delivered. Expected record: '$Domain._report._dmarc.$ReportDomain' - Expected value: 'v=DMARC1;'") | Out-Null + $ReportDomainsPass = $false + } + + elseif ($ReportDmarcRecord -notmatch '^v=DMARC1') { + $ValidationWarns.Add("Report DMARC policy for $Domain is missing from $ReportDomain, reports will not be delivered. Expected record: '$Domain._report._dmarc.$ReportDomain' - Expected value: 'v=DMARC1;'.") | Out-Null + $ReportDomainsPass = $false + } + } + + if ($ReportDomainsPass) { + $ValidationPasses.Add('All external reporting domains allow this domain to send DMARC reports.') | Out-Null + } + + } + # Check for missing record tags and set defaults + if ($DmarcAnalysis.Policy -eq '') { $ValidationFails.Add('The policy tag (p=) is missing from this record. Set this to none, quarantine or reject.') | Out-Null } + if ($DmarcAnalysis.SubdomainPolicy -eq '') { $DmarcAnalysis.SubdomainPolicy = $DmarcAnalysis.Policy } + + # Check policy for errors and best practice + if ($PolicyValues -notcontains $DmarcAnalysis.Policy) { $ValidationFails.Add("The policy must be one of the following: none, quarantine or reject. Found $($Tag.Value)") | Out-Null } + if ($DmarcAnalysis.Policy -eq 'reject') { $ValidationPasses.Add('The domain policy is set to reject, this is best practice.') | Out-Null } + if ($DmarcAnalysis.Policy -eq 'quarantine') { $ValidationWarns.Add('The domain policy is only partially enforced with quarantine. Set this to reject to be fully compliant.') | Out-Null } + if ($DmarcAnalysis.Policy -eq 'none') { $ValidationFails.Add('The domain policy is not being enforced.') | Out-Null } + + # Check subdomain policy + if ($PolicyValues -notcontains $DmarcAnalysis.SubdomainPolicy) { $ValidationFails.Add("The subdomain policy must be one of the following: none, quarantine or reject. Found $($DmarcAnalysis.SubdomainPolicy)") | Out-Null } + if ($DmarcAnalysis.SubdomainPolicy -eq 'reject') { $ValidationPasses.Add('The subdomain policy is set to reject, this is best practice.') | Out-Null } + if ($DmarcAnalysis.SubdomainPolicy -eq 'quarantine') { $ValidationWarns.Add('The subdomain policy is only partially enforced with quarantine. Set this to reject to be fully compliant.') | Out-Null } + if ($DmarcAnalysis.SubdomainPolicy -eq 'none') { $ValidationFails.Add('The subdomain policy is not being enforced.') | Out-Null } + + # Check percentage - validate range and ensure 100% + if ($DmarcAnalysis.Percent -lt 100 -and $DmarcAnalysis.Percent -ge 0) { $ValidationWarns.Add('Not all emails will be processed by the DMARC policy.') | Out-Null } + if ($DmarcAnalysis.Percent -gt 100 -or $DmarcAnalysis.Percent -lt 0) { $ValidationFails.Add('The percentage tag (pct=) must be between 0 and 100.') | Out-Null } + + # Check report format + if ($ReportFormatValues -notcontains $DmarcAnalysis.ReportFormat) { $ValidationFails.Add("The report format '$($DmarcAnalysis.ReportFormat)' is not supported.") | Out-Null } + + # Check forensic reports and failure options + $ForensicCount = ($DmarcAnalysis.ForensicEmails | Measure-Object | Select-Object -ExpandProperty Count) + if ($ForensicCount -eq 0 -and $DmarcAnalysis.FailureReport -ne '') { $ValidationWarns.Add('Forensic email reports recipients are not defined and failure report options are set. No reports will be sent. This is not an issue unless you are expecting forensic reports.') | Out-Null } + if ($DmarcAnalysis.FailureReport -eq '' -and $null -ne $DmarcRecord) { $DmarcAnalysis.FailureReport = '0' } + if ($ForensicCount -gt 0) { + $ReportOptions = $DmarcAnalysis.FailureReport -split ':' + foreach ($ReportOption in $ReportOptions) { + if ($FailureReportValues -notcontains $ReportOption) { $ValidationFails.Add("Failure report option '$ReportOption' is not a valid choice.") | Out-Null } + if ($ReportOption -eq '1') { $ValidationPasses.Add('Failure report option 1 generates forensic reports on SPF or DKIM misalignment.') | Out-Null } + if ($ReportOption -eq '0' -and $ReportOptions -notcontains '1') { $ValidationWarns.Add('Failure report option 0 will only generate a forensic report on both SPF and DKIM misalignment. It is recommended to set this value to 1.') | Out-Null } + if ($ReportOption -eq 'd' -and $ReportOptions -notcontains '1') { $ValidationWarns.Add('Failure report option d will only generate a forensic report on failed DKIM evaluation. It is recommended to set this value to 1.') | Out-Null } + if ($ReportOption -eq 's' -and $ReportOptions -notcontains '1') { $ValidationWarns.Add('Failure report option s will only generate a forensic report on failed SPF evaluation. It is recommended to set this value to 1.') | Out-Null } + } + } + } + + # Add the validation lists + $DmarcAnalysis.ValidationPasses = @($ValidationPasses) + $DmarcAnalysis.ValidationWarns = @($ValidationWarns) + $DmarcAnalysis.ValidationFails = @($ValidationFails) + + # Return DMARC analysis + $DmarcAnalysis +} +#EndRegion './Public/Policies/Read-DmarcPolicy.ps1' 274 +#Region './Public/Policies/Read-MtaStsPolicy.ps1' -1 + +function Read-MtaStsPolicy { + <# + .SYNOPSIS + Resolve and validate MTA-STS policy + + .DESCRIPTION + Retrieve mta-sts.txt from .well-known directory on domain + + .PARAMETER Domain + Domain to process MTA-STS policy + + .EXAMPLE + PS> Read-MtaStsPolicy -Domain gmail.com + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain + ) + + $StsPolicyAnalysis = [PSCustomObject]@{ + Domain = $Domain + Version = '' + Mode = '' + Mx = [System.Collections.Generic.List[string]]::new() + MaxAge = '' + IsValid = $false + HasWarnings = $false + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + } + + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationWarns = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + # Valid policy modes + $StsPolicyModes = @('testing', 'enforce') + + # Request policy file from domain, only accept text/plain results + $RequestParams = @{ + Uri = ('https://mta-sts.{0}/.well-known/mta-sts.txt' -f $Domain) + Headers = @{ + Accept = 'text/plain' + } + } + + $PolicyExists = $false + try { + $wr = Invoke-WebRequest @RequestParams -ErrorAction Stop + $PolicyExists = $true + } + + catch { + $ValidationFails.Add(('MTA-STS policy does not exist for {0}' -f $Domain)) | Out-Null + } + + # Policy file is key value pairs split on new lines + $StsPolicyEntries = [System.Collections.Generic.List[object]]::new() + $Entries = $wr.Content -split "`r?`n" + foreach ($Entry in $Entries) { + if ($null -ne $Entry) { + try { + $Name, $Value = $Entry -split ':' + $StsPolicyEntries.Add( + [PSCustomObject]@{ + Name = $Name.trim() + Value = $Value.trim() + } + ) | Out-Null + } + + catch { Write-Verbose $_.Exception.Message } + } + } + + foreach ($StsPolicyEntry in $StsPolicyEntries) { + switch ($StsPolicyEntry.Name) { + 'version' { + # REQUIRED: Version + $StsPolicyAnalysis.Version = $StsPolicyEntry.Value + } + 'mode' { + $StsPolicyAnalysis.Mode = $StsPolicyEntry.Value + } + 'mx' { + $StsPolicyAnalysis.Mx.Add($StsPolicyEntry.Value) | Out-Null + } + 'max_age' { + $StsPolicyAnalysis.MaxAge = $StsPolicyEntry.Value + } + } + } + + # Check policy for issues + if ($PolicyExists) { + if ($StsPolicyAnalysis.Version -ne 'STSv1') { + $ValidationFails.Add("Version must be STSv1 - found $($StsPolicyEntry.Value)") | Out-Null + } + if ($StsPolicyAnalysis.Version -eq '') { + $ValidationFails.Add('Version is missing from policy') | Out-Null + } + if ($StsPolicyModes -notcontains $StsPolicyAnalysis.Mode) { + $ValidationFails.Add(('Policy mode "{0}" is not valid. (Options: {1})' -f $StsPolicyAnalysis.Mode, $StsPolicyModes -join ', ')) + } + if ($StsPolicyAnalysis.Mode -eq 'Testing') { + $ValidationWarns.Add('MTA-STS policy is in testing mode, no action will be taken') | Out-Null + $StsPolicyAnalysis.HasWarnings = $true + } + + $ValidationFailCount = ($ValidationFails | Measure-Object).Count + if ($ValidationFailCount -eq 0) { + $ValidationPasses.Add('MTA-STS policy is valid') + $StsPolicyAnalysis.IsValid = $true + } + } + + # Aggregate validation results + $StsPolicyAnalysis.ValidationPasses = @($ValidationPasses) + $StsPolicyAnalysis.ValidationWarns = @($ValidationWarns) + $StsPolicyAnalysis.ValidationFails = @($ValidationFails) + + $StsPolicyAnalysis +} +#EndRegion './Public/Policies/Read-MtaStsPolicy.ps1' 126 +#Region './Public/Records/Read-DkimRecord.ps1' -1 + +function Read-DkimRecord { + <# + .SYNOPSIS + Read DKIM record from DNS + + .DESCRIPTION + Validates DKIM records on a domain a selector + + .PARAMETER Domain + Domain to check + + .PARAMETER Selectors + Selector records to check + + .PARAMETER MxLookup + Lookup record based on MX + + .EXAMPLE + PS> Read-DkimRecord -Domain example.com -Selector test + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain, + + [Parameter()] + [System.Collections.Generic.List[string]]$Selectors = @(), + + [Parameter()] + [switch]$FallbackToMicrosoftSelectors + ) + + $MXRecord = $null + $MinimumSelectorPass = 0 + $SelectorPasses = 0 + + $DkimAnalysis = [PSCustomObject]@{ + Domain = $Domain + Selectors = $Selectors + MailProvider = '' + Records = [System.Collections.Generic.List[object]]::new() + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + } + + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationWarns = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + # MX lookup, check for defined selectors + try { + $MXRecord = Read-MXRecord -Domain $Domain + if ($MXRecord.Selectors) { + foreach ($Selector in $MXRecord.Selectors) { + try { + $Selectors.Add($Selector) | Out-Null + } catch { Write-Verbose $_.Exception.Message } + } + } + if ($MXRecord.MailProvider) { + $DkimAnalysis.MailProvider = $MXRecord.MailProvider + if ($MXRecord.MailProvider.PSObject.Properties.Name -contains 'MinimumSelectorPass') { + $MinimumSelectorPass = $MXRecord.MailProvider.MinimumSelectorPass + } + $DkimAnalysis.Selectors = $Selectors + } + } catch { Write-Verbose $_.Exception.Message } + + # Fallback to Microsoft DKIM selectors + if ($FallbackToMicrosoftSelectors.IsPresent -and ($Selectors | Measure-Object | Select-Object -ExpandProperty Count) -eq 0) { + $MinimumSelectorPass = 1 + $Selectors.Add('selector1') + $Selectors.Add('selector2') + } + + # Get unique selectors + $Selectors = $Selectors | Sort-Object -Unique + + if (($Selectors | Measure-Object | Select-Object -ExpandProperty Count) -gt 0) { + foreach ($Selector in $Selectors) { + if (![string]::IsNullOrEmpty($Selector)) { + # Initialize object + $DkimRecord = [PSCustomObject]@{ + Selector = '' + Record = '' + Version = '' + PublicKey = '' + PublicKeyInfo = '' + KeyType = '' + Flags = '' + Notes = '' + HashAlgorithms = '' + ServiceType = '' + Granularity = '' + UnrecognizedTags = [System.Collections.Generic.List[object]]::new() + } + + $DnsQuery = @{ + RecordType = 'TXT' + Domain = "$Selector._domainkey.$Domain" + } + + try { + $QueryResults = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + } + + catch { + $Message = "{0}`r`n{1}" -f $_.Exception.Message, ($DnsQuery | ConvertTo-Json) + throw $Message + } + if ([string]::IsNullOrEmpty($Selector)) { continue } + + if ($QueryResults.Status -eq 2 -and $QueryResults.AD -eq $false) { + $ValidationFails.Add('DNSSEC validation failed.') | Out-Null + } + if ($QueryResults -eq '' -or $QueryResults.Status -ne 0) { + if ($QueryResults.Status -eq 3) { + if ($MinimumSelectorPass -eq 0) { + $ValidationFails.Add("$Selector - The selector record does not exist for this domain.") | Out-Null + } + } + + else { + $ValidationFails.Add("$Selector - DKIM record is missing, check the selector and try again") | Out-Null + } + $Record = '' + } + + else { + $QueryData = ($QueryResults.Answer).data | Where-Object { $_ -match '(v=|k=|t=|p=)' } + if (( $QueryData | Measure-Object).Count -gt 1) { + $Record = $QueryData[-1] + } + + else { + $Record = $QueryData + } + } + $DkimRecord.Selector = $Selector + + if ($null -eq $Record) { $Record = '' } + $DkimRecord.Record = $Record + + # Split DKIM record into name/value pairs + $TagList = [System.Collections.Generic.List[object]]::new() + Foreach ($Element in ($Record -split ';')) { + if ($Element -ne '') { + $Name, $Value = $Element.trim() -split '=' + $TagList.Add( + [PSCustomObject]@{ + Name = $Name + Value = $Value + } + ) | Out-Null + } + } + + # Loop through name/value pairs and set object properties + $x = 0 + foreach ($Tag in $TagList) { + if ($x -eq 0 -and $Tag.Value -ne 'DKIM1') { $ValidationFails.Add("$Selector - The record must being with 'v=DKIM1'.") | Out-Null } + + switch ($Tag.Name) { + 'v' { + # REQUIRED: Version + if ($x -ne 0) { $ValidationFails.Add("$Selector - The record must being with 'v=DKIM1'.") | Out-Null } + $DkimRecord.Version = $Tag.Value + } + 'p' { + # REQUIRED: Public Key + if ($Tag.Value -ne '') { + $DkimRecord.PublicKey = "-----BEGIN PUBLIC KEY-----`n {0}`n-----END PUBLIC KEY-----" -f $Tag.Value + $DkimRecord.PublicKeyInfo = Get-RsaPublicKeyInfo -EncodedString $Tag.Value + } + + else { + if ($MXRecord.MailProvider.Name -eq 'Null') { + $ValidationPasses.Add("$Selector - DKIM configuration is valid for a Null MX record configuration.") | Out-Null + } + + else { + $ValidationFails.Add("$Selector - There is no public key specified for this DKIM record or the key is revoked.") | Out-Null + } + } + } + 'k' { + $DkimRecord.KeyType = $Tag.Value + } + 't' { + $DkimRecord.Flags = $Tag.Value + } + 'n' { + $DkimRecord.Notes = $Tag.Value + } + 'h' { + $DkimRecord.HashAlgorithms = $Tag.Value + } + 's' { + $DkimRecord.ServiceType = $Tag.Value + } + 'g' { + $DkimRecord.Granularity = $Tag.Value + } + default { + $DkimRecord.UnrecognizedTags.Add($Tag) | Out-Null + } + } + $x++ + } + + if ($Record -ne '') { + if ($DkimRecord.KeyType -eq '') { $DkimRecord.KeyType = 'rsa' } + + if ($DkimRecord.HashAlgorithms -eq '') { $DkimRecord.HashAlgorithms = 'all' } + + $UnrecognizedTagCount = $UnrecognizedTags | Measure-Object | Select-Object -ExpandProperty Count + if ($UnrecognizedTagCount -gt 0) { + $TagString = ($UnrecognizedTags | ForEach-Object { '{0}={1}' -f $_.Tag, $_.Value }) -join ', ' + $ValidationWarns.Add("$Selector - $UnrecognizedTagCount urecognized tag(s) were detected in the DKIM record. This can cause issues with some mailbox providers. Tags: $TagString") + } + if ($DkimRecord.Flags -eq 'y') { + $ValidationWarns.Add("$Selector - The flag 't=y' indicates that this domain is testing mode currently. If DKIM is fully deployed, this flag should be changed to t=s unless subdomaining is required.") | Out-Null + } + + if ($DkimRecord.PublicKeyInfo.SignatureAlgorithm -ne $DkimRecord.KeyType -and $MXRecord.MailProvider.Name -ne 'Null') { + $ValidationWarns.Add("$Selector - Key signature algorithm $($DkimRecord.PublicKeyInfo.SignatureAlgorithm) does not match $($DkimRecord.KeyType)") | Out-Null + } + + if ($DkimRecord.PublicKeyInfo.KeySize -lt 1024 -and $MXRecord.MailProvider.Name -ne 'Null') { + $ValidationFails.Add("$Selector - Key size is less than 1024 bit, found $($DkimRecord.PublicKeyInfo.KeySize).") | Out-Null + } + + else { + if ($MXRecord.MailProvider.Name -ne 'Null') { + $ValidationPasses.Add("$Selector - DKIM key validation succeeded.") | Out-Null + } + $SelectorPasses++ + } + + if (($ValidationFails | Measure-Object | Select-Object -ExpandProperty Count) -eq 0) { + $ValidationPasses.Add("$Selector - No errors detected with DKIM record.") | Out-Null + } + } + ($DkimAnalysis.Records).Add($DkimRecord) | Out-Null + } + } + } + if (($DkimAnalysis.Records | Measure-Object | Select-Object -ExpandProperty Count) -eq 0 -and [string]::IsNullOrEmpty($DkimAnalysis.Selectors)) { + $ValidationWarns.Add('No DKIM selectors provided, set them in the domain options.') | Out-Null + } + + if ($MinimumSelectorPass -gt 0 -and $SelectorPasses -eq 0) { + $ValidationFails.Add(('{0} DKIM record(s) found. The minimum number of valid records ({1}) was not met.' -f $SelectorPasses, $MinimumSelectorPass)) | Out-Null + } + + elseif ($MinimumSelectorPass -gt 0 -and $SelectorPasses -ge $MinimumSelectorPass) { + $ValidationPasses.Add(('Minimum number of valid DKIM records were met {0}/{1}.' -f $SelectorPasses, $MinimumSelectorPass)) + } + + # Collect validation results + $DkimAnalysis.ValidationPasses = @($ValidationPasses) + $DkimAnalysis.ValidationWarns = @($ValidationWarns) + $DkimAnalysis.ValidationFails = @($ValidationFails) + + # Return analysis + $DkimAnalysis +} +#EndRegion './Public/Records/Read-DkimRecord.ps1' 270 +#Region './Public/Records/Read-MtaStsRecord.ps1' -1 + +function Read-MtaStsRecord { + <# + .SYNOPSIS + Resolve and validate MTA-STS record + + .DESCRIPTION + Query domain for DMARC policy (_mta-sts.domain.com) and parse results. Record is checked for issues. + + .PARAMETER Domain + Domain to process MTA-STS record + + .EXAMPLE + PS> Read-MtaStsRecord -Domain gmail.com + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain + ) + + # Initialize object + $StsAnalysis = [PSCustomObject]@{ + Domain = $Domain + Record = '' + Version = '' + Id = '' + IsValid = $false + HasWarnings = $false + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + } + + # Validation lists + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationWarns = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + # Validation ranges + + $RecordCount = 0 + + $DnsQuery = @{ + RecordType = 'TXT' + Domain = "_mta-sts.$Domain" + } + + # Resolve DMARC record + + $Query = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + + $RecordCount = 0 + $Query.Answer | Where-Object { $_.data -match '^v=STSv1' } | ForEach-Object { + $StsRecord = $_.data + $StsAnalysis.Record = $StsRecord + $RecordCount++ + } + if ($Query.Status -eq 2 -and $Query.AD -eq $false) { + $ValidationFails.Add('DNSSEC validation failed.') | Out-Null + } + + elseif ($Query.Status -ne 0 -or $RecordCount -eq 0) { + if ($Query.Status -eq 3) { + $ValidationFails.Add('Record does not exist (NXDOMAIN)') | Out-Null + } + + else { + $ValidationFails.Add("$Domain does not have an MTA-STS record") | Out-Null + } + } + + elseif ($RecordCount -gt 1) { + $ValidationFails.Add("$Domain has multiple MTA-STS records") | Out-Null + } + + # Split DMARC record into name/value pairs + $TagList = [System.Collections.Generic.List[object]]::new() + Foreach ($Element in ($StsRecord -split ';').trim()) { + $Name, $Value = $Element -split '=' + $TagList.Add( + [PSCustomObject]@{ + Name = $Name + Value = $Value + } + ) | Out-Null + } + + # Loop through name/value pairs and set object properties + $x = 0 + foreach ($Tag in $TagList) { + switch ($Tag.Name) { + 'v' { + # REQUIRED: Version + if ($x -ne 0) { $ValidationFails.Add('v=STSv1 must be at the beginning of the record') | Out-Null } + if ($Tag.Value -ne 'STSv1') { $ValidationFails.Add("Version must be STSv1 - found $($Tag.Value)") | Out-Null } + $StsAnalysis.Version = $Tag.Value + } + 'id' { + # REQUIRED: Id + $StsAnalysis.Id = $Tag.Value + } + + } + $x++ + } + + if ($RecordCount -gt 0) { + # Check for missing record tags and set defaults + if ($StsAnalysis.Id -eq '') { $ValidationFails.Add('Id record is missing') | Out-Null } + elseif ($StsAnalysis.Id -notmatch '^[A-Za-z0-9]+$') { + $ValidationFails.Add('STS Record ID must be alphanumeric') | Out-Null + } + + if ($RecordCount -gt 1) { + $ValidationWarns.Add('Multiple MTA-STS records detected, this may cause unexpected behavior.') | Out-Null + $StsAnalysis.HasWarnings = $true + } + + $ValidationWarnCount = ($Test.ValidationWarns | Measure-Object).Count + $ValidationFailCount = ($Test.ValidationFails | Measure-Object).Count + if ($ValidationFailCount -eq 0 -and $ValidationWarnCount -eq 0) { + $ValidationPasses.Add('MTA-STS record is valid') | Out-Null + $StsAnalysis.IsValid = $true + } + } + + # Add the validation lists + $StsAnalysis.ValidationPasses = @($ValidationPasses) + $StsAnalysis.ValidationWarns = @($ValidationWarns) + $StsAnalysis.ValidationFails = @($ValidationFails) + + # Return MTA-STS analysis + $StsAnalysis +} +#EndRegion './Public/Records/Read-MtaStsRecord.ps1' 136 +#Region './Public/Records/Read-MXRecord.ps1' -1 + +function Read-MXRecord { + <# + .SYNOPSIS + Reads MX records for domain + + .DESCRIPTION + Queries DNS servers to get MX records and returns in PSCustomObject list with Preference and Hostname + + .PARAMETER Domain + Domain to query + + .EXAMPLE + PS> Read-MXRecord -Domain gmail.com + + Preference Hostname + ---------- -------- + 5 gmail-smtp-in.l.google.com. + 10 alt1.gmail-smtp-in.l.google.com. + 20 alt2.gmail-smtp-in.l.google.com. + 30 alt3.gmail-smtp-in.l.google.com. + 40 alt4.gmail-smtp-in.l.google.com. + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain + ) + $MXResults = [PSCustomObject]@{ + Domain = '' + Records = [System.Collections.Generic.List[object]]::new() + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + MailProvider = '' + ExpectedInclude = '' + Selectors = '' + } + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + $DnsQuery = @{ + RecordType = 'mx' + Domain = $Domain + } + + $NoMxValidation = 'There are no mail exchanger records for this domain. If you do not want to receive mail for this domain use a Null MX record of . with a priority 0 (RFC 7505).' + + $MXResults.Domain = $Domain + + try { + $Result = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + } + + catch { $Result = $null } + if ($Result.Status -eq 2 -and $Result.AD -eq $false) { + $ValidationFails.Add('DNSSEC validation failed.') | Out-Null + } + + elseif ($Result.Status -ne 0 -or -not ($Result.Answer)) { + if ($Result.Status -eq 3) { + $ValidationFails.Add($NoMxValidation) | Out-Null + $MXResults.MailProvider = Get-Content "$PSScriptRoot\MailProviders\Null.json" | ConvertFrom-Json + $MXResults.Selectors = $MXRecords.MailProvider.Selectors + } + + else { + $ValidationFails.Add($NoMxValidation) | Out-Null + $MXResults.MailProvider = Get-Content "$PSScriptRoot\MailProviders\Null.json" | ConvertFrom-Json + $MXResults.Selectors = $MXRecords.MailProvider.Selectors + } + $MXRecords = $null + } + + else { + $MXRecords = $Result.Answer | ForEach-Object { + $Priority, $Hostname = $_.Data.Split(' ') + try { + [PSCustomObject]@{ + Priority = [int]$Priority + Hostname = $Hostname + } + } + + catch { Write-Verbose $_.Exception.Message } + } + $ValidationPasses.Add('Mail exchanger records record(s) are present for this domain.') | Out-Null + $MXRecords = $MXRecords | Sort-Object -Property Priority + + # Attempt to identify mail provider based on MX record + if (Test-Path "$PSScriptRoot\MailProviders") { + $ReservedVariables = @{ + 'DomainNameDashNotation' = $Domain -replace '\.', '-' + } + if ($MXRecords.Hostname -eq '') { + $ValidationFails.Add($NoMxValidation) | Out-Null + $MXResults.MailProvider = Get-Content "$PSScriptRoot\MailProviders\Null.json" | ConvertFrom-Json + } + + else { + $ProviderList = Get-ChildItem "$PSScriptRoot\MailProviders" -Exclude '_template.json' | ForEach-Object { + try { Get-Content $_ | ConvertFrom-Json -ErrorAction Stop } + catch { Write-Verbose $_.Exception.Message } + } + foreach ($Record in $MXRecords) { + $ProviderMatched = $false + foreach ($Provider in $ProviderList) { + try { + if ($Record.Hostname -match $Provider.MxMatch) { + $MXResults.MailProvider = $Provider + if (($Provider.SpfReplace | Measure-Object | Select-Object -ExpandProperty Count) -gt 0) { + $ReplaceList = [System.Collections.Generic.List[string]]::new() + foreach ($Var in $Provider.SpfReplace) { + if ($ReservedVariables.Keys -contains $Var) { + $ReplaceList.Add($ReservedVariables.$Var) | Out-Null + } + + else { + $ReplaceList.Add($Matches.$Var) | Out-Null + } + } + + $ExpectedInclude = $Provider.SpfInclude -f ($ReplaceList -join ', ') + } + + else { + $ExpectedInclude = $Provider.SpfInclude + } + + # Set ExpectedInclude and Selector fields based on provider details + $MXResults.ExpectedInclude = $ExpectedInclude + $MXResults.Selectors = $Provider.Selectors + $ProviderMatched = $true + break + } + } + + catch { Write-Verbose $_.Exception.Message } + } + if ($ProviderMatched) { + break + } + } + } + } + $MXResults.Records = $MXRecords + } + $MXResults.ValidationPasses = @($ValidationPasses) + $MXResults.ValidationFails = @($ValidationFails) + $MXResults.Records = @($MXResults.Records) + $MXResults +} +#EndRegion './Public/Records/Read-MXRecord.ps1' 153 +#Region './Public/Records/Read-NSRecord.ps1' -1 + +function Read-NSRecord { + <# + .SYNOPSIS + Reads NS records for domain + + .DESCRIPTION + Queries DNS servers to get NS records and returns in PSCustomObject list + + .PARAMETER Domain + Domain to query + + .EXAMPLE + PS> Read-NSRecord -Domain gmail.com + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain + ) + $NSResults = [PSCustomObject]@{ + Domain = '' + Records = [System.Collections.Generic.List[string]]::new() + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + NameProvider = '' + } + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + $DnsQuery = @{ + RecordType = 'ns' + Domain = $Domain + } + + $NSResults.Domain = $Domain + + try { + $Result = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + } + + catch { $Result = $null } + + if ($Result.Status -eq 2 -and $Result.AD -eq $false) { + $ValidationFails.Add('DNSSEC Validation failed.') | Out-Null + } + + elseif ($Result.Status -ne 0 -or -not ($Result.Answer)) { + $ValidationFails.Add('No nameservers found for this domain.') | Out-Null + $NSRecords = $null + } + + else { + $NSRecords = $Result.Answer.data + $ValidationPasses.Add('Nameserver record is present.') | Out-Null + $NSResults.Records = @($NSRecords) + } + $NSResults.ValidationPasses = $ValidationPasses + $NSResults.ValidationFails = $ValidationFails + $NSResults +} +#EndRegion './Public/Records/Read-NSRecord.ps1' 63 +#Region './Public/Records/Read-SPFRecord.ps1' -1 + +function Read-SpfRecord { + <# + .SYNOPSIS + Reads SPF record for specified domain + + .DESCRIPTION + Uses Get-GoogleDNSQuery to obtain TXT records for domain, searching for v=spf1 at the beginning of the record + Also parses include records and obtains their SPF as well + + .PARAMETER Domain + Domain to obtain SPF record for + + .EXAMPLE + PS> Read-SpfRecord -Domain gmail.com + + Domain : gmail.com + Record : v=spf1 redirect=_spf.google.com + RecordCount : 1 + LookupCount : 4 + AllMechanism : ~ + ValidationPasses : {Expected SPF record was included, No PermError detected in SPF record} + ValidationWarns : {} + ValidationFails : {SPF record should end in -all to prevent spamming} + RecordList : {@{Domain=_spf.google.com; Record=v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all; RecordCount=1; LookupCount=4; AllMechanism=~; ValidationPasses=System.Collections.ArrayList; ValidationWarns=System.Collections.ArrayList; ValidationFails=System.Collections.ArrayList; RecordList=System.Collections.ArrayList; TypeLookups=System.Collections.ArrayList; IPAddresses=System.Collections.ArrayList; PermError=False}} + TypeLookups : {} + IPAddresses : {} + PermError : False + + .NOTES + Author: John Duprey + #> + [CmdletBinding(DefaultParameterSetName = 'Lookup')] + Param( + [Parameter(Mandatory = $true, ParameterSetName = 'Lookup')] + [Parameter(ParameterSetName = 'Manual')] + [string]$Domain, + + [Parameter(Mandatory = $true, ParameterSetName = 'Manual')] + [string]$Record, + + [Parameter(ParameterSetName = 'Lookup')] + [Parameter(ParameterSetName = 'Manual')] + [string]$Level = 'Parent', + + [Parameter(ParameterSetName = 'Lookup')] + [Parameter(ParameterSetName = 'Manual')] + [string]$ExpectedInclude = '' + ) + $SpfResults = [PSCustomObject]@{ + Domain = '' + Record = '' + RecordCount = 0 + LookupCount = 0 + AllMechanism = '' + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + RecordList = [System.Collections.Generic.List[object]]::new() + TypeLookups = [System.Collections.Generic.List[object]]::new() + Recommendations = [System.Collections.Generic.List[object]]::new() + RecommendedRecord = '' + IPAddresses = [System.Collections.Generic.List[string]]::new() + MailProvider = '' + Explanation = '' + Status = '' + + } + + + + # Initialize lists to hold all records + $RecordList = [System.Collections.Generic.List[object]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationWarns = [System.Collections.Generic.List[string]]::new() + $Recommendations = [System.Collections.Generic.List[object]]::new() + $LookupCount = 0 + $AllMechanism = '' + $Status = '' + $RecommendedRecord = '' + + $TypeLookups = [System.Collections.Generic.List[object]]::new() + $IPAddresses = [System.Collections.Generic.List[string]]::new() + + $DnsQuery = @{ + RecordType = 'TXT' + Domain = $Domain + } + + $NoSpfValidation = 'No SPF record was detected for this domain.' + + # Query DNS for SPF Record + try { + switch ($PSCmdlet.ParameterSetName) { + 'Lookup' { + if ($Domain -eq 'Not Specified') { + # don't perform lookup if domain is not specified + } + + else { + $Query = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + if ($Query.Status -eq 2 -and $Query.AD -eq $false) { + $ValidationFails.Add('DNSSEC validation failed.') | Out-Null + } + + elseif ($Query.Status -ne 0) { + if ($Query.Status -eq 3) { + $ValidationFails.Add($NoSpfValidation) | Out-Null + $Status = 'permerror' + } + + else { + #Write-Host $Query + $ValidationFails.Add($NoSpfValidation) | Out-Null + $Status = 'temperror' + } + } + + else { + + $Answer = ($Query.answer | Where-Object { $_.data -match '^v=spf1' }) + $RecordCount = ($Answer.data | Measure-Object).count + $Record = $Answer.data + if ($RecordCount -eq 0) { + $ValidationFails.Add($NoSpfValidation) | Out-Null + $Status = 'permerror' + } + # Check for the correct number of records + elseif ($RecordCount -gt 1 -and $Level -eq 'Parent') { + $ValidationFails.Add("There must only be one SPF record per domain, we found $RecordCount.") | Out-Null + $Recommendations.Add([pscustomobject]@{ + Message = 'Delete one of the records beginning with v=spf1' + Match = '' + }) | Out-Null + $Status = 'permerror' + $Record = $Answer.data[0] + } + } + } + } + 'Manual' { + if ([string]::IsNullOrEmpty($Domain)) { $Domain = 'Not Specified' } + $RecordCount = 1 + } + } + $SpfResults.Domain = $Domain + + if ($Record -ne '' -and $RecordCount -gt 0) { + # Split records and parse + if ($Record -match '^v=spf1(:?\s+(?(?![+-~?]all).+?))?(:?\s+(?[+-~?]all)(:?\s+(?(?!all).+))?)?$') { + if ($Matches.Terms) { + $RecordTerms = $Matches.Terms -split '\s+' + } + + else { + $RecordTerms = @() + } + Write-Verbose "########### RECORD: $Record" + + if ($Level -eq 'Parent' -or $Level -eq 'Redirect') { + $AllMechanism = $Matches.AllMechanism + } + + if ($null -ne $Matches.Discard) { + if ($Matches.Discard -notmatch '^exp=(?.+)$') { + $ValidationWarns.Add("The terms '$($Matches.Discard)' are past the all mechanism and will be discarded.") | Out-Null + $Recommendations.Add([pscustomobject]@{ + Message = 'Remove entries following all'; + Match = $Matches.Discard + Replace = '' + }) | Out-Null + } + + } + + foreach ($Term in $RecordTerms) { + Write-Verbose "TERM $Term" + # Redirect modifier + if ($Term -match 'redirect=(?.+)') { + Write-Verbose '-----REDIRECT-----' + $LookupCount++ + if ($Record -match '(?[+-~?])all') { + $ValidationFails.Add('A record with a redirect modifier must not contain an all mechanism. This will result in a failure.') | Out-Null + $Status = 'permerror' + $Recommendations.Add([pscustomobject]@{ + Message = "Remove the 'all' mechanism from this record."; + Match = '{0}all' -f $Matches.Qualifier + Replace = '' + }) | Out-Null + } + + else { + # Follow redirect modifier + $RedirectedLookup = Read-SpfRecord -Domain $Matches.Domain -Level 'Redirect' + if (($RedirectedLookup | Measure-Object).Count -eq 0) { + $ValidationFails.Add("$Domain Redirected lookup does not contain a SPF record, this will result in a failure.") | Out-Null + $Status = 'permerror' + } + + else { + $RecordList.Add($RedirectedLookup) | Out-Null + $AllMechanism = $RedirectedLookup.AllMechanism + $ValidationFails.AddRange([string[]]$RedirectedLookup.ValidationFails) | Out-Null + $ValidationWarns.AddRange([string[]]$RedirectedLookup.ValidationWarns) | Out-Null + $ValidationPasses.AddRange([string[]]$RedirectedLookup.ValidationPasses) | Out-Null + $IPAddresses.AddRange([string[]]$RedirectedLookup.IPAddresses) | Out-Null + } + } + # Record has been redirected, stop evaluating terms + break + } + + # Include mechanism + elseif ($Term -match '^(?[+-~?])?include:(?.+)$') { + if ($Matches.Value -ne $Domain) { + $LookupCount++ + Write-Verbose '-----INCLUDE-----' + Write-Verbose "Looking up include $($Matches.Value)" + $IncludeLookup = Read-SpfRecord -Domain $Matches.Value -Level 'Include' + + if ([string]::IsNullOrEmpty($IncludeLookup.Record) -and $Level -eq 'Parent') { + Write-Verbose '-----END INCLUDE (SPF MISSING)-----' + $ValidationFails.Add("Include lookup for $($Matches.Value) does not contain a SPF record, this will result in a failure.") | Out-Null + $Status = 'permerror' + } else { + Write-Verbose '-----END INCLUDE (SPF FOUND)-----' + $RecordList.Add($IncludeLookup) | Out-Null + $ValidationFails.AddRange([string[]]$IncludeLookup.ValidationFails) | Out-Null + $ValidationWarns.AddRange([string[]]$IncludeLookup.ValidationWarns) | Out-Null + $ValidationPasses.AddRange([string[]]$IncludeLookup.ValidationPasses) | Out-Null + $IPAddresses.AddRange([string[]]$IncludeLookup.IPAddresses) | Out-Null + } + } else { + Write-Verbose "-----END INCLUDE (INFINITE LOOP -> $Domain SHOULD NOT INCLUDE ITSELF)-----" + $ValidationFails.Add("Include lookup for $($Matches.Value) should not exist. It will cause an infinite loop.") | Out-Null + $Status = 'permerror' + } + } + + # Exists mechanism + elseif ($Term -match '^(?[+-~?])?exists:(?.+)$') { + $LookupCount++ + } + + # ip4/ip6 mechanism + elseif ($Term -match '^(?[+-~?])?ip[4,6]:(?.+)$') { + if (-not ($Matches.Qualifier) -or $Matches.Qualifier -eq '+') { + $IPAddresses.Add($Matches.Value) | Out-Null + } + } + + # Remaining type mechanisms a,mx,ptr + elseif ($Term -match '^(?[+-~?])?(?(?:a|mx|ptr))(?:[:](?.+))?$') { + $LookupCount++ + + if ($Matches.TypeDomain) { + $TypeDomain = $Matches.TypeDomain + } + + else { + $TypeDomain = $Domain + } + + if ($TypeDomain -ne 'Not Specified') { + try { + $TypeQuery = @{ Domain = $TypeDomain; RecordType = $Matches.RecordType } + Write-Verbose "Looking up $($TypeQuery.Domain)" + $TypeResult = Resolve-DnsHttpsQuery @TypeQuery -ErrorAction Stop + if ($Matches.RecordType -eq 'mx') { + $MxCount = 0 + if ($TypeResult.Answer) { + foreach ($mx in $TypeResult.Answer.data) { + $MxCount++ + $Preference, $MxDomain = $mx -replace '\.$' -split '\s+' + try { + Write-Verbose "MX: Lookup $MxDomain" + $MxQuery = Resolve-DnsHttpsQuery -Domain $MxDomain -ErrorAction Stop + $MxIps = $MxQuery.Answer.data + + foreach ($MxIp in $MxIps) { + $IPAddresses.Add($MxIp) | Out-Null + } + + if ($MxCount -gt 10) { + $ValidationWarns.Add("$Domain - Mechanism 'mx' lookup for $MxDomain has exceeded the 10 A or AAAA record lookup limit (RFC 7208, Section 4.6.4).") | Out-Null + $TypeResult = $null + break + } + } + + catch { + Write-Verbose $_.Exception.Message + $TypeResult = $null + } + } + } + + else { + $ValidationWarns.Add("$Domain - Mechanism 'mx' lookup for $($TypeQuery.Domain) did not have any records") | Out-Null + } + } + + elseif ($Matches.RecordType -eq 'ptr') { + $ValidationWarns.Add("$Domain - The mechanism 'ptr' should not be published in an SPF record (RFC 7208, Section 5.5)") + } + } + + catch { + $TypeResult = $null + } + + if ($null -eq $TypeResult -or $TypeResult.Status -ne 0) { + $Message = "$Domain - Type lookup for the mechanism '$($TypeQuery.RecordType)' did not return any results." + switch ($Level) { + 'Parent' { + $ValidationFails.Add("$Message") | Out-Null + $Status = 'permerror' + } + 'Include' { $ValidationWarns.Add("$Message") | Out-Null } + } + $Result = $false + } + + else { + if ($TypeResult.Answer) { + if ($TypeQuery.RecordType -match 'mx') { + + $Result = $TypeResult.Answer | ForEach-Object { + #$LookupCount++ + $_.Data.Split(' ')[1] + } + } + + else { + $Result = $TypeResult.answer.data + } + } + } + $TypeLookups.Add( + [PSCustomObject]@{ + Domain = $TypeQuery.Domain + RecordType = $TypeQuery.RecordType + Result = $Result + } + ) | Out-Null + + } + + else { + $ValidationWarns.Add("No domain was specified and mechanism '$Term' does not have one defined. Specify a domain to perform a lookup on this record.") | Out-Null + } + + } + + elseif ($null -ne $Term) { + $ValidationWarns.Add("$Domain - Unknown term specified '$Term'") | Out-Null + } + } + + # Explanation modifier + if ($Record -match 'exp=(?.+)$') { + Write-Verbose '-----EXPLAIN-----' + $ExpQuery = @{ Domain = $Domain; MacroExpand = $Matches.MacroExpand; RecordType = 'TXT' } + $ExpResult = Resolve-DnsHttpsQuery @ExpQuery -ErrorAction Stop + if ($ExpResult.Status -eq 0 -and $ExpResult.Answer.Type -eq 16) { + $Explain = @{ + Record = $ExpResult.Answer.data + Example = Get-DomainMacros -Domain $Domain -MacroExpand $ExpResult.Answer.data + } + } + } + + else { + $Explain = @{ Example = ''; Record = '' } + } + } + } + } + + catch { + Write-Verbose "EXCEPTION: $($_.InvocationInfo.ScriptLineNumber) $($_.Exception.Message)" + } + + # Lookup MX record for expected include information if not supplied + if ($Level -eq 'Parent' -and $ExpectedInclude -eq '') { + try { + #Write-Information $Domain + $MXRecord = Read-MXRecord -Domain $Domain + $SpfResults.MailProvider = $MXRecord.MailProvider + if ($MXRecord.ExpectedInclude -ne '') { + $ExpectedInclude = $MXRecord.ExpectedInclude + } + + if ($MXRecord.MailProvider.Name -eq 'Null') { + if ($Record -eq 'v=spf1 -all') { + $ValidationPasses.Add('This SPF record is valid for a Null MX configuration') | Out-Null + } + + else { + $ValidationFails.Add('This SPF record is not valid for a Null MX configuration. Expected record: "v=spf1 -all"') | Out-Null + } + } + + if ($TypeLookups.RecordType -contains 'mx') { + $Recommendations.Add([pscustomobject]@{ + Message = "Remove the 'mx' modifier from your record. Check the mail provider documentation for the correct SPF include."; + Match = '\s*([+-~?]?mx)\s+' + Replace = ' ' + }) | Out-Null + } + } + + catch { Write-Verbose $_.Exception.Message } + } + + # Look for expected include record and report pass or fail + if ($ExpectedInclude -ne '') { + if ($RecordList.Domain -notcontains $ExpectedInclude) { + $ExpectedIncludeSpf = Read-SpfRecord -Domain $ExpectedInclude -Level ExpectedInclude + $ExpectedIPCount = $ExpectedIncludeSpf.IPAddresses | Measure-Object | Select-Object -ExpandProperty Count + $FoundIPCount = Compare-Object $IPAddresses $ExpectedIncludeSpf.IPAddresses -IncludeEqual | Where-Object -Property SideIndicator -EQ '==' | Measure-Object | Select-Object -ExpandProperty Count + if ($ExpectedIPCount -eq $FoundIPCount) { + $ValidationPasses.Add('The expected mail provider IP address ranges were found.') | Out-Null + } + + else { + $ValidationFails.Add('The expected mail provider entry was not found in the record.') | Out-Null + $Recommendations.Add([pscustomobject]@{ + Message = ("Add 'include:{0} to your record." -f $ExpectedInclude) + Match = '^v=spf1 (.+?)([-~?+]all)?$' + Replace = "v=spf1 include:$ExpectedInclude `$1 `$2" + }) | Out-Null + } + } + + else { + $ValidationPasses.Add('The expected mail provider entry is part of the record.') | Out-Null + } + } + + # Count total lookups + $LookupCount = $LookupCount + ($RecordList | Measure-Object -Property LookupCount -Sum).Sum + + if ($Domain -ne 'Not Specified') { + # Check legacy SPF type + $LegacySpfType = Resolve-DnsHttpsQuery -Domain $Domain -RecordType 'SPF' -ErrorAction Stop + if ($null -ne $LegacySpfType -and $LegacySpfType -eq 0) { + $ValidationWarns.Add("The record type 'SPF' was detected, this is legacy and should not be used. It is recommeded to delete this record (RFC 7208 Section 14.1).") | Out-Null + } + } + if ($Level -eq 'Parent' -and $RecordCount -gt 0) { + # Check for the correct all mechanism + if ($AllMechanism -eq '' -and $Record -ne '') { + $ValidationFails.Add("The 'all' mechanism is missing from SPF record, the default is a neutral qualifier (?all).") | Out-Null + $AllMechanism = '?all' + } + + if ($AllMechanism -eq '-all') { + $ValidationPasses.Add('The SPF record ends with a hard fail qualifier (-all). This is best practice and will instruct recipients to discard unauthorized senders.') | Out-Null + } + + elseif ($Record -ne '') { + $ValidationFails.Add('The SPF record should end in -all to prevent spamming.') | Out-Null + $Recommendations.Add([PSCustomObject]@{ + Message = "Replace '{0}' with '-all' to make a SPF failure result in a hard fail." -f $AllMechanism + Match = [regex]::escape($AllMechanism) + Replace = '-all' + }) | Out-Null + } + + # SPF lookup count + if ($LookupCount -ge 9) { + $SpecificLookupsFound = $false + foreach ($SpfRecord in $RecordList) { + if ($SpfRecord.LookupCount -ge 5) { + $SpecificLookupsFound = $true + $IncludeLookupCount = $SpfRecord.LookupCount + 1 + $Match = ('[+-~?]?include:{0}' -f $SpfRecord.Domain) + $Recommendations.Add([PSCustomObject]@{ + Message = ("Remove the include modifier for domain '{0}', this adds {1} lookups towards the max of 10. Alternatively, reduce the number of lookups inside this record if you are able to." -f $SpfRecord.Domain, $IncludeLookupCount) + Match = $Match + Replace = '' + }) | Out-Null + } + } + if (!($SpecificLookupsFound)) { + $Recommendations.Add([PSCustomObject]@{ + Message = 'Review include modifiers to ensure that your lookup count stays below 10.' + Match = '' + }) | Out-Null + } + } + + if ($LookupCount -gt 10) { + $ValidationFails.Add("Lookup count: $LookupCount/10. The SPF evaluation will fail with a permanent error (RFC 7208 Section 4.6.4).") | Out-Null + $Status = 'permerror' + } + + elseif ($LookupCount -ge 9 -and $LookupCount -le 10) { + $ValidationWarns.Add("Lookup count: $LookupCount/10. Excessive lookups can cause the SPF evaluation to fail (RFC 7208 Section 4.6.4).") | Out-Null + } + + else { + $ValidationPasses.Add("Lookup count: $LookupCount/10.") | Out-Null + } + + # Report pass if no PermErrors are found + if ($Status -ne 'permerror') { + $ValidationPasses.Add('No permanent errors detected in the SPF record.') | Out-Null + } + + # Report pass if no errors are found + if (($ValidationFails | Measure-Object | Select-Object -ExpandProperty Count) -eq 0) { + $ValidationPasses.Add('All validation checks passed.') | Out-Null + } + } + + # Check recommendations for replacement regexes + if (($Recommendations | Measure-Object).Count -gt 0) { + $RecommendedRecord = $Record + foreach ($Rec in $Recommendations) { + if ($Rec.Match -ne '') { + # Replace item in record with recommended + $RecommendedRecord = $RecommendedRecord -replace $Rec.Match, $Rec.Replace + } + } + # Cleanup extra spaces + $RecommendedRecord = $RecommendedRecord -replace '\s+', ' ' + } + + # Set SPF result object + $SpfResults.Record = $Record + $SpfResults.RecordCount = $RecordCount + $SpfResults.LookupCount = $LookupCount + $SpfResults.AllMechanism = $AllMechanism + $SpfResults.ValidationPasses = @($ValidationPasses) + $SpfResults.ValidationWarns = @($ValidationWarns) + $SpfResults.ValidationFails = @($ValidationFails) + $SpfResults.RecordList = @($RecordList) + $SpfResults.Recommendations = @($Recommendations) + $SpfResults.RecommendedRecord = $RecommendedRecord + $SpfResults.TypeLookups = @($TypeLookups) + $SpfResults.IPAddresses = @($IPAddresses) + $SpfResults.Explanation = $Explain + $SpfResults.Status = $Status + + + Write-Verbose "-----END SPF RECORD ($Level)-----" + + # Output SpfResults object + $SpfResults +} +#EndRegion './Public/Records/Read-SPFRecord.ps1' 553 +#Region './Public/Records/Read-TlsRptRecord.ps1' -1 + +function Read-TlsRptRecord { + <# + .SYNOPSIS + Resolve and validate TLSRPT record + + .DESCRIPTION + Query domain for TLSRPT record (_smtp._tls.domain.com) and parse results. Record is checked for issues. + + .PARAMETER Domain + Domain to process TLSRPT record + + .EXAMPLE + PS> Read-TlsRptRecord -Domain gmail.com + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain + ) + + # Initialize object + $TlsRptAnalysis = [PSCustomObject]@{ + Domain = $Domain + Record = '' + Version = '' + RuaEntries = [System.Collections.Generic.List[string]]::new() + IsValid = $false + HasWarnings = $false + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + } + + $ValidRuaProtocols = @( + '^(?https:.+)$' + '^mailto:(?.+)$' + ) + + # Validation lists + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationWarns = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + # Validation ranges + + $RecordCount = 0 + + $DnsQuery = @{ + RecordType = 'TXT' + Domain = "_smtp._tls.$Domain" + } + + # Resolve DMARC record + + $Query = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + + $RecordCount = 0 + $Query.Answer | Where-Object { $_.data -match '^v=TLSRPTv1' } | ForEach-Object { + $TlsRtpRecord = $_.data + $TlsRptAnalysis.Record = $TlsRtpRecord + $RecordCount++ + } + if ($Query.Status -eq 2 -and $Query.AD -eq $false) { + $ValidationFails.Add('DNSSEC validation failed.') | Out-Null + } + if ($Query.Status -ne 0 -or $RecordCount -eq 0) { + if ($Query.Status -eq 3) { + $ValidationFails.Add('Record does not exist (NXDOMAIN)') | Out-Null + } + + else { + $ValidationFails.Add("$Domain does not have an TLSRPT record") | Out-Null + } + } + + elseif ($RecordCount -gt 1) { + $ValidationFails.Add("$Domain has multiple TLSRPT records") | Out-Null + } + + # Split DMARC record into name/value pairs + $TagList = [System.Collections.Generic.List[object]]::new() + Foreach ($Element in ($TlsRtpRecord -split ';').trim()) { + $Name, $Value = $Element -split '=' + $TagList.Add( + [PSCustomObject]@{ + Name = $Name + Value = $Value + } + ) | Out-Null + } + + # Loop through name/value pairs and set object properties + $x = 0 + foreach ($Tag in $TagList) { + switch ($Tag.Name) { + 'v' { + # REQUIRED: Version + if ($x -ne 0) { $ValidationFails.Add('v=TLSRPTv1 must be at the beginning of the record') | Out-Null } + if ($Tag.Value -ne 'TLSRPTv1') { $ValidationFails.Add("Version must be TLSRPTv1 - found $($Tag.Value)") | Out-Null } + $TlsRptAnalysis.Version = $Tag.Value + } + 'rua' { + $RuaMatched = $false + $RuaEntries = $Tag.Value -split ',' + foreach ($RuaEntry in $RuaEntries) { + foreach ($Protocol in $ValidRuaProtocols) { + if ($RuaEntry -match $Protocol) { + $TlsRptAnalysis.RuaEntries.Add($Matches.Rua) | Out-Null + $RuaMatched = $true + } + } + } + if ($RuaMatched) { + $ValidationPasses.Add('Aggregate reports are being sent') | Out-Null + } + + else { + $ValidationWarns.Add('Aggregate reports are not being sent') | Out-Null + $TlsRptAnalysis.HasWarnings = $true + } + } + } + $x++ + } + + if ($RecordCount -gt 0) { + # Check for missing record tags and set defaults + + if ($RecordCount -gt 1) { + $ValidationWarns.Add('Multiple TLSRPT records detected, this may cause unexpected behavior.') | Out-Null + $TlsRptAnalysis.HasWarnings = $true + } + + $ValidationWarnCount = ($Test.ValidationWarns | Measure-Object).Count + $ValidationFailCount = ($Test.ValidationFails | Measure-Object).Count + if ($ValidationFailCount -eq 0 -and $ValidationWarnCount -eq 0) { + $ValidationPasses.Add('TLSRPT record is valid') | Out-Null + $TlsRptAnalysis.IsValid = $true + } + } + + # Add the validation lists + $TlsRptAnalysis.ValidationPasses = $ValidationPasses + $TlsRptAnalysis.ValidationWarns = $ValidationWarns + $TlsRptAnalysis.ValidationFails = $ValidationFails + + # Return MTA-STS analysis + $TlsRptAnalysis +} +#EndRegion './Public/Records/Read-TlsRptRecord.ps1' 151 +#Region './Public/Records/Read-WhoisRecord.ps1' -1 + +function Read-WhoisRecord { + <# + .SYNOPSIS + Reads Whois record data for queried information + + .DESCRIPTION + Connects to top level registrar servers (IANA, ARIN) and performs recursion to find Whois data + + .PARAMETER Query + Whois query to perform (e.g. microsoft.com) + + .PARAMETER Server + Whois server to query, defaults to whois.iana.org + + .PARAMETER Port + Whois server port, default 43 + + .EXAMPLE + PS> Read-WhoisRecord -Query microsoft.com + + #> + [CmdletBinding()] + param ( + [Parameter (Position = 0, Mandatory = $true)] + [String]$Query, + [String]$Server = 'whois.iana.org', + $Port = 43 + ) + $HasReferral = $false + + # Top level referring servers, IANA, ARIN and AUDA + $TopLevelReferrers = @('whois.iana.org', 'whois.arin.net', 'whois.auda.org.au') + + # Record Pattern Matching + $ServerPortRegex = '(?[^:\r\n]+)(:(?\d+))?' + $ReferralMatch = @{ + 'ReferralServer' = "whois://$ServerPortRegex" + 'Whois Server' = $ServerPortRegex + 'Registrar Whois Server' = $ServerPortRegex + 'refer' = $ServerPortRegex + 'remarks' = '(?whois\.[0-9a-z\-\.]+\.[a-z]{2,})(:(?\d+))?' + } + + # List of properties for Registrars + $RegistrarProps = @( + 'Registrar', 'Registrar Name' + ) + + # Whois parser, generic Property: Value format with some multi-line support and comment handlers + $WhoisRegex = '^(?!(?:%|>>>|-+|#|[*]))[^\S\n]*(?.+?):(?:[\r\n]+)?(:?(?!([0-9]|[/]{2}))[^\S\r\n]*(?.+))?$' + + Write-Verbose "Querying WHOIS Server: $Server" + + try { + # TCP Client for Whois + $Client = New-Object System.Net.Sockets.TcpClient($Server, 43) + + # Open TCP connection and send query + $Stream = $Client.GetStream() + $ReferralServers = [System.Collections.Generic.List[string]]::new() + $ReferralServers.Add($Server) | Out-Null + + # WHOIS query to send + $Data = [System.Text.Encoding]::Ascii.GetBytes("$Query`r`n") + $Stream.Write($Data, 0, $data.length) + + # Read response from stream + $Reader = New-Object System.IO.StreamReader $Stream, [System.Text.Encoding]::ASCII + $Raw = $Reader.ReadToEnd() + + # Split comments and parse raw whois results + $data, $comment = $Raw -split '(>>>|\n\s+--)' + $PropMatches = [regex]::Matches($data, $WhoisRegex, ([System.Text.RegularExpressions.RegexOptions]::MultiLine, [System.Text.RegularExpressions.RegexOptions]::IgnoreCase)) + + # Hold property count in hashtable for auto increment + $PropertyCounts = @{} + + # Create ordered list for properties + $Results = [ordered]@{} + foreach ($PropMatch in $PropMatches) { + $PropName = $PropMatch.Groups['PropName'].value + if ($Results.Contains($PropName)) { + $PropertyCounts.$PropName++ + $PropName = '{0}{1}' -f $PropName, $PropertyCounts.$PropName + $Results[$PropName] = $PropMatch.Groups['PropValue'].value.trim() + } + + else { + $Results[$PropName] = $PropMatch.Groups['PropValue'].value.trim() + $PropertyCounts.$PropName = 0 + } + } + + foreach ($RegistrarProp in $RegistrarProps) { + if ($Results.Contains($RegistrarProp)) { + $Results._Registrar = $Results.$RegistrarProp + if ($Results.$RegistrarProp -eq 'Registrar') { + break # Means we always favour Registrar if it exists, or keep looking + } + } + } + + # Store raw results and query metadata + $Results._Raw = $Raw + $Results._ReferralServers = [System.Collections.Generic.List[string]]::new() + $Results._Query = $Query + $LastResult = $Results + + # Loop through keys looking for referral server match + foreach ($Key in $ReferralMatch.Keys) { + if ([bool]($Results.Keys -match $Key)) { + if ($Results.$Key -match $ReferralMatch.$Key) { + $ReferralServer = $Matches.refsvr + if ($Server -ne $ReferralServer) { + if ($Matches.port) { $Port = $Matches.port } + else { $Port = 43 } + $HasReferral = $true + break + } + } + } + } + + # Recurse through referrals + if ($HasReferral) { + if ($Server -ne $ReferralServer) { + $LastResult = $Results + try { + $Results = Read-WhoisRecord -Query $Query -Server $ReferralServer -Port $Port + if ([string]::IsNullOrEmpty($Results._Raw) -or ($Results._Raw -Match '(No match|Not Found|No Data|The queried object does not exist)' -and $TopLevelReferrers -notcontains $Server)) { + $Results = $LastResult + } else { + foreach ($s in $Results._ReferralServers) { + $ReferralServers.Add($s) | Out-Null + } + } + } catch { + $Results = $LastResult + } + } + } else { + if ($Results._Raw -Match '(No match|Not Found|No Data)') { + $first, $newquery = ($Query -split '\.') + if (($newquery | Measure-Object).Count -gt 1) { + $Query = $newquery -join '.' + try { + $Results = Read-WhoisRecord -Query $Query -Server $Server -Port $Port + foreach ($s in $Results._ReferralServers) { + $ReferralServers.Add($s) | Out-Null + } + } catch { + $Results = $LastResult + } + } + } + } + } + + catch { + Write-Error $_.Exception.Message + } + + finally { + IF ($Stream) { + $Stream.Close() + $Stream.Dispose() + } + } + if ($ReferralServers) { + # Collect referral server list + $Results._ReferralServers = $ReferralServers + } + # Convert to json and back to preserve object order + $WhoisResults = $Results | ConvertTo-Json | ConvertFrom-Json + + # Return Whois results as PSObject + $WhoisResults +} +#EndRegion './Public/Records/Read-WhoisRecord.ps1' 179 +#Region './Public/Resolver/Resolve-DnsHttpsQuery.ps1' -1 + +function Resolve-DnsHttpsQuery { + <# + .SYNOPSIS + Resolves DNS record using DoH JSON query + + .DESCRIPTION + This function uses Google or Cloudflare DoH REST APIs to resolve DNS records + + .PARAMETER Domain + Domain to query + + .PARAMETER RecordType + Type of record - Examples: A, CNAME, MX, TXT + + .EXAMPLE + PS> Resolve-DnsHttpsQuery -Domain google.com -RecordType A + + name type TTL data + ---- ---- --- ---- + google.com. 1 30 142.250.80.110 + + #> + [cmdletbinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Domain, + + [string]$MacroExpand, + + [Parameter()] + [string]$RecordType = 'A' + ) + + if (!$script:DnsResolver) { + Set-DnsResolver + } + + $Resolver = $script:DnsResolver.Resolver + $BaseUri = $script:DnsResolver.BaseUri + $QueryTemplate = $script:DnsResolver.QueryTemplate + + $Headers = @{ + 'accept' = 'application/dns-json' + } + + if ($MacroExpand) { + $Domain = Get-DomainMacros -MacroExpand $MacroExpand -Domain $Domain + Write-Verbose "Macro expand: $Domain" + } + + $Uri = $QueryTemplate -f $BaseUri, $Domain, $RecordType + + $x = 0 + $Exception = $null + do { + $x++ + try { + $Results = Invoke-RestMethod -Uri $Uri -Headers $Headers -ErrorAction Stop + } catch { + $Exception = $_ + Start-Sleep -Milliseconds 300 + } + } + while (-not $Results -and $x -le 3) + if (!$Results) { throw 'Exception querying resolver {0}: {1}' -f $Resolver.Resolver, $Exception.Exception.Message } + + if ($RecordType -eq 'txt' -and $Results.Answer) { + if ($Resolver -eq 'Cloudflare' -or $Resolver -eq 'Quad9') { + $Results.Answer | ForEach-Object { + $_.data = $_.data -replace '" "' -replace '"', '' + } + } + $Results.Answer = $Results.Answer | Where-Object { $_.type -eq 16 } + } + + return $Results +} +#EndRegion './Public/Resolver/Resolve-DnsHttpsQuery.ps1' 78 +#Region './Public/Resolver/Set-DnsResolver.ps1' -1 + +function Set-DnsResolver { + [CmdletBinding(SupportsShouldProcess)] + Param( + [Parameter()] + [ValidateSet('Google', 'Cloudflare', 'Quad9')] + [string]$Resolver = 'Google' + ) + + if ($PSCmdlet.ShouldProcess($Resolver)) { + $script:DnsResolver = switch ($Resolver) { + 'Google' { + [PSCustomObject]@{ + Resolver = $Resolver + BaseUri = 'https://dns.google/resolve' + QueryTemplate = '{0}?name={1}&type={2}' + } + } + 'CloudFlare' { + [PSCustomObject]@{ + Resolver = $Resolver + BaseUri = 'https://cloudflare-dns.com/dns-query' + QueryTemplate = '{0}?name={1}&type={2}' + } + } + 'Quad9' { + [PSCustomObject]@{ + Resolver = $Resolver + BaseUri = 'https://dns.quad9.net:5053/dns-query' + QueryTemplate = '{0}?name={1}&type={2}' + } + } + } + } +} +#EndRegion './Public/Resolver/Set-DnsResolver.ps1' 35 +#Region './Public/Tests/Test-DNSSEC.ps1' -1 + +function Test-DNSSEC { + <# + .SYNOPSIS + Test Domain for DNSSEC validation + + .DESCRIPTION + Requests dnskey record from DNS and checks response validation (AD=True) + + .PARAMETER Domain + Domain to check + + .EXAMPLE + PS> Test-DNSSEC -Domain example.com + + Domain : example.com + ValidationPasses : {example.com - DNSSEC enabled and validated} + ValidationFails : {} + Keys : {...} + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain + ) + $DSResults = [PSCustomObject]@{ + Domain = $Domain + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + Keys = [System.Collections.Generic.List[string]]::new() + } + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + $DnsQuery = @{ + RecordType = 'dnskey' + Domain = $Domain + } + + $Result = Resolve-DnsHttpsQuery @DnsQuery -ErrorAction Stop + if ($Result.Status -eq 2 -and $Result.AD -eq $false) { + $ValidationFails.Add('DNSSEC Validation failed.') | Out-Null + } + + else { + $RecordCount = ($Result.Answer.data | Measure-Object).Count + if ($null -eq $Result) { + $ValidationFails.Add('DNSSEC is not set up for this domain.') | Out-Null + } + + else { + if ($Result.Status -eq 3) { + $ValidationFails.Add('DNSSEC is not set up for this domain.') | Out-Null + } + + elseif ($RecordCount -gt 0) { + if ($Result.AD -eq $false) { + $ValidationFails.Add('DNSSEC is enabled, but the DNS query response was not validated. Ensure DNSSEC has been enabled on your domain provider.') | Out-Null + } + + else { + $ValidationPasses.Add('DNSSEC is enabled and validated for this domain.') | Out-Null + } + $DSResults.Keys = $Result.answer.data + } + + else { + $ValidationFails.Add('DNSSEC is not set up for this domain.') | Out-Null + } + } + } + + $DSResults.ValidationPasses = $ValidationPasses + $DSResults.ValidationFails = $ValidationFails + $DSResults +} +#EndRegion './Public/Tests/Test-DNSSEC.ps1' 78 +#Region './Public/Tests/Test-HttpsCertificate.ps1' -1 + +function Test-HttpsCertificate { + <# + .SYNOPSIS + Test HTTPS certificate for Domain + + .DESCRIPTION + This function aggregates test results for a domain and subdomains in regards to + HTTPS certificates + + .PARAMETER Domain + Domain to check + + .PARAMETER Subdomains + List of subdomains + + .EXAMPLE + PS> Test-HttpsCertificate -Domain badssl.com -Subdomains expired, revoked + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain, + [string[]]$Subdomains = @() + ) + + $CertificateTests = [PSCustomObject]@{ + Domain = $Domain + UrlsToTest = [System.Collections.Generic.List[string]]::new() + Tests = [System.Collections.Generic.List[object]]::new() + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + } + + $Urls = [System.Collections.Generic.List[string]]::new() + $Urls.Add(('https://{0}' -f $Domain)) | Out-Null + + if (($Subdomains | Measure-Object).Count -gt 0) { + foreach ($Subdomain in $Subdomains) { + $Urls.Add(('https://{0}.{1}' -f $Subdomain, $Domain)) | Out-Null + } + } + + $CertificateTests.UrlsToTest = $Urls + + $CertificateTests.Tests = foreach ($Url in $Urls) { + $Test = [PSCustomObject]@{ + Hostname = '' + Certificate = '' + Chain = '' + HttpResponse = '' + ValidityDays = 0 + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + Errors = [System.Collections.Generic.List[string]]::new() + } + try { + # Parse URL and extract hostname + $ParsedUrl = [System.Uri]::new($Url) + $Hostname = $ParsedUrl.Host + + # Valdiations + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationWarns = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + # Grab certificate data + $Validation = Get-ServerCertificateValidation -Url $Url + $Certificate = $Validation.Certificate | Select-Object FriendlyName, IssuerName, NotBefore, NotAfter, SerialNumber, SignatureAlgorithm, SubjectName, Thumbprint, Issuer, Subject, DnsNameList + $HttpResponse = $Validation.HttpResponse + $Chain = $Validation.Chain + + $CurrentDate = Get-Date + $TimeSpan = New-TimeSpan -Start $CurrentDate -End $Certificate.NotAfter + + # Check to see if certificate is contained in the DNS name list + if ($Certificate.DnsNameList -contains $Hostname -or $Certificate.DnsNameList -eq "*.$Domain") { + $ValidationPasses.Add(('{0} - Certificate DNS name list contains hostname.' -f $Hostname)) | Out-Null + } + + else { + $ValidationFails.Add(('{0} - Certificate DNS name list does not contain hostname' -f $Hostname)) | Out-Null + } + + # Check certificate validity + if ($Certificate.NotBefore -ge $CurrentDate) { + # NotBefore is in the future + $ValidationFails.Add(('{0} - Certificate is not yet valid.' -f $Hostname)) | Out-Null + } + + elseif ($Certificate.NotAfter -le $CurrentDate) { + # NotAfter is in the past + $ValidationFails.Add(('{0} - Certificate expired {1} day(s) ago.' -f $Hostname, [Math]::Abs($TimeSpan.Days))) | Out-Null + } + + elseif ($Certificate.NotAfter -ge $CurrentDate -and $TimeSpan.Days -lt 30) { + # NotAfter is under 30 days away + $ValidationWarns.Add(('{0} - Certificate will expire in {1} day(s).' -f $Hostname, $TimeSpan.Days)) | Out-Null + } + + else { + # Certificate is valid and not expired + $ValidationPasses.Add(('{0} - Certificate is valid for the next {1} days.' -f $Hostname, $TimeSpan.Days)) | Out-Null + } + + # Certificate chain errors + if (($Chain.ChainStatus | Measure-Object).Count -gt 0) { + foreach ($Status in $Chain.ChainStatus) { + $ValidationFails.Add(('{0} - {1}' -f $Hostname, $Status.StatusInformation)) | Out-Null + } + } + + # Website status errorr + if ([int]$HttpResponse.StatusCode -ge 400) { + $ValidationFails.Add(('{0} - Website responded with: {1}' -f $Hostname, $HttpResponse.ReasonPhrase)) + } + + # Set values and return Test object + $Test.Hostname = $Hostname + $Test.Certificate = $Certificate + $Test.Chain = $Chain + $Test.HttpResponse = $HttpResponse + $Test.ValidityDays = $TimeSpan.Days + + $Test.ValidationPasses = @($ValidationPasses) + $Test.ValidationWarns = @($ValidationWarns) + $Test.ValidationFails = @($ValidationFails) + + # Return test + $Test + } + + catch { Write-Verbose $_.Exception.Message } + } + + # Aggregate validation results + foreach ($Test in $CertificateTests.Tests) { + $ValidationPassCount = ($Test.ValidationPasses | Measure-Object).Count + $ValidationWarnCount = ($Test.ValidationWarns | Measure-Object).Count + $ValidationFailCount = ($Test.ValidationFails | Measure-Object).Count + + if ($ValidationFailCount -gt 0) { + $CertificateTests.ValidationFails.Add(('{0} - Failure on {1} check(s)' -f $Test.Hostname, $ValidationFailCount)) | Out-Null + } + + if ($ValidationWarnCount -gt 0) { + $CertificateTests.ValidationWarns.Add(('{0} - Warning on {1} check(s)' -f $Test.Hostname, $ValidationWarnCount)) | Out-Null + } + + if ($ValidationPassCount -gt 0) { + $CertificateTests.ValidationPasses.Add(('{0} - Pass on {1} check(s)' -f $Test.Hostname, $ValidationPassCount)) | Out-Null + } + } + + # Return tests + $CertificateTests +} +#EndRegion './Public/Tests/Test-HttpsCertificate.ps1' 160 +#Region './Public/Tests/Test-MtaSts.ps1' -1 + +function Test-MtaSts { + <# + .SYNOPSIS + Perform MTA-STS and TLSRPT checks + + .DESCRIPTION + Retrieve MTA-STS record, policy and TLSRPT record + + .PARAMETER Domain + Domain to process + + .EXAMPLE + PS> Test-MtaSts -Domain gmail.com + + #> + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [string]$Domain + ) + + # MTA-STS test object + $MtaSts = [PSCustomObject]@{ + Domain = $Domain + StsRecord = (Read-MtaStsRecord -Domain $Domain) + StsPolicy = (Read-MtaStsPolicy -Domain $Domain) + TlsRptRecord = (Read-TlsRptRecord -Domain $Domain) + ValidationPasses = [System.Collections.Generic.List[string]]::new() + ValidationWarns = [System.Collections.Generic.List[string]]::new() + ValidationFails = [System.Collections.Generic.List[string]]::new() + } + + # Validation lists + $ValidationPasses = [System.Collections.Generic.List[string]]::new() + $ValidationWarns = [System.Collections.Generic.List[string]]::new() + $ValidationFails = [System.Collections.Generic.List[string]]::new() + + # Check results for each test + if ($MtaSts.StsRecord.IsValid) { $ValidationPasses.Add('MTA-STS Record is valid') | Out-Null } + else { $ValidationFails.Add('MTA-STS Record is not valid') | Out-Null } + if ($MtaSts.StsRecord.HasWarnings) { $ValidationWarns.Add('MTA-STS Record has warnings') | Out-Null } + + if ($MtaSts.StsPolicy.IsValid) { $ValidationPasses.Add('MTA-STS Policy is valid') | Out-Null } + else { $ValidationFails.Add('MTA-STS Policy is not valid') | Out-Null } + if ($MtaSts.StsPolicy.HasWarnings) { $ValidationWarns.Add('MTA-STS Policy has warnings') | Out-Null } + + if ($MtaSts.TlsRptRecord.IsValid) { $ValidationPasses.Add('TLSRPT Record is valid') | Out-Null } + else { $ValidationFails.Add('TLSRPT Record is not valid') | Out-Null } + if ($MtaSts.TlsRptRecord.HasWarnings) { $ValidationWarns.Add('TLSRPT Record has warnings') | Out-Null } + + # Aggregate validation results + $MtaSts.ValidationPasses = $ValidationPasses + $MtaSts.ValidationWarns = $ValidationWarns + $MtaSts.ValidationFails = $ValidationFails + + $MtaSts +} +#EndRegion './Public/Tests/Test-MtaSts.ps1' 58 diff --git a/MailProviders/AppRiver.json b/Modules/DNSHealth/1.1.0/MailProviders/AppRiver.json similarity index 100% rename from MailProviders/AppRiver.json rename to Modules/DNSHealth/1.1.0/MailProviders/AppRiver.json diff --git a/MailProviders/BarracudaESS.json b/Modules/DNSHealth/1.1.0/MailProviders/BarracudaESS.json similarity index 100% rename from MailProviders/BarracudaESS.json rename to Modules/DNSHealth/1.1.0/MailProviders/BarracudaESS.json diff --git a/MailProviders/Google.json b/Modules/DNSHealth/1.1.0/MailProviders/Google.json similarity index 100% rename from MailProviders/Google.json rename to Modules/DNSHealth/1.1.0/MailProviders/Google.json diff --git a/Modules/DNSHealth/1.1.0/MailProviders/HornetSecurity.json b/Modules/DNSHealth/1.1.0/MailProviders/HornetSecurity.json new file mode 100644 index 000000000000..eb705d4e7033 --- /dev/null +++ b/Modules/DNSHealth/1.1.0/MailProviders/HornetSecurity.json @@ -0,0 +1,9 @@ +{ + "Name": "Hornet Security", + "MxMatch": "mx[0-9][0-9].hornetsecurity.com", + "SpfInclude": "spf.hornetsecurity.com", + "Selectors": [""], + "_MxComment": "https://www.hornetsecurity.com/en/onboarding-information/", + "_SpfComment": "https://www.hornetsecurity.com/en/onboarding-information/", + "_DkimComment": "https://support.hornetsecurity.com/hc/en-us/articles/15123377800593-How-to-set-up-DKIM" +} diff --git a/Modules/DNSHealth/1.1.0/MailProviders/Intermedia.json b/Modules/DNSHealth/1.1.0/MailProviders/Intermedia.json new file mode 100644 index 000000000000..92788f5e23b9 --- /dev/null +++ b/Modules/DNSHealth/1.1.0/MailProviders/Intermedia.json @@ -0,0 +1,9 @@ +{ + "Name": "Intermedia", + "MxMatch": "serverdata.net", + "SpfInclude": "spf.intermedia.net", + "Selectors": [""], + "_MxComment": "https://kb.intermedia.net/article/903", + "_SpfComment": "https://kb.intermedia.net/article/1010", + "_DkimComment": "https://kb.intermedia.net/article/36857" +} diff --git a/Modules/DNSHealth/1.1.0/MailProviders/Microsoft365.json b/Modules/DNSHealth/1.1.0/MailProviders/Microsoft365.json new file mode 100644 index 000000000000..35fb2c66b9df --- /dev/null +++ b/Modules/DNSHealth/1.1.0/MailProviders/Microsoft365.json @@ -0,0 +1,10 @@ +{ + "Name": "Microsoft 365", + "MxMatch": "mail.protection.outlook.com|mx.microsoft", + "SpfInclude": "spf.protection.outlook.com", + "Selectors": ["selector1", "selector2"], + "MinimumSelectorPass": 1, + "_MxComment": "https://docs.microsoft.com/en-us/microsoft-365/admin/get-help-with-domains/create-dns-records-at-any-dns-hosting-provider", + "_SpfComment": "https://docs.microsoft.com/en-us/microsoft-365/admin/get-help-with-domains/create-dns-records-at-any-dns-hosting-provider", + "_DkimComment": "https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/use-dkim-to-validate-outbound-email?view=o365-worldwide" +} diff --git a/MailProviders/Mimecast.json b/Modules/DNSHealth/1.1.0/MailProviders/Mimecast.json similarity index 100% rename from MailProviders/Mimecast.json rename to Modules/DNSHealth/1.1.0/MailProviders/Mimecast.json diff --git a/MailProviders/Null.json b/Modules/DNSHealth/1.1.0/MailProviders/Null.json similarity index 100% rename from MailProviders/Null.json rename to Modules/DNSHealth/1.1.0/MailProviders/Null.json diff --git a/Modules/DNSHealth/1.1.0/MailProviders/Proofpoint.json b/Modules/DNSHealth/1.1.0/MailProviders/Proofpoint.json new file mode 100644 index 000000000000..c130c5282bb3 --- /dev/null +++ b/Modules/DNSHealth/1.1.0/MailProviders/Proofpoint.json @@ -0,0 +1,9 @@ +{ + "Name": "Proofpoint", + "_MxComment": "https://help.proofpoint.com/Proofpoint_Essentials/Email_Security/Administrator_Topics/000_gettingstarted/020_connectiondetails", + "MxMatch": "ppe-hosted.com", + "_SpfComment": "https://help.proofpoint.com/Proofpoint_Essentials/Email_Security/Administrator_Topics/000_gettingstarted/020_connectiondetails", + "SpfInclude": "ppe-hosted.com", + "_DkimComment": "https://help.proofpoint.com/Proofpoint_Essentials/Email_Security/Administrator_Topics/030_domains/Configuring_Outbound_DKIM_Signing", + "Selectors": [""] +} diff --git a/Modules/DNSHealth/1.1.0/MailProviders/Reflexion.json b/Modules/DNSHealth/1.1.0/MailProviders/Reflexion.json new file mode 100644 index 000000000000..5d3d51e2acbd --- /dev/null +++ b/Modules/DNSHealth/1.1.0/MailProviders/Reflexion.json @@ -0,0 +1,9 @@ +{ + "Name": "Reflexion", + "MxMatch": "asp.reflexion.net", + "SpfInclude": "reflexion.net", + "Selectors": [""], + "_MxComment": "https://support.sophos.com/support/s/article/KB-000036185?language=en_US", + "_SpfComment": "https://support.sophos.com/support/s/article/KB-000036185?language=en_US#SPF", + "_DkimComment": "https://community.sophos.com/reflexion/f/discussions/79994/feature-request---dkim-and-dmarc-support" +} diff --git a/MailProviders/Sophos.json b/Modules/DNSHealth/1.1.0/MailProviders/Sophos.json similarity index 100% rename from MailProviders/Sophos.json rename to Modules/DNSHealth/1.1.0/MailProviders/Sophos.json diff --git a/MailProviders/SpamTitan.json b/Modules/DNSHealth/1.1.0/MailProviders/SpamTitan.json similarity index 100% rename from MailProviders/SpamTitan.json rename to Modules/DNSHealth/1.1.0/MailProviders/SpamTitan.json diff --git a/Modules/DNSHealth/1.1.0/MailProviders/SymantecCloud.json b/Modules/DNSHealth/1.1.0/MailProviders/SymantecCloud.json new file mode 100644 index 000000000000..ebd375edd597 --- /dev/null +++ b/Modules/DNSHealth/1.1.0/MailProviders/SymantecCloud.json @@ -0,0 +1,9 @@ +{ + "Name": "Symantec Cloud", + "MxMatch": "cluster[0-9].{3,4}.messagelabs.com", + "SpfInclude": "spf.messagelabs.com", + "Selectors": [""], + "_MxComment": "https://knowledge.broadcom.com/external/article/161419/mail-exchanger-mx-record-setup-with-emai.html", + "_SpfComment": "https://knowledge.broadcom.com/external/article/161394/implement-spf-records-for-email-security.html", + "_DkimComment": "https://knowledge.broadcom.com/external/article/171225/configuring-dkim-signing-for-outbound-ma.html" +} diff --git a/MailProviders/_template.json b/Modules/DNSHealth/1.1.0/MailProviders/_template.json similarity index 100% rename from MailProviders/_template.json rename to Modules/DNSHealth/1.1.0/MailProviders/_template.json diff --git a/Modules/DNSHealth/1.1.0/PSGetModuleInfo.xml b/Modules/DNSHealth/1.1.0/PSGetModuleInfo.xml new file mode 100644 index 000000000000..e64f6f169372 --- /dev/null +++ b/Modules/DNSHealth/1.1.0/PSGetModuleInfo.xml @@ -0,0 +1,144 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + DNSHealth + 1.1.0 + Module + CIPP DNS Health Check Module + John Duprey + johnduprey + 2023 John Duprey +
      2025-05-27T23:15:27-04:00
      + + + + https://github.com/johnduprey/DNSHealth + + + + System.Object[] + System.Array + System.Object + + + PSModule + + + + + System.Collections.Hashtable + System.Object + + + + Command + + + + Read-DmarcPolicy + Read-MtaStsPolicy + Read-DkimRecord + Read-MtaStsRecord + Read-MXRecord + Read-NSRecord + Read-SPFRecord + Read-TlsRptRecord + Read-WhoisRecord + Resolve-DnsHttpsQuery + Set-DnsResolver + Test-DNSSEC + Test-HttpsCertificate + Test-MtaSts + + + + + Function + + + + Read-DmarcPolicy + Read-MtaStsPolicy + Read-DkimRecord + Read-MtaStsRecord + Read-MXRecord + Read-NSRecord + Read-SPFRecord + Read-TlsRptRecord + Read-WhoisRecord + Resolve-DnsHttpsQuery + Set-DnsResolver + Test-DNSSEC + Test-HttpsCertificate + Test-MtaSts + + + + + Workflow + + + + + + + RoleCapability + + + + DscResource + + + + Cmdlet + + + + + + + + + + + https://www.powershellgallery.com/api/v2 + PSGallery + NuGet + + + System.Management.Automation.PSCustomObject + System.Object + + + 2023 John Duprey + CIPP DNS Health Check Module + False + True + True + 0 + 290 + 28670 + 5/27/2025 11:15:27 PM -04:00 + 5/27/2025 11:15:27 PM -04:00 + 5/27/2025 11:15:27 PM -04:00 + PSModule PSFunction_Read-DmarcPolicy PSCommand_Read-DmarcPolicy PSFunction_Read-MtaStsPolicy PSCommand_Read-MtaStsPolicy PSFunction_Read-DkimRecord PSCommand_Read-DkimRecord PSFunction_Read-MtaStsRecord PSCommand_Read-MtaStsRecord PSFunction_Read-MXRecord PSCommand_Read-MXRecord PSFunction_Read-NSRecord PSCommand_Read-NSRecord PSFunction_Read-SPFRecord PSCommand_Read-SPFRecord PSFunction_Read-TlsRptRecord PSCommand_Read-TlsRptRecord PSFunction_Read-WhoisRecord PSCommand_Read-WhoisRecord PSFunction_Resolve-DnsHttpsQuery PSCommand_Resolve-DnsHttpsQuery PSFunction_Set-DnsResolver PSCommand_Set-DnsResolver PSFunction_Test-DNSSEC PSCommand_Test-DNSSEC PSFunction_Test-HttpsCertificate PSCommand_Test-HttpsCertificate PSFunction_Test-MtaSts PSCommand_Test-MtaSts PSIncludes_Function + False + 2025-05-27T23:15:27Z + 1.1.0 + John Duprey + false + Module + DNSHealth.nuspec|MailProviders\Google.json|MailProviders\BarracudaESS.json|MailProviders\_template.json|MailProviders\Null.json|MailProviders\HornetSecurity.json|DNSHealth.psm1|MailProviders\Intermedia.json|MailProviders\Proofpoint.json|MailProviders\Reflexion.json|DNSHealth.psd1|MailProviders\SpamTitan.json|MailProviders\Mimecast.json|MailProviders\Sophos.json|MailProviders\Microsoft365.json|MailProviders\AppRiver.json|MailProviders\SymantecCloud.json + a300d2b0-d468-46d1-88a3-e442a76b655b + 7.0 + + + C:\GitHub\CIPP Workspace\CIPP-API\Modules\DNSHealth\1.1.0 +
      +
      +
      diff --git a/Modules/HuduAPI/2.4.9/HuduAPI.psd1 b/Modules/HuduAPI/2.4.9/HuduAPI.psd1 new file mode 100644 index 000000000000..c5654110bc01 --- /dev/null +++ b/Modules/HuduAPI/2.4.9/HuduAPI.psd1 @@ -0,0 +1,154 @@ +# +# Module manifest for module 'HuduAPI' +# +# Generated by: Luke Whitelock +# +# Generated on: 06/30/2024 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = '.\HuduAPI.psm1' + +# Version number of this module. +ModuleVersion = '2.4.9' + +# Supported PSEditions +# CompatiblePSEditions = @() + +# ID used to uniquely identify this module +GUID = '4e0a4feb-1658-416b-b854-ab9e913a56de' + +# Author of this module +Author = 'Luke Whitelock' + +# Company or vendor of this module +CompanyName = 'MSPP' + +# Copyright statement for this module +Copyright = '(c) 2021 Luke Whitelock. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'This module provides an interface to the Hudu Rest API further information can be found at https://github.com/lwhitelock/HuduAPI' + +# Minimum version of the PowerShell engine required by this module +PowerShellVersion = '7.0' + +# Name of the PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# DotNetFrameworkVersion = '' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# ClrVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +# FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +# NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = 'Get-HuduActivityLogs', 'Get-HuduApiKey', 'Get-HuduAppInfo', + 'Get-HuduArticles', 'Get-HuduAssetLayoutFieldID', + 'Get-HuduAssetLayouts', 'Get-HuduAssets', 'Get-HuduBaseURL', + 'Get-HuduCard', 'Get-HuduCompanies', 'Get-HuduExpirations', + 'Get-HuduFolderMap', 'Get-HuduFolders', 'Get-HuduIntegrationMatchers', + 'Get-HuduMagicDashes', 'Get-HuduObjectByUrl', + 'Get-HuduPasswordFolders', 'Get-HuduPasswords', 'Get-HuduProcesses', + 'Get-HuduPublicPhotos', 'Get-HuduRelations', 'Get-HuduUploads', + 'Get-HuduWebsites', 'Initialize-HuduFolder', + 'Move-HuduAssetsToNewLayout', 'New-HuduAPIKey', 'New-HuduArticle', + 'New-HuduAsset', 'New-HuduAssetLayout', 'New-HuduBaseURL', + 'New-HuduCompany', 'New-HuduCustomHeaders', 'New-HuduFolder', + 'New-HuduPassword', 'New-HuduPublicPhoto', 'New-HuduRelation', + 'New-HuduUpload', 'New-HuduWebsite', 'Remove-HuduAPIKey', + 'Remove-HuduArticle', 'Remove-HuduAsset', 'Remove-HuduBaseURL', + 'Remove-HuduCompany', 'Remove-HuduCustomHeaders', + 'Remove-HuduMagicDash', 'Remove-HuduPassword', 'Remove-HuduRelation', + 'Remove-HuduUpload', 'Remove-HuduWebsite', 'Set-HuduArticle', + 'Set-HuduArticleArchive', 'Set-HuduAsset', 'Set-HuduAssetArchive', + 'Set-HuduAssetLayout', 'Set-HuduCompany', 'Set-HuduCompanyArchive', + 'Set-HuduFolder', 'Set-HuduIntegrationMatcher', 'Set-HuduMagicDash', + 'Set-HuduPassword', 'Set-HuduPasswordArchive', 'Set-HuduWebsite' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @() + +# Variables to export from this module +VariablesToExport = '*' + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + # Tags = @() + + # A URL to the license for this module. + # LicenseUri = '' + + # A URL to the main website for this project. + # ProjectUri = '' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + # ReleaseNotes = '' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + # ExternalModuleDependencies = @() + + } # End of PSData hashtable + + +} # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} + diff --git a/Modules/HuduAPI/2.4.9/HuduAPI.psm1 b/Modules/HuduAPI/2.4.9/HuduAPI.psm1 new file mode 100644 index 000000000000..24c908667318 --- /dev/null +++ b/Modules/HuduAPI/2.4.9/HuduAPI.psm1 @@ -0,0 +1,4201 @@ +#Region './Private/ArgumentCompleters/AssetLayoutCompleter.ps1' -1 + +$AssetLayoutCompleter = { + param ( + $CommandName, + $ParamName, + $AssetLayout, + $CommandAst, + $fakeBoundParameters + ) + if (!$script:AssetLayouts) { + Get-HuduAssetLayouts | Out-Null + } + + $AssetLayout = $AssetLayout -replace "'", '' + ($script:AssetLayouts).name | Where-Object { $_ -match "$AssetLayout" } | ForEach-Object { "'$_'" } +} + +Register-ArgumentCompleter -CommandName Get-HuduAssets -ParameterName AssetLayout -ScriptBlock $AssetLayoutCompleter +#EndRegion './Private/ArgumentCompleters/AssetLayoutCompleter.ps1' 18 +#Region './Private/Get-HuduCompanyFolders.ps1' -1 + +function Get-HuduCompanyFolders { + [CmdletBinding()] + Param ( + [PSCustomObject]$FoldersRaw + ) + + $RootFolders = $FoldersRaw | Where-Object { $null -eq $_.parent_folder_id } + $ReturnObject = [PSCustomObject]@{} + foreach ($folder in $RootFolders) { + $SubFolders = Get-HuduSubFolders -id $folder.id -FoldersRaw $FoldersRaw + foreach ($SubFolder in $SubFolders) { + $Folder | Add-Member -MemberType NoteProperty -Name $(Get-HuduFolderCleanName $($SubFolder.PSObject.Properties.name)) -Value $SubFolder.PSObject.Properties.value + } + $ReturnObject | Add-Member -MemberType NoteProperty -Name $(Get-HuduFolderCleanName $($folder.name)) -Value $folder + } + return $ReturnObject +} +#EndRegion './Private/Get-HuduCompanyFolders.ps1' 18 +#Region './Private/Get-HuduFolderCleanName.ps1' -1 + +function Get-HuduFolderCleanName { + [CmdletBinding()] + param( + [string]$Name + ) + + $FieldNames = @('id', 'company_id', 'icon', 'description', 'name', 'parent_folder_id', 'created_at', 'updated_at') + + if ($Name -in $FieldNames) { + Return "fld_$Name" + } else { + Return $Name + } + +} +#EndRegion './Private/Get-HuduFolderCleanName.ps1' 16 +#Region './Private/Get-HuduSubFolders.ps1' -1 + +function Get-HuduSubFolders { + [CmdletBinding()] + Param( + [int]$id, + [PSCustomObject]$FoldersRaw + ) + + $SubFolders = $FoldersRaw | Where-Object { $_.parent_folder_id -eq $id } + $ReturnFolders = [System.Collections.ArrayList]@() + foreach ($Folder in $SubFolders) { + $SubSubFolders = Get-HuduSubFolders -id $Folder.id -FoldersRaw $FoldersRaw + foreach ($AddFolder in $SubSubFolders) { + $null = $folder | Add-Member -MemberType NoteProperty -Name $(Get-HuduFolderCleanName $($AddFolder.PSObject.Properties.name)) -Value $AddFolder.PSObject.Properties.value + } + $ReturnObject = [PSCustomObject]@{ + $(Get-HuduFolderCleanName $($Folder.name)) = $Folder + } + $null = $ReturnFolders.add($ReturnObject) + } + + return $ReturnFolders + +} +#EndRegion './Private/Get-HuduSubFolders.ps1' 24 +#Region './Private/Invoke-HuduRequest.ps1' -1 + +function Invoke-HuduRequest { + <# + .SYNOPSIS + Main Hudu API function + + .DESCRIPTION + Calls Hudu API with token + + .PARAMETER Method + GET,POST,DELETE,PUT,etc + + .PARAMETER Path + Path to API endpoint + + .PARAMETER Params + Hashtable of parameters + + .PARAMETER Body + JSON encoded body string + + .PARAMETER Form + Multipart form data + + .EXAMPLE + Invoke-HuduRequest -Resource '/api/v1/articles' -Method GET + #> + [CmdletBinding()] + Param( + [Parameter()] + [string]$Method = 'GET', + + [Parameter()] + [ValidateNotNullOrEmpty()] + [string]$Resource, + + [Parameter()] + [hashtable]$Params = @{}, + + [Parameter()] + [string]$Body, + + [Parameter()] + [hashtable]$Form + ) + + $HuduAPIKey = Get-HuduApiKey + $HuduBaseURL = Get-HuduBaseURL + + # Assemble parameters + $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) + + # Sort parameters + foreach ($Item in ($Params.GetEnumerator() | Sort-Object -CaseSensitive -Property Key)) { + $ParamCollection.Add($Item.Key, $Item.Value) + } + + # Query string + $Request = $ParamCollection.ToString() + + $Headers = @{ + 'x-api-key' = (New-Object PSCredential 'user', $HuduAPIKey).GetNetworkCredential().Password; + } + + if (($Script:Int_HuduCustomHeaders | Measure-Object).count -gt 0){ + + foreach($Entry in $Int_HuduCustomHeaders.GetEnumerator()) { + $Headers[$Entry.Name] = $Entry.Value + } + } + + $ContentType = 'application/json; charset=utf-8' + + $Uri = '{0}{1}' -f $HuduBaseURL, $Resource + # Make API call URI + if ($Request) { + $UriBuilder = [System.UriBuilder]$Uri + $UriBuilder.Query = $Request + $Uri = $UriBuilder.Uri + } + Write-Verbose ( '{0} [{1}]' -f $Method, $Uri ) + + $RestMethod = @{ + Method = $Method + Uri = $Uri + Headers = $Headers + ContentType = $ContentType + } + + if ($Body) { + $RestMethod.Body = $Body + Write-Verbose $Body + } + + if ($Form) { + $RestMethod.Form = $Form + Write-Verbose ( $Form | Out-String ) + } + + try { + $Results = Invoke-RestMethod @RestMethod + } catch { + if ("$_".trim() -eq 'Retry later' -or "$_".trim() -eq 'The remote server returned an error: (429) Too Many Requests.') { + Write-Information 'Hudu API Rate limited. Waiting 30 Seconds then trying again' + Start-Sleep 30 + $Results = Invoke-HuduRequest @RestMethod + } else { + Write-Error "'$_'" + } + } + + $Results +} +#EndRegion './Private/Invoke-HuduRequest.ps1' 113 +#Region './Private/Invoke-HuduRequestPaginated.ps1' -1 + +function Invoke-HuduRequestPaginated { + <# + .SYNOPSIS + Paginated requests to Hudu API + + .DESCRIPTION + Wraps Invoke-HuduRequest with page sizes + + .PARAMETER HuduRequest + Request to paginate + + .PARAMETER Property + Property name to return (don't specify to return entire response object) + + .PARAMETER PageSize + Number of results to return per page (default 1000) + + #> + [CmdletBinding()] + Param( + [hashtable]$HuduRequest, + [string]$Property, + [int]$PageSize = 1000 + ) + + $i = 1 + do { + $HuduRequest.Params.page = $i + $HuduRequest.Params.page_size = $PageSize + $Response = Invoke-HuduRequest @HuduRequest + $i++ + if ($Property) { + $Response.$Property + } + + else { + $Response + } + } while (($Property -and $Response.$Property.count % $PageSize -eq 0 -and $Response.$Property.count -ne 0) -or (!$Property -and $Response.count % $PageSize -eq 0 -and $Response.count -ne 0)) +} +#EndRegion './Private/Invoke-HuduRequestPaginated.ps1' 41 +#Region './Public/Get-HuduActivityLogs.ps1' -1 + +function Get-HuduActivityLogs { + <# + .SYNOPSIS + Get activity logs for account + + .DESCRIPTION + Calls Hudu API to retrieve activity logs with filters + + .PARAMETER UserId + Filter logs by user_id + + .PARAMETER UserEmail + Filter logs by email address + + .PARAMETER ResourceId + Filter logs by resource id. Must be coupled with resource_type + + .PARAMETER ResourceType + Filter logs by resource type (Asset, AssetPassword, Company, Article, etc.). Must be coupled with resource_id + + .PARAMETER ActionMessage + Filter logs by action + + .PARAMETER StartDate + Filter logs by start date. Converts string to ISO 8601 format + + .PARAMETER EndDate + Filter logs by end date, should be coupled with start date to limit results + + .EXAMPLE + Get-HuduActivityLogs -StartDate 2023-02-01 + + #> + [CmdletBinding()] + Param ( + [Alias('user_id')] + [Int]$UserId = '', + [Alias('user_email')] + [String]$UserEmail = '', + [Alias('resource_id')] + [Int]$ResourceId = '', + [Alias('resource_type')] + [String]$ResourceType = '', + [Alias('action_message')] + [String]$ActionMessage = '', + [Alias('start_date')] + [DateTime]$StartDate, + [Alias('end_date')] + [DateTime]$EndDate + ) + + $Params = @{} + + if ($UserId) { $Params.user_id = $UserId } + if ($UserEmail) { $Params.user_email = $UserEmail } + if ($ResourceId) { $Params.resource_id = $ResourceId } + if ($ResourceType) { $Params.resource_type = $ResourceType } + if ($ActionMessage) { $Params.action_message = $ActionMessage } + if ($StartDate) { + $ISO8601Date = $StartDate.ToString('o'); + $Params.start_date = $ISO8601Date + } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/activity_logs' + Params = $Params + } + + $AllActivity = Invoke-HuduRequestPaginated -HuduRequest $HuduRequest + + if ($EndDate) { + $AllActivity = $AllActivity | Where-Object { $([DateTime]::Parse($_.created_at)) -le $EndDate } + } + + return $AllActivity +} +#EndRegion './Public/Get-HuduActivityLogs.ps1' 78 +#Region './Public/Get-HuduApiKey.ps1' -1 + +function Get-HuduApiKey { + <# + .SYNOPSIS + Get Hudu API key + + .DESCRIPTION + Returns Hudu API key in securestring format + + .EXAMPLE + Get-HuduApiKey + + #> + [CmdletBinding()] + Param() + if ($null -eq $Int_HuduAPIKey) { + Write-Error 'No API key has been set. Please use New-HuduAPIKey to set it.' + } else { + $Int_HuduAPIKey + } +} +#EndRegion './Public/Get-HuduApiKey.ps1' 21 +#Region './Public/Get-HuduAppInfo.ps1' -1 + +function Get-HuduAppInfo { + <# + .SYNOPSIS + Retrieve information regarding API + + .DESCRIPTION + Calls Hudu API to retrieve version number and date + + .EXAMPLE + Get-HuduAppInfo + + #> + [CmdletBinding()] + Param() + + [version]$script:HuduRequiredVersion = '2.21' + + try { + Invoke-HuduRequest -Resource '/api/v1/api_info' + } catch { + [PSCustomObject]@{ + version = '0.0.0.0' + date = '2000-01-01' + } + } +} +#EndRegion './Public/Get-HuduAppInfo.ps1' 27 +#Region './Public/Get-HuduArticles.ps1' -1 + +function Get-HuduArticles { + <# + .SYNOPSIS + Get Knowledge Base Articles + + .DESCRIPTION + Calls Hudu API to retrieve KB articles by Id or a list + + .PARAMETER Id + Id of the Article + + .PARAMETER CompanyId + Filter by company id + + .PARAMETER Name + Filter by name of article + + .PARAMETER Slug + Filter by slug of article + + .EXAMPLE + Get-HuduArticles -Name 'Article name' + + #> + [CmdletBinding()] + Param ( + [Int]$Id = '', + [Alias('company_id')] + [Int]$CompanyId = '', + [String]$Name = '', + [String]$Slug + ) + + if ($Id) { + Invoke-HuduRequest -Method get -Resource "/api/v1/articles/$Id" + } else { + $Params = @{} + + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($Name) { $Params.name = $Name } + if ($Slug) { $Params.slug = $Slug } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/articles' + Params = $Params + } + + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property articles + } +} +#EndRegion './Public/Get-HuduArticles.ps1' 52 +#Region './Public/Get-HuduAssetLayoutFieldID.ps1' -1 + +function Get-HuduAssetLayoutFieldID { + <# + .SYNOPSIS + Get Hudu Asset Layout Field ID + + .DESCRIPTION + Retrieves ID for Hudu Asset Layout Fields + + .PARAMETER Name + Name of Field + + .PARAMETER LayoutId + Asset Layout Id + + .EXAMPLE + Get-HuduAssetLayoutFieldID -Name 'Extra Info' -LayoutId 1 + + #> + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $true)] + [String]$Name, + [Alias('asset_layout_id')] + [Parameter(Mandatory = $true)] + [Int]$LayoutId + ) + + $Layout = Get-HuduAssetLayouts -LayoutId $LayoutId + + $Fields = [Collections.Generic.List[Object]]($Layout.fields) + $Index = $Fields.FindIndex( { $args[0].label -eq $Name } ) + $Fields[$Index].id +} +#EndRegion './Public/Get-HuduAssetLayoutFieldID.ps1' 34 +#Region './Public/Get-HuduAssetLayouts.ps1' -1 + +function Get-HuduAssetLayouts { + <# + .SYNOPSIS + Get a list of Asset Layouts + + .DESCRIPTION + Call Hudu API to retrieve asset layouts for server + + .PARAMETER Name + Filter by name of Asset Layout + + .PARAMETER LayoutId + Id of Asset Layout + + .PARAMETER Slug + Filter by url slug + + .EXAMPLE + Get-HuduAssetLayouts -Name 'Contacts' + + #> + [CmdletBinding()] + Param ( + [String]$Name, + [Alias('id', 'layout_id')] + [int]$LayoutId, + [String]$Slug + ) + + $HuduRequest = @{ + Resource = '/api/v1/asset_layouts' + Method = 'GET' + } + + if ($LayoutId) { + $HuduRequest.Resource = '{0}/{1}' -f $HuduRequest.Resource, $LayoutId + $AssetLayout = Invoke-HuduRequest @HuduRequest + return $AssetLayout.asset_layout + } else { + $Params = @{} + if ($Name) { $Params.name = $Name } + if ($Slug) { $Params.slug = $Slug } + $HuduRequest.Params = $Params + + $AssetLayouts = Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property 'asset_layouts' -PageSize 25 + + if (!$Name -and !$Slug) { + $script:AssetLayouts = $AssetLayouts | Sort-Object -Property name + } + $AssetLayouts + } +} +#EndRegion './Public/Get-HuduAssetLayouts.ps1' 53 +#Region './Public/Get-HuduAssets.ps1' -1 + +function Get-HuduAssets { + <# + .SYNOPSIS + Get a list of Assets + + .DESCRIPTION + Call Hudu API to retrieve Assets + + .PARAMETER Id + Id of requested asset + + .PARAMETER AssetLayoutId + Id of the requested asset layout + + .PARAMETER AssetLayout + Name of the requested asset layout + + .PARAMETER CompanyId + Id of the requested company + + .PARAMETER Name + Filter by name + + .PARAMETER Archived + Show archived results + + .PARAMETER PrimarySerial + Filter by primary serial + + .PARAMETER Slug + Filter by slug + + .EXAMPLE + Get-HuduAssets -AssetLayout 'Contacts' + + #> + [CmdletBinding()] + Param ( + [ValidateRange(1, [int]::MaxValue)] + [Int]$Id = '', + [Alias('asset_layout_id')] + [ValidateRange(1, [int]::MaxValue)] + [Int]$AssetLayoutId = '', + [string]$AssetLayout, + [Alias('company_id')] + [ValidateRange(1, [int]::MaxValue)] + [Int]$CompanyId = '', + [String]$Name = '', + [switch]$Archived, + [Alias('primary_serial')] + [String]$PrimarySerial = '', + [String]$Slug + ) + + if ($AssetLayout) { + if (!$script:AssetLayouts) { Get-HuduAssetLayouts | Out-Null } + $AssetLayoutId = $script:AssetLayouts | Where-Object { $_.name -eq $AssetLayout } | Select-Object -ExpandProperty id + } + + if ($id -and $CompanyId) { + $HuduRequest = @{ + Resource = "/api/v1/companies/$CompanyId/assets/$Id" + Method = 'GET' + } + Invoke-HuduRequest @HuduRequest + } else { + $Params = @{} + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($AssetLayoutId) { $Params.asset_layout_id = $AssetLayoutId } + if ($Name) { $Params.name = $Name } + if ($Archived.IsPresent) { $params.archived = $Archived.IsPresent } + if ($PrimarySerial) { $Params.primary_serial = $PrimarySerial } + if ($Id) { $Params.id = $Id } + if ($Slug) { $Params.slug = $Slug } + + $HuduRequest = @{ + Resource = '/api/v1/assets' + Method = 'GET' + Params = $Params + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property assets + } +} +#EndRegion './Public/Get-HuduAssets.ps1' 84 +#Region './Public/Get-HuduBaseURL.ps1' -1 + +function Get-HuduBaseURL { + <# + .SYNOPSIS + Get Hudu Base URL + + .DESCRIPTION + Returns Hudu Base URL + + .EXAMPLE + Get-HuduBaseURL + + #> + [CmdletBinding()] + Param() + if ($null -eq $Int_HuduBaseURL) { + Write-Error 'No Base URL has been set. Please use New-HuduBaseURL to set it.' + } else { + $Int_HuduBaseURL + } +} +#EndRegion './Public/Get-HuduBaseURL.ps1' 21 +#Region './Public/Get-HuduCard.ps1' -1 + +function Get-HuduCard { + <# + .SYNOPSIS + Get Integration Cards + + .DESCRIPTION + Lookup cards with outside integration details + + .PARAMETER IntegrationSlug + Identifier of outside integration + + .PARAMETER IntegrationId + ID in the integration. Must be present, unless integration_identifier is set + + .PARAMETER IntegrationIdentifier + Identifier in the integration (if integration_id is not set) + + .EXAMPLE + Get-HuduCard -IntegrationSlug cw_manage -IntegrationId 1 + + #> + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $true)] + [Alias('integration_slug')] + [String]$IntegrationSlug, + + [Alias('integration_id')] + [String]$IntegrationId, + + [Alias('integration_identifier')] + [String]$IntegrationIdentifier + ) + + $Params = @{ + integration_slug = $IntegrationSlug + } + + if ($IntegrationId) { $Params.integration_id = $IntegrationId } + if ($IntegrationIdentifier) { $Params.integration_identifier = $IntegrationIdentifier } + + if (!$IntegrationId -and !$IntegrationIdentifier) { + throw 'IntegrationId or IntegrationIdentifier required' + } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/cards/lookup' + Params = $Params + } + + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property integrator_cards +} +#EndRegion './Public/Get-HuduCard.ps1' 54 +#Region './Public/Get-HuduCompanies.ps1' -1 + +function Get-HuduCompanies { + <# + .SYNOPSIS + Get a list of companies + + .DESCRIPTION + Call Hudu API to retrieve company list + + .PARAMETER Id + Filter companies by id + + .PARAMETER Name + Filter companies by name + + .PARAMETER PhoneNumber + filter companies by phone number + + .PARAMETER Website + Filter companies by website + + .PARAMETER City + Filter companies by city + + .PARAMETER State + Filter companies by state + + .PARAMETER Search + Filter by search query + + .PARAMETER Slug + Filter by url slug + + .PARAMETER IdInIntegration + Filter companies by id/identifier in PSA/RMM/outside integration + + .EXAMPLE + Get-HuduCompanies -Search 'Vendor' + + #> + [CmdletBinding()] + Param ( + [String]$Name = '', + [Alias('phone_number')] + [String]$PhoneNumber = '', + [String]$Website = '', + [String]$City = '', + [String]$State = '', + [Alias('id_in_integration')] + [Int]$IdInIntegration = '', + [Int]$Id = '', + [string]$Search, + [String]$Slug + ) + + if ($Id) { + $Company = (Invoke-HuduRequest -Method get -Resource "/api/v1/companies/$Id").company + return $Company + } else { + $Params = @{} + if ($Name) { $Params.name = $Name } + if ($PhoneNumber) { $Params.phone_number = $PhoneNumber } + if ($Website) { $Params.website = $Website } + if ($City) { $Params.city = $City } + if ($State) { $Params.state = $State } + if ($IdInIntegration) { $Params.id_in_integration = $IdInIntegration } + if ($Search) { $Params.search = $Search } + if ($Slug) { $Params.slug = $Slug } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/companies' + Params = $Params + } + + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property 'companies' + } +} +#EndRegion './Public/Get-HuduCompanies.ps1' 78 +#Region './Public/Get-HuduExpirations.ps1' -1 + +function Get-HuduExpirations { + <# + .SYNOPSIS + Get expirations for account + + .DESCRIPTION + Calls Hudu API to retrieve expirations + + .PARAMETER CompanyId + Filter expirations by company_id + + .PARAMETER ExpirationType + Filter expirations by expiration type (undeclared, domain, ssl_certificate, warranty, asset_field, article_expiration) + + .PARAMETER ResourceId + Filter logs by resource id. Must be coupled with resource_type + + .PARAMETER ResourceType + Filter logs by resource type (Asset, AssetPassword, Company, Article, etc.). Must be coupled with resource_id + + .EXAMPLE + Get-HuduExpirations -ExpirationType domain + + #> + [CmdletBinding()] + Param ( + [Alias('company_id')] + [Int]$CompanyId = '', + + [ValidateSet('undeclared', 'domain', 'ssl_certificate', 'warranty', 'asset_field', 'article_expiration')] + [Alias('expiration_type')] + [String]$ExpirationType = '', + + [Alias('resource_id')] + [Int]$ResourceId = '', + + [Alias('resource_type')] + [String]$ResourceType = '' + ) + + $Params = @{} + + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($ExpirationType) { $Params.expiration_type = $ExpirationType } + if ($ResourceType) { $Params.resource_type = $ResourceType } + if ($ResourceId) { $Params.resource_id = $ResourceId } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/expirations' + Params = $Params + } + + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest +} +#EndRegion './Public/Get-HuduExpirations.ps1' 56 +#Region './Public/Get-HuduFolderMap.ps1' -1 + +function Get-HuduFolderMap { + [CmdletBinding()] + Param ( + [Alias('company_id')] + [Int]$CompanyId = '' + ) + + if ($CompanyId) { + $FoldersRaw = Get-HuduFolders -company_id $CompanyId + $SubFolders = Get-HuduCompanyFolders -FoldersRaw $FoldersRaw + } else { + $FoldersRaw = Get-HuduFolders + $FoldersProcessed = $FoldersRaw | Where-Object { $null -eq $_.company_id } + $SubFolders = Get-HuduCompanyFolders -FoldersRaw $FoldersProcessed + } + + return $SubFolders +} +#EndRegion './Public/Get-HuduFolderMap.ps1' 19 +#Region './Public/Get-HuduFolders.ps1' -1 + +function Get-HuduFolders { + <# + .SYNOPSIS + Get a list of Folders + + .DESCRIPTION + Calls Hudu API to retrieve folders + + .PARAMETER Id + Id of the folder + + .PARAMETER Name + Filter by name + + .PARAMETER CompanyId + Filter by company_id + + .EXAMPLE + Get-HuduFolders + + #> + [CmdletBinding()] + Param ( + [Int]$Id = '', + [String]$Name = '', + [Alias('company_id')] + [Int]$CompanyId = '' + ) + + if ($id) { + $Folder = Invoke-HuduRequest -Method get -Resource "/api/v1/folders/$id" + return $Folder.Folder + } else { + $Params = @{} + + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($Name) { $Params.name = $Name } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/folders' + Params = $Params + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property folders + } +} +#EndRegion './Public/Get-HuduFolders.ps1' 47 +#Region './Public/Get-HuduIntegrationMatchers.ps1' -1 + +function Get-HuduIntegrationMatchers { + <# + .SYNOPSIS + List matchers for an integration + + .DESCRIPTION + Calls Hudu API to get list of integration matching + + .PARAMETER IntegrationId + ID of the integration. Can be found in the URL when editing an integration + + .PARAMETER Matched + Filter on whether the company already been matched + + .PARAMETER SyncId + Filter by ID of the record in the integration. This is used if the id that the integration uses is an integer. + + .PARAMETER Identifier + Filter by Identifier in the integration (if sync_id is not set). This is used if the id that the integration uses is a string. + + .PARAMETER CompanyId + Filter on company id + + .EXAMPLE + Get-HuduIntegrationMatchers -IntegrationId 1 + + #> + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $true)] + [int]$IntegrationId, + + [switch]$Matched, + + [int]$SyncId = '', + + [string]$Identifier = '', + + [int]$CompanyId + ) + + $Params = @{ + integration_id = $IntegrationId + } + + if ($Matched.IsPresent) { $Params.matched = 'true' } + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($Identifier) { $Params.identifier = $Identifier } + if ($SyncId) { $Params.sync_id = $SyncId } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/matchers' + Params = $Params + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property 'matchers' +} +#EndRegion './Public/Get-HuduIntegrationMatchers.ps1' 58 +#Region './Public/Get-HuduMagicDashes.ps1' -1 + +function Get-HuduMagicDashes { + <# + .SYNOPSIS + Get all Magic Dash Items + + .DESCRIPTION + Call Hudu API to retrieve Magic Dashes + + .PARAMETER CompanyId + Filter by company id + + .PARAMETER Title + Filter by title + + .EXAMPLE + Get-HuduMagicDashes -Title 'Microsoft 365 - ...' + + #> + Param ( + [Alias('company_id')] + [Int]$CompanyId, + [String]$Title + ) + + $Params = @{} + + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($Title) { $Params.title = $Title } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/magic_dash' + Params = $Params + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest +} +#EndRegion './Public/Get-HuduMagicDashes.ps1' 37 +#Region './Public/Get-HuduObjectByUrl.ps1' -1 + +function Get-HuduObjectByUrl { + <# + .SYNOPSIS + Get Hudu object from URL + + .DESCRIPTION + Calls Hudu API to retrieve object based on URL string + + .PARAMETER Url + Url to retrieve object from + + .EXAMPLE + Get-HuduObject -Url https://your-hudu-server/a/some-asset-1z8z7a + + #> + [CmdletBinding()] + Param ( + [uri]$Url + ) + + if ((Get-HuduBaseURL) -match $Url.Authority) { + $null, $Type, $Slug = $Url.PathAndQuery -split '/' + + $SlugSplat = @{ + Slug = $Slug + } + + switch ($Type) { + 'a' { + # Asset + Get-HuduAssets @SlugSplat + } + 'admin' { + # Admin path + $null, $null, $Type, $Slug = $Url.PathAndQuery -split '/' + $SlugSplat = @{ + Slug = $Slug + } + switch ($Type) { + 'asset_layouts' { + # Asset layouts + Get-HuduAssetLayouts @SlugSplat + } + } + } + 'c' { + # Company + Get-HuduCompanies @SlugSplat + } + 'kba' { + # KB article + Get-HuduArticles @SlugSplat + } + 'passwords' { + # Passwords + Get-HuduPasswords @SlugSplat + } + 'websites' { + # Website + Get-HuduWebsites @SlugSplat + } + default { + Write-Error "Unsupported object type $Type" + } + } + } else { + Write-Error 'Provided URL does not match Hudu Base URL' + } +} +#EndRegion './Public/Get-HuduObjectByUrl.ps1' 70 +#Region './Public/Get-HuduPasswordFolders.ps1' -1 + +function Get-HuduPasswordFolders { + <# + .SYNOPSIS + Get a list of Password Folders + + .DESCRIPTION + Calls Hudu API to retrieve folders + + .PARAMETER Id + Id of the folder + + .PARAMETER Name + Filter by name + + .PARAMETER CompanyId + Filter by company_id + + .EXAMPLE + Get-HuduFolders + + #> + [CmdletBinding()] + Param ( + [Int]$Id = '', + [String]$Name = '', + [String]$Search = '', + [Alias('company_id')] + [Int]$CompanyId = '', + [Int]$page = '', + [Int]$page_size = '' + ) + + if ($id) { + $Folder = Invoke-HuduRequest -Method get -Resource "/api/v1/password_folders/$id" + return $Folder.password_folder + } else { + $Params = @{} + + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($Name) { $Params.name = $Name } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/password_folders' + Params = $Params + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property password_folders + } +} +#EndRegion './Public/Get-HuduPasswordFolders.ps1' 50 +#Region './Public/Get-HuduPasswords.ps1' -1 + +function Get-HuduPasswords { + <# + .SYNOPSIS + Get a list of Passwords + + .DESCRIPTION + Calls Hudu API to list password assets + + .PARAMETER Id + Id of the password + + .PARAMETER CompanyId + Filter by company id + + .PARAMETER Name + Filter by password name + + .PARAMETER Slug + Filter by url slug + + .PARAMETER Search + Filter by search query + + .EXAMPLE + Get-HuduPasswords -CompanyId 1 + + #> + [CmdletBinding()] + Param ( + [Int]$Id, + + [Alias('company_id')] + [Int]$CompanyId, + + [String]$Name, + + [String]$Slug, + + [string]$Search + ) + + if ($Id) { + $Password = Invoke-HuduRequest -Method get -Resource "/api/v1/asset_passwords/$id" + return $Password + } else { + $Params = @{} + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($Name) { $Params.name = $Name } + if ($Slug) { $Params.slug = $Slug } + if ($Search) { $Params.search = $Search } + } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/asset_passwords' + Params = $Params + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property 'asset_passwords' +} +#EndRegion './Public/Get-HuduPasswords.ps1' 60 +#Region './Public/Get-HuduProcesses.ps1' -1 + +function Get-HuduProcesses { + <# + .SYNOPSIS + Get a list of Procedures (Processes) + + .DESCRIPTION + Calls Hudu API to retrieve list of procedures + + .PARAMETER Id + Id of the Procedure + + .PARAMETER CompanyId + Filter by company id + + .PARAMETER Name + Fitler by name of article + + .PARAMETER Slug + Filter by url slug + + .EXAMPLE + Get-HuduProcedures -Name 'Procedure 1' + + #> + [CmdletBinding()] + Param ( + [Int]$Id = '', + [Alias('company_id')] + [Int]$CompanyId = '', + [String]$Name = '', + [String]$Slug + ) + + if ($Id) { + Invoke-HuduRequest -Method get -Resource "/api/v1/procedures/$id" + } else { + $Params = @{} + + if ($CompanyId) { $Params.company_id = $CompanyId } + if ($Name) { $Params.name = $Name } + if ($Slug) { $Params.slug = $Slug } + + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/procedures' + Params = $Params + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property 'procedures' + } +} +#EndRegion './Public/Get-HuduProcesses.ps1' 52 +#Region './Public/Get-HuduPublicPhotos.ps1' -1 + +function Get-HuduPublicPhotos { + <# + .SYNOPSIS + Get a list of Public_Photos + + .DESCRIPTION + Calls Hudu API to retrieve public photos + + .EXAMPLE + Get-HuduPublicPhotos + + #> + [CmdletBinding()] + Param() + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/public_photos' + Params = @{} + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property 'public_photos' +} +#EndRegion './Public/Get-HuduPublicPhotos.ps1' 23 +#Region './Public/Get-HuduRelations.ps1' -1 + +function Get-HuduRelations { + <# + .SYNOPSIS + Get a list of all relations + + .DESCRIPTION + Calls Hudu API to retrieve object relationsihps + + .EXAMPLE + Get-HuduRelations -CompanyId 1 + + #> + [CmdletBinding()] + Param() + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/relations' + Params = @{} + } + + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest -Property 'relations' +} +#EndRegion './Public/Get-HuduRelations.ps1' 24 +#Region './Public/Get-HuduUploads.ps1' -1 + +function Get-HuduUploads { + <# + .SYNOPSIS + Get a list of uploads + + .DESCRIPTION + Calls Hudu API to retrieve uploads + + .EXAMPLE + Get-HuduUploads + + #> + [CmdletBinding()] + Param( + [Int]$Id + ) + + if ($Id) { + $Upload = Invoke-HuduRequest -Method Get -Resource "/api/v1/uploads/$Id" + } else { + $Upload = Invoke-HuduRequest -Method Get -Resource "/api/v1/uploads" + } + return $Upload +} +#EndRegion './Public/Get-HuduUploads.ps1' 25 +#Region './Public/Get-HuduWebsites.ps1' -1 + +function Get-HuduWebsites { + <# + .SYNOPSIS + Get a list of all websites + + .DESCRIPTION + Calls Hudu API to get websites + + .PARAMETER Name + Filter websites by name + + .PARAMETER Id + ID of website + + .PARAMETER Slug + Filter by url slug + + .PARAMETER Search + Fitler by search query + + .EXAMPLE + Get-HuduWebsites -Search 'domain.com' + + #> + [CmdletBinding()] + Param ( + [String]$Name, + [Alias('website_id')] + [Int]$WebsiteId, + [String]$Slug, + [string]$Search + ) + + if ($WebsiteId) { + Invoke-HuduRequest -Method get -Resource "/api/v1/websites/$($WebsiteId)" + } else { + $Params = @{} + if ($Name) { $Params.name = $Name } + if ($Slug) { $Params.slug = $Slug } + if ($Search) { $Params.search = $Search } + + $HuduRequest = @{ + Method = 'GET' + Resource = '/api/v1/websites' + Params = $Params + } + Invoke-HuduRequestPaginated -HuduRequest $HuduRequest + } +} +#EndRegion './Public/Get-HuduWebsites.ps1' 50 +#Region './Public/Initialize-HuduFolder.ps1' -1 + +function Initialize-HuduFolder { + [CmdletBinding()] + param( + [String[]]$FolderPath, + [Alias('company_id')] + [int]$CompanyId + ) + + if ($CompanyId) { + $FolderMap = Get-HuduFolderMap -company_id $CompanyId + } else { + $FolderMap = Get-HuduFolderMap + } + + $CurrentFolder = $Foldermap + foreach ($Folder in $FolderPath) { + if ($CurrentFolder.$(Get-HuduFolderCleanName $Folder)) { + $CurrentFolder = $CurrentFolder.$(Get-HuduFolderCleanName $Folder) + } else { + $CurrentFolder = (New-HuduFolder -Name $Folder -company_id $CompanyID -parent_folder_id $CurrentFolder.id).folder + } + } + + return $CurrentFolder +} +#EndRegion './Public/Initialize-HuduFolder.ps1' 26 +#Region './Public/Move-HuduAssetsToNewLayout.ps1' -1 + +function Move-HuduAssetsToNewLayout { +<# + .SYNOPSIS + Helper function that uses the Set-HuduAsset function to move an asset between asset layouts. This will leave behind orphan data in the database. + Review the article https://portal.risingtidegroup.net/kb?id=29 for more details. + + .DESCRIPTION + Calls the Hudu API to update an asset by switching its asset_layout_id property to a different asset layout. + This function migrates the asset to the specified new layout while maintaining its fields. Note that this + operation may leave behind orphaned data in the Hudu database, so use it with caution. + + .PARAMETER AssetsToMove + An array of assets to be moved to a new asset layout. Each asset must contain both 'id' and 'fields' properties. + + .PARAMETER NewAssetLayoutID + The ID of the new asset layout to which the assets will be moved. + + .EXAMPLE + $AssetLayout = Get-HuduAssetLayouts -Name "Servers" + $AssetsToUpdate = Get-HuduAssets -AssetLayoutId 9 + Move-HuduAssetsToNewLayout -AssetsToMove $AssetsToUpdate -NewAssetLayoutID $AssetLayout.id + + This example retrieves the asset layout with the name "Servers" and the assets with the layout ID 9, then moves those assets to the new layout. + + .NOTES + Ensure that the new asset layout ID is valid and that the assets to be moved contain the required properties. + Using this function may result in orphaned data in your Hudu database. Review the provided article for more details. +#> + [CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'High')] + param( + [Parameter(Mandatory = $true)] + [ValidateNotNullOrEmpty()] + [ValidateScript({ + if ($BadAssets = ($_ | where {(-not $_.id)})) { + $BadAssets + throw "Assets must be an object with an ID" + } + return $true + })] + [array] + $AssetsToMove, + + [Parameter(Mandatory = $true)] + [int] + $NewAssetLayoutID + ) + + Write-Warning "Performing this function will leave behind orphaned data in your Hudu database. Please review https://portal.risingtidegroup.net/kb?id=29" + Read-Host "Press Enter to continue or (CTRL+C) to cancel..." + + $assets = foreach ($AssetToMove in $AssetsToMove) { + if (-not ($AssetToMove.PSObject.Properties.Match('id')) -or -not ($AssetToMove.PSObject.Properties.Match('fields'))) { + Write-Error "Asset does not contain both 'id' and 'fields' properties. Skipping this asset." + continue + } + + if (-not $AssetToMove.fields) { + Write-Warning "Asset ID: $($AssetToMove.id) has no fields. Proceeding with moving the asset." + } + + $assetId = $AssetToMove.id + + if ($PSCmdlet.ShouldProcess("Asset ID: $assetId", "Move to new layout with ID $NewAssetLayoutID")) { + try { + Write-Verbose "Processing Asset ID: $assetId" + + $fields = New-Object -TypeName psobject + foreach ($field in $AssetToMove.fields) { + $fieldName = $field.label.replace(' ', '_').tolower() + $fields | Add-Member -MemberType NoteProperty -Name $fieldName -Value $field.value -Force + } + + (Set-HuduAsset -Id $assetId -AssetLayoutId $NewAssetLayoutID -Fields $fields).asset + + Write-Verbose "Successfully moved Asset ID: $assetId" + } + catch { + Write-Error "Failed to move Asset ID: $assetId. Error: $_" + } + finally { + Remove-Variable -Name fields -ErrorAction SilentlyContinue + } + } + } + return $assets +} +#EndRegion './Public/Move-HuduAssetsToNewLayout.ps1' 87 +#Region './Public/New-HuduAPIKey.ps1' -1 + +function New-HuduAPIKey { + <# + .SYNOPSIS + Set Hudu API Key + + .DESCRIPTION + API keys are required to interact with Hudu + + .PARAMETER ApiKey + The API key + + .EXAMPLE + New-HuduAPIKey -ApiKey abdc1234 + + #> + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '', Scope = 'Function')] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Scope = 'Function')] + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $false, ValueFromPipeline = $true)] + [String]$ApiKey + ) + + process { + if ($ApiKey) { + $SecApiKey = ConvertTo-SecureString $ApiKey -AsPlainText -Force + } else { + $SecApiKey = Read-Host -Prompt 'Please enter your Hudu API key, you can obtain it from https://your-hudu-domain/admin/api_keys:' -AsSecureString + } + Set-Variable -Name 'Int_HuduAPIKey' -Value $SecApiKey -Visibility Private -Scope script -Force + + if ($script:Int_HuduBaseURL) { + [version]$version = (Get-HuduAppInfo).version + if ($version -lt $script:HuduRequiredVersion) { + Write-Warning "A connection error occured or Hudu version is below $script:HuduRequiredVersion" + } + } + } +} +#EndRegion './Public/New-HuduAPIKey.ps1' 40 +#Region './Public/New-HuduArticle.ps1' -1 + +function New-HuduArticle { + <# + .SYNOPSIS + Create a Knowledge Base Article + + .DESCRIPTION + Uses Hudu API to create KB articles + + .PARAMETER Name + Name of article + + .PARAMETER Content + Article HTML contents + + .PARAMETER EnableSharing + Create public URL for users to view without being authenticated + + .PARAMETER FolderId + Associate article with folder id + + .PARAMETER CompanyId + Associate article with company id + + .PARAMETER Slug + Manually define slug for Article + + .EXAMPLE + New-HuduArticle -Name "Test" -CompanyId 1 -Content '

      Testing

      ' -EnableSharing -Slug 'this-is-a-test' + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [String]$Name, + + [Parameter(Mandatory = $true)] + [String]$Content, + + [switch]$EnableSharing, + + [Alias('folder_id')] + [Int]$FolderId = '', + + [Alias('company_id')] + [Int]$CompanyId = '', + + [string]$Slug + ) + + $Article = [ordered]@{article = [ordered]@{} } + + $Article.article.add('name', $Name) + $Article.article.add('content', $Content) + + if ($FolderId) { + $Article.article.add('folder_id', $FolderId) + } + + if ($CompanyId) { + $Article.article.add('company_id', $CompanyId) + } + + if ($EnableSharing.IsPresent) { + $Article.article.add('enable_sharing', 'true') + } + + if ($Slug) { + $Article.article.add('slug', $Slug) + } + + $JSON = $Article | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess($Name)) { + Invoke-HuduRequest -Method post -Resource '/api/v1/articles' -Body $JSON + } +} +#EndRegion './Public/New-HuduArticle.ps1' 77 +#Region './Public/New-HuduAsset.ps1' -1 + +function New-HuduAsset { + <# + .SYNOPSIS + Create an Asset + + .DESCRIPTION + Uses Hudu API to create assets using custom layouts + + .PARAMETER Name + Name of the Asset + + .PARAMETER CompanyId + Company id for asset + + .PARAMETER AssetLayoutId + Asset layout id + + .PARAMETER Fields + Array of custom fields and values + + .PARAMETER PrimarySerial + Asset primary serial number + + .PARAMETER PrimaryMail + Asset primary mail + + .PARAMETER PrimaryModel + Asset primary model + + .PARAMETER PrimaryManufacturer + Asset primary manufacturer + + .PARAMETER Slug + Url identifier + + .EXAMPLE + New-HuduAsset -Name 'Some asset' -CompanyId 1 -Fields @(@{'field_name'='Field Value'}) + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [String]$Name, + + [Alias('company_id')] + [Parameter(Mandatory = $true)] + [Int]$CompanyId, + + [Alias('asset_layout_id')] + [Parameter(Mandatory = $true)] + [Int]$AssetLayoutId, + + [Array]$Fields, + + [Alias('primary_serial')] + [string]$PrimarySerial, + + [Alias('primary_mail')] + [string]$PrimaryMail, + + [Alias('primary_model')] + [string]$PrimaryModel, + + [Alias('primary_manufacturer')] + [string]$PrimaryManufacturer + ) + + $Asset = [ordered]@{asset = [ordered]@{} } + + $Asset.asset.add('name', $Name) + $Asset.asset.add('asset_layout_id', $AssetLayoutId) + + + if ($PrimarySerial) { + $Asset.asset.add('primary_serial', $PrimarySerial) + } + + if ($PrimaryMail) { + $Asset.asset.add('primary_mail', $PrimaryMail) + } + + if ($PrimaryModel) { + $Asset.asset.add('primary_model', $PrimaryModel) + } + + if ($PrimaryManufacturer) { + $Asset.asset.add('primary_manufacturer', $PrimaryManufacturer) + } + + if ($Fields) { + $Asset.asset.add('custom_fields', $Fields) + } + + if ($Slug) { + $Asset.asset.add('slug', $Slug) + } + + $JSON = $Asset | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess($Name)) { + Invoke-HuduRequest -Method post -Resource "/api/v1/companies/$CompanyId/assets" -Body $JSON + } +} +#EndRegion './Public/New-HuduAsset.ps1' 104 +#Region './Public/New-HuduAssetLayout.ps1' -1 + +function New-HuduAssetLayout { + <# + .SYNOPSIS + Create an Asset Layout + + .DESCRIPTION + Uses Hudu API to create new custom asset layout + + .PARAMETER Name + Name of the layout + + .PARAMETER Icon + FontAwesome Icon class name, example: "fas fa-home" + + .PARAMETER Color + Background color hex code + + .PARAMETER IconColor + Icon color hex code + + .PARAMETER IncludePasswords + Boolean for including passwords + + .PARAMETER IncludePhotos + Boolean for including photos + + .PARAMETER IncludeComments + Boolean for including comments + + .PARAMETER IncludeFiles + Boolean for including files + + .PARAMETER PasswordTypes + List of password types, separated with new line characters + + .PARAMETER Slug + Url identifier + + .PARAMETER Fields + Array of hashtable or custom objects representing layout fields. Most field types only require a label and type. + Valid field types are: Text, RichText, Heading, CheckBox, Website (aka Link), Password (aka ConfidentialText), Number, Date, DropDown, Embed, Email (aka CopyableText), Phone, AssetLink + Field types are Case Sensitive as of Hudu V2.27 due to a known issue with asset type validation. + + .EXAMPLE + New-HuduAssetLayout -Name 'Test asset layout' -Icon 'fas fa-home' -IncludePassword $true + + .EXAMPLE + New-HuduAssetLayout -Name 'Test asset layout' -Icon 'fas fa-home' -IncludePassword $true -Fields @( + @{label = 'Test field'; 'field_type' = 'Text'} + ) + #> + [CmdletBinding(SupportsShouldProcess)] + # This will silence the warning for variables with Password in their name. + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingPlainTextForPassword', '')] + Param ( + [Parameter(Mandatory = $true)] + [String]$Name, + + [Parameter(Mandatory = $true)] + [String]$Icon, + + [Parameter(Mandatory = $true)] + [String]$Color, + + [Alias('icon_color')] + [Parameter(Mandatory = $true)] + [String]$IconColor, + + [Alias('include_passwords')] + [bool]$IncludePasswords = '', + + [Alias('include_photos')] + [bool]$IncludePhotos = '', + + [Alias('include_comments')] + [bool]$IncludeComments = '', + + [Alias('include_files')] + [bool]$IncludeFiles = '', + + [Alias('password_types')] + [String]$PasswordTypes = '', + + [Parameter(Mandatory = $true)] + [system.collections.generic.list[hashtable]]$Fields + ) + + foreach ($field in $fields) { + if ($field.show_in_list) { $field.show_in_list = [System.Convert]::ToBoolean($field.show_in_list) } else { $field.remove('show_in_list') } + if ($field.required) { $field.required = [System.Convert]::ToBoolean($field.required) } else { $field.remove('required') } + if ($field.expiration) { $field.expiration = [System.Convert]::ToBoolean($field.expiration) } else { $field.remove('expiration') } + # A bug in versions of Hudu 2.27 and earlier can cause asset layouts to become corrupted if the field type value is not properly cased. + switch ($field.'field_type') { + 'text' { $field.'field_type' = 'Text' } + 'richtext' { $field.'field_type' = 'RichText' } + 'heading' { $field.'field_type' = 'Heading' } + 'checkbox' { $field.'field_type' = 'CheckBox' } + 'number' { $field.'field_type' = 'Number' } + 'date' { $field.'field_type' = 'Date' } + 'dropdown' { $field.'field_type' = 'Dropdown' } + 'embed' { $field.'field_type' = 'Embed' } + 'phone' { $field.'field_type' = 'Phone' } + 'email' { $field.'field_type' = 'Email' } + 'copyabletext' { $field.'field_type' = 'Email' } + 'assettag' { $field.'field_type' = 'AssetTag' } + 'assetlink' { $field.'field_type' = 'AssetTag' } + 'website' { $field.'field_type' = 'Website' } + 'link' { $field.'field_type' = 'Website' } + 'password' { $field.'field_type' = 'Password' } + 'confidentialtext' { $field.'field_type' = 'Password' } + Default { throw "Invalid field type: $($field.'field_type') found in field $($field.name)" } + } + } + + $AssetLayout = [ordered]@{asset_layout = [ordered]@{} } + + $AssetLayout.asset_layout.add('name', $Name) + $AssetLayout.asset_layout.add('icon', $Icon) + $AssetLayout.asset_layout.add('color', $Color) + $AssetLayout.asset_layout.add('icon_color', $IconColor) + $AssetLayout.asset_layout.add('fields', $Fields) + #$AssetLayout.asset_layout.add('active', $Active) + + if ($IncludePasswords) { + $AssetLayout.asset_layout.add('include_passwords', [System.Convert]::ToBoolean($IncludePasswords)) + } + + if ($IncludePhotos) { + $AssetLayout.asset_layout.add('include_photos', [System.Convert]::ToBoolean($IncludePhotos)) + } + + if ($IncludeComments) { + $AssetLayout.asset_layout.add('include_comments', [System.Convert]::ToBoolean($IncludeComments)) + } + + if ($IncludeFiles) { + $AssetLayout.asset_layout.add('include_files', [System.Convert]::ToBoolean($IncludeFiles)) + } + + if ($PasswordTypes) { + $AssetLayout.asset_layout.add('password_types', $PasswordTypes) + } + + if ($Slug) { + $AssetLayout.asset_layout.add('slug', $Slug) + } + + $JSON = $AssetLayout | ConvertTo-Json -Depth 10 + + Write-Verbose $JSON + + if ($PSCmdlet.ShouldProcess($Name)) { + Invoke-HuduRequest -Method post -Resource '/api/v1/asset_layouts' -Body $JSON + } +} +#EndRegion './Public/New-HuduAssetLayout.ps1' 156 +#Region './Public/New-HuduBaseURL.ps1' -1 + +function New-HuduBaseURL { + <# + .SYNOPSIS + Set Hudu Base URL + + .DESCRIPTION + In order to access the Hudu API the Base URL must be set + + .PARAMETER BaseURL + Url with no trailing slash e.g. https://demo.huducloud.com + + .EXAMPLE + New-HuduBaseURL -BaseURL https://demo.huducloud.com + + .NOTES + General notes + #> + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Scope = 'Function')] + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $false, + ValueFromPipeline = $true)] + [String] + $BaseURL + ) + process { + if (!$BaseURL) { + $BaseURL = Read-Host -Prompt 'Please enter your Hudu Base URL with no trailing /, for example https://demo.huducloud.com :' + } + + $Protocol = $BaseURL[0..7] -join '' + if ($Protocol -ne 'https://') { + if ($Protocol -like 'http://*') { + Write-Warning "Non HTTPS Base URL was set, rewriting URL to be secure transport only. If connection fails please make sure hostname is correct and HTTPS is enabld." + $BaseURL = $BaseURL.Replace('http://','https://') + } + else { + Write-Warning "No protocol was specified, adding https:// to the beginning of the specified hostname" + $BaseURL = "https://$BaseURL" + } + } + + Set-Variable -Name 'Int_HuduBaseURL' -Value $BaseURL -Visibility Private -Scope script -Force + + if ($script:Int_HuduAPIKey) { + [version]$Version = (Get-HuduAppInfo).version + if ($Version -lt $script:HuduRequiredVersion) { + Write-Warning "A connection error occured or Hudu version is below $script:HuduRequiredVersion" + } + } + } +} +#EndRegion './Public/New-HuduBaseURL.ps1' 53 +#Region './Public/New-HuduCompany.ps1' -1 + +function New-HuduCompany { + <# + .SYNOPSIS + Create a company + + .DESCRIPTION + Uses Hudu API to create a new company + + .PARAMETER Name + Company name + + .PARAMETER Nickname + Company nickname + + .PARAMETER CompanyType + Company type + + .PARAMETER AddressLine1 + Address line 1 + + .PARAMETER AddressLine2 + Address line 2 + + .PARAMETER City + City + + .PARAMETER State + State + + .PARAMETER Zip + Zip + + .PARAMETER CountryName + Country + + .PARAMETER PhoneNumber + Phone number + + .PARAMETER FaxNumber + Fax number + + .PARAMETER Website + Website + + .PARAMETER IdNumber + Company id number + + .PARAMETER ParentCompanyId + Parent company id number + + .PARAMETER Notes + Parameter description + + .PARAMETER Slug + Url identifier + + .EXAMPLE + New-HuduCompany -Name 'Company name' + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [String]$Name, + + [String]$Nickname = '', + + [Alias('company_type')] + [String]$CompanyType = '', + + [Alias('address_line_1')] + [String]$AddressLine1 = '', + + [Alias('address_line_2')] + [String]$AddressLine2 = '', + + [String]$City = '', + + [String]$State = '', + + [Alias('PostalCode', 'PostCode')] + [String]$Zip = '', + + [Alias('country_name')] + [String]$CountryName = '', + + [Alias('phone_number')] + [String]$PhoneNumber = '', + + [Alias('fax_number')] + [String]$FaxNumber = '', + + [String]$Website = '', + + [Alias('id_number')] + [String]$IdNumber = '', + + [Alias('parent_company_id')] + [int]$ParentCompanyId, + + [String]$Notes = '', + + [string]$Slug + ) + + + $Company = [ordered]@{company = [ordered]@{} } + + $Company.company.add('name', $Name) + if (-not ([string]::IsNullOrEmpty($Nickname))) { $Company.company.add('nickname', $Nickname) } + if (-not ([string]::IsNullOrEmpty($Nickname))) { $Company.company.add('company_type', $CompanyType) } + if (-not ([string]::IsNullOrEmpty($AddressLine1))) { $Company.company.add('address_line_1', $AddressLine1) } + if (-not ([string]::IsNullOrEmpty($AddressLine2))) { $Company.company.add('address_line_2', $AddressLine2) } + if (-not ([string]::IsNullOrEmpty($City))) { $Company.company.add('city', $City) } + if (-not ([string]::IsNullOrEmpty($State))) { $Company.company.add('state', $State) } + if (-not ([string]::IsNullOrEmpty($Zip))) { $Company.company.add('zip', $Zip) } + if (-not ([string]::IsNullOrEmpty($CountryName))) { $Company.company.add('country_name', $CountryName) } + if (-not ([string]::IsNullOrEmpty($PhoneNumber))) { $Company.company.add('phone_number', $PhoneNumber) } + if (-not ([string]::IsNullOrEmpty($FaxNumber))) { $Company.company.add('fax_number', $FaxNumber) } + if (-not ([string]::IsNullOrEmpty($Website))) { $Company.company.add('website', $Website) } + if (-not ([string]::IsNullOrEmpty($IdNumber))) { $Company.company.add('id_number', $IdNumber) } + if (-not ([string]::IsNullOrEmpty($ParentCompanyId))) { $Company.company.add('parent_company_id', $ParentCompanyId) } + if (-not ([string]::IsNullOrEmpty($Notes))) { $Company.company.add('notes', $Notes) } + if (-not ([string]::IsNullOrEmpty($Slug))) { $Company.company.add('slug', $Slug) } + + $JSON = $Company | ConvertTo-Json -Depth 10 + Write-Verbose $JSON + + if ($PSCmdlet.ShouldProcess($Name)) { + Invoke-HuduRequest -Method post -Resource '/api/v1/companies' -Body $JSON + } +} +#EndRegion './Public/New-HuduCompany.ps1' 133 +#Region './Public/New-HuduCustomHeaders.ps1' -1 + +function New-HuduCustomHeaders { + <# + .SYNOPSIS + Set Hudu custom headers to be injected into each request + + .DESCRIPTION + There may be times when one might need to use custom headers e.g. Service Tokens for Cloudflare Zero Trust + + .PARAMETER Headers + Hashtable with the Custom Headers that need to be injected into each request + + .EXAMPLE + New-HuduCustomHeaders -Headers @{"CF-Access-Client-Id" = "x"; "CF-Access-Client-Secret" = "y"} + + .NOTES + General notes + #> + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Scope = 'Function')] + [CmdletBinding()] + Param ( + [Parameter(Mandatory = $true, + ValueFromPipeline = $true)] + [hashtable] + $Headers + ) + process { + if ($Headers.Count -eq 0) { + Write-Host "Empty Custom Header hashtable was provided, no Custom Headers will be set" + return 0 + } + + Set-Variable -Name 'Int_HuduCustomHeaders' -Value $Headers -Visibility Private -Scope script -Force + } +} +#EndRegion './Public/New-HuduCustomHeaders.ps1' 35 +#Region './Public/New-HuduFolder.ps1' -1 + +function New-HuduFolder { + <# + .SYNOPSIS + Create a Folder + + .DESCRIPTION + Uses Hudu API to create a new folder + + .PARAMETER Name + Name of the folder + + .PARAMETER Icon + Folder Icon + + .PARAMETER Description + Folder description + + .PARAMETER ParentFolderId + Parent folder ID + + .PARAMETER CompanyId + Company id + + .EXAMPLE + New-HuduFolder -Name 'Test folder' -CompanyId 1 + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [String]$Name, + [String]$Icon = '', + [String]$Description = '', + [Alias('parent_folder_id')] + [Int]$ParentFolderId = '', + [Alias('company_id')] + [Int]$CompanyId = '' + ) + + $Folder = [ordered]@{folder = [ordered]@{} } + + $Folder.folder.add('name', $Name) + + if ($Icon) { + $Folder.folder.add('icon', $Icon) + } + + if ($Description) { + $Folder.folder.add('description', $Description) + } + + if ($ParentFolderId) { + $Folder.folder.add('parent_folder_id', $ParentFolderId) + } + + if ($CompanyId) { + $Folder.folder.add('company_id', $CompanyId) + } + + $JSON = $Folder | ConvertTo-Json + + if ($PSCmdlet.ShouldProcess($Name)) { + Invoke-HuduRequest -Method post -Resource '/api/v1/folders' -Body $JSON + } +} +#EndRegion './Public/New-HuduFolder.ps1' 66 +#Region './Public/New-HuduPassword.ps1' -1 + +function New-HuduPassword { + <# + .SYNOPSIS + Create a Password + + .DESCRIPTION + Uses Hudu API to create a new password + + .PARAMETER Name + Name of the password + + .PARAMETER CompanyId + Company id + + .PARAMETER PasswordableType + Asset type for the password + + .PARAMETER PasswordableId + Asset id for the password + + .PARAMETER InPortal + Boolean for in portal + + .PARAMETER Password + Password + + .PARAMETER OTPSecret + OTP secret + + .PARAMETER URL + Password URL + + .PARAMETER Username + Username + + .PARAMETER Description + Password description + + .PARAMETER PasswordType + Password type + + .PARAMETER PasswordFolderId + Password folder id + + .PARAMETER Slug + Url identifier + + .EXAMPLE + New-HuduPassword -Name 'Some website password' -Username 'user@domain.com' -Password '12345' + + #> + [CmdletBinding(SupportsShouldProcess)] + # This will silence the warning for variables with Password in their name. + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingPlainTextForPassword', '')] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingUsernameAndPasswordParams', '')] + Param ( + [Parameter(Mandatory = $true)] + [String]$Name, + + [Alias('company_id')] + [Parameter(Mandatory = $true)] + [Int]$CompanyId, + + [Alias('passwordable_type')] + [String]$PasswordableType = '', + + [Alias('passwordable_id')] + [int]$PasswordableId = '', + + [Alias('in_portal')] + [Bool]$InPortal = $false, + + [Parameter(Mandatory = $true)] + [String]$Password = '', + + [Alias('otp_secret')] + [string]$OTPSecret = '', + + [String]$URL = '', + + [String]$Username = '', + + [String]$Description = '', + + [Alias('password_type')] + [String]$PasswordType = '', + + [Alias('password_folder_id')] + [int]$PasswordFolderId, + + [string]$Slug + ) + + $AssetPassword = [ordered]@{asset_password = [ordered]@{} } + + $AssetPassword.asset_password.add('name', $Name) + $AssetPassword.asset_password.add('company_id', $CompanyId) + $AssetPassword.asset_password.add('password', $Password) + $AssetPassword.asset_password.add('in_portal', $InPortal) + + if ($PasswordableType) { + $AssetPassword.asset_password.add('passwordable_type', $PasswordableType) + } + if ($PasswordableId) { + $AssetPassword.asset_password.add('passwordable_id', $PasswordableId) + } + + if ($OTPSecret) { + $AssetPassword.asset_password.add('otp_secret', $OTPSecret) + } + + if ($URL) { + $AssetPassword.asset_password.add('url', $URL) + } + + if ($Username) { + $AssetPassword.asset_password.add('username', $Username) + } + + if ($Description) { + $AssetPassword.asset_password.add('description', $Description) + } + + if ($PasswordType) { + $AssetPassword.asset_password.add('password_type', $PasswordType) + } + + if ($PasswordFolderId) { + $AssetPassword.asset_password.add('password_folder_id', $PasswordFolderId) + } + + if ($Slug) { + $AssetPassword.asset_password.add('slug', $Slug) + } + + $JSON = $AssetPassword | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess($Name)) { + Invoke-HuduRequest -Method post -Resource '/api/v1/asset_passwords' -Body $JSON + } +} +#EndRegion './Public/New-HuduPassword.ps1' 142 +#Region './Public/New-HuduPublicPhoto.ps1' -1 + +function New-HuduPublicPhoto { + <# + .SYNOPSIS + Create a Public Photo + + .DESCRIPTION + Uses Hudu API to upload an image for use in an asset or article + + .PARAMETER FilePath + Path to the image + + .PARAMETER RecordId + Record id to associate with the photo + + .PARAMETER RecordType + Record type to associate with the photo + + .EXAMPLE + New-HuduPublicPhoto -FilePath 'c:\path\to\image.png' -RecordId 1 -RecordType 'asset' + + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory)] + [string]$FilePath, + + [Alias('record_id')] + [int]$RecordId, + + [Alias('record_type')] + [string]$RecordType + ) + + $File = Get-Item $FilePath + $form = @{ + photo = $File + } + + if ($RecordId) { $form['record_id'] = $RecordId } + if ($RecordType) { $form['record_type'] = $RecordType } + + if ($PSCmdlet.ShouldProcess($File.FullName)) { + Invoke-HuduRequest -Method POST -Resource '/api/v1/public_photos' -Form $form + } +} +#EndRegion './Public/New-HuduPublicPhoto.ps1' 46 +#Region './Public/New-HuduRelation.ps1' -1 + +function New-HuduRelation { + <# + .SYNOPSIS + Create a Relation + + .DESCRIPTION + Uses Hudu API to create relationships between objects + + .PARAMETER Description + Give a description to the relation so you know why two things are related + + .PARAMETER FromableType + The type of the FROM relation (Asset, Website, Procedure, AssetPassword, Company, Article) + + .PARAMETER FromableID + The ID of the FROM relation + + .PARAMETER ToableType + The type of the TO relation (Asset, Website, Procedure, AssetPassword, Company, Article) + + .PARAMETER ToableID + The ID of the TO relation + + .PARAMETER IsInverse + When a relation is created, it will also create another relation that is the inverse. When this is true, this relation is the inverse. + + .EXAMPLE + An example + + .NOTES + General notes + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [String]$Description, + + [Parameter(Mandatory = $true)] + [ValidateSet('Asset', 'Website', 'Procedure', 'AssetPassword', 'Company', 'Article')] + [Alias('fromable_type')] + [String]$FromableType, + + [Alias('fromable_id')] + [int]$FromableID, + + [Alias('toable_type')] + [String]$ToableType, + + [Alias('toable_id')] + [int]$ToableID, + + [Alias('is_inverse')] + [string]$IsInverse + ) + + $Relation = [ordered]@{relation = [ordered]@{} } + + $Relation.relation.add('fromable_type', $FromableType) + $Relation.relation.add('fromable_id', $FromableID) + $Relation.relation.add('toable_type', $ToableType) + $Relation.relation.add('toable_id', $ToableID) + + if ($Description) { + $Relation.relation.add('description', $Description) + } + + if ($ISInverse) { + $Relation.relation.add('is_inverse', $ISInverse) + } + + $JSON = $Relation | ConvertTo-Json -Depth 100 + + if ($PSCmdlet.ShouldProcess($FromableType)) { + Invoke-HuduRequest -Method post -Resource '/api/v1/relations' -Body $JSON + } +} +#EndRegion './Public/New-HuduRelation.ps1' 76 +#Region './Public/New-HuduUpload.ps1' -1 + +function New-HuduUpload { + <# + .SYNOPSIS + Create a Upload + + .DESCRIPTION + Uses Hudu API to upload a file for use in an asset. RecordType can be of 'asset','website','procedure','assetpassword','comapny','article'. + + .PARAMETER FilePath + Path to the file + + .PARAMETER RecordId + Record id to associate with the Upload + + .PARAMETER RecordType + Record type to associate with the Upload + + .EXAMPLE + New-HuduUpload -FilePath 'c:\path\to\file.png' -RecordId 1 -RecordType 'asset' + + #> + [CmdletBinding(SupportsShouldProcess)] + param( + [Parameter(Mandatory)] + [string]$FilePath, + + [Parameter(Mandatory)] + [Alias('record_id','recordid')] + [int]$uploadable_id, + + [Parameter(Mandatory)] + [Alias('record_type','recordtype')] + [ValidateSet('Asset', 'Website', 'Procedure', 'AssetPassword', 'Company', 'Article')] + [string]$uploadable_type + ) + + $File = Get-Item $FilePath + + $form = @{ + file = $File + "upload[uploadable_id]" = $uploadable_id + "upload[uploadable_type]" = $uploadable_type + } + + if ($PSCmdlet.ShouldProcess($File.FullName)) { + Invoke-HuduRequest -Method POST -Resource '/api/v1/uploads' -Form $form + } +} +#EndRegion './Public/New-HuduUpload.ps1' 49 +#Region './Public/New-HuduWebsite.ps1' -1 + +function New-HuduWebsite { + <# + .SYNOPSIS + Create a Website + + .DESCRIPTION + Uses Hudu API to create a website + + .PARAMETER Name + Website name (e.g. https://domain.com) + + .PARAMETER Notes + Used to add additional notes to a website + + .PARAMETER Paused + When true, website monitoring is paused + + .PARAMETER CompanyId + Used to associate website with company + + .PARAMETER DisableDNS + When true, dns monitoring is paused. + + .PARAMETER DisableSSL + When true, ssl cert monitoring is paused. + + .PARAMETER DisableWhois + When true, whois monitoring is paused. + + .PARAMETER Slug + Url identifier + + .EXAMPLE + New-HuduWebsite -CompanyId 1 -Name https://domain.com + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [String]$Name, + + [String]$Notes = '', + + [String]$Paused = '', + + [Alias('company_id')] + [Parameter(Mandatory = $true)] + [Int]$CompanyId, + + [Alias('disable_dns')] + [String]$DisableDNS = '', + + [Alias('disable_ssl')] + [String]$DisableSSL = '', + + [Alias('disable_whois')] + [String]$DisableWhois = '', + + [string]$Slug + ) + + $Website = [ordered]@{website = [ordered]@{} } + + $Website.website.add('name', $Name) + + if ($Notes) { + $Website.website.add('notes', $Notes) + } + + if ($Paused) { + $Website.website.add('paused', $Paused) + } + + $Website.website.add('company_id', $CompanyId) + + if ($DisableDNS) { + $Website.website.add('disable_dns', $DisableDNS) + } + + if ($DisableSSL) { + $Website.website.add('disable_ssl', $DisableSSL) + } + + if ($DisableWhois) { + $Website.website.add('disable_whois', $DisableWhois) + } + + if ($Slug) { + $Website.website.add('slug', $Slug) + } + + $JSON = $Website | ConvertTo-Json + + if ($PSCmdlet.ShouldProcess($Name)) { + Invoke-HuduRequest -Method post -Resource '/api/v1/websites' -Body $JSON + } +} +#EndRegion './Public/New-HuduWebsite.ps1' 98 +#Region './Public/Remove-HuduAPIKey.ps1' -1 + +function Remove-HuduAPIKey { + <# + .SYNOPSIS + Remove API key + + .DESCRIPTION + Unsets the variable for the Hudu API Key + + .EXAMPLE + Remove-HuduAPIKey + + #> + [CmdletBinding(SupportsShouldProcess)] + Param() + + if ($PSCmdlet.ShouldProcess('API Key')) { + Remove-Variable -Name 'Int_HuduAPIKey' -Scope script -Force + } +} +#EndRegion './Public/Remove-HuduAPIKey.ps1' 20 +#Region './Public/Remove-HuduArticle.ps1' -1 + +function Remove-HuduArticle { + <# + .SYNOPSIS + Delete a Knowledge Base Article + + .DESCRIPTION + Uses Hudu API to remove a KB article + + .PARAMETER Id + Id of the requested article + + .EXAMPLE + Remove-HuduArticle -Id 1 + + .NOTES + General notes + #> + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] + Param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$Id + ) + process { + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method delete -Resource "/api/v1/articles/$Id" + } + } +} +#EndRegion './Public/Remove-HuduArticle.ps1' 29 +#Region './Public/Remove-HuduAsset.ps1' -1 + +function Remove-HuduAsset { + <# + .SYNOPSIS + Delete an Asset + + .DESCRIPTION + Uses Hudu API to remove an Asset from a company + + .PARAMETER Id + Id of the requested Asset + + .PARAMETER CompanyId + Id of the requested parent Company + + .EXAMPLE + Remove-HuduAsset -CompanyId 1 -Id 1 + + #> + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] + Param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$Id, + [Alias('company_id')] + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$CompanyId + ) + + process { + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method delete -Resource "/api/v1/companies/$CompanyId/assets/$Id" + } + } +} +#EndRegion './Public/Remove-HuduAsset.ps1' 34 +#Region './Public/Remove-HuduBaseURL.ps1' -1 + +function Remove-HuduBaseURL { + <# + .SYNOPSIS + Remove base URL + + .DESCRIPTION + Unsets the Hudu Base URL variable + + .EXAMPLE + Remove-HuduBaseURL + + #> + [CmdletBinding(SupportsShouldProcess)] + Param() + if ($PSCmdlet.ShouldProcess('Base URL')) { + Remove-Variable -Name 'Int_HuduBaseURL' -Scope script -Force + } +} +#EndRegion './Public/Remove-HuduBaseURL.ps1' 19 +#Region './Public/Remove-HuduCompany.ps1' -1 + +function Remove-HuduCompany { + <# + .SYNOPSIS + Delete a Website + + .DESCRIPTION + Uses Hudu API to delete a company + + .PARAMETER Id + Id of the Company to delete + + .EXAMPLE + Remove-HuduCompany -Id 1 + + #> + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] + Param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$Id + ) + + process { + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method delete -Resource "/api/v1/companies/$Id" + } + } +} +#EndRegion './Public/Remove-HuduCompany.ps1' 28 +#Region './Public/Remove-HuduCustomHeaders.ps1' -1 + +function Remove-HuduCustomHeaders { + <# + .SYNOPSIS + Remove Custom Headers that are injected into each request + + .DESCRIPTION + Unsets the Hudu Custom Header variable + + .EXAMPLE + Remove-HuduCustomHeaders + + #> + [CmdletBinding(SupportsShouldProcess)] + Param() + if ($PSCmdlet.ShouldProcess('Custom Headers')) { + Remove-Variable -Name 'Int_HuduCustomHeaders' -Scope script -Force + } +} +#EndRegion './Public/Remove-HuduCustomHeaders.ps1' 19 +#Region './Public/Remove-HuduMagicDash.ps1' -1 + +function Remove-HuduMagicDash { + <# + .SYNOPSIS + Delete a Magic Dash Item + + .DESCRIPTION + Uses Hudu API to remove Magic Dash by Id or Title and Company Name + + .PARAMETER Title + Title of the Magic Dash + + .PARAMETER CompanyName + Company Name + + .PARAMETER Id + Id of the Magic Dash + + .EXAMPLE + Remove-HuduMagicDash -Id 1 + + .EXAMPLE + Remove-HuduMagicDash -Title 'Microsoft 365' -CompanyName 'AcmeCorp' + + #> + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High', DefaultParameterSetName = 'Id')] + Param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true, ParameterSetName = 'TitleCompany')] + [String]$Title, + + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true, ParameterSetName = 'TitleCompany')] + [Alias('company_name')] + [String]$CompanyName, + + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true, ParameterSetName = 'Id')] + [int]$Id + ) + + process { + if ($id) { + if ($PSCmdlet.ShouldProcess($Id)) { + $null = Invoke-HuduRequest -Method delete -Resource "/api/v1/magic_dash/$Id" + } + } else { + $MagicDash = @{} + + $MagicDash.add('title', $Title) + $MagicDash.add('company_name', $CompanyName) + + $JSON = $MagicDash | ConvertTo-Json + + if ($PSCmdlet.ShouldProcess("$Company - $Title")) { + $null = Invoke-HuduRequest -Method delete -Resource '/api/v1/magic_dash' -Body $JSON + } + } + } +} +#EndRegion './Public/Remove-HuduMagicDash.ps1' 57 +#Region './Public/Remove-HuduPassword.ps1' -1 + +function Remove-HuduPassword { + <# + .SYNOPSIS + Delete a Password + + .DESCRIPTION + Uses Hudu API to remove asset password + + .PARAMETER Id + Id of the password + + .EXAMPLE + Remove-HuduPassword -Id 1 + + #> + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] + Param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$Id + ) + process { + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method delete -Resource "/api/v1/asset_passwords/$Id" + } + } +} +#EndRegion './Public/Remove-HuduPassword.ps1' 27 +#Region './Public/Remove-HuduRelation.ps1' -1 + +function Remove-HuduRelation { + <# + .SYNOPSIS + Delete a Relation + + .DESCRIPTION + Uses Hudu API to delete object relationships + + .PARAMETER Id + Id of the requested Relation + + .EXAMPLE + Remove-HuduRelation -Id 1 + + #> + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] + Param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$Id + ) + + process { + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method delete -Resource "/api/v1/relations/$Id" + } + } +} +#EndRegion './Public/Remove-HuduRelation.ps1' 28 +#Region './Public/Remove-HuduUpload.ps1' -1 + +function Remove-HuduUpload { + <# + .SYNOPSIS + Delete an Upload by ID + + .DESCRIPTION + Calls Hudu API to delete uploads by specifying the ID value + + .EXAMPLE + Remove-HuduUpload + + #> + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] + Param( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$Id + ) + + process { + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method delete -Resource "/api/v1/uploads/$Id" + } + } + +} +#EndRegion './Public/Remove-HuduUpload.ps1' 26 +#Region './Public/Remove-HuduWebsite.ps1' -1 + +function Remove-HuduWebsite { + <# + .SYNOPSIS + Delete a Website + + .DESCRIPTION + Uses Hudu API to delete a website + + .PARAMETER Id + Id of the requested Website + + .EXAMPLE + Remove-HuduWebsite -Id 1 + + #> + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] + Param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$Id + ) + + process { + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method delete -Resource "/api/v1/websites/$Id" + } + } +} +#EndRegion './Public/Remove-HuduWebsite.ps1' 28 +#Region './Public/Set-HuduArticle.ps1' -1 + +function Set-HuduArticle { + <# + .SYNOPSIS + Update a Knowledge Base Article + + .DESCRIPTION + Uses Hudu API to update KB Article + + .PARAMETER Name + Name of the Article + + .PARAMETER Content + Article Content + + .PARAMETER EnableSharing + Set article to public and generate a URL + + .PARAMETER FolderId + Used to associate article with folder + + .PARAMETER CompanyId + Used to associate article with company + + .PARAMETER ArticleId + Id of the requested article + + .PARAMETER Slug + Url identifier + + .EXAMPLE + Set-HuduArticle -ArticleId 1 -Name 'Article Name' -Content '

      New article contents

      ' + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [String]$Name, + + [String]$Content, + [switch]$EnableSharing, + + [Alias('folder_id')] + [Int]$FolderId = '', + + [Alias('company_id')] + [Int]$CompanyId = '', + + [Alias('article_id', 'id')] + [Parameter(Mandatory = $true)] + [Int]$ArticleId, + + [string]$Slug + ) + + $Object = Get-HuduArticles -Id $ArticleId + $Article = [ordered]@{article = $Object.article } + + if ($Name) { + $Article.article.name = $Name + } + + if ($Content) { + $Article.article.content = $Content + } + + if ($FolderId) { + $Article.article.folder_id = $FolderId + } + + if ($CompanyId) { + $Article.article.company_id = $CompanyId + } + + if ($EnableSharing.IsPresent) { + $Article.article.enable_sharing = $true + } + + if ($Slug) { + $Article.article.slug = $Slug + } + + $JSON = $Article | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess($Name)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/articles/$ArticleId" -Body $JSON + } +} +#EndRegion './Public/Set-HuduArticle.ps1' 87 +#Region './Public/Set-HuduArticleArchive.ps1' -1 + +function Set-HuduArticleArchive { + <# + .SYNOPSIS + Archive/Unarchive a Knowledge Base Article + + .DESCRIPTION + Uses Hudu API to archive or unarchive an article + + .PARAMETER Id + Id of the requested article + + .PARAMETER Archive + Boolean for archive status + + .EXAMPLE + Set-HuduArticleArchive -Id 1 -Archive $true + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [Int]$Id, + [Parameter(Mandatory = $true)] + [Bool]$Archive + ) + + if ($Archive) { + $Action = 'archive' + } else { + $Action = 'unarchive' + } + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/articles/$Id/$Action" + } +} +#EndRegion './Public/Set-HuduArticleArchive.ps1' 37 +#Region './Public/Set-HuduAsset.ps1' -1 + +function Set-HuduAsset { + <# + .SYNOPSIS + Update an Asset + + .DESCRIPTION + Uses Hudu API to update an Asset + + .PARAMETER Name + Name of the Asset + + .PARAMETER CompanyId + Company id of the Asset + + .PARAMETER AssetLayoutId + Asset layout id + + .PARAMETER Fields + List of fields + + .PARAMETER AssetId + Id of the requested Asset + + .PARAMETER PrimarySerial + Primary serial number + + .PARAMETER PrimaryMail + Primary mail + + .PARAMETER PrimaryModel + Primary model + + .PARAMETER PrimaryManufacturer + Primary manufacturer + + .PARAMETER Slug + Url identifier + + .EXAMPLE + Set-HuduAsset -AssetId 1 -CompanyId 1 -Fields @(@{'field_name'='Field Value'}) + + .NOTES + General notes + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [String]$Name, + + [Alias('company_id')] + [Int]$CompanyId, + + [Alias('asset_layout_id')] + [Int]$AssetLayoutId, + + [Array]$Fields, + + [Alias('asset_id','assetid')] + [Parameter(Mandatory = $true)] + [ValidateRange(1, [int]::MaxValue)] + [Int]$Id, + + [Alias('primary_serial')] + [string]$PrimarySerial, + + [Alias('primary_mail')] + [string]$PrimaryMail, + + [Alias('primary_model')] + [string]$PrimaryModel, + + [Alias('primary_manufacturer')] + [string]$PrimaryManufacturer, + + [string]$Slug + ) + + $Object = Get-HuduAssets -id $Id | Select-Object name,asset_layout_id,company_id,slug,primary_serial,primary_model,primary_mail,id,primary_manufacturer,@{n='custom_fields';e={$_.fields | ForEach-Object {[pscustomobject]@{$_.label.replace(' ','_').tolower()= $_.value}}}} + if ($Object) { + $Asset = [ordered]@{asset = $Object } + $CompanyId = $Object.company_id + + if ($Name) { + $Asset.asset.name = $Name + } + + if ($AssetLayoutId) { + $Asset.asset.asset_layout_id = $AssetLayoutId + } + + if ($PrimarySerial) { + $Asset.asset.primary_serial = $PrimarySerial + } + + if ($PrimaryMail) { + $Asset.asset.primary_mail = $PrimaryMail + } + + if ($PrimaryModel) { + $Asset.asset.primary_model = $PrimaryModel + } + + if ($PrimaryManufacturer) { + $Asset.asset.primary_manufacturer = $PrimaryManufacturer + } + + if ($Fields) { + $Asset.asset.custom_fields = $Fields + } + + if ($Slug) { + $Asset.asset.slug = $Slug + } + + $JSON = $Asset | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess("ID: $($Asset.id) Name: $($Asset.Name)", "Set Hudu Asset")) { + Invoke-HuduRequest -Method put -Resource "/api/v1/companies/$CompanyId/assets/$Id" -Body $JSON + } + } else { + throw "A valid asset could not be found to update, please double check the ID and try again" + } +} +#EndRegion './Public/Set-HuduAsset.ps1' 123 +#Region './Public/Set-HuduAssetArchive.ps1' -1 + +function Set-HuduAssetArchive { + <# + .SYNOPSIS + Archive/Unarchive an Asset + + .DESCRIPTION + Uses Hudu API to archive or unarchive an asset + + .PARAMETER Id + Id of the requested Asset + + .PARAMETER CompanyId + Id of the requested parent company + + .PARAMETER Archive + Boolean for archive status + + .EXAMPLE + Set-HuduAssetArchive -Id 1 -CompanyId 1 -Archive $true + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [Int]$Id, + [Alias('company_id')] + [Parameter(Mandatory = $true)] + [Int]$CompanyId, + [Parameter(Mandatory = $true)] + [Bool]$Archive + ) + + if ($Archive) { + $Action = 'archive' + } else { + $Action = 'unarchive' + } + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/companies/$CompanyId/assets/$Id/$Action" + } +} +#EndRegion './Public/Set-HuduAssetArchive.ps1' 43 +#Region './Public/Set-HuduAssetLayout.ps1' -1 + +function Set-HuduAssetLayout { + <# + .SYNOPSIS + Update an Asset Layout + + .DESCRIPTION + Uses Hudu API to update an Asset Layout + + .PARAMETER Id + Id of the requested Asset Layout + + .PARAMETER Name + Name of the Asset Layout + + .PARAMETER Icon + Icon class name, example: "fas fa-home" + + .PARAMETER Color + Hex code for background color, example: #000000 + + .PARAMETER IconColor + Hex code for background color, example: #000000 + + .PARAMETER IncludePasswords + Boolean to include passwords + + .PARAMETER IncludePhotos + Boolean to include photos + + .PARAMETER IncludeComments + Boolean to include comments + + .PARAMETER IncludeFiles + Boolean to include files + + .PARAMETER PasswordTypes + List of password types, separated with new line characters + + .PARAMETER Slug + Url identifier + + .PARAMETER Fields + Array of hashtable or custom objects representing layout fields. Most field types only require a label and type. + Valid field types are: Text, RichText, Heading, CheckBox, Website (aka Link), Password (aka ConfidentialText), Number, Date, DropDown, Embed, Email (aka CopyableText), Phone, AssetLink + Field types are Case Sensitive as of Hudu V2.27 due to a known issue with asset type validation. + + .EXAMPLE + Set-HuduAssetLayout -Id 12 -Name 'Test asset layout' -Icon 'fas fa-home' -IncludePassword $true + + .EXAMPLE + Set-HuduAssetLayout -Id 12 -Fields @( + @{label = 'Test field'; 'field_type' = 'Text'} + ) + #> + [CmdletBinding(SupportsShouldProcess)] + # This will silence the warning for variables with Password in their name. + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingPlainTextForPassword', '')] + Param ( + [Parameter(Mandatory = $true)] + [Int]$Id, + + [String]$Name, + + [String]$Icon, + + [String]$Color, + + [Alias('icon_color')] + [String]$IconColor, + + [Alias('include_passwords')] + [bool]$IncludePasswords, + + [Alias('include_photos')] + [bool]$IncludePhotos, + + [Alias('include_comments')] + [bool]$IncludeComments, + + [Alias('include_files')] + [bool]$IncludeFiles, + + [Alias('password_types')] + [String]$PasswordTypes = '', + + [bool]$Active, + + [string]$Slug, + + [array]$Fields + ) + + foreach ($Field in $Fields) { + $Field.show_in_list = [System.Convert]::ToBoolean($Field.show_in_list) + $Field.required = [System.Convert]::ToBoolean($Field.required) + $Field.expiration = [System.Convert]::ToBoolean($Field.expiration) + # A bug in versions of Hudu 2.27 and earlier can cause asset layouts to become corrupted if the field type value is not properly cased. + switch ($field.'field_type') { + 'text' { $field.'field_type' = 'Text' } + 'richtext' { $field.'field_type' = 'RichText' } + 'heading' { $field.'field_type' = 'Heading' } + 'checkbox' { $field.'field_type' = 'CheckBox' } + 'number' { $field.'field_type' = 'Number' } + 'date' { $field.'field_type' = 'Date' } + 'dropdown' { $field.'field_type' = 'Dropdown' } + 'embed' { $field.'field_type' = 'Embed' } + 'phone' { $field.'field_type' = 'Phone' } + ('email' -or 'copyabletext') { $field.'field_type' = 'Email' } + ('assettag' -or 'assetlink') { $field.'field_type' = 'AssetTag' } + ('website' -or 'link') { $field.'field_type' = 'Website' } + ('password' -or 'confidentialtext') { $field.'field_type' = 'Password' } + Default { Write-Error "Invalid field type: $($field.'field_type') found in field $($field.name)"; break } + } + } + $Object = Get-HuduAssetLayouts -id $Id + + $AssetLayout = [ordered]@{asset_layout = $Object } + #$AssetLayout.asset_layout = $Object + + if ($Name) { + $AssetLayout.asset_layout.name = $Name + } + + if ($Icon) { + $AssetLayout.asset_layout.icon = $Icon + } + + if ($Color) { + $AssetLayout.asset_layout.color = $Color + } + + if ($IconColor) { + $AssetLayout.asset_layout.icon_color = $IconColor + } + + if ($Fields) { + $AssetLayout.asset_layout.fields = $Fields + } + + if ($IncludePasswords) { + $AssetLayout.asset_layout.include_passwords = [System.Convert]::ToBoolean($IncludePasswords) + } + + if ($IncludePhotos) { + $AssetLayout.asset_layout.include_photos = [System.Convert]::ToBoolean($IncludePhotos) + } + + if ($IncludeComments) { + $AssetLayout.asset_layout.include_comments = [System.Convert]::ToBoolean($IncludeComments) + } + + if ($IncludeFiles) { + $AssetLayout.asset_layout.include_files = [System.Convert]::ToBoolean($IncludeFiles) + } + + if ($PasswordTypes) { + $AssetLayout.asset_layout.password_types = $PasswordTypes + } + + if ($SidebarFolderID) { + $AssetLayout.asset_layout.sidebar_folder_id = $SidebarFolderID + } + + if ($Slug) { + $AssetLayout.asset_layout.slug = $Slug + } + + if ($Active) { + $AssetLayout.asset_layout.active = [System.Convert]::ToBoolean($Active) + } + + $JSON = $AssetLayout | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/asset_layouts/$Id" -Body $JSON + } +} +#EndRegion './Public/Set-HuduAssetLayout.ps1' 178 +#Region './Public/Set-HuduCompany.ps1' -1 + +function Set-HuduCompany { + <# + .SYNOPSIS + Update a company + + .DESCRIPTION + Uses Hudu API to update a Company + + .PARAMETER Id + Id of the requested company + + .PARAMETER Name + Name of the company + + .PARAMETER Nickname + Nickname of the company + + .PARAMETER CompanyType + Company type + + .PARAMETER AddressLine1 + Address line 1 + + .PARAMETER AddressLine2 + Address line 2 + + .PARAMETER City + City + + .PARAMETER State + State + + .PARAMETER Zip + Zip + + .PARAMETER CountryName + Country name + + .PARAMETER PhoneNumber + Phone number + + .PARAMETER FaxNumber + Fax number + + .PARAMETER Website + Webste + + .PARAMETER IdNumber + Id number + + .PARAMETER ParentCompanyId + Parent company id + + .PARAMETER Notes + Company notes + + .PARAMETER Slug + Url identifier + + .EXAMPLE + Set-HuduCompany -Id 1 -Name 'New company name' + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [Int]$Id, + + [String]$Name, + + [String]$Nickname = '', + + [Alias('company_type')] + [String]$CompanyType = '', + + [Alias('address_line_1')] + [String]$AddressLine1 = '', + + [Alias('address_line_2')] + [String]$AddressLine2 = '', + + [String]$City = '', + + [String]$State = '', + + [Alias('PostalCode', 'PostCode')] + [String]$Zip = '', + + [Alias('country_name')] + [String]$CountryName = '', + + [Alias('phone_number')] + [String]$PhoneNumber = '', + + [Alias('fax_number')] + [String]$FaxNumber = '', + + [String]$Website = '', + + [Alias('id_number')] + [String]$IdNumber = '', + + [Alias('parent_company_id')] + [Int]$ParentCompanyId, + + [String]$Notes = '', + + [string]$Slug + ) + + $Object = Get-HuduCompanies -Id $Id + + $Company = [ordered]@{company = $Object } + + if ($Name) { + $Company.company.name = $Name + } + + if ($Nickname) { + $Company.company.nickname = $Nickname + } + + if ($CompanyType) { + $Company.company.company_type = $CompanyType + } + + if ($AddressLine1) { + $Company.company.address_line_1 = $AddressLine1 + } + + if ($AddressLine2) { + $Company.company.address_line_2 = $AddressLine2 + } + + if ($City) { + $Company.company.city = $City + } + + if ($State) { + $Company.company.state = $State + } + + if ($Zip) { + $Company.company.zip = $Zip + } + + if ($CountryName) { + $Company.company.country_name = $CountryName + } + + if ($PhoneNumber) { + $Company.company.phone_number = $PhoneNumber + } + + if ($FaxNumber) { + $Company.company.fax_number = $FaxNumber + } + + if ($Website) { + $Company.company.website = $Website + } + + if ($IdNumber) { + $Company.company.id_number = $IdNumber + } + + if ($ParentCompanyId) { + $Company.company.parent_company_id = $ParentCompanyId + } + + if ($Notes) { + $Company.company.notes = $Notes + } + + if ($Slug) { + $Company.company.slug = $Slug + } + + $JSON = $Company | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/companies/$Id" -Body $JSON + } +} +#EndRegion './Public/Set-HuduCompany.ps1' 185 +#Region './Public/Set-HuduCompanyArchive.ps1' -1 + +function Set-HuduCompanyArchive { + <# + .SYNOPSIS + Archive/Unarchive a company + + .DESCRIPTION + Uses Hudu API to set archive status on a company + + .PARAMETER Id + Id of the requested company + + .PARAMETER Archive + Boolean for archive status + + .EXAMPLE + Set-HuduCompanyArchive -Id 1 -Archive $true + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [Int]$Id, + [Parameter(Mandatory = $true)] + [Bool]$Archive + ) + + if ($Archive -eq $true) { + $Action = 'archive' + } else { + $Action = 'unarchive' + } + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/companies/$Id/$Action" + } +} +#EndRegion './Public/Set-HuduCompanyArchive.ps1' 36 +#Region './Public/Set-HuduFolder.ps1' -1 + +function Set-HuduFolder { + <# + .SYNOPSIS + Update a Folder + + .DESCRIPTION + Uses Hudu API to update a folder + + .PARAMETER Id + Id of the requested folder + + .PARAMETER Name + Name of the folder + + .PARAMETER Icon + Folder icon + + .PARAMETER Description + Folder description + + .PARAMETER ParentFolderId + Folder parent id + + .PARAMETER CompanyId + Folder company id + + .EXAMPLE + Set-HuduFolder -Id 1 -Name 'New folder name' + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [Int]$Id, + + [Parameter(Mandatory = $true)] + [String]$Name, + + [String]$Icon = '', + + [String]$Description = '', + + [Alias('parent_folder_id')] + [Int]$ParentFolderId = '', + + [Alias('company_id')] + [Int]$CompanyId = '' + ) + + $Folder = [ordered]@{folder = [ordered]@{} } + + $Folder.folder.add('name', $Name) + + if ($icon) { + $Folder.folder.add('icon', $Icon) + } + + if ($Description) { + $Folder.folder.add('description', $Description) + } + + if ($ParentFolderId) { + $Folder.folder.add('parent_folder_id', $ParentFolderId) + } + + if ($CompanyId) { + $Folder.folder.add('company_id', $CompanyId) + } + + $JSON = $Folder | ConvertTo-Json + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/folders/$Id" -Body $JSON + } +} +#EndRegion './Public/Set-HuduFolder.ps1' 76 +#Region './Public/Set-HuduIntegrationMatcher.ps1' -1 + +function Set-HuduIntegrationMatcher { + <# + .SYNOPSIS + Update a Matcher + + .DESCRIPTION + Uses Hudu API to set integration matchers + + .PARAMETER Id + Id of the requested matcher + + .PARAMETER AcceptSuggestedMatch + Set the Sync Id/Identifier to the suggested one + + .PARAMETER CompanyId + Requested company id to match + + .PARAMETER PotentialCompanyId + Potential company id to match + + .PARAMETER SyncId + Sync id to match + + .PARAMETER Identifier + Identifier to match + + .EXAMPLE + Set-HuduIntegrationMatcher -Id 1 -AcceptSuggestedMatch + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] + [String]$Id, + + [Parameter(ParameterSetName = 'AcceptSuggestedMatch')] + [switch]$AcceptSuggestedMatch, + + [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, ParameterSetName = 'SetCompanyId')] + [Alias('company_id')] + [String]$CompanyId, + + [Parameter(ValueFromPipelineByPropertyName = $true)] + [Alias('potential_company_id')] + [String]$PotentialCompanyId, + + [Parameter(ValueFromPipelineByPropertyName = $true)] + [Alias('sync_id')] + [String]$SyncId, + + [Parameter(ValueFromPipelineByPropertyName = $true)] + [String]$Identifier + ) + + process { + $Matcher = [ordered]@{matcher = [ordered]@{} } + + if ($AcceptSuggestedMatch) { + $Matcher.matcher.add('company_id', $PotentialCompanyId) | Out-Null + } else { + $Matcher.matcher.add('company_id', $CompanyId) | Out-Null + } + + if ($PotentialCompanyId) { + $Matcher.matcher.add('potential_company_id', $PotentialCompanyId) | Out-Null + } + if ($SyncId) { + $Matcher.matcher.add('sync_id', $SyncId) | Out-Null + } + if ($Identifier) { + $Matcher.matcher.add('identifier', $identifier) | Out-Null + } + + $JSON = $Matcher | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/matchers/$Id" -Body $JSON + } + } +} +#EndRegion './Public/Set-HuduIntegrationMatcher.ps1' 81 +#Region './Public/Set-HuduMagicDash.ps1' -1 + +function Set-HuduMagicDash { + <# + .SYNOPSIS + Create or Update a Magic Dash Item + + .DESCRIPTION + Magic Dash takes just simple key-pairs. Whether you want to add a new Magic Dash Item, or update one, you can use the same endpoint, so it is really easy! It uses the title, and company_name to match. + + .PARAMETER Title + This is the title. If there is an existing Magic Dash Item with matching title and company_name, then it will match into that item. + + .PARAMETER CompanyName + This is the attribute we use to match to an existing company. If there is an existing Magic Dash Item with matching title and company_name, then it will match into that item. + + .PARAMETER Message + This will be the first content that will be displayed on the Magic Dash Item. + + .PARAMETER Icon + Either fill this in, or image_url. Use a (FontAwesome icon for the header of a Magic Dash Item. Must be in the format of fas fa-circle + + .PARAMETER ImageURL + Either fill this in, or icon. Used in the header of a Magic Dash Item. + + .PARAMETER ContentLink + Either fill this in, or content, or leave both blank. Used to have a link to an external website. + + .PARAMETER Content + Either fill this in, or content_link, or leave both blank. Fill in with HTML (tables, images, videos, etc.) to display more content in your Magic Dash Item. + + .PARAMETER Shade + Use a different color for your Magic Dash Item for different contextual states. Options are to leave it blank, success, or danger + + .EXAMPLE + Set-HuduMagicDash -Title 'Test Dash' -CompanyName 'Test Company' -Message 'This will be displayed first' + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [String]$Title, + + [Alias('company_name')] + [Parameter(Mandatory = $true)] + [String]$CompanyName, + + [Parameter(Mandatory = $true)] + [String]$Message, + + [String]$Icon = '', + + [Alias('image_url')] + [String]$ImageURL = '', + + [Alias('content_link')] + [String]$ContentLink = '', + + [String]$Content = '', + + [String]$Shade = '' + ) + + if ($Icon -and $ImageURL) { + Write-Error ('You can only use one of icon or image URL') + exit 1 + } + + if ($content_link -and $content) { + Write-Error ('You can only use one of content or content_link') + exit 1 + } + + $MagicDash = [ordered]@{} + + if ($Title) { + $MagicDash.add('title', $Title) + } + + if ($CompanyName) { + $MagicDash.add('company_name', $CompanyName) + } + + if ($Message) { + $MagicDash.add('message', $Message) + } + + if ($Icon) { + $MagicDash.add('icon', $Icon) + } + + if ($ImageURL) { + $MagicDash.add('image_url', $ImageURL) + } + + if ($ContentLink) { + $MagicDash.add('content_link', $ContentLink) + } + + if ($Content) { + $MagicDash.add('content', $Content) + } + + if ($Shade) { + $MagicDash.add('shade', $Shade) + } + + $JSON = $MagicDash | ConvertTo-Json + + if ($PSCmdlet.ShouldProcess("$Companyname - $Title")) { + Invoke-HuduRequest -Method post -Resource '/api/v1/magic_dash' -Body $JSON + } +} +#EndRegion './Public/Set-HuduMagicDash.ps1' 112 +#Region './Public/Set-HuduPassword.ps1' -1 + +function Set-HuduPassword { + <# + .SYNOPSIS + Update a Password + + .DESCRIPTION + Uses Hudu API to update a password + + .PARAMETER Id + Id of the requested Password + + .PARAMETER Name + Password name + + .PARAMETER CompanyId + Id of requested company + + .PARAMETER PasswordableType + Type of asset to associate with the password + + .PARAMETER PasswordableId + Id of the asset to associate with the password + + .PARAMETER InPortal + Display password in portal + + .PARAMETER Password + Password + + .PARAMETER OTPSecret + OTP secret + + .PARAMETER URL + Url for the password + + .PARAMETER Username + Username + + .PARAMETER Description + Password description + + .PARAMETER PasswordType + Password type + + .PARAMETER PasswordFolderId + Id of requested password folder + + .PARAMETER Slug + Url identifier + + .EXAMPLE + Set-HuduPassword -Id 1 -CompanyId 1 -Password 'this_is_my_new_password' + + #> + [CmdletBinding(SupportsShouldProcess)] + # This will silence the warning for variables with Password in their name. + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingPlainTextForPassword', '')] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingUsernameAndPasswordParams', '')] + Param ( + [Parameter(Mandatory = $true)] + [Int]$Id, + + [String]$Name, + + [Alias('company_id')] + [Int]$CompanyId, + + [Alias('passwordable_type')] + [String]$PasswordableType = '', + + [Alias('passwordable_id')] + [int]$PasswordableId = '', + + [Alias('in_portal')] + [Bool]$InPortal = $false, + [String]$Password = '', + + [Alias('otp_secret')] + [string]$OTPSecret = '', + + [String]$URL = '', + + [String]$Username = '', + + [String]$Description = '', + + [Alias('password_type')] + [String]$PasswordType = '', + + [Alias('password_folder_id')] + [int]$PasswordFolderId, + + [string]$Slug + ) + + $Object = Get-HuduPasswords -Id $Id + $AssetPassword = [ordered]@{asset_password = $Object } + + if ($Name) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name name -Force -Value $Name + + } + + if ($CompanyId) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name company_id -Force -Value $CompanyId + } + + if ($Password) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name password -Force -Value $Password + } + + if ($InPortal) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name in_portal -Force -Value $InPortal + } + + + if ($PasswordableType) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name passwordable_type -Force -Value $PasswordableType + } + if ($PasswordableId) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name passwordable_id -Force -Value $PasswordableId + } + + if ($OTPSecret) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name otp_secret -Force -Value $OTPSecret + } + + if ($URL) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name url -Force -Value $URL + } + + if ($Username) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name username -Force -Value $Username + } + + if ($Description) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name description -Force -Value $Description + } + + if ($PasswordType) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name password_type -Force -Value $PasswordType + } + + if ($PasswordFolderId) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name password_folder_id -Force -Value $PasswordFolderId + } + + if ($Slug) { + $AssetPassword.asset_password | Add-Member -MemberType NoteProperty -Name slug -Force -Value $Slug + } + + $JSON = $AssetPassword | ConvertTo-Json -Depth 10 + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/asset_passwords/$Id" -Body $JSON + } +} +#EndRegion './Public/Set-HuduPassword.ps1' 158 +#Region './Public/Set-HuduPasswordArchive.ps1' -1 + +function Set-HuduPasswordArchive { + <# + .SYNOPSIS + Archive/Unarchive a Password + + .DESCRIPTION + Uses Hudu API to archive or unarchive a password + + .PARAMETER Id + Id of the requested Password + + .PARAMETER Archive + Boolean of archive status + + .EXAMPLE + Set-HuduPasswordArchive -Archive $true -Id 1 + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(ValueFromPipelineByPropertyName = $true, Mandatory = $true)] + [Int]$Id, + [Parameter(Mandatory = $true)] + [Bool]$Archive + ) + + process { + if ($Archive) { + $Action = 'archive' + } else { + $Action = 'unarchive' + } + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/asset_passwords/$Id/$Action" + } + } +} +#EndRegion './Public/Set-HuduPasswordArchive.ps1' 39 +#Region './Public/Set-HuduWebsite.ps1' -1 + +function Set-HuduWebsite { + <# + .SYNOPSIS + Update a Website + + .DESCRIPTION + Uses Hudu API to update a website + + .PARAMETER Id + Id of requested website + + .PARAMETER Name + Website name (e.g. https://example.com) + + .PARAMETER Notes + Website Notes + + .PARAMETER Paused + When true, website monitoring is paused. + + .PARAMETER CompanyId + Used to associate website with company + + .PARAMETER DisableDNS + When true, dns monitoring is paused. + + .PARAMETER DisableSSL + When true, ssl cert monitoring is paused. + + .PARAMETER DisableWhois + When true, whois monitoring is paused. + + .PARAMETER Slug + Url identifier + + .EXAMPLE + Set-HuduWebsite -Id 1 -Paused $true + + #> + [CmdletBinding(SupportsShouldProcess)] + Param ( + [Parameter(Mandatory = $true)] + [Int]$Id, + + [Parameter(Mandatory = $true)] + [String]$Name, + + [String]$Notes = '', + + [String]$Paused = '', + + [Alias('company_id')] + [Parameter(Mandatory = $true)] + [Int]$CompanyId, + + [Alias('disable_dns')] + [String]$DisableDNS = '', + + [Alias('disable_ssl')] + [String]$DisableSSL = '', + + [Alias('disable_whois')] + [String]$DisableWhois = '', + + [string]$Slug + ) + + $Website = [ordered]@{website = [ordered]@{} } + + $Website.website.add('name', $Name) + + if ($Notes) { + $Website.website.add('notes', $Notes) + } + + if ($Paused) { + $Website.website.add('paused', $Paused) + } + + $Website.website.add('company_id', $companyid) + + if ($DisableDNS) { + $Website.website.add('disable_dns', $DisableDNS) + } + + if ($DisableSSL) { + $Website.website.add('disable_ssl', $DisableSSL) + } + + if ($DisableWhois) { + $Website.website.add('disable_whois', $DisableWhois) + } + + if ($Slug) { + $Website.website.add('slug', $Slug) + } + + $JSON = $Website | ConvertTo-Json + + if ($PSCmdlet.ShouldProcess($Id)) { + Invoke-HuduRequest -Method put -Resource "/api/v1/websites/$Id" -Body $JSON + } +} +#EndRegion './Public/Set-HuduWebsite.ps1' 104 diff --git a/Modules/HuduAPI/2.4.9/PSGetModuleInfo.xml b/Modules/HuduAPI/2.4.9/PSGetModuleInfo.xml new file mode 100644 index 000000000000..bc673458843c --- /dev/null +++ b/Modules/HuduAPI/2.4.9/PSGetModuleInfo.xml @@ -0,0 +1,248 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + HuduAPI + 2.4.9 + Module + This module provides an interface to the Hudu Rest API further information can be found at https://github.com/lwhitelock/HuduAPI + Luke Whitelock + + + System.Object[] + System.Array + System.Object + + + mspp + homotechsual + johnduprey + + + (c) 2021 Luke Whitelock. All rights reserved. +
      2024-06-30T03:42:36-04:00
      + + + + + + + + + PSModule + + + + + System.Collections.Hashtable + System.Object + + + + RoleCapability + + + + + + + DscResource + + + + Function + + + + Get-HuduActivityLogs + Get-HuduApiKey + Get-HuduAppInfo + Get-HuduArticles + Get-HuduAssetLayoutFieldID + Get-HuduAssetLayouts + Get-HuduAssets + Get-HuduBaseURL + Get-HuduCard + Get-HuduCompanies + Get-HuduExpirations + Get-HuduFolderMap + Get-HuduFolders + Get-HuduIntegrationMatchers + Get-HuduMagicDashes + Get-HuduObjectByUrl + Get-HuduPasswordFolders + Get-HuduPasswords + Get-HuduProcesses + Get-HuduPublicPhotos + Get-HuduRelations + Get-HuduUploads + Get-HuduWebsites + Initialize-HuduFolder + Move-HuduAssetsToNewLayout + New-HuduAPIKey + New-HuduArticle + New-HuduAsset + New-HuduAssetLayout + New-HuduBaseURL + New-HuduCompany + New-HuduCustomHeaders + New-HuduFolder + New-HuduPassword + New-HuduPublicPhoto + New-HuduRelation + New-HuduUpload + New-HuduWebsite + Remove-HuduAPIKey + Remove-HuduArticle + Remove-HuduAsset + Remove-HuduBaseURL + Remove-HuduCompany + Remove-HuduCustomHeaders + Remove-HuduMagicDash + Remove-HuduPassword + Remove-HuduRelation + Remove-HuduUpload + Remove-HuduWebsite + Set-HuduArticle + Set-HuduArticleArchive + Set-HuduAsset + Set-HuduAssetArchive + Set-HuduAssetLayout + Set-HuduCompany + Set-HuduCompanyArchive + Set-HuduFolder + Set-HuduIntegrationMatcher + Set-HuduMagicDash + Set-HuduPassword + Set-HuduPasswordArchive + Set-HuduWebsite + + + + + Cmdlet + + + + Command + + + + Get-HuduActivityLogs + Get-HuduApiKey + Get-HuduAppInfo + Get-HuduArticles + Get-HuduAssetLayoutFieldID + Get-HuduAssetLayouts + Get-HuduAssets + Get-HuduBaseURL + Get-HuduCard + Get-HuduCompanies + Get-HuduExpirations + Get-HuduFolderMap + Get-HuduFolders + Get-HuduIntegrationMatchers + Get-HuduMagicDashes + Get-HuduObjectByUrl + Get-HuduPasswordFolders + Get-HuduPasswords + Get-HuduProcesses + Get-HuduPublicPhotos + Get-HuduRelations + Get-HuduUploads + Get-HuduWebsites + Initialize-HuduFolder + Move-HuduAssetsToNewLayout + New-HuduAPIKey + New-HuduArticle + New-HuduAsset + New-HuduAssetLayout + New-HuduBaseURL + New-HuduCompany + New-HuduCustomHeaders + New-HuduFolder + New-HuduPassword + New-HuduPublicPhoto + New-HuduRelation + New-HuduUpload + New-HuduWebsite + Remove-HuduAPIKey + Remove-HuduArticle + Remove-HuduAsset + Remove-HuduBaseURL + Remove-HuduCompany + Remove-HuduCustomHeaders + Remove-HuduMagicDash + Remove-HuduPassword + Remove-HuduRelation + Remove-HuduUpload + Remove-HuduWebsite + Set-HuduArticle + Set-HuduArticleArchive + Set-HuduAsset + Set-HuduAssetArchive + Set-HuduAssetLayout + Set-HuduCompany + Set-HuduCompanyArchive + Set-HuduFolder + Set-HuduIntegrationMatcher + Set-HuduMagicDash + Set-HuduPassword + Set-HuduPasswordArchive + Set-HuduWebsite + + + + + Workflow + + + + + + + + + + + https://www.powershellgallery.com/api/v2 + PSGallery + NuGet + + + System.Management.Automation.PSCustomObject + System.Object + + + (c) 2021 Luke Whitelock. All rights reserved. + This module provides an interface to the Hudu Rest API further information can be found at https://github.com/lwhitelock/HuduAPI + False + True + True + 2653 + 1260331 + 24052 + 6/30/2024 3:42:36 AM -04:00 + 6/30/2024 3:42:36 AM -04:00 + 7/1/2024 8:11:32 PM -04:00 + PSModule PSFunction_Get-HuduActivityLogs PSCommand_Get-HuduActivityLogs PSFunction_Get-HuduApiKey PSCommand_Get-HuduApiKey PSFunction_Get-HuduAppInfo PSCommand_Get-HuduAppInfo PSFunction_Get-HuduArticles PSCommand_Get-HuduArticles PSFunction_Get-HuduAssetLayoutFieldID PSCommand_Get-HuduAssetLayoutFieldID PSFunction_Get-HuduAssetLayouts PSCommand_Get-HuduAssetLayouts PSFunction_Get-HuduAssets PSCommand_Get-HuduAssets PSFunction_Get-HuduBaseURL PSCommand_Get-HuduBaseURL PSFunction_Get-HuduCard PSCommand_Get-HuduCard PSFunction_Get-HuduCompanies PSCommand_Get-HuduCompanies PSFunction_Get-HuduExpirations PSCommand_Get-HuduExpirations PSFunction_Get-HuduFolderMap PSCommand_Get-HuduFolderMap PSFunction_Get-HuduFolders PSCommand_Get-HuduFolders PSFunction_Get-HuduIntegrationMatchers PSCommand_Get-HuduIntegrationMatchers PSFunction_Get-HuduMagicDashes PSCommand_Get-HuduMagicDashes PSFunction_Get-HuduObjectByUrl PSCommand_Get-HuduObjectByUrl PSFunction_Get-HuduPasswordFolders PSCommand_Get-HuduPasswordFolders PSFunction_Get-HuduPasswords PSCommand_Get-HuduPasswords PSFunction_Get-HuduProcesses PSCommand_Get-HuduProcesses PSFunction_Get-HuduPublicPhotos PSCommand_Get-HuduPublicPhotos PSFunction_Get-HuduRelations PSCommand_Get-HuduRelations PSFunction_Get-HuduUploads PSCommand_Get-HuduUploads PSFunction_Get-HuduWebsites PSCommand_Get-HuduWebsites PSFunction_Initialize-HuduFolder PSCommand_Initialize-HuduFolder PSFunction_Move-HuduAssetsToNewLayout PSCommand_Move-HuduAssetsToNewLayout PSFunction_New-HuduAPIKey PSCommand_New-HuduAPIKey PSFunction_New-HuduArticle PSCommand_New-HuduArticle PSFunction_New-HuduAsset PSCommand_New-HuduAsset PSFunction_New-HuduAssetLayout PSCommand_New-HuduAssetLayout PSFunction_New-HuduBaseURL PSCommand_New-HuduBaseURL PSFunction_New-HuduCompany PSCommand_New-HuduCompany PSFunction_New-HuduCustomHeaders PSCommand_New-HuduCustomHeaders PSFunction_New-HuduFolder PSCommand_New-HuduFolder PSFunction_New-HuduPassword PSCommand_New-HuduPassword PSFunction_New-HuduPublicPhoto PSCommand_New-HuduPublicPhoto PSFunction_New-HuduRelation PSCommand_New-HuduRelation PSFunction_New-HuduUpload PSCommand_New-HuduUpload PSFunction_New-HuduWebsite PSCommand_New-HuduWebsite PSFunction_Remove-HuduAPIKey PSCommand_Remove-HuduAPIKey PSFunction_Remove-HuduArticle PSCommand_Remove-HuduArticle PSFunction_Remove-HuduAsset PSCommand_Remove-HuduAsset PSFunction_Remove-HuduBaseURL PSCommand_Remove-HuduBaseURL PSFunction_Remove-HuduCompany PSCommand_Remove-HuduCompany PSFunction_Remove-HuduCustomHeaders PSCommand_Remove-HuduCustomHeaders PSFunction_Remove-HuduMagicDash PSCommand_Remove-HuduMagicDash PSFunction_Remove-HuduPassword PSCommand_Remove-HuduPassword PSFunction_Remove-HuduRelation PSCommand_Remove-HuduRelation PSFunction_Remove-HuduUpload PSCommand_Remove-HuduUpload PSFunction_Remove-HuduWebsite PSCommand_Remove-HuduWebsite PSFunction_Set-HuduArticle PSCommand_Set-HuduArticle PSFunction_Set-HuduArticleArchive PSCommand_Set-HuduArticleArchive PSFunction_Set-HuduAsset PSCommand_Set-HuduAsset PSFunction_Set-HuduAssetArchive PSCommand_Set-HuduAssetArchive PSFunction_Set-HuduAssetLayout PSCommand_Set-HuduAssetLayout PSFunction_Set-HuduCompany PSCommand_Set-HuduCompany PSFunction_Set-HuduCompanyArchive PSCommand_Set-HuduCompanyArchive PSFunction_Set-HuduFolder PSCommand_Set-HuduFolder PSFunction_Set-HuduIntegrationMatcher PSCommand_Set-HuduIntegrationMatcher PSFunction_Set-HuduMagicDash PSCommand_Set-HuduMagicDash PSFunction_Set-HuduPassword PSCommand_Set-HuduPassword PSFunction_Set-HuduPasswordArchive PSCommand_Set-HuduPasswordArchive PSFunction_Set-HuduWebsite PSCommand_Set-HuduWebsite PSIncludes_Function + False + 2024-07-01T20:11:32Z + 2.4.9 + Luke Whitelock + false + Module + HuduAPI.nuspec|HuduAPI.psm1|HuduAPI.psd1 + 4e0a4feb-1658-416b-b854-ab9e913a56de + 7.0 + MSPP + + + C:\GitHub\CIPP Workspace\CIPP-API\Modules\HuduAPI\2.4.9 +
      +
      +
      diff --git a/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml new file mode 100644 index 000000000000..d2ff920950f6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml @@ -0,0 +1,274 @@ + + + + TeamSettings + + Microsoft.Teams.PowerShell.TeamsCmdlets.Model.TeamSettings + + + + + 36 + + + 18 + + + 11 + + + 9 + + + 18 + + + 18 + + + + + + + GroupId + + + DisplayName + + + Visibility + + + Archived + + + MailNickName + + + Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/LICENSE.txt b/Modules/MicrosoftTeams/7.4.0/LICENSE.txt new file mode 100644 index 000000000000..8b9ecf6f5734 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/LICENSE.txt @@ -0,0 +1,76 @@ +Your use of the Microsoft Teams PowerShell is subject to the terms and conditions of the agreement you agreed to when you signed up for the Microsoft Teams subscription and by which you acquired a license for the software. For instance, if you are: + +• a volume license customer, use of this software is subject to your volume license agreement. +• a Microsoft Online Subscription customer, use of this software is subject to the Microsoft Online Subscription agreement. + +You may not use the service or software if you have not validly acquired a license from Microsoft or its licensed distributors. + +----------------START OF THIRD PARTY NOTICE-------------------------------- +The software includes the Polly library ("Polly"). The New BSD License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Copyright (c) 2015-2020, App vNext +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of App vNext nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +---END OF LICENSE--------- + +The software includes the Polly.Contrib.WaitAndRetry library ("Polly-Contrib"). The New BSD License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Copyright (c) 2015-2020, App vNext and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of App vNext nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +---END OF LICENSE--------- + +The software includes Newtonsoft.Json. The MIT License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Newtonsoft.Json + +The MIT License (MIT) +Copyright (c) 2007 James Newton-King +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +---END OF LICENSE--------- + +-------------END OF THIRD PARTY NOTICE---------------------------------------- \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml new file mode 100644 index 000000000000..a44cdaf81c63 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml differ diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml new file mode 100644 index 000000000000..4c0e60bf87d4 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml @@ -0,0 +1,17351 @@ + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.XdsConfiguration + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.XdsConfiguration + + + + + + + + + + + + + + + Identity + + + BeforeJson + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BridgeId + + + City + + + IsShared + + + Number + + + PrimaryLanguage + + + SecondaryLanguages + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadAssignedPlan + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadAssignedPlan + + + + + + + + + + + + + + + + + + + + + AssignedDateTime + + + CapabilityStatus + + + Service + + + ServicePlanId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedPlan1 + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedPlan1 + + + + + + + + + + + + + + + + + + + + + + + + + + + AssignedTimestamp + + + Capability + + + CapabilityStatus + + + ServiceInstance + + + ServicePlanId + + + SubscribedPlanId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LoginPwd + + + LoginUserName + + + Type + + + AdminApiUrl + + + CookieAuthUrl + + + EssApiUrl + + + FederatedAuthUrl + + + RetailWebApiUrl + + + SiteManagerUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LoginPwd + + + LoginUserName + + + Type + + + ApiUrl + + + AppKey + + + ClientId + + + ClientSecret + + + SsoUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportResponseReferenceLinks + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportResponseReferenceLinks + + + + + + + + + + + + Item + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantAssignedPlan + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantAssignedPlan + + + + + + + + + + + + + + + + + + + + + + + + + + + AssignedTimestamp + + + Capability + + + CapabilityStatus + + + ServiceInstance + + + ServicePlanId + + + SubscribedPlanId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedTelephoneNumber + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedTelephoneNumber + + + + + + + + + + + + + + + AssignmentCategory + + + TelephoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicyAssignment + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicyAssignment + + + + + + + + + + + + PolicyType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Number + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActivationState + + + BridgeNumber + + + CallingProfile + + + CityCode + + + CivicAddressId + + + DisplayNumber + + + InventoryType + + + IsManagedByServiceDesk + + + LocationId + + + O365Region + + + PortInOrderStatus + + + SourceType + + + TargetType + + + TenantId + + + UserId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PolicyAssignment + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PolicyAssignment + + + + + + + + + + + + + + + + + + + + + DisplayName + + + AssignmentType + + + PolicyId + + + GroupId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ProvisionedPlan + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ProvisionedPlan + + + + + + + + + + + + + + + + + + CapabilityStatus + + + ProvisioningStatus + + + Service + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAssignedPlan + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAssignedPlan + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AssignedTimestamp + + + Capability + + + CapabilityStatus + + + GracePeriodExpiryDate + + + IsInGracePeriod + + + ServiceInstance + + + ServicePlanId + + + SubscribedPlanId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserPolicyDefinition + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserPolicyDefinition + + + + + + + + + + + + + + + Authority + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserProvisionedPlan + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserProvisionedPlan + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AssignedTimestamp + + + Capability + + + CapabilityStatus + + + ProvisionedTimestamp + + + ProvisioningStatus + + + ServiceInstance + + + ServicePlanId + + + SubscribedPlanId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserValidationError + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserValidationError + + + + + + + + + + + + + + + ErrorCode + + + ErrorDescription + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadAssignedLicense + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadAssignedLicense + + + + + + + + + + + + + + + DisabledPlan + + + SkuId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadProvisionedPlans + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadProvisionedPlans + + + + + + + + + + + + + + + + + + CapabilityStatus + + + ProvisioningStatus + + + Service + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadProvisionErrors + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadProvisionErrors + + + + + + + + + + + + + + + + + + + + + ErrorDetail + + + Resolved + + + Service + + + Timestamp + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadUserAssignedPlan + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadUserAssignedPlan + + + + + + + + + + + + + + + + + + + + + AssignedTimestamp + + + CapabilityStatus + + + Service + + + ServicePlanId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadVerifiedDomains + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadVerifiedDomains + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Agent + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Agent + + + + + + + + + + + + + + + ObjectId + + + OptIn + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItem + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItem + + + + + + + + + + + + + + + + + + + + + + + + Code + + + CorrelationId + + + Message + + + Target + + + TimeStampUtc + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemAutoGenerated + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemAutoGenerated + + + + + + + + + + + + + + + + + + + + + + + + Code + + + CorrelationId + + + Message + + + Target + + + TimeStampUtc + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemAutoGenerated2 + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemAutoGenerated2 + + + + + + + + + + + + + + + + + + + + + + + + Code + + + CorrelationId + + + Message + + + Target + + + TimeStampUtc + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemObject + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemObject + + + + + + + + + + + + + + + + + + + + + + + + Code + + + CorrelationId + + + Message + + + Target + + + TimeStampUtc + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AppAccessRequestConfig + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AppAccessRequestConfig + + + + + + + + + + + + + + + AdminInstructionMessage + + + ApprovalPortalUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationEndpointRoutingDetails + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationEndpointRoutingDetails + + + + + + + + + + + + + + + + + + ApplicationEndpointId + + + ApplicationId + + + CallbackUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstance + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstance + + + + + + + + + + + + + + + + + + Id + + + Name + + + TelephoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceAssociation + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceAssociation + + + + + + + + + + + + + + + + + + + + + ApplicationConfigurationType + + + CallPriority + + + ConfigurationId + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceAutoGenerated + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceAutoGenerated + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AcsResourceId + + + ApplicationId + + + DisplayName + + + ObjectId + + + PhoneNumber + + + TenantId + + + UserPrincipalName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceCreateRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceCreateRequest + + + + + + + + + + + + + + + + + + ApplicationId + + + DisplayName + + + UserPrincipalName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceSearchResults + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceSearchResults + + + + + + + + + + + + SkipToken + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceUpdateRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceUpdateRequest + + + + + + + + + + + + + + + + + + + + + AcsResourceId + + + ApplicationId + + + DisplayName + + + OnpremPhoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationObject + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationObject + + + + + + + + + + + + + + + + + + + + + Context + + + Id + + + IsAppLevelAutoInstallEnabled + + + IsEnabled + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedLicense + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedLicense + + + + + + + + + + + + + + + DisabledPlan + + + SkuId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AudioFile + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AudioFile + + + + + + + + + + + + + + + + + + DownloadUri + + + FileName + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AudioFileDto + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AudioFileDto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationId + + + GroupId + + + Id + + + Content + + + ContextId + + + ConvertedFilename + + + DeletionTimestampOffset + + + DownloadUri + + + DownloadUriExpiryTimestampOffset + + + Duration + + + LastAccessedTimestampOffset + + + OriginalFilename + + + UploadedTimestampOffset + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AutoAttendant + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AutoAttendant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationInstance + + + AuthorizedUser + + + DialByNameResourceId + + + HideAuthorizedUser + + + Id + + + LanguageId + + + MainlineAttendantAgentVoiceId + + + MainlineAttendantEnabled + + + Name + + + TenantId + + + TimeZoneId + + + UserNameExtension + + + VoiceId + + + VoiceResponseEnabled + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchAssignBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchAssignBody + + + + + + + + + + + + Identity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchAssignPayload + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchAssignPayload + + + + + + + + + + + + Identity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchJobStatus + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchJobStatus + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OperationId + + + OperationName + + + OverallStatus + + + CreatedBy + + + CreatedTime + + + CompletedTime + + + CompletedCount + + + ErrorCount + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchOperationId + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchOperationId + + + + + + + + + + + + OperationId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BeginMoveRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BeginMoveRequestBody + + + + + + + + + + + + + + + MajorVersion + + + UserSipUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BridgeUpdateRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BridgeUpdateRequest + + + + + + + + + + + + + + + + + + DefaultServiceNumber + + + Name + + + SetDefault + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CacheClearRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CacheClearRequest + + + + + + + + + + + + + + + KeysToDelete + + + Region + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CacheClearResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CacheClearResponse + + + + + + + + + + + + + + + FailedKeys + + + Region + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallableEntity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallableEntity + + + + + + + + + + + + + + + + + + + + + + + + CallPriority + + + EnableSharedVoicemailSystemPromptSuppression + + + EnableTranscription + + + Id + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallFlow + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallFlow + + + + + + + + + + + + + + + + + + ForceListenMenuEnabled + + + Id + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupDetails + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupDetails + + + + + + + + + + + + + + + + + + Delay + + + Order + + + Target + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupMembershipDetails + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupMembershipDetails + + + + + + + + + + + + + + + CallGroupOwnerId + + + NotificationSetting + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupMembershipSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupMembershipSettings + + + + + + + + + + + + CallGroupNotificationOverride + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallHandlingAssociation + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallHandlingAssociation + + + + + + + + + + + + + + + + + + + + + + + + CallFlowId + + + Enabled + + + Priority + + + ScheduleId + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallQueue + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallQueue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AgentAlertTime + + + AgentsCapped + + + AgentsInSyncWithDistributionList + + + AllowOptOut + + + ApplicationInstance + + + AuthorizedUser + + + CallToAgentRatioThresholdBeforeOfferingCallback + + + CallbackOfferAudioFilePromptFileName + + + CallbackOfferAudioFilePromptResourceId + + + CallbackOfferTextToSpeechPrompt + + + CallbackRequestDtmf + + + ComplianceRecordingForCallQueueTemplateId + + + ConferenceMode + + + CustomAudioFileAnnouncementForCr + + + CustomAudioFileAnnouncementForCrFailure + + + Description + + + DistributionList + + + DistributionListsLastExpanded + + + EnableNoAgentSharedVoicemailSystemPromptSuppression + + + EnableNoAgentSharedVoicemailTranscription + + + EnableOverflowSharedVoicemailSystemPromptSuppression + + + EnableOverflowSharedVoicemailTranscription + + + EnableResourceAccountsForObo + + + EnableTimeoutSharedVoicemailSystemPromptSuppression + + + EnableTimeoutSharedVoicemailTranscription + + + HideAuthorizedUser + + + Identity + + + IsCallbackEnabled + + + LanguageId + + + MusicOnHoldFileDownloadUri + + + MusicOnHoldFileName + + + MusicOnHoldResourceId + + + Name + + + NoAgentAction + + + NoAgentActionCallPriority + + + NoAgentApplyTo + + + NoAgentDisconnectAudioFilePrompt + + + NoAgentDisconnectAudioFilePromptFileName + + + NoAgentDisconnectTextToSpeechPrompt + + + NoAgentRedirectPersonAudioFilePrompt + + + NoAgentRedirectPersonAudioFilePromptFileName + + + NoAgentRedirectPersonTextToSpeechPrompt + + + NoAgentRedirectPhoneNumberAudioFilePrompt + + + NoAgentRedirectPhoneNumberAudioFilePromptFileName + + + NoAgentRedirectPhoneNumberTextToSpeechPrompt + + + NoAgentRedirectVoiceAppAudioFilePrompt + + + NoAgentRedirectVoiceAppAudioFilePromptFileName + + + NoAgentRedirectVoiceAppTextToSpeechPrompt + + + NoAgentRedirectVoicemailAudioFilePrompt + + + NoAgentRedirectVoicemailAudioFilePromptFileName + + + NoAgentRedirectVoicemailTextToSpeechPrompt + + + NoAgentSharedVoicemailAudioFilePrompt + + + NoAgentSharedVoicemailAudioFilePromptFileName + + + NoAgentSharedVoicemailTextToSpeechPrompt + + + NumberOfCallsInQueueBeforeOfferingCallback + + + OverflowAction + + + OverflowActionCallPriority + + + OverflowDisconnectAudioFilePrompt + + + OverflowDisconnectAudioFilePromptFileName + + + OverflowDisconnectTextToSpeechPrompt + + + OverflowRedirectPersonAudioFilePrompt + + + OverflowRedirectPersonAudioFilePromptFileName + + + OverflowRedirectPersonTextToSpeechPrompt + + + OverflowRedirectPhoneNumberAudioFilePrompt + + + OverflowRedirectPhoneNumberAudioFilePromptFileName + + + OverflowRedirectPhoneNumberTextToSpeechPrompt + + + OverflowRedirectVoiceAppAudioFilePrompt + + + OverflowRedirectVoiceAppAudioFilePromptFileName + + + OverflowRedirectVoiceAppTextToSpeechPrompt + + + OverflowRedirectVoicemailAudioFilePrompt + + + OverflowRedirectVoicemailAudioFilePromptFileName + + + OverflowRedirectVoicemailTextToSpeechPrompt + + + OverflowSharedVoicemailAudioFilePrompt + + + OverflowSharedVoicemailAudioFilePromptFileName + + + OverflowSharedVoicemailTextToSpeechPrompt + + + OverflowThreshold + + + PresenceAwareRouting + + + RoutingMethod + + + ServiceLevelThresholdResponseTimeInSecond + + + SharedCallQueueHistoryTemplateId + + + ShiftsSchedulingGroupId + + + ShiftsTeamId + + + ShouldOverwriteCallableChannelProperty + + + TenantId + + + TextAnnouncementForCr + + + TextAnnouncementForCrFailure + + + ThreadId + + + TimeoutAction + + + TimeoutActionCallPriority + + + TimeoutDisconnectAudioFilePrompt + + + TimeoutDisconnectAudioFilePromptFileName + + + TimeoutDisconnectTextToSpeechPrompt + + + TimeoutRedirectPersonAudioFilePrompt + + + TimeoutRedirectPersonAudioFilePromptFileName + + + TimeoutRedirectPersonTextToSpeechPrompt + + + TimeoutRedirectPhoneNumberAudioFilePrompt + + + TimeoutRedirectPhoneNumberAudioFilePromptFileName + + + TimeoutRedirectPhoneNumberTextToSpeechPrompt + + + TimeoutRedirectVoiceAppAudioFilePrompt + + + TimeoutRedirectVoiceAppAudioFilePromptFileName + + + TimeoutRedirectVoiceAppTextToSpeechPrompt + + + TimeoutRedirectVoicemailAudioFilePrompt + + + TimeoutRedirectVoicemailAudioFilePromptFileName + + + TimeoutRedirectVoicemailTextToSpeechPrompt + + + TimeoutSharedVoicemailAudioFilePrompt + + + TimeoutSharedVoicemailAudioFilePromptFileName + + + TimeoutSharedVoicemailTextToSpeechPrompt + + + TimeoutThreshold + + + UseDefaultMusicOnHold + + + User + + + WaitTimeBeforeOfferingCallbackInSecond + + + WelcomeMusicFileDownloadUri + + + WelcomeMusicFileName + + + WelcomeMusicResourceId + + + WelcomeTextToSpeechPrompt + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallQueueStatistic + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallQueueStatistic + + + + + + + + + + + + + + + StatName + + + StatValue + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CancellationToken + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CancellationToken + + + + + + + + + + + + + + + CanBeCanceled + + + IsCancellationRequested + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ChannelTabTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ChannelTabTemplate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Key + + + MessageId + + + Name + + + SortOrderIndex + + + TeamsAppId + + + WebUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ChannelTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ChannelTemplate + + + + + + + + + + + + + + + + + + + + + Description + + + DisplayName + + + Id + + + IsFavoriteByDefault + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CivicAddress + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CivicAddress + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AdditionalLocationInfo + + + City + + + CityAlias + + + CivicAddressId + + + CompanyName + + + CompanyTaxId + + + Confidence + + + CountryOrRegion + + + CountyOrDistrict + + + DefaultLocationId + + + Description + + + Elin + + + HouseNumber + + + HouseNumberSuffix + + + Latitude + + + Longitude + + + NumberOfTelephoneNumbers + + + NumberOfVoiceUsers + + + PartnerId + + + PostDirectional + + + PostalCode + + + PreDirectional + + + StateOrProvince + + + StreetName + + + StreetSuffix + + + TenantId + + + ValidationStatus + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ClearScheduleRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ClearScheduleRequest + + + + + + + + + + + + + + + + + + + + + + + + ClearSchedulingGroup + + + DesignatedActorId + + + EntityType + + + TeamId + + + TimeZone + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudAudioConferencingProviderInfo + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudAudioConferencingProviderInfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + Domain + + + Name + + + ParticipantPassCode + + + TollFreeNumber + + + TollNumber + + + Url + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudCallDataConnection + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudCallDataConnection + + + + + + + + + + + + Token + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudMSRtcServiceAttributes + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudMSRtcServiceAttributes + + + + + + + + + + + + + + + + + + + + + ApplicationOption + + + DeploymentLocator + + + HideFromAddressList + + + OptionFlag + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CompanyPartnership + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CompanyPartnership + + + + + + + + + + + + + + + + + + + + + LoggingEnabled + + + PartnerContextId + + + PartnerType + + + SupportPartner + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CompleteMoveRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CompleteMoveRequestBody + + + + + + + + + + + + + + + MajorVersion + + + UserSipUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ComplianceRecordingForCallQueueDomainModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ComplianceRecordingForCallQueueDomainModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BotConcurrentInvitationCount + + + BotId + + + BotRequiredBeforeCall + + + BotRequiredDuringCall + + + Description + + + Id + + + Name + + + PairedApplication + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ComplianceRecordingForCallQueueDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ComplianceRecordingForCallQueueDtoModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BotId + + + ConcurrentInvitationCount + + + Description + + + Id + + + Name + + + PairedApplication + + + RequiredBeforeCall + + + RequiredDuringCall + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingBridge + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingBridge + + + + + + + + + + + + + + + + + + + + + + + + Identity + + + IsDefault + + + IsShared + + + Name + + + Region + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingProperties + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowPstnOnlyMeeting + + + AllowTollFreeDialIn + + + BridgeId + + + BridgeName + + + ConferenceId + + + ObjectId + + + ServiceNumber + + + TollFreeServiceNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingUser + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingUser + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowPstnOnlyMeeting + + + AllowTollFreeDialIn + + + BridgeId + + + BridgeName + + + ConferenceId + + + DefaultTollFreeNumber + + + DefaultTollNumber + + + DisplayName + + + Identity + + + LeaderPin + + + ServiceNumber + + + SipAddress + + + TenantId + + + TollFreeServiceNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingUserSearchResults + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingUserSearchResults + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConfigApiBasedCmdletsIdentity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AppId + + + AudioFileId + + + Bssid + + + ChassisId + + + CivicAddressId + + + ConfigName + + + ConfigType + + + ConnectionId + + + ConnectorInstanceId + + + Country + + + DialedNumber + + + EndpointId + + + ErrorReportId + + + GroupId + + + Id + + + Identity + + + Locale + + + LocationId + + + MemberId + + + Name + + + ObjectId + + + OdataId + + + OperationId + + + OrchestrationId + + + OrderId + + + OwnerId + + + PackageName + + + PartitionKey + + + PolicyType + + + PublicTemplateLocale + + + Region + + + SubnetId + + + Table + + + TeamId + + + TelephoneNumber + + + TenantId + + + UserId + + + Version + + + WfmTeamId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConfigDefinition + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConfigDefinition + + + + + + + + + + + + + + + ConfigName + + + ConfigType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceBaseRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceBaseRequest + + + + + + + + + + + + + + + ConnectorId + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + ConnectionId + + + ConnectorAdminEmail + + + DesignatedActorId + + + Name + + + State + + + SyncFrequencyInMin + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ConnectionId + + + ConnectorAdminEmail + + + ConnectorId + + + CreatedDateTime + + + DesignatedActorId + + + Etag + + + Id + + + LastModifiedDateTime + + + Name + + + State + + + SyncFrequencyInMin + + + TenantId + + + WorkforceIntegrationId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorResponse + + + + + + + + + + + + + + + + + + Id + + + Name + + + Version + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + AdminApiUrl + + + CookieAuthUrl + + + EssApiUrl + + + FederatedAuthUrl + + + RetailWebApiUrl + + + SiteManagerUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest + + + + + + + + + + + + + + + + + + LoginPwd + + + LoginUserName + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AdminApiUrl + + + ApiUrl + + + AppKey + + + ClientId + + + CookieAuthUrl + + + EssApiUrl + + + FederatedAuthUrl + + + RetailWebApiUrl + + + SiteManagerUrl + + + SsoUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsResponse + + + + + + + + + + + + + + + + + + ApiUrl + + + ClientId + + + SsoUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectPowershellTelemetry + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectPowershellTelemetry + + + + + + + + + + + + + + + + + + + + + ConfigApiPowershellModuleVersion + + + MicrosoftTeamsPsVersion + + + SfBOnlineConnectorPsversion + + + TeamsModuleAuthTypeUsed + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateApplicationInstanceAssociationsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateApplicationInstanceAssociationsRequest + + + + + + + + + + + + + + + + + + + + + CallPriority + + + ConfigurationId + + + ConfigurationType + + + EndpointsId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAppointmentBookingFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAppointmentBookingFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + Description + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAutoAttendantRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAutoAttendantRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AuthorizedUser + + + HideAuthorizedUser + + + LanguageId + + + MainlineAttendantAgentVoiceId + + + MainlineAttendantEnabled + + + Name + + + TimeZoneId + + + UserNameExtension + + + VoiceId + + + VoiceResponseEnabled + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallableEntityRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallableEntityRequest + + + + + + + + + + + + + + + + + + + + + + + + CallPriority + + + EnableSharedVoicemailSystemPromptSuppression + + + EnableTranscription + + + Id + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallFlowRequest + + + + + + + + + + + + + + + ForceListenMenuEnabled + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallHandlingAssociationRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallHandlingAssociationRequest + + + + + + + + + + + + + + + + + + + + + CallFlowId + + + Enabled + + + ScheduleId + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallQueueRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallQueueRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AgentAlertTime + + + AllowOptOut + + + AuthorizedUser + + + CallToAgentRatioThresholdBeforeOfferingCallback + + + CallbackEmailNotificationTarget + + + CallbackOfferAudioFilePromptResourceId + + + CallbackOfferTextToSpeechPrompt + + + CallbackRequestDtmf + + + ComplianceRecordingForCallQueueId + + + ConferenceMode + + + CustomAudioFileAnnouncementForCr + + + CustomAudioFileAnnouncementForCrFailure + + + DistributionList + + + EnableNoAgentSharedVoicemailSystemPromptSuppression + + + EnableNoAgentSharedVoicemailTranscription + + + EnableOverflowSharedVoicemailSystemPromptSuppression + + + EnableOverflowSharedVoicemailTranscription + + + EnableResourceAccountsForObo + + + EnableTimeoutSharedVoicemailSystemPromptSuppression + + + EnableTimeoutSharedVoicemailTranscription + + + HideAuthorizedUser + + + IsCallbackEnabled + + + LanguageId + + + MusicOnHoldAudioFileId + + + Name + + + NoAgentAction + + + NoAgentActionCallPriority + + + NoAgentActionTarget + + + NoAgentApplyTo + + + NoAgentDisconnectAudioFilePrompt + + + NoAgentDisconnectTextToSpeechPrompt + + + NoAgentRedirectPersonAudioFilePrompt + + + NoAgentRedirectPersonTextToSpeechPrompt + + + NoAgentRedirectPhoneNumberAudioFilePrompt + + + NoAgentRedirectPhoneNumberTextToSpeechPrompt + + + NoAgentRedirectVoiceAppAudioFilePrompt + + + NoAgentRedirectVoiceAppTextToSpeechPrompt + + + NoAgentRedirectVoicemailAudioFilePrompt + + + NoAgentRedirectVoicemailTextToSpeechPrompt + + + NoAgentSharedVoicemailAudioFilePrompt + + + NoAgentSharedVoicemailTextToSpeechPrompt + + + NumberOfCallsInQueueBeforeOfferingCallback + + + OboResourceAccountId + + + OverflowAction + + + OverflowActionCallPriority + + + OverflowActionTarget + + + OverflowDisconnectAudioFilePrompt + + + OverflowDisconnectTextToSpeechPrompt + + + OverflowRedirectPersonAudioFilePrompt + + + OverflowRedirectPersonTextToSpeechPrompt + + + OverflowRedirectPhoneNumberAudioFilePrompt + + + OverflowRedirectPhoneNumberTextToSpeechPrompt + + + OverflowRedirectVoiceAppAudioFilePrompt + + + OverflowRedirectVoiceAppTextToSpeechPrompt + + + OverflowRedirectVoicemailAudioFilePrompt + + + OverflowRedirectVoicemailTextToSpeechPrompt + + + OverflowSharedVoicemailAudioFilePrompt + + + OverflowSharedVoicemailTextToSpeechPrompt + + + OverflowThreshold + + + PresenceAwareRouting + + + RoutingMethod + + + ServiceLevelThresholdResponseTimeInSecond + + + SharedCallQueueHistoryId + + + ShiftsSchedulingGroupId + + + ShiftsTeamId + + + ShouldOverwriteCallableChannelProperty + + + TextAnnouncementForCr + + + TextAnnouncementForCrFailure + + + ThreadId + + + TimeoutAction + + + TimeoutActionCallPriority + + + TimeoutActionTarget + + + TimeoutDisconnectAudioFilePrompt + + + TimeoutDisconnectTextToSpeechPrompt + + + TimeoutRedirectPersonAudioFilePrompt + + + TimeoutRedirectPersonTextToSpeechPrompt + + + TimeoutRedirectPhoneNumberAudioFilePrompt + + + TimeoutRedirectPhoneNumberTextToSpeechPrompt + + + TimeoutRedirectVoiceAppAudioFilePrompt + + + TimeoutRedirectVoiceAppTextToSpeechPrompt + + + TimeoutRedirectVoicemailAudioFilePrompt + + + TimeoutRedirectVoicemailTextToSpeechPrompt + + + TimeoutSharedVoicemailAudioFilePrompt + + + TimeoutSharedVoicemailTextToSpeechPrompt + + + TimeoutThreshold + + + UseDefaultMusicOnHold + + + User + + + WaitTimeBeforeOfferingCallbackInSecond + + + WelcomeMusicAudioFileId + + + WelcomeTextToSpeechPrompt + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateComplianceRecordingForCallQueueRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateComplianceRecordingForCallQueueRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BotId + + + ConcurrentInvitationCount + + + Description + + + Name + + + PairedApplication + + + RequiredBeforeCall + + + RequiredDuringCall + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateDateTimeRangeRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateDateTimeRangeRequest + + + + + + + + + + + + + + + End + + + Start + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateGroupDialScopeRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateGroupDialScopeRequest + + + + + + + + + + + + GroupId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagRequest + + + + + + + + + + + + TagName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagsTemplateRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateIvrTagsTemplateRequest + + + + + + + + + + + + + + + Description + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMenuOptionRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMenuOptionRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Action + + + AgentTarget + + + AgentTargetTagTemplateId + + + AgentTargetType + + + Description + + + DtmfResponse + + + MainlineAttendantTarget + + + VoiceResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMenuRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMenuRequest + + + + + + + + + + + + + + + + + + DialByNameEnabled + + + DirectorySearchMethod + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateOrUpdateRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateOrUpdateRequestBody + + + + + + + + + + + + + + + + + + + + + EnableLobbyBackgroundBranding + + + EnableLobbyLogoBranding + + + EnableMeetingBackgroundImage + + + EnableNdiAssuranceSlate + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreatePromptRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreatePromptRequest + + + + + + + + + + + + + + + ActiveType + + + TextToSpeechPrompt + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateQuestionAnswerFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateQuestionAnswerFlowRequest + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + Description + + + KnowledgeBase + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateScheduleRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateScheduleRequest + + + + + + + + + + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateSharedCallQueueHistoryRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateSharedCallQueueHistoryRequest + + + + + + + + + + + + + + + + + + + + + AnsweredAndOutboundCall + + + Description + + + IncomingMissedCall + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateTeamFromTemplateResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateTeamFromTemplateResponse + + + + + + + + + + + + + + + + + + WorkflowId + + + GroupId + + + ThreadId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateTimeRangeRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateTimeRangeRequest + + + + + + + + + + + + + + + End + + + Start + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CustomHandlerPayload + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CustomHandlerPayload + + + + + + + + + + + + + + + HandlerFullyQualifiedName + + + Payload + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DateRange + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DateRange + + + + + + + + + + + + + + + EndDate + + + StartDate + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DateTimeRange + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DateTimeRange + + + + + + + + + + + + + + + End + + + Start + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DefaultHttpErrorResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DefaultHttpErrorResponse + + + + + + + + + + + + + + + Action + + + Code + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DelegateAllowedActions + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DelegateAllowedActions + + + + + + + + + + + + + + + + + + MakeCall + + + ManageSetting + + + ReceiveCall + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DelegationDetail + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DelegationDetail + + + + + + + + + + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DeploymentInfo + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DeploymentInfo + + + + + + + + + + + + + + + + + + + + + HostingProviderFqdn + + + MajorVersion + + + PresenceFqdn + + + RegistrarFqdn + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Details + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Details + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DiagnosticRecord + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DiagnosticRecord + + + + + + + + + + + + + + + Level + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Diagnostics + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Diagnostics + + + + + + + + + + + + + + + + + + + + + + + + + + + Code + + + CorrelationId + + + DebugContent + + + GenevaLogsUrl + + + Reason + + + SubCode + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialPlanRulesTestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialPlanRulesTestBody + + + + + + + + + + + + + + + + + + EffectiveTenantDialPlanName + + + Identity + + + TenantScopeOnly + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialPlanTestResult + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialPlanTestResult + + + + + + + + + + + + + + + MatchingRule + + + TranslatedNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialScope + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialScope + + + + + + + + + + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DictionaryOfString + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DictionaryOfString + + + + + + + + + + + + Item + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DsRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DsRequestBody + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DeploymentName + + + IsValidationRequest + + + ObjectClass + + + ObjectId + + + ObjectIds + + + ReSyncOption + + + ScenariosToSuppress + + + ServiceInstance + + + SynchronizeTenantWithAllObject + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicy + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicy + + + + + + + + + + + + + + + + + + PolicyType + + + PolicyName + + + PolicySource + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerReturnType + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerReturnType + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Content + + + CorrelationId + + + Country + + + IsCurrent + + + IsDebug + + + Locale + + + OriginalUserAgent + + + TargetStore + + + TenantId + + + UserAgent + + + Version + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerUserResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerUserResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Content + + + CorrelationId + + + Country + + + Locale + + + RespondedByObjectId + + + Response + + + ResponseTimestamp + + + Version + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerUserResponseInput + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerUserResponseInput + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Content + + + Country + + + ForceAccept + + + Locale + + + RespondedByObjectId + + + Response + + + ResponseTimestamp + + + Version + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EntityProperty + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EntityProperty + + + + + + + + + + + + + + + + + + Name + + + Type + + + Value + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorDetailsResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorDetailsResponse + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorObject + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorObject + + + + + + + + + + + + + + + + + + Action + + + Code + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReport + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReport + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Code + + + CreatedAt + + + Culture + + + ErrorType + + + Id + + + IntermediateIncident + + + Message + + + Operation + + + Parameter + + + Procedure + + + ResolvedAt + + + RevisitIntervalInMinute + + + RevisitedAt + + + ScheduleSequenceNumber + + + Severity + + + TeamId + + + TenantId + + + TotalIncident + + + Ttl + + + WfmConnectorInstanceId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportCreate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportCreate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Message + + + Operation + + + Parameter + + + Procedure + + + ReferenceLink + + + RevisitInterval + + + TeamId + + + TenantId + + + Ttl + + + WfmConnectorInstanceId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportReferenceLinks + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportReferenceLinks + + + + + + + + + + + + Item + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Code + + + ConnectionId + + + CreatedAt + + + Culture + + + ErrorNotificationSent + + + ErrorType + + + Id + + + IntermediateIncident + + + Message + + + Operation + + + Parameter + + + Procedure + + + ResolvedAt + + + ResolvedNotificationSentOn + + + RevisitIntervalInMinute + + + RevisitedAt + + + ScheduleSequenceNumber + + + Severity + + + TeamId + + + TenantId + + + TotalIncident + + + Ttl + + + WfmConnectorInstanceId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponse + + + + + + + + + + + + + + + + + + Action + + + Code + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated + + + + + + + + + + + + + + + + + + Action + + + Code + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated3 + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated3 + + + + + + + + + + + + + + + + + + Action + + + Code + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated4 + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated4 + + + + + + + + + + + + + + + + + + Action + + + Code + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated5 + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated5 + + + + + + + + + + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ExportHolidaysResult + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ExportHolidaysResult + + + + + + + + + + + + SerializedHolidayRecord + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FileContentDto + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FileContentDto + + + + + + + + + + + + Content + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FileItemTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FileItemTemplate + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + IsFolder + + + Name + + + PreviewUrl + + + Type + + + Url + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FlwoServiceModelsFlwosBatchRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FlwoServiceModelsFlwosBatchRequest + + + + + + + + + + + + + + + DeploymentCsv + + + UsersToNotify + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FlwoServiceModelsFlwosBatchRequestResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FlwoServiceModelsFlwosBatchRequestResponse + + + + + + + + + + + + + + + ExecutionId + + + InstanceId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ForwardingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ForwardingSettings + + + + + + + + + + + + + + + + + + + + + ForwardingType + + + IsEnabled + + + Target + + + TargetType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetApplicationInstanceAssociationResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetApplicationInstanceAssociationResponse + + + + + + + + + + + + + + + + + + + + + Id + + + ConfigurationType + + + ConfigurationId + + + CallPriority + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetCustomAppSettingResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetCustomAppSettingResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IsAppsEnabled + + + IsAppsPurchaseEnabled + + + IsExternalAppsEnabledByDefault + + + IsLicenseBasedPinnedAppsEnabled + + + IsSideloadedAppsInteractionEnabled + + + IsTenantWideAutoInstallEnabled + + + LobBackground + + + LobLogo + + + LobLogomark + + + LobTextColor + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetOperationResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetOperationResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CreatedDateTime + + + Id + + + LastActionDateTime + + + Status + + + TenantId + + + Type + + + WfmConnectorInstanceId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponse + + + + + + + + + + + + Status + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponseChannel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponseChannel + + + + + + + + + + + + + + + + + + + + + Index + + + Reference + + + Status + + + UpdateTimestamp + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponseItem + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponseItem + + + + + + + + + + + + + + + + + + + + + Index + + + Reference + + + Status + + + UpdateTimestamp + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GrantActionStatus + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GrantActionStatus + + + + + + + + + + + + + + + + + + Id + + + Result + + + State + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Group + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Group + + + + + + + + + + + + + + + DisplayName + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupAssignment + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupAssignment + + + + + + + + + + + + + + + + + + + + + + + + + + + GroupId + + + PolicyType + + + PolicyName + + + Priority + + + CreatedTime + + + CreatedBy + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupAssignPayload + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupAssignPayload + + + + + + + + + + + + + + + PolicyName + + + Priority + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupDialScope + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupDialScope + + + + + + + + + + + + GroupId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupGrantPayload + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupGrantPayload + + + + + + + + + + + + + + + PolicyName + + + Priority + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupUpdatePayload + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupUpdatePayload + + + + + + + + + + + + + + + PolicyName + + + Priority + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.HolidayVisualizationRecord + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.HolidayVisualizationRecord + + + + + + + + + + + + + + + Name + + + Year + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.HybridTelephoneNumber + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.HybridTelephoneNumber + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + O365Region + + + SourceType + + + TargetType + + + TelephoneNumber + + + UserId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ImportAutoAttendantHolidaysRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ImportAutoAttendantHolidaysRequest + + + + + + + + + + + + + + + + + + Id + + + SerializedHolidayRecord + + + TenantId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ImportHolidayStatus + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ImportHolidayStatus + + + + + + + + + + + + + + + + + + FailureReason + + + Name + + + Succeeded + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.InvitationTicket + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.InvitationTicket + + + + + + + + + + + + + + + Ticket + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagDtoModel + + + + + + + + + + + + TagName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagsTemplateDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IvrTagsTemplateDtoModel + + + + + + + + + + + + + + + + + + Description + + + Id + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.KeyValuePairStringItem + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.KeyValuePairStringItem + + + + + + + + + + + + + + + Key + + + Value + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Language + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Language + + + + + + + + + + + + + + + + + + DisplayName + + + Id + + + VoiceResponseSupported + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LicenseAssignmentState + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LicenseAssignmentState + + + + + + + + + + + + + + + + + + + + + + + + AssignedByGroup + + + DisabledPlan + + + Error + + + SkuId + + + State + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LobbyBackgroundBrandingModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LobbyBackgroundBrandingModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BackgroundImage + + + Id + + + IsDefault + + + Name + + + Status + + + ValidateNewRequest + + + ValidateUpdateRequest + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LobbyLogoBrandingModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LobbyLogoBrandingModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + IsDefault + + + LogoImage + + + Name + + + Status + + + ValidateNewRequest + + + ValidateUpdateRequest + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationInfo + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationInfo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + City + + + CityAlias + + + CivicAddressId + + + CompanyName + + + CompanyTaxId + + + Confidence + + + CountryOrRegion + + + Description + + + Elin + + + HouseNumber + + + HouseNumberSuffix + + + Latitude + + + Location + + + LocationId + + + Longitude + + + NumberOfTelephoneNumber + + + NumberOfVoiceUser + + + PostDirectional + + + PostalCode + + + PreDirectional + + + StateOrProvince + + + StreetName + + + StreetSuffix + + + TenantId + + + ValidationStatus + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationProperties + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationProperties + + + + + + + + + + + + + + + + + + + + + + + + Default + + + InitialDomain + + + Name + + + ServiceInstance + + + ServiceInstance1 + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationSchema + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationSchema + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + City + + + CityAlias + + + CivicAddressId + + + CompanyName + + + CompanyTaxId + + + Confidence + + + CountryOrRegion + + + CountyOrDistrict + + + Description + + + Elin + + + HouseNumber + + + HouseNumberSuffix + + + IsDefault + + + Latitude + + + Location + + + LocationId + + + Longitude + + + NumberOfTelephoneNumbers + + + NumberOfVoiceUsers + + + PartnerId + + + PostDirectional + + + PostalCode + + + PreDirectional + + + StateOrProvince + + + StreetName + + + StreetSuffix + + + TenantId + + + ValidationStatus + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantAppointmentBookingFlow + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantAppointmentBookingFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + ConfigurationId + + + Description + + + Identity + + + Name + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantFlowDomainModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantFlowDomainModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + ConfigurationId + + + Description + + + Identity + + + KnowledgeBase + + + Name + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantQuestionAnswerFlow + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantQuestionAnswerFlow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ConfigurationId + + + Description + + + Identity + + + KnowledgeBase + + + Name + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasSchemaResultTypes + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasSchemaResultTypes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + IsTombstone + + + TenantId + + + UpdatedBy + + + UserId + + + Version + + + VersionCreatedTime + + + VersionObsoleteTime + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasTenantProperties + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasTenantProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + C + + + CompanyTag + + + DirSyncEnabled + + + DisabledDomain + + + DisplayName + + + L + + + PostalCode + + + PreferredLanguage + + + SchemaName + + + ServiceInstance + + + St + + + Street + + + TelephoneNumber + + + VerifiedDomain + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasUserAuthoredPropsProperties + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasUserAuthoredPropsProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EffectiveDataRegion + + + HostingProvider + + + PartitioningScheme + + + RegistrarPool + + + SchemaName + + + SipAddress + + + SipAddressStatus + + + SipDomain + + + SipEnabled + + + SourceOfAuthority + + + UserCategory + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasUserProperties + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasUserProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AccountEnabled + + + Department + + + DisplayName + + + GivenName + + + LastSyncTime + + + Mail + + + MailNickname + + + PreferredLanguage + + + ProxyAddress + + + SchemaName + + + ServiceInstance + + + Sn + + + StsRefreshTokensValidFrom + + + Title + + + UsageLocation + + + UserPrincipalName + + + UserType + + + WindowsLiveNetId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MediaFileDto + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MediaFileDto + + + + + + + + + + + + + + + + + + ApplicationId + + + GroupId + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingBackgroundImageModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingBackgroundImageModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + IsDefault + + + MeetingBackgroundImage + + + Name + + + Order + + + Status + + + ValidateNewRequest + + + ValidateUpdateRequest + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStateSummary + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStateSummary + + + + + + + + + + + + + + + State + + + UserCount + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStatusResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStatusResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CorrelationId + + + CreateDate + + + EnqueueReason + + + FailedMeeting + + + InvitesUpdate + + + LastMessage + + + MigrationType + + + ModifiedDate + + + RetryCount + + + State + + + SucceededMeeting + + + TotalMeeting + + + UserId + + + UserPrincipalName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStatusSummaryResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStatusSummaryResponse + + + + + + + + + + + + MigrationType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationTransactionHistoryResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationTransactionHistoryResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CorrelationId + + + FailedMeeting + + + InternalErrorMessage + + + InvitesUpdated + + + LastErrorMessage + + + ModifiedDate + + + Operation + + + State + + + SucceededMeeting + + + TotalMeeting + + + TriggerSource + + + UserId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Menu + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Menu + + + + + + + + + + + + + + + + + + DialByNameEnabled + + + DirectorySearchMethod + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MenuOption + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MenuOption + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Action + + + AgentTarget + + + AgentTargetTagTemplateId + + + AgentTargetType + + + Description + + + DtmfResponse + + + MainlineAttendantTarget + + + VoiceResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MigrationData + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MigrationData + + + + + + + + + + + + Datastr + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NdiAssuranceSlateModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NdiAssuranceSlateModel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + IsDefault + + + Name + + + NdiImage + + + Status + + + ValidateNewRequest + + + ValidateUpdateRequest + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NewCivicAddress + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NewCivicAddress + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CityOrTown + + + CityOrTownAlias + + + CompanyId + + + CompanyName + + + Confidence + + + Country + + + Description + + + Elin + + + HouseNumber + + + HouseNumberSuffix + + + Latitude + + + Longitude + + + PostDirectional + + + PostalOrZipCode + + + PreDirectional + + + StateOrProvince + + + StreetName + + + StreetSuffix + + + ValidationStatus + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NewLocation + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NewLocation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AdditionalInfo + + + CityOrTown + + + CityOrTownAlias + + + CivicAddressId + + + CompanyId + + + CompanyName + + + Confidence + + + Country + + + CountyOrDistrict + + + Description + + + Elin + + + HouseNumber + + + HouseNumberSuffix + + + IsDefault + + + Latitude + + + Longitude + + + PartnerId + + + PostDirectional + + + PostalOrZipCode + + + PreDirectional + + + StateOrProvince + + + StreetName + + + StreetSuffix + + + TenantId + + + ValidationStatus + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NormalizationRuleForTest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NormalizationRuleForTest + + + + + + + + + + + + + + + + + + Name + + + Pattern + + + Translation + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OboResourceAccountInfo + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OboResourceAccountInfo + + + + + + + + + + + + + + + + + + DisplayName + + + ObjectId + + + PhoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OnlineNumberAssignmentRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OnlineNumberAssignmentRequest + + + + + + + + + + + + TelephoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResponseDetail + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResponseDetail + + + + + + + + + + + + + + + Error + + + Status + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResponseDetailProperties + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResponseDetailProperties + + + + + + + + + + + + Item + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResult + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResult + + + + + + + + + + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResultAutoGenerated + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResultAutoGenerated + + + + + + + + + + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsApplyPackageGroupRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsApplyPackageGroupRequest + + + + + + + + + + + + + + + GroupId + + + PackageName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsApplyPackageGroupResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsApplyPackageGroupResponse + + + + + + + + + + + + ResponseMessage + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsBatchPostPackageResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsBatchPostPackageResponse + + + + + + + + + + + + + + + OperationId + + + ResponseMessage + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsCreateCustomPackageRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsCreateCustomPackageRequest + + + + + + + + + + + + + + + Description + + + PackageName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsCustomPackageResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsCustomPackageResponse + + + + + + + + + + + + ResponseMessage + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsFormattedPackageRecommendation + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsFormattedPackageRecommendation + + + + + + + + + + + + + + + + + + Name + + + Description + + + RecommendationType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsFormattedPackageSummary + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsFormattedPackageSummary + + + + + + + + + + + + + + + Name + + + Description + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPackageResponseBase + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPackageResponseBase + + + + + + + + + + + + ResponseMessage + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageBatchRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageBatchRequest + + + + + + + + + + + + + + + PackageType + + + UserId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageResponse + + + + + + + + + + + + ResponseMessage + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageResponseFailedUserErrorMessages + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageResponseFailedUserErrorMessages + + + + + + + + + + + + LegacyUser + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsRequestsPolicyRanking + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsRequestsPolicyRanking + + + + + + + + + + + + + + + PolicyType + + + Rank + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsRequestsPolicyTypeAndName + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsRequestsPolicyTypeAndName + + + + + + + + + + + + + + + PolicyName + + + PolicyType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsUpdateCustomPackageRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsUpdateCustomPackageRequest + + + + + + + + + + + + + + + Description + + + PackageName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PartitionMovementError + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PartitionMovementError + + + + + + + + + + + + + + + ErrorCode + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PartitionMovementRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PartitionMovementRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BasePartitionKey + + + BatchSize + + + ContainerName + + + NumberOfDocument + + + PercentageOfPartition + + + SourcePartitionKey + + + TargetPartitionKey + + + Workload + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PasswordProfile + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PasswordProfile + + + + + + + + + + + + + + + + + + EnforceChangePasswordPolicy + + + ForceChangePasswordNextLogin + + + Password + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PersonalAttendantSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PersonalAttendantSettings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowInboundFederatedCalls + + + AllowInboundInternalCalls + + + AllowInboundPSTNCalls + + + BookingCalendarId + + + CalleeName + + + DefaultLanguage + + + DefaultTone + + + DefaultVoice + + + IsAutomaticRecordingEnabled + + + IsAutomaticTranscriptionEnabled + + + IsBookingCalendarEnabled + + + IsCallScreeningEnabled + + + IsNonContactCallbackEnabled + + + IsPersonalAttendantEnabled + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PolicyDefinition + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PolicyDefinition + + + + + + + + + + + + + + + PolicyName + + + PolicyType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PortRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PortRequest + + + + + + + + + + + + + + + + + + + + + ChassisId + + + Description + + + LocationId + + + PortId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PortResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PortResponse + + + + + + + + + + + + + + + + + + + + + ChassisId + + + Description + + + LocationId + + + PortId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PrivacyProfile + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PrivacyProfile + + + + + + + + + + + + + + + ContactEmail + + + StatementUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ProcessingException + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ProcessingException + + + + + + + + + + + + + + + + + + CorrelationId + + + ErrorId + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Prompt + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Prompt + + + + + + + + + + + + + + + ActiveType + + + TextToSpeechPrompt + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.RehomeUserRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.RehomeUserRequestBody + + + + + + + + + + + + + + + MoveToCloud + + + UserSipUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.RemoveApplicationInstanceAssociationsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.RemoveApplicationInstanceAssociationsRequest + + + + + + + + + + + + EndpointsId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ResourceStatusRecord + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ResourceStatusRecord + + + + + + + + + + + + + + + + + + + + + + + + + + + AuxiliaryData + + + ErrorCode + + + Id + + + Message + + + Status + + + StatusTimestamp + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ResyncRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ResyncRequestBody + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IsValidationRequest + + + ObjectClass + + + ObjectId + + + ReSyncOption + + + ScenariosToSuppress + + + ServiceInstance + + + SynchronizeTenantWithAllObject + + + TenantId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SafeWaitHandle + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SafeWaitHandle + + + + + + + + + + + + + + + IsClosed + + + IsInvalid + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Schedule + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Schedule + + + + + + + + + + + + + + + + + + + + + AssociatedConfigurationId + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ScheduleRecurrenceRange + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ScheduleRecurrenceRange + + + + + + + + + + + + + + + + + + + + + End + + + NumberOfOccurrence + + + Start + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInBatchStatusItem + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInBatchStatusItem + + + + + + + + + + + + + + + + + + + + + Error + + + HardwareId + + + Status + + + UserName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestItem + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestItem + + + + + + + + + + + + + + + HardwareId + + + UserName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestsSummaryResponseItem + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestsSummaryResponseItem + + + + + + + + + + + + + + + + + + + + + + + + + + + BatchId + + + BatchItemsCount + + + BatchStatus + + + Region + + + RequestTime + + + UserId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestStatusResult + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestStatusResult + + + + + + + + + + + + + + + + + + + + + + + + BatchId + + + BatchStatus + + + Region + + + RequestTime + + + UserId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInResponse + + + + + + + + + + + + + + + BatchId + + + BatchItemsCount + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTaggingRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTaggingRequest + + + + + + + + + + + + + + + + + + + + + + + + HardwareId + + + IcmId + + + OceUserName + + + SdhRegion + + + TenantId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTaggingResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTaggingResponse + + + + + + + + + + + + + + + CorrelationId + + + Status + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTransferResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTransferResponse + + + + + + + + + + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgErrorResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgErrorResponse + + + + + + + + + + + + + + + ErrorCode + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgUnauthorizedAccessErrorResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgUnauthorizedAccessErrorResponse + + + + + + + + + + + + + + + + + + Action + + + Code + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SelfServePasswordResetData + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SelfServePasswordResetData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AlternateAuthenticationPhoneRegisteredTime + + + AlternateEmailRegisteredTime + + + AuthenticationEmailRegisteredTime + + + AuthenticationPhoneRegisteredTime + + + DeferralCount + + + DeferredTime + + + LastRegisteredTime + + + MobilePhoneRegisteredTime + + + ReinforceAfterTime + + + SecurityAnswersRegisteredTime + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceAttributesPropertiesPublishedAttributesSfbServiceAttributes + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceAttributesPropertiesPublishedAttributesSfbServiceAttributes + + + + + + + + + + + + + + + + + + + + + ApplicationOption + + + DeploymentLocator + + + HideFromAddressList + + + OptionFlag + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceInfoDetail + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceInfoDetail + + + + + + + + + + + + + + + + + + + + + BusinessVoiceDirectoryUrl + + + HostingProvider + + + ServiceInstance + + + TenantMajorRegistrarPool + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceNumberUpdateRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceNumberUpdateRequest + + + + + + + + + + + + + + + + + + PrimaryLanguage + + + RestoreDefaultLanguage + + + SecondaryLanguage + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetCivicAddress + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetCivicAddress + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CityAlias + + + CityOrTown + + + CompanyName + + + CompanyTaxId + + + Confidence + + + Country + + + Description + + + Elin + + + HouseNumber + + + HouseNumberSuffix + + + Id + + + Latitude + + + Longitude + + + PostDirectional + + + PostalOrZipCode + + + PreDirectional + + + StateOrProvince + + + StreetName + + + StreetSuffix + + + ValidationStatus + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetLocation + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetLocation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AdditionalInfo + + + CityOrTown + + + CityOrTownAlias + + + CivicAddressId + + + CompanyId + + + CompanyName + + + Confidence + + + Country + + + CountyOrDistrict + + + Description + + + Elin + + + HouseNumber + + + HouseNumberSuffix + + + Id + + + IsDefault + + + Latitude + + + Longitude + + + NumberOfTelephoneNumber + + + NumberOfVoiceUser + + + PartnerId + + + PostDirectional + + + PostalOrZipCode + + + PreDirectional + + + StateOrProvince + + + StreetName + + + StreetSuffix + + + TenantId + + + ValidationStatus + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetMovedResourceDataRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetMovedResourceDataRequestBody + + + + + + + + + + + + + + + MajorVersion + + + UserSipUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistory + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistory + + + + + + + + + + + + + + + + + + + + + + + + AnsweredAndOutboundCall + + + Description + + + Id + + + IncomingMissedCall + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistoryDomainModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistoryDomainModel + + + + + + + + + + + + + + + + + + + + + + + + AnsweredAndOutboundCall + + + Description + + + Id + + + IncomingMissedCall + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistoryDtoModel + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SharedCallQueueHistoryDtoModel + + + + + + + + + + + + + + + + + + + + + + + + AnsweredAndOutboundCall + + + Description + + + Id + + + IncomingMissedCall + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SimpleBatchJobStatus + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SimpleBatchJobStatus + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OperationId + + + OperationName + + + OverallStatus + + + CreatedBy + + + CreatedTime + + + CompletedTime + + + CompletedCount + + + ErrorCount + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SingleGrantTenantRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SingleGrantTenantRequest + + + + + + + + + + + + + + + ForceSwitchPresent + + + PolicyName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SingleGrantUserRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SingleGrantUserRequest + + + + + + + + + + + + PolicyName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtAvailabilityInfo + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtAvailabilityInfo + + + + + + + + + + + + + + + + + + + + + + + + Acquired + + + Allowed + + + MaximumSearchSize + + + Reason + + + SearchAvailability + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletAcquiredTelephoneNumber + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletAcquiredTelephoneNumber + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActivationState + + + AssignedPstnTargetId + + + AssignmentCategory + + + Capability + + + City + + + CivicAddressId + + + IsoCountryCode + + + IsoSubdivision + + + LocationId + + + LocationUpdateSupported + + + NetworkSiteId + + + NumberSource + + + NumberType + + + OperatorId + + + PortInOrderStatus + + + PstnAssignmentStatus + + + PstnPartnerId + + + PstnPartnerName + + + ReverseNumberLookup + + + Tag + + + TelephoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletCreateSearchOrderRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletCreateSearchOrderRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AreaCode + + + CivicAddressId + + + Country + + + Description + + + Name + + + NumberPrefix + + + NumberType + + + Quantity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest + + + + + + + + + + + + + + + + + + + + + + + + Description + + + EndingNumber + + + FileContent + + + StartingNumber + + + TelephoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseOrderRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseOrderRequest + + + + + + + + + + + + + + + + + + + + + EndingNumber + + + FileContent + + + StartingNumber + + + TelephoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseOrderResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseOrderResponse + + + + + + + + + + + + + + + + + + + + + + + + NumberIdsAssigned + + + NumberIdsDeleteFailed + + + NumberIdsDeleted + + + NumberIdsManagedByServiceDesk + + + NumberIdsNotOwnedByTenant + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseRequest + + + + + + + + + + + + TelephoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletSearchOrder + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletSearchOrder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AreaCode + + + CivicAddressId + + + CountryCode + + + CreatedAt + + + Description + + + ErrorCode + + + Id + + + InventoryType + + + IsManual + + + Name + + + NumberPrefix + + + NumberType + + + Quantity + + + ReservationExpiryDate + + + SearchType + + + SendToServiceDesk + + + Status + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletsSetResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletsSetResponse + + + + + + + + + + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletTenantTagRecord + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletTenantTagRecord + + + + + + + + + + + + TagValue + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCountry + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCountry + + + + + + + + + + + + + + + Name + + + Value + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCreateExportAcquiredTelephoneNumbersResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCreateExportAcquiredTelephoneNumbersResponse + + + + + + + + + + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCreateSearchOrderResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCreateSearchOrderResponse + + + + + + + + + + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtDirectRoutingNumberCreationOrderResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtDirectRoutingNumberCreationOrderResponse + + + + + + + + + + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtErrorResponseDetails + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtErrorResponseDetails + + + + + + + + + + + + + + + Code + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtGetExportAcquiredTelephoneNumbersResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtGetExportAcquiredTelephoneNumbersResponse + + + + + + + + + + + + + + + + + + + + + + + + CreatedAt + + + DownloadLink + + + DownloadLinkExpiry + + + Id + + + Status + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResponse + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResult + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResult + + + + + + + + + + + + + + + + + + + + + TelephoneNumber + + + PolicyType + + + PolicyName + + + Reference + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPrefixSearchOptions + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPrefixSearchOptions + + + + + + + + + + + + + + + CountryCallingCode + + + MinimumPrefixLength + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtReleaseResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtReleaseResponse + + + + + + + + + + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtTelephoneNumberSearchResult + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtTelephoneNumberSearchResult + + + + + + + + + + + + + + + Location + + + TelephoneNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtUpdateSearchOrderRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtUpdateSearchOrderRequest + + + + + + + + + + + + Action + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SourceEntry + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SourceEntry + + + + + + + + + + + + + + + + + + + + + AssignmentType + + + PolicyType + + + PolicyName + + + Reference + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StartMeetingMigrationEnqueueResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StartMeetingMigrationEnqueueResponse + + + + + + + + + + + + OperationId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StartMeetingMigrationRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StartMeetingMigrationRequestBody + + + + + + + + + + + + + + + + + + Identity + + + SourceMeetingType + + + TargetMeetingType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord + + + + + + + + + + + + + + + + + + AuxiliaryData + + + Message + + + WarningCode + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord2 + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AuxiliaryData + + + ErrorCode + + + Id + + + Message + + + Status + + + StatusTimestamp + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord3 + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AuxiliaryData + + + ErrorCode + + + Id + + + Message + + + Status + + + StatusTimestamp + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SubnetResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SubnetResponse + + + + + + + + + + + + + + + + + + Description + + + LocationId + + + Subnet + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SupportedLanguage + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SupportedLanguage + + + + + + + + + + + + + + + Code + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SupportedSyncScenarios + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SupportedSyncScenarios + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OfferShiftRequest + + + OpenShift + + + OpenShiftRequest + + + Shift + + + SwapRequest + + + TimeCard + + + TimeOff + + + TimeOffRequest + + + UserShiftPreference + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SwitchResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SwitchResponse + + + + + + + + + + + + + + + + + + ChassisId + + + Description + + + LocationId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SyncScenarioSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SyncScenarioSettings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OfferShiftRequest + + + OpenShift + + + OpenShiftRequest + + + Shift + + + SwapRequest + + + TimeCard + + + TimeOff + + + TimeOffRequest + + + UserShiftPreference + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TagErrorObject + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TagErrorObject + + + + + + + + + + + + + + + + + + Action + + + Code + + + Message + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Target + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Target + + + + + + + + + + + + + + + Id + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamConnectResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamConnectResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + State + + + TeamId + + + TeamName + + + TimeZone + + + WfmTeamId + + + WfmTeamName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamConnectsResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamConnectsResponse + + + + + + + + + + + + + + + + + + + + + CreatedDateTime + + + LastActionDateTime + + + OperationId + + + Status + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamDefinition + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamDefinition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Alias + + + Classification + + + Description + + + DisplayName + + + IsDynamicMembership + + + IsMembershipLimitedToOwner + + + OwnerUserObjectId + + + SensitivityLabelId + + + SmtpAddress + + + Specialization + + + Visibility + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamDiscoverySettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamDiscoverySettings + + + + + + + + + + + + ShowInTeamsSearchAndSuggestion + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamFunSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamFunSettings + + + + + + + + + + + + + + + + + + + + + AllowCustomMeme + + + AllowGiphy + + + AllowStickersAndMeme + + + GiphyContentRating + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamGuestSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamGuestSettings + + + + + + + + + + + + + + + AllowCreateUpdateChannel + + + AllowDeleteChannel + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMapping + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMapping + + + + + + + + + + + + + + + + + + TeamId + + + TimeZone + + + WfmTeamId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMemberSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMemberSettings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowAddRemoveApp + + + AllowCreatePrivateChannel + + + AllowCreateUpdateChannel + + + AllowCreateUpdateRemoveConnector + + + AllowCreateUpdateRemoveTab + + + AllowDeleteChannel + + + UploadCustomApp + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMessagingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMessagingSettings + + + + + + + + + + + + + + + + + + + + + + + + AllowChannelMention + + + AllowOwnerDeleteMessage + + + AllowTeamMention + + + AllowUserDeleteMessage + + + AllowUserEditMessage + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMiddletierErrorResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMiddletierErrorResponse + + + + + + + + + + + + OperationId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsAppTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsAppTemplate + + + + + + + + + + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsData + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsData + + + + + + + + + + + + + + + + + + CheckCpc + + + CheckEnterpriseVoice + + + MoveToTeam + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsTabConfiguration + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsTabConfiguration + + + + + + + + + + + + + + + + + + + + + ContentUrl + + + EntityId + + + RemoveUrl + + + WebsiteUrl + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplateExtendedProperties + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplateExtendedProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + Category + + + ModifiedBy + + + ModifiedOn + + + PublishedBy + + + PublisherUrl + + + ShortDescription + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplateSummary + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplateSummary + + + + + + 120 + + + + 30 + + + + 30 + + + + 5 + + + + 5 + + + + + + + OdataId + + + Name + + + ShortDescription + + + ChannelCount + + + AppCount + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantAudioFileDto + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantAudioFileDto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApplicationId + + + Id + + + Content + + + ContextId + + + ConvertedFilename + + + DeletionTimestampOffset + + + DownloadUri + + + DownloadUriExpiryTimestampOffset + + + Duration + + + LastAccessedTimestampOffset + + + OriginalFilename + + + UploadedTimestampOffset + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantDialPlan + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantDialPlan + + + + + + + + + + + + + + + EffectiveTenantDialPlanName + + + NormalizationRule + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantInformation + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantInformation + + + + + + + + + + + + + + + + + + DefaultLanguage + + + DefaultTimeZone + + + EnabledFeature + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMediaFileDto + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMediaFileDto + + + + + + + + + + + + + + + ApplicationId + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMigration + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMigration + + + + + + + + + + + + + + + MoveOption + + + TargetServiceInstance + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMigrationResult + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMigrationResult + + + + + + + + + + + + + + + + + + JobName + + + OrderId + + + TenantId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSipDomainRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSipDomainRequest + + + + + + + + + + + + + + + Action + + + DomainName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSyncInLyncAdInfo + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSyncInLyncAdInfo + + + + + + + + + + + + + + + + + + + + + + + + + + + IsSyncDisabledAtTenantCreation + + + IsUserSyncDisabled + + + IsUserSyncStateChanging + + + StopSyncRevertCompleteTimestamp + + + StopSyncRevertTimestamp + + + StopSyncTimestamp + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantVerifiedSipDomain + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantVerifiedSipDomain + + + + + + + + + + + + + + + Name + + + Status + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestInboundBlockedNumberResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestInboundBlockedNumberResponse + + + + + + + + + + + + IsNumberBlocked + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestTeamsTranslationRuleResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestTeamsTranslationRuleResponse + + + + + + + + + + + + + + + + + + + + + Identity + + + Pattern + + + PhoneNumberTranslated + + + Translation + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestUnassignedNumberTreatmentResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestUnassignedNumberTreatmentResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + Description + + + Pattern + + + Priority + + + Target + + + TargetType + + + TreatmentId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TimeRange + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TimeRange + + + + + + + + + + + + + + + End + + + Start + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TimeZone + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TimeZone + + + + + + + + + + + + + + + DisplayName + + + Id + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UnansweredSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UnansweredSettings + + + + + + + + + + + + + + + + + + + + + Delay + + + IsEnabled + + + Target + + + TargetType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateAppointmentBookingFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateAppointmentBookingFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ApiDefinition + + + CallerAuthenticationMethod + + + ConfigurationId + + + Description + + + Identity + + + Name + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCallQueueRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCallQueueRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AgentAlertTime + + + AllowOptOut + + + AuthorizedUser + + + CallToAgentRatioThresholdBeforeOfferingCallback + + + CallbackEmailNotificationTarget + + + CallbackOfferAudioFilePromptResourceId + + + CallbackOfferTextToSpeechPrompt + + + CallbackRequestDtmf + + + ComplianceRecordingForCallQueueId + + + ConferenceMode + + + CustomAudioFileAnnouncementForCr + + + CustomAudioFileAnnouncementForCrFailure + + + DistributionList + + + EnableNoAgentSharedVoicemailSystemPromptSuppression + + + EnableNoAgentSharedVoicemailTranscription + + + EnableOverflowSharedVoicemailSystemPromptSuppression + + + EnableOverflowSharedVoicemailTranscription + + + EnableResourceAccountsForObo + + + EnableTimeoutSharedVoicemailSystemPromptSuppression + + + EnableTimeoutSharedVoicemailTranscription + + + HideAuthorizedUser + + + IsCallbackEnabled + + + LanguageId + + + MusicOnHoldAudioFileId + + + Name + + + NoAgentAction + + + NoAgentActionCallPriority + + + NoAgentActionTarget + + + NoAgentApplyTo + + + NoAgentDisconnectAudioFilePrompt + + + NoAgentDisconnectTextToSpeechPrompt + + + NoAgentRedirectPersonAudioFilePrompt + + + NoAgentRedirectPersonTextToSpeechPrompt + + + NoAgentRedirectPhoneNumberAudioFilePrompt + + + NoAgentRedirectPhoneNumberTextToSpeechPrompt + + + NoAgentRedirectVoiceAppAudioFilePrompt + + + NoAgentRedirectVoiceAppTextToSpeechPrompt + + + NoAgentRedirectVoicemailAudioFilePrompt + + + NoAgentRedirectVoicemailTextToSpeechPrompt + + + NoAgentSharedVoicemailAudioFilePrompt + + + NoAgentSharedVoicemailTextToSpeechPrompt + + + NumberOfCallsInQueueBeforeOfferingCallback + + + OboResourceAccountId + + + OverflowAction + + + OverflowActionCallPriority + + + OverflowActionTarget + + + OverflowDisconnectAudioFilePrompt + + + OverflowDisconnectTextToSpeechPrompt + + + OverflowRedirectPersonAudioFilePrompt + + + OverflowRedirectPersonTextToSpeechPrompt + + + OverflowRedirectPhoneNumberAudioFilePrompt + + + OverflowRedirectPhoneNumberTextToSpeechPrompt + + + OverflowRedirectVoiceAppAudioFilePrompt + + + OverflowRedirectVoiceAppTextToSpeechPrompt + + + OverflowRedirectVoicemailAudioFilePrompt + + + OverflowRedirectVoicemailTextToSpeechPrompt + + + OverflowSharedVoicemailAudioFilePrompt + + + OverflowSharedVoicemailTextToSpeechPrompt + + + OverflowThreshold + + + PresenceAwareRouting + + + RoutingMethod + + + ServiceLevelThresholdResponseTimeInSecond + + + SharedCallQueueHistoryId + + + ShiftsSchedulingGroupId + + + ShiftsTeamId + + + ShouldOverwriteCallableChannelProperty + + + TextAnnouncementForCr + + + TextAnnouncementForCrFailure + + + ThreadId + + + TimeoutAction + + + TimeoutActionCallPriority + + + TimeoutActionTarget + + + TimeoutDisconnectAudioFilePrompt + + + TimeoutDisconnectTextToSpeechPrompt + + + TimeoutRedirectPersonAudioFilePrompt + + + TimeoutRedirectPersonTextToSpeechPrompt + + + TimeoutRedirectPhoneNumberAudioFilePrompt + + + TimeoutRedirectPhoneNumberTextToSpeechPrompt + + + TimeoutRedirectVoiceAppAudioFilePrompt + + + TimeoutRedirectVoiceAppTextToSpeechPrompt + + + TimeoutRedirectVoicemailAudioFilePrompt + + + TimeoutRedirectVoicemailTextToSpeechPrompt + + + TimeoutSharedVoicemailAudioFilePrompt + + + TimeoutSharedVoicemailTextToSpeechPrompt + + + TimeoutThreshold + + + UseDefaultMusicOnHold + + + User + + + WaitTimeBeforeOfferingCallbackInSecond + + + WelcomeMusicAudioFileId + + + WelcomeTextToSpeechPrompt + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateConnectorInstanceFieldsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateConnectorInstanceFieldsRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ConnectionId + + + ConnectorAdminEmail + + + DesignatedActorId + + + Etag + + + Name + + + State + + + SyncFrequencyInMin + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateConnectorInstanceRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateConnectorInstanceRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ConnectionId + + + ConnectorAdminEmail + + + DesignatedActorId + + + Etag + + + Name + + + State + + + SyncFrequencyInMin + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCustomAppSettingRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCustomAppSettingRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IsAppsEnabled + + + IsAppsPurchaseEnabled + + + IsExternalAppsEnabledByDefault + + + IsLicenseBasedPinnedAppsEnabled + + + IsSideloadedAppsInteractionEnabled + + + IsTenantWideAutoInstallEnabled + + + LobBackground + + + LobLogo + + + LobLogomark + + + LobTextColor + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateGreetingRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateGreetingRequest + + + + + + + + + + + + + + + + + + AudioFilePromptId + + + AudioFilePromptName + + + TextToSpeechPrompt + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateQuestionAnswerFlowRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateQuestionAnswerFlowRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ApiAuthenticationType + + + ConfigurationId + + + Description + + + Identity + + + KnowledgeBase + + + Name + + + Type + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionFieldsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionFieldsRequest + + + + + + + + + + + + + + + + + + + + + ConnectorId + + + Etag + + + Name + + + State + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionRequest + + + + + + + + + + + + + + + + + + + + + ConnectorId + + + Etag + + + Name + + + State + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAdminAuthoredPropsSchemaProperties + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAdminAuthoredPropsSchemaProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EnterpriseVoiceEnabled + + + IsPhoneNumberSynergy + + + LineUri + + + LineUriValidationError + + + OptionFlag + + + PartitioningScheme + + + PolicyAssignment + + + UserEntityType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserApiSearchResults + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserApiSearchResults + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAutoGenerated + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAutoGenerated + + + + + + + + + + + + + + + Id + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserConnectResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserConnectResponse + + + + + + + + + + + + + + + + + + + + + UserId + + + UserName + + + WfmUserId + + + WfmUserName + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserData + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowTollFreeDialIn + + + BridgeId + + + BridgeName + + + ResetLeaderPin + + + SendEmail + + + SendEmailToAddress + + + ServiceNumber + + + TollFreeServiceNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserDelicensingAccelerationPatch + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserDelicensingAccelerationPatch + + + + + + + + + + + + + + + Action + + + Capability + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserRoutingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserRoutingSettings + + + + + + + + + + + + SipUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UsersDefaultNumberUpdateRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UsersDefaultNumberUpdateRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AreaOrState + + + BridgeId + + + BridgeName + + + CapitalOrMajorCity + + + CountryOrRegion + + + FromNumber + + + NumberType + + + RescheduleMeeting + + + ToNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserSipUriRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserSipUriRequestBody + + + + + + + + + + + + UserSipUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserVoiceState + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserVoiceState + + + + + + + + + + + + + + + + + + + + + LineUri + + + OptionFlag + + + PolicyAssignment + + + UsageLocation + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidateUserRequestBody + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidateUserRequestBody + + + + + + + + + + + + + + + + + + + + + CmdletVersion + + + Force + + + MoveToCloud + + + UserSipUri + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationBatchParameters + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationBatchParameters + + + + + + + + + + + + UserId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationParameters + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationParameters + + + + + + + + + + + + + + + + + + + + + Authority + + + PolicyName + + + PolicyType + + + UserId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationPolicyDefinition + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationPolicyDefinition + + + + + + + + + + + + + + + PolicyName + + + PolicyType + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Voice + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Voice + + + + + + + + + + + + + + + Id + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.VoicemailSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.VoicemailSettings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CallAnswerRule + + + DefaultGreetingPromptOverwrite + + + DefaultOofGreetingPromptOverwrite + + + OofGreetingEnabled + + + OofGreetingFollowAutomaticRepliesEnabled + + + PromptLanguage + + + ShareData + + + TransferTarget + + + VoicemailEnabled + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.VoiceNormalizationTestResult + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.VoiceNormalizationTestResult + + + + + + + + + + + + TranslatedNumber + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WaPResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WaPResponse + + + + + + + + + + + + + + + + + + Bssid + + + Description + + + LocationId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WeeklyRecurrentSchedule + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WeeklyRecurrentSchedule + + + + + + + + + + + + IsComplemented + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectionRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectionRequest + + + + + + + + + + + + + + + + + + ConnectorId + + + Name + + + State + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectionResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectionResponse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ConnectorId + + + CreatedDateTime + + + Etag + + + Id + + + LastModifiedDateTime + + + Name + + + State + + + TenantId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectorResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectorResponse + + + + + + + + + + + + + + + Id + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmTeam + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmTeam + + + + + + + + + + + + + + + Id + + + Name + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmTeamResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmTeamResponse + + + + + + + + + + + + + + + + + + + + + ConnectorInstanceId + + + Id + + + Name + + + TeamId + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WorkflowResponse + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WorkflowResponse + + + + + + + + + + + + WorkflowId + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 new file mode 100644 index 000000000000..9c7bb88202e0 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 @@ -0,0 +1,248 @@ +@{ + GUID = '82b0bf19-c5cd-4c30-8db4-b458a4b84495' + RootModule = './Microsoft.Teams.ConfigAPI.Cmdlets.psm1' + ModuleVersion = '8.0925.3' + CompatiblePSEditions = 'Core', 'Desktop' + Author="Microsoft Corporation" + CompanyName="Microsoft Corporation" + Copyright="Copyright (c) Microsoft Corporation. All rights reserved." + Description="Microsoft Teams Configuration PowerShell module" + PowerShellVersion = '5.1' + DotNetFrameworkVersion = '4.7.2' + FormatsToProcess = @( + './Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml', + './Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml', + './SfbRpsModule.format.ps1xml') + CmdletsToExport = '*' + FunctionsToExport = '*' + AliasesToExport = '*' + PrivateData = @{ + PSData = @{ + # For dev test set Prerelease to preview. This will ensure devtest module get all preview ECS features. + Prerelease = 'preview' + Tags = '' + LicenseUri = '' + ProjectUri = '' + ReleaseNotes = '' + } + } +} + +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBktHhsDTXfF+ev +# CEOifc2ZOGc/dSGpB/zVLNO52F9TmKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPut +# cUIVxIBB0ImJ9vNQxSoMsyFmk7rGJjFLPFygEQ4fMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAsxdF6ENPMlJBY2pbMZwVrEjJbJIGoUXtTffs +# m5VHACdQcbJJtDlfJ8MZ53d5semg0/AHj917b4LWkILIhdFYVsZ3RuwM1aIFEzBw +# xrAM77PTv+cFXmVrYlif65+8R3tflJk2wyayruH4+qtkjjkMcW6OHQaEDWLpcwUW +# 6tk6ltgpusJebP2I9xWL5gG4oIn4XLS+FYDsizxXOTcGdaByLhMrdJxCSA003066 +# VEMapPs6sosMDnFWi37qHCbTdXYweq52x8zvOQINOclOxOucJhxoB/1BWI8ADhZ2 +# agohjS9bFJtBG6oic2iY8l+p8akRPQwHVQTrsGgmku1OFw3nSKGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCJwUibtIbzfPo/UBmxGxTeOcZrF+LqIi5L +# oeQGKL82VgIGaKOxdLnYGBMyMDI1MTAwMTA4MzMwMy4wNThaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/tCo +# wns0IQsBAAEAAAH+MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOFoXDTI1MTAyMjE4MzExOFowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# vLwhFxWlqA43olsE4PCegZ4mSfsH2YTSKEYv8Gn3362Bmaycdf5T3tQxpP3NWm62 +# YHUieIQXw+0u4qlay4AN3IonI+47Npi9fo52xdAXMX0pGrc0eqW8RWN3bfzXPKv0 +# 7O18i2HjDyLuywYyKA9FmWbePjahf9Mwd8QgygkPtwDrVQGLyOkyM3VTiHKqhGu9 +# BCGVRdHW9lmPMrrUlPWiYV9LVCB5VYd+AEUtdfqAdqlzVxA53EgxSqhp6JbfEKnT +# dcfP6T8Mir0HrwTTtV2h2yDBtjXbQIaqycKOb633GfRkn216LODBg37P/xwhodXT +# 81ZC2aHN7exEDmmbiWssjGvFJkli2g6dt01eShOiGmhbonr0qXXcBeqNb6QoF8jX +# /uDVtY9pvL4j8aEWS49hKUH0mzsCucIrwUS+x8MuT0uf7VXCFNFbiCUNRTofxJ3B +# 454eGJhL0fwUTRbgyCbpLgKMKDiCRub65DhaeDvUAAJT93KSCoeFCoklPavbgQya +# hGZDL/vWAVjX5b8Jzhly9gGCdK/qi6i+cxZ0S8x6B2yjPbZfdBVfH/NBp/1Ln7xb +# eOETAOn7OT9D3UGt0q+KiWgY42HnLjyhl1bAu5HfgryAO3DCaIdV2tjvkJay2qOn +# F7Dgj8a60KQT9QgfJfwXnr3ZKibYMjaUbCNIDnxz2ykCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRvznuJ9SU2g5l/5/b+5CBibbHF3TAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAiT4NUvO2lw+0dDMtsBuxmX2o3lVQqnQkuITAGIGCgI+sl7ZqZOTDd8Lq +# xsH4GWCPTztc3tr8AgBvsYIzWjFwioCjCQODq1oBMWNzEsKzckHxAzYo5Sze7OPk +# MA3DAxVq4SSR8y+TRC2GcOd0JReZ1lPlhlPl9XI+z8OgtOPmQnLLiP9qzpTHwFze +# +sbqSn8cekduMZdLyHJk3Niw3AnglU/WTzGsQAdch9SVV4LHifUnmwTf0i07iKtT +# lNkq3bx1iyWg7N7jGZABRWT2mX+YAVHlK27t9n+WtYbn6cOJNX6LsH8xPVBRYAIR +# VkWsMyEAdoP9dqfaZzwXGmjuVQ931NhzHjjG+Efw118DXjk3Vq3qUI1re34zMMTR +# zZZEw82FupF3viXNR3DVOlS9JH4x5emfINa1uuSac6F4CeJCD1GakfS7D5ayNsaZ +# 2e+sBUh62KVTlhEsQRHZRwCTxbix1Y4iJw+PDNLc0Hf19qX2XiX0u2SM9CWTTjsz +# 9SvCjIKSxCZFCNv/zpKIlsHx7hQNQHSMbKh0/wwn86uiIALEjazUszE0+X6rcObD +# fU4h/O/0vmbF3BMR+45rAZMAETJsRDPxHJCo/5XGhWdg/LoJ5XWBrODL44YNrN7F +# RnHEAAr06sflqZ8eeV3FuDKdP5h19WUnGWwO1H/ZjUzOoVGiV3gwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAhGNHD/a7Q0bQ +# LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 +# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA +# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU +# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O +# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 +# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H +# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ +# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgFlZ2O/GRfAXYA5v3qpRwM4QCr0GSQZI0ycmuzAREOxgwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs +# tyh0eTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /tCowns0IQsBAAEAAAH+MCIEIHl8bRCAEGD1nFgaXp67WN1I3z8m7ZUmowEzGTjb +# iSIqMA0GCSqGSIb3DQEBCwUABIICACKy7a3MJz+G2ukx3dDkAruMy/tF7Qgp7Xze +# fAp1nlXD5YHYePeCwWXd5Fke7/UtQhxW0xASRhCDMYmzhp3iHDj/OG87bvtUyi09 +# eVcw483MQttaqYkNQN/ICV9PBS/dmUPI/Kpi4iac1ADHTlt7COB21FGzVftfvotj +# UlveOmScT4sjAGLOcAbVZ1M5GolWEKQJ9J3GvtnMuoC1ZIupmw99AFaPmmuS9N62 +# mvaDOLnOqPi9FBg0cVS31kUNzNbePAU2dSuLLKyMy1auel/oSYFSiTPu7AVPm2hd +# 6DM98XJSfLVFIH6N1GBFGI6pmlstAw7+ZhRFRUwvJcKSTPyu9Xx2nsM7HQ3uPeGW +# D0VXVJAAj0vgBF/eUkadua5hUfRiSEzThlXyea7swcRZejZC4Lj9RW6D/q2y0bt9 +# E4h0e85IT2c5G7z3S9ZdmYsqZ9KebZoYd4UFCKQCrkP77v1JNu8oedia4hN0CiFW +# Cr2HB6eidHjjb++hXUzyUfggkmP3hFIbjw8rVojGABTveG5SiamGwwS5fUnwntah +# UOKilkF9PTI9IyppeXwTnCKnm95dbnO/eKQ0wrI+Fgq6v20GZcOOq8JtsExxrjmv +# V9JMkBOo+Gzky3qjiW7VYFAccQSG+x2emQ7yYeHccbWdMLpcZX5To3L9y6jgRu8c +# ZS80/H7S +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 new file mode 100644 index 000000000000..cf8c5fc5721f --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 @@ -0,0 +1,268 @@ +# region Generated + # Load the private module dll + $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance + + # Load the custom module + $customModulePath = Join-Path $PSScriptRoot './custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1' + if(Test-Path $customModulePath) { + $null = Import-Module -Name $customModulePath + } + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = Join-Path $PSScriptRoot './exports' + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + #Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } + + # Finalize initialization of this module + $instance.Init(); + Export-ModuleMember -Function $instance.FunctionsToExport.Split(",") + Write-Information "Loaded Module '$($instance.Name)'" +# endregion + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA11zYyqhtEZno0 +# vnR835d32vg185cJKudkjxJ9lgIViKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL/X +# KtNBJBHJGGbe7wFtIYIfMWxPHreyoYsrh/7+1ayVMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAjLRSPEgl+jV1neYu3nTNYAt12NPx9CSBS0in +# W3lTJ3li3JivLsglZyHAkpOry8UCfN85dJPmCcuA1ZaTOCb+tWpbGX391ZQki5mu +# m4278BFouVx3+kiDDClF4PoDwkUT80GSCUnkbLw4DeTuY4GdiLb+0sTv9RMcKPAn +# gdirrxrAsuUOqgJHrIxoQMQQd4xkF3Zwjdx78hYDd6aX0d1aPjlRTdEd/Op4GXN5 +# f0ogHVMc6dBNMAH1Mf7U7pDK4OfAB59j9OWRo96m9CwFfJBxVqtEr4VDq/2xQgPD +# 9eMyf6nIc/MQ9p6gQDaJbVyUbotuRcofvthfqaw+yx7cqLav+6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBtQ25Wdua/9MRhw3iNu1aZ/OELMsRHLdxZ +# y8rLeBbzfAIGaKOvjL6AGBMyMDI1MTAwMTA4MzMwMi4zMDNaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgn933r4y0jU2arKizHfLHMs2a9X1exP9Cl7jLD/ABcBAwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICAB+4x6ZA5QY+bna8YicpD0DzAulLDQnL +# Hb4OxW/6OyHwQyt4vSzjsPVDcItAdm/hdII9pmhyz7jqBSMbkj1WR5K3YXKE0aUf +# V9AX4DzXE0Ea1vgwmLPTAwbF1+18An3px43SmkA3GQU9bU+XFQEreW5O0LdYHYnM +# MFk0tqMk0WU79Hc2976GrAOhNvcgrj2Rt89BE149XuOmyYLQmezqGpeH+opJXOrt +# 1SnW7LX9hl22GKO4aMsqRk/vWh+2zZZ5Htlv8uHj/Adc1VFTY9CI2FX2bQ7NPD66 +# dbtAKNPWH+OxO34MMFyXPHAMwvUTMz7cWY+t7sYf078aww/v87Du0Gd3p60fIoDF +# 5J/8L++LdHOWhGjUS6hrvqOlMxXToj/F8Yv4bqllkDUjLHTY+1MYECDnzfLzVjEe +# Bvnm7oKM5cBMeSIGg/9yJOOhbd8UdQN0D3QAfTNWeFg6CPEh1uCRj4+rv3wwTRlh +# J7H5PugpLfO2z590YxbAd4rzHQI91jZFWt+Pbz/haTCb17KbdCxKPYvg47HfZtJS +# z5/CgEfdcMRLTR8mTPHotQft0P41P9/17d9xI1hAAuqywhPEmN64ePMfRmRcISf/ +# 6NMnb7aXJuHLsdDkggrs74QqE+CbY/0tsdGUX1o7w7T4VyxYguINJy/OcMTweJ05 +# W4s9oCZxKCr3 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml new file mode 100644 index 000000000000..3599bf890d9d --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml @@ -0,0 +1,251 @@ + + + + + OnlineDialinConferencingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.OnlineDialinConferencingPolicy + + + + + + + + + Identity + + + + AllowService + + + + Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml new file mode 100644 index 000000000000..fad03a18d6b6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml @@ -0,0 +1,291 @@ + + + + + OnlineVoicemailPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.OnlineVoicemailPolicy + + + + + + + + + Identity + + + + Description + + + + EnableTranscription + + + + ShareData + + + + EnableTranscriptionProfanityMasking + + + + EnableEditingCallAnswerRulesSetting + + + + MaximumRecordingLength + + + + EnableTranscriptionTranslation + + + + PrimarySystemPromptLanguage + + + + SecondarySystemPromptLanguage + + + + PreambleAudioFile + + + + PostambleAudioFile + + + + PreamblePostambleMandatory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml new file mode 100644 index 000000000000..08e10ad35582 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml @@ -0,0 +1,251 @@ + + + + + TeamsAppPolicyConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration + + + + + + + + + Identity + + + + AppCatalogUri + + + + ResourceUri + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml new file mode 100644 index 000000000000..6e9a622bf6bc --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml @@ -0,0 +1,307 @@ + + + + + TeamsMeetingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.TeamsMeetingConfiguration + + + + + + + + + Identity + + + + LogoURL + + + + LegalURL + + + + HelpURL + + + + CustomFooterText + + + + DisableAnonymousJoin + + + + DisableAppInteractionForAnonymousUsers + + + + EnableQoS + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientMediaPortRangeEnabled + + + + LimitPresenterRolePermissions + + + + FeedbackSurveyForAnonymousUsers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml new file mode 100644 index 000000000000..ef3228e9efb1 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml @@ -0,0 +1,248 @@ + + + + + TeamsMigrationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.TeamsMigrationConfiguration + + + + + + + + + Identity + + + + EnableLegacyClientInterop + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml new file mode 100644 index 000000000000..600c43210093 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsMultiTenantOrganizationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.TeamsMultiTenantOrganizationConfiguration + + + + + + + + + Identity + + + + CopilotFromHomeTenant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml new file mode 100644 index 000000000000..36f60c0bfc9e --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml @@ -0,0 +1,300 @@ + + + + + TeamsRoutingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.TeamsRoutingConfiguration + + + + + + + + + Identity + + + + VoiceGatewayFqdn + + + + EnableMessagingGatewayProxy + + + + MessagingConversationRequestUrl + + + + MessagingConversationResponseUrl + + + + MgwRedirectUrlTemplate + + + + EnablePoollessTeamsOnlyUserFlighting + + + + EnablePoollessTeamsOnlyCallingFlighting + + + + EnablePoollessTeamsOnlyMessagingFlighting + + + + EnablePoollessTeamsOnlyConferencingFlighting + + + + EnablePoollessTeamsOnlyPresenceFlighting + + + + HybridEdgeFqdn + + + + DisableTeamsOnlyUsersConfCreateFlighting + + + + TenantDisabledForTeamsOnlyUsersConfCreate + + + + EnableTenantLevelPolicyCheck + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml new file mode 100644 index 000000000000..234bed9e33a6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsSipDevicesConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.TeamsSipDevicesConfiguration + + + + + + + + + Identity + + + + BulkSignIn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml new file mode 100644 index 000000000000..94f3e5482809 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml @@ -0,0 +1,298 @@ + + + + + TenantConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantConfiguration + + + + + + + + + Identity + + + + MaxAllowedDomains + + + + MaxBlockedDomains + + + + + + + + TenantLicensingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantLicensingConfiguration + + + + + + + + + Identity + + + + Status + + + + + + + + TenantWebServiceConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.TenantWebServiceConfiguration + + + + + + + + + Identity + + + + CertificateValidityPeriodInHours + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml new file mode 100644 index 000000000000..0b8baea0d378 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml @@ -0,0 +1,252 @@ + + + + + OnlineVoicemailValidationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.OnlineVoicemailValidationConfiguration + + + + + + + + + Identity + + + + AudioFileValidationEnabled + + + + AudioFileValidationUri + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml new file mode 100644 index 000000000000..7aed5a7029b5 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml @@ -0,0 +1,7666 @@ + + + + + ApplicationAccessPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ApplicationAccessPolicy + + + + + + + + + Identity + + + + AppIds + + + + Description + + + + + + + + BroadcastMeetingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.BroadcastMeetingPolicy + + + + + + + + + Identity + + + + AllowBroadcastMeeting + + + + AllowOpenBroadcastMeeting + + + + AllowBroadcastMeetingRecording + + + + AllowAnonymousBroadcastMeeting + + + + BroadcastMeetingRecordingEnforced + + + + + + + + CallerIdPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CallerIdPolicy + + + + + + + + + Identity + + + + Description + + + + Name + + + + EnableUserOverride + + + + ServiceNumber + + + + CallerIDSubstitute + + + + + + + + CallingLineIdentityView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CallingLineIdentity + + + + + + + + + Identity + + + + Description + + + + EnableUserOverride + + + + ServiceNumber + + + + CallingIDSubstitute + + + + BlockIncomingPstnCallerID + + + + ResourceAccount + + + + CompanyName + + + + + + + + CloudMeetingOpsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingOpsPolicy + + + + + + + + + Identity + + + + ActivationLocation + + + + + + + + CloudMeetingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingPolicy + + + + + + + + + Identity + + + + AllowAutoSchedule + + + + IsModernSchedulingEnabled + + + + + + + + CloudVideoInteropPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudVideoInteropPolicy + + + + + + + + + Identity + + + + EnableCloudVideoInterop + + + + + + + + ConversationRolesSettingView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ConversationRolesSetting + + + + + + + + + Identity + + + + ConversationRoles + + + + + + + + ConversationRoleView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ConversationRole + + + + + + + + + Identity + + + + Permissions + + + + Id + + + + Name + + + + IsAssignable + + + + CreatedAt + + + + UpdatedAt + + + + + + + + ConversationRolePermissionsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ConversationRolePermissions + + + + + + + + + Chat + + + + Calling + + + + + + + + ChatPermissionsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ChatPermissions + + + + + + + + + AddParticipants + + + + RemoveSelf + + + + RemoveParticipants + + + + ListParticipants + + + + GetOwnDetails + + + + GetOthersDetails + + + + UpdateOwnDetails + + + + UpdateOthersDetails + + + + ShareHistory + + + + GetChatThreadProperties + + + + UpdateChatThreadProperties + + + + DeleteChatThread + + + + SendMessage + + + + ReceiveMessage + + + + EditOwnMessage + + + + EditOthersMessage + + + + DeleteOwnMessage + + + + DeleteOthersMessage + + + + + + + + CallingPermissionsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CallingPermissions + + + + + + + + + AddParticipants + + + + AddPhoneNumbers + + + + RemoveParticipants + + + + SendVideo + + + + RestrictOthersVideo + + + + SendAudio + + + + RestrictOthersAudio + + + + ShareScreen + + + + MuteSelf + + + + UnmuteSelf + + + + MuteOthers + + + + SpotlightParticipants + + + + RemoveSpotlights + + + + + + + + ExternalAccessPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalAccessPolicy + + + + + + + + + Identity + + + + AllowedExternalDomains + + + + BlockedExternalDomains + + + + Description + + + + EnableFederationAccess + + + + EnableXmppAccess + + + + EnablePublicCloudAudioVideoAccess + + + + EnableTeamsSmsAccess + + + + EnableOutsideAccess + + + + EnableAcsFederationAccess + + + + EnableTeamsConsumerAccess + + + + EnableTeamsConsumerInbound + + + + RestrictTeamsConsumerAccessToExternalUserProfiles + + + + FederatedBilateralChats + + + + CommunicationWithExternalOrgs + + + + + + + + HostedVoicemailPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.HostedVoicemailPolicy + + + + + + + + + Identity + + + + Description + + + + Destination + + + + Organization + + + + BusinessVoiceEnabled + + + + NgcEnabled + + + + + + + + LocationPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.LocationPolicy + + + + + + + + + Identity + + + + EmergencyNumbers + + + + Description + + + + EnhancedEmergencyServicesEnabled + + + + LocationRequired + + + + UseLocationForE911Only + + + + PstnUsage + + + + EmergencyDialString + + + + EmergencyDialMask + + + + NotificationUri + + + + ConferenceUri + + + + ConferenceMode + + + + LocationRefreshInterval + + + + EnhancedEmergencyServiceDisclaimer + + + + UseHybridVoiceForE911 + + + + EnablePlusPrefix + + + + AllowEmergencyCallsWithoutLineURI + + + + + + + + EmergencyNumberView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.EmergencyNumber + + + + + + + + + DialString + + + + DialMask + + + + + + + + LocationProfileView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.LocationProfile + + + + + + + + + Identity + + + + Description + + + + DialinConferencingRegion + + + + NormalizationRules + + + + PriorityNormalizationRules + + + + CountryCode + + + + State + + + + City + + + + ExternalAccessPrefix + + + + SimpleName + + + + OptimizeDeviceDialing + + + + ITUCountryPrefix + + + + + + + + NormalizationRuleView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NormalizationRule + + + + + + + + + Identity + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + IsInternalExtension + + + + + + + + MeetingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingPolicy + + + + + + + + + Identity + + + + AllowIPAudio + + + + AllowIPVideo + + + + AllowMultiView + + + + Description + + + + AllowParticipantControl + + + + AllowAnnotations + + + + DisablePowerPointAnnotations + + + + AllowUserToScheduleMeetingsWithAppSharing + + + + ApplicationSharingMode + + + + AllowNonEnterpriseVoiceUsersToDialOut + + + + AllowAnonymousUsersToDialOut + + + + AllowAnonymousParticipantsInMeetings + + + + AllowFederatedParticipantJoinAsSameEnterprise + + + + AllowExternalUsersToSaveContent + + + + AllowExternalUserControl + + + + AllowExternalUsersToRecordMeeting + + + + AllowPolls + + + + AllowSharedNotes + + + + AllowQandA + + + + AllowOfficeContent + + + + EnableDialInConferencing + + + + EnableAppDesktopSharing + + + + AllowConferenceRecording + + + + EnableP2PRecording + + + + EnableFileTransfer + + + + EnableP2PFileTransfer + + + + EnableP2PVideo + + + + AllowLargeMeetings + + + + EnableOnlineMeetingPromptForLyncResources + + + + EnableDataCollaboration + + + + MaxVideoConferenceResolution + + + + MaxMeetingSize + + + + AudioBitRateKb + + + + VideoBitRateKb + + + + AppSharingBitRateKb + + + + FileTransferBitRateKb + + + + TotalReceiveVideoBitRateKb + + + + EnableMultiViewJoin + + + + CloudRecordingServiceSupport + + + + EnableReliableConferenceDeletion + + + + + + + + NgcBvMigrationPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NgcBvMigrationPolicy + + + + + + + + + Identity + + + + Description + + + + PstnOut + + + + + + + + OnlineAudioConferencingRoutingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineAudioConferencingRoutingPolicy + + + + + + + + + Identity + + + + OnlinePstnUsages + + + + Description + + + + RouteType + + + + + + + + OnlinePstnUsagesView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlinePstnUsages + + + + + + + + + Identity + + + + Usage + + + + + + + + OnlineDialOutPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialOutPolicy + + + + + + + + + Identity + + + + AllowPSTNConferencingDialOutType + + + + AllowPSTNOutboundCallingType + + + + + + + + OnlineRouteView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineRoute + + + + + + + + + Identity + + + Priority + + + + Description + + + + NumberPattern + + + + OnlinePstnUsages + + + + OnlinePstnGatewayList + + + + BridgeSourcePhoneNumber + + + + Name + + + + + + + + OnlinePstnRoutingSettingsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlinePstnRoutingSettings + + + + + + + + + Identity + + + + OnlineRoute + + + + + + + + OnlineVoiceRoutingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoiceRoutingPolicy + + + + + + + + + Identity + + + + OnlinePstnUsages + + + + Description + + + + RouteType + + + + + + + + PstnUsagesView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PstnUsages + + + + + + + + + Identity + + + + Usage + + + + + + + + TeamsAppPermissionPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPermissionPolicy + + + + + + + + + Identity + + + + DefaultCatalogApps + + + + GlobalCatalogApps + + + + PrivateCatalogApps + + + + Description + + + + DefaultCatalogAppsType + + + + GlobalCatalogAppsType + + + + PrivateCatalogAppsType + + + + + + + + DefaultCatalogAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp + + + + + + + + + Identity + + + Priority + + + + Id + + + + + + + + GlobalCatalogAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp + + + + + + + + + Identity + + + Priority + + + + Id + + + + + + + + PrivateCatalogAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp + + + + + + + + + Identity + + + Priority + + + + Id + + + + + + + + TeamsAppSetupPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppSetupPolicy + + + + + + + + + Identity + + + + AppPresetList + + + + PinnedAppBarApps + + + + PinnedMessageBarApps + + + + AppPresetMeetingList + + + + AdditionalCustomizationApps + + + + PinnedCallingBarApps + + + + Description + + + + AllowSideLoading + + + + AllowUserPinning + + + + + + + + AppPresetView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset + + + + + + + + + Identity + + + Priority + + + + Id + + + + + + + + PinnedAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp + + + + + + + + + Identity + + + Priority + + + + Id + + + + Order + + + + + + + + PinnedMessageBarAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp + + + + + + + + + Identity + + + Priority + + + + Id + + + + Order + + + + + + + + AppPresetMeetingView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting + + + + + + + + + Identity + + + Priority + + + + Id + + + + + + + + AdditionalCustomizationAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp + + + + + + + + + Identity + + + Priority + + + + Id + + + + AdditionalCustomizationId + + + + + + + + PinnedCallingBarAppView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp + + + + + + + + + Identity + + + Priority + + + + Id + + + + + + + + TeamsBranchSurvivabilityPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsBranchSurvivabilityPolicy + + + + + + + + + Identity + + + + BranchApplianceFqdns + + + + + + + + TeamsCallHoldPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallHoldPolicy + + + + + + + + + Identity + + + + Description + + + + AudioFileId + + + + StreamingSourceUrl + + + + StreamingSourceAuthType + + + + + + + + TeamsCallingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallingPolicy + + + + + + + + + Identity + + + + Description + + + + AllowPrivateCalling + + + + AllowWebPSTNCalling + + + + AllowSIPDevicesCalling + + + + AllowVoicemail + + + + AllowCallGroups + + + + AllowDelegation + + + + AllowCallForwardingToUser + + + + AllowCallForwardingToPhone + + + + PreventTollBypass + + + + BusyOnBusyEnabledType + + + + MusicOnHoldEnabledType + + + + AllowCloudRecordingForCalls + + + + ExplicitRecordingConsent + + + + AllowTranscriptionForCalling + + + + PopoutForIncomingPstnCalls + + + + PopoutAppPathForIncomingPstnCalls + + + + LiveCaptionsEnabledTypeForCalling + + + + AutoAnswerEnabledType + + + + SpamFilteringEnabledType + + + + CallRecordingExpirationDays + + + + AllowCallRedirect + + + + InboundPstnCallRoutingTreatment + + + + InboundFederatedCallRoutingTreatment + + + + EnableWebPstnMediaBypass + + + + EnableSpendLimits + + + + CallingSpendUserLimit + + + + Copilot + + + + ShowTeamsCallsInCallLog + + + + RealTimeText + + + + AIInterpreter + + + + VoiceSimulationInInterpreter + + + + + + + + TeamsCallParkPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallParkPolicy + + + + + + + + + Identity + + + + Description + + + + AllowCallPark + + + + PickupRangeStart + + + + PickupRangeEnd + + + + ParkTimeoutSeconds + + + + + + + + TeamsCarrierEmergencyCallRoutingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCarrierEmergencyCallRoutingPolicy + + + + + + + + + Identity + + + + LocationPolicyId + + + + Description + + + + + + + + TeamsChannelsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsChannelsPolicy + + + + + + + + + Identity + + + + Description + + + + AllowOrgWideTeamCreation + + + + EnablePrivateTeamDiscovery + + + + AllowPrivateChannelCreation + + + + AllowSharedChannelCreation + + + + AllowChannelSharingToExternalUser + + + + AllowUserToParticipateInExternalSharedChannel + + + + ThreadedChannelCreation + + + + + + + + TeamsComplianceRecordingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsComplianceRecordingPolicy + + + + + + + + + Identity + + + + ComplianceRecordingApplications + + + + Enabled + + + + WarnUserOnRemoval + + + + DisableComplianceRecordingAudioNotificationForCalls + + + + Description + + + + RecordReroutedCalls + + + + CustomPromptsEnabled + + + + CustomPromptsPackageId + + + + CustomBanner + + + + + + + + ComplianceRecordingApplicationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ComplianceRecordingApplication + + + + + + + + + Identity + + + Priority + + + + ComplianceRecordingPairedApplications + + + + Id + + + + RequiredBeforeMeetingJoin + + + + RequiredBeforeCallEstablishment + + + + RequiredDuringMeeting + + + + RequiredDuringCall + + + + ConcurrentInvitationCount + + + + + + + + ComplianceRecordingPairedApplicationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ComplianceRecordingPairedApplication + + + + + + + + + Id + + + + + + + + TeamsCortanaPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCortanaPolicy + + + + + + + + + Identity + + + + Description + + + + CortanaVoiceInvocationMode + + + + AllowCortanaVoiceInvocation + + + + AllowCortanaAmbientListening + + + + AllowCortanaInContextSuggestions + + + + + + + + TeamsEducationAssignmentsAppPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEducationAssignmentsAppPolicy + + + + + + + + + Identity + + + + ParentDigestEnabledType + + + + MakeCodeEnabledType + + + + TurnItInEnabledType + + + + TurnItInApiUrl + + + + TurnItInApiKey + + + + + + + + TeamsEmergencyCallingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingPolicy + + + + + + + + + Identity + + + + ExtendedNotifications + + + + NotificationGroup + + + + NotificationDialOutNumber + + + + ExternalLocationLookupMode + + + + NotificationMode + + + + EnhancedEmergencyServiceDisclaimer + + + + Description + + + + + + + + TeamsEmergencyCallingExtendedNotificationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification + + + + + + + + + EmergencyDialString + + + + NotificationGroup + + + + NotificationDialOutNumber + + + + NotificationMode + + + + + + + + TeamsEmergencyCallRoutingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallRoutingPolicy + + + + + + + + + Identity + + + + EmergencyNumbers + + + + AllowEnhancedEmergencyServices + + + + Description + + + + + + + + TeamsEmergencyNumberView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyNumber + + + + + + + + + EmergencyDialString + + + + EmergencyDialMask + + + + OnlinePSTNUsage + + + + + + + + TeamsEnhancedEncryptionPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEnhancedEncryptionPolicy + + + + + + + + + Identity + + + + CallingEndtoEndEncryptionEnabledType + + + + MeetingEndToEndEncryption + + + + Description + + + + + + + + TeamsEventsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEventsPolicy + + + + + + + + + Identity + + + + AllowWebinars + + + + EventAccessType + + + + AllowTownhalls + + + + TownhallEventAttendeeAccess + + + + AllowEmailEditing + + + + AllowedQuestionTypesInRegistrationForm + + + + AllowEventIntegrations + + + + AllowedWebinarTypesForRecordingPublish + + + + AllowedTownhallTypesForRecordingPublish + + + + RecordingForTownhall + + + + RecordingForWebinar + + + + TranscriptionForTownhall + + + + TranscriptionForWebinar + + + + TownhallChatExperience + + + + BroadcastPremiumApps + + + + UseMicrosoftECDN + + + + ImmersiveEvents + + + + MaxResolutionForTownhall + + + + HighBitrateForTownhall + + + + Description + + + + + + + + TeamsFeedbackPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFeedbackPolicy + + + + + + + + + Identity + + + + UserInitiatedMode + + + + ReceiveSurveysMode + + + + AllowScreenshotCollection + + + + AllowEmailCollection + + + + AllowLogCollection + + + + EnableFeatureSuggestions + + + + + + + + TeamsFilesPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFilesPolicy + + + + + + + + + Identity + + + + NativeFileEntryPoints + + + + SPChannelFilesTab + + + + DefaultFileUploadAppId + + + + FileSharingInChatswithExternalUsers + + + + + + + + TeamsInteropPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsInteropPolicy + + + + + + + + + Identity + + + + AllowEndUserClientOverride + + + + CallingDefaultClient + + + + ChatDefaultClient + + + + + + + + TeamsIPPhonePolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsIPPhonePolicy + + + + + + + + + Identity + + + + Description + + + + SignInMode + + + + SearchOnCommonAreaPhoneMode + + + + AllowHomeScreen + + + + AllowBetterTogether + + + + AllowHotDesking + + + + HotDeskingIdleTimeoutInMinutes + + + + + + + + TeamsMediaLoggingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMediaLoggingPolicy + + + + + + + + + Identity + + + + Description + + + + AllowMediaLogging + + + + + + + + TeamsMeetingBrandingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBrandingPolicy + + + + + + + + + Identity + + + + NdiAssuranceSlateImages + + + + MeetingBackgroundImages + + + + MeetingBrandingThemes + + + + DefaultTheme + + + + EnableMeetingOptionsThemeOverride + + + + EnableNdiAssuranceSlate + + + + EnableMeetingBackgroundImages + + + + RequireBackgroundEffect + + + + + + + + NdiAssuranceSlateView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate + + + + + + + + + Id + + + + Name + + + + NdiImageUri + + + + IsDefault + + + + + + + + MeetingBackgroundImageView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingBackgroundImage + + + + + + + + + Id + + + + Order + + + + Name + + + + IsRequired + + + + IsHidden + + + + ImageUri + + + + + + + + MeetingBrandingThemeView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingBrandingTheme + + + + + + + + + DisplayName + + + + LogoImageLightUri + + + + LogoImageDarkUri + + + + BackgroundImageLightUri + + + + BackgroundImageDarkUri + + + + LogoImageLightPreAuthUri + + + + LogoImageDarkPreAuthUri + + + + MeetingInviteLogoImageLightPreAuthUri + + + + MeetingInviteLogoImageDarkPreAuthUri + + + + BackgroundImageLightPreAuthUri + + + + BackgroundImageDarkPreAuthUri + + + + BrandAccentColor + + + + Enabled + + + + Identity + + + + + + + + TeamsMeetingBroadcastPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBroadcastPolicy + + + + + + + + + Identity + + + + Description + + + + AllowBroadcastScheduling + + + + AllowBroadcastTranscription + + + + BroadcastAttendeeVisibilityMode + + + + BroadcastRecordingMode + + + + + + + + TeamsMeetingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingPolicy + + + + + + + + + Identity + + + + Description + + + + AllowChannelMeetingScheduling + + + + AllowMeetNow + + + + AllowPrivateMeetNow + + + + MeetingChatEnabledType + + + + AllowExternalNonTrustedMeetingChat + + + + CopyRestriction + + + + LiveCaptionsEnabledType + + + + DesignatedPresenterRoleMode + + + + AllowIPAudio + + + + AllowIPVideo + + + + AllowEngagementReport + + + + AllowTrackingInReport + + + + IPAudioMode + + + + IPVideoMode + + + + AllowAnonymousUsersToDialOut + + + + AllowAnonymousUsersToStartMeeting + + + + AllowAnonymousUsersToJoinMeeting + + + + BlockedAnonymousJoinClientTypes + + + + AllowedStreamingMediaInput + + + + ExplicitRecordingConsent + + + + AllowLocalRecording + + + + AutoRecording + + + + ParticipantNameChange + + + + AllowPrivateMeetingScheduling + + + + AutoAdmittedUsers + + + + AllowCloudRecording + + + + AllowRecordingStorageOutsideRegion + + + + RecordingStorageMode + + + + AllowOutlookAddIn + + + + AllowPowerPointSharing + + + + AllowParticipantGiveRequestControl + + + + AllowExternalParticipantGiveRequestControl + + + + AllowSharedNotes + + + + AllowWhiteboard + + + + AllowTranscription + + + + AllowNetworkConfigurationSettingsLookup + + + + MediaBitRateKb + + + + ScreenSharingMode + + + + VideoFiltersMode + + + + AllowPSTNUsersToBypassLobby + + + + AllowOrganizersToOverrideLobbySettings + + + + PreferredMeetingProviderForIslandsMode + + + + AllowNDIStreaming + + + + SpeakerAttributionMode + + + + EnrollUserOverride + + + + RoomAttributeUserOverride + + + + StreamingAttendeeMode + + + + AttendeeIdentityMasking + + + + AllowBreakoutRooms + + + + TeamsCameraFarEndPTZMode + + + + AllowMeetingReactions + + + + AllowMeetingRegistration + + + + WhoCanRegister + + + + AllowScreenContentDigitization + + + + AllowCarbonSummary + + + + RoomPeopleNameUserOverride + + + + AllowMeetingCoach + + + + NewMeetingRecordingExpirationDays + + + + LiveStreamingMode + + + + MeetingInviteLanguages + + + + ChannelRecordingDownload + + + + AllowCartCaptionsScheduling + + + + AllowTasksFromTranscript + + + + InfoShownInReportMode + + + + LiveInterpretationEnabledType + + + + QnAEngagementMode + + + + AllowImmersiveView + + + + AllowAvatarsInGallery + + + + AllowAnnotations + + + + AllowDocumentCollaboration + + + + AllowWatermarkForScreenSharing + + + + AllowWatermarkForCameraVideo + + + + AllowWatermarkCustomizationForCameraVideo + + + + WatermarkForCameraVideoOpacity + + + + WatermarkForCameraVideoPattern + + + + AllowWatermarkCustomizationForScreenSharing + + + + WatermarkForScreenSharingOpacity + + + + WatermarkForScreenSharingPattern + + + + WatermarkForAnonymousUsers + + + + DetectSensitiveContentDuringScreenSharing + + + + AudibleRecordingNotification + + + + ConnectToMeetingControls + + + + Copilot + + + + AutomaticallyStartCopilot + + + + VoiceIsolation + + + + ExternalMeetingJoin + + + + ContentSharingInExternalMeetings + + + + AllowedUsersForMeetingDetails + + + + SmsNotifications + + + + CaptchaVerificationForMeetingJoin + + + + UsersCanAdmitFromLobby + + + + LobbyChat + + + + AnonymousUserAuthenticationMethod + + + + NoiseSuppressionForDialInParticipants + + + + RealTimeText + + + + AIInterpreter + + + + VoiceSimulationInInterpreter + + + + ParticipantSlideControl + + + + + + + + TeamsMeetingTemplatePermissionPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingTemplatePermissionPolicy + + + + + + + + + Identity + + + + HiddenMeetingTemplates + + + + Description + + + + + + + + HiddenMeetingTemplateView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenMeetingTemplate + + + + + + + + + Id + + + + + + + + TeamsMessagingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMessagingPolicy + + + + + + + + + Identity + + + + Description + + + + AllowUrlPreviews + + + + AllowOwnerDeleteMessage + + + + AllowUserEditMessage + + + + AllowUserDeleteMessage + + + + UsersCanDeleteBotMessages + + + + AllowUserDeleteChat + + + + AllowUserChat + + + + AllowRemoveUser + + + + AllowGiphy + + + + GiphyRatingType + + + + AllowGiphyDisplay + + + + AllowPasteInternetImage + + + + AllowMemes + + + + AllowImmersiveReader + + + + AllowStickers + + + + AllowUserTranslation + + + + ReadReceiptsEnabledType + + + + AllowPriorityMessages + + + + AllowSmartReply + + + + AllowSmartCompose + + + + ChannelsInChatListEnabledType + + + + AudioMessageEnabledType + + + + ChatPermissionRole + + + + AllowFullChatPermissionUserToDeleteAnyMessage + + + + AllowFluidCollaborate + + + + AllowVideoMessages + + + + AllowCommunicationComplianceEndUserReporting + + + + AllowChatWithGroup + + + + AllowSecurityEndUserReporting + + + + InOrganizationChatControl + + + + AllowGroupChatJoinLinks + + + + CreateCustomEmojis + + + + UseB2BInvitesToAddExternalUsers + + + + DeleteCustomEmojis + + + + AutoShareFilesInExternalChats + + + + DesignerForBackgroundsAndImages + + + + AllowCustomGroupChatAvatars + + + + + + + + TeamsMobilityPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMobilityPolicy + + + + + + + + + Identity + + + + Description + + + + IPVideoMobileMode + + + + IPAudioMobileMode + + + + MobileDialerPreference + + + + + + + + TeamsNetworkRoamingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsNetworkRoamingPolicy + + + + + + + + + Identity + + + + AllowIPVideo + + + + MediaBitRateKb + + + + Description + + + + + + + + TeamsNotificationAndFeedsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsNotificationAndFeedsPolicy + + + + + + + + + Identity + + + + Description + + + + SuggestedFeedsEnabledType + + + + TrendingFeedsEnabledType + + + + + + + + TeamsOwnersPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsOwnersPolicy + + + + + + + + + Identity + + + + Description + + + + AllowPrivateTeams + + + + AllowOrgwideTeams + + + + AllowPublicTeams + + + + + + + + TeamsRoomVideoTeleConferencingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoomVideoTeleConferencingPolicy + + + + + + + + + Identity + + + + Description + + + + Enabled + + + + AreaCode + + + + ReceiveExternalCalls + + + + ReceiveInternalCalls + + + + PlaceExternalCalls + + + + PlaceInternalCalls + + + + + + + + TeamsSharedCallingRoutingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSharedCallingRoutingPolicy + + + + + + + + + Identity + + + + EmergencyNumbers + + + + ResourceAccount + + + + Description + + + + + + + + TeamsShiftsAppPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsShiftsAppPolicy + + + + + + + + + Identity + + + + AllowTimeClockLocationDetection + + + + + + + + TeamsShiftsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsShiftsPolicy + + + + + + + + + Identity + + + + ShiftNoticeFrequency + + + + ShiftNoticeMessageType + + + + ShiftNoticeMessageCustom + + + + AccessType + + + + AccessGracePeriodMinutes + + + + EnableScheduleOwnerPermissions + + + + + + + + TeamsSyntheticAutomatedCallPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSyntheticAutomatedCallPolicy + + + + + + + + + Identity + + + + Description + + + + SyntheticAutomatedCallsMode + + + + + + + + TeamsTargetingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTargetingPolicy + + + + + + + + + Identity + + + + Description + + + + ManageTagsPermissionMode + + + + TeamOwnersEditWhoCanManageTagsMode + + + + SuggestedPresetTags + + + + CustomTagsMode + + + + ShiftBackedTagsMode + + + + AutomaticTagsMode + + + + + + + + TeamsTasksPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTasksPolicy + + + + + + + + + Identity + + + + TasksMode + + + + AllowActivityWhenTasksPublished + + + + + + + + TeamsTemplatePermissionPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTemplatePermissionPolicy + + + + + + + + + Identity + + + + HiddenTemplates + + + + Description + + + + + + + + HiddenTemplateView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate + + + + + + + + + Id + + + + + + + + TeamsUpdateManagementPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpdateManagementPolicy + + + + + + + + + Identity + + + + DisabledInProductMessages + + + + Description + + + + AllowManagedUpdates + + + + AllowPreview + + + + UpdateDayOfWeek + + + + UpdateTime + + + + $_.UpdateTimeOfDay.ToShortTimeString() + + + + AllowPublicPreview + + + + UseNewTeamsClient + + + + OCDIRedirect + + + + BlockLegacyAuthorization + + + + + + + + TeamsUpgradeOverridePolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradeOverridePolicy + + + + + + + + + Identity + + + + Description + + + + ProvisionedAsTeamsOnly + + + + SkypePoolMode + + + + Action + + + + Enabled + + + + + + + + TeamsUpgradePolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradePolicy + + + + + + + + + Identity + + + + Description + + + + Mode + + + + NotifySfbUsers + + + + Action + + + + + + + + TeamsVdiPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVdiPolicy + + + + + + + + + Identity + + + + DisableCallsAndMeetings + + + + DisableAudioVideoInCallsAndMeetings + + + + VDI2Optimization + + + + + + + + TeamsVerticalPackagePolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVerticalPackagePolicy + + + + + + + + + Identity + + + + PackageIncludedPolices + + + + Description + + + + PackageId + + + + FirstRunExperienceId + + + + + + + + PolicyTypeToPolicyInstanceView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PolicyTypeToPolicyInstance + + + + + + + + + PolicyType + + + + PolicyName + + + + + + + + TeamsVideoInteropServicePolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVideoInteropServicePolicy + + + + + + + + + Identity + + + + Description + + + + ProviderName + + + + Enabled + + + + + + + + TeamsVoiceApplicationsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVoiceApplicationsPolicy + + + + + + + + + Identity + + + + Description + + + + AllowAutoAttendantBusinessHoursGreetingChange + + + + AllowAutoAttendantAfterHoursGreetingChange + + + + AllowAutoAttendantHolidayGreetingChange + + + + AllowAutoAttendantBusinessHoursChange + + + + AllowAutoAttendantTimeZoneChange + + + + AllowAutoAttendantLanguageChange + + + + AllowAutoAttendantHolidaysChange + + + + AllowAutoAttendantBusinessHoursRoutingChange + + + + AllowAutoAttendantAfterHoursRoutingChange + + + + AllowAutoAttendantHolidayRoutingChange + + + + AllowCallQueueWelcomeGreetingChange + + + + AllowCallQueueMusicOnHoldChange + + + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + + + AllowCallQueueTimeoutSharedVoicemailGreetingChange + + + + AllowCallQueueOptOutChange + + + + AllowCallQueueAgentOptChange + + + + AllowCallQueueMembershipChange + + + + AllowCallQueueRoutingMethodChange + + + + AllowCallQueuePresenceBasedRoutingChange + + + + CallQueueAgentMonitorMode + + + + CallQueueAgentMonitorNotificationMode + + + + AllowCallQueueLanguageChange + + + + AllowCallQueueOverflowRoutingChange + + + + AllowCallQueueTimeoutRoutingChange + + + + AllowCallQueueNoAgentsRoutingChange + + + + AllowCallQueueConferenceModeChange + + + + AllowCallQueueNoAgentSharedVoicemailGreetingChange + + + + RealTimeAutoAttendantMetricsPermission + + + + RealTimeCallQueueMetricsPermission + + + + RealTimeAgentMetricsPermission + + + + HistoricalAutoAttendantMetricsPermission + + + + HistoricalCallQueueMetricsPermission + + + + HistoricalAgentMetricsPermission + + + + + + + + TeamsWatermarkPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsWatermarkPolicy + + + + + + + + + Identity + + + + AllowForScreenSharing + + + + AllowForCameraVideo + + + + Description + + + + + + + + TeamsWorkLoadPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsWorkLoadPolicy + + + + + + + + + Identity + + + + Description + + + + AllowMeeting + + + + AllowMeetingPinned + + + + AllowMessaging + + + + AllowMessagingPinned + + + + AllowCalling + + + + AllowCallingPinned + + + + + + + + TenantBlockedCallingNumbersView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantBlockedCallingNumbers + + + + + + + + + Identity + + + + InboundBlockedNumberPatterns + + + + InboundExemptNumberPatterns + + + + Enabled + + + + Name + + + + + + + + InboundBlockedNumberPatternView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.InboundBlockedNumberPattern + + + + + + + + + Identity + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + InboundExemptNumberPatternView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.InboundExemptNumberPattern + + + + + + + + + Identity + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + TenantDialPlanView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantDialPlan + + + + + + + + + Identity + + + + Description + + + + NormalizationRules + + + + ExternalAccessPrefix + + + + SimpleName + + + + OptimizeDeviceDialing + + + + + + + + VoicePolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicePolicy + + + + + + + + + Identity + + + + PstnUsages + + + + CustomCallForwardingSimulRingUsages + + + + Description + + + + AllowSimulRing + + + + AllowCallForwarding + + + + AllowPSTNReRouting + + + + Name + + + + EnableDelegation + + + + EnableTeamCall + + + + EnableCallTransfer + + + + EnableCallPark + + + + EnableBusyOptions + + + + EnableMaliciousCallTracing + + + + EnableBWPolicyOverride + + + + PreventPSTNTollBypass + + + + EnableFMC + + + + CallForwardingSimulRingUsageType + + + + VoiceDeploymentMode + + + + EnableVoicemailEscapeTimer + + + + PSTNVoicemailEscapeTimer + + + + TenantAdminEnabled + + + + BusinessVoiceEnabled + + + + + + + + VoiceRoutingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoiceRoutingPolicy + + + + + + + + + Identity + + + + PstnUsages + + + + Description + + + + Name + + + + AllowInternationalCalls + + + + HybridPSTNSiteIndex + + + + + + + + TeamsAcsFederationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAcsFederationConfiguration + + + + + + + + + Identity + + + + AllowedAcsResources + + + + EnableAcsUsers + + + + RequireAcsFederationForMeeting + + + + LabelForAllowedAcsUsers + + + + HideBannerForAllowedAcsUsers + + + + + + + + DialInConferencingDtmfConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DialInConferencingDtmfConfiguration + + + + + + + + + Identity + + + + CommandCharacter + + + + MuteUnmuteCommand + + + + AudienceMuteCommand + + + + LockUnlockConferenceCommand + + + + HelpCommand + + + + PrivateRollCallCommand + + + + EnableDisableAnnouncementsCommand + + + + AdmitAll + + + + OperatorLineUri + + + + + + + + DialInConferencingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DialInConferencingConfiguration + + + + + + + + + Identity + + + + EntryExitAnnouncementsType + + + + BatchToneAnnouncements + + + + EnableNameRecording + + + + EntryExitAnnouncementsEnabledByDefault + + + + UsePinAuth + + + + PinAuthType + + + + EnableInterpoolTransfer + + + + EnableAccessibilityOptions + + + + EnableAnnouncementServiceTransfer + + + + + + + + DialInConferencingLanguageListView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DialInConferencingLanguageList + + + + + + + + + Identity + + + + Languages + + + + + + + + TenantFederationSettingsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantFederationSettings + + + + + + + + + Identity + + + + AllowedDomains + + + + BlockedDomains + + + + AllowedTrialTenantDomains + + + + AllowFederatedUsers + + + + AllowTeamsSms + + + + AllowTeamsConsumer + + + + AllowTeamsConsumerInbound + + + + TreatDiscoveredPartnersAsUnverified + + + + SharedSipAddressSpace + + + + RestrictTeamsConsumerToExternalUserProfiles + + + + BlockAllSubdomains + + + + ExternalAccessWithTrialTenants + + + + DomainBlockingForMDOAdminsInTeams + + + + + + + + AllowedDomainsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AllowedDomains + + + + + + + + + AllowedDomainsChoice + + + + + + + + AllowListView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AllowList + + + + + + + + + AllowedDomain + + + + + + + + DomainPatternView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DomainPattern + + + + + + + + + Domain + + + + + + + + AllowedDomainView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AllowedDomain + + + + + + + + + Identity + + + + Domain + + + + ProxyFqdn + + + + VerificationLevel + + + + Comment + + + + MarkForMonitoring + + + + + + + + BlockedDomainView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.BlockedDomain + + + + + + + + + Identity + + + + Domain + + + + Comment + + + + + + + + AdditionalInternalDomainView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalInternalDomain + + + + + + + + + Identity + + + + Domain + + + + + + + + MediaRelaySettingsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.MediaRelaySettings + + + + + + + + + Identity + + + + MaxTokenLifetime + + + + MaxBandwidthPerUserKb + + + + MaxBandwidthPerPortKb + + + + PermissionListIgnoreSeconds + + + + MaxAverageConnPps + + + + MaxPeakConnPps + + + + TRAPUrl + + + + TRAPCallDistribution + + + + TRAPHttpclientRetryCount + + + + TRAPHttpclientTimeoutInMilliSeconds + + + + HideMrasInternalFqdnForClientRequest + + + + + + + + OnlineDialinPageConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinPageConfiguration + + + + + + + + + Identity + + + + MaximumConcurrentBvdGetSipResourceRequests + + + + MaximumConcurrentBvdGetBridgeRequests + + + + EnablePinServicesUserLookup + + + + EnableRedirectToAzureDialinPage + + + + AzureDialinPageUrl + + + + + + + + OnlineDialinConferencingTenantConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencingTenantConfiguration + + + + + + + + + Identity + + + + Status + + + + EnableCustomTrunking + + + + ThirdPartyNumberStatus + + + + + + + + SharedResourcesConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.SharedResourcesConfiguration + + + + + + + + + Identity + + + + SupportedRings + + + + TelephoneNumberManagementV2ServiceUrl + + + + TenantAdminApiServiceUrl + + + + BusinessVoiceDirectoryUrl + + + + TgsServiceUrl + + + + AgentProvisioningServiceUrl + + + + SipDomain + + + + ProxyFqdn + + + + EmailServiceUrl + + + + MicrosoftEmailServiceUrl + + + + MicrosoftAuthenticationUrl + + + + EmailFlightPercentage + + + + DialOutInformationLink + + + + MediaStorageServiceUrl + + + + GlobalMediaStorageServiceUrl + + + + MediaStorageServiceRegion + + + + TelephoneNumberManagementServiceUrl + + + + NameDictionaryServiceUrl + + + + OrganizationalAutoAttendantAdminServiceUrl + + + + IsEcsProdEnvironment + + + + DialinBridgeFormatEnabled + + + + ApplicationConfigurationServiceUrl + + + + RecognizeServiceEndpointUrl + + + + RecognizeServiceAadResourceUrl + + + + AuthorityUrl + + + + ConferenceAutoAttendantApplicationId + + + + SchedulerMaxBvdConcurrentCalls + + + + + + + + OnlineDialinConferencingServiceConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencingServiceConfiguration + + + + + + + + + Identity + + + + AnonymousCallerGracePeriod + + + + AnonymousCallerMeetingRuntime + + + + AuthenticatedCallerMeetingRuntime + + + + + + + + OnlineDialInConferencingNumberMapView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialInConferencingNumberMap + + + + + + + + + Identity + + + Priority + + + + Geocodes + + + + Name + + + + Shared + + + + + + + + OnlineDialInConferencingMarketProfileView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialInConferencingMarketProfile + + + + + + + + + Identity + + + Priority + + + + NumberMaps + + + + Name + + + + Code + + + + Region + + + + DefaultBridgeGeocode + + + + + + + + OnlineDialinConferencingDefaultLanguageView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencingDefaultLanguage + + + + + + + + + Identity + + + + DefaultLanguages + + + + + + + + DefaultLanguageEntryView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultLanguageEntry + + + + + + + + + SecondaryLanguages + + + + Geocode + + + + PrimaryLanguage + + + + + + + + OnlineDialInConferencingTenantSettingsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialInConferencingTenantSettings + + + + + + + + + Identity + + + + AllowedDialOutExternalDomains + + + + EnableEntryExitNotifications + + + + EntryExitAnnouncementsType + + + + EnableNameRecording + + + + IncludeTollFreeNumberInMeetingInvites + + + + MaskPstnNumbersType + + + + PinLength + + + + AllowPSTNOnlyMeetingsByDefault + + + + AutomaticallySendEmailsToUsers + + + + SendEmailFromOverride + + + + SendEmailFromAddress + + + + SendEmailFromDisplayName + + + + AutomaticallyReplaceAcpProvider + + + + UseUniqueConferenceIds + + + + AutomaticallyMigrateUserMeetings + + + + MigrateServiceNumbersOnCrossForestMove + + + + EnableDialOutJoinConfirmation + + + + AllowFederatedUsersToDialOutToSelf + + + + AllowFederatedUsersToDialOutToThirdParty + + + + + + + + OnlineDialInConferencingAllowedDomainView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialInConferencingAllowedDomain + + + + + + + + + Identity + + + + Domain + + + + + + + + PlatformApplicationsConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PlatformApplicationsConfiguration + + + + + + + + + Identity + + + + PublicApplicationList + + + + PublicApplicationListMode + + + + + + + + ApplicationMeetingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ApplicationMeetingConfiguration + + + + + + + + + Identity + + + + AllowRemoveParticipantAppIds + + + + + + + + TeamsAudioConferencingCustomPromptsConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAudioConferencingCustomPromptsConfiguration + + + + + + + + + Identity + + + + Prompts + + + + Packages + + + + + + + + CustomPromptView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CustomPrompt + + + + + + + + + Id + + + + Name + + + + AudioPrompt + + + + TextPrompt + + + + Type + + + + Locale + + + + + + + + CustomPromptPackageView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CustomPromptPackage + + + + + + + + + InboundStartRecordingPrompt + + + + InboundEndRecordingPrompt + + + + OutboundStartRecordingPrompt + + + + OutboundEndRecordingPrompt + + + + MeetingStartRecordingPrompt + + + + MeetingEndRecordingPrompt + + + + Id + + + + Name + + + + DefaultLocale + + + + + + + + TeamsConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsConfiguration + + + + + + + + + Identity + + + + EnabledForVoice + + + + EnabledForMessaging + + + + + + + + TeamsUpgradeConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradeConfiguration + + + + + + + + + Identity + + + + DownloadTeams + + + + SfBMeetingJoinUx + + + + BlockLegacyAuthorization + + + + + + + + TeamsClientConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsClientConfiguration + + + + + + + + + Identity + + + + AllowEmailIntoChannel + + + + RestrictedSenderList + + + + AllowDropBox + + + + AllowBox + + + + AllowGoogleDrive + + + + AllowShareFile + + + + AllowEgnyte + + + + AllowOrganizationTab + + + + AllowSkypeBusinessInterop + + + + ContentPin + + + + AllowResourceAccountSendMessage + + + + ResourceAccountContentAccess + + + + AllowGuestUser + + + + AllowScopedPeopleSearchandAccess + + + + AllowRoleBasedChatPermissions + + + + ExtendedWorkInfoInPeopleSearch + + + + + + + + TeamsGuestMessagingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsGuestMessagingConfiguration + + + + + + + + + Identity + + + + AllowUserEditMessage + + + + AllowUserDeleteMessage + + + + UsersCanDeleteBotMessages + + + + AllowUserDeleteChat + + + + AllowUserChat + + + + AllowGiphy + + + + GiphyRatingType + + + + AllowMemes + + + + AllowImmersiveReader + + + + AllowStickers + + + + + + + + TeamsGuestMeetingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsGuestMeetingConfiguration + + + + + + + + + Identity + + + + AllowIPVideo + + + + ScreenSharingMode + + + + AllowMeetNow + + + + LiveCaptionsEnabledType + + + + AllowTranscription + + + + AllowParticipantGiveRequestControl + + + + AllowExternalParticipantGiveRequestControl + + + + + + + + TeamsGuestCallingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsGuestCallingConfiguration + + + + + + + + + Identity + + + + AllowPrivateCalling + + + + + + + + TeamsMeetingBroadcastConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBroadcastConfiguration + + + + + + + + + Identity + + + + SupportURL + + + + AllowSdnProviderForBroadcastMeeting + + + + + + + + TeamsEffectiveMeetingSurveyConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEffectiveMeetingSurveyConfiguration + + + + + + + + + Identity + + + + Survey + + + + DefaultOrganizerMode + + + + + + + + TeamsCallHoldValidationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallHoldValidationConfiguration + + + + + + + + + Identity + + + + AudioFileValidationEnabled + + + + AudioFileValidationUri + + + + + + + + TeamsEducationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEducationConfiguration + + + + + + + + + Identity + + + + ParentGuardianPreferredContactMethod + + + + EduGenerativeAIEnhancements + + + + UpdateParentInformation + + + + + + + + TeamsMeetingTemplateConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingTemplateConfiguration + + + + + + + + + Identity + + + + TeamsMeetingTemplates + + + + Description + + + + + + + + TeamsMeetingTemplateTypeView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingTemplateType + + + + + + + + + Identity + + + + TeamsMeetingOptions + + + + Description + + + + Name + + + + Category + + + + + + + + TeamsMeetingOptionView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingOption + + + + + + + + + IsLocked + + + + IsHidden + + + + Value + + + + Name + + + + + + + + TeamsFirstPartyMeetingTemplateConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFirstPartyMeetingTemplateConfiguration + + + + + + + + + Identity + + + + TeamsMeetingTemplates + + + + Description + + + + + + + + TeamsMessagingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMessagingConfiguration + + + + + + + + + Identity + + + + EnableVideoMessageCaptions + + + + EnableInOrganizationChatControl + + + + CustomEmojis + + + + Storyline + + + + MessagingNotes + + + + FileTypeCheck + + + + UrlReputationCheck + + + + ContentBasedPhishingCheck + + + + ReportIncorrectSecurityDetections + + + + + + + + CustomBannerTextView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CustomBannerText + + + + + + + + + Identity + + + + Id + + + + Text + + + + Description + + + + + + + + TeamsExternalAccessConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsExternalAccessConfiguration + + + + + + + + + Identity + + + + BlockedUsers + + + + BlockExternalUserAccess + + + + + + + + TeamsRemoteLogCollectionConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRemoteLogCollectionConfiguration + + + + + + + + + Identity + + + + Devices + + + + + + + + TeamsRemoteLogCollectionDeviceView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRemoteLogCollectionDevice + + + + + + + + + Identity + + + + Id + + + + DeviceId + + + + ExpireAfter + + + + UserId + + + + + + + + SurvivableBranchApplianceView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.SurvivableBranchAppliance + + + + + + + + + Identity + + + + Fqdn + + + + Site + + + + Description + + + + + + + + TeamsTenantAbuseConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTenantAbuseConfiguration + + + + + + + + + Identity + + + + BlockedTenants + + + + LowSeatLimit + + + + TrialTenantValidation + + + + SkipValidation + + + + CreateThreadThresholdPerSeat + + + + AddMemberThresholdPerSeat + + + + SendMessageThresholdPerSeat + + + + CreateThreadThresholdForTrialTenants + + + + AddMemberThresholdForTrialTenants + + + + SendMessageThresholdForTrialTenants + + + + + + + + TenantMigrationConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantMigrationConfiguration + + + + + + + + + Identity + + + + MeetingMigrationEnabled + + + + + + + + TenantNetworkConfigurationSettingsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantNetworkConfigurationSettings + + + + + + + + + Identity + + + + NetworkRegions + + + + NetworkSites + + + + Subnets + + + + PostalCodes + + + + + + + + NetworkRegionTypeView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NetworkRegionType + + + + + + + + + Identity + + + + Description + + + + CentralSite + + + + NetworkRegionID + + + + + + + + NetworkSiteTypeView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NetworkSiteType + + + + + + + + + Identity + + + + Description + + + + NetworkRegionID + + + + LocationPolicyID + + + + SiteAddress + + + + NetworkSiteID + + + + OnlineVoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + EmergencyCallRoutingPolicyTagID + + + + EmergencyCallingPolicyTagID + + + + NetworkRoamingPolicyTagID + + + + EmergencyCallRoutingPolicyName + + + + EmergencyCallingPolicyName + + + + NetworkRoamingPolicyName + + + + + + + + SubnetTypeView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.SubnetType + + + + + + + + + Identity + + + + Description + + + + NetworkSiteID + + + + MaskBits + + + + SubnetID + + + + + + + + PostalCodeTypeView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PostalCodeType + + + + + + + + + Identity + + + + Description + + + + NetworkSiteID + + + + PostalCode + + + + CountryCode + + + + + + + + TrustedIPView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TrustedIP + + + + + + + + + Identity + + + + MaskBits + + + + Description + + + + IPAddress + + + + + + + + VideoInteropServiceProviderView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VideoInteropServiceProvider + + + + + + + + + Identity + + + + Name + + + + AadApplicationIds + + + + TenantKey + + + + InstructionUri + + + + AllowAppGuestJoinsAsAuthenticated + + + + + + + + UcPhoneSettingsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.UcPhoneSettings + + + + + + + + + Identity + + + + CalendarPollInterval + + + + EnforcePhoneLock + + + + PhoneLockTimeout + + + + MinPhonePinLength + + + + SIPSecurityMode + + + + VoiceDiffServTag + + + + Voice8021p + + + + LoggingLevel + + + + + + + + UnassignedNumberTreatmentView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.UnassignedNumberTreatment + + + + + + + + + Identity + + + + TreatmentId + + + + Pattern + + + + TargetType + + + + Target + + + + TreatmentPriority + + + + Description + + + + + + + + UserServicesSettingsView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.UserServicesSettings + + + + + + + + + Identity + + + + PresenceProviders + + + + $_.MaintenanceTimeOfDay.ToShortTimeString() + + + + MinSubscriptionExpiration + + + + MaxSubscriptionExpiration + + + + DefaultSubscriptionExpiration + + + + AnonymousUserGracePeriod + + + + DeactivationGracePeriod + + + + MaxScheduledMeetingsPerOrganizer + + + + AllowNonRoomSystemNotification + + + + MaxSubscriptions + + + + MaxContacts + + + + MaxPersonalNotes + + + + SubscribeToCollapsedDG + + + + StateReplicationFlag + + + + TestFeatureList + + + + TestParameterList + + + + + + + + PresenceProviderView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PresenceProvider + + + + + + + + + Identity + + + + Fqdn + + + + + + + + PrivacyConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivacyConfiguration + + + + + + + + + Identity + + + + EnablePrivacyMode + + + + AutoInitiateContacts + + + + PublishLocationDataDefault + + + + DisplayPublishedPhotoDefault + + + + + + + + MeetingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingConfiguration + + + + + + + + + Identity + + + + PstnCallersBypassLobby + + + + EnableAssignedConferenceType + + + + DesignateAsPresenter + + + + AssignedConferenceTypeByDefault + + + + AdmitAnonymousUsersByDefault + + + + RequireRoomSystemsAuthorization + + + + LogoURL + + + + LegalURL + + + + HelpURL + + + + CustomFooterText + + + + AllowConferenceRecording + + + + AllowCloudRecordingService + + + + EnableMeetingReport + + + + UserUriFormatForStUser + + + + + + + + RoutingDataSyncAgentConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.RoutingDataSyncAgentConfiguration + + + + + + + + + Identity + + + + Enabled + + + + BatchesPerTransaction + + + + + + + + UserStoreConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.UserStoreConfiguration + + + + + + + + + Identity + + + + UserStoreServiceUri + + + + UserStoreSyncAgentSyncIntervalSeconds + + + + UserStoreSyncAgentSyncIntervalSecondsForPush + + + + UserStoreSyncAgentSyncIntervalTimeoutSeconds + + + + UserStoreClientRetryCount + + + + UserStoreClientWaitBeforeRetryMilliseconds + + + + UserStoreClientTimeoutPerTrySeconds + + + + UserStoreClientRetryCountForPush + + + + UserStoreClientWaitBeforeRetryMillisecondsForPush + + + + UserStoreClientTimeoutPerTrySecondsForPush + + + + MaxConcurrentPulls + + + + MaxConfDocsToPull + + + + HealthProbeRtcSrvIntervalSeconds + + + + HealthProbeReplicationAppIntervalSeconds + + + + UserStoreClientUseIfxLogging + + + + UserStoreClientLoggingIfxSessionName + + + + UserStoreClientLoggingFileLocation + + + + UserStoreClientEnableHttpTracing + + + + UserStoreClientHttpTimeoutSeconds + + + + UserStoreClientConnectionLimit + + + + UserStorePhase + + + + BackfillFrequencySeconds + + + + BackfillQueueSizeThreshold + + + + BackfillBatchSize + + + + RoutingGroupPartitionHealthExpirationInMinutes + + + + RoutingGroupPartitionUnhealthyThresholdInMinutes + + + + RoutingGroupPartitionFailuresThreshold + + + + PartitionKeySuffix + + + + EnablePullStatusReporting + + + + EnableSlowPullBackOff + + + + BackOffValueMaximumThresholdInSeconds + + + + BackOffInitialValueInSeconds + + + + BackOffFactor + + + + PushControllerBatchSize + + + + HttpIdleConnectionTimeInSeconds + + + + + + + + BroadcastMeetingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.BroadcastMeetingConfiguration + + + + + + + + + Identity + + + + EnableBroadcastMeeting + + + + EnableOpenBroadcastMeeting + + + + EnableBroadcastMeetingRecording + + + + EnableAnonymousBroadcastMeeting + + + + EnforceBroadcastMeetingRecording + + + + BroadcastMeetingSupportUrl + + + + EnableSdnProviderForBroadcastMeeting + + + + SdnFallbackAttendeeThresholdCountForBroadcastMeeting + + + + EnableTechPreviewFeatures + + + + + + + + CloudMeetingConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingConfiguration + + + + + + + + + Identity + + + + EnableAutoSchedule + + + + + + + + CloudVideoInteropConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudVideoInteropConfiguration + + + + + + + + + Identity + + + + EnableCloudVideoInterop + + + + AllowLobbyBypass + + + + + + + + CloudMeetingServiceConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingServiceConfiguration + + + + + + + + + Identity + + + + SchedulingUrl + + + + DiscoveryUrl + + + + + + + + TestConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TestConfiguration + + + + + + + + + Identity + + + + Name + + + + DialedNumber + + + + TargetDialplan + + + + TargetVoicePolicy + + + + ExpectedTranslatedNumber + + + + ExpectedUsage + + + + ExpectedRoute + + + + + + + + VoiceConfigurationView + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoiceConfiguration + + + + + + + + + Identity + + + + VoiceTestConfigurations + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 new file mode 100644 index 000000000000..47d429e8c11d --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 @@ -0,0 +1,579 @@ +# +# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' + +# Version number of this module. +ModuleVersion = '21.4.4' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '048c99d9-471a-4935-a810-542687c5f950' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams OCE cmdlets module for Policy Administration' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = '*' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'New-CsTeamsAppSetupPolicy', + 'Get-CsTeamsAppSetupPolicy', + 'Remove-CsTeamsAppSetupPolicy', + 'Set-CsTeamsAppSetupPolicy', + 'Grant-CsTeamsAppSetupPolicy', + + + 'New-CsTeamsAppPermissionPolicy', + 'Get-CsTeamsAppPermissionPolicy', + 'Remove-CsTeamsAppPermissionPolicy', + 'Set-CsTeamsAppPermissionPolicy', + 'Grant-CsTeamsAppPermissionPolicy', + + 'New-CsTeamsMessagingPolicy', + 'Set-CsTeamsMessagingPolicy', + 'Get-CsTeamsMessagingPolicy', + 'Remove-CsTeamsMessagingPolicy', + + 'New-CsTeamsChannelsPolicy', + 'Get-CsTeamsChannelsPolicy', + 'Remove-CsTeamsChannelsPolicy', + 'Set-CsTeamsChannelsPolicy', + + 'New-CsTeamsUpdateManagementPolicy', + 'Get-CsTeamsUpdateManagementPolicy', + 'Remove-CsTeamsUpdateManagementPolicy', + 'Set-CsTeamsUpdateManagementPolicy', + + 'Get-CsTeamsUpgradeConfiguration', + 'Set-CsTeamsUpgradeConfiguration', + + 'New-CsTeamsMeetingPolicy', + 'Get-CsTeamsMeetingPolicy', + 'Remove-CsTeamsMeetingPolicy', + 'Set-CsTeamsMeetingPolicy', + + 'Get-CsOnlineVoicemailPolicy', + 'New-CsOnlineVoicemailPolicy', + 'Remove-CsOnlineVoicemailPolicy', + 'Set-CsOnlineVoicemailPolicy', + + 'Get-CsOnlineVoicemailValidationConfiguration', + 'Set-CsOnlineVoicemailValidationConfiguration', + + 'New-CsTeamsFeedbackPolicy', + 'Get-CsTeamsFeedbackPolicy', + 'Remove-CsTeamsFeedbackPolicy', + 'Set-CsTeamsFeedbackPolicy', + + 'New-CsTeamsMeetingBrandingPolicy', + 'Get-CsTeamsMeetingBrandingPolicy', + 'Remove-CsTeamsMeetingBrandingPolicy', + 'Set-CsTeamsMeetingBrandingPolicy', + 'Grant-CsTeamsMeetingBrandingPolicy' + + 'New-CsTeamsMeetingBrandingTheme', + 'New-CsTeamsMeetingBackgroundImage', + 'New-CsTeamsNdiAssuranceSlate', + + 'New-CsTeamsEmergencyCallingPolicy', + 'Get-CsTeamsEmergencyCallingPolicy', + 'Remove-CsTeamsEmergencyCallingPolicy', + 'Set-CsTeamsEmergencyCallingPolicy', + 'New-CsTeamsEmergencyCallingExtendedNotification', + + 'New-CsTeamsCallHoldPolicy', + 'Get-CsTeamsCallHoldPolicy', + 'Remove-CsTeamsCallHoldPolicy', + 'Set-CsTeamsCallHoldPolicy', + + 'Get-CsOnlineVoicemailValidationConfiguration', + 'Set-CsOnlineVoicemailValidationConfiguration', + 'Get-CsTeamsMessagingConfiguration', + 'Set-CsTeamsMessagingConfiguration', + + 'New-CsTeamsVoiceApplicationsPolicy', + 'Get-CsTeamsVoiceApplicationsPolicy', + 'Remove-CsTeamsVoiceApplicationsPolicy', + 'Set-CsTeamsVoiceApplicationsPolicy', + + 'New-CsTeamsHiddenMeetingTemplate', + + 'New-CsTeamsMeetingTemplatePermissionPolicy', + 'Get-CsTeamsMeetingTemplatePermissionPolicy', + 'Set-CsTeamsMeetingTemplatePermissionPolicy', + 'Remove-CsTeamsMeetingTemplatePermissionPolicy', + 'Grant-CsTeamsMeetingTemplatePermissionPolicy', + + "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", + "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", + "New-CsCustomPrompt", + "New-CsCustomPromptPackage", + + 'Get-CsTeamsMeetingTemplateConfiguration', + 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', + + 'New-CsTeamsEventsPolicy', + 'Get-CsTeamsEventsPolicy', + 'Remove-CsTeamsEventsPolicy', + 'Set-CsTeamsEventsPolicy', + 'Grant-CsTeamsEventsPolicy', + + 'New-CsTeamsCallingPolicy', + 'Get-CsTeamsCallingPolicy', + 'Remove-CsTeamsCallingPolicy', + 'Set-CsTeamsCallingPolicy', + 'Grant-CsTeamsCallingPolicy', + + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + + 'New-CsExternalAccessPolicy', + 'Get-CsExternalAccessPolicy', + 'Remove-CsExternalAccessPolicy', + 'Set-CsExternalAccessPolicy', + 'Grant-CsExternalAccessPolicy', + + 'Get-CsTeamsMultiTenantOrganizationConfiguration', + 'Set-CsTeamsMultiTenantOrganizationConfiguration', + + 'New-CsLocationPolicy', + 'Get-CsLocationPolicy', + 'Remove-CsLocationPolicy', + 'Set-CsLocationPolicy', + + 'New-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Get-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Set-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy', + + 'Get-CsTenantConfiguration', + 'Set-CsTenantConfiguration', + + 'Get-CsTenantNetworkSite', + + 'New-CsTeamsShiftsPolicy', + 'Get-CsTeamsShiftsPolicy', + 'Remove-CsTeamsShiftsPolicy', + 'Set-CsTeamsShiftsPolicy', + 'Grant-CsTeamsShiftsPolicy', + + 'New-CsTeamsHiddenTemplate', + + 'New-CsTeamsTemplatePermissionPolicy', + 'Get-CsTeamsTemplatePermissionPolicy', + 'Remove-CsTeamsTemplatePermissionPolicy', + 'Set-CsTeamsTemplatePermissionPolicy', + + 'Get-CsTeamsAppPolicyConfiguration', + 'Set-CsTeamsAppPolicyConfiguration', + + 'Get-CsTeamsSipDevicesConfiguration', + 'Set-CsTeamsSipDevicesConfiguration', + + 'New-CsTeamsVirtualAppointmentsPolicy', + 'Get-CsTeamsVirtualAppointmentsPolicy', + 'Remove-CsTeamsVirtualAppointmentsPolicy', + 'Set-CsTeamsVirtualAppointmentsPolicy', + 'Grant-CsTeamsVirtualAppointmentsPolicy', + + 'New-CsTeamsComplianceRecordingPolicy', + 'Get-CsTeamsComplianceRecordingPolicy', + 'Remove-CsTeamsComplianceRecordingPolicy', + 'Set-CsTeamsComplianceRecordingPolicy', + + 'New-CsTeamsComplianceRecordingApplication', + 'Get-CsTeamsComplianceRecordingApplication', + 'Remove-CsTeamsComplianceRecordingApplication', + 'Set-CsTeamsComplianceRecordingApplication', + + 'New-CsTeamsComplianceRecordingPairedApplication', + + 'New-CsTeamsSharedCallingRoutingPolicy', + 'Get-CsTeamsSharedCallingRoutingPolicy', + 'Remove-CsTeamsSharedCallingRoutingPolicy', + 'Set-CsTeamsSharedCallingRoutingPolicy', + 'Grant-CsTeamsSharedCallingRoutingPolicy', + + 'New-CsTeamsVdiPolicy', + 'Get-CsTeamsVdiPolicy', + 'Remove-CsTeamsVdiPolicy', + 'Set-CsTeamsVdiPolicy', + 'Grant-CsTeamsVdiPolicy', + + 'Get-CsTeamsMeetingConfiguration', + 'Set-CsTeamsMeetingConfiguration', + + 'New-CsTeamsCustomBannerText', + 'Get-CsTeamsCustomBannerText', + 'Set-CsTeamsCustomBannerText', + 'Remove-CsTeamsCustomBannerText', + + 'Get-CsTeamsEducationConfiguration', + 'Set-CsTeamsEducationConfiguration', + + 'New-CsTeamsWorkLocationDetectionPolicy', + 'Get-CsTeamsWorkLocationDetectionPolicy', + 'Remove-CsTeamsWorkLocationDetectionPolicy', + 'Set-CsTeamsWorkLocationDetectionPolicy', + 'Grant-CsTeamsWorkLocationDetectionPolicy', + + 'New-CsTeamsMediaConnectivityPolicy', + 'Get-CsTeamsMediaConnectivityPolicy', + 'Remove-CsTeamsMediaConnectivityPolicy', + 'Set-CsTeamsMediaConnectivityPolicy', + 'Grant-CsTeamsMediaConnectivityPolicy', + + 'New-CsTeamsRecordingRollOutPolicy', + 'Get-CsTeamsRecordingRollOutPolicy', + 'Remove-CsTeamsRecordingRollOutPolicy', + 'Set-CsTeamsRecordingRollOutPolicy', + 'Grant-CsTeamsRecordingRollOutPolicy', + + 'New-CsTeamsFilesPolicy', + 'Get-CsTeamsFilesPolicy', + 'Remove-CsTeamsFilesPolicy', + 'Set-CsTeamsFilesPolicy', + 'Grant-CsTeamsFilesPolicy', + + 'Get-CsTeamsExternalAccessConfiguration', + 'Set-CsTeamsExternalAccessConfiguration', + + 'New-CsConversationRole', + 'Remove-CsConversationRole', + 'Get-CsConversationRole', + 'Set-CsConversationRole', + + 'Get-CsConversationRolesSetting', + 'Set-CsConversationRolesSetting', + + 'Get-CsTeamsAIPolicy', + 'Set-CsTeamsAIPolicy', + 'New-CsTeamsAIPolicy', + 'Remove-CsTeamsAIPolicy', + 'Grant-CsTeamsAIPolicy', + + 'New-CsTeamsBYODAndDesksPolicy', + 'Get-CsTeamsBYODAndDesksPolicy', + 'Remove-CsTeamsBYODAndDesksPolicy', + 'Set-CsTeamsBYODAndDesksPolicy', + 'Grant-CsTeamsBYODAndDesksPolicy', + + 'Get-CsTeamsTenantAbuseConfiguration', + 'Set-CsTeamsTenantAbuseConfiguration', + + 'Get-CsTeamsEducationAssignmentsAppPolicy', + 'Set-CsTeamsEducationAssignmentsAppPolicy', + + 'Get-CsPrivacyConfiguration', + 'Set-CsPrivacyConfiguration', + + 'Get-CsTeamsNotificationAndFeedsPolicy', + 'Set-CsTeamsNotificationAndFeedsPolicy', + 'Remove-CsTeamsNotificationAndFeedsPolicy' + + 'Get-CsTeamsClientConfiguration', + 'Set-CsTeamsClientConfiguration', + + 'Get-CsTeamsAcsFederationConfiguration', + 'Set-CsTeamsAcsFederationConfiguration' +) + +# Variables to export from this module +VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{} + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDDXuHz1JaXPYkJ +# QDhNbRvXPHHPibt4v/Y646nlvU08sqCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z +# 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM3WhcNMjYwNjE3MTgyMTM3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDASkh1cpvuUqfbqxele7LCSHEamVNBfFE4uY1FkGsAdUF/vnjpE1dnAD9vMOqy +# 5ZO49ILhP4jiP/P2Pn9ao+5TDtKmcQ+pZdzbG7t43yRXJC3nXvTGQroodPi9USQi +# 9rI+0gwuXRKBII7L+k3kMkKLmFrsWUjzgXVCLYa6ZH7BCALAcJWZTwWPoiT4HpqQ +# hJcYLB7pfetAVCeBEVZD8itKQ6QA5/LQR+9X6dlSj4Vxta4JnpxvgSrkjXCz+tlJ +# 67ABZ551lw23RWU1uyfgCfEFhBfiyPR2WSjskPl9ap6qrf8fNQ1sGYun2p4JdXxe +# UAKf1hVa/3TQXjvPTiRXCnJPAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUuCZyGiCuLYE0aU7j5TFqY05kko0w +# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW +# MBQGA1UEBRMNMjMwMDEyKzUwNTM1OTAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci +# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG +# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu +# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 +# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBACjmqAp2Ci4sTHZci+qk +# tEAKsFk5HNVGKyWR2rFGXsd7cggZ04H5U4SV0fAL6fOE9dLvt4I7HBHLhpGdE5Uj +# Ly4NxLTG2bDAkeAVmxmd2uKWVGKym1aarDxXfv3GCN4mRX+Pn4c+py3S/6Kkt5eS +# DAIIsrzKw3Kh2SW1hCwXX/k1v4b+NH1Fjl+i/xPJspXCFuZB4aC5FLT5fgbRKqns +# WeAdn8DsrYQhT3QXLt6Nv3/dMzv7G/Cdpbdcoul8FYl+t3dmXM+SIClC3l2ae0wO +# lNrQ42yQEycuPU5OoqLT85jsZ7+4CaScfFINlO7l7Y7r/xauqHbSPQ1r3oIC+e71 +# 5s2G3ClZa3y99aYx2lnXYe1srcrIx8NAXTViiypXVn9ZGmEkfNcfDiqGQwkml5z9 +# nm3pWiBZ69adaBBbAFEjyJG4y0a76bel/4sDCVvaZzLM3TFbxVO9BQrjZRtbJZbk +# C3XArpLqZSfx53SuYdddxPX8pvcqFuEu8wcUeD05t9xNbJ4TtdAECJlEi0vvBxlm +# M5tzFXy2qZeqPMXHSQYqPgZ9jvScZ6NwznFD0+33kbzyhOSz/WuGbAu4cHZG8gKn +# lQVT4uA2Diex9DMs2WHiokNknYlLoUeWXW1QrJLpqO82TLyKTbBM/oZHAdIc0kzo +# STro9b3+vjn2809D0+SOOCVZMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq +# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x +# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv +# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg +# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 +# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr +# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg +# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy +# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 +# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh +# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k +# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB +# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn +# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 +# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w +# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o +# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD +# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa +# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny +# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG +# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV +# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG +# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl +# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb +# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l +# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 +# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 +# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 +# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam +# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa +# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah +# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA +# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt +# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr +# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp +# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB +# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBdiKccaQG4X/u061i5uhu0n +# Ywb27AT8bsv5He1eQ2r7MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB +# BQAEggEAKuf/iSExCIw3oJlOtgwtA37Krdnwlp+UcXjIdx1TQwZylQYJqQVVQSqX +# F9TL1JkJLzxCJCAirAkdnbi9QFM9ta3LZWDeT7lJ+6wNwiHTnLh5b/GcOfA6ELiY +# oWDdRwxGtEnzUVm6AVKrJzy2dpE6j6gh+xfZfArdBH40PwwSu4nx4mNCLaiVA9KI +# UgjvhgPlBCC73fkpD+5HyYncGISj7cjFVw4rfUcVJyGUj1HkwTZ6QJHHUdS2rjaG +# 6OJpTMS2uVr/p9IxF33VpdFE8jGpTicuXUgShEqdDy0S0cmgVu3iGfxcYddbc0Gy +# DBcPBtTYmPXYAhQD81DlfcEK7KIogqGCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC +# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq +# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl +# AwQCAQUABCBhv5RIaqJJyUFCk1NBe+Z7LNL5oc9PS5qo577DdQkVNwIGaKOvjL6J +# GBMyMDI1MTAwMTA4MzMwMi40ODZaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl +# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT +# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G +# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 +# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w +# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt +# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtD1MH3yAHWHNVslC+CBT +# j/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BOJUiYg7fDJ2AxGVGyovUt +# gGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONWy6lOyGZwZpxfV2EX4qAh +# 6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2ps8Nc1xr41N8Qi3KVJLY +# X0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2KDJ2sQRFFF/egCxKgogd +# F3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN8hiMc8Z47RRJuIWCOeyI +# J1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57ITXsD9DPOob8tjtsefPc +# QJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5DHM4ovCmD3lifgYnzjOry +# 4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby44kGVK8MzY9s32Dy1THn +# Jg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRVUx2G/0Tr7Dk3fpCU8u+5 +# olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1HvNIBpSNNuTBQk7FBvu+ +# Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSJ7aO6nJXJ +# I9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf +# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww +# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m +# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El +# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF +# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAZiAJgFbkf7jf +# hx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG2CcdoXaq7VgpVkNf1uvI +# hrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0ktH+EkEuGXs9DBLyt71iut +# Vkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2q5TjmrgEKyPe3TApAio8 +# cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/uizP1NuHSxF/V1ks/2tCEo +# riicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+Ud9Va3Iw9Bs4ccrkgBjLt +# g3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y6Si3AaNINt/pOMKU6l4A +# W0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qIVBZJ2XQpnhEuRbh+Agpm +# Rn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhncFetJ0ZK36wxAa3FiPgBe +# bRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B0s8RiFBMf/W7+O7EPZ+w +# MH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojzuCEahSAcq86yjwQeTPN9 +# YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaADAgECAhMzAAAAFcXna54C +# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE +# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z +# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp +# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy +# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH +# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV +# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B +# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 +# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY +# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 +# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN +# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua +# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 +# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 +# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 +# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk +# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q +# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri +# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC +# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl +# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y +# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA +# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU +# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny +# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw +# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w +# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp +# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm +# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM +# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW +# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 +# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw +# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX +# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX +# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC +# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU +# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG +# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl +# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT +# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw +# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF +# AAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1MTAwMTIyMzgxN1owdzA9 +# BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEAAgInWgIB/zAHAgEAAgIS +# RDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow +# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQA0HygGCzYY +# EljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztwxcaklxi1JIufA2sghpxf +# O1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4Ih4F80N3N244nRix969BP +# nYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1cEzI5Hypvq/WH0ZzZF7BS +# Pu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoXxW6kWpyX51pxERwDxHfe +# YKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQOhyj/efZBnp2gn+TMH95Q +# 84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m +# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB +# IDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUDBAIBBQCgggFKMBoG +# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgdt9mntJj +# RBBWyP56rXOrvH2NmW5HQz5/jRtbgga5YPUwgfoGCyqGSIb3DQEJEAIvMYHqMIHn +# MIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5SbGLYEDCBmDCBgKR+ +# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT +# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+R9njXWrpPGxAAEA +# AAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6OcpV+4JnCfMA0GCSqGSIb3 +# DQEBCwUABIICAFjI+sbIrIaktP9RfROriM1eSOHmoZ05V5eKCM48uBgqw1KEomYa +# d2cgcf0RVoKwNEl4X5t+DCIdzNFL30Hfw9WvPkcBuoiEisCL7edhiENRVEGYEqXg +# ACQj64vM7zwyP4IHiPJZmsp6QCzO2kMbzyBNUkR86nW76L/6D3WhAmdTkdZDaPSJ +# MR7ZSIQnM3UowGho2xJbb75nslbQuxFyafeePjS82nT5NIjXuMJZ/SBD95oXBG3U +# AGL8hMe5S5gL1+xlrQm88LBKj3GMUUNotJGHjpxbIeInCZDi63LPwp/AY/w2UOtN +# MbJXwZaiSglyHxzXD8fD3gewJElRz7oxwmw6n8hEEtyTwiC1npgOJIb03Ha1ziDs +# 0rKGbrWKPgs27vcI3QFnMhWVYx2M5SywMy5DBLGttnS0ZA0xfHHo9abRAw/oZ0X9 +# mCub1465EFSW6l5ZxqGRfIDW0p9U5jKLeF9x4OP7vtMeaRz5/FlpC7cHhrJmD3uh +# xH5CZCK8p5/Rb7kD1kzf166XIB5Xt0Jdd8x900lANSY7wDuSaVWk7iWTfrzzOLiD +# nnPBoOEsGJ1hEEZlPIisXL04A4mkVxzsx7Rod8J8IgDXw9Zl8yqOt2Xh8F5zbXfB +# Ch5Yj/mLAW1CeMCNaTZHUKfmj54J+lnHmC7vXXiuVz/sdC71uegGlaMF +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 new file mode 100644 index 000000000000..3e77a59da4b9 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 @@ -0,0 +1,536 @@ +# +# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' + +# Version number of this module. +ModuleVersion = '21.4.4' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '048c99d9-471a-4935-a810-542687c5f950' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams preview cmdlets module for Policy Administration' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = '*' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'New-CsTeamsAppSetupPolicy', + 'Get-CsTeamsAppSetupPolicy', + 'Remove-CsTeamsAppSetupPolicy', + 'Set-CsTeamsAppSetupPolicy', + 'Grant-CsTeamsAppSetupPolicy', + + 'New-CsTeamsAppPermissionPolicy', + 'Get-CsTeamsAppPermissionPolicy', + 'Remove-CsTeamsAppPermissionPolicy', + 'Set-CsTeamsAppPermissionPolicy', + 'Grant-CsTeamsAppPermissionPolicy', + + 'New-CsTeamsMessagingPolicy', + 'Get-CsTeamsMessagingPolicy', + 'Remove-CsTeamsMessagingPolicy', + 'Set-CsTeamsMessagingPolicy', + + 'New-CsTeamsChannelsPolicy', + 'Get-CsTeamsChannelsPolicy', + 'Remove-CsTeamsChannelsPolicy', + 'Set-CsTeamsChannelsPolicy', + + 'New-CsTeamsUpdateManagementPolicy', + 'Get-CsTeamsUpdateManagementPolicy', + 'Remove-CsTeamsUpdateManagementPolicy', + 'Set-CsTeamsUpdateManagementPolicy', + + 'Get-CsTeamsUpgradeConfiguration', + 'Set-CsTeamsUpgradeConfiguration', + + 'Get-CsTeamsSipDevicesConfiguration', + 'Set-CsTeamsSipDevicesConfiguration', + + 'New-CsTeamsMeetingPolicy', + 'Get-CsTeamsMeetingPolicy', + 'Remove-CsTeamsMeetingPolicy', + 'Set-CsTeamsMeetingPolicy', + + 'New-CsOnlineVoicemailPolicy', + 'Get-CsOnlineVoicemailPolicy', + 'Remove-CsOnlineVoicemailPolicy', + 'Set-CsOnlineVoicemailPolicy', + + 'New-CsTeamsFeedbackPolicy', + 'Get-CsTeamsFeedbackPolicy', + 'Remove-CsTeamsFeedbackPolicy', + 'Set-CsTeamsFeedbackPolicy', + + 'New-CsTeamsMeetingBrandingPolicy', + 'Get-CsTeamsMeetingBrandingPolicy', + 'Remove-CsTeamsMeetingBrandingPolicy', + 'Set-CsTeamsMeetingBrandingPolicy', + 'Grant-CsTeamsMeetingBrandingPolicy' + + 'New-CsTeamsMeetingBrandingTheme', + 'New-CsTeamsMeetingBackgroundImage', + 'New-CsTeamsNdiAssuranceSlate', + + 'New-CsTeamsEmergencyCallingPolicy', + 'Get-CsTeamsEmergencyCallingPolicy', + 'Remove-CsTeamsEmergencyCallingPolicy', + 'Set-CsTeamsEmergencyCallingPolicy', + 'New-CsTeamsEmergencyCallingExtendedNotification', + + 'New-CsTeamsCallHoldPolicy', + 'Get-CsTeamsCallHoldPolicy', + 'Remove-CsTeamsCallHoldPolicy', + 'Set-CsTeamsCallHoldPolicy', + + 'Get-CsTeamsMessagingConfiguration', + 'Set-CsTeamsMessagingConfiguration', + + 'New-CsTeamsVoiceApplicationsPolicy', + 'Get-CsTeamsVoiceApplicationsPolicy', + 'Remove-CsTeamsVoiceApplicationsPolicy', + 'Set-CsTeamsVoiceApplicationsPolicy', + + "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", + "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", + "New-CsCustomPrompt", + "New-CsCustomPromptPackage", + + 'New-CsTeamsEventsPolicy', + 'Get-CsTeamsEventsPolicy', + 'Remove-CsTeamsEventsPolicy', + 'Set-CsTeamsEventsPolicy', + 'Grant-CsTeamsEventsPolicy', + + 'New-CsTeamsCallingPolicy', + 'Get-CsTeamsCallingPolicy', + 'Remove-CsTeamsCallingPolicy', + 'Set-CsTeamsCallingPolicy', + 'Grant-CsTeamsCallingPolicy', + + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + + 'New-CsExternalAccessPolicy', + 'Get-CsExternalAccessPolicy', + 'Remove-CsExternalAccessPolicy', + 'Set-CsExternalAccessPolicy', + 'Grant-CsExternalAccessPolicy', + + 'Get-CsTeamsMultiTenantOrganizationConfiguration', + 'Set-CsTeamsMultiTenantOrganizationConfiguration', + + 'New-CsTeamsHiddenMeetingTemplate', + + 'New-CsTeamsMeetingTemplatePermissionPolicy', + 'Get-CsTeamsMeetingTemplatePermissionPolicy', + 'Set-CsTeamsMeetingTemplatePermissionPolicy', + 'Remove-CsTeamsMeetingTemplatePermissionPolicy', + 'Grant-CsTeamsMeetingTemplatePermissionPolicy', + + 'Get-CsTeamsMeetingTemplateConfiguration', + 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', + + 'Get-CsTenantNetworkSite', + + 'New-CsTeamsShiftsPolicy', + 'Get-CsTeamsShiftsPolicy', + 'Remove-CsTeamsShiftsPolicy', + 'Set-CsTeamsShiftsPolicy', + 'Grant-CsTeamsShiftsPolicy', + + 'New-CsTeamsHiddenTemplate', + + 'New-CsTeamsTemplatePermissionPolicy', + 'Get-CsTeamsTemplatePermissionPolicy', + 'Remove-CsTeamsTemplatePermissionPolicy', + 'Set-CsTeamsTemplatePermissionPolicy', + + 'New-CsTeamsVirtualAppointmentsPolicy', + 'Get-CsTeamsVirtualAppointmentsPolicy', + 'Remove-CsTeamsVirtualAppointmentsPolicy', + 'Set-CsTeamsVirtualAppointmentsPolicy', + 'Grant-CsTeamsVirtualAppointmentsPolicy', + + 'New-CsTeamsComplianceRecordingPolicy', + 'Get-CsTeamsComplianceRecordingPolicy', + 'Remove-CsTeamsComplianceRecordingPolicy', + 'Set-CsTeamsComplianceRecordingPolicy', + + 'New-CsTeamsComplianceRecordingApplication', + 'Get-CsTeamsComplianceRecordingApplication', + 'Remove-CsTeamsComplianceRecordingApplication', + 'Set-CsTeamsComplianceRecordingApplication', + + 'New-CsTeamsComplianceRecordingPairedApplication', + + 'New-CsTeamsSharedCallingRoutingPolicy', + 'Get-CsTeamsSharedCallingRoutingPolicy', + 'Remove-CsTeamsSharedCallingRoutingPolicy', + 'Set-CsTeamsSharedCallingRoutingPolicy', + 'Grant-CsTeamsSharedCallingRoutingPolicy', + + 'New-CsTeamsVdiPolicy', + 'Get-CsTeamsVdiPolicy', + 'Remove-CsTeamsVdiPolicy', + 'Set-CsTeamsVdiPolicy', + 'Grant-CsTeamsVdiPolicy', + + + 'Get-CsTeamsMeetingConfiguration', + 'Set-CsTeamsMeetingConfiguration', + + 'New-CsTeamsCustomBannerText', + 'Get-CsTeamsCustomBannerText', + 'Remove-CsTeamsCustomBannerText', + 'Set-CsTeamsCustomBannerText', + + 'New-CsTeamsWorkLocationDetectionPolicy', + 'Get-CsTeamsWorkLocationDetectionPolicy', + 'Remove-CsTeamsWorkLocationDetectionPolicy', + 'Set-CsTeamsWorkLocationDetectionPolicy', + 'Grant-CsTeamsWorkLocationDetectionPolicy', + + 'New-CsTeamsMediaConnectivityPolicy', + 'Get-CsTeamsMediaConnectivityPolicy', + 'Remove-CsTeamsMediaConnectivityPolicy', + 'Set-CsTeamsMediaConnectivityPolicy', + 'Grant-CsTeamsMediaConnectivityPolicy', + + 'New-CsTeamsRecordingRollOutPolicy', + 'Get-CsTeamsRecordingRollOutPolicy', + 'Remove-CsTeamsRecordingRollOutPolicy', + 'Set-CsTeamsRecordingRollOutPolicy', + 'Grant-CsTeamsRecordingRollOutPolicy', + + 'New-CsTeamsFilesPolicy', + 'Get-CsTeamsFilesPolicy', + 'Remove-CsTeamsFilesPolicy', + 'Set-CsTeamsFilesPolicy', + 'Grant-CsTeamsFilesPolicy', + + 'Get-CsTeamsExternalAccessConfiguration', + 'Set-CsTeamsExternalAccessConfiguration', + + 'New-CsConversationRole', + 'Remove-CsConversationRole', + 'Get-CsConversationRole', + 'Set-CsConversationRole', + + 'New-CsTeamsBYODAndDesksPolicy', + 'Get-CsTeamsBYODAndDesksPolicy', + 'Remove-CsTeamsBYODAndDesksPolicy', + 'Set-CsTeamsBYODAndDesksPolicy', + 'Grant-CsTeamsBYODAndDesksPolicy', + + 'Get-CsTeamsAIPolicy', + 'Set-CsTeamsAIPolicy', + 'New-CsTeamsAIPolicy', + 'Remove-CsTeamsAIPolicy', + 'Grant-CsTeamsAIPolicy', + + 'Get-CsTeamsClientConfiguration', + 'Set-CsTeamsClientConfiguration' +) + +# Variables to export from this module +VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{} + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDZT140sYjdx0xT +# /LXVDzxAIHBwkBc+dXfdw3U0HvLrt6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF51 +# 3pH+UdCT12R9jVwu74EHcpGG7d4aN3iDZEQNfgxdMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAH8BBNHdNNVbblxSN/8sHNWXySlnV3pbJtttx +# KRvxL5qNf3TKG03C0WvENi/BakEb8PHJ+RpprPLm5lP6tLN68DXwzifuLhRVM9Xi +# 9b3V+rac09dFPJV6X6e1CjhCKKMHscarPY/yH9dqFQfu28IDTDG5gW1xuTZTKgHx +# 0ubpBYhXGT78QKZsY9U/FG0gtqzWsaC9jPpL2V2xvboE4zwMcjqVb83MdOaBa/Hu +# vhAvvfvNEfPEpfhV7t4D14QAVuDtrftCMmlZ8l4Zh7bk6jpO9bsmJefXBTMex01z +# 3GUDadwSDgZBz5zZTIvy4pkWnlb6vUMlkB+AYgwreajt03Bv7aGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDXvW2jxcaTJb5RlYetEjiJ1+8nVX5pUDvc +# Lr4K3Oa2YQIGaKOvGf91GBMyMDI1MTAwMTA4MzQwOS43NzRaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgzEidHs2UZH6bSpXLsyaY+KDuM3lniHsStSWhmgMVPrcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICAJLdXgOEzv43WFXih4PbVrXDZ6C4bv/7+pq0 +# zIXavVhkfixoeCEFixh6cJ6osaLXO4ZLyaDRVX2/nzysxMCarwP9AF1KAt2tmUP/ +# Ldlmu/Z8nvfG9Rx+wPKuXMYtNLfb3Uv0VN8nLICMuaR/J9ebYtOJXrN811qaHNNg +# R9GqIncW1p85rSKmD5+P8zKHvELQB3G/mwX3Wu8yw5GVWbBF+LM5R0Sv/T2nsVsV +# DT3ociqn+UN+E17v2pqUZ9AThTWitba76pyZ2vnvafDEmsKsF7dvgAbeZqTZVYgx +# GAfGI9Lp9Llx29m5mwZkzACbc21LOoM0FTEyRaHjLVmpBi6CQdxKaWRubgIVMbdg +# 1Fs/rdXDdENwvgFt4VVoj/CF8K3vFLgj8SbrZbl63+XMmHFxFlWVgOZiP9HlXUfp +# JVYMtxqc531URNDT6YN43qGiySCL6ErRGoVdH78IcN+kzR0jouKgqaS+7QZMi8wx +# Xnh6twFH4J8smVILUuD9S21wlgCxwVMVcg3x3K6xmOHD3IzERO2yvZoxnBgRzhlr +# wlD3jKON6cqYj4wvbIM3SXjfCNlH1zTgclv6lTDoouuOvxotZH3BJw50Yu5JxKud +# PJZQVglDBV2DefNdegyaas82XCxe1+ZWn1TBuEZM4NLxhAchdZL0RXPe8EV4mrfQ +# hFJJFhX4 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 new file mode 100644 index 000000000000..fbe62dc7b448 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 @@ -0,0 +1,558 @@ +# +# Module manifest for module 'Microsoft.Teams.Policy.Administration.Core' +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' + +# Version number of this module. +ModuleVersion = '21.4.4' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '048c99d9-471a-4935-a810-542687c5f950' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams cmdlets module for Policy Administration' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = '*' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'New-CsTeamsAppSetupPolicy', + 'Get-CsTeamsAppSetupPolicy', + 'Remove-CsTeamsAppSetupPolicy', + 'Set-CsTeamsAppSetupPolicy', + 'Grant-CsTeamsAppSetupPolicy', + + 'New-CsTeamsAppPermissionPolicy', + 'Get-CsTeamsAppPermissionPolicy', + 'Remove-CsTeamsAppPermissionPolicy', + 'Set-CsTeamsAppPermissionPolicy', + 'Grant-CsTeamsAppPermissionPolicy', + + 'New-CsTeamsMessagingPolicy', + 'Get-CsTeamsMessagingPolicy', + 'Remove-CsTeamsMessagingPolicy', + 'Set-CsTeamsMessagingPolicy', + + 'New-CsTeamsChannelsPolicy', + 'Get-CsTeamsChannelsPolicy', + 'Remove-CsTeamsChannelsPolicy', + 'Set-CsTeamsChannelsPolicy', + + 'New-CsTeamsUpdateManagementPolicy', + 'Get-CsTeamsUpdateManagementPolicy', + 'Remove-CsTeamsUpdateManagementPolicy', + 'Set-CsTeamsUpdateManagementPolicy', + + 'Get-CsTeamsUpgradeConfiguration', + 'Set-CsTeamsUpgradeConfiguration', + + 'Get-CsTeamsSipDevicesConfiguration', + 'Set-CsTeamsSipDevicesConfiguration', + + 'New-CsTeamsMeetingPolicy', + 'Get-CsTeamsMeetingPolicy', + 'Remove-CsTeamsMeetingPolicy', + 'Set-CsTeamsMeetingPolicy', + + 'New-CsOnlineVoicemailPolicy', + 'Get-CsOnlineVoicemailPolicy', + 'Remove-CsOnlineVoicemailPolicy', + 'Set-CsOnlineVoicemailPolicy', + + 'New-CsTeamsFeedbackPolicy', + 'Get-CsTeamsFeedbackPolicy', + 'Remove-CsTeamsFeedbackPolicy', + 'Set-CsTeamsFeedbackPolicy', + + 'New-CsTeamsMeetingBrandingPolicy', + 'Get-CsTeamsMeetingBrandingPolicy', + 'Remove-CsTeamsMeetingBrandingPolicy', + 'Set-CsTeamsMeetingBrandingPolicy', + 'Grant-CsTeamsMeetingBrandingPolicy' + + 'New-CsTeamsMeetingBrandingTheme', + 'New-CsTeamsMeetingBackgroundImage', + 'New-CsTeamsNdiAssuranceSlate', + + 'New-CsTeamsEmergencyCallingPolicy', + 'Get-CsTeamsEmergencyCallingPolicy', + 'Remove-CsTeamsEmergencyCallingPolicy', + 'Set-CsTeamsEmergencyCallingPolicy', + 'New-CsTeamsEmergencyCallingExtendedNotification', + + 'New-CsTeamsCallHoldPolicy', + 'Get-CsTeamsCallHoldPolicy', + 'Remove-CsTeamsCallHoldPolicy', + 'Set-CsTeamsCallHoldPolicy', + + 'Get-CsTeamsMessagingConfiguration', + 'Set-CsTeamsMessagingConfiguration', + + 'New-CsTeamsVoiceApplicationsPolicy', + 'Get-CsTeamsVoiceApplicationsPolicy', + 'Remove-CsTeamsVoiceApplicationsPolicy', + 'Set-CsTeamsVoiceApplicationsPolicy', + + 'Get-CsTeamsAudioConferencingCustomPromptsConfiguration', + 'Set-CsTeamsAudioConferencingCustomPromptsConfiguration', + 'New-CsCustomPrompt', + 'New-CsCustomPromptPackage', + + 'New-CsTeamsEventsPolicy', + 'Get-CsTeamsEventsPolicy', + 'Remove-CsTeamsEventsPolicy', + 'Set-CsTeamsEventsPolicy', + 'Grant-CsTeamsEventsPolicy', + + 'New-CsTeamsCallingPolicy', + 'Get-CsTeamsCallingPolicy', + 'Remove-CsTeamsCallingPolicy', + 'Set-CsTeamsCallingPolicy', + 'Grant-CsTeamsCallingPolicy', + + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + + 'New-CsExternalAccessPolicy', + 'Get-CsExternalAccessPolicy', + 'Remove-CsExternalAccessPolicy', + 'Set-CsExternalAccessPolicy', + 'Grant-CsExternalAccessPolicy', + + 'Get-CsTeamsMultiTenantOrganizationConfiguration', + 'Set-CsTeamsMultiTenantOrganizationConfiguration', + + 'New-CsTeamsHiddenMeetingTemplate', + + 'New-CsTeamsMeetingTemplatePermissionPolicy', + 'Get-CsTeamsMeetingTemplatePermissionPolicy', + 'Set-CsTeamsMeetingTemplatePermissionPolicy', + 'Remove-CsTeamsMeetingTemplatePermissionPolicy', + 'Grant-CsTeamsMeetingTemplatePermissionPolicy', + + 'Get-CsTeamsMeetingTemplateConfiguration', + 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', + + 'Get-CsTenantNetworkSite', + + 'New-CsTeamsShiftsPolicy', + 'Get-CsTeamsShiftsPolicy', + 'Remove-CsTeamsShiftsPolicy', + 'Set-CsTeamsShiftsPolicy', + 'Grant-CsTeamsShiftsPolicy', + + 'New-CsTeamsHiddenTemplate', + + 'New-CsTeamsTemplatePermissionPolicy', + 'Get-CsTeamsTemplatePermissionPolicy', + 'Remove-CsTeamsTemplatePermissionPolicy', + 'Set-CsTeamsTemplatePermissionPolicy', + + 'New-CsTeamsVirtualAppointmentsPolicy', + 'Get-CsTeamsVirtualAppointmentsPolicy', + 'Remove-CsTeamsVirtualAppointmentsPolicy', + 'Set-CsTeamsVirtualAppointmentsPolicy', + 'Grant-CsTeamsVirtualAppointmentsPolicy', + + 'New-CsTeamsComplianceRecordingPolicy', + 'Get-CsTeamsComplianceRecordingPolicy', + 'Remove-CsTeamsComplianceRecordingPolicy', + 'Set-CsTeamsComplianceRecordingPolicy', + + 'New-CsTeamsComplianceRecordingApplication', + 'Get-CsTeamsComplianceRecordingApplication', + 'Remove-CsTeamsComplianceRecordingApplication', + 'Set-CsTeamsComplianceRecordingApplication', + + 'New-CsTeamsComplianceRecordingPairedApplication', + + 'New-CsTeamsSharedCallingRoutingPolicy', + 'Get-CsTeamsSharedCallingRoutingPolicy', + 'Remove-CsTeamsSharedCallingRoutingPolicy', + 'Set-CsTeamsSharedCallingRoutingPolicy', + 'Grant-CsTeamsSharedCallingRoutingPolicy', + + 'New-CsTeamsVdiPolicy', + 'Get-CsTeamsVdiPolicy', + 'Remove-CsTeamsVdiPolicy', + 'Set-CsTeamsVdiPolicy', + 'Grant-CsTeamsVdiPolicy', + + 'Get-CsTeamsMeetingConfiguration', + 'Set-CsTeamsMeetingConfiguration', + + 'New-CsTeamsCustomBannerText', + 'Get-CsTeamsCustomBannerText', + 'Remove-CsTeamsCustomBannerText', + 'Set-CsTeamsCustomBannerText', + + 'Get-CsTeamsEducationConfiguration', + 'Set-CsTeamsEducationConfiguration', + + 'New-CsTeamsWorkLocationDetectionPolicy', + 'Get-CsTeamsWorkLocationDetectionPolicy', + 'Remove-CsTeamsWorkLocationDetectionPolicy', + 'Set-CsTeamsWorkLocationDetectionPolicy', + 'Grant-CsTeamsWorkLocationDetectionPolicy', + + 'New-CsTeamsMediaConnectivityPolicy', + 'Get-CsTeamsMediaConnectivityPolicy', + 'Remove-CsTeamsMediaConnectivityPolicy', + 'Set-CsTeamsMediaConnectivityPolicy', + 'Grant-CsTeamsMediaConnectivityPolicy', + + 'New-CsTeamsRecordingRollOutPolicy', + 'Get-CsTeamsRecordingRollOutPolicy', + 'Remove-CsTeamsRecordingRollOutPolicy', + 'Set-CsTeamsRecordingRollOutPolicy', + 'Grant-CsTeamsRecordingRollOutPolicy', + + 'New-CsTeamsFilesPolicy', + 'Get-CsTeamsFilesPolicy', + 'Remove-CsTeamsFilesPolicy', + 'Set-CsTeamsFilesPolicy', + 'Grant-CsTeamsFilesPolicy', + + 'Get-CsTeamsExternalAccessConfiguration', + 'Set-CsTeamsExternalAccessConfiguration', + + 'New-CsConversationRole', + 'Remove-CsConversationRole', + 'Get-CsConversationRole', + 'Set-CsConversationRole', + + 'New-CsTeamsBYODAndDesksPolicy', + 'Get-CsTeamsBYODAndDesksPolicy', + 'Remove-CsTeamsBYODAndDesksPolicy', + 'Set-CsTeamsBYODAndDesksPolicy', + 'Grant-CsTeamsBYODAndDesksPolicy', + + 'Get-CsTeamsAIPolicy', + 'Set-CsTeamsAIPolicy', + 'New-CsTeamsAIPolicy', + 'Remove-CsTeamsAIPolicy', + 'Grant-CsTeamsAIPolicy', + + 'Get-CsTeamsEducationAssignmentsAppPolicy', + 'Set-CsTeamsEducationAssignmentsAppPolicy', + + 'Get-CsPrivacyConfiguration', + 'Set-CsPrivacyConfiguration', + + 'Get-CsTeamsNotificationAndFeedsPolicy', + 'Set-CsTeamsNotificationAndFeedsPolicy', + 'Remove-CsTeamsNotificationAndFeedsPolicy', + + 'Get-CsTeamsClientConfiguration', + 'Set-CsTeamsClientConfiguration', + + 'Get-CsTeamsRemoteLogCollectionConfiguration', + + 'Get-CsTeamsRemoteLogCollectionDevice', + 'Set-CsTeamsRemoteLogCollectionDevice', + 'New-CsTeamsRemoteLogCollectionDevice', + 'Remove-CsTeamsRemoteLogCollectionDevice', + + 'Get-CsTeamsAcsFederationConfiguration', + 'Set-CsTeamsAcsFederationConfiguration' +) + +# Variables to export from this module +VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = @() + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{} + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDCgJaCEvpZAhVn +# byaLYV87TB9Mec7gDMf1rtO/Z7+9gaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIC7X +# AzX4HLJ1VGMqh4bK3Nb+o/Q+oLjbyq+RTiW8OeMQMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAd5I2z4E9ZsfXaa+6GSMmIOMyqMwbZ+LfJc1X +# y1htKMkxSB1ZTp7q8g44mYASDV44WEOCsHBv6AHwZDcQjukWa/C5gXytGlqbDj1E +# 5JY0WQ0XN2eAoJbUDOR16JPbpoEhWB+WSb7/ZAWobyEIACuhCBANB4eUGn5VJswN +# slwdf0bj+v7lxw41b7+VZw7QAar+ZWDclQDpFLW+mUc9wup8cXDogdh/iS8XYYmr +# jhQ8fYD6ViYp4tyBBvUaqtof96f8oAdHBlTQsVcTc+4NKwrq66i6UeQlVoqWt68a +# zfE8N9m80hdVjN5WY4btJsSpf9qp1dT0yqET+fMsMQYT2o+2GKGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAQvjfmXHoXih20jvFe4frfvyrouhf6Jlvd +# 2PKY5BI02QIGaKOvGfVpGBMyMDI1MTAwMTA4MzMwMS4zNTlaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgdWG1vHEKIQ4zqVCTD9rZnRpWW0Uz9SF3S+E0nAZFbYcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICABZUtPgsW6Wzyq0zeb/hewt+lvx8TBzOcC7C +# nVLNiQTvgTI9rZqlvpBx5x2bbLCNKRb63gZKYIhb7HL4TVKWWPh9f3nKz+ulre3x +# l/OYdQHHdUkq/WmJHYRXs+iC1SbEmgDqXrTjUhYtWhXjYPFBKSYrWMwYUYNJNDfe +# evI/th9PiCwnLG3ltlqjH41a1SD4aNfrf8p3ePn+BEEv+tDREyBSBgKMoBJqCUDt +# hZ/7kfzJ9jUkb4xYeRPpRLfo7taOUSSg5lTT1oA7ESxjmOFng/KBu5OaQ/N9nfZj +# 75ywiaJXWSTxRNEWpn3I7J/gvnTyyi+g0e872HEzA8Zdt6kz16D8gx3kfrEsBJ6w +# 9+o7fsTtmxPya60HbTFAPUhDeBZtNM18x7C3IEMV/W5Yihl7JitykWPE1BFMkmz8 +# Uw9WEccFKAUeUtfKJip70mnsyp3Hx7h49QHGh5WUFt/2psI5hDxoaEqpf2/hgmGH +# MB0+5r6GGJBQ8v+rO93ThSOwzEOL9pDCwa21abxhepL6jrvOtZohdnWumSxhAECx +# 4+a/ZDOKwUvY6wPyn2OGaLTgjHF6hUYWI9+Obeaq3XN7Ezodmtm8fxrAkDPYRUzx +# 74HU1RRPTk3Gjk0cFqbE6iR3ztC3S75czMXcoZhE92Q/XXNLAxCjNbBJQ9Gorr5c +# qhrkJiAV +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 new file mode 100644 index 000000000000..c47ea7790267 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 @@ -0,0 +1,238 @@ +$path = Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll' + +if (test-path $path) +{ + $null = Import-Module -Name $path +} +else +{ + if ($PSEdition -ne 'Desktop') + { + $null = Import-Module -Name (Join-Path $PSScriptRoot 'netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') + } + else + { + $null = Import-Module -Name (Join-Path $PSScriptRoot 'net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') + } +} + +gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.*.ps1xml') | % {Update-FormatData -PrependPath $_ } + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAkAcLpsaJGFDbZ +# eSS41J6zw7DVHNDwNlPCWsROSiOFqaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPfa +# nlNFBOVfSygxXiGchjDoSjX9DIEVGb2vyXmTS6s/MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAA176FYIkYhqlx8OEjQJlGLc49iKq7lbheDiw +# BF6cuLugHW6dZeXd8PnoCoVUeVie6XbbWcDWk8NqNu07BAVYBhp076g9NcSKi0lY +# fjmbTmyf4pjm4aslKLJ0fQHU8hdvosgtWgMMC5ND/eSBHnYjcURBrLrWa287QaWZ +# uDXJed63PFdNxtE4iSN6N/aJg0bSBR1VAnFrAuEVZoNP46lx8eBCnEc7LSVxdgzH +# UcNFvCa5SLy4PzPFk9NZbcBXhQYyUvyJlfLrwAVcX3BQZVfN6gid7fKBTvAUUw1M +# VvrZOofSkMD4F0cx3R8LKGYPUWutrRFz8CkFMa7lZEyaTkSGGKGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCWDnwCLYYGWnQyanINXSBz+tl6/PPaRbdX +# f5OKF3Q/IgIGaKSPMrGdGBMyMDI1MTAwMTA4MzMwMi4xMTFaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+8vL +# bDdn5TCVAAEAAAH7MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExM1oXDTI1MTAyMjE4MzExM1owgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjU3MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# qMJWQeWAq4LwvSjYsjP0Uvhvm0j0aAOJiMLg0sLfxKoTXAdKD6oMuq5rF5oEiOxV +# +9ox0H95Q8fhoZq3x9lxguZyTOK4l2xtcgtJCtjXRllM2bTpjOg35RUrBy0cAloB +# U9GJBs7LBNrcbH6rBiOvqDQNicPRZwq16xyjMidU1J1AJuat9yLn7taifoD58blY +# EcBvkj5dH1la9zU846QDeOoRO6NcqHLsDx8/zVKZxP30mW6Y7RMsqtB8cGCgGwVV +# urOnaNLXs31qTRTyVHX8ppOdoSihCXeqebgJCRzG8zG/e/k0oaBjFFGl+8uFELwC +# yh4wK9Z5+azTzfa2GD4p6ihtskXs3lnW05UKfDJhAADt6viOc0Rk/c8zOiqzh0lK +# pf/eWUY2o/hvcDPZNgLaHvyfDqb8AWaKvO36iRZSXqhSw8SxJo0TCpsbCjmtx0Lp +# Hnqbb1UF7cq09kCcfWTDPcN12pbYLqck0bIIfPKbc7HnrkNQks/mSbVZTnDyT3O8 +# zF9q4DCfWesSr1akycDduGxCdKBvgtJh1YxDq1skTweYx5iAWXnB7KMyls3WQZbT +# ubTCLLt8Xn8t+slcKm5DkvobubmHSriuTA3wTyIy4FxamTKm0VDu9mWds8MtjUSJ +# VwNVVlBXaQ3ZMcVjijyVoUNVuBY9McwYcIQK62wQ20ECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRHVSGYUNQ3RwOl71zIAuUjIKg1KjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAwzoIKOY2dnUjfWuMiGoz/ovoc1e86VwWaZNFdgRmOoQuRe4nLdtZONtT +# HNk3Sj3nkyBszzxSbZEQ0DduyKHHI5P8V87jFttGnlR0wPP22FAebbvAbutkMMVQ +# MFzhVBWiWD0VAnu9x0fjifLKDAVXLwoun5rCFqwbasXFc7H/0DPiC+DBn3tUxefv +# cxUCys4+DC3s8CYp7WWXpZ8Wb/vdBhDliHmB7pWcmsB83uc4/P2GmAI3HMkOEu7f +# CaSYoQhouWOr07l/KM4TndylIirm8f2WwXQcFEzmUvISM6ludUwGlVNfTTJUq2bT +# DEd3tlDKtV9AUY3rrnFwHTwJryLtT4IFhvgBfND3mL1eeSakKf7xTII4Jyt15SXh +# Hd5oI/XGjSgykgJrWA57rGnAC7ru3/ZbFNCMK/Jj6X8X4L6mBOYa2NGKwH4A37YG +# DrecJ/qXXWUYvfLYqHGf8ThYl12Yg1rwSKpWLolA/B1eqBw4TRcvVY0IvNNi5sm+ +# //HJ9Aw6NJuR/uDR7X7vDXicpXMlRNgFMyADb8AFIvQPdHqcRpRorY+YUGlvzeJx +# /2gNYyezAokbrFhACsJ2BfyeLyCEo6AuwEHn511PKE8dK4JvlmLSoHj7VFR3NHDk +# 3zRkx0ExkmF8aOdpvoKhuwBCxoZ/JhbzSzrvZ74GVjKKIyt5FA0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUABHHn7NCGusZz +# 2RfVbyuwYwPykBWggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHEVEwIhgPMjAyNTEwMDEwMjMyNDlaGA8yMDI1 +# MTAwMjAyMzI0OVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcRUQIBADAKAgEA +# AgIC4QIB/zAHAgEAAgISTDAKAgUA7Ihi0QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQB2rJUBbV82zv/fG68I5fhMRRSkgirfFrnlWvW6RfzPd+5iYKdth6dU +# 6IOUUkXT8dO0qMuoHqkbT04FjLzmTDVMz/HkKyWOnfzbgSfBdr627tuQfCEGAwNV +# ucTR8DvaCruh9rBA7ZrkdmVxSbNWAKHET4DRUNE04kCzDtcJRlH+6DET6vv0aaWh +# 8jP2P7qVYhNnf2EbzfEphwGpR2qf12umLBqw3UuOLP409MRmZbnWF7ektopLFB0Q +# q2MmM3MvEuHDKHeP9zk2uDYd/JBwf4FNbMFJE/290pXYfcRhctqSoSE6hLmab8Cb +# xUvtPV6BaJ52RwxeSWsAM3GSZBGPrS0IMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH7y8tsN2flMJUAAQAAAfswDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgEiESkj19FIoUPhMunHleTDnL/vf3NQU3SuPeEOeclPQwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA52wKr/KCFlVNYiWsCLsB4qhjEYEP3xHqY +# qDu1SSTlGDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+8vLbDdn5TCVAAEAAAH7MCIEICnkwtMY6H2GmiCyEEz1OMgXS5ZXQyQ7h2mA +# fwdrbCjpMA0GCSqGSIb3DQEBCwUABIICAGxUpYVK6wtcpGfx4YQZn1mr+B3rb603 +# Bp7ZmQ2JsVccrBGW70H+iLguDhudJhAzfvvBujGippd+TP58jx3lQbLAQOag9lcR +# xhEeDHY6BC+IGXaJrzJX7iE5WXiZF1pn27sDPo7EyvR+2j/GyXaA6Dy59sCO2qXU +# VOAqOQruTAlJzr7ZisjEUzdg2FQ41M+iZetv5gPG44t6HgWaaUxECKIeUFZFQiP8 +# XXz0HaDTSiB1VrRRs4fnIA7N0UFBzQOZ/D5ko0+n0TXPoPcv7y/WadDfQ+RUymP8 +# AowHQmDmC8EBOUZs/F7pwFC1RnF6cEhI5/zutEbmEw05sGCm9zFBbxuuJepOMqLj +# SsCPTi+IvDf0M93qLoxCO6Zcj9V/d7T3c6MR3X3O8UM5nNjWjEjkwDeX//Fd1us8 +# M0XA2tlo3o6ssd9wUPJSIc/T5r+qPHtzgIUAbC7k8Fh+Q48X0bECTc5UzYyTs+2/ +# CqjLWJPA0vBsDPV2CkwRZtSC3aKWjNWxX7+3hTl2MV2DtfmJ/4aeKWNEXeE8PoFh +# ZGUF160rbdZOET9mz/A8VGzCXKs0kBuDlBGEFQGchzRchdP+VtC7VmF/1HHgomDo +# sNdGNYQJB2EPSWHG0CzHu/OxHmRn69yJhHfDBmFstm4lq78CeVDSiJ0vW4TJt1G8 +# JPbiUx/mCCDS +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml new file mode 100644 index 000000000000..69719455253b --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml @@ -0,0 +1,27 @@ + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core + + + + + 'Applies a PSListModifier to a collection. + The collection either has the items in modifier.Add added and those in modifier.Remove removed, + or is replaced entirely with the items in modifier.Replace. + keyEqualityPredicate is called during a remove operation to determine if an item in the collection + is the same as an item in the modifier - reference equality is not sufficient. + + + + + 'Applies a PSListModifier to a collection. + The collection either has the items in modifier.Add added and those in modifier.Remove removed, + or is replaced entirely with the items in modifier.Replace. + This overload is used then the objects in the collection can be compared correctly with those + in the modifier by calling .Equals(). + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml new file mode 100644 index 000000000000..4858d2a33c16 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml @@ -0,0 +1,260 @@ + + + + + TeamsAIPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.TeamsAIPolicy + + + + + + + + + Identity + + + + Description + + + + EnrollFace + + + + EnrollVoice + + + + SpeakerAttributionForBYOD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml new file mode 100644 index 000000000000..b9ec3ea42369 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml @@ -0,0 +1,252 @@ + + + + + TeamsAudioConferencingPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.TeamsAudioConferencingPolicy + + + + + + + + + Identity + + + + MeetingInvitePhoneNumbers + + + + AllowTollFreeDialin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml new file mode 100644 index 000000000000..83440f7bcb43 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml @@ -0,0 +1,248 @@ + + + + + TeamsBYODAndDesksPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.TeamsBYODAndDesksPolicy + + + + + + + + + Identity + + + + DeviceDataCollection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml new file mode 100644 index 000000000000..c38cc9747d74 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsMediaConnectivityPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.TeamsMediaConnectivityPolicy + + + + + + + + + Identity + + + + DirectConnection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml new file mode 100644 index 000000000000..4ab7d366facd --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml @@ -0,0 +1,276 @@ + + + + + TeamsPersonalAttendantPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.TeamsPersonalAttendantPolicy + + + + + + + + + Identity + + + + PersonalAttendant + + + + CallScreening + + + + CalendarBookings + + + + InboundInternalCalls + + + + InboundFederatedCalls + + + + InboundPSTNCalls + + + + AutomaticTranscription + + + + AutomaticRecording + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml new file mode 100644 index 000000000000..a2b5ce7c42be --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml @@ -0,0 +1,248 @@ + + + + + TeamsRecordingRollOutPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.TeamsRecordingRollOutPolicy + + + + + + + + + Identity + + + + MeetingRecordingOwnership + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml new file mode 100644 index 000000000000..cd725d2167a6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsVirtualAppointmentsPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.TeamsVirtualAppointmentsPolicy + + + + + + + + + Identity + + + + EnableSmsNotifications + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml new file mode 100644 index 000000000000..0931a82b11e9 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml @@ -0,0 +1,247 @@ + + + + + TeamsWorkLocationDetectionPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.TeamsWorkLocationDetectionPolicy + + + + + + + + + Identity + + + + EnableWorkLocationDetection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 new file mode 100644 index 000000000000..0d82e99848a1 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 @@ -0,0 +1,319 @@ +# +# Module manifest for module 'MicrosoftTeamsPolicyAdministration' +# +# Generated by: Microsoft Corporation +# +# Updated on: 1/31/2022 +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.Policy.Administration.psm1' + +# Version number of this module. +ModuleVersion = '21.4.4' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '048c99d9-471a-4935-a810-542687c5f950' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams cmdlets module for Policy Administration' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = '*' + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = '*' + +# Variables to export from this module +VariablesToExport = '*' + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = '*' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{} + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAizEF7EthEfKhr +# v64YI3/+SMJkAC9oh3WCsRWG4pdusqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIN0s +# HqoqWu/70zfwRQjHbRI9tcwpjpUnzXMkIHBvxTZHMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAI886RwfaaT8kZaw3qXMyp4W63nmO5MUXdY5A +# gS41vNrTI9mB9OxxyZarmrAnVzWBP0f1bUnzWZjB3B7Ny0ZRFwdtdklKTQ4FSqsZ +# vcGSXJDiv8SxkC9mF3/BfUCSkerw8yWq6At3BmwI9pvp733ZzrYCgNG4FperZanw +# ec2wp2Sz8swhEqf8wlTKcFfhRDRWQWhCWVD2E0UJ1IgHxPpSot6poO3FI6xivTdN +# 2UXMBX6iVv1qARJBCnVxegYeY4ED/5u37weNXkL6HSpoaXHQKJ7C1KzNyTWcYFGo +# dL4IIyQwr+EjtwdbyrekXLByF4Ji5CLCKcJDtVyEEC4NmFD+f6GCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCVdIAtLPSOGpzb8gas4wIWLavonKF3GMvt +# GcIwAuELzQIGaKOxdLn0GBMyMDI1MTAwMTA4MzMwMy43MDdaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/tCo +# wns0IQsBAAEAAAH+MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOFoXDTI1MTAyMjE4MzExOFowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# vLwhFxWlqA43olsE4PCegZ4mSfsH2YTSKEYv8Gn3362Bmaycdf5T3tQxpP3NWm62 +# YHUieIQXw+0u4qlay4AN3IonI+47Npi9fo52xdAXMX0pGrc0eqW8RWN3bfzXPKv0 +# 7O18i2HjDyLuywYyKA9FmWbePjahf9Mwd8QgygkPtwDrVQGLyOkyM3VTiHKqhGu9 +# BCGVRdHW9lmPMrrUlPWiYV9LVCB5VYd+AEUtdfqAdqlzVxA53EgxSqhp6JbfEKnT +# dcfP6T8Mir0HrwTTtV2h2yDBtjXbQIaqycKOb633GfRkn216LODBg37P/xwhodXT +# 81ZC2aHN7exEDmmbiWssjGvFJkli2g6dt01eShOiGmhbonr0qXXcBeqNb6QoF8jX +# /uDVtY9pvL4j8aEWS49hKUH0mzsCucIrwUS+x8MuT0uf7VXCFNFbiCUNRTofxJ3B +# 454eGJhL0fwUTRbgyCbpLgKMKDiCRub65DhaeDvUAAJT93KSCoeFCoklPavbgQya +# hGZDL/vWAVjX5b8Jzhly9gGCdK/qi6i+cxZ0S8x6B2yjPbZfdBVfH/NBp/1Ln7xb +# eOETAOn7OT9D3UGt0q+KiWgY42HnLjyhl1bAu5HfgryAO3DCaIdV2tjvkJay2qOn +# F7Dgj8a60KQT9QgfJfwXnr3ZKibYMjaUbCNIDnxz2ykCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRvznuJ9SU2g5l/5/b+5CBibbHF3TAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAiT4NUvO2lw+0dDMtsBuxmX2o3lVQqnQkuITAGIGCgI+sl7ZqZOTDd8Lq +# xsH4GWCPTztc3tr8AgBvsYIzWjFwioCjCQODq1oBMWNzEsKzckHxAzYo5Sze7OPk +# MA3DAxVq4SSR8y+TRC2GcOd0JReZ1lPlhlPl9XI+z8OgtOPmQnLLiP9qzpTHwFze +# +sbqSn8cekduMZdLyHJk3Niw3AnglU/WTzGsQAdch9SVV4LHifUnmwTf0i07iKtT +# lNkq3bx1iyWg7N7jGZABRWT2mX+YAVHlK27t9n+WtYbn6cOJNX6LsH8xPVBRYAIR +# VkWsMyEAdoP9dqfaZzwXGmjuVQ931NhzHjjG+Efw118DXjk3Vq3qUI1re34zMMTR +# zZZEw82FupF3viXNR3DVOlS9JH4x5emfINa1uuSac6F4CeJCD1GakfS7D5ayNsaZ +# 2e+sBUh62KVTlhEsQRHZRwCTxbix1Y4iJw+PDNLc0Hf19qX2XiX0u2SM9CWTTjsz +# 9SvCjIKSxCZFCNv/zpKIlsHx7hQNQHSMbKh0/wwn86uiIALEjazUszE0+X6rcObD +# fU4h/O/0vmbF3BMR+45rAZMAETJsRDPxHJCo/5XGhWdg/LoJ5XWBrODL44YNrN7F +# RnHEAAr06sflqZ8eeV3FuDKdP5h19WUnGWwO1H/ZjUzOoVGiV3gwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAhGNHD/a7Q0bQ +# LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 +# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA +# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU +# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O +# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 +# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H +# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ +# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgcWvCA7syJSQRcPP6J3M3qUoHDuPVV3NRhh21Dj8LHpEwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs +# tyh0eTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /tCowns0IQsBAAEAAAH+MCIEIHl8bRCAEGD1nFgaXp67WN1I3z8m7ZUmowEzGTjb +# iSIqMA0GCSqGSIb3DQEBCwUABIICAIT+2wgOhfO9dGRSJlOAVksO6aJR8upaTR8O +# lPfuukTdRc2OjjJlrq1/4U4DFrzF+5fgX2ryRlyidqASC9IhIenDLyB9swL1p3Up +# u8PdUhsHo/gtkpNvshjFSsgSl24Cl5gqCTdgE7u9ia0Td0uNzyp4micmnHFSlL5e +# xmoBq8PrGPlfz59r2DwEiL0ncfyprkypUu8lkFL4Ze6Did3kdud39Lfo9mYi3Q9P +# 72QH+7NlUcsF5HMeojQS2knq+DQEKcOA7Easo6MG199hoj0GGsUxATj9kZX9aOs0 +# tMT5LAiY+Jo1Z6k7/yJqR6hDnPLN7k8EKp91X/MgwrGgTEPQWJvP68bVrGFQHTAp +# R1TCMV7hZgYR9AX8FI+82M1rEz/gl5vjXrvCB3hKglht71Xh/Y3Zroue5s3aUb8X +# PB30drTrXerrtNZ73CLDHN/g6z1Hh5XPgCmvbncgCjll5gqjoj/nHQkKIXbnijwD +# D7+bfnoOpHqlNw1PJqgjCZm2fhsLEHKXDnxuwiuScMvqGRdWOTUD/vj8KAs1q8ka +# HkJzKXckUagiGXUEfRkrGFbJleXRjeety7ZiefzrH/fghoOmOSUsd2P4jxLMUsNZ +# 9LZcBtVWHWwVBIt/xfVfFSkU5WbhOoz9PudW1pG9l0PbcUSmOXAQKH9FwcT3Tqf3 +# HIchFvHN +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 new file mode 100644 index 000000000000..dac2ec5284fe --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 @@ -0,0 +1,248 @@ +# Define which modules to load based on the environment +# These environment variables are set in TPM + +if ($env:MSTeamsContextInternal -eq "IsOCEModule") { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1' +} +elseif ($env:MSTeamsReleaseEnvironment -eq 'TeamsPreview') { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1' +} +else { + $mpaModule = 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1' +} + +$path = (Join-Path $PSScriptRoot $mpaModule) + +if (test-path $path) +{ + $null = Import-Module -Name $path +} +else +{ + if ($PSEdition -ne 'Desktop') + { + $null = Import-Module -Name (Join-Path $PSScriptRoot "netcoreapp3.1\$mpaModule") + } + else + { + $null = Import-Module -Name (Join-Path $PSScriptRoot "net472\$mpaModule") + } +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCY/3SaRU5aX7aK +# TQZJ6IK4Qt60ySomlFTBejL/fus5QaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBMw +# q7DKEXveX/tYp75+TAPnyE5ZJziyHVTCrrAiSia5MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAeDguijEeixlAKE2HfhTxBw93mfPIgX3jhc63 +# 7TiIYsweHWRj9AIx7n84Y6MTVh4qP6J9F31lXZkjKr2uRxORWfcdzgPDlEk0ilDb +# bdUFUg1NP0C8DwxUsKxQMw+YY71Vimgg284U6CYu+u2xXH4ZRVakUtmabmzWsu7k +# PSwWAmd0N9y4d1tlAgmf+Z/WPiry/P0AOBz7gpxJEncFrj7WIv2WHYitB/K8ElJ5 +# +riHLuYm1pPT6Vaj4bc8JAV+Iioq7SN4wvtDbNDF6C5Qq/YyUKBHJD+1XZXyXdgi +# NwdCfOqPb9DejbDdmchQE8sDHEItCP9Tyko890AIpiNanWPLB6GCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCCV7ZelKBHXN1ogHtX5KieQqUnxtjGIceZ +# A6wVYjKWzAIGaKOvGfWVGBMyMDI1MTAwMTA4MzMwMi4zMzlaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQg9EUi0GwdI7f5VNLcGjHgsFQ3coZvNRAk3QmJ0eEdcvcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICAF6dRTMCVnCbetbuA/BYOcM5F71+HqL3mf0L +# s40lxJ/uZnotyAAau6Gp4920uacdvB8P03CAkcZxDqn8B4bi0+yB/NlLi9tI1j/a +# gzdyspoSxWWr0g3462YzXBnCRb5Yh3y6Gc2PQ5hhU2aLtZR2rJwpx+oh2QgUu3lW +# DOZRR/rDUGiqyxqrnqNerlzYGAXGfv05p9D9bU1rRRU7R53yrlRwkASQslEvGDnM +# qplUsLdyeJFNiXB95b4GAdeuTNgR/KGdqdyPH0If5d9kl8dZ7oI00baNY3HRTB1n +# vodZ94XWpCm64bM97N5LTompSa9+fDlgf1KGJGtYPuOq0nkvBWazeq5pgAolbnvK +# BryXrqhMUS3/bXnscmdI6jWKcBXUFQZ0x0xS13AbLqkK99/dLJ0cqplhOLJTo45g +# LF6meVVKzd8pg1QZvc5poE54tSgsRHSUxreFb8xd8c+6NW+jhnQQH2PQSQG9kW+m +# MDCqAAgvjXH/Li0aIvqY5ZElx1m2vnC7kNoqH+SPin8m/Mm4G2qxSZLcuvN2i3o/ +# r0JEYaWyqLM7Bs2K6aC6ZuoRo4vWKEsiuaPuI3c1lI5mYVjt8nleYvrMDr071T51 +# 2RiUdRNglEW6wdIhUDy78pISuyxFRcPoWR4NWEhNBJCG8mFHwTlBvGsfsA+Jt3FY +# sGHurA7y +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml new file mode 100644 index 000000000000..22a6afd1c8b0 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml @@ -0,0 +1,8 @@ + + + + Microsoft.Teams.Policy.Administration + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml new file mode 100644 index 000000000000..9c5b7f84166a --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml @@ -0,0 +1,8 @@ + + + + Microsoft.Teams.PowerShell.Module + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml new file mode 100644 index 000000000000..33cdaa343deb --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml @@ -0,0 +1,5742 @@ + + + + + Add-TeamChannelUser + Add + TeamChannelUser + + Adds an owner or member to the private channel. + Note: the command will return immediately, but the Teams application will not reflect the update immediately, please refresh the members page to see the update. + To turn an existing Member into an Owner, first Add-TeamChannelUser -User foo to add them to the members list, then Add-TeamChannelUser -User foo -Role Owner to add them to owner list. + + + + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Add-TeamChannelUser + + GroupId + + GroupId of the parent team + + String + + String + + + None + + + DisplayName + + Display name of the private channel + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Role + + Owner + + String + + String + + + None + + + + + + GroupId + + GroupId of the parent team + + String + + String + + + None + + + DisplayName + + Display name of the private channel + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Role + + Owner + + String + + String + + + None + + + + + + GroupId, DisplayName, User, Role + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com + + Add user dmx@example.com to private channel with name "Engineering" under the given group. + + + + -------------------------- Example 2 -------------------------- + Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com -Role Owner + + Promote user dmx@example.com to an owner of private channel with name "Engineering" under the given group. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/add-teamchanneluser + + + + + + Add-TeamsAppInstallation + Add + TeamsAppInstallation + + Add a Teams App to Microsoft Teams. + + + + Add a Teams App to Microsoft Teams. + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Add-TeamsAppInstallation + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + Permissions + + RSC permissions for the Teams App. + + String + + String + + + None + + + TeamId + + Team identifier in Microsoft Teams. + + String + + String + + + None + + + + Add-TeamsAppInstallation + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + Permissions + + RSC permissions for the Teams App. + + String + + String + + + None + + + UserId + + User identifier in Microsoft Teams. + + String + + String + + + None + + + + + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + Permissions + + RSC permissions for the Teams App. + + String + + String + + + None + + + TeamId + + Team identifier in Microsoft Teams. + + String + + String + + + None + + + UserId + + User identifier in Microsoft Teams. + + String + + String + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Add-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + + This example adds a Teams App to Microsoft Teams. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Add-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -Permissions "TeamSettings.Read.Group ChannelMessage.Read.Group" + + This example adds a Teams App to Microsoft Teams with RSC Permissions. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/add-teamsappinstallation + + + + + + Add-TeamUser + Add + TeamUser + + The `Add-TeamUser` adds an owner or member to the team, and to the unified group which backs the team. + + + + This cmdlet adds an owner or member to the team, and to the unified group which backs the team. + > [!Note] > The command will return immediately, but the Teams application will not reflect the update immediately. The change can take between 24 and 48 hours to appear within the Teams client. + + + + Add-TeamUser + + GroupId + + GroupId of the team. + + String + + String + + + None + + + User + + UPN of a user of the organization (user principal name - e.g. johndoe@example.com). + + String + + String + + + None + + + Role + + Member or Owner. If Owner is specified then the user is also added as a member to the Team backed by unified group. + + String + + String + + + Member + + + + + + GroupId + + GroupId of the team. + + String + + String + + + None + + + User + + UPN of a user of the organization (user principal name - e.g. johndoe@example.com). + + String + + String + + + None + + + Role + + Member or Owner. If Owner is specified then the user is also added as a member to the Team backed by unified group. + + String + + String + + + Member + + + + + + GroupId, User, Role + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Add-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com + + This example adds the user "dmx@example.com" to a group with the id "31f1ff6c-d48c-4f8a-b2e1-abca7fd399df". + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/add-teamuser + + + + + + Get-Team + Get + Team + + This cmdlet supports retrieving teams with particular properties/information, including all teams that a specific user belongs to, all teams that have been archived, all teams with a specific display name, or all teams in the organization. + + + + This cmdlet supports retrieving teams with particular properties/information, including all teams that a specific user belongs to, all teams that have been archived, all teams with a specific display name, or all teams in the organization. + >[!NOTE] >Depending on the number of teams and O365 Groups in your organization and which filters you are using, this cmdlet can take upwards of ten minutes to run. Some of the input parameters are guaranteed unique (e.g. GroupId), and others serve as filters (e.g. -Archived). + + + + Get-Team + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Archived + + If $true, filters to return teams that have been archived. If $false, filters to return teams that have not been archived. Do not specify any value to return teams that match filter regardless of archived state. This is a filter rather than an exact match. + + Boolean + + Boolean + + + None + + + DisplayName + + Filters to return teams with a full match to the provided displayname. As displayname is not unique, this acts as a filter rather than an exact match. Note that this filter value is case-sensitive. + + String + + String + + + None + + + GroupId + + Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. + + String + + String + + + None + + + MailNickName + + Specify the mailnickname of the team that is being returned. This is a unique identifier and returns exact match. + + String + + String + + + None + + + Visibility + + Filters to return teams with a set "visibility" value. Accepted values are "Public", "Private" or "HiddenMembership". Do not specify any value to return teams that match filter regardless of visibility. This is a filter rather than an exact match. + + String + + String + + + None + + + + Get-Team + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Archived + + If $true, filters to return teams that have been archived. If $false, filters to return teams that have not been archived. Do not specify any value to return teams that match filter regardless of archived state. This is a filter rather than an exact match. + + Boolean + + Boolean + + + None + + + DisplayName + + Filters to return teams with a full match to the provided displayname. As displayname is not unique, this acts as a filter rather than an exact match. Note that this filter value is case-sensitive. + + String + + String + + + None + + + MailNickName + + Specify the mailnickname of the team that is being returned. This is a unique identifier and returns exact match. + + String + + String + + + None + + + Visibility + + Filters to return teams with a set "visibility" value. Accepted values are "Public", "Private" or "HiddenMembership". Do not specify any value to return teams that match filter regardless of visibility. This is a filter rather than an exact match. + + String + + String + + + None + + + + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Archived + + If $true, filters to return teams that have been archived. If $false, filters to return teams that have not been archived. Do not specify any value to return teams that match filter regardless of archived state. This is a filter rather than an exact match. + + Boolean + + Boolean + + + None + + + DisplayName + + Filters to return teams with a full match to the provided displayname. As displayname is not unique, this acts as a filter rather than an exact match. Note that this filter value is case-sensitive. + + String + + String + + + None + + + GroupId + + Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. + + String + + String + + + None + + + MailNickName + + Specify the mailnickname of the team that is being returned. This is a unique identifier and returns exact match. + + String + + String + + + None + + + Visibility + + Filters to return teams with a set "visibility" value. Accepted values are "Public", "Private" or "HiddenMembership". Do not specify any value to return teams that match filter regardless of visibility. This is a filter rather than an exact match. + + String + + String + + + None + + + + + + UPN, UserID + + + + + + + + + + Team + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS> Get-Team -User dmx1@example.com + + Returns all teams that a user (dmx1@example.com) belongs to + + + + -------------------------- Example 2 -------------------------- + PS> Get-Team -Archived $true -Visibility Private + + Returns all teams that are private and have been archived. + + + + -------------------------- Example 3 -------------------------- + PS> Get-Team -MailNickName "BusinessDevelopment" + + Returns the team that matches the specified MailNickName + + + + -------------------------- Example 4 -------------------------- + PS> Get-Team -DisplayName "Sales and Marketing" + + Returns the team that matches the specified DisplayName + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-team + + + New-Team + + + + Set-Team + + + + + + + Get-TeamChannel + Get + TeamChannel + + Get all the channels for a team. + + + + + + + + Get-TeamChannel + + GroupId + + GroupId of the team + + String + + String + + + None + + + MembershipType + + Membership type of the channel to display, Standard or Private (available in private preview) + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + MembershipType + + Membership type of the channel to display, Standard or Private (available in private preview) + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamChannel -GroupId af55e84c-dc67-4e48-9005-86e0b07272f9 + + Get channels of the group. + + + + -------------------------- Example 2 -------------------------- + Get-TeamChannel -GroupId af55e84c-dc67-4e48-9005-86e0b07272f9 -MembershipType Private + + Get all private channels of the group. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teamchannel + + + + + + Get-TeamChannelUser + Get + TeamChannelUser + + Returns users of a channel. + + + + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Get-TeamChannelUser + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Display name of the channel + + String + + String + + + None + + + Role + + Filter the results to only users with the given role: Owner or Member. + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Display name of the channel + + String + + String + + + None + + + Role + + Filter the results to only users with the given role: Owner or Member. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamChannelUser -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Engineering" -Role Owner + + Get owners of channel with display name as "Engineering" + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teamchanneluser + + + + + + Get-TeamFunSettings + Get + TeamFunSettings + + Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To retrieve a Team's fun settings, run Get-Team. + Gets a team's fun settings. + + + + + + + + Get-TeamFunSettings + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamFunSettings -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teamfunsettings + + + + + + Get-TeamGuestSettings + Get + TeamGuestSettings + + Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To retrieve a Team's guest settings, run Get-Team. + Gets Team guest settings. + + + + + + + + Get-TeamGuestSettings + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamGuestSettings -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teamguestsettings + + + + + + Get-TeamMemberSettings + Get + TeamMemberSettings + + Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To retrieve a Team's member settings, run Get-Team. + Gets team member settings. + + + + + + + + Get-TeamMemberSettings + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamMemberSettings -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teammembersettings + + + + + + Get-TeamMessagingSettings + Get + TeamMessagingSettings + + Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To retrieve a Team's messaging settings, run Get-Team. + Gets team messaging settings. + + + + + + + + Get-TeamMessagingSettings + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamMessagingSettings -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teammessagingsettings + + + + + + Get-TeamsApp + Get + TeamsApp + + Returns app information from the Teams tenant app store. + + + + Use any optional parameter to retrieve app information from the Teams tenant app store. + + + + Get-TeamsApp + + DisplayName + + Name of the app visible to users + + String + + String + + + None + + + DistributionMethod + + The type of app in Teams: global or organization. For LOB apps, use "organization" + + String + + String + + + None + + + ExternalId + + The external ID of the app, provided by the app developer and used by Azure Active Directory + + String + + String + + + None + + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + DisplayName + + Name of the app visible to users + + String + + String + + + None + + + DistributionMethod + + The type of app in Teams: global or organization. For LOB apps, use "organization" + + String + + String + + + None + + + ExternalId + + The external ID of the app, provided by the app developer and used by Azure Active Directory + + String + + String + + + None + + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 + + + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-TeamsApp -ExternalId b00080be-9b31-4927-9e3e-fa8024a7d98a -DisplayName <String>] [-DistributionMethod <String>] + + + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-TeamsApp -DisplayName SampleApp -DistributionMethod organization + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teamsapp + + + + + + Get-TeamsAppInstallation + Get + TeamsAppInstallation + + Get a Teams App installed in Microsoft Teams. + + + + Get a Teams App installed in Microsoft Teams. + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Get-TeamsAppInstallation + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + TeamId + + Team identifier in Microsoft Teams. + + String + + String + + + None + + + + Get-TeamsAppInstallation + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + UserId + + User identifier in Microsoft Teams. + + String + + String + + + None + + + + + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + TeamId + + Team identifier in Microsoft Teams. + + String + + String + + + None + + + UserId + + User identifier in Microsoft Teams. + + String + + String + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + + This example gets a Teams App specifying its AppId and the TeamId. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teamsappinstallation + + + + + + Get-TeamUser + Get + TeamUser + + Returns users of a team. + + + + Returns an array containing the UPN, UserId, Name and Role of users belonging to an specific GroupId. + + + + Get-TeamUser + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + Filter the results to only users with the given role: Owner or Member. + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + Filter the results to only users with the given role: Owner or Member. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamUser -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -Role Owner + + This example returns the UPN, UserId, Name, and Role of the owners of the specified GroupId. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/get-teamuser + + + + + + New-Team + New + Team + + This cmdlet lets you provision a new Team for use in Microsoft Teams and will create an O365 Unified Group to back the team. Groups created through teams cmdlets, APIs, or clients will not show up in Outlook by default. + If you want these groups to appear in Outlook clients, you can use the Set-UnifiedGroup (https://docs.microsoft.com/powershell/module/exchange/set-unifiedgroup) cmdlet in the Exchange Powershell Module to disable the switch parameter `HiddenFromExchangeClientsEnabled` (-HiddenFromExchangeClientsEnabled:$false). + + Note: The Teams application may need to be open by an Owner for up to two hours before changes are reflected. + IMPORTANT: Using this cmdlet to create a new team using a template is still in preview. You can install and use the preview module from the PowerShell test gallery. For instructions on installing and using the Teams PowerShell preview module, see Install the pre-release version of the Teams PowerShell module (https://docs.microsoft.com/microsoftteams/install-prerelease-teams-powershell-module). + + + + Creates a new team with user specified settings, and returns a Group object with a GroupID property. Note that Templates are not yet supported in our 1.0 PowerShell release. + + + + New-Team + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. + For more details about the naming conventions see here: New-UnifiedGroup (https://docs.microsoft.com/powershell/module/exchange/new-unifiedgroup#parameters), Parameter: -Alias. + + String + + String + + + None + + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Characters Limit - 256. + + String + + String + + + None + + + Template + + Note: this parameter is not supported in our 1.0 PowerShell release, only in Preview. + If you have an EDU license, you can use this parameter to specify which template you'd like to use for creating your group. Do not use this parameter when converting an existing group. + Valid values are: "EDU_Class" or "EDU_PLC" + + String + + String + + + None + + + Owner + + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. + + String + + String + + + None + + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + True + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + True + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + True + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + True + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + True + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + False + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + False + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + True + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + True + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + True + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + True + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + True + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + Moderate + + + Visibility + + Set to Public to allow all users in your organization to join the group by default. Set to Private to require that an owner approve the join request. + + String + + String + + + Private + + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + True + + + RetainCreatedGroup + + Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. + + + SwitchParameter + + + False + + + + New-Team + + Owner + + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. + + String + + String + + + None + + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + True + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + True + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + True + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + True + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + True + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + False + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + False + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + True + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + True + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + True + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + True + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + True + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + Moderate + + + GroupId + + Specify a GroupId to convert to a Team. If specified, you cannot provide the other values that are already specified by the existing group, namely: Visibility, Alias, Description, or DisplayName. If, for example, you need to create a Team from an existing Microsoft 365 Group, use the ExternalDirectoryObjectId property value returned by Get-UnifiedGroup (https://docs.microsoft.com/powershell/module/exchange/get-unifiedgroup?view=exchange-ps). + + String + + String + + + None + + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + True + + + RetainCreatedGroup + + Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. + + + SwitchParameter + + + False + + + + + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. + For more details about the naming conventions see here: New-UnifiedGroup (https://docs.microsoft.com/powershell/module/exchange/new-unifiedgroup#parameters), Parameter: -Alias. + + String + + String + + + None + + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Characters Limit - 256. + + String + + String + + + None + + + Template + + Note: this parameter is not supported in our 1.0 PowerShell release, only in Preview. + If you have an EDU license, you can use this parameter to specify which template you'd like to use for creating your group. Do not use this parameter when converting an existing group. + Valid values are: "EDU_Class" or "EDU_PLC" + + String + + String + + + None + + + Owner + + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. + + String + + String + + + None + + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + True + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + True + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + True + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + True + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + True + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + False + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + False + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + True + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + True + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + True + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + True + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + True + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + Moderate + + + GroupId + + Specify a GroupId to convert to a Team. If specified, you cannot provide the other values that are already specified by the existing group, namely: Visibility, Alias, Description, or DisplayName. If, for example, you need to create a Team from an existing Microsoft 365 Group, use the ExternalDirectoryObjectId property value returned by Get-UnifiedGroup (https://docs.microsoft.com/powershell/module/exchange/get-unifiedgroup?view=exchange-ps). + + String + + String + + + None + + + Visibility + + Set to Public to allow all users in your organization to join the group by default. Set to Private to require that an owner approve the join request. + + String + + String + + + Private + + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + True + + + RetainCreatedGroup + + Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + GroupId + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-Team -DisplayName "Tech Reads" + + This example creates a team with all parameters with their default values. + + + + -------------------------- Example 2 -------------------------- + New-Team -DisplayName "Tech Reads" -Description "Team to post technical articles and blogs" -Visibility Public + + This example creates a team with a specific description and public visibility. + + + + -------------------------- Example 3 -------------------------- + $group = New-Team -MailNickname "TestTeam" -displayname "Test Teams" -Visibility "private" +Add-TeamUser -GroupId $group.GroupId -User "fred@example.com" +Add-TeamUser -GroupId $group.GroupId -User "john@example.com" +Add-TeamUser -GroupId $group.GroupId -User "wilma@example.com" +New-TeamChannel -GroupId $group.GroupId -DisplayName "Q4 planning" +New-TeamChannel -GroupId $group.GroupId -DisplayName "Exec status" +New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" + + This example creates a team, adds three members to it, and creates three channels within it. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/new-team + + + Remove-Team + + + + Get-Team + + + + Set-Team + + + + + + + New-TeamChannel + New + TeamChannel + + Add a new channel to a team. + + + + > [!IMPORTANT] > Modules in the PS INT gallery for Microsoft Teams run on the /beta version in Microsoft Graph and are subject to change. Int modules can be install from here <https://www.poshtestgallery.com/packages/MicrosoftTeams>. + + + + New-TeamChannel + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + + String + + String + + + None + + + Description + + Channel description. Channel description can be up to 1024 characters. + + String + + String + + + None + + + MembershipType (available in private preview) + + Channel membership type, Standard or Private. + + String + + String + + + None + + + Owner (available in private preview) + + UPN of owner that can be specified while creating a private channel. + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + + String + + String + + + None + + + Description + + Channel description. Channel description can be up to 1024 characters. + + String + + String + + + None + + + MembershipType (available in private preview) + + Channel membership type, Standard or Private. + + String + + String + + + None + + + Owner (available in private preview) + + UPN of owner that can be specified while creating a private channel. + + String + + String + + + None + + + + + + GroupId, DisplayName, Description, MembershipType, Owner + + + + + + + + + + Id + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Architecture" + + Create a standard channel with display name as "Architecture" + + + + -------------------------- Example 2 -------------------------- + New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Engineering" -MembershipType Private + + Create a private channel with display name as "Engineering" + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/new-teamchannel + + + + + + New-TeamsApp + New + TeamsApp + + Creates a new app in the Teams tenant app store. + + + + Use a Teams app manifest zip file to upload an app to the tenant app store. DistributionMethod specifies that the app should be added to the organization. + + + + New-TeamsApp + + DistributionMethod + + The type of app in Teams: global or organization. For LOB apps, use "organization" + + String + + String + + + None + + + Path + + The local path of the app manifest zip file, for use in New and Set + + String + + String + + + None + + + + + + DistributionMethod + + The type of app in Teams: global or organization. For LOB apps, use "organization" + + String + + String + + + None + + + Path + + The local path of the app manifest zip file, for use in New and Set + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-TeamsApp -DistributionMethod organization -Path c:\Path\SampleApp.zip + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/new-teamsapp + + + + + + Remove-Team + Remove + Team + + This cmdlet deletes a specified Team from Microsoft Teams. + NOTE: The associated Office 365 Unified Group will also be removed. + + + + Removes a specified team via GroupID and all its associated components, like O365 Unified Group... + + + + + Remove-Team + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-Team -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/remove-team + + + New-Team + + + + + + + Remove-TeamChannel + Remove + TeamChannel + + Delete a channel. This will not delete content in associated tabs. + Note: The channel will be "soft deleted", meaning the contents are not permanently deleted for a time. So a subsequent call to Add-TeamChannel using the same channel name will fail if enough time has not passed. + + + + > [!IMPORTANT] > Modules in the PS INT gallery for Microsoft Teams run on the /beta version in Microsoft Graph and are subject to change. Int modules can be install from here <https://www.poshtestgallery.com/packages/MicrosoftTeams>. + + + + Remove-TeamChannel + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Channel name to be deleted + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Channel name to be deleted + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-TeamChannel -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Tech Reads" + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/remove-teamchannel + + + + + + Remove-TeamChannelUser + Remove + TeamChannelUser + + Note: the command will return immediately, but the Teams application will not reflect the update immediately, please refresh the members page to see the update. + To turn an existing Owner into an Member, specify role parameter as Owner. + Note: last owner cannot be removed from the private channel. + + + + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Remove-TeamChannelUser + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Display name of the private channel + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Role + + Use this to demote a user from owner to member of the team + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Display name of the private channel + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Role + + Use this to demote a user from owner to member of the team + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/remove-teamchanneluser + + + + + + Remove-TeamsApp + Remove + TeamsApp + + Removes an app in the Teams tenant app store. + + + + Removes an app in the Teams tenant app store. + + + + Remove-TeamsApp + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/remove-teamsapp + + + + + + Remove-TeamsAppInstallation + Remove + TeamsAppInstallation + + Removes a Teams App installed in Microsoft Teams. + + + + Removes a Teams App installed in Microsoft Teams. + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Remove-TeamsAppInstallation + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + TeamId + + Team identifier in Microsoft Teams. + + String + + String + + + None + + + + Remove-TeamsAppInstallation + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + UserId + + User identifier in Microsoft Teams. + + String + + String + + + None + + + + + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + TeamId + + Team identifier in Microsoft Teams. + + String + + String + + + None + + + UserId + + User identifier in Microsoft Teams. + + String + + String + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + + This example removes a Teams App in Microsoft Teams specifying its AppId and TeamId. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/remove-teamsappinstallation + + + + + + Remove-TeamUser + Remove + TeamUser + + Remove an owner or member from a team, and from the unified group which backs the team. + Note: the command will return immediately, but the Teams application will not reflect the update immediately. The Teams application may need to be open for up to an hour before changes are reflected. + Note: last owner cannot be removed from the team. + + + + + + + + Remove-TeamUser + + GroupId + + GroupId of the team + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Role + + If cmdlet is called with -Role parameter as "Owner", the specified user is removed as an owner of the team but stays as a team member. + Note: The last owner cannot be removed from the team. + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Role + + If cmdlet is called with -Role parameter as "Owner", the specified user is removed as an owner of the team but stays as a team member. + Note: The last owner cannot be removed from the team. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com -Role Owner + + In this example, the user "dmx" is removed the role Owner but stays as a team member. + + + + -------------------------- Example 2 -------------------------- + Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com + + In this example, the user "dmx" is removed from the team. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/remove-teamuser + + + + + + Set-Team + Set + Team + + This cmdlet allows you to update properties of a team, including its displayname, description, and team-specific settings. + + + + This cmdlet allows you to update properties of a team, including its displayname, description, and team-specific settings. This cmdlet includes all settings that used to be set using the Set-TeamFunSettings, Set-TeamGuestSettings, etc. cmdlets + + + + Set-Team + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Team display name. Team Name Characters Limit - 256. + + String + + String + + + None + + + Description + + Team description. Team Description Characters Limit - 1024. + + String + + String + + + None + + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. + + String + + String + + + None + + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Visibility + + Team visibility. Valid values are "Private" and "Public" + + String + + String + + + None + + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + None + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + None + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + None + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + None + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + None + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + None + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + None + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + None + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + None + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + None + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + None + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + None + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + None + + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + DisplayName + + Team display name. Team Name Characters Limit - 256. + + String + + String + + + None + + + Description + + Team description. Team Description Characters Limit - 1024. + + String + + String + + + None + + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. + + String + + String + + + None + + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Visibility + + Team visibility. Valid values are "Private" and "Public" + + String + + String + + + None + + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + None + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + None + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + None + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + None + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + None + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + None + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + None + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + None + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + None + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + None + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + None + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + None + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + None + + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-Team -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Updated TeamName" -Visibility Public + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-team + + + Get-Team + + + + New-Team + + + + + + + Set-TeamArchivedState + Set + TeamArchivedState + + This cmdlet is used to freeze all of the team activity, but Teams Administrators and team owners will still be able to add or remove members and update roles. You can unarchive the team anytime. + + + + This cmdlet is used to freeze all of the team activity and also specify whether SharePoint site should be marked as Read-Only. Teams administrators and team owners will still be able to add or remove members and update roles. You can unarchive the team anytime. + + + + Set-TeamArchivedState + + Archived + + Boolean value that determines whether or not the Team is archived. + + Boolean + + Boolean + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + SetSpoSiteReadOnlyForMembers + + Use this parameter switch to make the SharePoint site read-only for team members. + + Boolean + + Boolean + + + None + + + + + + Archived + + Boolean value that determines whether or not the Team is archived. + + Boolean + + Boolean + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + SetSpoSiteReadOnlyForMembers + + Use this parameter switch to make the SharePoint site read-only for team members. + + Boolean + + Boolean + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$true + + This example sets the group with id 105b16e2-dc55-4f37-a922-97551e9e862d as archived + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$true -SetSpoSiteReadOnlyForMembers:$true + + This example sets the group with id 105b16e2-dc55-4f37-a922-97551e9e862d as archived and makes the SharePoint site read-only for team members. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$false + + This example unarchives the group with id 105b16e2-dc55-4f37-a922-97551e9e862d. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-teamarchivedstate + + + + + + Set-TeamChannel + Set + TeamChannel + + Update Team channels settings. + + + + > [!IMPORTANT] > Modules in the PS INT gallery for Microsoft Teams run on the /beta version in Microsoft Graph and are subject to change. Int modules can be install from here <https://www.poshtestgallery.com/packages/MicrosoftTeams>. + + + + Set-TeamChannel + + GroupId + + GroupId of the team + + String + + String + + + None + + + CurrentDisplayName + + Current channel name + + String + + String + + + None + + + NewDisplayName + + New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + + String + + String + + + None + + + Description + + Updated Channel description. Channel Description Characters Limit - 1024. + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + CurrentDisplayName + + Current channel name + + String + + String + + + None + + + NewDisplayName + + New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + + String + + String + + + None + + + Description + + Updated Channel description. Channel Description Characters Limit - 1024. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-TeamChannel -GroupId c58566a6-4bb4-4221-98d4-47677dbdbef6 -CurrentDisplayName TechReads -NewDisplayName "Technical Reads" + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-teamchannel + + + + + + Set-TeamFunSettings + Set + TeamFunSettings + + Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To set a Team's settings, run Set-Team. + Update Giphy, Stickers and Memes settings. + + + + + + + + Set-TeamFunSettings + + GroupId + + GroupId of the team + + String + + String + + + None + + + AllowGiphy + + Setting to enable giphy for team + + String + + String + + + None + + + GiphyContentRating + + Settings to set content rating for giphy. Can be "Strict" or "Moderate" + + String + + String + + + None + + + AllowStickersAndMemes + + Enable Stickers and memes + + String + + String + + + None + + + AllowCustomMemes + + Allow custom memes to be uploaded + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + AllowGiphy + + Setting to enable giphy for team + + String + + String + + + None + + + GiphyContentRating + + Settings to set content rating for giphy. Can be "Strict" or "Moderate" + + String + + String + + + None + + + AllowStickersAndMemes + + Enable Stickers and memes + + String + + String + + + None + + + AllowCustomMemes + + Allow custom memes to be uploaded + + String + + String + + + None + + + + + + GroupId, AllowGiphy, GiphyContentRating, AllowStickersAndMemes, AllowCustomMemes + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-TeamFunSettings -GroupId 0ebb500c-f5f3-44dd-b155-cc8c4f383e2d -AllowGiphy true -GiphyContentRating Strict + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-teamfunsettings + + + + + + Set-TeamGuestSettings + Set + TeamGuestSettings + + Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To set a Team's settings, run Set-Team. + Updates team guest settings. + + + + + + + + Set-TeamGuestSettings + + GroupId + + GroupId of the team + + String + + String + + + None + + + AllowCreateUpdateChannels + + Settings to create and update channels + + String + + String + + + None + + + AllowDeleteChannels + + Settings to Delete channels + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + AllowCreateUpdateChannels + + Settings to create and update channels + + String + + String + + + None + + + AllowDeleteChannels + + Settings to Delete channels + + String + + String + + + None + + + + + + GroupId + + + + + + + + AllowCreateUpdateChannels + + + + + + + + AllowDeleteChannels + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-TeamGuestSettings -GroupId a61f5a96-a0cf-43db-a7c8-cec05f8a8fc4 -AllowCreateUpdateChannels true + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-teamguestsettings + + + + + + Set-TeamMemberSettings + Set + TeamMemberSettings + + Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To set a Team's settings, run Set-Team. + Updates team member settings. + + + + + + + + Set-TeamMemberSettings + + GroupId + + GroupId of the team + + String + + String + + + None + + + AllowCreateUpdateChannels + + Setting to create and update channels + + String + + String + + + None + + + AllowDeleteChannels + + Setting to Delete channels + + String + + String + + + None + + + AllowAddRemoveApps + + Setting to add and remove apps to teams + + String + + String + + + None + + + AllowCreateUpdateRemoveTabs + + Setting to create, update and remove tabs + + String + + String + + + None + + + AllowCreateUpdateRemoveConnectors + + Setting to create, update and remove connectors + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + AllowCreateUpdateChannels + + Setting to create and update channels + + String + + String + + + None + + + AllowDeleteChannels + + Setting to Delete channels + + String + + String + + + None + + + AllowAddRemoveApps + + Setting to add and remove apps to teams + + String + + String + + + None + + + AllowCreateUpdateRemoveTabs + + Setting to create, update and remove tabs + + String + + String + + + None + + + AllowCreateUpdateRemoveConnectors + + Setting to create, update and remove connectors + + String + + String + + + None + + + + + + GroupId + + + + + + + + AllowCreateUpdateChannels + + + + + + + + AllowDeleteChannels + + + + + + + + AllowAddRemoveApps + + + + + + + + AllowCreateUpdateRemoveTabs + + + + + + + + AllowCreateUpdateRemoveConnectors + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-TeamMemberSettings -GroupId 4ba546e6-e28d-4645-8cc1-d3575ef9d266 -AllowCreateUpdateChannels false + + + + + + -------------------------- Example 2 -------------------------- + Set-TeamMemberSettings -GroupId 4ba546e6-e28d-4645-8cc1-d3575ef9d266 -AllowDeleteChannels true -AllowAddRemoveApps false + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-teammembersettings + + + + + + Set-TeamMessagingSettings + Set + TeamMessagingSettings + + Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To set a Team's settings, run Set-Team. + Updates team messaging settings. + + + + + + + + Set-TeamMessagingSettings + + GroupId + + GroupId of the team + + String + + String + + + None + + + AllowUserEditMessages + + Setting to allow user to edit messages + + String + + String + + + None + + + AllowUserDeleteMessages + + Setting to allow user to delete messages + + String + + String + + + None + + + AllowOwnerDeleteMessages + + Setting to allow owner to Delete messages + + String + + String + + + None + + + AllowTeamMentions + + Allow @team or @[team name] mentions. This will notify everyone in the team + + String + + String + + + None + + + AllowChannelMentions + + Allow @channel or @[channel name] mentions. This wil notify members who've favorited that channel + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + AllowUserEditMessages + + Setting to allow user to edit messages + + String + + String + + + None + + + AllowUserDeleteMessages + + Setting to allow user to delete messages + + String + + String + + + None + + + AllowOwnerDeleteMessages + + Setting to allow owner to Delete messages + + String + + String + + + None + + + AllowTeamMentions + + Allow @team or @[team name] mentions. This will notify everyone in the team + + String + + String + + + None + + + AllowChannelMentions + + Allow @channel or @[channel name] mentions. This wil notify members who've favorited that channel + + String + + String + + + None + + + + + + GroupId + + + + + + + + AllowUserEditMessages + + + + + + + + AllowUserDeleteMessages + + + + + + + + AllowOwnerDeleteMessages + + + + + + + + AllowTeamMentions + + + + + + + + AllowChannelMentions + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-TeamMessagingSettings -GroupId 4ba546e6-e28d-4645-8cc1-d3575ef9d266 -AllowUserEditMessages true + + + + + + -------------------------- Example 2 -------------------------- + Set-TeamMessagingSettings -GroupId 4ba546e6-e28d-4645-8cc1-d3575ef9d266 -AllowUserDeleteMessages false -AllowChannelMentions true + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-teammessagingsettings + + + + + + Set-TeamPicture + Set + TeamPicture + + Update the team picture. + Note: the command will return immediately, but the Teams application will not reflect the update immediately. The Teams application may need to be open for up to an hour before changes are reflected. + Note: this cmdlet is not support in special government environments (TeamsGCCH and TeamsDoD) and is currently only supported in our beta release. + + + + + + + + Set-TeamPicture + + GroupId + + GroupId of the team + + String + + String + + + None + + + ImagePath + + File path and image ( .png, .gif, .jpg, or .jpeg) + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + ImagePath + + File path and image ( .png, .gif, .jpg, or .jpeg) + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-TeamPicture -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -ImagePath c:\Image\TeamPicture.png + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-teampicture + + + + + + Set-TeamsApp + Set + TeamsApp + + Updates an app in the Teams tenant app store. + + + + Use a Teams app manifest zip file to upload an app to the tenant app store. + + + + Set-TeamsApp + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + Path + + The local path of the app manifest zip file, for use in New and Set + + String + + String + + + None + + + + + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + Path + + The local path of the app manifest zip file, for use in New and Set + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -Path c:\Path\SampleApp.zip + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/set-teamsapp + + + + + + Update-TeamsAppInstallation + Update + TeamsAppInstallation + + Update a Teams App in Microsoft Teams. + + + + Update a Teams App in Microsoft Teams. + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Update-TeamsAppInstallation + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + Permissions + + RSC permissions for the Teams App. + + String + + String + + + None + + + TeamId + + Team identifier in Microsoft Teams. + + String + + String + + + None + + + + Update-TeamsAppInstallation + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + Permissions + + RSC permissions for the Teams App. + + String + + String + + + None + + + UserId + + User identifier in Microsoft Teams. + + String + + String + + + None + + + + + + AppId + + Teams App identifier in Microsoft Teams. + + String + + String + + + None + + + AppInstallationId + + Installation identifier of the Teams App. + + String + + String + + + None + + + Permissions + + RSC permissions for the Teams App. + + String + + String + + + None + + + TeamId + + Team identifier in Microsoft Teams. + + String + + String + + + None + + + UserId + + User identifier in Microsoft Teams. + + String + + String + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Update-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + + This example updates a Teams App in Microsoft Teams specifying its AppId and TeamId. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Update-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -Permissions "TeamSettings.Read.Group ChannelMessage.Read.Group" + + This example updates a Teams App in Microsoft Teams specifying its AppId and TeamId and RSC Permissions. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/teams/update-teamsappinstallation + + + + \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 new file mode 100644 index 000000000000..5f48fd5cf213 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 @@ -0,0 +1,357 @@ +# +# Module manifest for module 'Microsoft.Teams.PowerShell.TeamsCmdlets' +# +# Generated by: Microsoft Corporation +# +# Updated on: 6/30/2020 +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './Microsoft.Teams.PowerShell.TeamsCmdlets.psm1' + +# Version number of this module. +# There's a string replace for the actual module version in the build pipeline +ModuleVersion = '1.5.6' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '3dfbed68-91ab-432e-b8bf-affe360d2c2f' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams cmdlets sub module for Windows PowerShell and PowerShell Core. + +For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @('GetTeamSettings.format.ps1xml') + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'Add-TeamChannelUser' + ,'Add-TeamUser' + ,'Get-AssociatedTeam' + ,'Get-MultiGeoRegion' + ,'Get-Operation' + ,'Get-SharedWithTeam' + ,'Get-SharedWithTeamUser' + ,'Get-Team' + ,'Get-TeamAllChannel' + ,'Get-TeamChannel' + ,'Get-TeamChannelUser' + ,'Get-TeamIncomingChannel' + ,'Get-TeamsApp' + ,'Get-TeamsArtifacts' + ,'Get-TeamUser' + ,'Get-M365TeamsApp' + ,'Get-AllM365TeamsApps' + ,'Get-M365UnifiedTenantSettings' + ,'Get-M365UnifiedCustomPendingApps' + ,'Get-TenantPrivateChannelMigrationStatus' + ,'New-Team' + ,'New-TeamChannel' + ,'New-TeamsApp' + ,'Remove-SharedWithTeam' + ,'Remove-Team' + ,'Remove-TeamChannel' + ,'Remove-TeamChannelUser' + ,'Remove-TeamsApp' + ,'Remove-TeamUser' + ,'Set-Team' + ,'Set-TeamArchivedState' + ,'Set-TeamChannel' + ,'Set-TeamPicture' + ,'Set-TeamsApp' + ,'Update-M365TeamsApp' + ,'Update-M365UnifiedTenantSettings' + ,'Update-M365UnifiedCustomPendingApp' + ,'Add-TeamsAppInstallation' + ,'Get-TeamsAppInstallation' + ,'Get-TeamTargetingHierarchyStatus' + ,'Remove-TeamsAppInstallation' + ,'Remove-TeamTargetingHierarchy' + ,'Set-TeamTargetingHierarchy' + ,'Update-TeamsAppInstallation' + ,'Get-LicenseReportForChangeNotificationSubscription' + ) + +# Variables to export from this module +VariablesToExport = '*' + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = '*' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} +# SIG # Begin signature block +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCACn9eUplYLXu2e +# 7fBVQlUN4wKwx8YYH35YeUyOD2ECn6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPWS +# kmHJhyB6ldbqxbegGg+2fHDqHbOC06HJfFp2XPa2MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAmLjSkS/EXKuMXZ+jVZvo0PxZYambtSg3hD+H +# YD28l4bJFO76hYHVdpQkMzqsgseZQkzv0T4OZzTOVHlMOpOZJ66JTBeDonWUDoCF +# eeUAChDRTa7JrgGGY2hXjYiuNGlXKQEhmm9PJDBPTiaIJAusqurTjSHqzvU5rkBU +# u6QQTJUk47QqatH5Aq2nFwG/hA6wLwG4iRt8MD857UbyJRpO6jLXxypulMpFulMe +# mhsltWanOy12BnIbnB6Iop2YWWFS9Ze2WsiOglUpadH1xPl7G/gGW2gh/KnncJq6 +# hrZ30Y/AlM0VJceiURWUCj/VBd23pj/BbtGO82bkdWs1ZBCaCqGCF60wghepBgor +# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCypOf4C4hBjE9rlokTgfqxG9laaRqmtnJP +# Y3LpveiDogIGaKOvGfXMGBMyMDI1MTAwMTA4MzMwMy40OTJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 +# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy +# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S +# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK +# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz +# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 +# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk +# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x +# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g +# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH +# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 +# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p +# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK +# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ +# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL +# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS +# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO +# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV +# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R +# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi +# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs +# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK +# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 +# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA +# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA +# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ +# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb +# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE +# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB +# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP +# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgkaMEs6O9ga5mzUDZmkwp1tvB4Gb8MO3yy9/wDS4fIf4wgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l +# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK +# qskwMA0GCSqGSIb3DQEBCwUABIICADU2mek75KAjLj8j5o0jogSEHX69AgsLuMzE +# LXlcJFJUpGCIs9KEn6Z9OL18AyXFthdYxVTyOxAngLgq/6bo05wBJmQLB9oqeM2D +# WOBDxlea0jOKVwCIpHaPDisTrS04WFj0Peyhjw8HotLyH2Gdkj9iKlKwuworlbfx +# R2w5+9DChGi0FvDw9eKIpnzT/7y1IWkTyFwqnjjQBeq558APfdavyrKklMeyuliv +# 06N2baSYYqm/iiPqHkUwa8tEotB9wE8Q7JkQwJpzNwkXkqlnib/V2BkrOb90oDvm +# TZWob41SxHvNxoq5YjU4GkAh2254PjXTAWktBCIsZU93H3UI3yC45baNbHVd0Giy +# fwc0o+1EEND+yqjzBlx4HM7Eni2KJTN3eDqCVONmwC4T9E5iqO1s65b941w44LjC +# qGrFkE85GAVKcGtT/ZnNCUIgD8uleA/WSkBjrBLoD2pKnp1kDtjiFDtoAHdWnAVf +# SbzU++f3AxdhIfvAweGBrAphGeAODV/wob95+tC96LoJGV9kTj988HrEO9dNkAz5 +# IlxKXKOjv1vkU+ERnxHCBPLxsO/K9qVrV+ZAUOoh2gY4NAO/wncfcy6aZbV868x7 +# +uhBw4TzO7wkCEQq1Eo9r+D6EwZaFcecr38CFzj6OK/jQvMsKbDv33EhJ+VNUgns +# RyAvZ0oW +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 new file mode 100644 index 000000000000..d423f0bc1702 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 @@ -0,0 +1,226 @@ +if($PSEdition -ne 'Desktop') +{ + Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) +} +else +{ + Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) +} +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCtJNoep0vYvS0u +# zCBbwqBqybUYNuPYHWudLYoWOcLIVqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF3F +# viB5I/Ax1ZFPXrSiQ9VfQ9tIZcCOZ+89t8Pe2ekmMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEA6TuOvRDRWgSB20of7Bc0HNzscdou+QEljnZy +# iUjzm8nstTBeX8C8ZzHZAW9ZAyyUcc5btohoi/w4sYFbnzUM/4PGcfMnMwWOiO82 +# baFd1/M6EqK6cfN0svpDfF9xlz4D55LpqkHwvSQ1o4/B6qJxZNX3GT9XfXRF+R+7 +# +hEQXWAULWVXLNgr0/wPG36A65VVKzJirMhoeEujWdTe5NxTwM6nPP/s2Kx/5EFb +# wd8owyknEPWGNP6q+QCStKiPHU7yLT2S2Syvva3HkTV4xiONhJPrXrANoHyz7VRs +# ww21m0PSuEb1zk/49ub68VZ1q/sVrnujGl1XEBOPtDvmiqJ0A6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCD8tLi1+mhEnfJS/P2mXfQHMUEkPsE6F1S5 +# QTI4uAsUjgIGaKR4CbFTGBMyMDI1MTAwMTA4MzMwNy41MDdaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 +# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG +# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd +# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 +# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK +# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah +# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 +# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L +# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p +# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN +# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG +# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW +# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf +# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat +# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS +# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V +# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 +# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs +# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M +# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe +# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z +# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw +# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG+iMwIhgPMjAyNTEwMDEwMDUzNTVaGA8yMDI1 +# MTAwMjAwNTM1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7Ib6IwIBADAKAgEA +# AgItJAIB/zAHAgEAAgIZEzAKAgUA7IhLowIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA583XbQoKh/10MA7+Ujzrcdwv4sL0mvb8WSmgA4kJCPmh14/C3jvzy +# RpcSNYxQbRkMEclEpVCXRsfgrmGL5p52U8qKEGXyvGAp8XaxhklYYuWfACDfCKdH +# T0KhlXTQrGiZP2m+F0Di5QKstoDY/fq5m7Y5b3UYa3lEi6n3Lms0ezpf9rXWusot +# K0SVpTayoddl986SLKLVzqvlEUSdF4jFJp6KZ/flzIE00qqvoRE3jESffoTNMI6c +# fShEm1O3Fg0ubJanNSHN+xNLFF+wE87TzV59AP/Ixwwt4BFsQn4lL1kUKs81VzHp +# XsO6bcaF5N2PtFKTmtAt3qVZEpio+Dj4MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgqO2PTggYwTiT3pA4tzgBhRKPPqUxuknOaODh8BQgXVYwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNS +# tYocbkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+vs7RNN3M8bTAAEAAAH6MCIEICgabd0aMglwPIRAQpeLtPTt+Pmsi4Ljxvse +# jujm3TVJMA0GCSqGSIb3DQEBCwUABIICAEjZyxTJhvjHoA9iDaTr+1pSztIzKFSG +# 7qjunlzeWxu5AmgMuHBcxawIXI1dWfEax1V1TO4fe02ZOSH3zTNYgV9TOVKRnruW +# pGwb9U85sn2nIE0fCMC2BkYexq2z4L+gacKoTgvvkTL4taEB706HOJpqbuSRWFTH +# 9tStaisprRQRTso2C7I89EwWmgro2SNJlQMU2qP8lr8nSSwCMlnaNyEfv4CIqJJb +# aBA30yHYLgcnChSRUqGeEkqR3VxiprTmw/B2FlCM9tVsT3jeBoQd1irjzCSZMbUW +# g6Q4DjMNdn3jDG0IHBuecqG16tNIsVcCFePfH73Klo8KtDXhB4bs+HfmctJy9Eh5 +# Ps8rjfzQpmGaF+1kAxAZ9WVPJoSQOQ01+PrRAkW83nzT6S/1asgXthKyIaVApV7B +# 7yabWsECdCoIb2+qrmghpr78/Pmt0baT97W/WmxPinB8ZW2pSwWLc9QTCVPNjR32 +# L5hVfTgi0mHl9Hptz/iurKnr9NlRdV/Dsa0zfM0Ve/HDo7M/BsNk/Po4RYWvcnhA +# Ls4vFmY7L4bS+/RVVyEmXFBWUE5QaR6/Dasnb+zEaKGMYk5XLYfKCWE9QDrSNK2D +# SmI1O/Xk93xvov99uBYdkhjNMThQcKgUXRTzXd6aceBdbqHsC6s1sezM/GdlNhbT +# DoOtI5N2m/gY +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml new file mode 100644 index 000000000000..b19a7caf7fea --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml @@ -0,0 +1,3772 @@ + + + + Microsoft.Teams.PowerShell.TeamsCmdlets + + + + + Cmdlet to add user to a private channel. Role of the user can be specified for member promotion. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + The name of the cmdlet. + + + + + The AAD group id of the team. + + + + + The display name of channel. + + + + + The id or upn of the user. + + + + + The role of the user. + + + + + The tenantId of the external user. + + + + + + + + cmdlet to Add a Teams App to MS Teams. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Name of the cmdlet. + + + + + Teams App identifier in MS Teams. + + + + + Team identifier in MS Teams. + + + + + User identifier in MS Teams. + + + + + RSC permissions for the Teams App. + + + + + Cmdlet to add user to a team. Role of the user can be specified + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Helper method which adds user to the unified group either as member (default) or as Owner. + Safe to call even if the user already exists in member or owner list for a given group. + Throws exceptions if httpClient is null, userId is (null or whitespace), when the graph api calls fail. + + Http client reference. + UserId represented as either guid or upn or emailid. + Denotes whether user should be added as Owner or not. + + + + Enum of HttpStatusCodes worth retrying when received + + + + + Determines if the returned status code is worth retring + + + + + + + JsonConverter to flatten a nested json object path into an object. + + { + "name": "Joe Doe", + "dateOfBirth": { + "month": "January", + "day": 1 + } + } + + can be serialized into the object: + + [JsonConverter(typeof(JsonPathConverter))] + class Person + { + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("dateOfBirth.month")] + public string DateOfBirthMonth { get; set; } + + [JsonProperty("dateOfBirth.day")] + public int DateOfBirthDay { get; set; } + } + + + + + + Deserializes the object from JSON. + + . + Type of object to deserialize into. + The existing value of the object. + Instance of . + + + + + Determines whether this instance can convert the specified object type. + + The object type that can be converted + Returns if this object can be converted by this converter. + + + + Serializes the object as JSON. + + Instance of . + The object to serialize. + Instance of . + + + + Constants for Microsoft Graph requests. + + + + + The limit imposed by Microsoft Graph for sending batch requests. + + + + + Team name character limit (from MSGraph, the limit is 64). + If alias is greater than 64 characters, we trim it to around 60 characters, so MT can append some number, if alias is already taken. + + + + + validate team alias uniqueness retry limit + + + + + team alias suffix: random number range + + + + + The installation scope of a TeamsApp. + + + + + Default installation scope. + + + + + TeamsApp installed in Team scope. + + + + + TeamsApp installed in Chat scope. + + + + + TeamsApp installed in User scope. + + + + + Channel membership type + + + + + Endpoint versions + + + + + UAM substrate endpoint version. + + + + + UAM service Admin App gesture constants. + + + + + AvailableTo gesture administered by the admin to the user(s) or group(s) for a specific app. + To make the app available to the user(s) or group(s). + + + + + DeployTo gesture administered by the admin to the user(s) or group(s) for a specific app. + To deploy the app to the specified user(s) or group(s). + + + + + Operation type that the Admin is using to perform the operation. + + + + + Add operation to add an App to user(s) or group(s) + + + + + Remove operation to remove an App from user(s) or group(s) + + + + + Available to all users. + + + + + Available to some users. + + + + + Available to no users. + + + + + Constants used by Teams Hierarchy cmdlets. + + + + + Cmdlet name for Set-TeamTargetingHierarchy. + + + + + Cmdlet name for Get-TeamTargetingHierarchyStatus. + + + + + Cmdlet name for Remove-TeamTargetingHierarchy. + + + + + Url name for latest operation in Teams Hierarchy service. + + + + + Attribute name for operation id in operation models for THS. + + + + + Attribute name for request id for get status output. + + + + + Name for the http content in upload csv requets. + + + + + Media type for the http content in upload csv requets. + + + + + Media type for the http content in hierarchy create requests. + + + + + Hierarchy display name for new hierarchies. + + + + + API Exception + + + + + Gets or sets the error code (HTTP status code) + + The error code (HTTP status code). + + + + Gets or sets the error content (body json object) + + The error content (Http response body). + + + + The Microsoft Graph error code + + The error code from the MS Graph API call + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + HTTP status code. + Error message. + + + + Initializes a new instance of the class. + + HTTP status code. + Error message. + MSGraph error code. + + + + Initializes a new instance of the class. + + HTTP status code. + Error message. + Error content. + + + + Initializes a new instance of the class. + + + + + Deserializes the http response string to MS Graph api error root. + + Http response + MSGraphApiErrorRoot object + True if deserialization succeeds, otherwise false. + + + + Deserializes the http response string to MS Graph api error root. + + The content string + MSGraphApiErrorRoot object + True if deserialization succeeds, otherwise false. + + + + Root class for DeserializeSubstrate API Error. + + + + + Deserializes the http response string to Substrate api error root. + + Http response + SubstrateErrorRoot object + True if deserialization succeeds, otherwise false. + + + + Deserializes the http response string to Substrate api error root. + + The content string + SubstrateApiErrorRoot object + True if deserialization succeeds, otherwise false. + + + + Get the display string for the response. + + Substrate error generated. + error string for the display. + + + + Root class for MS Graph API Error. + For more information go to https://graph.microsoft.io/en-us/docs/overview/errors + + + + + InnerError class for MS Graph API Error. + For more information go to https://graph.microsoft.io/en-us/docs/overview/errors + + + + + Substrate API Error class. + + + + + Code for the error. + + + + + Message for the error. + + + + + Inner error object. + + + + + Root class for Substrate API Error. + + + + + Error object. + + + + + InnerError class for Substrate API Error. + + + + + Request ID for the error. + + + + + Date + + + + + Cmdlet to list teams where the user is direct member or + indirect member because they are part of a shared channel + that is hosted under the team. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + The name of cmdlet. + + + + + User id or email. + + + + + Process record. + + + + + Returns the userId if the input is a id else fetch userId by making graph api call. + + + + + Cmdlet to get Teams usage report for users in a tenant, particularly messages sent per user, as well as a check on + whether each user has the appropriate DLP license SKU. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Name of the cmdlet. + + + + + Indicates the period over which this usage report is generated. + + + + + Fetches user license details given the available Teams usage data for the users in a tenant. + + The Teams user activity details. + The http client. + The user license details for the users. + A collection of error strings if any calls to get license details fails. + + + + Fetches the user license details for a batch of users (max 20 due to Graph $batch limits). + + The HTTP client. + The batch of Teams user activity details for which the UPN is extracted to retrieve license details. + A dictionary of licenses mapping UPN to license details. + A collection of error strings containing error messages if any individual call within the $batch call fails. + + + + Given the Teams user activity details, AAD user details, and a mapping from UPN to license details, generates a collection of DlpUserLicenseReports. + + The Teams user activity details. + The AAD user details for the tenant. + The user UPN to license details dictionary. + A collection of DlpUserLicenseReports. + + + + Default constructor necessary for cmdlet. + + + + + Represents a cmdlet to list teams with which specified channel is shared. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of with an implementation of . + + The http client factory. + + + + The name of the cmdlet. + + + + + The AAD group id of the host team. + + + + + The thread id of the channel. + + + + + The AAD group id of the shared with team. + + + + + + + + Represents a cmdlet to list users of a shared with team. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of with an implementation of . + + The http client factory. + + + + The name of the cmdlet. + + + + + The AAD group id of the host team. + + + + + The thread id of the channel. + + + + + The AAD group id of the shared with team. + + + + + The role of the users. + + + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Takes in the groups, divides the groups by batch size and sends the batch to be processed in parallel + If GetNextTeamBatch returns False for shouldContinue, then stop processing + + Current batch number to process + List of groups to process + List of team data; List of error messages + + + + Retrieves team properties using Graph Batch API. + + List of groups to process + List of team data + List of error messages from trying to get team data + + + + Represents a cmdlet to list all channels of a team, including incoming channels and channels hosted by the team. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of with an implementation of . + + The http client factory. + + + + The name of the cmdlet. + + + + + The AAD group id of the team. + + + + + The membership type of the channels. + + + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Represents a cmdlet to list users of a channel. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of with an implementation of . + + The http client factory. + + + + The name of the cmdlet. + + + + + The AAD group id of the team. + + + + + The display name. + + + + + The role of the users. + + + + + + + + Represents a cmdlet to list incoming channels of a team. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of with an implementation of . + + The http client factory. + + + + The name of the cmdlet. + + + + + The AAD group id of the team. + + + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + cmdlet to get a Teams App installed in MS Teams. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Name of the cmdlet. + + + + + Team identifier in MS Teams. + + + + + User identifier in MS Teams. + + + + + Installation identifier of the Teams App. + + + + + Teams App identifier in MS Teams. + + + + Represents the type of call, used to filter export requests. + Represents the type of artifact. + + + Recording/Transcript artifact type. + + + Notes artifact type. + + + Whiteboard artifact type. + + + Implements the Get-TeamsArtifacts cmdlet. + + + Gets or sets User. + + + Gets or sets Teams. + + + Gets or sets ArtifactType. + + + Gets or sets StartTime. + + + Gets or sets EndTime. + + + Gets or sets Usage. + + + Shows the cmdlet usage information. + + + Handles an invocation of the Get-TeamsArtifacts cmdlet. + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Name of the Cmdlet. + + + + + Id for the request instance of an upload operation. + + + + + Version of the api service endpoints that will be used. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Cmdlet to verify the status of tenant for Private channel migration. + + + + + The resource uri for Teams and Channels service. + + + + + Default constructor. + + + + + Constructor with IHttpClientFactory. + + + + + + Cmdlet name. + + + + + + + + Represents the response model for tenant Private channel migration status. + Includes status, timestamps, and details about the migration process. + + + + + The Azure AD tenant identifier. + + + + + The current migration status for Private channels. + + + + + The timestamp when the migration status was last checked. + + + + + Additional details about the migration status. + + + + + The timestamp when the migration started. + + + + + The timestamp when the migration completed. + + + + + Get the Unified App from UAM service. + + + + + Default Constructor + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + get specific app settings: DefaultApp, GlobalApp, PrivateApp, EnableCopilotExtensibility + + + + + Get the Unified App from UAM service. + + + + + Default Constructor + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + The Id of the app to get. + + + + + Gets all unified apps from UAM service. + + + + + Default Constructor + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Gets all unified apps from UAM service. + + + + + Default Constructor + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Gets or sets a value indicating whether [account enabled]. + + + + + Description for the user + + + + + Gets or sets the display name. + + + + + Gets or sets the email. + + + + + Gets or sets the name of the given. + + + + + Gets or sets the mail. + + + + + User Mri - used for skype requests + + + + + Gets or sets the object identifier. + + + + + Gets or sets the type of the object. + + + + + Gets or sets the surname. + + + + + Gets or sets the telephone number. + + + + + Gets or sets the type. + + + + + Gets or sets the name of the user principal. + + + + + Gets or sets the preferred language of the user. + + + + + The response from the Batch request + + + + + Represents MS Graph channel source. + https://docs.microsoft.com/en-us/graph/api/resources/channel?view=graph-rest-beta + + + + + The odata id. + + + + + Channel id + + + + + Channel display name + + + + + Channel description + + + + + Channel membership type + + + + + The tenant id. + + + + + Represents channel enhanced info used to model cmdlet response. + + + + + Initializes a new instance of the ChannelEnhancedInfo class. + + + + + Initializes a new instance of the ChannelEnhancedInfo class with an object of Channel class. + + The graph channel object used to initialize the instance. + + + + The thread id of the channel. + + + + + The display name of the channel. + + + + + The description of the channel. + + + + + The membership type of the channel. + + + + + The id of the host team. + + + + + The tenant id. + + + + + Represents channel basic info used to model cmdlet response. + + + + + Initializes a new instance of the ChannelInfo class. + + + + + Initializes a new instance of the ChannelInfo class with an object of Channel class. + + The graph channel object used to initialize the instance. + + + + The thread id of the channel. + + + + + The display name of the channel. + + + + + The description of the channel. + + + + + The membership type of the channel. + + + + + Class representing the Dlp User License report for a Teams user. + + + + + Gets or sets the UPN of the user for this report. + + + + + Gets or sets the display name of the user. + + + + + Gets or sets the number of messages sent by the user. + + + + + Gets or sets a boolean string describing whether or not a user is licensed by a Microsoft DLP license plan. + + + + + EnityType + + + + + Team giphy rating setting + + + + + Represents a model of conversation member. + + + + + Initializes a new instance of the GraphAadUserConversationMember class. + + + + + Member object id + + + + + Member UPN + + + + + Member Id (composite id generated from channel id and user id) + + + + + Member roles + + + + + Member display name. + + + + + Member email. + + + + + The tenant id. + + + + + Gets role of the conversation member. + + The role of the member. + + + + Group id. MSGraph version "v1.0"/ "beta" uses this property name. + Please use GetId() method when seeking group ids + + + + + Group id. MSGraph version "edu" uses this property name. + Please use GetId() method when seeking group ids + + + + + Display Name + + + + + Group Description + + + + + Group Types + + + + + Group classification + + + + + Mail Enabled + + + + + Group Mail Nickname + + + + + Security Enabled + + + + + Members + + + + + Members + + + + + Group Visiblilty + + + + + creation Options + + + + + Resource Behavior Options + + + + + Education Object Type + + + + + Get Group Id + MSGraph version "v1.0" uses "Id" property name. + MSGraph version "edu" uses "ObjectId" property name. + Please use GetId() method when seeking group ids + + Returns group id + + + + Represents a model of user info. + + + + + The id of AAD user. + + + + + The upn of user. + + + + + Abstract definition which registers a and corresponding dictionary for use when serializing/deserializing an object. + + + + + Gets or sets the dynamic properties populated during JSON serialization/deserialization. + + + + + MS Graph License Details object. + https://docs.microsoft.com/en-us/graph/api/resources/licensedetails?view=graph-rest-1.0 + + + + + Unique identifier for the license detail object. + + + + + Information about the service plans assigned with the license. + + + + + Unique identifier (GUID) for the service SKU. + + + + + Unique SKU display name. + + + + + Represents a response to a Microsoft Graph API that returns a collection. + + Type of items. + + + + Gets or sets the value of the collection. + + + + + Response received which support paging + + The type of item the collection contains. + + + + Check if Objects count exceed team members limit or not + + Team Members Limit + True if exceeded or False + + + + Contains information about a service plan associated with a subscribed SKU. + + + + + The unique identifier of the service plan. + + + + + The name of the service plan. + + + + + The provisioning status of the service plan. + + + + + Enum describing the provisioning status of a service plan. + + + + + Represents a model of shared with team info. + + + + + The AAD group id of the team. + + + + + The name of the team. + + + + + The tenant id. + + + + + Indicates whether the team is the host of the channel. + + + + + Id of the request + + + + + Http Method used for the request + + + + + Uri used for the request + + + + + Id of the response, maps to the id of the request + + + + + Http Status Code of the request + + + + + Body of the response which contains the License details object or an Error bject + + + + + The body can either be a LicenseDetails model or an Error model + + + + + Body of the response which contains the Team object + + + + + Id of the response, maps to the id of the request + + + + + Http Status Code of the request + + + + + Body of the response which contains the License details object or an Error bject + + + + + + Body of the response which contains the Team object + + + + + Id of the response, maps to the id of the request + + + + + Http Status Code + + + + + Body of the response which contains the Team object or an Error bject + + + + + The body can either be a Team model or an Error model + + + + + Body of the response which contains the Team object + + + + + Code of the error, NOT Http status code + + + + + Code of the error, NOT Http status code + + + + + Staged App Details Response + + + + + The Staged App Entitlement + + + + + Staged App Entitlement + + + + + The Staged App Details Definition Etag + + + + + Staged App Update Request Body + + + + + Gets or sets the App Id for the Staged App + + + + + Gets or sets the Review Status for the Staged App + Published | Rejected + + + + + Gets or sets the Staged App Definition Etag + + + + + Team Id + + + + + Internal Id + + + + + Display Name + + + + + Group Description + + + + + Group Visibility + + + + + Group MailNickName + + + + + Group Classification + + + + + Archived + + + + + Team Member settings + For example: Can user create/update channels? etc. + + + + + Team guest settings + For example: Can guest create/update channels? etc. + + + + + Team Messaging settings + For example: Can user edit/delete messages? etc. + + + + + Team fun settings + For example: Can user post giphy etc. + + + + + Team discovery settings + For example: If team visible in search results/suggestions in Teams client + + + + + Team settings which determine team's discoverability. + + + + + Represents a team with basic information. + + + + + Team Id + + + + + Display Name + + + + + Tenant Id. + + + + + App data returned by Graph API + + + + + The app's internal, generated app ID (different from the external ID) + + + + + The display name of the app + + + + + The method by which the app is distributed + Although this is an Enum in Middle Tier, marking this as a string here + so that Json deserialization doesn't break if we add a new Enum value to MT + without making a code change in these cmdlets + + + + + MS Graph TeamsAppInstallation Object + + + + + The TeamsAppInstallationId + + + + + A unique id (not the teams appid). + + + + + The id from the Teams App manifest. + + + + + The name of the app provided by the app developer. + + + + + The version number of the application. + + + + + Gets or sets the operation id that uniquely identifies a specific instance of the async operation. + + + + + Gets or sets the type of async operation. + + + + + Gets or sets the latest status of the async operation. + + + + + Gets or sets the UTC time when the async operation was created. + + + + + Gets or sets the UTC time when the async operation was last updated. + + + + + Gets or sets the number of times the operation was attempted before being marked suceeded/failed. + + + + + Gets or sets the target resource id. + + + + + Gets or sets the target resource location. + + + + + Invalid value. + + + + + Operation to clone a team. + + + + + Operation to archive a team. + + + + + Operation to unarchive a team. + + + + + Operation to create a team. + + + + + Operation to teamify an existing group. + + + + + Operation to create a channel. + + + + + Invalid value. + + + + + Indicates that the operation has not started. + + + + + Indicates that the operation in running. + + + + + Indicates that the operation has succeeded. + + + + + Indicates that the operation has failed. + + + + + Team Id + + + + + Internal Id + + + + + Display Name + + + + + Description + + + + + Visibility + + + + + MailNickName + + + + + Classification + + + + + Archived + + + + + App data returned by Graph API + + + + + The external ID provided by the app developer + + + + + A report that details the activity of a particular user on Teams. + + + + + The user principal name of the user. + + + + + The number of messages the user sent to team/channel threads. + + + + + The number of messages the user sent to private chats. + + + + + Model for the Hierarchy object returned by Hierarchy service's APIs. + + + + + Version for Teams Hierarchy cmdlets that defines which service are the cmdlets pointing to. + + + + + Version of the API pointing to the Retail service. + + + + + Version of the API pointing to the Hierarchy service. + + + + + Model for import hierarchy operation status comming from Retail service. + + + + + Model for import hierarchy operation status comming from Teams Hierarchy service. + + + + + Enum for the long running operation status. + + + + + Not Started Graph Long Running Operation status. + + + + + Running Graph Long Running Operation status. + + + + + Succeeded Graph Long Running Operation status. + + + + + Failed Graph Long Running Operation status. + + + + + Unknown Graph Long Running Operation status. + + + + + Enum for the retail operation status. + + + + + Starting Retail Operation status. + + + + + Ingesting Retail Operation status. + + + + + Successful Retail Operation status. + + + + + Failed Graph Long Running Operation status. + + + + + Unknown Graph Long Running Operation status. + + + + + Template + + + + + Unified App response! + + + + + Gets or sets the app id for the Enhanced teams app or Teams app. + + + + + Gets or Sets the app blocked state. + if true then the app is blocked.If false then the app is unblocked. + Denotes whether the app is blocked by the administrator. + + + + + App Type. + + + + + Gets or sets the app Available to data. + + + + + Gets or sets the app Deploy to data. + + + + + Gets or sets the app name for the Enhanced teams app or Teams app. + + + + + available To data for the pscmdlet response (V2). + + + + + available To data for the unified app response. + + + + + Gets or sets the list of user assignment for available data. + + + + + Gets or sets the list of group assignment for available data. + + + + + Last updated timestamp + + + + + UserId of the assigner + + + + + deployed To data for the pscmdlet response (V2). + + + + + available To data for the unified app response. + + + + + Last updated date + + + + + UserId of the deployer + + + + + Deploy reason + + + + + Version + + + + + Gets or sets the list of user assignment for available data. + + + + + Gets or sets the list of group assignment for available data. + + + + + Group or user assignment id with assignment details + + + + + Group or User Id + + + + + Last updated timestamp + + + + + UserId of the assigner + + + + + Group or user assignment id with assignment details + + + + + Group or User Id + + + + + Last updated timestamp + + + + + UserId of the assigner + + + + + Class for GetUnifiedAppsResponse. + + + + + Gets or sets the app id for the Enhanced teams app or Teams app. + + + + + Gets or Sets the app blocked state. + if true then the app is blocked.If false then the app is unblocked. + Denotes whether the app is blocked by the administrator. + + + + + Gets or sets the app Available to data. + + + + + Gets or sets the app Deployed to data. + + + + + Gets or sets the app name for the Enhanced teams app or Teams app. + + + + + AvailableTo details for the unified app (V2). + + + + + available To data for the unified app response. + + + + + Last updated timestamp + + + + + UserId of the assigner + + + + + DeployedTo details for the unified app (V2). + + + + + deployed To data for the unified app response. + + + + + Last updated date + + + + + UserId of the deployer + + + + + Deploy reason + + + + + Version + + + + + Class for UnifiedAppsTenantSettingsResponse. + + + + + Add or Remove users/groups + + + + + Class for UnifiedAppsTenantSettingsResponse. + + + + + Gets or Sets the Setting Name. Applicable values DefaultApp|GlobalApp|PrivateApp|CoPilotApp + + + + + Gets or Sets the Setting Value. Applicable values Some|All|None + + + + + Gets or sets List of user guid for Apps with EnableCopilotExtensibility. + + + + + Gets or sets List of group guid for Apps with EnableCopilotExtensibility. + + + + + Unified App Update Request Body + + + + + Gets or sets app ID for the m365 App / unified app. + + + + + Gets or Sets the app blocked state. + if true then the app is blocked.If false then the app is unblocked. + Denotes whether the app is blocked by the administrator. + + + + + Gets or sets the available to information of the app. + + + + + Gets or sets the deploy to information of the app. + + + + + Available To Request + + + + + Gets or Sets the type of availability Information none | some | all. + + + + + Gets or sets List of user guid for available data. + + + + + Gets or sets List of group guid for available data. + + + + + Gets or Sets the operation add | remove. + + + + + Deploy To Request + + + + + Gets or Sets the type of deployTo Information none | some | all. + + + + + Gets or sets List of user guid for available data. + + + + + Gets or sets List of group guid for available data. + + + + + Gets or Sets the operation add | remove. + + + + + Gets or Sets the version. + + + + + Class for UnifiedStagedAppsResponse. + + + + + Gets or sets the app id for the Enhanced teams app or Teams app. + + + + + The app ID provided by the developer + + + + + Indicating how many times the app has been updated + + + + + Indicates who created this app. + + + + + Last timestamp when the app is being updated + + + + + The app review status + + + + + Metadata data + + + + + App metadata for the Admin + + + + + The user facing app name + + + + + Terms of Use URL of the app + + + + + A long description of the app + + + + + A short description of the app + + + + + Large image URL. Can contain raw image data. + + + + + Smallimage URL. Can contain raw image data. + + + + + Developer name + + + + + Developer link + + + + + Version of the manifest of the app + + + + + The latest published app version + + + + + Indicates whether or not the title has Copilot capabilities. + + + + + A list of the different hubs. + + + + + Gets the date the title was published. + + + + + Represents a model of user enhanced info. + + + + + Initializes a new instance of the UserEnhancedInfo class. + + + + + Initializes a new instance of the UserEnhancedInfo class with an object of GraphAadUserConversationMember class. + + + + + + The id of AAD user. + + + + + The upn of user. + + + + + The display name of the user. + + + + + The role of the user. + + + + + The tenant id of the user. + + + + + Represents a model of user info. + + + + + Initializes a new instance of the UserInfo class. + + + + + Initializes a new instance of the UserInfo class with an object of GraphAadUserConversationMember class. + + + + + + The id of AAD user. + + + + + The upn of user. + + + + + The display name of the user. + + + + + The role of the user. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Max number of attempts check if group is available for team creation + + + + + Max number of attempts to try creating a team. + + + + + Sleep time to check for group availability in milliseconds + + + + + Sleep time in milliseconds. + + + + + Set group properties based on template value. + + + + Group + + + + Create new unified group + + + New created group + + + + Provision team portion of an unified group. + + http client + Unified group id + If successful, return created Team object, else return null + + + + Generates unique team alias + 1. Generate valid alias base on DisplayName + 2. Check if the alias exists in MsGraph, if exists, check "originalAlias"+"3 digits random numbers" as alias again, this logic up to 3 times + + http client + Team alias + Unique Alias + + + + Validate that the group is available before trying to create a team. + Tries to validate up to and waits + inbetween validation attempts. + + + Group Id to validate. + True if group with corresponding groupId is available, else false. + + + + Handles scenario when group is created but not yet ready or when team creation fails + + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Support specifying owner during channel creation + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Represents a cmdlet to unshare a channel with a team. + + + + + Initializes a new instance of . + + + + + Initializes a new instance of with an implementation of . + + The http client factory. + + + + The name of the cmdlet. + + + + + The aad group id of the host team. + + + + + The thread id of the shared channel. + + + + + The aad group id of the shared with team. + + + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Cmdlet to remove user from a private channel. Role of the user can be specified for member demotion. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + The name of the cmdlet. + + + + + The AAD group id of the team. + + + + + The display name of channel. + + + + + The id or upn of the user. + + + + + The role of the user. + + + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + cmdlet to remove a Teams App from MS Teams. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Name of the cmdlet. + + + + + Installation identifier of the Teams App. + + + + + Teams App identifier in MS Teams. + + + + + Team identifier in MS Teams. + + + + + User identifier in MS Teams. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Id for the request instance of an upload operation. + + + + + Name of the Cmdlet. + + + + + Version of the api service endpoints that will be used. + + + + + Cmdlet to add user to a team. Role of the user can be specified + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + The groupid to be archived. + + + + + If true, archive team (API above). If false, unarchive team. + + + + + Optional parameter. Used with Archived == $true. + This optional parameter defines whether to set permissions for team members to read-only on the Sharepoint Online site associated with the team. + See the following API docs for shouldSetSpoSiteReadOnlyForMembers + https://docs.microsoft.com/en-us/graph/api/team-archive?view=graph-rest-beta + https://docs.microsoft.com/en-us/graph/api/team-archive?view=graph-rest-1.0 + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Channel model without membershiptype as the property is not supported on Graph patch endpoint + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Name of the Cmdlet. + + + + + Path for the CSV file that will be consumed. + + + + + Version of the api service endpoints that will be used. + + + + + Base class for all teams cmdlet which need AUTH. + + + + + Used to detect system interrupts + + + + + Check whether user is authenticated or not. + + + + + Signal for when the user sends a cancel interrupt (ctrl + c) + + + + + + + Updates the Review Status of a Staged App with Published/Rejected + + + + + Default Constructor + + + + + Constructor with an implementation of + Creates an instance of + + + + + + Commandlet name + + + + + App Id of the Staged App + + + + + Review Status of the Staged App + This can be Published|Rejected + + + + + + + + Create and validate the StagedAppUpdateRequestBody + + + Base URL + Staged App Updated Request Body + + + + Fetches the Staged App Definition Etag + + + Base URL + The Staged App Definition Etag + + + + cmdlet to update a Teams App in MS Teams. + + + + + Default constructor necessary for cmdlet. + + + + + Constructor with an implementation of . + Creates an instance of + + + + + + Name of the cmdlet. + + + + + Installation identifier of the Teams App. + + + + + Teams App identifier in MS Teams. + + + + + Team identifier in MS Teams. + + + + + User identifier in MS Teams. + + + + + RSC permissions for the Teams App. + + + + + Update unified app in the UAMService cmdlet + + + + + Default Constructor + + + + + Constructor with an implementation of . + Updates an instance of + + + + + + Cmdlet Name. + + + + + Gets or Sets the Setting Name. Applicable values DefaultApp | GlobalApp | PrivateApp | EnableCopilotExtensibility + + + + + Gets or Sets the Setting Value. Applicable values Some|All|None + + + + + Gets or sets List of user guid for CoPilot Apps. + + + + + Gets or sets List of group guid for CoPilot Apps. + + + + + Gets or Sets the Setting Value. Applicable values add|remove + + + + + Update unified app in the UAMService cmdlet + + + + + Default Constructor + + + + + Constructor with an implementation of . + Updates an instance of + + + + + + Cmdlet Name. + + + + + Id of the Unified App required. + + + + + IsBlocked flag for the Unified App. + + + + + AppAssignmentType for the Unified App. + This can be 'UsersAndGroups', 'Everyone' or 'Noone'. + + + + + OperationType for the Unified App. + This is either 'Add' or 'Remove' and it represents the operation to be performed on the Users or Groups. + It is a required parameter. + + + + + Users to be added or removed from the Unified App. + If not provided the default value is null. + + + + + Groups to be added or removed from the Unified App. + If not provided the default value is null. + + + + + AppAssignmentType for the Unified App. + This can be 'UsersAndGroups', 'Everyone' or 'Noone'. + + + + + OperationType for the Unified App. + This is either 'Add' or 'Remove' and it represents the operation to be performed on the Users or Groups. + It is a required parameter. + + + + + Users to be added or removed from the Unified App. + If not provided the default value is null. + + + + + Groups to be added or removed from the Unified App. + If not provided the default value is null. + + + + + DeployVersion for the Unified App. + Only applicable for deployTo + + + + + Create and validate the UnifiedAppUpdateRequestBody + + + + + + + HttpClient handler class that handles token refresh and retries due to throttling. + + + + + Initializes a new instance of the class. + + The "Application (client) ID" (GUID) for this app from the Entra portal. + The tenantId (GUID) where this will be run. + The client secret generated for this app from the Entra portal. + + + + Sends an HTTP request with authentication and retries in the event of throttling, and handles token refresh. + + The HTTP request message to send. + The cancellation token to cancel operation. + The task object representing the asynchronous operation. + + + + Represents a single export job. + + + + + Initializes a new instance of the class. + + The HTTP client to be used for requests. + Where to output the data. + Optionally limit single to a single user's ODB. + Optionally limit search to SharePoint and not ODB. + Optional single type of artifact to be exported (default is all types). + Optional start time to return artifacts created on or after this time. + Optional end time to return artifacts created on or before this time. + + + + Starts the export job. + + The number of artifacts found. + The number of errors encountered during the export. + + + + The utilities of graph APIs. + + + + + Return the current user user id. + + http client + graph resource + AAD user id + + + + Given a user UPN or email Id, return user Id. + + http client + user's upn + graph resource + AAD user id + + + + Given a list of userIds, get the dictionary of userId - upn. + + httpClient + list of userIds + graph resource + dictionary of userId - upn + + + + GET all AAD members of a channel. + + http client + graph resource + AAD group id + Channel object + list of AAD members + + + + Maximum number of retries for each http call under special conditions (ex. Service Unavailable) + + + + + JSON Serializer settings. + + + + + Send a GET request to the specified Uri. + + Return type + The Uri the request is sent to. + Returns resource as specified type T + + + + Send a GET request to the specified Uri with headers + + Return type + The Uri the request is sent to. + Custom headers sent with the request. + Returns resource. + + + + GET all entities from Graph + + Return type + The Uri the request is sent to. + List of resources. + + + + Send a POST request to the specified Uri + + Input type + http client + The Uri the request is sent to. + Resource to post + Returns created resource. + + + + Special POST for APIs that return async operation ids via Location header. + + http client + The Uri the request is sent to. + Resource to post + Returns created resource. + + + + Special POST for batch requests. Takes in a GraphBatchRequest and returns a BatchResponse. The response will have an id which maps to the id in the request + + + + + + + + + Send a PUT request to the specified Uri + + Input type + http client + The Uri the request is sent to. + Resource to update + Returns updated resource. + + + + Send a PATCH request to the specified Uri + + Input type + http client + The Uri the request is sent to. + Resource to update + + + + Send a patch request to the UAM service for updating an app. + + Body type + http client + The uri the request is sent to + App to update + + + + + Send a DELETE request to the specified Uri + + Input type + http client + The Uri the request is sent to. + + + + Send a async GET request to the specified Uri. + + + + + + + + + + Send a GET request to the specified Uri with headers + + Return type + http client + The Uri the request is sent to. + Custom headers sent with the request. + Function for refreshing authorization token when we get a 401. + Returns resource. + + + + Sends requests and handles retries, backoff and wait-after time spans + Will only retry if the status code returned is worth retrying + If header has retry-after then wait for the timespan specified + Else uses a decorrelated jitter exponential backoff strategry, useful for multithreaded applications + Creates a new HttpRequestMessage for every request since it cannot be reused with the same HttpClient + + + + + + + + + + + Function for creating HttpRequestMessages + + + + + + + + + + The maximum number of users that can get returned per page in the GET /users API. + + + + + The maximum number of Teams user activity details that can get returned per page in the GET /getTeamsUserActivityUserDetail API. + + + + + The valid report periods for the Teams usage report API. + https://docs.microsoft.com/en-us/graph/api/reportroot-getteamsuseractivityuserdetail?view=graph-rest-beta + + + + + Validates and returns the scope and the scope identifier based on the identifier arguments provided. + + Instance of . + Team Id in MS Teams. + Chat Id in MS Teams. + User Id in MS Teams. + scope and scope identifier. + + + + Fetches the TeamsAppInstallation for a given scope, scopeIdentifier and appId. + + Instance of . + . + Base MS Graph URL. + Scope of the app installation . + Identifier of the scope where the app is installed. + Installation identifier of the Teams App. + The corresponding Teams App installed. + + + + Creates the base url for Teams App lifecycle management. + + Instance of . + The MS Graph base url. + Scope of the app installation . + Identifier of the scope where the app is installed. + The url for Teams App lifecycle management + + + + Fetches the license details for a number of users. + + Instance of . + . + Base MS Graph URL. + The unique IDs or UPNs of the users for which to retrieve license details. + A dictionary representing the license details for a number of users, mapping the UPN to the license details. + A list of error messages from the batch request. + + + + Fetches the details of all users in the tenant. + + Instance of . + . + Base MS Graph URL. + The details about all users in the tenant. + + + + Fetches the Teams user activity details for all users in a tenant. + + Instance of . + . + Base MS Graph URL. + The period for which we want to fetch teh user activity details. + The Teams user activity details for all users in a tenant. + + + + ParameterSet name for resource management in Team scope + + + + + ParameterSet name for resource management in User scope + + + + + Default team alias used when the input alias contains invalid characters + + + + + Team alias suffix length + For example: Team alias is "msteams_d010ac", suffix will be "_"+"d010ac" + + + + + Allowed set of characters in team alias + + + + + Generates valid team alias + This function will be used for generate original alias base on displayName + 1. Only Keeps allowed characters and alias can't exceeds + 2. If genenrated alias in step 1 don't contain alphanumeric characters, MT generate a new alias + + Team alias + Prefix/Suffix Length + If use default alias which starts with "DefaultTeamAlias" + Valid team alias + + + + Generates (0-9, a-f) alias suffix base on Guid + + Valid team alias + + + + Generates unique team alias + This function will be used for generate new alias base on orginal alias if the original alias duplicated + The new alias length must less than alias.Length + suffix.Length + + Team alias + Team alias suffix + Office365 mailNickname Prefix/Suffix Length + Valid team alias + + + + Keeps allowed characters and removes the not allowed ones. + + Input string + Allowed character set + Input string with only the allowed characters + + + + Represents some utilities for user objects. + + + + + Gets the list of UserInfo objects to output. + + The list of graph aad users. + Http client. + Graph resource. + The specified role of users. + The type used to create objects. + The list of objects which implement IUserInfo. + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 new file mode 100644 index 000000000000..64c48ed59315 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 @@ -0,0 +1,1051 @@ +# +# Module manifest for module 'MicrosoftTeams' +# +# Generated by: Microsoft Corporation +# +# Updated on: 6/30/2020 +# + +@{ +# Script module or binary module file associated with this manifest. +RootModule = './MicrosoftTeams.psm1' + +# Version number of this module. +ModuleVersion = '7.4.0' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = 'd910df43-3ca6-4c9c-a2e3-e9f45a8e2ad9' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core. + +For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the Windows PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the Windows PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = 'Amd64' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. +# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +#NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @( + 'Clear-CsOnlineTelephoneNumberOrder' + ,'Complete-CsOnlineTelephoneNumberOrder' + ,'Disable-CsOnlineSipDomain' +#preview ,'Disable-CsTeamsShiftsConnectionErrorReport' + ,'Enable-CsOnlineSipDomain' + ,'Export-CsAcquiredPhoneNumber' + ,'Export-CsAutoAttendantHolidays' + ,'Export-CsOnlineAudioFile' + ,'Find-CsGroup' + ,'Find-CsOnlineApplicationInstance' + ,'Get-CsApplicationAccessPolicy' + ,'Get-CsApplicationMeetingConfiguration' + ,'Get-CsAutoAttendant' + ,'Get-CsAutoAttendantHolidays' + ,'Get-CsAutoAttendantStatus' + ,'Get-CsAutoAttendantSupportedLanguage' + ,'Get-CsAutoAttendantSupportedTimeZone' + ,'Get-CsAutoAttendantTenantInformation' + ,'Get-CsBatchPolicyAssignmentOperation' + ,'Get-CsCallingLineIdentity' + ,'Get-CsCallQueue' + ,'Get-CsCloudCallDataConnection' + ,'Get-CsEffectiveTenantDialPlan' + ,'Get-CsExportAcquiredPhoneNumberStatus' + ,'Get-CsGroupPolicyAssignment' + ,'Get-CsHybridTelephoneNumber' + ,'Get-CsInboundBlockedNumberPattern' + ,'Get-CsInboundExemptNumberPattern' + ,'Get-CsMainlineAttendantAppointmentBookingFlow' + ,'Get-CsMainlineAttendantFlow' + ,'Get-CsMainlineAttendantQuestionAnswerFlow' + ,'Get-CsMeetingMigrationStatus' + ,'Get-CsOnlineApplicationInstance' + ,'Get-CsOnlineApplicationInstanceAssociation' + ,'Get-CsOnlineApplicationInstanceAssociationStatus' + ,'Get-CsOnlineAudioConferencingRoutingPolicy' + ,'Get-CsOnlineAudioFile' + ,'Get-CsOnlineDialInConferencingBridge' + ,'Get-CsOnlineDialInConferencingLanguagesSupported' + ,'Get-CsOnlineDialinConferencingPolicy' + ,'Get-CsOnlineDialInConferencingServiceNumber' + ,'Get-CsOnlineDialinConferencingTenantConfiguration' + ,'Get-CsOnlineDialInConferencingTenantSettings' + ,'Get-CsOnlineDialInConferencingUser' + ,'Get-CsOnlineDialOutPolicy' + ,'Get-CsOnlineDirectoryTenant' + ,'Get-CsOnlineEnhancedEmergencyServiceDisclaimer' + ,'Get-CsOnlineLisCivicAddress' + ,'Get-CsOnlineLisLocation' + ,'Get-CsOnlineLisPort' + ,'Get-CsOnlineLisSubnet' + ,'Get-CsOnlineLisSwitch' + ,'Get-CsOnlineLisWirelessAccessPoint' + ,'Get-CsOnlinePSTNGateway' + ,'Get-CsOnlinePstnUsage' + ,'Get-CsOnlineSchedule' + ,'Get-CsOnlineSipDomain' + ,'Get-CsOnlineTelephoneNumber' + ,'Get-CsOnlineTelephoneNumberCountry' + ,'Get-CsOnlineTelephoneNumberOrder' + ,'Get-CsOnlineTelephoneNumberType' + ,'Get-CsOnlineUser' + ,'Get-CsOnlineVoicemailUserSettings' + ,'Get-CsOnlineVoiceRoute' + ,'Get-CsOnlineVoiceRoutingPolicy' + ,'Get-CsOnlineVoiceUser' + ,'Get-CsPhoneNumberAssignment' + ,'Get-CsPhoneNumberPolicyAssignment' + ,'Get-CsPhoneNumberTag' + ,'Get-CsPolicyPackage' + ,'Get-CsSdgBulkSignInRequestStatus' + ,'Get-CsSDGBulkSignInRequestsSummary' + ,'Get-CsTeamsAudioConferencingPolicy' + ,'Get-CsTeamsCallParkPolicy' + ,'Get-CsTeamsCortanaPolicy' + ,'Get-CsTeamsEmergencyCallRoutingPolicy' + ,'Get-CsTeamsEnhancedEncryptionPolicy' + ,'Get-CsTeamsGuestCallingConfiguration' + ,'Get-CsTeamsGuestMeetingConfiguration' + ,'Get-CsTeamsGuestMessagingConfiguration' + ,'Get-CsTeamsIPPhonePolicy' + ,'Get-CsTeamsMediaLoggingPolicy' + ,'Get-CsTeamsMeetingBroadcastConfiguration' + ,'Get-CsTeamsMeetingBroadcastPolicy' + ,'Get-CsTeamsMigrationConfiguration' + ,'Get-CsTeamsMobilityPolicy' + ,'Get-CsTeamsNetworkRoamingPolicy' + ,'Get-CsTeamsRoomVideoTeleConferencingPolicy' + ,'Get-CsTeamsSettingsCustomApp' + ,'Get-CsTeamsShiftsAppPolicy' + ,'Get-CsTeamsShiftsConnectionConnector' + ,'Get-CsTeamsShiftsConnectionErrorReport' + ,'Get-CsTeamsShiftsConnection' + ,'Get-CsTeamsShiftsConnectionInstance' + ,'Get-CsTeamsShiftsConnectionOperation' + ,'Get-CsTeamsShiftsConnectionSyncResult' + ,'Get-CsTeamsShiftsConnectionTeamMap' + ,'Get-CsTeamsShiftsConnectionWfmTeam' + ,'Get-CsTeamsShiftsConnectionWfmUser' + ,'Get-CsTeamsSurvivableBranchAppliance' + ,'Get-CsTeamsSurvivableBranchAppliancePolicy' + ,'Get-CsTeamsTargetingPolicy' + ,'Get-CsTeamsTranslationRule' + ,'Get-CsTeamsUnassignedNumberTreatment' + ,'Get-CsTeamsUpgradePolicy' + ,'Get-CsTeamsVdiPolicy' + ,'Get-CsTeamsVideoInteropServicePolicy' + ,'Get-CsTeamsWorkLoadPolicy' + ,'Get-CsTeamTemplate' + ,'Get-CsTeamTemplateList' + ,'Get-CsTenant' + ,'Get-CsTenantBlockedCallingNumbers' + ,'Get-CsTenantDialPlan' + ,'Get-CsTenantFederationConfiguration' + ,'Get-CsTenantLicensingConfiguration' + ,'Get-CsTenantMigrationConfiguration' + ,'Get-CsTenantNetworkConfiguration' + ,'Get-CsTenantNetworkRegion' + ,'Get-CsTenantNetworkSubnet' + ,'Get-CsTenantTrustedIPAddress' + ,'Get-CsUserCallingSettings' + ,'Get-CsUserPolicyAssignment' + ,'Get-CsUserPolicyPackage' + ,'Get-CsUserPolicyPackageRecommendation' + ,'Get-CsVideoInteropServiceProvider' + ,'Grant-CsApplicationAccessPolicy' + ,'Get-CsComplianceRecordingForCallQueueTemplate' + ,'Get-CsSharedCallQueueHistoryTemplate' + ,'Get-CsTagsTemplate' + ,'Grant-CsCallingLineIdentity' + ,'Grant-CsDialoutPolicy' + ,'Grant-CsGroupPolicyPackageAssignment' + ,'Grant-CsOnlineAudioConferencingRoutingPolicy' + ,'Grant-CsOnlineVoicemailPolicy' + ,'Grant-CsOnlineVoiceRoutingPolicy' + ,'Grant-CsTeamsAudioConferencingPolicy' + ,'Grant-CsTeamsCallHoldPolicy' + ,'Grant-CsTeamsCallParkPolicy' + ,'Grant-CsTeamsChannelsPolicy' + ,'Grant-CsTeamsCortanaPolicy' + ,'Grant-CsTeamsEmergencyCallingPolicy' + ,'Grant-CsTeamsEmergencyCallRoutingPolicy' + ,'Grant-CsTeamsEnhancedEncryptionPolicy' + ,'Grant-CsTeamsFeedbackPolicy' + ,'Grant-CsTeamsIPPhonePolicy' + ,'Grant-CsTeamsMediaLoggingPolicy' + ,'Grant-CsTeamsMeetingBroadcastPolicy' + ,'Grant-CsTeamsMeetingPolicy' + ,'Grant-CsTeamsMessagingPolicy' + ,'Grant-CsTeamsMobilityPolicy' + ,'Grant-CsTeamsRoomVideoTeleConferencingPolicy' + ,'Grant-CsTeamsSurvivableBranchAppliancePolicy' + ,'Grant-CsTeamsUpdateManagementPolicy' + ,'Grant-CsTeamsUpgradePolicy' + ,'Grant-CsTeamsVideoInteropServicePolicy' + ,'Grant-CsTeamsVoiceApplicationsPolicy' + ,'Grant-CsTeamsWorkLoadPolicy' + ,'Grant-CsTenantDialPlan' + ,'Grant-CsUserPolicyPackage' + ,'Grant-CsTeamsComplianceRecordingPolicy' + ,'Import-CsAutoAttendantHolidays' + ,'Import-CsOnlineAudioFile' + ,'Invoke-CsInternalPSTelemetry' + ,'Move-CsInternalHelper' + ,'New-CsApplicationAccessPolicy' + ,'New-CsAutoAttendant' + ,'New-CsAutoAttendantCallableEntity' + ,'New-CsAutoAttendantCallFlow' + ,'New-CsAutoAttendantCallHandlingAssociation' + ,'New-CsAutoAttendantDialScope' + ,'New-CsAutoAttendantMenu' + ,'New-CsAutoAttendantMenuOption' + ,'New-CsAutoAttendantPrompt' + ,'New-CsBatchPolicyAssignmentOperation' + ,'New-CsBatchPolicyPackageAssignmentOperation' + ,'New-CsCallingLineIdentity' + ,'New-CsCallQueue' + ,'New-CsCloudCallDataConnection' + ,'New-CsCustomPolicyPackage' + ,'New-CsEdgeAllowAllKnownDomains' + ,'New-CsEdgeAllowList' + ,'New-CsEdgeDomainPattern' + ,'New-CsGroupPolicyAssignment' + ,'New-CsHybridTelephoneNumber' + ,'New-CsInboundBlockedNumberPattern' + ,'New-CsInboundExemptNumberPattern' + ,'New-CsMainlineAttendantAppointmentBookingFlow' + ,'New-CsMainlineAttendantQuestionAnswerFlow' + ,'New-CsOnlineApplicationInstance' + ,'New-CsOnlineApplicationInstanceAssociation' + ,'New-CsOnlineAudioConferencingRoutingPolicy' + ,'New-CsOnlineDateTimeRange' + ,'New-CsOnlineLisCivicAddress' + ,'New-CsOnlineLisLocation' + ,'New-CsOnlinePSTNGateway' + ,'New-CsOnlineSchedule' + ,'New-CsOnlineTelephoneNumberOrder' + ,'New-CsOnlineTimeRange' + ,'New-CsOnlineVoiceRoute' + ,'New-CsOnlineVoiceRoutingPolicy' + ,'New-CsSdgBulkSignInRequest' + ,'New-CsTeamsAudioConferencingPolicy' + ,'New-CsTeamsCallParkPolicy' + ,'New-CsTeamsCortanaPolicy' + ,'New-CsTeamsEmergencyCallRoutingPolicy' + ,'New-CsTeamsEmergencyNumber' + ,'New-CsTeamsEnhancedEncryptionPolicy' + ,'New-CsTeamsIPPhonePolicy' + ,'New-CsTeamsMeetingBroadcastPolicy' + ,'New-CsTeamsMobilityPolicy' + ,'New-CsTeamsNetworkRoamingPolicy' + ,'New-CsTeamsRoomVideoTeleConferencingPolicy' + ,'New-CsTeamsShiftsConnectionBatchTeamMap' + ,'New-CsTeamsShiftsConnection' + ,'New-CsTeamsShiftsConnectionInstance' + ,'New-CsTeamsSurvivableBranchAppliance' + ,'New-CsTeamsSurvivableBranchAppliancePolicy' + ,'New-CsTeamsTranslationRule' + ,'New-CsTeamsUnassignedNumberTreatment' + ,'New-CsTeamsVdiPolicy' + ,'New-CsTeamsWorkLoadPolicy' + ,'New-CsTeamTemplate' + ,'New-CsTenantDialPlan' + ,'New-CsTenantNetworkRegion' + ,'New-CsTenantNetworkSite' + ,'New-CsTenantNetworkSubnet' + ,'New-CsTenantTrustedIPAddress' + ,'New-CsUserCallingDelegate' + ,'New-CsVideoInteropServiceProvider' + ,'New-CsVoiceNormalizationRule' + ,'New-CsOnlineDirectRoutingTelephoneNumberUploadOrder' + ,'New-CsOnlineTelephoneNumberReleaseOrder' + ,'New-CsComplianceRecordingForCallQueueTemplate' + ,'New-CsTagsTemplate' + ,'New-CsTag' + ,'New-CsSharedCallQueueHistoryTemplate' + ,'Register-CsOnlineDialInConferencingServiceNumber' + ,'Remove-CsApplicationAccessPolicy' + ,'Remove-CsAutoAttendant' + ,'Remove-CsCallingLineIdentity' + ,'Remove-CsCallQueue' + ,'Remove-CsCustomPolicyPackage' + ,'Remove-CsGroupPolicyAssignment' + ,'Remove-CsHybridTelephoneNumber' + ,'Remove-CsInboundBlockedNumberPattern' + ,'Remove-CsInboundExemptNumberPattern' + ,'Remove-CsMainlineAttendantAppointmentBookingFlow' + ,'Remove-CsMainlineAttendantQuestionAnswerFlow' + ,'Remove-CsOnlineApplicationInstanceAssociation' + ,'Remove-CsOnlineAudioConferencingRoutingPolicy' + ,'Remove-CsOnlineAudioFile' + ,'Remove-CsOnlineDialInConferencingTenantSettings' + ,'Remove-CsOnlineLisCivicAddress' + ,'Remove-CsOnlineLisLocation' + ,'Remove-CsOnlineLisPort' + ,'Remove-CsOnlineLisSubnet' + ,'Remove-CsOnlineLisSwitch' + ,'Remove-CsOnlineLisWirelessAccessPoint' + ,'Remove-CsOnlinePSTNGateway' + ,'Remove-CsOnlineSchedule' + ,'Remove-CsOnlineTelephoneNumber' + ,'Remove-CsOnlineVoiceRoute' + ,'Remove-CsOnlineVoiceRoutingPolicy' + ,'Remove-CsPhoneNumberAssignment' + ,'Remove-CsPhoneNumberTag' + ,'Remove-CsTeamsAudioConferencingPolicy' + ,'Remove-CsTeamsCallParkPolicy' + ,'Remove-CsTeamsCortanaPolicy' + ,'Remove-CsTeamsEmergencyCallRoutingPolicy' + ,'Remove-CsTeamsEnhancedEncryptionPolicy' + ,'Remove-CsTeamsIPPhonePolicy' + ,'Remove-CsTeamsMeetingBroadcastPolicy' + ,'Remove-CsTeamsMobilityPolicy' + ,'Remove-CsTeamsNetworkRoamingPolicy' + ,'Remove-CsTeamsRoomVideoTeleConferencingPolicy' + ,'Remove-CsTeamsShiftsConnection' + ,'Remove-CsTeamsShiftsConnectionInstance' + ,'Remove-CsTeamsShiftsConnectionTeamMap' + ,'Remove-CsTeamsShiftsScheduleRecord' + ,'Remove-CsTeamsSurvivableBranchAppliance' + ,'Remove-CsTeamsSurvivableBranchAppliancePolicy' + ,'Remove-CsTeamsTargetingPolicy' + ,'Remove-CsTeamsTranslationRule' + ,'Remove-CsTeamsUnassignedNumberTreatment' + ,'Remove-CsTeamsVdiPolicy' + ,'Remove-CsTeamsWorkLoadPolicy' + ,'Remove-CsTeamTemplate' + ,'Remove-CsTenantDialPlan' + ,'Remove-CsTenantNetworkRegion' + ,'Remove-CsTenantNetworkSite' + ,'Remove-CsTenantNetworkSubnet' + ,'Remove-CsTenantTrustedIPAddress' + ,'Remove-CsUserCallingDelegate' + ,'Remove-CsUserLicenseGracePeriod' + ,'Remove-CsVideoInteropServiceProvider' + ,'Remove-CsComplianceRecordingForCallQueueTemplate' + ,'Remove-CsTagsTemplate' + ,'Remove-CsSharedCallQueueHistoryTemplate' + ,'Set-CsApplicationAccessPolicy' + ,'Set-CsApplicationMeetingConfiguration' + ,'Set-CsAutoAttendant' + ,'Set-CsCallingLineIdentity' + ,'Set-CsCallQueue' + ,'Set-CsInboundBlockedNumberPattern' + ,'Set-CsInboundExemptNumberPattern' + ,'Set-CsMainlineAttendantAppointmentBookingFlow' + ,'Set-CsMainlineAttendantQuestionAnswerFlow' + ,'Set-CsOnlineApplicationInstance' + ,'Set-CsOnlineAudioConferencingRoutingPolicy' + ,'Set-CsOnlineDialInConferencingBridge' + ,'Set-CsOnlineDialInConferencingServiceNumber' + ,'Set-CsOnlineDialInConferencingTenantSettings' + ,'Set-CsOnlineDialInConferencingUser' + ,'Set-CsOnlineDialInConferencingUserDefaultNumber' + ,'Set-CsOnlineEnhancedEmergencyServiceDisclaimer' + ,'Set-CsOnlineLisCivicAddress' + ,'Set-CsOnlineLisLocation' + ,'Set-CsOnlineLisPort' + ,'Set-CsOnlineLisSubnet' + ,'Set-CsOnlineLisSwitch' + ,'Set-CsOnlineLisWirelessAccessPoint' + ,'Set-CsOnlinePSTNGateway' + ,'Set-CsOnlinePstnUsage' + ,'Set-CsOnlineSchedule' + ,'Set-CsOnlineVoiceApplicationInstance' + ,'Set-CsOnlineVoicemailUserSettings' + ,'Set-CsOnlineVoiceRoute' + ,'Set-CsOnlineVoiceRoutingPolicy' + ,'Set-CsOnlineVoiceUser' + ,'Set-CsPhoneNumberAssignment' + ,'Set-CsPhoneNumberPolicyAssignment' + ,'Set-CsPhoneNumberTag' + ,'Set-CsTeamsAudioConferencingPolicy' + ,'Set-CsTeamsCallParkPolicy' + ,'Set-CsTeamsCortanaPolicy' + ,'Set-CsTeamsEmergencyCallRoutingPolicy' + ,'Set-CsTeamsEnhancedEncryptionPolicy' + ,'Set-CsTeamsGuestCallingConfiguration' + ,'Set-CsTeamsGuestMeetingConfiguration' + ,'Set-CsTeamsGuestMessagingConfiguration' + ,'Set-CsTeamsIPPhonePolicy' + ,'Set-CsTeamsMeetingBroadcastConfiguration' + ,'Set-CsTeamsMeetingBroadcastPolicy' + ,'Set-CsTeamsMigrationConfiguration' + ,'Set-CsTeamsMobilityPolicy' + ,'Set-CsTeamsNetworkRoamingPolicy' + ,'Set-CsTeamsRoomVideoTeleConferencingPolicy' + ,'Set-CsTeamsSettingsCustomApp' + ,'Set-CsTeamsShiftsAppPolicy' + ,'Set-CsTeamsShiftsConnection' + ,'Set-CsTeamsShiftsConnectionInstance' + ,'Set-CsTeamsSurvivableBranchAppliance' + ,'Set-CsTeamsSurvivableBranchAppliancePolicy' + ,'Set-CsTeamsTargetingPolicy' + ,'Set-CsTeamsTranslationRule' + ,'Set-CsTeamsUnassignedNumberTreatment' + ,'Set-CsTeamsVdiPolicy' + ,'Set-CsTeamsWorkLoadPolicy' + ,'Set-CsTenantBlockedCallingNumbers' + ,'Set-CsTenantDialPlan' + ,'Set-CsTenantFederationConfiguration' + ,'Set-CsTenantMigrationConfiguration' + ,'Set-CsTenantNetworkRegion' + ,'Set-CsTenantNetworkSite' + ,'Set-CsTenantNetworkSubnet' + ,'Set-CsTenantTrustedIPAddress' + ,'Set-CsUser' + ,'Set-CsUserCallingDelegate' + ,'Set-CsUserCallingSettings' + ,'Set-CsVideoInteropServiceProvider' + ,'Set-CsComplianceRecordingForCallQueueTemplate' + ,'Set-CsTagsTemplate' + ,'Set-CsSharedCallQueueHistoryTemplate' + ,'Start-CsExMeetingMigration' + ,'Sync-CsOnlineApplicationInstance' + ,'Test-CsEffectiveTenantDialPlan' + ,'Test-CsInboundBlockedNumberPattern' + ,'Test-CsTeamsShiftsConnectionValidate' + ,'Test-CsTeamsTranslationRule' + ,'Test-CsTeamsUnassignedNumberTreatment' + ,'Test-CsVoiceNormalizationRule' + ,'Unregister-CsOnlineDialInConferencingServiceNumber' + ,'Update-CsAutoAttendant' + ,'Update-CsCustomPolicyPackage' + ,'Update-CsPhoneNumberTag' + ,'Update-CsTeamsShiftsConnection' + ,'Update-CsTeamsShiftsConnectionInstance' + ,'Update-CsTeamTemplate' + ,'New-CsBatchTeamsDeployment' + ,'Get-CsBatchTeamsDeploymentStatus' + ,'Get-CsPersonalAttendantSettings' + ,'Set-CsPersonalAttendantSettings' +#OCE related functions exports start here. DO NOT MODIFY! + ,'Set-CsOCEContext' + ,'Clear-CsOCEContext' + ,'Get-CsRegionContext' + ,'Set-CsRegionContext' + ,'Clear-CsRegionContext' + ,'Get-CsMeetingMigrationTransactionHistory' + ,'Get-CsMasVersionedSchemaData' + ,'Get-CsMasObjectChangelog' + ,'Get-CsBusinessVoiceDirectoryDiagnosticData' + ,'Get-CsCloudTenant' + ,'Get-CsCloudUser' + ,'Get-CsHostingProvider' + ,'Set-CsTenantUserBackfill' + ,'Invoke-CsCustomHandlerNgtprov' + ,'Invoke-CsCustomHandlerCallBackNgtprov' + ,'New-CsSdgDeviceTaggingRequest' + ,'Get-CsMoveTenantServiceInstanceTaskStatus' + ,'Move-CsTenantServiceInstance' + ,'Move-CsTenantCrossRegion' + ,'Invoke-CsDirectObjectSync' + ,'New-CsSDGDeviceTransferRequest' + ,'Get-CsAadTenant' + ,'Get-CsAadUser' + ,'Clear-CsCacheOperation' + ,'Move-CsAvsTenantPartition' + ,'Invoke-CsMsodsSync' + ,'Get-CsUssUserSettings' + ,'Set-CsUssUserSettings' + ,'Invoke-CsRehomeuser' + ,'Set-CsNotifyCache' +#OCE exports end +) +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @( + 'Add-TeamChannelUser' + ,'Add-TeamUser' + ,'Connect-MicrosoftTeams' + ,'Disconnect-MicrosoftTeams' + ,'Set-TeamsEnvironmentConfig' + ,'Clear-TeamsEnvironmentConfig' + ,'Get-AssociatedTeam' + ,'Get-MultiGeoRegion' + ,'Get-Operation' + ,'Get-SharedWithTeam' + ,'Get-SharedWithTeamUser' + ,'Get-Team' + ,'Get-TeamAllChannel' + ,'Get-TeamChannel' + ,'Get-TeamChannelUser' + ,'Get-TeamIncomingChannel' + ,'Get-TeamsApp' + ,'Get-TeamsArtifacts' + ,'Get-TeamUser' + ,'Get-M365TeamsApp' + ,'Get-AllM365TeamsApps' + ,'Get-M365UnifiedTenantSettings' + ,'Get-M365UnifiedCustomPendingApps' + ,'Get-CsTeamsAcsFederationConfiguration' + ,'Get-CsTeamsMessagingPolicy' + ,'Get-CsTeamsMeetingPolicy' + ,'Get-CsOnlineVoicemailPolicy' + ,'Get-CsOnlineVoicemailValidationConfiguration' + ,'Get-CsTeamsAIPolicy' + ,'Get-CsTeamsFeedbackPolicy' + ,'Get-CsTeamsUpdateManagementPolicy' + ,'Get-CsTeamsChannelsPolicy' + ,'Get-CsTeamsMeetingBrandingPolicy' + ,'Get-CsTeamsEmergencyCallingPolicy' + ,'Get-CsTeamsCallHoldPolicy' + ,'Get-CsTeamsMessagingConfiguration' + ,'Get-CsTeamsVoiceApplicationsPolicy' + ,'Get-CsTeamsEventsPolicy' + ,'Get-CsTeamsExternalAccessConfiguration' + ,'Get-CsTeamsFilesPolicy' + ,'Get-CsTeamsCallingPolicy' + ,'Get-CsTeamsClientConfiguration' + ,'Get-CsExternalAccessPolicy' + ,'Get-CsTeamsAppPermissionPolicy' + ,'Get-CsTeamsAppSetupPolicy' + ,'Get-CsTeamsFirstPartyMeetingTemplateConfiguration' + ,'Get-CsTeamsMeetingTemplatePermissionPolicy' + ,'Get-CsLocationPolicy' + ,'Get-CsTeamsShiftsPolicy' + ,'Get-CsTenantNetworkSite' + ,'Get-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'Get-CsTeamsMeetingTemplateConfiguration' + ,'Get-CsTeamsFirstPartyMeetingTemplateConfiguration' + ,'Get-CsTeamsVirtualAppointmentsPolicy' + ,'Get-CsTeamsSharedCallingRoutingPolicy' + ,'Get-CsTeamsTemplatePermissionPolicy' + ,'Get-CsTeamsComplianceRecordingPolicy' + ,'Get-CsTeamsComplianceRecordingApplication' + ,'Get-CsTeamsEducationAssignmentsAppPolicy' + ,'Get-CsTeamsUpgradeConfiguration' + ,'Get-CsTeamsAudioConferencingCustomPromptsConfiguration' + ,'Get-CsTeamsSipDevicesConfiguration' + ,'Get-CsTeamsCustomBannerText' + ,'Get-CsTeamsVdiPolicy' + ,'Get-CsTeamsMediaConnectivityPolicy' + ,'Get-CsTeamsMeetingConfiguration' + ,'Get-CsTeamsWorkLocationDetectionPolicy' + ,'Get-CsTeamsRecordingRollOutPolicy' + ,'Get-CsTeamsRemoteLogCollectionConfiguration' + ,'Get-CsTeamsRemoteLogCollectionDevice' + ,'Get-CsTeamsEducationConfiguration' + ,'Get-CsTeamsBYODAndDesksPolicy' + ,'Get-CsTeamsNotificationAndFeedsPolicy' + ,'Get-CsTeamsMultiTenantOrganizationConfiguration' + ,'Get-CsTeamsPersonalAttendantPolicy' + ,'Get-CsPrivacyConfiguration' + ,'Grant-CsTeamsAIPolicy' + ,'Grant-CsTeamsMeetingBrandingPolicy' + ,'Grant-CsExternalAccessPolicy' + ,'Grant-CsTeamsCallingPolicy' + ,'Grant-CsTeamsAppPermissionPolicy' + ,'Grant-CsTeamsAppSetupPolicy' + ,'Grant-CsTeamsEventsPolicy' + ,'Grant-CsTeamsFilesPolicy' + ,'Grant-CsTeamsMediaConnectivityPolicy' + ,'Grant-CsTeamsMeetingTemplatePermissionPolicy' + ,'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'Grant-CsTeamsVirtualAppointmentsPolicy' + ,'Grant-CsTeamsSharedCallingRoutingPolicy' + ,'Grant-CsTeamsShiftsPolicy' + ,'Grant-CsTeamsRecordingRollOutPolicy' + ,'Grant-CsTeamsVdiPolicy' + ,'Grant-CsTeamsWorkLocationDetectionPolicy' + ,'Grant-CsTeamsBYODAndDesksPolicy' + ,'Grant-CsTeamsPersonalAttendantPolicy' + ,'New-Team' + ,'New-TeamChannel' + ,'New-TeamsApp' + ,'New-CsTeamsAIPolicy' + ,'New-CsTeamsMessagingPolicy' + ,'New-CsTeamsMeetingPolicy' + ,'New-CsOnlineVoicemailPolicy' + ,'New-CsTeamsFeedbackPolicy' + ,'New-CsTeamsUpdateManagementPolicy' + ,'New-CsTeamsChannelsPolicy' + ,'New-CsTeamsFilesPolicy' + ,'New-CsTeamsMediaConnectivityPolicy' + ,'New-CsTeamsMeetingBrandingTheme' + ,'New-CsTeamsMeetingBackgroundImage' + ,'New-CsTeamsNdiAssuranceSlate' + ,'New-CsTeamsMeetingBrandingPolicy' + ,'New-CsTeamsEmergencyCallingPolicy' + ,'New-CsTeamsEmergencyCallingExtendedNotification' + ,'New-CsTeamsCallHoldPolicy' + ,'New-CsTeamsVoiceApplicationsPolicy' + ,'New-CsTeamsEventsPolicy' + ,'New-CsTeamsCallingPolicy' + ,'New-CsExternalAccessPolicy' + ,'New-CsTeamsAppPermissionPolicy' + ,'New-CsTeamsAppSetupPolicy' + ,'New-CsTeamsMeetingTemplatePermissionPolicy' + ,'New-CsLocationPolicy' + ,'New-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'New-CsTeamsHiddenMeetingTemplate' + ,'New-CsTeamsVirtualAppointmentsPolicy' + ,'New-CsTeamsSharedCallingRoutingPolicy' + ,'New-CsTeamsHiddenTemplate' + ,'New-CsTeamsTemplatePermissionPolicy' + ,'New-CsTeamsComplianceRecordingPolicy' + ,'New-CsTeamsComplianceRecordingApplication' + ,'New-CsTeamsComplianceRecordingPairedApplication' + ,'New-CsTeamsWorkLocationDetectionPolicy' + ,'New-CsTeamsRecordingRollOutPolicy' + ,'New-CsTeamsRemoteLogCollectionDevice' + ,"New-CsCustomPrompt" + ,"New-CsCustomPromptPackage" + ,'New-CsTeamsShiftsPolicy' + ,'New-CsTeamsCustomBannerText' + ,'New-CsTeamsVdiPolicy' + ,'New-CsTeamsBYODAndDesksPolicy' + ,'New-CsTeamsPersonalAttendantPolicy' + ,'Remove-SharedWithTeam' + ,'Remove-Team' + ,'Remove-TeamChannel' + ,'Remove-TeamChannelUser' + ,'Remove-TeamsApp' + ,'Remove-TeamUser' + ,'Remove-CsTeamsAIPolicy' + ,'Remove-CsTeamsMessagingPolicy' + ,'Remove-CsTeamsMeetingPolicy' + ,'Remove-CsOnlineVoicemailPolicy' + ,'Remove-CsTeamsFeedbackPolicy' + ,'Remove-CsTeamsFilesPolicy' + ,'Remove-CsTeamsUpdateManagementPolicy' + ,'Remove-CsTeamsChannelsPolicy' + ,'Remove-CsTeamsMediaConnectivityPolicy' + ,'Remove-CsTeamsMeetingBrandingPolicy' + ,'Remove-CsTeamsEmergencyCallingPolicy' + ,'Remove-CsTeamsCallHoldPolicy' + ,'Remove-CsTeamsVoiceApplicationsPolicy' + ,'Remove-CsTeamsEventsPolicy' + ,'Remove-CsTeamsCallingPolicy' + ,'Remove-CsExternalAccessPolicy' + ,'Remove-CsTeamsAppPermissionPolicy' + ,'Remove-CsTeamsAppSetupPolicy' + ,'Remove-CsTeamsMeetingTemplatePermissionPolicy' + ,'Remove-CsLocationPolicy' + ,'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'Remove-CsTeamsVirtualAppointmentsPolicy' + ,'Remove-CsTeamsSharedCallingRoutingPolicy' + ,'Remove-CsTeamsTemplatePermissionPolicy' + ,'Remove-CsTeamsComplianceRecordingPolicy' + ,'Remove-CsTeamsComplianceRecordingApplication' + ,'Remove-CsTeamsShiftsPolicy' + ,'Remove-CsTeamsCustomBannerText' + ,'Remove-CsTeamsVdiPolicy' + ,'Remove-CsTeamsWorkLocationDetectionPolicy' + ,'Remove-CsTeamsRecordingRollOutPolicy' + ,'Remove-CsTeamsRemoteLogCollectionDevice' + ,'Remove-CsTeamsBYODAndDesksPolicy' + ,'Remove-CsTeamsNotificationAndFeedsPolicy' + ,'Remove-CsTeamsPersonalAttendantPolicy' + ,'Set-Team' + ,'Set-TeamArchivedState' + ,'Set-TeamChannel' + ,'Set-TeamPicture' + ,'Set-TeamsApp' + ,'Set-CsTeamsAcsFederationConfiguration' + ,'Set-CsTeamsAIPolicy' + ,'Set-CsTeamsMessagingPolicy' + ,'Set-CsTeamsMeetingPolicy' + ,'Set-CsOnlineVoicemailPolicy' + ,'Set-CsTeamsFilesPolicy' + ,'Set-CsOnlineVoicemailValidationConfiguration' + ,'Set-CsTeamsFeedbackPolicy' + ,'Set-CsTeamsUpdateManagementPolicy' + ,'Set-CsTeamsChannelsPolicy' + ,'Set-CsTeamsMediaConnectivityPolicy' + ,'Set-CsTeamsMeetingBrandingPolicy' + ,'Set-CsTeamsEmergencyCallingPolicy' + ,'Set-CsTeamsEducationConfiguration' + ,'Set-CsTeamsCallHoldPolicy' + ,'Set-CsTeamsMessagingConfiguration' + ,'Set-CsTeamsVoiceApplicationsPolicy' + ,'Set-CsTeamsEventsPolicy' + ,'Set-CsTeamsExternalAccessConfiguration' + ,'Set-CsTeamsCallingPolicy' + ,'Set-CsTeamsClientConfiguration' + ,'Set-CsExternalAccessPolicy' + ,'Set-CsTeamsAppPermissionPolicy' + ,'Set-CsTeamsAppSetupPolicy' + ,'Set-CsTeamsFirstPartyMeetingTemplateConfiguration' + ,'Set-CsTeamsMeetingTemplatePermissionPolicy' + ,'Set-CsTeamsMultiTenantOrganizationConfiguration' + ,'Set-CsLocationPolicy' + ,'Set-CsTeamsCarrierEmergencyCallRoutingPolicy' + ,'Set-CsTeamsVirtualAppointmentsPolicy' + ,'Set-CsTeamsSharedCallingRoutingPolicy' + ,'Set-CsTeamsTemplatePermissionPolicy' + ,'Set-CsTeamsComplianceRecordingPolicy' + ,'Set-CsTeamsEducationAssignmentsAppPolicy' + ,'Set-CsTeamsComplianceRecordingApplication' + ,'Set-CsTeamsShiftsPolicy' + ,'Set-CsTeamsUpgradeConfiguration' + ,'Set-CsTeamsAudioConferencingCustomPromptsConfiguration' + ,'Set-CsTeamsSipDevicesConfiguration' + ,'Set-CsTeamsMeetingConfiguration' + ,'Set-CsTeamsVdiPolicy' + ,'Set-CsTeamsWorkLocationDetectionPolicy' + ,'Set-CsTeamsRemoteLogCollectionDevice' + ,'Set-CsTeamsRecordingRollOutPolicy' + ,'Set-CsTeamsCustomBannerText' + ,'Set-CsTeamsBYODAndDesksPolicy' + ,'Set-CsTeamsNotificationAndFeedsPolicy' + ,'Set-CsTeamsPersonalAttendantPolicy' + ,'Set-CsPrivacyConfiguration' + ,'Update-M365TeamsApp' + ,'Update-M365UnifiedTenantSettings' + ,'Update-M365UnifiedCustomPendingApp' + + #MPA OCE cmdlets + ,'Get-CsBatchOperationDefinition' + ,'Get-CsBatchOperationStatus' + ,'Get-CsConfiguration' + ,'Get-CsGroupPolicyAssignments' + ,'Get-CsLoginInfo' + ,'Get-CsUserProvHistory' + ,'Get-GPAGroupMembers' + ,'Get-GPAUserMembership' + ,'Get-NgtProvInstanceFailOverStatus' + ,'Get-CsTeamsTenantAbuseConfiguration' + ,'Invoke-CsDirectoryObjectSync' + ,'Invoke-CsGenericNgtProvCommand' + ,'Invoke-CsRefreshGroupUsers' + ,'Invoke-CsReprocessBatchOperation' + ,'Invoke-CsReprocessGroupPolicyAssignment' + ,'Move-NgtProvInstance' + ,'New-CsConfiguration' + ,'Remove-CsConfiguration' + ,'Set-CsConfiguration' + ,'Set-CsTeamsTenantAbuseConfiguration' + ,'Set-CsPublishPolicySchemaDefaults' + + +#preview ,'Add-TeamsAppInstallation' +#preview ,'Get-TeamsAppInstallation' + ,'Get-TeamTargetingHierarchyStatus' +#preview ,'Remove-TeamsAppInstallation' + ,'Remove-TeamTargetingHierarchy' + ,'Set-TeamTargetingHierarchy' +#preview ,'Update-TeamsAppInstallation' +#preview ,'Get-LicenseReportForChangeNotificationSubscription' +#preview ,'Get-TenantPrivateChannelMigrationStatus' + ) + +# Variables to export from this module +VariablesToExport = '*' + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = '*' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + PSData = @{ + # Tags applied to this module. These help with module discovery in online galleries. + Tags = 'Office365', 'MicrosoftTeams', 'Teams' + + # A URL to the license for this module. + LicenseUri = 'https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/MicrosoftDocs/office-docs-powershell/tree/master/teams' + + # A URL to an icon representing this module. + IconUri = 'https://statics.teams.microsoft.com/evergreen-assets/apps/teamscmdlets_largeimage.png' + + # Appends prerelease string to version + Prerelease = '' + + # ReleaseNotes of this module + ReleaseNotes = @' + **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release) +- Releases Get-TeamsArtifacts cmdlet. +- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet. +- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets. +- Releases New-CsTag cmdlet. +- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively. +- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets. + +- The complete release notes can be found in the below link: +https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes +'@ + } # End of PSData hashtable +} # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' +} + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBNq+ogYcufhkVf +# wL/SIsi1+eZ0W6XKQrhMITXDH9ZwfKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIK8C +# wHKJ8d1KCNpUMQTC76irpoI05q/v3ByKkfj0E6mhMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAQxLeGSKr79UYnDswJ8kNGEymGBTkCK/m9gwN +# dgeSTDJrRbKeBpVKPM5sRX1qvWdpwPUmNcHxntATDBVNxk6PS9/u3DPNhQ+I8aML +# ths+KGErpUHCU58uFz0ovB0+wSp6//c1dDsNcx1unn30AmMNL3YG6hYKsIPtxQOo +# k3MDN9dZd3xIBXu3q9pQYaNfriddtGk/Fu1MOMcamQiVy9dxXM4rv+nEnHQ2zHg4 +# sqYP65iIkVLfyFVLRmzfH8R7xRJxXUTVFHRgKUpWDg/FKaaSBkrFiOMiZLw8v8G1 +# esj/jBLaTsP9g3bbjptldfCJGsqnZB6rlOXPE+l8+Auzd7vYE6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBGWHA1fMqSZ+iA0klB+5upK5O1Dx56VI8e +# M3bfl2YaiwIGaKSPMrLjGBMyMDI1MTAwMTA4MzMwOS43NjJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+8vL +# bDdn5TCVAAEAAAH7MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExM1oXDTI1MTAyMjE4MzExM1owgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjU3MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# qMJWQeWAq4LwvSjYsjP0Uvhvm0j0aAOJiMLg0sLfxKoTXAdKD6oMuq5rF5oEiOxV +# +9ox0H95Q8fhoZq3x9lxguZyTOK4l2xtcgtJCtjXRllM2bTpjOg35RUrBy0cAloB +# U9GJBs7LBNrcbH6rBiOvqDQNicPRZwq16xyjMidU1J1AJuat9yLn7taifoD58blY +# EcBvkj5dH1la9zU846QDeOoRO6NcqHLsDx8/zVKZxP30mW6Y7RMsqtB8cGCgGwVV +# urOnaNLXs31qTRTyVHX8ppOdoSihCXeqebgJCRzG8zG/e/k0oaBjFFGl+8uFELwC +# yh4wK9Z5+azTzfa2GD4p6ihtskXs3lnW05UKfDJhAADt6viOc0Rk/c8zOiqzh0lK +# pf/eWUY2o/hvcDPZNgLaHvyfDqb8AWaKvO36iRZSXqhSw8SxJo0TCpsbCjmtx0Lp +# Hnqbb1UF7cq09kCcfWTDPcN12pbYLqck0bIIfPKbc7HnrkNQks/mSbVZTnDyT3O8 +# zF9q4DCfWesSr1akycDduGxCdKBvgtJh1YxDq1skTweYx5iAWXnB7KMyls3WQZbT +# ubTCLLt8Xn8t+slcKm5DkvobubmHSriuTA3wTyIy4FxamTKm0VDu9mWds8MtjUSJ +# VwNVVlBXaQ3ZMcVjijyVoUNVuBY9McwYcIQK62wQ20ECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRHVSGYUNQ3RwOl71zIAuUjIKg1KjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAwzoIKOY2dnUjfWuMiGoz/ovoc1e86VwWaZNFdgRmOoQuRe4nLdtZONtT +# HNk3Sj3nkyBszzxSbZEQ0DduyKHHI5P8V87jFttGnlR0wPP22FAebbvAbutkMMVQ +# MFzhVBWiWD0VAnu9x0fjifLKDAVXLwoun5rCFqwbasXFc7H/0DPiC+DBn3tUxefv +# cxUCys4+DC3s8CYp7WWXpZ8Wb/vdBhDliHmB7pWcmsB83uc4/P2GmAI3HMkOEu7f +# CaSYoQhouWOr07l/KM4TndylIirm8f2WwXQcFEzmUvISM6ludUwGlVNfTTJUq2bT +# DEd3tlDKtV9AUY3rrnFwHTwJryLtT4IFhvgBfND3mL1eeSakKf7xTII4Jyt15SXh +# Hd5oI/XGjSgykgJrWA57rGnAC7ru3/ZbFNCMK/Jj6X8X4L6mBOYa2NGKwH4A37YG +# DrecJ/qXXWUYvfLYqHGf8ThYl12Yg1rwSKpWLolA/B1eqBw4TRcvVY0IvNNi5sm+ +# //HJ9Aw6NJuR/uDR7X7vDXicpXMlRNgFMyADb8AFIvQPdHqcRpRorY+YUGlvzeJx +# /2gNYyezAokbrFhACsJ2BfyeLyCEo6AuwEHn511PKE8dK4JvlmLSoHj7VFR3NHDk +# 3zRkx0ExkmF8aOdpvoKhuwBCxoZ/JhbzSzrvZ74GVjKKIyt5FA0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUABHHn7NCGusZz +# 2RfVbyuwYwPykBWggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHEVEwIhgPMjAyNTEwMDEwMjMyNDlaGA8yMDI1 +# MTAwMjAyMzI0OVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcRUQIBADAKAgEA +# AgIC4QIB/zAHAgEAAgISTDAKAgUA7Ihi0QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQB2rJUBbV82zv/fG68I5fhMRRSkgirfFrnlWvW6RfzPd+5iYKdth6dU +# 6IOUUkXT8dO0qMuoHqkbT04FjLzmTDVMz/HkKyWOnfzbgSfBdr627tuQfCEGAwNV +# ucTR8DvaCruh9rBA7ZrkdmVxSbNWAKHET4DRUNE04kCzDtcJRlH+6DET6vv0aaWh +# 8jP2P7qVYhNnf2EbzfEphwGpR2qf12umLBqw3UuOLP409MRmZbnWF7ektopLFB0Q +# q2MmM3MvEuHDKHeP9zk2uDYd/JBwf4FNbMFJE/290pXYfcRhctqSoSE6hLmab8Cb +# xUvtPV6BaJ52RwxeSWsAM3GSZBGPrS0IMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH7y8tsN2flMJUAAQAAAfswDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgEmeF5oaa0lat8s66k9I6ahFYw/sboKYMj6AsWdn7CokwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA52wKr/KCFlVNYiWsCLsB4qhjEYEP3xHqY +# qDu1SSTlGDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+8vLbDdn5TCVAAEAAAH7MCIEICnkwtMY6H2GmiCyEEz1OMgXS5ZXQyQ7h2mA +# fwdrbCjpMA0GCSqGSIb3DQEBCwUABIICABJYVuOYY/FMZA+QTn5JWEO958iX7TnK +# ikVBtXDVT/BuDoA3Hd83YiUbf+NHgqQG1gPSRrF/T0F95JYEXh6dJAYQP2nAbna8 +# lYhljI26hhfaicf/RUxZZawTPCtm7ArQgtxlBh21J4tvfiaQJLGrAeLcsXPWDpXP +# uGzujnhPxFXWWUveWyYco8QRWLXXP6Geq6UxjfnxZooEbQ//Tw9TC/wOtyD/1Y5G +# gpFqdOYmRR5EamDMS+PI7oK4nfcfiz7EcslzDHcxw4VxDay0nEq4dMaNxqvnEu4v +# kaxHU2m12RNO8VZ4mbYCMLL0GQ7f4KiIqf0V+faAVBhLXUxJxWRt1aC8jtg5cuWg +# 3KqzG9ZB8CikzH4ufED8qrmm9UDdUN4ZK9XYm5oEAtAwZnTgVwsNT19dRErU5wMK +# O9M4NFaGRD2k4KpXn7ogwMyavCthN6YNO7r+Pud/31NnsFdpH+xomEvZR48dzVkY +# i6YsoxiIMxwfU0aTp6W/Sr3SAS1n84pOXMNb+93m2VxiUUV/ZCgdUWxxkgb5yhTg +# rNMaS2BJXnQu9AK34SWWLdyzethKbzK/iii14nZjeBbbhLNTNkqMeFrpc7HMso/Q +# WO0e1BtDnKWP7sCb1VLCXUkgaB93SZHV+NFtr/KzkA8wK5G7RqdlkGkHB8lSsLFr +# s50HQ1MxRiV4 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 new file mode 100644 index 000000000000..69f91f7186eb --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 @@ -0,0 +1,260 @@ +#Check for the source module - Common Denominator +$moduleInfo = Get-Module -name "CommonDenominator" +#Check for the cmdlet +if($moduleInfo -ne $null) { +$dmsIdentifier = Get-command "Get-ClientType" -module "CommonDenominator" -ErrorAction SilentlyContinue +} +if($dmsIdentifier -ne $null) { +$isDms = & Get-ClientType + +if($isDms -eq "DMS") { + $env:MSTeamsContextInternal = "IsOCEModule" +} + +} +if($PSEdition -ne 'Desktop') +{ + Import-Module $('{0}\netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) + if ($env:MSTeamsContextInternal -ne "IsOCEModule") { + Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) + } + else + { + Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) + } + Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) + +} +else +{ + Import-Module $('{0}\net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll' -f $PSScriptRoot) + [Reflection.Assembly]::Loadfrom($('{0}\net472\Newtonsoft.Json.dll' -f $PSScriptRoot)) + if ($env:MSTeamsContextInternal -ne "IsOCEModule") { + Import-Module $('{0}\Microsoft.Teams.PowerShell.TeamsCmdlets.psd1' -f $PSScriptRoot) + } + else + { + Import-Module $('{0}\net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll' -f $PSScriptRoot) + } + Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.Module.dll' -f $PSScriptRoot) +} +Import-Module $('{0}\Microsoft.Teams.Policy.Administration.psd1' -f $PSScriptRoot) +Import-Module $('{0}\Microsoft.Teams.ConfigAPI.Cmdlets.psd1' -f $PSScriptRoot) +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBJponIg6/1vb48 +# stXuS4z8oBYcN1DNZwuhwmt7j7P5CaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIADB +# pasuVHSfoJTNR02qga8z3vkaj9V4PoBJXQ16dJ5RMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAUCezCbF74ISaWt46BJFpza6IglV2oUrfAu7c +# DKwuwxT1Abbxm/kSmf82Y6ykKNYKaNYQUIXk0XkqiZtytafGatB4/xvAWTV249Er +# X+DjrqkIyOCOeybGoEA07cZHJPm+g4odBbOMFDUXcu4F0Yla1G2moY3mzouXqPEd +# FD8Wrj9U4tyHdZoTntqHr/x/76G5a75PLkPFAtNo69QBDhq6mhFXSduE73OoKGdf +# l5U5Nh9Xeoyq9KbGulyF/2W2u5gY68zS5Ci15ra+Zu4n2A+DQ8GIdlVFeUvoenwb +# 8sXj/1wJ9mocwQ2M4P6W2Axu0g8AQPKjbXVZEulEN3xQ54ETAqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBMvtJAAlMM5GjgeF5DL27oDcouSzPvyXQ/ +# bQU0xQ/8owIGaKOvjMMzGBMyMDI1MTAwMTA4MzM0NC42NDNaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgpWAlZNXWAN7nQT/FGDrJJdqMmFbmsK+cS4fUtV0o9MMwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICAFosbXb3BCNc+HiV5DVrFRw8TzmyDPNH +# r5VDxzMNKc0M1DPf/YBsAA6Mrl8PK+1IY9tZa0+EEfoGNDLSssyIOuPgqmoADTMl +# 7PyWdAQkwjmgO1H6pPafJP93PPTKI2PmVaqeyQyqlaCR+nuLl4/upUI+p9eEVWuu +# GqyOMdABvzC9x9WChQoWvnwMUGeBJpAD90nWHH0nPYNDb2BVuTGB9yMNwK7Dxrzj +# Eh5ZcSvkUE4a5ZqbL074lEAMvso4TaGsdLwOUryls9RJO+GLMSK5QS4/Uj5YrZu3 +# 4VVTNgMzGWSzSzFXtPF+qGFwyZJmGcl4clFaHIXzQuS/SVP+REBKbNJ45Qd5E2+i +# Ql/j3fvg4Ft7LhRmdkWZd1omPvTrOkiIYM4b09yEGvZKYFR86hgaG/FakeRZ7eGL +# UTjBJn26KNU1GuI0ywx80FpH72N5n9+CMWnDttwPv6bKcg+Ntx9rKAaym/WKdoJh +# majmmsyNNBlYRQMoOjyXkSQIeQ/nacPY+v0SvEtkfEtDr5tOTwiTymOoSsMNyHzr +# L6CkN69yYgHI9IU6RCQlsgmA52SxdGDcjUO3lIHZ1YhdH7tk8hks2hzaCkidY20e +# RWMUFxrD4h6XxU9YPuDX4AnCkLIkwVnapn3GU+PjrYL6uPyXAVv0i9DgpUtgIpI8 +# kr6V7l86zYBm +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml new file mode 100644 index 000000000000..536164676025 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml @@ -0,0 +1,1497 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + MicrosoftTeams + 7.4.0 + Module + Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview + Microsoft Corporation + MicrosoftTeams + Microsoft Corporation. All rights reserved. +
      2025-10-06T13:29:35+02:00
      + + + https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt + https://github.com/MicrosoftDocs/office-docs-powershell/tree/master/teams + https://statics.teams.microsoft.com/evergreen-assets/apps/teamscmdlets_largeimage.png + + + System.Object[] + System.Array + System.Object + + + Office365 + MicrosoftTeams + Teams + PSModule + PSEdition_Core + PSEdition_Desktop + + + + + System.Collections.Hashtable + System.Object + + + + Function + + + + Clear-CsOnlineTelephoneNumberOrder + Complete-CsOnlineTelephoneNumberOrder + Disable-CsOnlineSipDomain + Enable-CsOnlineSipDomain + Export-CsAcquiredPhoneNumber + Export-CsAutoAttendantHolidays + Export-CsOnlineAudioFile + Find-CsGroup + Find-CsOnlineApplicationInstance + Get-CsApplicationAccessPolicy + Get-CsApplicationMeetingConfiguration + Get-CsAutoAttendant + Get-CsAutoAttendantHolidays + Get-CsAutoAttendantStatus + Get-CsAutoAttendantSupportedLanguage + Get-CsAutoAttendantSupportedTimeZone + Get-CsAutoAttendantTenantInformation + Get-CsBatchPolicyAssignmentOperation + Get-CsCallingLineIdentity + Get-CsCallQueue + Get-CsCloudCallDataConnection + Get-CsEffectiveTenantDialPlan + Get-CsExportAcquiredPhoneNumberStatus + Get-CsGroupPolicyAssignment + Get-CsHybridTelephoneNumber + Get-CsInboundBlockedNumberPattern + Get-CsInboundExemptNumberPattern + Get-CsMainlineAttendantAppointmentBookingFlow + Get-CsMainlineAttendantFlow + Get-CsMainlineAttendantQuestionAnswerFlow + Get-CsMeetingMigrationStatus + Get-CsOnlineApplicationInstance + Get-CsOnlineApplicationInstanceAssociation + Get-CsOnlineApplicationInstanceAssociationStatus + Get-CsOnlineAudioConferencingRoutingPolicy + Get-CsOnlineAudioFile + Get-CsOnlineDialInConferencingBridge + Get-CsOnlineDialInConferencingLanguagesSupported + Get-CsOnlineDialinConferencingPolicy + Get-CsOnlineDialInConferencingServiceNumber + Get-CsOnlineDialinConferencingTenantConfiguration + Get-CsOnlineDialInConferencingTenantSettings + Get-CsOnlineDialInConferencingUser + Get-CsOnlineDialOutPolicy + Get-CsOnlineDirectoryTenant + Get-CsOnlineEnhancedEmergencyServiceDisclaimer + Get-CsOnlineLisCivicAddress + Get-CsOnlineLisLocation + Get-CsOnlineLisPort + Get-CsOnlineLisSubnet + Get-CsOnlineLisSwitch + Get-CsOnlineLisWirelessAccessPoint + Get-CsOnlinePSTNGateway + Get-CsOnlinePstnUsage + Get-CsOnlineSchedule + Get-CsOnlineSipDomain + Get-CsOnlineTelephoneNumber + Get-CsOnlineTelephoneNumberCountry + Get-CsOnlineTelephoneNumberOrder + Get-CsOnlineTelephoneNumberType + Get-CsOnlineUser + Get-CsOnlineVoicemailUserSettings + Get-CsOnlineVoiceRoute + Get-CsOnlineVoiceRoutingPolicy + Get-CsOnlineVoiceUser + Get-CsPhoneNumberAssignment + Get-CsPhoneNumberPolicyAssignment + Get-CsPhoneNumberTag + Get-CsPolicyPackage + Get-CsSdgBulkSignInRequestStatus + Get-CsSDGBulkSignInRequestsSummary + Get-CsTeamsAudioConferencingPolicy + Get-CsTeamsCallParkPolicy + Get-CsTeamsCortanaPolicy + Get-CsTeamsEmergencyCallRoutingPolicy + Get-CsTeamsEnhancedEncryptionPolicy + Get-CsTeamsGuestCallingConfiguration + Get-CsTeamsGuestMeetingConfiguration + Get-CsTeamsGuestMessagingConfiguration + Get-CsTeamsIPPhonePolicy + Get-CsTeamsMediaLoggingPolicy + Get-CsTeamsMeetingBroadcastConfiguration + Get-CsTeamsMeetingBroadcastPolicy + Get-CsTeamsMigrationConfiguration + Get-CsTeamsMobilityPolicy + Get-CsTeamsNetworkRoamingPolicy + Get-CsTeamsRoomVideoTeleConferencingPolicy + Get-CsTeamsSettingsCustomApp + Get-CsTeamsShiftsAppPolicy + Get-CsTeamsShiftsConnectionConnector + Get-CsTeamsShiftsConnectionErrorReport + Get-CsTeamsShiftsConnection + Get-CsTeamsShiftsConnectionInstance + Get-CsTeamsShiftsConnectionOperation + Get-CsTeamsShiftsConnectionSyncResult + Get-CsTeamsShiftsConnectionTeamMap + Get-CsTeamsShiftsConnectionWfmTeam + Get-CsTeamsShiftsConnectionWfmUser + Get-CsTeamsSurvivableBranchAppliance + Get-CsTeamsSurvivableBranchAppliancePolicy + Get-CsTeamsTargetingPolicy + Get-CsTeamsTranslationRule + Get-CsTeamsUnassignedNumberTreatment + Get-CsTeamsUpgradePolicy + Get-CsTeamsVdiPolicy + Get-CsTeamsVideoInteropServicePolicy + Get-CsTeamsWorkLoadPolicy + Get-CsTeamTemplate + Get-CsTeamTemplateList + Get-CsTenant + Get-CsTenantBlockedCallingNumbers + Get-CsTenantDialPlan + Get-CsTenantFederationConfiguration + Get-CsTenantLicensingConfiguration + Get-CsTenantMigrationConfiguration + Get-CsTenantNetworkConfiguration + Get-CsTenantNetworkRegion + Get-CsTenantNetworkSubnet + Get-CsTenantTrustedIPAddress + Get-CsUserCallingSettings + Get-CsUserPolicyAssignment + Get-CsUserPolicyPackage + Get-CsUserPolicyPackageRecommendation + Get-CsVideoInteropServiceProvider + Grant-CsApplicationAccessPolicy + Get-CsComplianceRecordingForCallQueueTemplate + Get-CsSharedCallQueueHistoryTemplate + Get-CsTagsTemplate + Grant-CsCallingLineIdentity + Grant-CsDialoutPolicy + Grant-CsGroupPolicyPackageAssignment + Grant-CsOnlineAudioConferencingRoutingPolicy + Grant-CsOnlineVoicemailPolicy + Grant-CsOnlineVoiceRoutingPolicy + Grant-CsTeamsAudioConferencingPolicy + Grant-CsTeamsCallHoldPolicy + Grant-CsTeamsCallParkPolicy + Grant-CsTeamsChannelsPolicy + Grant-CsTeamsCortanaPolicy + Grant-CsTeamsEmergencyCallingPolicy + Grant-CsTeamsEmergencyCallRoutingPolicy + Grant-CsTeamsEnhancedEncryptionPolicy + Grant-CsTeamsFeedbackPolicy + Grant-CsTeamsIPPhonePolicy + Grant-CsTeamsMediaLoggingPolicy + Grant-CsTeamsMeetingBroadcastPolicy + Grant-CsTeamsMeetingPolicy + Grant-CsTeamsMessagingPolicy + Grant-CsTeamsMobilityPolicy + Grant-CsTeamsRoomVideoTeleConferencingPolicy + Grant-CsTeamsSurvivableBranchAppliancePolicy + Grant-CsTeamsUpdateManagementPolicy + Grant-CsTeamsUpgradePolicy + Grant-CsTeamsVideoInteropServicePolicy + Grant-CsTeamsVoiceApplicationsPolicy + Grant-CsTeamsWorkLoadPolicy + Grant-CsTenantDialPlan + Grant-CsUserPolicyPackage + Grant-CsTeamsComplianceRecordingPolicy + Import-CsAutoAttendantHolidays + Import-CsOnlineAudioFile + Invoke-CsInternalPSTelemetry + Move-CsInternalHelper + New-CsApplicationAccessPolicy + New-CsAutoAttendant + New-CsAutoAttendantCallableEntity + New-CsAutoAttendantCallFlow + New-CsAutoAttendantCallHandlingAssociation + New-CsAutoAttendantDialScope + New-CsAutoAttendantMenu + New-CsAutoAttendantMenuOption + New-CsAutoAttendantPrompt + New-CsBatchPolicyAssignmentOperation + New-CsBatchPolicyPackageAssignmentOperation + New-CsCallingLineIdentity + New-CsCallQueue + New-CsCloudCallDataConnection + New-CsCustomPolicyPackage + New-CsEdgeAllowAllKnownDomains + New-CsEdgeAllowList + New-CsEdgeDomainPattern + New-CsGroupPolicyAssignment + New-CsHybridTelephoneNumber + New-CsInboundBlockedNumberPattern + New-CsInboundExemptNumberPattern + New-CsMainlineAttendantAppointmentBookingFlow + New-CsMainlineAttendantQuestionAnswerFlow + New-CsOnlineApplicationInstance + New-CsOnlineApplicationInstanceAssociation + New-CsOnlineAudioConferencingRoutingPolicy + New-CsOnlineDateTimeRange + New-CsOnlineLisCivicAddress + New-CsOnlineLisLocation + New-CsOnlinePSTNGateway + New-CsOnlineSchedule + New-CsOnlineTelephoneNumberOrder + New-CsOnlineTimeRange + New-CsOnlineVoiceRoute + New-CsOnlineVoiceRoutingPolicy + New-CsSdgBulkSignInRequest + New-CsTeamsAudioConferencingPolicy + New-CsTeamsCallParkPolicy + New-CsTeamsCortanaPolicy + New-CsTeamsEmergencyCallRoutingPolicy + New-CsTeamsEmergencyNumber + New-CsTeamsEnhancedEncryptionPolicy + New-CsTeamsIPPhonePolicy + New-CsTeamsMeetingBroadcastPolicy + New-CsTeamsMobilityPolicy + New-CsTeamsNetworkRoamingPolicy + New-CsTeamsRoomVideoTeleConferencingPolicy + New-CsTeamsShiftsConnectionBatchTeamMap + New-CsTeamsShiftsConnection + New-CsTeamsShiftsConnectionInstance + New-CsTeamsSurvivableBranchAppliance + New-CsTeamsSurvivableBranchAppliancePolicy + New-CsTeamsTranslationRule + New-CsTeamsUnassignedNumberTreatment + New-CsTeamsVdiPolicy + New-CsTeamsWorkLoadPolicy + New-CsTeamTemplate + New-CsTenantDialPlan + New-CsTenantNetworkRegion + New-CsTenantNetworkSite + New-CsTenantNetworkSubnet + New-CsTenantTrustedIPAddress + New-CsUserCallingDelegate + New-CsVideoInteropServiceProvider + New-CsVoiceNormalizationRule + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder + New-CsOnlineTelephoneNumberReleaseOrder + New-CsComplianceRecordingForCallQueueTemplate + New-CsTagsTemplate + New-CsTag + New-CsSharedCallQueueHistoryTemplate + Register-CsOnlineDialInConferencingServiceNumber + Remove-CsApplicationAccessPolicy + Remove-CsAutoAttendant + Remove-CsCallingLineIdentity + Remove-CsCallQueue + Remove-CsCustomPolicyPackage + Remove-CsGroupPolicyAssignment + Remove-CsHybridTelephoneNumber + Remove-CsInboundBlockedNumberPattern + Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove-CsMainlineAttendantQuestionAnswerFlow + Remove-CsOnlineApplicationInstanceAssociation + Remove-CsOnlineAudioConferencingRoutingPolicy + Remove-CsOnlineAudioFile + Remove-CsOnlineDialInConferencingTenantSettings + Remove-CsOnlineLisCivicAddress + Remove-CsOnlineLisLocation + Remove-CsOnlineLisPort + Remove-CsOnlineLisSubnet + Remove-CsOnlineLisSwitch + Remove-CsOnlineLisWirelessAccessPoint + Remove-CsOnlinePSTNGateway + Remove-CsOnlineSchedule + Remove-CsOnlineTelephoneNumber + Remove-CsOnlineVoiceRoute + Remove-CsOnlineVoiceRoutingPolicy + Remove-CsPhoneNumberAssignment + Remove-CsPhoneNumberTag + Remove-CsTeamsAudioConferencingPolicy + Remove-CsTeamsCallParkPolicy + Remove-CsTeamsCortanaPolicy + Remove-CsTeamsEmergencyCallRoutingPolicy + Remove-CsTeamsEnhancedEncryptionPolicy + Remove-CsTeamsIPPhonePolicy + Remove-CsTeamsMeetingBroadcastPolicy + Remove-CsTeamsMobilityPolicy + Remove-CsTeamsNetworkRoamingPolicy + Remove-CsTeamsRoomVideoTeleConferencingPolicy + Remove-CsTeamsShiftsConnection + Remove-CsTeamsShiftsConnectionInstance + Remove-CsTeamsShiftsConnectionTeamMap + Remove-CsTeamsShiftsScheduleRecord + Remove-CsTeamsSurvivableBranchAppliance + Remove-CsTeamsSurvivableBranchAppliancePolicy + Remove-CsTeamsTargetingPolicy + Remove-CsTeamsTranslationRule + Remove-CsTeamsUnassignedNumberTreatment + Remove-CsTeamsVdiPolicy + Remove-CsTeamsWorkLoadPolicy + Remove-CsTeamTemplate + Remove-CsTenantDialPlan + Remove-CsTenantNetworkRegion + Remove-CsTenantNetworkSite + Remove-CsTenantNetworkSubnet + Remove-CsTenantTrustedIPAddress + Remove-CsUserCallingDelegate + Remove-CsUserLicenseGracePeriod + Remove-CsVideoInteropServiceProvider + Remove-CsComplianceRecordingForCallQueueTemplate + Remove-CsTagsTemplate + Remove-CsSharedCallQueueHistoryTemplate + Set-CsApplicationAccessPolicy + Set-CsApplicationMeetingConfiguration + Set-CsAutoAttendant + Set-CsCallingLineIdentity + Set-CsCallQueue + Set-CsInboundBlockedNumberPattern + Set-CsInboundExemptNumberPattern + Set-CsMainlineAttendantAppointmentBookingFlow + Set-CsMainlineAttendantQuestionAnswerFlow + Set-CsOnlineApplicationInstance + Set-CsOnlineAudioConferencingRoutingPolicy + Set-CsOnlineDialInConferencingBridge + Set-CsOnlineDialInConferencingServiceNumber + Set-CsOnlineDialInConferencingTenantSettings + Set-CsOnlineDialInConferencingUser + Set-CsOnlineDialInConferencingUserDefaultNumber + Set-CsOnlineEnhancedEmergencyServiceDisclaimer + Set-CsOnlineLisCivicAddress + Set-CsOnlineLisLocation + Set-CsOnlineLisPort + Set-CsOnlineLisSubnet + Set-CsOnlineLisSwitch + Set-CsOnlineLisWirelessAccessPoint + Set-CsOnlinePSTNGateway + Set-CsOnlinePstnUsage + Set-CsOnlineSchedule + Set-CsOnlineVoiceApplicationInstance + Set-CsOnlineVoicemailUserSettings + Set-CsOnlineVoiceRoute + Set-CsOnlineVoiceRoutingPolicy + Set-CsOnlineVoiceUser + Set-CsPhoneNumberAssignment + Set-CsPhoneNumberPolicyAssignment + Set-CsPhoneNumberTag + Set-CsTeamsAudioConferencingPolicy + Set-CsTeamsCallParkPolicy + Set-CsTeamsCortanaPolicy + Set-CsTeamsEmergencyCallRoutingPolicy + Set-CsTeamsEnhancedEncryptionPolicy + Set-CsTeamsGuestCallingConfiguration + Set-CsTeamsGuestMeetingConfiguration + Set-CsTeamsGuestMessagingConfiguration + Set-CsTeamsIPPhonePolicy + Set-CsTeamsMeetingBroadcastConfiguration + Set-CsTeamsMeetingBroadcastPolicy + Set-CsTeamsMigrationConfiguration + Set-CsTeamsMobilityPolicy + Set-CsTeamsNetworkRoamingPolicy + Set-CsTeamsRoomVideoTeleConferencingPolicy + Set-CsTeamsSettingsCustomApp + Set-CsTeamsShiftsAppPolicy + Set-CsTeamsShiftsConnection + Set-CsTeamsShiftsConnectionInstance + Set-CsTeamsSurvivableBranchAppliance + Set-CsTeamsSurvivableBranchAppliancePolicy + Set-CsTeamsTargetingPolicy + Set-CsTeamsTranslationRule + Set-CsTeamsUnassignedNumberTreatment + Set-CsTeamsVdiPolicy + Set-CsTeamsWorkLoadPolicy + Set-CsTenantBlockedCallingNumbers + Set-CsTenantDialPlan + Set-CsTenantFederationConfiguration + Set-CsTenantMigrationConfiguration + Set-CsTenantNetworkRegion + Set-CsTenantNetworkSite + Set-CsTenantNetworkSubnet + Set-CsTenantTrustedIPAddress + Set-CsUser + Set-CsUserCallingDelegate + Set-CsUserCallingSettings + Set-CsVideoInteropServiceProvider + Set-CsComplianceRecordingForCallQueueTemplate + Set-CsTagsTemplate + Set-CsSharedCallQueueHistoryTemplate + Start-CsExMeetingMigration + Sync-CsOnlineApplicationInstance + Test-CsEffectiveTenantDialPlan + Test-CsInboundBlockedNumberPattern + Test-CsTeamsShiftsConnectionValidate + Test-CsTeamsTranslationRule + Test-CsTeamsUnassignedNumberTreatment + Test-CsVoiceNormalizationRule + Unregister-CsOnlineDialInConferencingServiceNumber + Update-CsAutoAttendant + Update-CsCustomPolicyPackage + Update-CsPhoneNumberTag + Update-CsTeamsShiftsConnection + Update-CsTeamsShiftsConnectionInstance + Update-CsTeamTemplate + New-CsBatchTeamsDeployment + Get-CsBatchTeamsDeploymentStatus + Get-CsPersonalAttendantSettings + Set-CsPersonalAttendantSettings + Set-CsOCEContext + Clear-CsOCEContext + Get-CsRegionContext + Set-CsRegionContext + Clear-CsRegionContext + Get-CsMeetingMigrationTransactionHistory + Get-CsMasVersionedSchemaData + Get-CsMasObjectChangelog + Get-CsBusinessVoiceDirectoryDiagnosticData + Get-CsCloudTenant + Get-CsCloudUser + Get-CsHostingProvider + Set-CsTenantUserBackfill + Invoke-CsCustomHandlerNgtprov + Invoke-CsCustomHandlerCallBackNgtprov + New-CsSdgDeviceTaggingRequest + Get-CsMoveTenantServiceInstanceTaskStatus + Move-CsTenantServiceInstance + Move-CsTenantCrossRegion + Invoke-CsDirectObjectSync + New-CsSDGDeviceTransferRequest + Get-CsAadTenant + Get-CsAadUser + Clear-CsCacheOperation + Move-CsAvsTenantPartition + Invoke-CsMsodsSync + Get-CsUssUserSettings + Set-CsUssUserSettings + Invoke-CsRehomeuser + Set-CsNotifyCache + + + + + RoleCapability + + + + + + + DscResource + + + + Command + + + + Add-TeamChannelUser + Add-TeamUser + Connect-MicrosoftTeams + Disconnect-MicrosoftTeams + Set-TeamsEnvironmentConfig + Clear-TeamsEnvironmentConfig + Get-AssociatedTeam + Get-MultiGeoRegion + Get-Operation + Get-SharedWithTeam + Get-SharedWithTeamUser + Get-Team + Get-TeamAllChannel + Get-TeamChannel + Get-TeamChannelUser + Get-TeamIncomingChannel + Get-TeamsApp + Get-TeamsArtifacts + Get-TeamUser + Get-M365TeamsApp + Get-AllM365TeamsApps + Get-M365UnifiedTenantSettings + Get-M365UnifiedCustomPendingApps + Get-CsTeamsAcsFederationConfiguration + Get-CsTeamsMessagingPolicy + Get-CsTeamsMeetingPolicy + Get-CsOnlineVoicemailPolicy + Get-CsOnlineVoicemailValidationConfiguration + Get-CsTeamsAIPolicy + Get-CsTeamsFeedbackPolicy + Get-CsTeamsUpdateManagementPolicy + Get-CsTeamsChannelsPolicy + Get-CsTeamsMeetingBrandingPolicy + Get-CsTeamsEmergencyCallingPolicy + Get-CsTeamsCallHoldPolicy + Get-CsTeamsMessagingConfiguration + Get-CsTeamsVoiceApplicationsPolicy + Get-CsTeamsEventsPolicy + Get-CsTeamsExternalAccessConfiguration + Get-CsTeamsFilesPolicy + Get-CsTeamsCallingPolicy + Get-CsTeamsClientConfiguration + Get-CsExternalAccessPolicy + Get-CsTeamsAppPermissionPolicy + Get-CsTeamsAppSetupPolicy + Get-CsTeamsFirstPartyMeetingTemplateConfiguration + Get-CsTeamsMeetingTemplatePermissionPolicy + Get-CsLocationPolicy + Get-CsTeamsShiftsPolicy + Get-CsTenantNetworkSite + Get-CsTeamsCarrierEmergencyCallRoutingPolicy + Get-CsTeamsMeetingTemplateConfiguration + Get-CsTeamsVirtualAppointmentsPolicy + Get-CsTeamsSharedCallingRoutingPolicy + Get-CsTeamsTemplatePermissionPolicy + Get-CsTeamsComplianceRecordingPolicy + Get-CsTeamsComplianceRecordingApplication + Get-CsTeamsEducationAssignmentsAppPolicy + Get-CsTeamsUpgradeConfiguration + Get-CsTeamsAudioConferencingCustomPromptsConfiguration + Get-CsTeamsSipDevicesConfiguration + Get-CsTeamsCustomBannerText + Get-CsTeamsVdiPolicy + Get-CsTeamsMediaConnectivityPolicy + Get-CsTeamsMeetingConfiguration + Get-CsTeamsWorkLocationDetectionPolicy + Get-CsTeamsRecordingRollOutPolicy + Get-CsTeamsRemoteLogCollectionConfiguration + Get-CsTeamsRemoteLogCollectionDevice + Get-CsTeamsEducationConfiguration + Get-CsTeamsBYODAndDesksPolicy + Get-CsTeamsNotificationAndFeedsPolicy + Get-CsTeamsMultiTenantOrganizationConfiguration + Get-CsTeamsPersonalAttendantPolicy + Get-CsPrivacyConfiguration + Grant-CsTeamsAIPolicy + Grant-CsTeamsMeetingBrandingPolicy + Grant-CsExternalAccessPolicy + Grant-CsTeamsCallingPolicy + Grant-CsTeamsAppPermissionPolicy + Grant-CsTeamsAppSetupPolicy + Grant-CsTeamsEventsPolicy + Grant-CsTeamsFilesPolicy + Grant-CsTeamsMediaConnectivityPolicy + Grant-CsTeamsMeetingTemplatePermissionPolicy + Grant-CsTeamsCarrierEmergencyCallRoutingPolicy + Grant-CsTeamsVirtualAppointmentsPolicy + Grant-CsTeamsSharedCallingRoutingPolicy + Grant-CsTeamsShiftsPolicy + Grant-CsTeamsRecordingRollOutPolicy + Grant-CsTeamsVdiPolicy + Grant-CsTeamsWorkLocationDetectionPolicy + Grant-CsTeamsBYODAndDesksPolicy + Grant-CsTeamsPersonalAttendantPolicy + New-Team + New-TeamChannel + New-TeamsApp + New-CsTeamsAIPolicy + New-CsTeamsMessagingPolicy + New-CsTeamsMeetingPolicy + New-CsOnlineVoicemailPolicy + New-CsTeamsFeedbackPolicy + New-CsTeamsUpdateManagementPolicy + New-CsTeamsChannelsPolicy + New-CsTeamsFilesPolicy + New-CsTeamsMediaConnectivityPolicy + New-CsTeamsMeetingBrandingTheme + New-CsTeamsMeetingBackgroundImage + New-CsTeamsNdiAssuranceSlate + New-CsTeamsMeetingBrandingPolicy + New-CsTeamsEmergencyCallingPolicy + New-CsTeamsEmergencyCallingExtendedNotification + New-CsTeamsCallHoldPolicy + New-CsTeamsVoiceApplicationsPolicy + New-CsTeamsEventsPolicy + New-CsTeamsCallingPolicy + New-CsExternalAccessPolicy + New-CsTeamsAppPermissionPolicy + New-CsTeamsAppSetupPolicy + New-CsTeamsMeetingTemplatePermissionPolicy + New-CsLocationPolicy + New-CsTeamsCarrierEmergencyCallRoutingPolicy + New-CsTeamsHiddenMeetingTemplate + New-CsTeamsVirtualAppointmentsPolicy + New-CsTeamsSharedCallingRoutingPolicy + New-CsTeamsHiddenTemplate + New-CsTeamsTemplatePermissionPolicy + New-CsTeamsComplianceRecordingPolicy + New-CsTeamsComplianceRecordingApplication + New-CsTeamsComplianceRecordingPairedApplication + New-CsTeamsWorkLocationDetectionPolicy + New-CsTeamsRecordingRollOutPolicy + New-CsTeamsRemoteLogCollectionDevice + New-CsCustomPrompt + New-CsCustomPromptPackage + New-CsTeamsShiftsPolicy + New-CsTeamsCustomBannerText + New-CsTeamsVdiPolicy + New-CsTeamsBYODAndDesksPolicy + New-CsTeamsPersonalAttendantPolicy + Remove-SharedWithTeam + Remove-Team + Remove-TeamChannel + Remove-TeamChannelUser + Remove-TeamsApp + Remove-TeamUser + Remove-CsTeamsAIPolicy + Remove-CsTeamsMessagingPolicy + Remove-CsTeamsMeetingPolicy + Remove-CsOnlineVoicemailPolicy + Remove-CsTeamsFeedbackPolicy + Remove-CsTeamsFilesPolicy + Remove-CsTeamsUpdateManagementPolicy + Remove-CsTeamsChannelsPolicy + Remove-CsTeamsMediaConnectivityPolicy + Remove-CsTeamsMeetingBrandingPolicy + Remove-CsTeamsEmergencyCallingPolicy + Remove-CsTeamsCallHoldPolicy + Remove-CsTeamsVoiceApplicationsPolicy + Remove-CsTeamsEventsPolicy + Remove-CsTeamsCallingPolicy + Remove-CsExternalAccessPolicy + Remove-CsTeamsAppPermissionPolicy + Remove-CsTeamsAppSetupPolicy + Remove-CsTeamsMeetingTemplatePermissionPolicy + Remove-CsLocationPolicy + Remove-CsTeamsCarrierEmergencyCallRoutingPolicy + Remove-CsTeamsVirtualAppointmentsPolicy + Remove-CsTeamsSharedCallingRoutingPolicy + Remove-CsTeamsTemplatePermissionPolicy + Remove-CsTeamsComplianceRecordingPolicy + Remove-CsTeamsComplianceRecordingApplication + Remove-CsTeamsShiftsPolicy + Remove-CsTeamsCustomBannerText + Remove-CsTeamsVdiPolicy + Remove-CsTeamsWorkLocationDetectionPolicy + Remove-CsTeamsRecordingRollOutPolicy + Remove-CsTeamsRemoteLogCollectionDevice + Remove-CsTeamsBYODAndDesksPolicy + Remove-CsTeamsNotificationAndFeedsPolicy + Remove-CsTeamsPersonalAttendantPolicy + Set-Team + Set-TeamArchivedState + Set-TeamChannel + Set-TeamPicture + Set-TeamsApp + Set-CsTeamsAcsFederationConfiguration + Set-CsTeamsAIPolicy + Set-CsTeamsMessagingPolicy + Set-CsTeamsMeetingPolicy + Set-CsOnlineVoicemailPolicy + Set-CsTeamsFilesPolicy + Set-CsOnlineVoicemailValidationConfiguration + Set-CsTeamsFeedbackPolicy + Set-CsTeamsUpdateManagementPolicy + Set-CsTeamsChannelsPolicy + Set-CsTeamsMediaConnectivityPolicy + Set-CsTeamsMeetingBrandingPolicy + Set-CsTeamsEmergencyCallingPolicy + Set-CsTeamsEducationConfiguration + Set-CsTeamsCallHoldPolicy + Set-CsTeamsMessagingConfiguration + Set-CsTeamsVoiceApplicationsPolicy + Set-CsTeamsEventsPolicy + Set-CsTeamsExternalAccessConfiguration + Set-CsTeamsCallingPolicy + Set-CsTeamsClientConfiguration + Set-CsExternalAccessPolicy + Set-CsTeamsAppPermissionPolicy + Set-CsTeamsAppSetupPolicy + Set-CsTeamsFirstPartyMeetingTemplateConfiguration + Set-CsTeamsMeetingTemplatePermissionPolicy + Set-CsTeamsMultiTenantOrganizationConfiguration + Set-CsLocationPolicy + Set-CsTeamsCarrierEmergencyCallRoutingPolicy + Set-CsTeamsVirtualAppointmentsPolicy + Set-CsTeamsSharedCallingRoutingPolicy + Set-CsTeamsTemplatePermissionPolicy + Set-CsTeamsComplianceRecordingPolicy + Set-CsTeamsEducationAssignmentsAppPolicy + Set-CsTeamsComplianceRecordingApplication + Set-CsTeamsShiftsPolicy + Set-CsTeamsUpgradeConfiguration + Set-CsTeamsAudioConferencingCustomPromptsConfiguration + Set-CsTeamsSipDevicesConfiguration + Set-CsTeamsMeetingConfiguration + Set-CsTeamsVdiPolicy + Set-CsTeamsWorkLocationDetectionPolicy + Set-CsTeamsRemoteLogCollectionDevice + Set-CsTeamsRecordingRollOutPolicy + Set-CsTeamsCustomBannerText + Set-CsTeamsBYODAndDesksPolicy + Set-CsTeamsNotificationAndFeedsPolicy + Set-CsTeamsPersonalAttendantPolicy + Set-CsPrivacyConfiguration + Update-M365TeamsApp + Update-M365UnifiedTenantSettings + Update-M365UnifiedCustomPendingApp + Get-CsBatchOperationDefinition + Get-CsBatchOperationStatus + Get-CsConfiguration + Get-CsGroupPolicyAssignments + Get-CsLoginInfo + Get-CsUserProvHistory + Get-GPAGroupMembers + Get-GPAUserMembership + Get-NgtProvInstanceFailOverStatus + Get-CsTeamsTenantAbuseConfiguration + Invoke-CsDirectoryObjectSync + Invoke-CsGenericNgtProvCommand + Invoke-CsRefreshGroupUsers + Invoke-CsReprocessBatchOperation + Invoke-CsReprocessGroupPolicyAssignment + Move-NgtProvInstance + New-CsConfiguration + Remove-CsConfiguration + Set-CsConfiguration + Set-CsTeamsTenantAbuseConfiguration + Set-CsPublishPolicySchemaDefaults + Get-TeamTargetingHierarchyStatus + Remove-TeamTargetingHierarchy + Set-TeamTargetingHierarchy + Clear-CsOnlineTelephoneNumberOrder + Complete-CsOnlineTelephoneNumberOrder + Disable-CsOnlineSipDomain + Enable-CsOnlineSipDomain + Export-CsAcquiredPhoneNumber + Export-CsAutoAttendantHolidays + Export-CsOnlineAudioFile + Find-CsGroup + Find-CsOnlineApplicationInstance + Get-CsApplicationAccessPolicy + Get-CsApplicationMeetingConfiguration + Get-CsAutoAttendant + Get-CsAutoAttendantHolidays + Get-CsAutoAttendantStatus + Get-CsAutoAttendantSupportedLanguage + Get-CsAutoAttendantSupportedTimeZone + Get-CsAutoAttendantTenantInformation + Get-CsBatchPolicyAssignmentOperation + Get-CsCallingLineIdentity + Get-CsCallQueue + Get-CsCloudCallDataConnection + Get-CsEffectiveTenantDialPlan + Get-CsExportAcquiredPhoneNumberStatus + Get-CsGroupPolicyAssignment + Get-CsHybridTelephoneNumber + Get-CsInboundBlockedNumberPattern + Get-CsInboundExemptNumberPattern + Get-CsMainlineAttendantAppointmentBookingFlow + Get-CsMainlineAttendantFlow + Get-CsMainlineAttendantQuestionAnswerFlow + Get-CsMeetingMigrationStatus + Get-CsOnlineApplicationInstance + Get-CsOnlineApplicationInstanceAssociation + Get-CsOnlineApplicationInstanceAssociationStatus + Get-CsOnlineAudioConferencingRoutingPolicy + Get-CsOnlineAudioFile + Get-CsOnlineDialInConferencingBridge + Get-CsOnlineDialInConferencingLanguagesSupported + Get-CsOnlineDialinConferencingPolicy + Get-CsOnlineDialInConferencingServiceNumber + Get-CsOnlineDialinConferencingTenantConfiguration + Get-CsOnlineDialInConferencingTenantSettings + Get-CsOnlineDialInConferencingUser + Get-CsOnlineDialOutPolicy + Get-CsOnlineDirectoryTenant + Get-CsOnlineEnhancedEmergencyServiceDisclaimer + Get-CsOnlineLisCivicAddress + Get-CsOnlineLisLocation + Get-CsOnlineLisPort + Get-CsOnlineLisSubnet + Get-CsOnlineLisSwitch + Get-CsOnlineLisWirelessAccessPoint + Get-CsOnlinePSTNGateway + Get-CsOnlinePstnUsage + Get-CsOnlineSchedule + Get-CsOnlineSipDomain + Get-CsOnlineTelephoneNumber + Get-CsOnlineTelephoneNumberCountry + Get-CsOnlineTelephoneNumberOrder + Get-CsOnlineTelephoneNumberType + Get-CsOnlineUser + Get-CsOnlineVoicemailUserSettings + Get-CsOnlineVoiceRoute + Get-CsOnlineVoiceRoutingPolicy + Get-CsOnlineVoiceUser + Get-CsPhoneNumberAssignment + Get-CsPhoneNumberPolicyAssignment + Get-CsPhoneNumberTag + Get-CsPolicyPackage + Get-CsSdgBulkSignInRequestStatus + Get-CsSDGBulkSignInRequestsSummary + Get-CsTeamsAudioConferencingPolicy + Get-CsTeamsCallParkPolicy + Get-CsTeamsCortanaPolicy + Get-CsTeamsEmergencyCallRoutingPolicy + Get-CsTeamsEnhancedEncryptionPolicy + Get-CsTeamsGuestCallingConfiguration + Get-CsTeamsGuestMeetingConfiguration + Get-CsTeamsGuestMessagingConfiguration + Get-CsTeamsIPPhonePolicy + Get-CsTeamsMediaLoggingPolicy + Get-CsTeamsMeetingBroadcastConfiguration + Get-CsTeamsMeetingBroadcastPolicy + Get-CsTeamsMigrationConfiguration + Get-CsTeamsMobilityPolicy + Get-CsTeamsNetworkRoamingPolicy + Get-CsTeamsRoomVideoTeleConferencingPolicy + Get-CsTeamsSettingsCustomApp + Get-CsTeamsShiftsAppPolicy + Get-CsTeamsShiftsConnectionConnector + Get-CsTeamsShiftsConnectionErrorReport + Get-CsTeamsShiftsConnection + Get-CsTeamsShiftsConnectionInstance + Get-CsTeamsShiftsConnectionOperation + Get-CsTeamsShiftsConnectionSyncResult + Get-CsTeamsShiftsConnectionTeamMap + Get-CsTeamsShiftsConnectionWfmTeam + Get-CsTeamsShiftsConnectionWfmUser + Get-CsTeamsSurvivableBranchAppliance + Get-CsTeamsSurvivableBranchAppliancePolicy + Get-CsTeamsTargetingPolicy + Get-CsTeamsTranslationRule + Get-CsTeamsUnassignedNumberTreatment + Get-CsTeamsUpgradePolicy + Get-CsTeamsVdiPolicy + Get-CsTeamsVideoInteropServicePolicy + Get-CsTeamsWorkLoadPolicy + Get-CsTeamTemplate + Get-CsTeamTemplateList + Get-CsTenant + Get-CsTenantBlockedCallingNumbers + Get-CsTenantDialPlan + Get-CsTenantFederationConfiguration + Get-CsTenantLicensingConfiguration + Get-CsTenantMigrationConfiguration + Get-CsTenantNetworkConfiguration + Get-CsTenantNetworkRegion + Get-CsTenantNetworkSubnet + Get-CsTenantTrustedIPAddress + Get-CsUserCallingSettings + Get-CsUserPolicyAssignment + Get-CsUserPolicyPackage + Get-CsUserPolicyPackageRecommendation + Get-CsVideoInteropServiceProvider + Grant-CsApplicationAccessPolicy + Get-CsComplianceRecordingForCallQueueTemplate + Get-CsSharedCallQueueHistoryTemplate + Get-CsTagsTemplate + Grant-CsCallingLineIdentity + Grant-CsDialoutPolicy + Grant-CsGroupPolicyPackageAssignment + Grant-CsOnlineAudioConferencingRoutingPolicy + Grant-CsOnlineVoicemailPolicy + Grant-CsOnlineVoiceRoutingPolicy + Grant-CsTeamsAudioConferencingPolicy + Grant-CsTeamsCallHoldPolicy + Grant-CsTeamsCallParkPolicy + Grant-CsTeamsChannelsPolicy + Grant-CsTeamsCortanaPolicy + Grant-CsTeamsEmergencyCallingPolicy + Grant-CsTeamsEmergencyCallRoutingPolicy + Grant-CsTeamsEnhancedEncryptionPolicy + Grant-CsTeamsFeedbackPolicy + Grant-CsTeamsIPPhonePolicy + Grant-CsTeamsMediaLoggingPolicy + Grant-CsTeamsMeetingBroadcastPolicy + Grant-CsTeamsMeetingPolicy + Grant-CsTeamsMessagingPolicy + Grant-CsTeamsMobilityPolicy + Grant-CsTeamsRoomVideoTeleConferencingPolicy + Grant-CsTeamsSurvivableBranchAppliancePolicy + Grant-CsTeamsUpdateManagementPolicy + Grant-CsTeamsUpgradePolicy + Grant-CsTeamsVideoInteropServicePolicy + Grant-CsTeamsVoiceApplicationsPolicy + Grant-CsTeamsWorkLoadPolicy + Grant-CsTenantDialPlan + Grant-CsUserPolicyPackage + Grant-CsTeamsComplianceRecordingPolicy + Import-CsAutoAttendantHolidays + Import-CsOnlineAudioFile + Invoke-CsInternalPSTelemetry + Move-CsInternalHelper + New-CsApplicationAccessPolicy + New-CsAutoAttendant + New-CsAutoAttendantCallableEntity + New-CsAutoAttendantCallFlow + New-CsAutoAttendantCallHandlingAssociation + New-CsAutoAttendantDialScope + New-CsAutoAttendantMenu + New-CsAutoAttendantMenuOption + New-CsAutoAttendantPrompt + New-CsBatchPolicyAssignmentOperation + New-CsBatchPolicyPackageAssignmentOperation + New-CsCallingLineIdentity + New-CsCallQueue + New-CsCloudCallDataConnection + New-CsCustomPolicyPackage + New-CsEdgeAllowAllKnownDomains + New-CsEdgeAllowList + New-CsEdgeDomainPattern + New-CsGroupPolicyAssignment + New-CsHybridTelephoneNumber + New-CsInboundBlockedNumberPattern + New-CsInboundExemptNumberPattern + New-CsMainlineAttendantAppointmentBookingFlow + New-CsMainlineAttendantQuestionAnswerFlow + New-CsOnlineApplicationInstance + New-CsOnlineApplicationInstanceAssociation + New-CsOnlineAudioConferencingRoutingPolicy + New-CsOnlineDateTimeRange + New-CsOnlineLisCivicAddress + New-CsOnlineLisLocation + New-CsOnlinePSTNGateway + New-CsOnlineSchedule + New-CsOnlineTelephoneNumberOrder + New-CsOnlineTimeRange + New-CsOnlineVoiceRoute + New-CsOnlineVoiceRoutingPolicy + New-CsSdgBulkSignInRequest + New-CsTeamsAudioConferencingPolicy + New-CsTeamsCallParkPolicy + New-CsTeamsCortanaPolicy + New-CsTeamsEmergencyCallRoutingPolicy + New-CsTeamsEmergencyNumber + New-CsTeamsEnhancedEncryptionPolicy + New-CsTeamsIPPhonePolicy + New-CsTeamsMeetingBroadcastPolicy + New-CsTeamsMobilityPolicy + New-CsTeamsNetworkRoamingPolicy + New-CsTeamsRoomVideoTeleConferencingPolicy + New-CsTeamsShiftsConnectionBatchTeamMap + New-CsTeamsShiftsConnection + New-CsTeamsShiftsConnectionInstance + New-CsTeamsSurvivableBranchAppliance + New-CsTeamsSurvivableBranchAppliancePolicy + New-CsTeamsTranslationRule + New-CsTeamsUnassignedNumberTreatment + New-CsTeamsVdiPolicy + New-CsTeamsWorkLoadPolicy + New-CsTeamTemplate + New-CsTenantDialPlan + New-CsTenantNetworkRegion + New-CsTenantNetworkSite + New-CsTenantNetworkSubnet + New-CsTenantTrustedIPAddress + New-CsUserCallingDelegate + New-CsVideoInteropServiceProvider + New-CsVoiceNormalizationRule + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder + New-CsOnlineTelephoneNumberReleaseOrder + New-CsComplianceRecordingForCallQueueTemplate + New-CsTagsTemplate + New-CsTag + New-CsSharedCallQueueHistoryTemplate + Register-CsOnlineDialInConferencingServiceNumber + Remove-CsApplicationAccessPolicy + Remove-CsAutoAttendant + Remove-CsCallingLineIdentity + Remove-CsCallQueue + Remove-CsCustomPolicyPackage + Remove-CsGroupPolicyAssignment + Remove-CsHybridTelephoneNumber + Remove-CsInboundBlockedNumberPattern + Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove-CsMainlineAttendantQuestionAnswerFlow + Remove-CsOnlineApplicationInstanceAssociation + Remove-CsOnlineAudioConferencingRoutingPolicy + Remove-CsOnlineAudioFile + Remove-CsOnlineDialInConferencingTenantSettings + Remove-CsOnlineLisCivicAddress + Remove-CsOnlineLisLocation + Remove-CsOnlineLisPort + Remove-CsOnlineLisSubnet + Remove-CsOnlineLisSwitch + Remove-CsOnlineLisWirelessAccessPoint + Remove-CsOnlinePSTNGateway + Remove-CsOnlineSchedule + Remove-CsOnlineTelephoneNumber + Remove-CsOnlineVoiceRoute + Remove-CsOnlineVoiceRoutingPolicy + Remove-CsPhoneNumberAssignment + Remove-CsPhoneNumberTag + Remove-CsTeamsAudioConferencingPolicy + Remove-CsTeamsCallParkPolicy + Remove-CsTeamsCortanaPolicy + Remove-CsTeamsEmergencyCallRoutingPolicy + Remove-CsTeamsEnhancedEncryptionPolicy + Remove-CsTeamsIPPhonePolicy + Remove-CsTeamsMeetingBroadcastPolicy + Remove-CsTeamsMobilityPolicy + Remove-CsTeamsNetworkRoamingPolicy + Remove-CsTeamsRoomVideoTeleConferencingPolicy + Remove-CsTeamsShiftsConnection + Remove-CsTeamsShiftsConnectionInstance + Remove-CsTeamsShiftsConnectionTeamMap + Remove-CsTeamsShiftsScheduleRecord + Remove-CsTeamsSurvivableBranchAppliance + Remove-CsTeamsSurvivableBranchAppliancePolicy + Remove-CsTeamsTargetingPolicy + Remove-CsTeamsTranslationRule + Remove-CsTeamsUnassignedNumberTreatment + Remove-CsTeamsVdiPolicy + Remove-CsTeamsWorkLoadPolicy + Remove-CsTeamTemplate + Remove-CsTenantDialPlan + Remove-CsTenantNetworkRegion + Remove-CsTenantNetworkSite + Remove-CsTenantNetworkSubnet + Remove-CsTenantTrustedIPAddress + Remove-CsUserCallingDelegate + Remove-CsUserLicenseGracePeriod + Remove-CsVideoInteropServiceProvider + Remove-CsComplianceRecordingForCallQueueTemplate + Remove-CsTagsTemplate + Remove-CsSharedCallQueueHistoryTemplate + Set-CsApplicationAccessPolicy + Set-CsApplicationMeetingConfiguration + Set-CsAutoAttendant + Set-CsCallingLineIdentity + Set-CsCallQueue + Set-CsInboundBlockedNumberPattern + Set-CsInboundExemptNumberPattern + Set-CsMainlineAttendantAppointmentBookingFlow + Set-CsMainlineAttendantQuestionAnswerFlow + Set-CsOnlineApplicationInstance + Set-CsOnlineAudioConferencingRoutingPolicy + Set-CsOnlineDialInConferencingBridge + Set-CsOnlineDialInConferencingServiceNumber + Set-CsOnlineDialInConferencingTenantSettings + Set-CsOnlineDialInConferencingUser + Set-CsOnlineDialInConferencingUserDefaultNumber + Set-CsOnlineEnhancedEmergencyServiceDisclaimer + Set-CsOnlineLisCivicAddress + Set-CsOnlineLisLocation + Set-CsOnlineLisPort + Set-CsOnlineLisSubnet + Set-CsOnlineLisSwitch + Set-CsOnlineLisWirelessAccessPoint + Set-CsOnlinePSTNGateway + Set-CsOnlinePstnUsage + Set-CsOnlineSchedule + Set-CsOnlineVoiceApplicationInstance + Set-CsOnlineVoicemailUserSettings + Set-CsOnlineVoiceRoute + Set-CsOnlineVoiceRoutingPolicy + Set-CsOnlineVoiceUser + Set-CsPhoneNumberAssignment + Set-CsPhoneNumberPolicyAssignment + Set-CsPhoneNumberTag + Set-CsTeamsAudioConferencingPolicy + Set-CsTeamsCallParkPolicy + Set-CsTeamsCortanaPolicy + Set-CsTeamsEmergencyCallRoutingPolicy + Set-CsTeamsEnhancedEncryptionPolicy + Set-CsTeamsGuestCallingConfiguration + Set-CsTeamsGuestMeetingConfiguration + Set-CsTeamsGuestMessagingConfiguration + Set-CsTeamsIPPhonePolicy + Set-CsTeamsMeetingBroadcastConfiguration + Set-CsTeamsMeetingBroadcastPolicy + Set-CsTeamsMigrationConfiguration + Set-CsTeamsMobilityPolicy + Set-CsTeamsNetworkRoamingPolicy + Set-CsTeamsRoomVideoTeleConferencingPolicy + Set-CsTeamsSettingsCustomApp + Set-CsTeamsShiftsAppPolicy + Set-CsTeamsShiftsConnection + Set-CsTeamsShiftsConnectionInstance + Set-CsTeamsSurvivableBranchAppliance + Set-CsTeamsSurvivableBranchAppliancePolicy + Set-CsTeamsTargetingPolicy + Set-CsTeamsTranslationRule + Set-CsTeamsUnassignedNumberTreatment + Set-CsTeamsVdiPolicy + Set-CsTeamsWorkLoadPolicy + Set-CsTenantBlockedCallingNumbers + Set-CsTenantDialPlan + Set-CsTenantFederationConfiguration + Set-CsTenantMigrationConfiguration + Set-CsTenantNetworkRegion + Set-CsTenantNetworkSite + Set-CsTenantNetworkSubnet + Set-CsTenantTrustedIPAddress + Set-CsUser + Set-CsUserCallingDelegate + Set-CsUserCallingSettings + Set-CsVideoInteropServiceProvider + Set-CsComplianceRecordingForCallQueueTemplate + Set-CsTagsTemplate + Set-CsSharedCallQueueHistoryTemplate + Start-CsExMeetingMigration + Sync-CsOnlineApplicationInstance + Test-CsEffectiveTenantDialPlan + Test-CsInboundBlockedNumberPattern + Test-CsTeamsShiftsConnectionValidate + Test-CsTeamsTranslationRule + Test-CsTeamsUnassignedNumberTreatment + Test-CsVoiceNormalizationRule + Unregister-CsOnlineDialInConferencingServiceNumber + Update-CsAutoAttendant + Update-CsCustomPolicyPackage + Update-CsPhoneNumberTag + Update-CsTeamsShiftsConnection + Update-CsTeamsShiftsConnectionInstance + Update-CsTeamTemplate + New-CsBatchTeamsDeployment + Get-CsBatchTeamsDeploymentStatus + Get-CsPersonalAttendantSettings + Set-CsPersonalAttendantSettings + Set-CsOCEContext + Clear-CsOCEContext + Get-CsRegionContext + Set-CsRegionContext + Clear-CsRegionContext + Get-CsMeetingMigrationTransactionHistory + Get-CsMasVersionedSchemaData + Get-CsMasObjectChangelog + Get-CsBusinessVoiceDirectoryDiagnosticData + Get-CsCloudTenant + Get-CsCloudUser + Get-CsHostingProvider + Set-CsTenantUserBackfill + Invoke-CsCustomHandlerNgtprov + Invoke-CsCustomHandlerCallBackNgtprov + New-CsSdgDeviceTaggingRequest + Get-CsMoveTenantServiceInstanceTaskStatus + Move-CsTenantServiceInstance + Move-CsTenantCrossRegion + Invoke-CsDirectObjectSync + New-CsSDGDeviceTransferRequest + Get-CsAadTenant + Get-CsAadUser + Clear-CsCacheOperation + Move-CsAvsTenantPartition + Invoke-CsMsodsSync + Get-CsUssUserSettings + Set-CsUssUserSettings + Invoke-CsRehomeuser + Set-CsNotifyCache + + + + + Cmdlet + + + + Add-TeamChannelUser + Add-TeamUser + Connect-MicrosoftTeams + Disconnect-MicrosoftTeams + Set-TeamsEnvironmentConfig + Clear-TeamsEnvironmentConfig + Get-AssociatedTeam + Get-MultiGeoRegion + Get-Operation + Get-SharedWithTeam + Get-SharedWithTeamUser + Get-Team + Get-TeamAllChannel + Get-TeamChannel + Get-TeamChannelUser + Get-TeamIncomingChannel + Get-TeamsApp + Get-TeamsArtifacts + Get-TeamUser + Get-M365TeamsApp + Get-AllM365TeamsApps + Get-M365UnifiedTenantSettings + Get-M365UnifiedCustomPendingApps + Get-CsTeamsAcsFederationConfiguration + Get-CsTeamsMessagingPolicy + Get-CsTeamsMeetingPolicy + Get-CsOnlineVoicemailPolicy + Get-CsOnlineVoicemailValidationConfiguration + Get-CsTeamsAIPolicy + Get-CsTeamsFeedbackPolicy + Get-CsTeamsUpdateManagementPolicy + Get-CsTeamsChannelsPolicy + Get-CsTeamsMeetingBrandingPolicy + Get-CsTeamsEmergencyCallingPolicy + Get-CsTeamsCallHoldPolicy + Get-CsTeamsMessagingConfiguration + Get-CsTeamsVoiceApplicationsPolicy + Get-CsTeamsEventsPolicy + Get-CsTeamsExternalAccessConfiguration + Get-CsTeamsFilesPolicy + Get-CsTeamsCallingPolicy + Get-CsTeamsClientConfiguration + Get-CsExternalAccessPolicy + Get-CsTeamsAppPermissionPolicy + Get-CsTeamsAppSetupPolicy + Get-CsTeamsFirstPartyMeetingTemplateConfiguration + Get-CsTeamsMeetingTemplatePermissionPolicy + Get-CsLocationPolicy + Get-CsTeamsShiftsPolicy + Get-CsTenantNetworkSite + Get-CsTeamsCarrierEmergencyCallRoutingPolicy + Get-CsTeamsMeetingTemplateConfiguration + Get-CsTeamsVirtualAppointmentsPolicy + Get-CsTeamsSharedCallingRoutingPolicy + Get-CsTeamsTemplatePermissionPolicy + Get-CsTeamsComplianceRecordingPolicy + Get-CsTeamsComplianceRecordingApplication + Get-CsTeamsEducationAssignmentsAppPolicy + Get-CsTeamsUpgradeConfiguration + Get-CsTeamsAudioConferencingCustomPromptsConfiguration + Get-CsTeamsSipDevicesConfiguration + Get-CsTeamsCustomBannerText + Get-CsTeamsVdiPolicy + Get-CsTeamsMediaConnectivityPolicy + Get-CsTeamsMeetingConfiguration + Get-CsTeamsWorkLocationDetectionPolicy + Get-CsTeamsRecordingRollOutPolicy + Get-CsTeamsRemoteLogCollectionConfiguration + Get-CsTeamsRemoteLogCollectionDevice + Get-CsTeamsEducationConfiguration + Get-CsTeamsBYODAndDesksPolicy + Get-CsTeamsNotificationAndFeedsPolicy + Get-CsTeamsMultiTenantOrganizationConfiguration + Get-CsTeamsPersonalAttendantPolicy + Get-CsPrivacyConfiguration + Grant-CsTeamsAIPolicy + Grant-CsTeamsMeetingBrandingPolicy + Grant-CsExternalAccessPolicy + Grant-CsTeamsCallingPolicy + Grant-CsTeamsAppPermissionPolicy + Grant-CsTeamsAppSetupPolicy + Grant-CsTeamsEventsPolicy + Grant-CsTeamsFilesPolicy + Grant-CsTeamsMediaConnectivityPolicy + Grant-CsTeamsMeetingTemplatePermissionPolicy + Grant-CsTeamsCarrierEmergencyCallRoutingPolicy + Grant-CsTeamsVirtualAppointmentsPolicy + Grant-CsTeamsSharedCallingRoutingPolicy + Grant-CsTeamsShiftsPolicy + Grant-CsTeamsRecordingRollOutPolicy + Grant-CsTeamsVdiPolicy + Grant-CsTeamsWorkLocationDetectionPolicy + Grant-CsTeamsBYODAndDesksPolicy + Grant-CsTeamsPersonalAttendantPolicy + New-Team + New-TeamChannel + New-TeamsApp + New-CsTeamsAIPolicy + New-CsTeamsMessagingPolicy + New-CsTeamsMeetingPolicy + New-CsOnlineVoicemailPolicy + New-CsTeamsFeedbackPolicy + New-CsTeamsUpdateManagementPolicy + New-CsTeamsChannelsPolicy + New-CsTeamsFilesPolicy + New-CsTeamsMediaConnectivityPolicy + New-CsTeamsMeetingBrandingTheme + New-CsTeamsMeetingBackgroundImage + New-CsTeamsNdiAssuranceSlate + New-CsTeamsMeetingBrandingPolicy + New-CsTeamsEmergencyCallingPolicy + New-CsTeamsEmergencyCallingExtendedNotification + New-CsTeamsCallHoldPolicy + New-CsTeamsVoiceApplicationsPolicy + New-CsTeamsEventsPolicy + New-CsTeamsCallingPolicy + New-CsExternalAccessPolicy + New-CsTeamsAppPermissionPolicy + New-CsTeamsAppSetupPolicy + New-CsTeamsMeetingTemplatePermissionPolicy + New-CsLocationPolicy + New-CsTeamsCarrierEmergencyCallRoutingPolicy + New-CsTeamsHiddenMeetingTemplate + New-CsTeamsVirtualAppointmentsPolicy + New-CsTeamsSharedCallingRoutingPolicy + New-CsTeamsHiddenTemplate + New-CsTeamsTemplatePermissionPolicy + New-CsTeamsComplianceRecordingPolicy + New-CsTeamsComplianceRecordingApplication + New-CsTeamsComplianceRecordingPairedApplication + New-CsTeamsWorkLocationDetectionPolicy + New-CsTeamsRecordingRollOutPolicy + New-CsTeamsRemoteLogCollectionDevice + New-CsCustomPrompt + New-CsCustomPromptPackage + New-CsTeamsShiftsPolicy + New-CsTeamsCustomBannerText + New-CsTeamsVdiPolicy + New-CsTeamsBYODAndDesksPolicy + New-CsTeamsPersonalAttendantPolicy + Remove-SharedWithTeam + Remove-Team + Remove-TeamChannel + Remove-TeamChannelUser + Remove-TeamsApp + Remove-TeamUser + Remove-CsTeamsAIPolicy + Remove-CsTeamsMessagingPolicy + Remove-CsTeamsMeetingPolicy + Remove-CsOnlineVoicemailPolicy + Remove-CsTeamsFeedbackPolicy + Remove-CsTeamsFilesPolicy + Remove-CsTeamsUpdateManagementPolicy + Remove-CsTeamsChannelsPolicy + Remove-CsTeamsMediaConnectivityPolicy + Remove-CsTeamsMeetingBrandingPolicy + Remove-CsTeamsEmergencyCallingPolicy + Remove-CsTeamsCallHoldPolicy + Remove-CsTeamsVoiceApplicationsPolicy + Remove-CsTeamsEventsPolicy + Remove-CsTeamsCallingPolicy + Remove-CsExternalAccessPolicy + Remove-CsTeamsAppPermissionPolicy + Remove-CsTeamsAppSetupPolicy + Remove-CsTeamsMeetingTemplatePermissionPolicy + Remove-CsLocationPolicy + Remove-CsTeamsCarrierEmergencyCallRoutingPolicy + Remove-CsTeamsVirtualAppointmentsPolicy + Remove-CsTeamsSharedCallingRoutingPolicy + Remove-CsTeamsTemplatePermissionPolicy + Remove-CsTeamsComplianceRecordingPolicy + Remove-CsTeamsComplianceRecordingApplication + Remove-CsTeamsShiftsPolicy + Remove-CsTeamsCustomBannerText + Remove-CsTeamsVdiPolicy + Remove-CsTeamsWorkLocationDetectionPolicy + Remove-CsTeamsRecordingRollOutPolicy + Remove-CsTeamsRemoteLogCollectionDevice + Remove-CsTeamsBYODAndDesksPolicy + Remove-CsTeamsNotificationAndFeedsPolicy + Remove-CsTeamsPersonalAttendantPolicy + Set-Team + Set-TeamArchivedState + Set-TeamChannel + Set-TeamPicture + Set-TeamsApp + Set-CsTeamsAcsFederationConfiguration + Set-CsTeamsAIPolicy + Set-CsTeamsMessagingPolicy + Set-CsTeamsMeetingPolicy + Set-CsOnlineVoicemailPolicy + Set-CsTeamsFilesPolicy + Set-CsOnlineVoicemailValidationConfiguration + Set-CsTeamsFeedbackPolicy + Set-CsTeamsUpdateManagementPolicy + Set-CsTeamsChannelsPolicy + Set-CsTeamsMediaConnectivityPolicy + Set-CsTeamsMeetingBrandingPolicy + Set-CsTeamsEmergencyCallingPolicy + Set-CsTeamsEducationConfiguration + Set-CsTeamsCallHoldPolicy + Set-CsTeamsMessagingConfiguration + Set-CsTeamsVoiceApplicationsPolicy + Set-CsTeamsEventsPolicy + Set-CsTeamsExternalAccessConfiguration + Set-CsTeamsCallingPolicy + Set-CsTeamsClientConfiguration + Set-CsExternalAccessPolicy + Set-CsTeamsAppPermissionPolicy + Set-CsTeamsAppSetupPolicy + Set-CsTeamsFirstPartyMeetingTemplateConfiguration + Set-CsTeamsMeetingTemplatePermissionPolicy + Set-CsTeamsMultiTenantOrganizationConfiguration + Set-CsLocationPolicy + Set-CsTeamsCarrierEmergencyCallRoutingPolicy + Set-CsTeamsVirtualAppointmentsPolicy + Set-CsTeamsSharedCallingRoutingPolicy + Set-CsTeamsTemplatePermissionPolicy + Set-CsTeamsComplianceRecordingPolicy + Set-CsTeamsEducationAssignmentsAppPolicy + Set-CsTeamsComplianceRecordingApplication + Set-CsTeamsShiftsPolicy + Set-CsTeamsUpgradeConfiguration + Set-CsTeamsAudioConferencingCustomPromptsConfiguration + Set-CsTeamsSipDevicesConfiguration + Set-CsTeamsMeetingConfiguration + Set-CsTeamsVdiPolicy + Set-CsTeamsWorkLocationDetectionPolicy + Set-CsTeamsRemoteLogCollectionDevice + Set-CsTeamsRecordingRollOutPolicy + Set-CsTeamsCustomBannerText + Set-CsTeamsBYODAndDesksPolicy + Set-CsTeamsNotificationAndFeedsPolicy + Set-CsTeamsPersonalAttendantPolicy + Set-CsPrivacyConfiguration + Update-M365TeamsApp + Update-M365UnifiedTenantSettings + Update-M365UnifiedCustomPendingApp + Get-CsBatchOperationDefinition + Get-CsBatchOperationStatus + Get-CsConfiguration + Get-CsGroupPolicyAssignments + Get-CsLoginInfo + Get-CsUserProvHistory + Get-GPAGroupMembers + Get-GPAUserMembership + Get-NgtProvInstanceFailOverStatus + Get-CsTeamsTenantAbuseConfiguration + Invoke-CsDirectoryObjectSync + Invoke-CsGenericNgtProvCommand + Invoke-CsRefreshGroupUsers + Invoke-CsReprocessBatchOperation + Invoke-CsReprocessGroupPolicyAssignment + Move-NgtProvInstance + New-CsConfiguration + Remove-CsConfiguration + Set-CsConfiguration + Set-CsTeamsTenantAbuseConfiguration + Set-CsPublishPolicySchemaDefaults + Get-TeamTargetingHierarchyStatus + Remove-TeamTargetingHierarchy + Set-TeamTargetingHierarchy + + + + + Workflow + + + + + + **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Releases Get-TeamsArtifacts cmdlet._x000D__x000A_- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet._x000D__x000A_- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets._x000D__x000A_- Releases New-CsTag cmdlet._x000D__x000A_- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively._x000D__x000A_- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets._x000D__x000A__x000D__x000A_- The complete release notes can be found in the below link:_x000D__x000A_https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes + + + + + https://www.powershellgallery.com/api/v2 + PSGallery + NuGet + + + System.Management.Automation.PSCustomObject + System.Object + + + Microsoft Corporation. All rights reserved. + Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview + False + **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Releases Get-TeamsArtifacts cmdlet._x000D__x000A_- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet._x000D__x000A_- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets._x000D__x000A_- Releases New-CsTag cmdlet._x000D__x000A_- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively._x000D__x000A_- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets._x000D__x000A__x000D__x000A_- The complete release notes can be found in the below link:_x000D__x000A_https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes + True + True + 95457 + 14350974 + 18512054 + 06-10-2025 13:29:35 +02:00 + 06-10-2025 13:29:35 +02:00 + 03-11-2025 17:30:00 +01:00 + Office365 MicrosoftTeams Teams PSModule PSEdition_Core PSEdition_Desktop + False + 2025-11-03T17:30:00Z + 7.4.0 + Microsoft Corporation + false + Module + MicrosoftTeams.nuspec|GetTeamSettings.format.ps1xml|LICENSE.txt|Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml|Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml|Microsoft.Teams.ConfigAPI.Cmdlets.psd1|Microsoft.Teams.ConfigAPI.Cmdlets.psm1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.psd1|Microsoft.Teams.Policy.Administration.psm1|Microsoft.Teams.Policy.Administration.xml|Microsoft.Teams.PowerShell.Module.xml|Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml|Microsoft.Teams.PowerShell.TeamsCmdlets.psd1|Microsoft.Teams.PowerShell.TeamsCmdlets.psm1|Microsoft.Teams.PowerShell.TeamsCmdlets.xml|MicrosoftTeams.psd1|MicrosoftTeams.psm1|SetMSTeamsReleaseEnvironment.ps1|SfbRpsModule.format.ps1xml|bin\BrotliSharpLib.dll|bin\Microsoft.IdentityModel.JsonWebTokens.dll|bin\Microsoft.IdentityModel.Logging.dll|bin\Microsoft.IdentityModel.Tokens.dll|bin\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json|bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll|bin\System.IdentityModel.Tokens.Jwt.dll|custom\CmdletConfig.json|custom\Merged_custom_PsExt.ps1|custom\Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1|en-US\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml|en-US\Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml|en-US\Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml|en-US\MicrosoftTeams-help.xml|exports\ProxyCmdletDefinitionsWithHelp.ps1|internal\Merged_internal.ps1|internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1|net472\CmdletSettings.json|net472\Microsoft.ApplicationInsights.dll|net472\Microsoft.Applications.Events.Server.dll|net472\Microsoft.Azure.KeyVault.AzureServiceDeploy.dll|net472\Microsoft.Azure.KeyVault.Core.dll|net472\Microsoft.Azure.KeyVault.Cryptography.dll|net472\Microsoft.Azure.KeyVault.Jose.dll|net472\Microsoft.Data.Sqlite.dll|net472\Microsoft.Extensions.Configuration.Abstractions.dll|net472\Microsoft.Extensions.Configuration.dll|net472\Microsoft.Extensions.DependencyInjection.Abstractions.dll|net472\Microsoft.Extensions.Logging.Abstractions.dll|net472\Microsoft.Extensions.Logging.dll|net472\Microsoft.Extensions.Primitives.dll|net472\Microsoft.Ic3.TenantAdminApi.Common.Helper.dll|net472\Microsoft.Identity.Client.Broker.dll|net472\Microsoft.Identity.Client.Desktop.dll|net472\Microsoft.Identity.Client.dll|net472\Microsoft.Identity.Client.Extensions.Msal.dll|net472\Microsoft.Identity.Client.NativeInterop.dll|net472\Microsoft.IdentityModel.Abstractions.dll|net472\Microsoft.IdentityModel.JsonWebTokens.dll|net472\Microsoft.IdentityModel.Logging.dll|net472\Microsoft.IdentityModel.Tokens.dll|net472\Microsoft.Rest.ClientRuntime.Azure.dll|net472\Microsoft.Rest.ClientRuntime.dll|net472\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll|net472\Microsoft.Teams.Policy.Administration.dll|net472\Microsoft.Teams.PowerShell.Module.dll|net472\Microsoft.Teams.PowerShell.Module.pdb|net472\Microsoft.Teams.PowerShell.Module.xml|net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll|net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll|net472\Microsoft.Web.WebView2.Core.dll|net472\Microsoft.Web.WebView2.WinForms.dll|net472\Microsoft.Web.WebView2.Wpf.dll|net472\Newtonsoft.Json.dll|net472\OneCollectorChannel.dll|net472\Polly.Contrib.WaitAndRetry.dll|net472\Polly.dll|net472\System.Buffers.dll|net472\System.Diagnostics.DiagnosticSource.dll|net472\System.IdentityModel.Tokens.Jwt.dll|net472\System.IO.FileSystem.AccessControl.dll|net472\System.Management.Automation.dll|net472\System.Memory.dll|net472\System.Numerics.Vectors.dll|net472\System.Runtime.CompilerServices.Unsafe.dll|net472\System.Security.AccessControl.dll|net472\System.Security.Cryptography.ProtectedData.dll|net472\System.Security.Principal.Windows.dll|net472\System.ValueTuple.dll|net472\runtimes\win-arm64\native\msalruntime_arm64.dll|net472\runtimes\win-x64\native\msalruntime.dll|net472\runtimes\win-x86\native\msalruntime_x005F_x86.dll|netcoreapp3.1\CmdletSettings.json|netcoreapp3.1\Microsoft.ApplicationInsights.dll|netcoreapp3.1\Microsoft.Applications.Events.Server.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.AzureServiceDeploy.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Core.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Cryptography.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Jose.dll|netcoreapp3.1\Microsoft.Data.Sqlite.dll|netcoreapp3.1\Microsoft.Extensions.Configuration.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Configuration.dll|netcoreapp3.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Logging.dll|netcoreapp3.1\Microsoft.Extensions.Primitives.dll|netcoreapp3.1\Microsoft.Ic3.TenantAdminApi.Common.Helper.dll|netcoreapp3.1\Microsoft.Identity.Client.Broker.dll|netcoreapp3.1\Microsoft.Identity.Client.Desktop.dll|netcoreapp3.1\Microsoft.Identity.Client.dll|netcoreapp3.1\Microsoft.Identity.Client.Extensions.Msal.dll|netcoreapp3.1\Microsoft.Identity.Client.NativeInterop.dll|netcoreapp3.1\Microsoft.IdentityModel.Abstractions.dll|netcoreapp3.1\Microsoft.IdentityModel.JsonWebTokens.dll|netcoreapp3.1\Microsoft.IdentityModel.Logging.dll|netcoreapp3.1\Microsoft.IdentityModel.Tokens.dll|netcoreapp3.1\Microsoft.Rest.ClientRuntime.Azure.dll|netcoreapp3.1\Microsoft.Rest.ClientRuntime.dll|netcoreapp3.1\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.dll|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.deps.json|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.pdb|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.xml|netcoreapp3.1\Microsoft.Teams.PowerShell.TeamsCmdlets.dll|netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll|netcoreapp3.1\Microsoft.Web.WebView2.Core.dll|netcoreapp3.1\Microsoft.Web.WebView2.WinForms.dll|netcoreapp3.1\Microsoft.Web.WebView2.Wpf.dll|netcoreapp3.1\Newtonsoft.Json.dll|netcoreapp3.1\OneCollectorChannel.dll|netcoreapp3.1\Polly.Contrib.WaitAndRetry.dll|netcoreapp3.1\Polly.dll|netcoreapp3.1\System.Diagnostics.DiagnosticSource.dll|netcoreapp3.1\System.IdentityModel.Tokens.Jwt.dll|netcoreapp3.1\System.IO.FileSystem.AccessControl.dll|netcoreapp3.1\System.Management.Automation.dll|netcoreapp3.1\System.Management.dll|netcoreapp3.1\System.Runtime.CompilerServices.Unsafe.dll|netcoreapp3.1\System.Security.AccessControl.dll|netcoreapp3.1\System.Security.Cryptography.ProtectedData.dll|netcoreapp3.1\System.Security.Principal.Windows.dll|netcoreapp3.1\runtimes\win-arm64\native\msalruntime_arm64.dll|netcoreapp3.1\runtimes\win-x64\native\msalruntime.dll|netcoreapp3.1\runtimes\win-x86\native\msalruntime_x005F_x86.dll|_manifest\spdx_2.2\bsi.cose|_manifest\spdx_2.2\bsi.json|_manifest\spdx_2.2\ESRPClientLogs1001085417078.json|_manifest\spdx_2.2\manifest.cat|_manifest\spdx_2.2\manifest.spdx.cose|_manifest\spdx_2.2\manifest.spdx.json|_manifest\spdx_2.2\manifest.spdx.json.sha256 + Add-TeamChannelUser Add-TeamUser Connect-MicrosoftTeams Disconnect-MicrosoftTeams Set-TeamsEnvironmentConfig Clear-TeamsEnvironmentConfig Get-AssociatedTeam Get-MultiGeoRegion Get-Operation Get-SharedWithTeam Get-SharedWithTeamUser Get-Team Get-TeamAllChannel Get-TeamChannel Get-TeamChannelUser Get-TeamIncomingChannel Get-TeamsApp Get-TeamsArtifacts Get-TeamUser Get-M365TeamsApp Get-AllM365TeamsApps Get-M365UnifiedTenantSettings Get-M365UnifiedCustomPendingApps Get-CsTeamsAcsFederationConfiguration Get-CsTeamsMessagingPolicy Get-CsTeamsMeetingPolicy Get-CsOnlineVoicemailPolicy Get-CsOnlineVoicemailValidationConfiguration Get-CsTeamsAIPolicy Get-CsTeamsFeedbackPolicy Get-CsTeamsUpdateManagementPolicy Get-CsTeamsChannelsPolicy Get-CsTeamsMeetingBrandingPolicy Get-CsTeamsEmergencyCallingPolicy Get-CsTeamsCallHoldPolicy Get-CsTeamsMessagingConfiguration Get-CsTeamsVoiceApplicationsPolicy Get-CsTeamsEventsPolicy Get-CsTeamsExternalAccessConfiguration Get-CsTeamsFilesPolicy Get-CsTeamsCallingPolicy Get-CsTeamsClientConfiguration Get-CsExternalAccessPolicy Get-CsTeamsAppPermissionPolicy Get-CsTeamsAppSetupPolicy Get-CsTeamsFirstPartyMeetingTemplateConfiguration Get-CsTeamsMeetingTemplatePermissionPolicy Get-CsLocationPolicy Get-CsTeamsShiftsPolicy Get-CsTenantNetworkSite Get-CsTeamsCarrierEmergencyCallRoutingPolicy Get-CsTeamsMeetingTemplateConfiguration Get-CsTeamsVirtualAppointmentsPolicy Get-CsTeamsSharedCallingRoutingPolicy Get-CsTeamsTemplatePermissionPolicy Get-CsTeamsComplianceRecordingPolicy Get-CsTeamsComplianceRecordingApplication Get-CsTeamsEducationAssignmentsAppPolicy Get-CsTeamsUpgradeConfiguration Get-CsTeamsAudioConferencingCustomPromptsConfiguration Get-CsTeamsSipDevicesConfiguration Get-CsTeamsCustomBannerText Get-CsTeamsVdiPolicy Get-CsTeamsMediaConnectivityPolicy Get-CsTeamsMeetingConfiguration Get-CsTeamsWorkLocationDetectionPolicy Get-CsTeamsRecordingRollOutPolicy Get-CsTeamsRemoteLogCollectionConfiguration Get-CsTeamsRemoteLogCollectionDevice Get-CsTeamsEducationConfiguration Get-CsTeamsBYODAndDesksPolicy Get-CsTeamsNotificationAndFeedsPolicy Get-CsTeamsMultiTenantOrganizationConfiguration Get-CsTeamsPersonalAttendantPolicy Get-CsPrivacyConfiguration Grant-CsTeamsAIPolicy Grant-CsTeamsMeetingBrandingPolicy Grant-CsExternalAccessPolicy Grant-CsTeamsCallingPolicy Grant-CsTeamsAppPermissionPolicy Grant-CsTeamsAppSetupPolicy Grant-CsTeamsEventsPolicy Grant-CsTeamsFilesPolicy Grant-CsTeamsMediaConnectivityPolicy Grant-CsTeamsMeetingTemplatePermissionPolicy Grant-CsTeamsCarrierEmergencyCallRoutingPolicy Grant-CsTeamsVirtualAppointmentsPolicy Grant-CsTeamsSharedCallingRoutingPolicy Grant-CsTeamsShiftsPolicy Grant-CsTeamsRecordingRollOutPolicy Grant-CsTeamsVdiPolicy Grant-CsTeamsWorkLocationDetectionPolicy Grant-CsTeamsBYODAndDesksPolicy Grant-CsTeamsPersonalAttendantPolicy New-Team New-TeamChannel New-TeamsApp New-CsTeamsAIPolicy New-CsTeamsMessagingPolicy New-CsTeamsMeetingPolicy New-CsOnlineVoicemailPolicy New-CsTeamsFeedbackPolicy New-CsTeamsUpdateManagementPolicy New-CsTeamsChannelsPolicy New-CsTeamsFilesPolicy New-CsTeamsMediaConnectivityPolicy New-CsTeamsMeetingBrandingTheme New-CsTeamsMeetingBackgroundImage New-CsTeamsNdiAssuranceSlate New-CsTeamsMeetingBrandingPolicy New-CsTeamsEmergencyCallingPolicy New-CsTeamsEmergencyCallingExtendedNotification New-CsTeamsCallHoldPolicy New-CsTeamsVoiceApplicationsPolicy New-CsTeamsEventsPolicy New-CsTeamsCallingPolicy New-CsExternalAccessPolicy New-CsTeamsAppPermissionPolicy New-CsTeamsAppSetupPolicy New-CsTeamsMeetingTemplatePermissionPolicy New-CsLocationPolicy New-CsTeamsCarrierEmergencyCallRoutingPolicy New-CsTeamsHiddenMeetingTemplate New-CsTeamsVirtualAppointmentsPolicy New-CsTeamsSharedCallingRoutingPolicy New-CsTeamsHiddenTemplate New-CsTeamsTemplatePermissionPolicy New-CsTeamsComplianceRecordingPolicy New-CsTeamsComplianceRecordingApplication New-CsTeamsComplianceRecordingPairedApplication New-CsTeamsWorkLocationDetectionPolicy New-CsTeamsRecordingRollOutPolicy New-CsTeamsRemoteLogCollectionDevice New-CsCustomPrompt New-CsCustomPromptPackage New-CsTeamsShiftsPolicy New-CsTeamsCustomBannerText New-CsTeamsVdiPolicy New-CsTeamsBYODAndDesksPolicy New-CsTeamsPersonalAttendantPolicy Remove-SharedWithTeam Remove-Team Remove-TeamChannel Remove-TeamChannelUser Remove-TeamsApp Remove-TeamUser Remove-CsTeamsAIPolicy Remove-CsTeamsMessagingPolicy Remove-CsTeamsMeetingPolicy Remove-CsOnlineVoicemailPolicy Remove-CsTeamsFeedbackPolicy Remove-CsTeamsFilesPolicy Remove-CsTeamsUpdateManagementPolicy Remove-CsTeamsChannelsPolicy Remove-CsTeamsMediaConnectivityPolicy Remove-CsTeamsMeetingBrandingPolicy Remove-CsTeamsEmergencyCallingPolicy Remove-CsTeamsCallHoldPolicy Remove-CsTeamsVoiceApplicationsPolicy Remove-CsTeamsEventsPolicy Remove-CsTeamsCallingPolicy Remove-CsExternalAccessPolicy Remove-CsTeamsAppPermissionPolicy Remove-CsTeamsAppSetupPolicy Remove-CsTeamsMeetingTemplatePermissionPolicy Remove-CsLocationPolicy Remove-CsTeamsCarrierEmergencyCallRoutingPolicy Remove-CsTeamsVirtualAppointmentsPolicy Remove-CsTeamsSharedCallingRoutingPolicy Remove-CsTeamsTemplatePermissionPolicy Remove-CsTeamsComplianceRecordingPolicy Remove-CsTeamsComplianceRecordingApplication Remove-CsTeamsShiftsPolicy Remove-CsTeamsCustomBannerText Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLocationDetectionPolicy Remove-CsTeamsRecordingRollOutPolicy Remove-CsTeamsRemoteLogCollectionDevice Remove-CsTeamsBYODAndDesksPolicy Remove-CsTeamsNotificationAndFeedsPolicy Remove-CsTeamsPersonalAttendantPolicy Set-Team Set-TeamArchivedState Set-TeamChannel Set-TeamPicture Set-TeamsApp Set-CsTeamsAcsFederationConfiguration Set-CsTeamsAIPolicy Set-CsTeamsMessagingPolicy Set-CsTeamsMeetingPolicy Set-CsOnlineVoicemailPolicy Set-CsTeamsFilesPolicy Set-CsOnlineVoicemailValidationConfiguration Set-CsTeamsFeedbackPolicy Set-CsTeamsUpdateManagementPolicy Set-CsTeamsChannelsPolicy Set-CsTeamsMediaConnectivityPolicy Set-CsTeamsMeetingBrandingPolicy Set-CsTeamsEmergencyCallingPolicy Set-CsTeamsEducationConfiguration Set-CsTeamsCallHoldPolicy Set-CsTeamsMessagingConfiguration Set-CsTeamsVoiceApplicationsPolicy Set-CsTeamsEventsPolicy Set-CsTeamsExternalAccessConfiguration Set-CsTeamsCallingPolicy Set-CsTeamsClientConfiguration Set-CsExternalAccessPolicy Set-CsTeamsAppPermissionPolicy Set-CsTeamsAppSetupPolicy Set-CsTeamsFirstPartyMeetingTemplateConfiguration Set-CsTeamsMeetingTemplatePermissionPolicy Set-CsTeamsMultiTenantOrganizationConfiguration Set-CsLocationPolicy Set-CsTeamsCarrierEmergencyCallRoutingPolicy Set-CsTeamsVirtualAppointmentsPolicy Set-CsTeamsSharedCallingRoutingPolicy Set-CsTeamsTemplatePermissionPolicy Set-CsTeamsComplianceRecordingPolicy Set-CsTeamsEducationAssignmentsAppPolicy Set-CsTeamsComplianceRecordingApplication Set-CsTeamsShiftsPolicy Set-CsTeamsUpgradeConfiguration Set-CsTeamsAudioConferencingCustomPromptsConfiguration Set-CsTeamsSipDevicesConfiguration Set-CsTeamsMeetingConfiguration Set-CsTeamsVdiPolicy Set-CsTeamsWorkLocationDetectionPolicy Set-CsTeamsRemoteLogCollectionDevice Set-CsTeamsRecordingRollOutPolicy Set-CsTeamsCustomBannerText Set-CsTeamsBYODAndDesksPolicy Set-CsTeamsNotificationAndFeedsPolicy Set-CsTeamsPersonalAttendantPolicy Set-CsPrivacyConfiguration Update-M365TeamsApp Update-M365UnifiedTenantSettings Update-M365UnifiedCustomPendingApp Get-CsBatchOperationDefinition Get-CsBatchOperationStatus Get-CsConfiguration Get-CsGroupPolicyAssignments Get-CsLoginInfo Get-CsUserProvHistory Get-GPAGroupMembers Get-GPAUserMembership Get-NgtProvInstanceFailOverStatus Get-CsTeamsTenantAbuseConfiguration Invoke-CsDirectoryObjectSync Invoke-CsGenericNgtProvCommand Invoke-CsRefreshGroupUsers Invoke-CsReprocessBatchOperation Invoke-CsReprocessGroupPolicyAssignment Move-NgtProvInstance New-CsConfiguration Remove-CsConfiguration Set-CsConfiguration Set-CsTeamsTenantAbuseConfiguration Set-CsPublishPolicySchemaDefaults Get-TeamTargetingHierarchyStatus Remove-TeamTargetingHierarchy Set-TeamTargetingHierarchy + Clear-CsOnlineTelephoneNumberOrder Complete-CsOnlineTelephoneNumberOrder Disable-CsOnlineSipDomain Enable-CsOnlineSipDomain Export-CsAcquiredPhoneNumber Export-CsAutoAttendantHolidays Export-CsOnlineAudioFile Find-CsGroup Find-CsOnlineApplicationInstance Get-CsApplicationAccessPolicy Get-CsApplicationMeetingConfiguration Get-CsAutoAttendant Get-CsAutoAttendantHolidays Get-CsAutoAttendantStatus Get-CsAutoAttendantSupportedLanguage Get-CsAutoAttendantSupportedTimeZone Get-CsAutoAttendantTenantInformation Get-CsBatchPolicyAssignmentOperation Get-CsCallingLineIdentity Get-CsCallQueue Get-CsCloudCallDataConnection Get-CsEffectiveTenantDialPlan Get-CsExportAcquiredPhoneNumberStatus Get-CsGroupPolicyAssignment Get-CsHybridTelephoneNumber Get-CsInboundBlockedNumberPattern Get-CsInboundExemptNumberPattern Get-CsMainlineAttendantAppointmentBookingFlow Get-CsMainlineAttendantFlow Get-CsMainlineAttendantQuestionAnswerFlow Get-CsMeetingMigrationStatus Get-CsOnlineApplicationInstance Get-CsOnlineApplicationInstanceAssociation Get-CsOnlineApplicationInstanceAssociationStatus Get-CsOnlineAudioConferencingRoutingPolicy Get-CsOnlineAudioFile Get-CsOnlineDialInConferencingBridge Get-CsOnlineDialInConferencingLanguagesSupported Get-CsOnlineDialinConferencingPolicy Get-CsOnlineDialInConferencingServiceNumber Get-CsOnlineDialinConferencingTenantConfiguration Get-CsOnlineDialInConferencingTenantSettings Get-CsOnlineDialInConferencingUser Get-CsOnlineDialOutPolicy Get-CsOnlineDirectoryTenant Get-CsOnlineEnhancedEmergencyServiceDisclaimer Get-CsOnlineLisCivicAddress Get-CsOnlineLisLocation Get-CsOnlineLisPort Get-CsOnlineLisSubnet Get-CsOnlineLisSwitch Get-CsOnlineLisWirelessAccessPoint Get-CsOnlinePSTNGateway Get-CsOnlinePstnUsage Get-CsOnlineSchedule Get-CsOnlineSipDomain Get-CsOnlineTelephoneNumber Get-CsOnlineTelephoneNumberCountry Get-CsOnlineTelephoneNumberOrder Get-CsOnlineTelephoneNumberType Get-CsOnlineUser Get-CsOnlineVoicemailUserSettings Get-CsOnlineVoiceRoute Get-CsOnlineVoiceRoutingPolicy Get-CsOnlineVoiceUser Get-CsPhoneNumberAssignment Get-CsPhoneNumberPolicyAssignment Get-CsPhoneNumberTag Get-CsPolicyPackage Get-CsSdgBulkSignInRequestStatus Get-CsSDGBulkSignInRequestsSummary Get-CsTeamsAudioConferencingPolicy Get-CsTeamsCallParkPolicy Get-CsTeamsCortanaPolicy Get-CsTeamsEmergencyCallRoutingPolicy Get-CsTeamsEnhancedEncryptionPolicy Get-CsTeamsGuestCallingConfiguration Get-CsTeamsGuestMeetingConfiguration Get-CsTeamsGuestMessagingConfiguration Get-CsTeamsIPPhonePolicy Get-CsTeamsMediaLoggingPolicy Get-CsTeamsMeetingBroadcastConfiguration Get-CsTeamsMeetingBroadcastPolicy Get-CsTeamsMigrationConfiguration Get-CsTeamsMobilityPolicy Get-CsTeamsNetworkRoamingPolicy Get-CsTeamsRoomVideoTeleConferencingPolicy Get-CsTeamsSettingsCustomApp Get-CsTeamsShiftsAppPolicy Get-CsTeamsShiftsConnectionConnector Get-CsTeamsShiftsConnectionErrorReport Get-CsTeamsShiftsConnection Get-CsTeamsShiftsConnectionInstance Get-CsTeamsShiftsConnectionOperation Get-CsTeamsShiftsConnectionSyncResult Get-CsTeamsShiftsConnectionTeamMap Get-CsTeamsShiftsConnectionWfmTeam Get-CsTeamsShiftsConnectionWfmUser Get-CsTeamsSurvivableBranchAppliance Get-CsTeamsSurvivableBranchAppliancePolicy Get-CsTeamsTargetingPolicy Get-CsTeamsTranslationRule Get-CsTeamsUnassignedNumberTreatment Get-CsTeamsUpgradePolicy Get-CsTeamsVdiPolicy Get-CsTeamsVideoInteropServicePolicy Get-CsTeamsWorkLoadPolicy Get-CsTeamTemplate Get-CsTeamTemplateList Get-CsTenant Get-CsTenantBlockedCallingNumbers Get-CsTenantDialPlan Get-CsTenantFederationConfiguration Get-CsTenantLicensingConfiguration Get-CsTenantMigrationConfiguration Get-CsTenantNetworkConfiguration Get-CsTenantNetworkRegion Get-CsTenantNetworkSubnet Get-CsTenantTrustedIPAddress Get-CsUserCallingSettings Get-CsUserPolicyAssignment Get-CsUserPolicyPackage Get-CsUserPolicyPackageRecommendation Get-CsVideoInteropServiceProvider Grant-CsApplicationAccessPolicy Get-CsComplianceRecordingForCallQueueTemplate Get-CsSharedCallQueueHistoryTemplate Get-CsTagsTemplate Grant-CsCallingLineIdentity Grant-CsDialoutPolicy Grant-CsGroupPolicyPackageAssignment Grant-CsOnlineAudioConferencingRoutingPolicy Grant-CsOnlineVoicemailPolicy Grant-CsOnlineVoiceRoutingPolicy Grant-CsTeamsAudioConferencingPolicy Grant-CsTeamsCallHoldPolicy Grant-CsTeamsCallParkPolicy Grant-CsTeamsChannelsPolicy Grant-CsTeamsCortanaPolicy Grant-CsTeamsEmergencyCallingPolicy Grant-CsTeamsEmergencyCallRoutingPolicy Grant-CsTeamsEnhancedEncryptionPolicy Grant-CsTeamsFeedbackPolicy Grant-CsTeamsIPPhonePolicy Grant-CsTeamsMediaLoggingPolicy Grant-CsTeamsMeetingBroadcastPolicy Grant-CsTeamsMeetingPolicy Grant-CsTeamsMessagingPolicy Grant-CsTeamsMobilityPolicy Grant-CsTeamsRoomVideoTeleConferencingPolicy Grant-CsTeamsSurvivableBranchAppliancePolicy Grant-CsTeamsUpdateManagementPolicy Grant-CsTeamsUpgradePolicy Grant-CsTeamsVideoInteropServicePolicy Grant-CsTeamsVoiceApplicationsPolicy Grant-CsTeamsWorkLoadPolicy Grant-CsTenantDialPlan Grant-CsUserPolicyPackage Grant-CsTeamsComplianceRecordingPolicy Import-CsAutoAttendantHolidays Import-CsOnlineAudioFile Invoke-CsInternalPSTelemetry Move-CsInternalHelper New-CsApplicationAccessPolicy New-CsAutoAttendant New-CsAutoAttendantCallableEntity New-CsAutoAttendantCallFlow New-CsAutoAttendantCallHandlingAssociation New-CsAutoAttendantDialScope New-CsAutoAttendantMenu New-CsAutoAttendantMenuOption New-CsAutoAttendantPrompt New-CsBatchPolicyAssignmentOperation New-CsBatchPolicyPackageAssignmentOperation New-CsCallingLineIdentity New-CsCallQueue New-CsCloudCallDataConnection New-CsCustomPolicyPackage New-CsEdgeAllowAllKnownDomains New-CsEdgeAllowList New-CsEdgeDomainPattern New-CsGroupPolicyAssignment New-CsHybridTelephoneNumber New-CsInboundBlockedNumberPattern New-CsInboundExemptNumberPattern New-CsMainlineAttendantAppointmentBookingFlow New-CsMainlineAttendantQuestionAnswerFlow New-CsOnlineApplicationInstance New-CsOnlineApplicationInstanceAssociation New-CsOnlineAudioConferencingRoutingPolicy New-CsOnlineDateTimeRange New-CsOnlineLisCivicAddress New-CsOnlineLisLocation New-CsOnlinePSTNGateway New-CsOnlineSchedule New-CsOnlineTelephoneNumberOrder New-CsOnlineTimeRange New-CsOnlineVoiceRoute New-CsOnlineVoiceRoutingPolicy New-CsSdgBulkSignInRequest New-CsTeamsAudioConferencingPolicy New-CsTeamsCallParkPolicy New-CsTeamsCortanaPolicy New-CsTeamsEmergencyCallRoutingPolicy New-CsTeamsEmergencyNumber New-CsTeamsEnhancedEncryptionPolicy New-CsTeamsIPPhonePolicy New-CsTeamsMeetingBroadcastPolicy New-CsTeamsMobilityPolicy New-CsTeamsNetworkRoamingPolicy New-CsTeamsRoomVideoTeleConferencingPolicy New-CsTeamsShiftsConnectionBatchTeamMap New-CsTeamsShiftsConnection New-CsTeamsShiftsConnectionInstance New-CsTeamsSurvivableBranchAppliance New-CsTeamsSurvivableBranchAppliancePolicy New-CsTeamsTranslationRule New-CsTeamsUnassignedNumberTreatment New-CsTeamsVdiPolicy New-CsTeamsWorkLoadPolicy New-CsTeamTemplate New-CsTenantDialPlan New-CsTenantNetworkRegion New-CsTenantNetworkSite New-CsTenantNetworkSubnet New-CsTenantTrustedIPAddress New-CsUserCallingDelegate New-CsVideoInteropServiceProvider New-CsVoiceNormalizationRule New-CsOnlineDirectRoutingTelephoneNumberUploadOrder New-CsOnlineTelephoneNumberReleaseOrder New-CsComplianceRecordingForCallQueueTemplate New-CsTagsTemplate New-CsTag New-CsSharedCallQueueHistoryTemplate Register-CsOnlineDialInConferencingServiceNumber Remove-CsApplicationAccessPolicy Remove-CsAutoAttendant Remove-CsCallingLineIdentity Remove-CsCallQueue Remove-CsCustomPolicyPackage Remove-CsGroupPolicyAssignment Remove-CsHybridTelephoneNumber Remove-CsInboundBlockedNumberPattern Remove-CsInboundExemptNumberPattern Remove-CsMainlineAttendantAppointmentBookingFlow Remove-CsMainlineAttendantQuestionAnswerFlow Remove-CsOnlineApplicationInstanceAssociation Remove-CsOnlineAudioConferencingRoutingPolicy Remove-CsOnlineAudioFile Remove-CsOnlineDialInConferencingTenantSettings Remove-CsOnlineLisCivicAddress Remove-CsOnlineLisLocation Remove-CsOnlineLisPort Remove-CsOnlineLisSubnet Remove-CsOnlineLisSwitch Remove-CsOnlineLisWirelessAccessPoint Remove-CsOnlinePSTNGateway Remove-CsOnlineSchedule Remove-CsOnlineTelephoneNumber Remove-CsOnlineVoiceRoute Remove-CsOnlineVoiceRoutingPolicy Remove-CsPhoneNumberAssignment Remove-CsPhoneNumberTag Remove-CsTeamsAudioConferencingPolicy Remove-CsTeamsCallParkPolicy Remove-CsTeamsCortanaPolicy Remove-CsTeamsEmergencyCallRoutingPolicy Remove-CsTeamsEnhancedEncryptionPolicy Remove-CsTeamsIPPhonePolicy Remove-CsTeamsMeetingBroadcastPolicy Remove-CsTeamsMobilityPolicy Remove-CsTeamsNetworkRoamingPolicy Remove-CsTeamsRoomVideoTeleConferencingPolicy Remove-CsTeamsShiftsConnection Remove-CsTeamsShiftsConnectionInstance Remove-CsTeamsShiftsConnectionTeamMap Remove-CsTeamsShiftsScheduleRecord Remove-CsTeamsSurvivableBranchAppliance Remove-CsTeamsSurvivableBranchAppliancePolicy Remove-CsTeamsTargetingPolicy Remove-CsTeamsTranslationRule Remove-CsTeamsUnassignedNumberTreatment Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLoadPolicy Remove-CsTeamTemplate Remove-CsTenantDialPlan Remove-CsTenantNetworkRegion Remove-CsTenantNetworkSite Remove-CsTenantNetworkSubnet Remove-CsTenantTrustedIPAddress Remove-CsUserCallingDelegate Remove-CsUserLicenseGracePeriod Remove-CsVideoInteropServiceProvider Remove-CsComplianceRecordingForCallQueueTemplate Remove-CsTagsTemplate Remove-CsSharedCallQueueHistoryTemplate Set-CsApplicationAccessPolicy Set-CsApplicationMeetingConfiguration Set-CsAutoAttendant Set-CsCallingLineIdentity Set-CsCallQueue Set-CsInboundBlockedNumberPattern Set-CsInboundExemptNumberPattern Set-CsMainlineAttendantAppointmentBookingFlow Set-CsMainlineAttendantQuestionAnswerFlow Set-CsOnlineApplicationInstance Set-CsOnlineAudioConferencingRoutingPolicy Set-CsOnlineDialInConferencingBridge Set-CsOnlineDialInConferencingServiceNumber Set-CsOnlineDialInConferencingTenantSettings Set-CsOnlineDialInConferencingUser Set-CsOnlineDialInConferencingUserDefaultNumber Set-CsOnlineEnhancedEmergencyServiceDisclaimer Set-CsOnlineLisCivicAddress Set-CsOnlineLisLocation Set-CsOnlineLisPort Set-CsOnlineLisSubnet Set-CsOnlineLisSwitch Set-CsOnlineLisWirelessAccessPoint Set-CsOnlinePSTNGateway Set-CsOnlinePstnUsage Set-CsOnlineSchedule Set-CsOnlineVoiceApplicationInstance Set-CsOnlineVoicemailUserSettings Set-CsOnlineVoiceRoute Set-CsOnlineVoiceRoutingPolicy Set-CsOnlineVoiceUser Set-CsPhoneNumberAssignment Set-CsPhoneNumberPolicyAssignment Set-CsPhoneNumberTag Set-CsTeamsAudioConferencingPolicy Set-CsTeamsCallParkPolicy Set-CsTeamsCortanaPolicy Set-CsTeamsEmergencyCallRoutingPolicy Set-CsTeamsEnhancedEncryptionPolicy Set-CsTeamsGuestCallingConfiguration Set-CsTeamsGuestMeetingConfiguration Set-CsTeamsGuestMessagingConfiguration Set-CsTeamsIPPhonePolicy Set-CsTeamsMeetingBroadcastConfiguration Set-CsTeamsMeetingBroadcastPolicy Set-CsTeamsMigrationConfiguration Set-CsTeamsMobilityPolicy Set-CsTeamsNetworkRoamingPolicy Set-CsTeamsRoomVideoTeleConferencingPolicy Set-CsTeamsSettingsCustomApp Set-CsTeamsShiftsAppPolicy Set-CsTeamsShiftsConnection Set-CsTeamsShiftsConnectionInstance Set-CsTeamsSurvivableBranchAppliance Set-CsTeamsSurvivableBranchAppliancePolicy Set-CsTeamsTargetingPolicy Set-CsTeamsTranslationRule Set-CsTeamsUnassignedNumberTreatment Set-CsTeamsVdiPolicy Set-CsTeamsWorkLoadPolicy Set-CsTenantBlockedCallingNumbers Set-CsTenantDialPlan Set-CsTenantFederationConfiguration Set-CsTenantMigrationConfiguration Set-CsTenantNetworkRegion Set-CsTenantNetworkSite Set-CsTenantNetworkSubnet Set-CsTenantTrustedIPAddress Set-CsUser Set-CsUserCallingDelegate Set-CsUserCallingSettings Set-CsVideoInteropServiceProvider Set-CsComplianceRecordingForCallQueueTemplate Set-CsTagsTemplate Set-CsSharedCallQueueHistoryTemplate Start-CsExMeetingMigration Sync-CsOnlineApplicationInstance Test-CsEffectiveTenantDialPlan Test-CsInboundBlockedNumberPattern Test-CsTeamsShiftsConnectionValidate Test-CsTeamsTranslationRule Test-CsTeamsUnassignedNumberTreatment Test-CsVoiceNormalizationRule Unregister-CsOnlineDialInConferencingServiceNumber Update-CsAutoAttendant Update-CsCustomPolicyPackage Update-CsPhoneNumberTag Update-CsTeamsShiftsConnection Update-CsTeamsShiftsConnectionInstance Update-CsTeamTemplate New-CsBatchTeamsDeployment Get-CsBatchTeamsDeploymentStatus Get-CsPersonalAttendantSettings Set-CsPersonalAttendantSettings Set-CsOCEContext Clear-CsOCEContext Get-CsRegionContext Set-CsRegionContext Clear-CsRegionContext Get-CsMeetingMigrationTransactionHistory Get-CsMasVersionedSchemaData Get-CsMasObjectChangelog Get-CsBusinessVoiceDirectoryDiagnosticData Get-CsCloudTenant Get-CsCloudUser Get-CsHostingProvider Set-CsTenantUserBackfill Invoke-CsCustomHandlerNgtprov Invoke-CsCustomHandlerCallBackNgtprov New-CsSdgDeviceTaggingRequest Get-CsMoveTenantServiceInstanceTaskStatus Move-CsTenantServiceInstance Move-CsTenantCrossRegion Invoke-CsDirectObjectSync New-CsSDGDeviceTransferRequest Get-CsAadTenant Get-CsAadUser Clear-CsCacheOperation Move-CsAvsTenantPartition Invoke-CsMsodsSync Get-CsUssUserSettings Set-CsUssUserSettings Invoke-CsRehomeuser Set-CsNotifyCache + d910df43-3ca6-4c9c-a2e3-e9f45a8e2ad9 + 5.1 + 4.7.2 + 4.0 + Microsoft Corporation + + + C:\Users\kris6\Documents\Programming\CIPP-Project\CIPP-API\Modules\MicrosoftTeams\MicrosoftTeams\7.4.0 +
      +
      +
      diff --git a/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 new file mode 100644 index 000000000000..933a7990f95a --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 @@ -0,0 +1,237 @@ +#This file is setting HostingEnvironment environment variable using which we can decide in nested modules, that which cmdlets it has to export. + +# We don't have access to the module at load time, since loading occurs last +# Instead we set up a one-time event to set the OnRemove scriptblock once the module has been loaded +$null = Register-EngineEvent -SourceIdentifier PowerShell.OnIdle -MaxTriggerCount 1 -Action { + $m = Get-Module MicrosoftTeams + $m.OnRemove = { + Write-Verbose "Removing MSTeamsReleaseEnvironment" + $env:MSTeamsReleaseEnvironment = $null + Disconnect-MicrosoftTeams + } +} + +$env:MSTeamsReleaseEnvironment = 'TeamsGA' + +#The below line will be uncommented by build process if its preview module + +#preview $env:MSTeamsReleaseEnvironment = 'TeamsPreview' + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6QSrbNq5qY4CX +# 15x6qVrEe3OnMqckrZDKvtChfXP5jaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKwh +# nAu5OLUmTWVzGDxzwu87ECHdTJ+a4iX/WmYDn6qeMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAGAFmuGT0xYp48V7BoXX6c89KcPLcocoWe9yk +# OsZ2mM0SV8SDsDRat3chIFt6CQlTBXdfH/0kHRTKmp5a9zPdfiqOEfpcSIfM1spN +# EfChvGCHMmj6tm9rVOiTm/ACgZ/a36TYoO/Xk2qLB5LR8RceaGaJktbddSv2HmVw +# t2T0Y3p2Wb/NdaaxfibTrbis1pf4UFkndDUrsBN9xntUYr+2s9Lb46uB8CMItikt +# 5+eKPnrWrjU/sTq2Z8FyRt5t24eGJJJhBkXBFMuqgCHzezt+iayOKjPlHBVQgQlu +# 1pLfVECoeblhROX5wExp4DSg2/bNqGMPgq7Q8RPTECU992WI2aGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCybXx942s9ucM9RAj+edkEKhgA/IQAl6IT +# JKKbMorgnwIGaKR4CbEBGBMyMDI1MTAwMTA4MzMwNi4wODJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 +# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG +# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd +# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 +# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK +# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah +# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 +# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L +# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p +# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN +# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG +# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW +# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf +# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat +# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS +# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V +# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 +# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs +# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M +# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe +# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z +# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw +# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG+iMwIhgPMjAyNTEwMDEwMDUzNTVaGA8yMDI1 +# MTAwMjAwNTM1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7Ib6IwIBADAKAgEA +# AgItJAIB/zAHAgEAAgIZEzAKAgUA7IhLowIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA583XbQoKh/10MA7+Ujzrcdwv4sL0mvb8WSmgA4kJCPmh14/C3jvzy +# RpcSNYxQbRkMEclEpVCXRsfgrmGL5p52U8qKEGXyvGAp8XaxhklYYuWfACDfCKdH +# T0KhlXTQrGiZP2m+F0Di5QKstoDY/fq5m7Y5b3UYa3lEi6n3Lms0ezpf9rXWusot +# K0SVpTayoddl986SLKLVzqvlEUSdF4jFJp6KZ/flzIE00qqvoRE3jESffoTNMI6c +# fShEm1O3Fg0ubJanNSHN+xNLFF+wE87TzV59AP/Ixwwt4BFsQn4lL1kUKs81VzHp +# XsO6bcaF5N2PtFKTmtAt3qVZEpio+Dj4MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQg7HjPTEjWdbHC5DbQT2CRTnCRPtHiIR1bwkSqcqBdea4wgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNS +# tYocbkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+vs7RNN3M8bTAAEAAAH6MCIEICgabd0aMglwPIRAQpeLtPTt+Pmsi4Ljxvse +# jujm3TVJMA0GCSqGSIb3DQEBCwUABIICAKftgUAhg5jy45bSUwWDwbN2MyiesyeP +# EbW/RtV5SWp04Sh8iODjU2kr16FqEYRLcQiFngcx7nulT2HZS2PjxNRMdYEZQhDu +# Bw0rrcusqyGYqwrdwOuphEEtSyDX9o99H3ZWhJLWEtH63dNeBg/t+y9JOcD1EoIa +# iUPLcQSrJ8W13tuRDLAfQ+4EKH6F1l8mePWB8tbV8ukD8yqu46TxSUj3ssuMzm5x +# Ry1attYEp+HiHFvAX8zq5RR0flTziW23ytEy3VXSDaUb3pghGXMQ6WjDcQYxmPII +# Wle+N7Q4S2DBOEAf7/5DNUrDEMLCDpOv6qMurDbA1RCxKARtgPY01o/7nlrqn2ET +# 2rEgJGNmB0LMIW64Es4aIr8w3IZSvPzYYNonkf3PfMFoS08eysKN7g3z0RuR67rE +# ol4Q7/6JMbcvTaK/ha5nr08PnPDdhFQXxx2OU9SeAwmTpz3ESeXyjSq1qeGE4mUc +# a4GaQcRLCOgGACt2F7mZuy8c/D6MEAl1wUYeHHwVBj1hpP30q2fL8dXTVEQPR7hL +# bR9gVoy7xHb3jrqhcQiy/N9ys3kt6B3H6iNgUOhKnJcRFIZ9NBn35/Y7dZ3tzovy +# r8BNizclS3wvtMoaDn4i+zaqqUMpGnlf+nw6MDk5p/04fGzjMUT5mTa1blP+ODvu +# hmtke0jN2dH2 +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml new file mode 100644 index 000000000000..e35f4203faf1 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml @@ -0,0 +1,26537 @@ + + + + + DeserializedAddressBookServicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.AddressBook.AddressBookServicePolicy + + + + + + + + Identity + + + + Description + + + + EnableAzureABS + + + + EnableAzureABSSideBySide + + + + EnableRankedResultsDisplay + + + + DisableAzureABSForUcwa + + + + + + + + DeserializedCallViaWorkPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.CallViaWork.CallViaWorkPolicy + + + + + + + + Identity + + + + Enabled + + + + UseAdminCallbackNumber + + + + AdminCallbackNumber + + + + + + + + DeserializedClientPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Client.ClientPolicy + + + + + + + + Identity + + + + PolicyEntry + + + + Description + + + + AddressBookAvailability + + + + AttendantSafeTransfer + + + + AutoDiscoveryRetryInterval + + + + BlockConversationFromFederatedContacts + + + + CalendarStatePublicationInterval + + + + ; + + + + CustomizedHelpUrl + + + + CustomLinkInErrorMessages + + + + CustomStateUrl + + + + DGRefreshInterval + + + + DisableCalendarPresence + + + + DisableContactCardOrganizationTab + + + + DisableEmailComparisonCheck + + + + DisableEmoticons + + + + DisableFeedsTab + + + + DisableFederatedPromptDisplayName + + + + DisableFreeBusyInfo + + + + DisableHandsetOnLockedMachine + + + + DisableMeetingSubjectAndLocation + + + + DisableHtmlIm + + + + DisableInkIM + + + + DisableOneNote12Integration + + + + DisableOnlineContextualSearch + + + + DisablePhonePresence + + + + DisablePICPromptDisplayName + + + + DisablePoorDeviceWarnings + + + + DisablePoorNetworkWarnings + + + + DisablePresenceNote + + + + DisableRTFIM + + + + DisableSavingIM + + + + DisplayPhoto + + + + EnableAppearOffline + + + + EnableCallLogAutoArchiving + + + + EnableClientAutoPopulateWithTeam + + + + EnableClientMusicOnHold + + + + EnableConversationWindowTabs + + + + EnableEnterpriseCustomizedHelp + + + + EnableEventLogging + + + + EnableExchangeContactSync + + + + EnableExchangeDelegateSync + + + + EnableExchangeContactsFolder + + + + EnableFullScreenVideo + + + + EnableHighPerformanceConferencingAppSharing + + + + EnableHotdesking + + + + EnableIMAutoArchiving + + + + EnableMediaRedirection + + + + EnableMeetingEngagement + + + + EnableNotificationForNewSubscribers + + + + EnableServerConversationHistory + + + + EnableSkypeUI + + + + EnableSQMData + + + + EnableTracing + + + + EnableURL + + + + EnableUnencryptedFileTransfer + + + + EnableVOIPCallDefault + + + + ExcludedContactFolders + + + + HotdeskingTimeout + + + + IMWarning + + + + MAPIPollInterval + + + + MaximumDGsAllowedInContactList + + + + MaximumNumberOfContacts + + + + MaxPhotoSizeKB + + + + MusicOnHoldAudioFile + + + + P2PAppSharingEncryption + + + + EnableHighPerformanceP2PAppSharing + + + + PlayAbbreviatedDialTone + + + + RequireContentPin + + + + SearchPrefixFlags + + + + ShowRecentContacts + + + + ShowManagePrivacyRelationships + + + + ShowSharepointPhotoEditLink + + + + SPSearchInternalURL + + + + SPSearchExternalURL + + + + SPSearchCenterInternalURL + + + + SPSearchCenterExternalURL + + + + TabURL + + + + TracingLevel + + + + TelemetryTier + + + + PublicationBatchDelay + + + + EnableViewBasedSubscriptionMode + + + + WebServicePollInterval + + + + HelpEnvironment + + + + RateMyCallDisplayPercentage + + + + RateMyCallAllowCustomUserFeedback + + + + IMLatencySpinnerDelay + + + + IMLatencyErrorThreshold + + + + SupportModernFilePicker + + + + EnableOnlineFeedback + + + + EnableOnlineFeedbackScreenshots + + + + + + + + DeserializedPolicyEntryTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Client.PolicyEntryType + + + + + + + + Name + + + + Value + + + + + + + + DeserializedClientUpdatePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientUpdate.ClientUpdatePolicy + + + + + + + + Identity + + + + ShowNotification + + + + RedirectClient + + + + UpdateClient + + + + + + + + DeserializedClientUpdateOverridePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientUpdate.ClientUpdateOverridePolicy + + + + + + + + Identity + + + + Enabled + + + + ShowNotification + + + + RedirectClient + + + + UpdateClient + + + + + + + + DeserializedClientVersionPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionPolicy + + + + + + + + Identity + + + + Rules + + + + Description + + + + + + + + DeserializedRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule + + + + + + + + RuleId + + + + Description + + + + Action + + + + ActionUrl + + + + MajorVersion + + + + MinorVersion + + + + BuildNumber + + + + QfeNumber + + + + UserAgent + + + + UserAgentFullName + + + + Enabled + + + + CompareOp + + + + + + + + DeserializedRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.Rule#Decorated + + + + + + + + Identity + + + + Priority + + + + RuleId + + + + Description + + + + Action + + + + ActionUrl + + + + MajorVersion + + + + MinorVersion + + + + BuildNumber + + + + QfeNumber + + + + UserAgent + + + + UserAgentFullName + + + + Enabled + + + + CompareOp + + + + + + + + DeserializedClientVersionConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ClientVersion.ClientVersionConfiguration + + + + + + + + Identity + + + + DefaultAction + + + + DefaultURL + + + + Enabled + + + + + + + + DeserializedExternalAccessPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy + + + + + + + + Identity + + + + Description + + + + EnableFederationAccess + + + + EnableXmppAccess + + + + EnablePublicCloudAudioVideoAccess + + + + EnableOutsideAccess + + + + EnableAcsFederationAccess + + + + EnableTeamsConsumerAccess + + + + EnableTeamsConsumerInbound + + + + RestrictTeamsConsumerAccessToExternalUserProfiles + + + + + + + + DeserializedExternalUserCommunicationPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ExternalUserCommunication.ExternalUserCommunicationPolicy + + + + + + + + Identity + + + + EnableFileTransfer + + + + EnableP2PFileTransfer + + + + AllowPresenceVisibility + + + + AllowTitleVisibility + + + + + + + + DeserializedGraphPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Graph.GraphPolicy + + + + + + + + Identity + + + + Description + + + + EnableMeetingsGraph + + + + EnableSharedLinks + + + + UseStorageService + + + + UseEWSDirectDownload + + + + + + + + DeserializedImArchivingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Im.ImArchivingPolicy + + + + + + + + Identity + + + + Description + + + + ArchiveInternal + + + + ArchiveExternal + + + + + + + + DeserializedLegalInterceptPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Im.LegalInterceptPolicy + + + + + + + + Identity + + + + Description + + + + DeliverySMTPAddress + + + + ExpiryTime + + + + + + + + DeserializedIPPhonePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.IPPhone.IPPhonePolicy + + + + + + + + Identity + + + + UserDialTimeoutMS + + + + KeyboardLockMaxPinRetry + + + + PrioritizedCodecsList + + + + EnablePowerSaveMode + + + + PowerSaveDuringOfficeHoursTimeoutMS + + + + PowerSavePostOfficeHoursTimeoutMS + + + + EnableOneTouchVoicemail + + + + DateTimeFormat + + + + EnableDeviceUpdate + + + + EnableExchangeCalendaring + + + + EnableBetterTogetherOverEthernet + + + + BetterTogetherOverEthernetPairingMode + + + + LocalProvisioningServerUser + + + + LocalProvisioningServerPassword + + + + LocalProvisioningServerAddress + + + + LocalProvisioningServerType + + + + + + + + DeserializedLocationPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Location.LocationPolicy + + + + + + + + Identity + + + + EmergencyNumbers + + + + Description + + + + EnhancedEmergencyServicesEnabled + + + + LocationRequired + + + + UseLocationForE911Only + + + + PstnUsage + + + + EmergencyDialString + + + + EmergencyDialMask + + + + NotificationUri + + + + ConferenceUri + + + + ConferenceMode + + + + LocationRefreshInterval + + + + EnhancedEmergencyServiceDisclaimer + + + + UseHybridVoiceForE911 + + + + EnablePlusPrefix + + + + AllowEmergencyCallsWithoutLineURI + + + + + + + + DeserializedEmergencyNumberView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Location.EmergencyNumber + + + + + + + + DialString + + + + DialMask + + + + + + + + DeserializedMeetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingPolicy + + + + + + + + Identity + + + + AllowIPAudio + + + + AllowIPVideo + + + + AllowMultiView + + + + Description + + + + AllowParticipantControl + + + + AllowAnnotations + + + + DisablePowerPointAnnotations + + + + AllowUserToScheduleMeetingsWithAppSharing + + + + ApplicationSharingMode + + + + AllowNonEnterpriseVoiceUsersToDialOut + + + + AllowAnonymousUsersToDialOut + + + + AllowAnonymousParticipantsInMeetings + + + + AllowFederatedParticipantJoinAsSameEnterprise + + + + AllowExternalUsersToSaveContent + + + + AllowExternalUserControl + + + + AllowExternalUsersToRecordMeeting + + + + AllowPolls + + + + AllowSharedNotes + + + + AllowQandA + + + + AllowOfficeContent + + + + EnableDialInConferencing + + + + EnableAppDesktopSharing + + + + AllowConferenceRecording + + + + EnableP2PRecording + + + + EnableFileTransfer + + + + EnableP2PFileTransfer + + + + EnableP2PVideo + + + + AllowLargeMeetings + + + + EnableOnlineMeetingPromptForLyncResources + + + + EnableDataCollaboration + + + + MaxVideoConferenceResolution + + + + MaxMeetingSize + + + + AudioBitRateKb + + + + VideoBitRateKb + + + + AppSharingBitRateKb + + + + FileTransferBitRateKb + + + + TotalReceiveVideoBitRateKb + + + + EnableMultiViewJoin + + + + CloudRecordingServiceSupport + + + + EnableReliableConferenceDeletion + + + + + + + + DeserializedBroadcastMeetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.BroadcastMeetingPolicy + + + + + + + + Identity + + + + AllowBroadcastMeeting + + + + AllowOpenBroadcastMeeting + + + + AllowBroadcastMeetingRecording + + + + AllowAnonymousBroadcastMeeting + + + + BroadcastMeetingRecordingEnforced + + + + + + + + DeserializedCloudMeetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudMeetingPolicy + + + + + + + + Identity + + + + AllowAutoSchedule + + + + IsModernSchedulingEnabled + + + + + + + + DeserializedCloudMeetingOpsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudMeetingOpsPolicy + + + + + + + + Identity + + + + ActivationLocation + + + + + + + + DeserializedCloudVideoInteropPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.CloudVideoInteropPolicy + + + + + + + + Identity + + + + EnableCloudVideoInterop + + + + + + + + DeserializedApplicationAccessPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.ApplicationAccessPolicy + + + + + + + + Identity + + + + AppIds + + + + Description + + + + + + + + DeserializedTeamsMeetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.TeamsMeetingPolicy + + + + + + + + Identity + + + + Description + + + + AllowChannelMeetingScheduling + + + + AllowMeetNow + + + + AllowPrivateMeetNow + + + + MeetingChatEnabledType + + + + LiveCaptionsEnabledType + + + + DesignatedPresenterRoleMode + + + + AllowIPAudio + + + + AllowIPVideo + + + + AllowEngagementReport + + + + AllowTrackingInReport + + + + IPAudioMode + + + + IPVideoMode + + + + AllowAnonymousUsersToDialOut + + + + AllowAnonymousUsersToStartMeeting + + + + AllowAnonymousUsersToJoinMeeting + + + + BlockedAnonymousJoinClientTypes + + + + AllowedStreamingMediaInput + + + + AllowPrivateMeetingScheduling + + + + AutoAdmittedUsers + + + + AllowCloudRecording + + + + AllowRecordingStorageOutsideRegion + + + + RecordingStorageMode + + + + AllowOutlookAddIn + + + + AllowPowerPointSharing + + + + AllowParticipantGiveRequestControl + + + + AllowExternalParticipantGiveRequestControl + + + + AllowSharedNotes + + + + AllowWhiteboard + + + + AllowTranscription + + + + AllowNetworkConfigurationSettingsLookup + + + + MediaBitRateKb + + + + ScreenSharingMode + + + + VideoFiltersMode + + + + AllowPSTNUsersToBypassLobby + + + + AllowOrganizersToOverrideLobbySettings + + + + PreferredMeetingProviderForIslandsMode + + + + AllowNDIStreaming + + + + AllowUserToJoinExternalMeeting + + + + SpeakerAttributionMode + + + + EnrollUserOverride + + + + RoomAttributeUserOverride + + + + StreamingAttendeeMode + + + + AllowBreakoutRooms + + + + TeamsCameraFarEndPTZMode + + + + AllowMeetingReactions + + + + AllowMeetingRegistration + + + + WhoCanRegister + + + + AllowScreenContentDigitization + + + + AllowCarbonSummary + + + + RoomPeopleNameUserOverride + + + + AllowMeetingCoach + + + + NewMeetingRecordingExpirationDays + + + + LiveStreamingMode + + + + MeetingInviteLanguages + + + + ChannelRecordingDownload + + + + AllowCartCaptionsScheduling + + + + AllowTasksFromTranscript + + + + InfoShownInReportMode + + + + LiveInterpretationEnabledType + + + + QnAEngagementMode + + + + AllowImmersiveView + + + + AllowAvatarsInGallery + + + + AllowAnnotations + + + + AllowDocumentCollaboration + + + + AllowWatermarkForScreenSharing + + + + AllowWatermarkForCameraVideo + + + + AudibleRecordingNotification + + + + + + + + DeserializedMeetingBrandingThemeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.MeetingBrandingTheme + + + + + + + + DisplayName + + + + LogoImageLightUri + + + + LogoImageDarkUri + + + + BackgroundImageLightUri + + + + BackgroundImageDarkUri + + + + BrandAccentColor + + + + Enabled + + + + Identity + + + + + + + + DeserializedTeamsEventsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.TeamsEventsPolicy + + + + + + + + Identity + + + + AllowWebinars + + + + ForceStreamingAttendeeMode + + + + EventAccessType + + + + Description + + + + + + + + DeserializedMobilityPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Mobility.MobilityPolicy + + + + + + + + Identity + + + + Description + + + + EnableOutsideVoice + + + + EnableMobility + + + + EnableIPAudioVideo + + + + RequireWIFIForIPVideo + + + + AllowCustomerExperienceImprovementProgram + + + + RequireWiFiForSharing + + + + AllowSaveCallLogs + + + + AllowExchangeConnectivity + + + + AllowSaveIMHistory + + + + AllowSaveCredentials + + + + EnablePushNotifications + + + + EncryptAppData + + + + AllowDeviceContactsSync + + + + RequireIntune + + + + AllowAutomaticPstnFallback + + + + VoiceSettings + + + + + + + + DeserializedOnlineDialinConferencingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialinConferencing.OnlineDialinConferencingPolicy + + + + + + + + Identity + + + + AllowService + + + + Description + + + + + + + + DeserializedOnlineDialOutPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialOut.OnlineDialOutPolicy + + + + + + + + Identity + + + + AllowPSTNConferencingDialOutType + + + + AllowPSTNOutboundCallingType + + + + + + + + DeserializedOnlineVoicemailPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineVoicemail.OnlineVoicemailPolicy + + + + + + + + Identity + + + + EnableTranscription + + + + ShareData + + + + EnableTranscriptionProfanityMasking + + + + EnableEditingCallAnswerRulesSetting + + + + MaximumRecordingLength + + + + EnableTranscriptionTranslation + + + + PrimarySystemPromptLanguage + + + + SecondarySystemPromptLanguage + + + + + + + + DeserializedPersistentChatPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.PersistentChat.PersistentChatPolicy + + + + + + + + Identity + + + + Description + + + + EnablePersistentChat + + + + + + + + DeserializedPresencePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Presence.PresencePolicy + + + + + + + + Identity + + + + MaxPromptedSubscriber + + + + MaxCategorySubscription + + + + Description + + + + + + + + DeserializedTenantPowerShellPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.RemotePowershell.TenantPowerShellPolicy + + + + + + + + Identity + + + + EnableRemotePowerShellAccess + + + + MaxConnectionsPerTenant + + + + MaxConnectionsPerUser + + + + MaxCmdletsBeforePause + + + + MaxCmdletsPauseSeconds + + + + BypassSkuRestrictions + + + + + + + + DeserializedSmsServicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Sms.SmsServicePolicy + + + + + + + + Identity + + + + Description + + + + ProxyServiceUrl + + + + EnablePersonalInvite + + + + EnableOutboundIM + + + + SendIMMessageContent + + + + + + + + DeserializedTeamsCallingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallingPolicy + + + + + + + + Identity + + + + Description + + + + AllowPrivateCalling + + + + AllowWebPSTNCalling + + + + AllowSIPDevicesCalling + + + + AllowVoicemail + + + + AllowCallGroups + + + + AllowDelegation + + + + AllowCallForwardingToUser + + + + AllowCallForwardingToPhone + + + + PreventTollBypass + + + + BusyOnBusyEnabledType + + + + MusicOnHoldEnabledType + + + + AllowCloudRecordingForCalls + + + + AllowTranscriptionForCalling + + + + PopoutForIncomingPstnCalls + + + + PopoutAppPathForIncomingPstnCalls + + + + LiveCaptionsEnabledTypeForCalling + + + + AutoAnswerEnabledType + + + + SpamFilteringEnabledType + + + + CallRecordingExpirationDays + + + + AllowCallRedirect + + + + + + + + DeserializedTeamsInteropPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsInteropPolicy + + + + + + + + Identity + + + + AllowEndUserClientOverride + + + + CallingDefaultClient + + + + ChatDefaultClient + + + + + + + + DeserializedTeamsMessagingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMessagingPolicy + + + + + + + + Identity + + + + Description + + + + AllowUrlPreviews + + + + AllowOwnerDeleteMessage + + + + AllowUserEditMessage + + + + AllowUserDeleteMessage + + + + AllowUserDeleteChat + + + + AllowUserChat + + + + AllowRemoveUser + + + + AllowGiphy + + + + GiphyRatingType + + + + AllowGiphyDisplay + + + + AllowPasteInternetImage + + + + AllowMemes + + + + AllowImmersiveReader + + + + AllowStickers + + + + AllowUserTranslation + + + + ReadReceiptsEnabledType + + + + AllowPriorityMessages + + + + AllowSmartReply + + + + AllowSmartCompose + + + + ChannelsInChatListEnabledType + + + + AudioMessageEnabledType + + + + ChatPermissionRole + + + + AllowFullChatPermissionUserToDeleteAnyMessage + + + + AllowFluidCollaborate + + + + AllowVideoMessages + + + + AllowCommunicationComplianceEndUserReporting + + + + + + + + DeserializedTeamsUpgradePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy + + + + + + + + Identity + + + + Description + + + + Mode + + + + NotifySfbUsers + + + + Action + + + + + + + + DeserializedTeamsUpgradeOverridePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradeOverridePolicy + + + + + + + + Identity + + + + Description + + + + ProvisionedAsTeamsOnly + + + + SkypePoolMode + + + + Action + + + + Enabled + + + + + + + + DeserializedTeamsMediaLoggingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMediaLoggingPolicy + + + + + + + + Identity + + + + Description + + + + AllowMediaLogging + + + + + + + + DeserializedTeamsVideoInteropServicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVideoInteropServicePolicy + + + + + + + + Identity + + + + Description + + + + ProviderName + + + + Enabled + + + + + + + + DeserializedTeamsWorkLoadPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsWorkLoadPolicy + + + + + + + + Identity + + + + Description + + + + AllowMeeting + + + + AllowMeetingPinned + + + + AllowMessaging + + + + AllowMessagingPinned + + + + AllowCalling + + + + AllowCallingPinned + + + + + + + + DeserializedTeamsCortanaPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCortanaPolicy + + + + + + + + Identity + + + + Description + + + + CortanaVoiceInvocationMode + + + + AllowCortanaVoiceInvocation + + + + AllowCortanaAmbientListening + + + + AllowCortanaInContextSuggestions + + + + + + + + DeserializedTeamsOwnersPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsOwnersPolicy + + + + + + + + Identity + + + + Description + + + + AllowPrivateTeams + + + + AllowOrgwideTeams + + + + AllowPublicTeams + + + + + + + + DeserializedTeamsMeetingBroadcastPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMeetingBroadcastPolicy + + + + + + + + Identity + + + + Description + + + + AllowBroadcastScheduling + + + + AllowBroadcastTranscription + + + + BroadcastAttendeeVisibilityMode + + + + BroadcastRecordingMode + + + + + + + + DeserializedTeamsAppPermissionPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppPermissionPolicy + + + + + + + + Identity + + + + DefaultCatalogApps + + + + GlobalCatalogApps + + + + PrivateCatalogApps + + + + Description + + + + DefaultCatalogAppsType + + + + GlobalCatalogAppsType + + + + PrivateCatalogAppsType + + + + + + + + DeserializedDefaultCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.DefaultCatalogApp + + + + + + + + Id + + + + + + + + DeserializedDefaultCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.DefaultCatalogApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedGlobalCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.GlobalCatalogApp + + + + + + + + Id + + + + + + + + DeserializedGlobalCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.GlobalCatalogApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedPrivateCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PrivateCatalogApp + + + + + + + + Id + + + + + + + + DeserializedPrivateCatalogAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PrivateCatalogApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedTeamsAppSetupPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppSetupPolicy + + + + + + + + Identity + + + + AppPresetList + + + + PinnedAppBarApps + + + + PinnedMessageBarApps + + + + AppPresetMeetingList + + + + Description + + + + AllowSideLoading + + + + AllowUserPinning + + + + + + + + DeserializedAppPresetView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPreset + + + + + + + + Id + + + + + + + + DeserializedAppPresetView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPreset#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedPinnedAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedApp + + + + + + + + Id + + + + Order + + + + + + + + DeserializedPinnedAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + Order + + + + + + + + DeserializedPinnedMessageBarAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedMessageBarApp + + + + + + + + Id + + + + Order + + + + + + + + DeserializedPinnedMessageBarAppView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedMessageBarApp#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + Order + + + + + + + + DeserializedAppPresetMeetingView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPresetMeeting + + + + + + + + Id + + + + + + + + DeserializedAppPresetMeetingView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPresetMeeting#Decorated + + + + + + + + Identity + + + + Priority + + + + Id + + + + + + + + DeserializedTeamsCallParkPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallParkPolicy + + + + + + + + Identity + + + + Description + + + + AllowCallPark + + + + PickupRangeStart + + + + PickupRangeEnd + + + + ParkTimeoutSeconds + + + + + + + + DeserializedTeamsEducationAssignmentsAppPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEducationAssignmentsAppPolicy + + + + + + + + Identity + + + + ParentDigestEnabledType + + + + MakeCodeEnabledType + + + + TurnItInEnabledType + + + + TurnItInApiUrl + + + + TurnItInApiKey + + + + + + + + DeserializedTeamsEmergencyCallRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallRoutingPolicy + + + + + + + + Identity + + + + EmergencyNumbers + + + + AllowEnhancedEmergencyServices + + + + Description + + + + + + + + DeserializedTeamsEmergencyNumberView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyNumber + + + + + + + + EmergencyDialString + + + + EmergencyDialMask + + + + OnlinePSTNUsage + + + + + + + + DeserializedTeamsEmergencyCallingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallingPolicy + + + + + + + + Identity + + + + NotificationGroup + + + + NotificationDialOutNumber + + + + ExternalLocationLookupMode + + + + NotificationMode + + + + EnhancedEmergencyServiceDisclaimer + + + + Description + + + + + + + + DeserializedTeamsUpdateManagementPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpdateManagementPolicy + + + + + + + + Identity + + + + Description + + + + AllowManagedUpdates + + + + AllowPreview + + + + UpdateDayOfWeek + + + + UpdateTime + + + + UpdateTimeOfDay + + + + AllowPublicPreview + + + + + + + + DeserializedTeamsNotificationAndFeedsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNotificationAndFeedsPolicy + + + + + + + + Identity + + + + Description + + + + SuggestedFeedsEnabledType + + + + TrendingFeedsEnabledType + + + + + + + + DeserializedTeamsChannelsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsChannelsPolicy + + + + + + + + Identity + + + + Description + + + + AllowOrgWideTeamCreation + + + + AllowPrivateTeamDiscovery + + + + AllowPrivateChannelCreation + + + + AllowSharedChannelCreation + + + + AllowChannelSharingToExternalUser + + + + AllowUserToParticipateInExternalSharedChannel + + + + + + + + DeserializedTeamsMobilityPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMobilityPolicy + + + + + + + + Identity + + + + Description + + + + IPVideoMobileMode + + + + IPAudioMobileMode + + + + MobileDialerPreference + + + + + + + + DeserializedTeamsSyntheticAutomatedCallPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsSyntheticAutomatedCallPolicy + + + + + + + + Identity + + + + Description + + + + SyntheticAutomatedCallsMode + + + + + + + + DeserializedTeamsTargetingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsTargetingPolicy + + + + + + + + Identity + + + + Description + + + + ManageTagsPermissionMode + + + + TeamOwnersEditWhoCanManageTagsMode + + + + SuggestedPresetTags + + + + CustomTagsMode + + + + ShiftBackedTagsMode + + + + + + + + DeserializedTeamsIPPhonePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsIPPhonePolicy + + + + + + + + Identity + + + + Description + + + + SignInMode + + + + SearchOnCommonAreaPhoneMode + + + + AllowHomeScreen + + + + AllowBetterTogether + + + + AllowHotDesking + + + + HotDeskingIdleTimeoutInMinutes + + + + + + + + DeserializedTeamsVerticalPackagePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVerticalPackagePolicy + + + + + + + + Identity + + + + PackageIncludedPolices + + + + Description + + + + PackageId + + + + FirstRunExperienceId + + + + + + + + DeserializedPolicyTypeToPolicyInstanceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PolicyTypeToPolicyInstance + + + + + + + + PolicyType + + + + PolicyName + + + + + + + + DeserializedTeamsFeedbackPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFeedbackPolicy + + + + + + + + Identity + + + + UserInitiatedMode + + + + ReceiveSurveysMode + + + + AllowScreenshotCollection + + + + AllowEmailCollection + + + + AllowLogCollection + + + + + + + + DeserializedTeamsComplianceRecordingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsComplianceRecordingPolicy + + + + + + + + Identity + + + + ComplianceRecordingApplications + + + + Enabled + + + + WarnUserOnRemoval + + + + DisableComplianceRecordingAudioNotificationForCalls + + + + Description + + + + + + + + DeserializedComplianceRecordingApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication + + + + + + + + ComplianceRecordingPairedApplications + + + + Id + + + + RequiredBeforeMeetingJoin + + + + RequiredBeforeCallEstablishment + + + + RequiredDuringMeeting + + + + RequiredDuringCall + + + + ConcurrentInvitationCount + + + + + + + + DeserializedComplianceRecordingApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication#Decorated + + + + + + + + Identity + + + + Priority + + + + ComplianceRecordingPairedApplications + + + + Id + + + + RequiredBeforeMeetingJoin + + + + RequiredBeforeCallEstablishment + + + + RequiredDuringMeeting + + + + RequiredDuringCall + + + + ConcurrentInvitationCount + + + + + + + + DeserializedComplianceRecordingPairedApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingPairedApplication + + + + + + + + Id + + + + + + + + DeserializedTeamsShiftsAppPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsAppPolicy + + + + + + + + Identity + + + + AllowTimeClockLocationDetection + + + + + + + + DeserializedTeamsShiftsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsPolicy + + + + + + + + Identity + + + + EnableShiftPresence + + + + ShiftNoticeFrequency + + + + ShiftNoticeMessageType + + + + ShiftNoticeMessageCustom + + + + AccessType + + + + AccessGracePeriodMinutes + + + + EnableScheduleOwnerPermissions + + + + + + + + DeserializedTeamsTasksPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsTasksPolicy + + + + + + + + Identity + + + + TasksMode + + + + AllowActivityWhenTasksPublished + + + + + + + + DeserializedTeamsVdiPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVdiPolicy + + + + + + + + Identity + + + + DisableCallsAndMeetings + + + + DisableAudioVideoInCallsAndMeetings + + + + + + + + DeserializedTeamsNetworkRoamingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNetworkRoamingPolicy + + + + + + + + Identity + + + + AllowIPVideo + + + + MediaBitRateKb + + + + Description + + + + + + + + DeserializedTeamsCarrierEmergencyCallRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCarrierEmergencyCallRoutingPolicy + + + + + + + + Identity + + + + LocationPolicyId + + + + Description + + + + + + + + DeserializedTeamsCallHoldPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallHoldPolicy + + + + + + + + Identity + + + + Description + + + + AudioFileId + + + + + + + + DeserializedTeamsEnhancedEncryptionPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEnhancedEncryptionPolicy + + + + + + + + Identity + + + + CallingEndtoEndEncryptionEnabledType + + + + MeetingEndToEndEncryption + + + + Description + + + + + + + + DeserializedTeamsFilesPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFilesPolicy + + + + + + + + Identity + + + + NativeFileEntryPoints + + + + SPChannelFilesTab + + + + + + + + DeserializedTeamsWatermarkPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsWatermarkPolicy + + + + + + + + Identity + + + + AllowForScreenSharing + + + + AllowForCameraVideo + + + + Description + + + + + + + + DeserializedTeamsVoiceApplicationsPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVoiceApplicationsPolicy + + + + + + + + Identity + + + + Description + + + + AllowAutoAttendantBusinessHoursGreetingChange + + + + AllowAutoAttendantAfterHoursGreetingChange + + + + AllowAutoAttendantHolidayGreetingChange + + + + AllowAutoAttendantBusinessHoursChange + + + + AllowAutoAttendantTimeZoneChange + + + + AllowAutoAttendantLanguageChange + + + + AllowAutoAttendantHolidaysChange + + + + AllowAutoAttendantBusinessHoursRoutingChange + + + + AllowAutoAttendantAfterHoursRoutingChange + + + + AllowAutoAttendantHolidayRoutingChange + + + + AllowCallQueueWelcomeGreetingChange + + + + AllowCallQueueMusicOnHoldChange + + + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + + + AllowCallQueueTimeoutSharedVoicemailGreetingChange + + + + AllowCallQueueOptOutChange + + + + AllowCallQueueAgentOptChange + + + + AllowCallQueueMembershipChange + + + + AllowCallQueueRoutingMethodChange + + + + AllowCallQueuePresenceBasedRoutingChange + + + + CallQueueAgentMonitorMode + + + + CallQueueAgentMonitorNotificationMode + + + + AllowCallQueueLanguageChange + + + + AllowCallQueueOverflowRoutingChange + + + + AllowCallQueueTimeoutRoutingChange + + + + AllowCallQueueNoAgentsRoutingChange + + + + AllowCallQueueConferenceModeChange + + + + + + + + DeserializedTeamsRoomVideoTeleConferencingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsRoomVideoTeleConferencingPolicy + + + + + + + + Identity + + + + Description + + + + Enabled + + + + AreaCode + + + + ReceiveExternalCalls + + + + ReceiveInternalCalls + + + + PlaceExternalCalls + + + + PlaceInternalCalls + + + + + + + + DeserializedTeamsMeetingTemplatePermissionPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMeetingTemplatePermissionPolicy + + + + + + + + Identity + + + + HiddenMeetingTemplates + + + + Description + + + + + + + + DeserializedHiddenMeetingTemplateView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.HiddenMeetingTemplate + + + + + + + + Id + + + + + + + + DeserializedTeamsAudioConferencingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.TeamsAudioConferencing.TeamsAudioConferencingPolicy + + + + + + + + Identity + + + + MeetingInvitePhoneNumbers + + + + AllowTollFreeDialin + + + + + + + + DeserializedThirdPartyVideoSystemPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ThirdPartyVideoSystem.ThirdPartyVideoSystemPolicy + + + + + + + + Identity + + + + SupportsSendingLowResolution + + + + + + + + DeserializedUserExperiencePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserExperience.UserExperiencePolicy + + + + + + + + Identity + + + + UserExperienceVersion + + + + + + + + DeserializedUserPinPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserPin.UserPinPolicy + + + + + + + + Identity + + + + Description + + + + MinPasswordLength + + + + PINHistoryCount + + + + AllowCommonPatterns + + + + PINLifetime + + + + MaximumLogonAttempts + + + + + + + + DeserializedUserServicesPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.UserServices.UserServicesPolicy + + + + + + + + Identity + + + + UcsAllowed + + + + MigrationDelayInDays + + + + EnableAwaySinceIndication + + + + + + + + DeserializedPstnUsagesView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.PstnUsages + + + + + + + + Identity + + + + Usage + + + + + + + + DeserializedOnlinePstnUsagesView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlinePstnUsages + + + + + + + + Identity + + + + Usage + + + + + + + + DeserializedRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route + + + + + + + + Description + + + + NumberPattern + + + + PstnUsages + + + + PstnGatewayList + + + + Name + + + + SuppressCallerId + + + + AlternateCallerId + + + + + + + + DeserializedRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + NumberPattern + + + + PstnUsages + + + + PstnGatewayList + + + + Name + + + + SuppressCallerId + + + + AlternateCallerId + + + + + + + + DeserializedPstnRoutingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.PstnRoutingSettings + + + + + + + + Identity + + + + Route + + + + EnableLocationBasedRouting + + + + CallViaWorkCallerId + + + + + + + + DeserializedHostedVoicemailPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.HostedVoicemailPolicy + + + + + + + + Identity + + + + Description + + + + Destination + + + + Organization + + + + BusinessVoiceEnabled + + + + NgcEnabled + + + + + + + + DeserializedOnlineRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineRoute + + + + + + + + Description + + + + NumberPattern + + + + OnlinePstnUsages + + + + OnlinePstnGatewayList + + + + BridgeSourcePhoneNumber + + + + Name + + + + + + + + DeserializedOnlineRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineRoute#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + NumberPattern + + + + OnlinePstnUsages + + + + OnlinePstnGatewayList + + + + BridgeSourcePhoneNumber + + + + Name + + + + + + + + DeserializedOnlinePstnRoutingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlinePstnRoutingSettings + + + + + + + + Identity + + + + OnlineRoute + + + + + + + + DeserializedTenantBlockedCallingNumbersView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantBlockedCallingNumbers + + + + + + + + Identity + + + + InboundBlockedNumberPatterns + + + + InboundExemptNumberPatterns + + + + Enabled + + + + Name + + + + + + + + DeserializedInboundBlockedNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern + + + + + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedInboundBlockedNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern#Decorated + + + + + + + + Identity + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedOutboundBlockedNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OutboundBlockedNumberPattern + + + + + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedOutboundBlockedNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OutboundBlockedNumberPattern#Decorated + + + + + + + + Identity + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedInboundExemptNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern + + + + + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedInboundExemptNumberPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern#Decorated + + + + + + + + Identity + + + + Name + + + + Enabled + + + + Description + + + + Pattern + + + + + + + + DeserializedLocationProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile + + + + + + + + Identity + + + + Description + + + + DialinConferencingRegion + + + + NormalizationRules + + + + PriorityNormalizationRules + + + + CountryCode + + + + State + + + + City + + + + SimpleName + + + + ITUCountryPrefix + + + + + + + + DeserializedNormalizationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule + + + + + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + IsInternalExtension + + + + + + + + DeserializedNormalizationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + IsInternalExtension + + + + + + + + DeserializedTenantDialPlanView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantDialPlan + + + + + + + + Identity + + + + Description + + + + NormalizationRules + + + + SimpleName + + + + + + + + DeserializedVoicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoicePolicy + + + + + + + + Identity + + + + PstnUsages + + + + CustomCallForwardingSimulRingUsages + + + + Description + + + + AllowSimulRing + + + + AllowCallForwarding + + + + AllowPSTNReRouting + + + + Name + + + + EnableDelegation + + + + EnableTeamCall + + + + EnableCallTransfer + + + + EnableCallPark + + + + EnableBusyOptions + + + + EnableMaliciousCallTracing + + + + EnableBWPolicyOverride + + + + PreventPSTNTollBypass + + + + EnableFMC + + + + CallForwardingSimulRingUsageType + + + + EnableVoicemailEscapeTimer + + + + PSTNVoicemailEscapeTimer + + + + + + + + DeserializedCallerIdPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.CallerIdPolicy + + + + + + + + Identity + + + + Description + + + + Name + + + + EnableUserOverride + + + + ServiceNumber + + + + CallerIDSubstitute + + + + + + + + DeserializedCallingLineIdentityView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.CallingLineIdentity + + + + + + + + Identity + + + + Description + + + + EnableUserOverride + + + + ServiceNumber + + + + CallingIDSubstitute + + + + BlockIncomingPstnCallerID + + + + ResourceAccount + + + + CompanyName + + + + + + + + DeserializedNgcBvMigrationPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NgcBvMigrationPolicy + + + + + + + + Identity + + + + Description + + + + PstnOut + + + + + + + + DeserializedTestConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration + + + + + + + + Name + + + + DialedNumber + + + + TargetDialplan + + + + TargetVoicePolicy + + + + ExpectedTranslatedNumber + + + + ExpectedUsage + + + + ExpectedRoute + + + + + + + + DeserializedTestConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TestConfiguration#Decorated + + + + + + + + Identity + + + + Name + + + + DialedNumber + + + + TargetDialplan + + + + TargetVoicePolicy + + + + ExpectedTranslatedNumber + + + + ExpectedUsage + + + + ExpectedRoute + + + + + + + + DeserializedVoiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceConfiguration + + + + + + + + Identity + + + + VoiceTestConfigurations + + + + + + + + DeserializedUcPhoneSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.UcPhoneSettings + + + + + + + + Identity + + + + CalendarPollInterval + + + + EnforcePhoneLock + + + + PhoneLockTimeout + + + + MinPhonePinLength + + + + SIPSecurityMode + + + + VoiceDiffServTag + + + + Voice8021p + + + + LoggingLevel + + + + + + + + DeserializedHostedVoicemailPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.HostedVoicemailPolicy + + + + + + + + Identity + + + + Description + + + + Destination + + + + Organization + + + + + + + + DeserializedVoiceRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.VoiceRoutingPolicy + + + + + + + + Identity + + + + PstnUsages + + + + Description + + + + Name + + + + + + + + DeserializedOnlineVoiceRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineVoiceRoutingPolicy + + + + + + + + Identity + + + + OnlinePstnUsages + + + + Description + + + + RouteType + + + + + + + + DeserializedOnlineAudioConferencingRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineAudioConferencingRoutingPolicy + + + + + + + + Identity + + + + OnlinePstnUsages + + + + Description + + + + RouteType + + + + + + + + DeserializedSurvivableBranchApplianceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.SurvivableBranchAppliance + + + + + + + + Fqdn + + + + Site + + + + Description + + + + + + + + DeserializedSurvivableBranchApplianceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.SurvivableBranchAppliance#Decorated + + + + + + + + Identity + + + + Fqdn + + + + Site + + + + Description + + + + + + + + DeserializedTeamsBranchSurvivabilityPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TeamsBranchSurvivabilityPolicy + + + + + + + + Identity + + + + BranchApplianceFqdns + + + + + + + + DeserializedXForestMovePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.XForestMovePolicy + + + + + + + + Identity + + + + FeaturePreferences + + + + DestinationServiceInstance + + + + MoveType + + + + Forced + + + + MoveDate + + + + OffPeakStartInUTC + + + + OffPeakEndInUTC + + + + + + + + DeserializedFeaturePreferenceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.FeaturePreference + + + + + + + + Name + + + + Behaviour + + + + + + + + DeserializedServiceInstanceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.ServiceInstance + + + + + + + + Name + + + + + + + + DeserializedPreferredDataLocationOverwritePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.XForestMove.PreferredDataLocationOverwritePolicy + + + + + + + + Identity + + + + NewPreferredDataLocation + + + + OwnerServiceInstance + + + + OriginalPreferredDataLocation + + + + + + + + DeserializedACPIntegrationSettingView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ACPIntegration.ACPIntegrationSetting + + + + + + + + Identity + + + + Mode + + + + + + + + DeserializedTeamsAcsFederationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsConfiguration.TeamsAcsFederationConfiguration + + + + + + + + Identity + + + + AllowedAcsResources + + + + EnableAcsUsers + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.TrunkConfig + + + + + + + + Fqdn + + + + SipSignalingPort + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.TrunkConfig#Decorated + + + + + + + + Identity + + + + Fqdn + + + + SipSignalingPort + + + + + + + + DeserializedOnlineRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.OnlineRoute + + + + + + + + Description + + + + NumberPattern + + + + OnlinePstnGatewayList + + + + Name + + + + + + + + DeserializedOnlineRouteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsResourceCallingConfiguration.OnlineRoute#Decorated + + + + + + + + Identity + + + + Description + + + + NumberPattern + + + + OnlinePstnGatewayList + + + + Name + + + + + + + + DeserializedAddressBookSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookSettings + + + + + + + + Identity + + + + RunTimeOfDay + + + + KeepDuration + + + + SynchronizePollingInterval + + + + MaxDeltaFileSizePercentage + + + + UseNormalizationRules + + + + IgnoreGenericRules + + + + EnableFileGeneration + + + + MaxFileShareThreadCount + + + + EnableSearchByDialPad + + + + EnablePhotoSearch + + + + PhotoCacheRefreshInterval + + + + + + + + DeserializedAddressBookNormalizationSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationSettings + + + + + + + + Identity + + + + AddressBookNormalizationRules + + + + + + + + DeserializedAddressBookNormalizationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule + + + + + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedAddressBookNormalizationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookNormalizationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedAddressBookGatingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingSettings + + + + + + + + Identity + + + + AddressBookGatingTenants + + + + AzureDirectoryForGroupExpansionEnabled + + + + AzureDirectoryForGroupExpansionPercent + + + + AzureDirectoryForUserSearchEnabled + + + + AzureDirectoryForUserSearchPercent + + + + AzureDirectoryForUserSearchServiceUrl + + + + + + + + DeserializedAddressBookGatingTenantView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingTenant + + + + + + + + AzureDirectorySearchEnabledUsers + + + + TenantId + + + + AzureDirectoryForGroupExpansionEnabled + + + + AzureDirectoryForGroupExpansionPercent + + + + AzureDirectoryForUserSearchEnabled + + + + AzureDirectoryForUserSearchPercent + + + + + + + + DeserializedAddressBookGatingTenantView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.AddressBookGatingTenant#Decorated + + + + + + + + Identity + + + + Priority + + + + AzureDirectorySearchEnabledUsers + + + + TenantId + + + + AzureDirectoryForGroupExpansionEnabled + + + + AzureDirectoryForGroupExpansionPercent + + + + AzureDirectoryForUserSearchEnabled + + + + AzureDirectoryForUserSearchPercent + + + + + + + + DeserializedAnnouncementView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement + + + + + + + + Name + + + + AudioFilePrompt + + + + TextToSpeechPrompt + + + + Language + + + + TargetUri + + + + AnnouncementId + + + + + + + + DeserializedAnnouncementView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AnnouncementServiceSettings.Announcement#Decorated + + + + + + + + Identity + + + + Name + + + + AudioFilePrompt + + + + TextToSpeechPrompt + + + + Language + + + + TargetUri + + + + AnnouncementId + + + + + + + + DeserializedVoicePolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.VoicePolicy + + + + + + + + Identity + + + + PstnUsages + + + + CustomCallForwardingSimulRingUsages + + + + Description + + + + AllowSimulRing + + + + AllowCallForwarding + + + + AllowPSTNReRouting + + + + Name + + + + EnableDelegation + + + + EnableTeamCall + + + + EnableCallTransfer + + + + EnableCallPark + + + + EnableBusyOptions + + + + EnableMaliciousCallTracing + + + + EnableBWPolicyOverride + + + + PreventPSTNTollBypass + + + + EnableFMC + + + + CallForwardingSimulRingUsageType + + + + VoiceDeploymentMode + + + + EnableVoicemailEscapeTimer + + + + PSTNVoicemailEscapeTimer + + + + TenantAdminEnabled + + + + BusinessVoiceEnabled + + + + + + + + DeserializedArchivingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Archiving.ArchivingSettings + + + + + + + + Identity + + + + EnableArchiving + + + + EnablePurging + + + + PurgeExportedArchivesOnly + + + + BlockOnArchiveFailure + + + + KeepArchivingDataForDays + + + + PurgeHourOfDay + + + + ArchiveDuplicateMessages + + + + CachePurgingInterval + + + + EnableExchangeArchiving + + + + EnableExchangeFileAttachmentCompression + + + + ExchangeFileAttachmentSizeLimit + + + + PurgeMinuteOfPurgeHourOfDay + + + + PurgeTaskWakeupIntervalMinutes + + + + V2PurgeReportingIntervalMinutes + + + + V2PurgeTimeoutMinutes + + + + V2PurgeMaxRetries + + + + V2PurgeMaxDegreeOfParallelism + + + + UseV2PurgingAlgorithm + + + + + + + + DeserializedAudioConferencingProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingProvider + + + + + + + + Name + + + + Url + + + + Domain + + + + Port + + + + + + + + DeserializedAudioConferencingProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingProvider#Decorated + + + + + + + + Identity + + + + Name + + + + Url + + + + Domain + + + + Port + + + + + + + + DeserializedAudioConferencingFeatureConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioConferencingProvider.AudioConferencingFeatureConfiguration + + + + + + + + Identity + + + + EnableAutoSessionsControl + + + + EnableHttpNotifications + + + + EnableConferencingLobby + + + + + + + + DeserializedAudioTeleconferencingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AudioTeleconferencing.AudioTeleconferencingServiceConfiguration + + + + + + + + Identity + + + + AllowedClientCertificates + + + + ConversationServiceUri + + + + + + + + DeserializedAutodiscoverConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AutodiscoverConfiguration.AutodiscoverConfiguration + + + + + + + + Identity + + + + WebLinks + + + + ExternalSipClientAccessFqdn + + + + ExternalSipClientAccessPort + + + + EnableCertificateProvisioningServiceUrl + + + + EnableCORS + + + + + + + + DeserializedWebLinkView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AutodiscoverConfiguration.WebLink + + + + + + + + Token + + + + Href + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig + + + + + + + + InboundTeamsNumberTranslationRules + + + + InboundPstnNumberTranslationRules + + + + OutboundPstnNumberTranslationRules + + + + Fqdn + + + + SipSignalingPort + + + + FailoverTimeSeconds + + + + ForwardCallHistory + + + + ForwardPai + + + + SendSipOptions + + + + MaxConcurrentSessions + + + + Enabled + + + + MediaBypass + + + + GatewaySiteId + + + + GatewaySiteLbrEnabled + + + + GatewayLbrEnabledUserOverride + + + + FailoverResponseCodes + + + + PidfLoSupported + + + + MediaRelayRoutingLocationOverride + + + + ProxySbc + + + + BypassMode + + + + Description + + + + IPAddressVersion + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated + + + + + + + + Identity + + + + InboundTeamsNumberTranslationRules + + + + InboundPstnNumberTranslationRules + + + + OutboundPstnNumberTranslationRules + + + + Fqdn + + + + SipSignalingPort + + + + FailoverTimeSeconds + + + + ForwardCallHistory + + + + ForwardPai + + + + SendSipOptions + + + + MaxConcurrentSessions + + + + Enabled + + + + MediaBypass + + + + GatewaySiteId + + + + GatewaySiteLbrEnabled + + + + GatewayLbrEnabledUserOverride + + + + FailoverResponseCodes + + + + PidfLoSupported + + + + MediaRelayRoutingLocationOverride + + + + ProxySbc + + + + BypassMode + + + + Description + + + + IPAddressVersion + + + + + + + + DeserializedPstnTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.PstnTranslationRule + + + + + + + + Name + + + + Description + + + + Pattern + + + + Translation + + + + + + + + DeserializedPstnTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.PstnTranslationRule#Decorated + + + + + + + + Identity + + + + Name + + + + Description + + + + Pattern + + + + Translation + + + + + + + + DeserializedBackupServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BackupService.BackupServiceConfiguration + + + + + + + + Identity + + + + SyncInterval + + + + MaxConcurrentCalls + + + + AuthorizedUniversalGroups + + + + AuthorizedLocalAccounts + + + + MaxBatchesPerCmsSync + + + + MaxBatchesPerUserStoreSync + + + + MaxDataConfPackageSizeKB + + + + MaxHighPriQueuePercentagePerUserStoreSync + + + + CmsMaintenanceInterval + + + + + + + + DeserializedBandwidthPolicyServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BandwidthPolicyServiceConfiguration.BandwidthPolicyServiceConfiguration + + + + + + + + Identity + + + + MaxTokenLifetime + + + + LogCleanUpInterval + + + + MaxLogFileSizeMb + + + + EnableLogging + + + + + + + + DeserializedBIConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BIConfiguration.BIConfiguration + + + + + + + + Identity + + + + EnableBI + + + + CosmosVirtualClusterPath + + + + KeepCosmosSummaryDataForDays + + + + KeepCosmosRawDataForDays + + + + CosmosCredentialUserName + + + + CosmosCredentialPassword + + + + PrimaryCosmosCredentialUserName + + + + PrimaryCosmosCredentialPassword + + + + SecondaryCosmosCredentialUserName + + + + SecondaryCosmosCredentialPassword + + + + SyncIntervalInSeconds + + + + EnableFlag + + + + PrimaryCosmosCredentialExpirationDate + + + + SecondaryCosmosCredentialExpirationDate + + + + + + + + DeserializedAzureConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BRB.AzureConfiguration + + + + + + + + Identity + + + + AzureStorageAccountName + + + + AzureStorageAccountKey + + + + AzureStorageAccountKeyNew + + + + TMXStorageAccountName + + + + TMXStorageAccountKey + + + + TMXStorageAccountKeyNew + + + + SQLStorageSource + + + + SQLStorageDatabase + + + + SQLStorageUserId + + + + AzureSQLStoragePassword + + + + AzureSQLStoragePasswordNew + + + + + + + + DeserializedBusinessVoiceTenantFlightingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceTenantFlightingSettings + + + + + + + + Identity + + + + DefaultRing + + + + + + + + DeserializedPstnEntitlementSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.PstnEntitlementSettings + + + + + + + + Identity + + + + Regions + + + + EnableChecks + + + + MaximumTickRequests + + + + SyncInboundCalls + + + + SyncOutboundCalls + + + + + + + + DeserializedPstnEntitlementRegionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.PstnEntitlementRegion + + + + + + + + Region + + + + EnableChecks + + + + Url + + + + + + + + DeserializedBusinessVoiceFeatureConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceFeatureConfiguration + + + + + + + + Identity + + + + EnableAnnouncements + + + + EnableCarrierProfileFlighting + + + + EnableMedSrvRingBasedRouting + + + + EnableRingBasedBVRouting + + + + EnableCallerIdFlighting + + + + DefaultMediationServerRing + + + + EnableDiagCodesWhitelistForAnsServiceSupport + + + + DiagCodesForAnsService + + + + EnableTenantDialPlans + + + + EnableAcmsReadForTranslationService + + + + OverrideDefaultProfile + + + + EnableEcsFlighting + + + + EnableSmartRetry + + + + + + + + DeserializedBusinessVoiceCarrierProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfile + + + + + + + + RingRules + + + + Provider + + + + ProviderGuid + + + + DefaultPstnUsage + + + + + + + + DeserializedBusinessVoiceCarrierProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfile#Decorated + + + + + + + + Identity + + + + RingRules + + + + Provider + + + + ProviderGuid + + + + DefaultPstnUsage + + + + + + + + DeserializedBusinessVoiceCarrierProfileRingRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfileRingRule + + + + + + + + Ring + + + + CallType + + + + PstnUsage + + + + + + + + DeserializedBusinessVoiceCarrierProfileConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.BusinessVoice.BusinessVoiceCarrierProfileConfiguration + + + + + + + + Identity + + + + BusinessVoiceCarrierProfile + + + + + + + + DeserializedCdrSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.CdrSettings + + + + + + + + Identity + + + + EnableCDR + + + + EnableUdcLite + + + + EnablePurging + + + + KeepCallDetailForDays + + + + KeepErrorReportForDays + + + + PurgeHourOfDay + + + + + + + + DeserializedCallParkServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallParkServiceSettings.CallParkServiceSettings + + + + + + + + Identity + + + + OnTimeoutURI + + + + MaxCallPickupAttempts + + + + CallPickupTimeoutThreshold + + + + EnableMusicOnHold + + + + + + + + DeserializedCentralizedLoggingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.CentralizedLoggingConfiguration + + + + + + + + Identity + + + + Scenarios + + + + SearchTerms + + + + SecurityGroups + + + + Regions + + + + EtlModeEnabled + + + + EtlFileFolder + + + + EtlFileRolloverSizeMB + + + + EtlFileRolloverMinutes + + + + ZipEtlEnabled + + + + LocalSearchMode + + + + EtlNtfsCompressionEnabled + + + + TmfFileSearchPath + + + + CacheFileLocalFolders + + + + CacheFileNetworkFolder + + + + CacheFileLocalRetentionPeriod + + + + CacheFileLocalMaxDiskUsage + + + + ComponentThrottleLimit + + + + ComponentThrottleSample + + + + MinimumClsAgentServiceVersion + + + + NetworkUsagePacketSize + + + + NetworkUsageThreshold + + + + Version + + + + InsertTypesForSubstringMatch + + + + ETLMinFreeSpaceInDiskInBytes + + + + ETLEnoughFreeSpaceInDiskInBytes + + + + ETLMaxQuotaInBytes + + + + ETLEnoughQuotaInBytes + + + + EtlMaxRetentionInDays + + + + EtlModeRevision + + + + ETLMinQuotaInBytes + + + + LocalSearchModeRevision + + + + + + + + DeserializedScenarioView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Scenario + + + + + + + + Provider + + + + Name + + + + + + + + DeserializedScenarioView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Scenario#Decorated + + + + + + + + Identity + + + + Provider + + + + Name + + + + + + + + DeserializedProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Provider + + + + + + + + Name + + + + Type + + + + Level + + + + Flags + + + + Guid + + + + Role + + + + + + + + DeserializedSearchTermView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SearchTerm + + + + + + + + Type + + + + Inserts + + + + + + + + DeserializedSearchTermView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SearchTerm#Decorated + + + + + + + + Identity + + + + Type + + + + Inserts + + + + + + + + DeserializedSecurityGroupView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SecurityGroup + + + + + + + + Name + + + + AccessLevel + + + + + + + + DeserializedSecurityGroupView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.SecurityGroup#Decorated + + + + + + + + Identity + + + + Name + + + + AccessLevel + + + + + + + + DeserializedRegionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Region + + + + + + + + Name + + + + SecurityGroupSuffix + + + + Sites + + + + OtherRegionAccess + + + + + + + + DeserializedRegionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Region#Decorated + + + + + + + + Identity + + + + Name + + + + SecurityGroupSuffix + + + + Sites + + + + OtherRegionAccess + + + + + + + + DeserializedCloudPresenceServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CloudPresenceService.CloudPresenceServiceConfiguration + + + + + + + + Identity + + + + ServiceUri + + + + EnableCloudPresenceForwarding + + + + BatchSize + + + + BatchDelay + + + + MaxRetries + + + + RetryBackoff + + + + + + + + DeserializedCMSConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CMSConfiguration.CMSConfiguration + + + + + + + + Identity + + + + IOFailureAlertThreshold + + + + OutOfDateAlertThreshold + + + + ReplicationSyntheticTransactionInterval + + + + CheckVersionMismatch + + + + QueryConfigChangesMinimumInterval + + + + QueryConfigChangesInterval + + + + UpdateReplicaStatusTimeout + + + + EnableReplicationSynchronization + + + + EnableUpdateIsActiveFlag + + + + EnableServiceConsumerMdsLogging + + + + EnableAcmsReaderMdsLogging + + + + EnableAcmsToCmsMncTenantSync + + + + AcmsToCmsMncTenantSyncInterval + + + + UseAcmsOnlyForRegistrarConfig + + + + MaxConsecutiveAcmsToCmsMncSyncTransientFailures + + + + AcmsClientHttpClientTimeout + + + + CleanupOrphanedDocsTaskIntervalInSecs + + + + CleanupOrphanedDocsTaskRetryCount + + + + CleanupOrphanedDocsTaskRetryIntervalInSecs + + + + ConcurrentHttpConnectionLimit + + + + MaximumReplicationBatchSize + + + + + + + + DeserializedCMSReplicationSyntheticTransactionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CMSReplicationSyntheticTransaction.CMSReplicationSyntheticTransaction + + + + + + + + Identity + + + + TimeStamp + + + + + + + + DeserializedConferencingGatewayConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ConferencingGatewayConfiguration.ConferencingGatewayConfiguration + + + + + + + + Identity + + + + ConferencingGatewayEndpoint + + + + EnableAudioVideoToConferencingGateway + + + + + + + + DeserializedConversationHistorySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ConversationHistory.ConversationHistorySettings + + + + + + + + Identity + + + + EnableServerConversationHistory + + + + MaxContinuedConversationRetry + + + + EnableDisplayNameResolution + + + + + + + + DeserializedDeploymentConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeploymentConfiguration.DeploymentConfiguration + + + + + + + + Identity + + + + DeploymentType + + + + + + + + DeserializedDeviceUpdateConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.DeviceUpdateConfiguration + + + + + + + + Identity + + + + ValidLogFileTypes + + + + ValidLogFileExtensions + + + + MaxLogFileSize + + + + MaxLogCacheLimit + + + + LogCleanUpInterval + + + + LogFlushInterval + + + + LogCleanUpTimeOfDay + + + + + + + + DeserializedRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Rule + + + + + + + + Id + + + + DeviceType + + + + Brand + + + + Model + + + + Revision + + + + Locale + + + + UpdateType + + + + ApprovedVersion + + + + RestoreVersion + + + + PendingVersion + + + + + + + + DeserializedRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Rule#Decorated + + + + + + + + Identity + + + + Id + + + + DeviceType + + + + Brand + + + + Model + + + + Revision + + + + Locale + + + + UpdateType + + + + ApprovedVersion + + + + RestoreVersion + + + + PendingVersion + + + + + + + + DeserializedDeviceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Device + + + + + + + + Name + + + + IdentifierType + + + + Identifier + + + + + + + + DeserializedDeviceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DeviceUpdate.Device#Decorated + + + + + + + + Identity + + + + Name + + + + IdentifierType + + + + Identifier + + + + + + + + DeserializedDiagnosticFilterSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticFilterSettings + + + + + + + + Identity + + + + Filter + + + + LoggingShare + + + + LogAllSipHeaders + + + + + + + + DeserializedFilterView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.Filter + + + + + + + + Fqdn + + + + Uri + + + + Enabled + + + + ExcludeRegisterMessages + + + + ExcludeConferenceMessages + + + + ExcludePresenceNotifications + + + + ExcludeSubscribeMessages + + + + ExcludeSuccessfulRequests + + + + ExcludeMidDialogRequests + + + + ExcludeTypingNotifications + + + + + + + + DeserializedDiagnosticHeaderSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Diagnostics.DiagnosticHeaderSettings + + + + + + + + Identity + + + + SendToOutsideUnauthenticatedUsers + + + + SendToExternalNetworks + + + + SendToExternalNetworksOnServiceEdge + + + + + + + + DeserializedDialInConferencingDtmfConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingDtmfConfiguration + + + + + + + + Identity + + + + CommandCharacter + + + + MuteUnmuteCommand + + + + AudienceMuteCommand + + + + LockUnlockConferenceCommand + + + + HelpCommand + + + + PrivateRollCallCommand + + + + EnableDisableAnnouncementsCommand + + + + AdmitAll + + + + OperatorLineUri + + + + + + + + DeserializedDialInConferencingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingConfiguration + + + + + + + + Identity + + + + EntryExitAnnouncementsType + + + + BatchToneAnnouncements + + + + EnableNameRecording + + + + EntryExitAnnouncementsEnabledByDefault + + + + PinAuthType + + + + EnableAccessibilityOptions + + + + + + + + DeserializedDialInConferencingLanguageListView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.DialInConferencingLanguageList + + + + + + + + Identity + + + + Languages + + + + + + + + DeserializedTenantFederationSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings + + + + + + + + Identity + + + + AllowedDomains + + + + BlockedDomains + + + + AllowedTrialTenantDomains + + + + AllowFederatedUsers + + + + AllowTeamsConsumer + + + + AllowTeamsConsumerInbound + + + + TreatDiscoveredPartnersAsUnverified + + + + SharedSipAddressSpace + + + + RestrictTeamsConsumerToExternalUserProfiles + + + + BlockAllSubdomains + + + + ExternalAccessWithTrialTenants + + + + DomainBlockingForMDOAdminsInTeams + + + + + + + + DeserializedAllowedDomainsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomains + + + + + + + + AllowedDomainsChoice + + + + + + + + DeserializedAllowListView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowList + + + + + + + + AllowedDomain + + + + + + + + DeserializedDomainPatternView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DomainPattern + + + + + + + + Domain + + + + + + + + DeserializedAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain + + + + + + + + Domain + + + + ProxyFqdn + + + + VerificationLevel + + + + Comment + + + + MarkForMonitoring + + + + + + + + DeserializedAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + ProxyFqdn + + + + VerificationLevel + + + + Comment + + + + MarkForMonitoring + + + + + + + + DeserializedBlockedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain + + + + + + + + Domain + + + + Comment + + + + + + + + DeserializedBlockedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.BlockedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + Comment + + + + + + + + DeserializedAdditionalInternalDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AdditionalInternalDomain + + + + + + + + Domain + + + + + + + + DeserializedAdditionalInternalDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AdditionalInternalDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + + + + + DeserializedMediaRelaySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.MediaRelaySettings + + + + + + + + Identity + + + + MaxTokenLifetime + + + + MaxBandwidthPerUserKb + + + + MaxBandwidthPerPortKb + + + + PermissionListIgnoreSeconds + + + + + + + + DeserializedEmailConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Email.EmailConfiguration + + + + + + + + Identity + + + + EmailAccountName + + + + EmailAccountPassword + + + + EmailAccountDomain + + + + + + + + DeserializedEventServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.EventServiceSettings.EventServiceSettings + + + + + + + + Identity + + + + EnableRemoteEventChannelService + + + + EventChannelServiceUrl + + + + EventChannelAudienceUrl + + + + + + + + DeserializedVoicemailReroutingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ExumRouting.VoicemailReroutingConfiguration + + + + + + + + Identity + + + + Enabled + + + + AutoAttendantNumber + + + + SubscriberAccessNumber + + + + + + + + DeserializedFIPSConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FIPSConfiguration.FIPSConfiguration + + + + + + + + Identity + + + + RequireFIPSCompliantMedia + + + + + + + + DeserializedFlightConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightConfiguration + + + + + + + + Identity + + + + FlightDefinitions + + + + + + + + DeserializedFlightDefinitionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightDefinition + + + + + + + + Cmdlet + + + + Name + + + + + + + + DeserializedFlightDefinitionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightConfiguration.FlightDefinition#Decorated + + + + + + + + Identity + + + + Priority + + + + Cmdlet + + + + Name + + + + + + + + DeserializedFlightingUserConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.FlightingUserConfiguration.FlightingUserConfiguration + + + + + + + + Identity + + + + Tenant1PercentList + + + + Tenant5PercentList + + + + Tenant10PercentList + + + + Tenant15PercentList + + + + Tenant20PercentList + + + + Tenant25PercentList + + + + Tenant30PercentList + + + + Tenant35PercentList + + + + Tenant40PercentList + + + + Tenant45PercentList + + + + Tenant50PercentList + + + + Tenant55PercentList + + + + Tenant60PercentList + + + + Tenant65PercentList + + + + Tenant70PercentList + + + + Tenant75PercentList + + + + Tenant80PercentList + + + + Tenant85PercentList + + + + Tenant90PercentList + + + + Tenant95PercentList + + + + UserAllowlist + + + + TenantAllowlist + + + + TenantDenylist + + + + + + + + DeserializedGraphApiConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.GraphApiConfiguration.GraphApiConfiguration + + + + + + + + Identity + + + + LoginUri + + + + GraphUri + + + + ClientId + + + + GraphLookupEnabled + + + + GraphReadWriteEnabled + + + + AdminAuthGraphEnabled + + + + TenantRemotePowershellClientId + + + + TestToken + + + + + + + + DeserializedGraphSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Graph.GraphSettings + + + + + + + + Identity + + + + EnableMeetingsGraph + + + + StorageServiceUrl + + + + DisableEmbeddedDocChat + + + + EnableFileAttachmentsFromCalendar + + + + FileAttachmentExtensionsBlacklist + + + + EnableInlineFileAttachmentsFromCalendar + + + + InlineFileAttachmentExtensionsBlacklist + + + + EnableReferenceAttachmentsFromCalendar + + + + ReferenceAttachmentExtensionsBlacklist + + + + EnableInlineReferenceAttachmentsFromCalendar + + + + InlineReferenceAttachmentExtensionsBlacklist + + + + AriaTenantToken + + + + EcsAgentName + + + + EcsInProduction + + + + EcsRefreshIntervalInMinutes + + + + + + + + DeserializedHealthAgentConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthAgentConfiguration.HealthAgentConfiguration + + + + + + + + Identity + + + + EnableCosmosUpload + + + + HLBListenerPort + + + + ForceHLBPortOpen + + + + + + + + DeserializedRegistrarView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.Registrar + + + + + + + + FirstTestUserSipUri + + + + FirstTestSamAccountName + + + + SecondTestUserSipUri + + + + SecondTestSamAccountName + + + + TargetFqdn + + + + + + + + DeserializedRegistrarView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HealthMonitoring.Registrar#Decorated + + + + + + + + Identity + + + + FirstTestUserSipUri + + + + FirstTestSamAccountName + + + + SecondTestUserSipUri + + + + SecondTestSamAccountName + + + + TargetFqdn + + + + + + + + DeserializedHostedUserMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HostedUserMigration.HostedUserMigrationConfiguration + + + + + + + + Identity + + + + AuthorizedTenantWellKnownGroups + + + + MaxSessionsInTotal + + + + MaxSessionsPerTenant + + + + SessionTimeoutInSecond + + + + PublishRoutingGroupDocumentInterval + + + + AuthorizedAdminCacheExpirationMinutes + + + + MigrateConfTableFromOnPremToOnline + + + + MigrateConfTableFromOnlineToOnPrem + + + + ClearPstnLocalId + + + + EnableMeetingMigration + + + + EnableSfbToTeamsMeetingMigration + + + + TeamsContactsEndpoint + + + + TeamsContactsAudience + + + + IsEcsProdEnvironment + + + + EnableMMSServiceInHMS + + + + EcsEnvironment + + + + + + + + DeserializedHuntGroupConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HuntGroupConfiguration.HuntGroupConfiguration + + + + + + + + Identity + + + + ApplicationId + + + + DefaultMusicOnHoldId + + + + CallbackUri + + + + DistributionListExpansionUri + + + + ClientAudience + + + + LineUriValidationRules + + + + MaxNumberOfHuntGroupsPerTenant + + + + + + + + DeserializedTenantHybridConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantHybridConfiguration + + + + + + + + Identity + + + + HybridPSTNSites + + + + HybridPSTNAppliances + + + + TenantUpdateTimeWindows + + + + PeerDestination + + + + HybridConfigServiceInternalUrl + + + + HybridConfigServiceExternalUrl + + + + UseOnPremDialPlan + + + + + + + + DeserializedHybridPSTNSiteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNSite + + + + + + + + Index + + + + Name + + + + EdgeFQDN + + + + EnableAutoUpdate + + + + LastTopologyUpdateTime + + + + BitsUpdateTimeWindowList + + + + OsUpdateTimeWindowList + + + + + + + + DeserializedHybridPSTNSiteView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNSite#Decorated + + + + + + + + Identity + + + + Index + + + + Name + + + + EdgeFQDN + + + + EnableAutoUpdate + + + + LastTopologyUpdateTime + + + + BitsUpdateTimeWindowList + + + + OsUpdateTimeWindowList + + + + + + + + DeserializedHybridPSTNApplianceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNAppliance + + + + + + + + Identity + + + + Name + + + + SiteIndex + + + + MediationServerIPAddress + + + + MediationServerFqdn + + + + MediationServerGruu + + + + MaintenanceMode + + + + ConfigurationReplicatedOn + + + + ConfigurationSnapshot + + + + ConfigurationSnapshotUpdatedOn + + + + RegistrationStatus + + + + RegistrationAction + + + + RunningVersion + + + + RunningStatus + + + + RunningError + + + + OsUpdatedOn + + + + DeployedOn + + + + StatusUpdatedOn + + + + DeploymentVersion + + + + DeploymentStatus + + + + DeploymentError + + + + DeploymentStartTime + + + + OsUpdateStatus + + + + OsUpdateError + + + + OsUpdateStartTime + + + + + + + + DeserializedHybridPSTNApplianceView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.HybridPSTNAppliance#Decorated + + + + + + + + Identity + + + + Identity + + + + Name + + + + SiteIndex + + + + MediationServerIPAddress + + + + MediationServerFqdn + + + + MediationServerGruu + + + + MaintenanceMode + + + + ConfigurationReplicatedOn + + + + ConfigurationSnapshot + + + + ConfigurationSnapshotUpdatedOn + + + + RegistrationStatus + + + + RegistrationAction + + + + RunningVersion + + + + RunningStatus + + + + RunningError + + + + OsUpdatedOn + + + + DeployedOn + + + + StatusUpdatedOn + + + + DeploymentVersion + + + + DeploymentStatus + + + + DeploymentError + + + + DeploymentStartTime + + + + OsUpdateStatus + + + + OsUpdateError + + + + OsUpdateStartTime + + + + + + + + DeserializedTenantUpdateTimeWindowView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantUpdateTimeWindow + + + + + + + + Name + + + + Type + + + + StartTime + + + + Duration + + + + DayOfMonth + + + + WeeksOfMonth + + + + DaysOfWeek + + + + + + + + DeserializedTenantUpdateTimeWindowView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.HybridConfiguration.TenantUpdateTimeWindow#Decorated + + + + + + + + Identity + + + + Name + + + + Type + + + + StartTime + + + + Duration + + + + DayOfMonth + + + + WeeksOfMonth + + + + DaysOfWeek + + + + + + + + DeserializedIfxLogSipMessageView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.IfxLogSipMessage.IfxLogSipMessage + + + + + + + + Identity + + + + Enable + + + + MethodFilter + + + + ResponseCodeFilter + + + + EnableInboundMessages + + + + EnableOutboundMessages + + + + EnableSipRequests + + + + EnableSipResponses + + + + IgnorePollingSubscribe + + + + Office365HashCertFingerprint + + + + + + + + DeserializedImConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Im.ImConfiguration + + + + + + + + Identity + + + + EnableOfflineIm + + + + + + + + DeserializedImFilterConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.ImFilterConfiguration + + + + + + + + Identity + + + + Prefixes + + + + AllowMessage + + + + WarnMessage + + + + Enabled + + + + IgnoreLocal + + + + BlockFileExtension + + + + Action + + + + + + + + DeserializedFileTransferFilterConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImFilter.FileTransferFilterConfiguration + + + + + + + + Identity + + + + Extensions + + + + Enabled + + + + Action + + + + + + + + DeserializedImTranslationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ImTranslation.ImTranslationConfiguration + + + + + + + + Identity + + + + TranslationType + + + + ClientId + + + + ClientSecret + + + + AccessTokenUri + + + + ServiceUri + + + + ApplicationId + + + + + + + + DeserializedKerberosAccountAssignmentView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.KerberosAccount.KerberosAccountAssignment + + + + + + + + Identity + + + + UserAccount + + + + + + + + DeserializedLegalInterceptServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.LegalInterceptService.LegalInterceptServiceConfiguration + + + + + + + + Identity + + + + RunInterval + + + + MaxQueueItemSize + + + + MaxADRetrieveCount + + + + QueryStartTimeSpan + + + + SMTPServer + + + + SMTPServerPort + + + + EmailFrom + + + + EndSessionDetectTimeSpan + + + + EnableLegalIntercept + + + + RetryCount + + + + + + + + DeserializedLogRetentionServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.LogRetentionService.LogRetentionServiceConfiguration + + + + + + + + Identity + + + + RetryInterval + + + + RunInterval + + + + MaxQueueItemSize + + + + QueryStartTimeSpan + + + + LogRetentionDiscoveryUrl + + + + WebProxy + + + + ReceiveTimeout + + + + SendTimeout + + + + MaxReceivedMessageByte + + + + MaxBufferPoolByte + + + + MaxStringContentByte + + + + MaxADRetrieveCount + + + + + + + + DeserializedManagementConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Management.ManagementConfiguration + + + + + + + + Identity + + + + Office365DomainSuffixes + + + + MaxConnectionCountPerServer + + + + MaxConnectionCountPerUser + + + + RbacCacheRefreshInterval + + + + ControlPanelMaxConnectionCountPerServer + + + + ControlPanelMaxRunspaceCountPerUser + + + + ControlPanelRunspaceIdleTimeout + + + + ControlPanelClientPoolSize + + + + ControlPanelWebProxy + + + + ControlPanelFooterTextResourcePrefix + + + + ControlPanelFooterLinkResourcePrefix + + + + ControlPanelHelpLinkNamespace + + + + MsoShellServiceUrl + + + + FeedbackEndPointUrl + + + + FenixUrl + + + + TelephoneNumberProviderUrl + + + + SkypeInternationalVoicePolicyName + + + + RebrandDate + + + + PicServiceEnabled + + + + TenantGroupMapping + + + + IsAriaEnabled + + + + UspTelemetryEnv + + + + AriaToken + + + + AppInsightKey + + + + GeographyClientEndPointUrl + + + + + + + + DeserializedMcxConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.McxConfiguration.McxConfiguration + + + + + + + + Identity + + + + SessionExpirationInterval + + + + SessionShortExpirationInterval + + + + ExposedWebURL + + + + PushNotificationProxyUri + + + + + + + + DeserializedMdmLogSipMessageView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MdmLogSipMessage.MdmLogSipMessage + + + + + + + + Identity + + + + Enable + + + + MethodFilter + + + + ResponseCodeFilter + + + + EnableInboundMessages + + + + EnableOutboundMessages + + + + EnableSipRequests + + + + EnableSipResponses + + + + IgnorePollingSubscribe + + + + + + + + DeserializedMdmRtcSrvView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MdmRtcSrv.MdmRtcSrv + + + + + + + + Identity + + + + Enable + + + + Account + + + + Namespace + + + + + + + + DeserializedMediaSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Media.MediaSettings + + + + + + + + Identity + + + + EnableQoS + + + + EncryptionLevel + + + + EnableSiren + + + + MaxVideoRateAllowed + + + + EnableH264StdCodec + + + + EnableInCallQoS + + + + InCallQoSIntervalSeconds + + + + EnableRtpRtcpMultiplexing + + + + EnableVideoBasedSharing + + + + WaitIceCompletedToAddDialOutUser + + + + EnableDtls + + + + EnableRtx + + + + EnableSilkForAudioVideoConferences + + + + EnableAVBundling + + + + EnableServerFecForVideoInterop + + + + EnableReceiveAgc + + + + EnableDelayStartAudioReceiveStream + + + + + + + + DeserializedMeetingContentSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingContent.MeetingContentSettings + + + + + + + + Identity + + + + MaxContentStorageMb + + + + MaxUploadFileSizeMb + + + + ContentGracePeriod + + + + + + + + DeserializedMeetingMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingMigration.MeetingMigrationConfiguration + + + + + + + + Identity + + + + TaskInterval + + + + MeetingMigrationEnabled + + + + AllowedObjects + + + + AzureQueueServiceEndpointUrl + + + + EnqueueEnabled + + + + UserRetryLimit + + + + PlatformServiceAudienceUri + + + + SchedulingServiceAudienceUri + + + + PlatformServiceTokenIssuerUrl + + + + PlatformServiceClientId + + + + PlatformServiceDiscoverUrl + + + + SchedulingServiceMeetingUrl + + + + BackupCoordinateCollectorEnabled + + + + MmsDisabledFeatureList + + + + PlatformServicePayloadWithExpirationTime + + + + ExchangeOnlineUsersOnly + + + + DirectCallToSchedulingServiceEnabled + + + + MaximumNumberOfExtraThreads + + + + QueueSizeTriggerExtraThread + + + + EnabledFqdns + + + + ACPMeetingMigrationTriggerEnabled + + + + MmsSourceMeetingTypes + + + + MmsTargetMeetingTypes + + + + TeamsMeetingUserPolicyUrl + + + + SchedulingServiceTeamsMeetingUrl + + + + IsEcsProdEnvironment + + + + EcsEnvironment + + + + + + + + DeserializedMeetingPoolConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.MeetingPool.MeetingPoolConfiguration + + + + + + + + Identity + + + + TenantId + + + + ConsistentBotUserStartIndex + + + + ConsistentBotUserEndIndex + + + + ConsistentBotUserEnabledPoolPrefixes + + + + ConsistentBotUserPrefix + + + + ConsistentBotUserDomain + + + + PoolState + + + + + + + + DeserializedNetworkConfigurationSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkConfigurationSettings + + + + + + + + Identity + + + + MediaBypassSettings + + + + BWPolicyProfiles + + + + NetworkRegions + + + + NetworkRegionLinks + + + + InterNetworkRegionRoutes + + + + NetworkSites + + + + InterNetworkSitePolicies + + + + Subnets + + + + EnableBandwidthPolicyCheck + + + + + + + + DeserializedMediaBypassSettingsTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.MediaBypassSettingsType + + + + + + + + Enabled + + + + InternalBypassMode + + + + ExternalBypassMode + + + + AlwaysBypass + + + + BypassID + + + + EnabledForAudioVideoConferences + + + + + + + + DeserializedBWPolicyProfileTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType + + + + + + + + BWPolicy + + + + BWPolicyProfileID + + + + Description + + + + + + + + DeserializedBWPolicyProfileTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyProfileType#Decorated + + + + + + + + Identity + + + + BWPolicy + + + + BWPolicyProfileID + + + + Description + + + + + + + + DeserializedBWPolicyTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWPolicyType + + + + + + + + BWLimit + + + + BWSessionLimit + + + + BWPolicyModality + + + + + + + + DeserializedNetworkRegionTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType + + + + + + + + Description + + + + BypassID + + + + CentralSite + + + + BWAlternatePaths + + + + NetworkRegionID + + + + + + + + DeserializedNetworkRegionTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionType#Decorated + + + + + + + + Identity + + + + Description + + + + BypassID + + + + CentralSite + + + + BWAlternatePaths + + + + NetworkRegionID + + + + + + + + DeserializedBWAlternatePathTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.BWAlternatePathType + + + + + + + + BWPolicyModality + + + + AlternatePath + + + + + + + + DeserializedNetworkRegionLinkTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType + + + + + + + + BWPolicyProfileID + + + + NetworkRegionLinkID + + + + NetworkRegionID1 + + + + NetworkRegionID2 + + + + + + + + DeserializedNetworkRegionLinkTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkRegionLinkType#Decorated + + + + + + + + Identity + + + + BWPolicyProfileID + + + + NetworkRegionLinkID + + + + NetworkRegionID1 + + + + NetworkRegionID2 + + + + + + + + DeserializedInterNetworkRegionRouteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType + + + + + + + + NetworkRegionLinks + + + + InterNetworkRegionRouteID + + + + NetworkRegionID1 + + + + NetworkRegionID2 + + + + + + + + DeserializedInterNetworkRegionRouteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkRegionRouteType#Decorated + + + + + + + + Identity + + + + NetworkRegionLinks + + + + InterNetworkRegionRouteID + + + + NetworkRegionID1 + + + + NetworkRegionID2 + + + + + + + + DeserializedNetworkSiteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkSiteType + + + + + + + + Description + + + + NetworkRegionID + + + + BypassID + + + + BWPolicyProfileID + + + + LocationPolicyTagID + + + + NetworkSiteID + + + + VoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + + + + + DeserializedNetworkSiteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.NetworkSiteType#Decorated + + + + + + + + Identity + + + + Description + + + + NetworkRegionID + + + + BypassID + + + + BWPolicyProfileID + + + + LocationPolicyTagID + + + + NetworkSiteID + + + + VoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + + + + + DeserializedInterNetworkSitePolicyTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType + + + + + + + + BWPolicyProfileID + + + + InterNetworkSitePolicyID + + + + NetworkSiteID1 + + + + NetworkSiteID2 + + + + + + + + DeserializedInterNetworkSitePolicyTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.InterNetworkSitePolicyType#Decorated + + + + + + + + Identity + + + + BWPolicyProfileID + + + + InterNetworkSitePolicyID + + + + NetworkSiteID1 + + + + NetworkSiteID2 + + + + + + + + DeserializedSubnetTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType + + + + + + + + MaskBits + + + + Description + + + + NetworkSiteID + + + + SubnetID + + + + + + + + DeserializedSubnetTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.NetworkConfiguration.SubnetType#Decorated + + + + + + + + Identity + + + + MaskBits + + + + Description + + + + NetworkSiteID + + + + SubnetID + + + + + + + + DeserializedOnlineDialinPageConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinPageConfiguration + + + + + + + + Identity + + + + MaximumConcurrentBvdGetSipResourceRequests + + + + MaximumConcurrentBvdGetBridgeRequests + + + + EnablePinServicesUserLookup + + + + EnableRedirectToAzureDialinPage + + + + AzureDialinPageUrl + + + + + + + + DeserializedOnlineDialinConferencingTenantConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingTenantConfiguration + + + + + + + + Identity + + + + Status + + + + EnableCustomTrunking + + + + ThirdPartyNumberStatus + + + + + + + + DeserializedSharedResourcesConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.SharedResourcesConfiguration + + + + + + + + Identity + + + + SupportedRings + + + + TelephoneNumberManagementV2ServiceUrl + + + + TenantAdminApiServiceUrl + + + + BusinessVoiceDirectoryUrl + + + + TgsServiceUrl + + + + AgentProvisioningServiceUrl + + + + SipDomain + + + + ProxyFqdn + + + + EmailServiceUrl + + + + MicrosoftEmailServiceUrl + + + + MicrosoftAuthenticationUrl + + + + EmailFlightPercentage + + + + DialOutInformationLink + + + + MediaStorageServiceUrl + + + + GlobalMediaStorageServiceUrl + + + + MediaStorageServiceRegion + + + + TelephoneNumberManagementServiceUrl + + + + NameDictionaryServiceUrl + + + + OrganizationalAutoAttendantAdminServiceUrl + + + + IsEcsProdEnvironment + + + + DialinBridgeFormatEnabled + + + + ApplicationConfigurationServiceUrl + + + + RecognizeServiceEndpointUrl + + + + RecognizeServiceAadResourceUrl + + + + AuthorityUrl + + + + ConferenceAutoAttendantApplicationId + + + + SchedulerMaxBvdConcurrentCalls + + + + + + + + DeserializedOnlineDialinConferencingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingServiceConfiguration + + + + + + + + Identity + + + + AnonymousCallerGracePeriod + + + + AnonymousCallerMeetingRuntime + + + + AuthenticatedCallerMeetingRuntime + + + + + + + + DeserializedOnlineDialInConferencingNumberMapView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap + + + + + + + + Geocodes + + + + Name + + + + Shared + + + + + + + + DeserializedOnlineDialInConferencingNumberMapView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap#Decorated + + + + + + + + Identity + + + + Priority + + + + Geocodes + + + + Name + + + + Shared + + + + + + + + DeserializedOnlineDialInConferencingMarketProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile + + + + + + + + NumberMaps + + + + Name + + + + Code + + + + Region + + + + DefaultBridgeGeocode + + + + + + + + DeserializedOnlineDialInConferencingMarketProfileView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile#Decorated + + + + + + + + Identity + + + + Priority + + + + NumberMaps + + + + Name + + + + Code + + + + Region + + + + DefaultBridgeGeocode + + + + + + + + DeserializedOnlineDialinConferencingDefaultLanguageView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingDefaultLanguage + + + + + + + + Identity + + + + DefaultLanguages + + + + + + + + DeserializedDefaultLanguageEntryView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.DefaultLanguageEntry + + + + + + + + SecondaryLanguages + + + + Geocode + + + + PrimaryLanguage + + + + + + + + DeserializedOnlineDialInConferencingTenantSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingTenantSettings + + + + + + + + Identity + + + + AllowedDialOutExternalDomains + + + + EnableEntryExitNotifications + + + + EntryExitAnnouncementsType + + + + EnableNameRecording + + + + IncludeTollFreeNumberInMeetingInvites + + + + MaskPstnNumbersType + + + + PinLength + + + + AllowPSTNOnlyMeetingsByDefault + + + + AutomaticallySendEmailsToUsers + + + + SendEmailFromOverride + + + + SendEmailFromAddress + + + + SendEmailFromDisplayName + + + + AutomaticallyReplaceAcpProvider + + + + UseUniqueConferenceIds + + + + AutomaticallyMigrateUserMeetings + + + + MigrateServiceNumbersOnCrossForestMove + + + + EnableDialOutJoinConfirmation + + + + AllowFederatedUsersToDialOutToSelf + + + + AllowFederatedUsersToDialOutToThirdParty + + + + + + + + DeserializedOnlineDialInConferencingAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingAllowedDomain + + + + + + + + Domain + + + + + + + + DeserializedOnlineDialInConferencingAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingAllowedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + + + + + DeserializedSharedLisResourcesConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineLocationInformation.SharedLisResourcesConfiguration + + + + + + + + Identity + + + + LocationInformationServiceUrl + + + + NCSLocationInformationServiceUrl + + + + EnableNCS + + + + EnableNCSforEmergencyDisclaimer + + + + + + + + DeserializedOnlineVoiceCapabilityMappingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineVoiceCapabilityMapConfiguration.OnlineVoiceCapabilityMappings + + + + + + + + SupportedCapabilities + + + + PartnerID + + + + Description + + + + + + + + DeserializedOnlineVoiceCapabilityMappingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineVoiceCapabilityMapConfiguration.OnlineVoiceCapabilityMappings#Decorated + + + + + + + + Identity + + + + SupportedCapabilities + + + + PartnerID + + + + Description + + + + + + + + DeserializedOperationalLogConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OperationalLog.OperationalLogConfiguration + + + + + + + + Identity + + + + Enable + + + + UploadIntervalSeconds + + + + MaximumQueueSize + + + + NumberOfItemsForImmediateDataUpload + + + + AzureOperationalLogServiceEndpointUrl + + + + + + + + DeserializedOrganizationalAutoAttendantConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OrganizationalAutoAttendantConfiguration.OrganizationalAutoAttendantConfiguration + + + + + + + + Identity + + + + ApplicationId + + + + CallbackUrl + + + + MaxOrgAutoAttendantsPerTenant + + + + ClientAudience + + + + FlightedFeatures + + + + AriaTelemetryToken + + + + + + + + DeserializedPersistentChatConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatConfiguration + + + + + + + + Identity + + + + MaxFileSizeKB + + + + ParticipantUpdateLimit + + + + DefaultChatHistory + + + + RoomManagementUrl + + + + + + + + DeserializedPersistentChatComplianceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatComplianceConfiguration + + + + + + + + Identity + + + + AdapterName + + + + RunInterval + + + + AdapterOutputDirectory + + + + AdapterType + + + + OneChatRoomPerOutputFile + + + + CreateFileAttachmentsManifest + + + + AddUserDetails + + + + AddChatRoomDetails + + + + CustomConfiguration + + + + + + + + DeserializedPersistentChatStateView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PersistentChat.PersistentChatState + + + + + + + + Identity + + + + PoolState + + + + + + + + DeserializedPlatformConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.PlatformConfiguration + + + + + + + + Identity + + + + RingConfigurations + + + + RegionConfigurations + + + + EnableBroadcastFunctionality + + + + SkipRegistrationForMeetingApplication + + + + EnableConversationExtensionFunctionality + + + + PushNotificationBlockedHours + + + + ExchangeSearchEnabled + + + + StorageServiceCreationRetryTimeSpan + + + + AnonApplicationTokenLifeSpan + + + + EnableConsistentBotUserSelectionFunctionality + + + + ConsistentBotUserSelectionMode + + + + ActivationServiceUri + + + + GlobalPlatformUrl + + + + EnableFlightingFunctionality + + + + MaxEventChannelsPerApplication + + + + MaxPendingBatchRequestsPerUser + + + + AllowPlatformAnonToken + + + + EnableCORS + + + + EnableUcwaScopeCheck + + + + MaxRegistrationsPerPublicApplication + + + + MediaPresenceStateExpiration + + + + TrapServiceUrl + + + + + + + + DeserializedRingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.RingConfiguration + + + + + + + + Name + + + + Url + + + + DeploymentPreference + + + + Region + + + + + + + + DeserializedRegionConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Platform.RegionConfiguration + + + + + + + + Name + + + + Url + + + + ServiceInstanceIds + + + + + + + + DeserializedPlatformApplicationsConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.PlatformApplicationsConfiguration + + + + + + + + Identity + + + + PublicApplicationList + + + + PublicApplicationListMode + + + + + + + + DeserializedApplicationMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.ApplicationMeetingConfiguration + + + + + + + + Identity + + + + AllowRemoveParticipantAppIds + + + + + + + + DeserializedPlatformExceptionSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.PlatformExceptionSettings + + + + + + + + Identity + + + + KnownExceptions + + + + + + + + DeserializedKnownExceptionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.KnownException + + + + + + + + Name + + + + Type + + + + MatchText + + + + ExpirationInUtc + + + + + + + + DeserializedKnownExceptionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformExceptionSettings.KnownException#Decorated + + + + + + + + Identity + + + + Priority + + + + Name + + + + Type + + + + MatchText + + + + ExpirationInUtc + + + + + + + + DeserializedPlatformServiceNGCSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceNGCSettings.PlatformServiceNGCSettings + + + + + + + + Identity + + + + EnableGeneratingTeamsIdentity + + + + RegistrarUrl + + + + ConversationServiceUrl + + + + TrouterUrl + + + + CallControllerUrl + + + + TpcProdUrl + + + + + + + + DeserializedPlatformServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.PlatformServiceSettings + + + + + + + + Identity + + + + EnablePushNotifications + + + + UseLegacyPushNotifications + + + + EnableE911 + + + + EnableFileTransfer + + + + AllowCallsFromNonContactsInPrivatePrivacyMode + + + + BvdPortalWhitelistedApp + + + + EnablePreDrainingForIncomingCalls + + + + EnableE911RequestXmlEncoding + + + + ContactCardUpdateAfterSignInMs + + + + ContactCardUpdateCheckInSeconds + + + + + + + + DeserializedPlatformThrottlingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformThrottlingSettings.PlatformThrottlingSettings + + + + + + + + Identity + + + + UcwaThrottlingConfigurations + + + + UcapThrottlingConfigurations + + + + EnableUcwaThrottling + + + + UcwaThrottlingThresholdPercentageForInternal + + + + UcwaThrottlingThresholdPercentageForPublic + + + + EnableUcapThrottling + + + + UcapThrottlingThresholdPercentageForInternal + + + + UcapThrottlingThresholdPercentageForPublic + + + + EnableUcwaThrottlingToExchange + + + + MaxConcurrentUcwaRequestsToExchange + + + + + + + + DeserializedPlatformThrottlingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformThrottlingSettings.PlatformThrottlingConfiguration + + + + + + + + Name + + + + ThrottlingTargetType + + + + ThrottlingMode + + + + ThrottlingScope + + + + TimeRangeInMinutes + + + + TargetNumber + + + + ExcludedApiNames + + + + IncludedApiNames + + + + OverrideThresholdPercentageForPublic + + + + SkipInBatchRequest + + + + + + + + DeserializedPnchServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchServiceConfiguration + + + + + + + + Identity + + + + PnchApplications + + + + ApplePushServiceFQDN + + + + ApplePushServicePort + + + + AppleFeedbackServiceFQDN + + + + AppleFeedbackServicePort + + + + PnhServiceUri + + + + VerboseDiagnostics + + + + EnableGenevaLogging + + + + + + + + DeserializedPnchApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchApplication + + + + + + + + Name + + + + Provider + + + + ApplicationId + + + + MaxConnections + + + + Certificate + + + + + + + + DeserializedPnchApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchApplication#Decorated + + + + + + + + Identity + + + + Name + + + + Provider + + + + ApplicationId + + + + MaxConnections + + + + Certificate + + + + + + + + DeserializedPnchAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchAllowedDomain + + + + + + + + Domain + + + + Comment + + + + + + + + DeserializedPnchAllowedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchAllowedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + Comment + + + + + + + + DeserializedPnchBlockedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchBlockedDomain + + + + + + + + Domain + + + + Comment + + + + + + + + DeserializedPnchBlockedDomainView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PnchServiceConfiguration.PnchBlockedDomain#Decorated + + + + + + + + Identity + + + + Domain + + + + Comment + + + + + + + + DeserializedPolicyRestrictionsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRestrictions + + + + + + + + Identity + + + + SkuGroups + + + + PolicyRules + + + + + + + + DeserializedSkuGroupView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuGroup + + + + + + + + ServicePlans + + + + SkuName + + + + + + + + DeserializedSkuGroupView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuGroup#Decorated + + + + + + + + Identity + + + + ServicePlans + + + + SkuName + + + + + + + + DeserializedPolicyRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRule + + + + + + + + AttributeRules + + + + PolicyName + + + + + + + + DeserializedPolicyRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.PolicyRule#Decorated + + + + + + + + Identity + + + + AttributeRules + + + + PolicyName + + + + + + + + DeserializedAttributeRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.AttributeRule + + + + + + + + SkuRules + + + + CountryRules + + + + AttributeName + + + + + + + + DeserializedSkuRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.SkuRule + + + + + + + + Sku + + + + Permission + + + + Type + + + + Value + + + + + + + + DeserializedCountryRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PolicyRules.CountryRule + + + + + + + + CountryGroup + + + + Permission + + + + Type + + + + Value + + + + + + + + DeserializedPowershellInfraConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PowershellInfraConfiguration.PowershellInfraConfiguration + + + + + + + + Identity + + + + EnableDirectAcmsConnections + + + + EnableAcmsEcsConnections + + + + EcsEnvironment + + + + EnableReadWriteTopologyFromAcms + + + + EnableWriteAuditRecord + + + + EnableDirectWriteRegistrarConfig + + + + EnableEcsCmdletFiltering + + + + UseEcsProdEnvironment + + + + LrosApplicationId + + + + LrosTokenAuthorityUri + + + + LrosEndpointUri + + + + LrosResourceUri + + + + LrosJobStatusTimeOut + + + + + + + + DeserializedProvisionServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.ProvisionServiceConfiguration + + + + + + + + Identity + + + + ServiceInstances + + + + UserServicePools + + + + MsoUrl + + + + PublicProviderUrl + + + + SMPDNSWebserviceUrl + + + + SMPDNSsipdirSRVRecordData + + + + SMPDNSsipCNAMERecordData + + + + SMPDNSsipfedSRVRecordData + + + + SMPDNSwebdirCNAMERecordData + + + + WebProxy + + + + SyncInterval + + + + PublishInterval + + + + PublishRetryInterval + + + + PersistCookieInterval + + + + ThreadNoActivityTimeout + + + + MeetingMigrationThreadNoActivityTimeout + + + + MaxPublishBatchSize + + + + MaxADResultBatchSize + + + + ProvisionInterval + + + + ProvisionRetryInterval + + + + PoolUserRefreshInterval + + + + QueuesPerCPU + + + + PoolThreshold + + + + PrimaryDomainController + + + + SecondaryDomainController + + + + DCReplicaWaitTime + + + + PersistCookieThreshold + + + + SimpleUrlDNSName + + + + TenantMOREADomainSuffix + + + + LegacyTenantMOREADomainSuffix + + + + ReceiveTimeout + + + + SendTimeout + + + + MaxReceivedMessageSize + + + + MaxBufferPoolSize + + + + MaxStringContentLength + + + + ConnectionLimit + + + + ExchangeOnline + + + + RecoverTaskTimeInterval + + + + MaxNumberOfSyncErrorObjects + + + + MaxReSyncErrorObjectsBeforeWarning + + + + IgnorePICProvision + + + + EnableAsyncPICProvision + + + + IgnoreDNSProvision + + + + EnableAsyncDNSProvision + + + + EnableLightWeightSync + + + + DropUserAndFPOInLightWeightSync + + + + LightWeightSyncTenantList + + + + SendMNCTenantToBVD + + + + SendAllTenantsToBVD + + + + SendAllUsersToBVD + + + + DisabledFeatureList + + + + ConfirmedCookieAgeFailureThreshold + + + + ConfirmedCookieAgeWarningThreshold + + + + IntermediateCookieAgeFailureThreshold + + + + MoreFalseCookieAgeFailureThreshold + + + + MoreFalseCookieAgeWarningThreshold + + + + EnableSkypeEntitlement + + + + SkypeEntitlementHost + + + + SkypeEntitlementPort + + + + UnlicensedUserGracePeriod + + + + UnlicensedUserDeletionEnabled + + + + PersistRemotePoolForUsers + + + + PublishLyncAttributesForAllTenants + + + + SyncLatencyCounterThreshold + + + + MaxConcurrentDeleteOperations + + + + EnableBVDProvision + + + + EnableCPCProvision + + + + WriteAcpInfoForCpcUsersInAd + + + + CPCDisabledCountryList + + + + AdminPoolUrl + + + + EnableTenantPoolAssociationTracking + + + + EnableExoPlanProvisioning + + + + EnableEduExoPlanProvisioning + + + + ExoPlanProvisioningTenantList + + + + ExoPlanProvisioningStartDate + + + + TenantDNSCacheTimeout + + + + SyncOnlySkypeEnabledDomains + + + + HostMNCUsersInOtherRegionCoolDownTime + + + + EnableMAForNewTenant + + + + EnableBVDUpdateInMove + + + + SendOnPremHostedUsersToBvd + + + + EnableLastUserSipDomainSearch + + + + EnableTeamsProvisioning + + + + Deployment + + + + TeamsProvisioningTenantList + + + + EnableDNSDualWrite + + + + ApplicationId + + + + AzureSubscriptionId + + + + AzureDNSResourceGroup + + + + AzureDnsTenantId + + + + AzureDnsLoginUrl + + + + AzureDnsManagementCoreApiEndpoint + + + + EnableOnPremDNSDetector + + + + EnableOnPremCPC + + + + EnableECSConfig + + + + IsEcsProdEnvironment + + + + EcsEnvironment + + + + + + + + DeserializedUserServicePoolView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ProvisionService.UserServicePool + + + + + + + + ServiceId + + + + ReservedForLegacyTenant + + + + StandbyMode + + + + + + + + DeserializedPstnEmulatorConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PstnEmulator.PstnEmulatorConfiguration + + + + + + + + Identity + + + + PstnGatewayGruu + + + + EnteringDtmfDelay + + + + CallDuration + + + + IsTLS + + + + CertificateSubjectName + + + + CertificateIssuerName + + + + ListenToQueue + + + + TestMachine + + + + ECSEnabled + + + + + + + + DeserializedPushNotificationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PushNotificationConfiguration.PushNotificationConfiguration + + + + + + + + Identity + + + + EnableApplePushNotificationService + + + + EnableMicrosoftPushNotificationService + + + + + + + + DeserializedQoESettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.QoE.QoESettings + + + + + + + + Identity + + + + ExternalConsumerIssuedCertId + + + + EnablePurging + + + + KeepQoEDataForDays + + + + PurgeHourOfDay + + + + EnableExternalConsumer + + + + ExternalConsumerName + + + + ExternalConsumerURL + + + + EnableQoE + + + + + + + + DeserializedIssuedCertIdView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.BaseTypes.IssuedCertId + + + + + + + + Issuer + + + + SerialNumber + + + + + + + + DeserializedRecordingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RecordingService.RecordingServiceConfiguration + + + + + + + + Identity + + + + + + + + DeserializedRegistrarSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Registrar.RegistrarSettings + + + + + + + + Identity + + + + MinEndpointExpiration + + + + MaxEndpointExpiration + + + + DefaultEndpointExpiration + + + + MaxEndpointsPerUser + + + + EnableDHCPServer + + + + PoolState + + + + BackupStoreUnavailableThreshold + + + + MaxUserCount + + + + UserCertificateReplicationThreshold + + + + ReplicateUserCertsToBackend + + + + EnableWinFabLogUpload + + + + WinFabMaxLogsSizeMb + + + + IPPhoneUserAgents + + + + + + + + DeserializedReportingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Reporting.ReportingConfiguration + + + + + + + + Identity + + + + ReportingUrl + + + + + + + + DeserializedRoutingInfoDirConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RoutingInfoDirService.RoutingInfoDirConfiguration + + + + + + + + Identity + + + + MaxSnapshotsToKeep + + + + MaxConcurrentDownloadCount + + + + LocalCacheFolderLocation + + + + NewSnapshotPollingIntervalInSeconds + + + + EnableLocalSnapshotDownloads + + + + UseSnapshots + + + + MaxOutstandingProviderRequests + + + + PositiveInMemoryCacheTimeoutSeconds + + + + NegativeInMemoryCacheTimeoutSeconds + + + + EnableAcmsRead + + + + RemoteTopologyRefreshIntervalSeconds + + + + EnableOnPremUserLookupResult + + + + PercentMemoryForProviderCache + + + + DomainLookupInMemoryCacheRecordCount + + + + TenantLookupInMemoryCacheRecordCount + + + + UserLookupInMemoryCacheRecordCount + + + + PhoneLookupInMemoryCacheRecordCount + + + + + + + + DeserializedOAuthSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthSettings + + + + + + + + Identity + + + + PartnerApplications + + + + OAuthServers + + + + Realm + + + + ServiceName + + + + ClientAuthorizationOAuthServerIdentity + + + + ExchangeAutodiscoverUrl + + + + ExchangeAutodiscoverAllowedDomains + + + + + + + + DeserializedPartnerApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication + + + + + + + + AuthToken + + + + Name + + + + ApplicationIdentifier + + + + Realm + + + + ApplicationTrustLevel + + + + AcceptSecurityIdentifierInformation + + + + Enabled + + + + + + + + DeserializedPartnerApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.PartnerApplication#Decorated + + + + + + + + Identity + + + + AuthToken + + + + Name + + + + ApplicationIdentifier + + + + Realm + + + + ApplicationTrustLevel + + + + AcceptSecurityIdentifierInformation + + + + Enabled + + + + + + + + DeserializedOAuthServerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer + + + + + + + + Name + + + + IssuerIdentifier + + + + Realm + + + + MetadataUrl + + + + AuthorizationUriOverride + + + + Type + + + + AcceptSecurityIdentifierInformation + + + + + + + + DeserializedOAuthServerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.OAuthServer#Decorated + + + + + + + + Identity + + + + Name + + + + IssuerIdentifier + + + + Realm + + + + MetadataUrl + + + + AuthorizationUriOverride + + + + Type + + + + AcceptSecurityIdentifierInformation + + + + + + + + DeserializedSchedulerServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SchedulerServiceSettings.SchedulerServiceSettings + + + + + + + + Identity + + + + SchedulerServiceUrl + + + + ApplicationAudience + + + + AuthType + + + + + + + + DeserializedApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application + + + + + + + + Uri + + + + Name + + + + Enabled + + + + Critical + + + + ScriptName + + + + Script + + + + + + + + DeserializedApplicationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.ServerApplication.Application#Decorated + + + + + + + + Identity + + + + Priority + + + + Uri + + + + Name + + + + Enabled + + + + Critical + + + + ScriptName + + + + Script + + + + + + + + DeserializedSignInTelemetryConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SignInTelemetry.SignInTelemetryConfiguration + + + + + + + + Identity + + + + EnableClientTelemetry + + + + + + + + DeserializedSimpleUrlConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlConfiguration + + + + + + + + Identity + + + + SimpleUrl + + + + + + + + DeserializedSimpleUrlView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrl + + + + + + + + SimpleUrlEntry + + + + Component + + + + Domain + + + + ActiveUrl + + + + + + + + DeserializedSimpleUrlEntryView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.SimpleUrlEntry + + + + + + + + Url + + + + + + + + DeserializedProxySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.ProxySettings + + + + + + + + Identity + + + + Realm + + + + MaxClientMessageBodySizeKb + + + + MaxServerMessageBodySizeKb + + + + TreatAllClientsAsRemote + + + + OutgoingTlsCount + + + + DnsCacheRecordCount + + + + AllowPartnerPollingSubscribes + + + + EnableLoggingAllMessageBodies + + + + EnableWhiteSpaceKeepAlive + + + + MaxKeepAliveInterval + + + + UseKerberosForClientToProxyAuth + + + + UseNtlmForClientToProxyAuth + + + + DisableNtlmFor2010AndLaterClients + + + + UseCertificateForClientToProxyAuth + + + + AcceptClientCompression + + + + MaxClientCompressionCount + + + + AcceptServerCompression + + + + MaxServerCompressionCount + + + + RequestServerCompression + + + + LoadBalanceInternalServers + + + + LoadBalanceEdgeServers + + + + TestFeatureList + + + + TestParameterList + + + + SpecialConfigurationList + + + + UseCertificatePinningForInternalConnections + + + + + + + + DeserializedRealmView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Realm + + + + + + + + RealmChoice + + + + + + + + DeserializedCustomView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Custom + + + + + + + + CustomValue + + + + + + + + DeserializedRoutingSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.RoutingSettings + + + + + + + + Identity + + + + Route + + + + + + + + DeserializedTransportView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.Transport + + + + + + + + TransportChoice + + + + Port + + + + + + + + DeserializedTCPView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.TCP + + + + + + + + IPAddress + + + + + + + + DeserializedTLSView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.TLS + + + + + + + + Certificate + + + + Fqdn + + + + + + + + DeserializedSkypeEdgeProvisionServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SkypeEdgeProvisionService.SkypeEdgeProvisionServiceConfiguration + + + + + + + + Identity + + + + SyncInterval + + + + PICProvisionServerUrl + + + + WebProxy + + + + OpenCloseTimeout + + + + SendTimeout + + + + MaxReceivedMessageSizeBytes + + + + MaxArrayLength + + + + + + + + DeserializedStorageServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.StorageServiceSettings + + + + + + + + Identity + + + + EnableAutoImportFlushedData + + + + EnableFabricReplicationSetReduction + + + + EnableAsyncAdaptorTaskAbort + + + + FabricInvalidStateTimeoutDuration + + + + SingleSecondaryMissingTimeoutDuration + + + + SingleSecondaryQuorumEventLogInterval + + + + EnableLightweightFinalization + + + + EnableEwsTaskTimeout + + + + FilteredAdapterIdList + + + + EnableAttachmentCache + + + + AttachmentCacheTimeout + + + + MaxTotalMemoryForActiveFileUploadsInGB + + + + MemoryToFileSizeRatioForExArchUpload + + + + EnableAggressiveGC + + + + EnableWCFSelfHeal + + + + + + + + DeserializedTeamsAppPolicyConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration + + + + + + + + Identity + + + + AppCatalogUri + + + + ResourceUri + + + + + + + + DeserializedTeamsConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsConfiguration + + + + + + + + Identity + + + + EnabledForVoice + + + + EnabledForMessaging + + + + + + + + DeserializedTeamsUpgradeConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsUpgradeConfiguration + + + + + + + + Identity + + + + DownloadTeams + + + + SfBMeetingJoinUx + + + + + + + + DeserializedTeamsClientConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsClientConfiguration + + + + + + + + Identity + + + + AllowEmailIntoChannel + + + + RestrictedSenderList + + + + AllowDropBox + + + + AllowBox + + + + AllowGoogleDrive + + + + AllowShareFile + + + + AllowEgnyte + + + + AllowOrganizationTab + + + + AllowSkypeBusinessInterop + + + + ContentPin + + + + AllowResourceAccountSendMessage + + + + ResourceAccountContentAccess + + + + AllowGuestUser + + + + AllowScopedPeopleSearchandAccess + + + + AllowRoleBasedChatPermissions + + + + + + + + DeserializedTeamsGuestMessagingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMessagingConfiguration + + + + + + + + Identity + + + + AllowUserEditMessage + + + + AllowUserDeleteMessage + + + + AllowUserDeleteChat + + + + AllowUserChat + + + + AllowGiphy + + + + GiphyRatingType + + + + AllowMemes + + + + AllowImmersiveReader + + + + AllowStickers + + + + + + + + DeserializedTeamsGuestMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMeetingConfiguration + + + + + + + + Identity + + + + AllowIPVideo + + + + ScreenSharingMode + + + + AllowMeetNow + + + + LiveCaptionsEnabledType + + + + AllowTranscription + + + + + + + + DeserializedTeamsGuestCallingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestCallingConfiguration + + + + + + + + Identity + + + + AllowPrivateCalling + + + + + + + + DeserializedTeamsMeetingBroadcastConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingBroadcastConfiguration + + + + + + + + Identity + + + + SupportURL + + + + AllowSdnProviderForBroadcastMeeting + + + + + + + + DeserializedTeamsEffectiveMeetingSurveyConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsEffectiveMeetingSurveyConfiguration + + + + + + + + Identity + + + + Survey + + + + DefaultOrganizerMode + + + + + + + + DeserializedTeamsCallHoldValidationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsCallHoldValidationConfiguration + + + + + + + + Identity + + + + AudioFileValidationEnabled + + + + AudioFileValidationUri + + + + + + + + DeserializedTeamsEducationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsEducationConfiguration + + + + + + + + Identity + + + + ParentGuardianPreferredContactMethod + + + + + + + + DeserializedTeamsMeetingTemplateConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateConfiguration + + + + + + + + Identity + + + + TeamsMeetingTemplates + + + + Description + + + + + + + + DeserializedTeamsMeetingTemplateTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateType + + + + + + + + TeamsMeetingOptions + + + + Description + + + + Name + + + + + + + + DeserializedTeamsMeetingTemplateTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingTemplateType#Decorated + + + + + + + + Identity + + + + TeamsMeetingOptions + + + + Description + + + + Name + + + + + + + + DeserializedTeamsMeetingOptionView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingOption + + + + + + + + IsLocked + + + + IsHidden + + + + Value + + + + Name + + + + + + + + DeserializedTeamsFirstPartyMeetingTemplateConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsFirstPartyMeetingTemplateConfiguration + + + + + + + + Identity + + + + TeamsMeetingTemplates + + + + Description + + + + + + + + DeserializedTeamsMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMeetingConfiguration.TeamsMeetingConfiguration + + + + + + + + Identity + + + + LogoURL + + + + LegalURL + + + + HelpURL + + + + CustomFooterText + + + + DisableAnonymousJoin + + + + DisableAppInteractionForAnonymousUsers + + + + EnableQoS + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientMediaPortRangeEnabled + + + + + + + + DeserializedTeamsMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMigrationConfiguration.TeamsMigrationConfiguration + + + + + + + + Identity + + + + EnableLegacyClientInterop + + + + + + + + DeserializedTeamsRoutingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsRoutingConfiguration.TeamsRoutingConfiguration + + + + + + + + Identity + + + + VoiceGatewayFqdn + + + + EnableMessagingGatewayProxy + + + + MessagingConversationRequestUrl + + + + MessagingConversationResponseUrl + + + + MgwRedirectUrlTemplate + + + + EnablePoollessTeamsOnlyUserFlighting + + + + EnablePoollessTeamsOnlyCallingFlighting + + + + EnablePoollessTeamsOnlyMessagingFlighting + + + + EnablePoollessTeamsOnlyConferencingFlighting + + + + EnablePoollessTeamsOnlyPresenceFlighting + + + + HybridEdgeFqdn + + + + DisableTeamsOnlyUsersConfCreateFlighting + + + + TenantDisabledForTeamsOnlyUsersConfCreate + + + + EnableTenantLevelPolicyCheck + + + + + + + + DeserializedTelemetrySenderConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TelemetrySender.TelemetrySenderConfiguration + + + + + + + + Identity + + + + Enabled + + + + EncryptedAriaDataToken + + + + EncryptedAriaTraceToken + + + + TraceLevels + + + + TokenDecryptThumbprint + + + + AriaEndpointUri + + + + QoEHashThumbprint + + + + QoEEncryptThumbprint + + + + + + + + DeserializedTenantConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantConfiguration + + + + + + + + Identity + + + + MaxAllowedDomains + + + + MaxBlockedDomains + + + + + + + + DeserializedTenantLicensingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantLicensingConfiguration + + + + + + + + Identity + + + + Status + + + + + + + + DeserializedTenantWebServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantWebServiceConfiguration + + + + + + + + Identity + + + + CertificateValidityPeriodInHours + + + + + + + + DeserializedTenantFlightAssignmentsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.TenantFlightAssignments + + + + + + + + Identity + + + + Flights + + + + + + + + DeserializedFlightView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.Flight + + + + + + + + Name + + + + + + + + DeserializedFlightView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantFlightAssignment.Flight#Decorated + + + + + + + + Identity + + + + Priority + + + + Name + + + + + + + + DeserializedTenantMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantMigration.TenantMigrationConfiguration + + + + + + + + Identity + + + + MeetingMigrationEnabled + + + + + + + + DeserializedTenantNetworkConfigurationSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TenantNetworkConfigurationSettings + + + + + + + + Identity + + + + NetworkRegions + + + + NetworkSites + + + + Subnets + + + + PostalCodes + + + + + + + + DeserializedNetworkRegionTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkRegionType + + + + + + + + Description + + + + CentralSite + + + + NetworkRegionID + + + + + + + + DeserializedNetworkRegionTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkRegionType#Decorated + + + + + + + + Identity + + + + Description + + + + CentralSite + + + + NetworkRegionID + + + + + + + + DeserializedNetworkSiteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkSiteType + + + + + + + + Description + + + + NetworkRegionID + + + + LocationPolicyID + + + + SiteAddress + + + + NetworkSiteID + + + + OnlineVoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + EmergencyCallRoutingPolicyTagID + + + + EmergencyCallingPolicyTagID + + + + NetworkRoamingPolicyTagID + + + + EmergencyCallRoutingPolicyName + + + + EmergencyCallingPolicyName + + + + NetworkRoamingPolicyName + + + + + + + + DeserializedNetworkSiteTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkSiteType#Decorated + + + + + + + + Identity + + + + Description + + + + NetworkRegionID + + + + LocationPolicyID + + + + SiteAddress + + + + NetworkSiteID + + + + OnlineVoiceRoutingPolicyTagID + + + + EnableLocationBasedRouting + + + + EmergencyCallRoutingPolicyTagID + + + + EmergencyCallingPolicyTagID + + + + NetworkRoamingPolicyTagID + + + + EmergencyCallRoutingPolicyName + + + + EmergencyCallingPolicyName + + + + NetworkRoamingPolicyName + + + + + + + + DeserializedSubnetTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType + + + + + + + + Description + + + + NetworkSiteID + + + + MaskBits + + + + SubnetID + + + + + + + + DeserializedSubnetTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType#Decorated + + + + + + + + Identity + + + + Description + + + + NetworkSiteID + + + + MaskBits + + + + SubnetID + + + + + + + + DeserializedPostalCodeTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.PostalCodeType + + + + + + + + Description + + + + NetworkSiteID + + + + PostalCode + + + + CountryCode + + + + + + + + DeserializedPostalCodeTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.PostalCodeType#Decorated + + + + + + + + Identity + + + + Description + + + + NetworkSiteID + + + + PostalCode + + + + CountryCode + + + + + + + + DeserializedTrustedIPView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TrustedIP + + + + + + + + MaskBits + + + + Description + + + + IPAddress + + + + + + + + DeserializedTrustedIPView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TrustedIP#Decorated + + + + + + + + Identity + + + + MaskBits + + + + Description + + + + IPAddress + + + + + + + + DeserializedTenantPartnerRoleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantPartnerRole.TenantPartnerRole + + + + + + + + BlockedCmdlets + + + + Name + + + + PartnerType + + + + + + + + DeserializedTenantPartnerRoleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantPartnerRole.TenantPartnerRole#Decorated + + + + + + + + Identity + + + + BlockedCmdlets + + + + Name + + + + PartnerType + + + + + + + + DeserializedTenantVideoInteropConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.TenantVideoInteropConfiguration + + + + + + + + Identity + + + + VideoTeleconferencingDeviceProviders + + + + + + + + DeserializedVideoTeleconferencingDeviceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.VideoTeleconferencingDeviceProvider + + + + + + + + Name + + + + TenantKey + + + + InstructionUri + + + + + + + + DeserializedVideoTeleconferencingDeviceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropConfiguration.VideoTeleconferencingDeviceProvider#Decorated + + + + + + + + Identity + + + + Name + + + + TenantKey + + + + InstructionUri + + + + + + + + DeserializedVideoInteropServiceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropServiceConfiguration.VideoInteropServiceProvider + + + + + + + + Name + + + + AadApplicationIds + + + + TenantKey + + + + InstructionUri + + + + AllowAppGuestJoinsAsAuthenticated + + + + + + + + DeserializedVideoInteropServiceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropServiceConfiguration.VideoInteropServiceProvider#Decorated + + + + + + + + Identity + + + + Name + + + + AadApplicationIds + + + + TenantKey + + + + InstructionUri + + + + AllowAppGuestJoinsAsAuthenticated + + + + + + + + DeserializedTrunkConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TrunkConfiguration + + + + + + + + Identity + + + + OutboundTranslationRulesList + + + + SipResponseCodeTranslationRulesList + + + + OutboundCallingNumberTranslationRulesList + + + + PstnUsages + + + + Description + + + + ConcentratedTopology + + + + EnableBypass + + + + EnableMobileTrunkSupport + + + + EnableReferSupport + + + + EnableSessionTimer + + + + EnableSignalBoost + + + + MaxEarlyDialogs + + + + RemovePlusFromUri + + + + RTCPActiveCalls + + + + RTCPCallsOnHold + + + + SRTPMode + + + + EnablePIDFLOSupport + + + + EnableRTPLatching + + + + EnableOnlineVoice + + + + ForwardCallHistory + + + + Enable3pccRefer + + + + ForwardPAI + + + + EnableFastFailoverTimer + + + + EnableLocationRestriction + + + + NetworkSiteID + + + + + + + + DeserializedTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule + + + + + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.TranslationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedSipResponseCodeTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTranslationRule + + + + + + + + ReceivedResponseCode + + + + ReceivedISUPCauseValue + + + + TranslatedResponseCode + + + + Name + + + + + + + + DeserializedSipResponseCodeTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.SipResponseCodeTranslationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + ReceivedResponseCode + + + + ReceivedISUPCauseValue + + + + TranslatedResponseCode + + + + Name + + + + + + + + DeserializedCallingNumberTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule + + + + + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedCallingNumberTranslationRuleView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.CallingNumberTranslationRule#Decorated + + + + + + + + Identity + + + + Priority + + + + Description + + + + Pattern + + + + Translation + + + + Name + + + + + + + + DeserializedUcapConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Ucap.UcapConfiguration + + + + + + + + Identity + + + + UcapActivateConferenceUrl + + + + UcapHostUrl + + + + + + + + DeserializedUnassignedNumberTreatmentView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UnassignedNumberTreatmentConfiguration.UnassignedNumberTreatment + + + + + + + + TreatmentId + + + + Pattern + + + + TargetType + + + + Target + + + + TreatmentPriority + + + + Description + + + + + + + + DeserializedUnassignedNumberTreatmentView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UnassignedNumberTreatmentConfiguration.UnassignedNumberTreatment#Decorated + + + + + + + + Identity + + + + TreatmentId + + + + Pattern + + + + TargetType + + + + Target + + + + TreatmentPriority + + + + Description + + + + + + + + DeserializedUpgradeEngineHandlerConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UpgradeEngineHandler.UpgradeEngineHandlerConfiguration + + + + + + + + Identity + + + + UpgradeEngineUrl + + + + TurnOnUpgradeEngineHandler + + + + TurnOnTenantReadinessUpload + + + + WebProxy + + + + QueryInterval + + + + UpgradeErrorRetryInterval + + + + TenantReadinessUploadInterval + + + + QueryWorkItemBatchSize + + + + UpdateTenantReadinessBatchSize + + + + MaxUpgradeRetryTimes + + + + PreUpgradeVersion + + + + PostUpgradeVersion + + + + ReceiveTimeout + + + + SendTimeout + + + + MaxReceivedMessageSize + + + + MaxBufferPoolSize + + + + MaxStringContentLength + + + + + + + + DeserializedUserReplicatorConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.UserReplicatorConfiguration + + + + + + + + Identity + + + + ADDomainNamingContextList + + + + DomainControllerList + + + + ReplicationCycleInterval + + + + SkipFirstSyncAllowedDowntime + + + + + + + + DeserializedDomainControllerTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserReplicator.DomainControllerType + + + + + + + + ADDomainNamingContext + + + + DomainControllerFqdn + + + + + + + + DeserializedUserRoutingGroupConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserRoutingGroup.UserRoutingGroupConfiguration + + + + + + + + Identity + + + + Groups + + + + MaxUserCountPerGroup + + + + WarningThresholdPerGroup + + + + + + + + DeserializedUserServicesSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserServicesSettings + + + + + + + + Identity + + + + PresenceProviders + + + + MaintenanceTimeOfDay + + + + MinSubscriptionExpiration + + + + MaxSubscriptionExpiration + + + + DefaultSubscriptionExpiration + + + + AnonymousUserGracePeriod + + + + DeactivationGracePeriod + + + + MaxScheduledMeetingsPerOrganizer + + + + AllowNonRoomSystemNotification + + + + MaxSubscriptions + + + + MaxContacts + + + + MaxPersonalNotes + + + + SubscribeToCollapsedDG + + + + StateReplicationFlag + + + + TestFeatureList + + + + TestParameterList + + + + + + + + DeserializedPresenceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider + + + + + + + + Fqdn + + + + + + + + DeserializedPresenceProviderView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PresenceProvider#Decorated + + + + + + + + Identity + + + + Fqdn + + + + + + + + DeserializedPrivacyConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration + + + + + + + + Identity + + + + EnablePrivacyMode + + + + AutoInitiateContacts + + + + PublishLocationDataDefault + + + + DisplayPublishedPhotoDefault + + + + + + + + DeserializedMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.MeetingConfiguration + + + + + + + + Identity + + + + PstnCallersBypassLobby + + + + EnableAssignedConferenceType + + + + DesignateAsPresenter + + + + AssignedConferenceTypeByDefault + + + + AdmitAnonymousUsersByDefault + + + + RequireRoomSystemsAuthorization + + + + LogoURL + + + + LegalURL + + + + HelpURL + + + + CustomFooterText + + + + AllowConferenceRecording + + + + AllowCloudRecordingService + + + + EnableMeetingReport + + + + UserUriFormatForStUser + + + + + + + + DeserializedRoutingDataSyncAgentConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.RoutingDataSyncAgentConfiguration + + + + + + + + Identity + + + + Enabled + + + + BatchesPerTransaction + + + + + + + + DeserializedUserStoreConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.UserStoreConfiguration + + + + + + + + Identity + + + + UserStoreServiceUri + + + + UserStoreSyncAgentSyncIntervalSeconds + + + + UserStoreSyncAgentSyncIntervalSecondsForPush + + + + UserStoreSyncAgentSyncIntervalTimeoutSeconds + + + + UserStoreClientRetryCount + + + + UserStoreClientWaitBeforeRetryMilliseconds + + + + UserStoreClientTimeoutPerTrySeconds + + + + UserStoreClientRetryCountForPush + + + + UserStoreClientWaitBeforeRetryMillisecondsForPush + + + + UserStoreClientTimeoutPerTrySecondsForPush + + + + MaxConcurrentPulls + + + + MaxConfDocsToPull + + + + HealthProbeRtcSrvIntervalSeconds + + + + HealthProbeReplicationAppIntervalSeconds + + + + UserStoreClientUseIfxLogging + + + + UserStoreClientLoggingIfxSessionName + + + + UserStoreClientLoggingFileLocation + + + + UserStoreClientEnableHttpTracing + + + + UserStoreClientHttpTimeoutSeconds + + + + UserStoreClientConnectionLimit + + + + UserStorePhase + + + + BackfillFrequencySeconds + + + + BackfillQueueSizeThreshold + + + + BackfillBatchSize + + + + RoutingGroupPartitionHealthExpirationInMinutes + + + + RoutingGroupPartitionUnhealthyThresholdInMinutes + + + + RoutingGroupPartitionFailuresThreshold + + + + PartitionKeySuffix + + + + EnablePullStatusReporting + + + + EnableSlowPullBackOff + + + + BackOffValueMaximumThresholdInSeconds + + + + BackOffInitialValueInSeconds + + + + BackOffFactor + + + + PushControllerBatchSize + + + + HttpIdleConnectionTimeInSeconds + + + + + + + + DeserializedBroadcastMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.BroadcastMeetingConfiguration + + + + + + + + Identity + + + + EnableBroadcastMeeting + + + + EnableOpenBroadcastMeeting + + + + EnableBroadcastMeetingRecording + + + + EnableAnonymousBroadcastMeeting + + + + EnforceBroadcastMeetingRecording + + + + BroadcastMeetingSupportUrl + + + + EnableSdnProviderForBroadcastMeeting + + + + SdnFallbackAttendeeThresholdCountForBroadcastMeeting + + + + EnableTechPreviewFeatures + + + + + + + + DeserializedCloudMeetingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudMeetingConfiguration + + + + + + + + Identity + + + + EnableAutoSchedule + + + + + + + + DeserializedCloudVideoInteropConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudVideoInteropConfiguration + + + + + + + + Identity + + + + EnableCloudVideoInterop + + + + AllowLobbyBypass + + + + + + + + DeserializedCloudMeetingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.CloudMeetingServiceConfiguration + + + + + + + + Identity + + + + SchedulingUrl + + + + DiscoveryUrl + + + + + + + + DeserializedUserSettingsPageConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserSettingsPage.UserSettingsPageConfiguration + + + + + + + + Identity + + + + PstnCallingUri + + + + PstnConferencingUri + + + + VoicemailUri + + + + + + + + DeserializedVideoInteropServerConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServer.VideoInteropServerConfiguration + + + + + + + + Identity + + + + EnableEnhancedVideoExperience + + + + + + + + DeserializedVideoInteropServerSyntheticTransactionConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoInteropServerSyntheticTransaction.VideoInteropServerSyntheticTransactionConfiguration + + + + + + + + Identity + + + + WatcherNodeFqdns + + + + + + + + DeserializedVideoTrunkConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.VideoTrunkConfiguration.VideoTrunkConfiguration + + + + + + + + Identity + + + + GatewaySendsRtcpForActiveCalls + + + + GatewaySendsRtcpForCallsOnHold + + + + EnableMediaEncryptionForSipOverTls + + + + EnableSessionTimer + + + + ForwardErrorCorrectionType + + + + + + + + DeserializedTargetPoolView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool + + + + + + + + TestUsers + + + + Tests + + + + ExtendedTests + + + + TargetFqdn + + + + PortNumber + + + + UseInternalWebUrls + + + + XmppTestReceiverMailAddress + + + + Enabled + + + + UseAutoDiscovery + + + + + + + + DeserializedTargetPoolView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.TargetPool#Decorated + + + + + + + + Identity + + + + TestUsers + + + + Tests + + + + ExtendedTests + + + + TargetFqdn + + + + PortNumber + + + + UseInternalWebUrls + + + + XmppTestReceiverMailAddress + + + + Enabled + + + + UseAutoDiscovery + + + + + + + + DeserializedExtendedTestView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WatcherNode.ExtendedTest + + + + + + + + TestUsers + + + + Name + + + + TestType + + + + + + + + DeserializedWebServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.WebServiceSettings + + + + + + + + Identity + + + + TrustedCACerts + + + + CrossDomainAuthorizationList + + + + MaxGroupSizeToExpand + + + + EnableGroupExpansion + + + + UseLocalWebClient + + + + UseWindowsAuth + + + + UseCertificateAuth + + + + UsePinAuth + + + + UseDomainAuthInLWA + + + + EnableMediaBasicAuth + + + + AllowAnonymousAccessToLWAConference + + + + EnableCertChainDownload + + + + InferCertChainFromSSL + + + + CASigningKeyLength + + + + MaxCSRKeySize + + + + MinCSRKeySize + + + + MaxValidityPeriodHours + + + + MinValidityPeriodHours + + + + DefaultValidityPeriodHours + + + + MACResolverUrl + + + + SecondaryLocationSourceUrl + + + + ShowJoinUsingLegacyClientLink + + + + ShowDownloadCommunicatorAttendeeLink + + + + AutoLaunchLyncWebAccess + + + + ShowAlternateJoinOptionsExpanded + + + + UseWsFedPassiveAuth + + + + WsFedPassiveMetadataUri + + + + AllowExternalAuthentication + + + + ExcludedUserAgents + + + + OverrideAuthTypeForInternalClients + + + + OverrideAuthTypeForExternalClients + + + + MobilePreferredAuthType + + + + EnableStatisticsInResponse + + + + HstsMaxAgeInSeconds + + + + EnableCORS + + + + CorsPreflightResponseMaxAgeInSeconds + + + + CrossDomainAuthorizationRegularExpressionList + + + + + + + + DeserializedCACertIdView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.CACertId + + + + + + + + Thumbprint + + + + CAStore + + + + + + + + DeserializedOriginView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Origin + + + + + + + + Url + + + + + + + + DeserializedHostedWebAuthSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.HostedWebAuthSettings + + + + + + + + Identity + + + + UseWsFedAuth + + + + WsFedMetadataUri + + + + WsFedEnvironment + + + + UseClientCertAuthForWindowsAuth + + + + WsFederationProvider + + + + CompactWebTicketUserIdentiferType + + + + AddTenantIdToCompactWebTicket + + + + + + + + DeserializedWebAppHealthView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebAppHealth.WebAppHealth + + + + + + + + Identity + + + + + + + + DeserializedConfSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConfSettings + + + + + + + + Identity + + + + MaxContentStorageMb + + + + MaxUploadFileSizeMb + + + + MaxBandwidthPerAppSharingServiceMb + + + + ContentGracePeriod + + + + ClientMediaPortRangeEnabled + + + + ClientMediaPort + + + + ClientMediaPortRange + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientFileTransferPort + + + + ClientFileTransferPortRange + + + + ClientSipDynamicPort + + + + ClientSipDynamicPortRange + + + + Organization + + + + HelpdeskInternalUrl + + + + HelpdeskExternalUrl + + + + ConsoleDownloadInternalUrl + + + + ConsoleDownloadExternalUrl + + + + CloudPollServicePrimaryUrl + + + + CloudPollServiceSecondaryUrl + + + + + + + + DeserializedConferenceDisclaimerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.ConferenceDisclaimer + + + + + + + + Identity + + + + Header + + + + Body + + + + + + + + DeserializedXForestMigrationConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XForestMigration.XForestMigrationConfiguration + + + + + + + + Identity + + + + ReportErrorDetailBackToClient + + + + MaxSessionPerPool + + + + ThreadsPerTenant + + + + ThreadsPerFE + + + + PublishRoutingGroupDocumentInterval + + + + MoveHandlerEnabled + + + + MoveHandlerRequestInAsyncMode + + + + MoveHandlerQueryBatchSize + + + + MoveHandlerMaxDualSyncTenants + + + + MoveHandlerUserMoveBatchSize + + + + MoveHandlerStatusRetryLimitSinceLastStateChange + + + + MoveHandlerTenantRetryLimit + + + + MoveHandlerFinalizeTimeSpan + + + + MoveHandlerQueryInterval + + + + MoveHandlerErrorRetryInterval + + + + MoveHandlerStatusRetryInterval + + + + MoveHandlerUserMovePerSecond + + + + SHDMessageCenterEndpoint + + + + TenantNotificationEndMonth + + + + TenantNotificationStartDay + + + + EnableTenantNotification + + + + TenantNotificationExpirationDay + + + + UserMovesRetryPattern + + + + + + + + DeserializedXmppGatewaySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppGatewaySettings + + + + + + + + Identity + + + + ConnectionLimit + + + + DialbackPassphrase + + + + EnableLoggingAllMessageBodies + + + + KeepAliveInterval + + + + PartnerConnectionLimit + + + + StreamEstablishmentTimeout + + + + StreamInactivityTimeout + + + + SubscriptionRefreshInterval + + + + + + + + DeserializedXmppAllowedPartnerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner + + + + + + + + AdditionalDomains + + + + Domain + + + + ConnectionLimit + + + + Description + + + + EnableKeepAlive + + + + ProxyFqdn + + + + SaslNegotiation + + + + SupportDialbackNegotiation + + + + TlsNegotiation + + + + PartnerType + + + + + + + + DeserializedXmppAllowedPartnerView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.XmppFederation.XmppAllowedPartner#Decorated + + + + + + + + Identity + + + + AdditionalDomains + + + + Domain + + + + ConnectionLimit + + + + Description + + + + EnableKeepAlive + + + + ProxyFqdn + + + + SaslNegotiation + + + + SupportDialbackNegotiation + + + + TlsNegotiation + + + + PartnerType + + + + + + + + DeserializedVoiceRoutingPolicyView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Hosted.VoiceRoutingPolicy + + + + + + + + Identity + + + + PstnUsages + + + + Description + + + + Name + + + + AllowInternationalCalls + + + + HybridPSTNSiteIndex + + + + + + + + DeserializedAddressBookSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AddressBook.Hosted.AddressBookSettings + + + + + + + + Identity + + + + RunTimeOfDay + + + + KeepDuration + + + + SynchronizePollingInterval + + + + MaxDeltaFileSizePercentage + + + + UseNormalizationRules + + + + IgnoreGenericRules + + + + EnableFileGeneration + + + + MaxFileShareThreadCount + + + + EnableSearchByDialPad + + + + EnablePhotoSearch + + + + PhotoCacheRefreshInterval + + + + AzureAddressBookPrimaryServiceUrl + + + + AzureAddressBookSecondaryServiceUrl + + + + AzureAddressBookHealthPollingInterval + + + + DisableUserReplicationForAddressBook + + + + + + + + DeserializedCdrSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CallDetailRecording.Hosted.CdrSettings + + + + + + + + Identity + + + + MessageTypes + + + + EnableCDR + + + + EnableUdcLite + + + + EnablePurging + + + + KeepCallDetailForDays + + + + KeepErrorReportForDays + + + + PurgeHourOfDay + + + + EnableQueueBypassForErrorReport + + + + DataStore + + + + + + + + DeserializedCentralizedLoggingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.CentralizedLoggingConfig.Hosted.CentralizedLoggingConfiguration + + + + + + + + Identity + + + + Scenarios + + + + SearchTerms + + + + SecurityGroups + + + + Regions + + + + EtlModeEnabled + + + + EtlFileFolder + + + + EtlFileRolloverSizeMB + + + + EtlFileRolloverMinutes + + + + ZipEtlEnabled + + + + LocalSearchMode + + + + EtlNtfsCompressionEnabled + + + + TmfFileSearchPath + + + + CacheFileLocalFolders + + + + CacheFileNetworkFolder + + + + CacheFileLocalRetentionPeriod + + + + CacheFileLocalMaxDiskUsage + + + + ComponentThrottleLimit + + + + ComponentThrottleSample + + + + MinimumClsAgentServiceVersion + + + + NetworkUsagePacketSize + + + + NetworkUsageThreshold + + + + KrakenDBConnectionString + + + + SupportedRolesFromKrakenDB + + + + SupportedNonTopologyRolesFromKrakenDB + + + + Version + + + + InsertTypesForSubstringMatch + + + + ETLMinFreeSpaceInDiskInBytes + + + + ETLEnoughFreeSpaceInDiskInBytes + + + + ETLMaxQuotaInBytes + + + + ETLEnoughQuotaInBytes + + + + EtlMaxRetentionInDays + + + + EtlModeRevision + + + + ETLMinQuotaInBytes + + + + EtlMdsUploadEnabled + + + + EtlMdsUploadProviders + + + + LocalSearchModeRevision + + + + DisableTargetScenarios + + + + CloudOutputEnabled + + + + CloudOutputCpu + + + + CloudOutputUploadLimit + + + + CloudOutputUploadRatio + + + + + + + + DeserializedDialInConferencingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.DialInConferencingSettings.Hosted.DialInConferencingConfiguration + + + + + + + + Identity + + + + EntryExitAnnouncementsType + + + + BatchToneAnnouncements + + + + EnableNameRecording + + + + EntryExitAnnouncementsEnabledByDefault + + + + UsePinAuth + + + + PinAuthType + + + + EnableInterpoolTransfer + + + + EnableAccessibilityOptions + + + + EnableAnnouncementServiceTransfer + + + + + + + + DeserializedMediaRelaySettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.MediaRelaySettings + + + + + + + + Identity + + + + MaxTokenLifetime + + + + MaxBandwidthPerUserKb + + + + MaxBandwidthPerPortKb + + + + PermissionListIgnoreSeconds + + + + MaxAverageConnPps + + + + MaxPeakConnPps + + + + TRAPUrl + + + + TRAPCallDistribution + + + + TRAPHttpclientRetryCount + + + + TRAPHttpclientTimeoutInMilliSeconds + + + + HideMrasInternalFqdnForClientRequest + + + + + + + + DeserializedMediaSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Media.Hosted.MediaSettings + + + + + + + + Identity + + + + EnableQoS + + + + EncryptionLevel + + + + EnableSiren + + + + MaxVideoRateAllowed + + + + EnableG722StereoCodec + + + + EnableSirenForAudioVideoConferences + + + + EnableH264Codec + + + + EnableH264StdCodec + + + + EnableAdaptiveBandWidthEstimation + + + + EnableG722Codec + + + + EnableInCallQoS + + + + InCallQoSIntervalSeconds + + + + MediaPaaSBaseUrl + + + + MediaPaaSAuthenticationScheme + + + + MediaPaaSAppId + + + + MediaPaaSAudience + + + + ; + + + + EnableRtpRtcpMultiplexing + + + + EnableVideoBasedSharing + + + + WaitIceCompletedToAddDialOutUser + + + + EnableDtls + + + + EnableRtx + + + + EnableSilkForAudioVideoConferences + + + + EnableMTurnAllocationForAudioVideoConferences + + + + EnableAVBundling + + + + EnableServerFecForVideoInterop + + + + EnableReceiveAgc + + + + EnableDelayStartAudioReceiveStream + + + + + + + + DeserializedPlatformServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.Hosted.PlatformServiceSettings + + + + + + + + Identity + + + + UcwaThrottlingConfigurations + + + + EnableScopes + + + + EnableCORS + + + + EnableApplicationRoles + + + + WebPoolFqdnDomainSuffix + + + + EnableAnonymousMeetingJoin + + + + EnableAnonymousMeetingJoinTokensAcrossTenants + + + + MeetingUrlAuthorizationList + + + + ServicePointManagerDefaultConnectionLimit + + + + MaxRegistrationsPerPublicApplication + + + + MaxEventChannelsPerApplication + + + + EnableUcwaThrottling + + + + EnableUcwaMessageFailureNotifications + + + + UcwaThrottlingThresholdPercentageForInternal + + + + UcwaThrottlingThresholdPercentageForPublic + + + + ApplicationProviderMode + + + + ApplicationProviderRefreshTimeSpanInMinutes + + + + EnableDelegateManagement + + + + EnableExternalAccessCheck + + + + ReplayApplicationEndpointUri + + + + EnableReplayMessage + + + + EnableMyOrganizationGroup + + + + EnableUcwaThrottlingToExchange + + + + HideRequireIntunePolicy + + + + MaxConcurrentUcwaRequestsToExchange + + + + BlockUnauthenticatedDiscover + + + + BlockUnlicensedTenantInFirstPartyDiscover + + + + ReplaceNamespaceHosts + + + + AlternateTokenNamespace + + + + EnablePushNotifications + + + + UseLegacyPushNotifications + + + + ConferenceChatInactivityTimeoutInHours + + + + EnableE911 + + + + EnableFileTransfer + + + + AllowCallsFromNonContactsInPrivatePrivacyMode + + + + BvdPortalWhitelistedApp + + + + BlacklistedApps + + + + TestParameters + + + + AutodiscoverBaseUrl + + + + ClusterFqdnForAutodiscover + + + + EWSTimeoutInSeconds + + + + EnablePreDrainingForIncomingCalls + + + + EnableMdsLogging + + + + EnableBotframeworkChannel + + + + BlockCrossTenantChannelForBotframework + + + + BotframeworkReportingServiceBusConnectionString + + + + GenevaTelemetryAccountName + + + + GenevaTelemetryAccountNamespace + + + + BotframeworkManagementServiceBusConnectionString + + + + EnableSendServerLogs + + + + EnableE911RequestXmlEncoding + + + + SendServerLogsServiceUrl + + + + TrouterCallbackBaseUrl + + + + EnableUcwaEscalateIncomingAvCallOnWebRtc + + + + EnableUcwaMdsLogging + + + + ContactCardUpdateAfterSignInMs + + + + ContactCardUpdateCheckInSeconds + + + + + + + + DeserializedThrottlingConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformServiceSettings.ThrottlingConfiguration + + + + + + + + Name + + + + ThrottlingTargetType + + + + ThrottlingMode + + + + ThrottlingScope + + + + TimeRangeInMinutes + + + + TargetNumber + + + + ExcludedApiNames + + + + IncludedApiNames + + + + OverrideThresholdPercentageForPublic + + + + SkipInBatchRequest + + + + + + + + DeserializedQoESettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.QoE.Hosted.QoESettings + + + + + + + + Identity + + + + ExternalConsumerIssuedCertId + + + + EnablePurging + + + + KeepQoEDataForDays + + + + PurgeHourOfDay + + + + EnableExternalConsumer + + + + ExternalConsumerName + + + + ExternalConsumerURL + + + + EnableQoE + + + + EnableQueueBypass + + + + DataStore + + + + + + + + DeserializedRecordingServiceConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.RecordingService.Hosted.RecordingServiceConfiguration + + + + + + + + Identity + + + + RecordingServiceAuthenticationScheme + + + + RecordingServiceBaseUrl + + + + RecordingServiceAppId + + + + RecordingServiceAudience + + + + + + + + DeserializedOAuthSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SSAuth.Hosted.OAuthSettings + + + + + + + + Identity + + + + PartnerApplications + + + + OAuthServers + + + + Realm + + + + ServiceName + + + + ClientAuthorizationOAuthServerIdentity + + + + ExchangeAutodiscoverUrl + + + + ExchangeAutodiscoverAllowedDomains + + + + ClientAdalAuthOverride + + + + AlternateAudienceUrl + + + + AdditionalAudienceUrls + + + + + + + + DeserializedSignInTelemetryConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SignInTelemetry.Hosted.SignInTelemetryConfiguration + + + + + + + + Identity + + + + EnableClientTelemetry + + + + SignInTelemetryUrl + + + + SkypeTelemetryUrl + + + + + + + + DeserializedSimpleUrlConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.Hosted.SimpleUrlConfiguration + + + + + + + + Identity + + + + SimpleUrl + + + + UseBackendDatabase + + + + WebSchedulerUrl + + + + + + + + DeserializedSimpleUrlView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.SimpleUrl.Hosted.SimpleUrl + + + + + + + + SimpleUrlEntry + + + + Component + + + + Domain + + + + ActiveUrl + + + + MoreaDomain + + + + LegacyMoreaDomain + + + + + + + + DeserializedStorageServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.StorageService.Hosted.StorageServiceSettings + + + + + + + + Identity + + + + EnableAutoImportFlushedData + + + + EnableFabricReplicationSetReduction + + + + EnableAsyncAdaptorTaskAbort + + + + FabricInvalidStateTimeoutDuration + + + + SingleSecondaryMissingTimeoutDuration + + + + SingleSecondaryQuorumEventLogInterval + + + + EnableLightweightFinalization + + + + EnableGenevaLogging + + + + EnableEwsTaskTimeout + + + + FilteredAdapterIdList + + + + EnableAttachmentCache + + + + AttachmentCacheTimeout + + + + MaxTotalMemoryForActiveFileUploadsInGB + + + + MemoryToFileSizeRatioForExArchUpload + + + + EnableAggressiveGC + + + + EnableWCFSelfHeal + + + + + + + + DeserializedTrunkConfigurationView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TrunkConfiguration.Hosted.TrunkConfiguration + + + + + + + + Identity + + + + OutboundTranslationRulesList + + + + SipResponseCodeTranslationRulesList + + + + OutboundCallingNumberTranslationRulesList + + + + PstnUsages + + + + Description + + + + ConcentratedTopology + + + + EnableBypass + + + + EnableMobileTrunkSupport + + + + EnableReferSupport + + + + EnableSessionTimer + + + + EnableSignalBoost + + + + MaxEarlyDialogs + + + + RemovePlusFromUri + + + + RTCPActiveCalls + + + + RTCPCallsOnHold + + + + SRTPMode + + + + EnablePIDFLOSupport + + + + EnableRTPLatching + + + + EnableOnlineVoice + + + + ForwardCallHistory + + + + Enable3pccRefer + + + + ForwardPAI + + + + EnableFastFailoverTimer + + + + EnablePassThrough + + + + IndicatePstnGateway + + + + EnableG722Codec + + + + EnableLocationRestriction + + + + NetworkSiteID + + + + EnableEntitlementChecks + + + + WildcardCertDomainSuffix + + + + EnableOptionsAlerting + + + + EnableImmediateRinging + + + + ProvisionalResponseInterval + + + + OfferIncomingCallGatewaySDP + + + + Suppress183WithoutSdpToGateway + + + + + + + + DeserializedWebServiceSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Hosted.WebServiceSettings + + + + + + + + Identity + + + + TrustedCACerts + + + + CrossDomainAuthorizationList + + + + MaxGroupSizeToExpand + + + + EnableGroupExpansion + + + + UseLocalWebClient + + + + UseWindowsAuth + + + + UseCertificateAuth + + + + UsePinAuth + + + + UseDomainAuthInLWA + + + + EnableMediaBasicAuth + + + + AllowAnonymousAccessToLWAConference + + + + EnableCertChainDownload + + + + InferCertChainFromSSL + + + + CASigningKeyLength + + + + MaxCSRKeySize + + + + MinCSRKeySize + + + + MaxValidityPeriodHours + + + + MinValidityPeriodHours + + + + DefaultValidityPeriodHours + + + + MACResolverUrl + + + + SecondaryLocationSourceUrl + + + + ShowJoinUsingLegacyClientLink + + + + MakeHtmlLyncWebAppPrimaryMeetingClient + + + + ShowDownloadCommunicatorAttendeeLink + + + + AutoLaunchLyncWebAccess + + + + ShowAlternateJoinOptionsExpanded + + + + IsPublicDisclosureAllowed + + + + JoinIdentifierRegularExpression + + + + UseWsFedPassiveAuth + + + + WsFedPassiveMetadataUri + + + + AllowExternalAuthentication + + + + ExcludedUserAgents + + + + OverrideAuthTypeForInternalClients + + + + OverrideAuthTypeForExternalClients + + + + MobilePreferredAuthType + + + + EnableStatisticsInResponse + + + + HstsMaxAgeInSeconds + + + + HelpUrlLyncWebAccess + + + + PrivacyUrlLyncWebAccess + + + + EnableCosmosUploadOnEdge + + + + EnableCosmosUploadForWebComponents + + + + PrivacyUrlLyncWebScheduler + + + + XFrameJavascriptUri + + + + PlatformServiceTokenIssuerCertificateMetadataUri + + + + AzureActiveDirectoryGraphApiBaseUri + + + + EnableAzureActiveDirectoryLookup + + + + AadServicePrincipalListForTenantDomainLookup + + + + EnableCORS + + + + CorsPreflightResponseMaxAgeInSeconds + + + + AllowCrossForestWebRequestProxy + + + + TestFeatureList + + + + TestParameterList + + + + CrossDomainAuthorizationRegularExpressionList + + + + DisableClientCertificateStorage + + + + + + + + DeserializedOriginView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Web.Hosted.Origin + + + + + + + + Url + + + + OriginVerificationMethod + + + + + + + + DeserializedConfSettingsView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.WebConf.Hosted.ConfSettings + + + + + + + + Identity + + + + MaxContentStorageMb + + + + MaxUploadFileSizeMb + + + + MaxBandwidthPerAppSharingServiceMb + + + + ContentGracePeriod + + + + ClientMediaPortRangeEnabled + + + + ClientMediaPort + + + + ClientMediaPortRange + + + + ClientAudioPort + + + + ClientAudioPortRange + + + + ClientVideoPort + + + + ClientVideoPortRange + + + + ClientAppSharingPort + + + + ClientAppSharingPortRange + + + + ClientFileTransferPort + + + + ClientFileTransferPortRange + + + + ClientSipDynamicPort + + + + ClientSipDynamicPortRange + + + + Organization + + + + HelpdeskInternalUrl + + + + HelpdeskExternalUrl + + + + ConsoleDownloadInternalUrl + + + + ConsoleDownloadExternalUrl + + + + CloudPollServicePrimaryUrl + + + + CloudPollServiceSecondaryUrl + + + + DataRvCollectorUrl + + + + SupportLyncServer2010RtmDataMcuUserDirectories + + + + AriaTenantToken + + + + UseConnectedConnections + + + + EnableLwaRecording + + + + PsomEventReportLevel + + + + PurgingMode + + + + AlwaysUseExternalUrls + + + + UseStorageService + + + + UseTenantLevelMeetingSettings + + + + UseJitLocking + + + + JitLockingRetryIntervalSeconds + + + + JitLockingMaxRetryCount + + + + EncryptArchivedData + + + + CreateBackCompatUnencryptedFiles + + + + + + + + ServiceCmdlets + + Microsoft.Rtc.Management.Deployment.Core.NTService + + + + + + 8 + + + + 15 + + + + 120 + + + + + + + ServiceStatus + + + ServiceName + + + ActivityLevel + + + + + + + + NTServiceView + + Microsoft.Rtc.Management.Deployment.Core.NTServiceView + + + + + + 8 + + + + 15 + + + + 120 + + + + + + + Status + + + Name + + + ActivityLevel + + + + + + + + AbAttributeValues + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.AbAttributeValue + + + + + + 30 + + + + 70 + + + + + + + Name + + + Value + + + + + + + + AbServerHeartbeats + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.AbServerHeartbeat + + + + + + 30 + + + + 22 + + + + 22 + + + + 22 + + + + + + + Fqdn + + + LastHeartbeat + + + LastRegister + + + LastUnregister + + + + + + + + ManagementConnectionView + + Microsoft.Rtc.Management.Xds.ManagementConnection + + + + + + + + StoreProvider + + + + Connection + + + + ReadOnly + + + + SqlServer + + + + SqlInstance + + + + + + + + ServiceTypeView + + Microsoft.Rtc.Management.Fabric.ServiceTypeData + + + + + + 20 + + + + 100 + + + + + + + ServiceType + + + ServiceTable + + + + + + + + ReplicaStateView + + Microsoft.Rtc.Management.Xds.ReplicaState + + + + + + + + UpToDate + + + + ReplicaFqdn + + + + LastStatusReport + + + + LastUpdateCreation + + + + ProductVersion + + + + + + + + DisplayAccessEdgeSettingsDefaultRouteView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayAccessEdgeSettingsDefaultRoute + + + + + + + + Identity + + + + AllowAnonymousUsers + + + + AllowFederatedUsers + + + + AllowOutsideUsers + + + + DefaultRouteFqdn + + + + EnableArchivingDisclaimer + + + + EnableUserReplicator + + + + IsPublicProvider + + + + KeepCrlsUpToDateForPeers + + + + MarkSourceVerifiableOnOutgoingMessages + + + + OutgoingTlsCountForFederatedPartners + + + + DnsSrvCacheRecordCount + + + + DiscoveredPartnerStandardRate + + + + EnableDiscoveredPartnerContactsLimit + + + + MaxContactsPerDiscoveredPartner + + + + EnableDiscoveredPartnerResponseMonitor + + + + DiscoveredPartnerReportPeriodMinutes + + + + EnablePartnerMonitoringCosmosOutput + + + + EnablePartnerMonitoringIfxLog + + + + MaxAcceptedCertificatesStored + + + + MaxRejectedCertificatesStored + + + + CertificatesDeletedPercentage + + + + SkypeSearchUrl + + + + RoutingMethod + + + + VerificationLevel + + + + + + + + DisplayAccessEdgeSettingsDnsSrvRoutingView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayAccessEdgeSettingsDnsSrvRouting + + + + + + + + Identity + + + + AllowAnonymousUsers + + + + AllowFederatedUsers + + + + AllowOutsideUsers + + + + BeClearingHouse + + + + EnablePartnerDiscovery + + + + DiscoveredPartnerVerificationLevel + + + + EnableArchivingDisclaimer + + + + EnableUserReplicator + + + + KeepCrlsUpToDateForPeers + + + + MarkSourceVerifiableOnOutgoingMessages + + + + OutgoingTlsCountForFederatedPartners + + + + DnsSrvCacheRecordCount + + + + DiscoveredPartnerStandardRate + + + + EnableDiscoveredPartnerContactsLimit + + + + MaxContactsPerDiscoveredPartner + + + + EnableDiscoveredPartnerResponseMonitor + + + + DiscoveredPartnerReportPeriodMinutes + + + + EnablePartnerMonitoringCosmosOutput + + + + EnablePartnerMonitoringIfxLog + + + + MaxAcceptedCertificatesStored + + + + MaxRejectedCertificatesStored + + + + CertificatesDeletedPercentage + + + + SkypeSearchUrl + + + + RoutingMethod + + + + + + + + RoleView + + Microsoft.Rtc.Management.Authorization.OnPremDisplayRole + + + + + + + + Identity + + + + SID + + + + IsStandardRole + + + + Cmdlets + + + + ScriptModules + + + + ConfigScopes + + + + UserScopes + + + + TemplateName + + + + + + + + RoleView + + Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role + + + + + + + + Identity + + + + SID + + + + IsStandardRole + + + + Cmdlets + + + + ScriptModules + + + + ConfigScopes + + + + UserScopes + + + + TemplateName + + + + MSODSTemplateId + + + + + + + + CmdletTypeView + + Deserialized.Microsoft.Rtc.Management.Authorization.OnPremDisplayCmdletType + + + + + + + + Name + + + + + + + + CmdletTypeView + + Microsoft.Rtc.Management.Authorization.OnPremDisplayCmdletType + + + + + + + + Name + + + + + + + + CmdletTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletType + + + + + + + + Name + + + + AllowedParameters + + + + + + + + CmdletTypeView + + Microsoft.Rtc.Management.WritableConfig.Settings.Roles.CmdletType + + + + + + + + Name + + + + AllowedParameters + + + + + + + + ScriptCmdletTypeView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Roles.ScriptCmdletType + + + + + + + + ScriptFile + + + + FunctionName + + + + + + + + ConfigScopeView + + Microsoft.Rtc.Management.Core.ConfigScope + + + + + + + + Scope + + + + Value + + + + + + + + UserScopeView + + Microsoft.Rtc.Management.Core.UserScope + + + + + + + + Scope + + + + Value + + + + + + + + DisplayPublicProviderView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayPublicProvider + + + + + + + + Identity + + + + Name + + + + ProxyFqdn + + + + IconUrl + + + + NameDecorationDomain + + + + NameDecorationRoutingDomain + + + + NameDecorationExcludedDomainList + + + + VerificationLevel + + + + Enabled + + + + EnableSkypeIdRouting + + + + EnableSkypeDirectorySearch + + + + + + + + DisplayHostingProviderView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DisplayHostingProvider + + + + + + + + Identity + + + + Name + + + + ProxyFqdn + + + + VerificationLevel + + + + Enabled + + + + EnabledSharedAddressSpace + + + + HostsOCSUsers + + + + IsLocal + + + + AutodiscoverUrl + + + + + + + + CertificateReferenceView + + Microsoft.Rtc.Management.Deployment.CertificateReference + + + + + + + + Issuer + + + + NotAfter + + + + NotBefore + + + + SerialNumber + + + + Subject + + + + AlternativeNames + + + + Thumbprint + + + + EffectiveDate + + + + PreviousThumbprint + + + + UpdateTime + + + + Use + + + + SourceScope + + + + + + + + DisplaySiteView + + Microsoft.Rtc.Management.Xds.DisplaySite + + + + + + + + Identity + + + + SiteId + + + + Services + + + + Pools + + + + FederationRoute + + + + XmppFederationRoute + + + + Description + + + + DisplayName + + + + SiteType + + + + ParentSite + + + + + + + + DisplayPoolView + + Microsoft.Rtc.Management.Xds.DisplayPool#Decorated + + + + + + + + Identity + + + + Services + + + + Computers + + + + Fqdn + + + + BackupPoolFqdn + + + + Site + + + + + + + + DisplayComputerView + + Microsoft.Rtc.Management.Xds.DisplayComputer#Decorated + + + + + + + + Identity + + + + Pool + + + + Fqdn + + + + + + + + DisplayTeamsUpgradePolicy + + Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy#Decorated + + + + + + + + Identity + + + + Description + + + + Mode + + + + NotifySfbUsers + + + + + + + + DisplayDeserializedTeamsUpgradePolicy + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy#Decorated + + + + + + + + Identity + + + + Description + + + + Mode + + + + NotifySfbUsers + + + + + + + + MirrorUserStoreStateView + + Microsoft.Rtc.Management.Xds.MirrorUserStoreState + + + + + + + + Identity + + + + Mirror + + + + Online + + + + + + + + UserStoreStateView + + Microsoft.Rtc.Management.Xds.UserStoreState + + + + + + + + Identity + + + + Online + + + + + + + + SyntheticTransactionsTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.TaskOutput + + + + + + + + TargetFqdn + + + + Result + + + + Latency + + + + Error + + + + Diagnosis + + + + + + + + SyntheticTransactionsWebTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.WebTaskOutput + + + + + + + + TargetFqdn + + + + TargetUri + + + + Result + + + + Latency + + + + Error + + + + Diagnosis + + + + + + + + SyntheticTransactionsAddressBookReplicationUserTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.AddressBookReplicationUserTaskOutput + + + + + + + + TargetFqdn + + + + ReplicationState + + + + TaskOwnerFqdn + + + + BackupFqdn + + + + LastModified + + + + LastModifiedAD + + + + ServerHeartbeats + + + + IndexedObjects + + + + TotalObjects + + + + ShouldBeIndexedObjects + + + + AbandondedObjects + + + + FailedResourceCount + + + + AdObjectId + + + + DistinguishedName + + + + SipAddress + + + + AttributeValues + + + + IsIndexed + + + + ShouldBeIndexed + + + + IsProcessed + + + + NormalizationSucceeded + + + + ManagerDn + + + + NormalizationFailureCount + + + + NormalizationFailures + + + + DatabaseErrorCount + + + + DatabaseErrors + + + + + + + + SyntheticTransactionsAddressBookReplicationTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.AddressBookReplicationTaskOutput + + + + + + + + TargetFqdn + + + + ReplicationState + + + + TaskOwnerFqdn + + + + BackupFqdn + + + + ServerHeartbeats + + + + IndexedObjects + + + + TotalObjects + + + + ShouldBeIndexedObjects + + + + AbandondedObjects + + + + FailedResourceCount + + + + NormalizationFailureCount + + + + NormalizationFailures + + + + DatabaseErrorCount + + + + DatabaseErrors + + + + + + + + SyntheticTransactionsSprocExecuteErrorView + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.SprocExecuteErrorInfo + + + + + + + + ErrorCode + + + + Severity + + + + Count + + + + FirstOccurred + + + + LastOccurred + + + + SprocName + + + + ErrorText + + + + Example + + + + + + + + FedSyntheticTransactionsTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.Extended.FedTaskOutput + + + + + + + + Endpoints + + + + Result + + + + Latency + + + + Error + + + + Diagnosis + + + + + + + + LegalInterceptView + + Microsoft.Rtc.Management.ADConnect.Schema.ADOCOnlineLegalIntercept + + + + + + + + Identity + + + + SipAddress + + + + LegalInterceptEnabled + + + + LegalInterceptDestination + + + + LegalInterceptExpiryTime + + + + + + + + ClientAccessLicenseView + + Microsoft.Rtc.Server.Cdr.ClientAccessLicense + + + + + + 48 + + + + + + + + + + + + + + + + UserUri + + + IpAddress + + + LicenseDisplayName + + + DisplayDate + + + + + + + + LicenseView + + Microsoft.Rtc.Server.Cdr.License + + + + + + + + + + + + DisplayName + + + + + + + + PoolUpgradeReadinessView + + Microsoft.Rtc.Management.Hadr.PoolUpgradeState + + + + + + + + PoolFqdn + + + State + + + TotalFrontends + + + TotalActiveFrontends + + + UpgradeDomains + + + + + + + + InterPoolReplicationComparisonResultFailedView + + Microsoft.Rtc.Management.Hadr.InterPoolReplication.ComparisonResultFailure + + + + + + + Identity + + + OwnerPoolFqdn + + + ReplicateFrom + + + ReplicateTo + + + Exception + + + + + + + + DatabaseComparisonResultView + + Microsoft.Rtc.Management.Hadr.InterPoolReplication.DatabaseComparisonResult + + + + + + + Identity + + + OwnerPoolFqdn + + + ReplicateFrom + + + ReplicateTo + + + NumberOfBatchesOnSource + + + NumberOfBatchesOnBackup + + + NumberOfBatchesInSync + + + NumberOfBatchesWithSyncInProgress + + + NumberOfBatchesOutOfSync + + + NumberOfItemsOnSource + + + NumberOfItemsOnBackup + + + NumberOfItemsInSync + + + NumberOfItemsWithSyncInProgress + + + NumberOfItemsOutOfSync + + + + ; + + + + ; + + + + + + + + UserFabricStateView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayUserFabricState + + + + + + + SipAddress + + + TenantId + + + RoutingGroupId + + + HomePool + + + CurrentPool + + + Replicas + + + FabricServiceWriteStatus + + + + + + + + TenantFabricStateView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayTenantFabricState + + + + + + + TenantId + + + TotalUsers + + + ActiveUsers + + + ActiveEndpoints + + + + ; + + + + + + + + RoutingGroupFabricStateView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayRoutingGroupFabricState + + + + + + + RoutingGroupId + + + TotalUsers + + + ActiveUsers + + + ActiveEndpoints + + + HomePool + + + CurrentPool + + + Replicas + + + FabricServiceWriteStatus + + + + + + + + RoutingGroupFabricStateWithTenantsView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayRoutingGroupFabricStateWithTenants + + + + + + + RoutingGroupId + + + TotalUsers + + + ActiveUsers + + + ActiveEndpoints + + + HomePool + + + CurrentPool + + + Replicas + + + FabricServiceWriteStatus + + + + ; + + + + ; + + + + + + + + ResponseElementView + + Microsoft.Rtc.ClsControllerLib.ResponseElement + + + + + + 8 + + + + 70 + + + + 30 + + + + + + + Code + + + Message + + + Data + + + + + + + + ClsStateMachineView + + Microsoft.Rtc.ClsControllerLib.ClsStateMachine + + + PoolFqdn + + + + + + 28 + Left + + + + 30 + Left + + + + 8 + Left + + + + 16 + Left + + + + 9 + Left + + + + 14 + Left + + + + + + + + MachineFqdn + + + ResponseMessage + + + AlwaysOn + + + ScenarioName + + + RemainingMins + + + ProductVersion + + + + + + + + ClsSearchOutputView + + Microsoft.Rtc.Management.Cls.ClsSearchOutput + + + + + + + ResponseMessage + + + OutputFile + + + StartTime + + + EndTime + + + SuccessfulAgents + + + FailedAgents + + + + + + + + ClsAgentStatusOutputView + + Microsoft.Rtc.Management.Cls.AgentInfoETL + + + + + + + CoreVersion + + + ClsAgentExeVersion + + + ServiceStatus + + + TracingFolder + + + ServiceStartStop + + + AgentState + + + LogPath + + + OldestFile + + + NewestFile + + + DaysOfLogs + + + LogFileCount + + + LogAge + + + LogDateRanges + + + + ; + + + + ; + + + ByDayLogMB + + + ByHourLogMB + + + Last24HourLogMB + + + Last1HourLogMB + + + Drives + + + EtlModeRevision + + + + ; + + + ZipEtlEnabled + + + EtlNtfsCompressionEnabled + + + EtlMaxRetentionInDays + + + + ; + + + + ; + + + + ; + + + + ; + + + + ; + + + TmxFiles + + + TmxCount + + + LogFiles + + + + + + + + SlaConfiguration + + Microsoft.Rtc.Management.SlaConfiguration + + + + + + + + BusyOption + + + + Target + + + + MissedCallOption + + + + MissedCallForwardTarget + + + + MaxNumberOfCalls + + + + ; + + + + + + + + BobConfiguration + + Microsoft.Rtc.Management.Bob.Cmdlets.BobConfiguration + + + + + + + Identity + + + ActionType + + + + + + + + ReplicaBuildProgressView + + Microsoft.Rtc.Management.HADR.FabricState.DisplayReplicaBuildProgress + + + + + + + AsOfTime + + + StartSequenceNum + + + EndSequenceNum + + + CurrentSequenceNum + + + BuildState + + + + + + + + DeserializedTrunkConfigView + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated2 + + + + + + + + Identity + + + + InboundTeamsNumberTranslationRules + + + + InboundPstnNumberTranslationRules + + + + OutboundTeamsNumberTranslationRules + + + + OutboundPstnNumberTranslationRules + + + + Fqdn + + + + SipSignalingPort + + + + FailoverTimeSeconds + + + + ForwardCallHistory + + + + ForwardPai + + + + SendSipOptions + + + + MaxConcurrentSessions + + + + Enabled + + + + MediaBypass + + + + GatewaySiteId + + + + GatewaySiteLbrEnabled + + + + GatewayLbrEnabledUserOverride + + + + FailoverResponseCodes + + + + PidfLoSupported + + + + MediaRelayRoutingLocationOverride + + + + ProxySbc + + + + BypassMode + + + + Description + + + + IPAddressVersion + + + + + + + + TrunkConfigView + + Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated2 + + + + + + + + Identity + + + + InboundTeamsNumberTranslationRules + + + + InboundPstnNumberTranslationRules + + + + OutboundTeamsNumberTranslationRules + + + + OutboundPstnNumberTranslationRules + + + + Fqdn + + + + SipSignalingPort + + + + FailoverTimeSeconds + + + + ForwardCallHistory + + + + ForwardPai + + + + SendSipOptions + + + + MaxConcurrentSessions + + + + Enabled + + + + MediaBypass + + + + GatewaySiteId + + + + GatewaySiteLbrEnabled + + + + GatewayLbrEnabledUserOverride + + + + FailoverResponseCodes + + + + PidfLoSupported + + + + MediaRelayRoutingLocationOverride + + + + ProxySbc + + + + BypassMode + + + + Description + + + + IPAddressVersion + + + + + + + + DisplayHostingProviderBaseView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.DisplayHostingProvider + + + + + + + + Identity + + + + Name + + + + ProxyFqdn + + + + VerificationLevel + + + + Enabled + + + + EnabledSharedAddressSpace + + + + HostsOCSUsers + + + + IsLocal + + + + AutodiscoverUrl + + + + + + + + DisplayHostingProviderExtendedView + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.DisplayHostingProviderExtended + + + + + + + + Identity + + + + Name + + + + ProxyFqdn + + + + VerificationLevel + + + + Enabled + + + + EnabledSharedAddressSpace + + + + HostsOCSUsers + + + + IsLocal + + + + AutodiscoverUrl + + + + IsTenantVisible + + + + + + + + ClsTest + + Microsoft.Rtc.Management.Hosted.Cls.TestOutput + + + + + + + + TestName + + + + Value + + + + Result + + + + Passed + + + + + + + + ClsCacheFileInfo + + Microsoft.Rtc.Management.Hosted.Cls.ClsCacheFileInfo + + + + + + 35 + + + + 24 + + + + + + + + + + File + + + LastWriteTimeUtc + + + Length + + + + + + + + MachineProcess + + Microsoft.Rtc.Management.Hosted.Common.MachineProcess + + + + + + 35 + + + + 10 + + + + 18 + + + + 12 + + + + 12 + + + + 25 + + + + 85 + + + + + + + Name + + + ProcessId + + + WorkingSetSizeMB + + + Threads + + + Handles + + + ; + + + CommandLine + + + + + + + + MachineService + + Microsoft.Rtc.Management.Hosted.Common.MachineService + + + + + + 8 + + + + 30 + + + + 50 + + + + + + + Status + + + Name + + + DisplayName + + + + + + + + QFE + + Microsoft.Rtc.Management.Hosted.Common.QFE + + + + + + 12 + + + + 22 + + + + 27 + + + + 28 + + + + + + + HotFixId + + + Description + + + InstalledBy + + + InstalledOn + + + + + + + + Summary + + Microsoft.Rtc.Management.Hosted.MeetingMigration.Types.Summary + + + + + + 12 + + + + 22 + + + + + + + State + + + UserCount + + + + + + + + HDInfo + + Microsoft.Rtc.Management.Hosted.Common.HDInfo + + + + + + 15 + + + + 15 + + + + 15 + + + + 15 + + + + + + + Id + + + FreeMB + + + SizeMB + + + ; + + + + + + + + MachineStatus + + Microsoft.Rtc.Management.Hosted.Common.MachineStatus + + + + + + + + ComputerName + + + + ProductVersion + + + + BuildBranch + + + + OSVersion + + + + MSSQLVersion + + + + Uptime + + + + ; + + + + ProcessorUsage + + + + ; + + + + ; + + + + ; + + + + ; + + + + ; + + + + ; + + + + + + + + MaintenanceModeMachines + + Microsoft.Rtc.Management.Hosted.Cls.MaintenanceModeMachineInfo + + + + + + 35 + + + + 20 + + + + 30 + + + + 30 + + + + 30 + + + + + + + DisplayName + + + InMaintenanceMode + + + StartTime + + + User + + + Reason + + + + + + + + SyntheticTransactionsDebugPresenceTaskOutputView + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.UserPresenceStateTaskOutput + + + + + + + + PublisherFrontEnds + + + + SubscriberFrontEnds + + + + PublisherFeFqdn + + + + PublisherPoolFqdn + + + + SubscriberFeFqdn + + + + SubscriberPoolFqdn + + + + SubscribeContainerInfo + + + + ; + + + + ; + + + + ; + + + + Discrepancies + + + + + + + + PublisherContainerInfo + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.PublisherContainerInfo + + + + + + 25 + + + + 10 + + + + 10 + + + + 27 + + + + 25 + + + + + + + CategoryName + + + ContainerNum + + + Version + + + LastPubTime + + + OriginatedFrontEnd + + + + + + + + SubscribeContainerInfo + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.SubscribeContainerInfo + + + + + + 10 + + + + 15 + + + + 10 + + + + 10 + + + + 25 + + + + + + + ContainerNum + + + HowMatched + + + Rank1 + + + Rank2 + + + OriginatedFrontEnd + + + + + + + + ConferencingBridge + + Microsoft.Rtc.Management.Hosted.Cbd.ConferencingBridge + + + + + + + Identity + + + Name + + + Region + + + + DisplayDefaultServiceNumber + + + IsDefault + + + + DisplayServiceNumbers + + + TenantId + + + + + + + + ConferencingTenant + + Microsoft.Rtc.Management.Hosted.Cbd.ConferencingTenant + + + + + + + TenantId + + + + DisplayDefaultBridge + + + + DisplayBridges + + + AnnoucementsEnabled + + + NameRecordingEnabled + + + + + + + + ConferencingUserState + + Microsoft.Rtc.Management.Hosted.Cbd.ConferencingUserState + + + + + + + Identity + + + SipAddress + + + DisplayName + + + PstnConferencingLicenseState + + + Provider + + + Domain + + + TollNumber + + + TollFreeNumbers + + + ConferenceId + + + Url + + + + + + + + OnlineDialinConferencingServiceConfiguration + + Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingServiceConfiguration + + + + + + + AnonymousCallerGracePeriod + + + AnonymousCallerMeetingRuntime + + + AuthenticatedCallerMeetingRuntime + + + AvailableCountries + + + + + + + + LocalSubscribeInfo + + Microsoft.Rtc.SyntheticTransactions.Activities.Database.LocalSubscribeInfo + + + + + + 10 + + + + 10 + + + + 15 + + + + 27 + + + + 25 + + + + + + + DeliveryId + + + ContainerNum + + + CategoryName + + + LastChanged + + + OriginatedFrontEnd + + + + + + + + OnlineDialinNumberMap + + Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingNumberMap + + + + + + + Identity + + + Geocodes + + + + + + + + OnlineDialInConferencingMarketProfile + + Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingMarketProfile + + + + + + + Identity + + + Code + + + NumberMaps + + + + + + + + DisplayGraphApiConfigurationView + + Microsoft.Rtc.Management.WritableConfig.Settings.GraphApiConfiguration.DisplayGraphApiConfiguration + + + + + + + Identity + + + LoginUri + + + GraphUri + + + ClientId + + + GraphLookupEnabled + + + GraphReadWriteEnabled + + + AdminAuthGraphEnabled + + + TenantRemotePowershellClientId + + + + + + + + PersonName + + Microsoft.Rtc.Management.Hosted.Online.Models.PersonName + + + + + + + FirstName + + + MiddleName + + + LastName + + + DisplayName + + + + + + + + StatusRecord + + Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord + + + + + + + Type + + + Status + + + Id + + + StatusCode + + + Message + + + StatusTimestamp + + + + + + + + ApplicationInstanceSummary + + Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceSummary + + + + + + + Id + + + TenantId + + + UserPrincipalName + + + ApplicationId + + + ConfigurationType + + + DisplayName + + + PhoneNumber + + + ConfigurationId + + + ConfigurationName + + + IsOnprem + + + + + + + + FindApplicationInstanceResult + + Microsoft.Rtc.Management.Hosted.Online.Models.FindApplicationInstanceResult + + + + + + + Id + + + Name + + + TelephoneNumber + + + + + + + + ApplicationInstanceAssociation + + Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation + + + + + + + Id + + + ConfigurationType + + + ConfigurationId + + + CallPriority + + + + + + + + AssociationOperationOutput + + Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput + + + + + + + + DisplayResults + + + + + + + + AssociationOperationResult + + Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationResult + + + + + + + Id + + + ConfigurationType + + + ConfigurationId + + + Result + + + StatusCode + + + StatusMessage + + + + + + + + BatchAssignPolicyOutput + + Microsoft.Rtc.Management.Hosted.Online.Models.BatchAssignPolicyOutput + + + + + + + PolicyName + + + PolicyType + + + Succeeded + + + + DisplayFailedResults + + + + + + + + BatchAssignPolicyFailedResult + + Microsoft.Rtc.Management.Hosted.Online.Models.BatchAssignPolicyFailedResult + + + + + + + Identity + + + ErrorCategory + + + ErrorDetails + + + + + + + + AudioFile + + Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile + + + + + + + Id + + + FileName + + + ApplicationId + + + + + + + + TimeRange + + Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange + + + + + + + Start + + + End + + + + + + + + DateTimeRange + + Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange + + + + + + + + DisplayStart + + + + DisplayEnd + + + + + + + + WeeklyRecurrentSchedule + + Microsoft.Rtc.Management.Hosted.Online.Models.WeeklyRecurrentSchedule + + + + + + + ComplementEnabled + + + + DisplayMondayHours + + + + DisplayTuesdayHours + + + + DisplayWednesdayHours + + + + DisplayThursdayHours + + + + DisplayFridayHours + + + + DisplaySaturdayHours + + + + DisplaySundayHours + + + + + + + + FixedSchedule + + Microsoft.Rtc.Management.Hosted.Online.Models.FixedSchedule + + + + + + + + DisplayDateTimeRanges + + + + + + + + Schedule + + Microsoft.Rtc.Management.Hosted.Online.Models.Schedule + + + + + + + Id + + + Name + + + Type + + + + DisplayWeeklyRecurrentSchedule + + + + DisplayFixedSchedule + + + + DisplayAssociatedConfigurationIds + + + + + + + + Voice + + Microsoft.Rtc.Management.Hosted.OAA.Models.Voice + + + + + + + Name + + + Id + + + + + + + + Language + + Microsoft.Rtc.Management.Hosted.OAA.Models.Language + + + + + + + Id + + + DisplayName + + + + DisplayVoices + + + VoiceResponseSupported + + + + + + + + Prompt + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + + + + + + ActiveType + + + TextToSpeechPrompt + + + + DisplayAudioFilePrompt + + + + + + + + MenuOption + + Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption + + + + + + + Action + + + DtmfResponse + + + VoiceResponses + + + + DisplayCallTarget + + + + DisplayPrompt + + + Description + + + + + + + + Menu + + Microsoft.Rtc.Management.Hosted.OAA.Models.Menu + + + + + + + Name + + + + DisplayPrompts + + + + DisplayMenuOptions + + + DialByNameEnabled + + + DirectorySearchMethod + + + + + + + + CallFlow + + Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow + + + + + + + Id + + + Name + + + + DisplayGreetings + + + + DisplayMenu + + + ForceListenMenuEnabled + + + + + + + + TimeZone + + Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone + + + + + + + Id + + + DisplayName + + + + + + + + CallableEntity + + Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity + + + + + + + Id + + + Type + + + EnableTranscription + + + EnableSharedVoicemailSystemPromptSuppression + + + CallPriority + + + + + + + + CallHandlingAssociation + + Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation + + + + + + + Type + + + ScheduleId + + + CallFlowId + + + Enabled + + + + + + + + DialScope + + Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope + + + + + + + Type + + + + DisplayGroupScope + + + + + + + + GroupDialScope + + Microsoft.Rtc.Management.Hosted.OAA.Models.GroupDialScope + + + + + + + GroupIds + + + + + + + + DirectoryLookupScope + + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectoryLookupScope + + + + + + + + DisplayInclusionScope + + + + DisplayExclusionScope + + + + + + + + TenantInformation + + Microsoft.Rtc.Management.Hosted.OAA.Models.TenantInformation + + + + + + + DefaultLanguageId + + + DefaultTimeZoneId + + + FlightedFeatures + + + + + + + + StatusRecord + + Microsoft.Rtc.Management.Hosted.OAA.Models.StatusRecord + + + + + + + Type + + + Status + + + Id + + + ErrorCode + + + Message + + + StatusTimestamp + + + + + + + + Endpoint + + Microsoft.Rtc.Management.Hosted.Online.Models.Endpoint + + + + + + + Id + + + DisplayName + + + SipUri + + + LineUri + + + + + + + + + AutoAttendant + + Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant + + + + + + + Identity + + + TenantId + + + Name + + + LanguageId + + + VoiceId + + + + DisplayDefaultCallFlow + + + + DisplayOperator + + + TimeZoneId + + + VoiceResponseEnabled + + + + DisplayCallFlows + + + + DisplaySchedules + + + + DisplayCallHandlingAssociations + + + + DisplayStatus + + + DialByNameResourceId + + + + DisplayDirectoryLookupScope + + + ApplicationInstances + + + GreetingsSettingAuthorizedUsers + + + UserNameExtension + + + + + + + + OrgAutoAttendant + + Microsoft.Rtc.Management.Hosted.OAA.Models.OrgAutoAttendant + + + + + + + PrimaryUri + + + TenantId + + + Name + + + LineUris + + + LanguageId + + + VoiceId + + + + DisplayDefaultCallFlow + + + + DisplayOperator + + + TimeZoneId + + + VoiceResponseEnabled + + + + DisplayCallFlows + + + + DisplaySchedules + + + + DisplayCallHandlingAssociations + + + + DisplayStatus + + + DialByNameResourceId + + + + DisplayDirectoryLookupScope + + + + + + + + OaaHolidayImportResult + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult + + + + + + + Name + + + + DisplayDateTimeRanges + + + Succeeded + + + FailureReason + + + + + + + + Summary + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult + + + + + + 24 + + + + 40 + + + + 10 + + + + 60 + + + + + + + Name + + + DisplayDateTimeRanges + + + Succeeded + + + FailureReason + + + + + + + + OaaHolidays + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayVisRecord + + + + + + + Year + + + Name + + + + DisplayDateTimeRanges + + + + DisplayGreetings + + + + DisplayCallAction + + + + + + + + Year + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayVisRecord + + + Year + + + + + + 24 + + + + 40 + + + + 60 + + + + 60 + + + + + + + Name + + + DisplayDateTimeRanges + + + DisplayGreetings + + + DisplayCallAction + + + + + + + + TransferTarget + + Microsoft.Rtc.Management.Hosted.Voicemail.Models.TransferTarget + + + + + + + TenantId + + + SipUri + + + TelUri + + + ObjectId + + + Type + + + RawInput + + + + + + + + VoicemailUserSettings + + Microsoft.Rtc.Management.Hosted.Voicemail.Models.VoicemailUserSettings + + + + + + + VoicemailEnabled + + + PromptLanguage + + + OofGreetingEnabled + + + OofGreetingFollowAutomaticRepliesEnabled + + + ShareData + + + CallAnswerRule + + + DefaultGreetingPromptOverwrite + + + DefaultOofGreetingPromptOverwrite + + + + DisplayTransferTarget + + + + + + + + HuntGroup + + Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroup + + + + + + + + TenantId + + + + Name + + + + PrimaryUri + + + + LineUri + + + + RoutingMethod + + + + DisplayDistributionLists + + + + DistributionListsLastExpanded + + + + DisplayAgents + + + + AllowOptOut + + + + AgentsCapped + + + + AgentsInSyncWithDistributionLists + + + + AgentAlertTime + + + + OverflowThreshold + + + + OverflowAction + + + + OverflowActionTarget + + + + TimeoutThreshold + + + + TimeoutAction + + + + TimeoutActionTarget + + + + WelcomeMusicFileName + + + + UseDefaultMusicOnHold + + + + MusicOnHoldFileName + + + + DisplayStatistics + + + + + + + + CallQueue + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + TenantId + + + + Name + + + + Identity + + + + RoutingMethod + + + + DisplayDistributionLists + + + + DisplayUsers + + + + DistributionListsLastExpanded + + + + DisplayAgents + + + + AllowOptOut + + + + ConferenceMode + + + + PresenceBasedRouting + + + + AgentsCapped + + + + AgentsInSyncWithDistributionLists + + + + AgentAlertTime + + + + LanguageId + + + + OverflowThreshold + + + + OverflowAction + + + + OverflowActionTargetId + + + + OverflowSharedVoicemailTextToSpeechPrompt + + + + OverflowSharedVoicemailAudioFilePrompt + + + + OverflowSharedVoicemailAudioFilePromptFileName + + + + EnableOverflowSharedVoicemailTranscription + + + + TimeoutThreshold + + + + TimeoutAction + + + + TimeoutActionTargetId + + + + TimeoutSharedVoicemailTextToSpeechPrompt + + + + TimeoutSharedVoicemailAudioFilePrompt + + + + TimeoutSharedVoicemailAudioFilePromptFileName + + + + EnableTimeoutSharedVoicemailTranscription + + + + WelcomeMusicFileName + + + + UseDefaultMusicOnHold + + + + MusicOnHoldFileName + + + + DisplayStatistics + + + + DisplayApplicationInstances + + + + ChannelId + + + IsCallbackEnabled + + + CallbackRequestDtmf + + + WaitTimeBeforeOfferingCallbackInSecond + + + NumberOfCallsInQueueBeforeOfferingCallback + + + CallToAgentRatioThresholdBeforeOfferingCallback + + + CallbackOfferAudioFilePromptResourceId + + + CallbackOfferAudioFilePromptFileName + + + CallbackOfferTextToSpeechPrompt + + + ServiceLevelThresholdResponseTimeInSecond + + + + CallbackEmailNotificationTargetId + + + + DisplayOboResourceAccounts + + + ShiftsTeamId + + + ShiftsSchedulingGroupId + + + ComplianceRecordingForCallQueueTemplateId + + + TextAnnouncementForCR + + + CustomAudioFileAnnouncementForCR + + + TextAnnouncementForCRFailure + + + CustomAudioFileAnnouncementForCRFailure + + + SharedCallQueueHistoryTemplateId + + + + + + + + HuntGroupTenantInformation + + Microsoft.Rtc.Management.Hosted.HuntGroup.Models.HuntGroupTenantInformation + + + + + + + FlightedFeatures + + + + + + + + StatusRecord + + Microsoft.Rtc.Management.Hosted.HuntGroup.Models.StatusRecord + + + + + + + WarningCode + + + Message + + + + + + + + ServiceIdView + + Microsoft.Rtc.Management.Core.WritableConfig.PstnGatewayWritableServiceId + + + + + + + + ; + + + + + + + + OcsAdApplicationContactView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationContact + + + + + + + + Identity + + + + RegistrarPool + + + + HomeServer + + + + OwnerUrn + + + + SipAddress + + + + DisplayName + + + + DisplayNumber + + + + LineURI + + + + PrimaryLanguage + + + + SecondaryLanguages + + + + EnterpriseVoiceEnabled + + + + ExUmEnabled + + + + Enabled + + + + + + + + OcsVideoRoomSystemView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADVideoRoomSystem + + + + + + + + Identity + + + + RegistrarPool + + + + SipAddress + + + + DisplayName + + + + LineURI + + + + Enabled + + + + + + + + OcsHybridApplicationEndpointView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADApplicationEndpoint + + + + + + + + Identity + + + + ApplicationId + + + + OwnerUrn + + + + EnterpriseVoiceEnabled + + + + Enabled + + + + SipAddress + + + + DisplayName + + + + LineURI + + + + + + + + OcsUserView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADUser + + + + + + + + Identity + + + + VoicePolicy + + + + VoiceRoutingPolicy + + + + ConferencingPolicy + + + + PresencePolicy + + + + DialPlan + + + + LocationPolicy + + + + ClientPolicy + + + + ClientVersionPolicy + + + + ArchivingPolicy + + + + ExchangeArchivingPolicy + + + + PinPolicy + + + + ExternalAccessPolicy + + + + MobilityPolicy + + + + UserServicesPolicy + + + + CallViaWorkPolicy + + + + ThirdPartyVideoSystemPolicy + + + + HostedVoiceMail + + + + HostedVoicemailPolicy + + + + IPPhonePolicy + + + + HostingProvider + + + + RegistrarPool + + + + Enabled + + + + SipAddress + + + + LineURI + + + + EnterpriseVoiceEnabled + + + + ExUmEnabled + + + + HomeServer + + + + DisplayName + + + + SamAccountName + + + + + + + + OcsAnalogDeviceView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADAnalogDeviceContact + + + + + + + + Identity + + + + VoicePolicy + + + + VoiceRoutingPolicy + + + + RegistrarPool + + + + Gateway + + + + AnalogFax + + + + Enabled + + + + SipAddress + + + + LineURI + + + + DisplayName + + + + DisplayNumber + + + + ExUmEnabled + + + + + + + + OcsExUmContactView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADExUmContact + + + + + + + + Identity + + + + RegistrarPool + + + + HomeServer + + + + Enabled + + + + SipAddress + + + + LineURI + + + + OtherIpPhone + + + + AutoAttendant + + + + IsSubscriberAccess + + + + Description + + + + DisplayName + + + + DisplayNumber + + + + HostedVoicemailPolicy + + + + ExUmEnabled + + + + + + + + OcsCommonAreaPhoneView + + Microsoft.Rtc.Management.ADConnect.Schema.OCSADCommonAreaPhoneContact + + + + + + + + Identity + + + + RegistrarPool + + + + Enabled + + + + SipAddress + + + + ClientPolicy + + + + PinPolicy + + + + VoicePolicy + + + + VoiceRoutingPolicy + + + + MobilityPolicy + + + + ConferencingPolicy + + + + LineURI + + + + DisplayNumber + + + + DisplayName + + + + Description + + + + ExUmEnabled + + + + + + + + OcsAccessNumberView + + Microsoft.Rtc.Management.Xds.AccessNumber + + + + + + + + Identity + + + + PrimaryUri + + + + DisplayName + + + + DisplayNumber + + + + LineUri + + + + PrimaryLanguage + + + + SecondaryLanguages + + + + Pool + + + + HostingProvider + + + + Regions + + + + ExternalAccessPolicy + + + + + + + + AgentView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Agent + + + + + + + + UserSid + + + + DisplayName + + + + SipAddress + + + + + + + + AnswerView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Answer + + + + + + + + VoiceResponseList + + + + Action + + + + Name + + + + DtmfResponse + + + + + + + + CallActionView + + Microsoft.Rtc.Rgs.Management.WritableSettings.CallAction + + + + + + + + Prompt + + + + Question + + + + Action + + + + QueueID + + + + Uri + + + + + + + + PromptView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Prompt + + + + + + + + AudioFilePrompt + + + + TextToSpeechPrompt + + + + + + + + AudioFileView + + Microsoft.Rtc.Rgs.Management.WritableSettings.AudioFile + + + + + + + + OriginalFileName + + + + UniqueName + + + + + + + + QuestionView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Question + + + + + + + + Prompt + + + + InvalidAnswerPrompt + + + + NoAnswerPrompt + + + + AnswerList + + + + Name + + + + + + + + BusinessHoursView + + Microsoft.Rtc.Rgs.Management.WritableSettings.BusinessHours + + + + + + + + Identity + + + + MondayHours1 + + + + MondayHours2 + + + + TuesdayHours1 + + + + TuesdayHours2 + + + + WednesdayHours1 + + + + WednesdayHours2 + + + + ThursdayHours1 + + + + ThursdayHours2 + + + + FridayHours1 + + + + FridayHours2 + + + + SaturdayHours1 + + + + SaturdayHours2 + + + + SundayHours1 + + + + SundayHours2 + + + + Name + + + + Description + + + + Custom + + + + OwnerPool + + + + + + + + TimeRangeView + + Microsoft.Rtc.Rgs.Management.WritableSettings.TimeRange + + + + + + + + Name + + + + OpenTime + + + + CloseTime + + + + + + + + AgentGroupView + + Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroup + + + + + + + + Identity + + + + Name + + + + Description + + + + ParticipationPolicy + + + + AgentAlertTime + + + + RoutingMethod + + + + DistributionGroupAddress + + + + OwnerPool + + + + AgentsByUri + + + + + + + + AgentGroupsToAgentsMapView + + Microsoft.Rtc.Rgs.Management.WritableSettings.AgentGroupsToAgentsMap + + + + + + + + Position + + + + + + + + HolidayView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Holiday + + + + + + + + Name + + + + StartDate + + + + EndDate + + + + + + + + HolidaySetView + + Microsoft.Rtc.Rgs.Management.WritableSettings.HolidaySet + + + + + + + + Identity + + + + HolidayList + + + + Name + + + + OwnerPool + + + + + + + + ManagerView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Manager + + + + + + + + UserSid + + + + SipAddress + + + + + + + + OwnerPoolView + + Microsoft.Rtc.Rgs.Management.WritableSettings.OwnerPool + + + + + + + + Fqdn + + + + + + + + QueueView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Queue + + + + + + + + Identity + + + + TimeoutAction + + + + OverflowAction + + + + Name + + + + Description + + + + TimeoutThreshold + + + + OverflowThreshold + + + + OverflowCandidate + + + + OwnerPool + + + + AgentGroupIDList + + + + + + + + QueuesToAgentGroupsMapView + + Microsoft.Rtc.Rgs.Management.WritableSettings.QueuesToAgentGroupsMap + + + + + + + + Position + + + + + + + + ServiceSettingsView + + Microsoft.Rtc.Rgs.Management.WritableSettings.ServiceSettings + + + + + + + + Identity + + + + DefaultMusicOnHoldFile + + + + AgentRingbackGracePeriod + + + + DisableCallContext + + + + + + + + WorkflowView + + Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow + + + + + + + + Identity + + + + NonBusinessHoursAction + + + + HolidayAction + + + + DefaultAction + + + + CustomMusicOnHoldFile + + + + Name + + + + Description + + + + PrimaryUri + + + + Active + + + + Language + + + + TimeZone + + + + BusinessHoursID + + + + Anonymous + + + + Managed + + + + OwnerPool + + + + DisplayNumber + + + + EnabledForFederation + + + + LineUri + + + + HolidaySetIDList + + + + ManagersByUri + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json new file mode 100644 index 000000000000..0bcf9b1b11d5 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json @@ -0,0 +1 @@ +{"StdOut":"******************************************************************************\r\nMachine Information\r\nMachine Name: at-greenXRHDM6\r\nMachine Ip: 10.211.0.35\r\nOperating System: Microsoft Windows NT 10.0.26100.0\r\nUser Name: at-greenXRHDM6$\r\nProcessor Count: 16\r\nProcess Name: EsrpClient\r\nProcess Id: 12620\r\nCaller Program: EsrpClient.exe\r\nIdentity: NT AUTHORITY\\NETWORK SERVICE\r\nProcess Version: 1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\r\nProcess Bitness: 64 bit\r\n******************************************************************************\r\nCommandline received: Sign | -a | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_732621.json | -p | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_111037.json | -c | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp3836_983718.json | -i | c:\\Temp\\AzureTemp\\TFSTemp\\vctmp16552_249474.json | -o | c:\\Temp\\AzureTemp\\TFSTemp\\v3AFC7.tmp | -l | Verbose ESRP session Id is: 66dab103-b92d-4f32-9b63-9c12aa64e33f\r\n2025-10-01T08:54:04.7640203Z:Command you are trying to use is: Sign\r\n2025-10-01T08:54:04.7708276Z:Correlation Vector for this run is: 09677df8-c683-43ee-a868-1ff194b9c298\r\n2025-10-01T08:54:04.7708276Z:Groupid for this run is empty\r\n2025-10-01T08:54:04.8956931Z:request signing cert being used is this thumbprint: F388C0BB292D7EA97B143D697E3A06B712A7DA78 in store LocalMachine\\My\r\n2025-10-01T08:54:04.8956931Z:Both certificates validation passed.\r\n2025-10-01T08:54:04.8977020Z:The auth cert we choose to use, subject name is: CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f.microsoft.com, thumbprint is: 7C97C9D92D40890074C31B2FE8A8C25E7DB98A78\r\n2025-10-01T08:54:05.0004372Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:04Z] ConfidentialClientApplication 37368736 created\r\n2025-10-01T08:54:05.0024508Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0231481Z:There is no memory mapped file accociated with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0283815Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.0630559Z:Validate and Renew Token if necessary finished: 00:00:00.0309379\r\n2025-10-01T08:54:05.1802170Z:Session request is: {\r\n \"expiresAfter\": \"3.00:00:00\",\r\n \"partitionCount\": 0,\r\n \"isProvisionStorage\": true,\r\n \"isLegacyCopsModel\": false,\r\n \"commandName\": \"Sign\",\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\"\r\n}\r\n2025-10-01T08:54:05.2142799Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z] ConfidentialClientApplication 29578451 created\r\n2025-10-01T08:54:05.2142799Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:05.2214329Z:Gateway Client: a new client and client id is created: 657591f3-1578-4b8a-ae04-ed5b1d2bacd2\r\n2025-10-01T08:54:05.2833584Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] MSAL MSAL.Desktop with assembly version '4.70.0.0'. CorrelationId(ab77b488-0329-4456-8a76-4141701ccbbe)\r\n2025-10-01T08:54:05.2984143Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] === AcquireTokenForClientParameters ===\r\nSendX5C: True\r\nForceRefresh: False\r\nAccessTokenHashToRefresh: False\r\n\r\n2025-10-01T08:54:05.3126256Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n=== Request Data ===\r\nAuthority Provided? - True\r\nScopes - https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\nExtra Query Params Keys (space separated) - \r\nApiId - AcquireTokenForClient\r\nIsConfidentialClient - True\r\nSendX5C - True\r\nLoginHint ? False\r\nIsBrokerConfigured - False\r\nHomeAccountId - False\r\nCorrelationId - ab77b488-0329-4456-8a76-4141701ccbbe\r\nUserAssertion set: False\r\nLongRunningOboCacheKey set: False\r\nRegion configured: \r\n\r\n2025-10-01T08:54:05.3135235Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] === Token Acquisition (ClientCredentialRequest) started:\r\n\t Scopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\n\tAuthority Host: login.microsoftonline.com\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Internal cache] Total number of cache partitions found while getting access tokens: 0\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [FindAccessTokenAsync] Discovered 0 access tokens in cache using partition key: 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d_AppTokenCache\r\n2025-10-01T08:54:05.3313856Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [FindAccessTokenAsync] No access tokens found in the cache. Skipping filtering. \r\n2025-10-01T08:54:05.3420748Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Instance discovery is enabled and will be performed\r\n2025-10-01T08:54:05.3464079Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Region discovery] WithAzureRegion not configured. \r\n2025-10-01T08:54:05.3464079Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Region discovery] Not using a regional authority. \r\n2025-10-01T08:54:05.3501710Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Tried to use network cache provider for login.microsoftonline.com. Success? False. \r\n2025-10-01T08:54:05.3608975Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Fetching instance discovery from the network from host login.microsoftonline.com. \r\n2025-10-01T08:54:05.3798361Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [Oauth2Client] Sending GET request \r\n2025-10-01T08:54:05.3840050Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [HttpManager] ExecuteAsync\r\n2025-10-01T08:54:05.3900338Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Sending request. Method: GET. Host: https://login.microsoftonline.com. Binding Certificate: False \r\n2025-10-01T08:54:05.7221789Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Received response. Status code: OK. \r\n2025-10-01T08:54:05.7327215Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [HttpManager] ExecuteAsync in 350 ms\r\n2025-10-01T08:54:05.7339629Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [Oauth2Client] Sending GET request in 355 ms\r\n2025-10-01T08:54:05.7464599Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [OAuth2Client] Deserializing response\r\n2025-10-01T08:54:05.9299240Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [OAuth2Client] Deserializing response in 184 ms\r\n2025-10-01T08:54:05.9319285Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] Tried to use network cache provider for login.microsoftonline.com. Success? True. \r\n2025-10-01T08:54:05.9319285Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Instance Discovery] After hitting the discovery endpoint, the network provider found an entry for login.microsoftonline.com ? True. \r\n2025-10-01T08:54:05.9355197Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Authority validation enabled? True. \r\n2025-10-01T08:54:05.9355197Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Authority validation - is known env? True. \r\n2025-10-01T08:54:05.9527328Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting TokenClient:SendTokenRequestAsync\r\n2025-10-01T08:54:05.9568333Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [TokenClient] Before adding the client assertion / secret\r\n2025-10-01T08:54:05.9578390Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Building assertion from certificate with clientId: 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f at endpoint: https://login.microsoftonline.com/33e01921-4d64-4f8c-a055-5bdaffd5e33d/oauth2/v2.0/token\r\n2025-10-01T08:54:05.9578390Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] Proceeding with JWT token creation and adding client assertion.\r\n2025-10-01T08:54:05.9940457Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:05Z - ab77b488-0329-4456-8a76-4141701ccbbe] [TokenClient] After adding the client assertion / secret\r\n2025-10-01T08:54:06.0032118Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [Token Client] Fetching MsalTokenResponse .... \r\n2025-10-01T08:54:06.0032118Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [Oauth2Client] Sending POST request \r\n2025-10-01T08:54:06.0095336Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [HttpManager] ExecuteAsync\r\n2025-10-01T08:54:06.0095336Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Sending request. Method: POST. Host: https://login.microsoftonline.com. Binding Certificate: False \r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [HttpManager] Received response. Status code: OK. \r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [HttpManager] ExecuteAsync in 97 ms\r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [Oauth2Client] Sending POST request in 102 ms\r\n2025-10-01T08:54:06.1059773Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Starting [OAuth2Client] Deserializing response\r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished [OAuth2Client] Deserializing response in 17 ms\r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] ScopeSet was missing from the token response, so using developer provided scopes in the result. \r\n2025-10-01T08:54:06.1231308Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Finished TokenClient:SendTokenRequestAsync in 170 ms\r\n2025-10-01T08:54:06.1249866Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Checking client info returned from the server..\r\n2025-10-01T08:54:06.1253352Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Saving token response to cache..\r\n2025-10-01T08:54:06.1339807Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n[MsalTokenResponse]\r\nError: \r\nErrorDescription: \r\nScopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\nExpiresIn: 86399\r\nRefreshIn: 43199\r\nAccessToken returned: True\r\nAccessToken Type: Bearer\r\nRefreshToken returned: False\r\nIdToken returned: False\r\nClientInfo returned: False\r\nFamilyId: \r\nWamAccountId exists: False\r\n2025-10-01T08:54:06.1350240Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] ID Token not present in response. \r\n2025-10-01T08:54:06.1362438Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Cannot determine home account ID - or id token or no client info and no subject \r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Entering token cache semaphore. Count Real semaphore: True. Count: 1.\r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Entered token cache semaphore. \r\n2025-10-01T08:54:06.1411213Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Saving AT in cache and removing overlapping ATs...\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Looking for scopes for the authority in the cache which intersect with https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z] [Internal cache] Total number of cache partitions found while getting access tokens: 0\r\n2025-10-01T08:54:06.1431259Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Intersecting scope entries count - 0\r\n2025-10-01T08:54:06.1449186Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Not saving to ADAL legacy cache. \r\n2025-10-01T08:54:06.1449186Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] [SaveTokenResponseAsync] Released token cache semaphore. \r\n2025-10-01T08:54:06.1486739Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n\t=== Token Acquisition finished successfully:\r\n2025-10-01T08:54:06.1491522Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] AT expiration time: 10/2/2025 8:54:05 AM +00:00, scopes: https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com/.default. source: IdentityProvider\r\n2025-10-01T08:54:06.1491522Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] Fetched access token from host login.microsoftonline.com. \r\n2025-10-01T08:54:06.1511578Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] \r\n[LogMetricsFromAuthResult] Cache Refresh Reason: NoCachedAccessToken\r\n[LogMetricsFromAuthResult] DurationInCacheInMs: 0\r\n[LogMetricsFromAuthResult] DurationTotalInMs: 846\r\n[LogMetricsFromAuthResult] DurationInHttpInMs: 426\r\n2025-10-01T08:54:06.1511578Z:MSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:06Z - ab77b488-0329-4456-8a76-4141701ccbbe] TokenEndpoint: ****\r\n2025-10-01T08:54:06.1654484Z:Use AAD token. CERT\r\n2025-10-01T08:54:06.1750036Z:New Token Acquisition Time: 00:00:00.9366187\r\n2025-10-01T08:54:06.2075678Z:Gateway Client: the client id that is sending a request is: 657591f3-1578-4b8a-ae04-ed5b1d2bacd2\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:07.0409063+00:00\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:07.4024972+00:00\r\n2025-10-01T08:54:07.4024972Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.3615909\r\n2025-10-01T08:54:07.4893906Z:Session request requestid: 0cd4a227-2e49-4831-91bc-e5b7b1f0be66, and submission status is: Pass\r\n2025-10-01T08:54:07.5499219Z:Provision storage complete. Total shards: 100\r\n2025-10-01T08:54:07.5544544Z:Loading DigestSignErrorMappingCache mapping info\r\n2025-10-01T08:54:07.5804830Z:DigestSignErrorMappingCache from server, # of DigestSignOperationErrorPatterns object we get is :: \r\n2025-10-01T08:54:07.6335888Z:Consolidate DigestSignErrorMappingCache, # of DigestSignOperationErrorPatterns object we get is :: 34\r\n2025-10-01T08:54:07.6343279Z:Successfully retrieved policy: policy is {\"policy\":{\"id\":\"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f-0\",\"workflowExecutionType\":3}}\r\n2025-10-01T08:54:07.6446930Z:Successfully get telemetry connection string: Endpo......\r\n2025-10-01T08:54:07.6466995Z:Warning: \r\n2025-10-01T08:54:07.6501437Z:IAuthInfo constructed: {\r\n \"authenticationType\": \"AAD_CERT\",\r\n \"clientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"tenantId\": \"33e01921-4d64-4f8c-a055-5bdaffd5e33d\",\r\n \"aadAuthorityBaseUri\": \"https://login.microsoftonline.com/\",\r\n \"authCert\": {\r\n \"storeLocation\": \"LocalMachine\",\r\n \"storeName\": \"My\",\r\n \"subjectName\": \"CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f.microsoft.com\",\r\n \"sendX5c\": true,\r\n \"withAzureRegion\": false,\r\n \"getCertFromKeyVault\": false,\r\n \"keyVaultName\": null,\r\n \"keyVaultCertName\": null\r\n },\r\n \"requestSigningCert\": {\r\n \"storeLocation\": \"LocalMachine\",\r\n \"storeName\": \"My\",\r\n \"subjectName\": \"CN=0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"sendX5c\": false,\r\n \"withAzureRegion\": false,\r\n \"getCertFromKeyVault\": false,\r\n \"keyVaultName\": null,\r\n \"keyVaultCertName\": null\r\n },\r\n \"oAuthToken\": null,\r\n \"version\": \"1.0.0\",\r\n \"esrpClientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"federatedTokenData\": null,\r\n \"federatedTokenPath\": null\r\n}\r\n2025-10-01T08:54:07.6512257Z:IPolicyInfo constructed: {\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\",\r\n \"version\": \"1.0.0\"\r\n}\r\n2025-10-01T08:54:07.6559153Z:IConfigInfo constructed: {\r\n \"esrpApiBaseUri\": \"https://api.esrp.microsoft.com/api/v2/\",\r\n \"esrpSessionTimeoutInSec\": 60,\r\n \"minThreadPoolThreads\": 64,\r\n \"maxDegreeOfParallelism\": 64,\r\n \"exponentialFirstFastRetry\": true,\r\n \"exponentialRetryCount\": 2,\r\n \"exponentialRetryDeltaBackOff\": \"00:00:05\",\r\n \"exponentialRetryMaxBackOff\": \"00:01:00\",\r\n \"exponentialRetryMinBackOff\": \"00:00:03\",\r\n \"appDataFolder\": \"C:\\\\Windows\\\\ServiceProfiles\\\\NetworkService\\\\AppData\\\\Local\",\r\n \"certificateCacheFolder\": null,\r\n \"version\": \"1.0.0\",\r\n \"exitOnFlaggedFile\": false,\r\n \"flaggedFileClientWaitTimeout\": \"1.00:00:00\",\r\n \"servicePointManagerDefaultConnectionLimit\": 64,\r\n \"isOnPremGateway\": false,\r\n \"diagnosticListeners\": null,\r\n \"securityProtocolType\": \"Tls12\",\r\n \"parallelOperationsInFileUploadDownload\": 300,\r\n \"maxTelemetryBuffer\": 200000,\r\n \"telemetryTimeoutInSec\": 0,\r\n \"resourceUri\": \"https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com\",\r\n \"cacheRootFolder\": null,\r\n \"cachedFileTTLInMin\": 7200\r\n}\r\n2025-10-01T08:54:07.9315962Z:Client Telemetry: Xpert agent is not running on the machine. Using events hub for processing client telemetry.\r\n2025-10-01T08:54:08.1322038Z:Key: TotalSignOperationDataCount, Value: 1\r\n2025-10-01T08:54:08.1520078Z:Start Time:10/1/2025 8:54:08 AM, Starting the sign workflow...\r\n2025-10-01T08:54:08.1638281Z:some input info: {\r\n \"contextData\": {\r\n \"build_buildnumber\": \"AzureDevOps_M261_20250915.2\",\r\n \"esrpClientVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"userIpAddress\": \"10.211.0.35\",\r\n \"userAgent\": \"at-greenXRHDM6\"\r\n },\r\n \"sourceDirectory\": null,\r\n \"sourceLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"destinationDirectory\": null,\r\n \"destinationLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"sizeInBytes\": 0,\r\n \"name\": \"manifest.cat\",\r\n \"isSuccess\": null,\r\n \"operationStartedAt\": \"0001-01-01T00:00:00+00:00\",\r\n \"operationEndedAt\": \"0001-01-01T00:00:00+00:00\",\r\n \"operationDurationMS\": 0,\r\n \"processName\": \"EsrpClient\",\r\n \"processId\": 12620,\r\n \"processVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"customerCorrelationId\": null,\r\n \"esrpClientSessionGuid\": \"66dab103-b92d-4f32-9b63-9c12aa64e33f\",\r\n \"callerProgram\": \"EsrpClient\",\r\n \"indentity\": \"NT AUTHORITY\\\\NETWORK SERVICE\",\r\n \"clientId\": \"0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f\",\r\n \"exceptionData\": null,\r\n \"apiBaseUrl\": \"https://api.esrp.microsoft.com/api/v2/\",\r\n \"handlerWorkflow\": \"Sign\",\r\n \"submissionRequest\": {\r\n \"contextData\": {\r\n \"build_buildnumber\": \"AzureDevOps_M261_20250915.2\",\r\n \"esrpClientVersion\": \"1.2.142+Branch.master.Sha.90404b43284ec55b3e2251d0e272f8932aa583e2\",\r\n \"userIpAddress\": \"10.211.0.35\",\r\n \"userAgent\": \"at-greenXRHDM6\"\r\n },\r\n \"groupId\": null,\r\n \"correlationVector\": \"09677df8-c683-43ee-a868-1ff194b9c298\",\r\n \"driEmail\": null,\r\n \"version\": \"1.0.0\"\r\n },\r\n \"policyInfo\": {\r\n \"intent\": \"digestsign\",\r\n \"contentType\": \"Bin\",\r\n \"contentOrigin\": \"3rd Party\",\r\n \"productState\": null,\r\n \"audience\": \"External Broad\",\r\n \"version\": \"1.0.0\"\r\n },\r\n \"osVersion\": \"Microsoft Windows NT 10.0.26100.0\",\r\n \"executingMachineIPAddress\": \"10.211.0.35\"\r\n}\r\n2025-10-01T08:54:08.2134377Z:Executing SignWorkflowType is DigestSignStaticAzure\r\n2025-10-01T08:54:08.2332335Z:Source file \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" hashed in 4 ms\r\n2025-10-01T08:54:08.2878722Z:Thread: 1 - Certificate file mutex \"AYe1piBMWl6c+yAfCCK+GYCJgWyyp4b/mXvqszRe4cs=_CP-464321\" acquired (waited 0 ms).\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:08Z] ConfidentialClientApplication 44123454 created\r\n2025-10-01T08:54:08.3065632Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.3070274Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.3070274Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.5082531Z:Global cached token is valid from 10/1/2025 8:49:06 AM to 10/2/2025 8:54:06 AM (UTC). Total validity from current time is 86397.4917469 seconds\r\n2025-10-01T08:54:08.5082531Z:Validate and Renew Token if necessary finished: 00:00:00.2016961\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:08Z] ConfidentialClientApplication 20852350 created\r\n2025-10-01T08:54:08.5082531Z:Gateway Client: Enter AuthenticationProvider, no calls to AAD yet, client id is 0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f, and resource url is https://msazurecloud.onmicrosoft.com/api.esrp.microsoft.com, tenant id is 33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:08.5082531Z:Gateway Client: a new client and client id is created: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:08.5082531Z:10/1/2025 8:54:08 AM +00:00:Digest Signing Factory Client type loaded is - [AzureGatewaySubmitter].\r\n2025-10-01T08:54:08.5183009Z:Existing Token Acquisition Time: 00:00:00.0004403\r\n2025-10-01T08:54:08.5964809Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:09.0435903+00:00\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:09.1072230+00:00\r\n2025-10-01T08:54:09.1072230Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0636327\r\n2025-10-01T08:54:09.1092296Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:09.1092296+00:00\r\n2025-10-01T08:54:09.6351902Z:Existing Token Acquisition Time: 00:00:00.0005160\r\n2025-10-01T08:54:09.6397527Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:10.1268031+00:00\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:10.2161062+00:00\r\n2025-10-01T08:54:10.2161062Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0893031\r\n2025-10-01T08:54:10.2197530Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:10.2197530+00:00\r\n2025-10-01T08:54:10.2208065Z:10/1/2025 8:54:10 AM +00:00: Status Request - Non-successful status returned: Inprogress, operation id is: 5224c384-4c8c-40ae-853d-3f26b84c0514 - Attempt 1 (Delaying 00:00:00.5000000)...\r\n2025-10-01T08:54:10.2208065Z:Existing Token Acquisition Time: 00:00:00.0003484\r\n2025-10-01T08:54:10.2208065Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:10.6355854+00:00\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:10.6908402+00:00\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0552548\r\n2025-10-01T08:54:10.6908402Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:10.6908402+00:00\r\n2025-10-01T08:54:10.6908402Z:10/1/2025 8:54:10 AM +00:00: Status Request - Non-successful status returned: Inprogress, operation id is: 5224c384-4c8c-40ae-853d-3f26b84c0514 - Attempt 2 (Delaying 00:00:00.5000000)...\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events published in this batch: 4\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events received so far in this session: 4\r\n2025-10-01T08:54:10.8068224Z:Client Telemetry: Events published so far in this session: 4\r\n2025-10-01T08:54:11.2019208Z:Existing Token Acquisition Time: 00:00:00.0007189\r\n2025-10-01T08:54:11.2019208Z:Gateway Client: the client id that is sending a request is: 248a4185-e5d4-4157-9d2f-97af0dc508c7\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response send time from cloud gateway: 2025-10-01T08:54:11.6262840+00:00\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response receive time from client SendAsync: 2025-10-01T08:54:11.7060125+00:00\r\n2025-10-01T08:54:11.7060125Z:Gateway Client: response duration time between cloud gateway and client SendAsync: 00:00:00.0797285\r\n2025-10-01T08:54:11.7108793Z:Gateway Client: response time after converting from http response to object: 2025-10-01T08:54:11.7100838+00:00\r\n2025-10-01T08:54:11.7149424Z:Reading thumbprint from \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\" (9692 bytes)...\r\n2025-10-01T08:54:11.7376912Z:Thread: 1 - Wrote new certificate file to \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\".\r\n2025-10-01T08:54:11.7376912Z:Thread: 1 - Certificate file mutex \"AYe1piBMWl6c+yAfCCK+GYCJgWyyp4b/mXvqszRe4cs=_CP-464321\" released (held for 3449 ms).\r\n2025-10-01T08:54:11.7376912Z:digest sign request expire time is: 10/1/2025 8:55:07 AM\r\n2025-10-01T08:54:15.6252656Z:Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe sign /NPH /fd \"SHA256\" /f \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\Certificates\\CP-464321.p7b\" /sha1 \"AD95D3F9C0F944EB9243147B346F8B93A7A6BB67\" /du \"https://www.1eswiki.com/wiki/ADO_Manifest_Generator\" /d \"Packaging SSSC Codesign - DigestSign\" /tr \"http://aztss.trafficmanager.net/TSS/HttpTspServer\" /td sha256 /dlib \"c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\EsrpClient.Sign.DigestSignLib.dll\" /dmdf \"C:\\Windows\\ServiceProfiles\\NetworkService\\AppData\\Local\\EsrpClient_66dab103b92d4f329b639c12aa64e33f\\C3333C0DFCC7410D886C4B72FA96BB94.json\" \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" completed in 3885 ms\r\nExit Code: 0\r\nStdOut:\r\nDone Adding Additional Store\r\n\r\nESRP Digest Signing\r\n\r\n2025-10-01T08:54:12.6750185Z:Digest Signer : SecurityProtocolType used from the metadata info is : Tls12\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:12Z] ConfidentialClientApplication 654897 created\r\n2025-10-01T08:54:12.8131862Z:Cached token found with name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:12.8149316Z:AAD auth caching is in use with this name: api.esrp.microsoft.com_0d3b5b1a-8684-4f3a-b294-66c3b9aa8c8f_33e01921-4d64-4f8c-a055-5bdaffd5e33d\r\n2025-10-01T08:54:12.9258856Z:Global cached token is valid from 10/1/2025 8:49:06 AM to 10/2/2025 8:54:06 AM (UTC). Total validity from current time is 86393.0741144 seconds\r\n2025-10-01T08:54:12.9258856Z:Validate and Renew Token if necessary finished: 00:00:00.1111354\r\nMSAL logging: False MSAL 4.70.0.0 MSAL.Desktop 4.8 or later Windows Server 2025 Datacenter Azure Edition [2025-10-01 08:54:12Z] ConfidentialClientApplication 49044892 created\r\n2025-10-01T08:54:12.9892728Z:Existing Token Acquisition Time: 00:00:00.0024867\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Request Signing Time: 00:00:00.1160404\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Request Send Time: 00:00:00.9840257\r\n2025-10-01T08:54:14.1082545Z:Gateway Submission Overall Submission Time: 00:00:01.1164695\r\n2025-10-01T08:54:14.1082545Z:Operation ID: f937b610-6299-480d-b6ca-7661e84e5156\r\n2025-10-01T08:54:14.6213390Z:Gateway Status Delay Time: 00:00:00.5123966\r\n2025-10-01T08:54:14.6334345Z:Existing Token Acquisition Time: 00:00:00.0005967\r\n2025-10-01T08:54:15.0550435Z:Gateway Status Request Send Time: 00:00:00.4156499\r\n2025-10-01T08:54:15.0550435Z:Gateway Status Overall Time: 00:00:00.4190311\r\n2025-10-01T08:54:15.0645058Z:Gateway Submission Duration: 1431\r\n2025-10-01T08:54:15.0645058Z:Gateway Submission Attempts: 1\r\n2025-10-01T08:54:15.0645058Z:Gateway GetStatus Duration: 433\r\n2025-10-01T08:54:15.0645058Z:Gateway GetStatus Attempts: 1\r\n2025-10-01T08:54:15.0645058Z:$$5a9f5111cf8f42a0a0edc419862b95dc##_ThrottleCount: 0\r\n2025-10-01T08:54:15.0645058Z:$$65265a48891640eb86e148d3c9a627fa##_ThrottledTimeInSec: 0\r\n2025-10-01T08:54:15.0645058Z:Service Call: 2544.6251 ms\r\nSuccessfully signed: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\n\r\n\r\n\r\nStdErr:\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.8072720Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.8086553Z:Warning: Warning: Operation Error (1) - Operation: signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" - Retrying in 500 ms...\r\n2025-10-01T08:54:15.9287132Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:15.9287132Z:Warning: Warning: Operation Error (2) - Operation: signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" - Retrying in 500 ms...\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events published in this batch: 2\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events received so far in this session: 7\r\n2025-10-01T08:54:16.0112497Z:Client Telemetry: Events published so far in this session: 6\r\n2025-10-01T08:54:16.5204567Z:Warning: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n2025-10-01T08:54:16.5519160Z:\r\n2025-10-01T08:54:16.5535963Z:Error: System.AggregateException: One or more errors occurred. ---> MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)\r\n --- End of inner exception stack trace ---\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.d__23.MoveNext()\r\n---> (Inner Exception #0) MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)<---\r\n\r\n2025-10-01T08:54:16.5847103Z:Constructing EsrpClientResponse\r\n2025-10-01T08:54:16.5851950Z:EsrpClientResponse is constructed\r\n2025-10-01T08:54:16.6167319Z:OperationDurationMs: 8380\r\n2025-10-01T08:54:16.6167319Z:DynamicCertGenerationTimeMs: 0\r\n2025-10-01T08:54:16.6167319Z:TimeToGetStorageShradsMs: 0\r\n2025-10-01T08:54:16.6167319Z:TotalScanSubmissionTimeMs: 0\r\n2025-10-01T08:54:16.6167319Z:ThrottleCount: 0\r\n2025-10-01T08:54:16.6167319Z:ThrottledTimeInSec: 0\r\n2025-10-01T08:54:16.6167319Z:\r\n2025-10-01T08:54:16.6167319Z:0/1 files signed in 00:00:08.380 (0 files/s, total number of certs refreshed: 0)\r\n2025-10-01T08:54:16.6194710Z:result json is: {\r\n \"submissionResponses\": [\r\n {\r\n \"fileStatusDetail\": [\r\n {\r\n \"sourceHash\": \"6L9bS5hm8BqIMDFl6QFcoxjrnEcawUuHYDPkw1cTjj8=\",\r\n \"hashType\": \"sha256\",\r\n \"destinationHash\": null,\r\n \"certificateThumbprint\": null,\r\n \"destinationLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\",\r\n \"destinationFileSizeInBytes\": 0,\r\n \"sourceLocation\": \"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\"\r\n }\r\n ],\r\n \"operationId\": \"f937b610-6299-480d-b6ca-7661e84e5156\",\r\n \"customerCorrelationId\": \"09677df8-c683-43ee-a868-1ff194b9c298\",\r\n \"statusCode\": \"failCanRetry\",\r\n \"errorInfo\": {\r\n \"code\": \"3138\",\r\n \"details\": {\r\n \"operation\": \"c:\\\\AT\\\\sitesroot\\\\0\\\\bin\\\\Plugins\\\\ESRPClient\\\\Win10.x86\\\\signtool.exe verify /pa /tw \\\"c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\\\"\",\r\n \"exitCode\": \"1\",\r\n \"stdOut\": \"File: c:\\\\Temp\\\\AzureTemp\\\\o5t2bhbn.gqh\\\\manifest.cat\\r\\nIndex Algorithm Timestamp \\r\\n========================================\\r\\n\\r\\nNumber of errors: 1\\r\\n\\r\\n\\r\\n\",\r\n \"stdErr\": \"SignTool Error: A certificate chain processed, but terminated in a root\\r\\n\\tcertificate which is not trusted by the trust provider.\\r\\n\\r\\n\"\r\n },\r\n \"innerError\": null\r\n }\r\n }\r\n ],\r\n \"esrpClientSessionGuid\": \"66dab103-b92d-4f32-9b63-9c12aa64e33f\",\r\n \"version\": \"1.0.0\"\r\n}\r\n2025-10-01T08:54:16.6629484Z:Warning: \r\n\r\n2025-10-01T08:54:16.6629484Z:esrp-client-finalTime: 12772.3093\r\n2025-10-01T08:54:16.6629484Z:Final return code is: 1\r\n2025-10-01T08:54:16.6629484Z:ClientTelemetryDispose started, this is not affecting Exe reliability, only lost telemetry if error happens ***********************\r\n2025-10-01T08:54:16.6681609Z:Client Telemetry: Flushing telemetry buffer with timeout 0 ms\r\n2025-10-01T08:54:16.6712004Z:Client Telemetry: Flushing telemetry buffer completed within timeout (true/false): False\r\n2025-10-01T08:54:16.6712004Z:Client Telemetry: Disposing telemetry buffer and event hub client\r\n2025-10-01T08:54:16.6743576Z:Client Telemetry: Events published in this batch: 1\r\n2025-10-01T08:54:16.6750734Z:Client Telemetry: Events received so far in this session: 11\r\n2025-10-01T08:54:16.6750734Z:Client Telemetry: Events published so far in this session: 7\r\n2025-10-01T08:54:17.0123717Z:Warning: event lost number: 4\r\n2025-10-01T08:54:17.0123717Z:total event processed number: 7\r\n2025-10-01T08:54:17.0123717Z:total event received number: 11\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.TotalEventsProcessed##: 7\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.TotalEventsReceived##: 11\r\n2025-10-01T08:54:17.0123717Z:##EsrpClientTelemetry.DisposeTimeMilliseconds##: 349\r\n2025-10-01T08:54:17.0123717Z:ClientTelemetryDispose ended ***********************\r\n","StdErr":"2025-10-01T08:54:16.5535963Z:Error: System.AggregateException: One or more errors occurred. ---> MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)\r\n --- End of inner exception stack trace ---\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.d__23.MoveNext()\r\n---> (Inner Exception #0) MS.Ess.EsrpClient.Sign.Exceptions.EsrpDigestSignExecuteProcessFailedException: Operation: c:\\AT\\sitesroot\\0\\bin\\Plugins\\ESRPClient\\Win10.x86\\signtool.exe verify /pa /tw \"c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\" failed\r\nExit Code: 1\r\nStdOut:\r\nFile: c:\\Temp\\AzureTemp\\o5t2bhbn.gqh\\manifest.cat\r\nIndex Algorithm Timestamp \r\n========================================\r\n\r\nNumber of errors: 1\r\n\r\n\r\n\r\nStdErr:\r\nSignTool Error: A certificate chain processed, but terminated in a root\r\n\tcertificate which is not trusted by the trust provider.\r\n\r\n\r\n\r\n\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass27_0.b__1()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.b__0()\r\n at Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.ExecuteDigestSignOperation(Input digestSignInput, Operation digestSignOperation, SignOperationData fileEntry, SignStatusResponse completionResponse, SignCommandDefinition param, Guid correlationId, String correlationVector, CancellationToken cancellationToken, String requestId, String tmpDestinationLocation)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.DigestSignInternal(Input digestSignInput, SignCommandDefinition param, Guid& correlationId, String correlationVector, CancellationToken cancellationToken, String groupId, SignOperationData fileEntry, Int32& signedFileCount, Int32& certRefreshCount, ConcurrentBag`1 completionResponses, RetryPolicy`1 operationRetryPolicy, String dynamicCertificateFile, String dynamicCertificateThumbprint, String requestId)\r\n at MS.Ess.EsrpClient.Sign.SignHandlers.SignJobHandler.<>c__DisplayClass23_3.b__6(SignOperationData fileEntry)<---\r\n\r\n","ExitCode":1,"RunningTime":"00:00:13.9788515"} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose new file mode 100644 index 000000000000..a0e730c8c710 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose differ diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json new file mode 100644 index 000000000000..26f241cd93d5 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.json @@ -0,0 +1 @@ +{"Source":"InternalBuild","Data":{"System.CollectionId":"2ce6486e-7d3b-47bb-8e16-5f19a43015c9","System.DefinitionId":"17372","System.TeamProjectId":"81cf09ca-992f-4cab-9a5f-96d728b4c339","System.TeamProject":"SBS","Build.BuildId":"72855948","Build.BuildNumber":"2.251001.2","Build.DefinitionName":"infrastructure_itpro_teamspowershellmodule","Build.DefinitionRevision":"133","Build.Repository.Name":"infrastructure_itpro_teamspowershellmodule","Build.Repository.Provider":"TfsGit","Build.Repository.Id":"fe62ea1f-ff64-4287-87a3-b6184a6fc36c","Build.SourceBranch":"refs/heads/release/7.4.0-GA","Build.SourceBranchName":"7.4.0-GA","Build.SourceVersion":"94bae19a76521c4ce4aec4a421dda93eeda9337b","Build.Repository.Uri":"https://skype.visualstudio.com/SBS/_git/infrastructure_itpro_teamspowershellmodule","EbomId":"0a43dfb1-b70b-5f20-9da2-10c9c55b951c","1ES.PT.TemplateType":"official"},"Feed":null} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat new file mode 100644 index 000000000000..5a0b504e91d0 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat differ diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose new file mode 100644 index 000000000000..55ebc2964d73 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose differ diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json new file mode 100644 index 000000000000..8d7834b0ce09 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json @@ -0,0 +1,17762 @@ +{ + "files": [ + { + "fileName": "./../../_manifest/spdx_2.2/manifest.spdx.json", + "SPDXID": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-DF0BA998C710F21E197664508D999D436F9101B6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "641bf4f36bd0ab896c4dc013a00539ef9161447d85f6949218765ee4818753fb" + }, + { + "algorithm": "SHA1", + "checksumValue": "df0ba998c710f21e197664508d999d436f9101b6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION", + "fileTypes": [ + "SPDX" + ] + }, + { + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-358D6795FF6A747404383425E64D23D1336CB1C0", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "85509c83f8048ae73d6488c1dc698fb86635f3b6921d4b35bf4246d1cb0354d0" + }, + { + "algorithm": "SHA1", + "checksumValue": "358d6795ff6a747404383425e64d23d1336cb1c0" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-06F2DE05C56549DA9A8C48D6BD6D237AC1B2F3DB", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0a09f7df982a6cf4baaf9c97431adcacb16bb3d54be9a4ad47a3fdc335facbd6" + }, + { + "algorithm": "SHA1", + "checksumValue": "06f2de05c56549da9a8c48d6bd6d237ac1b2f3db" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./GetTeamSettings.format.ps1xml", + "SPDXID": "SPDXRef-File--GetTeamSettings.format.ps1xml-0E61084BD489773DFB45DB5991C5901CB7A5EFE1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e395f9a23e1b13f067cdea2f143455c2ea7cc798292f55f65f8bc90c2ee59e2e" + }, + { + "algorithm": "SHA1", + "checksumValue": "0e61084bd489773dfb45db5991c5901cb7a5efe1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1-C9A8BEE198E3F026B489127B8693505E98B051AE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "71e2b01c74b6ba03885df8b0dd09f9d0bbccde414c16bfa6a61b031dd2d923f2" + }, + { + "algorithm": "SHA1", + "checksumValue": "c9a8bee198e3f026b489127b8693505e98b051ae" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./LICENSE.txt", + "SPDXID": "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1cd91cba185bdde7d815c11eb1fd9ec359715d9c071172dc964755c5801ad905" + }, + { + "algorithm": "SHA1", + "checksumValue": "ab40082210620a2914d58b309a048459e784e962" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-29654B497D19C8508ABA749E8A25890FB166F3D3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "27bc1c17ad463c97af6237cef277a58bbd65d0ed56d3acf13fbb16edea38d0fe" + }, + { + "algorithm": "SHA1", + "checksumValue": "29654b497d19c8508aba749e8a25890fb166f3d3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-963D4C2F388DECE045FD19E22F7DA7F85931807F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0934ee941a91c53e56375e0f850e2589a8e6afbd5b1c20f464dae16c2a7a9645" + }, + { + "algorithm": "SHA1", + "checksumValue": "963d4c2f388dece045fd19e22f7da7f85931807f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml-A5C9ABD7C91C563124045980DBF5688288EA007F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9ed7777bd38057277a0fa4f9b279448d8b272c7750f17aff5df821456e428f7b" + }, + { + "algorithm": "SHA1", + "checksumValue": "a5c9abd7c91c563124045980dbf5688288ea007f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml-4683A04476426B5AF5BCB26B98C17CA2B5CBFB02", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "171359032e4bfd63b6f4664dbb86d1c14aeea4c93d1c8d2f038c12675b25c57e" + }, + { + "algorithm": "SHA1", + "checksumValue": "4683a04476426b5af5bcb26b98c17ca2b5cbfb02" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-2B971324EA70583EF0B37D0DC6E0DA6D02060D2E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d03608c9b950fcc154a84b6185fc38b484be022cb715af7ec296f8472b8ea05c" + }, + { + "algorithm": "SHA1", + "checksumValue": "2b971324ea70583ef0b37d0dc6e0da6d02060d2e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml-EB263FF298D384DFD53520A387339547CAD10294", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "df2a6630db615ab8dfd353eafe2bb63deb5f401366bcb2892abf6b4c4b1707c4" + }, + { + "algorithm": "SHA1", + "checksumValue": "eb263ff298d384dfd53520a387339547cad10294" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "4a314344b36ff15c11166f2aa5d1b5e313448cda0ddf2fbc1eeed8d0f78b6f65" + }, + { + "algorithm": "SHA1", + "checksumValue": "88c2b299a3efedad1899aa8b26920dde35863a3c" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml-CF6D5EA1DB485C9B63EA6DA6AEAC79D6A2C0249F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1ba34db541a6b7673882078d196aa0d9cc165b95cbf7df707005f820944c8c9b" + }, + { + "algorithm": "SHA1", + "checksumValue": "cf6d5ea1db485c9b63ea6da6aeac79d6a2c0249f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml-037B8BD58EE4DA3AAA0F696446289AED702B569E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9a6af3ee1b05ac3514b8ec5c52547a0cb4cc979e08791dd6d38221e50a365011" + }, + { + "algorithm": "SHA1", + "checksumValue": "037b8bd58ee4da3aaa0f696446289aed702b569e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-AD8AC869067A6601073B9C0EC4406C1A08DD7AED", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "130d281b15aa9989041f200751a9b7cbbfd1c6964d12db1cf1a82478056827f2" + }, + { + "algorithm": "SHA1", + "checksumValue": "ad8ac869067a6601073b9c0ec4406c1a08dd7aed" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-12984994444338BBAF1E1597874FE6D8AEA40BCA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a7a276f14f21521ab98395a0b51e7fa41ab2574616d8a27da097b191335b1eed" + }, + { + "algorithm": "SHA1", + "checksumValue": "12984994444338bbaf1e1597874fe6d8aea40bca" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml-B954F5ED1ECC7BE8740624D48ED04222953C8139", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "849d6fd93333ce839f9593b0420581090de7a6543f79e59e1a0962ef4659065b" + }, + { + "algorithm": "SHA1", + "checksumValue": "b954f5ed1ecc7be8740624d48ed04222953c8139" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml-E04D2C01142905ABBB85203DF7BBC17A146FAA1D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7b389faa9392f7cba03aa6de7cbb19d7989cbef18113955c6641c7df12d1a83c" + }, + { + "algorithm": "SHA1", + "checksumValue": "e04d2c01142905abbb85203df7bbc17a146faa1d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./MicrosoftTeams.psm1", + "SPDXID": "SPDXRef-File--MicrosoftTeams.psm1-CE47D645C9A82231AD62188F14704A6DFC34C77A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7a5ac37ad548a7c04e67e0c71d4bf3d20ac5df21f0dd2d207373b0fc4e90edd0" + }, + { + "algorithm": "SHA1", + "checksumValue": "ce47d645c9a82231ad62188f14704a6dfc34c77a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml-8FE74E08BC9D801BDD0E388AB369EE06C0CF45EF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b44ce79fabd3753ce7c7f2ea4a542b8da575123b4097292687d4217567879db8" + }, + { + "algorithm": "SHA1", + "checksumValue": "8fe74e08bc9d801bdd0e388ab369ee06c0cf45ef" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6e11132a8afa44b044667064190ba3e354f5a705eaf6952bccd22b1100c4dc16" + }, + { + "algorithm": "SHA1", + "checksumValue": "56e8bfb9f020adf074710972f5afd1b1ced156fd" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psm1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-DC1D08C8126D965B23565174CEF4A81366FF0F5E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "216feb979cc06e1bff6354dedbda0c457d241c352c200207a4fa93051ab5ae89" + }, + { + "algorithm": "SHA1", + "checksumValue": "dc1d08c8126d965b23565174cef4a81366ff0f5e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-88D15FB2F26191E1A37F10E60DF4CEE1F9BD0F17", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a65fa456458c161c0308c9c1d666f65dbfa6816618024b4706227e5327ac51ec" + }, + { + "algorithm": "SHA1", + "checksumValue": "88d15fb2f26191e1a37f10e60df4cee1f9bd0f17" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./SetMSTeamsReleaseEnvironment.ps1", + "SPDXID": "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-F7DEE6409FCFBCFDA09733084816A3E3E46BCDEC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5f9755d39eebffcaced62973e22395a17aba72c589f8ce0052dc958617178a64" + }, + { + "algorithm": "SHA1", + "checksumValue": "f7dee6409fcfbcfda09733084816a3e3e46bcdec" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml-341891343CB3B9B8E207A7225210AEF601E6C779", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "12206134876e1bde11edb2bd7bdf651d1cf7a979c8509392074f169a5938bf81" + }, + { + "algorithm": "SHA1", + "checksumValue": "341891343cb3b9b8e207a7225210aef601e6c779" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml-4C798B7AC19201899CBF18D0D9BC4145D5C0DCE1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "bc86d3c5b77059a51e3e7fde6099b419696c3208d491439a8c8a20faef5a9718" + }, + { + "algorithm": "SHA1", + "checksumValue": "4c798b7ac19201899cbf18d0d9bc4145d5c0dce1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1-CA346C864AFA6A636E57FBAF71010CAC45D122D1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9d95994cad4659d3fc2a0a6c93d6c262f09ea078bdbb25432435134ae0143e53" + }, + { + "algorithm": "SHA1", + "checksumValue": "ca346c864afa6a636e57fbaf71010cac45d122d1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.IdentityModel.Logging.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-6209CAFD403DF6FB9DA046F36D7D89635FAE41A4", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3909aa735f98f4c57edc81a8e674364d085db13b1f10734377259e0f6c35c97a" + }, + { + "algorithm": "SHA1", + "checksumValue": "6209cafd403df6fb9da046f36d7d89635fae41a4" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml-C9D1A219945A688828BE50FC9E0FF4C663334995", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "07ad1ffefa084c9bd05bf2ee0a98155499c17c005b653a88d709770941067a1f" + }, + { + "algorithm": "SHA1", + "checksumValue": "c9d1a219945a688828be50fc9e0ff4c663334995" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json", + "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json-796CAF23506427ABFD0CBB113FDCC1D690D70890", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2165e86e3adb0f410f299a0eb5dc8e73818d6c9497db71b31b600a8fde438347" + }, + { + "algorithm": "SHA1", + "checksumValue": "796caf23506427abfd0cbb113fdcc1d690d70890" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml-AF55F0C8AE06AF16DA52F63F8DD7CE43689A71A2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "94c3c284350b1d8d1da4ace9f258ff6a0b0a841ca1bee1456518990c3376066a" + }, + { + "algorithm": "SHA1", + "checksumValue": "af55f0c8ae06af16da52f63f8dd7ce43689a71a2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml-EDC75B30DF78641733D30DCDE1276706A601AB19", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "563f21803a0eb0cbb466ce4f6e299e7bf387aa0663c6ccc71306d8ac50ca2f63" + }, + { + "algorithm": "SHA1", + "checksumValue": "edc75b30df78641733d30dcde1276706a601ab19" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml-58AE49EF1B2AF7DE983D1CAF24B20B5143D39652", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "527766ba7d1df9011aaf3926dcb69b6d4dcd78c180a20ee04e89a38b9a852a2a" + }, + { + "algorithm": "SHA1", + "checksumValue": "58ae49ef1b2af7de983d1caf24b20b5143d39652" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-CAA75251D6858155BFB20A66AB60474F844BE319", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2fbd06d6136c841d154150afb4864c0987bc1c77a3900def23543597920d9217" + }, + { + "algorithm": "SHA1", + "checksumValue": "caa75251d6858155bfb20a66ab60474f844be319" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.Module.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" + }, + { + "algorithm": "SHA1", + "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml-086D2A71368A70C95D7C14EB16E1E8AB9D85A950", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "af1b6ac42469c1497fef14463898f65ad7be09f84f66d9637c5c5b405b3cc97f" + }, + { + "algorithm": "SHA1", + "checksumValue": "086d2a71368a70c95d7c14eb16e1e8ab9d85a950" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./MicrosoftTeams.psd1", + "SPDXID": "SPDXRef-File--MicrosoftTeams.psd1-8419998A42D801598EE6BF96F39993FDFA043632", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b6097f6019a5789486d425c35a92d7bcbc9eda36ad1acfb82639a1d1ccfe055f" + }, + { + "algorithm": "SHA1", + "checksumValue": "8419998a42d801598ee6bf96f39993fdfa043632" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1", + "SPDXID": "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-A507BC7A295AC14035F81E138A39F9CAA03DA5A2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ccdfb4a2b9439941d75be19cfc0347f4861b43c94ab8223615208514cafae2fe" + }, + { + "algorithm": "SHA1", + "checksumValue": "a507bc7a295ac14035f81e138a39f9caa03da5a2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-06ECDF615E407E69513D3771EEF0678ECCAFA269", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d14796fbbd20f0ed206c1db80faca50e353b1bca306c2ae21f03a2649d6720e0" + }, + { + "algorithm": "SHA1", + "checksumValue": "06ecdf615e407e69513d3771eef0678eccafa269" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-DBFCA41EABFFE3B81453F66B9C37667D5CD777B6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7dcc7523ee28be53b078dfd793ea11f081a7cb51393fd17ed514c00bee849800" + }, + { + "algorithm": "SHA1", + "checksumValue": "dbfca41eabffe3b81453f66b9c37667d5cd777b6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-32022DFD0447DA7210CABCB550C0B5834D73BE83", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "11f673efe46c3a6adb5fec3f92ea7a4769e565244503721210ba19eeecfdffd8" + }, + { + "algorithm": "SHA1", + "checksumValue": "32022dfd0447da7210cabcb550c0b5834d73be83" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml", + "SPDXID": "SPDXRef-File--en-US-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml-FEFA595D1ECC65F8818C1A38F2BFEE3CF7E0575E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "345bab954c5ae4f9a52420f3b88e78d96080dc4a4d0a8db76d50dd9af571eaa9" + }, + { + "algorithm": "SHA1", + "checksumValue": "fefa595d1ecc65f8818c1a38f2bfee3cf7e0575e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-98FB01D72EBCC9822A8F2D2B371A67F5EB68FFD9", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "45436033258db265663a1248e0e3eb4e9cbbabd5f9491ca74841b969af55f91a" + }, + { + "algorithm": "SHA1", + "checksumValue": "98fb01d72ebcc9822a8f2d2b371a67f5eb68ffd9" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml-0031CFCDA71FB7B73ED2BCA2DDAD351018824C28", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5b29b0f5298699972d9479c42e9156933e33def8524f94b0470718e758cced30" + }, + { + "algorithm": "SHA1", + "checksumValue": "0031cfcda71fb7b73ed2bca2ddad351018824c28" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml", + "SPDXID": "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml-34BB735EAEB2987A8AA72C522173DBDFCDE15331", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c771bf28f755eaede1ff2222db9e23c2d603928f9cf170cf05bb37f0ec458fec" + }, + { + "algorithm": "SHA1", + "checksumValue": "34bb735eaeb2987a8aa72c522173dbdfcde15331" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./Microsoft.Teams.PowerShell.TeamsCmdlets.psd1", + "SPDXID": "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-3D8B6E0C11BD6300FFF53D1C1A7A32B6AA20EEDA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "58b2ea0cdcabcb8862f9ebebe9ec12b5c6e728343e9b02d742a2addaf594c5d5" + }, + { + "algorithm": "SHA1", + "checksumValue": "3d8b6e0c11bd6300fff53d1c1a7a32b6aa20eeda" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/CmdletSettings.json", + "SPDXID": "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c0549eba3a249ef431b0d0c61ee232c815b74fe0cfa1b41b0860a8531f33e6dd" + }, + { + "algorithm": "SHA1", + "checksumValue": "98919b572db8494892b52408cd0fe23531388e32" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-B68459369627DCCF555526C5B1385DB735A6B596", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "94488e5191be3a39e010f9f8ffbd1d36046d91d46ab316cb1495232afc8554a1" + }, + { + "algorithm": "SHA1", + "checksumValue": "b68459369627dccf555526c5b1385db735a6b596" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-87551F36BC46BFCBCC035626DBB42C764F085B3F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a8b0dd2c74857b93aea6fd37ff1cc5ad8f9d081918994fb73bca5000cbb8a557" + }, + { + "algorithm": "SHA1", + "checksumValue": "87551f36bc46bfcbcc035626dbb42c764f085b3f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Configuration.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-4D43E8350E71147AD6970E9F0DE4782470A76A0D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e2882c6ff3eb35ad16048d6099b7a4ea4213072157bdb47f10b451c88b3fe17e" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d43e8350e71147ad6970e9f0de4782470a76a0d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Logging.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3c786c0b64c0f71eb099960804ca311660046e919925a42841bb3be1a7c547f7" + }, + { + "algorithm": "SHA1", + "checksumValue": "35ea89f23c780b1575b2066db0d59f255971eb3d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml", + "SPDXID": "SPDXRef-File--en-US-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-0A3B265D20E863CBDCB264974391CA7D26766C0E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "caabdcf997a01b83f22b8509fc2d23f21add76585cc1cf0821dbe34b45d7e8e5" + }, + { + "algorithm": "SHA1", + "checksumValue": "0a3b265d20e863cbdcb264974391ca7d26766c0e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.Desktop.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-F2B3DF67CE4F9D0963240B693154CBBEFC74ACF3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "fd4dcec737f97be913f194997293983d3f9444832134aad357e8b29621a9e5b9" + }, + { + "algorithm": "SHA1", + "checksumValue": "f2b3df67ce4f9d0963240b693154cbbefc74acf3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./SfbRpsModule.format.ps1xml", + "SPDXID": "SPDXRef-File--SfbRpsModule.format.ps1xml-95C93BA2237F52307E16FD0011B73A8A17198988", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c0449db803d01bcb24822326197f90b4f34b347c93cb0b940b0ddaa6d04d053e" + }, + { + "algorithm": "SHA1", + "checksumValue": "95c93ba2237f52307e16fd0011b73a8a17198988" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.NativeInterop.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-3C40B6CE463B6BBAACA4AEA0A2DE8B0BE9CFEA3D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "496ee225a7ca6e65d3153f277b853a55c4528be2541a6514baecf10822145342" + }, + { + "algorithm": "SHA1", + "checksumValue": "3c40b6ce463b6bbaaca4aea0a2de8b0be9cfea3d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Rest.ClientRuntime.Azure.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-8070B48D5F4D2FDDDAC48DA510BC149691B59500", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "840919b961d621a14815de0d23195d8843fb747fceba72664208a96c01324fa1" + }, + { + "algorithm": "SHA1", + "checksumValue": "8070b48d5f4d2fdddac48da510bc149691b59500" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/System.IdentityModel.Tokens.Jwt.dll", + "SPDXID": "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-3A24CC14199BFC426F29EF91DE9EF8614248CE87", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c6bee905346157559f26648f1c772ad25ecd7000621830557c628059966c0e3b" + }, + { + "algorithm": "SHA1", + "checksumValue": "3a24cc14199bfc426f29ef91de9ef8614248ce87" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.PowerShell.Module.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-C00F202A7BBEBFB084966C3BE0027F9DF0BD47E6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3e9e8e61308067a627bd07d673c18104357f577713ff0ed054d206a6e96759f5" + }, + { + "algorithm": "SHA1", + "checksumValue": "c00f202a7bbebfb084966c3be0027f9df0bd47e6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-55E4A13A430919E0B5EBF5FFEDBDAA0D66F84629", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "40a73a31ce1dd5b6bd3593edddd6831e6aab2078053d65cb6eca32f761076dc2" + }, + { + "algorithm": "SHA1", + "checksumValue": "55e4a13a430919e0b5ebf5ffedbdaa0d66f84629" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Applications.Events.Server.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c1eaa5d9c465ab18d7ca530d8f79b4c762044c81e35ceda7f4a3a00e9280fbca" + }, + { + "algorithm": "SHA1", + "checksumValue": "8784d6c77efa3361390f5ba5f5f56a62434a4a35" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "68dcce73772f4109e08106d5117516aad682f12b359809d1c0d84d2a132ac4f7" + }, + { + "algorithm": "SHA1", + "checksumValue": "b82f9689f6c16fb1f5db89a0e92f2b9f756aec48" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.Extensions.Msal.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ada85e7854037947f14cf746aecf6945193b4cf15d12193ef385f77e5b8bcf74" + }, + { + "algorithm": "SHA1", + "checksumValue": "c328acf08de3e229e48083958d9df2a0eb25511a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6457a00dbe141bb431c32b375c52ab61e1552beb50f27f8cf9706f7761448480" + }, + { + "algorithm": "SHA1", + "checksumValue": "2598cbe499a5c56e7eb9715e1bf6f19ecbcfda02" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./custom/Merged_custom_PsExt.ps1", + "SPDXID": "SPDXRef-File--custom-Merged-custom-PsExt.ps1-1236406BE9FE7B860E27990A63905951D267C513", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "88590f32f2dee7c9eccbf4d73724b418fdfa64d71bdf43fd2a30e5b3422a87eb" + }, + { + "algorithm": "SHA1", + "checksumValue": "1236406be9fe7b860e27990a63905951d267c513" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.PowerShell.Module.xml", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" + }, + { + "algorithm": "SHA1", + "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1", + "SPDXID": "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-37C5B051DBA7F642F313F10B87F53660153EB0B0", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b41768b1431f31f1bf663dfe60c76da46523a17800c019a6c940af61746cd568" + }, + { + "algorithm": "SHA1", + "checksumValue": "37c5b051dba7f642f313f10b87f53660153eb0b0" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Polly.Contrib.WaitAndRetry.dll", + "SPDXID": "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-BA74DF33836959F34518B64921D3A3F95D481BC1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3eefec0b280c7366d5a6ff01a32ba6572ec2d2bef8788d16250de8a68b15136f" + }, + { + "algorithm": "SHA1", + "checksumValue": "ba74df33836959f34518b64921d3a3f95d481bc1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Data.Sqlite.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-C1C86EBD194F15E1B21368632ADE968F775F0F37", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d3d696ae0e0d7f00ae0081a1c66b9e0ca508a27314f438f2dfa044ce92463df8" + }, + { + "algorithm": "SHA1", + "checksumValue": "c1c86ebd194f15e1b21368632ade968f775f0f37" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Numerics.Vectors.dll", + "SPDXID": "SPDXRef-File--net472-System.Numerics.Vectors.dll-80AE1F43F3E94A2A56E47E6526200311BE91EBFE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "365af158d47210ac1e5d29b96ef1f18391757c7b4a11e941c56fec55ea45693c" + }, + { + "algorithm": "SHA1", + "checksumValue": "80ae1f43f3e94a2a56e47e6526200311be91ebfe" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.Broker.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-D95D3FA029242D0F219083345D3D6F6C3FBFBE05", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "86937552711efd1d1702bd6c39a5f58400bd58ea5acdda28b8d542da14e886be" + }, + { + "algorithm": "SHA1", + "checksumValue": "d95d3fa029242d0f219083345d3d6f6c3fbfbe05" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Newtonsoft.Json.dll", + "SPDXID": "SPDXRef-File--net472-Newtonsoft.Json.dll-4D4776CD97BB5000F70D8847BFF3E83C9D485329", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "aaefac1d3466c290411a4be582e61912fd2dff9c8bbdd5e85d5799b6fad8abe1" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d4776cd97bb5000f70d8847bff3e83c9d485329" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-E78625F5200A1A718EBB5B704C14E3FFADFA00B4", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c9e38ee30d156c0d4cd21b4bb2c4c81b26ec105267dab767e563611b63809441" + }, + { + "algorithm": "SHA1", + "checksumValue": "e78625f5200a1a718ebb5b704c14e3ffadfa00b4" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/BrotliSharpLib.dll", + "SPDXID": "SPDXRef-File--bin-BrotliSharpLib.dll-2E24506AA5F40ED36F6AD2BBA1A2330F3162E86B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "8d2c843a44c601e4d430e3a514c702122a466de1d6c57ed7859e28a109631cc0" + }, + { + "algorithm": "SHA1", + "checksumValue": "2e24506aa5f40ed36f6ad2bba1a2330f3162e86b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Management.Automation.dll", + "SPDXID": "SPDXRef-File--net472-System.Management.Automation.dll-DF8EA78867A1F793EF49C71021B9B08B59B22B2E", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9606e20b33aa0900d2e786327ae312072741627cc64f4108a5e1a2e0239368c5" + }, + { + "algorithm": "SHA1", + "checksumValue": "df8ea78867a1f793ef49c71021b9b08b59b22b2e" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./custom/CmdletConfig.json", + "SPDXID": "SPDXRef-File--custom-CmdletConfig.json-50F9EB97C3280FCB17FE7A71ED3B07B7CC8E2A4A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6999d64a2c6b9298616f00c2db2991977b2e74de249abcf39c02d5844e5876a4" + }, + { + "algorithm": "SHA1", + "checksumValue": "50f9eb97c3280fcb17fe7a71ed3b07b7cc8e2a4a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-65142F147116D0CF25DFE4A603B2394C32FA0F86", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b7e93d99b1ff526c562594ca4d0c1edb3295b72f99d6062d86722a6d8f626d1a" + }, + { + "algorithm": "SHA1", + "checksumValue": "65142f147116d0cf25dfe4a603b2394c32fa0f86" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Polly.dll", + "SPDXID": "SPDXRef-File--net472-Polly.dll-8674FDDBD9533EE718DDF9F49729036ED105462B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "fc643fc147802081296c9abc580976a5fdf0eccb72cedd051ad26c99081bea14" + }, + { + "algorithm": "SHA1", + "checksumValue": "8674fddbd9533ee718ddf9f49729036ed105462b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-786A002F9A95D3A31FA7B5632AF548BD1ABE5719", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "f0b4bc9817145d88b2e7c8dfbe0df3b153f610a2c1ebc01843d606bd451d1af1" + }, + { + "algorithm": "SHA1", + "checksumValue": "786a002f9a95d3a31fa7b5632af548bd1abe5719" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Runtime.CompilerServices.Unsafe.dll", + "SPDXID": "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-4D6EA8EA4CEFD6236BDAE18A9714C415CE9E8E80", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "bdc470dc0cfb496e3f9a9cbd718b91cb354eec5f584d4ddf4c1e25f60c27b963" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d6ea8ea4cefd6236bdae18a9714c415ce9e8e80" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-7A086CCCEF5693535BD3CB8A45C139118B0408B2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "65625ea53b67d3901a633d013afd8b9f8e2c80261fe33b9417aac44fc7192cff" + }, + { + "algorithm": "SHA1", + "checksumValue": "7a086cccef5693535bd3cb8a45c139118b0408b2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/CmdletSettings.json", + "SPDXID": "SPDXRef-File--netcoreapp3.1-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c0549eba3a249ef431b0d0c61ee232c815b74fe0cfa1b41b0860a8531f33e6dd" + }, + { + "algorithm": "SHA1", + "checksumValue": "98919b572db8494892b52408cd0fe23531388e32" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Web.WebView2.Wpf.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-01489D64D3B9A1C6A8A0B7E0631B2B9BDD6173ED", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "4b23f4a7e9a5eb2fab4319c482efce1f03e702ee24128d70bbe7a029b097f3fb" + }, + { + "algorithm": "SHA1", + "checksumValue": "01489d64d3b9a1c6a8a0b7e0631b2b9bdd6173ed" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-C74ADA74AB08D0A7C7FC30E62C8ADA166348F348", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9b0d21d7f5456a327be6fc96b473033c2ccc4046f662fddcece228fbd68c470e" + }, + { + "algorithm": "SHA1", + "checksumValue": "c74ada74ab08d0a7c7fc30e62c8ada166348f348" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.IO.FileSystem.AccessControl.dll", + "SPDXID": "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-E201A6C3418738171437D08CE031AF7BE2581673", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "4eef61d4ecfb30bffec8ed73b92aee0c3e1f5b80f24b4a7864393c9ec5bdd6b8" + }, + { + "algorithm": "SHA1", + "checksumValue": "e201a6c3418738171437d08ce031af7be2581673" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.ValueTuple.dll", + "SPDXID": "SPDXRef-File--net472-System.ValueTuple.dll-FA705C62A84C9F1B1A73ECD9413ABFDBB2894C90", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d574be0f1f0dd4411688c9f27fd5d42c7cf2cc858903566404d6dff0e5042b21" + }, + { + "algorithm": "SHA1", + "checksumValue": "fa705c62a84c9f1b1a73ecd9413abfdbb2894c90" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-6F84B6E012BAFF57A4653E61727CABA01EA53C43", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "23c4ec59531f791e3dca7589659e9fbec44b1e07e5e522299d2cada177e284f2" + }, + { + "algorithm": "SHA1", + "checksumValue": "6f84b6e012baff57a4653e61727caba01ea53c43" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-CCDE9D64C0DAA1FB6F941E56E3A27909CE3FCF26", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "129e13e98133357d7e2a9525264bef9ea8a8905cfd869bf38cb720b02734640e" + }, + { + "algorithm": "SHA1", + "checksumValue": "ccde9d64c0daa1fb6f941e56e3a27909ce3fcf26" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d67870aeb4c480d5c7feed71e40dbcfd207d15269ad6bb71643a9e8dc66993db" + }, + { + "algorithm": "SHA1", + "checksumValue": "473dd93c24a86081d72eb2907a81dbe77989e072" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-465A18651303F41BEC9371C24DDDF788E7E73C95", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7ec5cf66fbcf3b362d33aee2e4cd9de7d3d93cc02085f1207aeb85c65e6b03d1" + }, + { + "algorithm": "SHA1", + "checksumValue": "465a18651303f41bec9371c24dddf788e7e73c95" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-7F05017570427CC8F35A41E8AD7B9C3C21E37041", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "cf06eaa9bedb73acd0fc79ca2ef6fcd39f5d1addb50c2e5a661953e658dc366d" + }, + { + "algorithm": "SHA1", + "checksumValue": "7f05017570427cc8f35a41e8ad7b9c3c21e37041" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./exports/ProxyCmdletDefinitionsWithHelp.ps1", + "SPDXID": "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-B55EA4708B83CBBC31C7C11573733B97558A9E44", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7b69d14b84baaa2f4c9a7fc2b3685bb355d7fa5967708eebd235cef029d30ec3" + }, + { + "algorithm": "SHA1", + "checksumValue": "b55ea4708b83cbbc31c7c11573733b97558a9e44" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Azure.KeyVault.Cryptography.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-AA228C30A6E65B7C339BE70888E598F15384C7A6", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d72ec87e8b67bf41c58e3274de605d44b8179fadf9a855dfc1ef282197c03057" + }, + { + "algorithm": "SHA1", + "checksumValue": "aa228c30a6e65b7c339be70888e598f15384c7a6" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.deps.json-C4B88E80F962180082211BFFE828518C999D28AC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "338b410d27376b6fcc24a0fe13b58987b7b4a5f9b7f9a5610dc4d08c9ab76aee" + }, + { + "algorithm": "SHA1", + "checksumValue": "c4b88e80f962180082211bffe828518c999d28ac" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Primitives.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-7CCB6B0AE1BE62E3111E575AD5D98D36E00695C5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e6d842132f776afea56db3225592e16c389c9edfb3cf8e8e7b66c9836b361774" + }, + { + "algorithm": "SHA1", + "checksumValue": "7ccb6b0ae1be62e3111e575ad5d98d36e00695c5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-DD1C2FD1FDCD6D3C5F23BB016802D1184E701B19", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5c2a0c5441cbfa11e60ff1ff539f862b7304dfd194e27f7e8c80f3d4a149eb76" + }, + { + "algorithm": "SHA1", + "checksumValue": "dd1c2fd1fdcd6d3c5f23bb016802d1184e701b19" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-F3A537C2581B037B3E5D6593319921D2A5377BB7", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2125b041cae14c58336aa40d7093a8065c70e3a4c3c1bee43a8facd7a7164538" + }, + { + "algorithm": "SHA1", + "checksumValue": "f3a537c2581b037b3e5d6593319921d2a5377bb7" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-B843B060F4CA7284C5598E05F71A16F0DC8C0E94", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "8d2f8ba457ea9552305548232bfcb0947b14b0896157058d02734ca1c70576da" + }, + { + "algorithm": "SHA1", + "checksumValue": "b843b060f4ca7284c5598e05f71a16f0dc8c0e94" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-75691941EA0487A403C0F0A61CEBD63306A574DF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "8df32615e41188f9fb9d0e97f79ba454a359e0d1b74018cb39cb08c624c872ab" + }, + { + "algorithm": "SHA1", + "checksumValue": "75691941ea0487a403c0f0a61cebd63306a574df" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-23C4DE58B7ADF208D7FD5707E1641C1470D5298A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "79a69ad418c503629214890a798609d91e1978d11183b5080f480dcb48b34cac" + }, + { + "algorithm": "SHA1", + "checksumValue": "23c4de58b7adf208d7fd5707e1641c1470d5298a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Management.Automation.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-A99AAEE15D9D52519310409F2D40C3FFA58C5868", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2a418ff4da207623b23d1b9300c6482f5c2a04655c28ca5f56e6f00b9c5e8d48" + }, + { + "algorithm": "SHA1", + "checksumValue": "a99aaee15d9d52519310409f2d40c3ffa58c5868" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Web.WebView2.Core.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d253b4fcf246561878d64a4bedbe8db1d1b733bd30b0ca8a19dd18f4610afaff" + }, + { + "algorithm": "SHA1", + "checksumValue": "83efc5eb7ef030c0fd97d30280196fa8db7a2cae" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Diagnostics.DiagnosticSource.dll", + "SPDXID": "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-BB1ECBBB6CB7498AD99B15ED2A0ED4080ECC2624", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "46b9717b423a1abad67a498a7a5ee3b23209393f6a6709f0d4bd325d706b39b9" + }, + { + "algorithm": "SHA1", + "checksumValue": "bb1ecbbb6cb7498ad99b15ed2a0ed4080ecc2624" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Polly.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.dll-B4A339D19EBAB0CF38FEC6BC92386A3B84CDFCBA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "4eafaac13b6bf332e9bdc2375a1d330da65148c3cb8248bef71312c25b4932d1" + }, + { + "algorithm": "SHA1", + "checksumValue": "b4a339d19ebab0cf38fec6bc92386a3b84cdfcba" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Security.Cryptography.ProtectedData.dll", + "SPDXID": "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-F78C51196CE15F975FCAF3BC8BC8F07AE0633B34", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "abe09e765bcc0f25039632f91f2514d1e8fa5febb9815750a582007a9654eebc" + }, + { + "algorithm": "SHA1", + "checksumValue": "f78c51196ce15f975fcaf3bc8bc8f07ae0633b34" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-C4C40D89C47D7FDE0B4CB5FBDC4E0DE650B843C4", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2d2ddb2fa4b628162aad2d512abd47d8747eb43fc214b6a0b529a95d05ac5d5f" + }, + { + "algorithm": "SHA1", + "checksumValue": "c4c40d89c47d7fde0b4cb5fbdc4e0de650b843c4" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Applications.Events.Server.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c1eaa5d9c465ab18d7ca530d8f79b4c762044c81e35ceda7f4a3a00e9280fbca" + }, + { + "algorithm": "SHA1", + "checksumValue": "8784d6c77efa3361390f5ba5f5f56a62434a4a35" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "68dcce73772f4109e08106d5117516aad682f12b359809d1c0d84d2a132ac4f7" + }, + { + "algorithm": "SHA1", + "checksumValue": "b82f9689f6c16fb1f5db89a0e92f2b9f756aec48" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/runtimes/win-x86/native/msalruntime_x86.dll", + "SPDXID": "SPDXRef-File--net472-runtimes-win-x86-native-msalruntime-x86.dll-26052D68A220E9F37A9368BACB54F73F5EEC9ACD", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6be5f612da3c75c28a4bcab6b68c166b7252498cb01b65d65965d2b6d1ccee66" + }, + { + "algorithm": "SHA1", + "checksumValue": "26052d68a220e9f37a9368bacb54f73f5eec9acd" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ada85e7854037947f14cf746aecf6945193b4cf15d12193ef385f77e5b8bcf74" + }, + { + "algorithm": "SHA1", + "checksumValue": "c328acf08de3e229e48083958d9df2a0eb25511a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Data.Sqlite.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-B0A60E1148FB6EA35B8E807976E8C59561308280", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1a96380bb969a5d671c5e3c7a667aa3fc30d41e2ecb2f64c62767adf2bc54a82" + }, + { + "algorithm": "SHA1", + "checksumValue": "b0a60e1148fb6ea35b8e807976e8c59561308280" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6457a00dbe141bb431c32b375c52ab61e1552beb50f27f8cf9706f7761448480" + }, + { + "algorithm": "SHA1", + "checksumValue": "2598cbe499a5c56e7eb9715e1bf6f19ecbcfda02" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-0D4A3F7CE6D8EC4D0E39617E91AE19F5E950E36C", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "67754af73201a54cf3c5dab744ebbd500d2f0687b1729f1b3283df84b7f3dc23" + }, + { + "algorithm": "SHA1", + "checksumValue": "0d4a3f7ce6d8ec4d0e39617e91ae19f5e950e36c" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.Broker.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-BC752E36771DD07FE8844E846F5FBF63EF3F688F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "f0210c30716c33cb16bb668f27915de1f95de0195f879e4ea6ba13b392ac3aa6" + }, + { + "algorithm": "SHA1", + "checksumValue": "bc752e36771dd07fe8844e846f5fbf63ef3f688f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/OneCollectorChannel.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "02b9bc991c22c83254aa190eaa3cd0cabcbf33f7a12187e5e98ef8c66dde8559" + }, + { + "algorithm": "SHA1", + "checksumValue": "db64576fb1dca60f06b2a4524bc1cde3046ab333" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./internal/Merged_internal.ps1", + "SPDXID": "SPDXRef-File--internal-Merged-internal.ps1-E61D882264080326303E91B96F3D947BC4CE44D5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "169bc0d1817f61efb8da852b377987b0c8345a77e0fcb5378ddd543aca642e33" + }, + { + "algorithm": "SHA1", + "checksumValue": "e61d882264080326303e91b96f3d947bc4ce44d5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-99E811FB4338B59A38E10E5790B9F665158FACCA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "72d483d32a3294370102083a12156fbe8f4ebb35fe9bd5004a038d927ba6ccd9" + }, + { + "algorithm": "SHA1", + "checksumValue": "99e811fb4338b59a38e10e5790b9f665158facca" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Azure.KeyVault.Jose.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-3C0B02C0F1457FE7C40A5BEAB2B2C2D604D26BC7", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "15e03afaf392e8236d199fa3bdfc5cda92b9fb75ddb875ab19943aaf728e77e9" + }, + { + "algorithm": "SHA1", + "checksumValue": "3c0b02c0f1457fe7c40a5beab2b2c2d604d26bc7" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0ab543a64f80c74a0f7f6b5d6c3a10bac1e3d459d155b1577d8b42b04a5991fb" + }, + { + "algorithm": "SHA1", + "checksumValue": "37eed298be541e9888717199b6a6c290cb4f1cc5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.IdentityModel.Logging.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-636BFD185EF171BFCEA938D30DEE7C496CB8DE5F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b03c64926a7ef4c7d55c863aee3d4acacf1f58bdc724a88654443d519358cd48" + }, + { + "algorithm": "SHA1", + "checksumValue": "636bfd185ef171bfcea938d30dee7c496cb8de5f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml", + "SPDXID": "SPDXRef-File--en-US-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml-8BCEFDA393D3F235296BFE9C300E9F0F024D76D9", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "cc48863967e5f859292a84f611617d55f53dfb89573a34c553645aec6152f407" + }, + { + "algorithm": "SHA1", + "checksumValue": "8bcefda393d3f235296bfe9c300e9f0f024d76d9" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-F36BD5E7284A5D5FCA8641A61FE121503F672441", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5bd7ede386bb794e42e04531ce1977d633183df8a26ad351456b4daf62731a26" + }, + { + "algorithm": "SHA1", + "checksumValue": "f36bd5e7284a5d5fca8641a61fe121503f672441" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Web.WebView2.WinForms.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-5170D70FD93BFF35EEB85C330C9AEABC9F8CA3B8", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5375c74198f884774894c9b7f9605ce29f48660e558ee6bc46f66e8dd48f3794" + }, + { + "algorithm": "SHA1", + "checksumValue": "5170d70fd93bff35eeb85c330c9aeabc9f8ca3b8" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-CAD68BAE9B1A3B1DB3DBC4D80F403E0CD152B0BE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "241dcb210328f4a9f96a482f524450b99707ad6644c447a30b10636906d611b0" + }, + { + "algorithm": "SHA1", + "checksumValue": "cad68bae9b1a3b1db3dbc4d80f403e0cd152b0be" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.IdentityModel.Tokens.Jwt.dll", + "SPDXID": "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-2E6D418B7395C63920B41918530730E8E52E9931", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1ed46cfb484e9841f0106ac02f6ce0524cc8d8f398f4864f87f815b41f5ae603" + }, + { + "algorithm": "SHA1", + "checksumValue": "2e6d418b7395c63920b41918530730e8e52e9931" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.ApplicationInsights.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-420C8DE42CA4E69F2C55DA3E4C7DBE60C80D6BD3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "599ae5f978129e01b3e61ec0591c00e6f920e54b4635e57404df509193b5175f" + }, + { + "algorithm": "SHA1", + "checksumValue": "420c8de42ca4e69f2c55da3e4c7dbe60c80d6bd3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-B92B8AA4660C723AFF249CB777A49B3C4DB2F6AF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3da20251956291da4add2bd1755982b7ecd08d5a4b80057ed8bf8d5e1357c838" + }, + { + "algorithm": "SHA1", + "checksumValue": "b92b8aa4660c723aff249cb777a49b3c4db2f6af" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Security.Principal.Windows.dll", + "SPDXID": "SPDXRef-File--net472-System.Security.Principal.Windows.dll-8CBBBFE9705845C66E2E677E4077F4F50A794AAC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a19df5f448d5ddeb604621393a9f280286d28f7ce8e8da295409ef950632fe60" + }, + { + "algorithm": "SHA1", + "checksumValue": "8cbbbfe9705845c66e2e677e4077f4f50a794aac" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-3B4E33D47C0608E26B6AE871C6F17AD90B373D54", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a15a591429b54f69e096f63076660eb4ba5bfb6691848fdeb35b48bf8c7dd678" + }, + { + "algorithm": "SHA1", + "checksumValue": "3b4e33d47c0608e26b6ae871c6f17ad90b373d54" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-CC6A7DA721C22FEB1C7790083B86485BE62F4E65", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "cb1b86875efc199c92f15ec8eacda965fe5f636392465c4cfaacfaf643305f6c" + }, + { + "algorithm": "SHA1", + "checksumValue": "cc6a7da721c22feb1c7790083b86485be62f4e65" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Configuration.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-378F9B613338528123DAB3A8A06387BF8D4A05B1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d881e17666583e3133f524d631b4777b1d1666299074f2ef429d338e70a9401e" + }, + { + "algorithm": "SHA1", + "checksumValue": "378f9b613338528123dab3a8a06387bf8d4a05b1" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3c786c0b64c0f71eb099960804ca311660046e919925a42841bb3be1a7c547f7" + }, + { + "algorithm": "SHA1", + "checksumValue": "35ea89f23c780b1575b2066db0d59f255971eb3d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.IO.FileSystem.AccessControl.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-32D4A92D76DEA1CAEB25B3AA0515AE0FCC277D15", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "e09130c521554d251e706e1a1c026f4210e848d7c76a4768a5443856afcb869d" + }, + { + "algorithm": "SHA1", + "checksumValue": "32d4a92d76dea1caeb25b3aa0515ae0fcc277d15" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-3D7B4623B6D2C977926245CA18E62B56CFD71ADA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "bcf9fa7016be91642b55cd04dd285e57e0f411088615d909964dacdbac19dd0e" + }, + { + "algorithm": "SHA1", + "checksumValue": "3d7b4623b6d2c977926245ca18e62b56cfd71ada" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x86-native-msalruntime-x86.dll-26052D68A220E9F37A9368BACB54F73F5EEC9ACD", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6be5f612da3c75c28a4bcab6b68c166b7252498cb01b65d65965d2b6d1ccee66" + }, + { + "algorithm": "SHA1", + "checksumValue": "26052d68a220e9f37a9368bacb54f73f5eec9acd" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/runtimes/win-arm64/native/msalruntime_arm64.dll", + "SPDXID": "SPDXRef-File--net472-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d5c764b7c759d4ded84b552375551729bd754be8b55d9ec5ccc1d9ac75fc6509" + }, + { + "algorithm": "SHA1", + "checksumValue": "3f2e251d14303409ee92a72ae340d0f32797874a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-A25754D83B145F2002D8B5F60042E0B23185828D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "18c5988ce64c60ec2ab84eb2309e5b976e9844f74939e066e9c7cac0d2d8e0fc" + }, + { + "algorithm": "SHA1", + "checksumValue": "a25754d83b145f2002d8b5f60042e0b23185828d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Primitives.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-97AEE7B6EE71F83486E1F1FCEDDCEC1BFA920713", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a032e017cc2074057665056ab43c0cb7009361aa6c0d135c985dc51373fac4c4" + }, + { + "algorithm": "SHA1", + "checksumValue": "97aee7b6ee71f83486e1f1fceddcec1bfa920713" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-1E2DA042507433930C43192F1467547E7B540736", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a18958cbd19cdeaba433cdc4422475ec3886a50c01caca58f09b4db69db35c1c" + }, + { + "algorithm": "SHA1", + "checksumValue": "1e2da042507433930c43192f1467547e7b540736" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-75C87DA718FCE8604B436B93334B19E933510B93", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "de0e6c65094fc7a8a93135507d7c1540b0e0ded0226eab68afe1acaf47604916" + }, + { + "algorithm": "SHA1", + "checksumValue": "75c87da718fce8604b436b93334b19e933510b93" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-970F383030BFB9CEAC762BD27C6C6BFC3805BFA7", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "94acd3a93bc404386e7650469175a14c7ebda75fba443545eb431f00431f2909" + }, + { + "algorithm": "SHA1", + "checksumValue": "970f383030bfb9ceac762bd27c6c6bfc3805bfa7" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-F0CAF63174AA6C5C7E4FB89ACFE5509AA348183F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "48228f1f16238ac9d4e0271504eb53d519c648dcc961c6138ab88f2557a005bd" + }, + { + "algorithm": "SHA1", + "checksumValue": "f0caf63174aa6c5c7e4fb89acfe5509aa348183f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "14e403c1b3082085432ca2f1ae0d47c0491bd4cfd3234bc819493a7b4254c971" + }, + { + "algorithm": "SHA1", + "checksumValue": "eb2b86d36ade4e37542f46ac4af2a0e81087e582" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-3DFCB287BE86C6727210CA8E49F182F27C3D006B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "7fe73226748c6ecd7fb87b272320a4a6e2a79dd804f39131c6954f2c5629c3e4" + }, + { + "algorithm": "SHA1", + "checksumValue": "3dfcb287be86c6727210ca8e49f182f27c3d006b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-BF41BE7A3FBF94A3A364E82A7F554B766299675A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "476dd818c1e47dcff2c610f037a4d0efd5024dbe8bd14e09eb4ee8b407cf53dc" + }, + { + "algorithm": "SHA1", + "checksumValue": "bf41be7a3fbf94a3a364e82a7f554b766299675a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Security.AccessControl.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-C37E8BADAD875C1B1D1351DDAF60F40D5CF5D96D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "528f2cdbe00191e04466c95b6fcfd64e6b8960d9e8dd91f08a907411406603d2" + }, + { + "algorithm": "SHA1", + "checksumValue": "c37e8badad875c1b1d1351ddaf60f40d5cf5d96d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Security.Principal.Windows.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Security.Principal.Windows.dll-1C6BC4E9F23295FF0BD3548533E381F311B9C19B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "55697eaeb67c6997ddd92c16cd6bac4d47f2b1263bd69bcd01fa544459fb7ea0" + }, + { + "algorithm": "SHA1", + "checksumValue": "1c6bc4e9f23295ff0bd3548533e381f311b9c19b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Identity.Client.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Identity.Client.dll-2E1F79B0BA029DFB3F3ADE53355AB13E3CDDE06B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0ba6d8700b8430cc72df021adb7d847b2997737711dd5b86e98efd9fe2f748f4" + }, + { + "algorithm": "SHA1", + "checksumValue": "2e1f79b0ba029dfb3f3ade53355ab13e3cdde06b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Rest.ClientRuntime.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-74ABE77CF7A2CD9EDA543DA2B0F13EC41B66B326", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "2248bcefe293bbbdfc82624dc691830c9929f37ee5ebb0a8a60f915e5d69099d" + }, + { + "algorithm": "SHA1", + "checksumValue": "74abe77cf7a2cd9eda543da2b0f13ec41b66b326" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.PowerShell.Module.pdb", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-AE076B4C7317FBCC4FD99B448582170E794EFB34", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1b161793a92a3ba3e3ec9b28f1dbd92714116026adbbab51058ddbdbf619bf68" + }, + { + "algorithm": "SHA1", + "checksumValue": "ae076b4c7317fbcc4fd99b448582170e794efb34" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/OneCollectorChannel.dll", + "SPDXID": "SPDXRef-File--net472-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "02b9bc991c22c83254aa190eaa3cd0cabcbf33f7a12187e5e98ef8c66dde8559" + }, + { + "algorithm": "SHA1", + "checksumValue": "db64576fb1dca60f06b2a4524bc1cde3046ab333" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Memory.dll", + "SPDXID": "SPDXRef-File--net472-System.Memory.dll-38EFB7650125235941F18A6AFA994B6BCBF8A126", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "badfc86389ea07ef70ede33210eea29efeb31bcbd9f6c34aa66f00b96d764101" + }, + { + "algorithm": "SHA1", + "checksumValue": "38efb7650125235941f18a6afa994b6bcbf8a126" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9ca37d8aa1a7345c692856f30fbbb5abf7d15bcb1c06798987c3c9bd7813e971" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d896dd09cd5597248077cf75d7b0f23b5f79eec" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/runtimes/win-x64/native/msalruntime.dll", + "SPDXID": "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "9ca37d8aa1a7345c692856f30fbbb5abf7d15bcb1c06798987c3c9bd7813e971" + }, + { + "algorithm": "SHA1", + "checksumValue": "4d896dd09cd5597248077cf75d7b0f23b5f79eec" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-FBD4C66A7D647627801101BB5E5952EA2682A82D", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "34d25b9ee596fdd5b4515bb2dd5da8fc8a68d19cb7c6f9ea45ce0ea94f1400b1" + }, + { + "algorithm": "SHA1", + "checksumValue": "fbd4c66a7d647627801101bb5e5952ea2682a82d" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "0ab543a64f80c74a0f7f6b5d6c3a10bac1e3d459d155b1577d8b42b04a5991fb" + }, + { + "algorithm": "SHA1", + "checksumValue": "37eed298be541e9888717199b6a6c290cb4f1cc5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.IdentityModel.Logging.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-ED6DD7AB91351309FFE9EE1BDFAC4E85E1AF4698", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d0564435f400e298cf8613b589ea9622da3f087e9f050c9fc81dd326aefd714c" + }, + { + "algorithm": "SHA1", + "checksumValue": "ed6dd7ab91351309ffe9ee1bdfac4e85e1af4698" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-151FE8CE0B4594B78184D8BC5432860EA629A03C", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ed22d4475dcc6cdd75fe4def9344206ae288ee3613e5a40955a04e3688e7d9b3" + }, + { + "algorithm": "SHA1", + "checksumValue": "151fe8ce0b4594b78184d8bc5432860ea629a03c" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Web.WebView2.Core.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d253b4fcf246561878d64a4bedbe8db1d1b733bd30b0ca8a19dd18f4610afaff" + }, + { + "algorithm": "SHA1", + "checksumValue": "83efc5eb7ef030c0fd97d30280196fa8db7a2cae" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-EF874D772069AC284BA293697664622E64170DBF", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3be13ed666612440ca6745952388594ef911a06b55ca24ed3fea1a7fe7707ed6" + }, + { + "algorithm": "SHA1", + "checksumValue": "ef874d772069ac284ba293697664622e64170dbf" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d5c764b7c759d4ded84b552375551729bd754be8b55d9ec5ccc1d9ac75fc6509" + }, + { + "algorithm": "SHA1", + "checksumValue": "3f2e251d14303409ee92a72ae340d0f32797874a" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll", + "SPDXID": "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-3E74DA17753E821EF5AAE6BFEFAADB035BCAEF6B", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "c05d847947f17e8dc08288fe4656444cfb81b96bb4a37277d1ba6fd63903187c" + }, + { + "algorithm": "SHA1", + "checksumValue": "3e74da17753e821ef5aae6bfefaadb035bcaef6b" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./en-US/MicrosoftTeams-help.xml", + "SPDXID": "SPDXRef-File--en-US-MicrosoftTeams-help.xml-6D89F3274A55AB62E3AB0B2AC9A20739643BBCBE", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "804880e3e6cedf24ec1b4f4e6bcdaeb8f578bd1fa2faf8ffbf45b2da6a59c559" + }, + { + "algorithm": "SHA1", + "checksumValue": "6d89f3274a55ab62e3ab0b2ac9a20739643bbcbe" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Azure.KeyVault.Core.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-A14CEEF9ED164364F0E4D7E55A18F4D31CFCA4B3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "51bc23e9944a5a8b14ea9778713065ffe090439a67c850e5e4deffc36f8e3d9a" + }, + { + "algorithm": "SHA1", + "checksumValue": "a14ceef9ed164364f0e4d7e55a18f4d31cfca4b3" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Extensions.Logging.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "d67870aeb4c480d5c7feed71e40dbcfd207d15269ad6bb71643a9e8dc66993db" + }, + { + "algorithm": "SHA1", + "checksumValue": "473dd93c24a86081d72eb2907a81dbe77989e072" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.IdentityModel.Abstractions.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-A212A6AB27FAC32F1D8FD7EE29C88E580F98B9DA", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "73b7c8d51042e852801456d1c69fafe7120868e9764023b04683845674c59f2e" + }, + { + "algorithm": "SHA1", + "checksumValue": "a212a6ab27fac32f1d8fd7ee29c88e580f98b9da" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-AFE595802B070E7650F0E04F954C871401F7A9B9", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6d6ca15658871fa82ce18c12b82213fb06941b1b27d29f7bd2b542a12daa6702" + }, + { + "algorithm": "SHA1", + "checksumValue": "afe595802b070e7650f0e04f954c871401f7a9b9" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/Microsoft.TeamsCmdlets.PowerShell.Connect.dll", + "SPDXID": "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-1864C10656CB87F8BEDD21C31AFEE920D8C79F62", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "3a1128914317f95ed7d466b515f3a2cf83d8a1b4d4de09f064b2531fa4eec4f1" + }, + { + "algorithm": "SHA1", + "checksumValue": "1864c10656cb87f8bedd21c31afee920d8c79f62" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Buffers.dll", + "SPDXID": "SPDXRef-File--net472-System.Buffers.dll-4ADAD327F7966812A2D4E6E0DF6700DCE90D9203", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "f4487985145c63d97161e6d63a55d30f512a1edbc1dd791369ee89aec126f09a" + }, + { + "algorithm": "SHA1", + "checksumValue": "4adad327f7966812a2d4e6e0df6700dce90d9203" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./net472/System.Security.AccessControl.dll", + "SPDXID": "SPDXRef-File--net472-System.Security.AccessControl.dll-F62A4919CC8B15281D35357041B164B88D95B053", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ed4801e0a5c04badc091f66f49f969f06c57dab7f14ed665295bca121b680634" + }, + { + "algorithm": "SHA1", + "checksumValue": "f62a4919cc8b15281d35357041b164b88d95b053" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.ApplicationInsights.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-F5557B0BCCE6B5D6B0D4821A34FE7EA37095DA1F", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "66530079f19f93685c42a0db9513b56cf2992bb32bd0ac50610a39f5ef69998b" + }, + { + "algorithm": "SHA1", + "checksumValue": "f5557b0bcce6b5d6b0d4821a34fe7ea37095da1f" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Extensions.Configuration.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-B674B5BEB662BA07143DC3F659376A833DE3B307", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ea3135eefa4db734fc127cd55f9173ccd3b2e94b420018b66e7be62a2ad4517d" + }, + { + "algorithm": "SHA1", + "checksumValue": "b674b5beb662ba07143dc3f659376a833de3b307" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Identity.Client.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-86DD428AFC26F53C46E0DBEBB9418CFD119BB0C2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "ad98e90b4d3b500ddf28ebe942d602a232e77af619ef7c596db2281ba5d08cac" + }, + { + "algorithm": "SHA1", + "checksumValue": "86dd428afc26f53c46e0dbebb9418cfd119bb0c2" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-D8FEB8261C16FB4D543DDC73EB653E6D8ECBC0E5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "adf0277056c72cf8e1ead97b36613282c775108f309b8435c8d5c323f38f9747" + }, + { + "algorithm": "SHA1", + "checksumValue": "d8feb8261c16fb4d543ddc73eb653e6d8ecbc0e5" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-328751D7D0346D5EC70041B8D24E612BEAE1F07C", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "b81725e14212a8e14909442d047e452051186e4239315fec5da0415af99272df" + }, + { + "algorithm": "SHA1", + "checksumValue": "328751d7d0346d5ec70041b8d24e612beae1f07c" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/Newtonsoft.Json.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-85B414A60C00D1ED5755F7F9D50ADDBE348A3614", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "5b934141b35a4dc966ef0c25159c90b88e289164dbbc01103244a5099741eb12" + }, + { + "algorithm": "SHA1", + "checksumValue": "85b414a60c00d1ed5755f7f9d50addbe348a3614" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./netcoreapp3.1/System.Management.dll", + "SPDXID": "SPDXRef-File--netcoreapp3.1-System.Management.dll-07309D9DA1C5F7B5F50C73438067CF0083D64DC7", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "a6f0440c16310aa8bfd4970bc29612287e6a3a7d707d7b48c5b6442719e8c64c" + }, + { + "algorithm": "SHA1", + "checksumValue": "07309d9da1c5f7b5f50c73438067cf0083d64dc7" + } + ], + "licenseConcluded": "NOASSERTION", + "licenseInfoInFiles": [ + "NOASSERTION" + ], + "copyrightText": "NOASSERTION" + } + ], + "packages": [ + { + "name": "Microsoft.Skype.Security.Lorenz", + "SPDXID": "SPDXRef-Package-CE645B91D1E102C5ADFA2FE9FA88293752E1ED47F685D9D5DC5E03075280E0E3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "0.2.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Skype.Security.Lorenz@0.2.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Azure Pipelines Hosted Image win22", + "SPDXID": "SPDXRef-Package-87DBC129E46E77857F5ECA3AB3A5EB8B516E2E67F885F6BB6243D1CA004FB440", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "20250831.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "https://github.com/actions/virtual-environments" + } + ], + "supplier": "Organization: Microsoft/GitHub" + }, + { + "name": "Microsoft.Teams.PowerShell.Connect", + "SPDXID": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.7.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Connect@1.7.4" + } + ], + "supplier": "Organization: Skype Admin Tenant Interfaces team" + }, + { + "name": "Microsoft.Teams.PowerShell.Module", + "SPDXID": "SPDXRef-Package-73F10AFE7A15AD6A85D18E5BEF5166AF2CCCC9AAF7E7C46F8AC2C216AE865D01", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "7.4.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.Module@7.4.0" + } + ], + "supplier": "Organization: Microsoft Corporation" + }, + { + "name": "Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest", + "SPDXID": "SPDXRef-Package-C3272C18BDE138977A4F6A28245A4662BEE080BD471EC1BC9C740232B877DC5F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "21.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Ic3.AdminConfig.RP.Policy.FunctionalTest@21.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "MSTest.TestAdapter", + "SPDXID": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "ServiceTopology", + "SPDXID": "SPDXRef-Package-51859863AD2341A201A718E83102C31AD33750C7FDCCCABDA897001A4B4ADAC1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/ServiceTopology@1.0.0" + } + ], + "supplier": "Organization: ServiceTopology" + }, + { + "name": "office-cmdlet-updater", + "SPDXID": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/office-cmdlet-updater@1.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "MSTest.TestFramework", + "SPDXID": "SPDXRef-Package-B7D63C69227797DAB4E0B488D700205A02ABA2C1D1A6841FF891E5F417797B09", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.DiagnosticSource", + "SPDXID": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "9.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@9.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Newtonsoft.Json", + "SPDXID": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "13.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "MSTest.TestAdapter", + "SPDXID": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/MSTest.TestAdapter@2.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.Abstractions", + "SPDXID": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.2.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@8.2.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client", + "SPDXID": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.70.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client@4.70.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "coverlet.collector", + "SPDXID": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/coverlet.collector@1.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Moq", + "SPDXID": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.28", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Moq@4.5.28" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NET.Test.Sdk", + "SPDXID": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "16.2.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NET.Test.Sdk@16.2.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "NuGet.CommandLine", + "SPDXID": "SPDXRef-Package-33B1D8F98040445C1C019996980972FB5A3DA85A789108E0440ED021F416AB88", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.11.6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/NuGet.CommandLine@5.11.6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "MSTest.TestFramework", + "SPDXID": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/MSTest.TestFramework@2.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Castle.Core", + "SPDXID": "SPDXRef-Package-4EC77DE72DF7856001C57E24CCB11F437B92DC6132B2272D5765CC62E1851102", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.3.3", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Castle.Core@3.3.3" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client.Desktop", + "SPDXID": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.70.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Desktop@4.70.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.CodeCoverage", + "SPDXID": "SPDXRef-Package-288304B4D65CA653A9F91AEEED832C8EDBDE12D62998B237EDD814A65B0F11CE", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "16.2.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.CodeCoverage@16.2.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Serialization.Primitives", + "SPDXID": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.PowerShell.Native", + "SPDXID": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.2.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.PowerShell.Native@6.2.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Configuration.ConfigurationManager", + "SPDXID": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Configuration.ConfigurationManager@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging.Abstractions", + "SPDXID": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@1.1.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Applications.Events.Server", + "SPDXID": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.2.97", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Applications.Events.Server@1.1.2.97" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO", + "SPDXID": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Data.Sqlite", + "SPDXID": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Data.Sqlite@1.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IdentityModel.Tokens.Jwt", + "SPDXID": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.8.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IdentityModel.Tokens.Jwt@6.8.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.ThreadPool", + "SPDXID": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.ThreadPool@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Extensions", + "SPDXID": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Polly", + "SPDXID": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "7.2.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Polly@7.2.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.ValueTuple", + "SPDXID": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.ValueTuple@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "NETStandard.Library", + "SPDXID": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.6.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/NETStandard.Library@1.6.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client.NativeInterop", + "SPDXID": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "0.18.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.NativeInterop@0.18.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.Tracing", + "SPDXID": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.Tracing@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Emit.Lightweight", + "SPDXID": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Emit.Lightweight@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Resources.ResourceManager", + "SPDXID": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Resources.ResourceManager@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Web.WebView2", + "SPDXID": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.864.35", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Web.WebView2@1.0.864.35" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Extensions", + "SPDXID": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.XPath", + "SPDXID": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.XPath@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Memory", + "SPDXID": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.5", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Memory@4.5.5" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System.IO.Compression", + "SPDXID": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System.IO.Compression@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Encoding.Extensions", + "SPDXID": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Encoding.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Serialization.Xml", + "SPDXID": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Serialization.Xml@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", + "SPDXID": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Management.Automation", + "SPDXID": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.2.7", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Management.Automation@6.2.7" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection", + "SPDXID": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Encoding.CodePages", + "SPDXID": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Encoding.CodePages@4.5.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Azure.KeyVault.AzureServiceDeploy", + "SPDXID": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.AzureServiceDeploy@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.InteropServices.RuntimeInformation", + "SPDXID": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.InteropServices.RuntimeInformation@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration.Abstractions", + "SPDXID": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.Policy.Administration.Configurations", + "SPDXID": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "12.2.29", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Configurations@12.2.29" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Numerics.Vectors", + "SPDXID": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Numerics.Vectors@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.XmlDocument", + "SPDXID": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.XmlDocument@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Management.Infrastructure", + "SPDXID": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Management.Infrastructure@1.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Data.Common", + "SPDXID": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Data.Common@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.CSharp", + "SPDXID": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.CSharp@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.CompilerServices.Unsafe", + "SPDXID": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.Unsafe@6.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.X509Certificates", + "SPDXID": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.X509Certificates@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Azure.KeyVault.Core", + "SPDXID": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Core@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.Platforms", + "SPDXID": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@1.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Cng", + "SPDXID": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Cng@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.Logging", + "SPDXID": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.8.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Logging@6.8.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Globalization", + "SPDXID": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Globalization@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Http", + "SPDXID": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Http@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging", + "SPDXID": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging@1.1.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Buffers", + "SPDXID": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Buffers@4.5.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.AspNetCore.App.Ref", + "SPDXID": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.10", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.AspNetCore.App.Ref@3.1.10" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.DirectoryServices", + "SPDXID": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.DirectoryServices@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System.Net.Http", + "SPDXID": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System.Net.Http@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.CompilerServices.VisualC", + "SPDXID": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.CompilerServices.VisualC@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.ComponentModel", + "SPDXID": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.ComponentModel@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.AccessControl", + "SPDXID": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.AccessControl@5.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.Tools", + "SPDXID": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.Tools@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Collections.Concurrent", + "SPDXID": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Collections.Concurrent@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Azure.KeyVault.Cryptography", + "SPDXID": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Cryptography@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.RegularExpressions", + "SPDXID": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.Compression", + "SPDXID": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.Compression@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Linq.Expressions", + "SPDXID": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Linq.Expressions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "NuGet.Build.Tasks.Pack", + "SPDXID": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.2.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/NuGet.Build.Tasks.Pack@5.2.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.Abstractions", + "SPDXID": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.35.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Abstractions@6.35.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading", + "SPDXID": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.Tokens", + "SPDXID": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.8.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.Tokens@6.8.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.InteropServices", + "SPDXID": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.InteropServices@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.ProtectedData", + "SPDXID": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "7.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.ProtectedData@7.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.TypeExtensions", + "SPDXID": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.TypeExtensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.FileSystem.Primitives", + "SPDXID": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.FileSystem.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Management.Automation", + "SPDXID": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Management.Automation@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Globalization.Extensions", + "SPDXID": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Globalization.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "PowerShellStandard.Library", + "SPDXID": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/PowerShellStandard.Library@5.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.FileSystem.AccessControl", + "SPDXID": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.FileSystem.AccessControl@5.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.DiagnosticSource", + "SPDXID": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.DiagnosticSource@6.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "OneCollectorChannel", + "SPDXID": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.0.234", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/OneCollectorChannel@1.1.0.234" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.FileSystem", + "SPDXID": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.FileSystem@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.SecureString", + "SPDXID": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.SecureString@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "SQLite", + "SPDXID": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.13.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/SQLite@3.13.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Win32.Registry.AccessControl", + "SPDXID": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry.AccessControl@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Sockets", + "SPDXID": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Sockets@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.ReaderWriter", + "SPDXID": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.ReaderWriter@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client.Extensions.Msal", + "SPDXID": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.70.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Extensions.Msal@4.70.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Azure.KeyVault.Jose", + "SPDXID": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Azure.KeyVault.Jose@3.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.WebHeaderCollection", + "SPDXID": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.WebHeaderCollection@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Rest.ClientRuntime", + "SPDXID": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.3.21", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime@2.3.21" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Win32.Registry", + "SPDXID": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Win32.Registry@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime", + "SPDXID": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.XDocument", + "SPDXID": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.XDocument@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Globalization.Calendars", + "SPDXID": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Globalization.Calendars@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Primitives", + "SPDXID": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Polly.Contrib.WaitAndRetry", + "SPDXID": "SPDXRef-Package-65F3BB807AF49E7AD397E2DCDE7E8152B0F742044FF2ABFB7B8136F4D77F3E3D", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Polly.Contrib.WaitAndRetry@1.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Numerics", + "SPDXID": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Numerics@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Metadata", + "SPDXID": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.4.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Metadata@1.4.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.WindowsDesktop.App.Ref", + "SPDXID": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.WindowsDesktop.App.Ref@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Private.DataContractSerialization", + "SPDXID": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Private.DataContractSerialization@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "SPDXID": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@1.1.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime", + "SPDXID": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime@4.3.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Management", + "SPDXID": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Management@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Ic3.TenantAdminApi.Common.Helper", + "SPDXID": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.0.28", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Ic3.TenantAdminApi.Common.Helper@1.0.28" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Permissions", + "SPDXID": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Permissions@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.Targets", + "SPDXID": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Newtonsoft.Json", + "SPDXID": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "13.0.3", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Newtonsoft.Json@13.0.3" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.Timer", + "SPDXID": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.Timer@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.ObjectModel", + "SPDXID": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.ObjectModel@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.StackTrace", + "SPDXID": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.StackTrace@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.PowerShell.CoreCLR.Eventing", + "SPDXID": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.2.7", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.PowerShell.CoreCLR.Eventing@6.2.7" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Win32.Primitives", + "SPDXID": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Win32.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Pkcs", + "SPDXID": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Pkcs@4.5.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Emit", + "SPDXID": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Emit@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Collections", + "SPDXID": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Collections@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.CodeDom", + "SPDXID": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.CodeDom@4.5.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Reflection.Emit.ILGeneration", + "SPDXID": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Reflection.Emit.ILGeneration@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Encoding", + "SPDXID": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Encoding@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Http", + "SPDXID": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Http@4.3.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.Policy.Administration.Cmdlets.OCE", + "SPDXID": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "0.1.12", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration.Cmdlets.OCE@0.1.12" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.Tasks", + "SPDXID": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.Tasks@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Encoding", + "SPDXID": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Encoding@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.AppContext", + "SPDXID": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.AppContext@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Newtonsoft.Json.Schema", + "SPDXID": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.11", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Newtonsoft.Json.Schema@3.0.11" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Identity.Client.Broker", + "SPDXID": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.70.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Identity.Client.Broker@4.70.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.ConfigAPI.CmdletHostContract", + "SPDXID": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.2.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.CmdletHostContract@3.2.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Primitives", + "SPDXID": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Primitives", + "SPDXID": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Rest.ClientRuntime.Azure", + "SPDXID": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.3.19", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Rest.ClientRuntime.Azure@3.3.19" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging.Configuration", + "SPDXID": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Configuration@8.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.ApplicationInsights", + "SPDXID": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.9.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.ApplicationInsights@2.9.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.ConfigAPI.Cmdlets", + "SPDXID": "SPDXRef-Package-C4075941FB03650FDCD59B46A8581619ADCD07F99EFE70194DBA9592C3E1FA26", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.925.3", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.ConfigAPI.Cmdlets@8.925.3" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.Platforms", + "SPDXID": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Platforms@5.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Collections.Immutable", + "SPDXID": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Collections.Immutable@1.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.RegularExpressions", + "SPDXID": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.RegularExpressions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.DependencyInjection.Abstractions", + "SPDXID": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection.Abstractions@8.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator.M365", + "SPDXID": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.13.3069.1548", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.M365@6.13.3069.1548" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Primitives", + "SPDXID": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.0.11", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Primitives@4.0.11" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Primitives", + "SPDXID": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Primitives@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IC3.IaC.ServiceTopology", + "SPDXID": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.38.0-beta0.dev6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IC3.IaC.ServiceTopology@1.38.0-beta0.dev6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System.Security.Cryptography.Apple", + "SPDXID": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System.Security.Cryptography.Apple@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Runtime.Handles", + "SPDXID": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Runtime.Handles@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "NJsonSchema", + "SPDXID": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "10.6.6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/NJsonSchema@10.6.6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IC3.Resilience.ResilientAKV", + "SPDXID": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.38.0-beta0.dev6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IC3.Resilience.ResilientAKV@1.38.0-beta0.dev6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Ev2.PipeGen", + "SPDXID": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.9.3116.14", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Ev2.PipeGen@3.9.3116.14" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging.Abstractions", + "SPDXID": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Abstractions@8.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Options", + "SPDXID": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Options@8.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IC3.IaC.ServiceTopologyDataConnector", + "SPDXID": "SPDXRef-Package-87282A7A87A76DE572F9692A8F47DBB1F03CF570E45C9FC0B0310E8D6478FE19", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.38.0-beta0.dev6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IC3.IaC.ServiceTopologyDataConnector@1.38.0-beta0.dev6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "FluentValidation", + "SPDXID": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.6.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/FluentValidation@8.6.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.M365.ConfigManagement.SAGE", + "SPDXID": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.0.3", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.M365.ConfigManagement.SAGE@3.0.3" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Algorithms", + "SPDXID": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Algorithms@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.IO.Compression.ZipFile", + "SPDXID": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.IO.Compression.ZipFile@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator.Stubs", + "SPDXID": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.13.3069.1548", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.Stubs@6.13.3069.1548" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging", + "SPDXID": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging@8.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator.Arm", + "SPDXID": "SPDXRef-Package-A55FFA0033D6824E362612DD7487681403BD255B228F8228120800797DDBF595", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.13.3069.1548", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.Arm@6.13.3069.1548" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Buffers", + "SPDXID": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Buffers@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "YamlDotNet", + "SPDXID": "SPDXRef-Package-E9A7D272BEB1E5E7E2F201094675F616632FBFBDCBC919F56E63E2050698EFEA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "16.2.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/YamlDotNet@16.2.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator", + "SPDXID": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.13.3069.1548", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator@6.13.3069.1548" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.Tasks.Extensions", + "SPDXID": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.Tasks.Extensions@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration", + "SPDXID": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Xml.XmlSerializer", + "SPDXID": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Xml.XmlSerializer@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.DependencyInjection", + "SPDXID": "SPDXRef-Package-50552D21DF380D2099AFC1BBDC3E90D648B6A631AC6A5912BB03D103DBD4C61F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.DependencyInjection@8.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Primitives", + "SPDXID": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Primitives@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.Targets", + "SPDXID": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.Targets@1.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Principal.Windows", + "SPDXID": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Principal.Windows@5.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.Policy.Administration", + "SPDXID": "SPDXRef-Package-D558AFB2CAD0E7DBCD0E628F69A6F76A18AEF3F674D04B5206B53D08F9C8FCFB", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "21.4.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.Policy.Administration@21.4.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Options.ConfigurationExtensions", + "SPDXID": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Options.ConfigurationExtensions@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Net.Requests", + "SPDXID": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Net.Requests@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.native.System", + "SPDXID": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.native.System@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Logging.Console", + "SPDXID": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Logging.Console@8.0.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration.Abstractions", + "SPDXID": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Abstractions@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Teams.PowerShell.TeamsCmdlets", + "SPDXID": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.5.6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Teams.PowerShell.TeamsCmdlets@1.5.6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.ProtectedData", + "SPDXID": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.ProtectedData@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "EV2.ArtifactsGenerator.Arm.CodeGen", + "SPDXID": "SPDXRef-Package-19657174A611A55D249468976305B5C48B4BCB2F4799785E382B139741337943", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "7.0.2775.279", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/EV2.ArtifactsGenerator.Arm.CodeGen@7.0.2775.279" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.OpenSsl@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IC3.Resilience.ResilientATM", + "SPDXID": "SPDXRef-Package-4E51A8116E7C39A9C87837BD3B1C17B8322CEA23323DD29B2E41173CD8E4D5B7", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "1.38.0-beta0.dev6", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IC3.Resilience.ResilientATM@1.38.0-beta0.dev6" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.ComponentModel.Annotations", + "SPDXID": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.4.1", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.ComponentModel.Annotations@4.4.1" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.IdentityModel.JsonWebTokens", + "SPDXID": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "6.8.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.IdentityModel.JsonWebTokens@6.8.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Encodings.Web", + "SPDXID": "SPDXRef-Package-D595C7CA243D238A94C6D0F9277EB98AE42EDA370259D4615A58E5BE78BAD562", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Encodings.Web@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Namotion.Reflection", + "SPDXID": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "2.0.9", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Namotion.Reflection@2.0.9" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Threading.Thread", + "SPDXID": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Threading.Thread@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.NETCore.App.Ref", + "SPDXID": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.NETCore.App.Ref@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.Debug", + "SPDXID": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.Debug@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Security.Cryptography.Csp", + "SPDXID": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Security.Cryptography.Csp@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Linq", + "SPDXID": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Linq@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Memory", + "SPDXID": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.5.4", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Memory@4.5.4" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "SPDXID": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Configuration.ConfigurationManager", + "SPDXID": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Configuration.ConfigurationManager@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Console", + "SPDXID": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Console@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Castle.Core", + "SPDXID": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "5.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Castle.Core@5.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "ncrontab.signed", + "SPDXID": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/ncrontab.signed@3.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration", + "SPDXID": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "3.1.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration@3.1.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Text.Json", + "SPDXID": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.5", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Text.Json@8.0.5" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Dynamic.Runtime", + "SPDXID": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Dynamic.Runtime@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.Extensions.Configuration.Binder", + "SPDXID": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.2", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.Extensions.Configuration.Binder@8.0.2" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "Microsoft.CSharp", + "SPDXID": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "4.3.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/Microsoft.CSharp@4.3.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "System.Diagnostics.EventLog", + "SPDXID": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "8.0.0", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:nuget/System.Diagnostics.EventLog@8.0.0" + } + ], + "supplier": "NOASSERTION" + }, + { + "name": "infrastructure_itpro_teamspowershellmodule", + "SPDXID": "SPDXRef-RootPackage", + "downloadLocation": "NOASSERTION", + "packageVerificationCode": { + "packageVerificationCodeValue": "e0976f46eed5b66272e5ccaa96c512125456c77b" + }, + "filesAnalyzed": true, + "licenseConcluded": "NOASSERTION", + "licenseInfoFromFiles": [ + "NOASSERTION" + ], + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "versionInfo": "72855948", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:swid/Microsoft/sbom.microsoft/infrastructure_itpro_teamspowershellmodule@72855948?tag_id=3d0b5a6e-cb38-49a0-b29f-af0f90a5ff5c" + } + ], + "supplier": "Organization: Microsoft", + "hasFiles": [ + "SPDXRef-File--netcoreapp3.1-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", + "SPDXRef-File--netcoreapp3.1-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.dll-328751D7D0346D5EC70041B8D24E612BEAE1F07C", + "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.dll-D8FEB8261C16FB4D543DDC73EB653E6D8ECBC0E5", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.dll-86DD428AFC26F53C46E0DBEBB9418CFD119BB0C2", + "SPDXRef-File--netcoreapp3.1-Microsoft.ApplicationInsights.dll-F5557B0BCCE6B5D6B0D4821A34FE7EA37095DA1F", + "SPDXRef-File--net472-System.Buffers.dll-4ADAD327F7966812A2D4E6E0DF6700DCE90D9203", + "SPDXRef-File--net472-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-1864C10656CB87F8BEDD21C31AFEE920D8C79F62", + "SPDXRef-File--net472-Microsoft.IdentityModel.Abstractions.dll-A212A6AB27FAC32F1D8FD7EE29C88E580F98B9DA", + "SPDXRef-File--net472-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", + "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Core.dll-A14CEEF9ED164364F0E4D7E55A18F4D31CFCA4B3", + "SPDXRef-File--netcoreapp3.1-System.Security.AccessControl.dll-C37E8BADAD875C1B1D1351DDAF60F40D5CF5D96D", + "SPDXRef-File--netcoreapp3.1-System.Runtime.CompilerServices.Unsafe.dll-99E811FB4338B59A38E10E5790B9F665158FACCA", + "SPDXRef-File--netcoreapp3.1-System.IdentityModel.Tokens.Jwt.dll-EF874D772069AC284BA293697664622E64170DBF", + "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Logging.dll-ED6DD7AB91351309FFE9EE1BDFAC4E85E1AF4698", + "SPDXRef-File--netcoreapp3.1-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", + "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Jose.dll-FBD4C66A7D647627801101BB5E5952EA2682A82D", + "SPDXRef-File--net472-runtimes-win-x64-native-msalruntime.dll-4D896DD09CD5597248077CF75D7B0F23B5F79EEC", + "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.pdb-AE076B4C7317FBCC4FD99B448582170E794EFB34", + "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.dll-74ABE77CF7A2CD9EDA543DA2B0F13EC41B66B326", + "SPDXRef-File--netcoreapp3.1-System.Security.Principal.Windows.dll-1C6BC4E9F23295FF0BD3548533E381F311B9C19B", + "SPDXRef-File--netcoreapp3.1-System.Diagnostics.DiagnosticSource.dll-BF41BE7A3FBF94A3A364E82A7F554B766299675A", + "SPDXRef-File--netcoreapp3.1-runtimes-win-x86-native-msalruntime-x86.dll-26052D68A220E9F37A9368BACB54F73F5EEC9ACD", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.NativeInterop.dll-3D7B4623B6D2C977926245CA18E62B56CFD71ADA", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", + "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Tokens.dll-CAD68BAE9B1A3B1DB3DBC4D80F403E0CD152B0BE", + "SPDXRef-File--net472-Microsoft.Web.WebView2.WinForms.dll-5170D70FD93BFF35EEB85C330C9AEABC9F8CA3B8", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-F36BD5E7284A5D5FCA8641A61FE121503F672441", + "SPDXRef-File--en-US-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml-8BCEFDA393D3F235296BFE9C300E9F0F024D76D9", + "SPDXRef-File--net472-Microsoft.IdentityModel.Logging.dll-636BFD185EF171BFCEA938D30DEE7C496CB8DE5F", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.pdb-0D4A3F7CE6D8EC4D0E39617E91AE19F5E950E36C", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", + "SPDXRef-File--net472-Microsoft.Extensions.Configuration.dll-378F9B613338528123DAB3A8A06387BF8D4A05B1", + "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-3B4E33D47C0608E26B6AE871C6F17AD90B373D54", + "SPDXRef-File--net472-System.Security.Principal.Windows.dll-8CBBBFE9705845C66E2E677E4077F4F50A794AAC", + "SPDXRef-File--netcoreapp3.1-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", + "SPDXRef-File--net472-System.Diagnostics.DiagnosticSource.dll-BB1ECBBB6CB7498AD99B15ED2A0ED4080ECC2624", + "SPDXRef-File--net472-Microsoft.Extensions.Primitives.dll-7CCB6B0AE1BE62E3111E575AD5D98D36E00695C5", + "SPDXRef-File--netcoreapp3.1-Microsoft.Rest.ClientRuntime.Azure.dll-465A18651303F41BEC9371C24DDDF788E7E73C95", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Desktop.dll-6F84B6E012BAFF57A4653E61727CABA01EA53C43", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.Abstractions.dll-C74ADA74AB08D0A7C7FC30E62C8ADA166348F348", + "SPDXRef-File--net472-Microsoft.IdentityModel.Tokens.dll-786A002F9A95D3A31FA7B5632AF548BD1ABE5719", + "SPDXRef-File--SfbRpsModule.format.ps1xml-95C93BA2237F52307E16FD0011B73A8A17198988", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml-0031CFCDA71FB7B73ED2BCA2DDAD351018824C28", + "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Core.dll-CCDE9D64C0DAA1FB6F941E56E3A27909CE3FCF26", + "SPDXRef-File--net472-Microsoft.Web.WebView2.Wpf.dll-01489D64D3B9A1C6A8A0B7E0631B2B9BDD6173ED", + "SPDXRef-File--netcoreapp3.1-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "SPDXRef-File--net472-System.Runtime.CompilerServices.Unsafe.dll-4D6EA8EA4CEFD6236BDAE18A9714C415CE9E8E80", + "SPDXRef-File--custom-CmdletConfig.json-50F9EB97C3280FCB17FE7A71ED3B07B7CC8E2A4A", + "SPDXRef-File--net472-System.Management.Automation.dll-DF8EA78867A1F793EF49C71021B9B08B59B22B2E", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-E78625F5200A1A718EBB5B704C14E3FFADFA00B4", + "SPDXRef-File--net472-Newtonsoft.Json.dll-4D4776CD97BB5000F70D8847BFF3E83C9D485329", + "SPDXRef-File--net472-Microsoft.Identity.Client.Broker.dll-D95D3FA029242D0F219083345D3D6F6C3FBFBE05", + "SPDXRef-File--net472-Polly.Contrib.WaitAndRetry.dll-BA74DF33836959F34518B64921D3A3F95D481BC1", + "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "SPDXRef-File--net472-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-2598CBE499A5C56E7EB9715E1BF6F19ECBCFDA02", + "SPDXRef-File--net472-CmdletSettings.json-98919B572DB8494892B52408CD0FE23531388E32", + "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-98FB01D72EBCC9822A8F2D2B371A67F5EB68FFD9", + "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml-DBFCA41EABFFE3B81453F66B9C37667D5CD777B6", + "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json-796CAF23506427ABFD0CBB113FDCC1D690D70890", + "SPDXRef-File--net472-Microsoft.Data.Sqlite.dll-C1C86EBD194F15E1B21368632ADE968F775F0F37", + "SPDXRef-File--internal-Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1-37C5B051DBA7F642F313F10B87F53660153EB0B0", + "SPDXRef-File--custom-Merged-custom-PsExt.ps1-1236406BE9FE7B860E27990A63905951D267C513", + "SPDXRef-File--net472-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", + "SPDXRef-File--bin-System.IdentityModel.Tokens.Jwt.dll-3A24CC14199BFC426F29EF91DE9EF8614248CE87", + "SPDXRef-File--net472-Microsoft.Identity.Client.NativeInterop.dll-3C40B6CE463B6BBAACA4AEA0A2DE8B0BE9CFEA3D", + "SPDXRef-File--net472-Microsoft.Extensions.Configuration.Abstractions.dll-4D43E8350E71147AD6970E9F0DE4782470A76A0D", + "SPDXRef-File--net472-Microsoft.Azure.KeyVault.AzureServiceDeploy.dll-B68459369627DCCF555526C5B1385DB735A6B596", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.psd1-CAA75251D6858155BFB20A66AB60474F844BE319", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml-AF55F0C8AE06AF16DA52F63F8DD7CE43689A71A2", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml-4C798B7AC19201899CBF18D0D9BC4145D5C0DCE1", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml-8FE74E08BC9D801BDD0E388AB369EE06C0CF45EF", + "SPDXRef-File--netcoreapp3.1-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-970F383030BFB9CEAC762BD27C6C6BFC3805BFA7", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-75C87DA718FCE8604B436B93334B19E933510B93", + "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.JsonWebTokens.dll-1E2DA042507433930C43192F1467547E7B540736", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Primitives.dll-97AEE7B6EE71F83486E1F1FCEDDCEC1BFA920713", + "SPDXRef-File--netcoreapp3.1-Microsoft.Azure.KeyVault.Cryptography.dll-A25754D83B145F2002D8B5F60042E0B23185828D", + "SPDXRef-File--net472-runtimes-win-arm64-native-msalruntime-arm64.dll-3F2E251D14303409EE92A72AE340D0F32797874A", + "SPDXRef-File--netcoreapp3.1-System.IO.FileSystem.AccessControl.dll-32D4A92D76DEA1CAEB25B3AA0515AE0FCC277D15", + "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.WinForms.dll-CC6A7DA721C22FEB1C7790083B86485BE62F4E65", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.dll-B92B8AA4660C723AFF249CB777A49B3C4DB2F6AF", + "SPDXRef-File--internal-Merged-internal.ps1-E61D882264080326303E91B96F3D947BC4CE44D5", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Broker.dll-BC752E36771DD07FE8844E846F5FBF63EF3F688F", + "SPDXRef-File--netcoreapp3.1-Microsoft.Data.Sqlite.dll-B0A60E1148FB6EA35B8E807976E8C59561308280", + "SPDXRef-File--netcoreapp3.1-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", + "SPDXRef-File--net472-runtimes-win-x86-native-msalruntime-x86.dll-26052D68A220E9F37A9368BACB54F73F5EEC9ACD", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", + "SPDXRef-File--netcoreapp3.1-Microsoft.Applications.Events.Server.dll-8784D6C77EFA3361390F5BA5F5F56A62434A4A35", + "SPDXRef-File--netcoreapp3.1-System.Security.Cryptography.ProtectedData.dll-C4C40D89C47D7FDE0B4CB5FBDC4E0DE650B843C4", + "SPDXRef-File--netcoreapp3.1-Polly.dll-B4A339D19EBAB0CF38FEC6BC92386A3B84CDFCBA", + "SPDXRef-File--net472-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", + "SPDXRef-File--netcoreapp3.1-System.Management.Automation.dll-A99AAEE15D9D52519310409F2D40C3FFA58C5868", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-23C4DE58B7ADF208D7FD5707E1641C1470D5298A", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll-75691941EA0487A403C0F0A61CEBD63306A574DF", + "SPDXRef-File--net472-Microsoft.IdentityModel.JsonWebTokens.dll-B843B060F4CA7284C5598E05F71A16F0DC8C0E94", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.deps.json-C4B88E80F962180082211BFFE828518C999D28AC", + "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Cryptography.dll-AA228C30A6E65B7C339BE70888E598F15384C7A6", + "SPDXRef-File--exports-ProxyCmdletDefinitionsWithHelp.ps1-B55EA4708B83CBBC31C7C11573733B97558A9E44", + "SPDXRef-File--net472-System.ValueTuple.dll-FA705C62A84C9F1B1A73ECD9413ABFDBB2894C90", + "SPDXRef-File--net472-System.IO.FileSystem.AccessControl.dll-E201A6C3418738171437D08CE031AF7BE2581673", + "SPDXRef-File--net472-Microsoft.Identity.Client.Desktop.dll-F2B3DF67CE4F9D0963240B693154CBBEFC74ACF3", + "SPDXRef-File--en-US-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml-0A3B265D20E863CBDCB264974391CA7D26766C0E", + "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psd1-3D8B6E0C11BD6300FFF53D1C1A7A32B6AA20EEDA", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1-32022DFD0447DA7210CABCB550C0B5834D73BE83", + "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.CmdletHostContract.dll-06ECDF615E407E69513D3771EEF0678ECCAFA269", + "SPDXRef-File--MicrosoftTeams.psd1-8419998A42D801598EE6BF96F39993FDFA043632", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml-086D2A71368A70C95D7C14EB16E1E8AB9D85A950", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml-EDC75B30DF78641733D30DCDE1276706A601AB19", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1-CA346C864AFA6A636E57FBAF71010CAC45D122D1", + "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml-12984994444338BBAF1E1597874FE6D8AEA40BCA", + "SPDXRef-File--Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml-58AE49EF1B2AF7DE983D1CAF24B20B5143D39652", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml-C9D1A219945A688828BE50FC9E0FF4C663334995", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml-341891343CB3B9B8E207A7225210AEF601E6C779", + "SPDXRef-File--LICENSE.txt-AB40082210620A2914D58B309A048459E784E962", + "SPDXRef-File--netcoreapp3.1-Newtonsoft.Json.dll-85B414A60C00D1ED5755F7F9D50ADDBE348A3614", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Configuration.dll-B674B5BEB662BA07143DC3F659376A833DE3B307", + "SPDXRef-File--net472-System.Security.AccessControl.dll-F62A4919CC8B15281D35357041B164B88D95B053", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-AFE595802B070E7650F0E04F954C871401F7A9B9", + "SPDXRef-File--en-US-MicrosoftTeams-help.xml-6D89F3274A55AB62E3AB0B2AC9A20739643BBCBE", + "SPDXRef-File--bin-Microsoft.Teams.ConfigAPI.Cmdlets.private.dll-3E74DA17753E821EF5AAE6BFEFAADB035BCAEF6B", + "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Core.dll-83EFC5EB7EF030C0FD97D30280196FA8DB7A2CAE", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll-151FE8CE0B4594B78184D8BC5432860EA629A03C", + "SPDXRef-File--net472-System.Memory.dll-38EFB7650125235941F18A6AFA994B6BCBF8A126", + "SPDXRef-File--net472-OneCollectorChannel.dll-DB64576FB1DCA60F06B2A4524BC1CDE3046AB333", + "SPDXRef-File--net472-Microsoft.Identity.Client.dll-2E1F79B0BA029DFB3F3ADE53355AB13E3CDDE06B", + "SPDXRef-File--SetMSTeamsReleaseEnvironment.ps1-F7DEE6409FCFBCFDA09733084816A3E3E46BCDEC", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.xml-56E8BFB9F020ADF074710972F5AFD1B1CED156FD", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml-B954F5ED1ECC7BE8740624D48ED04222953C8139", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml-CF6D5EA1DB485C9B63EA6DA6AEAC79D6A2C0249F", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml-4683A04476426B5AF5BCB26B98C17CA2B5CBFB02", + "SPDXRef-File--GetTeamSettings.format.ps1xml-0E61084BD489773DFB45DB5991C5901CB7A5EFE1", + "SPDXRef-File--netcoreapp3.1-Polly.Contrib.WaitAndRetry.dll-3DFCB287BE86C6727210CA8E49F182F27C3D006B", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.PowerShell.Module.xml-EB2B86D36ADE4E37542F46AC4AF2A0E81087E582", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-F0CAF63174AA6C5C7E4FB89ACFE5509AA348183F", + "SPDXRef-File--net472-Microsoft.ApplicationInsights.dll-420C8DE42CA4E69F2C55DA3E4C7DBE60C80D6BD3", + "SPDXRef-File--net472-System.IdentityModel.Tokens.Jwt.dll-2E6D418B7395C63920B41918530730E8E52E9931", + "SPDXRef-File--net472-Microsoft.Ic3.TenantAdminApi.Common.Helper.dll-37EED298BE541E9888717199B6A6C290CB4F1CC5", + "SPDXRef-File--net472-Microsoft.Azure.KeyVault.Jose.dll-3C0B02C0F1457FE7C40A5BEAB2B2C2D604D26BC7", + "SPDXRef-File--netcoreapp3.1-Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll-DD1C2FD1FDCD6D3C5F23BB016802D1184E701B19", + "SPDXRef-File--net472-System.Numerics.Vectors.dll-80AE1F43F3E94A2A56E47E6526200311BE91EBFE", + "SPDXRef-File--net472-Microsoft.Extensions.Logging.Abstractions.dll-35EA89F23C780B1575B2066DB0D59F255971EB3D", + "SPDXRef-File--bin-Microsoft.IdentityModel.JsonWebTokens.dll-87551F36BC46BFCBCC035626DBB42C764F085B3F", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml-34BB735EAEB2987A8AA72C522173DBDFCDE15331", + "SPDXRef-File--en-US-Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml-FEFA595D1ECC65F8818C1A38F2BFEE3CF7E0575E", + "SPDXRef-File--custom-Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1-A507BC7A295AC14035F81E138A39F9CAA03DA5A2", + "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.xml-88D15FB2F26191E1A37F10E60DF4CEE1F9BD0F17", + "SPDXRef-File--MicrosoftTeams.psm1-CE47D645C9A82231AD62188F14704A6DFC34C77A", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.psm1-AD8AC869067A6601073B9C0EC4406C1A08DD7AED", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml-EB263FF298D384DFD53520A387339547CAD10294", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml-963D4C2F388DECE045FD19E22F7DA7F85931807F", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1-C9A8BEE198E3F026B489127B8693505E98B051AE", + "SPDXRef-File--netcoreapp3.1-System.Management.dll-07309D9DA1C5F7B5F50C73438067CF0083D64DC7", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml-E04D2C01142905ABBB85203DF7BBC17A146FAA1D", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml-88C2B299A3EFEDAD1899AA8B26920DDE35863A3C", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml-A5C9ABD7C91C563124045980DBF5688288EA007F", + "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psm1-06F2DE05C56549DA9A8C48D6BD6D237AC1B2F3DB", + "SPDXRef-File--net472-System.Security.Cryptography.ProtectedData.dll-F78C51196CE15F975FCAF3BC8BC8F07AE0633B34", + "SPDXRef-File--netcoreapp3.1-Microsoft.Web.WebView2.Wpf.dll-F3A537C2581B037B3E5D6593319921D2A5377BB7", + "SPDXRef-File--netcoreapp3.1-Microsoft.IdentityModel.Abstractions.dll-7F05017570427CC8F35A41E8AD7B9C3C21E37041", + "SPDXRef-File--netcoreapp3.1-Microsoft.Extensions.Logging.dll-473DD93C24A86081D72EB2907A81DBE77989E072", + "SPDXRef-File--net472-Microsoft.Teams.Policy.Administration.dll-7A086CCCEF5693535BD3CB8A45C139118B0408B2", + "SPDXRef-File--net472-Polly.dll-8674FDDBD9533EE718DDF9F49729036ED105462B", + "SPDXRef-File--net472-Microsoft.Teams.PowerShell.TeamsCmdlets.dll-65142F147116D0CF25DFE4A603B2394C32FA0F86", + "SPDXRef-File--bin-BrotliSharpLib.dll-2E24506AA5F40ED36F6AD2BBA1A2330F3162E86B", + "SPDXRef-File--net472-Microsoft.Identity.Client.Extensions.Msal.dll-C328ACF08DE3E229E48083958D9DF2A0EB25511A", + "SPDXRef-File--net472-Microsoft.Extensions.DependencyInjection.Abstractions.dll-B82F9689F6C16FB1F5DB89A0E92F2B9F756AEC48", + "SPDXRef-File--bin-Microsoft.IdentityModel.Tokens.dll-55E4A13A430919E0B5EBF5FFEDBDAA0D66F84629", + "SPDXRef-File--net472-Microsoft.Teams.PowerShell.Module.dll-C00F202A7BBEBFB084966C3BE0027F9DF0BD47E6", + "SPDXRef-File--net472-Microsoft.Rest.ClientRuntime.Azure.dll-8070B48D5F4D2FDDDAC48DA510BC149691B59500", + "SPDXRef-File--bin-Microsoft.IdentityModel.Logging.dll-6209CAFD403DF6FB9DA046F36D7D89635FAE41A4", + "SPDXRef-File--Microsoft.Teams.PowerShell.TeamsCmdlets.psm1-DC1D08C8126D965B23565174CEF4A81366FF0F5E", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml-037B8BD58EE4DA3AAA0F696446289AED702B569E", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml-2B971324EA70583EF0B37D0DC6E0DA6D02060D2E", + "SPDXRef-File--Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1-29654B497D19C8508ABA749E8A25890FB166F3D3", + "SPDXRef-File--Microsoft.Teams.ConfigAPI.Cmdlets.psd1-358D6795FF6A747404383425E64D23D1336CB1C0" + ] + } + ], + "externalDocumentRefs": [ + { + "externalDocumentId": "DocumentRef-infrastructure-itpro-teamspowershellmodule-72855948-df0ba998c710f21e197664508d999d436f9101b6", + "spdxDocument": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:72855948/TieF5svXXUyH6Wd04k7CaQ", + "checksum": { + "algorithm": "SHA1", + "checksumValue": "df0ba998c710f21e197664508d999d436f9101b6" + } + } + ], + "relationships": [ + { + "relationshipType": "PREREQUISITE_FOR", + "relatedSpdxElement": "DocumentRef-infrastructure-itpro-teamspowershellmodule-72855948-df0ba998c710f21e197664508d999d436f9101b6:SPDXRef-RootPackage", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-50552D21DF380D2099AFC1BBDC3E90D648B6A631AC6A5912BB03D103DBD4C61F", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DESCRIBED_BY", + "relatedSpdxElement": "SPDXRef-DOCUMENT", + "spdxElementId": "SPDXRef-File--..-..--manifest-spdx-2.2-manifest.spdx.json-DF0BA998C710F21E197664508D999D436F9101B6" + }, + { + "relationshipType": "DESCRIBES", + "relatedSpdxElement": "SPDXRef-RootPackage", + "spdxElementId": "SPDXRef-DOCUMENT" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-661434A59D6F94FBB37A749B951CFA724E0427FB84B679F9AE12979CD15F406E", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E1BF9828A3EFD6C11C068DFF7CE77FBE33246278F84CBCC70B65ECFCC9C8E968", + "spdxElementId": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3DD5DE0E10246B0F36AFDDED416D6773EEA8060A4714989AF784397BE3CE9558", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-65F3BB807AF49E7AD397E2DCDE7E8152B0F742044FF2ABFB7B8136F4D77F3E3D", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5343B694E9E8D06887CF8F4008BE0581FC0BD9BD2D28FC4370905FB693F311F8", + "spdxElementId": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6A2CA26FEB072F57DA3D0DD36381727D71400F3E3436EA9BCECDB8289ACD918", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B512828296F96786715767A9D629FA4E02BEACAC0CC0BE4A7A1CFF55AF155FB6", + "spdxElementId": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA0AF8340DCB876C7A8B0C3746460DBC5EE231998B283C8070BAB226E6C9182E", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74783B1098990678258F1B4E741A3CAF2954BDB52AB144B4550E60FBB11A594C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-751D58F61F982C3D7B11602BBEB943F9251AE4EFF8B6A12F0EC98F276D20C730", + "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B421A049D84918A1509D87157C10713A7AB4A5875825A80B6DEA4A96C3685E82", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-292F9905FDC94B3223A24EBC083E4F30174E09A0FE98F3E588D7BD0E7DE4B74B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6B07767B8D24067A9C860F27DE2655663A6187C7DCB86797C0F07D5D2827293E", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-288304B4D65CA653A9F91AEEED832C8EDBDE12D62998B237EDD814A65B0F11CE", + "spdxElementId": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B7D63C69227797DAB4E0B488D700205A02ABA2C1D1A6841FF891E5F417797B09", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E9A7D272BEB1E5E7E2F201094675F616632FBFBDCBC919F56E63E2050698EFEA", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E9A7D272BEB1E5E7E2F201094675F616632FBFBDCBC919F56E63E2050698EFEA", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-87282A7A87A76DE572F9692A8F47DBB1F03CF570E45C9FC0B0310E8D6478FE19", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", + "spdxElementId": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A772E41F4A6EAB3FE426188D806207AA324762A1E8660E13FE72401D48FAA62", + "spdxElementId": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C4075941FB03650FDCD59B46A8581619ADCD07F99EFE70194DBA9592C3E1FA26", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1", + "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A4EF115C8893855C705030E1A252FC7E255CC1E3C9E8E661CFAADB16AD20AA2B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EE26D3480D7C4AD0D6266E6A9AF31F9A5818EF79760B6C0A16E79C90957AB362", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9CFCE4B97775AC5FBD999304EF6211E727EC46AB197CE4281A857627376B4AE3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48B8396376BA44575395CB75027CF1F5E11012452DBD38F7C1D615CC57EC31E4", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7", + "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0BC1C205F746BA4432D06D863AA2AE3759BB10AE04C1ABAB3B5892F25540622B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-043A20841D9DB8977CADC48D3E05228314FC1EA519D405DB0AEB9968C1FA02C8", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D87A871D9DCC8A4B4DC16C993FF9320F3AAB938B64A6EC2472FC2C1CBF3F7219", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BD578492E1B6D65E73FA738A546B0E31220C520674A7812D79178EADA585420A", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51859863AD2341A201A718E83102C31AD33750C7FDCCCABDA897001A4B4ADAC1", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D595C7CA243D238A94C6D0F9277EB98AE42EDA370259D4615A58E5BE78BAD562", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E51A8116E7C39A9C87837BD3B1C17B8322CEA23323DD29B2E41173CD8E4D5B7", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-19657174A611A55D249468976305B5C48B4BCB2F4799785E382B139741337943", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D558AFB2CAD0E7DBCD0E628F69A6F76A18AEF3F674D04B5206B53D08F9C8FCFB", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4A374F707F6B7C424E9A289EF1AE3D63E95D327CE5B5E80C72BA9AE27F64C11B", + "spdxElementId": "SPDXRef-Package-51F158669105E7517709DAA0BB58D31555101DE3988F1381C3501A7DD94042C7" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7F1409A720964601F0982FD6D7FEDFB2577409C224B50F3A11C711BDA48164CC", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2DDDCADBFE6B92643DE7C58162ADFAC7B5C0782ED38B363CC1CC0F27F935683B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-61236BF9567313D7B33FAA4E1A1A2284871E52F3C55730B6A94981711095C615", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3", + "spdxElementId": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B", + "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CF468559CDD6D329BCE1D3BA07C2D190050CC92CEE57A0887D5F8B9449C9C9F", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CBF7802F9254B3E3712AE8A8BB936744B7150C66FD19F540F73399779686C851", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9913FC77FF1C1171C738782E410BE9C92E9F6C7F5FD54F4D911DC70DDA615920", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-43357C895306E69902F1DB752C436B0CD3BF18128E7FBCD01CF1056589153BE0", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B6BB4F25EBC9904AE608061A1BCC884C55CF433714CB4E1F9F0AA3B8CA6D9FD", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C1475C5380732C85127A15B8BADF74D2619786E90578875B650082AE4497BC14", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97A4624F33F0891481314670BD6833AC9E478270C8E9BE83E71715A09CD435FC", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4C3B9EAB65F57A8012A61AB041013CC14DDEF227C8C011C485D68401ED4A33A1", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8DF9F1DC6CCE99BCAB81EC8023E1ED3CD940A36704E358DAE8362D08FAFD45B0", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-6C4A577336DCEC1BFF078EE13466E604E8E8E1BCFDF5260E7493C92E8A3CB3D8", + "spdxElementId": "SPDXRef-Package-D575E218E1AD9C06A5DB8DB369BA731FF160790530E672CE197C7A756E60F275" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-01FBE39297615D5615DCAF2AB4E213D489A90F4CC6E7CAA4E1F22CC76BA02C6A", + "spdxElementId": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E66C6C3453F877C7645FD43F03250C16CF932A10D88048D6D91237A3B0CD7D79", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-30C2341EA16E5818C131E9D23284D1C63F93C660C4B0DF5EFB33708201B93ED7", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3972528F4CE837C1AF7F27B268C1ED31DD69505F9E0E4B4D5A15C257D4AE8C6A", + "spdxElementId": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-ADE6F2EA06FCF21C3EE606943B254F360F4EFADFA22B69BC16B42323972F4FCC", + "spdxElementId": "SPDXRef-Package-7E8F5D9C6DA9ECA19F26976E63A1CC0C561E0322DB2B51639DE9F378C64E1789" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FF56CE386DAA51DE966986FCE41887C06D4533EB272D2930936B0A29003F631B", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9BEFA8934C7016259385BFDA2906F038610220B7BCF08D5AA651BE6CB1541E51", + "spdxElementId": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-422B168409BFFB6195EFFC810AEE94179F01C0BEFB6D8F78809CB9B8E5990035", + "spdxElementId": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2D315204EDF1805A0597A6B2DA6C5F35A222859A45FDEC22A15E70E4B966EEC2", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CDAAFFA05EBF9CB4769A0302D45C4994A3310E518046D8A5549AFEE765ADFD9C", + "spdxElementId": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-556E04674AB21C6E689B621B54F3C112DD3673B2C5F20B63EE80559940B575CD", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BEF799D6C49E27B8BA7EBAB371D28EC846DDA74F24BF0C17F527B7FAD829502F", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9EB6D1B4C28070605472CA357F8839C43F5BAE0951273DA95985FD3AF01F2E3", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D8BA3D488724E35BD3387F1A6F805D5D4F98AF4C932C29469E010917CBF0501", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CB3E43ED2FAAF926BACC8A3E5A5219246BD37049F5C72FD776C3144C1DBAB0A3", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DDE5C44E3BD87F8156A218CD1BA03D4DA71B87C82336BF66C024F3A0F49CE80C", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FCC624413DD4742309757E31875689069D064242B463300702415FBA5F38C510", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52A29FD561F2FBF291743E53E5182CC1A2D43502E7997CDFBB51983A21E1FFBC", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4EC77DE72DF7856001C57E24CCB11F437B92DC6132B2272D5765CC62E1851102", + "spdxElementId": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DA2AF0572DFE796D5ED4CBA3C0D769A0AEB1D2D1712BA876E8ACB41B661353B4", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B845BD152273D72FE2AFC20FA987AF1A6499713ECA5A9C6306E0B5B4C72DA3B", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B70DCBDC91EBEE336A1E16DB1DB1C8D526FA433CB119E1CEBEC78CF76C2F429", + "spdxElementId": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0699C5B5BDA6C36E045C7CF5007C875DB68042CC8C566010576A760C9A8836BA", + "spdxElementId": "SPDXRef-Package-F1B6BB0BB534A7DBDD941A4FC083166529EB0E4AE0436D03BF9A19DF39568682" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B3D5F30C6F4C897DA31933117BFB391A9177287CC31D26072129972E47E06996", + "spdxElementId": "SPDXRef-Package-40690A07BFA5376B7B03E215586CF3C2EB068AC0A65919F6944423643354D09C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-160343BBDB6361CA05173FF6DAAEE8066034C85CEB37AC2227A7274B191A0B65", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8F4F099CF0C93C778298B3BBCE55BF07CA151A2C35C8535BDA77B9D9C17898ED", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-EB28CDD241D6CCBF0718B9E555251C41DF66A198C6ECC693D09211542C656620", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2368FA764D14A29B034685CA6771EFB8706AB2F7216577390AAC665519CB21C7", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B06C59408A23D0ADC8EA4F69AB5B5C701AE8704CFE1D367E5E10ADE4C3C4E9C5", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-51B112946B53F473049CC515F08F27E227C044A2E330920154720B3FCA47D0A9", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BC6E0C4A5810E0A60B152E5A06DD7F7CFF6F79CC23BECD02187C2773C49EF8CC", + "spdxElementId": "SPDXRef-Package-2D72581546DB40B96E35C44F26F28B9A0BE56BAEBD80338909D2C1DBC722E3A8" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-270ED84947C7777BB807C511A9593856711C3D4CDD93E10AC7AEFEE203559CC1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-F5B1FB353339B8697A0ED2F54610AD24DBB36C6215C9B0F18F0BD2159D8766DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-1EACB92C7FF042A154C8EFC0FC9296B19D6CCD9906991B0DCF684ADCEF34982B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B886264C88915A93892AFBE3D28CD5B3C8B7990F0C6A47AD506184440C46436E", + "spdxElementId": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C2767F12ECACB70D60EC8D1F53D7F3499FE060FCB06D60FB60B63675CE73DEF6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C5208AC43A9B8525DA67EA002836F84382F0C16587D945CE108125CDC4492B2A", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1AB77E2D247FCCB982D55790EC198F2360B622C4D6568FE87E68DDB1EC0576B6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E8D0184AED843C8B48D3348C34E510C1AECCD9E05D002C20871C83F97B6A7A93" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-44DB18E004D7C51DDF86DF1293D672335A4845195A2E9FD5A2759AC640E455F3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-BA5D8D1B5043A468B09DDBF48DCFC7DDD44949EE05A23A14F02AE8AA5183745C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-A2645140C49BA822DFA302147B90231A2DD8246C825B2E5561535F2BFFD43192" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1B140F7FA3F784DD56CC7A8B4145E9AD58D8CDD4C249A0F27F2262E47C9B41AF", + "spdxElementId": "SPDXRef-Package-8D06DF291817DDFE90DEF98A2470F5E9BEC769CC740E0A952AD456BA01BA5B0D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4E05EAEA12DA6A7C1B4FE709F96D8EA9F6343D2D76EFCC40A9CAA44769388362", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-98974C6C7FFEA0934A0B49276F784EF7433A314B8F4352E602465184EE7B9350", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-74671EB8E35B4A22DF14E3B027232B1C75778285F2258802720CA2F93AC9490D", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C3272C18BDE138977A4F6A28245A4662BEE080BD471EC1BC9C740232B877DC5F", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A55FFA0033D6824E362612DD7487681403BD255B228F8228120800797DDBF595", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2EB7C341BA0E8C29E8E7D403BD2E1AC0BF0D499083C5EA6C264531D44D1DB591", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-97BC400C410A127EA0A6F1E477C40574387AA14FF569FF0CFC3D1E557EF6B346", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D45E310E2C14FFDECCB77BD34DCB98F27CC8FD0868B7FC5852809E9398F9DBBB", + "spdxElementId": "SPDXRef-Package-50552D21DF380D2099AFC1BBDC3E90D648B6A631AC6A5912BB03D103DBD4C61F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0EC7DBA7DBE5D68E1291F1C50E81D40065F3E5A67A3F6B442E615B2410034A07", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D660E3F61DA4E975B294E111E588F31D6767CD5D04D074886A87077C5F7B51A4", + "spdxElementId": "SPDXRef-Package-37BF3908EE32502C05EF96060487E9072F24B3F77D9B074B4325B90A7525BEED" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-2BD1526E06B0F242413706B6514589398B1723F2A354DCCBF1BCCF210693E051", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-40E259CA16677FF2F00A0BBD434EE732A1B368771D75232C5934C0E69D3F8649", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FE635F843655F7E3AEF4480D35B3CC94F183E089CECD65DF92BF411E98FFC60A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-953C20146688FC8F67C9FB0145FA4774C712C2CB6535C3AC2EC45DDFA7EBB308", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E19948650D65A6CAC7C8598896B9D62260DAD3CC447A8DA3F86BF19BBBBFE2C3", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-960414DA8719C10D04651A042C6327736F11D52FA2FCB8501240FBA2B4B8FA57", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9C5EC1F429A13E295E10F319F6A0EF6D3498213116DA080E8BB3B075E7C04EC5", + "spdxElementId": "SPDXRef-Package-56FB670D33987C301B2779D33E9778876DA14F5F4E15B6F68A7D4E62B36CEDE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-94004F1D9E495048B7DDC680757AD96C5549911E159B9FB4170D01C1EDFE34F4", + "spdxElementId": "SPDXRef-Package-D90E98FC3B3B4DB665D755E2346928B7890FAD6B00F57C503C43E3C4F16F7320" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D6769B97AAAE015F045FC29DE22CA48890324B3BB267696D72AB16536B1AB23B", + "spdxElementId": "SPDXRef-Package-10E9F39A21C43F3067944A8DDFF45AF4C489988D6CD413D71EF0B01C5974B023" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9B37C02243E2064BFF93529886692A903173BD523982E0A80D12E7F5A5B0BAAB", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-33B1D8F98040445C1C019996980972FB5A3DA85A789108E0440ED021F416AB88", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A7749B3F7443A0F0AFF64F71746F18D670D8D4FBF18B2138A4AD85A6BC9A810F", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-73F10AFE7A15AD6A85D18E5BEF5166AF2CCCC9AAF7E7C46F8AC2C216AE865D01", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-38EB9C1270DDB3C49EB53BA52C164FE55D40DE5425BDD41EA43CAF4CEE32F946", + "spdxElementId": "SPDXRef-Package-516B1175E3D416CA4328C97F94B8F3B3E28B0CB287494AAD09779F55F1DD33B5" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4253C15F4CFBF421ED9475A1ECC51B7D5AB8AAFB29FAA89F5A7CAD36B3E238BF", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-96C6F4964A911ECC8415520C77654FAF06CF5E4E3529948D9A3EE44CAB576A1E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3701BADEE64B01FD2D2A6B234D001851E29E5710E08D433BDA8F5F6239F07B4C", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-85FB27F5A68228D1E9331D9E7057200D9845B178A51F7F40560E070D910A3E78", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-B9537892092B42C735654118874AFEBF8978792450A4D6AE9BF50D1C7DA77CB2", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0FC7C18C18F48CA2321CCA8E088120C9CCCCBE93BCC1BF1CC39C9C81C6243BBC", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-4BF54412BCA9359E257B3D5AE351715D2D00401EFD8825F3DDB08F00DDF37C3A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-7C9C304D041C6B65ED5615849BF8E442A0B9A55125BC07E84B58FEB486E75EB0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-EF2D54FA98EC031265B142FF80780E498D62AF1FBF37D1B881F4D1528A8A8A0E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4FBD1B594E30375185354B60FAC8D8C5CDE93C841F441DF66BAF2716425E1083", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-52178EE1FB928380D66A9D0AF31FD1C7344BFE244742C9A3D8977EB381CA9C18" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-96EE889F5432A3BE6ED27C46C0D4F67103461B8167C4F7C74DEAE28935F3CD40" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-08A0DA7A4360355B018E9B97F1A5913D78687CC4C7135CC7EBD3C97D8F7B84BA", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-37F426E1A6B7E758CFF88F138CCA3CF3C2D16F4C4D457CC43DB06680B16A3B6A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-0466CE9286D5381D3008D7C7F928AD9A6CA431DB44B3090C1AC076F27AEF1BDC", + "spdxElementId": "SPDXRef-Package-06B1FE03E3B06D8AB8CFF2AD4FC31D4A3796628ED49E9E383C7F1B7350B01C17" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CC37C138AFE3FD56BAF5242097421D8A247510DAC602473C0F908356A935DFBA", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-846C7B671CE0E884005EF626B209AD4D24EBA1FF032B6BA0242D62EC1793AA97", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8CC68F5976CDE9EF39F904D527CADE89A54B7CCAD5368FC3E839D23A3ACD50B0", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E389C196CC3B31F9F0F95EF8A726F64453E62013B00C3C8B8C248EA8F581C52E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-95D82EAC2B7AFA76CDE80F2C785B59787DAD3868CF9C247FB4EA57B72AD972F6", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BB5EED84C09683F587843DDAFC814F4B010F56955D0A82584767D72B99ABD849", + "spdxElementId": "SPDXRef-Package-BA0E5D8A7199C5C7E3AB624B505B51873A0E9F29F0DBA52E1E3E36D6423F1053" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E80B9979113D4C0C10670D6E93B96CFEC103C1AB34E61C3F96D93043152F9388", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-F40DEF754E46DBDC302850778582C6E171E2B20C9B601F1BE2CCEA4880178B89" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-5D34709A26D1F9AB9ACF1533059FF2089C126911B090DF3B9961364420E01C7E", + "spdxElementId": "SPDXRef-Package-A531AAA4BC3CDFCEC913CF5C350C00B1CB7008576A31BBB07F876DCD2A78CCBB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3248038335932D1D4047F57731B65A00918297ABB00C3DCFB05FB8A456FB63A2", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-A092770E8354CA90D85493FC4F2941F25FCE4214BAF8EB9A9E4383C495E133E9", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-87DBC129E46E77857F5ECA3AB3A5EB8B516E2E67F885F6BB6243D1CA004FB440", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-07CF9D53D5D4D5E805493E9E69850AE6F3EE8BF6912290B58FBB9989E99FE550" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-E74BE45208CF0E8CC846214160452E430DEA41E9714DB021F198D887076066F1", + "spdxElementId": "SPDXRef-Package-C6794715F4D3BB5F1392158FD713732FBB3814F34B6E0A7BB46F8C3FF448143C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-0C807593FD29954BC8F35B130404576B5EFB1BE225BA5CE0D4D6982EBBDFA51A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-FA6524D4327177392F48D12F631FFB032EB1A9664E0130A4D5FC2DF650DAF25A", + "spdxElementId": "SPDXRef-Package-60E34765351FF197560F23F5A33487CE6A9CDAB7B864D630D385B30962F69264" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-3AA91AC82BC50105BAA785EFA25675A27458E28F643BC4289A18DDC937DFB505", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-89CE1414CAA94972797D6FF8979E0DBFAA9CD3E2D057BE38B55740A9DCA2C294", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-265C2226766351B16DE2AC774DD89E69FDFC13A7386B3B5D723DB697BB50E108", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-DAF4410E2BB3C9087A169B3DC5D387E2098271B822FB842CEE77007D9CF7BC7A", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-99204549ED77ED47F9DF4D5E0F37A740DDCC7A2DE11C6CA47CEA1E5F014BA159", + "spdxElementId": "SPDXRef-Package-8422F607B8266110A546C45992F70A0FB1B2A891E18E98FBBB9C7C5297435350" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-71F0727D1B02C5BEA2BE2C6985E0093660DAEC028DB347AB157E3CFFC6779892", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8B56D8DE1FE4C0E3A4FE4C7FB39058D5E01E2104010C2F40A8D9AF43A9A58FD5", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-3BB6EBDC93E34DB9728F390186CC96E21CEA3F6204694FE88B4E928DA5F590A2" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-8D6E0C5870BF65665DE70BE60EBDBCAE0A4EF9BFBD566A07D2FF53D2429D3D8A", + "spdxElementId": "SPDXRef-Package-1699161828195A03FDB363E7F903B609D236C7AAADF0F4BC0BA1A33D4F1ADFD3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D3CFD0E43003E618EEF37E2815DE44CF2107C79C821D7D2D622B5A820EE116B2", + "spdxElementId": "SPDXRef-Package-2E8A8BE0C396986EBDE3F4EA0E93239EDB1D3B0EAEBD46C1BAC39AAD831F2E7A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-4B55F9611FFC8C6B82B587F28C48F878A9DC64C30A678D5A818D041A7DD944B3" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-802329F30C6D05E97029D15F8B4C26B6723192FEC8DF7B1AAA9A79955D3B541F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-27ADC6850C7FD2CF083E74AECDEAA437E3E718567F972E2FDA09AB369A0C4579" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1D191B13C73F7AA570C121E8ACCAD625116B8267E418ECDD7222AAAB63A76A84", + "spdxElementId": "SPDXRef-Package-2F9C7C046268BCFAACDFF2B9D1CA2BF8E54E5EE2453E3D72B78BCFE4CF6B1BE1" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-2B53194AB5049779F3DCA31DEDD2DE05E80886EE215D7B42133B3F70B8BD17CF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-D914F9D8753FC410B2A274561F88A3ADEEEED806A07EF94597D3068A95F76C2A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-E06878D27EAB6F7665BC108F4852BB134746E2BCBF39F878B7C343F3DF5382DB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-A99FA80B0FE3022A078DA4562A1202704676BCD524F323106D769CC13334A591" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-213DBBA42E13359B27286D3744C43A0164D08EC3701294B0F147C11CEEE1A35B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-1E4C3C35999515322548566010E5657C41BAE2FFF0D0C45C8152495F1A645E90" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-02989F46467027BB3ADA96214E87DA7E9E9AB0FD2BFEB97FF765D237E0D1DD0F" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-24F8B5EE850308581F605222462CD97783EA00F1FE1A8EAC8132DAE7C79A32EF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-3B165F23526511BB1BC3D25D1DFA478AA3213A8F180EC384033A50AAA5208E83" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-B9DF27AEA03C297D4D9DDEFCFF0AB1BC1FCDFB43605E6C299DBC309162C4925C" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-D0E2FDC0A28192926A47E5E659EC5BE2358B2DD4A97FDE6B0309479F32DD40BD", + "spdxElementId": "SPDXRef-Package-C398039E46B1EEC131FAB9356829D60036EA11386F4C3A70183AB97A7D94938A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-8611F888E5F96D267FF1C1ABB73E5294331D93731E744F03D50ABF1762031537" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-7C1071FA59864BDC1864DB36651680604E0B72A4920F6413414E04DFAE72E901", + "spdxElementId": "SPDXRef-Package-2FBD391BA4E4E1B2D4B3224133632EDF2AA6050D2D8D4F8942C885821F16E941" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-4BD59FA441EC172173A157C82D048C8C769AA630982117F095C011203ECA80FA", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-AFB71973C08F32C3EACE2EBD9C415207BA3323445D2B02B6E7356512AE7A78F6", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-22BC1B62603E565BA5827501118C102A4E869955E3DB43D001A4ADA2384D657B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-709711424B89F0C2B246908D56854B43AA436C12CFE44094F18B1683E1A2B012" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-12E7360F7DF42E507132435A2F47A02B26B534C2C386A71052C70F60048EDF24" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-6ECEB7A09CD4FBD19B518C781F0CBE22FECA793B93AD87B9C4836946365AEA6E" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-7CDE16953CCB6637622784E3FA286DAD730ECEBA7826A22FF4F916FCA0063004" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-E85692888E9F1087AAA8C37F815965148063AC73E15EA3CA4CFFB8B541986FAB" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-0F0C79445F7405AD99492CB868D16B038C492FAEAD2608C8658F42426B581AE4" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-D260D2D5FF9F067494733319DA3E43A2C2C11F3B22A7AF4D2513F1D0F8F7F693" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-152A981D8D88BE81B1E86D19781BFDD9225E3B8CEE01070301374DBF60266762" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-9A755DD873B6DA644F67DA60BC4C60E55D93C2E759A07DEAAA52542F47F50EDF" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-C83EF401403783249426EAE479482F04EA43B8547205F87AA1DC896384CD700A" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-E05BE988C35E4A771123056763DFE1BE5BE07C758B2393E9282BC65D91858A63" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-CA9EE4EDC8F867D571CA60981F69E15424E01985B1723E9C278DE08CDF8D85FC" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-3A1C4597F0B796F6E17D6884D08BD91B53282B4143190BB5111EF13C2BFF3904" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-5DC5543BEDCB9EA9FB8B0C1B92F7E0CA9B7ACFDE1956F135448A6051FBB8283B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-C984B977516D6939C42430EF57A6A46DEC1665C411D741B10CB40739A2250C8B" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-B6E263C241FC96C630E9B713451E0D0357E0B3F030201ECC2054DDB27C3B77C0" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-1CFF4F08AD4F80F664A100E30A9F28C1592FBF4A9FE6F2199E506A7961683D5B", + "spdxElementId": "SPDXRef-Package-F9388BB13D5D03BED09EB347B6AF0722919D62B6C761B986DC0E1D7EE693DB79" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "spdxElementId": "SPDXRef-Package-9D35174DF355594E621E7AD4EDF0C4A6C738D57BAD673B78F2334967D1433430" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "spdxElementId": "SPDXRef-Package-8DBD4180C2E334124ECC5BC666F82960405E2D5705477C8A941987F12F86EEBE" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-48265A488C29B4798425AAB3E6AB86C51F61DA2EC4140043AB6467A6D1E98574", + "spdxElementId": "SPDXRef-Package-74C4672C7746545B890D7A35796C1049E6EBA68C5492053C3E4A99962BB6F15D" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-BD049C5100B248F06EBEC66C3BE118753E842489EC3E40AF36E080A56CF8286E", + "spdxElementId": "SPDXRef-RootPackage" + }, + { + "relationshipType": "DEPENDS_ON", + "relatedSpdxElement": "SPDXRef-Package-CE645B91D1E102C5ADFA2FE9FA88293752E1ED47F685D9D5DC5E03075280E0E3", + "spdxElementId": "SPDXRef-RootPackage" + } + ], + "spdxVersion": "SPDX-2.2", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "infrastructure_itpro_teamspowershellmodule 72855948", + "documentNamespace": "https://sbom.microsoft/1:bkjmLDt9u0eOFl8ZpDAVyQ:ygnPgS-Zq0yaX5bXKLTDOQ/17372:72855948/sCCNxYUcl0KQ-_AZ9OaqhA", + "creationInfo": { + "created": "2025-10-01T08:53:50Z", + "creators": [ + "Organization: Microsoft", + "Tool: Microsoft.SBOMTool-4.1.2" + ] + }, + "documentDescribes": [ + "SPDXRef-RootPackage" + ] +} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 new file mode 100644 index 000000000000..4a6965367575 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 @@ -0,0 +1 @@ +663b4d504debf6479010de4d619fb15b9d84d87f6b36704b3c6a0bf61f9b848d \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll new file mode 100644 index 000000000000..9c516c3749ae Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 000000000000..00838f3421bd Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 000000000000..00f9303f6572 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 000000000000..47da8dcd8f31 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll new file mode 100644 index 000000000000..046a68764c04 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json new file mode 100644 index 000000000000..115635f737e6 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json @@ -0,0 +1,246 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Microsoft.Teams.ConfigAPI.Cmdlets.private/1.0.0": { + "dependencies": { + "BrotliSharpLib": "0.3.3", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.2.4", + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "13.0.3", + "PowerShellStandard.Library": "5.1.0", + "StyleCop.Analyzers": "1.1.118", + "System.IdentityModel.Tokens.Jwt": "6.8.0" + }, + "runtime": { + "Microsoft.Teams.ConfigAPI.Cmdlets.private.dll": {} + } + }, + "BrotliSharpLib/0.3.3": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.5.2" + }, + "runtime": { + "lib/netstandard2.0/BrotliSharpLib.dll": { + "assemblyVersion": "0.3.2.0", + "fileVersion": "0.3.3.0" + } + } + }, + "Microsoft.CSharp/4.7.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.CSharp.dll": { + "assemblyVersion": "4.0.5.0", + "fileVersion": "4.700.19.56404" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/6.8.0": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "6.8.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "6.8.0.0", + "fileVersion": "6.8.0.11012" + } + } + }, + "Microsoft.IdentityModel.Logging/6.8.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "6.8.0.0", + "fileVersion": "6.8.0.11012" + } + } + }, + "Microsoft.IdentityModel.Tokens/6.8.0": { + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.IdentityModel.Logging": "6.8.0", + "System.Security.Cryptography.Cng": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "6.8.0.0", + "fileVersion": "6.8.0.11012" + } + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { + "dependencies": { + "Newtonsoft.Json": "13.0.3", + "PowerShellStandard.Library": "5.1.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll": { + "assemblyVersion": "3.2.4.0", + "fileVersion": "3.2.4.0" + } + } + }, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + }, + "PowerShellStandard.Library/5.1.0": { + "runtime": { + "lib/netstandard2.0/System.Management.Automation.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "5.1.0.0" + } + } + }, + "StyleCop.Analyzers/1.1.118": {}, + "System.IdentityModel.Tokens.Jwt/6.8.0": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "6.8.0", + "Microsoft.IdentityModel.Tokens": "6.8.0" + }, + "runtime": { + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "6.8.0.0", + "fileVersion": "6.8.0.11012" + } + } + }, + "System.Runtime.CompilerServices.Unsafe/4.5.2": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.4.1", + "fileVersion": "4.6.26919.2" + } + } + }, + "System.Security.Cryptography.Cng/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "4.3.0.0", + "fileVersion": "4.6.26515.6" + } + } + } + } + }, + "libraries": { + "Microsoft.Teams.ConfigAPI.Cmdlets.private/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "BrotliSharpLib/0.3.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/z74VNg6etlQK/N1mSD5Tz2qQUZqc3RMiuv2F8Q/MOfvg4l7a6lDYhQQTPd9s9saSokh1GqUD7JTuunOiQid8w==", + "path": "brotlisharplib/0.3.3", + "hashPath": "brotlisharplib.0.3.3.nupkg.sha512" + }, + "Microsoft.CSharp/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", + "path": "microsoft.csharp/4.7.0", + "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/6.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+7JIww64PkMt7NWFxoe4Y/joeF7TAtA/fQ0b2GFGcagzB59sKkTt/sMZWR6aSZht5YC7SdHi3W6yM1yylRGJCQ==", + "path": "microsoft.identitymodel.jsonwebtokens/6.8.0", + "hashPath": "microsoft.identitymodel.jsonwebtokens.6.8.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/6.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Rfh/p4MaN4gkmhPxwbu8IjrmoDncGfHHPh1sTnc0AcM/Oc39/fzC9doKNWvUAjzFb8LqA6lgZyblTrIsX/wDXg==", + "path": "microsoft.identitymodel.logging/6.8.0", + "hashPath": "microsoft.identitymodel.logging.6.8.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/6.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gTqzsGcmD13HgtNePPcuVHZ/NXWmyV+InJgalW/FhWpII1D7V1k0obIseGlWMeA4G+tZfeGMfXr0klnWbMR/mQ==", + "path": "microsoft.identitymodel.tokens/6.8.0", + "hashPath": "microsoft.identitymodel.tokens.6.8.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6Dt9GnaRhKGPF2Z0qB+TwWzKbGT2JyuiCH6RumH7nA9jIK+HK2reZIYz2YMeVfpeZd3Cy5yAgt6S5acDEEGiiA==", + "path": "microsoft.teams.configapi.cmdlethostcontract/3.2.4", + "hashPath": "microsoft.teams.configapi.cmdlethostcontract.3.2.4.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "PowerShellStandard.Library/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", + "path": "powershellstandard.library/5.1.0", + "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" + }, + "StyleCop.Analyzers/1.1.118": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==", + "path": "stylecop.analyzers/1.1.118", + "hashPath": "stylecop.analyzers.1.1.118.nupkg.sha512" + }, + "System.IdentityModel.Tokens.Jwt/6.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5tBCjAub2Bhd5qmcd0WhR5s354e4oLYa//kOWrkX+6/7ZbDDJjMTfwLSOiZ/MMpWdE4DWPLOfTLOq/juj9CKzA==", + "path": "system.identitymodel.tokens.jwt/6.8.0", + "hashPath": "system.identitymodel.tokens.jwt.6.8.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/4.5.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==", + "path": "system.runtime.compilerservices.unsafe/4.5.2", + "hashPath": "system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A==", + "path": "system.security.cryptography.cng/4.5.0", + "hashPath": "system.security.cryptography.cng.4.5.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll new file mode 100644 index 000000000000..4497151fb53e Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 000000000000..55d1996f9666 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json b/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json new file mode 100644 index 000000000000..057d44fd8896 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json @@ -0,0 +1,4883 @@ +{ + "CmdletConfiguration": { + "Connect-CsConfigAPI": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsSDGBulkSignInRequestStatus": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "SelfHost", + "TeamsPreview" + ] + }, + "New-CsSDGBulkSignInRequest": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "SelfHost", + "TeamsPreview" + ] + }, + "Get-CsSDGBulkSignInRequestsSummary": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "SelfHost", + "TeamsPreview" + ] + }, + "New-CsSDGDeviceTaggingRequest": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "Torus", + "SelfHost" + ] + }, + "New-CsSDGDeviceTransferRequest": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "Torus", + "SelfHost" + ] + }, + "Disconnect-CsConfigAPI": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsEffectiveTenantDialPlanModern": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Test-CsEffectiveTenantDialPlanModern": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Test-CsVoiceNormalizationRuleModern": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsInternalConfigApiModuleVersion": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsSessionState": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost" + ] + }, + "Set-CsSessionState": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost" + ] + }, + "Register-CsOdcServiceNumber": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Unregister-CsOdcServiceNumber": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsUserPoint": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsUserList": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsUserSearch": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsTenantPoint": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsVoiceUserPoint": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Get-CsVoiceUserList": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Grant-CsTeamsPolicy": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Remove-CsConfigurationModern": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsBatchPolicyAssignmentOperation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsBatchPolicyAssignmentOperation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsBatchPolicyPackageAssignmentOperation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsCustomPolicyPackage": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsCustomPolicyPackage": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Update-CsCustomPolicyPackage": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsGroupPolicyAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsGroupPolicyAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsGroupPolicyAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Grant-CsGroupPolicyPackageAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsPolicyPackage": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsUserPolicyAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsUserPolicyPackage": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsTeamTemplateList": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Update-CsTeamTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsTeamTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "New-CsTeamTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsUserPolicyPackageRecommendation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Grant-CsUserPolicyPackage": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "New-CsBatchTeamsDeployment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsBatchTeamsDeploymentStatus": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnectionConnector": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnectionOperation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Test-CsTeamsShiftsConnectionValidate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "New-CsTeamsShiftsConnectionInstance": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsTeamsShiftsConnectionInstance": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Update-CsTeamsShiftsConnectionInstance": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsTeamsShiftsConnectionInstance": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnectionInstance": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnectionWfmTeam": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "New-CsTeamsShiftsConnectionBatchTeamMap": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsTeamsShiftsConnectionTeamMap": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnectionTeamMap": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnectionSyncResult": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnectionWfmUser": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsTeamsShiftsScheduleRecord": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnectionErrorReport": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Disable-CsTeamsShiftsConnectionErrorReport": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "New-CsTeamsShiftsConnection": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsTeamsShiftsConnection": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsTeamsShiftsConnection": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Update-CsTeamsShiftsConnection": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsTeamsShiftsConnection": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsOnlineAudioFile": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsOnlineAudioFile": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Export-CsOnlineAudioFile": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Move-CsInternalHelper": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Invoke-CsRehomeUser": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "Torus", + "SelfHost" + ] + }, + "Invoke-CsInternalPSTelemetry": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineTelephoneNumberCountry": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineTelephoneNumberType": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineTelephoneNumberOrder": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineTelephoneNumberOrder": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Complete-CsOnlineTelephoneNumberOrder": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Clear-CsOnlineTelephoneNumberOrder": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsPhoneNumberAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsPhoneNumberAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsPhoneNumberAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsPhoneNumberTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsPhoneNumberTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsPhoneNumberTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Update-CsPhoneNumberTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Export-CsAcquiredPhoneNumber": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsExportAcquiredPhoneNumberStatus": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsPhoneNumberPolicyAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsPhoneNumberPolicyAssignment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsConfigurationModern": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Set-CsConfigurationModern": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "New-CsConfigurationModern": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost" + ] + }, + "Invoke-CsDeprecatedError": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost" + ] + }, + "Disable-CsOnlineSipDomain": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineSipDomainModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ], + "DefaultAutoRestParameters": { + "Action": "Disable" + } + }, + "Enable-CsOnlineSipDomain": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineSipDomainModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ], + "DefaultAutoRestParameters": { + "Action": "Enable" + } + }, + "Export-CsAutoAttendantHolidays": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Find-CsGroup": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Find-CsOnlineApplicationInstance": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsApplicationAccessPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "ApplicationAccessPolicy" + } + }, + "Get-CsApplicationMeetingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "ApplicationMeetingConfiguration" + } + }, + "Get-CsAutoAttendant": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsAutoAttendantHolidays": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsAutoAttendantStatus": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsAutoAttendantSupportedLanguage": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsAutoAttendantSupportedTimeZone": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsAutoAttendantTenantInformation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsCallingLineIdentity": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "CallingLineIdentity" + } + }, + "Get-CsCallQueue": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsComplianceRecordingForCallQueueTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsSharedCallQueueHistoryTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsCloudCallDataConnection": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsCloudCallDataConnectionModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsDialPlan": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "DialPlan" + } + }, + "Get-CsEffectiveTenantDialPlan": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsEffectiveTenantDialPlanModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsHostingProvider": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "Torus", + "SelfHost" + ], + "DefaultAutoRestParameters": { + "ConfigType": "HostingProvider" + } + }, + "Get-CsHybridTelephoneNumber": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Get-CsInboundBlockedNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "InboundBlockedNumberPattern" + } + }, + "Get-CsInboundExemptNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "InboundExemptNumberPattern" + } + }, + "Get-CsMeetingMigrationStatus": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsMmsStatus", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineApplicationInstance": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineApplicationInstanceV2", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineApplicationInstanceAssociation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineApplicationInstanceAssociationStatus": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineAudioConferencingRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineAudioConferencingRoutingPolicy" + } + }, + "Get-CsBusinessVoiceDirectoryDiagnosticData": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineDialInConferencingBridge": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineDialInConferencingLanguagesSupported": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineDialinConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineDialinConferencingPolicy" + } + }, + "Get-CsOnlineDialInConferencingServiceNumber": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOdcServiceNumber", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineDialinConferencingTenantConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineDialinConferencingTenantConfiguration" + } + }, + "Get-CsOnlineDialInConferencingTenantSettings": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineDialInConferencingTenantSettings" + } + }, + "Get-CsOnlineDialInConferencingUser": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineDialOutPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineDialOutPolicy" + } + }, + "Get-CsOnlineDirectoryTenant": { + "CmdletType": "Remoting", + "ModernCmdlet": "Invoke-CsDeprecatedError", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ], + "DefaultAutoRestParameters": { + "DeprecatedErrorMessage": "This cmdlet is no longer supported, please consult public documentation or use Get-CsTenant and Get-CsOnlineDialinConferencingBridge to get the relevant attributes." + } + }, + "Get-CsOnlineEnhancedEmergencyServiceDisclaimer": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineLisCivicAddress": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineLisCivicAddressModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineLisLocation": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineLisLocationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineLisPort": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineLisPortModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineLisSubnet": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineLisSubnetModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineLisSwitch": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineLisSwitchModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineLisWirelessAccessPoint": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineLisWirelessAccessPointModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlinePSTNGateway": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlinePSTNGateway" + } + }, + "Get-CsOnlinePstnUsage": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlinePstnUsages" + } + }, + "Get-CsOnlineSchedule": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineSipDomain": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsOnlineSipDomainModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineTelephoneNumber": { + "CmdletType": "Remoting", + "ModernCmdlet": "Invoke-CsDeprecatedError", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ], + "DefaultAutoRestParameters": { + "DeprecatedErrorMessage": "This cmdlet is no longer supported, please consult public documentation" + } + }, + "Get-CsOnlineUser": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsUserSearch", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsMasObjectChangelog": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsMasVersionedSchemaData": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Invoke-CsDirectObjectSync": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Set-CsTenantUserBackfill": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Invoke-CsCustomHandlerNgtprov": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Invoke-CsCustomHandlerCallBackNgtprov": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsMoveTenantServiceInstanceTaskStatus": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Move-CsTenantServiceInstance": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Move-CsTenantCrossRegion": { + "CmdletType": "Custom", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineVoicemailUserSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineVoiceRoute": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineVoiceRoute" + } + }, + "Get-CsOnlineVoiceRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineVoiceRoutingPolicy" + } + }, + "Get-CsOnlineVoiceUser": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsVoiceUserList", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsTeamsAudioConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsAudioConferencingPolicy" + } + }, + "Get-CsTeamsCallParkPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsCallParkPolicy" + } + }, + "Get-CsTeamsCortanaPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsCortanaPolicy" + } + }, + "Get-CsTeamsEmergencyCallRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEmergencyCallRoutingPolicy" + } + }, + "Get-CsTeamsGuestCallingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsGuestCallingConfiguration" + } + }, + "Get-CsTeamsGuestMeetingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsGuestMeetingConfiguration" + } + }, + "Get-CsTeamsGuestMessagingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsGuestMessagingConfiguration" + } + }, + "Get-CsTeamsIPPhonePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsIPPhonePolicy" + } + }, + "Get-CsTeamsMeetingBroadcastConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMeetingBroadcastConfiguration" + } + }, + "Get-CsTeamsMeetingBroadcastPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMeetingBroadcastPolicy" + } + }, + "Get-CsTeamsEventsPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEventsPolicy" + } + }, + "Get-CsTeamsMigrationConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMigrationConfiguration" + } + }, + "Get-CsTeamsMobilityPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMobilityPolicy" + } + }, + "Get-CsTeamsNetworkRoamingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsNetworkRoamingPolicy" + } + }, + "Get-CsTeamsShiftsAppPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsShiftsAppPolicy" + } + }, + "Get-CsTeamsSurvivableBranchAppliance": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsSurvivableBranchAppliance" + } + }, + "Get-CsTeamsSurvivableBranchAppliancePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsSurvivableBranchAppliancePolicy" + } + }, + "Get-CsTeamsTargetingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsTargetingPolicy" + } + }, + "Get-CsTeamsTranslationRule": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsTranslationRule" + } + }, + "Get-CsTeamsUpgradePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsUpgradePolicy" + } + }, + "Get-CsTeamsVideoInteropServicePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsVideoInteropServicePolicy" + } + }, + "Get-CsTeamsWorkLoadPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsWorkLoadPolicy" + } + }, + "Get-CsTenant": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsTenantPoint", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsTenantBlockedCallingNumbers": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantBlockedCallingNumbers" + } + }, + "Get-CsTenantDialPlan": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantDialPlan" + } + }, + "Get-CsTenantFederationConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantFederationSettings" + } + }, + "Get-CsTenantLicensingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantLicensingConfiguration" + } + }, + "Get-CsTenantMigrationConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantMigrationConfiguration" + } + }, + "Get-CsTenantNetworkConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkConfiguration" + } + }, + "Get-CsTenantNetworkRegion": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkRegion" + } + }, + "Get-CsTenantNetworkSubnet": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkSubnet" + } + }, + "Get-CsTenantTrustedIPAddress": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantTrustedIPAddress" + } + }, + "Get-CsVideoInteropServiceProvider": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "VideoInteropServiceProvider" + } + }, + "Get-CsMainlineAttendantFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Grant-CsApplicationAccessPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "ApplicationAccessPolicy" + } + }, + "Grant-CsCallingLineIdentity": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "CallingLineIdentity" + } + }, + "Grant-CsDialoutPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "OnlineDialOutPolicy" + } + }, + "Grant-CsOnlineAudioConferencingRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "OnlineAudioConferencingRoutingPolicy" + } + }, + "Grant-CsOnlineVoicemailPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "OnlineVoicemailPolicy" + } + }, + "Grant-CsOnlineVoiceRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "OnlineVoiceRoutingPolicy" + } + }, + "Grant-CsTeamsAudioConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsAudioConferencingPolicy" + } + }, + "Grant-CsTeamsCallHoldPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsCallHoldPolicy" + } + }, + "Grant-CsTeamsCallParkPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsCallParkPolicy" + } + }, + "Grant-CsTeamsChannelsPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsChannelsPolicy" + } + }, + "Grant-CsTeamsComplianceRecordingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsComplianceRecordingPolicy" + } + }, + "Grant-CsTeamsCortanaPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsCortanaPolicy" + } + }, + "Grant-CsTeamsEmergencyCallingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsEmergencyCallingPolicy" + } + }, + "Grant-CsTeamsEmergencyCallRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsEmergencyCallRoutingPolicy" + } + }, + "Grant-CsTeamsEnhancedEncryptionPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsEnhancedEncryptionPolicy" + } + }, + "Grant-CsTeamsFeedbackPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsFeedbackPolicy" + } + }, + "Grant-CsTeamsIPPhonePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsIPPhonePolicy" + } + }, + "Get-CsTeamsMediaLoggingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMediaLoggingPolicy" + } + }, + "Grant-CsTeamsMediaLoggingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsMediaLoggingPolicy" + } + }, + "Grant-CsTeamsMeetingBroadcastPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsMeetingBroadcastPolicy" + } + }, + "Grant-CsTeamsEventsPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsEventsPolicy" + } + }, + "Grant-CsTeamsMeetingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsMeetingPolicy" + } + }, + "Grant-CsTeamsMessagingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsMessagingPolicy" + } + }, + "Grant-CsTeamsMobilityPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsMobilityPolicy" + } + }, + "Grant-CsTeamsSurvivableBranchAppliancePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsSurvivableBranchAppliancePolicy" + } + }, + "Grant-CsTeamsUpdateManagementPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsUpdateManagementPolicy" + } + }, + "Grant-CsTeamsUpgradePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsUpgradePolicy" + } + }, + "Grant-CsTeamsVideoInteropServicePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsVideoInteropServicePolicy" + } + }, + "Grant-CsTeamsVoiceApplicationsPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsVoiceApplicationsPolicy" + } + }, + "Grant-CsTeamsWorkLoadPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsWorkLoadPolicy" + } + }, + "Grant-CsTenantDialPlan": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TenantDialPlan" + } + }, + "Import-CsAutoAttendantHolidays": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Import-CsOnlineAudioFile": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsApplicationAccessPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "ApplicationAccessPolicy" + } + }, + "New-CsAutoAttendant": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsAutoAttendantCallableEntity": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsAutoAttendantCallFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsAutoAttendantCallHandlingAssociation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsAutoAttendantDialScope": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsAutoAttendantMenu": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsAutoAttendantMenuOption": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsAutoAttendantPrompt": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsTag": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsCallingLineIdentity": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "CallingLineIdentity" + } + }, + "New-CsCallQueue": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsComplianceRecordingForCallQueueTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsSharedCallQueueHistoryTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsMainlineAttendantAppointmentBookingFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsMainlineAttendantAppointmentBookingFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsMainlineAttendantAppointmentBookingFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsMainlineAttendantAppointmentBookingFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsMainlineAttendantQuestionAnswerFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsMainlineAttendantQuestionAnswerFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsMainlineAttendantQuestionAnswerFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsMainlineAttendantQuestionAnswerFlow": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsCloudCallDataConnection": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsCloudCallDataConnectionModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "New-CsEdgeAllowAllKnownDomains": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsEdgeAllowAllKnownDomainsHelper", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsEdgeAllowList": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsEdgeAllowListHelper", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsEdgeDomainPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsEdgeDomainPatternHelper", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsHybridTelephoneNumber": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "New-CsInboundBlockedNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "InboundBlockedNumberPattern" + } + }, + "New-CsInboundExemptNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "InboundExemptNumberPattern" + } + }, + "New-CsOnlineApplicationInstance": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsOnlineApplicationInstanceV2", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineApplicationInstanceAssociation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineAudioConferencingRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineAudioConferencingRoutingPolicy" + } + }, + "New-CsOnlineDateTimeRange": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineLisCivicAddress": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsOnlineLisCivicAddressModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineLisLocation": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsOnlineLisLocationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlinePSTNGateway": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlinePSTNGateway" + } + }, + "New-CsOnlineSchedule": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineTimeRange": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineVoiceRoute": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineVoiceRoute" + } + }, + "New-CsOnlineVoiceRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineVoiceRoutingPolicy" + } + }, + "New-CsTeamsAudioConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsAudioConferencingPolicy" + } + }, + "New-CsTeamsCallParkPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsCallParkPolicy" + } + }, + "New-CsTeamsCortanaPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsCortanaPolicy" + } + }, + "New-CsTeamsEmergencyCallRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEmergencyCallRoutingPolicy" + } + }, + "New-CsTeamsEmergencyNumber": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsTeamsEmergencyNumberHelper", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsTeamsIPPhonePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsIPPhonePolicy" + } + }, + "New-CsTeamsMeetingBroadcastPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMeetingBroadcastPolicy" + } + }, + "New-CsTeamsEventsPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEventsPolicy" + } + }, + "New-CsTeamsMobilityPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMobilityPolicy" + } + }, + "New-CsTeamsNetworkRoamingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsNetworkRoamingPolicy" + } + }, + "New-CsTeamsSurvivableBranchAppliance": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsSurvivableBranchAppliance" + } + }, + "New-CsTeamsSurvivableBranchAppliancePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsSurvivableBranchAppliancePolicy" + } + }, + "New-CsTeamsTranslationRule": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsTranslationRule" + } + }, + "New-CsTeamsWorkLoadPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsWorkLoadPolicy" + } + }, + "New-CsTenantDialPlan": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantDialPlan" + } + }, + "New-CsTenantNetworkRegion": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkRegion" + } + }, + "New-CsTenantNetworkSite": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkSite" + } + }, + "New-CsTenantNetworkSubnet": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkSubnet" + } + }, + "New-CsTenantTrustedIPAddress": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantTrustedIPAddress" + } + }, + "New-CsVideoInteropServiceProvider": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "VideoInteropServiceProvider" + } + }, + "New-CsVoiceNormalizationRule": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsVoiceNormalizationRuleHelper", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Register-CsOnlineDialInConferencingServiceNumber": { + "CmdletType": "Remoting", + "ModernCmdlet": "Register-CsOdcServiceNumber", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsApplicationAccessPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "ApplicationAccessPolicy" + } + }, + "Remove-CsAutoAttendant": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsCallingLineIdentity": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "CallingLineIdentity" + } + }, + "Remove-CsCallQueue": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsComplianceRecordingForCallQueueTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsSharedCallQueueHistoryTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsHybridTelephoneNumber": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsInboundBlockedNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "InboundBlockedNumberPattern" + } + }, + "Remove-CsInboundExemptNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "InboundExemptNumberPattern" + } + }, + "Remove-CsOnlineApplicationInstanceAssociation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlineAudioConferencingRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineAudioConferencingRoutingPolicy" + } + }, + "Remove-CsOnlineDialInConferencingTenantSettings": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineDialInConferencingTenantSettings" + } + }, + "Remove-CsOnlineLisCivicAddress": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsOnlineLisCivicAddressModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlineLisLocation": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsOnlineLisLocationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlineLisPort": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsOnlineLisPortModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlineLisSubnet": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsOnlineLisSubnetModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlineLisSwitch": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsOnlineLisSwitchModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlineLisWirelessAccessPoint": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsOnlineLisWirelessAccessPointModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlinePSTNGateway": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlinePSTNGateway" + } + }, + "Remove-CsOnlineSchedule": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlineTelephoneNumber": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsOnlineTelephoneNumberModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineTelephoneNumberReleaseOrder": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "New-CsOnlineDirectRoutingTelephoneNumberUploadOrder": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Remove-CsOnlineVoiceRoute": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineVoiceRoute" + } + }, + "Remove-CsOnlineVoiceRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineVoiceRoutingPolicy" + } + }, + "Remove-CsTeamsAudioConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsAudioConferencingPolicy" + } + }, + "Remove-CsTeamsCallParkPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsCallParkPolicy" + } + }, + "Remove-CsTeamsCortanaPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsCortanaPolicy" + } + }, + "Remove-CsTeamsEmergencyCallRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEmergencyCallRoutingPolicy" + } + }, + "Remove-CsTeamsIPPhonePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsIPPhonePolicy" + } + }, + "Remove-CsTeamsMeetingBroadcastPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMeetingBroadcastPolicy" + } + }, + "Remove-CsTeamsEventsPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEventsPolicy" + } + }, + "Remove-CsTeamsMobilityPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMobilityPolicy" + } + }, + "Remove-CsTeamsNetworkRoamingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsNetworkRoamingPolicy" + } + }, + "Remove-CsTeamsSurvivableBranchAppliance": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsSurvivableBranchAppliance" + } + }, + "Remove-CsTeamsSurvivableBranchAppliancePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsSurvivableBranchAppliancePolicy" + } + }, + "Remove-CsTeamsTargetingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsTargetingPolicy" + } + }, + "Remove-CsTeamsTranslationRule": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsTranslationRule" + } + }, + "Remove-CsTeamsWorkLoadPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsWorkLoadPolicy" + } + }, + "Remove-CsTenantDialPlan": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantDialPlan" + } + }, + "Remove-CsTenantNetworkRegion": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkRegion" + } + }, + "Remove-CsTenantNetworkSite": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkSite" + } + }, + "Remove-CsTenantNetworkSubnet": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkSubnet" + } + }, + "Remove-CsTenantTrustedIPAddress": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantTrustedIPAddress" + } + }, + "Remove-CsVideoInteropServiceProvider": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "VideoInteropServiceProvider" + } + }, + "Set-CsApplicationAccessPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "ApplicationAccessPolicy" + } + }, + "Set-CsApplicationMeetingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "ApplicationMeetingConfiguration" + } + }, + "Set-CsAutoAttendant": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsCallingLineIdentity": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "CallingLineIdentity" + } + }, + "Set-CsCallQueue": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsComplianceRecordingForCallQueueTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsTagsTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsSharedCallQueueHistoryTemplate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsInboundBlockedNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "InboundBlockedNumberPattern" + } + }, + "Set-CsInboundExemptNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "InboundExemptNumberPattern" + } + }, + "Set-CsOnlineApplicationInstance": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineApplicationInstanceV2", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineAudioConferencingRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineAudioConferencingRoutingPolicy" + } + }, + "Set-CsOnlineDialInConferencingBridge": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineDialInConferencingServiceNumber": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOdcServiceNumber", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineDialInConferencingTenantSettings": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineDialInConferencingTenantSettings" + } + }, + "Set-CsOnlineDialInConferencingUser": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineDialInConferencingUserDefaultNumber": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineEnhancedEmergencyServiceDisclaimer": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineLisCivicAddress": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineLisCivicAddressModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineLisLocation": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineLisLocationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineLisPort": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineLisPortModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineLisSubnet": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineLisSubnetModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineLisSwitch": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineLisSwitchModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineLisWirelessAccessPoint": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineLisWirelessAccessPointModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlinePSTNGateway": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlinePSTNGateway" + } + }, + "Set-CsOnlinePstnUsage": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlinePstnUsages" + } + }, + "Set-CsOnlineSchedule": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineVoiceApplicationInstance": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineVoiceApplicationInstanceV2", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineVoicemailUserSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsOnlineVoiceRoute": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineVoiceRoute" + } + }, + "Set-CsOnlineVoiceRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "OnlineVoiceRoutingPolicy" + } + }, + "Set-CsOnlineVoiceUser": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsOnlineVoiceUserV2", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsTeamsAudioConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsAudioConferencingPolicy" + } + }, + "Set-CsTeamsCallParkPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsCallParkPolicy" + } + }, + "Set-CsTeamsCortanaPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsCortanaPolicy" + } + }, + "Set-CsTeamsEmergencyCallRoutingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEmergencyCallRoutingPolicy" + } + }, + "Set-CsTeamsGuestCallingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsGuestCallingConfiguration" + } + }, + "Set-CsTeamsGuestMeetingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsGuestMeetingConfiguration" + } + }, + "Set-CsTeamsGuestMessagingConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsGuestMessagingConfiguration" + } + }, + "Set-CsTeamsIPPhonePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsIPPhonePolicy" + } + }, + "Set-CsTeamsMeetingBroadcastConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMeetingBroadcastConfiguration" + } + }, + "Set-CsTeamsMeetingBroadcastPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMeetingBroadcastPolicy" + } + }, + "Set-CsTeamsEventsPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEventsPolicy" + } + }, + "Set-CsTeamsMigrationConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMigrationConfiguration" + } + }, + "Set-CsTeamsMobilityPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsMobilityPolicy" + } + }, + "Set-CsTeamsNetworkRoamingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsNetworkRoamingPolicy" + } + }, + "Set-CsTeamsShiftsAppPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsShiftsAppPolicy" + } + }, + "Set-CsTeamsSurvivableBranchAppliance": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsSurvivableBranchAppliance" + } + }, + "Set-CsTeamsSurvivableBranchAppliancePolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsSurvivableBranchAppliancePolicy" + } + }, + "Set-CsTeamsTargetingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsTargetingPolicy" + } + }, + "Set-CsTeamsTranslationRule": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsTranslationRule" + } + }, + "Set-CsTeamsWorkLoadPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsWorkLoadPolicy" + } + }, + "Set-CsTenantBlockedCallingNumbers": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantBlockedCallingNumbers" + } + }, + "Set-CsTenantDialPlan": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantDialPlan" + } + }, + "Set-CsTenantFederationConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantFederationSettings" + } + }, + "Set-CsTenantMigrationConfiguration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantMigrationConfiguration" + } + }, + "Set-CsTenantNetworkRegion": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkRegion" + } + }, + "Set-CsTenantNetworkSite": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkSite" + } + }, + "Set-CsTenantNetworkSubnet": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantNetworkSubnet" + } + }, + "Set-CsTenantTrustedIPAddress": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TenantTrustedIPAddress" + } + }, + "Set-CsUser": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsUserModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsVideoInteropServiceProvider": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "VideoInteropServiceProvider" + } + }, + "Start-CsExMeetingMigration": { + "CmdletType": "Remoting", + "ModernCmdlet": "Start-CsMeetingMigrationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Sync-CsOnlineApplicationInstance": { + "CmdletType": "Remoting", + "ModernCmdlet": "Sync-CsOnlineApplicationInstanceV2", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsOnlineApplicationInstanceDiagnosticData": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Test-CsEffectiveTenantDialPlan": { + "CmdletType": "Remoting", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ModernCmdlet": "Test-CsEffectiveTenantDialPlanModern", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Test-CsInboundBlockedNumberPattern": { + "CmdletType": "Remoting", + "ModernCmdlet": "Test-CsInboundBlockedNumberPatternModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Test-CsTeamsUnassignedNumberTreatment": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Test-CsTeamsTranslationRule": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Test-CsVoiceNormalizationRule": { + "CmdletType": "Remoting", + "ModernCmdlet": "Test-CsVoiceNormalizationRuleModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Unregister-CsOnlineDialInConferencingServiceNumber": { + "CmdletType": "Remoting", + "ModernCmdlet": "Unregister-CsOdcServiceNumber", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Update-CsAutoAttendant": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Set-CsTeamsUnassignedNumberTreatment": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsUnassignedNumberTreatment" + } + }, + "Remove-CsTeamsUnassignedNumberTreatment": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsUnassignedNumberTreatment" + } + }, + "New-CsTeamsUnassignedNumberTreatment": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsUnassignedNumberTreatment" + } + }, + "Get-CsTeamsUnassignedNumberTreatment": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsUnassignedNumberTreatment" + } + }, + "Get-CsTeamsEnhancedEncryptionPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEnhancedEncryptionPolicy" + } + }, + "Set-CsTeamsEnhancedEncryptionPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEnhancedEncryptionPolicy" + } + }, + "Remove-CsTeamsEnhancedEncryptionPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEnhancedEncryptionPolicy" + } + }, + "New-CsTeamsEnhancedEncryptionPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsEnhancedEncryptionPolicy" + } + }, + "Get-CsTeamsRoomVideoTeleConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Get-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsRoomVideoTeleConferencingPolicy" + } + }, + "Set-CsTeamsRoomVideoTeleConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Set-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsRoomVideoTeleConferencingPolicy" + } + }, + "Remove-CsTeamsRoomVideoTeleConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Remove-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsRoomVideoTeleConferencingPolicy" + } + }, + "New-CsTeamsRoomVideoTeleConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "New-CsConfigurationModern", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "ConfigType": "TeamsRoomVideoTeleConferencingPolicy" + } + }, + "Grant-CsTeamsRoomVideoTeleConferencingPolicy": { + "CmdletType": "Remoting", + "ModernCmdlet": "Grant-CsTeamsPolicy", + "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ], + "DefaultAutoRestParameters": { + "PolicyType": "TeamsRoomVideoTeleConferencingPolicy" + } + }, + "Get-CsUssUserSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Set-CsUssUserSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsUserCallingSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsUserCallingSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "New-CsUserCallingDelegate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsUserCallingDelegate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsUserCallingDelegate": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsOCEContext": { + "CmdletType": "Custom", + "ExportsTo": [ + "Torus" + ] + }, + "Clear-CsOCEContext": { + "CmdletType": "Custom", + "ExportsTo": [ + "Torus" + ] + }, + "Set-CsRegionContext": { + "CmdletType": "Custom", + "ExportsTo": [ + "Torus" + ] + }, + "Get-CsRegionContext": { + "CmdletType": "Custom", + "ExportsTo": [ + "Torus" + ] + }, + "Clear-CsRegionContext": { + "CmdletType": "Custom", + "ExportsTo": [ + "Torus" + ] + }, + "Get-CsMeetingMigrationTransactionHistory": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "Torus" + ] + }, + "Get-CsCloudTenant": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsCloudUser": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsTeamsSettingsCustomApp": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsTeamsSettingsCustomApp": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Remove-CsUserLicenseGracePeriod": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost", + "Torus" + ] + }, + "Get-CsAadTenant": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsAadUser": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Clear-CsCacheOperation": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Move-CsAvsTenantPartition": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Invoke-CsMsodsSync": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "SelfHost", + "Torus" + ] + }, + "Get-CsPersonalAttendantSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + }, + "Set-CsPersonalAttendantSettings": { + "CmdletType": "AutoRest", + "ExportsTo": [ + "TeamsGA", + "TeamsPreview", + "SelfHost" + ] + } + } +} diff --git a/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 b/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 new file mode 100644 index 000000000000..dcc801138e2a --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 @@ -0,0 +1,13512 @@ +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this file is to throw an error message that it is deprecated or there is equivalent cmdlets that do the work + +function Invoke-CsDeprecatedError { + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)] + [System.String] + # Error action. + ${DeprecatedErrorMessage}, + + [Parameter(Mandatory=$false)] + [System.Collections.Hashtable] + $PropertyBag + ) + + process { + Write-Error -Message $DeprecatedErrorMessage + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format enum of the cmdlet output + +class ProcessedGetOnlineEnhancedEmergencyServiceDisclaimerResponse { + [string]$Country + [string]$Version + [string]$Content + [string]$Response + [string]$RespondedByObjectId + [DateTime]$ResponseTimestamp + [string]$CorrelationId + [string]$Locale +} + +function Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true)] + [System.String] + # CountryOrRegion of the Emergency Disclaimer + ${CountryOrRegion}, + + [Parameter(Mandatory=$false)] + [System.String] + # Version of the Emergency Disclaimer + ${Version}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try + { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $edresponse = '' + + $input = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineEnhancedEmergencyServiceDisclaimer @PSBoundParameters -ErrorAction Stop @httpPipelineArgs + + if ($input -ne $null -and $input.Response -ne $null) + { + switch ($input.Response) + { + 0 {$edresponse = 'None'} + 1 {$edresponse = 'Accepted'} + 2 {$edresponse = 'NotAccepted'} + } + + $result = [ProcessedGetOnlineEnhancedEmergencyServiceDisclaimerResponse]::new() + $result.Content = $input.Content + $result.CorrelationId = $input.CorrelationId + $result.Country = $input.Country + $result.Locale = $input.Locale + $result.RespondedByObjectId = $input.RespondedByObjectId + $result.Response = $edresponse + $result.ResponseTimestamp = $input.ResponseTimestamp + $result.Version = $input.Version + + return $result + } + } + catch + { + Write-Host $_ + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Provide option to Accept or Reject Disclaimer + +class ProcessedSetOnlineEnhancedEmergencyServiceDisclaimerResponse { + [string]$Country + [string]$Version + [string]$Content + [string]$Response + [string]$RespondedByObjectId + [DateTime]$ResponseTimestamp + [string]$CorrelationId + [string]$Locale +} + +function Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # CountryOrRegion of the Emergency Disclaimer + ${CountryOrRegion}, + [Parameter(Mandatory=$false, position=1)] + [System.String] + # Version of the Emergency Disclaimer + ${Version}, + [Parameter(Mandatory=$false)] + [System.Management.Automation.SwitchParameter] + # ForceAccept Emergency Disclaimer, Disclaimer will pop up without this parameter provided + ${ForceAccept}, + [Parameter(Mandatory=$false)] + [System.String] + # Response of the Emergency Disclaimer + ${Response}, + [Parameter(Mandatory=$false)] + [System.String] + # RespondedByObjectId of the Emergency Disclaimer + ${RespondedByObjectId}, + [Parameter(Mandatory=$false)] + [System.String] + # ResponseTimestamp of the Emergency Disclaimer + ${ResponseTimestamp}, + [Parameter(Mandatory=$false)] + [System.String] + # Locale of the Emergency Disclaimer + ${Locale}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($PSBoundParameters.ContainsKey("ForceAccept")) { + $PSBoundParameters.Remove("ForceAccept") | Out-Null + } + + $ged = $null + $edContent = $null + $edCountry = $null + $edVersion = $null + $edResponse = $null + $edRespondedByObjectId = $null + $edResponseTimestamp = $null + $edLocale = $null + + try + { + $ged = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineEnhancedEmergencyServiceDisclaimer @PSBoundParameters -ErrorAction Stop @httpPipelineArgs + $edContent = Out-String -InputObject $ged.Content + $edCountry = Out-String -InputObject $ged.Country + $edVersion = Out-String -InputObject $ged.Version + $edResponse = Out-String -InputObject $ged.Response + $edRespondedByObjectId = Out-String -InputObject $ged.RespondedByObjectId + $edResponseTimestamp = [DateTime]::UtcNow.ToString('u') + $edLocale = Out-String -InputObject $ged.Locale + + if ([string]::IsNullOrEmpty($edContent)) + { + $DiagnosticCode = Out-String -InputObject $ged.DiagnosticCode + $DiagnosticCorrelationId = Out-String -InputObject $ged.DiagnosticCorrelationId + #$DiagnosticDebugContent = Out-String -InputObject $ged.DiagnosticDebugContent + $DiagnosticGenevaLogsUrl = Out-String -InputObject $ged.DiagnosticGenevaLogsUrl + $DiagnosticReason = Out-String -InputObject $ged.DiagnosticReason + $DiagnosticSubCode = Out-String -InputObject $ged.DiagnosticSubCode + + Write-Host "DiagnosticCode : "$DiagnosticCode + Write-Host "DiagnosticCorrelationId :" $DiagnosticCorrelationId + #Write-Host $DiagnosticDebugContent + Write-Host "DiagnosticGenevaLogsUrl : " $DiagnosticGenevaLogsUrl + Write-Host "DiagnosticReason : " $DiagnosticReason + Write-Host "DiagnosticSubCode : "$DiagnosticSubCode + Return + } + } catch { + throw + } + + if(!${ForceAccept}) + { + $confirmation = Read-Host $edContent"`n[Y] Yes [N] No (default is `"N`")" + switch($confirmation) { + 'Y' { + Break + } + Default { + Return + } + } + + } else { + $null = $PSBoundParameters.Remove('ForceAccept') + } + + try { + + [System.String[]]$global:configscopes = @("48ac35b8-9aa8-4d74-927d-1f4a14a0b239/user_impersonation") + + Write-Host "Timestamp " $edResponseTimestamp + + $edResponse = 1 + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOnlineEnhancedEmergencyServiceDisclaimer -Country ${CountryOrRegion} -Version ${Version} -Content $edContent -Response $edResponse -RespondedByObjectId $edRespondedByObjectId -ResponseTimestamp $edResponseTimestamp -Locale ${Locale} -ErrorAction Stop @httpPipelineArgs + } catch { + throw + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsConfigurationModern { + [CmdletBinding(DefaultParameterSetName = 'ConfigType')] + param( + [Parameter(Mandatory=$true, ParameterSetName='ConfigType')] + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [Parameter(Mandatory=$true, ParameterSetName='Filter')] + [System.String] + # Type of configuration retrieved. + ${ConfigType}, + + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + # Name of configuration retrieved. + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='Filter')] + [System.String] + # Name of configuration retrieved. + ${Filter}, + + [Parameter(Mandatory=$false)] + [System.Collections.Hashtable] + ${PropertyBag}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $null = $customCmdletUtils.ProcessArgs() + + $xdsConfigurationOutput0 = $null + + $HashArguments = @{ ConfigType = $ConfigType} + + if (![string]::IsNullOrWhiteSpace($Identity)) + { + $HashArguments.Add('ConfigName', $Identity) + } + + $TeamsMeetingBroadcastConfiguration_FixupFormat = $false + + if($PropertyBag -ne $null) + { + if($ConfigType -eq 'TeamsMeetingBroadcastConfiguration') + { + if($PropertyBag['ExposeSDNConfigurationJsonBlob'] -eq $true) + { + $TeamsMeetingBroadcastConfiguration_FixupFormat = $true + $HashArguments.Add('HttpPipelinePrepend', { param($req, $callback, $next ) $req.RequestUri = [Uri]($req.RequestUri.ToString() + '?ExposeSDNConfigurationJsonBlob=true'); return $next.SendAsync($req, $callback); }) + } + } + else + { + #ignore + } + } + + $null = $customCmdletUtils.PutHttpPipelineSteps($HashArguments) + + $xdsConfigurationOutput0 = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsConfiguration @HashArguments + + $xdsConfigurationOutput = ($xdsConfigurationOutput0 | %{ + Convert-PsCustomObjectToPsObject (ConvertFrom-Json -InputObject $_) + }) + + if (![string]::IsNullOrWhiteSpace($Filter)) + { + $xdsConfigurationOutput = $xdsConfigurationOutput | Where-Object {($_.Identity -Like "$Filter") -or ($_.Identity -Like "Tag:$Filter")} + } + + $xdsConfigurationOutput = $xdsConfigurationOutput | %{ Set-FormatOnConfigObject -ConfigObject $_ -ConfigType $ConfigType } + + if($ConfigType -eq 'TenantFederationSettings') + { + $xdsConfigurationOutput = $xdsConfigurationOutput | %{ Convert-PsCustomObjectToPsObject (Set-FixTenantFedConfigObject -ConfigObject $_) } + } + + if($ConfigType -eq 'OnlinePSTNGateway') + { + $xdsConfigurationOutput = $xdsConfigurationOutput | %{ Convert-PsCustomObjectToPsObject (Set-FixTypoInOnlinePSTNGatewayConfigObject -ConfigObject $_) } + } + + if($TeamsMeetingBroadcastConfiguration_FixupFormat) + { + #why are we special handling this? when legacy is run, the format type name is sdnconfigurationextension which is not a wellknown type inside SfbRpsModule.format.ps1xml + #so we hack this here so that we order them and select what we need (so we dont return key, datasource) + $xdsConfigurationOutput = ($xdsConfigurationOutput | select Identity, SupportURL, AllowSdnProviderForBroadcastMeeting, SdnName, SdnLicenseId, SdnAzureSubscriptionId, SdnApiTemplateUrl, SdnApiToken, SdnRuntimeconfiguration, SdnAttendeeFallbackCount) + } + + return (Sort-GlobalFirst $xdsConfigurationOutput) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} + +# output Identity=Global before other identities +function Sort-GlobalFirst($out) +{ + # keep legacy behavior to return nothing instead of $null when nothing is found + if (($out | measure).Count -eq 0) { return } + + $out | ?{ $_.Identity -eq "Global" } + $out | ?{ $_.Identity -ne "Global" } +} + +# convert PSCustom Object to PSObject by using psserializer +function Custom-ToString($xnode) +{ + $props_to_hide = @("Element","XsAnyElements","XsAnyAttributes") + + $nodes = $xnode.SelectNodes('*[name() = "MS" or name() = "Props"]/*') + $values = ($nodes | % { + if ($_.N -notin $props_to_hide) + { + $val = $_.SelectSingleNode("text()").Value + if ($_.Name -eq "B") { $val = [bool]::Parse($val)} + "$($_.N)=$val" + } + }) + if ($values) { [string]::Join(";", $values) } +} + +function Convert-PsCustomObjectToPsObject($in) +{ + $serialized = [System.Management.Automation.PSSerializer]::Serialize($in) + $xml = [xml]$serialized + foreach ($obj in $xml.GetElementsByTagName("Obj")) + { + if ($obj.Item("LST") -eq $null -and $obj.Item("Props") -eq $null) + { + $props = $xml.CreateElement("Props", $xml.Objs.xmlns) + $null = $obj.PrependChild($props) + + if ($obj.Item("ToString") -eq $null) + { + $text = Custom-ToString $obj + if ($text -ne $null) + { + $tostring = $xml.CreateElement("ToString", $xml.Objs.xmlns) + $tostring.InnerText = $text + $null = $obj.PrependChild($tostring) + } + } + } + } + return [System.Management.Automation.PSSerializer]::Deserialize($xml.OuterXml) +} + +function Get-FormatsForConfig { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [string] + # The int status from status record + ${ConfigType} + ) + process { + # order of values like value1 and value2 is important in lines like "ConfigType=value1, value2" + $mappings = @( + "ApplicationAccessPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.ApplicationAccessPolicy", + "ApplicationMeetingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.ApplicationMeetingConfiguration", + "CallingLineIdentity=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.CallingLineIdentity", + "DialPlan=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile", + "ExternalAccessPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy", + "InboundBlockedNumberPattern=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern#Decorated,Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern", + "InboundExemptNumberPattern=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern#Decorated,Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern", + "OnlineAudioConferencingRoutingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineAudioConferencingRoutingPolicy", + "OnlineDialinConferencingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialinConferencing.OnlineDialinConferencingPolicy", + "OnlineDialinConferencingTenantConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingTenantConfiguration", + "OnlineDialInConferencingTenantSettings=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingTenantSettings", + "OnlineDialInConferencingTenantSettings.AllowedDialOutExternalDomains=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingAllowedDomain", + "OnlineDialOutPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialOut.OnlineDialOutPolicy", + "OnlinePSTNGateway=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated2,Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig", + "OnlinePstnUsages=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlinePstnUsages", + "OnlineVoicemailPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineVoicemail.OnlineVoicemailPolicy", + "OnlineVoiceRoute=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineRoute#Decorated", + "OnlineVoiceRoutingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineVoiceRoutingPolicy", + "PrivacyConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration", + "TeamsAcsFederationConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsConfiguration.TeamsAcsFederationConfiguration", + "TeamsAppPermissionPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppPermissionPolicy", + "TeamsAppPermissionPolicy.DefaultCatalogApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.DefaultCatalogApp", + "TeamsAppPermissionPolicy.GlobalCatalogApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.GlobalCatalogApp", + "TeamsAppPermissionPolicy.PrivateCatalogApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PrivateCatalogApp", + "TeamsAppSetupPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppSetupPolicy", + "TeamsAppSetupPolicy.AppPresetList=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPreset", + "TeamsAppSetupPolicy.AppPresetMeetingList=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPresetMeeting", + "TeamsAppSetupPolicy.PinnedAppBarApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedApp", + "TeamsAppSetupPolicy.PinnedMessageBarApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedMessageBarApp", + "TeamsAudioConferencingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.TeamsAudioConferencing.TeamsAudioConferencingPolicy", + "TeamsCallHoldPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallHoldPolicy", + "TeamsCallingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallingPolicy", + "TeamsCallParkPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallParkPolicy", + "TeamsChannelsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsChannelsPolicy", + "TeamsClientConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsClientConfiguration", + "TeamsComplianceRecordingApplication=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication#Decorated,Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication", + "TeamsComplianceRecordingApplication.ComplianceRecordingPairedApplications=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingPairedApplication", + "TeamsComplianceRecordingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsComplianceRecordingPolicy", + "TeamsComplianceRecordingPolicy.ComplianceRecordingApplications=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication", + "TeamsCortanaPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCortanaPolicy", + "TeamsEducationAssignmentsAppPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEducationAssignmentsAppPolicy", + "TeamsEducationConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsEducationConfiguration", + "TeamsEmergencyCallingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallingPolicy", + "TeamsEmergencyCallRoutingPolicy.EmergencyNumbers=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyNumber", + "TeamsEmergencyCallRoutingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallRoutingPolicy", + "TeamsFeedbackPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFeedbackPolicy", + "TeamsGuestCallingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestCallingConfiguration", + "TeamsGuestMeetingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMeetingConfiguration", + "TeamsGuestMessagingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMessagingConfiguration", + "TeamsIPPhonePolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsIPPhonePolicy", + "TeamsMeetingBroadcastConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingBroadcastConfiguration", + "TeamsMeetingBroadcastPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMeetingBroadcastPolicy", + "TeamsMeetingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMeetingConfiguration.TeamsMeetingConfiguration", + "TeamsMeetingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.TeamsMeetingPolicy", + "TeamsMessagingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMessagingPolicy", + "TeamsMigrationConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMigrationConfiguration.TeamsMigrationConfiguration", + "TeamsMobilityPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMobilityPolicy", + "TeamsNetworkRoamingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNetworkRoamingPolicy", + "TeamsNotificationAndFeedsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNotificationAndFeedsPolicy", + "TeamsShiftsAppPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsAppPolicy", + "TeamsShiftsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsPolicy", + "TeamsSurvivableBranchAppliance=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.SurvivableBranchAppliance#Decorated", + "TeamsSurvivableBranchAppliancePolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TeamsBranchSurvivabilityPolicy", + "TeamsTranslationRule=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.PstnTranslationRule#Decorated", + "TeamsTargetingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsTargetingPolicy", + "TeamsUnassignedNumberTreatment=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UnassignedNumberTreatmentConfiguration.UnassignedNumberTreatment#Decorated", + "TeamsUpdateManagementPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpdateManagementPolicy", + "TeamsUpgradeConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsUpgradeConfiguration", + "TeamsUpgradePolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy", + "TeamsVdiPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVdiPolicy", + "TeamsVideoInteropServicePolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVideoInteropServicePolicy", + "TeamsVoiceApplicationsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVoiceApplicationsPolicy", + "TeamsWorkLoadPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsWorkLoadPolicy", + "TenantBlockedCallingNumbers=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantBlockedCallingNumbers", + "TenantBlockedCallingNumbers.InboundBlockedNumberPatterns=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern", + "TenantBlockedCallingNumbers.InboundExemptNumberPatterns=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern", + "TenantDialPlan=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantDialPlan", + "TenantDialPlan.NormalizationRules=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule", + "TenantFederationSettings=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings", + "TenantFederationSettings.AllowedDomains=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowList", + "TenantFederationSettings.BlockedDomains=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DomainPattern", + "TenantLicensingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantLicensingConfiguration", + "TenantMigrationConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantMigration.TenantMigrationConfiguration", + "TenantNetworkConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TenantNetworkConfigurationSettings", + "TenantNetworkConfiguration.NetworkRegions=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkRegionType#Decorated", + "TenantNetworkConfiguration.NetworkSites=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.DisplayNetworkSiteWithExpandParametersType#Decorated", + "TenantNetworkConfiguration.Subnets=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType#Decorated", + "TenantNetworkRegion=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.DisplayNetworkRegionType#Decorated", + "TenantNetworkSite=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.DisplayNetworkSiteWithExpandParametersType#Decorated", + "TenantNetworkSubnet=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType#Decorated", + "TenantTrustedIPAddress=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TrustedIP#Decorated", + "TeamsFilesPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFilesPolicy", + "TeamsEnhancedEncryptionPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEnhancedEncryptionPolicy", + "TeamsMediaLoggingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMediaLoggingPolicy", + "TeamsRoomVideoTeleConferencingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsRoomVideoTeleConferencingPolicy", + "TeamsEventsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEventsPolicy", + "VideoInteropServiceProvider=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropServiceConfiguration.VideoInteropServiceProvider#Decorated", + "HostingProvider=Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.DisplayHostingProviderExtended" + ) + + $mappings | where {$_.StartsWith("$ConfigType")} + } +} + +function Set-FormatOnConfigObject { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true)] + # Object on which typenames need to be set + ${ConfigObject}, + + [Parameter(Mandatory=$true)] + # Type of configuration + ${ConfigType} + ) + process { + $mappings = Get-FormatsForConfig -ConfigType $ConfigType + $parenttn = $mappings | where {$_.StartsWith("$ConfigType=")} + $parenttnList = $parenttn.Split("=")[1].Split(",") + $childtnmappings = $mappings | where {$_.StartsWith("$ConfigType.")} + + foreach ($inst in $ConfigObject) + { + for ($i = 0; $i -lt $parenttnList.Count; $i++) + { + $inst.PsObject.TypeNames.Insert($i, $parenttnList[$i]) + } + + foreach($tn in $childtnmappings) + { + $childtn = $tn.Split("=")[1] + $childPropName = $tn.Split("=")[0].Split(".")[1] + foreach($instc in $inst.$childPropName) + { + $instc.PsObject.TypeNames.Insert(0,$childtn) + } + } + } + + return $ConfigObject + } +} + +function Set-FixToStringOnAllowedDomains($in, $val) +{ + $serialized = [System.Management.Automation.PSSerializer]::Serialize($in) + $xml = [xml]$serialized + foreach ($obj in $xml.GetElementsByTagName("Obj")) + { + if ($obj.Attributes["N"].'#text' -eq 'AllowedDomains') + { + if ($obj.Item("ToString") -ne $null) + { + $obj.Item("ToString").'#text' = $val + } + } + } + return [System.Management.Automation.PSSerializer]::Deserialize($xml.OuterXml) +} + +function Set-FixTenantFedConfigObject { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true)] + # Object for Get-CsTenantFederationConfiguration + ${ConfigObject} + ) + process { + if($ConfigObject.AllowedDomains.AllowedDomain -eq $null) + { + $ConfigObject.AllowedDomains = New-CsEdgeAllowAllKnownDomains -MsftInternalProcessingMode TryModern + } + elseif($ConfigObject.AllowedDomains.AllowedDomain.Count -eq 0) + { + $ConfigObject = Set-FixToStringOnAllowedDomains -val "" -in $ConfigObject + } + elseif($ConfigObject.AllowedDomains.AllowedDomain.Count -gt 0) + { + $str = "Domain=" + [string]::join(",Domain=",$ConfigObject.AllowedDomains.AllowedDomain.Domain) + $ConfigObject = Set-FixToStringOnAllowedDomains -val $str -in $ConfigObject + } + + return $ConfigObject + } +} + +#Add proerty OutboundTeamsNumberTranslationRules into the response object +function Set-FixTypoInOnlinePSTNGatewayConfigObject { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true)] + # Object for Get-CsOnlinePSTNGateway + ${ConfigObject} + ) + process { + foreach ($inst in $ConfigObject) + { + $inst | Add-Member NoteProperty 'OutboundTeamsNumberTranslationRules' $inst.OutbundTeamsNumberTranslationRules + } + + return $ConfigObject + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Transfer $PolicyRankings from user's input from string[] to object[] + +function Grant-CsGroupPolicyPackageAssignment { + [OutputType([System.String])] + [CmdletBinding(DefaultParameterSetName='RequiredPolicyList', + PositionalBinding=$false, + SupportsShouldProcess, + ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + $GroupId, + + [Parameter(Mandatory=$false, position=1)] + [AllowNull()] + [AllowEmptyString()] + $PackageName, + + [Parameter(position=2)] + [System.String[]] + $PolicyRankings, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $Delimiters = ",", ".", ":", ";", " ", "`t" + [psobject[]]$InternalRankingList = @() + foreach ($PolicyTypeAndRank in $PolicyRankings) + { + $PolicyTypeAndRankArray = $PolicyTypeAndRank -Split {$Delimiters -contains $_}, 2 + $PolicyTypeAndRankArray = $PolicyTypeAndRankArray.Trim() + if ($PolicyTypeAndRankArray.Count -lt 2) + { + throw "Invalid Policy Type and Rank pair: $PolicyTypeAndRank. Please use a proper delimeter" + } + $PolicyTypeAndRankObject = [psobject]@{ + PolicyType = $PolicyTypeAndRankArray[0] + Rank = $PolicyTypeAndRankArray[1] -as [int] + } + $InternalRankingList += $PolicyTypeAndRankObject + } + $null = $PSBoundParameters.Remove("PolicyRankings") + $null = $PSBoundParameters.Add("PolicyRankings", $InternalRankingList) + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Grant-CsGroupPolicyPackageAssignment @PSBoundParameters @httpPipelineArgs + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Grant-CsTeamsPolicy with Grant-CsUserPolicy, Grant-CsTenantPolicy, and Group grant + +function Grant-CsTeamsPolicy { + [CmdletBinding(PositionalBinding=$true, DefaultParameterSetName="Identity", SupportsShouldProcess=$true, ConfirmImpact='Medium')] + param( + [ArgumentCompleter({param ($CommandName, $ParameterName, $WordToComplete, $CommandAst, $FakeBoundParameters) return @("ApplicationAccessPolicy","BroadcastMeetingPolicy","CallingLineIdentity","ClientPolicy","CloudMeetingPolicy","ConferencingPolicy","DialoutPolicy","ExternalAccessPolicy","ExternalUserCommunicationPolicy","GraphPolicy","GroupPolicyPackageAssignment","HostedVoicemailPolicy","IPPhonePolicy","MobilityPolicy","OnlineAudioConferencingRoutingPolicy","OnlineVoicemailPolicy","OnlineVoiceRoutingPolicy","Policy","TeamsAppPermissionPolicy","TeamsAppSetupPolicy","TeamsAudioConferencingPolicy","TeamsCallHoldPolicy","TeamsCallingPolicy","TeamsCallParkPolicy","TeamsChannelsPolicy","TeamsComplianceRecordingPolicy","TeamsCortanaPolicy","TeamsEmergencyCallingPolicy","TeamsEmergencyCallRoutingPolicy","TeamsEnhancedEncryptionPolicy","TeamsFeedbackPolicy","TeamsFilesPolicy","TeamsIPPhonePolicy","TeamsMeetingBroadcastPolicy","TeamsMeetingPolicy","TeamsMessagingPolicy","TeamsMobilityPolicy","TeamsShiftsPolicy","TeamsSurvivableBranchAppliancePolicy","TeamsUpdateManagementPolicy","TeamsUpgradePolicy","TeamsVdiPolicy","TeamsVerticalPackagePolicy","TeamsVideoInteropServicePolicy","TeamsWorkLoadPolicy","TenantDialPlan","UserOrTenantPolicy","UserPolicyPackage","VoiceRoutingPolicy") | ?{ $_ -like "$WordToComplete*" } })] + [Parameter(Mandatory=$true)] + [System.String] + # Type of the policy + ${PolicyType}, + + [Parameter(Mandatory=$false, Position=1)] + [System.String] + # Name of the policy instance + ${PolicyName}, + + # Mandatory=$false allows for deprecated "identity=$null means Grant-to-tenant" behavior + # eventually we should set Mandatory=$true and require preferred -Global switch for that + [Parameter(Mandatory=$false, Position=0, ParameterSetName="Identity", ValueFromPipelineByPropertyName=$true, ValueFromPipeline=$true)] + [ValidateNotNullOrEmpty()] + [System.String] + # Unique identifier for the user + ${Identity}, + + [Parameter(Mandatory=$true, Position=0, ParameterSetName="GrantToTenant")] + [Switch] + # Use global indicating grant to tenant + ${Global}, + + [Parameter(Mandatory=$true, Position=0, ParameterSetName="GrantToGroup")] + [ValidateNotNullOrEmpty()] + [System.String] + # Unique identifier for the group + ${Group}, + + [Parameter(Mandatory=$false, ParameterSetName="GrantToGroup")] + [Nullable[int]] + ${Rank}, + + [Parameter(Mandatory=$false)] + ${AdditionalParameters}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try + { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if (-not $PSBoundParameters.ContainsKey("PolicyName")) + { + # this parameter should be Mandatory=$true, however the [AllowNull]/[AllowEmptyString] attributes don't get surfaced to the wrapper cmdlet that is generated + throw [System.Management.Automation.ParameterBindingException]::new("Cannot process command because of one or more missing mandatory parameters: PolicyName.") + } + + if ($PsCmdlet.ParameterSetName -eq "GrantToGroup") + { + $parameters = @{ + GroupId=$Group + PolicyType=$PolicyType + PolicyName=$PolicyName + } + if ($Rank) { $parameters["Rank"] = $Rank } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Grant-CsGroupPolicyAssignment @parameters + } + elseif ([string]::IsNullOrWhiteSpace($Identity)) + { + if (-not $Global) + { + # The only way to grant to tenant is to use -Global + throw [System.Management.Automation.ParameterBindingException]::new("Cannot process command because of one or more missing mandatory parameters: Global.") + } + else + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Grant-CsTenantPolicy -PolicyType $PolicyType -PolicyName $PolicyName -AdditionalParameters $AdditionalParameters -forceSwitchPresent:$Force + } + } + else + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Grant-CsUserPolicy -Identity $Identity -PolicyType $PolicyType -PolicyName $PolicyName -AdditionalParameters $AdditionalParameters + } + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function New-CsConfigurationModern { + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)] + [System.String] + # Type of configuration retrieved. + ${ConfigType}, + + [Parameter(Mandatory=$true)] + [System.Collections.Hashtable] + ${PropertyBag}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + #Todo: validate that $PropertyBag contains Identity or just depend on the service to reject otherwise + $xdsConfigurationOutput = $null + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsConfiguration -ConfigType $ConfigType -Body $PropertyBag -ErrorVariable err @httpPipelineArgs + if ($err) { return } + + #Todo - Handle where new failed - because the identity already exists, rbac or someother server error + #Todo: Ensure to test this under TPM, given we are referring the Microsoft.Teams.ConfigAPI.Cmdlets module + $xdsConfigurationOutput = Get-CsConfigurationModern -ConfigType $ConfigType -Identity $PropertyBag['Identity'] + + $xdsConfigurationOutput + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the identity + +function Remove-CsConfigurationModern { + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)] + [System.String] + # Type of configuration deleted. + ${ConfigType}, + + [Parameter(Mandatory=$true)] + [System.String] + # Name of configuration deleted. + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsConfiguration -ConfigType $ConfigType -ConfigName $Identity @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsConfigurationModern { + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)] + [System.String] + # Type of configuration retrieved. + ${ConfigType}, + + [Parameter(Mandatory=$true)] + [System.Collections.Hashtable] + ${PropertyBag}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if(!($PropertyBag.ContainsKey('Identity'))) + { + $PropertyBag['Identity'] = "Global" + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsConfiguration -ConfigType $ConfigType -ConfigName $PropertyBag['Identity'] -Body $PropertyBag @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Clear-CsOnlineTelephoneNumberOrder { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # OrderId of the Search Order + ${OrderId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Add("Action", "Cancel") + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Complete-CsOnlineTelephoneNumberOrder @PSBoundParameters -ErrorAction Stop @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Complete-CsOnlineTelephoneNumberOrder { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # OrderId of the Search Order + ${OrderId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Add("Action", "Complete") + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Complete-CsOnlineTelephoneNumberOrder @PSBoundParameters -ErrorAction Stop @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Get-CsOnlineTelephoneNumberOrder { + [CmdletBinding(DefaultParameterSetName="Search")] + param( + [Parameter(Mandatory=$true, ParameterSetName='Search')] + [Parameter(Mandatory=$true, ParameterSetName='Generic')] + [System.String] + ${OrderId}, + + [Parameter(Mandatory=$false, ParameterSetName='Generic')] + [System.String] + ${OrderType}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineTelephoneNumberOrder @PSBoundParameters + $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties + + Write-Output $allProperties + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Base64 encode the byte[] content for the DirectRouting number upload file + +function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { + [CmdletBinding(DefaultParameterSetName="InputByList")] + param( + [Parameter(Mandatory=$false, ParameterSetName='InputByList')] + [System.String] + ${TelephoneNumber}, + + [Parameter(Mandatory=$false, ParameterSetName='InputByRange')] + [System.String] + ${StartingNumber}, + + [Parameter(Mandatory=$false, ParameterSetName='InputByRange')] + [System.String] + ${EndingNumber}, + + [Parameter(Mandatory=$false, ParameterSetName='InputByFile')] + [System.Byte[]] + ${FileContent}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if($FileContent -ne $null){ + $base64input = [System.Convert]::ToBase64String($FileContent) + $null = $PSBoundParameters.Remove("FileContent") + $null = $PSBoundParameters.Add("FileContent", $base64input) + } + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Base64 encode the byte[] content for the telephone number release file + +function New-CsOnlineTelephoneNumberReleaseOrder { + [CmdletBinding(DefaultParameterSetName="InputByList")] + param( + [Parameter(Mandatory=$false, ParameterSetName='InputByList')] + [System.String] + ${TelephoneNumber}, + + [Parameter(Mandatory=$false, ParameterSetName='InputByRange')] + [System.String] + ${StartingNumber}, + + [Parameter(Mandatory=$false, ParameterSetName='InputByRange')] + [System.String] + ${EndingNumber}, + + [Parameter(Mandatory=$false, ParameterSetName='InputByFile')] + [System.Byte[]] + ${FileContent}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if($FileContent -ne $null){ + $base64input = [System.Convert]::ToBase64String($FileContent) + $null = $PSBoundParameters.Remove("FileContent") + $null = $PSBoundParameters.Add("FileContent", $base64input) + } + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineTelephoneNumberReleaseOrder @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Remove-CsOnlineTelephoneNumberModern { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String[]] + # Telephone numbers to remove + ${TelephoneNumber}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineTelephoneNumberPrivate -TelephoneNumber $TelephoneNumber @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Remove-CsPhoneNumberAssignment { + [CmdletBinding(DefaultParameterSetName="RemoveSome")] + param( + [Parameter(Mandatory=$true, ParameterSetName='RemoveSome')] + [Parameter(Mandatory=$true, ParameterSetName='RemoveAll')] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='RemoveSome')] + [System.String] + ${PhoneNumber}, + + [Parameter(Mandatory=$true, ParameterSetName='RemoveSome')] + [System.String] + ${PhoneNumberType}, + + [Parameter(Mandatory=$true, ParameterSetName='RemoveAll')] + [Switch] + ${RemoveAll}, + + [Parameter(Mandatory=$false, ParameterSetName='RemoveSome')] + [Parameter(Mandatory=$false, ParameterSetName='RemoveAll')] + [Switch] + ${Notify}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsPhoneNumberAssignment @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Set-CsPhoneNumberAssignment { + # Do not change this default parameter set. Since LocationUpdate parameter set is a subset + # of Assignment, changing default parameter set to something else will make Identity to be + # always requried and LocationUpdate never be executed. + [CmdletBinding(DefaultParameterSetName="LocationUpdate")] + param( + [Parameter(Mandatory=$true, ParameterSetName='Assignment')] + [Parameter(Mandatory=$true, ParameterSetName='Attribute')] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='Assignment')] + [Parameter(Mandatory=$true, ParameterSetName='LocationUpdate')] + [Parameter(Mandatory=$true, ParameterSetName='NetworkSiteUpdate')] + [Parameter(Mandatory=$true, ParameterSetName='ReverseNumberLookupUpdate')] + [System.String] + ${PhoneNumber}, + + [Parameter(Mandatory=$true, ParameterSetName='Assignment')] + [System.String] + ${PhoneNumberType}, + + [Parameter(ParameterSetName='Assignment')] + [Parameter(Mandatory=$true, ParameterSetName='LocationUpdate')] + [System.String] + ${LocationId}, + + [Parameter(ParameterSetName='Assignment')] + [Parameter(Mandatory=$true, ParameterSetName='NetworkSiteUpdate')] + [System.String] + ${NetworkSiteId}, + + [Parameter(ParameterSetName='Assignment')] + [System.String] + ${AssignmentCategory}, + + [Parameter(ParameterSetName='Assignment')] + [Parameter(Mandatory=$true, ParameterSetName='ReverseNumberLookupUpdate')] + [System.String] + ${ReverseNumberLookup}, + + [Parameter(Mandatory=$true, ParameterSetName='Attribute')] + [System.Boolean] + ${EnterpriseVoiceEnabled}, + + [Parameter(ParameterSetName='Assignment')] + [Switch] + ${Notify}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsPhoneNumberAssignment @PSBoundParameters @httpPipelineArgs + + if ($result -eq $null) { + return $null + } + + Write-Warning($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Write diagnostic message back to console + +function Get-CsBusinessVoiceDirectoryDiagnosticData { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # PartitionKey of the table. + ${PartitionKey}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Region to query Bvd table. + ${Region}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Bvd table name. + ${Table}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Optional resultSize. + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Optional row key. + ${RowKey}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try + { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsBusinessVoiceDirectoryDiagnosticData @PSBoundParameters + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $output = @() + foreach($internalProperty in $internalOutput.Property) + { + $entityProperty = [Microsoft.Rtc.Management.Hosted.Group.Models.EntityProperty]::new() + $entityProperty.ParseFrom($internalProperty) + $output += $entityProperty + } + + $output + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- +# Objective of this custom file: Integrate Get-CsOnlineDialinConferencingUser with Get-CsOdcUser and Search-CsOdcUser +function Get-CsOnlineDialInConferencingUser { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [System.String] + # Unique identifier for the user + ${Identity}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # Number of users to be returned + ${ResultSize}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if (![string]::IsNullOrWhiteSpace($Identity)) + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOdcUser -Identity $Identity @httpPipelineArgs + } + else + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsOdcUser -Top $ResultSize @httpPipelineArgs + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of Register-CsOdcServiceNumber + +function Register-CsOdcServiceNumber { + [CmdletBinding(PositionalBinding=$false, DefaultParameterSetName="ById")] + param( + + [string] + [ValidateNotNullOrEmpty()] + [Parameter(Mandatory=$true, ParameterSetName="ById", Position=0)] + ${Identity}, + + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] + [ValidateNotNull()] + [Parameter(Mandatory=$true, ValueFromPipeline=$true, ParameterSetName="ByInstance")] + ${Instance}, + + [string] + [ValidateNotNull()] + ${BridgeId}, + + [string] + [ValidateNotNullOrEmpty()] + ${BridgeName}, + + [switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($Identity -ne "") + { + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Register-CsOdcServiceNumber @PSBoundParameters @httpPipelineArgs + } + elseif ($Instance -ne $null) + { + $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber]::new() + $Body.Number = $Instance.Number + $Body.PrimaryLanguage = $Instance.PrimaryLanguage + $Body.SecondaryLanguages = $Instance.SecondaryLanguages + + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Register-CsOdcServiceNumber -Body $Body -BridgeId $BridgeId -BridgeName $BridgeName @httpPipelineArgs + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of Set-CsOdcBridgeModern + +function Set-CsOnlineDialInConferencingBridge { + [CmdletBinding(PositionalBinding=$false)] + param( + [string] + ${Name}, + + [string] + ${DefaultServiceNumber}, + + [switch] + ${SetDefault}, + + [string] + ${Identity}, + + [switch] + ${Force}, + + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge] + [Parameter(ValueFromPipeline)] + ${Instance}, + + [switch] + ${AsJob}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($Identity -ne "") { + # This should map to SetCsOdcBridge_SetExpanded.cs + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcBridge @PSBoundParameters @httpPipelineArgs + } + elseif ($Name -ne "") { + $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BridgeUpdateRequest]::new() + + if ($PSBoundParameters.ContainsKey("DefaultServiceNumber") -and $PSBoundParameters["DefaultServiceNumber"] -ne "") { + $Body.DefaultServiceNumber = $DefaultServiceNumber + } + + $Body.SetDefault = $SetDefault + + # This should map to SetCsOdcBridge_Set1.cs + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcBridge -Name $Name -Body $Body @httpPipelineArgs + } + elseif ($Instance -ne $null) { + if ($DefaultServiceNumber -eq "" -and !($Instance.DefaultServiceNumber -eq $null)) { + $DefaultServiceNumber = $Instance.DefaultServiceNumber.Number + } + + if ($PSBoundParameters.ContainsKey('SetDefault') -eq $false) { + $SetDefault = $Instance.IsDefault + } + + $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BridgeUpdateRequest]::new() + + if ($DefaultServiceNumber -ne "") { + $Body.DefaultServiceNumber = $DefaultServiceNumber + } + + $Body.SetDefault = $SetDefault + $Body.Name = $Instance.Name + + # This should map to SetCsOdcBridge_Set.cs + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcBridge -Identity $Instance.Identity -Body $Body @httpPipelineArgs + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of Set-CsOdcUserModern + +function Set-CsOnlineDialInConferencingUser { + [CmdletBinding(PositionalBinding=$false)] + param( + [System.Object] + [Parameter(ValueFromPipelineByPropertyName, ValueFromPipeline)] + ${Identity}, + + [string] + ${TollFreeServiceNumber}, + + [string] + ${BridgeName}, + + [switch] + ${SendEmail}, + + [string] + ${ServiceNumber}, + + [switch] + ${Force}, + + [switch] + ${ResetLeaderPin}, + + [string] + ${SendEmailToAddress}, + + [string] + ${BridgeId}, + + [Nullable[boolean]] + ${AllowTollFreeDialIn}, + + [switch] + ${AsJob}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($Identity -is [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser]){ + $null = $PSBoundParameters.Remove('Identity') + $PSBoundParameters.Add('Identity', $Identity.Identity) + } + + # Change from AllowTollFreeDialIn boolean to switch. + if ($PSBoundParameters.ContainsKey("AllowTollFreeDialIn")){ + $null = $PSBoundParameters.Remove("AllowTollFreeDialIn") + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcUser -AllowTollFreeDialIn:$AllowTollFreeDialIn @PSBoundParameters @httpPipelineArgs + } + else{ + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcUser @PSBoundParameters @httpPipelineArgs + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of Unregister-CsOdcServiceNumber + +function Unregister-CsOdcServiceNumber { + [CmdletBinding(PositionalBinding=$false, DefaultParameterSetName="ById")] + param( + + [string] + [ValidateNotNullOrEmpty()] + [Parameter(Mandatory=$true, ParameterSetName="ById", Position=0)] + ${Identity}, + + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] + [ValidateNotNull()] + [Parameter(Mandatory=$true, ValueFromPipeline=$true, ParameterSetName="ByInstance")] + ${Instance}, + + [string] + [ValidateNotNull()] + ${BridgeId}, + + [string] + [ValidateNotNullOrEmpty()] + ${BridgeName}, + + [switch] + ${Force}, + + [switch] + ${RemoveDefaultServiceNumber}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($Identity -ne "") + { + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Unregister-CsOdcServiceNumber @PSBoundParameters @httpPipelineArgs + } + elseif ($Instance -ne $null) + { + $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber]::new() + $Body.Number = $Instance.Number + $Body.PrimaryLanguage = $Instance.PrimaryLanguage + $Body.SecondaryLanguages = $Instance.SecondaryLanguages + + if($PSBoundParameters.ContainsKey('RemoveDefaultServiceNumber') -eq $false) + { + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Unregister-CsOdcServiceNumber -Body $Body -BridgeId $BridgeId -BridgeName $BridgeName @httpPipelineArgs + } + else + { + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Unregister-CsOdcServiceNumber -Body $Body -BridgeId $BridgeId -BridgeName $BridgeName -RemoveDefaultServiceNumber @httpPipelineArgs + } + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: cmdlet for Orchestration- This cmdlets compress csv files. + +function New-CsBatchTeamsDeployment +{ + [OutputType([System.String])] + [CmdletBinding( PositionalBinding=$false)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + $TeamsFilePath, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + $UsersFilePath, + + [Parameter(Mandatory=$true, position=2)] + [System.String] + $UsersToNotify, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try + { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $TeamsFile = "$env:TEMP\Teams.csv" + $UsersFile = "$env:TEMP\Users.csv" + Copy-Item $TeamsFilePath -Destination $TeamsFile -Force + Copy-Item $UsersFilePath -Destination $UsersFile -Force + $zipFile = "$env:TEMP\TeamsDeployment.Zip" + + $compress = @{ + LiteralPath= $TeamsFile , $UsersFile + CompressionLevel = "Fastest" + DestinationPath = $zipFile + } + + Compress-Archive @compress -Update + + $FileStream = [System.IO.File]::ReadAllBytes($zipFile) + $B64String = [System.Convert]::ToBase64String($FileStream, [System.Base64FormattingOptions]::None) + + $null = $PSBoundParameters.Remove("TeamsFilePath") + $null = $PSBoundParameters.Remove("UsersFilePath") + $null = $PSBoundParameters.Add("DeploymentCsv", $B64String) + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsBatchTeamsDeployment @PSBoundParameters @httpPipelineArgs + + Write-Output $internalOutput + + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: To support enums for DeploymentName and ObjectClass and support Boolean + +function Invoke-CsDirectObjectSync { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] + # Request body for DsSync cmdlet + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.DirectoryDeploymentName] + # Deployment Name. + ${DeploymentName}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.DirectoryObjectClass] + # Object Class enum. + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # GUID of the user. + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # List of ObjectId. + ${ObjectIds}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Scenarios to Suppress. + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Service Instance of the tenant. + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + # Sync all the users of the tenant. + ${SynchronizeTenantWithAllObject}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync options like resync entity with all links. + ${ReSyncOption}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Invoke-CsDirectObjectSync @PSBoundParameters + + Write-Output $obj + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Get-CsTeamsSettingsCustomApp { + [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $settings = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTeamsSettingsCustomApp @PSBoundParameters @httpPipelineArgs + $targetProperties = $settings | Select-Object -Property isSideloadedAppsInteractionEnabled + if ($targetProperties.isSideloadedAppsInteractionEnabled -eq $null) { + $targetProperties.isSideloadedAppsInteractionEnabled = $false + } + Write-Output $targetProperties + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Set-CsTeamsSettingsCustomApp { + [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true)] + [System.Boolean] + ${isSideloadedAppsInteractionEnabled}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTeamsSettingsCustomApp + # Stop execution if internal cmdlet is failing + if ($getResult -eq $null) { + throw 'Internal Error. Please try again.' + } + + $appSettingsListValue = @() + $null = $PSBoundParameters.Add("isAppsEnabled", $getResult.isAppsEnabled) + $null = $PSBoundParameters.Add("isAppsPurchaseEnabled", $getResult.isAppsPurchaseEnabled) + $null = $PSBoundParameters.Add("isExternalAppsEnabledByDefault", $getResult.isExternalAppsEnabledByDefault) + $null = $PSBoundParameters.Add("isLicenseBasedPinnedAppsEnabled", $getResult.isLicenseBasedPinnedAppsEnabled) + $null = $PSBoundParameters.Add("isTenantWideAutoInstallEnabled", $getResult.isTenantWideAutoInstallEnabled) + $null = $PSBoundParameters.Add("LobTextColor", $getResult.LobTextColor) + $null = $PSBoundParameters.Add("LobBackground", $getResult.LobBackground) + $null = $PSBoundParameters.Add("LobLogo", $getResult.LobLogo) + $null = $PSBoundParameters.Add("LobLogomark", $getResult.LobLogomark) + $null = $PSBoundParameters.Add("appSettingsList", $appSettingsListValue) + $null = $PSBoundParameters.Add("appAccessRequestConfig", $getResult.appAccessRequestConfig) + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsTeamsSettingsCustomApp @PSBoundParameters @httpPipelineArgs + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get meeting migration transaction history for a user +.Description +Get meeting migration transaction history for a user +#> +function Get-CsMeetingMigrationTransactionHistory { + param( + [Parameter(Mandatory=$true)] + [System.String] + # Identity. + # Supports UPN and SIP + ${Identity}, + + [Parameter()] + [System.String] + # CorrelationId + ${CorrelationId}, + + [Parameter()] + [System.DateTime] + # start time filter - to get meeting migration transaction history after starttime + ${StartTime}, + + [Parameter()] + [System.DateTime] + # end time filter - to get meeting migration transaction history before endtime + ${EndTime}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Fetching only Meeting Migration transaction history + # need to pipe to convert-ToJson | Convert-FromJson to support output in list format and sending down to further pipeline commands. + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMeetingMigrationTransactionHistoryModern -userIdentity $Identity -StartTime $StartTime -EndTime $EndTime -CorrelationId $CorrelationId @httpPipelineArgs | Foreach-Object { ( ConvertTo-Json $_) } | Foreach-Object {ConvertFrom-Json $_} + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get meeting migration status for a user or at tenant level +.Description +Get meeting migration status for a user or tenant level +#> +function Get-CsMmsStatus { + param( + [Parameter()] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, + + [Parameter()] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter()] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter()] + [switch] + # SummaryOnly - to get only meting migration status summary. + ${SummaryOnly}, + + [Parameter()] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if($PSBoundParameters.ContainsKey('SummaryOnly')) + { + # Fetching only Meeting Migration status summary + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMeetingMigrationStatusSummaryModern -Identity $Identity -StartTime $StartTime -EndTime $EndTime -State $state -MigrationType $MigrationType @httpPipelineArgs | ConvertTo-Json + } + else + { + # Need to display output in a list format and should be able to pipe output to other cmdlets for filtering. + # with Format-List, not able to send the output for piping. So did this Convert-ToJson and Converting object from Json which displays output in list format and also able to refer with index value. + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMeetingMigrationStatusModern -Identity $Identity -StartTime $StartTime -EndTime $EndTime -State $state -MigrationType $MigrationType @httpPipelineArgs | Foreach-Object { ( ConvertTo-Json $_) } | Foreach-Object {ConvertFrom-Json $_} + } + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: cmdlet for signin batch of user- This cmdlets converts the input from the csv file to required type to call the internal cmdlet + +function New-CsSdgBulkSignInRequest +{ + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory=$true)] + [System.String] + $DeviceDetailsFilePath, + [Parameter(Mandatory=$true)] + [System.String] + $Region + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try + { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $deviceDetails = Import-Csv -Path $DeviceDetailsFilePath + $deviceDetailsInput = @(); + $deviceDetails | ForEach-Object { $deviceDetailsInput += [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestItem]@{ Username=$_.Username;HardwareId=$_.HardwareId }} + Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsSdgBulkSignInRequest -Body $deviceDetailsInput -TargetRegion $Region + + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Transfer $PolisyList from user's input from string[] to object[], enable inline input + +function Get-CsTeamTemplateList { + [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject])] + [CmdletBinding(DefaultParameterSetName='DefaultLocaleOverride', PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The language and country code of templates localization. + ${PublicTemplateLocale}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ([string]::IsNullOrWhiteSpace($PublicTemplateLocale)) { + $null = $PSBoundParameters.Add("PublicTemplateLocale", "en-US") + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTeamTemplateList @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Validate team template payload contains General channel on create, add if not + +function New-CsTeamTemplate { + [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] + [CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(ParameterSetName='New', Mandatory)] + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Locale of template. + ${Locale}, + + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] + # The client input for a request to create a template. + # Only admins from Config Api can perform this request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's DisplayName. + ${DisplayName}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template short description. + ${ShortDescription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] + # Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + # To construct, see NOTES section for APP properties and create a hash table. + ${App}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets list of categories. + ${Category}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] + # Gets or sets the set of channel templates included in the team template. + # To construct, see NOTES section for CHANNEL properties and create a hash table. + ${Channel}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's classification.Tenant admins configure AAD with the set of possible values. + ${Classification}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's Description. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] + # Governs discoverability of a team. + # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + ${DiscoverySetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] + # Governs use of fun media like giphy and stickers in the team. + # To construct, see NOTES section for FUNSETTING properties and create a hash table. + ${FunSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] + # Guest role settings for the team. + # To construct, see NOTES section for GUESTSETTING properties and create a hash table. + ${GuestSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template icon. + ${Icon}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + ${IsMembershipLimitedToOwner}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] + # Member role settings for the team. + # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + ${MemberSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] + # Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + ${MessagingSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the AAD user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + ${OwnerUserObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets published name. + ${PublishedBy}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + ${Specialization}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + ${TemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets uri to be used for GetTemplate api call. + ${Uri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Used to control the scope of users who can view a group/team and its members, and ability to join. + ${Visibility}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $generalChannel = @{ + DisplayName = "General"; + id= "General"; + isFavoriteByDefault= $true + } + + if ($null -ne $Body) { + $Channel = $Body.Channel + } + + if ($null -eq $Channel) { + if ($null -ne $Body) { + $Body.Channel = $generalChannel + $PSBoundParameters['Body'] = $Body + } else { + $null = $PSBoundParameters.Add("Channel", $generalChannel) + } + } else { + $hasGeneralChannel = $false + foreach ($channel in $Channel){ + if ($channel.displayName -eq "General") { + $hasGeneralChannel = $true + } + } + if ($hasGeneralChannel -eq $false) { + if ($null -ne $Body) { + $Body.Channel += $generalChannel + $PSBoundParameters['Body'] = $Body + } else { + $Channel += $generalChannel + $PSBoundParameters['Channel'] = $Channel + } + } + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTeamTemplate @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format Response of Get-CsAadTenant + +function Get-CsAadTenant { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAadTenant @PSBoundParameters + $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties + + Write-Output $allProperties + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format Response of Get-CsAadUser + +function Get-CsAadUser { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Unique identifier for the user + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAadUser @PSBoundParameters + $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties + + Write-Output $allProperties + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Get-CsMasVersionedSchemaData with Get-CsMasVersionedData + +function Get-CsMasVersionedSchemaData { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Schema to get from MAS DB. + ${SchemaName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Last X versions to fetch from MAS DB. + ${Version}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMasVersionedSchemaData @PSBoundParameters + $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties + + Write-Output $allProperties + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Get-CsMoveTenantServiceInstanceTaskStatus with Get-CsTenantMigrationDetail + +function Get-CsMoveTenantServiceInstanceTaskStatus { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMoveTenantServiceInstanceTaskStatus @PSBoundParameters + $allProperties = $output | Select-Object -ExpandProperty AdditionalProperties + + Write-Output $allProperties + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Get-CsTenant with Get-CsTenantObou + +function Get-CsTenantPoint { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $defaultPropertySet = "Extended" + $tenant = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTenantObou -DefaultPropertySet $defaultPropertySet @httpPipelineArgs + $allProperties = $tenant | Select-Object -Property * -ExcludeProperty LastProvisionTimeStamps, LastPublishTimeStamps + $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $tenant.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $tenant.LastPublishTimeStamps.AdditionalProperties + + Write-Output $allProperties + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + + +function Invoke-CsCustomHandlerCallBackNgtprov { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Unique Id of the Handler. + ${Id}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.CustomHandlerOperationName] + # Callback Operation. + ${Operation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # EventName for the SendEventPostURI. + ${Eventname}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Invoke-CsCustomHandlerCallBackNgtprov @PSBoundParameters + $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties + + Write-Output $allProperties + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: To support enums for ObjectClass and support Boolean + +function Invoke-CsMsodsSync { + [CmdletBinding(PositionalBinding=$false)] + param( + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] + # Request body for ReSync cmdlet + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.ObjectClass] + # Object Class enum. + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # TenantId GUID. + ${TenantId}, + + [Parameter(ParameterSetName='PostExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # List of User ObjectId. + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Scenarios to Suppress. + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Service Instance of the tenant. + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + # Sync all the users of the tenant. + ${SynchronizeTenantWithAllObject}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync options like resync entity with all links. + ${ReSyncOption}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Invoke-CsMsodsSync @PSBoundParameters @httpPipelineArgs + + Write-Output $obj + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Move-CsTenantCrossRegion with New-CsTenantCrossMigration + +function Move-CsTenantCrossRegion { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTenantCrossMigration @httpPipelineArgs + + Write-Output $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Move-CsTenantServiceInstance with New-CsTenantCrossMigration + +function Move-CsTenantServiceInstance { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # Can take following values (PrepForMove, StartDualSync, Finalize) + ${MoveOption}, + + [Parameter(Mandatory=$false)] + [System.String] + # Service Instance where tenant is to be migrated + ${TargetServiceInstance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTenantCrossMigration -MoveOption $MoveOption -TargetServiceInstance $TargetServiceInstance @httpPipelineArgs + + Write-Output $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: map parameters to request body + +function Set-CsOnlineSipDomainModern { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # Domain Name parameter. + ${Domain}, + + [Parameter(Mandatory=$true, Position=1)] + [System.String] + # Action decides enable or disable sip domain + ${Action}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSipDomainRequest]::new() + + $Body.DomainName = $Domain + $Body.Action = $Action + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOnlineSipDomain -Body $Body @httpPipelineArgs + Write-AdminServiceDiagnostic($result.Diagnostic) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Get-CsOnlineUser with Get-CsUser and Search-CsUser + +function Get-CsUserList { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [System.String] + # Unique identifier for the user + ${Identity}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # Number of users to be returned + ${ResultSize}, + + [Parameter(Mandatory=$false)] + [System.Management.Automation.SwitchParameter] + #To not display user policies in output + ${SkipUserPolicies}, + + [Parameter(Mandatory=$false)] + [System.Management.Automation.SwitchParameter] + # To only fetch soft-deleted users + ${SoftDeletedUsers}, + + [Parameter(Mandatory=$false)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] + # To only fetch users with specified account type + ${AccountType}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $defaultPropertySet = "Extended" + $internalfilter = "" + if ($AccountType) + { + if (![string]::IsNullOrWhiteSpace($Identity)) + { + Write-Error "AccountType parameter cannot be used with Identity parameter." + return + } + else + { + $internalfilter = "AccountType -eq '$AccountType'" + } + } + if (![string]::IsNullOrWhiteSpace($Identity)) + { + $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs + $allProperties = $user | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain, LastProvisionTimeStamps, LastPublishTimeStamps + $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $user.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $user.LastPublishTimeStamps.AdditionalProperties + + Write-Output $allProperties + } + else + { + if ($SoftDeletedUsers) + { + if (![string]::IsNullOrWhiteSpace($internalfilter)) + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $internalfilter -Top $ResultSize -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + else + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + } + else + { + if (![string]::IsNullOrWhiteSpace($internalfilter)) + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $internalfilter -Top $ResultSize -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + else + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + } + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Get-CsOnlineUser with Get-CsUser + +function Get-CsUserPoint { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # Unique identifier for the user + ${Identity}, + + [Parameter(Mandatory=$false)] + [System.Management.Automation.SwitchParameter] + # To not display user policies in output + ${SkipUserPolicies}, + + [Parameter(Mandatory=$false)] + [System.String[]] + # Select Properties + ${Properties}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $forcedProperties = @( + "Identity", + "UserPrincipalName", + "Alias", + "AccountEnabled", + "DisplayName" + ) + + if ($Properties -ne $null -and $Properties.Count -gt 0) { + $propertiesArray = $Properties | ForEach-Object { $_.Trim() } + $selectArray = $forcedProperties + $propertiesArray + $selectArray = $selectArray | ForEach-Object { $_.ToLower() } | Sort-Object -Unique + $propertiesToSelect = $selectArray -join ',' + } else { + $propertiesToSelect = $null + } + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if (![string]::IsNullOrWhiteSpace($Identity)) + { + if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { + $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -Select $propertiesToSelect @httpPipelineArgs + } else { + $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet "Extended" @httpPipelineArgs + } + + $allProperties = $user | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain, LastProvisionTimeStamps, LastPublishTimeStamps + $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $user.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $user.LastPublishTimeStamps.AdditionalProperties + + if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { + $allProperties = $allProperties | Select-Object -Property $selectArray + } + + Write-Output $allProperties + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Get-CsOnlineUser with Get-CsUser and Search-CsUser + +function Get-CsUserSearch { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [System.String] + # Unique identifier for the user + ${Identity}, + + [Parameter(Mandatory=$false, DontShow = $true)] + [System.String[]] + # List of user identifiers + ${Identities}, + + [Parameter(Mandatory=$false)] + [System.String] + # Filter to be applied to the list of users + ${Filter}, + + [Alias('Sort')] + [Parameter(Mandatory=$false)] + [System.String] + # OrderBy to be applied to the list of users + ${OrderBy}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # Number of users to be returned + ${ResultSize}, + + [Parameter(Mandatory=$false)] + [System.Management.Automation.SwitchParameter] + # To skip user policies in output + ${SkipUserPolicies}, + + [Parameter(Mandatory=$false)] + [System.Management.Automation.SwitchParameter] + # To only fetch soft-deleted users + ${SoftDeletedUsers}, + + [Parameter(Mandatory=$false)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] + # To only fetch users with specified account type + ${AccountType}, + + [Parameter(Mandatory=$false)] + [System.String[]] + # Select Properties + ${Properties}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try + { + # Will break if $forcedProperties has too few elements. Check https://skype.visualstudio.com/DefaultCollection/SBS/_git/infrastructure_web_interfaces-powershell/pullRequest/1121498#1740129091 + # If the final selection of properties has less than 5 properties, the output formatting will be broken. + $forcedProperties = @( + "identity", + "userPrincipalName", + "alias", + "accountEnabled", + "displayName" + ) + + if ($Properties -ne $null -and $Properties.Count -gt 0) { + $propertiesArray = $Properties | ForEach-Object { $_.Trim() } + $selectArray = $forcedProperties + $propertiesArray + $selectArray = $selectArray | ForEach-Object { $_.ToLower() } | Sort-Object -Unique + $propertiesToSelect = $selectArray -join ',' + } else { + $propertiesToSelect = $null + $selectArray = $null + } + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $defaultPropertySet = "Extended" + if ($AccountType) + { + if (![string]::IsNullOrWhiteSpace($Identity)) + { + Write-Error "AccountType parameter cannot be used with Identity parameter." + return + } + if (![string]::IsNullOrWhiteSpace($Filter)) + { + $Filter += " -and AccountType -eq '$AccountType'" + } + else + { + $Filter = "AccountType -eq '$AccountType'" + } + } + if ($Identities -ne $null) + { + if (![string]::IsNullOrWhiteSpace($Filter)) + { + Write-Error "Filter parameter cannot be used along with Identity input." + return + } + $i = 0 + $count = $Identities.Count + $filterstring = "" + while ($i -lt $count) + { + $id = $Identities[$i] + if (![string]::IsNullOrWhiteSpace($filterstring)) + { + $filterstring += " or userprincipalname eq '$id'" + } + else + { + $filterstring = "userprincipalname eq '$id'" + } + $i = $i + 1 + } + + if (![string]::IsNullOrEmpty($filterstring)) + { + if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $filterstring @httpPipelineArgs -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } else { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $filterstring @httpPipelineArgs -OrderBy $OrderBy | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + } + } + + elseif (![string]::IsNullOrWhiteSpace($Identity)) + { + if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { + $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Select $propertiesToSelect @httpPipelineArgs + $allProperties = $user | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain, LastProvisionTimeStamps, LastPublishTimeStamps + $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $user.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $user.LastPublishTimeStamps.AdditionalProperties + $selectedProperties = $allProperties | Select-Object -Property $selectArray + + Write-Output $selectedProperties + } else { + $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs + $allProperties = $user | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain, LastProvisionTimeStamps, LastPublishTimeStamps + $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $user.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $user.LastPublishTimeStamps.AdditionalProperties + + Write-Output $allProperties + } + return + } + elseif (![string]::IsNullOrWhiteSpace($Filter)) + { + if ($SoftDeletedUsers) + { + if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $Filter -Top $ResultSize -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } else { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $Filter -Top $ResultSize -OrderBy $OrderBy -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + } + else + { + if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $Filter -Top $ResultSize -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } else { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $Filter -Top $ResultSize -OrderBy $OrderBy -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + } + } + else + { + if ($SoftDeletedUsers) + { + if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } else { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -OrderBy $OrderBy -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + } + else + { + if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } else { + $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -OrderBy $OrderBy -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain + } + } + } + + if ($selectArray -ne $null) + { + # Will break if $selectArray has less than 5 elements. Check https://skype.visualstudio.com/DefaultCollection/SBS/_git/infrastructure_web_interfaces-powershell/pullRequest/1121498#1740129091 + $formattedUsers = $users | Select-Object -Property $selectArray + $formattedUsers + } + else{ + $users + } + + } + catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Get-CsOnlineVoiceUser with Get-CsUser + +function Get-CsVoiceUserList { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [System.String] + # Unique identifier for the user + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [System.Management.Automation.SwitchParameter] + #To fetch location field + ${ExpandLocation}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # Number of users to be returned + ${First}, + + [Parameter(Mandatory=$false)] + [System.Management.Automation.SwitchParameter] + # To only fetch users which have a number assigned to them + ${NumberAssigned}, + + [Parameter(Mandatory=$false)] + [System.Management.Automation.SwitchParameter] + # To only fetch users which don't have a number assigned to them + ${NumberNotAssigned}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Guid]] + # LocationId of users to be returned + ${LocationId}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Guid]] + # CivicAddressId of users to be returned + ${CivicAddressId}, + + [Parameter(Mandatory=$false)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.PSTNConnectivity] + # PSTNConnectivity of the users to be returned + ${PSTNConnectivity}, + + [Parameter(Mandatory=$false)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.EnterpriseVoiceStatus] + # EnterpriseVoiceStatus of the users to be returned + ${EnterpriseVoiceStatus}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process + { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if (![string]::IsNullOrWhiteSpace($Identity)) + { + if($ExpandLocation) + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -VoiceUserQuery:$true -Select "Objectid,EnterpriseVoiceEnabled, + DisplayName,Location,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" @httpPipelineArgs | + Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, + @{Name = 'Id' ; Expression = {$_.Identity}}, + SipDomain, + DataCenter, + TenantID, + @{Name = 'Number' ; Expression = {$_.LineUri}}, + Location, + PSTNconnectivity, + UsageLocation, + EnterpriseVoiceEnabled + } + else + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -VoiceUserQuery:$true -Select "Objectid,EnterpriseVoiceEnabled, + DisplayName,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" @httpPipelineArgs | + Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, + @{Name = 'Id' ; Expression = {$_.Identity}}, + SipDomain, + DataCenter, + TenantID, + @{Name = 'Number' ; Expression = {$_.LineUri}}, + @{Name = 'Location' ; Expression = {""}}, + PSTNconnectivity, + UsageLocation, + EnterpriseVoiceEnabled + } + } + else + { + if($NumberAssigned -and $NumberNotAssigned) + { + Write-Error "You can only pass either NumberAssigned or NumberNotAssigned at a time." + return + } + + if (($LocationId -and !$CivicAddressId) -or ($CivicAddressId -and !$LocationId)) + { + Write-Error "LocationId and CivicAddressId must be provided together." + return + } + + $filters = @() #array of individual filters + $addNumberInSelectProperties = $false + if ($LocationId -and $CivicAddressId) + { + $filters += "Number/LocationId eq '$LocationId' and Number/CivicAddressId eq '$CivicAddressId'" + $addNumberInSelectProperties = $true + } + + if ($PSTNConnectivity) + { + if ($PSTNConnectivity -eq 'OnPremises' -or $PSTNConnectivity -eq 'Online') + { + $filters += "PSTNConnectivity eq '$PSTNConnectivity'" + } + } + + if ($EnterpriseVoiceStatus) + { + if ($EnterpriseVoiceStatus -eq 'Enabled') + { + $filters += "EnterpriseVoiceEnabled eq true" + } + elseif ($EnterpriseVoiceStatus -eq 'Disabled') + { + $filters += "EnterpriseVoiceEnabled eq false" + } + } + + if ($NumberAssigned) + { + $filters += "LineUri ne '$null'" + } + elseif ($NumberNotAssigned) + { + $filters += "LineUri eq '$null'" + } + + $filterstring = $filters -join " and " + $selectProperties = "Objectid,EnterpriseVoiceEnabled,DisplayName,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" + + if ($addNumberInSelectProperties -eq $true) + { + $selectProperties += ",Number" + } + + if($ExpandLocation) + { + $selectProperties += ",Location" + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Includedefaultproperty:$false -VoiceUserQuery:$true -Select $selectProperties -Filter $filterstring -Top $First @httpPipelineArgs | + Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, + @{Name = 'Id' ; Expression = {$_.Identity}}, + SipDomain, + DataCenter, + TenantID, + @{Name = 'Number' ; Expression = {$_.LineUri}}, + Location, + PSTNconnectivity, + UsageLocation, + EnterpriseVoiceEnabled + } + else + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Includedefaultproperty:$false -VoiceUserQuery:$true -Select $selectProperties -Filter $filterstring -Top $First @httpPipelineArgs | + Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, + @{Name = 'Id' ; Expression = {$_.Identity}}, + SipDomain, + DataCenter, + TenantID, + @{Name = 'Number' ; Expression = {$_.LineUri}}, + @{Name = 'Location' ; Expression = {""}}, + PSTNconnectivity, + UsageLocation, + EnterpriseVoiceEnabled + } + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Integrate Get-CsOnlineVoiceUser with Get-CsUser + +function Get-CsVoiceUserPoint { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # Unique identifier for the user + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [switch] + #To fetch location field + ${ExpandLocation}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if (![string]::IsNullOrWhiteSpace($Identity)) + { + if($ExpandLocation) + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -VoiceUserQuery:$true -Select "Objectid,EnterpriseVoiceEnabled, + DisplayName,Location,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" @httpPipelineArgs | + Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, + @{Name = 'Id' ; Expression = {$_.Identity}}, + SipDomain, + DataCenter, + TenantID, + @{Name = 'Number' ; Expression = {$_.LineUri}}, + Location, + PSTNconnectivity, + UsageLocation, + EnterpriseVoiceEnabled + } + else + { + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -VoiceUserQuery:$true -Select "Objectid,EnterpriseVoiceEnabled, + DisplayName,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" @httpPipelineArgs | + Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, + @{Name = 'Id' ; Expression = {$_.Identity}}, + SipDomain, + DataCenter, + TenantID, + @{Name = 'Number' ; Expression = {$_.LineUri}}, + @{Name = 'Location' ; Expression = {""}}, + PSTNconnectivity, + UsageLocation, + EnterpriseVoiceEnabled + } + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +function Set-CsOnlineVoiceUserV2 { +[CmdletBinding(DefaultParameterSetName='Id', SupportsShouldProcess)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$false)] + [System.String][AllowNull()] + ${TelephoneNumber}, + + [Parameter(Mandatory=$false)] + [System.String][AllowNull()] + ${LocationId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $Body = @{ + TelephoneNumber=$TelephoneNumber + LocationId=$LocationId + } + $Payload = @{ + UserId = $Identity + Body = $Body + } + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsUserGenerated @Payload @httpPipelineArgs + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +function Set-CsUserModern { +[CmdletBinding(DefaultParameterSetName='Id')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$false)] + ${EnterpriseVoiceEnabled}, + + [Parameter(Mandatory=$false)] + ${HostedVoiceMail}, + + [Parameter(Mandatory=$false)] + [System.String][AllowNull()] + ${LineURI}, + + [Parameter(Mandatory=$false)] + [System.String][AllowNull()] + ${OnPremLineURI}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $PhoneNumber = $LineURI + if ($PSBoundParameters.ContainsKey('OnPremLineURI')) { + Write-Warning -Message "OnPremLineURI will be deprecated. Please use LineURI to update user's phone number." + if (!$PSBoundParameters.ContainsKey('LineURI')){ + $PhoneNumber = $OnPremLineURI + } + else{ + Write-Error "Please specify either one parameter OnPremLineURI or LineURI to assign phone number." + return + } + } + + $Body = @{ + EnterpriseVoiceEnabled=$EnterpriseVoiceEnabled + HostedVoiceMail=$HostedVoiceMail + } + + if ($PSBoundParameters.ContainsKey('LineURI') -or $PSBoundParameters.ContainsKey('OnPremLineURI')) { + $Body.LineUri = $PhoneNumber + } + + $Payload = @{ + UserId = $Identity + Body = $Body + } + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsUserGenerated @Payload @httpPipelineArgs + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function New-CsUserCallingDelegate { + [CmdletBinding(DefaultParameterSetName="Identity")] + param( + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Delegate}, + + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.Boolean] + ${MakeCalls}, + + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.Boolean] + ${ManageSettings}, + + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.Boolean] + ${ReceiveCalls}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsUserCallingDelegate @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Remove-CsUserCallingDelegate { + [CmdletBinding(DefaultParameterSetName="Identity")] + param( + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Delegate}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsUserCallingDelegate @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Set-CsPersonalAttendantSettings { + [CmdletBinding(DefaultParameterSetName="Identity")] + param( + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendantOnOff')] + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendantOnOff')] + [System.Boolean] + ${IsPersonalAttendantEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [ValidateSet('en-US', 'fr-FR', 'ar-SA', 'zh-CN', 'zh-TW', 'cs-CZ', 'da-DK', 'nl-NL', 'en-AU', 'en-GB', 'fi-FI', 'fr-CA', 'de-DE', 'el-GR', 'hi-IN', 'id-ID', 'it-IT', 'ja-JP', 'ko-KR', 'nb-NO', 'pl-PL', 'pt-BR', 'ru-RU', 'es-ES', 'es-US', 'sv-SE', 'th-TH', 'tr-TR')] + [System.String] + ${DefaultLanguage}, + + [Parameter(Mandatory=$false, ParameterSetName='PersonalAttendant')] + [ValidateSet('Female','Male')] + [System.String] + ${DefaultVoice}, + + [Parameter(Mandatory=$false, ParameterSetName='PersonalAttendant')] + [System.String] + [AllowNull()] + ${CalleeName}, + + [Parameter(Mandatory=$false, ParameterSetName='PersonalAttendant')] + [ValidateSet('Formal','Casual')] + [System.String] + ${DefaultTone}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsBookingCalendarEnabled}, + + [Parameter(Mandatory=$false, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsNonContactCallbackEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsCallScreeningEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${AllowInboundInternalCalls}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${AllowInboundFederatedCalls}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${AllowInboundPSTNCalls}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsAutomaticTranscriptionEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='PersonalAttendant')] + [System.Boolean] + ${IsAutomaticRecordingEnabled}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($PSBoundParameters.ContainsKey('IsPersonalAttendantEnabled') -and $PSBoundParameters.ContainsKey('AllowInboundInternalCalls') -and $PSBoundParameters.ContainsKey('AllowInboundFederatedCalls') -and $PSBoundParameters.ContainsKey('AllowInboundPSTNCalls')) + { + if($IsPersonalAttendantEnabled -eq $true -and ($AllowInboundInternalCalls -eq $true -or $AllowInboundFederatedCalls -eq $true -or $AllowInboundPSTNCalls -eq $true)) + { + $IsPersonalAttendantEnabled = $IsPersonalAttendantEnabled + $AllowInboundInternalCalls = $AllowInboundInternalCalls + $AllowInboundFederatedCalls = $AllowInboundFederatedCalls + $AllowInboundPSTNCalls = $AllowInboundPSTNCalls + } + else + { + write-warning "Personal attendant is enabled but no inbound calls are enabled" + return + } + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsPersonalAttendantSettings @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Set-CsUserCallingDelegate { + [CmdletBinding(DefaultParameterSetName="Identity")] + param( + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Delegate}, + + [Parameter(Mandatory=$false, ParameterSetName='Identity')] + [System.Boolean] + ${MakeCalls}, + + [Parameter(Mandatory=$false, ParameterSetName='Identity')] + [System.Boolean] + ${ManageSettings}, + + [Parameter(Mandatory=$false, ParameterSetName='Identity')] + [System.Boolean] + ${ReceiveCalls}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsUserCallingDelegate @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function Set-CsUserCallingSettings { + [CmdletBinding(DefaultParameterSetName="Identity")] + param( + [Parameter(Mandatory=$true, ParameterSetName='Forwarding')] + [Parameter(Mandatory=$true, ParameterSetName='ForwardingOnOff')] + [Parameter(Mandatory=$true, ParameterSetName='Unanswered')] + [Parameter(Mandatory=$true, ParameterSetName='UnansweredOnOff')] + [Parameter(Mandatory=$true, ParameterSetName='CallGroup')] + [Parameter(Mandatory=$true, ParameterSetName='CallGroupMembership')] + [Parameter(Mandatory=$true, ParameterSetName='CallGroupNotification')] + [Parameter(Mandatory=$true, ParameterSetName='Identity')] + [System.String] + ${Identity}, + + [Parameter(Mandatory=$true, ParameterSetName='Forwarding')] + [Parameter(Mandatory=$true, ParameterSetName='ForwardingOnOff')] + [System.Boolean] + ${IsForwardingEnabled}, + + [Parameter(Mandatory=$true, ParameterSetName='Forwarding')] + [ValidateSet('Immediate','Simultaneous')] + [System.String] + ${ForwardingType}, + + [Parameter(Mandatory=$false, ParameterSetName='Forwarding')] + [System.String] + [AllowNull()] + ${ForwardingTarget}, + + [Parameter(Mandatory=$true, ParameterSetName='Forwarding')] + [ValidateSet('SingleTarget','Voicemail','MyDelegates','Group')] + [System.String] + ${ForwardingTargetType}, + + [Parameter(Mandatory=$true, ParameterSetName='Unanswered')] + [Parameter(Mandatory=$true, ParameterSetName='UnansweredOnOff')] + [System.Boolean] + ${IsUnansweredEnabled}, + + [Parameter(Mandatory=$false, ParameterSetName='Unanswered')] + [System.String] + [AllowNull()] + ${UnansweredTarget}, + + [Parameter(Mandatory=$false, ParameterSetName='Unanswered')] + [ValidateSet("", "SingleTarget","Voicemail","MyDelegates","Group")] + [System.String] + ${UnansweredTargetType}, + + [Parameter(Mandatory=$true, ParameterSetName='Unanswered')] + [System.String] + [AllowNull()] + ${UnansweredDelay}, + + [Parameter(Mandatory=$true, ParameterSetName='CallGroup')] + [ValidateSet('Simultaneous','InOrder')] + [System.String] + ${CallGroupOrder}, + + [Parameter(Mandatory=$true, ParameterSetName='CallGroup')] + [System.Array] + [AllowNull()] + [AllowEmptyCollection()] + ${CallGroupTargets}, + + [Parameter(Mandatory=$true, ParameterSetName='CallGroupMembership')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]] + [AllowEmptyCollection()] + ${GroupMembershipDetails}, + + [Parameter(Mandatory=$true, ParameterSetName='CallGroupNotification')] + [ValidateSet('Ring','Mute','Banner')] + [System.String] + ${GroupNotificationOverride}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($PSBoundParameters.ContainsKey('UnansweredDelay')) + { + if(($UnansweredDelay -as [TimeSpan]) -and ($UnansweredDelay -le (New-TimeSpan -Hours 0 -Minutes 1 -Seconds 0)) -and ($UnansweredDelay -ge (New-TimeSpan -Hours 0 -Minutes 0 -Seconds 0))) + { + $UnansweredDelay = $UnansweredDelay + } + else + { + write-warning "Unanswered delay is not in correct time range" + return + } + } + + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsUserCallingSettings @PSBoundParameters @httpPipelineArgs + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Transfer $PolisyList from user's input from string[] to object[], enable inline input + +function New-CsCustomPolicyPackage { + [OutputType([System.String])] + [CmdletBinding(DefaultParameterSetName='RequiredPolicyList', + PositionalBinding=$false, + SupportsShouldProcess, + ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + $Identity, + + [Parameter(Mandatory=$true, position=1)] + [System.String[]] + $PolicyList, + + [Parameter(position=2)] + $Description, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $Delimiters = ",", ".", ":", ";", " ", "`t" + [psobject[]]$InternalPolicyList = @() + foreach ($PolicyTypeAndName in $PolicyList) + { + $PolicyTypeAndNameArray = $PolicyTypeAndName -Split {$Delimiters -contains $_}, 2 + $PolicyTypeAndNameArray = $PolicyTypeAndNameArray.Trim() + if ($PolicyTypeAndNameArray.Count -lt 2) + { + throw "Invalid Policy Type and Name pair: $PolicyTypeAndName. Please use a proper delimeter" + } + $PolicyTypeAndNameObject = [psobject]@{ + PolicyType = $PolicyTypeAndNameArray[0] + PolicyName = $PolicyTypeAndNameArray[1] + } + $InternalPolicyList += $PolicyTypeAndNameObject + } + $null = $PSBoundParameters.Remove("PolicyList") + $null = $PSBoundParameters.Add("PolicyList", $InternalPolicyList) + Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsCustomPolicyPackage @PSBoundParameters @httpPipelineArgs + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Transfer $PolisyList from user's input from string[] to object[], enable inline input + +function Update-CsCustomPolicyPackage { + [OutputType([System.String])] + [CmdletBinding(DefaultParameterSetName='RequiredPolicyList', + PositionalBinding=$false, + SupportsShouldProcess, + ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + $Identity, + + [Parameter(Mandatory=$true, position=1)] + [System.String[]] + $PolicyList, + + [Parameter(position=2)] + $Description, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $Delimiters = ",", ".", ":", ";", " ", "`t" + [psobject[]]$InternalPolicyList = @() + foreach ($PolicyTypeAndName in $PolicyList) + { + $PolicyTypeAndNameArray = $PolicyTypeAndName -Split {$Delimiters -contains $_}, 2 + $PolicyTypeAndNameArray = $PolicyTypeAndNameArray.Trim() + if ($PolicyTypeAndNameArray.Count -lt 2) + { + throw "Invalid Policy Type and Name pair: $PolicyTypeAndName. Please use a proper delimeter" + } + $PolicyTypeAndNameObject = [psobject]@{ + PolicyType = $PolicyTypeAndNameArray[0] + PolicyName = $PolicyTypeAndNameArray[1] + } + $InternalPolicyList += $PolicyTypeAndNameObject + } + $null = $PSBoundParameters.Remove("PolicyList") + $null = $PSBoundParameters.Add("PolicyList", $InternalPolicyList) + Microsoft.Teams.ConfigAPI.Cmdlets.internal\Update-CsCustomPolicyPackage @PSBoundParameters @httpPipelineArgs + } + catch + { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Export-CsAutoAttendantHolidays { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the AA whose holiday schedules are to be exported.. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Use ResponseType 1 as binary output + $PSBoundParameters.Add("ResponseType", 1) + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantHolidays @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $internalOutput.ExportHolidayResultSerializedHolidayRecord + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of Export-CsOnlineAudioFile + +function Export-CsOnlineAudioFile { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Identity parameter is the identifier for the audio file. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [System.String] + # The ApplicationId parameter is the identifier for the application which will use this audio file. + ${ApplicationId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default Application ID to TenantGlobal and make it to the correct case + if ($ApplicationId -eq "" -or $ApplicationId -like "TenantGlobal") + { + $ApplicationId = "TenantGlobal" + } + elseif ($ApplicationId -like "OrgAutoAttendant") + { + $ApplicationId = "OrgAutoAttendant" + } + elseif ($ApplicationId -like "HuntGroup") + { + $ApplicationId = "HuntGroup" + } + + $null = $PSBoundParameters.Remove("ApplicationId") + $PSBoundParameters.Add("ApplicationId", $ApplicationId) + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $base64content = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Export-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($base64content -eq $null) { + return $null + } + + $output = [System.Convert]::FromBase64CharArray($base64content, 0, $base64content.Length) + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Write diagnostic message back to console + +function Find-CsGroup { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of groups. + ${SearchQuery}, + + [Parameter(Mandatory=$false, position=1)] + [System.Nullable[System.UInt32]] + # The MaxResults parameter identifies the maximum number of results to return. + ${MaxResults}, + + [Parameter(Mandatory=$false, position=2)] + [System.Boolean] + # The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. + ${ExactMatchOnly}, + + [Parameter(Mandatory=$false, position=3)] + [System.Boolean] + # The MailEnabledOnly parameter instructs the cmdlet to return mail enabled only. + ${MailEnabledOnly}, + + [Parameter(Mandatory=$false, position=4)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Find-CsGroup @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = @() + foreach($internalGroup in $internalOutput.Group) + { + $group = [Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel]::new() + $group.ParseFrom($internalGroup) + $output += $group + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Put nested ApplicationInstance object as first layer object + +function Find-CsOnlineApplicationInstance { + [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstance])] + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # A query for application instances by display name, telephone number, or GUID of the application instance + ${SearchQuery}, + + [Parameter(Mandatory=$false, position=1)] + [System.Nullable[System.UInt32]] + # The maximum number of results to return + ${MaxResults}, + + [Parameter(Mandatory=$false, position=2)] + [Switch] + # Instruct the cmdlet to return exact matches only + ${ExactMatchOnly}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # Instruct the cmdlet to return only application instances that are associated to a configuration + ${AssociatedOnly}, + + [Parameter(Mandatory=$false, position=4)] + [Switch] + # instructs the cmdlet to return only application instances that are not associated to any configuration + ${UnAssociatedOnly}, + + [Parameter(Mandatory=$false, position=5)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Find-CsOnlineApplicationInstance @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = @() + foreach($internalOutputApplicationInstance in $internalOutput.ApplicationInstance) + { + $applicationInstance = [Microsoft.Rtc.Management.Hosted.Online.Models.FindApplicationInstanceResult]::new() + $applicationInstance.ParseFrom($internalOutputApplicationInstance) + $output += $applicationInstance + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of the cmdlet + +function Get-CsAutoAttendant { + [CmdletBinding(DefaultParameterSetName='GetAllParamSet', PositionalBinding=$false)] + param( + [Parameter(Mandatory=$true, position=0, ParameterSetName='GetSpecificParamSet')] + [System.String] + # The identity for the AA to be retrieved. + ${Identity}, + + [Parameter(Mandatory=$false, position=1, ParameterSetName='GetAllParamSet')] + [Switch] + # If specified, the status records for each auto attendant in the result set are also retrieved. + ${IncludeStatus}, + + [Parameter(Mandatory=$false, position=2, ParameterSetName='GetAllParamSet')] + [Int] + # The First parameter indicates the maximum number of auto attendants to retrieve as the result. + ${First}, + + [Parameter(Mandatory=$false, position=3, ParameterSetName='GetAllParamSet')] + [Int] + # The Skip parameter indicates the number of initial auto attendants to skip in the result. + ${Skip}, + + [Parameter(Mandatory=$false, position=4, ParameterSetName='GetAllParamSet')] + [Switch] + # If specified, only auto attendants' names, identities and associated application instances will be retrieved. + ${ExcludeContent}, + + [Parameter(Mandatory=$false, position=5, ParameterSetName='GetAllParamSet')] + [System.String] + # If specified, only auto attendants whose names match that value would be returned. + ${NameFilter}, + + [Parameter(Mandatory=$false, position=6, ParameterSetName='GetAllParamSet')] + [System.String] + # If specified, the retrieved auto attendants would be sorted by the specified property. + ${SortBy}, + + [Parameter(Mandatory=$false, position=7, ParameterSetName='GetAllParamSet')] + [Switch] + # If specified, the retrieved auto attendants would be sorted in descending order. + ${Descending}, + + [Parameter(Mandatory=$false, position=8)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $PSBoundCommonParameters += @{$p.Key = $p.Value} + } + $null = $PSBoundCommonParameters.Remove("Identity") + $null = $PSBoundCommonParameters.Remove("First") + $null = $PSBoundCommonParameters.Remove("Skip") + $null = $PSBoundCommonParameters.Remove("ExcludeContent") + $null = $PSBoundCommonParameters.Remove("NameFilter") + $null = $PSBoundCommonParameters.Remove("SortBy") + $null = $PSBoundCommonParameters.Remove("Descending") + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendant @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = @() + foreach($internalOutputAutoAttendant in $internalOutput.AutoAttendant) + { + $autoAttendant = [Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant]::new() + $autoAttendant.ParseFrom($internalOutputAutoAttendant, $ExcludeContent) + + if ($Identity) + { + # Append common parameter here + $getCsAutoAttendantStatusParameters = @{Identity = $autoAttendant.Identity} + foreach($p in $PSBoundCommonParameters.GetEnumerator()) + { + $getCsAutoAttendantStatusParameters += @{$p.Key = $p.Value} + } + + $internalStatus = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantStatus @getCsAutoAttendantStatusParameters @httpPipelineArgs + + $autoAttendant.AmendStatus($internalStatus) + } + + $output += $autoAttendant + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Get-CsAutoAttendantHolidays { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the AA whose holiday schedules are to be exported.. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [System.String[]] + # The identity for the AA to be retrieved. + ${Years}, + + [Parameter(Mandatory=$false, position=2)] + [System.String[]] + # If specified, the status records for each auto attendant in the result set are also retrieved. + ${Names}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + if ($PSBoundParameters.ContainsKey("Years")) { + $null = $PSBoundParameters.Remove("Years") + $PSBoundParameters.Add("Year", $Years) + } + + if ($PSBoundParameters.ContainsKey("Names")) { + $null = $PSBoundParameters.Remove("Names") + $PSBoundParameters.Add("Name", $Names) + } + + # Use ResponseType 0 as visualization record + $PSBoundParameters.Add("ResponseType", 0) + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantHolidays @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = @() + foreach($internalHolidayVisualizationRecord in $internalOutput.HolidayVisualizationRecord) + { + $holidayVisualizationRecord = [Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayVisRecord]::new() + $holidayVisualizationRecord.ParseFrom($internalHolidayVisualizationRecord) + $output += $holidayVisualizationRecord + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of the cmdlet + +function Get-CsAutoAttendantStatus { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the AA to be retrieved. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [System.String[]] + ${IncludeResources}, + + [Parameter(Mandatory=$false, position=2)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantStatus @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.StatusRecord]::new() + $output.ParseFrom($internalOutput) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Get-CsAutoAttendantSupportedLanguage { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [System.String] + # The Identity parameter designates a specific language to be retrieved. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # Use ResponseType 1 as binary output + if ($PSBoundParameters.ContainsKey('Identity')) { + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantSupportedLanguage @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.Language]::new() + $output.ParseFrom($internalOutput) + + $output + } else { + $tenantInfoOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantTenantInformation @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($tenantInfoOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($tenantInfoOutput.Diagnostic) + + $supportedLanguagesOutput = @() + foreach ($supportedLanguage in $tenantInfoOutput.TenantInformationSupportedLanguage) { + $languageOutput = [Microsoft.Rtc.Management.Hosted.OAA.Models.Language]::new() + $languageOutput.ParseFrom($supportedLanguage) + $supportedLanguagesOutput += $languageOutput + } + + $supportedLanguagesOutput + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Get-CsAutoAttendantSupportedTimeZone { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [System.String] + # The Identity parameter specifies a time zone to be retrieved. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # Use ResponseType 1 as binary output + if ($PSBoundParameters.ContainsKey('Identity')) { + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantSupportedTimeZone @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone]::new() + $output.ParseFrom($internalOutput) + + $output + } else { + $tenantInfoOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantTenantInformation @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($tenantInfoOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($tenantInfoOutput.Diagnostic) + + $supportedTimezonesOutput = @() + foreach ($supportedTimezone in $tenantInfoOutput.TenantInformationSupportedTimeZone) { + $timezoneOutput = [Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone]::new() + $timezoneOutput.ParseFrom($supportedTimezone) + $supportedTimezonesOutput += $timezoneOutput + } + + $supportedTimezonesOutput + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Get-CsAutoAttendantTenantInformation { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantTenantInformation @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.TenantInformation]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsCallQueue { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the call queue which is retrieved. + ${Identity}, + + [Parameter(Mandatory=$false)] + [int] + # The First parameter gets the first N Call Queues. + ${First}, + + [Parameter(Mandatory=$false)] + [int] + # The Skip parameter skips the first N Call Queues. It is intended to be used for pagination purposes. + ${Skip}, + + [Parameter(Mandatory=$false)] + [switch] + # The ExcludeContent parameter only displays the Name and Id of the Call Queues. + ${ExcludeContent}, + + [Parameter(Mandatory=$false)] + [System.String] + # The Sort parameter specifies the property used to sort. + ${Sort}, + + [Parameter(Mandatory=$false)] + [switch] + # The Descending parameter is used to sort descending. + ${Descending}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NameFilter parameter returns Call Queues where name contains specified string + ${NameFilter}, + + [Parameter(Mandatory=$false)] + [Switch] + # Allow the cmdlet to run anyway + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if (${Identity} -and (${First} -or ${Skip} -or ${Sort} -or ${Descending} -or ${NameFilter})) { + throw "Identity parameter cannot be used with any other parameter." + } + + # Set the 'FilterInvalidObos' query parameter value to false. + $PSBoundParameters.Add('FilterInvalidObos', $false) + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + # Endpoint to get single entity does not support content exclusion, so we will filter content when displaying + if ($PSBoundParameters.ContainsKey('Identity') -and $PSBoundParameters.ContainsKey('ExcludeContent')) { + $PSBoundParameters.Remove("ExcludeContent") + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (${Identity} -ne '') { + $callQueue = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $callQueue.ParseFrom($result.CallQueue, $ExcludeContent) + } else { + $callQueues = @() + foreach ($model in $result.CallQueue) { + $callQueue = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $callQueues += $callQueue.ParseFrom($model, $ExcludeContent) + } + $callQueues + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsComplianceRecordingForCallQueueTemplate { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the compliance recording for CR4CQ template which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsComplianceRecordingForCallQueueTemplate @PSBoundParameters @httpPipelineArgs + + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (![string]::IsNullOrEmpty(${Id})) { + $ComplianceRecordingForCallQueue = [Microsoft.Rtc.Management.Hosted.Online.Models.ComplianceRecordingForCallQueue]::new() + $ComplianceRecordingForCallQueue.ParseFromGetResponse($result) + } + else { + $ComplianceRecordingForCallQueues = @() + foreach ($model in $result.ComplianceRecording) { + $ComplianceRecordingForCallQueue = [Microsoft.Rtc.Management.Hosted.Online.Models.ComplianceRecordingForCallQueue]::new() + $ComplianceRecordingForCallQueues += $ComplianceRecordingForCallQueue.ParseFromDtoModel($model) + } + $ComplianceRecordingForCallQueues + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsMainlineAttendantAppointmentBookingFlow { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the mainline attendant flow which is retrieved. + ${Identity}, + + [Parameter(Mandatory=$false)] + [int] + # The First parameter gets the first N mainline attendant flows. + ${First}, + + [Parameter(Mandatory=$false)] + [int] + # The Skip parameter skips the first N mainline attendant flows. It is intended to be used for pagination purposes. + ${Skip}, + + [Parameter(Mandatory=$false)] + [System.String] + # The SortBy parameter specifies the property used to sort. + ${SortBy}, + + [Parameter(Mandatory=$false)] + [switch] + # The Descending parameter is used to sort descending. + ${Descending}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NameFilter parameter returns mainline attendant flows where name contains specified string + ${NameFilter}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (${Identity} -ne '') { + $appointmentBookingFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + $appointmentBookingFlow.ParseFromGetResponse($result) + } else { + $appointmentBookingFlows = @() + foreach ($model in $result.MainlineAttendantFlowResponse) { + $appointmentBookingFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + $appointmentBookingFlows += $appointmentBookingFlow.ParseFromDomainModel($model) + } + $appointmentBookingFlows + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsMainlineAttendantFlow { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the mainline attendant flow which is retrieved. + ${Identity}, + + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the mainline attendant flow which is retrieved. + ${Type}, + + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the mainline attendant flow which is retrieved. + ${ConfigurationId}, + + [Parameter(Mandatory=$false)] + [int] + # The First parameter gets the first N mainline attendant flows. + ${First}, + + [Parameter(Mandatory=$false)] + [int] + # The Skip parameter skips the first N mainline attendant flows. It is intended to be used for pagination purposes. + ${Skip}, + + [Parameter(Mandatory=$false)] + [System.String] + # The SortBy parameter specifies the property used to sort. + ${SortBy}, + + [Parameter(Mandatory=$false)] + [switch] + # The Descending parameter is used to sort descending. + ${Descending}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NameFilter parameter returns mainline attendant flows where name contains specified string + ${NameFilter}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (${Identity} -ne '') { + if ($result.MainlineAttendantFlowResponseType -eq "AppointmentBooking") { + $mainlineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + } else { + $mainlineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + } + $mainlineAttendantFlow.ParseFromGetResponse($result) + } else { + $mainlineAttendantFlows = @() + foreach ($model in $result.MainlineAttendantFlowResponse) { + if ($model.Type -eq "AppointmentBooking") { + $mainlineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + } else { + $mainlineAttendantFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + } + $mainlineAttendantFlows += $mainlineAttendantFlow.ParseFromDomainModel($model) + } + $mainlineAttendantFlows + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsMainlineAttendantQuestionAnswerFlow { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the mainline attendant flow which is retrieved. + ${Identity}, + + [Parameter(Mandatory=$false)] + [int] + # The First parameter gets the first N mainline attendant flows. + ${First}, + + [Parameter(Mandatory=$false)] + [int] + # The Skip parameter skips the first N mainline attendant flows. It is intended to be used for pagination purposes. + ${Skip}, + + [Parameter(Mandatory=$false)] + [System.String] + # The SortBy parameter specifies the property used to sort. + ${SortBy}, + + [Parameter(Mandatory=$false)] + [switch] + # The Descending parameter is used to sort descending. + ${Descending}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NameFilter parameter returns mainline attendant flows where name contains specified string + ${NameFilter}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantQuestionAnswerFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (${Identity} -ne '') { + $questionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $questionAnswerFlow.ParseFromGetResponse($result) + } else { + $questionAnswerFlows = @() + foreach ($model in $result.MainlineAttendantFlowResponse) { + $questionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $questionAnswerFlows += $questionAnswerFlow.ParseFromDomainModel($model) + } + $questionAnswerFlows + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Get-CsOnlineApplicationInstanceAssociation { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the application instance whose association is to be retrieved. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + # Encode the given "Identity" if it is a SIP URI (aka User Principle Name (UPN)) + $PSBoundParameters['Identity'] = EncodeSipUri($PSBoundParameters['Identity']) + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineApplicationInstanceAssociation @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of the cmdlet + +function Get-CsOnlineApplicationInstanceAssociationStatus { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the application instance whose association provisioning status is to be retrieved. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineApplicationInstanceAssociationStatus @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of Get-CsOnlineAudioFile + +function Get-CsOnlineAudioFile { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [System.String] + # The Identity parameter is the identifier for the audio file. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [System.String] + # The ApplicationId parameter is the identifier for the application which will use this audio file. + ${ApplicationId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default Application ID to TenantGlobal and make it to the correct case + if ($ApplicationId -eq "" -or $ApplicationId -like "TenantGlobal") + { + $ApplicationId = "TenantGlobal" + } + elseif ($ApplicationId -like "OrgAutoAttendant") + { + $ApplicationId = "OrgAutoAttendant" + } + elseif ($ApplicationId -like "HuntGroup") + { + $ApplicationId = "HuntGroup" + } + + $null = $PSBoundParameters.Remove("ApplicationId") + $PSBoundParameters.Add("ApplicationId", $ApplicationId) + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($Identity -ne "") { + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() + $output.ParseFrom($internalOutput) + } + else { + $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutputs -eq $null) { + return $null + } + + $output = New-Object Collections.Generic.List[Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile] + foreach($internalOutput in $internalOutputs) { + $audioFile = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() + $audioFile.ParseFrom($internalOutput) + $output.Add($audioFile) + } + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsOnlineSchedule { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the schedule which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineSchedule @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (${Id} -ne '') { + $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() + $schedule.ParseFrom($result) + } else { + $schedules = @() + foreach ($model in $result.Schedule) { + $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() + $schedules += $schedule.ParseFrom($model) + } + $schedules + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Get-CsOnlineVoicemailUserSettings { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the user for the voice mail settings + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineVMUserSetting @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $result + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsSharedCallQueueHistoryTemplate { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the shared call queue history template which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs + + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (![string]::IsNullOrEmpty(${Id})) { + $SharedCallQueueHistory = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::new() + $SharedCallQueueHistory.ParseFromGetResponse($result) + } + else { + $AllSharedCallQueueHistory = @() + foreach ($model in $result.AllSharedCallQueueHistory) { + $SharedCallQueueHistory = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::new() + $AllSharedCallQueueHistory += $SharedCallQueueHistory.ParseFromDtoModel($model) + } + $AllSharedCallQueueHistory + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Get-CsTagsTemplate { + [CmdletBinding()] + param( + [Parameter(Mandatory=$false)] + [System.String] + # The identity of the shared tags template which is retrieved. + ${Id}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTagsTemplate @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + if (![string]::IsNullOrEmpty(${Id})) { + $TagsTemplate = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() + $TagsTemplate.ParseFromGetResponse($result) + } + else { + $AllIvrTagsTemplates = @() + foreach ($model in $result.IvrTagsTemplate) { + $TagsTemplate = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() + $AllIvrTagsTemplates += $TagsTemplate.MapFromAutoGeneratedModel($model) + } + $AllIvrTagsTemplates + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Import-CsAutoAttendantHolidays { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the AA whose holiday schedules are to be imported. + ${Identity}, + + [Alias('Input')] + [Parameter(Mandatory=$true, position=1)] + [System.Byte[]] + ${InputBytes}, + + [Parameter(Mandatory=$false, position=2)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + $base64input = [System.Convert]::ToBase64String($InputBytes) + $PSBoundParameters.Add("SerializedHolidayRecord", $base64input) + $null = $PSBoundParameters.Remove("InputBytes") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Import-CsAutoAttendantHolidays @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = @() + foreach($internalImportHolidayStatus in $internalOutput.ImportAutoAttendantHolidayResultImportHolidayStatusRecord) + { + $importHolidayStatus = [Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult]::new() + $importHolidayStatus.ParseFrom($internalImportHolidayStatus) + $output += $importHolidayStatus + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Base64 encode the content for the audio file + +function Import-CsOnlineAudioFile { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [System.String] + # The ApplicationId parameter is the identifier for the application which will use this audio file. + ${ApplicationId}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The FileName parameter is the name of the audio file. + ${FileName}, + + [Parameter(Mandatory=$true, position=2)] + [System.Byte[]] + # The Content parameter represents the content of the audio file. + ${Content}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + $base64content = [System.Convert]::ToBase64String($Content) + $null = $PSBoundParameters.Remove("Content") + $PSBoundParameters.Add("Content", $base64content) + + # Default Application ID to TenantGlobal and make it to the correct case + if ($ApplicationId -eq "" -or $ApplicationId -like "TenantGlobal") + { + $ApplicationId = "TenantGlobal" + } + elseif ($ApplicationId -like "OrgAutoAttendant") + { + $ApplicationId = "OrgAutoAttendant" + } + elseif ($ApplicationId -like "HuntGroup") + { + $ApplicationId = "HuntGroup" + } + $null = $PSBoundParameters.Remove("ApplicationId") + $PSBoundParameters.Add("ApplicationId", $ApplicationId) + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Import-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of cmdlet + +function New-CsAutoAttendant { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name parameter is a friendly name that is assigned to the AA. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. + ${LanguageId}, + + [Parameter(Mandatory=$false, position=2)] + [System.String] + # The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. + ${VoiceId}, + + [Parameter(Mandatory=$true, position=3)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow] + # The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during business hours). + ${DefaultCallFlow}, + + [Parameter(Mandatory=$false, position=4)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + # The Operator parameter represents the address or PSTN number of the operator. + ${Operator}, + + [Parameter(Mandatory=$false, position=5)] + [Switch] + # The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. + ${EnableVoiceResponse}, + + [Parameter(Mandatory=$true, position=6)] + [System.String] + # The TimeZoneId parameter represents the AA time zone. + ${TimeZoneId}, + + [Parameter(Mandatory=$false, position=7)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow[]] + # The CallFlows parameter represents call flows, which are required if they are referenced in the CallHandlingAssociations parameter. + ${CallFlows}, + + [Parameter(Mandatory=$false, position=8)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation[]] + # The CallHandlingAssociations parameter represents the call handling associations. + ${CallHandlingAssociations}, + + [Parameter(Mandatory=$false, position=9)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] + # Specifies the users to which call transfers are allowed through directory lookup feature. + ${InclusionScope}, + + [Parameter(Mandatory=$false, position=10)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] + # Specifies the users to which call transfers are not allowed through directory lookup feature. + ${ExclusionScope}, + + [Parameter(Mandatory=$false, position=11)] + [System.Guid[]] + # The list of authorized users. + ${AuthorizedUsers}, + + [Parameter(Mandatory=$false, position=12)] + [System.Guid[]] + # The list of hidden authorized users. + ${HideAuthorizedUsers}, + + [Parameter(Mandatory=$false, position=13)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(Mandatory=$false, position=14)] + [System.String] + # The UserNameExtension parameter represents how username could be extended in dial search, by appending additional info (None, Office, Department). + ${UserNameExtension}, + + [Parameter(Mandatory=$false, position=15)] + [Switch] + # The EnableMainlineAttendant parameter indicates whether mainline attendant is enabled or not. + ${EnableMainlineAttendant}, + + [Parameter(Mandatory=$false, position=16)] + [System.String] + # The MainlineAttendantAgentVoiceId parameter represents the voice that is used for Mainline Attendant. + ${MainlineAttendantAgentVoiceId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $PSBoundCommonParameters += @{$p.Key = $p.Value} + } + $null = $PSBoundCommonParameters.Remove("Name") + $null = $PSBoundCommonParameters.Remove("LanguageId") + $null = $PSBoundCommonParameters.Remove("VoiceId") + $null = $PSBoundCommonParameters.Remove("DefaultCallFlow") + $null = $PSBoundCommonParameters.Remove("Operator") + $null = $PSBoundCommonParameters.Remove("EnableVoiceResponse") + $null = $PSBoundCommonParameters.Remove("TimeZoneId") + $null = $PSBoundCommonParameters.Remove("CallFlows") + $null = $PSBoundCommonParameters.Remove("CallHandlingAssociations") + $null = $PSBoundCommonParameters.Remove("InclusionScope") + $null = $PSBoundCommonParameters.Remove("ExclusionScope") + $null = $PSBoundCommonParameters.Remove("AuthorizedUsers") + $null = $PSBoundCommonParameters.Remove("HideAuthorizedUsers") + $null = $PSBoundCommonParameters.Remove("EnableMainlineAttendant") + $null = $PSBoundCommonParameters.Remove("MainlineAttendantAgentVoiceId") + + if ($DefaultCallFlow -ne $null) { + $null = $PSBoundParameters.Remove('DefaultCallFlow') + if ($DefaultCallFlow.Id -ne $null) { + $PSBoundParameters.Add('DefaultCallFlowId', $DefaultCallFlow.Id) + } + if ($DefaultCallFlow.Greetings -ne $null) { + $defaultCallFlowGreetings = @() + foreach ($defaultCallFlowGreeting in $DefaultCallFlow.Greetings) { + $defaultCallFlowGreetings += $defaultCallFlowGreeting.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) + } + if ($DefaultCallFlow.Name -ne $null) { + $PSBoundParameters.Add('DefaultCallFlowName', $DefaultCallFlow.Name) + } + if ($DefaultCallFlow.ForceListenMenuEnabled -eq $true) { + $PSBoundParameters.Add('DefaultCallFlowForceListenMenuEnabled', $true) + } + if ($DefaultCallFlow.Menu -ne $null) { + if ($DefaultCallFlow.Menu.DialByNameEnabled) { + $PSBoundParameters.Add('MenuDialByNameEnabled', $true) + } + $PSBoundParameters.Add('MenuDirectorySearchMethod', $DefaultCallFlow.Menu.DirectorySearchMethod.ToString()) + if ($DefaultCallFlow.Menu.Name -ne $null) { + $PSBoundParameters.Add('MenuName', $DefaultCallFlow.Menu.Name) + } + if ($DefaultCallFlow.Menu.MenuOptions -ne $null) { + $defaultCallFlowMenuOptions = @() + foreach ($defaultCallFlowMenuOption in $DefaultCallFlow.Menu.MenuOptions) { + $defaultCallFlowMenuOptions += $defaultCallFlowMenuOption.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('MenuOption', $defaultCallFlowMenuOptions) + } + if ($DefaultCallFlow.Menu.Prompts -ne $null) { + $defaultCallFlowMenuPrompts = @() + foreach ($defaultCallFlowMenuPrompt in $DefaultCallFlow.Menu.Prompts) { + $defaultCallFlowMenuPrompts += $defaultCallFlowMenuPrompt.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('MenuPrompt', $defaultCallFlowMenuPrompts) + } + } + } + if ($CallFlows -ne $null) { + $null = $PSBoundParameters.Remove('CallFlows') + $inputCallFlows = @() + foreach ($callFlow in $CallFlows) { + $inputCallFlows += $callFlow.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('CallFlow', $inputCallFlows) + } + if ($CallHandlingAssociations -ne $null) { + $null = $PSBoundParameters.Remove('CallHandlingAssociations') + $inputCallHandlingAssociations = @() + foreach ($callHandlingAssociation in $CallHandlingAssociations) { + $inputCallHandlingAssociations += $callHandlingAssociation.ParseToAutoGeneratedModel() + } + $PSBoundParameters.Add('CallHandlingAssociation', $inputCallHandlingAssociations) + } + if ($Operator -ne $null) { + $null = $PSBoundParameters.Remove('Operator') + $PSBoundParameters.Add('OperatorEnableTranscription', $Operator.EnableTranscription) + $PSBoundParameters.Add('OperatorId', $Operator.Id) + $PSBoundParameters.Add('OperatorType', $Operator.Type.ToString()) + } + if ($InclusionScope -ne $null) { + $null = $PSBoundParameters.Remove('InclusionScope') + $PSBoundParameters.Add('InclusionScopeType', $InclusionScope.Type.ToString()) + $PSBoundParameters.Add('InclusionScopeGroupDialScopeGroupId', $InclusionScope.GroupScope.GroupIds) + } + if ($ExclusionScope -ne $null) { + $null = $PSBoundParameters.Remove('ExclusionScope') + $PSBoundParameters.Add('ExclusionScopeType', $ExclusionScope.Type.ToString()) + $PSBoundParameters.Add('ExclusionScopeGroupDialScopeGroupId', $ExclusionScope.GroupScope.GroupIds) + } + if ($AuthorizedUsers -ne $null) { + $null = $PSBoundParameters.Remove('AuthorizedUsers') + $inputAuthorizedUsers = @() + foreach ($authorizedUser in $AuthorizedUsers) { + $inputAuthorizedUsers += $authorizedUser.ToString() + } + $PSBoundParameters.Add('AuthorizedUser', $inputAuthorizedUsers) + } + if ($HideAuthorizedUsers -ne $null) { + $null = $PSBoundParameters.Remove('HideAuthorizedUsers') + $inputHideAuthorizedUsers = @() + foreach ($hiddenAuthorizedUser in $HideAuthorizedUsers) { + $inputHideAuthorizedUsers += $hiddenAuthorizedUser.ToString() + } + $PSBoundParameters.Add('HideAuthorizedUser', $inputHideAuthorizedUsers) + } + + if ($EnableMainlineAttendant -eq $true) { + # Check whether the greetings is provided by the customer or should we use the default greeting. + if ($DefaultCallFlow.Greetings -eq $null) { + Write-Warning "Greetings is not set for the DefaultCallFlow. The system default greeting will be used for mainline attendant." + $defaultCallFlowGreetings = @() + $defaultCallFlowGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject( + @{ + ActiveType = [Microsoft.Rtc.Management.Hosted.OAA.Models.PromptType]::TextToSpeech; + TextToSpeechPrompt = "Hello, and thank you for calling $Name. How can I assist you today? Please note that this call may be recorded for compliance purposes." + } + ) + $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) + } + + # For mainline attendant as of now, we only support "en-US" language. + $supportedLanguageId = "en-US" + if ($LanguageId -ne $supportedLanguageId) { + Write-Warning "The provided LanguageId '$LanguageId' is not supported for mainline attendant. Defaulting to 'en-US'." + $null = $PSBoundParameters.Remove('LanguageId') + $PSBoundParameters.Add('LanguageId', $supportedLanguageId) + } + + # For mainline attendant, we only support specific voice ids. + $mainlineAttendantVoiceIds = [Microsoft.Rtc.Management.Hosted.OAA.Models.MainlineAttendantSupportedVoiceIds] + if ([string]::IsNullOrWhiteSpace($MainlineAttendantAgentVoiceId) -or + -not [System.Enum]::IsDefined($mainlineAttendantVoiceIds, $MainlineAttendantAgentVoiceId)) { + throw "The provided MainlineAttendantAgentVoiceId '$MainlineAttendantAgentVoiceId' is not supported for Mainline Attendant. Supported values are: $([string]::Join(', ', [System.Enum]::GetNames($mainlineAttendantVoiceIds)))." + } + $mainlineAttendantVoiceId = $mainlineAttendantVoiceIds::$($MainlineAttendantAgentVoiceId) + $null = $PSBoundParameters.Remove('MainlineAttendantAgentVoiceId') + $PSBoundParameters.Add("MainlineAttendantAgentVoiceId", $mainlineAttendantVoiceId) + + # For Mainline Attendant, EnableVoiceResponse should must be true. + if ($EnableVoiceResponse -ne $true) { + Write-Warning "`$EnableVoiceResponse` is not set. Defaulting to 'true' for mainline attendant." + $null = $PSBoundParameters.Remove('EnableVoiceResponse') + $PSBoundParameters.Add('EnableVoiceResponse', $true) + } + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendant @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant]::new() + $output.ParseFrom($internalOutput.AutoAttendant) + + $getCsAutoAttendantStatusParameters = @{Identity = $output.Identity} + foreach($p in $PSBoundCommonParameters.GetEnumerator()) + { + $getCsAutoAttendantStatusParameters += @{$p.Key = $p.Value} + } + + $internalStatus = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantStatus @getCsAutoAttendantStatusParameters @httpPipelineArgs + $output.AmendStatus($internalStatus) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of cmdlet + +function New-CsAutoAttendantCallableEntity { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Identity parameter represents the ID of the callable entity + ${Identity}, + + [Parameter(Mandatory=$true, position=1)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntityType] + # The Type parameter represents the type of the callable entity + ${Type}, + + [Parameter(Mandatory=$false, position=2)] + [Switch] + # Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. + ${EnableTranscription}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. + ${EnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false, position=4)] + [System.Int16] + # The Call Priority of the MenuOption, only applies when the CallableEntityType (Type) is ApplicationEndpoint. + ${CallPriority}, + + [Parameter(Mandatory=$false, position=5)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # CallPriority is only applicable for the 'ApplicationEndpoint' and 'ConfigurationEndpoint' type. + # For all other cases, an error message should be displayed when a value is provided. + if ($Type -ne 'ApplicationEndpoint' -and $Type -ne 'ConfigurationEndpoint' -and ([Math]::Abs($CallPriority) -ge 1)) + { + throw "CallPriority is only applicable when the 'Type' is 'ApplicationEndpoint' or 'ConfigurationEndpoint'. Please remove the CallPriority."; + } + + # Making sure the user provides the correct CallPriority value. The valid values are 1 to 5. + # Zero is also allowed which means the user wants to use the default CallPriority or doesn't want to use the CallPriority feature. + if (($Type -eq 'ApplicationEndpoint' -or $Type -eq 'ConfigurationEndpoint') -and ($CallPriority -lt 0 -or $CallPriority -gt 5)) + { + throw "Invalid CallPriority. The valid values are 1 to 5 (default is 3). Please provide the correct value."; + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallableEntity @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Put nested ApplicationInstance object as first layer object + +function New-CsAutoAttendantCallFlow { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name parameter represents a unique friendly name for the call flow. + ${Name}, + + [Parameter(Mandatory=$false, position=1)] + [PSObject[]] + # If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. + ${Greetings}, + + [Parameter(Mandatory=$true, position=2)] + [PSObject] + # The Menu parameter identifies the menu to render when the call flow is executed. + ${Menu}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The ForceListenMenuEnabled parameter indicates whether the caller will be forced to listen to the menu. + ${ForceListenMenuEnabled}, + + [Parameter(Mandatory=$false, position=4)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + If ($ForceListenMenuEnabled -ne $null){ + $null = $PSBoundParameters.Remove("ForceListenMenuEnabled") + $PSBoundParameters.Add('ForceListenMenuEnabled', $ForceListenMenuEnabled) + } + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($Greetings -ne $null) { + $null = $PSBoundParameters.Remove('Greetings') + $inputGreetings = @() + foreach ($greeting in $Greetings) { + $inputGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($greeting) + } + $PSBoundParameters.Add('Greeting', $inputGreetings) + } + + if ($Menu -ne $null) { + $null = $PSBoundParameters.Remove('Menu') + if ($Menu.DialByNameEnabled) { + $PSBoundParameters.Add('MenuDialByNameEnabled', $true) + } + $PSBoundParameters.Add('MenuDirectorySearchMethod', $Menu.DirectorySearchMethod) + $PSBoundParameters.Add('MenuName', $Menu.Name) + $inputMenuOptions = @() + foreach ($menuOption in $Menu.MenuOptions) { + $inputMenuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($menuOption) + } + $PSBoundParameters.Add('MenuOption', $inputMenuOptions) + $inputMenuPrompts = @() + foreach ($menuPrompt in $Menu.Prompts) { + $inputMenuPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($menuPrompt) + } + $PSBoundParameters.Add('MenuPrompt', $inputMenuPrompts) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print diagnostic message from service + +function New-CsAutoAttendantCallHandlingAssociation { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociationType] + # The Type parameter represents the type of the call handling association. + ${Type}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The ScheduleId parameter represents the schedule to be associated with the call flow. + ${ScheduleId}, + + [Parameter(Mandatory=$true, position=2)] + [System.String] + # The CallFlowId parameter represents the call flow to be associated with the schedule. + ${CallFlowId}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The Disable parameter, if set, establishes that the call handling association is created as disabled. + ${Disable}, + + [Parameter(Mandatory=$false, position=4)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + if ($Disable -eq $true) { + $null = $PSBoundParameters.Remove('Disable') + } else { + $PSBoundParameters.Add('Enable', $true) + } + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallHandlingAssociation @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print diagnostic message from server respond + +function New-CsAutoAttendantDialScope { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [Switch] + # Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. + ${GroupScope}, + + [Parameter(Mandatory=$true, position=1)] + [System.String[]] + # Refers to the IDs of the groups that are to be included in the dial-scope. + ${GroupIds}, + + [Parameter(Mandatory=$false, position=2)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + if ($GroupScope -eq $true) { + $null = $PSBoundParameters.Remove('GroupScope') + } + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantDialScope @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format input of the cmdlet + +function New-CsAutoAttendantMenu { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name parameter represents a friendly name for the menu. + ${Name}, + + [Parameter(Mandatory=$false, position=1)] + [PSObject[]] + # The Prompts parameter reflects the prompts to play when the menu is activated. + ${Prompts}, + + [Parameter(Mandatory=$false, position=2)] + [PSObject[]] + # The MenuOptions parameter is a list of menu options for this menu. + ${MenuOptions}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. + ${EnableDialByName}, + + [Parameter(Mandatory=$false, position=4)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod] + # The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu. + ${DirectorySearchMethod}, + + [Parameter(Mandatory=$false, position=5)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($Prompts -ne $null) { + $null = $PSBoundParameters.Remove('Prompts') + $inputPrompts = @() + foreach ($prompt in $Prompts) { + $inputPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($prompt) + } + $PSBoundParameters.Add('Prompt', $inputPrompts) + } + + if ($MenuOptions -ne $null) { + $null = $PSBoundParameters.Remove('MenuOptions') + $inputMenuOptions = @() + foreach ($menuOption in $MenuOptions) { + $inputMenuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($menuOption) + } + $PSBoundParameters.Add('MenuOption', $inputMenuOptions) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantMenu @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.Menu]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format input of the cmdlet + +function New-CsAutoAttendantMenuOption { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType] + # The Action parameter represents the action to be taken when the menu option is activated. + ${Action}, + + [Parameter(Mandatory=$true, position=1)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DtmfTone] + # The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option. + ${DtmfResponse}, + + [Parameter(Mandatory=$false, position=2)] + [System.String[]] + # The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. + ${VoiceResponses}, + + [Parameter(Mandatory=$false, position=3)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + # The CallTarget parameter represents the target for call transfer after the menu option is selected. + ${CallTarget}, + + [Parameter(Mandatory=$false, position=4)] + [PSObject] + # The Prompt parameter represents the announcement prompt. + ${Prompt}, + + [Parameter(Mandatory=$false, position=5)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(Mandatory=$false, position=6)] + [System.String] + # Description of the menu option. + ${Description}, + + [Parameter(Mandatory=$false, position=7)] + [System.String] + # The mainline attendant target only when the action is MainlineAttendantFlow. + ${MainlineAttendantTarget}, + + [Parameter(Mandatory=$false, position=8)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.AgentTargetType] + # The mainline attendant target only when the action is MainlineAttendantFlow. + ${AgentTargetType}, + + [Parameter(Mandatory=$false, position=9)] + [System.String] + # The mainline attendant target only when the action is MainlineAttendantFlow. + ${AgentTarget}, + + [Parameter(Mandatory=$false, position=10)] + [System.String] + # The mainline attendant target only when the action is MainlineAttendantFlow. + ${AgentTargetTagTemplateId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($CallTarget -ne $null) { + $null = $PSBoundParameters.Remove('CallTarget') + $PSBoundParameters.Add('CallTargetId', $CallTarget.Id) + $PSBoundParameters.Add('CallTargetType', $CallTarget.Type) + if ($CallTarget.EnableTranscription) { + $PSBoundParameters.Add('CallTargetEnableTranscription', $True) + } + if ($CallTarget.EnableSharedVoicemailSystemPromptSuppression) { + $PSBoundParameters.Add('CallTargetEnableSharedVoicemailSystemPromptSuppression', $True) + } + if ($CallTarget.Type -eq 'ApplicationEndpoint' -or $CallTarget.Type -eq 'ConfigurationEndpoint') { + $PSBoundParameters.Add('CallTargetCallPriority', $CallTarget.CallPriority) + } + } + + if ($Prompt -ne $null) { + $typeNames = $Prompt.PSObject.TypeNames + if ($typeNames -NotContains "Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt" -and $typeNames -NotContains "Deserialized.Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt") { + throw "PSObject must be type of Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt or Deserialized.Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt" + } + + $null = $PSBoundParameters.Remove('Prompt') + $PSBoundParameters.Add('PromptActiveType', $Prompt.ActiveType) + $PSBoundParameters.Add('PromptTextToSpeechPrompt', $Prompt.TextToSpeechPrompt) + if ($Prompt.AudioFilePrompt -ne $null -and $Prompt.AudioFilePrompt.Id -ne $null) { + $PSBoundParameters.Add('AudioFilePromptId', $Prompt.AudioFilePrompt.Id) + $PSBoundParameters.Add('AudioFilePromptFileName', $Prompt.AudioFilePrompt.FileName) + $PSBoundParameters.Add('AudioFilePromptDownloadUri', $Prompt.AudioFilePrompt.DownloadUri) + } + } + + if ($Action -eq [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType]::MainlineAttendantFlow -and [string]::IsNullOrWhiteSpace($MainlineAttendantTarget)) + { + throw "The value of `MainlineAttendantTarget` cannot be null when the `Action` is '$Action'" + } + + if ($Action -eq [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType]::AgentsAndQueues -and [string]::IsNullOrWhiteSpace($AgentTargetType)) + { + throw "The value of `AgentTargetType` cannot be null when the `Action` is '$Action'" + } + + if ($Action -eq [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType]::AgentsAndQueues -and [string]::IsNullOrWhiteSpace($AgentTarget)) + { + throw "The value of `AgentTarget` cannot be null when the `Action` is '$Action'" + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantMenuOption @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::new() + $output.ParseFrom($internalOutput) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Base64 encode the content for the audio file + +function New-CsAutoAttendantPrompt { + [CmdletBinding(PositionalBinding=$true, DefaultParameterSetName='TextToSpeechParamSet')] + param( + [Parameter(Mandatory=$true, position=0, ParameterSetName="DualParamSet")] + [System.String] + # The ActiveType parameter identifies the active type (modality) of the AA prompt. + ${ActiveType}, + + [Parameter(Mandatory=$true, position=0, ParameterSetName="AudioFileParamSet")] + [Parameter(Mandatory=$false, position=1, ParameterSetName="DualParamSet")] + [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile] + # The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). + ${AudioFilePrompt}, + + [Parameter(Mandatory=$true, position=0, ParameterSetName="TextToSpeechParamSet")] + [Parameter(Mandatory=$false, position=2, ParameterSetName="DualParamSet")] + [System.String] + # The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. + ${TextToSpeechPrompt}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($ActiveType -eq "") { + $PSBoundParameters.Remove("ActiveType") | Out-Null + if ($TextToSpeechPrompt -ne "") { + $PSBoundParameters.Add("ActiveType", "TextToSpeech") + } elseif ($AudioFilePrompt -ne $null) { + $PSBoundParameters.Add("ActiveType", "AudioFile") + } else { + $PSBoundParameters.Add("ActiveType", "None") + } + } + + $ActiveType = "TextToSpeech" + + if ($AudioFilePrompt -ne $null) { + $PSBoundParameters.Add('AudioFilePromptId', $AudioFilePrompt.Id) + $PSBoundParameters.Add('AudioFilePromptFileName', $AudioFilePrompt.FileName) + $PSBoundParameters.Add('AudioFilePromptDownloadUri', $AudioFilePrompt.DownloadUri) + $PSBoundParameters.Remove('AudioFilePrompt') | Out-Null + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantPrompt @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::new() + $output.ParseFrom($internalOutput) + + return $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: parsing the return result to the CallQueue object type. + +function New-CsCallQueue { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name of the call queue to be created. + ${Name}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. + ${AgentAlertTime}, + + [Parameter(Mandatory=$false)] + [bool] + # The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + ${AllowOptOut}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. + ${DistributionLists}, + + [Parameter(Mandatory=$false)] + [bool] + # The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. + ${UseDefaultMusicOnHold}, + + [Parameter(Mandatory=$false)] + [System.String] + # The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. + ${WelcomeMusicAudioFileId}, + + [Parameter(Mandatory=$false)] + [System.String] + # The WelcomeTextToSpeechPrompt parameter represents the text to speech content to play when callers are connected with the Call Queue. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. + ${MusicOnHoldAudioFileId}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction] + # The OverflowAction parameter designates the action to take if the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowActionTarget parameter represents the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. + ${OverflowThreshold}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction] + # The TimeoutAction parameter defines the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutActionTarget represents the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. + ${TimeoutThreshold}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod] + # The RoutingMethod defines how agents will be called in a Call Queue. + ${RoutingMethod}, + + [Parameter(Mandatory=$false)] + [bool] + # The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. + ${PresenceBasedRouting} = $true, + + [Parameter(Mandatory=$false)] + [bool] + # The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for current call queue. + ${ConferenceMode} = $true, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The Users parameter lets you add agents to the Call Queue. + ${Users}, + + [Parameter(Mandatory=$false)] + [System.String] + # The LanguageId parameter indicates the language that is used to play shared voicemail prompts. + ${LanguageId}, + + [Parameter(Mandatory=$false)] + [System.String] + # This parameter is reserved for Microsoft internal use only. + ${LineUri}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. + ${OboResourceAccountIds}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableOverflowSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message on overflow. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message on timeout. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentAction] + # The NoAgentAction parameter defines the action to take if the NoAgents are LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentActionTarget represents the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail when NoAgents are Opted/LoggedIn to take calls. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail when NoAgents are Opted/LoggedIn to take calls. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller when NoAgents are LoggedIn/OptedIn to take calls. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message when NoAgents are LoggedIn/OptedIn to take calls. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentApplyTo] + # The NoAgentApplyTo parameter determines whether the NoAgent action applies to All Calls or only New calls. + ${NoAgentApplyTo}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # Id of the channel to connect a call queue to. + ${ChannelId}, + + [Parameter(Mandatory=$false)] + [System.Guid] + # Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + ${ChannelUserObjectId}, + + [Parameter(Mandatory=$false)] + [bool] + # The ShouldOverwriteCallableChannelProperty indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The list of authorized users. + ${AuthorizedUsers}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The list of hidden authorized users. + ${HideAuthorizedUsers}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the overflow action, only applies when the OverflowAction is an `Forward`. + ${OverflowActionCallPriority}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the timeout action, only applies when the TimeoutAction is an `Forward`. + ${TimeoutActionCallPriority}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the no agent opted in action, only applies when the NoAgentAction is an `Forward`. + ${NoAgentActionCallPriority}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Boolean]] + # The IsCallbackEnabled parameter for enabling and disabling the Courtesy Callback feature. + ${IsCallbackEnabled}, + + [parameter(Mandatory=$false)] + [System.String] + # The DTMF tone to press to start requesting callback, as part of the Courtesy Callback feature. + ${CallbackRequestDtmf}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The wait time before offering callback in seconds, as part of the Courtesy Callback feature. + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The number of calls in queue before offering callback, as part of the Courtesy Callback feature. + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The call to agent ratio threshold before offering callback, as part of the Courtesy Callback feature. + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [parameter(Mandatory=$false)] + [System.String] + # The identifier of the offer callback audio file to be played when offering callback to caller, as part of the Courtesy Callback feature. + ${CallbackOfferAudioFilePromptResourceId}, + + [parameter(Mandatory=$false)] + [System.String] + # The text-to-speech string to be converted to a speech and played when offering callback to caller, as part of the Courtesy Callback feature. + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The CallbackEmailNotificationTarget parameter for callback feature. + ${CallbackEmailNotificationTarget}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # Service level threshold in seconds for the call queue. Used for monitor calls in the call queue is handled within this threshold or not. + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(Mandatory=$false)] + [System.String] + # Shifts Team identity to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Shifts Scheduling Group identity to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Text annnouncement thats played before CR bot joins the call. + ${TextAnnouncementForCR}, + + [Parameter(Mandatory=$false)] + [System.String] + # Custom Audio announcement that is played before CR bot joins the call. + ${CustomAudioFileAnnouncementForCR}, + + [Parameter(Mandatory=$false)] + [System.String] + # Text announcement that is played if CR bot is unable to join the call. + ${TextAnnouncementForCRFailure}, + + [Parameter(Mandatory=$false)] + [System.String] + # Custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCRFailure}, + + [Parameter(Mandatory=$false)] + [System.String[]] + # Ids for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Id for Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(Mandatory=$false)] + [Switch] + # Allow the cmdlet to run anyway + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + if ($PSBoundParameters.ContainsKey('LineUri')) { + # Stick with the current TRPS cmdlet policy of silently ignoring the LineUri. Later, we need to remove this param from + # TRPS and ConfigAPI based cmdlets. Public facing document must be updated as well. + $PSBoundParameters.Remove('LineUri') | Out-Null + } + + #Setting PresenceAwareRouting to $false when LongestIdle is enabled as RoutingMethod + #Since having both conditions enabled is not supported in backend service. + if($RoutingMethod -eq 'LongestIdle') { + $PresenceBasedRouting = $false + $PSBoundParameters.Add('PresenceAwareRouting', $PresenceBasedRouting) + $PSBoundParameters.Remove('PresenceBasedRouting') | Out-Null + } + elseif ( $PSBoundParameters.ContainsKey('PresenceBasedRouting')) { + $PSBoundParameters.Add('PresenceAwareRouting', $PresenceBasedRouting) + $PSBoundParameters.Remove('PresenceBasedRouting') | Out-Null + } + + if ($ChannelId -ne '') { + $PSBoundParameters.Add('ThreadId', $ChannelId) + $PSBoundParameters.Remove('ChannelId') | Out-Null + } + + # Making sure the user provides the correct CallPriority values for CQ exceptions (overflow, timeout, NoAgent etc.) handling. + # The valid values are 1 to 5. Zero is also allowed which means the user wants to use the default value (3). + # (elseif) The CallPriority does not apply when the Action is not `Forward`. + if ($OverflowAction -eq 'Forward' -and ($OverflowActionCallPriority -lt 0 -or $OverflowActionCallPriority -gt 5)) { + throw "Invalid `OverflowActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($OverflowAction -ne 'Forward' -and ([Math]::Abs($OverflowActionCallPriority) -ge 1)) { + throw "OverflowActionCallPriority is only applicable when the 'OverflowAction' is 'Forward'. Please remove the OverflowActionCallPriority." + } + + if ($TimeoutAction -eq 'Forward' -and ($TimeoutActionCallPriority -lt 0 -or $TimeoutActionCallPriority -gt 5)) { + throw "Invalid `TimeoutActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($TimeoutAction -ne 'Forward' -and ([Math]::Abs($TimeoutActionCallPriority) -ge 1)) { + throw "TimeoutActionCallPriority is only applicable when the 'TimeoutAction' is 'Forward'. Please remove the TimeoutActionCallPriority." + } + + if ($NoagentAction -eq 'Forward' -and ($NoAgentActionCallPriority -lt 0 -or $NoAgentActionCallPriority -gt 5)) { + throw "Invalid `NoAgentActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($NoAgentAction -ne 'Forward' -and ([Math]::Abs($NoAgentActionCallPriority) -ge 1)) { + throw "NoAgentActionCallPriority is only applicable when the 'NoAgentAction' is 'Forward'. Please remove the NoAgentActionCallPriority." + } + + if ($PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $IsCallbackEnabled -eq $null) { + $null = $PSBoundParameters.Remove('IsCallbackEnabled') + } + + if ($PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and [string]::IsNullOrWhiteSpace($CallbackRequestDtmf)) { + $null = $PSBoundParameters.Remove('CallbackRequestDtmf') + } + + if ($PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $WaitTimeBeforeOfferingCallbackInSecond -eq $null) { + $null = $PSBoundParameters.Remove('WaitTimeBeforeOfferingCallbackInSecond') + } + + if ($PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $NumberOfCallsInQueueBeforeOfferingCallback -eq $null) { + $null = $PSBoundParameters.Remove('NumberOfCallsInQueueBeforeOfferingCallback') + } + + if ($PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $CallToAgentRatioThresholdBeforeOfferingCallback -eq $null) { + $null = $PSBoundParameters.Remove('CallToAgentRatioThresholdBeforeOfferingCallback') + } + + if ($PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and [string]::IsNullOrWhiteSpace($CallbackOfferAudioFilePromptResourceId)) { + $null = $PSBoundParameters.Remove('CallbackOfferAudioFilePromptResourceId') + } + + if ($PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($CallbackOfferTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('CallbackOfferTextToSpeechPrompt') + } + + if ($PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and [string]::IsNullOrWhiteSpace($CallbackEmailNotificationTarget)) { + $null = $PSBoundParameters.Remove('CallbackEmailNotificationTarget') + } + + if ($PSBoundParameters.ContainsKey('ServiceLevelThresholdResponseTimeInSecond') -and $ServiceLevelThresholdResponseTimeInSecond -eq $null) { + $null = $PSBoundParameters.Remove('ServiceLevelThresholdResponseTimeInSecond') + } + + if ($PSBoundParameters.ContainsKey('ShiftsTeamId') -and [string]::IsNullOrWhiteSpace($ShiftsTeamId)) { + $null = $PSBoundParameters.Remove('ShiftsTeamId') + } + + if ($PSBoundParameters.ContainsKey('ShiftsSchedulingGroupId') -and [string]::IsNullOrWhiteSpace($ShiftsSchedulingGroupId)) { + $null = $PSBoundParameters.Remove('ShiftsSchedulingGroupId') + } + + if ($PSBoundParameters.ContainsKey('TextAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCR)) { + $null = $PSBoundParameters.Remove('TextAnnouncementForCR') + } + + if ($PSBoundParameters.ContainsKey('CustomAudioFileAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($CustomAudioFileAnnouncementForCR)) { + $null = $PSBoundParameters.Remove('CustomAudioFileAnnouncementForCR') + } + + if ($PSBoundParameters.ContainsKey('TextAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCRFailure)) { + $null = $PSBoundParameters.Remove('TextAnnouncementForCRFailure') + } + + if ($PSBoundParameters.ContainsKey('CustomAudioFileAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($CustomAudioFileAnnouncementForCRFailure)) { + $null = $PSBoundParameters.Remove('CustomAudioFileAnnouncementForCRFailure') + } + + if ($PSBoundParameters.ContainsKey('ComplianceRecordingForCallQueueTemplateId') -and $ComplianceRecordingForCallQueueTemplateId -eq $null) { + $null = $PSBoundParameters.Remove('ComplianceRecordingForCallQueueTemplateId') + } + + if ($PSBoundParameters.ContainsKey('SharedCallQueueHistoryTemplateId') -and $SharedCallQueueHistoryTemplateId -eq $null) { + $null = $PSBoundParameters.Remove('SharedCallQueueHistoryTemplateId') + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsCallQueue @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $output.ParseFrom($result.CallQueue) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function New-CsComplianceRecordingForCallQueueTemplate { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name parameter is a friendly name that is assigned to the CR4CQ template. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description parameter provides a description for the CR4CQ template. + ${Description}, + + [Parameter(Mandatory=$true, position=2)] + [System.String] + # The BotApplicationInstanceObjectId parameter represents the ID of the CR bot + ${BotApplicationInstanceObjectId}, + + [Parameter(Mandatory=$false, position=3)] + [Switch] + # The RequiredDuringCall parameter indicates if compliance recording bot is required during the call. + ${RequiredDuringCall}, + + [Parameter(Mandatory=$false, position=4)] + [Switch] + # The RequiredBeforeCall parameter indicates if compliance recording bot is required before the call. + ${RequiredBeforeCall}, + + [Parameter(Mandatory=$false, position=5)] + [System.Int32] + # The ConcurrentInvitationCount parameter specifies the number of concurrent invitations to the CR bot. + ${ConcurrentInvitationCount}, + + [Parameter(Mandatory=$false, position=6)] + [System.String] + # The PairedApplication parameter specifies the paired application for the call queue. + ${PairedApplicationInstanceObjectId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # The HttpPipelinePrepend parameter allows for custom HTTP pipeline steps to be prepended. + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($RequiredDuringCall -eq $true){ + $null = $PSBoundParameters.Remove("RequiredDuringCall") + $PSBoundParameters.Add('RequiredDuringCall', $true) + } + + if ($RequiredBeforeCall -eq $true){ + $null = $PSBoundParameters.Remove("RequiredBeforeCall") + $PSBoundParameters.Add('RequiredBeforeCall', $true) + } + + if ($PairedApplication -ne $null){ + $null = $PSBoundParameters.Remove("PairedApplicationInstanceObjectId") + $PSBoundParameters.Add('PairedApplicationInstanceObjectId', $PairedApplication) + } + + if ($ConcurrentInvitationCount -eq 0){ + $null = $PSBoundParameters.Remove("ConcurrentInvitationCount") + $PSBoundParameters.Add('ConcurrentInvitationCount', 1) + } elseif ($ConcurrentInvitationCount -ne $null){ + # Validate the value of ConcurrentInvitationCount + if ($ConcurrentInvitationCount -lt 1 -or $ConcurrentInvitationCount -gt 2) { + Write-Error "The value of ConcurrentInvitationCount must be 1 or 2." + throw + } + $null = $PSBoundParameters.Remove("ConcurrentInvitationCount") + $PSBoundParameters.Add('ConcurrentInvitationCount', $ConcurrentInvitationCount) + } + + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsComplianceRecordingForCallQueueTemplate @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.ComplianceRecordingForCallQueue]::new() + $output.ParseFromCreateResponse($internalOutput) + } + catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Base64 encode the content for the audio file + +function New-CsMainlineAttendantAppointmentBookingFlow { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # Name of the mainline attendant appointment booking flow. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description of the flow. + ${Description}, + + [Parameter(Mandatory=$true, position=2)] + [Microsoft.Rtc.Management.Hosted.Online.Models.CallerAuthenticationMethod] + # One of the predefined method to authenticate a caller: “Sms”, “Email”, “VerificationLink”,“Voiceprint”,“UserDetails” + ${CallerAuthenticationMethod}, + + [Parameter(Mandatory=$true, position=3)] + [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] + # The authentication type of API and the possible values are: “Basic”, “ApiKey”, “BearerTokenStatic”, “BearerTokenDynamic” + ${ApiAuthenticationType}, + + [Parameter(Mandatory=$true, position=4)] + [System.String] + # The file path of API template JSON. + ${ApiDefinitions}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + try { + # Check if ApiDefinitions is a JSON file path + if (![string]::IsNullOrWhiteSpace($ApiDefinitions) -and $ApiDefinitions -match '\.json$') + { + # Read the JSON file into a PowerShell object + $ApiDefinitionsJsonObject = Get-Content -Path $ApiDefinitions | ConvertFrom-Json + + # Convert the PowerShell object back into a JSON string + $ApiDefinitionsJsonString = $ApiDefinitionsJsonObject | ConvertTo-Json -Depth 10 + + # The user input of `ApiDefinitions` parameter is the template file path, + # but we need to provide the content of the template to the downstream backend service. + $PSBoundParameters.Remove('ApiDefinitions') | Out-Null + $PSBoundParameters.Add("ApiDefinitions", $ApiDefinitionsJsonString) + } + else + { + throw "ApiDefinitions parameter must be a valid JSON file path." + } + } catch { + throw "Failed to read API Definitions file: $_" + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + $output.ParseFromCreateResponse($internalOutput) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +function New-CsMainlineAttendantQuestionAnswerFlow { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # Name of the mainline attendant question and answer flow. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description of the flow. + ${Description}, + + [Parameter(Mandatory=$false, position=2)] + [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] + # The authentication type of API and the possible values are: “Basic”, “ApiKey”, “BearerTokenStatic”, “BearerTokenDynamic” + ${ApiAuthenticationType}, + + [Parameter(Mandatory=$true, position=3)] + [System.String] + # The file path of KnowledgeBase JSON. + ${KnowledgeBase}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + try + { + # Check if KnowledgeBase is a JSON file path + if (![string]::IsNullOrWhiteSpace($KnowledgeBase) -and $KnowledgeBase -match '\.json$') + { + # Read the JSON file into a PowerShell object + $KnowledgeBaseJsonObject = Get-Content -Path $KnowledgeBase | ConvertFrom-Json + + # Convert the PowerShell object back into a JSON string + $KnowledgeBaseJsonString = $KnowledgeBaseJsonObject | ConvertTo-Json -Depth 10 + + # Create an instance of MainlineAttendantQuestionAnswerFlow to get the local file content + $mainlineAttendantQuestionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $KnowledgeBaseContentLocalFileContent = $mainlineAttendantQuestionAnswerFlow.ReadKnowledgeBaseContent($KnowledgeBaseJsonString, "local_file") + + # The user input of `KnowledgeBase` parameter is the knowledge-base file path, + # but we need to provide the content of the knowledge-base to the downstream backend service. + $PSBoundParameters.Remove('KnowledgeBase') | Out-Null + $PSBoundParameters.Add("KnowledgeBase", $KnowledgeBaseContentLocalFileContent) + } + else + { + throw "KnowledgeBase parameter must be a valid JSON file path." + } + } catch { + throw "Failed to read KnowledgeBase file: $_" + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsMainlineAttendantQuestionAnswerFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $output.ParseFromCreateResponse($internalOutput) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of the cmdlet + +function New-CsOnlineApplicationInstanceAssociation { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String[]] + # The Identities parameter is the identities of application instances to be associated with the provided configuration ID. + ${Identities}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The ConfigurationId parameter is the identity of the configuration that would be associatied with the provided application instances. + ${ConfigurationId}, + + [Parameter(Mandatory=$true, position=2)] + [System.String] + # The ConfigurationType parameter denotes the type of the configuration that would be associated with the provided application instances. + ${ConfigurationType}, + + [Parameter(Mandatory=$false, position=3)] + [System.Int16] + # The Call Priority of the MenuOption, only applies when the CallableEntityType (Type) is ApplicationEndpoint or ConfigurationEndpoint. + ${CallPriority}, + + [Parameter(Mandatory=$false, position=4)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + # Making sure the user provides the correct CallPriority value. The valid values are 1 to 5. + # Zero is also allowed which means the user wants to use the default CallPriority or doesn't want to use the CallPriority feature. + if ($CallPriority -lt 0 -or $CallPriority -gt 5) + { + throw "Invalid CallPriority. The valid values are 1 to 5. Please provide the correct value."; + } + + $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineApplicationInstanceAssociation @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutputs -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutputs.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput]::new() + $output.ParseFrom($internalOutputs) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the return result to the custom object + +function New-CsOnlineDateTimeRange { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Start parameter represents the start bound of the date-time range. + ${Start}, + + [Parameter(Mandatory=$false, position=1)] + [System.String] + # The End parameter represents the end bound of the date-time range. + ${End}, + + [Parameter(Mandatory=$false, position=2)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineDateTimeRange @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange]::new() + $output.ParseFrom($result) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: assign parameters' values and customize output + +function New-CsOnlineSchedule { + [CmdletBinding(DefaultParameterSetName="UnresolvedParamSet", SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true)] + [System.String] + # The name of the schedule which is created. + ${Name}, + + [Parameter(Mandatory=$true, ParameterSetName = "FixedScheduleParamSet")] + [switch] + # The FixedSchedule parameter indicates that a fixed schedule is to be created. + ${FixedSchedule}, + + [Parameter(Mandatory=$false, ParameterSetName = "FixedScheduleParamSet")] + # List of date-time ranges for a fixed schedule. + ${DateTimeRanges}, + + [Parameter(Mandatory=$true, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + [switch] + # The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. + ${WeeklyRecurrentSchedule}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Monday. + ${MondayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Tuesday. + ${TuesdayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Wednesday. + ${WednesdayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Thursday. + ${ThursdayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Friday. + ${FridayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Saturday. + ${SaturdayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + # List of time ranges for Sunday. + ${SundayHours}, + + [Parameter(Mandatory=$false, ParameterSetName = "WeeklyRecurrentScheduleParamSet")] + [switch] + # The flag for Complement enabled or not + ${Complement}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $dateTimeRangeStandardFormat = 'yyyy-MM-ddTHH:mm:ss'; + + # Get common parameters + $params = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + $null = $params.Remove("FixedSchedule") + $null = $params.Remove("DateTimeRanges") + $null = $params.Remove("WeeklyRecurrentSchedule") + $null = $params.Remove("MondayHours") + $null = $params.Remove("TuesdayHours") + $null = $params.Remove("WednesdayHours") + $null = $params.Remove("ThursdayHours") + $null = $params.Remove("FridayHours") + $null = $params.Remove("SaturdayHours") + $null = $params.Remove("SundayHours") + $null = $params.Remove("Complement") + + + if ($PsCmdlet.ParameterSetName -eq "UnresolvedParamSet") { + throw "A schedule type must be specified. Please use -WeeklyRecurrentSchedule or -FixedSchedule parameters to create the appropriate type of schedule." + } + + if ($PsCmdlet.ParameterSetName -eq "FixedScheduleParamSet") { + $fixedScheduleDateTimeRanges = @() + foreach ($dateTimeRange in $DateTimeRanges) { + $fixedScheduleDateTimeRanges += @{ + Start = $dateTimeRange.Start.ToString($dateTimeRangeStandardFormat, [System.Globalization.CultureInfo]::InvariantCulture) + End = $dateTimeRange.End.ToString($dateTimeRangeStandardFormat, [System.Globalization.CultureInfo]::InvariantCulture) + } + } + $params['FixedScheduleDateTimeRange'] = $fixedScheduleDateTimeRanges + } + + if ($PsCmdlet.ParameterSetName -eq "WeeklyRecurrentScheduleParamSet") { + if ($MondayHours -ne $null -and $MondayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleMondayHour'] = @() + foreach ($mondayHour in $MondayHours){ + $params['WeeklyRecurrentScheduleMondayHour'] += @{ + Start = $mondayHour.Start + End = $mondayHour.End + } + } + } + if ($TuesdayHours -ne $null -and $TuesdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleTuesdayHour'] = @() + foreach ($tuesdayHour in $TuesdayHours){ + $params['WeeklyRecurrentScheduleTuesdayHour'] += @{ + Start = $tuesdayHour.Start + End = $tuesdayHour.End + } + } + } + if ($WednesdayHours -ne $null -and $WednesdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleWednesdayHour'] = @() + foreach ($wednesdayHour in $WednesdayHours){ + $params['WeeklyRecurrentScheduleWednesdayHour'] += @{ + Start = $wednesdayHour.Start + End = $wednesdayHour.End + } + } + } + if ($ThursdayHours -ne $null -and $ThursdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleThursdayHour'] = @() + foreach ($thursdayHour in $ThursdayHours){ + $params['WeeklyRecurrentScheduleThursdayHour'] += @{ + Start = $thursdayHour.Start + End = $thursdayHour.End + } + } + } + if ($FridayHours -ne $null -and $FridayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleFridayHour'] = @() + foreach ($fridayHour in $FridayHours){ + $params['WeeklyRecurrentScheduleFridayHour'] += @{ + Start = $fridayHour.Start + End = $fridayHour.End + } + } + } + if ($SaturdayHours -ne $null -and $SaturdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleSaturdayHour'] = @() + foreach ($saturdayHour in $SaturdayHours){ + $params['WeeklyRecurrentScheduleSaturdayHour'] += @{ + Start = $saturdayHour.Start + End = $saturdayHour.End + } + } + } + if ($SundayHours -ne $null -and $SundayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleSundayHour'] = @() + foreach ($sundayHour in $SundayHours){ + $params['WeeklyRecurrentScheduleSundayHour'] += @{ + Start = $sundayHour.Start + End = $sundayHour.End + } + } + } + if ($Complement) { $params['WeeklyRecurrentScheduleIsComplemented'] = $true } + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineSchedule @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() + $schedule.ParseFrom($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the return result to the custom object + +function New-CsOnlineTimeRange { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Start parameter represents the start bound of the time range. + ${Start}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The End parameter represents the end bound of the time range. + ${End}, + + [Parameter(Mandatory=$false, position=2)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineTimeRange @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange]::new() + $output.ParseFrom($result) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function New-CsSharedCallQueueHistoryTemplate { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name parameter is a friendly name that is assigned to the shared call queue history template. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description parameter provides a description for the shared call queue history template. + ${Description}, + + [Parameter(Mandatory=$false, position=2)] + [Microsoft.Rtc.Management.Hosted.Online.Models.IncomingMissedCalls] + # The IncomingMissedCalls parameter determines whether the Shared Call Queue history is to be delivered to supervisors, agents and supervisors or none. + ${IncomingMissedCalls}, + + [Parameter(Mandatory=$false, position=3)] + [Microsoft.Rtc.Management.Hosted.Online.Models.AnsweredAndOutboundCalls] + # The AnsweredAndOutboundCalls parameter determines whether the Shared Call Queue history is to be delivered to supervisors, agents and supervisors or none. + ${AnsweredAndOutboundCalls}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # The HttpPipelinePrepend parameter allows for custom HTTP pipeline steps to be prepended. + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::new() + $output.ParseFromCreateResponse($internalOutput) + } + catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function New-CsTag { + [CmdletBinding(PositionalBinding = $true)] + param( + [Parameter(Mandatory = $true, Position = 0)] + [System.String] + # The Name parameter is a name assigned to a given tag. + ${TagName}, + + [Parameter(Mandatory = $false, Position = 1)] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + # The CallTarget parameter represents the target for call transfer after the menu option is selected. + ${TagDetails} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (-not $PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + + if ($TagDetails -ne $null) { + $null = $PSBoundParameters.Remove('TagDetails') + $PSBoundParameters.Add('TagDetailId', $TagDetails.Id) + $PSBoundParameters.Add('TagDetailType', $TagDetails.Type) + if ($TagDetails.EnableTranscription) { + $PSBoundParameters.Add('TagDetailEnableTranscription', $true) + } + if ($TagDetails.EnableSharedVoicemailSystemPromptSuppression) { + $PSBoundParameters.Add('TagDetailEnableSharedVoicemailSystemPromptSuppression', $true) + } + if ($TagDetails.Type -eq 'ApplicationEndpoint' -or $TagDetails.Type -eq 'ConfigurationEndpoint') { + $PSBoundParameters.Add('TagDetailCallPriority', $TagDetails.CallPriority) + } + } + + try { + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTag @PSBoundParameters @httpPipelineArgs + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic $internalOutput.Diagnostic + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTag]::new() + $output.MapFromCreateResponse($internalOutput) + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function New-CsTagsTemplate { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Name parameter is a friendly name that is assigned to the IVR tags template. + ${Name}, + + [Parameter(Mandatory=$true, position=1)] + [System.String] + # The Description parameter provides a description for the IVR tags template. + ${Description}, + + [Parameter(Mandatory=$true, position=2)] + [PSObject[]] + # The Tags parameter specifies the tags for the IVR tags template. + ${Tags}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # The HttpPipelinePrepend parameter allows for custom HTTP pipeline steps to be prepended. + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($Tags -ne $null) { + $inputTags = @() + foreach ($tag in $Tags) { + $inputTags += [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTag]::CreateAutoGeneratedFromObject($tag) + } + $null = $PSBoundParameters.Remove('Tags') + $PSBoundParameters.Add('Tags', $inputTags) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTagsTemplate @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() + $output.MapFromCreateResponseModel($internalOutput) + } + catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Display the diagnostic if any + +function Remove-CsAutoAttendant { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the AA to be removed. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsAutoAttendant @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: print out the diagnostics + +function Remove-CsCallQueue { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the call queue to be removed. + ${Identity}, + + [Parameter(Mandatory=$false)] + [Switch] + # Allow the cmdlet to run anyway + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to Stop + if (!$PSBoundParameters.ContainsKey('ErrorAction')) { + $PSBoundParameters.Add('ErrorAction', 'Stop') + } + + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + # Get the CallQueue to be deleted by Identity. + $getParams = @{Identity = $Identity; FilterInvalidObos = $false} + $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @getParams -ErrorAction Stop @httpPipelineArgs + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsCallQueue @PSBoundParameters @httpPipelineArgs + Write-AdminServiceDiagnostic($result.Diagnostics) + + # Convert the fecthed CallQueue DTO to domain model and print. + $deletedCallQueue= [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $deletedCallQueue.ParseFrom($getResult.CallQueue) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: print out the diagnostic + +function Remove-CsComplianceRecordingForCallQueueTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the CR4CQ template to be removed. + ${Id}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsComplianceRecordingForCallQueueTemplate @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $result + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: print out the diagnostic + +function Remove-CsMainlineAttendantAppointmentBookingFlow { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the mainline attendant appointment booking flow to be removed. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $result + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: print out the diagnostic + +function Remove-CsMainlineAttendantQuestionAnswerFlow { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the mainline attendant question answer flow to be removed. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsMainlineAttendantQuestionAnswerFlow @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $result + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of the cmdlet + +function Remove-CsOnlineApplicationInstanceAssociation { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String[]] + # The Identity parameter is the identity of application instances to be associated with the provided configuration ID. + ${Identities}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # We want to flight our cmdlet if Force param is passed, but AutoRest doesn't support Force param. + # Force param doesn't seem to do anything, so remove it if it's passed. + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + # Get the array of Identities, and remove parameter 'Identities', + # since api internal\Remove-CsOnlineApplicationInstanceAssociation takes only param 'Identity' as a string, + # so need send a request for each identity (endpointId) by looping through all Identities. + $endpointIdArr = @() + + if ($PSBoundParameters.ContainsKey('Identities')) { + $endpointIdArr = $PSBoundParameters['Identities'] + $PSBoundParameters.Remove('Identities') | Out-Null + } + + # Sends request for each identity (endpointId) + foreach ($endpointId in $endpointIdArr) { + # Encode the "endpointID" if it is a SIP URI (aka User Principle Name (UPN)) + $identity = EncodeSipUri($endpointId) + $PSBoundParameters.Add('Identity', $identity) + + $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineApplicationInstanceAssociation @PSBoundParameters @httpPipelineArgs + $PSBoundParameters.Remove('Identity') | Out-Null + + # Stop execution if internal cmdlet is failing + if ($internalOutputs -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutputs.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput]::new() + $output.ParseFrom($internalOutputs) + + $output + } + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Add default App ID for Remove-CsOnlineAudioFile + +function Remove-CsOnlineAudioFile { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The Identity parameter is the identifier for the audio file. + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("ApplicationId") + $PSBoundParameters.Add("ApplicationId", "TenantGlobal") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + $internalOutput + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: print out the diagnostic + +function Remove-CsOnlineSchedule { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the schedule to be removed. + ${Id}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineSchedule @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $result + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: print out the diagnostic + +function Remove-CsSharedCallQueueHistoryTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the shared call queue history template to be removed. + ${Id}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $result + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: print out the diagnostic + +function Remove-CsTagsTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identifier of the tags template to be removed. + ${Id}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsTagsTemplate @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + $result + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of cmdlet + +function Set-CsAutoAttendant { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the AA to be modified. + ${Instance}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $PSBoundCommonParameters += @{$p.Key = $p.Value} + } + $null = $PSBoundCommonParameters.Remove("Instance") + $null = $PSBoundCommonParameters.Remove("WhatIf") + $null = $PSBoundCommonParameters.Remove("Confirm") + + $null = $PSBoundParameters.Remove('Instance') + if ($Instance.Identity -ne $null) { + $PSBoundParameters.Add('Identity', $Instance.Identity) + } + if ($Instance.Id -ne $null) { + $PSBoundParameters.Add('Id', $Instance.Id) + } + if ($Instance.Name -ne $null) { + $PSBoundParameters.Add('Name', $Instance.Name) + } + if ($Instance.LanguageId -ne $null) { + $PSBoundParameters.Add('LanguageId', $Instance.LanguageId) + } + if ($Instance.TimeZoneId -ne $null) { + $PSBoundParameters.Add('TimeZoneId', $Instance.TimeZoneId) + } + if ($Instance.TenantId -ne $null) { + $PSBoundParameters.Add('TenantId', $Instance.TenantId.ToString()) + } + if ($Instance.VoiceId -ne $null) { + $PSBoundParameters.Add('VoiceId', $Instance.VoiceId) + } + if ($Instance.DialByNameResourceId -ne $null) { + $PSBoundParameters.Add('DialByNameResourceId', $Instance.DialByNameResourceId) + } + if ($Instance.ApplicationInstances -ne $null) { + $PSBoundParameters.Add('ApplicationInstance', $Instance.ApplicationInstances) + } + if ($Instance.VoiceResponseEnabled -eq $true) { + $PSBoundParameters.Add('VoiceResponseEnabled', $true) + } + if ($Instance.DefaultCallFlow -ne $null) { + $PSBoundParameters.Add('DefaultCallFlowId', $Instance.DefaultCallFlow.Id) + $PSBoundParameters.Add('DefaultCallFlowName', $Instance.DefaultCallFlow.Name) + $PSBoundParameters.Add('DefaultCallFlowForceListenMenuEnabled', $Instance.DefaultCallFlow.ForceListenMenuEnabled) + $defaultCallFlowGreetings = @() + if ($Instance.DefaultCallFlow.Greetings -ne $null) { + foreach ($defaultCallFlowGreeting in $Instance.DefaultCallFlow.Greetings) { + $defaultCallFlowGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($defaultCallFlowGreeting) + } + $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) + } + if ($Instance.DefaultCallFlow.Menu -ne $null) { + $PSBoundParameters.Add('MenuDialByNameEnabled', $Instance.DefaultCallFlow.Menu.DialByNameEnabled) + $PSBoundParameters.Add('MenuDirectorySearchMethod', $Instance.DefaultCallFlow.Menu.DirectorySearchMethod.ToString()) + $PSBoundParameters.Add('MenuName', $Instance.DefaultCallFlow.Menu.Name) + if ($Instance.DefaultCallFlow.Menu.MenuOptions -ne $null) { + $defaultCallFlowMenuOptions = @() + foreach($defaultCallFlowMenuOption in $Instance.DefaultCallFlow.Menu.MenuOptions) { + $defaultCallFlowMenuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($defaultCallFlowMenuOption) + } + $PSBoundParameters.Add('MenuOption', $defaultCallFlowMenuOptions) + } + if ($Instance.DefaultCallFlow.Menu.Prompts -ne $null) { + $defaultCallFlowMenuPrompts = @() + foreach($defaultCallFlowMenuPrompt in $Instance.DefaultCallFlow.Menu.Prompts) { + $defaultCallFlowMenuPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($defaultCallFlowMenuPrompt) + } + $PSBoundParameters.Add('MenuPrompt', $defaultCallFlowMenuPrompts) + } + } + } + if ($Instance.DirectoryLookupScope -ne $null) { + if ($Instance.DirectoryLookupScope.InclusionScope -ne $null) { + $PSBoundParameters.Add('InclusionScopeType', $Instance.DirectoryLookupScope.InclusionScope.Type.ToString()) + if ($Instance.DirectoryLookupScope.InclusionScope.GroupScope -ne $null) { + $PSBoundParameters.Add('InclusionScopeGroupDialScopeGroupId', $Instance.DirectoryLookupScope.InclusionScope.GroupScope.GroupIds) + } + } else { + $PSBoundParameters.Add('InclusionScopeType', "Default") + } + if ($Instance.DirectoryLookupScope.ExclusionScope -ne $null) { + $PSBoundParameters.Add('ExclusionScopeType', $Instance.DirectoryLookupScope.ExclusionScope.Type.ToString()) + if ($Instance.DirectoryLookupScope.ExclusionScope.GroupScope -ne $null) { + $PSBoundParameters.Add('ExclusionScopeGroupDialScopeGroupId', $Instance.DirectoryLookupScope.ExclusionScope.GroupScope.GroupIds) + } + } else { + $PSBoundParameters.Add('ExclusionScopeType', "Default") + } + } + if ($Instance.Operator -ne $null) { + if ($Instance.Operator.EnableTranscription -eq $true) { + $PSBoundParameters.Add('OperatorEnableTranscription', $true) + } + $PSBoundParameters.Add('OperatorId', $Instance.Operator.Id) + $PSBoundParameters.Add('OperatorType', $Instance.Operator.Type.ToString()) + } + if ($Instance.CallFlows -ne $null) { + $callFlows = @() + foreach ($callFlow in $Instance.CallFlows) { + $generatedCallFlow = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow]::CreateAutoGeneratedFromObject($callFlow) + + if ($callFlow.Greetings -ne $null) { + $inputGreetings = @() + foreach ($greeting in $callFlow.Greetings) { + $inputGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($greeting) + } + $generatedCallFlow.Greeting = $inputGreetings + } + if ($callFlow.Menu.MenuOptions -ne $null) { + $menuOptions = @() + foreach ($menuOption in $callFlow.Menu.MenuOptions) { + $menuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($menuOption) + } + $generatedCallFlow.MenuOption = $menuOptions + } + if ($callFlow.Menu.Prompts -ne $null) { + $menuPrompts = @() + foreach ($menuPrompt in $callFlow.Menu.Prompts) { + $menuPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($menuPrompt) + } + $generatedCallFlow.MenuPrompt = $menuPrompts + } + + $callFlows += $generatedCallFlow + } + $PSBoundParameters.Add('CallFlow', $callFlows) + } + if ($Instance.CallHandlingAssociations -ne $null) { + $callHandlingAssociations = @() + foreach($callHandlingAssociation in $Instance.CallHandlingAssociations) { + $callHandlingAssociations += [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation]::CreateAutoGeneratedFromObject($callHandlingAssociation) + } + $PSBoundParameters.Add('CallHandlingAssociation', $callHandlingAssociations) + } + + $PSBoundParameters.Add('AuthorizedUser', $Instance.AuthorizedUsers) + $PSBoundParameters.Add('HideAuthorizedUser', $Instance.HideAuthorizedUsers) + + if ($Instance.UserNameExtension -ne $null) { + $PSBoundParameters.Add('UserNameExtension', $Instance.UserNameExtension) + } + + if ($Instance.Schedules -ne $null) { + $schedules = @() + foreach($schedule in $Instance.Schedules) { + $schedules += [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::CreateAutoGeneratedFromObject($schedule) + } + $PSBoundParameters.Add('Schedule', $schedules) + } + + if ($Instance.MainlineAttendantEnabled -eq $true) { + # Check whether the greetings is provided by the customer or should we use the default greeting. + if ($Instance.DefaultCallFlow.Greetings -eq $null) { + Write-Warning "Greetings is not set for the DefaultCallFlow. The system default greeting will be used for mainline attendant." + $defaultCallFlowGreetings = @() + $defaultCallFlowGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject( + @{ + ActiveType = [Microsoft.Rtc.Management.Hosted.OAA.Models.PromptType]::TextToSpeech; + TextToSpeechPrompt = "Hello, and thank you for calling '{0}'. How can I assist you today? Please note that this call may be recorded for compliance purposes." -f $Instance.Name + } + ) + $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) + } + + # For mainline attendant as of now, we only support "en-US" language. + $supportedLanguageId = "en-US" + if ($Instance.LanguageId -ne $supportedLanguageId) { + Write-Warning ("The provided LanguageId '{0}' is not supported for mainline attendant. Defaulting to 'en-US'." -f $Instance.LanguageId) + $null = $PSBoundParameters.Remove('LanguageId') + $PSBoundParameters.Add('LanguageId', $supportedLanguageId) + } + + # For mainline attendant, we only support specific voice ids. + $mainlineAttendantVoiceIds = [Microsoft.Rtc.Management.Hosted.OAA.Models.MainlineAttendantSupportedVoiceIds] + if ([string]::IsNullOrWhiteSpace($Instance.MainlineAttendantAgentVoiceId) -or + -not [System.Enum]::IsDefined($mainlineAttendantVoiceIds, $Instance.MainlineAttendantAgentVoiceId)) { + throw "The provided MainlineAttendantAgentVoiceId '{0}' is not supported for Mainline Attendant. Supported values are: $([string]::Join(', ', [System.Enum]::GetNames($mainlineAttendantVoiceIds)))." -f $Instance.MainlineAttendantAgentVoiceId + } + $mainlineAttendantVoiceId = $mainlineAttendantVoiceIds::$($Instance.MainlineAttendantAgentVoiceId) + $null = $PSBoundParameters.Remove('MainlineAttendantAgentVoiceId') + $PSBoundParameters.Add("MainlineAttendantAgentVoiceId", $mainlineAttendantVoiceId) + + # For Mainline Attendant, VoiceResponseEnabled should must be true. + if ($Instance.VoiceResponseEnabled -ne $true) { + Write-Warning "`$VoiceResponseEnabled` is not set. Defaulting to 'true' for mainline attendant." + $null = $PSBoundParameters.Remove('VoiceResponseEnabled') + $PSBoundParameters.Add('VoiceResponseEnabled', $true) + } + + # Finally, add MainlineAttendantEnabled is true to the powershell parameters list. + $null = $PSBoundParameters.Remove('MainlineAttendantEnabled') + $PSBoundParameters.Add('MainlineAttendantEnabled', $true) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsAutoAttendant @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant]::new() + $output.ParseFrom($internalOutput.AutoAttendant) + + $getCsAutoAttendantStatusParameters = @{Identity = $output.Identity} + foreach($p in $PSBoundCommonParameters.GetEnumerator()) + { + $getCsAutoAttendantStatusParameters += @{$p.Key = $p.Value} + } + + $internalStatus = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantStatus @getCsAutoAttendantStatusParameters @httpPipelineArgs + $output.AmendStatus($internalStatus) + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: replacing the parameters' names. + +function Set-CsCallQueue { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity of the call queue to be updated. + ${Identity}, + + [Parameter(Mandatory=$false)] + [System.String] + # The Name of the call queue to be updated. + ${Name}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. + ${AgentAlertTime}, + + [Parameter(Mandatory=$false)] + [bool] + # The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + ${AllowOptOut}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. + ${DistributionLists}, + + [Parameter(Mandatory=$false)] + [bool] + # The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. + ${UseDefaultMusicOnHold}, + + [Parameter(Mandatory=$false)] + [System.String] + # The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. + ${WelcomeMusicAudioFileId}, + + [Parameter(Mandatory=$false)] + [System.String] + # The WelcomeTextToSpeechPrompt parameter represents the text to speech content to play when callers are connected with the Call Queue. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. + ${MusicOnHoldAudioFileId}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction] + # The OverflowAction parameter designates the action to take if the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowActionTarget parameter represents the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. + ${OverflowThreshold}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction] + # The TimeoutAction parameter defines the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutActionTarget represents the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. + ${TimeoutThreshold}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod] + # The RoutingMethod defines how agents will be called in a Call Queue. + ${RoutingMethod}, + + [Parameter(Mandatory=$false)] + [bool] + # The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. + ${PresenceBasedRouting}, + + [Parameter(Mandatory=$false)] + [bool] + # The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for current call queue. + ${ConferenceMode}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The Users parameter lets you add agents to the Call Queue. + ${Users}, + + [Parameter(Mandatory=$false)] + [System.String] + # The LanguageId parameter indicates the language that is used to play shared voicemail prompts. + ${LanguageId}, + + [Parameter(Mandatory=$false)] + [System.String] + # This parameter is reserved for Microsoft internal use only. + ${LineUri}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. + ${OboResourceAccountIds}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableOverflowSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message on overflow. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message on timeout. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentAction] + # The NoAgentAction parameter defines the action to take if the NoAgents are LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentActionTarget represents the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail when NoAgents are Opted/LoggedIn to take calls. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail when NoAgents are Opted/LoggedIn to take calls. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller when NoAgents are LoggedIn/OptedIn to take calls. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(Mandatory=$false)] + [bool] + # The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to disable voicemail system message when NoAgents are LoggedIn/OptedIn to take calls. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(Mandatory=$false)] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentApplyTo] + # The NoAgentApplyTo parameter determines whether the NoAgent action applies to All Calls or only New calls. + ${NoAgentApplyTo}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is disconnected due to NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is disconnected due to NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoiceAppTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to VoiceApp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to PhoneNumber on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when call is redirected to Voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # Id of the channel to connect a call queue to. + ${ChannelId}, + + [Parameter(Mandatory=$false)] + [System.Guid] + # Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + ${ChannelUserObjectId}, + + [Parameter(Mandatory=$false)] + [bool] + # The ShouldOverwriteCallableChannelProperty indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The list of authorized users. + ${AuthorizedUsers}, + + [Parameter(Mandatory=$false)] + [System.Guid[]] + # The list of hidden authorized users. + ${HideAuthorizedUsers}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the overflow action, only applies when the OverflowAction is an `Forward`. + ${OverflowActionCallPriority}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the timeout action, only applies when the TimeoutAction is an `Forward`. + ${TimeoutActionCallPriority}, + + [Parameter(Mandatory=$false)] + [System.Int16] + # The Call Priority for the no agent opted in action, only applies when the NoAgentAction is an `Forward`. + ${NoAgentActionCallPriority}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Boolean]] + # The IsCallbackEnabled parameter for enabling and disabling the Courtesy Callback feature. + ${IsCallbackEnabled}, + + [parameter(Mandatory=$false)] + [System.String] + # The DTMF tone to press to start requesting callback, as part of the Courtesy Callback feature. + ${CallbackRequestDtmf}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The wait time before offering callback in seconds, as part of the Courtesy Callback feature. + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The number of calls in queue before offering callback, as part of the Courtesy Callback feature. + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # The call to agent ratio threshold before offering callback, as part of the Courtesy Callback feature. + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [parameter(Mandatory=$false)] + [System.String] + # The identifier of the offer callback audio file to be played when offering callback to caller, as part of the Courtesy Callback feature. + ${CallbackOfferAudioFilePromptResourceId}, + + [parameter(Mandatory=$false)] + [System.String] + # The text-to-speech string to be converted to a speech and played when offering callback to caller, as part of the Courtesy Callback feature. + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(Mandatory=$false)] + [System.String] + # The CallbackEmailNotificationTarget parameter for callback feature. + ${CallbackEmailNotificationTarget}, + + [Parameter(Mandatory=$false)] + [System.Nullable[System.Int32]] + # Service level threshold in seconds for the call queue. Used for monitor calls in the call queue is handled within this threshold or not. + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(Mandatory=$false)] + [System.String] + # Shifts Team identity to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Text announcement that is played before CR bot joins the call + ${TextAnnouncementForCR}, + + [Parameter(Mandatory=$false)] + [System.String] + # Custom audio file announcement for compliance recording + ${CustomAudioFileAnnouncementForCR}, + + [Parameter(Mandatory=$false)] + [System.String] + # Text announcement that is played if CR bot is unable to join the call. + ${TextAnnouncementForCRFailure}, + + [Parameter(Mandatory=$false)] + [System.String] + # Custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCRFailure}, + + [Parameter(Mandatory=$false)] + [System.String[]] + # Ids for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Id for Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(Mandatory=$false)] + [System.String] + # Shifts Scheduling Group identity to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(Mandatory=$false)] + [Switch] + # Allow the cmdlet to run anyway + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to Stop + if (!$PSBoundParameters.ContainsKey('ErrorAction')) { + $PSBoundParameters.Add('ErrorAction', 'Stop') + } + + if ($PSBoundParameters.ContainsKey('Force')) { + $PSBoundParameters.Remove('Force') | Out-Null + } + + # Get the existing CallQueue by Identity. + $getParams = @{Identity = $Identity; FilterInvalidObos = $false} + $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @getParams -ErrorAction Stop @httpPipelineArgs + + # Convert the existing CallQueue DTO to domain model. + $existingCallQueue= [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $existingCallQueue.ParseFrom($getResult.CallQueue) | Out-Null + + # Take the delta from the existing CallQueue and apply it to the param hasthable to form + # an appropriate DTO model for the CallQueue PUT API. FYI, CallQueue PUT API is very much + # different from its AA counterpart which accepts params/properties to be updated only. + + # Param hashtable modification begins. + if ($PSBoundParameters.ContainsKey('LineUri')) { + # Stick with the current TRPS cmdlet policy of silently ignoring the LineUri. Later, we + # need to remove this param from TRPS and ConfigAPI based cmdlets. Public facing document + # must be updated as well. + $PSBoundParameters.Remove('LineUri') | Out-Null + } + + if (!$PSBoundParameters.ContainsKey('Name')) { + $PSBoundParameters.Add('Name', $existingCallQueue.Name) + } + + if (!$PSBoundParameters.ContainsKey('AgentAlertTime')) { + $PSBoundParameters.Add('AgentAlertTime', $existingCallQueue.AgentAlertTime) + } + + if ([string]::IsNullOrWhiteSpace($LanguageId) -and ![string]::IsNullOrWhiteSpace($existingCallQueue.LanguageId)) { + $PSBoundParameters.Add('LanguageId', $existingCallQueue.LanguageId) + } + + if (!$PSBoundParameters.ContainsKey('OverflowThreshold')) { + $PSBoundParameters.Add('OverflowThreshold', $existingCallQueue.OverflowThreshold) + } + + if (!$PSBoundParameters.ContainsKey('TimeoutThreshold')) { + $PSBoundParameters.Add('TimeoutThreshold', $existingCallQueue.TimeoutThreshold) + } + + if (!$PSBoundParameters.ContainsKey('RoutingMethod')) { + $PSBoundParameters.Add('RoutingMethod', $existingCallQueue.RoutingMethod) + } + + if (!$PSBoundParameters.ContainsKey('AllowOptOut') ) { + $PSBoundParameters.Add('AllowOptOut', $existingCallQueue.AllowOptOut) + } + + if (!$PSBoundParameters.ContainsKey('ConferenceMode')) { + $PSBoundParameters.Add('ConferenceMode', $existingCallQueue.ConferenceMode) + } + + if (!$PSBoundParameters.ContainsKey('PresenceBasedRouting')) { + $PSBoundParameters.Add('PresenceAwareRouting', $existingCallQueue.PresenceBasedRouting) + } + else { + $PSBoundParameters.Add('PresenceAwareRouting', $PresenceBasedRouting) + $PSBoundParameters.Remove('PresenceBasedRouting') | Out-Null + } + + if (!$PSBoundParameters.ContainsKey('ChannelId')) { + if (![string]::IsNullOrWhiteSpace($existingCallQueue.ChannelId)) { + $PSBoundParameters.Add('ThreadId', $existingCallQueue.ChannelId) + } + } + else { + $PSBoundParameters.Add('ThreadId', $ChannelId) + $PSBoundParameters.Remove('ChannelId') | Out-Null + } + + if (!$PSBoundParameters.ContainsKey('OboResourceAccountIds')) { + if ($null -ne $existingCallQueue.OboResourceAccountIds -and $existingCallQueue.OboResourceAccountIds.Length -gt 0) { + $PSBoundParameters.Add('OboResourceAccountIds', $existingCallQueue.OboResourceAccountIds) + } + } + + if (!$PSBoundParameters.ContainsKey('WelcomeMusicAudioFileId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.WelcomeMusicResourceId)) { + $PSBoundParameters.Add('WelcomeMusicAudioFileId', $existingCallQueue.WelcomeMusicResourceId) + } + + if (!$PSBoundParameters.ContainsKey('MusicOnHoldAudioFileId') -and !$PSBoundParameters.ContainsKey('UseDefaultMusicOnHold')) { + # The already persiting values cannot be conflicting as those were validated by admin service. + if (![string]::IsNullOrWhiteSpace($existingCallQueue.MusicOnHoldResourceId)) { + $PSBoundParameters.Add('MusicOnHoldAudioFileId', $existingCallQueue.MusicOnHoldResourceId) + } + if ($null -ne $existingCallQueue.UseDefaultMusicOnHold) { + $PSBoundParameters.Add('UseDefaultMusicOnHold', $existingCallQueue.UseDefaultMusicOnHold) + } + } + elseif ($UseDefaultMusicOnHold -eq $false -and !$PSBoundParameters.ContainsKey('MusicOnHoldAudioFileId')) { + if (![string]::IsNullOrWhiteSpace($existingCallQueue.MusicOnHoldResourceId)) { + $PSBoundParameters.Add('MusicOnHoldAudioFileId', $existingCallQueue.MusicOnHoldResourceId) + } + } + + if (!$PSBoundParameters.ContainsKey('DistributionLists')) { + if ($null -ne $existingCallQueue.DistributionLists -and $existingCallQueue.DistributionLists.Length -gt 0) { + $PSBoundParameters.Add('DistributionLists', $existingCallQueue.DistributionLists) + } + } + + if (!$PSBoundParameters.ContainsKey('Users')) { + if ($null -ne $existingCallQueue.Users -and $existingCallQueue.Users.Length -gt 0) { + $PSBoundParameters.Add('Users', $existingCallQueue.Users) + } + } + + if (!$PSBoundParameters.ContainsKey('OverflowSharedVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowSharedVoicemailTextToSpeechPrompt)) { + $PSBoundParameters.Add('OverflowSharedVoicemailTextToSpeechPrompt', $existingCallQueue.OverflowSharedVoicemailTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowSharedVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowSharedVoicemailTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('OverflowSharedVoicemailTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowSharedVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowSharedVoicemailAudioFilePrompt)) { + $PSBoundParameters.Add('OverflowSharedVoicemailAudioFilePrompt', $existingCallQueue.OverflowSharedVoicemailAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowSharedVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowSharedVoicemailAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('OverflowSharedVoicemailAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('EnableOverflowSharedVoicemailTranscription')) { + if ($existingCallQueue.EnableOverflowSharedVoicemailTranscription -ne $null) { + $PSBoundParameters.Add('EnableOverflowSharedVoicemailTranscription', $existingCallQueue.EnableOverflowSharedVoicemailTranscription) + } + } + + if (!$PSBoundParameters.ContainsKey('EnableOverflowSharedVoicemailSystemPromptSuppression') -and $null -ne $existingCallQueue.EnableOverflowSharedVoicemailSystemPromptSuppression) { + $PSBoundParameters.Add('EnableOverflowSharedVoicemailSystemPromptSuppression', $existingCallQueue.EnableOverflowSharedVoicemailSystemPromptSuppression) + } + + if (!$PSBoundParameters.ContainsKey('OverflowActionTarget') -and !($OverflowAction -eq 'Disconnect') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowActionTargetId)) { + $PSBoundParameters.Add('OverflowActionTarget', $existingCallQueue.OverflowActionTargetId) + } + + if (!$PSBoundParameters.ContainsKey('OverflowAction')) { + $PSBoundParameters.Add('OverflowAction', $existingCallQueue.OverflowAction) + } + + if (!$PSBoundParameters.ContainsKey('OverflowDisconnectAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowDisconnectAudioFilePrompt)) { + $PSBoundParameters.Add('OverflowDisconnectAudioFilePrompt', $existingCallQueue.OverflowDisconnectAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowDisconnectAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowDisconnectAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('OverflowDisconnectAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowDisconnectTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowDisconnectTextToSpeechPrompt)) { + $PSBoundParameters.Add('OverflowDisconnectTextToSpeechPrompt', $existingCallQueue.OverflowDisconnectTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowDisconnectTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowDisconnectTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('OverflowDisconnectTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowRedirectPersonAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectPersonAudioFilePrompt)) { + $PSBoundParameters.Add('OverflowRedirectPersonAudioFilePrompt', $existingCallQueue.OverflowRedirectPersonAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowRedirectPersonAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectPersonAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('OverflowRedirectPersonAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowRedirectPersonTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectPersonTextToSpeechPrompt)) { + $PSBoundParameters.Add('OverflowRedirectPersonTextToSpeechPrompt', $existingCallQueue.OverflowRedirectPersonTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowRedirectPersonTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectPersonTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('OverflowRedirectPersonTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowRedirectVoiceAppAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectVoiceAppAudioFilePrompt)) { + $PSBoundParameters.Add('OverflowRedirectVoiceAppAudioFilePrompt', $existingCallQueue.OverflowRedirectVoiceAppAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowRedirectVoiceAppAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectVoiceAppAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('OverflowRedirectVoiceAppAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowRedirectVoiceAppTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectVoiceAppTextToSpeechPrompt)) { + $PSBoundParameters.Add('OverflowRedirectVoiceAppTextToSpeechPrompt', $existingCallQueue.OverflowRedirectVoiceAppTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowRedirectVoiceAppTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectVoiceAppTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('OverflowRedirectVoiceAppTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowRedirectPhoneNumberAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectPhoneNumberAudioFilePrompt)) { + $PSBoundParameters.Add('OverflowRedirectPhoneNumberAudioFilePrompt', $existingCallQueue.OverflowRedirectPhoneNumberAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowRedirectPhoneNumberAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectPhoneNumberAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('OverflowRedirectPhoneNumberAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowRedirectPhoneNumberTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectPhoneNumberTextToSpeechPrompt)) { + $PSBoundParameters.Add('OverflowRedirectPhoneNumberTextToSpeechPrompt', $existingCallQueue.OverflowRedirectPhoneNumberTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowRedirectPhoneNumberTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectPhoneNumberTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('OverflowRedirectPhoneNumberTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowRedirectVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectVoicemailAudioFilePrompt)) { + $PSBoundParameters.Add('OverflowRedirectVoicemailAudioFilePrompt', $existingCallQueue.OverflowRedirectVoicemailAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowRedirectVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectVoicemailAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('OverflowRedirectVoicemailAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('OverflowRedirectVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectVoicemailTextToSpeechPrompt)) { + $PSBoundParameters.Add('OverflowRedirectVoicemailTextToSpeechPrompt', $existingCallQueue.OverflowRedirectVoicemailTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('OverflowRedirectVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectVoicemailTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('OverflowRedirectVoicemailTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutSharedVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutSharedVoicemailTextToSpeechPrompt) ) { + $PSBoundParameters.Add('TimeoutSharedVoicemailTextToSpeechPrompt', $existingCallQueue.TimeoutSharedVoicemailTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutSharedVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutSharedVoicemailTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('TimeoutSharedVoicemailTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutSharedVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutSharedVoicemailAudioFilePrompt)) { + $PSBoundParameters.Add('TimeoutSharedVoicemailAudioFilePrompt', $existingCallQueue.TimeoutSharedVoicemailAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutSharedVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutSharedVoicemailAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('TimeoutSharedVoicemailAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('EnableTimeoutSharedVoicemailTranscription')) { + if ($existingCallQueue.EnableTimeoutSharedVoicemailTranscription -ne $null) { + $PSBoundParameters.Add('EnableTimeoutSharedVoicemailTranscription', $existingCallQueue.EnableTimeoutSharedVoicemailTranscription) + } + } + + if (!$PSBoundParameters.ContainsKey('EnableTimeoutSharedVoicemailSystemPromptSuppression') -and $null -ne $existingCallQueue.EnableTimeoutSharedVoicemailSystemPromptSuppression) { + $PSBoundParameters.Add('EnableTimeoutSharedVoicemailSystemPromptSuppression', $existingCallQueue.EnableTimeoutSharedVoicemailSystemPromptSuppression) + } + + if (!$PSBoundParameters.ContainsKey('TimeoutActionTarget') -and !($TimeoutAction -eq 'Disconnect') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutActionTargetId)) { + $PSBoundParameters.Add('TimeoutActionTarget', $existingCallQueue.TimeoutActionTargetId) + } + + if (!$PSBoundParameters.ContainsKey('TimeoutAction')) { + $PSBoundParameters.Add('TimeoutAction', $existingCallQueue.TimeoutAction) + } + + if (!$PSBoundParameters.ContainsKey('TimeoutDisconnectAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutDisconnectAudioFilePrompt)) { + $PSBoundParameters.Add('TimeoutDisconnectAudioFilePrompt', $existingCallQueue.TimeoutDisconnectAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutDisconnectAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutDisconnectAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('TimeoutDisconnectAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutDisconnectTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutDisconnectTextToSpeechPrompt)) { + $PSBoundParameters.Add('TimeoutDisconnectTextToSpeechPrompt', $existingCallQueue.TimeoutDisconnectTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutDisconnectTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutDisconnectTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('TimeoutDisconnectTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutRedirectPersonAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectPersonAudioFilePrompt)) { + $PSBoundParameters.Add('TimeoutRedirectPersonAudioFilePrompt', $existingCallQueue.TimeoutRedirectPersonAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectPersonAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectPersonAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('TimeoutRedirectPersonAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutRedirectPersonTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectPersonTextToSpeechPrompt)) { + $PSBoundParameters.Add('TimeoutRedirectPersonTextToSpeechPrompt', $existingCallQueue.TimeoutRedirectPersonTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectPersonTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectPersonTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('TimeoutRedirectPersonTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutRedirectVoiceAppAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectVoiceAppAudioFilePrompt)) { + $PSBoundParameters.Add('TimeoutRedirectVoiceAppAudioFilePrompt', $existingCallQueue.TimeoutRedirectVoiceAppAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectVoiceAppAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectVoiceAppAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('TimeoutRedirectVoiceAppAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutRedirectVoiceAppTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectVoiceAppTextToSpeechPrompt)) { + $PSBoundParameters.Add('TimeoutRedirectVoiceAppTextToSpeechPrompt', $existingCallQueue.TimeoutRedirectVoiceAppTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectVoiceAppTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectVoiceAppTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('TimeoutRedirectVoiceAppTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutRedirectPhoneNumberAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectPhoneNumberAudioFilePrompt)) { + $PSBoundParameters.Add('TimeoutRedirectPhoneNumberAudioFilePrompt', $existingCallQueue.TimeoutRedirectPhoneNumberAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectPhoneNumberAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectPhoneNumberAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('TimeoutRedirectPhoneNumberAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutRedirectPhoneNumberTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectPhoneNumberTextToSpeechPrompt)) { + $PSBoundParameters.Add('TimeoutRedirectPhoneNumberTextToSpeechPrompt', $existingCallQueue.TimeoutRedirectPhoneNumberTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectPhoneNumberTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectPhoneNumberTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('TimeoutRedirectPhoneNumberTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutRedirectVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectVoicemailAudioFilePrompt)) { + $PSBoundParameters.Add('TimeoutRedirectVoicemailAudioFilePrompt', $existingCallQueue.TimeoutRedirectVoicemailAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectVoicemailAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('TimeoutRedirectVoicemailAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('TimeoutRedirectVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectVoicemailTextToSpeechPrompt)) { + $PSBoundParameters.Add('TimeoutRedirectVoicemailTextToSpeechPrompt', $existingCallQueue.TimeoutRedirectVoicemailTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectVoicemailTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('TimeoutRedirectVoicemailTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentActionTarget') -and !($NoAgentAction -eq 'Queue') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentActionTargetId)) { + $PSBoundParameters.Add('NoAgentActionTarget', $existingCallQueue.NoAgentActionTargetId) + } + + if (!$PSBoundParameters.ContainsKey('NoAgentAction')) { + $PSBoundParameters.Add('NoAgentAction', $existingCallQueue.NoAgentAction) + } + + if (!$PSBoundParameters.ContainsKey('NoAgentSharedVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentSharedVoicemailTextToSpeechPrompt) ) { + $PSBoundParameters.Add('NoAgentSharedVoicemailTextToSpeechPrompt', $existingCallQueue.NoAgentSharedVoicemailTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentSharedVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentSharedVoicemailTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentSharedVoicemailTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentSharedVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentSharedVoicemailAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentSharedVoicemailAudioFilePrompt', $existingCallQueue.NoAgentSharedVoicemailAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentSharedVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentSharedVoicemailAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentSharedVoicemailAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('EnableNoAgentSharedVoicemailTranscription')) { + if ($existingCallQueue.EnableNoAgentSharedVoicemailTranscription -ne $null) { + $PSBoundParameters.Add('EnableNoAgentSharedVoicemailTranscription', $existingCallQueue.EnableNoAgentSharedVoicemailTranscription) + } + } + + if (!$PSBoundParameters.ContainsKey('EnableNoAgentSharedVoicemailSystemPromptSuppression') -and $null -ne $existingCallQueue.EnableNoAgentSharedVoicemailSystemPromptSuppression) { + $PSBoundParameters.Add('EnableNoAgentSharedVoicemailSystemPromptSuppression', $existingCallQueue.EnableNoAgentSharedVoicemailSystemPromptSuppression) + } + + if (!$PSBoundParameters.ContainsKey('NoAgentApplyTo')) { + if ($existingCallQueue.NoAgentApplyTo -ne $null) { + $PSBoundParameters.Add('NoAgentApplyTo', $existingCallQueue.NoAgentApplyTo) + } + } + + if (!$PSBoundParameters.ContainsKey('NoAgentDisconnectAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentDisconnectAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentDisconnectAudioFilePrompt', $existingCallQueue.NoAgentDisconnectAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentDisconnectAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentDisconnectAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentDisconnectAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentDisconnectTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentDisconnectTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentDisconnectTextToSpeechPrompt', $existingCallQueue.NoAgentDisconnectTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentDisconnectTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentDisconnectTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentDisconnectTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPersonAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPersonAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentRedirectPersonAudioFilePrompt', $existingCallQueue.NoAgentRedirectPersonAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPersonAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPersonAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectPersonAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPersonTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPersonTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentRedirectPersonTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectPersonTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPersonTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPersonTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectPersonTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoiceAppAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentRedirectVoiceAppAudioFilePrompt', $existingCallQueue.NoAgentRedirectVoiceAppAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoiceAppAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectVoiceAppAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoiceAppTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentRedirectVoiceAppTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectVoiceAppTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoiceAppTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoiceAppTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectVoiceAppTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPhoneNumberAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentRedirectPhoneNumberAudioFilePrompt', $existingCallQueue.NoAgentRedirectPhoneNumberAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPhoneNumberAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectPhoneNumberAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectPhoneNumberTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentRedirectPhoneNumberTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectPhoneNumberTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectPhoneNumberTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectPhoneNumberTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectPhoneNumberTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoicemailAudioFilePrompt)) { + $PSBoundParameters.Add('NoAgentRedirectVoicemailAudioFilePrompt', $existingCallQueue.NoAgentRedirectVoicemailAudioFilePrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoicemailAudioFilePrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectVoicemailAudioFilePrompt') + } + + if (!$PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentRedirectVoicemailTextToSpeechPrompt)) { + $PSBoundParameters.Add('NoAgentRedirectVoicemailTextToSpeechPrompt', $existingCallQueue.NoAgentRedirectVoicemailTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('NoAgentRedirectVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentRedirectVoicemailTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('NoAgentRedirectVoicemailTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('AuthorizedUsers')) { + $PSBoundParameters.Add('AuthorizedUsers', $existingCallQueue.AuthorizedUsers) + } + + if (!$PSBoundParameters.ContainsKey('HideAuthorizedUsers')) { + $PSBoundParameters.Add('HideAuthorizedUsers', $existingCallQueue.HideAuthorizedUsers) + } + + # Making sure the user provides the correct CallPriority values for CQ exceptions (overflow, timeout, NoAgent etc.) handling. + # The valid values are 1 to 5. Zero is also allowed which means the user wants to use the default value (3). + # (elseif) The CallPriority does not apply when the Action is not `Forward`. + # (elseif) If user doesn't provide CallPriority value but in the existing CallQueue there is a value then we have the following two scenarios: + # a) User provides a new Target and we should not take the existing priority instead it should be the default CallPriority (3). + # b) In case of existing CQ with ActionTarget, user might want to only update the CallPriority. + if ($PSBoundParameters["OverflowAction"] -eq 'Forward' -and ($OverflowActionCallPriority -lt 0 -or $OverflowActionCallPriority -gt 5)) { + throw "Invalid `OverflowActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($PSBoundParameters["OverflowAction"] -ne 'Forward' -and ([Math]::Abs($OverflowActionCallPriority) -ge 1)) { + throw "OverflowActionCallPriority is only applicable when the 'OverflowAction' is 'Forward'. Please remove the OverflowActionCallPriority." + } + elseif (!$PSBoundParameters.ContainsKey('OverflowActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowActionCallPriority)) { + if ($PSBoundParameters["OverflowAction"] -eq 'Forward' -and $PSBoundParameters["OverflowActionTarget"] -eq $existingCallQueue.OverflowActionTarget.Id -and $existingCallQueue.OverflowActionCallPriority -ge 1) { + $PSBoundParameters.Add('OverflowActionCallPriority', $existingCallQueue.OverflowActionCallPriority) + } + } + + if ($PSBoundParameters["TimeoutAction"] -eq 'Forward' -and ($TimeoutActionCallPriority -lt 0 -or $TimeoutActionCallPriority -gt 5)) { + throw "Invalid `TimeoutActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($PSBoundParameters["TimeoutAction"] -ne 'Forward' -and ([Math]::Abs($TimeoutActionCallPriority) -ge 1)) { + throw "TimeoutActionCallPriority is only applicable when the 'TimeoutAction' is 'Forward'. Please remove the TimeoutActionCallPriority." + } + elseif (!$PSBoundParameters.ContainsKey('TimeoutActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutActionCallPriority)) { + if ($PSBoundParameters["TimeoutAction"] -eq 'Forward' -and $PSBoundParameters["TimeoutActionTarget"] -eq $existingCallQueue.TimeoutActionTarget.Id -and $existingCallQueue.TimeoutActionCallPriority -ge 1) { + $PSBoundParameters.Add('TimeoutActionCallPriority', $existingCallQueue.TimeoutActionCallPriority) + } + } + + if ($PSBoundParameters["NoAgentAction"] -eq 'Forward' -and ($NoAgentActionCallPriority -lt 0 -or $NoAgentActionCallPriority -gt 5)) { + throw "Invalid `NoAgentActionCallPriority` value. The valid values are 1 to 5 (default is 3). Please provide the correct value." + } + elseif ($PSBoundParameters["NoAgentAction"] -ne 'Forward' -and ([Math]::Abs($NoAgentActionCallPriority) -ge 1)) { + throw "NoAgentActionCallPriority is only applicable when the 'NoAgentAction' is 'Forward'. Please remove the NoAgentActionCallPriority." + } + elseif (!$PSBoundParameters.ContainsKey('NoAgentActionCallPriority') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentActionCallPriority)) { + if ($PSBoundParameters["NoAgentAction"] -eq 'Forward' -and $PSBoundParameters["NoAgentActionTarget"] -eq $existingCallQueue.NoAgentActionTarget.Id -and $existingCallQueue.NoAgentActionCallPriority -ge 1) { + $PSBoundParameters.Add('NoAgentActionCallPriority', $existingCallQueue.NoAgentActionCallPriority) + } + } + + if (!$PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $null -ne $existingCallQueue.IsCallbackEnabled) { + $PSBoundParameters.Add('IsCallbackEnabled', $existingCallQueue.IsCallbackEnabled) + } + elseif ($PSBoundParameters.ContainsKey('IsCallbackEnabled') -and $IsCallbackEnabled -eq $null) { + $null = $PSBoundParameters.Remove('IsCallbackEnabled') + } + + if (!$PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackRequestDtmf)) { + $PSBoundParameters.Add('CallbackRequestDtmf', $existingCallQueue.CallbackRequestDtmf) + } + elseif ($PSBoundParameters.ContainsKey('CallbackRequestDtmf') -and [string]::IsNullOrWhiteSpace($CallbackRequestDtmf)) { + $null = $PSBoundParameters.Remove('CallbackRequestDtmf') + } + + if (!$PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $null -ne $existingCallQueue.WaitTimeBeforeOfferingCallbackInSecond) { + $PSBoundParameters.Add('WaitTimeBeforeOfferingCallbackInSecond', $existingCallQueue.WaitTimeBeforeOfferingCallbackInSecond) + } + elseif ($PSBoundParameters.ContainsKey('WaitTimeBeforeOfferingCallbackInSecond') -and $WaitTimeBeforeOfferingCallbackInSecond -eq $null) { + $null = $PSBoundParameters.Remove('WaitTimeBeforeOfferingCallbackInSecond') + } + + if (!$PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $null -ne $existingCallQueue.NumberOfCallsInQueueBeforeOfferingCallback) { + $PSBoundParameters.Add('NumberOfCallsInQueueBeforeOfferingCallback', $existingCallQueue.NumberOfCallsInQueueBeforeOfferingCallback) + } + elseif ($PSBoundParameters.ContainsKey('NumberOfCallsInQueueBeforeOfferingCallback') -and $NumberOfCallsInQueueBeforeOfferingCallback -eq $null) { + $null = $PSBoundParameters.Remove('NumberOfCallsInQueueBeforeOfferingCallback') + } + + if (!$PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $null -ne $existingCallQueue.CallToAgentRatioThresholdBeforeOfferingCallback) { + $PSBoundParameters.Add('CallToAgentRatioThresholdBeforeOfferingCallback', $existingCallQueue.CallToAgentRatioThresholdBeforeOfferingCallback) + } + elseif ($PSBoundParameters.ContainsKey('CallToAgentRatioThresholdBeforeOfferingCallback') -and $CallToAgentRatioThresholdBeforeOfferingCallback -eq $null) { + $null = $PSBoundParameters.Remove('CallToAgentRatioThresholdBeforeOfferingCallback') + } + + if (!$PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackOfferAudioFilePromptResourceId)) { + $PSBoundParameters.Add('CallbackOfferAudioFilePromptResourceId', $existingCallQueue.CallbackOfferAudioFilePromptResourceId) + } + elseif ($PSBoundParameters.ContainsKey('CallbackOfferAudioFilePromptResourceId') -and [string]::IsNullOrWhiteSpace($CallbackOfferAudioFilePromptResourceId)) { + $null = $PSBoundParameters.Remove('CallbackOfferAudioFilePromptResourceId') + } + + if (!$PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackOfferTextToSpeechPrompt)) { + $PSBoundParameters.Add('CallbackOfferTextToSpeechPrompt', $existingCallQueue.CallbackOfferTextToSpeechPrompt) + } + elseif ($PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($CallbackOfferTextToSpeechPrompt)) { + $null = $PSBoundParameters.Remove('CallbackOfferTextToSpeechPrompt') + } + + if (!$PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackEmailNotificationTargetId)) { + $PSBoundParameters.Add('CallbackEmailNotificationTarget', $existingCallQueue.CallbackEmailNotificationTargetId) + } + elseif ($PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and [string]::IsNullOrWhiteSpace($CallbackEmailNotificationTarget)) { + $null = $PSBoundParameters.Remove('CallbackEmailNotificationTarget') + } + + if ($PSBoundParameters.ContainsKey('ServiceLevelThresholdResponseTimeInSecond') -and $ServiceLevelThresholdResponseTimeInSecond -eq $null) { + $null = $PSBoundParameters.Remove('ServiceLevelThresholdResponseTimeInSecond') + } + + if (!$PSBoundParameters.ContainsKey('ShiftsTeamId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.ShiftsTeamId)) { + $PSBoundParameters.Add('ShiftsTeamId', $existingCallQueue.ShiftsTeamId) + } + elseif ($PSBoundParameters.ContainsKey('ShiftsTeamId') -and [string]::IsNullOrWhiteSpace($ShiftsTeamId)) { + $null = $PSBoundParameters.Remove('ShiftsTeamId') + } + + if (!$PSBoundParameters.ContainsKey('ShiftsSchedulingGroupId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.ShiftsSchedulingGroupId)) { + $PSBoundParameters.Add('ShiftsSchedulingGroupId', $existingCallQueue.ShiftsSchedulingGroupId) + } + elseif ($PSBoundParameters.ContainsKey('ShiftsSchedulingGroupId') -and [string]::IsNullOrWhiteSpace($ShiftsSchedulingGroupId)) { + $null = $PSBoundParameters.Remove('ShiftsSchedulingGroupId') + } + + if (!$PSBoundParameters.ContainsKey('TextAnnouncementForCR') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TextAnnouncementForCR)) { + $PSBoundParameters.Add('TextAnnouncementForCR', $existingCallQueue.TextAnnouncementForCR) + } + elseif ($PSBoundParameters.ContainsKey('TextAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCR)) { + $null = $PSBoundParameters.Remove('TextAnnouncementForCR') + } + + if (!$PSBoundParameters.ContainsKey('AudioFileAnnouncementForCR') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.AudioFileAnnouncementForCR)) { + $PSBoundParameters.Add('AudioFileAnnouncementForCR', $existingCallQueue.AudioFileAnnouncementForCR) + } + elseif ($PSBoundParameters.ContainsKey('AudioFileAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($AudioFileAnnouncementForCR)) { + $null = $PSBoundParameters.Remove('AudioFileAnnouncementForCR') + } + + if (!$PSBoundParameters.ContainsKey('TextAnnouncementForCRFailure') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TextAnnouncementForCRFailure)) { + $PSBoundParameters.Add('TextAnnouncementForCRFailure', $existingCallQueue.TextAnnouncementForCRFailure) + } + elseif ($PSBoundParameters.ContainsKey('TextAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCRFailure)) { + $null = $PSBoundParameters.Remove('TextAnnouncementForCRFailure') + } + + if (!$PSBoundParameters.ContainsKey('AudioFileAnnouncementForCRFailure') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.AudioFileAnnouncementForCRFailure)) { + $PSBoundParameters.Add('AudioFileAnnouncementForCRFailure', $existingCallQueue.AudioFileAnnouncementForCRFailure) + } + elseif ($PSBoundParameters.ContainsKey('AudioFileAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($AudioFileAnnouncementForCRFailure)) { + $null = $PSBoundParameters.Remove('AudioFileAnnouncementForCRFailure') + } + + if (!$PSBoundParameters.ContainsKey('ComplianceRecordingForCallQueueTemplateId') -and $null -ne $existingCallQueue.ComplianceRecordingForCallQueueTemplateId) { + $PSBoundParameters.Add('ComplianceRecordingForCallQueueTemplateId', $existingCallQueue.ComplianceRecordingForCallQueueTemplateId) + } + + if (!$PSBoundParameters.ContainsKey('SharedCallQueueHistoryTemplateId') -and $null -ne $existingCallQueue.SharedCallQueueHistoryTemplateId) { + $PSBoundParameters.Add('SharedCallQueueHistoryTemplateId', $existingCallQueue.SharedCallQueueHistoryTemplateId) + } + + + # Update the CallQueue. + $updateResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsCallQueue @PSBoundParameters @httpPipelineArgs + # The response of the Update API is only the list of `Diagnostics` which can be directly used in + # the following method instead of accessing the `Diagnostic` like we do for other CMDLets. + Write-AdminServiceDiagnostic($updateResult) + + # Unfortunately, CallQueue PUT API does not return a CallQueue DTO model. We need to GET the CallQueue again + # to print the updated model. + $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @getParams @httpPipelineArgs + + $updatedCallQueue = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() + $updatedCallQueue.ParseFrom($getResult.CallQueue) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsComplianceRecordingForCallQueueTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the CR4CQ template to be modified. + ${Instance}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Id + Description = ${Instance}.Description + BotApplicationInstanceObjectId = ${Instance}.BotApplicationInstanceObjectId + RequiredDuringCall = ${Instance}.RequiredDuringCall + RequiredBeforeCall = ${Instance}.RequiredBeforeCall + ConcurrentInvitationCount = ${Instance}.ConcurrentInvitationCount + PairedApplicationInstanceObjectId = ${Instance}.PairedApplicationInstanceObjectId + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + + $null = $params.Remove("Instance") + + if ($ConcurrentInvitationCount -eq 0){ + $null = $params.Remove("ConcurrentInvitationCount") + $params.Add('ConcurrentInvitationCount', 1) + } elseif ($ConcurrentInvitationCount -ne $null){ + # Validate the value of ConcurrentInvitationCount + if ($ConcurrentInvitationCount -lt 1 -or $ConcurrentInvitationCount -gt 2) { + Write-Error "The value of ConcurrentInvitationCount must be 1 or 2." + throw + } + $null = $params.Remove("ConcurrentInvitationCount") + $params.Add('ConcurrentInvitationCount', $ConcurrentInvitationCount) + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsComplianceRecordingForCallQueueTemplate @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.ComplianceRecordingForCallQueue]::new() + $output.ParseFromUpdateResponse($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsMainlineAttendantAppointmentBookingFlow { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the mainline attendant appointment booking flow to be modified. + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + try { + # Check if ApiDefinitions is a JSON file path + if (![string]::IsNullOrWhiteSpace($Instance.ApiDefinitions) -and $Instance.ApiDefinitions -match '\.json$') + { + # Read the JSON file into a PowerShell object + $ApiDefinitionsJsonObject = Get-Content -Path $Instance.ApiDefinitions | ConvertFrom-Json + + # Convert the PowerShell object back into a JSON string + $Instance.ApiDefinitions = $ApiDefinitionsJsonObject | ConvertTo-Json -Depth 10 + + $Instance.ApiDefinitions + } + } catch { + throw "Failed to read API Definitions file: $_" + } + + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Identity + Type = ${Instance}.Type + ConfigurationId = ${Instance}.ConfigurationId + Description = ${Instance}.Description + CallerAuthenticationMethod = ${Instance}.CallerAuthenticationMethod + ApiAuthenticationType = ${Instance}.ApiAuthenticationType + ApiDefinitions = ${Instance}.ApiDefinitions + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + + $null = $params.Remove("Instance") + + # Ensure Identity is not null or empty + if ([string]::IsNullOrWhiteSpace($params['Identity'])) { + throw "Identity parameter cannot be null or empty." + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsMainlineAttendantAppointmentBookingFlow @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantAppointmentBookingFlow]::new() + $output.ParseFromUpdateResponse($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsMainlineAttendantQuestionAnswerFlow { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the mainline attendant question answer flow to be modified. + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + try + { + # Check if KnowledgeBase is a JSON file path + if (![string]::IsNullOrWhiteSpace($Instance.KnowledgeBase) -and $Instance.KnowledgeBase -match '\.json$') + { + # Read the JSON file into a PowerShell object + $KnowledgeBaseJsonObject = Get-Content -Path $Instance.KnowledgeBase | ConvertFrom-Json + + # Convert the PowerShell object back into a JSON string + $KnowledgeBaseJsonString = $KnowledgeBaseJsonObject | ConvertTo-Json -Depth 10 + + # Create an instance of MainlineAttendantQuestionAnswerFlow to get the local file content + $mainlineAttendantQuestionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $Instance.KnowledgeBase = $mainlineAttendantQuestionAnswerFlow.ReadKnowledgeBaseContent($KnowledgeBaseJsonString, "local_file") + + $Instance.KnowledgeBase + } + } catch { + throw "Failed to read KnowledgeBase file: $_" + } + + + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Identity + Type = ${Instance}.Type + ConfigurationId = ${Instance}.ConfigurationId + Description = ${Instance}.Description + ApiAuthenticationType = ${Instance}.ApiAuthenticationType + KnowledgeBase = ${Instance}.KnowledgeBase + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + + # Remove Instance from params as it is not a valid parameter for the internal cmdlet + $null = $params.Remove("Instance") + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsMainlineAttendantQuestionAnswerFlow @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() + $output.ParseFromUpdateResponse($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of Set-CsOdcServiceNumber + +function Set-CsOdcServiceNumber { + [CmdletBinding(PositionalBinding=$false)] + param( + [string] + ${Identity}, + + [string] + ${PrimaryLanguage}, + + [string[]] + ${SecondaryLanguages}, + + [switch] + ${RestoreDefaultLanguages}, + + [switch] + ${Force}, + + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] + [Parameter(ValueFromPipeline)] + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + if ($Identity -ne ""){ + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcServiceNumber @PSBoundParameters @httpPipelineArgs + } + elseif ($Instance -ne $null) { + $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceNumberUpdateRequest]::new() + + if ($PrimaryLanguage -ne "" ){ + $Body.PrimaryLanguage = $PrimaryLanguage + } + else { + $Body.PrimaryLanguage = $Instance.PrimaryLanguage + } + + if ($SecondaryLanguages -ne "") { + $Body.SecondaryLanguage = $SecondaryLanguages + } + else { + $Body.SecondaryLanguage = $Instance.SecondaryLanguages + } + + if ($RestoreDefaultLanguages -eq $true) { + $Body.RestoreDefaultLanguage = $RestoreDefaultLanguages + } + + $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcServiceNumber -Identity $Instance.Number -Body $Body @httpPipelineArgs + } + + $output + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: assign parameters' values and customize output + +function Set-CsOnlineSchedule { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [Object] + # The instance of the schedule which is updated. + ${Instance}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + $params = @{ + Identity = ${Instance}.Id + Name = ${Instance}.Name + Type = ${Instance}.Type + AssociatedConfigurationId = ${Instance}.AssociatedConfigurationId + } + # Get common parameters + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + $null = $params.Remove("Instance") + + if (${Instance}.Type -eq [Microsoft.Rtc.Management.Hosted.Online.Models.ScheduleType]::Fixed) { + $DateTimeRanges = ${Instance}.FixedSchedule.DateTimeRanges + $dateTimeRangeStandardFormat = 'yyyy-MM-ddTHH:mm:ss'; + $fixedScheduleDateTimeRanges = @() + foreach ($dateTimeRange in $DateTimeRanges) { + $fixedScheduleDateTimeRanges += @{ + Start = $dateTimeRange.Start.ToString($dateTimeRangeStandardFormat, [System.Globalization.CultureInfo]::InvariantCulture) + End = $dateTimeRange.End.ToString($dateTimeRangeStandardFormat, [System.Globalization.CultureInfo]::InvariantCulture) + } + } + $params['FixedScheduleDateTimeRange'] = $fixedScheduleDateTimeRanges + } + + if (${Instance}.Type -eq [Microsoft.Rtc.Management.Hosted.Online.Models.ScheduleType]::WeeklyRecurrence) { + $MondayHours = ${Instance}.WeeklyRecurrentSchedule.MondayHours + $TuesdayHours = ${Instance}.WeeklyRecurrentSchedule.TuesdayHours + $WednesdayHours = ${Instance}.WeeklyRecurrentSchedule.WednesdayHours + $ThursdayHours = ${Instance}.WeeklyRecurrentSchedule.ThursdayHours + $FridayHours = ${Instance}.WeeklyRecurrentSchedule.FridayHours + $SaturdayHours = ${Instance}.WeeklyRecurrentSchedule.SaturdayHours + $SundayHours = ${Instance}.WeeklyRecurrentSchedule.SundayHours + + if ($MondayHours -ne $null -and $MondayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleMondayHour'] = @() + foreach ($mondayHour in $MondayHours){ + $params['WeeklyRecurrentScheduleMondayHour'] += @{ + Start = $mondayHour.Start + End = $mondayHour.End + } + } + } + if ($TuesdayHours -ne $null -and $TuesdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleTuesdayHour'] = @() + foreach ($tuesdayHour in $TuesdayHours){ + $params['WeeklyRecurrentScheduleTuesdayHour'] += @{ + Start = $tuesdayHour.Start + End = $tuesdayHour.End + } + } + } + if ($WednesdayHours -ne $null -and $WednesdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleWednesdayHour'] = @() + foreach ($wednesdayHour in $WednesdayHours){ + $params['WeeklyRecurrentScheduleWednesdayHour'] += @{ + Start = $wednesdayHour.Start + End = $wednesdayHour.End + } + } + } + if ($ThursdayHours -ne $null -and $ThursdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleThursdayHour'] = @() + foreach ($thursdayHour in $ThursdayHours){ + $params['WeeklyRecurrentScheduleThursdayHour'] += @{ + Start = $thursdayHour.Start + End = $thursdayHour.End + } + } + } + if ($FridayHours -ne $null -and $FridayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleFridayHour'] = @() + foreach ($fridayHour in $FridayHours){ + $params['WeeklyRecurrentScheduleFridayHour'] += @{ + Start = $fridayHour.Start + End = $fridayHour.End + } + } + } + if ($SaturdayHours -ne $null -and $SaturdayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleSaturdayHour'] = @() + foreach ($saturdayHour in $SaturdayHours){ + $params['WeeklyRecurrentScheduleSaturdayHour'] += @{ + Start = $saturdayHour.Start + End = $saturdayHour.End + } + } + } + if ($SundayHours -ne $null -and $SundayHours.Length -gt 0) { + $params['WeeklyRecurrentScheduleSundayHour'] = @() + foreach ($sundayHour in $SundayHours){ + $params['WeeklyRecurrentScheduleSundayHour'] += @{ + Start = $sundayHour.Start + End = $sundayHour.End + } + } + } + + $params['WeeklyRecurrentScheduleIsComplemented'] = ${Instance}.WeeklyRecurrentSchedule.ComplementEnabled + + if (${Instance}.WeeklyRecurrentSchedule.RecurrenceRange -ne $null) { + if (${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.Start -ne $null) { $params['RecurrenceRangeStart'] = ${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.Start } + if (${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.End -ne $null) { $params['RecurrenceRangeEnd'] = ${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.End } + if (${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.Type -ne $null) { $params['RecurrenceRangeType'] = ${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.Type } + } + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOnlineSchedule @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($result.Diagnostic) + + $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() + $schedule.ParseFrom($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Print error message in case of error + +function Set-CsOnlineVoicemailUserSettings { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Position=0, Mandatory)] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Rtc.Management.Hosted.Voicemail.Models.CallAnswerRules] + ${CallAnswerRule}, + + [Parameter()] + [System.String] + ${DefaultGreetingPromptOverwrite}, + + [Parameter()] + [System.String] + ${DefaultOofGreetingPromptOverwrite}, + + [Parameter()] + [System.Nullable[System.Boolean]] + ${OofGreetingEnabled}, + + [Parameter()] + [System.Nullable[System.Boolean]] + ${OofGreetingFollowAutomaticRepliesEnabled}, + + [Parameter()] + [System.String] + ${PromptLanguage}, + + [Parameter()] + [System.Nullable[System.Boolean]] + ${ShareData}, + + [Parameter()] + [System.String] + ${TransferTarget}, + + [Parameter()] + [System.Nullable[System.Boolean]] + ${VoicemailEnabled}, + + [Parameter(Mandatory=$false)] + [Switch] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOnlineVMUserSetting @PSBoundParameters @httpPipelineArgs + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + # If none of the above parameters are set (except Identity and Force), + # We should display the Warning message to user. + if ($PSBoundParameters["CallAnswerRule"] -eq $null -and + $PSBoundParameters["DefaultGreetingPromptOverwrite"] -eq $null -and + $PSBoundParameters["DefaultOofGreetingPromptOverwrite"] -eq $null -and + $PSBoundParameters["OofGreetingEnabled"] -eq $null -and + $PSBoundParameters["OofGreetingFollowAutomaticRepliesEnabled"] -eq $null -and + $PSBoundParameters["PromptLanguage"] -eq $null -and + $PSBoundParameters["ShareData"] -eq $null -and + $PSBoundParameters["TransferTarget"] -eq $null -and + $PSBoundParameters["VoicemailEnabled"] -eq $null) { + Write-Warning("To set online voicemail user settings for user {0}, at least one optional parameter should be provided." -f $Identity) + } + + $result + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsSharedCallQueueHistoryTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the shared call queue history template to be modified. + ${Instance}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Id + Description = ${Instance}.Description + IncomingMissedCalls = ${Instance}.IncomingMissedCalls + AnsweredAndOutboundCalls = ${Instance}.AnsweredAndOutboundCalls + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + + $null = $params.Remove("Instance") + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsSharedCallQueueHistoryTemplate @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::new() + $output.ParseFromUpdateResponse($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: transforming the results to the custom objects + +function Set-CsTagsTemplate { + [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] + param( + [Parameter(Mandatory=$true, position=0)] + [PSObject] + # The Instance parameter is the object reference to the Tags template to be modified. + ${Instance}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process{ + try { + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + if ($PSBoundParameters.ContainsKey("Force")) { + $PSBoundParameters.Remove("Force") | Out-Null + } + + $params = @{ + Name = ${Instance}.Name + Identity = ${Instance}.Id + Description = ${Instance}.Description + Tag = ${Instance}.Tags.MapToAutoGeneratedModel() + } + + # Get common parameters + $PSBoundCommonParameters = @{} + foreach($p in $PSBoundParameters.GetEnumerator()) + { + $params += @{$p.Key = $p.Value} + } + + $null = $params.Remove("Instance") + + $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsTagsTemplate @params @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($result -eq $null) { + return $null + } + + $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() + $output.MapFromUpdateResponseModel($result) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Format output of the cmdlet + +function Update-CsAutoAttendant { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$true, position=0)] + [System.String] + # The identity for the AA to be updated. + ${Identity}, + + [Parameter(Mandatory=$false, position=1)] + [Switch] + # The Force parameter indicates if we force the action to be performed. (Deprecated) + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} + ) + + begin { + $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) + } + + process { + try { + + $httpPipelineArgs = $customCmdletUtils.ProcessArgs() + + $null = $PSBoundParameters.Remove("Force") + + # Default ErrorAction to $ErrorActionPreference + if (!$PSBoundParameters.ContainsKey("ErrorAction")) { + $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) + } + + $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Update-CsAutoAttendant @PSBoundParameters @httpPipelineArgs + + # Stop execution if internal cmdlet is failing + if ($internalOutput -eq $null) { + return $null + } + + Write-AdminServiceDiagnostic($internalOutput.Diagnostic) + + } catch { + $customCmdletUtils.SendTelemetry() + throw + } + } + + end { + $customCmdletUtils.SendTelemetry() + } +} +# ---------------------------------------------------------------------------------- +# +# Copyright Microsoft Corporation +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ---------------------------------------------------------------------------------- + +# Objective of this custom file: Provide common functions for voice app team cmdlets + +function Write-AdminServiceDiagnostic { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord[]] + # The diagnostic object + ${Diagnostics} + ) + process { + if ($Diagnostics -eq $null) + { + return + } + + foreach($diagnostic in $Diagnostics) + { + if ($diagnostic.Level -eq $null) + { + Write-Output $diagnostic.Message + } + else + { + switch($diagnostic.Level) + { + "Warning" { Write-Warning $diagnostic.Message } + "Info" { Write-Output $diagnostic.Message } + "Verbose" { Write-Verbose $diagnostic.Message } + default { Write-Output $diagnostic.Message } + } + } + } + } +} + +function Get-StatusRecordStatusString { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [Int] + # The int status from status record + ${StatusRecordStatus} + ) + process { + if ($StatusRecordStatus -eq $null) + { + return + } + + $status = '' + + switch ($StatusRecordStatus) + { + 0 {$status = 'Error'} + 1 {$status = 'Pending'} + 2 {$status = 'Unknown'} + 3 {$status = 'Success'} + } + + $status + } +} + +function Get-StatusRecordStatusCodeString { + [CmdletBinding(PositionalBinding=$true)] + param( + [Parameter(Mandatory=$false, position=0)] + [Int] + # The int status from status record + ${StatusRecordErrorCode} + ) + process { + if ($StatusRecordErrorCode -eq $null) + { + return + } + + $statusCode = '' + + switch ($StatusRecordErrorCode) + { + 'ApplicationInstanceAssociationProvider_AppEndpointNotFound' {$statusCode = 'AppEndpointNotFound'} + 'ApplicationInstanceAssociationStatusProvider_AppEndpointNotFound' {$statusCode = 'AppEndpointNotFound'} + 'ApplicationInstanceAssociationStatusProvider_AcsAssociationNotFound' {$statusCode = 'AcsAssociationNotFound'} + 'ApplicationInstanceAssociationStatusProvider_ApsAssociationNotFound' {$statusCode = 'ApsAppEndpointNotFound'} + 'AudioFile_FileNameNullOrWhitespace' {$statusCode = 'AudioFileNameNullOrWhitespace'} + 'AudioFile_FileNameTooShort' {$statusCode = 'AudioFileNameTooShort'} + 'AudioFile_FileNameTooLong' {$statusCode = 'AudioFileNameTooLong'} + 'AudioFile_InvalidAudioFileExtension' {$statusCode = 'InvalidAudioFileExtension'} + 'AudioFile_InvalidFileName' {$statusCode = 'InvalidAudioFileName'} + 'AudioFile_UnsupportedAudioFileExtension' {$statusCode = 'UnsupportedAudioFileExtension'} + 'CreateApplicationEndpoint_ApsAppEndpointInvalid' {$statusCode = 'ApsAppEndpointInvalid'} + 'CreateApplicationInstanceAssociation_AppEndpointAlreadyAssociated' {$statusCode = 'AcsAssociationAlreadyExists'} + 'CreateApplicationInstanceAssociation_AppEndpointNotFound' {$statusCode = 'AppEndpointNotFound'} + 'CreateApplicationInstanceAssociation_AppEndpointMissingProvisioning' {$statusCode = 'AppEndpointMissingProvisioning'} + 'DateTimeRange_InvalidDateTimeRangeBound' {$statusCode = 'InvalidDateTimeRangeFormat'} + 'DateTimeRange_InvalidDateTimeRangeKind' {$statusCode = 'InvalidDateTimeRangeKind'} + 'DateTimeRange_NonPositiveDateTimeRange' {$statusCode = 'InvalidDateTimeRange'} + 'DeserializeScheduleOperation_InvalidModelVersion' {$statusCode = 'InvalidSerializedModelVersion'} + 'EnvironmentContextMapper_ForestNameNullOrWhiteSpace' {$statusCode = 'ForestNameNullOrWhiteSpace'} + 'FixedSchedule_DuplicateDateTimeRangeStartBoundaries' {$statusCode = 'DuplicateDateTimeRangeStartBoundaries'} + 'FixedSchedule_InvalidDateTimeRangeBoundariesAlignment' {$statusCode = 'InvalidDateTimeRangeBoundariesAlignment'} + 'ModelId_InvalidScheduleId' {$statusCode = 'InvalidScheduleId'} + 'ModifyScheduleOperation_ScheduleConflictInExistingAutoAttendant' {$statusCode = 'ScheduleConflictInExistingAutoAttendant'} + 'RemoveApplicationInstanceAssociation_AppEndpointNotFound' {$statusCode = 'AppEndpointNotFound'} + 'RemoveApplicationInstanceAssociation_AssociationNotFound' {$statusCode = 'AcsAssociationNotFound'} + 'RemoveScheduleOperation_ScheduleInUse' {$statusCode = 'ScheduleInUse'} + 'Schedule_NameNullOrWhitespace' {$statusCode = 'ScheduleNameNullOrWhitespace'} + 'Schedule_NameTooLong' {$statusCode = 'ScheduleNameTooLong'} + 'Schedule_FixedScheduleNull' {$statusCode = 'ScheduleTypeMismatch'} + 'Schedule_FixedScheduleNonNull' {$statusCode = 'ScheduleTypeMismatch'} + 'Schedule_WeeklyRecurrentScheduleNull' {$statusCode = 'ScheduleTypeMismatch'} + 'Schedule_WeeklyRecurrentScheduleNonNull' {$statusCode = 'ScheduleTypeMismatch'} + 'ScheduleRecurrenceRange_InvalidType' {$statusCode = 'InvalidRecurrenceRangeType'} + 'ScheduleRecurrenceRange_UnsupportedType' {$statusCode = 'InvalidRecurrenceRangeType'} + 'ScheduleRecurrenceRange_NonPositiveRange' {$statusCode = 'InvalidRecurrenceRangeEndDateTime'} + 'ScheduleRecurrenceRange_EndDateTimeNull' {$statusCode = 'InvalidRecurrenceRangeEndDateTime'} + 'ScheduleRecurrenceRange_EndDateTimeNonNull' {$statusCode = 'InvalidRecurrenceRangeEndDateTime'} + 'ScheduleRecurrenceRange_NumberOfOccurrencesZero' {$statusCode = 'InvalidRecurrenceNumberOfOccurrences'} + 'ScheduleRecurrenceRange_NumberOfOccurrencesNull' {$statusCode = 'InvalidRecurrenceNumberOfOccurrences'} + 'ScheduleRecurrenceRange_NumberOfOccurrencesNonNull' {$statusCode = 'InvalidRecurrenceNumberOfOccurrences'} + 'TimeRange_InvalidTimeRange' {$statusCode = 'InvalidTimeRange'} + 'TimeRange_InvalidTimeRangeBound' {$statusCode = 'InvalidTimeRangeBound'} + 'WeeklyRecurrentSchedule_EmptySchedule' {$statusCode = 'EmptyWeeklyRecurrentSchedule'} + 'WeeklyRecurrentSchedule_InvalidTimeRangeBoundariesAlignment' {$statusCode = 'InvalidTimeRangeBoundariesAlignment'} + 'WeeklyRecurrentSchedule_OverlappingTimeRanges' {$statusCode = 'TimeRangesOverlapping'} + 'WeeklyRecurrentSchedule_TooManyTimeRangesPerDay' {$statusCode = 'TooManyTimeRangesForDay'} + 'WeeklyRecurrentSchedule_RecurrenceRangeNull' {$statusCode = 'ScheduleRecurrenceRangeNull'} + } + + $statusCode + } +} + +# Asp.Net 4.0+ considers these eight characters (<, >, *, %, &, :, \, and ?) as the default +# potential dangerous characters in the URL which may be used in XSS attacks. +# A SIP URI (sip:user@domain.com:port) usually startswith SIP prefix (sip:). This COLON (:) +# in prefix needs to be replaced with something that is not invalid. +# Also, as the last parameter in the URI is "identity", it can not have Dots (.) +# For these reasons we wrote this custom method. +function EncodeSipUri { + param( + $Identity + ) + + if ($Identity -eq $null) + { + return + } + + $Identity = $Identity.replace(':', "[COLON]") + $Identity = $Identity.replace('.', "[DOT]") + + return $Identity +} + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBIzgYBO9cwSOta +# qQrIdA0xrme0aWPoNiYVqVkWCcHICqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKmd +# xEWoMIxGMuEh4n+NAdj3ygcr0yIeOfH7II1XDdz3MEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAOkj3Fv6/lJRxFrebhPdNguYFyVKcPKznWejf +# 7D5v4ep1gHvLixSXiPzUAuMfW8zLN6H1V5jIRU8Uel4h7A51hMFSKRYg5MguQCk6 +# MXjo7EK8UunG6Ya+n1o0CJZzM8rJqtv1Jz7s1EK1+icFHeR6lteCpgbRrQhxx46E +# AFOCIFXgFeDFlfSVJup90mYf3mAJx4a0A0Sl8930RIGAOGoMaAYndY+2zpyUGni+ +# uJvj3D+uHZkHDrYHV/4uLXBsqY0q3tRqfOkg1xPnwxEjkUva4RUUmPr6HEf7Z+i6 +# gmn9b+cGLEMqYdzcU1c+ZF2nq317Z2hUSM1fY6/cxzJRF7UfuqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCC/NqTy9keF2NwFAu5InBPDQccwjm84junW +# ayO+WaiieQIGaKSChGLFGBMyMDI1MTAwMTA4MzMxMS42NzRaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAAvX +# qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# r1XaadKkP2TkunoTF573/tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biF +# IHc6LqrIeqCgT9fT/Gks5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfN +# XszWswmL9UlWo8mzyv9Lp9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6 +# cSn0MlYukXklArChq6l+KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnN +# h9M6kDaneSz78/YtD/2pGpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69 +# l5dJv71S/mH+Lxb6L692n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswC +# qjqNc3X/WIzA7GGs4HUS4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2Bt +# xMKq3kneRoT27NQ7Y7n8ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V +# 8f5r4HaG9zPcykOyJpRZy+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH +# 6J7fJXqRPbg+H6rYLZ8XBpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+ +# nHkM+zgSx8+07BVZPBKslooebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSAJSTavgkjKqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAKPCG9njRtIqQ+fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdL +# ZS0b2IDHg0yLrtdVuBi3FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12i +# O3t6jy1hPSquzGLry/2mEZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q +# +HGyZv3v8et+rQYg8sF3PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXF +# RFKhcSUws7mFdIDDhZpxqyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d +# 45hb6PzOIF7BkcPtRtFW2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6Di +# rsJ4IG9ikId941+mWDejkj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+ +# yLr8FLc7nbMa2lFSixzu96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6M +# k+YuxvzprkuWQJYWfpPvug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVneb +# YRshwZIyJTsBgLZmHM7q2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4l +# T2/N0pDbn2ffAzjZkhI+Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivip +# L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHBJ4wIhgPMjAyNTEwMDEwMTM4MzhaGA8yMDI1 +# MTAwMjAxMzgzOFowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcEngIBADAKAgEA +# AgIGlwIB/zAHAgEAAgIScjAKAgUA7IhWHgIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQAdaXY8v9U/NzKV16+VoFilpCMuEVCWleGhL3ffLhOEHkg2VAop6cmg +# fPYJ646YmB7Iy3irtfHqdSfqUWZposIvzZ1NJoBPbnfN24VZV1Z6Xcf+qkS3Jksg +# yAFJ6GmZ7rpAnsSlJtFg5zmB+isPjhxaMff15FBCenjxxy2mW11CU8XecTgoT1PP +# WK5Mi5A6XOW3A8Gt4/HFr/cdobC9TSyM/FRWoUlzJN+ApghTP8PUwVLw1LI5agH0 +# /0jkpDNJg49gtTYaWf+FZFFKpebRA1yoDYogeKEiQ3G3f7SyMM3WxlwA7vn/jQg3 +# MzyhDF8/UjPjoTJ2p8dYcMQQHsYXDbbaMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgnBOmXy5RwewKsCbYCAAA7JHmJhq6Tx+ZQAOmNbi45nEwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudI +# k/9KAk/ZJzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAACAAvXqn8bKhdWAAEAAAIAMCIEIKe6vgAD9J4jknLccJMNceGpt3UdZjDsFHHU +# ESpVUeFoMA0GCSqGSIb3DQEBCwUABIICAHH5RJtZ+KxoyyXyYGjqUIFWoP8t40eP +# LCMomsaJOw+NzGo8fO+eb1rb4/yonAQlys6dClS6Ass9sAnxXfmvTOY36nrAQnDp +# rhAMFdo5uE+J0v99VAo/NAiCp4lM7qSsOKhPMmvd4j0k4/X1oyKF7I/5Vj+5xVa0 +# uFLC7LUrrYwmaL0hdaDODe28qUf0k1C4se9s6WbZGbSSPcTHdhF3x35Puug8hSOB +# roY2iErahiHdtkd0XgI4DD/8FZsvX3Zyo61b2Nh1XxAVQmhNzsUGO6OZURhOSaO7 +# O/kOFHAoaIve2ulRo+x/w0DnLO8H79uE/HVC9p0JIjt+zpbk2ttC06L0RQj+4iwZ +# ZMesDHfL179DlhiPXVbgDEAPe/TKJVpegf4lQSB5QX65WBHkEKsisOiTHvrC0Rfp +# tqHU3ndyQJ/GYLb0RLWAxWzB/E2bxLZiC0K0pdohMNhwN9/D2J8L5hcWRgk5zIhg +# t85SWShRdbSQja2i7Cv8mrM8LeOJ5WC6CLKUX+67FCaWtFobHFUn/0S74G7sU6rd +# KFjdFMxp/pOii77zzzcKByoSZ5AmhZU1UGfi3Kq4+sjOqH/Z8yUNMp2XivC8f+nO +# 1tmpbOUZDXfPrGCgtiVFMgWoP+womi/2xzUH2DvH/2jLGxQn5Go8xuQ3kXeIEkyl +# vXxGnkvctmSI +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 b/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 new file mode 100644 index 000000000000..8d65d2ee6a4e --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 @@ -0,0 +1,236 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') + + # Load the internal module + $internalModulePath = Join-Path $PSScriptRoot '..\internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1' + if(Test-Path $internalModulePath) { + $null = Import-Module -Name $internalModulePath + } + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export script cmdlets + Get-ChildItem -Path $PSScriptRoot -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + Export-ModuleMember -Function (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot) -Alias (Get-ScriptCmdlet -ScriptFolder $PSScriptRoot -AsAlias) +# endregion + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBOycrzQVq6CnNY +# rK5l5Eg2CcKYocwkesaom45CeipKo6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJjw +# tTQPVUIPxEfl/cH44G64tSZU5xH8iTxSrE/PWkOGMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEAHARwEACGgeo1ixh3JYE5UqAJpnNZy7L99o1/ +# jMDzCitGGDwl8FXAXO0zGJJl4vrJjtnqU0eDmqxPHiG7PoBco+cky3oPK4HTgxxk +# cFWrAm6+0ZmtdLPKZ2NphUZ2v/QNj9Q/XlnPbyKdKpvqXLlmBoxSFiAKh8JemN6c +# f8iTH3mln3xQL6xXN7Wdfzbj3l45AFk4TWLepJKn0F9RxvtW8iHS/8kFZlhwIXHz +# eNxfI9yPfF4Ht+LzLtnherw93yO68ohxPuq6tcKpAf6ilsc3NA0NKrC9nAHLODkx +# mZQ0vR1OYw2Cwy1DmV0MyoJoYKkGZ735C6pl8fy8dx/WlzFWAqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAOCQpRRepj6EZa/HAux1KL/0wunCfJBimY +# 3dc7ak5UdQIGaKSChGIoGBMyMDI1MTAwMTA4MzMwNi4zMzJaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAACAAvX +# qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# r1XaadKkP2TkunoTF573/tF7KJM9Doiv3ccv26mqnUhmv2DM59ikET4WnRfo5biF +# IHc6LqrIeqCgT9fT/Gks5VKO90ZQW2avh/PMHnl0kZfX/I5zdVooXHbdUUkPiZfN +# XszWswmL9UlWo8mzyv9Lp9TAtw/oXOYTAxdYSqOB5Uzz1Q3A8uCpNlumQNDJGDY6 +# cSn0MlYukXklArChq6l+KYrl6r/WnOqXSknABpggSsJ33oL3onmDiN9YUApZwjnN +# h9M6kDaneSz78/YtD/2pGpx9/LXELoazEUFxhyg4KdmoWGNYwdR7/id81geOER69 +# l5dJv71S/mH+Lxb6L692n8uEmAVw6fVvE+c8wjgYZblZCNPAynCnDduRLdk1jswC +# qjqNc3X/WIzA7GGs4HUS4YIrAUx8H2A94vDNiA8AWa7Z/HSwTCyIgeVbldXYM2Bt +# xMKq3kneRoT27NQ7Y7n8ZTaAje7Blfju83spGP/QWYNZ1wYzYVGRyOpdA8Wmxq5V +# 8f5r4HaG9zPcykOyJpRZy+V3RGighFmsCJXAcMziO76HinwCIjImnCFKGJ/IbLjH +# 6J7fJXqRPbg+H6rYLZ8XBpmXBFH4PTakZVYxB/P+EQbL5LNw0ZIM+eufxCljV4O+ +# nHkM+zgSx8+07BVZPBKslooebsmhIcBO0779kehciYMCAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSAJSTavgkjKqge5xQOXn35fXd3OjAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAKPCG9njRtIqQ+fuECgxzWMsQOI3HvW7sV9PmEWCCOWlTuGCIzNi3ibdL +# ZS0b2IDHg0yLrtdVuBi3FxVdesIXuzYyofIe/alTBdV4DhijLTXtB7NgOno7G12i +# O3t6jy1hPSquzGLry/2mEZBwIsSoS2D+H+3HCJxPDyhzMFqP+plltPACB/QNwZ7q +# +HGyZv3v8et+rQYg8sF3PTuWeDg3dR/zk1NawJ/dfFCDYlWNeCBCLvNPQBceMYXF +# RFKhcSUws7mFdIDDhZpxqyIKD2WDwFyNIGEezn+nd4kXRupeNEx+eSpJXylRD+1d +# 45hb6PzOIF7BkcPtRtFW2wXgkjLqtTWWlBkvzl2uNfYJ3CPZVaDyMDaaXgO+H6Di +# rsJ4IG9ikId941+mWDejkj5aYn9QN6ROfo/HNHg1timwpFoUivqAFu6irWZFw5V+ +# yLr8FLc7nbMa2lFSixzu96zdnDsPImz0c6StbYyhKSlM3uDRi9UWydSKqnEbtJ6M +# k+YuxvzprkuWQJYWfpPvug+wTnioykVwc0yRVcsd4xMznnnRtZDGMSUEl9tMVneb +# YRshwZIyJTsBgLZmHM7q2TFK/X9944SkIqyY22AcuLe0GqoNfASCIcZtzbZ/zP4l +# T2/N0pDbn2ffAzjZkhI+Qrqr983mQZWwZdr3Tk1MYElDThz2D0MwggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivip +# L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyHBJ4wIhgPMjAyNTEwMDEwMTM4MzhaGA8yMDI1 +# MTAwMjAxMzgzOFowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcEngIBADAKAgEA +# AgIGlwIB/zAHAgEAAgIScjAKAgUA7IhWHgIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQAdaXY8v9U/NzKV16+VoFilpCMuEVCWleGhL3ffLhOEHkg2VAop6cmg +# fPYJ646YmB7Iy3irtfHqdSfqUWZposIvzZ1NJoBPbnfN24VZV1Z6Xcf+qkS3Jksg +# yAFJ6GmZ7rpAnsSlJtFg5zmB+isPjhxaMff15FBCenjxxy2mW11CU8XecTgoT1PP +# WK5Mi5A6XOW3A8Gt4/HFr/cdobC9TSyM/FRWoUlzJN+ApghTP8PUwVLw1LI5agH0 +# /0jkpDNJg49gtTYaWf+FZFFKpebRA1yoDYogeKEiQ3G3f7SyMM3WxlwA7vn/jQg3 +# MzyhDF8/UjPjoTJ2p8dYcMQQHsYXDbbaMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIAC9eqfxsqF1YAAQAAAgAwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgKS4xY4F0SFgFVdz5xBuDN5LVksjmExyb9nmnsd+uKIswgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDUyO3sNZ3burBNDGUCV4NfM2gH4aWuRudI +# k/9KAk/ZJzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAACAAvXqn8bKhdWAAEAAAIAMCIEIKe6vgAD9J4jknLccJMNceGpt3UdZjDsFHHU +# ESpVUeFoMA0GCSqGSIb3DQEBCwUABIICAHDuZCYheJqhVbanWwhss0S4bbd+sB8j +# xiIT3HgAR+Eo1zQdql56eU8zD4yoYodSYT2FHP8QT2SWKipGjExHjEvlclymGbXc +# a+WBgpw+fr5fIR7dCeSFLqoMgBrRwnCm3UCM6WTQDZuK/+9JYW684mHo/fmoYWfH +# T3W0NJbJgW90nVcA7pKiiHqQwdsIW+E1fYmFtTqvipQEa7TxFGAUToi7nhF0kavU +# XIYnd2ZO7HTHpVXh4koAEZPWMUvtN0wgoOxNSGqjoBvwn8VzouoMygJQck/WgbJO +# eZxf0fvIkuHRxP1zg7PkF61KjKu0cwjLXyI/ijD/85GO5hzpKBV03BEEf40ZTTuB +# avaGL4K0PBvVcP7flMUAjOASaKiNkFJ2w3v+qw6KNfMEdXa2n0wwPndpnRd8cETy +# 3BueO7wFk9/xTsywj/BpTmh+QU0y/3JT36A/tNYjiNZLXr4C39xGnz9o1PHTIjL4 +# vg3gycOOi8a+Z7Sygwyij6tq1BhXpcX3kCMoeEla2+A/yPAZyZ5H2fDVJPAlzJjL +# 6crSkfMfdxDYaLlSaA+bAWKIv//GlNB5JpHP0OS14P3jx64LI5olgCH/8AaMU8Uk +# BVsBrVOL5Nl/BJqh6++jsTH1Jh6B26/BXdBvDHVrHvpsLKNwTl0OMnK00i7ROmT0 +# QGKTj4J3Ehld +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml new file mode 100644 index 000000000000..9d883dfb0e42 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml @@ -0,0 +1,51267 @@ + + + + + Get-CsExternalAccessPolicy + Get + CsExternalAccessPolicy + + Returns information about the external access policies that have been configured for use in your organization. + + + + External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop); 3) access Skype for Business Server over the Internet, without having to log on to your internal network; and, 4) communicate with users who have SIP accounts with a public instant messaging (IM)provider such as Skype. + This cmdlet was introduced in Lync Server 2010. + When you first configure Skype for Business Online your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Online organization or in your Active Directory Domain Services for on-premises deployments. + For on-premises deployments, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. + That might be sufficient to meet your communication needs. If it doesn't meet your needs, you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: + 1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation alone will not provide users with this capability. Instead, you must enable federation and then assign users an external access policy that gives them the right to communicate with federated users. + 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration). + 3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. + 4. Communicate with people who have SIP accounts with a public instant messaging service such as Skype. + The Get-CsExternalAccessPolicy cmdlet provides a way for you to return information about all of the external access policies that have been configured for use in your organization. + + + + Get-CsExternalAccessPolicy + + ApplicableTo + + > Applicable: Microsoft Teams + Returns a list of the external access policies that can be assigned to the specified user. For example, to return a collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command: + `Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"` + The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access policies can be assigned to a given user. This is due to the fact that different licensing agreements and different country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available policies, including any policies that can't actually be assigned to a specific user. + The ApplicableTo parameter applies only to Skype for Business Online. This parameter is not intended for use with the on-premises version of Skype for Business Server 2015. + + UserIdParameter + + UserIdParameter + + + None + + + Filter + + Below Content Applies To: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015 + Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at the site scope, use this Filter: + `site:*` + To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter: + `"S*".` + Note that the Filter parameter can only be applied to the policy Identity. Below Content Applies To: Skype for Business Online + Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at the per-user scope, use this Filter: + `"tag:*"` + To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter: + `"tag:S*"` + Note that the Filter parameter can only be applied to the policy Identity. + + String + + String + + + None + + + Include + + > Applicable: Microsoft Teams + PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly + + PolicyFilter + + PolicyFilter + + + None + + + LocalStore + + Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. + NOTE: This parameter is not used with Skype for Business Online. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + Get-CsExternalAccessPolicy + + Identity + + Unique Identity assigned to the policy when it was created. External access policies can be assigned at the global, site, or per-user scope. To refer to the global instance use this syntax: -Identity global. To refer to a policy at the site scope, use this syntax: -Identity site:Redmond. To refer to a policy at the per-user scope, use syntax similar to this: -Identity RedmondPolicy. + Note that wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for policies, use the Filter parameter instead. + If neither the Identity nor Filter parameters are specified, then the Get-CsExternalAccessPolicy cmdlet will bring back a collection of all the external access policies configured for use in the organization. + + XdsIdentity + + XdsIdentity + + + None + + + ApplicableTo + + > Applicable: Microsoft Teams + Returns a list of the external access policies that can be assigned to the specified user. For example, to return a collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command: + `Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"` + The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access policies can be assigned to a given user. This is due to the fact that different licensing agreements and different country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available policies, including any policies that can't actually be assigned to a specific user. + The ApplicableTo parameter applies only to Skype for Business Online. This parameter is not intended for use with the on-premises version of Skype for Business Server 2015. + + UserIdParameter + + UserIdParameter + + + None + + + Include + + > Applicable: Microsoft Teams + PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly + + PolicyFilter + + PolicyFilter + + + None + + + LocalStore + + Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. + NOTE: This parameter is not used with Skype for Business Online. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + ApplicableTo + + > Applicable: Microsoft Teams + Returns a list of the external access policies that can be assigned to the specified user. For example, to return a collection of policies that can be assigned to the user kenmyer@litwareinc.com, use this command: + `Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com"` + The ApplicableTo parameter is useful because it's possible that only some of the available per-user external access policies can be assigned to a given user. This is due to the fact that different licensing agreements and different country/region restrictions might limit the policies that can be assigned to a user. For example, if Ken Myer works in China, country/region restrictions might limit his access to policies A, B, D, and E, Meanwhile, similar restrictions might limit Pilar Ackerman, who works in the United States, to policies A, B, C, and F. If you call Get-CsExternalAccessPolicy without using the ApplicableTo parameter you will get back a collection of all the available policies, including any policies that can't actually be assigned to a specific user. + The ApplicableTo parameter applies only to Skype for Business Online. This parameter is not intended for use with the on-premises version of Skype for Business Server 2015. + + UserIdParameter + + UserIdParameter + + + None + + + Filter + + Below Content Applies To: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015 + Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at the site scope, use this Filter: + `site:*` + To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter: + `"S*".` + Note that the Filter parameter can only be applied to the policy Identity. Below Content Applies To: Skype for Business Online + Enables you to do a wildcard search for external access policies. For example, to find all the policies configured at the per-user scope, use this Filter: + `"tag:*"` + To find the per-user policies Seattle, Seville, and Saskatoon (all of which start with the letter "S") use this Filter: + `"tag:S*"` + Note that the Filter parameter can only be applied to the policy Identity. + + String + + String + + + None + + + Identity + + Unique Identity assigned to the policy when it was created. External access policies can be assigned at the global, site, or per-user scope. To refer to the global instance use this syntax: -Identity global. To refer to a policy at the site scope, use this syntax: -Identity site:Redmond. To refer to a policy at the per-user scope, use syntax similar to this: -Identity RedmondPolicy. + Note that wildcard characters such as the asterisk (*) cannot be used with the Identity parameter. To do a wildcard search for policies, use the Filter parameter instead. + If neither the Identity nor Filter parameters are specified, then the Get-CsExternalAccessPolicy cmdlet will bring back a collection of all the external access policies configured for use in the organization. + + XdsIdentity + + XdsIdentity + + + None + + + Include + + > Applicable: Microsoft Teams + PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly + + PolicyFilter + + PolicyFilter + + + None + + + LocalStore + + Retrieves the external access policy data from the local replica of the Central Management store rather than from the Central Management store itself. + NOTE: This parameter is not used with Skype for Business Online. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Get-CsExternalAccessPolicy + + Example 1 returns a collection of all the external access policies configured for use in your organization. Calling the Get-CsExternalAccessPolicy cmdlet without any additional parameters always returns the complete collection of external access policies. + + + + ------------ EXAMPLE 2 (Skype for Business Online) ------------ + Get-CsExternalAccessPolicy -Identity "tag:RedmondExternalAccessPolicy" + + Example 2 uses the Identity parameter to return the external access policy that has the Identity tag:RedmondExternalAccessPolicy. Because access policy Identities must be unique, this command will never return more than one item. + + + + ---------- EXAMPLE 2 (Skype for Business Server 2015) ---------- + Get-CsExternalAccessPolicy -Identity site:Redmond + + Example 2 uses the Identity parameter to return the external access policy that has the Identity site:Redmond. Because access policy Identities must be unique, this command will never return more than one item. + + + + -------------------------- Example 3 -------------------------- + Get-CsExternalAccessPolicy -Filter tag:* + + The command shown in Example 3 uses the Filter parameter to return all of the external access policies that have been configured at the per-user scope; the parameter value "tag:*" limits returned data to those policies that have an Identity that begins with the string value "tag:". By definition, any policy that has an Identity beginning with "tag:" is a policy that has been configured at the per-user scope. + + + + -------------------------- Example 4 -------------------------- + Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True} + + In Example 4, the Get-CsExternalAccessPolicy cmdlet and the Where-Object cmdlet are used to return all the external access policies that grant users federation access. To do this, the Get-CsExternalAccessPolicy cmdlet is first used to return a collection of all the external access policies currently in use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only those policies where the EnableFederationAccess property is equal to True. + + + + -------------------------- Example 5 -------------------------- + Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True -and $_.EnablePublicCloudAccess -eq $True} + + The command shown in Example 5 returns the external access policies that meet two criteria: both federation access and public cloud access are allowed. In order to perform this task, the command first uses the Get-CsExternalAccessPolicy cmdlet to return a collection of all the access policies in use in the organization. That collection is then piped to the Where-Object cmdlet, which picks out only those policies that meet two criteria: the EnableFederationAccess property must be equal to True and the EnablePublicCloudAccess property must also be equal to True. Only policies in which both EnableFederationAccess and EnablePublicCloudAccess are True will be returned and displayed on the screen. + + + + -------------------------- EXAMPLE 6 -------------------------- + Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com" + + In Example 6, the ApplicableTo parameter is used to return only the policies that can be assigned to the user "kenmyer@litwareinc.com". + NOTE: The ApplicableTo parameter can only be used with Skype for Business Online; that's because, with Skype for Business Online, there might be policies that cannot be assigned to certain users due to licensing and/or country/region restrictions. + NOTE: This command requires the Office 365 UsageLocation property to be configured for the user's Active Directory user account. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy + + + Grant-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + New-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Remove-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy + + + Set-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + + + + Get-CsOnlineVoicemailPolicy + Get + CsOnlineVoicemailPolicy + + Use the `Get-CsOnlineVoicemailPolicy` cmdlet to get a list of all pre-configured policy instances related to Cloud Voicemail service. + + + + This cmdlet retrieves information about one or more voicemail policies that have been configured for use in your organization. Voicemail policies are used by the organization to manage Voicemail-related features such as transcription. + + + + Get-CsOnlineVoicemailPolicy + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all voicemail policies available for use are returned. + + String + + String + + + None + + + Filter + + > Applicable: Microsoft Teams + This parameter accepts a wildcard string and returns all voicemail policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured voicemail policy instances (excluding forest default "Global") available to use by the tenant admins. + + String + + String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + This parameter accepts a wildcard string and returns all voicemail policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured voicemail policy instances (excluding forest default "Global") available to use by the tenant admins. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all voicemail policies available for use are returned. + + String + + String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.WritableConfig.Policy.OnlineVoicemail.OnlineVoicemailPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineVoicemailPolicy + + In Example 1, the Get-CsOnlineVoicemailPolicy cmdlet is called without any additional parameters; this returns a collection of all the voicemail policies configured for use in your organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineVoicemailPolicy -Identity TranscriptionDisabled + + In Example 2, the Get-CsOnlineVoicemailPolicy cmdlet is used to return the per-user voicemail policy that has an Identity TranscriptionDisabled. Because identities are unique, this command will never return more than one item. + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineVoicemailPolicy -Filter "tag:*" + + Example 3 uses the Filter parameter to return all the voicemail policies that have been configured at the per-user scope. The filter value "tag:*" tells the Get-CsOnlineVoicemailPolicy cmdlet to return only those policies that have an Identity that begins with the string value "tag:". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy + + + Set-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy + + + New-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy + + + Remove-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy + + + Grant-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy + + + + + + Get-CsPrivacyConfiguration + Get + CsPrivacyConfiguration + + Returns information about the privacy configuration settings currently in use in your organization. Privacy configuration settings help determine how much information users make available to other users. This cmdlet was introduced in Lync Server 2010. + + + + Skype for Business Server gives users the opportunity to share a wealth of presence information with other people: they can publish a photograph of themselves; they can provide detailed location information; they can have presence information automatically made available to everyone in the organization (as opposed to having this information available only to people on their Contacts list). + Some users will welcome the opportunity to make this information available to their colleagues; other users might be more reluctant to share this data. (For example, many people might be hesitant about having their photo included in their presence data.) As a general rule, users have control over what information they will (or will not) share; for example, users can select or clear a check box in order to control whether or not their location information is shared with others. In addition, the privacy configuration cmdlets enable administrators to manage privacy settings for their users. In some cases, administrators can enable or disable settings; for example, if the property AutoInitiateContacts is set to True, then team members will automatically be added to each user's Contacts list; if set to False, team members will not be automatically be added to each user's Contacts list. + In other cases, administrators can configure the default values in Skype for Business Server while still giving users the right to change these values. For example, by default location data is published for users, although users do have the right to stop location publication. By setting the PublishLocationDataByDefault property to False, administrators can change this behavior: in that case, location data will not be published by default, although users will still have the right to publish this data if they choose. + Privacy configuration settings can be applied at the global scope, the site scope, and at the service scope (albeit only for the User Server service). The Get-CsPrivacyConfiguration cmdlet enables you to retrieve information about all the privacy configuration settings currently in use in your organization. + + + + Get-CsPrivacyConfiguration + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the privacy configuration settings to be retrieved. To return the global settings, use this syntax: + `-Identity global` + To return settings configured at the site scope, use syntax similar to this: + `-Identity site:Redmond` + To modify settings at the service level, use syntax like this: + `-Identity service:UserServer:atl-cs-001.litwareinc.com` + If this parameter is not specified then the Get-CsPrivacyConfiguration cmdlet returns all the privacy configuration settings currently in use in your organization. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to use wildcards to return one or more collections of privacy configuration settings. For example, to return all the settings configured at the site scope, you can use this syntax: + `-Filter "site:*"` + To return all the settings configured at the service scope, use this syntax: + `-Filter "service:*"` + + String + + String + + + None + + + LocalStore + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Retrieves the privacy configuration data from the local replica of the Central Management store rather than from the Central Management store itself. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Globally unique identifier (GUID) of the Skype for Business Online tenant account whose privacy configuration settings are to be retrieved. + For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + + + + Filter + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to use wildcards to return one or more collections of privacy configuration settings. For example, to return all the settings configured at the site scope, you can use this syntax: + `-Filter "site:*"` + To return all the settings configured at the service scope, use this syntax: + `-Filter "service:*"` + + String + + String + + + None + + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the privacy configuration settings to be retrieved. To return the global settings, use this syntax: + `-Identity global` + To return settings configured at the site scope, use syntax similar to this: + `-Identity site:Redmond` + To modify settings at the service level, use syntax like this: + `-Identity service:UserServer:atl-cs-001.litwareinc.com` + If this parameter is not specified then the Get-CsPrivacyConfiguration cmdlet returns all the privacy configuration settings currently in use in your organization. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Retrieves the privacy configuration data from the local replica of the Central Management store rather than from the Central Management store itself. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Globally unique identifier (GUID) of the Skype for Business Online tenant account whose privacy configuration settings are to be retrieved. + For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsPrivacyConfiguration + + The command shown in Example 1 returns all the privacy configuration settings currently in use in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsPrivacyConfiguration -Identity site:Redmond + + Example 2 returns a single collection of privacy configuration settings: the settings that have the Identity site:Redmond. + + + + -------------------------- Example 3 -------------------------- + Get-CsPrivacyConfiguration -Filter "site:*" + + In Example 3, information is returned for all the privacy configuration settings that have been assigned to the site scope. To do this, the Filter parameter is included, along with the filter value "site:*". That filter value ensures that only settings where the Identity (the only property you can filter on) begins with the characters "site:". + + + + -------------------------- Example 4 -------------------------- + Get-CsPrivacyConfiguration | Where-Object {$_.EnablePrivacyMode -eq $True} + + The command shown in Example 4 returns information about all the privacy configuration settings where privacy mode has been enabled. This is done by first calling the Get-CsPrivacyConfiguration cmdlet without any parameters in order to return a collection of all the privacy settings. This collection is then piped to the Where-Object cmdlet, which picks out only those settings where the EnablePrivacyMode property is equal to True. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csprivacyconfiguration + + + New-CsPrivacyConfiguration + + + + Remove-CsPrivacyConfiguration + + + + Set-CsPrivacyConfiguration + + + + + + + Get-CsTeamsAcsFederationConfiguration + Get + CsTeamsAcsFederationConfiguration + + This cmdlet is used to retrieve the federation configuration between Teams and Azure Communication Services. + + + + Federation between Teams and Azure Communication Services (ACS) allows users of custom solutions built with ACS to connect and communicate with Teams users over voice, video, Teams users over voice, video and screen sharing, and more. For more information, see Teams interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). + This cmdlet is used retrieve the Teams and ACS federation configuration for a Teams tenant. + You must be a Teams service admin or a Teams communication admin for your organization to run the cmdlet. + + + + Get-CsTeamsAcsFederationConfiguration + + Filter + + Enables you to use wildcards when specifying the Teams and ACS federation configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". + + String + + String + + + None + + + + Get-CsTeamsAcsFederationConfiguration + + Identity + + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcards when specifying the Teams and ACS federation configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". + + String + + String + + + None + + + Identity + + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsAcsFederationConfiguration + +Identity : Global +AllowedAcsResources : {'faced04c-2ced-433d-90db-063e424b87b1'} +EnableAcsUsers : True + + In this example, federation has been enabled for just one ACS resource. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsAcsFederationConfiguration + +Identity : Global +AllowedAcsResources : {} +EnableAcsUsers : False + + In this example, federation is disabled for all ACS resources. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsacsfederationconfiguration + + + Set-CsTeamsAcsFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration + + + New-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Set-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + Grant-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + + + + Get-CsTeamsAIPolicy + Get + CsTeamsAIPolicy + + This cmdlet retrieves all Teams AI policies for the tenant. + + + + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + This cmdlet retrieves all Teams AI policies for the tenant. + + + + Get-CsTeamsAIPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsAIPolicy + + Retrieves Teams AI policies and shows "EnrollFace", "EnrollVoice" and "SpeakerAttributionBYOD" values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsAIPolicy + + + New-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy + + + Remove-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy + + + Set-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy + + + Grant-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy + + + + + + Get-CsTeamsAppPermissionPolicy + Get + CsTeamsAppPermissionPolicy + + As an admin, you can use app permission policies to allow or block apps for your users. + + + + NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Setup Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. This is only applicable for tenants who have not been migrated to ACM or UAM. + + + + Get-CsTeamsAppPermissionPolicy + + Filter + + Do not use + + String + + String + + + None + + + LocalStore + + Do not use. + + + SwitchParameter + + + False + + + Tenant + + {{Fill Tenant Description}} + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsAppPermissionPolicy + + Identity + + Name of the app setup permission policy. If empty, all identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Do not use. + + + SwitchParameter + + + False + + + Tenant + + {{Fill Tenant Description}} + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Do not use + + String + + String + + + None + + + Identity + + Name of the app setup permission policy. If empty, all identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Do not use. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + {{Fill Tenant Description}} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsAppPermissionPolicy -Identity Global + +Identity : Global +DefaultCatalogApps : {Id=26bc2873-6023-480c-a11b-76b66605ce8c, Id=0d820ecd-def2-4297-adad-78056cde7c78, Id=com.microsoft.teamspace.tab.planner} +GlobalCatalogApps : {} +PrivateCatalogApps : {} +Description : +DefaultCatalogAppsType : AllowedAppList +GlobalCatalogAppsType : AllowedAppList +PrivateCatalogAppsType : AllowedAppList + + Get the global Teams app permission policy. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsAppPermissionPolicy + +Identity : Global +DefaultCatalogApps : {Id=26bc2873-6023-480c-a11b-76b66605ce8c, Id=0d820ecd-def2-4297-adad-78056cde7c78, Id=com.microsoft.teamspace.tab.planner} +GlobalCatalogApps : {} +PrivateCatalogApps : {} +Description : +DefaultCatalogAppsType : AllowedAppList +GlobalCatalogAppsType : AllowedAppList +PrivateCatalogAppsType : AllowedAppList + +Identity : Tag:test +DefaultCatalogApps : {Id=26bc2873-6023-480c-a11b-76b66605ce8c, Id=0d820ecd-def2-4297-adad-78056cde7c78, Id=com.microsoft.teamspace.tab.planner} +GlobalCatalogApps : {} +PrivateCatalogApps : {} +Description : +DefaultCatalogAppsType : AllowedAppList +GlobalCatalogAppsType : AllowedAppList +PrivateCatalogAppsType : AllowedAppList + + Get all the Teams app permission policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsapppermissionpolicy + + + + + + Get-CsTeamsAppSetupPolicy + Get + CsTeamsAppSetupPolicy + + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. + + + + NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. + Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + + + + Get-CsTeamsAppSetupPolicy + + Filter + + Do not use. + + String + + String + + + None + + + LocalStore + + Do not use. + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsAppSetupPolicy + + Identity + + Name of App setup policy. If empty, all Identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Do not use. + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Do not use. + + String + + String + + + None + + + Identity + + Name of App setup policy. If empty, all Identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Do not use. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsAppSetupPolicy -Identity Global + +Identity : Global +AppPresetList : {Id=d2c6f111-ffad-42a0-b65e-ee00425598aa} +PinnedAppBarApps : {Id=14d6962d-6eeb-4f48-8890-de55454bb136;Order=1, Id=86fcd49b-61a2-4701-b771-54728cd291fb;Order=2, Id=2a84919f-59d8-4441-a975-2a8c2643b741;Order=3, Id=ef56c0de-36fc-4ef8-b417-3d82ba9d073c;Order=4...} +PinnedMessageBarApps : {} +AppPresetMeetingList : {} +Description : +AllowSideLoading : True +AllowUserPinning : True + + Get all the Teams App Setup Policies. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsAppSetupPolicy + +Identity : Global +AppPresetList : {Id=d2c6f111-ffad-42a0-b65e-ee00425598aa} +PinnedAppBarApps : {Id=14d6962d-6eeb-4f48-8890-de55454bb136;Order=1, Id=86fcd49b-61a2-4701-b771-54728cd291fb;Order=2, Id=2a84919f-59d8-4441-a975-2a8c2643b741;Order=3, Id=ef56c0de-36fc-4ef8-b417-3d82ba9d073c;Order=4...} +PinnedMessageBarApps : {} +AppPresetMeetingList : {} +Description : +AllowSideLoading : True +AllowUserPinning : True + +Identity : Tag:Set-test +AppPresetList : {Id=d2c6f111-ffad-42a0-b65e-ee00425598aa} +PinnedAppBarApps : {Id=14d6962d-6eeb-4f48-8890-de55454bb136;Order=1, Id=86fcd49b-61a2-4701-b771-54728cd291fb;Order=2, Id=2a84919f-59d8-4441-a975-2a8c2643b741;Order=3, Id=ef56c0de-36fc-4ef8-b417-3d82ba9d073c;Order=4...} +PinnedMessageBarApps : {} +AppPresetMeetingList : {} +Description : +AllowSideLoading : True +AllowUserPinning : True + + Get all the Teams App Setup Policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsappsetuppolicy + + + + + + Get-CsTeamsCallHoldPolicy + Get + CsTeamsCallHoldPolicy + + Returns information about the policies configured to customize the call hold experience for Teams clients. + + + + Teams call hold policies are used to customize the call hold experience for teams clients. When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. + Assigning a Teams call hold policy to a user sets an audio file to be played during the duration of the hold. + + + + Get-CsTeamsCallHoldPolicy + + Filter + + Enables you to use wildcards when retrieving one or more Teams call hold policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "Tag:*" + + String + + String + + + None + + + + Get-CsTeamsCallHoldPolicy + + Identity + + Unique identifier of the Teams call hold policy to be retrieved. + To return the global policy, use this syntax: + `-Identity "Global"` + To return a policy configured at the per-user scope, use syntax like this: + `-Identity "ContosoPartnerCallHoldPolicy"` + You cannot use wildcard characters when specifying the Identity. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcards when retrieving one or more Teams call hold policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "Tag:*" + + String + + String + + + None + + + Identity + + Unique identifier of the Teams call hold policy to be retrieved. + To return the global policy, use this syntax: + `-Identity "Global"` + To return a policy configured at the per-user scope, use syntax like this: + `-Identity "ContosoPartnerCallHoldPolicy"` + You cannot use wildcard characters when specifying the Identity. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsCallHoldPolicy + + The command shown in Example 1 returns information for all the Teams call hold policies configured for use in the tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsCallHoldPolicy -Identity 'ContosoPartnerCallHoldPolicy' + + In Example 2, information is returned for a single Teams call hold policy: the policy with the Identity ContosoPartnerCallHoldPolicy. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTeamsCallHoldPolicy -Filter 'Tag:*' + + The command shown in Example 3 returns information about all the Teams call hold policies configured at the per-user scope. To do this, the command uses the Filter parameter and the filter value "Tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "Tag:". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy + + + New-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy + + + Set-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy + + + Grant-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy + + + Remove-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy + + + + + + Get-CsTeamsCallingPolicy + Get + CsTeamsCallingPolicy + + Returns information about the teams calling policies configured for use in your organization. Teams calling policies help determine which users are able to use calling functionality within Microsoft Teams. + + + + Returns information about the teams calling policies configured for use in your organization. Teams calling policies help determine which users are able to use calling functionality within Microsoft Teams and interoperability with Skype for Business. + + + + Get-CsTeamsCallingPolicy + + Identity + + Specify the TeamsCallingPolicy that you would like to retrieve. + + String + + String + + + None + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + Specify the TeamsCallingPolicy that you would like to retrieve. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsCallingPolicy -Identity SalesCallingPolicy + + Retrieves the calling policy with the Identity "SalesCallingPolicy". + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsCallingPolicy -Filter "tag:Sales*" + + Retrieves the calling policies with Identity starting with Sales. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy + + + Set-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy + + + Remove-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy + + + Grant-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy + + + New-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy + + + + + + Get-CsTeamsChannelsPolicy + Get + CsTeamsChannelsPolicy + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. + + + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. The Get-CsTeamsChannelsPolicy returns policies that are available for use within your organization. + + + + Get-CsTeamsChannelsPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsChannelsPolicy + + Identity + + Specify the unique name of a policy you would like to retrieve. Use one of the following values: + - `Global` + - The name of a custom policy you've created. If the value contains spaces, enclose the value in quotation marks ("). Note that the Identity value shows as `Tag:<Name>`, but the `<Name>` value also works. + - `Default`: This is a template that's used to populate the default property values when you create a new policy or to reset the property values in the global policy in case you delete it. Note that the Identity value shows as `Tag:Default`, but the `Default` value also works. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". + + String + + String + + + None + + + Identity + + Specify the unique name of a policy you would like to retrieve. Use one of the following values: + - `Global` + - The name of a custom policy you've created. If the value contains spaces, enclose the value in quotation marks ("). Note that the Identity value shows as `Tag:<Name>`, but the `<Name>` value also works. + - `Default`: This is a template that's used to populate the default property values when you create a new policy or to reset the property values in the global policy in case you delete it. Note that the Identity value shows as `Tag:Default`, but the `Default` value also works. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsChannelsPolicy + + Retrieves all policies related to Teams & Channels that are available in your organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy + + + + + + Get-CsTeamsClientConfiguration + Get + CsTeamsClientConfiguration + + This cmdlet allows IT admins to retrieve the effective configuration for their organization. + + + + The TeamsClientConfiguration allows IT admins to control the settings that can be accessed via Teams clients across their organization. This configuration includes settings like which third party cloud storage your organization allows, whether or not guest users can access the teams client, and how Surface Hub devices can interact with Skype for Business meetings. This cmdlet allows IT admins to retrieve the effective configuration for their organization. + Use in conjunction with Set-CsTeamsClientConfiguration to update the settings in your organization. + + + + Get-CsTeamsClientConfiguration + + Filter + + Microsoft internal use only. + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsClientConfiguration + + Identity + + The only valid input is Global, as you can have only one effective configuration in your organization. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Microsoft internal use only. + + String + + String + + + None + + + Identity + + The only valid input is Global, as you can have only one effective configuration in your organization. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsClientConfiguration + + Retrieves the effective client configuration in the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsclientconfiguration + + + + + + Get-CsTeamsComplianceRecordingApplication + Get + CsTeamsComplianceRecordingApplication + + Returns information about the application instances of policy-based recording applications that have been configured for administering automatic policy-based recording in your tenant. + + + + Policy-based recording applications are used in automatic policy-based recording scenarios. Automatic policy-based recording is only applicable to Microsoft Teams users. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to enforce compliance with the administrative set policy. + Instances of these applications are created using CsOnlineApplicationInstance cmdlets and are then associated with Teams recording policies. + Note that application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. Once the association is done, the Identity of these application instances becomes <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + Note that if neither the Identity nor the Filter parameters are specified, then Get-CsTeamsComplianceRecordingApplication returns all application instances of policy-based recording applications that are associated with a Teams recording policy. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. Please also refer to the documentation of CsTeamsComplianceRecordingPolicy cmdlets for further information. + + + + Get-CsTeamsComplianceRecordingApplication + + Filter + + Enables you to use wildcards when retrieving one or more application instances of policy-based recording applications. For example, to return all the application instances associated with Teams recording policies at the per-user scope, use this syntax: + -Filter "Tag:*" + + String + + String + + + None + + + LocalStore + + This parameter is reserved for internal Microsoft use. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsComplianceRecordingApplication + + Identity + + Unique identifier of the application instance of a policy-based recording application to be retrieved. + You cannot use wildcard characters when specifying the Identity. + Note that application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. Once the association is done, the Identity of these application instances becomes <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + This parameter is reserved for internal Microsoft use. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Enables you to use wildcards when retrieving one or more application instances of policy-based recording applications. For example, to return all the application instances associated with Teams recording policies at the per-user scope, use this syntax: + -Filter "Tag:*" + + String + + String + + + None + + + Identity + + Unique identifier of the application instance of a policy-based recording application to be retrieved. + You cannot use wildcard characters when specifying the Identity. + Note that application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. Once the association is done, the Identity of these application instances becomes <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + This parameter is reserved for internal Microsoft use. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingApplication + + The command shown in Example 1 returns information for all the application instances of policy-based recording applications associated with Teams recording policies. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144' + + In Example 2, information is returned for a single application instance of a policy-based recording application with the Identity Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingApplication -Filter 'Tag:*' + + The command shown in Example 3 returns all the application instances associated with Teams recording policies at the per-user scope. To do this, the command uses the Filter parameter and the filter value "Tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "Tag:". + + + + -------------------------- Example 4 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingApplication -Filter 'Tag:ContosoPartnerComplianceRecordingPolicy*' + + The command shown in Example 4 returns all the application instances associated with Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. To do this, the command uses the Filter parameter and the filter value "Tag:ContosoPartnerComplianceRecordingPolicy*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "Tag:ContosoPartnerComplianceRecordingPolicy". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + Get-CsTeamsComplianceRecordingPolicy + Get + CsTeamsComplianceRecordingPolicy + + Returns information about the policies configured for governing automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Teams recording policies are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to record audio, video and video-based screen sharing activity. + Note that if neither the Identity nor the Filter parameters are specified, then Get-CsTeamsComplianceRecordingPolicy returns all the Teams recording policies configured for use in the tenant. + Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. + + + + Get-CsTeamsComplianceRecordingPolicy + + Filter + + Enables you to use wildcards when retrieving one or more Teams recording policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "Tag:*" + + String + + String + + + None + + + LocalStore + + This parameter is reserved for internal Microsoft use. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsComplianceRecordingPolicy + + Identity + + Unique identifier of the Teams recording policy to be retrieved. To return the global policy, use this syntax: + -Identity "Global" + To return a policy configured at the per-user scope, use syntax like this: + -Identity "ContosoPartnerComplianceRecordingPolicy" + You cannot use wildcard characters when specifying the Identity. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + This parameter is reserved for internal Microsoft use. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Enables you to use wildcards when retrieving one or more Teams recording policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "Tag:*" + + String + + String + + + None + + + Identity + + Unique identifier of the Teams recording policy to be retrieved. To return the global policy, use this syntax: + -Identity "Global" + To return a policy configured at the per-user scope, use syntax like this: + -Identity "ContosoPartnerComplianceRecordingPolicy" + You cannot use wildcard characters when specifying the Identity. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + This parameter is reserved for internal Microsoft use. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingPolicy + + The command shown in Example 1 returns information for all the Teams recording policies configured for use in the tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' + + In Example 2, information is returned for a single Teams recording policy: the policy with the Identity ContosoPartnerComplianceRecordingPolicy. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingPolicy -Filter 'Tag:*' + + The command shown in Example 3 returns information about all the Teams recording policies configured at the per-user scope. To do this, the command uses the Filter parameter and the filter value "Tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "Tag:". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + Get-CsTeamsCustomBannerText + Get + CsTeamsCustomBannerText + + Enables administrators to configure a custom text on the banner displayed when compliance recording bots start recording the call. + + + + Returns all or a single instance of custom banner text. + + + + Get-CsTeamsCustomBannerText + + Identity + + > Applicable: Microsoft Teams + Policy instance name (optional). + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + Policy instance name (optional). + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsCustomBannerText + + This example gets the properties of all instances of the TeamsCustomBannerText. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsCustomBannerText -Identity CustomText + + This example gets the properties of the CustomText instance of TeamsCustomBannerText. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscustombannertext + + + Set-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext + + + New-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext + + + Remove-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext + + + + + + Get-CsTeamsEducationAssignmentsAppPolicy + Get + CsTeamsEducationAssignmentsAppPolicy + + This cmdlet allows you to retrieve the current values of your Education Assignments App Policy. + + + + This policy is controlled by Global and Teams Service Administrators, and is used to turn on/off certain features only related to the Assignments Service, which runs for tenants with EDU licenses. At this time, you can only modify your global policy - this policy type does not support user-level custom policies. + + + + Get-CsTeamsEducationAssignmentsAppPolicy + + Filter + + Not applicable - you cannot create custom policies, so will always be retrieving the global policy for your organization. + + String + + String + + + None + + + LocalStore + + Internal use only. + + + SwitchParameter + + + False + + + Tenant + + Internal use only. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsEducationAssignmentsAppPolicy + + Identity + + The only value supported is "Global" + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal use only. + + + SwitchParameter + + + False + + + Tenant + + Internal use only. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Not applicable - you cannot create custom policies, so will always be retrieving the global policy for your organization. + + String + + String + + + None + + + Identity + + The only value supported is "Global" + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal use only. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal use only. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsEducationAssignmentsAppPolicy + + Retrieves the policy in your organization + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationassignmentsapppolicy + + + + + + Get-CsTeamsEducationConfiguration + Get + CsTeamsEducationConfiguration + + This cmdlet is used to retrieve the organization-wide education configuration for Teams. + + + + This cmdlet is used to retrieve the organization-wide education configuration for Teams which contains settings that are applicable to education organizations. + You must be a Teams Service Administrator for your organization to run the cmdlet. + + + + Get-CsTeamsEducationConfiguration + + Filter + + Enables you to use wildcard characters in order to return a collection of team education configuration settings. + + String + + String + + + None + + + + Get-CsTeamsEducationConfiguration + + Identity + + The unique identifier of the configuration. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters in order to return a collection of team education configuration settings. + + String + + String + + + None + + + Identity + + The unique identifier of the configuration. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsEducationConfiguration + +Identity : Global +ParentGuardianPreferredContactMethod : Email +UpdateParentInformation : Enabled + + In this example, the organization has set the defaults as follows: + - Email is set as the preferred contact method for the parent communication invites. + - Capability to edit parent contact information by educators is enabled. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationconfiguration + + + Set-CsTeamsEducationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationconfiguration + + + + + + Get-CsTeamsEmergencyCallingPolicy + Get + CsTeamsEmergencyCallingPolicy + + + + + + This cmdlet returns one or more emergency calling policies. Emergency calling policy is used for the life cycle of emergency calling experience for the security desk and Teams client location experience. + + + + Get-CsTeamsEmergencyCallingPolicy + + Filter + + The Filter parameter allows you to limit the number of results based on filters on Identity you specify. + + String + + String + + + None + + + + Get-CsTeamsEmergencyCallingPolicy + + Identity + + Specify the policy that you would like to retrieve. + + String + + String + + + None + + + + + + Filter + + The Filter parameter allows you to limit the number of results based on filters on Identity you specify. + + String + + String + + + None + + + Identity + + Specify the policy that you would like to retrieve. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsEmergencyCallingPolicy + + Retrieves all emergency calling policies that are available in your scope. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsEmergencyCallingPolicy -Identity TestECP + + Retrieves an emergency calling policy with the identity TestECP + + + + -------------------------- Example 3 -------------------------- + Get-CsTeamsEmergencyCallingPolicy -Filter Test* + + Retrieves all emergency calling policies with Identity starting with Test. + + + + -------------------------- Example 4 -------------------------- + (Get-CsTeamsEmergencyCallingPolicy -Identity TestECP).ExtendedNotifications + +EmergencyDialString : 112 +NotificationGroup : alert2@contoso.com +NotificationDialOutNumber : +NotificationMode : ConferenceUnMuted + +EmergencyDialString : 911 +NotificationGroup : alert3@contoso.com +NotificationDialOutNumber : +14255551234 +NotificationMode : NotificationOnly + + This example displays extended notifications set on emergency calling policy with the identity TestECP. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy + + + New-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy + + + Grant-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy + + + Remove-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy + + + Set-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy + + + + + + Get-CsTeamsEventsPolicy + Get + CsTeamsEventsPolicy + + Returns information about the Teams Events policy. Note that this policy is currently still in preview. + + + + Returns information about the Teams Events policy. TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. + + + + Get-CsTeamsEventsPolicy + + Filter + + Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. + + String + + String + + + None + + + + Get-CsTeamsEventsPolicy + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + + + + Filter + + Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsEventsPolicy + + Returns information for all Teams Events policies available for use in the tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsEventsPolicy -Identity Global + + Returns information for Teams Events policy with identity "Global". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseventspolicy + + + + + + Get-CsTeamsExternalAccessConfiguration + Get + CsTeamsExternalAccessConfiguration + + This cmdlet returns the current settings of your organization. + + + + Retrieves the current Teams External Access Configuration in the organization. + + + + Get-CsTeamsExternalAccessConfiguration + + Identity + + The only value accepted is Global + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + Internal Microsoft use. + + String + + String + + + None + + + + + + Filter + + Internal Microsoft use. + + String + + String + + + None + + + Identity + + The only value accepted is Global + + XdsIdentity + + XdsIdentity + + + None + + + + + + None + + + + + + + + + + TeamsExternalAccessConfiguration.Cmdlets.TeamsExternalAccessConfiguration + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsExternalAccessConfiguration + + In this example, we retrieve the Teams External Access Configuration in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsexternalaccessconfiguration + + + + + + Get-CsTeamsFeedbackPolicy + Get + CsTeamsFeedbackPolicy + + Use this cmdlet to retrieve the current Teams Feedback policies (the ability to send feedback about Teams to Microsoft and whether they receive the survey) in the organization. + + + + Retrieves the current Teams Feedback policies (the ability to send feedback about Teams to Microsoft and whether they receive the survey) in the organization. + + + + Get-CsTeamsFeedbackPolicy + + Filter + + Internal Microsoft use + + String + + String + + + None + + + + Get-CsTeamsFeedbackPolicy + + Identity + + The unique identifier of the policy. + + String + + String + + + None + + + + + + Filter + + Internal Microsoft use + + String + + String + + + None + + + Identity + + The unique identifier of the policy. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsFeedbackPolicy + + In this example, we retrieve all the existing Teams feedback policies in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfeedbackpolicy + + + + + + Get-CsTeamsFilesPolicy + Get + CsTeamsFilesPolicy + + Get a list of all pre-configured policy instances related to teams files. + + + + This cmdlet retrieves information about one or more teams files policies that have been configured for use in your organization. teams files policies are used by the organization to manage files-related features such as third party storage provider for files from teams. + + + + Get-CsTeamsFilesPolicy + + Filter + + This parameter accepts a wildcard string and returns all teams files policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured teams files policy instances (excluding forest default "Global") available to use by the tenant admins. + + String + + String + + + None + + + + Get-CsTeamsFilesPolicy + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all teams files policies available for use are returned. + + String + + String + + + None + + + + + + Filter + + This parameter accepts a wildcard string and returns all teams files policies with identities matching that string. For example, a Filter value of Tag:* will return all preconfigured teams files policy instances (excluding forest default "Global") available to use by the tenant admins. + + String + + String + + + None + + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. If this parameter is omitted, all teams files policies available for use are returned. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsFilesPolicy + + In Example 1, the Get-CsTeamsFilesPolicy cmdlet is called without any additional parameters; this returns a collection of all the teams files policies configured for use in your organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsFilesPolicy -Identity TranscriptionDisabled + + In Example 2, the Get-CsTeamsFilesPolicy cmdlet is used to return the per-user teams files policy that has an Identity TranscriptionDisabled. Because identities are unique, this command will never return more than one item. + + + + -------------------------- Example 3 -------------------------- + Get-CsTeamsFilesPolicy -Filter "tag:*" + + Example 3 uses the Filter parameter to return all the teams files policies that have been configured at the per-user scope. The filter value "tag:*" tells the Get-CsTeamsFilesPolicy cmdlet to return only those policies that have an Identity that begins with the string value "tag:". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy + + + + + + Get-CsTeamsFirstPartyMeetingTemplateConfiguration + Get + CsTeamsFirstPartyMeetingTemplateConfiguration + + This cmdlet fetches the first-party meeting templates stored on the tenant. + + + + Fetches the list of first-party templates on the tenant. Each template object contains its list of meeting options, the name of the template, and its ID. + This is a read-only configuration. + + + + Get-CsTeamsFirstPartyMeetingTemplateConfiguration + + Identity + + > Applicable: Microsoft Teams + This parameter can be used to fetch a specific instance of the configuration. + Note: This configuration is read only and will only have the Global instance. + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + This parameter can be used to fetch a specific instance of the configuration. + Note: This configuration is read only and will only have the Global instance. + + String + + String + + + None + + + + + + + + + + + + Example 1 - Fetching all first party meeting templates on the tenant + PS C:\> Get-CsTeamsFirstPartyMeetingTemplateConfiguration + +Identity : Global +TeamsMeetingTemplates : {default, firstparty_30d773c0-1b4e-4bf6-970b-73f544c054bb, + firstparty_399f69a3-c482-41bf-9cf7-fcdefe269ce6, + firstparty_64c92390-c8a2-471e-96d9-4ee8f6080155...} +Description : The `TeamsMeetingTemplates` property contains the meeting template details: + +TeamsMeetingOptions : {SelectedSensitivityLabel, AutoAdmittedUsers, AllowPstnUsersToBypassLobby, + EntryExitAnnouncementsEnabled...} +Description : Townhall +Name : firstparty_21f91ef7-6265-4064-b78b-41ab66889d90 +Category : + +TeamsMeetingOptions : {AutoRecordingEnabled, AllowMeetingChat, PresenterOption} +Description : Virtual appointment +Name : firstparty_e514e598-fba6-4e1f-b8b3-138dd3bca748 +Category : + + Fetches all the first-party templates on the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsFirstPartyMeetingTemplateConfiguration + + + Get-CsTeamsMeetingTemplateConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplateconfiguration + + + + + + Get-CsTeamsMediaConnectivityPolicy + Get + CsTeamsMediaConnectivityPolicy + + This cmdlet retrieves all Teams media connectivity policies for the current tenant. + + + + This cmdlet retrieves all Teams media connectivity policies for the current tenant. + + + + Get-CsTeamsMediaConnectivityPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + + Get-CsTeamsMediaConnectivityPolicy + + Identity + + The identity of the Teams Media Connectivity Policy. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + The identity of the Teams Media Connectivity Policy. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsMediaConnectivityPolicy + +Identity DirectConnection +-------- ---------------- +Tag:Test Enabled + + This example retrieves the Teams media connectivity policies and shows the result as identity tag and "DirectConnection" value. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMediaConnectivityPolicy + + + New-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy + + + Remove-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy + + + Set-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy + + + Grant-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy + + + + + + Get-CsTeamsMeetingBrandingPolicy + Get + CsTeamsMeetingBrandingPolicy + + The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. + + + + The `Get-CsTeamsMeetingBrandingPolicy` cmdlet enables you to return information about all the meeting branding policies that have been configured for use in your organization. + + + + Get-CsTeamsMeetingBrandingPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + + Get-CsTeamsMeetingBrandingPolicy + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: `-Identity global`. If this parameter is omitted, then all the meeting branding policies configured for use in your organization will be returned. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: `-Identity global`. If this parameter is omitted, then all the meeting branding policies configured for use in your organization will be returned. + + String + + String + + + None + + + + + + + TeamsMeetingBrandingPolicy.Cmdlets.TeamsMeetingBrandingPolicy + + + + + + + + + Available in Teams PowerShell Module 4.9.3 and later. + + + + + ----------------- Return all branding policies ----------------- + PS C:\> Get-CsTeamsMeetingBrandingPolicy + + In this example, the command returns a collection of all the teams meeting branding policies configured for use in your organization. + + + + ------------------- Return specified policy ------------------- + PS C:\> CsTeamsMeetingBrandingPolicy -Identity "policy test2" + + In this example, the command returns the meeting branding policy that has an Identity `policy test 2`. Because identities are unique, this command will never return more than one item. + + + + + + Get-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy + + + Grant-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy + + + New-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy + + + Remove-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy + + + Set-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy + + + + + + Get-CsTeamsMeetingConfiguration + Get + CsTeamsMeetingConfiguration + + The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their tenants. + + + + The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their tenants. Use this cmdlet to retrieve the configuration set in your organization. + + + + Get-CsTeamsMeetingConfiguration + + Identity + + The only valid input is "Global" + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + Internal Microsoft use + + String + + String + + + None + + + LocalStore + + Internal Microsoft use + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + + + + Filter + + Internal Microsoft use + + String + + String + + + None + + + Identity + + The only valid input is "Global" + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsMeetingConfiguration + + Returns the configuration set in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingconfiguration + + + + + + Get-CsTeamsMeetingPolicy + Get + CsTeamsMeetingPolicy + + The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users. + + + + The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users + Teams Meeting policies can be configured at the global and per-user scopes. The Get-CsTeamsMeetingPolicy cmdlet enables you to return information about all the meeting policies that have been configured for use in your organization. + + + + Get-CsTeamsMeetingPolicy + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + LocalStore + + {{ Fill LocalStore Description }} + + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + {{ Fill LocalStore Description }} + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsMeetingPolicy + + In Example 1, Get-CsTeamsMeetingPolicy is called without any additional parameters; this returns a collection of all the teams meeting policies configured for use in your organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsMeetingPolicy -Identity SalesPolicy + + In Example 2, Get-CsTeamsMeetingPolicy is used to return the per-user meeting policy that has an Identity SalesPolicy. Because identities are unique, this command will never return more than one item. + + + + -------------------------- Example 3 -------------------------- + Get-CsTeamsMeetingPolicy | Where-Object {$_.AllowMeetNow -eq $True} + + The preceding command returns a collection of all the meeting policies where the AllowMeetNow property is True. To do this, Get-CsTeamsMeetingPolicy is first called without any parameters in order to return a collection of all the policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only those policies where the AllowMeetNow property is equal to True. + + + + -------------------------- Example 4 -------------------------- + Get-CsTeamsMeetingPolicy -Identity Global | fl NewMeetingRecordingExpirationDays + +NewMeetingRecordingExpirationDays : 60 + + The above command returns expiration date setting currently applied on TMR. For more details, see: Auto-expiration of Teams meeting recordings (https://learn.microsoft.com/microsoftteams/cloud-recording#auto-expiration-of-teams-meeting-recordings). + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy + + + + + + Get-CsTeamsMeetingTemplateConfiguration + Get + CsTeamsMeetingTemplateConfiguration + + This cmdlet fetches the custom meeting templates stored on the tenant. + + + + Fetches the list of custom templates on the tenant. Each template object contains its list of meeting options, the name of the template, and its ID. + + + + Get-CsTeamsMeetingTemplateConfiguration + + Identity + + > Applicable: Microsoft Teams + This parameter can be used to fetch a specific instance of the configuration. + Note: This configuration is read only and will only have the Global instance. + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + This parameter can be used to fetch a specific instance of the configuration. + Note: This configuration is read only and will only have the Global instance. + + String + + String + + + None + + + + + + + + + + + + Example 1 - Fetching all custom meeting templates on the tenant + PS C:\> Get-CsTeamsMeetingTemplateConfiguration + +Identity : Global +TeamsMeetingTemplates : {default, customtemplate_1cb7073a-8b19-4b5d-a3a6-14737d006969, + customtemplate_21ecf22c-eb1a-4f05-93e0-555b994ebeb5, + customtemplate_0b9c1f57-01ec-4b8a-b4c2-08bd1c01e6ba...} +Description : The `TeamsMeetingTemplates` property contains the meeting template details: + +TeamsMeetingOptions : {SelectedSensitivityLabel, AutoAdmittedUsers, AllowPstnUsersToBypassLobby, + EntryExitAnnouncementsEnabled...} +Description : Custom Template 1 +Name : customtemplate_1cb7073a-8b19-4b5d-a3a6-14737d006969 +Category : + +TeamsMeetingOptions : {AutoRecordingEnabled, AllowMeetingChat, PresenterOption} +Description : Custom Template 2 +Name : customtemplate_21ecf22c-eb1a-4f05-93e0-555b994ebeb5 +Category : + + Fetches all the custom templates on the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMeetingTemplateConfiguration + + + Get-CsTeamsFirstPartyMeetingTemplateConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfirstpartymeetingtemplateconfiguration + + + + + + Get-CsTeamsMeetingTemplatePermissionPolicy + Get + CsTeamsMeetingTemplatePermissionPolicy + + Fetches the TeamsMeetingTemplatePermissionPolicy. This policy can be used to hide meeting templates from users and groups. + + + + Fetches the instances of the policy. Each policy object contains a property called `HiddenMeetingTemplates`.This array contains the list of meeting template IDs that will be hidden by that instance of the policy. + + + + Get-CsTeamsMeetingTemplatePermissionPolicy + + Filter + + > Applicable: Microsoft Teams + This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + + + + + + + + + + -------------- Example 1 - Fetching all policies -------------- + PS C:\> Get-CsTeamsMeetingTemplatePermissionPolicy + +Identity : Global +HiddenMeetingTemplates : {} +Description : + +Identity : Tag:Foobar +HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056} +Description : + +Identity : Tag:dashbrd test +HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056} +Description : test + +Identity : Tag:Default +HiddenMeetingTemplates : {} +Description : + + Fetches all the policy instances currently available. + + + + -- Example 2 - Fetching a specific policy using its identity -- + PS C:\> Get-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar + +Identity : Tag:Foobar +HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056} +Description : + + Fetches an instance of a policy with known identity. + + + + ---------- Example 3 - Fetching policies using regex ---------- + PS C:\> Get-CsTeamsMeetingTemplatePermissionPolicy -Filter *Foo* + +Identity : Tag:Foobar +HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056} +Description : + + The `Filter` parameter can be used to fetch policy instances based on partial matches on Identity. + Note: The "Tag:" prefix can be ignored when specifying the identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMeetingTemplatePermissionPolicy + + + Set-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy + + + New-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy + + + Remove-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy + + + Grant-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy + + + + + + Get-CsTeamsMessagingConfiguration + Get + CsTeamsMessagingConfiguration + + TeamsMessagingConfiguration determines the messaging settings for users. This cmdlet returns your organization's current settings. + + + + TeamsMessagingConfiguration determines the messaging settings for users. + + + + Get-CsTeamsMessagingConfiguration + + Filter + + Enables you to use wildcard characters in order to return a collection of tenant messaging configuration settings. Because each tenant is limited to a single, global collection of the messaging configuration settings there is no need to use the Filter parameter. + + String + + String + + + None + + + + Get-CsTeamsMessagingConfiguration + + Identity + + Specifies the collection of tenant messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of messaging settings there is no need include this parameter when calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters in order to return a collection of tenant messaging configuration settings. Because each tenant is limited to a single, global collection of the messaging configuration settings there is no need to use the Filter parameter. + + String + + String + + + None + + + Identity + + Specifies the collection of tenant messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of messaging settings there is no need include this parameter when calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsMessagingConfiguration + + The command shown in Example 1 returns teams messaging configuration information for the current tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMessagingConfiguration + + + Set-CsTeamsMessagingConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmessagingconfiguration + + + + + + Get-CsTeamsMessagingPolicy + Get + CsTeamsMessagingPolicy + + The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. + + + + The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. This cmdlet lets you retrieve messaging policies that are available for use within your organization. + + + + Get-CsTeamsMessagingPolicy + + Identity + + Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity StudentMessagingPolicy. + If this parameter is not included, the Get-CsTeamsMessagingPolicy cmdlet will return a collection of all the teams messaging policies configured for use in your organization. + Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use wildcards when specifying a messaging policy. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + Enables you to use wildcard characters when specifying the policy (or policies) to be returned. + + String + + String + + + None + + + LocalStore + + {{ Fill LocalStore Description }} + + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + + + Filter + + Enables you to use wildcard characters when specifying the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity StudentMessagingPolicy. + If this parameter is not included, the Get-CsTeamsMessagingPolicy cmdlet will return a collection of all the teams messaging policies configured for use in your organization. + Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use wildcards when specifying a messaging policy. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + {{ Fill LocalStore Description }} + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + powershell +PS C:\> Get-CsTeamsMessagingPolicy + + In this example all teams messaging policies that have been configured in the organization will be returned. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy + + + + + + Get-CsTeamsMultiTenantOrganizationConfiguration + Get + CsTeamsMultiTenantOrganizationConfiguration + + This cmdlet retrieves all tenant settings for Multi-tenant Organizations + + + + The Get-CsTeamsMultiTenantOrganizationConfiguration cmdlet enables Teams meeting administrators to retrieve the Multi-Tenant Organization settings for their tenant. This includes the CopilotFromHomeTenant field, which specifies whether users in a Multi-Tenant Organization are allowed to utilize their Copilot license from their home tenant during cross-tenant meetings. + + + + Get-CsTeamsMultiTenantOrganizationConfiguration + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsMultiTenantOrganizationConfiguration + + Retrieves tenant's Multi-tenant Organization Configuration, including CopilotFromHomeTenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmultitenantorganizationconfiguration + + + Set-CsTeamsMultiTenantOrganizationConfiguration + + + + + + + Get-CsTeamsNotificationAndFeedsPolicy + Get + CsTeamsNotificationAndFeedsPolicy + + Retrieves information about the Teams Notification and Feeds policy configured for use in the tenant. + + + + The Microsoft Teams notifications and feeds policy allows administrators to manage how notifications and activity feeds are handled within Teams. This policy includes settings that control the types of notifications users receive, how they are delivered, and which activities are highlighted in their feeds. + + + + Get-CsTeamsNotificationAndFeedsPolicy + + Filter + + A filter that is not expressed in the standard wildcard language. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + Get-CsTeamsNotificationAndFeedsPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + Filter + + A filter that is not expressed in the standard wildcard language. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsNotificationAndFeedsPolicy + + The command shown above returns information of all Teams NotificationAndFeedsPolicy that have been configured for use in the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsnotificationandfeedspolicy + + + + + + Get-CsTeamsPersonalAttendantPolicy + Get + CsTeamsPersonalAttendantPolicy + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Returns information about the Teams personal attendant policies configured for use in your organization. Teams personal attendant policies help determine which users are able to use personal attendant and its functionalities within Microsoft Teams. + + + + Returns information about the Teams personal attendant policies configured for use in your organization. Teams personal attendant policies help determine which users are able to use personal attendant and its functionalities within Microsoft Teams. + + + + Get-CsTeamsPersonalAttendantPolicy + + Identity + + Specify the TeamsPersonalAttendantPolicy that you would like to retrieve. + + String + + String + + + None + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + + + + Identity + + Specify the TeamsPersonalAttendantPolicy that you would like to retrieve. + + String + + String + + + None + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy + + Retrieves the personal attendant policy with the Identity "SalesPersonalAttendantPolicy". + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsPersonalAttendantPolicy -Filter "tag:Sales*" + + Retrieves the personal attendant policies with Identity starting with Sales. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamspersonalattendantpolicy + + + New-CsTeamsPersonalAttendantPolicy + + + + Set-CsTeamsPersonalAttendantPolicy + + + + Grant-CsTeamsPersonalAttendantPolicy + + + + Remove-CsTeamsPersonalAttendantPolicy + + + + + + + Get-CsTeamsRecordingRollOutPolicy + Get + CsTeamsRecordingRollOutPolicy + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. + + + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. This policy would be deprecated over time as this is only to allow IT admins to phase the roll out of this breaking change. + The Get-CsTeamsRecordingRollOutPolicy cmdlet enables you to return information about all the CsTeamsRecordingRollOutPolicy that have been configured for use in your organization. + This command is available from Teams powershell module 6.1.1-preview and above. + + + + Get-CsTeamsRecordingRollOutPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + + Get-CsTeamsRecordingRollOutPolicy + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. + + String + + String + + + None + + + + + + None + + + + + + + + + + TeamsRecordingRollOutPolicy.Cmdlets.TeamsRecordingRollOutPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsRecordingRollOutPolicy + + In Example 1, Get-CsTeamsRecordingRollOutPolicy is called without any additional parameters; this returns a collection of all the CsTeamsRecordingRollOutPolicy configured for use in your organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsrecordingrolloutpolicy + + + + + + Get-CsTeamsSharedCallingRoutingPolicy + Get + CsTeamsSharedCallingRoutingPolicy + + Use the Get-CsTeamsSharedCallingRoutingPolicy cmdlet to get Teams shared calling routing policy information. Teams shared calling routing policy is used to configure shared calling. + + + + TeamsSharedCallingRoutingPolicy is used to configure shared calling. + + + + Get-CsTeamsSharedCallingRoutingPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + + Get-CsTeamsSharedCallingRoutingPolicy + + Identity + + Unique identifier of the Teams shared calling routing policy to be retrieved. + You cannot use wildcard characters when specifying the Identity. If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsSharedCallingRoutingPolicy returns all the Teams shared calling routing policies configured for use in the organization. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + Unique identifier of the Teams shared calling routing policy to be retrieved. + You cannot use wildcard characters when specifying the Identity. If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsSharedCallingRoutingPolicy returns all the Teams shared calling routing policies configured for use in the organization. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsSharedCallingRoutingPolicy + + The command shown in Example 1 returns information for all the Teams shared calling routing policies configured for use in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsSharedCallingRoutingPolicy -Identity "Seattle" + + In Example 2, information is returned for a single Teams shared calling routing policy; the policy with Identity Seattle. + + + + -------------------------- Example 3 -------------------------- + Get-CsTeamsSharedCallingRoutingPolicy -Filter "tag:*" + + The command shown in Example 3 returns information about all the Teams shared calling routing policies configured at the per-user scope. + + + + -------------------------- Example 4 -------------------------- + Get-CsTeamsSharedCallingRoutingPolicy -Identity Global + + The command shown in Example 4 returns information about the Global policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy + + + Set-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy + + + Grant-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy + + + Remove-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy + + + New-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy + + + + + + Get-CsTeamsShiftsPolicy + Get + CsTeamsShiftsPolicy + + This cmdlet allows you to get properties of a TeamsShiftPolicy instance, including user's Teams off shift warning message-specific settings. + + + + This cmdlet allows you to get properties of a TeamsShiftPolicy instance. Use this to get the policy name and Teams off shift warning message-specific settings (ShiftNoticeMessageType, ShiftNoticeMessageCustom, ShiftNoticeFrequency, AccessGracePeriodMinutes). + + + + Get-CsTeamsShiftsPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + + Get-CsTeamsShiftsPolicy + + Identity + + > Applicable: Microsoft Teams + Policy instance name. Optional. + + XdsIdentity + + XdsIdentity + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + Policy instance name. Optional. + + XdsIdentity + + XdsIdentity + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsPolicy + + Gets the properties of all instances of the TeamsShiftPolicy. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsShiftsPolicy -Identity OffShiftAccessMessage1Always + + Gets the properties of the OffShiftAccessMessage1Always instance of the TeamsShiftPolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamsshiftspolicy + + + Set-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy + + + New-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy + + + Remove-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy + + + Grant-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy + + + + + + Get-CsTeamsSipDevicesConfiguration + Get + CsTeamsSipDevicesConfiguration + + This cmdlet is used to retrieve the organization-wide Teams SIP devices configuration. + + + + This cmdlet is used to retrieve the organization-wide Teams SIP devices configuration which contains settings that are applicable to SIP devices connected to Teams using Teams Sip Gateway. + To execute the cmdlet, you need to hold a role within your organization such as Global Reader, Teams Administrator, or Teams Communication Administrator. + + + + Get-CsTeamsSipDevicesConfiguration + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsSipDevicesConfiguration + +Identity : Global +BulkSignIn : Enabled + + In this example, the organization has Bulk SignIn enabled for their SIP devices. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssipdevicesconfiguration + + + Set-CsTeamsSipDevicesConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssipdevicesconfiguration + + + + + + Get-CsTeamsTemplatePermissionPolicy + Get + CsTeamsTemplatePermissionPolicy + + Fetches the TeamsTemplatePermissionPolicy. This policy can be used to hide Teams templates from users and groups. + + + + Fetches the instances of the policy. Each policy object contains a property called `HiddenTemplates`.This array contains the list of Teams template IDs that will be hidden by that instance of the policy. + + + + Get-CsTeamsTemplatePermissionPolicy + + Filter + + This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. + + String + + String + + + None + + + + Get-CsTeamsTemplatePermissionPolicy + + Identity + + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + + + + Filter + + This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. + + String + + String + + + None + + + Identity + + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + + + + None + + + + + + + + + + TeamsTemplatePermissionPolicy.Cmdlets.TeamsTemplatePermissionPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS >Get-CsTeamsTemplatePermissionPolicy + +Identity HiddenTemplates Description +-------- --------------- ----------- +Global {com.microsoft.teams.template.CoordinateIncidentResponse} +Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} + + Fetches all the policy instances currently available. + + + + -------------------------- Example 2 -------------------------- + PS >Get-CsTeamsTemplatePermissionPolicy -Identity Foobar + +Identity HiddenTemplates Description +-------- --------------- ----------- +Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} + + Fetches an instance of a policy with known identity. + + + + -------------------------- Example 3 -------------------------- + PS >Get-CsTeamsTemplatePermissionPolicy -Filter *Foo* + +Identity HiddenTemplates Description +-------- --------------- ----------- +Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} + + The `Filter` parameter can be used to fetch policy instances based on partial matches on Identity. + Note: The "Tag:" prefix can be ignored when specifying the identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy + + + New-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy + + + Remove-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy + + + Set-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy + + + + + + Get-CsTeamsUpdateManagementPolicy + Get + CsTeamsUpdateManagementPolicy + + Use this cmdlet to retrieve the current Teams Update Management policies in the organization. + + + + The Teams Update Management Policy allows admins to specify if a given user is enabled to preview features in Teams. + + + + Get-CsTeamsUpdateManagementPolicy + + Filter + + This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. + + String + + String + + + None + + + + Get-CsTeamsUpdateManagementPolicy + + Identity + + The unique identifier of the policy. + + String + + String + + + None + + + + + + Filter + + This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. + + String + + String + + + None + + + Identity + + The unique identifier of the policy. + + String + + String + + + None + + + + + + None + + + + + + + + + + TeamsUpdateManagementPolicy.Cmdlets.TeamsUpdateManagementPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsUpdateManagementPolicy + + In this example, we retrieve all the existing Teams Update Management policies in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupdatemanagementpolicy + + + + + + Get-CsTeamsUpgradeConfiguration + Get + CsTeamsUpgradeConfiguration + + Returns information related to managing the upgrade to Teams from Skype for Business. + + + + TeamsUpgradeConfiguration is used in conjunction with TeamsUpgradePolicy. The settings in TeamsUpgradeConfiguration allow administrators to configure whether users subject to upgrade and who are running on Windows clients should automatically download the Teams app. It also allows administrators to determine which application Office 365 users should use to join Skype for Business meetings. + Separate instances of TeamsUpgradeConfiguration exist in Office 365 and Skype for Business Server. - TeamsUpgradeConfiguration in Office 365 applies to any user who does not have an on-premises Skype for Business account. - TeamsUpgradeConfiguration in Skype for Business Server can used to manage on-premises users in a hybrid environment. In on-premises, only the DownloadTeams property is available. + The DownloadTeams property allows admins to control whether the Skype for Business client should automatically download the Teams app in the background. This setting is only honored for users on Windows clients, and only if TeamsUpgradePolicy for the user meets either of these conditions: - NotifySfbUser=true, or - Mode=TeamsOnly Otherwise, this setting is ignored. + The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings, even after the user has been upgraded to Teams. Allowed values are: SkypeMeetingsApp and NativeLimitedClient. "NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded, only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer want to install Skype for Business on their users' computers. This property is only available when configuring TeamsUpgradeConfiguration in Office 365. It is not honored for users homed on-premises in Skype for Business Server. + + + + Get-CsTeamsUpgradeConfiguration + + Identity + + {{Fill Identity Description}} + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Do not use + + + SwitchParameter + + + False + + + Tenant + + {{Fill Tenant Description}} + + Guid + + Guid + + + None + + + + + + Identity + + {{Fill Identity Description}} + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Do not use + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + {{Fill Tenant Description}} + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + These settings are only honored by newer versions of Skype for Business clients. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsUpgradeConfiguration + + The above cmdlet lists the properties of TeamsUpgradeConfiguration. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skype/get-csteamsupgradeconfiguration + + + Set-CsTeamsUpgradeConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration + + + Get-CsTeamsUpgradePolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy + + + Grant-CsTeamsUpgradePolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy + + + Migration and interoperability guidance for organizations using Teams together with Skype for Business + https://learn.microsoft.com/MicrosoftTeams/migration-interop-guidance-for-teams-with-skype + + + + + + Get-CsTeamsVdiPolicy + Get + CsTeamsVdiPolicy + + The Get-CsTeamsVdiPolicy cmdlet enables you to return infomration about all the Vdi policies that have been configured for use in your organization. + + + + The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. + Teams Vdi policies can be configured at the global and per-user scopes. + + + + Get-CsTeamsVdiPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + + Get-CsTeamsVdiPolicy + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. + + String + + String + + + None + + + + + + None + + + + + + + + + + TeamsVdiPolicy.Cmdlets.TeamsVdiPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsVdiPolicy + + In Example 1, Get-CsTeamsVdiPolicy is called without any additional parameters; this returns a collection of all the teams meeting policies configured for use in your organization. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsVdiPolicy -Identity SalesPolicy + + In Example 2, Get-CsTeamsVdiPolicy is used to return the per-user meeting policy that has an Identity SalesPolicy. Because identites are unique, this command will never return more than one item. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTeamsVdiPolicy | where-Object {$_.VDI2Optimization -eq "Enabled"} + + The preceding command returns a collection of all the meeting policies where the VDI2Optimization property is Enabled. To do this, Get-CsTeamsVdiPolicy is first called without any parameters in order to return a collection of all the policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only those policies where the VDI2Optimization property is equal to Enabled. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvdipolicy + + + + + + Get-CsTeamsVirtualAppointmentsPolicy + Get + CsTeamsVirtualAppointmentsPolicy + + This cmdlet is used to fetch policy instances of TeamsVirtualAppointmentsPolicy. + + + + Fetches instances of TeamsVirtualAppointmentsPolicy. Each policy object contains a property called `EnableSmsNotifications`. This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment meeting template. + + + + Get-CsTeamsVirtualAppointmentsPolicy + + Filter + + This parameter can be used to fetch policy instances based on partial matches on the Identity field. + + String + + String + + + None + + + + Get-CsTeamsVirtualAppointmentsPolicy + + Identity + + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + + + + Filter + + This parameter can be used to fetch policy instances based on partial matches on the Identity field. + + String + + String + + + None + + + Identity + + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + + + + System.String + + + + + + + + + + TeamsVirtualAppointmentsPolicy.Cmdlets.TeamsVirtualAppointmentsPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsVirtualAppointmentsPolicy + +Identity EnableSmsNotifications +-------- ---------------------- +Global True +Tag:sms-enabled True +Tag:sms-disabled False + + Fetches all the policy instances currently available. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsVirtualAppointmentsPolicy -Identity sms-enabled + +Identity EnableSmsNotifications +-------- ---------------------- +Tag:sms-enabled True + + Fetches an instance of a policy with a known identity. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTeamsVirtualAppointmentsPolicy -Filter *sms* + +Identity EnableSmsNotifications +-------- ---------------------- +Tag:sms-enabled True +Tag:sms-disabled False + + The `Filter` parameter can be used to fetch policy instances based on partial matches on Identity. + Note: The "Tag:" prefix can be ignored when specifying the identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy + + + New-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy + + + Remove-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy + + + Set-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy + + + Grant-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy + + + + + + Get-CsTeamsVoiceApplicationsPolicy + Get + CsTeamsVoiceApplicationsPolicy + + Use the Get-CsTeamsVoiceApplicationsPolicy cmdlet to get Teams voice applications policy information. TeamsVoiceApplications policy governs what permissions the supervisors/users have over auto attendants and call queues. + + + + TeamsVoiceApplicationsPolicy is used for Supervisor Delegated Administration which allows tenant admins to permit certain users to make changes to auto attendant and call queue configurations. + + + + Get-CsTeamsVoiceApplicationsPolicy + + Filter + + Enables you to use wildcards when retrieving one or more Teams voice applications policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "tag:*" + + String + + String + + + None + + + + Get-CsTeamsVoiceApplicationsPolicy + + Identity + + Unique identifier of the Teams voice applications policy to be retrieved. To return the global policy, use this syntax: + -Identity global + To return a policy configured at the per-user scope, use syntax like this: + -Identity "SDA-Allow-All" + You cannot use wildcard characters when specifying the Identity. + If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsVoiceApplicationsPolicy returns all the Teams voice applications policies configured for use in the tenant. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcards when retrieving one or more Teams voice applications policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "tag:*" + + String + + String + + + None + + + Identity + + Unique identifier of the Teams voice applications policy to be retrieved. To return the global policy, use this syntax: + -Identity global + To return a policy configured at the per-user scope, use syntax like this: + -Identity "SDA-Allow-All" + You cannot use wildcard characters when specifying the Identity. + If neither the Identity nor the Filter parameters are specified, then Get-CsTeamsVoiceApplicationsPolicy returns all the Teams voice applications policies configured for use in the tenant. + + String + + String + + + None + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Get-CsTeamsVoiceApplicationsPolicy + + The command shown in Example 1 returns information for all the Teams voice applications policies configured for use in the tenant. + + + + -------------------------- EXAMPLE 2 -------------------------- + Get-CsTeamsVoiceApplicationsPolicy -Identity "SDA-Allow-All" + + In Example 2, information is returned for a single Teams voice applications policy; the policy with the Identity SDA-Allow-All. + + + + -------------------------- EXAMPLE 3 -------------------------- + Get-CsTeamsVoiceApplicationsPolicy -Filter "tag:*" + + The command shown in Example 3 returns information about all the Teams voice applications policies configured at the per-user scope. To do this, the command uses the Filter parameter and the filter value "tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "tag:". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy + + + Set-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy + + + Grant-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy + + + Remove-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy + + + New-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy + + + + + + Get-CsTeamsWorkLocationDetectionPolicy + Get + CsTeamsWorkLocationDetectionPolicy + + This cmdlet is used to fetch policy instances of TeamsWorkLocationDetectionPolicy. + + + + Fetches instances of TeamsWorkLocationDetectionPolicy. Each policy object contains a property called `EnableWorkLocationDetection`. This setting allows your organization to collect the work location of users when they connect, interact, or are detected near your organization's networks and devices. It also captures the geographic location information users share from personal and mobile devices. This gives users the ability to consent to the use of this location data to set their current work location.Microsoft collects this information to provide users with a consistent location-based experience and to improve the hybrid work experience in Microsoft 365 according to the Microsoft Privacy Statement (https://go.microsoft.com/fwlink/?LinkId=521839). + + + + Get-CsTeamsWorkLocationDetectionPolicy + + Filter + + This parameter can be used to fetch policy instances based on partial matches on the Identity field. + + String + + String + + + None + + + + Get-CsTeamsWorkLocationDetectionPolicy + + Identity + + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + + + + Filter + + This parameter can be used to fetch policy instances based on partial matches on the Identity field. + + String + + String + + + None + + + Identity + + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + + + + System.String + + + + + + + + + + TeamsWorkLocationDetectionPolicy.Cmdlets.TeamsWorkLocationDetectionPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsWorkLocationDetectionPolicy + +Identity EnableWorkLocationDetection +-------- ---------------------- +Global False +Tag:wld-policy1 True +Tag:wld-policy2 False + + Fetches all the policy instances currently available. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsWorkLocationDetectionPolicy -Identity wld-policy1 + +Identity EnableWorkLocationDetection +-------- ---------------------- +Tag:wld-policy1 True + + Fetches an instance of a policy with a known identity. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTeamsWorkLocationDetectionPolicy -Filter *wld* + +Identity EnableWorkLocationDetection +-------- ---------------------- +Tag:wld-policy1 True +Tag:wld-policy2 False + + The `Filter` parameter can be used to fetch policy instances based on partial matches on Identity. + Note: The "Tag:" prefix can be ignored when specifying the identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy + + + New-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy + + + Remove-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy + + + Set-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy + + + Grant-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy + + + + + + Get-CsTenantNetworkSite + Get + CsTenantNetworkSite + + Returns information about the network site setting in the tenant. Tenant network site is used for Location Based Routing. + + + + A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. + A best practice for Location Bsed Routing (LBR) is to create a separate site for each location which has unique PSTN connectivity. Each network site must be associated with a network region. Sites may be created as LBR or non-LBR enabled. A non-LBR enabled site may be created to allow LBR enabled users to make PSTN calls when they roam to that site. Note that network sites may also be used for emergency calling enablement and configuration. + Location Based Routing is a feature which allows PSTN toll bypass to be restricted for users based upon policy and the user's geographic location at the time of an incoming or outgoing PSTN call. + Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in O365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. + + + + Get-CsTenantNetworkSite + + Filter + + Enables you to use wildcard characters when indicating the site (or sites) to be returned. + + String + + String + + + None + + + + Get-CsTenantNetworkSite + + Identity + + The Identity parameter is a unique identifier for the site. + + String + + String + + + None + + + + Get-CsTenantNetworkSite + + IncludePhoneNumbers + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the site (or sites) to be returned. + + String + + String + + + None + + + Identity + + The Identity parameter is a unique identifier for the site. + + String + + String + + + None + + + IncludePhoneNumbers + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + + + + None + + + + + + + + + + Identity + + + The Identity of the site. + + + + + Description + + + The description of the site. + + + + + NetworkRegionID + + + The network region ID of the site. + + + + + LocationPolicyID + + + The ID of the location policy assigned to the site. + + + + + SiteAddress + + + This parameter is reserved for internal Microsoft use. + + + + + NetworkSiteID + + + The ID of the network site. + + + + + OnlineVoiceRoutingPolicyTagID + + + The ID of the online voice routing policy assigned to the site. + + + + + EnableLocationBasedRouting + + + Boolean stating whether Location-Based Routing is enabled on the site. + + + + + EmergencyCallRoutingPolicyTagID + + + The ID of the Teams emergency call routing policy assigned to the site. + + + + + EmergencyCallingPolicyTagID + + + The ID of the Teams emergency calling policy assigned to the site. + + + + + NetworkRoamingPolicyTagID + + + The ID of the Teams network roaming policy assigned to the site. + + + + + EmergencyCallRoutingPolicyName + + + The name of the Teams emergency call routing policy assigned to the site. + + + + + EmergencyCallingPolicyName + + + The name of the Teams emergency calling policy assigned to the site. + + + + + NetworkRoamingPolicyName + + + The name of the Teams network roaming policy assigned to the site. + + + + + PhoneNumbers + + + This parameter is reserved for internal Microsoft use. + + + + + + The parameter IncludePhoneNumbers was introduced in Teams PowerShell Module 5.5.0. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTenantNetworkSite + + The command shown in Example 1 returns the list of network sites for the current tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTenantNetworkSite -Identity siteA + + The command shown in Example 2 returns the network site within the scope of siteA. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTenantNetworkSite -Filter "Los Angeles" + + The command shown in Example 3 returns the network site that matches the specified filter. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite + + + New-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite + + + Remove-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite + + + Set-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite + + + + + + Grant-CsExternalAccessPolicy + Grant + CsExternalAccessPolicy + + Enables you to assign an external access policy to a user or a group of users. + + + + This cmdlet was introduced in Lync Server 2010. + When you install Microsoft Teams or Skype for Business Server, your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. + That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: + 1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation will not automatically provide users with this capability. Instead, you must enable federation, and then assign users an external access policy that gives them the right to communicate with federated users. + 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration). + 3. Communicate with people who have SIP accounts with a public instant messaging service such as Skype. + 4. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. + When you install Skype for Business Server, a global external access policy is automatically created for you. In addition to this global policy, you can use the New-CsExternalAccessPolicy cmdlet to create additional external access policies configured at either the site or the per-user scope. + When a policy is created at the site scope, it is automatically assigned to the site in question; for example, an external access policy with the Identity site:Redmond will automatically be assigned to the Redmond site. By contrast, policies created at the per-user scope are not automatically assigned to anyone. Instead, these policies must be explicitly assigned to a user or a group of users. Assigning per-user policies is the job of the Grant-CsExternalAccessPolicy cmdlet. + Note that per-user policies always take precedent over site policies and the global policy. For example, suppose you create a per-user policy that allows communication with federated users, and you assign that policy to Ken Myer. As long as that policy is in force, Ken will be allowed to communicate with federated users even if this type of communication is not allowed by Ken's site policy or by the global policy. That's because the settings in the per-user policy take precedence. + + + + Grant-CsExternalAccessPolicy + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. + + Fqdn + + Fqdn + + + None + + + PassThru + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + Grant-CsExternalAccessPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. + + Fqdn + + Fqdn + + + None + + + PassThru + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + Grant-CsExternalAccessPolicy + + Identity + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Identity of the user account the policy should be assigned to. User Identities can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + In addition, you can use the asterisk (*) wildcard character when specifying the user Identity. For example, the Identity "* Smith" returns all the users with a display name that ends with the string value " Smith." + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. + + Fqdn + + Fqdn + + + None + + + PassThru + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + DomainController + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to specify the fully qualified domain name (FQDN) of a domain controller to be contacted when assigning the new policy. If this parameter is not specified, then the Grant-CsExternalAccessPolicy cmdlet will contact the first available domain controller. + + Fqdn + + Fqdn + + + None + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Identity of the user account the policy should be assigned to. User Identities can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + In addition, you can use the asterisk (*) wildcard character when specifying the user Identity. For example, the Identity "* Smith" returns all the users with a display name that ends with the string value " Smith." + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsExternalAccessPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams, Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondAccessPolicy has a PolicyName equal to RedmondAccessPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName parameter to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. + Grant-CsExternalAccessPolicy accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts pipelined input of user objects. + + + + + + + Output types + + + By default, Grant-CsExternalAccessPolicy does not return a value or object. + However, if you include the PassThru parameter, the cmdlet will return instances of the Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object. + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Grant-CsExternalAccessPolicy -Identity "Ken Myer" -PolicyName RedmondAccessPolicy + + Example 1 assigns the external access policy RedmondAccessPolicy to the user with the Active Directory display name Ken Myer. + + + + -------------------------- EXAMPLE 2 -------------------------- + Get-CsUser -LdapFilter "l=Redmond" | Grant-CsExternalAccessPolicy -PolicyName RedmondAccessPolicy + + The command shown in Example 2 assigns the external access policy RedmondAccessPolicy to all the users who work in the city of Redmond. To do this, the command first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a collection of all the users who work in Redmond; the filter value "l=Redmond" limits returned data to those users who work in the city of Redmond (the l in the filter, a lowercase L, represents the locality). That collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy RedmondAccessPolicy to each user in the collection. + + + + -------------------------- EXAMPLE 3 -------------------------- + Get-CsUser -LdapFilter "Title=Sales Representative" | Grant-CsExternalAccessPolicy -PolicyName SalesAccessPolicy + + In Example 3, all the users who have the job title "Sales Representative" are assigned the external access policy SalesAccessPolicy. To perform this task, the command first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a collection of all the Sales Representatives; the filter value "Title=Sales Representative" restricts the returned collection to users who have the job title "Sales Representative". This filtered collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy SalesAccessPolicy to each user in the collection. + + + + -------------------------- EXAMPLE 4 -------------------------- + Get-CsUser -Filter {ExternalAccessPolicy -eq $Null} | Grant-CsExternalAccessPolicy -PolicyName BasicAccessPolicy + + The command shown in Example 4 assigns the external access policy BasicAccessPolicy to all the users who have not been explicitly assigned a per-user policy. (That is, users currently being governed by a site policy or by the global policy.) To do this, the Get-CsUser cmdlet and the Filter parameter are used to return the appropriate set of users; the filter value {ExternalAccessPolicy -eq $Null} limits the returned data to user accounts where the ExternalAccessPolicy property is equal to (-eq) a null value ($Null). By definition, ExternalAccessPolicy will be null only if users have not been assigned a per-user policy. + + + + -------------------------- EXAMPLE 5 -------------------------- + Get-CsUser -OU "ou=US,dc=litwareinc,dc=com" | Grant-CsExternalAccessPolicy -PolicyName USAccessPolicy + + Example 5 assigns the external access policy USAccessPolicy to all the users who have accounts in the US organizational unit (OU). The command starts off by calling the Get-CsUser cmdlet and the OU parameter; the parameter value "ou=US,dc=litwareinc,dc=com" limits the returned data to user accounts found in the US OU. The returned collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy USAccessPolicy to each user in the collection. + + + + -------------------------- EXAMPLE 6 -------------------------- + Get-CsUser | Grant-CsExternalAccessPolicy -PolicyName $Null + + Example 6 unassigns any per-user external access policy previously assigned to any of the users enabled for Skype for Business Server. To do this, the command calls the Get-CsUser cmdlet (without any additional parameters) in order to return a collection of all the users enabled for Skype for Business Server. That collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which uses the syntax "`-PolicyName $Null`" to remove any per-user external access policy previously assigned to these users. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + Get-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy + + + New-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Remove-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy + + + Set-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + + + + Grant-CsTeamsAIPolicy + Grant + CsTeamsAIPolicy + + This cmdlet applies an instance of the Teams AI policy to users or groups in a tenant. + + + + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + This cmdlet applies an instance of the Teams AI policy to users or groups in a tenant. + Passes in the `Identity` of the policy instance in the `PolicyName` parameter and the user identifier in the `Identity` parameter or the group name in the `Group` parameter. One of either `Identity` or `Group` needs to be passed. + + + + Grant-CsTeamsAIPolicy + + Global + + This is the equivalent to `-Identity Global`. + + + SwitchParameter + + + False + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + + Grant-CsTeamsAIPolicy + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsAIPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: testuser@test.onmicrosoft.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + This is the equivalent to `-Identity Global`. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: testuser@test.onmicrosoft.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsAIPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com + + Assigns a given policy to a user. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsAIPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test + + Assigns a given policy to a group. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsAIPolicy -Global -PolicyName Test + + Assigns a given policy to the tenant. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Grant-CsTeamsAIPolicy -Global -PolicyName Test + + Note: Using $null in place of a policy name can be used to unassigned a policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsAIPolicy + + + New-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy + + + Remove-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy + + + Get-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy + + + Set-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy + + + + + + Grant-CsTeamsAppPermissionPolicy + Grant + CsTeamsAppPermissionPolicy + + As an admin, you can use app permission policies to allow or block apps for your users. + + + + NOTE : You can use this cmdlet to assign a specific custom policy to a user. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Permission Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. + This is only applicable for tenants who have not been migrated to ACM or UAM. + + + + Grant-CsTeamsAppPermissionPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Do not use. + + Fqdn + + Fqdn + + + None + + + Global + + Resets the values in the global policy to match those in the provided (PolicyName) policy. Note that this means all users with no explicit policy assigned will have these new policy settings. + + + SwitchParameter + + + False + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsAppPermissionPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Do not use. + + Fqdn + + Fqdn + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsAppPermissionPolicy + + Identity + + The user to whom the policy should be assigned. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Do not use. + + Fqdn + + Fqdn + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + Do not use. + + Fqdn + + Fqdn + + + None + + + Global + + Resets the values in the global policy to match those in the provided (PolicyName) policy. Note that this means all users with no explicit policy assigned will have these new policy settings. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The user to whom the policy should be assigned. + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsAppPermissionPolicy -Identity "Ken Myer" -PolicyName StudentAppPermissionPolicy + + In this example, a user with identity "Ken Myer" is being assigned the StudentAppPermissionPolicy + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsapppermissionpolicy + + + + + + Grant-CsTeamsAppSetupPolicy + Grant + CsTeamsAppSetupPolicy + + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. + + + + NOTE : You can use this cmdlet to assign a specific custom policy to a user. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. + Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + + + + Grant-CsTeamsAppSetupPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Do not use. + + Fqdn + + Fqdn + + + None + + + Global + + Resets the values in the global policy to match those in the provided (PolicyName) policy. Note that this means all users with no explicit policy assigned will have these new policy settings. + + + SwitchParameter + + + False + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsAppSetupPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Do not use. + + Fqdn + + Fqdn + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsAppSetupPolicy + + Identity + + The user to whom the policy should be assigned. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Do not use. + + Fqdn + + Fqdn + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + Do not use. + + Fqdn + + Fqdn + + + None + + + Global + + Resets the values in the global policy to match those in the provided (PolicyName) policy. Note that this means all users with no explicit policy assigned will have these new policy settings. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The user to whom the policy should be assigned. + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsAppSetupPolicy -identity "Ken Myer" -PolicyName StudentAppSetupPolicy + + In this example, a user with identity "Ken Myer" is being assigned the StudentAppSetupPolicy + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsappsetuppolicy + + + + + + Grant-CsTeamsCallingPolicy + Grant + CsTeamsCallingPolicy + + Assigns a specific Teams Calling Policy to a user, a group of users, or sets the Global policy instance. + + + + The Teams Calling Policies designate how users are able to use calling functionality within Microsoft Teams. This cmdlet allows admins to grant user level policies to individual users, to members of a group, or to set the Global policy instance. + + + + Grant-CsTeamsCallingPolicy + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + + Grant-CsTeamsCallingPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsCallingPolicy + + Identity + + The user object to whom the policy is being assigned. + + String + + String + + + None + + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The user object to whom the policy is being assigned. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsCallingPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + + System.Object + + + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsTeamsCallingPolicy -identity user1@contoso.com -PolicyName SalesCallingPolicy + + Assigns the TeamsCallingPolicy called "SalesCallingPolicy" to user1@contoso.com + + + + -------------------------- Example 2 -------------------------- + Grant-CsTeamsCallingPolicy -Global -PolicyName SalesCallingPolicy + + Assigns the TeamsCallingPolicy called "SalesCallingPolicy" to the Global policy instance. This sets the parameters in the Global policy instance to the values found in the SalesCallingPolicy instance. + + + + -------------------------- Example 3 -------------------------- + Grant-CsTeamsCallingPolicy -Group sales@contoso.com -Rank 10 -PolicyName SalesCallingPolicy + + Assigns the TeamsCallingPolicy called "SalesCallingPolicy" to the members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy + + + Set-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy + + + Remove-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy + + + Get-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy + + + New-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy + + + + + + Grant-CsTeamsEventsPolicy + Grant + CsTeamsEventsPolicy + + Assigns Teams Events policy to a user, group of users, or the entire tenant. Note that this policy is currently still in preview. + + + + Assigns Teams Events policy to a user, group of users, or the entire tenant. + TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. + + + + Grant-CsTeamsEventsPolicy + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PassThru + + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEventsPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEventsPolicy + + Identity + + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PassThru + + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsEventsPolicy -Identity "user1@contoso.com" -Policy DisablePublicWebinars + + The command shown in Example 1 assigns the per-user Teams Events policy, DisablePublicWebinars, to the user with the user principal name (UPN) "user1@contoso.com". + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsEventsPolicy -Identity "user1@contoso.com" -Policy $null + + The command shown in Example 2 revokes the per-user Teams Events policy for the user with the user principal name (UPN) "user1@contoso.com". As a result, the user will be managed by the global Teams Events policy. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsEventsPolicy -Group "sales@contoso.com" -Rank 10 -Policy DisablePublicWebinars + + The command shown in Example 3 assigns the Teams Events policy, DisablePublicWebinars, to the members of the group "sales@contoso.com". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamseventspolicy + + + + + + Grant-CsTeamsFilesPolicy + Grant + CsTeamsFilesPolicy + + This cmdlet applies an instance of the Teams AI policy to users or groups in a tenant. + + + + The Teams Files Policy is used to modify files related settings in Microsoft teams. + + + + Grant-CsTeamsFilesPolicy + + Global + + This is the equivalent to `-Identity Global`. + + + SwitchParameter + + + False + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + + Grant-CsTeamsFilesPolicy + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsFilesPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: <testuser@test.onmicrosoft.com> + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + This is the equivalent to `-Identity Global`. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: <testuser@test.onmicrosoft.com> + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsFilesPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com + + Assigns a given policy to a user. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsFilesPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test + + Assigns a given policy to a group. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsFilesPolicy -Global -PolicyName Test + + Assigns a given policy to the tenant. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Grant-CsTeamsFilesPolicy -Global -PolicyName Test + + Note: Using $null in place of a policy name can be used to unassigned a policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy + + + Grant-CsTeamsFilesPolicy + + + + Remove-CsTeamsFilesPolicy + + + + Get-CsTeamsFilesPolicy + + + + Set-CsTeamsFilesPolicy + + + + New-CsTeamsFilesPolicy + + + + + + + Grant-CsTeamsMediaConnectivityPolicy + Grant + CsTeamsMediaConnectivityPolicy + + This cmdlet applies an instance of the Teams media connectivity policy to users or groups in a tenant. + + + + This cmdlet applies an instance of the Teams media connectivity policy to users or groups in a tenant. + Passes in the `Identity` of the policy instance in the `PolicyName` parameter and the user identifier in the `Identity` parameter or the group name in the `Group` parameter. One of either `Identity` or `Group` needs to be passed. + + + + Grant-CsTeamsMediaConnectivityPolicy + + Global + + This is the equivalent to `-Identity Global`. + + + SwitchParameter + + + False + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMediaConnectivityPolicy + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsMediaConnectivityPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: testuser@test.onmicrosoft.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + This is the equivalent to `-Identity Global`. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: testuser@test.onmicrosoft.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsMediaConnectivityPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com + + Assigns a given policy to a user. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsMediaConnectivityPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test + + Assigns a given policy to a group. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsMediaConnectivityPolicy -Global -PolicyName Test + + Assigns a given policy to the tenant. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Grant-CsTeamsMediaConnectivityPolicy -Global -PolicyName Test + + Note: Using $null in place of a policy name can be used to unassigned a policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsMediaConnectivityPolicy + + + New-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy + + + Remove-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy + + + Get-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy + + + Set-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy + + + + + + Grant-CsTeamsMeetingBrandingPolicy + Grant + CsTeamsMeetingBrandingPolicy + + Assigns a teams meeting branding policy at the per-user scope. The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. + + + + Assigns a teams meeting branding policy at the per-user scope. The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. + + + + Grant-CsTeamsMeetingBrandingPolicy + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign it to `$Null`. + + String + + String + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMeetingBrandingPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign it to `$Null`. + + String + + String + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsMeetingBrandingPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign it to `$Null`. + + String + + String + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + Identity + + The user you want to grant policy to. This can be specified as an SIP address, UserPrincipalName, or ObjectId. + + String + + String + + + None + + + + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The user you want to grant policy to. This can be specified as an SIP address, UserPrincipalName, or ObjectId. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign it to `$Null`. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + + Available in Teams PowerShell Module 4.9.3 and later. + + + + + --------- Assign TeamsMeetingBrandingPolicy to a user --------- + PS C:\> Grant-CsTeamsMeetingBrandingPolicy -identity "alice@contoso.com" -PolicyName "Policy Test" + + In this example, the command assigns TeamsMeetingBrandingPolicy with the name `Policy Test` to user `alice@contoso.com`. + + + + --------- Assign TeamsMeetingBrandingPolicy to a group --------- + PS C:\> Grant-CsTeamsMeetingBrandingPolicy -Group group@contoso.com -PolicyName "Policy Test" -Rank 1 + + In this example, the command will assign TeamsMeetingBrandingPolicy with the name `Policy Test` to group `group@contoso.com`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy + + + Get-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy + + + Grant-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy + + + New-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy + + + Remove-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy + + + Set-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy + + + + + + Grant-CsTeamsMeetingTemplatePermissionPolicy + Grant + CsTeamsMeetingTemplatePermissionPolicy + + This cmdlet applies an instance of the TeamsMeetingTemplatePermissionPolicy to users or groups in a tenant. + + + + This cmdlet applies an instance of the TeamsMeetingTemplatePermissionPolicy to users or groups in a tenant. + Pass in the `Identity` of the policy instance in the `PolicyName` parameter and the user identifier in the `Identity` parameter or the group name in the `Group` parameter. One of either `Identity` or `Group` needs to be passed. + + + + Grant-CsTeamsMeetingTemplatePermissionPolicy + + Force + + > Applicable: Microsoft Teams + Forces the policy assignment. + + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + This is the equivalent to `-Identity Global`. + + + SwitchParameter + + + False + + + Group + + > Applicable: Microsoft Teams + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + This is the identifier of the user that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + Specifies the Identity of the policy to assign to the user or group. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + Force + + > Applicable: Microsoft Teams + Forces the policy assignment. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + This is the equivalent to `-Identity Global`. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + > Applicable: Microsoft Teams + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + This is the identifier of the user that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + Specifies the Identity of the policy to assign to the user or group. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + + + + + + + ------------ Example 1 - Assign a policy to a user ------------ + PS> Grant-CsTeamsMeetingTemplatePermissionPolicy -PolicyName Foobar -Identity testuser@test.onmicrosoft.com + + Assigns a given policy to a user. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsMeetingTemplatePermissionPolicy + + + Get-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy + + + New-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy + + + Set-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy + + + Remove-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy + + + + + + Grant-CsTeamsPersonalAttendantPolicy + Grant + CsTeamsPersonalAttendantPolicy + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Assigns a specific Teams Personal Attendant Policy to a user, a group of users, or sets the Global policy instance. + + + + The Teams Personal Attendant Policies designate how users are able to use personal attendant and its functionalities within Microsoft Teams. This cmdlet allows admins to grant user level policies to individual users, to members of a group, or to set the Global policy instance. + + + + Grant-CsTeamsPersonalAttendantPolicy + + Identity + + The user object to whom the policy is being assigned. + + String + + String + + + None + + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsPersonalAttendantPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + + Grant-CsTeamsPersonalAttendantPolicy + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsPersonalAttendantPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + + Grant-CsTeamsPersonalAttendantPolicy + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsPersonalAttendantPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + Identity + + The user object to whom the policy is being assigned. + + String + + String + + + None + + + PolicyName + + The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsPersonalAttendantPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsTeamsPersonalAttendantPolicy -identity user1@contoso.com -PolicyName SalesPersonalAttendantPolicy + + Assigns the TeamsPersonalAttendantPolicy called "SalesPersonalAttendantPolicy" to user1@contoso.com + + + + -------------------------- Example 2 -------------------------- + Grant-CsTeamsPersonalAttendantPolicy -Global -PolicyName SalesPersonalAttendantPolicy + + Assigns the TeamsPersonalAttendantPolicy called "SalesPersonalAttendantPolicy" to the Global policy instance. This sets the parameters in the Global policy instance to the values found in the SalesPersonalAttendantPolicy instance. + + + + -------------------------- Example 3 -------------------------- + Grant-CsTeamsPersonalAttendantPolicy -Group sales@contoso.com -Rank 10 -PolicyName SalesPersonalAttendantPolicy + + Assigns the TeamsPersonalAttendantPolicy called "SalesPersonalAttendantPolicy" to the members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamspersonalattendantpolicy + + + New-CsTeamsPersonalAttendantPolicy + + + + Set-CsTeamsPersonalAttendantPolicy + + + + Get-CsTeamsPersonalAttendantPolicy + + + + Remove-CsTeamsPersonalAttendantPolicy + + + + + + + Grant-CsTeamsRecordingRollOutPolicy + Grant + CsTeamsRecordingRollOutPolicy + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. + + + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. This policy would be deprecated over time as this is only to allow IT admins to phase the roll out of this breaking change. + The Grant-CsTeamsRecordingRollOutPolicy cmdlet allows administrators to assign a CsTeamsRecordingRollOutPolicy at the per-user scope. + This command is available from Teams powershell module 6.1.1-preview and above. + + + + Grant-CsTeamsRecordingRollOutPolicy + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + + + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsMeetingPolicy -identity "Ken Myer" -PolicyName OrganizerPolicy + + In this example, a user with identity "Ken Myer" is being assigned the OrganizerPolicy + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsrecordingrolloutpolicy + + + + + + Grant-CsTeamsSharedCallingRoutingPolicy + Grant + CsTeamsSharedCallingRoutingPolicy + + Assigns a specific Teams shared calling routing policy to a user, a group of users, or sets the Global policy instance. + + + + The `Grant-CsTeamsSharedCallingRoutingPolicy` cmdlet assigns a Teams shared calling routing policy to a user, a group of users, or sets the Global policy instance. This cmdlet is used to manage how calls are routed in Microsoft Teams, allowing administrators to control call handling and routing behavior for users within their organization. + + + + Grant-CsTeamsSharedCallingRoutingPolicy + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your organization, except any that have an explicit policy assignment. To prevent a warning when you carry out this operation, specify this parameter. + + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + + Grant-CsTeamsSharedCallingRoutingPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsSharedCallingRoutingPolicy + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams shared calling routing policy. User identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's ObjectId or Identity. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your organization, except any that have an explicit policy assignment. To prevent a warning when you carry out this operation, specify this parameter. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams shared calling routing policy. User identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's ObjectId or Identity. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Seattle has a PolicyName equal to Seattle. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + + This cmdlet was introduced in Teams PowerShell Module 5.5.0. + + + + + -------------------------- EXAMPLE 1 -------------------------- + Grant-CsTeamsSharedCallingRoutingPolicy -Identity "user@contoso.com" -PolicyName "Seattle" + + The command shown in Example 1 assigns the per-user Teams shared calling routing policy instance Seattle to the user user@contoso.com. + + + + -------------------------- EXAMPLE 2 -------------------------- + Grant-CsTeamsSharedCallingRoutingPolicy -PolicyName "Seattle" -Global + + Example 2 assigns the per-user Teams shared calling routing policy instance Seattle to all the users in the organization, except any that have an explicit Teams shared calling routing policy assignment. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy + + + Get-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy + + + Set-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy + + + Remove-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy + + + New-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy + + + + + + Grant-CsTeamsShiftsPolicy + Grant + CsTeamsShiftsPolicy + + This cmdlet supports applying the TeamsShiftsPolicy to users in a tenant. + + + + This cmdlet enables admins to grant Shifts specific policy settings to users in their tenant. + + + + Grant-CsTeamsShiftsPolicy + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + The name of the TeamsShiftsPolicy instance that is being applied to the user. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + + Grant-CsTeamsShiftsPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The name of the TeamsShiftsPolicy instance that is being applied to the user. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsShiftsPolicy + + Identity + + > Applicable: Microsoft Teams + UserId to whom the policy is granted. Email id is acceptable. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The name of the TeamsShiftsPolicy instance that is being applied to the user. + + String + + String + + + None + + + + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + UserId to whom the policy is granted. Email id is acceptable. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The name of the TeamsShiftsPolicy instance that is being applied to the user. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsShiftsPolicy -Identity IsaiahL@mwtdemo.onmicrosoft.com -PolicyName OffShiftAccessMessage1Always + + Applies the OffShiftAccessMessage1Always instance of TeamsShiftsPolicy to one user in the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-teamsshiftspolicy + + + Get-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy + + + New-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy + + + Set-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy + + + Remove-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy + + + + + + Grant-CsTeamsVdiPolicy + Grant + CsTeamsVdiPolicy + + Assigns a teams Vdi policy at the per-user scope. The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. + + + + Assigns a teams Vdi policy at the per-user scope. The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. + + + + Grant-CsTeamsVdiPolicy + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + + Grant-CsTeamsVdiPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsVdiPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + String + + String + + + None + + + + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsVdiPolicy -identity "Ken Myer" -PolicyName RestrictedUserPolicy + + In this example, a user with identity "Ken Myer" is being assigned the RestrictedUserPolicy + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvdipolicy + + + + + + Grant-CsTeamsVirtualAppointmentsPolicy + Grant + CsTeamsVirtualAppointmentsPolicy + + This cmdlet applies an instance of the TeamsVirtualAppointmentsPolicy to users or groups in a tenant. + + + + This cmdlet applies an instance of the TeamsVirtualAppointmentsPolicy to users or groups in a tenant. + Passes in the `Identity` of the policy instance in the `PolicyName` parameter and the user identifier in the `Identity` parameter or the group name in the `Group` parameter. One of either `Identity` or `Group` needs to be passed. + + + + Grant-CsTeamsVirtualAppointmentsPolicy + + Global + + This is the equivalent to `-Identity Global`. + + + SwitchParameter + + + False + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + + Grant-CsTeamsVirtualAppointmentsPolicy + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsVirtualAppointmentsPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: testuser@test.onmicrosoft.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + This is the equivalent to `-Identity Global`. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: testuser@test.onmicrosoft.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsVirtualAppointmentsPolicy -PolicyName sms-enabled -Identity testuser@test.onmicrosoft.com + + Assigns a given policy to a user. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsVirtualAppointmentsPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName sms-enabled + + Assigns a given policy to a group. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsVirtualAppointmentsPolicy -Global -PolicyName sms-enabled + + Assigns a given policy to the tenant. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsVirtualAppointmentsPolicy -Global -PolicyName sms-enabled + + Note: Using $null in place of a policy name can be used to unassigned a policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy + + + Get-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy + + + New-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy + + + Set-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy + + + Remove-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy + + + + + + Grant-CsTeamsWorkLocationDetectionPolicy + Grant + CsTeamsWorkLocationDetectionPolicy + + This cmdlet applies an instance of the TeamsWorkLocationDetectionPolicy to users or groups in a tenant. + + + + This cmdlet applies an instance of the TeamsWorkLocationDetectionPolicy to users or groups in a tenant. + Passes in the `Identity` of the policy instance in the `PolicyName` parameter and the user identifier in the `Identity` parameter or the group name in the `Group` parameter. One of either `Identity` or `Group` needs to be passed. + + + + Grant-CsTeamsWorkLocationDetectionPolicy + + Global + + This is the equivalent to `-Identity Global`. + + + SwitchParameter + + + False + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + + Grant-CsTeamsWorkLocationDetectionPolicy + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsWorkLocationDetectionPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: testuser@test.onmicrosoft.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + This is the equivalent to `-Identity Global`. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: testuser@test.onmicrosoft.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsWorkLocationDetectionPolicy -PolicyName sms-policy -Identity testuser@test.onmicrosoft.com + + Assigns a given policy to a user. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsWorkLocationDetectionPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName wld-policy + + Assigns a given policy to a group. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsWorkLocationDetectionPolicy -Global -PolicyName wld-policy + + Assigns a given policy to the tenant. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsWorkLocationDetectionPolicy -Global -PolicyName wld-policy + + Note: Using $null in place of a policy name can be used to unassigned a policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy + + + Get-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy + + + New-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy + + + Set-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy + + + Remove-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy + + + + + + New-CsExternalAccessPolicy + New + CsExternalAccessPolicy + + Enables you to create a new external access policy. + + + + This cmdlet was introduced in Lync Server 2010. + For information about external access in Microsoft Teams, see Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access) and [Teams and Skype interoperability](https://learn.microsoft.com/microsoftteams/teams-skype-interop)for specific details. When you install Skype for Business Server your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. + That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: + 1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation alone will not provide users with this capability. Instead, you must enable federation and then assign users an external access policy that gives them the right to communicate with federated users. + 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). this policy setting only applies if acs federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration). + 3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. + 4. Communicate with people who have SIP accounts with a public instant messaging service such as Skype. + 5. (Microsoft Teams Only) Communicate with people who are using Teams with an account that's not managed by an organization. This policy only applies if Teams Consumer Federation has been enabled at the tenant level using the cmdlet Set-CsTenantFederationConfiguration (https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration)or Teams Admin Center under the External Access setting. + When you install Skype for Business Server, a global external access policy is automatically created for you. In addition to the global policy, you can also create custom external access policies at either the site or the per-user scope. If you create an external access policy at the site scope, that policy will automatically be assigned to the site upon creation. If you create an external access policy at the per-user scope, that policy will be created but will not be assigned to any users. To assign the policy to a user or group of users, use the Grant-CsExternalAccessPolicy cmdlet. + New external access policies can be created by using the New-CsExternalAccessPolicy cmdlet. Note that these policies can only be created at the site or the per-user scope; you cannot create a new policy at the global scope. In addition, you can have only one external access policy per site: if the Redmond site already has been assigned an external access policy you cannot create a second policy for the site. + The following parameters are not applicable to Skype for Business Online/Microsoft Teams: Description, EnableXmppAccess, Force, Identity, InMemory, PipelineVariable, and Tenant + + + + New-CsExternalAccessPolicy + + Identity + + Unique Identity to be assigned to the policy. New external access policies can be created at the site or per-user scope. + To create a new site policy, use the prefix "site:" and the name of the site as your Identity. + For example, use this syntax to create a new policy for the Redmond site: `-Identity site:Redmond.` + To create a new per-user policy, use an Identity similar to this: `-Identity SalesAccessPolicy.` + Note that you cannot create a new global policy; if you want to make changes to the global policy, use the Set-CsExternalAccessPolicy cmdlet instead. + Likewise, you cannot create a new site or per-user policy if a policy with that Identity already exists. If you need to make changes to an existing policy, use the Set-CsExternalAccessPolicy cmdlet. + + XdsIdentity + + XdsIdentity + + + None + + + AllowedExternalDomains + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Specifies the external domains allowed to communicate with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `AllowSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. + + List + + List + + + None + + + BlockedExternalDomains + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Specifies the external domains blocked from communicating with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `BlockSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. + + List + + List + + + None + + + CommunicationWithExternalOrgs + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Indicates how users assigned to the policy can communicate with external organizations (domains). This setting has 5 possible values: + - OrganizationDefault: users follow the federation settings specified in `TenantFederationConfiguration`. This is the default value. + - AllowAllExternalDomains: users are allowed to communicate with all domains. + - AllowSpecificExternalDomains: users can communicate with external domains listed in `AllowedExternalDomains`. + - BlockSpecificExternalDomains: users are blocked from communicating with domains listed in `BlockedExternalDomains`. + - BlockAllExternalDomains: users cannot communicate with any external domains. + + The setting is only applicable when `EnableFederationAccess` is set to true. This setting can only be modified in custom policies. In the Global (default) policy, it is fixed to `OrganizationDefault` and cannot be changed. + + String + + String + + + OrganizationDefault + + + Confirm + + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + EnableAcsFederationAccess + + > Applicable: Microsoft Teams + Indicates whether Teams meetings organized by the user can be joined by users of customer applications built using Azure Communication Services (ACS). This policy setting only applies if ACS Teams federation has been enabled at the tenant level using the cmdlet Set-CsTeamsAcsFederationConfiguration. Additionally, Azure Communication Services users would be able to call Microsoft 365 users that have assigned policies with enabled federation. + To enable for all users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to True. It can be disabled for selected users by assigning them a policy with federation disabled. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + + Boolean + + Boolean + + + True + + + EnableFederationAccess + + Indicates whether the user is allowed to communicate with people who have SIP accounts with a federated organization. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableOutsideAccess + + Indicates whether the user is allowed to connect to Skype for Business Server over the Internet, without logging on to the organization's internal network. The default value is False. + + Boolean + + Boolean + + + None + + + EnablePublicCloudAudioVideoAccess + + Indicates whether the user is allowed to conduct audio/video conversations with people who have SIP accounts with a public Internet connectivity provider such as MSN. When set to False, audio and video options in Skype for Business Server will be disabled any time a user is communicating with a public Internet connectivity contact. + + Boolean + + Boolean + + + None + + + EnableTeamsConsumerAccess + + (Microsoft Teams Only) Indicates whether the user is allowed to communicate with people who have who are using Teams with an account that's not managed by an organization. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableTeamsConsumerInbound + + (Microsoft Teams Only) Indicates whether the user is allowed to be discoverable by people who are using Teams with an account that's not managed by an organization. It also controls if people who have who are using Teams with an account that's not managed by an organization can start the communication with the user. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableTeamsSmsAccess + + Allows you to control whether users can have SMS text messaging capabilities within Teams. + Possible values: True, False + + Boolean + + Boolean + + + None + + + EnableXmppAccess + + Indicates whether the user is allowed to communicate with users who have SIP accounts with a federated XMPP (Extensible Messaging and Presence Protocol) partner. The default value is False. + + Boolean + + Boolean + + + None + + + FederatedBilateralChats + + This setting enables bi-lateral chats for the users included in the messaging policy. + Some organizations may want to restrict who users are able to message in Teams. While organizations have always been able to limit users' chats to only other internal users, organizations can now limit users' chat ability to only chat with other internal users and users in one other organization via the bilateral chat policy. + Once external access and bilateral policy is set up, users with the policy can be in external group chats only with a maximum of two organizations. When they try to create a new external chat with users from more than two tenants or add a user from a third tenant to an existing external chat, a system message will be shown preventing this action. + Users with bilateral policy applied are also removed from existing external group chats with more than two organizations. + This policy doesn't apply to meetings, meeting chats, or channels. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might occur when running the command. + + + SwitchParameter + + + False + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + + + SwitchParameter + + + False + + + RestrictTeamsConsumerAccessToExternalUserProfiles + + Defines if a user is restricted to collaboration with Teams Consumer (TFL) user only in Extended Directory + Possible values: True, False + + Boolean + + Boolean + + + None + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the new external access policy is being created. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your Skype for Business Online tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + AllowedExternalDomains + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Specifies the external domains allowed to communicate with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `AllowSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. + + List + + List + + + None + + + BlockedExternalDomains + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Specifies the external domains blocked from communicating with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `BlockSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. + + List + + List + + + None + + + CommunicationWithExternalOrgs + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Private Preview. + Indicates how users assigned to the policy can communicate with external organizations (domains). This setting has 5 possible values: + - OrganizationDefault: users follow the federation settings specified in `TenantFederationConfiguration`. This is the default value. + - AllowAllExternalDomains: users are allowed to communicate with all domains. + - AllowSpecificExternalDomains: users can communicate with external domains listed in `AllowedExternalDomains`. + - BlockSpecificExternalDomains: users are blocked from communicating with domains listed in `BlockedExternalDomains`. + - BlockAllExternalDomains: users cannot communicate with any external domains. + + The setting is only applicable when `EnableFederationAccess` is set to true. This setting can only be modified in custom policies. In the Global (default) policy, it is fixed to `OrganizationDefault` and cannot be changed. + + String + + String + + + OrganizationDefault + + + Confirm + + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + EnableAcsFederationAccess + + > Applicable: Microsoft Teams + Indicates whether Teams meetings organized by the user can be joined by users of customer applications built using Azure Communication Services (ACS). This policy setting only applies if ACS Teams federation has been enabled at the tenant level using the cmdlet Set-CsTeamsAcsFederationConfiguration. Additionally, Azure Communication Services users would be able to call Microsoft 365 users that have assigned policies with enabled federation. + To enable for all users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to True. It can be disabled for selected users by assigning them a policy with federation disabled. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + + Boolean + + Boolean + + + True + + + EnableFederationAccess + + Indicates whether the user is allowed to communicate with people who have SIP accounts with a federated organization. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableOutsideAccess + + Indicates whether the user is allowed to connect to Skype for Business Server over the Internet, without logging on to the organization's internal network. The default value is False. + + Boolean + + Boolean + + + None + + + EnablePublicCloudAudioVideoAccess + + Indicates whether the user is allowed to conduct audio/video conversations with people who have SIP accounts with a public Internet connectivity provider such as MSN. When set to False, audio and video options in Skype for Business Server will be disabled any time a user is communicating with a public Internet connectivity contact. + + Boolean + + Boolean + + + None + + + EnableTeamsConsumerAccess + + (Microsoft Teams Only) Indicates whether the user is allowed to communicate with people who have who are using Teams with an account that's not managed by an organization. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableTeamsConsumerInbound + + (Microsoft Teams Only) Indicates whether the user is allowed to be discoverable by people who are using Teams with an account that's not managed by an organization. It also controls if people who have who are using Teams with an account that's not managed by an organization can start the communication with the user. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableTeamsSmsAccess + + Allows you to control whether users can have SMS text messaging capabilities within Teams. + Possible values: True, False + + Boolean + + Boolean + + + None + + + EnableXmppAccess + + Indicates whether the user is allowed to communicate with users who have SIP accounts with a federated XMPP (Extensible Messaging and Presence Protocol) partner. The default value is False. + + Boolean + + Boolean + + + None + + + FederatedBilateralChats + + This setting enables bi-lateral chats for the users included in the messaging policy. + Some organizations may want to restrict who users are able to message in Teams. While organizations have always been able to limit users' chats to only other internal users, organizations can now limit users' chat ability to only chat with other internal users and users in one other organization via the bilateral chat policy. + Once external access and bilateral policy is set up, users with the policy can be in external group chats only with a maximum of two organizations. When they try to create a new external chat with users from more than two tenants or add a user from a third tenant to an existing external chat, a system message will be shown preventing this action. + Users with bilateral policy applied are also removed from existing external group chats with more than two organizations. + This policy doesn't apply to meetings, meeting chats, or channels. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique Identity to be assigned to the policy. New external access policies can be created at the site or per-user scope. + To create a new site policy, use the prefix "site:" and the name of the site as your Identity. + For example, use this syntax to create a new policy for the Redmond site: `-Identity site:Redmond.` + To create a new per-user policy, use an Identity similar to this: `-Identity SalesAccessPolicy.` + Note that you cannot create a new global policy; if you want to make changes to the global policy, use the Set-CsExternalAccessPolicy cmdlet instead. + Likewise, you cannot create a new site or per-user policy if a policy with that Identity already exists. If you need to make changes to an existing policy, use the Set-CsExternalAccessPolicy cmdlet. + + XdsIdentity + + XdsIdentity + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + + SwitchParameter + + SwitchParameter + + + False + + + RestrictTeamsConsumerAccessToExternalUserProfiles + + Defines if a user is restricted to collaboration with Teams Consumer (TFL) user only in Extended Directory + Possible values: True, False + + Boolean + + Boolean + + + None + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the new external access policy is being created. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your Skype for Business Online tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Input types + + + None. The New-CsExternalAccessPolicy cmdlet does not accept pipelined input. + + + + + + + Output types + + + Creates new instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + New-CsExternalAccessPolicy -Identity site:Redmond -EnableFederationAccess $True -EnableOutsideAccess $True + + The command shown in Example 1 creates a new external access policy that has the Identity site:Redmond; upon creation, this policy will automatically be assigned to the Redmond site. Note that this new policy sets both the EnableFederationAccess and the EnableOutsideAccess properties to True. + + + + -------------------------- Example 2 -------------------------- + Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $true +New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederationAccess $false + + In this example, the Global policy is updated to allow Teams-ACS federation for all users, then a new external access policy instance is created with Teams-ACS federation disabled and which can then be assigned to selected users for which Team-ACS federation will not be allowed. + + + + -------------------------- Example 3 -------------------------- + New-CsExternalAccessPolicy -Identity site:Redmond -EnableTeamsConsumerAccess $True -EnableTeamsConsumerInbound $False + + The command shown in Example 3 creates a new external access policy that has the Identity site:Redmond; upon creation, this policy will automatically be assigned to the Redmond site. Note that this new policy enables communication with people using Teams with an account that's not managed by an organization and limits this to only be initiated by people in your organization. This means that people using Teams with an account that's not managed by an organization will not be able to discover or start a conversation with people with this policy assigned. + + + + -------------------------- EXAMPLE 4 -------------------------- + $x = New-CsExternalAccessPolicy -Identity RedmondAccessPolicy -InMemory + +$x.EnableFederationAccess = $True + +$x.EnableOutsideAccess = $True + +Set-CsExternalAccessPolicy -Instance $x + + Example 4 demonstrates the use of the InMemory parameter; this parameter enables you to create an in-memory-only instance of an external access policy. After it has been created, you can modify the in-memory-only instance, then use the Set-CsExternalAccessPolicy cmdlet to transform the virtual policy into a real external access policy. + To do this, the first command in the example uses the New-CsExternalAccessPolicy cmdlet and the InMemory parameter to create a virtual policy with the Identity RedmondAccessPolicy; this virtual policy is stored in a variable named $x. The next three commands are used to modify two properties of the virtual policy: EnableFederationAccess and the EnableOutsideAccess. Finally, the last command uses the Set-CsExternalAccessPolicy cmdlet to create an actual per-user external access policy with the Identity RedmondAccessPolicy. If you do not call the Set-CsExternalAccessPolicy cmdlet, then the virtual policy will disappear as soon as you end your Windows PowerShell session or delete the variable $x. Should that happen, an external access policy with the Identity RedmondAccessPolicy will never be created. + + + + -------------------------- Example 5 -------------------------- + New-CsExternalAccessPolicy -Identity GranularFederationExample -CommunicationWithExternalOrgs "AllowSpecificExternalDomains" -AllowedExternalDomains @("example1.com", "example2.com") +Set-CsTenantFederationConfiguration -CustomizeFederation $true + + In this example, we create an ExternalAccessPolicy named "GranularFederationExample" that allows communication with specific external domains, namely `example1.com` and `example2.com`. The federation policy is set to restrict communication to only these allowed domains. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Get-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy + + + Grant-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + Remove-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy + + + Set-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + + + + New-CsOnlineVoicemailPolicy + New + CsOnlineVoicemailPolicy + + Creates a new Online Voicemail policy. + + + + Cloud Voicemail service provides organizations with voicemail deposit capabilities for Phone System implementation. + By default, users enabled for Phone System will be enabled for Cloud Voicemail. The Online Voicemail policy controls whether or not voicemail transcription, profanity masking for the voicemail transcriptions, translation for the voicemail transcriptions, and editing call answer rule settings are enabled for a user. The policies also specify the voicemail maximum recording length for a user and the primary and secondary voicemail system prompt languages. + - Voicemail transcription is enabled by default + - Transcription profanity masking is disabled by default + - Transcription translation is enabled by default + - Editing call answer rule settings is enabled by default + - Voicemail maximum recording length is set to 5 minutes by default + - Primary and secondary system prompt languages are set to null by default and the user's voicemail language setting is used + + Tenant admin would be able to create a customized online voicemail policy to match the organization's requirements. + + + + New-CsOnlineVoicemailPolicy + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnableEditingCallAnswerRulesSetting + + > Applicable: Microsoft Teams + Controls if editing call answer rule settings are enabled or disabled for a user. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscription + + > Applicable: Microsoft Teams + Allows you to disable or enable voicemail transcription. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscriptionProfanityMasking + + > Applicable: Microsoft Teams + Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscriptionTranslation + + > Applicable: Microsoft Teams + Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + MaximumRecordingLength + + > Applicable: Microsoft Teams + A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. + + Duration + + Duration + + + None + + + PostambleAudioFile + + > Applicable: Microsoft Teams + The audio file to play to the caller after the user's voicemail greeting has played and before the caller is allowed to leave a voicemail message. + + String + + String + + + None + + + PreambleAudioFile + + > Applicable: Microsoft Teams + The audio file to play to the caller before the user's voicemail greeting is played. + + String + + String + + + None + + + PreamblePostambleMandatory + + > Applicable: Microsoft Teams + Is playing the Pre- or Post-amble mandatory before the caller can leave a message. + + Boolean + + Boolean + + + False + + + PrimarySystemPromptLanguage + + > Applicable: Microsoft Teams + The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + + String + + String + + + None + + + SecondarySystemPromptLanguage + + > Applicable: Microsoft Teams + The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + + String + + String + + + None + + + ShareData + + > Applicable: Microsoft Teams + Specifies whether voicemail and transcription data are shared with the service for training and improving accuracy. Possible values are Defer and Deny. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnableEditingCallAnswerRulesSetting + + > Applicable: Microsoft Teams + Controls if editing call answer rule settings are enabled or disabled for a user. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscription + + > Applicable: Microsoft Teams + Allows you to disable or enable voicemail transcription. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscriptionProfanityMasking + + > Applicable: Microsoft Teams + Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscriptionTranslation + + > Applicable: Microsoft Teams + Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + MaximumRecordingLength + + > Applicable: Microsoft Teams + A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. + + Duration + + Duration + + + None + + + PostambleAudioFile + + > Applicable: Microsoft Teams + The audio file to play to the caller after the user's voicemail greeting has played and before the caller is allowed to leave a voicemail message. + + String + + String + + + None + + + PreambleAudioFile + + > Applicable: Microsoft Teams + The audio file to play to the caller before the user's voicemail greeting is played. + + String + + String + + + None + + + PreamblePostambleMandatory + + > Applicable: Microsoft Teams + Is playing the Pre- or Post-amble mandatory before the caller can leave a message. + + Boolean + + Boolean + + + False + + + PrimarySystemPromptLanguage + + > Applicable: Microsoft Teams + The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + + String + + String + + + None + + + SecondarySystemPromptLanguage + + > Applicable: Microsoft Teams + The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. Please see Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + + String + + String + + + None + + + ShareData + + > Applicable: Microsoft Teams + Specifies whether voicemail and transcription data are shared with the service for training and improving accuracy. Possible values are Defer and Deny. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsOnlineVoicemailPolicy -Identity "CustomOnlineVoicemailPolicy" -MaximumRecordingLength ([TimeSpan]::FromSeconds(60)) + + The command shown in Example 1 creates a per-user online voicemail policy CustomOnlineVoicemailPolicy with MaximumRecordingLength set to 60 seconds and other fields set to tenant level global value. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy + + + Get-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy + + + Set-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy + + + Remove-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy + + + Grant-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy + + + + + + New-CsTeamsAIPolicy + New + CsTeamsAIPolicy + + This cmdlet creates a Teams AI policy. + + + + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + This cmdlet creates a Teams AI policy. If you get an error that the policy already exists, it means that the policy already exists for your tenant. In this case, run Get-CsTeamsAIPolicy. + + + + New-CsTeamsAIPolicy + + Description + + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnrollFace + + Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. + + String + + String + + + Enabled + + + EnrollVoice + + Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. + + String + + String + + + Enabled + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + + + + New-CsTeamsAIPolicy + + Description + + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnrollFace + + Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. + + String + + String + + + Enabled + + + EnrollVoice + + Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. + + String + + String + + + Enabled + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + + + + + + Description + + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnrollFace + + Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. + + String + + String + + + Enabled + + + EnrollVoice + + Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. + + String + + String + + + Enabled + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsAIPolicy -Identity Test + + Creates a new Teams AI policy with the specified identity. The newly created policy with value will be printed on success. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsAIPolicy + + + Remove-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy + + + Get-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy + + + Set-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy + + + Grant-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy + + + + + + New-CsTeamsAppPermissionPolicy + New + CsTeamsAppPermissionPolicy + + As an admin, you can use app permission policies to allow or block apps for your users. + + + + NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. While the cmdlet may succeed, the changes aren't applied to the tenant. + As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Setup Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. This is only applicable for tenants who have not been migrated to ACM or UAM. + + + + New-CsTeamsAppPermissionPolicy + + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsapppermissionpolicy + + + + + + New-CsTeamsAppSetupPolicy + New + CsTeamsAppSetupPolicy + + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. + + + + NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. + Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + + + + New-CsTeamsAppSetupPolicy + + Identity + + Name of App setup policy. If empty, all Identities will be used by default. + + String + + String + + + None + + + AdditionalCustomizationApps + + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + + None + + + AllowSideLoading + + This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. + + Boolean + + Boolean + + + None + + + AllowUserPinning + + If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. + + Boolean + + Boolean + + + None + + + AppPresetList + + Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + + None + + + AppPresetMeetingList + + This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + + None + + + Confirm + + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + Description of the app setup policy. + + String + + String + + + None + + + PinnedAppBarApps + + Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that are needed the most by users and promote ease of access. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + + None + + + PinnedCallingBarApps + + Determines the list of apps that are pre pinned for a participant in Calls. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + + None + + + PinnedMessageBarApps + + Apps are pinned in messaging extensions and into the ellipsis menu. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + AdditionalCustomizationApps + + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + + None + + + AllowSideLoading + + This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. + + Boolean + + Boolean + + + None + + + AllowUserPinning + + If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. + + Boolean + + Boolean + + + None + + + AppPresetList + + Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + + None + + + AppPresetMeetingList + + This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + + None + + + Confirm + + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Description of the app setup policy. + + String + + String + + + None + + + Identity + + Name of App setup policy. If empty, all Identities will be used by default. + + String + + String + + + None + + + PinnedAppBarApps + + Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that are needed the most by users and promote ease of access. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + + None + + + PinnedCallingBarApps + + Determines the list of apps that are pre pinned for a participant in Calls. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + + None + + + PinnedMessageBarApps + + Apps are pinned in messaging extensions and into the ellipsis menu. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset + + + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp + + + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) + + Create a new TeamsAppSetupPolicy, if no parameters are specified, the Global Policy configuration is used by default. + + + + -------------------------- Example 2 -------------------------- + New-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -AllowSideLoading $true -AllowUserPinning $true + + Create a new TeamsAppSetupPolicy. Users can upload a custom app package in the Teams app because AllowSideLoading is set as True, and existing app pins can be added to the list of pinned apps because AllowUserPinning is set as True. + + + + -------------------------- Example 3 -------------------------- + # Set ActivityApp, ChatApp, TeamsApp as PinnedAppBarApps +$ActivityApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="14d6962d-6eeb-4f48-8890-de55454bb136"} +$ChatApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="86fcd49b-61a2-4701-b771-54728cd291fb"} +$TeamsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="2a84919f-59d8-4441-a975-2a8c2643b741"} +$PinnedAppBarApps = @($ActivityApp,$ChatApp,$TeamsApp) + +# Settings to pin these apps to the app bar in Teams client. +New-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -AllowUserPinning $true -PinnedAppBarApps $PinnedAppBarApps + + Create a new TeamsAppSetupPolicy and pin ActivityApp, ChatApp, TeamsApp apps to the app bar in Teams client by setting these apps as PinnedAppBarApps. + + + + -------------------------- Example 4 -------------------------- + # Set VivaConnectionsApp as PinnedMessageBarApps +$VivaConnectionsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp -Property @{Id="d2c6f111-ffad-42a0-b65e-ee00425598aa"} +$PinnedMessageBarApps = @($VivaConnectionsApp) +# Settings to pin these apps to the messaging extension in Teams client. +Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -AllowUserPinning $true -PinnedMessageBarApps $PinnedMessageBarApps + + Create a new TeamsAppSetupPolicy and pin VivaConnections app to the messaging extension in Teams client by setting these apps as PinnedMessageBarApps. + + + + -------------------------- Example 5 -------------------------- + # Set VivaConnectionsApp as AppPresetList +$VivaConnectionsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset -Property @{Id="d2c6f111-ffad-42a0-b65e-ee00425598aa"} +$AppPresetList = @($VivaConnectionsApp) +# Settings to install these apps in your users' personal Teams environment +Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -AllowSideLoading $true -AppPresetList $AppPresetList + + Create a new TeamsAppSetupPolicy and install VivaConnections App in users' personal Teams environment by setting these apps as AppPresetList. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsappsetuppolicy + + + + + + New-CsTeamsCallHoldPolicy + New + CsTeamsCallHoldPolicy + + Creates a new Teams call hold policy in your tenant. The Teams call hold policy is used to customize the call hold experience for Teams clients. + + + + Teams call hold policies are used to customize the call hold experience for teams clients. When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. + Assigning a Teams call hold policy to a user sets an audio file to be played during the duration of the hold. + + + + New-CsTeamsCallHoldPolicy + + Identity + + Unique identifier to be assigned to the new Teams call hold policy. + + String + + String + + + None + + + AudioFileId + + A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams call hold policy. + For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + StreamingSourceAuthType + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + StreamingSourceUrl + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AudioFileId + + A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams call hold policy. + For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier to be assigned to the new Teams call hold policy. + + String + + String + + + None + + + StreamingSourceAuthType + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + StreamingSourceUrl + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsCallHoldPolicy -Identity "ContosoPartnerTeamsCallHoldPolicy" -Description "country music" -AudioFileID "c65233-ac2a27-98701b-123ccc" + + The command shown in Example 1 creates a new, per-user Teams call hold policy with the Identity ContosoPartnerTeamsCallHoldPolicy. This policy is assigned the audio file ID: c65233-ac2a27-98701b-123ccc, which is the ID referencing an audio file that was uploaded using the Import-CsOnlineAudioFile cmdlet. + Any Microsoft Teams users who are assigned this policy will have their call holds customized such that the user being held will hear the audio file specified by AudioFileId. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy + + + Get-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy + + + Set-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy + + + Grant-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy + + + Remove-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + + + + New-CsTeamsCallingPolicy + New + CsTeamsCallingPolicy + + Use this cmdlet to create a new instance of a Teams Calling Policy. + + + + The Teams Calling Policy controls which calling and call forwarding features are available to users in Microsoft Teams. This cmdlet allows admins to create new policy instances. + + + + New-CsTeamsCallingPolicy + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + AIInterpreter + + > Applicable: Microsoft Teams + > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the AI Interpreter related features + Possible values: + - Disabled + - Enabled + + String + + String + + + Enabled + + + AllowCallForwardingToPhone + + > Applicable: Microsoft Teams + Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to any phone number. + + Boolean + + Boolean + + + None + + + AllowCallForwardingToUser + + > Applicable: Microsoft Teams + Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to other users in your tenant. + + Boolean + + Boolean + + + None + + + AllowCallGroups + + > Applicable: Microsoft Teams + Enables the user to configure call groups in the Microsoft Teams client and that inbound calls should be routed to call groups. + + Boolean + + Boolean + + + None + + + AllowCallRedirect + + > Applicable: Microsoft Teams + Setting this parameter enables local call redirection for SIP devices connecting via the Microsoft Teams SIP gateway. + Valid options are: - Enabled: Enables the user to redirect an incoming call. + - Disabled: The user is not enabled to redirect an incoming call. + + - UserOverride: This option is not available for use. + + String + + String + + + None + + + AllowCloudRecordingForCalls + + > Applicable: Microsoft Teams + Determines whether cloud recording is allowed in a user's 1:1 Teams or PSTN calls. Set this to True to allow the user to be able to record 1:1 calls. Set this to False to prohibit the user from recording 1:1 calls. + + Boolean + + Boolean + + + None + + + AllowDelegation + + > Applicable: Microsoft Teams + Enables the user to configure delegation in the Microsoft Teams client and that inbound calls to be routed to delegates; allows delegates to make outbound calls on behalf of the users for whom they have delegated permissions. + + Boolean + + Boolean + + + None + + + AllowPrivateCalling + + > Applicable: Microsoft Teams + Controls all calling capabilities in Teams. Turning this off will turn off all calling functionality in Teams. If you use Skype for Business for calling, this policy will not affect calling functionality in Skype for Business. + + Boolean + + Boolean + + + None + + + AllowSIPDevicesCalling + + > Applicable: Microsoft Teams + Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. + + Boolean + + Boolean + + + None + + + AllowTranscriptionForCalling + + > Applicable: Microsoft Teams + Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. + + Boolean + + Boolean + + + None + + + AllowVoicemail + + > Applicable: Microsoft Teams + Enables inbound calls to be routed to voicemail. + Valid options are: + - AlwaysEnabled: Calls are always forwarded to voicemail on unanswered after ringing for thirty seconds, regardless of the unanswered call forward setting for the user. + - AlwaysDisabled: Calls are never routed to voicemail, regardless of the call forward or unanswered settings for the user. Voicemail isn't available as a call forwarding or unanswered setting in Teams. + - UserOverride: Calls are forwarded to voicemail based on the call forwarding and/or unanswered settings for the user. + + String + + String + + + None + + + AllowWebPSTNCalling + + > Applicable: Microsoft Teams + Allows PSTN calling from the Team web client. + + Object + + Object + + + None + + + AutoAnswerEnabledType + + > Applicable: Microsoft Teams + Setting this parameter allows you to enable or disable auto-answer for incoming meeting invites on Teams Phones. This setting applies only to incoming meeting invites and does not include support for other call types. + Valid options are: + - Enabled: Auto-answer is enabled. + - Disabled: Auto-answer is disabled. This is the default setting. + + String + + String + + + Disabled + + + BusyOnBusyEnabledType + + > Applicable: Microsoft Teams + Setting this parameter lets you configure how incoming calls are handled when a user is already in a call or conference or has a call placed on hold. + Valid options are: + - Enabled: New or incoming calls will be rejected with a busy signal. + - Unanswered: The user's unanswered settings will take effect, such as routing to voicemail or forwarding to another user. + - Disabled: New or incoming calls will be presented to the user. + - UserOverride: Users can set their busy options directly from call settings in Teams app. + + String + + String + + + None + + + CallingSpendUserLimit + + > Applicable: Microsoft Teams + The maximum amount a user can spend on outgoing PSTN calls, including all calls made through Pay-as-you-go Calling Plans and any overages on plans with bundled minutes. + Possible values: any positive integer + + Long + + Long + + + None + + + CallRecordingExpirationDays + + > Applicable: Microsoft Teams + Sets the expiration of the recorded 1:1 calls. Default is 60 days. + + Long + + Long + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Copilot + + > Applicable: Microsoft Teams + Setting this parameter lets you control how Copilot is used during calls and if transcription is needed to be turned on and saved after the call. + Valid options are: - Enabled: Copilot can work with or without transcription during calls. This is the default value. + - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. + - Disabled: Copilot is disabled for calls. + + String + + String + + + Enabled + + + Description + + > Applicable: Microsoft Teams + Enables administrators to provide explanatory text about the calling policy. For example, the Description might indicate the users to whom the policy should be assigned. + + String + + String + + + None + + + EnableSpendLimits + + > Applicable: Microsoft Teams + This setting allows an admin to enable or disable spend limits on PSTN calls for their user base. + Possible values: + - True + - False + + Boolean + + Boolean + + + False + + + EnableWebPstnMediaBypass + + Determines if MediaBypass is enabled for PSTN calls on specified Web platforms. + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + InboundFederatedCallRoutingTreatment + + > Applicable: Microsoft Teams + Setting this parameter lets you control how inbound federated calls should be routed. + Valid options are: + - RegularIncoming: No changes are made to default inbound routing. This is the default setting. + - Unanswered: The inbound federated call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. + + - Voicemail: The inbound federated call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. + Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. + + String + + String + + + RegularIncoming + + + InboundPstnCallRoutingTreatment + + > Applicable: Microsoft Teams + Setting this parameter lets you control how inbound PSTN calls should be routed. + Valid options are: + - RegularIncoming: No changes are made to default inbound routing. This is the default setting. + - Unanswered: The inbound PSTN call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. + - Voicemail: The inbound PSTN call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. + - UserOverride: For now, setting the value to UserOverride is the same as RegularIncoming. + + Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. + + String + + String + + + RegularIncoming + + + LiveCaptionsEnabledTypeForCalling + + > Applicable: Microsoft Teams + Determines whether real-time captions are available for the user in Teams calls. + Valid options are: + - DisabledUserOverride: Allows the user to turn on live captions. + - Disabled: Prohibits the user from turning on live captions. + + String + + String + + + None + + + MusicOnHoldEnabledType + + > Applicable: Microsoft Teams + Setting this parameter allows you to turn on or turn off the music on hold when a caller is placed on hold. + Valid options are: + - Enabled: Music on hold is enabled. This is the default. + - Disabled: Music on hold is disabled. + - UserOverride: For now, setting the value to UserOverride is the same as Enabled. + + String + + String + + + Enabled + + + PopoutAppPathForIncomingPstnCalls + + > Applicable: Microsoft Teams + Setting this parameter allows you to set the PopoutForIncomingPstnCalls setting's URL path of the website to launch upon receiving incoming PSTN calls. This parameter accepts an HTTPS URL with less than 1024 characters. The URL can contain a `{phone}` placeholder that is replaced with the caller's PSTN number in E.164 format when launched. + + String + + String + + + "" + + + PopoutForIncomingPstnCalls + + > Applicable: Microsoft Teams + Setting this parameter allows you to control the tenant users' ability to launch an external website URL automatically in the browser window upon incoming PSTN calls for specific users or user groups. Valid options are Enabled and Disabled. + + String + + String + + + Disabled + + + PreventTollBypass + + > Applicable: Microsoft Teams + Setting this parameter to True will send calls through PSTN and incur charges rather than going through the network and bypassing the tolls. + > [!NOTE] > Do not set this parameter to True for Calling Plan or Operator Connect users as it will prevent successful call routing. This setting only works with Direct Routing which is configured to handle location-based routing restrictions. + + Boolean + + Boolean + + + None + + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a call, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + + + SpamFilteringEnabledType + + > Applicable: Microsoft Teams + Determines Spam filtering mode. + Possible values: + - Enabled: Spam Filtering is fully enabled. Both Basic and Captcha Interactive Voice Response (IVR) checks are performed. In case the call is considered spam, the user will get a "Spam Likely" notification in Teams. + - Disabled: Spam Filtering is completely disabled. No checks are performed. A "Spam Likely" notification will not appear. + - EnabledWithoutIVR: Spam Filtering is partially enabled. Captcha IVR checks are disabled. A "Spam Likely" notification will appear. A call might get dropped if it gets a high score from Basic checks. + + String + + String + + + None + + + VoiceSimulationInInterpreter + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the voice simulation feature while being AI interpreted. + Possible Values: + - Disabled + - Enabled + + String + + String + + + Disabled + + + ExplicitRecordingConsent + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + This setting controls whether users must provide or obtain explicit consent before recording a 1:1 PSTN or Teams call. When enabled, both parties will receive a notification, and consent must be given before recording starts. + Possible values: + - Enabled : Requires users to give and obtain explicit consent before starting a call recording. - Disabled : Users are not required to obtain explicit consent before recording starts. + + String + + String + + + Disabled + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AIInterpreter + + > Applicable: Microsoft Teams + > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the AI Interpreter related features + Possible values: + - Disabled + - Enabled + + String + + String + + + Enabled + + + AllowCallForwardingToPhone + + > Applicable: Microsoft Teams + Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to any phone number. + + Boolean + + Boolean + + + None + + + AllowCallForwardingToUser + + > Applicable: Microsoft Teams + Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to other users in your tenant. + + Boolean + + Boolean + + + None + + + AllowCallGroups + + > Applicable: Microsoft Teams + Enables the user to configure call groups in the Microsoft Teams client and that inbound calls should be routed to call groups. + + Boolean + + Boolean + + + None + + + AllowCallRedirect + + > Applicable: Microsoft Teams + Setting this parameter enables local call redirection for SIP devices connecting via the Microsoft Teams SIP gateway. + Valid options are: - Enabled: Enables the user to redirect an incoming call. + - Disabled: The user is not enabled to redirect an incoming call. + + - UserOverride: This option is not available for use. + + String + + String + + + None + + + AllowCloudRecordingForCalls + + > Applicable: Microsoft Teams + Determines whether cloud recording is allowed in a user's 1:1 Teams or PSTN calls. Set this to True to allow the user to be able to record 1:1 calls. Set this to False to prohibit the user from recording 1:1 calls. + + Boolean + + Boolean + + + None + + + AllowDelegation + + > Applicable: Microsoft Teams + Enables the user to configure delegation in the Microsoft Teams client and that inbound calls to be routed to delegates; allows delegates to make outbound calls on behalf of the users for whom they have delegated permissions. + + Boolean + + Boolean + + + None + + + AllowPrivateCalling + + > Applicable: Microsoft Teams + Controls all calling capabilities in Teams. Turning this off will turn off all calling functionality in Teams. If you use Skype for Business for calling, this policy will not affect calling functionality in Skype for Business. + + Boolean + + Boolean + + + None + + + AllowSIPDevicesCalling + + > Applicable: Microsoft Teams + Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. + + Boolean + + Boolean + + + None + + + AllowTranscriptionForCalling + + > Applicable: Microsoft Teams + Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. + + Boolean + + Boolean + + + None + + + AllowVoicemail + + > Applicable: Microsoft Teams + Enables inbound calls to be routed to voicemail. + Valid options are: + - AlwaysEnabled: Calls are always forwarded to voicemail on unanswered after ringing for thirty seconds, regardless of the unanswered call forward setting for the user. + - AlwaysDisabled: Calls are never routed to voicemail, regardless of the call forward or unanswered settings for the user. Voicemail isn't available as a call forwarding or unanswered setting in Teams. + - UserOverride: Calls are forwarded to voicemail based on the call forwarding and/or unanswered settings for the user. + + String + + String + + + None + + + AllowWebPSTNCalling + + > Applicable: Microsoft Teams + Allows PSTN calling from the Team web client. + + Object + + Object + + + None + + + AutoAnswerEnabledType + + > Applicable: Microsoft Teams + Setting this parameter allows you to enable or disable auto-answer for incoming meeting invites on Teams Phones. This setting applies only to incoming meeting invites and does not include support for other call types. + Valid options are: + - Enabled: Auto-answer is enabled. + - Disabled: Auto-answer is disabled. This is the default setting. + + String + + String + + + Disabled + + + BusyOnBusyEnabledType + + > Applicable: Microsoft Teams + Setting this parameter lets you configure how incoming calls are handled when a user is already in a call or conference or has a call placed on hold. + Valid options are: + - Enabled: New or incoming calls will be rejected with a busy signal. + - Unanswered: The user's unanswered settings will take effect, such as routing to voicemail or forwarding to another user. + - Disabled: New or incoming calls will be presented to the user. + - UserOverride: Users can set their busy options directly from call settings in Teams app. + + String + + String + + + None + + + CallingSpendUserLimit + + > Applicable: Microsoft Teams + The maximum amount a user can spend on outgoing PSTN calls, including all calls made through Pay-as-you-go Calling Plans and any overages on plans with bundled minutes. + Possible values: any positive integer + + Long + + Long + + + None + + + CallRecordingExpirationDays + + > Applicable: Microsoft Teams + Sets the expiration of the recorded 1:1 calls. Default is 60 days. + + Long + + Long + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Copilot + + > Applicable: Microsoft Teams + Setting this parameter lets you control how Copilot is used during calls and if transcription is needed to be turned on and saved after the call. + Valid options are: - Enabled: Copilot can work with or without transcription during calls. This is the default value. + - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. + - Disabled: Copilot is disabled for calls. + + String + + String + + + Enabled + + + Description + + > Applicable: Microsoft Teams + Enables administrators to provide explanatory text about the calling policy. For example, the Description might indicate the users to whom the policy should be assigned. + + String + + String + + + None + + + EnableSpendLimits + + > Applicable: Microsoft Teams + This setting allows an admin to enable or disable spend limits on PSTN calls for their user base. + Possible values: + - True + - False + + Boolean + + Boolean + + + False + + + EnableWebPstnMediaBypass + + Determines if MediaBypass is enabled for PSTN calls on specified Web platforms. + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + InboundFederatedCallRoutingTreatment + + > Applicable: Microsoft Teams + Setting this parameter lets you control how inbound federated calls should be routed. + Valid options are: + - RegularIncoming: No changes are made to default inbound routing. This is the default setting. + - Unanswered: The inbound federated call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. + + - Voicemail: The inbound federated call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. + Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. + + String + + String + + + RegularIncoming + + + InboundPstnCallRoutingTreatment + + > Applicable: Microsoft Teams + Setting this parameter lets you control how inbound PSTN calls should be routed. + Valid options are: + - RegularIncoming: No changes are made to default inbound routing. This is the default setting. + - Unanswered: The inbound PSTN call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. + - Voicemail: The inbound PSTN call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. + - UserOverride: For now, setting the value to UserOverride is the same as RegularIncoming. + + Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. + + String + + String + + + RegularIncoming + + + LiveCaptionsEnabledTypeForCalling + + > Applicable: Microsoft Teams + Determines whether real-time captions are available for the user in Teams calls. + Valid options are: + - DisabledUserOverride: Allows the user to turn on live captions. + - Disabled: Prohibits the user from turning on live captions. + + String + + String + + + None + + + MusicOnHoldEnabledType + + > Applicable: Microsoft Teams + Setting this parameter allows you to turn on or turn off the music on hold when a caller is placed on hold. + Valid options are: + - Enabled: Music on hold is enabled. This is the default. + - Disabled: Music on hold is disabled. + - UserOverride: For now, setting the value to UserOverride is the same as Enabled. + + String + + String + + + Enabled + + + PopoutAppPathForIncomingPstnCalls + + > Applicable: Microsoft Teams + Setting this parameter allows you to set the PopoutForIncomingPstnCalls setting's URL path of the website to launch upon receiving incoming PSTN calls. This parameter accepts an HTTPS URL with less than 1024 characters. The URL can contain a `{phone}` placeholder that is replaced with the caller's PSTN number in E.164 format when launched. + + String + + String + + + "" + + + PopoutForIncomingPstnCalls + + > Applicable: Microsoft Teams + Setting this parameter allows you to control the tenant users' ability to launch an external website URL automatically in the browser window upon incoming PSTN calls for specific users or user groups. Valid options are Enabled and Disabled. + + String + + String + + + Disabled + + + PreventTollBypass + + > Applicable: Microsoft Teams + Setting this parameter to True will send calls through PSTN and incur charges rather than going through the network and bypassing the tolls. + > [!NOTE] > Do not set this parameter to True for Calling Plan or Operator Connect users as it will prevent successful call routing. This setting only works with Direct Routing which is configured to handle location-based routing restrictions. + + Boolean + + Boolean + + + None + + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a call, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + + + SpamFilteringEnabledType + + > Applicable: Microsoft Teams + Determines Spam filtering mode. + Possible values: + - Enabled: Spam Filtering is fully enabled. Both Basic and Captcha Interactive Voice Response (IVR) checks are performed. In case the call is considered spam, the user will get a "Spam Likely" notification in Teams. + - Disabled: Spam Filtering is completely disabled. No checks are performed. A "Spam Likely" notification will not appear. + - EnabledWithoutIVR: Spam Filtering is partially enabled. Captcha IVR checks are disabled. A "Spam Likely" notification will appear. A call might get dropped if it gets a high score from Basic checks. + + String + + String + + + None + + + VoiceSimulationInInterpreter + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the voice simulation feature while being AI interpreted. + Possible Values: + - Disabled + - Enabled + + String + + String + + + Disabled + + + ExplicitRecordingConsent + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + This setting controls whether users must provide or obtain explicit consent before recording a 1:1 PSTN or Teams call. When enabled, both parties will receive a notification, and consent must be given before recording starts. + Possible values: + - Enabled : Requires users to give and obtain explicit consent before starting a call recording. - Disabled : Users are not required to obtain explicit consent before recording starts. + + String + + String + + + Disabled + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsCallingPolicy -Identity Sales -AllowPrivateCalling $false + + The cmdlet create the policy instance Sales and sets the value of the parameter AllowPrivateCalling to False. The rest of the parameters are set to the corresponding values in the Global policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy + + + Get-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy + + + Remove-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy + + + Grant-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy + + + Set-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy + + + + + + New-CsTeamsChannelsPolicy + New + CsTeamsChannelsPolicy + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. + + + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. + This cmdlet allows you to create new policies of this type, which can later be assigned to specific users. + + + + New-CsTeamsChannelsPolicy + + Identity + + Specify the name of the policy that you are creating. + + String + + String + + + None + + + AllowChannelSharingToExternalUser + + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + AllowOrgWideTeamCreation + + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPrivateChannelCreation + + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSharedChannelCreation + + Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. + + Boolean + + Boolean + + + None + + + AllowUserToParticipateInExternalSharedChannel + + Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Specifies the description of the policy. + + String + + String + + + None + + + EnablePrivateTeamDiscovery + + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + Force + + Bypasses all non-fatal errors. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + ThreadedChannelCreation + + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowChannelSharingToExternalUser + + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + AllowOrgWideTeamCreation + + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPrivateChannelCreation + + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSharedChannelCreation + + Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. + + Boolean + + Boolean + + + None + + + AllowUserToParticipateInExternalSharedChannel + + Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Specifies the description of the policy. + + String + + String + + + None + + + EnablePrivateTeamDiscovery + + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + Force + + Bypasses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy that you are creating. + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + ThreadedChannelCreation + + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsChannelsPolicy -Identity StudentPolicy -EnablePrivateTeamDiscovery $false + + This example shows creating a new policy with name "StudentPolicy" where Private Team Discovery is disabled. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamschannelspolicy + + + Set-CsTeamsChannelsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamschannelspolicy + + + Remove-CsTeamsChannelsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy + + + Grant-CsTeamsChannelsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy + + + Get-CsTeamsChannelsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy + + + + + + New-CsTeamsComplianceRecordingApplication + New + CsTeamsComplianceRecordingApplication + + Creates a new association between an application instance of a policy-based recording application and a Teams recording policy for administering automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Policy-based recording applications are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to enforce compliance with the administrative set policy. + Instances of these applications are created using CsOnlineApplicationInstance cmdlets and are then associated with Teams recording policies. + Note that application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. Once the association is done, the Identity of these application instances becomes <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. Please also refer to the documentation of CsTeamsComplianceRecordingPolicy cmdlets for further information. + + + + New-CsTeamsComplianceRecordingApplication + + ComplianceRecordingPairedApplications + + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + ComplianceRecordingPairedApplication[] + + ComplianceRecordingPairedApplication[] + + + None + + + ConcurrentInvitationCount + + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + UInt32 + + UInt32 + + + 1 + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Id + + The ObjectId of the application instance of a policy-based recording application as exposed by the Get-CsOnlineApplicationInstance cmdlet. For example, the Id of an application instance can be \"39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance has ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. + + String + + String + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + + SwitchParameter + + + False + + + Parent + + The Identity of the Teams recording policy that this application instance of a policy-based recording application is associated with. For example, the Parent of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy\", which indicates that the application instance is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + String + + String + + + None + + + Priority + + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + + Int32 + + Int32 + + + None + + + RequiredBeforeCallEstablishment + + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + + Boolean + + Boolean + + + True + + + RequiredBeforeMeetingJoin + + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + + Boolean + + Boolean + + + True + + + RequiredDuringCall + + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + + Boolean + + Boolean + + + True + + + RequiredDuringMeeting + + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + + Boolean + + Boolean + + + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTeamsComplianceRecordingApplication + + Identity + + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + ComplianceRecordingPairedApplications + + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + ComplianceRecordingPairedApplication[] + + ComplianceRecordingPairedApplication[] + + + None + + + ConcurrentInvitationCount + + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + UInt32 + + UInt32 + + + 1 + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + + SwitchParameter + + + False + + + Priority + + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + + Int32 + + Int32 + + + None + + + RequiredBeforeCallEstablishment + + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + + Boolean + + Boolean + + + True + + + RequiredBeforeMeetingJoin + + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + + Boolean + + Boolean + + + True + + + RequiredDuringCall + + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + + Boolean + + Boolean + + + True + + + RequiredDuringMeeting + + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + + Boolean + + Boolean + + + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ComplianceRecordingPairedApplications + + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + ComplianceRecordingPairedApplication[] + + ComplianceRecordingPairedApplication[] + + + None + + + ConcurrentInvitationCount + + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + UInt32 + + UInt32 + + + 1 + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Id + + The ObjectId of the application instance of a policy-based recording application as exposed by the Get-CsOnlineApplicationInstance cmdlet. For example, the Id of an application instance can be \"39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance has ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. + + String + + String + + + None + + + Identity + + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Parent + + The Identity of the Teams recording policy that this application instance of a policy-based recording application is associated with. For example, the Parent of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy\", which indicates that the application instance is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + String + + String + + + None + + + Priority + + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + + Int32 + + Int32 + + + None + + + RequiredBeforeCallEstablishment + + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + + Boolean + + Boolean + + + True + + + RequiredBeforeMeetingJoin + + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + + Boolean + + Boolean + + + True + + + RequiredDuringCall + + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + + Boolean + + Boolean + + + True + + + RequiredDuringMeeting + + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + + Boolean + + Boolean + + + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' + + The command shown in Example 1 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' + + The command shown in Example 2 is a variation of Example 1. It also creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy, but it does this by using the Parent and Id parameters instead of the Identity parameter. + + + + -------------------------- Example 3 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' -RequiredBeforeMeetingJoin $false -RequiredDuringMeeting $false + + The command shown in Example 3 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application is deemed optional for meetings but mandatory for calls. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredDuringMeeting parameters for more information. + + + + -------------------------- Example 4 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' -RequiredBeforeCallEstablishment $false -RequiredDuringCall $false + + The command shown in Example 4 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application is deemed optional for calls but mandatory for meetings. Please refer to the documentation of the RequiredBeforeCallEstablishment and RequiredDuringCall parameters for more information. + + + + -------------------------- Example 5 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' -ConcurrentInvitationCount 2 + + The command shown in Example 5 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application is made resilient by specifying that two invites must be sent to the same application for the same call or meeting. Please refer to the documentation of the ConcurrentInvitationCount parameter for more information. + + + + -------------------------- Example 6 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' -ComplianceRecordingPairedApplications @(New-CsTeamsComplianceRecordingPairedApplication -Id '39dc3ede-c80e-4f19-9153-417a65a1f144') + + The command shown in Example 6 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application is made resilient by pairing it with another application instance of a policy-based recording application with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. Separate invites are sent to the paired applications for the same call or meeting. Please refer to the documentation of the ComplianceRecordingPairedApplications parameter for more information. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + New-CsTeamsComplianceRecordingPairedApplication + New + CsTeamsComplianceRecordingPairedApplication + + Creates a new association between multiple application instances of policy-based recording applications to achieve application resiliency in automatic policy-based recording scenarios. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Policy-based recording applications are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to enforce compliance with the administrative set policy. + Instances of these applications are created using CsOnlineApplicationInstance cmdlets and are then associated with Teams recording policies. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application, to determine if application resiliency is needed for your workflows, and how best to achieve application resiliency. Please also refer to the documentation of CsTeamsComplianceRecordingApplication cmdlets for further information. + + + + New-CsTeamsComplianceRecordingPairedApplication + + Id + + The ObjectId of the application instance of a policy-based recording application as exposed by the Get-CsOnlineApplicationInstance cmdlet. For example, the Id of an application instance can be \"39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance has ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. + + String + + String + + + None + + + + + + Id + + The ObjectId of the application instance of a policy-based recording application as exposed by the Get-CsOnlineApplicationInstance cmdlet. For example, the Id of an application instance can be \"39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance has ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingPairedApplication -Id '39dc3ede-c80e-4f19-9153-417a65a1f144' + + The command shown in Example 1 creates an in-memory instance of an application instance of a policy-based recording application that can be associated with other such application instances to achieve application resiliency. + Note that this cmdlet is only used in conjunction with New-CsTeamsComplianceRecordingApplication and Set-CsTeamsComplianceRecordingApplication to create associations between multiple application instances of policy-based recording applications. Please refer to the documentation of CsTeamsComplianceRecordingApplication cmdlets for examples and further information. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + + + + New-CsTeamsComplianceRecordingPolicy + New + CsTeamsComplianceRecordingPolicy + + Creates a new Teams recording policy for governing automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Teams recording policies are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to record audio, video and video-based screen sharing activity. + Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. + + + + New-CsTeamsComplianceRecordingPolicy + + Identity + + Unique identifier to be assigned to the new Teams recording policy. + Use the "Global" Identity if you wish to assign this policy to the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + ComplianceRecordingApplications + + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + + ComplianceRecordingApplication[] + + ComplianceRecordingApplication[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + CustomBanner + + References the Custom Banner text in the storage. + + Guid + + Guid + + + None + + + CustomPromptsEnabled + + Indicates whether compliance recording custom prompts feature is enabled for this tenant / user. + + Boolean + + Boolean + + + None + + + CustomPromptsPackageId + + Reference to custom prompts package. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + DisableComplianceRecordingAudioNotificationForCalls + + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. + + Boolean + + Boolean + + + False + + + Enabled + + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + + SwitchParameter + + + False + + + RecordReroutedCalls + + Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. + + Boolean + + Boolean + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WarnUserOnRemoval + + This parameter is reserved for future use. + + Boolean + + Boolean + + + True + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ComplianceRecordingApplications + + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + + ComplianceRecordingApplication[] + + ComplianceRecordingApplication[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + CustomBanner + + References the Custom Banner text in the storage. + + Guid + + Guid + + + None + + + CustomPromptsEnabled + + Indicates whether compliance recording custom prompts feature is enabled for this tenant / user. + + Boolean + + Boolean + + + None + + + CustomPromptsPackageId + + Reference to custom prompts package. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + DisableComplianceRecordingAudioNotificationForCalls + + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. + + Boolean + + Boolean + + + False + + + Enabled + + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier to be assigned to the new Teams recording policy. + Use the "Global" Identity if you wish to assign this policy to the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + RecordReroutedCalls + + Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. + + Boolean + + Boolean + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WarnUserOnRemoval + + This parameter is reserved for future use. + + Boolean + + Boolean + + + True + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -Enabled $true -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899') + + The command shown in Example 1 creates a new per-user Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. This policy is assigned a single application instance of a policy-based recording application: d93fefc7-93cc-4d44-9a5d-344b0fff2899, which is the ObjectId of the application instance as obtained from the Get-CsOnlineApplicationInstance cmdlet. + Any Microsoft Teams users who are assigned this policy will have their calls and meetings recorded by that application instance. Existing calls and meetings are unaffected. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -Enabled $true -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899'), @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id '39dc3ede-c80e-4f19-9153-417a65a1f144') + + Example 2 is a variation of Example 1. In this case, the Teams recording policy is assigned two application instances of policy-based recording applications. + Any Microsoft Teams users who are assigned this policy will have their calls and meetings recorded by both those application instances. Existing calls and meetings are unaffected. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + New-CsTeamsCustomBannerText + New + CsTeamsCustomBannerText + + Enables administrators to configure a custom text on the banner displayed when compliance recording bots start recording the call. + + + + Creates a single instance of a custom banner text. + + + + New-CsTeamsCustomBannerText + + Id + + > Applicable: Microsoft Teams + The Identity of the CustomBannerText. You do not need to provide an ID as the backend will generate it for you. However, if you wish to provide your own ID, you can provide your own GUID. Note that you have to provide a unique ID for every CsTeamsCustomBannerText you create. + + Guid + + Guid + + + None + + + Description + + The description that the global admin would like to set to identify what this text represents. + + String + + String + + + None + + + Text + + The text that the global admin would like to set in the policy. + + String + + String + + + None + + + + + + Description + + The description that the global admin would like to set to identify what this text represents. + + String + + String + + + None + + + Id + + > Applicable: Microsoft Teams + The Identity of the CustomBannerText. You do not need to provide an ID as the backend will generate it for you. However, if you wish to provide your own ID, you can provide your own GUID. Note that you have to provide a unique ID for every CsTeamsCustomBannerText you create. + + Guid + + Guid + + + None + + + Text + + The text that the global admin would like to set in the policy. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsCustomBannerText -Id 123e4567-e89b-12d3-a456-426614174000 -Description "Custom Banner Text Example" -Text "Custom Text" + + This example creates an instance of TeamsCustomBannerText with the name CustomText. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext + + + Set-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext + + + New-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext + + + Remove-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext + + + + + + New-CsTeamsEmergencyCallingExtendedNotification + New + CsTeamsEmergencyCallingExtendedNotification + + + + + + This cmdlet supports creating specific emergency calling notification settings per emergency phone number. It is used with TeamsEmergencyCallingPolicy. + + + + New-CsTeamsEmergencyCallingExtendedNotification + + EmergencyDialString + + Specifies the emergency phone number. + + String + + String + + + None + + + NotificationDialOutNumber + + This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. + + String + + String + + + None + + + NotificationGroup + + NotificationGroup is an email list of users and groups to be notified of an emergency call. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 entries consisting of users and/or groups can be added to the NotificationGroup. The total number of users notified cannot exceed 50. + + String + + String + + + None + + + NotificationMode + + The type of conference experience for security desk notification. + + + NotificationOnly + ConferenceMuted + ConferenceUnMuted + + Microsoft.Rtc.Management.WritableConfig.Policy.Teams.NotificationMode + + Microsoft.Rtc.Management.WritableConfig.Policy.Teams.NotificationMode + + + None + + + + + + EmergencyDialString + + Specifies the emergency phone number. + + String + + String + + + None + + + NotificationDialOutNumber + + This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. + + String + + String + + + None + + + NotificationGroup + + NotificationGroup is an email list of users and groups to be notified of an emergency call. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 entries consisting of users and/or groups can be added to the NotificationGroup. The total number of users notified cannot exceed 50. + + String + + String + + + None + + + NotificationMode + + The type of conference experience for security desk notification. + + Microsoft.Rtc.Management.WritableConfig.Policy.Teams.NotificationMode + + Microsoft.Rtc.Management.WritableConfig.Policy.Teams.NotificationMode + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "911" -NotificationGroup "alert2@contoso.com" -NotificationMode ConferenceUnMuted + + Creates an extended emergency calling notification for the emergency phone number 911 and stores it in the variable $en1. The variable should be added afterward to a TeamsEmergencyCallingPolicy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification + + + Set-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy + + + New-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy + + + + + + New-CsTeamsEmergencyCallingPolicy + New + CsTeamsEmergencyCallingPolicy + + + + + + This cmdlet creates a new Teams Emergency Calling policy. Emergency calling policy is used for the life cycle of emergency calling experience for the security desk and Teams client location experience. + + + + New-CsTeamsEmergencyCallingPolicy + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + The Description parameter describes the Teams Emergency Calling policy - what it is for, what type of user it applies to and any other information that helps to identify the purpose of this policy. Maximum characters: 512. + + String + + String + + + None + + + EnhancedEmergencyServiceDisclaimer + + Allows the tenant administrator to configure a text string, which is shown at the top of the Calls app. The user can acknowledge the string by selecting OK. The string will be shown on client restart. The disclaimer can be up to 350 characters. + + String + + String + + + None + + + ExtendedNotifications + + A list of one or more instances of TeamsEmergencyCallingExtendedNotification. Each TeamsEmergencyCallingExtendedNotification should use a unique EmergencyDialString. + If an extended notification is found for an emergency phone number based on the EmergencyDialString parameter the extended notification will be controlling the notification. If no extended notification is found the notification settings on the policy instance itself will be used. + + System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] + + System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] + + + None + + + ExternalLocationLookupMode + + Enable ExternalLocationLookupMode. This mode allow users to set Emergency addresses for remote locations. + + + Disabled + Enabled + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode + + + None + + + NotificationDialOutNumber + + This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. + + String + + String + + + None + + + NotificationGroup + + NotificationGroup is an email list of users and groups to be notified of an emergency call via Teams chat. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 e-mail addresses can be specified and a maximum of 50 users in total can be notified. Both UPN and SMTP address are accepted when adding users directly. + + String + + String + + + None + + + NotificationMode + + The type of conference experience for security desk notification. Possible values are NotificationOnly, ConferenceMuted, and ConferenceUnMuted. + + + NotificationOnly + ConferenceMuted + ConferenceUnMuted + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + The Description parameter describes the Teams Emergency Calling policy - what it is for, what type of user it applies to and any other information that helps to identify the purpose of this policy. Maximum characters: 512. + + String + + String + + + None + + + EnhancedEmergencyServiceDisclaimer + + Allows the tenant administrator to configure a text string, which is shown at the top of the Calls app. The user can acknowledge the string by selecting OK. The string will be shown on client restart. The disclaimer can be up to 350 characters. + + String + + String + + + None + + + ExtendedNotifications + + A list of one or more instances of TeamsEmergencyCallingExtendedNotification. Each TeamsEmergencyCallingExtendedNotification should use a unique EmergencyDialString. + If an extended notification is found for an emergency phone number based on the EmergencyDialString parameter the extended notification will be controlling the notification. If no extended notification is found the notification settings on the policy instance itself will be used. + + System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] + + System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] + + + None + + + ExternalLocationLookupMode + + Enable ExternalLocationLookupMode. This mode allow users to set Emergency addresses for remote locations. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode + + + None + + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy + + String + + String + + + None + + + NotificationDialOutNumber + + This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. + + String + + String + + + None + + + NotificationGroup + + NotificationGroup is an email list of users and groups to be notified of an emergency call via Teams chat. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 e-mail addresses can be specified and a maximum of 50 users in total can be notified. Both UPN and SMTP address are accepted when adding users directly. + + String + + String + + + None + + + NotificationMode + + The type of conference experience for security desk notification. Possible values are NotificationOnly, ConferenceMuted, and ConferenceUnMuted. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------- Emergency calling policy Example 1 -------------- + $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "933" +New-CsTeamsEmergencyCallingPolicy -Identity ECP1 -Description "Test ECP1" -NotificationGroup "alert@contoso.com" -NotificationDialOutNumber "+14255551234" -NotificationMode ConferenceUnMuted -ExternalLocationLookupMode Enabled -ExtendedNotifications @{add=$en1} + + + + + + -------------- Emergency calling policy Example 2 -------------- + $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "911" -NotificationGroup "alert@contoso.com;567@contoso.com" -NotificationDialOutNumber "+14255551234" -NotificationMode ConferenceUnMuted +$en2 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "933" +New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -ExternalLocationLookupMode Enabled -ExtendedNotifications @{add=$en1,$en2} + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy + + + Get-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy + + + Grant-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy + + + Remove-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy + + + Set-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy + + + New-CsTeamsEmergencyCallingExtendedNotification + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification + + + + + + New-CsTeamsEventsPolicy + New + CsTeamsEventsPolicy + + This cmdlet allows you to create a new TeamsEventsPolicy instance and set its properties. Note that this policy is currently still in preview. + + + + TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. + + + + New-CsTeamsEventsPolicy + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + AllowedQuestionTypesInRegistrationForm + + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + + String + + String + + + None + + + AllowedTownhallTypesForRecordingPublish + + This setting governs which types of town halls can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting governs which types of webinars can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + Enabled + + + AllowEventIntegrations + + This setting governs the access to the integrations tab in the event creation workflow. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. + + String + + String + + + Enabled + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + + String + + String + + + Enabled + + + BroadcastPremiumApps + + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall + + String + + String + + + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. + Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. + - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + + String + + String + + + Everyone + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. + + String + + String + + + Enabled + + + RecordingForTownhall + + Determines whether recording is allowed in a user's townhall. Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + + String + + String + + + Enabled + + + RecordingForWebinar + + Determines whether recording is allowed in a user's webinar. Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + + String + + String + + + Enabled + + + TownhallChatExperience + + This setting governs if the user can enable the Comment Stream chat experience for Townhalls. + + String + + String + + + None + + + TownhallEventAttendeeAccess + + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + + String + + String + + + Enabled + + + TranscriptionForWebinar + + Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + + String + + String + + + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + + + WhatIf + + The WhatIf switch does not work with this cmdlet. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowedQuestionTypesInRegistrationForm + + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + + String + + String + + + None + + + AllowedTownhallTypesForRecordingPublish + + This setting governs which types of town halls can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting governs which types of webinars can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + Enabled + + + AllowEventIntegrations + + This setting governs the access to the integrations tab in the event creation workflow. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. + + String + + String + + + Enabled + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + + String + + String + + + Enabled + + + BroadcastPremiumApps + + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall + + String + + String + + + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. + Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. + - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + + String + + String + + + Everyone + + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. + + String + + String + + + Enabled + + + RecordingForTownhall + + Determines whether recording is allowed in a user's townhall. Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + + String + + String + + + Enabled + + + RecordingForWebinar + + Determines whether recording is allowed in a user's webinar. Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + + String + + String + + + Enabled + + + TownhallChatExperience + + This setting governs if the user can enable the Comment Stream chat experience for Townhalls. + + String + + String + + + None + + + TownhallEventAttendeeAccess + + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + + String + + String + + + Enabled + + + TranscriptionForWebinar + + Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + + String + + String + + + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + + + WhatIf + + The WhatIf switch does not work with this cmdlet. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsEventsPolicy -Identity DisablePublicWebinars -AllowWebinars Enabled -EventAccessType EveryoneInCompanyExcludingGuests + + The command shown in Example 1 creates a new per-user Teams Events policy with the Identity DisablePublicWebinars. This policy disables a user from creating public webinars. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsEventsPolicy -Identity DisableWebinars -AllowWebinars Disabled + + The command shown in Example 2 creates a new per-user Teams Events policy with the Identity DisableWebinars. This policy disables a user from creating webinars. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamseventspolicy + + + + + + New-CsTeamsFeedbackPolicy + New + CsTeamsFeedbackPolicy + + Use this cmdlet to control whether users in your organization can send feedback about Teams to Microsoft through Give feedback and whether they receive the survey. + + + + Use this cmdlet to control whether users in your organization can send feedback about Teams to Microsoft through Give feedback and whether they receive the survey. By default, all users in your organization are automatically assigned the global (Org-wide default) policy and the Give feedback feature and survey are enabled in the policy. The exception is Teams for Education, where the features are enabled for teachers and disabled for students. For more information, visit Manage feedback policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-feedback-policies-in-teams). + + + + New-CsTeamsFeedbackPolicy + + Identity + + A unique identifier. + + Object + + Object + + + None + + + AllowEmailCollection + + Set this to TRUE to enable Email collection. + + Boolean + + Boolean + + + None + + + AllowLogCollection + + Set this to TRUE to enable log collection. + + Boolean + + Boolean + + + None + + + AllowScreenshotCollection + + Set this to TRUE to enable Screenshot collection. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnableFeatureSuggestions + + This setting will enable Tenant Admins to hide or show the Teams menu item “Help | Suggest a Feature”. + + Boolean + + Boolean + + + None + + + Force + + Suppress all non-fatal errors. + + + SwitchParameter + + + False + + + InMemory + + The InMemory parameter creates an object reference without actually committing the object as a permanent change. + + + SwitchParameter + + + False + + + ReceiveSurveysMode + + Set the receiveSurveysMode parameter to enabled to allow users who are assigned the policy to receive the survey. + Possible values: - Enabled - Disabled - EnabledUserOverride + + String + + String + + + Enabled + + + Tenant + + Internal Microsoft use only. + + Object + + Object + + + None + + + UserInitiatedMode + + Set the userInitiatedMode parameter to enabled to allow users who are assigned the policy to give feedback. Setting the parameter to disabled turns off the feature and users who are assigned the policy don't have the option to give feedback. + Possible values: - Enabled - Disabled + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowEmailCollection + + Set this to TRUE to enable Email collection. + + Boolean + + Boolean + + + None + + + AllowLogCollection + + Set this to TRUE to enable log collection. + + Boolean + + Boolean + + + None + + + AllowScreenshotCollection + + Set this to TRUE to enable Screenshot collection. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableFeatureSuggestions + + This setting will enable Tenant Admins to hide or show the Teams menu item “Help | Suggest a Feature”. + + Boolean + + Boolean + + + None + + + Force + + Suppress all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A unique identifier. + + Object + + Object + + + None + + + InMemory + + The InMemory parameter creates an object reference without actually committing the object as a permanent change. + + SwitchParameter + + SwitchParameter + + + False + + + ReceiveSurveysMode + + Set the receiveSurveysMode parameter to enabled to allow users who are assigned the policy to receive the survey. + Possible values: - Enabled - Disabled - EnabledUserOverride + + String + + String + + + Enabled + + + Tenant + + Internal Microsoft use only. + + Object + + Object + + + None + + + UserInitiatedMode + + Set the userInitiatedMode parameter to enabled to allow users who are assigned the policy to give feedback. Setting the parameter to disabled turns off the feature and users who are assigned the policy don't have the option to give feedback. + Possible values: - Enabled - Disabled + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsFeedbackPolicy -identity "New Hire Feedback Policy" -userInitiatedMode disabled -receiveSurveysMode disabled + + In this example, we create a feedback policy called New Hire Feedback Policy and we turn off the ability to give feedback through Give feedback and the survey. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfeedbackpolicy + + + + + + New-CsTeamsFilesPolicy + New + CsTeamsFilesPolicy + + Creates a new teams files policy. + + + + If your organization chooses a third-party for content storage, you can turn off the NativeFileEntryPoints parameter in the Teams Files policy. This parameter is enabled by default, which shows option to attach OneDrive / SharePoint content from Teams chats or channels. When this parameter is disabled, users won't see access points for OneDrive and SharePoint in Teams. Please note that OneDrive app in the left navigation pane in Teams isn't affected by this policy. Teams administrators would be able to create a customized teams files policy to match the organization's requirements. + + + + New-CsTeamsFilesPolicy + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + DefaultFileUploadAppId + + This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. + + String + + String + + + None + + + FileSharingInChatswithExternalUsers + + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled + + String + + String + + + Enabled + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + NativeFileEntryPoints + + This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. + + String + + String + + + None + + + SPChannelFilesTab + + Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + DefaultFileUploadAppId + + This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. + + String + + String + + + None + + + FileSharingInChatswithExternalUsers + + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled + + String + + String + + + Enabled + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + NativeFileEntryPoints + + This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. + + String + + String + + + None + + + SPChannelFilesTab + + Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsTeamsFilesPolicy -Identity "CustomTeamsFilesPolicy" -NativeFileEntryPoints Disabled/Enabled + + The command shown in Example 1 creates a per-user teams files policy CustomTeamsFilesPolicy with NativeFileEntryPoints set to Disabled/Enabled and other fields set to tenant level global value. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy + + + + + + New-CsTeamsHiddenMeetingTemplate + New + CsTeamsHiddenMeetingTemplate + + This cmdlet is used to create a `HiddenMeetingTemplate` object. + + + + Creates an object that can be supplied as `HiddenMeetingTemplate` to the New-CsTeamsMeetingTemplatePermissionPolicy (new-csteamsmeetingtemplatepermissionpolicy.md)and Set-CsTeamsMeetingTemplatePermissionPolicy (set-csteamsmeetingtemplatepermissionpolicy.md)cmdlets. + + + + New-CsTeamsHiddenMeetingTemplate + + Id + + > Applicable: Microsoft Teams + ID of the meeting template to hide. + + String + + String + + + None + + + + + + Id + + > Applicable: Microsoft Teams + ID of the meeting template to hide. + + String + + String + + + None + + + + + + + + + + + + ------ Example 1 - Creating a new hidden meeting template ------ + PS> $hiddentemplate_1 = New-CsTeamsHiddenMeetingTemplate -Id customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056 + + Creates a new HiddenMeetingTemplate object with the given template ID. + For more examples of how this can be used, see the examples for New-CsTeamsMeetingTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy). + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsHiddenMeetingTemplate + + + Get-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy + + + New-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy + + + Set-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy + + + + + + New-CsTeamsHiddenTemplate + New + CsTeamsHiddenTemplate + + This cmdlet is used to create a `HiddenTemplate` object. + + + + Creates an object that can be supplied as `HiddenTemplate` to the New-CsTeamsTemplatePermissionPolicy (new-csteamstemplatepermissionpolicy.md) and [Set-CsTeamsTemplatePermissionPolicy](set-csteamstemplatepermissionpolicy.md)cmdlets. + + + + New-CsTeamsHiddenTemplate + + Id + + ID of the Teams template to hide. + + String + + String + + + None + + + + + + Id + + ID of the Teams template to hide. + + String + + String + + + None + + + + + + None + + + + + + + + + + HiddenTemplate.Cmdlets.HiddenTemplate + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS >$manageProjectTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAProject + + Creates a new hidden Teams template object. For more examples of how this can be used, see the examples for New-CsTeamsTemplatePermissionPolicy (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy). + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate + + + New-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy + + + Set-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy + + + + + + New-CsTeamsMediaConnectivityPolicy + New + CsTeamsMediaConnectivityPolicy + + This cmdlet creates a Teams media connectivity policy. + + + + This cmdlet creates a Teams media connectivity policy. If you get an error that the policy already exists, it means that the policy already exists for your tenant. In this case, run Get-CsTeamsMediaConnectivityPolicy. + + + + New-CsTeamsMediaConnectivityPolicy + + DirectConnection + + This setting will enable Tenant Admins to control the Teams media connectivity behavior in Teams for both Meetings and 1:1 calls. If this setting is set to true, a direct media connection between the current user and a remote user is allowed which may improve the meeting quality and reduce the egress bandwidth usage for the customer. If this setting is set to disabled, no direct media connection will be allowed for the current user. + + String + + String + + + None + + + Identity + + Identity of the Teams media connectivity policy. + + String + + String + + + None + + + + + + DirectConnection + + This setting will enable Tenant Admins to control the Teams media connectivity behavior in Teams for both Meetings and 1:1 calls. If this setting is set to true, a direct media connection between the current user and a remote user is allowed which may improve the meeting quality and reduce the egress bandwidth usage for the customer. If this setting is set to disabled, no direct media connection will be allowed for the current user. + + String + + String + + + None + + + Identity + + Identity of the Teams media connectivity policy. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsMediaConnectivityPolicy -Identity Test + +Identity DirectConnection +------------------------- +Tag:Test Enabled + + Creates a new Teams media connectivity policy with the specified identity. The newly created policy with value will be printed on success. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsMediaConnectivityPolicy + + + Remove-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy + + + Get-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy + + + Set-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy + + + Grant-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy + + + + + + New-CsTeamsMeetingBrandingPolicy + New + CsTeamsMeetingBrandingPolicy + + The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. + + + + This cmdlet creates a new TeamsMeetingBrandingPolicy . You can only create an empty meeting branding policy with this cmdlet, image upload is not supported. If you want to upload the images, you should use Teams Admin Center. + + + + New-CsTeamsMeetingBrandingPolicy + + Identity + + Identity of meeting branding policy that will be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DefaultTheme + + This parameter is reserved for Microsoft internal use only. Identity of default meeting theme. + + String + + String + + + None + + + EnableMeetingBackgroundImages + + Enable custom meeting backgrounds. + + Boolean + + Boolean + + + None + + + EnableMeetingOptionsThemeOverride + + Allow organizer to control meeting theme. + + Boolean + + Boolean + + + None + + + EnableNdiAssuranceSlate + + This enables meeting Network Device Interface Assurance Slate branding. + + Boolean + + Boolean + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + MeetingBackgroundImages + + This parameter is reserved for Microsoft internal use only. List of meeting background images. Image upload is not possible via cmdlets. You should upload background images via Teams Admin Center. + + PSListModifier + + PSListModifier + + + None + + + MeetingBrandingThemes + + This parameter is reserved for Microsoft internal use only. List of meeting branding themes. Image upload is not possible via cmdlets. You should create meeting themes via Teams Admin Center. + + PSListModifier + + PSListModifier + + + None + + + NdiAssuranceSlateImages + + Used to specify images that can be used as assurance slates during NDI (Network Device Interface) streaming in Teams meetings. This parameter allows administrators to define a set of images that can be displayed to participants to ensure that the NDI stream is functioning correctly. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate] + + + None + + + RequireBackgroundEffect + + This mandates a meeting background for participants. + + Boolean + + Boolean + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DefaultTheme + + This parameter is reserved for Microsoft internal use only. Identity of default meeting theme. + + String + + String + + + None + + + EnableMeetingBackgroundImages + + Enable custom meeting backgrounds. + + Boolean + + Boolean + + + None + + + EnableMeetingOptionsThemeOverride + + Allow organizer to control meeting theme. + + Boolean + + Boolean + + + None + + + EnableNdiAssuranceSlate + + This enables meeting Network Device Interface Assurance Slate branding. + + Boolean + + Boolean + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Identity of meeting branding policy that will be created. + + String + + String + + + None + + + MeetingBackgroundImages + + This parameter is reserved for Microsoft internal use only. List of meeting background images. Image upload is not possible via cmdlets. You should upload background images via Teams Admin Center. + + PSListModifier + + PSListModifier + + + None + + + MeetingBrandingThemes + + This parameter is reserved for Microsoft internal use only. List of meeting branding themes. Image upload is not possible via cmdlets. You should create meeting themes via Teams Admin Center. + + PSListModifier + + PSListModifier + + + None + + + NdiAssuranceSlateImages + + Used to specify images that can be used as assurance slates during NDI (Network Device Interface) streaming in Teams meetings. This parameter allows administrators to define a set of images that can be displayed to participants to ensure that the NDI stream is functioning correctly. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate] + + + None + + + RequireBackgroundEffect + + This mandates a meeting background for participants. + + Boolean + + Boolean + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + Available in Teams PowerShell Module 4.9.3 and later. + + + + + ------------- Create empty meeting branding policy ------------- + PS C:\> New-CsTeamsMeetingBrandingPolicy -Identity "test policy" + + In this example, the command will create an empty meeting branding policy with the identity `test policy`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy + + + Get-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy + + + Grant-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy + + + New-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy + + + Remove-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy + + + Set-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy + + + + + + New-CsTeamsMeetingPolicy + New + CsTeamsMeetingPolicy + + The New-CsTeamsMeetingPolicy cmdlet allows administrators to define new meeting policies that can be assigned to particular users to control Teams features related to meetings. + + + + The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users. + + + + New-CsTeamsMeetingPolicy + + Identity + + Specify the name of the policy being created. + + XdsIdentity + + XdsIdentity + + + None + + + AIInterpreter + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the AI Interpreter related features + Possible values: + - Disabled + - Enabled + + String + + String + + + Enabled + + + AllowAnnotations + + This setting will allow admins to choose which users will be able to use the Annotation feature. + + Boolean + + Boolean + + + None + + + AllowAnonymousUsersToDialOut + + Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to #prohibit anonymous users from dialing out. + > [!NOTE] > This parameter is temporarily disabled. + + Boolean + + Boolean + + + None + + + AllowAnonymousUsersToJoinMeeting + + > [!NOTE] > The experience for users is dependent on both the value of -DisableAnonymousJoin (the old tenant-wide setting) and -AllowAnonymousUsersToJoinMeeting (the new per-organizer policy). Please check <https://learn.microsoft.com/microsoftteams/meeting-settings-in-teams> for details. + Determines whether anonymous users can join the meetings that impacted users organize. Set this to TRUE to allow anonymous users to join a meeting. Set this to FALSE to prohibit them from joining a meeting. + + Boolean + + Boolean + + + True + + + AllowAnonymousUsersToStartMeeting + + Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate a meeting. Set this to FALSE to prohibit them from initiating a meeting + + Boolean + + Boolean + + + None + + + AllowAvatarsInGallery + + If admins disable avatars in 2D meetings, then users cannot represent themselves as avatars in the Gallery view. This does not disable avatars in Immersive view. + + Boolean + + Boolean + + + None + + + AllowBreakoutRooms + + Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. + + Boolean + + Boolean + + + True + + + AllowCarbonSummary + + This setting will enable Tenant Admins to enable/disable the sharing of location data necessary to provide the end of meeting carbon summary screen for either the entire tenant or for a particular user. If set to True the meeting organizer will share their location to the client of the participant to enable the calculation of distance and the resulting carbon. + >[!NOTE] >Location data will not be visible to the organizer or participants in this case and only carbon avoided will be shown. If set to False then organizer location data will not be shown and no carbon summary screen will be displayed to the participants. + + Boolean + + Boolean + + + None + + + AllowCartCaptionsScheduling + + Determines whether a user can add a URL for captions from a Communications Access Real-Time Translation (CART) captioner for providing real-time captions in meetings. + Possible values are: + - EnabledUserOverride : CART captions are available by default but you can disable them. - DisabledUserOverride : If you would like users to be able to use CART captions in meetings but they are disabled by default. - Disabled : If you do not want to allow CART captions in meetings. + + String + + String + + + DisabledUserOverride + + + AllowChannelMeetingScheduling + + Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. + + Boolean + + Boolean + + + None + + + AllowCloudRecording + + Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able to record meetings. Set this to FALSE to prohibit the user from recording meetings + + Boolean + + Boolean + + + None + + + AllowDocumentCollaboration + + This setting will allow admins to choose which users will be able to use the Document Collaboration feature. + + String + + String + + + None + + + AllowedStreamingMediaInput + + Enables the use of RTMP-In in Teams meetings. + Possible values are: + - <blank> + - RTMP + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingDetails + + Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. + Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. + - Everyone: All meeting participants can see the meeting info details. + + String + + String + + + UsersAllowedToByPassTheLobby + + + AllowEngagementReport + + Determines whether users are allowed to download the attendee engagement report. Set this to Enabled to allow the user to download the report. Set this to Disabled to prohibit the user to download it. ForceEnabled will enable attendee report generation and prohibit meeting organizer from disabling it. + Possible values: + - Enabled + - Disabled + - ForceEnabled + + String + + String + + + None + + + AllowExternalNonTrustedMeetingChat + + This field controls whether a user is allowed to chat in external meetings with users from non trusted organizations. + + Boolean + + Boolean + + + None + + + AllowExternalParticipantGiveRequestControl + + Determines whether external participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit an external user from giving or requesting control in a meeting + + Boolean + + Boolean + + + None + + + AllowImmersiveView + + If admins have disabled avatars, this does not disable using avatars in Immersive view on Teams desktop or web. Additionally, it does not prevent users from joining the Teams meeting on VR headsets. + + Boolean + + Boolean + + + None + + + AllowIPAudio + + Determines whether audio is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their audio. Set this to FALSE to prohibit the user from sharing their audio. + + Boolean + + Boolean + + + True + + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video + + Boolean + + Boolean + + + None + + + AllowLocalRecording + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowMeetingCoach + + This setting will allow admins to allow users the option of turning on Meeting Coach during meetings, which provides users with private personalized feedback on their communication and inclusivity. If set to True, then users will see and be able to click the option for turning on Meeting Coach during calls. If set to False, then users will not have the option to turn on Meeting Coach during calls. + + Boolean + + Boolean + + + None + + + AllowMeetingReactions + + Set to false to disable Meeting Reactions. + + Boolean + + Boolean + + + True + + + AllowMeetingRegistration + + Controls if a user can create a webinar meeting. The default value is True. + Possible values: + - true + - false + + Boolean + + Boolean + + + None + + + AllowMeetNow + + Determines whether a user can start ad-hoc meetings in a channel. Set this to TRUE to allow a user to start ad-hoc meetings in a channel. Set this to FALSE to prohibit the user from starting ad-hoc meetings in a channel. + + Boolean + + Boolean + + + TRUE + + + AllowNDIStreaming + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowNetworkConfigurationSettingsLookup + + Determines whether network configuration setting lookups can be made by users who are not Enterprise Voice enabled. It is used to enable Network Roaming policies. + + Boolean + + Boolean + + + False + + + AllowOrganizersToOverrideLobbySettings + + Set this parameter to true to enable Organizers to override lobby settings. + + Boolean + + Boolean + + + False + + + AllowOutlookAddIn + + Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling Teams meeting in Outlook client + + Boolean + + Boolean + + + None + + + AllowParticipantGiveRequestControl + + Determines whether participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user from giving, requesting control in a meeting + + Boolean + + Boolean + + + None + + + AllowPowerPointSharing + + Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit + + Boolean + + Boolean + + + None + + + AllowPrivateMeetingScheduling + + Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. + + Boolean + + Boolean + + + None + + + AllowPrivateMeetNow + + Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc private meetings. Set this to FALSE to prohibit the user from starting ad-hoc private meetings. + + Boolean + + Boolean + + + TRUE + + + AllowPSTNUsersToBypassLobby + + Determines whether a PSTN user joining the meeting is allowed or not to bypass the lobby. If you set this parameter to True, PSTN users are allowed to bypass the lobby as long as an authenticated user is joined to the meeting. + + Boolean + + Boolean + + + None + + + AllowRecordingStorageOutsideRegion + + Allow storing recording outside of region. All meeting recordings will be permanently stored in another region, and can't be migrated. For more info, see <https://aka.ms/in-region>. + + Boolean + + Boolean + + + None + + + AllowScreenContentDigitization + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowSharedNotes + + Determines whether users are allowed to take shared notes. Set this to TRUE to allow. Set this to FALSE to prohibit + + Boolean + + Boolean + + + None + + + AllowTasksFromTranscript + + This policy setting allows for the extraction of AI-Assisted Action Items/Tasks from the Meeting Transcript. + + String + + String + + + None + + + AllowTrackingInReport + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowTranscription + + Determines whether real-time and/or post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit + + Boolean + + Boolean + + + None + + + AllowUserToJoinExternalMeeting + + Possible values are: + - Enabled + - FederatedOnly + - Disabled + + String + + String + + + Disabled + + + AllowWatermarkCustomizationForCameraVideo + + Allows the admin to grant customization permissions to a meeting organizer + + Boolean + + Boolean + + + None + + + AllowWatermarkCustomizationForScreenSharing + + Allows the admin to grant customization permissions to a meeting organizer + + Boolean + + Boolean + + + None + + + AllowWatermarkForCameraVideo + + This setting allows scheduling meetings with watermarking for video enabled. + + Boolean + + Boolean + + + False + + + AllowWatermarkForScreenSharing + + This setting allows scheduling meetings with watermarking for screen sharing enabled. + + Boolean + + Boolean + + + False + + + AllowWhiteboard + + Determines whether whiteboard is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit + + Boolean + + Boolean + + + None + + + AnonymousUserAuthenticationMethod + + Determines how anonymous users will be authenticated when joining a meeting. + Possible values are: - OneTimePasscode , if you would like anonymous users to be sent a one time passcode to their email when joining a meeting - None , if you would like to disable authentication for anonymous users joining a meeting + + String + + String + + + OneTimePasscode + + + AttendeeIdentityMasking + + This setting will allow admins to enable or disable Masked Attendee mode in Meetings. Masked Attendee meetings will hide attendees' identifying information (e.g., name, contact information, profile photo). + Possible Values: Enabled: Hides attendees' identifying information in meetings. Disabled: Does not allow attendees' to hide identifying information in meetings + + String + + String + + + None + + + AudibleRecordingNotification + + The setting controls whether recording notification is played to all attendees or just PSTN users. + + String + + String + + + None + + + AutoAdmittedUsers + + Determines what types of participants will automatically be added to meetings organized by this user. Possible values are: + - EveryoneInCompany , if you would like meetings to place every external user in the lobby but allow all users in the company to join the meeting immediately. - EveryoneInSameAndFederatedCompany , if you would like meetings to allow federated users to join like your company's users, but place all other external users in a lobby. - Everyone , if you'd like to admit anonymous users by default. - OrganizerOnly , if you would like that only meeting organizers can bypass the lobby. - EveryoneInCompanyExcludingGuests , if you would like meetings to place every external and guest users in the lobby but allow all other users in the company to join the meeting immediately. - InvitedUsers , if you would like that only meeting organizers and invited users can bypass the lobby. + This setting also applies to participants joining via a PSTN device (i.e. a traditional phone). + + String + + String + + + None + + + AutomaticallyStartCopilot + + > [!Note] > This feature has not been fully released yet, so the setting will have no effect.* + This setting gives admins the ability to auto-start Copilot. + Possible values are: + - Enabled + - Disabled + + String + + String + + + Disabled + + + BlockedAnonymousJoinClientTypes + + A user can join a Teams meeting anonymously using a Teams client (https://support.microsoft.com/office/join-a-meeting-without-a-teams-account-c6efc38f-4e03-4e79-b28f-e65a4c039508) or using a [custom application built using Azure Communication Services](https://learn.microsoft.com/azure/communication-services/concepts/join-teams-meeting). When anonymous meeting join is enabled, both types of clients may be used by default. This optional parameter can be used to block one of the client types that can be used. + The allowed values are ACS (to block the use of Azure Communication Services clients) or Teams (to block the use of Teams clients). Both can also be specified, separated by a comma, but this is equivalent to disabling anonymous join completely. + + List + + List + + + Empty List + + + CaptchaVerificationForMeetingJoin + + Require a verification check for meeting join. + + String + + String + + + None + + + ChannelRecordingDownload + + Controls how channel meeting recordings are saved, permissioned, and who can download them. + Possible values: + Allow - Saves channel meeting recordings to a "Recordings" folder in the channel. The permissions on the recording files will be based on the Channel SharePoint permissions. This is the same as any other file uploaded for the channel. Block - Saves channel meeting recordings to a "Recordings\View only" folder in the channel. Channel owners will have full rights to the recordings in this folder, but channel members will have read access without the ability to download. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectToMeetingControls + + Allows external connections of thirdparty apps to Microsoft Teams + Possible values are: + Enabled Disabled + + String + + String + + + None + + + ContentSharingInExternalMeetings + + This policy allows admins to determine whether the user can share content in meetings organized by external organizations. The user should have a Teams Premium license to be protected under this policy. + + String + + String + + + None + + + Copilot + + This setting allows the admin to choose whether Copilot will be enabled with a persisted transcript or a non-persisted transcript. + Possible values are: + - Enabled + - EnabledWithTranscript + + String + + String + + + EnabledWithTranscript + + + CopyRestriction + + Enables a setting that controls a meeting option which allows users to disable right-click or Ctrl+C to copy, Copy link, Forward message, and Share to Outlook for meeting chat messages. + + Boolean + + Boolean + + + TRUE + + + Description + + Enables administrators to provide explanatory text about the meeting policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DesignatedPresenterRoleMode + + Determines if users can change the default value of the Who can present? setting in Meeting options in the Teams client. This policy setting affects all meetings, including Meet Now meetings. + Possible values are: + - EveryoneUserOverride: All meeting participants can be presenters. This is the default value. This parameter corresponds to the Everyone setting in Teams. - EveryoneInCompanyUserOverride: Authenticated users in the organization, including guest users, can be presenters. This parameter corresponds to the People in my organization setting in Teams. - EveryoneInSameAndFederatedCompanyUserOverride: Authenticated users in the organization, including guest users and users from federated organizations, can be presenters. This parameter corresponds to the People in my organization and trusted organizations setting in Teams. - OrganizerOnlyUserOverride: Only the meeting organizer can be a presenter and all meeting participants are designated as attendees. This parameter corresponds to the Only me setting in Teams. + + String + + String + + + EveryoneUserOverride + + + DetectSensitiveContentDuringScreenSharing + + Allows the admin to enable sensitive content detection during screen share. + + Boolean + + Boolean + + + None + + + EnrollUserOverride + + Possible values are: + - Disabled + - Enabled + + String + + String + + + Disabled + + + ExplicitRecordingConsent + + Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. + Possible Values: + - Enabled: Explicit consent, requires participant agreement. + - Disabled: Implicit consent, does not require participant agreement. + - LegitimateInterest: Legitimate interest, less restrictive consent to meet legitimate interest without requiring explicit agreement from participants. + + String + + String + + + None + + + ExternalMeetingJoin + + Possible values are: + - EnabledForAnyone + - EnabledForTrustedOrgs + - Disabled + + String + + String + + + EnabledForAnyone + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + InfoShownInReportMode + + This policy controls what kind of information get shown for the user's attendance in attendance report/dashboard. + + String + + String + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-. + + + SwitchParameter + + + False + + + IPAudioMode + + Determines whether audio can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming audio in the meeting. Set this to DISABLED to prohibit outgoing and incoming audio in the meeting. + + String + + String + + + None + + + IPVideoMode + + Determines whether video can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming video in the meeting. Set this to DISABLED to prohibit outgoing and incoming video in the meeting. Invalid value combination IPVideoMode: EnabledOutgoingIncoming and IPAudioMode: Disabled + + String + + String + + + None + + + LiveCaptionsEnabledType + + Determines whether real-time captions are available for the user in Teams meetings. Set this to DisabledUserOverride to allow user to turn on live captions. Set this to Disabled to prohibit. + + String + + String + + + None + + + LiveInterpretationEnabledType + + Allows meeting organizers to configure a meeting for language interpretation, selecting attendees of the meeting to become interpreters that other attendees can select and listen to the real-time translation they provide. + Possible values are: + DisabledUserOverride, if you would like users to be able to use interpretation in meetings but by default it is disabled. Disabled, prevents the option to be enabled in Meeting Options. + + String + + String + + + None + + + LiveStreamingMode + + Determines whether you provide support for your users to stream their Teams meetings to large audiences through Real-Time Messaging Protocol (RTMP). + Possible values are: + - Disabled (default) + - Enabled + + String + + String + + + None + + + LobbyChat + + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether chat messages are allowed in the lobby. + Possible values are: + - Enabled + - Disabled + + String + + String + + + None + + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + UInt32 + + UInt32 + + + None + + + MeetingChatEnabledType + + Specifies if users will be able to chat in meetings. Possible values are: Disabled, Enabled, and EnabledExceptAnonymous. + + String + + String + + + None + + + MeetingInviteLanguages + + > Applicable: Microsoft Teams + Controls how the join information in meeting invitations is displayed by enforcing a common language or enabling up to two languages to be displayed. + > [!NOTE] > All Teams supported languages can be specified using language codes. For more information about its delivery date, see the roadmap (Feature ID: 81521) (https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=81521). + The preliminary list of available languages is shown below: + `ar-SA,az-Latn-AZ,bg-BG,ca-ES,cs-CZ,cy-GB,da-DK,de-DE,el-GR,en-GB,en-US,es-ES,es-MX,et-EE,eu-ES,fi-FI,fil-PH,fr-CA,fr-FR,gl-ES,he-IL,hi-IN,hr-HR,hu-HU,id-ID,is-IS,it-IT,ja-JP,ka-GE,kk-KZ,ko-KR,lt-LT,lv-LV,mk-MK,ms-MY,nb-NO,nl-NL,nn-NO,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sq-AL,sr-Latn-RS,sv-SE,th-TH,tr-TR,uk-UA,vi-VN,zh-CN,zh-TW`. + + String + + String + + + None + + + NewMeetingRecordingExpirationDays + + Specifies the number of days before meeting recordings will expire and move to the recycle bin. Value can be from 1 to 99,999 days. + > [!NOTE] > You may opt to set Meeting Recordings to never expire by entering the value -1. + + Int32 + + Int32 + + + None + + + NoiseSuppressionForDialInParticipants + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Control Noises Supression Feature for PST legs joining a meeting. + Possible Values: + - MicrosoftDefault + - Enabled + - Disabled + + String + + String + + + None + + + ParticipantNameChange + + This setting will enable Tenant Admins to turn on/off participant renaming feature. + Possible Values: Enabled: Turns on the Participant Renaming feature. Disabled: Turns off the Particpant Renaming feature. + + String + + String + + + None + + + ParticipantSlideControl + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether participants can give control of presentation slides during meetings scheduled by this user. Set the type of users you want to be able to give control and be given control of presentation slides in meetings. Users excluded from the selected group will be prohibited from giving control, or being given control, in a meeting. + Possible Values: - Everyone: Anyone in the meeting can give or take control + - EveryoneInOrganization: Only internal AAD users and Multi-Tenant Organization (MTO) users can give or take control + - EveryoneInOrganizationAndGuests: Only those who are Guests to the tenant, MTO users, and internal AAD users can give or take control + - None: No one in the meeting can give or take control + + String + + String + + + Enabled + + + PreferredMeetingProviderForIslandsMode + + Determines the Outlook meeting add-in available to users on Islands mode. By default, this is set to TeamsAndSfb, and the users sees both the Skype for Business and Teams add-ins. Set this to Teams to remove the Skype for Business add-in and only show the Teams add-in. + + String + + String + + + TeamsAndSfb + + + QnAEngagementMode + + This setting enables Microsoft 365 Tenant Admins to Enable or Disable the Questions and Answers experience (Q+A). When Enabled, Organizers can turn on Q+A for their meetings. When Disabled, Organizers cannot turn on Q+A in their meetings. The setting is enforced when a meeting is created or is updated by Organizers. Attendees can use Q+A in meetings where it was previously added. Organizers can remove Q+A for those meetings through Teams and Outlook Meeting Options. Possible values: Enabled, Disabled + + String + + String + + + None + + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + + + RecordingStorageMode + + This parameter can take two possible values: + - Stream + - OneDriveForBusiness + + > [!Note] > The change of storing Teams meeting recordings from Classic Stream to OneDrive and SharePoint (ODSP) has been completed as of August 30th, 2021. All recordings are now stored in ODSP. This change overrides the RecordingStorageMode parameter, and modifying the setting in PowerShell no longer has any impact. + + String + + String + + + None + + + RoomAttributeUserOverride + + Possible values: + - Off + - Distinguish + - Attribute + + String + + String + + + None + + + RoomPeopleNameUserOverride + + Enabling people recognition requires the tenant CsTeamsMeetingPolicy roomPeopleNameUserOverride to be "On" and roomAttributeUserOverride to be Attribute for allowing individual voice and face profiles to be used for recognition in meetings. + > [!Note] > In some locations, people recognition can't be used due to local laws or regulations. Possible values: + - On + - Off + + String + + String + + + None + + + ScreenSharingMode + + Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens. + + String + + String + + + None + + + SmsNotifications + + Participants can sign up for text message meeting reminders. + + String + + String + + + None + + + SpeakerAttributionMode + + Possible values: + - EnabledUserOverride + - Disabled + + String + + String + + + None + + + StreamingAttendeeMode + + Possible values are: + - Disabled + - Enabled + + String + + String + + + Enabled + + + TeamsCameraFarEndPTZMode + + Possible values are: + - Disabled + - AutoAcceptInTenant + - AutoAcceptAll + + String + + String + + + Disabled + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + UsersCanAdmitFromLobby + + This policy controls who can admit from the lobby. + + String + + String + + + None + + + VideoFiltersMode + + Determines the background effects that a user can configure in the Teams client. Possible values are: + - NoFilters: No filters are available. + - BlurOnly: Background blur is the only option available (requires a processor with AVX2 support, see Hardware requirements for Microsoft Teams (https://learn.microsoft.com/microsoftteams/hardware-requirements-for-the-teams-app) for more information). - BlurAndDefaultBackgrounds: Background blur and a list of pre-selected images are available. + - AllFilters: All filters are available, including custom images. This is the default value. + + String + + String + + + AllFilters + + + VoiceIsolation + + Determines whether you provide support for your users to enable voice isolation in Teams meeting calls. + Possible values are: + - Enabled (default) + - Disabled + + String + + String + + + None + + + VoiceSimulationInInterpreter + + > Applicable: Microsoft Teams + > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the voice simulation feature while being AI interpreted. + Possible Values: + - Disabled + - Enabled + + String + + String + + + Disabled + + + WatermarkForAnonymousUsers + + Determines the meeting experience and watermark content of an anonymous user. + + String + + String + + + None + + + WatermarkForCameraVideoOpacity + + Allows the transparency of watermark to be customizable. + + Int64 + + Int64 + + + None + + + WatermarkForCameraVideoPattern + + Allows the pattern design of watermark to be customizable. + + String + + String + + + None + + + WatermarkForScreenSharingOpacity + + Allows the transparency of watermark to be customizable. + + Int64 + + Int64 + + + None + + + WatermarkForScreenSharingPattern + + Allows the pattern design of watermark to be customizable. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + WhoCanRegister + + Controls the attendees who can attend a webinar meeting. The default is Everyone, meaning that everyone can register. If you want to restrict registration to internal accounts, set the value to 'EveryoneInCompany'. + Possible values: + - Everyone + - EveryoneInCompany + + Object + + Object + + + None + + + + + + AIInterpreter + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the AI Interpreter related features + Possible values: + - Disabled + - Enabled + + String + + String + + + Enabled + + + AllowAnnotations + + This setting will allow admins to choose which users will be able to use the Annotation feature. + + Boolean + + Boolean + + + None + + + AllowAnonymousUsersToDialOut + + Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to #prohibit anonymous users from dialing out. + > [!NOTE] > This parameter is temporarily disabled. + + Boolean + + Boolean + + + None + + + AllowAnonymousUsersToJoinMeeting + + > [!NOTE] > The experience for users is dependent on both the value of -DisableAnonymousJoin (the old tenant-wide setting) and -AllowAnonymousUsersToJoinMeeting (the new per-organizer policy). Please check <https://learn.microsoft.com/microsoftteams/meeting-settings-in-teams> for details. + Determines whether anonymous users can join the meetings that impacted users organize. Set this to TRUE to allow anonymous users to join a meeting. Set this to FALSE to prohibit them from joining a meeting. + + Boolean + + Boolean + + + True + + + AllowAnonymousUsersToStartMeeting + + Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate a meeting. Set this to FALSE to prohibit them from initiating a meeting + + Boolean + + Boolean + + + None + + + AllowAvatarsInGallery + + If admins disable avatars in 2D meetings, then users cannot represent themselves as avatars in the Gallery view. This does not disable avatars in Immersive view. + + Boolean + + Boolean + + + None + + + AllowBreakoutRooms + + Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. + + Boolean + + Boolean + + + True + + + AllowCarbonSummary + + This setting will enable Tenant Admins to enable/disable the sharing of location data necessary to provide the end of meeting carbon summary screen for either the entire tenant or for a particular user. If set to True the meeting organizer will share their location to the client of the participant to enable the calculation of distance and the resulting carbon. + >[!NOTE] >Location data will not be visible to the organizer or participants in this case and only carbon avoided will be shown. If set to False then organizer location data will not be shown and no carbon summary screen will be displayed to the participants. + + Boolean + + Boolean + + + None + + + AllowCartCaptionsScheduling + + Determines whether a user can add a URL for captions from a Communications Access Real-Time Translation (CART) captioner for providing real-time captions in meetings. + Possible values are: + - EnabledUserOverride : CART captions are available by default but you can disable them. - DisabledUserOverride : If you would like users to be able to use CART captions in meetings but they are disabled by default. - Disabled : If you do not want to allow CART captions in meetings. + + String + + String + + + DisabledUserOverride + + + AllowChannelMeetingScheduling + + Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. + + Boolean + + Boolean + + + None + + + AllowCloudRecording + + Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able to record meetings. Set this to FALSE to prohibit the user from recording meetings + + Boolean + + Boolean + + + None + + + AllowDocumentCollaboration + + This setting will allow admins to choose which users will be able to use the Document Collaboration feature. + + String + + String + + + None + + + AllowedStreamingMediaInput + + Enables the use of RTMP-In in Teams meetings. + Possible values are: + - <blank> + - RTMP + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingDetails + + Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. + Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. + - Everyone: All meeting participants can see the meeting info details. + + String + + String + + + UsersAllowedToByPassTheLobby + + + AllowEngagementReport + + Determines whether users are allowed to download the attendee engagement report. Set this to Enabled to allow the user to download the report. Set this to Disabled to prohibit the user to download it. ForceEnabled will enable attendee report generation and prohibit meeting organizer from disabling it. + Possible values: + - Enabled + - Disabled + - ForceEnabled + + String + + String + + + None + + + AllowExternalNonTrustedMeetingChat + + This field controls whether a user is allowed to chat in external meetings with users from non trusted organizations. + + Boolean + + Boolean + + + None + + + AllowExternalParticipantGiveRequestControl + + Determines whether external participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit an external user from giving or requesting control in a meeting + + Boolean + + Boolean + + + None + + + AllowImmersiveView + + If admins have disabled avatars, this does not disable using avatars in Immersive view on Teams desktop or web. Additionally, it does not prevent users from joining the Teams meeting on VR headsets. + + Boolean + + Boolean + + + None + + + AllowIPAudio + + Determines whether audio is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their audio. Set this to FALSE to prohibit the user from sharing their audio. + + Boolean + + Boolean + + + True + + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video + + Boolean + + Boolean + + + None + + + AllowLocalRecording + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowMeetingCoach + + This setting will allow admins to allow users the option of turning on Meeting Coach during meetings, which provides users with private personalized feedback on their communication and inclusivity. If set to True, then users will see and be able to click the option for turning on Meeting Coach during calls. If set to False, then users will not have the option to turn on Meeting Coach during calls. + + Boolean + + Boolean + + + None + + + AllowMeetingReactions + + Set to false to disable Meeting Reactions. + + Boolean + + Boolean + + + True + + + AllowMeetingRegistration + + Controls if a user can create a webinar meeting. The default value is True. + Possible values: + - true + - false + + Boolean + + Boolean + + + None + + + AllowMeetNow + + Determines whether a user can start ad-hoc meetings in a channel. Set this to TRUE to allow a user to start ad-hoc meetings in a channel. Set this to FALSE to prohibit the user from starting ad-hoc meetings in a channel. + + Boolean + + Boolean + + + TRUE + + + AllowNDIStreaming + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowNetworkConfigurationSettingsLookup + + Determines whether network configuration setting lookups can be made by users who are not Enterprise Voice enabled. It is used to enable Network Roaming policies. + + Boolean + + Boolean + + + False + + + AllowOrganizersToOverrideLobbySettings + + Set this parameter to true to enable Organizers to override lobby settings. + + Boolean + + Boolean + + + False + + + AllowOutlookAddIn + + Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling Teams meeting in Outlook client + + Boolean + + Boolean + + + None + + + AllowParticipantGiveRequestControl + + Determines whether participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user from giving, requesting control in a meeting + + Boolean + + Boolean + + + None + + + AllowPowerPointSharing + + Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit + + Boolean + + Boolean + + + None + + + AllowPrivateMeetingScheduling + + Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. + + Boolean + + Boolean + + + None + + + AllowPrivateMeetNow + + Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc private meetings. Set this to FALSE to prohibit the user from starting ad-hoc private meetings. + + Boolean + + Boolean + + + TRUE + + + AllowPSTNUsersToBypassLobby + + Determines whether a PSTN user joining the meeting is allowed or not to bypass the lobby. If you set this parameter to True, PSTN users are allowed to bypass the lobby as long as an authenticated user is joined to the meeting. + + Boolean + + Boolean + + + None + + + AllowRecordingStorageOutsideRegion + + Allow storing recording outside of region. All meeting recordings will be permanently stored in another region, and can't be migrated. For more info, see <https://aka.ms/in-region>. + + Boolean + + Boolean + + + None + + + AllowScreenContentDigitization + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowSharedNotes + + Determines whether users are allowed to take shared notes. Set this to TRUE to allow. Set this to FALSE to prohibit + + Boolean + + Boolean + + + None + + + AllowTasksFromTranscript + + This policy setting allows for the extraction of AI-Assisted Action Items/Tasks from the Meeting Transcript. + + String + + String + + + None + + + AllowTrackingInReport + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowTranscription + + Determines whether real-time and/or post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit + + Boolean + + Boolean + + + None + + + AllowUserToJoinExternalMeeting + + Possible values are: + - Enabled + - FederatedOnly + - Disabled + + String + + String + + + Disabled + + + AllowWatermarkCustomizationForCameraVideo + + Allows the admin to grant customization permissions to a meeting organizer + + Boolean + + Boolean + + + None + + + AllowWatermarkCustomizationForScreenSharing + + Allows the admin to grant customization permissions to a meeting organizer + + Boolean + + Boolean + + + None + + + AllowWatermarkForCameraVideo + + This setting allows scheduling meetings with watermarking for video enabled. + + Boolean + + Boolean + + + False + + + AllowWatermarkForScreenSharing + + This setting allows scheduling meetings with watermarking for screen sharing enabled. + + Boolean + + Boolean + + + False + + + AllowWhiteboard + + Determines whether whiteboard is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit + + Boolean + + Boolean + + + None + + + AnonymousUserAuthenticationMethod + + Determines how anonymous users will be authenticated when joining a meeting. + Possible values are: - OneTimePasscode , if you would like anonymous users to be sent a one time passcode to their email when joining a meeting - None , if you would like to disable authentication for anonymous users joining a meeting + + String + + String + + + OneTimePasscode + + + AttendeeIdentityMasking + + This setting will allow admins to enable or disable Masked Attendee mode in Meetings. Masked Attendee meetings will hide attendees' identifying information (e.g., name, contact information, profile photo). + Possible Values: Enabled: Hides attendees' identifying information in meetings. Disabled: Does not allow attendees' to hide identifying information in meetings + + String + + String + + + None + + + AudibleRecordingNotification + + The setting controls whether recording notification is played to all attendees or just PSTN users. + + String + + String + + + None + + + AutoAdmittedUsers + + Determines what types of participants will automatically be added to meetings organized by this user. Possible values are: + - EveryoneInCompany , if you would like meetings to place every external user in the lobby but allow all users in the company to join the meeting immediately. - EveryoneInSameAndFederatedCompany , if you would like meetings to allow federated users to join like your company's users, but place all other external users in a lobby. - Everyone , if you'd like to admit anonymous users by default. - OrganizerOnly , if you would like that only meeting organizers can bypass the lobby. - EveryoneInCompanyExcludingGuests , if you would like meetings to place every external and guest users in the lobby but allow all other users in the company to join the meeting immediately. - InvitedUsers , if you would like that only meeting organizers and invited users can bypass the lobby. + This setting also applies to participants joining via a PSTN device (i.e. a traditional phone). + + String + + String + + + None + + + AutomaticallyStartCopilot + + > [!Note] > This feature has not been fully released yet, so the setting will have no effect.* + This setting gives admins the ability to auto-start Copilot. + Possible values are: + - Enabled + - Disabled + + String + + String + + + Disabled + + + BlockedAnonymousJoinClientTypes + + A user can join a Teams meeting anonymously using a Teams client (https://support.microsoft.com/office/join-a-meeting-without-a-teams-account-c6efc38f-4e03-4e79-b28f-e65a4c039508) or using a [custom application built using Azure Communication Services](https://learn.microsoft.com/azure/communication-services/concepts/join-teams-meeting). When anonymous meeting join is enabled, both types of clients may be used by default. This optional parameter can be used to block one of the client types that can be used. + The allowed values are ACS (to block the use of Azure Communication Services clients) or Teams (to block the use of Teams clients). Both can also be specified, separated by a comma, but this is equivalent to disabling anonymous join completely. + + List + + List + + + Empty List + + + CaptchaVerificationForMeetingJoin + + Require a verification check for meeting join. + + String + + String + + + None + + + ChannelRecordingDownload + + Controls how channel meeting recordings are saved, permissioned, and who can download them. + Possible values: + Allow - Saves channel meeting recordings to a "Recordings" folder in the channel. The permissions on the recording files will be based on the Channel SharePoint permissions. This is the same as any other file uploaded for the channel. Block - Saves channel meeting recordings to a "Recordings\View only" folder in the channel. Channel owners will have full rights to the recordings in this folder, but channel members will have read access without the ability to download. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectToMeetingControls + + Allows external connections of thirdparty apps to Microsoft Teams + Possible values are: + Enabled Disabled + + String + + String + + + None + + + ContentSharingInExternalMeetings + + This policy allows admins to determine whether the user can share content in meetings organized by external organizations. The user should have a Teams Premium license to be protected under this policy. + + String + + String + + + None + + + Copilot + + This setting allows the admin to choose whether Copilot will be enabled with a persisted transcript or a non-persisted transcript. + Possible values are: + - Enabled + - EnabledWithTranscript + + String + + String + + + EnabledWithTranscript + + + CopyRestriction + + Enables a setting that controls a meeting option which allows users to disable right-click or Ctrl+C to copy, Copy link, Forward message, and Share to Outlook for meeting chat messages. + + Boolean + + Boolean + + + TRUE + + + Description + + Enables administrators to provide explanatory text about the meeting policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DesignatedPresenterRoleMode + + Determines if users can change the default value of the Who can present? setting in Meeting options in the Teams client. This policy setting affects all meetings, including Meet Now meetings. + Possible values are: + - EveryoneUserOverride: All meeting participants can be presenters. This is the default value. This parameter corresponds to the Everyone setting in Teams. - EveryoneInCompanyUserOverride: Authenticated users in the organization, including guest users, can be presenters. This parameter corresponds to the People in my organization setting in Teams. - EveryoneInSameAndFederatedCompanyUserOverride: Authenticated users in the organization, including guest users and users from federated organizations, can be presenters. This parameter corresponds to the People in my organization and trusted organizations setting in Teams. - OrganizerOnlyUserOverride: Only the meeting organizer can be a presenter and all meeting participants are designated as attendees. This parameter corresponds to the Only me setting in Teams. + + String + + String + + + EveryoneUserOverride + + + DetectSensitiveContentDuringScreenSharing + + Allows the admin to enable sensitive content detection during screen share. + + Boolean + + Boolean + + + None + + + EnrollUserOverride + + Possible values are: + - Disabled + - Enabled + + String + + String + + + Disabled + + + ExplicitRecordingConsent + + Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. + Possible Values: + - Enabled: Explicit consent, requires participant agreement. + - Disabled: Implicit consent, does not require participant agreement. + - LegitimateInterest: Legitimate interest, less restrictive consent to meet legitimate interest without requiring explicit agreement from participants. + + String + + String + + + None + + + ExternalMeetingJoin + + Possible values are: + - EnabledForAnyone + - EnabledForTrustedOrgs + - Disabled + + String + + String + + + EnabledForAnyone + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy being created. + + XdsIdentity + + XdsIdentity + + + None + + + InfoShownInReportMode + + This policy controls what kind of information get shown for the user's attendance in attendance report/dashboard. + + String + + String + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-. + + SwitchParameter + + SwitchParameter + + + False + + + IPAudioMode + + Determines whether audio can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming audio in the meeting. Set this to DISABLED to prohibit outgoing and incoming audio in the meeting. + + String + + String + + + None + + + IPVideoMode + + Determines whether video can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming video in the meeting. Set this to DISABLED to prohibit outgoing and incoming video in the meeting. Invalid value combination IPVideoMode: EnabledOutgoingIncoming and IPAudioMode: Disabled + + String + + String + + + None + + + LiveCaptionsEnabledType + + Determines whether real-time captions are available for the user in Teams meetings. Set this to DisabledUserOverride to allow user to turn on live captions. Set this to Disabled to prohibit. + + String + + String + + + None + + + LiveInterpretationEnabledType + + Allows meeting organizers to configure a meeting for language interpretation, selecting attendees of the meeting to become interpreters that other attendees can select and listen to the real-time translation they provide. + Possible values are: + DisabledUserOverride, if you would like users to be able to use interpretation in meetings but by default it is disabled. Disabled, prevents the option to be enabled in Meeting Options. + + String + + String + + + None + + + LiveStreamingMode + + Determines whether you provide support for your users to stream their Teams meetings to large audiences through Real-Time Messaging Protocol (RTMP). + Possible values are: + - Disabled (default) + - Enabled + + String + + String + + + None + + + LobbyChat + + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether chat messages are allowed in the lobby. + Possible values are: + - Enabled + - Disabled + + String + + String + + + None + + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + UInt32 + + UInt32 + + + None + + + MeetingChatEnabledType + + Specifies if users will be able to chat in meetings. Possible values are: Disabled, Enabled, and EnabledExceptAnonymous. + + String + + String + + + None + + + MeetingInviteLanguages + + > Applicable: Microsoft Teams + Controls how the join information in meeting invitations is displayed by enforcing a common language or enabling up to two languages to be displayed. + > [!NOTE] > All Teams supported languages can be specified using language codes. For more information about its delivery date, see the roadmap (Feature ID: 81521) (https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=81521). + The preliminary list of available languages is shown below: + `ar-SA,az-Latn-AZ,bg-BG,ca-ES,cs-CZ,cy-GB,da-DK,de-DE,el-GR,en-GB,en-US,es-ES,es-MX,et-EE,eu-ES,fi-FI,fil-PH,fr-CA,fr-FR,gl-ES,he-IL,hi-IN,hr-HR,hu-HU,id-ID,is-IS,it-IT,ja-JP,ka-GE,kk-KZ,ko-KR,lt-LT,lv-LV,mk-MK,ms-MY,nb-NO,nl-NL,nn-NO,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sq-AL,sr-Latn-RS,sv-SE,th-TH,tr-TR,uk-UA,vi-VN,zh-CN,zh-TW`. + + String + + String + + + None + + + NewMeetingRecordingExpirationDays + + Specifies the number of days before meeting recordings will expire and move to the recycle bin. Value can be from 1 to 99,999 days. + > [!NOTE] > You may opt to set Meeting Recordings to never expire by entering the value -1. + + Int32 + + Int32 + + + None + + + NoiseSuppressionForDialInParticipants + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Control Noises Supression Feature for PST legs joining a meeting. + Possible Values: + - MicrosoftDefault + - Enabled + - Disabled + + String + + String + + + None + + + ParticipantNameChange + + This setting will enable Tenant Admins to turn on/off participant renaming feature. + Possible Values: Enabled: Turns on the Participant Renaming feature. Disabled: Turns off the Particpant Renaming feature. + + String + + String + + + None + + + ParticipantSlideControl + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether participants can give control of presentation slides during meetings scheduled by this user. Set the type of users you want to be able to give control and be given control of presentation slides in meetings. Users excluded from the selected group will be prohibited from giving control, or being given control, in a meeting. + Possible Values: - Everyone: Anyone in the meeting can give or take control + - EveryoneInOrganization: Only internal AAD users and Multi-Tenant Organization (MTO) users can give or take control + - EveryoneInOrganizationAndGuests: Only those who are Guests to the tenant, MTO users, and internal AAD users can give or take control + - None: No one in the meeting can give or take control + + String + + String + + + Enabled + + + PreferredMeetingProviderForIslandsMode + + Determines the Outlook meeting add-in available to users on Islands mode. By default, this is set to TeamsAndSfb, and the users sees both the Skype for Business and Teams add-ins. Set this to Teams to remove the Skype for Business add-in and only show the Teams add-in. + + String + + String + + + TeamsAndSfb + + + QnAEngagementMode + + This setting enables Microsoft 365 Tenant Admins to Enable or Disable the Questions and Answers experience (Q+A). When Enabled, Organizers can turn on Q+A for their meetings. When Disabled, Organizers cannot turn on Q+A in their meetings. The setting is enforced when a meeting is created or is updated by Organizers. Attendees can use Q+A in meetings where it was previously added. Organizers can remove Q+A for those meetings through Teams and Outlook Meeting Options. Possible values: Enabled, Disabled + + String + + String + + + None + + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + + + RecordingStorageMode + + This parameter can take two possible values: + - Stream + - OneDriveForBusiness + + > [!Note] > The change of storing Teams meeting recordings from Classic Stream to OneDrive and SharePoint (ODSP) has been completed as of August 30th, 2021. All recordings are now stored in ODSP. This change overrides the RecordingStorageMode parameter, and modifying the setting in PowerShell no longer has any impact. + + String + + String + + + None + + + RoomAttributeUserOverride + + Possible values: + - Off + - Distinguish + - Attribute + + String + + String + + + None + + + RoomPeopleNameUserOverride + + Enabling people recognition requires the tenant CsTeamsMeetingPolicy roomPeopleNameUserOverride to be "On" and roomAttributeUserOverride to be Attribute for allowing individual voice and face profiles to be used for recognition in meetings. + > [!Note] > In some locations, people recognition can't be used due to local laws or regulations. Possible values: + - On + - Off + + String + + String + + + None + + + ScreenSharingMode + + Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens. + + String + + String + + + None + + + SmsNotifications + + Participants can sign up for text message meeting reminders. + + String + + String + + + None + + + SpeakerAttributionMode + + Possible values: + - EnabledUserOverride + - Disabled + + String + + String + + + None + + + StreamingAttendeeMode + + Possible values are: + - Disabled + - Enabled + + String + + String + + + Enabled + + + TeamsCameraFarEndPTZMode + + Possible values are: + - Disabled + - AutoAcceptInTenant + - AutoAcceptAll + + String + + String + + + Disabled + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + UsersCanAdmitFromLobby + + This policy controls who can admit from the lobby. + + String + + String + + + None + + + VideoFiltersMode + + Determines the background effects that a user can configure in the Teams client. Possible values are: + - NoFilters: No filters are available. + - BlurOnly: Background blur is the only option available (requires a processor with AVX2 support, see Hardware requirements for Microsoft Teams (https://learn.microsoft.com/microsoftteams/hardware-requirements-for-the-teams-app) for more information). - BlurAndDefaultBackgrounds: Background blur and a list of pre-selected images are available. + - AllFilters: All filters are available, including custom images. This is the default value. + + String + + String + + + AllFilters + + + VoiceIsolation + + Determines whether you provide support for your users to enable voice isolation in Teams meeting calls. + Possible values are: + - Enabled (default) + - Disabled + + String + + String + + + None + + + VoiceSimulationInInterpreter + + > Applicable: Microsoft Teams + > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the voice simulation feature while being AI interpreted. + Possible Values: + - Disabled + - Enabled + + String + + String + + + Disabled + + + WatermarkForAnonymousUsers + + Determines the meeting experience and watermark content of an anonymous user. + + String + + String + + + None + + + WatermarkForCameraVideoOpacity + + Allows the transparency of watermark to be customizable. + + Int64 + + Int64 + + + None + + + WatermarkForCameraVideoPattern + + Allows the pattern design of watermark to be customizable. + + String + + String + + + None + + + WatermarkForScreenSharingOpacity + + Allows the transparency of watermark to be customizable. + + Int64 + + Int64 + + + None + + + WatermarkForScreenSharingPattern + + Allows the pattern design of watermark to be customizable. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + WhoCanRegister + + Controls the attendees who can attend a webinar meeting. The default is Everyone, meaning that everyone can register. If you want to restrict registration to internal accounts, set the value to 'EveryoneInCompany'. + Possible values: + - Everyone + - EveryoneInCompany + + Object + + Object + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + New-CsTeamsMeetingPolicy -Identity SalesMeetingPolicy -AllowTranscription $True + + The command shown in Example 1 uses the New-CsTeamsMeetingPolicy cmdlet to create a new meeting policy with the Identity SalesMeetingPolicy. This policy will use all the default values for a meeting policy except one: AllowTranscription; in this example, meetings for users with this policy can include real time or post meeting captions and transcriptions. + + + + -------------------------- EXAMPLE 2 -------------------------- + New-CsTeamsMeetingPolicy -Identity HrMeetingPolicy -AutoAdmittedUsers "Everyone" -AllowMeetNow $False + + In Example 2, the New-CsTeamsMeetingPolicy cmdlet is used to create a meeting policy with the Identity HrMeetingPolicy. In this example two different property values are configured: AutoAdmittedUsers is set to Everyone and AllowMeetNow is set to False. All other policy properties will use the default values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingpolicy + + + + + + New-CsTeamsMeetingTemplatePermissionPolicy + New + CsTeamsMeetingTemplatePermissionPolicy + + Creates a new instance of the TeamsMeetingTemplatePermissionPolicy. + + + + Creates a new instance of the policy with a name and a list of hidden meeting template IDs. The template IDs passed into the `HiddenMeetingTemplates` object must be valid existing template IDs. The current custom and first-party templates on a tenant can be fetched by Get-CsTeamsMeetingTemplateConfiguration (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplateconfiguration) and [Get-CsTeamsFirstPartyMeetingTemplateConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfirstpartymeetingtemplateconfiguration)respectively. + + + + New-CsTeamsMeetingTemplatePermissionPolicy + + Description + + > Applicable: Microsoft Teams + Description of the new policy instance to be created. + + String + + String + + + None + + + HiddenMeetingTemplates + + > Applicable: Microsoft Teams + The list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate). + + HiddenMeetingTemplate[] + + HiddenMeetingTemplate[] + + + None + + + Identity + + > Applicable: Microsoft Teams + Name of the new policy instance to be created. + + String + + String + + + None + + + + + + Description + + > Applicable: Microsoft Teams + Description of the new policy instance to be created. + + String + + String + + + None + + + HiddenMeetingTemplates + + > Applicable: Microsoft Teams + The list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate). + + HiddenMeetingTemplate[] + + HiddenMeetingTemplate[] + + + None + + + Identity + + > Applicable: Microsoft Teams + Name of the new policy instance to be created. + + String + + String + + + None + + + + + + + + + + + + Example 1 - Creating a new meeting template permission policy + $hiddentemplate_1 = New-CsTeamsHiddenMeetingTemplate -Id customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056 +$hiddentemplate_2 = New-CsTeamsHiddenMeetingTemplate -Id firstparty_e514e598-fba6-4e1f-b8b3-138dd3bca748 + +New-CsTeamsMeetingTemplatePermissionPolicy -Identity Test_Policy -HiddenMeetingTemplates @($hiddentemplate_1, $hiddentemplate_2) -Description "This is a test policy" + +Identity : Tag:Test_Policy +HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056, firstparty_e514e598-fba6-4e1f-b8b3-138dd3bca748} +Description : This is a test policy + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsMeetingTemplatePermissionPolicy + + + New-CsTeamsHiddenMeetingTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate + + + Set-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy + + + Get-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy + + + Remove-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy + + + Grant-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy + + + + + + New-CsTeamsMessagingPolicy + New + CsTeamsMessagingPolicy + + The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. + + + + The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. This cmdlet creates a new Teams messaging policy. Custom policies can then be assigned to users using the Grant-CsTeamsMessagingPolicy cmdlet. + + + + New-CsTeamsMessagingPolicy + + Identity + + Unique identifier for the teams messaging policy to be created. + + XdsIdentity + + XdsIdentity + + + None + + + AllowSmartCompose + + Turn on this setting to let a user get text predictions for chat messages. + + Boolean + + Boolean + + + None + + + AllowChatWithGroup + + This setting determines if users can chat with groups (Distribution, M365 and Security groups). Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowCommunicationComplianceEndUserReporting + + This setting determines if users can report offensive messages to their admin for Communication Compliance. Possible Values: True, False + + Boolean + + Boolean + + + None + + + AllowCustomGroupChatAvatars + + These settings enables, disables updating or fetching custom group chat avatars for the users included in the messaging policy. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowExtendedWorkInfoInSearch + + This setting enables/disables showing company name and department name in search results for MTO users. + + Boolean + + Boolean + + + None + + + AllowFluidCollaborate + + This field enables or disables Fluid Collaborate feature for users. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowFullChatPermissionUserToDeleteAnyMessage + + This setting determines if users with the 'Full permissions' role can delete any group or meeting chat message within their tenant. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowGiphy + + Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowGiphyDisplay + + Determines if Giphy images should be displayed that had been already sent or received in chat. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowGroupChatJoinLinks + + This setting determines if users in a group chat can create and share join links for other users within the organization to join that chat. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowImmersiveReader + + Determines whether a user is allowed to use Immersive Reader for reading conversation messages. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowMemes + + Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowOwnerDeleteMessage + + Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this to FALSE to prohibit. + If the `-AllowUserDeleteMessage` parameter is set to FALSE, the team owner will not be able to delete their own messages. + + Boolean + + Boolean + + + None + + + AllowPasteInternetImage + + Determines if a user is allowed to paste internet-based images in compose. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowPriorityMessages + + Determines whether a user is allowed to send priorities messages. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowRemoveUser + + Determines whether a user is allowed to remove a user from a conversation. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSecurityEndUserReporting + + This setting determines if users can report any security concern posted in messages to their admin. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowSmartReply + + Turn this setting on to enable suggested replies for chat messages. + + Boolean + + Boolean + + + True + + + AllowStickers + + Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUrlPreviews + + Use this setting to turn automatic URL previewing on or off in messages. Set this to TRUE to turn on. Set this to FALSE to turn off. Note: Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for URL previews to be allowed. + + Boolean + + Boolean + + + None + + + AllowUserChat + + Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. + + Boolean + + Boolean + + + None + + + AllowUserDeleteChat + + Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. + + Boolean + + Boolean + + + None + + + AllowUserDeleteMessage + + Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUserEditMessage + + Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUserTranslation + + Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowVideoMessages + + This setting determines if users can create and send video messages. Possible values: True, False + + Boolean + + Boolean + + + None + + + AudioMessageEnabledType + + Determines whether a user is allowed to send audio messages. Possible values are: ChatsAndChannels,ChatsOnly,Disabled. + + AudioMessageEnabledTypeEnum + + AudioMessageEnabledTypeEnum + + + None + + + ChannelsInChatListEnabledType + + On mobile devices, enable to display favorite channels above recent chats. + Possible values are: DisabledUserOverride,EnabledUserOverride. + + ChannelsInChatListEnabledTypeEnum + + ChannelsInChatListEnabledTypeEnum + + + None + + + ChatPermissionRole + + Determines the Supervised Chat role of the user. Set this to Full to allow the user to supervise chats. Supervisors have the ability to initiate chats with and invite any user within the environment. Set this to Limited to allow the user to initiate conversations with Full and Limited permissioned users, but not Restricted. Set this to Restricted to block chat creation with anyone other than Full permissioned users. + + String + + String + + + Restricted + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + CreateCustomEmojis + + This setting enables the creation of custom emojis and reactions within an organization for the specified policy users. + + Boolean + + Boolean + + + None + + + DeleteCustomEmojis + + These settings enable and disable the editing and deletion of custom emojis and reactions for the users included in the messaging policy. + + Boolean + + Boolean + + + None + + + Description + + Allows you to provide a description of your policy to note the purpose of creating it. + + String + + String + + + None + + + DesignerForBackgroundsAndImages + + This setting determines whether a user is allowed to create custom AI-powered backgrounds and images with MS Designer. + Possible values are: Enabled, Disabled. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + GiphyRatingType + + Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or NORESTRICTION. + + String + + String + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-. + + + SwitchParameter + + + False + + + InOrganizationChatControl + + This setting determines if chat regulation for internal communication in the tenant is allowed. + + String + + String + + + None + + + ReadReceiptsEnabledType + + Use this setting to specify whether read receipts are user controlled, enabled for everyone, or disabled. Set this to UserPreference, Everyone or None. + + String + + String + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + Guid + + Guid + + + None + + + UsersCanDeleteBotMessages + + Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + False + + + UseB2BInvitesToAddExternalUsers + + Indicates whether B2B invites should be used to add external users when necessary. + Possible values: + - `Enabled`: External users will be added using B2B invites. + - `Disabled`: External users will not be added using B2B invites. + + System.String + + System.String + + + Disabled + + + AutoShareFilesInExternalChats + + Determines whether files are automatically shared in external chats. + Possible values: + - `Enabled`: Files are automatically shared in external chats. + - `Disabled`: Files are not automatically shared in external chats. + + System.String + + System.String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowChatWithGroup + + This setting determines if users can chat with groups (Distribution, M365 and Security groups). Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowCommunicationComplianceEndUserReporting + + This setting determines if users can report offensive messages to their admin for Communication Compliance. Possible Values: True, False + + Boolean + + Boolean + + + None + + + AllowCustomGroupChatAvatars + + These settings enables, disables updating or fetching custom group chat avatars for the users included in the messaging policy. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowExtendedWorkInfoInSearch + + This setting enables/disables showing company name and department name in search results for MTO users. + + Boolean + + Boolean + + + None + + + AllowFluidCollaborate + + This field enables or disables Fluid Collaborate feature for users. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowFullChatPermissionUserToDeleteAnyMessage + + This setting determines if users with the 'Full permissions' role can delete any group or meeting chat message within their tenant. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowGiphy + + Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowGiphyDisplay + + Determines if Giphy images should be displayed that had been already sent or received in chat. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowGroupChatJoinLinks + + This setting determines if users in a group chat can create and share join links for other users within the organization to join that chat. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowImmersiveReader + + Determines whether a user is allowed to use Immersive Reader for reading conversation messages. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowMemes + + Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowOwnerDeleteMessage + + Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this to FALSE to prohibit. + If the `-AllowUserDeleteMessage` parameter is set to FALSE, the team owner will not be able to delete their own messages. + + Boolean + + Boolean + + + None + + + AllowPasteInternetImage + + Determines if a user is allowed to paste internet-based images in compose. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowPriorityMessages + + Determines whether a user is allowed to send priorities messages. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowRemoveUser + + Determines whether a user is allowed to remove a user from a conversation. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSecurityEndUserReporting + + This setting determines if users can report any security concern posted in messages to their admin. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowSmartCompose + + Turn on this setting to let a user get text predictions for chat messages. + + Boolean + + Boolean + + + None + + + AllowSmartReply + + Turn this setting on to enable suggested replies for chat messages. + + Boolean + + Boolean + + + True + + + AllowStickers + + Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUrlPreviews + + Use this setting to turn automatic URL previewing on or off in messages. Set this to TRUE to turn on. Set this to FALSE to turn off. Note: Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for URL previews to be allowed. + + Boolean + + Boolean + + + None + + + AllowUserChat + + Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. + + Boolean + + Boolean + + + None + + + AllowUserDeleteChat + + Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. + + Boolean + + Boolean + + + None + + + AllowUserDeleteMessage + + Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUserEditMessage + + Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUserTranslation + + Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowVideoMessages + + This setting determines if users can create and send video messages. Possible values: True, False + + Boolean + + Boolean + + + None + + + AudioMessageEnabledType + + Determines whether a user is allowed to send audio messages. Possible values are: ChatsAndChannels,ChatsOnly,Disabled. + + AudioMessageEnabledTypeEnum + + AudioMessageEnabledTypeEnum + + + None + + + ChannelsInChatListEnabledType + + On mobile devices, enable to display favorite channels above recent chats. + Possible values are: DisabledUserOverride,EnabledUserOverride. + + ChannelsInChatListEnabledTypeEnum + + ChannelsInChatListEnabledTypeEnum + + + None + + + ChatPermissionRole + + Determines the Supervised Chat role of the user. Set this to Full to allow the user to supervise chats. Supervisors have the ability to initiate chats with and invite any user within the environment. Set this to Limited to allow the user to initiate conversations with Full and Limited permissioned users, but not Restricted. Set this to Restricted to block chat creation with anyone other than Full permissioned users. + + String + + String + + + Restricted + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + CreateCustomEmojis + + This setting enables the creation of custom emojis and reactions within an organization for the specified policy users. + + Boolean + + Boolean + + + None + + + DeleteCustomEmojis + + These settings enable and disable the editing and deletion of custom emojis and reactions for the users included in the messaging policy. + + Boolean + + Boolean + + + None + + + Description + + Allows you to provide a description of your policy to note the purpose of creating it. + + String + + String + + + None + + + DesignerForBackgroundsAndImages + + This setting determines whether a user is allowed to create custom AI-powered backgrounds and images with MS Designer. + Possible values are: Enabled, Disabled. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + GiphyRatingType + + Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or NORESTRICTION. + + String + + String + + + None + + + Identity + + Unique identifier for the teams messaging policy to be created. + + XdsIdentity + + XdsIdentity + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-. + + SwitchParameter + + SwitchParameter + + + False + + + InOrganizationChatControl + + This setting determines if chat regulation for internal communication in the tenant is allowed. + + String + + String + + + None + + + ReadReceiptsEnabledType + + Use this setting to specify whether read receipts are user controlled, enabled for everyone, or disabled. Set this to UserPreference, Everyone or None. + + String + + String + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + Guid + + Guid + + + None + + + UsersCanDeleteBotMessages + + Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + False + + + UseB2BInvitesToAddExternalUsers + + Indicates whether B2B invites should be used to add external users when necessary. + Possible values: + - `Enabled`: External users will be added using B2B invites. + - `Disabled`: External users will not be added using B2B invites. + + System.String + + System.String + + + Disabled + + + AutoShareFilesInExternalChats + + Determines whether files are automatically shared in external chats. + Possible values: + - `Enabled`: Files are automatically shared in external chats. + - `Disabled`: Files are not automatically shared in external chats. + + System.String + + System.String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy -AllowGiphy $false -AllowMemes $false + + In this example two different property values are configured: AllowGiphy is set to false and AllowMemes is set to False. All other policy properties will use the default values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmessagingpolicy + + + Set-CsTeamsMessagingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmessagingpolicy + + + Get-CsTeamsMessagingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy + + + Grant-CsTeamsMessagingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmessagingpolicy + + + Remove-CsTeamsMessagingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmessagingpolicy + + + + + + New-CsTeamsPersonalAttendantPolicy + New + CsTeamsPersonalAttendantPolicy + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Use this cmdlet to create a new instance of a Teams Personal Attendant Policy. + + + + The Teams Personal Attendant Policy controls personal attendant and its functionalities available to users in Microsoft Teams. This cmdlet allows admins to create new policy instances. + + + + New-CsTeamsPersonalAttendantPolicy + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + PersonalAttendant + + Enables the user to use the personal attendant + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CallScreening + + Enables the user to use the personal attendant call context evaluation features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CalendarBookings + + Enables the user to use the personal attendant calendar related features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundInternalCalls + + Enables the user to use the personal attendant for incoming domain calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundFederatedCalls + + Enables the user to use the personal attendant for incoming calls from other domains + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundPSTNCalls + + Enables the user to use the personal attendant for incoming PSTN calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticTranscription + + Enables the user to use the automatic storing of personal attendant call transcriptions + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticRecording + + Enables the user to use the automatic storing of personal attendant call recordings + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + PersonalAttendant + + Enables the user to use the personal attendant + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CallScreening + + Enables the user to use the personal attendant call context evaluation features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CalendarBookings + + Enables the user to use the personal attendant calendar related features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundInternalCalls + + Enables the user to use the personal attendant for incoming domain calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundFederatedCalls + + Enables the user to use the personal attendant for incoming calls from other domains + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundPSTNCalls + + Enables the user to use the personal attendant for incoming PSTN calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticTranscription + + Enables the user to use the automatic storing of personal attendant call transcriptions + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticRecording + + Enables the user to use the automatic storing of personal attendant call recordings + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + New-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy -CallScreening Enabled + + The cmdlet create the policy instance SalesPersonalAttendantPolicy and sets the value of the parameter CallScreening to Enabled. The rest of the parameters are set to the corresponding values in the Global policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamspersonalattendantpolicy + + + Get-CsTeamsPersonalAttendantPolicy + + + + Set-CsTeamsPersonalAttendantPolicy + + + + Grant-CsTeamsPersonalAttendantPolicy + + + + Remove-CsTeamsPersonalAttendantPolicy + + + + + + + New-CsTeamsRecordingRollOutPolicy + New + CsTeamsRecordingRollOutPolicy + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. + + + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. This policy would be deprecated over time as this is only to allow IT admins to phase the roll out of this breaking change. + The New-CsTeamsRecordingRollOutPolicy cmdlet allows administrators to define new CsTeamsRecordingRollOutPolicy that can be assigned to particular users to control Teams features related to meetings. + This command is available from Teams powershell module 6.1.1-preview and above. + + + + New-CsTeamsRecordingRollOutPolicy + + Identity + + Specify the name of the policy being created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + MeetingRecordingOwnership + + Specifies where the meeting recording get stored. Possible values are: - MeetingOrganizer + - RecordingInitiator + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy being created. + + String + + String + + + None + + + MeetingRecordingOwnership + + Specifies where the meeting recording get stored. Possible values are: - MeetingOrganizer + - RecordingInitiator + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + TeamsRecordingRollOutPolicy.Cmdlets.TeamsRecordingRollOutPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsRecordingRollOutPolicy -Identity OrganizerPolicy -MeetingRecordingOwnership MeetingOrganizer + + The command shown in Example 1 uses the New-CsTeamsRecordingRollOutPolicy cmdlet to create a new TeamsRecordingRollOutPolicy with the Identity OrganizerPolicy. This policy will set MeetingRecordingOwnership to MeetingOrganizer. Recordings for this policy group's users as organizer would get saved to organizers' own OneDrive. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsrecordingrolloutpolicy + + + + + + New-CsTeamsSharedCallingRoutingPolicy + New + CsTeamsSharedCallingRoutingPolicy + + Use the New-CsTeamsSharedCallingRoutingPolicy cmdlet to configure a shared calling routing policy. + + + + The Teams shared calling routing policy configures the caller ID for normal outbound PSTN and emergency calls made by users enabled for Shared Calling using this policy instance. + The caller ID for normal outbound PSTN calls is the phone number assigned to the resource account specified in the policy instance. Typically this is the organization's main auto attendant phone number. Callbacks will go to the auto attendant and the PSTN caller can use the auto attendant to be transferred to the shared calling user. + When a shared calling user makes an emergency call, the emergency services need to be able to make a direct callback to the user who placed the emergency call. One of the defined emergency numbers is used for this purpose as caller ID for the emergency call. It will be reserved for the next 60 minutes and any inbound call to that number will directly ring the shared calling user who made the emergency call. If no emergency numbers are defined, the phone number of the resource account is used as caller ID. If no free emergency numbers are available, the first number in the list is reused. + The emergency call will contain the location of the shared calling user. The location will be either the dynamic emergency location obtained by the Teams client or if that is not available the static location assigned to the phone number of the resource account used in the shared calling policy instance. + + + + New-CsTeamsSharedCallingRoutingPolicy + + Identity + + Unique identifier of the Teams shared calling routing policy to be created. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + The description of the new policy instance. + + String + + String + + + None + + + EmergencyNumbers + + An array of phone numbers used as caller ID on emergency calls. + The emergency numbers must be routable for inbound PSTN calls, and for Calling Plan and Operator Connect phone numbers, must be available within the organization. + The emergency numbers specified must all be of the same phone number type and country as the phone number assigned to the specified resource account. If the resource account has a Calling Plan service number assigned, the emergency numbers need to be Calling Plan subscriber numbers. + The emergency numbers must be unique and can't be reused in other shared calling policy instances. The emergency numbers can't be assigned to any user or resource account. + If no emergency numbers are configured, the phone number of the resource account is used as the Caller ID for the emergency call. + + System.Management.Automation.PSListModifier[String] + + System.Management.Automation.PSListModifier[String] + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + ResourceAccount + + The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. + The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. + - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. + The same resource account can be used in multiple shared calling policy instances. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + The description of the new policy instance. + + String + + String + + + None + + + EmergencyNumbers + + An array of phone numbers used as caller ID on emergency calls. + The emergency numbers must be routable for inbound PSTN calls, and for Calling Plan and Operator Connect phone numbers, must be available within the organization. + The emergency numbers specified must all be of the same phone number type and country as the phone number assigned to the specified resource account. If the resource account has a Calling Plan service number assigned, the emergency numbers need to be Calling Plan subscriber numbers. + The emergency numbers must be unique and can't be reused in other shared calling policy instances. The emergency numbers can't be assigned to any user or resource account. + If no emergency numbers are configured, the phone number of the resource account is used as the Caller ID for the emergency call. + + System.Management.Automation.PSListModifier[String] + + System.Management.Automation.PSListModifier[String] + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier of the Teams shared calling routing policy to be created. + + String + + String + + + None + + + ResourceAccount + + The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. + The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. + - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. + The same resource account can be used in multiple shared calling policy instances. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + In some Calling Plan markets, you are not allowed to set the location on service numbers. In this instance, kindly contact the Telephone Number Services service desk (https://learn.microsoft.com/microsoftteams/phone-reference/manage-numbers/contact-tns-service-desk). + If you are attempting to use a resource account with an Operator Connect phone number assigned, you should confirm support for Shared Calling with your operator. + Shared Calling is not supported for Calling Plan service phone numbers in Romania, the Czech Republic, Hungary, Singapore, New Zealand, Australia, and Japan. A limited number of existing Calling Plan service phone numbers in other countries are also not supported for Shared Calling. For such service phone numbers, please contact the Telephone Number Services service desk (https://learn.microsoft.com/microsoftteams/phone-reference/manage-numbers/contact-tns-service-desk). + This cmdlet was introduced in Teams PowerShell Module 5.5.0. + + + + + -------------------------- Example 1 -------------------------- + $ra = Get-CsOnlineUser -Identity ra1@contoso.com +$PhoneNumber=Get-CsPhoneNumberAssignment -AssignedPstnTargetId ra1@contoso.com +$CivicAddress = Get-CsOnlineLisCivicAddress -City Seattle +Set-CsPhoneNumberAssignment -LocationId $CivicAddress.DefaultLocationId -PhoneNumber $PhoneNumber.TelephoneNumber +New-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -ResourceAccount $ra.Identity -EmergencyNumbers @{add='+14255556677','+14255554321'} -Description 'Seattle' + + The command shown in Example 1 gets the identity and phone number assigned to the Teams resource account ra1@contoso.com, sets the location of the phone number to be the Seattle location, and creates a new Shared Calling policy called Seattle that is using the Teams resource account ra1@contoso.com and the emergency numbers +14255556677 and +14255554321. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy + + + Set-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy + + + Grant-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy + + + Remove-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy + + + Get-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy + + + Set-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment + + + + + + New-CsTeamsShiftsPolicy + New + CsTeamsShiftsPolicy + + This cmdlet allows you to create a new TeamsShiftPolicy instance and set it's properties. + + + + This cmdlet allows you to create a TeamsShiftPolicy instance. Use this to also set the policy name, schedule owner permissions, and Teams off shift warning message-specific settings (ShiftNoticeMessageType, ShiftNoticeMessageCustom, ShiftNoticeFrequency, AccessGracePeriodMinutes). + + + + New-CsTeamsShiftsPolicy + + Identity + + > Applicable: Microsoft Teams + Policy instance name. + + XdsIdentity + + XdsIdentity + + + None + + + AccessGracePeriodMinutes + + > Applicable: Microsoft Teams + Indicates the grace period time in minutes between when the first shift starts or last shift ends and when access is blocked. + + Int64 + + Int64 + + + None + + + AccessType + + > Applicable: Microsoft Teams + Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. + + String + + String + + + UnrestrictedAccess_TeamsApp + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnableScheduleOwnerPermissions + + > Applicable: Microsoft Teams + Indicates whether a user can manage a Shifts schedule as a team member. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + ShiftNoticeFrequency + + > Applicable: Microsoft Teams + Frequency of warning dialog displayed when user opens Teams. Select one of Always, ShowOnceOnChange, Never. + + String + + String + + + None + + + ShiftNoticeMessageCustom + + > Applicable: Microsoft Teams + Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + + String + + String + + + None + + + ShiftNoticeMessageType + + > Applicable: Microsoft Teams + The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + + String + + String + + + DefaultMessage + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AccessGracePeriodMinutes + + > Applicable: Microsoft Teams + Indicates the grace period time in minutes between when the first shift starts or last shift ends and when access is blocked. + + Int64 + + Int64 + + + None + + + AccessType + + > Applicable: Microsoft Teams + Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. + + String + + String + + + UnrestrictedAccess_TeamsApp + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableScheduleOwnerPermissions + + > Applicable: Microsoft Teams + Indicates whether a user can manage a Shifts schedule as a team member. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Policy instance name. + + XdsIdentity + + XdsIdentity + + + None + + + ShiftNoticeFrequency + + > Applicable: Microsoft Teams + Frequency of warning dialog displayed when user opens Teams. Select one of Always, ShowOnceOnChange, Never. + + String + + String + + + None + + + ShiftNoticeMessageCustom + + > Applicable: Microsoft Teams + Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + + String + + String + + + None + + + ShiftNoticeMessageType + + > Applicable: Microsoft Teams + The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + + String + + String + + + DefaultMessage + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsShiftsPolicy -Identity OffShiftAccessMessage1Always + + Creates a new instance of TeamsShiftsPolicy called OffShiftAccessMessage1Always and applies the default values to its settings. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsShiftsPolicy -Identity OffShiftAccessMessage1Always -ShiftNoticeFrequency always -ShiftNoticeMessageType Message1 -AccessType UnrestrictedAccess_TeamsApp -AccessGracePeriodMinutes 5 -EnableScheduleOwnerPermissions $false + + Creates a new instance of TeamsShiftsPolicy called OffShiftAccessMessage1Always and applies the provided values to its settings. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-teamsshiftspolicy + + + Get-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy + + + Set-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy + + + Remove-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy + + + Grant-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy + + + + + + New-CsTeamsTemplatePermissionPolicy + New + CsTeamsTemplatePermissionPolicy + + Creates a new instance of the TeamsTemplatePermissionPolicy. + + + + Creates a new instance of the policy with a name and a list of hidden Teams template IDs. The template IDs passed into the `HiddenTemplates` object must be valid existing template IDs. The current custom and first-party templates on a tenant can be fetched by Get-CsTeamTemplateList (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist). + + + + New-CsTeamsTemplatePermissionPolicy + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Description of the new policy instance to be created. + + String + + String + + + None + + + Force + + The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. + You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + + + SwitchParameter + + + False + + + HiddenTemplates + + The list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate). + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Description of the new policy instance to be created. + + String + + String + + + None + + + Force + + The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. + You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + + SwitchParameter + + SwitchParameter + + + False + + + HiddenTemplates + + The list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate). + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + + None + + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + TeamsTemplatePermissionPolicy.Cmdlets.TeamsTemplatePermissionPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS >$manageEventTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAnEvent +PS >$manageProjectTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAProject +PS >$HiddenList = @($manageProjectTemplate, $manageEventTemplate) +PS >New-CsTeamsTemplatePermissionPolicy -Identity Foobar -HiddenTemplates $HiddenList + +Identity HiddenTemplates Description +-------- --------------- ----------- +Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy + + + Get-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy + + + Remove-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy + + + Set-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy + + + + + + New-CsTeamsUpdateManagementPolicy + New + CsTeamsUpdateManagementPolicy + + Use this cmdlet to create Teams Update Management policy. + + + + The Teams Update Management Policy allows admins to specify if a given user is enabled to preview features in Teams. + This cmdlet can be used to create a new policy to manage the visibility of some Teams in-product messages. Executing the cmdlet will suppress the corresponding category of messages from appearing for the specified user group. + + + + New-CsTeamsUpdateManagementPolicy + + Identity + + A unique identifier. + + String + + String + + + None + + + AllowManagedUpdates + + Enables/Disables managed updates for the user. + + Boolean + + Boolean + + + None + + + AllowPreview + + Indicates whether all feature flags are switched on or off. Can be set only when AllowManagedUpdates is set to True. + + Boolean + + Boolean + + + None + + + AllowPrivatePreview + + This setting will allow admins to allow users in their tenant to opt in to Private Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is Forced, then users will be switched to Private Preview. + + AllowPrivatePreview + + AllowPrivatePreview + + + None + + + AllowPublicPreview + + This setting will allow admins to allow users in their tenant to opt in to Public Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is FollowOfficePreview, then users will not be able to opt in and instead follow their Office channel, and be switched to Public Preview if their Office channel is CC (Preview). The ring switcher UI will be hidden in the Desktop Client. This is not applicable to the Web Client. If it is Forced, then users will be switched to Public Preview. + + String + + String + + + None + + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DisabledInProductMessages + + List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: + | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33| What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | + + System.Management.Automation.PSListModifier`1[System.String] + + System.Management.Automation.PSListModifier`1[System.String] + + + None + + + Force + + Suppress all non-fatal errors. + + + SwitchParameter + + + False + + + OCDIRedirect + + This setting controls whether users are redirected from teams.microsoft.com to the unified domain teams.cloud.microsoft. Possible values are: - Microsoft Default , Microsoft will manage redirection behavior. If no explicit admin configuration is set, users may be redirected automatically. - Disabled , Users will remain on teams.microsoft.com. Use this if your organization's apps are incompatible with the unified domain. - Enabled , Users will be redirected to teams.cloud.microsoft. Use this only if your organization had previously opted out of redirection and now wants to opt back in. + + String + + String + + + None + + + UpdateDayOfWeek + + Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + + Int64 + + Int64 + + + None + + + UpdateTime + + Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. + + String + + String + + + None + + + UpdateTimeOfDay + + Machine local time. Can be set only when AllowManagedUpdates is set to True + + DateTime + + DateTime + + + None + + + UseNewTeamsClient + + This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowManagedUpdates + + Enables/Disables managed updates for the user. + + Boolean + + Boolean + + + None + + + AllowPreview + + Indicates whether all feature flags are switched on or off. Can be set only when AllowManagedUpdates is set to True. + + Boolean + + Boolean + + + None + + + AllowPrivatePreview + + This setting will allow admins to allow users in their tenant to opt in to Private Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is Forced, then users will be switched to Private Preview. + + AllowPrivatePreview + + AllowPrivatePreview + + + None + + + AllowPublicPreview + + This setting will allow admins to allow users in their tenant to opt in to Public Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is FollowOfficePreview, then users will not be able to opt in and instead follow their Office channel, and be switched to Public Preview if their Office channel is CC (Preview). The ring switcher UI will be hidden in the Desktop Client. This is not applicable to the Web Client. If it is Forced, then users will be switched to Public Preview. + + String + + String + + + None + + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DisabledInProductMessages + + List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: + | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33| What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | + + System.Management.Automation.PSListModifier`1[System.String] + + System.Management.Automation.PSListModifier`1[System.String] + + + None + + + Force + + Suppress all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A unique identifier. + + String + + String + + + None + + + OCDIRedirect + + This setting controls whether users are redirected from teams.microsoft.com to the unified domain teams.cloud.microsoft. Possible values are: - Microsoft Default , Microsoft will manage redirection behavior. If no explicit admin configuration is set, users may be redirected automatically. - Disabled , Users will remain on teams.microsoft.com. Use this if your organization's apps are incompatible with the unified domain. - Enabled , Users will be redirected to teams.cloud.microsoft. Use this only if your organization had previously opted out of redirection and now wants to opt back in. + + String + + String + + + None + + + UpdateDayOfWeek + + Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + + Int64 + + Int64 + + + None + + + UpdateTime + + Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. + + String + + String + + + None + + + UpdateTimeOfDay + + Machine local time. Can be set only when AllowManagedUpdates is set to True + + DateTime + + DateTime + + + None + + + UseNewTeamsClient + + This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + TeamsUpdateManagementPolicy.Cmdlets.TeamsUpdateManagementPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsUpdateManagementPolicy -Identity "Campaign Policy" -DisabledInProductMessages @("91382d07-8b89-444c-bbcb-cfe43133af33") + + Disable the in-product messages with the category "What's New". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsupdatemanagementpolicy + + + + + + New-CsTeamsVdiPolicy + New + CsTeamsVdiPolicy + + The New-CsTeamsVdiPolicy cmdlet allows administrators to define new Vdi policies that can be assigned to particular users to control Teams features related to meetings on a VDI environment. + + + + The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting for an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. + + + + New-CsTeamsVdiPolicy + + Identity + + Specify the name of the policy being created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DisableAudioVideoInCallsAndMeetings + + Determines whether a user on a non-optimized Vdi environment can hold person-to-person audio and video calls. Set this to TRUE to disallow a non-optimized user to hold person-to-person audio and video calls. Set this to FALSE to allow a non-optimized user to hold person-to-person audio and video calls. A user can still join a meeting and share screen from chat and join a meeting and share a screen and move their audio to a phone. + + Boolean + + Boolean + + + None + + + DisableCallsAndMeetings + + Determines whether a user on a non-optimized Vdi environment can make all types of calls. Set this to TRUE to disallow a non-optimized user to make calls, join meetings, and screen share from chat. Set this to FALSE to allow a non-optimized user to make calls, join meetings, and screen share from chat. + + Boolean + + Boolean + + + None + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + VDI2Optimization + + Determines whether a user can be VDI 2.0 optimized. * Enabled - allow a user to be VDI 2.0 optimized. + * Disabled - disallow a user to be VDI 2.0 optimized. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DisableAudioVideoInCallsAndMeetings + + Determines whether a user on a non-optimized Vdi environment can hold person-to-person audio and video calls. Set this to TRUE to disallow a non-optimized user to hold person-to-person audio and video calls. Set this to FALSE to allow a non-optimized user to hold person-to-person audio and video calls. A user can still join a meeting and share screen from chat and join a meeting and share a screen and move their audio to a phone. + + Boolean + + Boolean + + + None + + + DisableCallsAndMeetings + + Determines whether a user on a non-optimized Vdi environment can make all types of calls. Set this to TRUE to disallow a non-optimized user to make calls, join meetings, and screen share from chat. Set this to FALSE to allow a non-optimized user to make calls, join meetings, and screen share from chat. + + Boolean + + Boolean + + + None + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy being created. + + String + + String + + + None + + + VDI2Optimization + + Determines whether a user can be VDI 2.0 optimized. * Enabled - allow a user to be VDI 2.0 optimized. + * Disabled - disallow a user to be VDI 2.0 optimized. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + TeamsVdiPolicy.Cmdlets.TeamsVdiPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsVdiPolicy -Identity RestrictedUserPolicy -VDI2Optimization "Disabled" + + The command shown in Example 1 uses the New-CsTeamsVdiPolicy cmdlet to create a new Vdi policy with the Identity RestrictedUserPolicy. This policy will use all the default values for a vdi policy except one: VDI2Optimization; in this example, users with this policy will not be able to be VDI 2.0 optimized. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsVdiPolicy -Identity OnlyOptimizedPolicy -DisableAudioVideoInCallsAndMeetings $True -DisableCallsAndMeetings $True + + In Example 2, the New-CsTeamsVdiPolicy cmdlet is used to create a Vdi policy with the Identity OnlyOptimizedPolicy. In this example two different property values are configured: DisableAudioVideoInCallsAndMeetings is set to True and DisableCallsAndMeetings is set to True. All other policy properties will use the default values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvdipolicy + + + + + + New-CsTeamsVirtualAppointmentsPolicy + New + CsTeamsVirtualAppointmentsPolicy + + This cmdlet is used to create a new instance of the TeamsVirtualAppointmentsPolicy. + + + + Creates a new instance of the TeamsVirtualAppointmentsPolicy. This policy can be used to tailor the virtual appointment template meeting experience. The parameter `EnableSmsNotifications` allows you to specify whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using the virtual appointment meeting template. + + + + New-CsTeamsVirtualAppointmentsPolicy + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnableSmsNotifications + + > Applicable: Microsoft Teams + This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment template meeting. + + Boolean + + Boolean + + + True + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableSmsNotifications + + > Applicable: Microsoft Teams + This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment template meeting. + + Boolean + + Boolean + + + True + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + TeamsVirtualAppointmentsPolicy.Cmdlets.TeamsVirtualAppointmentsPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsVirtualAppointmentsPolicy -Identity sms-enabled + +Identity EnableSmsNotifications +-------- ---------------------- +Tag:sms-enabled True + + Creates a new policy instance with the identity enable-sms. `EnableSmsNotifications` will default to true if it is not specified. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsVirtualAppointmentsPolicy -Identity disable-sms -EnableSmsNotifications $false + +Identity EnableSmsNotifications +-------- ---------------------- +Tag:sms-enabled False + + Creates a new policy instance with the identity sms-disabled. `EnableSmsNotifications` is set to the value specified in the command. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy + + + Get-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy + + + Remove-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy + + + Set-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy + + + Grant-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy + + + + + + New-CsTeamsVoiceApplicationsPolicy + New + CsTeamsVoiceApplicationsPolicy + + Creates a new Teams voice applications policy. `TeamsVoiceApplications` policy governs what permissions the supervisors/users have over auto attendants and call queues. + + + + `TeamsVoiceApplicationsPolicy` is used for Supervisor Delegated Administration which allows admins in the organization to permit certain users to make changes to auto attendant and call queue configurations. + + + + New-CsTeamsVoiceApplicationsPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + AllowAutoAttendantAfterHoursGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantAfterHoursRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidayGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidayRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidaysChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantLanguageChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantTimeZoneChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. + + Boolean + + Boolean + + + False + + + AllowCallQueueAgentOptChange + + When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. + + Boolean + + Boolean + + + False + + + AllowCallQueueConferenceModeChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. + + Boolean + + Boolean + + + False + + + AllowCallQueueLanguageChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. + + Boolean + + Boolean + + + False + + + AllowCallQueueMembershipChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. + + Boolean + + Boolean + + + False + + + AllowCallQueueMusicOnHoldChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. + + Boolean + + Boolean + + + False + + + AllowCallQueueNoAgentSharedVoicemailGreetingChange + + This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueueNoAgentsRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueOptOutChange + + When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. + + Boolean + + Boolean + + + False + + + AllowCallQueueOverflowRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueuePresenceBasedRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + + Boolean + + Boolean + + + False + + + AllowCallQueueRoutingMethodChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + + Boolean + + Boolean + + + False + + + AllowCallQueueTimeoutRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueTimeoutSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueueWelcomeGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. + + Boolean + + Boolean + + + False + + + CallQueueAgentMonitorMode + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover + When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor call sessions. + When set to `Monitor`, users affected by the policy will be allowed to monitor and listen to call sessions. + When set to `Whisper`, users affected by the policy will be allowed to monitor call sessions and whisper to an agent in the call. + When set to `Barge`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, or join the call session. + When set to `Takeover`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, join the call session, or take over the call from an agent. + + Object + + Object + + + Disabled + + + CallQueueAgentMonitorNotificationMode + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Agent + When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor agents during call sessions. + When set to `Agent`, users affected by the policy will be allowed to monitor agents during call sessions. + + Object + + Object + + + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + HistoricalAgentMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. + + Object + + Object + + + None + + + HistoricalAutoAttendantMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. + + Object + + Object + + + None + + + HistoricalCallQueueMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. + + Object + + Object + + + None + + + RealTimeAgentMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAgentMetricsPermission set to `All` won't be able to access real-time metrics. + + Object + + Object + + + None + + + RealTimeAutoAttendantMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` won't be able to access real-time metrics. + + Object + + Object + + + None + + + RealTimeCallQueueMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` won't be able to access real-time metrics. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowAutoAttendantAfterHoursGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantAfterHoursRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidayGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidayRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidaysChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantLanguageChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantTimeZoneChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. + + Boolean + + Boolean + + + False + + + AllowCallQueueAgentOptChange + + When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. + + Boolean + + Boolean + + + False + + + AllowCallQueueConferenceModeChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. + + Boolean + + Boolean + + + False + + + AllowCallQueueLanguageChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. + + Boolean + + Boolean + + + False + + + AllowCallQueueMembershipChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. + + Boolean + + Boolean + + + False + + + AllowCallQueueMusicOnHoldChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. + + Boolean + + Boolean + + + False + + + AllowCallQueueNoAgentSharedVoicemailGreetingChange + + This option is not currently available in Queues app. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueueNoAgentsRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueOptOutChange + + When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. + + Boolean + + Boolean + + + False + + + AllowCallQueueOverflowRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueuePresenceBasedRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + + Boolean + + Boolean + + + False + + + AllowCallQueueRoutingMethodChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + + Boolean + + Boolean + + + False + + + AllowCallQueueTimeoutRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueTimeoutSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueueWelcomeGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. + + Boolean + + Boolean + + + False + + + CallQueueAgentMonitorMode + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover + When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor call sessions. + When set to `Monitor`, users affected by the policy will be allowed to monitor and listen to call sessions. + When set to `Whisper`, users affected by the policy will be allowed to monitor call sessions and whisper to an agent in the call. + When set to `Barge`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, or join the call session. + When set to `Takeover`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, join the call session, or take over the call from an agent. + + Object + + Object + + + Disabled + + + CallQueueAgentMonitorNotificationMode + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Agent + When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor agents during call sessions. + When set to `Agent`, users affected by the policy will be allowed to monitor agents during call sessions. + + Object + + Object + + + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + HistoricalAgentMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. + + Object + + Object + + + None + + + HistoricalAutoAttendantMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. + + Object + + Object + + + None + + + HistoricalCallQueueMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. + + Object + + Object + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + RealTimeAgentMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAgentMetricsPermission set to `All` won't be able to access real-time metrics. + + Object + + Object + + + None + + + RealTimeAutoAttendantMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` won't be able to access real-time metrics. + + Object + + Object + + + None + + + RealTimeCallQueueMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved, however, any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` won't be able to access real-time metrics. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + New-CsTeamsVoiceApplicationsPolicy -Identity SDA-Allow-CQ-Moh -AllowCallQueueMusicOnHoldChange $true + + The command shown in Example 1 creates a new per-user Teams voice applications policy with the Identity `SDA-Allow-Moh`. This policy allows delegated administrators to change the music on hold information. + + + + -------------------------- EXAMPLE 2 -------------------------- + New-CsTeamsVoiceApplicationsPolicy -Identity SDA-Allow-AA-After-Hour -AllowAutoAttendantAfterHoursGreetingChange $true + + The command shown in Example 2 creates a new per-user Teams voice applications policy with the Identity `SDA-Allow-AA-After-Hour`. This policy allows delegated administrators to change after-hours greetings for auto attendants. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy + + + Get-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy + + + Grant-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy + + + Remove-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy + + + Set-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy + + + + + + New-CsTeamsWorkLocationDetectionPolicy + New + CsTeamsWorkLocationDetectionPolicy + + This cmdlet is used to create a new instance of the TeamsWorkLocationDetectionPolicy. + + + + Creates a new instance of the TeamsWorkLocationDetectionPolicy. This policy can be used to tailor the work location detection experience. The parameter `EnableWorkLocationDetection` allows your organization to collect the work location of users when they connect, interact, or are detected near your organization's networks and devices. It also captures the geographic location information users share from personal and mobile devices. This gives users the ability to consent to the use of this location data to set their current work location.Microsoft collects this information to provide users with a consistent location-based experience and to improve the hybrid work experience in Microsoft 365 according to the Microsoft Privacy Statement (https://go.microsoft.com/fwlink/?LinkId=521839). + The end user experience utilizing this policy has rolled out to the general public. You can see updates at Microsoft 365 Roadmap | Microsoft 365 (https://www.microsoft.com/en-us/microsoft-365/roadmap?msockid=287ab43847c06d0008cca05b46076c18&filters=&searchterms=automatically%2Cset%2Cwork%2Clocation%22https://www.microsoft.com/en-us/microsoft-365/roadmap?msockid=287ab43847c06d0008cca05b46076c18&filters=&searchterms=automatically%2cset%2cwork%2clocation%22) and to learn more on how to enable the end user experience, please see [Setting up Bookable Desks in Microsoft Teams - Microsoft Teams | Microsoft Learn.](https://learn.microsoft.com/microsoftteams/rooms/bookable-desks). + + + + New-CsTeamsWorkLocationDetectionPolicy + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnableWorkLocationDetection + + This setting allows your organization to collect the work location of users when they connect, interact, or are detected near your organization's networks and devices. It also captures the geographic location information users share from personal and mobile devices. This gives users the ability to consent to the use of this location data to set their current work location.Microsoft collects this information to provide users with a consistent location-based experience and to improve the hybrid work experience in Microsoft 365 according to the Microsoft Privacy Statement (https://go.microsoft.com/fwlink/?LinkId=521839). + + Boolean + + Boolean + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableWorkLocationDetection + + This setting allows your organization to collect the work location of users when they connect, interact, or are detected near your organization's networks and devices. It also captures the geographic location information users share from personal and mobile devices. This gives users the ability to consent to the use of this location data to set their current work location.Microsoft collects this information to provide users with a consistent location-based experience and to improve the hybrid work experience in Microsoft 365 according to the Microsoft Privacy Statement (https://go.microsoft.com/fwlink/?LinkId=521839). + + Boolean + + Boolean + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + TeamsWorkLocationDetectionPolicy.Cmdlets.TeamsWorkLocationDetectionPolicy + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsWorkLocationDetectionPolicy -Identity wld-policy -EnableWorkLocationDetection $true + +Identity EnableWorkLocationDetection +-------- ---------------------- +Tag:wld-policy True + + Creates a new policy instance with the identity wld-enabled. `EnableWorkLocationDetection` is set to the value specified in the command. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsWorkLocationDetectionPolicy -Identity wld-policy + +Identity EnableWorkLocationDetection +-------- ---------------------- +Tag:wld-policy False + + Creates a new policy instance with the identity wld-policy. `EnableWorkLocationDetection` will default to false if it is not specified. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy + + + Get-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy + + + Remove-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy + + + Set-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy + + + Grant-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy + + + + + + Remove-CsExternalAccessPolicy + Remove + CsExternalAccessPolicy + + Enables you to remove an existing external access policy. + + + + This cmdlet was introduced in Lync Server 2010. + When you install Skype for Business Server your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with other people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. + 1. That might be sufficient to meet your communication needs. If it doesn't meet your needs you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: + 2. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation alone will not provide users with this capability. Instead, you must enable federation and then assign users an external access policy that gives them the right to communicate with federated users. + 3. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). This policy setting only applies if ACS federation has been enabled at the tenant level using the cmdlet [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration). + 4. Communicate with people who have SIP accounts with a public instant messaging service such as Windows Live. + Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. + When you install Skype for Business Server, a global external access policy is automatically created for you. In addition to the global policy, you can use the `New-CsExternalAccessPolicy` cmdlet to create external access policies configured at the site or per-user scopes. + The `Remove-CsExternalAccessPolicy` cmdlet enables you to delete any policies that were created by using the `New-CsExternalAccessPolicy` cmdlet; that means you can delete any policies assigned to the site scope or the per-user scope. You can also run the `Remove-CsExternalAccessPolicy` cmdlet against the global external access policy. In that case, however, the global policies will not be deleted; by design, global policies cannot be deleted. Instead, the properties of the global policy will simply be reset to their default values. + + + + Remove-CsExternalAccessPolicy + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the external access policy to be removed. External access policies can be configured at the global, site, or per-user scopes. To "remove" the global policy, use this syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in the global policy will be reset to their default values.) To remove a site policy, use syntax similar to this: `-Identity site:Redmond`. To remove a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. + Note that wildcards are not allowed when specifying an Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the external access policy is being removed. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your Skype for Business Online tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the external access policy to be removed. External access policies can be configured at the global, site, or per-user scopes. To "remove" the global policy, use this syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in the global policy will be reset to their default values.) To remove a site policy, use syntax similar to this: `-Identity site:Redmond`. To remove a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. + Note that wildcards are not allowed when specifying an Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the external access policy is being removed. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your Skype for Business Online tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Input types + + + Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. The `Remove-CsExternalAccessPolicy` cmdlet accepts pipelined input of the external access policy object. + + + + + + + Output types + + + None. Instead, the `Remove-CsExternalAccessPolicy` cmdlet does not return a value or object. Instead, the cmdlet deletes instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsExternalAccessPolicy -Identity site:Redmond + + In Example 1, the external access policy with the Identity site:Redmond is deleted. After the policy is removed, users in the Redmond site will have their external access permissions governed by the global policy. + + + + -------------------------- Example 2 -------------------------- + Get-CsExternalAccessPolicy -Filter site:* | Remove-CsExternalAccessPolicy + + Example 2 deletes all the external access policies that have been configured at the site scope. To carry out this task, the command first uses the `Get-CsExternalAccessPolicy` cmdlet and the Filter parameter to return a collection of policies configured at the site scope; the filter value "site:*" limits the returned data to external access policies that have an Identity that begins with the string value "site:". The filtered collection is then piped to the `Remove-CsExternalAccessPolicy` cmdlet, which deletes each policy in the collection. + + + + -------------------------- Example 3 -------------------------- + Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True} | Remove-CsExternalAccessPolicy + + In Example 3, all the external access policies that allow federation access are deleted. To do this, the command first calls the `Get-CsExternalAccessPolicy` cmdlet to return a collection of all the external access policies configured for use in the organization. This collection is then piped to the `Where-Object` cmdlet, which picks out only those policies where the EnableFederationAccess property is equal to True. This filtered collection is then piped to the `Remove-CsExternalAccessPolicy` cmdlet, which deletes each policy in the collection. + + + + -------------------------- Example 4 -------------------------- + Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True -or $_.EnablePublicCloudAccess -eq $True} | Remove-CsExternalAccessPolicy + + Example 4 deletes all the external access policies that meet at least one of two criteria: federation access is allowed, public cloud access is allowed, or both are allowed. To carry out this task, the command first uses the `Get-CsExternalAccessPolicy` cmdlet to return a collection of all the external access policies configured for use in the organization. This collection is then piped to the `Where-Object` cmdlet, which selects only those policies that meet the following criteria: either EnableFederationAccess is equal to True and/or EnablePublicCloudAccess is equal to True. Policies meeting one (or both) of those criteria are then piped to and removed by, the `Remove-CsExternalAccessPolicy` cmdlet. + To delete all the policies where both EnableFederationAccess and EnablePublicCloudAccess are True use the -and operator when calling the `Where-Object` cmdlet: + `Where-Object {$ .EnableFederationAccess -eq $True -and $ .EnablePublicCloudAccess -eq $True}` + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy + + + Get-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy + + + Grant-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + New-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Set-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + + + + Remove-CsOnlineVoicemailPolicy + Remove + CsOnlineVoicemailPolicy + + Deletes an existing Online Voicemail policy or resets the Global policy instance to the default values. + + + + Deletes an existing Online Voicemail policy or resets the Global policy instance to the default values. + + + + Remove-CsOnlineVoicemailPolicy + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + You are not able to delete the pre-configured policy instances Default, TranscriptionProfanityMaskingEnabled and TranscriptionDisabled + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineVoicemailPolicy -Identity "CustomOnlineVoicemailPolicy" + + The command shown in Example 1 deletes a per-user online voicemail policy CustomOnlineVoicemailPolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy + + + Get-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy + + + Set-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy + + + New-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy + + + Grant-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy + + + + + + Remove-CsTeamsAIPolicy + Remove + CsTeamsAIPolicy + + This cmdlet deletes a Teams AI policy. + + + + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + This cmdlet deletes a Teams AI policy with the specified identity string. + + + + Remove-CsTeamsAIPolicy + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsAIPolicy -Identity "Test" + + Deletes a Teams AI policy with the identify of "Test". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsAIPolicy + + + New-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy + + + Get-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy + + + Grant-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy + + + Set-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy + + + + + + Remove-CsTeamsAppPermissionPolicy + Remove + CsTeamsAppPermissionPolicy + + This cmdlet allows you to remove app permission policies that have been created within your organization. + + + + NOTE : You can use this cmdlet to remove a specific custom policy from a user. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Permission Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. + This cmdlet allows you to remove app permission policies that have been created within your organization. If you run Remove-CsTeamsAppPermissionPolicy on the Global policy, it will be reset to the defaults provided for new organizations. This is only applicable for tenants who have not been migrated to ACM or UAM. + + + + Remove-CsTeamsAppPermissionPolicy + + Identity + + > Applicable: Microsoft Teams + Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsAppPermissionPolicy -Identity SalesPolicy + + Deletes a custom policy that has already been created in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsapppermissionpolicy + + + + + + Remove-CsTeamsAppSetupPolicy + Remove + CsTeamsAppSetupPolicy + + You can use this cmdlet to remove custom app setup policies. + + + + NOTE : You can use this cmdlet to remove custom app setup policies. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. + Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + If you run Remove-CsTeamsAppSetupPolicy on the Global policy, it will be reset to the defaults provided for new organizations. + + + + Remove-CsTeamsAppSetupPolicy + + Identity + + > Applicable: Microsoft Teams + Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Unique identifier for the policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsAppSetupPolicy -Identity SalesPolicy + + Deletes a custom policy that has already been created in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsappsetuppolicy + + + + + + Remove-CsTeamsCallHoldPolicy + Remove + CsTeamsCallHoldPolicy + + Deletes an existing Teams call hold policy in your tenant. The Teams call hold policy is used to customize the call hold experience for Teams clients. + + + + Teams call hold policies are used to customize the call hold experience for teams clients. When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. + Assigning a Teams call hold policy to a user sets an audio file to be played during the duration of the hold. + + + + Remove-CsTeamsCallHoldPolicy + + Identity + + Unique identifier of the Teams call hold policy to be removed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier of the Teams call hold policy to be removed. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsCallHoldPolicy -Identity 'ContosoPartnerTeamsCallHoldPolicy' + + The command shown in Example 1 deletes the Teams call hold policy ContosoPartnerTeamsCallHoldPolicy. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsCallHoldPolicy -Filter 'Tag:*' | Remove-CsTeamsCallHoldPolicy + + In Example 2, all the Teams call hold policies configured at the per-user scope are removed. The Filter value "Tag:*" limits the returned data to Teams call hold policies configured at the per-user scope. Those per-user policies are then removed. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy + + + New-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy + + + Get-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy + + + Set-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy + + + Grant-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy + + + + + + Remove-CsTeamsCallingPolicy + Remove + CsTeamsCallingPolicy + + + + + + This cmdlet removes an existing Teams Calling Policy instance or resets the Global policy instance to the default values. + + + + Remove-CsTeamsCallingPolicy + + Identity + + The Identity parameter is the unique identifier of the Teams Calling Policy instance to remove or reset. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The Identity parameter is the unique identifier of the Teams Calling Policy instance to remove or reset. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsCallingPolicy -Identity Sales + + This example removes the Teams Calling Policy with identity Sales + + + + -------------------------- Example 2 -------------------------- + PS C:\> Remove-CsTeamsCallingPolicy -Identity Global + + This example resets the Global Policy instance to the default values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy + + + Set-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy + + + Get-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy + + + Grant-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy + + + New-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy + + + + + + Remove-CsTeamsChannelsPolicy + Remove + CsTeamsChannelsPolicy + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. + + + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. The Remove-CsTeamsChannelsPolicy cmdlet lets you delete a custom policy that has been configured in your organization. + If you run Remove-CsTeamsChannelsPolicy on the Global policy, it will be reset to the defaults provided for new organizations. + + + + Remove-CsTeamsChannelsPolicy + + Identity + + > Applicable: Microsoft Teams + The name of the policy to be removed. Wildcards are not supported. + To remove a custom policy, use syntax similar to this: `-Identity "Student Policy"`. + To "remove" the global policy, use the following syntax: `-Identity Global`. You can't actually remove the global policy. Instead, all properties will be reset to their default values as shown in the default policy (`Tag:Default`). + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The name of the policy to be removed. Wildcards are not supported. + To remove a custom policy, use syntax similar to this: `-Identity "Student Policy"`. + To "remove" the global policy, use the following syntax: `-Identity Global`. You can't actually remove the global policy. Instead, all properties will be reset to their default values as shown in the default policy (`Tag:Default`). + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsChannelsPolicy -Identity SalesPolicy + + Deletes a custom policy that has already been created in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy + + + + + + Remove-CsTeamsComplianceRecordingApplication + Remove + CsTeamsComplianceRecordingApplication + + Deletes an existing association between an application instance of a policy-based recording application and a Teams recording policy for administering automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Policy-based recording applications are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to enforce compliance with the administrative set policy. + Instances of these applications are created using CsOnlineApplicationInstance cmdlets and are then associated with Teams recording policies. + Note that application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. Once the association is done, the Identity of these application instances becomes <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. Please also refer to the documentation of CsTeamsComplianceRecordingPolicy cmdlets for further information. + + + + Remove-CsTeamsComplianceRecordingApplication + + Identity + + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams compliance recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams compliance recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' + + The command shown in Example 1 deletes an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingApplication | Remove-CsTeamsComplianceRecordingApplication + + The command shown in Example 2 deletes all existing associations between application instances of policy-based recording applications and their corresponding Teams compliance recording policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + Remove-CsTeamsComplianceRecordingPolicy + Remove + CsTeamsComplianceRecordingPolicy + + Deletes an existing Teams recording policy that is used to govern automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Teams recording policies are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to record audio, video and video-based screen sharing activity. + Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. + + + + Remove-CsTeamsComplianceRecordingPolicy + + Identity + + Unique identifier to be assigned to the new Teams recording policy. + Use the "Global" Identity if you wish to assign this policy to the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier to be assigned to the new Teams recording policy. + Use the "Global" Identity if you wish to assign this policy to the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' + + The command shown in Example 1 deletes the Teams recording policy ContosoPartnerComplianceRecordingPolicy. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingPolicy -Filter 'Tag:*' | Remove-CsTeamsComplianceRecordingPolicy + + In Example 2, all the Teams recording policies configured at the per-user scope are removed. The Filter value "Tag:*" limits the returned data to Teams recording policies configured at the per-user scope. Those per-user policies are then removed. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + Remove-CsTeamsCustomBannerText + Remove + CsTeamsCustomBannerText + + Enables administrators to remove a custom banner text configuration that is displayed when compliance recording bots start recording the call. + + + + Removes a single instance of custom banner text. + + + + Remove-CsTeamsCustomBannerText + + Identity + + > Applicable: Microsoft Teams + Policy instance name (optional). + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + Policy instance name (optional). + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsCustomBannerText -Identity CustomText + + This example removes a TeamsCustomBannerText instance with the name "CustomText". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsCustomBannerText + + + Set-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext + + + New-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext + + + Remove-CsTeamsCustomBannerText + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext + + + + + + Remove-CsTeamsEmergencyCallingPolicy + Remove + CsTeamsEmergencyCallingPolicy + + + + + + This cmdlet removes an existing Teams Emergency Calling policy. + + + + Remove-CsTeamsEmergencyCallingPolicy + + Identity + + The Identity parameter is the unique identifier of the Teams Emergency Calling policy to remove. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The Identity parameter is the unique identifier of the Teams Emergency Calling policy to remove. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsTeamsEmergencyCallingPolicy -Identity testECP + + This example removes an existing Teams Emergency Calling policy with identity testECP. + + + + -------------------------- Example 2 -------------------------- + Remove-CsTeamsEmergencyCallingPolicy -Identity Global + + This example resets the Global Policy instance to the default values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy + + + New-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy + + + Grant-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy + + + Get-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy + + + Set-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy + + + + + + Remove-CsTeamsEventsPolicy + Remove + CsTeamsEventsPolicy + + The CsTeamsEventsPolicy cmdlets removes a previously created TeamsEventsPolicy. Note that this policy is currently still in preview. + + + + Deletes a previously created TeamsEventsPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. + + + + Remove-CsTeamsEventsPolicy + + Identity + + Unique identifier for the teams events policy to be removed. To remove the global policy, use this syntax: -Identity Global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy DisablePublicWebinars, use this syntax: -Identity DisablePublicWebinars. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the teams events policy to be removed. To remove the global policy, use this syntax: -Identity Global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy DisablePublicWebinars, use this syntax: -Identity DisablePublicWebinars. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsEventsPolicy -Identity DisablePublicWebinars + + In this example, the command will delete the DisablePublicWebinars policy from the organization's list of policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamseventspolicy + + + + + + Remove-CsTeamsFeedbackPolicy + Remove + CsTeamsFeedbackPolicy + + Use this cmdlet to remove a Teams Feedback policy from the Tenant. + + + + Removes a Teams Feedback policy from the Tenant. + + + + Remove-CsTeamsFeedbackPolicy + + Identity + + The identity of the policy to be removed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The identity of the policy to be removed. + + String + + String + + + None + + + Tenant + + Internal Microsoft use. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsFeedbackPolicy -Identity "New Hire Feedback Policy" + + In this example, the policy "New Hire Feedback Policy" is being removed. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfeedbackpolicy + + + + + + Remove-CsTeamsFilesPolicy + Remove + CsTeamsFilesPolicy + + Deletes an existing teams files policy or resets the Global policy instance to the default values. + + + + Deletes an existing teams files or resets the Global policy instance to the default values. + + + + Remove-CsTeamsFilesPolicy + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + + + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + + + + + You are not able to delete the pre-configured policy instances Default, TranscriptionProfanityMaskingEnabled and TranscriptionDisabled + + + + + -------------------------- Example 1 -------------------------- + Remove-CsTeamsFilesPolicy -Identity "Customteamsfilespolicy" + + The command shown in Example 1 deletes a per-user teams files policy Customteamsfilespolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy + + + + + + Remove-CsTeamsMediaConnectivityPolicy + Remove + CsTeamsMediaConnectivityPolicy + + This cmdlet deletes a Teams media connectivity policy. + + + + This cmdlet deletes a Teams media connectivity policy with the specified identity string. + + + + Remove-CsTeamsMediaConnectivityPolicy + + Identity + + Identity of the Teams media connectivity policy. + + String + + String + + + None + + + + + + Identity + + Identity of the Teams media connectivity policy. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsMediaConnectivityPolicy -Identity "Test" + + Deletes a Teams media connectivity policy with the identify of "Test". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsMediaConnectivityPolicy + + + New-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy + + + Get-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy + + + Set-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy + + + + + + Remove-CsTeamsMeetingBrandingPolicy + Remove + CsTeamsMeetingBrandingPolicy + + The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. + + + + Deletes a previously created TeamsMeetingBrandingPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. If you want to remove policies currently assigned to one or more users, you should first assign a different policy to them. + + + + Remove-CsTeamsMeetingBrandingPolicy + + Identity + + Unique identifier of the policy to be deleted. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier of the policy to be deleted. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + Available in Teams PowerShell Module 4.9.3 and later. + + + + + ---------------- Remove meeting branding policy ---------------- + PS C:\> Remove-CsTeamsMeetingBrandingPolicy -Identity "policy test" + + In this example, the command deletes the `policy test` meeting branding policy from the organization's list of meeting branding policies and removes all assignments of this policy from users who have the policy assigned. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy + + + Get-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy + + + Grant-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy + + + New-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy + + + Remove-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy + + + Set-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy + + + + + + Remove-CsTeamsMeetingPolicy + Remove + CsTeamsMeetingPolicy + + The `CsTeamsMeetingPolicy` cmdlets removes a previously created TeamsMeetingPolicy. + + + + Deletes a previously created TeamsMeetingPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. If you want to remove policies currently assigned to one or more users, you should assign a different policy to them before. + + + + Remove-CsTeamsMeetingPolicy + + Identity + + Unique identifier for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMeetingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMeetingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsMeetingPolicy -Identity StudentMeetingPolicy + + In the example shown above, the command will delete the student meeting policy from the organization's list of policies and remove all assignments of this policy from users who have had the policy assigned. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingpolicy + + + + + + Remove-CsTeamsMeetingTemplatePermissionPolicy + Remove + CsTeamsMeetingTemplatePermissionPolicy + + Deletes an instance of TeamsMeetingTemplatePermissionPolicy. + + + + Deletes an instance of TeamsMeetingTemplatePermissionPolicy. The `Identity` parameter accepts the identity of the policy instance to delete. + + + + Remove-CsTeamsMeetingTemplatePermissionPolicy + + Identity + + > Applicable: Microsoft Teams + Identity of the policy instance to be deleted. + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + Identity of the policy instance to be deleted. + + String + + String + + + None + + + + + + + + + + + + -- Example 1 - Deleting a meeting template permission policy -- + Remove-CsTeamsMeetingTemplatePermissionPolicy -Identity Test_Policy + + Deletes a policy instance with the Identity Test_Policy . + + + + -- Example 2 - Deleting a policy when its assigned to a user -- + Remove-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar + +Remove-CsTeamsMeetingTemplatePermissionPolicy : The policy "Foobar" is currently assigned to one or more users. Assign a different policy to the users before removing +this one. Please refer to documentation. CorrelationId: 8698472b-f441-423b-8ee3-0469c7e07528 +At line:1 char:1 ++ Remove-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: (:) [Remove-CsTeamsM...ermissionPolicy], PolicyRpException + + FullyQualifiedErrorId : ClientError,Microsoft.Teams.Policy.Administration.Cmdlets.Core.RemoveTeamsMeetingTemplatePermissionPolicyCmdlet + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsMeetingTemplatePermissionPolicy + + + Set-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy + + + Get-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy + + + New-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy + + + Grant-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy + + + + + + Remove-CsTeamsMessagingPolicy + Remove + CsTeamsMessagingPolicy + + Deletes a custom messaging policy. Teams messaging policies determine the features and capabilities that can be used in messaging within the teams client. + + + + Deletes a previously created TeamsMessagingPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. + + + + Remove-CsTeamsMessagingPolicy + + Identity + + Unique identifier for the teams messaging policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMessagingPolicy . + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the teams messaging policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMessagingPolicy . + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy + + In the example shown above, the command will delete the student messaging policy from the organization's list of policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmessagingpolicy + + + + + + Remove-CsTeamsNotificationAndFeedsPolicy + Remove + CsTeamsNotificationAndFeedsPolicy + + Deletes an existing Teams Notification and Feeds Policy + + + + The Microsoft Teams notifications and feeds policy allows administrators to manage how notifications and activity feeds are handled within Teams. This policy includes settings that control the types of notifications users receive, how they are delivered, and which activities are highlighted in their feeds. + + + + Remove-CsTeamsNotificationAndFeedsPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsNotificationAndFeedsPolicy + + Remove an existing Notifications and Feeds Policy + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsnotificationandfeedspolicy + + + + + + Remove-CsTeamsPersonalAttendantPolicy + Remove + CsTeamsPersonalAttendantPolicy + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Use this cmdlet to remove an existing instance of a Teams Personal Attendant Policy or reset the Global policy instance to the default values. + + + + This cmdlet removes an existing Teams Personal Attendant Policy instance or resets the Global policy instance to the default values. + + + + Remove-CsTeamsPersonalAttendantPolicy + + Identity + + The Identity parameter is the unique identifier of the Teams Personal Attendant Policy instance to remove or reset. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + + + + Identity + + The Identity parameter is the unique identifier of the Teams Personal Attendant Policy instance to remove or reset. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy + + This example removes the Teams Personal Attendant Policy with identity SalesPersonalAttendantPolicy + + + + -------------------------- Example 2 -------------------------- + Remove-CsTeamsPersonalAttendantPolicy -Identity Global + + This example resets the Global Personal Attendant Policy instance to the default values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamspersonalattendantpolicy + + + New-CsTeamsPersonalAttendantPolicy + + + + Get-CsTeamsPersonalAttendantPolicy + + + + Set-CsTeamsPersonalAttendantPolicy + + + + Grant-CsTeamsPersonalAttendantPolicy + + + + + + + Remove-CsTeamsRecordingRollOutPolicy + Remove + CsTeamsRecordingRollOutPolicy + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. + + + + Removes a previously created CsTeamsRecordingRollOutPolicy. + This command is available from Teams powershell module 6.1.1-preview and above. + + + + Remove-CsTeamsRecordingRollOutPolicy + + Identity + + Unique identifier for the CsTeamsRecordingRollOutPolicy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity SomePolicy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the CsTeamsRecordingRollOutPolicy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity SomePolicy. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsRecordingRollOutPolicy -Identity OrganizerPolicy + + In the example shown above, the command will delete the OrganizerPolicy from the organization's list of policies and remove all assignments of this policy from users who have had the policy assigned. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsrecordingrolloutpolicy + + + + + + Remove-CsTeamsSharedCallingRoutingPolicy + Remove + CsTeamsSharedCallingRoutingPolicy + + Deletes an existing Teams shared calling routing policy instance. + + + + TeamsSharedCallingRoutingPolicy is used to configure shared calling. + + + + Remove-CsTeamsSharedCallingRoutingPolicy + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the policy when it is created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the policy when it is created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + This cmdlet was introduced in Teams PowerShell Module 5.5.0. + + + + + -------------------------- EXAMPLE 1 -------------------------- + Remove-CsTeamsSharedCallingRoutingPolicy -Identity "Seattle" + + The command shown in Example 1 deletes the Teams shared calling routing policy instance Seattle. + + + + -------------------------- EXAMPLE 2 -------------------------- + Get-CsTeamsSharedCallingRoutingPolicy -Filter "tag:*" | Remove-CsTeamsSharedCallingRoutingPolicy + + In Example 2, all Teams shared calling routing policies configured at the per-user scope are removed. To do this, the command first calls the Get-CsTeamsSharedCallingRoutingPolicy cmdlet along with the Filter parameter; the filter value "tag:*" limits the returned data to Teams shared calling routing policies configured at the per-user scope. Those per-user policies are then piped to and removed by the Remove-CsTeamsSharedCallingRoutingPolicy cmdlet. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy + + + Get-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy + + + Grant-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy + + + Set-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy + + + New-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy + + + + + + Remove-CsTeamsShiftsPolicy + Remove + CsTeamsShiftsPolicy + + The `Remove-CsTeamsShiftsPolicy` cmdlet removes a previously created TeamsShiftsPolicy. + + + + Note: A TeamsShiftsPolicy needs to be unassigned from all the users before it can be deleted. + + + + Remove-CsTeamsShiftsPolicy + + Identity + + > Applicable: Microsoft Teams + Policy instance name. + + XdsIdentity + + XdsIdentity + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + Policy instance name. + + XdsIdentity + + XdsIdentity + + + None + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsShiftsPolicy -Identity OffShiftAccess_WarningMessage1_AlwaysShowMessage + + In this example, the policy instance to be removed is called "OffShiftAccess_WarningMessage1_AlwaysShowMessage". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamsshiftspolicy + + + Get-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy + + + New-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy + + + Set-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy + + + Grant-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy + + + + + + Remove-CsTeamsTemplatePermissionPolicy + Remove + CsTeamsTemplatePermissionPolicy + + Deletes an instance of TeamsTemplatePermissionPolicy. + + + + Deletes an instance of TeamsTemplatePermissionPolicy. The `Identity` parameter accepts the identity of the policy instance to delete. + + + + Remove-CsTeamsTemplatePermissionPolicy + + Identity + + Name of the policy instance to be deleted. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. + You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. + You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the policy instance to be deleted. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS >Remove-CsTeamsTemplatePermissionPolicy -Identity Foobar + + Deletes a policy instance with the Identity Foobar . + + + + -------------------------- Example 2 -------------------------- + PS >Remove-CsTeamsTemplatePermissionPolicy -Identity Foobar + +Remove-CsTeamsTemplatePermissionPolicy : The policy "Foobar" is currently assigned to one or more users or groups. Ensure policy is not assigned before removing. Please refer to documentation. CorrelationId: 8622aac5-00c3-4071-b6d0-d070db8f663f +At line:1 char:1 ++ Remove-CsTeamsTemplatePermissionPolicy -Identity Foobar ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: (:) [Remove-CsTeamsTemplatePermissionPolicy], PolicyRpException + + FullyQualifiedErrorId : ClientError,Microsoft.Teams.Policy.Administration.Cmdlets.Core.RemoveTeamsTemplatePermissionPolicyCmdlet + + Attempting to delete a policy instance that is currently assigned to users will result in an error. Remove the assignment before attempting to delete it. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy + + + Get-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy + + + New-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy + + + Set-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy + + + + + + Remove-CsTeamsUpdateManagementPolicy + Remove + CsTeamsUpdateManagementPolicy + + Use this cmdlet to remove a Teams Update Management policy from the tenant. + + + + Removes a Teams Update Management policy from the tenant. + + + + Remove-CsTeamsUpdateManagementPolicy + + Identity + + The identity of the policy to be removed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The identity of the policy to be removed. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsUpdateManagementPolicy -Identity "Campaign Policy" + + In this example, the policy "Campaign Policy" is being removed. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsupdatemanagementpolicy + + + + + + Remove-CsTeamsVdiPolicy + Remove + CsTeamsVdiPolicy + + This CsTeamsVdiPolicy cmdlets removes a previously created TeamsVdiPolicy. + + + + Deletes a previously created TeamsVdiPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. If you want to remove policies currently assigned to one or more users, you should assign a different policy to them before. + + + + Remove-CsTeamsVdiPolicy + + Identity + + Unique identifier for the teams Vdi policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity RestrictedUserPolicy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the teams Vdi policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity RestrictedUserPolicy. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsMeetingPolicy -Identity RestrictedUserPolicy + + In the example shown above, the command will delete the restricted user policy from the organization's list of policies and remove all assignments of this policy from users who have had the policy assigned. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvdipolicy + + + + + + Remove-CsTeamsVirtualAppointmentsPolicy + Remove + CsTeamsVirtualAppointmentsPolicy + + This cmdlet is used to delete an instance of TeamsVirtualAppointmentsPolicy. + + + + Deletes an instance of TeamsVirtualAppointmentsPolicy. The `Identity` parameter accepts the identity of the policy instance to delete. + + + + Remove-CsTeamsVirtualAppointmentsPolicy + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\>Remove-CsTeamsVirtualAppointmentsPolicy -Identity Foobar + + Deletes a given policy instance with the Identity Foobar. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy + + + Get-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy + + + New-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy + + + Set-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy + + + Grant-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy + + + + + + Remove-CsTeamsVoiceApplicationsPolicy + Remove + CsTeamsVoiceApplicationsPolicy + + Deletes an existing Teams voice applications policy. + + + + TeamsVoiceApplicationsPolicy is used for Supervisor Delegated Administration which allows tenant admins to permit certain users to make changes to auto attendant and call queue configurations. + + + + Remove-CsTeamsVoiceApplicationsPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Remove-CsTeamsVoiceApplicationsPolicy -Identity "SDA-Allow-All" + + The command shown in Example 1 deletes the Teams voice applications policy SDA-Allow-All. + + + + -------------------------- EXAMPLE 2 -------------------------- + Get-CsTeamsVoiceApplicationsPolicy -Filter "tag:*" | Remove-CsTeamsVoiceApplicationsPolicy + + In Example 2, all Teams voice applications policies configured at the per-user scope are removed. To do this, the command first calls the Get-CsTeamsVoiceApplicationsPolicy cmdlet along with the Filter parameter; the filter value "tag:*" limits the returned data to Teams voice applications policies configured at the per-user scope. Those per-user policies are then piped to and removed by the Remove-CsTeamsVoiceApplicationsPolicy cmdlet. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy + + + Get-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy + + + Grant-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy + + + Set-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy + + + New-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy + + + + + + Remove-CsTeamsWorkLocationDetectionPolicy + Remove + CsTeamsWorkLocationDetectionPolicy + + This cmdlet is used to delete an instance of TeamsWorkLocationDetectionPolicy. + + + + Deletes an instance of TeamsWorkLocationDetectionPolicy. The `Identity` parameter accepts the identity of the policy instance to delete. + + + + Remove-CsTeamsWorkLocationDetectionPolicy + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\>Remove-CsTeamsWorkLocationDetectionPolicy -Identity wld-policy + + Deletes a given policy instance with the Identity wld-policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy + + + Get-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy + + + New-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy + + + Set-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy + + + Grant-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy + + + + + + Set-CsExternalAccessPolicy + Set + CsExternalAccessPolicy + + Enables you to modify the properties of an existing external access policy. + + + + This cmdlet was introduced in Lync Server 2010. + When you install Skype for Business Server your users are only allowed to exchange instant messages and presence information among themselves: by default, they can only communicate with people who have SIP accounts in your Active Directory Domain Services. In addition, users are not allowed to access Skype for Business Server over the Internet; instead, they must be logged on to your internal network before they will be able to log on to Skype for Business Server. + That might be sufficient to meet your communication needs. If it doesn't meet your needs, you can use external access policies to extend the ability of your users to communicate and collaborate. External access policies can grant (or revoke) the ability of your users to do any or all of the following: + 1. Communicate with people who have SIP accounts with a federated organization. Note that enabling federation alone will not provide users with this capability. Instead, you must enable federation and then assign users an external access policy that gives them the right to communicate with federated users. + 2. (Microsoft Teams only) Communicate with users who are using custom applications built with Azure Communication Services (ACS) (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). this policy setting only applies if acs federation has been enabled at the tenant level using the [Set-CsTeamsAcsFederationConfiguration](https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration)cmdlet. + 3. Access Skype for Business Server over the Internet, without having to first log on to your internal network. This enables your users to use Skype for Business and log on to Skype for Business Server from an Internet café or other remote location. + 4. Communicate with people who have SIP accounts with a public instant messaging service such as Skype. + The following parameters are not applicable to Skype for Business Online/Microsoft Teams: Description, EnableXmppAccess, Force, Identity, Instance, PipelineVariable, and Tenant + 5. (Microsoft Teams Only) Communicate with people who are using Teams with an account that's not managed by an organization. This policy only applies if Teams Consumer Federation has been enabled at the tenant level using the Set-CsTeamsAcsFederationConfiguration (https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration)cmdlet or Teams admin center under the External Access setting. + After an external access policy has been created, you can use the `Set-CsExternalAccessPolicy` cmdlet to change the property values of that policy. For example, by default the global policy does not allow users to communicate with people who have accounts with a federated organization. If you would like to grant this capability to all of your users you can call the `Set-CsExternalAccessPolicy` cmdlet and set the value of the global policy's EnableFederationAccess property to True. + > [!NOTE] > For the domain settings defined under `AllowFederatedUsers` to be applied, the value of the property `AllowedFederatedUsers` under `TenantFederationConfiguration` should be set to `True` for the Tenant. + + + + Set-CsExternalAccessPolicy + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the external access policy to be modified. External access policies can be configured at the global, site, or per-user scopes. To modify the global policy, use this syntax: `-Identity global`. To modify a site policy, use syntax similar to this: `-Identity site:Redmond`. To modify a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. If this parameter is not specified then the global policy will be modified. + Note that wildcards are not allowed when specifying an Identity. + + XdsIdentity + + XdsIdentity + + + None + + + AllowedExternalDomains + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Specifies the external domains allowed to communicate with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `AllowSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. + + List + + List + + + None + + + BlockedExternalDomains + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Specifies the external domains blocked from communicating with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `BlockSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. + + List + + List + + + None + + + CommunicationWithExternalOrgs + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Indicates how the users get assigned by this policy can communicate with the external orgs. There are 5 options: + - OrganizationDefault: users follow the federation settings specified in `TenantFederationConfiguration`. This is the default value. + - AllowAllExternalDomains: users are allowed to communicate with all domains. + - AllowSpecificExternalDomains: users can communicate with external domains listed in `AllowedExternalDomains`. + - BlockSpecificExternalDomains: users are blocked from communicating with domains listed in `BlockedExternalDomains`. + - BlockAllExternalDomains: users cannot communicate with any external domains. + + The setting is only applicable when `EnableFederationAccess` is set to true. This setting can only be modified in custom policies. In the Global (default) policy, it is fixed to `OrganizationDefault` and cannot be changed. + + String + + String + + + OrganizationDefault + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables administrators to provide additional text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + EnableAcsFederationAccess + + > Applicable: Microsoft Teams + Indicates whether Teams meeting organized by the user can be joined by users of customer applications built using Azure Communication Services (ACS). This policy setting only applies if ACS Teams federation has been enabled at the tenant level using the cmdlet Set-CsTeamsAcsFederationConfiguration. + Additionally, Azure Communication Services users would be able to call Microsoft 365 users that have assigned policies with enabled federation. + To enable for all users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to True. It can be disabled for selected users by assigning them a policy with federation disabled. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + + Boolean + + Boolean + + + True + + + EnableFederationAccess + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to communicate with people who have SIP accounts with a federated organization. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + None + + + EnableOutsideAccess + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to connect to Skype for Business Server over the Internet, without logging on to the organization's internal network. The default value is False. + + Boolean + + Boolean + + + None + + + EnablePublicCloudAudioVideoAccess + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to conduct audio/video conversations with people who have SIP accounts with a public Internet connectivity provider such as MSN. When set to False, audio and video options in Skype for Business will be disabled any time a user is communicating with a public Internet connectivity contact. The default value is False. + + Boolean + + Boolean + + + None + + + EnableTeamsConsumerAccess + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + (Microsoft Teams Only) Indicates whether the user is allowed to communicate with people who have who are using Teams with an account that's not managed by an organization. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableTeamsConsumerInbound + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + (Microsoft Teams Only) Indicates whether the user is allowed to be discoverable by people who are using Teams with an account that's not managed by an organization. It also controls if people who have who are using Teams with an account that's not managed by an organization can start the communication with the user. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableTeamsSmsAccess + + Allows you to control whether users can have SMS text messaging capabilities within Teams. Possible Values: True, False + + Boolean + + Boolean + + + None + + + EnableXmppAccess + + > Applicable: Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to communicate with users who have SIP accounts with a federated XMPP (Extensible Messaging and Presence Protocol) partner. The default value is False. + + Boolean + + Boolean + + + None + + + FederatedBilateralChats + + This setting enables bi-lateral chats for the users included in the messaging policy. + Some organizations may want to restrict who users are able to message in Teams. While organizations have always been able to limit users' chats to only other internal users, organizations can now limit users' chat ability to only chat with other internal users and users in one other organization via the bilateral chat policy. + Once external access and bilateral policy is set up, users with the policy can be in external group chats only with a maximum of two organizations. When they try to create a new external chat with users from more than two tenants or add a user from a third tenant to an existing external chat, a system message will be shown preventing this action. + Users with bilateral policy applied are also removed from existing external group chats with more than two organizations. + This policy doesn't apply to meetings, meeting chats, or channels. + + Boolean + + Boolean + + + False + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. + + + SwitchParameter + + + False + + + Instance + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + RestrictTeamsConsumerAccessToExternalUserProfiles + + Defines if a user is restriced to collaboration with Teams Consumer (TFL) user only in Extended Directory Possible Values: True, False + + Boolean + + Boolean + + + None + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the external access policy is being modified. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your Skype for Business Online tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + AllowedExternalDomains + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Specifies the external domains allowed to communicate with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `AllowSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. + + List + + List + + + None + + + BlockedExternalDomains + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Specifies the external domains blocked from communicating with users assigned to this policy. This setting is applicable only when `CommunicationWithExternalOrgs` is configured to `BlockSpecificExternalDomains`. This setting can be modified only in custom policy. In Global (default) policy `CommunicationWithExternalOrgs` can only be set to `OrganizationDefault` and cannot be changed. + + List + + List + + + None + + + CommunicationWithExternalOrgs + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + > [!NOTE] > Please note that this parameter is in Public Preview. + Indicates how the users get assigned by this policy can communicate with the external orgs. There are 5 options: + - OrganizationDefault: users follow the federation settings specified in `TenantFederationConfiguration`. This is the default value. + - AllowAllExternalDomains: users are allowed to communicate with all domains. + - AllowSpecificExternalDomains: users can communicate with external domains listed in `AllowedExternalDomains`. + - BlockSpecificExternalDomains: users are blocked from communicating with domains listed in `BlockedExternalDomains`. + - BlockAllExternalDomains: users cannot communicate with any external domains. + + The setting is only applicable when `EnableFederationAccess` is set to true. This setting can only be modified in custom policies. In the Global (default) policy, it is fixed to `OrganizationDefault` and cannot be changed. + + String + + String + + + OrganizationDefault + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Enables administrators to provide additional text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + EnableAcsFederationAccess + + > Applicable: Microsoft Teams + Indicates whether Teams meeting organized by the user can be joined by users of customer applications built using Azure Communication Services (ACS). This policy setting only applies if ACS Teams federation has been enabled at the tenant level using the cmdlet Set-CsTeamsAcsFederationConfiguration. + Additionally, Azure Communication Services users would be able to call Microsoft 365 users that have assigned policies with enabled federation. + To enable for all users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to True. It can be disabled for selected users by assigning them a policy with federation disabled. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + + Boolean + + Boolean + + + True + + + EnableFederationAccess + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to communicate with people who have SIP accounts with a federated organization. Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + None + + + EnableOutsideAccess + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to connect to Skype for Business Server over the Internet, without logging on to the organization's internal network. The default value is False. + + Boolean + + Boolean + + + None + + + EnablePublicCloudAudioVideoAccess + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to conduct audio/video conversations with people who have SIP accounts with a public Internet connectivity provider such as MSN. When set to False, audio and video options in Skype for Business will be disabled any time a user is communicating with a public Internet connectivity contact. The default value is False. + + Boolean + + Boolean + + + None + + + EnableTeamsConsumerAccess + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + (Microsoft Teams Only) Indicates whether the user is allowed to communicate with people who have who are using Teams with an account that's not managed by an organization. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableTeamsConsumerInbound + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + (Microsoft Teams Only) Indicates whether the user is allowed to be discoverable by people who are using Teams with an account that's not managed by an organization. It also controls if people who have who are using Teams with an account that's not managed by an organization can start the communication with the user. + To enable just for a selected set of users, use the Set-CsExternalAccessPolicy cmdlet to update the global policy, setting the value to False. Then assign selected users a policy with federation enabled. + Read Manage external access in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-external-access)to get more information about the effect of this parameter in Microsoft Teams. The default value is True. + + Boolean + + Boolean + + + True + + + EnableTeamsSmsAccess + + Allows you to control whether users can have SMS text messaging capabilities within Teams. Possible Values: True, False + + Boolean + + Boolean + + + None + + + EnableXmppAccess + + > Applicable: Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to communicate with users who have SIP accounts with a federated XMPP (Extensible Messaging and Presence Protocol) partner. The default value is False. + + Boolean + + Boolean + + + None + + + FederatedBilateralChats + + This setting enables bi-lateral chats for the users included in the messaging policy. + Some organizations may want to restrict who users are able to message in Teams. While organizations have always been able to limit users' chats to only other internal users, organizations can now limit users' chat ability to only chat with other internal users and users in one other organization via the bilateral chat policy. + Once external access and bilateral policy is set up, users with the policy can be in external group chats only with a maximum of two organizations. When they try to create a new external chat with users from more than two tenants or add a user from a third tenant to an existing external chat, a system message will be shown preventing this action. + Users with bilateral policy applied are also removed from existing external group chats with more than two organizations. + This policy doesn't apply to meetings, meeting chats, or channels. + + Boolean + + Boolean + + + False + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the external access policy to be modified. External access policies can be configured at the global, site, or per-user scopes. To modify the global policy, use this syntax: `-Identity global`. To modify a site policy, use syntax similar to this: `-Identity site:Redmond`. To modify a per-user policy, use syntax similar to this: `-Identity SalesAccessPolicy`. If this parameter is not specified then the global policy will be modified. + Note that wildcards are not allowed when specifying an Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + RestrictTeamsConsumerAccessToExternalUserProfiles + + Defines if a user is restriced to collaboration with Teams Consumer (TFL) user only in Extended Directory Possible Values: True, False + + Boolean + + Boolean + + + None + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the external access policy is being modified. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your Skype for Business Online tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Input types + + + Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. The `Set-CsExternalAccessPolicy` cmdlet accepts pipelined input of the external access policy object. + + + + + + + Output types + + + The `Set-CsExternalAccessPolicy` cmdlet does not return a value or object. Instead, the cmdlet configures instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsExternalAccessPolicy -Identity RedmondExternalAccessPolicy -EnableFederationAccess $True + + The command shown in Example 1 modifies the per-user external access policy that has the Identity RedmondExternalAccessPolicy. In this example, the command changes the value of the EnableFederationAccess property to True. + + + + -------------------------- Example 2 -------------------------- + Get-CsExternalAccessPolicy | Set-CsExternalAccessPolicy -EnableFederationAccess $True + + In Example 2, federation access is enabled for all the external access policies configured for use in the organization. To do this, the command first calls the `Get-CsExternalAccessPolicy` cmdlet without any parameters; this returns a collection of all the external policies currently configured for use. That collection is then piped to the `Set-CsExternalAccessPolicy` cmdlet, which changes the value of the EnableFederationAccess property for each policy in the collection. + + + + -------------------------- Example 3 -------------------------- + Get-CsExternalAccessPolicy -Filter tag:* | Set-CsExternalAccessPolicy -EnableFederationAccess $True + + Example 3 enables federation access for all the external access policies that have been configured at the per-user scope. To carry out this task, the first thing the command does is use the `Get-CsExternalAccessPolicy` cmdlet and the Filter parameter to return a collection of all the policies that have been configured at the per-user scope. (The filter value "tag:*" limits returned data to policies that have an Identity that begins with the string value "tag:". Any policy with an Identity that begins with "tag:" has been configured at the per-user scope.) The filtered collection is then piped to the `Set-CsExternalAccessPolicy` cmdlet, which modifies the EnableFederationAccess property for each policy in the collection. + + + + -------------------------- Example 4 -------------------------- + Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $false +New-CsExternalAccessPolicy -Identity AcsFederationAllowed -EnableAcsFederationAccess $true + + In this example, the Global policy is updated to disallow Teams-ACS federation for all users, then a new external access policy instance is created with Teams-ACS federation enabled and which can be assigned to selected users for which Team-ACS federation will be allowed. + + + + -------------------------- Example 5 -------------------------- + Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $true +New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederationAccess $false + + In this example, the Global policy is updated to allow Teams-ACS federation for all users, then a new external access policy instance is created with Teams-ACS federation disabled and which can then be assigned to selected users for which Team-ACS federation will not be allowed. + + + + -------------------------- Example 6 -------------------------- + New-CsExternalAccessPolicy -Identity GranularFederationExample -CommunicationWithExternalOrgs "AllowSpecificExternalDomains" -AllowedExternalDomains @("example1.com", "example2.com") +Set-CsTenantFederationConfiguration -CustomizeFederation $true + + In this example, we create an ExternalAccessPolicy named "GranularFederationExample" that allows communication with specific external domains, namely `example1.com` and `example2.com`. The federation policy is set to restrict communication to only these allowed domains. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + Get-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy + + + Grant-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + New-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Remove-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy + + + + + + Set-CsOnlineVoicemailPolicy + Set + CsOnlineVoicemailPolicy + + Modifies an existing Online Voicemail policy. + + + + Cloud Voicemail service provides organizations with voicemail deposit capabilities for Phone System implementation. + By default, users enabled for Phone System will be enabled for Cloud Voicemail. The Online Voicemail policy controls whether or not voicemail transcription, profanity masking for the voicemail transcriptions, translation for the voicemail transcriptions, and editing call answer rule settings are enabled for a user. The policies also specify the voicemail maximum recording length for a user and the primary and secondary voicemail system prompt languages. + - Voicemail transcription is enabled by default + - Transcription profanity masking is disabled by default + - Transcription translation is enabled by default + - Editing call answer rule settings is enabled by default + - Voicemail maximum recording length is set to 5 minutes by default + - Primary and secondary system prompt languages are set to null by default and the user's voicemail language setting is used + + Tenant admin would be able to create a customized online voicemail policy to match the organization's requirements. + + + + Set-CsOnlineVoicemailPolicy + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnableEditingCallAnswerRulesSetting + + > Applicable: Microsoft Teams + Controls if editing call answer rule settings are enabled or disabled for a user. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscription + + > Applicable: Microsoft Teams + Allows you to disable or enable voicemail transcription. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscriptionProfanityMasking + + > Applicable: Microsoft Teams + Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscriptionTranslation + + > Applicable: Microsoft Teams + Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + MaximumRecordingLength + + > Applicable: Microsoft Teams + A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. + + Duration + + Duration + + + None + + + PostambleAudioFile + + > Applicable: Microsoft Teams + The audio file to play to the caller after the user's voicemail greeting has played and before the caller is allowed to leave a voicemail message. + + String + + String + + + None + + + PreambleAudioFile + + > Applicable: Microsoft Teams + The audio file to play to the caller before the user's voicemail greeting is played. + + String + + String + + + None + + + PreamblePostambleMandatory + + > Applicable: Microsoft Teams + Is playing the Pre- or Post-amble mandatory before the caller can leave a message. + + Boolean + + Boolean + + + False + + + PrimarySystemPromptLanguage + + > Applicable: Microsoft Teams + The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + + String + + String + + + None + + + SecondarySystemPromptLanguage + + > Applicable: Microsoft Teams + The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + + String + + String + + + None + + + ShareData + + > Applicable: Microsoft Teams + Specifies whether voicemail and transcription data are shared with the service for training and improving accuracy. Possible values are Defer and Deny. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnableEditingCallAnswerRulesSetting + + > Applicable: Microsoft Teams + Controls if editing call answer rule settings are enabled or disabled for a user. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscription + + > Applicable: Microsoft Teams + Allows you to disable or enable voicemail transcription. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscriptionProfanityMasking + + > Applicable: Microsoft Teams + Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + EnableTranscriptionTranslation + + > Applicable: Microsoft Teams + Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. + + Boolean + + Boolean + + + None + + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + MaximumRecordingLength + + > Applicable: Microsoft Teams + A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. + + Duration + + Duration + + + None + + + PostambleAudioFile + + > Applicable: Microsoft Teams + The audio file to play to the caller after the user's voicemail greeting has played and before the caller is allowed to leave a voicemail message. + + String + + String + + + None + + + PreambleAudioFile + + > Applicable: Microsoft Teams + The audio file to play to the caller before the user's voicemail greeting is played. + + String + + String + + + None + + + PreamblePostambleMandatory + + > Applicable: Microsoft Teams + Is playing the Pre- or Post-amble mandatory before the caller can leave a message. + + Boolean + + Boolean + + + False + + + PrimarySystemPromptLanguage + + > Applicable: Microsoft Teams + The primary (or first) language that voicemail system prompts will be presented in. Must also set SecondarySystemPromptLanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + + String + + String + + + None + + + SecondarySystemPromptLanguage + + > Applicable: Microsoft Teams + The secondary language that voicemail system prompts will be presented in. Must also set PrimarySystemPromptLanguage and may not be the same value as PrimarySystemPromptanguage. When set, this overrides the user language choice. See Set-CsOnlineVoicemailUserSettings (https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings)-PromptLanguage for supported languages. + + String + + String + + + None + + + ShareData + + > Applicable: Microsoft Teams + Specifies whether voicemail and transcription data are shared with the service for training and improving accuracy. Possible values are Defer and Deny. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineVoicemailPolicy -Identity "CustomOnlineVoicemailPolicy" -MaximumRecordingLength ([TimeSpan]::FromSeconds(60)) + + The command shown in Example 1 changes the MaximumRecordingLength to 60 seconds for the per-user online voicemail policy CustomOnlineVoicemailPolicy. + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineVoicemailPolicy -EnableTranscriptionProfanityMasking $false + + The command shown in Example 2 changes the EnableTranscriptionProfanityMasking to false for tenant level global online voicemail policy when calling without Identity parameter. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy + + + Get-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy + + + New-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy + + + Remove-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy + + + Grant-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy + + + + + + Set-CsPrivacyConfiguration + Set + CsPrivacyConfiguration + + Modifies an existing set of privacy configuration settings. Privacy configuration settings help determine how much information users make available to other users. This cmdlet was introduced in Lync Server 2010. + + + + Skype for Business Server gives users the opportunity to share a wealth of presence information with other people: they can publish a photograph of themselves; they can provide detailed location information; they can have presence information automatically made available to everyone in the organization (as opposed to having this information available only to people on their Contacts list). + Some users will welcome the opportunity to make this information available to their colleagues; other users might be more reluctant to share this data. (For example, many people might be hesitant about having their photo included in their presence data.) As a general rule, users have control over what information they will (or will not) share; for example, users can select or clear a check box in order to control whether or not their location information is shared with others. In addition, the privacy configuration cmdlets enable administrators to manage privacy settings for their users. In some cases, administrators can enable or disable settings; for example, if the property AutoInitiateContacts is set to True, then team members will automatically be added to each user's Contacts list; if set to False, team members will not be automatically be added to each user's Contacts list. + In other cases, administrators can configure the default values in Skype for Business while still giving users the right to change these values. For example, by default location data is published for users, although users do have the right to stop location publication. By setting the PublishLocationDataByDefault property to False, administrators can change this behavior: in that case, location data will not be published by default, although users will still have the right to publish this data if they choose. + Privacy configuration settings can be applied at the global scope, the site scope, and at the service scope (albeit only for the User Server service). The `Set-CsPrivacyConfiguration` cmdlet enables you to modify any of the privacy configuration settings currently in use in your organization. + + + + Set-CsPrivacyConfiguration + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the privacy configuration settings to be modified. To modify the global settings, use this syntax: + `-Identity global` + To modify settings configured at the site scope, use syntax similar to this: + `-Identity site:Redmond` + To modify settings at the service level, use syntax like this: + `-Identity service:Redmond-UserServices-1` + Note that privacy settings can only be applied to the User Server service. An error will occur if you try to apply these settings to any other service. + If this parameter is not specified then the global settings will be updated when you call the `Set-CsPrivacyConfiguration` cmdlet. + + XdsIdentity + + XdsIdentity + + + None + + + AutoInitiateContacts + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, Skype for Business will automatically add your manager and your direct reports to your Contacts list. The default value is True. + + Boolean + + Boolean + + + None + + + DisplayPublishedPhotoDefault + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, the user's photo will automatically be published in Skype for Business. If False, the user's photo will not be available unless he or she explicitly selects the option Let others see my photo. The default value is True. + + Boolean + + Boolean + + + None + + + EnablePrivacyMode + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, gives users the opportunity to enable the advanced privacy mode. In advanced privacy mode, only people on your Contacts list will be allowed to view your presence information. If False, your presence information will be available to anyone in your organization. The default value is False. + For information about privacy mode in Microsoft Teams, see User presence in Teams (/microsoftteams/presence-admins). + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. + + + SwitchParameter + + + False + + + PublishLocationDataDefault + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, location data will automatically be published in Skype for Business. If False, location data will not be available unless the user explicitly selects the option Show Contacts My Location. The default value is True. + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + Set-CsPrivacyConfiguration + + AutoInitiateContacts + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, Skype for Business will automatically add your manager and your direct reports to your Contacts list. The default value is True. + + Boolean + + Boolean + + + None + + + DisplayPublishedPhotoDefault + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, the user's photo will automatically be published in Skype for Business. If False, the user's photo will not be available unless he or she explicitly selects the option Let others see my photo. The default value is True. + + Boolean + + Boolean + + + None + + + EnablePrivacyMode + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, gives users the opportunity to enable the advanced privacy mode. In advanced privacy mode, only people on your Contacts list will be allowed to view your presence information. If False, your presence information will be available to anyone in your organization. The default value is False. + For information about privacy mode in Microsoft Teams, see User presence in Teams (/microsoftteams/presence-admins). + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. + + + SwitchParameter + + + False + + + Instance + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + PublishLocationDataDefault + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, location data will automatically be published in Skype for Business. If False, location data will not be available unless the user explicitly selects the option Show Contacts My Location. The default value is True. + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + AutoInitiateContacts + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, Skype for Business will automatically add your manager and your direct reports to your Contacts list. The default value is True. + + Boolean + + Boolean + + + None + + + DisplayPublishedPhotoDefault + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, the user's photo will automatically be published in Skype for Business. If False, the user's photo will not be available unless he or she explicitly selects the option Let others see my photo. The default value is True. + + Boolean + + Boolean + + + None + + + EnablePrivacyMode + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, gives users the opportunity to enable the advanced privacy mode. In advanced privacy mode, only people on your Contacts list will be allowed to view your presence information. If False, your presence information will be available to anyone in your organization. The default value is False. + For information about privacy mode in Microsoft Teams, see User presence in Teams (/microsoftteams/presence-admins). + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Suppresses the display of any non-fatal error message that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier for the privacy configuration settings to be modified. To modify the global settings, use this syntax: + `-Identity global` + To modify settings configured at the site scope, use syntax similar to this: + `-Identity site:Redmond` + To modify settings at the service level, use syntax like this: + `-Identity service:Redmond-UserServices-1` + Note that privacy settings can only be applied to the User Server service. An error will occur if you try to apply these settings to any other service. + If this parameter is not specified then the global settings will be updated when you call the `Set-CsPrivacyConfiguration` cmdlet. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + PublishLocationDataDefault + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + If True, location data will automatically be published in Skype for Business. If False, location data will not be available unless the user explicitly selects the option Show Contacts My Location. The default value is True. + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration + + + The `Set-CsPrivacyConfiguration` cmdlet accepts pipelined input of the privacy configuration object. + + + + + + + None + + + The `Set-CsPrivacyConfiguration` cmdlet does not return any objects or values. Instead, the cmdlet modifies existing instances of the Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration object. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsPrivacyConfiguration -Identity site:Redmond -EnablePrivacyMode $False -AutoInitiateContacts $True -PublishLocationDataDefault $True -DisplayPublishedPhotoDefault $True + + The command shown in Example 1 modifies three property values for the privacy configuration settings with the Identity site:Redmond. The three property values modified are AutoInitiateContacts, PublishLocationDataDefault and DisplayPublishedPhotoDefault. + + + + -------------------------- Example 2 -------------------------- + Get-CsPrivacyConfiguration | Set-CsPrivacyConfiguration -EnablePrivacyMode $True + + Example 2 enables privacy mode for all the privacy configuration settings currently in use in the organization. To do this, the command first calls the `Get-CsPrivacyConfiguration` cmdlet without any parameters; this returns the complete collection of privacy settings. This collection is then piped to the `Set-CsPrivacyConfiguration` cmdlet, which takes each item in the collection and sets the EnablePrivacyMode property to True. + + + + -------------------------- Example 3 -------------------------- + Get-CsPrivacyConfiguration | Where-Object {$_.EnablePrivacyMode -eq $False} | Set-CsPrivacyConfiguration -AutoInitiateContacts $True -PublishLocationDataDefault $True -DisplayPublishedPhotoDefault $True + + In Example 3, modifications are made to all the privacy configuration settings that are not currently using privacy mode. To carry out this task, the `Get-CsPrivacyConfiguration` cmdlet is first used in order to return a collection of all the privacy configuration settings. This collection is piped to the `Where-Object` cmdlet, which selects only those settings where the EnablePrivacyMode property is equal to False. The filtered collection is then piped to the `Set-CsPrivacyConfiguration` cmdlet, which assigns values to the AutoInitiateContacts, PublishLocationDataDefault, and DisplayPublishedPhotoDefault properties for each item in the collection. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skypeforbusiness/set-csprivacyconfiguration + + + Get-CsPrivacyConfiguration + + + + New-CsPrivacyConfiguration + + + + Remove-CsPrivacyConfiguration + + + + + + + Set-CsTeamsAcsFederationConfiguration + Set + CsTeamsAcsFederationConfiguration + + This cmdlet is used to manage the federation configuration between Teams and Azure Communication Services. For more information, please see Azure Communication Services and Teams Interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). + + + + Federation between Teams and Azure Communication Services (ACS) allows external users from ACS to connect and communicate with Teams users over voice and video. These custom applications may be used by end users or by bots, and there is no differentiation in how they appear to Teams users unless the developer of the application explicitly indicates this as part of the communication. For more information, see Teams interoperability (https://learn.microsoft.com/azure/communication-services/concepts/teams-interop). + This cmdlet is used to enable or disable Teams and ACS federation for a Teams tenant, and to specify which ACS resources can connect to Teams. Only listed ACS resources can be allowed. + You must be a Teams service admin or a Teams communication admin for your organization to run the cmdlet. + + + + Set-CsTeamsAcsFederationConfiguration + + AllowedAcsResources + + The list of the ACS resources (at least one) for which federation is enabled, when EnableAcsUsers is set to true. If EnableAcsUsers is set to false, then this list is ignored and should be null/empty. + The ACS resources are listed using their immutable resource id, which is a guid that can be found on the Azure portal. + + String[] + + String[] + + + Empty/Null + + + EnableAcsUsers + + Set to True to enable federation between Teams and ACS. When set to False, all other parameters are ignored. + + Boolean + + Boolean + + + False + + + HideBannerForAllowedAcsUsers + + This configuration controls the display of the 'limited call features' banner for Azure Communication Services users participating in Teams meetings or calls. Possible values are: True, False. Set to True to hide the banner for allowed ACS users in Teams meetings or calls. + + Boolean + + Boolean + + + False + + + Identity + + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter, you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + String + + String + + + None + + + LabelForAllowedAcsUsers + + This configuration controls the user label that is displayed for Azure Communication Services users when they join Teams meetings or calls. Possible values are: Unverified, External. When the value is set to Unverified, the ACS user label is displayed as 'Unverified' when an ACS user joins Teams meetings or calls. When the value is set to External, if an ACS user joins a Teams meeting or call from a resource listed in AllowAcsResources, their label should be displayed as 'External'. + + String + + String + + + Unverified + + + RequireAcsFederationForMeeting + + This configuration controls whether ACS Federation is required for meetings. Possible values are: True, False. + + Boolean + + Boolean + + + False + + + + + + AllowedAcsResources + + The list of the ACS resources (at least one) for which federation is enabled, when EnableAcsUsers is set to true. If EnableAcsUsers is set to false, then this list is ignored and should be null/empty. + The ACS resources are listed using their immutable resource id, which is a guid that can be found on the Azure portal. + + String[] + + String[] + + + Empty/Null + + + EnableAcsUsers + + Set to True to enable federation between Teams and ACS. When set to False, all other parameters are ignored. + + Boolean + + Boolean + + + False + + + HideBannerForAllowedAcsUsers + + This configuration controls the display of the 'limited call features' banner for Azure Communication Services users participating in Teams meetings or calls. Possible values are: True, False. Set to True to hide the banner for allowed ACS users in Teams meetings or calls. + + Boolean + + Boolean + + + False + + + Identity + + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Set-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter, you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + String + + String + + + None + + + LabelForAllowedAcsUsers + + This configuration controls the user label that is displayed for Azure Communication Services users when they join Teams meetings or calls. Possible values are: Unverified, External. When the value is set to Unverified, the ACS user label is displayed as 'Unverified' when an ACS user joins Teams meetings or calls. When the value is set to External, if an ACS user joins a Teams meeting or call from a resource listed in AllowAcsResources, their label should be displayed as 'External'. + + String + + String + + + Unverified + + + RequireAcsFederationForMeeting + + This configuration controls whether ACS Federation is required for meetings. Possible values are: True, False. + + Boolean + + Boolean + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $False + + + + + + -------------------------- Example 2 -------------------------- + $allowlist = @('faced04c-2ced-433d-90db-063e424b87b1') +Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources $allowlist + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsacsfederationconfiguration + + + Get-CsTeamsAcsFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsacsfederationconfiguration + + + New-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy + + + Set-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy + + + Grant-CsExternalAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy + + + + + + Set-CsTeamsAIPolicy + Set + CsTeamsAIPolicy + + This cmdlet sets Teams AI policy value for users in the tenant. + + + + The new csTeamsAIPolicy will replace the existing enrollment settings in csTeamsMeetingPolicy, providing enhanced flexibility and control for Teams meeting administrators. Unlike the current single setting, EnrollUserOverride, which applies to both face and voice enrollment, the new policy introduces two distinct settings: EnrollFace and EnrollVoice. These can be individually set to Enabled or Disabled, offering more granular control over biometric enrollments. A new setting, SpeakerAttributionBYOD, is also being added to csTeamsAIPolicy. This allows IT admins to turn off speaker attribution in BYOD scenarios, giving them greater control over how voice data is managed in such environments. This setting can be set to Enabled or Disabled, and will be Enabled by default. In addition to improving the management of face and voice data, the csTeamsAIPolicy is designed to support future AI-related settings in Teams, making it a scalable solution for evolving needs. + This cmdlet sets the EnrollFace, EnrollVoice, and SpeakerAttributionBYOD values within the csTeamsAIPolicy. These policies can be assigned to users, and each setting can be configured as "Enabled" or "Disabled". " + + + + Set-CsTeamsAIPolicy + + Description + + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnrollFace + + Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. + + String + + String + + + Enabled + + + EnrollVoice + + Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. + + String + + String + + + Enabled + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + + + + Set-CsTeamsAIPolicy + + Description + + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnrollFace + + Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. + + String + + String + + + Enabled + + + EnrollVoice + + Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. + + String + + String + + + Enabled + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + + + + + + Description + + Enables administrators to provide explanatory text about the Teams AI policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + EnrollFace + + Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. + + String + + String + + + Enabled + + + EnrollVoice + + Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. + + String + + String + + + Enabled + + + Identity + + Identity of the Teams AI policy. + + String + + String + + + None + + + SpeakerAttributionBYOD + + Policy value of the Teams AI SpeakerAttributionBYOD policy. Setting to "Enabled" turns on speaker attribution in BYOD scenarios while "Disabled" will turn off the function. + + String + + String + + + Enabled + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Global -EnrollFace Disabled + + Set Teams AI policy "EnrollFace" value to "Disabled" for global as default. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Global -EnrollVoice Disabled + + Set Teams AI policy "EnrollVoice" value to "Disabled" for global as default. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Global -SpeakerAttributionBYOD Disabled + + Set Teams AI policy "SpeakerAttributionBYOD" value to "Disabled" for global as default. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollFace Enabled + + Set Teams AI policy "EnrollFace" value to "Enabled" for identity "Test". + + + + -------------------------- Example 5 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollVoice Enabled + + Set Teams AI policy "EnrollVoice" value to "Enabled" for identity "Test". + + + + -------------------------- Example 6 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Test -SpeakerAttributionBYOD Enabled + + Set Teams AI policy "SpeakerAttributionBYOD" value to "Enabled" for identity "Test". + + + + -------------------------- Example 7 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollFace Disabled + + Set Teams AI policy "EnrollFace" value to "Disabled" for identity "Test". + + + + -------------------------- Example 8 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollVoice Disabled + + Set Teams AI policy "EnrollVoice" value to "Disabled" for identity "Test". + + + + -------------------------- Example 9 -------------------------- + PS C:\> Set-CsTeamsAIPolicy -Identity Test -SpeakerAttributionBYOD Disabled + + Set Teams AI policy "SpeakerAttributionBYOD" value to "Disabled" for identity "Test". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsAIPolicy + + + New-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy + + + Remove-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy + + + Get-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy + + + Grant-CsTeamsAIPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy + + + + + + Set-CsTeamsAppPermissionPolicy + Set + CsTeamsAppPermissionPolicy + + Cmdlet to set the app permission policy for Teams. + + + + NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app permission polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app permission policies to enable or block specific apps for your users. Learn more about the App Setup Policies: <https://learn.microsoft.com/microsoftteams/teams-app-permission-policies>. + + + + Set-CsTeamsAppPermissionPolicy + + Identity + + Name of App setup permission policy. If empty, all Identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DefaultCatalogApps + + Choose which Teams apps published by Microsoft or its partners can be installed by your users. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] + + + None + + + DefaultCatalogAppsType + + Choose to allow or block the installation of Microsoft apps. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + Description + + Description of app setup permission policy. + + String + + String + + + None + + + Force + + Do not use. + + + SwitchParameter + + + False + + + GlobalCatalogApps + + Choose which Teams apps published by a third party can be installed by your users. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] + + + None + + + GlobalCatalogAppsType + + Choose to allow or block the installation of third-party apps. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + PrivateCatalogApps + + Choose to allow or block the installation of custom apps. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] + + + None + + + PrivateCatalogAppsType + + Choose which custom apps can be installed by your users. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsAppPermissionPolicy + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DefaultCatalogApps + + Choose which Teams apps published by Microsoft or its partners can be installed by your users. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] + + + None + + + DefaultCatalogAppsType + + Choose to allow or block the installation of Microsoft apps. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + Description + + Description of app setup permission policy. + + String + + String + + + None + + + Force + + Do not use. + + + SwitchParameter + + + False + + + GlobalCatalogApps + + Choose which Teams apps published by a third party can be installed by your users. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] + + + None + + + GlobalCatalogAppsType + + Choose to allow or block the installation of third-party apps. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + Instance + + Do not use. + + PSObject + + PSObject + + + None + + + PrivateCatalogApps + + Choose to allow or block the installation of custom apps. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] + + + None + + + PrivateCatalogAppsType + + Choose which custom apps can be installed by your users. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DefaultCatalogApps + + Choose which Teams apps published by Microsoft or its partners can be installed by your users. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] + + + None + + + DefaultCatalogAppsType + + Choose to allow or block the installation of Microsoft apps. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + Description + + Description of app setup permission policy. + + String + + String + + + None + + + Force + + Do not use. + + SwitchParameter + + SwitchParameter + + + False + + + GlobalCatalogApps + + Choose which Teams apps published by a third party can be installed by your users. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] + + + None + + + GlobalCatalogAppsType + + Choose to allow or block the installation of third-party apps. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + Identity + + Name of App setup permission policy. If empty, all Identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Do not use. + + PSObject + + PSObject + + + None + + + PrivateCatalogApps + + Choose to allow or block the installation of custom apps. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] + + + None + + + PrivateCatalogAppsType + + Choose which custom apps can be installed by your users. Values that can be used: AllowedAppList, BlockedAppList. + + String + + String + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp + + + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp + + + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) +New-CsTeamsAppPermissionPolicy -Identity Set-$identity +Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType BlockedAppList -DefaultCatalogApps @()-GlobalCatalogAppsType -GlobalCatalogApps @() BlockedAppList -PrivateCatalogAppsType BlockedAppList -PrivateCatalogApps @() + + This example allows all Microsoft apps, third-party apps, and custom apps. No apps are blocked. + + + + -------------------------- Example 2 -------------------------- + $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) +New-CsTeamsAppPermissionPolicy -Identity Set-$identity +Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType AllowedAppList -DefaultCatalogApps @() -GlobalCatalogAppsType AllowedAppList -GlobalCatalogApps @() -PrivateCatalogAppsType AllowedAppList -PrivateCatalogApps @() + + This example blocks all Microsoft apps, third-party apps, and custom apps. No apps are allowed. + + + + -------------------------- Example 3 -------------------------- + $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) +# create a new Teams app permission policy and block all apps +New-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType AllowedAppList -GlobalCatalogAppsType AllowedAppList -PrivateCatalogAppsType AllowedAppList -DefaultCatalogApps @() -GlobalCatalogApps @() -PrivateCatalogApps @() + +$ListsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp -Property @{Id="0d820ecd-def2-4297-adad-78056cde7c78"} +$OneNoteApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp -Property @{Id="26bc2873-6023-480c-a11b-76b66605ce8c"} +$DefaultCatalogAppList = @($ListsApp,$OneNoteApp) +# set allow Lists and OneNote apps and block other Microsoft apps +Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType AllowedAppList -DefaultCatalogApps $DefaultCatalogAppList + + This example allows Microsoft Lists and OneNote apps and blocks other Microsoft apps. Microsoft Lists and OneNote can be installed by your users. + + + + -------------------------- Example 4 -------------------------- + $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) +# create a new Teams app permission policy and block all apps +New-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType AllowedAppList -GlobalCatalogAppsType AllowedAppList -PrivateCatalogAppsType AllowedAppList -DefaultCatalogApps @() -GlobalCatalogApps @() -PrivateCatalogApps @() +$TaskListApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp -Property @{Id="57c81e84-9b7b-4783-be4e-0b7ffc0719af"} +$OnePlanApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp -Property @{Id="ca0540bf-6b61-3027-6313-a7cb4470bf1b"} +$GlobalCatalogAppList = @($TaskListApp,$OnePlanApp) +# set allow TaskList and OnePlan apps and block other Third-party apps +Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -GlobalCatalogAppsType AllowedAppList -GlobalCatalogApps $GlobalCatalogAppList + + This example allows third-party TaskList and OnePlan apps and blocks other third-party apps. TaskList and OnePlan can be installed by your users. + + + + -------------------------- Example 5 -------------------------- + $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) +# create a new Teams app permission policy and block all apps +New-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType BlockedAppList -GlobalCatalogAppsType BlockedAppList -PrivateCatalogAppsType BlockedAppList -DefaultCatalogApps @() -GlobalCatalogApps @() -PrivateCatalogApps @() +$GetStartApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp -Property @{Id="f8374f94-b179-4cd2-8343-9514dc5ea377"} +$TestBotApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp -Property @{Id="47fa3584-9366-4ce7-b1eb-07326c6ba799"} +$PrivateCatalogAppList = @($GetStartApp,$TestBotApp) +# set allow TaskList and OnePlan apps and block other custom apps +Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType AllowedAppList -PrivateCatalogApps $PrivateCatalogAppList + + This example allows custom GetStartApp and TestBotApp apps and blocks other custom apps. GetStartApp and TestBotApp can be installed by your users. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsapppermissionpolicy + + + + + + Set-CsTeamsAppSetupPolicy + Set + CsTeamsAppSetupPolicy + + Cmdlet to set the app setup policy for Teams. + + + + NOTE : The existence of this cmdlet is being documented for completeness, but do not use this cmdlet. We require that all creation and modification of app setup polices (not including the assignment or removal of policies from users) happens in the Microsoft Teams & Skype for Business Admin Center to ensure that the policy matches your expectations for the end user experience. + As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important for your users. You choose the apps to pin and set the order that they appear. App setup policies let you showcase apps that users in your organization need, including ones built by third parties or by developers in your organization. You can also use app setup policies to manage how built-in features appear. + Apps are pinned to the app bar. This is the bar on the side of the Teams desktop client and at the bottom of the Teams mobile clients (iOS and Android). Learn more about the App Setup Policies: <https://learn.microsoft.com/MicrosoftTeams/teams-app-setup-policies>. + + + + Set-CsTeamsAppSetupPolicy + + Identity + + Name of app setup policy. If empty, all identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + AdditionalCustomizationApps + + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + + None + + + AllowSideLoading + + This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. + + Boolean + + Boolean + + + None + + + AllowUserPinning + + If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. + + Boolean + + Boolean + + + None + + + AppPresetList + + Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + + None + + + AppPresetMeetingList + + This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Description of App setup policy. + + String + + String + + + None + + + Force + + Do not use. + + + SwitchParameter + + + False + + + PinnedAppBarApps + + Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that users need the most and promote ease of access. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + + None + + + PinnedCallingBarApps + + Determines the list of apps that are pre pinned for a participant in Calls. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + + None + + + PinnedMessageBarApps + + Apps will be pinned in messaging extensions and into the ellipsis menu. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsAppSetupPolicy + + AdditionalCustomizationApps + + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + + None + + + AllowSideLoading + + This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. + + Boolean + + Boolean + + + None + + + AllowUserPinning + + If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. + + Boolean + + Boolean + + + None + + + AppPresetList + + Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + + None + + + AppPresetMeetingList + + This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Description of App setup policy. + + String + + String + + + None + + + Force + + Do not use. + + + SwitchParameter + + + False + + + Instance + + Do not use. + + PSObject + + PSObject + + + None + + + PinnedAppBarApps + + Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that users need the most and promote ease of access. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + + None + + + PinnedCallingBarApps + + Determines the list of apps that are pre pinned for a participant in Calls. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + + None + + + PinnedMessageBarApps + + Apps will be pinned in messaging extensions and into the ellipsis menu. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AdditionalCustomizationApps + + This parameter allows IT admins to create multiple customized versions of their apps and assign these customized versions to users and groups via setup policies. It enables customization of app icons and names for supportive first-party (1P) and third-party (3P) apps, enhancing corporate connections to employees through brand expression and stimulating app awareness and usage. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp] + + + None + + + AllowSideLoading + + This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. + + Boolean + + Boolean + + + None + + + AllowUserPinning + + If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. + + Boolean + + Boolean + + + None + + + AppPresetList + + Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] + + + None + + + AppPresetMeetingList + + This parameter is used to manage the list of preset apps that are available during meetings. It allows admins to control which apps are pinned and set the order in which they appear, ensuring that users have quick access to the relevant apps during meetings. + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Description of App setup policy. + + String + + String + + + None + + + Force + + Do not use. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of app setup policy. If empty, all identities will be used by default. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Do not use. + + PSObject + + PSObject + + + None + + + PinnedAppBarApps + + Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that users need the most and promote ease of access. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] + + + None + + + PinnedCallingBarApps + + Determines the list of apps that are pre pinned for a participant in Calls. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] + + + None + + + PinnedMessageBarApps + + Apps will be pinned in messaging extensions and into the ellipsis menu. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] + + + None + + + Tenant + + Do not use. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset + + + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp + + + + + + + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + # Create new teams app setup policy named "Set-Test". +New-CsTeamsAppSetupPolicy -Identity 'Set-Test' +Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AllowUserPinning $true -AllowSideLoading $false + + Step 1: Create a new Teams app setup policy named "Set-Test". Step 2: Set AllowUserPinning as true, AllowSideLoading as false. + + + + -------------------------- Example 2 -------------------------- + New-CsTeamsAppSetupPolicy -Identity 'Set-Test' +$ActivityApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="14d6962d-6eeb-4f48-8890-de55454bb136"} +$ChatApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="86fcd49b-61a2-4701-b771-54728cd291fb"} +$TeamsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="2a84919f-59d8-4441-a975-2a8c2643b741"} +$PinnedAppBarApps = @($ActivityApp,$ChatApp,$TeamsApp) +Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -PinnedAppBarApps $PinnedAppBarApps + + Step 1: Create new teams app setup policy named "Set-Test". Step 2: Set ActivityApp, ChatApp, TeamsApp as PinnedAppBarApps. Step 3: Settings to pin these apps to the app bar in Teams client. + + + + -------------------------- Example 3 -------------------------- + New-CsTeamsAppSetupPolicy -Identity 'Set-Test' +$VivaConnectionsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp -Property @{Id="d2c6f111-ffad-42a0-b65e-ee00425598aa"} +$PinnedMessageBarApps = @($VivaConnectionsApp) +Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -PinnedMessageBarApps $PinnedMessageBarApps + + Step 1: Create new teams app setup policy named "Set-Test". Step 2: Set VivaConnectionsApp as PinnedAppBarApps. Step 3: Settings to pin these apps to the messaging extension in Teams client. + + + + -------------------------- Example 4 -------------------------- + New-CsTeamsAppSetupPolicy -Identity 'Set-Test' +$VivaConnectionsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset -Property @{Id="d2c6f111-ffad-42a0-b65e-ee00425598aa"} +$AppPresetList = @($VivaConnectionsApp) +Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList + + Step 1: Create new teams app setup policy named "Set-Test". Step 2: Set VivaConnectionsApp as AppPresetList Step 3: Settings to install these apps in your users' personal Teams environment. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsappsetuppolicy + + + + + + Set-CsTeamsCallHoldPolicy + Set + CsTeamsCallHoldPolicy + + Modifies an existing Teams call hold policy in your tenant. The Teams call hold policy is used to customize the call hold experience for Teams clients. + + + + Teams call hold policies are used to customize the call hold experience for teams clients. + When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. + Assigning a Teams call hold policy to a user sets an audio file to be played during the duration of the hold. + + + + Set-CsTeamsCallHoldPolicy + + Identity + + Unique identifier of the Teams call hold policy being modified. + + String + + String + + + None + + + AudioFileId + + A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams call hold policy. + For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + StreamingSourceAuthType + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + StreamingSourceUrl + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AudioFileId + + A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams call hold policy. + For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier of the Teams call hold policy being modified. + + String + + String + + + None + + + StreamingSourceAuthType + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + StreamingSourceUrl + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsCallHoldPolicy -Identity "ContosoPartnerTeamsCallHoldPolicy" -AudioFileId "c65233-ac2a27-98701b-123ccc" + + The command shown in Example 1 modifies an existing per-user Teams call hold policy with the Identity ContosoPartnerTeamsCallHoldPolicy. + This policy is re-assigned the audio file ID to be used to: c65233-ac2a27-98701b-123ccc, which is the ID referencing an audio file that was uploaded using the Import-CsOnlineAudioFile cmdlet. + Any Microsoft Teams users who are assigned this policy will have their call holds customized such that the user being held will hear the audio file specified by AudioFileId. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsCallHoldPolicy -Identity "ContosoPartnerTeamsCallHoldPolicy" -Description "country music" + + The command shown in Example 2 modifies an existing per-user Teams call hold policy with the Identity ContosoPartnerTeamsCallHoldPolicy. + This policy is re-assigned the description from its existing value to "country music". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy + + + Get-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy + + + New-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy + + + Grant-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy + + + Remove-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + + + + Set-CsTeamsCallingPolicy + Set + CsTeamsCallingPolicy + + Use this cmdlet to update values in existing Teams Calling Policies. + + + + The Teams Calling Policy controls which calling and call forwarding features are available to users in Microsoft Teams. This cmdlet allows admins to set values in a given Calling Policy instance. + Only the parameters specified are changed. Other parameters keep their existing values. + + + + Set-CsTeamsCallingPolicy + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + AIInterpreter + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the AI Interpreter related features + Possible values: + - Disabled + - Enabled + + String + + String + + + Enabled + + + AllowCallForwardingToPhone + + > Applicable: Microsoft Teams + Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to any phone number. + + Boolean + + Boolean + + + None + + + AllowCallForwardingToUser + + > Applicable: Microsoft Teams + Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to other users in your tenant. + + Boolean + + Boolean + + + None + + + AllowCallGroups + + > Applicable: Microsoft Teams + Enables the user to configure call groups in the Microsoft Teams client and that inbound calls should be routed to call groups. + + Boolean + + Boolean + + + None + + + AllowCallRedirect + + > Applicable: Microsoft Teams + Setting this parameter enables local call redirection for SIP devices connecting via the Microsoft Teams SIP gateway. + Valid options are: + - Enabled: Enables the user to redirect an incoming call. + - Disabled: The user is not enabled to redirect an incoming call. + - UserOverride: This option is not available for use. + + String + + String + + + None + + + AllowCloudRecordingForCalls + + > Applicable: Microsoft Teams + Determines whether cloud recording is allowed in a user's 1:1 Teams or PSTN calls. Set this to True to allow the user to be able to record 1:1 calls. Set this to False to prohibit the user from recording 1:1 calls. + + Boolean + + Boolean + + + None + + + AllowDelegation + + > Applicable: Microsoft Teams + Enables the user to configure delegation in the Microsoft Teams client and that inbound calls to be routed to delegates; allows delegates to make outbound calls on behalf of the users for whom they have delegated permissions. + + Boolean + + Boolean + + + None + + + AllowPrivateCalling + + > Applicable: Microsoft Teams + Controls all calling capabilities in Teams. Turning this off will turn off all calling functionality in Teams. If you use Skype for Business for calling, this policy will not affect calling functionality in Skype for Business. + + Boolean + + Boolean + + + None + + + AllowSIPDevicesCalling + + > Applicable: Microsoft Teams + Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. + + Boolean + + Boolean + + + None + + + AllowTranscriptionForCalling + + > Applicable: Microsoft Teams + Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. + + Boolean + + Boolean + + + None + + + AllowVoicemail + + > Applicable: Microsoft Teams + Enables inbound calls to be routed to voicemail. + Valid options are: + - AlwaysEnabled: Calls are always forwarded to voicemail on unanswered after ringing for thirty seconds, regardless of the unanswered call forward setting for the user. + - AlwaysDisabled: Calls are never routed to voicemail, regardless of the call forward or unanswered settings for the user. Voicemail isn't available as a call forwarding or unanswered setting in Teams. + - UserOverride: Calls are forwarded to voicemail based on the call forwarding and/or unanswered settings for the user. + + String + + String + + + None + + + AllowWebPSTNCalling + + > Applicable: Microsoft Teams + Allows PSTN calling from the Teams web client. + + Object + + Object + + + None + + + AutoAnswerEnabledType + + Allow admins to enable or disable Auto-answer settings for users. + + String + + String + + + None + + + BusyOnBusyEnabledType + + > Applicable: Microsoft Teams + Setting this parameter lets you configure how incoming calls are handled when a user is already in a call or conference or has a call placed on hold. + Valid options are: + - Enabled: New or incoming calls will be rejected with a busy signal. + - Unanswered: The user's unanswered settings will take effect, such as routing to voicemail or forwarding to another user. + - Disabled: New or incoming calls will be presented to the user. + - UserOverride: Users can set their busy options directly from call settings in Teams app. + + String + + String + + + None + + + CallingSpendUserLimit + + > Applicable: Microsoft Teams + The maximum amount a user can spend on outgoing PSTN calls, including all calls made through Pay-as-you-go Calling Plans and any overages on plans with bundled minutes. + Possible values: any positive integer + + Long + + Long + + + None + + + CallRecordingExpirationDays + + > Applicable: Microsoft Teams + Sets the expiration of the recorded 1:1 calls. Default is 60 days. + + Long + + Long + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Copilot + + > Applicable: Microsoft Teams + Setting this parameter lets you control how Copilot is used during calls and if transcription is needed to be turned on and saved after the call. + Valid options are: - Enabled: Copilot can work with or without transcription during calls. This is the default value. + - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. + - Disabled: Copilot is disabled for calls. + + String + + String + + + Enabled + + + Description + + > Applicable: Microsoft Teams + Enables administrators to provide explanatory text about the calling policy. For example, the Description might indicate the users to whom the policy should be assigned. + + String + + String + + + None + + + EnableSpendLimits + + > Applicable: Microsoft Teams + This setting allows an admin to enable or disable spend limits on PSTN calls for their user base. + Possible values: + - True + - False + + Boolean + + Boolean + + + False + + + EnableWebPstnMediaBypass + + Determines if MediaBypass is enabled for PSTN calls on specified Web platforms. + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + InboundFederatedCallRoutingTreatment + + > Applicable: Microsoft Teams + Setting this parameter lets you control how inbound federated calls should be routed. + Valid options are: + - RegularIncoming: No changes are made to default inbound routing. This is the default setting. + - Unanswered: The inbound federated call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. + - Voicemail: The inbound federated call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. + + Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. + + String + + String + + + RegularIncoming + + + InboundPstnCallRoutingTreatment + + > Applicable: Microsoft Teams + Setting this parameter lets you control how inbound PSTN calls should be routed. + Valid options are: + - RegularIncoming: No changes are made to default inbound routing. This is the default setting. + - Unanswered: The inbound PSTN call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. + - Voicemail: The inbound PSTN call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. + - UserOverride: Users can determine their PSTN call routing choice from call settings in the Teams app. + + Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. + + String + + String + + + RegularIncoming + + + LiveCaptionsEnabledTypeForCalling + + > Applicable: Microsoft Teams + Determines whether real-time captions are available for the user in Teams calls. + Valid options are: + - DisabledUserOverride: Allows the user to turn on live captions. + - Disabled: Prohibits the user from turning on live captions. + + String + + String + + + None + + + MusicOnHoldEnabledType + + > Applicable: Microsoft Teams + Setting this parameter allows you to turn on or turn off the music on hold when a caller is placed on hold. + Valid options are: + - Enabled: Music on hold is enabled. This is the default. + - Disabled: Music on hold is disabled. + - UserOverride: For now, setting the value to UserOverride is the same as Enabled. + + String + + String + + + Enabled + + + PopoutAppPathForIncomingPstnCalls + + > Applicable: Microsoft Teams + Setting this parameter allows you to set the PopoutForIncomingPstnCalls setting's URL path of the website to launch upon receiving incoming PSTN calls. This parameter accepts an HTTPS URL with less than 1024 characters. The URL can contain a `{phone}` placeholder that is replaced with the caller's PSTN number in E.164 format when launched. + + String + + String + + + "" + + + PopoutForIncomingPstnCalls + + > Applicable: Microsoft Teams + Setting this parameter allows you to control the tenant users' ability to launch an external website URL automatically in the browser window upon incoming PSTN calls for specific users or user groups. Valid options are Enabled and Disabled. + + String + + String + + + Disabled + + + PreventTollBypass + + > Applicable: Microsoft Teams + Setting this parameter to True will send calls through PSTN and incur charges rather than going through the network and bypassing the tolls. + > [!NOTE] > Do not set this parameter to True for Calling Plan or Operator Connect users as it will prevent successful call routing. This setting only works with Direct Routing which is configured to handle location-based routing restrictions. + + Boolean + + Boolean + + + None + + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a call, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + + + SpamFilteringEnabledType + + > Applicable: Microsoft Teams + Determines if spam detection is enabled for inbound PSTN calls. + Possible values: + - Enabled: Spam detection is enabled. In case the inbound call is considered spam, the user will get a "Spam Likely" label in Teams. + - Disabled: Spam detection is disabled. + + String + + String + + + None + + + VoiceSimulationInInterpreter + + > Applicable: Microsoft Teams + > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the voice simulation feature while being AI interpreted. + Possible Values: + - Disabled + - Enabled + + String + + String + + + Disabled + + + ExplicitRecordingConsent + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + This setting controls whether users must provide or obtain explicit consent before recording a 1:1 PSTN or Teams call. When enabled, both parties will receive a notification, and consent must be given before recording starts. + Possible values: + - Enabled : Requires users to give and obtain explicit consent before starting a call recording. - Disabled : Users are not required to obtain explicit consent before recording starts. + + String + + String + + + Disabled + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AIInterpreter + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the AI Interpreter related features + Possible values: + - Disabled + - Enabled + + String + + String + + + Enabled + + + AllowCallForwardingToPhone + + > Applicable: Microsoft Teams + Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to any phone number. + + Boolean + + Boolean + + + None + + + AllowCallForwardingToUser + + > Applicable: Microsoft Teams + Enables the user to configure in the Microsoft Teams client call forwarding or simultaneous ringing of inbound calls to other users in your tenant. + + Boolean + + Boolean + + + None + + + AllowCallGroups + + > Applicable: Microsoft Teams + Enables the user to configure call groups in the Microsoft Teams client and that inbound calls should be routed to call groups. + + Boolean + + Boolean + + + None + + + AllowCallRedirect + + > Applicable: Microsoft Teams + Setting this parameter enables local call redirection for SIP devices connecting via the Microsoft Teams SIP gateway. + Valid options are: + - Enabled: Enables the user to redirect an incoming call. + - Disabled: The user is not enabled to redirect an incoming call. + - UserOverride: This option is not available for use. + + String + + String + + + None + + + AllowCloudRecordingForCalls + + > Applicable: Microsoft Teams + Determines whether cloud recording is allowed in a user's 1:1 Teams or PSTN calls. Set this to True to allow the user to be able to record 1:1 calls. Set this to False to prohibit the user from recording 1:1 calls. + + Boolean + + Boolean + + + None + + + AllowDelegation + + > Applicable: Microsoft Teams + Enables the user to configure delegation in the Microsoft Teams client and that inbound calls to be routed to delegates; allows delegates to make outbound calls on behalf of the users for whom they have delegated permissions. + + Boolean + + Boolean + + + None + + + AllowPrivateCalling + + > Applicable: Microsoft Teams + Controls all calling capabilities in Teams. Turning this off will turn off all calling functionality in Teams. If you use Skype for Business for calling, this policy will not affect calling functionality in Skype for Business. + + Boolean + + Boolean + + + None + + + AllowSIPDevicesCalling + + > Applicable: Microsoft Teams + Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. + + Boolean + + Boolean + + + None + + + AllowTranscriptionForCalling + + > Applicable: Microsoft Teams + Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. + + Boolean + + Boolean + + + None + + + AllowVoicemail + + > Applicable: Microsoft Teams + Enables inbound calls to be routed to voicemail. + Valid options are: + - AlwaysEnabled: Calls are always forwarded to voicemail on unanswered after ringing for thirty seconds, regardless of the unanswered call forward setting for the user. + - AlwaysDisabled: Calls are never routed to voicemail, regardless of the call forward or unanswered settings for the user. Voicemail isn't available as a call forwarding or unanswered setting in Teams. + - UserOverride: Calls are forwarded to voicemail based on the call forwarding and/or unanswered settings for the user. + + String + + String + + + None + + + AllowWebPSTNCalling + + > Applicable: Microsoft Teams + Allows PSTN calling from the Teams web client. + + Object + + Object + + + None + + + AutoAnswerEnabledType + + Allow admins to enable or disable Auto-answer settings for users. + + String + + String + + + None + + + BusyOnBusyEnabledType + + > Applicable: Microsoft Teams + Setting this parameter lets you configure how incoming calls are handled when a user is already in a call or conference or has a call placed on hold. + Valid options are: + - Enabled: New or incoming calls will be rejected with a busy signal. + - Unanswered: The user's unanswered settings will take effect, such as routing to voicemail or forwarding to another user. + - Disabled: New or incoming calls will be presented to the user. + - UserOverride: Users can set their busy options directly from call settings in Teams app. + + String + + String + + + None + + + CallingSpendUserLimit + + > Applicable: Microsoft Teams + The maximum amount a user can spend on outgoing PSTN calls, including all calls made through Pay-as-you-go Calling Plans and any overages on plans with bundled minutes. + Possible values: any positive integer + + Long + + Long + + + None + + + CallRecordingExpirationDays + + > Applicable: Microsoft Teams + Sets the expiration of the recorded 1:1 calls. Default is 60 days. + + Long + + Long + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Copilot + + > Applicable: Microsoft Teams + Setting this parameter lets you control how Copilot is used during calls and if transcription is needed to be turned on and saved after the call. + Valid options are: - Enabled: Copilot can work with or without transcription during calls. This is the default value. + - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. + - Disabled: Copilot is disabled for calls. + + String + + String + + + Enabled + + + Description + + > Applicable: Microsoft Teams + Enables administrators to provide explanatory text about the calling policy. For example, the Description might indicate the users to whom the policy should be assigned. + + String + + String + + + None + + + EnableSpendLimits + + > Applicable: Microsoft Teams + This setting allows an admin to enable or disable spend limits on PSTN calls for their user base. + Possible values: + - True + - False + + Boolean + + Boolean + + + False + + + EnableWebPstnMediaBypass + + Determines if MediaBypass is enabled for PSTN calls on specified Web platforms. + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + InboundFederatedCallRoutingTreatment + + > Applicable: Microsoft Teams + Setting this parameter lets you control how inbound federated calls should be routed. + Valid options are: + - RegularIncoming: No changes are made to default inbound routing. This is the default setting. + - Unanswered: The inbound federated call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. + - Voicemail: The inbound federated call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. + + Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. + + String + + String + + + RegularIncoming + + + InboundPstnCallRoutingTreatment + + > Applicable: Microsoft Teams + Setting this parameter lets you control how inbound PSTN calls should be routed. + Valid options are: + - RegularIncoming: No changes are made to default inbound routing. This is the default setting. + - Unanswered: The inbound PSTN call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. + - Voicemail: The inbound PSTN call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. + - UserOverride: Users can determine their PSTN call routing choice from call settings in the Teams app. + + Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. + + String + + String + + + RegularIncoming + + + LiveCaptionsEnabledTypeForCalling + + > Applicable: Microsoft Teams + Determines whether real-time captions are available for the user in Teams calls. + Valid options are: + - DisabledUserOverride: Allows the user to turn on live captions. + - Disabled: Prohibits the user from turning on live captions. + + String + + String + + + None + + + MusicOnHoldEnabledType + + > Applicable: Microsoft Teams + Setting this parameter allows you to turn on or turn off the music on hold when a caller is placed on hold. + Valid options are: + - Enabled: Music on hold is enabled. This is the default. + - Disabled: Music on hold is disabled. + - UserOverride: For now, setting the value to UserOverride is the same as Enabled. + + String + + String + + + Enabled + + + PopoutAppPathForIncomingPstnCalls + + > Applicable: Microsoft Teams + Setting this parameter allows you to set the PopoutForIncomingPstnCalls setting's URL path of the website to launch upon receiving incoming PSTN calls. This parameter accepts an HTTPS URL with less than 1024 characters. The URL can contain a `{phone}` placeholder that is replaced with the caller's PSTN number in E.164 format when launched. + + String + + String + + + "" + + + PopoutForIncomingPstnCalls + + > Applicable: Microsoft Teams + Setting this parameter allows you to control the tenant users' ability to launch an external website URL automatically in the browser window upon incoming PSTN calls for specific users or user groups. Valid options are Enabled and Disabled. + + String + + String + + + Disabled + + + PreventTollBypass + + > Applicable: Microsoft Teams + Setting this parameter to True will send calls through PSTN and incur charges rather than going through the network and bypassing the tolls. + > [!NOTE] > Do not set this parameter to True for Calling Plan or Operator Connect users as it will prevent successful call routing. This setting only works with Direct Routing which is configured to handle location-based routing restrictions. + + Boolean + + Boolean + + + None + + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a call, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + + + SpamFilteringEnabledType + + > Applicable: Microsoft Teams + Determines if spam detection is enabled for inbound PSTN calls. + Possible values: + - Enabled: Spam detection is enabled. In case the inbound call is considered spam, the user will get a "Spam Likely" label in Teams. + - Disabled: Spam detection is disabled. + + String + + String + + + None + + + VoiceSimulationInInterpreter + + > Applicable: Microsoft Teams + > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the voice simulation feature while being AI interpreted. + Possible Values: + - Disabled + - Enabled + + String + + String + + + Disabled + + + ExplicitRecordingConsent + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + This setting controls whether users must provide or obtain explicit consent before recording a 1:1 PSTN or Teams call. When enabled, both parties will receive a notification, and consent must be given before recording starts. + Possible values: + - Enabled : Requires users to give and obtain explicit consent before starting a call recording. - Disabled : Users are not required to obtain explicit consent before recording starts. + + String + + String + + + Disabled + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsCallingPolicy -Identity Global -AllowPrivateCalling $true + + Sets the value of the parameter AllowPrivateCalling in the Global (default) Teams Calling Policy instance. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsCallingPolicy -Identity HRPolicy -LiveCaptionsEnabledTypeForCalling Disabled + + Sets the value of the parameter LiveCaptionsEnabledTypeForCalling to Disabled in the Teams Calling Policy instance called HRPolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy + + + Get-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy + + + Remove-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy + + + Grant-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy + + + New-CsTeamsCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy + + + + + + Set-CsTeamsChannelsPolicy + Set + CsTeamsChannelsPolicy + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams and Channels experience within the Teams application. + + + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. + This cmdlet allows you to update existing policies of this type. + + + + Set-CsTeamsChannelsPolicy + + Identity + + Use this parameter to specify the name of the policy being updated. + + XdsIdentity + + XdsIdentity + + + None + + + AllowChannelSharingToExternalUser + + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + AllowOrgWideTeamCreation + + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPrivateChannelCreation + + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSharedChannelCreation + + Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. + + Boolean + + Boolean + + + None + + + AllowUserToParticipateInExternalSharedChannel + + Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnablePrivateTeamDiscovery + + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + Force + + Bypass all non-fatal errors. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + ThreadedChannelCreation + + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsChannelsPolicy + + AllowChannelSharingToExternalUser + + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + AllowOrgWideTeamCreation + + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPrivateChannelCreation + + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSharedChannelCreation + + Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. + + Boolean + + Boolean + + + None + + + AllowUserToParticipateInExternalSharedChannel + + Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnablePrivateTeamDiscovery + + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + Force + + Bypass all non-fatal errors. + + + SwitchParameter + + + False + + + Instance + + Use this parameter to pass the policy object output of Get-CsTeamsChannelsPolicy to update that policy. + + PSObject + + PSObject + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + ThreadedChannelCreation + + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowChannelSharingToExternalUser + + Owners of a shared channel can invite external users to join the channel if Microsoft Entra external sharing policies are configured. If the channel has been shared with an external member or team, they will continue to have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + AllowOrgWideTeamCreation + + Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPrivateChannelCreation + + Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSharedChannelCreation + + Team owners can create shared channels for people within and outside the organization. Only people added to the shared channel can read and write messages. + + Boolean + + Boolean + + + None + + + AllowUserToParticipateInExternalSharedChannel + + Users and teams can be invited to external shared channels if Microsoft Entra external sharing policies are configured. If a team in your organization is part of an external shared channel, new team members will have access to the channel even if this parameter is set to FALSE. For more information, see Manage channel policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/teams-policies). + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnablePrivateTeamDiscovery + + Determines whether a user is allowed to discover private teams in suggestions and search results. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + Force + + Bypass all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Use this parameter to specify the name of the policy being updated. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Use this parameter to pass the policy object output of Get-CsTeamsChannelsPolicy to update that policy. + + PSObject + + PSObject + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + ThreadedChannelCreation + + > [!NOTE] > This parameter is reserved for internal Microsoft use. + This setting enables/disables Threaded Channel creation and editing. + Possible Values: - Enabled: Users are allowed to create and edit Threaded Channels. + - Disabled: Users are not allowed to create and edit Threaded Channels. + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsChannelsPolicy -Identity StudentPolicy -EnablePrivateTeamDiscovery $true + + This example shows updating an existing policy with name "StudentPolicy" and enabling Private Team Discovery. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamschannelspolicy + + + New-CsTeamsChannelsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamschannelspolicy + + + Remove-CsTeamsChannelsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy + + + Grant-CsTeamsChannelsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy + + + Get-CsTeamsChannelsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy + + + + + + Set-CsTeamsClientConfiguration + Set + CsTeamsClientConfiguration + + Changes the Teams client configuration settings for the specified tenant. + + + + The TeamsClientConfiguration allows IT admins to control the settings that can be accessed via Teams clients across their organization. This configuration includes settings like which third party cloud storage your organization allows, whether or not guest users can access the teams client, and whether or not meeting room devices running teams are can display content from user accounts. The parameter descriptions below describe what settings are managed by this configuration and how they are enforced. + An organization can have only one effective Teams Client Configuration - these settings will apply across the entire organization for the particular features they control. + Note that three of these settings (ContentPin, ResourceAccountContentAccess, and AllowResourceAccountSendMessage) control resource account behavior for Surface Hub devices attending Skype for Business meetings, and are not used in Microsoft Teams. + + + + Set-CsTeamsClientConfiguration + + Identity + + The only valid input is Global - the tenant wide configuration. + + XdsIdentity + + XdsIdentity + + + None + + + AllowBox + + Designates whether users are able to leverage Box as a third party storage solution in Microsoft Teams. If $true, users will be able to add Box in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowDropBox + + Designates whether users are able to leverage DropBox as a third party storage solution in Microsoft Teams. If $true, users will be able to add DropBox in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowEgnyte + + Designates whether users are able to leverage Egnyte as a third party storage solution in Microsoft Teams. If $true, users will be able to add Egnyte in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowEmailIntoChannel + + When set to $true, mail hooks are enabled, and users can post messages to a channel by sending an email to the email address of Teams channel. + To find the email address for a channel, click the More options menu for the channel and then select Get email address. + + Boolean + + Boolean + + + None + + + AllowGoogleDrive + + Designates whether users are able to leverage GoogleDrive as a third party storage solution in Microsoft Teams. If $true, users will be able to add Google Drive in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowGuestUser + + Designates whether or not guest users in your organization will have access to the Teams client. If $true, guests in your tenant will be able to access the Teams client. Note that this setting has a core dependency on Guest Access being enabled in your Office 365 tenant. For more information on this topic, read Authorize Guest Access in Microsoft Teams: https://learn.microsoft.com/microsoftteams/teams-dependencies + + Boolean + + Boolean + + + None + + + AllowOrganizationTab + + When set to $true, users will be able to see the organizational chart icon other users' contact cards, and when clicked, this icon will display the detailed organizational chart. + + Boolean + + Boolean + + + None + + + AllowResourceAccountSendMessage + + Surface Hub uses a device account to provide email and collaboration services (IM, video, voice). This device account is used as the originating identity (the "from" party) when sending email, IM, and placing calls. As this account is not coming from an individual, identifiable user, it is deemed "anonymous" because it originated from the Surface Hub's device account. If set to $true, these device accounts will be able to send chat messages in Skype for Business Online (does not apply to Microsoft Teams). + + Boolean + + Boolean + + + None + + + AllowRoleBasedChatPermissions + + When set to True, Supervised Chat is enabled for the tenant. + + Boolean + + Boolean + + + False + + + AllowScopedPeopleSearchandAccess + + If set to $true, the Exchange address book policy (ABP) will be used to provide customized view of the global address book for each user. This is only a virtual separation and not a legal separation. + + Boolean + + Boolean + + + None + + + AllowShareFile + + Designates whether users are able to leverage Citrix ShareFile as a third party storage solution in Microsoft Teams. If $true, users will be able to add Citrix ShareFile in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowSkypeBusinessInterop + + When set to $true, Teams conversations automatically show up in Skype for Business for users that aren't enabled for Teams. + + Boolean + + Boolean + + + None + + + AllowTBotProactiveMessaging + + Deprecated, do not use. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ContentPin + + This setting applies only to Skype for Business Online (not Microsoft Teams) and defines whether the user must provide a secondary form of authentication to access the meeting content from a resource device account . Meeting content is defined as files that are shared to the "Content Bin" - files that have been attached to the meeting. + Possible Values: NotRequired, RequiredOutsideScheduleMeeting, AlwaysRequired . Default Value: RequiredOutsideScheduleMeeting + + String + + String + + + None + + + Force + + Bypass any verification checks and non-fatal errors. + + + SwitchParameter + + + False + + + ResourceAccountContentAccess + + Require a secondary form of authentication to access meeting content. + Possible values: NoAccess, PartialAccess and FullAccess + + String + + String + + + None + + + RestrictedSenderList + + Senders domains can be further restricted to ensure that only allowed SMTP domains can send emails to the Teams channels. This is a semicolon-separated string of the domains you'd like to allow to send emails to Teams channels. + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + The WhatIf switch does not work with this cmdlet. + + + SwitchParameter + + + False + + + + Set-CsTeamsClientConfiguration + + AllowBox + + Designates whether users are able to leverage Box as a third party storage solution in Microsoft Teams. If $true, users will be able to add Box in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowDropBox + + Designates whether users are able to leverage DropBox as a third party storage solution in Microsoft Teams. If $true, users will be able to add DropBox in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowEgnyte + + Designates whether users are able to leverage Egnyte as a third party storage solution in Microsoft Teams. If $true, users will be able to add Egnyte in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowEmailIntoChannel + + When set to $true, mail hooks are enabled, and users can post messages to a channel by sending an email to the email address of Teams channel. + To find the email address for a channel, click the More options menu for the channel and then select Get email address. + + Boolean + + Boolean + + + None + + + AllowGoogleDrive + + Designates whether users are able to leverage GoogleDrive as a third party storage solution in Microsoft Teams. If $true, users will be able to add Google Drive in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowGuestUser + + Designates whether or not guest users in your organization will have access to the Teams client. If $true, guests in your tenant will be able to access the Teams client. Note that this setting has a core dependency on Guest Access being enabled in your Office 365 tenant. For more information on this topic, read Authorize Guest Access in Microsoft Teams: https://learn.microsoft.com/microsoftteams/teams-dependencies + + Boolean + + Boolean + + + None + + + AllowOrganizationTab + + When set to $true, users will be able to see the organizational chart icon other users' contact cards, and when clicked, this icon will display the detailed organizational chart. + + Boolean + + Boolean + + + None + + + AllowResourceAccountSendMessage + + Surface Hub uses a device account to provide email and collaboration services (IM, video, voice). This device account is used as the originating identity (the "from" party) when sending email, IM, and placing calls. As this account is not coming from an individual, identifiable user, it is deemed "anonymous" because it originated from the Surface Hub's device account. If set to $true, these device accounts will be able to send chat messages in Skype for Business Online (does not apply to Microsoft Teams). + + Boolean + + Boolean + + + None + + + AllowRoleBasedChatPermissions + + When set to True, Supervised Chat is enabled for the tenant. + + Boolean + + Boolean + + + False + + + AllowScopedPeopleSearchandAccess + + If set to $true, the Exchange address book policy (ABP) will be used to provide customized view of the global address book for each user. This is only a virtual separation and not a legal separation. + + Boolean + + Boolean + + + None + + + AllowShareFile + + Designates whether users are able to leverage Citrix ShareFile as a third party storage solution in Microsoft Teams. If $true, users will be able to add Citrix ShareFile in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowSkypeBusinessInterop + + When set to $true, Teams conversations automatically show up in Skype for Business for users that aren't enabled for Teams. + + Boolean + + Boolean + + + None + + + AllowTBotProactiveMessaging + + Deprecated, do not use. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ContentPin + + This setting applies only to Skype for Business Online (not Microsoft Teams) and defines whether the user must provide a secondary form of authentication to access the meeting content from a resource device account . Meeting content is defined as files that are shared to the "Content Bin" - files that have been attached to the meeting. + Possible Values: NotRequired, RequiredOutsideScheduleMeeting, AlwaysRequired . Default Value: RequiredOutsideScheduleMeeting + + String + + String + + + None + + + Force + + Bypass any verification checks and non-fatal errors. + + + SwitchParameter + + + False + + + Instance + + You can use this to pass the results from Get-CsTeamsClientConfiguration into the Set-CsTeamsClientConfiguration rather than specifying the "-Identity Global" parameter. + + PSObject + + PSObject + + + None + + + ResourceAccountContentAccess + + Require a secondary form of authentication to access meeting content. + Possible values: NoAccess, PartialAccess and FullAccess + + String + + String + + + None + + + RestrictedSenderList + + Senders domains can be further restricted to ensure that only allowed SMTP domains can send emails to the Teams channels. This is a semicolon-separated string of the domains you'd like to allow to send emails to Teams channels. + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + The WhatIf switch does not work with this cmdlet. + + + SwitchParameter + + + False + + + + + + AllowBox + + Designates whether users are able to leverage Box as a third party storage solution in Microsoft Teams. If $true, users will be able to add Box in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowDropBox + + Designates whether users are able to leverage DropBox as a third party storage solution in Microsoft Teams. If $true, users will be able to add DropBox in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowEgnyte + + Designates whether users are able to leverage Egnyte as a third party storage solution in Microsoft Teams. If $true, users will be able to add Egnyte in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowEmailIntoChannel + + When set to $true, mail hooks are enabled, and users can post messages to a channel by sending an email to the email address of Teams channel. + To find the email address for a channel, click the More options menu for the channel and then select Get email address. + + Boolean + + Boolean + + + None + + + AllowGoogleDrive + + Designates whether users are able to leverage GoogleDrive as a third party storage solution in Microsoft Teams. If $true, users will be able to add Google Drive in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowGuestUser + + Designates whether or not guest users in your organization will have access to the Teams client. If $true, guests in your tenant will be able to access the Teams client. Note that this setting has a core dependency on Guest Access being enabled in your Office 365 tenant. For more information on this topic, read Authorize Guest Access in Microsoft Teams: https://learn.microsoft.com/microsoftteams/teams-dependencies + + Boolean + + Boolean + + + None + + + AllowOrganizationTab + + When set to $true, users will be able to see the organizational chart icon other users' contact cards, and when clicked, this icon will display the detailed organizational chart. + + Boolean + + Boolean + + + None + + + AllowResourceAccountSendMessage + + Surface Hub uses a device account to provide email and collaboration services (IM, video, voice). This device account is used as the originating identity (the "from" party) when sending email, IM, and placing calls. As this account is not coming from an individual, identifiable user, it is deemed "anonymous" because it originated from the Surface Hub's device account. If set to $true, these device accounts will be able to send chat messages in Skype for Business Online (does not apply to Microsoft Teams). + + Boolean + + Boolean + + + None + + + AllowRoleBasedChatPermissions + + When set to True, Supervised Chat is enabled for the tenant. + + Boolean + + Boolean + + + False + + + AllowScopedPeopleSearchandAccess + + If set to $true, the Exchange address book policy (ABP) will be used to provide customized view of the global address book for each user. This is only a virtual separation and not a legal separation. + + Boolean + + Boolean + + + None + + + AllowShareFile + + Designates whether users are able to leverage Citrix ShareFile as a third party storage solution in Microsoft Teams. If $true, users will be able to add Citrix ShareFile in the client and interact with the files stored there. + + Boolean + + Boolean + + + None + + + AllowSkypeBusinessInterop + + When set to $true, Teams conversations automatically show up in Skype for Business for users that aren't enabled for Teams. + + Boolean + + Boolean + + + None + + + AllowTBotProactiveMessaging + + Deprecated, do not use. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ContentPin + + This setting applies only to Skype for Business Online (not Microsoft Teams) and defines whether the user must provide a secondary form of authentication to access the meeting content from a resource device account . Meeting content is defined as files that are shared to the "Content Bin" - files that have been attached to the meeting. + Possible Values: NotRequired, RequiredOutsideScheduleMeeting, AlwaysRequired . Default Value: RequiredOutsideScheduleMeeting + + String + + String + + + None + + + Force + + Bypass any verification checks and non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The only valid input is Global - the tenant wide configuration. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + You can use this to pass the results from Get-CsTeamsClientConfiguration into the Set-CsTeamsClientConfiguration rather than specifying the "-Identity Global" parameter. + + PSObject + + PSObject + + + None + + + ResourceAccountContentAccess + + Require a secondary form of authentication to access meeting content. + Possible values: NoAccess, PartialAccess and FullAccess + + String + + String + + + None + + + RestrictedSenderList + + Senders domains can be further restricted to ensure that only allowed SMTP domains can send emails to the Teams channels. This is a semicolon-separated string of the domains you'd like to allow to send emails to Teams channels. + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + The WhatIf switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsClientConfiguration -Identity Global -AllowDropBox $false + + In this example, the client configuration effective for the organization (Global) is being updated to disable the use of DropBox in the organization. All other settings in the configuration remain the same. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsclientconfiguration + + + + + + Set-CsTeamsComplianceRecordingApplication + Set + CsTeamsComplianceRecordingApplication + + Modifies an existing association between an application instance of a policy-based recording application and a Teams recording policy for administering automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Policy-based recording applications are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to enforce compliance with the administrative set policy. + Instances of these applications are created using CsOnlineApplicationInstance cmdlets and are then associated with Teams recording policies. + Note that application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. Once the association is done, the Identity of these application instances becomes <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. Please also refer to the documentation of CsTeamsComplianceRecordingPolicy cmdlets for further information. + + + + Set-CsTeamsComplianceRecordingApplication + + Identity + + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + ComplianceRecordingPairedApplications + + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + ComplianceRecordingPairedApplication[] + + ComplianceRecordingPairedApplication[] + + + None + + + ConcurrentInvitationCount + + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + UInt32 + + UInt32 + + + 1 + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Priority + + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + + Int32 + + Int32 + + + None + + + RequiredBeforeCallEstablishment + + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + + Boolean + + Boolean + + + True + + + RequiredBeforeMeetingJoin + + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + + Boolean + + Boolean + + + True + + + RequiredDuringCall + + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + + Boolean + + Boolean + + + True + + + RequiredDuringMeeting + + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + + Boolean + + Boolean + + + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsComplianceRecordingApplication + + ComplianceRecordingPairedApplications + + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + ComplianceRecordingPairedApplication[] + + ComplianceRecordingPairedApplication[] + + + None + + + ConcurrentInvitationCount + + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + UInt32 + + UInt32 + + + 1 + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + Priority + + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + + Int32 + + Int32 + + + None + + + RequiredBeforeCallEstablishment + + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + + Boolean + + Boolean + + + True + + + RequiredBeforeMeetingJoin + + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + + Boolean + + Boolean + + + True + + + RequiredDuringCall + + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + + Boolean + + Boolean + + + True + + + RequiredDuringMeeting + + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + + Boolean + + Boolean + + + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ComplianceRecordingPairedApplications + + Determines the other policy-based recording applications to pair with this application to achieve application resiliency. Can only have one paired application. + In situations where application resiliency is a necessity, invites can be sent to separate paired applications for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + ComplianceRecordingPairedApplication[] + + ComplianceRecordingPairedApplication[] + + + None + + + ConcurrentInvitationCount + + Determines the number of invites to send out to the application instance of the policy-based recording application. Can be set to 1 or 2 only. + In situations where application resiliency is a necessity, multiple invites can be sent to the same application for the same call or meeting. If multiple such invites are accepted, then it means that multiple instances of this application are in the call or meeting and each of those instances can record independent of the others. + If all of the invites are rejected, the application invitation process is deemed a failure and the other flags for this application control what happens next. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredBeforeCallEstablishment parameters. + If at least one of the invites is accepted and the others are rejected, the application invitation process is still deemed a success. + If multiple invites are accepted and all of the instances leave or get dropped from the call or meeting, then the application is no longer in the call or meeting and the other flags for this application control what happens next. Please refer to the documentation of the RequiredDuringMeeting and RequiredDuringCall parameters. + If multiple invites are accepted and at least one of the instances remains in the call or meeting, then the application is in the call or meeting. + Note that application resiliency can be achieved either by sending multiple invites to the same application using ConcurrentInvitationCount or by sending invites to separate paired applications using ComplianceRecordingPairedApplications. However, you cannot do both. Please work with your Microsoft certified policy-based recording application provider to determine if application resiliency is needed for your workflows and how best to achieve application resiliency. + + UInt32 + + UInt32 + + + 1 + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A name that uniquely identifies the application instance of the policy-based recording application. + Application instances of policy-based recording applications must be associated with a Teams recording policy using the CsTeamsComplianceRecordingApplication cmdlets. To do this association correctly, the Identity of these application instances must be <Identity of the associated Teams recording policy>/<ObjectId of the application instance>. For example, the Identity of an application instance can be \"Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144\", which indicates that the application instance with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144 is associated with the Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + Priority + + This priority determines the order in which the policy-based recording applications are displayed in the output of the Get-CsTeamsComplianceRecordingPolicy cmdlet. + All policy-based recording applications are invited in parallel to ensure low call setup and meeting join latencies. So this parameter does not affect the order of invitations to the applications, or any other routing. + + Int32 + + Int32 + + + None + + + RequiredBeforeCallEstablishment + + Indicates whether the policy-based recording application must be in the call before the call is allowed to establish. + If this is set to True, the call will be cancelled if the policy-based recording application fails to join the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application fails to join the call. + + Boolean + + Boolean + + + True + + + RequiredBeforeMeetingJoin + + Indicates whether the policy-based recording application must be in the meeting before the user is allowed to join the meeting. + If this is set to True, the user will not be allowed to join the meeting if the policy-based recording application fails to join the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will be allowed to join the meeting even if the policy-based recording application fails to join the meeting. + + Boolean + + Boolean + + + True + + + RequiredDuringCall + + Indicates whether the policy-based recording application must be in the call while the call is active. + If this is set to True, the call will be cancelled if the policy-based recording application leaves the call or is dropped from the call. + If this is set to False, call establishment will proceed normally if the policy-based recording application leaves the call or is dropped from the call. + + Boolean + + Boolean + + + True + + + RequiredDuringMeeting + + Indicates whether the policy-based recording application must be in the meeting while the user is in the meeting. + If this is set to True, the user will be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. The meeting will still continue for users who are in the meeting. + If this is set to False, the user will not be ejected from the meeting if the policy-based recording application leaves the meeting or is dropped from the meeting. + + Boolean + + Boolean + + + True + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -RequiredBeforeMeetingJoin $false -RequiredDuringMeeting $false + + The command shown in Example 1 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application is made optional for meetings. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredDuringMeeting parameters for more information. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -RequiredBeforeCallEstablishment $false -RequiredDuringCall $false + + The command shown in Example 2 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application is made optional for calls. Please refer to the documentation of the RequiredBeforeCallEstablishment and RequiredDuringCall parameters for more information. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -ConcurrentInvitationCount 2 + + The command shown in Example 3 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application is made resilient by specifying that two invites must be sent to the same application for the same call or meeting. Please refer to the documentation of the ConcurrentInvitationCount parameter for more information. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -ComplianceRecordingPairedApplications @(New-CsTeamsComplianceRecordingPairedApplication -Id '39dc3ede-c80e-4f19-9153-417a65a1f144') + + The command shown in Example 4 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application is made resilient by pairing it with another application instance of a policy-based recording application with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. Separate invites are sent to the paired applications for the same call or meeting. Please refer to the documentation of the ComplianceRecordingPairedApplications parameter for more information. + + + + -------------------------- Example 5 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -ComplianceRecordingPairedApplications $null + + The command shown in Example 5 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. + In this example, the application's resiliency is removed by removing the pairing it had with the application instance of a policy-based recording application with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. Please refer to the documentation of the ComplianceRecordingPairedApplications parameter for more information. + + + + -------------------------- Example 6 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingApplication | Set-CsTeamsComplianceRecordingApplication -RequiredBeforeMeetingJoin $false -RequiredDuringMeeting $false + + The command shown in Example 6 modifies all existing associations between application instances of policy-based recording applications and their corresponding Teams recording policy. + In this example, all applications are made optional for meetings. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredDuringMeeting parameters for more information. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + Set-CsTeamsComplianceRecordingPolicy + Set + CsTeamsComplianceRecordingPolicy + + Modifies an existing Teams recording policy for governing automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Teams recording policies are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to record audio, video and video-based screen sharing activity. + Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. + + + + Set-CsTeamsComplianceRecordingPolicy + + Identity + + Unique identifier to be assigned to the new Teams recording policy. + Use the "Global" Identity if you wish to assign this policy to the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + ComplianceRecordingApplications + + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + + ComplianceRecordingApplication[] + + ComplianceRecordingApplication[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + DisableComplianceRecordingAudioNotificationForCalls + + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording + + Boolean + + Boolean + + + False + + + DisableComplianceRecordingAudioNotificationForCalls + + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. + + Boolean + + Boolean + + + False + + + Enabled + + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + CustomBanner + + References the Custom Banner text in the storage. + + Guid + + Guid + + + None + + + RecordReroutedCalls + + Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. + + Boolean + + Boolean + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WarnUserOnRemoval + + This parameter is reserved for future use. + + Boolean + + Boolean + + + True + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsComplianceRecordingPolicy + + ComplianceRecordingApplications + + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + + ComplianceRecordingApplication[] + + ComplianceRecordingApplication[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + DisableComplianceRecordingAudioNotificationForCalls + + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording + + Boolean + + Boolean + + + False + + + DisableComplianceRecordingAudioNotificationForCalls + + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. + + Boolean + + Boolean + + + False + + + Enabled + + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + CustomBanner + + References the Custom Banner text in the storage. + + Guid + + Guid + + + None + + + RecordReroutedCalls + + Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. + + Boolean + + Boolean + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WarnUserOnRemoval + + This parameter is reserved for future use. + + Boolean + + Boolean + + + True + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ComplianceRecordingApplications + + A list of application instances of policy-based recording applications to assign to this policy. The Id of each of these application instances must be the ObjectId of the application instance as obtained by the Get-CsOnlineApplicationInstance cmdlet. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + + ComplianceRecordingApplication[] + + ComplianceRecordingApplication[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams recording policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + DisableComplianceRecordingAudioNotificationForCalls + + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording + + Boolean + + Boolean + + + False + + + DisableComplianceRecordingAudioNotificationForCalls + + Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. + + Boolean + + Boolean + + + False + + + Enabled + + Controls whether this Teams recording policy is active or not. + Setting this to True and having the right set of ComplianceRecordingApplications will initiate automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + Setting this to False will stop automatic policy-based recording for any new calls or meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier to be assigned to the new Teams recording policy. + Use the "Global" Identity if you wish to assign this policy to the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + CustomBanner + + References the Custom Banner text in the storage. + + Guid + + Guid + + + None + + + RecordReroutedCalls + + Setting this attribute to true enables compliance recording for calls that have been re-routed from a compliance recording-enabled user. Supported call scenarios include forward, transfer, delegation, call groups, and simultaneous ring. + + Boolean + + Boolean + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WarnUserOnRemoval + + This parameter is reserved for future use. + + Boolean + + Boolean + + + True + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899') + + The command shown in Example 1 modifies an existing per-user Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. This policy is re-assigned a single application instance of a policy-based recording application: d93fefc7-93cc-4d44-9a5d-344b0fff2899, which is the ObjectId of the application instance as obtained from the Get-CsOnlineApplicationInstance cmdlet. + Any Microsoft Teams users who are assigned this policy will have their calls and meetings recorded by that application instance. Existing calls and meetings are unaffected. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899'), @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id '39dc3ede-c80e-4f19-9153-417a65a1f144') + + Example 2 is a variation of Example 1. In this case, the Teams recording policy is re-assigned two application instances of policy-based recording applications. + Any Microsoft Teams users who are assigned this policy will have their calls and meetings recorded by both those application instances. Existing calls and meetings are unaffected. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -Enabled $false + + The command shown in Example 3 stops automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Set-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -Enabled $true + + The command shown in Example 4 causes automatic policy-based recording to occur for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. + + + + -------------------------- Example 5 -------------------------- + PS C:\> Get-CsTeamsComplianceRecordingPolicy | Set-CsTeamsComplianceRecordingPolicy -Enabled $false + + The command shown in Example 5 stops automatic policy-based recording for all Teams recording policies. This effectively stops automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned any Teams recording policy. Existing calls and meetings are unaffected. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Grant-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + Set-CsTeamsEducationAssignmentsAppPolicy + Set + CsTeamsEducationAssignmentsAppPolicy + + This policy is controlled by Global and Teams Service Administrators, and is used to turn on/off certain features only related to the Assignments Service, which runs for tenants with EDU licenses. + + + + This policy is controlled by Global and Teams Service Administrators, and is used to turn on/off certain features only related to the Assignments Service, which runs for tenants with EDU licenses. This cmdlet allows you to retrieve the current values of your Education Assignments App Policy. At this time, you can only modify your global policy - this policy type does not support user-level custom policies. + + + + Set-CsTeamsEducationAssignmentsAppPolicy + + Identity + + The identity of the policy being modified. The only value supported is "Global", as you cannot create user level policies of this type. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppress all non-fatal errors. + + + SwitchParameter + + + False + + + MakeCodeEnabledType + + Block-based coding activities to introduce computer science concepts. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + ParentDigestEnabledType + + Send digest emails to parents/guardians. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + Tenant + + Internal use only. + + System.Guid + + System.Guid + + + None + + + TurnItInApiKey + + The api key in order to enable TurnItIn. + + String + + String + + + None + + + TurnItInApiUrl + + The api url in order to enable TurnItIn + + String + + String + + + None + + + TurnItInEnabledType + + A service that detects plagiarism in student writing. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsEducationAssignmentsAppPolicy + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppress all non-fatal errors. + + + SwitchParameter + + + False + + + Instance + + Pass in the policy fetched from Get-CsTeamsEducationAssignmentsAppPolicy. + + PSObject + + PSObject + + + None + + + MakeCodeEnabledType + + Block-based coding activities to introduce computer science concepts. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + ParentDigestEnabledType + + Send digest emails to parents/guardians. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + Tenant + + Internal use only. + + System.Guid + + System.Guid + + + None + + + TurnItInApiKey + + The api key in order to enable TurnItIn. + + String + + String + + + None + + + TurnItInApiUrl + + The api url in order to enable TurnItIn + + String + + String + + + None + + + TurnItInEnabledType + + A service that detects plagiarism in student writing. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppress all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The identity of the policy being modified. The only value supported is "Global", as you cannot create user level policies of this type. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Pass in the policy fetched from Get-CsTeamsEducationAssignmentsAppPolicy. + + PSObject + + PSObject + + + None + + + MakeCodeEnabledType + + Block-based coding activities to introduce computer science concepts. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + ParentDigestEnabledType + + Send digest emails to parents/guardians. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + Tenant + + Internal use only. + + System.Guid + + System.Guid + + + None + + + TurnItInApiKey + + The api key in order to enable TurnItIn. + + String + + String + + + None + + + TurnItInApiUrl + + The api url in order to enable TurnItIn + + String + + String + + + None + + + TurnItInEnabledType + + A service that detects plagiarism in student writing. Possible values are "Enabled" or "Disabled" + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsEducationAssignmentsAppPolicy -TurnItInEnabledType "Enabled" + + Enables the TurnItIn app for the organization + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationassignmentsapppolicy + + + + + + Set-CsTeamsEducationConfiguration + Set + CsTeamsEducationConfiguration + + This cmdlet is used to manage the organization-wide education configuration for Teams. + + + + This cmdlet is used to manage the organization-wide education configuration for Teams which contains settings that are applicable to education organizations. + You must be a Teams Service Administrator for your organization to run the cmdlet. + + + + Set-CsTeamsEducationConfiguration + + ParentGuardianPreferredContactMethod + + Indicates whether Email or SMS is the preferred contact method used for parent communication invitations. Possible values are 'Email' and 'SMS'. + + System.String + + System.String + + + Email + + + UpdateParentInformation + + Indicates whether updating parents contact information is Enabled/Disabled by educators. Possible values are 'Enabled' and 'Disabled'. + + System.String + + System.String + + + Enabled + + + EduGenerativeAIEnhancements + + Controls whether generative AI enhancements are enabled in the education environment. + Possible values: + - `Enabled`: Generative AI features are available to educators and students. + - `Disabled`: Generative AI features are disabled across the tenant. + + System.String + + System.String + + + Enabled + + + Identity + + Specifies the identity of the education configuration to set. + + System.String + + System.String + + + Global + + + + + + ParentGuardianPreferredContactMethod + + Indicates whether Email or SMS is the preferred contact method used for parent communication invitations. Possible values are 'Email' and 'SMS'. + + System.String + + System.String + + + Email + + + UpdateParentInformation + + Indicates whether updating parents contact information is Enabled/Disabled by educators. Possible values are 'Enabled' and 'Disabled'. + + System.String + + System.String + + + Enabled + + + EduGenerativeAIEnhancements + + Controls whether generative AI enhancements are enabled in the education environment. + Possible values: + - `Enabled`: Generative AI features are available to educators and students. + - `Disabled`: Generative AI features are disabled across the tenant. + + System.String + + System.String + + + Enabled + + + Identity + + Specifies the identity of the education configuration to set. + + System.String + + System.String + + + Global + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsEducationConfiguration -ParentGuardianPreferredContactMethod Email + + + + + + -------------------------- Example 2 -------------------------- + Set-CsTeamsEducationConfiguration -ParentGuardianPreferredContactMethod SMS + + + + + + -------------------------- Example 3 -------------------------- + Set-CsTeamsEducationConfiguration -UpdateParentInformation Enabled + + + + + + -------------------------- Example 4 -------------------------- + Set-CsTeamsEducationConfiguration -UpdateParentInformation Disabled + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationconfiguration + + + Get-CsTeamsEducationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationconfiguration + + + + + + Set-CsTeamsEmergencyCallingPolicy + Set + CsTeamsEmergencyCallingPolicy + + + + + + This cmdlet modifies an existing Teams Emergency Calling policy. Emergency calling policy is used for the life cycle of emergency calling experience for the security desk and Teams client location experience. + + + + Set-CsTeamsEmergencyCallingPolicy + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provides a description of the Teams Emergency Calling policy to identify the purpose of setting it. + + String + + String + + + None + + + EnhancedEmergencyServiceDisclaimer + + Allows the tenant administrator to configure a text string, which is shown at the top of the Calls app. The user can acknowledge the string by selecting OK. The string will be shown on client restart. The disclaimer can be up to 350 characters. + + String + + String + + + None + + + ExtendedNotifications + + A list of one or more instances of TeamsEmergencyCallingExtendedNotification. Each TeamsEmergencyCallingExtendedNotification should use a unique EmergencyDialString. + If an extended notification is found for an emergency phone number based on the EmergencyDialString parameter the extended notification will be controlling the notification. If no extended notification is found the notification settings on the policy instance itself will be used. + + System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] + + System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] + + + None + + + ExternalLocationLookupMode + + Enables ExternalLocationLookupMode. This mode allows users to set Emergency addresses for remote locations. + + + Disabled + Enabled + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode + + + None + + + NotificationDialOutNumber + + This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. + + String + + String + + + None + + + NotificationGroup + + NotificationGroup is an email list of users and groups to be notified of an emergency call via Teams chat. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 e-mail addresses can be specified and a maximum of 50 users in total can be notified. Both UPN and SMTP address are accepted when adding users directly. + + String + + String + + + None + + + NotificationMode + + The type of conference experience for security desk notification. Possible values are NotificationOnly, ConferenceMuted, and ConferenceUnMuted. + + + NotificationOnly + ConferenceMuted + ConferenceUnMuted + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provides a description of the Teams Emergency Calling policy to identify the purpose of setting it. + + String + + String + + + None + + + EnhancedEmergencyServiceDisclaimer + + Allows the tenant administrator to configure a text string, which is shown at the top of the Calls app. The user can acknowledge the string by selecting OK. The string will be shown on client restart. The disclaimer can be up to 350 characters. + + String + + String + + + None + + + ExtendedNotifications + + A list of one or more instances of TeamsEmergencyCallingExtendedNotification. Each TeamsEmergencyCallingExtendedNotification should use a unique EmergencyDialString. + If an extended notification is found for an emergency phone number based on the EmergencyDialString parameter the extended notification will be controlling the notification. If no extended notification is found the notification settings on the policy instance itself will be used. + + System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] + + System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] + + + None + + + ExternalLocationLookupMode + + Enables ExternalLocationLookupMode. This mode allows users to set Emergency addresses for remote locations. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode + + + None + + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy + + String + + String + + + None + + + NotificationDialOutNumber + + This parameter represents the PSTN number which can be dialed out if NotificationMode is set to either of the two Conference values. The PSTN phone cannot be unmuted even when the NotificationMode is set to ConferenceUnMuted. + + String + + String + + + None + + + NotificationGroup + + NotificationGroup is an email list of users and groups to be notified of an emergency call via Teams chat. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 e-mail addresses can be specified and a maximum of 50 users in total can be notified. Both UPN and SMTP address are accepted when adding users directly. + + String + + String + + + None + + + NotificationMode + + The type of conference experience for security desk notification. Possible values are NotificationOnly, ConferenceMuted, and ConferenceUnMuted. + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode + + Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -NotificationGroup "123@contoso.com;567@contoso.com" + + This example modifies NotificationGroup of an existing policy instance with identity TestECP. + + + + -------------------------- Example 2 -------------------------- + $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "911" -NotificationGroup "alert2@contoso.com" -NotificationMode ConferenceUnMuted +Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{remove=$en1} + + This example first creates a new Teams Emergency Calling Extended Notification object and then removes that Teams Emergency Calling Extended Notification from an existing Teams Emergency Calling policy. + + + + -------------------------- Example 3 -------------------------- + $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "911" -NotificationGroup "alert@contoso.com" -NotificationDialOutNumber "+14255551234" -NotificationMode ConferenceUnMuted +$en2 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "933" +Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{add=$en1,$en2} + + This example first creates two new Teams Emergency Calling Extended Notification objects and then adds them to an existing Teams Emergency Calling policy with identity TestECP. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy + + + New-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy + + + Get-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy + + + Remove-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy + + + Grant-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy + + + New-CsTeamsEmergencyCallingExtendedNotification + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification + + + + + + Set-CsTeamsEventsPolicy + Set + CsTeamsEventsPolicy + + This cmdlet allows you to configure options for customizing Teams events experiences. Note that this policy is currently still in preview. + + + + User-level policy for tenant admin to configure options for customizing Teams events experiences. Use this cmdlet to update an existing policy. + + + + Set-CsTeamsEventsPolicy + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + AllowedQuestionTypesInRegistrationForm + + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + + String + + String + + + None + + + AllowedTownhallTypesForRecordingPublish + + This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting describes how IT admins can control which types of webinar attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + None + + + AllowEventIntegrations + + This setting governs access to the integrations tab in the event creation workflow. + Possible values true, false. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. + + String + + String + + + None + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + + String + + String + + + None + + + BroadcastPremiumApps + + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall + + String + + String + + + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. + This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. + + String + + String + + + None + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. + + String + + String + + + Enabled + + + RecordingForTownhall + + Determines whether recording is allowed in a user's townhall. + Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + + String + + String + + + Enabled + + + RecordingForWebinar + + Determines whether recording is allowed in a user's webinar. + Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + + String + + String + + + Enabled + + + TownhallChatExperience + + This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. + Possible values are: Optimized, None. + + String + + String + + + None + + + TownhallEventAttendeeAccess + + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. + Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + + String + + String + + + Enabled + + + TranscriptionForWebinar + + Determines whether transcriptions are allowed in a user's webinar. + Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + + Boolean + + Boolean + + + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + + + WhatIf + + The WhatIf switch does not work with this cmdlet. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowedQuestionTypesInRegistrationForm + + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + + String + + String + + + None + + + AllowedTownhallTypesForRecordingPublish + + This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting describes how IT admins can control which types of webinar attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + None + + + AllowEventIntegrations + + This setting governs access to the integrations tab in the event creation workflow. + Possible values true, false. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. + + String + + String + + + None + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + + String + + String + + + None + + + BroadcastPremiumApps + + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall + + String + + String + + + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. + This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. + + String + + String + + + Enabled + + + RecordingForTownhall + + Determines whether recording is allowed in a user's townhall. + Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + + String + + String + + + Enabled + + + RecordingForWebinar + + Determines whether recording is allowed in a user's webinar. + Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + + String + + String + + + Enabled + + + TownhallChatExperience + + This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. + Possible values are: Optimized, None. + + String + + String + + + None + + + TownhallEventAttendeeAccess + + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. + Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + + String + + String + + + Enabled + + + TranscriptionForWebinar + + Determines whether transcriptions are allowed in a user's webinar. + Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + + Boolean + + Boolean + + + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + + + WhatIf + + The WhatIf switch does not work with this cmdlet. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsEventsPolicy -Identity Global -AllowWebinars Disabled + + The command shown in Example 1 sets the value of the Default (Global) Events Policy in the organization to disable webinars, and leaves all other parameters the same. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseventspolicy + + + + + + Set-CsTeamsExternalAccessConfiguration + Set + CsTeamsExternalAccessConfiguration + + + + + + Allows admins to set values in the TeamsExternalAccessConfiguration, which specifies configs that can be used to improve entire org security. This configuration primarily allows admins to block malicious external users from the organization. + + + + Set-CsTeamsExternalAccessConfiguration + + Identity + + The only option is Global + + XdsIdentity + + XdsIdentity + + + None + + + BlockedUsers + + You can specify blocked users using a List object that contains either the user email or the MRI from the external user you want to block. The user in the list will not able to communicate with the internal users in your organization. + + List + + List + + + None + + + BlockExternalAccessUserAccess + + Designates whether BlockedUsers list is taking effect or not. $true means BlockedUsers are blocked and can't communicate with internal users. + + Boolean + + Boolean + + + False + + + Force + + Bypass confirmation + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BlockedUsers + + You can specify blocked users using a List object that contains either the user email or the MRI from the external user you want to block. The user in the list will not able to communicate with the internal users in your organization. + + List + + List + + + None + + + BlockExternalAccessUserAccess + + Designates whether BlockedUsers list is taking effect or not. $true means BlockedUsers are blocked and can't communicate with internal users. + + Boolean + + Boolean + + + False + + + Force + + Bypass confirmation + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The only option is Global + + XdsIdentity + + XdsIdentity + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsExternalAccessConfiguration -Identity Global -BlockExternalAccessUserAccess $true + + In this example, the admin has enabled the BlockExternalUserAccess. The users in the BlockedUsers will be blocked from communicating with the internal users. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsExternalAccessConfiguration -Identity Global -BlockedUsers @("user1@malicious.com", "user2@malicious.com") + + In this example, the admin has added two malicious users into the blocked list. These blocked users can't communicate with internal users anymore. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsexternalaccessconfiguration + + + + + + Set-CsTeamsFeedbackPolicy + Set + CsTeamsFeedbackPolicy + + Use this cmdlet to modify a Teams feedback policy (the ability to send feedback about Teams to Microsoft and whether they receive the survey). + + + + Modifies a Teams feedback policy (the ability to send feedback about Teams to Microsoft and whether they receive the survey). + + + + Set-CsTeamsFeedbackPolicy + + Identity + + The unique identifier of the policy. + + String + + String + + + None + + + AllowEmailCollection + + Set this to TRUE to enable Email collection. + + Boolean + + Boolean + + + None + + + AllowLogCollection + + Set this to TRUE to enable log collection. + + Boolean + + Boolean + + + None + + + AllowScreenshotCollection + + Set this to TRUE to enable Screenshot collection. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnableFeatureSuggestions + + This setting will enable Tenant Admins to hide or show the Teams menu item "Help | Suggest a Feature". Possible Values: True, False + + Boolean + + Boolean + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Instance + + Internal Microsoft use. + + Object + + Object + + + None + + + ReceiveSurveysMode + + Set the receiveSurveysMode parameter to enabled to allow users who are assigned the policy to receive the survey. Set it to EnabledUserOverride to have users receive the survey and allow them to opt out. + Possible values: - Enabled - Disabled - EnabledUserOverride + + String + + String + + + Enabled + + + Tenant + + Internal Microsoft use. + + Object + + Object + + + None + + + UserInitiatedMode + + Set the userInitiatedMode parameter to enabled to allow users who are assigned the policy to give feedback. Setting the parameter to disabled turns off the feature and users who are assigned the policy don't have the option to give feedback. + Possible values: - Enabled - Disabled + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowEmailCollection + + Set this to TRUE to enable Email collection. + + Boolean + + Boolean + + + None + + + AllowLogCollection + + Set this to TRUE to enable log collection. + + Boolean + + Boolean + + + None + + + AllowScreenshotCollection + + Set this to TRUE to enable Screenshot collection. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableFeatureSuggestions + + This setting will enable Tenant Admins to hide or show the Teams menu item "Help | Suggest a Feature". Possible Values: True, False + + Boolean + + Boolean + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The unique identifier of the policy. + + String + + String + + + None + + + Instance + + Internal Microsoft use. + + Object + + Object + + + None + + + ReceiveSurveysMode + + Set the receiveSurveysMode parameter to enabled to allow users who are assigned the policy to receive the survey. Set it to EnabledUserOverride to have users receive the survey and allow them to opt out. + Possible values: - Enabled - Disabled - EnabledUserOverride + + String + + String + + + Enabled + + + Tenant + + Internal Microsoft use. + + Object + + Object + + + None + + + UserInitiatedMode + + Set the userInitiatedMode parameter to enabled to allow users who are assigned the policy to give feedback. Setting the parameter to disabled turns off the feature and users who are assigned the policy don't have the option to give feedback. + Possible values: - Enabled - Disabled + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsFeedbackPolicy -identity "New Hire Feedback Policy" -userInitiatedMode enabled -receiveSurveysMode disabled + + In this example, the policy "New Hire Feedback Policy" is modified, sets the userInitiatedMode parameter to enabled and the receiveSurveysMode parameter to disabled. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfeedbackpolicy + + + + + + Set-CsTeamsFilesPolicy + Set + CsTeamsFilesPolicy + + Creates a new teams files policy. Teams files policies determine whether or not files entry points to SharePoint enabled for a user. The policies also specify third-party app ID to allow file storage (e.g., Box). + + + + If your organization chooses a third-party for content storage, you can turn off the NativeFileEntryPoints parameter in the Teams Files policy. This parameter is enabled by default, which shows option to attach OneDrive / SharePoint content from Teams chats or channels. When this parameter is disabled, users won't see access points for OneDrive and SharePoint in Teams. Please note that OneDrive app in the left navigation pane in Teams isn't affected by this policy. Teams administrators can also choose which file service will be used by default when users upload files from their local devices by dragging and dropping them in a chat or channel. OneDrive and SharePoint are the existing defaults, but admins can now change it to a third-party app. Teams administrators would be able to create a customized teams files policy to match the organization's requirements. + + + + Set-CsTeamsFilesPolicy + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + DefaultFileUploadAppId + + This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. + + String + + String + + + None + + + FileSharingInChatswithExternalUsers + + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled + + String + + String + + + Enabled + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + NativeFileEntryPoints + + This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. + + String + + String + + + None + + + SPChannelFilesTab + + Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + DefaultFileUploadAppId + + This can be used by the 3p apps to configure their app, so when the files will be dragged and dropped in compose, it will get uploaded in that 3P app. + + String + + String + + + None + + + FileSharingInChatswithExternalUsers + + Indicates if file sharing in chats with external users is enabled. It is by default enabled, to disable admins can run following command. + + Set-CsTeamsFilesPolicy -Identity Global -FileSharingInChatswithExternalUsers Disabled + + String + + String + + + Enabled + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A unique identifier specifying the scope, and in some cases the name, of the policy. + + String + + String + + + None + + + NativeFileEntryPoints + + This parameter is enabled by default, which shows the option to upload content from ODSP to Teams chats or channels. . Possible values are Enabled or Disabled. + + String + + String + + + None + + + SPChannelFilesTab + + Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsFilesPolicy -Identity "CustomOnlineVoicemailPolicy" -NativeFileEntryPoints Disabled/Enabled + + The command shown in Example 1 changes the teams files policy CustomTeamsFilesPolicy with NativeFileEntryPoints set to Disabled/Enabled. + + + + -------------------------- Example 2 -------------------------- + Set-CsTeamsFilesPolicy -DefaultFileUploadAppId GUID_appId + + The command shown in Example 2 changes the DefaultFileUploadAppId to AppId_GUID for tenant level global teams files policy when calling without Identity parameter. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy + + + Get-CsTeamsFilesPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy + + + + + + Set-CsTeamsMediaConnectivityPolicy + Set + CsTeamsMediaConnectivityPolicy + + This cmdlet Set Teams media connectivity policy value for current tenant. + + + + This cmdlet Set Teams media connectivity policy DirectConnection value for current tenant. The value can be "Enabled" or "Disabled" + + + + Set-CsTeamsMediaConnectivityPolicy + + DirectConnection + + Policy value of the Teams media connectivity DirectConnection policy. + + Boolean + + Boolean + + + Enabled + + + Identity + + Identity of the Teams media connectivity policy. + + String + + String + + + None + + + + Set-CsTeamsMediaConnectivityPolicy + + DirectConnection + + Policy value of the Teams media connectivity DirectConnection policy. + + Boolean + + Boolean + + + Enabled + + + Identity + + Identity of the Teams media connectivity policy. + + String + + String + + + None + + + + + + DirectConnection + + Policy value of the Teams media connectivity DirectConnection policy. + + Boolean + + Boolean + + + Enabled + + + Identity + + Identity of the Teams media connectivity policy. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsMediaConnectivityPolicy -Identity Test -DirectConnection Disabled + +Identity DirectConnection +-------- ---------------- +Global Enabled +Tag:Test Disabled + + Set Teams media connectivity policy "DirectConnection" value to "Disabled" for identity "Test". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMediaConnectivityPolicy + + + New-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy + + + Remove-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy + + + Get-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy + + + Grant-CsTeamsMediaConnectivityPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy + + + + + + Set-CsTeamsMeetingBrandingPolicy + Set + CsTeamsMeetingBrandingPolicy + + The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. + + + + The `Set-CsTeamsMeetingBrandingPolicy` cmdlet allows administrators to update existing meeting branding policies. However, it cannot be used to upload the images. If you want to upload the images, you should use Teams Admin Center. + + + + Set-CsTeamsMeetingBrandingPolicy + + Identity + + Identity of meeting branding policy that will be updated. To refer to the global policy, use this syntax: `-Identity global`. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DefaultTheme + + This parameter is reserved for Microsoft internal use only. Identity of default meeting theme. + + String + + String + + + None + + + EnableMeetingBackgroundImages + + Enables custom meeting backgrounds. + + Boolean + + Boolean + + + None + + + EnableMeetingOptionsThemeOverride + + Allows organizers to control meeting themes. + + Boolean + + Boolean + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + MeetingBackgroundImages + + This parameter is reserved for Microsoft internal use only. List of meeting background images. It is not possible to add or remove background images using cmdlets. You should use Teams Admin Center for that purpose. + + PSListModifier + + PSListModifier + + + None + + + MeetingBrandingThemes + + List of meeting branding themes. You can alter the list returned by the `Get-CsTeamsMeetingBrandingPolicy` cmdlet and pass it to this parameter. It is not possible to add or remove meeting branding themes using cmdlets. You should use Teams Admin Center for that purpose. + + PSListModifier + + PSListModifier + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DefaultTheme + + This parameter is reserved for Microsoft internal use only. Identity of default meeting theme. + + String + + String + + + None + + + EnableMeetingBackgroundImages + + Enables custom meeting backgrounds. + + Boolean + + Boolean + + + None + + + EnableMeetingOptionsThemeOverride + + Allows organizers to control meeting themes. + + Boolean + + Boolean + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Identity of meeting branding policy that will be updated. To refer to the global policy, use this syntax: `-Identity global`. + + String + + String + + + None + + + MeetingBackgroundImages + + This parameter is reserved for Microsoft internal use only. List of meeting background images. It is not possible to add or remove background images using cmdlets. You should use Teams Admin Center for that purpose. + + PSListModifier + + PSListModifier + + + None + + + MeetingBrandingThemes + + List of meeting branding themes. You can alter the list returned by the `Get-CsTeamsMeetingBrandingPolicy` cmdlet and pass it to this parameter. It is not possible to add or remove meeting branding themes using cmdlets. You should use Teams Admin Center for that purpose. + + PSListModifier + + PSListModifier + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + Available in Teams PowerShell Module 4.9.3 and later. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsMeetingBrandingPolicy +PS C:\> $brandingPolicy = Get-CsTeamsMeetingBrandingPolicy -Identity "demo branding" +PS C:\> $brandingPolicy.MeetingBrandingThemes[0].BrandAccentColor = "#FF0000" +PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBrandingThemes $brandingPolicy.MeetingBrandingThemes + + In this example, the commands will change the brand accent color of the theme inside the `demo branding` meeting branding policy to `#FF0000` + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy + + + Get-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy + + + Grant-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy + + + New-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy + + + Remove-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy + + + Set-CsTeamsMeetingBrandingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy + + + + + + Set-CsTeamsMeetingConfiguration + Set + CsTeamsMeetingConfiguration + + The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their tenants. + + + + The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their tenants. Use this cmdlet to set the configuration for your organization. + + + + Set-CsTeamsMeetingConfiguration + + Identity + + The only valid input is Global + + XdsIdentity + + XdsIdentity + + + None + + + ClientAppSharingPort + + Determines the starting port number for client screen sharing or application sharing. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50040 + + UInt32 + + UInt32 + + + None + + + ClientAppSharingPortRange + + Determines the total number of ports available for client sharing or application sharing. Default value is 20 + + UInt32 + + UInt32 + + + None + + + ClientAudioPort + + Determines the starting port number for client audio. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50000 + + UInt32 + + UInt32 + + + None + + + ClientAudioPortRange + + Determines the total number of ports available for client audio. Default value is 20 + + UInt32 + + UInt32 + + + None + + + ClientMediaPortRangeEnabled + + Determines whether custom media port and range selections need to be enforced. When set to True, clients will use the specified port range for media traffic. When set to False (the default value) for any available port (from port 1024 through port 65535) will be used to accommodate media traffic. + + Boolean + + Boolean + + + None + + + ClientVideoPort + + Determines the starting port number for client video. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50020 + + UInt32 + + UInt32 + + + None + + + ClientVideoPortRange + + Determines the total number of ports available for client video. Default value is 20 + + UInt32 + + UInt32 + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + CustomFooterText + + Text to be used on custom meeting invitations + + String + + String + + + None + + + DisableAnonymousJoin + + Determines whether anonymous users are blocked from joining meetings in the tenant. Set this to TRUE to block anonymous users from joining. Set this to FALSE to allow anonymous users to join meetings. + + Boolean + + Boolean + + + None + + + DisableAppInteractionForAnonymousUsers + + Determines if anonymous users can interact with apps in meetings. Set to TRUE to disable App interaction. Possible values: + - True + - False + + Boolean + + Boolean + + + None + + + EnableQoS + + Determines whether Quality of Service Marking for real-time media (audio, video, screen/app sharing) is enabled in the tenant. Set this to TRUE to enable and FALSE to disable + + Boolean + + Boolean + + + None + + + FeedbackSurveyForAnonymousUsers + + Determines if anonymous participants receive surveys to provide feedback about their meeting experience. Set to Disabled to disable anonymous meeting participants to receive surveys. Set to Enabled to allow anonymous meeting participants to receive surveys. Possible values: + - Enabled + - Disabled + + String + + String + + + Enabled + + + Force + + {{Fill Force Description}} + + + SwitchParameter + + + False + + + HelpURL + + URL to a website where users can obtain assistance on joining the meeting.This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries + + String + + String + + + None + + + Instance + + Use this parameter to update a saved configuration instance + + PSObject + + PSObject + + + None + + + LegalURL + + URL to a website containing legal information and meeting disclaimers. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries + + String + + String + + + None + + + LimitPresenterRolePermissions + + When set to True, users within the Tenant will have their presenter role capabilities limited. When set to False, the presenter role capabilities will not be impacted and will remain as is. + + Boolean + + Boolean + + + None + + + LogoURL + + URL to a logo image. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries + + String + + String + + + None + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ClientAppSharingPort + + Determines the starting port number for client screen sharing or application sharing. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50040 + + UInt32 + + UInt32 + + + None + + + ClientAppSharingPortRange + + Determines the total number of ports available for client sharing or application sharing. Default value is 20 + + UInt32 + + UInt32 + + + None + + + ClientAudioPort + + Determines the starting port number for client audio. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50000 + + UInt32 + + UInt32 + + + None + + + ClientAudioPortRange + + Determines the total number of ports available for client audio. Default value is 20 + + UInt32 + + UInt32 + + + None + + + ClientMediaPortRangeEnabled + + Determines whether custom media port and range selections need to be enforced. When set to True, clients will use the specified port range for media traffic. When set to False (the default value) for any available port (from port 1024 through port 65535) will be used to accommodate media traffic. + + Boolean + + Boolean + + + None + + + ClientVideoPort + + Determines the starting port number for client video. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50020 + + UInt32 + + UInt32 + + + None + + + ClientVideoPortRange + + Determines the total number of ports available for client video. Default value is 20 + + UInt32 + + UInt32 + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + CustomFooterText + + Text to be used on custom meeting invitations + + String + + String + + + None + + + DisableAnonymousJoin + + Determines whether anonymous users are blocked from joining meetings in the tenant. Set this to TRUE to block anonymous users from joining. Set this to FALSE to allow anonymous users to join meetings. + + Boolean + + Boolean + + + None + + + DisableAppInteractionForAnonymousUsers + + Determines if anonymous users can interact with apps in meetings. Set to TRUE to disable App interaction. Possible values: + - True + - False + + Boolean + + Boolean + + + None + + + EnableQoS + + Determines whether Quality of Service Marking for real-time media (audio, video, screen/app sharing) is enabled in the tenant. Set this to TRUE to enable and FALSE to disable + + Boolean + + Boolean + + + None + + + FeedbackSurveyForAnonymousUsers + + Determines if anonymous participants receive surveys to provide feedback about their meeting experience. Set to Disabled to disable anonymous meeting participants to receive surveys. Set to Enabled to allow anonymous meeting participants to receive surveys. Possible values: + - Enabled + - Disabled + + String + + String + + + Enabled + + + Force + + {{Fill Force Description}} + + SwitchParameter + + SwitchParameter + + + False + + + HelpURL + + URL to a website where users can obtain assistance on joining the meeting.This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries + + String + + String + + + None + + + Identity + + The only valid input is Global + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Use this parameter to update a saved configuration instance + + PSObject + + PSObject + + + None + + + LegalURL + + URL to a website containing legal information and meeting disclaimers. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries + + String + + String + + + None + + + LimitPresenterRolePermissions + + When set to True, users within the Tenant will have their presenter role capabilities limited. When set to False, the presenter role capabilities will not be impacted and will remain as is. + + Boolean + + Boolean + + + None + + + LogoURL + + URL to a logo image. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries + + String + + String + + + None + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsMeetingConfiguration -EnableQoS $true -ClientVideoPort 10000 -Identity Global + + In this example, the user is enabling collection of QoS data in his organization and lowering the video stream quality to accommodate low bandwidth networks. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingconfiguration + + + + + + Set-CsTeamsMeetingPolicy + Set + CsTeamsMeetingPolicy + + The `CsTeamsMeetingPolicy` cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users. + + + + The `CsTeamsMeetingPolicy` cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users. + The Set-CsTeamsMeetingPolicy cmdlet allows administrators to update existing meeting policies that can be assigned to particular users to control Teams features related to meetings. + + + + Set-CsTeamsMeetingPolicy + + Identity + + Specify the name of the policy being created. + + XdsIdentity + + XdsIdentity + + + None + + + AIInterpreter + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the AI Interpreter related features + Possible values: + - Disabled + - Enabled + + String + + String + + + Enabled + + + AllowAnnotations + + This setting will allow admins to choose which users will be able to use the Annotation feature. + + Boolean + + Boolean + + + None + + + AllowAnonymousUsersToDialOut + + Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to prohibit anonymous users from dialing out. + + Boolean + + Boolean + + + None + + + AllowAnonymousUsersToJoinMeeting + + > [!NOTE] > The experience for users is dependent on both the value of -DisableAnonymousJoin (the old tenant-wide setting) and -AllowAnonymousUsersToJoinMeeting (the new per-organizer policy). Please check <https://learn.microsoft.com/microsoftteams/meeting-settings-in-teams> for details. + Determines whether anonymous users can join the meetings that impacted users organize. Set this to TRUE to allow anonymous users to join a meeting. Set this to FALSE to prohibit them from joining a meeting. + + Boolean + + Boolean + + + True + + + AllowAnonymousUsersToStartMeeting + + Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate a meeting. Set this to FALSE to prohibit them from initiating a meeting. + + Boolean + + Boolean + + + None + + + AllowAvatarsInGallery + + If admins disable avatars in 2D meetings, then users cannot represent themselves as avatars in the Gallery view. This does not disable avatars in Immersive view. + + Boolean + + Boolean + + + None + + + AllowBreakoutRooms + + Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. + + Boolean + + Boolean + + + True + + + AllowCarbonSummary + + This setting will enable Tenant Admins to enable/disable the sharing of location data necessary to provide the end of meeting carbon summary screen for either the entire tenant or for a particular user. If set to True the meeting organizer will share their location to the client of the participant to enable the calculation of distance and the resulting carbon. + > [!NOTE] > Location data will not be visible to the organizer or participants in this case and only carbon avoided will be shown. If set to False then organizer location data will not be shown and no carbon summary screen will be displayed to the participants. + + Boolean + + Boolean + + + None + + + AllowCartCaptionsScheduling + + Determines whether a user can add a URL for captions from a Communications Access Real-Time Translation (CART) captioner for providing real time captions in meetings. Possible values are: + - EnabledUserOverride , CART captions is available by default but a user can disable. - DisabledUserOverride , if you would like users to be able to use CART captions in meetings but by default it is disabled. - Disabled , if you'd like to not allow CART captions in meeting. + + String + + String + + + DisabledUserOverride + + + AllowChannelMeetingScheduling + + Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. + > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. + + Boolean + + Boolean + + + None + + + AllowCloudRecording + + Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able to record meetings. Set this to FALSE to prohibit the user from recording meetings. + + Boolean + + Boolean + + + None + + + AllowDocumentCollaboration + + This setting will allow admins to choose which users will be able to use the Document Collaboration feature. + + String + + String + + + None + + + AllowedStreamingMediaInput + + Enables the use of RTMP-In in Teams meetings. + Possible values are: + - <blank> + - RTMP + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingDetails + + Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. + Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. + - Everyone: All meeting participants can see the meeting info details. + + String + + String + + + UsersAllowedToByPassTheLobby + + + AllowEngagementReport + + Determines whether meeting organizers are allowed to download the attendee engagement report. Possible values are: + - Enabled: allow the meeting organizer to download the report. + - Disabled: disable attendee report generation and prohibit meeting organizer from downloading it. + - ForceEnabled: enable attendee report generation and prohibit meeting organizer from disabling it. + + If set to Enabled or ForceEnabled, only meeting organizers and co-organizers will get a link to download the report in Teams. Regular attendees will have no access to it. + + String + + String + + + None + + + AllowExternalNonTrustedMeetingChat + + This field controls whether a user is allowed to chat in external meetings with users from non trusted organizations. + + Boolean + + Boolean + + + None + + + AllowExternalNonTrustedMeetingChat + + This field controls whether a user is allowed to chat in external meetings with users from non-trusted organizations. + + Boolean + + Boolean + + + None + + + AllowExternalParticipantGiveRequestControl + + Determines whether external participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit an external user from giving or requesting control in a meeting. + + Boolean + + Boolean + + + None + + + AllowImmersiveView + + If admins have disabled avatars, this does not disable using avatars in Immersive view on Teams desktop or web. Additionally, it does not prevent users from joining the Teams meeting on VR headsets. + + Boolean + + Boolean + + + None + + + AllowIPAudio + + Determines whether audio is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their audio. Set this to FALSE to prohibit the user from sharing their audio. + + Boolean + + Boolean + + + True + + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. + + Boolean + + Boolean + + + None + + + AllowLocalRecording + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowMeetingCoach + + This setting will allow admins to allow users the option of turning on Meeting Coach during meetings, which provides users with private personalized feedback on their communication and inclusivity. If set to True, then users will see and be able to click the option for turning on Meeting Coach during calls. If set to False, then users will not have the option to turn on Meeting Coach during calls. + + Boolean + + Boolean + + + None + + + AllowMeetingReactions + + Set to false to disable Meeting Reactions. + + Boolean + + Boolean + + + True + + + AllowMeetingRegistration + + Controls if a user can create a webinar meeting. The default value is True. + Possible values: + - True + - False + + Boolean + + Boolean + + + True + + + AllowMeetNow + + Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc meetings. Set this to FALSE to prohibit the user from starting ad-hoc meetings. + + Boolean + + Boolean + + + None + + + AllowNDIStreaming + + This parameter enables the use of NDI technology to capture and deliver broadcast-quality audio and video over your network. + + Boolean + + Boolean + + + None + + + AllowNetworkConfigurationSettingsLookup + + Determines whether network configuration setting lookup can be made for users who are not Enterprise Voice enabled. It is used to enable Network Roaming policy. + + Boolean + + Boolean + + + False + + + AllowOrganizersToOverrideLobbySettings + + This parameter has been deprecated and currently has no effect. + + Boolean + + Boolean + + + False + + + AllowOutlookAddIn + + Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling Teams meeting in Outlook client. + + Boolean + + Boolean + + + None + + + AllowParticipantGiveRequestControl + + Determines whether participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user from giving, requesting control in a meeting. + + Boolean + + Boolean + + + None + + + AllowPowerPointSharing + + Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPrivateMeetingScheduling + + Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. + > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. + + Boolean + + Boolean + + + None + + + AllowPrivateMeetNow + + This setting controls whether a user can start an ad hoc private meeting. + + Boolean + + Boolean + + + None + + + AllowPSTNUsersToBypassLobby + + Determines whether a PSTN user joining the meeting is allowed or not to bypass the lobby. If you set this parameter to True , PSTN users are allowed to bypass the lobby as long as an authenticated user is joined to the meeting. + + Boolean + + Boolean + + + None + + + AllowRecordingStorageOutsideRegion + + Allows storing recordings outside of the region. All meeting recordings will be permanently stored in another region, and can't be migrated. This does not apply to recordings saved in OneDrive or SharePoint. + + Boolean + + Boolean + + + False + + + AllowScreenContentDigitization + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowSharedNotes + + Determines whether users are allowed to take shared Meeting notes. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowTasksFromTranscript + + This policy setting allows for the extraction of AI-Assisted Action Items/Tasks from the Meeting Transcript. + + String + + String + + + None + + + AllowTrackingInReport + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowTranscription + + Determines whether post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUserToJoinExternalMeeting + + Currently, this parameter has no effect. + Possible values are: + - Enabled + - FederatedOnly + - Disabled + + String + + String + + + Disabled + + + AllowWatermarkForCameraVideo + + This setting allows scheduling meetings with watermarking for video enabled. + + Boolean + + Boolean + + + False + + + AllowWatermarkForScreenSharing + + This setting allows scheduling meetings with watermarking for screen sharing enabled. + + Boolean + + Boolean + + + False + + + AllowWhiteboard + + Determines whether whiteboard is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AnonymousUserAuthenticationMethod + + Determines how anonymous users will be authenticated when joining a meeting. Possible values are: + - OneTimePasscode , if you would like anonymous users to be sent a one time passcode to their email when joining a meeting - None , if you would like to disable authentication for anonymous users joining a meeting + + String + + String + + + OneTimePasscode + + + AttendeeIdentityMasking + + This setting will allow admins to enable or disable Masked Attendee mode in Meetings. Masked Attendee meetings will hide attendees' identifying information (e.g., name, contact information, profile photo). + Possible Values: Enabled: Hides attendees' identifying information in meetings. Disabled: Does not allow attendees' to hide identifying information in meetings + + String + + String + + + None + + + AudibleRecordingNotification + + The setting controls whether recording notification is played to all attendees or just PSTN users. + + String + + String + + + None + + + AutoAdmittedUsers + + Determines what types of participants will automatically be added to meetings organized by this user. Possible values are: + - EveryoneInCompany , if you would like meetings to place every external user in the lobby but allow all users in the company to join the meeting immediately. - EveryoneInSameAndFederatedCompany , if you would like meetings to allow federated users to join like your company's users, but place all other external users in a lobby. - Everyone , if you'd like to admit anonymous users by default. - OrganizerOnly , if you would like that only meeting organizers can bypass the lobby. - EveryoneInCompanyExcludingGuests , if you would like meetings to place every external and guest users in the lobby but allow all other users in the company to join the meeting immediately. - InvitedUsers , if you would like that only meeting organizers and invited users can bypass the lobby. + This setting also applies to participants joining via a PSTN device (i.e. a traditional phone). + + String + + String + + + None + + + AutomaticallyStartCopilot + + > [!NOTE] > This feature has not been fully released yet, so the setting will have no effect. + This setting gives admins the ability to auto-start Copilot. + Possible values are: + - Enabled + - Disabled + + String + + String + + + None + + + AutoRecording + + This setting allows admins to control the visibility of the auto recording feature in the organizer's Meeting options . If the you enable this setting, the Record and transcribe automatically setting appears in Meeting options with the default value set to Off (except for webinars and townhalls). Organizers need to manually toggle this setting to On to for their meetings to be automatically recorded. If you disable this setting, Record and transcribe automatically is hidden, preventing organizers from setting any meetings to be auto-recorded. + + String + + String + + + None + + + BlockedAnonymousJoinClientTypes + + A user can join a Teams meeting anonymously using a Teams client (https://support.microsoft.com/office/join-a-meeting-without-a-teams-account-c6efc38f-4e03-4e79-b28f-e65a4c039508) or using a [custom application built using Azure Communication Services](https://learn.microsoft.com/azure/communication-services/concepts/join-teams-meeting). When anonymous meeting join is enabled, both types of clients may be used by default. This optional parameter can be used to block one of the client types that can be used. + The allowed values are ACS (to block the use of Azure Communication Services clients) or Teams (to block the use of Teams clients). Both can also be specified, separated by a comma, but this is equivalent to disabling anonymous join completely. + + List + + List + + + Empty List + + + CaptchaVerificationForMeetingJoin + + Require a verification check for meeting join. + Possible values: - NotRequired , CAPTCHA not required to join the meeting - AnonymousUsersAndUntrustedOrganizations , Anonymous users and people from untrusted organizations must complete a CAPTCHA challenge to join the meeting. + + String + + String + + + None + + + ChannelRecordingDownload + + Controls how channel meeting recordings are saved, permissioned, and who can download them. + Possible values: + - Allow - Saves channel meeting recordings to a "Recordings" folder in the channel. The permissions on the recording files will be based on the Channel SharePoint permissions. This is the same as any other file uploaded for the channel. + - Block - Saves channel meeting recordings to a "Recordings\View only" folder in the channel. Channel owners will have full rights to the recordings in this folder, but channel members will have read access without the ability to download. + + String + + String + + + Allow + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectToMeetingControls + + Allows external connections of thirdparty apps to Microsoft Teams + Possible values are: - Enabled + - Disabled + + String + + String + + + Enabled + + + ContentSharingInExternalMeetings + + This policy allows admins to determine whether the user can share content in meetings organized by external organizations. The user should have a Teams Premium license to be protected under this policy. + + String + + String + + + None + + + Copilot + + This setting allows the admin to choose whether Copilot will be enabled with a persisted transcript or a non-persisted transcript. + Possible values are: + - Enabled + - EnabledWithTranscript + + String + + String + + + None + + + CopyRestriction + + This parameter enables a setting that controls a meeting option which allows users to disable right-click or Ctrl+C to copy, Copy link, Forward message, and Share to Outlook for meeting chat messages. + + Boolean + + Boolean + + + TRUE + + + Description + + Enables administrators to provide explanatory text about the meeting policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DesignatedPresenterRoleMode + + Determines if users can change the default value of the Who can present? setting in Meeting options in the Teams client. This policy setting affects all meetings, including Meet Now meetings. + Possible values are: + - EveryoneUserOverride: All meeting participants can be presenters. This is the default value. This parameter corresponds to the Everyone setting in Teams. - EveryoneInCompanyUserOverride: Authenticated users in the organization, including guest users, can be presenters. This parameter corresponds to the People in my organization setting in Teams. - EveryoneInSameAndFederatedCompanyUserOverride: Authenticated users in the organization, including guest users and users from federated organizations, can be presenters. This parameter corresponds to the People in my organization and trusted organizations setting in Teams. - OrganizerOnlyUserOverride: Only the meeting organizer can be a presenter and all meeting participants are designated as attendees. This parameter corresponds to the Only me setting in Teams. + + String + + String + + + None + + + DetectSensitiveContentDuringScreenSharing + + Allows the admin to enable sensitive content detection during screen share. + + Boolean + + Boolean + + + None + + + EnrollUserOverride + + Turn on/off Biometric enrollment Possible values are: + - Disabled + - Enabled + + String + + String + + + Disabled + + + ExplicitRecordingConsent + + Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. + Possible Values: + - Enabled: Explicit consent, requires participant agreement. + - Disabled: Implicit consent, does not require participant agreement. + - LegitimateInterest: Legitimate interest, less restrictive consent to meet legitimate interest without requiring explicit agreement from participants. + + String + + String + + + None + + + ExternalMeetingJoin + + Determines whether the user is allowed to join external meetings. + Possible values are: + - EnabledForAnyone + - EnabledForTrustedOrgs + - Disabled + + String + + String + + + EnabledForAnyone + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + InfoShownInReportMode + + This policy controls what kind of information get shown for the user's attendance in attendance report/dashboard. + + String + + String + + + None + + + IPAudioMode + + Determines whether audio can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming audio in the meeting. Set this to DISABLED to prohibit outgoing and incoming audio in the meeting. + + String + + String + + + None + + + IPVideoMode + + Determines whether video can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming video in the meeting. Set this to DISABLED to prohibit outgoing and incoming video in the meeting. + + String + + String + + + None + + + LiveCaptionsEnabledType + + Determines whether real-time captions are available for the user in Teams meetings. Set this to DisabledUserOverride to allow user to turn on live captions. Set this to Disabled to prohibit. + + String + + String + + + DisabledUserOverride + + + LiveInterpretationEnabledType + + Allows meeting organizers to configure a meeting for language interpretation, selecting attendees of the meeting to become interpreters that other attendees can select and listen to the real-time translation they provide. Possible values are: + - DisabledUserOverride , if you would like users to be able to use interpretation in meetings but by default it is disabled. - Disabled , prevents the option to be enabled in Meeting Options. + + String + + String + + + DisabledUserOverride + + + LiveStreamingMode + + Determines whether you provide support for your users to stream their Teams meetings to large audiences through Real-Time Messaging Protocol (RTMP). + Possible values are: + - Disabled + - Enabled + + String + + String + + + None + + + LobbyChat + + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether chat messages are allowed in the lobby. + Possible values are: + - Enabled + - Disabled + + String + + String + + + None + + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + UInt32 + + UInt32 + + + None + + + MeetingChatEnabledType + + Specifies if users will be able to chat in meetings. Possible values are: Disabled, Enabled, and EnabledExceptAnonymous. + > [!NOTE] > Due to a new feature rollout, in order to set the value of MeetingChatEnabledType to Disabled, you will need to also set the value of LobbyChat to disabled. e.g., > Install-Module MicrosoftTeams -RequiredVersion 6.6.1-preview -Force -AllowClobber -AllowPrereleaseConnect-MicrosoftTeams Set-CsTeamsMeetingPolicy -Identity Global -MeetingChatEnabledType Disabled -LobbyChat Disabled + + String + + String + + + None + + + MeetingInviteLanguages + + > Applicable: Microsoft Teams + Controls how the join information in meeting invitations is displayed by enforcing a common language or enabling up to two languages to be displayed. + > [!NOTE] > All Teams supported languages can be specified using language codes. For more information about its delivery date, see the roadmap (Feature ID: 81521) (https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=81521). + The preliminary list of available languages is shown below: + `ar-SA,az-Latn-AZ,bg-BG,ca-ES,cs-CZ,cy-GB,da-DK,de-DE,el-GR,en-GB,en-US,es-ES,es-MX,et-EE,eu-ES,fi-FI,fil-PH,fr-CA,fr-FR,gl-ES,he-IL,hi-IN,hr-HR,hu-HU,id-ID,is-IS,it-IT,ja-JP,ka-GE,kk-KZ,ko-KR,lt-LT,lv-LV,mk-MK,ms-MY,nb-NO,nl-NL,nn-NO,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sq-AL,sr-Latn-RS,sv-SE,th-TH,tr-TR,uk-UA,vi-VN,zh-CN,zh-TW`. + + String + + String + + + None + + + NewMeetingRecordingExpirationDays + + Specifies the number of days before meeting recordings will expire and move to the recycle bin. Value can be from 1 to 99,999 days. Value can also be -1 to set meeting recordings to never expire. + > [!NOTE] > You may opt to set Meeting Recordings to never expire by entering the value -1. + + Int32 + + Int32 + + + None + + + NoiseSuppressionForDialInParticipants + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Control Noises Supression Feature for PST legs joining a meeting. + Possible Values: + - MicrosoftDefault + - Enabled + - Disabled + + String + + String + + + None + + + ParticipantNameChange + + This setting will enable Tenant Admins to turn on/off participant renaming feature. + Possible Values: Enabled: Turns on the Participant Renaming feature. Disabled: Turns off the Participant Renaming feature. + + String + + String + + + None + + + ParticipantSlideControl + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether participants can give control of presentation slides during meetings scheduled by this user. Set the type of users you want to be able to give control and be given control of presentation slides in meetings. Users excluded from the selected group will be prohibited from giving control, or being given control, in a meeting. + Possible Values: - Everyone: Anyone in the meeting can give or take control + - EveryoneInOrganization: Only internal AAD users and Multi-Tenant Organization (MTO) users can give or take control + - EveryoneInOrganizationAndGuests: Only those who are Guests to the tenant, MTO users, and internal AAD users can give or take control + - None: No one in the meeting can give or take control + + String + + String + + + Enabled + + + PreferredMeetingProviderForIslandsMode + + Determines the Outlook meeting add-in available to users on Islands mode. By default, this is set to TeamsAndSfb, and the users sees both the Skype for Business and Teams add-ins. Set this to Teams to remove the Skype for Business add-in and only show the Teams add-in. + + String + + String + + + TeamsAndSfb + + + QnAEngagementMode + + This setting enables Microsoft 365 Tenant Admins to Enable or Disable the Questions and Answers experience (Q+A). When Enabled, Organizers can turn on Q+A for their meetings. When Disabled, Organizers cannot turn on Q+A in their meetings. The setting is enforced when a meeting is created or is updated by Organizers. Attendees can use Q+A in meetings where it was previously added. Organizers can remove Q+A for those meetings through Teams and Outlook Meeting Options. Possible values: Enabled, Disabled + + String + + String + + + None + + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + + + RecordingStorageMode + + This parameter can take two possible values: + - Stream + - OneDriveForBusiness + + > [!NOTE] > The change of storing Teams meeting recordings from Classic Stream to OneDrive and SharePoint (ODSP) has been completed as of August 30th, 2021. All recordings are now stored in ODSP. This change overrides the RecordingStorageMode parameter, and modifying the setting in PowerShell no longer has any impact. + + String + + String + + + None + + + RoomAttributeUserOverride + + Possible values: + - Off + - Distinguish + - Attribute + + String + + String + + + None + + + RoomPeopleNameUserOverride + + Enabling people recognition requires the tenant CsTeamsMeetingPolicy roomPeopleNameUserOverride to be "On" and roomAttributeUserOverride to be Attribute for allowing individual voice and face profiles to be used for recognition in meetings. + > [!NOTE] > In some locations, people recognition can't be used due to local laws or regulations. Possible values: > > - Off: No People Recognition option on Microsoft Teams Room (Default). > - On: Policy value allows People recognition option on Microsoft Teams Rooms under call control bar. + + String + + String + + + None + + + ScreenSharingMode + + Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens. + + String + + String + + + None + + + SmsNotifications + + Participants can sign up for text message meeting reminders. + + String + + String + + + None + + + SpeakerAttributionMode + + Determines if users are identified in transcriptions and if they can change the value of the Automatically identify me in meeting captions and transcripts setting. + Possible values: + - Enabled : Speakers are identified in transcription. - EnabledUserOverride : Speakers are identified in transcription. If enabled, users can override this setting and choose not to be identified in their Teams profile settings. - DisabledUserOverride : Speakers are not identified in transcription. If enabled, users can override this setting and choose to be identified in their Teams profile settings. - Disabled : Speakers are not identified in transcription. + + String + + String + + + None + + + StreamingAttendeeMode + + Controls if Teams uses overflow capability once a meeting reaches its capacity (1,000 users with full functionality). + Possible values are: + - Disabled + - Enabled + + Set this to Enabled to allow up to 10,000 extra view-only attendees to join. + + String + + String + + + Disabled + + + TeamsCameraFarEndPTZMode + + Possible values are: + - Disabled + - AutoAcceptInTenant + - AutoAcceptAll + + String + + String + + + Disabled + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + UsersCanAdmitFromLobby + + This policy controls who can admit from the lobby. + + String + + String + + + None + + + VideoFiltersMode + + Determines the background effects that a user can configure in the Teams client. Possible values are: + - NoFilters: No filters are available. + - BlurOnly: Background blur is the only option available (requires a processor with AVX2 support, see Hardware requirements for Microsoft Teams (https://learn.microsoft.com/microsoftteams/hardware-requirements-for-the-teams-app) for more information). - BlurAndDefaultBackgrounds: Background blur and a list of pre-selected images are available. + - AllFilters: All filters are available, including custom images. + + String + + String + + + None + + + VoiceIsolation + + Determines whether you provide support for your users to enable voice isolation in Teams meeting calls. + Possible values are: - Enabled (default) + - Disabled + + String + + String + + + None + + + VoiceSimulationInInterpreter + + > Applicable: Microsoft Teams + > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the voice simulation feature while being AI interpreted. + Possible Values: + - Disabled + - Enabled + + String + + String + + + Disabled + + + WatermarkForAnonymousUsers + + Determines the meeting experience and watermark content of an anonymous user. + + String + + String + + + None + + + WatermarkForCameraVideoOpacity + + Allows the transparency of watermark to be customizable. + + Int64 + + Int64 + + + None + + + WatermarkForCameraVideoPattern + + Allows the pattern design of watermark to be customizable. + + String + + String + + + None + + + WatermarkForScreenSharingOpacity + + Allows the transparency of watermark to be customizable. + + Int64 + + Int64 + + + None + + + WatermarkForScreenSharingPattern + + Allows the pattern design of watermark to be customizable. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + WhoCanRegister + + Controls the attendees who can attend a webinar meeting. The default is Everyone, meaning that everyone can register. If you want to restrict registration to internal accounts set the value to 'EveryoneInCompany'. + Possible values: + - Everyone + - EveryoneInCompany + + String + + String + + + Everyone + + + + + + AIInterpreter + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the AI Interpreter related features + Possible values: + - Disabled + - Enabled + + String + + String + + + Enabled + + + AllowAnnotations + + This setting will allow admins to choose which users will be able to use the Annotation feature. + + Boolean + + Boolean + + + None + + + AllowAnonymousUsersToDialOut + + Determines whether anonymous users are allowed to dial out to a PSTN number. Set this to TRUE to allow anonymous users to dial out. Set this to FALSE to prohibit anonymous users from dialing out. + + Boolean + + Boolean + + + None + + + AllowAnonymousUsersToJoinMeeting + + > [!NOTE] > The experience for users is dependent on both the value of -DisableAnonymousJoin (the old tenant-wide setting) and -AllowAnonymousUsersToJoinMeeting (the new per-organizer policy). Please check <https://learn.microsoft.com/microsoftteams/meeting-settings-in-teams> for details. + Determines whether anonymous users can join the meetings that impacted users organize. Set this to TRUE to allow anonymous users to join a meeting. Set this to FALSE to prohibit them from joining a meeting. + + Boolean + + Boolean + + + True + + + AllowAnonymousUsersToStartMeeting + + Determines whether anonymous users can initiate a meeting. Set this to TRUE to allow anonymous users to initiate a meeting. Set this to FALSE to prohibit them from initiating a meeting. + + Boolean + + Boolean + + + None + + + AllowAvatarsInGallery + + If admins disable avatars in 2D meetings, then users cannot represent themselves as avatars in the Gallery view. This does not disable avatars in Immersive view. + + Boolean + + Boolean + + + None + + + AllowBreakoutRooms + + Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. + + Boolean + + Boolean + + + True + + + AllowCarbonSummary + + This setting will enable Tenant Admins to enable/disable the sharing of location data necessary to provide the end of meeting carbon summary screen for either the entire tenant or for a particular user. If set to True the meeting organizer will share their location to the client of the participant to enable the calculation of distance and the resulting carbon. + > [!NOTE] > Location data will not be visible to the organizer or participants in this case and only carbon avoided will be shown. If set to False then organizer location data will not be shown and no carbon summary screen will be displayed to the participants. + + Boolean + + Boolean + + + None + + + AllowCartCaptionsScheduling + + Determines whether a user can add a URL for captions from a Communications Access Real-Time Translation (CART) captioner for providing real time captions in meetings. Possible values are: + - EnabledUserOverride , CART captions is available by default but a user can disable. - DisabledUserOverride , if you would like users to be able to use CART captions in meetings but by default it is disabled. - Disabled , if you'd like to not allow CART captions in meeting. + + String + + String + + + DisabledUserOverride + + + AllowChannelMeetingScheduling + + Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. + > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. + + Boolean + + Boolean + + + None + + + AllowCloudRecording + + Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able to record meetings. Set this to FALSE to prohibit the user from recording meetings. + + Boolean + + Boolean + + + None + + + AllowDocumentCollaboration + + This setting will allow admins to choose which users will be able to use the Document Collaboration feature. + + String + + String + + + None + + + AllowedStreamingMediaInput + + Enables the use of RTMP-In in Teams meetings. + Possible values are: + - <blank> + - RTMP + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingContext + + This policy controls which users should have the ability to see the meeting info details on the join screen. 'None' option should disable the feature completely. + + String + + String + + + None + + + AllowedUsersForMeetingDetails + + Controls which users should have ability to see the meeting info details on join screen. 'None' option should disable the feature completely. + Possible Values: - UsersAllowedToByPassTheLobby: Users who are able to bypass lobby can see the meeting info details. + - Everyone: All meeting participants can see the meeting info details. + + String + + String + + + UsersAllowedToByPassTheLobby + + + AllowEngagementReport + + Determines whether meeting organizers are allowed to download the attendee engagement report. Possible values are: + - Enabled: allow the meeting organizer to download the report. + - Disabled: disable attendee report generation and prohibit meeting organizer from downloading it. + - ForceEnabled: enable attendee report generation and prohibit meeting organizer from disabling it. + + If set to Enabled or ForceEnabled, only meeting organizers and co-organizers will get a link to download the report in Teams. Regular attendees will have no access to it. + + String + + String + + + None + + + AllowExternalNonTrustedMeetingChat + + This field controls whether a user is allowed to chat in external meetings with users from non trusted organizations. + + Boolean + + Boolean + + + None + + + AllowExternalNonTrustedMeetingChat + + This field controls whether a user is allowed to chat in external meetings with users from non-trusted organizations. + + Boolean + + Boolean + + + None + + + AllowExternalParticipantGiveRequestControl + + Determines whether external participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit an external user from giving or requesting control in a meeting. + + Boolean + + Boolean + + + None + + + AllowImmersiveView + + If admins have disabled avatars, this does not disable using avatars in Immersive view on Teams desktop or web. Additionally, it does not prevent users from joining the Teams meeting on VR headsets. + + Boolean + + Boolean + + + None + + + AllowIPAudio + + Determines whether audio is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their audio. Set this to FALSE to prohibit the user from sharing their audio. + + Boolean + + Boolean + + + True + + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. + + Boolean + + Boolean + + + None + + + AllowLocalRecording + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowMeetingCoach + + This setting will allow admins to allow users the option of turning on Meeting Coach during meetings, which provides users with private personalized feedback on their communication and inclusivity. If set to True, then users will see and be able to click the option for turning on Meeting Coach during calls. If set to False, then users will not have the option to turn on Meeting Coach during calls. + + Boolean + + Boolean + + + None + + + AllowMeetingReactions + + Set to false to disable Meeting Reactions. + + Boolean + + Boolean + + + True + + + AllowMeetingRegistration + + Controls if a user can create a webinar meeting. The default value is True. + Possible values: + - True + - False + + Boolean + + Boolean + + + True + + + AllowMeetNow + + Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc meetings. Set this to FALSE to prohibit the user from starting ad-hoc meetings. + + Boolean + + Boolean + + + None + + + AllowNDIStreaming + + This parameter enables the use of NDI technology to capture and deliver broadcast-quality audio and video over your network. + + Boolean + + Boolean + + + None + + + AllowNetworkConfigurationSettingsLookup + + Determines whether network configuration setting lookup can be made for users who are not Enterprise Voice enabled. It is used to enable Network Roaming policy. + + Boolean + + Boolean + + + False + + + AllowOrganizersToOverrideLobbySettings + + This parameter has been deprecated and currently has no effect. + + Boolean + + Boolean + + + False + + + AllowOutlookAddIn + + Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling Teams meeting in Outlook client. + + Boolean + + Boolean + + + None + + + AllowParticipantGiveRequestControl + + Determines whether participants can request or give control of screen sharing during meetings scheduled by this user. Set this to TRUE to allow the user to be able to give or request control. Set this to FALSE to prohibit the user from giving, requesting control in a meeting. + + Boolean + + Boolean + + + None + + + AllowPowerPointSharing + + Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPrivateMeetingScheduling + + Determines whether a user can schedule private meetings. Set this to TRUE to allow a user to schedule private meetings. Set this to FALSE to prohibit the user from scheduling private meetings. + > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. + + Boolean + + Boolean + + + None + + + AllowPrivateMeetNow + + This setting controls whether a user can start an ad hoc private meeting. + + Boolean + + Boolean + + + None + + + AllowPSTNUsersToBypassLobby + + Determines whether a PSTN user joining the meeting is allowed or not to bypass the lobby. If you set this parameter to True , PSTN users are allowed to bypass the lobby as long as an authenticated user is joined to the meeting. + + Boolean + + Boolean + + + None + + + AllowRecordingStorageOutsideRegion + + Allows storing recordings outside of the region. All meeting recordings will be permanently stored in another region, and can't be migrated. This does not apply to recordings saved in OneDrive or SharePoint. + + Boolean + + Boolean + + + False + + + AllowScreenContentDigitization + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowSharedNotes + + Determines whether users are allowed to take shared Meeting notes. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowTasksFromTranscript + + This policy setting allows for the extraction of AI-Assisted Action Items/Tasks from the Meeting Transcript. + + String + + String + + + None + + + AllowTrackingInReport + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowTranscription + + Determines whether post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUserToJoinExternalMeeting + + Currently, this parameter has no effect. + Possible values are: + - Enabled + - FederatedOnly + - Disabled + + String + + String + + + Disabled + + + AllowWatermarkForCameraVideo + + This setting allows scheduling meetings with watermarking for video enabled. + + Boolean + + Boolean + + + False + + + AllowWatermarkForScreenSharing + + This setting allows scheduling meetings with watermarking for screen sharing enabled. + + Boolean + + Boolean + + + False + + + AllowWhiteboard + + Determines whether whiteboard is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AnonymousUserAuthenticationMethod + + Determines how anonymous users will be authenticated when joining a meeting. Possible values are: + - OneTimePasscode , if you would like anonymous users to be sent a one time passcode to their email when joining a meeting - None , if you would like to disable authentication for anonymous users joining a meeting + + String + + String + + + OneTimePasscode + + + AttendeeIdentityMasking + + This setting will allow admins to enable or disable Masked Attendee mode in Meetings. Masked Attendee meetings will hide attendees' identifying information (e.g., name, contact information, profile photo). + Possible Values: Enabled: Hides attendees' identifying information in meetings. Disabled: Does not allow attendees' to hide identifying information in meetings + + String + + String + + + None + + + AudibleRecordingNotification + + The setting controls whether recording notification is played to all attendees or just PSTN users. + + String + + String + + + None + + + AutoAdmittedUsers + + Determines what types of participants will automatically be added to meetings organized by this user. Possible values are: + - EveryoneInCompany , if you would like meetings to place every external user in the lobby but allow all users in the company to join the meeting immediately. - EveryoneInSameAndFederatedCompany , if you would like meetings to allow federated users to join like your company's users, but place all other external users in a lobby. - Everyone , if you'd like to admit anonymous users by default. - OrganizerOnly , if you would like that only meeting organizers can bypass the lobby. - EveryoneInCompanyExcludingGuests , if you would like meetings to place every external and guest users in the lobby but allow all other users in the company to join the meeting immediately. - InvitedUsers , if you would like that only meeting organizers and invited users can bypass the lobby. + This setting also applies to participants joining via a PSTN device (i.e. a traditional phone). + + String + + String + + + None + + + AutomaticallyStartCopilot + + > [!NOTE] > This feature has not been fully released yet, so the setting will have no effect. + This setting gives admins the ability to auto-start Copilot. + Possible values are: + - Enabled + - Disabled + + String + + String + + + None + + + AutoRecording + + This setting allows admins to control the visibility of the auto recording feature in the organizer's Meeting options . If the you enable this setting, the Record and transcribe automatically setting appears in Meeting options with the default value set to Off (except for webinars and townhalls). Organizers need to manually toggle this setting to On to for their meetings to be automatically recorded. If you disable this setting, Record and transcribe automatically is hidden, preventing organizers from setting any meetings to be auto-recorded. + + String + + String + + + None + + + BlockedAnonymousJoinClientTypes + + A user can join a Teams meeting anonymously using a Teams client (https://support.microsoft.com/office/join-a-meeting-without-a-teams-account-c6efc38f-4e03-4e79-b28f-e65a4c039508) or using a [custom application built using Azure Communication Services](https://learn.microsoft.com/azure/communication-services/concepts/join-teams-meeting). When anonymous meeting join is enabled, both types of clients may be used by default. This optional parameter can be used to block one of the client types that can be used. + The allowed values are ACS (to block the use of Azure Communication Services clients) or Teams (to block the use of Teams clients). Both can also be specified, separated by a comma, but this is equivalent to disabling anonymous join completely. + + List + + List + + + Empty List + + + CaptchaVerificationForMeetingJoin + + Require a verification check for meeting join. + Possible values: - NotRequired , CAPTCHA not required to join the meeting - AnonymousUsersAndUntrustedOrganizations , Anonymous users and people from untrusted organizations must complete a CAPTCHA challenge to join the meeting. + + String + + String + + + None + + + ChannelRecordingDownload + + Controls how channel meeting recordings are saved, permissioned, and who can download them. + Possible values: + - Allow - Saves channel meeting recordings to a "Recordings" folder in the channel. The permissions on the recording files will be based on the Channel SharePoint permissions. This is the same as any other file uploaded for the channel. + - Block - Saves channel meeting recordings to a "Recordings\View only" folder in the channel. Channel owners will have full rights to the recordings in this folder, but channel members will have read access without the ability to download. + + String + + String + + + Allow + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectToMeetingControls + + Allows external connections of thirdparty apps to Microsoft Teams + Possible values are: - Enabled + - Disabled + + String + + String + + + Enabled + + + ContentSharingInExternalMeetings + + This policy allows admins to determine whether the user can share content in meetings organized by external organizations. The user should have a Teams Premium license to be protected under this policy. + + String + + String + + + None + + + Copilot + + This setting allows the admin to choose whether Copilot will be enabled with a persisted transcript or a non-persisted transcript. + Possible values are: + - Enabled + - EnabledWithTranscript + + String + + String + + + None + + + CopyRestriction + + This parameter enables a setting that controls a meeting option which allows users to disable right-click or Ctrl+C to copy, Copy link, Forward message, and Share to Outlook for meeting chat messages. + + Boolean + + Boolean + + + TRUE + + + Description + + Enables administrators to provide explanatory text about the meeting policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DesignatedPresenterRoleMode + + Determines if users can change the default value of the Who can present? setting in Meeting options in the Teams client. This policy setting affects all meetings, including Meet Now meetings. + Possible values are: + - EveryoneUserOverride: All meeting participants can be presenters. This is the default value. This parameter corresponds to the Everyone setting in Teams. - EveryoneInCompanyUserOverride: Authenticated users in the organization, including guest users, can be presenters. This parameter corresponds to the People in my organization setting in Teams. - EveryoneInSameAndFederatedCompanyUserOverride: Authenticated users in the organization, including guest users and users from federated organizations, can be presenters. This parameter corresponds to the People in my organization and trusted organizations setting in Teams. - OrganizerOnlyUserOverride: Only the meeting organizer can be a presenter and all meeting participants are designated as attendees. This parameter corresponds to the Only me setting in Teams. + + String + + String + + + None + + + DetectSensitiveContentDuringScreenSharing + + Allows the admin to enable sensitive content detection during screen share. + + Boolean + + Boolean + + + None + + + EnrollUserOverride + + Turn on/off Biometric enrollment Possible values are: + - Disabled + - Enabled + + String + + String + + + Disabled + + + ExplicitRecordingConsent + + Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. + Possible Values: + - Enabled: Explicit consent, requires participant agreement. + - Disabled: Implicit consent, does not require participant agreement. + - LegitimateInterest: Legitimate interest, less restrictive consent to meet legitimate interest without requiring explicit agreement from participants. + + String + + String + + + None + + + ExternalMeetingJoin + + Determines whether the user is allowed to join external meetings. + Possible values are: + - EnabledForAnyone + - EnabledForTrustedOrgs + - Disabled + + String + + String + + + EnabledForAnyone + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy being created. + + XdsIdentity + + XdsIdentity + + + None + + + InfoShownInReportMode + + This policy controls what kind of information get shown for the user's attendance in attendance report/dashboard. + + String + + String + + + None + + + IPAudioMode + + Determines whether audio can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming audio in the meeting. Set this to DISABLED to prohibit outgoing and incoming audio in the meeting. + + String + + String + + + None + + + IPVideoMode + + Determines whether video can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming video in the meeting. Set this to DISABLED to prohibit outgoing and incoming video in the meeting. + + String + + String + + + None + + + LiveCaptionsEnabledType + + Determines whether real-time captions are available for the user in Teams meetings. Set this to DisabledUserOverride to allow user to turn on live captions. Set this to Disabled to prohibit. + + String + + String + + + DisabledUserOverride + + + LiveInterpretationEnabledType + + Allows meeting organizers to configure a meeting for language interpretation, selecting attendees of the meeting to become interpreters that other attendees can select and listen to the real-time translation they provide. Possible values are: + - DisabledUserOverride , if you would like users to be able to use interpretation in meetings but by default it is disabled. - Disabled , prevents the option to be enabled in Meeting Options. + + String + + String + + + DisabledUserOverride + + + LiveStreamingMode + + Determines whether you provide support for your users to stream their Teams meetings to large audiences through Real-Time Messaging Protocol (RTMP). + Possible values are: + - Disabled + - Enabled + + String + + String + + + None + + + LobbyChat + + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether chat messages are allowed in the lobby. + Possible values are: + - Enabled + - Disabled + + String + + String + + + None + + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + UInt32 + + UInt32 + + + None + + + MeetingChatEnabledType + + Specifies if users will be able to chat in meetings. Possible values are: Disabled, Enabled, and EnabledExceptAnonymous. + > [!NOTE] > Due to a new feature rollout, in order to set the value of MeetingChatEnabledType to Disabled, you will need to also set the value of LobbyChat to disabled. e.g., > Install-Module MicrosoftTeams -RequiredVersion 6.6.1-preview -Force -AllowClobber -AllowPrereleaseConnect-MicrosoftTeams Set-CsTeamsMeetingPolicy -Identity Global -MeetingChatEnabledType Disabled -LobbyChat Disabled + + String + + String + + + None + + + MeetingInviteLanguages + + > Applicable: Microsoft Teams + Controls how the join information in meeting invitations is displayed by enforcing a common language or enabling up to two languages to be displayed. + > [!NOTE] > All Teams supported languages can be specified using language codes. For more information about its delivery date, see the roadmap (Feature ID: 81521) (https://www.microsoft.com/microsoft-365/roadmap?filters=&searchterms=81521). + The preliminary list of available languages is shown below: + `ar-SA,az-Latn-AZ,bg-BG,ca-ES,cs-CZ,cy-GB,da-DK,de-DE,el-GR,en-GB,en-US,es-ES,es-MX,et-EE,eu-ES,fi-FI,fil-PH,fr-CA,fr-FR,gl-ES,he-IL,hi-IN,hr-HR,hu-HU,id-ID,is-IS,it-IT,ja-JP,ka-GE,kk-KZ,ko-KR,lt-LT,lv-LV,mk-MK,ms-MY,nb-NO,nl-NL,nn-NO,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sq-AL,sr-Latn-RS,sv-SE,th-TH,tr-TR,uk-UA,vi-VN,zh-CN,zh-TW`. + + String + + String + + + None + + + NewMeetingRecordingExpirationDays + + Specifies the number of days before meeting recordings will expire and move to the recycle bin. Value can be from 1 to 99,999 days. Value can also be -1 to set meeting recordings to never expire. + > [!NOTE] > You may opt to set Meeting Recordings to never expire by entering the value -1. + + Int32 + + Int32 + + + None + + + NoiseSuppressionForDialInParticipants + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Control Noises Supression Feature for PST legs joining a meeting. + Possible Values: + - MicrosoftDefault + - Enabled + - Disabled + + String + + String + + + None + + + ParticipantNameChange + + This setting will enable Tenant Admins to turn on/off participant renaming feature. + Possible Values: Enabled: Turns on the Participant Renaming feature. Disabled: Turns off the Participant Renaming feature. + + String + + String + + + None + + + ParticipantSlideControl + + > Applicable: Microsoft Teams + >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. + Determines whether participants can give control of presentation slides during meetings scheduled by this user. Set the type of users you want to be able to give control and be given control of presentation slides in meetings. Users excluded from the selected group will be prohibited from giving control, or being given control, in a meeting. + Possible Values: - Everyone: Anyone in the meeting can give or take control + - EveryoneInOrganization: Only internal AAD users and Multi-Tenant Organization (MTO) users can give or take control + - EveryoneInOrganizationAndGuests: Only those who are Guests to the tenant, MTO users, and internal AAD users can give or take control + - None: No one in the meeting can give or take control + + String + + String + + + Enabled + + + PreferredMeetingProviderForIslandsMode + + Determines the Outlook meeting add-in available to users on Islands mode. By default, this is set to TeamsAndSfb, and the users sees both the Skype for Business and Teams add-ins. Set this to Teams to remove the Skype for Business add-in and only show the Teams add-in. + + String + + String + + + TeamsAndSfb + + + QnAEngagementMode + + This setting enables Microsoft 365 Tenant Admins to Enable or Disable the Questions and Answers experience (Q+A). When Enabled, Organizers can turn on Q+A for their meetings. When Disabled, Organizers cannot turn on Q+A in their meetings. The setting is enforced when a meeting is created or is updated by Organizers. Attendees can use Q+A in meetings where it was previously added. Organizers can remove Q+A for those meetings through Teams and Outlook Meeting Options. Possible values: Enabled, Disabled + + String + + String + + + None + + + RealTimeText + + > Applicable: Microsoft Teams + Allows users to use real time text during a meeting, allowing them to communicate by typing their messages in real time. + Possible Values: - Enabled: User is allowed to turn on real time text. + - Disabled: User is not allowed to turn on real time text. + + String + + String + + + Enabled + + + RecordingStorageMode + + This parameter can take two possible values: + - Stream + - OneDriveForBusiness + + > [!NOTE] > The change of storing Teams meeting recordings from Classic Stream to OneDrive and SharePoint (ODSP) has been completed as of August 30th, 2021. All recordings are now stored in ODSP. This change overrides the RecordingStorageMode parameter, and modifying the setting in PowerShell no longer has any impact. + + String + + String + + + None + + + RoomAttributeUserOverride + + Possible values: + - Off + - Distinguish + - Attribute + + String + + String + + + None + + + RoomPeopleNameUserOverride + + Enabling people recognition requires the tenant CsTeamsMeetingPolicy roomPeopleNameUserOverride to be "On" and roomAttributeUserOverride to be Attribute for allowing individual voice and face profiles to be used for recognition in meetings. + > [!NOTE] > In some locations, people recognition can't be used due to local laws or regulations. Possible values: > > - Off: No People Recognition option on Microsoft Teams Room (Default). > - On: Policy value allows People recognition option on Microsoft Teams Rooms under call control bar. + + String + + String + + + None + + + ScreenSharingMode + + Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens. + + String + + String + + + None + + + SmsNotifications + + Participants can sign up for text message meeting reminders. + + String + + String + + + None + + + SpeakerAttributionMode + + Determines if users are identified in transcriptions and if they can change the value of the Automatically identify me in meeting captions and transcripts setting. + Possible values: + - Enabled : Speakers are identified in transcription. - EnabledUserOverride : Speakers are identified in transcription. If enabled, users can override this setting and choose not to be identified in their Teams profile settings. - DisabledUserOverride : Speakers are not identified in transcription. If enabled, users can override this setting and choose to be identified in their Teams profile settings. - Disabled : Speakers are not identified in transcription. + + String + + String + + + None + + + StreamingAttendeeMode + + Controls if Teams uses overflow capability once a meeting reaches its capacity (1,000 users with full functionality). + Possible values are: + - Disabled + - Enabled + + Set this to Enabled to allow up to 10,000 extra view-only attendees to join. + + String + + String + + + Disabled + + + TeamsCameraFarEndPTZMode + + Possible values are: + - Disabled + - AutoAcceptInTenant + - AutoAcceptAll + + String + + String + + + Disabled + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + UsersCanAdmitFromLobby + + This policy controls who can admit from the lobby. + + String + + String + + + None + + + VideoFiltersMode + + Determines the background effects that a user can configure in the Teams client. Possible values are: + - NoFilters: No filters are available. + - BlurOnly: Background blur is the only option available (requires a processor with AVX2 support, see Hardware requirements for Microsoft Teams (https://learn.microsoft.com/microsoftteams/hardware-requirements-for-the-teams-app) for more information). - BlurAndDefaultBackgrounds: Background blur and a list of pre-selected images are available. + - AllFilters: All filters are available, including custom images. + + String + + String + + + None + + + VoiceIsolation + + Determines whether you provide support for your users to enable voice isolation in Teams meeting calls. + Possible values are: - Enabled (default) + - Disabled + + String + + String + + + None + + + VoiceSimulationInInterpreter + + > Applicable: Microsoft Teams + > [!NOTE] > This feature has not been released yet and will have no changes if it is enabled or disabled. + Enables the user to use the voice simulation feature while being AI interpreted. + Possible Values: + - Disabled + - Enabled + + String + + String + + + Disabled + + + WatermarkForAnonymousUsers + + Determines the meeting experience and watermark content of an anonymous user. + + String + + String + + + None + + + WatermarkForCameraVideoOpacity + + Allows the transparency of watermark to be customizable. + + Int64 + + Int64 + + + None + + + WatermarkForCameraVideoPattern + + Allows the pattern design of watermark to be customizable. + + String + + String + + + None + + + WatermarkForScreenSharingOpacity + + Allows the transparency of watermark to be customizable. + + Int64 + + Int64 + + + None + + + WatermarkForScreenSharingPattern + + Allows the pattern design of watermark to be customizable. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + WhoCanRegister + + Controls the attendees who can attend a webinar meeting. The default is Everyone, meaning that everyone can register. If you want to restrict registration to internal accounts set the value to 'EveryoneInCompany'. + Possible values: + - Everyone + - EveryoneInCompany + + String + + String + + + Everyone + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Set-CsTeamsMeetingPolicy -Identity SalesMeetingPolicy -AllowTranscription $True + + The command shown in Example 1 uses the Set-CsTeamsMeetingPolicy cmdlet to update an existing meeting policy with the Identity SalesMeetingPolicy. This policy will use all the existing values except one: AllowTranscription; in this example, meetings for users with this policy can include real time or post meeting captions and transcriptions. + + + + -------------------------- EXAMPLE 2 -------------------------- + Set-CsTeamsMeetingPolicy -Identity HrMeetingPolicy -AutoAdmittedUsers "Everyone" -AllowMeetNow $False + + In Example 2, the Set-CsTeamsMeetingPolicy cmdlet is used to update a meeting policy with the Identity HrMeetingPolicy. In this example two different property values are configured: AutoAdmittedUsers is set to Everyone and AllowMeetNow is set to False. All other policy properties will use the existing values. + + + + -------------------------- EXAMPLE 3 -------------------------- + Set-CsTeamsMeetingPolicy -Identity NonEVNetworkRoamingPolicy -AllowNetworkConfigurationSettingsLookup $True + + In Example 3, the Set-CsTeamsMeetingPolicy cmdlet is used to update an existing meeting policy with the Identity NonEVNetworkRoamingPolicy. This policy will use all the existing values except one: AllowNetworkConfigurationSettingsLookup; in this example, we will fetch network roaming policy for the non-EV user with NonEVNetworkRoamingPolicy based on his current network location. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingpolicy + + + + + + Set-CsTeamsMeetingTemplatePermissionPolicy + Set + CsTeamsMeetingTemplatePermissionPolicy + + This cmdlet updates an existing TeamsMeetingTemplatePermissionPolicy. + + + + Update any of the properties of an existing instance of the TeamsMeetingTemplatePermissionPolicy. + + + + Set-CsTeamsMeetingTemplatePermissionPolicy + + Description + + > Applicable: Microsoft Teams + Pass in a new description if that field needs to be updated. + + String + + String + + + None + + + HiddenMeetingTemplates + + > Applicable: Microsoft Teams + The updated list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate). + + HiddenMeetingTemplate[] + + HiddenMeetingTemplate[] + + + None + + + Identity + + > Applicable: Microsoft Teams + Name of the policy instance to be updated. + + String + + String + + + None + + + + + + Description + + > Applicable: Microsoft Teams + Pass in a new description if that field needs to be updated. + + String + + String + + + None + + + HiddenMeetingTemplates + + > Applicable: Microsoft Teams + The updated list of meeting template IDs to hide. The HiddenMeetingTemplate objects are created with New-CsTeamsHiddenMeetingTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate). + + HiddenMeetingTemplate[] + + HiddenMeetingTemplate[] + + + None + + + Identity + + > Applicable: Microsoft Teams + Name of the policy instance to be updated. + + String + + String + + + None + + + + + + + + + + + + -- Example 1 - Updating the description of an existing policy -- + PS> Set-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar -Description "updated description" + + Updates the description field of a policy. + + + + Example 2 - Updating the hidden meeting template list of an existing policy + PS> Set-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar -HiddenMeetingTemplates @($hiddentemplate_1, $hiddentemplate_2) + + Updates the hidden meeting templates array. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMeetingTemplatePermissionPolicy + + + Get-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy + + + New-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy + + + Remove-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy + + + Grant-CsTeamsMeetingTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy + + + + + + Set-CsTeamsMessagingConfiguration + Set + CsTeamsMessagingConfiguration + + The TeamsMessagingConfiguration determines the messaging settings for users in your tenant. + + + + TeamsMessagingConfiguration determines the messaging settings for the users in your tenant. This cmdlet lets you update the user messaging options you'd like to enable in your organization. + + + + Set-CsTeamsMessagingConfiguration + + Identity + + Specifies the collection of tenant messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of messaging settings there is no need include this parameter when calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ContentBasedPhishingCheck + + > [!NOTE] > This feature has not been released. + This setting enables content-based phishing detection for Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + + + CustomEmojis + + This setting enables/disables the use of custom emojis and reactions across the whole tenant. Upon enablement, admins and/or users can define a user group that is allowed. Possible Values: True, False + + Boolean + + Boolean + + + None + + + EnableInOrganizationChatControl + + This setting determines if chat regulation for internal communication in tenant is allowed. Possible Values: True, False + + Boolean + + Boolean + + + None + + + EnableVideoMessageCaptions + + This setting determines if closed captions will be displayed, for Teams Video Clips, during playback. Possible values: True, False + + Boolean + + Boolean + + + None + + + FileTypeCheck + + > [!NOTE] > This parameter is in Private Preview. + This setting enables weaponizable file detection in Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + MessagingNotes + + This setting enables/disables MessagingNotes integration across the whole tenant. Possible Values: Disabled, Enabled + + String + + String + + + Enabled + + + ReportIncorrectSecurityDetections + + > [!NOTE] > This parameter is in Private Preview. + This setting enables the end users to Report incorrect security detections in Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + + + UrlReputationCheck + + > [!NOTE] > This parameter is in Private Preview. + This setting enables malicious URL detection in Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ContentBasedPhishingCheck + + > [!NOTE] > This feature has not been released. + This setting enables content-based phishing detection for Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + + + CustomEmojis + + This setting enables/disables the use of custom emojis and reactions across the whole tenant. Upon enablement, admins and/or users can define a user group that is allowed. Possible Values: True, False + + Boolean + + Boolean + + + None + + + EnableInOrganizationChatControl + + This setting determines if chat regulation for internal communication in tenant is allowed. Possible Values: True, False + + Boolean + + Boolean + + + None + + + EnableVideoMessageCaptions + + This setting determines if closed captions will be displayed, for Teams Video Clips, during playback. Possible values: True, False + + Boolean + + Boolean + + + None + + + FileTypeCheck + + > [!NOTE] > This parameter is in Private Preview. + This setting enables weaponizable file detection in Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specifies the collection of tenant messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of messaging settings there is no need include this parameter when calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. + + String + + String + + + None + + + MessagingNotes + + This setting enables/disables MessagingNotes integration across the whole tenant. Possible Values: Disabled, Enabled + + String + + String + + + Enabled + + + ReportIncorrectSecurityDetections + + > [!NOTE] > This parameter is in Private Preview. + This setting enables the end users to Report incorrect security detections in Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + + + UrlReputationCheck + + > [!NOTE] > This parameter is in Private Preview. + This setting enables malicious URL detection in Teams messages in the tenant. + Possible Values: - Enabled + - Disabled + + String + + String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsMessagingConfiguration -CustomEmojis $False + + The command shown in example 1 disables custom emojis within Teams. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMessagingConfiguration + + + Get-CsTeamsMessagingConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingconfiguration + + + + + + Set-CsTeamsMessagingPolicy + Set + CsTeamsMessagingPolicy + + The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. + + + + The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. This cmdlet updates a Teams messaging policy. Custom policies can then be assigned to users using the Grant-CsTeamsMessagingPolicy cmdlet. + + + + Set-CsTeamsMessagingPolicy + + Identity + + Identity for the teams messaging policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: `-Identity TeamsMessagingPolicy`. + If you do not specify an Identity the Set-CsTeamsMessagingPolicy cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + + + AllowSmartCompose + + Turn on this setting to let a user get text predictions for chat messages. + + Boolean + + Boolean + + + None + + + AllowChatWithGroup + + This setting determines if users can chat with groups (Distribution, M365 and Security groups). Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowCommunicationComplianceEndUserReporting + + This setting determines if users can report offensive messages to their admin for Communication Compliance. Possible Values: True, False + + Boolean + + Boolean + + + None + + + AllowCustomGroupChatAvatars + + These settings enables, disables updating or fetching custom group chat avatars for the users included in the messaging policy. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowExtendedWorkInfoInSearch + + This setting enables/disables showing company name and department name in search results for MTO users. + + Boolean + + Boolean + + + None + + + AllowFluidCollaborate + + This field enables or disables Fluid Collaborate feature for users. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowFullChatPermissionUserToDeleteAnyMessage + + This setting determines if users with the 'Full permissions' role can delete any group or meeting chat message within their tenant. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowGiphy + + Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to prohibit. Note : Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for Giphys to be allowed. + + Boolean + + Boolean + + + None + + + AllowGiphyDisplay + + Determines if Giphy images should be displayed that had been already sent or received in chat. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowGroupChatJoinLinks + + This setting determines if users in a group chat can create and share join links for other users within the organization to join that chat. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowImmersiveReader + + Determines whether a user is allowed to use Immersive Reader for reading conversation messages. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowMemes + + Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowOwnerDeleteMessage + + Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPasteInternetImage + + Determines if a user is allowed to paste internet-based images in compose. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowPriorityMessages + + Determines whether a user is allowed to send priority messages. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowRemoveUser + + Determines whether a user is allowed to remove a user from a conversation. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSecurityEndUserReporting + + This setting determines if users can report any security concern posted in message to their admin. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowSmartReply + + Turn this setting on to enable suggested replies for chat messages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowStickers + + Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUrlPreviews + + Use this setting to turn automatic URL previewing on or off in messages. Set this to TRUE to turn on. Set this to FALSE to turn off. + Note that Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for URL previews to be allowed. + + Boolean + + Boolean + + + None + + + AllowUserChat + + Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. + + Boolean + + Boolean + + + None + + + AllowUserDeleteChat + + Turn this setting on to allow users to permanently delete their 1:1, group chat, and meeting chat as participants (this deletes the chat only for them, not other users in the chat). Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + TRUE + + + AllowUserDeleteMessage + + Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. If this value is set to FALSE, the team owner will not be able to delete their own messages. + + Boolean + + Boolean + + + None + + + AllowUserEditMessage + + Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUserTranslation + + Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowVideoMessages + + This setting determines if users can create and send video messages. Possible values: True, False + + Boolean + + Boolean + + + None + + + AudioMessageEnabledType + + Determines whether a user is allowed to send audio messages. Possible values are: ChatsAndChannels, ChatsOnly, Disabled. + + AudioMessageEnabledTypeEnum + + AudioMessageEnabledTypeEnum + + + None + + + ChannelsInChatListEnabledType + + On mobile devices, enable to display favorite channels above recent chats. + Possible values are: DisabledUserOverride, EnabledUserOverride. + + ChannelsInChatListEnabledTypeEnum + + ChannelsInChatListEnabledTypeEnum + + + None + + + ChatPermissionRole + + Determines the Supervised Chat role of the user. Set this to Full to allow the user to supervise chats. Supervisors have the ability to initiate chats with and invite any user within the environment. Set this to Limited to allow the user to initiate conversations with Full and Limited permissioned users, but not Restricted. Set this to Restricted to block chat creation with anyone other than Full permissioned users. + + String + + String + + + Restricted + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + CreateCustomEmojis + + This setting enables the creation of custom emojis and reactions within an organization for the specified policy users. + + Boolean + + Boolean + + + None + + + DeleteCustomEmojis + + These settings enable and disable the editing and deletion of custom emojis and reactions for the users included in the messaging policy. + + Boolean + + Boolean + + + None + + + Description + + Provide a description of your policy to identify purpose of creating it. + + String + + String + + + None + + + DesignerForBackgroundsAndImages + + This setting determines whether a user is allowed to create custom AI-powered backgrounds and images with MS Designer. + Possible values are: Enabled, Disabled. + + DesignerForBackgroundsAndImagesTypeEnum + + DesignerForBackgroundsAndImagesTypeEnum + + + Enabled + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + GiphyRatingType + + Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or NORESTRICTION. + + String + + String + + + None + + + InOrganizationChatControl + + This setting determines if chat regulation for internal communication in the tenant is allowed. + + String + + String + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + ReadReceiptsEnabledType + + Use this setting to specify whether read receipts are user controlled, enabled for everyone, or disabled. Set this to UserPreference, Everyone or None. + + String + + String + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + UsersCanDeleteBotMessages + + Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + False + + + UseB2BInvitesToAddExternalUsers + + Indicates whether B2B invites should be used to add external users when necessary. + Possible values: + - `Enabled`: External users will be added using B2B invites. + - `Disabled`: External users will not be added using B2B invites. + + System.String + + System.String + + + Disabled + + + AutoShareFilesInExternalChats + + Determines whether files are automatically shared in external chats. + Possible values: + - `Enabled`: Files are automatically shared in external chats. + - `Disabled`: Files are not automatically shared in external chats. + + System.String + + System.String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowChatWithGroup + + This setting determines if users can chat with groups (Distribution, M365 and Security groups). Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowCommunicationComplianceEndUserReporting + + This setting determines if users can report offensive messages to their admin for Communication Compliance. Possible Values: True, False + + Boolean + + Boolean + + + None + + + AllowCustomGroupChatAvatars + + These settings enables, disables updating or fetching custom group chat avatars for the users included in the messaging policy. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowExtendedWorkInfoInSearch + + This setting enables/disables showing company name and department name in search results for MTO users. + + Boolean + + Boolean + + + None + + + AllowFluidCollaborate + + This field enables or disables Fluid Collaborate feature for users. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowFullChatPermissionUserToDeleteAnyMessage + + This setting determines if users with the 'Full permissions' role can delete any group or meeting chat message within their tenant. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowGiphy + + Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to prohibit. Note : Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for Giphys to be allowed. + + Boolean + + Boolean + + + None + + + AllowGiphyDisplay + + Determines if Giphy images should be displayed that had been already sent or received in chat. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowGroupChatJoinLinks + + This setting determines if users in a group chat can create and share join links for other users within the organization to join that chat. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowImmersiveReader + + Determines whether a user is allowed to use Immersive Reader for reading conversation messages. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowMemes + + Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowOwnerDeleteMessage + + Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowPasteInternetImage + + Determines if a user is allowed to paste internet-based images in compose. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowPriorityMessages + + Determines whether a user is allowed to send priority messages. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowRemoveUser + + Determines whether a user is allowed to remove a user from a conversation. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowSecurityEndUserReporting + + This setting determines if users can report any security concern posted in message to their admin. Possible values: True, False + + Boolean + + Boolean + + + None + + + AllowSmartCompose + + Turn on this setting to let a user get text predictions for chat messages. + + Boolean + + Boolean + + + None + + + AllowSmartReply + + Turn this setting on to enable suggested replies for chat messages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowStickers + + Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUrlPreviews + + Use this setting to turn automatic URL previewing on or off in messages. Set this to TRUE to turn on. Set this to FALSE to turn off. + Note that Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for URL previews to be allowed. + + Boolean + + Boolean + + + None + + + AllowUserChat + + Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. + + Boolean + + Boolean + + + None + + + AllowUserDeleteChat + + Turn this setting on to allow users to permanently delete their 1:1, group chat, and meeting chat as participants (this deletes the chat only for them, not other users in the chat). Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + TRUE + + + AllowUserDeleteMessage + + Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. If this value is set to FALSE, the team owner will not be able to delete their own messages. + + Boolean + + Boolean + + + None + + + AllowUserEditMessage + + Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowUserTranslation + + Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + AllowVideoMessages + + This setting determines if users can create and send video messages. Possible values: True, False + + Boolean + + Boolean + + + None + + + AudioMessageEnabledType + + Determines whether a user is allowed to send audio messages. Possible values are: ChatsAndChannels, ChatsOnly, Disabled. + + AudioMessageEnabledTypeEnum + + AudioMessageEnabledTypeEnum + + + None + + + ChannelsInChatListEnabledType + + On mobile devices, enable to display favorite channels above recent chats. + Possible values are: DisabledUserOverride, EnabledUserOverride. + + ChannelsInChatListEnabledTypeEnum + + ChannelsInChatListEnabledTypeEnum + + + None + + + ChatPermissionRole + + Determines the Supervised Chat role of the user. Set this to Full to allow the user to supervise chats. Supervisors have the ability to initiate chats with and invite any user within the environment. Set this to Limited to allow the user to initiate conversations with Full and Limited permissioned users, but not Restricted. Set this to Restricted to block chat creation with anyone other than Full permissioned users. + + String + + String + + + Restricted + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + CreateCustomEmojis + + This setting enables the creation of custom emojis and reactions within an organization for the specified policy users. + + Boolean + + Boolean + + + None + + + DeleteCustomEmojis + + These settings enable and disable the editing and deletion of custom emojis and reactions for the users included in the messaging policy. + + Boolean + + Boolean + + + None + + + Description + + Provide a description of your policy to identify purpose of creating it. + + String + + String + + + None + + + DesignerForBackgroundsAndImages + + This setting determines whether a user is allowed to create custom AI-powered backgrounds and images with MS Designer. + Possible values are: Enabled, Disabled. + + DesignerForBackgroundsAndImagesTypeEnum + + DesignerForBackgroundsAndImagesTypeEnum + + + Enabled + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + GiphyRatingType + + Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or NORESTRICTION. + + String + + String + + + None + + + Identity + + Identity for the teams messaging policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: `-Identity TeamsMessagingPolicy`. + If you do not specify an Identity the Set-CsTeamsMessagingPolicy cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + + + InOrganizationChatControl + + This setting determines if chat regulation for internal communication in the tenant is allowed. + + String + + String + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + ReadReceiptsEnabledType + + Use this setting to specify whether read receipts are user controlled, enabled for everyone, or disabled. Set this to UserPreference, Everyone or None. + + String + + String + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + UsersCanDeleteBotMessages + + Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + False + + + UseB2BInvitesToAddExternalUsers + + Indicates whether B2B invites should be used to add external users when necessary. + Possible values: + - `Enabled`: External users will be added using B2B invites. + - `Disabled`: External users will not be added using B2B invites. + + System.String + + System.String + + + Disabled + + + AutoShareFilesInExternalChats + + Determines whether files are automatically shared in external chats. + Possible values: + - `Enabled`: Files are automatically shared in external chats. + - `Disabled`: Files are not automatically shared in external chats. + + System.String + + System.String + + + Enabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy -AllowGiphy $false -AllowMemes $false + + In this example two different property values are configured: AllowGiphy is set to false and AllowMemes is set to False. All other policy properties will be left as previously assigned. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy | Set-CsTeamsMessagingPolicy -AllowGiphy $false -AllowMemes $false + + In this example two different property values are configured for all teams messaging policies in the organization: AllowGiphy is set to false and AllowMemes is set to False. All other policy properties will be left as previously assigned. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmessagingpolicy + + + + + + Set-CsTeamsMultiTenantOrganizationConfiguration + Set + CsTeamsMultiTenantOrganizationConfiguration + + This cmdlet configures the Multi-tenant Organization settings for the tenant. + + + + The Set-CsTeamsMultiTenantOrganizationConfiguration cmdlet configures tenant settings for Multi-tenant Organizations. This includes the CopilotFromHomeTenant parameter, which determines if users in a Multi-Tenant Organization can use their Copilot license from their home tenant during cross-tenant meetings + + + + Set-CsTeamsMultiTenantOrganizationConfiguration + + CopilotFromHomeTenant + + Setting value of the Teams Multi-tenant Organization Setting. CopilotFromHomeTenant controls user access to Copilot license in their home tenant during cross-tenant meetings. + + Boolean + + Boolean + + + Enabled + + + Identity + + Identity of the Teams Multi-tenant Organization Setting. + + String + + String + + + None + + + + Set-CsTeamsMultiTenantOrganizationConfiguration + + CopilotFromHomeTenant + + Setting value of the Teams Multi-tenant Organization Setting. CopilotFromHomeTenant controls user access to Copilot license in their home tenant during cross-tenant meetings. + + Boolean + + Boolean + + + Enabled + + + Identity + + Identity of the Teams Multi-tenant Organization Setting. + + String + + String + + + None + + + + + + CopilotFromHomeTenant + + Setting value of the Teams Multi-tenant Organization Setting. CopilotFromHomeTenant controls user access to Copilot license in their home tenant during cross-tenant meetings. + + Boolean + + Boolean + + + Enabled + + + Identity + + Identity of the Teams Multi-tenant Organization Setting. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsMultiTenantOrganizationConfiguration -Identity Global -CopilotFromHomeTenant Disabled + + Set Teams Multi-tenant Organization Setting "CopilotFromHomeTenant" value to "Disabled" for global as default. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsMultiTenantOrganizationConfiguration -Identity Global -CopilotFromHomeTenant Enabled + + Set Teams Multi-tenant Organization Setting "CopilotFromHomeTenant" value to "Enabled" for global as default. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmultitenantorganizationconfiguration + + + Get-CsTeamsMultiTenantOrganizationConfiguration + + + + + + + Set-CsTeamsNotificationAndFeedsPolicy + Set + CsTeamsNotificationAndFeedsPolicy + + Modifies an existing Teams Notifications and Feeds Policy + + + + The Microsoft Teams notifications and feeds policy allows administrators to manage how notifications and activity feeds are handled within Teams. This policy includes settings that control the types of notifications users receive, how they are delivered, and which activities are highlighted in their feeds. + + + + Set-CsTeamsNotificationAndFeedsPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Free format text + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + SuggestedFeedsEnabledType + + The SuggestedFeedsEnabledType parameter in the Microsoft Teams notifications and feeds policy controls whether users receive notifications about suggested activities and content within their Teams environment. When enabled, this parameter ensures that users are notified about recommended or relevant activities, helping them stay informed and engaged with important updates and interactions. + + String + + String + + + None + + + TrendingFeedsEnabledType + + The TrendingFeedsEnabledType parameter in the Microsoft Teams notifications and feeds policy controls whether users receive notifications about trending activities within their Teams environment. When enabled, this parameter ensures that users are notified about popular or important activities, helping them stay informed about significant updates and interactions. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Free format text + + String + + String + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + SuggestedFeedsEnabledType + + The SuggestedFeedsEnabledType parameter in the Microsoft Teams notifications and feeds policy controls whether users receive notifications about suggested activities and content within their Teams environment. When enabled, this parameter ensures that users are notified about recommended or relevant activities, helping them stay informed and engaged with important updates and interactions. + + String + + String + + + None + + + TrendingFeedsEnabledType + + The TrendingFeedsEnabledType parameter in the Microsoft Teams notifications and feeds policy controls whether users receive notifications about trending activities within their Teams environment. When enabled, this parameter ensures that users are notified about popular or important activities, helping them stay informed about significant updates and interactions. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsNotificationAndFeedsPolicy Global -SuggestedFeedsEnabledType EnabledUserOverride + + Change settings on an existing Notifications and Feeds Policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsnotificationandfeedspolicy + + + + + + Set-CsTeamsPersonalAttendantPolicy + Set + CsTeamsPersonalAttendantPolicy + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + Use this cmdlet to update values in existing Teams Personal Attendant Policies. + + + + The Teams Personal Attendant Policy controls personal attendant and its functionalities available to users in Microsoft Teams. This cmdlet allows admins to set values in a given Personal Attendant Policy instance. + Only the parameters specified are changed. Other parameters keep their existing values. + + + + Set-CsTeamsPersonalAttendantPolicy + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + PersonalAttendant + + Enables the user to use the personal attendant + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CallScreening + + Enables the user to use the personal attendant call context evaluation features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CalendarBookings + + Enables the user to use the personal attendant calendar related features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundInternalCalls + + Enables the user to use the personal attendant for incoming domain calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundFederatedCalls + + Enables the user to use the personal attendant for incoming calls from other domains + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundPSTNCalls + + Enables the user to use the personal attendant for incoming PSTN calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticTranscription + + Enables the user to use the automatic storing of personal attendant call transcriptions + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticRecording + + Enables the user to use the automatic storing of personal attendant call recordings + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Identity + + Name of the policy instance being created. + + String + + String + + + None + + + PersonalAttendant + + Enables the user to use the personal attendant + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CallScreening + + Enables the user to use the personal attendant call context evaluation features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + CalendarBookings + + Enables the user to use the personal attendant calendar related features + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundInternalCalls + + Enables the user to use the personal attendant for incoming domain calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundFederatedCalls + + Enables the user to use the personal attendant for incoming calls from other domains + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + InboundPSTNCalls + + Enables the user to use the personal attendant for incoming PSTN calls + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticTranscription + + Enables the user to use the automatic storing of personal attendant call transcriptions + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + AutomaticRecording + + Enables the user to use the automatic storing of personal attendant call recordings + Possible values: + - EnabledUserOverride: Users can set their preferences from personal attendant settings in the Teams app. + - Enabled: Enables the user to use this functionality. + - Disabled: The user is not enabled to use this functionality. + + String + + String + + + EnabledUserOverride + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsPersonalAttendantPolicy -Identity Global -CallScreening Disabled + + Sets the value of the parameter CallScreening in the Global (default) Teams Personal Attendant Policy instance. + + + + -------------------------- Example 2 -------------------------- + Set-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy -CalendarBookings Disabled + + Sets the value of the parameter CalendarBookings to Disabled in the Teams Personal Attendant Policy instance called SalesPersonalAttendantPolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamspersonalattendantpolicy + + + New-CsTeamsPersonalAttendantPolicy + + + + Get-CsTeamsPersonalAttendantPolicy + + + + Grant-CsTeamsPersonalAttendantPolicy + + + + Remove-CsTeamsPersonalAttendantPolicy + + + + + + + Set-CsTeamsRecordingRollOutPolicy + Set + CsTeamsRecordingRollOutPolicy + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. + + + + The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. This policy would be deprecated over time as this is only to allow IT admins to phase the roll out of this breaking change. + The Set-CsTeamsRecordingRollOutPolicy cmdlet allows administrators to update existing CsTeamsRecordingRollOutPolicy that can be assigned to particular users to control Teams recording storage place. + This command is available from Teams powershell module 6.1.1-preview and above. + + + + Set-CsTeamsRecordingRollOutPolicy + + Identity + + Specify the name of the policy being created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + MeetingRecordingOwnership + + Specifies where the meeting recording get stored. Possible values are: - MeetingOrganizer + - RecordingInitiator + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy being created. + + String + + String + + + None + + + MeetingRecordingOwnership + + Specifies where the meeting recording get stored. Possible values are: - MeetingOrganizer + - RecordingInitiator + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsRecordingRollOutPolicy -Identity OrganizerPolicy -MeetingRecordingOwnership RecordingInitiator + + The command shown in Example 1 uses the Set-CsTeamsMeetingPolicy cmdlet to update an existing CsTeamsRecordingRollOutPolicy with the Identity OrganizerPolicy. This policy will set MeetingRecordingOwnership to RecordingInitiator; in this example, recordings for this policy group's users as organizer would get saved to recording initiators' own OneDrive. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsrecordingrolloutpolicy + + + + + + Set-CsTeamsSharedCallingRoutingPolicy + Set + CsTeamsSharedCallingRoutingPolicy + + Use the Set-CsTeamsSharedCallingRoutingPolicy cmdlet to change a shared calling routing policy instance. + + + + The Teams shared calling routing policy configures the caller ID for normal outbound PSTN and emergency calls made by users enabled for shared calling using this policy instance. + The caller ID for normal outbound PSTN calls is the phone number assigned to the resource account specified in the policy instance. Typically this is the organization's main auto attendant phone number. Callbacks will go to the auto attendant and the PSTN caller can use the auto attendant to be transferred to the shared calling user. + When a shared calling user makes an emergency call, the emergency services need to be able to make a direct callback to the user who placed the emergency call. One of the defined emergency numbers is used for this purpose as caller ID for the emergency call. It will be reserved for the next 60 minutes and any inbound call to that number will directly ring the shared calling user who made the emergency call. If no emergency numbers are defined, the phone number of the resource account will be used as caller ID. If no free emergency numbers are available, the first number in the list will be reused. + The emergency call will contain the location of the shared calling user. The location will either be the dynamic emergency location obtained by the Teams client or if that is not available the static location assigned to the phone number of the resource account used in the shared calling policy instance. + + + + Set-CsTeamsSharedCallingRoutingPolicy + + Identity + + Unique identifier of the Teams shared calling routing policy to be created. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + The description of the new policy instance. + + String + + String + + + None + + + EmergencyNumbers + + An array of phone numbers used as caller ID on emergency calls. + The emergency numbers must be routable for inbound PSTN calls, and for Calling Plan and Operator Connect phone numbers, must be available within the organization. + The emergency numbers specified must all be of the same phone number type and country as the phone number assigned to the specified resource account. If the resource account has a Calling Plan service number assigned, the emergency numbers need to be Calling Plan subscriber numbers. + The emergency numbers must be unique and can't be reused in other shared calling policy instances. The emergency numbers can't be assigned to any user or resource account. + If no emergency numbers are configured, the phone number of the resource account will be used as Caller ID for the emergency call. + + System.Management.Automation.PSListModifier[String] + + System.Management.Automation.PSListModifier[String] + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + ResourceAccount + + The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. + The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. + - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. + The same resource account can be used in multiple shared calling policy instances. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + The description of the new policy instance. + + String + + String + + + None + + + EmergencyNumbers + + An array of phone numbers used as caller ID on emergency calls. + The emergency numbers must be routable for inbound PSTN calls, and for Calling Plan and Operator Connect phone numbers, must be available within the organization. + The emergency numbers specified must all be of the same phone number type and country as the phone number assigned to the specified resource account. If the resource account has a Calling Plan service number assigned, the emergency numbers need to be Calling Plan subscriber numbers. + The emergency numbers must be unique and can't be reused in other shared calling policy instances. The emergency numbers can't be assigned to any user or resource account. + If no emergency numbers are configured, the phone number of the resource account will be used as Caller ID for the emergency call. + + System.Management.Automation.PSListModifier[String] + + System.Management.Automation.PSListModifier[String] + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier of the Teams shared calling routing policy to be created. + + String + + String + + + None + + + ResourceAccount + + The Identity of the resource account. Can only be specified using the Identity or ObjectId of the resource account. + The phone number assigned to the resource account must: - Have the same phone number type and country as the emergency numbers configured in this policy instance. + - Must have an emergency location assigned. You can use the Teams PowerShell Module Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and the -LocationId parameter to set the location. - If the resource account is using a Calling Plan service number, you must have a Pay-As-You-Go Calling Plan, and assign it to the resource account. In addition, you need to assign a Communications credits license to the resource account and fund it to support outbound shared calling calls via the Pay-As-You-Go Calling Plan. + The same resource account can be used in multiple shared calling policy instances. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + In some Calling Plan markets, you are not allowed to set the location on service numbers. In this instance, kindly contact the Telephone Number Services service desk (https://learn.microsoft.com/microsoftteams/phone-reference/manage-numbers/contact-tns-service-desk). + If you are attempting to use a resource account with an Operator Connect phone number assigned, kindly confirm support for Shared Calling with your operator. + Shared Calling is not supported for Calling Plan service phone numbers in Romania, the Czech Republic, Hungary, Singapore, New Zealand, Australia, and Japan. A limited number of existing Calling Plan service phone numbers in other countries are also not supported for Shared Calling. For such service phone numbers, you should contact the Telephone Number Services service desk (https://learn.microsoft.com/microsoftteams/phone-reference/manage-numbers/contact-tns-service-desk). + This cmdlet was introduced in Teams PowerShell Module 5.5.0. + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -EmergencyNumbers @{remove='+14255556677'} + + The command shown in Example 1 removes the emergency callback number +14255556677 from the policy called Seattle. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy + + + New-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy + + + Grant-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy + + + Remove-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy + + + Get-CsTeamsSharedCallingRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy + + + Set-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment + + + + + + Set-CsTeamsShiftsPolicy + Set + CsTeamsShiftsPolicy + + This cmdlet allows you to set or update properties of a TeamsShiftPolicy instance, including Teams off shift warning message-specific settings. + + + + This cmdlet allows you to set or update properties of a TeamsShiftPolicy instance. Use this to set the policy name and Teams off shift warning message-specific settings (ShiftNoticeMessageType, ShiftNoticeMessageCustom, ShiftNoticeFrequency, AccessGracePeriodMinutes). + + + + Set-CsTeamsShiftsPolicy + + Identity + + > Applicable: Microsoft Teams + Policy instance name. + + XdsIdentity + + XdsIdentity + + + None + + + AccessGracePeriodMinutes + + > Applicable: Microsoft Teams + Indicates the grace period time in minutes between when the first shift starts, or last shift ends and when access is blocked. + + Int64 + + Int64 + + + None + + + AccessType + + > Applicable: Microsoft Teams + Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. + + String + + String + + + UnrestrictedAccess_TeamsApp + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnableScheduleOwnerPermissions + + > Applicable: Microsoft Teams + Indicates whether a user can manage a Shifts schedule as a team member. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + ShiftNoticeFrequency + + > Applicable: Microsoft Teams + Frequency of warning dialog displayed when user opens Teams. Set one of Always, ShowOnceOnChange, Never. + + String + + String + + + Always + + + ShiftNoticeMessageCustom + + > Applicable: Microsoft Teams + Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + + String + + String + + + None + + + ShiftNoticeMessageType + + > Applicable: Microsoft Teams + The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + + String + + String + + + DefaultMessage + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AccessGracePeriodMinutes + + > Applicable: Microsoft Teams + Indicates the grace period time in minutes between when the first shift starts, or last shift ends and when access is blocked. + + Int64 + + Int64 + + + None + + + AccessType + + > Applicable: Microsoft Teams + Indicates the Teams access type granted to the user. Today, only unrestricted access to Teams app is supported. Use 'UnrestrictedAccess_TeamsApp' as the value for this setting, or is set by default. For Teams Off Shift Access Control, the option to show the user a blocking dialog message is supported. Once the user accepts this message, it is audit logged and the user has usual access to Teams. Set other off shift warning message-specific settings to configure off shift access controls for the user. + + String + + String + + + UnrestrictedAccess_TeamsApp + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableScheduleOwnerPermissions + + > Applicable: Microsoft Teams + Indicates whether a user can manage a Shifts schedule as a team member. + + Boolean + + Boolean + + + False + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Policy instance name. + + XdsIdentity + + XdsIdentity + + + None + + + ShiftNoticeFrequency + + > Applicable: Microsoft Teams + Frequency of warning dialog displayed when user opens Teams. Set one of Always, ShowOnceOnChange, Never. + + String + + String + + + Always + + + ShiftNoticeMessageCustom + + > Applicable: Microsoft Teams + Provide a custom message. Must set ShiftNoticeMessageType to 'CustomMessage' to enforce this. + + String + + String + + + None + + + ShiftNoticeMessageType + + > Applicable: Microsoft Teams + The warning message is shown in the blocking dialog when a user access Teams off shift hours. Select one of 7 Microsoft provided messages, a default message or a custom message. 'Message1' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. By accepting, you acknowledge that your use of Teams while off shift is not authorized and you will not be compensated. 'Message2' - Accessing this app outside working hours is voluntary. You won't be compensated for time spent on Teams. Refer to your employer's guidelines on using this app outside working hours. By accepting, you acknowledge that you understand the statement above. 'Message3' - You won't be compensated for time using Teams. By accepting, you acknowledge that you understand the statement above. 'Message4' - You're not authorized to use Teams while off shift. By accepting, you acknowledge your use of Teams is against your employer's policy. 'Message5' - Access to Teams is turned off during non-working hours. You will be able to access the app when your next shift starts. 'Message6' - Your employer does not authorize or approve of the use of its network, applications, systems, or tools by non-exempt or hourly employees during their non-working hours. Access to corporate resources are only allowed during approved working hours and should be recorded as hours worked in your employer's timekeeping system. 'Message7' - Your employer has turned off access to Teams during non-working hours. Refer to your employer's guidelines on using this app outside working hours. 'DefaultMessage' - You aren't authorized to use Microsoft Teams during non-working hours and will only be compensated for using it during approved working hours. 'CustomMessage' + + String + + String + + + DefaultMessage + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsShiftsPolicy -Identity OffShiftAccess_WarningMessage1_AlwaysShowMessage -ShiftNoticeMessageType Message1 -ShiftNoticeFrequency always -AccessGracePeriodMinutes 5 + + In this example, the policy instance is called "OffShiftAccess_WarningMessage1_AlwaysShowMessage", a warning message (Message 1) will always be displayed to the user on opening Teams during off shift hours. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsshiftspolicy + + + Get-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy + + + New-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy + + + Remove-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy + + + Grant-CsTeamsShiftsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy + + + + + + Set-CsTeamsSipDevicesConfiguration + Set + CsTeamsSipDevicesConfiguration + + This cmdlet is used to manage the organization-wide Teams SIP devices configuration. + + + + This cmdlet is used to manage the organization-wide Teams SIP devices configuration which contains settings that are applicable to SIP devices connected to Teams using Teams Sip Gateway. + To execute the cmdlet, you need to hold a role within your organization such as Teams Administrator or Teams Communication Administrator. + + + + Set-CsTeamsSipDevicesConfiguration + + BulkSignIn + + Indicates whether Bulk SingIn into Teams SIP devices is enabled or disabled for the common area phone (CAP) accounts across the organization. Possible values are Enabled and ' Disabled . + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BulkSignIn + + Indicates whether Bulk SingIn into Teams SIP devices is enabled or disabled for the common area phone (CAP) accounts across the organization. Possible values are Enabled and ' Disabled . + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsSipDevicesConfiguration -BulkSignIn "Enabled" + + In this example, Bulk SignIn is set to Enabled across the organization. + + + + -------------------------- Example 2 -------------------------- + Set-CsTeamsSipDevicesConfiguration -BulkSignIn "Disabled" + + In this example, Bulk SignIn is set to Disabled across the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssipdevicesconfiguration + + + Get-CsTeamsSipDevicesConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssipdevicesconfiguration + + + + + + Set-CsTeamsTemplatePermissionPolicy + Set + CsTeamsTemplatePermissionPolicy + + This cmdlet updates an existing TeamsTemplatePermissionPolicy. + + + + Updates any of the properties of an existing instance of the TeamsTemplatePermissionPolicy. + + + + Set-CsTeamsTemplatePermissionPolicy + + Identity + + Name of the policy instance to be updated. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Adds a new description if that field needs to be updated. + + String + + String + + + None + + + Force + + The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. + You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + + + SwitchParameter + + + False + + + HiddenTemplates + + The updated list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate). + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Adds a new description if that field needs to be updated. + + String + + String + + + None + + + Force + + The Force switch hides warning or confirmation messages. You don't need to specify a value with this switch. + You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. + + SwitchParameter + + SwitchParameter + + + False + + + HiddenTemplates + + The updated list of Teams template IDs to hide. The HiddenTemplate objects are created with New-CsTeamsHiddenTemplate (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate). + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] + + + None + + + Identity + + Name of the policy instance to be updated. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS >$manageEventTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAnEvent +PS >$manageProjectTemplate = New-CsTeamsHiddenTemplate -Id com.microsoft.teams.template.ManageAProject +PS >$HiddenList = @($manageProjectTemplate, $manageEventTemplate) +PS >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $HiddenList + + Updates the hidden templates array. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy + + + Get-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy + + + New-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy + + + Remove-CsTeamsTemplatePermissionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy + + + + + + Set-CsTeamsUpdateManagementPolicy + Set + CsTeamsUpdateManagementPolicy + + Use this cmdlet to modify a Teams Update Management policy. + + + + The Teams Update Management Policy allows admins to specify if a given user is enabled to preview features in Teams. + + + + Set-CsTeamsUpdateManagementPolicy + + Identity + + The unique identifier of the policy. + + String + + String + + + None + + + AllowManagedUpdates + + Enables/Disables managed updates for the user. + + Boolean + + Boolean + + + None + + + AllowPreview + + Indicates whether all feature flags are switched on or off. Can be set only when AllowManagedUpdates is set to True. + + Boolean + + Boolean + + + None + + + AllowPrivatePreview + + This setting will allow admins to allow users in their tenant to opt in to Private Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is Forced, then users will be switched to Private Preview. + + AllowPrivatePreview + + AllowPrivatePreview + + + None + + + AllowPublicPreview + + This setting will allow admins to allow users in their tenant to opt in to Public Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is FollowOfficePreview, then users will not be able to opt in and instead follow their Office channel, and be switched to Public Preview if their Office channel is CC (Preview). The ring switcher UI will be hidden in the Desktop Client. This is not applicable to the Web Client. If it is Forced, then users will be switched to Public Preview. + + String + + String + + + None + + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DisabledInProductMessages + + List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: + | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33 | What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | + + System.Management.Automation.PSListModifier`1[System.String] + + System.Management.Automation.PSListModifier`1[System.String] + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + OCDIRedirect + + This setting controls whether users are redirected from teams.microsoft.com to the unified domain teams.cloud.microsoft. Possible values are: - Microsoft Default , Microsoft will manage redirection behavior. If no explicit admin configuration is set, users may be redirected automatically. - Disabled , Users will remain on teams.microsoft.com. Use this if your organization's apps are incompatible with the unified domain. - Enabled , Users will be redirected to teams.cloud.microsoft. Use this only if your organization had previously opted out of redirection and now wants to opt back in. + + String + + String + + + None + + + UpdateDayOfWeek + + Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + + Int64 + + Int64 + + + None + + + UpdateTime + + Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. + + String + + String + + + None + + + UpdateTimeOfDay + + Machine local time. Can be set only when AllowManagedUpdates is set to True + + DateTime + + DateTime + + + None + + + UseNewTeamsClient + + This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowManagedUpdates + + Enables/Disables managed updates for the user. + + Boolean + + Boolean + + + None + + + AllowPreview + + Indicates whether all feature flags are switched on or off. Can be set only when AllowManagedUpdates is set to True. + + Boolean + + Boolean + + + None + + + AllowPrivatePreview + + This setting will allow admins to allow users in their tenant to opt in to Private Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is Forced, then users will be switched to Private Preview. + + AllowPrivatePreview + + AllowPrivatePreview + + + None + + + AllowPublicPreview + + This setting will allow admins to allow users in their tenant to opt in to Public Preview. If it is Disabled, then users will not be able to opt in and the ring switcher UI will be hidden in the Desktop Client. If it is Enabled, then users will be able to opt in and the ring switcher UI will be available in the Desktop Client. If it is FollowOfficePreview, then users will not be able to opt in and instead follow their Office channel, and be switched to Public Preview if their Office channel is CC (Preview). The ring switcher UI will be hidden in the Desktop Client. This is not applicable to the Web Client. If it is Forced, then users will be switched to Public Preview. + + String + + String + + + None + + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + DisabledInProductMessages + + List of IDs of the categories of the in-product messages that will be disabled. You can choose one of the categories from this table: + | ID | Campaign Category | | -- | -- | | 91382d07-8b89-444c-bbcb-cfe43133af33 | What's New | | edf2633e-9827-44de-b34c-8b8b9717e84c | Conferences | + + System.Management.Automation.PSListModifier`1[System.String] + + System.Management.Automation.PSListModifier`1[System.String] + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The unique identifier of the policy. + + String + + String + + + None + + + OCDIRedirect + + This setting controls whether users are redirected from teams.microsoft.com to the unified domain teams.cloud.microsoft. Possible values are: - Microsoft Default , Microsoft will manage redirection behavior. If no explicit admin configuration is set, users may be redirected automatically. - Disabled , Users will remain on teams.microsoft.com. Use this if your organization's apps are incompatible with the unified domain. - Enabled , Users will be redirected to teams.cloud.microsoft. Use this only if your organization had previously opted out of redirection and now wants to opt back in. + + String + + String + + + None + + + UpdateDayOfWeek + + Machine local day. 0-6(Sun-Sat) Can be set only when AllowManagedUpdates is set to True. + + Int64 + + Int64 + + + None + + + UpdateTime + + Machine local time in HH:MM format. Can be set only when AllowManagedUpdates is set to True. + + String + + String + + + None + + + UpdateTimeOfDay + + Machine local time. Can be set only when AllowManagedUpdates is set to True + + DateTime + + DateTime + + + None + + + UseNewTeamsClient + + This setting will enable admins to show or hide which users see the Teams preview toggle on the current Teams client. If it is AdminDisabled, then users will not be able to see the Teams preview toggle in the Desktop Client. If it is UserChoice, then users will be able to see the Teams preview toggle in the Desktop Client. If it is MicrosoftChoice, then Microsoft will configure/ manage whether user sees or does not see this feature if the admin has set nothing. If it is NewTeamsAsDefault, then New Teams will be default for users, and they will be able to switch back to Classic Teams via the toggle in the Desktop Client. If it is NewTeamsOnly, then New Teams will be the only Teams client installed for users. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsUpdateManagementPolicy -Identity "Campaign Policy" -DisabledInProductMessages @("91382d07-8b89-444c-bbcb-cfe43133af33") + + In this example, the policy "Campaign Policy" is modified, disabling the in-product messages with the category "What's New". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupdatemanagementpolicy + + + + + + Set-CsTeamsUpgradeConfiguration + Set + CsTeamsUpgradeConfiguration + + Manage certain aspects of client behavior for users being upgraded from Skype for Business to Teams. + + + + TeamsUpgradeConfiguration is used in conjunction with TeamsUpgradePolicy. The settings in TeamsUpgradeConfiguration allow administrators to configure whether users subject to upgrade and who are running on Windows clients should automatically download Teams. It allows administrators to determine which application end users should use to join Skype for Business meetings. + The DownloadTeams property allows admins to control whether the Skype for Business client should automatically download Teams in the background. This setting is only honored on Windows clients, and only for certain values of the user's TeamsUpgradePolicy. If NotifySfbUser=true or if Mode=TeamsOnly in TeamsUpgradePolicy, this setting is honored. Otherwise it is ignored. + The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings, even after the user has been upgraded to Teams. Allowed values are: SkypeMeetingsApp and NativeLimitedClient. "NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded, only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer want to install Skype for Business on their users' computers. + + + + Set-CsTeamsUpgradeConfiguration + + Identity + + > Applicable: Microsoft Teams + For internal use only. + + XdsIdentity + + XdsIdentity + + + None + + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DownloadTeams + + > Applicable: Microsoft Teams + The DownloadTeams property allows admins to control whether the Skype for Business client should automatically download Teams in the background. This Boolean setting is only honored on Windows clients, and only for certain values of the user's TeamsUpgradePolicy. If NotifySfbUser=true or if Mode=TeamsOnly in TeamsUpgradePolicy, this setting is honored. Otherwise it is ignored. + + Boolean + + Boolean + + + True + + + Force + + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + SfBMeetingJoinUx + + > Applicable: Microsoft Teams + The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings, even after the user has been upgraded to Teams. Allowed values are: "SkypeMeetingsApp" and "NativeLimitedClient". "NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded, only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer want to install Skype for Business on their users' computers. + + string + + string + + + NativeLimitedClient + + + Tenant + + > Applicable: Microsoft Teams + For internal use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BlockLegacyAuthorization + + This setting will force Teams clients to enforce session revocation for core Messaging and Calling/Meeting scenarios. If turned ON, session revocation will be enforced for calls, chats and meetings for opted-in users. If turned OFF, session revocation will not be enforced for calls, chats and meetings for opted-in users + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DownloadTeams + + > Applicable: Microsoft Teams + The DownloadTeams property allows admins to control whether the Skype for Business client should automatically download Teams in the background. This Boolean setting is only honored on Windows clients, and only for certain values of the user's TeamsUpgradePolicy. If NotifySfbUser=true or if Mode=TeamsOnly in TeamsUpgradePolicy, this setting is honored. Otherwise it is ignored. + + Boolean + + Boolean + + + True + + + Force + + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + For internal use only. + + XdsIdentity + + XdsIdentity + + + None + + + SfBMeetingJoinUx + + > Applicable: Microsoft Teams + The SfBMeetingJoinUx property allows admins to specify which app is used to join Skype for Business meetings, even after the user has been upgraded to Teams. Allowed values are: "SkypeMeetingsApp" and "NativeLimitedClient". "NativeLimitedClient" means the existing Skype for Business rich client will be used, but since the user is upgraded, only meeting functionality is available. Calling and Messaging are done via Teams. "SkypeMeetingsApp" means use the web-downloadable app. This setting can be useful for organizations that have upgraded to Teams and no longer want to install Skype for Business on their users' computers. + + string + + string + + + NativeLimitedClient + + + Tenant + + > Applicable: Microsoft Teams + For internal use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + These settings are only honored by newer versions of Skype for Business clients. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsUpgradeConfiguration -DownloadTeams $true -SfBMeetingJoinUx SkypeMeetingsApp + + The above cmdlet specifies that users subject to upgrade should download Teams in the background, and that they should use the Skype For Business Meetings app to join Skype for Business meetings. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration + + + Get-CsTeamsUpgradeConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration + + + Get-CsTeamsUpgradePolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy + + + Grant-CsTeamsUpgradePolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy + + + Migration and interoperability guidance for organizations using Teams together with Skype for Business + https://learn.microsoft.com/MicrosoftTeams/migration-interop-guidance-for-teams-with-skype + + + + + + Set-CsTeamsVdiPolicy + Set + CsTeamsVdiPolicy + + The SetCsTeamsVdiPolicy cmdlet allows administrators to update existing Vdi policies that can be assigned to particular users to control Teams features related to Vdi. + + + + The CsTeamsVdiPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting specifically on an unoptimized VDI environment. It also controls whether a user can be in VDI 2.0 optimization mode. + + + + Set-CsTeamsVdiPolicy + + Identity + + Specify the name of the policy being created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DisableAudioVideoInCallsAndMeetings + + Determines whether a user on a non-optimized Vdi environment can hold person-to-person audio and video calls. Set this to TRUE to disallow a non-optimized user to hold person-to-person audio and video calls. Set this to FALSE to allow a non-optimized user to hold person-to-person audio and video calls. A user can still join a meeting and share screen from chat and join a meeting and share a screen and move their audio to a phone. + + Boolean + + Boolean + + + None + + + DisableCallsAndMeetings + + Determines whether a user on a non-optimized Vdi environment can make all types of calls. Set this to TRUE to disallow a non-optimized user to make calls, join meetings, and screen share from chat. Set this to FALSE to allow a non-optimized user to make calls, join meetings, and screen share from chat. + + Boolean + + Boolean + + + None + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + VDI2Optimization + + Determines whether a user can be VDI 2.0 optimized. * Enabled - allow a user to be VDI 2.0 optimized. + * Disabled - disallow a user to be VDI 2.0 optimized. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DisableAudioVideoInCallsAndMeetings + + Determines whether a user on a non-optimized Vdi environment can hold person-to-person audio and video calls. Set this to TRUE to disallow a non-optimized user to hold person-to-person audio and video calls. Set this to FALSE to allow a non-optimized user to hold person-to-person audio and video calls. A user can still join a meeting and share screen from chat and join a meeting and share a screen and move their audio to a phone. + + Boolean + + Boolean + + + None + + + DisableCallsAndMeetings + + Determines whether a user on a non-optimized Vdi environment can make all types of calls. Set this to TRUE to disallow a non-optimized user to make calls, join meetings, and screen share from chat. Set this to FALSE to allow a non-optimized user to make calls, join meetings, and screen share from chat. + + Boolean + + Boolean + + + None + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy being created. + + String + + String + + + None + + + VDI2Optimization + + Determines whether a user can be VDI 2.0 optimized. * Enabled - allow a user to be VDI 2.0 optimized. + * Disabled - disallow a user to be VDI 2.0 optimized. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsVdiPolicy -Identity RestrictedUserPolicy -VDI2Optimization "Disabled" + + The command shown in Example 1 uses the Set-CsTeamsVdiPolicy cmdlet to update an existing vdi policy with the Identity RestrictedUserPolicy. This policy will use all the existing values except one: VDI2Optimization; in this example, users with this policy can not be in VDI 2.0 optimized. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsVdiPolicy -Identity OnlyOptimizedPolicy -DisableAudioVideoInCallsAndMeetings $True -DisableCallsAndMeetings $True + + In Example 2, the Set-CsTeamsVdiPolicy cmdlet is used to update a Vdi policy with the Identity OnlyOptimizedPolicy. In this example two different property values are configured: DisableAudioVideoInCallsAndMeetings is set to True and DisableCallsAndMeetings is set to True. All other policy properties will use the existing values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cteamsvdipolicy + + + + + + Set-CsTeamsVirtualAppointmentsPolicy + Set + CsTeamsVirtualAppointmentsPolicy + + This cmdlet is used to update an instance of TeamsVirtualAppointmentsPolicy. + + + + Updates any of the properties of an existing instance of TeamsVirtualAppointmentsPolicy. + + + + Set-CsTeamsVirtualAppointmentsPolicy + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnableSmsNotifications + + > Applicable: Microsoft Teams + This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment template meeting. + + Boolean + + Boolean + + + True + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableSmsNotifications + + > Applicable: Microsoft Teams + This property specifies whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using a virtual appointment template meeting. + + Boolean + + Boolean + + + True + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the new policy instance to be created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS> Set-CsTeamsVirtualAppointmentsPolicy -Identity ExistingPolicyInstance -EnableSmsNotifications $false + + Updates the `EnableSmsNotifications` field of a given policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy + + + Get-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy + + + New-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy + + + Remove-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy + + + Grant-CsTeamsVirtualAppointmentsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy + + + + + + Set-CsTeamsVoiceApplicationsPolicy + Set + CsTeamsVoiceApplicationsPolicy + + Modifies an existing Teams voice applications policy. + + + + `TeamsVoiceApplicationsPolicy` is used for Supervisor Delegated Administration which allows admins in the organization to permit certain users to make changes to auto attendant and call queue configurations. + + + + Set-CsTeamsVoiceApplicationsPolicy + + Identity + + Unique identifier assigned to the policy when it was created. Teams voice applications policies can be assigned at the global scope or the per-user scope. To refer to the global instance, use this syntax: + -Identity global + To refer to a per-user policy, use syntax similar to this: + -Identity "SDA-Allow-All" + If you do not specify an Identity, then the `Set-CsTeamsVoiceApplicationsPolicy` cmdlet will modify the global policy. + + String + + String + + + None + + + AllowAutoAttendantAfterHoursGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantAfterHoursRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidayGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidayRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidaysChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantLanguageChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantTimeZoneChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. + + Boolean + + Boolean + + + False + + + AllowCallQueueAgentOptChange + + When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. + + Boolean + + Boolean + + + False + + + AllowCallQueueConferenceModeChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. + + Boolean + + Boolean + + + False + + + AllowCallQueueLanguageChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. + + Boolean + + Boolean + + + False + + + AllowCallQueueMembershipChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. + + Boolean + + Boolean + + + False + + + AllowCallQueueMusicOnHoldChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. + + Boolean + + Boolean + + + False + + + AllowCallQueueNoAgentSharedVoicemailGreetingChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueueNoAgentsRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueOptOutChange + + When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. + + Boolean + + Boolean + + + False + + + AllowCallQueueOverflowRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueuePresenceBasedRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + + Boolean + + Boolean + + + False + + + AllowCallQueueRoutingMethodChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + + Boolean + + Boolean + + + False + + + AllowCallQueueTimeoutRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueTimeoutSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueueWelcomeGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. + + Boolean + + Boolean + + + False + + + CallQueueAgentMonitorMode + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover + When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor call sessions. + When set to `Monitor`, users affected by the policy will be allowed to monitor and listen to call sessions. + When set to `Whisper`, users affected by the policy will be allowed to monitor call sessions and whisper to an agent in the call. + When set to `Barge`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, or join the call session. + When set to `Takeover`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, join the call session, or take over the call from an agent. + + Object + + Object + + + Disabled + + + CallQueueAgentMonitorNotificationMode + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Agent + When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor agents during call sessions. + When set to `Agent`, users affected by the policy will be allowed to monitor agents during call sessions. + + Object + + Object + + + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + HistoricalAgentMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. + + Object + + Object + + + None + + + HistoricalAutoAttendantMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. + + Object + + Object + + + None + + + HistoricalCallQueueMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. + + Object + + Object + + + None + + + RealTimeAgentMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAgentMetricsPermission set to `All` will not be able to access real-time metrics. + + Object + + Object + + + None + + + RealTimeAutoAttendantMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` will not be able to access real-time metrics. + + Object + + Object + + + None + + + RealTimeCallQueueMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` will not be able to access real-time metrics. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowAutoAttendantAfterHoursGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantAfterHoursRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's after-hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's after-hours call flow. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours schedule. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours schedule. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantBusinessHoursRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's business hours call flow. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's business hours call flow. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidayGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday greeting. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidayRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday call flows. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday call flows. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantHolidaysChange + + When set to `True`, users affected by the policy will be allowed to change the auto attendant's holiday schedules. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's holiday schedules. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantLanguageChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's language. + + Boolean + + Boolean + + + False + + + AllowAutoAttendantTimeZoneChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the auto attendant's time zone. When set to `False` (the default value), users affected by the policy won't be allowed to change the auto attendant's time zone. + + Boolean + + Boolean + + + False + + + AllowCallQueueAgentOptChange + + When set to `True`, users affected by the policy will be allowed to change an agent's opt-in status in the call queue. When set to `False` (the default value), users affected by the policy won't be allowed to change an agent's opt-in status in the call queue. + + Boolean + + Boolean + + + False + + + AllowCallQueueConferenceModeChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's conference mode. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's conference mode. + + Boolean + + Boolean + + + False + + + AllowCallQueueLanguageChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's language. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's language. + + Boolean + + Boolean + + + False + + + AllowCallQueueMembershipChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's users. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's users. + + Boolean + + Boolean + + + False + + + AllowCallQueueMusicOnHoldChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's music on hold information. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's music on hold. + + Boolean + + Boolean + + + False + + + AllowCallQueueNoAgentSharedVoicemailGreetingChange + + This feature is not currently available to authorized users. When set to `True`, users affected by the policy will be allowed to change the call queue's no agent shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no agent shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueueNoAgentsRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's no-agent handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's no-agent handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueOptOutChange + + When set to `True`, users affected by the policy will be allowed to change the call queue opt-out setting that allows agents to opt out of receiving calls. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue opt-out setting. + + Boolean + + Boolean + + + False + + + AllowCallQueueOverflowRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueOverflowSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's overflow shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's overflow shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueuePresenceBasedRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's presence-based routing option. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's presence-based routing option. + + Boolean + + Boolean + + + False + + + AllowCallQueueRoutingMethodChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's routing method. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's routing method. + + Boolean + + Boolean + + + False + + + AllowCallQueueTimeoutRoutingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout handling properties. + + Boolean + + Boolean + + + False + + + AllowCallQueueTimeoutSharedVoicemailGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's timeout shared voicemail greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout shared voicemail greeting. + + Boolean + + Boolean + + + False + + + AllowCallQueueWelcomeGreetingChange + + When set to `True`, users affected by the policy will be allowed to change the call queue's welcome greeting. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's welcome greeting. + + Boolean + + Boolean + + + False + + + CallQueueAgentMonitorMode + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Monitor | Whisper | Barge | Takeover + When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor call sessions. + When set to `Monitor`, users affected by the policy will be allowed to monitor and listen to call sessions. + When set to `Whisper`, users affected by the policy will be allowed to monitor call sessions and whisper to an agent in the call. + When set to `Barge`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, or join the call session. + When set to `Takeover`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, join the call session, or take over the call from an agent. + + Object + + Object + + + Disabled + + + CallQueueAgentMonitorNotificationMode + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | Agent + When set to `Disabled` (the default value), users affected by the policy won't be allowed to monitor agents during call sessions. + When set to `Agent`, users affected by the policy will be allowed to monitor agents during call sessions. + + Object + + Object + + + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + HistoricalAgentMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for agents who are members in the call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all agents in all call queues in the organization. + + Object + + Object + + + None + + + HistoricalAutoAttendantMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for auto attendants they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. + + Object + + Object + + + None + + + HistoricalCallQueueMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive historical metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive historical metrics for call queues they are authorized for. + When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. + + Object + + Object + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. Teams voice applications policies can be assigned at the global scope or the per-user scope. To refer to the global instance, use this syntax: + -Identity global + To refer to a per-user policy, use syntax similar to this: + -Identity "SDA-Allow-All" + If you do not specify an Identity, then the `Set-CsTeamsVoiceApplicationsPolicy` cmdlet will modify the global policy. + + String + + String + + + None + + + RealTimeAgentMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for agents. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for agents who are members in the call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAgentMetricsPermission set to `All` will not be able to access real-time metrics. + + Object + + Object + + + None + + + RealTimeAutoAttendantMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for auto attendants. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for auto attendants they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeAutoAttendantMetricsPermission set to `All` will not be able to access real-time metrics. + + Object + + Object + + + None + + + RealTimeCallQueueMetricsPermission + + > Applicable: Microsoft Teams + PARAMVALUE: Disabled | AuthorizedOnly | All + When set to `Disabled` (the default value), users affected by the policy won't receive real-time metrics for call queues. + When set to `AuthorizedOnly`, users affected by the policy will receive real-time metrics for call queues they are authorized for. + > [!IMPORTANT] > The `All` option is no longer supported. The parameter will be accepted and saved however any user assigned a policy with RealTimeCallQueueMetricsPermission set to `All` will not be able to access real-time metrics. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Set-CsTeamsVoiceApplicationsPolicy -Identity "SDA-CQ-OverflowGreeting" -AllowCallQueueOverflowSharedVoicemailGreetingChange $true + + The command shown in Example 1 sets allowing CQ overflow shared voicemail greeting changes to per-user Teams voice applications policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy + + + Get-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy + + + Grant-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy + + + Remove-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy + + + New-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy + + + + + + Set-CsTeamsWorkLocationDetectionPolicy + Set + CsTeamsWorkLocationDetectionPolicy + + This cmdlet is used to update an instance of TeamsWorkLocationDetectionPolicy. + + + + Updates any of the properties of an existing instance of TeamsWorkLocationDetectionPolicy. + + + + Set-CsTeamsWorkLocationDetectionPolicy + + Identity + + Name of the new policy instance to be updated. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EnableWorkLocationDetection + + This setting allows your organization to collect the work location of users when they connect, interact, or are detected near your organization's networks and devices. It also captures the geographic location information users share from personal and mobile devices. This gives users the ability to consent to the use of this location data to set their current work location.Microsoft collects this information to provide users with a consistent location-based experience and to improve the hybrid work experience in Microsoft 365 according to the Microsoft Privacy Statement (https://go.microsoft.com/fwlink/?LinkId=521839). + + Boolean + + Boolean + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EnableWorkLocationDetection + + This setting allows your organization to collect the work location of users when they connect, interact, or are detected near your organization's networks and devices. It also captures the geographic location information users share from personal and mobile devices. This gives users the ability to consent to the use of this location data to set their current work location.Microsoft collects this information to provide users with a consistent location-based experience and to improve the hybrid work experience in Microsoft 365 according to the Microsoft Privacy Statement (https://go.microsoft.com/fwlink/?LinkId=521839). + + Boolean + + Boolean + + + None + + + Force + + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Name of the new policy instance to be updated. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS> Set-CsTeamsWorkLocationDetectionPolicy -Identity ExistingPolicyInstance -EnableWorkLocationDetection $true + + Updates the `EnableWorkLocationDetection` field of a given policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy + + + Get-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy + + + New-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy + + + Remove-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy + + + Grant-CsTeamsWorkLocationDetectionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy + + + + \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml new file mode 100644 index 000000000000..8e88c0d023be --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml @@ -0,0 +1,7075 @@ + + + + + Add-TeamChannelUser + Add + TeamChannelUser + + Adds an owner or member to the private channel. + + + + The command will return immediately, but the Teams application will not reflect the update immediately. To see the update you should refresh the members page. + Note: Technical limitations of private channels apply. To add a user as a member to a channel, they need to first be a member of the team. To make a user an owner of a channel, they need to first be a member of the channel. + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://learn.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://learn.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Add-TeamChannelUser + + DisplayName + + Display name of the private channel + + String + + String + + + None + + + GroupId + + GroupId of the parent team + + String + + String + + + None + + + Role + + Owner + + String + + String + + + None + + + TenantId + + TenantId of the external user + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + + + + DisplayName + + Display name of the private channel + + String + + String + + + None + + + GroupId + + GroupId of the parent team + + String + + String + + + None + + + Role + + Owner + + String + + String + + + None + + + TenantId + + TenantId of the external user + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + + + + GroupId + + + + + + + + DisplayName + + + + + + + + User + + + + + + + + Role + + + + + + + + TenantId + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com + + Add user dmx@example.com to private channel with name "Engineering" under the given group. + + + + -------------------------- Example 2 -------------------------- + Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com -Role Owner + + Promote user dmx@example.com to an owner of private channel with name "Engineering" under the given group. + + + + -------------------------- Example 3 -------------------------- + Add-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User 0e4249a7-6cfd-8c93-a510-91cda44c8c73 -TenantId dcd143cb-c4ae-4364-9faf-e1c3242bf4ff + + Adds external user 0e4249a7-6cfd-8c93-a510-91cda44c8c73 to a shared channel. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/add-teamchanneluser + + + + + + Add-TeamUser + Add + TeamUser + + The `Add-TeamUser` adds an owner or member to the team, and to the unified group which backs the team. + + + + This cmdlet adds an owner or member to the team, and to the unified group which backs the team. + > [!Note] > The command will return immediately, but the Teams application will not reflect the update immediately. The change can take between 24 and 48 hours to appear within the Teams client. + + + + Add-TeamUser + + GroupId + + GroupId of the team. + + String + + String + + + None + + + Role + + Member or Owner. If Owner is specified then the user is also added as a member to the Team backed by unified group. + + String + + String + + + Member + + + User + + UPN of a user of the organization (user principal name - e.g. johndoe@example.com). + + String + + String + + + None + + + + + + GroupId + + GroupId of the team. + + String + + String + + + None + + + Role + + Member or Owner. If Owner is specified then the user is also added as a member to the Team backed by unified group. + + String + + String + + + Member + + + User + + UPN of a user of the organization (user principal name - e.g. johndoe@example.com). + + String + + String + + + None + + + + + + GroupId + + + + + + + + User + + + + + + + + Role + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Add-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com + + This example adds the user "dmx@example.com" to a group with the id "31f1ff6c-d48c-4f8a-b2e1-abca7fd399df". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/add-teamuser + + + + + + Get-AllM365TeamsApps + Get + AllM365TeamsApps + + This cmdlet returns all Microsoft Teams apps in the app catalog, including Microsoft, custom, and non-Microsoft apps. + + + + Get-AllM365TeamsApps retrieves a complete list of all Teams apps in an organization, their statuses, and their availability information. + + + + Get-AllM365TeamsApps + + + + + + + None + + + + + + + + + + System.Object + + + Id Application ID of the Teams app. IsBlocked The state of the app in the tenant. Values: + - Blocked + - Unblocked AvailableTo Provides available to properties for the app. Properties: + - AssignmentType: App availability type. Values: - Everyone - UsersandGroups - Noone - LastUpdatedTimestamp: Time and date when the app AvailableTo value was last updated. + - AssignedBy: UserID of the last user who updated the app available to value. InstalledFor Provides installation status for the app. Properties: + - AppInstallType: App availability type. Values: - Everyone - UsersandGroups - Noone - LastUpdatedTimestamp: Time and date when the app AvailableTo value was last updated. + - InstalledBy: UserID of the last user who installed the app available to value. + - InstalledSource: Source of Installation + - Version: Version of the app installed + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-AllM365TeamsApps + + Returns a complete list of all Teams apps in an organization, their statuses, and their availability information. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-AllM365TeamsApps | Select-Object -Property Id, IsBlocked, AvailableTo -ExpandProperty AvailableTo + + Returns a complete list of all Teams apps in an organization, their statuses, and their availability information in expanded format. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-AllM365TeamsApps | Select-Object -Property Id, IsBlocked, AvailableTo, InstalledFor -ExpandProperty InstalledFor + + Returns a complete list of all Teams apps in an organization, their statuses, their availability and their installation information in expanded format. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/Get-AllM365TeamsApps + + + Get-M365TeamsApp + https://learn.microsoft.com/powershell/module/microsoftteams/get-m365teamsapp + + + Update-M365TeamsApp + https://learn.microsoft.com/powershell/module/microsoftteams/get-m365teamsapp + + + + + + Get-AssociatedTeam + Get + AssociatedTeam + + This cmdlet supports retrieving all teams associated with a user, including teams which host shared channels. + + + + This cmdlet supports retrieving all associated teams of a user, including teams which host shared channels. + + + + Get-AssociatedTeam + + User + + User's UPN (user principal name, for example johndoe@example.com) or user ID (for example 0e4249a7-6cfd-8c93-a510-91cda44c8c73). + + String + + String + + + None + + + + + + User + + User's UPN (user principal name, for example johndoe@example.com) or user ID (for example 0e4249a7-6cfd-8c93-a510-91cda44c8c73). + + String + + String + + + None + + + + + + User + + + + + + + + + + Team + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-AssociatedTeam + + Returns associated teams of the current user. + + + + -------------------------- Example 2 -------------------------- + Get-AssociatedTeam -user example@example.com + + Returns associated teams of a given user email. + + + + -------------------------- Example 3 -------------------------- + Get-AssociatedTeam -user 0e4249a7-6cfd-8c93-a510-91cda44c8c73 + + Returns associated teams of a given user ID. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-associatedteam + + + Get-Team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team + + + Get-SharedWithTeam + https://learn.microsoft.com/powershell/module/microsoftteams/get-team + + + + + + Get-M365TeamsApp + Get + M365TeamsApp + + This cmdlet returns app availability and state for the Microsoft Teams app. + + + + Get-M365TeamsApps retrieves information about the Teams app. This includes app state, app availability, user who updated app availability, and the associated timestamp. + + + + Get-M365TeamsApp + + Id + + Application ID of the Teams app. + + String + + String + + + None + + + + + + Id + + Application ID of the Teams app. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + ID Application ID of the Teams app. IsBlocked The state of the app in the tenant. Values: + - Blocked + - Unblocked AvailableTo Provides available to properties for the app. Properties: + - AssignmentType: App availability type. Values: - Everyone - UsersandGroups - Noone - Users: List of all the users for whom the app is enabled. Values: - Id: GUID of UserIDs. - AssignedBy: UserID of last user who updated the app AvailableTo value. - LastUpdatedTimeStamp: Time and date when the app AvailableTo value was last updated. - Groups: List of all the groups for whom the app is enabled. Values: - Id: GUID of GroupIDs. - AssignedBy: UserID of last user who updated the app AvailableTo value. - LastUpdatedTimeStamp: Time and date when the app AvailableTo value was last updated. InstalledFor Provides installed for properties for the app. Properties: + - AppInstallType: App install type. Values: - Everyone - UsersandGroups - Noone - LastUpdatedTimestamp: Last Updated date + - InstalledBy: The user performing the installation + - InstalledSource: Source of installation + - Version: Version of the app installed + - InstallForUsers: List of all the users for whom the app is enabled. + Values: - Id: GUID of UserIDs. - AssignedBy: UserID of last user who updated the app AvailableTo value. - LastUpdatedTimeStamp: Time and date when the app AvailableTo value was last updated. - InstallForGroups: List of all the groups for whom the app is enabled. Values: - Id: GUID of GroupIDs. - AssignedBy: UserID of last user who updated the app AvailableTo value. - LastUpdatedTimeStamp: Time and date when the app AvailableTo value was last updated. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-M365TeamsApp -Id b782e2e8-9682-4898-b211-a304714f4f6b + + Provides information about b782e2e8-9682-4898-b211-a304714f4f6b app, which includes app state, app availability, user who updated app availability, and the associated timestamp. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365TeamsApp + + + Get-AllM365TeamsApps + https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps + + + Update-M365TeamsApp + https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps + + + + + + Get-M365UnifiedCustomPendingApps + Get + M365UnifiedCustomPendingApps + + This cmdlet returns all custom Microsoft Teams apps that are pending review from an IT Admin. + + + + Get-M365UnifiedCustomPendingApps retrieves a complete list of all custom Microsoft Teams apps that are pending review, and their review statuses. + + + + Get-M365UnifiedCustomPendingApps + + + + + + + None + + + + + + + + + + System.Object + + + - Id : Application ID of the Teams app. - ExternalId : External ID of the Teams app. - Iteration : The Staged App Definition Etag of the app. This is a unique tag created every time the staged app is updated, to help track changes. - CreatedBy : The User ID of the user that created the app. - LastUpdateDateTime : The date and time the app was last updated. - ReviewStatus : The review status of the app. Values: - PendingPublishing: A new custom app was requested that hasn't been published before. - PendingUpdate: An existing custom app that was previously published and now has an update. - Metadata : The metadata of the app. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-M365UnifiedCustomPendingApps + + Returns a complete list of all custom Microsoft Teams apps that are pending review, and their review statuses. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365UnifiedCustomPendingApps + + + + + + Get-M365UnifiedTenantSettings + Get + M365UnifiedTenantSettings + + This cmdlet returns the current tenant settings for a particular tenant + + + + Get-M365UnifiedTenantSettings retrieves the current tenant settings for a particular tenant. + + + + Get-M365UnifiedTenantSettings + + SettingNames + + Setting names requested. Possible values - DefaultApp,GlobalApp,PrivateApp,EnableCopilotExtensibility + + String + + String + + + None + + + + + + SettingNames + + Setting names requested. Possible values - DefaultApp,GlobalApp,PrivateApp,EnableCopilotExtensibility + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + SettingName Setting Name returned. SettingValue The status of this setting in the tenant. Values: + - All + - None + - Some (only applicable for EnableCopilotExtensibility) Users The list of users this setting is applicable to (only applicable for EnableCopilotExtensibility). Groups The list of groups this setting is applicable to (only applicable for EnableCopilotExtensibility). + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-M365UnifiedTenantSettings + + Returns all the current tenant settings for this tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-M365UnifiedTenantSettings -SettingNames DefaultApp + + Returns the current tenant setting for DefaultApp for this tenant. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-M365UnifiedTenantSettings -SettingNames DefaultApp,EnableCopilotExtensibility + + Returns the current tenant setting for DefaultApp and EnableCopilotExtensibility for this tenant. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365UnifiedTenantSettings + + + + + + Get-SharedWithTeam + Get + SharedWithTeam + + This cmdlet supports retrieving teams with which a specified channel is shared. + + + + This cmdlet supports retrieving teams with which a specified channel is shared. + + + + Get-SharedWithTeam + + ChannelId + + Thread ID of the shared channel. + + String + + String + + + None + + + HostTeamId + + Team ID of the host team (Group ID). + + String + + String + + + None + + + SharedWithTeamId + + Team ID of the shared with team. + + String + + String + + + None + + + + + + ChannelId + + Thread ID of the shared channel. + + String + + String + + + None + + + HostTeamId + + Team ID of the host team (Group ID). + + String + + String + + + None + + + SharedWithTeamId + + Team ID of the shared with team. + + String + + String + + + None + + + + + + HostTeamId + + + + + + + + ChannelId + + + + + + + + SharedWithTeamId + + + + + + + + + + Team + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-AssociatedTeam -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 + + Returns teams with which a specified channel is shared. + + + + -------------------------- Example 2 -------------------------- + Get-AssociatedTeam -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 +-SharedWithTeam d2aad370-c6ca-438b-b4d7-05f0aa911a7b + + Returns detail of a team with which a specified channel is shared. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-sharedwithteam + + + Get-Team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team + + + Get-AssociatedTeam + https://learn.microsoft.com/powershell/module/microsoftteams/get-team + + + + + + Get-SharedWithTeamUser + Get + SharedWithTeamUser + + This cmdlet supports retrieving users of a shared with team. + + + + This cmdlet supports retrieving users of a shared with team. + + + + Get-SharedWithTeamUser + + ChannelId + + Thread ID of the shared channel. + + String + + String + + + None + + + HostTeamId + + Team ID of the host team (Group ID). + + String + + String + + + None + + + Role + + Filters the results to only users with the given role of "Owner" or "Member". + + String + + String + + + None + + + SharedWithTeamId + + Team ID of the shared with team. + + String + + String + + + None + + + + + + ChannelId + + Thread ID of the shared channel. + + String + + String + + + None + + + HostTeamId + + Team ID of the host team (Group ID). + + String + + String + + + None + + + Role + + Filters the results to only users with the given role of "Owner" or "Member". + + String + + String + + + None + + + SharedWithTeamId + + Team ID of the shared with team. + + String + + String + + + None + + + + + + HostTeamId + + + + + + + + ChannelId + + + + + + + + SharedWithTeamId + + + + + + + + + + User + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-SharedWithTeamUser -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 +-SharedWithTeam d2aad370-c6ca-438b-b4d7-05f0aa911a7b + + Returns users of a team with which a specified channel is shared. + + + + -------------------------- Example 2 -------------------------- + Get-AssociatedTeam -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 +-SharedWithTeam d2aad370-c6ca-438b-b4d7-05f0aa911a7b -Role owner + + Returns owners of a team with which a specified channel is shared. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-sharedwithteamuser + + + Get-TeamUser + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamuser + + + + + + Get-Team + Get + Team + + Get Team information based on particular properties. + + + + This cmdlet supports retrieving teams with particular properties/information, including all teams that a specific user belongs to, all teams that have been archived, all teams with a specific display name, or all teams in the organization. + > [!NOTE] > Get-Team may return multiple results matching the input and not just the exact match for attributes like DisplayName/MailNickName. This is known behavior. + + + + Get-Team + + Archived + + If $true, filters to return teams that have been archived. If $false, filters to return teams that have not been archived. Do not specify any value to return teams that match filter regardless of archived state. This is a filter rather than an exact match. + + Boolean + + Boolean + + + None + + + DisplayName + + Specify this parameter to return teams with the provided display name as a filter. As the display name is not unique, multiple values can be returned. Note that this filter value is case-sensitive. + + String + + String + + + None + + + GroupId + + Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. + + String + + String + + + None + + + MailNickName + + Specify the mailnickname of the team that is being returned. This acts as a filter instead of being an exact match. + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Visibility + + Filters to return teams with a set "visibility" value. Accepted values are "Public", "Private" or "HiddenMembership". Do not specify any value to return teams that match filter regardless of visibility. This is a filter rather than an exact match. + + String + + String + + + None + + + + Get-Team + + Archived + + If $true, filters to return teams that have been archived. If $false, filters to return teams that have not been archived. Do not specify any value to return teams that match filter regardless of archived state. This is a filter rather than an exact match. + + Boolean + + Boolean + + + None + + + DisplayName + + Specify this parameter to return teams with the provided display name as a filter. As the display name is not unique, multiple values can be returned. Note that this filter value is case-sensitive. + + String + + String + + + None + + + MailNickName + + Specify the mailnickname of the team that is being returned. This acts as a filter instead of being an exact match. + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Visibility + + Filters to return teams with a set "visibility" value. Accepted values are "Public", "Private" or "HiddenMembership". Do not specify any value to return teams that match filter regardless of visibility. This is a filter rather than an exact match. + + String + + String + + + None + + + + Get-Team + + NumberOfThreads + + Specifies the number of threads to use. If you have sufficient network bandwidth and want to decrease the time required to retrieve the list of teams, use the -NumberOfThreads parameter, which supports a value from 1 through 20. + + Int32 + + Int32 + + + 20 + + + + + + Archived + + If $true, filters to return teams that have been archived. If $false, filters to return teams that have not been archived. Do not specify any value to return teams that match filter regardless of archived state. This is a filter rather than an exact match. + + Boolean + + Boolean + + + None + + + DisplayName + + Specify this parameter to return teams with the provided display name as a filter. As the display name is not unique, multiple values can be returned. Note that this filter value is case-sensitive. + + String + + String + + + None + + + GroupId + + Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. + + String + + String + + + None + + + MailNickName + + Specify the mailnickname of the team that is being returned. This acts as a filter instead of being an exact match. + + String + + String + + + None + + + NumberOfThreads + + Specifies the number of threads to use. If you have sufficient network bandwidth and want to decrease the time required to retrieve the list of teams, use the -NumberOfThreads parameter, which supports a value from 1 through 20. + + Int32 + + Int32 + + + 20 + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + Visibility + + Filters to return teams with a set "visibility" value. Accepted values are "Public", "Private" or "HiddenMembership". Do not specify any value to return teams that match filter regardless of visibility. This is a filter rather than an exact match. + + String + + String + + + None + + + + + + UPN + + + + + + + + UserID + + + + + + + + + + Team + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS> Get-Team -User dmx1@example.com + + Returns all teams that a user (dmx1@example.com) belongs to + + + + -------------------------- Example 2 -------------------------- + PS> Get-Team -Archived $true -Visibility Private + + Returns all teams that are private and have been archived. + + + + -------------------------- Example 3 -------------------------- + PS> Get-Team -MailNickName "BusinessDevelopment" + + Returns the team with the specified MailNickName. (This acts as a filter rather than an exact match.) + + + + -------------------------- Example 4 -------------------------- + PS> Get-Team -DisplayName "Sales and Marketing" + + Returns the team that includes the specified text in its DisplayName. (This acts as a filter rather than an exact match). + + + + -------------------------- Example 5 -------------------------- + PS> $team=[uri]::EscapeDataString('AB&C') +PS> Get-Team -DisplayName $team + + Returns the team that includes the specified escaped representation of its DisplayName, useful when the DisplayName has special characters. (This acts as a filter rather than an exact match.) + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-team + + + New-Team + https://learn.microsoft.com/powershell/module/microsoftteams/new-team + + + Set-Team + https://learn.microsoft.com/powershell/module/microsoftteams/set-team + + + + + + Get-TeamAllChannel + Get + TeamAllChannel + + This cmdlet supports retrieving all channels of a team, including incoming channels and channels hosted by the team. + + + + This cmdlet supports retrieving all channels of a team, including incoming channels and channels hosted by the team. + + + + Get-TeamAllChannel + + GroupId + + Returns the Group ID of the team. + + String + + String + + + None + + + MembershipType + + Membership type of the channel to display; Standard, Private, or Shared + + String + + String + + + None + + + + + + GroupId + + Returns the Group ID of the team. + + String + + String + + + None + + + MembershipType + + Membership type of the channel to display; Standard, Private, or Shared + + String + + String + + + None + + + + + + GroupId + + + + + + + + MembershipType + + + + + + + + + + Channel + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamAllChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 + + Returns all channels of a team. + + + + -------------------------- Example 2 -------------------------- + Get-TeamAllChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -MembershipType Shared + + Returns all shared channels of a team. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamallchannel + + + Get-TeamChannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel + + + Get-TeamIncomingChannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel + + + + + + Get-TeamChannel + Get + TeamChannel + + This cmdlet supports retrieving channels hosted by a team. + + + + This cmdlet supports retrieving channels hosted by a team. + + + + Get-TeamChannel + + GroupId + + GroupId of the team + + String + + String + + + None + + + MembershipType + + Membership type of the channel to display, Standard or Private (available in private preview) + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + MembershipType + + Membership type of the channel to display, Standard or Private (available in private preview) + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamChannel -GroupId af55e84c-dc67-4e48-9005-86e0b07272f9 + + Get channels of the group. + + + + -------------------------- Example 2 -------------------------- + Get-TeamChannel -GroupId af55e84c-dc67-4e48-9005-86e0b07272f9 -MembershipType Private + + Get all private channels of the group. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel + + + + + + Get-TeamChannelUser + Get + TeamChannelUser + + Returns users of a channel. + + + + Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://learn.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://learn.microsoft.com/microsoftteams/teams-powershell-release-notes). + + + + Get-TeamChannelUser + + DisplayName + + Display name of the channel + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + Filter the results to only users with the given role: Owner or Member. + + String + + String + + + None + + + + + + DisplayName + + Display name of the channel + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + Filter the results to only users with the given role: Owner or Member. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamChannelUser -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Engineering" -Role Owner + + Get owners of channel with display name as "Engineering" + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchanneluser + + + + + + Get-TeamIncomingChannel + Get + TeamIncomingChannel + + This cmdlet supports retrieving incoming channels of a team. + + + + This cmdlet supports retrieving incoming channels of a team. + + + + Get-TeamIncomingChannel + + GroupId + + Group ID of the team + + String + + String + + + None + + + + + + GroupId + + Group ID of the team + + String + + String + + + None + + + + + + GroupId + + + + + + + + + + Channel + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamIncomingChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 + + Returns incoming channels of a team. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamincomingchannel + + + Get-TeamChannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel + + + Get-TeamAllChannel + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel + + + + + + Get-TeamsApp + Get + TeamsApp + + Returns app information from the Teams tenant app store. + + + + Use any optional parameter to retrieve app information from the Teams tenant app store. + + + + Get-TeamsApp + + DisplayName + + Name of the app visible to users + + String + + String + + + None + + + DistributionMethod + + The type of app in Teams: global or organization. For LOB apps, use "organization" + + String + + String + + + None + + + ExternalId + + The external ID of the app, provided by the app developer and used by Microsoft Entra ID + + String + + String + + + None + + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + DisplayName + + Name of the app visible to users + + String + + String + + + None + + + DistributionMethod + + The type of app in Teams: global or organization. For LOB apps, use "organization" + + String + + String + + + None + + + ExternalId + + The external ID of the app, provided by the app developer and used by Microsoft Entra ID + + String + + String + + + None + + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 + + + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-TeamsApp -ExternalId b00080be-9b31-4927-9e3e-fa8024a7d98a -DisplayName <String>] [-DistributionMethod <String>] + + + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-TeamsApp -DisplayName SampleApp -DistributionMethod organization + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamsapp + + + + + + Get-TeamTargetingHierarchyStatus + Get + TeamTargetingHierarchyStatus + + Get the status of a hierarchy upload (see Set-TeamTargetingHierarchy (https://learn.microsoft.com/powershell/module/microsoftteams/set-teamtargetinghierarchy)) + + + + The `Get-TeamTargetingHierarchyStatus` cmdlet retrieves the status of a hierarchy upload initiated by the `Set-TeamTargetingHierarchy` cmdlet. It provides information about the success or failure of the upload, including any errors encountered during the process. + + + + Get-TeamTargetingHierarchyStatus + + ApiVersion + + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + + String + + String + + + 1 + + + RequestId + + Specifies the ID returned by the Set-TeamTargetingHierarchy cmdlet. This parameter is optional and the status of the most recent upload will be retrieved. + + String + + String + + + None + + + + + + ApiVersion + + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + + String + + String + + + 1 + + + RequestId + + Specifies the ID returned by the Set-TeamTargetingHierarchy cmdlet. This parameter is optional and the status of the most recent upload will be retrieved. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-TeamTargetingHierarchy -FilePath d:\hier.csv + +Key Value +--- ----- +requestId c67e86109d88479e9708c3b7e8ff7217 + +PS C:\> Get-TeamTargetingHierarchyStatus -RequestId c67e86109d88479e9708c3b7e8ff7217 + +# When an error occurs, you will see the details in the ErrorMessage field. + +Id : c67e86109d88479e9708c3b7e8ff7217 +Status : Failed +LastKnownStatus : Validating +ErrorMessage : 1 error(s) were found. + Error: InvalidTeamId + Descriptions: + TeamID in row 2 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. + TeamID in row 3 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. + TeamID in row 4 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. + TeamID in row 5 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. + TeamID in row 6 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. + TeamID in row 7 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. + +LastUpdatedAt : 2021-02-17T22:28:08.7832795+00:00 +LastModifiedBy : a145d7eb-b70d-4591-9455-6c87382a22b7 +FileName : hier1.csv + +# When the hierarchy uploads and parses successfully, you will see this status. + +Id : c67e86109d88479e9708c3b7e8ff7217 +Status : Successful +LastKnownStatus : +ErrorMessage : +LastUpdatedAt : 2021-02-17T22:48:41.6664097+00:00 +LastModifiedBy : a145d7eb-b70d-4591-9455-6c87382a22b7 +FileName : hier.csv + + Prompts for user credentials to connect and manage a Microsoft Teams environment. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamtargetinghierarchystatus + + + Set-TeamTargetingHierarchy + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamtargetinghierarchy + + + + + + Get-TeamUser + Get + TeamUser + + Returns users of a team. + + + + Returns an array containing the UPN, UserId, Name and Role of users belonging to an specific GroupId. + + + + Get-TeamUser + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + Filter the results to only users with the given role: Owner or Member. + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + Filter the results to only users with the given role: Owner or Member. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-TeamUser -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -Role Owner + + This example returns the UPN, UserId, Name, and Role of the owners of the specified GroupId. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamuser + + + + + + New-Team + New + Team + + This cmdlet lets you provision a new Team for use in Microsoft Teams and will create an O365 Unified Group to back the team. + + + + Creates a new team with user specified settings, and returns a Group object with a GroupID property. + Groups created through teams cmdlets, APIs, or clients will not show up in Outlook by default. + If you want these groups to appear in Outlook clients, you can use the Set-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/set-unifiedgroup) cmdlet in the Exchange Powershell Module to disable the switch parameter `HiddenFromExchangeClientsEnabled` (-HiddenFromExchangeClientsEnabled:$false). + Note: The Teams application may need to be open by an Owner for up to two hours before changes are reflected. + + + + New-Team + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + True + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + True + + + AllowCreatePrivateChannels + + Determines whether private channel creation is allowed for the team. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + True + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + True + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + True + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + True + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + False + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + False + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + True + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + True + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + True + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + True + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + True + + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Characters Limit - 256. + + String + + String + + + None + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + Moderate + + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. Note: If Microsoft 365 groups naming policies are enabled in your tenant, this parameter is required and must also comply with the naming policy. + For more details about the naming conventions see here: New-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/new-unifiedgroup#parameters), Parameter: -Alias. + + String + + String + + + None + + + Owner + + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. + + String + + String + + + None + + + RetainCreatedGroup + + Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. + + + SwitchParameter + + + False + + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + True + + + Template + + If you have an EDU license, you can use this parameter to specify which template you'd like to use for creating your group. Do not use this parameter when converting an existing group. + Valid values are: "EDU_Class" or "EDU_PLC" + + String + + String + + + None + + + Visibility + + Set to Public to allow all users in your organization to join the group by default. Set to Private to require that an owner approve the join request. + + String + + String + + + Private + + + + New-Team + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + True + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + True + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + True + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + True + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + True + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + False + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + False + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + True + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + True + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + True + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + True + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + True + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + Moderate + + + GroupId + + Specify a GroupId to convert to a Team. If specified, you cannot provide the other values that are already specified by the existing group, namely: Visibility, Alias, Description, or DisplayName. If, for example, you need to create a Team from an existing Microsoft 365 Group, use the ExternalDirectoryObjectId property value returned by Get-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/get-unifiedgroup). + + String + + String + + + None + + + Owner + + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. + + String + + String + + + None + + + RetainCreatedGroup + + Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. + + + SwitchParameter + + + False + + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + True + + + + + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + True + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + True + + + AllowCreatePrivateChannels + + Determines whether private channel creation is allowed for the team. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + True + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + True + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + True + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + True + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + True + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + False + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + False + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + True + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + True + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + True + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + True + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + True + + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Characters Limit - 256. + + String + + String + + + None + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + Moderate + + + GroupId + + Specify a GroupId to convert to a Team. If specified, you cannot provide the other values that are already specified by the existing group, namely: Visibility, Alias, Description, or DisplayName. If, for example, you need to create a Team from an existing Microsoft 365 Group, use the ExternalDirectoryObjectId property value returned by Get-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/get-unifiedgroup). + + String + + String + + + None + + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. Note: If Microsoft 365 groups naming policies are enabled in your tenant, this parameter is required and must also comply with the naming policy. + For more details about the naming conventions see here: New-UnifiedGroup (https://learn.microsoft.com/powershell/module/exchangepowershell/new-unifiedgroup#parameters), Parameter: -Alias. + + String + + String + + + None + + + Owner + + An admin who is allowed to create on behalf of another user should use this flag to specify the desired owner of the group. This user will be added as both a member and an owner of the group. If not specified, the user who creates the team will be added as both a member and an owner. Please note: This parameter is mandatory, if connected using Certificate Based Authentication. + + String + + String + + + None + + + RetainCreatedGroup + + Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. + + SwitchParameter + + SwitchParameter + + + False + + + ShowInTeamsSearchAndSuggestions + + Setting that determines whether or not private teams should be searchable from Teams clients for users who do not belong to that team. Set to $false to make those teams not discoverable from Teams clients. + + Boolean + + Boolean + + + True + + + Template + + If you have an EDU license, you can use this parameter to specify which template you'd like to use for creating your group. Do not use this parameter when converting an existing group. + Valid values are: "EDU_Class" or "EDU_PLC" + + String + + String + + + None + + + Visibility + + Set to Public to allow all users in your organization to join the group by default. Set to Private to require that an owner approve the join request. + + String + + String + + + Private + + + + + + + GroupId + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-Team -DisplayName "Tech Reads" + + This example creates a team with all parameters with their default values. + + + + -------------------------- Example 2 -------------------------- + New-Team -DisplayName "Tech Reads" -Description "Team to post technical articles and blogs" -Visibility Public + + This example creates a team with a specific description and public visibility. + + + + -------------------------- Example 3 -------------------------- + $group = New-Team -MailNickname "TestTeam" -displayname "Test Teams" -Visibility "private" +Add-TeamUser -GroupId $group.GroupId -User "fred@example.com" +Add-TeamUser -GroupId $group.GroupId -User "john@example.com" +Add-TeamUser -GroupId $group.GroupId -User "wilma@example.com" +New-TeamChannel -GroupId $group.GroupId -DisplayName "Q4 planning" +New-TeamChannel -GroupId $group.GroupId -DisplayName "Exec status" +New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" + + This example creates a team, adds three members to it, and creates three channels within it. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-team + + + Remove-Team + https://learn.microsoft.com/powershell/module/microsoftteams/remove-team + + + Get-Team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team + + + Set-Team + https://learn.microsoft.com/powershell/module/microsoftteams/set-team + + + + + + New-TeamChannel + New + TeamChannel + + Add a new channel to a team. + + + + Add a new channel to a team. + + + + New-TeamChannel + + Description + + Channel description. Channel description can be up to 1024 characters. + + String + + String + + + None + + + DisplayName + + Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + MembershipType + + Channel membership type, Standard, Shared, or Private. + + String + + String + + + None + + + Owner + + UPN of owner that can be specified while creating a private channel. + + String + + String + + + None + + + + + + Description + + Channel description. Channel description can be up to 1024 characters. + + String + + String + + + None + + + DisplayName + + Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + MembershipType + + Channel membership type, Standard, Shared, or Private. + + String + + String + + + None + + + Owner + + UPN of owner that can be specified while creating a private channel. + + String + + String + + + None + + + + + + GroupId + + + + + + + + DisplayName + + + + + + + + Description + + + + + + + + MembershipType + + + + + + + + Owner + + + + + + + + + + Id + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Architecture" + + Create a standard channel with display name as "Architecture" + + + + -------------------------- Example 2 -------------------------- + New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Engineering" -MembershipType Private + + Create a private channel with display name as "Engineering" + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-teamchannel + + + + + + New-TeamsApp + New + TeamsApp + + Creates a new app in the Teams tenant app store. + + + + Use a Teams app manifest zip file to upload an app to the tenant app store. DistributionMethod specifies that the app should be added to the organization. + + + + New-TeamsApp + + DistributionMethod + + The type of app in Teams: global or organization. For LOB apps, use "organization" + + String + + String + + + None + + + Path + + The local path of the app manifest zip file, for use in New and Set + + String + + String + + + None + + + + + + DistributionMethod + + The type of app in Teams: global or organization. For LOB apps, use "organization" + + String + + String + + + None + + + Path + + The local path of the app manifest zip file, for use in New and Set + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-TeamsApp -DistributionMethod organization -Path c:\Path\SampleApp.zip + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-teamsapp + + + + + + Remove-SharedWithTeam + Remove + SharedWithTeam + + This cmdlet supports unsharing a channel with a team. + + + + This cmdlet supports unsharing a channel with a team. + + + + Remove-SharedWithTeam + + ChannelId + + Thread ID of the shared channel. + + String + + String + + + None + + + HostTeamId + + Team ID of the host team (Group ID). + + String + + String + + + None + + + SharedWithTeamId + + Team ID of the shared with team. + + String + + String + + + None + + + + + + ChannelId + + Thread ID of the shared channel. + + String + + String + + + None + + + HostTeamId + + Team ID of the host team (Group ID). + + String + + String + + + None + + + SharedWithTeamId + + Team ID of the shared with team. + + String + + String + + + None + + + + + + HostTeamId + + + + + + + + ChannelId + + + + + + + + SharedWithTeamId + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-SharedWithTeam -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 +-SharedWithTeam d2aad370-c6ca-438b-b4d7-05f0aa911a7b + + Unshares a channel with a team. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-sharedwithteam + + + Remove-Team + https://learn.microsoft.com/powershell/module/microsoftteams/remove-team + + + + + + Remove-Team + Remove + Team + + This cmdlet deletes a specified Team from Microsoft Teams. + NOTE: The associated Office 365 Unified Group will also be removed. + + + + Removes a specified team via GroupID and all its associated components, like O365 Unified Group... + + + + Remove-Team + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-Team -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-team + + + New-Team + https://learn.microsoft.com/powershell/module/microsoftteams/new-team + + + + + + Remove-TeamChannel + Remove + TeamChannel + + Delete a channel. + + + + This will not delete content in associated tabs. + Note: The channel will be "soft deleted", meaning the contents are not permanently deleted for a time. So a subsequent call to Add-TeamChannel using the same channel name will fail if enough time has not passed. + > [!IMPORTANT] > Modules in the PS INT gallery for Microsoft Teams run on the /beta version in Microsoft Graph and are subject to change. Int modules can be install from here `https://www.poshtestgallery.com/packages/MicrosoftTeams`. + + + + Remove-TeamChannel + + DisplayName + + Channel name to be deleted + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + DisplayName + + Channel name to be deleted + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-TeamChannel -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Tech Reads" + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamchannel + + + + + + Remove-TeamChannelUser + Remove + TeamChannelUser + + Removes a user from a channel in Microsoft Teams. + + + + > [!NOTE] > This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](/microsoftteams/teams-powershell-release-notes). + The command will return immediately, but the Teams application will not reflect the update immediately, please refresh the members page to see the update. + To turn an existing Owner into a Member, specify role parameter as Owner. + > [!NOTE] > Last owner cannot be removed from the private channel. + + + + Remove-TeamChannelUser + + DisplayName + + Display name of the private channel + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + Use this to demote a user from owner to member of the team + + String + + String + + + None + + + User + + User's email address (e.g. johndoe@example.com) + + String + + String + + + None + + + + + + DisplayName + + Display name of the private channel + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + Use this to demote a user from owner to member of the team + + String + + String + + + None + + + User + + User's email address (e.g. johndoe@example.com) + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-TeamChannelUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -DisplayName "Engineering" -User dmx@example.com + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamchanneluser + + + + + + Remove-TeamsApp + Remove + TeamsApp + + Removes an app in the Teams tenant app store. + + + + Removes an app in the Teams tenant app store. + + + + Remove-TeamsApp + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamsapp + + + + + + Remove-TeamTargetingHierarchy + Remove + TeamTargetingHierarchy + + Removes the tenant's hierarchy. + + + + Removes the tenant's hierarchy. + + + + Remove-TeamTargetingHierarchy + + ApiVersion + + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + + String + + String + + + 1 + + + + + + ApiVersion + + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + + String + + String + + + 1 + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-TeamTargetingHierarchy + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams + + + Set-TeamTargetingHierarchy + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamtargetinghierarchy + + + + + + Remove-TeamUser + Remove + TeamUser + + Remove an owner or member from a team, and from the unified group which backs the team. + + + + Note: The command will return immediately, but the Teams application will not reflect the update immediately. The Teams application may need to be open for up to an hour before changes are reflected. + Note: The last owner cannot be removed from the team. + + + + Remove-TeamUser + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + If cmdlet is called with -Role parameter as "Owner", the specified user is removed as an owner of the team but stays as a team member. + If cmdlet is called with -Role parameter as "Member", the specified user will be removed as an owner and member. + Note: The last owner cannot be removed from the team. + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + Role + + If cmdlet is called with -Role parameter as "Owner", the specified user is removed as an owner of the team but stays as a team member. + If cmdlet is called with -Role parameter as "Member", the specified user will be removed as an owner and member. + Note: The last owner cannot be removed from the team. + + String + + String + + + None + + + User + + User's UPN (user principal name - e.g. johndoe@example.com) + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com -Role Owner + + In this example, the user "dmx" is removed the role Owner but stays as a team member. + + + + -------------------------- Example 2 -------------------------- + Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com + + In this example, the user "dmx" is removed from the team. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamuser + + + + + + Set-Team + Set + Team + + This cmdlet allows you to update properties of a team, including its displayname, description, and team-specific settings. + + + + This cmdlet allows you to update properties of a team, including its displayname, description, and team-specific settings. This cmdlet includes all settings that used to be set using the Set-TeamFunSettings, Set-TeamGuestSettings, etc. cmdlets + + + + Set-Team + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + None + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + None + + + AllowCreatePrivateChannels + + Determines whether private channel creation is allowed for the team. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + None + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + None + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + None + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + None + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + None + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + None + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + None + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + None + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + None + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + None + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + None + + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Team Description Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Team Name Characters Limit - 256. + + String + + String + + + None + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. + + String + + String + + + None + + + ShowInTeamsSearchAndSuggestions + + The parameter has been deprecated. + + Boolean + + Boolean + + + None + + + Visibility + + Team visibility. Valid values are "Private" and "Public" + + String + + String + + + None + + + + + + AllowAddRemoveApps + + Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. + + Boolean + + Boolean + + + None + + + AllowChannelMentions + + Boolean value that determines whether or not channels in the team can be @ mentioned so that all users who follow the channel are notified. + + Boolean + + Boolean + + + None + + + AllowCreatePrivateChannels + + Determines whether private channel creation is allowed for the team. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateChannels + + Setting that determines whether or not members (and not just owners) are allowed to create channels. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateRemoveConnectors + + Setting that determines whether or not members (and not only owners) can manage connectors in the team. + + Boolean + + Boolean + + + None + + + AllowCreateUpdateRemoveTabs + + Setting that determines whether or not members (and not only owners) can manage tabs in channels. + + Boolean + + Boolean + + + None + + + AllowCustomMemes + + Setting that determines whether or not members can use the custom memes functionality in teams. + + Boolean + + Boolean + + + None + + + AllowDeleteChannels + + Setting that determines whether or not members (and not only owners) can delete channels in the team. + + Boolean + + Boolean + + + None + + + AllowGiphy + + Setting that determines whether or not giphy can be used in the team. + + Boolean + + Boolean + + + None + + + AllowGuestCreateUpdateChannels + + Setting that determines whether or not guests can create channels in the team. + + Boolean + + Boolean + + + None + + + AllowGuestDeleteChannels + + Setting that determines whether or not guests can delete in the team. + + Boolean + + Boolean + + + None + + + AllowOwnerDeleteMessages + + Setting that determines whether or not owners can delete messages that they or other members of the team have posted. + + Boolean + + Boolean + + + None + + + AllowStickersAndMemes + + Setting that determines whether stickers and memes usage is allowed in the team. + + Boolean + + Boolean + + + None + + + AllowTeamMentions + + Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) + + Boolean + + Boolean + + + None + + + AllowUserDeleteMessages + + Setting that determines whether or not members can delete messages that they have posted. + + Boolean + + Boolean + + + None + + + AllowUserEditMessages + + Setting that determines whether or not users can edit messages that they have posted. + + Boolean + + Boolean + + + None + + + Classification + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Description + + Team description. Team Description Characters Limit - 1024. + + String + + String + + + None + + + DisplayName + + Team display name. Team Name Characters Limit - 256. + + String + + String + + + None + + + GiphyContentRating + + Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + MailNickName + + The MailNickName parameter specifies the alias for the associated Office 365 Group. This value will be used for the mail enabled object and will be used as PrimarySmtpAddress for this Office 365 Group. The value of the MailNickName parameter has to be unique across your tenant. + + String + + String + + + None + + + ShowInTeamsSearchAndSuggestions + + The parameter has been deprecated. + + Boolean + + Boolean + + + None + + + Visibility + + Team visibility. Valid values are "Private" and "Public" + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-Team -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Updated TeamName" -Visibility Public + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-team + + + Get-Team + https://learn.microsoft.com/powershell/module/microsoftteams/get-team + + + New-Team + https://learn.microsoft.com/powershell/module/microsoftteams/new-team + + + + + + Set-TeamArchivedState + Set + TeamArchivedState + + This cmdlet is used to freeze all of the team activity, but Teams Administrators and team owners will still be able to add or remove members and update roles. You can unarchive the team anytime. + + + + This cmdlet is used to freeze all of the team activity and also specify whether SharePoint site should be marked as Read-Only. Teams administrators and team owners will still be able to add or remove members and update roles. You can unarchive the team anytime. + + + + Set-TeamArchivedState + + Archived + + Boolean value that determines whether or not the Team is archived. + + Boolean + + Boolean + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + SetSpoSiteReadOnlyForMembers + + Use this parameter switch to make the SharePoint site read-only for team members. + + Boolean + + Boolean + + + None + + + + + + Archived + + Boolean value that determines whether or not the Team is archived. + + Boolean + + Boolean + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + SetSpoSiteReadOnlyForMembers + + Use this parameter switch to make the SharePoint site read-only for team members. + + Boolean + + Boolean + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$true + + This example sets the group with id 105b16e2-dc55-4f37-a922-97551e9e862d as archived + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$true -SetSpoSiteReadOnlyForMembers:$true + + This example sets the group with id 105b16e2-dc55-4f37-a922-97551e9e862d as archived and makes the SharePoint site read-only for team members. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$false + + This example unarchives the group with id 105b16e2-dc55-4f37-a922-97551e9e862d. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamarchivedstate + + + + + + Set-TeamChannel + Set + TeamChannel + + Update Team channels settings. + + + + > [!IMPORTANT] > Modules in the PS INT gallery for Microsoft Teams run on the /beta version in Microsoft Graph and are subject to change. Int modules can be install from here `https://www.poshtestgallery.com/packages/MicrosoftTeams`. + + + + Set-TeamChannel + + CurrentDisplayName + + Current channel name + + String + + String + + + None + + + Description + + Updated Channel description. Channel Description Characters Limit - 1024. + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + NewDisplayName + + New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + + String + + String + + + None + + + + + + CurrentDisplayName + + Current channel name + + String + + String + + + None + + + Description + + Updated Channel description. Channel Description Characters Limit - 1024. + + String + + String + + + None + + + GroupId + + GroupId of the team + + String + + String + + + None + + + NewDisplayName + + New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-TeamChannel -GroupId c58566a6-4bb4-4221-98d4-47677dbdbef6 -CurrentDisplayName TechReads -NewDisplayName "Technical Reads" + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamchannel + + + + + + Set-TeamPicture + Set + TeamPicture + + Update the team picture. + + + + Note: the command will return immediately, but the Teams application will not reflect the update immediately. The Teams application may need to be open for up to an hour before changes are reflected. + Note: this cmdlet is not support in special government environments (TeamsGCCH and TeamsDoD) and is currently only supported in our beta release. + + + + Set-TeamPicture + + GroupId + + GroupId of the team + + String + + String + + + None + + + ImagePath + + File path and image ( .png, .gif, .jpg, or .jpeg) + + String + + String + + + None + + + + + + GroupId + + GroupId of the team + + String + + String + + + None + + + ImagePath + + File path and image ( .png, .gif, .jpg, or .jpeg) + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-TeamPicture -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -ImagePath c:\Image\TeamPicture.png + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-teampicture + + + + + + Set-TeamsApp + Set + TeamsApp + + Updates an app in the Teams tenant app store. + + + + Use a Teams app manifest zip file to upload an app to the tenant app store. + + + + Set-TeamsApp + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + Path + + The local path of the app manifest zip file, for use in New and Set + + String + + String + + + None + + + + + + Id + + The app's ID generated by Teams (different from the external ID) + + String + + String + + + None + + + Path + + The local path of the app manifest zip file, for use in New and Set + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -Path c:\Path\SampleApp.zip + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsapp + + + + + + Set-TeamTargetingHierarchy + Set + TeamTargetingHierarchy + + Upload a hierarchy to the tenant. A tenant may only have 1 active hierarchy. Each Set-TeamTargetingHierarchy cmdlet call will overwrite the previous one. + + + + A sample CSV file uses the following format: + `TargetName,ParentName,TeamId,Location:Clothing,Location:Jewelry,#Bucket1,#Bucket2`<br>`Apogee,,A8A6626F-87B3-4B8A-9469-47BCD1174673,0,0`<br>`New Jersey,Apogee,06763207-4F56-4DFE-96AE-4C7F9ADCFB43,0,0`<br>`Basking Ridge,NewJersey,5F44CC65-9521-4F7F-9099-64320153CA07,1,0`<br>`Mountain Lakes,NewJersey,58A21379-8E4D-4DA5-AA35-9CC188D8A998,0,1` + Based on the CSV file, the following hierarchy is created: + - Apogee + - &nbsp;&nbsp;&nbsp;New Jersey + - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basking Ridge + - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mountain Lakes + + + + Set-TeamTargetingHierarchy + + ApiVersion + + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + + String + + String + + + 1 + + + FilePath + + Specifies the path to a CSV file that defines the hierarchy. + + String + + String + + + None + + + + + + ApiVersion + + The version of the Hierarchy APIs to use. Valid values are: 1 or 2. + Currently only available in preview from version 6.6.1-preview. Specifying "-ApiVersion 2" will direct cmdlet requests to the newer version of the Hierarchy APIs. This integration is currently in preview/beta mode so customers should not try it on their production workloads but are welcome to try it on test workloads. This is an optional parameter and not specifying it will be interpreted as specifying "-ApiVersion 1", which will continue to direct cmdlet requests to the original version of the Hierarchy APIs until we upgrade production to v2, at which time we will set the default to 2. We do not expect this to have any impact on your cmdlet usage or existing scripts. + + String + + String + + + 1 + + + FilePath + + Specifies the path to a CSV file that defines the hierarchy. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-TeamTargetingHierarchy -FilePath d:\hier.csv + +Key Value +--- ----- +requestId c67e86109d88479e9708c3b7e8ff7217 + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams + + + Get-TeamTargetingHierarchyStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-teamtargetinghierarchystatus + + + + + + Update-M365TeamsApp + Update + M365TeamsApp + + This cmdlet updates app state and app available values for the Microsoft Teams app. + + + + This cmdlet allows administrators to modify app state, availability and installation status by adding or removing users and groups or changing assignment type or installation status. + + + + Update-M365TeamsApp + + AppAssignmentType + + App availability type. + + String + + String + + + None + + + AppInstallType + + App installation type. + + String + + String + + + None + + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Id + + Application ID of Microsoft Teams app. + + String + + String + + + None + + + InstallForGroups + + List of all the groups for whom the app is installed. + + String[] + + String[] + + + None + + + InstallForUsers + + List of all the users for whom the app is installed. + + String[] + + String[] + + + None + + + InstallVersion + + App version to be installed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365TeamsApp + + AppAssignmentType + + App availability type. + + String + + String + + + None + + + AppInstallType + + App installation type. + + String + + String + + + None + + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Id + + Application ID of Microsoft Teams app. + + String + + String + + + None + + + InstallForGroups + + List of all the groups for whom the app is installed. + + String[] + + String[] + + + None + + + InstallForUsers + + List of all the users for whom the app is installed. + + String[] + + String[] + + + None + + + InstallVersion + + App version to be installed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365TeamsApp + + AppAssignmentType + + App availability type. + + String + + String + + + None + + + AppInstallType + + App installation type. + + String + + String + + + None + + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Id + + Application ID of Microsoft Teams app. + + String + + String + + + None + + + InstallForGroups + + List of all the groups for whom the app is installed. + + String[] + + String[] + + + None + + + InstallForUsers + + List of all the users for whom the app is installed. + + String[] + + String[] + + + None + + + InstallVersion + + App version to be installed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365TeamsApp + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Id + + Application ID of Microsoft Teams app. + + String + + String + + + None + + + InstallForGroups + + List of all the groups for whom the app is installed. + + String[] + + String[] + + + None + + + InstallForOperationType + + Operation performed on the app installation. + + String + + String + + + None + + + InstallForUsers + + List of all the users for whom the app is installed. + + String[] + + String[] + + + None + + + InstallVersion + + App version to be installed. + + String + + String + + + None + + + OperationType + + Operation performed on the app assigment. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365TeamsApp + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Id + + Application ID of Microsoft Teams app. + + String + + String + + + None + + + InstallForGroups + + List of all the groups for whom the app is installed. + + String[] + + String[] + + + None + + + InstallForOperationType + + Operation performed on the app installation. + + String + + String + + + None + + + InstallForUsers + + List of all the users for whom the app is installed. + + String[] + + String[] + + + None + + + InstallVersion + + App version to be installed. + + String + + String + + + None + + + OperationType + + Operation performed on the app assigment. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365TeamsApp + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Id + + Application ID of Microsoft Teams app. + + String + + String + + + None + + + InstallForGroups + + List of all the groups for whom the app is installed. + + String[] + + String[] + + + None + + + InstallForUsers + + List of all the users for whom the app is installed. + + String[] + + String[] + + + None + + + InstallVersion + + App version to be installed. + + String + + String + + + None + + + IsBlocked + + The state of the app in the tenant. + + Boolean + + Boolean + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365TeamsApp + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Id + + Application ID of Microsoft Teams app. + + String + + String + + + None + + + InstallForGroups + + List of all the groups for whom the app is installed. + + String[] + + String[] + + + None + + + InstallForUsers + + List of all the users for whom the app is installed. + + String[] + + String[] + + + None + + + InstallVersion + + App version to be installed. + + String + + String + + + None + + + IsBlocked + + The state of the app in the tenant. + + Boolean + + Boolean + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + + + AppAssignmentType + + App availability type. + + String + + String + + + None + + + AppInstallType + + App installation type. + + String + + String + + + None + + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Id + + Application ID of Microsoft Teams app. + + String + + String + + + None + + + InstallForGroups + + List of all the groups for whom the app is installed. + + String[] + + String[] + + + None + + + InstallForOperationType + + Operation performed on the app installation. + + String + + String + + + None + + + InstallForUsers + + List of all the users for whom the app is installed. + + String[] + + String[] + + + None + + + InstallVersion + + App version to be installed. + + String + + String + + + None + + + IsBlocked + + The state of the app in the tenant. + + Boolean + + Boolean + + + None + + + OperationType + + Operation performed on the app assigment. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Update-M365TeamsApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -AppAssignmentType Everyone + + Updates the availability value for Bookings app (App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b) to Everyone. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Update-M365TeamsApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -IsBlocked $true -AppAssignmentType UsersAndGroups -OperationType Add -Users eec823bd-0979-4cf8-9924-85bb6ffcb57d, eec823bd-0979-4cf8-9924-85bb6ffcb57e -Groups 37da2d58-fc14-453e-9a14-5065ebd63a1d, 37da2d58-fc14-453e-9a14-5065ebd63a1e, 37da2d58-fc14-453e-9a14-5065ebd63a1b, 37da2d58-fc14-453e-9a14-5065ebd63a1f, 37da2d58-fc14-453e-9a14-5065ebd63a1a + + Unblocks CSP Customer App (App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b) and updates availability setting for the app to include 2 users and 5 groups. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Update-M365TeamsApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -IsBlocked $true + + Unblocks Bookings app (App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b). + + + + -------------------------- Example 4 -------------------------- + PS C:\> Update-M365TeamsApp -Id 2b876f4d-2e6b-4ee7-9b09-8893808c1380 -IsBlocked $false -AppInstallType UsersAndGroups -InstallForOperationType Add -InstallForUsers 77f5d400-a12e-4168-8e63-ccd2243d33a8,f2f4d8bc-1fb3-4292-867e-6d19efb0eb7c,37b6fc6a-32a4-4767-ac2e-c2f2307bad5c -InstallForGroups 926d57ad-431c-4e6a-9e16-347eacc91aa4 -InstallVersion 4.1.2 + + Unblocks 1Page App (App ID 2b876f4d-2e6b-4ee7-9b09-8893808c1380) and updates installation setting for the app to include 3 users and 1 group. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/Update-M365TeamsApp + + + Get-AllM365TeamsApps + https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps + + + Get-M365TeamsApp + https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps + + + + + + Update-M365UnifiedCustomPendingApp + Update + M365UnifiedCustomPendingApp + + This cmdlet updates the review status for a custom Microsoft Teams app that is pending review from an IT Admin. The requester to publish the custom app will not be notified when this cmdlet is completed. + + + + This cmdlet allows administrators to reject or publish custom Microsoft Teams apps that are pending review from an IT Admin. + + + + Update-M365UnifiedCustomPendingApp + + Id + + Application ID of the Teams app. + + String + + String + + + None + + + ReviewStatus + + The review status of the Teams app. + + String + + String + + + None + + + + Update-M365UnifiedCustomPendingApp + + Id + + Application ID of the Teams app. + + String + + String + + + None + + + ReviewStatus + + The review status of the Teams app. + + String + + String + + + None + + + + + + Id + + Application ID of the Teams app. + + String + + String + + + None + + + ReviewStatus + + The review status of the Teams app. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + ## RELATED LINKS + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Update-M365UnifiedCustomPendingApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -ReviewStatus Published + + Updates the review status for the custom pending app with App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b to Published. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Update-M365UnifiedCustomPendingApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -ReviewStatus Rejected + + Updates the review status for the custom pending app with App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b to Rejected. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/Update-M365UnifiedCustomPendingApp + + + + + + Update-M365UnifiedTenantSettings + Update + M365UnifiedTenantSettings + + This cmdlet updates tenant settings. + + + + This cmdlet allows administrators to modify tenant settings. + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Operation + + Operation performed (whether we are adding or removing users/groups). + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Operation + + Operation performed (whether we are adding or removing users/groups). + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + SettingName + + Setting Name to be changed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + SettingName + + Setting Name to be changed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + SettingName + + Setting Name to be changed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + SettingName + + Setting Name to be changed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + SettingValue + + Setting Value to be changed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + SettingValue + + Setting Value to be changed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + Update-M365UnifiedTenantSettings + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + SettingValue + + Setting Value to be changed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + + + Groups + + List of all the groups for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + Operation + + Operation performed (whether we are adding or removing users/groups). + + String + + String + + + None + + + SettingName + + Setting Name to be changed. + + String + + String + + + None + + + SettingValue + + Setting Value to be changed. + + String + + String + + + None + + + Users + + List of all the users for whom the app is enabled or disabled. + + String[] + + String[] + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> PS C:\> Update-M365UnifiedTenantSettings -SettingName EnableCopilotExtensibility -SettingValue Some -Users d156010d-fb18-497f-804c-155ec2aa06d3,a62fba7e-e362-493c-a094-fdec17e2fee8 -Groups 37da2d58-fc14-453e-9a14-5065ebd63a1d, 37da2d58-fc14-453e-9a14-5065ebd63a1e -Operation add + + Updates the tenant setting for EnableCopilotExtensibility to 2 users and 2 groups. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Update-M365UnifiedTenantSettings -SettingName GlobalApp -SettingValue None + + Updates the tenant setting for GlobalApp to None + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/Update-M365UnifiedTenantSettings + + + + \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml new file mode 100644 index 000000000000..7ac73b087926 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml @@ -0,0 +1,1199 @@ + + + + + Clear-TeamsEnvironmentConfig + Clear + TeamsEnvironmentConfig + + Clears environment-specific configurations from the local machine set by running Set-TeamsEnvironmentConfig. + + + + This cmdlet clears environment-specific configurations from the local machine set by running Set-TeamsEnvironmentConfig. This helps in clearing and rectifying any wrong information set in Set-TeamsEnvironmentConfig. + + + + Clear-TeamsEnvironmentConfig + + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + We do not recommend using Clear-TeamsEnvironmentConfig in Commercial, GCC, GCC High, or DoD environments. This cmdlet is available in Microsoft Teams PowerShell module from version 5.2.0-GA. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Clear-TeamsEnvironmentConfig + + Clears environment-specific configurations from the local machine set by running Set-TeamsEnvironmentConfig. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/clear-teamsenvironmentconfig + + + + + + Connect-MicrosoftTeams + Connect + MicrosoftTeams + + The Connect-MicrosoftTeams cmdlet connects an authenticated account for use with cmdlets from the MicrosoftTeams module. + + + + The Connect-MicrosoftTeams cmdlet connects to Microsoft Teams with an authenticated account for use with cmdlets from the MicrosoftTeams PowerShell module. After executing this cmdlet, you can disconnect from MicrosoftTeams account using Disconnect-MicrosoftTeams. Note : With versions 4.x.x or later, enablement of basic authentication is not needed anymore in commercial, GCC, GCC High, and DoD environments. + + + + Connect-MicrosoftTeams + + AccessTokens + + Specifies access tokens for "MS Graph" and "Skype and Teams Tenant Admin API" resources. Both the tokens used should be of the same type. + - Application-based authentication has been reintroduced with version 4.7.1-preview. For details and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). + - Delegated flow - The following steps must be performed by Tenant Admin in the Azure portal when using your own application. + Steps to configure the Microsoft Entra application. 1. Go to Azure portal and go to App Registrations. 2. Create or select the existing application. 3. Add the following permission to this Application. 4. Click API permissions. 5. Click Add a permission. 6. Click on the Microsoft Graph, and then select Delegated permissions. 7. Add the following permissions: "AppCatalog.ReadWrite.All", "Group.ReadWrite.All", "User.Read.All", "TeamSettings.ReadWrite.All", "Channel.Delete.All", "ChannelSettings.ReadWrite.All", "ChannelMember.ReadWrite.All". 8. Next, we need to add "Skype and Teams Tenant Admin API" resource permission. Click Add a permission. 9. Navigate to "APIs my organization uses" 10. Search for "Skype and Teams Tenant Admin API", and then select Delegated permissions. 11. Add all the listed permissions. 12. Grant admin consent to both Microsoft Graph and "Skype and Teams Tenant Admin API" name. + + String[] + + String[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + LogFilePath + + The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. + + String + + String + + + None + + + LogLevel + + Specifies the log level. The acceptable values for this parameter are: + - Info + - Error + - Warning + - None + + The default value is Info. + + LogLevel + + LogLevel + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Connect-MicrosoftTeams + + AadAccessToken (Removed from version 2.3.2-preview) + + Specifies an Azure Active Directory Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + LogFilePath + + The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. + + String + + String + + + None + + + LogLevel + + Specifies the log level. The acceptable values for this parameter are: + - Info + - Error + - Warning + - None + + The default value is Info. + + LogLevel + + LogLevel + + + None + + + MsAccessToken (Removed from version 2.3.2-preview) + + Specifies a Microsoft Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. + + String + + String + + + None + + + TenantId + + Specifies the ID of a tenant. + If you do not specify this parameter, the account is authenticated with the home tenant. + You must specify the TenantId parameter to authenticate as a service principal or when using Microsoft account. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Connect-MicrosoftTeams + + AccountId + + Specifies the ID of an account. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type Get-Help Get-Credential. + The PSCredential object provides the user ID and password for organizational ID credentials. + + PSCredential + + PSCredential + + + None + + + LogFilePath + + The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. + + String + + String + + + None + + + LogLevel + + Specifies the log level. The acceptable values for this parameter are: + - Info + - Error + - Warning + - None + + The default value is Info. + + LogLevel + + LogLevel + + + None + + + TeamsEnvironmentName + + Specifies the Teams environment. The following environments are supported: + - Commercial or GCC environments: Don't use this parameter, this is the default. - GCC High environment: TeamsGCCH - DoD environment: TeamsDOD - Microsoft Teams operated by 21Vianet: TeamsChina + + String + + String + + + None + + + TenantId + + Specifies the ID of a tenant. + If you do not specify this parameter, the account is authenticated with the home tenant. + You must specify the TenantId parameter to authenticate as a service principal or when using Microsoft account. + + String + + String + + + None + + + UseDeviceAuthentication + + Use device code authentication instead of a browser control. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Connect-MicrosoftTeams + + ApplicationId + + Specifies the application ID of the service principal that is used in application-based authentication. + This parameter has been reintroduced with version 4.7.1-preview. For more information about Application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). + + String + + String + + + None + + + Certificate + + Specifies the certificate that is used for application-based authentication. A valid value is the X509Certificate2 object value of the certificate. + This parameter has been introduced with version 4.9.2-preview. For more information about application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). + + X509Certificate2 + + X509Certificate2 + + + None + + + CertificateThumbprint + + Specifies the certificate thumbprint of a digital public key X.509 certificate of an application that has permission to perform this action. + This parameter has been reintroduced with version 4.7.1-preview. For more information about Application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + LogFilePath + + The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. + + String + + String + + + None + + + LogLevel + + Specifies the log level. The acceptable values for this parameter are: + - Info + - Error + - Warning + - None + + The default value is Info. + + LogLevel + + LogLevel + + + None + + + TenantId + + Specifies the ID of a tenant. + If you do not specify this parameter, the account is authenticated with the home tenant. + You must specify the TenantId parameter to authenticate as a service principal or when using Microsoft account. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Connect-MicrosoftTeams + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Identity + + Login using managed service identity in the current environment. For *-Cs cmdlets, this is supported from version 5.8.1-preview onwards. + > [!Note] > This is currently only supported in commercial environments. A few cmdlets (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication#cmdlets-supported)that don't support application-based authentication are not supported either. + + + SwitchParameter + + + False + + + LogFilePath + + The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. + + String + + String + + + None + + + LogLevel + + Specifies the log level. The acceptable values for this parameter are: + - Info + - Error + - Warning + - None + + The default value is Info. + + LogLevel + + LogLevel + + + None + + + ManagedServiceHostName + + Host name for managed service login. + + String + + String + + + None + + + ManagedServicePort + + Port number for managed service login. + + Int32 + + Int32 + + + None + + + ManagedServiceSecret + + Secret, used for some kinds of managed service login. + + SecureString + + SecureString + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AccessTokens + + Specifies access tokens for "MS Graph" and "Skype and Teams Tenant Admin API" resources. Both the tokens used should be of the same type. + - Application-based authentication has been reintroduced with version 4.7.1-preview. For details and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). + - Delegated flow - The following steps must be performed by Tenant Admin in the Azure portal when using your own application. + Steps to configure the Microsoft Entra application. 1. Go to Azure portal and go to App Registrations. 2. Create or select the existing application. 3. Add the following permission to this Application. 4. Click API permissions. 5. Click Add a permission. 6. Click on the Microsoft Graph, and then select Delegated permissions. 7. Add the following permissions: "AppCatalog.ReadWrite.All", "Group.ReadWrite.All", "User.Read.All", "TeamSettings.ReadWrite.All", "Channel.Delete.All", "ChannelSettings.ReadWrite.All", "ChannelMember.ReadWrite.All". 8. Next, we need to add "Skype and Teams Tenant Admin API" resource permission. Click Add a permission. 9. Navigate to "APIs my organization uses" 10. Search for "Skype and Teams Tenant Admin API", and then select Delegated permissions. 11. Add all the listed permissions. 12. Grant admin consent to both Microsoft Graph and "Skype and Teams Tenant Admin API" name. + + String[] + + String[] + + + None + + + AadAccessToken (Removed from version 2.3.2-preview) + + Specifies an Azure Active Directory Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. + + String + + String + + + None + + + AccountId + + Specifies the ID of an account. + + String + + String + + + None + + + ApplicationId + + Specifies the application ID of the service principal that is used in application-based authentication. + This parameter has been reintroduced with version 4.7.1-preview. For more information about Application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). + + String + + String + + + None + + + Certificate + + Specifies the certificate that is used for application-based authentication. A valid value is the X509Certificate2 object value of the certificate. + This parameter has been introduced with version 4.9.2-preview. For more information about application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). + + X509Certificate2 + + X509Certificate2 + + + None + + + CertificateThumbprint + + Specifies the certificate thumbprint of a digital public key X.509 certificate of an application that has permission to perform this action. + This parameter has been reintroduced with version 4.7.1-preview. For more information about Application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type Get-Help Get-Credential. + The PSCredential object provides the user ID and password for organizational ID credentials. + + PSCredential + + PSCredential + + + None + + + Identity + + Login using managed service identity in the current environment. For *-Cs cmdlets, this is supported from version 5.8.1-preview onwards. + > [!Note] > This is currently only supported in commercial environments. A few cmdlets (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication#cmdlets-supported)that don't support application-based authentication are not supported either. + + SwitchParameter + + SwitchParameter + + + False + + + LogFilePath + + The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. + + String + + String + + + None + + + LogLevel + + Specifies the log level. The acceptable values for this parameter are: + - Info + - Error + - Warning + - None + + The default value is Info. + + LogLevel + + LogLevel + + + None + + + ManagedServiceHostName + + Host name for managed service login. + + String + + String + + + None + + + ManagedServicePort + + Port number for managed service login. + + Int32 + + Int32 + + + None + + + ManagedServiceSecret + + Secret, used for some kinds of managed service login. + + SecureString + + SecureString + + + None + + + MsAccessToken (Removed from version 2.3.2-preview) + + Specifies a Microsoft Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. + + String + + String + + + None + + + TeamsEnvironmentName + + Specifies the Teams environment. The following environments are supported: + - Commercial or GCC environments: Don't use this parameter, this is the default. - GCC High environment: TeamsGCCH - DoD environment: TeamsDOD - Microsoft Teams operated by 21Vianet: TeamsChina + + String + + String + + + None + + + TenantId + + Specifies the ID of a tenant. + If you do not specify this parameter, the account is authenticated with the home tenant. + You must specify the TenantId parameter to authenticate as a service principal or when using Microsoft account. + + String + + String + + + None + + + UseDeviceAuthentication + + Use device code authentication instead of a browser control. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + ------------- Example 1: Connect to MicrosoftTeams ------------- + Connect-MicrosoftTeams +Account Environment Tenant TenantId +------- ----------- ------------------------------------ ------------------------------------ +user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + + + + + + ------------- Example 2: Connect to MicrosoftTeams ------------- + $credential = Get-Credential +Connect-MicrosoftTeams -Credential $credential +Account Environment Tenant TenantId +------- ----------- ------------------------------------ ------------------------------------ +user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + + + + + + Example 3: Connect to MicrosoftTeams in a specific environment + Connect-MicrosoftTeams -TeamsEnvironmentName TeamsGCCH +Account Environment Tenant TenantId +------- ----------- ------------------------------------ ------------------------------------ +user@contoso.com TeamsGCCH xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + + + + + + Example 4: Connect to MicrosoftTeams using a certificate thumbprint + Connect-MicrosoftTeams -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" + + + + + + Example 5: Connect to MicrosoftTeams using a certificate object + $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\exampleCert.pfx",$password) +Connect-MicrosoftTeams -Certificate $cert -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" + + + + + + Example 6: Connect to MicrosoftTeams using Application-based Access Tokens + $ClientSecret = "..." +$ApplicationID = "00000000-0000-0000-0000-000000000000" +$TenantID = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" + +$graphtokenBody = @{ + Grant_Type = "client_credentials" + Scope = "https://graph.microsoft.com/.default" + Client_Id = $ApplicationID + Client_Secret = $ClientSecret +} + +$graphToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $graphtokenBody | Select-Object -ExpandProperty Access_Token + +$teamstokenBody = @{ + Grant_Type = "client_credentials" + Scope = "48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default" + Client_Id = $ApplicationID + Client_Secret = $ClientSecret +} + +$teamsToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $teamstokenBody | Select-Object -ExpandProperty Access_Token + +Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken") + + + + + + Example 7: Connect to MicrosoftTeams using Access Tokens in the delegated flow + $ClientID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +$ClientSecret = "..." +$ClientSecret = [Net.WebUtility]::URLEncode($ClientSecret) +$TenantID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +$Username = "user@contoso.onmicrosoft.com" +$Password = "..." +$Password = [Net.WebUtility]::URLEncode($Password) + +$URI = "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" +$Body = "client_id=$ClientID&client_secret=$ClientSecret&grant_type=password&username=$Username&password=$Password" +$RequestParameters = @{ + URI = $URI + Method = "POST" + ContentType = "application/x-www-form-urlencoded" +} +$GraphToken = (Invoke-RestMethod @RequestParameters -Body "$Body&scope=https://graph.microsoft.com/.default").access_token +$TeamsToken = (Invoke-RestMethod @RequestParameters -Body "$Body&scope=48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default").access_token +Connect-MicrosoftTeams -AccessTokens @($GraphToken, $TeamsToken) + +Account Environment Tenant TenantId +------- ----------- ------------------------------------ ------------------------------------ +user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams + + + + + + Disconnect-MicrosoftTeams + Disconnect + MicrosoftTeams + + + + + + + + + + Disconnect-MicrosoftTeams + + Confirm + + Proactively accepts any confirmation prompts. + + + SwitchParameter + + + False + + + WhatIf + + Simulates what would happen if the cmdlet is run. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Proactively accepts any confirmation prompts. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Simulates what would happen if the cmdlet is run. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Disconnect-MicrosoftTeams + + Disconnects from the Microsoft Teams environment. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/disconnect-microsoftteams + + + + + + Set-TeamsEnvironmentConfig + Set + TeamsEnvironmentConfig + + Sets environment-specific configurations on the local machine and is used to connect to the right environment when running Connect-MicrosoftTeams. + + + + This cmdlet sets environment-specific configurations like endpoint URIs(such as Microsoft Entra ID and Microsoft Graph) and Teams environment (such as GCCH and DOD) on the local machine. + When running Connect-MicrosoftTeams, environment-specific information set in this cmdlet will be considered unless overridden by Connect-MicrosoftTeams parameters. + Parameters passed to Connect-MicrosoftTeams will take precedence over the information set by this cmdlet. + Clear-TeamsEnvironmentConfig should not be used in Commercial, GCC, GCC High, or DoD environments. + + + + Set-TeamsEnvironmentConfig + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + EndpointUris + + Provides custom endpoints. + + Hashtable + + Hashtable + + + None + + + TeamsEnvironmentName + + Provides a Teams environment to connect to, for example, Teams GCCH or Teams DoD. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + EndpointUris + + Provides custom endpoints. + + Hashtable + + Hashtable + + + None + + + TeamsEnvironmentName + + Provides a Teams environment to connect to, for example, Teams GCCH or Teams DoD. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + Set-TeamsEnvironmentConfig should not be used in Commercial, GCC, GCC High, or DoD environments. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-TeamsEnvironmentConfig -TeamsEnvironmentName TeamsChina + + Sets the environment as Gallatin China on a local machine and when Connect-MicrosoftTeams is run, authentication will happen in the Gallatin China cloud and Microsoft Teams module will connect to the Gallatin environment. + + + + -------------------------- Example 2 -------------------------- + $endPointUriDict = @{ActiveDirectory = 'https://login.microsoftonline.us/';MsGraphEndpointResourceId = 'https://graph.microsoft.us'} +Set-TeamsEnvironmentConfig -TeamsEnvironmentName $endPointUriDict + + Sets endpoint URIs required for special clouds. + + + + -------------------------- Example 3 -------------------------- + Set-TeamsEnvironmentConfig -TeamsEnvironmentName TeamsChina + +$cred=get-credential +Move-CsUser -Identity "PilarA@contoso.com" -Target "sipfed.online.lync.com" -Credential $cred + + This cmdlet is mainly introduced to support Skype for Business to Microsoft Teams user migration using Move-CsUser. + This example shows how tenant admins can run Move-CsUser in Gallatin and other special clouds after setting the environment configuration using Set-TeamsEnvironmentConfig. + Note that Set-TeamsEnvironmentConfig needs to be run only once for each machine. There is no need to run it each time before running Move-CsUser. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsenvironmentconfig + + + + \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml new file mode 100644 index 000000000000..93998357f5db --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml @@ -0,0 +1,108606 @@ + + + + + Clear-CsOnlineTelephoneNumberOrder + Clear + CsOnlineTelephoneNumberOrder + + Use the `Clear-CsOnlineTelephoneNumberOrder` cmdlet to cancel a specific telephone number search order and release the telephone numbers. The telephone numbers can then be available for search and acquire. + + + + Use the `Clear-CsOnlineTelephoneNumberOrder` cmdlet to cancel a specific telephone number search order and release the telephone numbers. The telephone numbers can then be available for search and acquire. + + + + Clear-CsOnlineTelephoneNumberOrder + + OrderId + + Specifies the telephone number search order to look up. Use `New-CsOnlineTelephoneNumberOrder` to create a search order to obtain a search order Id. + + String + + String + + + None + + + + + + OrderId + + Specifies the telephone number search order to look up. Use `New-CsOnlineTelephoneNumberOrder` to create a search order to obtain a search order Id. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Clear-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 +PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 + +AreaCode : +CivicAddressId : +CountryCode : US +CreatedAt : 8/23/2021 5:43:44 PM +Description : test +ErrorCode : NoError +Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 +InventoryType : Subscriber +IsManual : False +Name : test +NumberPrefix : 1718 +NumberType : UserSubscriber +Quantity : 1 +ReservationExpiryDate : 8/23/2021 5:59:45 PM +SearchType : Prefix +SendToServiceDesk : False +Status : Cancelled +TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} + +PS C:\> $order.TelephoneNumber + +Location TelephoneNumber +-------- --------------- +New York City +17182000004 + + This example cancels the purchase of the telephone number order containing the phone number +17182000004. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberCountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry + + + Get-CsOnlineTelephoneNumberType + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype + + + New-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder + + + Complete-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder + + + Clear-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder + + + + + + Complete-CsOnlineTelephoneNumberOrder + Complete + CsOnlineTelephoneNumberOrder + + Use the `Complete-CsOnlineTelephoneNumberOrder` cmdlet to complete a specific telephone number search order and confirm the purchase of the new telephone numbers. The telephone numbers can then be used to set up calling features for users and services in your organization. + + + + Use the `Complete-CsOnlineTelephoneNumberOrder` cmdlet to complete a specific telephone number search order and confirm the purchase of the new telephone numbers. The telephone numbers can then be used to set up calling features for users and services in your organization. + + + + Complete-CsOnlineTelephoneNumberOrder + + OrderId + + Specifies the telephone number search order to look up. Use `New-CsOnlineTelephoneNumberOrder` to create a search order to obtain a search order Id. + + String + + String + + + None + + + + + + OrderId + + Specifies the telephone number search order to look up. Use `New-CsOnlineTelephoneNumberOrder` to create a search order to obtain a search order Id. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Complete-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 +PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 | fl + +AreaCode : +CivicAddressId : +CountryCode : US +CreatedAt : 8/23/2021 5:43:44 PM +Description : test +ErrorCode : NoError +Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 +InventoryType : Subscriber +IsManual : False +Name : test +NumberPrefix : 1718 +NumberType : UserSubscriber +Quantity : 1 +ReservationExpiryDate : 8/23/2021 5:59:45 PM +SearchType : Prefix +SendToServiceDesk : False +Status : Completed +TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} + +PS C:\> (Get-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912).TelephoneNumber + +Location TelephoneNumber +-------- --------------- +New York City +17182000004 + + This example completes the purchase of the telephone number order containing the phone number +17182000004. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberCountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry + + + Get-CsOnlineTelephoneNumberType + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype + + + New-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder + + + Complete-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder + + + Clear-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder + + + + + + Disable-CsOnlineSipDomain + Disable + CsOnlineSipDomain + + This cmdlet prevents provisioning of users in Skype for Business Online for the specified domain. + + + + This cmdlet allows organizations with multiple on-premises deployments of Skype For Business Server or Lync Server to safely synchronize users from multiple forests into a single Office 365 tenant. + Note: Only one Skype for Business forest can be in hybrid mode at a given time. For full details on this scenario, including step-by-step instructions, see Cloud consolidation for Teams and Skype for Business (https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation). + This cmdlet enables organizations with multiple on-premises deployments of Skype for Business Server (or Lync Server) to safely synchronize users from multiple forests into a single Office 365 tenant. When an online SIP domain is disabled in Skype for Business Online, provisioning is blocked for users in this SIP domain. This ensures routing for any on-premises users in this SIP domain continues to function properly. + This cmdlet facilitates consolidation of multiple Skype for Business Server deployments into a single Office 365 tenant. Consolidation can be achieved by moving one deployment at a time into Office 365, provided the following key requirements are met : + - There must be at most 1 O365 tenant involved. Consolidation in scenarios with >1 O365 tenant is not supported. + - At any given time, only 1 on-premises SfB forest can be in hybrid mode (Shared Sip Address Space) with Office 365. All other on-premises SfB forests must remain on-premises. (They presumably are federated with each other.) + - If 1 deployment is in hybrid mode, all sip domains from any other SfB forests must be disabled using this cmdlet before they can be synchronized into the tenant with Microsoft Entra Connect. Users in all SfB forests other than the hybrid forest must remain on-premises. + - Organizations must fully migrate each SfB forest individually into the O365 tenant using hybrid mode (Shared Sip Address Space), and then detach the "hybrid" deployment, before moving on to migrate the next on-premises SfB deployment. + This cmdlet may also be useful for organizations with on-premises deployments of Skype for Business Server that have not properly configured Microsoft Entra Connect. If the organization does not sync msRTCSIP-DeploymentLocator for its users, then Skype for Business Online will attempt to provision online any users with an assigned Skype for Business license, despite there being users on-premises. While the correct fix is to update the configuration for Microsoft Entra Connect to sync those attributes, using Disable-CsOnlineSipDomain can also mitigate the problem until that configuration change can be made. If this cmdlet is run, any users that were previously provisioned online in that domain will be de-provisioned in Skype for Business Online. + Important: This cmdlet should not be run for domains that contain users hosted in Skype for Business Online. Any users in a sip domain that are already provisioned online will cease to function if you disable the online sip domain: - Their SIP addresses will be removed. + - All contacts and meetings for these users hosted in Skype for Business Online will be deleted. + - These users will no longer be able to login to the Skype for Business Online environment. + - If these users use Teams, they will no longer be able to inter-operate with Skype for Business users, nor will they be able to federate with any users in other organizations. + + Note: If the Tenant is enabled for Regionally Hosted Meetings in Skype for Business Online, Online SIP Domains must be disabled in all regions. You must execute this cmdlet in each region that is added in Allowed Data Location. + + + + Disable-CsOnlineSipDomain + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Domain + + > Applicable: Microsoft Teams + The SIP domain to be disabled for online provisioning in Skype for Business Online. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses all confirmation prompts that might occur when running the command. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Domain + + > Applicable: Microsoft Teams + The SIP domain to be disabled for online provisioning in Skype for Business Online. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses all confirmation prompts that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + None + + + + + + + + + This cmdlet is for advanced scenarios only. Organizations that are pure online or have only 1 on-premises deployment need not run this cmdlet. + + + + + -------------------------- Example 1 -------------------------- + Disable-CsOnlineSipDomain -Domain Fabrikam.com + + The cmdlet above disables the online sip domain Fabrikam.com. This would be useful in the case where a company, Contoso.com, that has Skype for Business acquires Fabrikam, which also has an on-premises deployment of Skype for Business Server. If Contoso is in hybrid mode with Skype for Business Online or if the intent is to configure it for hybrid, then if the organization wants to synchronize identities from Fabrikam.com into the same O365 tenant, the organization must first run this cmdlet. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain + + + Enable-CsOnlineSipDomain + https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain + + + Get-CsOnlineSipDomain + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain + + + Cloud consolidation for Teams and Skype for Business + https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation + + + + + + Disable-CsTeamsShiftsConnectionErrorReport + Disable + CsTeamsShiftsConnectionErrorReport + + This cmdlet disables an error report. + + + + Note: This cmdlet is currently in public preview. + This cmdlet disables an error report. All available instances can be found by running Get-CsTeamsShiftsConnectionErrorReport (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport). + + + + Disable-CsTeamsShiftsConnectionErrorReport + + ErrorReportId + + > Applicable: Microsoft Teams + The ID of the error report that you want to disable. + + String + + String + + + None + + + + + + ErrorReportId + + > Applicable: Microsoft Teams + The ID of the error report that you want to disable. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Disable-CsTeamsShiftsConnectionErrorReport -ErrorReportId 18b3e490-e6ed-4c2e-9925-47e36609dff3 + + Disables the error report with ID `18b3e490-e6ed-4c2e-9925-47e36609dff3`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csteamsshiftsconnectionerrorreport + + + Get-CsTeamsShiftsConnectionErrorReport + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport + + + + + + Enable-CsOnlineSipDomain + Enable + CsOnlineSipDomain + + This cmdlet enables provisioning of users in Skype for Business Online for the specified domain. + + + + This cmdlet is only necessary to run if you previously disabled a domain using Disable-CsOnlineSipDomain. Enable-CsOnlineSipDomain is used to facilitate consolidation of separate Skype for Business deployments into a single Office 365 tenant. + This cmdlet enables online provisioning of users in the specified SIP domain. In conjunction with Disable-CsOnlineSipDomain, this cmdlet allows organizations to consolidate multiple on-premises deployments of Skype for Business Server (or Lync Server) into a single Office 365 tenant. Consolidation can be achieved by moving one deployment at a time into Office 365, provided the following key requirements are met: + - There must be at most 1 O365 tenant involved. Consolidation for scenarios with > 1 O365 tenant is not supported. + - At any given time, only 1 on-premises SfB forest can be in hybrid mode (Shared Sip Address Space) with Office 365. All other on-premises SfB forests must remain on-premises. (They presumably are federated with each other.) + - If 1 deployment is in hybrid mode, all online SIP domains from any other SfB forests must be disabled before they can be synchronized into the tenant with Microsoft Entra Connect. Users in all SfB forests other than the hybrid forest must remain on-premises. + - Organizations must fully migrate (e.g move all users to the cloud) each SfB forest individually into the O365 tenant using hybrid mode (Shared Sip Address Space), and then detach the "hybrid" deployment, before moving on to migrate the next on-premises SfB deployment. + Before running this cmdlet for any SIP domain in a Skype for Business Server deployment, you must complete migration of any other existing hybrid SfB deployment that is in progress. All users in an existing hybrid deployment must be moved to the cloud, and that existing hybrid deployment must be detached from Office 365, as described in this article: Disable hybrid to complete migration to the cloud (https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation-disabling-hybrid). + Important: If you have more than one on-premises deployment of Skype for Business Server, you must ensure SharedSipAddressSpace is disabled in all other Skype for Business Server deployments except the deployment containing the SIP domain that is being enabled. + Note: If the Tenant is enabled for Regionally Hosted Meetings in Skype for Business Online, Online SIP Domains must be Enabled in all regions. You must execute this cmdlet in each region that is added in Allowed Data Location for Skype for Business. + + + + Enable-CsOnlineSipDomain + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Domain + + > Applicable: Microsoft Teams + The SIP domain to be enabled for online provisioning in Skype for Business Online. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses all confirmation prompts that might occur when running the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Domain + + > Applicable: Microsoft Teams + The SIP domain to be enabled for online provisioning in Skype for Business Online. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses all confirmation prompts that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Enable-CsOnlineSipDomain -Domain contoso.com + + Enables the domain contoso.com for online provisioning in Skype for Business Online. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain + + + Disable-CsOnlineSipDomain + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain + + + Get-CsOnlineSipDomain + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain + + + + + + Export-CsAcquiredPhoneNumber + Export + CsAcquiredPhoneNumber + + This cmdlet exports the list of phone numbers acquired by Teams Phone tenant. + + + + This cmdlet exports all the acquired phone numbers by the tenant to a file. The cmdlet is an asynchronus operation and will return an OrderId. Get-CsExportAcquiredPhoneNumberStatus (https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus)cmdlet can be used to check the status of the OrderId including the download link to exported file. + By default, this cmdlet returns all the phone numbers acquired by the tenant with all corresponding properties in the results. The tenant admin may indicate specific properties as an input to get a list with only selected properties in the file. Available properties to use are : + - TelephoneNumber + - OperatorId + - NumberType + - LocationId + - CivicAddressId + - NetworkSiteId + - AvailableCapabilities + - AcquiredCapabilities + - AssignmentStatus + - PlaceName + - ActivationState + - PartnerName + - IsoCountryCode + - PortInOrderStatus + - CapabilityUpdateSupported + - AcquisitionDate + - TargetId + - TargetType + - AssignmentCategory + - CallingProfileId + - IsoSubdivisionCode + - NumberSource + - SupportedCustomerActions + - ReverseNumberLookup + - RoutingOptions + + + + Export-CsAcquiredPhoneNumber + + Property + + {{ Fill Property Description }} + + String + + String + + + None + + + + + + Property + + {{ Fill Property Description }} + + String + + String + + + None + + + + + + None + + + + + + + + + + System.String + + + + + + + + + The cmdlet is available in Teams PowerShell module 6.1.0 or later. + The cmdlet is only available in commercial and GCC cloud instances. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Export-CsAcquiredPhoneNumber + +0e923e2c-ab0e-4b7a-be5a-906be8c + + This example displays the output of the export acquired phone numbers operation. The OrderId shown as the output string and can be used to get the download link for the file. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Export-CsAcquiredPhoneNumber -Property "TelephoneNumber, NumberType, AssignmentStatus" + +0e923e2c-ab0e-6h8c-be5a-906be8c + + This example displays the output of the export acquired phone numbers operation with filtered properties. This file will only contain the properties indicated. + + + + -------------------------- Example 3 -------------------------- + PS C:\> $orderId = Export-CsAcquiredPhoneNumber + + This example displays the use of variable "orderId" for the export acquired phone numbers operation. The OrderId string will be stored in the variable named "orderId" and no output will be shown for the cmdlet. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Export-CsAcquiredPhoneNumber -Property "TelephoneNumber, NumberType, AssignmentStatus" + +OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c + + This example displays the use of variable "orderId" for the export acquired phone numbers operation with filtered properties. The OrderId string will be stored in the variable named "orderId" and no output will be shown for the cmdlet. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber + + + Get-CsExportAcquiredPhoneNumberStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus + + + + + + Export-CsAutoAttendantHolidays + Export + CsAutoAttendantHolidays + + Use Export-CsAutoAttendantHolidays cmdlet to export holiday schedules of an existing Auto Attendant (AA). + + + + The Export-CsAutoAttendantHolidays cmdlet and the Import-CsAutoAttendantHolidays cmdlet enable you to export holiday schedules in your auto attendant and then later import that information. This can be extremely useful in a situation where you need to configure same holiday sets in multiple tenants. + The Export-CsAutoAttendantHolidays cmdlet returns the holiday schedule information in serialized form (as a byte array). The caller can then write the bytes to the disk to obtain a CSV file. Similarly, the Import-CsAutoAttendantHolidays cmdlet accepts the holiday schedule information as a byte array, which can be read from the aforementioned CSV file. The first line of the CSV file is considered a header record and is always ignored. NOTE : Each line in the CSV file used by Export-CsAutoAttendantHolidays and Import-CsAutoAttendantHolidays cmdlet should be of the following format: + `HolidayName,StartDateTime1,EndDateTime1,StartDateTime2,EndDateTime2,...,StartDateTime10,EndDateTime10` + where + - HolidayName is the name of the holiday to be imported. + - StartDateTimeX and EndDateTimeX specify a date/time range for the holiday and are optional. If no date-time ranges are defined, then the holiday is imported without any date/time ranges. They follow the same format as New-CsOnlineDateTimeRange cmdlet. + - EndDateTimeX is optional. If it is not specified, the end bound of the date time range is set to 00:00 of the day after the start date. + + - The first line of the CSV file is considered a header record and is always ignored by Import-CsAutoAttendantHolidays cmdlet. + - If the destination auto attendant for the import already contains a call flow or schedule by the same name as one of the holidays being imported, the corresponding CSV record is skipped. + - For holidays that are successfully imported, a default call flow is created which is configured without any greeting and simply disconnects the call on being executed. + + + + Export-CsAutoAttendantHolidays + + Identity + + > Applicable: Microsoft Teams + The identity for the AA whose holiday schedules are to be exported. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The identity for the AA whose holiday schedules are to be exported. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Export-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter. + + + + + + + System.Byte[] + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $bytes = Export-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 +[System.IO.File]::WriteAllBytes("C:\Exports\Holidays.csv", $bytes) + + In this example, the Export-CsAutoAttendantHolidays cmdlet is used to export holiday schedules of an auto attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. The exported bytes are then written to a file with the path "C:\Exports\Holidays.csv". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays + + + Import-CsAutoAttendantHolidays + https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays + + + Get-CsAutoAttendantHolidays + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays + + + + + + Export-CsOnlineAudioFile + Export + CsOnlineAudioFile + + Use the Export-CsOnlineAudioFile cmdlet to download an existing audio file. + + + + The Export-CsOnlineAudioFile cmdlet downloads an existing Auto Attendant (AA), Call Queue (CQ) service or Music on Hold audio file. + + + + Export-CsOnlineAudioFile + + ApplicationId + + > Applicable: Microsoft Teams + The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file is used with an organizational auto attendant, then it needs to be set to "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be set to "HuntGroup". If the audio file is used with Microsoft Teams, then it needs to be set to "TenantGlobal" + Supported values: + - OrgAutoAttendant + - HuntGroup + - TenantGlobal + + System.String + + System.String + + + TenantGlobal + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Id of the specific audio file that you would like to export. + + System.String + + System.String + + + None + + + + + + ApplicationId + + > Applicable: Microsoft Teams + The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file is used with an organizational auto attendant, then it needs to be set to "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be set to "HuntGroup". If the audio file is used with Microsoft Teams, then it needs to be set to "TenantGlobal" + Supported values: + - OrgAutoAttendant + - HuntGroup + - TenantGlobal + + System.String + + System.String + + + TenantGlobal + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Id of the specific audio file that you would like to export. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Byte[] + + + + + + + + + The audio content generated by Export-CsOnlineAudioFile is always in WAV format (PCM 16 bit and mono) irrespective on which format the audio was imported as. Therefore, ensure that the file extension used to store the content is WAV. + You are responsible for independently clearing and securing all necessary rights and permissions to use any music or audio file with your Microsoft Teams service, which may include intellectual property and other rights in any music, sound effects, audio, brands, names, and other content in the audio file from all relevant rights holders, which may include artists, actors, performers, musicians, songwriters, composers, record labels, music publishers, unions, guilds, rights societies, collective management organizations and any other parties who own, control or license the music copyrights, sound effects, audio and other intellectual property rights. + + + + + -------------------------- Example 1 -------------------------- + $content=Export-CsOnlineAudioFile -ApplicationId "HuntGroup" -Identity 57f800408f8848548dd1fbc18073fe46 +[System.IO.File]::WriteAllBytes('C:\MyWaveFile.wav', $content) + + This example exports a Call Queue audio file and saves it as MyWaveFile.wav. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile + + + Get-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + Remove-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile + + + + + + Find-CsGroup + Find + CsGroup + + Use the Find-CsGroup cmdlet to search groups. + + + + The Find-CsGroup cmdlet lets you search groups in the Azure Address Book Service (AABS). + + + + Find-CsGroup + + ExactMatchOnly + + > Applicable: Microsoft Teams + The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + MailEnabledOnly + + Instructs the cmdlet to return mail enabled only groups. + + Boolean + + Boolean + + + None + + + MaxResults + + > Applicable: Microsoft Teams + The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. + + UInt32 + + UInt32 + + + None + + + SearchQuery + + > Applicable: Microsoft Teams + The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of groups. This parameter accepts partial search query. The search is not case sensitive. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + ExactMatchOnly + + > Applicable: Microsoft Teams + The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. + + Boolean + + Boolean + + + None + + + Force + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + SwitchParameter + + SwitchParameter + + + False + + + MailEnabledOnly + + Instructs the cmdlet to return mail enabled only groups. + + Boolean + + Boolean + + + None + + + MaxResults + + > Applicable: Microsoft Teams + The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. + + UInt32 + + UInt32 + + + None + + + SearchQuery + + > Applicable: Microsoft Teams + The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of groups. This parameter accepts partial search query. The search is not case sensitive. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel + + + The Find-CsGroup cmdlet returns a list of Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel. Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel contains Id and DisplayName. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Find-CsGroup -SearchQuery "Contoso Group" -MaxResults 5 + + This example finds and displays up to five groups that match the "Contoso Group" search query. + + + + -------------------------- Example 2 -------------------------- + Find-CsGroup -SearchQuery "ed0d1180-169e-47c7-b718-bf9e60543914" -ExactMatchOnly $true + + This example finds and displays only those groups that are an exact match to the search query. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/find-csgroup + + + + + + Find-CsOnlineApplicationInstance + Find + CsOnlineApplicationInstance + + Use the Find-CsOnlineApplicationInstance cmdlet to find application instances that match your search criteria. + + + + Use the Find-CsOnlineApplicationInstance cmdlet to find application instances that match your search criteria. + If MaxResults is not specified, the number of returned applications instances is limited to 10 application instances. + + + + Find-CsOnlineApplicationInstance + + AssociatedOnly + + > Applicable: Microsoft Teams + The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a configuration. + + + SwitchParameter + + + False + + + ExactMatchOnly + + > Applicable: Microsoft Teams + The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + MaxResults + + > Applicable: Microsoft Teams + The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. Max allowed value is 20. + + UInt32 + + UInt32 + + + None + + + SearchQuery + + > Applicable: Microsoft Teams + The SearchQuery parameter defines a query for application instances by display name, telephone number, or GUID of the application instance. This parameter accepts partial queries for display names and telephone numbers. The search is not case sensitive. + + System.String + + System.String + + + None + + + UnAssociatedOnly + + > Applicable: Microsoft Teams + The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated to any configuration. + + + SwitchParameter + + + False + + + + + + AssociatedOnly + + > Applicable: Microsoft Teams + The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a configuration. + + SwitchParameter + + SwitchParameter + + + False + + + ExactMatchOnly + + > Applicable: Microsoft Teams + The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + MaxResults + + > Applicable: Microsoft Teams + The MaxResults parameter identifies the maximum number of results to return. If this parameter is not provided, the default is value is 10. Max allowed value is 20. + + UInt32 + + UInt32 + + + None + + + SearchQuery + + > Applicable: Microsoft Teams + The SearchQuery parameter defines a query for application instances by display name, telephone number, or GUID of the application instance. This parameter accepts partial queries for display names and telephone numbers. The search is not case sensitive. + + System.String + + System.String + + + None + + + UnAssociatedOnly + + > Applicable: Microsoft Teams + The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated to any configuration. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.FindApplicationInstanceResult + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Find-CsOnlineApplicationInstance -SearchQuery "Test" + + This example returns up to 10 application instances whose name starts with "Test". + + + + -------------------------- Example 2 -------------------------- + Find-CsOnlineApplicationInstance -SearchQuery "Test" -MaxResults 5 + + This example returns up to 5 application instances whose name starts with "Test". + + + + -------------------------- Example 3 -------------------------- + Find-CsOnlineApplicationInstance -SearchQuery "Test Auto Attendant" -ExactMatchOnly + + This example returns up to 10 application instances whose name is "Test Auto Attendant". + + + + -------------------------- Example 4 -------------------------- + Find-CsOnlineApplicationInstance -SearchQuery "Test Auto Attendant" -AssociatedOnly + + This example returns up to 10 application instances whose name is "Test Auto Attendant", and who are associated with an application configuration, like auto attendant or call queue. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance + + + Get-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance + + + New-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance + + + Find-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance + + + Set-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance + + + + + + Get-CsApplicationAccessPolicy + Get + CsApplicationAccessPolicy + + Retrieves information about the application access policy configured for use in the tenant. + + + + This cmdlet retrieves information about the application access policy configured for use in the tenant. + + + + Get-CsApplicationAccessPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + A filter that is not expressed in the standard wildcard language. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + Filter + + A filter that is not expressed in the standard wildcard language. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + + + + + + + ----------- Retrieve all application access policies ----------- + PS C:\> Get-CsApplicationAccessPolicy + + The command shown above returns information of all application access policies that have been configured for use in the tenant. + + + + --------- Retrieve specific application access policy --------- + PS C:\> Get-CsApplicationAccessPolicy -Identity "ASimplePolicy" + + In the command shown above, information is returned for a single application access policy: the policy with the Identity ASimplePolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csapplicationaccesspolicy + + + New-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Grant-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy + + + Set-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationaccesspolicy + + + Remove-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csapplicationaccesspolicy + + + + + + Get-CsApplicationMeetingConfiguration + Get + CsApplicationMeetingConfiguration + + Retrieves information about the application meeting configuration settings configured for the tenant. + + + + This cmdlet retrieves information about the application meeting configuration settings configured for the tenant. + + + + Get-CsApplicationMeetingConfiguration + + Identity + + Unique identifier of the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings, you do not have to include the Identity when calling the Get-CsApplicationMeetingConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -Identity global. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Teams + Enables you to use wildcards when specifying the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". + + String + + String + + + None + + + LocalStore + + > Applicable: Teams + Retrieves the application meeting configuration data from the local replica of the Central Management store rather than from the Central Management store itself. + + + SwitchParameter + + + False + + + + + + Filter + + > Applicable: Teams + Enables you to use wildcards when specifying the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings there is little reason to use the Filter parameter. However, if you prefer, you can use syntax similar to this to retrieve the global settings: -Identity "g*". + + String + + String + + + None + + + Identity + + Unique identifier of the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings, you do not have to include the Identity when calling the Get-CsApplicationMeetingConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -Identity global. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + > Applicable: Teams + Retrieves the application meeting configuration data from the local replica of the Central Management store rather than from the Central Management store itself. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.ApplicationMeetingConfiguration + + + + + + + + + + + + + + Retrieve application meeting configuration settings for the tenant. + PS C:\> Get-CsApplicationMeetingConfiguration + + The command shown above returns application meeting configuration settings that have been configured for the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-CsApplicationMeetingConfiguration + + + Set-CsApplicationMeetingConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationmeetingconfiguration + + + + + + Get-CsAutoAttendant + Get + CsAutoAttendant + + Use the Get-CsAutoAttendant cmdlet to get information about your Auto Attendants (AA). + + + + The Get-CsAutoAttendant cmdlet returns information about the AAs in your organization. + + + + Get-CsAutoAttendant + + Identity + + > Applicable: Microsoft Teams + The identity for the AA to be retrieved. If this parameter is not specified, then all created AAs in the organization are returned. If you specify this parameter, you can't specify the other parameters. + + System.String + + System.String + + + None + + + Descending + + > Applicable: Microsoft Teams + If specified, the retrieved auto attendants would be sorted in descending order. + + + SwitchParameter + + + False + + + ExcludeContent + + > Applicable: Microsoft Teams + If specified, only auto attendants' names, identities and associated application instances will be retrieved. + + + SwitchParameter + + + False + + + First + + > Applicable: Microsoft Teams + The First parameter gets the first N auto attendants, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 auto attendants. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + System.UInt32 + + System.UInt32 + + + None + + + IncludeStatus + + > Applicable: Microsoft Teams + If specified, the status records for each auto attendant in the result set are also retrieved. + + + SwitchParameter + + + False + + + NameFilter + + > Applicable: Microsoft Teams + If specified, only auto attendants whose names match that value would be returned. + + System.String + + System.String + + + None + + + Skip + + > Applicable: Microsoft Teams + The Skip parameter skips the first N auto attendants. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + System.UInt32 + + System.UInt32 + + + None + + + SortBy + + > Applicable: Microsoft Teams + If specified, the retrieved auto attendants would be sorted by the specified property. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Descending + + > Applicable: Microsoft Teams + If specified, the retrieved auto attendants would be sorted in descending order. + + SwitchParameter + + SwitchParameter + + + False + + + ExcludeContent + + > Applicable: Microsoft Teams + If specified, only auto attendants' names, identities and associated application instances will be retrieved. + + SwitchParameter + + SwitchParameter + + + False + + + First + + > Applicable: Microsoft Teams + The First parameter gets the first N auto attendants, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 auto attendants. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + System.UInt32 + + System.UInt32 + + + None + + + Identity + + > Applicable: Microsoft Teams + The identity for the AA to be retrieved. If this parameter is not specified, then all created AAs in the organization are returned. If you specify this parameter, you can't specify the other parameters. + + System.String + + System.String + + + None + + + IncludeStatus + + > Applicable: Microsoft Teams + If specified, the status records for each auto attendant in the result set are also retrieved. + + SwitchParameter + + SwitchParameter + + + False + + + NameFilter + + > Applicable: Microsoft Teams + If specified, only auto attendants whose names match that value would be returned. + + System.String + + System.String + + + None + + + Skip + + > Applicable: Microsoft Teams + The Skip parameter skips the first N auto attendants. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + System.UInt32 + + System.UInt32 + + + None + + + SortBy + + > Applicable: Microsoft Teams + If specified, the retrieved auto attendants would be sorted by the specified property. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Get-CsAutoAttendant cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsAutoAttendant + + This example gets the first 100 auto attendants in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsAutoAttendant -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + +# Id : f7a821dc-2d69-5ae8-8525-bcb4a4556093 +# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213 +# Name : Main Auto Attendant +# LanguageId : en-US +# VoiceId : Female +# DefaultCallFlow : Default Call Flow +# Operator : +# TimeZoneId : Pacific Standard Time +# VoiceResponseEnabled : False +# CallFlows : +# Schedules : +# CallHandlingAssociations : +# Status : +# DialByNameResourceId : +# DirectoryLookupScope : +# ApplicationInstances : {fa2f17ec-ebd5-43f8-81ac-959c245620fa, 56421bbe-5649-4208-a60c-24dbeded6f18, c7af9c3c-ae40-455d-a37c-aeec771e623d} + + This example gets the AA that has the identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + -------------------------- Example 3 -------------------------- + Get-CsAutoAttendant -First 10 + + This example gets the first ten auto attendants configured for use in the organization. + + + + -------------------------- Example 4 -------------------------- + Get-CsAutoAttendant -Skip 5 -First 10 + + This example skips initial 5 auto attendants and gets the next 10 AAs configured in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant + + + Get-CsAutoAttendantStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus + + + New-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant + + + Remove-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant + + + Set-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant + + + Update-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant + + + + + + Get-CsAutoAttendantHolidays + Get + CsAutoAttendantHolidays + + Use Get-CsAutoAttendantHolidays cmdlet to get the holiday information for an existing Auto Attendant (AA). + + + + The Get-CsAutoAttendantHolidays provides a convenient way to visualize the information of all the holidays contained within an auto attendant. + + + + Get-CsAutoAttendantHolidays + + Identity + + > Applicable: Microsoft Teams + Represents the identifier for the auto attendant whose holidays are to be retrieved. + + System.String + + System.String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Names + + > Applicable: Microsoft Teams + The Names parameter represents the names for the holidays to be retrieved. If this parameter is not specified, then all holidays in the AA are returned. + + System.Collections.Generic.List[System.Int32] + + System.Collections.Generic.List[System.Int32] + + + None + + + Years + + > Applicable: Microsoft Teams + The Years parameter represents the years for the holidays to be retrieved. If this parameter is not specified, then holidays for all years in the AA are returned. + + System.Collections.Generic.List[System.String] + + System.Collections.Generic.List[System.String] + + + None + + + + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Represents the identifier for the auto attendant whose holidays are to be retrieved. + + System.String + + System.String + + + None + + + Names + + > Applicable: Microsoft Teams + The Names parameter represents the names for the holidays to be retrieved. If this parameter is not specified, then all holidays in the AA are returned. + + System.Collections.Generic.List[System.Int32] + + System.Collections.Generic.List[System.Int32] + + + None + + + Years + + > Applicable: Microsoft Teams + The Years parameter represents the years for the holidays to be retrieved. If this parameter is not specified, then holidays for all years in the AA are returned. + + System.Collections.Generic.List[System.String] + + System.Collections.Generic.List[System.String] + + + None + + + + + + System.String + + + The Get-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.OAA.Models.HolidayVisRecord + + + + + + + + + The DateTimeRanges parameter in the output needs to be explicitly referenced to show the value. See Example 4 for one way of doing it. + + + + + -------------------------- Example 1 -------------------------- + Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + + In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get all holidays in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + -------------------------- Example 2 -------------------------- + Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -Years @(2017) + + In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get all holidays in year 2017 in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + -------------------------- Example 3 -------------------------- + Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -Years @(2017) -Names @("Christmas") + + In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get holiday named Christmas in the year 2017 in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + -------------------------- Example 4 -------------------------- + (Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -Years @(2017) -Names @("Christmas")).DateTimeRanges + + In this example, the Get-CsAutoAttendantHolidays cmdlet is used to retrieve the DateTimeRanges for the holiday named Christmas in the year 2017 in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays + + + Import-CsAutoAttendantHolidays + https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays + + + Export-CsAutoAttendantHolidays + https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays + + + + + + Get-CsAutoAttendantStatus + Get + CsAutoAttendantStatus + + Use Get-CsAutoAttendantStatus cmdlet to get the status of an Auto Attendant (AA) provisioning. + + + + This cmdlet provides a way to return the provisioning status of an auto attendant configured for use in your organization. + + + + Get-CsAutoAttendantStatus + + Identity + + > Applicable: Microsoft Teams + Represents the identifier for the auto attendant whose provisioning status is to be retrieved. + + System.String + + System.String + + + None + + + IncludeResources + + > Applicable: Microsoft Teams + The IncludeResources parameter identities the auto attendant resources whose status is to be retrieved. Available resources are: - AudioFile: Indicates status for audio files used by AA. + - DialByNameVoiceResponses: Indicates status for speech recognition when using dial-by-name (directory lookup) feature with AA. + - SipProvisioning: Indicates status for calling AA through its SIP (Primary) URI. + + + AudioFile + DialByNameVoiceResponses + SipProvisioning + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + Represents the identifier for the auto attendant whose provisioning status is to be retrieved. + + System.String + + System.String + + + None + + + IncludeResources + + > Applicable: Microsoft Teams + The IncludeResources parameter identities the auto attendant resources whose status is to be retrieved. Available resources are: - AudioFile: Indicates status for audio files used by AA. + - DialByNameVoiceResponses: Indicates status for speech recognition when using dial-by-name (directory lookup) feature with AA. + - SipProvisioning: Indicates status for calling AA through its SIP (Primary) URI. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Get-CsAutoAttendantStatus cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.OAA.Models.StatusRecord + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsAutoAttendantStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + + In Example 1, the Get-CsAutoAttendantStatus cmdlet is used to get status records for all resources of an auto attendant with identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + -------------------------- Example 2 -------------------------- + Get-CsAutoAttendantStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -IncludeResources @("AudioFile") + + In Example 2, the Get-CsAutoAttendantStatus cmdlet is used to get status records pertaining to audio files only of an auto attendant with identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus + + + Get-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant + + + + + + Get-CsAutoAttendantSupportedLanguage + Get + CsAutoAttendantSupportedLanguage + + The Get-CsAutoAttendantSupportedLanguage cmdlet gets languages that are supported by the Auto Attendant (AA) service. + + + + The Get-CsAutoAttendantSupportedLanguage cmdlet gets all languages (and their corresponding voices/speakers) that are supported by the AA service, or a specific language if its Identity is provided. + + + + Get-CsAutoAttendantSupportedLanguage + + Identity + + > Applicable: Microsoft Teams + The Identity parameter designates a specific language to be retrieved. If this parameter is not specified, then all supported languages are returned. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter designates a specific language to be retrieved. If this parameter is not specified, then all supported languages are returned. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Get-CsAutoAttendantSupportedLanguage cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.Language + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsAutoAttendantSupportedLanguage + + This example gets all supported languages. + + + + -------------------------- Example 2 -------------------------- + Get-CsAutoAttendantSupportedLanguage -Identity "en-US" + + This example gets the language that the Identity parameter specifies (en-US). + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage + + + + + + Get-CsAutoAttendantSupportedTimeZone + Get + CsAutoAttendantSupportedTimeZone + + The Get-CsAutoAttendantSupportedTimeZone cmdlet gets supported time zones for the Auto Attendant (AA) service. + + + + The Get-CsAutoAttendantSupportedTimeZone cmdlet gets all the time zones that the AA service supports, or a specific time zone if its Identity is provided. + + + + Get-CsAutoAttendantSupportedTimeZone + + Identity + + > Applicable: Microsoft Teams + The Identity parameter specifies a time zone to be retrieved. If this parameter is not used, then all supported time zones are returned. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter specifies a time zone to be retrieved. If this parameter is not used, then all supported time zones are returned. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + System.String + + + The Get-CsAutoAttendantSupportedTimeZone cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsAutoAttendantSupportedTimeZone + + This example gets all supported time zones. + + + + -------------------------- Example 2 -------------------------- + Get-CsAutoAttendantSupportedTimeZone -Identity "Pacific Standard Time" + + This example gets the timezone that the Identity parameter specifies (Pacific Standard Time). + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone + + + + + + Get-CsAutoAttendantTenantInformation + Get + CsAutoAttendantTenantInformation + + Gets the default tenant information for Auto Attendant (AA) feature. + + + + The Get-CsAutoAttendantTenantInformation cmdlet gets the default tenant information for Auto Attendant (AA) feature. + + + + Get-CsAutoAttendantTenantInformation + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.TenantInformation + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsAutoAttendantTenantInformation + + Gets the default auto attendant information for the logged in tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendanttenantinformation + + + + + + Get-CsBatchPolicyAssignmentOperation + Get + CsBatchPolicyAssignmentOperation + + This cmdlet is used to retrieve the status of batch policy assignment operations. + + + + This cmdlets returns the status of all batch policy assignment operations for the last 30 days. If an operation ID is specified, the detailed status for that operation is returned including the status for each user in the batch. + + + + Get-CsBatchPolicyAssignmentOperation + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Identity + + The ID of a batch policy assignment operation. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + + Get-CsBatchPolicyAssignmentOperation + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + Status + + Option filter + + String + + String + + + None + + + + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Identity + + The ID of a batch policy assignment operation. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + Status + + Option filter + + String + + String + + + None + + + + + + + OperationId + + + The ID of the operation that can be used with the Get-CsBatchPolicyAssignmentOperation cmdlet to get the status of the operation. + + + + + CompletedCount + + + The number of users in the batch for which the assignment has been completed (possibly with an error). + + + + + CompletedTime + + + The date and time when the operation was completed. + + + + + CreatedTime + + + The date and time when the operation was created. + + + + + ErrorCount + + + The number of users in the batch for which the assignment failed. + + + + + InProgressCount + + + The number of users in the batch for which the assignment is in progress. + + + + + NotStartedCount + + + The number of users in the batch for which the assignment has not yet been performed. + + + + + OperationId + + + The ID of the operation. + + + + + OperationName + + + The name of the operation, if one was specific when the operation was created. + + + + + OverallStatus + + + The overall status of the operations: NotStarted, InProgress, Complete + + + + + UserState + + + Contains the status for each user in the batch. Id: The ID of the user as specified when the batch was submitted. Either the user object ID (guid) or UPN/SIP/email. result: The result of the assignment operation for the user: Success or an error. Some common errors include: - User not found. Check the ID or SIP address of the user to confirm it is correct. If the UPN or email address was used, but it does not match the SIP address, then the user will not be found. + - Multiple users found with a given SIP address. This is typically a result of on-prem to cloud sync. Check your directory and update the affected users. + - User invalid. If you are syncing users from on-prem to the cloud, some users might not have been synced properly and are in an invalid state. Check the sync status for the user. + - User ineligible for the policy or missing a necessary license. Check the documentation for the specific policy type being assigned to understand the requirements and update the user accordingly. + - The policy settings are incorrect. Check the documentation for the specific policy type being assigned to understand the requirements and update the policy accordingly. + - Unknown errors. In rare cases, there can be transient system errors that failed on all initial retry attempts during batch process. Resubmit these users in a separate batch. state: The status for the user: NotStarted, InProgress, Completed + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Get-CsBatchPolicyAssignmentOperation + +OperationId OperationName OverallStatus CreatedTime CreatedBy +----------- ------------- ------------- ----------- --------- +e640a5c9-c74f-4df7-b62e-4b01ae878bdc Assigning Kiosk mtg Completed 1/30/2020 3:21:07 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +01b9b2b7-5dbb-487c-b4ea-887c7c66559c Assigning allow calling Completed 1/30/2020 3:55:16 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +47bbc636-365d-4441-af34-9e0eceb05ef1 Completed 1/30/2020 4:14:22 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + In this example, the status of all batch assignment operations is returned. + + + + -------------------------- EXAMPLE 2 -------------------------- + Get-CsBatchPolicyAssignmentOperation -OperationId 01b9b2b7-5dbb-487c-b4ea-887c7c66559c | fl + +OperationId : 01b9b2b7-5dbb-487c-b4ea-887c7c66559c +OperationName : Assigning allow calling +OverallStatus : Completed +CreatedBy : aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +CreatedTime : 1/30/2020 3:55:16 PM +CompletedTime : 1/30/2020 3:59:06 PM +CompletedCount : 3 +ErrorCount : 1 +InProgressCount : 0 +NotStartedCount : 0 +UserState : {f0d9c148-27c1-46f5-9685-544d20170ea1, cc05e18d-5fc0-4096-8461-ded64d7356e0, + bcff5b7e-8d3c-4721-b34a-63552a6a53f9} + + In this example, the details of a specific operation are returned. + + + + -------------------------- EXAMPLE 3 -------------------------- + Get-CsBatchPolicyAssignmentOperation -OperationId 001141c3-1daa-4da1-88e9-66cc01c511e1 | Select -ExpandProperty UserState + +Id Result State +-- ------ ----- +f0d9c148-27c1-46f5-9685-544d20170ea1 Success Completed +cc05e18d-5fc0-4096-8461-ded64d7356e0 Success Completed +bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed + + In this example, the UserState property is expanded to see the status of each user in the batch. In this example, one of the users was not found. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchpolicyassignmentoperation + + + New-CsBatchPolicyAssignmentOperation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicyassignmentoperation + + + + + + Get-CsBatchTeamsDeploymentStatus + Get + CsBatchTeamsDeploymentStatus + + This cmdlet is used to get the status of the batch deployment orchestration. + + + + After deploying teams using New-CsBatchTeamsDeployment, an admin can check the status of the job/orchestration using Get-CsBatchTeamsDeploymentStatus. + To learn more, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). + + + + Get-CsBatchTeamsDeploymentStatus + + OrchestrationId + + This ID is generated when a batch deployment is submitted with the New-CsBatchTeamsDeployment cmdlet. + + String + + String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + OrchestrationId + + This ID is generated when a batch deployment is submitted with the New-CsBatchTeamsDeployment cmdlet. + + String + + String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + + Status of the orchestrationId + + + Running: The orchestration is running. Completed: The orchestration is completed, either succeeded, partially succeeded, or failed. + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Get-CsBatchTeamsDeploymentStatus -OrchestrationId "My-Orchestration-Id" + + This command provides the status of the specified batch deployment orchestrationId. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsBatchTeamsDeploymentStatus + + + New-CsBatchTeamsDeployment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchteamsdeployment + + + + + + Get-CsCallingLineIdentity + Get + CsCallingLineIdentity + + Use the `Get-CsCallingLineIdentity` cmdlet to display the Caller ID policies for your organization. + + + + Use the `Get-CsCallingLineIdentity` cmdlet to display the Caller ID policies for your organization. + + + + Get-CsCallingLineIdentity + + Filter + + > Applicable: Microsoft Teams + The Filter parameter lets you insert a string through which your search results are filtered. + + String + + String + + + None + + + + Get-CsCallingLineIdentity + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. + + String + + String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + The Filter parameter lets you insert a string through which your search results are filtered. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. + + String + + String + + + None + + + + + + None + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsCallingLineIdentity + + The example gets and displays the Caller ID policies for your organization. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsCallingLineIdentity -Filter "tag:Sales*" + + The example gets and displays the Caller ID policies with Identity starting with Sales. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity + + + Grant-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity + + + Set-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity + + + New-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity + + + Remove-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity + + + + + + Get-CsCallQueue + Get + CsCallQueue + + The Get-CsCallQueue cmdlet returns the identified Call Queues. + + + + The Get-CsCallQueue cmdlet lets you retrieve information about the Call Queues in your organization. Call Queue output contains statistical data on the number of active calls that are in the queue. + + + + Get-CsCallQueue + + Descending + + > Applicable: Microsoft Teams + The Descending parameter sorts Call Queues in descending order + + + SwitchParameter + + + False + + + ExcludeContent + + > Applicable: Microsoft Teams + The ExcludeContent parameter only displays the Name and Id of the Call Queues + + + SwitchParameter + + + False + + + First + + > Applicable: Microsoft Teams + The First parameter gets the first N Call Queues, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 call queues. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + NameFilter + + > Applicable: Microsoft Teams + The NameFilter parameter returns Call Queues where name contains specified string + + String + + String + + + None + + + Skip + + > Applicable: Microsoft Teams + The Skip parameter skips the first N call queues. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + Sort + + > Applicable: Microsoft Teams + The Sort parameter specifies the property used to sort. + + String + + String + + + Name + + + Tenant + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + + + + Descending + + > Applicable: Microsoft Teams + The Descending parameter sorts Call Queues in descending order + + SwitchParameter + + SwitchParameter + + + False + + + ExcludeContent + + > Applicable: Microsoft Teams + The ExcludeContent parameter only displays the Name and Id of the Call Queues + + SwitchParameter + + SwitchParameter + + + False + + + First + + > Applicable: Microsoft Teams + The First parameter gets the first N Call Queues, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 call queues. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + NameFilter + + > Applicable: Microsoft Teams + The NameFilter parameter returns Call Queues where name contains specified string + + String + + String + + + None + + + Skip + + > Applicable: Microsoft Teams + The Skip parameter skips the first N call queues. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + Sort + + > Applicable: Microsoft Teams + The Sort parameter specifies the property used to sort. + + String + + String + + + Name + + + Tenant + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + + + + Identity + + + Represents the unique identifier of a Call Queue. + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsCallQueue + + This example gets the first 100 call queues in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsCallQueue -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example gets the Call Queue with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Call Queue exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallqueue + + + + + + Get-CsCloudCallDataConnection + Get + CsCloudCallDataConnection + + This cmdlet retrieves an already existing online call data connection. + + + + This cmdlet retrieves an already existing online call data connection. Output of this cmdlet contains a token value, which is needed when configuring your on-premises environment with Set-CsCloudCallDataConnector. + + + + Get-CsCloudCallDataConnection + + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The Get-CsCloudCallDataConnection cmdlet is only supported in commercial environments from Teams PowerShell Module versions 4.6.0 or later. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsCloudCallDataConnection + +Token +----- +00000000-0000-0000-0000-000000000000 + + Returns a token value, which is needed when configuring your on-premises environment with Set-CsCloudCallDataConnector. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscloudcalldataconnection + + + Configure Call Data Connector + https://learn.microsoft.com/skypeforbusiness/hybrid/configure-call-data-connector + + + New-CsCloudCallDataConnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscloudcalldataconnection + + + + + + Get-CsComplianceRecordingForCallQueueTemplate + Get + CsComplianceRecordingForCallQueueTemplate + + Retrieves a Compliance Recording for Call Queues template. + + + + Use the Get-CsComplianceRecordingForCallQueueTemplate cmdlet to retrieve a Compliance Recording for Call Queues template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Get-CsComplianceRecordingForCallQueueTemplate + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsComplianceRecordingForCallQueueTemplate + + This example gets all Compliance Recording for Call Queue Templates in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsComplianceRecordingForCallQueueTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example gets the Compliance Recording for Call Queue template with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Compliance Recording for Call Queue template exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsComplianceRecordingForCallQueueTemplate + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + Get-CsDialPlan + Get + CsDialPlan + + Returns information about the dial plans used in your organization. This cmdlet was introduced in Lync Server 2010. + + + + This cmdlet returns information about one or more dial plans (also known as a location profiles) in an organization. Dial plans provide information required to enable Enterprise Voice users to make telephone calls. Dial plans are also used by the Conferencing Attendant application for dial-in conferencing. A dial plan determines such things as which normalization rules are applied and whether a prefix must be dialed for external calls. + Note: You can use the Get-CsDialPlan cmdlet to retrieve specific information about the normalization rules of a dial plan, but if that's the only dial plan information you need, you can also use the Get-CsVoiceNormalizationRule cmdlet. + + + + Get-CsDialPlan + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + The unique identifier designating the scope, and for per-user scope a name, to identify the dial plan you want to retrieve. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Performs a wildcard search that allows you to narrow down your results to only dial plans with identities that match the given wildcard string. + + String + + String + + + None + + + LocalStore + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Retrieves the dial plan information from the local replica of the Central Management store, rather than the Central Management store itself. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Skype for Business Online + {{Fill Tenant Description}} + + Guid + + Guid + + + None + + + + + + Filter + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Performs a wildcard search that allows you to narrow down your results to only dial plans with identities that match the given wildcard string. + + String + + String + + + None + + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + The unique identifier designating the scope, and for per-user scope a name, to identify the dial plan you want to retrieve. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Retrieves the dial plan information from the local replica of the Central Management store, rather than the Central Management store itself. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Skype for Business Online + {{Fill Tenant Description}} + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsDialPlan + + Example 1 returns a collection of all the dial plans configured for use in your organization; this is done by calling the Get-CsDialPlan cmdlet without any additional parameters. + + + + -------------------------- Example 2 -------------------------- + Get-CsDialPlan -Identity RedmondDialPlan + + In Example 2, the Identity parameter is used to limit the retrieved data to dial plans that have a per-user dial plan with the Identity RedmondDialPlan. Because identities must be unique, this command will return only the specified dial plan. + + + + -------------------------- Example 3 -------------------------- + Get-CsDialPlan -Identity site:Redmond + + Example 3 is identical to Example 2 except that instead of retrieving a per-user dial plan, we're retrieving a dial plan assigned to a site. We do that by specifying the value site: followed by the site name (in this case Redmond) of the site we want to retrieve. + + + + -------------------------- Example 4 -------------------------- + Get-CsDialPlan -Filter tag:* + + This example uses the Filter parameter to return a collection of all the dial plans that have been configured at the per-user scope. (Settings configured at the per-user, or tag, scope can be directly assigned to users and groups.) The wildcard string tag:* instructs the cmdlet to return only those dial plans that have an identity beginning with the string value tag:, which identifies a dial plan as a per-user dial plan. + + + + -------------------------- Example 5 -------------------------- + Get-CsDialPlan | Select-Object -ExpandProperty NormalizationRules + + This example displays the normalization rules used by the dial plans configured for use in your organization. Because the NormalizationRules property consists of an array of objects, the complete set of normalization rules is typically not displayed on screen. To see all of these rules, this sample command first uses the Get-CsDialPlan cmdlet to retrieve a collection of all the dial plans. That collection is then piped to the Select-Object cmdlet; in turn, the ExpandProperty parameter of the Select-Object cmdlet is used to "expand" the values found in the NormalizationRules property. Expanding the values simply means that all the normalization rules will be listed out individually on the screen, the same output that would be seen if the Get-CsVoiceNormalizationRule cmdlet had been called. + + + + -------------------------- Example 6 -------------------------- + Get-CsDialPlan | Where-Object {$_.Description -match "Redmond"} + + In Example 6, the Get-CsDialPlan cmdlet and the Where-Object cmdlet are used to retrieve a collection of all the dial plans that include the word Redmond in their description. To do this, the command first uses the Get-CsDialPlan cmdlet to retrieve all the dial plans. That collection is then piped to the Where-Object cmdlet, which applies a filter that limits the returned data to profiles that have the word Redmond somewhere in their Description. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csdialplan + + + New-CsDialPlan + + + + Remove-CsDialPlan + + + + Set-CsDialPlan + + + + Grant-CsDialPlan + + + + Test-CsDialPlan + + + + Get-CsVoiceNormalizationRule + + + + + + + Get-CsEffectiveTenantDialPlan + Get + CsEffectiveTenantDialPlan + + Use the Get-CsEffectiveTenantDialPlan cmdlet to retrieve an effective tenant dial plan. + + + + The Get-CsEffectiveTenantDialPlan cmdlet returns information about the effective tenant dial plan in an organization. The returned effective Tenant Dial Plan contains the EffectiveTenantDialPlanName and the Normalization rules that are effective for the user while using the EnterpriseVoice features. The EffectiveTenantDialPlanName is in the form TenantGUID_GlobalVoiceDialPlan_TenantDialPlan. + + + + Get-CsEffectiveTenantDialPlan + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is the unique identifier of the user for whom to retrieve the effective tenant dial plan. + + UserIdParameter + + UserIdParameter + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + OU + + > Applicable: Microsoft Teams Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. + The OrganizationalUnit parameter filters the results based on the object's location in Active Directory. Only objects that exist in the specified location are returned. + + OUIdParameter + + OUIdParameter + + + None + + + ResultSize + + > Applicable: Microsoft Teams Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. + Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is the unique identifier of the user for whom to retrieve the effective tenant dial plan. + + UserIdParameter + + UserIdParameter + + + None + + + OU + + > Applicable: Microsoft Teams Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. + The OrganizationalUnit parameter filters the results based on the object's location in Active Directory. Only objects that exist in the specified location are returned. + + OUIdParameter + + OUIdParameter + + + None + + + ResultSize + + > Applicable: Microsoft Teams Note: This parameter is not supported in Teams PowerShell Module version 3.0.0 or later. + Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsEffectiveTenantDialPlan -Identity Vt1_User1 + + This example gets the effective tenant dial plan for the Vt1_User1. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cseffectivetenantdialplan + + + + + + Get-CsExportAcquiredPhoneNumberStatus + Get + CsExportAcquiredPhoneNumberStatus + + This cmdlet shows the status of the Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber)cmdlet. + + + + This cmdlet returns OrderId status from the respective Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber)operation. The response will include the download link to the file if operation has been completed. + By default, the download link will remain active for 1 hour. + + + + Get-CsExportAcquiredPhoneNumberStatus + + OrderId + + The orderId of the ExportAcquiredNumberStatus cmdlet. + + String + + String + + + None + + + + + + OrderId + + The orderId of the ExportAcquiredNumberStatus cmdlet. + + String + + String + + + None + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetExportAcquiredTelephoneNumbersResponse + + + + + + + + + The cmdlet is available in Teams PowerShell module 6.1.0 or later. + The cmdlet is only available in commercial and GCC cloud instances. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsExportAcquiredPhoneNumberStatus -OrderId 0e923e2c-ab0e-4b7a-be5a-906be8c + +Id : 0e923e2c-ab0e-4b7a-be5a-906be8c +CreatedAt : 2024-08-29 21:50:54Z +status : Success +DownloadLinkExpiry : 2024-08-29 22:51:17Z +DownloadLink : <link> + + This example displays the status of the export acquired phone numbers operation. The OrderId is the output from Export-CsAcquiredPhoneNumber (https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber)cmdlet. The status contains the download link for the file along with expiry date. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsExportAcquiredPhoneNumberStatus -OrderId $orderId + +Id : 0e923e2c-ab0e-4b7a-be5a-906be8c +CreatedAt : 2024-08-29 21:50:54Z +status : Success +DownloadLinkExpiry : 2024-08-29 22:51:17Z +DownloadLink : <link> + + This example displays the status of the export acquired phone numbers operation with the use of a variable named "orderId". + + + + -------------------------- Example 3 -------------------------- + PS C:\> $order = Get-CsExportAcquiredPhoneNumberStatus -OrderId $orderId +PS C:\> $order + +Id : 0e923e2c-ab0e-4b7a-be5a-906be8c +CreatedAt : 2024-08-29 21:50:54Z +status : Success +DownloadLinkExpiry : 2024-08-29 22:51:17Z +DownloadLink : <link> + + This example stores the Get-CsExportAcquiredPhoneNumberStatus (https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus)cmdlet status for the "orderId" in the variable "order". This will allow a quick view of the order status without typing the cmdlet again. + + + + + + Get-CsExportAcquiredPhoneNumberStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus + + + + + + Get-CsGroupPolicyAssignment + Get + CsGroupPolicyAssignment + + This cmdlet is used to return group policy assignments. + + + + This cmdlets returns group policy assignments. Optional parameters allow the results to be restricted to policies assigned to a specific group or policies of a specific type. + + + + Get-CsGroupPolicyAssignment + + GroupId + + The ID of a group whose policy assignments will be returned. + + String + + String + + + None + + + PolicyType + + The policy type for which group policy assignments will be returned. Possible values: + ApplicationAccessPolicy CallingLineIdentity ExternalAccessPolicy OnlineAudioConferencingRoutingPolicy OnlineVoicemailPolicy OnlineVoiceRoutingPolicy TeamsAppSetupPolicy TeamsAudioConferencingPolicy TeamsCallHoldPolicy TeamsCallingPolicy TeamsCallParkPolicy TeamsChannelsPolicy TeamsComplianceRecordingPolicy TeamsCortanaPolicy TeamsEmergencyCallingPolicy TeamsEmergencyCallRoutingPolicy TeamsEnhancedEncryptionPolicy TeamsEventsPolicy TeamsFeedbackPolicy TeamsFilesPolicy TeamsIPPhonePolicy TeamsMediaLoggingPolicy TeamsMeetingBrandingPolicy TeamsMeetingBroadcastPolicy TeamsMeetingPolicy TeamsMeetingTemplatePermissionPolicy TeamsMessagingPolicy TeamsMobilityPolicy TeamsRoomVideoTeleConferencingPolicy TeamsSharedCallingRoutingPolicy TeamsShiftsPolicy TeamsUpdateManagementPolicy TeamsVdiPolicy TeamsVideoInteropServicePolicy TeamsVirtualAppointmentsPolicy TenantDialPlan + + String + + String + + + None + + + + + + GroupId + + The ID of a group whose policy assignments will be returned. + + String + + String + + + None + + + PolicyType + + The policy type for which group policy assignments will be returned. Possible values: + ApplicationAccessPolicy CallingLineIdentity ExternalAccessPolicy OnlineAudioConferencingRoutingPolicy OnlineVoicemailPolicy OnlineVoiceRoutingPolicy TeamsAppSetupPolicy TeamsAudioConferencingPolicy TeamsCallHoldPolicy TeamsCallingPolicy TeamsCallParkPolicy TeamsChannelsPolicy TeamsComplianceRecordingPolicy TeamsCortanaPolicy TeamsEmergencyCallingPolicy TeamsEmergencyCallRoutingPolicy TeamsEnhancedEncryptionPolicy TeamsEventsPolicy TeamsFeedbackPolicy TeamsFilesPolicy TeamsIPPhonePolicy TeamsMediaLoggingPolicy TeamsMeetingBrandingPolicy TeamsMeetingBroadcastPolicy TeamsMeetingPolicy TeamsMeetingTemplatePermissionPolicy TeamsMessagingPolicy TeamsMobilityPolicy TeamsRoomVideoTeleConferencingPolicy TeamsSharedCallingRoutingPolicy TeamsShiftsPolicy TeamsUpdateManagementPolicy TeamsVdiPolicy TeamsVideoInteropServicePolicy TeamsVirtualAppointmentsPolicy TenantDialPlan + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsGroupPolicyAssignment + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingBroadcastPolicy Vendor Live Events 1 10/25/2019 12:40:09 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2019 12:54:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +19b881b4-c54c-4075-b1e8-a6ce55b12818 TeamsMeetingPolicy Kiosk 2 11/1/2019 8:22:06 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +0c0c1b45-bfc9-4718-b8ae-291439ac6fa4 TeamsCallingPolicy AllowCalling 2 11/1/2019 10:51:43 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +19c4909c-7d34-4e1f-b736-47caa2205768 TeamsMeetingBroadcastPolicy Employees Events 2 11/4/2019 12:56:57 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsCallingPolicy DisallowCalling 3 11/1/2019 10:53:16 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + + + + + -------------------------- Example 2 -------------------------- + Get-CsGroupPolicyAssignment -GroupId e050ce51-54bc-45b7-b3e6-c00343d31274 + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingBroadcastPolicy Vendor Live Events 1 10/25/2019 12:40:09 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsCallingPolicy AllowCalling 3 11/1/2019 10:53:16 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy kiosk 7 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + + + + + -------------------------- Example 3 -------------------------- + GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2019 12:54:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +0c0c1b45-bfc9-4718-b8ae-291439ac6fa4 TeamsCallingPolicy AllowCalling 2 11/1/2019 10:51:43 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsCallingPolicy AllowCalling 3 11/1/2019 10:53:16 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment + + + New-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment + + + Remove-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment + + + + + + Get-CsHybridTelephoneNumber + Get + CsHybridTelephoneNumber + + This cmdlet displays information about one or more hybrid telephone numbers. + + + + > [!IMPORTANT] > This cmdlet is being deprecated. Use the Get-CsPhoneNumberAssignment cmdlet to display information about one or more phone numbers. Detailed instructions on how to use the new cmdlet can be found at Get-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment)This cmdlet displays information about one or more hybrid telephone numbers used for Audio Conferencing with Direct Routing for GCC High and DoD clouds. + Returned results are sorted by telephone number in ascending order. + + + + Get-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + The identity parameter. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + + Get-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + Filters the returned results to a specific phone number. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + + + + + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + The identity parameter. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + Filters the returned results to a specific phone number. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + None + + + + + + + + + The cmdlet is available in Teams PowerShell module 4.5.0 or later. + The cmdlet is only available in GCC High and DoD cloud instances. + + + + + -------------------------- Example 1 -------------------------- + Get-CsHybridTelephoneNumber -TelephoneNumber 14025551234 + +Id O365Region SourceType TargetType TelephoneNumber UserId +-- ---------- ---------- ---------- --------------- ------ +14025551234 NOAM Hybrid 14025551234 00000000-0000-0000-0000-000000000000 + + This example displays information about the phone number +1 (402) 555-1234. + + + + -------------------------- Example 2 -------------------------- + Get-CsHybridTelephoneNumber + +Id O365Region SourceType TargetType TelephoneNumber UserId +-- ---------- ---------- ---------- --------------- ------ +14025551234 Hybrid 14025551234 +14025551235 Hybrid 14025551235 + + This example displays information about all hybrid telephone numbers in the tenant. Note that O365Region, TargetType, and UserId will not be populated. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber + + + New-CsHybridTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-cshybridtelephonenumber + + + Remove-CsHybridTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cshybridtelephonenumber + + + + + + Get-CsInboundBlockedNumberPattern + Get + CsInboundBlockedNumberPattern + + Returns a list of all blocked number patterns added to the tenant list. + + + + This cmdlet returns a list of all blocked number patterns added to the tenant list including Name, Description, Enabled (True/False), and Pattern for each. + + + + Get-CsInboundBlockedNumberPattern + + Filter + + Enables you to limit the returned data by filtering on the Identity. + + String + + String + + + None + + + + Get-CsInboundBlockedNumberPattern + + Identity + + Indicates the Identity of the blocked number patterns to return. + + String + + String + + + None + + + + + + Filter + + Enables you to limit the returned data by filtering on the Identity. + + String + + String + + + None + + + Identity + + Indicates the Identity of the blocked number patterns to return. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS> Get-CsInboundBlockedNumberPattern + + In this example, the Get-CsInboundBlockedNumberPattern cmdlet is called without any parameters in order to return all the blocked number patterns. + + + + -------------------------- Example 2 -------------------------- + PS> Get-CsInboundBlockedNumberPattern -Filter Block* + + In this example, the Get-CsInboundBlockedNumberPattern cmdlet will return all the blocked number patterns which identity starts with Block. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern + + + New-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern + + + Set-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern + + + Remove-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern + + + + + + Get-CsInboundExemptNumberPattern + Get + CsInboundExemptNumberPattern + + Returns a specific or the full list of all number patterns exempt from call blocking. + + + + This cmdlet returns a specific or all exempt number patterns added to the tenant list for call blocking including Name, Description, Enabled (True/False), and Pattern for each. + + + + Get-CsInboundExemptNumberPattern + + Filter + + Enables you to limit the returned data by filtering on Identity. + + String + + String + + + None + + + + Get-CsInboundExemptNumberPattern + + Identity + + Unique identifier for the exempt number pattern to be listed. + + String + + String + + + None + + + + + + Filter + + Enables you to limit the returned data by filtering on Identity. + + String + + String + + + None + + + Identity + + Unique identifier for the exempt number pattern to be listed. + + String + + String + + + None + + + + + + + You can use Test-CsInboundBlockedNumberPattern to test your call block and exempt phone number ranges. + + + + + -------------------------- Example 1 -------------------------- + PS>Get-CsInboundExemptNumberPattern + + This returns all exempt number patterns. + + + + -------------------------- Example 2 -------------------------- + PS>Get-CsInboundExemptNumberPattern -Identity "Exempt1" + + This returns the exempt number patterns with Identity Exempt1. + + + + -------------------------- Example 3 -------------------------- + PS>Get-CsInboundExemptNumberPattern -Filter "Exempt*" + + This example returns the exempt number patterns with Identity starting with Exempt. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern + + + New-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern + + + Set-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern + + + Remove-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern + + + Test-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern + + + Get-CsTenantBlockedCallingNumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers + + + + + + Get-CsMainlineAttendantAppointmentBookingFlow + Get + CsMainlineAttendantAppointmentBookingFlow + + The Get-CsMainlineAttendantAppointmentBookingFlow cmdlet returns the identified Mainline attendant appointment booking flow. + + + + The Get-CsMainlineAttendantAppointmentBookingFlow cmdlet lets you retrieve information about the Mainline attendant appointment booking flows n your organization. + + + + Get-CsMainlineAttendantAppointmentBookingFlow + + Identity + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + First + + The First parameter gets the first N appointment flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 appointment flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N appointment flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + + + Descending + + The Descending parameter sorts appointment booking flows in descending order + + + SwitchParameter + + + False + + + NameFilter + + The NameFilter parameter returns appointment booking flows where the name contains specified string + + String + + String + + + None + + + + + + Identity + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + First + + The First parameter gets the first N appointment flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 appointment flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N appointment flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + + + Descending + + The Descending parameter sorts appointment booking flows in descending order + + SwitchParameter + + SwitchParameter + + + False + + + NameFilter + + The NameFilter parameter returns appointment booking flows where the name contains specified string + + String + + String + + + None + + + + + + Identity + + + Represents the unique identifier of an appointment booking flow. + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsMainlineAttendantAppointmentBookingFlow + + This example gets the first 100 Mainline attendant appointment booking flows in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsMainlineAttendantAppointmentBookingFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example gets the Mainline attendant appointment booking flow with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no appointment booking flow exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmainlineattendantappointmentbookingflow + + + + + + Get-CsMainlineAttendantFlow + Get + CsMainlineAttendantFlow + + The Get-CsMainlineAttendantFlow cmdlet returns information about the Mainline Attendant flows configured in your organization + + + + The Get-CsMainlineAttendantFlow cmdlet returns information about the Mainline Attendant flows configured in your organization. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + Get-CsMainlineAttendantFlow + + ConfigurationId + + The Mainline Attendant configuration Id + + String + + String + + + None + + + Type + + The Mainline Attendant flow type + PARAMVALUE: AppointmentBooking | QuestionAnswer + + String + + String + + + None + + + Identity + + The Mainline Attendant identity + + String + + String + + + None + + + First + + The First parameter gets the first N Mainline Attendant flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 Mainline Attendant flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N Mainline Attendant flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + + + Descending + + The Descending parameter sorts Mainline Attendant flows in descending order + + + SwitchParameter + + + False + + + NameFilter + + The NameFilter parameter returns appointment booking flows where the name contains specified string + + String + + String + + + None + + + + + + ConfigurationId + + The Mainline Attendant configuration Id + + String + + String + + + None + + + Type + + The Mainline Attendant flow type + PARAMVALUE: AppointmentBooking | QuestionAnswer + + String + + String + + + None + + + Identity + + The Mainline Attendant identity + + String + + String + + + None + + + First + + The First parameter gets the first N Mainline Attendant flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 Mainline Attendant flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N Mainline Attendant flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + + + Descending + + The Descending parameter sorts Mainline Attendant flows in descending order + + SwitchParameter + + SwitchParameter + + + False + + + NameFilter + + The NameFilter parameter returns appointment booking flows where the name contains specified string + + String + + String + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsMainlineAttendantFlow + + This example will list all the Mainline Attendant flows in the tenant. + + + + -------------------------- Example 2 -------------------------- + Get-CsMainlineAttendantFlow -ConfigurationId 0b31bbe5-e2a0-4117-9b6f-956bca6023f8 + + This example will list all the Mainline Attendant flows associated with the specific configuration id. + + + + -------------------------- Example 3 -------------------------- + Get-CsMainlineAttendantFlow -Type AppointmentBooking + + This example will list all the Mainline Attendant Appointment flows. + + + + -------------------------- Example 4 -------------------------- + Get-CsMainlineAttendantFlow -Type QuestionAnswer + + This example will list all the Mainline Attendant Question and Answer flows with the specified type. + + + + -------------------------- Example 5 -------------------------- + Get-CsMainlineAttendantFlow -Identity 956bca6-e2a0-4117-9b6f-023f80b31bbe5 + + This example will list the Mainline Attendant flow with the specified identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmainlineattendantflow + + + + + + Get-CsMainlineAttendantQuestionAnswerFlow + Get + CsMainlineAttendantQuestionAnswerFlow + + The Get-CsMainlineAttendantQuestionAnswerFlow cmdlet returns the identified Mainline attendant question and answer flow. + + + + The Get-CsMainlineAttendantQuestionAnswerFlow cmdlet lets you retrieve information about the Mainline attendant question and answer flows n your organization. + + + + Get-CsMainlineAttendantQuestionAnswerFlow + + Identity + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + First + + The First parameter gets the first N appointment flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 question and answer flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N appointment flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + + + Descending + + The Descending parameter sorts appointment booking flows in descending order + + + SwitchParameter + + + False + + + NameFilter + + The NameFilter parameter returns question and answer booking flows where the name contains specified string + + String + + String + + + None + + + + + + Identity + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + First + + The First parameter gets the first N appointment flows, up to a maximum of 100 at a time. When not specified, the default behavior is to return the first 100 question and answer flows. It is intended to be used in conjunction with the `-Skip` parameter for pagination purposes. If a number greater than 100 is supplied, the request will fail. + + Int32 + + Int32 + + + 100 + + + Skip + + The Skip parameter skips the first N appointment flows. It is intended to be used in conjunction with the `-First` parameter for pagination purposes. + + Int32 + + Int32 + + + None + + + SortBy + + The SortBy parameter specifies the property used to sort. + + String + + String + + + Name + + + Descending + + The Descending parameter sorts appointment booking flows in descending order + + SwitchParameter + + SwitchParameter + + + False + + + NameFilter + + The NameFilter parameter returns question and answer booking flows where the name contains specified string + + String + + String + + + None + + + + + + Identity + + + Represents the unique identifier of a question and answer booking flow. + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsMainlineAttendantQuestionAnswerFlow + + This example gets the first 100 Mainline attendant question and answer flows in the organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsMainlineAttendantQuestionAnswerFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example gets the Mainline attendant question and answer flow with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no question and answer flow exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmainlineattendantquestionanswerflow + + + + + + Get-CsMeetingMigrationStatus + Get + CsMeetingMigrationStatus + + You use the `Get-CsMeetingMigrationStatus` cmdlet to check the status of meeting migrations. + + + + Meeting Migration Service (MMS) is a Skype for Business service that runs in the background and automatically updates Skype for Business and Microsoft Teams meetings for users. MMS is designed to eliminate the need for users to run the Meeting Migration Tool to update their Skype for Business and Microsoft Teams meetings. + You can use the `Get-CsMeetingMigrationStatus` cmdlet to check the status of meeting migrations. + + + + Get-CsMeetingMigrationStatus + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + EndTime + + > Applicable: Microsoft Teams + Specifies the end date of the date range. + + Object + + Object + + + None + + + StartTime + + > Applicable: Microsoft Teams + Specifies the start date of the date range. + + Object + + Object + + + None + + + State + + > Applicable: Microsoft Teams + With this parameter you can filter by migration state. Possible values are: + - Pending + - InProgress + - Failed + - Succeeded + + StateType + + StateType + + + None + + + SummaryOnly + + > Applicable: Microsoft Teams + Specified that you want a summary status of MMS migrations returned. + + + SwitchParameter + + + False + + + + + + EndTime + + > Applicable: Microsoft Teams + Specifies the end date of the date range. + + Object + + Object + + + None + + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + StartTime + + > Applicable: Microsoft Teams + Specifies the start date of the date range. + + Object + + Object + + + None + + + State + + > Applicable: Microsoft Teams + With this parameter you can filter by migration state. Possible values are: + - Pending + - InProgress + - Failed + - Succeeded + + StateType + + StateType + + + None + + + SummaryOnly + + > Applicable: Microsoft Teams + Specified that you want a summary status of MMS migrations returned. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + CorrelationId : 849d3e3b-3e1d-465f-8dde-785aa9e3f856 CreateDate : 2024-04-27T00:24:00.1442688Z FailedMeeting : 0 InvitesUpdate : 0 LastMessage : MigrationType : AllToTeams ModifiedDate : 2024-04-27T00:24:00.1442688Z RetryCount : 0 State : Pending SucceededMeeting : 0 TotalMeeting : 0 UserId : 27c6ee67-c71d-4386-bf84-ebfdc7c3a171 UserPrincipalName : syntest1-prod@TESTTESTMMSSYNTHETICUSWESTT.onmicrosoft.com + where MigrationType can have the following values: + - SfbToTeams (Skype for Business On-prem to Teams) - TeamsToTeams (Teams to Teams) - ToSameType (Same source and target meeting types) - AllToTeams (All types to Teams) + + + + + -------------------------- Example 1 -------------------------- + Get-CsMeetingMigrationStatus -SummaryOnly + + This example is used to get a summary status of all MMS migrations. + + + + -------------------------- Example 2 -------------------------- + Get-CsMeetingMigrationStatus -Identity "ashaw@contoso.com" + + This example gets the meeting migration status for user ashaw@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmeetingmigrationstatus + + + Get-CsTenantMigrationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantmigrationconfiguration + + + Get-CsOnlineDialInConferencingTenantSettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantsettings + + + Start-CsExMeetingMigration + https://learn.microsoft.com/powershell/module/microsoftteams/start-csexmeetingmigration + + + + + + Get-CsOnlineApplicationInstance + Get + CsOnlineApplicationInstance + + Get application instance for the tenant from Microsoft Entra ID. + + + + This cmdlet is used to get details of an application instance. + + + + Get-CsOnlineApplicationInstance + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Identities + + > Applicable: Microsoft Teams + The UPNs or the object IDs of the application instances to retrieve, separated with comma. If this parameter nor parameter Identity are not provided, it will retrieve all application instances in the tenant. + + System.String + + System.String + + + None + + + Identity + + > Applicable: Microsoft Teams + The UPN or the object ID of the application instance to retrieve. If this parameter nor parameter Identities are not provided, it will retrieve all application instances in the tenant. + + System.String + + System.String + + + None + + + ResultSize + + > Applicable: Microsoft Teams + The result size for bulk get. This parameter is currently not working. + + System.Int32 + + System.Int32 + + + None + + + Skip + + > Applicable: Microsoft Teams + Skips the first specified number of returned results. The default value is 0. This parameter is currently not working. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identities + + > Applicable: Microsoft Teams + The UPNs or the object IDs of the application instances to retrieve, separated with comma. If this parameter nor parameter Identity are not provided, it will retrieve all application instances in the tenant. + + System.String + + System.String + + + None + + + Identity + + > Applicable: Microsoft Teams + The UPN or the object ID of the application instance to retrieve. If this parameter nor parameter Identities are not provided, it will retrieve all application instances in the tenant. + + System.String + + System.String + + + None + + + ResultSize + + > Applicable: Microsoft Teams + The result size for bulk get. This parameter is currently not working. + + System.Int32 + + System.Int32 + + + None + + + Skip + + > Applicable: Microsoft Teams + Skips the first specified number of returned results. The default value is 0. This parameter is currently not working. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineApplicationInstance -Identity appinstance01@contoso.com + + This example returns the application instance with identity "appinstance01@contoso.com". + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineApplicationInstance -Identities appinstance01@contoso.com,appinstance02@contoso.com + + This example returns the application instance with identities "appinstance01@contoso.com" and "appinstance02@contoso.com". Query with multiple comma separated Identity. + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineApplicationInstance -ResultSize 10 + + This example returns the first 10 application instances. + + + + -------------------------- Example 4 -------------------------- + Get-CsOnlineApplicationInstance + + This example returns the details of all application instances. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance + + + Set-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance + + + New-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance + + + Find-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance + + + Sync-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance + + + + + + Get-CsOnlineApplicationInstanceAssociation + Get + CsOnlineApplicationInstanceAssociation + + Use the Get-CsOnlineApplicationInstanceAssociation cmdlet to get information about the associations setup in your organization. + + + + Use the Get-CsOnlineApplicationInstanceAssociation cmdlet to get information about the associations setup between online application instances and the application configurations, like auto attendants and call queues. + + + + Get-CsOnlineApplicationInstanceAssociation + + Identity + + > Applicable: Microsoft Teams + The identity for the application instance whose association is to be retrieved. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The identity for the application instance whose association is to be retrieved. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Get-CsOnlineApplicationInstanceAssociation cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineApplicationInstanceAssociation -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + + This example gets the association object for the application instance that has the identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation + + + Get-CsOnlineApplicationInstanceAssociationStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus + + + New-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation + + + Remove-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation + + + + + + Get-CsOnlineApplicationInstanceAssociationStatus + Get + CsOnlineApplicationInstanceAssociationStatus + + Use the Get-CsOnlineApplicationInstanceAssociationStatus cmdlet to get the provisioning status for the associations you have setup in your organization. + + + + Use the Get-CsOnlineApplicationInstanceAssociationStatus cmdlet to get provisioning status for the associations you have setup between online application instances and the application configurations, like auto attendants and call queues. + + + + Get-CsOnlineApplicationInstanceAssociationStatus + + Identity + + > Applicable: Microsoft Teams + The identity for the application instance whose association provisioning status is to be retrieved. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The identity for the application instance whose association provisioning status is to be retrieved. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Get-CsOnlineApplicationInstanceAssociationStatus cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineApplicationInstanceAssociationStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + + This example gets the provisioning status for the association object of the application instance that has the identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus + + + Get-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation + + + New-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation + + + Remove-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation + + + + + + Get-CsOnlineAudioConferencingRoutingPolicy + Get + CsOnlineAudioConferencingRoutingPolicy + + This cmdlet retrieves all online audio conferencing routing policies for the tenant. + + + + Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. + To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." + The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. + Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. + + + + Get-CsOnlineAudioConferencingRoutingPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + Get-CsOnlineAudioConferencingRoutingPolicy + + Identity + + The identity of the Online Audio Conferencing Routing Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + The identity of the Online Audio Conferencing Routing Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlineAudioConferencingRoutingPolicy + + Retrieves all Online Audio Conferencing Routing Policy instances + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudioconferencingroutingpolicy + + + New-CsOnlineAudioConferencingRoutingPolicy + + + + Remove-CsOnlineAudioConferencingRoutingPolicy + + + + Grant-CsOnlineAudioConferencingRoutingPolicy + + + + Set-CsOnlineAudioConferencingRoutingPolicy + + + + + + + Get-CsOnlineAudioFile + Get + CsOnlineAudioFile + + Returns information about a specific or all uploaded audio files of a given application type. + + + + This cmdlet returns information on a specific or all uploaded audio files of a given application type. If you are not specifying any parameters you will get information of all uploaded audio files with ApplicationId = TenantGlobal. + + + + Get-CsOnlineAudioFile + + ApplicationId + + The ApplicationId parameter specifies the identifier for the application that was specified when audio file was uploaded. For example, if the audio file is used with an auto attendant, then it should specified as "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be specified as "HuntGroup". If the audio file is used for music on hold, the it needs to specified as "TenantGlobal". + If you are not specifying an ApplicationId it is assumed to be TenantGlobal. + Supported values: + - OrgAutoAttendant + - HuntGroup + - TenantGlobal + + System.String + + System.String + + + TenantGlobal + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Id of the specific audio file that you would like to see information about. If you are only specifying -Identity, the -ApplicationId it is assumed to be TenantGlobal. + If you need to see the information of a specific audio file with ApplicationId of OrgAutoAttendant or HuntGroup, you need to specify -ApplicationId with the corresponding value and -Identity with the Id of the audio file. + + System.String + + System.String + + + None + + + + + + ApplicationId + + The ApplicationId parameter specifies the identifier for the application that was specified when audio file was uploaded. For example, if the audio file is used with an auto attendant, then it should specified as "OrgAutoAttendant". If the audio file is used with a hunt group (call queue), then it needs to be specified as "HuntGroup". If the audio file is used for music on hold, the it needs to specified as "TenantGlobal". + If you are not specifying an ApplicationId it is assumed to be TenantGlobal. + Supported values: + - OrgAutoAttendant + - HuntGroup + - TenantGlobal + + System.String + + System.String + + + TenantGlobal + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Id of the specific audio file that you would like to see information about. If you are only specifying -Identity, the -ApplicationId it is assumed to be TenantGlobal. + If you need to see the information of a specific audio file with ApplicationId of OrgAutoAttendant or HuntGroup, you need to specify -ApplicationId with the corresponding value and -Identity with the Id of the audio file. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PS module 2.4.0-preview or later. + If you call the cmdlet without having uploaded any audio files, with a non-existing Identity or with an illegal ApplicationId, you will receive a generic error message. In addition, the ApplicationId is case sensitive. + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineAudioFile + +Id : 85364afb59a143fc9466979e0f34f749 +FileName : CustomMoH.mp3 +ApplicationId : TenantGlobal +MarkedForDeletion : False + + This returns information about all uploaded audio files with ApplicationId = TenantGlobal. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineAudioFile -ApplicationId HuntGroup -Identity dcfcc31daa9246f29d94d0a715ef877e + +Id : dcfcc31daa9246f29d94d0a715ef877e +FileName : SupportCQ.mp3 +ApplicationId : HuntGroup +MarkedForDeletion : False + + This cmdlet returns information about the audio file with Id dcfcc31daa9246f29d94d0a715ef877e and with ApplicationId = HuntGroup. + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineAudioFile -ApplicationId OrgAutoAttendant + +Id : 58083ae8bc9e4a66a6b2810b2e1f4e4e +FileName : MainAAAnnouncement.mp3 +ApplicationId : OrgAutoAttendant +MarkedForDeletion : False + + This cmdlet returns information about all uploaded audio files with ApplicationId = OrgAutoAttendant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile + + + Export-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + Remove-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile + + + + + + Get-CsOnlineDialInConferencingBridge + Get + CsOnlineDialInConferencingBridge + + Use the Get-CsOnlineDialInConferencingBridge cmdlet to view the settings on an audio conferencing bridge that is used when Microsoft is the audio conferencing provider. + + + + The Get-CsOnlineDialInConferencingBridge cmdlet is used to view all of the settings for all dial-in conferencing bridges or for a specific dial-in conferencing bridge. However, if the PSTN conferencing service status of the tenant is Disabled, no results will be displayed. + + + + Get-CsOnlineDialInConferencingBridge + + Identity + + > Applicable: Skype for Business Online + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. + + Guid + + Guid + + + None + + + DomainController + + > Applicable: Skype for Business Online + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): + `-DomainController atl-cs-001.Contoso.com` + Computer name: + `-DomainController atl-cs-001` + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Skype for Business Online + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Name + + > Applicable: Skype for Business Online + Specifies the name of the audio conferencing bridge. + + String + + String + + + None + + + Tenant + + > Applicable: Skype for Business Online + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Skype for Business Online + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + DomainController + + > Applicable: Skype for Business Online + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): + `-DomainController atl-cs-001.Contoso.com` + Computer name: + `-DomainController atl-cs-001` + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Skype for Business Online + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Skype for Business Online + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. + + Guid + + Guid + + + None + + + Name + + > Applicable: Skype for Business Online + Specifies the name of the audio conferencing bridge. + + String + + String + + + None + + + Tenant + + > Applicable: Skype for Business Online + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Skype for Business Online + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + None + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineDialInConferencingBridge | fl + + This example shows how to return all of the audio conferencing bridges that are being used and returns the results in a formatted list. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineDialInConferencingBridge -Tenant 26efe125-c070-46f9-8ed0-fc02165a167c + + This example shows how to return all of the audio conferencing bridges for the given tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skype/get-csonlinedialinconferencingbridge + + + + + + Get-CsOnlineDialInConferencingLanguagesSupported + Get + CsOnlineDialInConferencingLanguagesSupported + + Use the Get-CsOnlineDialInConferencingLanguagesSupported cmdlet to view the list of languages that are supported when an organization uses Microsoft as the dial-in audio conferencing provider. + + + + The Get-CsOnlineDialInConferencingLanguagesSupported cmdlet is used to view the primary and secondary languages that are set for a dial-in conferencing service number. There is a primary language that is set along with secondary languages (up to 4) that can also be set. + Primary and secondary languages are those languages that are used to play prompts when a caller calls into a dial-in service number. When no languages are specified for a dial-in service number it will get the set of default languages. + + + + Get-CsOnlineDialInConferencingLanguagesSupported + + DomainController + + > Applicable: Skype for Business Online + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` + Computer name: `-DomainController atl-cs-001` + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Skype for Business Online + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + + + + DomainController + + > Applicable: Skype for Business Online + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` + Computer name: `-DomainController atl-cs-001` + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Skype for Business Online + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineDialInConferencingLanguagesSupported | fl + + This example allows returns the list of supported languages when you are using Microsoft as your dial-in audio conferencing provider and displays them in a formatted list. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skype/get-csonlinedialinconferencinglanguagessupported + + + + + + Get-CsOnlineDialinConferencingPolicy + Get + CsOnlineDialinConferencingPolicy + + Retrieves the available Dial-in Conferencing policies in the tenant. + + + + Retrieves the available Dial-in Conferencing policies in the tenant. + + + + Get-CsOnlineDialinConferencingPolicy + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope and, in some cases the name, of the policy. If this parameter is omitted, all policies for the organization are returned. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Microsoft Teams + This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. + + String + + String + + + None + + + LocalStore + + > Applicable: Microsoft Teams + Reserved for Microsoft Internal use. + + + SwitchParameter + + + False + + + + + + Filter + + > Applicable: Microsoft Teams + This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + A unique identifier specifying the scope and, in some cases the name, of the policy. If this parameter is omitted, all policies for the organization are returned. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + > Applicable: Microsoft Teams + Reserved for Microsoft Internal use. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineDialinConferencingPolicy + + This example retrieves all the available Dial in Conferencing policies in the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingpolicy + + + + + + Get-CsOnlineDialInConferencingServiceNumber + Get + CsOnlineDialInConferencingServiceNumber + + Use the Get-CsOnlineDialInConferencingServiceNumber cmdlet to return all of the default dial-in service numbers that are assigned to an Office 365 audio conferencing bridge. + + + + The Get-CsOnlineDialInConferencingServiceNumber cmdlet returns all of the dial-in service numbers for a given tenant or Office 365 organization that are assigned to an audio conferencing bridge. If the cmdlet is run by a tenant administrator for an organization, it will run within the tenant's scope. A tenant administrator can only retrieve and view information that is associated with their organization. + + + + Get-CsOnlineDialInConferencingServiceNumber + + Identity + + > Applicable: Microsoft Teams + Specifies the default dial-in service number string. + + String + + String + + + None + + + BridgeId + + > Applicable: Microsoft Teams + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. When it's used it returns all of the service numbers that are configured on the audio conferencing bridge. + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams + Specifies the name of the audio conferencing bridge. When it is used it returns all of the service numbers that are configured on the audio conferencing bridge. + + String + + String + + + None + + + City + + > Applicable: Microsoft Teams + Specifies the city geocode to be used. When used it lists all of the service numbers for a specific city geocode. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com.` + Computer name: `-DomainController atl-cs-001` + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. + The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + BridgeId + + > Applicable: Microsoft Teams + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. When it's used it returns all of the service numbers that are configured on the audio conferencing bridge. + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams + Specifies the name of the audio conferencing bridge. When it is used it returns all of the service numbers that are configured on the audio conferencing bridge. + + String + + String + + + None + + + City + + > Applicable: Microsoft Teams + Specifies the city geocode to be used. When used it lists all of the service numbers for a specific city geocode. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com.` + Computer name: `-DomainController atl-cs-001` + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the default dial-in service number string. + + String + + String + + + None + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. + The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineDialInConferencingServiceNumber | fl + + This example returns all of the default service numbers for an organization in a formatted list. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineDialInConferencingServiceNumber -BridgeId 72dfe128-d079-46f8-8tr0-gb12369p167c | fl + + This example returns all of the default service numbers for a specified audio conferencing bridge in a formatted list. + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineDialInConferencingBridge -Name "Conference Bridge" + + This example returns all of the default service numbers for the audio conferencing bridge named "Conference Bridge". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingservicenumber + + + + + + Get-CsOnlineDialinConferencingTenantConfiguration + Get + CsOnlineDialinConferencingTenantConfiguration + + Use the Get-CsOnlineDialinConferencingTenantConfiguration cmdlet to retrieve the tenant level configuration for dial-in conferencing. + + + + The dial-in conferencing configuration specifies only if dial-in conferencing is enabled for the tenant. By contrast, the dial-in conferencing tenant settings specify what functions are available during a conference call. For example, whether or not entries and exits from the call are announced. The settings also manage some of the administrative functions, such as when users get notification of administrative actions, like a PIN change. For more information on settings and their customization, see Set-CsOnlineDialInConferencingTenantSettings. + This cmdlet currently displays only the enabled or disabled status of your tenant configuration. There is one configuration per tenant. + + + + Get-CsOnlineDialinConferencingTenantConfiguration + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + LocalStore + + > Applicable: Microsoft Teams + Retrieves the configuration from the local replica of the Central Management store rather than from the Central Management store itself. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + > Applicable: Microsoft Teams + Retrieves the configuration from the local replica of the Central Management store rather than from the Central Management store itself. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.WritableConfig.Settings.OnLineDialInConferencing.OnLineDialInConferencingTenantConfiguration + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineDialinConferencingTenantConfiguration + + This example returns the configuration for the tenant administrator's organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantconfiguration + + + + + + Get-CsOnlineDialInConferencingTenantSettings + Get + CsOnlineDialInConferencingTenantSettings + + Use the Get-CsOnlineDialInConferencingTenantSettings cmdlet to retrieve tenant level settings for dial-in conferencing. + + + + + + + + Get-CsOnlineDialInConferencingTenantSettings + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + LocalStore + + > Applicable: Microsoft Teams + Retrieves the settings from the local replica of the Central Management store rather than from the Central Management store itself. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + > Applicable: Microsoft Teams + Retrieves the settings from the local replica of the Central Management store rather than from the Central Management store itself. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.WritableConfig.Settings.OnLineDialInConferencing.OnLineDialInConferencingTenantSettings + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineDialInConferencingTenantSettings + + This example returns the global setting for the tenant administrator's organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantsettings + + + + + + Get-CsOnlineDialInConferencingUser + Get + CsOnlineDialInConferencingUser + + Use the `Get-CsOnlineDialInConferencingUser` cmdlet to view the properties and settings of users that are enabled for dial-in conferencing and are using Microsoft as their PSTN conferencing provider. + + + + This cmdlet will only return users that have been enabled for audio conferencing using Microsoft as the audio conferencing provider. Users that are enabled for audio conferencing using a third-party audio conferencing provider won't be returned. If there are no users in the organization that have been enabled for audio conferencing, then the cmdlet will return no results. + The see a list of users with conferencing providers other than Microsoft use the Get-CsUserAcp cmdlet. NOTE : In the Teams PowerShell Module version 3.0 or later, the following input parameters have been deprecated for TeamsOnly customers (removed or very low usage): + - BridgeId + - BridgeName + - DomainController + - Force + - LdapFilter + - ServiceNumber + - TenantDomain + - Common Parameters + + + + Get-CsOnlineDialInConferencingUser + + Identity + + > Applicable: Microsoft Teams + Specifies the user to retrieve. The user can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + BridgeId + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Specifies the name for the audio conferencing bridge. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + LdapFilter + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are not specific to Skype for Business Server 2015). For example, you can limit returned data to users who work in a specific department, or users who have a specified manager or job title. The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns only users who work in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L) representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and "Redmond" representing the filter value. + + String + + String + + + None + + + ResultSize + + > Applicable: Microsoft Teams + Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. + + Int32 + + Int32 + + + None + + + ServiceNumber + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Specifies a service number to serve as a filter for the returned user collection. Only users who have been assigned the specified number will be returned. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + NOTE: This parameter is reserved for internal Microsoft use. + Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + This parameter is reserved for internal Microsoft use. + + Object + + Object + + + None + + + + + + BridgeId + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Specifies the name for the audio conferencing bridge. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the user to retrieve. The user can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + LdapFilter + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Enables you to limit the returned data by filtering on generic Active Directory attributes (that is, attributes that are not specific to Skype for Business Server 2015). For example, you can limit returned data to users who work in a specific department, or users who have a specified manager or job title. The LdapFilter parameter uses the LDAP query language when creating filters. For example, a filter that returns only users who work in the city of Redmond would look like this: "l=Redmond", with "l" (a lowercase L) representing the Active Directory attribute (locality); "=" representing the comparison operator (equal to); and "Redmond" representing the filter value. + + String + + String + + + None + + + ResultSize + + > Applicable: Microsoft Teams + Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. + + Int32 + + Int32 + + + None + + + ServiceNumber + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Specifies a service number to serve as a filter for the returned user collection. Only users who have been assigned the specified number will be returned. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + NOTE: This parameter is reserved for internal Microsoft use. + Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308". You can find your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + This parameter is reserved for internal Microsoft use. + + Object + + Object + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlineDialInConferencingUser -Identity Ken.Myer@contoso.com + + This example uses the User Principal Name (UPN) to retrieve the BridgeID and ServiceNumber information. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencinguser + + + Set-CsOnlineDialInConferencingUser + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencinguser + + + + + + Get-CsOnlineDialOutPolicy + Get + CsOnlineDialOutPolicy + + Use the `Get-CsOnlineDialOutPolicy` cmdlet to get all the available outbound calling restriction policies in your organization. + + + + In Microsoft Teams, outbound calling restriction policies are used to restrict the type of audio conferencing and end user PSTN calls that can be made by users in your organization. The policies apply to all the different PSTN connectivity options for Microsoft Teams; Calling Plan, Direct Routing, and Operator Connect. + To get all the available policies in your organization run `Get-CsOnlineDialOutPolicy`. To assign one of these policies to a user run `Grant-CsDialoutPolicy`. + + + + Get-CsOnlineDialOutPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + + Get-CsOnlineDialOutPolicy + + Identity + + Unique identifier of the outbound calling restriction policy to be returned. To refer to the global policy, use this syntax: "-Identity Global". To refer to a per-user policy, use syntax similar to this: -Identity DialoutCPCandPSTNDisabled. + If this parameter is omitted, then all the outbound calling restriction policies configured for use in your tenant will be returned. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the per-user policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + Unique identifier of the outbound calling restriction policy to be returned. To refer to the global policy, use this syntax: "-Identity Global". To refer to a per-user policy, use syntax similar to this: -Identity DialoutCPCandPSTNDisabled. + If this parameter is omitted, then all the outbound calling restriction policies configured for use in your tenant will be returned. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineDialOutPolicy + + In Example 1, `Get-CsOnlineDialOutPolicy` is called without any additional parameters; this returns a collection of all the outbound calling restriction policies configured for use in your organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineDialOutPolicy -Identity DialoutCPCandPSTNDisabled + + In Example 2, `Get-CsOnlineDialOutPolicy` is used to return the per-user outbound calling restriction policy that has an Identity DialoutCPCandPSTNDisabled. Because identities are unique, this command will never return more than one item. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialoutpolicy + + + Grant-CsDialoutPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csdialoutpolicy + + + + + + Get-CsOnlineDirectoryTenant + Get + CsOnlineDirectoryTenant + + Use the Get-CsOnlineDirectoryTenant cmdlet to retrieve a tenant and associated parameters from the Business Voice Directory. + + + + Note : Starting with Teams PowerShell Module 4.0, this cmdlet will be deprecated. Use the Get-CsTenant or Get-CsOnlineDialInConferencingBridge cmdlet to view information previously present in Get-CsOnlineDirectoryTenant. + Use the Get-CsOnlineDirectoryTenant cmdlet to retrieve tenant parameters like AnnouncementsDisabled, NameRecordingDisabled and Bridges from the Business Voice Directory. + + + + Get-CsOnlineDirectoryTenant + + Tenant + + > Applicable: Microsoft Teams + Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can find your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter are either the fully qualified domain name (FQDN) or the computer name. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter are either the fully qualified domain name (FQDN) or the computer name. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can find your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + Deserialized.Microsoft.Rtc.Management.Hosted.Bvd.Types.LacTenant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineDirectoryTenant -Tenant 7a205197-8e59-487d-b9fa-3fc1b108f1e5 + + This example returns the tenant specified by GUID. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedirectorytenant + + + Get-CsOnlineTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumber + + + + + + Get-CsOnlineEnhancedEmergencyServiceDisclaimer + Get + CsOnlineEnhancedEmergencyServiceDisclaimer + + Use the Get-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet to determine whether your organization has accepted the terms and conditions of enhanced emergency service. + + + + You can use this cmdlet to determine whether your organization has accepted the terms and conditions of enhanced emergency service. The United States is currently the only country supported. + + + + Get-CsOnlineEnhancedEmergencyServiceDisclaimer + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the region or country whose terms and conditions you wish to verify. The United States is currently the only country supported, but it must be specified as "US". + + CountryInfo + + CountryInfo + + + None + + + DomainController + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + Version + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the region or country whose terms and conditions you wish to verify. The United States is currently the only country supported, but it must be specified as "US". + + CountryInfo + + CountryInfo + + + None + + + DomainController + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + Version + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + None + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineEnhancedEmergencyServiceDisclaimer -CountryOrRegion "US" + + This example returns your organization's enhanced emergency service terms and conditions acceptance status. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineenhancedemergencyservicedisclaimer + + + Set-CsOnlineEnhancedEmergencyServiceDisclaimer + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineenhancedemergencyservicedisclaimer + + + + + + Get-CsOnlineLisCivicAddress + Get + CsOnlineLisCivicAddress + + Use the Get-CsOnlineLisCivicAddress cmdlet to retrieve information about existing emergency civic addresses defined in the Location Information Service (LIS). + + + + Returns one or more emergency civic addresses. + + + + Get-CsOnlineLisCivicAddress + + AssignmentStatus + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Specifies whether the retrieved addresses have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". + + String + + String + + + None + + + City + + > Applicable: Microsoft Teams + Specifies the city of the target civic address. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the identity of the civic address to return. + + Guid + + Guid + + + None + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the target civic address. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the target civic address. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + LocationId + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + NumberOfResultsToSkip + + > Applicable: Microsoft Teams + Specifies the number of results to skip. If there are a large number of civic addresses, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return civic addresses 26-50 for Seattle. + `Get-CsOnlineLisCivicAddress -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` + + Int32 + + Int32 + + + None + + + PopulateNumberOfTelephoneNumbers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of phone numbers at the returned addresses. + + + SwitchParameter + + + False + + + PopulateNumberOfVoiceUsers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned addresses. + + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the maximum number of results to return. + + Int32 + + Int32 + + + None + + + ValidationStatus + + > Applicable: Microsoft Teams + Specifies the validation status of the addresses to be returned. Valid inputs are: Valid, Invalid, and Notvalidated. + + String + + String + + + None + + + + + + AssignmentStatus + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Specifies whether the retrieved addresses have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". + + String + + String + + + None + + + City + + > Applicable: Microsoft Teams + Specifies the city of the target civic address. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the identity of the civic address to return. + + Guid + + Guid + + + None + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the target civic address. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the target civic address. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + LocationId + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + NumberOfResultsToSkip + + > Applicable: Microsoft Teams + Specifies the number of results to skip. If there are a large number of civic addresses, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return civic addresses 26-50 for Seattle. + `Get-CsOnlineLisCivicAddress -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` + + Int32 + + Int32 + + + None + + + PopulateNumberOfTelephoneNumbers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of phone numbers at the returned addresses. + + SwitchParameter + + SwitchParameter + + + False + + + PopulateNumberOfVoiceUsers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned addresses. + + SwitchParameter + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the maximum number of results to return. + + Int32 + + Int32 + + + None + + + ValidationStatus + + > Applicable: Microsoft Teams + Specifies the validation status of the addresses to be returned. Valid inputs are: Valid, Invalid, and Notvalidated. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineLisCivicAddress -CivicAddressId 235678321ee38d9a5-33dc-4a32-9fb8-f234cedb91ac + + This example returns the civic address with the specified identification. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineLisCivicAddress -City Seattle + + This example returns all the civic addresses in the city of Seattle. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress + + + Set-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress + + + New-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress + + + Remove-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress + + + + + + Get-CsOnlineLisLocation + Get + CsOnlineLisLocation + + Use the Get-CsOnlineLisLocation cmdlet to retrieve information on previously defined locations in the Location Information Service (LIS.) + + + + + + + + Get-CsOnlineLisLocation + + AssignmentStatus + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". + + String + + String + + + None + + + City + + > Applicable: Microsoft Teams + Specifies the city of the target location. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the identification number of the civic address that is associated with the target locations. + + Guid + + Guid + + + None + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the target location. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the civic address that is associated with the target locations. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + NumberOfResultsToSkip + + > Applicable: Microsoft Teams + Specifies the number of results to skip. If there are a large number of locations, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return locations 26-50 for Seattle. + `Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` + + Int32 + + Int32 + + + None + + + PopulateNumberOfTelephoneNumbers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. + + + SwitchParameter + + + False + + + PopulateNumberOfVoiceUsers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned locations. + + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the maximum number of results to return. + + Int32 + + Int32 + + + None + + + ValidationStatus + + > Applicable: Microsoft Teams + Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. + + String + + String + + + None + + + + Get-CsOnlineLisLocation + + AssignmentStatus + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". + + String + + String + + + None + + + City + + > Applicable: Microsoft Teams + Specifies the city of the target location. + + String + + String + + + None + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the target location. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the civic address that is associated with the target locations. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Location + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the location to retrieve. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + + + NumberOfResultsToSkip + + > Applicable: Microsoft Teams + Specifies the number of results to skip. If there are a large number of locations, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return locations 26-50 for Seattle. + `Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` + + Int32 + + Int32 + + + None + + + PopulateNumberOfTelephoneNumbers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. + + + SwitchParameter + + + False + + + PopulateNumberOfVoiceUsers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned locations. + + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the maximum number of results to return. + + Int32 + + Int32 + + + None + + + ValidationStatus + + > Applicable: Microsoft Teams + Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. + + String + + String + + + None + + + + Get-CsOnlineLisLocation + + AssignmentStatus + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". + + String + + String + + + None + + + City + + > Applicable: Microsoft Teams + Specifies the city of the target location. + + String + + String + + + None + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the target location. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the civic address that is associated with the target locations. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the target location. + + Guid + + Guid + + + None + + + NumberOfResultsToSkip + + > Applicable: Microsoft Teams + Specifies the number of results to skip. If there are a large number of locations, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return locations 26-50 for Seattle. + `Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` + + Int32 + + Int32 + + + None + + + PopulateNumberOfTelephoneNumbers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. + + + SwitchParameter + + + False + + + PopulateNumberOfVoiceUsers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned locations. + + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the maximum number of results to return. + + Int32 + + Int32 + + + None + + + ValidationStatus + + > Applicable: Microsoft Teams + Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. + + String + + String + + + None + + + + + + AssignmentStatus + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Specifies whether the retrieved locations have been assigned to users or not. Valid inputs are "Assigned", or "Unassigned". + + String + + String + + + None + + + City + + > Applicable: Microsoft Teams + Specifies the city of the target location. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the identification number of the civic address that is associated with the target locations. + + Guid + + Guid + + + None + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the target location. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the civic address that is associated with the target locations. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Location + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the location to retrieve. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the target location. + + Guid + + Guid + + + None + + + NumberOfResultsToSkip + + > Applicable: Microsoft Teams + Specifies the number of results to skip. If there are a large number of locations, you can limit the number of results by using the ResultSize parameter. If you limited the first cmdlet execution to 25 results, and want to look at the next 25 locations, then you leave ResultSize at 25 and set NumberOfResultsToSkip to 25 to omit the first 25 you've reviewed. For example the command below will return locations 26-50 for Seattle. + `Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -NumberOfResultsToSkip 25` + + Int32 + + Int32 + + + None + + + PopulateNumberOfTelephoneNumbers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. + + SwitchParameter + + SwitchParameter + + + False + + + PopulateNumberOfVoiceUsers + + > Applicable: Microsoft Teams + If present, the PopulateNumberOfVoiceUsers switch causes the cmdlet to provide the number of voice users at the returned locations. + + SwitchParameter + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the maximum number of results to return. + + Int32 + + Int32 + + + None + + + ValidationStatus + + > Applicable: Microsoft Teams + Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. + + String + + String + + + None + + + + + + None + + + + + + + + + + PSObject + + + Returns an instance, or instances of emergency location objects. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -ValidationStatus Validated + + This example returns a maximum of 25 validated locations in Seattle. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineLisLocation -CivicAddressId a363a9b8-1acd-41de-916a-296c7998a024 + + This example returns the locations associated with a civic address specified by its unique identifier. + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineLisLocation -Location "3rd Floor Cafe" + + This example returns the location described as the "3rd Floor Cafe". + + + + -------------------------- Example 4 -------------------------- + Get-CsOnlineLisLocation -LocationId 5aa884e8-d548-4b8e-a289-52bfd5265a6e + + This example returns the information on one location specified by its unique identifier. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation + + + Set-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation + + + New-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation + + + Remove-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation + + + + + + Get-CsOnlineLisPort + Get + CsOnlineLisPort + + Retrieves one or more ports from the location configuration database. + + + + Each port can be associated with a location, in which case this cmdlet will also retrieve the location information of the ports. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on associations between physical locations and the port through which the client is connected. + + + + Get-CsOnlineLisPort + + ChassisID + + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PortID + + > Applicable: Microsoft Teams + This parameter identifies the ID of the port. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + ChassisID + + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PortID + + > Applicable: Microsoft Teams + This parameter identifies the ID of the port. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + System.Guid + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineLisPort + +PortID ChassisID LocationId Description +------ --------- ---------- ----------- +G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a +S2/0/25 F6-26-79-B5-3D-49 d7714269-ee52-4635-97b0-d7c228801d24 + + Example 1 retrieves all Location Information Server (LIS) ports and any associated locations. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineLisPort -ChassisID 'B8-BE-BF-4A-A3-00' -PortID 'G1/0/30' + +PortID ChassisID LocationId Description +------ --------- ---------- ----------- +G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a + + Example 2 retrieves the location information for port G1/0/30 with ChassisID B8-BE-BF-4A-A3-00. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport + + + Set-CsOnlineLisPort + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport + + + Remove-CsOnlineLisPort + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisport + + + + + + Get-CsOnlineLisSubnet + Get + CsOnlineLisSubnet + + Retrieves one or more subnets from the location configuration database. + + + + Each subnet can be associated with a location, in which case this cmdlet will also retrieve the location information of the subnets. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on associations between physical locations and the subnet through which calls are routed. + The location ID which is associating with the subnet is not required to be the existing location. + + + + Get-CsOnlineLisSubnet + + TenantId + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + Subnet + + > Applicable: Microsoft Teams + The IP address of the subnet. This value can be either IPv4 or IPv6 format. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Subnet + + > Applicable: Microsoft Teams + The IP address of the subnet. This value can be either IPv4 or IPv6 format. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TenantId + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + System.Guid + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineLisSubnet + + Example 1 retrieves all Location Information Server (LIS) subnets. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineLisSubnet -Subnet 10.106.89.12 + + Example 2 retrieves the Location Information Server (LIS) subnet for Subnet ID "10.106.89.12". + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineLisSubnet -Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e + + Example 2 retrieves the Location Information Server (LIS) subnet for Subnet ID "2001:4898:e8:6c:90d2:28d4:76a4:ec5e". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelissubnet + + + + + + Get-CsOnlineLisSwitch + Get + CsOnlineLisSwitch + + Retrieves one or more network switches from the location configuration database. + + + + Each switch can be associated with a location, in which case this cmdlet will also retrieve the location information of the switches. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on associations between physical locations and the network switch through which the client is connected. + + + + Get-CsOnlineLisSwitch + + ChassisID + + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + ChassisID + + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + System.String + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineLisSwitch + +ChassisID LocationId Description +--------- ---------- ----------- +B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 +F6-26-79-B5-3D-49 d7714269-ee52-4635-97b0-d7c228801d24 USSwitch1 + + Example 1 retrieves all Location Information Server (LIS) switches and any associated locations. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineLisSwitch -ChassisID B8-BE-BF-4A-A3-00 + +ChassisID LocationId Description +--------- ---------- ----------- +B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 + + Example 2 retrieves Location Information Server (LIS) switch "B8-BE-BF-4A-A3-00" and associated location. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch + + + Set-CsOnlineLisSwitch + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch + + + Remove-CsOnlineLisSwitch + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisswitch + + + + + + Get-CsOnlineLisWirelessAccessPoint + Get + CsOnlineLisWirelessAccessPoint + + Retrieves one or more wireless access points (WAPs) from the location configuration database. + + + + Each WAP can be associated with a location, in which case this cmdlet will also retrieve the location information of the WAPs. This location association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet retrieves information on associations between physical locations and the WAP through which the client is connected. + The BSSID (Basic Service Set Identifiers) is used to describe sections of a wireless local area network. It is the MAC of the 802.11 side of the access point. The BSSID parameter in this command also supports the wildcard format to cover all BSSIDs in the range which are sharing the same description and Location ID. The wildcard '*' can be on either the last one or two character(s). + If a BSSID with a wildcard format is already exists, a location request with a WAP which is within this wildcard range will return the access point that is configured with the wildcard format. + + + + Get-CsOnlineLisWirelessAccessPoint + + BSSID + + > Applicable: Microsoft Teams + The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + BSSID + + > Applicable: Microsoft Teams + The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineLisWirelessAccessPoint + +BSSID LocationId Description +----- ---------- ----------- +F0-6E-0B-C2-03-23 d7714269-ee52-4635-97b0-d7c228801d24 USWAP1 +34-E3-80-D5-AB-60 9905bca0-6fb0-11ec-84a4-25019013784a DKWAP1 +F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs + + Example 1 retrieves all Location Information Server (LIS) wireless access points and any associated locations. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-23 + +BSSID LocationId Description +----- ---------- ----------- +F0-6E-0B-C2-03-23 d7714269-ee52-4635-97b0-d7c228801d24 USWAP1 + + Example 2 retrieves Location Information Server (LIS) wireless access point "F0-6E-0B-C2-03-23" and associated location. + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-* + +BSSID LocationId Description +----- ---------- ----------- +F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs + + Example 3 retrieves Location Information Server (LIS) wireless access point "F0-6E-0B-C2-03-*" and associated location. + + + + -------------------------- Example 4 -------------------------- + Get-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-12 + +BSSID LocationId Description +----- ---------- ----------- +F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs + + Example 4 retrieves Location Information Server (LIS) wireless access point "F0-6E-0B-C2-03-12" and associated location. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliswirelessaccesspoint + + + Set-CsOnlineLisWirelessAccessPoint + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliswirelessaccesspoint + + + Remove-CsOnlineLisWirelessAccessPoint + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliswirelessaccesspoint + + + + + + Get-CsOnlinePSTNGateway + Get + CsOnlinePSTNGateway + + Shows the configuration of the previously defined Session Border Controller(s) (SBC(s)) that describes the settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing. + + + + Use this cmdlet to show the configuration of the previously created Session Border Controller(s) (SBC(s)) configuration. Each configuration contains specific settings for an SBC. These settings configure such entities as SIP signaling port, whether media bypass is enabled on this SBC, will the SBC send SIP options, specify the limit of maximum concurrent sessions, The cmdlet also let drain the SBC by setting parameter -Enabled to true or false state. When the Enabled parameter set to $false, the SBC will continue existing calls, bit all new calls routed to another SBC in a route (if exists). + + + + Get-CsOnlinePSTNGateway + + Filter + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + String + + String + + + None + + + + Get-CsOnlinePSTNGateway + + Identity + + > Applicable: Microsoft Teams + The parameter is optional for the cmdlet. If not set all SBCs paired to the tenant are listed. + + String + + String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The parameter is optional for the cmdlet. If not set all SBCs paired to the tenant are listed. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlinePSTNGateway + + This example shows all SBCs paired with the tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlinePSTNGateway -Filter "*.contoso.com" + + This example selects all SBCs with identities matching the pattern *.contoso.com, such as sbc1.contoso.com and sbc2.contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway + + + Set-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway + + + New-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway + + + Remove-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway + + + + + + Get-CsOnlinePstnUsage + Get + CsOnlinePstnUsage + + Returns information about online public switched telephone network (PSTN) usage records used in your tenant. + + + + Online PSTN usages are string values that are used for call authorization. An online PSTN usage links an online voice policy to a route. The `Get-CsOnlinePstnUsage` cmdlet retrieves the list of all online PSTN usages available within a tenant. + This cmdlet is used when configuring Microsoft Phone System Direct Routing. + + + + Get-CsOnlinePstnUsage + + Filter + + The Filter parameter allows you to retrieve only those PSTN usages with an Identity matching a particular wildcard string. However, the only Identity available to PSTN usages is Global, so this parameter is not useful for this cmdlet. + + String + + String + + + None + + + + Get-CsOnlinePstnUsage + + Identity + + The level at which these settings are applied. The only identity that can be applied to PSTN usages is Global. + + String + + String + + + None + + + + + + Filter + + The Filter parameter allows you to retrieve only those PSTN usages with an Identity matching a particular wildcard string. However, the only Identity available to PSTN usages is Global, so this parameter is not useful for this cmdlet. + + String + + String + + + None + + + Identity + + The level at which these settings are applied. The only identity that can be applied to PSTN usages is Global. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CSOnlinePSTNUsage + + This command returns the list of global PSTN usages available within the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstnusage + + + Set-CsOnlinePstnUsage + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstnusage + + + + + + Get-CsOnlineSchedule + Get + CsOnlineSchedule + + Use the Get-CsOnlineSchedule cmdlet to get information about schedules that belong to your organization. + + + + The Get-CsOnlineSchedule cmdlet returns information about the schedules in your organization. + + + + Get-CsOnlineSchedule + + Id + + > Applicable: Microsoft Teams + The Id for the schedule to be retrieved. If this parameter is not specified, then all schedules in the organization are returned. + + System.String + + System.String + + + None + + + + + + Id + + > Applicable: Microsoft Teams + The Id for the schedule to be retrieved. If this parameter is not specified, then all schedules in the organization are returned. + + System.String + + System.String + + + None + + + + + + System.String + + + The Get-CsOnlineSchedule cmdlet accepts a string as the Id parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.Schedule + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineSchedule + + This example retrieves all schedules that belong to your organization. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineSchedule -Id "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + + This example gets the schedules that has the Id of f7a821dc-2d69-5ae8-8525-bcb4a4556093. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule + + + New-CsOnlineTimeRange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange + + + New-CsOnlineDateTimeRange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange + + + New-CsAutoAttendantCallFlow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow + + + + + + Get-CsOnlineSipDomain + Get + CsOnlineSipDomain + + This cmdlet lists online sip domains and their enabled/disabled status. In a disabled domain, provisioning of users is blocked. Once a domain is re-enabled, provisioning of users in that domain will happen. + + + + This cmdlet is useful for organizations consolidating multiple on-premises deployments of Skype for Business Server into a single Office 365 tenant. During consolidation, sip domains for all forests hosting Skype for Business Server - other than the forest currently in hybrid mode - must be disabled. Once a hybrid deployment is fully migrated to the cloud and detached from Office 365, the next forest can start migration to the cloud. This cmdlet allows administrators to view the status of sip domains in their Office 365 tenant. For full details on cloud consolidation scenarios, see Cloud consolidation for Teams and Skype for Business (https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation). + + + + Get-CsOnlineSipDomain + + Domain + + > Applicable: Microsoft Teams + A specific domain to get the status of. + + String + + String + + + None + + + DomainStatus + + > Applicable: Microsoft Teams + This indicates the status of an online sip domain, which can be either enabled or disabled. + + + All + Enabled + Disabled + + DomainStatus + + DomainStatus + + + None + + + + + + Domain + + > Applicable: Microsoft Teams + A specific domain to get the status of. + + String + + String + + + None + + + DomainStatus + + > Applicable: Microsoft Teams + This indicates the status of an online sip domain, which can be either enabled or disabled. + + DomainStatus + + DomainStatus + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Provision.OSD.OnlineSipDomainBase+DomainState + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlineSipDomain + + List all online SIP domains in the tenant and show their enabled/disabled status. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlineSipDomain -DomainStatus Disabled + + List all disabled online SIP domains in the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain + + + Disable-CsOnlineSipDomain + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain + + + Enable-CsOnlineSipDomain + https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain + + + Cloud consolidation for Teams and Skype for Business + https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation + + + + + + Get-CsOnlineTelephoneNumber + Get + CsOnlineTelephoneNumber + + Use the `Get-CsOnlineTelephoneNumber` to retrieve telephone numbers from the Business Voice Directory. + + + + Note : This cmdlet has been deprecated. Use the new Get-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment) cmdlet instead. For Microsoft 365 GCC High and DoD cloud instances use the new [Get-CshybridTelephoneNumber](https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber)cmdlet instead. + + Use the `Get-CsOnlineTelephoneNumber` to retrieve telephone numbers from the Business Voice Directory. Note: By default the result size is limited to 500 items, specify a higher result size using ResultSize parameter. + + + + Get-CsOnlineTelephoneNumber + + ActivationState + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Assigned + + > Applicable: Microsoft Teams + Specifies the function of the telephone number. The acceptable values are: + * "caa" for numbers assigned to conferencing functions. + * "user" for numbers assigned to public switched telephone network (PSTN) functions. + The values for the Assigned parameter are case-sensitive. + + MultiValuedProperty + + MultiValuedProperty + + + None + + + CapitalOrMajorCity + + > Applicable: Microsoft Teams + Specifies the city by a concatenated string in the form: region-country-area-city. For example, "NOAM-US-OR-PO" would specify Portland, Oregon. + The values for the CapitalOrMajorCity parameter are case-sensitive. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + ExpandLocation + + > Applicable: Microsoft Teams + Displays the location parameter with its value. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + InventoryType + + > Applicable: Microsoft Teams + Specifies the target telephone number type for the cmdlet. Acceptable values are: + * "Service" for numbers assigned to conferencing support, call queue or auto attendant. + * "Subscriber" for numbers supporting public switched telephone network (PSTN) functions. + The values for the InventoryType parameter are case-sensitive. + + MultiValuedProperty + + MultiValuedProperty + + + None + + + IsNotAssigned + + > Applicable: Microsoft Teams + Specifying this switch parameter will return only telephone numbers which are not assigned. + + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned. + + UInt32 + + UInt32 + + + None + + + TelephoneNumber + + > Applicable: Microsoft Teams + Specifies the target telephone number. For example: + `-TelephoneNumber tel:+18005551234, or -TelephoneNumber +14251234567` + + String + + String + + + None + + + TelephoneNumberGreaterThan + + > Applicable: Microsoft Teams + Specifies a telephone number used by the cmdlet as the lower boundary of the telephone numbers returned. The telephone numbers returned will all be greater than the number provided. The telephone number should be in E.164 format. + + String + + String + + + None + + + TelephoneNumberLessThan + + > Applicable: Microsoft Teams + Specifies a telephone number used by the cmdlet as the upper boundary of the telephone numbers returned. The telephone numbers returned will all be less than the number provided. The telephone number should be in E.164 format. + + String + + String + + + None + + + TelephoneNumberStartsWith + + > Applicable: Microsoft Teams + Specifies the digits that the returned telephone numbers must begin with. To return numbers in the North American Numbering Plan 425 area code, use this syntax: -TelephoneNumberStartsWith 1425. To return numbers that are in the 206 area code and that begin with 88, use this syntax: -TelephoneNumberStartsWith 120688. You can use up to nine digits. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + ActivationState + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Assigned + + > Applicable: Microsoft Teams + Specifies the function of the telephone number. The acceptable values are: + * "caa" for numbers assigned to conferencing functions. + * "user" for numbers assigned to public switched telephone network (PSTN) functions. + The values for the Assigned parameter are case-sensitive. + + MultiValuedProperty + + MultiValuedProperty + + + None + + + CapitalOrMajorCity + + > Applicable: Microsoft Teams + Specifies the city by a concatenated string in the form: region-country-area-city. For example, "NOAM-US-OR-PO" would specify Portland, Oregon. + The values for the CapitalOrMajorCity parameter are case-sensitive. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + ExpandLocation + + > Applicable: Microsoft Teams + Displays the location parameter with its value. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + InventoryType + + > Applicable: Microsoft Teams + Specifies the target telephone number type for the cmdlet. Acceptable values are: + * "Service" for numbers assigned to conferencing support, call queue or auto attendant. + * "Subscriber" for numbers supporting public switched telephone network (PSTN) functions. + The values for the InventoryType parameter are case-sensitive. + + MultiValuedProperty + + MultiValuedProperty + + + None + + + IsNotAssigned + + > Applicable: Microsoft Teams + Specifying this switch parameter will return only telephone numbers which are not assigned. + + SwitchParameter + + SwitchParameter + + + False + + + ResultSize + + > Applicable: Microsoft Teams + Specifies the number of records returned by the cmdlet. The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0, the command will run, but no data will be returned. + + UInt32 + + UInt32 + + + None + + + TelephoneNumber + + > Applicable: Microsoft Teams + Specifies the target telephone number. For example: + `-TelephoneNumber tel:+18005551234, or -TelephoneNumber +14251234567` + + String + + String + + + None + + + TelephoneNumberGreaterThan + + > Applicable: Microsoft Teams + Specifies a telephone number used by the cmdlet as the lower boundary of the telephone numbers returned. The telephone numbers returned will all be greater than the number provided. The telephone number should be in E.164 format. + + String + + String + + + None + + + TelephoneNumberLessThan + + > Applicable: Microsoft Teams + Specifies a telephone number used by the cmdlet as the upper boundary of the telephone numbers returned. The telephone numbers returned will all be less than the number provided. The telephone number should be in E.164 format. + + String + + String + + + None + + + TelephoneNumberStartsWith + + > Applicable: Microsoft Teams + Specifies the digits that the returned telephone numbers must begin with. To return numbers in the North American Numbering Plan 425 area code, use this syntax: -TelephoneNumberStartsWith 1425. To return numbers that are in the 206 area code and that begin with 88, use this syntax: -TelephoneNumberStartsWith 120688. You can use up to nine digits. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Deserialized.Microsoft.Skype.EnterpriseVoice.BVDClient.Number + + + An instance or array of the objects. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlineTelephoneNumber -TelephoneNumber 19294450177 + + This example gets the attributes of a specific phone number. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlineTelephoneNumber -CapitalOrMajorCity NOAM-US-NY-NY + +RunspaceId : f90303a9-c6a8-483c-b3b3-a5b8cdbab19c + +ActivationState : Activated + +BridgeNumber : + +CallingProfile : BandwidthUS + +InventoryType : Service + +CityCode : NOAM-US-NY-NY + +Id : 19294450177 + +InventoryType : Service + +Location : + +O365Region : NOAM + +SourceType : Tnm + +TargetType : caa + +Tenant : + +TenantId : + +UserId : + +IsManagedByServiceDesk : True + +PortInOrderStatus : + + This example gets the phone numbers with the city code designating New York, New York. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumber + + + Remove-CsOnlineTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinetelephonenumber + + + + + + Get-CsOnlineTelephoneNumberCountry + Get + CsOnlineTelephoneNumberCountry + + Use the `Get-CsOnlineTelephoneNumberCountry` cmdlet to get the list of supported countries or regions to search and acquire new telephone numbers. + + + + Use the `Get-CsOnlineTelephoneNumberCountry` cmdlet to get the list of supported countries or regions to search and acquire new telephone numbers. The telephone numbers can then be used to set up calling features for users and services in your organization. + + + + Get-CsOnlineTelephoneNumberCountry + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineTelephoneNumberCountry + +Name Value +---- ----- +Antigua and Barbuda AG +Argentina AR +Australia AU +Austria AT +... +United Kingdom GB +United States US +Uruguay UY +Venezuela VE +Vietnam VN + + This example returns the list of supported countries or regions for the cmdlet search and acquire of new telephone numbers. + + + + + + Get-CsOnlineTelephoneNumberCountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry + + + Get-CsOnlineTelephoneNumberType + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry + + + New-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Complete-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Clear-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + + + + Get-CsOnlineTelephoneNumberOrder + Get + CsOnlineTelephoneNumberOrder + + Use the `Get-CsOnlineTelephoneNumberOrder` cmdlet to get the order report of a specific telephone number order. + + + + This `Get-CsOnlineTelephoneNumberOrder` cmdlet can be used to get the status of specific telephone number orders. Currently supported orders for retrievals are: Search New-CsOnlineTelephoneNumberOrder (https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder), Direct Routing Number Upload [New-CsOnlineDirectRoutingTelephoneNumberUploadOrder](https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedirectroutingtelephonenumberuploadorder), and Direct Routing Number Release [New-CsOnlineTelephoneNumberReleaseOrder](https://learn.microsoft.com/powershell/module/microsoftteams/New-csonlinetelephonenumberreleaseorder). When the OrderType is not indicated, the cmdlet will default to a Search order. + + + + Get-CsOnlineTelephoneNumberOrder + + OrderId + + Use the OrderId received as output of your order creation cmdlets. + + String + + String + + + None + + + OrderType + + Specifies the type of telephone number order to look up. Currently supported values are Search , Release , and DirectRoutingNumberCreation . If this value is unspecified, then it will default to a Search order. + + String + + String + + + None + + + + + + OrderId + + Use the OrderId received as output of your order creation cmdlets. + + String + + String + + + None + + + OrderType + + Specifies the type of telephone number order to look up. Currently supported values are Search , Release , and DirectRoutingNumberCreation . If this value is unspecified, then it will default to a Search order. + + String + + String + + + None + + + + + + + Updates in Teams PowerShell Module version 6.7.1 and later: - A new optional parameter `OrderType` is introduced. If no OrderType is provided, it will default to a Search order. + - [BREAKING CHANGE] When a Search order is queried, the property name `TelephoneNumber` in the output will be changed to `TelephoneNumbers`. The structure of the `TelephoneNumbers` output will remain unchanged. + - Impact: Scripts and processes that reference the `TelephoneNumber` property will need to be updated to use `TelephoneNumbers`. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderType Search -OrderId 1fd52b3b-b804-4ac4-a84d-4d70b51dd4be + +Key Value +--- ----- +Id 1fd52b3b-b804-4ac4-a84d-4d70b51dd4be +Name Postal Code Search Test +CreatedAt 2024-11-30T00:34:00.0825627+00:00 +CreatedBy ContosoAdmin +Description Postal Code Search Test +NumberType UserSubscriber +SearchType PostalCode +AreaCode 778 +PostalOrZipCode V7Y 1G5 +Quantity 2 +Status Reserved +IsManual False +TelephoneNumbers {System.Collections.Generic.Dictionary`2[System.String,System.Object], System.Collections.Generic.Dictionary`2[System.String,System.Object]} +ReservationExpiryDate 2024-11-30T00:50:01.1794152+00:00 +ErrorCode NoError +InventoryType Subscriber +SendToServiceDesk False +CountryCode CA + +PS C:\> $order.TelephoneNumbers + +Key Value +--- ----- +Location Vancouver +TelephoneNumber +16046606034 +Location Vancouver +TelephoneNumber +16046606030 + + This example returns a successful telephone number search and the telephone numbers are reserved for purchase. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderType Search -OrderId 8d23e073-bc98-4f73-8e05-7517655d7042 + +Key Value +--- ----- +Id 8d23e073-bc98-4f73-8e05-7517655d7042 +Name Postal Code Search Test +CreatedAt 2024-11-30T00:34:00.0825627+00:00 +CreatedBy ContosoAdmin +Description Prefix Search Test +NumberType UserSubscriber +SearchType Prefix +AreaCode +PostalOrZipCode +Quantity 1 +Status Error +IsManual False +TelephoneNumbers {} +ReservationExpiryDate +ErrorCode OutOfStock +InventoryType Subscriber +SendToServiceDesk False +CountryCode + + This example returns a failed telephone number search and the `ErrorCode` is showing that telephone numbers with `NumberPrefix: 1425` is `OutOfStock`. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderId 1fd52b3b-b804-4ac4-a84d-4d70b51dd4be + +Key Value +--- ----- +Id 1fd52b3b-b804-4ac4-a84d-4d70b51dd4be +Name Postal Code Search Test +CreatedAt 2024-11-30T00:34:00.0825627+00:00 +CreatedBy TNM +Description Postal Code Search Test from Postman +NumberType UserSubscriber +SearchType PostalCode +AreaCode 778 +PostalOrZipCode V7Y 1G5 +Quantity 2 +Status Expired +IsManual False +TelephoneNumbers {System.Collections.Generic.Dictionary`2[System.String,System.Object], System.Collections.Generic.Dictionary`2[System.String,System.Object]} +ReservationExpiryDate 2024-11-30T00:50:01.1794152+00:00 +ErrorCode NoError +InventoryType Subscriber +SendToServiceDesk False +CountryCode CA + + When the OrderType is not indicated, the cmdlet will default to a Search order. This example returns a successful telephone number search and the telephone numbers are reserved for purchase. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId 6aa4f786-8628-4923-9df1-896f3d84016c + +Key Value +--- ----- +OrderId 6aa4f786-8628-4923-9df1-896f3d84016c +CreatedAt 2024-11-27T06:44:26.1975766+00:00 +Status Complete +TotalCount 3 +SuccessCount 3 +FailureCount 0 +SuccessPhoneNumbers {+12063866355, +12063868075, +12063861642} +FailedPhoneNumbers {} + + This example returns the status of a successful release order for Direct Routing telephone numbers. + + + + -------------------------- Example 5 -------------------------- + PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId faef09f7-5bd5-4740-9e76-9a5762380f34 + +Key Value +--- ----- +OrderId faef09f7-5bd5-4740-9e76-9a5762380f34 +CreatedAt 2024-11-30T00:22:59.4989508+00:00 +Status Success +TotalCount 1 +SuccessCount 1 +FailureCount 0 +WarningCount 0 +FailedPhoneNumbers {} +WarningPhoneNumbers {} +SuccessPhoneNumbers {+99999980} + + This example returns the status of a successful upload order for a Direct Routing phone number. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberCountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry + + + Get-CsOnlineTelephoneNumberType + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype + + + New-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder + + + Complete-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder + + + Clear-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder + + + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedirectroutingtelephonenumberuploadorder + + + New-CsOnlineTelephoneNumberReleaseOrder + https://learn.microsoft.com/powershell/module/microsoftteams/New-csonlinetelephonenumberreleaseorder + + + + + + Get-CsOnlineTelephoneNumberType + Get + CsOnlineTelephoneNumberType + + Use the `Get-CsOnlineTelephoneNumberType` cmdlet to get the list of supported telephone number offerings in a given country or region. + + + + Use the `Get-CsOnlineTelephoneNumberType` cmdlet to get the list of supported telephone number offerings in a given country or region. The `NumberType` field in the response is used to indicate the capabilities of a given offering. The telephone numbers can then be used to set up calling features for users and services in your organization. + + + + Get-CsOnlineTelephoneNumberType + + Country + + Specifies the country or region that the number offerings belong. The country code uses ISO 3166 standard and the list of supported countries or regions can be found by calling `Get-CsOnlineTelephoneNumberCountry`. + + String + + String + + + None + + + + + + Country + + Specifies the country or region that the number offerings belong. The country code uses ISO 3166 standard and the list of supported countries or regions can be found by calling `Get-CsOnlineTelephoneNumberCountry`. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlineTelephoneNumberType -Country US + +AllowedSearchType : {CivicAddress, Prefix} +AreaCode : +AvailabilityInfo : Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AvailabilityInfo +Id : 470316bd-815e-459d-80e7-d7332f00fcb9 +NumberType : UserSubscriber +OfferModel : DirectStock +PrefixSearchOption : Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PrefixSearchOptions +RequiresCivicAddress : True + +AllowedSearchType : {CivicAddress, Prefix} +AreaCode : +AvailabilityInfo : Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AvailabilityInfo +Id : 25444938-a335-4a85-b64d-d445b45f04e3 +NumberType : UserSubscriberVoiceAndSms +OfferModel : DirectStock +PrefixSearchOption : Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PrefixSearchOptions +RequiresCivicAddress : True + + This example returns the list of supported number offerings in United States. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlineTelephoneNumberType -Country CA | ft NumberType + +NumberType +---------- +UserSubscriber +UserSubscriberVoiceAndSms +ConferenceToll +ConferenceTollFree +CallQueueToll +CallQueueTollFree +AutoAttendantToll +AutoAttendantTollFree + + This example returns the list of supported NumberTypes in Canada. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype + + + Get-CsOnlineTelephoneNumberCountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry + + + Get-CsOnlineTelephoneNumberType + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype + + + New-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder + + + Complete-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder + + + Clear-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder + + + + + + Get-CsOnlineUser + Get + CsOnlineUser + + Returns information about users who have accounts homed on Microsoft Teams or Skype for Business Online. + + + + The Get-CsOnlineUser cmdlet returns information about users who have accounts homed on Microsoft Teams The returned information includes standard Active Directory account information (such as the department the user works in, his or her address and phone number, etc.): the Get-CsOnlineUser cmdlet returns information about such things as whether or not the user has been enabled for Enterprise Voice and which per-user policies (if any) have been assigned to the user. + Note that the Get-CsOnlineUser cmdlet does not have a TenantId parameter; that means you cannot use a command similar to this in order to limit the returned data to users who have accounts with a specific Microsoft Teams or Skype for Business Online tenant: + `Get-CsOnlineUser -TenantId "bf19b7db-6960-41e5-a139-2aa373474354"` + However, if you have multiple tenants you can return users from a specified tenant by using the Filter parameter and a command similar to this: + `Get-CsOnlineUser -Filter "TenantId -eq 'bf19b7db-6960-41e5-a139-2aa373474354'"` + That command will limit the returned data to user accounts belong to the tenant with the TenantId "bf19b7db-6960-41e5-a139-2aa373474354". If you do not know your tenant IDs you can return that information by using this command: + `Get-CsTenant` + If you have a hybrid or "split domain" deployment (that is, a deployment in which some users have accounts homed on Skype for Business Online while other users have accounts homed on an on-premises version of Skype for Business Server 2015) keep in mind that the Get-CsOnlineUser cmdlet only returns information for Skype for Business Online users. However, the cmdlet will return information for both online users and on-premises users. If you want to exclude Skype for Business Online users from the data returned by the Get-CsUser cmdlet, use the following command: + `Get-CsUser -Filter "TenantId -eq '00000000-0000-0000-0000-000000000000'"` + By definition, users homed on the on-premises version will always have a TenantId equal to 00000000-0000-0000-0000-000000000000. Users homed on Skype for Business Online will a TenantId that is equal to some value other than 00000000-0000-0000-0000-000000000000. + + + + Get-CsOnlineUser + + AccountType + + > Applicable: Microsoft Teams + This parameter is added to Get-CsOnlineUser starting from TPM 4.5.1 to indicate the user type. The possible values for the AccountType parameter are: + - `User` - to query for user accounts. + - `ResourceAccount` - to query for app endpoints or resource accounts. + - `Guest` - to query for guest accounts. + - `SfBOnPremUser` - to query for users that are hosted on-premises + - `IneligibleUser` - to query for a user that does not have valid Teams license (except Guest, ResourceAccount and SfbOnPremUser). + + UserIdParameter + + UserIdParameter + + + None + + + Identity + + > Applicable: Microsoft Teams + Indicates the Identity of the user account to be retrieved. + For TeamsOnly customers using the Teams PowerShell Module version 3.0.0 or later, you use the following values to identify the account: + - GUID + - SIP address + - UPN + - Alias + + Using the Teams PowerShell Module version 2.6 or earlier only, you can use the following values to identify the account: + - GUID + - SIP address + - UPN + - Alias + - Display name. Supports the asterisk ( \ ) wildcard character. For example, `-Identity " Smith"` returns all the users whose display names end with Smith. + + UserIdParameter + + UserIdParameter + + + None + + + Filter + + > Applicable: Microsoft Teams + Enables you to limit the returned data by filtering on specific attributes. For example, you can limit returned data to users who have been assigned a specific voice policy, or users who have not been assigned a specific voice policy. + The Filter parameter uses the same filtering syntax as the Where-Object cmdlet. For example, the following filter returns only users who have been enabled for Enterprise Voice: `-Filter 'EnterpriseVoiceEnabled -eq $True'` or ``-Filter "EnterpriseVoiceEnabled -eq `$True"``. + Examples: - Get-CsOnlineUser -Filter {AssignedPlan -like " MCO "} - Get-CsOnlineUser -Filter {UserPrincipalName -like "test " -and (AssignedPlans -eq "MCOEV" -or AssignedPlans -like "MCOPSTN ")} - Get-CsOnlineUser -Filter {OnPremHostingProvider -ne $null} + - Get-CsOnlineUser -Filter {WhenChanged -gt "1/25/2022 11:59:59 PM"} + + String + + String + + + None + + + Properties + + > Applicable: Microsoft Teams + Allows you to specify the properties you want to include in the output. Provide the properties as a comma-separated list. Identity, UserPrincipalName, Alias, AccountEnabled and DisplayName attributes will always be present in the output. Please note that only attributes available in the output of the Get-CsOnlineUser cmdlet can be selected. For a complete list of available attributes, refer to the response of the Get-CsOnlineUser cmdlet. + Examples: - Get-CsOnlineUser -Properties DisplayName, UserPrincipalName, FeatureTypes + - Get-CsOnlineUser -Properties DisplayName, Alias, LineURI + + String + + String + + + None + + + ResultSize + + > Applicable: Microsoft Teams Note : Starting with Teams PowerShell Modules version 4.0 and later, "-ResultSize" type has been changed to uint32. + Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. + The result size can be set to any whole number between 0 and 2147483647, inclusive. The value 0 returns no data. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. + + Unlimited + + Unlimited + + + None + + + SkipUserPolicies + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + SoftDeletedUser + + > Applicable: Microsoft Teams + This parameter enables you to return a collection of all the users who are deleted and can be restored within 30 days from their deletion time + + + SwitchParameter + + + False + + + Sort + + > Applicable: Microsoft Teams + Sorting is now enabled in Teams PowerShell Module by using the "-Sort" or "-OrderBy" parameters. For example: + - Get-CsOnlineUser -Filter {LineURI -like 123 } -OrderBy "DisplayName asc" - Get-CsOnlineUser -Filter {DisplayName -like '*abc'} -OrderBy {DisplayName desc} Note : Sorting on few attributes like LineURI can be case-sensitive. + + String + + String + + + None + + + + + + AccountType + + > Applicable: Microsoft Teams + This parameter is added to Get-CsOnlineUser starting from TPM 4.5.1 to indicate the user type. The possible values for the AccountType parameter are: + - `User` - to query for user accounts. + - `ResourceAccount` - to query for app endpoints or resource accounts. + - `Guest` - to query for guest accounts. + - `SfBOnPremUser` - to query for users that are hosted on-premises + - `IneligibleUser` - to query for a user that does not have valid Teams license (except Guest, ResourceAccount and SfbOnPremUser). + + UserIdParameter + + UserIdParameter + + + None + + + Filter + + > Applicable: Microsoft Teams + Enables you to limit the returned data by filtering on specific attributes. For example, you can limit returned data to users who have been assigned a specific voice policy, or users who have not been assigned a specific voice policy. + The Filter parameter uses the same filtering syntax as the Where-Object cmdlet. For example, the following filter returns only users who have been enabled for Enterprise Voice: `-Filter 'EnterpriseVoiceEnabled -eq $True'` or ``-Filter "EnterpriseVoiceEnabled -eq `$True"``. + Examples: - Get-CsOnlineUser -Filter {AssignedPlan -like " MCO "} - Get-CsOnlineUser -Filter {UserPrincipalName -like "test " -and (AssignedPlans -eq "MCOEV" -or AssignedPlans -like "MCOPSTN ")} - Get-CsOnlineUser -Filter {OnPremHostingProvider -ne $null} + - Get-CsOnlineUser -Filter {WhenChanged -gt "1/25/2022 11:59:59 PM"} + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + Indicates the Identity of the user account to be retrieved. + For TeamsOnly customers using the Teams PowerShell Module version 3.0.0 or later, you use the following values to identify the account: + - GUID + - SIP address + - UPN + - Alias + + Using the Teams PowerShell Module version 2.6 or earlier only, you can use the following values to identify the account: + - GUID + - SIP address + - UPN + - Alias + - Display name. Supports the asterisk ( \ ) wildcard character. For example, `-Identity " Smith"` returns all the users whose display names end with Smith. + + UserIdParameter + + UserIdParameter + + + None + + + Properties + + > Applicable: Microsoft Teams + Allows you to specify the properties you want to include in the output. Provide the properties as a comma-separated list. Identity, UserPrincipalName, Alias, AccountEnabled and DisplayName attributes will always be present in the output. Please note that only attributes available in the output of the Get-CsOnlineUser cmdlet can be selected. For a complete list of available attributes, refer to the response of the Get-CsOnlineUser cmdlet. + Examples: - Get-CsOnlineUser -Properties DisplayName, UserPrincipalName, FeatureTypes + - Get-CsOnlineUser -Properties DisplayName, Alias, LineURI + + String + + String + + + None + + + ResultSize + + > Applicable: Microsoft Teams Note : Starting with Teams PowerShell Modules version 4.0 and later, "-ResultSize" type has been changed to uint32. + Enables you to limit the number of records returned by the cmdlet. For example, to return seven users (regardless of the number of users that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which seven users will be returned. + The result size can be set to any whole number between 0 and 2147483647, inclusive. The value 0 returns no data. If you set the ResultSize to 7 but you have only three users in your forest, the command will return those three users, and then complete without error. + + Unlimited + + Unlimited + + + None + + + SkipUserPolicies + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + SwitchParameter + + SwitchParameter + + + False + + + SoftDeletedUser + + > Applicable: Microsoft Teams + This parameter enables you to return a collection of all the users who are deleted and can be restored within 30 days from their deletion time + + SwitchParameter + + SwitchParameter + + + False + + + Sort + + > Applicable: Microsoft Teams + Sorting is now enabled in Teams PowerShell Module by using the "-Sort" or "-OrderBy" parameters. For example: + - Get-CsOnlineUser -Filter {LineURI -like 123 } -OrderBy "DisplayName asc" - Get-CsOnlineUser -Filter {DisplayName -like '*abc'} -OrderBy {DisplayName desc} Note : Sorting on few attributes like LineURI can be case-sensitive. + + String + + String + + + None + + + + + + + A recent fix has addressed an issue where some Guest users were being omitted from the output of the Get-CsOnlineUser cmdlet, resulting in an increase in the reported user count. Commonly used FeatureTypes and their descriptions: - Teams: Enables Users to access Teams + - AudioConferencing': Enables users to call-in to Teams meetings from their phones + - PhoneSystem: Enables users to place, receive, transfer, mute, unmute calls in Teams with mobile device, PC, or IP Phones + - CallingPlan: Enables an All-in-the-cloud voice solution for Teams users that connects Teams Phone System to the PSTN to enable external calling. With this option, Microsoft acts as the PSTN carrier. + - TeamsMultiGeo: Enables Teams chat data to be stored at rest in a specified geo location + - VoiceApp: Enables to set up resource accounts to support voice applications like Auto Attendants and Call Queues + - M365CopilotTeams: Enables Copilot in Teams + - TeamsProMgmt: Enables enhanced meeting recap features like AI generated notes and tasks from meetings, view when a screen was shared etc + - TeamsProProtection: Enables additional ways to safeguard and monitor users' Teams experiences with features like Sensitivity labels, Watermarking, end-to-end encryption etc. + - TeamsProWebinar: Enables advances webinar features like engagement reports, RTMP-In, Webinar Wait List, in Teams. + - TeamsProCust: Enables meeting customization features like branded meetings, together mode, in Teams. + - TeamsProVirtualAppt: Enables advances virtual appointment features like SMS notifications, custom waiting room, in Teams. + - TeamsRoomPro: Enables premium in-room meeting experience like intelligent audio, large galleries in Teams. + - TeamsRoomBasic: Enables core meeting experience with Teams Rooms Systems. + - TeamsAdvComms: Enables advances communication management like custom communication policies in Teams. + - TeamsMobileExperience: Enables users to use a single phone number in Teams across both sim-enabled mobile phone and desk lines. + - Conferencing_RequiresCommunicationCredits: Allows pay-per minute Audio Conferencing without monthly licenses. + - CommunicationCredits: Enables users to pay Teams calling and conferencing through the credits. Updates in Teams PowerShell Module verion 7.1.1 Preview and later : + - EffectivePolicyAssignments: The EffectivePolicyAssignments attribute has been added to the Get-CsOnlineUser cmdlet in commercial environments. This new attribute provides information about a user's effective policy assignments. Each assignment includes the following details: - PolicyType - which specifies the type of policy assigned (for example, TeamsMeetingPolicy, TeamsCallingPolicy, and so on.) - PolicyAssignment - which includes the display name of the assigned policy (displayName), the assignment type (assignmentType) indicating whether it is direct or group-based, the unique identifier of the policy (policyId), and the group identifier (groupId) if applicable. Note : The policyId property isn't currently supported. Updates in Teams PowerShell Module : + - DialPlan: DialPlan attribute will be deprecated and no longer populated in the output of Get-CsOnlineUser in all clouds. Updates in Teams PowerShell Module version 7.0.0 and later : + - OptionFlags: OptionFlags attribute will no longer be populated with value in the output of Get-CsOnlineUser in all clouds. It's important to note that other details besides EnterpriseVoiceEnabled, previously found in OptionFlags, are no longer relevant for Teams. Administrators can still utilize the EnterpriseVoiceEnabled attribute in the output of the Get-CsOnlineUser cmdlet to get this information. This change will be rolled out to all Teams Powershell Module versions. Updates in Teams PowerShell Module version 6.9.0 and later : + Adds new attribute in the output of Get-CsOnlineUser cmdlet in commercial environments. - TelephoneNumbers: A new list of complex object that includes telephone number and its corresponding assignment category. The assignment category can include values such as 'Primary', 'Private', and 'Alternate'. + Adds new parameter to the Get-CsOnlineUser cmdlet in all clouds: - Properties: Allows you to specify the properties you want to include in the output. Provide the properties as a comma-separated list. Note that the following properties will always be present in the output: Identity, UserPrincipalName, Alias, AccountEnabled, DisplayName. Updates in Teams PowerShell Module version 6.8.0 and later : + New policies - TeamsBYODAndDesksPolicy, TeamsAIPolicy, TeamsWorkLocationDetectionPolicy, TeamsMediaConnectivityPolicy, TeamsMeetingTemplatePermissionPolicy, TeamsVirtualAppointmentsPolicy and TeamsWorkLoadPolicy will be visible in the Get-CsOnlineUser cmdlet output. + The following updates are applicable for organizations having TeamsOnly users that use Microsoft Teams PowerShell version 6.8.0 or later for Microsoft Teams operated by 21Vianet. These updates will be rolled out gradually to older Microsoft Teams PowerShell versions. + The following attributes are populated with correct values in the output of Get-CsOnlineUser when not using the "-identity" parameter: + - CountryAbbreviation + - UserValidationErrors + - WhenCreated + + The following updates are applicable to the output in scenarios where "-identity" parameter is not used: + - Only valid OnPrem users would be available in the output: These are users that are DirSyncEnabled and have a valid OnPremSipAddress or SIP address in ShadowProxyAddresses. + - Guest are available in the output + - Unlicensed Users: Unlicensed users would show up in the output of Get-CsOnlineUser (note Unlicensed users in commercial clouds would show up in the output for only 30 days post-license removal.) + - Soft deleted users: These users will be displayed in the output of Get-CsOnlineUser and the TAC Manage Users page by default with SoftDeletionTimestamp set to a value. + - AccountType as Unknown will be renamed to AccountType as IneligibleUser in GCC High and DoD environments. IneligibleUser will include users who do not have any valid Teams licenses (except Guest, SfbOnPremUser, ResourceAccount). + + If any information is required for a user that is not available in the output (when not using "-identity" parameter) then it can be obtained using the "-identity" parameter. Information for all users would be available using the "-identity" parameter until they are hard deleted. + If Guest, Soft Deleted Users, IneligibleUser are not required in the output then they can be filtered out by using filter on AccountType and SoftDeletionTimestamp. For example: + - Get-CsOnlineUser -Filter {AccountType -ne 'Guest'} + - Get-CsOnlineUser -Filter {SoftDeletionTimestamp -eq $null} + - Get-CsOnlineUser -Filter {AccountType -ne 'IneligibleUser'} Updates in Teams PowerShell Module version 6.1.1 Preview and later : + The following updates are applicable for organizations that use Microsoft Teams PowerShell version 6.1.1 (Targeted Release: April 15th, 2024) or later. These changes will be gradually rolled out for all tenants starting from April 26th, 2024. + When using the Get-CsOnlineUser cmdlet in Teams PowerShell Module without the -identity parameter, we are introducing these updates: + - Before the rollout, unlicensed users who did not have a valid Teams license were displayed in the output of the Get-CsOnlineUser cmdlet for 30 days after license removal. After the rollout, Get-CsOnlineUser will show unlicensed users after the initial 30 days and also include unlicensed users who never had a valid Teams license. + - The AccountType value Unknown is being renamed to IneligibleUser, and will include users who do not have a valid Teams license (exceptions: Guest, SfbOnPremUser, and ResourceAccount). + - You can exclude users with the AccountType as IneligibleUser from the output with the AccountType filter. For example, Get-CsOnlineUser -Filter {AccountType -ne 'IneligibleUser'} + + When Get-CsOnlineUser is used with the -identity parameter, you can also use UPN, Alias, and SIP Address with the -identity parameter to obtain the information for a specific unlicensed user. Updates in Teams PowerShell Module version 6.1.0 and later : + The following updates are applicable for organizations that use Microsoft Teams PowerShell version 6.1.0 or later. + - LocationPolicy: LocationPolicy attribute is being deprecated from the output of Get-CsOnlineUser in all clouds. Get-CsPhoneNumberAssignment -IsoCountryCode can be used to get the LocationPolicy information. (Note: LocationPolicy attribute will no longer be populated with value in the older Teams Powershell Module versions (<6.1.0) starting from 20th March 2024.) Updates in Teams PowerShell Module version 6.0.0 and later : + The following updates are applicable for organizations having TeamsOnly users that use Microsoft Teams PowerShell version 6.0.0 or later. + - GracePeriodExpiryDate: GracePeriodExpiryDate attribute is being introduced within the AssignedPlan JSON array. It specifies the date when the grace period of a previously deleted license expires, and the license will be permanently deleted. The attribute remains empty/null for active licenses. (Note: The attribute is currently in private preview and will display valid values only for private preview) + - IsInGracePeriod: IsInGracePeriod attribute is a boolean flag that indicates that the associated plan is in grace period after deletion. (Note: The attribute is currently in private preview and will display valid values only for private preview) Updates in Teams PowerShell Module version 5.9.0 and later : + The following updates are applicable for organizations having TeamsOnly users that use Microsoft Teams PowerShell version 5.9.0 or later in GCC High and DoD environments (note that these changes are already rolled out in commercial environments). These updates will be applicable to older Teams PowerShell versions from 15th March 2024 in GCC High and DoD environments: + The following attributes are populated with correct values in the output of Get-CsOnlineUser when not using the "-identity" parameter: + - CountryAbbreviation + - UserValidationErrors + - WhenCreated + + The following updates are applicable to the output in scenarios where "-identity" parameter is not used: + - Only valid OnPrem users would be available in the output: These are users that are DirSyncEnabled and have a valid OnPremSipAddress or SIP address in ShadowProxyAddresses. + - Guest are available in the output + - Unlicensed Users: Unlicensed users would show up in the output of Get-CsOnlineUser (note Unlicensed users in commercial clouds would show up in the output for only 30 days post-license removal.) + - Soft deleted users: These users will be displayed in the output of Get-CsOnlineUser and the TAC Manage Users page by default with SoftDeletionTimestamp set to a value. + - AccountType as Unknown will be renamed to AccountType as IneligibleUser in GCC High and DoD environments. IneligibleUser will include users who do not have any valid Teams licenses (except Guest, SfbOnPremUser, ResourceAccount). + + If any information is required for a user that is not available in the output (when not using "-identity" parameter) then it can be obtained using the "-identity" parameter. Information for all users would be available using the "-identity" parameter until they are hard deleted. + If Guest, Soft Deleted Users, IneligibleUser are not required in the output then they can be filtered out by using filter on AccountType and SoftDeletionTimestamp. For example: + - Get-CsOnlineUser -Filter {AccountType -ne 'Guest'} + - Get-CsOnlineUser -Filter {SoftDeletionTimestamp -eq $null} + - Get-CsOnlineUser -Filter {AccountType -ne 'IneligibleUser'} Updates in Teams PowerShell Module version 3.0.0 and above : + The following updates are applicable for organizations having TeamsOnly users that use Microsoft Teams PowerShell version 3.0.0 and later, excluding updates mentioned previously for Teams PowerShell Module version 5.0.0: New user attributes : + FeatureTypes: Array of unique strings specifying what features are enabled for a user. This attribute is an alternative to several attributes that have been dropped as outlined in the next section. + Some of the commonly used FeatureTypes include: + - Teams + - AudioConferencing + - PhoneSystem + - CallingPlan Note : This attribute is now filterable in Teams PowerShell Module versions 4.0.0 and later using the "-Contains" operator as shown in Example 7. + AccountEnabled: Indicates whether a user is enabled for login in Microsoft Entra ID. Dropped attributes : + The following attributes are no longer relevant to Teams and have been dropped from the output: + - AcpInfo + - AdminDescription + - ArchivingPolicy + - AudioVideoDisabled + - BaseSimpleUrl + - BroadcastMeetingPolicy + - CallViaWorkPolicy + - ClientPolicy + - ClientUpdateOverridePolicy + - ClientVersionPolicy + - CloudMeetingOpsPolicy + - CloudMeetingPolicy + - CloudVideoInteropPolicy + - ContactOptionFlags + - CountryOrRegionDisplayName + - Description + - DistinguishedName + - EnabledForRichPresence + - ExchangeArchivingPolicy + - ExchUserHoldPolicies + - ExperiencePolicy + - ExternalUserCommunicationPolicy + - ExUmEnabled + - Guid + - HomeServer + - HostedVoicemailPolicy + - IPPBXSoftPhoneRoutingEnabled + - IPPhone + - IPPhonePolicy + - IsByPassValidation + - IsValid + - LegalInterceptPolicy + - LicenseRemovalTimestamp + - LineServerURI + - Manager + - MNCReady + - Name + - NonPrimaryResource + - ObjectCategory + - ObjectClass + - ObjectState + - OnPremHideFromAddressLists + - OriginalPreferredDataLocation + - OriginatingServer + - OriginatorSid + - OverridePreferredDataLocation + - PendingDeletion + - PrivateLine + - ProvisioningCounter + - ProvisioningStamp + - PublishingCounter + - PublishingStamp + - Puid + - RemoteCallControlTelephonyEnabled + - RemoteMachine + - SamAccountName + - ServiceInfo + - StsRefreshTokensValidFrom + - SubProvisioningCounter + - SubProvisioningStamp + - SubProvisionLineType + - SyncingCounter + - TargetRegistrarPool + - TargetServerIfMoving + - TeamsInteropPolicy + - ThumbnailPhoto + - UpgradeRetryCounter + - UserAccountControl + - UserProvisionType + - UserRoutingGroupId + - VoicePolicy - Alternative is the CallingPlan and PhoneSystem string in FeatureTypes + - XForestMovePolicy + - AddressBookPolicy + - GraphPolicy + - PinPolicy + - PreferredDataLocationOverwritePolicy + - PresencePolicy + - SmsServicePolicy + - TeamsVoiceRoute + - ThirdPartyVideoSystemPolicy + - UserServicesPolicy + - ConferencingPolicy + - Id + - MobilityPolicy + - OnlineDialinConferencingPolicy - Alternative is the AudioConferencing string in FeatureTypes + - Sid + - TeamsWorkLoadPolicy + - VoiceRoutingPolicy + - ClientUpdatePolicy + - HomePhone + - HostedVoiceMail + - MobilePhone + - OtherTelephone + - StreetAddress + - WebPage + - AssignedLicenses + - OnPremisesUserPrincipalName + - HostedVoiceMail + - LicenseAssignmentStates + - OnPremDomainName + - OnPremSecurityIdentifier + - OnPremSamAccountName + - CallerIdPolicy + - Fax + - LastName (available in Teams PowerShell Module 4.2.1 and later) + - Office + - Phone + - WindowsEmailAddress + - SoftDeletedUsers (available in Teams PowerShell Module 4.4.3 and later) + + The following attributes are temporarily unavailable in the output when using the "-Filter" or when used without the "-Identity" parameter: + - WhenChanged + - CountryAbbreviation Note : These attributes will be available in the near future. Attributes renamed : + - ObjectId renamed to Identity + - FirstName renamed to GivenName + - DirSyncEnabled renamed to UserDirSyncEnabled + - MCOValidationErrors renamed to UserValidationErrors + - Enabled renamed to IsSipEnabled + - TeamsBranchSurvivabilityPolicy renamed to TeamsSurvivableBranchAppliancePolicy + - CountryOrRegionDisplayName introduced as Country (in versions 4.2.0 and later) + - InterpretedUserType: "AADConnectEnabledOnline" prefix for the InterpretedUserType output value has now been renamed DirSyncEnabledOnline, for example, AADConnectEnabledOnlineTeamsOnlyUser is now DirSyncEnabledOnlineTeamsOnlyUser. Attributes that have changed in meaning/format : OnPremLineURI : This attribute previously used to refer to both: + 1. LineURI set via OnPrem AD. 2. Direct Routing numbers assigned to users via Set-CsUser. + In Teams PowerShell Modules 3.0.0 and above OnPremLineURI will only refer to the LineURI set via OnPrem AD. Direct Routing numbers will be available from the LineURI field. Direct Routing Numbers can be distinguished from Calling Plan Numbers by looking at the FeatureTypes attribute. + - The output format of AssignedPlan and ProvisionedPlan have now changed from XML to JSON array. - The output format of Policies has now changed from String to JSON type UserPolicyDefinition. + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineUser + + The command shown in Example 1 returns information for all the users configured as online users. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineUser -Identity "sip:kenmyer@litwareinc.com" + + In Example 2 information is returned for a single online user: the user with the SIP address "sip:kenmyer@litwareinc.com". + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineUser -Filter "ArchivingPolicy -eq 'RedmondArchiving'" + + Example 3 uses the Filter parameter to limit the returned data to online users who have been assigned the per-user archiving policy RedmondArchiving. + To do this, the filter value {ArchivingPolicy -eq "RedmondArchiving"} is employed; that syntax limits returned data to users where the ArchivingPolicy property is equal to (-eq) "RedmondArchiving". + + + + -------------------------- Example 4 -------------------------- + Get-CsOnlineUser -Filter {HideFromAddressLists -eq $True} + + Example 4 returns information only for user accounts that have been configured so that the account does not appear in Microsoft Exchange address lists. + (That is, the Active Directory attribute msExchHideFromAddressLists is True.) To carry out this task, the Filter parameter is included along with the filter value {HideFromAddressLists -eq $True}. + + + + -------------------------- Example 5 -------------------------- + Get-CsOnlineUser -Filter {LineURI -eq "tel:+1234"} +Get-CsOnlineUser -Filter {LineURI -eq "tel:+1234,ext:"} +Get-CsOnlineUser -Filter {LineURI -eq "1234"} + + Example 5 returns information for user accounts that have been assigned a designated phone number. + + + + -------------------------- Example 6 -------------------------- + Get-CsOnlineUser -AccountType ResourceAccount + + Example 6 returns information for user accounts that are categorized as resource accounts. + + + + -------------------------- Example 7 -------------------------- + Get-CsOnlineUser -Filter "FeatureTypes -Contains 'PhoneSystem'" + + Example 7 returns information for user's assigned plans. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser + + + Set-CsUser + https://learn.microsoft.com/powershell/module/microsoftteams/set-csuser + + + + + + Get-CsOnlineVoicemailUserSettings + Get + CsOnlineVoicemailUserSettings + + Use the Get-CsOnlineVoicemailUserSettings cmdlet to get information about online voicemail user settings of a specific user. + + + + The Get-CsOnlineVoicemailUserSettings cmdlet returns information about online voicemail user settings of a specific user in your organization. + + + + Get-CsOnlineVoicemailUserSettings + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + + System.String + + System.String + + + None + + + + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Voicemail.Models.VoicemailUserSettings + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsOnlineVoicemailUserSettings -Identity sip:user@contoso.com + + This example gets the online voicemail user settings of user with SIP URI sip:user@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailusersettings + + + Set-CsOnlineVoicemailUserSettings + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings + + + + + + Get-CsOnlineVoiceRoute + Get + CsOnlineVoiceRoute + + Returns information about the online voice routes configured for use in your tenant. + + + + Use this cmdlet to retrieve one or more existing online voice routes in your tenant. Online voice routes contain instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). + This cmdlet can be used to retrieve voice route information such as which online PSTN gateways the route is associated with (if any), which online PSTN usages are associated with the route, the pattern (in the form of a regular expression) that identifies the phone numbers to which the route applies, and caller ID settings. The PSTN usage associates the voice route to an online voice policy. + This cmdlet is used when configuring Microsoft Phone System Direct Routing. + + + + Get-CsOnlineVoiceRoute + + Filter + + This parameter filters the results of the Get operation based on the wildcard value passed to this parameter. + + String + + String + + + None + + + + Get-CsOnlineVoiceRoute + + Identity + + A string that uniquely identifies the voice route. If no identity is provided, all voice routes for the organization are returned. + + String + + String + + + None + + + + + + Filter + + This parameter filters the results of the Get operation based on the wildcard value passed to this parameter. + + String + + String + + + None + + + Identity + + A string that uniquely identifies the voice route. If no identity is provided, all voice routes for the organization are returned. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlineVoiceRoute + + Retrieves the properties for all voice routes defined within the tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlineVoiceRoute -Identity Route1 + + Retrieves the properties for the Route1 voice route. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsOnlineVoiceRoute -Filter *test* + + This command displays voice route settings where the Identity contains the string "test" anywhere within the value. To find the string test only at the end of the Identity, use the value \ test. Similarly, to find the string test only if it occurs at the beginning of the Identity, specify the value test\ . + + + + -------------------------- Example 4 -------------------------- + PS C:\> Get-CsOnlineVoiceRoute | Where-Object {$_.OnlinePstnGatewayList.Count -eq 0} + + This command retrieves all voice routes that have not had any PSTN gateways assigned. First all voice routes are retrieved using the Get-CsOnlineVoiceRoute cmdlet. These voice routes are then piped to the Where-Object cmdlet. The Where-Object cmdlet narrows down the results of the Get operation. In this case we look at each voice route (that's what the $_ represents) and check the Count property of the PstnGatewayList property. If the count of PSTN gateways is 0, the list is empty and no gateways have been defined for the route. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute + + + New-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute + + + Set-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute + + + Remove-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute + + + + + + Get-CsOnlineVoiceRoutingPolicy + Get + CsOnlineVoiceRoutingPolicy + + Returns information about the online voice routing policies configured for use in your tenant. + + + + Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Teams users an online voice routing policy enables those users to receive and to place phone calls to the public switched telephone network by using your on-premises SIP trunks. + Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Teams. Among other things, you will also need to enable those users for Phone System and will need to assign them an appropriate online voice policy. + + + + Get-CsOnlineVoiceRoutingPolicy + + Filter + + Enables you to use wildcards when retrieving one or more online voice routing policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "tag:*" + + String + + String + + + None + + + + Get-CsOnlineVoiceRoutingPolicy + + Identity + + Unique identifier of the online voice routing policy to be retrieved. To return the global policy, use this syntax: + -Identity global + To return a policy configured at the per-user scope, use syntax like this: + -Identity "RedmondOnlineVoiceRoutingPolicy" + You cannot use wildcard characters when specifying the Identity. + If neither the Identity nor the Filter parameters are specified, then `Get-CsOnlineVoiceRoutingPolicy` returns all the voice routing policies configured for use in the tenant. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcards when retrieving one or more online voice routing policies. For example, to return all the policies configured at the per-user scope, use this syntax: + -Filter "tag:*" + + String + + String + + + None + + + Identity + + Unique identifier of the online voice routing policy to be retrieved. To return the global policy, use this syntax: + -Identity global + To return a policy configured at the per-user scope, use syntax like this: + -Identity "RedmondOnlineVoiceRoutingPolicy" + You cannot use wildcard characters when specifying the Identity. + If neither the Identity nor the Filter parameters are specified, then `Get-CsOnlineVoiceRoutingPolicy` returns all the voice routing policies configured for use in the tenant. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy + + The command shown in Example 1 returns information for all the online voice routing policies configured for use in the tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" + + In Example 2, information is returned for a single online voice routing policy: the policy with the Identity RedmondOnlineVoiceRoutingPolicy. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy -Filter "tag:*" + + The command shown in Example 3 returns information about all the online voice routing policies configured at the per-user scope. To do this, the command uses the Filter parameter and the filter value "tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "tag:". + + + + -------------------------- Example 4 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Long Distance"} + + In Example 4, information is returned only for those online voice routing policies that include the PSTN usage "Long Distance". To carry out this task, the command first calls `Get-CsVoiceRoutingPolicy` without any parameters; that returns a collection of all the voice routing policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which picks out only those policies where the OnlinePstnUsages property includes (-contains) the usage "Long Distance". + + + + -------------------------- Example 5 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -notcontains "Long Distance"} + + Example 5 is a variation on the command shown in Example 4; in this case, however, information is returned only for those online voice routing policies that do not include the PSTN usage "Long Distance". In order to do that, the Where-Object cmdlet uses the -notcontains operator, which limits returned data to policies that do not include the usage "Long Distance". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy + + + New-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy + + + Set-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy + + + Grant-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy + + + Remove-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy + + + + + + Get-CsOnlineVoiceUser + Get + CsOnlineVoiceUser + + Use the `Get-CsOnlineVoiceUser` cmdlet to retrieve a voice user's telephone number and location. + + + + Note : This cmdlet is no longer supported on the public and GCC cloud instances. You should use the replacement cmdlets described here. + The following table lists the parameters to `Get-CsOnlineVoiceUser` and the alternative method of getting the same data using a combination of `Get-CsOnlineUser`, `Get-CsPhoneNumberAssignment`, `Get-CsOnlineLisLocation`, and `Get-CsOnlineLisCivicAddress`. + | Parameter | Description | Alternative | | :------------| :------- | :------- | | No parameters | Get information for all users | `Get-CsOnlineUser -Filter {(FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | | CivicAddressId | Find phone number information where the assigned phone number is associated with the CivicAddressId | `Get-CsPhoneNumberAssignment -CivicAddressId <CivicAddressId>` | | EnterpriseVoiceStatus | Find enabled users based on EnterpriseVoiceEnabled | `Get-CsOnlineUser -Filter {(EnterpriseVoiceEnabled -eq $True) -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` or `Get-CsOnlineUser -Filter {(EnterpriseVoiceEnabled -eq $False) -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | | ExpandLocation | Show information about the LocationId | `Get-CsOnlineLisLocation -LocationId <LocationId>` | | Identity | Get information for a user | `Get-CsOnlineUser -Identity <Identity>` | | LocationId | Find phone number information where the assigned phone number is associated with the LocationId | `Get-CsPhoneNumberAssignment -LocationId <LocationId>` | | NumberAssigned | Find enabled users with a phone number assigned | `Get-CsOnlineUser -Filter {(LineUri -ne $Null) -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | | NumberNotAssigned | Find users without a phone number assigned | `Get-CsOnlineUser -Filter {(LineUri -eq $Null) -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | | PSTNConnectivity | Find enabled users with PhoneSystem (OnPremises) or CallingPlan (Online) | Online: `Get-CsOnlineUser -Filter {(FeatureTypes -contains 'CallingPlan') -and (AccountEnabled -eq $True)} -AccountType User` OnPremises: `Get-CsOnlineUser -Filter {-not (FeatureTypes -contains 'CallingPlan') -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | + The following table lists the output fields from `Get-CsOnlineVoiceUser` and the alternative method of getting the same information using a combination of `Get-CsOnlineUser`, `Get-CsPhoneNumberAssignment`, and `Get-CsOnlineLisLocation`. + | Output field | Alternative | | :---------------------------------| :--------------------------------- | | Name | DisplayName in the output from `Get-CsOnlineUser` | | Id | Identity in the output from `Get-CsOnlineUser`| | SipDomain | Extract SipDomain from the SipAddress in the output from `Get-CsOnlineUser` | | DataCenter | Extract DataCenter from RegistrarPool in the output from `Get-CsOnlineUser`| | TenantId | TenantId in the output from `Get-CsOnlineUser`| | PstnConnectivity | FeatureTypes in the output from `Get-CsOnlineUser`. If FeatureTypes contains `CallingPlan`, PstnConnectivity is `Online`. If FeatureTypes contains `PhoneSystem` and does not contain `CallingPlan`, PstnConnectivity is `OnPremises` | | UsageLocation | UsageLocation in the output from `Get-CsOnlineUser` | | EnterpriseVoiceEnabled | EnterpriseVoiceEnabled in the output from `Get-CsOnlineUser` | | Number | LineUri in the output from `Get-CsOnlineUser`. You can get same phone number format by doing LineUri.Replace('tel:+','') | | Location | Use LocationId in the output from `Get-CsPhoneNumberAssignment -AssignedPstnTargetId <Identity>` as the input to `Get-CsOnlineLisLocation -LocationId` | + In Teams PowerShell Module version 3.0 and later in commercial cloud (and Teams PowerShell Module versions 5.0.1 and later in GCCH and DOD), the following improvements have been introduced for organizations using Teams: - This cmdlet now accurately returns users who are voice-enabled (the older cmdlet in version 2.6.0 and earlier returned users without MCOEV* plans assigned). + - The result size is not limited to 100 users anymore (the older cmdlet in version 2.6.0 and earlier limited the result size to 100). + + In Teams PowerShell Module version 2.6.2 and later in commercial cloud (and Teams PowerShell Module versions 5.0.1 and later in GCCH and DOD), the following attributes are deprecated for organizations with Teams users using the ExpandLocation parameter: + - Force + - NumberOfResultsToSkip + - CorrelationId + - Verb + - ResultSize + - LicenceState + + In Teams PowerShell Module version 2.6.2 and later in commercial cloud (and Teams PowerShell Module versions 5.0.1 and later in GCCH and DOD), the following input parameters are deprecated for organizations with Teams users due to low or zero usage: + - DomainController + - Force + - GetFromAAD + - GetPendingUsers + - SearchQuery + - Skip + - Tenant + - Common Parameters + + + + Get-CsOnlineVoiceUser + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the identity of the civic address that is assigned to the target users. + + XdsCivicAddressId + + XdsCivicAddressId + + + None + + + DomainController + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + EnterpriseVoiceStatus + + > Applicable: Microsoft Teams + Possible values are: * All + * Enabled + * Disabled + + MultiValuedProperty + + MultiValuedProperty + + + None + + + ExpandLocation + + > Applicable: Microsoft Teams + Displays the location parameter with its value. + + + SwitchParameter + + + False + + + First + + > Applicable: Microsoft Teams + Specifies the number of users to return. The default is 100. + + Unlimited + + Unlimited + + + None + + + Force + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + GetFromAAD + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Use this switch to get the users from Microsoft Entra ID. + + + SwitchParameter + + + False + + + GetPendingUsers + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Use this switch to get only the users in pending state. + + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + + UserIdParameter + + UserIdParameter + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the location identity of the location whose users will be returned. You can find location identifiers by using the `Get-CsOnlineLisLocation` cmdlet. + + LocationID + + LocationID + + + None + + + NumberAssigned + + > Applicable: Microsoft Teams + If specified, the query will return users who have a phone number assigned. + + + SwitchParameter + + + False + + + NumberNotAssigned + + > Applicable: Microsoft Teams + If specified, the query will return users who do not have a phone number assigned. + + + SwitchParameter + + + False + + + PSTNConnectivity + + > Applicable: Microsoft Teams + Possible values are: * All + * Online + * OnPremises + + MultiValuedProperty + + MultiValuedProperty + + + None + + + SearchQuery + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + The SearchQuery parameter specifies a search string or a query formatted using Keyword Query Language (KQL). For more details about KQL, see Keyword Query Language syntax reference (https://go.microsoft.com/fwlink/p/?linkid=269603). + If this parameter is empty, all users are returned. + + String + + String + + + None + + + Skip + + > Applicable: Microsoft Teams + Specifies the number of users to skip. If you used the First parameter to return the first 50 users and wanted to get another 50, you could use -Skip 50 to avoid returning the first 50 you've already reviewed. The default is 0. + + Unlimited + + Unlimited + + + None + + + Tenant + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the identity of the civic address that is assigned to the target users. + + XdsCivicAddressId + + XdsCivicAddressId + + + None + + + DomainController + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + EnterpriseVoiceStatus + + > Applicable: Microsoft Teams + Possible values are: * All + * Enabled + * Disabled + + MultiValuedProperty + + MultiValuedProperty + + + None + + + ExpandLocation + + > Applicable: Microsoft Teams + Displays the location parameter with its value. + + SwitchParameter + + SwitchParameter + + + False + + + First + + > Applicable: Microsoft Teams + Specifies the number of users to return. The default is 100. + + Unlimited + + Unlimited + + + None + + + Force + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + GetFromAAD + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Use this switch to get the users from Microsoft Entra ID. + + SwitchParameter + + SwitchParameter + + + False + + + GetPendingUsers + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + Use this switch to get only the users in pending state. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + + UserIdParameter + + UserIdParameter + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the location identity of the location whose users will be returned. You can find location identifiers by using the `Get-CsOnlineLisLocation` cmdlet. + + LocationID + + LocationID + + + None + + + NumberAssigned + + > Applicable: Microsoft Teams + If specified, the query will return users who have a phone number assigned. + + SwitchParameter + + SwitchParameter + + + False + + + NumberNotAssigned + + > Applicable: Microsoft Teams + If specified, the query will return users who do not have a phone number assigned. + + SwitchParameter + + SwitchParameter + + + False + + + PSTNConnectivity + + > Applicable: Microsoft Teams + Possible values are: * All + * Online + * OnPremises + + MultiValuedProperty + + MultiValuedProperty + + + None + + + SearchQuery + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + The SearchQuery parameter specifies a search string or a query formatted using Keyword Query Language (KQL). For more details about KQL, see Keyword Query Language syntax reference (https://go.microsoft.com/fwlink/p/?linkid=269603). + If this parameter is empty, all users are returned. + + String + + String + + + None + + + Skip + + > Applicable: Microsoft Teams + Specifies the number of users to skip. If you used the First parameter to return the first 50 users and wanted to get another 50, you could use -Skip 50 to avoid returning the first 50 you've already reviewed. The default is 0. + + Unlimited + + Unlimited + + + None + + + Tenant + + > Applicable: Microsoft Teams This parameter has been deprecated from Teams PowerShell Modules 3.0 and above due to limited usage . + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Deserialized.Microsoft.Rtc.Management.Hosted.Bvd.Types.LacUser + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsOnlineVoiceUser -Identity Ken.Myer@contoso.com + + This example uses the User Principal Name (UPN) to retrieve the location and phone number information. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceuser + + + Set-CsOnlineVoiceUser + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceuser + + + + + + Get-CsPersonalAttendantSettings + Get + CsPersonalAttendantSettings + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + This cmdlet will show personal attendant settings for a user. + + + + This cmdlet shows the personal attendant settings for a user. + + + + Get-CsPersonalAttendantSettings + + Identity + + The Identity of the user to show personal attendant settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + Identity + + The Identity of the user to show personal attendant settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.3.0 or later. + + + + + -------------------------- Example 1 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : False +IsNonContactCallbackEnabled : False +IsCallScreeningEnabled : False +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : False +AllowInboundPSTNCalls : False +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example shows that user1@contoso.com has personal attendant enabled (personal attendant communicates in English). Personal attendant will refer to its owner as User1. Personal attendant is only enabled for inbound Teams calls from the user's domain. Additional capabilities are turned off. + + + + -------------------------- Example 2 -------------------------- + Get-CsPersonalAttendantSettings -InputObject @{ UserId = "user11@contoso.com"; } + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : False +IsNonContactCallbackEnabled : False +IsCallScreeningEnabled : False +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : False +AllowInboundPSTNCalls : False +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example returns same output as Example 1 but fetched using identity parameter. + + + + -------------------------- Example 3 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : True +IsNonContactCallbackEnabled : False +IsCallScreeningEnabled : False +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : False +AllowInboundPSTNCalls : False +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example shows that user1@contoso.com has personal attendant enabled. In addition to previously mentioned capabilities, personal attendant is able to access personal bookings calendar, fetch the user's availability and schedule callbacks on behalf of the user. Calendar operations are enabled for all incoming callers. user1 must specify the bookings link in Teams Personal Attendant settings. + + + + -------------------------- Example 4 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : True +IsNonContactCallbackEnabled : True +IsCallScreeningEnabled : False +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : True +AllowInboundPSTNCalls : True +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example shows that user1@contoso.com has personal attendant enabled. In addition to previously mentioned capabilities, personal attendant is enabled for all incoming calls: the user's domain, other domains and PSTN. + + + + -------------------------- Example 5 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : True +IsNonContactCallbackEnabled : True +IsCallScreeningEnabled : True +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : True +AllowInboundPSTNCalls : True +IsAutomaticTranscriptionEnabled : False +IsAutomaticRecordingEnabled : False + + This example shows that user1@contoso.com has personal attendant enabled. In addition to previously mentioned capabilities, personal attendant is enabled to evaluate the call's context and pass the info to the user. + + + + -------------------------- Example 6 -------------------------- + Get-CsPersonalAttendantSettings -Identity user1@contoso.com + +IsPersonalAttendantEnabled : True +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : User1 +DefaultTone : Formal +IsBookingCalendarEnabled : True +IsNonContactCallbackEnabled : True +IsCallScreeningEnabled : True +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : True +AllowInboundPSTNCalls : True +IsAutomaticTranscriptionEnabled : True +IsAutomaticRecordingEnabled : True + + This example shows that user1@contoso.com has personal attendant enabled. In addition to previously mentioned capabilities, personal attendant is automatically storing call transcription and recording. + + + + -------------------------- Example 7 -------------------------- + Get-CsPersonalAttendantSettings -Identity user11@contoso.com + +IsPersonalAttendantEnabled : False +DefaultLanguage : en-US +DefaultVoice : Female +CalleeName : +DefaultTone : Formal +IsBookingCalendarEnabled : False +IsNonContactCallbackEnabled : False +IsCallScreeningEnabled : True +AllowInboundInternalCalls : True +AllowInboundFederatedCalls : True +AllowInboundPSTNCalls : True +IsAutomaticTranscriptionEnabled : True +IsAutomaticRecordingEnabled : True + + This example shows the default settings for the user that has never changed the personal attendant settings via Microsoft Teams. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspersonalattendantsettings + + + Set-CsPersonalAttendantSettings + + + + + + + Get-CsPhoneNumberAssignment + Get + CsPhoneNumberAssignment + + This cmdlet displays information about one or more phone numbers. + + + + This cmdlet displays information about one or more phone numbers. You can filter the phone numbers to return by using different parameters. Returned results are sorted by TelephoneNumber in ascending order. Supported list of attributes for Filter are: - TelephoneNumber + - OperatorId + - PstnAssignmentStatus (also supported AssignmentStatus) + - ActivationState + - IsoCountryCode + - Capability (also supported AcquiredCapabilities) + - IsOperatorConnect + - PstnPartnerName (also supported PartnerName) + - LocationId + - CivicAddressId + - NetworkSiteId + - NumberType + - AssignedPstnTargetId (also supported TargetId) + - TargetType + - AssignmentCategory + - ResourceAccountSharedCallingPolicySupported + - SupportedCustomerActions + - ReverseNumberLookup + - RoutingOptions + - SmsActivationState + - Tags + + If you are using both -Skip X and -Top Y for filtering, the returned results will first be skipped by X, and then the top Y results will be returned. + By default, this cmdlet returns a maximum of 500 results. A maximum of 1000 results can be returned using -Top filter. If you need to get more than 1000 results, a combination of -Skip and -Top filtering can be used to list incremental returns of 1000 numbers. If a full list of telephone numbers acquired by the tenant is required, you can use Export-CsAcquiredPhoneNumber (./export-csacquiredphonenumber.md)cmdlet to download a list of all acquired telephone numbers. + + + + Get-CsPhoneNumberAssignment + + ActivationState + + > Applicable: Microsoft Teams + Filters the returned results based on the number type. Supported values are Activated, AssignmentPending, AssignmentFailed, UpdatePending, and UpdateFailed. + + System.String + + System.String + + + None + + + AssignedPstnTargetId + + > Applicable: Microsoft Teams + Filters the returned results based on the user or resource account ID the phone number is assigned to. Supported values are UserPrincipalName, SIP address, ObjectId, and the Teams shared calling routing policy instance name. + + System.String + + System.String + + + None + + + AssignmentCategory + + > Applicable: Microsoft Teams + This parameter is used to differentiate between Primary and Private line assignment for a user. + + System.String + + System.String + + + None + + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + CapabilitiesContain + + > Applicable: Microsoft Teams + Filters the returned results based on the capabilities assigned to the phone number. You can specify one or more capabilities delimited by a comma. Supported capabilities are ConferenceAssignment, VoiceApplicationAssignment, UserAssignment, and TeamsPhoneMobile. + If you specify only one capability, you will get all phone numbers returned that have that capability assigned. If you specify a comma separated list for instance like ConferenceAssignment, VoiceApplicationAssignment you will get all phone numbers that have both capabilities assigned, but you won't get phone numbers that have only VoiceApplicationAssignment or ConferenceAssignment assigned as capability. + + System.String + + System.String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Filters the returned results based on the CivicAddressId assigned to the phone number. You can get the CivicAddressId by using Get-CsOnlineLisCivicAddress (https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress). + + System.String + + System.String + + + None + + + Filter + + This can be used to filter on one or more parameters within the search results. + + System.String + + System.String + + + None + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + IsoCountryCode + + > Applicable: Microsoft Teams + Filters the returned results based on the ISO 3166-1 Alpha-2 country code assigned to the phone number. + + System.String + + System.String + + + None + + + LocationId + + > Applicable: Microsoft Teams + Filters the returned results based on the LocationId assigned to the phone number. You can get the LocationId by using Get-CsOnlineLisLocation (https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation). + + System.String + + System.String + + + None + + + NetworkSiteId + + > Applicable: Microsoft Teams + ID of a network site. A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. + + System.String + + System.String + + + None + + + NumberType + + > Applicable: Microsoft Teams + Filters the returned results based on the number type. Supported values are DirectRouting, CallingPlan, and OperatorConnect. + + System.String + + System.String + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + PstnAssignmentStatus + + > Applicable: Microsoft Teams + Filters the returned results based on the assignment status. Support values are Unassigned, UserAssigned, ConferenceAssigned, VoiceApplicationAssigned, ThirdPartyAppAssigned, and PolicyAssigned. + + System.String + + System.String + + + None + + + Skip + + Skips the first X returned results and the default value is 0. + + System.Int32 + + System.Int32 + + + None + + + TelephoneNumber + + > Applicable: Microsoft Teams + Filters the returned results to a specific phone number. It is optional to specify a prefixed "+". The phone number can't have "tel:" prefixed. We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234. + + System.String + + System.String + + + None + + + TelephoneNumberContain + + > Applicable: Microsoft Teams + Filters the returned results based on substring match for the specified string on TelephoneNumber. To search for a number with an extension, you need to specify the digits of the extension. For supported formats see TelephoneNumber. + + System.String + + System.String + + + None + + + TelephoneNumberGreaterThan + + > Applicable: Microsoft Teams + Filters the returned results based on greater than match for the specified string on TelephoneNumber. Can be used together with TelephoneNumberLessThan to specify a range of phone numbers to return results for. For supported formats see TelephoneNumber. + + System.String + + System.String + + + None + + + TelephoneNumberLessThan + + > Applicable: Microsoft Teams + Filters the returned results based on less than match for the specified string on TelephoneNumber. Can be used together with TelephoneNumberGreaterThan to specify a range of phone numbers to return results for. For supported formats see TelephoneNumber. + + System.String + + System.String + + + None + + + TelephoneNumberStartsWith + + > Applicable: Microsoft Teams + Filters the returned results based on starts with string match for the specified string on TelephoneNumber. For supported formats see TelephoneNumber. + + System.String + + System.String + + + None + + + Top + + > Applicable: Microsoft Teams + Returns the first X returned results and the default value is 500. + + System.Int32 + + System.Int32 + + + None + + + + + + ActivationState + + > Applicable: Microsoft Teams + Filters the returned results based on the number type. Supported values are Activated, AssignmentPending, AssignmentFailed, UpdatePending, and UpdateFailed. + + System.String + + System.String + + + None + + + AssignedPstnTargetId + + > Applicable: Microsoft Teams + Filters the returned results based on the user or resource account ID the phone number is assigned to. Supported values are UserPrincipalName, SIP address, ObjectId, and the Teams shared calling routing policy instance name. + + System.String + + System.String + + + None + + + AssignmentCategory + + > Applicable: Microsoft Teams + This parameter is used to differentiate between Primary and Private line assignment for a user. + + System.String + + System.String + + + None + + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + CapabilitiesContain + + > Applicable: Microsoft Teams + Filters the returned results based on the capabilities assigned to the phone number. You can specify one or more capabilities delimited by a comma. Supported capabilities are ConferenceAssignment, VoiceApplicationAssignment, UserAssignment, and TeamsPhoneMobile. + If you specify only one capability, you will get all phone numbers returned that have that capability assigned. If you specify a comma separated list for instance like ConferenceAssignment, VoiceApplicationAssignment you will get all phone numbers that have both capabilities assigned, but you won't get phone numbers that have only VoiceApplicationAssignment or ConferenceAssignment assigned as capability. + + System.String + + System.String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Filters the returned results based on the CivicAddressId assigned to the phone number. You can get the CivicAddressId by using Get-CsOnlineLisCivicAddress (https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress). + + System.String + + System.String + + + None + + + Filter + + This can be used to filter on one or more parameters within the search results. + + System.String + + System.String + + + None + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + IsoCountryCode + + > Applicable: Microsoft Teams + Filters the returned results based on the ISO 3166-1 Alpha-2 country code assigned to the phone number. + + System.String + + System.String + + + None + + + LocationId + + > Applicable: Microsoft Teams + Filters the returned results based on the LocationId assigned to the phone number. You can get the LocationId by using Get-CsOnlineLisLocation (https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation). + + System.String + + System.String + + + None + + + NetworkSiteId + + > Applicable: Microsoft Teams + ID of a network site. A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. + + System.String + + System.String + + + None + + + NumberType + + > Applicable: Microsoft Teams + Filters the returned results based on the number type. Supported values are DirectRouting, CallingPlan, and OperatorConnect. + + System.String + + System.String + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PstnAssignmentStatus + + > Applicable: Microsoft Teams + Filters the returned results based on the assignment status. Support values are Unassigned, UserAssigned, ConferenceAssigned, VoiceApplicationAssigned, ThirdPartyAppAssigned, and PolicyAssigned. + + System.String + + System.String + + + None + + + Skip + + Skips the first X returned results and the default value is 0. + + System.Int32 + + System.Int32 + + + None + + + TelephoneNumber + + > Applicable: Microsoft Teams + Filters the returned results to a specific phone number. It is optional to specify a prefixed "+". The phone number can't have "tel:" prefixed. We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234. + + System.String + + System.String + + + None + + + TelephoneNumberContain + + > Applicable: Microsoft Teams + Filters the returned results based on substring match for the specified string on TelephoneNumber. To search for a number with an extension, you need to specify the digits of the extension. For supported formats see TelephoneNumber. + + System.String + + System.String + + + None + + + TelephoneNumberGreaterThan + + > Applicable: Microsoft Teams + Filters the returned results based on greater than match for the specified string on TelephoneNumber. Can be used together with TelephoneNumberLessThan to specify a range of phone numbers to return results for. For supported formats see TelephoneNumber. + + System.String + + System.String + + + None + + + TelephoneNumberLessThan + + > Applicable: Microsoft Teams + Filters the returned results based on less than match for the specified string on TelephoneNumber. Can be used together with TelephoneNumberGreaterThan to specify a range of phone numbers to return results for. For supported formats see TelephoneNumber. + + System.String + + System.String + + + None + + + TelephoneNumberStartsWith + + > Applicable: Microsoft Teams + Filters the returned results based on starts with string match for the specified string on TelephoneNumber. For supported formats see TelephoneNumber. + + System.String + + System.String + + + None + + + Top + + > Applicable: Microsoft Teams + Returns the first X returned results and the default value is 500. + + System.Int32 + + System.Int32 + + + None + + + + + + None + + + + + + + + + + ActivationState + + + The activation state of the telephone number. + + + + + AssignedPstnTargetId + + + The ID of the object the phone number is assigned to, either the ObjectId of a user or resource account or the policy instance ID of a Teams shared calling routing policy instance. + + + + + AssignmentCategory + + + Contains the assignment category such as Primary or Private. + + + + + Capability + + + The list of capabilities assigned to the phone number. + + + + + City + + + The city where the phone number is located. + + + + + CivicAddressId + + + The ID of the CivicAddress assigned to the phone number. + + + + + IsoCountryCode + + + The ISO country code assigned to the phone number. + + + + + IsoSubDivision + + + The subdivision within the country/region assigned to the phone number, for example, the state for US phone numbers. + + + + + LocationId + + + The ID of the Location assigned to the phone number. + + + + + LocationUpdateSupported + + + Boolean stating if updating of the location assigned to the phone number is allowed. + + + + + NetworkSiteId + + + This parameter is reserved for internal Microsoft use. + + + + + NumberSource + + + The source of the phone number. Online for phone numbers assigned in Microsoft 365 and OnPremises for phone numbers assigned in AD on-premises and synchronized into Microsoft 365. + + + + + NumberType + + + The type of the phone number. + + + + + OperatorId + + + The ID of the operator. + + + + + PortInOrderStatus + + + The status of any port in order covering the phone number. + + + + + PstnAssignmentStatus + + + The assignment status of the phone number. + + + + + PstnPartnerId + + + The ID of the PSTN partner providing the phone number. + + + + + PstnPartnerName + + + The name of the PSTN partner. + + + + + TelephoneNumber + + + The phone number. The number is always displayed with prefixed "+", even if it was not assigned using prefixed "+". + The object returned is of type SkypeTelephoneNumberMgmtCmdletAcquiredTelephoneNumber. + + + + + ReverseNumberLookup + + + Status of Reverse Number Lookup (RNL). When it is set to SkipInternalVoip, the calls are handled through external PSTN connection instead of internal VoIP lookup. + + + + + + The cmdlet is available in Teams PowerShell module 4.0.0 or later. The parameter AssignmentCategory was introduced in Teams PowerShell module 5.3.1-preview. The parameter NetworkSiteId was introduced in Teams PowerShell module 5.5.0. The output parameter NumberSource was introduced in Teams PowerShell module 5.7.0. + The cmdlet is only available in commercial and GCC cloud instances. + + + + + -------------------------- Example 1 -------------------------- + Get-CsPhoneNumberAssignment -TelephoneNumber +14025551234 + +TelephoneNumber : +14025551234 +OperatorId : 2b24d246-a9ee-428b-96bc-fb9d9a053c8d +NumberType : CallingPlan +ActivationState : Activated +AssignedPstnTargetId : dc13d97b-7897-494e-bc28-6b469bf7a70e +AssignmentCategory : Primary +Capability : {UserAssignment} +City : Omaha +CivicAddressId : 703b30e5-dbdd-4132-9809-4c6160a6acc7 +IsoCountryCode : US +IsoSubdivision : Nebraska +LocationId : 407c17ae-8c41-431e-894a-38787c682f68 +LocationUpdateSupported : True +NetworkSiteId : +PortInOrderStatus : +PstnAssignmentStatus : UserAssigned +PstnPartnerId : 7fc2f2eb-89aa-41d7-93de-73d015d22ff0 +PstnPartnerName : Microsoft +NumberSource : Online +ReverseNumberLookup : {} +Tag : {} + + This example displays information about the Microsoft Calling Plan subscriber phone number +1 (402) 555-1234. You can see that it is assigned to a user. + + + + -------------------------- Example 2 -------------------------- + Get-CsPhoneNumberAssignment -TelephoneNumber "+12065551000;ext=524" + +TelephoneNumber : +12065551000;ext=524 +OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f091 +NumberType : DirectRouting +ActivationState : Activated +AssignedPstnTargetId : 2713551e-ed63-415d-9175-fc4ff825a0be +AssignmentCategory : Primary +Capability : {ConferenceAssignment, VoiceApplicationAssignment, UserAssignment} +City : +CivicAddressId : 00000000-0000-0000-0000-000000000000 +IsoCountryCode : +IsoSubdivision : +LocationId : 00000000-0000-0000-0000-000000000000 +LocationUpdateSupported : True +NetworkSiteId : +PortInOrderStatus : +PstnAssignmentStatus : UserAssigned +PstnPartnerId : +PstnPartnerName : +NumberSource : OnPremises +ReverseNumberLookup : {} +Tag : {} + + This example displays information about the Direct Routing phone number +1 (206) 555-1000;ext=524. You can see that it is assigned to a user. + + + + -------------------------- Example 3 -------------------------- + Get-CsPhoneNumberAssignment -CapabilitiesContain "VoiceApplicationAssignment,ConferenceAssignment" + + This example returns all phone numbers that have both the capability VoiceApplicationAssignment and the capability ConferenceAssignment assigned, but phone numbers that have only one of these capabilities assigned won't be returned. + + + + -------------------------- Example 4 -------------------------- + Get-CsPhoneNumberAssignment -AssignedPstnTargetId user1@contoso.com + + This example returns information about the phone number assigned to user1@contoso.com. + + + + -------------------------- Example 5 -------------------------- + Get-CsPhoneNumberAssignment -AssignedPstnTargetId aa1@contoso.com + + This example returns information about the phone number assigned to resource account aa1@contoso.com. + + + + -------------------------- Example 6 -------------------------- + Get-CsPhoneNumberAssignment -ActivationState Activated -CapabilitiesContain VoiceApplicationAssignment -PstnAssignmentStatus Unassigned + + This example returns information about all activated phone numbers with the capability VoiceApplicationAssignment that are not assigned. + + + + -------------------------- Example 7 -------------------------- + Get-CsPhoneNumberAssignment -TelephoneNumberContain "524" + + This example returns information about all phone numbers that contain the digits 524, including the phone number with extension 524 used in example 2. + + + + -------------------------- Example 8 -------------------------- + Get-CsPhoneNumberAssignment -Skip 1000 -Top 1000 + + This example returns all phone numbers sequenced between 1001 to 2000 in the record of phone numbers. + + + + -------------------------- Example 9 -------------------------- + Get-CsPhoneNumberAssignment -AssignedPstnTargetId 'TeamsSharedCallingRoutingPolicy|Tag:SC1' + + This example returns all phone numbers assigned as emergency numbers in the Teams shared calling routing policy instance SC1. + + + + -------------------------- Example 10 -------------------------- + Get-CsPhoneNumberAssignment -TelephoneNumber "+12065551000;ext=524" + +TelephoneNumber : +12065551000;ext=524 +OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a6f091 +NumberType : DirectRouting +ActivationState : Activated +AssignedPstnTargetId : 2713551e-ed63-415d-9175-fc4ff825a0be +AssignmentCategory : Primary +Capability : {ConferenceAssignment, VoiceApplicationAssignment, UserAssignment} +City : +CivicAddressId : 00000000-0000-0000-0000-000000000000 +IsoCountryCode : +IsoSubdivision : +LocationId : 00000000-0000-0000-0000-000000000000 +LocationUpdateSupported : True +NetworkSiteId : +PortInOrderStatus : +PstnAssignmentStatus : UserAssigned +PstnPartnerId : +PstnPartnerName : +NumberSource : OnPremises +ReverseNumberLookup : {SkipInternalVoip} +Tag : {} + + This example displays when SkipInternalVoip option is turned on for a number. + + + + -------------------------- Example 11 -------------------------- + Get-CsPhoneNumberAssignment -Filter "TelephoneNumber -eq '+12065551000'" + +TelephoneNumber : +12065551000 +OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f091 +NumberType : DirectRouting +ActivationState : Activated +AssignedPstnTargetId : 2713551e-ed63-415d-9175-fc4ff825a0be +AssignmentCategory : Primary +Capability : {ConferenceAssignment, VoiceApplicationAssignment, UserAssignment} +City : +CivicAddressId : 00000000-0000-0000-0000-000000000000 +IsoCountryCode : +IsoSubdivision : +LocationId : 00000000-0000-0000-0000-000000000000 +LocationUpdateSupported : True +NetworkSiteId : +PortInOrderStatus : +PstnAssignmentStatus : UserAssigned +PstnPartnerId : +PstnPartnerName : +NumberSource : OnPremises +ReverseNumberLookup : {} +Tag : {} + + This example shows a way to use -Filter parameter to display information of a specific number. + + + + -------------------------- Example 12 -------------------------- + Get-CsPhoneNumberAssignment -Filter "TelephoneNumber -like '+12065551000' -and NumberType -eq 'DirectRouting'" + +TelephoneNumber : +12065551000 +OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f591 +NumberType : DirectRouting +ActivationState : Activated +AssignedPstnTargetId : 2713551e-ed63-415d-9175-fc4ff825a0be +AssignmentCategory : Primary +Capability : {ConferenceAssignment, VoiceApplicationAssignment, UserAssignment} +City : +CivicAddressId : 00000000-0000-0000-0000-000000000000 +IsoCountryCode : +IsoSubdivision : +LocationId : 00000000-0000-0000-0000-000000000000 +LocationUpdateSupported : True +NetworkSiteId : +PortInOrderStatus : +PstnAssignmentStatus : UserAssigned +PstnPartnerId : +PstnPartnerName : +NumberSource : OnPremises +ReverseNumberLookup : {} +Tag : {} + + This example shows a way to get filtered results using multiple Filter parameters. + + + + -------------------------- Example 13 -------------------------- + Get-CsPhoneNumberAssignment -Filter "Tags -contains ['Engineering']" + +TelephoneNumber : +12065551102 +OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f071 +NumberType : DirectRouting +ActivationState : Activated +AssignedPstnTargetId : 2713551e-ed63-415d-9175-fc4ff825a0be +AssignmentCategory : Primary +Capability : {ConferenceAssignment, VoiceApplicationAssignment, UserAssignment} +City : +CivicAddressId : 00000000-0000-0000-0000-000000000000 +IsoCountryCode : +IsoSubdivision : +LocationId : 00000000-0000-0000-0000-000000000000 +LocationUpdateSupported : True +NetworkSiteId : +PortInOrderStatus : +PstnAssignmentStatus : UserAssigned +PstnPartnerId : +PstnPartnerName : +NumberSource : OnPremises +ReverseNumberLookup : {} +Tag : {Engineering} + + This example shows a way to get filtered results using tags. Tags are not case sensitive. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment + + + Remove-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment + + + Set-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment + + + + + + Get-CsPhoneNumberPolicyAssignment + Get + CsPhoneNumberPolicyAssignment + + This cmdlet retrieves policy assignments associated with a specific telephone number or a list of telephone numbers in Microsoft Teams. + + + + This cmdlet retrieves policy assignments associated with one or more telephone numbers. It supports querying a single telephone number or a list of numbers, with optional filtering by policy type or policy name. This functionality is particularly useful for administrators managing Teams voice configurations, including scenarios with multiline support. + When querying a single telephone number, the cmdlet returns the most recent effective policy assignment. Note that it may take several minutes for newly applied assignments to propagate and appear in the results. + + + + Get-CsPhoneNumberPolicyAssignment + + TelephoneNumber + + Specifies the telephone number to query. + + System.String + + System.String + + + None + + + PolicyType + + Filters results by the type of policy assigned (e.g., TenantDialPlan, CallingLineIdentity etc.). + + System.String + + System.String + + + None + + + PolicyName + + Filters results by the name of the policy. To use this parameter, `-PolicyType` must also be specified. + + System.String + + System.String + + + None + + + ResultSize + + Limits the number of telephone numbers returned in the results. + + System.Int32 + + System.Int32 + + + None + + + + + + TelephoneNumber + + Specifies the telephone number to query. + + System.String + + System.String + + + None + + + PolicyType + + Filters results by the type of policy assigned (e.g., TenantDialPlan, CallingLineIdentity etc.). + + System.String + + System.String + + + None + + + PolicyName + + Filters results by the name of the policy. To use this parameter, `-PolicyType` must also be specified. + + System.String + + System.String + + + None + + + ResultSize + + Limits the number of telephone numbers returned in the results. + + System.Int32 + + System.Int32 + + + None + + + + + + None + + + + + + + + + + TelephoneNumber + + + The telephone number. + + + + + PolicyType + + + The type of the policy assigned to the telephone number. + + + + + PolicyName + + + The name of the policy assigned to the telephone number. + + + + + Reference + + + Metadata that describes the origin or mechanism of the policy assignment. It helps administrators understand whether a policy was explicitly set or inherited through broader configuration scopes. This cmdlet returns only Direct assignments, which are policies that are explicitly assigned to telephone numbers by a tenant admin. + + + + + + The cmdlet is available in Teams PowerShell module 7.3.1 or later. The cmdlet is only available in commercial cloud instances. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsPhoneNumberPolicyAssignment -TelephoneNumber 17789493766 + +TelephoneNumber PolicyType PolicyName Authority AssignmentType Reference +--------------- ---------- ---------- --------- -------------- --------- +17789493766 TenantDialPlan PolicyFoo Tenant Direct Direct +17789493766 CallingLineIdentity PolicyBar Tenant Direct Direct + + This example returns all policy assigned for the specified telephone number. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsPhoneNumberPolicyAssignment + +TelephoneNumber PolicyType PolicyName Authority AssignmentType Reference +--------------- ---------- ---------- --------- -------------- --------- +1234567 TenantDialPlan BenTestPolicy Tenant Direct Direct +17789493766 TenantDialPlan PolicyFoo Tenant Direct Direct +17789493766 CallingLineIdentity PolicyBar Tenant Direct Direct + + This example returns a list of all the telephone numbers in the tenant that have at least one policy assigned. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsPhoneNumberPolicyAssignment -PolicyType TenantDialPlan + +TelephoneNumber PolicyType PolicyName Reference +--------------- ---------- ---------- --------- +1234567 TenantDialPlan BenTestPolicy Direct +17789493766 TenantDialPlan PolicyFoo Direct + + This example returns a list of all the telephone numbers in tenant that have TenantDialPlan assigned. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Get-CsPhoneNumberPolicyAssignment -PolicyType TenantDialPlan -PolicyName PolicyFoo -ResultSize 1 + +TelephoneNumber PolicyType PolicyName Reference +--------------- ---------- ---------- --------- +17789493766 TenantDialPlan PolicyFoo Direct + + This example returns the top 1 telephone number with policy assignment matching the specified type and name. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberpolicyassignment + + + Set-CsPhoneNumberPolicyAssignment + + + + + + + Get-CsPhoneNumberTag + Get + CsPhoneNumberTag + + This cmdlet allows the admin to get a list of existing tags for telephone numbers. + + + + This cmdlet will get a list of all existing tags that are assigned to phone numbers in the tenant. + + + + Get-CsPhoneNumberTag + + + + + + + None + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletTenantTagRecord + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsPhoneNumberTag + +TagValue +HR +Redmond HQ +Executives + + This example shows how to get a list of existing tags for telephone numbers + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumbertag + + + + + + Get-CsPolicyPackage + Get + CsPolicyPackage + + This cmdlet supports retrieving all the policy packages available on a tenant. + + + + This cmdlet supports retrieving all the policy packages available on a tenant. Provide the identity of a specific policy package to retrieve its definition, including details on the policies applied with the package. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. + + + + Get-CsPolicyPackage + + Identity + + > Applicable: Microsoft Teams + The name of a specific policy package. All possible policy package names can be found by running Get-CsPolicyPackage. + + String + + String + + + None + + + InputObject + + The identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The name of a specific policy package. All possible policy package names can be found by running Get-CsPolicyPackage. + + String + + String + + + None + + + InputObject + + The identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsPolicyPackage + + Returns all policy packages available on the tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsPolicyPackage -Identity Education_PrimaryStudent + + Returns only the Education_PrimaryStudent policy package. + + + + -------------------------- Example 3 -------------------------- + PS C:\> $a = Get-CsPolicyPackage -Identity Education_PrimaryStudent +PS C:\> $a.Policies + +# In module versions 1.1.9+ +PS C:\> $a = Get-CsPolicyPackage -Identity Education_PrimaryStudent +PS C:\> $a.Policies.AdditionalProperties + +Key Value +--- ----- +TeamsMessagingPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... +TeamsMeetingPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... +TeamsAppSetupPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... +TeamsCallingPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... +TeamsMeetingBroadcastPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... + + Returns the set of policies in the Education_PrimaryStudent policy package. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + Get-CsUserPolicyPackageRecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation + + + Get-CsUserPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage + + + Grant-CsUserPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage + + + + + + Get-CsSdgBulkSignInRequestsSummary + Get + CsSdgBulkSignInRequestsSummary + + Get the tenant level summary of all bulk sign in requests executed in the past 30 days. + + + + This cmdlet gives the overall tenant level summary of all bulk sign in requests executed for a particular tenant within the last 30 days. Status is shown at batch level as succeeded / failed. + + + + Get-CsSdgBulkSignInRequestsSummary + + + + + + + None + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestsSummaryResponseItem + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsSdgBulkSignInRequestsSummary + + This example shows how to run the cmdlet to get a tenant level summary. + + + + + + + + Get-CsSdgBulkSignInRequestStatus + Get + CsSdgBulkSignInRequestStatus + + Get the status of an active bulk sign in request. + + + + Use this cmdlet to get granular device level details of a bulk sign in request. Status is shown for every username and hardware ID pair included in the device details CSV used as input to the bulk sign in request. + + + + Get-CsSdgBulkSignInRequestStatus + + Batchid + + Batch ID is the response returned by the `New-CsSdgBulkSignInRequest` cmdlet. It is used as input for querying the status of the batch through `Get-CsSdgBulkSignInRequestStatus` cmdlet. + + String + + String + + + None + + + + + + Batchid + + Batch ID is the response returned by the `New-CsSdgBulkSignInRequest` cmdlet. It is used as input for querying the status of the batch through `Get-CsSdgBulkSignInRequestStatus` cmdlet. + + String + + String + + + None + + + + + + None + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestStatusResult + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $newBatchResponse = New-CsSdgBulkSignInRequest -DeviceDetailsFilePath .\Example.csv -Region APAC +$newBatchResponse.BatchId +$getBatchStatusResponse = Get-CsSdgBulkSignInRequestStatus -Batchid $newBatchResponse.BatchId +$getBatchStatusResponse | ft +$getBatchStatusResponse.BatchItem + + This example shows how to read the batch status response into a new variable and print the status for every batch item. + + + + + + + + Get-CsSharedCallQueueHistoryTemplate + Get + CsSharedCallQueueHistoryTemplate + + Use the Get-CsSharedCallQueueHistory cmdlet to list the Shared Call Queue History templates. + + + + Use the Get-CsSharedCallQueueHistory cmdlet to list the Shared Call Queue History templates. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Get-CsSharedCallQueueHistoryTemplate + + Id + + > Applicable: Microsoft Teams + The Id of the shared call queue history template. + + System.String + + System.String + + + None + + + + + + Id + + > Applicable: Microsoft Teams + The Id of the shared call queue history template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsSharedCallQueueHistoryTemplate -Id 3a4b3d9b-91d8-4fbf-bcff-6907f325842c + + This example retrieves the Shared Call Queue History Template with the Id `3a4b3d9b-91d8-4fbf-bcff-6907f325842c` + + + + -------------------------- Example 2 -------------------------- + Get-CsSharedCallQueueHistoryTemplate + + This example retrieves all the Shared Call Queue History Templates + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsSharedCallQueueHistoryTemplate + + + New-CsSharedCallQueueHistoryTemplate + + + + Set-CsSharedCallQueueHistoryTemplate + + + + Remove-CsSharedCallQueueHistoryTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + Get-CsTagsTemplate + Get + CsTagsTemplate + + Retrieves the Tag templates in the tenant. + + + + The Get-CsTagTemplate cmdlet returns a list of all Tag templates in the tenant. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + Get-CsTagsTemplate + + Id + + The unique identifier for the Tag template. + + String + + String + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + Id + + The unique identifier for the Tag template. + + String + + String + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstagstemplate + + + New-CsTagsTemplate + + + + Set-CsTagsTemplate + + + + Remove-CsTagsTemplate + + + + New-CsTag + + + + + + + Get-CsTeamsAudioConferencingPolicy + Get + CsTeamsAudioConferencingPolicy + + Audio conferencing policies can be used to manage audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. + + + + The Get-CsTeamsAudioConferencingPolicy cmdlet enables administrators to control audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. The Get-CsTeamsAudioConferencingPolicy cmdlet enables you to return information about all the audio-conferencing policies that have been configured for use in your organization. + + + + Get-CsTeamsAudioConferencingPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + + Get-CsTeamsAudioConferencingPolicy + + Identity + + Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity "EMEA Users". If this parameter is not included, the Get-CsTeamsAudioConferencingPolicy cmdlet will return a collection of all the teams audio conferencing policies configured for use in your organization. + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity "EMEA Users". If this parameter is not included, the Get-CsTeamsAudioConferencingPolicy cmdlet will return a collection of all the teams audio conferencing policies configured for use in your organization. + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Get-CsTeamsAudioConferencingPolicy + + The command shown in Example 1, Get-CsTeamsAudioConferencingPolicy is called without any additional parameters; this returns a collection of all the teams audio conferencing policies configured for use in your organization. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Get-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" + + The command shown in Example 2, Get-CsTeamsAudioConferencingPolicy is used to return the per-user audio conferencing policy that has an Identity "EMEA Users". Because identities are unique, this command will never return more than one item. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy + + + Set-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy + + + New-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy + + + Grant-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy + + + + + + Get-CsTeamsCallParkPolicy + Get + CsTeamsCallParkPolicy + + The Get-CsTeamsCallParkPolicy cmdlet returns the policies that are available for your organization. + + + + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The Get-CsTeamsCallParkPolicy cmdlet returns the policies that are available for your organization. + NOTE: the call park feature is currently only available in the desktop and web clients. Call Park functionality is currently completely disabled in mobile clients. + + + + Get-CsTeamsCallParkPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsCallParkPolicy + + Identity + + Specify the unique name of a policy you would like to retrieve + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". + + String + + String + + + None + + + Identity + + Specify the unique name of a policy you would like to retrieve + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsCallParkPolicy + + Retrieve all policies that are available in your organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallparkpolicy + + + + + + Get-CsTeamsCortanaPolicy + Get + CsTeamsCortanaPolicy + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. + + + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. Specifically, if a user can use Cortana voice assistant in Microsoft Teams and determines Cortana invocation behavior via CortanaVoiceInvocationMode parameter - + * Disabled - Cortana voice assistant is disabled + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + + + Get-CsTeamsCortanaPolicy + + Filter + + Enables you to use wildcards when specifying the policy (or policies) to be retrieved. For example, this syntax returns all the policies that have been configured at the site scope: -Filter "site:". This syntax returns all the policies that have been configured at the per-user scope: -Filter "tag:". You cannot use both the Filter and the Identity parameters in the same command. + + String + + String + + + None + + + LocalStore + + Retrieves the Cortana voice assistant policy data from the local replica of the Central Management store rather than from the Central Management store itself. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account whose Cortana voice assistant policies are being returned. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsCortanaPolicy + + Identity + + Unique identifier for the policy to be returned. To return the global policy, use this syntax: -Identity global. To return a policy configured at the site scope, use syntax similar to this: -Identity "site:Redmond". To return a policy configured at the service scope, use syntax similar to this: -Identity "Registrar:atl-cs-001.litwareinc.com". + Policies can also be configured at the per-user scope. To return one of these policies, use syntax similar to this: -Identity "SalesDepartmentPolicy". If this parameter is not included then all of Cortana voice assistant policies configured for use in your organization will be returned. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Retrieves the Cortana voice assistant policy data from the local replica of the Central Management store rather than from the Central Management store itself. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account whose Cortana voice assistant policies are being returned. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + Enables you to use wildcards when specifying the policy (or policies) to be retrieved. For example, this syntax returns all the policies that have been configured at the site scope: -Filter "site:". This syntax returns all the policies that have been configured at the per-user scope: -Filter "tag:". You cannot use both the Filter and the Identity parameters in the same command. + + String + + String + + + None + + + Identity + + Unique identifier for the policy to be returned. To return the global policy, use this syntax: -Identity global. To return a policy configured at the site scope, use syntax similar to this: -Identity "site:Redmond". To return a policy configured at the service scope, use syntax similar to this: -Identity "Registrar:atl-cs-001.litwareinc.com". + Policies can also be configured at the per-user scope. To return one of these policies, use syntax similar to this: -Identity "SalesDepartmentPolicy". If this parameter is not included then all of Cortana voice assistant policies configured for use in your organization will be returned. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Retrieves the Cortana voice assistant policy data from the local replica of the Central Management store rather than from the Central Management store itself. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the Skype for Business Online tenant account whose Cortana voice assistant policies are being returned. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsCortanaPolicy + + In the first example, the Get-CsTeamsCortanaPolicy cmdlet is called without specifying any additional parameters. This causes the Get-CsTeamsCortanaPolicy cmdlet to return a collection of all the Cortana voice assistant policies configured for use in your organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy + + + + + + Get-CsTeamsEmergencyCallRoutingPolicy + Get + CsTeamsEmergencyCallRoutingPolicy + + This cmdlet returns one or more Emergency Call Routing policies. + + + + This cmdlet returns one or more Emergency Call Routing policies. This policy is used for the life cycle of emergency call routing - emergency numbers and routing configuration. + + + + Get-CsTeamsEmergencyCallRoutingPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + + Get-CsTeamsEmergencyCallRoutingPolicy + + Identity + + Specify the policy that you would like to retrieve. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Specify the policy that you would like to retrieve. + + String + + String + + + None + + + + + + None + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsEmergencyCallRoutingPolicy + + Retrieves all emergency call routing policies that are available in your scope. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsEmergencyCallRoutingPolicy -Identity TestECRP + + Retrieves one emergency call routing policy specifying the identity. + + + + -------------------------- Example 3 -------------------------- + Get-CsTeamsEmergencyCallRoutingPolicy -Filter 'Test*' + + Retrieves all emergency call routing policies with identity starting with Test. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy + + + New-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy + + + Set-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy + + + Grant-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy + + + Remove-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy + + + + + + Get-CsTeamsEnhancedEncryptionPolicy + Get + CsTeamsEnhancedEncryptionPolicy + + Returns information about the teams enhanced encryption policies configured for use in your organization. + + + + Returns information about the Teams enhanced encryption policies configured for use in your organization. The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for End-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. + + + + Get-CsTeamsEnhancedEncryptionPolicy + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is a regex string against the name (Identity) of the pre-constructed policies. + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + + + + Filter + + If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is a regex string against the name (Identity) of the pre-constructed policies. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Get-CsTeamsEnhancedEncryptionPolicy + + The command shown in Example 1 returns information for all the teams enhanced encryption policies configured for use in the tenant. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Get-CsTeamsEnhancedEncryptionPolicy -Identity 'ContosoPartnerEnhancedEncryptionPolicy' + + In Example 2, information is returned for a single teams enhanced encryption policy: the policy with the Identity ContosoPartnerEnhancedEncryptionPolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy + + + New-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy + + + Set-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy + + + Remove-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy + + + Grant-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy + + + + + + Get-CsTeamsEventsPolicy + Get + CsTeamsEventsPolicy + + Returns information about the Teams Events policy. Note that this policy is currently still in preview. + + + + Returns information about the Teams Events policy. TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. + + + + Get-CsTeamsEventsPolicy + + Filter + + Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. + + String + + String + + + None + + + + Get-CsTeamsEventsPolicy + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + + + + Filter + + Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsEventsPolicy + + Returns information for all Teams Events policies available for use in the tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsEventsPolicy -Identity Global + + Returns information for Teams Events policy with identity "Global". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseventspolicy + + + + + + Get-CsTeamsGuestCallingConfiguration + Get + CsTeamsGuestCallingConfiguration + + Returns information about the GuestCallingConfiguration, which specifies what options guest users have for calling within Teams. + + + + Returns information about the GuestCallingConfiguration, which specifies what options guest users have for calling within Teams. To set the configuration in your organization, use Set-CsTeamsGuestCallingConfiguration + + + + Get-CsTeamsGuestCallingConfiguration + + Identity + + Internal Microsoft use - customers can have only one TeamsGuestCallingConfiguration + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + Internal Microsoft use + + String + + String + + + None + + + LocalStore + + Internal Microsoft use + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + + + + Filter + + Internal Microsoft use + + String + + String + + + None + + + Identity + + Internal Microsoft use - customers can have only one TeamsGuestCallingConfiguration + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsGuestCallingConfiguration + + Returns the results + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestcallingconfiguration + + + + + + Get-CsTeamsGuestMeetingConfiguration + Get + CsTeamsGuestMeetingConfiguration + + Designates what meeting features guests using Microsoft Teams will have available. + + + + The TeamsGuestMeetingConfiguration designates which meeting features guests leveraging Microsoft Teams will have available. This configuration will apply to all guests utilizing Microsoft Teams. Use the Get-CsTeamsGuestMeetingConfiguration cmdlet to return what values are set for your organization. + + + + Get-CsTeamsGuestMeetingConfiguration + + Identity + + The only value accepted is Global + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + Internal Microsoft use. + + String + + String + + + None + + + LocalStore + + Internal Microsoft use + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + + + + Filter + + Internal Microsoft use. + + String + + String + + + None + + + Identity + + The only value accepted is Global + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsGuestMeetingConfiguration + + Returns the TeamsGuestMeetingConfiguration set in your organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestmeetingconfiguration + + + + + + Get-CsTeamsGuestMessagingConfiguration + Get + CsTeamsGuestMessagingConfiguration + + TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. This cmdlet returns your organization's current settings. + + + + TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. + + + + Get-CsTeamsGuestMessagingConfiguration + + Identity + + Specifies the collection of tenant guest messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of guest messaging settings there is no need include this parameter when calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + Enables you to use wildcard characters in order to return a collection of tenant guest messaging configuration settings. Because each tenant is limited to a single, global collection of guest messaging configuration settings there is no need to use the Filter parameter. + + String + + String + + + None + + + LocalStore + + This parameter is not used with Skype for Business Online. + + + SwitchParameter + + + False + + + Tenant + + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + Filter + + Enables you to use wildcard characters in order to return a collection of tenant guest messaging configuration settings. Because each tenant is limited to a single, global collection of guest messaging configuration settings there is no need to use the Filter parameter. + + String + + String + + + None + + + Identity + + Specifies the collection of tenant guest messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of guest messaging settings there is no need include this parameter when calling the cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + This parameter is not used with Skype for Business Online. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsGuestMessagingConfiguration + + The command shown in Example 1 returns teams guest messaging configuration information for the current tenant + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestmessagingconfiguration + + + + + + Get-CsTeamsIPPhonePolicy + Get + CsTeamsIPPhonePolicy + + Get-CsTeamsIPPhonePolicy allows IT Admins to view policies for IP Phone experiences in Microsoft Teams. + + + + Returns information about the Teams IP Phone Policies configured for use in your organization. Teams IP phone policies enable you to configure the different sign-in experiences based upon the function the device is performing; example: common area phone. + + + + Get-CsTeamsIPPhonePolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + Get-CsTeamsIPPhonePolicy + + Identity + + Specify the unique name of the TeamsIPPhonePolicy that you would like to retrieve. + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. To return a collection of all the policies, use this syntax: -Filter "tag:*". + + String + + String + + + None + + + Identity + + Specify the unique name of the TeamsIPPhonePolicy that you would like to retrieve. + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsIPPhonePolicy -identity CommonAreaPhone + + Retrieves the IP Phone Policy with name "CommonAreaPhone". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsipphonepolicy + + + + + + Get-CsTeamsMediaLoggingPolicy + Get + CsTeamsMediaLoggingPolicy + + Returns information about the Teams Media Logging policy. + + + + Returns information about the Teams Media Logging policy. TeamsMediaLoggingPolicy allows administrators to enable media logging for users. When assigned, it will enable media logging for the user overriding other settings. After removing the policy, media logging setting will revert to the previous value. + NOTES: TeamsMediaLoggingPolicy has only one instance that is built into the system, so there is no corresponding New cmdlet. + + + + Get-CsTeamsMediaLoggingPolicy + + Filter + + > Applicable: Microsoft Teams + Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. + + String + + String + + + None + + + + Get-CsTeamsMediaLoggingPolicy + + Identity + + > Applicable: Microsoft Teams + Unique identifier assigned to the Teams Media Logging policy. Note that Teams Media Logging policy has only one instance that has Identity "Enabled". + Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. + + String + + String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + Enables using wildcards when specifying the policy (or policies) to be retrieved. Note that you cannot use both the Filter and the Identity parameters in the same command. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + Unique identifier assigned to the Teams Media Logging policy. Note that Teams Media Logging policy has only one instance that has Identity "Enabled". + Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. + + String + + String + + + None + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Get-CsTeamsMediaLoggingPolicy + + Return information for all Teams Media Logging policies available for use in the tenant. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Get-CsTeamsMediaLoggingPolicy -Identity Global + + Return Teams Media Logging policy that is set for the entire tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmedialoggingpolicy + + + Grant-CsTeamsMediaLoggingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmedialoggingpolicy + + + + + + Get-CsTeamsMeetingBroadcastConfiguration + Get + CsTeamsMeetingBroadcastConfiguration + + Gets Tenant level configuration for broadcast events in Teams. + + + + Tenant level configuration for broadcast events in Teams + + + + Get-CsTeamsMeetingBroadcastConfiguration + + Identity + + You can only have one configuration - "Global" + + XdsIdentity + + XdsIdentity + + + None + + + ExposeSDNConfigurationJsonBlob + + Extract SDN properties as a Json Blob in get. + + Boolean + + Boolean + + + None + + + Filter + + Not applicable to online service - you can only have one configuration. + + String + + String + + + None + + + LocalStore + + Not applicable to online service. + + + SwitchParameter + + + False + + + Tenant + + Not applicable to online service + + Guid + + Guid + + + None + + + + + + ExposeSDNConfigurationJsonBlob + + Extract SDN properties as a Json Blob in get. + + Boolean + + Boolean + + + None + + + Filter + + Not applicable to online service - you can only have one configuration. + + String + + String + + + None + + + Identity + + You can only have one configuration - "Global" + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Not applicable to online service. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Not applicable to online service + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbroadcastconfiguration + + + + + + Get-CsTeamsMeetingBroadcastPolicy + Get + CsTeamsMeetingBroadcastPolicy + + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. + + + + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use this cmdlet to retrieve one or more policies. + + + + Get-CsTeamsMeetingBroadcastPolicy + + Identity + + Unique identifier for the policy to be retrieved. Policies can be configured at the global scope or at the per-user scope. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity SalesPolicy. + If this parameter is not included, the cmdlet will return a collection of all the policies configured for use in your organization. + Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use wildcards when specifying a policy. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + Enables you to use wildcard characters when specifying the policy (or policies) to be returned. + + String + + String + + + None + + + LocalStore + + Not applicable to the online service. + + + SwitchParameter + + + False + + + Tenant + + Not applicable to online service. + + Guid + + Guid + + + None + + + + + + Filter + + Enables you to use wildcard characters when specifying the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier for the policy to be retrieved. Policies can be configured at the global scope or at the per-user scope. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity SalesPolicy. + If this parameter is not included, the cmdlet will return a collection of all the policies configured for use in your organization. + Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use wildcards when specifying a policy. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Not applicable to the online service. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Not applicable to online service. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsMeetingBroadcastPolicy + + Returns all the Teams Meeting Broadcast policies. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsMeetingBroadcastPolicy -Filter "Education_Teacher" + + In this example, the -Filter parameter is used to return all the policies that match "Education_Teacher". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbroadcastpolicy + + + + + + Get-CsTeamsMobilityPolicy + Get + CsTeamsMobilityPolicy + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + + + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + The Get-CsTeamsMobilityPolicy cmdlet allows administrators to get all teams mobility policies. + NOTE: Please note that this cmdlet was deprecated and then removed from this PowerShell module. This reference will continue to be listed here for legacy purposes. + + + + Get-CsTeamsMobilityPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". + + String + + String + + + None + + + + Get-CsTeamsMobilityPolicy + + Identity + + Specify the unique name of a policy you would like to retrieve + + XdsIdentity + + XdsIdentity + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. For example, to return a collection of all the per-user policies, use this syntax: -Filter "tag:". + + String + + String + + + None + + + Identity + + Specify the unique name of a policy you would like to retrieve + + XdsIdentity + + XdsIdentity + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsMobilityPolicy + + Retrieve all teams mobility policies that are available in your organization + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmobilitypolicy + + + + + + Get-CsTeamsNetworkRoamingPolicy + Get + CsTeamsNetworkRoamingPolicy + + Get-CsTeamsNetworkRoamingPolicy allows IT Admins to view policies for the Network Roaming and Bandwidth Control experiences in Microsoft Teams. + + + + Returns information about the Teams Network Roaming Policies configured for use in your organization. + The TeamsNetworkRoamingPolicy cmdlets enable administrators to provide specific settings from the TeamsMeetingPolicy to be rendered dynamically based upon the location of the Teams client. The TeamsNetworkRoamingPolicy cannot be granted to a user but instead can be assigned to a network site. The settings from the TeamsMeetingPolicy included are AllowIPVideo and MediaBitRateKb. When a Teams client is connected to a network site where a CsTeamRoamingPolicy is assigned, these two settings from the TeamsRoamingPolicy will be used instead of the settings from the TeamsMeetingPolicy. + More on the impact of bit rate setting on bandwidth can be found here (https://learn.microsoft.com/microsoftteams/prepare-network). + To enable the network roaming policy for users who are not Enterprise Voice enabled, you must also enable the AllowNetworkConfigurationSettingsLookup setting in TeamsMeetingPolicy. This setting is off by default. See Set-TeamsMeetingPolicy for more information on how to enable AllowNetworkConfigurationSettingsLookup for users who are not Enterprise Voice enabled. + + + + Get-CsTeamsNetworkRoamingPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + Get-CsTeamsNetworkRoamingPolicy + + Identity + + Unique identifier of the policy to be returned. If this parameter is omitted, then all the Teams Network Roaming Policies configured for use in your organization will be returned. + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be returned. If this parameter is omitted, then all the Teams Network Roaming Policies configured for use in your organization will be returned. + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsNetworkRoamingPolicy + + In Example 1, Get-CsTeamsNetworkRoamingPolicy is called without any additional parameters; this returns a collection of all the teams network roaming policies configured for use in your organization. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsNetworkRoamingPolicy -Identity OfficePolicy + + In Example 2, Get-CsTeamsNetworkRoamingPolicy is used to return the network roaming policy that has an Identity OfficePolicy. Because identities are unique, this command will never return more than one item. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsnetworkroamingpolicy + + + + + + Get-CsTeamsRoomVideoTeleConferencingPolicy + Get + CsTeamsRoomVideoTeleConferencingPolicy + + Use this cmdlet to retrieve the current Teams Room Video TeleConferencing policies. + + + + The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). + + + + Get-CsTeamsRoomVideoTeleConferencingPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + Get-CsTeamsRoomVideoTeleConferencingPolicy + + Identity + + The name the tenant admin gave to the Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + The name the tenant admin gave to the Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsroomvideoteleconferencingpolicy + + + + + + Get-CsTeamsSettingsCustomApp + Get + CsTeamsSettingsCustomApp + + Get the Custom Apps Setting's value of Teams Admin Center. + + + + There is a switch for managing Custom Apps in the Org-wide app settings page of Teams Admin Center. The command can get the current value of this switch. If the switch is enabled, the custom apps can be uploaded as app packages and available in the organization's app store, vice versa. + + + + Get-CsTeamsSettingsCustomApp + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsSettingsCustomApp + +IsSideloadedAppsInteractionEnabled +---------------------------------- + False + + Get the value of Custom Apps Setting. The value in the example is False, so custom apps are unavailable in the organization's app store. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssettingscustomapp + + + Set-CsTeamsSettingsCustomApp + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssettingscustomapp + + + + + + Get-CsTeamsShiftsAppPolicy + Get + CsTeamsShiftsAppPolicy + + Returns information about the Teams Shifts App policies that have been configured for use in your organization. + + + + The Teams Shifts app is designed to help frontline workers and their managers manage schedules and communicate effectively. + + + + Get-CsTeamsShiftsAppPolicy + + Filter + + This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. + + String + + String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + String + + String + + + None + + + + Get-CsTeamsShiftsAppPolicy + + Identity + + Unique Identity assigned to the policy when it was created. + + String + + String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + String + + String + + + None + + + + + + Filter + + This parameter accepts a wildcard string and returns all policies with identities matching that string. For example, a Filter value of tag:* will return all policies defined at the per-user level. + + String + + String + + + None + + + Identity + + Unique Identity assigned to the policy when it was created. + + String + + String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsAppPolicy + + Lists any available Teams Shifts Apps Policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsapppolicy + + + + + + Get-CsTeamsShiftsConnection + Get + CsTeamsShiftsConnection + + This cmdlet returns the list of existing workforce management (WFM) connections. It can also return the configuration details for a given WFM connection. + + + + This cmdlet returns the list of existing connections. It can also return the configuration details for a given connection. + + + + Get-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + ConnectionId + + The connection ID. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + + Get-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + + + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectionId + + The connection ID. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnection | Format-List + +ConnectorId : 6A51B888-FF44-4FEA-82E1-839401E00000 +ConnectorSpecificSettingAdminApiUrl : https://www.contoso.com/retail/data/wfmadmin/api/v1-beta3 +ConnectorSpecificSettingApiUrl : +ConnectorSpecificSettingAppKey : +ConnectorSpecificSettingClientId : +ConnectorSpecificSettingCookieAuthUrl : https://www.contoso.com/retail/data/login +ConnectorSpecificSettingEssApiUrl : https://www.contoso.com/retail/data/wfmess/api/v1-beta2 +ConnectorSpecificSettingFederatedAuthUrl : https://www.contoso.com/retail/data/login +ConnectorSpecificSettingRetailWebApiUrl : https://www.contoso.com/retail/data/retailwebapi/api/v1 +ConnectorSpecificSettingSiteManagerUrl : https://www.contoso.com/retail/data/wfmsm/api/v1-beta4 +ConnectorSpecificSettingSsoUrl : +CreatedDateTime : 24/03/2023 04:58:23 +Etag : "5b00dd1b-0000-0400-0000-641d2df00000" +Id : 4dae9db0-0841-412c-8d6b-f5684bfebdd7 +LastModifiedDateTime : 24/03/2023 04:58:23 +Name : My connection 1 +State : Active +TenantId : dfd24b34-ccb0-47e1-bdb7-000000000000 + +ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 +ConnectorSpecificSettingAdminApiUrl : +ConnectorSpecificSettingApiUrl : https://www.contoso.com/api +ConnectorSpecificSettingAppKey : +ConnectorSpecificSettingClientId : Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W +ConnectorSpecificSettingCookieAuthUrl : +ConnectorSpecificSettingEssApiUrl : +ConnectorSpecificSettingFederatedAuthUrl : +ConnectorSpecificSettingRetailWebApiUrl : +ConnectorSpecificSettingSiteManagerUrl : +ConnectorSpecificSettingSsoUrl : https://www.contoso.com/sso +CreatedDateTime : 06/04/2023 11:05:39 +Etag : "3100fd6e-0000-0400-0000-642ea7840000" +Id : a2d1b091-5140-4dd2-987a-98a8b5338744 +LastModifiedDateTime : 06/04/2023 11:05:39 +Name : My connection 2 +State : Active +TenantId : dfd24b34-ccb0-47e1-bdb7-000000000000 + + Returns the list of connections. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId a2d1b091-5140-4dd2-987a-98a8b5338744 +PS C:\> $connection.ToJsonString() + +{ + "connectorSpecificSettings": { + "apiUrl": "https://www.contoso.com/api", + "ssoUrl": "https://www.contoso.com/sso", + "clientId": "Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W" + }, + "id": "a2d1b091-5140-4dd2-987a-98a8b5338744", + "tenantId": "dfd24b34-ccb0-47e1-bdb7-000000000000", + "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", + "name": "My connection 2", + "etag": "\"3100fd6e-0000-0400-0000-642ea7840000\"", + "createdDateTime": "2023-04-06T11:05:39.8790000Z", + "lastModifiedDateTime": "2023-04-06T11:05:39.8790000Z", + "state": "Active" +} + + Returns the connection with the specified -ConnectionId. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection + + + New-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection + + + Set-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection + + + Update-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection + + + + + + Get-CsTeamsShiftsConnectionConnector + Get + CsTeamsShiftsConnectionConnector + + This cmdlet supports retrieving the available Shifts Connectors. + + + + This cmdlet shows the available list of Shifts Connectors that can be used to synchronize a third-party workforce management system with Teams and the types of data that can be synchronized. + + + + Get-CsTeamsShiftsConnectionConnector + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionConnector | Format-List + +Id : 6A51B888-FF44-4FEA-82E1-839401E9CD74 +Name : Contoso V1 +SupportedSyncScenarioOfferShiftRequest : {Disabled, FromWfmToShifts, TwoWay} +SupportedSyncScenarioOpenShift : {Disabled, FromWfmToShifts} +SupportedSyncScenarioOpenShiftRequest : {Disabled, FromWfmToShifts, TwoWay} +SupportedSyncScenarioShift : {Disabled, FromWfmToShifts} +SupportedSyncScenarioSwapRequest : {Disabled, FromWfmToShifts, TwoWay} +SupportedSyncScenarioTimeCard : {Disabled, FromWfmToShifts, TwoWay} +SupportedSyncScenarioTimeOff : {Disabled, FromWfmToShifts} +SupportedSyncScenarioTimeOffRequest : {Disabled, FromWfmToShifts, TwoWay} +SupportedSyncScenarioUserShiftPreference : {Disabled, FromWfmToShifts, TwoWay} +Version : 2020.3 - 2021.1 + + Get the list of Shifts Connectors available on the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector + + + New-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection + + + New-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance + + + Set-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance + + + Test-CsTeamsShiftsConnectionValidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate + + + + + + Get-CsTeamsShiftsConnectionErrorReport + Get + CsTeamsShiftsConnectionErrorReport + + This cmdlet returns the list of all the team mapping error reports. It can also return the configuration details of one mapping error report with its ID provided or other filter parameters. + + + + This cmdlet returns the list of existing team mapping error reports. It can also return the configuration details for mapping result with given ID or other filters. + + + + Get-CsTeamsShiftsConnectionErrorReport + + Activeness + + > Applicable: Microsoft Teams + The flag indicating results should have which activeness. Set this to `ActiveOnly` to get Error reports that are not resolved. Set this to `InactiveOnly` to get Error reports that are resolved. Set this to `Both` to get both active and inactive Error reports. + + String + + String + + + None + + + After + + > Applicable: Microsoft Teams + The timestamp indicating results should be after which date and time. + + String + + String + + + None + + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Before + + > Applicable: Microsoft Teams + The timestamp indicating results should be before which date and time. + + String + + String + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Code + + > Applicable: Microsoft Teams + The enum value of error code, human readable string defined in codebase. + + String + + String + + + None + + + ConnectionId + + > Applicable: Microsoft Teams + The UUID of a WFM connection. + + String + + String + + + None + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The UUID of a connector instance. + + String + + String + + + None + + + ErrorReportId + + > Applicable: Microsoft Teams + The ID of the error report. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Operation + + > Applicable: Microsoft Teams + The name of the action of the controller or the name of the command. + + String + + String + + + None + + + Procedure + + > Applicable: Microsoft Teams + The name of the executing function or procedure. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + TeamId + + > Applicable: Microsoft Teams + The UUID of a team in Graph. + + String + + String + + + None + + + + Get-CsTeamsShiftsConnectionErrorReport + + Activeness + + > Applicable: Microsoft Teams + The flag indicating results should have which activeness. Set this to `ActiveOnly` to get Error reports that are not resolved. Set this to `InactiveOnly` to get Error reports that are resolved. Set this to `Both` to get both active and inactive Error reports. + + String + + String + + + None + + + After + + > Applicable: Microsoft Teams + The timestamp indicating results should be after which date and time. + + String + + String + + + None + + + Before + + > Applicable: Microsoft Teams + The timestamp indicating results should be before which date and time. + + String + + String + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Code + + > Applicable: Microsoft Teams + The enum value of error code, human readable string defined in codebase. + + String + + String + + + None + + + ConnectionId + + > Applicable: Microsoft Teams + The UUID of a WFM connection. + + String + + String + + + None + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The UUID of a connector instance. + + String + + String + + + None + + + ErrorReportId + + > Applicable: Microsoft Teams + The ID of the error report. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Operation + + > Applicable: Microsoft Teams + The name of the action of the controller or the name of the command. + + String + + String + + + None + + + Procedure + + > Applicable: Microsoft Teams + The name of the executing function or procedure. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + TeamId + + > Applicable: Microsoft Teams + The UUID of a team in Graph. + + String + + String + + + None + + + + + + Activeness + + > Applicable: Microsoft Teams + The flag indicating results should have which activeness. Set this to `ActiveOnly` to get Error reports that are not resolved. Set this to `InactiveOnly` to get Error reports that are resolved. Set this to `Both` to get both active and inactive Error reports. + + String + + String + + + None + + + After + + > Applicable: Microsoft Teams + The timestamp indicating results should be after which date and time. + + String + + String + + + None + + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Before + + > Applicable: Microsoft Teams + The timestamp indicating results should be before which date and time. + + String + + String + + + None + + + Break + + Wait for the .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + Code + + > Applicable: Microsoft Teams + The enum value of error code, human readable string defined in codebase. + + String + + String + + + None + + + ConnectionId + + > Applicable: Microsoft Teams + The UUID of a WFM connection. + + String + + String + + + None + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The UUID of a connector instance. + + String + + String + + + None + + + ErrorReportId + + > Applicable: Microsoft Teams + The ID of the error report. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Operation + + > Applicable: Microsoft Teams + The name of the action of the controller or the name of the command. + + String + + String + + + None + + + Procedure + + > Applicable: Microsoft Teams + The name of the executing function or procedure. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + TeamId + + > Applicable: Microsoft Teams + The UUID of a team in Graph. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionErrorReport + +Code ConnectionId CreatedAt Culture ErrorNotificationSent ErrorType Id IntermediateIncident Message +---- ------------ --------- ------- --------------------- --------- -- -------------------- ------- +WFMAuthError 30/09/2022 14:14:08 en-US False WFMAuthErrorMessageType 74091f69-29b7-4884-aab9-ee5d705f36e3 1042 The workforce management system account credentials you've ... +WFMAuthError 17/10/2022 19:42:15 en-US False WFMAuthErrorMessageType b0d04444-d80b-490a-a573-ae3bb7f871bc 40 The workforce management system account credentials you've ... +WFMAuthError 17/10/2022 20:27:31 en-US False WFMAuthErrorMessageType 91ca35d9-1abc-4ded-bcda-dbf58a155930 94 The workforce management system account credentials you've ... +GraphUserAuthError 18/10/2022 04:46:57 en-US False GraphUserAuthErrorMessageType 4d26df1c-7133-4477-9266-5d7ffb70aa88 0 Authentication failed. Ensure that you've entered valid cre... +UserMappingError 18/10/2022 04:47:15 en-US False UserMappingErrorMessageType 6a90b796-9cda-4cc9-a74c-499de91073f9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD us... +BatchTeamMappingError 06/04/2023 15:24:22 en-US False BatchTeamMappingErrorMessageType bf1bc3ea-1e40-483b-b6cc-669f22f24c48 1 This designated actor profile doesn't have team ownership p... + + Returns the list of all the error reports. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionErrorReport -ErrorReportId 74091f69-29b7-4884-aab9-ee5d705f36e3 | Format-List + +Code : WFMAuthError +ConnectionId : +CreatedAt : 30/09/2022 14:14:08 +Culture : en-US +ErrorNotificationSent : False +ErrorType : WFMAuthErrorMessageType +Id : 74091f69-29b7-4884-aab9-ee5d705f36e3 +IntermediateIncident : 1042 +Message : The workforce management system account credentials you've provided are invalid or this account doesn't have the required permissions. +Operation : SyncSwapShiftRequestCommand +Parameter : +Procedure : ExecuteAsync +ReferenceLink : +ResolvedAt : +ResolvedNotificationSentOn : +RevisitIntervalInMinute : 1440 +RevisitedAt : +ScheduleSequenceNumber : 310673843 +Severity : Critical +TeamId : +TenantId : dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a +TotalIncident : 1042 +Ttl : 2505600 +WfmConnectorInstanceId : WCI-6f8eb424-c347-46b4-a50b-118af8d3d546 + + Returns the error report with ID `18b3e490-e6ed-4c2e-9925-47e36609dff3`. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionErrorReport -Code UserMappingError + +Code ConnectionId CreatedAt Culture ErrorNotificationSent ErrorType Id IntermediateIncident Message +---- ------------ --------- ------- --------------------- --------- -- -------------------- ------- +UserMappingError 18/10/2022 04:47:15 en-US False UserMappingErrorMessageType 6a90b796-9cda-4cc9-a74c-499de91073f9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD user(s) and ... +UserMappingError 18/10/2022 04:47:28 en-US False UserMappingErrorMessageType 005c4a9d-552e-4ea1-9d6a-c0316d272bc9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD user(s) and ... +UserMappingError 18/10/2022 04:48:25 en-US False UserMappingErrorMessageType 841e00b5-c4e5-4e24-89d2-703d79250516 0 Mapping failed for some users: 4 succeeded, 0 failed AAD user(s) and ... +UserMappingError 18/10/2022 04:54:05 en-US False UserMappingErrorMessageType 0e10d036-c071-4db2-9cac-22e520f929d9 0 Mapping failed for some users: 5 succeeded, 0 failed AAD user(s) and ... + + Returns the error report with error code `UserMappingError`. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionErrorReport -Operation UserMappingHandler + +Code ConnectionId CreatedAt Culture ErrorNotificationSent ErrorType Id IntermediateIncident Message +---- ------------ --------- ------- --------------------- --------- -- -------------------- ------- +UserMappingError 18/10/2022 04:47:15 en-US False UserMappingErrorMessageType 6a90b796-9cda-4cc9-a74c-499de91073f9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD user(s) and ... +UserMappingError 18/10/2022 04:47:28 en-US False UserMappingErrorMessageType 005c4a9d-552e-4ea1-9d6a-c0316d272bc9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD user(s) and ... +UserMappingError 18/10/2022 04:48:25 en-US False UserMappingErrorMessageType 841e00b5-c4e5-4e24-89d2-703d79250516 0 Mapping failed for some users: 4 succeeded, 0 failed AAD user(s) and ... +UserMappingError 18/10/2022 04:54:05 en-US False UserMappingErrorMessageType 0e10d036-c071-4db2-9cac-22e520f929d9 0 Mapping failed for some users: 5 succeeded, 0 failed AAD user(s) and ... + + Returns the error report with operation `UserMappingHandler`. + + + + -------------------------- Example 5 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionErrorReport -After 2022-12-12T19:11:39.073Z + +Code ConnectionId CreatedAt Culture ErrorNotificationSent ErrorType Id IntermediateIncident Message +---- ------------ --------- ------- --------------------- --------- -- -------------------- ------- +UserMappingError 26/01/2023 14:42:27 en-US True UserMappingErrorMessageType d7ab9ab4-b60c-44d3-8c12-d8ee64a67ce8 172 Mapping failed for some users: 1 succeeded, 2 failed AAD us... +WFMAuthError 26/01/2023 16:08:31 en-US False WFMAuthErrorMessageType 7adc3e4e-124e-4613-855c-9ac1b338400a 1 The workforce management system account credentials you've ... + + Returns the error report created after `2022-12-12T19:11:39.073Z`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport + + + Disable-CsTeamsShiftsConnectionErrorReport + https://learn.microsoft.com/powershell/module/microsoftteams/disable-csteamsshiftsconnectionerrorreport + + + + + + Get-CsTeamsShiftsConnectionInstance + Get + CsTeamsShiftsConnectionInstance + + This cmdlet returns the list of existing connection instances. It can also return the configuration details for a given connection instance. + + + + This cmdlet returns the list of existing connections. It can also return the configuration details for a given connection instance. + + + + Get-CsTeamsShiftsConnectionInstance + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + ConnectorInstanceId + + The connector instance id + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + + Get-CsTeamsShiftsConnectionInstance + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + ConnectorInstanceId + + The connector instance id + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionInstance | Format-List + +ConnectionId : a2d1b091-5140-4dd2-987a-98a8b5338744 +ConnectorAdminEmail : {testAdmin@contoso.com} +ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 +CreatedDateTime : 07/04/2023 10:53:59 +DesignatedActorId : ec1a4edb-1a5f-4b2d-b2a4-37aaf3acd231 +Etag : "4f00c221-0000-0400-0000-642ff6480000" +Id : WCI-b58d7a98-ab2c-473f-99a5-e0627d54c062 +LastModifiedDateTime : 07/04/2023 10:53:59 +Name : My connection instance 1 +State : Active +SyncFrequencyInMin : 10 +SyncScenarioOfferShiftRequest : FromWfmToShifts +SyncScenarioOpenShift : FromWfmToShifts +SyncScenarioOpenShiftRequest : FromWfmToShifts +SyncScenarioShift : FromWfmToShifts +SyncScenarioSwapRequest : FromWfmToShifts +SyncScenarioTimeCard : FromWfmToShifts +SyncScenarioTimeOff : FromWfmToShifts +SyncScenarioTimeOffRequest : FromWfmToShifts +SyncScenarioUserShiftPreference : FromWfmToShifts +TenantId : dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a +WorkforceIntegrationId : WFI_2ab21992-b9b1-464a-b9cd-e0de1fac95b1 + +ConnectionId : a2d1b091-5140-4dd2-987a-98a8b5338744 +ConnectorAdminEmail : {} +ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 +CreatedDateTime : 07/04/2023 10:54:01 +DesignatedActorId : ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231 +Etag : "4f005d22-0000-0400-0000-642ff64a0000" +Id : WCI-eba2865f-6cac-46f9-8733-e0631a4536e1 +LastModifiedDateTime : 07/04/2023 10:54:01 +Name : My connection instance 2 +State : Active +SyncFrequencyInMin : 30 +SyncScenarioOfferShiftRequest : FromWfmToShifts +SyncScenarioOpenShift : FromWfmToShifts +SyncScenarioOpenShiftRequest : FromWfmToShifts +SyncScenarioShift : FromWfmToShifts +SyncScenarioSwapRequest : Disabled +SyncScenarioTimeCard : Disabled +SyncScenarioTimeOff : FromWfmToShifts +SyncScenarioTimeOffRequest : FromWfmToShifts +SyncScenarioUserShiftPreference : Disabled +TenantId : dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a +WorkforceIntegrationId : WFI_6b225907-b476-4d40-9773-08b86db7b11b + + Returns the list of connection instances. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $ci = Get-CsTeamsShiftsConnectionInstance -ConnectorInstanceId WCI-78F5116E-9098-45F5-B595-1153DF9D6F70 +PS C:\> $ci.ToJsonString() + +{ + "syncScenarios": { + "offerShiftRequest": "FromWfmToShifts", + "openShift": "FromWfmToShifts", + "openShiftRequest": "FromWfmToShifts", + "shift": "FromWfmToShifts", + "swapRequest": "Disabled", + "timeCard": "Disabled", + "timeOff": "FromWfmToShifts", + "timeOffRequest": "FromWfmToShifts", + "userShiftPreferences": "Disabled" + }, + "id": "WCI-78F5116E-9098-45F5-B595-1153DF9D6F70", + "tenantId": "dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a", + "connectionId": "a2d1b091-5140-4dd2-987a-98a8b5338744", + "connectorAdminEmails": [ ], + "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", + "designatedActorId": "ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231", + "name": "My connection instance 2", + "syncFrequencyInMin": 30, + "workforceIntegrationId": "WFI_6b225907-b476-4d40-9773-08b86db7b11b", + "etag": "\"4f005d22-0000-0400-0000-642ff64a0000\"", + "createdDateTime": "2023-04-07T10:54:01.8170000Z", + "lastModifiedDateTime": "2023-04-07T10:54:01.8170000Z", + "state": "Active" +} + + Returns the connection instance with the specified -ConnectorInstanceId. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + New-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance + + + Set-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance + + + Remove-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance + + + + + + Get-CsTeamsShiftsConnectionOperation + Get + CsTeamsShiftsConnectionOperation + + This cmdlet gets the requested batch mapping operation. + + + + This cmdlet returns the details of a specific batch team mapping operation. The batch mapping operation can be submitted by running New-CsTeamsShiftsConnectionBatchTeamMap (New-CsTeamsShiftsConnectionBatchTeamMap.md). + + + + Get-CsTeamsShiftsConnectionOperation + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + + Get-CsTeamsShiftsConnectionOperation + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + OperationId + + The ID of the batch mapping operation. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + + + + Break + + Wait for the .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + OperationId + + The ID of the batch mapping operation. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionOperation -OperationId c79131b7-9ecb-484b-a8df-2959c7c1e5f2 + +CreatedDateTime LastActionDateTime Id Status TenantId Type WfmConnectorInstanceId +--------------- ------------------ ----------- ------ -------- ---- ---------------------- +12/6/2021 7:28:51 PM 12/6/2021 7:28:51 PM c79131b7-9ecb-484b-a8df-2959c7c1e5f2 NotStarted dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a TeamsMappingOperation WCI-2afeb8ec-a0f6-4580-8f1e-85fd4a113e01 + + Returns the details of batch mapping operation with ID `c79131b7-9ecb-484b-a8df-2959c7c1e5f2`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionoperation + + + New-CsTeamsShiftsConnectionBatchTeamMap + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap + + + + + + Get-CsTeamsShiftsConnectionSyncResult + Get + CsTeamsShiftsConnectionSyncResult + + This cmdlet supports retrieving the list of user details in the mapped teams of last sync. + + + + This cmdlet supports retrieving the list of successful and failed users in the mapped teams of last sync. + + + + Get-CsTeamsShiftsConnectionSyncResult + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + String + + String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + TeamId + + > Applicable: Microsoft Teams + The Teams team ID. It can be retrieved by visiting AzureAAD (https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups). + + String + + String + + + None + + + + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + String + + String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + TeamId + + > Applicable: Microsoft Teams + The Teams team ID. It can be retrieved by visiting AzureAAD (https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups). + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionSyncResult -ConnectorInstanceId "WCI-d1addd70-2684-4723-b8f2-7fa2230648c9" -TeamId "12345d29-7ee1-4259-8999-946953feb79e" + +FailedAadUser FailedWfmUser SuccessfulUser +------------- ------------- -------------- +{LABRO} {FRPET, WAROS, JOREE} {user3@contoso.com, user2@contoso.comm, user@contoso.com} + + Returns the successful and failed users in the team mapping of Teams `12345d29-7ee1-4259-8999-946953feb79e` in the instance with ID `WCI-d1addd70-2684-4723-b8f2-7fa2230648c9`. `LABRO` in FailedAadUser column shows the list of users who failed to sync from Teams to Wfm. `FRPET, WAROS, JOREE` in FailedWfmUser column shows the list of users who failed to sync from Wfm to Teams. `user3@contoso.com, user2@contoso.comm, user@contoso.com` in SuccessfulUser column shows the list of users who synced in both Wfm and Teams. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionsyncresult + + + Get-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + + + + Get-CsTeamsShiftsConnectionTeamMap + Get + CsTeamsShiftsConnectionTeamMap + + This cmdlet supports retrieving the list of team mappings. + + + + Workforce management (WFM) systems have locations / sites that are mapped to a Microsoft Teams team for synchronization of shifts data. This cmdlet shows the list of mapped teams inside the connection instance. Instance IDs can be found by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + + + Get-CsTeamsShiftsConnectionTeamMap + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. + + String + + String + + + None + + + InputObject + + The Identity parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. + + String + + String + + + None + + + InputObject + + The Identity parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId "WCI-d1addd70-2684-4723-b8f2-7fa2230648c9" + +TeamId TeamName TimeZone WfmTeamId WfmTeamName +------ -------- -------- --------- ----------- +12344689-758c-4598-9206-3e23416da8c2 America/Los_Angeles 1000107 + + Returns the list of team mappings in the instance with ID `WCI-d1addd70-2684-4723-b8f2-7fa2230648c9`. + In case of error, we can capture the error response as following: + * Hold the cmdlet output in a variable: `$result=<CMDLET>` + * To get the entire error message in Json: `$result.ToJsonString()` + * To get the error object and object details: `$result, $result.Detail` + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionteammap + + + Remove-CsTeamsShiftsConnectionTeamMap + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectionteammap + + + Get-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + + + + Get-CsTeamsShiftsConnectionWfmTeam + Get + CsTeamsShiftsConnectionWfmTeam + + This cmdlet supports retrieving the list of available Workforce management (WFM) teams in the connection instance. + + + + This cmdlet shows the WFM teams that are not currently mapped to a Microsoft Teams team, and thus can be mapped to a Microsoft Teams team in the connection instance. + + + + Get-CsTeamsShiftsConnectionWfmTeam + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + ConnectionId + + > Applicable: Microsoft Teams + The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + + Get-CsTeamsShiftsConnectionWfmTeam + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + ConnectionId + + > Applicable: Microsoft Teams + The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + + Get-CsTeamsShiftsConnectionWfmTeam + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + ConnectionId + + > Applicable: Microsoft Teams + The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + + + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for the .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectionId + + > Applicable: Microsoft Teams + The ID of the connection. You can retrieve it by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. You can retrieve it by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionWfmTeam -ConnectorInstanceId "WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b" + +Id Name +-- ---- +1000105 0002 - Bucktown +1000106 0003 - West Town +1000107 0005 - Old Town +1000108 0004 - River North +1000109 0001 - Wicker Park +1000111 2055 +1000112 2056 +1000114 1004 +1000115 1003 +1000116 1002 +1000122 0010 +1000124 0300 +1000125 1000 +1000126 4500 +1000128 0006 - WFM Team 1 +1000129 Test + + Returns the WFM teams for the connection instance with ID `WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b`. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionWfmTeam -ConnectionId "a2d1b091-5140-4dd2-987a-98a8b5338744" + +Id Name +-- ---- +1000105 0002 - Bucktown +1000106 0003 - West Town +1000107 0005 - Old Town +1000108 0004 - River North +1000109 0001 - Wicker Park +1000111 2055 +1000112 2056 +1000114 1004 +1000115 1003 +1000116 1002 +1000122 0010 +1000124 0300 +1000125 1000 +1000126 4500 +1000128 0006 - WFM Team 1 +1000129 Test + + Returns the WFM teams for the WFM connection with ID `a2d1b091-5140-4dd2-987a-98a8b5338744`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam + + + Get-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection + + + Get-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + Get-CsTeamsShiftsConnectionWfmUser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmuser + + + + + + Get-CsTeamsShiftsConnectionWfmUser + Get + CsTeamsShiftsConnectionWfmUser + + This cmdlet shows the list of Workforce management (WFM) users in a specified WFM team. + + + + This cmdlet shows the list of Workforce management (WFM) users in a specified WFM team. + + + + Get-CsTeamsShiftsConnectionWfmUser + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + String + + String + + + None + + + InputObject + + The identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + WfmTeamId + + > Applicable: Microsoft Teams + The Teams team ID. It can be retrieved by running Get-CsTeamsShiftsConnectionWfmTeam (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam). + + String + + String + + + None + + + + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance. It can be retrieved by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + String + + String + + + None + + + InputObject + + The identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + WfmTeamId + + > Applicable: Microsoft Teams + The Teams team ID. It can be retrieved by running Get-CsTeamsShiftsConnectionWfmTeam (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam). + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsShiftsConnectionWfmUser -ConnectorInstanceId "WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b" -WfmTeamId "1000107" + +Id Name +-- ---- +1000111 FRPET +1000121 WAROS +1000123 LABRO +1000125 JOREE +1006068 ABC +1006069 XYZ +1006095 DEF + + Returns the users in the WFM team with ID `1000107` in the connection instances with ID `WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmuser + + + Get-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + Get-CsTeamsShiftsConnectionWfmTeam + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam + + + + + + Get-CsTeamsSurvivableBranchAppliance + Get + CsTeamsSurvivableBranchAppliance + + Gets the Survivable Branch Appliance (SBA) configured in the tenant. + + + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + Get-CsTeamsSurvivableBranchAppliance + + Filter + + This parameter can be used to fetch instances based on partial matches on the Identity field. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + Get-CsTeamsSurvivableBranchAppliance + + Identity + + The identity of the SBA. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + Filter + + This parameter can be used to fetch instances based on partial matches on the Identity field. + + String + + String + + + None + + + Identity + + The identity of the SBA. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssurvivablebranchappliance + + + + + + Get-CsTeamsSurvivableBranchAppliancePolicy + Get + CsTeamsSurvivableBranchAppliancePolicy + + Get the Survivable Branch Appliance (SBA) Policy defined in the tenant. + + + + The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + Get-CsTeamsSurvivableBranchAppliancePolicy + + Filter + + This parameter can be used to fetch policy instances based on partial matches on the Identity field. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + Get-CsTeamsSurvivableBranchAppliancePolicy + + Identity + + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + Filter + + This parameter can be used to fetch policy instances based on partial matches on the Identity field. + + String + + String + + + None + + + Identity + + This parameter can be used to fetch a specific instance of the policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssurvivablebranchappliancepolicy + + + + + + Get-CsTeamsTargetingPolicy + Get + CsTeamsTargetingPolicy + + The Get-CsTeamsTargetingPolicy cmdlet enables you to return information about all the Tenant tag setting policies that have been configured for use in your organization. + + + + The CsTeamsTargetingPolicy cmdlets enable administrators to control the type of tags that users can create or the features that they can access in Teams. It also helps determine how tags deal with Teams members or guest users. + + + + Get-CsTeamsTargetingPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + + Get-CsTeamsTargetingPolicy + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-tenant policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the tenant tag setting policies configured for use in your organization will be returned. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-tenant policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the tenant tag setting policies configured for use in your organization will be returned. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsTargetingPolicy -Identity SalesPolicy + + In this example Get-CsTeamsTargetingPolicy is used to return the per-tenant tag policy that has an Identity SalesPolicy. Because identities are unique, this command will never return more than one item. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy + + + Set-CsTargetingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy + + + Remove-CsTargetingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy + + + + + + Get-CsTeamsTranslationRule + Get + CsTeamsTranslationRule + + Cmdlet to get an existing number manipulation rule (or list of rules). + + + + You can use this cmdlet to get an existing number manipulation rule (or list of rules). The rule can be used, for example, in the settings of your SBC (Set-CSOnlinePSTNGateway) to convert a callee or caller number to a desired format before entering or leaving Microsoft Phone System. + + + + Get-CsTeamsTranslationRule + + Filter + + > Applicable: Microsoft Teams + The filter to use against the Identity of translation rules. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + + Get-CsTeamsTranslationRule + + Identity + + > Applicable: Microsoft Teams + Identifier of the specific translation rule to display. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + The filter to use against the Identity of translation rules. + + System.String + + System.String + + + None + + + Identity + + > Applicable: Microsoft Teams + Identifier of the specific translation rule to display. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsTranslationRule + + This command will show all translation rules that exist in the tenant. Identity, Name, Description, Pattern, and Translation parameters are listed for each rule. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsTranslationRule -Identity AddPlus1 + + This command will show Identity, Name, Description, Pattern, and Translation parameters for the "AddPlus1" rule. + + + + -------------------------- Example 3 -------------------------- + Get-CsTeamsTranslationRule -Filter 'Add*' + + This command will show Identity, Name, Description, Pattern, and Translation parameters for all rules with Identity starting with Add. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule + + + New-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule + + + Test-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule + + + Set-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule + + + Remove-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule + + + + + + Get-CsTeamsUnassignedNumberTreatment + Get + CsTeamsUnassignedNumberTreatment + + Displays a specific or all treatments for how calls to an unassigned number range should be routed. + + + + This cmdlet displays a specific or all treatments for how calls to an unassigned number range should be routed. + + + + Get-CsTeamsUnassignedNumberTreatment + + Filter + + > Applicable: Microsoft Teams + Enables you to limit the returned data by filtering on the Identity attribute. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + + Get-CsTeamsUnassignedNumberTreatment + + Identity + + The Id of the specific treatment to show. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + Enables you to limit the returned data by filtering on the Identity attribute. + + System.String + + System.String + + + None + + + Identity + + The Id of the specific treatment to show. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PS module 2.5.1 or later. + + + + + -------------------------- Example 1 -------------------------- + Get-CsTeamsUnassignedNumberTreatment -Identity MainAA + + This example displays the treatment MainAA. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsUnassignedNumberTreatment + + This example displays all configured treatments. + + + + -------------------------- Example 3 -------------------------- + Get-CsTeamsUnassignedNumberTreatment -Filter Ann* + + This example displays all configured treatments with an Identity starting with Ann. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment + + + Remove-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment + + + New-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment + + + Set-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment + + + + + + Get-CsTeamsUpgradePolicy + Get + CsTeamsUpgradePolicy + + This cmdlet returns the set of instances of this policy. + + + + TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. As an organization with Skype for Business starts to adopt Teams, administrators can manage the user experience in their organization using the concept of coexistence "mode". Mode defines in which client incoming chats and calls land as well as in what service (Teams or Skype for Business) new meetings are scheduled in. Mode also governs whether chat, calling, and meeting scheduling functionality are available in the Teams client. Finally, prior to upgrading to TeamsOnly mode administrators can use TeamsUpgradePolicy to trigger notifications in the Skype for Business client to inform users of the pending upgrade. + > [!IMPORTANT] > It can take up to 24 hours for a change to TeamsUpgradePolicy to take effect. Before then, user presence status may not be correct (may show as Unknown ). + + NOTES: - Except for on-premise versions of Skype for Business Server, all relevant instances of TeamsUpgradePolicy are built into the system, so there is no corresponding New cmdlet. - If you are using Skype for Business Server, there are no built-in instances and you'll need to create one. Also, only the NotifySfBUsers property is available. Mode is not present. - Using TeamsUpgradePolicy in an on-premises environmention requires Skype for Business Server 2015 with CU8 or later. + You can also find more guidance here: Migration and interoperability guidance for organizations using Teams together with Skype for Business (https://learn.microsoft.com/microsoftteams/migration-interop-guidance-for-teams-with-skype). + + + + Get-CsTeamsUpgradePolicy + + Identity + + > Applicable: Microsoft Teams + If identity parameter is passed, this will return a specific instance. If no identity parameter is specified, the cmdlet returns all instances. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Microsoft Teams + {{Fill Filter Description}} + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{Fill Tenant Description}} + + Guid + + Guid + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + {{Fill Filter Description}} + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + If identity parameter is passed, this will return a specific instance. If no identity parameter is specified, the cmdlet returns all instances. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{Fill Tenant Description}} + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + Example 1: List all instances of TeamsUpgradePolicy (Skype for Business Online) + PS C:\> Get-CsTeamsUpgradePolicy + +Identity : Global +Description : Users can use either Skype for Business client or Teams client +Mode : Islands +NotifySfbUsers : False + +Identity : Tag:UpgradeToTeams +Description : Use Teams Only +Mode : TeamsOnly +NotifySfbUsers : False + +Identity : Tag:Islands +Description : Use either Skype for Business client or Teams client +Mode : Islands +NotifySfbUsers : False +Action : None + +Identity : Tag:IslandsWithNotify +Description : Use either Skype for Business client or Teams client +Mode : Islands +NotifySfbUsers : True + +Identity : Tag:SfBOnly +Description : Use only Skype for Business +Mode : SfBOnly +NotifySfbUsers : False + +Identity : Tag:SfBOnlyWithNotify +Description : Use only Skype for Business +Mode : SfBOnly +NotifySfbUsers : True + +Identity : Tag:SfBWithTeamsCollab +Description : Use Skype for Business and use Teams only for group collaboration +Mode : SfBWithTeamsCollab +NotifySfbUsers : False + +Identity : Tag:SfBWithTeamsCollabWithNotify +Description : Use Skype for Business and use Teams only for group collaboration +Mode : SfBWithTeamsCollab +NotifySfbUsers : True + +Identity : Tag:SfBWithTeamsCollabAndMeetings +Description : Use Skype for Business and use Teams only for group collaboration +Mode : SfBWithTeamsCollabAndMeetings +NotifySfbUsers : False + +Identity : Tag:SfBWithTeamsCollabAndMeetingsWithNotify +Description : Use Skype for Business and use Teams only for group collaboration +Mode : SfBWithTeamsCollabAndMeetings +NotifySfbUsers : True + + List all instances of TeamsUpgradePolicy + + + + Example 2: List the global instance of TeamsUpgradePolicy (which applies to all users in a tenant unless they are explicitly assigned an instance of this policy) + PS C:\> Get-CsTeamsUpgradePolicy -Identity Global + +Identity : Global +Description : Users can use either Skype for Business client or Teams client +Mode : Islands +NotifySfbUsers : False + + List the global instance of TeamsUpgradePolicy + + + + Example 3: List all instances of TeamsUpgradePolicy in an on-premises environment + PS C:\> Get-CsTeamsUpgradePolicy -Identity Global + +Identity : Global +Description : Notifications are disabled +NotifySfbUsers : False + + List all on-premises instances (if any) of TeamsUpgradePolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skype/get-csteamsupgradepolicy + + + Get-CsTeamsUpgradeConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration + + + Set-CsTeamsUpgradeConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration + + + Grant-CsTeamsUpgradePolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy + + + Migration and interoperability guidance for organizations using Teams together with Skype for Business + https://learn.microsoft.com/MicrosoftTeams/migration-interop-guidance-for-teams-with-skype + + + + + + Get-CsTeamsVideoInteropServicePolicy + Get + CsTeamsVideoInteropServicePolicy + + The Get-CsTeamsVideoInteropServicePolicy cmdlet allows you to identify the pre-constructed policies that you can use in your organization. + + + + Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization. Microsoft provides pre-constructed policies for each of our supported partners that allow you to designate which partner(s) to use for cloud video interop. You can assign this policy to one or more of your users leveraging the Grant-CsTeamsVideoInteropServicePolicy cmdlet. + + + + Get-CsTeamsVideoInteropServicePolicy + + Filter + + If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is a regex string against the name (Identity) of the pre-constructed policies. + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + Get-CsTeamsVideoInteropServicePolicy + + Identity + + Specify the known name of a policy that has been pre-constructed for you to use. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + If you don't know what policies have been pre-constructed, you can use filter to identify all policies available. This is a regex string against the name (Identity) of the pre-constructed policies. + + String + + String + + + None + + + Identity + + Specify the known name of a policy that has been pre-constructed for you to use. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsVideoInteropServicePolicy -Filter "*enabled*" + + This example returns all of the policies that have been pre-constructed for you to use when turning on Cloud Video Interop with one of our supported partners. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvideointeropservicepolicy + + + + + + Get-CsTeamsWorkLoadPolicy + Get + CsTeamsWorkLoadPolicy + + This cmdlet applies an instance of the Teams Workload policy to users or groups in a tenant. + + + + The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. + + + + Get-CsTeamsWorkLoadPolicy + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + + Get-CsTeamsWorkLoadPolicy + + Identity + + Identity of the Teams Workload Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the policy (or policies) to be returned. + + String + + String + + + None + + + Identity + + Identity of the Teams Workload Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTeamsWorkLoadPolicy + + Retrieves the Teams Workload Policy instances and shows assigned values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy + + + Remove-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy + + + New-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy + + + Set-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy + + + Grant-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy + + + + + + Get-CsTeamTemplate + Get + CsTeamTemplate + + This cmdlet supports retrieving details of a team template available to your tenant given the team template uri. + + + + This cmdlet supports retrieving details of a team template available to your tenant given the team template uri. + NOTE: The returned template definition is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. + + + + Get-CsTeamTemplate + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + + Get-CsTeamTemplate + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + OdataId + + A composite URI of a template. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + OdataId + + A composite URI of a template. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject + + + + + + + + + COMPLEX PARAMETER PROPERTIES + To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + INPUTOBJECT <IConfigApiBasedCmdletsIdentity>: Identity Parameter - `[Bssid <String>]`: - `[ChassisId <String>]`: - `[CivicAddressId <String>]`: Civic address id. - `[Country <String>]`: - `[GroupId <String>]`: The ID of a group whose policy assignments will be returned. - `[Id <String>]`: - `[Identity <String>]`: - `[Locale <String>]`: - `[LocationId <String>]`: Location id. - `[OdataId <String>]`: A composite URI of a template. - `[OperationId <String>]`: The ID of a batch policy assignment operation. - `[OrderId <String>]`: - `[PackageName <String>]`: The name of a specific policy package - `[PolicyType <String>]`: The policy type for which group policy assignments will be returned. - `[Port <String>]`: - `[PortInOrderId <String>]`: - `[PublicTemplateLocale <String>]`: Language and country code for localization of publicly available templates. - `[SubnetId <String>]`: - `[TenantId <String>]`: - `[UserId <String>]`: UserId. Supports Guid. Eventually UPN and SIP. + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where Name -like 'test' | ForEach-Object {Get-CsTeamTemplate -OdataId $_.OdataId} + + Within the universe of templates the admin's tenant has access to, returns a template definition object (displayed as a JSON by default) for every custom and every Microsoft en-US template which names include 'test'. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/cefcf333-91a9-43d0-919f-bbca5b7d2b24/Tenant/en-US' > 'config.json' + + Saves the template with specified template ID as a JSON file. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate + + + Get-CsTeamTemplateList + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist + + + Get-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate + + + New-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate + + + Update-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate + + + Remove-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate + + + + + + Get-CsTeamTemplateList + Get + CsTeamTemplateList + + Get a list of available team templates + + + + This cmdlet supports retrieving information of all team templates available to your tenant, including both first party Microsoft team templates as well as custom templates. The templates information retrieved includes OData Id, template name, short description, count of channels and count of applications. Note: All custom templates will be retrieved, regardless of the locale specification. If you have hidden templates in the admin center, you will still be able to see the hidden templates here. + + + + Get-CsTeamTemplateList + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + + Get-CsTeamTemplateList + + PublicTemplateLocale + + The language and country code of templates localization for Microsoft team templates. This will not be applied to your tenant custom team templates. Defaults to en-US. + + String + + String + + + 'en-US' + + + + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + PublicTemplateLocale + + The language and country code of templates localization for Microsoft team templates. This will not be applied to your tenant custom team templates. Defaults to en-US. + + String + + String + + + 'en-US' + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary + + + + + + + + + COMPLEX PARAMETER PROPERTIES + To create the parameters described below, construct a hash table containing the appropriate properties.\ For information on hash tables, run Get-Help about_Hash_Tables.\ \ INPUTOBJECT <IConfigApiBasedCmdletsIdentity>: Identity Parameter\ [Bssid <String>]:\ [ChassisId <String>]:\ [CivicAddressId <String>]: Civic address id.\ [Country <String>]:\ [GroupId <String>]: The ID of a group whose policy assignments will be returned.\ [Id <String>]:\ [Identity <String>]:\ [Locale <String>]: The language and country code of templates localization.\ [LocationId <String>]: Location id.\ [OdataId <String>]: A composite URI of a template.\ [OperationId <String>]: The ID of a batch policy assignment operation.\ [OrderId <String>]:\ [PackageName <String>]: The name of a specific policy package\ [PolicyType <String>]: The policy type for which group policy assignments will be returned.\ [Port <String>]:\ [PortInOrderId <String>]:\ [SubnetId <String>]:\ [TenantId <String>]:\ [UserId <String>]: UserId.\ Supports Guid.\ Eventually UPN and SIP. + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Get-CsTeamTemplateList + + Returns all en-US templates within the universe of templates the admin's tenant has access to. + Note: All 1P Microsoft templates will always be returned in the specified locale. If the locale is not specified, en-US will be used. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where ChannelCount -GT 3 + + Returns all en-US templates that have 3 channels within the universe of templates the admin's tenant has access to. + + + + + + Get-CsTeamTemplateList + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist + + + Get-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate + + + New-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate + + + Update-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate + + + Remove-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate + + + + + + Get-CsTenant + Get + CsTenant + + Returns information about the Microsoft Teams or Skype for Business Online tenants that have been configured for use in your organization. Tenants represent groups of online users. + + + + In Microsoft Teams or Skype for Business Online, tenants are groups of users who have accounts homed on the service. Organizations will typically have a single tenant in which to house all their user accounts. + In the Teams PowerShell Module version 3.0.0 or later, the following attributes have been deprecated for organizations with Teams users: + - AdminDescription + - AllowedDataLocation + - AssignedLicenses + - DefaultDataLocation + - DefaultPoolFqdn + - Description + - DisableExoPlanProvisioning + - DistinguishedName + - DomainUrlMap + - ExperiencePolicy + - Guid + - HostedVoiceMail + - HostedVoiceMailNotProvisioned + - Id + - Identity + - IsByPassValidation + - IsMNC + - IsO365MNC + - IsReadinessUploaded + - IsUpgradeReady + - IsValid + - LastSubProvisionTimeStamp + - MNCEnableTimeStamp + - Name + - NonPrimarySource + - ObjectCategory + - ObjectClass + - ObjectId + - ObjectState + - OcoDomainTracked + - OnPremisesImmutableId + - OnPremisesUserPrincipalName + - OnPremSamAccountName + - OnPremSecurityIdentifier + - OriginalRegistrarPool + - OriginatingServer + - PendingDeletion + - Phone + - ProvisioningCounter + - ProvisioningStamp + - ProvisionType + - PublicProvider + - PublishingCounter + - PublishingStamp + - RegistrarPool + - RemoteMachine + - SubProvisioningCounter + - SubProvisioningStamp + - SyncingCounter + - TeamsUpgradeEligible + - TelehealthEnabled + - TenantNotified + - TenantPoolExtension + - UpgradeRetryCounter + - UserRoutingGroupIds + - XForestMovePolicy + + In the Teams PowerShell Module version 3.0.0 or later, the following attributes have been renamed for TeamsOnly customers: + - CountryAbbreviation is now CountryLetterCode + - CountryOrRegionDisplayName is now Country + - StateOrProvince is now State + + + + Get-CsTenant + + Identity + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Unique identifier for the tenant. For example: + -Identity "bf19b7db-6960-41e5-a139-2aa373474354" + If you do not include either the Identity or the Filter parameter then the `Get-CsTenant` cmdlet will return information about all your tenants. + + OUIdParameter + + OUIdParameter + + + None + + + DomainController + + > Applicable: Microsoft Teams + This parameter is not used with Skype for Business Online and will be deprecated in the near future. + + Fqdn + + Fqdn + + + None + + + Filter + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Enables you to return data by using Active Directory attributes and without having to specify the full Active Directory distinguished name. For example, to retrieve a tenant by using the tenant display name, use syntax similar to this: + Get-CsTenant -Filter {DisplayName -eq "FabrikamTenant"} + To return all tenants that use a Fabrikam domain use this syntax: + Get-CsTenant -Filter {Domains -like " fabrikam "} + The Filter parameter uses the same Windows PowerShell filtering syntax is used by the `Where-Object` cmdlet. + You cannot use both the Identity parameter and the Filter parameter in the same command. + + String + + String + + + None + + + ResultSize + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Enables you to limit the number of records returned by the cmdlet. For example, to return seven tenants (regardless of the number of tenants that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which 7 users will be returned. + The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the tenants to 7 but you have only three contacts in your forest, the command will return those three tenants and then complete without error. + + Int32 + + Int32 + + + None + + + + + + DomainController + + > Applicable: Microsoft Teams + This parameter is not used with Skype for Business Online and will be deprecated in the near future. + + Fqdn + + Fqdn + + + None + + + Filter + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Enables you to return data by using Active Directory attributes and without having to specify the full Active Directory distinguished name. For example, to retrieve a tenant by using the tenant display name, use syntax similar to this: + Get-CsTenant -Filter {DisplayName -eq "FabrikamTenant"} + To return all tenants that use a Fabrikam domain use this syntax: + Get-CsTenant -Filter {Domains -like " fabrikam "} + The Filter parameter uses the same Windows PowerShell filtering syntax is used by the `Where-Object` cmdlet. + You cannot use both the Identity parameter and the Filter parameter in the same command. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Unique identifier for the tenant. For example: + -Identity "bf19b7db-6960-41e5-a139-2aa373474354" + If you do not include either the Identity or the Filter parameter then the `Get-CsTenant` cmdlet will return information about all your tenants. + + OUIdParameter + + OUIdParameter + + + None + + + ResultSize + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + Enables you to limit the number of records returned by the cmdlet. For example, to return seven tenants (regardless of the number of tenants that are in your forest) include the ResultSize parameter and set the parameter value to 7. Note that there is no way to guarantee which 7 users will be returned. + The result size can be set to any whole number between 0 and 2147483647, inclusive. If set to 0 the command will run, but no data will be returned. If you set the tenants to 7 but you have only three contacts in your forest, the command will return those three tenants and then complete without error. + + Int32 + + Int32 + + + None + + + + + + Microsoft.Rtc.Management.ADConnect.Schema.TenantObject or String + + + The `Get-CsTenant` cmdlet accepts pipelined instances of the Microsoft.Rtc.Management.ADConnect.Schema.TenantObject object as well as string values representing the Identity of the tenant (for example "bf19b7db-6960-41e5-a139-2aa373474354"). + + + + + + + Microsoft.Rtc.Management.ADConnect.Schema.TenantObject + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTenant + + The command shown in Example 1 returns information about your tenant. Organizations will have only one tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenant + + + + + + Get-CsTenantBlockedCallingNumbers + Get + CsTenantBlockedCallingNumbers + + Use the Get-CsTenantBlockedCallingNumbers cmdlet to retrieve tenant blocked calling numbers setting. + + + + Microsoft Direct Routing, Operator Connect and Calling Plans supports blocking of inbound calls from the public switched telephone network (PSTN). This feature allows a tenant-global list of number patterns to be defined so that the caller ID of every incoming PSTN call to the tenant can be checked against the list for a match. If a match is made, an incoming call is rejected. + The tenant blocked calling numbers includes a list of inbound blocked number patterns. Number patterns are managed through the CsInboundBlockedNumberPattern commands New, Get, Set, and Remove. You can manage a given pattern by using these cmdlets, including the ability to toggle the activation of a given pattern. + You can also configure a list of number patterns to be exempt from call blocking. Exempt number patterns are managed through the CsInboundExemptNumberPattern commands New, Get, Set, and Remove. + You can test your call blocking by using the command Test-CsInboundBlockedNumberPattern. + The scope of tenant blocked calling numbers is global across the given tenant. + + + + Get-CsTenantBlockedCallingNumbers + + Filter + + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + Get-CsTenantBlockedCallingNumbers + + Identity + + The Identity parameter is a unique identifier that designates the scope, and for per-user scope a name, which identifies the TenantBlockedCallingNumbers to retrieve. + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + + + Filter + + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + Identity + + The Identity parameter is a unique identifier that designates the scope, and for per-user scope a name, which identifies the TenantBlockedCallingNumbers to retrieve. + + String + + String + + + None + + + MsftInternalProcessingMode + + Internal Microsoft use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTenantBlockedCallingNumbers + + This example returns the tenant global settings for blocked calling numbers. It includes a list of inbound blocked number patterns and exempt number patterns. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers + + + Set-CsTenantBlockedCallingNumbers + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantblockedcallingnumbers + + + Test-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern + + + + + + Get-CsTenantDialPlan + Get + CsTenantDialPlan + + Use the Get-CsTenantDialPlan cmdlet to retrieve a tenant dial plan. + + + + The Get-CsTenantDialPlan cmdlet returns information about one or more tenant dial plans (also known as a location profiles) in an organization. Tenant dial plans provide required information to let Enterprise Voice users make telephone calls. The Conferencing Attendant application also uses tenant dial plans for dial-in conferencing. A tenant dial plan determines such things as which normalization rules are applied. + You can use the Get-CsTenantDialPlan cmdlet to retrieve specific information about the normalization rules of a tenant dial plan. + + + + Get-CsTenantDialPlan + + Filter + + > Applicable: Microsoft Teams + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + + Get-CsTenantDialPlan + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is a unique identifier that designates the name of the tenant dial plan to retrieve. + + String + + String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is a unique identifier that designates the name of the tenant dial plan to retrieve. + + String + + String + + + None + + + + + + + The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. + + + + + -------------------------- Example 1 -------------------------- + Get-CsTenantDialPlan + + This example retrieves all existing tenant dial plans. + + + + -------------------------- Example 2 -------------------------- + Get-CsTenantDialPlan -Identity Vt1TenantDialPlan2 + + This example retrieves the tenant dial plan that has an identity of Vt1TenantDialplan2. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan + + + Grant-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan + + + New-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan + + + Set-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan + + + Remove-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan + + + + + + Get-CsTenantFederationConfiguration + Get + CsTenantFederationConfiguration + + Returns information about the federation configuration settings for your Skype for Business Online tenants. Federation configuration settings are used to determine which domains (if any) your users are allowed to communicate with. + + + + Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: + Whether or not users can communicate with people from other domains and, if so, which domains they are allowed to communicate with. + Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, AOL, and Yahoo. + The Get-CsTenantFederationConfiguration cmdlet provides a way for administrators to return federation information for their Skype for Business Online tenants. This cmdlet can also be used to review the allowed and blocked lists, lists which are used to specify domains that users can and cannot communicate with. However, administrators must use the Get-CsTenantPublicProvider cmdlet in order to see which public IM and presence providers users are allowed to communicate with. + + + + Get-CsTenantFederationConfiguration + + Identity + + > Applicable: Microsoft Teams + Specifies the collection of tenant federation configuration settings to be returned. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Get-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: + `Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Microsoft Teams + Enables you to use wildcard characters in order to return a collection of tenant federation configuration settings. Because each tenant is limited to a single, global collection of federation configuration settings there is no need to use the Filter parameter. However, this is valid syntax for the Get-CsTenantFederationConfiguration cmdlet: + `Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Filter "g*"` + + String + + String + + + None + + + LocalStore + + > Applicable: Microsoft Teams + This parameter is not used with Skype for Business Online. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose federation settings are being returned. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + Enables you to use wildcard characters in order to return a collection of tenant federation configuration settings. Because each tenant is limited to a single, global collection of federation configuration settings there is no need to use the Filter parameter. However, this is valid syntax for the Get-CsTenantFederationConfiguration cmdlet: + `Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Filter "g*"` + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + Specifies the collection of tenant federation configuration settings to be returned. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the Get-CsTenantFederationConfiguration cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: + `Get-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + > Applicable: Microsoft Teams + This parameter is not used with Skype for Business Online. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose federation settings are being returned. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return the tenant ID for each of your tenants by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTenantFederationConfiguration + + The command shown in Exercise 1 returns federation configuration information for the current tenant: + + + + -------------------------- Example 2 -------------------------- + Get-CsTenantFederationConfiguration | Select-Object -ExpandProperty AllowedDomains + + In Example 2, information is returned for all the allowed domains found on the federation configuration for the current tenant (This list represents all the domains that the tenant is allowed to federate with). To do this, the command first calls the Get-CsTenantFederationConfiguration cmdlet to return federation information for the specified tenant. That information is then piped to the Select-Object cmdlet, which uses the ExpandProperty to "expand" the property AllowedDomains. Expanding a property simply means displaying all the information stored in that property onscreen, and in an easy-to-read format. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantfederationconfiguration + + + Set-CsTenantFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration + + + + + + Get-CsTenantLicensingConfiguration + Get + CsTenantLicensingConfiguration + + Indicates whether licensing information for the specified tenant is available in the Teams admin center. + + + + The Get-CsTenantLicensingConfiguration cmdlet indicates whether licensing information for the specified tenant is available in the Teams admin center. The cmdlet returns information similar to this: + Identity : GlobalStatus : Enabled + If the Status is equal to Enabled then licensing information is available in the admin center. If not, then licensing information is not available in the admin center. + + + + Get-CsTenantLicensingConfiguration + + Filter + + > Applicable: Microsoft Teams + Enables you to use wildcard characters in order to return a collection of tenant licensing configuration settings. Because each tenant is limited to a single, global collection of licensing configuration settings there is no need to use the Filter parameter. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + Get-CsTenantLicensingConfiguration + + Identity + + > Applicable: Microsoft Teams + Specifies the collection of tenant licensing configuration settings to be returned. Because each tenant is limited to a single, global collection of licensing settings there is no need include this parameter when calling the Get-CsTenantLicensingConfiguration cmdlet. + + XdsIdentity + + XdsIdentity + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + Enables you to use wildcard characters in order to return a collection of tenant licensing configuration settings. Because each tenant is limited to a single, global collection of licensing configuration settings there is no need to use the Filter parameter. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + Specifies the collection of tenant licensing configuration settings to be returned. Because each tenant is limited to a single, global collection of licensing settings there is no need include this parameter when calling the Get-CsTenantLicensingConfiguration cmdlet. + + XdsIdentity + + XdsIdentity + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + + + + None + + + + + + + + + + Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantLicensingConfiguration + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsTenantLicensingConfiguration + + The command shown in Example 1 returns licensing configuration information for the current tenant: + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantlicensingconfiguration + + + Get-CsTenant + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenant + + + + + + Get-CsTenantMigrationConfiguration + Get + CsTenantMigrationConfiguration + + Use the Get-CsTenantMigrationConfiguration cmdlet to check if Meeting Migration Service (MMS) is enabled in your organization. + + + + Meeting Migration Service (MMS) is a Skype for Business service that runs in the background and automatically updates Skype for Business and Microsoft Teams meetings for users. MMS is designed to eliminate the need for users to run the Meeting Migration Tool to update their Skype for Business and Microsoft Teams meetings. This tool does not migrate Skype for Business meetings into Microsoft Teams meetings. + The Get-CsTenantMigrationConfiguration cmdlet retrieves the Meeting Migration Service configuration in your organization. + + + + Get-CsTenantMigrationConfiguration + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + Filter + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + LocalStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + Filter + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + LocalStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTenantMigrationConfiguration + + This example shows the MMS configuration in your organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantmigrationconfiguration + + + Set-CsTenantMigrationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration + + + + + + Get-CsTenantNetworkConfiguration + Get + CsTenantNetworkConfiguration + + Returns information about the network regions, sites and subnets in the tenant network configuration. Tenant network configuration is used for Location Based Routing. + + + + Tenant Network Configuration contains the list of network sites, subnets and regions configured. + A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. + A best practice for Location Based Routing (LBR) is to create a separate site for each location which has unique PSTN connectivity. Each network site must be associated with a network region. Sites may be created as LBR or non-LBR enabled. A non-LBR enabled site may be created to allow LBR enabled users to make PSTN calls when they roam to that site. Note that network sites may also be used for emergency calling enablement and configuration. + IP subnets at the location where Teams endpoints can connect to the network must be defined and associated to a defined network in order to enforce toll bypass. + Multiple subnets may be associated with the same network site, but multiple sites may not be associated with a same subnet. This association of subnets enables Location-Based routing to locate the endpoints geographically to determine if a given PSTN call should be allowed. Both IPv4 and IPv6 subnets are supported. When determining if a Teams endpoint is located at a site an IPv6 address will be checked for a match first. + A network region interconnects various parts of a network across multiple geographic areas. + A network region contains a collection of network sites. For example, if your organization has many sites located in India, then you may choose to designate "India" as a network region. + Location-Based Routing is a feature that allows PSTN toll bypass to be restricted for users based on policy and the user's geographic location at the time of an incoming or outgoing PSTN call. + Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in Microsoft 365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. + + + + Get-CsTenantNetworkConfiguration + + Filter + + Enables you to use wildcard characters when indicating the network configuration (or network configurations) to be returned. + + String + + String + + + None + + + + Get-CsTenantNetworkConfiguration + + Identity + + The Identity parameter is a unique identifier for the network configuration. + + String + + String + + + None + + + + + + Filter + + Enables you to use wildcard characters when indicating the network configuration (or network configurations) to be returned. + + String + + String + + + None + + + Identity + + The Identity parameter is a unique identifier for the network configuration. + + String + + String + + + None + + + + + + None + + + + + + + + + + Identity + + + The Identity of the network configuration. + + + + + NetworkRegions + + + The list of network regions of the network configuration. + + + + + NetworkSites + + + The list of network sites of the network configuration. + + + + + Subnets + + + The list of network subnets of the network configuration. + + + + + PostalCodes + + + This parameter is reserved for internal Microsoft use. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTenantNetworkConfiguration + + The command shown in Example 1 returns the list of network configuration for the current tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTenantNetworkConfiguration -Identity Global + + The command shown in Example 2 returns the network configuration within the scope of Global. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsTenantNetworkConfiguration -Filter "global" + + The command shown in Example 3 returns the network site that matches the specified filter. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkconfiguration + + + Get-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite + + + Get-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite + + + Get-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite + + + + + + Get-CsTenantNetworkRegion + Get + CsTenantNetworkRegion + + Returns information about the network region setting in the tenant. Tenant network region is used for Location Based Routing. + + + + A network region interconnects various parts of a network across multiple geographic areas. + A network region contains a collection of network sites. For example, if your organization has many sites located in India, then you may choose to designate "India" as a network region. + Location-Based Routing is a feature that allows PSTN toll bypass to be restricted for users based on policy and the user's geographic location at the time of an incoming or outgoing PSTN call. + Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in Microsoft 365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. + + + + Get-CsTenantNetworkRegion + + Filter + + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + + Get-CsTenantNetworkRegion + + Identity + + The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network region to be returned. + + String + + String + + + None + + + + + + Filter + + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + Identity + + The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network region to be returned. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTenantNetworkRegion + + The command shown in Example 1 returns the list of network regions for the current tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTenantNetworkRegion -Identity RedmondRegion + + The command shown in Example 2 returns the network region within the scope of RedmondRegion. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion + + + New-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion + + + Remove-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion + + + Set-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion + + + + + + Get-CsTenantNetworkSubnet + Get + CsTenantNetworkSubnet + + Returns information about the network subnet setting in the tenant. Tenant network subnet is used for Location Based Routing. + + + + IP subnets at the location where Teams endpoints can connect to the network must be defined and associated to a defined network in order to enforce toll bypass. + Multiple subnets may be associated with the same network site, but multiple sites may not be associated with a same subnet. This association of subnets enables Location-Based routing to locate the endpoints geographically to determine if a given PSTN call should be allowed. Both IPv4 and IPv6 subnets are supported. When determining if a Teams endpoint is located at a site an IPv6 address will be checked for a match first. + Location Based Routing is a feature which allows PSTN toll bypass to be restricted for users based upon policy and the user's geographic location at the time of an incoming or outgoing PSTN call. + Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in O365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. + + + + Get-CsTenantNetworkSubnet + + Filter + + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + + Get-CsTenantNetworkSubnet + + Identity + + The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network subnets to be returned. + + String + + String + + + None + + + + + + Filter + + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + Identity + + The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network subnets to be returned. + + String + + String + + + None + + + + + + None + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTenantNetworkSubnet + + The command shown in Example 1 returns the list of network subnets for the current tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTenantNetworkSubnet -Identity '2001:4898:e8:25:844e:926f:85ad:dd70' + + The command shown in Example 2 returns the IPv6 format network subnet within the scope of '2001:4898:e8:25:844e:926f:85ad:dd70'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet + + + New-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet + + + Remove-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet + + + Set-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet + + + + + + Get-CsTenantTrustedIPAddress + Get + CsTenantTrustedIPAddress + + Returns information about the external trusted IPs in the tenant. Trusted IP address from user's endpoint will be checked to determine which internal subnet the user's endpoint is located. + + + + External trusted IPs are the Internet external IPs of the enterprise network and are used to determine if the user's endpoint is inside the corporate network before checking for a specific site match. Trusted IP addresses in both IPv4 and IPv6 formats are accepted. + If the user's external IP matches one defined in the trusted list, then Location-Based Routing will check to determine which internal subnet the user's endpoint is located. If the user's external IP doesn't match one defined in the trusted list, the endpoint will be classified as being at an unknown and any PSTN calls to/from an LBR enabled user are blocked. + Location Based Routing is a feature which allows PSTN toll bypass to be restricted for users based upon policy and the user's geographic location at the time of an incoming or outgoing PSTN call. + Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in O365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. + + + + Get-CsTenantTrustedIPAddress + + Filter + + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + LocalStore + + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose trusted IP addresses are being returned. + + System.Guid + + System.Guid + + + None + + + + Get-CsTenantTrustedIPAddress + + Identity + + The Identity parameter is a unique identifier that designates the scope. It specifies the collection of trusted IP address to be returned. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + LocalStore + + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose trusted IP addresses are being returned. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + The Filter parameter allows you to limit the number of results based on filters you specify. + + String + + String + + + None + + + Identity + + The Identity parameter is a unique identifier that designates the scope. It specifies the collection of trusted IP address to be returned. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + LocalStore + + PARAMVALUE: SwitchParameter + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose trusted IP addresses are being returned. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsTenantTrustedIPAddress + + The command shown in Example 1 returns the list of trusted IP addresses for the current tenant. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsTenantTrustedIPAddress -Identity '2001:4898:e8:25:8440::' + + The command shown in Example 2 returns the IPv6 format trusted IP address detail of '2001:4898:e8:25:8440::'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenanttrustedipaddress + + + + + + Get-CsUserCallingSettings + Get + CsUserCallingSettings + + This cmdlet will show the call forwarding, simultaneous ringing, call group and delegation settings for a user. + + + + This cmdlet shows the call forwarding, simultaneous ringing, call group and delegation settings for a user. It will also show any call groups the user is a member of and if someone else has added the user as a delegate. + + + + Get-CsUserCallingSettings + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to show call forwarding, simultaneous ringing, call group and delegation settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + + Get-CsUserCallingSettings + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + {{ Fill InputObject Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to show call forwarding, simultaneous ringing, call group and delegation settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + InputObject + + {{ Fill InputObject Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 4.0.0 or later. + + + + + -------------------------- Example 1 -------------------------- + Get-CsUserCallingSettings -Identity user1@contoso.com + +SipUri : sip:user1@contoso.com +IsForwardingEnabled : True +ForwardingType : Immediate +ForwardingTarget : +ForwardingTargetType : Voicemail +IsUnansweredEnabled : False +UnansweredTarget : +UnansweredTargetType : Voicemail +UnansweredDelay : 00:00:20 +Delegates : +Delegators : +CallGroupOrder : InOrder +CallGroupTargets : {} +GroupMembershipDetails : +GroupNotificationOverride : + + This example shows that user1@contoso.com has immediate call forwarding set (IsForwardingEnabled and ForwardingType) to route all incoming calls to voicemail (ForwardingTargetType). + + + + -------------------------- Example 2 -------------------------- + Get-CsUserCallingSettings -Identity user2@contoso.com + +SipUri : sip:user2@contoso.com +IsForwardingEnabled : True +ForwardingType : Simultaneous +ForwardingTarget : sip:user3@contoso.com +ForwardingTargetType : SingleTarget +IsUnansweredEnabled : True +UnansweredTarget : +UnansweredTargetType : Voicemail +UnansweredDelay : 00:00:20 +Delegates : +Delegators : +CallGroupOrder : InOrder +CallGroupTargets : {} +GroupMembershipDetails : +GroupNotificationOverride : + + This example shows that user2@contoso.com has simultaneous ringing set (IsForwardingEnabled and ForwardingType) to user3@contoso.com (ForwardingTarget and ForwardingTargetType) and if the call has not been answered (IsUnansweredEnabled) within 20 seconds (UnansweredDelay) the call is routed to voicemail (UnansweredTargetType). + + + + -------------------------- Example 3 -------------------------- + Get-CsUserCallingSettings -Identity user4@contoso.com + +SipUri : sip:user4@contoso.com +IsForwardingEnabled : True +ForwardingType : Simultaneous +ForwardingTarget : +ForwardingTargetType : Group +IsUnansweredEnabled : True +UnansweredTarget : +UnansweredTargetType : Voicemail +UnansweredDelay : 00:00:20 +Delegates : +Delegators : +CallGroupOrder : InOrder +CallGroupTargets : {sip:user5@contoso.com} +GroupMembershipDetails : CallGroupOwnerId:sip:user6@contoso.com +GroupNotificationOverride : Mute + +(Get-CsUserCallingSettings -Identity user4@contoso.com).GroupMembershipDetails + +CallGroupOwnerId NotificationSetting +---------------- ------------------- +sip:user6@contoso.com Ring + + This example shows that user4@contoso.com has simultaneous ringing set to his/her call group (ForwardingTargetType) and that the call group contains user5@contoso.com (CallGroupTargets). The call group is defined to ring members in the order listed in the call group (CallGroupOrder). + You can also see that user4@contoso.com is a member of user6@contoso.com's call group (GroupMembershipDetails), that user6@contoso.com defined the call group with Ring notification for user4@contoso.com (NotificationSetting) and that user4@contoso.com has decided to turn off call notification for call group calls (GroupNotificationOverride). + + + + -------------------------- Example 4 -------------------------- + Get-CsUserCallingSettings -Identity user7@contoso.com + +SipUri : sip:opr7@contoso.com +IsForwardingEnabled : True +ForwardingType : Simultaneous +ForwardingTarget : +ForwardingTargetType : MyDelegates +IsUnansweredEnabled : True +UnansweredTarget : +UnansweredTargetType : Voicemail +UnansweredDelay : 00:00:20 +Delegates : Id:sip:user8@contoso.com +Delegators : +CallGroupOrder : InOrder +CallGroupTargets : {} +GroupMembershipDetails : +GroupNotificationOverride : Ring + +(Get-CsUserCallingSettings -Identity user7@contoso.com).Delegates + +Id : sip:user8@contoso.com +MakeCalls : True +ManageSettings : True +ReceiveCalls : True + + This example shows that user7@contoso.com has simultaneous ringing set to his/her delegates (ForwardingTargetType). User8@contoso.com is the only delegate (Delegates) and that user has all the permissions you can have as a delegate (Delegates). + + + + -------------------------- Example 5 -------------------------- + Get-CsUserCallingSettings -Identity user9@contoso.com + +SipUri : sip:user9@contoso.com +IsForwardingEnabled : False +ForwardingType : Immediate +ForwardingTarget : +ForwardingTargetType : Voicemail +IsUnansweredEnabled : True +UnansweredTarget : +UnansweredTargetType : Voicemail +UnansweredDelay : 00:00:20 +Delegates : +Delegators : Id:sip:user10@contoso.com +CallGroupOrder : InOrder +CallGroupTargets : {} +GroupMembershipDetails : +GroupNotificationOverride : Ring + +(Get-CsUserCallingSettings -Identity user9@contoso.com).Delegators + +Id : sip:user10@contoso.com +MakeCalls : True +ManageSettings : True +ReceiveCalls : True + + This example shows that user9@contoso.com is a delegate of user10@contoso.com (Delegators) and that user10@contoso.com has given user9@contoso.com all the permissions you can have as a delegate (Delegators). + + + + -------------------------- Example 6 -------------------------- + Get-CsUserCallingSettings -Identity user11@contoso.com + +SipUri : sip:user11@contoso.com +IsForwardingEnabled : +ForwardingType : +ForwardingTarget : +ForwardingTargetType : +IsUnansweredEnabled : +UnansweredTarget : +UnansweredTargetType : +UnansweredDelay : 00:00:20 +Delegates : +Delegators : +CallGroupOrder : Simultaneous +CallGroupTargets : {} +GroupMembershipDetails : +GroupNotificationOverride : + + This example shows the default settings for a user that has never changed the call forward settings via Microsoft Teams. Note that for users with settings as shown here, unanswered calls will by default be forwarded to voicemail after 30 seconds. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings + + + Set-CsUserCallingSettings + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingsettings + + + New-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate + + + Set-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate + + + Remove-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate + + + + + + Get-CsUserPolicyAssignment + Get + CsUserPolicyAssignment + + This cmdlet is used to return the policy assignments for a user, both directly assigned and inherited from a group. + + + + This cmdlets returns the effective policies for a user, based on either direct policy assignment or inheritance from a group policy assignment. For a given policy type, if an effective policy is not returned, this indicates that the effective policy for the user is either the tenant global default policy (if set) or the system global default policy. + This cmdlet does not currently support returning policies for multiple users. + + + + Get-CsUserPolicyAssignment + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Identity + + The identify of the user whose policy assignments will be returned. + The -Identity parameter can be in the form of the users ObjectID (taken from Microsoft Entra ID) or in the form of the UPN (a.smith@example.com) + + String + + String + + + None + + + PolicyType + + Use to filter to a specific policy type. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + + Get-CsUserPolicyAssignment + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + IIc3AdminConfigRpPolicyIdentity + + IIc3AdminConfigRpPolicyIdentity + + + None + + + PolicyType + + Use to filter to a specific policy type. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Identity + + The identify of the user whose policy assignments will be returned. + The -Identity parameter can be in the form of the users ObjectID (taken from Microsoft Entra ID) or in the form of the UPN (a.smith@example.com) + + String + + String + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + IIc3AdminConfigRpPolicyIdentity + + IIc3AdminConfigRpPolicyIdentity + + + None + + + PolicyType + + Use to filter to a specific policy type. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.Config.Cmdlets.Models.IIc3AdminConfigRpPolicyIdentity + + + + + + + + + + Microsoft.Teams.Config.Cmdlets.Models.IEffectivePolicy + + + + + + + + + COMPLEX PARAMETER PROPERTIES + To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + INPUTOBJECT <IIc3AdminConfigRpPolicyIdentity>: Identity Parameter [GroupId <String>]: The ID of a group whose policy assignments will be returned. [Identity <String>]: [OperationId <String>]: The ID of a batch policy assignment operation. [PolicyType <String>]: The policy type for which group policy assignments will be returned. + + + + + -------------------------- Example 1 -------------------------- + Get-CsUserPolicyAssignment -Identity f0d9c148-27c1-46f5-9685-544d20170ea1 + +PolicyType PolicyName PolicySource +---------- ---------- ------------ +TeamsMeetingPolicy Kiosk {Kiosk, Kiosk} +MeetingPolicy BposSAllModality {BposSAllModality} +ExternalAccessPolicy FederationAndPICDefault {FederationAndPICDefault} +TeamsMeetingBroadcastPolicy Vendor Live Events {Vendor Live Events, Employees Events} +TeamsCallingPolicy AllowCalling {AllowCalling} + + + + + + -------------------------- Example 2 -------------------------- + Get-CsUserPolicyAssignment -Identity 3b90faad-9056-49ff-8357-0b53b1d45d39 -PolicyType TeamsMeetingBroadcastPolicy | select -ExpandProperty PolicySource + +AssignmentType PolicyName Reference +-------------- ---------- --------- +Direct Employees Events +Group Vendor Live Events 566b8d39-5c5c-4aaa-bc07-4f36278a1b38 + + + + + + -------------------------- Example 3 -------------------------- + Get-CsUserPolicyAssignment -Identity 3b90faad-9056-49ff-8357-0b53b1d45d39 -PolicyType TeamsMeetingPolicy | select -ExpandProperty PolicySource + +AssignmentType PolicyName Reference +-------------- ---------- --------- +Group AllOn d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 +Group Kiosk 566b8d39-5c5c-4aaa-bc07-4f36278a1b38 + +Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy kiosk 2 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicyassignment + + + New-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment + + + Remove-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment + + + + + + Get-CsUserPolicyPackage + Get + CsUserPolicyPackage + + This cmdlet supports retrieving the policy package that's assigned to a user. + + + + This cmdlet supports retrieving the policy package that's assigned to a user. Provide the identity of a user to retrieve the definition of their assigned policy package. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. + + + + Get-CsUserPolicyPackage + + Identity + + > Applicable: Microsoft Teams + The user that will get their assigned policy package. + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The user that will get their assigned policy package. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsUserPolicyPackage -Identity johndoe@example.com + + Returns the policy package that's assigned to johndoe@example.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage + + + Get-CsPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + Get-CsUserPolicyPackageRecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation + + + Grant-CsUserPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage + + + + + + Get-CsUserPolicyPackageRecommendation + Get + CsUserPolicyPackageRecommendation + + This cmdlet supports retrieving recommendations for which policy packages are best suited for a given user. + + + + This cmdlet supports retrieving recommendations for which policy packages are best suited for a given user. This recommendation is based on tenant and user information such as license types. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. + + + + Get-CsUserPolicyPackageRecommendation + + Identity + + > Applicable: Microsoft Teams + The user that will receive policy package recommendations. + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The user that will receive policy package recommendations. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsUserPolicyPackageRecommendation -Identity johndoe@example.com + + Returns recommendations for which policy packages are best suited for johndoe@example.com. The recommendation value per package can either be none, weak, or strong based on how confident the existing signals (e.g. license type) imply a user role. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation + + + Get-CsPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + Get-CsUserPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage + + + Grant-CsUserPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage + + + + + + Get-CsVideoInteropServiceProvider + Get + CsVideoInteropServiceProvider + + Get information about the Cloud Video Interop for Teams. + + + + Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. + + + + Get-CsVideoInteropServiceProvider + + Filter + + A regex string filter on the providers that have been set up for use within the organization. + + String + + String + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + Get-CsVideoInteropServiceProvider + + Identity + + Retrieve the specific provider information by name if is known - returns only those providers that have already been set within the tenant. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + Filter + + A regex string filter on the providers that have been set up for use within the organization. + + String + + String + + + None + + + Identity + + Retrieve the specific provider information by name if is known - returns only those providers that have already been set within the tenant. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + LocalStore + + Internal Microsoft use only. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Get-CsVideoInteropServiceProvider + + Get all of the providers that have been configured for use within the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csvideointeropserviceprovider + + + + + + Grant-CsApplicationAccessPolicy + Grant + CsApplicationAccessPolicy + + Assigns a per-user application access policy to one or more users. After assigning an application access policy to a user, the applications configured in the policy will be authorized to access online meetings on behalf of that user. + + + + This cmdlet assigns a per-user application access policy to one or more users. After assigning an application access policy to a user, the applications configured in the policy will be authorized to access online meetings on behalf of that user. Note: You can assign only 1 application access policy at a time to a particular user. Assigning a new application access policy to a user will override the existing application access policy if any. + + + + Grant-CsApplicationAccessPolicy + + Identity + + Indicates the user (object) ID of the user account to be assigned the per-user application access policy. + + UserIdParameter + + UserIdParameter + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. For example, if the user already have application access policy "A" assigned, and tenant admin assigns "B" globally, then application access policy "A" will take effect for the user. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. Be aware that this parameter is tied to the cmdlet itself instead of to a property of the input object. + + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:ASimplePolicy has a PolicyName equal to ASimplePolicy. + + PSListModifier + + PSListModifier + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. For example, if the user already have application access policy "A" assigned, and tenant admin assigns "B" globally, then application access policy "A" will take effect for the user. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the user (object) ID of the user account to be assigned the per-user application access policy. + + UserIdParameter + + UserIdParameter + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. Be aware that this parameter is tied to the cmdlet itself instead of to a property of the input object. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:ASimplePolicy has a PolicyName equal to ASimplePolicy. + + PSListModifier + + PSListModifier + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------- Assign an application access policy to a user -------- + PS C:\> Grant-CsApplicationAccessPolicy -Identity "dc17674c-81d9-4adb-bfb2-8f6a442e4624" -PolicyName "ASimplePolicy" + + The command shown above assigns the per-user application access policy "ASimplePolicy" to the user with object ID "dc17674c-81d9-4adb-bfb2-8f6a442e4624". + + + + ------ Unassign an application access policy from a user ------ + PS C:\> Grant-CsApplicationAccessPolicy -Identity "dc17674c-81d9-4adb-bfb2-8f6a442e4624" -PolicyName $Null + + In the command shown above, any per-user application access policy previously assigned to the user with user (object) ID "dc17674c-81d9-4adb-bfb2-8f6a442e4624" is unassigned from that user; as a result, applications configured in the policy can no longer access online meetings on behalf of that user. To unassign a per-user policy, set the PolicyName to a null value ($Null). + + + + Assign an application access policy to all users in the tenant + PS C:\> Get-CsOnlineUser | Grant-CsApplicationAccessPolicy -PolicyName "ASimplePolicy" + + The command shown above assigns the per-user application access policy ASimplePolicy to all the users in the tenant. To do this, the command first calls the `Get-CsOnlineUser` cmdlet to get all user accounts enabled for Microsoft Teams or Skype for Business Online. Those user accounts are then piped to the `Grant-CsApplicationAccessPolicy` cmdlet, which assigns each user the application access policy "ASimplePolicy". + + + + Assign an application access policy to users who have not been assigned one + PS C:\> Grant-CsApplicationAccessPolicy -PolicyName "ASimplePolicy" -Global + + The command shown above assigns the per-user application access policy "ASimplePolicy" to all the users in the tenant, except any that have an explicit policy assignment. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy + + + New-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Get-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Set-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Remove-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + + + + Grant-CsCallingLineIdentity + Grant + CsCallingLineIdentity + + Use the `Grant-CsCallingLineIdentity` cmdlet to apply a Caller ID policy to a user account, to a group of users, or to set the tenant Global instance. + + + + You can either assign a Caller ID policy to a specific user, to a group of users, or you can set the Global policy instance. + + + + Grant-CsCallingLineIdentity + + PolicyName + + > Applicable: Microsoft Teams + The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + Grant-CsCallingLineIdentity + + Group + + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + Grant-CsCallingLineIdentity + + Identity + + > Applicable: Microsoft Teams + The Identity of the user to whom the policy is being assigned. User Identities can be specified using the user's SIP address, the user's user principal name (UPN), or the user's ObjectId/Identity. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The Identity of the user to whom the policy is being assigned. User Identities can be specified using the user's SIP address, the user's user principal name (UPN), or the user's ObjectId/Identity. + + String + + String + + + None + + + PassThru + + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + The name (Identity) of the Caller ID policy to be assigned. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Rank + + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsCallingLineIdentity -Identity Ken.Myer@contoso.com -PolicyName CallerIDRedmond + + This example assigns the Caller ID policy with the Identity CallerIDRedmond to the user Ken.Myer@contoso.com + + + + -------------------------- Example 2 -------------------------- + Grant-CsCallingLineIdentity -PolicyName CallerIDSeattle -Global + + This example copies the Caller ID policy CallerIDSeattle to the Global policy instance. + + + + -------------------------- Example 3 -------------------------- + Grant-CsCallingLineIdentity -Group sales@contoso.com -PolicyName CallerIDSeattle -Rank 10 + + This example assigns the Caller ID policy with the Identity CallerIDSeattle to the members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity + + + Set-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity + + + Get-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity + + + Remove-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity + + + New-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity + + + + + + Grant-CsDialoutPolicy + Grant + CsDialoutPolicy + + Use the `Grant-CsDialoutPolicy` cmdlet to assign the tenant global, a group of users, or a per-user outbound calling restriction policy to one or more users. + + + + In Microsoft Teams, outbound calling restriction policies are used to restrict the type of audio conferencing and end user PSTN calls that can be made by users in your organization. The policies apply to all the different PSTN connectivity options for Microsoft Teams; Calling Plan, Direct Routing, and Operator Connect. + To get all the available policies in your organization run `Get-CsOnlineDialOutPolicy`. + + + + Grant-CsDialoutPolicy + + PolicyName + + > Applicable: Microsoft Teams + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DialoutCPCZoneAPSTNDomestic has a PolicyName equal to DialoutCPCZoneAPSTNDomestic. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + This parameter sets the tenant global policy instance. This is the policy that all users in the tenant will get unless they have a specific policy instance assigned. + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + Returns the results of the command. By default, this cmdlet does not generate any output. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsDialoutPolicy + + Group + + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DialoutCPCZoneAPSTNDomestic has a PolicyName equal to DialoutCPCZoneAPSTNDomestic. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + Returns the results of the command. By default, this cmdlet does not generate any output. + + + SwitchParameter + + + False + + + Rank + + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsDialoutPolicy + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of three formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's ObjectId/Identity. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DialoutCPCZoneAPSTNDomestic has a PolicyName equal to DialoutCPCZoneAPSTNDomestic. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + Returns the results of the command. By default, this cmdlet does not generate any output. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + This parameter sets the tenant global policy instance. This is the policy that all users in the tenant will get unless they have a specific policy instance assigned. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of three formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's ObjectId/Identity. + + String + + String + + + None + + + PassThru + + > Applicable: Microsoft Teams + Returns the results of the command. By default, this cmdlet does not generate any output. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DialoutCPCZoneAPSTNDomestic has a PolicyName equal to DialoutCPCZoneAPSTNDomestic. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Rank + + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. + The cmdlet is not supported for Teams resource accounts. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsDialoutPolicy -Identity "ken.myer@contoso.com" -PolicyName "DialoutCPCandPSTNInternational" + + This example assigns the per-user outbound calling restriction policy DialoutCPCandPSTNInternational to the user with the User Principal Name "ken.myer@contoso.com". + + + + -------------------------- Example 2 -------------------------- + Grant-CsDialoutPolicy -Identity "ken.myer@contoso.com" -PolicyName $Null + + In this example, any per-user outbound calling restriction policy previously assigned to the user ken.myer@contoso.com is unassigned from that user; as a result, Ken Myer will be managed by the global outbound calling restriction policy. To unassign a per-user policy, set the PolicyName to a null value ($Null). + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineUser | Grant-CsDialoutPolicy -PolicyName "DialoutCPCInternationalPSTNDisabled" + + This example assigns the per-user outbound calling restriction policy DialoutCPCInternationalPSTNDisabled to all the users in your organization. + + + + -------------------------- Example 4 -------------------------- + Grant-CsDialoutPolicy -Global -PolicyName "DialoutCPCandPSTNInternational" + + This example sets the tenant global policy instance to DialoutCPCandPSTNInternational. + + + + -------------------------- Example 5 -------------------------- + Grant-CsDialoutPolicy -Group support@contoso.com -Rank 10 -PolicyName "DialoutCPCandPSTNInternational" + + This example assigns the policy instance "DialoutCPCandPSTNInternational" to the members of the group support@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csdialoutpolicy + + + Get-CsOnlineDialOutPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialoutpolicy + + + + + + Grant-CsGroupPolicyPackageAssignment + Grant + CsGroupPolicyPackageAssignment + + This cmdlet assigns a policy package to a group in a tenant. + + + + This cmdlet assigns a policy package to a group in a tenant. The available policy packages and their definitions can be found by running Get-CsPolicyPackage. For more information on policy packages, please review Manage policy packages in Microsoft Teams (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages). + Policy rankings can be optionally specified for each policy type in the package to determine which policies will be assigned to the user in case they belong to two or more groups. If policy rankings for a policy type is not specified, one of two things can happen: + - If the policy type was previously assigned to the group, the ranking for the policy type will not change. + - If the policy type was not previously assigned to the group, the ranking for the policy type will be ranked last. + + Finally, if a user was directly assigned a package, direct assignment takes precedence over group assignment. For more information on policy rankings and group policy assignments, please review the description section under New-CsGroupPolicyAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment#description). + + + + Grant-CsGroupPolicyPackageAssignment + + GroupId + + > Applicable: Microsoft Teams + A group id in the tenant. It can either be a group's object id or a group's email address. + + String + + String + + + None + + + PackageName + + > Applicable: Microsoft Teams + The name of a policy package. All policy package names can be found by running Get-CsPolicyPackage. To reset the currently assigned package value for the group, use $null or an empty string "". This will not remove any existing policy assignments to the group. + + String + + String + + + None + + + PolicyRankings + + > Applicable: Microsoft Teams + The policy rankings for each of the policy types in the package. To specify the policy rankings, follow this format: "<PolicyType>, <PolicyRank>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). Policy rank must be a number greater than or equal to 1. + + String[] + + String[] + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + GroupId + + > Applicable: Microsoft Teams + A group id in the tenant. It can either be a group's object id or a group's email address. + + String + + String + + + None + + + PackageName + + > Applicable: Microsoft Teams + The name of a policy package. All policy package names can be found by running Get-CsPolicyPackage. To reset the currently assigned package value for the group, use $null or an empty string "". This will not remove any existing policy assignments to the group. + + String + + String + + + None + + + PolicyRankings + + > Applicable: Microsoft Teams + The policy rankings for each of the policy types in the package. To specify the policy rankings, follow this format: "<PolicyType>, <PolicyRank>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). Policy rank must be a number greater than or equal to 1. + + String[] + + String[] + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsGroupPolicyPackageAssignment -GroupId 1bc0b35f-095a-4a37-a24c-c4b6049816ab -PackageName Education_PrimaryStudent + + Assigns the Education_PrimaryStudent policy package to the group. The group will receive the lowest policy ranking for each policy type in the Education_PrimaryStudent package if the policy type is newly assigned to the group. If a policy type was already assigned to the group, the group will receive the same policy ranking as before. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsGroupPolicyPackageAssignment -GroupId 1bc0b35f-095a-4a37-a24c-c4b6049816ab -PackageName Education_Teacher -PolicyRankings "TeamsMessagingPolicy, 1", "TeamsMeetingPolicy, 1", "TeamsCallingPolicy, 2" + + Assigns the Education_Teacher policy package to the group. The group will receive a policy ranking of 1 for TeamsMessagingPolicy policy type, a policy ranking of 1 for TeamsMeetingPolicy policy type and a policy ranking of 2 for TeamsCallingPolicy policy type. For each unspecified policy type in the package, the group will receive the lowest policy ranking if it is newly assigned to the group. If a policy type was already assigned to the group, the group will receive the same policy ranking as before. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csgrouppolicypackageassignment + + + Get-CsPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + New-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment + + + + + + Grant-CsOnlineAudioConferencingRoutingPolicy + Grant + CsOnlineAudioConferencingRoutingPolicy + + This cmdlet applies an instance of the Online Audio Conferencing Routing policy to users or groups in a tenant. + + + + Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. + To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." + The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. + Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. + + + + Grant-CsOnlineAudioConferencingRoutingPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + This can be used to apply the policy to the entire tenant. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsOnlineAudioConferencingRoutingPolicy + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsOnlineAudioConferencingRoutingPolicy + + Identity + + Specifies the identity of the target user. + Example: <testuser@test.onmicrosoft.com> + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + This can be used to apply the policy to the entire tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: <testuser@test.onmicrosoft.com> + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsOnlineAudioConferencingRoutingPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com + + Applies the policy "test" to the user "<testuser@test.onmicrosoft.com>". + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsOnlineAudioConferencingRoutingPolicy -PolicyName Test -Identity Global + + Applies the policy "test" to the entire tenant. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsOnlineAudioConferencingRoutingPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test + + Applies the policy "test" to the specified group. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlineaudioconferencingroutingpolicy + + + New-CsOnlineAudioConferencingRoutingPolicy + + + + Remove-CsOnlineAudioConferencingRoutingPolicy + + + + Set-CsOnlineAudioConferencingRoutingPolicy + + + + Get-CsOnlineAudioConferencingRoutingPolicy + + + + + + + Grant-CsOnlineVoicemailPolicy + Grant + CsOnlineVoicemailPolicy + + Assigns an online voicemail policy to a user account, to a group of users, or set the tenant Global instance. Online voicemail policies manage usages for Voicemail service. + + + + This cmdlet assigns an existing user-specific online voicemail policy to a user, a group of users, or the Global policy instance. + + + + Grant-CsOnlineVoicemailPolicy + + Group + + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + A unique identifier(name) of the policy. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP address or an Object ID. + + System.String + + System.String + + + None + + + PassThru + + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsOnlineVoicemailPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + String + + String + + + None + + + Group + + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP address or an Object ID. + + System.String + + System.String + + + None + + + PassThru + + > Applicable: Microsoft Teams + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsOnlineVoicemailPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + A unique identifier(name) of the policy. + + String + + String + + + None + + + Rank + + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsOnlineVoicemailPolicy -Identity "user@contoso.com" -PolicyName TranscriptionDisabled + + The command shown in Example 1 assigns the per-user online voicemail policy TranscriptionDisabled to a single user user@contoso.com. + + + + -------------------------- Example 2 -------------------------- + Grant-CsOnlineVoicemailPolicy -Group sales@contoso.com -Rank 10 -PolicyName TranscriptionDisabled + + The command shown in Example 2 assigns the online voicemail policy TranscriptionDisabled to the members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy + + + Get-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy + + + Set-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy + + + New-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy + + + Remove-CsOnlineVoicemailPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy + + + + + + Grant-CsOnlineVoiceRoutingPolicy + Grant + CsOnlineVoiceRoutingPolicy + + Assigns a per-user online voice routing policy to one user, a group of users, or sets the Global policy instance. Online voice routing policies manage online PSTN usages for Phone System users. + + + + Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Teams users an online voice routing policy enables those users to receive and to place phone calls to the public switched telephone network by using your on-premises SIP trunks. + Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Teams. Among other things, you will also need to enable those users for Phone System and will need to assign them an appropriate online voice policy. + + + + Grant-CsOnlineVoiceRoutingPolicy + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to RedmondOnlineVoiceRoutingPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. By default, the `Grant-CsOnlineVoiceRoutingPolicy` cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + + Grant-CsOnlineVoiceRoutingPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to RedmondOnlineVoiceRoutingPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. By default, the `Grant-CsOnlineVoiceRoutingPolicy` cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsOnlineVoiceRoutingPolicy + + Identity + + Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to RedmondOnlineVoiceRoutingPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. By default, the `Grant-CsOnlineVoiceRoutingPolicy` cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. By default, the `Grant-CsOnlineVoiceRoutingPolicy` cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:RedmondOnlineVoiceRoutingPolicy has a PolicyName equal to RedmondOnlineVoiceRoutingPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + + System.Object + + + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsOnlineVoiceRoutingPolicy -Identity Ken.Myer@contoso.com -PolicyName "RedmondOnlineVoiceRoutingPolicy" + + The command shown in Example 1 assigns the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy to the user ken.myer@contoso.com. + + + + -------------------------- Example 2 -------------------------- + Grant-CsOnlineVoiceRoutingPolicy -Identity Ken.Myer@contoso.com -PolicyName $Null + + In Example 2, any per-user online voice routing policy previously assigned to the user Ken Myer is unassigned from that user; as a result, Ken Myer will be managed by the global online voice routing policy. To unassign a per-user policy, set the PolicyName to a null value ($null). + + + + -------------------------- Example 3 -------------------------- + Get-CsOnlineUser | Grant-CsOnlineVoiceRoutingPolicy -PolicyName "RedmondOnlineVoiceRoutingPolicy" + + Example 3 assigns the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy to all the users in the tenant. To do this, the command first calls the `Get-CsOnlineUser` cmdlet to get all user accounts enabled for Microsoft Teams or Skype for Business Online. Those user accounts are then piped to the `Grant-CsOnlineVoiceRoutingPolicy` cmdlet, which assigns each user the online voice routing policy RedmondOnlineVoiceRoutingPolicy. + + + + -------------------------- Example 4 -------------------------- + Grant-CsOnlineVoiceRoutingPolicy -PolicyName "RedmondOnlineVoiceRoutingPolicy" -Global + + Example 4 assigns the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy as the global online voice routing policy. This affects all the users in the tenant, except any that have an explicit policy assignment. + + + + -------------------------- Example 5 -------------------------- + Grant-CsOnlineVoiceRoutingPolicy -Group sales@contoso.com -Rank 10 -PolicyName "RedmondOnlineVoiceRoutingPolicy" + + Example 5 assigns the online voice routing policy RedmondOnlineVoiceRoutingPolicy to all members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy + + + New-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy + + + Get-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy + + + Set-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy + + + Remove-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy + + + + + + Grant-CsTeamsAudioConferencingPolicy + Grant + CsTeamsAudioConferencingPolicy + + Assigns a Teams audio-conferencing policy at the per-user scope. Audio conferencing policies are used to manage audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. + + + + Granular control over which audio conferencing features your users can or cannot use is an important feature for many organizations. This cmdlet lets you assign a teams audio conferencing policy at the per-user scope. Audio conferencing policies determine the audio-conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. + + + + Grant-CsTeamsAudioConferencingPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsAudioConferencingPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsAudioConferencingPolicy + + Identity + + Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: 1) the user's SIP address; 2) the user's user principal name (UPN); or, 3) the user's Active Directory display name (for example, Ken Myer). + + String + + String + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account to be assigned the per-user online voice routing policy. User Identities can be specified using one of the following formats: 1) the user's SIP address; 2) the user's user principal name (UPN); or, 3) the user's Active Directory display name (for example, Ken Myer). + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. Enables you to pass a user object through the pipeline that represents the user account being assigned the online voice routing policy. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + String + + + + + + + + + + Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Grant-CsTeamsAudioCOnferencingPolicy -identity "Ken Myer" -PolicyName "Emea Users" + + In this example, a user with identity "Ken Myer" is being assigned the "Emea Users" policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy + + + Get-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy + + + Set-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy + + + Remove-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaudioconferencingpolicy + + + + + + Grant-CsTeamsCallHoldPolicy + Grant + CsTeamsCallHoldPolicy + + Assigns a per-user Teams call hold policy to one or more users. The Teams call hold policy is used to customize the call hold experience for Teams clients. + + + + Teams call hold policies are used to customize the call hold experience for teams clients. When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. + Assigning a teams call hold policy to a user sets an audio file to be played during the duration of the hold. + + + + Grant-CsTeamsCallHoldPolicy + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + For example, a policy with the Identity Tag:ContosoPartnerCallHoldPolicy has a PolicyName equal to ContosoPartnerCallHoldPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsCallHoldPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + For example, a policy with the Identity Tag:ContosoPartnerCallHoldPolicy has a PolicyName equal to ContosoPartnerCallHoldPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsCallHoldPolicy + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams call hold policy. User Identities can be specified using one of the following formats: + - The user's SIP address; + - The user's user principal name (UPN); + - The user's Active Directory display name (for example, Ken Myer). + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + For example, a policy with the Identity Tag:ContosoPartnerCallHoldPolicy has a PolicyName equal to ContosoPartnerCallHoldPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams call hold policy. User Identities can be specified using one of the following formats: + - The user's SIP address; + - The user's user principal name (UPN); + - The user's Active Directory display name (for example, Ken Myer). + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + For example, a policy with the Identity Tag:ContosoPartnerCallHoldPolicy has a PolicyName equal to ContosoPartnerCallHoldPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsTeamsCallHoldPolicy -Identity 'KenMyer@contoso.com' -PolicyName 'ContosoPartnerTeamsCallHoldPolicy' + + The command shown in Example 1 assigns the per-user Teams call hold policy, ContosoPartnerTeamsCallHoldPolicy, to the user with the user principal name (UPN) "KenMyer@contoso.com". + + + + -------------------------- Example 2 -------------------------- + Grant-CsTeamsCallHoldPolicy -Identity 'Ken Myer' -PolicyName 'ContosoPartnerTeamsCallHoldPolicy' + + The command shown in Example 2 assigns the per-user Teams call hold policy, ContosoPartnerTeamsCallHoldPolicy, to the user with the display name "Ken Myer". + + + + -------------------------- Example 3 -------------------------- + Grant-CsTeamsCallHoldPolicy -Identity 'Ken Myer' -PolicyName $null + + In Example 3, any per-user Teams call hold policy previously assigned to the user "Ken Myer" is revoked. As a result, the user will be managed by the global Teams call hold policy. + + + + -------------------------- Example 4 -------------------------- + Grant-CsTeamsCallHoldPolicy -Global -PolicyName 'ContosoPartnerTeamsCallHoldPolicy' + + The command shown in Example 4 sets the Teams call hold policy, ContosoPartnerTeamsCallHoldPolicy, as the Global policy which will apply to all users in your tenant. + + + + -------------------------- Example 5 -------------------------- + Grant-CsTeamsCallHoldPolicy -Group sales@contoso.com -Rank 10 -PolicyName 'ContosoPartnerTeamsCallHoldPolicy' + + The command shown in Example 5 sets the Teams call hold policy, ContosoPartnerTeamsCallHoldPolicy, to the members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy + + + New-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy + + + Get-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy + + + Set-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy + + + Remove-CsTeamsCallHoldPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy + + + + + + Grant-CsTeamsCallParkPolicy + Grant + CsTeamsCallParkPolicy + + The Grant-CsTeamsCallParkPolicy cmdlet lets you assign a custom policy to a specific user. + + + + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. + NOTE: the call park feature currently only available in desktop, web clients and mobile clients. Call Park functionality is currently on the roadmap for Teams IP Phones. Supported with TeamsOnly mode for users with the Phone System license + + + + Grant-CsTeamsCallParkPolicy + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:"). For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy. + If you set PolicyName to a null value, the command will unassign any per-user policy assigned to the user. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + PassThru + + If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsCallParkPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:"). For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy. + If you set PolicyName to a null value, the command will unassign any per-user policy assigned to the user. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsCallParkPolicy + + Identity + + The User ID of the user to whom the policy is being assigned. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:"). For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy. + If you set PolicyName to a null value, the command will unassign any per-user policy assigned to the user. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The User ID of the user to whom the policy is being assigned. + + String + + String + + + None + + + PassThru + + If present, causes the cmdlet to pass the user object (or objects) through the Windows PowerShell pipeline. By default, the cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope ("tag:"). For example, a policy that has the Identity tag:Redmond has a PolicyName equal to Redmond; a policy with the Identity tag:RedmondConferencingPolicy has a PolicyName equal to RedmondConferencingPolicy. + If you set PolicyName to a null value, the command will unassign any per-user policy assigned to the user. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsTeamsCallParkPolicy -PolicyName SalesPolicy -Identity Ken.Myer@contoso.com + + Assigns a custom policy "Sales Policy" to the user Ken Myer. + + + + -------------------------- Example 2 -------------------------- + Grant-CsTeamsCallParkPolicy -Group sales@contoso.com -Rank 10 -PolicyName SalesPolicy + + Assigns a custom policy "Sales Policy" to the members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallparkpolicy + + + Set-CsTeamsCallParkPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallparkpolicy + + + Get-CsTeamsCallParkPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallparkpolicy + + + New-CsTeamsCallParkPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallparkpolicy + + + Remove-CsTeamsCallParkPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallparkpolicy + + + + + + Grant-CsTeamsChannelsPolicy + Grant + CsTeamsChannelsPolicy + + The Grant-CsTeamsChannelsPolicy allows you to assign specific policies to users that have been created in your tenant. + + + + The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. + + + + Grant-CsTeamsChannelsPolicy + + PolicyName + + Specify the policy that should be granted to the user + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft usage only. + + Fqdn + + Fqdn + + + None + + + Global + + Use the -Global flag to convert the values of the Global policy to the values of the specified policy. + + + SwitchParameter + + + False + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsChannelsPolicy + + PolicyName + + Specify the policy that should be granted to the user + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft usage only. + + Fqdn + + Fqdn + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsChannelsPolicy + + Identity + + Specify the user to whom the policy is being assigned. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + Specify the policy that should be granted to the user + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft usage only. + + Fqdn + + Fqdn + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft usage only. + + Fqdn + + Fqdn + + + None + + + Global + + Use the -Global flag to convert the values of the Global policy to the values of the specified policy. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Specify the user to whom the policy is being assigned. + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Specify the policy that should be granted to the user + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsChannelsPolicy -Identity studentaccount@company.com -PolicyName StudentPolicy + + Assigns a custom policy to a specific user in an organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy + + + + + + Grant-CsTeamsComplianceRecordingPolicy + Grant + CsTeamsComplianceRecordingPolicy + + Assigns a per-user Teams recording policy to one or more users. This policy is used to govern automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. + + + + Teams recording policies are used in automatic policy-based recording scenarios. When Microsoft Teams users participate in meetings or make or receive calls, the policy-based recording applications i.e. bots associated with the user's Teams recording policy are invited into the call or meeting to record audio, video and video-based screen sharing activity. + Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. + Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application. Please refer to the documentation of the CsOnlineApplicationInstance cmdlets for information on how to create an application instance of a policy-based recording application. + Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. + + + + Grant-CsTeamsComplianceRecordingPolicy + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope i.e. the "Tag:" prefix. For example, a policy with the Identity Tag:ContosoPartnerComplianceRecordingPolicy has a PolicyName equal to ContosoPartnerComplianceRecordingPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams recording policy. By default, the Grant-CsTeamsComplianceRecordingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsComplianceRecordingPolicy + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope i.e. the "Tag:" prefix. For example, a policy with the Identity Tag:ContosoPartnerComplianceRecordingPolicy has a PolicyName equal to ContosoPartnerComplianceRecordingPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams recording policy. By default, the Grant-CsTeamsComplianceRecordingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsComplianceRecordingPolicy + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams recording policy. User Identities can be specified using one of the following formats: + - The user's SIP address; + - The user's user principal name (UPN); + - The user's Active Directory display name (for example, Ken Myer). + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope i.e. the "Tag:" prefix. For example, a policy with the Identity Tag:ContosoPartnerComplianceRecordingPolicy has a PolicyName equal to ContosoPartnerComplianceRecordingPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams recording policy. By default, the Grant-CsTeamsComplianceRecordingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams recording policy. User Identities can be specified using one of the following formats: + - The user's SIP address; + - The user's user principal name (UPN); + - The user's Active Directory display name (for example, Ken Myer). + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams recording policy. By default, the Grant-CsTeamsComplianceRecordingPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope i.e. the "Tag:" prefix. For example, a policy with the Identity Tag:ContosoPartnerComplianceRecordingPolicy has a PolicyName equal to ContosoPartnerComplianceRecordingPolicy. + To revoke a per-user policy previously assigned to a user, set the PolicyName to a null value ($null). + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose Teams recording policies are being queried. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Microsoft Teams or Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsComplianceRecordingPolicy -Identity 'Ken Myer' -PolicyName 'ContosoPartnerComplianceRecordingPolicy' + + The command shown in Example 1 assigns the per-user Teams recording policy ContosoPartnerComplianceRecordingPolicy to the user with the display name "Ken Myer". + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsComplianceRecordingPolicy -Identity 'Ken Myer' -PolicyName $null + + In Example 2, any per-user Teams recording policy previously assigned to the user "Ken Myer" is revoked. As a result, the user will be managed by the global Teams recording policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy + + + New-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy + + + Set-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy + + + Remove-CsTeamsComplianceRecordingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy + + + Get-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication + + + Set-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication + + + Remove-CsTeamsComplianceRecordingApplication + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication + + + New-CsTeamsComplianceRecordingPairedApplication + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication + + + + + + Grant-CsTeamsCortanaPolicy + Grant + CsTeamsCortanaPolicy + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. + + + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. Specifically, these specify if a user can use Cortana voice assistant in Microsoft Teams and Cortana invocation behavior via CortanaVoiceInvocationMode parameter - * Disabled - Cortana voice assistant is disabled + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + This cmdlet lets you assign a Teams Cortana policy at the per-user scope. + + + + Grant-CsTeamsCortanaPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsCortanaPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsCortanaPolicy + + Identity + + Indicates the identity of the user account the policy should be assigned to. User identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the identity of the user account the policy should be assigned to. User identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsCortanaPolicy -identity "Ken Myer" -PolicyName MyCortanaPolicy + + In this example, a user with identity "Ken Myer" is being assigned the MyCortanaPolicy + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy + + + + + + Grant-CsTeamsEmergencyCallingPolicy + Grant + CsTeamsEmergencyCallingPolicy + + This cmdlet assigns a Teams Emergency Calling policy. + + + + This cmdlet assigns a Teams Emergency Calling policy to a user, a group of users, or to the Global policy instance. Emergency Calling policy is used for the life cycle of emergency calling experience for the security desk and Teams client location experience. + + + + Grant-CsTeamsEmergencyCallingPolicy + + PolicyName + + The Identity of the Teams Emergency Calling policy to apply to the user. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEmergencyCallingPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + The Identity of the Teams Emergency Calling policy to apply to the user. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEmergencyCallingPolicy + + Identity + + Indicates the Identity of the user account the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + The Identity of the Teams Emergency Calling policy to apply to the user. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account the policy should be assigned to. + + String + + String + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The Identity of the Teams Emergency Calling policy to apply to the user. To remove an existing user level policy assignment, specify PolicyName as $null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module version 4.5.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsTeamsEmergencyCallingPolicy -Identity user1 -PolicyName TestTECP + + This example assigns the Teams Emergency Calling policy TestTECP to a user + + + + -------------------------- Example 2 -------------------------- + Grant-CsTeamsEmergencyCallingPolicy -Global -PolicyName SalesTECP + + Assigns the Teams Emergency Calling policy called "SalesTECP" to the Global policy instance. This sets the parameters in the Global policy instance to the values found in the SalesTECP instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy + + + New-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy + + + Get-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy + + + Remove-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy + + + Set-CsTeamsEmergencyCallingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy + + + + + + Grant-CsTeamsEmergencyCallRoutingPolicy + Grant + CsTeamsEmergencyCallRoutingPolicy + + This cmdlet assigns a Teams Emergency Call Routing policy. + + + + This cmdlet assigns a Teams Emergency Call Routing policy to a user, a group of users, or to the Global policy instance. Teams Emergency Call Routing policy is used for the life cycle of emergency call routing - emergency numbers and routing configuration. + + + + Grant-CsTeamsEmergencyCallRoutingPolicy + + PolicyName + + The Identity of the Teams Emergency Call Routing policy to apply. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEmergencyCallRoutingPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + The Identity of the Teams Emergency Call Routing policy to apply. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEmergencyCallRoutingPolicy + + Identity + + Indicates the Identity of the user account the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + The Identity of the Teams Emergency Call Routing policy to apply. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account the policy should be assigned to. + + String + + String + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The Identity of the Teams Emergency Call Routing policy to apply. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + The GrantToGroup syntax is supported in Teams PowerShell Module version 4.5.1-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsTeamsEmergencyCallRoutingPolicy -Identity user1 -PolicyName Test + + This example assigns a Teams Emergency Call Routing policy (Test) to a user (user1). + + + + -------------------------- Example 2 -------------------------- + Grant-CsTeamsEmergencyCallRoutingPolicy -Group sales@contoso.com -Rank 10 -PolicyName Test + + This example assigns the Teams Emergency Call Routing policy (Test) to the members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy + + + New-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy + + + Set-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy + + + Get-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy + + + Remove-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy + + + + + + Grant-CsTeamsEnhancedEncryptionPolicy + Grant + CsTeamsEnhancedEncryptionPolicy + + Cmdlet to assign a specific Teams enhanced encryption Policy to a user. + + + + Cmdlet to assign a specific Teams enhanced encryption Policy to a user. + The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for End-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. + + + + Grant-CsTeamsEnhancedEncryptionPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"). A policy that has an identity of "Tag:ContosoPartnerTeamsEnhancedEncryptionPolicy" has a PolicyName of "ContosoPartnerTeamsEnhancedEncryptionPolicy". If you set PolicyName to a null value, then the command will unassign any individual policy assigned to the user. For example: Grant-CsTeamsEnhancedEncryptionPolicy -Identity "Ken Myer" -PolicyName $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEnhancedEncryptionPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"). A policy that has an identity of "Tag:ContosoPartnerTeamsEnhancedEncryptionPolicy" has a PolicyName of "ContosoPartnerTeamsEnhancedEncryptionPolicy". If you set PolicyName to a null value, then the command will unassign any individual policy assigned to the user. For example: Grant-CsTeamsEnhancedEncryptionPolicy -Identity "Ken Myer" -PolicyName $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEnhancedEncryptionPolicy + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + + XdsIdentity + + XdsIdentity + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"). A policy that has an identity of "Tag:ContosoPartnerTeamsEnhancedEncryptionPolicy" has a PolicyName of "ContosoPartnerTeamsEnhancedEncryptionPolicy". If you set PolicyName to a null value, then the command will unassign any individual policy assigned to the user. For example: Grant-CsTeamsEnhancedEncryptionPolicy -Identity "Ken Myer" -PolicyName $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + + XdsIdentity + + XdsIdentity + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEnhancedEncryptionPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"). A policy that has an identity of "Tag:ContosoPartnerTeamsEnhancedEncryptionPolicy" has a PolicyName of "ContosoPartnerTeamsEnhancedEncryptionPolicy". If you set PolicyName to a null value, then the command will unassign any individual policy assigned to the user. For example: Grant-CsTeamsEnhancedEncryptionPolicy -Identity "Ken Myer" -PolicyName $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Object + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Grant-CsTeamsEnhancedEncryptionPolicy -Identity 'KenMyer@contoso.com' -PolicyName 'ContosoPartnerTeamsEnhancedEncryptionPolicy' + + The command shown in Example 1 assigns the per-user Teams enhanced encryption policy, ContosoPartnerTeamsEnhancedEncryptionPolicy, to the user with the user principal name (UPN) "KenMyer@contoso.com". + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Grant-CsTeamsEnhancedEncryptionPolicy -Identity 'Ken Myer' -PolicyName $null + + In Example 2, any per-user Teams enhanced encryption policy previously assigned to the user "Ken Myer" is revoked. + As a result, the user will be managed by the global Teams enhanced encryption policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy + + + Get-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy + + + New-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy + + + Set-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy + + + Remove-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy + + + + + + Grant-CsTeamsEventsPolicy + Grant + CsTeamsEventsPolicy + + Assigns Teams Events policy to a user, group of users, or the entire tenant. Note that this policy is currently still in preview. + + + + Assigns Teams Events policy to a user, group of users, or the entire tenant. + TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. + + + + Grant-CsTeamsEventsPolicy + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PassThru + + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEventsPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsEventsPolicy + + Identity + + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PassThru + + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsEventsPolicy -Identity "user1@contoso.com" -Policy DisablePublicWebinars + + The command shown in Example 1 assigns the per-user Teams Events policy, DisablePublicWebinars, to the user with the user principal name (UPN) "user1@contoso.com". + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsEventsPolicy -Identity "user1@contoso.com" -Policy $null + + The command shown in Example 2 revokes the per-user Teams Events policy for the user with the user principal name (UPN) "user1@contoso.com". As a result, the user will be managed by the global Teams Events policy. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsEventsPolicy -Group "sales@contoso.com" -Rank 10 -Policy DisablePublicWebinars + + The command shown in Example 3 assigns the Teams Events policy, DisablePublicWebinars, to the members of the group "sales@contoso.com". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamseventspolicy + + + + + + Grant-CsTeamsFeedbackPolicy + Grant + CsTeamsFeedbackPolicy + + Use this cmdlet to grant a specific Teams Feedback policy to a user (the ability to send feedback about Teams to Microsoft and whether they receive the survey). + + + + Grants a specific Teams Feedback policy to a user (the ability to send feedback about Teams to Microsoft and whether they receive the survey) or to set a specific Teams feedback policy the new effective global policy. + + + + Grant-CsTeamsFeedbackPolicy + + PolicyName + + The identity of the policy to be granted. + + Object + + Object + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft use. + + Object + + Object + + + None + + + Global + + Use this parameter to make the specified policy in -PolicyName the new effective global policy. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsFeedbackPolicy + + PolicyName + + The identity of the policy to be granted. + + Object + + Object + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft use. + + Object + + Object + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Internal Microsoft use. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsFeedbackPolicy + + Identity + + Indicates the identity of the user account the policy should be assigned to. + + Object + + Object + + + None + + + PolicyName + + The identity of the policy to be granted. + + Object + + Object + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft use. + + Object + + Object + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft use. + + Object + + Object + + + None + + + Global + + Use this parameter to make the specified policy in -PolicyName the new effective global policy. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the identity of the user account the policy should be assigned to. + + Object + + Object + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The identity of the policy to be granted. + + Object + + Object + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Internal Microsoft use. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsFeedbackPolicy -PolicyName "New Hire Feedback Policy" -Identity kenmyer@litwareinc.com + + In this example, the policy "New Hire Feedback Policy" is granted to the user kenmyer@litwareinc.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfeedbackpolicy + + + + + + Grant-CsTeamsIPPhonePolicy + Grant + CsTeamsIPPhonePolicy + + Use the Grant-CsTeamsIPPhonePolicy cmdlet to assign a set of Teams phone policies to a user account or group of user accounts. Teams phone policies determine the features that are available to users of Teams phones. For example, you might enable the hot desking feature for some users while disabling it for others. + + + + Use the Grant-CsTeamsIPPhonePolicy cmdlet to assign a set of Teams phone policies to a phone signed in with an account that may be used by end users, common area phones, or meeting room accounts. + Note: Assigning a per user policy will override any global policy taking effect against the respective user account. + + + + Grant-CsTeamsIPPhonePolicy + + PolicyName + + The Identity of the Teams phone policy to apply to the user. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Microsoft Internal Use Only. + + Object + + Object + + + None + + + Global + + Use this parameter to make the specified policy in -PolicyName the new effective global policy. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Tenant + + Microsoft internal usage only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsIPPhonePolicy + + PolicyName + + The Identity of the Teams phone policy to apply to the user. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Microsoft Internal Use Only. + + Object + + Object + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Microsoft internal usage only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsIPPhonePolicy + + Identity + + Indicates the identity of the user account the policy should be assigned to. + + Object + + Object + + + None + + + PolicyName + + The Identity of the Teams phone policy to apply to the user. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Microsoft Internal Use Only. + + Object + + Object + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Tenant + + Microsoft internal usage only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + Microsoft Internal Use Only. + + Object + + Object + + + None + + + Global + + Use this parameter to make the specified policy in -PolicyName the new effective global policy. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the identity of the user account the policy should be assigned to. + + Object + + Object + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The Identity of the Teams phone policy to apply to the user. + + XdsIdentity + + XdsIdentity + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Microsoft internal usage only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsIPPhonePolicy -Identity Foyer1@contoso.com -PolicyName CommonAreaPhone + + This example shows assignment of the CommonAreaPhone policy to user account Foyer1@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsipphonepolicy + + + + + + Grant-CsTeamsMediaLoggingPolicy + Grant + CsTeamsMediaLoggingPolicy + + Assigns Teams Media Logging policy to a user or entire tenant. + + + + Assigns Teams Media Logging policy to a user or entire tenant. TeamsMediaLoggingPolicy allows administrators to enable media logging for users. When assigned, it will enable media logging for the user overriding other settings. After unassigning the policy, media logging setting will revert to the previous value. + + + + Grant-CsTeamsMediaLoggingPolicy + + PolicyName + + > Applicable: Microsoft Teams + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". + If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + When this cmdlet is used with `-Global` identity, the policy applies to all users in the tenant, except any that have an explicit policy assignment. For example, if the user already has Media Logging policy set to "Enabled", and tenant admin assigns "$null" globally, the user will still have Media Logging policy "Enabled". + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMediaLoggingPolicy + + PolicyName + + > Applicable: Microsoft Teams + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". + If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + > Applicable: Microsoft Teams + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMediaLoggingPolicy + + Identity + + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". + If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + > Applicable: Microsoft Teams + When this cmdlet is used with `-Global` identity, the policy applies to all users in the tenant, except any that have an explicit policy assignment. For example, if the user already has Media Logging policy set to "Enabled", and tenant admin assigns "$null" globally, the user will still have Media Logging policy "Enabled". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PassThru + + > Applicable: Microsoft Teams + Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsMediaLoggingPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), e.g. a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + Note that Teams Media Logging policy has only one instance that has PolicyName "Enabled". + If you set PolicyName to a null value, the command will unassign any individual policy assigned to the user. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Grant-CsTeamsMediaLoggingPolicy -Identity 'KenMyer@contoso.com' -PolicyName Enabled + + Assign Teams Media Logging policy to a single user with the user principal name (UPN) "KenMyer@contoso.com". This will enable media logging for the user. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Grant-CsTeamsMediaLoggingPolicy -Identity 'KenMyer@contoso.com' -PolicyName $null + + Unassign Teams Media Logging policy from a single user with the user principal name (UPN) "KenMyer@contoso.com". This will revert media logging setting to the previous value. + + + + -------------------------- EXAMPLE 3 -------------------------- + PS C:\> Grant-CsTeamsMediaLoggingPolicy -Global -PolicyName Enabled + + Assign Teams Media Logging policy to the entire tenant. Note that this will enable logging for every single user in the tenant without a possibility to disable it for individual users. + + + + -------------------------- EXAMPLE 4 -------------------------- + PS C:\> Grant-CsTeamsMediaLoggingPolicy -Global -PolicyName $null + + Unassign Teams Media Logging policy from the entire tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmedialoggingpolicy + + + Get-CsTeamsMediaLoggingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmedialoggingpolicy + + + + + + Grant-CsTeamsMeetingBroadcastPolicy + Grant + CsTeamsMeetingBroadcastPolicy + + Use this cmdlet to assign a policy to a user. + + + + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. + + + + Grant-CsTeamsMeetingBroadcastPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Not applicable to online service. + + Fqdn + + Fqdn + + + None + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMeetingBroadcastPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Not applicable to online service. + + Fqdn + + Fqdn + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMeetingBroadcastPolicy + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Not applicable to online service. + + Fqdn + + Fqdn + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + Not applicable to online service. + + Fqdn + + Fqdn + + + None + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbroadcastpolicy + + + + + + Grant-CsTeamsMeetingPolicy + Grant + CsTeamsMeetingPolicy + + Assigns a teams meeting policy at the per-user scope. The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users + + + + Assigns a teams meeting policy at the per-user scope. The CsTeamsMeetingPolicy cmdlets enable administrators to control the type of meetings that users can create or the features that they can access while in a meeting. It also helps determine how meetings deal with anonymous or external users + + + + Grant-CsTeamsMeetingPolicy + + Identity + + > Applicable: Microsoft Teams + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + {{ Fill DomainController Description }} + + Fqdn + + Fqdn + + + None + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + Grant-CsTeamsMeetingPolicy + + Identity + + > Applicable: Microsoft Teams + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + {{ Fill DomainController Description }} + + Fqdn + + Fqdn + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + + + DomainController + + > Applicable: Microsoft Teams + {{ Fill DomainController Description }} + + Fqdn + + Fqdn + + + None + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsMeetingPolicy -identity "Ken Myer" -PolicyName StudentMeetingPolicy + + In this example, a user with identity "Ken Myer" is being assigned the StudentMeetingPolicy + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingpolicy + + + + + + Grant-CsTeamsMessagingPolicy + Grant + CsTeamsMessagingPolicy + + Assigns a teams messaging policy at the per-user scope. Teams messaging policies determine the features and capabilities that can be used in messaging within the teams client. + + + + Granular control over which messaging features your users can or cannot use is an important feature for many organizations. This cmdlet lets you assign a teams messaging policy at the per-user scope. Teams messaging policies determine the features and capabilities that can be used in messaging within the teams client. + + + + Grant-CsTeamsMessagingPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMessagingPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMessagingPolicy + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account the policy should be assigned to. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer); and, 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the default tenant policy, you can assign to $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsMessagingPolicy -identity "Ken Myer" -PolicyName StudentMessagingPolicy + + In this example, a user with identity "Ken Myer" is being assigned the StudentMessagingPolicy + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlineUser -Filter {Department -eq 'Executive Management'} | Grant-CsTeamsMessagingPolicy -PolicyName "ExecutivesPolicy" + + In this example, the ExecutivesPolicy is being assigned to a whole department by piping the result of Get-CsOnlineUser cmdlet + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmessagingpolicy + + + + + + Grant-CsTeamsMobilityPolicy + Grant + CsTeamsMobilityPolicy + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + + + + Assigns a teams mobility policy at the per-user scope. + The Grant-CsTeamsMobilityPolicy cmdlet lets an Admin assign a custom teams mobility policy to a user. + + + + Grant-CsTeamsMobilityPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the Global policy, you can assign $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMobilityPolicy + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the Global policy, you can assign $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsMobilityPolicy + + Identity + + The User Id of the user to whom the policy is being assigned. + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the Global policy, you can assign $Null. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The User Id of the user to whom the policy is being assigned. + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the custom policy that is being assigned to the user. To remove a specific assignment and fall back to the Global policy, you can assign $Null. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsMobilityPolicy -PolicyName SalesPolicy -Identity "Ken Myer" + + Assigns a custom policy "Sales Policy" to the user "Ken Myer" + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmobilitypolicy + + + + + + Grant-CsTeamsRoomVideoTeleConferencingPolicy + Grant + CsTeamsRoomVideoTeleConferencingPolicy + + Assigns a TeamsRoomVideoTeleConferencingPolicy to a Teams Room Alias on a per-room or per-Group basis. + + + + The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). + + + + Grant-CsTeamsRoomVideoTeleConferencingPolicy + + PolicyName + + Corresponds to the name of the policy under -Identity from the cmdlet. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a identity, the policy applies to all rooms in your tenant, except any that have an explicit policy assignment. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsRoomVideoTeleConferencingPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + Corresponds to the name of the policy under -Identity from the cmdlet. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsRoomVideoTeleConferencingPolicy + + Identity + + The alias of the Teams room that the IT admin is granting this PolicyName to. + + String + + String + + + None + + + PolicyName + + Corresponds to the name of the policy under -Identity from the cmdlet. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a identity, the policy applies to all rooms in your tenant, except any that have an explicit policy assignment. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The alias of the Teams room that the IT admin is granting this PolicyName to. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Corresponds to the name of the policy under -Identity from the cmdlet. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsroomvideoteleconferencingpolicy + + + + + + Grant-CsTeamsSurvivableBranchAppliancePolicy + Grant + CsTeamsSurvivableBranchAppliancePolicy + + Grants a Survivable Branch Appliance (SBA) Policy to users in the tenant. + + + + The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + Grant-CsTeamsSurvivableBranchAppliancePolicy + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the policy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsSurvivableBranchAppliancePolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the policy. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsSurvivableBranchAppliancePolicy + + Identity + + The identity of the user. + + String + + String + + + None + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the policy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant. To skip a warning when you do this operation, specify "-Global". + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The identity of the user. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the policy. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssurvivablebranchappliancepolicy + + + + + + Grant-CsTeamsUpdateManagementPolicy + Grant + CsTeamsUpdateManagementPolicy + + Use this cmdlet to grant a specific Teams Update Management policy to a user. + + + + Grants a specific Teams Update Management policy to a user or sets a specific Teams Update Management policy as the new effective global policy. + + + + Grant-CsTeamsUpdateManagementPolicy + + PolicyName + + The identity of the policy to be granted. + + String + + String + + + None + + + Global + + Use this parameter to make the specified policy in -PolicyName the new effective global policy. + + + SwitchParameter + + + False + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsUpdateManagementPolicy + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + The identity of the policy to be granted. + + String + + String + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTeamsUpdateManagementPolicy + + Identity + + Indicates the identity of the user account the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + The identity of the policy to be granted. + + String + + String + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + + SwitchParameter + + + False + + + + + + Global + + Use this parameter to make the specified policy in -PolicyName the new effective global policy. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the identity of the user account the policy should be assigned to. + + String + + String + + + None + + + PassThru + + Including this parameter (which does not take a value) displays the user information when the cmdlet completes. Normally there is no output when this cmdlet is run. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The identity of the policy to be granted. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsUpdateManagementPolicy -PolicyName "Campaign Policy" -Identity kenmyer@litwareinc.com + + In this example, the policy "Campaign Policy" is granted to the user kenmyer@litwareinc.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupdatemanagementpolicy + + + + + + Grant-CsTeamsUpgradePolicy + Grant + CsTeamsUpgradePolicy + + TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. + + + + TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. As an organization with Skype for Business starts to adopt Teams, administrators can manage the user experience in their organization using the concept of coexistence "mode". Mode defines in which client incoming chats and calls land as well as in what service (Teams or Skype for Business) new meetings are scheduled in. Mode also governs what functionality is available in the Teams client. Finally, prior to upgrading to TeamsOnly mode administrators can use TeamsUpgradePolicy to trigger notifications in the Skype for Business client to inform users of the pending upgrade. + This cmdlet enables admins to apply TeamsUpgradePolicy to either individual users or to set the default for the entire organization. + > [!NOTE] > Earlier versions of this cmdlet used to support -MigrateMeetingsToTeams option. This option is removed in later versions of the module. Tenants must run Start-CsExMeetingMigration. See Start-CsExMeetingMigrationService (https://learn.microsoft.com/powershell/module/microsoftteams/start-csexmeetingmigration). + Microsoft Teams provides all relevant instances of TeamsUpgradePolicy via built-in, read-only policies. The built-in instances are as follows: + |Identity|Mode|NotifySfbUsers|Comments| |---|---|---|---| |Islands|Islands|False|Default configuration. Allows a single user to evaluate both clients side by side. Chats and calls can land in either client, so users must always run both clients.| |IslandsWithNotify|Islands|True|Same as Islands and it adds a banner in the Skype for Business client informing the user that Teams will soon replace Skype for Business.| |SfBOnly|SfBOnly|False|Calling, chat functionality and meeting scheduling in the Teams app are disabled.| |SfBOnlyWithNotify|SfBOnly|True|Same as SfBOnly and it adds a banner in the Skype for Business client informing the user that Teams will soon replace Skype for Business.| |SfBWithTeamsCollab|SfBWithTeamsCollab|False|Calling, chat functionality and meeting scheduling in the Teams app are disabled.| |SfBWithTeamsCollabWithNotify|SfBWithTeamsCollab|True|Same as SfBWithTeamsCollab and it adds a banner in the Skype for Business client informing the user that Teams will soon replace Skype for Business.| |SfBWithTeamsCollabAndMeetings|SfBWithTeamsCollabAndMeetings|False|Calling and chat functionality in the Teams app are disabled.| |SfBWithTeamsCollabAndMeetingsWithNotify|SfBWithTeamsCollabAndMeetings|True|Same as SfBWithTeamsCollabAndMeetings and it adds a banner in the Skype for Business client informing the user that Teams will soon replace Skype for Business.| |UpgradeToTeams|TeamsOnly|False|Use this mode to upgrade users to Teams and to prevent chat, calling, and meeting scheduling in Skype for Business.| |Global|Islands|False|| + > [!IMPORTANT] > TeamsUpgradePolicy can be assigned to any Teams user, whether that user have an on-premises account in Skype for Business Server or not. However, TeamsOnly mode can only be assigned to a user who is already homed in Skype for Business Online . This is because interop with Skype for Business users and federation as well as Microsoft 365 Phone System functionality are only possible if the user is homed in Skype for Business Online. In addition, you cannot assign TeamsOnly mode as the tenant-wide default if you have any Skype for Business on-premises deployment (which is detected by presence of a lyncdiscover DNS record that points to a location other than Office 365. To make these users TeamsOnly you must first move these users individually to the cloud using `Move-CsUser`. Once all users have been moved to the cloud, you can disable hybrid to complete migration to the cloud (https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation-disabling-hybrid)and then apply TeamsOnly mode at the tenant level to ensure future users are TeamsOnly by default. + > [!NOTE] > > - TeamsUpgradePolicy is available in both Office 365 and in on-premises versions of Skype for Business Server, but there are differences: > - In Office 365, admins can specify both coexistence mode and whether to trigger notifications of pending upgrade. > - In on-premises with Skype for Business Server, the only available option is to trigger notifications. Skype for Business Server 2015 with CU8 or Skype for Business Server 2019 are required. > - TeamsUpgradePolicy in Office 365 can be granted to users homed on-premises in hybrid deployments of Skype for Business as follows: > - Coexistence mode is honored by users homed on-premises, however on-premises users cannot be granted the UpgradeToTeams instance (mode=TeamsOnly) of TeamsUpgradePolicy. To be upgraded to TeamsOnly mode, users must be either homed in Skype for Business Online or have no Skype account anywhere. > - The NotifySfBUsers setting of Office 365 TeamsUpgradePolicy is not honored by users homed on-premises. Instead, the on-premises version of TeamsUpgradePolicy must be used. > - In Office 365, all relevant instances of TeamsUpgradePolicy are built into the system, so there is no corresponding New cmdlet available. In contrast, Skype for Business Server does not contain built-in instances, so the New cmdlet is available on-premises. Only NotifySfBUsers property is available in on-premises. > - When granting a user a policy with mode=TeamsOnly or mode=SfBWithTeamsCollabAndMeetings, by default, meetings organized by that user will be migrated to Teams. For details, see Using the Meeting Migration Service (MMS) (https://learn.microsoft.com/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms). + When users are in any of the Skype for Business modes (SfBOnly, SfBWithTeamsCollab, SfBWithTeamsCollabAndMeetings), calling and chat functionality in the Teams app are disabled (but chat in the context of a Teams meeting is still allowed). Similarly, when users are in the SfBOnly or SfBWithTeamsCollab modes, meeting scheduling is disabled. For more details, see Migration and interoperability guidance for organizations using Teams together with Skype for Business (https://learn.microsoft.com/microsoftteams/migration-interop-guidance-for-teams-with-skype). + The `Grant-CsTeamsUpgradePolicy` cmdlet checks the configuration of the corresponding settings in TeamsMessagingPolicy, TeamsCallingPolicy, and TeamsMeetingPolicy to determine if those settings would be superceded by TeamsUpgradePolicy and if so, an informational message is provided in PowerShell. It is not necessary to set these other policy settings. This is for informational purposes only. Below is an example of what the PowerShell warning looks like: + `Grant-CsTeamsUpgradePolicy -Identity user1@contoso.com -PolicyName SfBWithTeamsCollab` WARNING : The user `user1@contoso.com` currently has enabled values for: AllowUserChat, AllowPrivateCalling, AllowPrivateMeetingScheduling, AllowChannelMeetingScheduling, however these values will be ignored. This is because you are granting this user TeamsUpgradePolicy with mode=SfBWithTeamsCollab, which causes the Teams client to behave as if they are disabled. + > [!NOTE] > These warning messages are not affected by the -WarningAction parameter. + + + + Grant-CsTeamsUpgradePolicy + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PolicyName + + The name of the policy instance. + + Object + + Object + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + MigrateMeetingsToTeams + + Not supported anymore, see the Description section. + + Boolean + + Boolean + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + Object + + Object + + + None + + + + Grant-CsTeamsUpgradePolicy + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PolicyName + + The name of the policy instance. + + Object + + Object + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + MigrateMeetingsToTeams + + Not supported anymore, see the Description section. + + Boolean + + Boolean + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Do not use. + + Object + + Object + + + None + + + + Grant-CsTeamsUpgradePolicy + + Identity + + The user you want to grant policy to. This can be specified as SIP address, UserPrincipalName, or ObjectId. + + UserIdParameter + + UserIdParameter + + + None + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + + SwitchParameter + + + False + + + PolicyName + + The name of the policy instance. + + Object + + Object + + + None + + + MigrateMeetingsToTeams + + Not supported anymore, see the Description section. + + Boolean + + Boolean + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + Do not use. + + Object + + Object + + + None + + + + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + The user you want to grant policy to. This can be specified as SIP address, UserPrincipalName, or ObjectId. + + UserIdParameter + + UserIdParameter + + + None + + + MigrateMeetingsToTeams + + Not supported anymore, see the Description section. + + Boolean + + Boolean + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams call hold policy. + By default, the cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the policy instance. + + Object + + Object + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Do not use. + + Object + + Object + + + None + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------- Example 1: Grant Policy to an individual user -------- + PS C:\> Grant-CsTeamsUpgradePolicy -PolicyName UpgradeToTeams -Identity mike@contoso.com + + The above cmdlet assigns the "UpgradeToTeams" policy to user Mike@contoso.com. This effectively upgrades the user to Teams only mode. This command will only succeed if the user does not have an on-premises Skype for Business account. + + + + ------- Example 2: Remove Policy for an individual user ------- + PS C:\> Grant-CsTeamsUpgradePolicy -PolicyName $null -Identity mike@contoso.com + + The above cmdlet removes any policy changes made to user Mike@contoso.com and effectively Inherits the global tenant setting for teams Upgrade. + + + + --------- Example 3: Grant Policy to the entire tenant --------- + PS C:\> Grant-CsTeamsUpgradePolicy -PolicyName SfBOnly -Global + + To grant a policy to all users in the org (except any that have an explicit policy assigned), omit the identity parameter. If you do not specify the -Global parameter, you will be prompted to confirm the operation. + + + + Example 4 Get a report on existing TeamsUpgradePolicy users (Screen Report) + Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* + + You can get the output on the screen, on CSV or Html format. For Screen Report. + + + + Example 5 Get a report on existing TeamsUpgradePolicy users (CSV Report) + $objUsers = Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* +$objusers | ConvertTo-Csv -NoTypeInformation | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.csv" + + This will create a CSV file on the Desktop of the current user with the name "TeamsUpgrade.csv" + + + + Example 6 Get a report on existing TeamsUpgradePolicy users (HTML Report) + $objUsers = Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* +$objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.html" + + After running these lines will create an HTML file on the Desktop of the current user with the name "TeamUpgrade.html" + + + + Example 7 Get a report on existing TeamsUpgradePolicy users (CSV Report - Oneliner version) + Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* | ConvertTo-Csv -NoTypeInformation | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.csv" + + This will create a CSV file on the Desktop of the current user with the name "TeamsUpgrade.csv" + + + + Example 8 Get a report on existing TeamsUpgradePolicy users (HTML Report - Oneliner Version) + Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.html" + + After running these lines will create an HTML file on the Desktop of the current user with the name "TeamUpgrade.html" + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skype/grant-csteamsupgradepolicy + + + Migration and interoperability guidance for organizations using Teams together with Skype for Business + https://learn.microsoft.com/MicrosoftTeams/migration-interop-guidance-for-teams-with-skype + + + Using the Meeting Migration Service (MMS) + https://learn.microsoft.com/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms + + + Coexistence with Skype for Business + https://learn.microsoft.com/microsoftteams/coexistence-chat-calls-presence + + + Get-CsTeamsUpgradeConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration + + + Set-CsTeamsUpgradeConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration + + + Get-CsTeamsUpgradePolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy + + + + + + Grant-CsTeamsVideoInteropServicePolicy + Grant + CsTeamsVideoInteropServicePolicy + + The Grant-CsTeamsVideoInteropServicePolicy cmdlet allows you to assign a pre-constructed policy across your whole organization or only to specific users. + + + + Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization. Microsoft provides pre-constructed policies for each of our supported partners that allow you to designate which of the partners to use for cloud video interop. + User needs to be assigned one policy from admin to create a CVI meeting. There could be multiple provides in a tenant, but user can only be assigned only one policy(provide). FAQ : + Q: After running `Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy>` to assign a policy to the whole tenant, the result of `Get-CsOnlineUser -Identity {User Identity} | Format-List TeamsVideoInteropServicePolicy` that checks if the User Policy is empty. + A: Global/Tenant level Policy Assignment can be checked by running `Get-CsTeamsVideoInteropServicePolicy Global`. + Q: I assigned CVI policy to a user, but I can't create a VTC meeting with that policy or I made changes to policy assignment, but it didn't reflect on new meetings I created. + A: The policy is cached for 6 hours. Changes to the policy are updated after the cache expires. Check for your changes after 6 hours. Frequently used commands that can help identify the policy assignment : + - Command to get full list of user along with their CVI policy: `Get-CsOnlineUser | Format-List UserPrincipalName,TeamsVideoInteropServicePolicy` + - Command to get the policy assigned to the whole tenant: `Get-CsTeamsVideoInteropServicePolicy Global` + + + + Grant-CsTeamsVideoInteropServicePolicy + + PolicyName + + Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft use only. + + Fqdn + + Fqdn + + + None + + + Global + + Use this flag to override the warning when assigning the global policy for your tenant. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsVideoInteropServicePolicy + + PolicyName + + Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft use only. + + Fqdn + + Fqdn + + + None + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsVideoInteropServicePolicy + + Identity + + {{Fill Identity Description}} + + UserIdParameter + + UserIdParameter + + + None + + + PolicyName + + Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft use only. + + Fqdn + + Fqdn + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + Internal Microsoft use only. + + Fqdn + + Fqdn + + + None + + + Global + + Use this flag to override the warning when assigning the global policy for your tenant. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + {{Fill Identity Description}} + + UserIdParameter + + UserIdParameter + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.AD.UserIdParameter + + + + + + + + + + System.Object + + + + + + + + + + + + + + ------ Example 1: The whole tenant has the same provider ------ + Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | $null> -Global + + Specify the provider for the whole tenant or use the value $null to remove the tenant-level provider and let the whole tenant fall back to the Global policy. + + + + Example 2: The tenant has two (or three) interop service providers + Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | $null> -Identity <UserId> + + Specify each user with the Identity parameter, and use Provider-1 or Provider-2 for the value of the PolicyName parameter. Use the value $null to remove the provider and let the user's provider fallback to Global policy. + + + + Example 3: The tenant has a default interop service provider, but specific users (say IT folks) want to pilot another interop provider. + Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | ServiceProviderDisabled> [-Identity <UserId>] + + - To assign Provider-1 as the default interop service provider, don't use the Identity parameter and use the value Provider-1 for the PolicyName parameter. + - For specific users to try Provider-2, specify each user with the Identity parameter, and use the value Provider-2 for the PolicyName parameter. + - For specific users who need to disable CVI, specify each user with the Identity parameter and use the value ServiceProviderDisabled for the PolicyName parameter. + + + + Example 4: Cloud Video Interop has been disabled for the entire tenant, except for those users that have an explicit policy assigned to them. + Grant-CsTeamsVideoInteropServicePolicy -PolicyName ServiceProviderDisabled + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvideointeropservicepolicy + + + + + + Grant-CsTeamsVoiceApplicationsPolicy + Grant + CsTeamsVoiceApplicationsPolicy + + Assigns a per-user Teams voice applications policy to one or more users. TeamsVoiceApplications policy governs what permissions the supervisors/users have over auto attendants and call queues. + + + + TeamsVoiceApplicationsPolicy is used for Supervisor Delegated Administration which allows tenant admins to permit certain users to make changes to auto attendant and call queue configurations. + + + + Grant-CsTeamsVoiceApplicationsPolicy + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsVoiceApplicationsPolicy + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsVoiceApplicationsPolicy + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams voice applications policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). + + String + + String + + + None + + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + When you use this cmdlet without specifying a user identity, the policy applies to all users in your tenant, except any that have an explicit policy assignment. To skip a warning when you do this operation, specify this parameter. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + Indicates the Identity of the user account to be assigned the per-user Teams voice applications policy. User Identities can be specified using one of the following formats: the user's SIP address, the user's user principal name (UPN), or the user's Active Directory display name (for example, Ken Myer). + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user account being assigned the Teams voice applications policy. By default, the Grant-CsTeamsVoiceApplicationsPolicy cmdlet does not pass objects through the pipeline. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + "Name" of the policy to be assigned. The PolicyName is simply the policy Identity minus the policy scope (the "tag:" prefix). For example, a policy with the Identity tag:Redmond has a PolicyName equal to Redmond; likewise, a policy with the Identity tag:SDAAllowAllTeamsVoiceApplicationsPolicy has a PolicyName equal to SDAAllowAllTeamsVoiceApplicationsPolicy. + To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Grant-CsTeamsVoiceApplicationsPolicy -Identity "Ken Myer" -PolicyName "SDA-Allow-All" + + The command shown in Example 1 assigns the per-user Teams voice applications policy SDA-Allow-All to the user with the display name "Ken Myer". + + + + -------------------------- EXAMPLE 2 -------------------------- + Grant-CsTeamsVoiceApplicationsPolicy -PolicyName "SDA-Allow-All" -Global + + Example 2 assigns the per-user online voice routing policy "SDA-Allow-All to all the users in the tenant, except any that have an explicit policy assignment. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy + + + Get-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy + + + Set-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy + + + Remove-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy + + + New-CsTeamsVoiceApplicationsPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy + + + + + + Grant-CsTeamsWorkLoadPolicy + Grant + CsTeamsWorkLoadPolicy + + This cmdlet applies an instance of the Teams Workload policy to users or groups in a tenant. + + + + The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. + + + + Grant-CsTeamsWorkLoadPolicy + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Global + + This is the equivalent to `-Identity Global`. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsWorkLoadPolicy + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + + SwitchParameter + + + False + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Grant-CsTeamsWorkLoadPolicy + + Identity + + Specifies the identity of the target user. + Example: <testuser@test.onmicrosoft.com> + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Global + + This is the equivalent to `-Identity Global`. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + This is the identifier of the group that the policy should be assigned to. + + String + + String + + + None + + + Identity + + Specifies the identity of the target user. + Example: <testuser@test.onmicrosoft.com> + Example: 98403f08-577c-46dd-851a-f0460a13b03d + Use the "Global" Identity if you wish to set the policy for the entire tenant. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsTeamsWorkLoadPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com + + Assigns a given policy to a user. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Grant-CsTeamsWorkLoadPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test + + Assigns a given policy to a group. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Grant-CsTeamsWorkLoadPolicy -Global -PolicyName Test + + Assigns a given policy to the tenant. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Grant-CsTeamsWorkLoadPolicy -Global -PolicyName Test + + > [!NOTE] > Using `$null` in place of a policy name can be used to unassigned a policy instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy + + + Remove-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy + + + Get-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy + + + Set-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy + + + New-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy + + + + + + Grant-CsTenantDialPlan + Grant + CsTenantDialPlan + + Use the Grant-CsTenantDialPlan cmdlet to assign an existing tenant dial plan to a user, to a group of users, or to set the Global policy instance. + + + + The Grant-CsTenantDialPlan cmdlet assigns an existing tenant dial plan to a user, a group of users, or sets the Global policy instance. Tenant dial plans provide information that is required for Enterprise Voice users to make telephone calls. Users who do not have a valid tenant dial plan cannot make calls by using Enterprise Voice. A tenant dial plan determines such things as how normalization rules are applied. + You can check whether a user has been granted a per-user tenant dial plan by calling a command in this format: `Get-CsUserPolicyAssignment -Identity "<user name>" -PolicyType TenantDialPlan.` + + + + Grant-CsTenantDialPlan + + PolicyName + + > Applicable: Microsoft Teams + The PolicyName parameter is the name of the tenant dial plan to be assigned. + + String + + String + + + None + + + Global + + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + + SwitchParameter + + + False + + + PassThru + + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + + Grant-CsTenantDialPlan + + Group + + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The PolicyName parameter is the name of the tenant dial plan to be assigned. + + String + + String + + + None + + + PassThru + + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + Rank + + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + Grant-CsTenantDialPlan + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the user to whom the policy should be assigned. + + String + + String + + + None + + + PolicyName + + > Applicable: Microsoft Teams + The PolicyName parameter is the name of the tenant dial plan to be assigned. + + String + + String + + + None + + + PassThru + + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + + SwitchParameter + + + False + + + + + + Global + + > Applicable: Microsoft Teams + Sets the parameters of the Global policy instance to the values in the specified policy instance. + + SwitchParameter + + SwitchParameter + + + False + + + Group + + > Applicable: Microsoft Teams + Specifies the group used for the group policy assignment. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the user to whom the policy should be assigned. + + String + + String + + + None + + + PassThru + + > Applicable: Microsoft Teams + {{ Fill PassThru Description }} + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + > Applicable: Microsoft Teams + The PolicyName parameter is the name of the tenant dial plan to be assigned. + + String + + String + + + None + + + Rank + + > Applicable: Microsoft Teams + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + Int32 + + Int32 + + + None + + + + + + + The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. + + + + + -------------------------- Example 1 -------------------------- + Grant-CsTenantDialPlan -PolicyName Vt1tenantDialPlan9 -Identity Ken.Myer@contoso.com + + This example grants the Vt1tenantDialPlan9 dial plan to Ken.Meyer@contoso.com. + + + + -------------------------- Example 2 -------------------------- + Grant-CsTenantDialPlan -Identity Ken.Myer@contoso.com -PolicyName $Null + + In Example 2, any dial plan previously assigned to the user Ken Myer is unassigned from that user; as a result, Ken Myer will be managed by the global dial plan. To unassign a custom tenant dial plan, set the PolicyName to a null value ($Null). + + + + -------------------------- Example 3 -------------------------- + Grant-CsTenantDialPlan -Group sales@contoso.com -Rank 10 -PolicyName Vt1tenantDialPlan9 + + This example grants the Vt1tenantDialPlan9 dial plan to members of the group sales@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan + + + Set-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan + + + New-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan + + + Remove-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan + + + Get-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan + + + + + + Grant-CsUserPolicyPackage + Grant + CsUserPolicyPackage + + This cmdlet supports applying a policy package to users in a tenant. Note that there is a limit of 20 users you can apply the package to at a time. To apply a policy package to a larger number of users, consider using New-CsBatchPolicyPackageAssignmentOperation. + + + + This cmdlet supports applying a policy package to users in a tenant. Provide one or more user identities to assign the package with all the associated policies. The available policy packages and their definitions can be found by running Get-CsPolicyPackage. The recommended policy package for each user can be found by running Get-CsUserPolicyPackageRecommendation. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. + + + + Grant-CsUserPolicyPackage + + Identity + + > Applicable: Microsoft Teams + A list of one or more users in the tenant. Note that there is a limit of 20 users you can apply the package to at a time. + + String[] + + String[] + + + None + + + PackageName + + > Applicable: Microsoft Teams + The name of a specific policy package to apply. All possible policy package names can be found by running Get-CsPolicyPackage. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + A list of one or more users in the tenant. Note that there is a limit of 20 users you can apply the package to at a time. + + String[] + + String[] + + + None + + + PackageName + + > Applicable: Microsoft Teams + The name of a specific policy package to apply. All possible policy package names can be found by running Get-CsPolicyPackage. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Grant-CsUserPolicyPackage -Identity 1bc0b35f-095a-4a37-a24c-c4b6049816ab,johndoe@example.com -PackageName Education_PrimaryStudent + + Applies the Education_PrimaryStudent policy package to two users in the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage + + + Get-CsPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + Get-CsUserPolicyPackageRecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation + + + Get-CsUserPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage + + + New-CsBatchPolicyPackageAssignmentOperation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicypackageassignmentoperation + + + + + + Import-CsAutoAttendantHolidays + Import + CsAutoAttendantHolidays + + Use Import-CsAutoAttendantHolidays cmdlet to import holiday schedules of an existing Auto Attendant (AA) that were previously exported using the Export-CsAutoAttendantHolidays cmdlet. + + + + The Export-CsAutoAttendantHolidays cmdlet and the Import-CsAutoAttendantHolidays cmdlet enable you to export holiday schedules in your auto attendant and then later import that information. This can be extremely useful in a situation where you need to configure same holiday sets in multiple auto attendants. + The Export-CsAutoAttendantHolidays cmdlet returns the holiday schedule information in serialized form (as a byte array). The caller can then write the bytes to the disk to obtain a CSV file. Similarly, the Import-CsAutoAttendantHolidays cmdlet accepts the holiday schedule information as a byte array, which can be read from the aforementioned CSV file. The first line of the CSV file is considered a header record and is always ignored. NOTES : + Each line in the CSV file used by Export-CsAutoAttendantHolidays and Import-CsAutoAttendantHolidays cmdlet should be of the following format: + `HolidayName,StartDateTime1,EndDateTime1,StartDateTime2,EndDateTime2,...,StartDateTime10,EndDateTime10` + where + - HolidayName is the name of the holiday to be imported. + - StartDateTimeX and EndDateTimeX specify a date/time range for the holiday and are optional. If no date-time ranges are defined, then the holiday is imported without any date/time ranges. They follow the same format as New-CsOnlineDateTimeRange cmdlet. + - EndDateTimeX is optional. If it is not specified, the end bound of the date time range is set to 00:00 of the day after the start date. + + - The first line of the CSV file is considered a header record and is always ignored by Import-CsAutoAttendantHolidays cmdlet. + - If the destination auto attendant for the import already contains a call flow or schedule by the same name as one of the holidays being imported, the corresponding CSV record is skipped. + - For holidays that are successfully imported, a default call flow is created which is configured without any greeting and simply disconnects the call on being executed. + + + + Import-CsAutoAttendantHolidays + + Identity + + > Applicable: Microsoft Teams + The identity for the AA whose holiday schedules are to be imported. + + System.String + + System.String + + + None + + + Input + + > Applicable: Microsoft Teams + The Input parameter specifies the holiday schedule information that is to be imported. + + System.Byte[] + + System.Byte[] + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The identity for the AA whose holiday schedules are to be imported. + + System.String + + System.String + + + None + + + Input + + > Applicable: Microsoft Teams + The Input parameter specifies the holiday schedule information that is to be imported. + + System.Byte[] + + System.Byte[] + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Import-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $bytes = [System.IO.File]::ReadAllBytes("C:\Imports\Holidays.csv") +Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -Input $bytes + + In this example, the Import-CsAutoAttendantHolidays cmdlet is used to import holiday schedule information from a file at path "C:\Imports\Holidays.csv" to an auto attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. + + + + -------------------------- Example 2 -------------------------- + $bytes = [System.IO.File]::ReadAllBytes("C:\Imports\Holidays.csv") +Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -Input $bytes | Format-Table -Wrap -AutoSize + + In this example, the Import-CsAutoAttendantHolidays cmdlet is used to import holiday schedule information from a file at path "C:\Imports\Holidays.csv" to an auto attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. The result of the import process is formatted as a table. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays + + + Export-CsAutoAttendantHolidays + https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays + + + Get-CsAutoAttendantHolidays + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays + + + + + + Import-CsOnlineAudioFile + Import + CsOnlineAudioFile + + Use the Import-CsOnlineAudioFile cmdlet to upload a new audio file. + + + + The Import-CsOnlineAudioFile cmdlet uploads a new audio file for use with the Auto Attendant (AA), Call Queue (CQ) service or Music on Hold for Microsoft Teams. + + + + Import-CsOnlineAudioFile + + ApplicationId + + > Applicable: Microsoft Teams + The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file will be used with an Auto Attendant, then it needs to be set to "OrgAutoAttendant". If the audio file will be used with a Call Queue, then it needs to be set to "HuntGroup". If the audio file will be used with Microsoft Teams, then it needs to be set to "TenantGlobal". + Supported values: + - OrgAutoAttendant + - HuntGroup + - TenantGlobal + + String + + String + + + None + + + Content + + > Applicable: Microsoft Teams + The Content parameter represents the content of the audio file. Supported formats are WAV (uncompressed, linear PCM with 8/16/32-bit depth in mono or stereo), WMA (mono only), and MP3. The audio file content cannot be more 5MB. + + Byte[] + + Byte[] + + + None + + + FileName + + > Applicable: Microsoft Teams + The FileName parameter is the name of the audio file. For example, the file name for the file C:\Media\Welcome.wav is Welcome.wav. + + String + + String + + + None + + + + + + ApplicationId + + > Applicable: Microsoft Teams + The ApplicationId parameter is the identifier for the application which will use this audio file. For example, if the audio file will be used with an Auto Attendant, then it needs to be set to "OrgAutoAttendant". If the audio file will be used with a Call Queue, then it needs to be set to "HuntGroup". If the audio file will be used with Microsoft Teams, then it needs to be set to "TenantGlobal". + Supported values: + - OrgAutoAttendant + - HuntGroup + - TenantGlobal + + String + + String + + + None + + + Content + + > Applicable: Microsoft Teams + The Content parameter represents the content of the audio file. Supported formats are WAV (uncompressed, linear PCM with 8/16/32-bit depth in mono or stereo), WMA (mono only), and MP3. The audio file content cannot be more 5MB. + + Byte[] + + Byte[] + + + None + + + FileName + + > Applicable: Microsoft Teams + The FileName parameter is the name of the audio file. For example, the file name for the file C:\Media\Welcome.wav is Welcome.wav. + + String + + String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile + + + + + + + + + When you import an audio file to be used for Auto Attendant or Call Queue, the audio file will automatically be marked for deletion (as seen by running Get-CsOnlineAudioFile) and it will be deleted after 48 to 72 hours from the time of import, unless the audio file is associated to an Auto Attendant and Call Queue before 48 hours after it was imported. + You are responsible for independently clearing and securing all necessary rights and permissions to use any music or audio file with your Microsoft Teams service, which may include intellectual property and other rights in any music, sound effects, audio, brands, names, and other content in the audio file from all relevant rights holders, which may include artists, actors, performers, musicians, songwriters, composers, record labels, music publishers, unions, guilds, rights societies, collective management organizations and any other parties who own, control or license the music copyrights, sound effects, audio and other intellectual property rights. + + + + + -------------------------- Example 1 -------------------------- + $content = [System.IO.File]::ReadAllBytes('C:\Media\Hello.wav') +$audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "Hello.wav" -Content $content + + This example creates a new audio file using the WAV content that has a filename of Hello.wav to be used with organizational auto attendants. The stored variable, $audioFile, will be used when running other cmdlets to update the audio file for Auto Attendant, for example New-CsAutoAttendantPrompt (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt). + + + + -------------------------- Example 2 -------------------------- + $content = [System.IO.File]::ReadAllBytes('C:\Media\MOH.wav') +$audioFile = Import-CsOnlineAudioFile -ApplicationId "HuntGroup" -FileName "MOH.wav" -Content $content + + This example creates a new audio file using the WAV content that has a filename of MOH.wav to be used as a Music On Hold file with a Call Queue. The stored variable, $audioFile, will be used with Set-CsCallQueue (https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallqueue)to provide the audio file id. + + + + -------------------------- Example 3 -------------------------- + $content = [System.IO.File]::ReadAllBytes('C:\Media\MOH.wav') +$audioFile = Import-CsOnlineAudioFile -ApplicationId TenantGlobal -FileName "MOH.wav" -Content $content + + This example creates a new audio file using the WAV content that has a filename of MOH.wav to be used as Music On Hold for Microsoft Teams. The stored variable, $audioFile, will be used with New-CsTeamsCallHoldPolicy (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy)to provide the audio file id. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + Export-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile + + + Get-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile + + + Remove-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile + + + + + + New-CsApplicationAccessPolicy + New + CsApplicationAccessPolicy + + Creates a new application access policy. Application access policy contains a list of application (client) IDs. When granted to a user, those applications will be authorized to access online meetings on behalf of that user. + + + + This cmdlet creates a new application access policy. Application access policy contains a list of application (client) IDs. When granted to a user, those applications will be authorized to access online meetings on behalf of that user. + + + + New-CsApplicationAccessPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + + + AppIds + + A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). + + PSListModifier + + PSListModifier + + + None + + + Description + + Specifies the description of the policy. + + String + + String + + + None + + + + + + AppIds + + A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). + + PSListModifier + + PSListModifier + + + None + + + Description + + Specifies the description of the policy. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + + + + + + + + + + + + ---- Create a new application access policy with one app ID ---- + PS C:\> New-CsApplicationAccessPolicy -Identity "ASimplePolicy" -AppIds "d39597bf-8407-40ca-92ef-1ec26b885b7b" -Description "Some description" + + The command shown above shows how to create a new policy with one app IDs configured. + + + + - Create a new application access policy with multiple app IDs - + PS C:\> New-CsApplicationAccessPolicy -Identity "ASimplePolicy" -AppIds "d39597bf-8407-40ca-92ef-1ec26b885b71", "57caaef9-5ed0-48d5-8862-e5abfa71b3e1", "dc17674c-81d9-4adb-bfb2-8f6a442e4620" -Description "Some description" + + The command shown above shows how to create a new policy with a list of (three) app IDs configured. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Grant-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy + + + Get-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy + + + Set-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy + + + Remove-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy + + + + + + New-CsAutoAttendant + New + CsAutoAttendant + + Use the New-CsAutoAttendant cmdlet to create a new Auto Attendant (AA). + + + + Auto Attendants (AAs) are a key element in the Office 365 Phone System. Each AA can be associated with phone numbers that allow callers to reach specific people in the organization through a directory lookup. Alternatively, it can route the calls to an operator, a user, another AA, or a call queue. + You can create new AAs by using the New-CsAutoAttendant cmdlet; each newly created AA gets assigned a random string that serves as the identity of the AA. + > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items: > > - -HideAuthorizedUsers > - -UserNameExtension > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -EnableMainLineAttendant > - -MainlineAttendantAgentVoiceId NOTES : + - To setup your AA for calling, you need to create an application instance first using `New-CsOnlineApplicationInstance` cmdlet , then associate it with your AA configuration using `New-CsOnlineApplicationInstanceAssociation` cmdlet. + - The default call flow has the lowest precedence, and any custom call flow has a higher precedence and is executed if the schedule associated with it is in effect. + - Holiday call flows have higher priority than after-hours call flows. Thus, if a holiday schedule and an after-hours schedule are both in effect at a particular time, the call flow corresponding to the holiday call flow will be rendered. + - The default call flow can be used either as the 24/7 call flow if no other call flows are specified, or as the business hours call flow if an "after hours" call flow was specified together with the corresponding schedule and call handling association. + - If a user is present in both inclusion and exclusion scopes, then exclusion scope always takes priority, i.e., the user will not be able to be contacted through directory lookup feature. + + + + New-CsAutoAttendant + + AuthorizedUsers + + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + CallFlows + + > Applicable: Microsoft Teams + The CallFlows parameter represents call flows, which are required if they are referenced in the CallHandlingAssociations parameter. + You can create CallFlows by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + CallHandlingAssociations + + > Applicable: Microsoft Teams + The CallHandlingAssociations parameter represents the call handling associations. The AA service uses call handling associations to determine which call flow to execute when a specific schedule is in effect. + You can create CallHandlingAssociations by using the `New-CsAutoAttendantCallHandlingAssociation` cmdlet. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + DefaultCallFlow + + > Applicable: Microsoft Teams + The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during business hours). + You can create the DefaultCallFlow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. + + Object + + Object + + + None + + + EnableMainlineAttendant + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The EnableMainlineAttendant parameter enables Mainline Attendant features for this Auto attendant. + > [!NOTE] > 1. The Auto attendant must have a Resource account assigned > 1. `-LanguageId` options are limited when Mainline Attendant is enabled > 1. `-EnableVoiceResponse` will be enabled automatically + + + SwitchParameter + + + False + + + MainlineAttendantAgentVoiceId + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The MainlineAttendantAgentVoiceId parameter sets the voice that will be used with Mainline Attendant. + PARAMVALUE: Alloy | Echo | Shimmer + + + SwitchParameter + + + False + + + EnableVoiceResponse + + > Applicable: Microsoft Teams + The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. + + + SwitchParameter + + + False + + + ExclusionScope + + > Applicable: Microsoft Teams + Specifies the users to which call transfers are not allowed through directory lookup feature. If not specified, no user in the organization is excluded from directory lookup. + Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope)cmdlet. + + Object + + Object + + + None + + + HideAuthorizedUsers + + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will *remove* this setting. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + InclusionScope + + > Applicable: Microsoft Teams + Specifies the users to which call transfers are allowed through directory lookup feature. If not specified, all users in the organization can be reached through directory lookup. + Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope)cmdlet. + + Object + + Object + + + None + + + LanguageId + + > Applicable: Microsoft Teams + The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. + You can query the supported languages using the `Get-CsAutoAttendantSupportedLanguage` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage)cmdlet. + + System.String + + System.String + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter is a friendly name that is assigned to the AA. + + System.String + + System.String + + + None + + + Operator + + > Applicable: Microsoft Teams + The Operator parameter represents the SIP address or PSTN number of the operator. + You can create callable entities by using the `New-CsAutoAttendantCallableEntity` cmdlet. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + TimeZoneId + + > Applicable: Microsoft Teams + The TimeZoneId parameter represents the AA time zone. All schedules are evaluated based on this time zone. + You can query the supported timezones using the `Get-CsAutoAttendantSupportedTimeZone` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone)cmdlet. + + System.String + + System.String + + + None + + + UserNameExtension + + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will *remove* this setting. The UserNameExtension parameter is a string that specifies how to extend usernames in dial search by appending additional information after the name. This parameter is used in dial search when multiple search results are found, as it helps to distinguish users with similar names. Possible values are: + - None: Default value, which means the username is pronounced as is. + - Office: Adds office information from the user profile. + - Department: Adds department information from the user profile. + + System.String + + System.String + + + None + + + VoiceId + + > Applicable: Microsoft Teams + The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. + You can query the supported voices by using the `Get-CsAutoAttendantSupportedLanguage` cmdlet. + + System.String + + System.String + + + None + + + + + + AuthorizedUsers + + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + CallFlows + + > Applicable: Microsoft Teams + The CallFlows parameter represents call flows, which are required if they are referenced in the CallHandlingAssociations parameter. + You can create CallFlows by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + CallHandlingAssociations + + > Applicable: Microsoft Teams + The CallHandlingAssociations parameter represents the call handling associations. The AA service uses call handling associations to determine which call flow to execute when a specific schedule is in effect. + You can create CallHandlingAssociations by using the `New-CsAutoAttendantCallHandlingAssociation` cmdlet. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + DefaultCallFlow + + > Applicable: Microsoft Teams + The DefaultCallFlow parameter is the flow to be executed when no other call flow is in effect (for example, during business hours). + You can create the DefaultCallFlow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. + + Object + + Object + + + None + + + EnableMainlineAttendant + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The EnableMainlineAttendant parameter enables Mainline Attendant features for this Auto attendant. + > [!NOTE] > 1. The Auto attendant must have a Resource account assigned > 1. `-LanguageId` options are limited when Mainline Attendant is enabled > 1. `-EnableVoiceResponse` will be enabled automatically + + SwitchParameter + + SwitchParameter + + + False + + + MainlineAttendantAgentVoiceId + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The MainlineAttendantAgentVoiceId parameter sets the voice that will be used with Mainline Attendant. + PARAMVALUE: Alloy | Echo | Shimmer + + SwitchParameter + + SwitchParameter + + + False + + + EnableVoiceResponse + + > Applicable: Microsoft Teams + The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. + + SwitchParameter + + SwitchParameter + + + False + + + ExclusionScope + + > Applicable: Microsoft Teams + Specifies the users to which call transfers are not allowed through directory lookup feature. If not specified, no user in the organization is excluded from directory lookup. + Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope)cmdlet. + + Object + + Object + + + None + + + HideAuthorizedUsers + + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will *remove* this setting. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + InclusionScope + + > Applicable: Microsoft Teams + Specifies the users to which call transfers are allowed through directory lookup feature. If not specified, all users in the organization can be reached through directory lookup. + Dial scopes can be created by using the `New-CsAutoAttendantDialScope` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope)cmdlet. + + Object + + Object + + + None + + + LanguageId + + > Applicable: Microsoft Teams + The LanguageId parameter is the language that is used to read text-to-speech (TTS) prompts. + You can query the supported languages using the `Get-CsAutoAttendantSupportedLanguage` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage)cmdlet. + + System.String + + System.String + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter is a friendly name that is assigned to the AA. + + System.String + + System.String + + + None + + + Operator + + > Applicable: Microsoft Teams + The Operator parameter represents the SIP address or PSTN number of the operator. + You can create callable entities by using the `New-CsAutoAttendantCallableEntity` cmdlet. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + TimeZoneId + + > Applicable: Microsoft Teams + The TimeZoneId parameter represents the AA time zone. All schedules are evaluated based on this time zone. + You can query the supported timezones using the `Get-CsAutoAttendantSupportedTimeZone` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone)cmdlet. + + System.String + + System.String + + + None + + + UserNameExtension + + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will *remove* this setting. The UserNameExtension parameter is a string that specifies how to extend usernames in dial search by appending additional information after the name. This parameter is used in dial search when multiple search results are found, as it helps to distinguish users with similar names. Possible values are: + - None: Default value, which means the username is pronounced as is. + - Office: Adds office information from the user profile. + - Department: Adds department information from the user profile. + + System.String + + System.String + + + None + + + VoiceId + + > Applicable: Microsoft Teams + The VoiceId parameter represents the voice that is used to read text-to-speech (TTS) prompts. + You can query the supported voices by using the `Get-CsAutoAttendantSupportedLanguage` cmdlet. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $operatorObjectId = (Get-CsOnlineUser operator@contoso.com).Identity +$operatorEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User + +$greetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!" +$menuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 +$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign or press 0 to reach the operator." +$defaultMenu = New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($menuPrompt) -MenuOptions @($menuOptionZero) -EnableDialByName +$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($greetingPrompt) -Menu $defaultMenu + +$afterHoursGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso! Unfortunately, you have reached us outside of our business hours. We value your call please call us back Monday to Friday, between 9 A.M. to 12 P.M. and 1 P.M. to 5 P.M. Goodbye!" +$automaticMenuOption = New-CsAutoAttendantMenuOption -Action Disconnect -DtmfResponse Automatic +$afterHoursMenu=New-CsAutoAttendantMenu -Name "After Hours menu" -MenuOptions @($automaticMenuOption) +$afterHoursCallFlow = New-CsAutoAttendantCallFlow -Name "After Hours call flow" -Greetings @($afterHoursGreetingPrompt) -Menu $afterHoursMenu + +$timerange1 = New-CsOnlineTimeRange -Start 09:00 -end 12:00 +$timerange2 = New-CsOnlineTimeRange -Start 13:00 -end 17:00 +$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours Schedule" -WeeklyRecurrentSchedule -MondayHours @($timerange1, $timerange2) -TuesdayHours @($timerange1, $timerange2) -WednesdayHours @($timerange1, $timerange2) -ThursdayHours @($timerange1, $timerange2) -FridayHours @($timerange1, $timerange2) -Complement + +$afterHoursCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id + +$inclusionScopeGroupIds = @("4c3053a6-20bf-43df-bf7a-156124168856") +$inclusionScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $inclusionScopeGroupIds + +$aa = New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -CallFlows @($afterHoursCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation) -LanguageId "en-US" -TimeZoneId "UTC" -Operator $operatorEntity -InclusionScope $inclusionScope + + This example creates a new AA named Main auto attendant that has the following properties: + - It sets a default call flow. + - It sets an after-hours call flow. + - It enables voice response. + - The default language is en-US. + - The time zone is set to UTC. + - An inclusion scope is specified. + + + + -------------------------- Example 2 -------------------------- + $operatorObjectId = (Get-CsOnlineUser operator@contoso.com).Identity +$operatorEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User + +$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!" +$dcfMenuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 +$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign or press 0 to reach the operator." +$dcfMenu=New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -MenuOptions @($dcfMenuOptionZero) -EnableDialByName +$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu $dcfMenu + +$afterHoursGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso! Unfortunately, you have reached us outside of our business hours. We value your call please call us back Monday to Friday, between 9 A.M. to 12 P.M. and 1 P.M. to 5 P.M. Goodbye!" +$afterHoursMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic +$afterHoursMenu=New-CsAutoAttendantMenu -Name "After Hours menu" -MenuOptions @($afterHoursMenuOption) +$afterHoursCallFlow = New-CsAutoAttendantCallFlow -Name "After Hours call flow" -Greetings @($afterHoursGreetingPrompt) -Menu $afterHoursMenu + +$timerange1 = New-CsOnlineTimeRange -Start 09:00 -end 12:00 +$timerange2 = New-CsOnlineTimeRange -Start 13:00 -end 17:00 +$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours Schedule" -WeeklyRecurrentSchedule -MondayHours @($timerange1, $timerange2) -TuesdayHours @($timerange1, $timerange2) -WednesdayHours @($timerange1, $timerange2) -ThursdayHours @($timerange1, $timerange2) -FridayHours @($timerange1, $timerange2) -Complement + +$afterHoursCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id + +$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." +$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic +$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption) +$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu $christmasMenu + +$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" +$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) + +$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id + +$aa = New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -LanguageId "en-US" -TimeZoneId "UTC" -Operator $operatorEntity + + This example creates a new AA named Main auto attendant that has the following properties: + - It sets a default call flow. + - It sets an after-hours call flow. + - It sets a call flow for Christmas holiday. + - It enables voice response. + - The default language is en-US. + - The time zone is set to UTC. + + + + -------------------------- Example 3 -------------------------- + # Create Christmas Schedule +$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" +$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) + +# Create First Auto Attendant +$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso Customer Support!" +$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." +$dcfMenu = New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -EnableDialByName -DirectorySearchMethod ByName +$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu $dcfMenu + +$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." +$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic +$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption) +$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu $christmasMenu + +$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id + +New-CsAutoAttendant -Name "Customer Support Auto Attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -LanguageId "en-US" -TimeZoneId "UTC" + +# Id : a65b3434-05a1-48ed-883d-e3ca35a60af8 +# TenantId : f6b89083-a2f8-55cc-9f62-33b73af44164 +# Name : Customer Support Auto Attendant +# LanguageId : en-US +# VoiceId : Female +# DefaultCallFlow : Default call flow +# Operator : +# TimeZoneId : UTC +# VoiceResponseEnabled : True +# CallFlows : Christmas +# Schedules : Christmas +# CallHandlingAssociations : Holiday(1) +# Status : Successful +# DialByNameResourceId : caddaea5-c001-5a09-b997-9d3a33e834f2 +# DirectoryLookupScope : +# ApplicationInstances : + +# Create Second Auto Attendant +$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso Store!" +$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." +$dcfMenu = New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -EnableDialByName -DirectorySearchMethod ByName +$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu $dcfMenu + +$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." +$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic +$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption) +$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu $christmasMenu + +$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id + +New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -LanguageId "en-US" -TimeZoneId "UTC" + +# Id : 236450c4-9f1e-4c19-80eb-d68819d36a15 +# TenantId : f6b89083-a2f8-55cc-9f62-33b73af44164 +# Name : Main auto attendant +# LanguageId : en-US +# VoiceId : Female +# DefaultCallFlow : Default call flow +# Operator : +# TimeZoneId : UTC +# VoiceResponseEnabled : True +# CallFlows : Christmas +# Schedules : Christmas +# CallHandlingAssociations : Holiday(1) +# Status : Successful +# DialByNameResourceId : 5abfa626-8f80-54ff-97eb-03c2aadcc329 +# DirectoryLookupScope : +# ApplicationInstances : + +# Show the auto attendants associated with this holiday schedule: +Get-CsOnlineSchedule $christmasSchedule.Id + +# Id : 578745b2-1f94-4a38-844c-6bf6996463ee +# Name : Christmas +# Type : Fixed +# WeeklyRecurrentSchedule : +# FixedSchedule : 24/12/2017 00:00 - 26/12/2017 00:00 +# AssociatedConfigurationIds : a65b3434-05a1-48ed-883d-e3ca35a60af8, 236450c4-9f1e-4c19-80eb-d68819d36a15 + + This example creates two new AAs named Main auto attendant and Customer Support Auto Attendant . Both AAs share the same Christmas holiday schedule. This was done by reusing the Schedule ID of the Christmas holiday when creating the call handling associations for those two AAs using New-CsAutoAttendantCallHandlingAssociation cmdlet. + We can see when we ran the Get-CsOnlineSchedule cmdlet at the end, to get the Christmas Holiday schedule information, that the configuration IDs for the newly created AAs have been added to the `AssociatedConfigurationIds` properties of that schedule. This means any updates made to this schedule would reflect in both associated AAs. + Removing an association between an AA and a schedule is as simple as deleting the CallHandlingAssociation of that schedule in the AA you want to modify. Please refer to Set-CsAutoAttendant (https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant)cmdlet documentation for examples on how to do that. + + + + -------------------------- Example 4 -------------------------- + $aaName = "Main Auto Attendant" +$language = "en-US" +$greetingText = "Welcome to Contoso" +$mainMenuText = "To reach your party by name, say it now. To talk to Sales, please press 1. To talk to User2 press 2. Please press 0 for operator" +$afterHoursText = "Sorry Contoso is closed. Please call back during week days from 7AM to 8PM. Goodbye!" +$tz = "Romance Standard Time" +$operatorId = (Get-CsOnlineUser -Identity "sip:user1@contoso.com").Identity +$user1Id = (Get-CsOnlineUser -Identity "sip:user2@contoso.com").Identity +$salesCQappinstance = (Get-CsOnlineUser -Identity "sales@contoso.com").Identity # one of the application instances associated to the Call Queue +$tr1 = New-CsOnlineTimeRange -Start 07:00 -End 20:00 + +# After hours +$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours" -WeeklyRecurrentSchedule -MondayHours @($tr1) -TuesdayHours @($tr1) -WednesdayHours @($tr1) -ThursdayHours @($tr1) -FridayHours @($tr1) -Complement +$afterHoursGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt $afterHoursText +$afterHoursMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic +$afterHoursMenu = New-CsAutoAttendantMenu -Name "AA menu1" -MenuOptions @($afterHoursMenuOption) +$afterHoursCallFlow = New-CsAutoAttendantCallFlow -Name "After Hours" -Menu $afterHoursMenu -Greetings @($afterHoursGreetingPrompt) +$afterHoursCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id + +# Business hours menu options +$operator = New-CsAutoAttendantCallableEntity -Identity $operatorId -Type User +$sales = New-CsAutoAttendantCallableEntity -Identity $salesCQappinstance -Type applicationendpoint +$user1 = New-CsAutoAttendantCallableEntity -Identity $user1Id -Type User +$menuOption0 = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 -CallTarget $operator +$menuOption1 = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone1 -CallTarget $sales +$menuOption2 = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone2 -CallTarget $user1 + +# Business hours menu +$greetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt $greetingText +$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt $mainMenuText +$menu = New-CsAutoAttendantMenu -Name "AA menu2" -Prompts @($menuPrompt) -EnableDialByName -MenuOptions @($menuOption0,$menuOption1,$menuOption2) +$callFlow = New-CsAutoAttendantCallFlow -Name "Default" -Menu $menu -Greetings $greetingPrompt + +# Auto attendant +New-CsAutoAttendant -Name $aaName -LanguageId $language -CallFlows @($afterHoursCallFlow) -TimeZoneId $tz -Operator $operator -DefaultCallFlow $callFlow -CallHandlingAssociations @($afterHoursCallHandlingAssociation) -EnableVoiceResponse + + This example creates a new AA named Main auto attendant that has the following properties: + - It sets a default call flow. + - It sets an after-hours call flow. + - It sets a business hours options. + - It references a call queue as a menu option. + - The default language is en-US. + - The time zone is set to Romance Standard. + - It sets user1 as operator. + - It has user2 also as a menu option. + - The Auto Attendant is voice enabled. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant + + + New-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation + + + Get-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant + + + Get-CsAutoAttendantStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus + + + Get-CsAutoAttendantSupportedLanguage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage + + + Get-CsAutoAttendantSupportedTimeZone + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone + + + New-CsAutoAttendantCallableEntity + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity + + + New-CsAutoAttendantCallFlow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow + + + New-CsAutoAttendantCallHandlingAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation + + + New-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule + + + Remove-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant + + + Set-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant + + + Update-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant + + + + + + New-CsAutoAttendantCallableEntity + New + CsAutoAttendantCallableEntity + + The New-CsAutoAttendantCallableEntity cmdlet lets you create a callable entity. + + + + The New-CsAutoAttendantCallableEntity cmdlet lets you create a callable entity for use with call transfers from the Auto Attendant service. Callable entities can be created using either Object ID or TEL URIs and can refer to any of the following entities: + - User + - ApplicationEndpoint + - ConfigurationEndpoint + - ExternalPstn + - SharedVoicemail NOTE : In order to setup a shared voicemail, an Office 365 Group that can receive external emails is required. + + + + New-CsAutoAttendantCallableEntity + + CallPriority + + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will reset the priority to 3 - Normal / Default. The Call Priority of the MenuOption, only applies when the `Type` is `ApplicationEndpoint` or `ConfigurationEndpoint`. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 + 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + 3 + + + EnableSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. + + + SwitchParameter + + + False + + + EnableTranscription + + > Applicable: Microsoft Teams + Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. + + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the callable entity; this can be either a Object ID or a TEL URI. + - Only the Object IDs of users that have Enterprise Voice enabled are supported. + - Only PSTN numbers that are acquired and assigned through Skype for Business Online are supported. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + Type + + > Applicable: Microsoft Teams + The Type parameter represents the type of the callable entity, which can be any of the following: + - User + - ApplicationEndpoint (when transferring to a Resource Account) + - ConfigurationEndpoint (when transferring directly to a nested Auto Attendant or Call Queue) + - ExternalPstn + - SharedVoicemail + + > [!IMPORTANT] > Nesting Auto attendants and Call queues via *ConfigurationEndpoint * isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. + + Object + + Object + + + None + + + + + + CallPriority + + > Applicable: Microsoft Teams Saving an auto attendant configuration through Teams admin center will reset the priority to 3 - Normal / Default. The Call Priority of the MenuOption, only applies when the `Type` is `ApplicationEndpoint` or `ConfigurationEndpoint`. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 + 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + 3 + + + EnableSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. + + SwitchParameter + + SwitchParameter + + + False + + + EnableTranscription + + > Applicable: Microsoft Teams + Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the callable entity; this can be either a Object ID or a TEL URI. + - Only the Object IDs of users that have Enterprise Voice enabled are supported. + - Only PSTN numbers that are acquired and assigned through Skype for Business Online are supported. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + Type + + > Applicable: Microsoft Teams + The Type parameter represents the type of the callable entity, which can be any of the following: + - User + - ApplicationEndpoint (when transferring to a Resource Account) + - ConfigurationEndpoint (when transferring directly to a nested Auto Attendant or Call Queue) + - ExternalPstn + - SharedVoicemail + + > [!IMPORTANT] > Nesting Auto attendants and Call queues via *ConfigurationEndpoint * isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. + + Object + + Object + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $callableEntity = New-CsAutoAttendantCallableEntity -Identity "9bad1a25-3203-5207-b34d-1bd933b867a5" -Type User + + This example creates a user callable entity. + + + + -------------------------- Example 2 -------------------------- + $callableEntity = New-CsAutoAttendantCallableEntity -Identity "tel:+1234567890" -Type ExternalPSTN + + This example creates an ExternalPSTN callable entity. + + + + -------------------------- Example 3 -------------------------- + $operatorObjectId = (Get-CsOnlineUser operator@contoso.com).ObjectId +$callableEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User + + This example gets a user object using Get-CsOnlineUser cmdlet. We then use the Microsoft Entra ObjectId of that user object to create a user callable entity. + + + + -------------------------- Example 4 -------------------------- + $callableEntityId = Find-CsOnlineApplicationInstance -SearchQuery "Main Auto Attendant" -MaxResults 1 | Select-Object -Property Id +$callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityId.Id -Type ApplicationEndpoint + + This example gets an application instance by name using Find-CsOnlineApplicationInstance cmdlet. We then use the Microsoft Entra ObjectId of that application instance to create an application endpoint callable entity. + + + + -------------------------- Example 5 -------------------------- + $callableEntityGroup = Find-CsGroup -SearchQuery "Main Auto Attendant" -ExactMatchOnly $true -MailEnabledOnly $true +$callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityGroup -Type SharedVoicemail -EnableTranscription + + This example gets an Office 365 group by name using Find-CsGroup cmdlet. Then the Guid of that group is used to create a shared voicemail callable entity that supports transcription. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity + + + Get-CsOnlineUser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser + + + Find-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance + + + + + + New-CsAutoAttendantCallFlow + New + CsAutoAttendantCallFlow + + Use the New-CsAutoAttendantCallFlow cmdlet to create a new call flow. + + + + The New-CsAutoAttendantCallFlow cmdlet creates a new call flow for use with the Auto Attendant (AA) service. The AA service uses the call flow to handle inbound calls by playing a greeting (if present), and provide callers with actions through a menu. + > [!CAUTION] > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -RingResourceAccountDelegates + + + + New-CsAutoAttendantCallFlow + + ForceListenMenuEnabled + + > Applicable: Microsoft Teams + If specified, DTMF and speech inputs will not be processed while the greeting or menu prompt is playing. It will enforce callers to listen to all menu options before making a selection. + + + SwitchParameter + + + False + + + Greetings + + > Applicable: Microsoft Teams + If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. + You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt)cmdlet. + > [!NOTE] > If Mainline Attendant is enabled, only TTS prompts are supported. > > If Mainline Attendant is enabled and no greeting text is provided, the following default prompt will be played: > > Hello, and thank you for calling [Auto attendant name]. How can I assist you today? Please note that this call may be recorded for compliance purposes. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Menu + + > Applicable: Microsoft Teams + The Menu parameter identifies the menu to render when the call flow is executed. + You can create a new menu by using the `New-CsAutoAttendantMenu` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu)cmdlet. + + System.Object + + System.Object + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the call flow. + + System.String + + System.String + + + None + + + RingResourceAccountDelegates + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. If enabled for this call flow, Auto Attendant will first ring the delegates assigned to the resource account the call is on. If none of the delegates answer, the call is returned to the Auto Attendant for standard processing. + If there are no delegates assigned to the resource account the call is on then the Auto Attendant will process the call normally. + + Boolean + + Boolean + + + False + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + ForceListenMenuEnabled + + > Applicable: Microsoft Teams + If specified, DTMF and speech inputs will not be processed while the greeting or menu prompt is playing. It will enforce callers to listen to all menu options before making a selection. + + SwitchParameter + + SwitchParameter + + + False + + + Greetings + + > Applicable: Microsoft Teams + If present, the prompts specified by the Greetings parameter (either TTS or Audio) are played before the call flow's menu is rendered. + You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt)cmdlet. + > [!NOTE] > If Mainline Attendant is enabled, only TTS prompts are supported. > > If Mainline Attendant is enabled and no greeting text is provided, the following default prompt will be played: > > Hello, and thank you for calling [Auto attendant name]. How can I assist you today? Please note that this call may be recorded for compliance purposes. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Menu + + > Applicable: Microsoft Teams + The Menu parameter identifies the menu to render when the call flow is executed. + You can create a new menu by using the `New-CsAutoAttendantMenu` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu)cmdlet. + + System.Object + + System.Object + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the call flow. + + System.String + + System.String + + + None + + + RingResourceAccountDelegates + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. If enabled for this call flow, Auto Attendant will first ring the delegates assigned to the resource account the call is on. If none of the delegates answer, the call is returned to the Auto Attendant for standard processing. + If there are no delegates assigned to the resource account the call is on then the Auto Attendant will process the call normally. + + Boolean + + Boolean + + + False + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." +$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -EnableDialByName +$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu + + This example creates a new call flow that renders the "Default Menu" menu. + + + + -------------------------- Example 2 -------------------------- + $menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." +$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName +$greeting = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!" +$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -Greetings $greeting -ForceListenMenuEnabled + + This example creates a new call flow that plays a greeting before rendering the "Default Menu" menu with Force listen menu enabled. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow + + + New-CsAutoAttendantMenu + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu + + + Get-CsMainlineAttendantFlow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt + + + + + + New-CsAutoAttendantCallHandlingAssociation + New + CsAutoAttendantCallHandlingAssociation + + Use the `New-CsAutoAttendantCallHandlingAssociation` cmdlet to create a new call handling association. + + + + The `New-CsAutoAttendantCallHandlingAssociation` cmdlet creates a new call handling association to be used with the Auto Attendant (AA) service. The OAA service uses call handling associations to determine which call flow to execute when a specific schedule is in effect. + + + + New-CsAutoAttendantCallHandlingAssociation + + CallFlowId + + > Applicable: Microsoft Teams + The CallFlowId parameter represents the call flow to be associated with the schedule. + You can create a call flow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. + + String + + String + + + None + + + Disable + + > Applicable: Microsoft Teams + The Disable parameter, if set, establishes that the call handling association is created as disabled. This parameter can only be used when the Type parameter is set to AfterHours. + + + SwitchParameter + + + False + + + ScheduleId + + > Applicable: Microsoft Teams + The ScheduleId parameter represents the schedule to be associated with the call flow. + You can create a schedule by using the New-CsOnlineSchedule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule) cmdlet. additionally, you can use [Get-CsOnlineSchedule](https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule)cmdlet to get the schedules configured for your organization. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + Type + + > Applicable: Microsoft Teams + The Type parameter represents the type of the call handling association. Currently, only the following types are supported: + - `AfterHours` + - `Holiday` + + Object + + Object + + + None + + + + + + CallFlowId + + > Applicable: Microsoft Teams + The CallFlowId parameter represents the call flow to be associated with the schedule. + You can create a call flow by using the `New-CsAutoAttendantCallFlow` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow)cmdlet. + + String + + String + + + None + + + Disable + + > Applicable: Microsoft Teams + The Disable parameter, if set, establishes that the call handling association is created as disabled. This parameter can only be used when the Type parameter is set to AfterHours. + + SwitchParameter + + SwitchParameter + + + False + + + ScheduleId + + > Applicable: Microsoft Teams + The ScheduleId parameter represents the schedule to be associated with the call flow. + You can create a schedule by using the New-CsOnlineSchedule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule) cmdlet. additionally, you can use [Get-CsOnlineSchedule](https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule)cmdlet to get the schedules configured for your organization. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + Type + + > Applicable: Microsoft Teams + The Type parameter represents the type of the call handling association. Currently, only the following types are supported: + - `AfterHours` + - `Holiday` + + Object + + Object + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.CallHandlingAssociation + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $tr = New-CsOnlineTimeRange -Start 09:00 -End 17:00 +$schedule = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr) -TuesdayHours @($tr) -WednesdayHours @($tr) -ThursdayHours @($tr) -FridayHours @($tr) -Complement +$scheduleId = $schedule.Id + +$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." +$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName +$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu +$callFlowId = $callFlow.Id + +$callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $scheduleId -CallFlowId $callFlowId + + This example creates the following: + - a new after-hours schedule + - a new after-hours call flow + - a new after-hours call handling association + + + + -------------------------- Example 2 -------------------------- + $tr = New-CsOnlineTimeRange -Start 09:00 -End 17:00 +$schedule = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr) -TuesdayHours @($tr) -WednesdayHours @($tr) -ThursdayHours @($tr) -FridayHours @($tr) -Complement +$scheduleId = $schedule.Id + +$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." +$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName +$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu +$callFlowId = $callFlow.Id + +$disabledCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $scheduleId -CallFlowId $callFlowId -Disable + + This example creates the following: + - a new after-hours schedule + - a new after-hours call flow + - a disabled after-hours call handling association + + + + -------------------------- Example 3 -------------------------- + $dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" +$schedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) +$scheduleId = $schedule.Id + +$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "We are closed for Christmas. Please call back later." +$menuOption = New-CsAutoAttendantMenuOption -DtmfResponse Automatic -Action DisconnectCall +$menu = New-CsAutoAttendantMenu -Name "Christmas Menu" -Prompts @($menuPrompt) -MenuOptions @($menuOption) +$callFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($greeting) -Menu $menu +$callFlowId = $callFlow.Id + +$callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $scheduleId -CallFlowId $callFlowId + + This example creates the following: + - a new holiday schedule + - a new holiday call flow + - a new holiday call handling association + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation + + + New-CsAutoAttendantCallFlow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow + + + New-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule + + + Get-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule + + + + + + New-CsAutoAttendantDialScope + New + CsAutoAttendantDialScope + + Use New-CsAutoAttendantDialScope cmdlet to create dial-scopes for use with Auto Attendant (AA) service. + + + + This cmdlet creates a new dial-scope to be used with Auto Attendant (AA) service. AAs use dial-scopes to restrict the scope of call transfers that can be made through directory lookup feature. NOTE : The returned dial-scope model composes a member for the underlying type/implementation, e.g. in case of the group-based dial scope, in order to modify its Group IDs, you can access them through `DialScope.GroupScope.GroupIds`. + + + + New-CsAutoAttendantDialScope + + GroupIds + + > Applicable: Microsoft Teams + Refers to the IDs of the groups that are to be included in the dial-scope. + Group IDs can be obtained by using the Find-CsGroup cmdlet. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + GroupScope + + > Applicable: Microsoft Teams + Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + GroupIds + + > Applicable: Microsoft Teams + Refers to the IDs of the groups that are to be included in the dial-scope. + Group IDs can be obtained by using the Find-CsGroup cmdlet. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + GroupScope + + > Applicable: Microsoft Teams + Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.DialScope + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $groupIds = @("00000000-0000-0000-0000-000000000000") +$dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds + + In Example 1, the New-CsAutoAttendantDialScope cmdlet is used to create a dial-scope with a group whose id is 00000000-0000-0000-0000-000000000000. + + + + -------------------------- Example 2 -------------------------- + $groupIds = Find-CsGroup -SearchQuery "Contoso Sales" | % { $_.Id } +$dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds + + In Example 2, we use the Find-CsGroup cmdlet to find groups with name "Contoso Sales", and then use the identities of those groups to create an auto attendant dial scope using the New-CsAutoAttendantDialScope cmdlet. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope + + + Find-CsGroup + https://learn.microsoft.com/powershell/module/microsoftteams/find-csgroup + + + + + + New-CsAutoAttendantMenu + New + CsAutoAttendantMenu + + The New-CsAutoAttendantMenu cmdlet creates a new menu. + + + + The New-CsAutoAttendantMenu cmdlet creates a new menu for the Auto Attendant (AA) service. The OAA service uses menus to provide callers with choices, and then takes action based on the selection. + + + + New-CsAutoAttendantMenu + + DirectorySearchMethod + + > Applicable: Microsoft Teams + The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu, for more information, see Set up a Cloud auto attendant (https://learn.microsoft.com/MicrosoftTeams/create-a-phone-system-auto-attendant?WT.mc_id=TeamsAdminCenterCSH)Possible values are + - None + - ByName + - ByExtension + + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod + + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod + + + None + + + EnableDialByName + + > Applicable: Microsoft Teams + The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. + + + SwitchParameter + + + False + + + MenuOptions + + > Applicable: Microsoft Teams + The MenuOptions parameter is a list of menu options for this menu. These menu options specify what action to take when the user sends a particular input. + You can create menu options by using the New-CsAutoAttendantMenuOption cmdlet. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter represents a friendly name for the menu. + + System.String + + System.String + + + None + + + Prompts + + > Applicable: Microsoft Teams + The Prompts parameter reflects the prompts to play when the menu is activated. + You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt)cmdlet. + > [!NOTE] > If Mainline Attendant is enabled, only TTS prompts are supported. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + DirectorySearchMethod + + > Applicable: Microsoft Teams + The DirectorySearchMethod parameter lets you define the type of Directory Search Method for the Auto Attendant menu, for more information, see Set up a Cloud auto attendant (https://learn.microsoft.com/MicrosoftTeams/create-a-phone-system-auto-attendant?WT.mc_id=TeamsAdminCenterCSH)Possible values are + - None + - ByName + - ByExtension + + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod + + Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod + + + None + + + EnableDialByName + + > Applicable: Microsoft Teams + The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. + + SwitchParameter + + SwitchParameter + + + False + + + MenuOptions + + > Applicable: Microsoft Teams + The MenuOptions parameter is a list of menu options for this menu. These menu options specify what action to take when the user sends a particular input. + You can create menu options by using the New-CsAutoAttendantMenuOption cmdlet. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter represents a friendly name for the menu. + + System.String + + System.String + + + None + + + Prompts + + > Applicable: Microsoft Teams + The Prompts parameter reflects the prompts to play when the menu is activated. + You can create prompts by using the `New-CsAutoAttendantPrompt` (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt)cmdlet. + > [!NOTE] > If Mainline Attendant is enabled, only TTS prompts are supported. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.Menu + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." +$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -EnableDialByName -DirectorySearchMethod ByExtension + + This example creates a new menu that allows the caller to reach a target by name, and also defines the Directory Search Method to Dial By Extension. + + + + -------------------------- Example 2 -------------------------- + $menuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 +$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign. For operator, press zero." +$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -MenuOptions @($menuOptionZero) -EnableDialByName -DirectorySearchMethod ByName + + This example creates a new menu that allows the caller to reach a target by name or the operator by pressing the 0 key, and also defines the Directory Search Method to Dial By Name. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu + + + New-CsAutoAttendantMenuOption + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption + + + New-CsAutoAttendantPrompt + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption + + + + + + New-CsAutoAttendantMenuOption + New + CsAutoAttendantMenuOption + + Use the New-CsAutoAttendantMenuOption cmdlet to create a new menu option. + + + + The New-CsAutoAttendantMenuOption cmdlet creates a new menu option for the Auto Attendant (AA) service. The AA service uses the menu options to respond to a caller with the appropriate action. + > [!CAUTION] > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -Description > - -Action AgentAndQueues > - -Action MainLineAttendantFlow > - -MainlineAttendantTarget + + + + New-CsAutoAttendantMenuOption + + Action + + The Action parameter represents the action to be taken when the menu option is activated. The Action must be set to one of the following values: + - AgentAndQueues - Restricted to VoiceApps TAP customers - Announcement - plays a defined prompt then returns to the menu + - DisconnectCall - The call is disconnected. + - MainlineAttendantFlow - Restricted to VoiceApps TAP customers - TransferCallToOperator - the call is transferred to the operator. + - TransferCallToTarget - The call is transferred to the menu option's call target. + + Object + + Object + + + None + + + CallTarget + + The CallTarget parameter represents the target for call transfer after the menu option is selected. + CallTarget is required if the action of the menu option is TransferCallToTarget. + Use the New-CsAutoAttendantCallableEntity cmdlet to create new callable entities. + + Object + + Object + + + None + + + Description + + Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. A description/set of keywords for the option. + Used by Mainline Attendant only. + Limit: 500 characters + + System.String + + System.String + + + None + + + DtmfResponse + + The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option. The DtmfResponse must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + - Automatic - The action is executed without user response. + + Object + + Object + + + None + + + MainlineAttendantTarget + + Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The Mainline Attendant call flow target identifier. + + System.String + + System.String + + + None + + + Prompt + + The Prompt parameter reflects the prompts to play when the menu option is activated. + You can create new prompts by using the New-CsAutoAttendantPrompt cmdlet. + This parameter is required if the Action is set to Announcement . + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + + None + + + AgentTargetType + + The AgentTargetType parameter indicates if a Copilot Studio or IVR application is invoked. The AgentTargetType must be set to one of the following values: + - Copilot - Restricted to VoiceApps TAP customers - requires that Mainline Attendant be enabled - IVR - Restricted to VoiceApps TAP customers + + Object + + Object + + + None + + + AgentTarget + + The AgentTarget parameter is the GUID of the target Copilot or a 3rd party IVR agent. + + String + + String + + + None + + + AgentTargetTagTemplateId + + The AgentTargetTagTemplateId parameter is the GUID of the Tag template to assign. + + String + + String + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + System.Guid + + System.Guid + + + None + + + VoiceResponses + + The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. + Voice responses are currently limited to one voice response per menu option. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + + + + Action + + The Action parameter represents the action to be taken when the menu option is activated. The Action must be set to one of the following values: + - AgentAndQueues - Restricted to VoiceApps TAP customers - Announcement - plays a defined prompt then returns to the menu + - DisconnectCall - The call is disconnected. + - MainlineAttendantFlow - Restricted to VoiceApps TAP customers - TransferCallToOperator - the call is transferred to the operator. + - TransferCallToTarget - The call is transferred to the menu option's call target. + + Object + + Object + + + None + + + CallTarget + + The CallTarget parameter represents the target for call transfer after the menu option is selected. + CallTarget is required if the action of the menu option is TransferCallToTarget. + Use the New-CsAutoAttendantCallableEntity cmdlet to create new callable entities. + + Object + + Object + + + None + + + Description + + Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. A description/set of keywords for the option. + Used by Mainline Attendant only. + Limit: 500 characters + + System.String + + System.String + + + None + + + DtmfResponse + + The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option. The DtmfResponse must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + - Automatic - The action is executed without user response. + + Object + + Object + + + None + + + MainlineAttendantTarget + + Voice applications private preview customers only. Saving an auto attendant configuration through Teams admin center will remove this setting. The Mainline Attendant call flow target identifier. + + System.String + + System.String + + + None + + + Prompt + + The Prompt parameter reflects the prompts to play when the menu option is activated. + You can create new prompts by using the New-CsAutoAttendantPrompt cmdlet. + This parameter is required if the Action is set to Announcement . + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + + None + + + AgentTargetType + + The AgentTargetType parameter indicates if a Copilot Studio or IVR application is invoked. The AgentTargetType must be set to one of the following values: + - Copilot - Restricted to VoiceApps TAP customers - requires that Mainline Attendant be enabled - IVR - Restricted to VoiceApps TAP customers + + Object + + Object + + + None + + + AgentTarget + + The AgentTarget parameter is the GUID of the target Copilot or a 3rd party IVR agent. + + String + + String + + + None + + + AgentTargetTagTemplateId + + The AgentTargetTagTemplateId parameter is the GUID of the Tag template to assign. + + String + + String + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + System.Guid + + System.Guid + + + None + + + VoiceResponses + + The VoiceResponses parameter represents the voice responses to select a menu option when Voice Responses are enabled for the auto attendant. + Voice responses are currently limited to one voice response per menu option. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $menuOption = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 + + This example creates a menu option to call the operator when the 0 key is pressed. + + + + -------------------------- Example 2 -------------------------- + $troubleShootObjectId = (Get-CsOnlineUser troubleShoot@contoso.com).ObjectId +$troubleShootEntity = New-CsAutoAttendantCallableEntity -Identity $troubleShootObjectId -Type ApplicationEndpoint +$menuOption = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone1 -VoiceResponses "Sales" -CallTarget $troubleShootEntity + + This example creates a menu option to transfer the call to an application endpoint when the caller speaks the word "Sales" or presses the 1 key. + + + + -------------------------- Example 3 -------------------------- + $Prompt = New-CsAutoAttendantPrompt -ActiveType TextToSpeech -TextToSpeechPrompt "Our Office is open from Monday to Friday from 9 AM to 5 PM" +$menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse Tone2 -VoiceResponses "Hours" -Prompt $Prompt + + This example creates a menu option to play an announcement for the defined prompt. After playing the announcement, the Menu Prompt is repeated. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption + + + New-CsAutoAttendantCallableEntity + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity + + + + + + New-CsAutoAttendantPrompt + New + CsAutoAttendantPrompt + + Use the New-CsAutoAttendantPrompt cmdlet to create a new prompt. + + + + The New-CsAutoAttendantPrompt cmdlet creates a new prompt for the Auto Attendant (AA) service. A prompt is either an audio file that is played, or text that is read aloud to give callers additional information. A prompt can be disabled by setting the ActiveType to None. + + + + New-CsAutoAttendantPrompt + + ActiveType + + > Applicable: Microsoft Teams + PARAMVALUE: None | TextToSpeech | AudioFile + The ActiveType parameter identifies the active type (modality) of the AA prompt. It can be set to None (the prompt is disabled), TextToSpeech (text-to-speech is played when the prompt is rendered) or AudioFile (audio file data is played when the prompt is rendered). + This is explicitly required if both Audio File and TTS prompts are specified. Otherwise, it is inferred. + + Object + + Object + + + None + + + AudioFilePrompt + + > Applicable: Microsoft Teams + The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). + This parameter is required when audio file prompts are being created. You can create audio files by using the `Import-CsOnlineAudioFile` cmdlet. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + TextToSpeechPrompt + + > Applicable: Microsoft Teams + The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. + This parameter is required when text to speech prompts are being created. + + System.String + + System.String + + + None + + + + New-CsAutoAttendantPrompt + + AudioFilePrompt + + > Applicable: Microsoft Teams + The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). + This parameter is required when audio file prompts are being created. You can create audio files by using the `Import-CsOnlineAudioFile` cmdlet. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + New-CsAutoAttendantPrompt + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + TextToSpeechPrompt + + > Applicable: Microsoft Teams + The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. + This parameter is required when text to speech prompts are being created. + + System.String + + System.String + + + None + + + + + + ActiveType + + > Applicable: Microsoft Teams + PARAMVALUE: None | TextToSpeech | AudioFile + The ActiveType parameter identifies the active type (modality) of the AA prompt. It can be set to None (the prompt is disabled), TextToSpeech (text-to-speech is played when the prompt is rendered) or AudioFile (audio file data is played when the prompt is rendered). + This is explicitly required if both Audio File and TTS prompts are specified. Otherwise, it is inferred. + + Object + + Object + + + None + + + AudioFilePrompt + + > Applicable: Microsoft Teams + The AudioFilePrompt parameter represents the audio to play when the prompt is activated (rendered). + This parameter is required when audio file prompts are being created. You can create audio files by using the `Import-CsOnlineAudioFile` cmdlet. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + TextToSpeechPrompt + + > Applicable: Microsoft Teams + The TextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt that is to be read when the prompt is activated. + This parameter is required when text to speech prompts are being created. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $ttsPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!" + + This example creates a new prompt that reads the supplied text. + + + + -------------------------- Example 2 -------------------------- + $content = [System.IO.File]::ReadAllBytes('C:\Media\hello.wav') +$audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "hello.wav" -Content $content +$audioFilePrompt = New-CsAutoAttendantPrompt -AudioFilePrompt $audioFile + + This example creates a new prompt that plays the selected audio file. + + + + -------------------------- Example 3 -------------------------- + $content = [System.IO.File]::ReadAllBytes('C:\Media\hello.wav') +$audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "hello.wav" -Content $content +$dualPrompt = New-CsAutoAttendantPrompt -ActiveType AudioFile -AudioFilePrompt $audioFile -TextToSpeechPrompt "Welcome to Contoso!" + + This example creates a new prompt that has both audio file and text-to-speech data, but will play the audio file when the prompt is activated (rendered). + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + + + + New-CsBatchPolicyAssignmentOperation + New + CsBatchPolicyAssignmentOperation + + This cmdlet is used to assign or unassign a policy to a batch of users. + + + + When a policy is assigned to a batch of users, the assignments are performed as an asynchronous operation. The cmdlet returns the operation ID which can be used to track the progress and status of the assignments. + Users can be specified by their object ID (guid) or by their SIP address (user@contoso.com). Note that a user's SIP address often has the same value as the User Principal Name (UPN), but this is not required. If a user is specified using their UPN, but it has a different value than their SIP address, then the policy assignment will fail for the user. + A batch may contain up to 5,000 users. If a batch includes duplicate users, the duplicates will be removed from the batch before processing and status will only be provided for the unique users remaining in the batch. For best results, do not submit more than a few batches at a time. Allow batches to complete processing before submitting more batches. + You must be a Teams service admin or a Teams communication admin to run the cmdlet. + Batch policy assignment is currently limited to the following policy types: CallingLineIdentity, ExternalAccessPolicy, OnlineVoiceRoutingPolicy, TeamsAppSetupPolicy, TeamsAppPermissionPolicy, TeamsCallingPolicy, TeamsCallParkPolicy, TeamsChannelsPolicy, TeamsEducationAssignmentsAppPolicy, TeamsEmergencyCallingPolicy, TeamsMeetingBroadcastPolicy, TeamsEmergencyCallRoutingPolicy, TeamsMeetingPolicy, TeamsMessagingPolicy, TeamsTemplatePermissionPolicy, TeamsUpdateManagementPolicy, TeamsUpgradePolicy, TeamsVerticalPackagePolicy, TeamsVideoInteropServicePolicy, TenantDialPlan + + + + New-CsBatchPolicyAssignmentOperation + + AdditionalParameters + + . + + Hashtable + + Hashtable + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Identity + + An array of users, specified either using object IDs (guid) or SIP addresses. There is a maximum of 5,000 users per batch. + + String + + String + + + None + + + OperationName + + An optional name for the batch assignment operation. + + String + + String + + + None + + + PolicyName + + The name of the policy to be assigned to the users. To remove the currently assigned policy, use $null or an empty string "". + + String + + String + + + None + + + PolicyType + + The type of the policy to be assigned to the users. For the list of current policy types accepted by this parameter, see the Description section at the beginning of this article. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + + + + AdditionalParameters + + . + + Hashtable + + Hashtable + + + None + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Identity + + An array of users, specified either using object IDs (guid) or SIP addresses. There is a maximum of 5,000 users per batch. + + String + + String + + + None + + + OperationName + + An optional name for the batch assignment operation. + + String + + String + + + None + + + PolicyName + + The name of the policy to be assigned to the users. To remove the currently assigned policy, use $null or an empty string "". + + String + + String + + + None + + + PolicyType + + The type of the policy to be assigned to the users. For the list of current policy types accepted by this parameter, see the Description section at the beginning of this article. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + + + + + OperationId + + + The ID of the operation that can be used with the Get-CsBatchPolicyAssignmentOperation cmdlet to get the status of the operation. + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + $users_ids = @("psmith@contoso.com","tsanchez@contoso.com","bharvest@contoso.com") +New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Kiosk -Identity $users_ids -OperationName "Batch assign Kiosk" + + In this example, the batch of users is specified as an array of user SIP addresses. + + + + -------------------------- EXAMPLE 2 -------------------------- + $users_ids = @("2bdb15a9-2cf1-4b27-b2d5-fcc1d13eebc9", "d928e0fc-c957-4685-991b-c9e55a3534c7", "967cc9e4-4139-4057-9b84-1af80f4856fc") +New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName $null -Identity $users_ids -OperationName "Batch unassign meeting policy" + + In this example, a policy is removed from a batch of users by passing $null as the policy name. + + + + -------------------------- EXAMPLE 3 -------------------------- + $users_ids = Get-Content .\users_ids.txt +New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Kiosk -Identity $users_ids -OperationName "Batch assign Kiosk" + + In this example, the batch of users is read from a text file containing user object IDs (guids). + + + + -------------------------- EXAMPLE 4 -------------------------- + Connect-AzureAD +$users = Get-AzureADUser +New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Kiosk -Identity $users.SipProxyAddress -OperationName "batch assign kiosk" + + In this example, the batch of users is obtained by connecting to Microsoft Entra ID and retrieving a collection of users and then referencing the SipProxyAddress property. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicyassignmentoperation + + + Get-CsBatchPolicyAssignmentOperation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchpolicyassignmentoperation + + + + + + New-CsBatchPolicyPackageAssignmentOperation + New + CsBatchPolicyPackageAssignmentOperation + + This cmdlet submits an operation that applies a policy package to a batch of users in a tenant. A batch may contain up to 5000 users. + + + + This cmdlet submits an operation that applies a policy package to a batch of users in a tenant. Provide one or more user identities to assign the package with all the associated policies. The available policy packages and their definitions can be found by running Get-CsPolicyPackage. The recommended policy package for each user can be found by running Get-CsUserPolicyPackageRecommendation. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. + + + + New-CsBatchPolicyPackageAssignmentOperation + + Identity + + > Applicable: Microsoft Teams + A list of one or more users in the tenant. A user identity can either be a user's object id or email address. + + String[] + + String[] + + + None + + + PackageName + + > Applicable: Microsoft Teams + The name of a specific policy package to apply. All policy package names can be found by running Get-CsPolicyPackage. To remove the currently assigned package, use $null or an empty string "". This will not remove any policy assignments, just the package assigned value. + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + A list of one or more users in the tenant. A user identity can either be a user's object id or email address. + + String[] + + String[] + + + None + + + PackageName + + > Applicable: Microsoft Teams + The name of a specific policy package to apply. All policy package names can be found by running Get-CsPolicyPackage. To remove the currently assigned package, use $null or an empty string "". This will not remove any policy assignments, just the package assigned value. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsBatchPolicyPackageAssignmentOperation -Identity 1bc0b35f-095a-4a37-a24c-c4b6049816ab,johndoe@example.com,richardroe@example.com -PackageName Education_PrimaryStudent + + Applies the Education_PrimaryStudent policy package to three users in the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicypackageassignmentoperation + + + Get-CsPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + Get-CsUserPolicyPackageRecommendation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation + + + Get-CsUserPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage + + + + + + New-CsBatchTeamsDeployment + New + CsBatchTeamsDeployment + + This cmdlet is used to run a batch deployment orchestration. + + + + Deploying Teams at scale enables admins to deploy up to 500 teams and add 25 users per team using one Teams PowerShell command and two CSV files. This allows admins to meet your organization's scale needs and significantly reduce deployment time. Admins can also use this solution to add and remove members from existing teams at scale. You can use this cmdlet to: - Create teams using pre-built templates or your own custom templates. + - Add users to teams as owners or members. + - Manage teams at scale by adding or removing users from existing teams. + - Stay notified through email, including completion, status, and errors (if any). You can choose to notify up to five people about the status of each batch of teams you deploy. Team owners and members are automatically notified when they're added to a team. + + + + New-CsBatchTeamsDeployment + + TeamsFilePath + + The path to the CSV file that defines the teams you're creating. For information about the CSV file format, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). + + String + + String + + + None + + + UsersFilePath + + The path to the CSV file that maps the users you're adding to each team. For information about the CSV file format, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). + + String + + String + + + None + + + UsersToNotify + + The email addresses of up to five recipients to notify about this deployment. The recipients will receive email notifications about deployment status. The email contains the orchestration ID for the batch you submitted and any errors that may have occurred. + + String + + String + + + None + + + + + + TeamsFilePath + + The path to the CSV file that defines the teams you're creating. For information about the CSV file format, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). + + String + + String + + + None + + + UsersFilePath + + The path to the CSV file that maps the users you're adding to each team. For information about the CSV file format, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). + + String + + String + + + None + + + UsersToNotify + + The email addresses of up to five recipients to notify about this deployment. The recipients will receive email notifications about deployment status. The email contains the orchestration ID for the batch you submitted and any errors that may have occurred. + + String + + String + + + None + + + + + + + OrchestrationId + + + The ID of the operation that can be used with the Get-CsBatchTeamsDeploymentStatus cmdlet to get the status of the operation. + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + New-CsBatchTeamsDeployment -TeamsFilePath "C:\dscale\Teams.csv" -UsersFilePath "C:\dscale\Users.csv" -UsersToNotify "adminteams@contoso.com,adelev@contoso.com" + + This command runs a batch deployment with the provided parameters in the CSV files and emails the status and errors (if any) to adminteams@contoso.com and adelev@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchteamsdeployment + + + Get-CsBatchTeamsDeploymentStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchteamsdeploymentstatus + + + + + + New-CsCallingLineIdentity + New + CsCallingLineIdentity + + Use the New-CsCallingLineIdentity cmdlet to create a new Caller ID policy for your organization. + + + + You can either change or block the Caller ID (also called a Calling Line ID) for a user. By default, the Teams or Skype for Business Online user's phone number can be seen when that user makes a call to a PSTN phone, or when a call comes in. You can create a Caller ID policy to provide an alternate displayed number, or to block any number from being displayed. + Note: - Identity must be unique. + - If CallerIdSubstitute is given as "Resource", then ResourceAccount cannot be empty. + + + + New-CsCallingLineIdentity + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. + + String + + String + + + None + + + BlockIncomingPstnCallerID + + > Applicable: Microsoft Teams + The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is false. + The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True and if this policy is assigned to a user, then Caller ID for incoming calls is suppressed/anonymous. + + Boolean + + Boolean + + + None + + + CallingIDSubstitute + + > Applicable: Microsoft Teams + The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The default value is LineUri. Supported values are Anonymous, LineUri, and Resource. + + String + + String + + + None + + + CompanyName + + > Applicable: Microsoft Teams + This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + The Description parameter briefly describes the Caller ID policy. + + String + + String + + + None + + + EnableUserOverride + + > Applicable: Microsoft Teams + The EnableUserOverride parameter gives Microsoft Teams users the option under Settings and Calls to hide their phone number when making outgoing calls. The CallerID will be Anonymous. + If CallingIDSubstitute is set to Anonymous, the EnableUserOverride parameter has no effect, and the caller ID is always set to Anonymous. + EnableUserOverride has precedence over other settings in the policy unless substitution is set to Anonymous. For example, assume the policy instance has substitution using a resource account and EnableUserOverride is set and enabled by the user. In this case, the outbound caller ID will be blocked and Anonymous will be used. + + Boolean + + Boolean + + + False + + + ResourceAccount + + > Applicable: Microsoft Teams + This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + BlockIncomingPstnCallerID + + > Applicable: Microsoft Teams + The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is false. + The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True and if this policy is assigned to a user, then Caller ID for incoming calls is suppressed/anonymous. + + Boolean + + Boolean + + + None + + + CallingIDSubstitute + + > Applicable: Microsoft Teams + The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The default value is LineUri. Supported values are Anonymous, LineUri, and Resource. + + String + + String + + + None + + + CompanyName + + > Applicable: Microsoft Teams + This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + The Description parameter briefly describes the Caller ID policy. + + String + + String + + + None + + + EnableUserOverride + + > Applicable: Microsoft Teams + The EnableUserOverride parameter gives Microsoft Teams users the option under Settings and Calls to hide their phone number when making outgoing calls. The CallerID will be Anonymous. + If CallingIDSubstitute is set to Anonymous, the EnableUserOverride parameter has no effect, and the caller ID is always set to Anonymous. + EnableUserOverride has precedence over other settings in the policy unless substitution is set to Anonymous. For example, assume the policy instance has substitution using a resource account and EnableUserOverride is set and enabled by the user. In this case, the outbound caller ID will be blocked and Anonymous will be used. + + Boolean + + Boolean + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. + + String + + String + + + None + + + ResourceAccount + + > Applicable: Microsoft Teams + This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsCallingLineIdentity -Identity Anonymous -Description "anonymous policy" -CallingIDSubstitute Anonymous -EnableUserOverride $false + + This example creates a new Caller ID policy that sets the Caller ID to Anonymous. + + + + -------------------------- Example 2 -------------------------- + New-CsCallingLineIdentity -Identity BlockIncomingCLID -BlockIncomingPstnCallerID $true + + This example creates a new Caller ID policy that blocks the incoming Caller ID. + + + + -------------------------- Example 3 -------------------------- + $ObjId = (Get-CsOnlineApplicationInstance -Identity dkcq@contoso.com).ObjectId +New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUserOverride $false -ResourceAccount $ObjId -CompanyName "Contoso" + + This example creates a new Caller ID policy that sets the Caller ID to the phone number of the specified resource account and sets the Calling party name to Contoso + + + + -------------------------- Example 4 -------------------------- + New-CsCallingLineIdentity -Identity AllowAnonymousForUsers -EnableUserOverride $true + + This example creates a new Caller ID policy that allows Teams users to make anonymous calls. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity + + + Get-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity + + + Grant-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity + + + Remove-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity + + + Set-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity + + + + + + New-CsCallQueue + New + CsCallQueue + + Creates new Call Queue in your Teams organization. + + + + The New-CsCallQueue cmdlet creates a new Call Queue. + > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items: > > - -HideAuthorizedUsers > - -OverflowActionCallPriority > - -OverflowRedirectPersonTextToSpeechPrompt > - -OverflowRedirectPersonAudioFilePrompt > - -OverflowRedirectVoicemailTextToSpeechPrompt > - -OverflowRedirectVoicemailAudioFilePrompt > - -TimeoutActionCallPriority > - -TimeoutRedirectPersonTextToSpeechPrompt > - -TimeoutRedirectPersonAudioFilePrompt > - -TimeoutRedirectVoicemailTextToSpeechPrompt > - -TimeoutRedirectVoicemailAudioFilePrompt > - -NoAgentActionCallPriority > - -NoAgentRedirectPersonTextToSpeechPrompt > - -NoAgentRedirectPersonAudioFilePrompt > - -NoAgentRedirectVoicemailTextToSpeechPrompt > - -NoAgentRedirectVoicemailAudioFilePrompt > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -ComplianceRecordingForCallQueueTemplateId > - -TextAnnouncementForCR > - -CustomAudioFileAnnouncementForCR > - -TextAnnouncementForCRFailure > - -CustomAudioFileAnnouncementForCRFailure > - -SharedCallQueueHistoryTemplateId > > Nesting Auto attendants and Call queues (/microsoftteams/plan-auto-attendant-call-queue#nested-auto-attendants-and-call-queues) without a resource account isn't currently supported for [Authorized users](/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. > > Authorized users can't edit call flows with call priorities at this time. + + + + New-CsCallQueue + + AgentAlertTime + + > Applicable: Microsoft Teams + The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. The default value is 30 seconds. + + Int16 + + Int16 + + + 30 + + + AllowOptOut + + > Applicable: Microsoft Teams + The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + + Boolean + + Boolean + + + True + + + AuthorizedUsers + + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + CallbackEmailNotificationTarget + + > Applicable: Microsoft Teams + The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferAudioFilePromptResourceId + + > Applicable: Microsoft Teams + The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferTextToSpeechPrompt + + > Applicable: Microsoft Teams + The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallbackRequestDtmf + + The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + + This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallToAgentRatioThresholdBeforeOfferingCallback + + The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of 1. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + ChannelId + + > Applicable: Microsoft Teams + Id of the channel to connect a call queue to. + + String + + String + + + None + + + ChannelUserObjectId + + > Applicable: Microsoft Teams + Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team the channels belongs to. + + Guid + + Guid + + + None + + + ComplianceRecordingForCallQueueTemplateId + + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The ComplianceRecordingForCallQueueTemplateId parameter indicates a list of up to 2 Compliance Recording for Call Queue templates to apply to the call queue. + + List + + List + + + None + + + ConferenceMode + + > Applicable: Microsoft Teams + The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: + - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. + - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + + Boolean + + Boolean + + + True + + + CustomAudioFileAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCR parameter indicates the unique identifier for the Audio file prompt which is played to callers when compliance recording for call queues is enabled. + + Guid + + Guid + + + None + + + CustomAudioFileAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCRFailure parameter indicates the unique identifier for the Audio file prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + Guid + + Guid + + + None + + + DistributionLists + + > Applicable: Microsoft Teams + The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + + List + + List + + + None + + + EnableNoAgentSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableNoAgentSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + HideAuthorizedUsers + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + IsCallbackEnabled + + The IsCallbackEnabled parameter is used to turn on/off callback. + + Boolean + + Boolean + + + None + + + LanguageId + + > Applicable: Microsoft Teams + The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter if either OverflowAction or TimeoutAction is set to SharedVoicemail. + You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. + + String + + String + + + None + + + LineUri + + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. + + String + + String + + + None + + + MusicOnHoldAudioFileId + + > Applicable: Microsoft Teams + The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + + Guid + + Guid + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter specifies a unique name for the Call Queue. + + String + + String + + + None + + + NoAgentAction + + > Applicable: Microsoft Teams + The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. + PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + NoAgentActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + NoAgentActionTarget + + > Applicable: Microsoft Teams + The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a GUID or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a Microsoft 365 Group ID. Otherwise, this field is optional. + + String + + String + + + None + + + NoAgentApplyTo + + > Applicable: Microsoft Teams + The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. + PARAMVALUE: AllCalls | NewCalls + + Object + + Object + + + Disconnect + + + NoAgentDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. + + Guid + + Guid + + + None + + + NoAgentDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. + + String + + String + + + None + + + NoAgentRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. + + String + + String + + + None + + + NoAgentRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + + String + + String + + + None + + + NoAgentRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. + + String + + String + + + None + + + NoAgentRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + + Guid + + Guid + + + None + + + NoAgentRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + + String + + String + + + None + + + NoAgentSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + NoAgentSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + NumberOfCallsInQueueBeforeOfferingCallback + + The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + OboResourceAccountIds + + > Applicable: Microsoft Teams + The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. + + List + + List + + + None + + + OverflowAction + + > Applicable: Microsoft Teams + The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. + PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + DisconnectWithBusy + + + OverflowActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the OverFlowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + OverflowActionTarget + + > Applicable: Microsoft Teams + The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. + + String + + String + + + None + + + OverflowDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. + + Guid + + Guid + + + None + + + OverflowDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + + String + + String + + + None + + + OverflowRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + String + + String + + + None + + + OverflowRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + + String + + String + + + None + + + OverflowRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. + + String + + String + + + None + + + OverflowRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + String + + String + + + None + + + OverflowSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + OverflowSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + OverflowThreshold + + > Applicable: Microsoft Teams + The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. + + Int16 + + Int16 + + + 50 + + + PresenceBasedRouting + + > Applicable: Microsoft Teams + The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. + + Boolean + + Boolean + + + True + + + RoutingMethod + + > Applicable: Microsoft Teams + The RoutingMethod parameter defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If the routing method is set to RoundRobin, the agents will be called using the Round Robin strategy so that all agents share the call load equally. If the routing method is set to LongestIdle, the agents will be called based on their idle time, that is, the agent that has been idle for the longest period will be called. + PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle + + Object + + Object + + + Attendant + + + ServiceLevelThresholdResponseTimeInSecond + + The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. + A value of `$null` indicates that a service level percentage will not be calculated for this call queue. + + Int16 + + Int16 + + + None + + + SharedCallQueueHistoryTemplateId + + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The SharedCallQueueHistoryTemplateId parameter indicates the Shared Call Queue History template to apply to the call queue. + + String + + String + + + None + + + ShiftsSchedulingGroupId + + > Applicable: Microsoft Teams + Id of the Scheduling Group to connect a call queue to. + + String + + String + + + None + + + ShiftsTeamId + + > Applicable: Microsoft Teams + Id of the Team containing the Scheduling Group to connect a call queue to. + + String + + String + + + None + + + ShouldOverwriteCallableChannelProperty + + A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. + + Boolean + + Boolean + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + TextAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCR parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers when compliance recording for call queues is enabled. + + String + + String + + + None + + + TextAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCRFailure parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + String + + String + + + None + + + TimeoutAction + + > Applicable: Microsoft Teams + The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. + PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + TimeoutActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + TimeoutActionTarget + + > Applicable: Microsoft Teams + The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. + + String + + String + + + None + + + TimeoutDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. + + Guid + + Guid + + + None + + + TimeoutDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. + + String + + String + + + None + + + TimeoutRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. + + String + + String + + + None + + + TimeoutRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + + String + + String + + + None + + + TimeoutRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. + + String + + String + + + None + + + TimeoutRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + + String + + String + + + None + + + TimeoutSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + TimeoutSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + TimeoutThreshold + + > Applicable: Microsoft Teams + The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. + + Int16 + + Int16 + + + 1200 + + + UseDefaultMusicOnHold + + > Applicable: Microsoft Teams + The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. + + Boolean + + Boolean + + + None + + + Users + + > Applicable: Microsoft Teams + The Users parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). + + List + + List + + + None + + + WaitTimeBeforeOfferingCallbackInSecond + + The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + WelcomeMusicAudioFileId + + > Applicable: Microsoft Teams + The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. + + Guid + + Guid + + + None + + + WelcomeTextToSpeechPrompt + + This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. + + String + + String + + + None + + + + + + AgentAlertTime + + > Applicable: Microsoft Teams + The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. The default value is 30 seconds. + + Int16 + + Int16 + + + 30 + + + AllowOptOut + + > Applicable: Microsoft Teams + The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + + Boolean + + Boolean + + + True + + + AuthorizedUsers + + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + CallbackEmailNotificationTarget + + > Applicable: Microsoft Teams + The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferAudioFilePromptResourceId + + > Applicable: Microsoft Teams + The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferTextToSpeechPrompt + + > Applicable: Microsoft Teams + The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallbackRequestDtmf + + The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + + This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallToAgentRatioThresholdBeforeOfferingCallback + + The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of 1. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + ChannelId + + > Applicable: Microsoft Teams + Id of the channel to connect a call queue to. + + String + + String + + + None + + + ChannelUserObjectId + + > Applicable: Microsoft Teams + Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team the channels belongs to. + + Guid + + Guid + + + None + + + ComplianceRecordingForCallQueueTemplateId + + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The ComplianceRecordingForCallQueueTemplateId parameter indicates a list of up to 2 Compliance Recording for Call Queue templates to apply to the call queue. + + List + + List + + + None + + + ConferenceMode + + > Applicable: Microsoft Teams + The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: + - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. + - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + + Boolean + + Boolean + + + True + + + CustomAudioFileAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCR parameter indicates the unique identifier for the Audio file prompt which is played to callers when compliance recording for call queues is enabled. + + Guid + + Guid + + + None + + + CustomAudioFileAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCRFailure parameter indicates the unique identifier for the Audio file prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + Guid + + Guid + + + None + + + DistributionLists + + > Applicable: Microsoft Teams + The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + + List + + List + + + None + + + EnableNoAgentSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableNoAgentSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + HideAuthorizedUsers + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + IsCallbackEnabled + + The IsCallbackEnabled parameter is used to turn on/off callback. + + Boolean + + Boolean + + + None + + + LanguageId + + > Applicable: Microsoft Teams + The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter if either OverflowAction or TimeoutAction is set to SharedVoicemail. + You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. + + String + + String + + + None + + + LineUri + + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. + + String + + String + + + None + + + MusicOnHoldAudioFileId + + > Applicable: Microsoft Teams + The MusicOnHoldAudioFileId parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + + Guid + + Guid + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter specifies a unique name for the Call Queue. + + String + + String + + + None + + + NoAgentAction + + > Applicable: Microsoft Teams + The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. + PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + NoAgentActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + NoAgentActionTarget + + > Applicable: Microsoft Teams + The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a GUID or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a Microsoft 365 Group ID. Otherwise, this field is optional. + + String + + String + + + None + + + NoAgentApplyTo + + > Applicable: Microsoft Teams + The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. + PARAMVALUE: AllCalls | NewCalls + + Object + + Object + + + Disconnect + + + NoAgentDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. + + Guid + + Guid + + + None + + + NoAgentDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. + + String + + String + + + None + + + NoAgentRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. + + String + + String + + + None + + + NoAgentRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + + String + + String + + + None + + + NoAgentRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. + + String + + String + + + None + + + NoAgentRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + + Guid + + Guid + + + None + + + NoAgentRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + + String + + String + + + None + + + NoAgentSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + NoAgentSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + NumberOfCallsInQueueBeforeOfferingCallback + + The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + OboResourceAccountIds + + > Applicable: Microsoft Teams + The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. + + List + + List + + + None + + + OverflowAction + + > Applicable: Microsoft Teams + The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. + PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + DisconnectWithBusy + + + OverflowActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the OverFlowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + OverflowActionTarget + + > Applicable: Microsoft Teams + The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. + + String + + String + + + None + + + OverflowDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. + + Guid + + Guid + + + None + + + OverflowDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + + String + + String + + + None + + + OverflowRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + String + + String + + + None + + + OverflowRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + + String + + String + + + None + + + OverflowRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. + + String + + String + + + None + + + OverflowRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + String + + String + + + None + + + OverflowSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + OverflowSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + OverflowThreshold + + > Applicable: Microsoft Teams + The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. + + Int16 + + Int16 + + + 50 + + + PresenceBasedRouting + + > Applicable: Microsoft Teams + The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. + + Boolean + + Boolean + + + True + + + RoutingMethod + + > Applicable: Microsoft Teams + The RoutingMethod parameter defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If the routing method is set to RoundRobin, the agents will be called using the Round Robin strategy so that all agents share the call load equally. If the routing method is set to LongestIdle, the agents will be called based on their idle time, that is, the agent that has been idle for the longest period will be called. + PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle + + Object + + Object + + + Attendant + + + ServiceLevelThresholdResponseTimeInSecond + + The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. + A value of `$null` indicates that a service level percentage will not be calculated for this call queue. + + Int16 + + Int16 + + + None + + + SharedCallQueueHistoryTemplateId + + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The SharedCallQueueHistoryTemplateId parameter indicates the Shared Call Queue History template to apply to the call queue. + + String + + String + + + None + + + ShiftsSchedulingGroupId + + > Applicable: Microsoft Teams + Id of the Scheduling Group to connect a call queue to. + + String + + String + + + None + + + ShiftsTeamId + + > Applicable: Microsoft Teams + Id of the Team containing the Scheduling Group to connect a call queue to. + + String + + String + + + None + + + ShouldOverwriteCallableChannelProperty + + A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. + + Boolean + + Boolean + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + TextAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCR parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers when compliance recording for call queues is enabled. + + String + + String + + + None + + + TextAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCRFailure parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + String + + String + + + None + + + TimeoutAction + + > Applicable: Microsoft Teams + The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. + PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + TimeoutActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + TimeoutActionTarget + + > Applicable: Microsoft Teams + The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. + + String + + String + + + None + + + TimeoutDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. + + Guid + + Guid + + + None + + + TimeoutDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. + + String + + String + + + None + + + TimeoutRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. + + String + + String + + + None + + + TimeoutRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + + String + + String + + + None + + + TimeoutRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. + + String + + String + + + None + + + TimeoutRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + + String + + String + + + None + + + TimeoutSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + TimeoutSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + TimeoutThreshold + + > Applicable: Microsoft Teams + The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. + + Int16 + + Int16 + + + 1200 + + + UseDefaultMusicOnHold + + > Applicable: Microsoft Teams + The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. + + Boolean + + Boolean + + + None + + + Users + + > Applicable: Microsoft Teams + The Users parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). + + List + + List + + + None + + + WaitTimeBeforeOfferingCallbackInSecond + + The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + WelcomeMusicAudioFileId + + > Applicable: Microsoft Teams + The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. + + Guid + + Guid + + + None + + + WelcomeTextToSpeechPrompt + + This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. + + String + + String + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsCallQueue -Name "Help Desk" -UseDefaultMusicOnHold $true + + This example creates a Call Queue for the organization named "Help Desk" using default music on hold. + + + + -------------------------- Example 2 -------------------------- + New-CsCallQueue -Name "Help desk" -RoutingMethod Attendant -DistributionLists @("8521b0e3-51bd-4a4b-a8d6-b219a77a0a6a", "868dccd8-d723-4b4f-8d74-ab59e207c357") -AllowOptOut $false -AgentAlertTime 30 -OverflowThreshold 15 -OverflowAction Forward -OverflowActionTarget 7fd04db1-1c8e-4fdf-9af5-031514ba1358 -TimeoutThreshold 30 -TimeoutAction Disconnect -MusicOnHoldAudioFileId 1e81adaf-7c3e-4db1-9d61-5d135abb1bcc -WelcomeMusicAudioFileId 0b31bbe5-e2a0-4117-9b6f-956bca6023f8 + + This example creates a Call Queue for the organization named "Help Desk" with music on hold and welcome music audio files. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallqueue + + + Create a Phone System Call Queue + https://support.office.com/article/Create-a-Phone-System-call-queue-67ccda94-1210-43fb-a25b-7b9785f8a061 + + + Get-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + + + + New-CsCloudCallDataConnection + New + CsCloudCallDataConnection + + This cmdlet creates an online call data connection. + + + + This cmdlet creates an online call data connection. If you get an error that the connection already exists, it means that the call data connection already exists for your tenant. In this case, run Get-CsCloudCallDataConnection. + + + + New-CsCloudCallDataConnection + + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The New-CsCloudCallDataConnection cmdlet is only supported in commercial environments from Teams PowerShell Module versions 4.6.0 or later. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsCloudCallDataConnection + +Token +----- +00000000-0000-0000-0000-000000000000 + + Returns a token value, which is needed when configuring your on-premises environment with Set-CsCloudCallDataConnector. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscloudcalldataconnection + + + Configure Call Data Connector + https://learn.microsoft.com/skypeforbusiness/hybrid/configure-call-data-connector + + + Get-CsCloudCallDataConnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscloudcalldataconnection + + + + + + New-CsComplianceRecordingForCallQueueTemplate + New + CsComplianceRecordingForCallQueueTemplate + + Use the New-CsComplianceRecordingForCallQueueTemplate cmdlet to create a Compliance Recording for Call Queues template. + + + + Use the New-CsComplianceRecordingForCallQueueTemplate cmdlet to create a Compliance Recording for Call Queues template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + New-CsComplianceRecordingForCallQueueTemplate + + BotApplicationInstanceObjectId + + The compliance recording bot's application instance object Id. + Use Get-CsOnlineApplicationInstance (get-csonlineapplicationinstance.md)to get the `ObjectId`. + + System.String + + System.String + + + None + + + ConcurrentInvitationCount + + The number of concurrent invitations to send to the compliance recording for call queue bot. + + System.Int32 + + System.Int32 + + + 1 + + + Description + + A description for the compliance recording for call queues template. + + System.String + + System.String + + + None + + + Name + + The name of the compliance recording for call queue template. + + System.String + + System.String + + + None + + + PairedApplicationInstanceObjectId + + The PairedApplicationInstanceObjectId parameter specifies the paired compliance recording bot application object Id to invite to the call. + + System.String + + System.String + + + None + + + RequiredBeforeCall + + Indicates if the compliance recording for call queues bot must be able to join the call. Strict recording - if the bot can't join the call, the call will end. + + System.Booleen + + System.Booleen + + + False + + + RequiredDuringCall + + Indicates if the compliance recording for call queues bot must remain part of the call. Strict recording - if the bot leaves the call, the call will end. + + System.Booleen + + System.Booleen + + + False + + + + + + BotApplicationInstanceObjectId + + The compliance recording bot's application instance object Id. + Use Get-CsOnlineApplicationInstance (get-csonlineapplicationinstance.md)to get the `ObjectId`. + + System.String + + System.String + + + None + + + ConcurrentInvitationCount + + The number of concurrent invitations to send to the compliance recording for call queue bot. + + System.Int32 + + System.Int32 + + + 1 + + + Description + + A description for the compliance recording for call queues template. + + System.String + + System.String + + + None + + + Name + + The name of the compliance recording for call queue template. + + System.String + + System.String + + + None + + + PairedApplicationInstanceObjectId + + The PairedApplicationInstanceObjectId parameter specifies the paired compliance recording bot application object Id to invite to the call. + + System.String + + System.String + + + None + + + RequiredBeforeCall + + Indicates if the compliance recording for call queues bot must be able to join the call. Strict recording - if the bot can't join the call, the call will end. + + System.Booleen + + System.Booleen + + + False + + + RequiredDuringCall + + Indicates if the compliance recording for call queues bot must remain part of the call. Strict recording - if the bot leaves the call, the call will end. + + System.Booleen + + System.Booleen + + + False + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsComplianceRecordingForCallQueueTemplate -Name "Customer Service" -Description "Required before/during call" -BotApplicationInstanceObjectId 14732826-8206-42e3-b51e-6693e2abb698 -RequiredDuringCall $true -RequiredBeforeCall $true + + This example creates a new Compliance Recording for Call Queue template. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsComplianceRecordingForCallQueueTemplate + + + Get-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + New-CsCustomPolicyPackage + New + CsCustomPolicyPackage + + This cmdlet creates a custom policy package. + + + + This cmdlet creates a custom policy package. It allows the admin to create their own policy packages for the tenant. For more information on policy packages and the policy types available, see Managing policy packages in Teams (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages). Note: This cmdlet is currently in private preview. + + + + New-CsCustomPolicyPackage + + Identity + + > Applicable: Microsoft Teams + The name of the custom package. + + String + + String + + + None + + + PolicyList + + > Applicable: Microsoft Teams + A list of one or more policies to be added in the package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy). + + String[] + + String[] + + + None + + + Description + + > Applicable: Microsoft Teams + The description of the custom package. + + String + + String + + + None + + + + + + Description + + > Applicable: Microsoft Teams + The description of the custom package. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The name of the custom package. + + String + + String + + + None + + + PolicyList + + > Applicable: Microsoft Teams + A list of one or more policies to be added in the package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy). + + String[] + + String[] + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsCustomPolicyPackage -Identity "MyPackage" -PolicyList "TeamsMessagingPolicy, MyMessagingPolicy" + + Creates a custom package named "MyPackage" with one policy in the package: a messaging policy of name "MyMessagingPolicy". + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsCustomPolicyPackage -Identity "MyPackage" -PolicyList "TeamsMessagingPolicy, MyMessagingPolicy", "TeamsMeetingPolicy, MyMeetingPolicy" -Description "My package" + + Creates a custom package named "MyPackage" with description "My package" and two policies in the package: a messaging policy of name "MyMessagingPolicy" and a meeting policy of name "MyMeetingPolicy". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscustompolicypackage + + + Update-CsCustomPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/update-cscustompolicypackage + + + Remove-CsCustomPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscustompolicypackage + + + + + + New-CsEdgeAllowAllKnownDomains + New + CsEdgeAllowAllKnownDomains + + Enables Skype for Business Online federation with all domains except for those domains included on the blocked domains list. + + + + Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: + Whether or not users can communicate with people from other domains and, if so, which domains they are allowed to communicate with. + Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, AOL, and Yahoo. + Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains that users are not allowed to communicate with. By default, users can communicate with any domain that does not appear on the blocked list. However, administrators can modify this default setting and limit communication to domains that are on the allowed domains list. + Skype for Business Online does not allow you to directly modify the allowed list or the blocked list; for example, you cannot use a command similar to this one, which passes a string value representing a domain name to the allowed domains list: + `Set-CsTenantFederationConfiguration -AllowedDomains "fabrikam.com"` + Instead, you must use either the New-CsEdgeAllowAllKnownDomains cmdlet or the New-CsEdgeAllowList cmdlet to create a domain object and then pass that domain object to the Set-CsTenantFederationConfiguration cmdlet. The New-CsEdgeAllowAllKnownDomains cmdlet is used if you want to allow users to communicate with all domains except for those expressly specified on the blocked domains list. The New-CsEdgeAllowList cmdlet is used if you want to limit user communication to a specified collection of domains. In that case, users will only be allowed to communicate with domains that appear on the allowed domains list. + To configure federation with all known domains, use a set of commands similar to this: + `$x = New-CsEdgeAllowAllKnownDomains` + `Set-CsTenantFederationConfiguration -AllowedDomains $x` + + + + New-CsEdgeAllowAllKnownDomains + + + + + + + Input types + + + None. The New-CsEdgeAllowAllKnownDomains cmdlet does not accept pipelined input. + + + + + + + Output types + + + The New-CsEdgeAllowAllKnownDomains cmdlet creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains object. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $x = New-CsEdgeAllowAllKnownDomains + +Set-CsTenantFederationConfiguration -AllowedDomains $x + + The two commands shown in Example 1 configure the federation settings for the current tenant to allow all known domains. To do this, the first command in the example uses the New-CsEdgeAllowAllKnownDomains cmdlet to create an instance of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains object; this instance is stored in a variable named $x. In the second command, the Set-CsTenantFederationConfiguration cmdlet is called along with the AllowedDomains parameter; using $x as the parameter value configures the federation settings to allow all known domains. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgeallowallknowndomains + + + Set-CsTenantFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration + + + + + + New-CsEdgeAllowList + New + CsEdgeAllowList + + Enables administrators to specify the domains that their users will be allowed to communicate with. + + + + The `New-CsEdgeAllowList` cmdlet, which can be used only with Skype for Business Online, must be used in conjunction with the `New-CsEdgeDomainPattern` cmdlet and the `Set-CsTenantFederationConfiguration` cmdlet. + Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: + Whether or not users can communicate with people from other domains and, if so, which domains they are allowed to communicate with. + Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, AOL, and Yahoo + Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains that users are not allowed to communicate with. By default, users can communicate with any domain that does not appear on the blocked list. However, administrators can modify this default setting and limit communication to domains that are on the allowed domains list. + Skype for Business Online does not allow you to directly modify the allowed list or the blocked list; for example, you cannot use a command similar to this one, which passes a string value representing a domain name to the allowed domains list: + Set-CsTenantFederationConfiguration -AllowedDomains "fabrikam.com" + Instead, you must use either the `New-CsEdgeAllowAllKnownDomains` cmdlet or the `New-CsEdgeAllowList` cmdlet to create a domain object and then pass that domain object to the `Set-CsTenantFederationConfiguration` cmdlet. The `New-CsEdgeAllowAllKnownDomains` cmdlet is used if you want to allow users to communicate with all domains except for those expressly specified on the blocked domains list. The `New-CsEdgeAllowList` cmdlet is used if you want to limit user communication to a specified collection of domains. In that case, users will only be allowed to communicate with domains that appear on the allowed domains list. + To add a single domain (fabrikam.com) to the allowed domain list, you need to use a set of command similar to these: + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + $newAllowList = New-CsEdgeAllowList -AllowedDomain $x + Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList + When this command finishes executing, users will only be allowed to communicate with users from fabrikam.com domain. + + + + New-CsEdgeAllowList + + AllowedDomain + + > Applicable: Microsoft Teams + Object reference to the new domain (or set of domains) to be added to the allowed domain list. Domain object references must be created by using the `New-CsEdgeDomainPattern` cmdlet. Multiple domain objects can be added by separating the object references using commas. For example: + -AllowedDomain $x,$y + + String + + String + + + None + + + + + + AllowedDomain + + > Applicable: Microsoft Teams + Object reference to the new domain (or set of domains) to be added to the allowed domain list. Domain object references must be created by using the `New-CsEdgeDomainPattern` cmdlet. Multiple domain objects can be added by separating the object references using commas. For example: + -AllowedDomain $x,$y + + String + + String + + + None + + + + + + Input types + + + None. The `New-CsEdgeAllowList` cmdlet does not accept pipelined input. + + + + + + + Output types + + + The `New-CsEdgeAllowList` cmdlet creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowList object. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +$newAllowList = New-CsEdgeAllowList -AllowedDomain $x + +Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList + + The commands shown in Example 1 assign the domain fabrikam.com to the allowed domains list for the tenant with the TenantId "bf19b7db-6960-41e5-a139-2aa373474354". To do this, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a domain object for fabrikam.com; this object is stored in a variable named $x. After the domain object has been created, the `New-CsEdgeAllowList` cmdlet is used to create a new allowed list containing only the domain fabrikam.com. + With the allowed domain list created, the final command in the example can then use the `Set-CsTenantFederationConfiguration` cmdlet to configure fabrikam.com as the only domain on the allowed domain list for the current tenant. + + + + -------------------------- Example 2 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "contoso.com" + +$y = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +$newAllowList = New-CsEdgeAllowList -AllowedDomain $x,$y + +Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList + + Example 2 shows how you can add multiple domains to an allowed domains list. This is done by calling the `New-CsEdgeDomainPattern` cmdlet multiple times (one for each domain to be added to the list), and storing the resulting domain objects in separate variables. Each of those variables can then be added to the allow list created by the `New-CsEdgeAllowList` cmdlet simply by using the AllowedDomain parameter and separating the variables name by using commas. + + + + -------------------------- Example 3 -------------------------- + $newAllowList = New-CsEdgeAllowList -AllowedDomain $Null + +Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList + + In Example 3, all domains are removed from the allowed domains list. To do this, the first command in the example uses the `New-CsEdgeAllowList` cmdlet to create a blank list of allowed domains; this is accomplished by setting the AllowedDomain property to a null value ($Null). The resulting object reference ($newAllowList) is then used in conjunction with the `Set-CsTenantFederationConfiguration` cmdlet to remove all the domains from the allowed domain list. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgeallowlist + + + New-CsEdgeDomainPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgedomainpattern + + + Set-CsTenantFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration + + + + + + New-CsEdgeDomainPattern + New + CsEdgeDomainPattern + + Used to specify a domain that will be added or removed from the set of domains enabled for federation or the set of domains disabled for federation. + + + + You must use the New-CsEdgeDomainPattern cmdlet when modifying the allowed or blocked domain lists. String values (such as "fabrikam.com") cannot be directly passed to the cmdlets used to manage either of these lists. + Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: + Whether or not users can communicate with people from other domains and, if so, which domains they are allowed to communicate with. + Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, AOL, and Yahoo. + Federation is managed, in part, by using allowed domain and blocked domain lists. The allowed domain list specifies the domains that users are allowed to communicate with; the blocked domain list specifies the domains that users are not allowed to communicate with. By default, users can communicate with any domain that does not appear on the blocked list. However, administrators can modify this default setting and limit communication to domains that are on the allowed domains list. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. + Skype for Business Online does not allow you to directly modify the allowed list or the blocked list; for example, you cannot use a command similar to this one, which passes a string value representing a domain name to the blocked domains list: + `Set-CsTenantFederationConfiguration -BlockedDomains "fabrikam.com"` + Instead, you must create a domain object by using the New-CsEdgeDomainPattern cmdlet, store that domain object in a variable (in this example, $x), then pass the variable name to the blocked domains list: + `$x = New-CsEdgeDomainPattern -Domain "fabrikam.com"` + `Set-CsTenantFederationConfiguration -BlockedDomains $x` + + + + New-CsEdgeDomainPattern + + Domain + + > Applicable: Microsoft Teams + Fully qualified domain name of the domain to be added to the allow list. For example: + `-Domain "fabrikam.com"` + Note that you cannot use wildcards when specifying a domain name. + + String + + String + + + None + + + + + + Domain + + > Applicable: Microsoft Teams + Fully qualified domain name of the domain to be added to the allow list. For example: + `-Domain "fabrikam.com"` + Note that you cannot use wildcards when specifying a domain name. + + String + + String + + + None + + + + + + Input types + + + None. The New-CsEdgeDomainPattern cmdlet does not accept pipelined input. + + + + + + + Output types + + + The New-CsEdgeDomainPattern cmdlet creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DomainPattern object. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +Set-CsTenantFederationConfiguration -BlockedDomains $x + + Example 1 demonstrates how you can assign a single domain to the blocked domains list for a specified tenant. To do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `BlockedDomains` parameter to configure fabrikam.com as the only domain blocked by the current tenant. Please note that `AllowFederatedUsers` should be `True` for this to work. + + + + -------------------------- Example 2 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +Set-CsTenantFederationConfiguration -AllowedDomains $x + + Example 2 demonstrates how you can assign a single domain to the allowed domains list for a specified tenant. To do this, the first command in the example creates a domain object for the domain fabrikam.com; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `AllowedDomains` parameter to configure fabrikam.com as the only domain allowed by the current tenant. Please note that `AllowFederatedUsers` should be `True` for this to work. + + + + -------------------------- Example 3 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "" + +Set-CsTenantFederationConfiguration -AllowedDomains $x + + Example 3 demonstrates how you can block a specified tenant from any external federation. To do this, the first command in the example creates an empty domain object; this is done by calling the `New-CsEdgeDomainPattern` cmdlet and by saving the resulting domain object in a variable named $x. The second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the `AllowedDomains` parameter to configure the current tenant with a Block-All setting. Please note that `AllowFederatedUsers` should be `True` in case you want to allow specific users to be able to communicate externally via `ExternalAccessPolicy` instances. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgedomainpattern + + + Set-CsTenantFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration + + + + + + New-CsGroupPolicyAssignment + New + CsGroupPolicyAssignment + + This cmdlet is used to assign a policy to a security group or distribution list. + + + + > [!NOTE] > As of May 2023, group policy assignment functionality in Teams PowerShell Module has been extended to support all policy types used in Teams except for the following: > - Teams App Permission Policy > - Teams Network Roaming Policy > - Teams Emergency Call Routing Policy > - Teams Voice Applications Policy > - Teams Upgrade Policy > > This cmdlet will be deprecated in the future. Going forward, group policy assignment can be performed by using the corresponding Grant-Cs[PolicyType] cmdlet with the '-Group' parameter. + This cmdlet is used to assign a policy to a Microsoft 365 group, a security group, or a distribution list. When creating a group policy assignment, you must specify a rank, which indicates the precedence of that assignment relative to any other group assignments for the same policy type that may exist. The assignment will be applied to users in the group for any user that does not have a direct policy assignment, provided the user does not have any higher-ranking assignments from other groups for the same policy type. + The group policy assignment rank is set at the time a policy is assigned to a group and it is relative to other group policy assignments of the same policy type. For example, if there are two groups, each assigned a Teams Meeting policy, then one of the group assignments will be rank 1 while the other will be rank 2. It's helpful to think of rank as determining the position of each policy assignment in an ordered list, from highest rank to lowest rank. In fact, rank can be specified as any number, but these are converted into sequential values 1, 2, 3, etc. with 1 being the highest rank. When assigning a policy to a group, set the rank to be the position in the list where you want the new group policy assignment to be. If a rank is not specified, the policy assignment will be given the lowest rank, corresponding to the end of the list. Assignments applied directly to a user will be treated like rank 0, having precedence over all assignments applied via groups. + Once a group policy assignment is created, the policy assignment will be propagated to the members of the group, including users that are added to the group after the assignment was created. Propagation time of the policy assignments to members of the group varies based on the number of users in the group. Propagation time for subsequent group membership changes also varies based on the number of users being added or removed from the group. For large groups, propagation to all members may take 24 hours or more. When using group policy assignment, the recommended maximum group membership size is 50,000 users per group. + > [!NOTE] > - A given policy type can be assigned to at most 64 groups, across policy instances for that type. > - Policy assignments are only propagated to users that are direct members of the group; the assignments are not propagated to members of nested groups. > - Direct user assignments of policy take precedence over any group policy assignments for a given policy type. Group PolicyPolicy assignments only take effect to a user if that user does not have a direct policy assignment. > - Get-CsOnlineUser only shows direct assignments of policy. It does not show the effect of group policy assignments. To view a specific user's effective policy, use `Get-CsUserPolicyAssignment`. This cmdlet shows whether the effective policy is from a direct assignment or from a group, as well as the ranked order of each group policy assignment in the case where a user is a member of more than 1 group with a group policy assignment of the same policy type. For example, to view all TeamsMeetingPolicy assignments for a given user, $user, run the following powershell cmdlet: `Get-CsUserPolicyAssignment -Identity $user -PolicyType TeamsMeetingPolicy|select -ExpandProperty PolicySource`. For details, see Get-CsUserPolicyAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicyassignment). > - Group policy assignment is currently not available in the Microsoft 365 DoD deployment. + + + + New-CsGroupPolicyAssignment + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + GroupId + + The ID of a batch policy assignment operation. + + String + + String + + + None + + + PassThru + + Returns true when the command succeeds + + + SwitchParameter + + + False + + + PolicyName + + The name of the policy to be assigned. + + String + + String + + + None + + + PolicyType + + The type of policy to be assigned. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + GroupId + + The ID of a batch policy assignment operation. + + String + + String + + + None + + + PassThru + + Returns true when the command succeeds + + SwitchParameter + + SwitchParameter + + + False + + + PolicyName + + The name of the policy to be assigned. + + String + + String + + + None + + + PolicyType + + The type of policy to be assigned. + + String + + String + + + None + + + Rank + + The rank of the policy assignment, relative to other group policy assignments for the same policy type. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsGroupPolicyAssignment -GroupId d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 -PolicyType TeamsMeetingPolicy -PolicyName AllOn -Rank 1 + +Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + + + + + -------------------------- Example 2 -------------------------- + New-CsGroupPolicyAssignment -GroupId salesdepartment@contoso.com -PolicyType TeamsMeetingPolicy -PolicyName Kiosk + +Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 2 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + + + + + -------------------------- Example 3 -------------------------- + Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 2 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + +New-CsGroupPolicyAssignment -GroupId e050ce51-54bc-45b7-b3e6-c00343d31274 -PolicyType TeamsMeetingpolicy -PolicyName AllOff -Rank 2 + +Get-CsGroupPolicyAssignment + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/2019 12:20:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 3 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment + + + Get-CsUserPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicyassignment + + + Get-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment + + + Remove-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment + + + + + + New-CsHybridTelephoneNumber + New + CsHybridTelephoneNumber + + This cmdlet adds a hybrid telephone number to the tenant. + + + + This cmdlet adds a hybrid telephone number to the tenant that can be used for Audio Conferencing with Direct Routing for GCC High and DoD clouds. + > [!IMPORTANT] > This cmdlet is being deprecated. Use the New-CsOnlineDirectRoutingTelephoneNumberUploadOrder cmdlet to add a telephone number for Audio Conferencing with Direct Routing in Microsoft 365 GCC High and DoD clouds. Detailed instructions on how to use the new cmdlet can be found at New-CsOnlineDirectRoutingTelephoneNumberUploadOrder (New-CsOnlineDirectRoutingTelephoneNumberUploadOrder.md). + + + + New-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + The identity parameter. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + New-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + The telephone number to add. The number should be specified with a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + The identity parameter. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + The telephone number to add. The number should be specified with a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + None + + + + + + + + + The cmdlet is only available in GCC High and DoD cloud instances. + + + + + -------------------------- Example 1 -------------------------- + New-CsHybridTelephoneNumber -TelephoneNumber +14025551234 + + This example adds the hybrid phone number +1 (402) 555-1234. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cshybridtelephonenumber + + + Remove-CsHybridTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cshybridtelephonenumber + + + Get-CsHybridTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber + + + + + + New-CsInboundBlockedNumberPattern + New + CsInboundBlockedNumberPattern + + Adds a blocked number pattern to the tenant list. + + + + This cmdlet adds a blocked number pattern to the tenant list. An inbound PSTN call from a number that matches the blocked number pattern will be blocked. + + + + New-CsInboundBlockedNumberPattern + + Identity + + A unique identifier specifying the blocked number pattern to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A friendly description for the blocked number pattern to be created. + + String + + String + + + None + + + Enabled + + If this parameter is set to True, the inbound calls matching the pattern will be blocked. + + Boolean + + Boolean + + + True + + + Pattern + + A regular expression that the calling number must match in order to be blocked. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsInboundBlockedNumberPattern + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A friendly description for the blocked number pattern to be created. + + String + + String + + + None + + + Enabled + + If this parameter is set to True, the inbound calls matching the pattern will be blocked. + + Boolean + + Boolean + + + True + + + Name + + A displayable name describing the blocked number pattern to be created. + + String + + String + + + None + + + Pattern + + A regular expression that the calling number must match in order to be blocked. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + A friendly description for the blocked number pattern to be created. + + String + + String + + + None + + + Enabled + + If this parameter is set to True, the inbound calls matching the pattern will be blocked. + + Boolean + + Boolean + + + True + + + Identity + + A unique identifier specifying the blocked number pattern to be created. + + String + + String + + + None + + + Name + + A displayable name describing the blocked number pattern to be created. + + String + + String + + + None + + + Pattern + + A regular expression that the calling number must match in order to be blocked. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS> New-CsInboundBlockedNumberPattern -Description "Avoid Unwanted Automatic Call" -Name "BlockAutomatic" -Pattern "^\+11234567890" + + This example adds a blocked number pattern to block inbound calls from +11234567890 number. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern + + + Get-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern + + + Set-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern + + + Remove-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern + + + + + + New-CsInboundExemptNumberPattern + New + CsInboundExemptNumberPattern + + This cmdlet lets you configure a new number pattern that is exempt from tenant call blocking. + + + + The `New-CsInboundExemptNumberPattern` cmdlet creates a new inbound exempt number pattern that allows specific phone numbers to bypass tenant call blocking. This is useful for ensuring that important numbers, such as emergency services or critical business contacts, are not inadvertently blocked by the tenant's call blocking policies. + + + + New-CsInboundExemptNumberPattern + + Identity + + Unique identifier for the exempt number pattern to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Sets the description of the number pattern. + + System.String + + System.String + + + None + + + Enabled + + This parameter determines whether the number pattern is enabled for exemption or not. + + Boolean + + Boolean + + + True + + + Name + + A displayable name describing the exempt number pattern to be created. + + String + + String + + + None + + + Pattern + + A regular expression that the calling number must match in order to be exempt from blocking. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Sets the description of the number pattern. + + System.String + + System.String + + + None + + + Enabled + + This parameter determines whether the number pattern is enabled for exemption or not. + + Boolean + + Boolean + + + True + + + Identity + + Unique identifier for the exempt number pattern to be created. + + String + + String + + + None + + + Name + + A displayable name describing the exempt number pattern to be created. + + String + + String + + + None + + + Pattern + + A regular expression that the calling number must match in order to be exempt from blocking. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + You can use Test-CsInboundBlockedNumberPattern to test your block and exempt phone number ranges. + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS> New-CsInboundExemptNumberPattern -Identity "AllowContoso1" -Pattern "^\+?1312555888[2|3]$" -Description "Allow Contoso helpdesk" -Enabled $True + + Creates a new inbound exempt number pattern for the numbers 1 (312) 555-88882 and 1 (312) 555-88883 and enables it + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern + + + Get-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern + + + Set-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern + + + Remove-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern + + + Test-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern + + + Get-CsTenantBlockedCallingNumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers + + + + + + New-CsMainlineAttendantAppointmentBookingFlow + New + CsMainlineAttendantAppointmentBookingFlow + + Creates new Mainline Attendant appointment booking flow + + + + The New-CsMainlineAttendantAppointmentBookingFlow cmdlet creates a new appointment booking connection that can be used with Mainline Attendant + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + New-CsMainlineAttendantAppointmentBookingFlow + + Name + + The name of the appointment booking flow + + String + + String + + + None + + + Description + + The description for the appointment booking flow + Limit: 500 characters. + + String + + String + + + None + + + CallerAuthenticationMethod + + The method by which the caller is authenticated + PARAVALUES: Sms | Email | VerificationLink | Voiceprint | UserDetails + + String + + String + + + None + + + ApiAuthenticationType + + The method of authentication used by the API + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic + + String + + String + + + None + + + ApiDefinitions + + The parameters used by the API + + String + + String + + + None + + + + + + Name + + The name of the appointment booking flow + + String + + String + + + None + + + Description + + The description for the appointment booking flow + Limit: 500 characters. + + String + + String + + + None + + + CallerAuthenticationMethod + + The method by which the caller is authenticated + PARAVALUES: Sms | Email | VerificationLink | Voiceprint | UserDetails + + String + + String + + + None + + + ApiAuthenticationType + + The method of authentication used by the API + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic + + String + + String + + + None + + + ApiDefinitions + + The parameters used by the API + + String + + String + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csmainlineattendantappointmentbookingflow + + + + + + New-CsMainlineAttendantQuestionAnswerFlow + New + CsMainlineAttendantQuestionAnswerFlow + + Creates new Mainline Attendant question and answer (FAQ) flow + + + + The New-CsMainlineAttendantQuestionAnswerFlow cmdlet creates a question and answer connection that can be used with Mainline Attendant + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + New-CsMainlineAttendantQuestionAnswerFlow + + Name + + The name of the question and answer flow + + String + + String + + + None + + + Description + + The description for the question and answer flow + + String + + String + + + None + + + ApiAuthenticationType + + The method of authentication used by the API + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic + + String + + String + + + None + + + KnowledgeBase + + The knowledge base definition + The parameters used by the API + + String + + String + + + None + + + + + + Name + + The name of the question and answer flow + + String + + String + + + None + + + Description + + The description for the question and answer flow + + String + + String + + + None + + + ApiAuthenticationType + + The method of authentication used by the API + PARAVALUES: Basic | ApiKey | BearerTokenStatic | BearerTokenDynamic + + String + + String + + + None + + + KnowledgeBase + + The knowledge base definition + The parameters used by the API + + String + + String + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csmainlineattendantquestionanswerflow + + + + + + New-CsOnlineApplicationInstance + New + CsOnlineApplicationInstance + + Creates an application instance in Microsoft Entra ID. + + + + This cmdlet is used to create an application instance in Microsoft Entra ID. This same cmdlet is also run when creating a new resource account using Teams Admin Center. + + + + New-CsOnlineApplicationInstance + + ApplicationId + + > Applicable: Microsoft Teams + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + + System.Guid + + System.Guid + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DisplayName + + > Applicable: Microsoft Teams + The display name. + + System.String + + System.String + + + None + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + UserPrincipalName + + > Applicable: Microsoft Teams + The user principal name. It will be used as the SIP URI too. The user principal name should have an online domain. + + System.String + + System.String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ApplicationId + + > Applicable: Microsoft Teams + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + + System.Guid + + System.Guid + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DisplayName + + > Applicable: Microsoft Teams + The display name. + + System.String + + System.String + + + None + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + UserPrincipalName + + > Applicable: Microsoft Teams + The user principal name. It will be used as the SIP URI too. The user principal name should have an online domain. + + System.String + + System.String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsOnlineApplicationInstance -UserPrincipalName appinstance01@contoso.com -ApplicationId ce933385-9390-45d1-9512-c8d228074e07 -DisplayName "AppInstance01" + + This example creates a new application instance for an Auto Attendant with UserPrincipalName "appinstance01@contoso.com", ApplicationId "ce933385-9390-45d1-9512-c8d228074e07", DisplayName "AppInstance01" for the tenant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance + + + Get-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance + + + Set-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance + + + Find-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance + + + Sync-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance + + + + + + New-CsOnlineApplicationInstanceAssociation + New + CsOnlineApplicationInstanceAssociation + + Use the New-CsOnlineApplicationInstanceAssociation cmdlet to associate either a single or multiple application instances with an application configuration, like auto attendant or call queue. + + + + The New-CsOnlineApplicationInstanceAssociation cmdlet associates either a single or multiple application instances with an application configuration, like auto attendant or call queue. When an association is created between an application instance and an application configuration, calls reaching that application instance would be handled based on the associated application configuration. For more information on how to create Application Instances , check `New-CsOnlineApplicationInstance` cmdlet documentation. + You can get the Identity of the application instance from the ObjectId of the AD object. + + + + New-CsOnlineApplicationInstanceAssociation + + CallPriority + + > Applicable: Microsoft Teams + The call priority assigned to calls arriving on this application instance if a priority has not already been assigned. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 + 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + + Int16 + + Int16 + + + 3 + + + ConfigurationId + + > Applicable: Microsoft Teams + The ConfigurationId parameter is the identity of the configuration that would be associated with the provided application instances. + + System.string + + System.string + + + None + + + ConfigurationType + + > Applicable: Microsoft Teams + The ConfigurationType parameter denotes the type of the configuration that would be associated with the provided application instances. + It can be one of two values: + - AutoAttendant + - CallQueue + + System.string + + System.string + + + None + + + Identities + + > Applicable: Microsoft Teams + The Identities parameter is the identities of application instances to be associated with the provided configuration ID. + + System.String[] + + System.String[] + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + CallPriority + + > Applicable: Microsoft Teams + The call priority assigned to calls arriving on this application instance if a priority has not already been assigned. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 + 1 = Very High 2 = High 3 = Normal / Default 4 = Low 5 = Very Low + + Int16 + + Int16 + + + 3 + + + ConfigurationId + + > Applicable: Microsoft Teams + The ConfigurationId parameter is the identity of the configuration that would be associated with the provided application instances. + + System.string + + System.string + + + None + + + ConfigurationType + + > Applicable: Microsoft Teams + The ConfigurationType parameter denotes the type of the configuration that would be associated with the provided application instances. + It can be one of two values: + - AutoAttendant + - CallQueue + + System.string + + System.string + + + None + + + Identities + + > Applicable: Microsoft Teams + The Identities parameter is the identities of application instances to be associated with the provided configuration ID. + + System.String[] + + System.String[] + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $applicationInstanceId = (Get-CsOnlineUser "main_auto_attendant@contoso.com").ObjectId # 76afc66a-5fe9-4a3d-ab7a-37c0e37b1f19 +$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-5515-a97b-46be52dfc057 + +New-CsOnlineApplicationInstanceAssociation -Identities @($applicationInstanceId) -ConfigurationId $autoAttendantId -ConfigurationType AutoAttendant + +Get-CsAutoAttendant -Identity $autoAttendantId + +# Id : c2ee3e18-b738-5515-a97b-46be52dfc057 +# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213 +# Name : Main Auto Attendant +# LanguageId : en-US +# VoiceId : Female +# DefaultCallFlow : Default Call Flow +# Operator : +# TimeZoneId : Pacific Standard Time +# VoiceResponseEnabled : False +# CallFlows : +# Schedules : +# CallHandlingAssociations : +# Status : +# DialByNameResourceId : +# DirectoryLookupScope : +# ApplicationInstances : {76afc66a-5fe9-4a3d-ab7a-37c0e37b1f19} + + This example creates an association between an application instance that we have already created with UPN "main_auto_attendant@contoso.com" whose identity is "76afc66a-5fe9-4a3d-ab7a-37c0e37b1f19", and an auto attendant configuration that we created with display name "Main Auto Attendant" whose identity is "c2ee3e18-b738-5515-a97b-46be52dfc057". Once the association is created, the newly associated application instance would be listed under the `ApplicationInstances` property of the AA. + + + + -------------------------- Example 2 -------------------------- + $applicationInstancesIdentities = (Find-CsOnlineApplicationInstance -SearchQuery "tel:+1206") | Select-Object -Property Id + +# Id +# -- +# fa2f17ec-ebd5-43f8-81ac-959c245620fa +# 56421bbe-5649-4208-a60c-24dbeded6f18 +# c7af9c3c-ae40-455d-a37c-aeec771e623d + +$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-5515-a97b-46be52dfc057 + +New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIdentities -ConfigurationId $autoAttendantId -ConfigurationType AutoAttendant + +Get-CsAutoAttendant -Identity $autoAttendantId + +# Id : c2ee3e18-b738-5515-a97b-46be52dfc057 +# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213 +# Name : Main Auto Attendant +# LanguageId : en-US +# VoiceId : Female +# DefaultCallFlow : Default Call Flow +# Operator : +# TimeZoneId : Pacific Standard Time +# VoiceResponseEnabled : False +# CallFlows : +# Schedules : +# CallHandlingAssociations : +# Status : +# DialByNameResourceId : +# DirectoryLookupScope : +# ApplicationInstances : {fa2f17ec-ebd5-43f8-81ac-959c245620fa, 56421bbe-5649-4208-a60c-24dbeded6f18, c7af9c3c-ae40-455d-a37c-aeec771e623d} + + This example creates an association between multiple application instances that we had created before and to which we assigned phone numbers starting with "tel:+1206", and an auto attendant configuration that we created with display name "Main Auto Attendant" whose identity is "c2ee3e18-b738-5515-a97b-46be52dfc057". Once the associations are created, the newly associated application instances would listed under the `ApplicationInstances` property of the AA. + + + + -------------------------- Example 3 -------------------------- + $applicationInstancesIdentities = (Find-CsOnlineApplicationInstance -SearchQuery "Main Auto Attendant") | Select-Object -Property Id + +# Id +# -- +# fa2f17ec-ebd5-43f8-81ac-959c245620fa +# 56421bbe-5649-4208-a60c-24dbeded6f18 +# c7af9c3c-ae40-455d-a37c-aeec771e623d + +$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-5515-a97b-46be52dfc057 + +New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIdentities -ConfigurationId $autoAttendantId -ConfigurationType AutoAttendant + + This example creates an association between multiple application instances that we had created before with display name starting with "Main Auto Attendant", and an auto attendant configuration that we created with display name "Main Auto Attendant" whose identity is "c2ee3e18-b738-5515-a97b-46be52dfc057". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation + + + Get-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation + + + Get-CsOnlineApplicationInstanceAssociationStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus + + + Remove-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation + + + + + + New-CsOnlineAudioConferencingRoutingPolicy + New + CsOnlineAudioConferencingRoutingPolicy + + This cmdlet creates a Online Audio Conferencing Routing Policy. + + + + Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. + To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." + The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. + Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. + + + + New-CsOnlineAudioConferencingRoutingPolicy + + Identity + + Identity of the Online Audio Conferencing Routing Policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the Online Audio Conferencing Routing policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + + Object + + Object + + + None + + + RouteType + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the Online Audio Conferencing Routing policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Identity + + Identity of the Online Audio Conferencing Routing Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + + Object + + Object + + + None + + + RouteType + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsOnlineAudioConferencingRoutingPolicy -Identity Test + + Creates a new Online Audio Conferencing Routing Policy policy with an identity called "Test". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineaudioconferencingroutingpolicy + + + Remove-CsOnlineAudioConferencingRoutingPolicy + + + + Grant-CsOnlineAudioConferencingRoutingPolicy + + + + Set-CsOnlineAudioConferencingRoutingPolicy + + + + Get-CsOnlineAudioConferencingRoutingPolicy + + + + + + + New-CsOnlineDateTimeRange + New + CsOnlineDateTimeRange + + Use the New-CsOnlineDateTimeRange cmdlet to create a new date-time range. + + + + The New-CsOnlineDateTimeRange cmdlet creates a new date-time range to be used with the Organizational Auto Attendant (OAA) service. Date time ranges are used to form schedules. NOTE : + - The start bound of the range must be less than its end bound. + - The time part of the range must be aligned with 30/60-minutes boundaries. + - A date time range bound can only be input in the following formats: + - "d/m/yyyy H:mm" - "d/m/yyyy" (the time component of the date-time range is set to 00:00) + + + + New-CsOnlineDateTimeRange + + End + + > Applicable: Microsoft Teams + The End parameter represents the end bound of the date-time range. + If not present, the end bound of the date time range is set to 00:00 of the day after the start date. + + System.String + + System.String + + + None + + + Start + + > Applicable: Microsoft Teams + The Start parameter represents the start bound of the date-time range. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + End + + > Applicable: Microsoft Teams + The End parameter represents the end bound of the date-time range. + If not present, the end bound of the date time range is set to 00:00 of the day after the start date. + + System.String + + System.String + + + None + + + Start + + > Applicable: Microsoft Teams + The Start parameter represents the start bound of the date-time range. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $dtr = New-CsOnlineDateTimeRange -Start "1/1/2017" + + This example creates a date-time range for spanning from January 1, 2017 12AM to January 2, 2017 12AM. + + + + -------------------------- Example 2 -------------------------- + $dtr = New-CsOnlineDateTimeRange -Start "24/12/2017 09:00" -End "27/12/2017 00:00" + + This example creates a date-time range spanning from December 24, 2017 9AM to December 27, 2017 12AM. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange + + + New-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule + + + + + + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder + New + CsOnlineDirectRoutingTelephoneNumberUploadOrder + + This cmdlet creates a request to upload Direct Routing telephone numbers to Microsoft Teams telephone number management inventory. + + + + This cmdlet uploads Direct Routing telephone numbers to Microsoft Teams telephone number management inventory. Once uploaded the phone numbers will be visible in Teams PowerShell as acquired Direct Routing phone numbers. The output of the cmdlet is the "orderId" of the asynchronous Direct Routing Number creation operation. A maximum of 10,000 phone numbers can be uploaded at a time. If more than 10,000 numbers need to be uploaded, the requests should be divided into multiple increments of up to 10,000 numbers. + The cmdlet is an asynchronous operation and will return an OrderId as output. You can use the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to check the status of the OrderId, including any error or warning messages that might result from the operation: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. + + + + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder + + EndingNumber + + This is the ending number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + FileContent + + This is the content of a .csv file that includes the Direct Routing telephone numbers to be uploaded to the Microsoft Teams telephone number management inventory. This parameter can be used to upload up to 10,000 numbers at a time. + + Byte[] + + Byte[] + + + None + + + StartingNumber + + This is the starting number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + TelephoneNumber + + This is the Direct Routing telephone numbers you wish to upload to Microsoft Teams telephone number management inventory. It is comma delimited list of one or more Direct Routing telephone numbers. + + String + + String + + + None + + + + + + EndingNumber + + This is the ending number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + FileContent + + This is the content of a .csv file that includes the Direct Routing telephone numbers to be uploaded to the Microsoft Teams telephone number management inventory. This parameter can be used to upload up to 10,000 numbers at a time. + + Byte[] + + Byte[] + + + None + + + StartingNumber + + This is the starting number of a range of Direct Routing telephone number you wish to upload to Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + TelephoneNumber + + This is the Direct Routing telephone numbers you wish to upload to Microsoft Teams telephone number management inventory. It is comma delimited list of one or more Direct Routing telephone numbers. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.String + + + + + + + + + The cmdlet is available in Teams PowerShell module 6.7.1 or later. + The cmdlet is only available in commercial and GCC cloud instances. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsOnlineDirectRoutingTelephoneNumberUploadOrder -TelephoneNumber "+123456789" +cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 + + In this example, a new Direct Routing telephone number "+123456789" is being uploaded to Microsoft Teams telephone number management inventory. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsOnlineDirectRoutingTelephoneNumberUploadOrder -TelephoneNumber "+123456789,+134567890,+145678901" +cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c14 + + In this example, a list of telephone numbers is being uploaded to Microsoft Teams telephone number management inventory. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. + + + + -------------------------- Example 3 -------------------------- + PS C:\> New-CsOnlineDirectRoutingTelephoneNumberUploadOrder -StartingNumber "+12000000" -EndingNumber "+12000009" +cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 + + In this example, a range of Direct Routing telephone numbers from "+12000000" to "+12000009" are being uploaded to Microsoft Teams telephone number management inventory. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. + + + + -------------------------- Example 4 -------------------------- + PS C:\> $drlist = [System.IO.File]::ReadAllBytes("C:\Users\testuser\DrNumber.csv") +PS C:\> New-CsOnlineDirectRoutingTelephoneNumberUploadOrder -FileContent $drlist +cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 + + In this example, the content of a file with a list of Direct Routing telephone numbers are being uploaded via file upload. The file should be in Comma Separated Values (CSV) file format and only containing the list of DR numbers. Only the content of the file can be passed to the New-CsOnlineDirectRoutingTelephoneNumberUploadOrder cmdlet. Additional fields will be supported via file upload in future releases. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedirectroutingtelephonenumberuploadorder + + + Get-CsOnlineTelephoneNumberOrder + + + + New-CsOnlineTelephoneNumberReleaseOrder + + + + + + + New-CsOnlineLisCivicAddress + New + CsOnlineLisCivicAddress + + Use the New-CsOnlineLisCivicAddress cmdlet to create a civic address in the Location Information Service (LIS). + + + + Because each civic address needs at least one location to assign to users, creating a new civic address also creates a default location. This is useful in cases where a civic address has no particular sub-locations. In that scenario you can create the civic address using the New -CsOnlineLisCivicAddress cmdlet and use the default location identifier for assignment to users. The example output from the Get-CsOnlineLisCivicAddress below shows the DefaultLocationId property. + CivicAddressId : 51a8a6e3-dae4-4653-9a99-a6e71c4c24ac + HouseNumber : + HouseNumberSuffix : + PreDirectional : + StreetName : + StreetSuffix : + PostDirectional : + City : + PostalCode : + StateOrProvince : + CountryOrRegion : US + Description : + CompanyName : MSFT + DefaultLocationId : 75301b5d-3609-458e-a379-da9a1ab33228 + ValidationStatus : NotValidated + NumberOfVoiceUsers : 0 + + + + New-CsOnlineLisCivicAddress + + City + + > Applicable: Microsoft Teams + Specifies the city of the new civic address. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams + Specifies the city alias of the new civic address. + + String + + String + + + None + + + CompanyName + + > Applicable: Microsoft Teams + Specifies the name of your organization. + + String + + String + + + None + + + CompanyTaxId + + > Applicable: Microsoft Teams + Specifies the company tax identifier of the new civic address. + + String + + String + + + None + + + Confidence + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the new civic address. Needs to be a valid country code as contained in the ISO 3166-1 alpha-2 specification. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the new civic address. + + String + + String + + + None + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + HouseNumber + + > Applicable: Microsoft Teams + Specifies the numeric portion of the new civic address. + + String + + String + + + None + + + HouseNumberSuffix + + > Applicable: Microsoft Teams + Specifies the numeric suffix of the new civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". + + String + + String + + + None + + + IsAzureMapValidationRequired + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Required for all countries except Australia and Japan where it's optional. + + String + + String + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Required for all countries except Australia and Japan where it's optional. + + String + + String + + + None + + + PostalCode + + > Applicable: Microsoft Teams + Specifies the postal code of the new civic address. + + String + + String + + + None + + + PostDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the new civic address which follows the street name. For example, "425 Smith Avenue NE". + + String + + String + + + None + + + PreDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the new civic address which precedes the street name. For example, "425 NE Smith Avenue". + + String + + String + + + None + + + StateOrProvince + + > Applicable: Microsoft Teams + Specifies the state or province of the new civic address. + + String + + String + + + None + + + StreetName + + > Applicable: Microsoft Teams + Specifies the street name of the new civic address. + + String + + String + + + None + + + StreetSuffix + + > Applicable: Microsoft Teams + Specifies the street type of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. + + String + + String + + + None + + + ValidationStatus + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + City + + > Applicable: Microsoft Teams + Specifies the city of the new civic address. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams + Specifies the city alias of the new civic address. + + String + + String + + + None + + + CompanyName + + > Applicable: Microsoft Teams + Specifies the name of your organization. + + String + + String + + + None + + + CompanyTaxId + + > Applicable: Microsoft Teams + Specifies the company tax identifier of the new civic address. + + String + + String + + + None + + + Confidence + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the new civic address. Needs to be a valid country code as contained in the ISO 3166-1 alpha-2 specification. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the new civic address. + + String + + String + + + None + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + HouseNumber + + > Applicable: Microsoft Teams + Specifies the numeric portion of the new civic address. + + String + + String + + + None + + + HouseNumberSuffix + + > Applicable: Microsoft Teams + Specifies the numeric suffix of the new civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". + + String + + String + + + None + + + IsAzureMapValidationRequired + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Required for all countries except Australia and Japan where it's optional. + + String + + String + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Required for all countries except Australia and Japan where it's optional. + + String + + String + + + None + + + PostalCode + + > Applicable: Microsoft Teams + Specifies the postal code of the new civic address. + + String + + String + + + None + + + PostDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the new civic address which follows the street name. For example, "425 Smith Avenue NE". + + String + + String + + + None + + + PreDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the new civic address which precedes the street name. For example, "425 NE Smith Avenue". + + String + + String + + + None + + + StateOrProvince + + > Applicable: Microsoft Teams + Specifies the state or province of the new civic address. + + String + + String + + + None + + + StreetName + + > Applicable: Microsoft Teams + Specifies the street name of the new civic address. + + String + + String + + + None + + + StreetSuffix + + > Applicable: Microsoft Teams + Specifies the street type of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. + + String + + String + + + None + + + ValidationStatus + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsOnlineLisCivicAddress -HouseNumber 1 -StreetName 'Microsoft Way' -City Redmond -StateorProvince Washington -CountryOrRegion US -PostalCode 98052 -Description "West Coast Headquarters" -CompanyName Contoso -Latitude 47.63952 -Longitude -122.12781 -Elin MICROSOFT_ELIN + + This example creates a new civic address described as "West Coast Headquarters": 1 Microsoft Way, Redmond WA, 98052 and sets the geo-coordinates. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress + + + Set-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress + + + Remove-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress + + + Get-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress + + + + + + New-CsOnlineLisLocation + New + CsOnlineLisLocation + + Use the New-CsOnlineLisLocation cmdlet to create a new emergency dispatch location within an existing civic address. Typically the civic address designates the building, and locations are specific parts of that building such as a floor, office, or wing. + + + + + + + + New-CsOnlineLisLocation + + City + + > Applicable: Microsoft Teams + Specifies the city of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams + Specifies the city alias. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address that will contain the new location. Civic address identities can be discovered by using the Get-CsOnlineLisCivicAddress cmdlet. + + Guid + + Guid + + + None + + + CompanyName + + > Applicable: Microsoft Teams + Specifies the name of your organization. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + CompanyTaxId + + > Applicable: Microsoft Teams + The company tax ID. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Confidence + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + HouseNumber + + > Applicable: Microsoft Teams + Specifies the numeric portion of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + HouseNumberSuffix + + > Applicable: Microsoft Teams + Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Location + + > Applicable: Microsoft Teams + Specifies an administrator-defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + PostalCode + + > Applicable: Microsoft Teams + Specifies the postal code of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + PostDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + PreDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue". Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + StateOrProvince + + > Applicable: Microsoft Teams + Specifies the state or province of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + StreetName + + > Applicable: Microsoft Teams + Specifies the street name of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + StreetSuffix + + > Applicable: Microsoft Teams + Specifies the modifier of the street name. The street suffix will typically be something like street, avenue, way, or boulevard. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + City + + > Applicable: Microsoft Teams + Specifies the city of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams + Specifies the city alias. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address that will contain the new location. Civic address identities can be discovered by using the Get-CsOnlineLisCivicAddress cmdlet. + + Guid + + Guid + + + None + + + CompanyName + + > Applicable: Microsoft Teams + Specifies the name of your organization. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + CompanyTaxId + + > Applicable: Microsoft Teams + The company tax ID. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Confidence + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + HouseNumber + + > Applicable: Microsoft Teams + Specifies the numeric portion of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + HouseNumberSuffix + + > Applicable: Microsoft Teams + Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + Location + + > Applicable: Microsoft Teams + Specifies an administrator-defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + PostalCode + + > Applicable: Microsoft Teams + Specifies the postal code of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + PostDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + PreDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue". Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + StateOrProvince + + > Applicable: Microsoft Teams + Specifies the state or province of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + StreetName + + > Applicable: Microsoft Teams + Specifies the street name of the civic address. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + StreetSuffix + + > Applicable: Microsoft Teams + Specifies the modifier of the street name. The street suffix will typically be something like street, avenue, way, or boulevard. Note: This parameter is not supported and is deprecated. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsOnlineLisLocation -CivicAddressId b39ff77d-db51-4ce5-8d50-9e9c778e1617 -Location "Office 101, 1st Floor" + + This example creates a new location called "Office 101, 1st Floor" in the civic address specified by its identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation + + + Set-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation + + + Get-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation + + + Remove-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation + + + + + + New-CsOnlinePSTNGateway + New + CsOnlinePSTNGateway + + Creates a new Session Border Controller (SBC) Configuration that describes the settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing. + + + + Use this cmdlet to create a new Session Border Controller (SBC) configuration. Each configuration contains specific settings for an SBC. These settings configure such entities as the SIP signaling port, whether media bypass is enabled on this SBC, will the SBC send SIP Options, and specify the limit of maximum concurrent sessions. The cmdlet also lets the administrator drain the SBC by setting parameter -Enabled to $true or $false state. When the Enabled parameter is set to $false, the SBC will continue existing calls, but all new calls will be routed to another SBC in a route (if one exists). + + + + New-CsOnlinePSTNGateway + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Free-format string to describe the gateway. + + String + + String + + + None + + + Enabled + + > Applicable: Microsoft Teams + Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). + + Boolean + + Boolean + + + $false + + + FailoverResponseCodes + + > Applicable: Microsoft Teams + If Direct Routing receives any 4xx or 6xx SIP error code in response to an outgoing Invite the call is considered completed by default. (Outgoing in this context is a call from a Teams client to the PSTN with traffic flow: Teams Client -> Direct Routing -> SBC -> Telephony network). Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Find more information in the "Reference" section of "Phone System Direct Routing" documentation. + Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. + + String + + String + + + 408, 503, 504 + + + FailoverTimeSeconds + + > Applicable: Microsoft Teams + When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. + + Int32 + + Int32 + + + 10 + + + ForwardCallHistory + + > Applicable: Microsoft Teams + Indicates whether call history information will be forwarded to the SBC. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + ForwardPai + + > Applicable: Microsoft Teams + Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. + + Boolean + + Boolean + + + $false + + + Fqdn + + > Applicable: Microsoft Teams + Limited to 63 characters, the FQDN registered for the SBC. Copied automatically to Identity of the SBC field. + + String + + String + + + None + + + GatewayLbrEnabledUserOverride + + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + + Boolean + + Boolean + + + $false + + + GatewaySiteId + + > Applicable: Microsoft Teams + PSTN Gateway Site Id. + + String + + String + + + None + + + GatewaySiteLbrEnabled + + > Applicable: Microsoft Teams + Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is enabled ($True), the SBC will report the site name as defined by the tenant administrator. On an incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + InboundPSTNNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + + Object + + Object + + + None + + + InboundTeamsNumberTranslationRules + + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + + Object + + Object + + + None + + + IPAddressVersion + + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. + + String + + String + + + IPv4 + + + MaxConcurrentSessions + + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + + System.Int32 + + System.Int32 + + + None + + + MediaBypass + + > Applicable: Microsoft Teams + Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. + + Boolean + + Boolean + + + $false + + + MediaRelayRoutingLocationOverride + + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + + String + + String + + + $false + + + OutboundPSTNNumberTranslationRules + + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. + + Object + + Object + + + None + + + OutbundTeamsNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. + + Object + + Object + + + None + + + PidfloSupported + + > Applicable: Microsoft Teams + Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. + + Boolean + + Boolean + + + $false + + + ProxySbc + + > Applicable: Microsoft Teams + The FQDN of the proxy SBC. Used in Local Media Optimization configurations. + + String + + String + + + None + + + SendSipOptions + + > Applicable: Microsoft Teams + Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. + + Boolean + + Boolean + + + $true + + + SipSignalingPort + + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsOnlinePSTNGateway + + Identity + + > Applicable: Microsoft Teams + When creating a new SBC, the identity must be identical to the -FQDN parameter, described above. If the parameter is not defined the Identity will be copied from the -FQDN parameter. The Identity parameter is not mandatory. + + String + + String + + + None + + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Free-format string to describe the gateway. + + String + + String + + + None + + + Enabled + + > Applicable: Microsoft Teams + Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). + + Boolean + + Boolean + + + $false + + + FailoverResponseCodes + + > Applicable: Microsoft Teams + If Direct Routing receives any 4xx or 6xx SIP error code in response to an outgoing Invite the call is considered completed by default. (Outgoing in this context is a call from a Teams client to the PSTN with traffic flow: Teams Client -> Direct Routing -> SBC -> Telephony network). Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Find more information in the "Reference" section of "Phone System Direct Routing" documentation. + Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. + + String + + String + + + 408, 503, 504 + + + FailoverTimeSeconds + + > Applicable: Microsoft Teams + When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. + + Int32 + + Int32 + + + 10 + + + ForwardCallHistory + + > Applicable: Microsoft Teams + Indicates whether call history information will be forwarded to the SBC. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + ForwardPai + + > Applicable: Microsoft Teams + Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. + + Boolean + + Boolean + + + $false + + + GatewayLbrEnabledUserOverride + + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + + Boolean + + Boolean + + + $false + + + GatewaySiteId + + > Applicable: Microsoft Teams + PSTN Gateway Site Id. + + String + + String + + + None + + + GatewaySiteLbrEnabled + + > Applicable: Microsoft Teams + Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is enabled ($True), the SBC will report the site name as defined by the tenant administrator. On an incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + InboundPSTNNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + + Object + + Object + + + None + + + InboundTeamsNumberTranslationRules + + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + + Object + + Object + + + None + + + IPAddressVersion + + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. + + String + + String + + + IPv4 + + + MaxConcurrentSessions + + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + + System.Int32 + + System.Int32 + + + None + + + MediaBypass + + > Applicable: Microsoft Teams + Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. + + Boolean + + Boolean + + + $false + + + MediaRelayRoutingLocationOverride + + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + + String + + String + + + $false + + + OutboundPSTNNumberTranslationRules + + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. + + Object + + Object + + + None + + + OutbundTeamsNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. + + Object + + Object + + + None + + + PidfloSupported + + > Applicable: Microsoft Teams + Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. + + Boolean + + Boolean + + + $false + + + ProxySbc + + > Applicable: Microsoft Teams + The FQDN of the proxy SBC. Used in Local Media Optimization configurations. + + String + + String + + + None + + + SendSipOptions + + > Applicable: Microsoft Teams + Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. + + Boolean + + Boolean + + + $true + + + SipSignalingPort + + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Free-format string to describe the gateway. + + String + + String + + + None + + + Enabled + + > Applicable: Microsoft Teams + Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). + + Boolean + + Boolean + + + $false + + + FailoverResponseCodes + + > Applicable: Microsoft Teams + If Direct Routing receives any 4xx or 6xx SIP error code in response to an outgoing Invite the call is considered completed by default. (Outgoing in this context is a call from a Teams client to the PSTN with traffic flow: Teams Client -> Direct Routing -> SBC -> Telephony network). Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Find more information in the "Reference" section of "Phone System Direct Routing" documentation. + Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. + + String + + String + + + 408, 503, 504 + + + FailoverTimeSeconds + + > Applicable: Microsoft Teams + When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. + + Int32 + + Int32 + + + 10 + + + ForwardCallHistory + + > Applicable: Microsoft Teams + Indicates whether call history information will be forwarded to the SBC. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + ForwardPai + + > Applicable: Microsoft Teams + Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. + + Boolean + + Boolean + + + $false + + + Fqdn + + > Applicable: Microsoft Teams + Limited to 63 characters, the FQDN registered for the SBC. Copied automatically to Identity of the SBC field. + + String + + String + + + None + + + GatewayLbrEnabledUserOverride + + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + + Boolean + + Boolean + + + $false + + + GatewaySiteId + + > Applicable: Microsoft Teams + PSTN Gateway Site Id. + + String + + String + + + None + + + GatewaySiteLbrEnabled + + > Applicable: Microsoft Teams + Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is enabled ($True), the SBC will report the site name as defined by the tenant administrator. On an incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + Identity + + > Applicable: Microsoft Teams + When creating a new SBC, the identity must be identical to the -FQDN parameter, described above. If the parameter is not defined the Identity will be copied from the -FQDN parameter. The Identity parameter is not mandatory. + + String + + String + + + None + + + InboundPSTNNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + + Object + + Object + + + None + + + InboundTeamsNumberTranslationRules + + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + + Object + + Object + + + None + + + IPAddressVersion + + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. + + String + + String + + + IPv4 + + + MaxConcurrentSessions + + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent sessions is 90% or higher than this value. If the parameter is not set, alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + + System.Int32 + + System.Int32 + + + None + + + MediaBypass + + > Applicable: Microsoft Teams + Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. + + Boolean + + Boolean + + + $false + + + MediaRelayRoutingLocationOverride + + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + + String + + String + + + $false + + + OutboundPSTNNumberTranslationRules + + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. + + Object + + Object + + + None + + + OutbundTeamsNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. + + Object + + Object + + + None + + + PidfloSupported + + > Applicable: Microsoft Teams + Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. + + Boolean + + Boolean + + + $false + + + ProxySbc + + > Applicable: Microsoft Teams + The FQDN of the proxy SBC. Used in Local Media Optimization configurations. + + String + + String + + + None + + + SendSipOptions + + > Applicable: Microsoft Teams + Defines if an SBC will or will not send SIP Options messages. If disabled, the SBC will be excluded from the Monitoring and Alerting system. We highly recommend that you enable SIP Options. The default value is True. + + Boolean + + Boolean + + + $true + + + SipSignalingPort + + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. Must be value between 1 and 65535. Please note: Spelling of this parameter changed recently from SipSignallingPort to SipSignalingPort. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsOnlinePSTNGateway -FQDN sbc.contoso.com -SIPSignalingPort 5061 + + This example creates an SBC with FQDN sbc.contoso.com and signaling port 5061. All others parameters will stay default. Note the SBC will be in the disabled state. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsOnlinePSTNGateway -FQDN sbc.contoso.com -SIPSignalingPort 5061 -ForwardPAI $true -Enabled $true + + This example creates an SBC with FQDN sbc.contoso.com and signaling port 5061. For each outbound to SBC session, the Direct Routing interface will report in P-Asserted-Identity fields the TEL URI and SIP address of the user who made a call. This is useful when a tenant administrator sets the identity of the caller as "Anonymous" or a general number of the company, but for billing purposes the real identity of the user is required. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway + + + Set-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway + + + Get-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway + + + Remove-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway + + + + + + New-CsOnlineSchedule + New + CsOnlineSchedule + + Use the New-CsOnlineSchedule cmdlet to create a new schedule. + + + + The New-CsOnlineSchedule cmdlet creates a new schedule for the Auto Attendant (AA) service. The AA service uses schedules to conditionally execute call flows when a specific schedule is in effect. NOTES : + - The type of the schedule cannot be altered after the schedule is created. + - Currently, only two types of schedules can be created: WeeklyRecurrentSchedule or FixedSchedule. + - The schedule types are mutually exclusive. So a weekly recurrent schedule cannot be a fixed schedule and vice versa. + - For a weekly recurrent schedule, at least one day should have time ranges specified. + - You can create a new time range by using New-CsOnlineTimeRange cmdlet. + - A fixed schedule can be created without any date-time ranges. In this case, it would never be in effect. + - For a fixed schedule, at most 10 date-time ranges can be specified. + - You can create a new date-time range for a fixed schedule by using the New-CsOnlineDateTimeRange cmdlet. + - The return type of this cmdlet composes a member for the underlying type/implementation. For example, in case of the weekly recurrent schedule, you can modify Monday's time ranges through the Schedule.WeeklyRecurrentSchedule.MondayHours property. Similarly, date-time ranges of a fixed schedule can be modified by using the Schedule.FixedSchedule.DateTimeRanges property. + - Schedules can then be used by New-CsAutoAttendantCallHandlingAssociation (https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation). + + + + New-CsOnlineSchedule + + Complement + + > Applicable: Microsoft Teams + The Complement parameter indicates how the schedule is used. When Complement is enabled, the schedule is used as the inverse of the provided configuration. For example, if Complement is enabled and the schedule only contains time ranges of Monday to Friday from 9AM to 5PM, then the schedule is active at all times other than the specified time ranges. + + + SwitchParameter + + + False + + + FridayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + MondayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the schedule. + + System.String + + System.String + + + None + + + SaturdayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + SundayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + ThursdayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + TuesdayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + WednesdayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + WeeklyRecurrentSchedule + + > Applicable: Microsoft Teams + The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. This parameter is mandatory when a weekly recurrent schedule is to be created. + + + SwitchParameter + + + False + + + + New-CsOnlineSchedule + + DateTimeRanges + + > Applicable: Microsoft Teams + List of date-time ranges for a fixed schedule. At most, 10 date-time ranges can be specified using this parameter. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + FixedSchedule + + > Applicable: Microsoft Teams + The FixedSchedule parameter indicates that a fixed schedule is to be created. + + + SwitchParameter + + + False + + + Name + + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the schedule. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Complement + + > Applicable: Microsoft Teams + The Complement parameter indicates how the schedule is used. When Complement is enabled, the schedule is used as the inverse of the provided configuration. For example, if Complement is enabled and the schedule only contains time ranges of Monday to Friday from 9AM to 5PM, then the schedule is active at all times other than the specified time ranges. + + SwitchParameter + + SwitchParameter + + + False + + + DateTimeRanges + + > Applicable: Microsoft Teams + List of date-time ranges for a fixed schedule. At most, 10 date-time ranges can be specified using this parameter. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + FixedSchedule + + > Applicable: Microsoft Teams + The FixedSchedule parameter indicates that a fixed schedule is to be created. + + SwitchParameter + + SwitchParameter + + + False + + + FridayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + MondayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter represents a unique friendly name for the schedule. + + System.String + + System.String + + + None + + + SaturdayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + SundayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + ThursdayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + TuesdayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + WednesdayHours + + > Applicable: Microsoft Teams + List of time ranges for that day. + + System.Collections.Generic.List + + System.Collections.Generic.List + + + None + + + WeeklyRecurrentSchedule + + > Applicable: Microsoft Teams + The WeeklyRecurrentSchedule parameter indicates that a weekly recurrent schedule is to be created. This parameter is mandatory when a weekly recurrent schedule is to be created. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.Schedule + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $tr1 = New-CsOnlineTimeRange -Start 09:00 -End 12:00 +$tr2 = New-CsOnlineTimeRange -Start 13:00 -End 17:00 +$businessHours = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr1, $tr2) -TuesdayHours @($tr1, $tr2) -WednesdayHours @($tr1, $tr2) -ThursdayHours @($tr1, $tr2) -FridayHours @($tr1, $tr2) + + This example creates a weekly recurrent schedule that is active on Monday-Friday from 9AM-12PM and 1PM-5PM. + + + + -------------------------- Example 2 -------------------------- + $tr1 = New-CsOnlineTimeRange -Start 09:00 -End 12:00 +$tr2 = New-CsOnlineTimeRange -Start 13:00 -End 17:00 +$afterHours = New-CsOnlineSchedule -Name " After Hours" -WeeklyRecurrentSchedule -MondayHours @($tr1, $tr2) -TuesdayHours @($tr1, $tr2) -WednesdayHours @($tr1, $tr2) -ThursdayHours @($tr1, $tr2) -FridayHours @($tr1, $tr2) -Complement + + This example creates a weekly recurrent schedule that is active at all times except Monday-Friday, 9AM-12PM and 1PM-5PM. + + + + -------------------------- Example 3 -------------------------- + $dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" +$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) + + This example creates a fixed schedule that is active from December 24, 2017 to December 26, 2017. + + + + -------------------------- Example 4 -------------------------- + $dtr1 = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" +$dtr2 = New-CsOnlineDateTimeRange -Start "24/12/2018" -End "26/12/2018" +$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr1, $dtr2) + + This example creates a fixed schedule that is active from December 24, 2017 to December 26, 2017 and then from December 24, 2018 to December 26, 2018. + + + + -------------------------- Example 5 -------------------------- + $notInEffectSchedule = New-CsOnlineSchedule -Name "NotInEffect" -FixedSchedule + + This example creates a fixed schedule that is never active. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule + + + New-CsOnlineTimeRange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange + + + New-CsOnlineDateTimeRange + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange + + + New-CsAutoAttendantCallFlow + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow + + + New-CsAutoAttendantCallHandlingAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation + + + New-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant + + + + + + New-CsOnlineTelephoneNumberOrder + New + CsOnlineTelephoneNumberOrder + + Use the `New-CsOnlineTelephoneNumberOrder` cmdlet to create a telephone number search order. The telephone numbers can then be used to set up calling features for users and services in your organization. + + + + Use the `New-CsOnlineTelephoneNumberOrder` cmdlet to create a telephone number search order. The telephone numbers can then be used to set up calling features for users and services in your organization. Use the `Get-CsOnlineTelephoneNumberType` cmdlet to find out the supported types of searches for each NumberType and construct the search request demonstrated below: + Telephone numbers can be created with 3 ways: + - Civic Address Search : A telephone number search order can be created base on a given civic address ID. The service will look up the address and fulfill the search order using available telephone numbers local to the given address. For civic address based search, the parameter `CivicAddressId` is required. + - Number Prefix Search : A telephone number search order can be created base on a given number prefix. The number prefix search allow the tenant to acquire telephone numbers with a fixed number prefix. For number prefix based search, the parameter `NumberPrefix` is required. + - Area Code Selection Search : A telephone number search order can be created base on a give area code. Certain service numbers are only offered with a dedicated set of area codes. With area code selection search, the tenant can acquire the desired telephone numbers by area code. For area code selection based search, the parameter `AreaCode` is required. + + + + New-CsOnlineTelephoneNumberOrder + + Name + + Specifies the telephone number search order name. + + String + + String + + + None + + + Description + + Specifies the telephone number search order description. + + String + + String + + + None + + + Country + + Specifies the telephone number search order country/region. Use `Get-CsOnlineTelephoneNumberCountry` to find the supported countries/regions. + + String + + String + + + None + + + NumberType + + Specifies the telephone number search order number type. Use `Get-CsOnlineTelephoneNumberType` to find the supported number types. + + String + + String + + + None + + + Quantity + + Specifies the telephone number search order quantity. The number of allowed quantity is based on the tenant licenses. + + Integer + + Integer + + + None + + + CivicAddressId + + Specifies the telephone number search order civic address. CivicAddressId is required for civic address based search and when RequiresCivicAddress is true for a given NumberType. + + String + + String + + + None + + + NumberPrefix + + Specifies the telephone number search order number prefix. NumberPrefix is required for number prefix based search. + + Integer + + Integer + + + None + + + AreaCode + + Specifies the telephone number search order number area code. AreaCode is required for area code selection based search. + + Integer + + Integer + + + None + + + + + + Name + + Specifies the telephone number search order name. + + String + + String + + + None + + + Description + + Specifies the telephone number search order description. + + String + + String + + + None + + + Country + + Specifies the telephone number search order country/region. Use `Get-CsOnlineTelephoneNumberCountry` to find the supported countries/regions. + + String + + String + + + None + + + NumberType + + Specifies the telephone number search order number type. Use `Get-CsOnlineTelephoneNumberType` to find the supported number types. + + String + + String + + + None + + + Quantity + + Specifies the telephone number search order quantity. The number of allowed quantity is based on the tenant licenses. + + Integer + + Integer + + + None + + + CivicAddressId + + Specifies the telephone number search order civic address. CivicAddressId is required for civic address based search and when RequiresCivicAddress is true for a given NumberType. + + String + + String + + + None + + + NumberPrefix + + Specifies the telephone number search order number prefix. NumberPrefix is required for number prefix based search. + + Integer + + Integer + + + None + + + AreaCode + + Specifies the telephone number search order number area code. AreaCode is required for area code selection based search. + + Integer + + Integer + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $orderId = New-CsOnlineTelephoneNumberOrder -Name "Example 1" -Description "Civic address search example" -Country "US" -NumberType "UserSubscriber" -Quantity 1 -CivicAddressId 3b175352-4131-431e-970c-273226b8fb46 +PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderId $orderId + +AreaCode : +CivicAddressId : 3b175352-4131-431e-970c-273226b8fb46 +CountryCode : US +CreatedAt : 8/23/2021 5:43:44 PM +Description : Civic address search example +ErrorCode : NoError +Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 +InventoryType : Subscriber +IsManual : False +Name : Example 1 +NumberPrefix : +NumberType : UserSubscriber +Quantity : 1 +ReservationExpiryDate : 8/23/2021 5:59:45 PM +SearchType : CivicAddress +SendToServiceDesk : False +Status : Reserved +TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} + +PS C:\> $order.TelephoneNumber + +Location TelephoneNumber +-------- --------------- +New York City +17182000004 + + This example demonstrates a civic address based telephone number search. Telephone number +17182000004 is found to belong to the given address and is reserved for purchase. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $orderId = New-CsOnlineTelephoneNumberOrder -Name "Example 2" -Description "Number prefix search example" -Country "US" -NumberType "UserSubscriber" -Quantity 1 -NumberPrefix 1425 +PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderId $orderId + +AreaCode : +CivicAddressId : +CountryCode : US +CreatedAt : 8/23/2021 5:43:44 PM +Description : Number prefix search example +ErrorCode : NoError +Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 +InventoryType : Subscriber +IsManual : False +Name : Example 2 +NumberPrefix : +NumberType : UserSubscriber +Quantity : 1 +ReservationExpiryDate : 8/23/2021 5:59:45 PM +SearchType : Prefix +SendToServiceDesk : False +Status : Reserved +TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} + +PS C:\> $order.TelephoneNumber + +Location TelephoneNumber +-------- --------------- +Bellevue +14252000004 + + This example demonstrates a number prefix based telephone number search. Telephone number +14252000004 is found to have the desired number prefix and is reserved for purchase. + + + + -------------------------- Example 3 -------------------------- + PS C:\> $orderId = New-CsOnlineTelephoneNumberOrder -Name "Example 3" -Description "Area code selection search example" -Country "US" -NumberType "ConferenceTollFree" -Quantity 1 -AreaCode 800 +PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderId $orderId + +AreaCode : +CivicAddressId : +CountryCode : US +CreatedAt : 8/23/2021 5:43:44 PM +Description : Area code selection search example +ErrorCode : NoError +Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 +InventoryType : Service +IsManual : False +Name : Example 3 +NumberPrefix : +NumberType : ConferenceTollFree +Quantity : 1 +ReservationExpiryDate : 8/23/2021 5:59:45 PM +SearchType : AreaCodeSelection +SendToServiceDesk : False +Status : Reserved +TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} + +PS C:\> $order.TelephoneNumber + +Location TelephoneNumber +-------- --------------- +Toll Free +18002000004 + + This example demonstrates an area code selection based telephone number search. Telephone number +18002000004 is found to have the desired area code and is reserved for purchase. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberCountry + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry + + + Get-CsOnlineTelephoneNumberType + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype + + + New-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder + + + Get-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder + + + Complete-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder + + + Clear-CsOnlineTelephoneNumberOrder + https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder + + + + + + New-CsOnlineTelephoneNumberReleaseOrder + New + CsOnlineTelephoneNumberReleaseOrder + + This cmdlet creates a request to release telephone numbers from Microsoft Teams telephone number management inventory. + + + + This cmdlet releases existing telephone numbers from Microsoft Teams telephone number management inventory. Once released the phone numbers will not be visible in Teams PowerShell as acquired telephone numbers. A maximum of 1,000 phone numbers can be released at a time. If more than 1,000 numbers need to be released, the requests should be divided into multiple increments of up to 1,000 numbers. + The cmdlet is an asynchronous operation and will return an OrderId as output. You can use the Get-CsOnlineTelephoneNumberOrder (get-csonlinetelephonenumberorder.md)cmdlet to check the status of the OrderId, including any error or warning messages that might result from the operation: `Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId "orderId"`. + + + + New-CsOnlineTelephoneNumberReleaseOrder + + EndingNumber + + This is the ending number of a range of telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + FileContent + + This is the content of a .csv file that includes the telephone numbers to be released from the Microsoft Teams telephone number management inventory. This parameter can be used to release up to 1,000 numbers at a time. + + Byte[] + + Byte[] + + + None + + + StartingNumber + + This is the starting number of a range of telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + TelephoneNumber + + This is the telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + + + + EndingNumber + + This is the ending number of a range of telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + FileContent + + This is the content of a .csv file that includes the telephone numbers to be released from the Microsoft Teams telephone number management inventory. This parameter can be used to release up to 1,000 numbers at a time. + + Byte[] + + Byte[] + + + None + + + StartingNumber + + This is the starting number of a range of telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + TelephoneNumber + + This is the telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.String + + + + + + + + + The cmdlet is available in Teams PowerShell module 6.7.1 or later. + The cmdlet is only available in commercial and GCC cloud instances. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -TelephoneNumber "+123456789" +cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 + + In this example, a telephone number "+123456789" is being released from Microsoft Teams telephone number management inventory. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -TelephoneNumber "+123456789,+134567890,+145678901" +cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 + + In this example, a list of telephone numbers are being released from Microsoft Teams telephone number management. + + + + -------------------------- Example 3 -------------------------- + PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -StartingNumber "+12000000" -EndingNumber "+12000009" +cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 + + In this example, a range of telephone numbers from "+12000000" to "+12000009" are being released from Microsoft Teams telephone number management. + + + + -------------------------- Example 4 -------------------------- + PS C:\> $drlist = [System.IO.File]::ReadAllBytes("C:\Users\testuser\DrNumber.csv") +PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -FileContent $drlist +cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 + + In this example, the content of a file with a list of telephone numbers are being released via file upload. The file should be in Comma Separated Values (CSV) file format and should only contain the list of telephone numbers to be released. The `New-CsOnlineTelephoneNumberReleaseOrder` cmdlet is only used to pass the content. + + + + + + Online Version: + + + + Get-CsOnlineTelephoneNumberOrder + + + + New-CsOnlineDirectRoutingTelephoneNumberUploadOrder + + + + + + + New-CsOnlineTimeRange + New + CsOnlineTimeRange + + The New-CsOnlineTimeRange cmdlet creates a new time range. + + + + The New-CsOnlineTimeRange cmdlet creates a new time range to be used with the Auto Attendant (AA) service. Time ranges are used to form schedules. NOTES : + - The start bound of the range must be less than its end bound. + - Time ranges within a weekly recurrent schedule must align with 15-minute boundaries. + + + + New-CsOnlineTimeRange + + End + + > Applicable: Microsoft Teams + The End parameter represents the end bound of the time range. + + System.TimeSpan + + System.TimeSpan + + + None + + + Start + + > Applicable: Microsoft Teams + The Start parameter represents the start bound of the time range. + + System.TimeSpan + + System.TimeSpan + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + End + + > Applicable: Microsoft Teams + The End parameter represents the end bound of the time range. + + System.TimeSpan + + System.TimeSpan + + + None + + + Start + + > Applicable: Microsoft Teams + The Start parameter represents the start bound of the time range. + + System.TimeSpan + + System.TimeSpan + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $workdayTimeRange = New-CsOnlineTimeRange -Start 09:00 -End 17:00 + + This example creates a time range for a 9AM to 5PM work day. + + + + -------------------------- Example 2 -------------------------- + $allDayTimeRange = New-CsOnlineTimeRange -Start 00:00 -End 1.00:00 + + This example creates a 24-hour time range. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange + + + + + + New-CsOnlineVoiceRoute + New + CsOnlineVoiceRoute + + Creates a new online voice route. + + + + Use this cmdlet to create a new online voice route. All online voice routes are created at the Global scope. However, multiple global voice routes can be defined. This is accomplished through the Identity parameter, which requires a unique route name. + Online voice routes contain instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). + Voice routes are associated with online voice policies through online PSTN usages. A voice route includes a regular expression that identifies which phone numbers will be routed through a given voice route: phone numbers matching the regular expression will be routed through this route. + This cmdlet is used when configuring Microsoft Phone System Direct Routing. + + + + New-CsOnlineVoiceRoute + + Identity + + A name that uniquely identifies the online voice route. Voice routes can be defined only at the global scope, so the identity is simply the name you want to give the route. (You can have spaces in the route name, for instance Test Route, but you must enclose the full string in double quotes in the call to the New-CsOnlineVoiceRoute cmdlet.) + If Identity is specified, the Name must be left blank. The value of the Identity will be assigned to the Name. + + String + + String + + + None + + + BridgeSourcePhoneNumber + + BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. + When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. + For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A description of what this online voice route is for. + + String + + String + + + None + + + NumberPattern + + A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. + Default: [0-9]{10} + + String + + String + + + None + + + OnlinePstnGatewayList + + This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. + By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + Priority + + A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsOnlineVoiceRoute + + BridgeSourcePhoneNumber + + BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. + When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. + For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A description of what this online voice route is for. + + String + + String + + + None + + + Name + + The unique name of the voice route. If this parameter is set, the value will be automatically applied to the online voice route Identity. You cannot specify both an Identity and a Name. + + String + + String + + + None + + + NumberPattern + + A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. + Default: [0-9]{10} + + String + + String + + + None + + + OnlinePstnGatewayList + + This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. + By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + Priority + + A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BridgeSourcePhoneNumber + + BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. + When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. + For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + A description of what this online voice route is for. + + String + + String + + + None + + + Identity + + A name that uniquely identifies the online voice route. Voice routes can be defined only at the global scope, so the identity is simply the name you want to give the route. (You can have spaces in the route name, for instance Test Route, but you must enclose the full string in double quotes in the call to the New-CsOnlineVoiceRoute cmdlet.) + If Identity is specified, the Name must be left blank. The value of the Identity will be assigned to the Name. + + String + + String + + + None + + + Name + + The unique name of the voice route. If this parameter is set, the value will be automatically applied to the online voice route Identity. You cannot specify both an Identity and a Name. + + String + + String + + + None + + + NumberPattern + + A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. + Default: [0-9]{10} + + String + + String + + + None + + + OnlinePstnGatewayList + + This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. + By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + Priority + + A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsOnlineVoiceRoute -Identity Route1 + + The command in this example creates a new online voice route with an Identity of Route1. All other properties will be set to the default values. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add="Long Distance"} -OnlinePstnGatewayList @{add="sbc1.litwareinc.com"} + + The command in this example creates a new online voice route with an Identity of Route1. It also adds the online PSTN usage Long Distance to the list of usages and the service ID PstnGateway sbc1.litwareinc.com to the list of online PSTN gateways. + + + + -------------------------- Example 3 -------------------------- + PS C:\> $x = (Get-CsOnlinePstnUsage).Usage + +New-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add=$x} + + This example creates a new online voice route named Route1 and populates that route's list of PSTN usages with all the existing usages for the organization. The first command in this example retrieves the list of global online PSTN usages. Notice that the call to the `Get-CsOnlinePstnUsage` cmdlet is in parentheses; this means that we first retrieve an object containing PSTN usage information. (Because there is only one, global, online PSTN usage, only one object will be retrieved.) The command then retrieves the Usage property of this object. That property, which contains a list of usages, is assigned to the variable $x. In the second line of this example, the `New-CsOnlineVoiceRoute` cmdlet is called to create a new online voice route. This voice route will have an identity of Route1. Notice the value passed to the OnlinePstnUsages parameter: @{add=$x}. This value says to add the contents of $x, which contain the phone usages list retrieved in line 1, to the list of online PSTN usages for this route. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute + + + Get-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute + + + Set-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute + + + Remove-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute + + + + + + New-CsOnlineVoiceRoutingPolicy + New + CsOnlineVoiceRoutingPolicy + + Creates a new online voice routing policy. Online voice routing policies manage online PSTN usages for Phone System users. + + + + Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Teams users an online voice routing policy enables those users to receive and to place phone calls to the public switched telephone network by using your on-premises SIP trunks. + Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Teams. Among other things, you will also need to enable those users for Phone System and will need to assign them an appropriate online voice policy. + + + + New-CsOnlineVoiceRoutingPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy. The online PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the `Get-CsOnlinePstnUsage` cmdlet). + + Object + + Object + + + None + + + RouteType + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy. The online PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the `Get-CsOnlinePstnUsage` cmdlet). + + Object + + Object + + + None + + + RouteType + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages "Long Distance" + + The command shown in Example 1 creates a new online per-user voice routing policy with the Identity RedmondOnlineVoiceRoutingPolicy. This policy is assigned a single online PSTN usage: Long Distance. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages "Long Distance", "Local", "Internal" + + Example 2 is a variation of the command shown in Example 1; in this case, however, the new policy is assigned three online PSTN usages: Long Distance; Local; Internal. Multiple usages can be assigned simply by separating each usage using a comma. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy + + + Get-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy + + + Set-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy + + + Grant-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy + + + Remove-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy + + + + + + New-CsSdgBulkSignInRequest + New + CsSdgBulkSignInRequest + + Use the New-CsSdgBulkSignInRequest cmdlet to sign in a batch of up to 100 devices. + + + + Bulk Sign In for Teams SIP Gateway enables you to sign in a batch of devices in one go. This feature is intended for admins and works for shared devices. The password for the shared device account is reset at runtime to an unknown value and the cmdlet uses the new credential for fetching token from Entra ID. Admins can sign in shared account remotely and in bulk using this feature. + + + + New-CsSdgBulkSignInRequest + + DeviceDetailsFilePath + + This is the path of the device details CSV file. The CSV file contains two columns - username and hardware ID, where username is of the format FirstFloorLobbyPhone1@contoso.com and hardware ID is the device MAC address in the format 1A-2B-3C-4D-5E-6F + + String + + String + + + None + + + Region + + This is the SIP Gateway region. Possible values include NOAM, EMEA, APAC. + + String + + String + + + None + + + + + + DeviceDetailsFilePath + + This is the path of the device details CSV file. The CSV file contains two columns - username and hardware ID, where username is of the format FirstFloorLobbyPhone1@contoso.com and hardware ID is the device MAC address in the format 1A-2B-3C-4D-5E-6F + + String + + String + + + None + + + Region + + This is the SIP Gateway region. Possible values include NOAM, EMEA, APAC. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Import-Module MicrosoftTeams +$credential = Get-Credential // Enter your admin's email and password +Connect-MicrosoftTeams -Credential $credential +$newBatchResponse = New-CsSdgBulkSignInRequest -DeviceDetailsFilePath .\Example.csv -Region APAC + + This example shows how to connect to Microsoft Teams PowerShell module, and read the output of the New-SdgBulkSignInRequest cmdlet into a variable newBatchResponse. The cmdlet uses Example.csv as the device details file, and SIP Gateway region as APAC. + + + + -------------------------- Example 2 -------------------------- + $newBatchResponse = New-CsSdgBulkSignInRequest -DeviceDetailsFilePath .\Example.csv -Region APAC +$newBatchResponse.BatchId +$getBatchStatusResponse = Get-CsSdgBulkSignInRequestStatus -Batchid $newBatchResponse.BatchId +$getBatchStatusResponse | ft +$getBatchStatusResponse.BatchItem + + This example shows how to view the status of a bulk sign in batch. + + + + + + + + New-CsSharedCallQueueHistoryTemplate + New + CsSharedCallQueueHistoryTemplate + + Use the New-CsSharedCallQueueHistory cmdlet to create a Shared Call Queue History template. + + + + Use the New-CsSharedCallQueueHistory cmdlet to create a Shared Call Queue History template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + New-CsSharedCallQueueHistoryTemplate + + AnsweredAndOutboundCalls + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + PARAMVALUE: Off | AuthorizedUsersOnly | AuthorizedUsersAndAgents + + Object + + Object + + + Off + + + Description + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + + System.String + + System.String + + + None + + + IncomingMissedCalls + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + PARAMVALUE: Off | AuthorizedUsersOnly | AuthorizedUsersAndAgents + + Object + + Object + + + Off + + + Name + + > Applicable: Microsoft Teams + The name of the shared call queue history template. + + System.String + + System.String + + + None + + + + + + AnsweredAndOutboundCalls + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + PARAMVALUE: Off | AuthorizedUsersOnly | AuthorizedUsersAndAgents + + Object + + Object + + + Off + + + Description + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + + System.String + + System.String + + + None + + + IncomingMissedCalls + + > Applicable: Microsoft Teams + A description for the shared call queue history template. + PARAMVALUE: Off | AuthorizedUsersOnly | AuthorizedUsersAndAgents + + Object + + Object + + + Off + + + Name + + > Applicable: Microsoft Teams + The name of the shared call queue history template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsSharedCallQueueHistoryTemplate -Name "Customer Service" -Description "Missed:All Answered:Auth" -IncomingMissedCall XXXXXX -AnsweredAndOutboundCalls XXXXX + + This example creates a new Shared CallQueue History template where incoming missed calls are shown to authorized users and agents and, answered and outbound calls are shown to authorized users only. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/New-CsSharedCallQueueHistoryTemplate + + + Get-CsSharedCallQueueHistoryTemplate + + + + Set-CsSharedCallQueueHistoryTemplate + + + + Remove-CsSharedCallQueueHistoryTemplate + + + + New-CsCallQueue + + + + Get-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + New-CsTag + New + CsTag + + Creates new tag that can be added to a TagTemplate. + + + + The New-CsTag cmdlet creates a new tag associated with a specific Auto Attendant callable entity. This tag must be added to a TagTemplate. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + New-CsTag + + TagName + + The name of the tag + + String + + String + + + None + + + TagDetails + + The full callable entity object created with the New-CsAutoAttendantCallableEntity (new-csautoattendantcallableentity.md)cmdlet + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + TagName + + The name of the tag + + String + + String + + + None + + + TagDetails + + The full callable entity object created with the New-CsAutoAttendantCallableEntity (new-csautoattendantcallableentity.md)cmdlet + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstag + + + New-CsTagsTemplate + + + + Get-CsTagsTemplate + + + + Set-CsTagsTemplate + + + + Remove-CsTagsTemplate + + + + + + + New-CsTagsTemplate + New + CsTagsTemplate + + Creates new tag template. + + + + The New-CsTagsTemplate cmdlet creates a new tag template made of up of tags created with New-CsTag (New-CsTag.md). + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + New-CsTagsTemplate + + Name + + The name of the tag + + String + + String + + + None + + + Description + + A description for the purpose of the tag template + + String + + String + + + None + + + Tags + + The list of tags to add to the template. + + List + + List + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + Name + + The name of the tag + + String + + String + + + None + + + Description + + A description for the purpose of the tag template + + String + + String + + + None + + + Tags + + The list of tags to add to the template. + + List + + List + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstagstemplate + + + New-CsTag + + + + Get-CsTagsTemplate + + + + Set-CsTagsTemplate + + + + Remove-CsTagsTemplate + + + + + + + New-CsTeamsAudioConferencingPolicy + New + CsTeamsAudioConferencingPolicy + + + + + + The New-CsTeamsAudioConferencingPolicy cmdlet enables administrators to control audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. This cmdlet creates a new Teams audio conferencing policy. Custom policies can then be assigned to users using the Grant-CsTeamsAudioConferencingPolicy cmdlet. + + + + New-CsTeamsAudioConferencingPolicy + + Identity + + Specify the name of the policy that you are creating + + String + + String + + + None + + + AllowTollFreeDialin + + Determines whether users of the Policy can have Toll free numbers + + Boolean + + Boolean + + + True + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + + SwitchParameter + + + False + + + MeetingInvitePhoneNumbers + + Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowTollFreeDialin + + Determines whether users of the Policy can have Toll free numbers + + Boolean + + Boolean + + + True + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy that you are creating + + String + + String + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + MeetingInvitePhoneNumbers + + Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> New-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" -AllowTollFreeDialin $False + + The command shown in Example 1 uses the New-CsTeamsAudioConferencingPolicy cmdlet to create a new audio-conferencing policy with the Identity "EMEA users". This policy will use all the default values for a meeting policy except one: AllowTollFreeDialin; in this example, meetings created by users with this policy cannot include Toll Free phone numbers. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> New-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" -AllowTollFreeDialin $True -MeetingInvitePhoneNumbers "+49695095XXXXX","+353156YYYYY","+1800856ZZZZZ" + + The command shown in Example 2 uses the New-CsTeamsAudioConferencingPolicy cmdlet to create a new audio-conferencing policy with the Identity "EMEA users". This policy will use all the default values for a meeting policy except one: MeetingInvitePhoneNumbers; in this example, meetings created by users with this policy will include the following toll and toll free phone numbers "+49695095XXXXX","+353156YYYYY","+1800856ZZZZZ". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy + + + Get-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy + + + Set-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy + + + Grant-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy + + + + + + New-CsTeamsCallParkPolicy + New + CsTeamsCallParkPolicy + + The New-CsTeamsCallParkPolicy cmdlet lets you create a new custom policy that can then be assigned to one or more specific users. + + + + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. + NOTE: The call park feature currently available in desktop. mobile and web clients. Supported with TeamsOnly mode. + + + + New-CsTeamsCallParkPolicy + + Identity + + A unique identifier for the policy - this will be used to retrieve the policy later on to assign it to specific users. + + XdsIdentity + + XdsIdentity + + + None + + + AllowCallPark + + If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppress all non-fatal errors. + + + SwitchParameter + + + False + + + ParkTimeoutSeconds + + Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). + + Integer + + Integer + + + 300 + + + PickupRangeEnd + + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 99 + + + PickupRangeStart + + Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 10 + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowCallPark + + If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppress all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A unique identifier for the policy - this will be used to retrieve the policy later on to assign it to specific users. + + XdsIdentity + + XdsIdentity + + + None + + + ParkTimeoutSeconds + + Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). + + Integer + + Integer + + + 300 + + + PickupRangeEnd + + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 99 + + + PickupRangeStart + + Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 10 + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -AllowCallPark $true + + Create a new custom policy that has call park enabled. This policy can then be assigned to individual users. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -AllowCallPark $true -PickupRangeStart 500 -PickupRangeEnd 1500 + + Create a new custom policy that has call park enabled. This policy will generate pickup numbers starting from 500 and up until 1500. + + + + -------------------------- Example 3 -------------------------- + PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -AllowCallPark $true -ParkTimeoutSeconds 600 + + Create a new custom call park policy which will ring back the parker after 600 seconds if the parked call is unanswered + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallparkpolicy + + + + + + New-CsTeamsCortanaPolicy + New + CsTeamsCortanaPolicy + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. + + + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. Specifically, these specify if a user can use Cortana voice assistant in Microsoft Teams and Cortana invocation behavior via CortanaVoiceInvocationMode parameter - * Disabled - Cortana voice assistant is disabled + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + This cmdlet creates a new Teams Cortana policy. Custom policies can then be assigned to users using the Grant-CsTeamsCortanaPolicy cmdlet. + + + + New-CsTeamsCortanaPolicy + + Identity + + Unique identifier for Teams cortana policy you're creating. + + XdsIdentity + + XdsIdentity + + + None + + + AllowCortanaAmbientListening + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaInContextSuggestions + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaVoiceInvocation + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + CortanaVoiceInvocationMode + + The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + String + + String + + + None + + + Description + + Provide a description of your policy to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowCortanaAmbientListening + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaInContextSuggestions + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaVoiceInvocation + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + CortanaVoiceInvocationMode + + The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + String + + String + + + None + + + Description + + Provide a description of your policy to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for Teams cortana policy you're creating. + + XdsIdentity + + XdsIdentity + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsCortanaPolicy -Identity MyCortanaPolicy -CortanaVoiceInvocationMode PushToTalkUserOverride + + In this example, a new Teams Cortana Policy is created. Cortana voice invocation mode is set to 'push to talk' i.e. Cortana in Teams can be invoked by tapping on the Cortana mic button only. Wake word ("Hey Cortana") invocation is not allowed. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy + + + + + + New-CsTeamsEmergencyCallRoutingPolicy + New + CsTeamsEmergencyCallRoutingPolicy + + This cmdlet creates a new Teams Emergency Call Routing policy with one or more emergency number. + + + + This cmdlet creates a new Teams Emergency Call Routing policy with one or more emergency numbers. Teams Emergency Call Routing policy is used for the life cycle of emergency call routing - emergency numbers and routing configuration. + + + + New-CsTeamsEmergencyCallRoutingPolicy + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy. + + String + + String + + + None + + + AllowEnhancedEmergencyServices + + Flag to enable Enhanced Emergency Services. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + The Description parameter describes the Teams Emergency Call Routing policy - what it's for, what type of user it applies to and any other information that helps to identify the purpose of this policy. Maximum characters: 512. + + String + + String + + + None + + + EmergencyNumbers + + One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowEnhancedEmergencyServices + + Flag to enable Enhanced Emergency Services. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + The Description parameter describes the Teams Emergency Call Routing policy - what it's for, what type of user it applies to and any other information that helps to identify the purpose of this policy. Maximum characters: 512. + + String + + String + + + None + + + EmergencyNumbers + + One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. + + Object + + Object + + + None + + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $en1 = New-CsTeamsEmergencyNumber -EmergencyDialString "911" -EmergencyDialMask "933" -OnlinePSTNUsage "USE911" +New-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{add=$en1} -AllowEnhancedEmergencyServices:$true -Description "test" + + This example first creates a new Teams emergency number object and then creates a Teams Emergency Call Routing policy with this emergency number object. Note that the OnlinePSTNUsage specified in the first command must previously exist. Note that the resulting object from the New-CsTeamsEmergencyNumber only exists in memory, so you must apply it to a policy to be used. Note that {@add=....} will try to append a new emergency number to the values taken from the global instance. + + + + -------------------------- Example 2 -------------------------- + $en1 = New-CsTeamsEmergencyNumber -EmergencyDialString "911" -EmergencyDialMask "933" -OnlinePSTNUsage "USE911" +New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en1 -AllowEnhancedEmergencyServices:$true -Description "test" + + This example overrides the global emergency numbers from the global instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy + + + Set-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy + + + Grant-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy + + + Remove-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy + + + Get-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy + + + New-CsTeamsEmergencyNumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber + + + + + + New-CsTeamsEmergencyNumber + New + CsTeamsEmergencyNumber + + + + + + This cmdlet supports creating multiple Teams emergency numbers. Used with TeamsEmergencyCallRoutingPolicy and only relevant for Direct Routing. + + + + New-CsTeamsEmergencyNumber + + EmergencyDialMask + + For each Teams emergency number, you can specify zero or more emergency dial masks. A dial mask is a number that you want to translate into the value of the emergency dial number value when it is dialed. Dial mask must be list of numbers separated by semicolon. Each number string must be made of the digits 0 through 9 and can be from 1 to 10 digits in length. + + String + + String + + + None + + + EmergencyDialString + + Specifies the emergency phone number + + String + + String + + + None + + + OnlinePSTNUsage + + Specify the online public switched telephone network (PSTN) usage + + String + + String + + + None + + + + + + EmergencyDialMask + + For each Teams emergency number, you can specify zero or more emergency dial masks. A dial mask is a number that you want to translate into the value of the emergency dial number value when it is dialed. Dial mask must be list of numbers separated by semicolon. Each number string must be made of the digits 0 through 9 and can be from 1 to 10 digits in length. + + String + + String + + + None + + + EmergencyDialString + + Specifies the emergency phone number + + String + + String + + + None + + + OnlinePSTNUsage + + Specify the online public switched telephone network (PSTN) usage + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsEmergencyNumber -EmergencyDialString 911 -EmergencyDialMask 933 -OnlinePSTNUsage "US911" + + Create a new Teams emergency number + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsEmergencyNumber -EmergencyDialString "112" -EmergencyDialMask "117;897" -OnlinePSTNUsage "EU112" + + Create a new Teams emergency number with multiple emergency dial masks. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber + + + Set-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy + + + New-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy + + + + + + New-CsTeamsEnhancedEncryptionPolicy + New + CsTeamsEnhancedEncryptionPolicy + + Use this cmdlet to create a new Teams enhanced encryption policy. + + + + Use this cmdlet to create a new Teams enhanced encryption policy. + The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for end-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. + + + + New-CsTeamsEnhancedEncryptionPolicy + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + + XdsIdentity + + XdsIdentity + + + None + + + CallingEndtoEndEncryptionEnabledType + + Determines whether end-to-end encrypted calling is available for the user in Teams. Set this to DisabledUserOverride to allow user to turn on end-to-end encrypted calls. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. + For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling Set-CsTeamsEnhancedEncryptionPolicy. + + + SwitchParameter + + + False + + + MeetingEndToEndEncryption + + Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + CallingEndtoEndEncryptionEnabledType + + Determines whether end-to-end encrypted calling is available for the user in Teams. Set this to DisabledUserOverride to allow user to turn on end-to-end encrypted calls. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. + For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + + XdsIdentity + + XdsIdentity + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling Set-CsTeamsEnhancedEncryptionPolicy. + + SwitchParameter + + SwitchParameter + + + False + + + MeetingEndToEndEncryption + + Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> New-CsTeamsEnhancedEncryptionPolicy -Identity ContosoPartnerTeamsEnhancedEncryptionPolicy + + Creates a new instance of TeamsEnhancedEncryptionPolicy called ContosoPartnerTeamsEnhancedEncryptionPolicy and applies the default values to its settings. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> New-CsTeamsEnhancedEncryptionPolicy -Identity ContosoPartnerTeamsEnhancedEncryptionPolicy -CallingEndtoEndEncryptionEnabledType DisabledUserOverride -MeetingEndToEndEncryption DisabledUserOverride + + Creates a new instance of TeamsEnhancedEncryptionPolicy called ContosoPartnerTeamsEnhancedEncryptionPolicy and applies the provided values to its settings. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy + + + Get-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy + + + Set-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy + + + Remove-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy + + + Grant-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy + + + + + + New-CsTeamsEventsPolicy + New + CsTeamsEventsPolicy + + This cmdlet allows you to create a new TeamsEventsPolicy instance and set its properties. Note that this policy is currently still in preview. + + + + TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. + + + + New-CsTeamsEventsPolicy + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + AllowedQuestionTypesInRegistrationForm + + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + + String + + String + + + None + + + AllowedTownhallTypesForRecordingPublish + + This setting governs which types of town halls can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting governs which types of webinars can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + Enabled + + + AllowEventIntegrations + + This setting governs the access to the integrations tab in the event creation workflow. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. + + String + + String + + + Enabled + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + + String + + String + + + Enabled + + + BroadcastPremiumApps + + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall + + String + + String + + + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. + Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. + - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + + String + + String + + + Everyone + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. + + String + + String + + + Enabled + + + RecordingForTownhall + + Determines whether recording is allowed in a user's townhall. Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + + String + + String + + + Enabled + + + RecordingForWebinar + + Determines whether recording is allowed in a user's webinar. Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + + String + + String + + + Enabled + + + TownhallChatExperience + + This setting governs if the user can enable the Comment Stream chat experience for Townhalls. + + String + + String + + + None + + + TownhallEventAttendeeAccess + + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + + String + + String + + + Enabled + + + TranscriptionForWebinar + + Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + + String + + String + + + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + + + WhatIf + + The WhatIf switch does not work with this cmdlet. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowedQuestionTypesInRegistrationForm + + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + + String + + String + + + None + + + AllowedTownhallTypesForRecordingPublish + + This setting governs which types of town halls can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting governs which types of webinars can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + Enabled + + + AllowEventIntegrations + + This setting governs the access to the integrations tab in the event creation workflow. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town hall. + + String + + String + + + Enabled + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + + String + + String + + + Enabled + + + BroadcastPremiumApps + + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall + + String + + String + + + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + This setting governs which users can access the Town hall event and access the event registration page or the event site to register for a Webinar. It also governs which user type is allowed to join the session or sessions in the event for both event types. + Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. + - EveryoneInCompanyExcludingGuests : For Webinar - enables creating events to allow only in-tenant users to register and join the event. For Town hall - enables creating events to allow only in-tenant users to join the event (Note: for Town hall, in-tenant users include guests; this parameter will disable public Town halls). + + String + + String + + + Everyone + + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. + + String + + String + + + Enabled + + + RecordingForTownhall + + Determines whether recording is allowed in a user's townhall. Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + + String + + String + + + Enabled + + + RecordingForWebinar + + Determines whether recording is allowed in a user's webinar. Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + + String + + String + + + Enabled + + + TownhallChatExperience + + This setting governs if the user can enable the Comment Stream chat experience for Townhalls. + + String + + String + + + None + + + TownhallEventAttendeeAccess + + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + + String + + String + + + Enabled + + + TranscriptionForWebinar + + Determines whether transcriptions are allowed in a user's webinar. Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + + String + + String + + + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + + + WhatIf + + The WhatIf switch does not work with this cmdlet. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsEventsPolicy -Identity DisablePublicWebinars -AllowWebinars Enabled -EventAccessType EveryoneInCompanyExcludingGuests + + The command shown in Example 1 creates a new per-user Teams Events policy with the Identity DisablePublicWebinars. This policy disables a user from creating public webinars. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsEventsPolicy -Identity DisableWebinars -AllowWebinars Disabled + + The command shown in Example 2 creates a new per-user Teams Events policy with the Identity DisableWebinars. This policy disables a user from creating webinars. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamseventspolicy + + + + + + New-CsTeamsIPPhonePolicy + New + CsTeamsIPPhonePolicy + + New-CsTeamsIPPhonePolicy allows you to create a policy to manage features related to Teams phone experiences. Teams phone policies determine the features that are available to users. + + + + The New-CsTeamsIPPhonePolicy cmdlet allows you to create a policy to manage features related to Teams phone experiences assigned to a user account used to sign into a Teams phone. + + + + New-CsTeamsIPPhonePolicy + + Identity + + The identity of the policy that you want to create. + + XdsIdentity + + XdsIdentity + + + None + + + AllowBetterTogether + + Determines whether Better Together mode is enabled, phones can lock and unlock in an integrated fashion when connected to their Windows PC running a 64-bit Teams desktop client. Possible values this parameter can take: + - Enabled + - Disabled + + String + + String + + + Enabled + + + AllowHomeScreen + + Determines whether the Home Screen feature of the Teams IP Phones is enabled. Possible values this parameter can take: + - Enabled + - EnabledUserOverride + - Disabled + + String + + String + + + EnabledUserOverride + + + AllowHotDesking + + Determines whether hot desking mode is enabled. Set this to TRUE to enable. Set this to FALSE to disable hot desking mode. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Free form text that can be used by administrators as desired. + + String + + String + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + HotDeskingIdleTimeoutInMinutes + + Determines the idle timeout value in minutes for the signed in user account. When the timeout is reached, the account is logged out. + + String + + String + + + None + + + SearchOnCommonAreaPhoneMode + + Determines whether a user can search the Global Address List in Common Area Phone Mode. Set this to ENABLED to enable the feature. Set this to DISABLED to disable the feature. + + Object + + Object + + + None + + + SignInMode + + Determines the sign in mode for the device when signing in to Teams. Possible Values: - 'UserSignIn: Enables the individual user's Teams experience on the phone' + - 'CommonAreaPhoneSignIn: Enables a Common Area Phone experience on the phone' + - 'MeetingSignIn: Enables the meeting/conference room experience on the phone' + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowBetterTogether + + Determines whether Better Together mode is enabled, phones can lock and unlock in an integrated fashion when connected to their Windows PC running a 64-bit Teams desktop client. Possible values this parameter can take: + - Enabled + - Disabled + + String + + String + + + Enabled + + + AllowHomeScreen + + Determines whether the Home Screen feature of the Teams IP Phones is enabled. Possible values this parameter can take: + - Enabled + - EnabledUserOverride + - Disabled + + String + + String + + + EnabledUserOverride + + + AllowHotDesking + + Determines whether hot desking mode is enabled. Set this to TRUE to enable. Set this to FALSE to disable hot desking mode. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Free form text that can be used by administrators as desired. + + String + + String + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + HotDeskingIdleTimeoutInMinutes + + Determines the idle timeout value in minutes for the signed in user account. When the timeout is reached, the account is logged out. + + String + + String + + + None + + + Identity + + The identity of the policy that you want to create. + + XdsIdentity + + XdsIdentity + + + None + + + SearchOnCommonAreaPhoneMode + + Determines whether a user can search the Global Address List in Common Area Phone Mode. Set this to ENABLED to enable the feature. Set this to DISABLED to disable the feature. + + Object + + Object + + + None + + + SignInMode + + Determines the sign in mode for the device when signing in to Teams. Possible Values: - 'UserSignIn: Enables the individual user's Teams experience on the phone' + - 'CommonAreaPhoneSignIn: Enables a Common Area Phone experience on the phone' + - 'MeetingSignIn: Enables the meeting/conference room experience on the phone' + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsIPPhonePolicy -Identity CommonAreaPhone -SignInMode CommonAreaPhoneSignin + + This example shows a new policy being created called "CommonAreaPhone" setting the SignInMode as "CommonAreaPhoneSignIn". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsipphonepolicy + + + + + + New-CsTeamsMeetingBroadcastPolicy + New + CsTeamsMeetingBroadcastPolicy + + Use this cmdlet to create a new policy. + + + + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. + + + + New-CsTeamsMeetingBroadcastPolicy + + Identity + + Specifies the name of the policy being created + + XdsIdentity + + XdsIdentity + + + None + + + AllowBroadcastScheduling + + Specifies whether this user can create broadcast events in Teams. This setting impacts broadcasts that use both self-service and external encoder production methods. + + Boolean + + Boolean + + + None + + + AllowBroadcastTranscription + + Specifies whether real-time transcription and translation can be enabled in the broadcast event. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + + Boolean + + Boolean + + + None + + + BroadcastAttendeeVisibilityMode + + Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated users in my company can watch the event. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + + String + + String + + + None + + + BroadcastRecordingMode + + Specifies whether broadcast events created by this user are always recorded, never recorded or user can choose whether to record or not. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Specifies why this policy is being created. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might occur when running the command. + + + SwitchParameter + + + False + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + + SwitchParameter + + + False + + + Tenant + + Not applicable, you can only specify policies for your own logged-in tenant. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowBroadcastScheduling + + Specifies whether this user can create broadcast events in Teams. This setting impacts broadcasts that use both self-service and external encoder production methods. + + Boolean + + Boolean + + + None + + + AllowBroadcastTranscription + + Specifies whether real-time transcription and translation can be enabled in the broadcast event. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + + Boolean + + Boolean + + + None + + + BroadcastAttendeeVisibilityMode + + Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated users in my company can watch the event. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + + String + + String + + + None + + + BroadcastRecordingMode + + Specifies whether broadcast events created by this user are always recorded, never recorded or user can choose whether to record or not. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Specifies why this policy is being created. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specifies the name of the policy being created + + XdsIdentity + + XdsIdentity + + + None + + + InMemory + + Creates an object reference without actually committing the object as a permanent change. If you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set- cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + Not applicable, you can only specify policies for your own logged-in tenant. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsMeetingBroadcastPolicy -Identity Students -AllowBroadcastScheduling $false + + Creates a new MeetingBroadcastPolicy with broadcast scheduling disabled, which can then be assigned to individual users using the corresponding grant- command. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbroadcastpolicy + + + + + + New-CsTeamsMobilityPolicy + New + CsTeamsMobilityPolicy + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + + + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + The New-CsTeamsMobilityPolicy cmdlet lets an Admin create a custom teams mobility policy to assign to particular sets of users. + + + + New-CsTeamsMobilityPolicy + + Identity + + Specify the name of the policy that you are creating. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppress all non-fatal errors. + + + SwitchParameter + + + False + + + IPAudioMobileMode + + When set to WifiOnly, prohibits the user from making and receiving calls or joining meetings using VoIP calls on the mobile device while on a cellular data connection. Possible values are: WifiOnly, AllNetworks. + + String + + String + + + None + + + IPVideoMobileMode + + When set to WifiOnly, prohibits the user from making and receiving video calls or enabling video in meetings using VoIP calls on the mobile device while on a cellular data connection. Possible values are: WifiOnly, AllNetworks. + + String + + String + + + None + + + MobileDialerPreference + + Determines the mobile dialer preference, possible values are: Teams, Native, UserOverride. For more information, see Manage user incoming calling policies (https://learn.microsoft.com/microsoftteams/operator-connect-mobile-configure#manage-user-incoming-calling-policies). + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppress all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy that you are creating. + + XdsIdentity + + XdsIdentity + + + None + + + IPAudioMobileMode + + When set to WifiOnly, prohibits the user from making and receiving calls or joining meetings using VoIP calls on the mobile device while on a cellular data connection. Possible values are: WifiOnly, AllNetworks. + + String + + String + + + None + + + IPVideoMobileMode + + When set to WifiOnly, prohibits the user from making and receiving video calls or enabling video in meetings using VoIP calls on the mobile device while on a cellular data connection. Possible values are: WifiOnly, AllNetworks. + + String + + String + + + None + + + MobileDialerPreference + + Determines the mobile dialer preference, possible values are: Teams, Native, UserOverride. For more information, see Manage user incoming calling policies (https://learn.microsoft.com/microsoftteams/operator-connect-mobile-configure#manage-user-incoming-calling-policies). + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsMobilityPolicy -Identity SalesMobilityPolicy -IPAudioMobileMode "WifiOnly" + + The command shown in Example 1 uses the New-CsTeamsMobilityPolicy cmdlet to create a new Teams Mobility Policy with the Identity SalesMobilityPolicy and IPAudioMobileMode equal to WifiOnly. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmobilitypolicy + + + + + + New-CsTeamsNetworkRoamingPolicy + New + CsTeamsNetworkRoamingPolicy + + New-CsTeamsNetworkRoamingPolicy allows IT Admins to create policies for Network Roaming and Bandwidth Control experiences in Microsoft Teams. + + + + Creates new Teams Network Roaming Policies configured for use in your organization. + The TeamsNetworkRoamingPolicy cmdlets enable administrators to provide specific settings from the TeamsMeetingPolicy to be rendered dynamically based upon the location of the Teams client. The TeamsNetworkRoamingPolicy cannot be granted to a user but instead can be assigned to a network site. The settings from the TeamsMeetingPolicy included are AllowIPVideo and MediaBitRateKb. When a Teams client is connected to a network site where a CsTeamRoamingPolicy is assigned, these two settings from the TeamsRoamingPolicy will be used instead of the settings from the TeamsMeetingPolicy. + More on the impact of bit rate setting on bandwidth can be found here (https://learn.microsoft.com/microsoftteams/prepare-network). + To enable the network roaming policy for users who are not Enterprise Voice enabled, you must also enable the AllowNetworkConfigurationSettingsLookup setting in TeamsMeetingPolicy. This setting is off by default. See Set-TeamsMeetingPolicy for more information on how to enable AllowNetworkConfigurationSettingsLookup for users who are not Enterprise Voice enabled. + + + + New-CsTeamsNetworkRoamingPolicy + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. + + Boolean + + Boolean + + + True + + + Description + + Description of the new policy to be created. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be created. + + XdsIdentity + + XdsIdentity + + + None + + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + Integer + + Integer + + + 50000 + + + + + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. + + Boolean + + Boolean + + + True + + + Description + + Description of the new policy to be created. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be created. + + XdsIdentity + + XdsIdentity + + + None + + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + Integer + + Integer + + + 50000 + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsNetworkRoamingPolicy -Identity "RedmondRoaming" -AllowIPVideo $true -MediaBitRateKb 2000 -Description "Redmond campus roaming policy" + + The command shown in Example 1 creates a new teams network roaming policy with Identity "RedmondRoaming" with IP Video feature enabled, and the maximum media bit rate is capped at 2000 Kbps. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTeamsNetworkRoamingPolicy -Identity "RemoteRoaming" + + The command shown in Example 2 creates a new teams network roaming policy with Identity "RemoteRoaming" with IP Video feature enabled, and the maximum media bit rate is capped at 50000 Kbps by default. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsnetworkroamingpolicy + + + + + + New-CsTeamsRoomVideoTeleConferencingPolicy + New + CsTeamsRoomVideoTeleConferencingPolicy + + Creates a new TeamsRoomVideoTeleConferencingPolicy. + + + + The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). + + + + New-CsTeamsRoomVideoTeleConferencingPolicy + + Identity + + Unique identifier for the policy to be modified. + + String + + String + + + None + + + AreaCode + + GUID provided by the CVI partner that the customer signed the agreement with. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide additional text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Enabled + + The policy can exist for the tenant but it can be enabled or disabled. + + Boolean + + Boolean + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PlaceExternalCalls + + The IT admin can configure that their Teams rooms are enabled to place external calls or not, meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + PlaceInternalCalls + + The IT admin can configure that their Teams rooms are enabled to place internal calls or not. Meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are within their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + ReceiveExternalCalls + + The IT admin can configure that their Teams rooms are enabled to receive external calls or not, meaning calls from Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + ReceiveInternalCalls + + The IT admin can configure that their Teams rooms are enabled to receive external calls or not. Meaning calls from Video Teleconferencing devices from their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AreaCode + + GUID provided by the CVI partner that the customer signed the agreement with. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide additional text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Enabled + + The policy can exist for the tenant but it can be enabled or disabled. + + Boolean + + Boolean + + + None + + + Identity + + Unique identifier for the policy to be modified. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PlaceExternalCalls + + The IT admin can configure that their Teams rooms are enabled to place external calls or not, meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + PlaceInternalCalls + + The IT admin can configure that their Teams rooms are enabled to place internal calls or not. Meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are within their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + ReceiveExternalCalls + + The IT admin can configure that their Teams rooms are enabled to receive external calls or not, meaning calls from Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + ReceiveInternalCalls + + The IT admin can configure that their Teams rooms are enabled to receive external calls or not. Meaning calls from Video Teleconferencing devices from their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsroomvideoteleconferencingpolicy + + + + + + New-CsTeamsShiftsConnection + New + CsTeamsShiftsConnection + + This cmdlet creates a new workforce management (WFM) connection. + + + + This cmdlet creates a Shifts WFM connection. It allows the admin to set up the environment for creating connection instances. + + + + New-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Body + + The request body. + + IConnectorInstanceRequest + + IConnectorInstanceRequest + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectorId + + The WFM connector ID. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connection name. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Name + + The connection name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Body + + The request body. + + IConnectorInstanceRequest + + IConnectorInstanceRequest + + + None + + + Break + + Wait for .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectorId + + The WFM connector ID. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connection name. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Name + + The connection name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + State + + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionRequest + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $result = New-CsTeamsShiftsConnection ` + -connectorId "6A51B888-FF44-4FEA-82E1-839401E00000" ` + -name "Cmdlet test connection" ` + -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest ` + -Property @{ + adminApiUrl = "https://contoso.com/retail/data/wfmadmin/api/v1-beta2" + siteManagerUrl = "https://contoso.com/retail/data/wfmsm/api/v1-beta2" + essApiUrl = "https://contoso.com/retail/data/wfmess/api/v1-beta1" + retailWebApiUrl = "https://contoso.com/retail/data/retailwebapi/api/v1" + cookieAuthUrl = "https://contoso.com/retail/data/login" + federatedAuthUrl = "https://contoso.com/retail/data/login" + LoginUserName = "PlaceholderForUsername" + LoginPwd = "PlaceholderForPassword" + }) ` + -state "Active" +PS C:\> $result | Format-List + +{ +ConnectorId : 6A51B888-FF44-4FEA-82E1-839401E00000 +ConnectorSpecificSettingAdminApiUrl : https://www.contoso.com/retail/data/wfmadmin/api/v1-beta2 +ConnectorSpecificSettingApiUrl : +ConnectorSpecificSettingAppKey : +ConnectorSpecificSettingClientId : +ConnectorSpecificSettingCookieAuthUrl : https://www.contoso.com/retail/data/login +ConnectorSpecificSettingEssApiUrl : https://www.contoso.com/retail/data/wfmess/api/v1-beta2 +ConnectorSpecificSettingFederatedAuthUrl : https://www.contoso.com/retail/data/login +ConnectorSpecificSettingRetailWebApiUrl : https://www.contoso.com/retail/data/retailwebapi/api/v1 +ConnectorSpecificSettingSiteManagerUrl : https://www.contoso.com/retail/data/wfmsm/api/v1-beta2 +ConnectorSpecificSettingSsoUrl : +CreatedDateTime : 24/03/2023 04:58:23 +Etag : "5b00dd1b-0000-0400-0000-641d2df00000" +Id : 4dae9db0-0841-412c-8d6b-f5684bfebdd7 +LastModifiedDateTime : 24/03/2023 04:58:23 +Name : Cmdlet test connection +State : Active +TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 +} + + Returns the object of the created connection. + In case of an error, we can capture the error response as follows: + * Hold the cmdlet output in a variable: `$result=<CMDLET>` + * To get the entire error message in Json: `$result.ToJsonString()` + * To get the error object and object details: `$result, $result.Detail` + + + + -------------------------- Example 2 -------------------------- + PS C:\> $result = New-CsTeamsShiftsConnection ` + -connectorId "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0" ` + -name "Cmdlet test connection" ` + -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest ` + -Property @{ + apiUrl = "https://www.contoso.com/api" + ssoUrl = "https://www.contoso.com/sso" + appKey = "PlaceholderForAppKey" + clientId = "Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W" + clientSecret = "PlaceholderForClientSecret" + LoginUserName = "PlaceholderForUsername" + LoginPwd = "PlaceholderForPassword" + }) ` + -state "Active" +PS C:\> $result | Format-List + +ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 +ConnectorSpecificSettingAdminApiUrl : +ConnectorSpecificSettingApiUrl : https://www.contoso.com/api +ConnectorSpecificSettingAppKey : +ConnectorSpecificSettingClientId : Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W +ConnectorSpecificSettingCookieAuthUrl : +ConnectorSpecificSettingEssApiUrl : +ConnectorSpecificSettingFederatedAuthUrl : +ConnectorSpecificSettingRetailWebApiUrl : +ConnectorSpecificSettingSiteManagerUrl : +ConnectorSpecificSettingSsoUrl : https://www.contoso.com/sso +CreatedDateTime : 06/04/2023 11:05:39 +Etag : "3100fd6e-0000-0400-0000-642ea7840000" +Id : a2d1b091-5140-4dd2-987a-98a8b5338744 +LastModifiedDateTime : 06/04/2023 11:05:39 +Name : Cmdlet test connection +State : Active +TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection + + + Get-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection + + + Set-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection + + + Update-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection + + + Get-CsTeamsShiftsConnectionConnector + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector + + + Test-CsTeamsShiftsConnectionValidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate + + + + + + New-CsTeamsShiftsConnectionBatchTeamMap + New + CsTeamsShiftsConnectionBatchTeamMap + + This cmdlet submits an operation connecting multiple Microsoft Teams teams and Workforce management (WFM) teams. + + + + This cmdlet connects multiple Microsoft Teams teams and WFM teams to allow for synchronization of shifts related data. It initiates an asynchronous job to map the WFM teams to the Microsoft Teams teams. You can check the operation status by running Get-CsTeamsShiftsConnectionOperation (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionoperation). + + + + New-CsTeamsShiftsConnectionBatchTeamMap + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The connection instance ID used to map teams. + + String + + String + + + None + + + TeamMapping + + > Applicable: Microsoft Teams + The Teams mapping object list. + + TeamMap[] + + TeamMap[] + + + None + + + + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The connection instance ID used to map teams. + + String + + String + + + None + + + TeamMapping + + > Applicable: Microsoft Teams + The Teams mapping object list. + + TeamMap[] + + TeamMap[] + + + None + + + + + + + Please check the example section for the format of TeamMap. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $map1 = @{ +teamId = 'eddc3b94-21d5-4ef0-a76a-2e4d6f4a50be' +wfmTeamId = 1000553 +timeZone = "America/Los_Angeles" +} + +$map2 = @{ +teamId = '1d8f6288-0459-4c53-8e98-9de7b781844a' +wfmTeamId = 1000555 +timeZone = "America/Los_Angeles" +} + +New-CsTeamsShiftsConnectionBatchTeamMap -ConnectorInstanceId WCI-2afeb8ec-a0f6-4580-8f1e-85fd4a343e01 -TeamMapping @($map1, $map2) + +CreatedDateTime LastActionDateTime OperationId Status +--------------- ------------------ ----------- ------ +12/6/2021 7:28:51 PM 12/6/2021 7:28:51 PM c79131b7-9ecb-484b-a8df-2639c7c1e5f0 NotStarted + + Sends 2 team mappings: one maps the Teams team with ID `eddc3b94-21d5-4ef0-a76a-2e4d6f4a50be` and WFM team with ID `1000553` and the other maps the Teams team with ID `1d8f6288-0459-4c53-8e98-9de7b781844a` and WFM team with ID `1000555` in the instance with ID `WCI-2afeb8ec-a0f6-4580-8f1e-85fd4a343e01`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap + + + Get-CsTeamsShiftsConnectionOperation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionoperation + + + + + + New-CsTeamsShiftsConnectionInstance + New + CsTeamsShiftsConnectionInstance + + This cmdlet creates a Shifts connection instance. + + + + This cmdlet creates a Shifts connection instance. It allows the admin to set up the environment for further connection settings. + + + + New-CsTeamsShiftsConnectionInstance + + Body + + The request body + + IConnectorInstanceRequest + + IConnectorInstanceRequest + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTeamsShiftsConnectionInstance + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorAdminEmail + + Gets or sets the list of connector admin email addresses. + + String[] + + String[] + + + None + + + DesignatedActorId + + Gets or sets the designated actor ID that App acts as for Shifts Graph Api calls. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + + String + + String + + + None + + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + + + SyncScenarioOfferShiftRequest + + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShift + + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the swap shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Body + + The request body + + IConnectorInstanceRequest + + IConnectorInstanceRequest + + + None + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectionId + + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorAdminEmail + + Gets or sets the list of connector admin email addresses. + + String[] + + String[] + + + None + + + DesignatedActorId + + Gets or sets the designated actor ID that App acts as for Shifts Graph Api calls. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + State + + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + + String + + String + + + None + + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + + + SyncScenarioOfferShiftRequest + + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShift + + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the swap shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceRequest + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $result = New-CsTeamsShiftsConnectionInstance ` +-connectionId "79964000-286a-4216-ac60-c795a426d61a" ` +-name "Cmdlet test instance" ` +-connectorAdminEmail @("admin@contoso.com", "superadmin@contoso.com") ` +-designatedActorId "93f85765-47db-412d-8f06-9844718762a1" ` +-State "Active" ` +-syncFrequencyInMin "10" ` +-SyncScenarioOfferShiftRequest "FromWfmToShifts" ` +-SyncScenarioOpenShift "FromWfmToShifts" ` +-SyncScenarioOpenShiftRequest "FromWfmToShifts" ` +-SyncScenarioShift "FromWfmToShifts" ` +-SyncScenarioSwapRequest "FromWfmToShifts" ` +-SyncScenarioTimeCard "FromWfmToShifts" ` +-SyncScenarioTimeOff "FromWfmToShifts" ` +-SyncScenarioTimeOffRequest "FromWfmToShifts" ` +-SyncScenarioUserShiftPreference "Disabled" +PS C:\> $result.ToJsonString() + +{ + "syncScenarios": { + "offerShiftRequest": "FromWfmToShifts", + "openShift": "FromWfmToShifts", + "openShiftRequest": "FromWfmToShifts", + "shift": "FromWfmToShifts", + "swapRequest": "FromWfmToShifts", + "timeCard": "FromWfmToShifts", + "timeOff": "FromWfmToShifts", + "timeOffRequest": "FromWfmToShifts", + "userShiftPreferences": "Disabled" + }, + "id": "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1", + "tenantId": "dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a", + "connectionId": "79964000-286a-4216-ac60-c795a426d61a", + "connectorAdminEmails": [ "admin@contoso.com", "superadmin@contoso.com" ], + "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", + "designatedActorId": "ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231", + "name": "Cmdlet test instance", + "syncFrequencyInMin": 10, + "workforceIntegrationId": "WFI_6b225907-b476-4d40-9773-08b86db7b11b", + "etag": "\"4f005d22-0000-0400-0000-642ff64a0000\"", + "createdDateTime": "2023-04-07T10:54:01.8170000Z", + "lastModifiedDateTime": "2023-04-07T10:54:01.8170000Z", + "state": "Active" +} + + Returns the object of created connector instance. + In case of an error, we can capture the error response as follows: + * Hold the cmdlet output in a variable: `$result=<CMDLET>` + * To get the entire error message in Json: `$result.ToJsonString()` + * To get the error object and object details: `$result, $result.Detail` + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance + + + Get-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + Set-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance + + + Remove-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance + + + Get-CsTeamsShiftsConnectionConnector + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector + + + Test-CsTeamsShiftsConnectionValidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate + + + + + + New-CsTeamsSurvivableBranchAppliance + New + CsTeamsSurvivableBranchAppliance + + Creates a new Survivable Branch Appliance (SBA) object in the tenant. + + + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + New-CsTeamsSurvivableBranchAppliance + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Free format text. + + String + + String + + + None + + + Fqdn + + The FQDN of the SBA. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + Site + + The TenantNetworkSite where the SBA is located + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTeamsSurvivableBranchAppliance + + Identity + + The identity of the SBA. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Free format text. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + Site + + The TenantNetworkSite where the SBA is located + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Free format text. + + String + + String + + + None + + + Fqdn + + The FQDN of the SBA. + + String + + String + + + None + + + Identity + + The identity of the SBA. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + Site + + The TenantNetworkSite where the SBA is located + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssurvivablebranchappliance + + + + + + New-CsTeamsSurvivableBranchAppliancePolicy + New + CsTeamsSurvivableBranchAppliancePolicy + + Creates a new Survivable Branch Appliance (SBA) policy object in the tenant. + + + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + New-CsTeamsSurvivableBranchAppliancePolicy + + Identity + + The unique identifier. + + String + + String + + + None + + + BranchApplianceFqdns + + The FQDN of the SBA(s) in the site. + + Object + + Object + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BranchApplianceFqdns + + The FQDN of the SBA(s) in the site. + + Object + + Object + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The unique identifier. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssurvivablebranchappliancepolicy + + + + + + New-CsTeamsTranslationRule + New + CsTeamsTranslationRule + + Cmdlet to create a new telephone number manipulation rule. + + + + You can use this cmdlet to create a new number manipulation rule. The rule can be used, for example, in the settings of your SBC (Set-CSOnlinePSTNGateway) to convert a callee or caller number to a desired format before entering or leaving Microsoft Phone System + + + + New-CsTeamsTranslationRule + + Identity + + The Identifier of the rule. This parameter is required and later used to assign the rule to the Inbound or Outbound Trunk Normalization policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A friendly description of the normalization rule. + + String + + String + + + None + + + Pattern + + A regular expression that caller or callee number must match in order for this rule to be applied. + + String + + String + + + None + + + Translation + + The regular expression pattern that will be applied to the number to convert it. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTeamsTranslationRule + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A friendly description of the normalization rule. + + String + + String + + + None + + + Name + + The name of the rule. + + String + + String + + + None + + + Pattern + + A regular expression that caller or callee number must match in order for this rule to be applied. + + String + + String + + + None + + + Translation + + The regular expression pattern that will be applied to the number to convert it. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + A friendly description of the normalization rule. + + String + + String + + + None + + + Identity + + The Identifier of the rule. This parameter is required and later used to assign the rule to the Inbound or Outbound Trunk Normalization policy. + + String + + String + + + None + + + Name + + The name of the rule. + + String + + String + + + None + + + Pattern + + A regular expression that caller or callee number must match in order for this rule to be applied. + + String + + String + + + None + + + Translation + + The regular expression pattern that will be applied to the number to convert it. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsTeamsTranslationRule -Identity 'AddPlus1' -Pattern '^(\d{10})$' -Translation '+1$1' + + This example creates a rule that adds +1 to any ten digits number. For example, 2065555555 will be translated to +1206555555 + + + + -------------------------- Example 2 -------------------------- + New-CsTeamsTranslationRule -Identity 'StripPlus1' -Pattern '^\+1(\d{10})$' -Translation '$1' + + This example creates a rule that strips +1 from any E.164 eleven digits number. For example, +12065555555 will be translated to 206555555 + + + + -------------------------- Example 3 -------------------------- + New-CsTeamsTranslationRule -Identity 'AddE164SeattleAreaCode' -Pattern '^(\d{4})$' -Translation '+120655$1' + + This example creates a rule that adds +1206555 to any four digits number (converts it to E.164number). For example, 5555 will be translated to +1206555555 + + + + -------------------------- Example 4 -------------------------- + New-CsTeamsTranslationRule -Identity 'AddSeattleAreaCode' -Pattern '^(\d{4})$' -Translation '425555$1' + + This example creates a rule that adds 425555 to any four digits number (converts to non-E.164 ten digits number). For example, 5555 will be translated to 4255555555 + + + + -------------------------- Example 5 -------------------------- + New-CsTeamsTranslationRule -Identity 'StripE164SeattleAreaCode' -Pattern '^\+1206555(\d{4})$' -Translation '$1' + + This example creates a rule that strips +1206555 from any E.164 ten digits number. For example, +12065555555 will be translated to 5555 + + + + -------------------------- Example 6 -------------------------- + New-CsTeamsTranslationRule -Identity 'GenerateFullNumber' -Pattern '^\+1206555(\d{4})$' -Translation '+1206555$1;ext=$1' + + This example creates a rule that adds the last four digits of a phone number starting with +1206555 as the extension. For example, +12065551234 will be translated to +12065551234;ext=1234. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule + + + Test-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule + + + Get-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule + + + Set-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule + + + Remove-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule + + + + + + New-CsTeamsUnassignedNumberTreatment + New + CsTeamsUnassignedNumberTreatment + + Creates a new treatment for how calls to an unassigned number range should be routed. The call can be routed to a user, an application or to an announcement service where a custom message will be played to the caller. + + + + This cmdlet creates a treatment for how calls to an unassigned number range should be routed. + + + + New-CsTeamsUnassignedNumberTreatment + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Free format description of this treatment. + + System.String + + System.String + + + None + + + Identity + + The Id of the treatment. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + Pattern + + A regular expression that the called number must match in order for the treatment to take effect. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + Target + + The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. + + System.String + + System.String + + + None + + + TargetType + + The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. + + System.String + + System.String + + + None + + + TreatmentPriority + + The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + New-CsTeamsUnassignedNumberTreatment + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Free format description of this treatment. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + Pattern + + A regular expression that the called number must match in order for the treatment to take effect. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + Target + + The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. + + System.String + + System.String + + + None + + + TargetType + + The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. + + System.String + + System.String + + + None + + + TreatmentId + + The identity of the treatment. + + System.String + + System.String + + + None + + + TreatmentPriority + + The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Free format description of this treatment. + + System.String + + System.String + + + None + + + Identity + + The Id of the treatment. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + Pattern + + A regular expression that the called number must match in order for the treatment to take effect. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + Target + + The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. + + System.String + + System.String + + + None + + + TargetType + + The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. + + System.String + + System.String + + + None + + + TreatmentId + + The identity of the treatment. + + System.String + + System.String + + + None + + + TreatmentPriority + + The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PS module 2.5.1 or later. + The parameters Identity and TreatmentId are mutually exclusive. + To route calls to unassigned Microsoft Calling Plan subscriber numbers, your tenant needs to have available Communications Credits. + To route calls to unassigned Microsoft Calling Plan service numbers, your tenant needs to have at least one Microsoft Teams Phone Resource Account license. + Both inbound calls to Microsoft Teams and outbound calls from Microsoft Teams will have the called number checked against the unassigned number range. + If a specified pattern/range contains phone numbers that are assigned to a user or resource account in the tenant, calls to these phone numbers will be routed to the appropriate target and not routed to the specified unassigned number treatment. There are no other checks of the numbers in the range. If the range contains a valid external phone number, outbound calls from Microsoft Teams to that phone number will be routed according to the treatment. + + + + + -------------------------- Example 1 -------------------------- + $RAObjectId = (Get-CsOnlineApplicationInstance -Identity aa@contoso.com).ObjectId +New-CsTeamsUnassignedNumberTreatment -Identity MainAA -Pattern "^\+15552223333$" -TargetType ResourceAccount -Target $RAObjectId -TreatmentPriority 1 + + This example creates a treatment that will route all calls to the number +1 (555) 222-3333 to the resource account aa@contoso.com. That resource account is associated with an Auto Attendant (not part of the example). + + + + -------------------------- Example 2 -------------------------- + $Content = Get-Content "C:\Media\MainAnnoucement.wav" -Encoding byte -ReadCount 0 +$AudioFile = Import-CsOnlineAudioFile -FileName "MainAnnouncement.wav" -Content $Content +$Fid=[System.Guid]::Parse($audioFile.Id) +New-CsTeamsUnassignedNumberTreatment -Identity TR1 -Pattern "^\+1555333\d{4}$" -TargetType Announcement -Target $Fid.Guid -TreatmentPriority 2 + + This example creates a treatment that will route all calls to unassigned numbers in the range +1 (555) 333-0000 to +1 (555) 333-9999 to the announcement service, where the audio file MainAnnouncement.wav will be played to the caller. + + + + -------------------------- Example 3 -------------------------- + $UserObjectId = (Get-CsOnlineUser -Identity user@contoso.com).Identity +New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -TargetType User -Target $UserObjectId -TreatmentPriority 3 + + This example creates a treatment that will route all calls to the number +1 (555) 222-4444 to the user user@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + Get-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment + + + Remove-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment + + + Set-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment + + + Test-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment + + + + + + New-CsTeamsWorkLoadPolicy + New + CsTeamsWorkLoadPolicy + + This cmdlet creates a Teams Workload Policy instance for the tenant. + + + + The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. + + + + New-CsTeamsWorkLoadPolicy + + Identity + + The identity of the Teams Workload Policy. + + String + + String + + + None + + + AllowCalling + + Determines if calling workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowCallingPinned + + Determines if calling workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMeeting + + Determines if meetings workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMeetingPinned + + Determines if meetings workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMessaging + + Determines if messaging workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMessagingPinned + + Determines if messaging workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the Teams Workload policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Microsoft Internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowCalling + + Determines if calling workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowCallingPinned + + Determines if calling workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMeeting + + Determines if meetings workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMeetingPinned + + Determines if meetings workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMessaging + + Determines if messaging workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMessagingPinned + + Determines if messaging workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the Teams Workload policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Identity + + The identity of the Teams Workload Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Microsoft Internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTeamsWorkLoadPolicy -Identity Test + + Creates a new Teams Workload Policy with the specified identity of "Test". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy + + + Remove-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy + + + Get-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy + + + Set-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy + + + Grant-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy + + + + + + New-CsTeamTemplate + New + CsTeamTemplate + + This cmdlet lets you provision a new team template for use in Microsoft Teams. + + + + To learn more about team templates, see Get started with Teams templates in the admin center (/microsoftteams/get-started-with-teams-templates-in-the-admin-console). + NOTE: The response is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. + + + + New-CsTeamTemplate + + App + + Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. To construct, see NOTES section for APP properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Category + + Gets or sets list of categories. + + System.String[] + + System.String[] + + + None + + + Channel + + Gets or sets the set of channel templates included in the team template. To construct, see NOTES section for CHANNEL properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + + None + + + Classification + + Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Gets or sets the team's Description. + + System.String + + System.String + + + None + + + DiscoverySetting + + Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + + None + + + DisplayName + + Gets or sets the team's DisplayName. + + System.String + + System.String + + + None + + + FunSetting + + Governs use of fun media like giphy and stickers in the team. To construct, see NOTES section for FUNSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + + None + + + GuestSetting + + Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Icon + + Gets or sets template icon. + + System.String + + System.String + + + None + + + IsMembershipLimitedToOwner + + Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. + + + System.Management.Automation.SwitchParameter + + + False + + + Locale + + {{ Fill Locale Description }} + + System.String + + System.String + + + None + + + MemberSetting + + Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + + None + + + MessagingSetting + + Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + + None + + + OwnerUserObjectId + + Gets or sets the Microsoft Entra user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + PublishedBy + + Gets or sets published name. + + System.String + + System.String + + + None + + + ShortDescription + + Gets or sets template short description. + + System.String + + System.String + + + None + + + Specialization + + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + + System.String + + System.String + + + None + + + TemplateId + + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + + System.String + + System.String + + + None + + + Uri + + Gets or sets uri to be used for GetTemplate api call. + + System.String + + System.String + + + None + + + Visibility + + Used to control the scope of users who can view a group/team and its members, and ability to join. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + New-CsTeamTemplate + + App + + Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. To construct, see NOTES section for APP properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Category + + Gets or sets list of categories. + + System.String[] + + System.String[] + + + None + + + Channel + + Gets or sets the set of channel templates included in the team template. To construct, see NOTES section for CHANNEL properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + + None + + + Classification + + Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Gets or sets the team's Description. + + System.String + + System.String + + + None + + + DiscoverySetting + + Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + + None + + + DisplayName + + Gets or sets the team's DisplayName. + + System.String + + System.String + + + None + + + FunSetting + + Governs use of fun media like giphy and stickers in the team. To construct, see NOTES section for FUNSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + + None + + + GuestSetting + + Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Icon + + Gets or sets template icon. + + System.String + + System.String + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + IsMembershipLimitedToOwner + + Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. + + + System.Management.Automation.SwitchParameter + + + False + + + MemberSetting + + Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + + None + + + MessagingSetting + + Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + + None + + + OwnerUserObjectId + + Gets or sets the Microsoft Entra user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + PublishedBy + + Gets or sets published name. + + System.String + + System.String + + + None + + + ShortDescription + + Gets or sets template short description. + + System.String + + System.String + + + None + + + Specialization + + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + + System.String + + System.String + + + None + + + TemplateId + + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + + System.String + + System.String + + + None + + + Uri + + Gets or sets uri to be used for GetTemplate api call. + + System.String + + System.String + + + None + + + Visibility + + Used to control the scope of users who can view a group/team and its members, and ability to join. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + New-CsTeamTemplate + + Body + + The client input for a request to create a template. Only admins from Config Api can perform this request. To construct, see NOTES section for BODY properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Locale + + {{ Fill Locale Description }} + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + New-CsTeamTemplate + + Body + + The client input for a request to create a template. Only admins from Config Api can perform this request. To construct, see NOTES section for BODY properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + App + + Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. To construct, see NOTES section for APP properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + + None + + + Body + + The client input for a request to create a template. Only admins from Config Api can perform this request. To construct, see NOTES section for BODY properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + None + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + Category + + Gets or sets list of categories. + + System.String[] + + System.String[] + + + None + + + Channel + + Gets or sets the set of channel templates included in the team template. To construct, see NOTES section for CHANNEL properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + + None + + + Classification + + Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Gets or sets the team's Description. + + System.String + + System.String + + + None + + + DiscoverySetting + + Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + + None + + + DisplayName + + Gets or sets the team's DisplayName. + + System.String + + System.String + + + None + + + FunSetting + + Governs use of fun media like giphy and stickers in the team. To construct, see NOTES section for FUNSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + + None + + + GuestSetting + + Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Icon + + Gets or sets template icon. + + System.String + + System.String + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + IsMembershipLimitedToOwner + + Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Locale + + {{ Fill Locale Description }} + + System.String + + System.String + + + None + + + MemberSetting + + Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + + None + + + MessagingSetting + + Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + + None + + + OwnerUserObjectId + + Gets or sets the Microsoft Entra user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + PublishedBy + + Gets or sets published name. + + System.String + + System.String + + + None + + + ShortDescription + + Gets or sets template short description. + + System.String + + System.String + + + None + + + Specialization + + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + + System.String + + System.String + + + None + + + TemplateId + + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + + System.String + + System.String + + + None + + + Uri + + Gets or sets uri to be used for GetTemplate api call. + + System.String + + System.String + + + None + + + Visibility + + Used to control the scope of users who can view a group/team and its members, and ability to join. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse + + + + + + + + + ALIASES + COMPLEX PARAMETER PROPERTIES + To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + APP <ITeamsAppTemplate[]>: Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + - `[Id <String>]`: Gets or sets the app's ID in the global apps catalog. + BODY <ITeamTemplate>: The client input for a request to create a template. Only admins from Config Api can perform this request. + - `DisplayName <String>`: Gets or sets the team's DisplayName. + - `ShortDescription <String>`: Gets or sets template short description. + - `[App <ITeamsAppTemplate[]>]`: Gets or sets the set of applications that should be installed in teams created based on the template. The app catalog is the main directory for information about each app; this set is intended only as a reference. + - `[Id <String>]`: Gets or sets the app's ID in the global apps catalog. - `[Category <String[]>]`: Gets or sets list of categories. + - `[Channel <IChannelTemplate[]>]`: Gets or sets the set of channel templates included in the team template. + - `[Description <String>]`: Gets or sets channel description as displayed to users. - `[DisplayName <String>]`: Gets or sets channel name as displayed to users. - `[Id <String>]`: Gets or sets identifier for the channel template. - `[IsFavoriteByDefault <Boolean?>]`: Gets or sets a value indicating whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. - `[Tab <IChannelTabTemplate[]>]`: Gets or sets collection of tabs that should be added to the channel. - `[Configuration <ITeamsTabConfiguration>]`: Represents the configuration of a tab. - `[ContentUrl <String>]`: Gets or sets the Url used for rendering tab contents in Teams. - `[EntityId <String>]`: Gets or sets the identifier for the entity hosted by the tab provider. - `[RemoveUrl <String>]`: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - `[WebsiteUrl <String>]`: Gets or sets the Url for showing tab contents outside of Teams. - `[Id <String>]`: Gets or sets identifier for the channel tab template. - `[Key <String>]`: Gets a unique identifier. - `[MessageId <String>]`: Gets or sets id used to identify the chat message associated with the tab. - `[Name <String>]`: Gets or sets the tab name displayed to users. - `[SortOrderIndex <String>]`: Gets or sets index of the order used for sorting tabs. - `[TeamsAppId <String>]`: Gets or sets the app's id in the global apps catalog. - `[WebUrl <String>]`: Gets or sets the deep link url of the tab instance. - `[Classification <String>]`: Gets or sets the team's classification. Tenant admins configure Microsoft Entra ID with the set of possible values. + - `[Description <String>]`: Gets or sets the team's Description. + - `[DiscoverySetting <ITeamDiscoverySettings>]`: Governs discoverability of a team. + - `ShowInTeamsSearchAndSuggestion <Boolean>`: Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - `[FunSetting <ITeamFunSettings>]`: Governs use of fun media like giphy and stickers in the team. - `AllowCustomMeme <Boolean>`: Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - `AllowGiphy <Boolean>`: Gets or sets a value indicating whether users can post giphy content in team conversations. - `AllowStickersAndMeme <Boolean>`: Gets or sets a value indicating whether users can post stickers and memes in team conversations. - `GiphyContentRating <String>`: Gets or sets the rating filter on giphy content. - `[GuestSetting <ITeamGuestSettings>]`: Guest role settings for the team. - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether guests can create or edit channels in the team. - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether guests can delete team channels. - `[Icon <String>]`: Gets or sets template icon. + - `[IsMembershipLimitedToOwner <Boolean?>]`: Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. + - `[MemberSetting <ITeamMemberSettings>]`: Member role settings for the team. + - `AllowAddRemoveApp <Boolean>`: Gets or sets a value indicating whether members can add or remove apps in the team. - `AllowCreatePrivateChannel <Boolean>`: Gets or Sets a value indicating whether members can create Private channels. - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether members can create or edit channels in the team. - `AllowCreateUpdateRemoveConnector <Boolean>`: Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - `AllowCreateUpdateRemoveTab <Boolean>`: Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether members can delete team channels. - `UploadCustomApp <Boolean>`: Gets or sets a value indicating is allowed to upload custom apps. - `[MessagingSetting <ITeamMessagingSettings>]`: Governs use of messaging features within the team These are settings the team owner should be able to modify from UI after team creation. - `AllowChannelMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - `AllowOwnerDeleteMessage <Boolean>`: Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - `AllowTeamMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - `AllowUserDeleteMessage <Boolean>`: Gets or sets a value indicating whether team members can delete their own messages in team conversations. - `AllowUserEditMessage <Boolean>`: Gets or sets a value indicating whether team members can edit their own messages in team conversations. - `[OwnerUserObjectId <String>]`: Gets or sets the Microsoft Entra user object id of the user who should be set as the owner of the new team. Only to be used when an application or administrative user is making the request on behalf of the specified user. + - `[PublishedBy <String>]`: Gets or sets published name. + - `[Specialization <String>]`: The specialization or use case describing the team. Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + - `[TemplateId <String>]`: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. + - `[Uri <String>]`: Gets or sets uri to be used for GetTemplate api call. + - `[Visibility <String>]`: Used to control the scope of users who can view a group/team and its members, and ability to join. + + CHANNEL <IChannelTemplate[]>: Gets or sets the set of channel templates included in the team template. + - `[Description <String>]`: Gets or sets channel description as displayed to users. + - `[DisplayName <String>]`: Gets or sets channel name as displayed to users. + - `[Id <String>]`: Gets or sets identifier for the channel template. + - `[IsFavoriteByDefault <Boolean?>]`: Gets or sets a value indicating whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + - `[Tab <IChannelTabTemplate[]>]`: Gets or sets collection of tabs that should be added to the channel. + - `[Configuration <ITeamsTabConfiguration>]`: Represents the configuration of a tab. - `[ContentUrl <String>]`: Gets or sets the Url used for rendering tab contents in Teams. - `[EntityId <String>]`: Gets or sets the identifier for the entity hosted by the tab provider. - `[RemoveUrl <String>]`: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - `[WebsiteUrl <String>]`: Gets or sets the Url for showing tab contents outside of Teams. - `[Id <String>]`: Gets or sets identifier for the channel tab template. - `[Key <String>]`: Gets a unique identifier. - `[MessageId <String>]`: Gets or sets id used to identify the chat message associated with the tab. - `[Name <String>]`: Gets or sets the tab name displayed to users. - `[SortOrderIndex <String>]`: Gets or sets index of the order used for sorting tabs. - `[TeamsAppId <String>]`: Gets or sets the app's id in the global apps catalog. - `[WebUrl <String>]`: Gets or sets the deep link url of the tab instance. + DISCOVERYSETTING <ITeamDiscoverySettings>: Governs discoverability of a team. + - `ShowInTeamsSearchAndSuggestion <Boolean>`: Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + FUNSETTING <ITeamFunSettings>: Governs use of fun media like giphy and stickers in the team. + - `AllowCustomMeme <Boolean>`: Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + - `AllowGiphy <Boolean>`: Gets or sets a value indicating whether users can post giphy content in team conversations. + - `AllowStickersAndMeme <Boolean>`: Gets or sets a value indicating whether users can post stickers and memes in team conversations. + - `GiphyContentRating <String>`: Gets or sets the rating filter on giphy content. + + GUESTSETTING <ITeamGuestSettings>: Guest role settings for the team. + - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether guests can create or edit channels in the team. + - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether guests can delete team channels. + + INPUTOBJECT <IConfigApiBasedCmdletsIdentity>: Identity Parameter + - `[Bssid <String>]`: + - `[ChassisId <String>]`: + - `[CivicAddressId <String>]`: Civic address id. + - `[Country <String>]`: + - `[GroupId <String>]`: The ID of a group whose policy assignments will be returned. + - `[Id <String>]`: + - `[Identity <String>]`: + - `[Locale <String>]`: + - `[LocationId <String>]`: Location id. + - `[OdataId <String>]`: A composite URI of a template. + - `[OperationId <String>]`: The ID of a batch policy assignment operation. + - `[OrderId <String>]`: + - `[PackageName <String>]`: The name of a specific policy package + - `[PolicyType <String>]`: The policy type for which group policy assignments will be returned. + - `[Port <String>]`: + - `[PortInOrderId <String>]`: + - `[PublicTemplateLocale <String>]`: Language and country code for localization of publicly available templates. + - `[SubnetId <String>]`: + - `[TenantId <String>]`: + - `[UserId <String>]`: UserId. Supports Guid. Eventually UPN and SIP. + + MEMBERSETTING <ITeamMemberSettings>: Member role settings for the team. + - `AllowAddRemoveApp <Boolean>`: Gets or sets a value indicating whether members can add or remove apps in the team. + - `AllowCreatePrivateChannel <Boolean>`: Gets or Sets a value indicating whether members can create Private channels. + - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether members can create or edit channels in the team. + - `AllowCreateUpdateRemoveConnector <Boolean>`: Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + - `AllowCreateUpdateRemoveTab <Boolean>`: Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether members can delete team channels. + - `UploadCustomApp <Boolean>`: Gets or sets a value indicating is allowed to upload custom apps. + + MESSAGINGSETTING <ITeamMessagingSettings>: Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + - `AllowChannelMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + - `AllowOwnerDeleteMessage <Boolean>`: Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + - `AllowTeamMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + - `AllowUserDeleteMessage <Boolean>`: Gets or sets a value indicating whether team members can delete their own messages in team conversations. + - `AllowUserEditMessage <Boolean>`: Gets or sets a value indicating whether team members can edit their own messages in team conversations. + + ## RELATED LINKS + - [Get-CsTeamTemplateList](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Get-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [New-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Update-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Remove-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json +# open json in your favorite editor, make changes + +PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.input.json' | Out-String) + + Step 1: Create new template from copy of existing template. Gets the template JSON file of Template with specified OData ID, creates a JSON file user can make edits in. Step 2: Create a new template from the JSON file named "input". + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> $template = Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US' +PS C:\> $template | Format-List # show the output object as it would be accessed + +PS C:\> $template.Category = $null # unset category to copy from public template +PS C:\> $template.DisplayName = 'New Template from object' +PS C:\> $template.Channel[1].DisplayName += ' modified' +## add a new channel to the channel list +PS C:\> $template.Channel += ` +@{ ` + displayName="test"; ` + id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` + isFavoriteByDefault=$false; ` +} + +PS C:\> New-CsTeamTemplate -Locale en-US -Body $template + + Create a template using a complex object syntax. + + + + -------------------------- EXAMPLE 3 -------------------------- + PS C:\> $template = New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplate -Property @{` +DisplayName='New Template';` +ShortDescription='Short Definition';` +Description='New Description';` +App=@{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'};` +Channel=@{` + displayName = "General";` + id= "General";` + isFavoriteByDefault= $true` + },` + @{` + displayName= "test";` + id= "b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475";` + isFavoriteByDefault= $false` + }` +} + +PS C:\> New-CsTeamTemplate -Locale en-US -Body $template + + Create template from scratch + > [!Note] > It can take up to 24 hours for Teams users to see a custom template change in the gallery. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate + + + + + + New-CsTenantDialPlan + New + CsTenantDialPlan + + Use the `New-CsTenantDialPlan` cmdlet to create a new tenant dial plan. + + + + You can use this cmdlet to create a new tenant dial plan. Tenant dial plans provide required information to let Enterprise Voice users make telephone calls. The Conferencing Attendant application also uses tenant dial plans for dial-in conferencing. A tenant dial plan determines such things as which normalization rules are applied. + You can add new normalization rules to a tenant dial plan by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet. + + + + New-CsTenantDialPlan + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is a unique identifier that designates the name of the tenant dial plan. Identity is an alphanumeric string that cannot exceed 49 characters. Valid characters are alphabetic or numeric characters, hyphen (-) and dot (.). The value should not begin with a (.) + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to and any other information that helps to identify the purpose of the tenant dial plan. Maximum characters: 1040. + + String + + String + + + None + + + NormalizationRules + + > Applicable: Microsoft Teams + The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule) cmdlet, which creates the rule and then assign it to the specified tenant dial plan using [Set-CsTenantDialPlan](https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan)cmdlet. + Each time a new tenant dial plan is created, a new voice normalization rule with default settings is also created for that site, service, or per-user tenant dial plan. By default, the Identity of the new voice normalization rule is the tenant dial plan Identity followed by a slash and then followed by the name Prefix All. (For example, TAG:Redmond/Prefix All.) The number of normalization rules cannot exceed 50 per TenantDialPlan. + You can create a new normalization rule by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet. + + List + + List + + + None + + + SimpleName + + > Applicable: Microsoft Teams + The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant dial plans. + This string can be up to 49 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot (.) and parentheses (()). + This parameter must contain a value. However, if you don't provide a value, a default value matching the Identity of the tenant dial plan will be supplied. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to and any other information that helps to identify the purpose of the tenant dial plan. Maximum characters: 1040. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is a unique identifier that designates the name of the tenant dial plan. Identity is an alphanumeric string that cannot exceed 49 characters. Valid characters are alphabetic or numeric characters, hyphen (-) and dot (.). The value should not begin with a (.) + + String + + String + + + None + + + NormalizationRules + + > Applicable: Microsoft Teams + The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule) cmdlet, which creates the rule and then assign it to the specified tenant dial plan using [Set-CsTenantDialPlan](https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan)cmdlet. + Each time a new tenant dial plan is created, a new voice normalization rule with default settings is also created for that site, service, or per-user tenant dial plan. By default, the Identity of the new voice normalization rule is the tenant dial plan Identity followed by a slash and then followed by the name Prefix All. (For example, TAG:Redmond/Prefix All.) The number of normalization rules cannot exceed 50 per TenantDialPlan. + You can create a new normalization rule by calling the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet. + + List + + List + + + None + + + SimpleName + + > Applicable: Microsoft Teams + The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant dial plans. + This string can be up to 49 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot (.) and parentheses (()). + This parameter must contain a value. However, if you don't provide a value, a default value matching the Identity of the tenant dial plan will be supplied. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. + + + + + -------------------------- Example 1 -------------------------- + New-CsTenantDialPlan -Identity vt1tenantDialPlan9 + + This example creates a tenant dial plan that has an Identity of vt1tenantDialPlan9. + + + + -------------------------- Example 2 -------------------------- + $nr2 = New-CsVoiceNormalizationRule -Identity Global/NR2 -Description "TestNR1" -Pattern '^(d{11})$' -Translation '+1' -InMemory +New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr2} + + This example creates a new normalization rule and then applies that rule to a new tenant dial plan. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan + + + Grant-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan + + + Get-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan + + + Set-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan + + + Remove-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan + + + + + + New-CsTenantNetworkRegion + New + CsTenantNetworkRegion + + Creates a new network region. + + + + A network region interconnects various parts of a network across multiple geographic areas. The RegionID parameter is a logical name that represents the geography of the region and has no dependencies or restrictions. The organization's network region is used for Location-Based Routing. + Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. A network region contains a collection of network sites. For example, if your organization has many sites located in Redmond, then you may choose to designate "Redmond" as a network region. + + + + New-CsTenantNetworkRegion + + Identity + + Unique identifier for the network region to be created. + + String + + String + + + None + + + BypassID + + This parameter is not used. + + String + + String + + + None + + + CentralSite + + This parameter is not used. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network region to identify purpose of creating it. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTenantNetworkRegion + + BypassID + + This parameter is not used. + + String + + String + + + None + + + CentralSite + + This parameter is not used. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network region to identify purpose of creating it. + + String + + String + + + None + + + NetworkRegionID + + The name of the network region. This must be a string that is unique. You cannot specify an NetworkRegionID and an Identity at the same time. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BypassID + + This parameter is not used. + + String + + String + + + None + + + CentralSite + + This parameter is not used. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the network region to identify purpose of creating it. + + String + + String + + + None + + + Identity + + Unique identifier for the network region to be created. + + String + + String + + + None + + + NetworkRegionID + + The name of the network region. This must be a string that is unique. You cannot specify an NetworkRegionID and an Identity at the same time. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTenantNetworkRegion -NetworkRegionID "RegionA" + + The command shown in Example 1 creates the network region 'RegionA' with no description. Identity and CentralSite will both be set identically to NetworkRegionID. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion + + + Get-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion + + + Remove-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion + + + Set-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion + + + + + + New-CsTenantNetworkSite + New + CsTenantNetworkSite + + As an admin, you can use the Teams PowerShell command, New-CsTenantNetworkSite to define network sites. Network sites are defined as a collection of IP subnets. Each network site must be associated with a network region. The organization's network site is used for Location-Based Routing. + + + + A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. Each network site must be associated with a network region. + A best practice for Location Based Routing (LBR) is to create a separate site for each location which has unique PSTN connectivity. Sites may be created as LBR or non-LBR enabled. A non-LBR enabled site may be created to allow LBR enabled users to make PSTN calls when they roam to that site. Note that network sites may also be used for emergency calling enablement and configuration. In addition, network sites can also be used for configuring Network Roaming Policy capabilities. + + + + New-CsTenantNetworkSite + + Identity + + Unique identifier for the network site to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network site to identify purpose of creating it. + + String + + String + + + None + + + EmergencyCallingPolicy + + This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). + + String + + String + + + None + + + EmergencyCallRoutingPolicy + + This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). + + String + + String + + + None + + + EnableLocationBasedRouting + + This parameter determines whether the current site is enabled for Location-Based Routing. + + Boolean + + Boolean + + + None + + + LocationPolicy + + This parameter is reserved for Microsoft internal use. + + String + + String + + + None + + + NetworkRegionID + + NetworkRegionID is the identifier for the network region to which the current network site is associated to. + + String + + String + + + None + + + NetworkRoamingPolicy + + NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. + + String + + String + + + None + + + SiteAddress + + This parameter is not used. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTenantNetworkSite + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network site to identify purpose of creating it. + + String + + String + + + None + + + EmergencyCallingPolicy + + This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). + + String + + String + + + None + + + EmergencyCallRoutingPolicy + + This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). + + String + + String + + + None + + + EnableLocationBasedRouting + + This parameter determines whether the current site is enabled for Location-Based Routing. + + Boolean + + Boolean + + + None + + + LocationPolicy + + This parameter is reserved for Microsoft internal use. + + String + + String + + + None + + + NetworkRegionID + + NetworkRegionID is the identifier for the network region to which the current network site is associated to. + + String + + String + + + None + + + NetworkRoamingPolicy + + NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. + + String + + String + + + None + + + NetworkSiteID + + The name of the network site. This must be a string that is unique. You cannot specify an NetworkSiteID and an Identity at the same time. + + String + + String + + + None + + + SiteAddress + + This parameter is not used. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the network site to identify purpose of creating it. + + String + + String + + + None + + + EmergencyCallingPolicy + + This parameter is used to assign a custom emergency calling policy to a network site. For more information see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). + + String + + String + + + None + + + EmergencyCallRoutingPolicy + + This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). + + String + + String + + + None + + + EnableLocationBasedRouting + + This parameter determines whether the current site is enabled for Location-Based Routing. + + Boolean + + Boolean + + + None + + + Identity + + Unique identifier for the network site to be created. + + String + + String + + + None + + + LocationPolicy + + This parameter is reserved for Microsoft internal use. + + String + + String + + + None + + + NetworkRegionID + + NetworkRegionID is the identifier for the network region to which the current network site is associated to. + + String + + String + + + None + + + NetworkRoamingPolicy + + NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. + + String + + String + + + None + + + NetworkSiteID + + The name of the network site. This must be a string that is unique. You cannot specify an NetworkSiteID and an Identity at the same time. + + String + + String + + + None + + + SiteAddress + + This parameter is not used. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTenantNetworkSite -NetworkSiteID "MicrosoftSite1" -NetworkRegionID "RegionRedmond" + + The command shown in Example 1 created the network site 'MicrosoftSite1' with no description. Identity will be set identical with NetworkSiteID. + The network region 'RegionRedmond' is created beforehand and 'MicrosoftSite1' will be associated with 'RegionRedmond'. + NetworkSites can exist without all parameters excepts NetworkSiteID. NetworkRegionID can be left blank. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTenantNetworkSite -NetworkSiteID "site2" -Description "site 2" -NetworkRegionID "RedmondRegion" -LocationPolicy "TestLocationPolicy" -EnableLocationBasedRouting $true + + The command shown in Example 2 creates the network site 'site2' with the description 'site 2'. This site is enabled for LBR, and associates with network region 'RedmondRegion' and with location policy 'TestLocationPolicy'. + + + + -------------------------- Example 3 -------------------------- + PS C:\> New-CsTenantNetworkSite -NetworkSiteID "site3" -Description "site 3" -NetworkRegionID "RedmondRegion" -NetworkRoamingPolicy "TestNetworkRoamingPolicy" + + The command shown in Example 3 creates the network site 'site3' with the description 'site 3'. This site is enabled for network roaming capabilities. The example associates the site with network region 'RedmondRegion' and network roaming policy 'TestNetworkRoamingPolicy'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite + + + Get-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite + + + Remove-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite + + + Set-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite + + + + + + New-CsTenantNetworkSubnet + New + CsTenantNetworkSubnet + + Creates a new network subnet. + + + + Each internal subnet may only be associated with one site. Tenant network subnet is used for Location Based Routing. IP subnets at the location where Teams endpoints can connect to the network must be defined and associated to a defined network in order to enforce toll bypass. Multiple subnets may be associated with the same network site, but multiple sites may not be associated with a same subnet. This association of subnets enables Location-Based routing to locate the endpoints geographically to determine if a given PSTN call should be allowed. Both IPv4 and IPv6 subnets are supported. When determining if a Teams endpoint is located at a site an IPv6 address will be checked for a match first. + When the client is sending the network subnet, please make sure we have already whitelisted the IP address by running this command-let, otherwise the request will be rejected. If you are only adding the IPv4 address by running this command-let, but your client are only sending and IPv6 address, it will be rejected. + + + + New-CsTenantNetworkSubnet + + Identity + + Unique identifier for the network subnet to be created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network subnet to identify the purpose of creating it. + + String + + String + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + + Int32 + + Int32 + + + None + + + NetworkSiteID + + NetworkSiteID is the identifier for the network site which the current network subnet is associating to. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTenantNetworkSubnet + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network subnet to identify the purpose of creating it. + + String + + String + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + + Int32 + + Int32 + + + None + + + NetworkSiteID + + NetworkSiteID is the identifier for the network site which the current network subnet is associating to. + + String + + String + + + None + + + SubnetID + + The name of the network subnet. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an NetworkSubnetID and an Identity at the same time. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the network subnet to identify the purpose of creating it. + + String + + String + + + None + + + Identity + + Unique identifier for the network subnet to be created. + + String + + String + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + + Int32 + + Int32 + + + None + + + NetworkSiteID + + NetworkSiteID is the identifier for the network site which the current network subnet is associating to. + + String + + String + + + None + + + SubnetID + + The name of the network subnet. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an NetworkSubnetID and an Identity at the same time. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTenantNetworkSubnet -SubnetID "192.168.0.1" -MaskBits "24" -NetworkSiteID "site1" + + The command shown in Example 1 created the network subnet '192.168.0.1' with no description. The subnet is IPv4 format, and the subnet is assigned to network site 'site1'. The maskbits is set to 24. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTenantNetworkSubnet -SubnetID "2001:4898:e8:25:844e:926f:85ad:dd8e" -MaskBits "120" -NetworkSiteID "site1" + + The command shown in Example 2 created the network subnet '2001:4898:e8:25:844e:926f:85ad:dd8e' with no description. The subnet is IPv6 format, and the subnet is assigned to network site 'site1'. The maskbits is set to 120. + IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet + + + Get-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet + + + Remove-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet + + + Set-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet + + + + + + New-CsTenantTrustedIPAddress + New + CsTenantTrustedIPAddress + + Creates a new IP address. + + + + External trusted IPs are the Internet external IPs of the enterprise network and are used to determine if the user's endpoint is inside the corporate network before checking for a specific site match. If the user's external IP matches one defined in the trusted list, then Location-Based Routing will check to determine which internal subnet the user's endpoint is located. If the user's external IP doesn't match one defined in the trusted list, the endpoint will be classified as being at an unknown and any PSTN calls to/from an LBR enabled user are blocked. + Both IPv4 and IPv6 trusted IP addresses are supported. You can define an unlimited number of external subnets for a tenant. + + + + New-CsTenantTrustedIPAddress + + Identity + + Unique identifier for the IP address to be created. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the trusted IP address to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + InMemory + + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format IP address accepts maskbits from 0 to 32 inclusive. If not provided, the value is set to 32. + IPv6 format IP address accepts maskbits from 0 to 128 inclusive. If not provided, the value is set to 128. + + System.Int32 + + System.Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose IP addresses are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsTenantTrustedIPAddress + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the trusted IP address to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + InMemory + + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + IPAddress + + The name of the IP address. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an IP address and an Identity at the same time. + + String + + String + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format IP address accepts maskbits from 0 to 32 inclusive. If not provided, the value is set to 32. + IPv6 format IP address accepts maskbits from 0 to 128 inclusive. If not provided, the value is set to 128. + + System.Int32 + + System.Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose IP addresses are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the trusted IP address to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the IP address to be created. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + InMemory + + PARAMVALUE: SwitchParameter + + SwitchParameter + + SwitchParameter + + + False + + + IPAddress + + The name of the IP address. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an IP address and an Identity at the same time. + + String + + String + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format IP address accepts maskbits from 0 to 32 inclusive. If not provided, the value is set to 32. + IPv6 format IP address accepts maskbits from 0 to 128 inclusive. If not provided, the value is set to 128. + + System.Int32 + + System.Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose IP addresses are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsTenantTrustedIPAddress -IPAddress "192.168.0.1" + + The command shown in Example 1 created the IP address '192.168.0.1' with no description. The IP address is in IPv4 format, and the maskbits is set to 32 by default. + + + + -------------------------- Example 2 -------------------------- + PS C:\> New-CsTenantTrustedIPAddress -IPAddress "192.168.2.0" -MaskBits "24" + + The command shown in Example 2 created the IP address '192.168.2.0' with no description. The IP address is in IPv4 format, and the maskbits is set to 24. + IPv4 format IP address accepts maskbits from 0 to 32 inclusive. + + + + -------------------------- Example 3 -------------------------- + PS C:\> New-CsTenantTrustedIPAddress -IPAddress "2001:4898:e8:25:844e:926f:85ad:dd8e" -Description "IPv6 IP address" + + The command shown in Example 3 created the IP address '2001:4898:e8:25:844e:926f:85ad:dd8e' with description. The IP address is in IPv6 format, and the maskbits is set to 128 by default. + IPv6 format IP address accepts maskbits from 0 to 128 inclusive. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenanttrustedipaddress + + + + + + New-CsUserCallingDelegate + New + CsUserCallingDelegate + + This cmdlet will add a new delegate for calling in Microsoft Teams. + + + + This cmdlet adds a new delegate with given permissions for the specified user. + + + + New-CsUserCallingDelegate + + Delegate + + The Identity of the delegate to add. Can be specified using the ObjectId or the SIP address. + A user can have up to 25 delegates. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to add a delegate for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + MakeCalls + + Specifies whether delegate is allowed to make calls on behalf of the specified user. + + System.Boolean + + System.Boolean + + + False + + + ManageSettings + + Specifies whether delegate is allowed to change the delegate and calling settings for the specified user. + + System.Boolean + + System.Boolean + + + False + + + ReceiveCalls + + Specifies whether delegate is allowed to receive calls on behalf of the specified user. + + System.Boolean + + System.Boolean + + + False + + + + + + Delegate + + The Identity of the delegate to add. Can be specified using the ObjectId or the SIP address. + A user can have up to 25 delegates. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to add a delegate for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + MakeCalls + + Specifies whether delegate is allowed to make calls on behalf of the specified user. + + System.Boolean + + System.Boolean + + + False + + + ManageSettings + + Specifies whether delegate is allowed to change the delegate and calling settings for the specified user. + + System.Boolean + + System.Boolean + + + False + + + ReceiveCalls + + Specifies whether delegate is allowed to receive calls on behalf of the specified user. + + System.Boolean + + System.Boolean + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 4.0.0 or later. + The specified user need to have the Microsoft Phone System license assigned. + You can see the delegate of a user by using the Get-CsUserCallingSettings cmdlet. + + + + + -------------------------- Example 1 -------------------------- + New-CsUserCallingDelegate -Identity user1@contoso.com -Delegate user2@contoso.com -MakeCalls $true -ReceiveCalls $true -ManageSettings $true + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate + + + Get-CsUserCallingSettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings + + + Set-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate + + + Remove-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate + + + + + + New-CsVideoInteropServiceProvider + New + CsVideoInteropServiceProvider + + Use the New-CsVideoInteropServiceProvider to specify information about a supported CVI partner your organization would like to use. + + + + Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. + Important note: New-CsVideoInteropServiceProvider does not do a check on the -Identity to be one of the Identity (without tag:) from the Get-CsTeamsVideoInteropServicePolicy, however if this is not set to match, the VTC coordinates will not added to the meetings correctly. Make sure that your "Identity" matches a valid policy identity. + + + + New-CsVideoInteropServiceProvider + + Identity + + This is mandatory parameter and can have only one of the 6 values PolycomServiceProviderEnabled PexipServiceProviderEnabled BlueJeansServiceProviderEnabled + PolycomServiceProviderDisabled PexipServiceProviderDisabled BlueJeansServiceProviderDisabled + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + AadApplicationIds + + This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. + + String + + String + + + None + + + AllowAppGuestJoinsAsAuthenticated + + This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Bypass all non-fatal errors. + + + SwitchParameter + + + False + + + InMemory + + Create a provider object in memory without committing it to the service. + + + SwitchParameter + + + False + + + InstructionUri + + InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + TenantKey + + Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + New-CsVideoInteropServiceProvider + + AadApplicationIds + + This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. + + String + + String + + + None + + + AllowAppGuestJoinsAsAuthenticated + + This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Bypass all non-fatal errors. + + + SwitchParameter + + + False + + + InMemory + + Create a provider object in memory without committing it to the service. + + + SwitchParameter + + + False + + + InstructionUri + + InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners + + String + + String + + + None + + + Name + + This is mandatory parameter and can have only one of the 4 values + Polycom BlueJeans Pexip Cisco + + String + + String + + + DefaultProvider + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + TenantKey + + Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AadApplicationIds + + This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. + + String + + String + + + None + + + AllowAppGuestJoinsAsAuthenticated + + This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Bypass all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + This is mandatory parameter and can have only one of the 6 values PolycomServiceProviderEnabled PexipServiceProviderEnabled BlueJeansServiceProviderEnabled + PolycomServiceProviderDisabled PexipServiceProviderDisabled BlueJeansServiceProviderDisabled + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + InMemory + + Create a provider object in memory without committing it to the service. + + SwitchParameter + + SwitchParameter + + + False + + + InstructionUri + + InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners + + String + + String + + + None + + + Name + + This is mandatory parameter and can have only one of the 4 values + Polycom BlueJeans Pexip Cisco + + String + + String + + + DefaultProvider + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + TenantKey + + Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> New-CsVideoInteropServiceProvider + + {{ Add example description here }} + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csvideointeropserviceprovider + + + + + + New-CsVoiceNormalizationRule + New + CsVoiceNormalizationRule + + Creates a new voice normalization rule. + + + + This cmdlet was introduced in Lync Server 2010. + Voice normalization rules are used to convert a telephone dialing requirement (for example, dialing 9 to access an outside line) to the E.164 phone number format used by Skype for Business Server or Microsoft Teams. + These rules are a required part of phone authorization and call routing. They define the requirements for converting (or translating) numbers from an internal format to a standard (E.164) format. An understanding of regular expressions is helpful in order to define number patterns that will be translated. + For Lync or Skype for Business Server, rules that are created by using this cmdlet are part of the dial plan and in addition to being accessible through the `Get-CsVoiceNormalizationRule` cmdlet can also be accessed through the NormalizationRules property returned by a call to the `Get-CsDialPlan` cmdlet. You cannot create a normalization rule unless a dial plan with an Identity matching the scope specified in the normalization rule Identity already exists. For example, you can't create a normalization rule with the Identity site:Redmond/RedmondNormalizationRule unless a dial plan for site:Redmond already exists. + For Microsoft Teams, rules that are created by using this cmdlet can only be created with the InMemory switch and should be added to a tenant dial plan using the `New-CsTenantDialPlan` or `Set-CsTenantDialPlan` cmdlets. + + + + New-CsVoiceNormalizationRule + + Identity + + A unique identifier for the rule. The Identity specified must include the scope followed by a slash and then the name; for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name. The name portion will automatically be stored in the Name property. You cannot specify values for Identity and Name in the same command. + For Lync and Skype for Business Server, voice normalization rules can be created at the following scopes: global, site, service (Registrar and PSTNGateway only) and per user. A dial plan with an Identity matching the scope of the normalization rule must already exist before a new rule can be created. (To retrieve a list of dial plans, call the `Get-CsDialPlan` cmdlet.) + For Microsoft Teams, voice normalization rules can be created at the following scopes: global and tag. + The Identity parameter is required unless the Parent parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + A friendly description of the normalization rule. + Maximum string length: 512 characters. + + String + + String + + + None + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + InMemory + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Creates an object reference without actually committing the object as a permanent change. + For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + + + SwitchParameter + + + False + + + IsInternalExtension + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + If True, the result of applying this rule will be a number internal to the organization. If False, applying the rule results in an external number. This value is ignored if the value of the OptimizeDeviceDialing property of the associated dial plan/tenant dial plan is set to False. + Default: False + + Boolean + + Boolean + + + None + + + Parent + + The scope at which the new normalization rule will be created. This value must be global; site:<sitename>, where <sitename> is the name of the Skype for Business Server site; PSTN gateway or Registrar service, such as PSTNGateway:redmond.litwareinc.com; or a string designating a per user rule. A dial plan with the specified scope must already exist or the command will fail. + The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name parameter is also required. + + String + + String + + + None + + + Pattern + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + A regular expression that the dialed number must match in order for this rule to be applied. + Default: ^(\d{11})$ (The default represents any set of numbers up to 11 digits.) + + String + + String + + + None + + + Priority + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The order in which rules are applied. A phone number might match more than one rule. This parameter sets the order in which the rules are tested against the number. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + For internal Microsoft usage. + + Guid + + Guid + + + None + + + Translation + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The regular expression pattern that will be applied to the number to convert it to E.164 format. + Default: +$1 (The default prefixes the number with a plus sign [+].) + + String + + String + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + New-CsVoiceNormalizationRule + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Description + + A friendly description of the normalization rule. + Maximum string length: 512 characters. + + String + + String + + + None + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + InMemory + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Creates an object reference without actually committing the object as a permanent change. + For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + + + SwitchParameter + + + False + + + IsInternalExtension + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + If True, the result of applying this rule will be a number internal to the organization. If False, applying the rule results in an external number. This value is ignored if the value of the OptimizeDeviceDialing property of the associated dial plan/tenant dial plan is set to False. + Default: False + + Boolean + + Boolean + + + None + + + Name + + The name of the rule. This parameter is required if a value has been specified for the Parent parameter. If no value has been specified for the Parent parameter, Name defaults to the name specified in the Identity parameter. For example, if a rule is created with the Identity site:Redmond/RedmondRule, the Name will default to RedmondRule. The Name parameter and the Identity parameter cannot be used in the same command. + + String + + String + + + None + + + Parent + + The scope at which the new normalization rule will be created. This value must be global; site:<sitename>, where <sitename> is the name of the Skype for Business Server site; PSTN gateway or Registrar service, such as PSTNGateway:redmond.litwareinc.com; or a string designating a per user rule. A dial plan with the specified scope must already exist or the command will fail. + The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name parameter is also required. + + String + + String + + + None + + + Pattern + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + A regular expression that the dialed number must match in order for this rule to be applied. + Default: ^(\d{11})$ (The default represents any set of numbers up to 11 digits.) + + String + + String + + + None + + + Priority + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The order in which rules are applied. A phone number might match more than one rule. This parameter sets the order in which the rules are tested against the number. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + For internal Microsoft usage. + + Guid + + Guid + + + None + + + Translation + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The regular expression pattern that will be applied to the number to convert it to E.164 format. + Default: +$1 (The default prefixes the number with a plus sign [+].) + + String + + String + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + A friendly description of the normalization rule. + Maximum string length: 512 characters. + + String + + String + + + None + + + Force + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A unique identifier for the rule. The Identity specified must include the scope followed by a slash and then the name; for example: site:Redmond/Rule1, where site:Redmond is the scope and Rule1 is the name. The name portion will automatically be stored in the Name property. You cannot specify values for Identity and Name in the same command. + For Lync and Skype for Business Server, voice normalization rules can be created at the following scopes: global, site, service (Registrar and PSTNGateway only) and per user. A dial plan with an Identity matching the scope of the normalization rule must already exist before a new rule can be created. (To retrieve a list of dial plans, call the `Get-CsDialPlan` cmdlet.) + For Microsoft Teams, voice normalization rules can be created at the following scopes: global and tag. + The Identity parameter is required unless the Parent parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. + + XdsIdentity + + XdsIdentity + + + None + + + InMemory + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Creates an object reference without actually committing the object as a permanent change. + For Lync or Skype for Business Server, if you assign the output of this cmdlet called with this parameter to a variable, you can make changes to the properties of the object reference and then commit those changes by calling this cmdlet's matching Set-<cmdlet>. + + SwitchParameter + + SwitchParameter + + + False + + + IsInternalExtension + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + If True, the result of applying this rule will be a number internal to the organization. If False, applying the rule results in an external number. This value is ignored if the value of the OptimizeDeviceDialing property of the associated dial plan/tenant dial plan is set to False. + Default: False + + Boolean + + Boolean + + + None + + + Name + + The name of the rule. This parameter is required if a value has been specified for the Parent parameter. If no value has been specified for the Parent parameter, Name defaults to the name specified in the Identity parameter. For example, if a rule is created with the Identity site:Redmond/RedmondRule, the Name will default to RedmondRule. The Name parameter and the Identity parameter cannot be used in the same command. + + String + + String + + + None + + + Parent + + The scope at which the new normalization rule will be created. This value must be global; site:<sitename>, where <sitename> is the name of the Skype for Business Server site; PSTN gateway or Registrar service, such as PSTNGateway:redmond.litwareinc.com; or a string designating a per user rule. A dial plan with the specified scope must already exist or the command will fail. + The Parent parameter is required unless the Identity parameter is specified. You cannot include the Identity parameter and the Parent parameter in the same command. If you include the Parent parameter, the Name parameter is also required. + + String + + String + + + None + + + Pattern + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + A regular expression that the dialed number must match in order for this rule to be applied. + Default: ^(\d{11})$ (The default represents any set of numbers up to 11 digits.) + + String + + String + + + None + + + Priority + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The order in which rules are applied. A phone number might match more than one rule. This parameter sets the order in which the rules are tested against the number. + + Int32 + + Int32 + + + None + + + Tenant + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + For internal Microsoft usage. + + Guid + + Guid + + + None + + + Translation + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The regular expression pattern that will be applied to the number to convert it to E.164 format. + Default: +$1 (The default prefixes the number with a plus sign [+].) + + String + + String + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Input types + + + None. + + + + + + + Output types + + + This cmdlet creates an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + New-CsVoiceNormalizationRule -Identity "site:Redmond/Prefix Redmond" + + This example creates a new voice normalization rule for site Redmond named Prefix Redmond. Because no other parameters are specified, the rule is created with the default values. Notice that the value passed to the Identity parameter is in double quotes; this is because the name of the rule (Prefix Redmond) contains a space. If the rule name does not contain a space you don't need to enclose the Identity in double quotes. + Keep in mind that a dial plan for the Redmond site must exist for this command to succeed. You can create a new dial plan by calling the `New-CsDialPlan` cmdlet. + + + + -------------------------- Example 2 -------------------------- + New-CsVoiceNormalizationRule -Parent SeattleUser -Name SeattleFourDigit -Description "Dialing with internal four-digit extension" -Pattern '^(\d{4})$' -Translation '+1206555$1' + + This example creates a new voice normalization rule named SeattleFourDigit that applies to the per-user dial plan with the Identity SeattleUser. (Note: Rather than specifying a Parent and a Name, we could have instead created this same rule by specifying -Identity SeattleUser/SeattleFourDigit.) We've included a Description explaining that this rule is for translating numbers dialed internally with only a 4-digit extension. In addition, Pattern and Translation values have been specified. These values translate a four-digit number (specified by the regular expression in the Pattern) to the same four-digit number, but prefixed by the Translation value (+1206555). For example, if the extension 1234 was entered, this rule would translate that extension to the number +12065551234. + Note the single quotes around the Pattern and Translation values. Single quotes are required for these values; double quotes (or no quotes) will not work in this instance. + As in Example 1, a dial plan with the given scope must exist. In this case, that means a dial plan with the Identity SeattleUser must already exist. + + + + -------------------------- Example 3 -------------------------- + $nr1=New-CsVoiceNormalizationRule -Identity dp1/nr1 -Description "Dialing with internal four-digit extension" -Pattern '^(\d{4})$' -Translation '+1206555$1' -InMemory +New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} + + This example creates a new in-memory voice normalization rule and then adds it to a new tenant dial plan DP1 to be used for Microsoft Teams users. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule + + + Test-CsVoiceNormalizationRule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csvoicenormalizationrule + + + Get-CsDialPlan + https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csdialplan + + + New-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan + + + Set-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan + + + + + + Register-CsOnlineDialInConferencingServiceNumber + Register + CsOnlineDialInConferencingServiceNumber + + The Register-CsOnlineDialInConferencingServiceNumber command allows you to assign any additional service number that you may have acquired to your conference bridge. + + + + The Register-CsOnlineDialInConferencingServiceNumber command allows you to assign any additional service number that you may have acquired to your conference bridge. + When you buy Audio Conferencing licenses, Microsoft is hosting your audio conferencing bridge for your organization. The audio conferencing bridge gives out dial-in phone numbers from different locations so that meeting organizers and participants can use them to join Microsoft Teams meetings using a phone. In addition to the phone numbers already assigned to your conferencing bridge, you can get additional service numbers (toll and toll-free numbers used for audio conferencing) from other locations, and then assign them to the conferencing bridge so you can expand coverage for your users. + + + + Register-CsOnlineDialInConferencingServiceNumber + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + PARAMVALUE: ConferencingServiceNumber + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + + + BridgeId + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + PARAMVALUE: Fqdn + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + + + + BridgeId + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + PARAMVALUE: Fqdn + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + PARAMVALUE: ConferencingServiceNumber + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + + + Tenant + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Register-CsOnlineDialinConferencingServiceNumber -Identity +1425555XXX -BridgeId fb91u3e9-5c2a-42c3-8yy5-ec02beexxx09 + + This command registers the telephone number +1425555XXX to your conference bridge. To find the bridge ID associated with your conference bridge you can use the command Get-CsOnlineDialInConferencingBridge. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/register-csonlinedialinconferencingservicenumber + + + + + + Remove-CsApplicationAccessPolicy + Remove + CsApplicationAccessPolicy + + Deletes an existing application access policy. + + + + This cmdlet deletes an existing application access policy. + + + + Remove-CsApplicationAccessPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + + + + + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + + + + + + + + + + + + ------------- Remove an application access policy ------------- + PS C:\> Remove-CsApplicationAccessPolicy -Identity "ASimplePolicy" + + The command shown above deletes the application access policy ASimplePolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csapplicationaccesspolicy + + + New-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Grant-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Get-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Set-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + + + + Remove-CsAutoAttendant + Remove + CsAutoAttendant + + Use the Remove-CsAutoAttendant cmdlet to delete an Auto Attendant (AA). + + + + The Remove-CsAutoAttendant cmdlet deletes an AA that is specified by the Identity parameter. + > [!NOTE] > Remove any associated resource accounts with Remove-CsOnlineApplicationInstanceAssociation (remove-csonlineapplicationinstanceassociation.md) before attempting to delete the Auto Attendant (AA). + + + + Remove-CsAutoAttendant + + Identity + + > Applicable: Microsoft Teams + The identity for the AA to be removed. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The identity for the AA to be removed. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + String + + + The Remove-CsAutoAttendant cmdlet accepts a string as the Identity parameter. + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5" + + This example deletes the AA that has an identity of fa9081d6-b4f3-5c96-baec-0b00077709e5. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant + + + New-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant + + + Get-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant + + + Set-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant + + + + + + Remove-CsCallingLineIdentity + Remove + CsCallingLineIdentity + + Use the `Remove-CsCallingLineIdentity` cmdlet to remove a Caller ID policy from your organization. + + + + This cmdlet will remove a Caller ID policy from your organization or resets the Global policy instance to the default values. + + + + Remove-CsCallingLineIdentity + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsCallingLineIdentity -Identity Anonymous + + This example removes a Caller ID policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity + + + Get-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity + + + Grant-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity + + + New-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity + + + Set-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity + + + + + + Remove-CsCallQueue + Remove + CsCallQueue + + The Remove-CsCallQueue cmdlet deletes an existing Call Queue. + + + + The Remove-CsCallQueue cmdlet deletes an existing Call Queue specified by the Identity parameter. The removal will fail if there are any ApplicationInstances still associated with the Call Queue. + + + + Remove-CsCallQueue + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + + + + Identity + + + Represents the unique identifier of a Call Queue. + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsCallQueue -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example removes the Call Queue with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Call Queue exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallqueue + + + + + + Remove-CsComplianceRecordingForCallQueueTemplate + Remove + CsComplianceRecordingForCallQueueTemplate + + Use the Remove-CsComplianceRecordingForCallQueueTemplate cmdlet to delete a Compliance Recording for Call Queues template. + + + + Use the Remove-CsComplianceRecordingForCallQueueTemplate cmdlet to delete a Compliance Recording for Call Queues template. If the template is currently assigned to a call queue, an error will be returned. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsComplianceRecordingForCallQueueTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example deletes the Compliance Recording for Call Queue template with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Compliance Recording for Call Queue template exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsComplianceRecordingForCallQueueTemplate + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + Remove-CsCustomPolicyPackage + Remove + CsCustomPolicyPackage + + This cmdlet deletes a custom policy package. + + + + This cmdlet deletes a custom policy package. All available package names can be found by running Get-CsPolicyPackage. + + + + Remove-CsCustomPolicyPackage + + Identity + + > Applicable: Microsoft Teams + The name of the custom package. + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The name of the custom package. + + String + + String + + + None + + + + + + + Default packages created by Microsoft cannot be deleted. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsCustomPolicyPackage -Identity "MyPackage" + + Deletes a custom package named "MyPackage". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscustompolicypackage + + + Get-CsPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + New-CsCustomPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscustompolicypackage + + + Update-CsCustomPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/update-cscustompolicypackage + + + + + + Remove-CsGroupPolicyAssignment + Remove + CsGroupPolicyAssignment + + This cmdlet is used to remove a group policy assignment. + + + + This cmdlet removes the policy of a specific type from a group. A group can only be assigned one policy of a given type, so the name of the policy to be removed does not need to be specified. + When a policy assignment is removed from a group, any other group policy assignments of the same type that have lower rank will be updated. For example, if the policy assignment with rank 2 is removed, then the rank 3 and 4 policy assignments will be updated to rank 2 and 3 respectively. + + + + Remove-CsGroupPolicyAssignment + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + GroupId + + The ID of the group from which the assignment will be removed. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + PassThru + + Returns true when the command succeeds + + + SwitchParameter + + + False + + + PolicyType + + The policy type of the assignment to be removed from the group. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + GroupId + + The ID of the group from which the assignment will be removed. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + PassThru + + Returns true when the command succeeds + + SwitchParameter + + SwitchParameter + + + False + + + PolicyType + + The policy type of the assignment to be removed from the group. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +e050ce51-54bc-45b7-b3e6-c00343d31274 TeamsMeetingPolicy AllOff 2 11/2/2019 12:20:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 3 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + +Remove-CsGroupPolicyAssignment -GroupId e050ce51-54bc-45b7-b3e6-c00343d31274 -PolicyType TeamsMeetingPolicy + +Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy + +GroupId PolicyType PolicyName Rank CreatedTime CreatedBy +------- ---------- ---------- ---- ----------- --------- +d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 +566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy Kiosk 2 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 + + In this example, the policy assignment with rank 2 is removed. As a result, the policy assignment with rank 3 is updated to rank 2. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment + + + New-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment + + + Get-CsGroupPolicyAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment + + + + + + Remove-CsHybridTelephoneNumber + Remove + CsHybridTelephoneNumber + + This cmdlet removes a hybrid telephone number. + + + + This cmdlet removes a hybrid telephone number used for Audio Conferencing with Direct Routing for GCC High and DoD clouds. + > [!IMPORTANT] > This cmdlet is being deprecated. Use the new New-CsOnlineTelephoneNumberReleaseOrder cmdlet to remove a telephone number for Audio Conferencing with Direct Routing in Microsoft 365 GCC High and DoD clouds. Detailed instructions on how to use the new cmdlet can be found at New-CsOnlineTelephoneNumberReleaseOrder (new-csonlinetelephonenumberreleaseorder.md). + + + + Remove-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + {{ Fill InputObject Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Remove-CsHybridTelephoneNumber + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + PassThru + + {{ Fill PassThru Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + The telephone number to remove. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + InputObject + + {{ Fill InputObject Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + PassThru + + {{ Fill PassThru Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + TelephoneNumber + + > Applicable: Microsoft Teams + The telephone number to remove. The number should be specified without a prefixed "+". The phone number can't have "tel:" prefixed. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + None + + + + + + + + + The cmdlet is only available in GCC High and DoD cloud instances. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsHybridTelephoneNumber -TelephoneNumber 14025551234 + + This example removes the hybrid phone number +1 (402) 555-1234. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cshybridtelephonenumber + + + New-CsHybridTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-cshybridtelephonenumber + + + Get-CsHybridTelephoneNumber + https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber + + + + + + Remove-CsInboundBlockedNumberPattern + Remove + CsInboundBlockedNumberPattern + + Removes a blocked number pattern from the tenant list. + + + + This cmdlet removes a blocked number pattern from the tenant list. + + + + Remove-CsInboundBlockedNumberPattern + + Identity + + A unique identifier specifying the blocked number pattern to be removed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + A unique identifier specifying the blocked number pattern to be removed. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS> Remove-CsInboundBlockedNumberPattern -Identity "BlockAutomatic" + + This example removes a blocked number pattern identified as "BlockAutomatic". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern + + + New-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern + + + Set-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern + + + Get-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern + + + + + + Remove-CsInboundExemptNumberPattern + Remove + CsInboundExemptNumberPattern + + Removes a number pattern exempt from call blocking. + + + + This cmdlet removes a specific exempt number pattern from the tenant list for call blocking. + + + + Remove-CsInboundExemptNumberPattern + + Identity + + Unique identifier for the exempt number pattern to be listed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the exempt number pattern to be listed. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + You can use Test-CsInboundBlockedNumberPattern to test your call block and exempt phone number ranges. + + + + + -------------------------- Example 1 -------------------------- + PS>Remove-CsInboundExemptNumberPattern -Identity "Exempt1" + + This removes the exempt number patterns with Identity Exempt1. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern + + + New-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern + + + Set-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern + + + Get-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern + + + Test-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern + + + Get-CsTenantBlockedCallingNumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers + + + + + + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove + CsMainlineAttendantAppointmentBookingFlow + + The Remove-CsMainlineAttendantAppointmentBookingFlow cmdlet deletes an existing Mainline attendant appointment booking flow. + + + + The Remove-CsMainlineAttendantAppointmentBookingFlow cmdlet deletes an existing Mainline attendant appointment booking flow. + + + + Remove-CsMainlineAttendantAppointmentBookingFlow + + Identity + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + + + + Identity + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + + + + Identity + + + Represents the unique identifier of a Mainline attendant appointment booking flow. + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsMainlineAttendantAppointmentBookingFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example removes the Mainline attendant appointment booking flow with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no appointment booking flow exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csmainlineattendantappointmentbookingflow + + + + + + Remove-CsMainlineAttendantQuestionAnswerFlow + Remove + CsMainlineAttendantQuestionAnswerFlow + + The Remove-CsMainlineAttendantQuestionAnswerFlow cmdlet deletes an existing Mainline attendant question and answer flow. + + + + The Remove-CsMainlineAttendantQuestionAnswerFlow cmdlet deletes an existing Mainline attendant question and answer flow. + + + + Remove-CsMainlineAttendantQuestionAnswerFlow + + Identity + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + + + + Identity + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + Tenant + + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + + + + Identity + + + Represents the unique identifier of a Mainline attendant question and answer flow. + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsMainlineAttendantQuestionAnswerFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example removes the Mainline attendant question and answer flow with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no question and answer flow exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csmainlineattendantquestionanswerflow + + + + + + Remove-CsOnlineApplicationInstanceAssociation + Remove + CsOnlineApplicationInstanceAssociation + + Use the Remove-CsOnlineApplicationInstanceAssociation cmdlet to remove the association between an application instance and the associated application configuration. + + + + Use the Remove-CsOnlineApplicationInstanceAssociation cmdlet to remove the association between an application instance and the associated application configuration. + This is useful when you want to associate this application instance with another application configuration for handling incoming calls. + + + + Remove-CsOnlineApplicationInstanceAssociation + + Identities + + > Applicable: Microsoft Teams + The identities for the application instances whose configuration associations are to be removed. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identities + + > Applicable: Microsoft Teams + The identities for the application instances whose configuration associations are to be removed. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String[] + + + The Remove-CsOnlineApplicationInstanceAssociation cmdlet accepts a string array as the Identities parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineApplicationInstanceAssociation -Identities "f7a821dc-2d69-5ae8-8525-bcb4a4556093" + + This example removes the configuration association for the application instance that has the identity of "f7a821dc-2d69-5ae8-8525-bcb4a4556093". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation + + + Get-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation + + + Get-CsOnlineApplicationInstanceAssociationStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus + + + New-CsOnlineApplicationInstanceAssociation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation + + + + + + Remove-CsOnlineAudioConferencingRoutingPolicy + Remove + CsOnlineAudioConferencingRoutingPolicy + + This cmdlet deletes an instance of the Online Audio Conferencing Routing Policy. + + + + Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. + To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." + The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. + Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. + + + + Remove-CsOnlineAudioConferencingRoutingPolicy + + Identity + + The identity of the policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The identity of the policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsOnlineAudioConferencingRoutingPolicy -Identity "Test" + + Deletes an Online Audio Conferencing Routing policy instance with the identity "Test". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudioconferencingroutingpolicy + + + New-CsOnlineAudioConferencingRoutingPolicy + + + + Grant-CsOnlineAudioConferencingRoutingPolicy + + + + Set-CsOnlineAudioConferencingRoutingPolicy + + + + Get-CsOnlineAudioConferencingRoutingPolicy + + + + + + + Remove-CsOnlineAudioFile + Remove + CsOnlineAudioFile + + Marks an audio file of application type TenantGlobal for deletion and later removal (within 24 hours). + + + + This cmdlet marks an audio file of application type TenantGlobal for deletion and later removal. + + + + Remove-CsOnlineAudioFile + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Id of the specific audio file that you would like to mark for deletion. + + System.String + + System.String + + + None + + + + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Id of the specific audio file that you would like to mark for deletion. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + Please note that using this cmdlet on other application types like OrgAutoAttendant and HuntGroup does not mark the audio file for deletion. These kinds of audio files will automatically be deleted, when + the corresponding Auto Attendant or Call Queue is deleted. + The cmdlet is available in Teams PS module 2.4.0-preview or later. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineAudioFile -Identity dcfcc31daa9246f29d94d0a715ef877e + + This cmdlet marks the audio file with Id dcfcc31daa9246f29d94d0a715ef877e for deletion and later removal. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile + + + Export-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile + + + Get-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + + + + Remove-CsOnlineDialInConferencingTenantSettings + Remove + CsOnlineDialInConferencingTenantSettings + + Use the `Remove-CsOnlineDialInConferencingTenantSettings` cmdlet to revert the tenant level dial-in conferencing settings to their original defaults. + + + + There is always a single instance of the dial-in conferencing settings per tenant. You can modify the settings using `Set-CsOnlineDialInConferencingTenantSettings` and revert those settings to their defaults by using `Remove-CsOnlineDialInConferencingTenantSettings`. + + + + Remove-CsOnlineDialInConferencingTenantSettings + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineDialInConferencingTenantSettings + + This example reverts the tenant level dial-in conferencing settings to their original defaults. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinedialinconferencingtenantsettings + + + + + + Remove-CsOnlineLisCivicAddress + Remove + CsOnlineLisCivicAddress + + Use the Remove-CsOnlineLisCivicAddress cmdlet to delete an existing civic address from the Location Information Server (LIS). + You can't remove a civic address if any of its associated locations are assigned to users or phone numbers. + + + + Removes the specified emergency address or addresses. + + + + Remove-CsOnlineLisCivicAddress + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address to be deleted. You can find civic address identifiers by using the Get-CsOnlineLisCivicAddress cmdlet. + + Guid + + Guid + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address to be deleted. You can find civic address identifiers by using the Get-CsOnlineLisCivicAddress cmdlet. + + Guid + + Guid + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + This cmdlet accepts pipelined input from the Get-CsOnlineLisCivicAddress cmdlet. + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineLisCivicAddress -CivicAddressId ee38d9a5-33dc-4a32-9fb8-f234cedb91ac + + This example removes the emergency civic address with the specified identification. + + + + -------------------------- Example 2 -------------------------- + Get-CsOnlineLisCivicAddress -City Redmond | Remove-CsOnlineLisCivicAddress + + This example removes all the emergency civic addresses in the city of Redmond. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress + + + Set-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress + + + New-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress + + + Get-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress + + + + + + Remove-CsOnlineLisLocation + Remove + CsOnlineLisLocation + + Use the Remove-CsOnlineLisLocation cmdlet to remove an existing emergency location from the Location Information Service (LIS). + You can only remove locations that have no assigned users or phone numbers. You can't remove the default location, you will have to delete the associated civic address which will delete the default location. + + + + If the location specified for removal is assigned to users, the cmdlet will fail until the users assignments are removed. + + + + Remove-CsOnlineLisLocation + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be deleted. Location identities can be discovered by using the Get-CsOnlineLisLocation cmdlet. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be deleted. Location identities can be discovered by using the Get-CsOnlineLisLocation cmdlet. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + This cmdlet supports pipelined input from the Get-CsOnlineLisLocation cmdlet. + + + + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineLisLocation -LocationId 788dd820-c136-4255-9f61-24b880ad0763 + + This example removes the location specified by its identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation + + + Set-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation + + + Get-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation + + + New-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation + + + + + + Remove-CsOnlineLisPort + Remove + CsOnlineLisPort + + Removes an association between a Location port and a location. This association is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + + + + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes an association between a physical location and a port through which calls will be routed by removing the port from the location configuration database. + Removing a port location will not remove the actual location of the port; it removes only the port. + + + + Remove-CsOnlineLisPort + + ChassisID + + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PortID + + > Applicable: Microsoft Teams + This parameter identifies the ID of the port. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ChassisID + + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PortID + + > Applicable: Microsoft Teams + This parameter identifies the ID of the port. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineLisPort -PortID 12174 -ChassisID 0B-23-CD-16-AA-CC + + Example 1 removes the location information for port 12174 with ChassisID 0B-23-CD-16-AA-CC. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisport + + + Set-CsOnlineLisPort + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport + + + Get-CsOnlineLisPort + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport + + + + + + Remove-CsOnlineLisSubnet + Remove + CsOnlineLisSubnet + + Removes a Location Information Server (LIS) subnet. + + + + Enhanced 9-1-1 (E9-1-1) allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a subnet from the location configuration database. Removing the subnet will not remove the location associated with that subnet. Use the `Remove-CsOnlineLisLocation` cmdlet to remove a location. + + + + Remove-CsOnlineLisSubnet + + TenantId + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + Subnet + + > Applicable: Microsoft Teams + The IP address of the subnet. This value can be either IPv4 or IPv6 format. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Subnet + + > Applicable: Microsoft Teams + The IP address of the subnet. This value can be either IPv4 or IPv6 format. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TenantId + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Guid + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineLisSubnet -Subnet 10.10.10.10 + + Example 1 removes the Location Information Service subnet "10.10.10.10". + + + + -------------------------- Example 2 -------------------------- + Remove-CsOnlineLisSubnet -Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e + + Example 1 removes the Location Information Service subnet "2001:4898:e8:6c:90d2:28d4:76a4:ec5e". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelissubnet + + + + + + Remove-CsOnlineLisSwitch + Remove + CsOnlineLisSwitch + + Removes a Location Information Server (LIS) network switch. + + + + Enhanced 9-1-1 (E9-1-1) allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a switch from the location configuration database. Removing a switch will not remove the actual location; it removes only the switch. To remove the location, call the `Remove-CsLisOnlineLocation` cmdlet. + + + + Remove-CsOnlineLisSwitch + + ChassisID + + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ChassisID + + > Applicable: Microsoft Teams + The Media Access Control (MAC) address of the port's switch. This value will be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineLisSwitch -ChassisID 0B-23-CD-16-AA-CC + + Example 1 removes the switch with Chassis ID "0B-23-CD-16-AA-CC". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisswitch + + + Set-CsOnlineLisSwitch + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch + + + Get-CsOnlineLisSwitch + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch + + + + + + Remove-CsOnlineLisWirelessAccessPoint + Remove + CsOnlineLisWirelessAccessPoint + + Removes a Location Information Server (LIS) wireless access point (WAP). + + + + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet removes a WAP from the location configuration database. Removing the WAP will not remove the location associated with that WAP. Use the `Remove-CsLisOnlineLocation` cmdlet to remove a location. + The BSSID (Basic Service Set Identifiers) is used to describe sections of a wireless local area network. It is the MAC of the 802.11 side of the access point. The BSSID parameter in this command also supports the wildcard format to cover all BSSIDs in a range which are sharing the same description and Location ID. The wildcard '*' can be on either the last one or two character(s). + If a BSSID with wildcard format is already exists, the request for removing a single BSSID which is within this wildcard range and with the same location ID will not be accepted. + + + + Remove-CsOnlineLisWirelessAccessPoint + + BSSID + + > Applicable: Microsoft Teams + The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BSSID + + > Applicable: Microsoft Teams + The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-23 + + Example 1 removes the Location Information Server (LIS) wireless access point with BSS ID "F0-6E-0B-C2-03-23". + + + + -------------------------- Example 2 -------------------------- + Remove-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-04-* + + Example 2 removes the Location Information Server (LIS) wireless access point with BSS ID "F0-6E-0B-C2-04-*". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliswirelessaccesspoint + + + Set-CsOnlineLisWirelessAccessPoint + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliswirelessaccesspoint + + + Get-CsOnlineLisWirelessAccessPoint + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliswirelessaccesspoint + + + + + + Remove-CsOnlinePSTNGateway + Remove + CsOnlinePSTNGateway + + Removes the configuration of the previously defined Session Border Controller(s) (SBC(s)) that describes the settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing. + + + + Use this cmdlet to remove the configuration of the previously created Session Border Controller(s) (SBC(s)) configuration. Note the SBC must be removed from all voice routes before executing this cmdlet. + + + + Remove-CsOnlinePSTNGateway + + Identity + + > Applicable: Microsoft Teams + The parameter is mandatory for the cmdlet. The Identity is the same as the SBC FQDN. + + String + + String + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The parameter is mandatory for the cmdlet. The Identity is the same as the SBC FQDN. + + String + + String + + + None + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsOnlinePSTNGateway -Identity sbc.contoso.com + + This example removes SBC with Identity (and FQDN) sbc.contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway + + + Set-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway + + + New-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway + + + Get-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway + + + + + + Remove-CsOnlineSchedule + Remove + CsOnlineSchedule + + Use the Remove-CsOnlineSchedule cmdlet to remove a schedule. + + + + The Remove-CsOnlineSchedule cmdlet deletes a schedule that is specified by using the Id parameter. + + + + Remove-CsOnlineSchedule + + Id + + > Applicable: Microsoft Teams + The Id for the schedule to be removed. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Id + + > Applicable: Microsoft Teams + The Id for the schedule to be removed. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Remove-CsOnlineSchedule cmdlet accepts a string as the Id parameter. + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsOnlineSchedule -Id "fa9081d6-b4f3-5c96-baec-0b00077709e5" + + This example deletes the schedule that has an Id of fa9081d6-b4f3-5c96-baec-0b00077709e5. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineschedule + + + New-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule + + + Set-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineschedule + + + + + + Remove-CsOnlineVoiceRoute + Remove + CsOnlineVoiceRoute + + Removes an online voice route. Online voice routes contain instructions that tell Skype for Business Online how to route calls from Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). + + + + Use this cmdlet to remove an existing online voice route. Online voice routes are associated with online voice policies through online PSTN usages, so removing an online voice route does not change any values relating to an online voice policy, it simply changes the routing for the numbers that had matched the pattern for the deleted online voice route. + This cmdlet is used when configuring Microsoft Phone System Direct Routing. + + + + Remove-CsOnlineVoiceRoute + + Identity + + The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must enclose the full string in parentheses.) + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must enclose the full string in parentheses.) + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsOnlineVoiceRoute -Identity Route1 + + Removes the settings for the online voice route with the identity Route1. + + + + -------------------------- Example 2 -------------------------- + PS C:\ Get-CsOnlineVoiceRoute | Remove-CsOnlineVoiceRoute + + This command removes all online voice routes from the organization. First all online voice routes are retrieved by the `Get-CsOnlineVoiceRoute` cmdlet. These online voice routes are then piped to the `Remove-CsOnlineVoiceRoute` cmdlet, which removes each one. + + + + -------------------------- Example 3 -------------------------- + PS C:\ Get-CsOnlineVoiceRoute -Filter *Redmond* | Remove-CsOnlineVoiceRoute + + This command removes all online voice routes with an identity that includes the string "Redmond". First the `Get-CsOnlineVoiceRoute` cmdlet is called with the Filter parameter. The value of the Filter parameter is the string Redmond surrounded by wildcard characters (*), which specifies that the string can be anywhere within the Identity. After all of the online voice routes with identities that include the string Redmond are retrieved, these online voice routes are piped to the `Remove-CsOnlineVoiceRoute` cmdlet, which removes each one. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute + + + Get-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute + + + New-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute + + + Set-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute + + + + + + Remove-CsOnlineVoiceRoutingPolicy + Remove + CsOnlineVoiceRoutingPolicy + + Deletes an existing online voice routing policy. Online voice routing policies manage online PSTN usages for Phone System users. + + + + Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Teams users an online voice routing policy enables those users to receive and to place phone calls to the public switched telephone network by using your on-premises SIP trunks. + Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Teams. Among other things, you will also need to enable those users for Phone System and will need to assign them an appropriate online voice policy. + + + + Remove-CsOnlineVoiceRoutingPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the policy when it was created. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" + + The command shown in Example 1 deletes the online voice routing policy RedmondOnlineVoiceRoutingPolicy. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy -Filter "tag:*" | Remove-CsOnlineVoiceRoutingPolicy + + In Example 2, all the online voice routing policies configured at the per-user scope are removed. To do this, the command first calls the `Get-CsOnlineVoiceRoutingPolicy` cmdlet along with the Filter parameter; the filter value "tag:*" limits the returned data to online voice routing policies configured at the per-user scope. Those per-user policies are then piped to and removed by, the `Remove-CsOnlineVoiceRoutingPolicy` cmdlet. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Long Distance"} | Remove-CsOnlineVoiceRoutingPolicy + + In Example 3, all the online voice routing polices that include the online PSTN usage "Long Distance" are removed. To carry out this task, the `Get-CsOnlineVoiceRoutingPolicy` cmdlet is first called without any parameters in order to return a collection of all the available online voice routing policies. That collection is then piped to the Where-Object cmdlet, which picks out only those policies where the OnlinePstnUsages property includes (-contains) the usage "Long Distance". Policies that meet that criterion are then piped to the `Remove-CsOnlineVoiceRoutingPolicy`, which removes each online voice routing policy that includes the online PSTN usage "Long Distance". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy + + + New-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy + + + Get-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy + + + Set-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy + + + Grant-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy + + + + + + Remove-CsPhoneNumberAssignment + Remove + CsPhoneNumberAssignment + + This cmdlet will remove/unassign a phone number from a user or a resource account (online application instance). + + + + This cmdlet removes/unassigns a phone number from a user or resource account. The phone number continues to be available in the tenant. + Unassigning a phone number from a user or resource account will automatically set EnterpriseVoiceEnabled to False. + If the cmdlet executes successfully, no result object will be returned. If the cmdlet fails for any reason, a result object will be returned that contains a Code string parameter and a Message string parameter with additional details of the failure. Email notification to end user is a best effort operation. No error message will be displayed if the email fails to send. Note : In Teams PowerShell Module 4.2.1-preview and later we are changing how the cmdlet reports errors. Instead of using a result object, we will be generating an exception in case of an error and we will be appending the exception to the $Error automatic variable. The cmdlet will also now support the -ErrorAction parameter to control the execution after an error has occurred. + + + + Remove-CsPhoneNumberAssignment + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + + System.String + + System.String + + + None + + + PhoneNumber + + The phone number to unassign from the user or resource account. Supports E.164 format and non-E.164 format. Needs to be without the prefixed "tel:". + + System.String + + System.String + + + None + + + PhoneNumberType + + The type of phone number to unassign from the user or resource account. The supported values are DirectRouting, CallingPlan and OperatorConnect. + + System.String + + System.String + + + None + + + Notify + + Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. + + + System.Management.Automation.SwitchParameter + + + False + + + + Remove-CsPhoneNumberAssignment + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + + System.String + + System.String + + + None + + + RemoveAll + + Unassigns the phone number from the user or resource account. + + + System.Management.Automation.SwitchParameter + + + False + + + Notify + + Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + + System.String + + System.String + + + None + + + PhoneNumber + + The phone number to unassign from the user or resource account. Supports E.164 format and non-E.164 format. Needs to be without the prefixed "tel:". + + System.String + + System.String + + + None + + + PhoneNumberType + + The type of phone number to unassign from the user or resource account. The supported values are DirectRouting, CallingPlan and OperatorConnect. + + System.String + + System.String + + + None + + + RemoveAll + + Unassigns the phone number from the user or resource account. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Notify + + Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 3.0.0 or later. + The cmdlet is only available in commercial and GCC cloud instances. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber +12065551234 -PhoneNumberType CallingPlan + + This example removes/unassigns the Microsoft Calling Plan telephone number +1 (206) 555-1234 from the user user1@contoso.com. + + + + -------------------------- Example 2 -------------------------- + Remove-CsPhoneNumberAssignment -Identity user2@contoso.com -RemoveAll + + This example removes/unassigns all the telephone number from user2@contoso.com. + + + + -------------------------- Example 3 -------------------------- + Remove-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber +12065551234 -PhoneNumberType CallingPlan -Notify + + This example removes/unassigns the Microsoft Calling Plan phone number +1 (206) 555-1234 from the user user1@contoso.com and also sends an email notification to the user about the removal of telephone number. + + + + -------------------------- Example 4 -------------------------- + Remove-CsPhoneNumberAssignment -Identity user2@contoso.com -RemoveAll -Notify + + This example removes/unassigns all the telephone number from user2@contoso.com and also sends an email notification to the user about the change. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment + + + Set-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment + + + Get-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment + + + + + + Remove-CsPhoneNumberTag + Remove + CsPhoneNumberTag + + This cmdlet allows admin to remove a tag from phone number. + + + + This cmdlet allows telephone number administrators to remove existing tags from any telephone numbers. This method does not delete the tag from the system if the tag is assigned to other telephone numbers. + + + + Remove-CsPhoneNumberTag + + PhoneNumber + + Indicates the phone number for the the tag to be removed from + + String + + String + + + None + + + Tag + + Indicates the tag to be removed. + + String + + String + + + None + + + + + + PhoneNumber + + Indicates the phone number for the the tag to be removed from + + String + + String + + + None + + + Tag + + Indicates the tag to be removed. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsPhoneNumberTag -PhoneNumber +123456789 -Tag "HR" + + This example shows how to remove the tag "HR" from telephone number +123456789. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumbertag + + + + + + Remove-CsSharedCallQueueHistoryTemplate + Remove + CsSharedCallQueueHistoryTemplate + + Deletes a Shared Call Queue History template. + + + + Use the Remove-CsSharedCallQueueHistoryTemplate cmdlet to delete a Shared Call Queue History template. If the template is currently assigned to a call queue, an error will be returned. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Remove-CsSharedCallQueueHistoryTemplate + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Shared Call Queue History template. + + System.String + + System.String + + + None + + + + + + Id + + > Applicable: Microsoft Teams + The Id parameter is the unique identifier assigned to the Shared Call Queue History template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsSharedCallQueueHistoryTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 + + This example deletes the Shared Call Queue History template with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Shared Call Queue History template exists with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01, then this example generates an error. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsSharedCallQueueHistoryTemplate + + + New-CsSharedCallQueueHistoryTemplate + + + + Set-CsSharedCallQueueHistoryTemplate + + + + Get-CsSharedCallQueueHistoryTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + Remove-CsTagsTemplate + Remove + CsTagsTemplate + + Deletes a Tag templates from the tenant. + + + + The Remove-CsTagsTemplate cmdlet deletes a Tag template from the tenant. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + Remove-CsTagsTemplate + + Id + + The unique identifier for the Tag template. This can be retrieved using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet. + + String + + String + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + Id + + The unique identifier for the Tag template. This can be retrieved using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet. + + String + + String + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstagstemplate + + + New-CsTagsTemplate + + + + Get-CsTagsTemplate + + + + Set-CsTagsTemplate + + + + New-CsTag + + + + + + + Remove-CsTeamsAudioConferencingPolicy + Remove + CsTeamsAudioConferencingPolicy + + Deletes a custom Teams audio conferencing policy. Audio conferencing policies are used to manage audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. + + + + Deletes a previously created TeamsAudioConferencingPolicy. Any users with no explicitly assigned policies will then fall back to the default (Global) policy in the organization. You cannot delete the global policy from the organization. + + + + Remove-CsTeamsAudioConferencingPolicy + + Identity + + Unique identifier for the TeamsAudioConferencingPolicy to be removed. To remove global policy, use this syntax: -Identity global. (Note that the global policy cannot be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: `-Identity "<policy name>"`. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the TeamsAudioConferencingPolicy to be removed. To remove global policy, use this syntax: -Identity global. (Note that the global policy cannot be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: `-Identity "<policy name>"`. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + String + + + + + + + + + + Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Remove-CsTeamsAudioCOnferencingPolicy -Identity "Emea Users" + + In the example shown above, the command will delete the "Emea Users" audio conferencing policy from the organization's list of policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaudioconferencingpolicy + + + Get-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy + + + Set-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy + + + Grant-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy + + + + + + Remove-CsTeamsCallParkPolicy + Remove + CsTeamsCallParkPolicy + + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different Teams phone. The Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in your organization. + + + + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. The Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in your organization. + If you run Remove-CsTeamsCallParkPolicy on the Global policy, it will be reset to the defaults provided for new organizations. + + + + Remove-CsTeamsCallParkPolicy + + Identity + + > Applicable: Microsoft Teams + Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax: `-Identity global`. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: `-Identity "SalesDepartmentPolicy"`. You cannot use wildcards when specifying a policy Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + > Applicable: Microsoft Teams + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsCallParkPolicy -Identity SalesPolicy + + Deletes a custom policy that has already been created in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallparkpolicy + + + + + + Remove-CsTeamsCortanaPolicy + Remove + CsTeamsCortanaPolicy + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. + + + + Deletes a previously created TeamsCortanaPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. + + + + Remove-CsTeamsCortanaPolicy + + Identity + + Identity for the policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity MyCortanaPolicy. If you do not specify an Identity the Set-CsTeamsCortanaPolicy cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Identity for the policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity MyCortanaPolicy. If you do not specify an Identity the Set-CsTeamsCortanaPolicy cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsCortanaPolicy -Identity MyCortanaPolicy + + In the example shown above, the command will delete the MyCortanaPolicy from the organization's list of policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy + + + + + + Remove-CsTeamsEmergencyCallRoutingPolicy + Remove + CsTeamsEmergencyCallRoutingPolicy + + This cmdlet removes an existing Teams Emergency Call Routing policy instance. + + + + This cmdlet removes an existing Teams Emergency Call Routing policy instance. + + + + Remove-CsTeamsEmergencyCallRoutingPolicy + + Identity + + The Identity parameter is the unique identifier of the Teams Emergency Call Routing policy to remove. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The Identity parameter is the unique identifier of the Teams Emergency Call Routing policy to remove. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsTeamsEmergencyCallRoutingPolicy -Identity Test + + This example removes Teams Emergency Call Routing policy with identity Test. + + + + -------------------------- Example 2 -------------------------- + Remove-CsTeamsEmergencyCallRoutingPolicy -Identity Global + + This example resets the Teams Emergency Call Routing Global policy instance to its default values. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy + + + New-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy + + + Grant-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy + + + Set-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy + + + Get-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy + + + + + + Remove-CsTeamsEnhancedEncryptionPolicy + Remove + CsTeamsEnhancedEncryptionPolicy + + Use this cmdlet to remove an existing Teams enhanced encryption policy. + + + + Use this cmdlet to remove an existing Teams enhanced encryption policy. + The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for End-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. + + + + Remove-CsTeamsEnhancedEncryptionPolicy + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + + XdsIdentity + + XdsIdentity + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Object + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Remove-CsTeamsEnhancedEncryptionPolicy -Identity 'ContosoPartnerTeamsEnhancedEncryptionPolicy' + + The command shown in Example 1 deletes the Teams enhanced encryption policy ContosoPartnerTeamsEnhancedEncryptionPolicy. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Get-CsTeamsEnhancedEncryptionPolicy -Filter 'Tag:*' | Remove-CsTeamsEnhancedEncryptionPolicy + + In Example 2, all the Teams enhanced encryption policies configured at the per-user scope are removed. The Filter value "Tag:*" limits the returned data to Teams enhanced encryption policies configured at the per-user scope. Those per-user policies are then removed. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy + + + Get-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy + + + New-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy + + + Set-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy + + + Grant-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy + + + + + + Remove-CsTeamsEventsPolicy + Remove + CsTeamsEventsPolicy + + The CsTeamsEventsPolicy cmdlets removes a previously created TeamsEventsPolicy. Note that this policy is currently still in preview. + + + + Deletes a previously created TeamsEventsPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. You cannot delete the global policy from the organization. + + + + Remove-CsTeamsEventsPolicy + + Identity + + Unique identifier for the teams events policy to be removed. To remove the global policy, use this syntax: -Identity Global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy DisablePublicWebinars, use this syntax: -Identity DisablePublicWebinars. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the teams events policy to be removed. To remove the global policy, use this syntax: -Identity Global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy DisablePublicWebinars, use this syntax: -Identity DisablePublicWebinars. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsEventsPolicy -Identity DisablePublicWebinars + + In this example, the command will delete the DisablePublicWebinars policy from the organization's list of policies. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamseventspolicy + + + + + + Remove-CsTeamsIPPhonePolicy + Remove + CsTeamsIPPhonePolicy + + Use the Remove-CsTeamsIPPhonePolicy cmdlet to remove a custom policy that's been created for controlling Teams phone experiences. + + + + Use the Remove-CsTeamsIPPhonePolicy cmdlet to remove a custom policy that's been created for controlling Teams IP Phones experiences. + Note: Ensure the policy is not assigned to any users or the policy deletion will fail. + + + + Remove-CsTeamsIPPhonePolicy + + Identity + + Specify the name of the TeamsIPPhonePolicy that you would like to remove. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Tenant + + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the TeamsIPPhonePolicy that you would like to remove. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsIPPhonePolicy -Identity CommonAreaPhone + + This example shows the deletion of the policy CommonAreaPhone. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsipphonepolicy + + + + + + Remove-CsTeamsMeetingBroadcastPolicy + Remove + CsTeamsMeetingBroadcastPolicy + + Deletes an existing Teams meeting broadcast policy in your tenant. + + + + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. + + + + Remove-CsTeamsMeetingBroadcastPolicy + + Identity + + Unique identifier for the policy to be removed. Policies can be configured at the global or per-user scopes. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) + To remove a per-user policy, use syntax similar to this: -Identity SalesPolicy. + Wildcards are not allowed when specifying an Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppress all non-fatal errors when running this command. + + + SwitchParameter + + + False + + + Tenant + + Not applicable to online service. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppress all non-fatal errors when running this command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the policy to be removed. Policies can be configured at the global or per-user scopes. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) + To remove a per-user policy, use syntax similar to this: -Identity SalesPolicy. + Wildcards are not allowed when specifying an Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + Not applicable to online service. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbroadcastpolicy + + + + + + Remove-CsTeamsMobilityPolicy + Remove + CsTeamsMobilityPolicy + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + + + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + The Remove-CsTeamsMobilityPolicy cmdlet lets an Admin delete a custom teams mobility policy that has been created. + + + + Remove-CsTeamsMobilityPolicy + + Identity + + Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: -Identity "SalesDepartmentPolicy". You cannot use wildcards when specifying a policy Identity. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the client policy to be removed. To "remove" the global policy, use the following syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the properties in that policy will be reset to their default values.) To remove a per-user policy, use syntax similar to this: -Identity "SalesDepartmentPolicy". You cannot use wildcards when specifying a policy Identity. + + XdsIdentity + + XdsIdentity + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsMobilityPolicy -Identity SalesPolicy + + Deletes a custom policy that has already been created in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmobilitypolicy + + + + + + Remove-CsTeamsNetworkRoamingPolicy + Remove + CsTeamsNetworkRoamingPolicy + + Remove-CsTeamsNetworkRoamingPolicy allows IT Admins to delete policies for Network Roaming and Bandwidth Control experiences in Microsoft Teams. + + + + Deletes the Teams Network Roaming Policies configured for use in your organization. + The TeamsNetworkRoamingPolicy cmdlets enable administrators to provide specific settings from the TeamsMeetingPolicy to be rendered dynamically based upon the location of the Teams client. The TeamsNetworkRoamingPolicy cannot be granted to a user but instead can be assigned to a network site. The settings from the TeamsMeetingPolicy included are AllowIPVideo and MediaBitRateKb. When a Teams client is connected to a network site where a CsTeamRoamingPolicy is assigned, these two settings from the TeamsRoamingPolicy will be used instead of the settings from the TeamsMeetingPolicy. + More on the impact of bit rate setting on bandwidth can be found here (https://learn.microsoft.com/microsoftteams/prepare-network). + + + + Remove-CsTeamsNetworkRoamingPolicy + + Identity + + Unique identifier of the policy to be removed. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + + + Identity + + Unique identifier of the policy to be removed. + + XdsIdentity + + XdsIdentity + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsNetworkRoamingPolicy -Identity OfficePolicy + + In Example 1, Remove-CsTeamsNetworkRoamingPolicy is used to delete the network roaming policy that has an Identity OfficePolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsnetworkroamingpolicy + + + + + + Remove-CsTeamsRoomVideoTeleConferencingPolicy + Remove + CsTeamsRoomVideoTeleConferencingPolicy + + Deletes an existing TeamsRoomVideoTeleConferencingPolicy. + + + + The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). + + + + Remove-CsTeamsRoomVideoTeleConferencingPolicy + + Identity + + Unique identifier for the policy to be modified. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the policy to be modified. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsroomvideoteleconferencingpolicy + + + + + + Remove-CsTeamsShiftsConnection + Remove + CsTeamsShiftsConnection + + This cmdlet deletes a Shifts connection. + + + + This cmdlet deletes a connection. All available connections can be found by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + + + Remove-CsTeamsShiftsConnection + + ConnectionId + + > Applicable: Microsoft Teams + The ID of the connection that you want to delete. + + String + + String + + + None + + + InputObject + + The identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + + SwitchParameter + + + False + + + + + + ConnectionId + + > Applicable: Microsoft Teams + The ID of the connection that you want to delete. + + String + + String + + + None + + + InputObject + + The identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsShiftsConnection -ConnectionId 43cd0e23-b62d-44e8-9321-61cb5fcfae85 + + Deletes the connection with ID `43cd0e23-b62d-44e8-9321-61cb5fcfae85`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnection + + + Get-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection + + + New-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection + + + Set-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection + + + + + + Remove-CsTeamsShiftsConnectionInstance + Remove + CsTeamsShiftsConnectionInstance + + This cmdlet deletes a Shifts connection instance. + + + + This cmdlet deletes a connection instance. All available instances can be found by running Get-CsTeamsShiftsConnectionInstance (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance). + + + + Remove-CsTeamsShiftsConnectionInstance + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance that you want to delete. + + String + + String + + + None + + + + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance that you want to delete. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsShiftsConnectionInstance -ConnectorInstanceId WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b + + Deletes the connection instance with ID `WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b`. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance + + + Get-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + Set-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance + + + Remove-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance + + + + + + Remove-CsTeamsShiftsConnectionTeamMap + Remove + CsTeamsShiftsConnectionTeamMap + + This cmdlet removes the mapping between the Microsoft Teams team and workforce management (WFM) team. + + + + This cmdlet removes the mapping between the Microsoft Teams team and WFM team. All team mappings can be found by running Get-CsTeamsShiftsConnectionTeamMap (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionteammap). + + + + Remove-CsTeamsShiftsConnectionTeamMap + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance that you want to delete. + + String + + String + + + None + + + InputObject + + The identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + + SwitchParameter + + + False + + + TeamId + + > Applicable: Microsoft Teams + The ID of the connection instance that you want to delete. + + String + + String + + + None + + + + + + ConnectorInstanceId + + > Applicable: Microsoft Teams + The ID of the connection instance that you want to delete. + + String + + String + + + None + + + InputObject + + The identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + PassThru + + Enables you to pass a user object through the pipeline that represents the user being assigned the policy. + + SwitchParameter + + SwitchParameter + + + False + + + TeamId + + > Applicable: Microsoft Teams + The ID of the connection instance that you want to delete. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId "WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b" -TeamId "30b625bd-f0f7-4d5c-8793-9ccef5a63119" + + Unmaps the Teams team with ID "30b625bd-f0f7-4d5c-8793-9ccef5a63119" in the instance with ID "WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectionteammap + + + Get-CsTeamsShiftsConnectionTeamMap + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionteammap + + + New-CsTeamsShiftsConnectionBatchTeamMap + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap + + + + + + Remove-CsTeamsShiftsScheduleRecord + Remove + CsTeamsShiftsScheduleRecord + + This cmdlet enqueues the clear schedule message. + + + + This cmdlet sends a request of removing Shifts schedule with specified time range. + + + + Remove-CsTeamsShiftsScheduleRecord + + Body + + The request body. + + IClearScheduleRequest + + IClearScheduleRequest + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + ClearSchedulingGroup + + > Applicable: Microsoft Teams + A value indicating whether to clear schedule group. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DateRangeEndDate + + > Applicable: Microsoft Teams + The end date of removing schedule record. + + String + + String + + + None + + + DateRangeStartDate + + > Applicable: Microsoft Teams + The start date of removing schedule record. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + PassThru + + Used to return an object that represents the item being modified. + + + SwitchParameter + + + False + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Remove-CsTeamsShiftsScheduleRecord + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + ClearSchedulingGroup + + > Applicable: Microsoft Teams + A value indicating whether to clear schedule group. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DateRangeEndDate + + > Applicable: Microsoft Teams + The end date of removing schedule record. + + String + + String + + + None + + + DateRangeStartDate + + > Applicable: Microsoft Teams + The start date of removing schedule record. + + String + + String + + + None + + + DesignatedActorId + + > Applicable: Microsoft Teams + The user ID of designated actor. + + String + + String + + + None + + + EntityType + + > Applicable: Microsoft Teams + The entity types. + + String[] + + String[] + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + PassThru + + Used to return an object that represents the item being modified. + + + SwitchParameter + + + False + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + TeamId + + > Applicable: Microsoft Teams + The Teams team ID where you want to remove schedule record. + + String + + String + + + None + + + TimeZone + + The Timezone parameter ensures that the shifts are displayed in the correct time zone based on your team's location. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Body + + The request body. + + IClearScheduleRequest + + IClearScheduleRequest + + + None + + + Break + + Wait for .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + ClearSchedulingGroup + + > Applicable: Microsoft Teams + A value indicating whether to clear schedule group. + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DateRangeEndDate + + > Applicable: Microsoft Teams + The end date of removing schedule record. + + String + + String + + + None + + + DateRangeStartDate + + > Applicable: Microsoft Teams + The start date of removing schedule record. + + String + + String + + + None + + + DesignatedActorId + + > Applicable: Microsoft Teams + The user ID of designated actor. + + String + + String + + + None + + + EntityType + + > Applicable: Microsoft Teams + The entity types. + + String[] + + String[] + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + PassThru + + Used to return an object that represents the item being modified. + + SwitchParameter + + SwitchParameter + + + False + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + TeamId + + > Applicable: Microsoft Teams + The Teams team ID where you want to remove schedule record. + + String + + String + + + None + + + TimeZone + + The Timezone parameter ensures that the shifts are displayed in the correct time zone based on your team's location. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + The parameters of start time, end time and designated actor ID are optional only when removing the schedule record of a linked team. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsShiftsScheduleRecord -TeamId "eddc3b94-21d5-4ef0-a76a-2e4d632e50be" -DateRangeStartDate "2021-09-30T00:00:00" -DateRangeEndDate "2021-10-01T00:00:00" -ClearSchedulingGroup:$false -EntityType "swapRequest", "openShiftRequest" -DesignatedActorId "683af6f2-4f72-4770-b8e1-4ec31836156ad" + + Removes the Shifts schedule record of swapRequest and openShiftRequest scenarios in the team with ID `eddc3b94-21d5-4ef0-a76a-2e4d632e50be` from 09/30/2021 to 10/01/2021. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsschedulerecord + + + + + + Remove-CsTeamsSurvivableBranchAppliance + Remove + CsTeamsSurvivableBranchAppliance + + Removes a Survivable Branch Appliance (SBA) from the tenant. + + + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + Remove-CsTeamsSurvivableBranchAppliance + + Identity + + The Identity parameter is the unique identifier for the SBA. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The Identity parameter is the unique identifier for the SBA. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssurvivablebranchappliance + + + + + + Remove-CsTeamsSurvivableBranchAppliancePolicy + Remove + CsTeamsSurvivableBranchAppliancePolicy + + Removes a Survivable Branch Appliance (SBA) policy from the tenant. + + + + The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + Remove-CsTeamsSurvivableBranchAppliancePolicy + + Identity + + Policy instance name. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Policy instance name. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssurvivablebranchappliancepolicy + + + + + + Remove-CsTeamsTargetingPolicy + Remove + CsTeamsTargetingPolicy + + The CsTeamsTargetingPolicy cmdlets removes a previously created CsTeamsTargetingPolicy. + + + + Deletes a previously created TeamsTargetingPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. + + + + Remove-CsTeamsTargetingPolicy + + Identity + + Unique identifier for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentTagPolicy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentTagPolicy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsMeetingPolicy -Identity StudentTagPolicy + + In the example shown above, the command will delete the student tag policy from the organization's list of policies and remove all assignments of this policy from users who have had the policy assigned. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy + + + Get-CsTargetingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy + + + Set-CsTargetingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy + + + + + + Remove-CsTeamsTranslationRule + Remove + CsTeamsTranslationRule + + Cmdlet to remove an existing number manipulation rule (or list of rules). + + + + You can use this cmdlet to remove an existing number manipulation rule (or list of rules). The rule can be used, for example, in the settings of your SBC (Set-CsOnlinePSTNGateway) to convert a callee or caller number to a desired format before entering or leaving Microsoft Phone System. + + + + Remove-CsTeamsTranslationRule + + Identity + + Identifier of the rule. This parameter is required. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Identifier of the rule. This parameter is required. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsTeamsTranslationRule -Identity AddPlus1 + + This example removes the "AddPlus1" translation rule. As the rule can be used in some places, integrity check is preformed to ensure that the rule is not in use. If the rule is in use an error thrown with specifying which SBC use this rule. + + + + -------------------------- Example 2 -------------------------- + Get-CsTeamsTranslationRule -Filter 'tst*' | Remove-CsTeamsTranslationRule + + This example removes all translation rules with Identifier starting with tst. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule + + + New-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule + + + Get-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule + + + Set-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule + + + Test-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule + + + + + + Remove-CsTeamsUnassignedNumberTreatment + Remove + CsTeamsUnassignedNumberTreatment + + Removes a treatment for how calls to an unassigned number range should be routed. + + + + This cmdlet removes a treatment for how calls to an unassigned number range should be routed. + + + + Remove-CsTeamsUnassignedNumberTreatment + + Identity + + The Id of the specific treatment to remove. + + System.String + + System.String + + + None + + + + + + Identity + + The Id of the specific treatment to remove. + + System.String + + System.String + + + None + + + + + + System.Object + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PS module 2.5.1 or later. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsTeamsUnassignedNumberTreatment -Identity MainAA + + This example removes the treatment MainAA. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment + + + Get-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment + + + New-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment + + + Set-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment + + + Test-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment + + + + + + Remove-CsTeamsWorkLoadPolicy + Remove + CsTeamsWorkLoadPolicy + + This cmdlet deletes a Teams Workload Policy instance. + + + + The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. + + + + Remove-CsTeamsWorkLoadPolicy + + Identity + + Identity of the Teams Workload Policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For Microsoft Internal Use Only + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Identity of the Teams Workload Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Microsoft Internal Use Only + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTeamsWorkLoadPolicy -Identity "Test" + + Deletes a Teams Workload policy instance with the identity of "Test". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy + + + Set-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy + + + Get-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy + + + New-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy + + + Grant-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy + + + + + + Remove-CsTeamTemplate + Remove + CsTeamTemplate + + This cmdlet deletes a specified Team Template from Microsoft Teams. + + + + This cmdlet deletes a specified Team Template from Microsoft Teams. The template can be identified by its OData ID or by using the Identity parameter. + + + + Remove-CsTeamTemplate + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Remove-CsTeamTemplate + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + OdataId + + A composite URI of a template. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + OdataId + + A composite URI of a template. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject + + + + + + + + + ALIASES + COMPLEX PARAMETER PROPERTIES + To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + INPUTOBJECT <IConfigApiBasedCmdletsIdentity>: Identity Parameter + - `[Bssid <String>]`: + - `[ChassisId <String>]`: + - `[CivicAddressId <String>]`: Civic address id. + - `[Country <String>]`: + - `[GroupId <String>]`: The ID of a group whose policy assignments will be returned. + - `[Id <String>]`: + - `[Identity <String>]`: + - `[Locale <String>]`: + - `[LocationId <String>]`: Location id. + - `[OdataId <String>]`: A composite URI of a template. + - `[OperationId <String>]`: The ID of a batch policy assignment operation. + - `[OrderId <String>]`: + - `[PackageName <String>]`: The name of a specific policy package + - `[PolicyType <String>]`: The policy type for which group policy assignments will be returned. + - `[Port <String>]`: + - `[PortInOrderId <String>]`: + - `[PublicTemplateLocale <String>]`: Language and country code for localization of publicly available templates. + - `[SubnetId <String>]`: + - `[TenantId <String>]`: + - `[UserId <String>]`: UserId. Supports Guid. Eventually UPN and SIP. + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Remove-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/b24f8ba6-0949-452e-ad4b-a353f38ed8af/Tenant/en-US' + + Removes template with OData Id '/api/teamtemplates/v1.0/b24f8ba6-0949-452e-ad4b-a353f38ed8af/Tenant/en-US'. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where Name -like 'test' | ForEach-Object {Remove-CsTeamTemplate -OdataId $_.OdataId} + + Removes template that meets the following specifications: 1) Locale set to en-US. 2) Name contains 'test'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate + + + Get-CsTeamTemplateList + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist + + + Get-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate + + + New-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate + + + Update-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate + + + Remove-CsTeamTemplate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate + + + + + + Remove-CsTenantDialPlan + Remove + CsTenantDialPlan + + Use the `Remove-CsTenantDialPlan` cmdlet to remove a tenant dial plan. + + + + The `Remove-CsTenantDialPlan` cmdlet removes an existing tenant dial plan (also known as a location profile). Tenant dial plans provide required information to allow Enterprise Voice users to make telephone calls. The Conferencing Attendant application also uses tenant dial plans for dial-in conferencing. A tenant dial plan determines such things as which normalization rules are applied. + Removing a tenant dial plan also removes any associated normalization rules. If no tenant dial plan is assigned to an organization, the Global dial plan is used. + + + + Remove-CsTenantDialPlan + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is the unique identifier of the tenant dial plan to remove. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm parameter prompts you for confirmation before the command is executed. + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm parameter prompts you for confirmation before the command is executed. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is the unique identifier of the tenant dial plan to remove. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsTenantDialPlan -Identity Vt1TenantDialPlan2 + + This example removes the Vt1TenantDialPlan2. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan + + + Grant-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan + + + New-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan + + + Set-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan + + + Get-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan + + + + + + Remove-CsTenantNetworkRegion + Remove + CsTenantNetworkRegion + + Use the `Remove-CsTenantNetworkRegion` cmdlet to remove a tenant network region. + + + + The `Remove-CsTenantNetworkRegion` cmdlet removes an existing tenant network region. + A network region contains a collection of network sites. + + + + Remove-CsTenantNetworkRegion + + Identity + + Unique identifier for the network region to be removed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the network region to be removed. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTenantNetworkRegion -Identity "RedmondRegion" + + The command shown in Example 1 removes 'RedmondRegion'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion + + + New-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion + + + Get-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion + + + Set-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion + + + + + + Remove-CsTenantNetworkSite + Remove + CsTenantNetworkSite + + Use the `Remove-CsTenantNetworkSite` cmdlet to remove a tenant network site. + + + + The `Remove-CsTenantNetworkSite` cmdlet removes an existing tenant network site. + A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. + + + + Remove-CsTenantNetworkSite + + Identity + + Unique identifier for the network site to be removed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the network site to be removed. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTenantNetworkSite -Identity "site1" + + The command shown in Example 1 removes 'site1'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite + + + New-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite + + + Get-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite + + + Set-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite + + + + + + Remove-CsTenantNetworkSubnet + Remove + CsTenantNetworkSubnet + + Use the `Remove-CsTenantNetworkSubnet` cmdlet to remove a tenant network subnet. + + + + The `Remove-CsTenantNetworkSubnet` cmdlet removes an existing tenant network subnet. + IP subnets at the location where Teams endpoints can connect to the network must be defined and associated to a defined network in order to enforce toll bypass. Multiple subnets may be associated with the same network site, but multiple sites may not be associated with a same subnet. This association of subnets enables Location-Based routing to locate the endpoints geographically to determine if a given PSTN call should be allowed. + + + + Remove-CsTenantNetworkSubnet + + Identity + + Unique identifier for the network subnet to be removed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the network subnet to be removed. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTenantNetworkSubnet -Identity "192.168.0.1" + + The command shown in Example 1 removes '192.168.0.1'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet + + + New-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet + + + Get-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet + + + Set-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet + + + + + + Remove-CsTenantTrustedIPAddress + Remove + CsTenantTrustedIPAddress + + Use the `Remove-CsTenantTrustedIPAddress` cmdlet to remove a tenant trusted IP address. + + + + The `Remove-CsTenantTrustedIPAddress` cmdlet removes an existing tenant trusted IP address. + External trusted IPs are the Internet external IPs of the enterprise network and are used to determine if the user's endpoint is inside the corporate network before checking for a specific site match. If the user's external IP matches one defined in the trusted list, then Location-Based Routing will check to determine which internal subnet the user's endpoint is located. If the user's external IP doesn't match one defined in the trusted list, the endpoint will be classified as being at an unknown and any PSTN calls to/from an LBR enabled user are blocked. + + + + Remove-CsTenantTrustedIPAddress + + Identity + + Unique identifier for the trusted IP address to be removed. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose trusted IP address are being removed. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the trusted IP address to be removed. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose trusted IP address are being removed. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Rtc.Management.Xds.XdsGlobalRelativeIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Remove-CsTenantTrustedIPAddress -Identity "192.168.0.1" + + The command shown in Example 1 removes '192.168.0.1'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenanttrustedipaddress + + + + + + Remove-CsUserCallingDelegate + Remove + CsUserCallingDelegate + + This cmdlet will remove a delegate for calling in Microsoft Teams. + + + + This cmdlet will remove a delegate for the specified user. + + + + Remove-CsUserCallingDelegate + + Delegate + + The Identity of the delegate to remove. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to remove a delegate for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + + + + Delegate + + The Identity of the delegate to remove. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to remove a delegate for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 4.0.0 or later. + The specified user need to have the Microsoft Phone System license assigned. + You can see the delegate of a user by using the Get-CsUserCallingSettings cmdlet. + + + + + -------------------------- Example 1 -------------------------- + Remove-CsUserCallingDelegate -Identity user1@contoso.com -Delegate user2@contoso.com + + This example shows removing the delegate user2@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate + + + Get-CsUserCallingSettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings + + + New-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate + + + Set-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate + + + + + + Remove-CsUserLicenseGracePeriod + Remove + CsUserLicenseGracePeriod + + The `CsUserLicenseGracePeriod` cmdlet expedites the delicensing operation for the assigned plan(s) of a user/resource account by removing the grace period, permanently deleting the assigned plan(s). Note that this cmdlet is to be used only by tenants with license resiliency enabled. (License resiliency is currently under private preview and not available for everyone.) + + + + The command removes the grace period of the assigned plan(s) against the specified user(s)/resource account(s), permanently deleting the plan(s). Permanently deletes all/specified plans belonging to the user, which has a grace period assosciated with it. Assigned plans with no subsequent grace period will see no change. + If you want to verify the grace period of any assigned plan against a user, you can return that information by using this command: + `Get-CsOnlineUser -Identity bf19b7db-6960-41e5-a139-2aa373474354` + + + + Remove-CsUserLicenseGracePeriod + + Identity + + Specifies the Identity (GUID) of the user account whose assigned plan grace period needs to be removed, permanently deleting the subsequent plan. + + String + + String + + + None + + + Action + + Used to specify which action should be taken. + + String + + String + + + None + + + Body + + Specifies the body of the request. + + IUserDelicensingAccelerationPatch + + IUserDelicensingAccelerationPatch + + + None + + + Capability + + Denotes the plan(s) assigned to the specified user, which are to be permanently deleted if they are currently serving their grace period. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + PassThru + + Returns the results of the command. By default, this cmdlet does not generate any output. + + + SwitchParameter + + + False + + + + + + Action + + Used to specify which action should be taken. + + String + + String + + + None + + + Body + + Specifies the body of the request. + + IUserDelicensingAccelerationPatch + + IUserDelicensingAccelerationPatch + + + None + + + Capability + + Denotes the plan(s) assigned to the specified user, which are to be permanently deleted if they are currently serving their grace period. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specifies the Identity (GUID) of the user account whose assigned plan grace period needs to be removed, permanently deleting the subsequent plan. + + String + + String + + + None + + + InputObject + + The Identity parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + PassThru + + Returns the results of the command. By default, this cmdlet does not generate any output. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-CsUserLicenseGracePeriod -Identity bf19b7db-6960-41e5-a139-2aa373474354 + + In Example 1, the command removes the grace period of all assigned plan(s) against the specified user ID, marking the subsequent assigned plan(s) as deleted. Assigned plans with no subsequent grace period will see no change. + + + + -------------------------- Example 2 -------------------------- + Remove-CsUserLicenseGracePeriod -Identity bf19b7db-6960-41e5-a139-2aa373474354 -Capability 'MCOEV,MCOMEETADD' + + In Example 2, the capability specified refers to plans assigned to the user(s) under AssignedPlans. The command removes the grace period of the specified assigned plans, marking the subsequent plan(s) as deleted. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/skype/remove-csuserlicensegraceperiod + + + Get-CsOnlineUser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser + + + + + + Remove-CsVideoInteropServiceProvider + Remove + CsVideoInteropServiceProvider + + Use the Remove-CsVideoInteropServiceProvider to remove all provider information about a provider that your organization no longer uses. + + + + Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. + The only input is Identity - the provider you wish to remove. + + + + Remove-CsVideoInteropServiceProvider + + Identity + + Specify the VideoInteropServiceProvider to be removed. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + + + + Identity + + Specify the VideoInteropServiceProvider to be removed. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + + + + Microsoft.Rtc.Management.Xds.XdsGlobalRelativeIdentity + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csvideointeropserviceprovider + + + + + + Set-CsApplicationAccessPolicy + Set + CsApplicationAccessPolicy + + Modifies an existing application access policy. + + + + This cmdlet modifies an existing application access policy. + + + + Set-CsApplicationAccessPolicy + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + + + AppIds + + A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). + + PSListModifier + + PSListModifier + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Free format text. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AppIds + + A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). + + PSListModifier + + PSListModifier + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Free format text. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. + + XdsIdentity + + XdsIdentity + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + ----------------- Add new app ID to the policy ----------------- + PS C:\> Set-CsApplicationAccessPolicy -Identity "ASimplePolicy" -AppIds @{Add="5817674c-81d9-4adb-bfb2-8f6a442e4622"} + + The command shown above adds a new app ID "5817674c-81d9-4adb-bfb2-8f6a442e4622" to the per-user application access policy ASimplePolicy. + + + + ---------------- Remove app IDs from the policy ---------------- + PS C:\> Set-CsApplicationAccessPolicy -Identity "ASimplePolicy" -AppIds @{Remove="5817674c-81d9-4adb-bfb2-8f6a442e4622"} + + The command shown above removes the app ID "5817674c-81d9-4adb-bfb2-8f6a442e4622" from the per-user application access policy ASimplePolicy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationaccesspolicy + + + New-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Grant-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Get-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + Remove-CsApplicationAccessPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy + + + + + + Set-CsApplicationMeetingConfiguration + Set + CsApplicationMeetingConfiguration + + Modifies an existing application meeting configuration for the tenant. + + + + This cmdlet modifies an existing application meeting configuration for the tenant. + + + + Set-CsApplicationMeetingConfiguration + + Identity + + Unique identifier of the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings, you do not have to include the Identity when calling the Set-CsApplicationMeetingConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -Identity global. + + XdsIdentity + + XdsIdentity + + + None + + + AllowRemoveParticipantAppIds + + A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). + + PSListModifier + + PSListModifier + + + None + + + Confirm + + > Applicable: Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + Force + + > Applicable: Teams + Suppresses the display of any non-fatal error message that might occur when running the command. + + + SwitchParameter + + + False + + + Instance + + > Applicable: Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + WhatIf + + > Applicable: Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + AllowRemoveParticipantAppIds + + A list of application (client) IDs. For details of application (client) ID, refer to: Get tenant and app ID values for signing in (https://learn.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in). + + PSListModifier + + PSListModifier + + + None + + + Confirm + + > Applicable: Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Teams + Suppresses the display of any non-fatal error message that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier of the application meeting configuration settings to be returned. Because you can only have a single, global instance of these settings, you do not have to include the Identity when calling the Set-CsApplicationMeetingConfiguration cmdlet. However, you can use the following syntax to retrieve the global settings: -Identity global. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + > Applicable: Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + WhatIf + + > Applicable: Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Input types + + + None. The `Set-CsApplicationMeetingConfiguration` cmdlet does not accept pipelined input. + + + + + + + Output types + + + The `Set-CsApplicationMeetingConfiguration` cmdlet does not return any objects or values. + + + + + + + + + + + Add new app ID to the configuration to allow remove participant for the tenant + PS C:\> Set-CsApplicationMeetingConfiguration -AllowRemoveParticipantAppIds @{Add="5817674c-81d9-4adb-bfb2-8f6a442e4622"} + + The command shown above adds a new app ID "5817674c-81d9-4adb-bfb2-8f6a442e4622" to the application meeting configuration settings for the tenant to allow it to remove participant. + + + + Remove app IDs from the configuration to allow remove participant for the tenant + PS C:\> Set-CsApplicationMeetingConfiguration -AllowRemoveParticipantAppIds @{Remove="5817674c-81d9-4adb-bfb2-8f6a442e4622"} + + The command shown above removes the app ID "5817674c-81d9-4adb-bfb2-8f6a442e4622" from the application meeting configuration settings for the tenant to disallow it to remove participant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-CsApplicationMeetingConfiguration + + + Get-CsApplicationMeetingConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-csapplicationmeetingconfiguration + + + + + + Set-CsAutoAttendant + Set + CsAutoAttendant + + Use the Set-CsAutoAttendant cmdlet to modify the properties of an existing Auto Attendant (AA). + + + + The Set-CsAutoAttendant cmdlet lets you modify the properties of an auto attendant. For example, you can change the operator, the greeting, or the menu prompts. + + + + Set-CsAutoAttendant + + Instance + + > Applicable: Microsoft Teams + The Instance parameter is the object reference to the AA to be modified. + You can retrieve an object reference to an existing AA by using the Get-CsAutoAttendant cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Instance + + > Applicable: Microsoft Teams + The Instance parameter is the object reference to the AA to be modified. + You can retrieve an object reference to an existing AA by using the Get-CsAutoAttendant cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant + + + The Set-CsAutoAttendant cmdlet accepts a `Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant` object as the Instance parameter. + + + + + + + Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant + + + The modified instance of the `Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant` object. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5" + +$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." +$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic +$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption) +$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu $christmasMenu + +$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" +$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) + +$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id + +$autoAttendant.CallFlows += @($christmasCallFlow) +$autoAttendant.CallHandlingAssociations += @($christmasCallHandlingAssociation) + +Set-CsAutoAttendant -Instance $autoAttendant + + This example adds a Christmas holiday to an AA that has an Identity of fa9081d6-b4f3-5c96-baec-0b00077709e5. + + + + -------------------------- Example 2 -------------------------- + $autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5" + +$autoAttendant.CallFlows + +# Id : e68dfc2f-587b-42ee-98c7-b9c9ebd46fd1 +# Name : After hours +# Greetings : +# Menu : After Hours Menu + +# Id : 8ab460f0-770c-4d30-a2ff-a6469718844f +# Name : Christmas CallFlow +# Greetings : +# Menu : Christmas Menu + +$autoAttendant.CallFlows[1].Greetings + +# ActiveType : TextToSpeech +# TextToSpeechPrompt : We are closed for Christmas. Please call back later. +# AudioFilePrompt : + +$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." +$autoAttendant.CallFlows[1].Greetings = @($christmasGreetingPrompt) + +Set-CsAutoAttendant -Instance $autoAttendant + + This example modifies the Christmas holiday greeting for the AA that has an Identity of fa9081d6-b4f3-5c96-baec-0b00077709e5. + + + + -------------------------- Example 3 -------------------------- + $autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5" +$autoAttendant.CallHandlingAssociations + +# Type : Holiday +# ScheduleId : 578745b2-1f94-4a38-844c-6bf6996463ee +# CallFlowId : a661e694-e2df-4aaa-a183-67bf819c3cac +# Enabled : True + +# Type : AfterHours +# ScheduleId : c2f160ca-119d-55d8-818c-def2bcb85515 +# CallFlowId : e7dd255b-ee20-57f0-8a2b-fc403321e284 +# Enabled : True + +$autoAttendant.CallHandlingAssociations = $autoAttendant.CallHandlingAssociations | where-object {$_.ScheduleId -ne "578745b2-1f94-4a38-844c-6bf6996463ee"} + +$autoAttendant.CallFlows + +# Id : e68dfc2f-587b-42ee-98c7-b9c9ebd46fd1 +# Name : After hours +# Greetings : +# Menu : After Hours Menu + +# Id : 8ab460f0-770c-4d30-a2ff-a6469718844f +# Name : Christmas CallFlow +# Greetings : +# Menu : Christmas Menu + +$autoAttendant.CallFlows = $autoAttendant.CallFlows | where-object {$_.Id -ne "8ab460f0-770c-4d30-a2ff-a6469718844f"} + +Set-CsAutoAttendant -Instance $autoAttendant + + This example modifies an existing AA, removing the Christmas holiday call handling. We removed the call handling association for Christmas holiday, along with the related call flow. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant + + + New-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant + + + Get-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant + + + Get-CsAutoAttendantStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus + + + Remove-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant + + + Update-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant + + + + + + Set-CsCallingLineIdentity + Set + CsCallingLineIdentity + + Use the `Set-CsCallingLineIdentity` cmdlet to modify a Caller ID policy in your organization. + + + + You can either change or block the Caller ID (also called a Calling Line ID) for a user. By default, the Microsoft Teams or Skype for Business Online user's phone number can be seen when that user makes a call to a PSTN phone, or when a call comes in. You can modify a Caller ID policy to provide an alternate displayed number, or to block any number from being displayed. + Note: - Identity must be unique. + - If CallerIdSubstitute is given as "Resource", then ResourceAccount cannot be empty. + + + + Set-CsCallingLineIdentity + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. + + String + + String + + + None + + + BlockIncomingPstnCallerID + + > Applicable: Microsoft Teams + The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is false. + The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True and if this policy is assigned to a Teams user, then Caller ID for incoming calls is suppressed/anonymous. + + Boolean + + Boolean + + + None + + + CallingIDSubstitute + + > Applicable: Microsoft Teams + The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The possible values are Anonymous, LineUri and Resource. + + CallingIDSubstituteType + + CallingIDSubstituteType + + + None + + + CompanyName + + > Applicable: Microsoft Teams + This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + The Description parameter briefly describes the Caller ID policy. + + String + + String + + + None + + + EnableUserOverride + + > Applicable: Microsoft Teams + The EnableUserOverride parameter gives Microsoft Teams users the option under Settings and Calls to hide their phone number when making outgoing calls. The CallerID will be Anonymous. + If CallingIDSubstitute is set to Anonymous, the EnableUserOverride parameter has no effect, and the caller ID is always set to Anonymous. + EnableUserOverride has precedence over other settings in the policy unless substitution is set to Anonymous. For example, assume the policy instance has substitution using a resource account and EnableUserOverride is set and enabled by the user. In this case, the outbound caller ID will be blocked and Anonymous will be used. + + Boolean + + Boolean + + + False + + + ResourceAccount + + > Applicable: Microsoft Teams + This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + BlockIncomingPstnCallerID + + > Applicable: Microsoft Teams + The BlockIncomingPstnCallerID switch determines whether to block the incoming Caller ID. The default value is false. + The BlockIncomingPstnCallerID switch is specific to incoming calls from a PSTN caller to a user. If this is set to True and if this policy is assigned to a Teams user, then Caller ID for incoming calls is suppressed/anonymous. + + Boolean + + Boolean + + + None + + + CallingIDSubstitute + + > Applicable: Microsoft Teams + The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The possible values are Anonymous, LineUri and Resource. + + CallingIDSubstituteType + + CallingIDSubstituteType + + + None + + + CompanyName + + > Applicable: Microsoft Teams + This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + The Description parameter briefly describes the Caller ID policy. + + String + + String + + + None + + + EnableUserOverride + + > Applicable: Microsoft Teams + The EnableUserOverride parameter gives Microsoft Teams users the option under Settings and Calls to hide their phone number when making outgoing calls. The CallerID will be Anonymous. + If CallingIDSubstitute is set to Anonymous, the EnableUserOverride parameter has no effect, and the caller ID is always set to Anonymous. + EnableUserOverride has precedence over other settings in the policy unless substitution is set to Anonymous. For example, assume the policy instance has substitution using a resource account and EnableUserOverride is set and enabled by the user. In this case, the outbound caller ID will be blocked and Anonymous will be used. + + Boolean + + Boolean + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter identifies the Caller ID policy. + + String + + String + + + None + + + ResourceAccount + + > Applicable: Microsoft Teams + This parameter specifies the ObjectId of a resource account/online application instance used for Teams Auto Attendant or Call Queue. The outgoing PSTN call will use the phone number defined on the resource account as caller id. For more information about resource accounts please see https://learn.microsoft.com/microsoftteams/manage-resource-accounts. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsCallingLineIdentity -Identity "MyBlockingPolicy" -BlockIncomingPstnCallerID $true + + This example blocks the incoming caller ID. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsCallingLineIdentity -Identity Anonymous -Description "anonymous policy" -CallingIDSubstitute Anonymous -EnableUserOverride $false -BlockIncomingPstnCallerID $true + + This example modifies the new Anonymous Caller ID policy to block the incoming Caller ID. + + + + -------------------------- Example 3 -------------------------- + $ObjId = (Get-CsOnlineApplicationInstance -Identity dkcq@contoso.com).ObjectId +Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -ResourceAccount $ObjId -CompanyName "Contoso" + + This example modifies the Caller ID policy that sets the Caller ID to the phone number of the specified resource account and sets the Calling party name to Contoso + + + + -------------------------- Example 4 -------------------------- + Set-CsCallingLineIdentity -Identity AllowAnonymousForUsers -EnableUserOverride $true + + This example modifies the Caller ID policy and allows Teams users to make anonymous calls. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity + + + Get-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity + + + Grant-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity + + + New-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity + + + Remove-CsCallingLineIdentity + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity + + + + + + Set-CsCallQueue + Set + CsCallQueue + + Updates a Call Queue in your Skype for Business Online or Teams organization. + + + + Set-CsCallQueue cmdlet provides a way for you to modify the properties of an existing Call Queue; for example, you can change the name for the Call Queue, the distribution lists associated with the Call Queue, or the welcome audio file. + The Set-CsCallQueue cmdlet may suggest additional steps required to complete the Call Queue setup. + Note that this cmdlet is in the Skype for Business Online PowerShell module and also affects Teams. The reason the "Applies To:" is stated as Skype for Business Online is because it must match the actual module name of the cmdlet. To learn how this cmdlet is used with Skype for Business Online and Teams, see https://learn.microsoft.com/microsoftteams/create-a-phone-system-call-queue. + > [!CAUTION] > The following configuration parameters are currently only available in PowerShell and do not appear in Teams admin center. Saving a call queue configuration through Teams admin center will remove any of these configured items. > > - -HideAuthorizedUsers > - -OverflowActionCallPriority > - -OverflowRedirectPersonTextToSpeechPrompt > - -OverflowRedirectPersonAudioFilePrompt > - -OverflowRedirectVoicemailTextToSpeechPrompt > - -OverflowRedirectVoicemailAudioFilePrompt > - -TimeoutActionCallPriority > - -TimeoutRedirectPersonTextToSpeechPrompt > - -TimeoutRedirectPersonAudioFilePrompt > - -TimeoutRedirectVoicemailTextToSpeechPrompt > - -TimeoutRedirectVoicemailAudioFilePrompt > - -NoAgentActionCallPriority > - -NoAgentRedirectPersonTextToSpeechPrompt > - -NoAgentRedirectPersonAudioFilePrompt > - -NoAgentRedirectVoicemailTextToSpeechPrompt > - -NoAgentRedirectVoicemailAudioFilePrompt > > The following configuration parameters will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. > > - -ComplianceRecordingForCallQueueTemplateId > - -TextAnnouncementForCR > - -CustomAudioFileAnnouncementForCR > - -TextAnnouncementForCRFailure > - -CustomAudioFileAnnouncementForCRFailure > - -SharedCallQueueHistoryTemplateId > > Nesting Auto attendants and Call queues (/microsoftteams/plan-auto-attendant-call-queue#nested-auto-attendants-and-call-queues) without a resource account isn't currently supported for [Authorized users](/microsoftteams/aa-cq-authorized-users-plan)in Queues App. If you nest an Auto attendant or Call queue without a resource account, authorized users can't edit the auto attendant or call queue. > > Authorized users can't edit call flows with call priorities at this time. + + + + Set-CsCallQueue + + AgentAlertTime + + > Applicable: Microsoft Teams + The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. + + Int16 + + Int16 + + + 30 + + + AllowOptOut + + > Applicable: Microsoft Teams + The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + + Boolean + + Boolean + + + True + + + AuthorizedUsers + + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + CallbackEmailNotificationTarget + + > Applicable: Microsoft Teams + The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferAudioFilePromptResourceId + + > Applicable: Microsoft Teams + The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferTextToSpeechPrompt + + > Applicable: Microsoft Teams + The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallbackRequestDtmf + + The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + + This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallToAgentRatioThresholdBeforeOfferingCallback + + The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of one (1). Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + ChannelId + + > Applicable: Microsoft Teams + Id of the channel to connect a call queue to. + + String + + String + + + None + + + ChannelUserObjectId + + > Applicable: Microsoft Teams + The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team that the channel belongs to. + + Guid + + Guid + + + None + + + ComplianceRecordingForCallQueueTemplateId + + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The ComplianceRecordingForCallQueueTemplateId parameter indicates a list of up to 2 Compliance Recording for Call Queue templates to apply to the call queue. + + List + + List + + + None + + + ConferenceMode + + > Applicable: Microsoft Teams + The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: + - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. + - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + + Boolean + + Boolean + + + False + + + CustomAudioFileAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCR parameter indicates the unique identifier for the Audio file prompt which is played to callers when compliance recording for call queues is enabled. + + Guid + + Guid + + + None + + + CustomAudioFileAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCRFailure parameter indicates the unique identifier for the Audio file prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + Guid + + Guid + + + None + + + DistributionLists + + > Applicable: Microsoft Teams + The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + + List + + List + + + None + + + EnableNoAgentSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableNoAgentSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + HideAuthorizedUsers + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Object + + Object + + + None + + + IsCallbackEnabled + + The IsCallbackEnabled parameter is used to turn on/off callback. + + Boolean + + Boolean + + + None + + + LanguageId + + > Applicable: Microsoft Teams + The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter If either OverflowAction or TimeoutAction is set to SharedVoicemail. + You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. + + String + + String + + + None + + + LineUri + + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. + + String + + String + + + None + + + MusicOnHoldAudioFileId + + > Applicable: Microsoft Teams + The MusicOnHoldFileContent parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + + Guid + + Guid + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter specifies a unique name for the Call Queue. + + String + + String + + + None + + + NoAgentAction + + > Applicable: Microsoft Teams + The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. + PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + NoAgentActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + NoAgentActionTarget + + > Applicable: Microsoft Teams + The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this field is optional. + + String + + String + + + None + + + NoAgentApplyTo + + > Applicable: Microsoft Teams + The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. + PARAMVALUE: AllCalls | NewCalls + + Object + + Object + + + Disconnect + + + NoAgentDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. + + Guid + + Guid + + + None + + + NoAgentDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. + + String + + String + + + None + + + NoAgentRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. + + String + + String + + + None + + + NoAgentRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + + String + + String + + + None + + + NoAgentRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. + + String + + String + + + None + + + NoAgentRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + + Guid + + Guid + + + None + + + NoAgentRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + + String + + String + + + None + + + NoAgentSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + NoAgentSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + NumberOfCallsInQueueBeforeOfferingCallback + + The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + OboResourceAccountIds + + > Applicable: Microsoft Teams + The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. + + List + + List + + + None + + + OverflowAction + + > Applicable: Microsoft Teams + The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. + PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + DisconnectWithBusy + + + OverflowActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the OverflowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + OverflowActionTarget + + > Applicable: Microsoft Teams + The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. + + String + + String + + + None + + + OverflowDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. + + Guid + + Guid + + + None + + + OverflowDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + + String + + String + + + None + + + OverflowRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + String + + String + + + None + + + OverflowRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + + String + + String + + + None + + + OverflowRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. + + String + + String + + + None + + + OverflowRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + String + + String + + + None + + + OverflowSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + OverflowSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + OverflowThreshold + + > Applicable: Microsoft Teams + The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. + + Int16 + + Int16 + + + 50 + + + PresenceBasedRouting + + > Applicable: Microsoft Teams + The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. + + Boolean + + Boolean + + + False + + + RoutingMethod + + > Applicable: Microsoft Teams + The RoutingMethod defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If routing method is set to RoundRobin, the agents will be called using Round Robin strategy so that all agents share the call-load equally. If routing method is set to LongestIdle, the agents will be called based on their idle time, i.e., the agent that has been idle for the longest period will be called. + PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle + + Object + + Object + + + Attendant + + + ServiceLevelThresholdResponseTimeInSecond + + The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. + A value of `$null` indicates that a service level percentage will not be calculated for this call queue. + + Int16 + + Int16 + + + None + + + SharedCallQueueHistoryTemplateId + + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The SharedCallQueueHistoryTemplateId parameter indicates the Shared Call Queue History template to apply to the call queue. + + String + + String + + + None + + + ShiftsSchedulingGroupId + + > Applicable: Microsoft Teams + Id of the Scheduling Group to connect a call queue to. + + String + + String + + + None + + + ShiftsTeamId + + > Applicable: Microsoft Teams + Id of the Team containing the Scheduling Group to connect a call queue to. + + String + + String + + + None + + + ShouldOverwriteCallableChannelProperty + + A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. + + Boolean + + Boolean + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + TextAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCR parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers when compliance recording for call queues is enabled. + + String + + String + + + None + + + TextAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCRFailure parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + String + + String + + + None + + + TimeoutAction + + > Applicable: Microsoft Teams + The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. + PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + TimeoutActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + TimeoutActionTarget + + > Applicable: Microsoft Teams + The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. + + String + + String + + + None + + + TimeoutDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. + + Guid + + Guid + + + None + + + TimeoutDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. + + String + + String + + + None + + + TimeoutRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. + + String + + String + + + None + + + TimeoutRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + + String + + String + + + None + + + TimeoutRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. + + String + + String + + + None + + + TimeoutRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + + String + + String + + + None + + + TimeoutSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + TimeoutSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + TimeoutThreshold + + > Applicable: Microsoft Teams + The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. + + Int16 + + Int16 + + + 1200 + + + UseDefaultMusicOnHold + + > Applicable: Microsoft Teams + The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. + + Boolean + + Boolean + + + None + + + Users + + > Applicable: Microsoft Teams + The User parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). + + List + + List + + + None + + + WaitTimeBeforeOfferingCallbackInSecond + + The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + WelcomeMusicAudioFileId + + > Applicable: Microsoft Teams + The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. + + Guid + + Guid + + + None + + + WelcomeTextToSpeechPrompt + + This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. + + String + + String + + + None + + + + + + AgentAlertTime + + > Applicable: Microsoft Teams + The AgentAlertTime parameter represents the time (in seconds) that a call can remain unanswered before it is automatically routed to the next agent. The AgentAlertTime can be set to any integer value between 15 and 180 seconds (3 minutes), inclusive. + + Int16 + + Int16 + + + 30 + + + AllowOptOut + + > Applicable: Microsoft Teams + The AllowOptOut parameter indicates whether or not agents can opt in or opt out from taking calls from a Call Queue. + + Boolean + + Boolean + + + True + + + AuthorizedUsers + + > Applicable: Microsoft Teams + This is a list of GUIDs for users who are authorized to make changes to this call queue. The users must also have a TeamsVoiceApplications policy assigned. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + CallbackEmailNotificationTarget + + > Applicable: Microsoft Teams + The CallbackEmailNotificationTarget parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security) that will receive notification if a callback times out of the call queue or can't be completed for some other reason. This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferAudioFilePromptResourceId + + > Applicable: Microsoft Teams + The CallbackOfferAudioFilePromptResourceId parameter indicates the unique identifier for the Audio file prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferTextToSpeechPrompt`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + Guid + + Guid + + + None + + + CallbackOfferTextToSpeechPrompt + + > Applicable: Microsoft Teams + The CallbackOfferTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to calls that are eligible for callback. This message should tell callers which DTMF touch-tone key (CallbackRequestDtmf) to press to select callback. This parameter, or `-CallbackOfferAudioFilePromptResourceId`, becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallbackRequestDtmf + + The DTMF touch-tone key the caller will be told to press to select callback. The CallbackRequestDtmf must be set to one of the following values: + - Tone0 to Tone9 - Corresponds to DTMF tones from 0 to 9. + - ToneStar - Corresponds to DTMF tone *. + - TonePound - Corresponds to DTMF tone #. + + This parameter becomes a required parameter when IsCallbackEnabled is set to `True`. + + String + + String + + + None + + + CallToAgentRatioThresholdBeforeOfferingCallback + + The ratio of calls to agents that must be in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Minimum value of one (1). Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + ChannelId + + > Applicable: Microsoft Teams + Id of the channel to connect a call queue to. + + String + + String + + + None + + + ChannelUserObjectId + + > Applicable: Microsoft Teams + The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). This is the GUID of one of the owners of the team that the channel belongs to. + + Guid + + Guid + + + None + + + ComplianceRecordingForCallQueueTemplateId + + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The ComplianceRecordingForCallQueueTemplateId parameter indicates a list of up to 2 Compliance Recording for Call Queue templates to apply to the call queue. + + List + + List + + + None + + + ConferenceMode + + > Applicable: Microsoft Teams + The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for this Call queue. Conference mode significantly reduces the amount of time it takes for a caller to be connected to an agent, after the agent accepts the call. The following bullet points detail the difference between both modes: + - Conference Mode Disabled: CQ call is presented to agent. Agent answers and media streams are setup. Based on geographic location of the CQ call and agent, there may be a slight delay in setting up the media streams which may result in some dead air and the first part of the conversation being cut off. + - Conference Mode Enabled: CQ call is put into conference. Agent answers and is brought into conference. Media streams are already setup when agent is brought into conference thus no dead air, and first bit of conversation will not be cut off. + + Boolean + + Boolean + + + False + + + CustomAudioFileAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCR parameter indicates the unique identifier for the Audio file prompt which is played to callers when compliance recording for call queues is enabled. + + Guid + + Guid + + + None + + + CustomAudioFileAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The CustomAudioFileAnnouncementForCRFailure parameter indicates the unique identifier for the Audio file prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + Guid + + Guid + + + None + + + DistributionLists + + > Applicable: Microsoft Teams + The DistributionLists parameter lets you add all the members of the distribution lists to the Call Queue. This is a list of distribution list GUIDs. A service wide configurable maximum number of DLs per Call Queue are allowed. Only the first N (service wide configurable) agents from all distribution lists combined are considered for accepting the call. Nested DLs are supported. O365 Groups can also be used to add members to the Call Queue. + + List + + List + + + None + + + EnableNoAgentSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableNoAgentSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableNoAgentSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on no agents. This parameter is only applicable when NoAgentAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailSystemPromptSuppress parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableOverflowSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableOverflowSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on overflow. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailSystemPromptSuppression + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailSystemPromptSuppression parameter is used to turn off the default voicemail system prompts. This parameter is only applicable when OverflowAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + EnableTimeoutSharedVoicemailTranscription + + > Applicable: Microsoft Teams + The EnableTimeoutSharedVoicemailTranscription parameter is used to turn on transcription for voicemails left by a caller on timeout. This parameter is only applicable when TimeoutAction is set to SharedVoicemail. + + Boolean + + Boolean + + + False + + + HideAuthorizedUsers + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. This is a list of GUIDs of authorized users who should not appear on the list of supervisors for the agents who are members of this queue. The GUID should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). + + List + + List + + + None + + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Object + + Object + + + None + + + IsCallbackEnabled + + The IsCallbackEnabled parameter is used to turn on/off callback. + + Boolean + + Boolean + + + None + + + LanguageId + + > Applicable: Microsoft Teams + The LanguageId parameter indicates the language that is used to play shared voicemail prompts. This parameter becomes a required parameter If either OverflowAction or TimeoutAction is set to SharedVoicemail. + You can query the supported languages using the Get-CsAutoAttendantSupportedLanguage cmdlet. + + String + + String + + + None + + + LineUri + + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. + + String + + String + + + None + + + MusicOnHoldAudioFileId + + > Applicable: Microsoft Teams + The MusicOnHoldFileContent parameter represents music to play when callers are placed on hold. This is the unique identifier of the audio file. This parameter is required if the UseDefaultMusicOnHold parameter is not specified. + + Guid + + Guid + + + None + + + Name + + > Applicable: Microsoft Teams + The Name parameter specifies a unique name for the Call Queue. + + String + + String + + + None + + + NoAgentAction + + > Applicable: Microsoft Teams + The NoAgentAction parameter defines the action to take if the no agents condition is reached. The NoAgentAction property must be set to one of the following values: Queue, Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Queue. + PARAMVALUE: Queue | Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + NoAgentActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the NoAgentAction is set to Forward, and the NoAgentActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + NoAgentActionTarget + + > Applicable: Microsoft Teams + The NoAgentActionTarget represents the target of the no agent action. If the NoAgentAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the NoAgentAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this field is optional. + + String + + String + + + None + + + NoAgentApplyTo + + > Applicable: Microsoft Teams + The NoAgentApplyTo parameter defines if the NoAgentAction applies to calls already in queue and new calls arriving to the queue, or only new calls that arrive once the No Agents condition occurs. The default value is AllCalls. + PARAMVALUE: AllCalls | NewCalls + + Object + + Object + + + Disconnect + + + NoAgentDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to no agents. + + Guid + + Guid + + + None + + + NoAgentDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to no agents. + + String + + String + + + None + + + NoAgentRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to no agents. + + String + + String + + + None + + + NoAgentRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to no agents. + + String + + String + + + None + + + NoAgentRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to no agents. + + Guid + + Guid + + + None + + + NoAgentRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to no agents. + + String + + String + + + None + + + NoAgentRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + + Guid + + Guid + + + None + + + NoAgentRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The NoAgentRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to no agent. + + String + + String + + + None + + + NoAgentSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + NoAgentSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The NoAgentSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on no agents. This parameter becomes a required parameter when NoAgentAction is SharedVoicemail and NoAgentSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + NumberOfCallsInQueueBeforeOfferingCallback + + The number of calls in queue before a call becomes eligible for callback. This condition applies to calls arriving at the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + OboResourceAccountIds + + > Applicable: Microsoft Teams + The OboResourceAccountIds parameter lets you add resource account with phone number to the Call Queue. The agents in the Call Queue will be able to make outbound calls using the phone number on the resource accounts. This is a list of resource account GUIDs. + + List + + List + + + None + + + OverflowAction + + > Applicable: Microsoft Teams + The OverflowAction parameter designates the action to take if the overflow threshold is reached. The OverflowAction property must be set to one of the following values: DisconnectWithBusy, Forward, Voicemail, and SharedVoicemail. The default value is DisconnectWithBusy. + PARAMVALUE: DisconnectWithBusy | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + DisconnectWithBusy + + + OverflowActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the OverflowAction is set to Forward, and the OverflowActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + OverflowActionTarget + + > Applicable: Microsoft Teams + The OverflowActionTarget parameter represents the target of the overflow action. If the OverFlowAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the OverflowAction is set to SharedVoicemail, this parameter must be set to a group ID (Microsoft 365, Distribution list, or Mail-enabled security). Otherwise, this parameter is optional. + + String + + String + + + None + + + OverflowDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to overflow. + + Guid + + Guid + + + None + + + OverflowDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to overflow. + + String + + String + + + None + + + OverflowRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to overflow. + + String + + String + + + None + + + OverflowRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to overflow. + + String + + String + + + None + + + OverflowRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to overflow. + + String + + String + + + None + + + OverflowRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + Guid + + Guid + + + None + + + OverflowRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The OverflowRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to overflow. + + String + + String + + + None + + + OverflowSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The OverflowSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + OverflowSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The OverflowSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on overflow. This parameter becomes a required parameter when OverflowAction is SharedVoicemail and OverflowSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + OverflowThreshold + + > Applicable: Microsoft Teams + The OverflowThreshold parameter defines the number of calls that can be in the queue at any one time before the overflow action is triggered. The OverflowThreshold can be any integer value between 0 and 200, inclusive. A value of 0 causes calls not to reach agents and the overflow action to be taken immediately. + + Int16 + + Int16 + + + 50 + + + PresenceBasedRouting + + > Applicable: Microsoft Teams + The PresenceBasedRouting parameter indicates whether or not presence based routing will be applied while call being routed to Call Queue agents. When set to False, calls will be routed to agents who have opted in to receive calls, regardless of their presence state. When set to True, opted-in agents will receive calls only when their presence state is Available. + + Boolean + + Boolean + + + False + + + RoutingMethod + + > Applicable: Microsoft Teams + The RoutingMethod defines how agents will be called in a Call Queue. If the routing method is set to Serial, then agents will be called one at a time. If the routing method is set to Attendant, then agents will be called in parallel. If routing method is set to RoundRobin, the agents will be called using Round Robin strategy so that all agents share the call-load equally. If routing method is set to LongestIdle, the agents will be called based on their idle time, i.e., the agent that has been idle for the longest period will be called. + PARAMVALUE: Attendant | Serial | RoundRobin | LongestIdle + + Object + + Object + + + Attendant + + + ServiceLevelThresholdResponseTimeInSecond + + The target number of seconds calls should be answered in. This number is used to calculate the call queue service level percentage. + A value of `$null` indicates that a service level percentage will not be calculated for this call queue. + + Int16 + + Int16 + + + None + + + SharedCallQueueHistoryTemplateId + + Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The SharedCallQueueHistoryTemplateId parameter indicates the Shared Call Queue History template to apply to the call queue. + + String + + String + + + None + + + ShiftsSchedulingGroupId + + > Applicable: Microsoft Teams + Id of the Scheduling Group to connect a call queue to. + + String + + String + + + None + + + ShiftsTeamId + + > Applicable: Microsoft Teams + Id of the Team containing the Scheduling Group to connect a call queue to. + + String + + String + + + None + + + ShouldOverwriteCallableChannelProperty + + A Teams Channel can only be linked to one Call Queue at a time. To force reassignment of the Teams Channel to a new Call Queue, set this to $true. + + Boolean + + Boolean + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + TextAnnouncementForCR + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCR parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers when compliance recording for call queues is enabled. + + String + + String + + + None + + + TextAnnouncementForCRFailure + + > Applicable: Microsoft Teams Voice applications private preview customers only. Saving a call queue configuration through Teams admin center will *remove* this setting. The TextAnnouncementForCRFailure parameter indicates the custom Text-to-Speech (TTS) prompt which is played to callers if the compliance recording for call queue bot is unable to join or drops from the call. + + String + + String + + + None + + + TimeoutAction + + > Applicable: Microsoft Teams + The TimeoutAction parameter defines the action to take if the timeout threshold is reached. The TimeoutAction property must be set to one of the following values: Disconnect, Forward, Voicemail, and SharedVoicemail. The default value is Disconnect. + PARAMVALUE: Disconnect | Forward | Voicemail | SharedVoicemail + + Object + + Object + + + Disconnect + + + TimeoutActionCallPriority + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will reset the priority to 3 - Normal / Default. If the TimeoutAction is set to Forward, and the TimeoutActionTarget is set to an Auto attendant or Call queue resource account Guid, this parameter must be set to indicate the priority that will be assigned to the call. Otherwise, this parameter is not applicable. + PARAMVALUE: 1 | 2 | 3 | 4 | 5 - 1 = Very High + - 2 = High + - 3 = Normal / Default + - 4 = Low + - 5 = Very Low + + > [!IMPORTANT] > Call priorities isn't currently supported for Authorized users (/microsoftteams/aa-cq-authorized-users-plan)in Queues App. Authorized users will not be able to edit call flows with priorities. + + Int16 + + Int16 + + + None + + + TimeoutActionTarget + + > Applicable: Microsoft Teams + The TimeoutActionTarget represents the target of the timeout action. If the TimeoutAction is set to Forward, this parameter must be set to a Guid or a telephone number with a mandatory 'tel:' prefix. If the TimeoutAction is set to SharedVoicemail, this parameter must be set to an Office 365 Group ID. Otherwise, this field is optional. + + String + + String + + + None + + + TimeoutDisconnectAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutDisconnectAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being disconnected due to timeout. + + Guid + + Guid + + + None + + + TimeoutDisconnectTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutDisconnectTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being disconnected due to timeout. + + String + + String + + + None + + + TimeoutRedirectPersonAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPersonAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person in the organization due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectPersonTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectPersonTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person in the organization due to timeout. + + String + + String + + + None + + + TimeoutRedirectPhoneNumberAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectPhoneNumberTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectPhoneNumberTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to an external PSTN phone number due to timeout. + + String + + String + + + None + + + TimeoutRedirectVoiceAppAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceAppAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a voice application due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectVoiceAppTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutRedirectVoiceAppsTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a voice application due to timeout. + + String + + String + + + None + + + TimeoutRedirectVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoiceMailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + + Guid + + Guid + + + None + + + TimeoutRedirectVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams Saving a call queue configuration through Teams admin center will *remove* this setting. The TimeoutRedirectVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is played to the caller when being redirected to a person's voicemail due to timeout. + + String + + String + + + None + + + TimeoutSharedVoicemailAudioFilePrompt + + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailAudioFilePrompt parameter indicates the unique identifier for the Audio file prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailTextToSpeechPrompt is null. + + Guid + + Guid + + + None + + + TimeoutSharedVoicemailTextToSpeechPrompt + + > Applicable: Microsoft Teams + The TimeoutSharedVoicemailTextToSpeechPrompt parameter indicates the Text-to-Speech (TTS) prompt which is to be played as a greeting to the caller when transferred to shared voicemail on timeout. This parameter becomes a required parameter when TimeoutAction is SharedVoicemail and TimeoutSharedVoicemailAudioFilePrompt is null. + + String + + String + + + None + + + TimeoutThreshold + + > Applicable: Microsoft Teams + The TimeoutThreshold parameter defines the time (in seconds) that a call can be in the queue before that call times out. At that point, the system will take the action specified by the TimeoutAction parameter. The TimeoutThreshold can be any integer value between 0 and 2700 seconds (inclusive), and is rounded to the nearest 15th interval. For example, if set to 47 seconds, then it is rounded down to 45. If set to 0, welcome music is played, and then the timeout action will be taken. + + Int16 + + Int16 + + + 1200 + + + UseDefaultMusicOnHold + + > Applicable: Microsoft Teams + The UseDefaultMusicOnHold parameter indicates that this Call Queue uses the default music on hold. This parameter cannot be specified together with MusicOnHoldAudioFileId. + + Boolean + + Boolean + + + None + + + Users + + > Applicable: Microsoft Teams + The User parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). + + List + + List + + + None + + + WaitTimeBeforeOfferingCallbackInSecond + + The number of seconds a call must wait before becoming eligible for callback. This condition applies to calls at the front of the call queue. Set to null ($null) to disable this condition. + At least one of `-WaitTimeBeforeOfferingCallbackInSecond`, `-NumberOfCallsInQueueBeforeOfferingCallback`, or `-CallToAgentRatioThresholdBeforeOfferingCallback` must be set to a value other than null when `-IsCallbackEnabled` is `True`. + + Int16 + + Int16 + + + None + + + WelcomeMusicAudioFileId + + > Applicable: Microsoft Teams + The WelcomeMusicAudioFileId parameter represents the audio file to play when callers are connected with the Call Queue. This is the unique identifier of the audio file. + + Guid + + Guid + + + None + + + WelcomeTextToSpeechPrompt + + This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. + + String + + String + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsCallQueue -Identity e7e00636-47da-449c-a36b-1b3d6ee04440 -UseDefaultMusicOnHold $true + + This example updates the Call Queue with identity e7e00636-47da-449c-a36b-1b3d6ee04440 by making it use the default music on hold. + + + + -------------------------- Example 2 -------------------------- + Set-CsCallQueue -Identity e7e00636-47da-449c-a36b-1b3d6ee04440 -DistributionLists @("8521b0e3-51bd-4a4b-a8d6-b219a77a0a6a", "868dccd8-d723-4b4f-8d74-ab59e207c357") -MusicOnHoldAudioFileId $audioFile.Id + + This example updates the Call Queue with new distribution lists and references a new music on hold audio file using the audio file ID from the stored variable $audioFile created with the Import-CsOnlineAudioFile cmdlet (https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile) + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallqueue + + + Create a Phone System Call Queue + https://support.office.com/article/Create-a-Phone-System-call-queue-67ccda94-1210-43fb-a25b-7b9785f8a061 + + + New-CsCallQueue + + + + Get-CsCallQueue + + + + Remove-CsCallQueue + + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + + + + Set-CsComplianceRecordingForCallQueueTemplate + Set + CsComplianceRecordingForCallQueueTemplate + + Use the Set-CsComplianceRecordingForCallQueueTemplate cmdlet to make changes to an existing Compliance Recording for Call Queues template. + + + + Use the Set-CsComplianceRecordingForCallQueueTemplate cmdlet to make changes to an existing Compliance Recording for Call Queues template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Set-CsComplianceRecordingForCallQueueTemplate + + Instance + + > Applicable: Microsoft Teams + The Instance parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + Instance + + > Applicable: Microsoft Teams + The Instance parameter is the unique identifier assigned to the Compliance Recording for Call Queue template. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $template = CsComplianceRecordingForCallQueueTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 +$template.BotId = 14732826-8206-42e3-b51e-6693e2abb698 +Set-CsComplianceRecordingForCallQueueTemplate $template + + The Set-CsComplianceRecordingForCallQueueTemplate cmdlet lets you modify the properties of a Compliance Recording for Call Queue Template. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsComplianceRecordingForCallQueueTemplate + + + New-CsComplianceRecordingForCallQueueTemplate + + + + Set-CsComplianceRecordingForCallQueueTemplate + + + + Remove-CsComplianceRecordingForCallQueueTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQuuee + + + + + + + Set-CsInboundBlockedNumberPattern + Set + CsInboundBlockedNumberPattern + + Modifies one or more parameters of a blocked number pattern in the tenant list. + + + + This cmdlet modifies one or more parameters of a blocked number pattern in the tenant list. + + + + Set-CsInboundBlockedNumberPattern + + Identity + + A unique identifier specifying the blocked number pattern to be modified. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A friendly description for the blocked number pattern to be modified. + + String + + String + + + None + + + Enabled + + If this parameter is set to True, the inbound calls matching the pattern will be blocked. + + Boolean + + Boolean + + + None + + + Pattern + + A regular expression that the calling number must match in order to be blocked. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + A friendly description for the blocked number pattern to be modified. + + String + + String + + + None + + + Enabled + + If this parameter is set to True, the inbound calls matching the pattern will be blocked. + + Boolean + + Boolean + + + None + + + Identity + + A unique identifier specifying the blocked number pattern to be modified. + + String + + String + + + None + + + Pattern + + A regular expression that the calling number must match in order to be blocked. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS> Set-CsInboundBlockedNumberPattern -Identity "BlockAutomatic" -Pattern "^\+11234567890" + + This example modifies a blocked number pattern to block inbound calls from +11234567890 number. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern + + + New-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern + + + Get-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern + + + Remove-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern + + + + + + Set-CsInboundExemptNumberPattern + Set + CsInboundExemptNumberPattern + + Modifies one or more parameters of an exempt number pattern in the tenant list. + + + + This cmdlet modifies one or more parameters of an exempt number pattern in the tenant list. + + + + Set-CsInboundExemptNumberPattern + + Identity + + Unique identifier for the exempt number pattern to be changed. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Sets the description of the number pattern. + + String + + String + + + None + + + Enabled + + This parameter determines whether the number pattern is enabled for exemption or not. + + Boolean + + Boolean + + + True + + + Pattern + + A regular expression that the calling number must match in order to be exempt from blocking. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Sets the description of the number pattern. + + String + + String + + + None + + + Enabled + + This parameter determines whether the number pattern is enabled for exemption or not. + + Boolean + + Boolean + + + True + + + Identity + + Unique identifier for the exempt number pattern to be changed. + + String + + String + + + None + + + Pattern + + A regular expression that the calling number must match in order to be exempt from blocking. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + You can use Test-CsInboundBlockedNumberPattern to test your block and exempt phone number ranges. + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS> Set-CsInboundExemptNumberPattern -Identity "AllowContoso1" -Pattern "^\+?1312555888[2|3]$" + + Sets the inbound exempt number pattern for AllowContoso1 + + + + -------------------------- EXAMPLE 2 -------------------------- + PS> Set-CsInboundExemptNumberPattern -Identity "AllowContoso1" -Enabled $False + + Disables the exempt number pattern from usage in call blocking + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern + + + Get-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern + + + New-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern + + + Remove-CsInboundExemptNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern + + + Test-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern + + + Get-CsTenantBlockedCallingNumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers + + + + + + Set-CsMainlineAttendantAppointmentBookingFlow + Set + CsMainlineAttendantAppointmentBookingFlow + + Changes an existing Mainline Attendant appointment booking flow + + + + The Set-CsMainlineAttendantAppointmentBookingFlow cmdlet changes an existing appointment booking flow that is used with Mainline Attendant + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + Set-CsMainlineAttendantAppointmentBookingFlow + + Instance + + The Instance parameter is the object reference to the Mainline Attendant Booking flow. + You can retrieve an object reference to an existing Mainline Attendant Booking flow by using the Get-CsMainlineAttendantAppointmentBookingFlow (Get-CsMainlineAttendantAppointmentBookingFlow.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + + + + Instance + + The Instance parameter is the object reference to the Mainline Attendant Booking flow. + You can retrieve an object reference to an existing Mainline Attendant Booking flow by using the Get-CsMainlineAttendantAppointmentBookingFlow (Get-CsMainlineAttendantAppointmentBookingFlow.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csmainlineattendantappointmentbookingflow + + + + + + Set-CsMainlineAttendantQuestionAnswerFlow + Set + CsMainlineAttendantQuestionAnswerFlow + + Changes an existing Mainline Attendant question and answer (FAQ) flow + + + + The Set-CsMainlineAttendantQuestionAnswerFlow cmdlet changes an existing question and answer connection that can be used with Mainline Attendant + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + Set-CsMainlineAttendantQuestionAnswerFlow + + Instance + + The Instance parameter is the object reference to the Mainline Attendant Question and Answer flow to be modified. + You can retrieve an object reference to an existing Mainline Attendant Question and Answer Flow by using the Get-CsMainlineAttendantQuestionAnswerFlow (Get-CsMainlineAttendantQuestionAnswerFlow.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + + + + Instance + + The Instance parameter is the object reference to the Mainline Attendant Question and Answer flow to be modified. + You can retrieve an object reference to an existing Mainline Attendant Question and Answer Flow by using the Get-CsMainlineAttendantQuestionAnswerFlow (Get-CsMainlineAttendantQuestionAnswerFlow.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csmainlineattendantquestionanswerflow + + + + + + Set-CsOnlineApplicationInstance + Set + CsOnlineApplicationInstance + + Updates an application instance in Microsoft Entra ID. + + + + This cmdlet is used to update an application instance in Microsoft Entra ID. Note : The use of this cmdlet for assigning phone numbers in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment) and [Remove-CsPhoneNumberAssignment](https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. + + + + Set-CsOnlineApplicationInstance + + AcsResourceId + + The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. + + System.Guid + + System.Guid + + + None + + + ApplicationId + + > Applicable: Microsoft Teams + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + + System.Guid + + System.Guid + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DisplayName + + > Applicable: Microsoft Teams + The display name. + + System.String + + System.String + + + None + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The URI or ID of the application instance to update. + + System.String + + System.String + + + None + + + OnpremPhoneNumber + + > Applicable: Microsoft Teams Note : Using this parameter has been deprecated in commercial and GCC cloud instances. Use the new Set-CsPhoneNumberAssignment cmdlet instead. + Assigns a hybrid (on-premise) telephone number to the application instance. + + System.String + + System.String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AcsResourceId + + The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. + + System.Guid + + System.Guid + + + None + + + ApplicationId + + > Applicable: Microsoft Teams + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + + System.Guid + + System.Guid + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DisplayName + + > Applicable: Microsoft Teams + The display name. + + System.String + + System.String + + + None + + + Force + + > Applicable: Microsoft Teams + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The URI or ID of the application instance to update. + + System.String + + System.String + + + None + + + OnpremPhoneNumber + + > Applicable: Microsoft Teams Note : Using this parameter has been deprecated in commercial and GCC cloud instances. Use the new Set-CsPhoneNumberAssignment cmdlet instead. + Assigns a hybrid (on-premise) telephone number to the application instance. + + System.String + + System.String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineApplicationInstance -Identity appinstance01@contoso.com -ApplicationId ce933385-9390-45d1-9512-c8d228074e07 -DisplayName "AppInstance01" + + This example shows updated ApplicationId and DisplayName information for an existing Auto Attendant application instance with Identity "appinstance01@contoso.com". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance + + + Get-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance + + + New-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance + + + Find-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance + + + Sync-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance + + + + + + Set-CsOnlineAudioConferencingRoutingPolicy + Set + CsOnlineAudioConferencingRoutingPolicy + + This cmdlet sets the Online Audio Conferencing Routing Policy for users in the tenant. + + + + Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. + To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." + The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. + Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. + + + + Set-CsOnlineAudioConferencingRoutingPolicy + + Identity + + The identity of the Online Audio Conferencing Routing Policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the Online Audio Conferencing Routing policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio conferencing routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + + Object + + Object + + + None + + + RouteType + + For internal use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the Online Audio Conferencing Routing policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Identity + + The identity of the Online Audio Conferencing Routing Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online audio conferencing routing policy. The online PSTN usages must be existing usages (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + + Object + + Object + + + None + + + RouteType + + For internal use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsOnlineAudioConferencingRoutingPolicy -Identity "Policy 1" -OnlinePstnUsages "US and Canada" + + Sets the Online Audio Conferencing Routing Policy "Policy 1" value of "OnlinePstnUsages" to "US and Canada". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineaudioconferencingroutingpolicy + + + New-CsOnlineAudioConferencingRoutingPolicy + + + + Remove-CsOnlineAudioConferencingRoutingPolicy + + + + Grant-CsOnlineAudioConferencingRoutingPolicy + + + + Get-CsOnlineAudioConferencingRoutingPolicy + + + + + + + Set-CsOnlineDialInConferencingBridge + Set + CsOnlineDialInConferencingBridge + + Use the `Set-CsOnlineDialInConferencingBridge` cmdlet to modify the settings of a Microsoft audio conferencing bridge. + + + + The `Set-CsOnlineDialInConferencingBridge` cmdlet can be used to set the default dial-in service phone number for a given audio conferencing bridge. + + + + Set-CsOnlineDialInConferencingBridge + + Identity + + > Applicable: Microsoft Teams + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge to be modified. + + Guid + + Guid + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to a Microsoft audio conferencing bridge object to the cmdlet rather than set individual parameter values. + + ConferencingBridge + + ConferencingBridge + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + DefaultServiceNumber + + > Applicable: Microsoft Teams + Specifies the default phone number to be used on the Microsoft audio conferencing bridge. The default number is used in meeting invitations. + The DefaultServiceNumber must be assigned to the audio conferencing bridge. Also, when the default service number is changed, the service number of existing users will not be changed. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): -DomainController atl-cs-001.Contoso.com. + Computer name: -DomainController atl-cs-001 + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Name + + > Applicable: Microsoft Teams + Specifies the name of the audio conferencing bridge to be modified. + + String + + String + + + None + + + SetDefault + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + DefaultServiceNumber + + > Applicable: Microsoft Teams + Specifies the default phone number to be used on the Microsoft audio conferencing bridge. The default number is used in meeting invitations. + The DefaultServiceNumber must be assigned to the audio conferencing bridge. Also, when the default service number is changed, the service number of existing users will not be changed. + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): -DomainController atl-cs-001.Contoso.com. + Computer name: -DomainController atl-cs-001 + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge to be modified. + + Guid + + Guid + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to a Microsoft audio conferencing bridge object to the cmdlet rather than set individual parameter values. + + ConferencingBridge + + ConferencingBridge + + + None + + + Name + + > Applicable: Microsoft Teams + Specifies the name of the audio conferencing bridge to be modified. + + String + + String + + + None + + + SetDefault + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineDialInConferencingBridge -Name "Conference Bridge" -DefaultServiceNumber 14255551234 + + This example sets the default dial-in phone number to 14255551234 for the audio conferencing bridge named "Conference Bridge". + + + + -------------------------- Example 2 -------------------------- + $bridge = Get-CsOnlineDialInConferencingBridge -Name "Conference Bridge" + +$Bridge.Name = "O365 Bridge" + +Set-CsOnlineDialInConferencingBridge -Instance $bridge + + This example changes the name of a conference bridge by creating a conference bridge instance, changing the instance's name and then setting the conference bridge to the instance. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingbridge + + + + + + Set-CsOnlineDialInConferencingServiceNumber + Set + CsOnlineDialInConferencingServiceNumber + + Use the `Set-CsOnlineDialInConferencingServiceNumber` cmdlet to modify the properties of a dial-in or audio conferencing service number that is used by callers when they dial in to a meeting. + + + + The `Set-CsOnlineDialInConferencingServiceNumber` cmdlet enables you to set the primary and secondary languages or restore the default languages for a given service number. The primary language will be used for the prompts that callers will listen to when they are entering a meeting. The secondary languages (up to 4) will be available as options in the case the caller wants the prompts read in a different language. The following languages are supported for PSTN conferencing: + Arabic + Chinese (Simplified) + Chinese (Traditional) + Danish + Dutch + English (Australia) + English (United Kingdom) + English (United States) + Finnish + French (Canada) + French (France) + German + Hebrew + Italian + Japanese + Korean + Norwegian (Bokmal) + Portuguese + Russian + Spanish (Mexico) + Spanish (Spain) + Swedish + Turkish + Ukrainian + + + + Set-CsOnlineDialInConferencingServiceNumber + + Identity + + > Applicable: Microsoft Teams + Specifies the default dial-in service number string. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to the Office 365 audio service number object to the cmdlet rather than set individual parameter values. + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): -DomainController atl-cs-001.Contoso.com. + Computer name: -DomainController atl-cs-001 + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + PrimaryLanguage + + > Applicable: Microsoft Teams + Specifies the primary language that is used when users call into a meeting. The culture ID is used. For example, en-US for US English, ja-JP for Japanese, or es-ES for Spanish. + Use the `Get-CsOnlineDialInConferencingLanguagesSupported` cmdlet to get a list of the available languages. + + String + + String + + + None + + + RestoreDefaultLanguages + + > Applicable: Microsoft Teams + Including this switch restores all of the default languages for the audio conferencing service number. + + + SwitchParameter + + + False + + + SecondaryLanguages + + > Applicable: Microsoft Teams + Specifies the secondary languages that can be used when users call into a meeting. The culture ID is used. For example, en-US for US English, ja-JP for Japanese, or es-ES for Spanish. The order you provide will be the order that will be presented to users that are calling into the meeting. There is a maximum of 4 languages that can be used as secondary languages. + Use the `Get-CsOnlineDialInConferencingLanguagesSupported` cmdlet to get a list of the available languages. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): -DomainController atl-cs-001.Contoso.com. + Computer name: -DomainController atl-cs-001 + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the default dial-in service number string. The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to the Office 365 audio service number object to the cmdlet rather than set individual parameter values. + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + + + PrimaryLanguage + + > Applicable: Microsoft Teams + Specifies the primary language that is used when users call into a meeting. The culture ID is used. For example, en-US for US English, ja-JP for Japanese, or es-ES for Spanish. + Use the `Get-CsOnlineDialInConferencingLanguagesSupported` cmdlet to get a list of the available languages. + + String + + String + + + None + + + RestoreDefaultLanguages + + > Applicable: Microsoft Teams + Including this switch restores all of the default languages for the audio conferencing service number. + + SwitchParameter + + SwitchParameter + + + False + + + SecondaryLanguages + + > Applicable: Microsoft Teams + Specifies the secondary languages that can be used when users call into a meeting. The culture ID is used. For example, en-US for US English, ja-JP for Japanese, or es-ES for Spanish. The order you provide will be the order that will be presented to users that are calling into the meeting. There is a maximum of 4 languages that can be used as secondary languages. + Use the `Get-CsOnlineDialInConferencingLanguagesSupported` cmdlet to get a list of the available languages. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineDialInConferencingServiceNumber -Identity +14255551234 -PrimaryLanguage de-de -SecondaryLanguages en-us, ja-jp, en-gb + + This example sets the primary language to German (Germany) and the secondary languages to US English, Japanese, and UK English for the dial-in service number +14255551234. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingservicenumber + + + + + + Set-CsOnlineDialInConferencingTenantSettings + Set + CsOnlineDialInConferencingTenantSettings + + Use the `Set-CsOnlineDialInConferencingTenantSettings` to modify the tenant level settings of dial-in conferencing. Dial-in conferencing tenant settings control the conference experience of users and manage some conferencing administrative functions. + + + + Dial-in conferencing tenant settings control what functions are available during a conference call. For example, whether or not entries and exits from the call are announced. The settings also manage some of the administrative functions, such as when users get notification of administrative actions, like a PIN change. By contrast, the higher level dial-in conferencing configuration only maintains a flag for whether dial-in conferencing is enabled for your organization. For more information, see `Get-CsOnlineDialinConferencingTenantConfiguration`. + There is always a single instance of the dial-in conferencing settings per tenant. You can modify the settings using `Set-CsOnlineDialInConferencingTenantSettings` and revert those settings to their defaults by using `Remove-CsOnlineDialInConferencingTenantSettings`. + The following parameters are not applicable to Teams: EnableDialOutJoinConfirmation, IncludeTollFreeNumberInMeetingInvites, MigrateServiceNumbersOnCrossForestMove, and UseUniqueConferenceIds + + + + Set-CsOnlineDialInConferencingTenantSettings + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + AllowedDialOutExternalDomains + + Used to specify which external domains are allowed for dial-out conferencing. + + Object + + Object + + + None + + + AllowFederatedUsersToDialOutToSelf + + Meeting participants can call themselves when they join a meeting. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. + + String + + String + + + None + + + AllowFederatedUsersToDialOutToThirdParty + + Specifies at this scope if dial out to third party participants is allowed. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. + + String + + String + + + None + + + AllowPSTNOnlyMeetingsByDefault + + > Applicable: Microsoft Teams + Specifies the default value that gets assigned to the "AllowPSTNOnlyMeetings" setting of users when they are enabled for dial-in conferencing, or when a user's dial-in conferencing provider is set to Microsoft. If set to $true, the "AllowPSTNOnlyMeetings" setting of the user will also be set to true. If $false, the user setting will be false. The default value for AllowPSTNOnlyMeetingsByDefault is $false. + When AllowPSTNOnlyMeetingsByDefault is changed, the value of the "AllowPSTNOnlyMeetings" setting of currently enabled users doesn't change. The new default value will only be applied to users that are subsequently enabled for dial-in conferencing, or whose provider is changed to Microsoft. + The "AllowPSTNOnlyMeetings" setting of a user defines if unauthenticated callers can start a meeting if they are the first person to join. An unauthenticated caller is defined as a participant who joins a meeting over the phone and doesn't provide the organizer PIN when joining the meeting. + For more information on the "AllowPSTNOnlyMeetings" user setting, see `Set-CsOnlineDialInConferencingUser`. + + Boolean + + Boolean + + + None + + + AutomaticallyMigrateUserMeetings + + > Applicable: Microsoft Teams + Specifies if meetings of users in the tenant should automatically be rescheduled via the Meeting Migration Service when there's a change in the users' Cloud PSTN Confernecing coordinates, e.g. when a user is provisioned, de-provisoned, assigned a new default service number etc. If this is false, users will need to manually migrate their conferences using the Meeting Migration tool. PARAMVALUE: $true | $false + + Boolean + + Boolean + + + None + + + AutomaticallyReplaceAcpProvider + + > Applicable: Microsoft Teams + Specifies if a user already enabled for a 3rd party Audio Conferencing Provider (ACP) should automatically be converted to Microsoft's Online DialIn Conferencing service when a license for Microsoft's service is assigned to the user. If this is false, tenant admins will need to manually provision the user with the Enable-CsOnlineDialInConferencingUser cmdlet with the -ReplaceProvider switch present. PARAMVALUE: $true | $false + + Boolean + + Boolean + + + None + + + AutomaticallySendEmailsToUsers + + > Applicable: Microsoft Teams + Specifies whether advisory emails will be sent to users when the events listed below occur. Setting the parameter to $true enables the emails to be sent, $false disables the emails. The default is $true. + User is enabled or disabled for dial-in conferencing. + The dial-in conferencing provider is changed either to Microsoft, or from Microsoft to another provider, or none. + The dial-in conferencing PIN is reset by the tenant administrator. + Changes to either the user's conference ID, or the user's default dial-in conference number. + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + EnableDialOutJoinConfirmation + + Specifies if the callees need to confirm to join the conference call. If true, the callees will hear prompts to ask for confirmation to join the conference call, otherwise callees will join the conference call directly. + + Boolean + + Boolean + + + None + + + EnableEntryExitNotifications + + > Applicable: Microsoft Teams + Specifies if, by default, announcements are made as users enter and exit a conference call. Set to $true to enable notifications, $false to disable notifications. The default is $true. + This setting can be overridden on a meeting by meeting basis when a user joins a meeting via a Skype for Business client and modifies the Announce when people enter or leave setting on the Skype Meeting Options menu of a meeting. + + Boolean + + Boolean + + + None + + + EnableNameRecording + + > Applicable: Microsoft Teams + Specifies whether the name of a user is recorded on entry to the conference. This recording is used during entry and exit notifications. Set to $true to enable name recording, set to $false to bypass name recording. The default is $true. + + Boolean + + Boolean + + + None + + + EntryExitAnnouncementsType + + > Applicable: Microsoft Teams + Specifies if the Entry and Exit Announcement Uses names or tones only. PARAMVALUE: UseNames | ToneOnly + + EntryExitAnnouncementsType + + EntryExitAnnouncementsType + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IncludeTollFreeNumberInMeetingInvites + + > Applicable: Microsoft Teams + This parameter is obsolete and not functional. + + Boolean + + Boolean + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + MaskPstnNumbersType + + This parameter allows tenant administrators to configure masking of PSTN participant phone numbers in the roster view for Microsoft Teams meetings enabled for Audio Conferencing, scheduled within the organization. + Possible values are: - MaskedForExternalUsers (masked to external users) + - MaskedForAllUsers (masked for everyone) + - NoMasking (visible to everyone) + + String + + String + + + MaskedForExternalUsers + + + MigrateServiceNumbersOnCrossForestMove + + > Applicable: Microsoft Teams + Specifies whether service numbers assigned to the tenant should be migrated to the new forest of the tenant when the tenant is migrated cross region. If false, service numbers will be released back to stock once the migration completes. This settings does not apply to ported-in numbers that are always migrated. PARAMVALUE: $true | $false + + Boolean + + Boolean + + + None + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + PinLength + + > Applicable: Microsoft Teams + Specifies the number of digits in the automatically generated PINs. Organizers can enter their PIN to start a meeting they scheduled if they join via phone and are the first person to join. The minimum value is 4, the maximum is 12, and the default is 5. + A user's PIN will only authenticate them as leaders for a meeting they scheduled. The PIN of a user that did not schedule the meeting will not enable that user to lead the meeting. + + UInt32 + + UInt32 + + + None + + + SendEmailFromAddress + + > Applicable: Microsoft Teams + Specifies the email address to use in the "From" contact information on emails that are sent to users to notify them of their dial-in conferencing settings, or when their settings change. The email address needs to be in the form <UserAlias>@<Domain>. For example, "KenMyer@Contoso.com" or "Admin@Contoso.com". + The SendEmailFromAddress value is used only if the SendEmailFromDisplayName setting is specified, and the SendEmailFromOverride setting is $true. + Note: The parameter has been deprecated and may be removed in future versions. + + String + + String + + + None + + + SendEmailFromDisplayName + + > Applicable: Microsoft Teams + Specifies the display name to use in the "From" contact information on emails that are sent to users to notify them of their dial-in conferencing settings, or when their settings change. + The SendEmailFromDisplayName value is used only if the SendEmailFromDisplayName setting is specified, and the SendEmailFromOverride setting is $true. + Note: The parameter has been deprecated and may be removed in future versions. + + String + + String + + + None + + + SendEmailFromOverride + + > Applicable: Microsoft Teams + Specifies if the contact information on dial-in conferencing notifications will be the default generated by Office 365, or administrator defined values. Setting SendEmailFromOverride to $true enables the system to use the SendEmailFromAddress and SendEmailFromDisplayName parameter inputs as the "From" contact information. Setting this parameter to $false will cause email notifications to be sent with the system generated default. The default is $false. + SendEmailFromOverride can't be $true if SendEmailFromAddress and SendEmailFromDisplayName aren't specified. + If you want to change the email address information, you need to make sure that your inbound email policies allow for emails that come from the address specified by the SendEmailFromAddress parameter. + Note: The parameter has been deprecated and may be removed in future versions. + + Boolean + + Boolean + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Object + + Object + + + None + + + UseUniqueConferenceIds + + > Applicable: Microsoft Teams + Specifies if Private Meetings are enabled for the users in this tenant. PARAMVALUE: $true | $false + + Boolean + + Boolean + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + AllowedDialOutExternalDomains + + Used to specify which external domains are allowed for dial-out conferencing. + + Object + + Object + + + None + + + AllowFederatedUsersToDialOutToSelf + + Meeting participants can call themselves when they join a meeting. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. + + String + + String + + + None + + + AllowFederatedUsersToDialOutToThirdParty + + Specifies at this scope if dial out to third party participants is allowed. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. + + String + + String + + + None + + + AllowPSTNOnlyMeetingsByDefault + + > Applicable: Microsoft Teams + Specifies the default value that gets assigned to the "AllowPSTNOnlyMeetings" setting of users when they are enabled for dial-in conferencing, or when a user's dial-in conferencing provider is set to Microsoft. If set to $true, the "AllowPSTNOnlyMeetings" setting of the user will also be set to true. If $false, the user setting will be false. The default value for AllowPSTNOnlyMeetingsByDefault is $false. + When AllowPSTNOnlyMeetingsByDefault is changed, the value of the "AllowPSTNOnlyMeetings" setting of currently enabled users doesn't change. The new default value will only be applied to users that are subsequently enabled for dial-in conferencing, or whose provider is changed to Microsoft. + The "AllowPSTNOnlyMeetings" setting of a user defines if unauthenticated callers can start a meeting if they are the first person to join. An unauthenticated caller is defined as a participant who joins a meeting over the phone and doesn't provide the organizer PIN when joining the meeting. + For more information on the "AllowPSTNOnlyMeetings" user setting, see `Set-CsOnlineDialInConferencingUser`. + + Boolean + + Boolean + + + None + + + AutomaticallyMigrateUserMeetings + + > Applicable: Microsoft Teams + Specifies if meetings of users in the tenant should automatically be rescheduled via the Meeting Migration Service when there's a change in the users' Cloud PSTN Confernecing coordinates, e.g. when a user is provisioned, de-provisoned, assigned a new default service number etc. If this is false, users will need to manually migrate their conferences using the Meeting Migration tool. PARAMVALUE: $true | $false + + Boolean + + Boolean + + + None + + + AutomaticallyReplaceAcpProvider + + > Applicable: Microsoft Teams + Specifies if a user already enabled for a 3rd party Audio Conferencing Provider (ACP) should automatically be converted to Microsoft's Online DialIn Conferencing service when a license for Microsoft's service is assigned to the user. If this is false, tenant admins will need to manually provision the user with the Enable-CsOnlineDialInConferencingUser cmdlet with the -ReplaceProvider switch present. PARAMVALUE: $true | $false + + Boolean + + Boolean + + + None + + + AutomaticallySendEmailsToUsers + + > Applicable: Microsoft Teams + Specifies whether advisory emails will be sent to users when the events listed below occur. Setting the parameter to $true enables the emails to be sent, $false disables the emails. The default is $true. + User is enabled or disabled for dial-in conferencing. + The dial-in conferencing provider is changed either to Microsoft, or from Microsoft to another provider, or none. + The dial-in conferencing PIN is reset by the tenant administrator. + Changes to either the user's conference ID, or the user's default dial-in conference number. + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + EnableDialOutJoinConfirmation + + Specifies if the callees need to confirm to join the conference call. If true, the callees will hear prompts to ask for confirmation to join the conference call, otherwise callees will join the conference call directly. + + Boolean + + Boolean + + + None + + + EnableEntryExitNotifications + + > Applicable: Microsoft Teams + Specifies if, by default, announcements are made as users enter and exit a conference call. Set to $true to enable notifications, $false to disable notifications. The default is $true. + This setting can be overridden on a meeting by meeting basis when a user joins a meeting via a Skype for Business client and modifies the Announce when people enter or leave setting on the Skype Meeting Options menu of a meeting. + + Boolean + + Boolean + + + None + + + EnableNameRecording + + > Applicable: Microsoft Teams + Specifies whether the name of a user is recorded on entry to the conference. This recording is used during entry and exit notifications. Set to $true to enable name recording, set to $false to bypass name recording. The default is $true. + + Boolean + + Boolean + + + None + + + EntryExitAnnouncementsType + + > Applicable: Microsoft Teams + Specifies if the Entry and Exit Announcement Uses names or tones only. PARAMVALUE: UseNames | ToneOnly + + EntryExitAnnouncementsType + + EntryExitAnnouncementsType + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + XdsIdentity + + XdsIdentity + + + None + + + IncludeTollFreeNumberInMeetingInvites + + > Applicable: Microsoft Teams + This parameter is obsolete and not functional. + + Boolean + + Boolean + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + MaskPstnNumbersType + + This parameter allows tenant administrators to configure masking of PSTN participant phone numbers in the roster view for Microsoft Teams meetings enabled for Audio Conferencing, scheduled within the organization. + Possible values are: - MaskedForExternalUsers (masked to external users) + - MaskedForAllUsers (masked for everyone) + - NoMasking (visible to everyone) + + String + + String + + + MaskedForExternalUsers + + + MigrateServiceNumbersOnCrossForestMove + + > Applicable: Microsoft Teams + Specifies whether service numbers assigned to the tenant should be migrated to the new forest of the tenant when the tenant is migrated cross region. If false, service numbers will be released back to stock once the migration completes. This settings does not apply to ported-in numbers that are always migrated. PARAMVALUE: $true | $false + + Boolean + + Boolean + + + None + + + MsftInternalProcessingMode + + For Microsoft internal use only. + + String + + String + + + None + + + PinLength + + > Applicable: Microsoft Teams + Specifies the number of digits in the automatically generated PINs. Organizers can enter their PIN to start a meeting they scheduled if they join via phone and are the first person to join. The minimum value is 4, the maximum is 12, and the default is 5. + A user's PIN will only authenticate them as leaders for a meeting they scheduled. The PIN of a user that did not schedule the meeting will not enable that user to lead the meeting. + + UInt32 + + UInt32 + + + None + + + SendEmailFromAddress + + > Applicable: Microsoft Teams + Specifies the email address to use in the "From" contact information on emails that are sent to users to notify them of their dial-in conferencing settings, or when their settings change. The email address needs to be in the form <UserAlias>@<Domain>. For example, "KenMyer@Contoso.com" or "Admin@Contoso.com". + The SendEmailFromAddress value is used only if the SendEmailFromDisplayName setting is specified, and the SendEmailFromOverride setting is $true. + Note: The parameter has been deprecated and may be removed in future versions. + + String + + String + + + None + + + SendEmailFromDisplayName + + > Applicable: Microsoft Teams + Specifies the display name to use in the "From" contact information on emails that are sent to users to notify them of their dial-in conferencing settings, or when their settings change. + The SendEmailFromDisplayName value is used only if the SendEmailFromDisplayName setting is specified, and the SendEmailFromOverride setting is $true. + Note: The parameter has been deprecated and may be removed in future versions. + + String + + String + + + None + + + SendEmailFromOverride + + > Applicable: Microsoft Teams + Specifies if the contact information on dial-in conferencing notifications will be the default generated by Office 365, or administrator defined values. Setting SendEmailFromOverride to $true enables the system to use the SendEmailFromAddress and SendEmailFromDisplayName parameter inputs as the "From" contact information. Setting this parameter to $false will cause email notifications to be sent with the system generated default. The default is $false. + SendEmailFromOverride can't be $true if SendEmailFromAddress and SendEmailFromDisplayName aren't specified. + If you want to change the email address information, you need to make sure that your inbound email policies allow for emails that come from the address specified by the SendEmailFromAddress parameter. + Note: The parameter has been deprecated and may be removed in future versions. + + Boolean + + Boolean + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Object + + Object + + + None + + + UseUniqueConferenceIds + + > Applicable: Microsoft Teams + Specifies if Private Meetings are enabled for the users in this tenant. PARAMVALUE: $true | $false + + Boolean + + Boolean + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineDialInConferencingTenantSettings -EnableEntryExitNotifications $True -EnableNameRecording $True -PinLength 7 + + This example sets the tenant's conferencing settings to enable entry and exit notifications supported by name recording. The PIN length is set to 7. + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineDialInConferencingTenantSettings -SendEmailFromOverride $true -SendEmailFromAddress admin@contoso.com -SendEmailFromDisplayName "Conferencing Administrator" + + This example defines the contact information to be used in dial-in conferencing email notifications and enables the default address to be overridden. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingtenantsettings + + + Get-CsOnlineDialInConferencingTenantSettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantsettings + + + Remove-CsOnlineDialInConferencingTenantSettings + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinedialinconferencingtenantsettings + + + + + + Set-CsOnlineDialInConferencingUser + Set + CsOnlineDialInConferencingUser + + Use the `Set-CsOnlineDialInConferencingUser` cmdlet to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. + + + + The `Set-CsOnlineDialInConferencingUser` cmdlet is used to modify properties for a Microsoft audio conferencing user. This cmdlet will not work for users with third-party conferencing providers. The cmdlet will verify that the correct license is assigned to the user. + > [!NOTE] > The AllowPSTNOnlyMeetings, ResetConferenceId, and ConferenceId parameters will be deprecated on Jan 31, 2022. To allow Teams meeting participants joining via the PSTN to bypass the lobby, use the AllowPSTNUsersToBypassLobby of the Set-CsTeamsMeetingPolicy cmdlet (https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingpolicy). The capabilities associated with the ResetConferenceId and ConferenceId parameters are no longer supported. + + + + Set-CsOnlineDialInConferencingUser + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + AllowPSTNOnlyMeetings + + > Applicable: Microsoft Teams + If true, non-authenticated users can start meetings. If false, non-authenticated callers wait in the lobby until an authenticated user joins, thereby starting the meeting. An authenticated user is a user who joins the meeting using a Skype for Business client, or the organizer that joined the meeting via dial-in conferencing and was authenticated by a PIN number. The default is false. + + Boolean + + Boolean + + + None + + + AllowTollFreeDialIn + + > Applicable: Microsoft Teams + If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. This setting can ONLY be managed using the TeamsAudioConferencingPolicy. By default, AllowTollFreeDialin is always set to True. + + Boolean + + Boolean + + + None + + + AsJob + + The parameter is used to run commands as background jobs. + + + SwitchParameter + + + False + + + BridgeId + + > Applicable: Microsoft Teams + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams + Specifies the name of the audio conferencing bridge. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` + Computer name: `-DomainController atl-cs-001` + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + ResetLeaderPin + + > Applicable: Microsoft Teams + Specifies whether to reset the meeting organizer or leaders PIN for meetings. + + + SwitchParameter + + + False + + + SendEmail + + > Applicable: Microsoft Teams + Send an email to the user containing their Audio Conference information. + + + SwitchParameter + + + False + + + SendEmailFromAddress + + > Applicable: Microsoft Teams + You can specify the From Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmailFromDisplayName and -SendEmail. + + String + + String + + + None + + + SendEmailFromDisplayName + + > Applicable: Microsoft Teams + You can specify the Display Name to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmailFromAddress and -SendEmail. + + String + + String + + + None + + + SendEmailToAddress + + > Applicable: Microsoft Teams + You can specify the To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. + + String + + String + + + None + + + ServiceNumber + + > Applicable: Microsoft Teams + Specifies the default service number for the user. The default number is used in meeting invitations. The cmdlet will verify that the service number is assigned to the user's current conference bridge, or the one the user is being assigned to. + The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"`. You can find your tenant ID by running this command: `Get-CsTenant | Select-Object DisplayName, TenantID` + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + Specifies the domain name for the tenant or organization. + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TollFreeServiceNumber + + > Applicable: Microsoft Teams + Specifies a toll-free phone number to be used by the user. This number is then used in meeting invitations. The toll-free number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf parameter is not implemented for this cmdlet. + + + SwitchParameter + + + False + + + + + + AllowPSTNOnlyMeetings + + > Applicable: Microsoft Teams + If true, non-authenticated users can start meetings. If false, non-authenticated callers wait in the lobby until an authenticated user joins, thereby starting the meeting. An authenticated user is a user who joins the meeting using a Skype for Business client, or the organizer that joined the meeting via dial-in conferencing and was authenticated by a PIN number. The default is false. + + Boolean + + Boolean + + + None + + + AllowTollFreeDialIn + + > Applicable: Microsoft Teams + If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. This setting can ONLY be managed using the TeamsAudioConferencingPolicy. By default, AllowTollFreeDialin is always set to True. + + Boolean + + Boolean + + + None + + + AsJob + + The parameter is used to run commands as background jobs. + + SwitchParameter + + SwitchParameter + + + False + + + BridgeId + + > Applicable: Microsoft Teams + Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams + Specifies the name of the audio conferencing bridge. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + > Applicable: Microsoft Teams + Specifies the domain controller that's used by the cmdlet to read or write the specified data. Valid inputs for this parameter include: + Fully qualified domain name (FQDN): `-DomainController atl-cs-001.Contoso.com` + Computer name: `-DomainController atl-cs-001` + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be to be modified. A user identity can be specified by using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + ResetLeaderPin + + > Applicable: Microsoft Teams + Specifies whether to reset the meeting organizer or leaders PIN for meetings. + + SwitchParameter + + SwitchParameter + + + False + + + SendEmail + + > Applicable: Microsoft Teams + Send an email to the user containing their Audio Conference information. + + SwitchParameter + + SwitchParameter + + + False + + + SendEmailFromAddress + + > Applicable: Microsoft Teams + You can specify the From Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmailFromDisplayName and -SendEmail. + + String + + String + + + None + + + SendEmailFromDisplayName + + > Applicable: Microsoft Teams + You can specify the Display Name to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmailFromAddress and -SendEmail. + + String + + String + + + None + + + SendEmailToAddress + + > Applicable: Microsoft Teams + You can specify the To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. + + String + + String + + + None + + + ServiceNumber + + > Applicable: Microsoft Teams + Specifies the default service number for the user. The default number is used in meeting invitations. The cmdlet will verify that the service number is assigned to the user's current conference bridge, or the one the user is being assigned to. + The service number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + Specifies the globally unique identifier (GUID) of your Skype for Business Online tenant account. For example: `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"`. You can find your tenant ID by running this command: `Get-CsTenant | Select-Object DisplayName, TenantID` + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + Specifies the domain name for the tenant or organization. + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TollFreeServiceNumber + + > Applicable: Microsoft Teams + Specifies a toll-free phone number to be used by the user. This number is then used in meeting invitations. The toll-free number can be specified in the following formats: E.164 number, +<E.164 number> and tel:<E.164 number>. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf parameter is not implemented for this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineDialInConferencingUser -Identity "Ken Meyers" -ResetLeaderPin -ServiceNumber 14255037265 + + This example shows how to reset the meeting leader's PIN and set the audio conferencing provider default meeting phone number. + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineDialInConferencingUser -Identity "Ken Meyers" -BridgeName "Conference Bridge" + + This example sets a user's conference bridge assignment. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencinguser + + + Get-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy + + + New-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy + + + + + + Set-CsOnlineEnhancedEmergencyServiceDisclaimer + Set + CsOnlineEnhancedEmergencyServiceDisclaimer + + You can use Get-CsOnlineEnhancedEmergencyServiceDisclaimer to see the status of the emergency service disclaimer. + + + + When using Microsoft Teams PSTN Calling Services you need to record your organization's acceptance of the enhanced emergency service terms and conditions. This is done per country/region and it needs to be done before you can provide PSTN calling services to Microsoft Teams users in the country/region. + You can record your organization's acceptance using the Set-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet at any time. If you haven't accepted it for a given country/region you will be prompted to do so by warning information in the Teams PS Module, when you try to assign a phone number to a Microsoft Teams user, or in the Teams admin center, when you create an emergency address in a country/region. + Any tenant administrator can accept the terms and conditions and it only needs to be done once per country/region. + As the output the cmdlet will show the emergency service disclaimer and that it has been accepted. + You must run this cmdlet prior to assigning Microsoft Calling Plan phone numbers and locations to voice enabled users or accept the similar disclaimer in the Teams admin center. + Microsoft Calling Plan phone numbers are available in several countries/regions, see Country and region availability for Audio Conferencing and Calling Plans (https://learn.microsoft.com/MicrosoftTeams/country-and-region-availability-for-audio-conferencing-and-calling-plans/country-and-region-availability-for-audio-conferencing-and-calling-plans) + + + + Set-CsOnlineEnhancedEmergencyServiceDisclaimer + + Confirm + + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + CountryOrRegion + + Specifies the region or country whose terms and conditions you wish to accept. You need to use the ISO 31661-1 alpha-2 2 letter code for the country. For example for the United States it must be specified as "US" and for Denmark it must be specified as "DK". + + String + + String + + + None + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + ForceAccept + + This parameter is reserved for internal Microsoft use. + + + SwitchParameter + + + False + + + Tenant + + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + Version + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + CountryOrRegion + + Specifies the region or country whose terms and conditions you wish to accept. You need to use the ISO 31661-1 alpha-2 2 letter code for the country. For example for the United States it must be specified as "US" and for Denmark it must be specified as "DK". + + String + + String + + + None + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + ForceAccept + + This parameter is reserved for internal Microsoft use. + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + Version + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineEnhancedEmergencyServiceDisclaimer -CountryOrRegion US + + This example accepts the U.S. version of the enhanced emergency service terms and conditions. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineenhancedemergencyservicedisclaimer + + + Get-CsOnlineEnhancedEmergencyServiceDisclaimer + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineenhancedemergencyservicedisclaimer + + + + + + Set-CsOnlineLisCivicAddress + Set + CsOnlineLisCivicAddress + + Use the cmdlet to modify an existing civic address which has not been validated. + + + + Validated civic addresses cannot be modified. + > [!IMPORTANT] > Due to a current issue, the parameters -CompanyName and -CountryOrRegion are required as an interim workaround for this cmdlet. + Use the `Set-CsOnlineLisCivicAddress` cmdlet to modify limited fields of an existing civic address. + Editing address using this cmdlet is restricted to the following countries/regions: Australia, Brazil, Canada, Croatia, Czech Republic, Estonia, Hong Kong, Hungary, Israel, Japan, Latvia, Lithuania, Mexico, New Zealand, Poland, Puerto Rico, Romania, Singapore, South Korea, Slovenia, South Africa, United States. + If the user runs this cmdlet on one of the unsupported countries, it may interfere with number assignment and potentially is against regulatory requirements, so public use of the API is limited to the above countries/regions. + > [!NOTE] > This cmdlet is only available for public use with limited countries and certain fields. The remaining countries and fields are for Microsoft internal use only. + + + + Set-CsOnlineLisCivicAddress + + City + + > Applicable: Microsoft Teams + Specifies a new city for the civic address. Publicly editable. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams + Short form of the city name. This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address to be modified. + + Guid + + Guid + + + None + + + CompanyName + + > Applicable: Microsoft Teams + Specifies a new company name for the civic address. Publicly editable. + + String + + String + + + None + + + CompanyTaxId + + > Applicable: Microsoft Teams + Used to store TaxId for regulatory reasons. This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confidence + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies a new country or region for the civic address. For public use, restricted to the following countries: AU, BR, CA, HR, CZ, EE, HK, HU, IL, JP, LV, LT, MX, NZ, PL, PR, RO, SG, KR, SI, ZA, US + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies a new description for the civic address. Publicly editable. + + String + + String + + + None + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + HouseNumber + + > Applicable: Microsoft Teams + Specifies the new numeric portion of the civic address. Publicly editable. + + String + + String + + + None + + + HouseNumberSuffix + + > Applicable: Microsoft Teams + Specifies the new numeric suffix of the new civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + IsAzureMapValidationRequired + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator in the decimal degrees format. Publicly editable. + + String + + String + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, in the decimal degrees format. Publicly editable. + + String + + String + + + None + + + PostalCode + + > Applicable: Microsoft Teams + Specifies the new postal code of the civic address. Publicly editable. + + String + + String + + + None + + + PostDirectional + + > Applicable: Microsoft Teams + Specifies the new directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PreDirectional + + > Applicable: Microsoft Teams + Specifies the new directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + StateOrProvince + + > Applicable: Microsoft Teams + Specifies the new state or province of the civic address. Publicly editable. + + String + + String + + + None + + + StreetName + + > Applicable: Microsoft Teams + Specifies the new street name of the civic address. Publicly editable. + + String + + String + + + None + + + StreetSuffix + + > Applicable: Microsoft Teams + Specifies the new modifier of the street name of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + ValidationStatus + + > Applicable: Microsoft Teams + Microsoft internal use only + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + City + + > Applicable: Microsoft Teams + Specifies a new city for the civic address. Publicly editable. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams + Short form of the city name. This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address to be modified. + + Guid + + Guid + + + None + + + CompanyName + + > Applicable: Microsoft Teams + Specifies a new company name for the civic address. Publicly editable. + + String + + String + + + None + + + CompanyTaxId + + > Applicable: Microsoft Teams + Used to store TaxId for regulatory reasons. This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confidence + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies a new country or region for the civic address. For public use, restricted to the following countries: AU, BR, CA, HR, CZ, EE, HK, HU, IL, JP, LV, LT, MX, NZ, PL, PR, RO, SG, KR, SI, ZA, US + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies a new description for the civic address. Publicly editable. + + String + + String + + + None + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + HouseNumber + + > Applicable: Microsoft Teams + Specifies the new numeric portion of the civic address. Publicly editable. + + String + + String + + + None + + + HouseNumberSuffix + + > Applicable: Microsoft Teams + Specifies the new numeric suffix of the new civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + IsAzureMapValidationRequired + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator in the decimal degrees format. Publicly editable. + + String + + String + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, in the decimal degrees format. Publicly editable. + + String + + String + + + None + + + PostalCode + + > Applicable: Microsoft Teams + Specifies the new postal code of the civic address. Publicly editable. + + String + + String + + + None + + + PostDirectional + + > Applicable: Microsoft Teams + Specifies the new directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PreDirectional + + > Applicable: Microsoft Teams + Specifies the new directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + StateOrProvince + + > Applicable: Microsoft Teams + Specifies the new state or province of the civic address. Publicly editable. + + String + + String + + + None + + + StreetName + + > Applicable: Microsoft Teams + Specifies the new street name of the civic address. Publicly editable. + + String + + String + + + None + + + StreetSuffix + + > Applicable: Microsoft Teams + Specifies the new modifier of the street name of the new civic address. The street suffix will typically be something like street, avenue, way, or boulevard. + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + ValidationStatus + + > Applicable: Microsoft Teams + Microsoft internal use only + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineLisCivicAddress -CivicAddressId a363a9b8-1acd-41de-916a-296c7998a024 -Description "City Center" -CompanyName Contoso + + This example modifies the description and company name of the civic address with the identity a363a9b8-1acd-41de-916a-296c7998a024. + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineLisCivicAddress -CivicAddressId a363a9b8-1acd-41de-916a-296c7998a024 -Latitude 47.63952 -Longitude -122.12781 -ELIN MICROSOFT_ELIN + + This example modifies the latitude, longitude and ELIN name of the civic address with the identity a363a9b8-1acd-41de-916a-296c7998a024. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress + + + Get-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress + + + New-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress + + + Remove-CsOnlineLisCivicAddress + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress + + + + + + Set-CsOnlineLisLocation + Set + CsOnlineLisLocation + + Use the `Set-CsOnlineLisLocation` cmdlet to modify an existing emergency dispatch location. There can be multiple locations in a civic address. Typically the civic address designates the building, and locations are specific parts of that building such as a floor, office, or wing. + + + + + + + + Set-CsOnlineLisLocation + + City + + > Applicable: Microsoft Teams + Specifies the city of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address that contains the location to be modified. Civic address identities can be discovered by using the `Get-CsOnlineLisCivicAddress` cmdlet. Note: This parameter is not supported and will be deprecated. + + Guid + + Guid + + + None + + + CompanyName + + > Applicable: Microsoft Teams + Specifies the name of your organization. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + CompanyTaxId + + > Applicable: Microsoft Teams + The company tax ID. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Confidence + + > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. Note: You can set or change the ELIN, but you can't clear its value. If you need to clear the value, you should recreate the location. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + HouseNumber + + > Applicable: Microsoft Teams + Specifies the numeric portion of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + HouseNumberSuffix + + > Applicable: Microsoft Teams + Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + IsAzureMapValidationRequired + + > Applicable: Microsoft Teans + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + PostalCode + + > Applicable: Microsoft Teams + Specifies the postal code of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + PostDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + PreDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + StateOrProvince + + > Applicable: Microsoft Teams + Specifies the state or province of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + StreetName + + > Applicable: Microsoft Teams + Specifies the street name of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + StreetSuffix + + > Applicable: Microsoft Teans + Specifies a modifier of the street name of the civic address. The street suffix will typically be something like street, avenue, way, or boulevard. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + Set-CsOnlineLisLocation + + CityAlias + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + + String + + String + + + None + + + Confidence + + > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. Note: You can set or change the ELIN, but you can't clear its value. If you need to clear the value, you should recreate the location. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Location + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. + + Guid + + Guid + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + City + + > Applicable: Microsoft Teams + Specifies the city of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + CityAlias + + > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. + + String + + String + + + None + + + CivicAddressId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the civic address that contains the location to be modified. Civic address identities can be discovered by using the `Get-CsOnlineLisCivicAddress` cmdlet. Note: This parameter is not supported and will be deprecated. + + Guid + + Guid + + + None + + + CompanyName + + > Applicable: Microsoft Teams + Specifies the name of your organization. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + CompanyTaxId + + > Applicable: Microsoft Teams + The company tax ID. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Confidence + + > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + CountryOrRegion + + > Applicable: Microsoft Teams + Specifies the country or region of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Description + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Elin + + > Applicable: Microsoft Teams + Specifies the Emergency Location Identification Number. This is used in Direct Routing EGW scenarios. Note: You can set or change the ELIN, but you can't clear its value. If you need to clear the value, you should recreate the location. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + HouseNumber + + > Applicable: Microsoft Teams + Specifies the numeric portion of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + HouseNumberSuffix + + > Applicable: Microsoft Teams + Specifies the numeric suffix of the civic address. For example, if the property was multiplexed, the HouseNumberSuffix parameter would be the multiplex specifier: "425A Smith Avenue", or "425B Smith Avenue". Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + IsAzureMapValidationRequired + + > Applicable: Microsoft Teans + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Latitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place north or south of the earth's equator using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + Location + + > Applicable: Microsoft Teams + Specifies an administrator defined description of the new location. For example, "2nd Floor Cafe", "Main Lobby", or "Office 250". + + String + + String + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. + + Guid + + Guid + + + None + + + Longitude + + > Applicable: Microsoft Teams + Specifies the angular distance of a place east or west of the meridian at Greenwich, England, using the decimal degrees format. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + PostalCode + + > Applicable: Microsoft Teams + Specifies the postal code of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + PostDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the civic address which follows the street name. For example, "425 Smith Avenue NE". Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + PreDirectional + + > Applicable: Microsoft Teams + Specifies the directional attribute of the civic address which precedes the street name. For example, "425 NE Smith Avenue ". Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + StateOrProvince + + > Applicable: Microsoft Teams + Specifies the state or province of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + StreetName + + > Applicable: Microsoft Teams + Specifies the street name of the civic address. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + StreetSuffix + + > Applicable: Microsoft Teans + Specifies a modifier of the street name of the civic address. The street suffix will typically be something like street, avenue, way, or boulevard. Note: This parameter is not supported and will be deprecated. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineLisLocation -LocationId 5aa884e8-d548-4b8e-a289-52bfd5265a6e -Location "B5 2nd Floor" + + This example changes the location description of the location specified by its location identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation + + + New-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation + + + Get-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation + + + Remove-CsOnlineLisLocation + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation + + + + + + Set-CsOnlineLisPort + Set + CsOnlineLisPort + + Creates a Location Information Server (LIS) port, creates an association between a port and a location, or modifies an existing port and its associated location. The association between a port and location is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + + + + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet allows the administrator to map physical locations to the port through which the client is connected. + + + + Set-CsOnlineLisPort + + ChassisID + + > Applicable: Microsoft Teams + If ChassisID sub type is a MAC Address then this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise, (different sub type, such as Interface Name), then this value must be in a string format as set on the switch + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the port. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. + + Guid + + Guid + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PortID + + > Applicable: Microsoft Teams + If the PortID subtype is a MAC Address, this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise (different subtype, such as Interface Name), this value must be in a string format as set on the switch. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ChassisID + + > Applicable: Microsoft Teams + If ChassisID sub type is a MAC Address then this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise, (different sub type, such as Interface Name), then this value must be in a string format as set on the switch + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the port. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. + + Guid + + Guid + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + PortID + + > Applicable: Microsoft Teams + If the PortID subtype is a MAC Address, this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise (different subtype, such as Interface Name), this value must be in a string format as set on the switch. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Guid + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineLisPort -PortID 12174 -ChassisID 0B-23-CD-16-AA-CC -Description "LisPort 12174" -LocationId efd7273e-3092-4a56-8541-f5c896bb6fee + + Example 1 creates the association between port "12174" and LocationId "efd7273e-3092-4a56-8541-f5c896bb6fee". + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineLisPort -PortID 0A-25-55-AB-CD-FF -ChassisID 0B-23-CD-16-AA-CC -Description "LisPort 0A-25-55-AB-CD-FF" -LocationId efd7273e-3092-4a56-8541-f5c896bb6fee + + Example 2 creates the association between port "0A-25-55-AB-CD-FF" and LocationId "efd7273e-3092-4a56-8541-f5c896bb6fee". + + + + -------------------------- Example 3 -------------------------- + Set-CsOnlineLisPort -PortID 12174 -ChassisID 55123 -Description "LisPort 12174" -LocationId efd7273e-3092-4a56-8541-f5c896bb6fee + + Example 3 creates the association between port "12174" and LocationId "efd7273e-3092-4a56-8541-f5c896bb6fee". (Note: in this example, ChassisID sub-type is InterfaceName) + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport + + + Get-CsOnlineLisPort + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport + + + Remove-CsOnlineLisPort + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisport + + + + + + Set-CsOnlineLisSubnet + Set + CsOnlineLisSubnet + + Creates a Location Information Server (LIS) subnet, creates an association between a subnet and a location, or modifies an existing subnet and its associated location. The association between a subnet and location is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + + + + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet allows the administrator to map physical locations to the subnet through which the client is connected. + The location ID which is associating with the subnet is not required to be the existing location. + LIS subnets must be defined by the Network ID matching the subnet IP range assigned to clients. For example, the network ID for a client IP/mask of 10.10.10.150/25 is 10.10.10.128. For more information, see Understand TCP/IP addressing and subnetting basics (https://learn.microsoft.com/troubleshoot/windows-client/networking/tcpip-addressing-and-subnetting). + + + + Set-CsOnlineLisSubnet + + TenantId + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + Subnet + + > Applicable: Microsoft Teams + The IP address of the subnet. This value can be either IPv4 or IPv6 format. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the Location Information Service subnet. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. + + Guid + + Guid + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the Location Information Service subnet. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + LocationId + + > Applicable: Microsoft Teams + Specifies the unique identifier of the location to be modified. + + Guid + + Guid + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Subnet + + > Applicable: Microsoft Teams + The IP address of the subnet. This value can be either IPv4 or IPv6 format. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TenantId + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Guid + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineLisSubnet -Subnet 10.10.10.128 -LocationId f037a9ad-4334-455a-a1c5-3838ec0f5d02 -Description "Subnet 10.10.10.128" + + Example 1 creates the Location Information Service subnet "10.10.10.128" associated to Location ID "f037a9ad-4334-455a-a1c5-3838ec0f5d02". + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineLisSubnet -Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e -LocationId f037a9ad-4334-455a-a1c5-3838ec0f5d02 -Description "Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e" + + Example 2 creates the Location Information Service subnet in IPv6 format "2001:4898:e8:6c:90d2:28d4:76a4:ec5e" associated to Location ID "f037a9ad-4334-455a-a1c5-3838ec0f5d02". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelissubnet + + + + + + Set-CsOnlineLisSwitch + Set + CsOnlineLisSwitch + + Creates a Location Information Server (LIS) switch, creates an association between a switch and a location, or modifies an existing switch and its associated location. The association between a switch and location is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + + + + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet allows the administrator to map physical locations to the network switch through which the client is connected. + + + + Set-CsOnlineLisSwitch + + ChassisID + + > Applicable: Microsoft Teams + If ChassisID sub type is a MAC Address then this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise, (different sub type, such as Interface Name), then this value must be in a string format as set on the switch + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the switch. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + LocationId + + > Applicable: Microsoft Teams + The name for this location. + + Guid + + Guid + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + ChassisID + + > Applicable: Microsoft Teams + If ChassisID sub type is a MAC Address then this value must be in a string format in the following representation nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. Otherwise, (different sub type, such as Interface Name), then this value must be in a string format as set on the switch + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the switch. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + LocationId + + > Applicable: Microsoft Teams + The name for this location. + + Guid + + Guid + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Guid + + + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineLisSwitch -ChassisID B8-BE-BF-4A-A3-00 -Description "DKSwitch1" -LocationId 9905bca0-6fb0-11ec-84a4-25019013784a + + Example 1 creates a switch with Chassis ID "B8-BE-BF-4A-A3-00", and associates it with location ID 9905bca0-6fb0-11ec-84a4-25019013784a. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch + + + Get-CsOnlineLisSwitch + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch + + + Remove-CsOnlineLisSwitch + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisswitch + + + + + + Set-CsOnlineLisWirelessAccessPoint + Set + CsOnlineLisWirelessAccessPoint + + Creates a Location Information Server (LIS) wireless access point (WAP), creates an association between a WAP and a location, or modifies an existing WAP and its associated location. The association between a WAP and location is used in an Enhanced 9-1-1 (E9-1-1) Enterprise Voice implementation to notify an emergency services operator of the caller's location. + + + + Enhanced 9-1-1 allows an emergency operator to identify the location of a caller without having to ask the caller for that information. In the case where a caller is calling from a Voice over Internet Protocol (VoIP) connection, that information must be extracted based on various connection factors. The VoIP administrator must configure a location map (called a wiremap) that will determine a caller's location. This cmdlet allows the administrator to map physical locations to the WAP through which calls will be routed. + The BSSID (Basic Service Set Identifiers) is used to describe sections of a wireless local area network. It is the MAC of the 802.11 side of the access point. The BSSID parameter in this command also supports the wildcard format to cover all BSSIDs in a range which share the same description and Location ID. The wildcard '*' can be on either the last one or two character(s). + If a BSSID with wildcard format is already existing, the request for adding one more new BSSID which is within this wildcard range and with the same location ID will not be accepted. + + + + Set-CsOnlineLisWirelessAccessPoint + + BSSID + + > Applicable: Microsoft Teams + The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. If an entry with the specified BSSID value does not exist, a new WAP will be created. If an entry with the specified BSSID already exists, that entry will be replaced. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the WAP. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + LocationId + + > Applicable: Microsoft Teams + The name for this location. + + Guid + + Guid + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BSSID + + > Applicable: Microsoft Teams + The Basic Service Set Identifier (BSSID) of the wireless access point. This value must be in the form nn-nn-nn-nn-nn-nn, such as 12-34-56-78-90-ab. If an entry with the specified BSSID value does not exist, a new WAP will be created. If an entry with the specified BSSID already exists, that entry will be replaced. It can be presented in wildcard format. The wildcard '*' can be on either the last one or two character(s). + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Specifies the administrator defined description of the WAP. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + IsDebug + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + LocationId + + > Applicable: Microsoft Teams + The name for this location. + + Guid + + Guid + + + None + + + NCSApiUrl + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + TargetStore + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.Guid + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-23 -Description "USWAP1" -LocationId d7714269-ee52-4635-97b0-d7c228801d24 + + Example 1 creates the wireless access point with BSSID "F0-6E-0B-C2-03-23", associated with location ID d7714269-ee52-4635-97b0-d7c228801d24. + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-04-* -LocationId b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a -Description 'SEWAPs' + + Example 2 creates the wireless access point with Chassis ID "F0-6E-0B-C2-04- ", associated with location ID b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a. BSSID "F0-6E-0B-C2-04- " is in wildcard format which is equivalent to adding all BSSIDs with the same LocationID in the range "F0-6E-0B-C2-04-[0-9A-F][0-9A-F]". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliswirelessaccesspoint + + + Get-CsOnlineLisWirelessAccessPoint + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliswirelessaccesspoint + + + Remove-CsOnlineLisWirelessAccessPoint + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliswirelessaccesspoint + + + + + + Set-CsOnlinePSTNGateway + Set + CsOnlinePSTNGateway + + Modifies the previously defined Session Border Controller (SBC) Configuration that describes the settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing. + + + + Use this cmdlet to modify the configuration of the previously created Session Border Controller (SBC) configuration. Each configuration contains specific settings for an SBC. These settings configure such entities as SIP signaling port, whether media bypass is enabled on this SBC, will the SBC send SIP options, specify the limit of maximum concurrent sessions, The cmdlet also let drain the SBC by setting parameter -Enabled to true or false state. When the Enabled parameter set to $false, the SBC will continue existing calls, but all new calls routed to another SBC in a route (if exists). + + + + Set-CsOnlinePSTNGateway + + Identity + + > Applicable: Microsoft Teams + The parameter is mandatory when modifying an existing SBC. + + String + + String + + + None + + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Free-format string to describe the gateway. + + String + + String + + + None + + + Enabled + + > Applicable: Microsoft Teams + Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). + + Boolean + + Boolean + + + $false + + + FailoverResponseCodes + + > Applicable: Microsoft Teams + If Direct Routing receives any 4xx or 6xx SIP error code in response on outgoing Invite (outgoing means call from a Teams client to PSTN with traffic flow :Teams Client -> Direct Routing -> SBC -> Telephony network) the call is considered completed by default. Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Please find more in "Reference" section of "Phone System Direct Routing" documentation + Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. + + String + + String + + + 408, 503, 504 + + + FailoverTimeSeconds + + > Applicable: Microsoft Teams + When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. + + Int32 + + Int32 + + + 10 + + + ForwardCallHistory + + > Applicable: Microsoft Teams + Indicates whether call history information will be forwarded through the trunk. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + ForwardPai + + > Applicable: Microsoft Teams + Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. + + Boolean + + Boolean + + + $false + + + GatewayLbrEnabledUserOverride + + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + + Boolean + + Boolean + + + $false + + + GatewaySiteId + + > Applicable: Microsoft Teams + PSTN Gateway Site Id. + + String + + String + + + None + + + GatewaySiteLbrEnabled + + > Applicable: Microsoft Teams + Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is turned on, the SBC will report the site name as defined by tenant administrator. On incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + InboundPSTNNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + + Object + + Object + + + None + + + InboundTeamsNumberTranslationRules + + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + + Object + + Object + + + None + + + IPAddressVersion + + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. + + String + + String + + + None + + + MaxConcurrentSessions + + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent session is 90% or higher than this value. If this parameter is not set, the alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + + System.Int32 + + System.Int32 + + + None + + + MediaBypass + + > Applicable: Microsoft Teams + Parameter indicated of the SBC supports Media Bypass and the administrator wants to use it for this SBC. + + Boolean + + Boolean + + + $false + + + MediaRelayRoutingLocationOverride + + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + + String + + String + + + $false + + + OutboundPSTNNumberTranslationRules + + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. + + Object + + Object + + + None + + + OutboundTeamsNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. + + Object + + Object + + + None + + + PidfloSupported + + > Applicable: Microsoft Teams + Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. + + Boolean + + Boolean + + + $false + + + ProxySbc + + > Applicable: Microsoft Teams + The FQDN of the proxy SBC. Used in Local Media Optimization configurations. + + String + + String + + + None + + + SendSipOptions + + > Applicable: Microsoft Teams + Defines if an SBC will or will not send the SIP options. If disabled, the SBC will be excluded from Monitoring and Alerting system. We highly recommend that you enable SIP options. Default value is True. + + Boolean + + Boolean + + + $true + + + SipSignalingPort + + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. The value must be between 1 and 65535. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BypassMode + + Possible values are "None", "Always" and "OnlyForLocalUsers". By setting "Always" mode you indicate that your network is fully routable. If a user usually in site "Seattle", travels to site "Tallinn" and tries to use SBC located in Seattle we will try to deliver the traffic to Seattle assuming that there is connection between Tallinn and Seattle offices. With "OnlyForLocaUsers" you indicate that there is no direct connection between sites. In example above, the traffic will not be send directly from Tallinn to Seattle. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + Free-format string to describe the gateway. + + String + + String + + + None + + + Enabled + + > Applicable: Microsoft Teams + Used to enable this SBC for outbound calls. Can be used to temporarily remove the SBC from service while it is being updated or during maintenance. Note if the parameter is not set the SBC will be created as disabled (default value -Enabled $false). + + Boolean + + Boolean + + + $false + + + FailoverResponseCodes + + > Applicable: Microsoft Teams + If Direct Routing receives any 4xx or 6xx SIP error code in response on outgoing Invite (outgoing means call from a Teams client to PSTN with traffic flow :Teams Client -> Direct Routing -> SBC -> Telephony network) the call is considered completed by default. Setting the SIP codes in this parameter forces Direct Routing on receiving the specified codes try another SBC (if another SBC exists in the voice routing policy of the user). Please find more in "Reference" section of "Phone System Direct Routing" documentation + Setting this parameter overwrites the default values, so if you want to include the default values, please add them to string. + + String + + String + + + 408, 503, 504 + + + FailoverTimeSeconds + + > Applicable: Microsoft Teams + When set to 10 (default value), outbound calls that are not answered by the gateway within 10 seconds are routed to the next available trunk; if there are no additional trunks, then the call is automatically dropped. In an organization with slow networks and slow gateway responses, that could potentially result in calls being dropped unnecessarily. The default value is 10. + + Int32 + + Int32 + + + 10 + + + ForwardCallHistory + + > Applicable: Microsoft Teams + Indicates whether call history information will be forwarded through the trunk. If enabled, the Office 365 PSTN Proxy sends two headers: History-info and Referred-By. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + ForwardPai + + > Applicable: Microsoft Teams + Indicates whether the P-Asserted-Identity (PAI) header will be forwarded along with the call. The PAI header provides a way to verify the identity of the caller. The default value is False ($False). Setting this parameter to $true will render the from header anonymous, in accordance of RFC5379 and RFC3325. + + Boolean + + Boolean + + + $false + + + GatewayLbrEnabledUserOverride + + > Applicable: Microsoft Teams + Allows an LBR enabled user working from a network site outside the corporate network or a network site on the corporate network not configured using a tenant network site to make outbound PSTN calls or receive inbound PSTN calls via an LBR enabled gateway. The default value is False. + + Boolean + + Boolean + + + $false + + + GatewaySiteId + + > Applicable: Microsoft Teams + PSTN Gateway Site Id. + + String + + String + + + None + + + GatewaySiteLbrEnabled + + > Applicable: Microsoft Teams + Used to enable this SBC to report assigned site location. Site location is used for Location Based Routing. When this parameter is turned on, the SBC will report the site name as defined by tenant administrator. On incoming call to a Teams user the value of the site assigned to the SBC is compared with the value of the site assigned to the user to make a routing decision. The parameter is mandatory for enabling Location Based Routing feature. The default value is False ($False). + + Boolean + + Boolean + + + $false + + + Identity + + > Applicable: Microsoft Teams + The parameter is mandatory when modifying an existing SBC. + + String + + String + + + None + + + InboundPSTNNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. + + Object + + Object + + + None + + + InboundTeamsNumberTranslationRules + + This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. + + Object + + Object + + + None + + + IPAddressVersion + + Possible values are "IPv4" and '"Pv6". When "IPv6" is set, the SBC must use IPv6 for both signaling and media. Note: IPv6 is supported only for non-media bypass scenarios. + + String + + String + + + None + + + MaxConcurrentSessions + + > Applicable: Microsoft Teams + Used by the alerting system. When any value is set, the alerting system will generate an alert to the tenant administrator when the number of concurrent session is 90% or higher than this value. If this parameter is not set, the alerts are not generated. However, the monitoring system will report the number of concurrent sessions every 24 hours. + + System.Int32 + + System.Int32 + + + None + + + MediaBypass + + > Applicable: Microsoft Teams + Parameter indicated of the SBC supports Media Bypass and the administrator wants to use it for this SBC. + + Boolean + + Boolean + + + $false + + + MediaRelayRoutingLocationOverride + + > Applicable: Microsoft Teams + Allows selecting path for media manually. Direct Routing assigns a datacenter for media path based on the public IP of the SBC. We always select closest to the SBC datacenter. However, in some cases a public IP from for example a US range can be assigned to an SBC located in Europe. In this case we will be using not optimal media path. We only recommend setting this parameter if the call logs clearly indicate that automatic assignment of the datacenter for media path does not assign the closest to the SBC datacenter. + + String + + String + + + $false + + + OutboundPSTNNumberTranslationRules + + Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. + + Object + + Object + + + None + + + OutboundTeamsNumberTranslationRules + + Creates an ordered list of Teams translation rules, that apply to Teams Number on outbound direction. + + Object + + Object + + + None + + + PidfloSupported + + > Applicable: Microsoft Teams + Enables PIDF-LO support on the PSTN Gateway. If turned on the .xml body payload is sent to the SBC with the location details of the user. + + Boolean + + Boolean + + + $false + + + ProxySbc + + > Applicable: Microsoft Teams + The FQDN of the proxy SBC. Used in Local Media Optimization configurations. + + String + + String + + + None + + + SendSipOptions + + > Applicable: Microsoft Teams + Defines if an SBC will or will not send the SIP options. If disabled, the SBC will be excluded from Monitoring and Alerting system. We highly recommend that you enable SIP options. Default value is True. + + Boolean + + Boolean + + + $true + + + SipSignalingPort + + > Applicable: Microsoft Teams + Listening port used for communicating with Direct Routing services by using the Transport Layer Security (TLS) protocol. The value must be between 1 and 65535. + + Int32 + + Int32 + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsOnlinePSTNGateway -Identity sbc.contoso.com -Enabled $true + + This example enables previously created SBC with Identity (and FQDN) sbc.contoso.com. All others parameters will stay default. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsOnlinePSTNGateway -Identity sbc.contoso.com -SIPSignalingPort 5064 -ForwardPAI $true -Enabled $true + + This example modifies the configuration of an SBC with identity (and FQDN) sbc.contoso.com. It changes the SIPSignalingPort to 5064 and enabled P-Asserted-Identity field on outbound connections (outbound from Direct Routing to SBC). For each outbound to SBC session, the Direct Routing interface will report in P-Asserted-Identity fields the TEL URI and SIP address of the user who made a call. This is useful when a tenant administrator set identity of the caller as "Anonymous" or a general number of the company, but for the billing purposes the real identity of the user should be reported. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway + + + New-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway + + + Get-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway + + + Remove-CsOnlinePSTNGateway + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway + + + + + + Set-CsOnlinePstnUsage + Set + CsOnlinePstnUsage + + Modifies a set of strings that identify the allowed online public switched telephone network (PSTN) usages. This cmdlet can be used to add usages to the list of online PSTN usages or remove usages from the list. + + + + Online PSTN usages are string values that are used for call authorization. An online PSTN usage links an online voice policy to a route. The `Set-CsOnlinePstnUsage` cmdlet is used to add or remove phone usages to or from the usage list. This list is global so it can be used by policies and routes throughout the tenant. + This cmdlet is used when configuring Microsoft Phone System Direct Routing. + + + + Set-CsOnlinePstnUsage + + Identity + + The scope at which these settings are applied. The Identity for this cmdlet is always Global. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Usage + + Contains a list of allowable usage strings. These entries can be any string value. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The scope at which these settings are applied. The Identity for this cmdlet is always Global. + + String + + String + + + None + + + Usage + + Contains a list of allowable usage strings. These entries can be any string value. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsOnlinePstnUsage -Identity global -Usage @{add="International"} + + This command adds the string "International" to the current list of available PSTN usages. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsOnlinePstnUsage -Identity global -Usage @{remove="Local"} + + This command removes the string "Local" from the list of available PSTN usages. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-CsOnlinePstnUsage -Usage @{remove="Local"} + + The command in this example performs the exact same action as the command in Example 2: it removes the "Local" PSTN usage. This example shows the command without the Identity parameter specified. The only Identity available to the Set-CsOnlinePstnUsage cmdlet is the Global identity; omitting the Identity parameter defaults to Global. + + + + -------------------------- Example 4 -------------------------- + PS C:\> Set-CsOnlinePstnUsage -Usage @{replace="International","Restricted"} + + This command replaces everything in the usage list with the values International and Restricted. All previously existing usages are removed. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstnusage + + + Get-CsOnlinePstnUsage + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstnusage + + + + + + Set-CsOnlineSchedule + Set + CsOnlineSchedule + + Use the Set-CsOnlineSchedule cmdlet to update a schedule. + + + + The Set-CsOnlineSchedule cmdlet lets you modify the properties of a schedule. + + + + Set-CsOnlineSchedule + + Instance + + > Applicable: Microsoft Teams + The Instance parameter is the object reference to the schedule to be modified. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Instance + + > Applicable: Microsoft Teams + The Instance parameter is the object reference to the schedule to be modified. + + Object + + Object + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Microsoft.Rtc.Management.Hosted.Online.Models.Schedule + + + The modified instance of the `Microsoft.Rtc.Management.Hosted.Online.Models.Schedule` object. + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $schedule = Get-CsOnlineSchedule -Id "fa9081d6-b4f3-5c96-baec-0b00077709e5" +$schedule.Name = "Christmas Holiday" +Set-CsOnlineSchedule -Instance $schedule + + This example modifies the name of the schedule that has a Id of fa9081d6-b4f3-5c96-baec-0b00077709e5. + + + + -------------------------- Example 2 -------------------------- + $schedule = Get-CsOnlineSchedule -Id "fa9081d6-b4f3-5c96-baec-0b00077709e5" + +$schedule + + Id : 5d3e0315-533b-473d-8524-36c954d1fc93 + Name : Thanksgiving + Type : Fixed + WeeklyRecurrentSchedule : + FixedSchedule : 22/11/2018 00:00 - 23/11/2018 00:00, 28/11/2019 00:00 - 29/11/2019 00:00, 26/11/2020 00:00 - 27/11/2020 00:00 + +# Add a new Date Time Range +$schedule.FixedSchedule.DateTimeRanges += New-CsOnlineDateTimeRange -Start "25/11/2021" -End "26/11/2021" + +Set-CsOnlineSchedule -Instance $schedule + + This example updates an existing holiday schedule, adding a new date/time range to it. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineschedule + + + New-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule + + + Remove-CsOnlineSchedule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineschedule + + + + + + Set-CsOnlineVoiceApplicationInstance + Set + CsOnlineVoiceApplicationInstance + + The cmdlet modifies an application instance in Microsoft Entra ID. + + + + This cmdlet is used to modify an application instance in Microsoft Entra ID. Note : This cmdlet has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. + + + + Set-CsOnlineVoiceApplicationInstance + + Identity + + The user principal name (UPN) of the resource account in Microsoft Entra ID. + + Object + + Object + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Object + + Object + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + TelephoneNumber + + The phone number to be assigned to the resource account. + + Object + + Object + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + This parameter is reserved for internal Microsoft use. + + Object + + Object + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The user principal name (UPN) of the resource account in Microsoft Entra ID. + + Object + + Object + + + None + + + TelephoneNumber + + The phone number to be assigned to the resource account. + + Object + + Object + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineVoiceApplicationInstance -Identity testra1@contoso.com -TelephoneNumber +14255550100 + + This example sets a phone number to the resource account testra1@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceapplicationinstance + + + New-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance + + + + + + Set-CsOnlineVoicemailUserSettings + Set + CsOnlineVoicemailUserSettings + + Use the Set-CsOnlineVoicemailUserSettings cmdlet to modify the online voicemail user settings of a specific user. New online voicemail user settings of the user would be returned after executing. + + + + The Set-CsOnlineVoicemailUserSettings cmdlet lets tenant admin modify the online voicemail user settings of a specific user in the organization. New online voicemail user settings of the user would be returned after executing. For example, tenant admin could enable/disable voicemail, change voicemail prompt language, modify out-of-office voicemail greeting settings, or setup simple call answer rules. Only those properties that tenant admin have actually provided with be modified. If an online voicemail user setting was not set by tenant admin, it would remain the old value after this cmdlet has been executed. + + + + Set-CsOnlineVoicemailUserSettings + + CallAnswerRule + + > Applicable: Microsoft Teams + The CallAnswerRule parameter represents the value of the call answer rule, which can be any of the following: + - DeclineCall + - PromptOnly + - PromptOnlyWithTransfer + - RegularVoicemail + - VoicemailWithTransferOption + + Object + + Object + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + DefaultGreetingPromptOverwrite + + > Applicable: Microsoft Teams + The DefaultGreetingPromptOverwrite parameter represents the contents that overwrite the default normal greeting prompt. If the user's normal custom greeting is not set and DefaultGreetingPromptOverwrite is not empty, the voicemail service will play this overwrite greeting instead of the default normal greeting in the voicemail deposit scenario. + + System.String + + System.String + + + None + + + DefaultOofGreetingPromptOverwrite + + > Applicable: Microsoft Teams + The DefaultOofGreetingPromptOverwrite parameter represents the contents that overwrite the default out-of-office greeting prompt. If the user's out-of-office custom greeting is not set and DefaultOofGreetingPromptOverwrite is not empty, the voicemail service will play this overwrite greeting instead of the default out-of-office greeting in the voicemail deposit scenario. + + System.String + + System.String + + + None + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + + System.String + + System.String + + + None + + + OofGreetingEnabled + + > Applicable: Microsoft Teams + The OofGreetingEnabled parameter represents whether to play out-of-office greeting in voicemail deposit scenario. + + System.Boolean + + System.Boolean + + + None + + + OofGreetingFollowAutomaticRepliesEnabled + + > Applicable: Microsoft Teams + The OofGreetingFollowAutomaticRepliesEnabled parameter represents whether to play out-of-office greeting in voicemail deposit scenario when user set automatic replies in Outlook. + + System.Boolean + + System.Boolean + + + None + + + PromptLanguage + + > Applicable: Microsoft Teams + The PromptLanguage parameter represents the language that is used to play voicemail prompts. + The following languages are supported: + - "ar-EG" (Arabic - Egypt) + - "ar-SA" (Arabic - Saudi Arabia) + - "bg-BG" (Bulgarian - Bulgaria) + - "ca-ES" (Catalan - Catalan) + - "cy-GB" (Welsh - United Kingdom) + - "cs-CZ" (Czech - Czech Republic) + - "da-DK" (Danish - Denmark) + - "de-AT" (German - Austria) + - "de-CH" (German - Switzerland) + - "de-DE" (German - Germany) + - "el-GR" (Greek - Greece) + - "en-AU" (English - Australia) + - "en-CA" (English - Canada) + - "en-GB" (English - United Kingdom) + - "en-IE" (English - Ireland) + - "en-IN" (English - India) + - "en-PH" (English - Philippines) + - "en-US" (English - United States) + - "en-ZA" (English - South Africa) + - "es-ES" (Spanish - Spain) + - "es-MX" (Spanish - Mexico) + - "et-EE" (Estonian - Estonia) + - "fi-FI" (Finnish - Finland) + - "fr-BE" (French - Belgium) + - "fr-CA" (French - Canada) + - "fr-CH" (French - Switzerland) + - "fr-FR" (French - France) + - "he-IL" (Hebrew - Israel) + - "hi-IN" (Hindi - India) + - "hr-HR" (Croatian - Croatia) + - "hu-HU" (Hungarian - Hungary) + - "id-ID" (Indonesian - Indonesia) + - "it-IT" (Italian - Italy) + - "ja-JP" (Japanese - Japan) + - "ko-KR" (Korean - Korea) + - "lt-LT" (Lithuanian - Lithuania) + - "lv-LV" (Latvian - Latvia) + - "nl-BE" (Dutch - Belgium) + - "nl-NL" (Dutch - Netherlands) + - "nb-NO" (Norwegian, Bokmål - Norway) + - "pl-PL" (Polish - Poland) + - "pt-BR" (Portuguese - Brazil) + - "pt-PT" (Portuguese - Portugal) + - "ro-RO" (Romanian - Romania) + - "ru-RU" (Russian - Russia) + - "sk-SK" (Slovak - Slovakia) + - "sl-SI" (Slovenian - Slovenia) + - "sv-SE" (Swedish - Sweden) + - "th-TH" (Thai - Thailand) + - "tr-TR" (Turkish - Turkey) + - "vi-VN" (Vietnamese - Viet Nam) + - "zh-CN" (Chinese - Simplified, PRC) + - "zh-TW" (Chinese - Traditional, Taiwan) + - "zh-HK" (Chinese - Traditional, Hong Kong S.A.R.) + + System.String + + System.String + + + None + + + ShareData + + > Applicable: Microsoft Teams + Specifies whether voicemail and transcription data is shared with the service for training and improving accuracy. + + System.Boolean + + System.Boolean + + + None + + + TransferTarget + + > Applicable: Microsoft Teams + The TransferTarget parameter represents the target to transfer the call when call answer rule set to PromptOnlyWithTransfer or VoicemailWithTransferOption. Value of this parameter should be a SIP URI of another user in your organization. For user with Enterprise Voice enabled, a valid telephone number could also be accepted as TransferTarget. + + System.String + + System.String + + + None + + + VoicemailEnabled + + > Applicable: Microsoft Teams + The VoicemailEnabled parameter represents whether to enable voicemail service. If set to $false, the user has no voicemail service. + + System.Boolean + + System.Boolean + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + CallAnswerRule + + > Applicable: Microsoft Teams + The CallAnswerRule parameter represents the value of the call answer rule, which can be any of the following: + - DeclineCall + - PromptOnly + - PromptOnlyWithTransfer + - RegularVoicemail + - VoicemailWithTransferOption + + Object + + Object + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + DefaultGreetingPromptOverwrite + + > Applicable: Microsoft Teams + The DefaultGreetingPromptOverwrite parameter represents the contents that overwrite the default normal greeting prompt. If the user's normal custom greeting is not set and DefaultGreetingPromptOverwrite is not empty, the voicemail service will play this overwrite greeting instead of the default normal greeting in the voicemail deposit scenario. + + System.String + + System.String + + + None + + + DefaultOofGreetingPromptOverwrite + + > Applicable: Microsoft Teams + The DefaultOofGreetingPromptOverwrite parameter represents the contents that overwrite the default out-of-office greeting prompt. If the user's out-of-office custom greeting is not set and DefaultOofGreetingPromptOverwrite is not empty, the voicemail service will play this overwrite greeting instead of the default out-of-office greeting in the voicemail deposit scenario. + + System.String + + System.String + + + None + + + Force + + Specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter represents the ID of the specific user in your organization; this can be either a SIP URI or an Object ID. + + System.String + + System.String + + + None + + + OofGreetingEnabled + + > Applicable: Microsoft Teams + The OofGreetingEnabled parameter represents whether to play out-of-office greeting in voicemail deposit scenario. + + System.Boolean + + System.Boolean + + + None + + + OofGreetingFollowAutomaticRepliesEnabled + + > Applicable: Microsoft Teams + The OofGreetingFollowAutomaticRepliesEnabled parameter represents whether to play out-of-office greeting in voicemail deposit scenario when user set automatic replies in Outlook. + + System.Boolean + + System.Boolean + + + None + + + PromptLanguage + + > Applicable: Microsoft Teams + The PromptLanguage parameter represents the language that is used to play voicemail prompts. + The following languages are supported: + - "ar-EG" (Arabic - Egypt) + - "ar-SA" (Arabic - Saudi Arabia) + - "bg-BG" (Bulgarian - Bulgaria) + - "ca-ES" (Catalan - Catalan) + - "cy-GB" (Welsh - United Kingdom) + - "cs-CZ" (Czech - Czech Republic) + - "da-DK" (Danish - Denmark) + - "de-AT" (German - Austria) + - "de-CH" (German - Switzerland) + - "de-DE" (German - Germany) + - "el-GR" (Greek - Greece) + - "en-AU" (English - Australia) + - "en-CA" (English - Canada) + - "en-GB" (English - United Kingdom) + - "en-IE" (English - Ireland) + - "en-IN" (English - India) + - "en-PH" (English - Philippines) + - "en-US" (English - United States) + - "en-ZA" (English - South Africa) + - "es-ES" (Spanish - Spain) + - "es-MX" (Spanish - Mexico) + - "et-EE" (Estonian - Estonia) + - "fi-FI" (Finnish - Finland) + - "fr-BE" (French - Belgium) + - "fr-CA" (French - Canada) + - "fr-CH" (French - Switzerland) + - "fr-FR" (French - France) + - "he-IL" (Hebrew - Israel) + - "hi-IN" (Hindi - India) + - "hr-HR" (Croatian - Croatia) + - "hu-HU" (Hungarian - Hungary) + - "id-ID" (Indonesian - Indonesia) + - "it-IT" (Italian - Italy) + - "ja-JP" (Japanese - Japan) + - "ko-KR" (Korean - Korea) + - "lt-LT" (Lithuanian - Lithuania) + - "lv-LV" (Latvian - Latvia) + - "nl-BE" (Dutch - Belgium) + - "nl-NL" (Dutch - Netherlands) + - "nb-NO" (Norwegian, Bokmål - Norway) + - "pl-PL" (Polish - Poland) + - "pt-BR" (Portuguese - Brazil) + - "pt-PT" (Portuguese - Portugal) + - "ro-RO" (Romanian - Romania) + - "ru-RU" (Russian - Russia) + - "sk-SK" (Slovak - Slovakia) + - "sl-SI" (Slovenian - Slovenia) + - "sv-SE" (Swedish - Sweden) + - "th-TH" (Thai - Thailand) + - "tr-TR" (Turkish - Turkey) + - "vi-VN" (Vietnamese - Viet Nam) + - "zh-CN" (Chinese - Simplified, PRC) + - "zh-TW" (Chinese - Traditional, Taiwan) + - "zh-HK" (Chinese - Traditional, Hong Kong S.A.R.) + + System.String + + System.String + + + None + + + ShareData + + > Applicable: Microsoft Teams + Specifies whether voicemail and transcription data is shared with the service for training and improving accuracy. + + System.Boolean + + System.Boolean + + + None + + + TransferTarget + + > Applicable: Microsoft Teams + The TransferTarget parameter represents the target to transfer the call when call answer rule set to PromptOnlyWithTransfer or VoicemailWithTransferOption. Value of this parameter should be a SIP URI of another user in your organization. For user with Enterprise Voice enabled, a valid telephone number could also be accepted as TransferTarget. + + System.String + + System.String + + + None + + + VoicemailEnabled + + > Applicable: Microsoft Teams + The VoicemailEnabled parameter represents whether to enable voicemail service. If set to $false, the user has no voicemail service. + + System.Boolean + + System.Boolean + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.Hosted.Voicemail.Models.VoicemailUserSettings + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineVoicemailUserSettings -Identity sip:user1@contoso.com -VoicemailEnabled $true + + This example changes VoicemailEnabled setting to true for the user with SIP URI sip:user1@contoso.com. + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineVoicemailUserSettings -Identity user2@contoso.com -PromptLanguage "en-US" -OofGreetingFollowCalendarEnabled $false + + This example changes PromptLanguage setting to "en-US" and OofGreetingFollowCalendarEnabled setting to false for user2@contoso.com. + + + + -------------------------- Example 3 -------------------------- + Set-CsOnlineVoicemailUserSettings -Identity user3@contoso.com -CallAnswerRule PromptOnlyWithTransfer -TransferTarget sip:user4@contoso.com + + This example changes CallAnswerRule setting to PromptOnlyWithTransfer and set TransferTarget to "sip:user4@contoso.com" for user3@contoso.com. + + + + -------------------------- Example 4 -------------------------- + Set-CsOnlineVoicemailUserSettings -Identity user5@contoso.com -CallAnswerRule VoicemailWithTransferOption -TransferTarget "+14255551234" + + This example changes CallAnswerRule setting to VoicemailWithTransferOption and set TransferTarget to "+14255551234" for user5@contoso.com.. + + + + -------------------------- Example 5 -------------------------- + Set-CsOnlineVoicemailUserSettings -Identity user6@contoso.com -DefaultGreetingPromptOverwrite "Hi, I am currently not available." + + This example changes DefaultGreetingPromptOverwrite setting to "Hi, I am currently not available." for user6@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings + + + Get-CsOnlineVoicemailUserSettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailusersettings + + + + + + Set-CsOnlineVoiceRoute + Set + CsOnlineVoiceRoute + + Modifies an online voice route. Online voice routes contain instructions that tell Microsoft Teams how to route calls from Microsoft or Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). + + + + Use this cmdlet to modify an existing online voice route. Online voice routes are associated with online voice policies through online public switched telephone network (PSTN) usages. A online voice route includes a regular expression that identifies which phone numbers will be routed through a given voice route: phone numbers matching the regular expression will be routed through this route. + This cmdlet is used when configuring Microsoft Phone System Direct Routing. + + + + Set-CsOnlineVoiceRoute + + Identity + + The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must enclose the full string in parentheses.) + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + BridgeSourcePhoneNumber + + BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. + When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. + For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A description of what this phone route is for. + + String + + String + + + None + + + NumberPattern + + A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. For example, the default number pattern, [0-9]{10}, specifies a 10-digit number containing any digits 0 through 9. + + String + + String + + + None + + + OnlinePstnGatewayList + + This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. + By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + Priority + + A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BridgeSourcePhoneNumber + + BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. + When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. + For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + A description of what this phone route is for. + + String + + String + + + None + + + Identity + + The unique identity of the online voice route. (If the route name contains a space, such as Test Route, you must enclose the full string in parentheses.) + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + NumberPattern + + A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. For example, the default number pattern, [0-9]{10}, specifies a 10-digit number containing any digits 0 through 9. + + String + + String + + + None + + + OnlinePstnGatewayList + + This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. + By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). + By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. + + PSListModifier + + PSListModifier + + + None + + + Priority + + A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. + + Int32 + + Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -Description "Test Route" + + This command sets the Description of the Route1 online voice route to "Test Route." + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add="Long Distance"} + + The command in this example modifies the online voice route with the identity Route1 to add the online PSTN usage Long Distance to the list of usages for this voice route. Long Distance must be in the list of global online PSTN usages (which can be retrieved with a call to the `Get-CsOnlinePstnUsage` cmdlet). + + + + -------------------------- Example 3 -------------------------- + PS C:\> $x = (Get-CsOnlinePstnUsage).Usage + +PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$x} + + This example modifies the online voice route named Route1 to populate that route's list of online PSTN usages with all the existing usages for the organization. The first command in this example retrieves the list of global online PSTN usages. Notice that the call to the `Get-CsOnlinePstnUsage` cmdlet is in parentheses; this means that we first retrieve an object containing PSTN usage information. (Because there is only one--global--PSTN usage, only one object will be retrieved.) The command then retrieves the Usage property of this object. That property, which contains a list of online PSTN usages, is assigned to the variable $x. In the second line of this example, the Set-CsOnlineVoiceRoute cmdlet is called to modify the online voice route with the identity Route1. Notice the value passed to the OnlinePstnUsages parameter: @{replace=$x}. This value says to replace everything in the OnlinePstnUsages list for this route with the contents of $x, which contain the online PSTN usages list retrieved in line 1. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute + + + Get-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute + + + New-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute + + + Remove-CsOnlineVoiceRoute + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute + + + + + + Set-CsOnlineVoiceRoutingPolicy + Set + CsOnlineVoiceRoutingPolicy + + Modifies an existing online voice routing policy. Online voice routing policies manage online PSTN usages for Phone System users. + + + + Online voice routing policies are used in Microsoft Phone System Direct Routing scenarios. Assigning your Teams users an online voice routing policy enables those users to receive and to place phone calls to the public switched telephone network by using your on-premises SIP trunks. + Note that simply assigning a user an online voice routing policy will not enable them to make PSTN calls via Teams. Among other things, you will also need to enable those users for Phone System and will need to assign them an appropriate online voice policy. + + + + Set-CsOnlineVoiceRoutingPolicy + + Identity + + Unique identifier assigned to the policy when it was created. Online voice routing policies can be assigned at the global scope or the per-user scope. To refer to the global instance, use this syntax: + -Identity global + To refer to a per-user policy, use syntax similar to this: + -Identity "RedmondOnlineVoiceRoutingPolicy" + If you do not specify an Identity, then the `Set-CsOnlineVoiceRoutingPolicy` cmdlet will modify the global policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy. The online PSTN usage must be an existing usage. (PSTN usages can be retrieved by calling the `Get-CsOnlinePstnUsage` cmdlet.) + + Object + + Object + + + None + + + RouteType + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the policy when it was created. Online voice routing policies can be assigned at the global scope or the per-user scope. To refer to the global instance, use this syntax: + -Identity global + To refer to a per-user policy, use syntax similar to this: + -Identity "RedmondOnlineVoiceRoutingPolicy" + If you do not specify an Identity, then the `Set-CsOnlineVoiceRoutingPolicy` cmdlet will modify the global policy. + + String + + String + + + None + + + OnlinePstnUsages + + A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy. The online PSTN usage must be an existing usage. (PSTN usages can be retrieved by calling the `Get-CsOnlinePstnUsage` cmdlet.) + + Object + + Object + + + None + + + RouteType + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages @{Add="Long Distance"} + + The command shown in Example 1 adds the online PSTN usage "Long Distance" to the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages @{Remove="Local"} + + In Example 2, the online PSTN usage "Local" is removed from the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Local"} | Set-CsOnlineVoiceRoutingPolicy -OnlinePstnUsages @{Remove="Local"} + + Example 3 removes the online PSTN usage "Local" from all the online voice routing policies that include that usage. In order to do this, the command first calls the `Get-CsOnlineVoiceRoutingPolicy` cmdlet without any parameters in order to return a collection of all the available online voice routing policies. That collection is then piped to the Where-Object cmdlet, which picks out only those policies where the OnlinePstnUsages property includes (-contains) the "Local" usage. Those policies are then piped to the `Set-CsOnlineVoiceRoutingPolicy` cmdlet, which deletes the Local usage from each policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy + + + New-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy + + + Get-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy + + + Grant-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy + + + Remove-CsOnlineVoiceRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy + + + + + + Set-CsOnlineVoiceUser + Set + CsOnlineVoiceUser + + Use the `Set-CsOnlineVoiceUser` cmdlet to set the PSTN specific parameters (like telephone numbers and emergency response locations.) + + + + Note : This cmdlet has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)and Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. + + + + Set-CsOnlineVoiceUser + + Identity + + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + You can use the `Get-CsOnlineUser` cmdlet to identify the users you want to modify. + + Object + + Object + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + DomainController + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + LocationID + + > Applicable: Microsoft Teams + Specifies the unique identifier of the emergency location to assign to the user. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. + This parameter is required for users based in the US. + + Guid + + Guid + + + None + + + TelephoneNumber + + > Applicable: Microsoft Teams + Specifies the telephone number to be assigned to the user. The value must be in E.164 format: +14255043920. Setting the value to $Null clears the user's telephone number. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf parameter is not implemented for this cmdlet. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the identity of the target user. Acceptable values include: + Example: jphillips@contoso.com + Example: sip:jphillips@contoso.com + Example: 98403f08-577c-46dd-851a-f0460a13b03d + You can use the `Get-CsOnlineUser` cmdlet to identify the users you want to modify. + + Object + + Object + + + None + + + LocationID + + > Applicable: Microsoft Teams + Specifies the unique identifier of the emergency location to assign to the user. Location identities can be discovered by using the `Get-CsOnlineLisLocation` cmdlet. + This parameter is required for users based in the US. + + Guid + + Guid + + + None + + + TelephoneNumber + + > Applicable: Microsoft Teams + Specifies the telephone number to be assigned to the user. The value must be in E.164 format: +14255043920. Setting the value to $Null clears the user's telephone number. + + String + + String + + + None + + + Tenant + + > Applicable: Microsoft Teams + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf parameter is not implemented for this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsOnlineVoiceUser -Identity 3c37e1c7-78f9-4703-82ee-a6b68516794e -TelephoneNumber +14255037311 -LocationID c7c5a17f-00d7-47c0-9ddb-3383229d606b + + This example sets the telephone number and location for a user identified by the user ObjectID. + + + + -------------------------- Example 2 -------------------------- + Set-CsOnlineVoiceUser -Identity user@domain.com -TelephoneNumber $null + + This example removes the telephone number for a user identified by the user's SIP address. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceuser + + + + + + Set-CsPersonalAttendantSettings + Set + CsPersonalAttendantSettings + + Limited Preview: Functionality described in this document is currently in limited preview and only authorized organizations have access. + This cmdlet will set personal attendant settings for the specified user. + + + + This cmdlet sets personal attendant settings for the specified user. + When specifying settings you need to specify all settings, for instance, you can't just turn call screening on. Instead, you need to start by getting the current settings, making the necessary changes, and then setting/writing all settings. + + + + Set-CsPersonalAttendantSettings + + Identity + + The Identity of the user to set personal attendant settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsPersonalAttendantEnabled + + This parameter controls whether personal attendant is enabled or not. If personal attendant is enabled, then at least one of: AllowInboundInternalCalls, AllowInboundFederatedCalls, AllowInboundPSTNCalls must be enabled. + + System.Boolean + + System.Boolean + + + False + + + DefaultLanguage + + Language to be used by personal attendant in communication. The preliminary list of supported languages is: en-US, fr-FR, ar-SA, zh-CN, zh-TW, cs-CZ, da-DK, nl-NL, en-AU, en-GB, fi-FI, fr-CA, de-DE, el-GR, hi-IN, id-ID, it-IT, ja-JP, ko-KR, nb-NO, pl-PL, pt-BR, ru-RU, es-ES, es-US, sv-SE, th-TH, tr-TR + + System.String + + System.String + + + en-US + + + DefaultVoice + + Voice to be used by personal attendant in communication. Supported values are Female and Male. + > [!NOTE] > This parameter is currently in development and changing it does not change the behavior of Personal Attendant. + + System.String + + System.String + + + Female + + + CalleeName + + Name that personal attendant uses when referring to its owner. + + System.String + + System.String + + + None + + + DefaultTone + + Tone to be used by personal attendant in communication. Supported values are Formal and Casual. + > [!NOTE] > This parameter is currently in development and enabling/disabling it does not change the behavior of Personal Attendant. + + System.String + + System.String + + + Formal + + + IsBookingCalendarEnabled + + This parameter controls whether personal attendant can access personal bookings calendar to fetch the user's availability and schedule callbacks on behalf of the user. If access to personal calendar is enabled by admin, user must specify the bookings link in Teams Personal Attendant settings. + + System.Boolean + + System.Boolean + + + False + + + IsNonContactCallbackEnabled + + This parameter controls whether personal attendant calendar operations for callers not in the user contact list are enabled or not. + > [!NOTE] > This parameter is currently in development and enabling/disabling it does not change the behavior of Personal Attendant. + + System.Boolean + + System.Boolean + + + False + + + IsCallScreeningEnabled + + This parameter controls whether personal attendant evaluates calls context and passes the info to the user. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundInternalCalls + + This parameter controls whether personal attendant for incoming domain calls is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundFederatedCalls + + This parameter controls whether personal attendant for incoming calls from other domains is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundPSTNCalls + + This parameter controls whether personal attendant for incoming PSTN calls is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + IsAutomaticTranscriptionEnabled + + This parameter controls whether automatic storing of transcriptions (of personal attendant calls) is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + IsAutomaticRecordingEnabled + + This parameter controls whether automatic storing of recordings (of personal attendant calls) is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + + + + Identity + + The Identity of the user to set personal attendant settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsPersonalAttendantEnabled + + This parameter controls whether personal attendant is enabled or not. If personal attendant is enabled, then at least one of: AllowInboundInternalCalls, AllowInboundFederatedCalls, AllowInboundPSTNCalls must be enabled. + + System.Boolean + + System.Boolean + + + False + + + DefaultLanguage + + Language to be used by personal attendant in communication. The preliminary list of supported languages is: en-US, fr-FR, ar-SA, zh-CN, zh-TW, cs-CZ, da-DK, nl-NL, en-AU, en-GB, fi-FI, fr-CA, de-DE, el-GR, hi-IN, id-ID, it-IT, ja-JP, ko-KR, nb-NO, pl-PL, pt-BR, ru-RU, es-ES, es-US, sv-SE, th-TH, tr-TR + + System.String + + System.String + + + en-US + + + DefaultVoice + + Voice to be used by personal attendant in communication. Supported values are Female and Male. + > [!NOTE] > This parameter is currently in development and changing it does not change the behavior of Personal Attendant. + + System.String + + System.String + + + Female + + + CalleeName + + Name that personal attendant uses when referring to its owner. + + System.String + + System.String + + + None + + + DefaultTone + + Tone to be used by personal attendant in communication. Supported values are Formal and Casual. + > [!NOTE] > This parameter is currently in development and enabling/disabling it does not change the behavior of Personal Attendant. + + System.String + + System.String + + + Formal + + + IsBookingCalendarEnabled + + This parameter controls whether personal attendant can access personal bookings calendar to fetch the user's availability and schedule callbacks on behalf of the user. If access to personal calendar is enabled by admin, user must specify the bookings link in Teams Personal Attendant settings. + + System.Boolean + + System.Boolean + + + False + + + IsNonContactCallbackEnabled + + This parameter controls whether personal attendant calendar operations for callers not in the user contact list are enabled or not. + > [!NOTE] > This parameter is currently in development and enabling/disabling it does not change the behavior of Personal Attendant. + + System.Boolean + + System.Boolean + + + False + + + IsCallScreeningEnabled + + This parameter controls whether personal attendant evaluates calls context and passes the info to the user. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundInternalCalls + + This parameter controls whether personal attendant for incoming domain calls is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundFederatedCalls + + This parameter controls whether personal attendant for incoming calls from other domains is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + AllowInboundPSTNCalls + + This parameter controls whether personal attendant for incoming PSTN calls is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + IsAutomaticTranscriptionEnabled + + This parameter controls whether automatic storing of transcriptions (of personal attendant calls) is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + IsAutomaticRecordingEnabled + + This parameter controls whether automatic storing of recordings (of personal attendant calls) is enabled or not. + + System.Boolean + + System.Boolean + + + True + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 7.3.0 or later. + The specified user need to have the Microsoft Phone System license assigned. + The cmdlet is validating different settings and is always writing all the parameters. You might see validation errors from the cmdlet due to this behavior. As an example, if you already have call forwarding set up and you want to set up personal attendant, you will get a validation error. + + + + + -------------------------- Example 1 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $false -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $false -AllowInboundPSTNCalls $false -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows setting up personal attendant for user1@contoso.com. Personal attendant communicates in English. Personal attendant will refer to its owner as User1. Personal attendant is only enabled for inbound Teams calls from the user's domain. Additional capabilities are turned off. + + + + -------------------------- Example 2 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $true -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $false -AllowInboundPSTNCalls $false -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows setting up personal attendant for user1@contoso.com. In addition to previously mentioned capabilities, personal attendant is able to access personal bookings calendar, fetch the user's availability and schedule callbacks on behalf of the user. Calendar operations are enabled for all incoming callers. user1 must specify the bookings link in Teams Personal Attendant settings. + + + + -------------------------- Example 3 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $true -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $true -AllowInboundPSTNCalls $true -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows setting up personal attendant for user1@contoso.com. In addition to previously mentioned capabilities, personal attendant is enabled for all incoming calls: the user's domain, other domains and PSTN. + + + + -------------------------- Example 4 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $true -IsCallScreeningEnabled $true +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $true -AllowInboundPSTNCalls $true -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows setting up personal attendant for user1@contoso.com. In addition to previously mentioned capabilities, personal attendant is enabled to evaluate the call's context and pass the info to the user. + + + + -------------------------- Example 5 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $true -IsCallScreeningEnabled $true +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $true -AllowInboundPSTNCalls $true -IsAutomaticTranscriptionEnabled $true -IsAutomaticRecordingEnabled $true + + This example shows setting up personal attendant for user1@contoso.com. In addition to previously mentioned capabilities, personal attendant is automatically storing call transcription and recording. + + + + -------------------------- Example 6 -------------------------- + Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $false + + This example shows turning off personal attendant for user1@contoso.com. + + + + -------------------------- Example 7 -------------------------- + Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $false +Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $false -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $false -AllowInboundPSTNCalls $false -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows how to set up personal attendant for a user, who has call forwarding enabled. + + + + -------------------------- Example 8 -------------------------- + Set-CsUserCallingSettings -Identity user1@contoso.com -IsUnansweredEnabled $true -UnansweredTargetType Voicemail -UnansweredDelay 00:00:20 +Set-CsPersonalAttendantSettings -Identity user1@contoso.com -IsPersonalAttendantEnabled $true -DefaultLanguage en-US -CalleeName User1 -IsBookingCalendarEnabled $false -IsCallScreeningEnabled $false +-AllowInboundInternalCalls $true -AllowInboundFederatedCalls $false -AllowInboundPSTNCalls $false -IsAutomaticTranscriptionEnabled $false -IsAutomaticRecordingEnabled $false + + This example shows how to set up personal attendant for a user, who would like to use unanswered call functionality simultaniously with personal attendant. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cspersonalattendantsettings + + + Get-CsPersonalAttendantSettings + + + + + + + Set-CsPhoneNumberAssignment + Set + CsPhoneNumberAssignment + + This cmdlet will assign a phone number to a user or a resource account (online application instance). + + + + This cmdlet assigns a telephone number to a user or resource account. When you assign a phone number the EnterpriseVoiceEnabled flag is automatically set to True. + You can also assign a location to a phone number. + To remove a phone number from a user or resource account, use the Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlet. + + + + Set-CsPhoneNumberAssignment + + AssignmentCategory + + > Applicable: Microsoft Teams + This parameter indicates the phone number assignment category if it isn't the primary phone number. For example, a Private line can be assigned to a user using '-AssignmentCategory Private'. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + + System.String + + System.String + + + None + + + NetworkSiteId + + > Applicable: Microsoft Teams + ID of a network site. A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. + + System.String + + System.String + + + None + + + NetworkSiteId + + This parameter is reserved for internal Microsoft use. + + System.String + + System.String + + + None + + + Notify + + Sends an email to Teams phone user about new telephone number assignment. + + + System.Management.Automation.SwitchParameter + + + False + + + PhoneNumber + + The phone number to assign to the user or resource account. Supports E.164 format like +12065551234 and non-E.164 format like 12065551234. The phone number can't have "tel:" prefixed. + We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234 assigned to a user or resource account. + Setting a phone number will automatically set EnterpriseVoiceEnabled to True. + + System.String + + System.String + + + None + + + PhoneNumberType + + The type of phone number to assign to the user or resource account. The supported values are DirectRouting, CallingPlan, and OperatorConnect. When you acquire a phone number you will typically know which type it is. + + System.String + + System.String + + + None + + + + Set-CsPhoneNumberAssignment + + EnterpriseVoiceEnabled + + > Applicable: Microsoft Teams + Flag indicating if the user or resource account should be EnterpriseVoiceEnabled. + This parameter is mutual exclusive with PhoneNumber. + + System.Boolean + + System.Boolean + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + + System.String + + System.String + + + None + + + + Set-CsPhoneNumberAssignment + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + LocationId + + The LocationId of the location to assign to the specific user. You can get it using Get-CsOnlineLisLocation. You can set the location on both assigned and unassigned phone numbers. + Removal of location from a phone number is supported for Direct Routing numbers and Operator Connect numbers that are not managed by the Service Desk. If you want to remove the location, use the string value null for LocationId. + + System.String + + System.String + + + None + + + PhoneNumber + + The phone number to assign to the user or resource account. Supports E.164 format like +12065551234 and non-E.164 format like 12065551234. The phone number can't have "tel:" prefixed. + We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234 assigned to a user or resource account. + Setting a phone number will automatically set EnterpriseVoiceEnabled to True. + + System.String + + System.String + + + None + + + + Set-CsPhoneNumberAssignment + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + NetworkSiteId + + This parameter is reserved for internal Microsoft use. + + System.String + + System.String + + + None + + + PhoneNumber + + The phone number to assign to the user or resource account. Supports E.164 format like +12065551234 and non-E.164 format like 12065551234. The phone number can't have "tel:" prefixed. + We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234 assigned to a user or resource account. + Setting a phone number will automatically set EnterpriseVoiceEnabled to True. + + System.String + + System.String + + + None + + + + Set-CsPhoneNumberAssignment + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + PhoneNumber + + The phone number to assign to the user or resource account. Supports E.164 format like +12065551234 and non-E.164 format like 12065551234. The phone number can't have "tel:" prefixed. + We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234 assigned to a user or resource account. + Setting a phone number will automatically set EnterpriseVoiceEnabled to True. + + System.String + + System.String + + + None + + + ReverseNumberLookup + + This parameter is used to control the behavior of reverse number lookup (RNL) for a phone number.When RNL is set to 'SkipInternalVoip', an internal call to this phone number will not attempt to pass through internal VoIP via reverse number lookup in Microsoft Teams. Instead the call will be established through external PSTN connectivity directly. + + System.String + + System.String + + + None + + + + + + AssignmentCategory + + > Applicable: Microsoft Teams + This parameter indicates the phone number assignment category if it isn't the primary phone number. For example, a Private line can be assigned to a user using '-AssignmentCategory Private'. + + System.String + + System.String + + + None + + + EnterpriseVoiceEnabled + + > Applicable: Microsoft Teams + Flag indicating if the user or resource account should be EnterpriseVoiceEnabled. + This parameter is mutual exclusive with PhoneNumber. + + System.Boolean + + System.Boolean + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the specific user or resource account. Can be specified using the value in the ObjectId, the SipProxyAddress, or the UserPrincipalName attribute of the user or resource account. + + System.String + + System.String + + + None + + + LocationId + + The LocationId of the location to assign to the specific user. You can get it using Get-CsOnlineLisLocation. You can set the location on both assigned and unassigned phone numbers. + Removal of location from a phone number is supported for Direct Routing numbers and Operator Connect numbers that are not managed by the Service Desk. If you want to remove the location, use the string value null for LocationId. + + System.String + + System.String + + + None + + + NetworkSiteId + + > Applicable: Microsoft Teams + ID of a network site. A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. + + System.String + + System.String + + + None + + + NetworkSiteId + + This parameter is reserved for internal Microsoft use. + + System.String + + System.String + + + None + + + Notify + + Sends an email to Teams phone user about new telephone number assignment. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PhoneNumber + + The phone number to assign to the user or resource account. Supports E.164 format like +12065551234 and non-E.164 format like 12065551234. The phone number can't have "tel:" prefixed. + We support Direct Routing numbers with extensions using the formats +1206555000;ext=1234 or 1206555000;ext=1234 assigned to a user or resource account. + Setting a phone number will automatically set EnterpriseVoiceEnabled to True. + + System.String + + System.String + + + None + + + PhoneNumberType + + The type of phone number to assign to the user or resource account. The supported values are DirectRouting, CallingPlan, and OperatorConnect. When you acquire a phone number you will typically know which type it is. + + System.String + + System.String + + + None + + + ReverseNumberLookup + + This parameter is used to control the behavior of reverse number lookup (RNL) for a phone number.When RNL is set to 'SkipInternalVoip', an internal call to this phone number will not attempt to pass through internal VoIP via reverse number lookup in Microsoft Teams. Instead the call will be established through external PSTN connectivity directly. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 3.0.0 or later. The parameter set LocationUpdate was introduced in Teams PowerShell module 5.3.1-preview. The parameter NetworkSiteId was introduced in Teams PowerShell module 5.5.0. The parameter set NetworkSiteUpdate was introduced in Teams PowerShell module 5.5.1-preview. + The cmdlet is only available in commercial and GCC cloud instances. + If a user or resource account has a phone number set in Active Directory on-premises and synched into Microsoft 365, you can't use Set-CsPhoneNumberAssignment to set the phone number. You will have to clear the phone number from the on-premises Active Directory and let that change sync into Microsoft 365 first. + The previous command for assigning phone numbers to users Set-CsUser had the parameter HostedVoiceMail. Setting HostedVoiceMail for Microsoft Teams users is no longer necessary and that is why the parameter is not available on Set-CsPhoneNumberAssignment. + + + + + -------------------------- Example 1 -------------------------- + Set-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber +12065551234 -PhoneNumberType CallingPlan + + This example assigns the Microsoft Calling Plan phone number +1 (206) 555-1234 to the user user1@contoso.com. + + + + -------------------------- Example 2 -------------------------- + $loc=Get-CsOnlineLisLocation -City Vancouver +Set-CsPhoneNumberAssignment -Identity user2@contoso.com -PhoneNumber +12065551224 -PhoneNumberType CallingPlan -LocationId $loc.LocationId + + This example finds the emergency location defined for the corporate location Vancouver and assigns the Microsoft Calling Plan phone number +1 (206) 555-1224 and location to the user user2@contoso.com. + + + + -------------------------- Example 3 -------------------------- + Set-CsPhoneNumberAssignment -Identity user3@contoso.com -EnterpriseVoiceEnabled $true + + This example sets the EnterpriseVoiceEnabled flag on the user user3@contoso.com. + + + + -------------------------- Example 4 -------------------------- + Set-CsPhoneNumberAssignment -Identity user3@contoso.com -LocationId 'null' -PhoneNumber +12065551226 -PhoneNumberType OperatorConnect + + This example removes the emergency location from the phone number for user user3@contoso.com. + + + + -------------------------- Example 5 -------------------------- + Set-CsPhoneNumberAssignment -Identity cq1@contoso.com -PhoneNumber +14255551225 -PhoneNumberType DirectRouting + + This example assigns the Direct Routing phone number +1 (425) 555-1225 to the resource account cq1@contoso.com. + + + + -------------------------- Example 6 -------------------------- + Set-CsPhoneNumberAssignment -Identity user4@contoso.com -PhoneNumber "+14255551000;ext=1234" -PhoneNumberType DirectRouting + + This example assigns the Direct Routing phone number +1 (425) 555-1000;ext=1234 to the user user4@contoso.com. + + + + -------------------------- Example 7 -------------------------- + Try { Set-CsPhoneNumberAssignment -Identity user5@contoso.com -PhoneNumber "+14255551000;ext=1234" -PhoneNumberType DirectRouting -ErrorAction Stop } Catch { Write-Host An error occurred } + + This example shows how to use Try/Catch and ErrorAction to perform error checking on the assignment cmdlet failing. + + + + -------------------------- Example 8 -------------------------- + $TempUser = "tempuser@contoso.com" +$OldLoc=Get-CsOnlineLisLocation -City Vancouver +$NewLoc=Get-CsOnlineLisLocation -City Seattle +$Numbers=Get-CsPhoneNumberAssignment -LocationId $OldLoc.LocationId -PstnAssignmentStatus Unassigned -NumberType CallingPlan -CapabilitiesContain UserAssignment +foreach ($No in $Numbers) { + Set-CsPhoneNumberAssignment -Identity $TempUser -PhoneNumberType CallingPlan -PhoneNumber $No.TelephoneNumber -LocationId $NewLoc.LocationId + Remove-CsPhoneNumberAssignment -Identity $TempUser -PhoneNumberType CallingPlan -PhoneNumber $No.TelephoneNumber +} + + This example shows how to change the location for unassigned Calling Plan subscriber phone numbers by looping through all the phone numbers, assigning each phone number temporarily with the new location to a user, and then unassigning the phone number again from the user. + + + + -------------------------- Example 9 -------------------------- + $loc=Get-CsOnlineLisLocation -City Toronto +Set-CsPhoneNumberAssignment -PhoneNumber +12065551224 -LocationId $loc.LocationId + + This example shows how to set the location on a phone number. + + + + -------------------------- Example 10 -------------------------- + $OldLocationId = "7fda0c0b-6a3d-48b8-854b-3fbe9dcf6513" +$NewLocationId = "951fac72-955e-4734-ab74-cc4c0f761c0b" +# Get all phone numbers in old location +$pns = Get-CsPhoneNumberAssignment -LocationId $OldLocationId +Write-Host $pns.count numbers found in old location $OldLocationId +# Move all those phone numbers to the new location +foreach ($pn in $pns) { + Try { + Set-CsPhoneNumberAssignment -PhoneNumber $pn.TelephoneNumber -LocationId $NewLocationId -ErrorAction Stop + Write-Host $pn.TelephoneNumber was updated to have location $NewLocationId + } + Catch { + Write-Host Could not update $pn.TelephoneNumber with location $NewLocationId + } +} +Write-Host (Get-CsPhoneNumberAssignment -LocationId $OldLocationId).Count numbers found in old location $OldLocationId +Write-Host (Get-CsPhoneNumberAssignment -LocationId $NewLocationId).Count numbers found in new location $NewLocationId + + This Example shows how to update the LocationID from an old location to a new location for a set of phone numbers. + + + + -------------------------- Example 11 -------------------------- + Set-CsPhoneNumberAssignment -Identity user3@contoso.com -PhoneNumber +12065551226 -ReverseNumberLookup 'SkipInternalVoip' + + This example shows how to turn off reverse number lookup (RNL) on a phone number. When RNL is set to 'SkipInternalVoip', an internal call to this phone number will not attempt to pass through internal VoIP via reverse number lookup in Microsoft Teams. Instead the call will be established through external PSTN connectivity directly. This example is only applicable for Direct Routing phone numbers. + + + + -------------------------- Example 12 -------------------------- + Set-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber '+14255551234' -PhoneNumberType CallingPlan -AssignmentCategory Private + + This example shows how to assign a private phone number (incoming calls only) to a user. + + + + -------------------------- Example 13 -------------------------- + Set-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber '+14255551234' -PhoneNumberType CallingPlan -LocationId "7fda0c0b-6a3d-48b8-854b-3fbe9dcf6513" -Notify + + This example shows how to send an email to Teams phone users informing them about the new telephone number assignment. Note: For assignment of India telephone numbers provided by Airtel, Teams Phone users will automatically receive an email outlining the usage guidelines and restrictions. This notification is mandatory and cannot be opted out of. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment + + + Remove-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment + + + Get-CsPhoneNumberAssignment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment + + + + + + Set-CsPhoneNumberPolicyAssignment + Set + CsPhoneNumberPolicyAssignment + + This cmdlet assigns a policy to a specific telephone number in Microsoft Teams. + + + + The cmdlet assigns a policy to a telephone number in Microsoft Teams. This is useful in multi-line scenarios or when managing voice configurations for users who require specific dial plans or calling policies for different telephone numbers. + Please note that policies must be pre-created and available in the tenant before assignment. The list of policies that can be assigned to telephone numbers are: - CallingLineIdentity + - OnlineDialOutPolicy + - OnlineVoiceRoutingPolicy + - TeamsEmergencyCallingPolicy + - TeamsEmergencyCallRoutingPolicy + - TeamsSharedCallingRoutingPolicy + - TenantDialPlan + + Assignments are effective immediately, but may take a few minutes to propagate and show up in results in Get-CsPhoneNumberPolicyAssignment (./get-csphonenumberpolicyassignment.md)cmdlet. + + + + Set-CsPhoneNumberPolicyAssignment + + TelephoneNumber + + Specifies the telephone number to which the policy will be assigned. + + System.String + + System.String + + + None + + + PolicyType + + Indicates the type of policy being assigned. + + System.String + + System.String + + + None + + + PolicyName + + The name of the policy to assign. This must match an existing policy configured in the tenant. + If the telephone number already has a different policy of the same PolicyType assigned, then this will replace the existing policy assignment. + If PolicyName is not provided, then it would remove any existing policy of the same PolicyType previously assigned to the specified phone number. + + System.String + + System.String + + + None + + + + + + TelephoneNumber + + Specifies the telephone number to which the policy will be assigned. + + System.String + + System.String + + + None + + + PolicyType + + Indicates the type of policy being assigned. + + System.String + + System.String + + + None + + + PolicyName + + The name of the policy to assign. This must match an existing policy configured in the tenant. + If the telephone number already has a different policy of the same PolicyType assigned, then this will replace the existing policy assignment. + If PolicyName is not provided, then it would remove any existing policy of the same PolicyType previously assigned to the specified phone number. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + None + + + This cmdlet does not return output on success. Errors are thrown if the assignment fails due to invalid parameters, missing policies, or internal service issues. + If you want to verify the outcome of the assignment, call `Get-CsPhoneNumberPolicyAssignment -TelephoneNumber <YourPhoneNumber>`. + + + + + + The cmdlet is available in Teams PowerShell module 7.3.1 or later. The cmdlet is only available in commercial cloud instances. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsPhoneNumberPolicyAssignment -TelephoneNumber 17789493766 -PolicyType TenantDialPlan -PolicyName "US Admins Dial Plan" + + This example assigns a policy to the specified telephone number. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsPhoneNumberPolicyAssignment -TelephoneNumber 17789493766 -PolicyType TenantDialPlan + + This example removes an existing TenantDialPlan previously assigned to the specified telephone number. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberpolicyassignment + + + Get-CsPhoneNumberPolicyAssignment + + + + + + + Set-CsPhoneNumberTag + Set + CsPhoneNumberTag + + This cmdlet allows the admin to create and assign a tag to a phone number. + + + + This cmdlet allows telephone number administrators to create and assign tags to phone numbers. Tags can be up to 50 characters long, including spaces, and can contain multiple words. They are not case-sensitive. Each phone number can have up to 50 tags assigned. To improve readability, it is recommended to avoid assigning too many tags to a single phone number. If the desired tag already exist, the telephone number will get assigned the existing tag. If the tag is not already available, a new tag will be created. Get-CsPhoneNumberTag (https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumbertag) can be used to check a list of already existing tags. The tags can be used as a filter for [Get-CsPhoneNumberAssignment](https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment)to filter on certain list. + + + + Set-CsPhoneNumberTag + + PhoneNumber + + Indicates the phone number for the the tag to be assigned + + String + + String + + + None + + + Tag + + Indicates the tag to be assigned or created. + + String + + String + + + None + + + + + + PhoneNumber + + Indicates the phone number for the the tag to be assigned + + String + + String + + + None + + + Tag + + Indicates the tag to be assigned or created. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsPhoneNumberTag -PhoneNumber +123456789 -Tag "HR" + + Above example shows how to set a "HR" tag to +123456789 number. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumbertag + + + + + + Set-CsSharedCallQueueHistoryTemplate + Set + CsSharedCallQueueHistoryTemplate + + Use the Set-CsSharedCallQueueHistoryTemplate cmdlet to change a Shared Call Queue History template + + + + Use the Set-SharedCallQueueHistory cmdlet to change a Shared Call Queue History template. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for this feature. General Availability for this functionality has not been determined at this time. + + + + Set-CsSharedCallQueueHistoryTemplate + + Instance + + > Applicable: Microsoft Teams + The instance of the shared call queue history template to change. + + System.String + + System.String + + + None + + + + + + Instance + + > Applicable: Microsoft Teams + The instance of the shared call queue history template to change. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Rtc.Management.OAA.Models.AutoAttendant + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $SharedCQHistory = Get-CsSharedCallQueueHistory -Id 66f0dc32-d344-4bb1-b524-027d4635515c +$SharedCQHisotry.AnsweredAndOutboundCalls = "AuthorizedUsersAndAgents" +Set-CsSharedCallQueueHistoryTemplate -Instance $SharedCQHistory + + This example sets the AnsweredOutboundCalls value in the Shared Call History Template with the Id `66f0dc32-d344-4bb1-b524-027d4635515c` + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsSharedCallQueueHistoryTemplate + + + New-CsSharedCallQueueHistoryTemplate + + + + Get-CsSharedCallQueueHistoryTemplate + + + + Remove-CsSharedCallQueueHistoryTemplate + + + + Get-CsCallQueue + + + + New-CsCallQueue + + + + Set-CsCallQueue + + + + Remove-CsCallQueue + + + + + + + Set-CsTagsTemplate + Set + CsTagsTemplate + + Changes an existing Tag template. + + + + The Set-CsTagTemplate cmdlet changes and existing Tag template. Delete this line please. + > [!CAUTION] > This cmdlet will only work for customers that are participating in the Voice Applications private preview for these features. General Availability for this functionality has not been determined at this time. + + + + Set-CsTagsTemplate + + Instance + + The Instance parameter is the object reference to the Tag template to be modified. + You can retrieve an object reference to an existing Tag template by using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + Instance + + The Instance parameter is the object reference to the Tag template to be modified. + You can retrieve an object reference to an existing Tag template by using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet and assigning the returned value to a variable. + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for Microsoft internal use only. + + Guid + + Guid + + + None + + + + + + + Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstagstemplate + + + New-CsTagsTemplate + + + + Get-CsTagsTemplate + + + + Remove-CsTagsTemplate + + + + New-CsTag + + + + + + + Set-CsTeamsAudioConferencingPolicy + Set + CsTeamsAudioConferencingPolicy + + Audio conferencing policies can be used to manage audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. + + + + The Set-CsTeamsAudioConferencingPolicy cmdlet enables administrators to control audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. The Set-CsTeamsAudioConferencingPolicy can be used to update an audio-conferencing policy that has been configured for use in your organization. + + + + Set-CsTeamsAudioConferencingPolicy + + Identity + + Unique identifier for the policy to be Set. To set the global policy, use this syntax: -Identity global. To set a per-user policy use syntax similar to this: -Identity "Emea Users". If this parameter is not included, the Set-CsTeamsAudioConferencingPolicy cmdlet will modify the Global policy. + + String + + String + + + None + + + AllowTollFreeDialin + + Determines if users of this Policy can have Toll free numbers. If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. + + Boolean + + Boolean + + + True + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + MeetingInvitePhoneNumbers + + Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. If no phone numbers are specified, then the phone number that is displayed in meeting invites created by users would be based on the location of the users. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsAudioConferencingPolicy + + AllowTollFreeDialin + + Determines if users of this Policy can have Toll free numbers. If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. + + Boolean + + Boolean + + + True + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + + SwitchParameter + + + False + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + MeetingInvitePhoneNumbers + + Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. If no phone numbers are specified, then the phone number that is displayed in meeting invites created by users would be based on the location of the users. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowTollFreeDialin + + Determines if users of this Policy can have Toll free numbers. If toll-free numbers are available in your Microsoft Audio Conferencing bridge, this parameter controls if they can be used to join the meetings of a given user. + + Boolean + + Boolean + + + True + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the policy to be Set. To set the global policy, use this syntax: -Identity global. To set a per-user policy use syntax similar to this: -Identity "Emea Users". If this parameter is not included, the Set-CsTeamsAudioConferencingPolicy cmdlet will modify the Global policy. + + String + + String + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + MeetingInvitePhoneNumbers + + Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. If no phone numbers are specified, then the phone number that is displayed in meeting invites created by users would be based on the location of the users. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + PSObject + + + + + + + + + + Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Set-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" -AllowTollFreeDialin $False + + In this example, AllowTollFreeDialin is set to false. All other policy properties will be left as previously assigned. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Set-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" -AllowTollFreeDialin $True -MeetingInvitePhoneNumbers "+49695095XXXXX","+353156YYYYY","+1800856ZZZZZ" + + In this example, two different property values are configured: AllowTollFreeDialIn is set to True and -MeetingInvitePhoneNumbers is set to include the following Toll and Toll free numbers - "+49695095XXXXX","+353156YYYYY","+1800856ZZZZZ" other policy properties will be left as previously assigned. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy + + + Get-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy + + + New-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy + + + Grant-CsTeamsAudioConferencingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy + + + + + + Set-CsTeamsCallParkPolicy + Set + CsTeamsCallParkPolicy + + The Set-CsTeamsCallParkPolicy cmdlet lets you update a policy that has already been created for your organization. + + + + The TeamsCallParkPolicy controls whether or not users are able to leverage the call park feature in Microsoft Teams. Call park allows enterprise voice customers to place a call on hold and then perform a number of actions on that call: transfer to another department, retrieve via the same phone, or retrieve via a different phone. + NOTE: The call park feature is currently available in desktop, mobile, and web clients. Supported with TeamsOnly mode. + + + + Set-CsTeamsCallParkPolicy + + + Set-CsTeamsCallParkPolicy + + + Set-CsTeamsCallParkPolicy + + Identity + + The unique identifier of the policy being updated. + + XdsIdentity + + XdsIdentity + + + None + + + AllowCallPark + + If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Description of the policy. + + String + + String + + + None + + + Force + + Suppress all non-fatal errors + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + ParkTimeoutSeconds + + Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). + + Integer + + Integer + + + 300 + + + PickupRangeEnd + + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 99 + + + PickupRangeStart + + Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 10 + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsCallParkPolicy + + AllowCallPark + + If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Description of the policy. + + String + + String + + + None + + + Force + + Suppress all non-fatal errors + + + SwitchParameter + + + False + + + Instance + + This parameter is used when piping a specific policy retrieved from Get-CsTeamsCallParkPolicy that you then want to update. + + PSObject + + PSObject + + + None + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + ParkTimeoutSeconds + + Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). + + Integer + + Integer + + + 300 + + + PickupRangeEnd + + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 99 + + + PickupRangeStart + + Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 10 + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowCallPark + + If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Description of the policy. + + String + + String + + + None + + + Force + + Suppress all non-fatal errors + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The unique identifier of the policy being updated. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + This parameter is used when piping a specific policy retrieved from Get-CsTeamsCallParkPolicy that you then want to update. + + PSObject + + PSObject + + + None + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + ParkTimeoutSeconds + + Specify the number of seconds to wait before ringing the parker when the parked call hasn't been picked up. Value can be from 120 to 1800 (seconds). + + Integer + + Integer + + + 300 + + + PickupRangeEnd + + Specify the maximum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 99 + + + PickupRangeStart + + Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. + Note: PickupRangeStart must be smaller than PickupRangeEnd. + + Integer + + Integer + + + 10 + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsCallParkPolicy -Identity SalesPolicy -AllowCallPark $true + + Update the existing policy "SalesPolicy" to enable the call park feature. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTeamsCallParkPolicy -Identity "SalesPolicy" -PickupRangeStart 500 -PickupRangeEnd 1500 + + Update the existing policy "SalesPolicy" to generate pickup numbers starting from 500 and up until 1500. + + + + -------------------------- Example 3 -------------------------- + PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -ParkTimeoutSeconds 600 + + Update the existing policy "SalesPolicy" to ring back the parker after 600 seconds if the parked call is unanswered + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallparkpolicy + + + + + + Set-CsTeamsCortanaPolicy + Set + CsTeamsCortanaPolicy + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. + + + + The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. Specifically, these specify if a user can use Cortana voice assistant in Microsoft Teams and Cortana invocation behavior via CortanaVoiceInvocationMode parameter - * Disabled - Cortana voice assistant is disabled + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + + + Set-CsTeamsCortanaPolicy + + Identity + + Identity for the policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity MyCortanaPolicy. If you do not specify an Identity the Set-CsTeamsCortanaPolicy cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + + + AllowCortanaAmbientListening + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaInContextSuggestions + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaVoiceInvocation + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + CortanaVoiceInvocationMode + + The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + String + + String + + + None + + + Description + + Provide a description of your policy to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsCortanaPolicy + + AllowCortanaAmbientListening + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaInContextSuggestions + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaVoiceInvocation + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + CortanaVoiceInvocationMode + + The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + String + + String + + + None + + + Description + + Provide a description of your policy to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowCortanaAmbientListening + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaInContextSuggestions + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + AllowCortanaVoiceInvocation + + This parameter is reserved for internal Microsoft use. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + CortanaVoiceInvocationMode + + The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. + * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation + * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported + + String + + String + + + None + + + Description + + Provide a description of your policy to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Identity for the policy you're modifying. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity MyCortanaPolicy. If you do not specify an Identity the Set-CsTeamsCortanaPolicy cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose external user communication policy are being created. For example: -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" You can return your tenant ID by running this command: Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsCortanaPolicy -Identity MyCortanaPolicy -CortanaVoiceInvocationMode Disabled + + In this example, Cortana voice assistant is set to disabled. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy + + + + + + Set-CsTeamsEmergencyCallRoutingPolicy + Set + CsTeamsEmergencyCallRoutingPolicy + + This cmdlet modifies an existing Teams Emergency Call Routing Policy. + + + + This cmdlet modifies an existing Teams Emergency Call Routing Policy. Teams Emergency Call Routing policy is used for the life cycle of emergency call routing - emergency numbers and routing configuration + + + + Set-CsTeamsEmergencyCallRoutingPolicy + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy. + + String + + String + + + None + + + AllowEnhancedEmergencyServices + + Flag to enable Enhanced Emergency Services. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provides a description of the Teams Emergency Call Routing policy to identify the purpose of setting it. + + String + + String + + + None + + + EmergencyNumbers + + One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowEnhancedEmergencyServices + + Flag to enable Enhanced Emergency Services. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provides a description of the Teams Emergency Call Routing policy to identify the purpose of setting it. + + String + + String + + + None + + + EmergencyNumbers + + One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. + + Object + + Object + + + None + + + Identity + + The Identity parameter is a unique identifier that designates the name of the policy. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -AllowEnhancedEmergencyServices:$false -Description "test" + + This example modifies an existing Teams Emergency Call Routing Policy. + + + + -------------------------- Example 2 -------------------------- + $en1 = New-CsTeamsEmergencyNumber -EmergencyDialString "911" -EmergencyDialMask "933" -OnlinePSTNUsage "USE911" +$en2 = New-CsTeamsEmergencyNumber -EmergencyDialString "112" -EmergencyDialMask "9112" -OnlinePSTNUsage "DKE911" +Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{add=$en1,$en2} + + This example first creates new Teams emergency number objects and then adds these Teams emergency numbers to an existing Teams Emergency Call Routing policy. + + + + -------------------------- Example 3 -------------------------- + $en1 = New-CsTeamsEmergencyNumber -EmergencyDialString "112" -EmergencyDialMask "9112" -OnlinePSTNUsage "DKE911" +Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remove=$en1} + + This example first creates a new Teams emergency number object and then removes that Teams emergency number from an existing Teams Emergency Call Routing policy. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy + + + New-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy + + + Grant-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy + + + Remove-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy + + + Get-CsTeamsEmergencyCallRoutingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy + + + New-CsTeamsEmergencyNumber + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber + + + + + + Set-CsTeamsEnhancedEncryptionPolicy + Set + CsTeamsEnhancedEncryptionPolicy + + Use this cmdlet to update values in existing Teams enhanced encryption policy. + + + + Use this cmdlet to update values in existing Teams enhanced encryption policy. + The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for end-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. + + + + Set-CsTeamsEnhancedEncryptionPolicy + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + Use the "Global" Identity if you wish modify the policy set for the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + CallingEndtoEndEncryptionEnabledType + + Determines whether end-to-end encrypted calling is available for the user in Teams. Set this to DisabledUserOverride to allow user to turn on end-to-end encrypted calls. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. + For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + Instance + + Use this to pipe a specific enhanced encryption policy to be set. You can only modify the global policy, so can only pass the global instance of the enhanced encryption policy. + + Object + + Object + + + None + + + MeetingEndToEndEncryption + + Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + CallingEndtoEndEncryptionEnabledType + + Determines whether end-to-end encrypted calling is available for the user in Teams. Set this to DisabledUserOverride to allow user to turn on end-to-end encrypted calls. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams enhanced encryption policy. + For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier assigned to the Teams enhanced encryption policy. + Use the "Global" Identity if you wish modify the policy set for the entire tenant. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Use this to pipe a specific enhanced encryption policy to be set. You can only modify the global policy, so can only pass the global instance of the enhanced encryption policy. + + Object + + Object + + + None + + + MeetingEndToEndEncryption + + Determines whether end-to-end encrypted meetings are available in Teams ( requires a Teams Premium license (https://www.microsoft.com/en-us/microsoft-teams/premium)). Set this to DisabledUserOverride to allow users to schedule end-to-end encrypted meetings. Set this to Disabled to prohibit. + + Enum + + Enum + + + Disabled + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Object + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> Set-CsTeamsEnhancedEncryptionPolicy -Identity "ContosoPartnerTeamsEnhancedEncryptionPolicy" -CallingEndtoEndEncryptionEnabledType DisabledUserOverride + + The command shown in Example 1 modifies an existing per-user Teams enhanced encryption policy with the Identity ContosoPartnerTeamsEnhancedEncryptionPolicy. + This policy is re-assigned CallingEndtoEndEncryptionEnabledType to be DisabledUserOverride. + Any Microsoft Teams users who are assigned this policy will have their enhanced encryption policy customized such that the user can use the enhanced encryption setting in Teams. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> Set-CsTeamsEnhancedEncryptionPolicy -Identity "ContosoPartnerTeamsEnhancedEncryptionPolicy" -MeetingEndToEndEncryption DisabledUserOverride + + The command shown in Example 2 modifies an existing per-user Teams enhanced encryption policy with the Identity ContosoPartnerTeamsEnhancedEncryptionPolicy. + This policy has re-assigned MeetingEndToEndEncryption to be DisabledUserOverride. + Any Microsoft Teams users who are assigned this policy and have a Teams Premium license will have the option to create end-to-end encrypted meetings. Learn more about end-to-end encryption for Teams meetings (https://support.microsoft.com/en-us/office/use-end-to-end-encryption-for-teams-meetings-a8326d15-d187-49c4-ac99-14c17dbd617c). + + + + -------------------------- EXAMPLE 3 -------------------------- + PS C:\> Set-CsTeamsEnhancedEncryptionPolicy -Identity "ContosoPartnerTeamsEnhancedEncryptionPolicy" -Description "allow useroverride" + + The command shown in Example 2 modifies an existing per-user Teams enhanced encryption policy with the Identity ContosoPartnerTeamsEnhancedEncryptionPolicy. + This policy is re-assigned the description from its existing value to "allow useroverride". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy + + + Get-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy + + + New-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy + + + Remove-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy + + + Grant-CsTeamsEnhancedEncryptionPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy + + + + + + Set-CsTeamsEventsPolicy + Set + CsTeamsEventsPolicy + + This cmdlet allows you to configure options for customizing Teams events experiences. Note that this policy is currently still in preview. + + + + User-level policy for tenant admin to configure options for customizing Teams events experiences. Use this cmdlet to update an existing policy. + + + + Set-CsTeamsEventsPolicy + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + AllowedQuestionTypesInRegistrationForm + + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + + String + + String + + + None + + + AllowedTownhallTypesForRecordingPublish + + This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting describes how IT admins can control which types of webinar attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + None + + + AllowEventIntegrations + + This setting governs access to the integrations tab in the event creation workflow. + Possible values true, false. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. + + String + + String + + + None + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + + String + + String + + + None + + + BroadcastPremiumApps + + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall + + String + + String + + + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False + + + Confirm + + The Confirm switch does not work with this cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. + This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. + + String + + String + + + None + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. + + String + + String + + + Enabled + + + RecordingForTownhall + + Determines whether recording is allowed in a user's townhall. + Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + + String + + String + + + Enabled + + + RecordingForWebinar + + Determines whether recording is allowed in a user's webinar. + Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + + String + + String + + + Enabled + + + TownhallChatExperience + + This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. + Possible values are: Optimized, None. + + String + + String + + + None + + + TownhallEventAttendeeAccess + + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. + Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + + String + + String + + + Enabled + + + TranscriptionForWebinar + + Determines whether transcriptions are allowed in a user's webinar. + Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + + Boolean + + Boolean + + + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + + + WhatIf + + The WhatIf switch does not work with this cmdlet. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowedQuestionTypesInRegistrationForm + + This setting governs which users in a tenant can add which registration form questions to an event registration page for attendees to answer when registering for the event. + Possible values are: DefaultOnly, DefaultAndPredefinedOnly, AllQuestions. + + String + + String + + + None + + + AllowedTownhallTypesForRecordingPublish + + This setting describes how IT admins can control which types of Town Hall attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowedWebinarTypesForRecordingPublish + + This setting describes how IT admins can control which types of webinar attendees can have their recordings published. + Possible values are: None, InviteOnly, EveryoneInCompanyIncludingGuests, Everyone. + + String + + String + + + None + + + AllowEmailEditing + + This setting governs if a user is allowed to edit the communication emails in Teams Town Hall or Teams Webinar events. Possible values are: - Enabled : Enables editing of communication emails. - Disabled : Disables editing of communication emails. + + String + + String + + + None + + + AllowEventIntegrations + + This setting governs access to the integrations tab in the event creation workflow. + Possible values true, false. + + Boolean + + Boolean + + + None + + + AllowTownhalls + + This setting governs if a user can create town halls using Teams Events. Possible values are: - Enabled : Enables creating town halls. - Disabled : Disables creating town halls. + + String + + String + + + None + + + AllowWebinars + + This setting governs if a user can create webinars using Teams Events. Possible values are: - Enabled : Enables creating webinars. - Disabled : Disables creating webinars. + + String + + String + + + None + + + BroadcastPremiumApps + + This setting will enable Tenant Admins to specify if an organizer of a Teams Premium town hall may add an app that is accessible by everyone, including attendees, in a broadcast style Event including a Town hall. This does not include control over apps (such as AI Producer and Custom Streaming Apps) that are only accessible by the Event group. + Possible values are: - Enabled : An organizer of a Premium town hall can add a Premium App such as Polls to the Town hall - Disabled : An organizer of a Premium town hall CANNOT add a Premium App such as Polls to the Town hall + + String + + String + + + Enabled + + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + The Confirm switch does not work with this cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + Description + + Enables administrators to provide explanatory text to accompany a Teams Events policy. + + String + + String + + + None + + + EventAccessType + + > [!NOTE] > Currently, webinar and town hall event access is managed together via EventAccessType. + This setting governs which users can access the event registration page or the event site to register. It also governs which user type is allowed to join the session/s in the event. Possible values are: - Everyone : Enables creating events to allow in-tenant, guests, federated, and anonymous (external to the tenant) users to register and join the event. - EveryoneInCompanyExcludingGuests : Enables creating events to allow only in-tenant users to register and join the event. + + String + + String + + + None + + + Identity + + Unique identifier assigned to the Teams Events policy. + + String + + String + + + None + + + ImmersiveEvents + + This setting governs if a user can create Immersive Events using Teams Events. Possible values are: - Enabled : Enables creating Immersive Events. - Disabled : Disables creating Immersive Events. + + String + + String + + + Enabled + + + RecordingForTownhall + + Determines whether recording is allowed in a user's townhall. + Possible values are: - Enabled : Allow recording in user's townhalls. - Disabled : Prohibit recording in user's townhalls. + + String + + String + + + Enabled + + + RecordingForWebinar + + Determines whether recording is allowed in a user's webinar. + Possible values are: - Enabled : Allow recording in user's webinars. - Disabled : Prohibit recording in user's webinars. + + String + + String + + + Enabled + + + TownhallChatExperience + + This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. + Possible values are: Optimized, None. + + String + + String + + + None + + + TownhallEventAttendeeAccess + + This setting governs what identity types may attend a Town hall that is scheduled by a particular person or group that is assigned this policy. Possible values are: - Everyone : Anyone with the join link may enter the event. - EveryoneInOrganizationAndGuests : Only those who are Guests to the tenant, MTO users, and internal AAD users may enter the event. + + String + + String + + + Everyone + + + TranscriptionForTownhall + + Determines whether transcriptions are allowed in a user's townhall. + Possible values are: - Enabled : Allow transcriptions in user's townhalls. - Disabled : Prohibit transcriptions in user's townhalls. + + String + + String + + + Enabled + + + TranscriptionForWebinar + + Determines whether transcriptions are allowed in a user's webinar. + Possible values are: - Enabled : Allow transcriptions in user's webinars. - Disabled : Prohibit transcriptions in user's webinars. + + String + + String + + + Enabled + + + UseMicrosoftECDN + + This setting governs whether the admin disables this property and prevents the organizers from creating town halls that use Microsoft eCDN even though they have been assigned a Teams Premium license. + + Boolean + + Boolean + + + None + + + MaxResolutionForTownhall + + This policy sets the maximum video resolution supported in Town hall events. + Possible values are: - Max720p : Town halls support video resolution up to 720p. - Max1080p : Town halls support video resolution up to 1080p. + + String + + String + + + Max1080p + + + HighBitrateForTownhall + + This policy controls whether high-bitrate streaming is enabled for Town hall events. + Possible values are: - Enabled : Enables high bitrate for Town hall events. - Disabled : Disables high bitrate for Town hall events. + + String + + String + + + Disabled + + + WhatIf + + The WhatIf switch does not work with this cmdlet. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsEventsPolicy -Identity Global -AllowWebinars Disabled + + The command shown in Example 1 sets the value of the Default (Global) Events Policy in the organization to disable webinars, and leaves all other parameters the same. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseventspolicy + + + + + + Set-CsTeamsGuestCallingConfiguration + Set + CsTeamsGuestCallingConfiguration + + Allows admins to set values in the GuestCallingConfiguration, which specifies what options guest users have for calling within Teams. + + + + Allows admins to set values in the GuestCallingConfiguration, which specifies what options guest users have for calling within Teams. This policy primarily allows admins to disable calling for guest users within Teams. + + + + Set-CsTeamsGuestCallingConfiguration + + Identity + + The only option is Global + + XdsIdentity + + XdsIdentity + + + None + + + AllowPrivateCalling + + Designates whether guests who have been enabled for Teams can use calling functionality. If $false, guests cannot call. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Bypass confirmation + + + SwitchParameter + + + False + + + Instance + + Internal Microsoft use + + PSObject + + PSObject + + + None + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowPrivateCalling + + Designates whether guests who have been enabled for Teams can use calling functionality. If $false, guests cannot call. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Bypass confirmation + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The only option is Global + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Internal Microsoft use + + PSObject + + PSObject + + + None + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsGuestCallingConfiguration -Identity Global -AllowPrivateCalling $false + + In this example, the admin has disabled private calling for guests in his organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestcallingconfiguration + + + + + + Set-CsTeamsGuestMeetingConfiguration + Set + CsTeamsGuestMeetingConfiguration + + Designates what meeting features guests using Microsoft Teams will have available. Use this cmdlet to set the configuration. + + + + The TeamsGuestMeetingConfiguration designates which meeting features guests leveraging Microsoft Teams will have available. This configuration will apply to all guests utilizing Microsoft Teams. Use the Set-CsTeamsGuestMeetingConfiguration cmdlet to designate what values are set for your organization. + + + + Set-CsTeamsGuestMeetingConfiguration + + Identity + + The only input allowed is "Global" + + XdsIdentity + + XdsIdentity + + + None + + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow guests to share their video. Set this to FALSE to prohibit guests from sharing their video + + Boolean + + Boolean + + + None + + + AllowMeetNow + + Determines whether guests can start ad-hoc meetings. Set this to TRUE to allow guests to start ad-hoc meetings. Set this to FALSE to prohibit guests from starting ad-hoc meetings. + + Boolean + + Boolean + + + None + + + AllowTranscription + + Determines whether post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses all non fatal errors. + + + SwitchParameter + + + False + + + Instance + + Pipe the existing configuration from a Get- call. + + PSObject + + PSObject + + + None + + + LiveCaptionsEnabledType + + Determines whether real-time captions are available for guests in Teams meetings. Set this to DisabledUserOverride to allow guests to turn on live captions. Set this to Disabled to prohibit. + + String + + String + + + DisabledUserOverride + + + ScreenSharingMode + + Determines the mode in which guests can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens + + String + + String + + + None + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow guests to share their video. Set this to FALSE to prohibit guests from sharing their video + + Boolean + + Boolean + + + None + + + AllowMeetNow + + Determines whether guests can start ad-hoc meetings. Set this to TRUE to allow guests to start ad-hoc meetings. Set this to FALSE to prohibit guests from starting ad-hoc meetings. + + Boolean + + Boolean + + + None + + + AllowTranscription + + Determines whether post-meeting captions and transcriptions are allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses all non fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The only input allowed is "Global" + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Pipe the existing configuration from a Get- call. + + PSObject + + PSObject + + + None + + + LiveCaptionsEnabledType + + Determines whether real-time captions are available for guests in Teams meetings. Set this to DisabledUserOverride to allow guests to turn on live captions. Set this to Disabled to prohibit. + + String + + String + + + DisabledUserOverride + + + ScreenSharingMode + + Determines the mode in which guests can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens + + String + + String + + + None + + + Tenant + + Internal Microsoft use + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsGuestMeetingConfiguration -Identity Global -AllowMeetNow $false -AllowIPVideo $false + + Disables Guests' usage of MeetNow and Video calling in the organization; all other values of the configuration are left as is. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestmeetingconfiguration + + + + + + Set-CsTeamsGuestMessagingConfiguration + Set + CsTeamsGuestMessagingConfiguration + + TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. + + + + TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. This cmdlet lets you update the guest messaging options you'd like to enable in your organization. + + + + Set-CsTeamsGuestMessagingConfiguration + + Identity + + {{ Fill Identity Description }} + + XdsIdentity + + XdsIdentity + + + None + + + AllowGiphy + + Determines if Giphy images are available. + + Boolean + + Boolean + + + None + + + AllowImmersiveReader + + Determines if immersive reader for viewing messages is enabled. + + Boolean + + Boolean + + + None + + + AllowMemes + + Determines if memes are available for use. + + Boolean + + Boolean + + + None + + + AllowStickers + + Determines if stickers are available for use. + + Boolean + + Boolean + + + None + + + AllowUserChat + + Determines if a user is allowed to chat. + + Boolean + + Boolean + + + None + + + AllowUserDeleteChat + + Turn this setting on to allow users to permanently delete their one-on-one chat, group chat, and meeting chat as participants (this deletes the chat only for them, not other users in the chat). Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + TRUE + + + AllowUserDeleteMessage + + Determines if a user is allowed to delete their own messages. + + Boolean + + Boolean + + + None + + + AllowUserEditMessage + + Determines if a user is allowed to edit their own messages. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppresses all non-fatal errors. + + + SwitchParameter + + + False + + + GiphyRatingType + + Determines Giphy content restrictions. Default value is "Moderate", other options are "NoRestriction" and "Strict" + + String + + String + + + None + + + Instance + + {{ Fill Instance Description }} + + PSObject + + PSObject + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + UsersCanDeleteBotMessages + + Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowGiphy + + Determines if Giphy images are available. + + Boolean + + Boolean + + + None + + + AllowImmersiveReader + + Determines if immersive reader for viewing messages is enabled. + + Boolean + + Boolean + + + None + + + AllowMemes + + Determines if memes are available for use. + + Boolean + + Boolean + + + None + + + AllowStickers + + Determines if stickers are available for use. + + Boolean + + Boolean + + + None + + + AllowUserChat + + Determines if a user is allowed to chat. + + Boolean + + Boolean + + + None + + + AllowUserDeleteChat + + Turn this setting on to allow users to permanently delete their one-on-one chat, group chat, and meeting chat as participants (this deletes the chat only for them, not other users in the chat). Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + TRUE + + + AllowUserDeleteMessage + + Determines if a user is allowed to delete their own messages. + + Boolean + + Boolean + + + None + + + AllowUserEditMessage + + Determines if a user is allowed to edit their own messages. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppresses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + GiphyRatingType + + Determines Giphy content restrictions. Default value is "Moderate", other options are "NoRestriction" and "Strict" + + String + + String + + + None + + + Identity + + {{ Fill Identity Description }} + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + {{ Fill Instance Description }} + + PSObject + + PSObject + + + None + + + Tenant + + {{ Fill Tenant Description }} + + Guid + + Guid + + + None + + + UsersCanDeleteBotMessages + + Determines whether a user is allowed to delete messages sent by bots. Set this to TRUE to allow. Set this to FALSE to prohibit. + + Boolean + + Boolean + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsGuestMessagingConfiguration -AllowMemes $False + + The command shown in Example 1 disables memes usage by guests within Teams. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestmessagingconfiguration + + + + + + Set-CsTeamsIPPhonePolicy + Set + CsTeamsIPPhonePolicy + + Set-CsTeamsIPPhonePolicy enables you to modify the properties of an existing Teams phone policy settings. + + + + Set-CsTeamsIPPhonePolicy enables you to modify the properties of an existing TeamsIPPhonePolicy. + + + + Set-CsTeamsIPPhonePolicy + + Identity + + The identity of the policy. To specify the global policy for the organization, use "global". To specify any other policy provide the name of that policy. + + XdsIdentity + + XdsIdentity + + + None + + + AllowBetterTogether + + Determines whether Better Together mode is enabled, phones can lock and unlock in an integrated fashion when connected to their Windows PC running a 64-bit Teams desktop client. Possible values this parameter can take: + - Enabled + - Disabled + + String + + String + + + Enabled + + + AllowHomeScreen + + Determines whether the Home Screen feature of the Teams IP Phones is enabled. Possible values this parameter can take: + - Enabled + - EnabledUserOverride + - Disabled + + String + + String + + + EnabledUserOverride + + + AllowHotDesking + + Determines if the hot desking feature is enabled or not. Set this to TRUE to enable. Set this to FALSE to disable hot desking mode. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Free form text that can be used by administrators as desired. + + String + + String + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + HotDeskingIdleTimeoutInMinutes + + Determines the idle timeout value in minutes for the signed in user account. When the timeout is reached, the account is logged out. + + Int + + Int + + + None + + + SearchOnCommonAreaPhoneMode + + Determines whether a user can look up contacts from the tenant's global address book when the phone is signed into the Common Area Phone Mode. Set this to ENABLED to enable the feature. Set this to DISABLED to disable the feature. + + String + + String + + + None + + + SignInMode + + Determines the sign in mode for the device when signing in to Teams. Possible Values: - 'UserSignIn: Enables the individual user's Teams experience on the phone' + - 'CommonAreaPhoneSignIn: Enables a Common Area Phone experience on the phone' + - 'MeetingSignIn: Enables the meeting/conference room experience on the phone' + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowBetterTogether + + Determines whether Better Together mode is enabled, phones can lock and unlock in an integrated fashion when connected to their Windows PC running a 64-bit Teams desktop client. Possible values this parameter can take: + - Enabled + - Disabled + + String + + String + + + Enabled + + + AllowHomeScreen + + Determines whether the Home Screen feature of the Teams IP Phones is enabled. Possible values this parameter can take: + - Enabled + - EnabledUserOverride + - Disabled + + String + + String + + + EnabledUserOverride + + + AllowHotDesking + + Determines if the hot desking feature is enabled or not. Set this to TRUE to enable. Set this to FALSE to disable hot desking mode. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Free form text that can be used by administrators as desired. + + String + + String + + + None + + + Force + + Suppresses any confirmation prompts that would otherwise be displayed before making changes and suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + HotDeskingIdleTimeoutInMinutes + + Determines the idle timeout value in minutes for the signed in user account. When the timeout is reached, the account is logged out. + + Int + + Int + + + None + + + Identity + + The identity of the policy. To specify the global policy for the organization, use "global". To specify any other policy provide the name of that policy. + + XdsIdentity + + XdsIdentity + + + None + + + SearchOnCommonAreaPhoneMode + + Determines whether a user can look up contacts from the tenant's global address book when the phone is signed into the Common Area Phone Mode. Set this to ENABLED to enable the feature. Set this to DISABLED to disable the feature. + + String + + String + + + None + + + SignInMode + + Determines the sign in mode for the device when signing in to Teams. Possible Values: - 'UserSignIn: Enables the individual user's Teams experience on the phone' + - 'CommonAreaPhoneSignIn: Enables a Common Area Phone experience on the phone' + - 'MeetingSignIn: Enables the meeting/conference room experience on the phone' + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsIPPhonePolicy -Identity CommonAreaPhone -SignInMode CommonAreaPhoneSignin + + This example shows the SignInMode "CommonAreaPhoneSignIn" being set against the policy named "CommonAreaPhone". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsipphonepolicy + + + + + + Set-CsTeamsMeetingBroadcastConfiguration + Set + CsTeamsMeetingBroadcastConfiguration + + Changes the Teams meeting broadcast configuration settings for the specified tenant. + + + + Tenant level configuration for broadcast events in Teams + + + + Set-CsTeamsMeetingBroadcastConfiguration + + Identity + + You can only have one configuration - "Global" + + XdsIdentity + + XdsIdentity + + + None + + + AllowSdnProviderForBroadcastMeeting + + If set to $true, Teams meeting broadcast streams are enabled to take advantage of the network and bandwidth management capabilities of your Software Defined Network (SDN) provider. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Suppress all non-fatal errors + + + SwitchParameter + + + False + + + Instance + + You can pass in the output from Get-CsTeamsMeetingBroadcastConfiguration as input to this cmdlet (instead of Identity) + + PSObject + + PSObject + + + None + + + SdnApiTemplateUrl + + Specifies the Software Defined Network (SDN) provider's HTTP API endpoint. This information is provided to you by the SDN provider. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. + + String + + String + + + None + + + SdnApiToken + + Specifies the Software Defined Network (SDN) provider's authentication token which is required to use their SDN license. This is required by some SDN providers who will give you the required token. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. + + String + + String + + + None + + + SdnLicenseId + + Specifies the Software Defined Network (SDN) license identifier. This is required and provided by some SDN providers. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. + + String + + String + + + None + + + SdnProviderName + + Specifies the Software Defined Network (SDN) provider's name. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. + + String + + String + + + None + + + SdnRuntimeConfiguration + + Specifies connection parameters used to connect with a 3rd party eCDN provider. These parameters should be obtained from the SDN provider to be used. + + String + + String + + + None + + + SupportURL + + Specifies a URL where broadcast event attendees can find support information or FAQs specific to that event. The URL will be displayed to the attendees during the broadcast. + + String + + String + + + None + + + Tenant + + Not applicable to online service. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowSdnProviderForBroadcastMeeting + + If set to $true, Teams meeting broadcast streams are enabled to take advantage of the network and bandwidth management capabilities of your Software Defined Network (SDN) provider. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Suppress all non-fatal errors + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + You can only have one configuration - "Global" + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + You can pass in the output from Get-CsTeamsMeetingBroadcastConfiguration as input to this cmdlet (instead of Identity) + + PSObject + + PSObject + + + None + + + SdnApiTemplateUrl + + Specifies the Software Defined Network (SDN) provider's HTTP API endpoint. This information is provided to you by the SDN provider. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. + + String + + String + + + None + + + SdnApiToken + + Specifies the Software Defined Network (SDN) provider's authentication token which is required to use their SDN license. This is required by some SDN providers who will give you the required token. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. + + String + + String + + + None + + + SdnLicenseId + + Specifies the Software Defined Network (SDN) license identifier. This is required and provided by some SDN providers. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. + + String + + String + + + None + + + SdnProviderName + + Specifies the Software Defined Network (SDN) provider's name. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. + + String + + String + + + None + + + SdnRuntimeConfiguration + + Specifies connection parameters used to connect with a 3rd party eCDN provider. These parameters should be obtained from the SDN provider to be used. + + String + + String + + + None + + + SupportURL + + Specifies a URL where broadcast event attendees can find support information or FAQs specific to that event. The URL will be displayed to the attendees during the broadcast. + + String + + String + + + None + + + Tenant + + Not applicable to online service. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbroadcastconfiguration + + + + + + Set-CsTeamsMeetingBroadcastPolicy + Set + CsTeamsMeetingBroadcastPolicy + + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. + + + + User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use this cmdlet to update an existing policy. + + + + Set-CsTeamsMeetingBroadcastPolicy + + Identity + + Unique identifier for the policy to be modified. Policies can be configured at the global or per-user scopes. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity SalesPolicy. + Note that wildcards are not allowed when specifying an Identity. If you do not specify an Identity the cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + + + AllowBroadcastScheduling + + Specifies whether this user can create broadcast events in Teams. This setting impacts broadcasts that use both self-service and external encoder production methods. + + Boolean + + Boolean + + + None + + + AllowBroadcastTranscription + + Specifies whether real-time transcription and translation can be enabled in the broadcast event. + > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + + Boolean + + Boolean + + + None + + + BroadcastAttendeeVisibilityMode + + Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated users in my company can watch the event. + > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + Possible values: - Everyone + - EveryoneInCompany + - InvitedUsersInCompany + - EveryoneInCompanyAndExternal + - InvitedUsersInCompanyAndExternal + + String + + String + + + None + + + BroadcastRecordingMode + + Specifies whether broadcast events created by this user are always recorded (AlwaysEnabled), never recorded (AlwaysDisabled) or user can choose whether to record or not (UserOverride). + > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + Possible values: - AlwaysEnabled + - AlwaysDisabled + - UserOverride + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide additional text about the conferencing policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might occur when running the command. + + + SwitchParameter + + + False + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + Tenant + + Not applicable to online service. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowBroadcastScheduling + + Specifies whether this user can create broadcast events in Teams. This setting impacts broadcasts that use both self-service and external encoder production methods. + + Boolean + + Boolean + + + None + + + AllowBroadcastTranscription + + Specifies whether real-time transcription and translation can be enabled in the broadcast event. + > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + + Boolean + + Boolean + + + None + + + BroadcastAttendeeVisibilityMode + + Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated users in my company can watch the event. + > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + Possible values: - Everyone + - EveryoneInCompany + - InvitedUsersInCompany + - EveryoneInCompanyAndExternal + - InvitedUsersInCompanyAndExternal + + String + + String + + + None + + + BroadcastRecordingMode + + Specifies whether broadcast events created by this user are always recorded (AlwaysEnabled), never recorded (AlwaysDisabled) or user can choose whether to record or not (UserOverride). + > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. + Possible values: - AlwaysEnabled + - AlwaysDisabled + - UserOverride + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide additional text about the conferencing policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Suppresses the display of any non-fatal error message that might occur when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the policy to be modified. Policies can be configured at the global or per-user scopes. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity SalesPolicy. + Note that wildcards are not allowed when specifying an Identity. If you do not specify an Identity the cmdlet will automatically modify the global policy. + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + Tenant + + Not applicable to online service. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsMeetingBroadcastPolicy -Identity Global -AllowBroadcastScheduling $false + + Sets the value of the Default (Global) Broadcast Policy in the organization to disable broadcast scheduling, and leaves all other parameters the same. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbroadcastpolicy + + + + + + Set-CsTeamsMobilityPolicy + Set + CsTeamsMobilityPolicy + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + + + + The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. + The Set-CsTeamsMobilityPolicy cmdlet allows administrators to update teams mobility policies. + + + + Set-CsTeamsMobilityPolicy + + Identity + + Specify the name of the policy that you are creating. + + XdsIdentity + + XdsIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Bypasses all non-fatal errors. + + + SwitchParameter + + + False + + + IPAudioMobileMode + + When set to WifiOnly, prohibits the user from making, receiving calls or joining meetings using VoIP calls on the mobile device while on cellular data connection. + + String + + String + + + None + + + IPVideoMobileMode + + When set to WifiOnly, prohibits the user from making, receiving video calls or enabling video in meetings using VoIP calls on the mobile device while on cellular data connection. + + String + + String + + + None + + + MobileDialerPreference + + Determines the mobile dialer preference, possible values are: Teams, Native, UserOverride. For more information, see Manage user incoming calling policies (https://learn.microsoft.com/microsoftteams/operator-connect-mobile-configure#manage-user-incoming-calling-policies). + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide explanatory text about the policy. For example, the Description might indicate the users the policy should be assigned to. + + String + + String + + + None + + + Force + + Bypasses all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the name of the policy that you are creating. + + XdsIdentity + + XdsIdentity + + + None + + + IPAudioMobileMode + + When set to WifiOnly, prohibits the user from making, receiving calls or joining meetings using VoIP calls on the mobile device while on cellular data connection. + + String + + String + + + None + + + IPVideoMobileMode + + When set to WifiOnly, prohibits the user from making, receiving video calls or enabling video in meetings using VoIP calls on the mobile device while on cellular data connection. + + String + + String + + + None + + + MobileDialerPreference + + Determines the mobile dialer preference, possible values are: Teams, Native, UserOverride. For more information, see Manage user incoming calling policies (https://learn.microsoft.com/microsoftteams/operator-connect-mobile-configure#manage-user-incoming-calling-policies). + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsMobilityPolicy -Identity SalesPolicy -IPVideoMobileMode "WifiOnly + + The command shown in Example 1 uses the Set-CsTeamsMobilityPolicy cmdlet to update an existing teams mobility policy with the Identity SalesPolicy. This SalesPolicy will not have IPVideoMobileMode equal to "WifiOnly". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmobilitypolicy + + + + + + Set-CsTeamsNetworkRoamingPolicy + Set + CsTeamsNetworkRoamingPolicy + + Set-CsTeamsNetworkRoamingPolicy allows IT Admins to create or update policies for Network Roaming and Bandwidth Control experiences in Microsoft Teams. + + + + Updates or creates new Teams Network Roaming Policies configured for use in your organization. + The TeamsNetworkRoamingPolicy cmdlets enable administrators to provide specific settings from the TeamsMeetingPolicy to be rendered dynamically based upon the location of the Teams client. The TeamsNetworkRoamingPolicy cannot be granted to a user but instead can be assigned to a network site. The settings from the TeamsMeetingPolicy included are AllowIPVideo and MediaBitRateKb. When a Teams client is connected to a network site where a CsTeamRoamingPolicy is assigned, these two settings from the TeamsRoamingPolicy will be used instead of the settings from the TeamsMeetingPolicy. + More on the impact of bit rate setting on bandwidth can be found here (https://learn.microsoft.com/microsoftteams/prepare-network). + To enable the network roaming policy for users who are not Enterprise Voice enabled, you must also enable the AllowNetworkConfigurationSettingsLookup setting in TeamsMeetingPolicy. This setting is off by default. See Set-TeamsMeetingPolicy for more information on how to enable AllowNetworkConfigurationSettingsLookup for users who are not Enterprise Voice enabled. + + + + Set-CsTeamsNetworkRoamingPolicy + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. + + Boolean + + Boolean + + + True + + + Description + + Description of the policy to be edited. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be modified. + + XdsIdentity + + XdsIdentity + + + None + + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + Integer + + Integer + + + 50000 + + + + + + AllowIPVideo + + Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. + + Boolean + + Boolean + + + True + + + Description + + Description of the policy to be edited. + + String + + String + + + None + + + Identity + + Unique identifier of the policy to be modified. + + XdsIdentity + + XdsIdentity + + + None + + + MediaBitRateKb + + Determines the media bit rate for audio/video/app sharing transmissions in meetings. + + Integer + + Integer + + + 50000 + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsNetworkRoamingPolicy -Identity "RedmondRoaming" -AllowIPVideo $true -MediaBitRateKb 2000 -Description "Redmond campus roaming policy" + + The command shown in Example 1 updates the teams network roaming policy with Identity "RedmondRoaming" with IP Video feature enabled, and the maximum media bit rate is capped at 2000 Kbps. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsnetworkroamingpolicy + + + + + + Set-CsTeamsRoomVideoTeleConferencingPolicy + Set + CsTeamsRoomVideoTeleConferencingPolicy + + Modifies the property of an existing TeamsRoomVideoTeleConferencingPolicy. + + + + The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). + + + + Set-CsTeamsRoomVideoTeleConferencingPolicy + + Identity + + Unique identifier for the policy to be modified. + + String + + String + + + None + + + AreaCode + + GUID provided by the CVI partner that the customer signed the agreement with + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Enables administrators to provide additional text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Enabled + + The policy can exist for the tenant but it can be enabled or disabled. + + Boolean + + Boolean + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PlaceExternalCalls + + The IT admin can configure that their Teams rooms are enabled to place external calls or not, meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + PlaceInternalCalls + + The IT admin can configure that their Teams rooms are enabled to place internal calls or not. Meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are within their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + ReceiveExternalCalls + + The IT admin can configure that their Teams rooms are enabled to receive external calls or not, meaning calls from Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + ReceiveInternalCalls + + The IT admin can configure that their Teams rooms are enabled to receive external calls or not. Meaning calls from Video Teleconferencing devices from their own tenant Value: Enabled, Disabled + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AreaCode + + GUID provided by the CVI partner that the customer signed the agreement with + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Enables administrators to provide additional text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. + + String + + String + + + None + + + Enabled + + The policy can exist for the tenant but it can be enabled or disabled. + + Boolean + + Boolean + + + None + + + Identity + + Unique identifier for the policy to be modified. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + PlaceExternalCalls + + The IT admin can configure that their Teams rooms are enabled to place external calls or not, meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + PlaceInternalCalls + + The IT admin can configure that their Teams rooms are enabled to place internal calls or not. Meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are within their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + ReceiveExternalCalls + + The IT admin can configure that their Teams rooms are enabled to receive external calls or not, meaning calls from Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled + + String + + String + + + None + + + ReceiveInternalCalls + + The IT admin can configure that their Teams rooms are enabled to receive external calls or not. Meaning calls from Video Teleconferencing devices from their own tenant Value: Enabled, Disabled + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsroomvideoteleconferencingpolicy + + + + + + Set-CsTeamsSettingsCustomApp + Set + CsTeamsSettingsCustomApp + + Set the Custom Apps Setting's value of Teams Admin Center. + + + + There is a switch for managing Custom Apps in the Org-wide App Settings page of Teams Admin Center. The command can set the value of this switch. If the isSideloadedAppsInteractionEnabled is set to true, the switch is enabled. So that the custom apps can be uploaded as app packages and available in the organization's app store, vice versa. + + + + Set-CsTeamsSettingsCustomApp + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + isSideloadedAppsInteractionEnabled + + The value to Custom Apps Setting. If the value is true, the custom apps can be uploaded as app packages and available in the organization's app store, vice versa. + + Boolean + + Boolean + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + isSideloadedAppsInteractionEnabled + + The value to Custom Apps Setting. If the value is true, the custom apps can be uploaded as app packages and available in the organization's app store, vice versa. + + Boolean + + Boolean + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsSettingsCustomApp -isSideloadedAppsInteractionEnabled $True + + Set the value of Custom Apps Setting to true. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssettingscustomapp + + + Get-CsTeamsSettingsCustomApp + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssettingscustomapp + + + + + + Set-CsTeamsShiftsAppPolicy + Set + CsTeamsShiftsAppPolicy + + Allows you to set or update properties of a Teams Shifts App Policy instance. + + + + The Teams Shifts app is designed to help frontline workers and their managers manage schedules and communicate effectively. + + + + Set-CsTeamsShiftsAppPolicy + + Identity + + Policy instance name. + + String + + String + + + None + + + AllowTimeClockLocationDetection + + Turns on the location detection. The time report will indicate whether workers are "on location" when they clocked in and out. Workers are considered as "on location" if they clock in or out within a 200-meter radius of the set location. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowTimeClockLocationDetection + + Turns on the location detection. The time report will indicate whether workers are "on location" when they clocked in and out. Workers are considered as "on location" if they clock in or out within a 200-meter radius of the set location. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Policy instance name. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsShiftsAppPolicy 'Default' -AllowTimeClockLocationDetection $False + + Change Settings on a Teams Shift App Policy (only works on Global policy) + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsapppolicy + + + + + + Set-CsTeamsShiftsConnection + Set + CsTeamsShiftsConnection + + This cmdlet sets an existing workforce management (WFM) connection. + + + + This cmdlet updates a Shifts WFM connection. It allows the admin to make changes to the settings such as the name and WFM URLs. Note that the update allows for, but does not require, the -ConnectorSpecificSettings.LoginPwd and ConnectorSpecificSettings.LoginUserName to be included. This cmdlet can update every input field except -ConnectorId and -ConnectionId. + + + + Set-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Body + + The request body. + + IUpdateWfmConnectionRequest + + IUpdateWfmConnectionRequest + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Body + + The request body. + + IUpdateWfmConnectionRequest + + IUpdateWfmConnectionRequest + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connector-specific settings. + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + Name + + The connection name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connector-specific settings. + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Name + + The connection name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Body + + The request body. + + IUpdateWfmConnectionRequest + + IUpdateWfmConnectionRequest + + + None + + + Break + + Wait for .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connector-specific settings. + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + IUpdateWfmConnectionRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Name + + The connection name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + State + + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionRequest + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId 4dae9db0-0841-412c-8d6b-f5684bfebdd7 +PS C:\> $result = Set-CsTeamsShiftsConnection ` + -connectionId $connection.Id ` + -IfMatch $connection.Etag ` + -connectorId "6A51B888-FF44-4FEA-82E1-839401E00000" ` + -name "Cmdlet test connection - updated" ` + -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest ` + -Property @{ + adminApiUrl = "https://contoso.com/retail/data/wfmadmin/api/v1-beta2" + siteManagerUrl = "https://contoso.com/retail/data/wfmsm/api/v1-beta2" + essApiUrl = "https://contoso.com/retail/data/wfmess/api/v1-beta1" + retailWebApiUrl = "https://contoso.com/retail/data/retailwebapi/api/v1" + cookieAuthUrl = "https://contoso.com/retail/data/login" + federatedAuthUrl = "https://contoso.com/retail/data/login" + LoginUserName = "PlaceholderForUsername" + LoginPwd = "PlaceholderForPassword" + }) ` + -state "Active" + +PS C:\> $result | Format-List + +ConnectorId : 6A51B888-FF44-4FEA-82E1-839401E00000 +ConnectorSpecificSettingAdminApiUrl : https://www.contoso.com/retail/data/wfmadmin/api/v1-beta2 +ConnectorSpecificSettingApiUrl : +ConnectorSpecificSettingAppKey : +ConnectorSpecificSettingClientId : +ConnectorSpecificSettingCookieAuthUrl : https://www.contoso.com/retail/data/login +ConnectorSpecificSettingEssApiUrl : https://www.contoso.com/retail/data/wfmess/api/v1-beta2 +ConnectorSpecificSettingFederatedAuthUrl : https://www.contoso.com/retail/data/login +ConnectorSpecificSettingRetailWebApiUrl : https://www.contoso.com/retail/data/retailwebapi/api/v1 +ConnectorSpecificSettingSiteManagerUrl : https://www.contoso.com/retail/data/wfmsm/api/v1-beta2 +ConnectorSpecificSettingSsoUrl : +CreatedDateTime : 24/03/2023 04:58:23 +Etag : "5b00dd1b-0000-0400-0000-641d2df00000" +Id : 4dae9db0-0841-412c-8d6b-f5684bfebdd7 +LastModifiedDateTime : 24/03/2023 04:58:23 +Name : Cmdlet test connection - updated +State : Active +TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 + + Updates the instance with the specified -ConnectionId. Returns the object of the updated connection. + In case of an error, you can capture the error response as follows: + * Hold the cmdlet output in a variable: `$result=<CMDLET>` + * To get the entire error message in Json: `$result.ToJsonString()` + * To get the error object and object details: `$result, $result.Detail` + + + + -------------------------- Example 2 -------------------------- + PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId 79964000-286a-4216-ac60-c795a426d61a +PS C:\> $result = Set-CsTeamsShiftsConnection ` + -connectionId $connection.Id ` + -IfMatch $connection.Etag ` + -connectorId "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0" ` + -name "Cmdlet test connection - updated" ` + -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest ` + -Property @{ + apiUrl = "https://www.contoso.com/api" + ssoUrl = "https://www.contoso.com/sso" + appKey = "PlaceholderForAppKey" + clientId = "Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W" + clientSecret = "PlaceholderForClientSecret" + LoginUserName = "PlaceholderForUsername" + LoginPwd = "PlaceholderForPassword" + }) ` + -state "Active" +PS C:\> $result | Format-List + +ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 +ConnectorSpecificSettingAdminApiUrl : +ConnectorSpecificSettingApiUrl : https://www.contoso.com/api +ConnectorSpecificSettingAppKey : +ConnectorSpecificSettingClientId : Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W +ConnectorSpecificSettingCookieAuthUrl : +ConnectorSpecificSettingEssApiUrl : +ConnectorSpecificSettingFederatedAuthUrl : +ConnectorSpecificSettingRetailWebApiUrl : +ConnectorSpecificSettingSiteManagerUrl : +ConnectorSpecificSettingSsoUrl : https://www.contoso.com/sso +CreatedDateTime : 06/04/2023 11:05:39 +Etag : "3100fd6e-0000-0400-0000-642ea7840000" +Id : a2d1b091-5140-4dd2-987a-98a8b5338744 +LastModifiedDateTime : 06/04/2023 11:05:39 +Name : Cmdlet test connection - updated +State : Active +TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 + + Updates the instance with the specified -ConnectionId. Returns the object of the updated connection. + In case of an error, you can capture the error response as follows: + * Hold the cmdlet output in a variable: `$result=<CMDLET>` + * To get the entire error message in Json: `$result.ToJsonString()` + * To get the error object and object details: `$result, $result.Detail` + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection + + + Get-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection + + + New-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection + + + Update-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection + + + Test-CsTeamsShiftsConnectionValidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate + + + + + + Set-CsTeamsShiftsConnectionInstance + Set + CsTeamsShiftsConnectionInstance + + This cmdlet updates a Shifts connection instance. + + + + This cmdlet updates a Shifts connection instance. It allows the admin to make changes to the settings in the instance such as name, enabled scenarios, and sync frequency. This cmdlet can update every input field except -ConnectorId and -ConnectorInstanceId. + + + + Set-CsTeamsShiftsConnectionInstance + + Body + + The request body + + IConnectorInstanceRequest + + IConnectorInstanceRequest + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectorInstanceId + + The Id of the connector instance to be updated. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsShiftsConnectionInstance + + Body + + The request body + + IConnectorInstanceRequest + + IConnectorInstanceRequest + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsShiftsConnectionInstance + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorAdminEmail + + Gets or sets the list of connector admin email addresses. + + String[] + + String[] + + + None + + + ConnectorInstanceId + + The Id of the connector instance to be updated. + + String + + String + + + None + + + DesignatedActorId + + Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. + + String + + String + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + + String + + String + + + None + + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + + + SyncScenarioOfferShiftRequest + + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShift + + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTeamsShiftsConnectionInstance + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorAdminEmail + + Gets or sets the list of connector admin email addresses. + + String[] + + String[] + + + None + + + DesignatedActorId + + Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. + + String + + String + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + + String + + String + + + None + + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + + + SyncScenarioOfferShiftRequest + + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShift + + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Body + + The request body + + IConnectorInstanceRequest + + IConnectorInstanceRequest + + + None + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectionId + + Gets or sets the WFM connection ID for the new instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorAdminEmail + + Gets or sets the list of connector admin email addresses. + + String[] + + String[] + + + None + + + ConnectorInstanceId + + The Id of the connector instance to be updated. + + String + + String + + + None + + + DesignatedActorId + + Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. + + String + + String + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the etag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter. + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + State + + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + + String + + String + + + None + + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + + + SyncScenarioOfferShiftRequest + + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShift + + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceRequest + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $connectionInstance = Get-CsTeamsShiftsConnectionInstance -ConnectorInstanceId WCI-eba2865f-6cac-46f9-8733-e0631a4536e1 +PS C:\> $result = Set-CsTeamsShiftsConnectionInstance ` + -connectorInstanceId "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1" + -IfMatch $connectionInstance.Etag ` + -connectionId "79964000-286a-4216-ac60-c795a426d61a" ` + -name "Cmdlet test instance - updated" ` + -connectorAdminEmail @() ` + -designatedActorId "93f85765-47db-412d-8f06-9844718762a1" ` + -State "Active" ` + -syncFrequencyInMin "10" ` + -SyncScenarioOfferShiftRequest "FromWfmToShifts" ` + -SyncScenarioOpenShift "FromWfmToShifts" ` + -SyncScenarioOpenShiftRequest "FromWfmToShifts" ` + -SyncScenarioShift "FromWfmToShifts" ` + -SyncScenarioSwapRequest "FromWfmToShifts" ` + -SyncScenarioTimeCard "FromWfmToShifts" ` + -SyncScenarioTimeOff "FromWfmToShifts" ` + -SyncScenarioTimeOffRequest "FromWfmToShifts" ` + -SyncScenarioUserShiftPreference "Disabled" + +PS C:\> $result.ToJsonString() + +{ + "syncScenarios": { + "offerShiftRequest": "FromWfmToShifts", + "openShift": "FromWfmToShifts", + "openShiftRequest": "FromWfmToShifts", + "shift": "FromWfmToShifts", + "swapRequest": "FromWfmToShifts", + "timeCard": "FromWfmToShifts", + "timeOff": "FromWfmToShifts", + "timeOffRequest": "FromWfmToShifts", + "userShiftPreferences": "Disabled" + }, + "id": "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1", + "tenantId": "dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a", + "connectionId": "a2d1b091-5140-4dd2-987a-98a8b5338744", + "connectorAdminEmails": [ ], + "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", + "designatedActorId": "ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231", + "name": "Cmdlet test instance - updated", + "syncFrequencyInMin": 10, + "workforceIntegrationId": "WFI_6b225907-b476-4d40-9773-08b86db7b11b", + "etag": "\"4f005d22-0000-0400-0000-642ff64a0000\"", + "createdDateTime": "2023-04-07T10:54:01.8170000Z", + "lastModifiedDateTime": "2023-04-07T10:54:01.8170000Z", + "state": "Active" +} + + Updates the instance with the specified -ConnectorInstanceId. Returns the object of the updated connector instance. + In case of error, we can capture the error response as following: + * Hold the cmdlet output in a variable: `$result=<CMDLET>` + * To get the entire error message in Json: `$result.ToJsonString()` + * To get the error object and object details: `$result, $result.Detail` + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance + + + Get-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + New-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance + + + Update-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnectioninstance + + + Remove-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance + + + Test-CsTeamsShiftsConnectionValidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate + + + + + + Set-CsTeamsSurvivableBranchAppliance + Set + CsTeamsSurvivableBranchAppliance + + Changes the Survivable Branch Appliance (SBA) configuration settings for the specified tenant. + + + + The Survivable Branch Appliance (SBA) cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + Set-CsTeamsSurvivableBranchAppliance + + Identity + + The identity of the policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Description of the policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + Site + + The TenantNetworkSite where the SBA is located. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Description of the policy. + + String + + String + + + None + + + Identity + + The identity of the policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + Site + + The TenantNetworkSite where the SBA is located. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssurvivablebranchappliance + + + + + + Set-CsTeamsSurvivableBranchAppliancePolicy + Set + CsTeamsSurvivableBranchAppliancePolicy + + Changes the Survivable Branch Appliance (SBA) Policy configuration settings for the specified tenant. + + + + The Survivable Branch Appliance (SBA) Policy cmdlets facilitate the continuation of Teams Phone operations, allowing for the placement and reception of Public Switched Telephone Network (PSTN) calls during service disruptions. These cmdlets are exclusively intended for Tenant Administrators and Session Border Controller (SBC) Vendors. In the absence of SBA configuration within a Tenant, the cmdlets will be inoperative. + + + + Set-CsTeamsSurvivableBranchAppliancePolicy + + Identity + + The identity of the policy. + + String + + String + + + None + + + BranchApplianceFqdns + + The FQDN of the SBA(s) in the site. + + Object + + Object + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + BranchApplianceFqdns + + The FQDN of the SBA(s) in the site. + + Object + + Object + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The identity of the policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssurvivablebranchappliancepolicy + + + + + + Set-CsTeamsTargetingPolicy + Set + CsTeamsTargetingPolicy + + The Set-CsTeamsTargetingPolicy cmdlet allows administrators to update existing Tenant tag settings that can be assigned to particular teams to control Team features related to tags. + + + + The CsTeamsTargetingPolicy cmdlets enable administrators to control the type of tags that users can create or the features that they can access in Teams. It also helps determine how tags deal with Teams members or guest users. + + + + Set-CsTeamsTargetingPolicy + + Identity + + Name of the policy instance to be updated. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + CustomTagsMode + + Determine whether Teams users can create tags in team. Set this to Enabled to allow users to create new tags. Set this to Disabled to prohibit them from creating new tags. + + String + + String + + + None + + + Description + + Pass in a new description if that field needs to be updated. + + String + + String + + + None + + + ManageTagsPermissionMode + + Determine whether team users can manage tag settings in Teams. Set this to EnabledTeamOwner to only allow Teams owners to manage tag settings in current Teams. Set this to EnabledTeamOwnerMember to allow Teams owners and Teams members to manage tag settings in current Teams. Set this to EnabledTeamOwnerMemberGuest to allow Teams owners, Teams members and guest users to manage tag settings in current Teams. Set this to MicrosoftDefault to user default setting in current Teams, which will be the same as EnabledTeamOwner. Set this to Disabled to prohibit all users from managing tag settings in current Teams. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + ShiftBackedTagsMode + + Determine whether Teams can have tags created by Shift App. Set this to Enabled to allow tags created by Shift App. Set this to Disabled to prohibit tags from Shift App. + + String + + String + + + None + + + TeamOwnersEditWhoCanManageTagsMode + + Determine whether Teams owners can change Tenant tag settings. Set this to Enabled to allow Teams owners to change Tenant tag settings for current Teams. Set this to Disabled to prohibit them from changing Tenant tag settings. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + CustomTagsMode + + Determine whether Teams users can create tags in team. Set this to Enabled to allow users to create new tags. Set this to Disabled to prohibit them from creating new tags. + + String + + String + + + None + + + Description + + Pass in a new description if that field needs to be updated. + + String + + String + + + None + + + Identity + + Name of the policy instance to be updated. + + String + + String + + + None + + + ManageTagsPermissionMode + + Determine whether team users can manage tag settings in Teams. Set this to EnabledTeamOwner to only allow Teams owners to manage tag settings in current Teams. Set this to EnabledTeamOwnerMember to allow Teams owners and Teams members to manage tag settings in current Teams. Set this to EnabledTeamOwnerMemberGuest to allow Teams owners, Teams members and guest users to manage tag settings in current Teams. Set this to MicrosoftDefault to user default setting in current Teams, which will be the same as EnabledTeamOwner. Set this to Disabled to prohibit all users from managing tag settings in current Teams. + + String + + String + + + None + + + MsftInternalProcessingMode + + For Internal use only. + + String + + String + + + None + + + ShiftBackedTagsMode + + Determine whether Teams can have tags created by Shift App. Set this to Enabled to allow tags created by Shift App. Set this to Disabled to prohibit tags from Shift App. + + String + + String + + + None + + + TeamOwnersEditWhoCanManageTagsMode + + Determine whether Teams owners can change Tenant tag settings. Set this to Enabled to allow Teams owners to change Tenant tag settings for current Teams. Set this to Disabled to prohibit them from changing Tenant tag settings. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsTargetingPolicy -Identity NewTagPolicy -CustomTagsMode Enabled + + The command shown in Example 1 uses the Set-CsTeamsTargetingPolicy cmdlet to update an existing Tenant tag setting with the CustomTagsMode Enabled. This flag will enable Teams users to create tags. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy + + + Get-CsTargetingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy + + + Remove-CsTargetingPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy + + + + + + Set-CsTeamsTranslationRule + Set + CsTeamsTranslationRule + + Cmdlet to modify an existing normalization rule. + + + + You can use this cmdlet to modify an existing number manipulation rule. The rule can be used, for example, in the settings of your SBC (Set-CsOnlinePSTNGateway) to convert a callee or caller number to a desired format before entering or leaving Microsoft Phone System + + + + Set-CsTeamsTranslationRule + + Identity + + Identifier of the rule. This parameter is required and later used to assign the rule to the Inbound or Outbound Trunk Normalization policy. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + A friendly description of the normalization rule. + + String + + String + + + None + + + Pattern + + A regular expression that caller or callee number must match in order for this rule to be applied. + + String + + String + + + None + + + Translation + + The regular expression pattern that will be applied to the number to convert it. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + A friendly description of the normalization rule. + + String + + String + + + None + + + Identity + + Identifier of the rule. This parameter is required and later used to assign the rule to the Inbound or Outbound Trunk Normalization policy. + + String + + String + + + None + + + Pattern + + A regular expression that caller or callee number must match in order for this rule to be applied. + + String + + String + + + None + + + Translation + + The regular expression pattern that will be applied to the number to convert it. + + String + + String + + + None + + + WhatIf + + Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTeamsTranslationRule -Identity StripE164SeattleAreaCode -Pattern ^+12065555(\d{3})$ -Translation $1 + + This example modifies the rule that initially configured to strip +1206555 from any E.164 ten digits number. For example, +12065555555 translated to 5555 to a new pattern. Modified rule now only applies to three digit number (initially to four digits number) and adds one more number in prefix (+120655555 instead of +1206555) + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule + + + New-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule + + + Get-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule + + + Test-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule + + + Remove-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule + + + + + + Set-CsTeamsUnassignedNumberTreatment + Set + CsTeamsUnassignedNumberTreatment + + Changes a treatment for how calls to an unassigned number range should be routed. The call can be routed to a user, an application or to an announcement service where a custom message will be played to the caller. + + + + This cmdlet changes a treatment for how calls to an unassigned number range should be routed. + + + + Set-CsTeamsUnassignedNumberTreatment + + Identity + + The Id of the specific treatment. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Free format description of this treatment. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + Pattern + + A regular expression that the called number must match in order for the treatment to take effect. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + Target + + The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. + + System.String + + System.String + + + None + + + TargetType + + The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. + + System.String + + System.String + + + None + + + TreatmentPriority + + The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Free format description of this treatment. + + System.String + + System.String + + + None + + + Identity + + The Id of the specific treatment. + + System.String + + System.String + + + None + + + MsftInternalProcessingMode + + {{ Fill MsftInternalProcessingMode Description }} + + System.String + + System.String + + + None + + + Pattern + + A regular expression that the called number must match in order for the treatment to take effect. It is best practice to start the regular expression with the hat character and end it with the dollar character. You can use various regular expression test sites on the Internet to validate the expression. + + System.String + + System.String + + + None + + + Target + + The identity of the destination the call should be routed to. Depending on the TargetType it should either be the ObjectId of the user or application instance/resource account or the AudioFileId of the uploaded audio file. + + System.String + + System.String + + + None + + + TargetType + + The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. + + System.String + + System.String + + + None + + + TreatmentPriority + + The priority of the treatment. Used to distinguish identical patterns. The lower the priority the higher preference. The priority needs to be unique. + + System.Int32 + + System.Int32 + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Object + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PS module 2.5.1 or later. + Both inbound calls to Microsoft Teams and outbound calls from Microsoft Teams will have the called number checked against the unassigned number range. + To route calls to unassigned Microsoft Calling Plan subscriber numbers, your tenant needs to have available Communications Credits. + To route calls to unassigned Microsoft Calling Plan service numbers, your tenant needs to have at least one Microsoft Teams Phone Resource Account license. + If a specified pattern/range contains phone numbers that are assigned to a user or resource account in the tenant, calls to these phone numbers will be routed to the appropriate target and not routed to the specified unassigned number treatment. There are no other checks of the numbers in the range. If the range contains a valid external phone number, outbound calls from Microsoft Teams to that phone number will be routed according to the treatment. + + + + + -------------------------- Example 1 -------------------------- + $RAObjectId = (Get-CsOnlineApplicationInstance -Identity aa2@contoso.com).ObjectId +Set-CsTeamsUnassignedNumberTreatment -Identity MainAA -Target $RAObjectId + + This example changes the treatment MainAA to route the calls to the resource account aa2@contoso.com. + + + + -------------------------- Example 2 -------------------------- + $UserObjectId = (Get-CsOnlineUser -Identity user2@contoso.com).Identity +Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Target $UserObjectId + + This example changes the treatment User2PSTN to route the calls to the user user2@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment + + + Import-CsOnlineAudioFile + https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile + + + Get-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment + + + Remove-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment + + + New-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment + + + Test-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment + + + + + + Set-CsTeamsWorkLoadPolicy + Set + CsTeamsWorkLoadPolicy + + This cmdlet sets the Teams Workload Policy value for current tenant. + + + + The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. + + + + Set-CsTeamsWorkLoadPolicy + + Identity + + The identity of the Teams Work Load Policy. + + String + + String + + + None + + + AllowCalling + + Determines if calling workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowCallingPinned + + Determines if calling workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMeeting + + Determines if meetings workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMeetingPinned + + Determines if meetings workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMessaging + + Determines if messaging workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMessagingPinned + + Determines if messaging workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + The description of the policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AllowCalling + + Determines if calling workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowCallingPinned + + Determines if calling workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMeeting + + Determines if meetings workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMeetingPinned + + Determines if meetings workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMessaging + + Determines if messaging workload is enabled in the Teams App. Possible values are True and False. + + Boolean + + Boolean + + + None + + + AllowMessagingPinned + + Determines if messaging workload is pinned to the teams navigation bar. Possible values are True and False. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + The description of the policy. + + String + + String + + + None + + + Identity + + The identity of the Teams Work Load Policy. + + String + + String + + + None + + + MsftInternalProcessingMode + + For internal use only. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTeamsWorkLoadPolicy -Identity Global -AllowCalling Disabled + + This sets the Teams Workload Policy Global value of AllowCalling to disabled. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy + + + Remove-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy + + + Get-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy + + + New-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy + + + Grant-CsTeamsWorkLoadPolicy + https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy + + + + + + Set-CsTenantBlockedCallingNumbers + Set + CsTenantBlockedCallingNumbers + + Use the Set-CsTenantBlockedCallingNumbers cmdlet to set tenant blocked calling numbers setting. + + + + Microsoft Direct Routing, Operator Connect and Calling Plans supports blocking of inbound calls from the public switched telephone network (PSTN). This feature allows a tenant-global list of number patterns to be defined so that the caller ID of every incoming PSTN call to the tenant can be checked against the list for a match. If a match is made, an incoming call is rejected. + The tenant blocked calling numbers includes a list of inbound blocked number patterns. Number patterns are managed through the CsInboundBlockedNumberPattern commands New, Get, Set, and Remove. You can manage a given pattern by using these cmdlets, including the ability to toggle the activation of a given pattern. + The tenant blocked calling numbers also includes a list of number patterns exempt from call blocking. Exempt number patterns are managed through the CsInboundExemptNumberPattern commands New, Get, Set, and Remove. You can manage a given pattern by using these cmdlets, including the ability to toggle the activation of a given pattern. + You can test your number blocking by using the Test-CsInboundBlockedNumberPattern command. + The scope of tenant blocked calling numbers is global across the given tenant. This command-let can also turn on/off the blocked calling numbers setting at the tenant level. + To get the current tenant blocked calling numbers setting, use Get-CsTenantBlockedCallingNumbers + + + + Set-CsTenantBlockedCallingNumbers + + Identity + + The Identity parameter is a unique identifier which identifies the TenantBlockedCallingNumbers to set. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Enabled + + The switch to turn on or turn off the blocked calling numbers setting. + + Object + + Object + + + None + + + Force + + The Force switch overrides the confirmation prompt displayed. + + + SwitchParameter + + + False + + + InboundBlockedNumberPatterns + + The InboundBlockedNumberPatterns parameter contains the list of InboundBlockedNumberPatterns. + + Object + + Object + + + None + + + InboundExemptNumberPatterns + + The InboundExemptNumberPatterns parameter contains the list of InboundExemptNumberPatterns. + + Object + + Object + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet. + + Object + + Object + + + None + + + Name + + This parameter allows you to provide a name to the TenantBlockedCallingNumbers setting. + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for internal Microsoft use. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Enabled + + The switch to turn on or turn off the blocked calling numbers setting. + + Object + + Object + + + None + + + Force + + The Force switch overrides the confirmation prompt displayed. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + The Identity parameter is a unique identifier which identifies the TenantBlockedCallingNumbers to set. + + String + + String + + + None + + + InboundBlockedNumberPatterns + + The InboundBlockedNumberPatterns parameter contains the list of InboundBlockedNumberPatterns. + + Object + + Object + + + None + + + InboundExemptNumberPatterns + + The InboundExemptNumberPatterns parameter contains the list of InboundExemptNumberPatterns. + + Object + + Object + + + None + + + Instance + + Allows you to pass a reference to an object to the cmdlet. + + Object + + Object + + + None + + + Name + + This parameter allows you to provide a name to the TenantBlockedCallingNumbers setting. + + Object + + Object + + + None + + + Tenant + + This parameter is reserved for internal Microsoft use. + + Object + + Object + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTenantBlockedCallingNumbers -Enabled $false + + This example turns off the tenant blocked calling numbers setting. No inbound number will be blocked from this feature. + + + + -------------------------- Example 2 -------------------------- + Set-CsTenantBlockedCallingNumbers -Enabled $true + + This example turns on the tenant blocked calling numbers setting. Inbound calls will be blocked based on the list of blocked number patterns. + + + + -------------------------- Example 3 -------------------------- + Set-CsTenantBlockedCallingNumbers -Name "MyCustomBlockedCallingNumbersName" + + This example renames the current blocked calling numbers with "MyCustomBlockedCallingNumbersName". No change is made besides the Name field change. + + + + -------------------------- Example 4 -------------------------- + Set-CsTenantBlockedCallingNumbers -InboundBlockedNumberPatterns @((New-CsInboundBlockedNumberPattern -Name "AnonymousBlockedPattern" -Enabled $true -Pattern "^(?!)Anonymous")) + + This example sets the tenant blocked calling numbers with a new list of inbound blocked number patterns. There is a new InboundBlockedNumberPattern being created. The pattern name is "AnonymousBlockedPattern". The pattern is turned on. The pattern is a normalization rule which contains "Anonymous". + Note that if the current InboundBlockedNumberPatterns already contains a list of patterns while a new pattern needs to be created, this example will wipe out the existing patterns and only add the new one. Please save the current InboundBlockedNumberPatterns list before adding new patterns. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantblockedcallingnumbers + + + Get-CsTenantBlockedCallingNumbers + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers + + + Test-CsInboundBlockedNumberPattern + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern + + + + + + Set-CsTenantDialPlan + Set + CsTenantDialPlan + + Use the `Set-CsTenantDialPlan` cmdlet to modify an existing tenant dial plan. + + + + The `Set-CsTenantDialPlan` cmdlet modifies an existing tenant dial plan. A tenant dial plan determines such things as which normalization rules are applied. Tenant dial plans provide required information to let Enterprise Voice users make telephone calls. The Conferencing Attendant application also uses tenant dial plans for dial-in conferencing. + + + + Set-CsTenantDialPlan + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is a unique identifier that designates the name of the tenant dial plan to modify. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to or any other information that helps to identify the purpose of the tenant dial plan. Maximum characters is 1040. + + String + + String + + + None + + + NormalizationRules + + > Applicable: Microsoft Teams + The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet, which creates the rule and assigns it to the specified tenant dial plan. + The number of normalization rules cannot exceed 50 per TenantDialPlan. + + List + + List + + + None + + + SimpleName + + > Applicable: Microsoft Teams + The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant dial plans. + This string can be up to 49 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot (.), and parentheses (()). + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + > Applicable: Microsoft Teams + The Description parameter describes the tenant dial plan - what it's for, what type of user it applies to or any other information that helps to identify the purpose of the tenant dial plan. Maximum characters is 1040. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The Identity parameter is a unique identifier that designates the name of the tenant dial plan to modify. + + String + + String + + + None + + + NormalizationRules + + > Applicable: Microsoft Teams + The NormalizationRules parameter is a list of normalization rules that are applied to this dial plan. Although this list and these rules can be created directly by using this cmdlet, we recommend that you create the normalization rules by the New-CsVoiceNormalizationRule (https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule)cmdlet, which creates the rule and assigns it to the specified tenant dial plan. + The number of normalization rules cannot exceed 50 per TenantDialPlan. + + List + + List + + + None + + + SimpleName + + > Applicable: Microsoft Teams + The SimpleName parameter is a display name for the tenant dial plan. This name must be unique among all tenant dial plans. + This string can be up to 49 characters long. Valid characters are alphabetic or numeric characters, hyphen (-), dot (.), and parentheses (()). + + String + + String + + + None + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. + + + + + -------------------------- Example 1 -------------------------- + $nr2 = Get-CsVoiceNormalizationRule -Identity "US/US Long Distance" +Set-CsTenantDialPlan -Identity vt1tenantDialPlan9 -NormalizationRules @{Add=$nr2} + + This example updates the vt1tenantDialPlan9 tenant dial plan to use the US/US Long Distance normalization rules. + + + + -------------------------- Example 2 -------------------------- + $DP = Get-CsTenantDialPlan -Identity Global +$NR = $DP.NormalizationRules | Where Name -eq "RedmondFourDigit") +$NR.Name = "RedmondRule" +Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules + + This example changes the name of a normalization rule. Keep in mind that changing the name also changes the name portion of the Identity. The `Set-CsVoiceNormalizationRule` cmdlet doesn't have a Name parameter, so in order to change the name, we first call the `Get-CsTenantDialPlan` cmdlet to retrieve the Dial Plan with the Identity Global and assign the returned object to the variable $DP. Then we filter the NormalizationRules Object for the rule RedmondFourDigit and assign the returned object to the variable $NR. We then assign the string RedmondRule to the Name property of the object. Finally, we pass the variable back to the NormalizationRules parameter of the `Set-CsTenantDialPlan` cmdlet to make the change permanent. + + + + -------------------------- Example 3 -------------------------- + $DP = Get-CsTenantDialPlan -Identity Global +$NR = $DP.NormalizationRules | Where Name -eq "RedmondFourDigit") +$DP.NormalizationRules.Remove($NR) +Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules + + This example removes a normalization rule. We utilize the same functionality as for Example 3 to manipulate the Normalization Rule Object and update it with the `Set-CsTenantDialPlan` cmdlet. We first call the `Get-CsTenantDialPlan` cmdlet to retrieve the Dial Plan with the Identity Global and assign the returned object to the variable $DP. Then we filter the NormalizationRules Object for the rule RedmondFourDigit and assign it to the variable $NR. Next, we remove this Object with the Remove Method from $DP.NormalizationRules. Finally, we pass the variable back to the NormalizationRules parameter of the `Set-CsTenantDialPlan` cmdlet to make the change permanent. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan + + + Grant-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan + + + New-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan + + + Get-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan + + + Remove-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan + + + + + + Set-CsTenantFederationConfiguration + Set + CsTenantFederationConfiguration + + Manages federation configuration settings for your Skype for Business Online tenants. + + + + > [!NOTE] > Starting May 5, 2025, Skype Consumer Interoperability with Teams is no longer supported and the parameter AllowPublicUsers can no longer be used. + Federation is a service that enables users to exchange IM and presence information with users from other domains. With Skype for Business Online, administrators can use the federation configuration settings to govern: + Whether or not users can communicate with people from other domains and if so, which domains they are allowed to communicate with. + Whether or not users can communicate with people who have accounts on public IM and presence providers such as Windows Live, Skype, or people using Microsoft Teams with an account that's not managed by an organization. + Administrators can use the `Set-CsTenantFederationConfiguration` cmdlet to enable and disable federation with other domains and federation with public providers. In addition, this cmdlet can be used to expressly indicate the domains that users can communicate with and/or the domains that users are not allowed to communicate with. However, administrators must use the `Set-CsTenantPublicProvider` cmdlet in order to indicate the public IM and presence providers that users can and cannot communicate with. + + + + Set-CsTenantFederationConfiguration + + Identity + + > Applicable: Microsoft Teams + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the `Set-CsTenantFederationConfiguration` cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + XdsIdentity + + XdsIdentity + + + None + + + AllowedDomains + + > Applicable: Microsoft Teams + Domain objects (created by using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet) that represent the domains that users are allowed to communicate with. If the `New-CsEdgeAllowAllKnownDomains` cmdlet is used then users can communicate with any domain that does not appear on the blocked domains list. If the `New-CsEdgeAllowList` cmdlet is used then users can only communicate with domains that have been added to the allowed domains list. + Note that string values cannot be passed directly to the AllowedDomains parameter. Instead, you must create an object reference using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet and then use the object reference variable as the parameter value. + The AllowedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. + + Boolean + + Boolean + + + None + + + AllowedDomainsAsAList + + > Applicable: Microsoft Teams + You can specify allowed domains using a List object that contains the domains that users are allowed to communicate with. See Examples section. + + List + + List + + + None + + + AllowedTrialTenantDomains + + > Applicable: Microsoft Teams + You can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. This will allow you to protect your organization against majority of tenants that don't have any paid subscriptions, while still being able to collaborate externally with those trusted trial-tenants in the list. + Note: - The list supports up to maximum 4k domains. + - If `ExternalAccessWithTrialTenants` is set to `Allowed`, then the `AllowedTrialTenantDomains` list will not be checked. + - Any domain in this list that belongs to a tenant with paid subscriptions will be ignored. + + List + + List + + + None + + + AllowFederatedUsers + + > Applicable: Microsoft Teams + When set to True (the default value) users will be potentially allowed to communicate with users from other domains. If this property is set to False then users cannot communicate with users from other domains, regardless of the values assigned to the `AllowedDomains` and `BlockedDomains` properties or any `ExternalAccessPolicy` instances. In effect, the `AllowFederatedUsers` property serves as a master switch that globally enables or disables federation across the Tenant, overridding all other policy settings. + To block all domains while selectively allowing specific users to communicate externally via explicit `ExternalAccessPolicy` instances, set `AllowFederatedUsers` to `True` and leave the `AllowedDomains` property empty. + + Boolean + + Boolean + + + None + + + AllowTeamsConsumer + + Allows federation with people using Teams with an account that's not managed by an organization. + + Boolean + + Boolean + + + True + + + AllowTeamsConsumerInbound + + Allows people using Teams with an account that's not managed by an organization, to discover and start communication with users in your organization. When -AllowTeamsConsumer is enabled and this parameter is disabled, only the users in your organization will be able to discover and start communication with people using Teams with an account that's not managed by an organization, but they will not discover and start communications with users in your organization. + + Boolean + + Boolean + + + True + + + BlockAllSubdomains + + > Applicable: Skype for Business Online + If the BlockedDomains parameter is used, then BlockAllSubdomains can be used to activate all subdomains blocking. If the BlockedDomains parameter is ignored, then BlockAllSubdomains is also ignored. Just like for BlockedDomains, users will be disallowed from communicating with users from blocked domains. But all subdomains for domains in this list will also be blocked. + + + SwitchParameter + + + False + + + BlockedDomains + + > Applicable: Microsoft Teams + If the AllowedDomains property has been set to AllowAllKnownDomains, then users will be allowed to communicate with users from any domain except domains that appear in the blocked domains list. If the AllowedDomains property has not been set to AllowAllKnownDomains, then the blocked list is ignored, and users can only communicate with domains that have been expressly added to the allowed domains list. + The BlockedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. + + List + + List + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + DomainBlockingForMDOAdminsInTeams + + > Applicable: Microsoft Teams + When set to 'Enabled', security operations team will be able to add domains to the blocklist on security portal. When set to 'Disabled', security operations team will not have permissions to update the domains blocklist. + + DomainBlockingForMDOAdminsInTeamsType + + DomainBlockingForMDOAdminsInTeamsType + + + None + + + ExternalAccessWithTrialTenants + + > Applicable: Microsoft Teams + When set to 'Blocked', all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to "Blocked", users from the trial-only tenant will also be removed from existing chats. + Allowed - Communication with other tenants is allowed based on other settings. + Blocked - Communication with users in tenants that contain only trial licenses will be blocked. + + ExternalAccessWithTrialTenantsType + + ExternalAccessWithTrialTenantsType + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. + + + SwitchParameter + + + False + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + RestrictTeamsConsumerToExternalUserProfiles + + Defines if a user is restricted to collaboration with Teams Consumer (TFL) user only in Extended Directory. Possible values: True, False + + Boolean + + Boolean + + + None + + + SharedSipAddressSpace + + > Applicable: Microsoft Teams + When set to True, indicates that the users homed on Skype for Business Online use the same SIP domain as users homed on the on-premises version of Skype for Business Server. The default value is False, meaning that the two sets of users have different SIP domains. + + Boolean + + Boolean + + + None + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose federation settings are being modified. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + TreatDiscoveredPartnersAsUnverified + + > Applicable: Microsoft Teams + When set to True, messages sent from discovered partners are considered unverified. That means that those messages will be delivered only if they were sent from a person who is on the recipient's Contacts list. The default value is False ($False). + + Boolean + + Boolean + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + AllowedDomains + + > Applicable: Microsoft Teams + Domain objects (created by using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet) that represent the domains that users are allowed to communicate with. If the `New-CsEdgeAllowAllKnownDomains` cmdlet is used then users can communicate with any domain that does not appear on the blocked domains list. If the `New-CsEdgeAllowList` cmdlet is used then users can only communicate with domains that have been added to the allowed domains list. + Note that string values cannot be passed directly to the AllowedDomains parameter. Instead, you must create an object reference using the `New-CsEdgeAllowList` cmdlet or the `New-CsEdgeAllowAllKnownDomains` cmdlet and then use the object reference variable as the parameter value. + The AllowedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. + + Boolean + + Boolean + + + None + + + AllowedDomainsAsAList + + > Applicable: Microsoft Teams + You can specify allowed domains using a List object that contains the domains that users are allowed to communicate with. See Examples section. + + List + + List + + + None + + + AllowedTrialTenantDomains + + > Applicable: Microsoft Teams + You can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. This will allow you to protect your organization against majority of tenants that don't have any paid subscriptions, while still being able to collaborate externally with those trusted trial-tenants in the list. + Note: - The list supports up to maximum 4k domains. + - If `ExternalAccessWithTrialTenants` is set to `Allowed`, then the `AllowedTrialTenantDomains` list will not be checked. + - Any domain in this list that belongs to a tenant with paid subscriptions will be ignored. + + List + + List + + + None + + + AllowFederatedUsers + + > Applicable: Microsoft Teams + When set to True (the default value) users will be potentially allowed to communicate with users from other domains. If this property is set to False then users cannot communicate with users from other domains, regardless of the values assigned to the `AllowedDomains` and `BlockedDomains` properties or any `ExternalAccessPolicy` instances. In effect, the `AllowFederatedUsers` property serves as a master switch that globally enables or disables federation across the Tenant, overridding all other policy settings. + To block all domains while selectively allowing specific users to communicate externally via explicit `ExternalAccessPolicy` instances, set `AllowFederatedUsers` to `True` and leave the `AllowedDomains` property empty. + + Boolean + + Boolean + + + None + + + AllowTeamsConsumer + + Allows federation with people using Teams with an account that's not managed by an organization. + + Boolean + + Boolean + + + True + + + AllowTeamsConsumerInbound + + Allows people using Teams with an account that's not managed by an organization, to discover and start communication with users in your organization. When -AllowTeamsConsumer is enabled and this parameter is disabled, only the users in your organization will be able to discover and start communication with people using Teams with an account that's not managed by an organization, but they will not discover and start communications with users in your organization. + + Boolean + + Boolean + + + True + + + BlockAllSubdomains + + > Applicable: Skype for Business Online + If the BlockedDomains parameter is used, then BlockAllSubdomains can be used to activate all subdomains blocking. If the BlockedDomains parameter is ignored, then BlockAllSubdomains is also ignored. Just like for BlockedDomains, users will be disallowed from communicating with users from blocked domains. But all subdomains for domains in this list will also be blocked. + + SwitchParameter + + SwitchParameter + + + False + + + BlockedDomains + + > Applicable: Microsoft Teams + If the AllowedDomains property has been set to AllowAllKnownDomains, then users will be allowed to communicate with users from any domain except domains that appear in the blocked domains list. If the AllowedDomains property has not been set to AllowAllKnownDomains, then the blocked list is ignored, and users can only communicate with domains that have been expressly added to the allowed domains list. + The BlockedDomains parameter can support up to 4,000 domains. + > [!IMPORTANT] > The `AllowFederatedUsers` property must be set to `True` for the `AllowedDomains` list to take effect. If `AllowFederatedUsers` is set to `False`, users will be blocked from communicating with all external domains regardless of the values in `AllowedDomains` or any `ExternalAccessPolicy` instance. + + List + + List + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + DomainBlockingForMDOAdminsInTeams + + > Applicable: Microsoft Teams + When set to 'Enabled', security operations team will be able to add domains to the blocklist on security portal. When set to 'Disabled', security operations team will not have permissions to update the domains blocklist. + + DomainBlockingForMDOAdminsInTeamsType + + DomainBlockingForMDOAdminsInTeamsType + + + None + + + ExternalAccessWithTrialTenants + + > Applicable: Microsoft Teams + When set to 'Blocked', all external access with users from Teams subscriptions that contain only trial licenses will be blocked. This means users from these trial-only tenants will not be able to reach to your users via chats, Teams calls, and meetings (using the users authenticated identity) and your users will not be able to reach users in these trial-only tenants. If this setting is set to "Blocked", users from the trial-only tenant will also be removed from existing chats. + Allowed - Communication with other tenants is allowed based on other settings. + Blocked - Communication with users in tenants that contain only trial licenses will be blocked. + + ExternalAccessWithTrialTenantsType + + ExternalAccessWithTrialTenantsType + + + None + + + Force + + > Applicable: Microsoft Teams + Suppresses the display of any non-fatal error message that might arise when running the command. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Specifies the collection of tenant federation configuration settings to be modified. Because each tenant is limited to a single, global collection of federation settings there is no need include this parameter when calling the `Set-CsTenantFederationConfiguration` cmdlet. If you do choose to use the Identity parameter you must also include the Tenant parameter. For example: + `Set-CsTenantFederationConfiguration -Tenant "bf19b7db-6960-41e5-a139-2aa373474354" -Identity "global"` + + XdsIdentity + + XdsIdentity + + + None + + + Instance + + > Applicable: Microsoft Teams + Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. + + PSObject + + PSObject + + + None + + + RestrictTeamsConsumerToExternalUserProfiles + + Defines if a user is restricted to collaboration with Teams Consumer (TFL) user only in Extended Directory. Possible values: True, False + + Boolean + + Boolean + + + None + + + SharedSipAddressSpace + + > Applicable: Microsoft Teams + When set to True, indicates that the users homed on Skype for Business Online use the same SIP domain as users homed on the on-premises version of Skype for Business Server. The default value is False, meaning that the two sets of users have different SIP domains. + + Boolean + + Boolean + + + None + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose federation settings are being modified. For example: + `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` + You can return your tenant ID by running this command: + `Get-CsTenant | Select-Object DisplayName, TenantID` + If you are using a remote session of Windows PowerShell and are connected only to Skype for Business Online you do not have to include the Tenant parameter. Instead, the tenant ID will automatically be filled in for you based on your connection information. The Tenant parameter is primarily for use in a hybrid deployment. + + Guid + + Guid + + + None + + + TreatDiscoveredPartnersAsUnverified + + > Applicable: Microsoft Teams + When set to True, messages sent from discovered partners are considered unverified. That means that those messages will be delivered only if they were sent from a person who is on the recipient's Contacts list. The default value is False ($False). + + Boolean + + Boolean + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Input types + + + The `Set-CsTenantFederationConfiguration` cmdlet accepts pipelined instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings object. + + + + + + + Output types + + + None. Instead, the `Set-CsTenantFederationConfiguration` cmdlet modifies existing instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings object. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +Set-CsTenantFederationConfiguration -BlockedDomains @{Replace=$x} + + In Example 1, the domain fabrikam.com is assigned as the only domain on the blocked domains list for current tenant. To do this, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a new domain object for fabrikam.com. This domain object is stored in a variable named $x. + The second command in the example then uses the `Set-CsTenantFederationConfiguration` cmdlet to update the blocked domains list. Using the Replace method ensures that the existing blocked domains list will be replaced by the new list: a list that contains only the domain fabrikam.com. + + + + -------------------------- Example 3 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +Set-CsTenantFederationConfiguration -BlockedDomains @{Remove=$x} + + The commands shown in Example 3 remove fabrikam.com from the list of domains blocked by the current tenant. To do this, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a domain object for fabrikam.com. The resulting domain object is then stored in a variable named $x. + The second command in the example then uses the `Set-CsTenantFederationConfiguration` cmdlet and the Remove method to remove fabrikam.com from the blocked domains list for the specified tenant. + + + + -------------------------- Example 4 -------------------------- + $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" + +Set-CsTenantFederationConfiguration -BlockedDomains @{Add=$x} + + The commands shown in Example 4 add the domain fabrikam.com to the list of domains blocked by the current tenant. To add a new blocked domain, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a domain object for fabrikam.com. This object is stored in a variable named $x. + After the domain object has been created, the second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the Add method to add fabrikam.com to any domains already on the blocked domains list. + + + + -------------------------- Example 5 -------------------------- + Set-CsTenantFederationConfiguration -BlockedDomains $Null + + Example 5 shows how you can remove all the domains assigned to the blocked domains list for the current tenant. To do this, simply include the BlockedDomains parameter and set the parameter value to null ($Null). When this command completes, the blocked domain list will be cleared. + + + + -------------------------- Example 6 -------------------------- + Set-CsTenantFederationConfiguration -AllowedDomains $Null + + Example 6 shows how you can remove all the domains assigned to the allowed domains list for the current tenant, thereby blocking external communication for all users in the Tenant. In case `AllowFederatedUsers` is set to `True`, then explicit `ExternalAccessPolicy` instances can be leveraged to set a per-user federation setting. To do this, simply include the AllowedDomains parameter and set the parameter value to null ($Null). When this command completes, the allowed domain list will be cleared. + + + + -------------------------- Example 7 -------------------------- + $list = New-Object Collections.Generic.List[String] +$list.add("contoso.com") +$list.add("fabrikam.com") +Set-CsTenantFederationConfiguration -AllowedDomainsAsAList $list + + Example 7 shows how you can replace domains in the Allowed Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the AllowedDomainsAsAList parameter and set the parameter value to the List object. When this command completes, the allowed domains list will be replaced with those domains. + + + + -------------------------- Example 8 -------------------------- + $list = New-Object Collections.Generic.List[String] +$list.add("contoso.com") +$list.add("fabrikam.com") +Set-CsTenantFederationConfiguration -AllowedDomainsAsAList @{Add=$list} + + Example 8 shows how you can add domains to the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Add method in the AllowedDomainsAsAList parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the AllowedDomains list. + + + + -------------------------- Example 9 -------------------------- + $list = New-Object Collections.Generic.List[String] +$list.add("contoso.com") +$list.add("fabrikam.com") +Set-CsTenantFederationConfiguration -AllowedDomainsAsAList @{Remove=$list} + + Example 9 shows how you can remove domains from the existing Allowed Domains using a List object. First, a List is created and domains are added to it, then use the Remove method in the AllowedDomainsAsAList parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the AllowedDomains list. + + + + -------------------------- Example 10 -------------------------- + Set-CsTenantFederationConfiguration -AllowTeamsConsumer $True -AllowTeamsConsumerInbound $False + + The command shown in Example 10 enables communication with people using Teams with an account that's not managed by an organization, to only be initiated by people in your organization. This means that people using Teams with an account that's not managed by an organization will not be able to discover or start a conversation with people in your organization. + + + + -------------------------- Example 11 -------------------------- + $list = New-Object Collections.Generic.List[String] +$list.add("contoso.com") +$list.add("fabrikam.com") +Set-CsTenantFederationConfiguration -BlockedDomains $list + +Set-CsTenantFederationConfiguration -BlockAllSubdomains $True + + Example 11 shows how you can block all subdomains of domains in BlockedDomains list. In this example, all users from contoso.com and fabrikam.com will be blocked. When the BlockAllSubdomains is enabled, all users from all subdomains of all domains in BlockedDomains list will also be blocked. So, users from subdomain.contoso.com and subdomain.fabrikam.com will be blocked. Note: Users from subcontoso.com will not be blocked because it's a completely different domain rather than a subdomain of contoso.com. + + + + -------------------------- Example 12 -------------------------- + Set-CsTenantFederationConfiguration -ExternalAccessWithTrialTenants "Allowed" + + Example 12 shows how you can allow users to communicate with users in tenants that contain only trial licenses (default value is Blocked). + + + + -------------------------- Example 13 -------------------------- + $list = New-Object Collections.Generic.List[String] +$list.add("contoso.com") +$list.add("fabrikam.com") + +Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains $list + + Using the `AllowedTrialTenantDomains` parameter, you can whitelist specific "trial-only" tenant domains, while keeping the `ExternalAccessWithTrialTenants` set to `Blocked`. Example 13 shows how you can set or replace domains in the Allowed Trial Tenant Domains using a List collection object. First, a List collection is created and domains are added to it, then, simply include the `AllowedTrialTenantDomains` parameter and set the parameter value to the List object. When this command completes, the Allowed Trial Tenant Domains list will be replaced with those domains. + + + + -------------------------- Example 14 -------------------------- + Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @("contoso.com", "fabrikam.com") + + Example 14 shows another way to set a value of `AllowedTrialTenantDomains`. It uses array of objects and it always replaces value of the `AllowedTrialTenantDomains`. When this command completes, the result is the same as in example 13. + The array of `AllowedTrialTenantDomains` can be emptied by running the following command: `Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @()`. + + + + -------------------------- Example 15 -------------------------- + $list = New-Object Collections.Generic.List[String] +$list.add("contoso.com") + +Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Add=$list} + + Example 15 shows how you can add domains to the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then, use the Add method in the `AllowedTrialTenantDomains` parameter to add the domains to the existing allowed domains list. When this command completes, the domains in the list will be added to any domains already on the Allowed Trial Tenant Domains list. + + + + -------------------------- Example 16 -------------------------- + $list = New-Object Collections.Generic.List[String] +$list.add("contoso.com") + +Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$list} + + Example 16 shows how you can remove domains from the existing Allowed Trial Tenant Domains using a List collection object. First, a List is created and domains are added to it, then use the Remove method in the `AllowedTrialTenantDomains` parameter to remove the domains from the existing allowed domains list. When this command completes, the domains in the list will be removed from the Allowed Trial Tenant Domains list. + + + + -------------------------- Example 17 -------------------------- + Set-CsTenantFederationConfiguration -DomainBlockingForMDOAdminsInTeams "Enabled" + + + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration + + + Get-CsTenantFederationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantfederationconfiguration + + + + + + Set-CsTenantMigrationConfiguration + Set + CsTenantMigrationConfiguration + + Used to enable or disable Meeting Migration Service (MMS). + + + + Used to enable or disable Meeting Migration Service (MMS). For more information, see Using the Meeting Migration Service (MMS) (https://learn.microsoft.com/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms). + + + + Set-CsTenantMigrationConfiguration + + Identity + + > Applicable: Microsoft Teams + Unique identifier for the Migration Configuration. + + String + + String + + + None + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + MeetingMigrationEnabled + + > Applicable: Microsoft Teams + Set this to false to disable the Meeting Migration Service. + + Boolean + + Boolean + + + None + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose Migration Configurations are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. + + + SwitchParameter + + + False + + + + Set-CsTenantMigrationConfiguration + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Instance + + > Applicable: Microsoft Teams + The Instance parameter allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values. You can retrieve this object reference by calling the `Get-CsTenantMigrationConfiguration` cmdlet. + + PSObject + + PSObject + + + None + + + MeetingMigrationEnabled + + > Applicable: Microsoft Teams + Set this to false to disable the Meeting Migration Service. + + Boolean + + Boolean + + + None + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose Migration Configurations are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Unique identifier for the Migration Configuration. + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + The Instance parameter allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values. You can retrieve this object reference by calling the `Get-CsTenantMigrationConfiguration` cmdlet. + + PSObject + + PSObject + + + None + + + MeetingMigrationEnabled + + > Applicable: Microsoft Teams + Set this to false to disable the Meeting Migration Service. + + Boolean + + Boolean + + + None + + + Tenant + + > Applicable: Microsoft Teams + Globally unique identifier (GUID) of the tenant account whose Migration Configurations are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + Guid + + Guid + + + None + + + WhatIf + + > Applicable: Microsoft Teams + Shows what would happen if the cmdlet runs. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsTenantMigrationConfiguration -MeetingMigrationEnabled $false + + This example disables MMS in the organization. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration + + + + + + Set-CsTenantNetworkRegion + Set + CsTenantNetworkRegion + + Changes the definintion of network regions. + + + + As an admin, you can use the Teams PowerShell command, Set-CsTenantNetworkRegion to define network regions. A network region interconnects various parts of a network across multiple geographic areas. The RegionID parameter is a logical name that represents the geography of the region and has no dependencies or restrictions. The organization's network region is used for Location-Based Routing. + Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. A network region contains a collection of network sites. For example, if your organization has many sites located in Redmond, then you may choose to designate "Redmond" as a network region. + + + + Set-CsTenantNetworkRegion + + CentralSite + + This parameter is not used. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network region to identify purpose of setting it. + + String + + String + + + None + + + Identity + + Unique identifier for the network region to be set. + + String + + String + + + None + + + NetworkRegionID + + The name of the network region. Not required in this PowerShell command. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + CentralSite + + This parameter is not used. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the network region to identify purpose of setting it. + + String + + String + + + None + + + Identity + + Unique identifier for the network region to be set. + + String + + String + + + None + + + NetworkRegionID + + The name of the network region. Not required in this PowerShell command. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTenantNetworkRegion -Identity "RegionA" -Description "Region A" + + The command shown in Example 1 sets the network region 'RegionA' with the description 'Region A'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion + + + New-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion + + + Remove-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion + + + Get-CsTenantNetworkRegion + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion + + + + + + Set-CsTenantNetworkSite + Set + CsTenantNetworkSite + + Changes the definition of network sites. + + + + A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. Each network site must be associated with a network region. + A best practice for Location Based Routing (LBR) is to create a separate site for each location which has unique PSTN connectivity. Sites may be created as LBR or non-LBR enabled. A non-LBR enabled site may be created to allow LBR enabled users to make PSTN calls when they roam to that site. Note that network sites may also be used for emergency calling enablement and configuration. In addition, network sites can also be used for configuring Network Roaming Policy capabilities. + + + + Set-CsTenantNetworkSite + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network site to identify purpose of setting it. + + String + + String + + + None + + + EmergencyCallingPolicy + + This parameter is used to assign a custom emergency calling policy to a network site. For more information, see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). + + String + + String + + + None + + + EmergencyCallRoutingPolicy + + This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). + + String + + String + + + None + + + EnableLocationBasedRouting + + This parameter determines whether the current site is enabled for Location-Based Routing. + + Boolean + + Boolean + + + None + + + Identity + + Unique identifier for the network site to be set. + + String + + String + + + None + + + LocationPolicy + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + NetworkRegionID + + NetworkRegionID is the identifier for the network region which the current network site is associating to. + + String + + String + + + None + + + NetworkRoamingPolicy + + NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the network site to identify purpose of setting it. + + String + + String + + + None + + + EmergencyCallingPolicy + + This parameter is used to assign a custom emergency calling policy to a network site. For more information, see Assign a custom emergency calling policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-calling-policies#assign-a-custom-emergency-calling-policy-to-a-network-site). + + String + + String + + + None + + + EmergencyCallRoutingPolicy + + This parameter is used to assign a custom emergency call routing policy to a network site. For more information, see Assign a custom emergency call routing policy to a network site (https://learn.microsoft.com/microsoftteams/manage-emergency-call-routing-policies#assign-a-custom-emergency-call-routing-policy-to-a-network-site). + + String + + String + + + None + + + EnableLocationBasedRouting + + This parameter determines whether the current site is enabled for Location-Based Routing. + + Boolean + + Boolean + + + None + + + Identity + + Unique identifier for the network site to be set. + + String + + String + + + None + + + LocationPolicy + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + NetworkRegionID + + NetworkRegionID is the identifier for the network region which the current network site is associating to. + + String + + String + + + None + + + NetworkRoamingPolicy + + NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTenantNetworkSite -Identity "MicrosoftSite1" -NetworkRegionID "RegionRedmond" -Description "Microsoft site 1" + + The command shown in Example 1 set the network site 'MicrosoftSite1' with description 'Microsoft site 1'. + The network region 'RegionRedmond' is created beforehand and 'MicrosoftSite1' will be associated with 'RegionRedmond'. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTenantNetworkSite -Identity "site2" -Description "site 2" -NetworkRegionID "RedmondRegion" -EnableLocationBasedRouting $true + + The command shown in Example 2 sets the network site 'site2' with description 'site 2'. This site is enabled for LBR. The example associates the site with network region 'RedmondRegion'. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-CsTenantNetworkSite -Identity "site3" -Description "site 3" -NetworkRegionID "RedmondRegion" -NetworkRoamingPolicy "TestNetworkRoamingPolicy" + + The command shown in Example 3 sets the network site 'site3' with description 'site 3'. This site is enabled for network roaming capabilities. The example associates the site with network region 'RedmondRegion' and network roaming policy 'TestNetworkRoamingPolicy'. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite + + + New-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite + + + Remove-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite + + + Get-CsTenantNetworkSite + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite + + + + + + Set-CsTenantNetworkSubnet + Set + CsTenantNetworkSubnet + + Changes the definition of network subnets. + + + + IP subnets at the location where Teams endpoints can connect to the network must be defined and associated to a defined network in order to enforce toll bypass. Multiple subnets may be associated with the same network site, but multiple sites may not be associated with a same subnet. This association of subnets enables Location-Based Routing to locate the endpoints geographically to determine if a given PSTN call should be allowed. Both IPv4 and IPv6 subnets are supported. When determining if a Teams endpoint is located at a site an IPv6 address will be checked for a match first. + + + + Set-CsTenantNetworkSubnet + + Identity + + Unique identifier for the network subnet to be set. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network subnet to identify purpose of setting it. + + String + + String + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + + Int32 + + Int32 + + + None + + + NetworkSiteID + + NetworkSiteID is the identifier for the network site which the current network subnet is associating to. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the network subnet to identify purpose of setting it. + + String + + String + + + None + + + Identity + + Unique identifier for the network subnet to be set. + + String + + String + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + + Int32 + + Int32 + + + None + + + NetworkSiteID + + NetworkSiteID is the identifier for the network site which the current network subnet is associating to. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTenantNetworkSubnet -Identity "192.168.0.1" -MaskBits "24" -NetworkSiteID "site1" + + The command shown in Example 1 set the network subnet '192.168.0.1'. The subnet is in IPv4 format, and the subnet is assigned to network site 'site1'. The maskbits is set to 24. + IPv4 format subnet accepts maskbits from 0 to 32 inclusive. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTenantNetworkSubnet -Identity "2001:4898:e8:25:844e:926f:85ad:dd8e" -MaskBits "120" -NetworkSiteID "site1" -Description "Subnet 2001:4898:e8:25:844e:926f:85ad:dd8e" + + The command shown in Example 2 set the network subnet '2001:4898:e8:25:844e:926f:85ad:dd8e' with description 'Subnet 2001:4898:e8:25:844e:926f:85ad:dd8e'. The subnet is in IPv6 format, and the subnet is assigned to network site 'site1'. The maskbits is set to 120. + IPv6 format subnet accepts maskbits from 0 to 128 inclusive. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet + + + New-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet + + + Remove-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet + + + Get-CsTenantNetworkSubnet + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet + + + + + + Set-CsTenantTrustedIPAddress + Set + CsTenantTrustedIPAddress + + Changes the definition of network IP addresses. + + + + External trusted IPs are the Internet external IPs of the enterprise network and are used to determine if the user's endpoint is inside the corporate network before checking for a specific site match. If the user's external IP matches one defined in the trusted list, then Location-Based Routing will check to determine which internal subnet the user's endpoint is located. If the user's external IP doesn't match one defined in the trusted list, the endpoint will be classified as being at an unknown and any PSTN calls to/from an LBR enabled user are blocked. + Both IPv4 and IPv6 trusted IP addresses are supported. + When the client is sending the trusted IP address, please make sure we have already whitelisted the IP address by running this command-let, otherwise the request will be rejected. If you are only adding the IPv4 address by running this command-let, but your client are only sending and IPv6 address, it will be rejected. + + + + Set-CsTenantTrustedIPAddress + + Identity + + Unique identifier for the IP address to be set. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network site to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format IP address accepts maskbits from 0 to 32 inclusive. IPv6 format IP address accepts maskbits from 0 to 128 inclusive. + + System.Int32 + + System.Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose IP addresses are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsTenantTrustedIPAddress + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Description + + Provide a description of the network site to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Instance + + The Instance parameter allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values. You can retrieve this object reference by calling the `Get-CsTenantTrustedIPAddress` cmdlet. + + PSObject + + PSObject + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format IP address accepts maskbits from 0 to 32 inclusive. IPv6 format IP address accepts maskbits from 0 to 128 inclusive. + + System.Int32 + + System.Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose IP addresses are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Description + + Provide a description of the network site to identify purpose of creating it. + + String + + String + + + None + + + Force + + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Unique identifier for the IP address to be set. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + Instance + + The Instance parameter allows you to pass a reference to an object to the cmdlet, rather than set individual parameter values. You can retrieve this object reference by calling the `Get-CsTenantTrustedIPAddress` cmdlet. + + PSObject + + PSObject + + + None + + + MaskBits + + This parameter determines the length of bits to mask to the subnet. + IPv4 format IP address accepts maskbits from 0 to 32 inclusive. IPv6 format IP address accepts maskbits from 0 to 128 inclusive. + + System.Int32 + + System.Int32 + + + None + + + Tenant + + Globally unique identifier (GUID) of the tenant account whose IP addresses are being created. For example: + -Tenant "38aad667-af54-4397-aaa7-e94c79ec2308" + You can return your tenant ID by running this command: + Get-CsTenant | Select-Object DisplayName, TenantID + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsTenantTrustedIPAddress -Identity "192.168.0.1" -Description "External IP 192.168.0.1" + + The command shown in Example 1 created the IP address '192.168.0.1' with description 'External IP 192.168.0.1'. + + + + -------------------------- Example 2 -------------------------- + PS C:\> Set-CsTenantTrustedIPAddress -Identity "192.168.0.2" -MaskBits "24" + + The command shown in Example 2 set the IP address '192.168.0.2'. The IP address is in IPv4 format, and the maskbits is set to 24. + IPv4 format IP address accepts maskbits from 0 to 32 inclusive. + + + + -------------------------- Example 3 -------------------------- + PS C:\> Set-CsTenantTrustedIPAddress -Identity "2001:4898:e8:25:844e:926f:85ad:dd8e" -Description "IPv6 IP address" + + The command shown in Example 3 set the IP address '2001:4898:e8:25:844e:926f:85ad:dd8e' with description 'IPv6 IP address'. + IPv6 format IP address accepts maskbits from 0 to 128 inclusive. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenanttrustedipaddress + + + + + + Set-CsUser + Set + CsUser + + Modifies Skype for Business properties for an existing user account. + + + + Properties can be modified only for accounts that have been enabled for use with Skype for Business. This cmdlet was introduced in Lync Server 2010. Note : Using this cmdlet for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment) and [Remove-CsPhoneNumberAssignment](https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. + The `Set-CsUser` cmdlet enables you to modify the Skype for Business related user account attributes that are stored in Active Directory Domain Services or modify a subset of Skype for Business online user attributes that are stored in Microsoft Entra ID. For example, you can disable or re-enable a user for Skype for Business Server; enable or disable a user for audio/video (A/V) communications; or modify a user's private line and line URI numbers. For Skype for Business online enable or disable a user for enterprise voice, hosted voicemail, or modify the user's on premise line uri. The `Set-CsUser` cmdlet can be used only for users who have been enabled for Skype for Business. + The only attributes you can modify using the `Set-CsUser` cmdlet are attributes related to Skype for Business. Other user account attributes, such as the user's job title or department, cannot be modified by using this cmdlet. Keep in mind, however, that the Skype for Business attributes should only be modified by using the `Set-CsUser` cmdlet or the Skype for Business Server Control Panel. You should not attempt to manually configure these attributes. + + + + Set-CsUser + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates the Identity of the user account to be modified. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + You can use the asterisk (*) wildcard character when using the display name as the user Identity. For example, the Identity "Smith" returns all the users who have a display name that ends with the string value " Smith". + + UserIdParameter + + UserIdParameter + + + None + + + AcpInfo + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to assign one or more third-party audio conferencing providers to a user. However, it is recommended that you use the `Set-CsUserAcp` cmdlet to assign Audio conferencing providers. + + AcpInfo + + AcpInfo + + + None + + + AudioVideoDisabled + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to make audio/visual (A/V) calls by using Skype for Business. If set to True, the user will largely be restricted to sending and receiving instant messages. + You cannot disable A/V communications if a user is currently enabled for remote call control, Enterprise Voice, and/or Internet Protocol private branch exchange (IP-PBX) soft phone routing. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + + SwitchParameter + + + False + + + DomainController + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to specify a domain controller to connect to when modifying a user account. If this parameter is not included then the cmdlet will use the first available domain controller. + + Fqdn + + Fqdn + + + None + + + Enabled + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether or not the user has been enabled for Skype for Business Server. If you set this value to False, the user will no longer be able to log on to Skype for Business Server; setting this value to True re-enables the user's logon privileges. + If you disable an account by using the Enabled parameter, the information associated with that account (including assigned policies and whether or not the user is enabled for Enterprise Voice and/or remote call control) is retained. If you later re-enable the account by using the Enabled parameter, the associated account information will be restored. This differs from using the `Disable-CsUser` cmdlet to disable a user account. When you run the `Disable-CsUser` cmdlet, all the Skype for Business Server data associated with that account is deleted. + + Boolean + + Boolean + + + None + + + EnterpriseVoiceEnabled + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user has been enabled for Enterprise Voice, which is the Microsoft implementation of Voice over Internet Protocol (VoIP). With Enterprise Voice, users can make telephone calls using the Internet rather than using the standard telephone network. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)cmdlet instead. + + Boolean + + Boolean + + + None + + + ExchangeArchivingPolicy + + > Applicable: Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates where the user's instant messaging sessions are archived. Allowed values are: + Uninitialized + UseLyncArchivingPolicy + ArchivingToExchange + NoArchiving + + ExchangeArchivingPolicyOptionsEnum + + ExchangeArchivingPolicyOptionsEnum + + + None + + + HostedVoiceMail + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + When set to True, enables a user's voice mail calls to be routed to a hosted version of Microsoft Exchange Server. In addition, setting this option to True enables Skype for Business users to directly place a call to another user's voice mail. Note : It is not required to set this parameter for Microsoft Teams users. Using this parameter has been deprecated for Microsoft Teams users in commercial and GCC cloud instances. + + Boolean + + Boolean + + + None + + + LineServerURI + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + The URI of the remote call control telephone gateway assigned to the user. The LineServerUri is the gateway URI, prefaced by "sip:". For example: sip:rccgateway@litwareinc.com + + String + + String + + + None + + + LineURI + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Phone number to be assigned to the user in Skype for Business Server or Direct Routing phone number to be assigned to a Microsoft Teams user in GCC High and DoD cloud instances only. + The line Uniform Resource Identifier (URI) must be specified using the E.164 format and the "tel:" prefix, for example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. + It is important to note that Skype for Business Server treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed; the number assigned to Pilar will not be flagged as a duplicate number. This is due to the fact that, depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. + For Direct Routing phone numbers in GCC High and DoD cloud instances, assigning a base phone number to a user or resource account is not supported if you already have other users or resource accounts assigned phone numbers with the same base phone number and extensions or vice versa. For instance, if you have a user with the assigned phone number +14255551200;ext=123 you can't assign the phone number +14255551200 to another user or resource account or if you have a user or resource account with the assigned phone number +14255551200 you can't assign the phone number +14255551200;ext=123 to another user or resource account. Assigning phone numbers with the same base number but different extensions to users and resource accounts is supported. For instance, you can have a user with +14255551200;ext=123 and another user with +14255551200;ext=124. + Note: Extension should be part of the E164 Number. For example if you have 5 digit Extensions then the last 5 digits of the E164 Number should always match the 5 digit extension tel:+14255551297;ext=51297 + + String + + String + + + None + + + OnPremLineURI + + > Applicable: Microsoft Teams + Specifies the phone number assigned to the user if no number is assigned to that user in the Skype for Business hybrid environment. The line Uniform Resource Identifier (URI) must be specified using the E.164 format and use the "tel:" prefix. For example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. + Note that Skype for Business treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed. Depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)cmdlet instead. Note : Using this parameter for Microsoft Teams users in GCC High and DoD cloud instances has been deprecated. Use the -LineURI parameter instead. + + String + + String + + + None + + + PassThru + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to pass a user object through the pipeline that represents the user whose account is being modified. By default, the `Set-CsUser` cmdlet does not pass objects through the pipeline. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. + + + SwitchParameter + + + False + + + PrivateLine + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Phone number for the user's private telephone line. A private line is a phone number that is not published in Active Directory Domain Services and, as a result, is not readily available to other people. In addition, this private line bypasses most in-bound call routing rules; for example, a call to a private line will not be forwarded to a person's delegates. Private lines are often used for personal phone calls or for business calls that should be kept separate from other team members. + The private line value should be specified using the E.164 format, and be prefixed by the "tel:" prefix. For example: tel:+14255551297. + + String + + String + + + None + + + RemoteCallControlTelephonyEnabled + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user has been enabled for remote call control telephony. When enabled for remote call control, a user can employ Skype for Business to answer phone calls made to his or her desk phone. Phone calls can also be made using Skype for Business. These calls all rely on the standard telephone network, also known as the public switched telephone network (PSTN). To make and receive phone calls over the Internet, the user must be enabled for Enterprise Voice. For details, see the parameter EnterpriseVoiceEnabled. + To be enabled for remote call control, a user must have both a LineUri and a LineServerUri. + + Boolean + + Boolean + + + None + + + SipAddress + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier (similar to an email address) that allows the user to communicate using SIP devices such as Skype for Business. The SIP address must use the sip: prefix as well as a valid SIP domain; for example: `-SipAddress sip:kenmyer@litwareinc.com`. + + String + + String + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + + SwitchParameter + + + False + + + + + + AcpInfo + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to assign one or more third-party audio conferencing providers to a user. However, it is recommended that you use the `Set-CsUserAcp` cmdlet to assign Audio conferencing providers. + + AcpInfo + + AcpInfo + + + None + + + AudioVideoDisabled + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user is allowed to make audio/visual (A/V) calls by using Skype for Business. If set to True, the user will largely be restricted to sending and receiving instant messages. + You cannot disable A/V communications if a user is currently enabled for remote call control, Enterprise Voice, and/or Internet Protocol private branch exchange (IP-PBX) soft phone routing. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. + + Boolean + + Boolean + + + None + + + Confirm + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Prompts you for confirmation before executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + DomainController + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to specify a domain controller to connect to when modifying a user account. If this parameter is not included then the cmdlet will use the first available domain controller. + + Fqdn + + Fqdn + + + None + + + Enabled + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether or not the user has been enabled for Skype for Business Server. If you set this value to False, the user will no longer be able to log on to Skype for Business Server; setting this value to True re-enables the user's logon privileges. + If you disable an account by using the Enabled parameter, the information associated with that account (including assigned policies and whether or not the user is enabled for Enterprise Voice and/or remote call control) is retained. If you later re-enable the account by using the Enabled parameter, the associated account information will be restored. This differs from using the `Disable-CsUser` cmdlet to disable a user account. When you run the `Disable-CsUser` cmdlet, all the Skype for Business Server data associated with that account is deleted. + + Boolean + + Boolean + + + None + + + EnterpriseVoiceEnabled + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user has been enabled for Enterprise Voice, which is the Microsoft implementation of Voice over Internet Protocol (VoIP). With Enterprise Voice, users can make telephone calls using the Internet rather than using the standard telephone network. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)cmdlet instead. + + Boolean + + Boolean + + + None + + + ExchangeArchivingPolicy + + > Applicable: Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates where the user's instant messaging sessions are archived. Allowed values are: + Uninitialized + UseLyncArchivingPolicy + ArchivingToExchange + NoArchiving + + ExchangeArchivingPolicyOptionsEnum + + ExchangeArchivingPolicyOptionsEnum + + + None + + + HostedVoiceMail + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + When set to True, enables a user's voice mail calls to be routed to a hosted version of Microsoft Exchange Server. In addition, setting this option to True enables Skype for Business users to directly place a call to another user's voice mail. Note : It is not required to set this parameter for Microsoft Teams users. Using this parameter has been deprecated for Microsoft Teams users in commercial and GCC cloud instances. + + Boolean + + Boolean + + + None + + + Identity + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Online, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates the Identity of the user account to be modified. User Identities can be specified using one of four formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) and 4) the user's Active Directory display name (for example, Ken Myer). User Identities can also be referenced by using the user's Active Directory distinguished name. + You can use the asterisk (*) wildcard character when using the display name as the user Identity. For example, the Identity "Smith" returns all the users who have a display name that ends with the string value " Smith". + + UserIdParameter + + UserIdParameter + + + None + + + LineServerURI + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + The URI of the remote call control telephone gateway assigned to the user. The LineServerUri is the gateway URI, prefaced by "sip:". For example: sip:rccgateway@litwareinc.com + + String + + String + + + None + + + LineURI + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + Phone number to be assigned to the user in Skype for Business Server or Direct Routing phone number to be assigned to a Microsoft Teams user in GCC High and DoD cloud instances only. + The line Uniform Resource Identifier (URI) must be specified using the E.164 format and the "tel:" prefix, for example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. + It is important to note that Skype for Business Server treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed; the number assigned to Pilar will not be flagged as a duplicate number. This is due to the fact that, depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. + For Direct Routing phone numbers in GCC High and DoD cloud instances, assigning a base phone number to a user or resource account is not supported if you already have other users or resource accounts assigned phone numbers with the same base phone number and extensions or vice versa. For instance, if you have a user with the assigned phone number +14255551200;ext=123 you can't assign the phone number +14255551200 to another user or resource account or if you have a user or resource account with the assigned phone number +14255551200 you can't assign the phone number +14255551200;ext=123 to another user or resource account. Assigning phone numbers with the same base number but different extensions to users and resource accounts is supported. For instance, you can have a user with +14255551200;ext=123 and another user with +14255551200;ext=124. + Note: Extension should be part of the E164 Number. For example if you have 5 digit Extensions then the last 5 digits of the E164 Number should always match the 5 digit extension tel:+14255551297;ext=51297 + + String + + String + + + None + + + OnPremLineURI + + > Applicable: Microsoft Teams + Specifies the phone number assigned to the user if no number is assigned to that user in the Skype for Business hybrid environment. The line Uniform Resource Identifier (URI) must be specified using the E.164 format and use the "tel:" prefix. For example: tel:+14255551297. Any extension number should be added to the end of the line URI, for example: tel:+14255551297;ext=51297. + Note that Skype for Business treats tel:+14255551297 and tel:+14255551297;ext=51297 as two different numbers. If you assign Ken Myer the line URI tel:+14255551297 and later try to assign Pilar Ackerman the line URI tel:+14255551297;ext=51297, that assignment will succeed. Depending on your setup, those two numbers could actually be different. For example, in some organizations dialing 1-425-555-1297 routes your call to an Exchange Auto Attendant. Conversely, dialing just the extension (51297) or using Skype for Business to dial the number 1-425-555-1297 extension 51297 will route your call directly to the user. Note : Using this parameter for Microsoft Teams users in commercial and GCC cloud instances has been deprecated. Use the new Set-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment)cmdlet instead. Note : Using this parameter for Microsoft Teams users in GCC High and DoD cloud instances has been deprecated. Use the -LineURI parameter instead. + + String + + String + + + None + + + PassThru + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Enables you to pass a user object through the pipeline that represents the user whose account is being modified. By default, the `Set-CsUser` cmdlet does not pass objects through the pipeline. Note : This parameter is not available for Teams Only tenants from version 3.0.0 onwards. + + SwitchParameter + + SwitchParameter + + + False + + + PrivateLine + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Phone number for the user's private telephone line. A private line is a phone number that is not published in Active Directory Domain Services and, as a result, is not readily available to other people. In addition, this private line bypasses most in-bound call routing rules; for example, a call to a private line will not be forwarded to a person's delegates. Private lines are often used for personal phone calls or for business calls that should be kept separate from other team members. + The private line value should be specified using the E.164 format, and be prefixed by the "tel:" prefix. For example: tel:+14255551297. + + String + + String + + + None + + + RemoteCallControlTelephonyEnabled + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Indicates whether the user has been enabled for remote call control telephony. When enabled for remote call control, a user can employ Skype for Business to answer phone calls made to his or her desk phone. Phone calls can also be made using Skype for Business. These calls all rely on the standard telephone network, also known as the public switched telephone network (PSTN). To make and receive phone calls over the Internet, the user must be enabled for Enterprise Voice. For details, see the parameter EnterpriseVoiceEnabled. + To be enabled for remote call control, a user must have both a LineUri and a LineServerUri. + + Boolean + + Boolean + + + None + + + SipAddress + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Unique identifier (similar to an email address) that allows the user to communicate using SIP devices such as Skype for Business. The SIP address must use the sip: prefix as well as a valid SIP domain; for example: `-SipAddress sip:kenmyer@litwareinc.com`. + + String + + String + + + None + + + WhatIf + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019 + Describes what would happen if you executed the command without actually executing the command. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Input types + + + String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The `Set-CsUser` cmdlet accepts a pipelined string value representing the Identity of a user account that has been enabled for Skype for Business Server. The cmdlet also accepts pipelined instances of the Active Directory user object. + + + + + + + Output types + + + The `Set-CsUser` cmdlet does not return any objects. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-CsUser -Identity "Pilar Ackerman" -EnterpriseVoiceEnabled $True + + In Example 1, the `Set-CsUser` cmdlet is used to modify the user account with the Identity Pilar Ackerman. In this case, the account is modified to enable Enterprise Voice, the Microsoft implementation of VoIP. This task is carried out by adding the EnterpriseVoiceEnabled parameter, and then setting the parameter value to $True. + + + + -------------------------- Example 2 -------------------------- + Get-CsUser -LdapFilter "Department=Finance" | Set-CsUser -EnterpriseVoiceEnabled $True + + In Example 2, all the users in the Finance department have their accounts enabled for Enterprise Voice. In this command, the `Get-CsUser` cmdlet and the LdapFilter parameter are first used to return a collection of all the users who work in the Finance department. That information is then piped to the `Set-CsUser` cmdlet, which enables Enterprise Voice for each account in the collection. + + + + -------------------------- Example 3 -------------------------- + Set-CsUser -Identity "Pilar Ackerman" -LineUri "tel:+123456789" + + In Example 3, the `Set-CsUser` cmdlet is used to modify the user account with the Identity Pilar Ackerman. In this case, the account is modified to set the phone number assigned to the user settings its LineUri property. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csuser + + + Get-CsOnlineUser + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser + + + + + + Set-CsUserCallingDelegate + Set + CsUserCallingDelegate + + This cmdlet will change permissions for a delegate for calling in Microsoft Teams. + + + + This cmdlet can change the permissions assigned to a delegate for the specified user. + + + + Set-CsUserCallingDelegate + + Delegate + + The Identity of the delegate to add. Can be specified using the ObjectId or the SIP address. + A user can have up to 25 delegates. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to add a delegate for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + MakeCalls + + Specifies whether delegate is allowed to make calls on behalf of the specified user. + + System.Boolean + + System.Boolean + + + False + + + ManageSettings + + Specifies whether delegate is allowed to change the delegate and calling settings for the specified user. + + System.Boolean + + System.Boolean + + + False + + + ReceiveCalls + + Specifies whether delegate is allowed to receive calls on behalf of the specified user. + + System.Boolean + + System.Boolean + + + False + + + + + + Delegate + + The Identity of the delegate to add. Can be specified using the ObjectId or the SIP address. + A user can have up to 25 delegates. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to add a delegate for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + MakeCalls + + Specifies whether delegate is allowed to make calls on behalf of the specified user. + + System.Boolean + + System.Boolean + + + False + + + ManageSettings + + Specifies whether delegate is allowed to change the delegate and calling settings for the specified user. + + System.Boolean + + System.Boolean + + + False + + + ReceiveCalls + + Specifies whether delegate is allowed to receive calls on behalf of the specified user. + + System.Boolean + + System.Boolean + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 4.0.0 or later. + The specified user need to have the Microsoft Phone System license assigned. + You can see the delegate of a user by using the Get-CsUserCallingSettings cmdlet. + + + + + -------------------------- Example 1 -------------------------- + Set-CsUserCallingDelegate -Identity user1@contoso.com -Delegate user2@contoso.com -MakeCalls $false -ReceiveCalls $true -ManageSettings $false + + This example shows setting the permissions for user1@contoso.com's delegate user2@contoso.com. + + + + -------------------------- Example 2 -------------------------- + Set-CsUserCallingDelegate -Identity user1@contoso.com -Delegate user2@contoso.com -MakeCalls $true + + This example shows setting the MakeCalls permissions to True for user1@contoso.com's delegate user2@contoso.com. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate + + + Get-CsUserCallingSettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings + + + New-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate + + + Remove-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate + + + + + + Set-CsUserCallingSettings + Set + CsUserCallingSettings + + This cmdlet will set the call forwarding, simultaneous ringing and call group settings for the specified user. + + + + This cmdlet sets the call forwarding, simultaneous ringing and call group settings for the specified user. + When specifying settings you need to specify all settings with a settings grouping, for instance, you can't just change a forwarding target. Instead, you need to start by getting the current settings, making the necessary changes, and then setting/writing all settings within the settings group. + + + + Set-CsUserCallingSettings + + CallGroupOrder + + The order in which to call members of the Call Group. The supported values are Simultaneous and InOrder. + You can only use InOrder, if the call group has 5 or less members. + + System.String + + System.String + + + None + + + CallGroupTargets + + The members of the Call Group. You need to always specify the full set of members as the parameter value. What you set here will overwrite the current call group membership. + A call group can have up to 25 members. + + System.Array + + System.Array + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + + Set-CsUserCallingSettings + + ForwardingTarget + + The forwarding target. Supported types of values are ObjectId's, SIP addresses and phone numbers. For phone numbers we support the following types of formats: E.164 (+12065551234 or +1206555000;ext=1234) or non-E.164 like 1234. + Only used when ForwardingTargetType is SingleTarget. + + System.String + + System.String + + + None + + + ForwardingTargetType + + The forwarding target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. Voicemail is only supported for Immediate forwarding. + SingleTarget is used when forwarding to another user or PSTN phone number. MyDelegates is used when forwarding to the users's delegates (there needs to be at least 1 delegate). Group is used when forwarding to the user's call group (it needs to have at least 1 member). + + System.String + + System.String + + + None + + + ForwardingType + + The type of forwarding to set. Supported values are Immediate and Simultaneous + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsForwardingEnabled + + This parameter controls whether forwarding is enabled or not. + + System.Boolean + + System.Boolean + + + None + + + + Set-CsUserCallingSettings + + GroupMembershipDetails + + The group membership details for the specified user. It is an array of ICallGroupMembershipDetails, which is an object containing the identity of an owner of a call group and the notification setting for the specified user for that call group. + This parameter only exists if the specified user is a member of a call group. You can't create it, you can only change it. + You need to always specify the full group membership details as the parameter value. What you set here will over-write the current group membership details. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + + Set-CsUserCallingSettings + + GroupNotificationOverride + + The group notification override that will be set on the specified user. The supported values are Ring, Mute and Banner. + The initial setting is shown as Null. It means that the group notification set for the user in the call group is used. If you set GroupNotificationOverride to Mute, that setting will override the group notification for the user in the call group. If you set the GroupNotificationOverride to Ring or Banner, the group notification set for the user in the call group will be used. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + + Set-CsUserCallingSettings + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsForwardingEnabled + + This parameter controls whether forwarding is enabled or not. + + System.Boolean + + System.Boolean + + + None + + + + Set-CsUserCallingSettings + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsUnansweredEnabled + + This parameter controls whether forwarding for unanswered calls is enabled or not. + + System.Boolean + + System.Boolean + + + None + + + UnansweredDelay + + The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 5 and 60 seconds in 5 seconds increments between 5 and 15 seconds, and 10 seconds increments otherwise, i.e. 00:00:05, 00:00:10, 00:00:15, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. + + System.String + + System.String + + + None + + + UnansweredTarget + + The unanswered target. Supported type of values are ObjectId, SIP address and phone number. For phone numbers we support the following types of formats: E.164 (+12065551234 or +1206555000;ext=1234) or non-E.164 like 1234. + Only used when UnansweredTargetType is SingleTarget. + + System.String + + System.String + + + None + + + UnansweredTargetType + + The unanswered target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. + SingleTarget is used when forwarding the unanswered call to another user or phone number. MyDelegates is used when forwarding the unanswered call to the users's delegates. Group is used when forwarding the unanswered call to the specified user's call group. + + System.String + + System.String + + + None + + + + Set-CsUserCallingSettings + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsUnansweredEnabled + + This parameter controls whether forwarding for unanswered calls is enabled or not. + + System.Boolean + + System.Boolean + + + None + + + + + + CallGroupOrder + + The order in which to call members of the Call Group. The supported values are Simultaneous and InOrder. + You can only use InOrder, if the call group has 5 or less members. + + System.String + + System.String + + + None + + + CallGroupTargets + + The members of the Call Group. You need to always specify the full set of members as the parameter value. What you set here will overwrite the current call group membership. + A call group can have up to 25 members. + + System.Array + + System.Array + + + None + + + ForwardingTarget + + The forwarding target. Supported types of values are ObjectId's, SIP addresses and phone numbers. For phone numbers we support the following types of formats: E.164 (+12065551234 or +1206555000;ext=1234) or non-E.164 like 1234. + Only used when ForwardingTargetType is SingleTarget. + + System.String + + System.String + + + None + + + ForwardingTargetType + + The forwarding target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. Voicemail is only supported for Immediate forwarding. + SingleTarget is used when forwarding to another user or PSTN phone number. MyDelegates is used when forwarding to the users's delegates (there needs to be at least 1 delegate). Group is used when forwarding to the user's call group (it needs to have at least 1 member). + + System.String + + System.String + + + None + + + ForwardingType + + The type of forwarding to set. Supported values are Immediate and Simultaneous + + System.String + + System.String + + + None + + + GroupMembershipDetails + + The group membership details for the specified user. It is an array of ICallGroupMembershipDetails, which is an object containing the identity of an owner of a call group and the notification setting for the specified user for that call group. + This parameter only exists if the specified user is a member of a call group. You can't create it, you can only change it. + You need to always specify the full group membership details as the parameter value. What you set here will over-write the current group membership details. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[] + + + None + + + GroupNotificationOverride + + The group notification override that will be set on the specified user. The supported values are Ring, Mute and Banner. + The initial setting is shown as Null. It means that the group notification set for the user in the call group is used. If you set GroupNotificationOverride to Mute, that setting will override the group notification for the user in the call group. If you set the GroupNotificationOverride to Ring or Banner, the group notification set for the user in the call group will be used. + + System.String + + System.String + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + Identity + + The Identity of the user to set call forwarding, simultaneous ringing and call group settings for. Can be specified using the ObjectId or the SIP address. + + System.String + + System.String + + + None + + + IsForwardingEnabled + + This parameter controls whether forwarding is enabled or not. + + System.Boolean + + System.Boolean + + + None + + + IsUnansweredEnabled + + This parameter controls whether forwarding for unanswered calls is enabled or not. + + System.Boolean + + System.Boolean + + + None + + + UnansweredDelay + + The time the call will ring the user before it is forwarded to the unanswered target. The supported format is hh:mm:ss and the delay range needs to be between 5 and 60 seconds in 5 seconds increments between 5 and 15 seconds, and 10 seconds increments otherwise, i.e. 00:00:05, 00:00:10, 00:00:15, 00:00:20, 00:00:30, 00:00:40, 00:00:50 and 00:01:00. The default value is 20 seconds. + + System.String + + System.String + + + None + + + UnansweredTarget + + The unanswered target. Supported type of values are ObjectId, SIP address and phone number. For phone numbers we support the following types of formats: E.164 (+12065551234 or +1206555000;ext=1234) or non-E.164 like 1234. + Only used when UnansweredTargetType is SingleTarget. + + System.String + + System.String + + + None + + + UnansweredTargetType + + The unanswered target type. Supported values are Voicemail, SingleTarget, MyDelegates and Group. + SingleTarget is used when forwarding the unanswered call to another user or phone number. MyDelegates is used when forwarding the unanswered call to the users's delegates. Group is used when forwarding the unanswered call to the specified user's call group. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PowerShell module 4.0.0 or later. + The specified user need to have the Microsoft Phone System license assigned. + When forwarding to MyDelegates, the specified user needs to have one or more delegates defined that are allowed to receive calls. When forwarding to Group, the specified user needs to have one or more members of the user's call group. + The cmdlet is validating the different settings and is always writing all the parameters in a settings group. You might see validation errors from the cmdlet due to this behavior. As an example, if you have ForwardingTargetType set to Group and you want to remove all members of the call group, you will get a validation error. + You can specify a SIP URI without 'sip:' on input, but the output from Get-CsUserCallingSettings will show the full SIP URI. + You are not able to configure delegates via this cmdlet. Please use New-CsUserCallingDelegate, Set-CsUserCallingDelegate cmdlets and Remove-CsUserCallingDelegate. + + + + + -------------------------- Example 1 -------------------------- + Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $true -ForwardingType Immediate -ForwardingTargetType Voicemail + + This example shows setting immediate call forwarding to voicemail for user1@contoso.com. + + + + -------------------------- Example 2 -------------------------- + Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $false + + This example shows removing call forwarding for user1@contoso.com. + + + + -------------------------- Example 3 -------------------------- + Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $true -ForwardingType Simultaneous -ForwardingTargetType SingleTarget -ForwardingTarget "+12065551234" + + This example shows setting simultaneous ringing to +12065551234 for user1@contoso.com. + + + + -------------------------- Example 4 -------------------------- + Set-CsUserCallingSettings -Identity user1@contoso.com -IsUnansweredEnabled $true -UnansweredTargetType MyDelegates -UnansweredDelay 00:00:30 + + This example shows setting unanswered call forward to the delegates after 30 seconds for user1@contoso.com. + + + + -------------------------- Example 5 -------------------------- + $cgm = @("sip:user2@contoso.com","sip:user3@contoso.com") +Set-CsUserCallingSettings -Identity user1@contoso.com -CallGroupOrder InOrder -CallGroupTargets $cgm +Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $true -ForwardingType Immediate -ForwardingTargetType Group + + This example shows creating a call group for user1@contoso.com with 2 members and setting immediate call forward to the call group for user1@contoso.com. + + + + -------------------------- Example 6 -------------------------- + $ucs = Get-CsUserCallingSettings -Identity user1@contoso.com +$cgt = {$ucs.CallGroupTargets}.Invoke() +$cgt.Add("sip:user5@contoso.com") +$cgt.Remove("sip:user6@contoso.com") +Set-CsUserCallingSettings -Identity user1@contoso.com -CallGroupOrder $ucs.CallGroupOrder -CallGroupTargets $cgt + +$gmd = (Get-CsUserCallingSettings -Identity user5@contoso.com).GroupMembershipDetails +$gmd[[array]::IndexOf($gmd.CallGroupOwnerId,'sip:user1@contoso.com')].NotificationSetting = 'Banner' +Set-CsUserCallingSettings -Identity user5@contoso.com -GroupMembershipDetails $gmd + + This example shows how to update the call group of user1@contoso.com to add user5@contoso.com and remove user6@contoso.com. In addition the notification setting for user5@contoso.com for user1@contoso.com's call group is set to Banner. + The key to note here is the call group membership is defined on the object of the owner of the call group, in the above case this is user1@contoso.com. However, the notification setting for a member for a particular call group is defined on the member. In this case user5@contoso.com. + + + + -------------------------- Example 7 -------------------------- + $ucs = Get-CsUserCallingSettings -Identity user1@contoso.com +Set-CsUserCallingSettings -Identity user1@contoso.com -CallGroupOrder $ucs.CallGroupOrder -CallGroupTargets @() + + This example shows how to remove all members of the call group. + + + + -------------------------- Example 8 -------------------------- + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]]$gmd = @( + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails]@{CallGroupOwnerId='sip:user20@contoso.com';NotificationSetting='Banner'} + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails]@{CallGroupOwnerId='sip:user30@contoso.com';NotificationSetting='Mute'} +) +Set-CsUserCallingSettings -Identity user10@contoso.com -GroupMembershipDetails $gmd + + In this example user10@contoso.com is a member of two call groups: user20@contoso.com and user30@contoso.com. User10@contoso.com would like to have Banner notification for the first call group and Mute notification for the last one. + + + + -------------------------- Example 9 -------------------------- + Set-CsUserCallingSettings -Identity user2@contoso.com -GroupNotificationOverride 'Mute' + + This example shows how to set the group notification override for user2@contoso.com. This setting overrides any specific notification setting set for the user on any call group the user is a member of. + + + + -------------------------- Example 10 -------------------------- + Set-CsUserCallingSettings -Identity user6@contoso.com -IsForwardingEnabled $false +Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true -UnansweredTargetType Voicemail -UnansweredDelay 00:00:20 + + This example shows how to set the default call forwarding settings for a user. + + + + -------------------------- Example 11 -------------------------- + Set-CsUserCallingSettings -Identity user7@contoso.com -IsUnansweredEnabled $false + + This example shows turning off unanswered call forwarding for a user. The Microsoft Teams client will show this as If unanswered Do nothing . + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingsettings + + + Get-CsUserCallingSettings + https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings + + + New-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate + + + Set-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate + + + Remove-CsUserCallingDelegate + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate + + + + + + Set-CsVideoInteropServiceProvider + Set + CsVideoInteropServiceProvider + + Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. + + + + Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. The CsVideoInteropServiceProvider cmdlets allow you to designate provider/tenant specific information about the connection to the provider. + Use the Set-CsVideoInteropServiceProvider to update information about a supported CVI partner your organization uses. + + + + Set-CsVideoInteropServiceProvider + + Identity + + Specify the VideoInteropServiceProvider to be updated. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + AadApplicationIds + + This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. + + String + + String + + + None + + + AllowAppGuestJoinsAsAuthenticated + + This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Bypass all non-fatal errors. + + + SwitchParameter + + + False + + + InstructionUri + + InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + TenantKey + + Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Set-CsVideoInteropServiceProvider + + AadApplicationIds + + This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. + + String + + String + + + None + + + AllowAppGuestJoinsAsAuthenticated + + This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + Bypass all non-fatal errors. + + + SwitchParameter + + + False + + + Instance + + Pass an existing provider from Get-CsVideoInteropServiceProvider to update (use instead of specifying "Identity") + + PSObject + + PSObject + + + None + + + InstructionUri + + InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + TenantKey + + Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AadApplicationIds + + This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. + + String + + String + + + None + + + AllowAppGuestJoinsAsAuthenticated + + This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. + + Boolean + + Boolean + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + Bypass all non-fatal errors. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + Specify the VideoInteropServiceProvider to be updated. + + XdsGlobalRelativeIdentity + + XdsGlobalRelativeIdentity + + + None + + + Instance + + Pass an existing provider from Get-CsVideoInteropServiceProvider to update (use instead of specifying "Identity") + + PSObject + + PSObject + + + None + + + InstructionUri + + InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners + + String + + String + + + None + + + Tenant + + Internal Microsoft use only. + + System.Guid + + System.Guid + + + None + + + TenantKey + + Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.Management.Automation.PSObject + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Set-CsVideoInteropServiceProvider -Identity cviprovider -AllowAppGuestJoinsAsAuthenticated $true + + This example enables a VTC device joining anonymously to shown in the meeting as authenticated, for a supported CVI partner your organization uses. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/set-csvideointeropserviceprovider + + + + + + Start-CsExMeetingMigration + Start + CsExMeetingMigration + + This cmdlet manually trigger a meeting migration request for the specified user. + + + + Meeting Migration Service (MMS) is a Skype for Business service that runs in the background and automatically updates Skype for Business and Microsoft Teams meetings for users. MMS is designed to eliminate the need for users to run the Meeting Migration Tool to update their Skype for Business and Microsoft Teams meetings. + Also, with `Start-CsExMeetingMigration` cmdlet, you can start a meeting migration manually. For more information about requirements of the Meeting Migration Service (MMS), see Using the Meeting Migration Service (MMS) (https://learn.microsoft.com/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms). + + + + Start-CsExMeetingMigration + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be modified. A user identity can be specified by using one of four formats: 1. The user's SIP address 2. The user's user principal name (UPN) 3. The user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) 4. The user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + SourceMeetingType + + > Applicable: Microsoft Teams + The possible values are: All: indicates that both Skype for Business meetings and Teams meetings should be updated. This is the default value *. SfB: * indicates that only Skype for Business meetings (whether on-premises or online) should be updated. Teams: * indicates that only Teams meetings should be updated. + + Object + + Object + + + All + + + TargetMeetingType + + > Applicable: Microsoft Teams + The possible values are: Current: specifies that Skype for Business meetings remain Skype for Business meetings and Teams meetings remain Teams meetings. However audio conferencing coordinates might be changed, and any on-premises Skype for Business meetings would be migrated to Skype for Business Online. This is the default value *. Teams: * specifies that any existing meeting must be migrated to Teams, regardless of whether the meeting is hosted in Skype for Business online or on-premises, and regardless of whether any audio conferencing updates are required. + + Object + + Object + + + Current + + + + + + Identity + + > Applicable: Microsoft Teams + Specifies the Identity of the user account to be modified. A user identity can be specified by using one of four formats: 1. The user's SIP address 2. The user's user principal name (UPN) 3. The user's domain name and logon name, in the form domain\logon (for example, litwareinc\kenmyer) 4. The user's Active Directory display name (for example, Ken Myer). You can also reference a user account by using the user's Active Directory distinguished name. + + UserIdParameter + + UserIdParameter + + + None + + + SourceMeetingType + + > Applicable: Microsoft Teams + The possible values are: All: indicates that both Skype for Business meetings and Teams meetings should be updated. This is the default value *. SfB: * indicates that only Skype for Business meetings (whether on-premises or online) should be updated. Teams: * indicates that only Teams meetings should be updated. + + Object + + Object + + + All + + + TargetMeetingType + + > Applicable: Microsoft Teams + The possible values are: Current: specifies that Skype for Business meetings remain Skype for Business meetings and Teams meetings remain Teams meetings. However audio conferencing coordinates might be changed, and any on-premises Skype for Business meetings would be migrated to Skype for Business Online. This is the default value *. Teams: * specifies that any existing meeting must be migrated to Teams, regardless of whether the meeting is hosted in Skype for Business online or on-premises, and regardless of whether any audio conferencing updates are required. + + Object + + Object + + + Current + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Start-CsExMeetingMigration -Identity ashaw@contoso.com -TargetMeetingType Teams + + This example below shows how to initiate meeting migration for user ashaw@contoso.com so that all meetings are migrated to Teams. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/start-csexmeetingmigration + + + Using the Meeting Migration Service (MMS) + https://learn.microsoft.com/SkypeForBusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms + + + Get-CsMeetingMigrationStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csmeetingmigrationstatus + + + Set-CsTenantMigrationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration + + + Get-CsTenantMigrationConfiguration + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantmigrationconfiguration + + + + + + Sync-CsOnlineApplicationInstance + Sync + CsOnlineApplicationInstance + + Sync the application instance from Microsoft Entra ID into Agent Provisioning Service. + + + + Use the Sync-CsOnlineApplicationInstance cmdlet to sync the application instance from Microsoft Entra ID into Agent Provisioning Service. This is needed because the mapping between application instance and application needs to be stored in Agent Provisioning Service. If an application ID was provided at the creation of the application instance, you need not run this cmdlet. + + + + Sync-CsOnlineApplicationInstance + + AcsResourceId + + The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. + + System.Guid + + System.Guid + + + None + + + ApplicationId + + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + + System.Guid + + System.Guid + + + None + + + CallbackUri + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + Force + + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + ObjectId + + The application instance ID. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + AcsResourceId + + The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. + + System.Guid + + System.Guid + + + None + + + ApplicationId + + The application ID. The Microsoft application Auto Attendant has the ApplicationId ce933385-9390-45d1-9512-c8d228074e07 and the Microsoft application Call Queue has the ApplicationId 11cd3e2e-fccb-42ad-ad00-878b93575e07. Third-party applications available in a tenant will use other ApplicationId's. + + System.Guid + + System.Guid + + + None + + + CallbackUri + + This parameter is reserved for internal Microsoft use. + + String + + String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + Force + + This switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If it isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + ObjectId + + The application instance ID. + + System.Guid + + System.Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Sync-CsOnlineApplicationInstance -ObjectId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ApplicationId yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy + + This example sync application instance with object ID "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" and application ID "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" into Agent Provisioning Service. + + + + -------------------------- Example 2 -------------------------- + Sync-CsOnlineApplicationInstance -ObjectId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ApplicationId 00000000-0000-0000-0000-000000000000 + + This command is helpful when there's already a mapping in Agent Provisioning Service and you want to set a different app ID value. In this case, when running the cmdlet in example 1, you will see `Sync-CsOnlineApplicationInstance : An item with the same key has already been added.`. + The command removes the mapping for application instance with object ID "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". Run the example cmdlet again to create the mapping in Agent Provisioning Service. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance + + + Set-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance + + + New-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance + + + Find-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance + + + Get-CsOnlineApplicationInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance + + + + + + Test-CsEffectiveTenantDialPlan + Test + CsEffectiveTenantDialPlan + + Use the Test-CsEffectiveTenantDialPlan cmdlet to test a tenant dial plan. + + + + The `Test-CsEffectiveTenantDialPlan` cmdlet normalizes the dialed number by applying the normalization rules from the effective tenant dial plan that is returned for the specified user. + + + + Test-CsEffectiveTenantDialPlan + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + + SwitchParameter + + + False + + + DialedNumber + + > Applicable: Microsoft Teams + The DialedNumber parameter is the phone number to be normalized with the effective tenant dial plan. + + PhoneNumber + + PhoneNumber + + + None + + + EffectiveTenantDialPlanName + + > Applicable: Microsoft Teams + The EffectiveTenantDialPlanName parameter is the effective tenant dial plan name in the form of TenantId_TenantDialPlan_GlobalVoiceDialPlan. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Indicates the identity of the user account to be tested against. The user's SIP address, the user's user principal name (UPN) or the user's display name can be specified. + + UserIdParameter + + UserIdParameter + + + None + + + TenantScopeOnly + + > Applicable: Microsoft Teams + Runs the test only against Tenant-level dial plans (does not take into account Service Level Dial Plans). + + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + + SwitchParameter + + + False + + + + + + Confirm + + > Applicable: Microsoft Teams + The Confirm switch causes the command to pause processing, and requires confirmation to proceed. + + SwitchParameter + + SwitchParameter + + + False + + + DialedNumber + + > Applicable: Microsoft Teams + The DialedNumber parameter is the phone number to be normalized with the effective tenant dial plan. + + PhoneNumber + + PhoneNumber + + + None + + + EffectiveTenantDialPlanName + + > Applicable: Microsoft Teams + The EffectiveTenantDialPlanName parameter is the effective tenant dial plan name in the form of TenantId_TenantDialPlan_GlobalVoiceDialPlan. + + String + + String + + + None + + + Force + + > Applicable: Microsoft Teams + The Force switch specifies whether to suppress warning and confirmation messages. It can be useful in scripting to suppress interactive prompts. If the Force switch isn't provided in the command, you're prompted for administrative input if required. + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + Indicates the identity of the user account to be tested against. The user's SIP address, the user's user principal name (UPN) or the user's display name can be specified. + + UserIdParameter + + UserIdParameter + + + None + + + TenantScopeOnly + + > Applicable: Microsoft Teams + Runs the test only against Tenant-level dial plans (does not take into account Service Level Dial Plans). + + SwitchParameter + + SwitchParameter + + + False + + + WhatIf + + > Applicable: Microsoft Teams + The WhatIf switch causes the command to simulate its results. By using this switch, you can view what changes would occur without having to commit those changes. + + SwitchParameter + + SwitchParameter + + + False + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsEffectiveTenantDialPlan -Identity adelev | Test-CsEffectiveTenantDialPlan -DialedNumber 14258828080 + + This example gets the Identity of a dial plan that is associated with the identity of a user, and applies the retrieved tenant dial plan to normalize the dialed number. + + + + -------------------------- Example 2 -------------------------- + Test-CsEffectiveTenantDialPlan -DialedNumber 14258828080 -Identity adelev@contoso.onmicrosoft.com + + This example tests the given dialed number against a specific identity. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/test-cseffectivetenantdialplan + + + + + + Test-CsInboundBlockedNumberPattern + Test + CsInboundBlockedNumberPattern + + This cmdlet tests the given number against the created (by using New-CsInboundBlockedNumberPattern cmdlet) blocked numbers pattern. + + + + This cmdlet tests the given number against the created (by using New-CsInboundBlockedNumberPattern cmdlet) blocked numbers pattern. + + + + Test-CsInboundBlockedNumberPattern + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + PhoneNumber + + The phone number to be tested. + + String + + String + + + None + + + TenantId + + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + PhoneNumber + + The phone number to be tested. + + String + + String + + + None + + + TenantId + + This parameter is reserved for internal Microsoft use. + + Guid + + Guid + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.Guid + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Test-CsInboundBlockedNumberPattern -PhoneNumber "321321321" + + Tests the "321321321" number to check if it will be blocked for inbound calls. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern + + + + + + Test-CsTeamsShiftsConnectionValidate + Test + CsTeamsShiftsConnectionValidate + + This cmdlet validates workforce management (WFM) connection settings. + + + + This cmdlet validates Workforce management (WFM) connection settings. It validates that the provided WFM account/password and required endpoints are set correctly. + + + + Test-CsTeamsShiftsConnectionValidate + + ConnectorId + + > Applicable: Microsoft Teams + The ID of the shifts connector. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connector specific settings. + + IConnectorInstanceRequestConnectorSpecificSettings + + IConnectorInstanceRequestConnectorSpecificSettings + + + None + + + Name + + > Applicable: Microsoft Teams + The connector's instance name. + + String + + String + + + None + + + + + + ConnectorId + + > Applicable: Microsoft Teams + The ID of the shifts connector. + + String + + String + + + None + + + ConnectorSpecificSettings + + The connector specific settings. + + IConnectorInstanceRequestConnectorSpecificSettings + + IConnectorInstanceRequestConnectorSpecificSettings + + + None + + + Name + + > Applicable: Microsoft Teams + The connector's instance name. + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $InstanceName = "test instance name" +PS C:\> $WfmUserName = "WfmUserName" +PS C:\> $plainPwd = "plainPwd" +PS C:\> Test-CsTeamsShiftsConnectionValidate -ConnectorId "6A51B888-FF44-4FEA-82E1-839401E00000" -ConnectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest -Property @{ AdminApiUrl = "https://contoso.com/retail/data/wfmadmin/api/v1-beta3"; SiteManagerUrl = "https://contoso.com/retail/data/wfmsm/api/v1-beta4"; EssApiUrl = "https://contoso.com/retail/data/wfmess/api/v1-beta2"; RetailWebApiUrl = "https://contoso.com/retail/data/retailwebapi/api/v1"; CookieAuthUrl = "https://contoso.com/retail/data/login"; FederatedAuthUrl = "https://contoso.com/retail/data/login"; LoginUserName = "PlaceholderForUsername"; LoginPwd = "PlaceholderForPassword" }) -Name $InstanceName + + Returns the list of conflicts if there are any. Empty result means there's no conflict. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $InstanceName = "test instance name" +PS C:\> $WfmUserName = "WfmUserName" +PS C:\> $plainPwd = "plainPwd" +PS C:\> Test-CsTeamsShiftsConnectionValidate -ConnectorId "6A51B888-FF44-4FEA-82E1-839401E00000" -ConnectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest -Property @{ apiUrl = "https://contoso.com/api"; ssoUrl = "https://contoso.com/sso"; appKey = "myAppKey"; clientId = "myClientId"; clientSecret = "PlaceholderForClientSecret"; LoginUserName = "PlaceholderForUsername"; LoginPwd = "PlaceholderForPassword" }) -Name $InstanceName + + Returns the list of conflicts if there are any. Empty result means there's no conflict. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate + + + New-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance + + + Set-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance + + + + + + Test-CsTeamsTranslationRule + Test + CsTeamsTranslationRule + + This cmdlet tests a phone number against the configured number manipulation rules and returns information about the matching rule. + + + + This cmdlet tests a phone number against the configured number manipulation rules and returns information about the matching rule. + + + + Test-CsTeamsTranslationRule + + Break + + {{ Fill Break Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + PhoneNumber + + The phone number to test. + + System.String + + System.String + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Break + + {{ Fill Break Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + {{ Fill HttpPipelineAppend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + {{ Fill HttpPipelinePrepend Description }} + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] + + + None + + + PhoneNumber + + The phone number to test. + + System.String + + System.String + + + None + + + Proxy + + {{ Fill Proxy Description }} + + System.Uri + + System.Uri + + + None + + + ProxyCredential + + {{ Fill ProxyCredential Description }} + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + ProxyUseDefaultCredentials + + {{ Fill ProxyUseDefaultCredentials Description }} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + None + + + + + + + + + The cmdlet is available in Teams PowerShell Module 4.5.0 or later. + The matching logic used in the cmdlet is the same as when the manipulation rule has been associated with an SBC and a call is being routed. + If a match is found in two or more manipulation rules, the first one is returned. + There is a short delay before newly created manipulation rules are added to the evaluation. + + + + + -------------------------- Example 1 -------------------------- + Test-CsTeamsTranslationRule -PhoneNumber 1234 + +Identity Pattern PhoneNumberTranslated Translation +-------- ------- --------------------- ----------- +rule1 ^1234$ 4321 4321 + + This example displays information about the manipulation rule matching the phone number 1234. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule + + + New-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule + + + Get-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule + + + Set-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule + + + Remove-CsTeamsTranslationRule + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule + + + + + + Test-CsTeamsUnassignedNumberTreatment + Test + CsTeamsUnassignedNumberTreatment + + This cmdlet tests the given number against the created (by using New-CsTeamsUnassignedNumberTreatment cmdlet) unassigned number treatment configurations. + + + + This cmdlet tests the given number against the created (by using New-CsTeamsUnassignedNumberTreatment cmdlet) unassigned number treatment configurations. If a match is found, the matching treatment is displayed. + + + + Test-CsTeamsUnassignedNumberTreatment + + PhoneNumber + + The phone number to be tested. + + System.String + + System.String + + + None + + + + + + PhoneNumber + + The phone number to be tested. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + System.Object + + + + + + + + + The cmdlet is available in Teams PS module 3.2.0-preview or later. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Test-CsTeamsUnassignedNumberTreatment -PhoneNumber "321321321" + + Tests the "321321321" number to check if there is a matching unassigned number treatment. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment + + + New-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment + + + Get-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment + + + Set-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment + + + Remove-CsTeamsUnassignedNumberTreatment + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment + + + + + + Test-CsVoiceNormalizationRule + Test + CsVoiceNormalizationRule + + Tests a telephone number against a voice normalization rule and returns the number after the normalization rule has been applied. + + + + This cmdlet was introduced in Lync Server 2010. + This cmdlet allows you to see the results of applying a voice normalization rule to a given telephone number. Voice normalization rules are a required part of phone authorization and call routing. They define the requirements for converting--or translating-- numbers from a format typically entered by users to a standard (E.164) format. Use this cmdlet to troubleshoot dialing issues or to verify that rules will work as expected against given numbers. + + + + Test-CsVoiceNormalizationRule + + DialedNumber + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The phone number against which you want to test the normalization rule specified in the NormalizationRule parameter. + Full Data Type: Microsoft.Rtc.Management.Voice.PhoneNumber + + PhoneNumber + + PhoneNumber + + + None + + + NormalizationRule + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + An object containing a reference to the normalization rule against which you want to test the number specified in the DialedNumber parameter. + For Lync and Skype for Business Server, you can retrieve voice normalization rules by calling the `Get-CsVoiceNormalizationRule` cmdlet. For Microsoft Teams, you can retrieve voice normalization rules by calling the `Get-CsTenantDialPlan` cmdlet. + + NormalizationRule + + NormalizationRule + + + None + + + + + + DialedNumber + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + The phone number against which you want to test the normalization rule specified in the NormalizationRule parameter. + Full Data Type: Microsoft.Rtc.Management.Voice.PhoneNumber + + PhoneNumber + + PhoneNumber + + + None + + + NormalizationRule + + > Applicable: Lync Server 2010, Lync Server 2013, Skype for Business Server 2015, Skype for Business Server 2019, Microsoft Teams + An object containing a reference to the normalization rule against which you want to test the number specified in the DialedNumber parameter. + For Lync and Skype for Business Server, you can retrieve voice normalization rules by calling the `Get-CsVoiceNormalizationRule` cmdlet. For Microsoft Teams, you can retrieve voice normalization rules by calling the `Get-CsTenantDialPlan` cmdlet. + + NormalizationRule + + NormalizationRule + + + None + + + + + + Input types + + + Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule object. Accepts pipelined input of voice normalization rule objects. + + + + + + + Output types + + + Returns an object of type Microsoft.Rtc.Management.Voice.NormalizationRuleTestResult. + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-CsVoiceNormalizationRule -Identity "global/11 digit number rule" | Test-CsVoiceNormalizationRule -DialedNumber 14255559999 + + For Lync or Skype for Business Server, this example runs a voice normalization test against the voice normalization rule with the Identity "global/11 digit number rule". First the `Get-CsVoiceNormalizationRule` cmdlet is run to retrieve the rule with the Identity "global/11 digit number rule". That rule object is then piped to the `Test-CsVoiceNormalizationRule` cmdlet, where the rule is tested against the telephone number 14255559999. The output will be the DialedNumber after the voice normalization rule "global/11 digit number rule" has been applied. If this rule does not apply to the DialedNumber value (for example, if the normalization rule matches the pattern for an 11-digit number and you supply a 7-digit number) no value will be returned. + + + + -------------------------- Example 2 -------------------------- + $a = Get-CsVoiceNormalizationRule -Identity "global/11 digit number rule" +Test-CsVoiceNormalizationRule -DialedNumber 5551212 -NormalizationRule $a + + For Lync or Skype for Business Server, example 2 is identical to Example 1 except that instead of piping the results of the Get operation directly to the Test cmdlet, the object is first stored in the variable $a and then is passed as the value to the parameter NormalizationRule to be used as the voice normalization rule against which the test will run. + + + + -------------------------- Example 3 -------------------------- + Get-CsVoiceNormalizationRule | Test-CsVoiceNormalizationRule -DialedNumber 2065559999 + + For Lync or Skype for Business Server, this example runs a voice normalization test against all voice normalization rules defined within the Skype for Business Server deployment. First the `Get-CsVoiceNormalizationRule` cmdlet is run (with no parameters) to retrieve all the voice normalization rules. The collection of rules that is returned is then piped to the `Test-CsVoiceNormalizationRule` cmdlet, where each rule in the collection is tested against the telephone number 2065559999. The output will be a list of translated numbers, one for each rule tested. If a rule does not apply to the DialedNumber value (for example, if the normalization rule matches the pattern for an 11-digit number and you supply a 7-digit number) there will be a blank line in the list for that rule. + + + + -------------------------- Example 4 -------------------------- + $nr=(Get-CsTenantDialPlan -Identity dp1).NormalizationRules +$nr[0] + +Description : +Pattern : ^(\d{4})$ +Translation : +1206555$1 +Name : nr1 +IsInternalExtension : False + +Test-CsVoiceNormalizationRule -DialedNumber 1234 -NormalizationRule $nr[0] + +TranslatedNumber +---------------- ++12065551234 + + For Microsoft Teams, this example gets all the normalization rules in the tenant dial plan DP1, shows the first of these rules, and then test that rule on the dialed number 1234. The output shows that the rule normalize the dialed number to +12065551234. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/test-csvoicenormalizationrule + + + New-CsVoiceNormalizationRule + https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule + + + Get-CsTenantDialPlan + https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan + + + + + + Unregister-CsOnlineDialInConferencingServiceNumber + Unregister + CsOnlineDialInConferencingServiceNumber + + Unassigns the previously assigned service number as default Conference Bridge number. + + + + Unassigns the previously assigned service number as default Conference Bridge number. + + + + Unregister-CsOnlineDialInConferencingServiceNumber + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + PARAMVALUE: ConferencingServiceNumber + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + + + BridgeId + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + PARAMVALUE: Fqdn + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + RemoveDefaultServiceNumber + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + + + + BridgeId + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + BridgeName + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + DomainController + + > Applicable: Microsoft Teams + PARAMVALUE: Fqdn + + Fqdn + + Fqdn + + + None + + + Force + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + SwitchParameter + + SwitchParameter + + + False + + + Identity + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + Instance + + > Applicable: Microsoft Teams + PARAMVALUE: ConferencingServiceNumber + + ConferencingServiceNumber + + ConferencingServiceNumber + + + None + + + RemoveDefaultServiceNumber + + > Applicable: Microsoft Teams + PARAMVALUE: SwitchParameter + + SwitchParameter + + SwitchParameter + + + False + + + Tenant + + > Applicable: Microsoft Teams + PARAMVALUE: Guid + + Guid + + Guid + + + None + + + TenantDomain + + > Applicable: Microsoft Teams + PARAMVALUE: String + + String + + String + + + None + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Unregister-CsOnlineDialInConferencingServiceNumber -BridgeName "Conference Bridge" -RemoveDefaultServiceNumber 1234 + + Unassigns the 1234 Service Number to the given Conference Bridge. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/unregister-csonlinedialinconferencingservicenumber + + + + + + Update-CsAutoAttendant + Update + CsAutoAttendant + + Use Update-CsAutoAttendant cmdlet to force an update of resources associated with an Auto Attendant (AA) provisioning. + + + + This cmdlet provides a way to update the resources associated with an auto attendant configured for use in your organization. Currently, it repairs the Dial-by-Name recognition status of an auto attendant. + Note: This cmdlet only triggers the refresh of auto attendant resources. It does not wait until all the resources have been refreshed. The last completed status of auto attendant can be retrieved using `Get-CsAutoAttendantStatus` (https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus)cmdlet. + + + + Update-CsAutoAttendant + + Identity + + > Applicable: Microsoft Teams + The identity for the AA whose resources are to be updated. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + Identity + + > Applicable: Microsoft Teams + The identity for the AA whose resources are to be updated. + + System.String + + System.String + + + None + + + Tenant + + > Applicable: Microsoft Teams + {{ Fill Tenant Description }} + + System.Guid + + System.Guid + + + None + + + + + + System.String + + + The Update-CsAutoAttendant cmdlet accepts a string as the Identity parameter. + + + + + + + None + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Update-CsAutoAttendant -Identity "6abea1cd-904b-520b-be96-1092cc096432" + + In Example 1, the Update-CsAutoAttendant cmdlet is used to update all resources of an auto attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant + + + Get-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant + + + Get-CsAutoAttendantStatus + https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus + + + Set-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant + + + Remove-CsAutoAttendant + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant + + + + + + Update-CsCustomPolicyPackage + Update + CsCustomPolicyPackage + + Note: This cmdlet is currently in private preview. + This cmdlet updates a custom policy package. + + + + This cmdlet updates a custom policy package with new package settings. For more information on policy packages and the policy types available, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. + + + + Update-CsCustomPolicyPackage + + Identity + + > Applicable: Microsoft Teams + The name of the custom package. + + String + + String + + + None + + + PolicyList + + > Applicable: Microsoft Teams + A list of one or more policies to be included in the updated package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy). + + String[] + + String[] + + + None + + + Description + + > Applicable: Microsoft Teams + The description of the custom package. + + String + + String + + + None + + + + + + Description + + > Applicable: Microsoft Teams + The description of the custom package. + + String + + String + + + None + + + Identity + + > Applicable: Microsoft Teams + The name of the custom package. + + String + + String + + + None + + + PolicyList + + > Applicable: Microsoft Teams + A list of one or more policies to be included in the updated package. To specify the policy list, follow this format: "<PolicyType>, <PolicyName>". Delimiters of ' ', '.', ':', '\t' are also acceptable. Supported policy types are listed here (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages#what-is-a-policy-package). To get the list of available policy names on your tenant, use the skypeforbusiness module and refer to cmdlets such as [Get-CsTeamsMeetingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy) and [Get-CsTeamsMessagingPolicy](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy). + + String[] + + String[] + + + None + + + + + + + The resulting custom package's contents will be replaced by the new one instead of a union. Default packages created by Microsoft cannot be updated. + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Update-CsCustomPolicyPackage -Identity "MyPackage" -PolicyList "TeamsMessagingPolicy, MyMessagingPolicy" + + Updates the custom package named "MyPackage" to have one policy in the package: a messaging policy of name "MyMessagingPolicy". + + + + -------------------------- Example 2 -------------------------- + PS C:\> Update-CsCustomPolicyPackage -Identity "MyPackage" -PolicyList "TeamsMessagingPolicy, MyMessagingPolicy", "TeamsMeetingPolicy, MyMeetingPolicy" -Description "My package" + + Updates the custom package named "MyPackage" to have a description of "My package" and two policies in the package: a messaging policy of name "MyMessagingPolicy" and a meeting policy of name "MyMeetingPolicy". + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/update-cscustompolicypackage + + + Get-CsPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage + + + New-CsCustomPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/new-cscustompolicypackage + + + Remove-CsCustomPolicyPackage + https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscustompolicypackage + + + + + + Update-CsPhoneNumberTag + Update + CsPhoneNumberTag + + This cmdlet allows admin to update existing telephone number tags. + + + + This cmdlet can be used to update existing tags for telephone numbers. Tags can be up to 50 characters long, including spaces, and can contain multiple words. They are not case-sensitive. An admin can get a list of all existing tags using Get-CsPhoneNumberTag (https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumbertag). + + + + Update-CsPhoneNumberTag + + NewTag + + This is the new tag. A tag can be maximum 50 characters long. + + String + + String + + + None + + + Tag + + This is the old tag which the admin wants to update. + + String + + String + + + None + + + + + + NewTag + + This is the new tag. A tag can be maximum 50 characters long. + + String + + String + + + None + + + Tag + + This is the old tag which the admin wants to update. + + String + + String + + + None + + + + + + None + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> Update-CsPhoneNumberTag -Tag "Redmond" -NewTag "Redmond HQ" + + This example shows how to update an existing tag "Redmond" to "Redmond HQ" + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/update-csphonenumbertag + + + + + + Update-CsTeamsShiftsConnection + Update + CsTeamsShiftsConnection + + This cmdlet updates an existing workforce management (WFM) connection. + + + + This cmdlet updates a Shifts WFM connection. Similar to the Set-CsTeamsShiftsConnection cmdlet, it allows the admin to make changes to the settings in the connection. The complete list of fields is not required allowing the user to update single fields of the connection. + + + + Update-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Body + + The request body. + + IUpdateWfmConnectionFieldsRequest + + IUpdateWfmConnectionFieldsRequest + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Update-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Body + + The request body. + + IUpdateWfmConnectionFieldsRequest + + IUpdateWfmConnectionFieldsRequest + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Update-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Update-CsTeamsShiftsConnection + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Authorization + + Used to provide the necessary credentials for authenticating and authorizing the connection to the workforce management (WFM) system. This parameter ensures that the connection has the appropriate permissions to access and manage the data within the WFM system. + + String + + String + + + None + + + Body + + The request body. + + IUpdateWfmConnectionFieldsRequest + + IUpdateWfmConnectionFieldsRequest + + + None + + + Break + + Wait for the .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorId + + Used to specify the unique identifier of the connector being used for the connection. + + String + + String + + + None + + + ConnectorSpecificSettings + + Used to specify settings that are unique to the connector being used. This parameter allows administrators to configure various properties specific to the workforce management (WFM) system they are integrating with Teams Shifts. + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + State + + The state of the connection. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionFieldsRequest + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId 4dae9db0-0841-412c-8d6b-f5684bfebdd7 +PS C:\> $result = Update-CsTeamsShiftsConnection ` + -connectionId $connection.Id ` + -IfMatch $connection.Etag ` + -name "Cmdlet test connection - updated" ` + +PS C:\> $result | Format-List + +ConnectorId : 6A51B888-FF44-4FEA-82E1-839401E00000 +ConnectorSpecificSettingAdminApiUrl : https://www.contoso.com/retail/data/wfmadmin/api/v1-beta2 +ConnectorSpecificSettingApiUrl : +ConnectorSpecificSettingAppKey : +ConnectorSpecificSettingClientId : +ConnectorSpecificSettingCookieAuthUrl : https://www.contoso.com/retail/data/login +ConnectorSpecificSettingEssApiUrl : https://www.contoso.com/retail/data/wfmess/api/v1-beta2 +ConnectorSpecificSettingFederatedAuthUrl : https://www.contoso.com/retail/data/login +ConnectorSpecificSettingRetailWebApiUrl : https://www.contoso.com/retail/data/retailwebapi/api/v1 +ConnectorSpecificSettingSiteManagerUrl : https://www.contoso.com/retail/data/wfmsm/api/v1-beta2 +ConnectorSpecificSettingSsoUrl : +CreatedDateTime : 24/03/2023 04:58:23 +Etag : "5b00dd1b-0000-0400-0000-641d2df00000" +Id : 4dae9db0-0841-412c-8d6b-f5684bfebdd7 +LastModifiedDateTime : 24/03/2023 04:58:23 +Name : Cmdlet test connection - updated +State : Active +TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 + + Updates the connection with the specified -ConnectionId with the given name. Returns the object of the updated connection. + + + + -------------------------- Example 2 -------------------------- + PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId 79964000-286a-4216-ac60-c795a426d61a +PS C:\> $result = Update-CsTeamsShiftsConnection ` + -connectionId $connection.Id ` + -IfMatch $connection.Etag ` + -connectorId "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0" ` + -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest ` + -Property @{ + apiUrl = "https://www.contoso.com/api" + ssoUrl = "https://www.contoso.com/sso" + appKey = "PlaceholderForAppKey" + clientId = "Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W" + clientSecret = "PlaceholderForClientSecret" + }) ` + -state "Active" +PS C:\> $result | Format-List + +ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 +ConnectorSpecificSettingAdminApiUrl : +ConnectorSpecificSettingApiUrl : https://www.contoso.com/api +ConnectorSpecificSettingAppKey : +ConnectorSpecificSettingClientId : Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W +ConnectorSpecificSettingCookieAuthUrl : +ConnectorSpecificSettingEssApiUrl : +ConnectorSpecificSettingFederatedAuthUrl : +ConnectorSpecificSettingRetailWebApiUrl : +ConnectorSpecificSettingSiteManagerUrl : +ConnectorSpecificSettingSsoUrl : https://www.contoso.com/sso +CreatedDateTime : 06/04/2023 11:05:39 +Etag : "3100fd6e-0000-0400-0000-642ea7840000" +Id : 79964000-286a-4216-ac60-c795a426d61a +LastModifiedDateTime : 06/04/2023 11:05:39 +Name : Cmdlet test connection +State : Active +TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 + + Updates the connection with the specified -ConnectionId with the given settings. Returns the object of the updated connection. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection + + + Get-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection + + + New-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection + + + Set-CsTeamsShiftsConnection + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection + + + Test-CsTeamsShiftsConnectionValidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate + + + + + + Update-CsTeamsShiftsConnectionInstance + Update + CsTeamsShiftsConnectionInstance + + This cmdlet updates Shifts connection instance fields. + + + + This cmdlet updates a Shifts connection instance. Similar to the Set-CsTeamsShiftsConnectionInstance cmdlet, it allows the admin to make changes to the settings in the instance such as name, enabled scenarios, and sync frequency. The complete list of fields is not required allowing the user to update single fields of the instance. + + + + Update-CsTeamsShiftsConnectionInstance + + Body + + The request body. + + IUpdateConnectorInstanceFieldsRequest + + IUpdateConnectorInstanceFieldsRequest + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectorInstanceId + + The connector instance ID. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Update-CsTeamsShiftsConnectionInstance + + Body + + The request body. + + IUpdateConnectorInstanceFieldsRequest + + IUpdateConnectorInstanceFieldsRequest + + + None + + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Update-CsTeamsShiftsConnectionInstance + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorAdminEmail + + Gets or sets the list of connector admin email addresses. + + String[] + + String[] + + + None + + + ConnectorInstanceId + + The connector instance ID. + + String + + String + + + None + + + DesignatedActorId + + The designated actor ID that App acts as for Shifts Graph API calls. + + String + + String + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + + + SyncScenarioOfferShiftRequest + + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShift + + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + Update-CsTeamsShiftsConnectionInstance + + Break + + Wait for the .NET debugger to attach. + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorAdminEmail + + Gets or sets the list of connector admin email addresses. + + String[] + + String[] + + + None + + + DesignatedActorId + + The designated actor ID that App acts as for Shifts Graph API calls. + + String + + String + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + + SwitchParameter + + + False + + + State + + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + + String + + String + + + None + + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + + + SyncScenarioOfferShiftRequest + + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShift + + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + SwitchParameter + + + False + + + + + + Body + + The request body. + + IUpdateConnectorInstanceFieldsRequest + + IUpdateConnectorInstanceFieldsRequest + + + None + + + Break + + Wait for the .NET debugger to attach. + + SwitchParameter + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + SwitchParameter + + SwitchParameter + + + False + + + ConnectionId + + The WFM connection ID for the instance. This can be retrieved by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). + + String + + String + + + None + + + ConnectorAdminEmail + + Gets or sets the list of connector admin email addresses. + + String[] + + String[] + + + None + + + ConnectorInstanceId + + The connector instance ID. + + String + + String + + + None + + + DesignatedActorId + + The designated actor ID that App acts as for Shifts Graph API calls. + + String + + String + + + None + + + Etag + + Used to manage concurrency control. It helps ensure that updates to a Shifts connection instance are only applied if the instance has not been modified since it was last retrieved. This is particularly useful in preventing conflicts when multiple administrators might be making changes simultaneously. + + String + + String + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline. + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + IfMatch + + The value of the ETag field as returned by the cmdlets. + + String + + String + + + None + + + InputObject + + Identity Parameter + + IConfigApiBasedCmdletsIdentity + + IConfigApiBasedCmdletsIdentity + + + None + + + Name + + The connector instance name. + + String + + String + + + None + + + Proxy + + The URI for the proxy server to use. + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call. + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy. + + SwitchParameter + + SwitchParameter + + + False + + + State + + The state of the connection instance. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection instance. + + String + + String + + + None + + + SyncFrequencyInMin + + The sync frequency in minutes. + + Int32 + + Int32 + + + None + + + SyncScenarioOfferShiftRequest + + The sync state for the offer shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShift + + The sync state for the open shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioOpenShiftRequest + + The sync state for the open shift request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioShift + + The sync state for the shift scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioSwapRequest + + The sync state for the shift swap request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeCard + + The sync state for the time card scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOff + + The sync state for the time off scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioTimeOffRequest + + The sync state for the time off request scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + SyncScenarioUserShiftPreference + + The sync state for the user shift preferences scenario. Valid values are "Disabled", "FromWfmToShifts", and "TwoWay". + + String + + String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + SwitchParameter + + SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateConnectorInstanceFieldsRequest + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + PS C:\> $connectionInstance = Get-CsTeamsShiftsConnectionInstance -ConnectorInstanceId WCI-eba2865f-6cac-46f9-8733-e0631a4536e1 +PS C:\> $result = Update-CsTeamsShiftsConnectionInstance ` + -connectorInstanceId "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1" + -IfMatch $connectionInstance.Etag ` + -connectionId "79964000-286a-4216-ac60-c795a426d61a" ` + -name "Cmdlet test instance - updated" ` + -syncFrequencyInMin "30" ` + +PS C:\> $result.ToJsonString() + +{ + "syncScenarios": { + "offerShiftRequest": "FromWfmToShifts", + "openShift": "FromWfmToShifts", + "openShiftRequest": "FromWfmToShifts", + "shift": "FromWfmToShifts", + "swapRequest": "FromWfmToShifts", + "timeCard": "FromWfmToShifts", + "timeOff": "FromWfmToShifts", + "timeOffRequest": "FromWfmToShifts", + "userShiftPreferences": "Disabled" + }, + "id": "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1", + "tenantId": "dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a", + "connectionId": "a2d1b091-5140-4dd2-987a-98a8b5338744", + "connectorAdminEmails": [ ], + "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", + "designatedActorId": "ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231", + "name": "Cmdlet test instance - updated", + "syncFrequencyInMin": 30, + "workforceIntegrationId": "WFI_6b225907-b476-4d40-9773-08b86db7b11b", + "etag": "\"4f005d22-0000-0400-0000-642ff64a0000\"", + "createdDateTime": "2023-04-07T10:54:01.8170000Z", + "lastModifiedDateTime": "2023-04-07T10:54:01.8170000Z", + "state" : "Active" +} + + Updates the instance with the specified -ConnectorInstanceId with the given name and sync frequency. Returns the object of the updated connector instance. + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnectioninstance + + + Get-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance + + + New-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance + + + Set-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance + + + Remove-CsTeamsShiftsConnectionInstance + https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance + + + Test-CsTeamsShiftsConnectionValidate + https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate + + + + + + Update-CsTeamTemplate + Update + CsTeamTemplate + + This cmdlet submits an operation that updates a custom team template with new team template settings. + + + + NOTE: The response is a PowerShell object formatted as a JSON for readability. Please refer to the examples for suggested interaction flows for template management. + + + + Update-CsTeamTemplate + + App + + Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. To construct, see NOTES section for APP properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Category + + Gets or sets list of categories. + + System.String[] + + System.String[] + + + None + + + Channel + + Gets or sets the set of channel templates included in the team template. To construct, see NOTES section for CHANNEL properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + + None + + + Classification + + Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Gets or sets the team's Description. + + System.String + + System.String + + + None + + + DiscoverySetting + + Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + + None + + + DisplayName + + Gets or sets the team's DisplayName. + + System.String + + System.String + + + None + + + FunSetting + + Governs use of fun media like giphy and stickers in the team. To construct, see NOTES section for FUNSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + + None + + + GuestSetting + + Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Icon + + Gets or sets template icon. + + System.String + + System.String + + + None + + + IsMembershipLimitedToOwner + + Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. + + + System.Management.Automation.SwitchParameter + + + False + + + MemberSetting + + Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + + None + + + MessagingSetting + + Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + + None + + + OdataId + + A composite URI of a template. + + System.String + + System.String + + + None + + + OwnerUserObjectId + + Gets or sets the Microsoft Entra user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + PublishedBy + + Gets or sets published name. + + System.String + + System.String + + + None + + + ShortDescription + + Gets or sets template short description. + + System.String + + System.String + + + None + + + Specialization + + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + + System.String + + System.String + + + None + + + TemplateId + + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + + System.String + + System.String + + + None + + + Uri + + Gets or sets uri to be used for GetTemplate api call. + + System.String + + System.String + + + None + + + Visibility + + Used to control the scope of users who can view a group/team and its members, and ability to join. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Update-CsTeamTemplate + + App + + Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. To construct, see NOTES section for APP properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Category + + Gets or sets list of categories. + + System.String[] + + System.String[] + + + None + + + Channel + + Gets or sets the set of channel templates included in the team template. To construct, see NOTES section for CHANNEL properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + + None + + + Classification + + Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Gets or sets the team's Description. + + System.String + + System.String + + + None + + + DiscoverySetting + + Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + + None + + + DisplayName + + Gets or sets the team's DisplayName. + + System.String + + System.String + + + None + + + FunSetting + + Governs use of fun media like giphy and stickers in the team. To construct, see NOTES section for FUNSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + + None + + + GuestSetting + + Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Icon + + Gets or sets template icon. + + System.String + + System.String + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + IsMembershipLimitedToOwner + + Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. + + + System.Management.Automation.SwitchParameter + + + False + + + MemberSetting + + Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + + None + + + MessagingSetting + + Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + + None + + + OwnerUserObjectId + + Gets or sets the Microsoft Entra user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + PublishedBy + + Gets or sets published name. + + System.String + + System.String + + + None + + + ShortDescription + + Gets or sets template short description. + + System.String + + System.String + + + None + + + Specialization + + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + + System.String + + System.String + + + None + + + TemplateId + + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + + System.String + + System.String + + + None + + + Uri + + Gets or sets uri to be used for GetTemplate api call. + + System.String + + System.String + + + None + + + Visibility + + Used to control the scope of users who can view a group/team and its members, and ability to join. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Update-CsTeamTemplate + + Body + + The client input for a request to create a template. Only admins from Config Api can perform this request. To construct, see NOTES section for BODY properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + OdataId + + A composite URI of a template. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Update-CsTeamTemplate + + Body + + The client input for a request to create a template. Only admins from Config Api can perform this request. To construct, see NOTES section for BODY properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + None + + + Break + + Wait for .NET debugger to attach + + + SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + + SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + App + + Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. To construct, see NOTES section for APP properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] + + + None + + + Body + + The client input for a request to create a template. Only admins from Config Api can perform this request. To construct, see NOTES section for BODY properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + None + + + Break + + Wait for .NET debugger to attach + + SwitchParameter + + SwitchParameter + + + False + + + Category + + Gets or sets list of categories. + + System.String[] + + System.String[] + + + None + + + Channel + + Gets or sets the set of channel templates included in the team template. To construct, see NOTES section for CHANNEL properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] + + + None + + + Classification + + Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Description + + Gets or sets the team's Description. + + System.String + + System.String + + + None + + + DiscoverySetting + + Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings + + + None + + + DisplayName + + Gets or sets the team's DisplayName. + + System.String + + System.String + + + None + + + FunSetting + + Governs use of fun media like giphy and stickers in the team. To construct, see NOTES section for FUNSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings + + + None + + + GuestSetting + + Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings + + + None + + + HttpPipelineAppend + + SendAsync Pipeline Steps to be appended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + HttpPipelinePrepend + + SendAsync Pipeline Steps to be prepended to the front of the pipeline + + SendAsyncStep[] + + SendAsyncStep[] + + + None + + + Icon + + Gets or sets template icon. + + System.String + + System.String + + + None + + + InputObject + + Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + None + + + IsMembershipLimitedToOwner + + Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + MemberSetting + + Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings + + + None + + + MessagingSetting + + Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings + + + None + + + OdataId + + A composite URI of a template. + + System.String + + System.String + + + None + + + OwnerUserObjectId + + Gets or sets the Microsoft Entra user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + + System.String + + System.String + + + None + + + Proxy + + The URI for the proxy server to use + + Uri + + Uri + + + None + + + ProxyCredential + + Credentials for a proxy server to use for the remote call + + PSCredential + + PSCredential + + + None + + + ProxyUseDefaultCredentials + + Use the default credentials for the proxy + + SwitchParameter + + SwitchParameter + + + False + + + PublishedBy + + Gets or sets published name. + + System.String + + System.String + + + None + + + ShortDescription + + Gets or sets template short description. + + System.String + + System.String + + + None + + + Specialization + + The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + + System.String + + System.String + + + None + + + TemplateId + + Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + + System.String + + System.String + + + None + + + Uri + + Gets or sets uri to be used for GetTemplate api call. + + System.String + + System.String + + + None + + + Visibility + + Used to control the scope of users who can view a group/team and its members, and ability to join. + + System.String + + System.String + + + None + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate + + + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse + + + + + + + + Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject + + + + + + + + + ALIASES + COMPLEX PARAMETER PROPERTIES + To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + APP <ITeamsAppTemplate[]>: Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + - `[Id <String>]`: Gets or sets the app's ID in the global apps catalog. + BODY <ITeamTemplate>: The client input for a request to create a template. Only admins from Config Api can perform this request. + - `DisplayName <String>`: Gets or sets the team's DisplayName. + - `ShortDescription <String>`: Gets or sets template short description. + - `[App <ITeamsAppTemplate[]>]`: Gets or sets the set of applications that should be installed in teams created based on the template. The app catalog is the main directory for information about each app; this set is intended only as a reference. + - `[Id <String>]`: Gets or sets the app's ID in the global apps catalog. - `[Category <String[]>]`: Gets or sets list of categories. + - `[Channel <IChannelTemplate[]>]`: Gets or sets the set of channel templates included in the team template. + - `[Description <String>]`: Gets or sets channel description as displayed to users. - `[DisplayName <String>]`: Gets or sets channel name as displayed to users. - `[Id <String>]`: Gets or sets identifier for the channel template. - `[IsFavoriteByDefault <Boolean?>]`: Gets or sets a value indicating whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. - `[Tab <IChannelTabTemplate[]>]`: Gets or sets collection of tabs that should be added to the channel. - `[Configuration <ITeamsTabConfiguration>]`: Represents the configuration of a tab. - `[ContentUrl <String>]`: Gets or sets the Url used for rendering tab contents in Teams. - `[EntityId <String>]`: Gets or sets the identifier for the entity hosted by the tab provider. - `[RemoveUrl <String>]`: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - `[WebsiteUrl <String>]`: Gets or sets the Url for showing tab contents outside of Teams. - `[Id <String>]`: Gets or sets identifier for the channel tab template. - `[Key <String>]`: Gets a unique identifier. - `[MessageId <String>]`: Gets or sets id used to identify the chat message associated with the tab. - `[Name <String>]`: Gets or sets the tab name displayed to users. - `[SortOrderIndex <String>]`: Gets or sets index of the order used for sorting tabs. - `[TeamsAppId <String>]`: Gets or sets the app's id in the global apps catalog. - `[WebUrl <String>]`: Gets or sets the deep link url of the tab instance. - `[Classification <String>]`: Gets or sets the team's classification. Tenant admins configure Microsoft Entra ID with the set of possible values. + - `[Description <String>]`: Gets or sets the team's Description. + - `[DiscoverySetting <ITeamDiscoverySettings>]`: Governs discoverability of a team. + - `ShowInTeamsSearchAndSuggestion <Boolean>`: Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - `[FunSetting <ITeamFunSettings>]`: Governs use of fun media like giphy and stickers in the team. - `AllowCustomMeme <Boolean>`: Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - `AllowGiphy <Boolean>`: Gets or sets a value indicating whether users can post giphy content in team conversations. - `AllowStickersAndMeme <Boolean>`: Gets or sets a value indicating whether users can post stickers and memes in team conversations. - `GiphyContentRating <String>`: Gets or sets the rating filter on giphy content. - `[GuestSetting <ITeamGuestSettings>]`: Guest role settings for the team. - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether guests can create or edit channels in the team. - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether guests can delete team channels. - `[Icon <String>]`: Gets or sets template icon. + - `[IsMembershipLimitedToOwner <Boolean?>]`: Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. + - `[MemberSetting <ITeamMemberSettings>]`: Member role settings for the team. + - `AllowAddRemoveApp <Boolean>`: Gets or sets a value indicating whether members can add or remove apps in the team. - `AllowCreatePrivateChannel <Boolean>`: Gets or Sets a value indicating whether members can create Private channels. - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether members can create or edit channels in the team. - `AllowCreateUpdateRemoveConnector <Boolean>`: Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - `AllowCreateUpdateRemoveTab <Boolean>`: Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether members can delete team channels. - `UploadCustomApp <Boolean>`: Gets or sets a value indicating is allowed to upload custom apps. - `[MessagingSetting <ITeamMessagingSettings>]`: Governs use of messaging features within the team These are settings the team owner should be able to modify from UI after team creation. - `AllowChannelMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - `AllowOwnerDeleteMessage <Boolean>`: Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - `AllowTeamMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - `AllowUserDeleteMessage <Boolean>`: Gets or sets a value indicating whether team members can delete their own messages in team conversations. - `AllowUserEditMessage <Boolean>`: Gets or sets a value indicating whether team members can edit their own messages in team conversations. - `[OwnerUserObjectId <String>]`: Gets or sets the Microsoft Entra user object id of the user who should be set as the owner of the new team. Only to be used when an application or administrative user is making the request on behalf of the specified user. + - `[PublishedBy <String>]`: Gets or sets published name. + - `[Specialization <String>]`: The specialization or use case describing the team. Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + - `[TemplateId <String>]`: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. + - `[Uri <String>]`: Gets or sets uri to be used for GetTemplate api call. + - `[Visibility <String>]`: Used to control the scope of users who can view a group/team and its members, and ability to join. + + CHANNEL <IChannelTemplate[]>: Gets or sets the set of channel templates included in the team template. + - `[Description <String>]`: Gets or sets channel description as displayed to users. + - `[DisplayName <String>]`: Gets or sets channel name as displayed to users. + - `[Id <String>]`: Gets or sets identifier for the channel template. + - `[IsFavoriteByDefault <Boolean?>]`: Gets or sets a value indicating whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + - `[Tab <IChannelTabTemplate[]>]`: Gets or sets collection of tabs that should be added to the channel. + - `[Configuration <ITeamsTabConfiguration>]`: Represents the configuration of a tab. - `[ContentUrl <String>]`: Gets or sets the Url used for rendering tab contents in Teams. - `[EntityId <String>]`: Gets or sets the identifier for the entity hosted by the tab provider. - `[RemoveUrl <String>]`: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - `[WebsiteUrl <String>]`: Gets or sets the Url for showing tab contents outside of Teams. - `[Id <String>]`: Gets or sets identifier for the channel tab template. - `[Key <String>]`: Gets a unique identifier. - `[MessageId <String>]`: Gets or sets id used to identify the chat message associated with the tab. - `[Name <String>]`: Gets or sets the tab name displayed to users. - `[SortOrderIndex <String>]`: Gets or sets index of the order used for sorting tabs. - `[TeamsAppId <String>]`: Gets or sets the app's id in the global apps catalog. - `[WebUrl <String>]`: Gets or sets the deep link url of the tab instance. + DISCOVERYSETTING <ITeamDiscoverySettings>: Governs discoverability of a team. + - `ShowInTeamsSearchAndSuggestion <Boolean>`: Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + FUNSETTING <ITeamFunSettings>: Governs use of fun media like giphy and stickers in the team. + - `AllowCustomMeme <Boolean>`: Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + - `AllowGiphy <Boolean>`: Gets or sets a value indicating whether users can post giphy content in team conversations. + - `AllowStickersAndMeme <Boolean>`: Gets or sets a value indicating whether users can post stickers and memes in team conversations. + - `GiphyContentRating <String>`: Gets or sets the rating filter on giphy content. + + GUESTSETTING <ITeamGuestSettings>: Guest role settings for the team. + - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether guests can create or edit channels in the team. + - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether guests can delete team channels. + + INPUTOBJECT <IConfigApiBasedCmdletsIdentity>: Identity Parameter + - `[Bssid <String>]`: + - `[ChassisId <String>]`: + - `[CivicAddressId <String>]`: Civic address id. + - `[Country <String>]`: + - `[GroupId <String>]`: The ID of a group whose policy assignments will be returned. + - `[Id <String>]`: + - `[Identity <String>]`: + - `[Locale <String>]`: + - `[LocationId <String>]`: Location id. + - `[OdataId <String>]`: A composite URI of a template. + - `[OperationId <String>]`: The ID of a batch policy assignment operation. + - `[OrderId <String>]`: + - `[PackageName <String>]`: The name of a specific policy package + - `[PolicyType <String>]`: The policy type for which group policy assignments will be returned. + - `[Port <String>]`: + - `[PortInOrderId <String>]`: + - `[PublicTemplateLocale <String>]`: Language and country code for localization of publicly available templates. + - `[SubnetId <String>]`: + - `[TenantId <String>]`: + - `[UserId <String>]`: UserId. Supports Guid. Eventually UPN and SIP. + + MEMBERSETTING <ITeamMemberSettings>: Member role settings for the team. + - `AllowAddRemoveApp <Boolean>`: Gets or sets a value indicating whether members can add or remove apps in the team. + - `AllowCreatePrivateChannel <Boolean>`: Gets or Sets a value indicating whether members can create Private channels. + - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether members can create or edit channels in the team. + - `AllowCreateUpdateRemoveConnector <Boolean>`: Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + - `AllowCreateUpdateRemoveTab <Boolean>`: Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether members can delete team channels. + - `UploadCustomApp <Boolean>`: Gets or sets a value indicating is allowed to upload custom apps. + + MESSAGINGSETTING <ITeamMessagingSettings>: Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + - `AllowChannelMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + - `AllowOwnerDeleteMessage <Boolean>`: Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + - `AllowTeamMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + - `AllowUserDeleteMessage <Boolean>`: Gets or sets a value indicating whether team members can delete their own messages in team conversations. + - `AllowUserEditMessage <Boolean>`: Gets or sets a value indicating whether team members can edit their own messages in team conversations. + + ## RELATED LINKS + - [Get-CsTeamTemplateList](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Get-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [New-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Update-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + - [Remove-CsTeamTemplate](https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist) + + + + + -------------------------- EXAMPLE 1 -------------------------- + PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/bfd1ccc8-40f4-4996-833f-461947d23348/Tenant/fr-FR') > input.json +# open json in your favorite editor, make changes + +Update-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/bfd1ccc8-40f4-4996-833f-461947d23348/Tenant/fr-FR' -Body (Get-Content '.\input.json' | Out-String) + + Step 1: Creates a JSON file of the template you have specified. Step 2: Updates the template with JSON file you have edited. + + + + -------------------------- EXAMPLE 2 -------------------------- + PS C:\> $template = New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplate -Property @{` +DisplayName='New Template';` +ShortDescription='Short Definition';` +Description='New Description';` +App=@{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'};` +Channel=@{` + displayName = "General";` + id= "General";` + isFavoriteByDefault= $true` + },` + @{` + displayName= "test";` + id= "b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475";` + isFavoriteByDefault= $false` + }` +} + +PS C:\> Update-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/bfd1ccc8-40f4-4996-833f-461947d23348/Tenant/fr-FR' -Body $template + + Update to a new object + + + + -------------------------- EXAMPLE 3 -------------------------- + PS C:\> Update-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/bfd1ccc8-40f4-4996-833f-461947d23348/Tenant/fr-FR' ` +-Locale en-US -DisplayName 'New Template' ` +-ShortDescription 'New Description' ` +-App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` +-Channel @{ ` +displayName = "General"; ` +id= "General"; ` +isFavoriteByDefault= $true ` +}, ` +@{ ` + displayName= "test"; ` + id= "b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` + isFavoriteByDefault= $false ` +} + + > [!Note] > It can take up to 24 hours for Teams users to see a custom template change in the gallery. + + + + + + Online Version: + https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate + + + + \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 b/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 new file mode 100644 index 000000000000..1acb708033e1 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 @@ -0,0 +1,54499 @@ + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +# .ExternalHelp en-US\MicrosoftTeams-help +function Clear-CsCacheOperation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICacheClearResponse])] +[CmdletBinding(DefaultParameterSetName='ClearExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Clear', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICacheClearRequest] + # Request to clear cache entries. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='ClearExpanded', Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Keys to be deleted from the cache. + ${KeysToDelete}, + + [Parameter(ParameterSetName='ClearExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Region from where cache keys are to be deleted. + ${Region}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Clear = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Clear-CsCacheOperation_Clear'; + ClearExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Clear-CsCacheOperation_ClearExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Clear-CsOCEContext { +[CmdletBinding(PositionalBinding=$false)] +param() + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Clear-CsOCEContext'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Clear-CsRegionContext { +[CmdletBinding(PositionalBinding=$false)] +param() + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Clear-CsRegionContext'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Connect-CsConfigApi { +[OutputType([System.Management.Automation.Runspaces.PSSession])] +[CmdletBinding(DefaultParameterSetName='DefaultSet', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantDomain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+TeamsEnvironment] + ${TeamsEnvironmentName}, + + [Parameter(ParameterSetName='DefaultSet')] + [Parameter(ParameterSetName='CredentialFlow')] + [Parameter(ParameterSetName='AccessTokenFlow')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+ConfigApiEnvironment] + ${UseConfigApiEnvironment}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ShowTelemetry}, + + [Parameter(ParameterSetName='CredentialFlow', Mandatory)] + [Parameter(ParameterSetName='CredentialFlowWithLocal', Mandatory)] + [Parameter(ParameterSetName='CredentialFlowWithInt', Mandatory)] + [Parameter(ParameterSetName='CredentialFlowWithMsit', Mandatory)] + [Parameter(ParameterSetName='CredentialFlowWithNpe', Mandatory)] + [Parameter(ParameterSetName='CredentialFlowWithTdf', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSCredential] + ${Credential}, + + [Parameter(ParameterSetName='CredentialFlowWithLocal', Mandatory)] + [Parameter(ParameterSetName='LocalHost', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${UseLocalHost}, + + [Parameter(ParameterSetName='CredentialFlowWithInt', Mandatory)] + [Parameter(ParameterSetName='IntHost', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${UseConfigApiInt}, + + [Parameter(ParameterSetName='CredentialFlowWithMsit', Mandatory)] + [Parameter(ParameterSetName='MsitHost', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${UseConfigApiMsit}, + + [Parameter(ParameterSetName='CredentialFlowWithNpe', Mandatory)] + [Parameter(ParameterSetName='NpeHost', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${UseConfigApiNpe}, + + [Parameter(ParameterSetName='CredentialFlowWithTdf', Mandatory)] + [Parameter(ParameterSetName='TDFHost', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${UseConfigApiTDF}, + + [Parameter(ParameterSetName='AccessTokenFlow', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantGuid}, + + [Parameter(ParameterSetName='AccessTokenFlow', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AccessToken}, + + [Parameter(ParameterSetName='AccessTokenFlow', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UserName} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + DefaultSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + CredentialFlow = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + CredentialFlowWithLocal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + CredentialFlowWithInt = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + CredentialFlowWithMsit = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + CredentialFlowWithNpe = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + CredentialFlowWithTdf = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + AccessTokenFlow = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + LocalHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + IntHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + MsitHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + NpeHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + TDFHost = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Disable-CsOnlineSipDomain { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Domain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disable-CsOnlineSipDomain'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Disable-CsTeamsShiftsConnectionErrorReport { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Disable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disable1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The UUID of a report instance + ${ErrorReportId}, + + [Parameter(ParameterSetName='DisableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.DateTime] + # The timestamp indicating results should be after which date and time + ${After}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.DateTime] + # The timestamp indicating results should be before which date and time + ${Before}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The enum value of error code, human readable string defined in codebase + ${Code}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The UUID of a connector instance + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The name of the action of the controller or the name of the command + ${Operation}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The name of the executing function or procedure + ${Procedure}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The UUID of a team in Graph + ${TeamId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Disable = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disable-CsTeamsShiftsConnectionErrorReport_Disable'; + Disable1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disable-CsTeamsShiftsConnectionErrorReport_Disable1'; + DisableViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disable-CsTeamsShiftsConnectionErrorReport_DisableViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Disconnect-CsConfigApi { +[OutputType([System.Management.Automation.Runspaces.PSSession])] +[CmdletBinding(PositionalBinding=$false)] +param() + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disconnect-CsConfigApi'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Enable-CsOnlineSipDomain { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Domain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Enable-CsOnlineSipDomain'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Export-CsAcquiredPhoneNumber { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Property}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Export = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsAcquiredPhoneNumber_Export'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsApplicationAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationAccessPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsApplicationInstanceV2ApplicationInstanceAsync { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity. + # Object id or UPN. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationInstanceV2ApplicationInstanceAsync_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationInstanceV2ApplicationInstanceAsync_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsApplicationMeetingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationMeetingConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationMeetingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAutoRestCommandInfo { +[OutputType([System.Management.Automation.Runspaces.PSSession])] +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Generic.Dictionary[System.String,System.Object]] + ${BoundParameters}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RemotingCommand}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigApi.Cmdlets.FlightingUtils+OverrideFlightMode] + ${FlightMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoRestCommandInfo'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsBatchPolicyAssignmentOperation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISimpleBatchJobStatus], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBatchJobStatus])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Alias('OperationId')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The ID of a batch policy assignment operation. + ${Identity}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Option filter + ${Status}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBatchPolicyAssignmentOperation_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBatchPolicyAssignmentOperation_Get1'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsBatchTeamsDeploymentStatus { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The Id of specific Orchestration + ${OrchestrationId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBatchTeamsDeploymentStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBatchTeamsDeploymentStatus_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsCallingLineIdentity { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallingLineIdentity'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallingLineIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsCloudCallDataConnection { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCloudCallDataConnection'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsCloudCallDataConnectionModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICloudCallDataConnection])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCloudCallDataConnectionModern_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsCloudTenant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICloudTenant])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCloudTenant_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsCloudUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICloudUser])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # UserId. + # Supports Guid. + ${UserId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCloudUser_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsDialPlan { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsDialPlan'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsDialPlan'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsEffectiveTenantDialPlan { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OU}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ResultSize}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsEffectiveTenantDialPlan'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsEffectiveTenantDialPlanModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantDialPlan])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsEffectiveTenantDialPlanModern_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsEffectiveTenantDialPlanModern_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsExportAcquiredPhoneNumberStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetExportAcquiredTelephoneNumbersResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${OrderId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsExportAcquiredPhoneNumberStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsExportAcquiredPhoneNumberStatus_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsExternalAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsExternalAccessPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsExternalAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsGroupPolicyAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupAssignment])] +[CmdletBinding(DefaultParameterSetName='Get2', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The ID of a group whose policy assignments will be returned. + ${GroupId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get2')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The policy type for which group policy assignments will be returned. + ${PolicyType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsGroupPolicyAssignment_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsGroupPolicyAssignment_Get1'; + Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsGroupPolicyAssignment_Get2'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsHostingProvider { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${LocalStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsHostingProvider'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsHostingProvider'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsHybridTelephoneNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IHybridTelephoneNumber])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # An instance of hybrid telephone number. + ${TelephoneNumber}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsHybridTelephoneNumber_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsHybridTelephoneNumber_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsHybridTelephoneNumber_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsInboundBlockedNumberPattern { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsInboundBlockedNumberPattern'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsInboundBlockedNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsInboundExemptNumberPattern { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsInboundExemptNumberPattern'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsInboundExemptNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsInternalConfigApiModuleVersion { +[OutputType([System.String])] +[CmdletBinding(PositionalBinding=$false)] +param() + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsInternalConfigApiModuleVersion'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMasObjectChangelog { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasChangelogItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Schemas to get from MAS DB, defaults to User, UserAdminAuthoredProps, UserAuthoredProps + ${SchemaName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Last X versions to fetch from MAS DB. + ${Version}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasObjectChangelog_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMeetingMigrationStatus { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.DateTime]] + ${EndTime}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MigrationType}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.DateTime]] + ${StartTime}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${State}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SummaryOnly}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatus'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the service number. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity of the bridge, optional parameter. + ${BridgeId}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # BridgeName, optional parameter. + ${BridgeName}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # City service number belongs to, optional parameter. + ${City}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Result size to send, optional parameter. + ${ResultSize}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcServiceNumber_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcServiceNumber_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcServiceNumber_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineApplicationInstance { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Identities}, + + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${ResultSize}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Skip}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineApplicationInstanceDiagnosticData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceDiagnosticDataResult])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Application instance object ID. + ${ObjectId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceDiagnosticData_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceDiagnosticData_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineApplicationInstanceV2 { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # identity. + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # resultSize. + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # skip. + ${Skip}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceV2_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineAudioConferencingRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioConferencingRoutingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioConferencingRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDialinConferencingBridge { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the bridge. + ${Identity}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Name of the bridge. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingBridge_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingBridge_Get1'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDialinConferencingLanguagesSupported { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISupportedLanguage])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingLanguagesSupported_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDialinConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDialInConferencingServiceNumber { +[CmdletBinding(DefaultParameterSetName='FiltersParams', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='FiltersParams')] + [Parameter(ParameterSetName='TenantIdParams')] + [Parameter(ParameterSetName='TenantDomainParams')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeName}, + + [Parameter(ParameterSetName='FiltersParams')] + [Parameter(ParameterSetName='UniqueBridgeParams')] + [Parameter(ParameterSetName='TenantIdParams')] + [Parameter(ParameterSetName='TenantDomainParams')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${City}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ParameterSetName='FiltersParams')] + [Parameter(ParameterSetName='UniqueBridgeParams')] + [Parameter(ParameterSetName='TenantIdParams')] + [Parameter(ParameterSetName='TenantDomainParams')] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${ResultSize}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='UniqueBridgeParams', Mandatory)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${BridgeId}, + + [Parameter(ParameterSetName='TenantDomainParams', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantDomain}, + + [Parameter(ParameterSetName='UniqueNumberParams', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + FiltersParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; + UniqueBridgeParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; + TenantIdParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; + TenantDomainParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; + UniqueNumberParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDialinConferencingTenantConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingTenantConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingTenantConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDialInConferencingTenantSettings { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingTenantSettings'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingTenantSettings'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDialOutPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialOutPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialOutPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDirectoryTenant { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDirectoryTenant'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Version}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisCivicAddress { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AssignmentStatus}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${City}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${CivicAddressId}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ValueFromPipelineByPropertyName)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${NumberOfResultsToSkip}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PopulateNumberOfTelephoneNumbers}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PopulateNumberOfVoiceUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${ResultSize}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisCivicAddressModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${City}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${CivicAddressId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${NumberOfResultsToSkip}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${PopulateNumberOfTelephoneNumbers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${PopulateNumberOfVoiceUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddressModern_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisCivicAddressOnly { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${CivicAddressId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddressOnly_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddressOnly_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisLocation { +[CmdletBinding(DefaultParameterSetName='GetByLocationID', PositionalBinding=$false)] +param( + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AssignmentStatus}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${City}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${NumberOfResultsToSkip}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PopulateNumberOfTelephoneNumbers}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PopulateNumberOfVoiceUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${ResultSize}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='UseCivicAddressId', Mandatory, ValueFromPipelineByPropertyName)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${CivicAddressId}, + + [Parameter(ParameterSetName='UseLocation', Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Location}, + + [Parameter(ParameterSetName='UseLocationId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${LocationId} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GetByLocationID = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocation'; + UseCivicAddressId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocation'; + UseLocation = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocation'; + UseLocationId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisLocationModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ILocationSchema])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${City}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${CivicAddressId}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Location}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${NumberOfResultsToSkip}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${PopulateNumberOfTelephoneNumbers}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${PopulateNumberOfVoiceUsers}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${ResultSize}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationModern_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationModern_Get1'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisLocationOnly { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ILocationSchema])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationOnly_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationOnly_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationOnly_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationOnly_GetViaIdentity1'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisPort { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=1, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChassisID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PortID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisPort'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisPortModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPortResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter(ParameterSetName='Get2', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChassisId}, + + [Parameter(ParameterSetName='Get2', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PortId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisPortModern_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisPortModern_Get1'; + Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisPortModern_Get2'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisSubnet { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter(Position=1, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Subnet}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnet'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisSubnetModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISubnetResponse], [System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get2', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Subnet}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnetModern_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnetModern_Get1'; + Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnetModern_Get2'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnetModern_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisSwitch { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=1, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChassisID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitch'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisSwitchModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISwitchResponse], [System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get2', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ChassisId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitchModern_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitchModern_Get1'; + Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitchModern_Get2'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitchModern_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisWirelessAccessPoint { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=1, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BSSID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPoint'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineLisWirelessAccessPointModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWaPResponse], [System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get2', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Bssid}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPointModern_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPointModern_Get1'; + Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPointModern_Get2'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPointModern_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlinePSTNGateway { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlinePSTNGateway'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlinePSTNGateway'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlinePstnUsage { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlinePstnUsage'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlinePstnUsage'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineSipDomain { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Domain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DomainStatus}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSipDomain'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineSipDomainModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantVerifiedSipDomain])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Option filter for domain + ${Domain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Option filter for status + ${DomainStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSipDomainModern_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineTelephoneNumber { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ActivationState}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Assigned}, + + [Parameter()] + [Alias('CityCode')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CapitalOrMajorCity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Country}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExpandLocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${InventoryType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${IsNotAssigned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${NumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumberGreaterThan}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumberLessThan}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumberStartsWith}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineTelephoneNumberCountry { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCountry], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberCountry_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineTelephoneNumberType { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletPlan], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Country}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberType_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberType_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineUser { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter}, + + [Parameter(Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SkipUserPolicies}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SoftDeletedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] + ${AccountType}, + + [Parameter()] + [Alias('Sort')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OrderBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Properties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineUser'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineVoicemailPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoicemailPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoicemailPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineVoiceRoute { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoiceRoute'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoiceRoute'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineVoiceRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoiceRoutingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoiceRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineVoiceUser { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${CivicAddressId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${EnterpriseVoiceStatus}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExpandLocation}, + + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${First}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${GetFromAAD}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${GetPendingUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${NumberAssigned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${NumberNotAssigned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${PSTNConnectivity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SearchQuery}, + + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Skip}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoiceUser'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsPersonalAttendantSettings { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPersonalAttendantSettings_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPersonalAttendantSettings_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsPhoneNumberAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletAcquiredTelephoneNumber])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ActivationState}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${AssignedPstnTargetId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${AssignmentCategory}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${CapabilitiesContain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${CivicAddressId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Filter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${IsoCountryCode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NetworkSiteId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PstnAssignmentStatus}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TelephoneNumberContain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TelephoneNumberGreaterThan}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TelephoneNumberLessThan}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TelephoneNumberStartsWith}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Top}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPhoneNumberAssignment_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsPhoneNumberPolicyAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResult])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PolicyName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PolicyType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${ResultSize}, + + [Parameter()] + [Alias('Identity')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPhoneNumberPolicyAssignment_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsPhoneNumberTag { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletTenantTagRecord])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPhoneNumberTag_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsPolicyPackage { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackageSummary], [System.String], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackage])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The name of a specific policy package + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPolicyPackage_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsPrivacyConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPrivacyConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPrivacyConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsRegionContext { +[CmdletBinding(PositionalBinding=$false)] +param() + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsRegionContext'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsSdgBulkSignInRequestsSummary { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestsSummaryResponseItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSdgBulkSignInRequestsSummary_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsSdgBulkSignInRequestStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestStatusResult])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # batchid for which the status needs to be fetched + ${Batchid}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSdgBulkSignInRequestStatus_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsSessionState { +[OutputType([System.Management.Automation.Runspaces.PSSession])] +[CmdletBinding(PositionalBinding=$false)] +param() + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSessionState'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsAcsFederationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAcsFederationConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAcsFederationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsAppPermissionPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAppPermissionPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAppPermissionPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsAppSetupPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAppSetupPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAppSetupPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsAudioConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAudioConferencingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAudioConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsCallHoldPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallHoldPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallHoldPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsCallParkPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallParkPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallParkPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsChannelsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsChannelsPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsChannelsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsClientConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsClientConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsClientConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsComplianceRecordingApplication { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsComplianceRecordingApplication'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsComplianceRecordingApplication'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsComplianceRecordingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsComplianceRecordingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsComplianceRecordingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsCortanaPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCortanaPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCortanaPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsEducationAssignmentsAppPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEducationAssignmentsAppPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEducationAssignmentsAppPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsEducationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEducationConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEducationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsEmergencyCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEmergencyCallingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEmergencyCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsEmergencyCallRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEmergencyCallRoutingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEmergencyCallRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsEnhancedEncryptionPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEnhancedEncryptionPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEnhancedEncryptionPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsEventsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEventsPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEventsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsFeedbackPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsFeedbackPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsFeedbackPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsFilesPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsFilesPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsFilesPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsGuestCallingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestCallingConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestCallingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsGuestMeetingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestMeetingConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestMeetingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsGuestMessagingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestMessagingConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestMessagingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsIPPhonePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsIPPhonePolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsIPPhonePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsMediaLoggingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMediaLoggingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMediaLoggingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsMeetingBroadcastConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExposeSDNConfigurationJsonBlob}, + + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingBroadcastConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingBroadcastConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsMeetingBroadcastPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingBroadcastPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingBroadcastPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsMeetingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsMeetingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsMessagingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMessagingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMessagingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsMigrationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMigrationConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMigrationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsMobilityPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMobilityPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMobilityPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsNetworkRoamingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsNetworkRoamingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsNetworkRoamingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsNotificationAndFeedsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsNotificationAndFeedsPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsNotificationAndFeedsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsRoomVideoTeleConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsRoomVideoTeleConferencingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsRoomVideoTeleConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsAppPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsAppPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsAppPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnectionConnector { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionConnector_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnectionErrorReport { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorReportResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The UUID of a report instance + ${ErrorReportId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Activeness}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${After}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Before}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Code}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ConnectionId}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Operation}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Procedure}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TeamId}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # Bearer: token + ${Authorization}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionErrorReport_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionErrorReport_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionErrorReport_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnectionInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionInstance_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionInstance_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionInstance_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnectionOperation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetOperationResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${OperationId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionOperation_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionOperation_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnectionSyncResult { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetUserSyncResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Team Id + ${TeamId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionSyncResult_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionSyncResult_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnectionTeamMap { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamConnectResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionTeamMap_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionTeamMap_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnectionWfmTeam { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmTeam], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmTeamResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connection Id. + ${ConnectionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Parameter(ParameterSetName='GetViaIdentity1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # Bearer: token + ${Authorization}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmTeam_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmTeam_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmTeam_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmTeam_GetViaIdentity1'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnectionWfmUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserAutoGenerated], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Team Id + ${WfmTeamId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmUser_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsConnection { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connection Id. + ${ConnectionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # Bearer: token + ${Authorization}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnection_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnection_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnection_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsShiftsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsSurvivableBranchAppliance { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSurvivableBranchAppliance'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSurvivableBranchAppliance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsSurvivableBranchAppliancePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSurvivableBranchAppliancePolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSurvivableBranchAppliancePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsTargetingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsTargetingPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsTargetingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsTranslationRule { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsTranslationRule'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsTranslationRule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsUnassignedNumberTreatment { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUnassignedNumberTreatment'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUnassignedNumberTreatment'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsUpdateManagementPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpdateManagementPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpdateManagementPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsUpgradeConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpgradeConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpgradeConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsUpgradePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpgradePolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpgradePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsVdiPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVdiPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVdiPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsVideoInteropServicePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVideoInteropServicePolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVideoInteropServicePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsVoiceApplicationsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVoiceApplicationsPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVoiceApplicationsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsWorkLoadPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsWorkLoadPolicy'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsWorkLoadPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # A composite URI of a template. + ${OdataId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplate_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplate_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenant { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter}, + + [Parameter(Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ResultSize}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenant'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantApp { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantApp_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantBlockedCallingNumbers { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantBlockedCallingNumbers'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantBlockedCallingNumbers'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantDialPlan { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantDialPlan'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantDialPlan'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantFederationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantFederationConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantFederationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantLicensingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLicensingConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLicensingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantLocationPhoneNumberAsync { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The civic address Id. + ${CivicAddressId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The location Id. + ${LocationId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationPhoneNumberAsync_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationPhoneNumberAsync_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationPhoneNumberAsync_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationPhoneNumberAsync_GetViaIdentity1'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantLocationUserAsync { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Civic address id. + ${CivicAddressId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Location id. + ${LocationId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationUserAsync_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationUserAsync_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationUserAsync_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationUserAsync_GetViaIdentity1'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantMigrationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantMigrationConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantMigrationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantNetworkConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkConfiguration'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantNetworkRegion { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkRegion'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkRegion'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantNetworkSite { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkSite'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkSite'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantNetworkSubnet { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkSubnet'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkSubnet'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantPhoneAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='Get2', Mandatory)] + [Parameter(ParameterSetName='Get3', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Civic address id. + ${CivicAddressId}, + + [Parameter(ParameterSetName='Get2', Mandatory)] + [Parameter(ParameterSetName='Get3', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Location id. + ${LocationId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity2', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity3', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_Get1'; + Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_Get2'; + Get3 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_Get3'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_GetViaIdentity1'; + GetViaIdentity2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_GetViaIdentity2'; + GetViaIdentity3 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_GetViaIdentity3'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantTrustedIPAddress { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantTrustedIPAddress'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantTrustedIPAddress'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantUserAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Parameter(ParameterSetName='Get2', Mandatory)] + [Parameter(ParameterSetName='Get3', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Civic address id. + ${CivicAddressId}, + + [Parameter(ParameterSetName='Get2', Mandatory)] + [Parameter(ParameterSetName='Get3', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Location id. + ${LocationId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity2', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity3', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_Get1'; + Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_Get2'; + Get3 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_Get3'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_GetViaIdentity1'; + GetViaIdentity2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_GetViaIdentity2'; + GetViaIdentity3 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_GetViaIdentity3'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserApp { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + # Supports Guid. + ${UserId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserApp_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserApp_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserCallingSettings { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserCallingSettings_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserCallingSettings_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserPolicyAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEffectivePolicy])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('User')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The policy type for which group policy assignments will be returned. + ${PolicyType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserPolicyAssignment_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserPolicyAssignment_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserPolicyPackageRecommendation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackageRecommendation], [System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # The user that will receive policy package recommendations if provided + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserPolicyPackageRecommendation_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserPolicyPackage { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackageSummary], [System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # The user + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserPolicyPackage_Get'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUssUserSettings { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # TenantId. + # Guid + ${TenantId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + # Guid + ${UserId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Setting name + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUssUserSettings_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUssUserSettings_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsVideoInteropServiceProvider { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Identity', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='Filter')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsVideoInteropServiceProvider'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsVideoInteropServiceProvider'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsApplicationAccessPolicy { +[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsApplicationAccessPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsApplicationAccessPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsApplicationAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsCallingLineIdentity { +[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsCallingLineIdentity'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsCallingLineIdentity'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsCallingLineIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsDialoutPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsDialoutPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsDialoutPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsDialoutPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsExternalAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsExternalAccessPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsExternalAccessPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsExternalAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsOnlineAudioConferencingRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineAudioConferencingRoutingPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineAudioConferencingRoutingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineAudioConferencingRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsOnlineVoicemailPolicy { +[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoicemailPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoicemailPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoicemailPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsOnlineVoiceRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoiceRoutingPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoiceRoutingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoiceRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsAppPermissionPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppPermissionPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppPermissionPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppPermissionPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsAppSetupPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppSetupPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppSetupPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppSetupPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsAudioConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAudioConferencingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAudioConferencingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAudioConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsCallHoldPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallHoldPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallHoldPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallHoldPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallingPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsCallParkPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallParkPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallParkPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallParkPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsChannelsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsChannelsPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsChannelsPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsChannelsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsComplianceRecordingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsComplianceRecordingPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsComplianceRecordingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsComplianceRecordingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsCortanaPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCortanaPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCortanaPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCortanaPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsEmergencyCallingPolicy { +[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsEmergencyCallRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallRoutingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallRoutingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsEnhancedEncryptionPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEnhancedEncryptionPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEnhancedEncryptionPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEnhancedEncryptionPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsEventsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEventsPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEventsPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEventsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsFeedbackPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFeedbackPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFeedbackPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFeedbackPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsFilesPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFilesPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFilesPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFilesPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsIPPhonePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsIPPhonePolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsIPPhonePolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsIPPhonePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsMediaLoggingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMediaLoggingPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMediaLoggingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMediaLoggingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsMeetingBroadcastPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingBroadcastPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingBroadcastPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingBroadcastPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsMeetingPolicy { +[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingPolicy'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsMessagingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMessagingPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMessagingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMessagingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsMobilityPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMobilityPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMobilityPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMobilityPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsRoomVideoTeleConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsRoomVideoTeleConferencingPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsRoomVideoTeleConferencingPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsRoomVideoTeleConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsShiftsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsShiftsPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsShiftsPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsShiftsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsSurvivableBranchAppliancePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsSurvivableBranchAppliancePolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsSurvivableBranchAppliancePolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsSurvivableBranchAppliancePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsUpdateManagementPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpdateManagementPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpdateManagementPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpdateManagementPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsUpgradePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${MigrateMeetingsToTeams}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpgradePolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpgradePolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpgradePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsVdiPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVdiPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVdiPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVdiPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsVideoInteropServicePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVideoInteropServicePolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVideoInteropServicePolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVideoInteropServicePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsVoiceApplicationsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVoiceApplicationsPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVoiceApplicationsPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVoiceApplicationsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsWorkLoadPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsWorkLoadPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsWorkLoadPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsWorkLoadPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTenantDialPlan { +[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='GrantToTenant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantDialPlan'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantDialPlan'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantDialPlan'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsUserPolicyPackage { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsPostPackageResponse])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PackageName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicyPackage_GrantExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsCustomHandlerNgtprov { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='CustomExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Custom', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerPayload] + # Payload for custom Handler + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='CustomExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Custom Handler Fully Qualified Name + ${HandlerFullyQualifiedName}, + + [Parameter(ParameterSetName='CustomExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # PayLoad for Custom Handler + ${Payload}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Custom = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerNgtprov_Custom'; + CustomExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerNgtprov_CustomExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalBeginmove { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMigrationData])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBeginMoveRequestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MajorVersion}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserSipUri}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalBeginmove_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalBeginmove_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalCompletemove { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICompleteMoveRequestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MajorVersion}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserSipUri}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalCompletemove_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalCompletemove_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalGetpolicy { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IKeyValuePairStringItem])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserSipUriRequestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserSipUri}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalGetpolicy_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalGetpolicy_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalPsTelemetry { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TeamsModuleAuthTypeUsed} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalPsTelemetry'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalRehomeuser { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRehomeUserRequestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MoveToCloud}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataCheckCpc}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataCheckEnterpriseVoice}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataMoveToTeam}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserSipUri}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalRehomeuser_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalRehomeuser_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalRollback { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserSipUriRequestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserSipUri}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalRollback_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalRollback_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalSelfhostLogger { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LogLevel}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Message} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalSelfhostLogger'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalSetmovedresourcedata { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISetMovedResourceDataRequestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MajorVersion}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ResourceDataDatastr}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataCheckCpc}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataCheckEnterpriseVoice}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataMoveToTeam}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserSipUri}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalSetmovedresourcedata_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalSetmovedresourcedata_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalTelemetryRelayApp { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITelemetryRelayResponseSessionConfiguration], [System.String])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectPowershellTelemetry] + # The version numbers for the relevant powershell modules, possibly installed on the machine. + # NOTE: This definition must be manually kept same as defined in + # src\Microsoft.TeamsCmdlets.PowerShell.Connect\ConnectMicrosoftTeams.cs of the repository + # https://domoreexp.visualstudio.com/DefaultCollection/Teamspace/_git/teams-powershellcmdlet. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or Sets the Version of the ConfigApiPowershell module. + ${ConfigApiPowershellModuleVersion}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or Sets the Version of the MicrosoftTeams powershell module. + ${MicrosoftTeamsPsVersion}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or Sets the Version of the Skype For Business Online Connector. + ${SfBOnlineConnectorPsversion}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or Sets Authentication type used by MicrosoftTeams module. + ${TeamsModuleAuthTypeUsed}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalTelemetryRelayApp_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalTelemetryRelayApp_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalTelemetryRelay { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITelemetryRelayResponseSessionConfiguration], [System.String])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectPowershellTelemetry] + # The version numbers for the relevant powershell modules, possibly installed on the machine. + # NOTE: This definition must be manually kept same as defined in + # src\Microsoft.TeamsCmdlets.PowerShell.Connect\ConnectMicrosoftTeams.cs of the repository + # https://domoreexp.visualstudio.com/DefaultCollection/Teamspace/_git/teams-powershellcmdlet. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or Sets the Version of the ConfigApiPowershell module. + ${ConfigApiPowershellModuleVersion}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or Sets the Version of the MicrosoftTeams powershell module. + ${MicrosoftTeamsPsVersion}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or Sets the Version of the Skype For Business Online Connector. + ${SfBOnlineConnectorPsversion}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or Sets Authentication type used by MicrosoftTeams module. + ${TeamsModuleAuthTypeUsed}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalTelemetryRelay_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalTelemetryRelay_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsInternalValidateuser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDeploymentInfo])] +[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IValidateUserRequestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CmdletVersion}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${Force}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${LocalDeploymentInfoMajorVersion}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LocalDeploymentInfoPresenceFqdn}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LocalDeploymentInfoRegistrarFqdn}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MoveToCloud}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataCheckCpc}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataCheckEnterpriseVoice}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TeamDataMoveToTeam}, + + [Parameter(ParameterSetName='InternalExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserSipUri}, + + [Parameter(ParameterSetName='InternalExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LocalDeploymentInfoHostingProviderFqdn}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalValidateuser_Internal'; + InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalValidateuser_InternalExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsRehomeuser { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Post', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Post', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + ${UserId}, + + [Parameter(ParameterSetName='PostViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Body}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsRehomeuser_Post'; + PostViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsRehomeuser_PostViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Move-CsAvsTenantPartition { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPartitionMovementResponse])] +[CmdletBinding(DefaultParameterSetName='MoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Move', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPartitionMovementRequest] + # Payload for AVS Partition Movement Request + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='MoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Tenant ID + ${BasePartitionKey}, + + [Parameter(ParameterSetName='MoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # Batch Size + ${BatchSize}, + + [Parameter(ParameterSetName='MoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Container Name + ${ContainerName}, + + [Parameter(ParameterSetName='MoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # Number of Documents to be moved from Source to Target partition. + ${NumberOfDocuments}, + + [Parameter(ParameterSetName='MoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # Percentage of Documents to be moved from Source to Target partition. + ${PercentageOfPartition}, + + [Parameter(ParameterSetName='MoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Source Partition from where the documents are to be moved. + # Partition key is of format 'tenantId_suffix'. + ${SourcePartitionKey}, + + [Parameter(ParameterSetName='MoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Target Partition to where the documents are going to be moved. + # Partition key is of format 'tenantId_suffix'. + ${TargetPartitionKey}, + + [Parameter(ParameterSetName='MoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Workload + ${Workload}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Move = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsAvsTenantPartition_Move'; + MoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsAvsTenantPartition_MoveExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Move-CsInternalHelper { +[OutputType([System.Management.Automation.PSObject])] +[CmdletBinding(DefaultParameterSetName='Rehome', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ActionType}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UserSipUri}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CmdletVersion}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LocalDeploymentInfoMajorVersion}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LocalDeploymentInfoPresenceFqdn}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LocalDeploymentInfoRegistrarFqdn}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='Rehome')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${MoveToCloud}, + + [Parameter(ParameterSetName='Validate')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='MoveResourcedata')] + [Parameter(ParameterSetName='Rehome')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${TeamDataCheckCpc}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='MoveResourcedata')] + [Parameter(ParameterSetName='Rehome')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${TeamDataCheckEnterpriseVoice}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='MoveResourcedata')] + [Parameter(ParameterSetName='Rehome')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${TeamDataMoveToTeam}, + + [Parameter(ParameterSetName='Validate')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LocalDeploymentInfoHostingProviderFqdn}, + + [Parameter(ParameterSetName='MoveResourcedata', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ResourceData}, + + [Parameter(ParameterSetName='MoveResourcedata', Mandatory)] + [Parameter(ParameterSetName='BeginAndCompleteMove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MajorVersion} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Validate = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsInternalHelper'; + MoveResourcedata = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsInternalHelper'; + Rehome = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsInternalHelper'; + BeginAndCompleteMove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsInternalHelper'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsApplicationAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AppIds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsApplicationAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsBatchPolicyAssignmentOperation { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # An optional name for the batch assignment operation. + ${OperationName}, + + [Parameter(Mandatory)] + [Alias('User')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBatchAssignBodyAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchPolicyAssignmentOperation_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsBatchPolicyPackageAssignmentOperation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsBatchPostPackageResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PackageName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchPolicyPackageAssignmentOperation_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsCallingLineIdentity { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${BlockIncomingPstnCallerID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallingIDSubstitute}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableUserOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ResourceAccount}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ServiceNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallingLineIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsCloudCallDataConnection { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCloudCallDataConnection'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsCloudCallDataConnectionModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICloudCallDataConnection])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCloudCallDataConnectionModern_New'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsEdgeAllowAllKnownDomains { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeAllowAllKnownDomains'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsEdgeAllowAllKnownDomainsHelper { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeAllowAllKnownDomainsHelper'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsEdgeAllowList { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AllowedDomain}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeAllowList'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsEdgeAllowListHelper { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeAllowListHelper'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsEdgeDomainPattern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Domain}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeDomainPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsEdgeDomainPatternHelper { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeDomainPatternHelper'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsExternalAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableAcsFederationAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableFederationAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableOutsideAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnablePublicCloudAudioVideoAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTeamsConsumerAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTeamsConsumerInbound}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableXmppAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RestrictTeamsConsumerAccessToExternalUserProfiles}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsExternalAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsGroupPolicyAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The ID of a batch policy assignment operation. + ${GroupId}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The policy type for which group policy assignments will be returned. + ${PolicyType}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Rank}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsGroupPolicyAssignment_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsHybridTelephoneNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IHybridTelephoneNumber])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # An instance of hybrid telephone number. + ${TelephoneNumber}, + + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsHybridTelephoneNumber_New'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsHybridTelephoneNumber_NewViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsInboundBlockedNumberPattern { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsInboundBlockedNumberPattern'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsInboundBlockedNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsInboundExemptNumberPattern { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsInboundExemptNumberPattern'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsInboundExemptNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineApplicationInstance { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UserPrincipalName}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${ApplicationId}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DisplayName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineApplicationInstanceV2 { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceCreateRequest] + # The request to create an application instance. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Application ID. + ${ApplicationId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Display name. + ${DisplayName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # User principal name. + ${UserPrincipalName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceV2_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceV2_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineAudioConferencingRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OnlinePstnUsages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RouteType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineAudioConferencingRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineLisCivicAddress { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyName}, + + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${City}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CityAlias}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyTaxId}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Confidence}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Elin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HouseNumber}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HouseNumberSuffix}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsAzureMapValidationRequired}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Latitude}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Longitude}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PostalCode}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PostDirectional}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PreDirectional}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StateOrProvince}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreetName}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreetSuffix}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisCivicAddress'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineLisCivicAddressModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.INewCivicAddress] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${City}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CityAlias}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CompanyName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CompanyTaxId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Confidence}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Elin}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HouseNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HouseNumberSuffix}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Latitude}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Longitude}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PostDirectional}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PostalCode}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PreDirectional}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StateOrProvince}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StreetName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StreetSuffix}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisCivicAddressModern_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisCivicAddressModern_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineLisLocation { +[CmdletBinding(DefaultParameterSetName='ExistingCivicAddress', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Location}, + + [Parameter(ParameterSetName='ExistingCivicAddress', Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${CivicAddressId}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CityAlias}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Alias('Name')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyName}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyTaxId}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Confidence}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Elin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HouseNumberSuffix}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Latitude}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Longitude}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='CreateCivicAddress', Mandatory, ValueFromPipelineByPropertyName)] + [Alias('Country')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${City}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HouseNumber}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PostalCode}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PostDirectional}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PreDirectional}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Alias('State')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StateOrProvince}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreetName}, + + [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreetSuffix} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + ExistingCivicAddress = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisLocation'; + CreateCivicAddress = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisLocation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineLisLocationModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ILocationSchema])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.INewLocation] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${City}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CityAlias}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CivicAddressId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CompanyName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CompanyTaxId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Confidence}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountyOrDistrict}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Elin}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HouseNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HouseNumberSuffix}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsDefault}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Latitude}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Location}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Longitude}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PartnerId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PostDirectional}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PostalCode}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PreDirectional}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StateOrProvince}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StreetName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StreetSuffix}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TenantId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisLocationModern_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisLocationModern_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlinePSTNGateway { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${SipSignalingPort}, + + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BypassMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${FailoverResponseCodes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${FailoverTimeSeconds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ForwardCallHistory}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ForwardPai}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${GatewayLbrEnabledUserOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${GatewaySiteId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${GatewaySiteLbrEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${InboundPstnNumberTranslationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${InboundTeamsNumberTranslationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${MaxConcurrentSessions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${MediaBypass}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MediaRelayRoutingLocationOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OutboundPstnNumberTranslationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OutboundTeamsNumberTranslationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${PidfLoSupported}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ProxySbc}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${SendSipOptions}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Fqdn} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlinePSTNGateway'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlinePSTNGateway'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineTelephoneNumberOrder { +[OutputType([System.String], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletCreateSearchOrderRequest] + # CmdletCreateSearchOrderRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Telephone number country. + ${Country}, + + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Search order description. + ${Description}, + + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Search order name. + ${Name}, + + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Telephone number type. + ${NumberType}, + + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Number of telephone numbers to acquire. + ${Quantity}, + + [Parameter(ParameterSetName='CreateExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Telephone number area code for AreaCodeSelection search. + ${AreaCode}, + + [Parameter(ParameterSetName='CreateExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # CivicAddressId when RequiresCivicAddress is true. + ${CivicAddressId}, + + [Parameter(ParameterSetName='CreateExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Telephone number prefix for Prefix search. + ${NumberPrefix}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberOrder_Create'; + CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberOrder_CreateExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineVoicemailPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableEditingCallAnswerRulesSetting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTranscriptionProfanityMasking}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTranscriptionTranslation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.TimeSpan] + ${MaximumRecordingLength}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PrimarySystemPromptLanguage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SecondarySystemPromptLanguage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShareData}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineVoicemailPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineVoiceRoute { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeSourcePhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NumberPattern}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OnlinePstnGatewayList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OnlinePstnUsages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Priority}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineVoiceRoute'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineVoiceRoute'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineVoiceRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OnlinePstnUsages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RouteType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineVoiceRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsSdgDeviceTaggingRequest { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgDeviceTaggingResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Target Region where the device is located + ${TargetRegion}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgDeviceTaggingRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HardwareId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${IcmId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OceUserName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${SdhRegion}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TenantId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgDeviceTaggingRequest_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgDeviceTaggingRequest_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsSdgDeviceTransferRequest { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Device id of the device that is to be transferred + ${SdhDeviceId}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Source Region from where the device is to be tranferred + ${SourceRegion}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Target Region where the device is to be tranferred + ${TargetRegion}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgDeviceTransferRequest_New'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsAudioConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTollFreeDialin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${MeetingInvitePhoneNumbers}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsAudioConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsCallHoldPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AudioFileId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsCallHoldPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallForwardingToPhone}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallForwardingToUser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallGroups}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowCallRedirect}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCloudRecordingForCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowDelegation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSIPDevicesCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTranscriptionForCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowVoicemail}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowWebPSTNCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AutoAnswerEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BusyOnBusyEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${CallRecordingExpirationDays}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveCaptionsEnabledTypeForCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MusicOnHoldEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PopoutAppPathForIncomingPstnCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PopoutForIncomingPstnCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${PreventTollBypass}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SpamFilteringEnabledType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsCallParkPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallPark}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${ParkTimeoutSeconds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${PickupRangeEnd}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${PickupRangeStart}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsCallParkPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsChannelsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowChannelSharingToExternalUser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOrgWideTeamCreation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateChannelCreation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateTeamDiscovery}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSharedChannelCreation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserToParticipateInExternalSharedChannel}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsChannelsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsComplianceRecordingApplication { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ComplianceRecordingPairedApplications}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ConcurrentInvitationCount}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Priority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RequiredBeforeCallEstablishment}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RequiredBeforeMeetingJoin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RequiredDuringCall}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RequiredDuringMeeting}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Parent} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingApplication'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingApplication'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsComplianceRecordingPairedApplication { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingPairedApplication'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsComplianceRecordingPairedApplicationHelper { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingPairedApplicationHelper'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsComplianceRecordingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ComplianceRecordingApplications}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisableComplianceRecordingAudioNotificationForCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${WarnUserOnRemoval}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsCortanaPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCortanaAmbientListening}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCortanaInContextSuggestions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCortanaVoiceInvocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CortanaVoiceInvocationMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsCortanaPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsEmergencyCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EnhancedEmergencyServiceDisclaimer}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ExternalLocationLookupMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NotificationDialOutNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NotificationGroup}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${NotificationMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsEmergencyCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsEmergencyCallRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowEnhancedEmergencyServices}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${EmergencyNumbers}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsEmergencyCallRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsEmergencyNumber { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EmergencyDialMask}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EmergencyDialString}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OnlinePSTNUsage}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsEmergencyNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsEmergencyNumberHelper { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsEmergencyNumberHelper'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsEnhancedEncryptionPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallingEndtoEndEncryptionEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MeetingEndToEndEncryption}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsEnhancedEncryptionPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsEventsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowWebinars}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EventAccessType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ForceStreamingAttendeeMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsEventsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsFeedbackPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowEmailCollection}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowLogCollection}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowScreenshotCollection}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReceiveSurveysMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UserInitiatedMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsFeedbackPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsFilesPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NativeFileEntryPoints}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SPChannelFilesTab}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsFilesPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsIPPhonePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowBetterTogether}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowHomeScreen}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowHotDesking}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${HotDeskingIdleTimeoutInMinutes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SearchOnCommonAreaPhoneMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SignInMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsIPPhonePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsMeetingBroadcastPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowBroadcastScheduling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowBroadcastTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BroadcastAttendeeVisibilityMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BroadcastRecordingMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsMeetingBroadcastPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsMeetingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAnnotations}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAnonymousUsersToDialOut}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAnonymousUsersToJoinMeeting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAnonymousUsersToStartMeeting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAvatarsInGallery}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowBreakoutRooms}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCarbonSummary}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowCartCaptionsScheduling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowChannelMeetingScheduling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCloudRecording}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowDocumentCollaboration}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowedStreamingMediaInput}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowEngagementReport}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowExternalParticipantGiveRequestControl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowImmersiveView}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowIPAudio}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowIPVideo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetingCoach}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetingReactions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetingRegistration}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetNow}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowNDIStreaming}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowNetworkConfigurationSettingsLookup}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOrganizersToOverrideLobbySettings}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOutlookAddIn}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowParticipantGiveRequestControl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPowerPointSharing}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateMeetingScheduling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateMeetNow}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPSTNUsersToBypassLobby}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowRecordingStorageOutsideRegion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowScreenContentDigitization}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSharedNotes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowTasksFromTranscript}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowTrackingInReport}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowUserToJoinExternalMeeting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowWatermarkForCameraVideo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowWatermarkForScreenSharing}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowWhiteboard}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AutoAdmittedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BlockedAnonymousJoinClientTypes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChannelRecordingDownload}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DesignatedPresenterRoleMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EnrollUserOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${InfoShownInReportMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPAudioMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPVideoMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveCaptionsEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveInterpretationEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveStreamingMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${MediaBitRateKb}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MeetingChatEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MeetingInviteLanguages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${NewMeetingRecordingExpirationDays}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PreferredMeetingProviderForIslandsMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${QnAEngagementMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RecordingStorageMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RoomAttributeUserOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RoomPeopleNameUserOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ScreenSharingMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SpeakerAttributionMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreamingAttendeeMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TeamsCameraFarEndPTZMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${VideoFiltersMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${WhoCanRegister}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsMeetingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsMessagingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCommunicationComplianceEndUserReporting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowFluidCollaborate}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowFullChatPermissionUserToDeleteAnyMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowGiphy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowGiphyDisplay}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowImmersiveReader}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMemes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOwnerDeleteMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPasteInternetImage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPriorityMessages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowRemoveUser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSmartCompose}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSmartReply}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowStickers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUrlPreviews}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserChat}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserDeleteChat}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserDeleteMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserEditMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserTranslation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowVideoMessages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AudioMessageEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChannelsInChatListEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChatPermissionRole}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${GiphyRatingType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReadReceiptsEnabledType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsMessagingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsMobilityPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPAudioMobileMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPVideoMobileMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MobileDialerPreference}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsMobilityPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsNetworkRoamingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowIPVideo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${MediaBitRateKb}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsNetworkRoamingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsRoomVideoTeleConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AreaCode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PlaceExternalCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PlaceInternalCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReceiveExternalCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReceiveInternalCalls}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsRoomVideoTeleConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsShiftsConnectionBatchTeamMap { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamConnectsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Create', Mandatory)] + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectAadWfmTeamsRequest] + # Connect Aad Wfm Teams Request + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='CreateExpanded')] + [Parameter(ParameterSetName='CreateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMapping[]] + # The team mappings. + # To construct, see NOTES section for TEAMMAPPING properties and create a hash table. + ${TeamMapping}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionBatchTeamMap_Create'; + CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionBatchTeamMap_CreateExpanded'; + CreateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionBatchTeamMap_CreateViaIdentity'; + CreateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionBatchTeamMap_CreateViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsShiftsConnectionInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceRequest] + # Connector Instance Request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The WFM connection id. + ${ConnectionId}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # The list of connector admin email addresses. + ${ConnectorAdminEmail}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The designated actor id that App acts as for Shifts Graph Api calls. + ${DesignatedActorId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector instance name. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The state of the WFM Connector Instance. + ${State}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # The sync frequency in minutes. + ${SyncFrequencyInMin}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OfferShiftRequest entity. + ${SyncScenarioOfferShiftRequest}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OpenShift entity. + ${SyncScenarioOpenShift}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OpenShiftRequest entity. + ${SyncScenarioOpenShiftRequest}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The Shift entity. + ${SyncScenarioShift}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The SwapRequest entity. + ${SyncScenarioSwapRequest}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeCard entity. + ${SyncScenarioTimeCard}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeOff entity. + ${SyncScenarioTimeOff}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeOffRequest entity. + ${SyncScenarioTimeOffRequest}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The UserShiftPreferences entity. + ${SyncScenarioUserShiftPreference}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionInstance_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionInstance_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsShiftsConnection { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # Bearer: token + ${Authorization}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionRequest] + # WFM Connection Base Request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector id. + ${ConnectorId}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionRequestConnectorSpecificSettings] + # The connector settings. + ${ConnectorSpecificSettings}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object name. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The state of the WFM connection. + ${State}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnection_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnection_NewExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsShiftsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${AccessGracePeriodMinutes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AccessType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableScheduleOwnerPermissions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableShiftPresence}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftNoticeFrequency}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftNoticeMessageCustom}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftNoticeMessageType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsSurvivableBranchAppliance { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Site}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Fqdn} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsSurvivableBranchAppliance'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsSurvivableBranchAppliance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsSurvivableBranchAppliancePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${BranchApplianceFqdns}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsSurvivableBranchAppliancePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsTranslationRule { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Translation}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsTranslationRule'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsTranslationRule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsUnassignedNumberTreatment { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Target}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${TreatmentPriority}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TreatmentId} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsUnassignedNumberTreatment'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsUnassignedNumberTreatment'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsUpdateManagementPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowManagedUpdates}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPreview}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowPublicPreview}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${UpdateDayOfWeek}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UpdateTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + ${UpdateTimeOfDay}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsUpdateManagementPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsVdiPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisableAudioVideoInCallsAndMeetings}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisableCallsAndMeetings}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsVdiPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsVoiceApplicationsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantAfterHoursGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantAfterHoursRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantBusinessHoursChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantBusinessHoursGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantBusinessHoursRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantHolidayGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantHolidayRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantHolidaysChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantLanguageChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantTimeZoneChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueAgentOptChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueConferenceModeChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueLanguageChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueMembershipChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueMusicOnHoldChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueNoAgentsRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueOptOutChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueOverflowRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueOverflowSharedVoicemailGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueuePresenceBasedRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueRoutingMethodChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueTimeoutRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueTimeoutSharedVoicemailGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueWelcomeGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallQueueAgentMonitorMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallQueueAgentMonitorNotificationMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsVoiceApplicationsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamsWorkLoadPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallingPinned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeeting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetingPinned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMessaging}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMessagingPinned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsWorkLoadPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTenantDialPlan { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${NormalizationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SimpleName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantDialPlan'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTenantNetworkRegion { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BypassID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CentralSite}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkRegionID} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkRegion'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkRegion'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTenantNetworkSite { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EmergencyCallingPolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EmergencyCallRoutingPolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableLocationBasedRouting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LocationPolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkRegionID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkRoamingPolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SiteAddress}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkSiteID} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkSite'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkSite'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTenantNetworkSubnet { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${MaskBits}, + + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkSiteID}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SubnetID} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkSubnet'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkSubnet'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTenantTrustedIPAddress { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${MaskBits}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPAddress} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantTrustedIPAddress'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantTrustedIPAddress'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsVideoInteropServiceProvider { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantKey}, + + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AadApplicationIds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAppGuestJoinsAsAuthenticated}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${InstructionUri}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVideoInteropServiceProvider'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVideoInteropServiceProvider'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsVoiceNormalizationRule { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${InMemory}, + + [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsInternalExtension}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Priority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Translation}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Parent} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVoiceNormalizationRule'; + ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVoiceNormalizationRule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsVoiceNormalizationRuleHelper { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVoiceNormalizationRuleHelper'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Register-CsOnlineDialInConferencingServiceNumber { +[CmdletBinding(DefaultParameterSetName='UniqueNumberParams', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='UniqueNumberParams', Position=0, Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantDomain}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='InstanceParams', Position=0, Mandatory, ValueFromPipeline)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Instance} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UniqueNumberParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOnlineDialInConferencingServiceNumber'; + InstanceParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOnlineDialInConferencingServiceNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsApplicationAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsApplicationAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsCallingLineIdentity { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallingLineIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The name of a policy package + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCustomPolicyPackage_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCustomPolicyPackage_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsExternalAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsExternalAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsGroupPolicyAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The ID of the group from which the assignment will be removed. + ${GroupId}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The policy type for which group policy assignments will be returned. + ${PolicyType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsGroupPolicyAssignment_Remove'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsHybridTelephoneNumber { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # hybrid telephone number. + ${TelephoneNumber}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsHybridTelephoneNumber_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsHybridTelephoneNumber_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsInboundBlockedNumberPattern { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsInboundBlockedNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsInboundExemptNumberPattern { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsInboundExemptNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineAudioConferencingRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioConferencingRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineDialInConferencingTenantSettings { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineDialInConferencingTenantSettings'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisCivicAddress { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${CivicAddressId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisCivicAddress'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisCivicAddressModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${CivicAddressId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisCivicAddressModern_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisCivicAddressModern_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisLocation { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisLocation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisLocationModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${LocationId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisLocationModern_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisLocationModern_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisPort { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChassisID}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PortID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisPort'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisPortModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChassisId}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PortId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisPortModern_Remove'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisSubnet { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Subnet}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSubnet'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisSubnetModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Subnet}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSubnetModern_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSubnetModern_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisSwitch { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChassisID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSwitch'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisSwitchModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ChassisId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSwitchModern_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSwitchModern_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisWirelessAccessPoint { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BSSID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisWirelessAccessPoint'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineLisWirelessAccessPointModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Bssid}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisWirelessAccessPointModern_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisWirelessAccessPointModern_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlinePSTNGateway { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlinePSTNGateway'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineTelephoneNumber { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${TelephoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineVoicemailPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineVoicemailPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineVoiceRoute { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineVoiceRoute'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineVoiceRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineVoiceRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsPhoneNumberTag { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Tag}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberTag_Remove'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsAppPermissionPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAppPermissionPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsAppSetupPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAppSetupPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsAudioConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsAudioConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsCallHoldPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallHoldPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsCallParkPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCallParkPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsChannelsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsChannelsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsComplianceRecordingApplication { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsComplianceRecordingApplication'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsComplianceRecordingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsComplianceRecordingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsCortanaPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsCortanaPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsEmergencyCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEmergencyCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsEmergencyCallRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEmergencyCallRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsEnhancedEncryptionPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEnhancedEncryptionPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsEventsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsEventsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsFeedbackPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsFeedbackPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsFilesPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsFilesPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsIPPhonePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsIPPhonePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsMeetingBroadcastPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMeetingBroadcastPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsMeetingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMeetingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsMessagingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMessagingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsMobilityPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsMobilityPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsNetworkRoamingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsNetworkRoamingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsNotificationAndFeedsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsNotificationAndFeedsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsRoomVideoTeleConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsRoomVideoTeleConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsShiftsConnectionInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnectionInstance_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnectionInstance_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsShiftsConnectionTeamMap { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Team Id + ${TeamId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnectionTeamMap_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnectionTeamMap_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsShiftsConnection { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connection Id. + ${ConnectionId}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnection_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnection_RemoveViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsShiftsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsShiftsScheduleRecord { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IClearScheduleRequest] + # The clear schedule request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether [clear scheduling group]. + ${ClearSchedulingGroup}, + + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the entity types. + ${EntityType}, + + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team identifier. + ${TeamId}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DateRangeEndDate}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DateRangeStartDate}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DesignatedActorId}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets the time zone. + ${TimeZone}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsScheduleRecord_Remove'; + RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsScheduleRecord_RemoveExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsSurvivableBranchAppliance { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsSurvivableBranchAppliance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsSurvivableBranchAppliancePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsSurvivableBranchAppliancePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsTargetingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsTargetingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsTranslationRule { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsTranslationRule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsUnassignedNumberTreatment { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsUnassignedNumberTreatment'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsUpdateManagementPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsUpdateManagementPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsVdiPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsVdiPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsVoiceApplicationsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsVoiceApplicationsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamsWorkLoadPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsWorkLoadPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTeamTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # A composite URI of a template. + ${OdataId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamTemplate_Delete'; + DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamTemplate_DeleteViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTenantDialPlan { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTenantDialPlan'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTenantNetworkRegion { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTenantNetworkRegion'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTenantNetworkSite { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTenantNetworkSite'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTenantNetworkSubnet { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTenantNetworkSubnet'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTenantTrustedIPAddress { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTenantTrustedIPAddress'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsUserLicenseGracePeriod { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserDelicensingAccelerationPatch] + # UserDelicensingAccelerationPatch + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Action to take + ${Action}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [Parameter(ParameterSetName='RemoveViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # List of capabilities + ${Capability}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserLicenseGracePeriod_Remove'; + RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserLicenseGracePeriod_RemoveExpanded'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserLicenseGracePeriod_RemoveViaIdentity'; + RemoveViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserLicenseGracePeriod_RemoveViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsVideoInteropServiceProvider { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsVideoInteropServiceProvider'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Search-CsApplicationInstanceV2ApplicationInstanceAsync { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceSearchResults])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # keyword. + ${Keyword}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # pageSize. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # skipToken. + ${SkipToken}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsApplicationInstanceV2ApplicationInstanceAsync_Search'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsApplicationAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AppIds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsApplicationAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsApplicationMeetingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AllowRemoveParticipantAppIds}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsApplicationMeetingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsCallingLineIdentity { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${BlockIncomingPstnCallerID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallingIDSubstitute}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableUserOverride}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ResourceAccount}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ServiceNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallingLineIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsExternalAccessPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableAcsFederationAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableFederationAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableOutsideAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnablePublicCloudAudioVideoAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTeamsConsumerAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTeamsConsumerInbound}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableXmppAccess}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RestrictTeamsConsumerAccessToExternalUserProfiles}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsExternalAccessPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsGroupPolicyAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The ID of a group whose policy assignments will be returned. + ${GroupId}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The policy type for which group policy assignments will be returned. + ${PolicyType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Rank}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsGroupPolicyAssignment_SetExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsInboundBlockedNumberPattern { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsInboundBlockedNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsInboundExemptNumberPattern { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsInboundExemptNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOCEContext { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${AppId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantDomain}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${TenantId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+ConfigApiEnvironment] + ${Environment}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # This can be used to provide optional headers. + ${Headers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsSystemTenant} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOCEContext'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOdcUserDefaultNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUsersDefaultNumberUpdateRequest] + # Update all users default service number. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets AreaOrState filter for user query. + ${AreaOrState}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge id to use for service number change. + ${BridgeId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge name to use for service number change. + ${BridgeName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets CapitalOrMajorCity filter for user query. + ${CapitalOrMajorCity}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets CountryOrRegion filter for user query. + ${CountryOrRegion}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge FromNumber to be updated. + ${FromNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets number inventory type Toll or TollFreee. + ${NumberType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether or not users who are modified by this operation should have their existing conferences rescheduled. + ${RescheduleMeeting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge ToNumber to be set as default number. + ${ToNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUserDefaultNumber_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUserDefaultNumber_SetExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineApplicationInstance { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${ApplicationId}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DisplayName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OnpremPhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${AcsResourceId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineApplicationInstanceV2 { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Application instance identity. + # Support GUID or User principal name. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceUpdateRequest] + # The request to update an application instance. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # ACS resource ID. + ${AcsResourceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Application ID. + ${ApplicationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Display name. + ${DisplayName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Onprem phone number. + ${OnpremPhoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstanceV2_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstanceV2_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstanceV2_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstanceV2_SetViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineAudioConferencingRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OnlinePstnUsages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RouteType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineAudioConferencingRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineDialInConferencingServiceNumber { +[CmdletBinding(DefaultParameterSetName='UniqueNumberParams', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UniqueNumberParams', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BotType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PrimaryLanguage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RestoreDefaultLanguages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${SecondaryLanguages}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='InstanceParams', Position=0, Mandatory, ValueFromPipeline)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Instance} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UniqueNumberParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineDialInConferencingServiceNumber'; + InstanceParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineDialInConferencingServiceNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineDialInConferencingTenantSettings { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AllowedDialOutExternalDomains}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowFederatedUsersToDialOutToSelf}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowFederatedUsersToDialOutToThirdParty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPSTNOnlyMeetingsByDefault}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AutomaticallyMigrateUserMeetings}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AutomaticallyReplaceAcpProvider}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AutomaticallySendEmailsToUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableDialOutJoinConfirmation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableEntryExitNotifications}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableNameRecording}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EntryExitAnnouncementsType}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IncludeTollFreeNumberInMeetingInvites}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MaskPstnNumbersType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${MigrateServiceNumbersOnCrossForestMove}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${PinLength}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SendEmailFromAddress}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SendEmailFromDisplayName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${SendEmailFromOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${UseUniqueConferenceIds}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineDialInConferencingTenantSettings'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineDialinConferencingUserDefaultNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUsersDefaultNumberUpdateRequest] + # Update all users default service number. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets AreaOrState filter for user query. + ${AreaOrState}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge id to use for service number change. + ${BridgeId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge name to use for service number change. + ${BridgeName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets CapitalOrMajorCity filter for user query. + ${CapitalOrMajorCity}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets CountryOrRegion filter for user query. + ${CountryOrRegion}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge FromNumber to be updated. + ${FromNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets number inventory type Toll or TollFreee. + ${NumberType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether or not users who are modified by this operation should have their existing conferences rescheduled. + ${RescheduleMeetings}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets bridge ToNumber to be set as default number. + ${ToNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineDialinConferencingUserDefaultNumber_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineDialinConferencingUserDefaultNumber_SetExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineEnhancedEmergencyServiceDisclaimer { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ForceAccept}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Version}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisCivicAddress { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${CivicAddressId}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${City}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CityAlias}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyName}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyTaxId}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Confidence}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Elin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HouseNumber}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HouseNumberSuffix}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsAzureMapValidationRequired}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Latitude}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Longitude}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PostalCode}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PostDirectional}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PreDirectional}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StateOrProvince}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreetName}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreetSuffix}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisCivicAddress'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisCivicAddressModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISetCivicAddress] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CivicAddressId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${City}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CityAlias}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CompanyName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CompanyTaxId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Confidence}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Elin}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HouseNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HouseNumberSuffix}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Latitude}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Longitude}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PostDirectional}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PostalCode}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PreDirectional}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StateOrProvince}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StreetName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StreetSuffix}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisCivicAddressModern_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisCivicAddressModern_SetExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisLocation { +[CmdletBinding(DefaultParameterSetName='UseCivicAddressId', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UseCivicAddressId', Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${CivicAddressId}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${City}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CityAlias}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyName}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CompanyTaxId}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Confidence}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Elin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HouseNumber}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HouseNumberSuffix}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsAzureMapValidationRequired}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Latitude}, + + [Parameter(ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Longitude}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PostalCode}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PostDirectional}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PreDirectional}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StateOrProvince}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreetName}, + + [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreetSuffix}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='UseLocationId', Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${LocationId}, + + [Parameter(ParameterSetName='UseLocationId', ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Location} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UseCivicAddressId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisLocation'; + UseLocationId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisLocation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisLocationModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ILocationSchema])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISetLocation] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${City}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CityOrTownAlias}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CivicAddressId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CompanyName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CompanyTaxId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Confidence}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountyOrDistrict}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Elin}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HouseNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${HouseNumberSuffix}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsDefault}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Latitude}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Location}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LocationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Longitude}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfTelephoneNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfVoiceUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PartnerId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PostDirectional}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PostalCode}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PreDirectional}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StateOrProvince}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StreetName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StreetSuffix}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TenantId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ValidationStatus}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisLocationModern_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisLocationModern_SetExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisPort { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChassisID}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${LocationId}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PortID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisPort'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisPortModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPortRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ChassisId}, + + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LocationId}, + + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PortId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisPortModern_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisPortModern_SetExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisSubnet { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${LocationId}, + + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Subnet}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSubnet'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisSubnetModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Subnet}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSubnetModern_Set'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSubnetModern_SetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisSwitch { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChassisID}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSwitch'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisSwitchModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ChassisId}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSwitchModern_Set'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSwitchModern_SetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisWirelessAccessPoint { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BSSID}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsDebug}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NCSApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetStore}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisWirelessAccessPoint'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineLisWirelessAccessPointModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Bssid}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisWirelessAccessPointModern_Set'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisWirelessAccessPointModern_SetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlinePSTNGateway { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BypassMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${FailoverResponseCodes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${FailoverTimeSeconds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ForwardCallHistory}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ForwardPai}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${GatewayLbrEnabledUserOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${GatewaySiteId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${GatewaySiteLbrEnabled}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${InboundPstnNumberTranslationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${InboundTeamsNumberTranslationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${MaxConcurrentSessions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${MediaBypass}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MediaRelayRoutingLocationOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OutboundPstnNumberTranslationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OutboundTeamsNumberTranslationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${PidfLoSupported}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ProxySbc}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${SendSipOptions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${SipSignalingPort}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlinePSTNGateway'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlinePstnUsage { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Usage}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlinePstnUsage'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoiceApplicationInstance { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoiceApplicationInstanceV2 { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IOnlineNumberAssignmentRequest] + # The request to update an application instance. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Telephone number. + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstanceV2_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstanceV2_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstanceV2_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstanceV2_SetViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoicemailPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableEditingCallAnswerRulesSetting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTranscriptionProfanityMasking}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTranscriptionTranslation}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.TimeSpan] + ${MaximumRecordingLength}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PrimarySystemPromptLanguage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SecondarySystemPromptLanguage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShareData}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoicemailPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoiceRoute { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeSourcePhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NumberPattern}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OnlinePstnGatewayList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OnlinePstnUsages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Priority}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceRoute'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoiceRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${OnlinePstnUsages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RouteType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoiceUser { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${LocationID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceUser'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsPhoneNumberPolicyAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PolicyType}, + + [Parameter(Mandatory)] + [Alias('Identity')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberPolicyAssignment_Set'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsPhoneNumberTag { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Tag}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberTag_Set'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsPrivacyConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AutoInitiateContacts}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisplayPublishedPhotoDefault}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnablePrivacyMode}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${PublishLocationDataDefault}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPrivacyConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsRegionContext { +[CmdletBinding(DefaultParameterSetName='Region', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+ConfigApiRegion] + ${Region} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Region = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsRegionContext'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsSessionState { +[OutputType([System.Management.Automation.Runspaces.PSSession])] +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AddFlightedCommand}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RemoveFlightedCommand}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${Mocks}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AddCmdletConfigOverrideForAutorest}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RemoveCmdletConfigOverrideForAutorest}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.Remoting.PSSessionOption] + ${SessionOption} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSessionState'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsAcsFederationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AllowedAcsResources}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableAcsUsers}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsAcsFederationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsAudioConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTollFreeDialin}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${MeetingInvitePhoneNumbers}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsAudioConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsCallHoldPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AudioFileId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsCallHoldPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallForwardingToPhone}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallForwardingToUser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallGroups}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowCallRedirect}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCloudRecordingForCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowDelegation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSIPDevicesCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTranscriptionForCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowVoicemail}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowWebPSTNCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AutoAnswerEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BusyOnBusyEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${CallRecordingExpirationDays}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveCaptionsEnabledTypeForCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MusicOnHoldEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PopoutAppPathForIncomingPstnCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PopoutForIncomingPstnCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${PreventTollBypass}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SpamFilteringEnabledType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsCallParkPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallPark}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${ParkTimeoutSeconds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${PickupRangeEnd}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${PickupRangeStart}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsCallParkPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsChannelsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowChannelSharingToExternalUser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOrgWideTeamCreation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateChannelCreation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateTeamDiscovery}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSharedChannelCreation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserToParticipateInExternalSharedChannel}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsChannelsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsClientConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowBox}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowDropBox}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowEgnyte}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowEmailIntoChannel}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowGoogleDrive}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowGuestUser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOrganizationTab}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowResourceAccountSendMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowRoleBasedChatPermissions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowScopedPeopleSearchandAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowShareFile}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSkypeBusinessInterop}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ContentPin}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ResourceAccountContentAccess}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RestrictedSenderList}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsClientConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsComplianceRecordingApplication { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ComplianceRecordingPairedApplications}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ConcurrentInvitationCount}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Priority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RequiredBeforeCallEstablishment}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RequiredBeforeMeetingJoin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RequiredDuringCall}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RequiredDuringMeeting}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsComplianceRecordingApplication'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsComplianceRecordingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ComplianceRecordingApplications}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisableComplianceRecordingAudioNotificationForCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${WarnUserOnRemoval}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsComplianceRecordingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsCortanaPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCortanaAmbientListening}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCortanaInContextSuggestions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCortanaVoiceInvocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CortanaVoiceInvocationMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsCortanaPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsEducationAssignmentsAppPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MakeCodeEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ParentDigestEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TurnItInApiKey}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TurnItInApiUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TurnItInEnabledType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsEducationAssignmentsAppPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsEducationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ParentGuardianPreferredContactMethod}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsEducationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsEmergencyCallingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EnhancedEmergencyServiceDisclaimer}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ExternalLocationLookupMode}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NotificationDialOutNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NotificationGroup}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${NotificationMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsEmergencyCallingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsEmergencyCallRoutingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowEnhancedEmergencyServices}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${EmergencyNumbers}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsEmergencyCallRoutingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsEnhancedEncryptionPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallingEndtoEndEncryptionEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MeetingEndToEndEncryption}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsEnhancedEncryptionPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsEventsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowWebinars}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EventAccessType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ForceStreamingAttendeeMode}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsEventsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsFeedbackPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowEmailCollection}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowLogCollection}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowScreenshotCollection}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReceiveSurveysMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UserInitiatedMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsFeedbackPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsFilesPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NativeFileEntryPoints}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SPChannelFilesTab}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsFilesPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsGuestCallingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateCalling}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsGuestCallingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsGuestMeetingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowIPVideo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetNow}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTranscription}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveCaptionsEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ScreenSharingMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsGuestMeetingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsGuestMessagingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowGiphy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowImmersiveReader}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMemes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowStickers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserChat}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserDeleteChat}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserDeleteMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserEditMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${GiphyRatingType}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsGuestMessagingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsIPPhonePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowBetterTogether}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowHomeScreen}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowHotDesking}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${HotDeskingIdleTimeoutInMinutes}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SearchOnCommonAreaPhoneMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SignInMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsIPPhonePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsMeetingBroadcastConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSdnProviderForBroadcastMeeting}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SdnApiTemplateUrl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SdnApiToken}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SdnLicenseId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SdnProviderName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SdnRuntimeConfiguration}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SupportURL}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsMeetingBroadcastConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsMeetingBroadcastPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowBroadcastScheduling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowBroadcastTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BroadcastAttendeeVisibilityMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BroadcastRecordingMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsMeetingBroadcastPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsMeetingConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ClientAppSharingPort}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ClientAppSharingPortRange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ClientAudioPort}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ClientAudioPortRange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ClientMediaPortRangeEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ClientVideoPort}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${ClientVideoPortRange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomFooterText}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisableAnonymousJoin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisableAppInteractionForAnonymousUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableQoS}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${HelpURL}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LegalURL}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LogoURL}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsMeetingConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsMeetingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAnnotations}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAnonymousUsersToDialOut}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAnonymousUsersToJoinMeeting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAnonymousUsersToStartMeeting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAvatarsInGallery}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowBreakoutRooms}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCarbonSummary}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowCartCaptionsScheduling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowChannelMeetingScheduling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCloudRecording}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowDocumentCollaboration}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowedStreamingMediaInput}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowEngagementReport}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowExternalParticipantGiveRequestControl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowImmersiveView}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowIPAudio}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowIPVideo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetingCoach}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetingReactions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetingRegistration}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetNow}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowNDIStreaming}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowNetworkConfigurationSettingsLookup}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOrganizersToOverrideLobbySettings}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOutlookAddIn}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowParticipantGiveRequestControl}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPowerPointSharing}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateMeetingScheduling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPrivateMeetNow}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPSTNUsersToBypassLobby}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowRecordingStorageOutsideRegion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowScreenContentDigitization}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSharedNotes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowTasksFromTranscript}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowTrackingInReport}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowUserToJoinExternalMeeting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowWatermarkForCameraVideo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowWatermarkForScreenSharing}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowWhiteboard}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AutoAdmittedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BlockedAnonymousJoinClientTypes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChannelRecordingDownload}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DesignatedPresenterRoleMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EnrollUserOverride}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${InfoShownInReportMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPAudioMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPVideoMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveCaptionsEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveInterpretationEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LiveStreamingMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.UInt32] + ${MediaBitRateKb}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MeetingChatEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MeetingInviteLanguages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${NewMeetingRecordingExpirationDays}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PreferredMeetingProviderForIslandsMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${QnAEngagementMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RecordingStorageMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RoomAttributeUserOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RoomPeopleNameUserOverride}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ScreenSharingMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SpeakerAttributionMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StreamingAttendeeMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TeamsCameraFarEndPTZMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${VideoFiltersMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${WhoCanRegister}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsMeetingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsMessagingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCommunicationComplianceEndUserReporting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowFluidCollaborate}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowFullChatPermissionUserToDeleteAnyMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowGiphy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowGiphyDisplay}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowImmersiveReader}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMemes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOwnerDeleteMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPasteInternetImage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPriorityMessages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowRemoveUser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSmartCompose}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowSmartReply}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowStickers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUrlPreviews}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserChat}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserDeleteChat}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserDeleteMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserEditMessage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowUserTranslation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowVideoMessages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AudioMessageEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChannelsInChatListEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChatPermissionRole}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${GiphyRatingType}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReadReceiptsEnabledType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsMessagingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsMigrationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableLegacyClientInterop}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsMigrationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsMobilityPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPAudioMobileMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${IPVideoMobileMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MobileDialerPreference}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsMobilityPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsNetworkRoamingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowIPVideo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${MediaBitRateKb}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsNetworkRoamingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsNotificationAndFeedsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SuggestedFeedsEnabledType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TrendingFeedsEnabledType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsNotificationAndFeedsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsRoomVideoTeleConferencingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AreaCode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PlaceExternalCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PlaceInternalCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReceiveExternalCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReceiveInternalCalls}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsRoomVideoTeleConferencingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsShiftsAppPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTimeClockLocationDetection}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsAppPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsShiftsConnectionInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # ETag value + ${IfMatch}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateConnectorInstanceRequest] + # Update Connector Instance Request. + # This request is used for performing a complete update (PUT) on connector instance. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The WFM connection id. + ${ConnectionId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # The list of connector admin email addresses. + ${ConnectorAdminEmail}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The designated actor id that App acts as for Shifts Graph Api calls. + ${DesignatedActorId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector instance ETag. + ${Etag}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector instance name. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The state of the WFM Connector Instance. + ${State}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # The sync frequency in minutes. + ${SyncFrequencyInMin}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OfferShiftRequest entity. + ${SyncScenarioOfferShiftRequest}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OpenShift entity. + ${SyncScenarioOpenShift}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OpenShiftRequest entity. + ${SyncScenarioOpenShiftRequest}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The Shift entity. + ${SyncScenarioShift}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The SwapRequest entity. + ${SyncScenarioSwapRequest}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeCard entity. + ${SyncScenarioTimeCard}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeOff entity. + ${SyncScenarioTimeOff}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeOffRequest entity. + ${SyncScenarioTimeOffRequest}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The UserShiftPreferences entity. + ${SyncScenarioUserShiftPreference}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnectionInstance_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnectionInstance_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnectionInstance_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnectionInstance_SetViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsShiftsConnection { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connection Id. + ${ConnectionId}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # Bearer: token + ${Authorization}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # ETag value + ${IfMatch}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionRequest] + # Update WFM Connection Request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector id. + ${ConnectorId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionRequestConnectorSpecificSettings] + # The connector settings. + ${ConnectorSpecificSettings}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The ETag of WFM connection. + ${Etag}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object name. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The state of the WFM connection. + ${State}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnection_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnection_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnection_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnection_SetViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsShiftsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${AccessGracePeriodMinutes}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AccessType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableScheduleOwnerPermissions}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableShiftPresence}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftNoticeFrequency}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftNoticeMessageCustom}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftNoticeMessageType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsSurvivableBranchAppliance { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Site}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSurvivableBranchAppliance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsSurvivableBranchAppliancePolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${BranchApplianceFqdns}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSurvivableBranchAppliancePolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsTargetingPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomTagsMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ManageTagsPermissionMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftBackedTagsMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SuggestedPresetTags}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TeamOwnersEditWhoCanManageTagsMode}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsTargetingPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsTranslationRule { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Translation}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsTranslationRule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsUnassignedNumberTreatment { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Pattern}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Target}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${TreatmentPriority}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsUnassignedNumberTreatment'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsUpdateManagementPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowManagedUpdates}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowPreview}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AllowPublicPreview}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${UpdateDayOfWeek}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UpdateTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + ${UpdateTimeOfDay}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsUpdateManagementPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsUpgradeConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DownloadTeams}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SfBMeetingJoinUx}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsUpgradeConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsVdiPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisableAudioVideoInCallsAndMeetings}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${DisableCallsAndMeetings}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsVdiPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsVoiceApplicationsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantAfterHoursGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantAfterHoursRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantBusinessHoursChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantBusinessHoursGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantBusinessHoursRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantHolidayGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantHolidayRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantHolidaysChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantLanguageChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAutoAttendantTimeZoneChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueAgentOptChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueConferenceModeChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueLanguageChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueMembershipChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueMusicOnHoldChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueNoAgentsRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueOptOutChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueOverflowRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueOverflowSharedVoicemailGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueuePresenceBasedRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueRoutingMethodChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueTimeoutRoutingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueTimeoutSharedVoicemailGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallQueueWelcomeGreetingChange}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallQueueAgentMonitorMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallQueueAgentMonitorNotificationMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsVoiceApplicationsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsWorkLoadPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCalling}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowCallingPinned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeeting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMeetingPinned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMessaging}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowMessagingPinned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsWorkLoadPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantBlockedCallingNumbers { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${InboundBlockedNumberPatterns}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${InboundExemptNumberPatterns}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantBlockedCallingNumbers'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantDialPlan { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${NormalizationRules}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SimpleName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantDialPlan'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantFederationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AllowedDomains}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AllowedDomainsAsAList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowFederatedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTeamsConsumer}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowTeamsConsumerInbound}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${BlockedDomains}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AllowedTrialTenantDomains}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RestrictTeamsConsumerToExternalUserProfiles}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${SharedSipAddressSpace}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${TreatDiscoveredPartnersAsUnverified}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${BlockAllSubdomains}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ExternalAccessWithTrialTenants}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DomainBlockingForMDOAdminsInTeams}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantFederationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantMigrationConfiguration { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${MeetingMigrationEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantMigrationConfiguration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantNetworkRegion { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CentralSite}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkRegionID}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantNetworkRegion'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantNetworkSite { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EmergencyCallingPolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EmergencyCallRoutingPolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableLocationBasedRouting}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LocationPolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkRegionID}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkRoamingPolicy}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantNetworkSite'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantNetworkSubnet { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${MaskBits}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkSiteID}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantNetworkSubnet'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantTrustedIPAddress { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${MaskBits}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantTrustedIPAddress'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTenantUserBackfill { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Operation to perform. + ${Operation}, + + [Parameter(Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Body}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantUserBackfill_Set'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsUser { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AcpInfo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AudioVideoDisabled}, + + [Parameter()] + [Alias('CsEnabled')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${Enabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnterpriseVoiceEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ExchangeArchivingPolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${HostedVoiceMail}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LineServerURI}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LineURI}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OnPremLineURI}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${PassThru}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PrivateLine}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${RemoteCallControlTelephonyEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SipAddress}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUser'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsUssUserSettings { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Setting name + ${Name}, + + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # TenantId. + # Guid + ${TenantId}, + + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + # Guid + ${UserId}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Body}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUssUserSettings_Set'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUssUserSettings_SetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsVideoInteropServiceProvider { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AadApplicationIds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowAppGuestJoinsAsAuthenticated}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${InstructionUri}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantKey}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsVideoInteropServiceProvider'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Start-CsExMeetingMigration { +[CmdletBinding(DefaultParameterSetName='UserId', PositionalBinding=$false)] +param( + [Parameter(Position=1, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${CleanupSipDisabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${EnqueueSourceType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${SourceMeetingType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${TargetMeetingType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UserId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Start-CsExMeetingMigration'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Start-CsMeetingMigrationModern { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='StartExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStartMeetingMigrationRequestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='StartExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${SourceMeetingType}, + + [Parameter(ParameterSetName='StartExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TargetMeetingType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Start = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Start-CsMeetingMigrationModern_Start'; + StartExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Start-CsMeetingMigrationModern_StartExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Sync-CsOnlineApplicationInstance { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${ObjectId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackUri}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${ApplicationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${AcsResourceId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Sync-CsOnlineApplicationInstance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Sync-CsOnlineApplicationInstanceV2 { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Sync', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Sync', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Application instance object ID. + ${ObjectId}, + + [Parameter(ParameterSetName='SyncViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # ACS Resource Id. + ${AcsResourceId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # applicationId. + ${ApplicationId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Sync = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Sync-CsOnlineApplicationInstanceV2_Sync'; + SyncViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Sync-CsOnlineApplicationInstanceV2_SyncViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsEffectiveTenantDialPlan { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${DialedNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ParameterSetName='Identity', Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${TenantScopeOnly}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='EffectiveTDPName', ValueFromPipelineByPropertyName)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EffectiveTenantDialPlanName} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlan'; + EffectiveTDPName = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlan'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsEffectiveTenantDialPlanModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDialPlanTestResult])] +[CmdletBinding(DefaultParameterSetName='TestExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Test', Mandatory)] + [Parameter(ParameterSetName='TestExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${DialedNumber}, + + [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='TestViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Test', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDialPlanRulesTestBody] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='TestExpanded')] + [Parameter(ParameterSetName='TestViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Dial Plan to be used if Identity is not provided + ${EffectiveTenantDialPlanName}, + + [Parameter(ParameterSetName='TestExpanded')] + [Parameter(ParameterSetName='TestViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # User Identity + ${Identity}, + + [Parameter(ParameterSetName='TestExpanded')] + [Parameter(ParameterSetName='TestViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Optional filter to include only tenant dial rules + ${TenantScopeOnly}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlanModern_Test'; + TestExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlanModern_TestExpanded'; + TestViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlanModern_TestViaIdentity'; + TestViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlanModern_TestViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsInboundBlockedNumberPattern { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory, ValueFromPipelineByPropertyName)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PhoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsInboundBlockedNumberPattern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsInboundBlockedNumberPatternModern { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Test', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Phone number to test + ${PhoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsInboundBlockedNumberPatternModern_Test'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsOnlineLiCivicAddressOnly { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Test1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Test1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Test', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.IO.Stream] + # . + ${Data}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsOnlineLiCivicAddressOnly_Test'; + Test1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsOnlineLiCivicAddressOnly_Test1'; + TestViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsOnlineLiCivicAddressOnly_TestViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsTeamsShiftsConnectionValidate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='Test', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Test', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceBaseRequest] + # Connector Instance Base Request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='TestExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector id. + ${ConnectorId}, + + [Parameter(ParameterSetName='TestExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceBaseRequestConnectorSpecificSettings] + # The connector specific settings. + ${ConnectorSpecificSettings}, + + [Parameter(ParameterSetName='TestExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector instance name. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsTeamsShiftsConnectionValidate_Test'; + TestExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsTeamsShiftsConnectionValidate_TestExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsTeamsTranslationRule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITestTeamsTranslationRuleResponse], [System.String])] +[CmdletBinding(DefaultParameterSetName='Test', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Phone number to test + ${PhoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsTeamsTranslationRule_Test'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsTeamsUnassignedNumberTreatment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITestUnassignedNumberTreatmentResponse], [System.String])] +[CmdletBinding(DefaultParameterSetName='Test', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Phone number to test + ${PhoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsTeamsUnassignedNumberTreatment_Test'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsVoiceNormalizationRule { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${DialedNumber}, + + [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${NormalizationRule}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Test-CsVoiceNormalizationRuleModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoiceNormalizationTestResult])] +[CmdletBinding(DefaultParameterSetName='TestExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Test', Mandatory)] + [Parameter(ParameterSetName='TestExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${DialedNumber}, + + [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='TestViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Test', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.INormalizationRuleTestPayload] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='TestExpanded')] + [Parameter(ParameterSetName='TestViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.INormalizationRuleForTest[]] + # . + # To construct, see NOTES section for NORMALIZATIONRULE properties and create a hash table. + ${NormalizationRule}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRuleModern_Test'; + TestExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRuleModern_TestExpanded'; + TestViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRuleModern_TestViaIdentity'; + TestViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRuleModern_TestViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Unregister-CsOnlineDialInConferencingServiceNumber { +[CmdletBinding(DefaultParameterSetName='UniqueNumberParams', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='UniqueNumberParams', Position=0, Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RemoveDefaultServiceNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantDomain}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MsftInternalProcessingMode}, + + [Parameter(ParameterSetName='InstanceParams', Position=0, Mandatory, ValueFromPipeline)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Instance} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UniqueNumberParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOnlineDialInConferencingServiceNumber'; + InstanceParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOnlineDialInConferencingServiceNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Update-CsPhoneNumberTag { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NewTag}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Tag}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsPhoneNumberTag_Update'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Update-CsTeamsShiftsConnectionInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connector Instance Id + ${ConnectorInstanceId}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # ETag value + ${IfMatch}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateConnectorInstanceFieldsRequest] + # Update Connector Instance Fields Request. + # This request is used for performing a partial update (PATCH) on connector instance. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The WFM connection id. + ${ConnectionId}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # The list of connector admin email addresses. + ${ConnectorAdminEmail}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The designated actor id that App acts as for Shifts Graph Api calls. + ${DesignatedActorId}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector instance ETag. + ${Etag}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector instance name. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The state of the WFM Connector Instance. + ${State}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # The sync frequency in minutes. + ${SyncFrequencyInMin}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OfferShiftRequest entity. + ${SyncScenarioOfferShiftRequest}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OpenShift entity. + ${SyncScenarioOpenShift}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The OpenShiftRequest entity. + ${SyncScenarioOpenShiftRequest}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The Shift entity. + ${SyncScenarioShift}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The SwapRequest entity. + ${SyncScenarioSwapRequest}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeCard entity. + ${SyncScenarioTimeCard}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeOff entity. + ${SyncScenarioTimeOff}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The TimeOffRequest entity. + ${SyncScenarioTimeOffRequest}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The UserShiftPreferences entity. + ${SyncScenarioUserShiftPreference}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnectionInstance_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnectionInstance_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnectionInstance_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnectionInstance_UpdateViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Update-CsTeamsShiftsConnection { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Connection Id. + ${ConnectionId}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # Bearer: token + ${Authorization}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] + [System.String] + # ETag value + ${IfMatch}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionFieldsRequest] + # Update WFM Connection Request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The connector id. + ${ConnectorId}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings] + # The connector settings. + ${ConnectorSpecificSettings}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The ETag of WFM connection. + ${Etag}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object name. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The state of the WFM connection. + ${State}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnection_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnection_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnection_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnection_UpdateViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Update-CsTeamTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # A composite URI of a template. + ${OdataId}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] + # The client input for a request to create a template. + # Only admins from Config Api can perform this request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's DisplayName. + ${DisplayName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template short description. + ${ShortDescription}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] + # Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + # To construct, see NOTES section for APP properties and create a hash table. + ${App}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets list of categories. + ${Category}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] + # Gets or sets the set of channel templates included in the team template. + # To construct, see NOTES section for CHANNEL properties and create a hash table. + ${Channel}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's classification.Tenant admins configure AAD with the set of possible values. + ${Classification}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's Description. + ${Description}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] + # Governs discoverability of a team. + # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + ${DiscoverySetting}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] + # Governs use of fun media like giphy and stickers in the team. + # To construct, see NOTES section for FUNSETTING properties and create a hash table. + ${FunSetting}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] + # Guest role settings for the team. + # To construct, see NOTES section for GUESTSETTING properties and create a hash table. + ${GuestSetting}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template icon. + ${Icon}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + ${IsMembershipLimitedToOwner}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] + # Member role settings for the team. + # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + ${MemberSetting}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] + # Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + ${MessagingSetting}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the AAD user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + ${OwnerUserObjectId}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets published name. + ${PublishedBy}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + ${Specialization}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + ${TemplateId}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets uri to be used for GetTemplate api call. + ${Uri}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Used to control the scope of users who can view a group/team and its members, and ability to join. + ${Visibility}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamTemplate_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamTemplate_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamTemplate_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamTemplate_UpdateViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Clear-CsOnlineTelephoneNumberOrder { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OrderId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Clear-CsOnlineTelephoneNumberOrder'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Complete-CsOnlineTelephoneNumberOrder { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OrderId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Complete-CsOnlineTelephoneNumberOrder'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Export-CsAutoAttendantHolidays { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Export-CsAutoAttendantHolidays'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Export-CsOnlineAudioFile { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ApplicationId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Export-CsOnlineAudioFile'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Find-CsGroup { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SearchQuery}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.UInt32]] + ${MaxResults}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ExactMatchOnly}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${MailEnabledOnly}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Find-CsGroup'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Find-CsOnlineApplicationInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstance])] +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SearchQuery}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.UInt32]] + ${MaxResults}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExactMatchOnly}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${AssociatedOnly}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${UnAssociatedOnly}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Find-CsOnlineApplicationInstance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAadTenant { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAadTenant'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAadUser { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAadUser'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAutoAttendant { +[CmdletBinding(DefaultParameterSetName='GetAllParamSet', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='GetAllParamSet', Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${IncludeStatus}, + + [Parameter(ParameterSetName='GetAllParamSet', Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${First}, + + [Parameter(ParameterSetName='GetAllParamSet', Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Skip}, + + [Parameter(ParameterSetName='GetAllParamSet', Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExcludeContent}, + + [Parameter(ParameterSetName='GetAllParamSet', Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NameFilter}, + + [Parameter(ParameterSetName='GetAllParamSet', Position=6)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SortBy}, + + [Parameter(ParameterSetName='GetAllParamSet', Position=7)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Descending}, + + [Parameter(Position=8)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='GetSpecificParamSet', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GetAllParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendant'; + GetSpecificParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendant'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAutoAttendantHolidays { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Years}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Names}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendantHolidays'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAutoAttendantStatus { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${IncludeResources}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendantStatus'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAutoAttendantSupportedLanguage { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendantSupportedLanguage'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAutoAttendantSupportedTimeZone { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendantSupportedTimeZone'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsAutoAttendantTenantInformation { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendantTenantInformation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsBusinessVoiceDirectoryDiagnosticData { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + ${PartitionKey}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + ${Region}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + ${Table}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + ${RowKey}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsBusinessVoiceDirectoryDiagnosticData'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsCallQueue { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${First}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Skip}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExcludeContent}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Sort}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Descending}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NameFilter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=5, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsCallQueue'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsComplianceRecordingForCallQueueTemplate { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=1, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsComplianceRecordingForCallQueueTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsConfigurationModern { +[CmdletBinding(DefaultParameterSetName='ConfigType', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='Filter', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter}, + + [Parameter(ParameterSetName='Identity', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + ConfigType = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; + Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsConfigurationModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMainlineAttendantAppointmentBookingFlow { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${First}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Skip}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SortBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Descending}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NameFilter}, + + [Parameter(Position=5, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMainlineAttendantAppointmentBookingFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMainlineAttendantFlow { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Type}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigurationId}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${First}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Skip}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SortBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Descending}, + + [Parameter(Position=6)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NameFilter}, + + [Parameter(Position=7, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMainlineAttendantFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMainlineAttendantQuestionAnswerFlow { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${First}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${Skip}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SortBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Descending}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NameFilter}, + + [Parameter(Position=5, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMainlineAttendantQuestionAnswerFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMasVersionedSchemaData { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + ${SchemaName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + ${Version}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMasVersionedSchemaData'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMeetingMigrationTransactionHistory { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Identity. + # Supports UPN and SIP + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # CorrelationId + ${CorrelationId}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # start time filter - to get meeting migration transaction history after starttime + ${StartTime}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # end time filter - to get meeting migration transaction history before endtime + ${EndTime}, + + [Parameter(Position=4, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMeetingMigrationTransactionHistory'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMmsStatus { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # SummaryOnly - to get only meting migration status summary. + ${SummaryOnly}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, + + [Parameter(Position=5, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMmsStatus'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsMoveTenantServiceInstanceTaskStatus { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsMoveTenantServiceInstanceTaskStatus'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineApplicationInstanceAssociation { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineApplicationInstanceAssociation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineApplicationInstanceAssociationStatus { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineApplicationInstanceAssociationStatus'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineAudioFile { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ApplicationId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineAudioFile'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineDialInConferencingUser { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${ResultSize}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineDialInConferencingUser'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Version}, + + [Parameter(Position=2, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineSchedule { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=1, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineSchedule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineTelephoneNumberOrder { +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OrderId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='Generic')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OrderType} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineTelephoneNumberOrder'; + Generic = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineTelephoneNumberOrder'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsOnlineVoicemailUserSettings { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsOnlineVoicemailUserSettings'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsSharedCallQueueHistoryTemplate { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=1, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsSharedCallQueueHistoryTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTagsTemplate { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=1, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTagsTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamsSettingsCustomApp { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTeamsSettingsCustomApp'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTeamTemplateList { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject])] +[CmdletBinding(DefaultParameterSetName='DefaultLocaleOverride', PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PublicTemplateLocale}, + + [Parameter(Position=1, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + DefaultLocaleOverride = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTeamTemplateList'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsTenantPoint { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsTenantPoint'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserList { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SkipUserPolicies}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SoftDeletedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] + ${AccountType}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserList'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserPoint { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SkipUserPolicies}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Properties}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserPoint'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsUserSearch { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Identities}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Filter}, + + [Parameter()] + [Alias('Sort')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OrderBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SkipUserPolicies}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SoftDeletedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] + ${AccountType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Properties}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsUserSearch'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsVoiceUserList { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExpandLocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${First}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${NumberAssigned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${NumberNotAssigned}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Guid]] + ${CivicAddressId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.PSTNConnectivity] + ${PSTNConnectivity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.EnterpriseVoiceStatus] + ${EnterpriseVoiceStatus}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsVoiceUserList'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-CsVoiceUserPoint { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ExpandLocation}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsVoiceUserPoint'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-FormatsForConfig { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigType} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-FormatsForConfig'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-StatusRecordStatusCodeString { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${StatusRecordErrorCode} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-StatusRecordStatusCodeString'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Get-StatusRecordStatusString { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${StatusRecordStatus} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-StatusRecordStatusString'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsGroupPolicyPackageAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='RequiredPolicyList', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${GroupId}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${PackageName}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${PolicyRankings}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + RequiredPolicyList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Grant-CsGroupPolicyPackageAssignment'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Grant-CsTeamsPolicy { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [ArgumentCompleter({param ($CommandName, $ParameterName, $WordToComplete, $CommandAst, $FakeBoundParameters) return @("ApplicationAccessPolicy","BroadcastMeetingPolicy","CallingLineIdentity","ClientPolicy","CloudMeetingPolicy","ConferencingPolicy","DialoutPolicy","ExternalAccessPolicy","ExternalUserCommunicationPolicy","GraphPolicy","GroupPolicyPackageAssignment","HostedVoicemailPolicy","IPPhonePolicy","MobilityPolicy","OnlineAudioConferencingRoutingPolicy","OnlineVoicemailPolicy","OnlineVoiceRoutingPolicy","Policy","TeamsAppPermissionPolicy","TeamsAppSetupPolicy","TeamsAudioConferencingPolicy","TeamsCallHoldPolicy","TeamsCallingPolicy","TeamsCallParkPolicy","TeamsChannelsPolicy","TeamsComplianceRecordingPolicy","TeamsCortanaPolicy","TeamsEmergencyCallingPolicy","TeamsEmergencyCallRoutingPolicy","TeamsEnhancedEncryptionPolicy","TeamsFeedbackPolicy","TeamsFilesPolicy","TeamsIPPhonePolicy","TeamsMeetingBroadcastPolicy","TeamsMeetingPolicy","TeamsMessagingPolicy","TeamsMobilityPolicy","TeamsShiftsPolicy","TeamsSurvivableBranchAppliancePolicy","TeamsUpdateManagementPolicy","TeamsUpgradePolicy","TeamsVdiPolicy","TeamsVerticalPackagePolicy","TeamsVideoInteropServicePolicy","TeamsWorkLoadPolicy","TenantDialPlan","UserOrTenantPolicy","UserPolicyPackage","VoiceRoutingPolicy") | ?{ $_ -like "$WordToComplete*" } })] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyType}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PolicyName}, + + [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${AdditionalParameters}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='GrantToTenant', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Global}, + + [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Group}, + + [Parameter(ParameterSetName='GrantToGroup')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${Rank} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Grant-CsTeamsPolicy'; + GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Grant-CsTeamsPolicy'; + GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Grant-CsTeamsPolicy'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Import-CsAutoAttendantHolidays { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1, Mandatory)] + [Alias('Input')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Byte[]] + ${InputBytes}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Import-CsAutoAttendantHolidays'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Import-CsOnlineAudioFile { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${FileName}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Byte[]] + ${Content}, + + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ApplicationId}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Import-CsOnlineAudioFile'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsCustomHandlerCallBackNgtprov { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + ${Id}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.CustomHandlerOperationName] + ${Operation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + ${Eventname}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsCustomHandlerCallBackNgtprov'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsDeprecatedError { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DeprecatedErrorMessage}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsDeprecatedError'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsDirectObjectSync { +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.DirectoryDeploymentName] + ${DeploymentName}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.DirectoryObjectClass] + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${ObjectIds}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${SynchronizeTenantWithAllObject}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${ReSyncOption} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsDirectObjectSync'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsDirectObjectSync'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Invoke-CsMsodsSync { +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='PostExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Models.ObjectClass] + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TenantId}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${SynchronizeTenantWithAllObject}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + ${ReSyncOption} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsMsodsSync'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsMsodsSync'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Move-CsTenantCrossRegion { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Move-CsTenantCrossRegion'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Move-CsTenantServiceInstance { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MoveOption}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TargetServiceInstance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Move-CsTenantServiceInstance'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsAutoAttendant { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LanguageId}, + + [Parameter(Position=3, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow] + ${DefaultCallFlow}, + + [Parameter(Position=6, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeZoneId}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${VoiceId}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + ${Operator}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${EnableVoiceResponse}, + + [Parameter(Position=7)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow[]] + ${CallFlows}, + + [Parameter(Position=8)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation[]] + ${CallHandlingAssociations}, + + [Parameter(Position=9)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] + ${InclusionScope}, + + [Parameter(Position=10)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] + ${ExclusionScope}, + + [Parameter(Position=11)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${AuthorizedUsers}, + + [Parameter(Position=12)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${HideAuthorizedUsers}, + + [Parameter(Position=13)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=14)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UserNameExtension}, + + [Parameter(Position=15)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${EnableMainlineAttendant}, + + [Parameter(Position=16)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MainlineAttendantAgentVoiceId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendant'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsAutoAttendantCallableEntity { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntityType] + ${Type}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${EnableTranscription}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${EnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${CallPriority}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantCallableEntity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsAutoAttendantCallFlow { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Menu}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject[]] + ${Greetings}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ForceListenMenuEnabled}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantCallFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsAutoAttendantCallHandlingAssociation { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociationType] + ${Type}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ScheduleId}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallFlowId}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Disable}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantCallHandlingAssociation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsAutoAttendantDialScope { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${GroupScope}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${GroupIds}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantDialScope'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsAutoAttendantMenu { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject[]] + ${Prompts}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject[]] + ${MenuOptions}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${EnableDialByName}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod] + ${DirectorySearchMethod}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantMenu'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsAutoAttendantMenuOption { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType] + ${Action}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.DtmfTone] + ${DtmfResponse}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${VoiceResponses}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + ${CallTarget}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Prompt}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(Position=6)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=7)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MainlineAttendantTarget}, + + [Parameter(Position=8)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.AgentTargetType] + ${AgentTargetType}, + + [Parameter(Position=9)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AgentTarget}, + + [Parameter(Position=10)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AgentTargetTagTemplateId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantMenuOption'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsAutoAttendantPrompt { +[CmdletBinding(DefaultParameterSetName='TextToSpeechParamSet', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='TextToSpeechParamSet', Position=0, Mandatory)] + [Parameter(ParameterSetName='DualParamSet', Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextToSpeechPrompt}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='DualParamSet', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ActiveType}, + + [Parameter(ParameterSetName='DualParamSet', Position=1)] + [Parameter(ParameterSetName='AudioFileParamSet', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile] + ${AudioFilePrompt} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + TextToSpeechParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantPrompt'; + DualParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantPrompt'; + AudioFileParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantPrompt'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsBatchTeamsDeployment { +[OutputType([System.String])] +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TeamsFilePath}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UsersFilePath}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UsersToNotify}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsBatchTeamsDeployment'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsCallQueue { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${AgentAlertTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOptOut}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${DistributionLists}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${UseDefaultMusicOnHold}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${WelcomeMusicAudioFileId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${WelcomeTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MusicOnHoldAudioFileId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction] + ${OverflowAction}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowActionTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${OverflowThreshold}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction] + ${TimeoutAction}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutActionTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${TimeoutThreshold}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod] + ${RoutingMethod}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${PresenceBasedRouting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ConferenceMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${Users}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LanguageId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LineUri}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${OboResourceAccountIds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentAction] + ${NoAgentAction}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentActionTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentApplyTo] + ${NoAgentApplyTo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChannelId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${ChannelUserObjectId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${AuthorizedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${HideAuthorizedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${OverflowActionCallPriority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${TimeoutActionCallPriority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${NoAgentActionCallPriority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${IsCallbackEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackRequestDtmf}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackOfferAudioFilePromptResourceId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackEmailNotificationTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftsTeamId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftsSchedulingGroupId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextAnnouncementForCR}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomAudioFileAnnouncementForCR}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextAnnouncementForCRFailure}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomAudioFileAnnouncementForCRFailure}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SharedCallQueueHistoryTemplateId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsCallQueue'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsComplianceRecordingForCallQueueTemplate { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BotApplicationInstanceObjectId}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RequiredDuringCall}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RequiredBeforeCall}, + + [Parameter(Position=5)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + ${ConcurrentInvitationCount}, + + [Parameter(Position=6)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PairedApplicationInstanceObjectId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsComplianceRecordingForCallQueueTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsConfigurationModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigType}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag}, + + [Parameter(Position=2, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsConfigurationModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='RequiredPolicyList', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Identity}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${PolicyList}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Description}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + RequiredPolicyList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsCustomPolicyPackage'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsMainlineAttendantAppointmentBookingFlow { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.CallerAuthenticationMethod] + ${CallerAuthenticationMethod}, + + [Parameter(Position=3, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] + ${ApiAuthenticationType}, + + [Parameter(Position=4, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ApiDefinitions}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsMainlineAttendantAppointmentBookingFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsMainlineAttendantQuestionAnswerFlow { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=3, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${KnowledgeBase}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] + ${ApiAuthenticationType}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsMainlineAttendantQuestionAnswerFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineApplicationInstanceAssociation { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Identities}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigurationId}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigurationType}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${CallPriority}, + + [Parameter(Position=4)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineApplicationInstanceAssociation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineDateTimeRange { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Start}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${End}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDateTimeRange'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { +[CmdletBinding(DefaultParameterSetName='InputByList', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='InputByList')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumber}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='InputByRange')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StartingNumber}, + + [Parameter(ParameterSetName='InputByRange')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EndingNumber}, + + [Parameter(ParameterSetName='InputByFile')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Byte[]] + ${FileContent} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + InputByList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; + InputByRange = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; + InputByFile = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineSchedule { +[CmdletBinding(DefaultParameterSetName='UnresolvedParamSet', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='FixedScheduleParamSet', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${FixedSchedule}, + + [Parameter(ParameterSetName='FixedScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${DateTimeRanges}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${WeeklyRecurrentSchedule}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${MondayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${TuesdayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${WednesdayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ThursdayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${FridayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${SaturdayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${SundayHours}, + + [Parameter(ParameterSetName='WeeklyRecurrentScheduleParamSet')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Complement} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UnresolvedParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; + FixedScheduleParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; + WeeklyRecurrentScheduleParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineSchedule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineTelephoneNumberReleaseOrder { +[CmdletBinding(DefaultParameterSetName='InputByList', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='InputByList')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumber}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='InputByRange')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${StartingNumber}, + + [Parameter(ParameterSetName='InputByRange')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${EndingNumber}, + + [Parameter(ParameterSetName='InputByFile')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Byte[]] + ${FileContent} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + InputByList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineTelephoneNumberReleaseOrder'; + InputByRange = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineTelephoneNumberReleaseOrder'; + InputByFile = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineTelephoneNumberReleaseOrder'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsOnlineTimeRange { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Start}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${End}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineTimeRange'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsSdgBulkSignInRequest { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DeviceDetailsFilePath}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Region} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsSdgBulkSignInRequest'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsSharedCallQueueHistoryTemplate { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.IncomingMissedCalls] + ${IncomingMissedCalls}, + + [Parameter(Position=3)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Online.Models.AnsweredAndOutboundCalls] + ${AnsweredAndOutboundCalls}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsSharedCallQueueHistoryTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTag { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TagName}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] + ${TagDetails} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTag'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTagsTemplate { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(Position=2, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject[]] + ${Tags}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTagsTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsTeamTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='New', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + ${Locale}, + + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DisplayName}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShortDescription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] + # To construct, see NOTES section for APP properties and create a hash table. + ${App}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Category}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] + # To construct, see NOTES section for CHANNEL properties and create a hash table. + ${Channel}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Classification}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] + # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + ${DiscoverySetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] + # To construct, see NOTES section for FUNSETTING properties and create a hash table. + ${FunSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] + # To construct, see NOTES section for GUESTSETTING properties and create a hash table. + ${GuestSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Icon}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${IsMembershipLimitedToOwner}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] + # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + ${MemberSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] + # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + ${MessagingSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OwnerUserObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PublishedBy}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Specialization}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Uri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Visibility}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTeamTemplate'; + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTeamTemplate'; + NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTeamTemplate'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTeamTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function New-CsUserCallingDelegate { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Delegate}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${MakeCalls}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ManageSettings}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ReceiveCalls}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsUserCallingDelegate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Register-CsOdcServiceNumber { +[CmdletBinding(DefaultParameterSetName='ById', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='ById', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='ByInstance', Mandatory, ValueFromPipeline)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] + # To construct, see NOTES section for INSTANCE properties and create a hash table. + ${Instance} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + ById = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Register-CsOdcServiceNumber'; + ByInstance = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Register-CsOdcServiceNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsAutoAttendant { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsAutoAttendant'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsCallQueue { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsCallQueue'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsComplianceRecordingForCallQueueTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsComplianceRecordingForCallQueueTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsConfigurationModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigType}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=2, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsConfigurationModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsMainlineAttendantAppointmentBookingFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsMainlineAttendantAppointmentBookingFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsMainlineAttendantQuestionAnswerFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsMainlineAttendantQuestionAnswerFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineApplicationInstanceAssociation { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${Identities}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineApplicationInstanceAssociation'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineAudioFile { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineAudioFile'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineSchedule { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineSchedule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsOnlineTelephoneNumberModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${TelephoneNumber}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsOnlineTelephoneNumberModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsPhoneNumberAssignment { +[CmdletBinding(DefaultParameterSetName='RemoveSome', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(ParameterSetName='RemoveSome', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PhoneNumber}, + + [Parameter(ParameterSetName='RemoveSome', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Notify}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='RemoveAll', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RemoveAll} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + RemoveSome = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsPhoneNumberAssignment'; + RemoveAll = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsPhoneNumberAssignment'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsSharedCallQueueHistoryTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsSharedCallQueueHistoryTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsTagsTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Id}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsTagsTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Remove-CsUserCallingDelegate { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Delegate}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsUserCallingDelegate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsAutoAttendant { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsAutoAttendant'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsCallQueue { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${AgentAlertTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowOptOut}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${DistributionLists}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${UseDefaultMusicOnHold}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${WelcomeMusicAudioFileId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${WelcomeTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${MusicOnHoldAudioFileId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction] + ${OverflowAction}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowActionTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${OverflowThreshold}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction] + ${TimeoutAction}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutActionTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${TimeoutThreshold}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod] + ${RoutingMethod}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${PresenceBasedRouting}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ConferenceMode}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${Users}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LanguageId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LineUri}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${OboResourceAccountIds}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentAction] + ${NoAgentAction}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentActionTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentApplyTo] + ${NoAgentApplyTo}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ChannelId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid] + ${ChannelUserObjectId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${AuthorizedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Guid[]] + ${HideAuthorizedUsers}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${OverflowActionCallPriority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${TimeoutActionCallPriority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int16] + ${NoAgentActionCallPriority}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${IsCallbackEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackRequestDtmf}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackOfferAudioFilePromptResourceId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallbackEmailNotificationTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Int32]] + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftsTeamId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextAnnouncementForCR}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomAudioFileAnnouncementForCR}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TextAnnouncementForCRFailure}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CustomAudioFileAnnouncementForCRFailure}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SharedCallQueueHistoryTemplateId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ShiftsSchedulingGroupId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsCallQueue'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsComplianceRecordingForCallQueueTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsComplianceRecordingForCallQueueTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsConfigurationModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ConfigType}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + ${PropertyBag}, + + [Parameter(Position=2, DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsConfigurationModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsMainlineAttendantAppointmentBookingFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsMainlineAttendantAppointmentBookingFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsMainlineAttendantQuestionAnswerFlow { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsMainlineAttendantQuestionAnswerFlow'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOdcServiceNumber { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PrimaryLanguage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${SecondaryLanguages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RestoreDefaultLanguages}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] + # To construct, see NOTES section for INSTANCE properties and create a hash table. + ${Instance}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOdcServiceNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineDialInConferencingBridge { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Name}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultServiceNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SetDefault}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge] + # To construct, see NOTES section for INSTANCE properties and create a hash table. + ${Instance}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${AsJob}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineDialInConferencingBridge'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineDialInConferencingUser { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TollFreeServiceNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${SendEmail}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ServiceNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ResetLeaderPin}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${SendEmailToAddress}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${AllowTollFreeDialIn}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${AsJob}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineDialInConferencingUser'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CountryOrRegion}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Version}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${ForceAccept}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Response}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${RespondedByObjectId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ResponseTimestamp}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Locale}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineSchedule { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Instance}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineSchedule'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineSipDomainModern { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Domain}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Action}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineSipDomainModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoicemailUserSettings { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Rtc.Management.Hosted.Voicemail.Models.CallAnswerRules] + ${CallAnswerRule}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultGreetingPromptOverwrite}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultOofGreetingPromptOverwrite}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${OofGreetingEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${OofGreetingFollowAutomaticRepliesEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PromptLanguage}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${ShareData}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TransferTarget}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Nullable[System.Boolean]] + ${VoicemailEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineVoicemailUserSettings'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsOnlineVoiceUserV2 { +[CmdletBinding(DefaultParameterSetName='Id', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${TelephoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LocationId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Id = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsOnlineVoiceUserV2'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsPersonalAttendantSettings { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='PersonalAttendantOnOff', Mandatory)] + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsPersonalAttendantEnabled}, + + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultLanguage}, + + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsBookingCalendarEnabled}, + + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsCallScreeningEnabled}, + + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowInboundInternalCalls}, + + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowInboundFederatedCalls}, + + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${AllowInboundPSTNCalls}, + + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsAutomaticTranscriptionEnabled}, + + [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsAutomaticRecordingEnabled}, + + [Parameter(ParameterSetName='PersonalAttendant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultVoice}, + + [Parameter(ParameterSetName='PersonalAttendant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CalleeName}, + + [Parameter(ParameterSetName='PersonalAttendant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${DefaultTone}, + + [Parameter(ParameterSetName='PersonalAttendant')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsNonContactCallbackEnabled} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPersonalAttendantSettings'; + PersonalAttendantOnOff = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPersonalAttendantSettings'; + PersonalAttendant = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPersonalAttendantSettings'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsPhoneNumberAssignment { +[CmdletBinding(DefaultParameterSetName='LocationUpdate', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='LocationUpdate', Mandatory)] + [Parameter(ParameterSetName='Assignment', Mandatory)] + [Parameter(ParameterSetName='ReverseNumberLookupUpdate', Mandatory)] + [Parameter(ParameterSetName='NetworkSiteUpdate', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PhoneNumber}, + + [Parameter(ParameterSetName='LocationUpdate', Mandatory)] + [Parameter(ParameterSetName='Assignment')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LocationId}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='Attribute', Mandatory)] + [Parameter(ParameterSetName='Assignment', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(ParameterSetName='Attribute', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${EnterpriseVoiceEnabled}, + + [Parameter(ParameterSetName='Assignment', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${PhoneNumberType}, + + [Parameter(ParameterSetName='Assignment')] + [Parameter(ParameterSetName='NetworkSiteUpdate', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${NetworkSiteId}, + + [Parameter(ParameterSetName='Assignment')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${AssignmentCategory}, + + [Parameter(ParameterSetName='Assignment')] + [Parameter(ParameterSetName='ReverseNumberLookupUpdate', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ReverseNumberLookup}, + + [Parameter(ParameterSetName='Assignment')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Notify} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + LocationUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + Attribute = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + Assignment = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + ReverseNumberLookupUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + NetworkSiteUpdate = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsPhoneNumberAssignment'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsSharedCallQueueHistoryTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsSharedCallQueueHistoryTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTagsTemplate { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.PSObject] + ${Instance}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsTagsTemplate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsTeamsSettingsCustomApp { +[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${isSideloadedAppsInteractionEnabled}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsTeamsSettingsCustomApp'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsUserCallingDelegate { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Delegate}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${MakeCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ManageSettings}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${ReceiveCalls}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingDelegate'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsUserCallingSettings { +[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='CallGroupNotification', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${GroupNotificationOverride}, + + [Parameter(ParameterSetName='CallGroupMembership', Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]] + # To construct, see NOTES section for GROUPMEMBERSHIPDETAILS properties and create a hash table. + ${GroupMembershipDetails}, + + [Parameter(ParameterSetName='CallGroup', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${CallGroupOrder}, + + [Parameter(ParameterSetName='CallGroup', Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Array] + ${CallGroupTargets}, + + [Parameter(ParameterSetName='UnansweredOnOff', Mandatory)] + [Parameter(ParameterSetName='Unanswered', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsUnansweredEnabled}, + + [Parameter(ParameterSetName='Unanswered', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UnansweredDelay}, + + [Parameter(ParameterSetName='Unanswered')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UnansweredTarget}, + + [Parameter(ParameterSetName='Unanswered')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${UnansweredTargetType}, + + [Parameter(ParameterSetName='ForwardingOnOff', Mandatory)] + [Parameter(ParameterSetName='Forwarding', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Boolean] + ${IsForwardingEnabled}, + + [Parameter(ParameterSetName='Forwarding', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ForwardingType}, + + [Parameter(ParameterSetName='Forwarding', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ForwardingTargetType}, + + [Parameter(ParameterSetName='Forwarding')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${ForwardingTarget} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; + CallGroupNotification = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; + CallGroupMembership = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; + CallGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; + UnansweredOnOff = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; + Unanswered = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; + ForwardingOnOff = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; + Forwarding = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-CsUserModern { +[CmdletBinding(DefaultParameterSetName='Id', PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${EnterpriseVoiceEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${HostedVoiceMail}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${LineURI}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${OnPremLineURI}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Id = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserModern'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-FixTenantFedConfigObject { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ConfigObject} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-FixTenantFedConfigObject'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-FixTypoInOnlinePSTNGatewayConfigObject { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ConfigObject} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-FixTypoInOnlinePSTNGatewayConfigObject'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Set-FormatOnConfigObject { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ConfigObject}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${ConfigType} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-FormatOnConfigObject'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Unregister-CsOdcServiceNumber { +[CmdletBinding(DefaultParameterSetName='ById', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='ById', Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter()] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${BridgeName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${RemoveDefaultServiceNumber}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend}, + + [Parameter(ParameterSetName='ByInstance', Mandatory, ValueFromPipeline)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] + # To construct, see NOTES section for INSTANCE properties and create a hash table. + ${Instance} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + ById = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Unregister-CsOdcServiceNumber'; + ByInstance = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Unregister-CsOdcServiceNumber'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Update-CsAutoAttendant { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + ${Identity}, + + [Parameter(Position=1)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + ${Force}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Update-CsAutoAttendant'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Update-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='RequiredPolicyList', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Position=0, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Identity}, + + [Parameter(Position=1, Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + ${PolicyList}, + + [Parameter(Position=2)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Object] + ${Description}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + ${HttpPipelinePrepend} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + RequiredPolicyList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Update-CsCustomPolicyPackage'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# .ExternalHelp en-US\MicrosoftTeams-help +function Write-AdminServiceDiagnostic { +[CmdletBinding(PositionalBinding=$false)] +param( + [Parameter(Position=0)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord[]] + # To construct, see NOTES section for DIAGNOSTICS properties and create a hash table. + ${Diagnostics} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Write-AdminServiceDiagnostic'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# SIG # Begin signature block +# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBkgNc3SV2m6Sgc +# z1TChY0ngz7tOvT8zgayZlr22W0TRaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z +# 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM3WhcNMjYwNjE3MTgyMTM3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDASkh1cpvuUqfbqxele7LCSHEamVNBfFE4uY1FkGsAdUF/vnjpE1dnAD9vMOqy +# 5ZO49ILhP4jiP/P2Pn9ao+5TDtKmcQ+pZdzbG7t43yRXJC3nXvTGQroodPi9USQi +# 9rI+0gwuXRKBII7L+k3kMkKLmFrsWUjzgXVCLYa6ZH7BCALAcJWZTwWPoiT4HpqQ +# hJcYLB7pfetAVCeBEVZD8itKQ6QA5/LQR+9X6dlSj4Vxta4JnpxvgSrkjXCz+tlJ +# 67ABZ551lw23RWU1uyfgCfEFhBfiyPR2WSjskPl9ap6qrf8fNQ1sGYun2p4JdXxe +# UAKf1hVa/3TQXjvPTiRXCnJPAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUuCZyGiCuLYE0aU7j5TFqY05kko0w +# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW +# MBQGA1UEBRMNMjMwMDEyKzUwNTM1OTAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci +# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG +# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu +# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 +# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBACjmqAp2Ci4sTHZci+qk +# tEAKsFk5HNVGKyWR2rFGXsd7cggZ04H5U4SV0fAL6fOE9dLvt4I7HBHLhpGdE5Uj +# Ly4NxLTG2bDAkeAVmxmd2uKWVGKym1aarDxXfv3GCN4mRX+Pn4c+py3S/6Kkt5eS +# DAIIsrzKw3Kh2SW1hCwXX/k1v4b+NH1Fjl+i/xPJspXCFuZB4aC5FLT5fgbRKqns +# WeAdn8DsrYQhT3QXLt6Nv3/dMzv7G/Cdpbdcoul8FYl+t3dmXM+SIClC3l2ae0wO +# lNrQ42yQEycuPU5OoqLT85jsZ7+4CaScfFINlO7l7Y7r/xauqHbSPQ1r3oIC+e71 +# 5s2G3ClZa3y99aYx2lnXYe1srcrIx8NAXTViiypXVn9ZGmEkfNcfDiqGQwkml5z9 +# nm3pWiBZ69adaBBbAFEjyJG4y0a76bel/4sDCVvaZzLM3TFbxVO9BQrjZRtbJZbk +# C3XArpLqZSfx53SuYdddxPX8pvcqFuEu8wcUeD05t9xNbJ4TtdAECJlEi0vvBxlm +# M5tzFXy2qZeqPMXHSQYqPgZ9jvScZ6NwznFD0+33kbzyhOSz/WuGbAu4cHZG8gKn +# lQVT4uA2Diex9DMs2WHiokNknYlLoUeWXW1QrJLpqO82TLyKTbBM/oZHAdIc0kzo +# STro9b3+vjn2809D0+SOOCVZMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq +# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x +# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv +# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg +# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 +# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr +# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg +# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy +# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 +# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh +# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k +# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB +# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn +# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 +# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w +# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o +# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD +# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa +# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny +# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG +# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV +# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG +# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl +# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb +# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l +# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 +# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 +# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 +# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam +# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa +# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah +# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA +# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt +# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr +# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp +# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB +# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEscMFYNCcnOY66Fk7jQ6La9 +# n/+rO9ShrpMG4d3ll1OeMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB +# BQAEggEAZmAGn1n0y9mKzaNyeh9vxzKl7PrdBwdueox8/iGJl+eb2DvPEM6oNjvx +# zRld11sOitlN/nBDASbDRm5r2H4UhNVmkc0KPRV4Dm9HFdhzKNdtG8+nMc4g1v05 +# QQnwCesuNZh9gE+datNrsU9RKuocUiSXsCWPJAtsDLC/JQbJuaJS8fldgess3w3r +# n+eM6bVOiOhlpTXtRtnRTo5zYDXipTdEauJo1fR6gaF20sJ0NmIjYv3CcUWJ+E19 +# 7ZbgmDlLj1F9Bxh5AKAp/c8r+4F+rJU5x9eZqy27T4NDL68O89AUg/dCzdIjj5II +# RbOnUbdKb4KtIbWd2kCVmHrcF7uFyKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC +# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq +# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl +# AwQCAQUABCBvszC7o2PMK3q9tNrT6+2O295g5bMfqsffiurTMSgFYgIGaNry8iS+ +# GBMyMDI1MTAwMTA4MzMzMC45OTJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l +# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w +# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg +# ghHqMIIHIDCCBQigAwIBAgITMwAAAgTY4A4HlzJYmAABAAACBDANBgkqhkiG9w0B +# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNTAxMzAxOTQy +# NDdaFw0yNjA0MjIxOTQyNDdaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z +# MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNV +# BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQDw3Sbcee2d66vkWGTIXhfGqqgQGxQXTnq44XlUvNzF +# St7ELtO4B939jwZFX7DrRt/4fpzGNkFdGpc7EL5S86qKYv360eXjW+fIv1lAqDD3 +# 1d/p8Ai9/AZz8M95zo0rDpK2csz9WAyR9FtUDx52VOs9qP3/pgpHvgUvD8s6/3KN +# ITzms8QC1tJ3TMw1cRn9CZgVIYzw2iD/ZvOW0sbF/DRdgM8UdtxjFIKTXTaI/bJh +# sQge3TwayKQ2j85RafFFVCR5/ChapkrBQWGwNFaPzpmYN46mPiOvUxriISC9nQ/G +# rDXUJWzLDmchrmr2baABJevvw31UYlTlLZY6zUmjkgaRfpozd+Glq9TY2E3Dglr6 +# PtTEKgPu2hM6v8NiU5nTvxhDnxdmcf8UN7goeVlELXbOm7j8yw1xM9IyyQuUMWko +# rBaN/5r9g4lvYkMohRXEYB0tMaOPt0FmZmQMLBFpNRVnXBTa4haXvn1adKrvTz8V +# lfnHxkH6riA/h2AlqYWhv0YULsEcHnaDWgqA29ry+jH097MpJ/FHGHxk+d9kH2L5 +# aJPpAYuNmMNPB7FDTPWAx7Apjr/J5MhUx0i07gV2brAZ9J9RHi+fMPbS+Qm4AonC +# 5iOTj+dKCttVRs+jKKuO63CLwqlljvnUCmuSavOX54IXOtKcFZkfDdOZ7cE4DioP +# 1QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFBp1dktAcGpW/Km6qm+vu4M1GaJfMB8G +# A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCG +# Tmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy +# MFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4w +# XAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2Vy +# dHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwG +# A1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQD +# AgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBecv6sRw2HTLMyUC1WJJ+FR+DgA9Jkv0lG +# sIt4y69CmOj8R63oFbhSmcdpakxqNbr8v9dyTb4RDyNqtohiiXbtrXmQK5X7y/Q+ +# +F0zMotTtTpTPvG3eltyV/LvO15mrLoNQ7W4VH58aLt030tORxs8VnAQQF5BmQQM +# Oua+EQgH4f1F4uF6rl3EC17JBSJ0wjHSea/n0WYiHPR0qkz/NRAf8lSUUV0gbIMa +# wGIjn7+RKyCr+8l1xdNkK/F0UYuX3hG0nE+9Wc0L4A/enluUN7Pa9vOV6Vi3BOJS +# T0RY/ax7iZ45leM8kqCw7BFPcTIkWzxpjr2nCtirnkw7OBQ6FNgwIuAvYNTU7r60 +# W421YFOL5pTsMZcNDOOsA01xv7ymCF6zknMGpRHuw0Rb2BAJC9quU7CXWbMbAJLd +# Z6XINKariSmCX3/MLdzcW5XOycK0QhoRNRf4WqXRshEBaY2ymJvHO48oSSY/kpuY +# vBS3ljAAuLN7Rp8jWS7t916paGeE7prmrP9FJsoy1LFKmFnW+vg43ANhByuAEXq9 +# Cay5o7K2H5NFnR5wj/SLRKwK1iyUX926i1TEviEiAh/PVyJbAD4koipig28p/6HD +# uiYOZ0wUkm/a5W8orIjoOdU3XsJ4i08CfNp5I73CsvB5QPYMcLpF9NO/1LvoQAw3 +# UPdL55M5HTCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZI +# hvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw +# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x +# MjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy +# MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +# AQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25Phdg +# M/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPF +# dvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6 +# GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBp +# Dco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50Zu +# yjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3E +# XzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0 +# lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q +# GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ +# +QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PA +# PBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkw +# EgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxG +# NSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARV +# MFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWlj +# cm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAK +# BggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG +# 9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0x +# M7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmC +# VgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449 +# xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wM +# nosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDS +# PeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2d +# Y3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxn +# GSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs +# QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL +# jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL +# 6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNN +# MIICNQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEn +# MCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjk2MDAtMDVFMC1EOTQ3MSUwIwYDVQQD +# ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQC6 +# PYHRw9+9SH+1pwy6qzVG3k9lbqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7IbCsDAiGA8yMDI1MDkzMDIwNTcy +# MFoYDzIwMjUxMDAxMjA1NzIwWjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDshsKw +# AgEAMAcCAQACAhRVMAcCAQACAhOTMAoCBQDsiBQwAgEAMDYGCisGAQQBhFkKBAIx +# KDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZI +# hvcNAQELBQADggEBAG+Jbe5OTpkhXWMsYPhDqvEF1WZTANXQDcww4ZyHRuVaJj80 +# DbI4zpgImKhh+ZX5Ypm/QVLxbZs2J28olVxafNs0EplkQbVtv5CskZD25iLsTQSV +# xy+/ysXbs9ctusQf4ULK9OceVdmYsQYbikQ3TP1SHBKv1c5mD0B4nz8jLNyPiXbH +# 7EgBYrpitvI2xSBiBP6u0p+yW7BxlqPzsqO21OL+mu3MNZg42+GEGO2KmU1vtK3Z +# daRZrBMAZOxBbpKtYWZd/LXjrF8SiRXCef88cMTRZhL9MBoINHfE8892nO1yWjXo +# 7X9+wyp+7JOXIcajt+sxDdeG9LZMDEns3BCpPLcxggQNMIIECQIBATCBkzB8MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy +# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAgTY4A4HlzJYmAABAAACBDAN +# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G +# CSqGSIb3DQEJBDEiBCDsGMKspFuVdHm40nEg8OIgk2EP3XxNY7sFsXrMQm8D1TCB +# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIPnteGX9Wwq8VdJM6mjfx1GEJsu7 +# /6kU6l0SS5rcebn+MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh +# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD +# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw +# MTACEzMAAAIE2OAOB5cyWJgAAQAAAgQwIgQglaLBnu3LIeH2jaK0DL5bq7W8LWRe +# BAFQqXIOLS0qz4QwDQYJKoZIhvcNAQELBQAEggIAXKOOTX8FeJi8jOpRrFyzUTu1 +# NGhUW/x1XciDWQs/dGoHk5n//6Y1ox8dqTBqnQhhygBbDeJJ2IaPU0LXOnUputMw +# pyl7hPMKFIwVrrt9i23R5xWn0kI/0/dOO7tf6LjgRuO3gAKTe0IXRe1Cks+xPoUD +# hYWFGI2Ddo6cqb2sl77JwyW7IK29rnawDi6UCLlvbKvekvK6oUB13wHlyn8CWrEc +# 3mZsHf6MXrNy7cx6YMf9987WpNvahvh/bhen238rTx8QzsoGvP4Snfe4WWqUHIxo +# GCcIdAw/i0xRxKTlCbyFRKVNn3corKjo6lM3oSxpnLTAnT6pNRZJlj6JeZq7hWbT +# ooI/O6G1FEClAgkoAiZBveNdl+WxONptjuRQoRJaFgAymbBOWOizfn2T5OvBe0yn +# 0KcKRckms5Tytkg1DoQW59NUXa5HjceofNC5x3BkGyBeUug00NApe3FnIPwJSlcZ +# iSIWK7nPuEc1ORnpzn9uTifY/sKQ4sNh10m4NN9nKJ3Tt8WwuGEldOKRfgOBN1TB +# wpuvXB0TrYiZQAFpEM0j6hmUAd/mv9siVylzzUeLowVoBpomxFJyhxDK1oetp3on +# eYIJvRgDCKOr9i9kPAelBd2i38n5smR8OC0eHxJKMZG2d/D8WJ4FVmWAj0+iCkNT +# N8gspd097GOWP7XjeUU= +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 b/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 new file mode 100644 index 000000000000..057e669f868d --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 @@ -0,0 +1,47725 @@ + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : UpdateSearchOrderRequest + [Action ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/complete-csonlinetelephonenumberorder +#> +function Complete-CsOnlineTelephoneNumberOrder { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='CompleteExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Complete', Mandatory)] + [Parameter(ParameterSetName='CompleteExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${OrderId}, + + [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CompleteViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Complete', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest] + # UpdateSearchOrderRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='CompleteExpanded')] + [Parameter(ParameterSetName='CompleteViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Action}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Complete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_Complete'; + CompleteExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteExpanded'; + CompleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentity'; + CompleteViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get Audio file content. +GET Teams.MediaStorage/audiofile/appId/audiofileId/content +.Description +Get Audio file content. +GET Teams.MediaStorage/audiofile/appId/audiofileId/content +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/export-csonlineaudiofile +#> +function Export-CsOnlineAudioFile { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Export', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='Export', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='ExportViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Export = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_Export'; + ExportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_ExportViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Find group. +GET /Teams.VoiceApps/groups?. +.Description +Find group. +GET /Teams.VoiceApps/groups?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/find-csgroup +#> +function Find-CsGroup { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse])] +[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to exact match on the search query or not. + ${ExactMatchOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to return only groups enabled for mail. + ${MailEnabledOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Gets or sets max results to return. + ${MaxResults}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Gets or sets search query. + ${SearchQuery}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsGroup_Find'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Search for application instances that match the search criteria. +.Description +Search for application instances that match the search criteria. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/find-csonlineapplicationinstance +#> +function Find-CsOnlineApplicationInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse])] +[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${AssociatedOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExactMatchOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IsAssociated}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${MaxResults}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SearchQuery}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${UnAssociatedOnly}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsOnlineApplicationInstance_Find'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get Tenant from AAD. +Get-CsAadTenant +.Description +Get Tenant from AAD. +Get-CsAadTenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csaadtenant +#> +function Get-CsAadTenant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadTenant_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get User. +Get-CsAadUser +.Description +Get User. +Get-CsAadUser +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csaaduser +#> +function Get-CsAadUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # identity. + # Supports UserId as Guid or UPN as String. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/identity. +.Description +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendant +#> +function Get-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to retrieve. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets auto attendant holidays. +GET Teams.VoiceApps/auto-attendants/identity/holidays. +.Description +Gets auto attendant holidays. +GET Teams.VoiceApps/auto-attendants/identity/holidays. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantholidays +#> +function Get-CsAutoAttendantHolidays { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${Name}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${ResponseType}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${Year}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/status/identity +.Description +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/status/identity +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3 +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantstatus +#> +function Get-CsAutoAttendantStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to retrieve. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${IncludeResources}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get specific language information. +GET Teams.VoiceApps/supported-languages/identity. +.Description +Get specific language information. +GET Teams.VoiceApps/supported-languages/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedlanguage +#> +function Get-CsAutoAttendantSupportedLanguage { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the supported language to retrieve the information for. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get supported timezone information. +GET Teams.VoiceApps/supported-timezones/identity. +.Description +Get supported timezone information. +GET Teams.VoiceApps/supported-timezones/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedtimezone +#> +function Get-CsAutoAttendantSupportedTimeZone { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the supported timezone to retrieve the information for. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get tenant information specific to Voice Apps by the tenant Id. +GET Teams.VoiceApps/information. +.Description +Get tenant information specific to Voice Apps by the tenant Id. +GET Teams.VoiceApps/information. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendanttenantinformation +#> +function Get-CsAutoAttendantTenantInformation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantTenantInformation_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets raw data from bvd tables. +.Description +Gets raw data from bvd tables. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csbusinessvoicedirectorydiagnosticdata +#> +function Get-CsBusinessVoiceDirectoryDiagnosticData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # PartitionKey of the table. + ${PartitionKey}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Region to query Bvd table. + ${Region}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Bvd table name. + ${Table}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Optional resultSize. + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Optional row key. + ${RowKey}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get call queues. +GET Teams.VoiceApps/callqueues?. +.Description +Get call queues. +GET Teams.VoiceApps/callqueues?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscallqueue +#> +function Get-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to filter invalid Obo from the response. + # If invalid Obos are not needed in the response set the flag to true, otherwise false. + # An obo is termed invalid when a previously associated Obo is deleted from AAD or phone number associated to the Obo is removed. + ${FilterInvalidObos}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. +.Description +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscompliancerecordingforcallqueuetemplate +#> +function Get-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Compliance Recording Id. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all tenant available configurations +.Description +Get all tenant available configurations +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csconfiguration +#> +function Get-CsConfiguration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration], [System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # string + ${ConfigType}, + + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity1'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. +.Description +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantappointmentbookingflow +#> +function Get-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. +.Description +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantflow +#> +function Get-CsMainlineAttendantFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ConfigurationId}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Type}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. +.Description +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantquestionanswerflow +#> +function Get-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get requested Schema's data from MAS DB. +.Description +Get requested Schema's data from MAS DB. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata +#> +function Get-CsMasVersionedSchemaData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Schema to get from MAS DB + ${SchemaName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Last X versions to fetch from MAS DB. + ${Version}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get meeting migration status for a user or tenant +.Description +Get meeting migration status for a user or tenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern +#> +function Get-CsMeetingMigrationStatusModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get meeting migration status summary for a user or tenant +.Description +Get meeting migration status summary for a user or tenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern +#> +function Get-CsMeetingMigrationStatusSummaryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get meeting migration transaction history for a user +.Description +Get meeting migration transaction history for a user +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern +#> +function Get-CsMeetingMigrationTransactionHistoryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, Aad user object Id + ${UserIdentity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # CorrelationId fetched when running start-csexmeetingmigration + ${CorrelationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get Tenant's Migrationdetails. +.Description +Get Tenant's Migrationdetails. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus +#> +function Get-CsMoveTenantServiceInstanceTaskStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +This cmdlet is point get operation on users. +.Description +This cmdlet is point get operation on users. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser +#> +function Get-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId of user. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. +.Description +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation +#> +function Get-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +.Description +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus +#> +function Get-CsOnlineApplicationInstanceAssociationStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +.Description +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile +#> +function Get-CsOnlineAudioFile { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='GetViaIdentity')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${DurationInMin}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer +#> +function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Version}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress +#> +function Get-CsOnlineLisCivicAddress { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. +.Description +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule +#> +function Get-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to retrieve. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder +#> +function Get-CsOnlineTelephoneNumberOrder { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${OrderId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${OrderType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get Cs-OnlineVoicemailUserSettings. +.Description +Get Cs-OnlineVoicemailUserSettings. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting +#> +function Get-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. +.Description +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cssharedcallqueuehistorytemplate +#> +function Get-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Shared Call Queue History Id. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. +.Description +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstagstemplate +#> +function Get-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get Org Settings - Get-CsTeamsSettingsCustomApp +.Description +Get Org Settings - Get-CsTeamsSettingsCustomApp +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamssettingscustomapp +#> +function Get-CsTeamsSettingsCustomApp { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSettingsCustomApp_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a list of available team templates +.Description +Get a list of available team templates +.Example +PS C:\> Get-CsTeamTemplateList + +OdataId Name ShortDescription Chann AppCo + elCou unt + nt +------- ---- ---------------- ----- ----- +/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 +/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 +/api/teamtemplates/v1.0/retailStore/Public/en-US Organize a Store Collaborate with your retail ... 3 1 +/api/teamtemplates/v1.0/retailManagerCollaboration/Public/en-US Retail - Manager Collaboration Collaborate with managers acr... 3 1 + +.Example +PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where ChannelCount -GT 3 + +OdataId Name ShortDescription Chann AppCo + elCou unt + nt +------- ---- ---------------- ----- ----- +/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 +/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamtemplatelist +#> +function Get-CsTeamTemplateList { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Language and country code for localization of publicly available templates. + ${PublicTemplateLocale}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get Tenant. +.Description +Get Tenant. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstenantobou +#> +function Get-CsTenantObou { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantObou_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get User. +.Description +Get User. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csuser +#> +function Get-CsUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('UserId')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + # Supports Guid. + # Eventually UPN and SIP. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To fetch optional location field + ${Expandlocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set includedefaultproperties value + ${Includedefaultproperty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set to true when called from Get-CsVoiceUser cmdlet + ${Voiceuserquery}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Unified group grant. +.Description +Unified group grant. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [PolicyName ]: + [Priority ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicyassignment +#> +function Grant-CsGroupPolicyAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${GroupId}, + + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${PolicyType}, + + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Rank}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Assign a policy package to a group in a tenant +.Description +Assign a policy package to a group in a tenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +POLICYRANKINGS : . + PolicyType : + Rank : +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicypackageassignment +#> +function Grant-CsGroupPolicyPackageAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${GroupId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PackageName}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyRanking[]] + # . + # To construct, see NOTES section for POLICYRANKINGS properties and create a hash table. + ${PolicyRankings}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyPackageAssignment_GrantExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update single policy of a Tenant +.Description +Update single policy of a Tenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AdditionalParameter ]: Dictionary of + [(Any) ]: This indicates any property can be added to this object. + [ForceSwitchPresent ]: + [PolicyName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/grant-cstenantpolicy +#> +function Grant-CsTenantPolicy { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Policy Type + ${PolicyType}, + + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequestAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ForceSwitchPresent}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update single policy of a user +.Description +Update single policy of a user +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AdditionalParameter ]: Dictionary of + [(Any) ]: This indicates any property can be added to this object. + [PolicyName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csuserpolicy +#> +function Grant-CsUserPolicy { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # User Id + ${Identity}, + + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Policy Type + ${PolicyType}, + + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequestAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Import holidays for auto attendant. +PUT Teams.VoiceApps/auto-attendants/identity/holidays. +.Description +Import holidays for auto attendant. +PUT Teams.VoiceApps/auto-attendants/identity/holidays. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Id ]: + [SerializedHolidayRecord ]: + [TenantId ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/import-csautoattendantholidays +#> +function Import-CsAutoAttendantHolidays { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse])] +[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Import', Mandatory)] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ImportViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${SerializedHolidayRecord}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TenantId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_Import'; + ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportExpanded'; + ImportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentity'; + ImportViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Store a new Audio file in MSS. +POST api/v3/tenants/tenantId/audiofile. +.Description +Store a new Audio file in MSS. +POST api/v3/tenants/tenantId/audiofile. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + ApplicationId : + Content : + OriginalFilename : + [Id ]: + [ContextId ]: + [ConvertedFilename ]: + [DeletionTimestampOffset ]: + [DownloadUri ]: + [DownloadUriExpiryTimestampOffset ]: + [Duration ]: + [LastAccessedTimestampOffset ]: + [UploadedTimestampOffset ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/import-csonlineaudiofile +#> +function Import-CsOnlineAudioFile { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Content}, + + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileName}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ContextId}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConvertedFilename}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DeletionTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DownloadUri}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DownloadUriExpiryTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Duration}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${LastAccessedTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${UploadedTimestampOffset}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_Import'; + ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_ImportExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Invokes Custom Handler +.Description +Invokes Custom Handler +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-cscustomhandlercallbackngtprov +#> +function Invoke-CsCustomHandlerCallBackNgtprov { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput])] +[CmdletBinding(DefaultParameterSetName='Post', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Unique Id of the Handler. + ${Id}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Callback Operation. + ${Operation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # EventName for the SendEventPostURI. + ${Eventname}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerCallBackNgtprov_Post'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Post DsSync resync cmdlet +.Description +Post DsSync resync cmdlet +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request body for DsSync cmdlet + [DeploymentName ]: Deployment Name + [IsValidationRequest ]: + [ObjectClass ]: Object Class enum + [ObjectId ]: GUID of the user + [ObjectIds ]: + [ReSyncOption ]: ReSync for the given entity + [ScenariosToSuppress ]: Scenarios to Suppress + [ServiceInstance ]: Service Instance of the tenant + [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csdirectobjectsync +#> +function Invoke-CsDirectObjectSync { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] + # Request body for DsSync cmdlet + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Deployment Name + ${DeploymentName}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object Class enum + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # GUID of the user + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ObjectIds}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync for the given entity + ${ReSyncOption}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Scenarios to Suppress + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Service Instance of the tenant + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Sync all the users of the tenant + ${SynchronizeTenantWithAllObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_Post'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_PostExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Post resync operation cmdlet +.Description +Post resync operation cmdlet +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request body for Resync cmdlet + [IsValidationRequest ]: + [ObjectClass ]: Object Class enum + [ObjectId ]: + [ReSyncOption ]: ReSync for the given entity + [ScenariosToSuppress ]: Scenarios to Suppress + [ServiceInstance ]: Service Instance of the tenant + [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant + [TenantId ]: TenantId GUID +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csmsodssync +#> +function Invoke-CsMsodsSync { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] + # Request body for Resync cmdlet + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object Class enum + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync for the given entity + ${ReSyncOption}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Scenarios to Suppress + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Service Instance of the tenant + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Sync all the users of the tenant + ${SynchronizeTenantWithAllObject}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # TenantId GUID + ${TenantId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_Post'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_PostExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create an AutoAttendant. +POST Teams.VoiceApps/auto-attendants. +.Description +Create an AutoAttendant. +POST Teams.VoiceApps/auto-attendants. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AuthorizedUser ]: + [CallFlow ]: + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + [CallHandlingAssociation ]: + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + [DefaultCallFlowForceListenMenuEnabled ]: + [DefaultCallFlowGreeting ]: + [DefaultCallFlowId ]: + [DefaultCallFlowName ]: + [ExclusionScopeGroupDialScopeGroupId ]: + [ExclusionScopeType ]: + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [InclusionScopeGroupDialScopeGroupId ]: + [InclusionScopeType ]: + [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: + [MainlineAttendantEnabled ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [MenuPrompt ]: + [Name ]: + [OperatorCallPriority ]: + [OperatorEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorEnableTranscription ]: + [OperatorId ]: + [OperatorType ]: + [TimeZoneId ]: + [UserNameExtension ]: + [VoiceId ]: + [VoiceResponseEnabled ]: + +CALLFLOW : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +CALLHANDLINGASSOCIATION : . + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + +DEFAULTCALLFLOWGREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendant +#> +function New-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AuthorizedUser}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + # . + # To construct, see NOTES section for CALLFLOW properties and create a hash table. + ${CallFlow}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + # . + # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. + ${CallHandlingAssociation}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${DefaultCallFlowForceListenMenuEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. + ${DefaultCallFlowGreeting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableMainlineAttendant}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableVoiceResponse}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ExclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ExclusionScopeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUser}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${InclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${InclusionScopeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LanguageId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantAgentVoiceId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TimeZoneId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserNameExtension}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${VoiceId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a callable entity draft. +POST Teams.VoiceApps/auto-attendants/callable-entities/draft. +.Description +Create a callable entity draft. +POST Teams.VoiceApps/auto-attendants/callable-entities/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallPriority ]: + [EnableSharedVoicemailSystemPromptSuppression ]: + [EnableTranscription ]: + [Id ]: + [Type ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallableentity +#> +function New-CsAutoAttendantCallableEntity { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a call flow draft. +POST Teams.VoiceApps/auto-attendants/call-flows/draft. +.Description +Create a call flow draft. +POST Teams.VoiceApps/auto-attendants/call-flows/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +GREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallflow +#> +function New-CsAutoAttendantCallFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ForceListenMenuEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for GREETING properties and create a hash table. + ${Greeting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a call handling association draft. +POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. +.Description +Create a call handling association draft. +POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallFlowId ]: + [Enabled ]: + [ScheduleId ]: + [Type ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallhandlingassociation +#> +function New-CsAutoAttendantCallHandlingAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallFlowId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${Enabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ScheduleId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a group dial scope draft. +POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +.Description +Create a group dial scope draft. +POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [GroupId ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantdialscope +#> +function New-CsAutoAttendantDialScope { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${GroupIds}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a menu draft. +POST Teams.VoiceApps/auto-attendants/menus/draft. +.Description +Create a menu draft. +POST Teams.VoiceApps/auto-attendants/menus/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [DialByNameEnabled ]: + [DirectorySearchMethod ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [Name ]: + [Prompt ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +PROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenu +#> +function New-CsAutoAttendantMenu { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DirectorySearchMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableDialByName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for PROMPT properties and create a hash table. + ${Prompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a menu option draft. +POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. +.Description +Create a menu option draft. +POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenuoption +#> +function New-CsAutoAttendantMenuOption { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Action}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AgentTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AgentTargetTagTemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${AgentTargetType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptDownloadUri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptFileName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallTargetCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${CallTargetEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${CallTargetEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallTargetId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallTargetType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DtmfResponse}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PromptActiveType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PromptTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${VoiceResponses}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a prompt draft. +POST Teams.VoiceApps/auto-attendants/prompts/draft. +.Description +Create a prompt draft. +POST Teams.VoiceApps/auto-attendants/prompts/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantprompt +#> +function New-CsAutoAttendantPrompt { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ActiveType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptDownloadUri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptFileName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TextToSpeechPrompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Starts Deployment at Scale +.Description +Starts Deployment at Scale +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + DeploymentCsv : + [UsersToNotify ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchteamsdeployment +#> +function New-CsBatchTeamsDeployment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DeploymentCsv}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UsersToNotify}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create call queue. +POST Teams.VoiceApps/callqueues. +.Description +Create call queue. +POST Teams.VoiceApps/callqueues. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +AGENT : Gets or sets the Call Queue's agents list. + [ObjectId ]: + [OptIn ]: + +BODY : CallQueue creation request DTO class. + [Agent ]: Gets or sets the Call Queue's agents list. + [ObjectId ]: + [OptIn ]: + [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. + [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on CallQueue. + [AuthorizedUser ]: Gets or sets authorized user ids. + [CallToAgentRatioThresholdBeforeOfferingCallback ]: + [CallbackEmailNotificationTarget ]: Gets or sets the callback email notification target. + [CallbackOfferAudioFilePromptResourceId ]: + [CallbackOfferTextToSpeechPrompt ]: + [CallbackRequestDtmf ]: + [ComplianceRecordingForCallQueueId ]: Gets or Sets the Id for Compliance Recording template for Callqueue. + [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on CallQueue. + [CustomAudioFileAnnouncementForCr ]: Gets or sets the custom audio file announcement for compliance recording. + [CustomAudioFileAnnouncementForCrFailure ]: Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + [DistributionList ]: Gets or sets the Call Queue's Distribution Lists. + [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [IsCallbackEnabled ]: + [LanguageId ]: Gets or sets the language Id used for TTS. + [MusicOnHoldAudioFileId ]: Gets or sets music on hold audio file id. + [Name ]: Gets or sets The Call Queue's name. + [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. + [NoAgentApplyTo ]: Determines whether NoAgentAction is to be applied to All Calls or New Calls only. + [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. + [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. + [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. + [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [NumberOfCallsInQueueBeforeOfferingCallback ]: + [OboResourceAccountId ]: Gets or sets the Obo resource account ids. + [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. + [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + [OverflowActionTarget ]: Gets or sets the target of the overflow action. + [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. + [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. + [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. + [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. + [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. + [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. + [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. + [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. + [RoutingMethod ]: Gets or sets the routing method for the Call Queue. + [ServiceLevelThresholdResponseTimeInSecond ]: + [SharedCallQueueHistoryId ]: Gets or sets the Shared Call Queue History template. + [ShiftsSchedulingGroupId ]: Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + [ShiftsTeamId ]: Gets or sets the Shifts Team to use as Call queues answer target. + [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + [TextAnnouncementForCr ]: Gets or sets the text announcement for compliance recording. + [TextAnnouncementForCrFailure ]: Gets or sets the text announcemet that is played if CR bot is unable to join the call. + [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. + [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. + [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + [TimeoutActionTarget ]: Gets or sets the target of the timeout action. + [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. + [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. + [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. + [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. + [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. + [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. + [User ]: Gets or sets the Call Queue's Users. + [WaitTimeBeforeOfferingCallbackInSecond ]: + [WelcomeMusicAudioFileId ]: Gets or sets welcome music audio file id. + [WelcomeTextToSpeechPrompt ]: Gets or sets welcome text to speech content. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscallqueue +#> +function New-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChannelUserObjectId}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest] + # CallQueue creation request DTO class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAgent[]] + # Gets or sets the Call Queue's agents list. + # To construct, see NOTES section for AGENT properties and create a hash table. + ${Agent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of seconds that a call can remain unanswered. + ${AgentAlertTime}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow agent optout on CallQueue. + ${AllowOptOut}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets authorized user ids. + ${AuthorizedUsers}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the callback email notification target. + ${CallbackEmailNotificationTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferAudioFilePromptResourceId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackRequestDtmf}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or Sets the Id for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow Conference Mode on CallQueue. + ${ConferenceMode}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording. + ${CustomAudioFileAnnouncementForCr}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Distribution Lists. + ${DistributionLists}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + ${EnableResourceAccountsForObo}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUsers}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallbackEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the language Id used for TTS. + ${LanguageId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets music on hold audio file id. + ${MusicOnHoldAudioFileId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets The Call Queue's name. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + ${NoAgentActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Determines whether NoAgentAction is to be applied to All Calls or New Calls only. + ${NoAgentApplyTo}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Obo resource account ids. + ${OboResourceAccountIds}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take when the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + ${OverflowActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of simultaneous calls that can be in the queue at any one time. + ${OverflowThreshold}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to enable presence aware routing. + ${PresenceAwareRouting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the routing method for the Call Queue. + ${RoutingMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Team to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcement for compliance recording. + ${TextAnnouncementForCr}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcemet that is played if CR bot is unable to join the call. + ${TextAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets teams channel thread id if user choose to sync CQ with a channel. + ${ThreadId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + ${TimeoutActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of minutes that a call can be in the queue before it times out. + ${TimeoutThreshold}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to use default music on hold audio file. + ${UseDefaultMusicOnHold}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Users. + ${Users}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets welcome music audio file id. + ${WelcomeMusicAudioFileId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets welcome text to speech content. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create compliance recording template POST /Teams.VoiceApps/compliance-recording. +.Description +Create compliance recording template POST /Teams.VoiceApps/compliance-recording. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request model for creating a compliance recording. + [BotId ]: Gets or sets the MRI of the first bot. + [ConcurrentInvitationCount ]: Gets or sets the number of concurrent invitations allowed. + [Description ]: Gets or sets the description of the compliance recording. + [Name ]: Gets or sets the name of the compliance recording. + [PairedApplication ]: Gets or sets the paired applications for the compliance recording bot. This is a resiliency feature that allows invitation of another bot. If either of BotMRI or the paired application is available, we will consider the call to be successful. + [RequiredBeforeCall ]: Gets or sets a value indicating whether the compliance recording is required before the call. + [RequiredDuringCall ]: Gets or sets a value indicating whether the compliance recording is required during the call. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscompliancerecordingforcallqueuetemplate +#> +function New-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueRequest] + # Request model for creating a compliance recording. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the MRI of the first bot. + ${BotApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of concurrent invitations allowed. + ${ConcurrentInvitationCount}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the compliance recording. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the compliance recording. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the paired applications for the compliance recording bot. + # This is a resiliency feature that allows invitation of another bot.If either of BotMRI or the paired application is available, we will consider the call to be successful. + ${PairedApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required before the call. + ${RequiredBeforeCall}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required during the call. + ${RequiredDuringCall}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsComplianceRecordingForCallQueueTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsComplianceRecordingForCallQueueTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create new configuration +.Description +Create new configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csconfiguration +#> +function New-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Create', Mandatory)] + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='CreateExpanded')] + [Parameter(ParameterSetName='CreateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_Create'; + CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateExpanded'; + CreateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentity'; + CreateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a policy package +.Description +Create a policy package +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +POLICYLIST : . + PolicyName : + PolicyType : +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscustompolicypackage +#> +function New-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + # . + # To construct, see NOTES section for POLICYLIST properties and create a hash table. + ${PolicyList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCustomPolicyPackage_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking. +.Description +Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ApiDefinition ]: Gets or sets the detailed definitions of the api. + [CallerAuthenticationMethod ]: Gets or sets the caller authentication method, allowed values: Sms, Email, VerificationLink, Voiceprint, UserDetails. + [Description ]: Gets or sets the description of the mainline attendant appointment booking flow. + [Name ]: Gets or sets the name of the mainline attendant appointment booking flow. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantappointmentbookingflow +#> +function New-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the api. + ${ApiDefinitions}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the caller authentication method, allowed values: Sms, Email, VerificationLink, Voiceprint, UserDetails. + ${CallerAuthenticationMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant appointment booking flow. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant appointment booking flow. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantAppointmentBookingFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantAppointmentBookingFlow_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create question and answer flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer. +.Description +Create question and answer flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [Description ]: Gets or sets the description of the mainline attendant question and answer flow. + [KnowledgeBase ]: Gets or sets the detailed definitions of the knowledge base. + [Name ]: Gets or sets the name of the mainline attendant question and answer flow. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantquestionanswerflow +#> +function New-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant question and answer flow. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantQuestionAnswerFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantQuestionAnswerFlow_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create application instance associations. +POST Teams.VoiceApps/applicationinstanceassociations. +.Description +Create application instance associations. +POST Teams.VoiceApps/applicationinstanceassociations. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallPriority ]: + [ConfigurationId ]: + [ConfigurationType ]: + [EndpointsId ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineapplicationinstanceassociation +#> +function New-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConfigurationId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConfigurationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${Identities}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a date time range draft. +POST Teams.VoiceApps/schedules/date-time-ranges/draft. +.Description +Create a date time range draft. +POST Teams.VoiceApps/schedules/date-time-ranges/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedatetimerange +#> +function New-CsOnlineDateTimeRange { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${End}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Start}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletDirectRoutingNumberCreationRequest + [Description ]: + [EndingNumber ]: + [FileContent ]: + [StartingNumber ]: + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder +#> +function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest] + # CmdletDirectRoutingNumberCreationRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${EndingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileContent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StartingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a schedule. +POST Teams.VoiceApps/schedules. +.Description +Create a schedule. +POST Teams.VoiceApps/schedules. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +FIXEDSCHEDULEDATETIMERANGE : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineschedule +#> +function New-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + # . + # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. + ${FixedScheduleDateTimeRange}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeEnd}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${RecurrenceRangeNumberOfOccurrence}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeStart}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RecurrenceRangeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleFridayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${WeeklyRecurrentScheduleIsComplemented}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleMondayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSaturdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSundayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleThursdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleTuesdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleWednesdayHour}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletReleaseOrderRequest + [EndingNumber ]: + [FileContent ]: + [StartingNumber ]: + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetelephonenumberreleaseorder +#> +function New-CsOnlineTelephoneNumberReleaseOrder { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest] + # CmdletReleaseOrderRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${EndingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileContent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StartingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a time range draft. +POST Teams.VoiceApps/schedules/time-ranges/draft. +.Description +Create a time range draft. +POST Teams.VoiceApps/schedules/time-ranges/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetimerange +#> +function New-CsOnlineTimeRange { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${End}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Start}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create New Bulk Sign in Request +.Description +Create New Bulk Sign in Request +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[] +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Array of SDGBulkSignInRequestItem + [HardwareId ]: + [UserName ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cssdgbulksigninrequest +#> +function New-CsSdgBulkSignInRequest { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Target Region where the device is located + ${TargetRegion}, + + [Parameter(Mandatory, ValueFromPipeline)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[]] + # Array of SDGBulkSignInRequestItem + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgBulkSignInRequest_New'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create shared call queue history template POST /Teams.VoiceApps/shared-call-queue-history. +.Description +Create shared call queue history template POST /Teams.VoiceApps/shared-call-queue-history. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request model for creating a shared call queue history. + [AnsweredAndOutboundCall ]: Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + [Description ]: Gets or sets the description of the shared call queue history. + [IncomingMissedCall ]: Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + [Name ]: Gets or sets the name of the shared call queue history. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cssharedcallqueuehistorytemplate +#> +function New-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryRequest] + # Request model for creating a shared call queue history. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + ${AnsweredAndOutboundCalls}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the shared call queue history. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + ${IncomingMissedCalls}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the shared call queue history. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSharedCallQueueHistoryTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSharedCallQueueHistoryTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates a draft of each Ivr Tag +.Description +Creates a draft of each Ivr Tag +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: Name of the IVR tag. This alue is used to identify which callable entity to transfer the call to. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstag +#> +function New-CsTag { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${TagDetailCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TagDetailEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TagDetailEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TagDetailId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TagDetailType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Name of the IVR tag. + # This alue is used to identify which callable entity to transfer the call to. + ${TagName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTag_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTag_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template +.Description +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Description ]: Description of the IVR tag template. + [Name ]: Gets or sets the name of the IVR tag template. + [Tag ]: List of tags associated with the IVR tag template. These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: + +TAGS : List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstagstemplate +#> +function New-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Description of the IVR tag template. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the IVR tag template. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagDtoModel[]] + # List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + # To construct, see NOTES section for TAGS properties and create a hash table. + ${Tags}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json +# open json in your favorite editor, make changes + +PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.\input.json' | Out-String) + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} +.Example +PS C:\> New-CsTeamTemplate ` +-Locale en-US ` +-DisplayName 'New Template' ` +-ShortDescription 'New Description' ` +-App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` +-Channel @{ ` + displayName="General"; ` + id="General"; ` + isFavoriteByDefault=$true; ` +}, ` +@{ ` + displayName="test"; ` + id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` + isFavoriteByDefault=$false; ` +} + + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +APP : Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + [Id ]: Gets or sets the app's ID in the global apps catalog. + +BODY : The client input for a request to create a template. Only admins from Config Api can perform this request. + DisplayName : Gets or sets the team's DisplayName. + ShortDescription : Gets or sets template short description. + [App ]: Gets or sets the set of applications that should be installed in teams created based on the template. The app catalog is the main directory for information about each app; this set is intended only as a reference. + [Id ]: Gets or sets the app's ID in the global apps catalog. + [Category ]: Gets or sets list of categories. + [Channel ]: Gets or sets the set of channel templates included in the team template. + [Description ]: Gets or sets channel description as displayed to users. + [DisplayName ]: Gets or sets channel name as displayed to users. + [Id ]: Gets or sets identifier for the channel template. + [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + [Tab ]: Gets or sets collection of tabs that should be added to the channel. + [Configuration ]: Represents the configuration of a tab. + [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. + [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. + [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. + [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. + [Id ]: Gets or sets identifier for the channel tab template. + [Key ]: Gets a unique identifier. + [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. + [Name ]: Gets or sets the tab name displayed to users. + [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. + [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. + [WebUrl ]: Gets or sets the deep link url of the tab instance. + [Classification ]: Gets or sets the team's classification. Tenant admins configure AAD with the set of possible values. + [Description ]: Gets or sets the team's Description. + [DiscoverySetting ]: Governs discoverability of a team. + ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + [FunSetting ]: Governs use of fun media like giphy and stickers in the team. + AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. + AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. + GiphyContentRating : Gets or sets the rating filter on giphy content. + [GuestSetting ]: Guest role settings for the team. + AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. + AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. + [Icon ]: Gets or sets template icon. + [IsMembershipLimitedToOwner ]: Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + [MemberSetting ]: Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + [MessagingSetting ]: Governs use of messaging features within the team These are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. + [OwnerUserObjectId ]: Gets or sets the AAD user object id of the user who should be set as the owner of the new team. Only to be used when an application or administrative user is making the request on behalf of the specified user. + [PublishedBy ]: Gets or sets published name. + [Specialization ]: The specialization or use case describing the team. Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + [TemplateId ]: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. + [Uri ]: Gets or sets uri to be used for GetTemplate api call. + [Visibility ]: Used to control the scope of users who can view a group/team and its members, and ability to join. + +CHANNEL : Gets or sets the set of channel templates included in the team template. + [Description ]: Gets or sets channel description as displayed to users. + [DisplayName ]: Gets or sets channel name as displayed to users. + [Id ]: Gets or sets identifier for the channel template. + [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + [Tab ]: Gets or sets collection of tabs that should be added to the channel. + [Configuration ]: Represents the configuration of a tab. + [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. + [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. + [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. + [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. + [Id ]: Gets or sets identifier for the channel tab template. + [Key ]: Gets a unique identifier. + [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. + [Name ]: Gets or sets the tab name displayed to users. + [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. + [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. + [WebUrl ]: Gets or sets the deep link url of the tab instance. + +DISCOVERYSETTING : Governs discoverability of a team. + ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + +FUNSETTING : Governs use of fun media like giphy and stickers in the team. + AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. + AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. + GiphyContentRating : Gets or sets the rating filter on giphy content. + +GUESTSETTING : Guest role settings for the team. + AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. + AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +MEMBERSETTING : Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + +MESSAGINGSETTING : Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csteamtemplate +#> +function New-CsTeamTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory)] + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Locale}, + + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] + # The client input for a request to create a template. + # Only admins from Config Api can perform this request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's DisplayName. + ${DisplayName}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template short description. + ${ShortDescription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] + # Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + # To construct, see NOTES section for APP properties and create a hash table. + ${App}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets list of categories. + ${Category}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] + # Gets or sets the set of channel templates included in the team template. + # To construct, see NOTES section for CHANNEL properties and create a hash table. + ${Channel}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's classification.Tenant admins configure AAD with the set of possible values. + ${Classification}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's Description. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] + # Governs discoverability of a team. + # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + ${DiscoverySetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] + # Governs use of fun media like giphy and stickers in the team. + # To construct, see NOTES section for FUNSETTING properties and create a hash table. + ${FunSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] + # Guest role settings for the team. + # To construct, see NOTES section for GUESTSETTING properties and create a hash table. + ${GuestSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template icon. + ${Icon}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + ${IsMembershipLimitedToOwner}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] + # Member role settings for the team. + # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + ${MemberSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] + # Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + ${MessagingSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the AAD user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + ${OwnerUserObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets published name. + ${PublishedBy}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + ${Specialization}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + ${TemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets uri to be used for GetTemplate api call. + ${Uri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Used to control the scope of users who can view a group/team and its members, and ability to join. + ${Visibility}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewExpanded'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentity'; + NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Invokes tenant migration +.Description +Invokes tenant migration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Payload for tenant migration + [MoveOption ]: MoveOption can take following values PrepForMove, StartDualSync, Finalize. + [TargetServiceInstance ]: Target service instance where tenant is to be migrated. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstenantcrossmigration +#> +function New-CsTenantCrossMigration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration] + # Payload for tenant migration + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # MoveOption can take following values PrepForMove, StartDualSync, Finalize. + ${MoveOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Target service instance where tenant is to be migrated. + ${TargetServiceInstance}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Adds delegate with validations in bvd +.Description +Adds delegate with validations in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csusercallingdelegate +#> +function New-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Delegate}, + + [Parameter(ParameterSetName='New', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${MakeCalls}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ManageSettings}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ReceiveCalls}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_New'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_NewViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : UpdateSearchOrderRequest + [Action ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/complete-csonlinetelephonenumberorder +#> +function Complete-CsOnlineTelephoneNumberOrder { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='CompleteExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Complete', Mandatory)] + [Parameter(ParameterSetName='CompleteExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${OrderId}, + + [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CompleteViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Complete', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CompleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest] + # UpdateSearchOrderRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='CompleteExpanded')] + [Parameter(ParameterSetName='CompleteViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Action}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Complete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_Complete'; + CompleteExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteExpanded'; + CompleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentity'; + CompleteViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Complete-CsOnlineTelephoneNumberOrder_CompleteViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get Audio file content. +GET Teams.MediaStorage/audiofile/appId/audiofileId/content +.Description +Get Audio file content. +GET Teams.MediaStorage/audiofile/appId/audiofileId/content +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/export-csonlineaudiofile +#> +function Export-CsOnlineAudioFile { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Export', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='Export', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='ExportViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Export = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_Export'; + ExportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsOnlineAudioFile_ExportViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Find group. +GET /Teams.VoiceApps/groups?. +.Description +Find group. +GET /Teams.VoiceApps/groups?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/find-csgroup +#> +function Find-CsGroup { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetGroupsResponse])] +[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to exact match on the search query or not. + ${ExactMatchOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to return only groups enabled for mail. + ${MailEnabledOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Gets or sets max results to return. + ${MaxResults}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Gets or sets search query. + ${SearchQuery}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsGroup_Find'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Search for application instances that match the search criteria. +.Description +Search for application instances that match the search criteria. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/find-csonlineapplicationinstance +#> +function Find-CsOnlineApplicationInstance { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse])] +[CmdletBinding(DefaultParameterSetName='Find', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${AssociatedOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExactMatchOnly}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IsAssociated}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${MaxResults}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SearchQuery}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${UnAssociatedOnly}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsOnlineApplicationInstance_Find'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get Tenant from AAD. +Get-CsAadTenant +.Description +Get Tenant from AAD. +Get-CsAadTenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csaadtenant +#> +function Get-CsAadTenant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadTenant_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get User. +Get-CsAadUser +.Description +Get User. +Get-CsAadUser +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csaaduser +#> +function Get-CsAadUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # identity. + # Supports UserId as Guid or UPN as String. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Gets auto attendant holidays. +GET Teams.VoiceApps/auto-attendants/identity/holidays. +.Description +Gets auto attendant holidays. +GET Teams.VoiceApps/auto-attendants/identity/holidays. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantholidays +#> +function Get-CsAutoAttendantHolidays { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantHolidaysResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${Name}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${ResponseType}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${Year}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/status/identity +.Description +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/status/identity +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3 +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantstatus +#> +function Get-CsAutoAttendantStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to retrieve. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String[]] + # . + ${IncludeResources}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get specific language information. +GET Teams.VoiceApps/supported-languages/identity. +.Description +Get specific language information. +GET Teams.VoiceApps/supported-languages/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedlanguage +#> +function Get-CsAutoAttendantSupportedLanguage { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the supported language to retrieve the information for. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get supported timezone information. +GET Teams.VoiceApps/supported-timezones/identity. +.Description +Get supported timezone information. +GET Teams.VoiceApps/supported-timezones/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendantsupportedtimezone +#> +function Get-CsAutoAttendantSupportedTimeZone { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the supported timezone to retrieve the information for. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get tenant information specific to Voice Apps by the tenant Id. +GET Teams.VoiceApps/information. +.Description +Get tenant information specific to Voice Apps by the tenant Id. +GET Teams.VoiceApps/information. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendanttenantinformation +#> +function Get-CsAutoAttendantTenantInformation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetTenantInformationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantTenantInformation_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/identity. +.Description +Get a specific auto attendant. +GET Teams.VoiceApps/auto-attendants/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csautoattendant +#> +function Get-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to retrieve. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendant_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Gets raw data from bvd tables. +.Description +Gets raw data from bvd tables. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csbusinessvoicedirectorydiagnosticdata +#> +function Get-CsBusinessVoiceDirectoryDiagnosticData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # PartitionKey of the table. + ${PartitionKey}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Region to query Bvd table. + ${Region}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Bvd table name. + ${Table}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Optional resultSize. + ${ResultSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Optional row key. + ${RowKey}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get call queues. +GET Teams.VoiceApps/callqueues?. +.Description +Get call queues. +GET Teams.VoiceApps/callqueues?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscallqueue +#> +function Get-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to filter invalid Obo from the response. + # If invalid Obos are not needed in the response set the flag to true, otherwise false. + # An obo is termed invalid when a previously associated Obo is deleted from AAD or phone number associated to the Obo is removed. + ${FilterInvalidObos}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallQueue_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. +.Description +Get all Compliance Recording Configs. +GET /Teams.VoiceApps/compliance-recording?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cscompliancerecordingforcallqueuetemplate +#> +function Get-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingsForCallQueueResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Compliance Recording Id. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsComplianceRecordingForCallQueueTemplate_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get all tenant available configurations +.Description +Get all tenant available configurations +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csconfiguration +#> +function Get-CsConfiguration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration], [System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # string + ${ConfigType}, + + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsConfiguration_GetViaIdentity1'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. +.Description +Get all Appointment Booking flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantappointmentbookingflow +#> +function Get-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantAppointmentBookingFlow_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. +.Description +Get a specific MainlineAttendantFlow Config for the given flow identity. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantflow +#> +function Get-CsMainlineAttendantFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ConfigurationId}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Type}, + + [Parameter(ParameterSetName='Get1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantFlow_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. +.Description +Get all Question Answer flows for a tenant. +GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmainlineattendantquestionanswerflow +#> +function Get-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllMainlineAttendantFlowsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetMainlineAttendantFlowResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMainlineAttendantQuestionAnswerFlow_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get requested Schema's data from MAS DB. +.Description +Get requested Schema's data from MAS DB. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata +#> +function Get-CsMasVersionedSchemaData { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Schema to get from MAS DB + ${SchemaName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Last X versions to fetch from MAS DB. + ${Version}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMasVersionedSchemaData_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get meeting migration status for a user or tenant +.Description +Get meeting migration status for a user or tenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatusmodern +#> +function Get-CsMeetingMigrationStatusModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusModern_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get meeting migration status summary for a user or tenant +.Description +Get meeting migration status summary for a user or tenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern +#> +function Get-CsMeetingMigrationStatusSummaryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, domainName LogonName + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown + ${MigrationType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # state of meeting Migration status - Pending, InProgress, Failed, Succeeded + ${State}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatusSummaryModern_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get meeting migration transaction history for a user +.Description +Get meeting migration transaction history for a user +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern +#> +function Get-CsMeetingMigrationTransactionHistoryModern { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Identity. + # Supports UPN and SIP, Aad user object Id + ${UserIdentity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # CorrelationId fetched when running start-csexmeetingmigration + ${CorrelationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # end time filter - to get meeting migration status before endtime + ${EndTime}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # start time filter - to get meeting migration status after starttime + ${StartTime}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationTransactionHistoryModern_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get Tenant's Migrationdetails. +.Description +Get Tenant's Migrationdetails. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus +#> +function Get-CsMoveTenantServiceInstanceTaskStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMoveTenantServiceInstanceTaskStatus_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +This cmdlet is point get operation on users. +.Description +This cmdlet is point get operation on users. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csodcuser +#> +function Get-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId of user. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +.Description +Get application instance association status. +GET Teams.VoiceApps/applicationinstanceassociations/identity/status. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus +#> +function Get-CsOnlineApplicationInstanceAssociationStatus { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. +.Description +Get application instance association. +GET Teams.VoiceApps/applicationinstanceassociations/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociation +#> +function Get-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +.Description +Get Audio file metedata with expiring download link. +GET api/v3/tenants/tenantId/audiofile/appId/audiofileId?durationInMins=int(default=60) +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineaudiofile +#> +function Get-CsOnlineAudioFile { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='GetViaIdentity')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${DurationInMin}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity'; + GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioFile_GetViaIdentity1'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineenhancedemergencyservicedisclaimer +#> +function Get-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Version}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineliscivicaddress +#> +function Get-CsOnlineLisCivicAddress { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. +.Description +Get all schedules for a tenant. +GET Teams.VoiceApps/schedules?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineschedule +#> +function Get-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSchedulesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to retrieve. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSchedule_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder +#> +function Get-CsOnlineTelephoneNumberOrder { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${OrderId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${OrderType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberOrder_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get Cs-OnlineVoicemailUserSettings. +.Description +Get Cs-OnlineVoicemailUserSettings. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinevmusersetting +#> +function Get-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVMUserSetting_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. +.Description +Get all Shared Call Queue History Configs. +GET /Teams.VoiceApps/shared-call-queue-history?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cssharedcallqueuehistorytemplate +#> +function Get-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAllSharedCallQueueHistoryResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Shared Call Queue History Id. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${IncludeStatus}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSharedCallQueueHistoryTemplate_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. +.Description +Get all ivr tags template for a tenant. +GET api/v1.0/tenants/tenantId/ivr-tags-template?. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstagstemplate +#> +function Get-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplatesResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get1', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Descending}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ExcludeContent}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${First}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NameFilter}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # . + ${Skip}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SortBy}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${TypeFilter}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_Get'; + Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_Get1'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTagsTemplate_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get Org Settings - Get-CsTeamsSettingsCustomApp +.Description +Get Org Settings - Get-CsTeamsSettingsCustomApp +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamssettingscustomapp +#> +function Get-CsTeamsSettingsCustomApp { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCustomAppSettingResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSettingsCustomApp_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get a list of available team templates +.Description +Get a list of available team templates +.Example +PS C:\> Get-CsTeamTemplateList + +OdataId Name ShortDescription Chann AppCo + elCou unt + nt +------- ---- ---------------- ----- ----- +/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 +/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 +/api/teamtemplates/v1.0/retailStore/Public/en-US Organize a Store Collaborate with your retail ... 3 1 +/api/teamtemplates/v1.0/retailManagerCollaboration/Public/en-US Retail - Manager Collaboration Collaborate with managers acr... 3 1 + +.Example +PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where ChannelCount -GT 3 + +OdataId Name ShortDescription Chann AppCo + elCou unt + nt +------- ---- ---------------- ----- ----- +/api/teamtemplates/v1.0/healthcareWard/Public/en-US Collaborate on Patient Care Collaborate on patient care i... 6 1 +/api/teamtemplates/v1.0/healthcareHospital/Public/en-US Hospital Facilitate collaboration with... 6 1 + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csteamtemplatelist +#> +function Get-CsTeamTemplateList { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Language and country code for localization of publicly available templates. + ${PublicTemplateLocale}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplateList_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get Tenant. +.Description +Get Tenant. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-cstenantobou +#> +function Get-CsTenantObou { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantObou_Get'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Get User. +.Description +Get User. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/get-csuser +#> +function Get-CsUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('UserId')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + # Supports Guid. + # Eventually UPN and SIP. + ${Identity}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To fetch optional location field + ${Expandlocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set includedefaultproperties value + ${Includedefaultproperty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set to true when called from Get-CsVoiceUser cmdlet + ${Voiceuserquery}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_Get'; + GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_GetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Unified group grant. +.Description +Unified group grant. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [PolicyName ]: + [Priority ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicyassignment +#> +function Grant-CsGroupPolicyAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${GroupId}, + + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${PolicyType}, + + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupGrantPayload] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Rank}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyAssignment_GrantViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Assign a policy package to a group in a tenant +.Description +Assign a policy package to a group in a tenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +POLICYRANKINGS : . + PolicyType : + Rank : +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicypackageassignment +#> +function Grant-CsGroupPolicyPackageAssignment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${GroupId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PackageName}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyRanking[]] + # . + # To construct, see NOTES section for POLICYRANKINGS properties and create a hash table. + ${PolicyRankings}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyPackageAssignment_GrantExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update single policy of a Tenant +.Description +Update single policy of a Tenant +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AdditionalParameter ]: Dictionary of + [(Any) ]: This indicates any property can be added to this object. + [ForceSwitchPresent ]: + [PolicyName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/grant-cstenantpolicy +#> +function Grant-CsTenantPolicy { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Policy Type + ${PolicyType}, + + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantTenantRequestAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ForceSwitchPresent}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantPolicy_GrantViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update single policy of a user +.Description +Update single policy of a user +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AdditionalParameter ]: Dictionary of + [(Any) ]: This indicates any property can be added to this object. + [PolicyName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/grant-csuserpolicy +#> +function Grant-CsUserPolicy { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # User Id + ${Identity}, + + [Parameter(ParameterSetName='Grant', Mandatory)] + [Parameter(ParameterSetName='GrantExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Policy Type + ${PolicyType}, + + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Grant', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GrantViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISingleGrantUserRequestAdditionalParameters]))] + [System.Collections.Hashtable] + # Dictionary of + ${AdditionalParameters}, + + [Parameter(ParameterSetName='GrantExpanded')] + [Parameter(ParameterSetName='GrantViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PolicyName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Grant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_Grant'; + GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantExpanded'; + GrantViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentity'; + GrantViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicy_GrantViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Import holidays for auto attendant. +PUT Teams.VoiceApps/auto-attendants/identity/holidays. +.Description +Import holidays for auto attendant. +PUT Teams.VoiceApps/auto-attendants/identity/holidays. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Id ]: + [SerializedHolidayRecord ]: + [TenantId ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/import-csautoattendantholidays +#> +function Import-CsAutoAttendantHolidays { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse])] +[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Import', Mandatory)] + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ImportViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ImportViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${SerializedHolidayRecord}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Parameter(ParameterSetName='ImportViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TenantId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_Import'; + ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportExpanded'; + ImportViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentity'; + ImportViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsAutoAttendantHolidays_ImportViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Store a new Audio file in MSS. +POST api/v3/tenants/tenantId/audiofile. +.Description +Store a new Audio file in MSS. +POST api/v3/tenants/tenantId/audiofile. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + ApplicationId : + Content : + OriginalFilename : + [Id ]: + [ContextId ]: + [ConvertedFilename ]: + [DeletionTimestampOffset ]: + [DownloadUri ]: + [DownloadUriExpiryTimestampOffset ]: + [Duration ]: + [LastAccessedTimestampOffset ]: + [UploadedTimestampOffset ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/import-csonlineaudiofile +#> +function Import-CsOnlineAudioFile { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] +[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Import', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantAudioFileDto] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Content}, + + [Parameter(ParameterSetName='ImportExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileName}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ContextId}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConvertedFilename}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DeletionTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DownloadUri}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${DownloadUriExpiryTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Duration}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${LastAccessedTimestampOffset}, + + [Parameter(ParameterSetName='ImportExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${UploadedTimestampOffset}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Import = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_Import'; + ImportExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Import-CsOnlineAudioFile_ImportExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Invokes Custom Handler +.Description +Invokes Custom Handler +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-cscustomhandlercallbackngtprov +#> +function Invoke-CsCustomHandlerCallBackNgtprov { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerCallBackOutput])] +[CmdletBinding(DefaultParameterSetName='Post', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Unique Id of the Handler. + ${Id}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Callback Operation. + ${Operation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # EventName for the SendEventPostURI. + ${Eventname}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerCallBackNgtprov_Post'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Post DsSync resync cmdlet +.Description +Post DsSync resync cmdlet +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request body for DsSync cmdlet + [DeploymentName ]: Deployment Name + [IsValidationRequest ]: + [ObjectClass ]: Object Class enum + [ObjectId ]: GUID of the user + [ObjectIds ]: + [ReSyncOption ]: ReSync for the given entity + [ScenariosToSuppress ]: Scenarios to Suppress + [ServiceInstance ]: Service Instance of the tenant + [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csdirectobjectsync +#> +function Invoke-CsDirectObjectSync { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] + # Request body for DsSync cmdlet + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Deployment Name + ${DeploymentName}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object Class enum + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # GUID of the user + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ObjectIds}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync for the given entity + ${ReSyncOption}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Scenarios to Suppress + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Service Instance of the tenant + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Sync all the users of the tenant + ${SynchronizeTenantWithAllObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_Post'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsDirectObjectSync_PostExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Post resync operation cmdlet +.Description +Post resync operation cmdlet +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request body for Resync cmdlet + [IsValidationRequest ]: + [ObjectClass ]: Object Class enum + [ObjectId ]: + [ReSyncOption ]: ReSync for the given entity + [ScenariosToSuppress ]: Scenarios to Suppress + [ServiceInstance ]: Service Instance of the tenant + [SynchronizeTenantWithAllObject ]: Sync all the users of the tenant + [TenantId ]: TenantId GUID +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/invoke-csmsodssync +#> +function Invoke-CsMsodsSync { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] + # Request body for Resync cmdlet + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsValidationRequest}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Object Class enum + ${ObjectClass}, + + [Parameter(ParameterSetName='PostExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ObjectId}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int64] + # ReSync for the given entity + ${ReSyncOption}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Scenarios to Suppress + ${ScenariosToSuppress}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Service Instance of the tenant + ${ServiceInstance}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Sync all the users of the tenant + ${SynchronizeTenantWithAllObject}, + + [Parameter(ParameterSetName='PostExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # TenantId GUID + ${TenantId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_Post'; + PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsMsodsSync_PostExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a callable entity draft. +POST Teams.VoiceApps/auto-attendants/callable-entities/draft. +.Description +Create a callable entity draft. +POST Teams.VoiceApps/auto-attendants/callable-entities/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallPriority ]: + [EnableSharedVoicemailSystemPromptSuppression ]: + [EnableTranscription ]: + [Id ]: + [Type ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallableentity +#> +function New-CsAutoAttendantCallableEntity { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallableEntityRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a call flow draft. +POST Teams.VoiceApps/auto-attendants/call-flows/draft. +.Description +Create a call flow draft. +POST Teams.VoiceApps/auto-attendants/call-flows/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +GREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallflow +#> +function New-CsAutoAttendantCallFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ForceListenMenuEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for GREETING properties and create a hash table. + ${Greeting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a call handling association draft. +POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. +.Description +Create a call handling association draft. +POST Teams.VoiceApps/auto-attendants/call-handling-associations/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallFlowId ]: + [Enabled ]: + [ScheduleId ]: + [Type ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallhandlingassociation +#> +function New-CsAutoAttendantCallHandlingAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallHandlingAssociationRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallFlowId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${Enabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ScheduleId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a group dial scope draft. +POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +.Description +Create a group dial scope draft. +POST Teams.VoiceApps/auto-attendants/group-dial-scopes/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [GroupId ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantdialscope +#> +function New-CsAutoAttendantDialScope { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${GroupIds}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a menu option draft. +POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. +.Description +Create a menu option draft. +POST Teams.VoiceApps/auto-attendants/menus/menu-options/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenuoption +#> +function New-CsAutoAttendantMenuOption { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuOptionRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Action}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AgentTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AgentTargetTagTemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${AgentTargetType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptDownloadUri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptFileName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallTargetCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${CallTargetEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${CallTargetEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallTargetId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallTargetType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DtmfResponse}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PromptActiveType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${PromptTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${VoiceResponses}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a menu draft. +POST Teams.VoiceApps/auto-attendants/menus/draft. +.Description +Create a menu draft. +POST Teams.VoiceApps/auto-attendants/menus/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [DialByNameEnabled ]: + [DirectorySearchMethod ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [Name ]: + [Prompt ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +PROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantmenu +#> +function New-CsAutoAttendantMenu { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DirectorySearchMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableDialByName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for PROMPT properties and create a hash table. + ${Prompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a prompt draft. +POST Teams.VoiceApps/auto-attendants/prompts/draft. +.Description +Create a prompt draft. +POST Teams.VoiceApps/auto-attendants/prompts/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantprompt +#> +function New-CsAutoAttendantPrompt { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ActiveType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptDownloadUri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptFileName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${AudioFilePromptId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TextToSpeechPrompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create an AutoAttendant. +POST Teams.VoiceApps/auto-attendants. +.Description +Create an AutoAttendant. +POST Teams.VoiceApps/auto-attendants. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AuthorizedUser ]: + [CallFlow ]: + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + [CallHandlingAssociation ]: + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + [DefaultCallFlowForceListenMenuEnabled ]: + [DefaultCallFlowGreeting ]: + [DefaultCallFlowId ]: + [DefaultCallFlowName ]: + [ExclusionScopeGroupDialScopeGroupId ]: + [ExclusionScopeType ]: + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [InclusionScopeGroupDialScopeGroupId ]: + [InclusionScopeType ]: + [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: + [MainlineAttendantEnabled ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [MenuPrompt ]: + [Name ]: + [OperatorCallPriority ]: + [OperatorEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorEnableTranscription ]: + [OperatorId ]: + [OperatorType ]: + [TimeZoneId ]: + [UserNameExtension ]: + [VoiceId ]: + [VoiceResponseEnabled ]: + +CALLFLOW : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +CALLHANDLINGASSOCIATION : . + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + +DEFAULTCALLFLOWGREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendant +#> +function New-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AuthorizedUser}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + # . + # To construct, see NOTES section for CALLFLOW properties and create a hash table. + ${CallFlow}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + # . + # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. + ${CallHandlingAssociation}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${DefaultCallFlowForceListenMenuEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. + ${DefaultCallFlowGreeting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowName}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableMainlineAttendant}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${EnableVoiceResponse}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ExclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ExclusionScopeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUser}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${InclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${InclusionScopeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LanguageId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantAgentVoiceId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TimeZoneId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserNameExtension}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${VoiceId}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Starts Deployment at Scale +.Description +Starts Deployment at Scale +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + DeploymentCsv : + [UsersToNotify ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchteamsdeployment +#> +function New-CsBatchTeamsDeployment { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DeploymentCsv}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UsersToNotify}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create call queue. +POST Teams.VoiceApps/callqueues. +.Description +Create call queue. +POST Teams.VoiceApps/callqueues. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +AGENT : Gets or sets the Call Queue's agents list. + [ObjectId ]: + [OptIn ]: + +BODY : CallQueue creation request DTO class. + [Agent ]: Gets or sets the Call Queue's agents list. + [ObjectId ]: + [OptIn ]: + [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. + [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on CallQueue. + [AuthorizedUser ]: Gets or sets authorized user ids. + [CallToAgentRatioThresholdBeforeOfferingCallback ]: + [CallbackEmailNotificationTarget ]: Gets or sets the callback email notification target. + [CallbackOfferAudioFilePromptResourceId ]: + [CallbackOfferTextToSpeechPrompt ]: + [CallbackRequestDtmf ]: + [ComplianceRecordingForCallQueueId ]: Gets or Sets the Id for Compliance Recording template for Callqueue. + [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on CallQueue. + [CustomAudioFileAnnouncementForCr ]: Gets or sets the custom audio file announcement for compliance recording. + [CustomAudioFileAnnouncementForCrFailure ]: Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + [DistributionList ]: Gets or sets the Call Queue's Distribution Lists. + [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [IsCallbackEnabled ]: + [LanguageId ]: Gets or sets the language Id used for TTS. + [MusicOnHoldAudioFileId ]: Gets or sets music on hold audio file id. + [Name ]: Gets or sets The Call Queue's name. + [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. + [NoAgentApplyTo ]: Determines whether NoAgentAction is to be applied to All Calls or New Calls only. + [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. + [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. + [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. + [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [NumberOfCallsInQueueBeforeOfferingCallback ]: + [OboResourceAccountId ]: Gets or sets the Obo resource account ids. + [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. + [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + [OverflowActionTarget ]: Gets or sets the target of the overflow action. + [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. + [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. + [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. + [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. + [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. + [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. + [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. + [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. + [RoutingMethod ]: Gets or sets the routing method for the Call Queue. + [ServiceLevelThresholdResponseTimeInSecond ]: + [SharedCallQueueHistoryId ]: Gets or sets the Shared Call Queue History template. + [ShiftsSchedulingGroupId ]: Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + [ShiftsTeamId ]: Gets or sets the Shifts Team to use as Call queues answer target. + [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + [TextAnnouncementForCr ]: Gets or sets the text announcement for compliance recording. + [TextAnnouncementForCrFailure ]: Gets or sets the text announcemet that is played if CR bot is unable to join the call. + [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. + [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. + [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + [TimeoutActionTarget ]: Gets or sets the target of the timeout action. + [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. + [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. + [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. + [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. + [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. + [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. + [User ]: Gets or sets the Call Queue's Users. + [WaitTimeBeforeOfferingCallbackInSecond ]: + [WelcomeMusicAudioFileId ]: Gets or sets welcome music audio file id. + [WelcomeTextToSpeechPrompt ]: Gets or sets welcome text to speech content. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscallqueue +#> +function New-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChannelUserObjectId}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateCallQueueRequest] + # CallQueue creation request DTO class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAgent[]] + # Gets or sets the Call Queue's agents list. + # To construct, see NOTES section for AGENT properties and create a hash table. + ${Agent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of seconds that a call can remain unanswered. + ${AgentAlertTime}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow agent optout on CallQueue. + ${AllowOptOut}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets authorized user ids. + ${AuthorizedUsers}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the callback email notification target. + ${CallbackEmailNotificationTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferAudioFilePromptResourceId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackRequestDtmf}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or Sets the Id for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow Conference Mode on CallQueue. + ${ConferenceMode}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording. + ${CustomAudioFileAnnouncementForCr}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Distribution Lists. + ${DistributionLists}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + ${EnableResourceAccountsForObo}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUsers}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallbackEnabled}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the language Id used for TTS. + ${LanguageId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets music on hold audio file id. + ${MusicOnHoldAudioFileId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets The Call Queue's name. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + ${NoAgentActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Determines whether NoAgentAction is to be applied to All Calls or New Calls only. + ${NoAgentApplyTo}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Obo resource account ids. + ${OboResourceAccountIds}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take when the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + ${OverflowActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of simultaneous calls that can be in the queue at any one time. + ${OverflowThreshold}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to enable presence aware routing. + ${PresenceAwareRouting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the routing method for the Call Queue. + ${RoutingMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Team to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcement for compliance recording. + ${TextAnnouncementForCr}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcemet that is played if CR bot is unable to join the call. + ${TextAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets teams channel thread id if user choose to sync CQ with a channel. + ${ThreadId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + ${TimeoutActionCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of minutes that a call can be in the queue before it times out. + ${TimeoutThreshold}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to use default music on hold audio file. + ${UseDefaultMusicOnHold}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Users. + ${Users}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets welcome music audio file id. + ${WelcomeMusicAudioFileId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets welcome text to speech content. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCallQueue_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create compliance recording template POST /Teams.VoiceApps/compliance-recording. +.Description +Create compliance recording template POST /Teams.VoiceApps/compliance-recording. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request model for creating a compliance recording. + [BotId ]: Gets or sets the MRI of the first bot. + [ConcurrentInvitationCount ]: Gets or sets the number of concurrent invitations allowed. + [Description ]: Gets or sets the description of the compliance recording. + [Name ]: Gets or sets the name of the compliance recording. + [PairedApplication ]: Gets or sets the paired applications for the compliance recording bot. This is a resiliency feature that allows invitation of another bot. If either of BotMRI or the paired application is available, we will consider the call to be successful. + [RequiredBeforeCall ]: Gets or sets a value indicating whether the compliance recording is required before the call. + [RequiredDuringCall ]: Gets or sets a value indicating whether the compliance recording is required during the call. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscompliancerecordingforcallqueuetemplate +#> +function New-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateComplianceRecordingForCallQueueRequest] + # Request model for creating a compliance recording. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the MRI of the first bot. + ${BotApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of concurrent invitations allowed. + ${ConcurrentInvitationCount}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the compliance recording. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the compliance recording. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the paired applications for the compliance recording bot. + # This is a resiliency feature that allows invitation of another bot.If either of BotMRI or the paired application is available, we will consider the call to be successful. + ${PairedApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required before the call. + ${RequiredBeforeCall}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required during the call. + ${RequiredDuringCall}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsComplianceRecordingForCallQueueTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsComplianceRecordingForCallQueueTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create new configuration +.Description +Create new configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csconfiguration +#> +function New-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Create', Mandatory)] + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='CreateExpanded', Mandatory)] + [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='CreateExpanded')] + [Parameter(ParameterSetName='CreateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_Create'; + CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateExpanded'; + CreateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentity'; + CreateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsConfiguration_CreateViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a policy package +.Description +Create a policy package +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +POLICYLIST : . + PolicyName : + PolicyType : +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cscustompolicypackage +#> +function New-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + # . + # To construct, see NOTES section for POLICYLIST properties and create a hash table. + ${PolicyList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCustomPolicyPackage_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking. +.Description +Create apointment booking flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ApiDefinition ]: Gets or sets the detailed definitions of the api. + [CallerAuthenticationMethod ]: Gets or sets the caller authentication method, allowed values: Sms, Email, VerificationLink, Voiceprint, UserDetails. + [Description ]: Gets or sets the description of the mainline attendant appointment booking flow. + [Name ]: Gets or sets the name of the mainline attendant appointment booking flow. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantappointmentbookingflow +#> +function New-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAppointmentBookingFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the api. + ${ApiDefinitions}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the caller authentication method, allowed values: Sms, Email, VerificationLink, Voiceprint, UserDetails. + ${CallerAuthenticationMethod}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant appointment booking flow. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant appointment booking flow. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantAppointmentBookingFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantAppointmentBookingFlow_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create question and answer flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer. +.Description +Create question and answer flow for mainline attendant POST api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [Description ]: Gets or sets the description of the mainline attendant question and answer flow. + [KnowledgeBase ]: Gets or sets the detailed definitions of the knowledge base. + [Name ]: Gets or sets the name of the mainline attendant question and answer flow. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csmainlineattendantquestionanswerflow +#> +function New-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateQuestionAnswerFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant question and answer flow. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantQuestionAnswerFlow_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsMainlineAttendantQuestionAnswerFlow_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create application instance associations. +POST Teams.VoiceApps/applicationinstanceassociations. +.Description +Create application instance associations. +POST Teams.VoiceApps/applicationinstanceassociations. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallPriority ]: + [ConfigurationId ]: + [ConfigurationType ]: + [EndpointsId ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineapplicationinstanceassociation +#> +function New-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateApplicationInstanceAssociationsRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConfigurationId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ConfigurationType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${Identities}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceAssociation_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a date time range draft. +POST Teams.VoiceApps/schedules/date-time-ranges/draft. +.Description +Create a date time range draft. +POST Teams.VoiceApps/schedules/date-time-ranges/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedatetimerange +#> +function New-CsOnlineDateTimeRange { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateDateTimeRangeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${End}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Start}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDateTimeRange_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletDirectRoutingNumberCreationRequest + [Description ]: + [EndingNumber ]: + [FileContent ]: + [StartingNumber ]: + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinedirectroutingtelephonenumberuploadorder +#> +function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletDirectRoutingNumberCreationRequest] + # CmdletDirectRoutingNumberCreationRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${EndingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileContent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StartingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a schedule. +POST Teams.VoiceApps/schedules. +.Description +Create a schedule. +POST Teams.VoiceApps/schedules. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +FIXEDSCHEDULEDATETIMERANGE : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlineschedule +#> +function New-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateScheduleRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + # . + # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. + ${FixedScheduleDateTimeRange}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeEnd}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${RecurrenceRangeNumberOfOccurrence}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeStart}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RecurrenceRangeType}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleFridayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${WeeklyRecurrentScheduleIsComplemented}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleMondayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSaturdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSundayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleThursdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleTuesdayHour}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleWednesdayHour}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineSchedule_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletReleaseOrderRequest + [EndingNumber ]: + [FileContent ]: + [StartingNumber ]: + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetelephonenumberreleaseorder +#> +function New-CsOnlineTelephoneNumberReleaseOrder { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderRequest] + # CmdletReleaseOrderRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${EndingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${FileContent}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${StartingNumber}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberReleaseOrder_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create a time range draft. +POST Teams.VoiceApps/schedules/time-ranges/draft. +.Description +Create a time range draft. +POST Teams.VoiceApps/schedules/time-ranges/draft. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csonlinetimerange +#> +function New-CsOnlineTimeRange { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTimeRangeRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${End}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Start}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTimeRange_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create New Bulk Sign in Request +.Description +Create New Bulk Sign in Request +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[] +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Array of SDGBulkSignInRequestItem + [HardwareId ]: + [UserName ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cssdgbulksigninrequest +#> +function New-CsSdgBulkSignInRequest { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInResponse])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Target Region where the device is located + ${TargetRegion}, + + [Parameter(Mandatory, ValueFromPipeline)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestItem[]] + # Array of SDGBulkSignInRequestItem + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgBulkSignInRequest_New'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Create shared call queue history template POST /Teams.VoiceApps/shared-call-queue-history. +.Description +Create shared call queue history template POST /Teams.VoiceApps/shared-call-queue-history. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Request model for creating a shared call queue history. + [AnsweredAndOutboundCall ]: Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + [Description ]: Gets or sets the description of the shared call queue history. + [IncomingMissedCall ]: Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + [Name ]: Gets or sets the name of the shared call queue history. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cssharedcallqueuehistorytemplate +#> +function New-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateSharedCallQueueHistoryRequest] + # Request model for creating a shared call queue history. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + ${AnsweredAndOutboundCalls}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the shared call queue history. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + ${IncomingMissedCalls}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the shared call queue history. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSharedCallQueueHistoryTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSharedCallQueueHistoryTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template +.Description +Creates a new IVR tags template. +POST api/v1.0/tenants/tenantId/ivr-tags-template +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Description ]: Description of the IVR tag template. + [Name ]: Gets or sets the name of the IVR tag template. + [Tag ]: List of tags associated with the IVR tag template. These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: + +TAGS : List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstagstemplate +#> +function New-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagsTemplateRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Description of the IVR tag template. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the IVR tag template. + ${Name}, + + [Parameter(ParameterSetName='NewExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagDtoModel[]] + # List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + # To construct, see NOTES section for TAGS properties and create a hash table. + ${Tags}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTagsTemplate_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Creates a draft of each Ivr Tag +.Description +Creates a draft of each Ivr Tag +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: Name of the IVR tag. This alue is used to identify which callable entity to transfer the call to. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstag +#> +function New-CsTag { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateIvrTagRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${TagDetailCallPriority}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TagDetailEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${TagDetailEnableTranscription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TagDetailId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TagDetailType}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Name of the IVR tag. + # This alue is used to identify which callable entity to transfer the call to. + ${TagName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTag_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTag_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US') > input.json +# open json in your favorite editor, make changes + +PS C:\> New-CsTeamTemplate -Locale en-US -Body (Get-Content '.\input.json' | Out-String) + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} +.Example +PS C:\> New-CsTeamTemplate ` +-Locale en-US ` +-DisplayName 'New Template' ` +-ShortDescription 'New Description' ` +-App @{id='feda49f8-b9f2-4985-90f0-dd88a8f80ee1'}, @{id='1d71218a-92ad-4254-be15-c5ab7a3e4423'} ` +-Channel @{ ` + displayName="General"; ` + id="General"; ` + isFavoriteByDefault=$true; ` +}, ` +@{ ` + displayName="test"; ` + id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` + isFavoriteByDefault=$false; ` +} + + +{ + "id": "061fe692-7da7-4f65-a57b-0472cf0045af", + "name": "New Template", + "scope": "Tenant", + "shortDescription": "New Description", + "iconUri": "https://statics.teams.cdn.office.net/evergreen-assets/teamtemplates/icons/default_tenant.svg", + "channelCount": 2, + "appCount": 2, + "modifiedOn": "2020-12-10T18:46:52.7231705Z", + "modifiedBy": "6c4445f6-a23d-473c-951d-7474d289c6b3", + "locale": "en-US", + "@odata.id": "/api/teamtemplates/v1.0/061fe692-7da7-4f65-a57b-0472cf0045af/Tenant/en-US" +} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +APP : Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + [Id ]: Gets or sets the app's ID in the global apps catalog. + +BODY : The client input for a request to create a template. Only admins from Config Api can perform this request. + DisplayName : Gets or sets the team's DisplayName. + ShortDescription : Gets or sets template short description. + [App ]: Gets or sets the set of applications that should be installed in teams created based on the template. The app catalog is the main directory for information about each app; this set is intended only as a reference. + [Id ]: Gets or sets the app's ID in the global apps catalog. + [Category ]: Gets or sets list of categories. + [Channel ]: Gets or sets the set of channel templates included in the team template. + [Description ]: Gets or sets channel description as displayed to users. + [DisplayName ]: Gets or sets channel name as displayed to users. + [Id ]: Gets or sets identifier for the channel template. + [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + [Tab ]: Gets or sets collection of tabs that should be added to the channel. + [Configuration ]: Represents the configuration of a tab. + [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. + [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. + [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. + [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. + [Id ]: Gets or sets identifier for the channel tab template. + [Key ]: Gets a unique identifier. + [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. + [Name ]: Gets or sets the tab name displayed to users. + [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. + [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. + [WebUrl ]: Gets or sets the deep link url of the tab instance. + [Classification ]: Gets or sets the team's classification. Tenant admins configure AAD with the set of possible values. + [Description ]: Gets or sets the team's Description. + [DiscoverySetting ]: Governs discoverability of a team. + ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + [FunSetting ]: Governs use of fun media like giphy and stickers in the team. + AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. + AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. + GiphyContentRating : Gets or sets the rating filter on giphy content. + [GuestSetting ]: Guest role settings for the team. + AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. + AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. + [Icon ]: Gets or sets template icon. + [IsMembershipLimitedToOwner ]: Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + [MemberSetting ]: Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + [MessagingSetting ]: Governs use of messaging features within the team These are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. + [OwnerUserObjectId ]: Gets or sets the AAD user object id of the user who should be set as the owner of the new team. Only to be used when an application or administrative user is making the request on behalf of the specified user. + [PublishedBy ]: Gets or sets published name. + [Specialization ]: The specialization or use case describing the team. Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + [TemplateId ]: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. + [Uri ]: Gets or sets uri to be used for GetTemplate api call. + [Visibility ]: Used to control the scope of users who can view a group/team and its members, and ability to join. + +CHANNEL : Gets or sets the set of channel templates included in the team template. + [Description ]: Gets or sets channel description as displayed to users. + [DisplayName ]: Gets or sets channel name as displayed to users. + [Id ]: Gets or sets identifier for the channel template. + [IsFavoriteByDefault ]: Gets or sets a value indicating whether whether new members of the team should automatically favorite the channel, pinning it for visibility in the UI and using resources to make switching to the channel faster. + [Tab ]: Gets or sets collection of tabs that should be added to the channel. + [Configuration ]: Represents the configuration of a tab. + [ContentUrl ]: Gets or sets the Url used for rendering tab contents in Teams. + [EntityId ]: Gets or sets the identifier for the entity hosted by the tab provider. + [RemoveUrl ]: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. + [WebsiteUrl ]: Gets or sets the Url for showing tab contents outside of Teams. + [Id ]: Gets or sets identifier for the channel tab template. + [Key ]: Gets a unique identifier. + [MessageId ]: Gets or sets id used to identify the chat message associated with the tab. + [Name ]: Gets or sets the tab name displayed to users. + [SortOrderIndex ]: Gets or sets index of the order used for sorting tabs. + [TeamsAppId ]: Gets or sets the app's id in the global apps catalog. + [WebUrl ]: Gets or sets the deep link url of the tab instance. + +DISCOVERYSETTING : Governs discoverability of a team. + ShowInTeamsSearchAndSuggestion : Gets or sets value indicating if team is visible within search and suggestions in Teams clients. + +FUNSETTING : Governs use of fun media like giphy and stickers in the team. + AllowCustomMeme : Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. + AllowGiphy : Gets or sets a value indicating whether users can post giphy content in team conversations. + AllowStickersAndMeme : Gets or sets a value indicating whether users can post stickers and memes in team conversations. + GiphyContentRating : Gets or sets the rating filter on giphy content. + +GUESTSETTING : Guest role settings for the team. + AllowCreateUpdateChannel : Gets or sets a value indicating whether guests can create or edit channels in the team. + AllowDeleteChannel : Gets or sets a value indicating whether guests can delete team channels. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +MEMBERSETTING : Member role settings for the team. + AllowAddRemoveApp : Gets or sets a value indicating whether members can add or remove apps in the team. + AllowCreatePrivateChannel : Gets or Sets a value indicating whether members can create Private channels. + AllowCreateUpdateChannel : Gets or sets a value indicating whether members can create or edit channels in the team. + AllowCreateUpdateRemoveConnector : Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. + AllowCreateUpdateRemoveTab : Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. + AllowDeleteChannel : Gets or sets a value indicating whether members can delete team channels. + UploadCustomApp : Gets or sets a value indicating is allowed to upload custom apps. + +MESSAGINGSETTING : Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + AllowChannelMention : Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. + AllowOwnerDeleteMessage : Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. + AllowTeamMention : Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. + AllowUserDeleteMessage : Gets or sets a value indicating whether team members can delete their own messages in team conversations. + AllowUserEditMessage : Gets or sets a value indicating whether team members can edit their own messages in team conversations. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csteamtemplate +#> +function New-CsTeamTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory)] + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Locale}, + + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] + # The client input for a request to create a template. + # Only admins from Config Api can perform this request. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's DisplayName. + ${DisplayName}, + + [Parameter(ParameterSetName='NewExpanded', Mandatory)] + [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template short description. + ${ShortDescription}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] + # Gets or sets the set of applications that should be installed in teams created based on the template.The app catalog is the main directory for information about each app; this set is intended only as a reference. + # To construct, see NOTES section for APP properties and create a hash table. + ${App}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets list of categories. + ${Category}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] + # Gets or sets the set of channel templates included in the team template. + # To construct, see NOTES section for CHANNEL properties and create a hash table. + ${Channel}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's classification.Tenant admins configure AAD with the set of possible values. + ${Classification}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the team's Description. + ${Description}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] + # Governs discoverability of a team. + # To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. + ${DiscoverySetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings] + # Governs use of fun media like giphy and stickers in the team. + # To construct, see NOTES section for FUNSETTING properties and create a hash table. + ${FunSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings] + # Guest role settings for the team. + # To construct, see NOTES section for GUESTSETTING properties and create a hash table. + ${GuestSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets template icon. + ${Icon}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets whether to limit the membership of the team to owners in the AAD group until an owner "activates" the team. + ${IsMembershipLimitedToOwner}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] + # Member role settings for the team. + # To construct, see NOTES section for MEMBERSETTING properties and create a hash table. + ${MemberSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings] + # Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. + # To construct, see NOTES section for MESSAGINGSETTING properties and create a hash table. + ${MessagingSetting}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the AAD user object id of the user who should be set as the owner of the new team.Only to be used when an application or administrative user is making the request on behalf of the specified user. + ${OwnerUserObjectId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets published name. + ${PublishedBy}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The specialization or use case describing the team.Used for telemetry/BI, part of the team context exposed to app developers, and for legacy implementations of differentiated features for education. + ${Specialization}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the id of the base template for the team.Either a Microsoft base template or a custom template. + ${TemplateId}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets uri to be used for GetTemplate api call. + ${Uri}, + + [Parameter(ParameterSetName='NewExpanded')] + [Parameter(ParameterSetName='NewViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Used to control the scope of users who can view a group/team and its members, and ability to join. + ${Visibility}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewExpanded'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentity'; + NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamTemplate_NewViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Invokes tenant migration +.Description +Invokes tenant migration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Payload for tenant migration + [MoveOption ]: MoveOption can take following values PrepForMove, StartDualSync, Finalize. + [TargetServiceInstance ]: Target service instance where tenant is to be migrated. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-cstenantcrossmigration +#> +function New-CsTenantCrossMigration { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigrationResult])] +[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantMigration] + # Payload for tenant migration + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # MoveOption can take following values PrepForMove, StartDualSync, Finalize. + ${MoveOption}, + + [Parameter(ParameterSetName='NewExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Target service instance where tenant is to be migrated. + ${TargetServiceInstance}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_New'; + NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantCrossMigration_NewExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Adds delegate with validations in bvd +.Description +Adds delegate with validations in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/new-csusercallingdelegate +#> +function New-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='New', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Delegate}, + + [Parameter(ParameterSetName='New', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${MakeCalls}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ManageSettings}, + + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${ReceiveCalls}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_New'; + NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsUserCallingDelegate_NewViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Assigns a service number to a bridge. +.Description +Assigns a service number to a bridge. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Class representing ConferencingServiceNumber. + [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. + [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. + [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. + [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". + [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". + [Type ]: Gets or sets defines the number type Toll/Toll-Free. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/register-csodcservicenumber +#> +function Register-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='RegisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Register', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Service number to be assigned to a bridge. + # The service number in E.164 format, e.g. + # +14251112222 or tel:+14251112222. + ${Identity}, + + [Parameter(ParameterSetName='RegisterViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge identifier to assign the service numbers to. + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge name to assign the service numbers. + ${BridgeName}, + + [Parameter(ParameterSetName='Register1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] + # Class representing ConferencingServiceNumber. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + ${BridgeId1}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Geocode where the ServiceNumber is intended to be used. + ${City}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the number is shared between multiple tenants. + # If this is the casethen tenant admins will be unable to edit the number. + ${IsShared}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the 11 digit number identifying the ServiceNumber. + ${Number}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the primary language of the ServiceNumber. + # e.g.: "en-US". + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of secondary languages of the ServiceNumber. + # e.g.: "fr-FR","en-GB","en-IN". + ${SecondaryLanguage}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets defines the number type Toll/Toll-Free. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Register = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register'; + Register1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register1'; + RegisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterExpanded'; + RegisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Deletes a specific AutoAttendant. +DELETE Teams.VoiceApps/auto-attendants/identity. +.Description +Deletes a specific AutoAttendant. +DELETE Teams.VoiceApps/auto-attendants/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csautoattendant +#> +function Remove-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be removed. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Remove call queue. +DELETE Teams.VoiceApps/callqueues/identity. +.Description +Remove call queue. +DELETE Teams.VoiceApps/callqueues/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscallqueue +#> +function Remove-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. +.Description +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscompliancerecordingforcallqueuetemplate +#> +function Remove-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete Configuration +.Description +Delete Configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration +#> +function Remove-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_Delete'; + DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_DeleteViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. +.Description +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantappointmentbookingflow +#> +function Remove-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantAppointmentBookingFlow_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantAppointmentBookingFlow_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. +.Description +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantquestionanswerflow +#> +function Remove-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantQuestionAnswerFlow_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantQuestionAnswerFlow_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Remove application instance associations. +DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +.Description +Remove application instance associations. +DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineapplicationinstanceassociation +#> +function Remove-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Application instance Id. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete an audio file stored in MSS. +DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId +.Description +Delete an audio file stored in MSS. +DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineaudiofile +#> +function Remove-CsOnlineAudioFile { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Deletes a specific schedule. +DELETE Teams.VoiceApps/schedules/identity. +.Description +Deletes a specific schedule. +DELETE Teams.VoiceApps/schedules/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineschedule +#> +function Remove-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to be removed. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletReleaseRequest + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlinetelephonenumberprivate +#> +function Remove-CsOnlineTelephoneNumberPrivate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest] + # CmdletReleaseRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_Remove'; + RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_RemoveExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csphonenumberassignment +#> +function Remove-CsPhoneNumberAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Notify}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${RemoveAll}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete Shared Call Queue History config. +DELETE /Teams.VoiceApps/shared-call-queue-history/identity. +.Description +Delete Shared Call Queue History config. +DELETE /Teams.VoiceApps/shared-call-queue-history/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cssharedcallqueuehistorytemplate +#> +function Remove-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsSharedCallQueueHistoryTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsSharedCallQueueHistoryTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Delete IVR Tags Template. +DELETE api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Description +Delete IVR Tags Template. +DELETE api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cstagstemplate +#> +function Remove-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTagsTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTagsTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Removes delegate in bvd +.Description +Removes delegate in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csusercallingdelegate +#> +function Remove-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Delegate}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Searches a tenant for ODC users. +.Description +Searches a tenant for ODC users. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/search-csodcuser +#> +function Search-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Page Size. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # To set the number of users to be fetched + ${Top}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsOdcUser_Search'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Searches a tenant for users. +.Description +Searches a tenant for users. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/search-csuser +#> +function Search-CsUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To fetch optional location field + ${Expandlocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # MS Graph like query filters + ${Filter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set includedefaultproperties value + ${Includedefaultproperty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # This parameter supports query to sort the results. + ${OrderBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Page Size. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Powershell like query filters + ${Psfilter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To be set true when called to only fetch Soft deleted users + ${Softdeleteduser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # To set the number of users to be fetched + ${Top}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set to true when called from Get-CsVoiceUser cmdlet + ${Voiceuserquery}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsUser_Search'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Updates a specific AutoAttendant. +PUT Teams.VoiceApps/auto-attendants/identity. +.Description +Updates a specific AutoAttendant. +PUT Teams.VoiceApps/auto-attendants/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApplicationInstance ]: + [AuthorizedUser ]: + [CallFlow ]: + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + [CallHandlingAssociation ]: + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + [DefaultCallFlowForceListenMenuEnabled ]: + [DefaultCallFlowGreeting ]: + [DefaultCallFlowId ]: + [DefaultCallFlowName ]: + [DialByNameResourceId ]: + [ExclusionScopeGroupDialScopeGroupId ]: + [ExclusionScopeType ]: + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [Id ]: + [InclusionScopeGroupDialScopeGroupId ]: + [InclusionScopeType ]: + [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: + [MainlineAttendantEnabled ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [MenuPrompt ]: + [Name ]: + [OperatorCallPriority ]: + [OperatorEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorEnableTranscription ]: + [OperatorId ]: + [OperatorSharedVoicemailCallPriority ]: + [OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorSharedVoicemailEnableTranscription ]: + [OperatorSharedVoicemailId ]: + [OperatorSharedVoicemailType ]: + [OperatorType ]: + [Schedule ]: + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + [Status ]: + [AuxiliaryData ]: Get or sets auxiliary data. + [ErrorCode ]: Gets or sets error code of audio, grammar. + [Id ]: Gets or sets dialByNameGrammarContext. + [Message ]: Gets or sets error meessage of audio, grammar. + [Status ]: Gets or sets resource status of autoattendant. + [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. + [Type ]: Gets or sets resource type of autoattendant. + [TenantId ]: + [TimeZoneId ]: + [UserNameExtension ]: + [VoiceId ]: + [VoiceResponseEnabled ]: + +CALLFLOW : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +CALLHANDLINGASSOCIATION : . + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + +DEFAULTCALLFLOWGREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +SCHEDULE : . + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +STATUS : . + [AuxiliaryData ]: Get or sets auxiliary data. + [ErrorCode ]: Gets or sets error code of audio, grammar. + [Id ]: Gets or sets dialByNameGrammarContext. + [Message ]: Gets or sets error meessage of audio, grammar. + [Status ]: Gets or sets resource status of autoattendant. + [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. + [Type ]: Gets or sets resource type of autoattendant. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csautoattendant +#> +function Set-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be updated. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ApplicationInstance}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AuthorizedUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + # . + # To construct, see NOTES section for CALLFLOW properties and create a hash table. + ${CallFlow}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + # . + # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. + ${CallHandlingAssociation}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${DefaultCallFlowForceListenMenuEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. + ${DefaultCallFlowGreeting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DialByNameResourceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ExclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ExclusionScopeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${InclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${InclusionScopeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LanguageId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantAgentVoiceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MainlineAttendantEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorSharedVoicemailCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorSharedVoicemailEnableTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorSharedVoicemailId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorSharedVoicemailType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule[]] + # . + # To construct, see NOTES section for SCHEDULE properties and create a hash table. + ${Schedule}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord2[]] + # . + # To construct, see NOTES section for STATUS properties and create a hash table. + ${Status}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TenantId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TimeZoneId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserNameExtension}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${VoiceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${VoiceResponseEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update call queue. +PUT Teams.VoiceApps/callqueues/identity. +.Description +Update call queue. +PUT Teams.VoiceApps/callqueues/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CallQueue modify request DTO class. + [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. + [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on Call Queue. + [AuthorizedUser ]: Gets or sets authorized user ids. + [CallToAgentRatioThresholdBeforeOfferingCallback ]: + [CallbackEmailNotificationTarget ]: Gets or sets the target of the callback email notification target. + [CallbackOfferAudioFilePromptResourceId ]: + [CallbackOfferTextToSpeechPrompt ]: + [CallbackRequestDtmf ]: + [ComplianceRecordingForCallQueueId ]: Gets or Sets the Id for Compliance Recording template for Callqueue. + [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on Call Queue. + [CustomAudioFileAnnouncementForCr ]: Gets or sets the custom audio file announcement for compliance recording. + [CustomAudioFileAnnouncementForCrFailure ]: Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + [DistributionList ]: Gets or sets the Call Queue's Distribution List. + [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [IsCallbackEnabled ]: + [LanguageId ]: Gets or sets the language Id used for TTS. + [MusicOnHoldAudioFileId ]: Gets or sets the call flows for the auto attendant app endpoint. + [Name ]: Gets or sets the Call Queue's name. + [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. + [NoAgentApplyTo ]: Determines whether NoAgent Action is applied to All Calls or to new calls only. + [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. + [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. + [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. + [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [NumberOfCallsInQueueBeforeOfferingCallback ]: + [OboResourceAccountId ]: Gets or sets the list of Obo resource account ids. + [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. + [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + [OverflowActionTarget ]: Gets or sets the target of the overflow action. + [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. + [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. + [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. + [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. + [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. + [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. + [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. + [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. + [RoutingMethod ]: Gets or sets the routing method for the Call Queue. + [ServiceLevelThresholdResponseTimeInSecond ]: + [SharedCallQueueHistoryId ]: Gets or sets the Shared Call Queue History template. + [ShiftsSchedulingGroupId ]: Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + [ShiftsTeamId ]: Gets or sets the Shifts Team to use as Call queues answer target. + [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + [TextAnnouncementForCr ]: Gets or sets the text announcement for compliance recording. + [TextAnnouncementForCrFailure ]: Gets or sets the text announcemet that is played if CR bot is unable to join the call. + [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. + [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. + [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + [TimeoutActionTarget ]: Gets or sets the target of the timeout action. + [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. + [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. + [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. + [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. + [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. + [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. + [User ]: Gets or sets the Call Queue's Users. + [WaitTimeBeforeOfferingCallbackInSecond ]: + [WelcomeMusicAudioFileId ]: Gets or sets the welcome audio file to play for the call queue. + [WelcomeTextToSpeechPrompt ]: Gets or sets the welcome text to speech content for the call queue. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cscallqueue +#> +function Set-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChannelUserObjectId}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest] + # CallQueue modify request DTO class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of seconds that a call can remain unanswered. + ${AgentAlertTime}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow agent optout on Call Queue. + ${AllowOptOut}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets authorized user ids. + ${AuthorizedUsers}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the callback email notification target. + ${CallbackEmailNotificationTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferAudioFilePromptResourceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackRequestDtmf}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or Sets the Id for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow Conference Mode on Call Queue. + ${ConferenceMode}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording. + ${CustomAudioFileAnnouncementForCr}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Distribution List. + ${DistributionLists}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + ${EnableResourceAccountsForObo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUsers}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallbackEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the language Id used for TTS. + ${LanguageId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the call flows for the auto attendant app endpoint. + ${MusicOnHoldAudioFileId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Call Queue's name. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + ${NoAgentActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Determines whether NoAgent Action is applied to All Calls or to new calls only. + ${NoAgentApplyTo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of Obo resource account ids. + ${OboResourceAccountIds}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take when the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + ${OverflowActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of simultaneous calls that can be in the queue at any one time. + ${OverflowThreshold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to enable presence aware routing. + ${PresenceAwareRouting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the routing method for the Call Queue. + ${RoutingMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Team to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcement for compliance recording. + ${TextAnnouncementForCr}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcemet that is played if CR bot is unable to join the call. + ${TextAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets teams channel thread id if user choose to sync CQ with a channel. + ${ThreadId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + ${TimeoutActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of minutes that a call can be in the queue before it times out. + ${TimeoutThreshold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to use default music on hold audio file. + ${UseDefaultMusicOnHold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Users. + ${Users}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the welcome audio file to play for the call queue. + ${WelcomeMusicAudioFileId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the welcome text to speech content for the call queue. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update compliance recording template. +PUT /Teams.VoiceApps/compliance-recording/identity. +.Description +Update compliance recording template. +PUT /Teams.VoiceApps/compliance-recording/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IComplianceRecordingForCallQueueDtoModel +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateComplianceRecordingForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [BotId ]: Gets or sets the MRI of the first bot. + [ConcurrentInvitationCount ]: Gets or sets the number of concurrent invitations allowed. Concurrent invitations are used to send multiple invites to the CR bot. + [Description ]: Gets or sets the description of the compliance recording. + [Id ]: Gets or sets the identifier of the compliance recording. + [Name ]: Gets or sets the name of the compliance recording. + [PairedApplication ]: Gets or sets the paired applications for the compliance recording bot. This is a resiliency feature that allows invitation of another bot. If either of BotMRI or the paired application is available, we will consider the call to be successful. + [RequiredBeforeCall ]: Gets or sets a value indicating whether the compliance recording is required before the call. + [RequiredDuringCall ]: Gets or sets a value indicating whether the compliance recording is required during the call. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cscompliancerecordingforcallqueuetemplate +#> +function Set-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The identity of the compliance recording configuration. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IComplianceRecordingForCallQueueDtoModel] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the MRI of the first bot. + ${BotApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of concurrent invitations allowed. + # Concurrent invitations are used to send multiple invites to the CR bot. + ${ConcurrentInvitationCount}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the compliance recording. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the identifier of the compliance recording. + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the compliance recording. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the paired applications for the compliance recording bot. + # This is a resiliency feature that allows invitation of another bot.If either of BotMRI or the paired application is available, we will consider the call to be successful. + ${PairedApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required before the call. + ${RequiredBeforeCall}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required during the call. + ${RequiredDuringCall}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update configuration +.Description +Update configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csconfiguration +#> +function Set-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update appointment booking flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking/identity +.Description +Update appointment booking flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking/identity +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Represents a request to update a mainline attendant appointment booking flow. + [ApiAuthenticationType ]: Defines the type of API authentication to be used. Supported values include: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ApiDefinition ]: Contains detailed specifications or schema definitions for the API. + [CallerAuthenticationMethod ]: Specifies the method used to authenticate the caller. Supported values include: Sms, Email, VerificationLink, Voiceprint, UserDetails. + [ConfigurationId ]: Gets or sets the configuration ID of the mainline attendant appointment booking flow. + [Description ]: A brief description of the appointment booking flow. + [Identity ]: The unique identifier for the appointment booking flow. + [Name ]: The name assigned to the appointment booking flow. + [Type ]: The type of the mainline attendant flow. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csmainlineattendantappointmentbookingflow +#> +function Set-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Flow Identity. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowRequest] + # Represents a request to update a mainline attendant appointment booking flow. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Defines the type of API authentication to be used.Supported values include: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Contains detailed specifications or schema definitions for the API. + ${ApiDefinitions}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Specifies the method used to authenticate the caller.Supported values include: Sms, Email, VerificationLink, Voiceprint, UserDetails. + ${CallerAuthenticationMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the configuration ID of the mainline attendant appointment booking flow. + ${ConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the appointment booking flow. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The unique identifier for the appointment booking flow. + ${Identity1}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The name assigned to the appointment booking flow. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The type of the mainline attendant flow. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update question and answer flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer/identity +.Description +Update question and answer flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer/identity +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ConfigurationId ]: Gets or sets the configuration ID of the mainline attendant question and answer flow. + [Description ]: Gets or sets the description of the mainline attendant question and answer flow. + [Identity ]: A brief description of the question and answer flow. + [KnowledgeBase ]: Gets or sets the detailed definitions of the knowledge base. + [Name ]: Gets or sets the name of the mainline attendant question and answer flow. + [Type ]: A brief description of the question and answer flow. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csmainlineattendantquestionanswerflow +#> +function Set-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Flow Identity. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the configuration ID of the mainline attendant question and answer flow. + ${ConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the question and answer flow. + ${Identity1}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant question and answer flow. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the question and answer flow. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Sets a bridge using unique id. +This api is also used for Instance query. +.Description +Sets a bridge using unique id. +This api is also used for Instance query. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Update Conferencing Bridge Default Service number, or make it tenant's default bridge. + [DefaultServiceNumber ]: Gets or sets service number to be updated as new default number of bridge. + [Name ]: Gets or sets name of the bridge. This can only be used when user sets the bridge using instance. + [SetDefault ]: Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcbridge +#> +function Set-CsOdcBridge { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the bridge. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set1', Mandatory)] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Name of the bridge. + ${Name}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Set1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest] + # Update Conferencing Bridge Default Service number, or make it tenant's default bridge. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets service number to be updated as new default number of bridge. + ${DefaultServiceNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. + ${SetDefault}, + + [Parameter(ParameterSetName='SetExpanded1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets name of the bridge. + # This can only be used when user sets the bridge using instance. + ${Name1}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set'; + Set1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set1'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded'; + SetExpanded1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded1'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Set service number by unique id. +.Description +Set service number by unique id. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Update Conferencing Service number. + [PrimaryLanguage ]: The primary language CAA should use to service this call, e.g. en-US, en-GB etc. + [RestoreDefaultLanguage ]: Switch to indicate that the Primary and Secondary languages should be set to the default values. + [SecondaryLanguage ]: The list of secondary languages CAA should use to service this call. Number of secondary languages is limited to a max of 4. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcservicenumber +#> +function Set-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the service number. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest] + # Update Conferencing Service number. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The primary language CAA should use to service this call, e.g. + # en-US, en-GB etc. + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Switch to indicate that the Primary and Secondary languages should be set to the default values. + ${RestoreDefaultLanguages}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # The list of secondary languages CAA should use to service this call. + # Number of secondary languages is limited to a max of 4. + ${SecondaryLanguages}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +.Description +This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : User data to be sent. + [AllowTollFreeDialIn ]: Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number. TODO: This is not a Switch parameter. + [BridgeId ]: Gets or sets the bridge identifier. + [BridgeName ]: Gets or sets the bridge name. + [ResetLeaderPin ]: Gets or sets a value indicating whether or not to reset the leader pin. TODO: This is a Switch parameter. + [SendEmail ]: Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off. TODO: This is a switch parameter. + [SendEmailToAddress ]: Gets or sets a value indicating To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. + [ServiceNumber ]: Gets or sets the service number to set as the user's default bridge number. + [TollFreeServiceNumber ]: Gets or sets the toll-free service number to set as the user's default toll-free service number. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcuser +#> +function Set-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the user. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData] + # User data to be sent. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number.TODO: This is not a Switch parameter. + ${AllowTollFreeDialIn}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the bridge identifier. + ${BridgeId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the bridge name. + ${BridgeName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether or not to reset the leader pin.TODO: This is a Switch parameter. + ${ResetLeaderPin}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off.TODO: This is a switch parameter. + ${SendEmail}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets a value indicating To Address to send the email that contains the Audio Conference information.This parameter must be used together with -SendEmail. + ${SendEmailToAddress}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the service number to set as the user's default bridge number. + ${ServiceNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the toll-free service number to set as the user's default toll-free service number. + ${TollFreeServiceNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Content ]: + [Country ]: + [ForceAccept ]: + [Locale ]: + [RespondedByObjectId ]: + [Response ]: + [ResponseTimestamp ]: + [Version ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineenhancedemergencyservicedisclaimer +#> +function Set-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Content}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ForceAccept}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Locale}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RespondedByObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Response}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${ResponseTimestamp}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Version}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_SetExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Updates a specific schedule. +PUT Teams.VoiceApps/schedules/identity. +.Description +Updates a specific schedule. +PUT Teams.VoiceApps/schedules/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +FIXEDSCHEDULEDATETIMERANGE : . + [End ]: + [Start ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineschedule +#> +function Set-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to be updated. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AssociatedConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + # . + # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. + ${FixedScheduleDateTimeRange}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeEnd}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${RecurrenceRangeNumberOfOccurrence}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeStart}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RecurrenceRangeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Type}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleFridayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${WeeklyRecurrentScheduleIsComplemented}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleMondayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSaturdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSundayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleThursdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleTuesdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleWednesdayHour}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Enable or Disable Tenant VerifiedSipDomains. +.Description +Enable or Disable Tenant VerifiedSipDomains. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : The request to update an tenant sip domain. + [Action ]: Action enable or disable domain. + [DomainName ]: Domain Name. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinesipdomain +#> +function Set-CsOnlineSipDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest] + # The request to update an tenant sip domain. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Action enable or disable domain. + ${Action}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Domain Name. + ${DomainName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_SetExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Put OnlineVoicemailUserSettings. +.Description +Put OnlineVoicemailUserSettings. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : User Voicemail Settings base class. + [CallAnswerRule ]: Gets or sets CallAnswerRule. + [DefaultGreetingPromptOverwrite ]: Gets or sets DefaultGreetingPromptOverwrite. + [DefaultOofGreetingPromptOverwrite ]: Gets or sets DefaultOofGreetingPromptOverwrite. + [OofGreetingEnabled ]: Gets or sets a value indicating whether Out of Office Greeting is enabled. + [OofGreetingFollowAutomaticRepliesEnabled ]: Gets or sets a value indicating whether Out of Office Greeting Automatic Replies are enabled. + [PromptLanguage ]: Gets or sets prompt language. + [ShareData ]: Gets or sets a value indicating whether ShareData is enabled. + [TransferTarget ]: Gets or sets TransferTarget. + [VoicemailEnabled ]: Gets or sets a value indicating whether voicemail is enabled. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinevmusersetting +#> +function Set-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings] + # User Voicemail Settings base class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets CallAnswerRule. + ${CallAnswerRule}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets DefaultGreetingPromptOverwrite. + ${DefaultGreetingPromptOverwrite}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets DefaultOofGreetingPromptOverwrite. + ${DefaultOofGreetingPromptOverwrite}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether Out of Office Greetingis enabled. + ${OofGreetingEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether Out of Office GreetingAutomatic Replies are enabled. + ${OofGreetingFollowAutomaticRepliesEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets prompt language. + ${PromptLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether ShareDatais enabled. + ${ShareData}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets TransferTarget. + ${TransferTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether voicemail is enabled. + ${VoicemailEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Add/Update user personal attendant settings in uss +.Description +Add/Update user personal attendant settings in uss +.Example + + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AllowInboundFederatedCalls ]: + [AllowInboundInternalCalls ]: + [AllowInboundPSTNCalls ]: + [BookingCalendarId ]: + [CalleeName ]: + [DefaultLanguage ]: + [DefaultTone ]: + [DefaultVoice ]: + [IsAutomaticRecordingEnabled ]: + [IsAutomaticTranscriptionEnabled ]: + [IsBookingCalendarEnabled ]: + [IsCallScreeningEnabled ]: + [IsNonContactCallbackEnabled ]: + [IsPersonalAttendantEnabled ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cspersonalattendantsettings +#> +function Set-CsPersonalAttendantSettings { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundFederatedCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundInternalCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundPSTNCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CalleeName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultTone}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultVoice}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsAutomaticRecordingEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsAutomaticTranscriptionEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsBookingCalendarEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallScreeningEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsNonContactCallbackEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsPersonalAttendantEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csphonenumberassignment +#> +function Set-CsPhoneNumberAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${AssignmentCategory}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${EnterpriseVoiceEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NetworkSiteId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Notify}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ReverseNumberLookup}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberAssignment_Set'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update shared call queue history template. +PUT /Teams.VoiceApps/shared-call-queue-history/identity. +.Description +Update shared call queue history template. +PUT /Teams.VoiceApps/shared-call-queue-history/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISharedCallQueueHistoryDtoModel +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateSharedCallQueueHistoryResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AnsweredAndOutboundCall ]: Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + [Description ]: Gets or sets the description of the shared call queue history. + [Id ]: Gets or sets the identifier of the shared call queue history. + [IncomingMissedCall ]: Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + [Name ]: Gets or sets the name of the shared call queue history. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cssharedcallqueuehistorytemplate +#> +function Set-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The identity of the shared call queue history configuration. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISharedCallQueueHistoryDtoModel] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + ${AnsweredAndOutboundCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the shared call queue history. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the identifier of the shared call queue history. + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + ${IncomingMissedCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the shared call queue history. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Description +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateIvrTagsTemplateResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Description ]: Description of the IVR tag template. + [Id ]: Gets or sets the unique identifier for the IVR tag template. This is used to link the IVR tag template to an AutoAttendant. + [Name ]: Gets or sets the name of the IVR tag template. + [Tag ]: List of tags associated with the IVR tag template. These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +TAG : List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cstagstemplate +#> +function Set-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Description of the IVR tag template. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the unique identifier for the IVR tag template. + # This is used to link the IVR tag template to an AutoAttendant. + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the IVR tag template. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagDtoModel[]] + # List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + # To construct, see NOTES section for TAG properties and create a hash table. + ${Tag}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Set Org Settings - Set-CsTeamsSettingsCustomApp +.Description +Set Org Settings - Set-CsTeamsSettingsCustomApp +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +APPACCESSREQUESTCONFIG : . + [AdminInstructionMessage ]: Admin instructions for app access requests. + [ApprovalPortalUrl ]: Tenant's approval portal URL for app access requests. + +APPSETTINGSLIST : List of appSettings. + [Context ]: App context. + [Id ]: App Id. + [IsAppLevelAutoInstallEnabled ]: Auto Installation of app is enabled or not. + [IsEnabled ]: App is enabled or not. + +BODY : . + [AppAccessRequestConfig ]: + [AdminInstructionMessage ]: Admin instructions for app access requests. + [ApprovalPortalUrl ]: Tenant's approval portal URL for app access requests. + [AppSettingsList ]: List of appSettings. + [Context ]: App context. + [Id ]: App Id. + [IsAppLevelAutoInstallEnabled ]: Auto Installation of app is enabled or not. + [IsEnabled ]: App is enabled or not. + [IsAppsEnabled ]: Setting to indicate external apps enabled or not. + [IsAppsPurchaseEnabled ]: Setting to indicate purchase external apps enabled or not. + [IsExternalAppsEnabledByDefault ]: Setting to indicate external apps enabled by default or not. + [IsLicenseBasedPinnedAppsEnabled ]: Feature flag for tailored apps experience for F license users. + [IsSideloadedAppsInteractionEnabled ]: Members of this tenant can see and interact with side-loaded apps, which control custom app settings in TAMS. + [IsTenantWideAutoInstallEnabled ]: Setting to indicate auto-installation of external apps. + [LobBackground ]: Background of the LOB banner. It is either an image URL or a color code. + [LobLogo ]: Logo of the LOB banner. It is either an image URL or a color code. + [LobLogomark ]: Logomark in the LOB category. It is either an image URL or a color code. + [LobTextColor ]: Color of the text in the LOB banner. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csteamssettingscustomapp +#> +function Set-CsTeamsSettingsCustomApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAppAccessRequestConfig] + # . + # To construct, see NOTES section for APPACCESSREQUESTCONFIG properties and create a hash table. + ${AppAccessRequestConfig}, + + [Parameter(ParameterSetName='SetExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationObject[]] + # List of appSettings. + # To construct, see NOTES section for APPSETTINGSLIST properties and create a hash table. + ${AppSettingsList}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Setting to indicate external apps enabled or not. + ${IsAppsEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Setting to indicate purchase external apps enabled or not. + ${IsAppsPurchaseEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Setting to indicate external apps enabled by default or not. + ${IsExternalAppsEnabledByDefault}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Feature flag for tailored apps experience for F license users. + ${IsLicenseBasedPinnedAppsEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Members of this tenant can see and interact with side-loaded apps, which control custom app settings in TAMS. + ${IsSideloadedAppsInteractionEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Setting to indicate auto-installation of external apps. + ${IsTenantWideAutoInstallEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Background of the LOB banner. + # It is either an image URL or a color code. + ${LobBackground}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Logo of the LOB banner. + # It is either an image URL or a color code. + ${LobLogo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Logomark in the LOB category. + # It is either an image URL or a color code. + ${LobLogomark}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Color of the text in the LOB banner. + ${LobTextColor}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_SetExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Updates delegate in bvd +.Description +Updates delegate in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusercallingdelegate +#> +function Set-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # ObjectId of the to-be-added member. + ${Delegate}, + + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # ObjectId of the group owner + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # If the member is allowed to make calls. + ${MakeCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # If the member is allowed to manage call settings. + ${ManageSettings}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # If the member is allowed to receive calls. + ${ReceiveCalls}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_Set'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_SetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Add/Update online user routing settings in bvd +.Description +Add/Update online user routing settings in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallGroupDetailDelay ]: + [CallGroupOrder ]: + [CallGroupTargets ]: + [Delegates ]: + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: + [Delegators ]: + [ForwardingTarget ]: + [ForwardingTargetType ]: + [ForwardingType ]: + [GroupMembershipDetails ]: + [CallGroupOwnerId ]: + [NotificationSetting ]: + [GroupNotificationOverride ]: + [IsForwardingEnabled ]: + [IsUnansweredEnabled ]: + [SipUri ]: + [UnansweredDelay ]: + [UnansweredTarget ]: + [UnansweredTargetType ]: + +DELEGATIONSETTINGDELEGATE : . + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: + +DELEGATIONSETTINGDELEGATOR : . + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: + +GROUPMEMBERSHIPDETAILS : . + [CallGroupOwnerId ]: + [NotificationSetting ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusercallingsettings +#> +function Set-CsUserCallingSettings { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallGroupDetailDelay}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallGroupOrder}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${CallGroupTargets}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ForwardingTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ForwardingTargetType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ForwardingType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]] + # . + # To construct, see NOTES section for GROUPMEMBERSHIPDETAILS properties and create a hash table. + ${GroupMembershipDetails}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${GroupNotificationOverride}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsForwardingEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsUnansweredEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${SipUri}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UnansweredDelay}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UnansweredTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UnansweredTargetType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Set User. +.Description +Set User. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +System.Collections.Hashtable +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusergenerated +#> +function Set-CsUserGenerated { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + ${UserId}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(Required, PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDictionaryOfString]))] + [System.Collections.Hashtable] + # Dictionary of + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Unassigns the previously assigned service number as default Conference Bridge number. +.Description +Unassigns the previously assigned service number as default Conference Bridge number. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Class representing ConferencingServiceNumber. + [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. + [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. + [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. + [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". + [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". + [Type ]: Gets or sets defines the number type Toll/Toll-Free. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/unregister-csodcservicenumber +#> +function Unregister-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='UnregisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Unregister', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Service number to be assigned to a bridge. + # The service number in E.164 format, e.g. + # +14251112222 or tel:+14251112222. + ${Identity}, + + [Parameter(ParameterSetName='UnregisterViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge identifier to assign the service numbers to. + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge name to assign the service numbers. + ${BridgeName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Switch parameter as a backdoor hook to remove the default service number on bridge. + ${RemoveDefaultServiceNumber}, + + [Parameter(ParameterSetName='Unregister1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] + # Class representing ConferencingServiceNumber. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + ${BridgeId1}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Geocode where the ServiceNumber is intended to be used. + ${City}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the number is shared between multiple tenants. + # If this is the casethen tenant admins will be unable to edit the number. + ${IsShared}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the 11 digit number identifying the ServiceNumber. + ${Number}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the primary language of the ServiceNumber. + # e.g.: "en-US". + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of secondary languages of the ServiceNumber. + # e.g.: "fr-FR","en-GB","en-IN". + ${SecondaryLanguage}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets defines the number type Toll/Toll-Free. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Unregister = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_Unregister'; + Unregister1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_Unregister1'; + UnregisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_UnregisterExpanded'; + UnregisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_UnregisterViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Refresh a specific AutoAttendant dail by grammer. +POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. +.Description +Refresh a specific AutoAttendant dail by grammer. +POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/update-csautoattendant +#> +function Update-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be refreshed. + ${Identity}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsAutoAttendant_Update'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsAutoAttendant_UpdateViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update configuration +.Description +Update configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/update-csconfiguration +#> +function Update-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +<# +.Synopsis +Update a policy package +.Description +Update a policy package +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +POLICYLIST : . + PolicyName : + PolicyType : +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/update-cscustompolicypackage +#> +function Update-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + # . + # To construct, see NOTES section for POLICYLIST properties and create a hash table. + ${PolicyList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsCustomPolicyPackage_UpdateExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Assigns a service number to a bridge. +.Description +Assigns a service number to a bridge. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Class representing ConferencingServiceNumber. + [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. + [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. + [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. + [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". + [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". + [Type ]: Gets or sets defines the number type Toll/Toll-Free. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/register-csodcservicenumber +#> +function Register-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='RegisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Register', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Service number to be assigned to a bridge. + # The service number in E.164 format, e.g. + # +14251112222 or tel:+14251112222. + ${Identity}, + + [Parameter(ParameterSetName='RegisterViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge identifier to assign the service numbers to. + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge name to assign the service numbers. + ${BridgeName}, + + [Parameter(ParameterSetName='Register1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] + # Class representing ConferencingServiceNumber. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + ${BridgeId1}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Geocode where the ServiceNumber is intended to be used. + ${City}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the number is shared between multiple tenants. + # If this is the casethen tenant admins will be unable to edit the number. + ${IsShared}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the 11 digit number identifying the ServiceNumber. + ${Number}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the primary language of the ServiceNumber. + # e.g.: "en-US". + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of secondary languages of the ServiceNumber. + # e.g.: "fr-FR","en-GB","en-IN". + ${SecondaryLanguage}, + + [Parameter(ParameterSetName='RegisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets defines the number type Toll/Toll-Free. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Register = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register'; + Register1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_Register1'; + RegisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterExpanded'; + RegisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOdcServiceNumber_RegisterViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a specific AutoAttendant. +DELETE Teams.VoiceApps/auto-attendants/identity. +.Description +Deletes a specific AutoAttendant. +DELETE Teams.VoiceApps/auto-attendants/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csautoattendant +#> +function Remove-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be removed. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsAutoAttendant_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove call queue. +DELETE Teams.VoiceApps/callqueues/identity. +.Description +Remove call queue. +DELETE Teams.VoiceApps/callqueues/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscallqueue +#> +function Remove-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCallQueue_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. +.Description +Delete Compliance Recording config. +DELETE /Teams.VoiceApps/compliance-recording/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cscompliancerecordingforcallqueuetemplate +#> +function Remove-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsComplianceRecordingForCallQueueTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete Configuration +.Description +Delete Configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csconfiguration +#> +function Remove-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Delete = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_Delete'; + DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsConfiguration_DeleteViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. +.Description +Remove mainline attendant appointment booking flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/appointment-booking/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantappointmentbookingflow +#> +function Remove-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantAppointmentBookingFlow_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantAppointmentBookingFlow_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. +.Description +Remove mainline attendant question answer flow. +DELETE Teams.VoiceApps/mainline-attendant-flow/question-answer/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csmainlineattendantquestionanswerflow +#> +function Remove-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantQuestionAnswerFlow_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsMainlineAttendantQuestionAnswerFlow_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Remove application instance associations. +DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +.Description +Remove application instance associations. +DELETE api/v1.0/tenants/tenantId/applicationinstanceassociations/endpointId. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineapplicationinstanceassociation +#> +function Remove-CsOnlineApplicationInstanceAssociation { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRemoveApplicationInstanceAssociationsResponse])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Application instance Id. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineApplicationInstanceAssociation_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete an audio file stored in MSS. +DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId +.Description +Delete an audio file stored in MSS. +DELETE api/v3/tenants/tenantId/audiofile/appId/audiofileId +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineaudiofile +#> +function Remove-CsOnlineAudioFile { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ApplicationId}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineAudioFile_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a specific schedule. +DELETE Teams.VoiceApps/schedules/identity. +.Description +Deletes a specific schedule. +DELETE Teams.VoiceApps/schedules/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlineschedule +#> +function Remove-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to be removed. + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineSchedule_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CmdletReleaseRequest + [TelephoneNumber ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csonlinetelephonenumberprivate +#> +function Remove-CsOnlineTelephoneNumberPrivate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseOrderResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] +[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletReleaseRequest] + # CmdletReleaseRequest + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='RemoveExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${TelephoneNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_Remove'; + RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumberPrivate_RemoveExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csphonenumberassignment +#> +function Remove-CsPhoneNumberAssignment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Notify}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${RemoveAll}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsPhoneNumberAssignment_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete Shared Call Queue History config. +DELETE /Teams.VoiceApps/shared-call-queue-history/identity. +.Description +Delete Shared Call Queue History config. +DELETE /Teams.VoiceApps/shared-call-queue-history/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cssharedcallqueuehistorytemplate +#> +function Remove-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsSharedCallQueueHistoryTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsSharedCallQueueHistoryTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete IVR Tags Template. +DELETE api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Description +Delete IVR Tags Template. +DELETE api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-cstagstemplate +#> +function Remove-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTagsTemplate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTagsTemplate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Removes delegate in bvd +.Description +Removes delegate in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/remove-csusercallingdelegate +#> +function Remove-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Delegate}, + + [Parameter(ParameterSetName='Remove', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Remove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_Remove'; + RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserCallingDelegate_RemoveViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Searches a tenant for ODC users. +.Description +Searches a tenant for ODC users. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/search-csodcuser +#> +function Search-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Page Size. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # To set the number of users to be fetched + ${Top}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsOdcUser_Search'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Searches a tenant for users. +.Description +Searches a tenant for users. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/search-csuser +#> +function Search-CsUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUser])] +[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # To set defaultpropertyset value + ${Defaultpropertyset}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To fetch optional location field + ${Expandlocation}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # MS Graph like query filters + ${Filter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set includedefaultproperties value + ${Includedefaultproperty}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # This parameter supports query to sort the results. + ${OrderBy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # Page Size. + ${PageSize}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Powershell like query filters + ${Psfilter}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Properties to select + ${Select}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Continuation / Pagination marker. + # Use the value from nextlink property in response. + ${Skiptoken}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Skip user policies in user response object + ${Skipuserpolicy}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To be set true when called to only fetch Soft deleted users + ${Softdeleteduser}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Int32] + # To set the number of users to be fetched + ${Top}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # To set to true when called from Get-CsVoiceUser cmdlet + ${Voiceuserquery}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Search = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Search-CsUser_Search'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Updates a specific AutoAttendant. +PUT Teams.VoiceApps/auto-attendants/identity. +.Description +Updates a specific AutoAttendant. +PUT Teams.VoiceApps/auto-attendants/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApplicationInstance ]: + [AuthorizedUser ]: + [CallFlow ]: + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + [CallHandlingAssociation ]: + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + [DefaultCallFlowForceListenMenuEnabled ]: + [DefaultCallFlowGreeting ]: + [DefaultCallFlowId ]: + [DefaultCallFlowName ]: + [DialByNameResourceId ]: + [ExclusionScopeGroupDialScopeGroupId ]: + [ExclusionScopeType ]: + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [Id ]: + [InclusionScopeGroupDialScopeGroupId ]: + [InclusionScopeType ]: + [LanguageId ]: + [MainlineAttendantAgentVoiceId ]: + [MainlineAttendantEnabled ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [MenuPrompt ]: + [Name ]: + [OperatorCallPriority ]: + [OperatorEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorEnableTranscription ]: + [OperatorId ]: + [OperatorSharedVoicemailCallPriority ]: + [OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression ]: + [OperatorSharedVoicemailEnableTranscription ]: + [OperatorSharedVoicemailId ]: + [OperatorSharedVoicemailType ]: + [OperatorType ]: + [Schedule ]: + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + [Status ]: + [AuxiliaryData ]: Get or sets auxiliary data. + [ErrorCode ]: Gets or sets error code of audio, grammar. + [Id ]: Gets or sets dialByNameGrammarContext. + [Message ]: Gets or sets error meessage of audio, grammar. + [Status ]: Gets or sets resource status of autoattendant. + [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. + [Type ]: Gets or sets resource type of autoattendant. + [TenantId ]: + [TimeZoneId ]: + [UserNameExtension ]: + [VoiceId ]: + [VoiceResponseEnabled ]: + +CALLFLOW : . + [ForceListenMenuEnabled ]: + [Greeting ]: + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + [Id ]: + [MenuDialByNameEnabled ]: + [MenuDirectorySearchMethod ]: + [MenuName ]: + [MenuOption ]: + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + [MenuPrompt ]: + [Name ]: + +CALLHANDLINGASSOCIATION : . + [CallFlowId ]: + [Enabled ]: + [Priority ]: + [ScheduleId ]: + [Type ]: + +DEFAULTCALLFLOWGREETING : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +MENUOPTION : . + [Action ]: + [AgentTarget ]: + [AgentTargetTagTemplateId ]: + [AgentTargetType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [CallTargetCallPriority ]: + [CallTargetEnableSharedVoicemailSystemPromptSuppression ]: + [CallTargetEnableTranscription ]: + [CallTargetId ]: + [CallTargetType ]: + [Description ]: + [DtmfResponse ]: + [MainlineAttendantTarget ]: + [PromptActiveType ]: + [PromptTextToSpeechPrompt ]: + [VoiceResponse ]: + +MENUPROMPT : . + [ActiveType ]: + [AudioFilePromptDownloadUri ]: + [AudioFilePromptFileName ]: + [AudioFilePromptId ]: + [TextToSpeechPrompt ]: + +SCHEDULE : . + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +STATUS : . + [AuxiliaryData ]: Get or sets auxiliary data. + [ErrorCode ]: Gets or sets error code of audio, grammar. + [Id ]: Gets or sets dialByNameGrammarContext. + [Message ]: Gets or sets error meessage of audio, grammar. + [Status ]: Gets or sets resource status of autoattendant. + [StatusTimestamp ]: Gets or sets time stamp of auido, grammar status. + [Type ]: Gets or sets resource type of autoattendant. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csautoattendant +#> +function Set-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be updated. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAutoAttendant] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ApplicationInstance}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AuthorizedUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallFlow[]] + # . + # To construct, see NOTES section for CALLFLOW properties and create a hash table. + ${CallFlow}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallHandlingAssociation[]] + # . + # To construct, see NOTES section for CALLHANDLINGASSOCIATION properties and create a hash table. + ${CallHandlingAssociation}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${DefaultCallFlowForceListenMenuEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for DEFAULTCALLFLOWGREETING properties and create a hash table. + ${DefaultCallFlowGreeting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultCallFlowName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DialByNameResourceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${ExclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ExclusionScopeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUser}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${InclusionScopeGroupDialScopeGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${InclusionScopeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${LanguageId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MainlineAttendantAgentVoiceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MainlineAttendantEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${MenuDialByNameEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuDirectorySearchMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${MenuName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMenuOption[]] + # . + # To construct, see NOTES section for MENUOPTION properties and create a hash table. + ${MenuOption}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPrompt[]] + # . + # To construct, see NOTES section for MENUPROMPT properties and create a hash table. + ${MenuPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorEnableTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${OperatorSharedVoicemailCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorSharedVoicemailEnableSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${OperatorSharedVoicemailEnableTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorSharedVoicemailId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorSharedVoicemailType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${OperatorType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule[]] + # . + # To construct, see NOTES section for SCHEDULE properties and create a hash table. + ${Schedule}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord2[]] + # . + # To construct, see NOTES section for STATUS properties and create a hash table. + ${Status}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TenantId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${TimeZoneId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UserNameExtension}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${VoiceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${VoiceResponseEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsAutoAttendant_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update call queue. +PUT Teams.VoiceApps/callqueues/identity. +.Description +Update call queue. +PUT Teams.VoiceApps/callqueues/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : CallQueue modify request DTO class. + [AgentAlertTime ]: Gets or sets the number of seconds that a call can remain unanswered. + [AllowOptOut ]: Gets or sets a value indicating whether to allow agent optout on Call Queue. + [AuthorizedUser ]: Gets or sets authorized user ids. + [CallToAgentRatioThresholdBeforeOfferingCallback ]: + [CallbackEmailNotificationTarget ]: Gets or sets the target of the callback email notification target. + [CallbackOfferAudioFilePromptResourceId ]: + [CallbackOfferTextToSpeechPrompt ]: + [CallbackRequestDtmf ]: + [ComplianceRecordingForCallQueueId ]: Gets or Sets the Id for Compliance Recording template for Callqueue. + [ConferenceMode ]: Gets or sets a value indicating whether to allow Conference Mode on Call Queue. + [CustomAudioFileAnnouncementForCr ]: Gets or sets the custom audio file announcement for compliance recording. + [CustomAudioFileAnnouncementForCrFailure ]: Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + [DistributionList ]: Gets or sets the Call Queue's Distribution List. + [EnableNoAgentSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableNoAgentSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableOverflowSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableOverflowSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [EnableResourceAccountsForObo ]: Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + [EnableTimeoutSharedVoicemailSystemPromptSuppression ]: Gets or sets a value indicating if system message should be suppressed or not. + [EnableTimeoutSharedVoicemailTranscription ]: Gets or sets a value indicating if transcription should be turned on or not. + [HideAuthorizedUser ]: Gets or sets hidden authorized user ids. + [IsCallbackEnabled ]: + [LanguageId ]: Gets or sets the language Id used for TTS. + [MusicOnHoldAudioFileId ]: Gets or sets the call flows for the auto attendant app endpoint. + [Name ]: Gets or sets the Call Queue's name. + [NoAgentAction ]: Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + [NoAgentActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + [NoAgentActionTarget ]: Gets or sets the target of the NoAgent action. + [NoAgentApplyTo ]: Determines whether NoAgent Action is applied to All Calls or to new calls only. + [NoAgentDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on NoAgent. + [NoAgentDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on NoAgent. + [NoAgentRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on NoAgent. + [NoAgentRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + [NoAgentRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + [NoAgentRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + [NoAgentRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + [NoAgentSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemail. + [NoAgentSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [NumberOfCallsInQueueBeforeOfferingCallback ]: + [OboResourceAccountId ]: Gets or sets the list of Obo resource account ids. + [OverflowAction ]: Gets or sets the action to take when the overflow threshold is reached. + [OverflowActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + [OverflowActionTarget ]: Gets or sets the target of the overflow action. + [OverflowDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on overflow. + [OverflowDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on overflow. + [OverflowRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on overflow. + [OverflowRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on overflow. + [OverflowRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on overflow. + [OverflowRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on overflow. + [OverflowRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + [OverflowRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + [OverflowRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + [OverflowSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [OverflowSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [OverflowThreshold ]: Gets or sets the number of simultaneous calls that can be in the queue at any one time. + [PresenceAwareRouting ]: Gets or sets a value indicating whether to enable presence aware routing. + [RoutingMethod ]: Gets or sets the routing method for the Call Queue. + [ServiceLevelThresholdResponseTimeInSecond ]: + [SharedCallQueueHistoryId ]: Gets or sets the Shared Call Queue History template. + [ShiftsSchedulingGroupId ]: Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + [ShiftsTeamId ]: Gets or sets the Shifts Team to use as Call queues answer target. + [ShouldOverwriteCallableChannelProperty ]: Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + [TextAnnouncementForCr ]: Gets or sets the text announcement for compliance recording. + [TextAnnouncementForCrFailure ]: Gets or sets the text announcemet that is played if CR bot is unable to join the call. + [ThreadId ]: Gets or sets teams channel thread id if user choose to sync CQ with a channel. + [TimeoutAction ]: Gets or sets the action to take if the timeout threshold is reached. + [TimeoutActionCallPriority ]: Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + [TimeoutActionTarget ]: Gets or sets the target of the timeout action. + [TimeoutDisconnectAudioFilePrompt ]: Gets or sets the audio file to be played when call is disconnected on Timeout. + [TimeoutDisconnectTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is disconnected on Timeout. + [TimeoutRedirectPersonAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to person on Timeout. + [TimeoutRedirectPersonTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to person on Timeout. + [TimeoutRedirectPhoneNumberAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectPhoneNumberTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + [TimeoutRedirectVoiceAppAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoiceAppTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + [TimeoutRedirectVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + [TimeoutRedirectVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + [TimeoutSharedVoicemailAudioFilePrompt ]: Gets or sets the audio file to be played when forwarding callers to shared voicemai. + [TimeoutSharedVoicemailTextToSpeechPrompt ]: Gets or sets the TTS to be played when forwarding callers to shared voicemail. + [TimeoutThreshold ]: Gets or sets the number of minutes that a call can be in the queue before it times out. + [UseDefaultMusicOnHold ]: Gets or sets a value indicating whether to use default music on hold audio file. + [User ]: Gets or sets the Call Queue's Users. + [WaitTimeBeforeOfferingCallbackInSecond ]: + [WelcomeMusicAudioFileId ]: Gets or sets the welcome audio file to play for the call queue. + [WelcomeTextToSpeechPrompt ]: Gets or sets the welcome text to speech content for the call queue. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cscallqueue +#> +function Set-CsCallQueue { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ChannelUserObjectId}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCallQueueRequest] + # CallQueue modify request DTO class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of seconds that a call can remain unanswered. + ${AgentAlertTime}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow agent optout on Call Queue. + ${AllowOptOut}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets authorized user ids. + ${AuthorizedUsers}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${CallToAgentRatioThresholdBeforeOfferingCallback}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the callback email notification target. + ${CallbackEmailNotificationTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferAudioFilePromptResourceId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackOfferTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallbackRequestDtmf}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or Sets the Id for Compliance Recording template for Callqueue. + ${ComplianceRecordingForCallQueueTemplateId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow Conference Mode on Call Queue. + ${ConferenceMode}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording. + ${CustomAudioFileAnnouncementForCr}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the custom audio file announcement for compliance recording if CR bot is unable to join the call. + ${CustomAudioFileAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Distribution List. + ${DistributionLists}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableNoAgentSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableOverflowSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableOverflowSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to allow CQ+Chanined RA's as permissioned RA's. + ${EnableResourceAccountsForObo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if system message should be suppressed or not. + ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating if transcription should be turned on or not. + ${EnableTimeoutSharedVoicemailTranscription}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets hidden authorized user ids. + ${HideAuthorizedUsers}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallbackEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the language Id used for TTS. + ${LanguageId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the call flows for the auto attendant app endpoint. + ${MusicOnHoldAudioFileId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Call Queue's name. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the NoAgent is LoggedIn/OptedIn. + ${NoAgentAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of no agent. + ${NoAgentActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the NoAgent action. + ${NoAgentActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Determines whether NoAgent Action is applied to All Calls or to new calls only. + ${NoAgentApplyTo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on NoAgent. + ${NoAgentDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on NoAgent. + ${NoAgentRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on NoAgent. + ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on NoAgent. + ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on NoAgent. + ${NoAgentRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${NoAgentSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${NumberOfCallsInQueueBeforeOfferingCallback}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of Obo resource account ids. + ${OboResourceAccountIds}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take when the overflow threshold is reached. + ${OverflowAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of overflow. + ${OverflowActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the overflow action. + ${OverflowActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on overflow. + ${OverflowDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on overflow. + ${OverflowDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on overflow. + ${OverflowRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on overflow. + ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on overflow. + ${OverflowRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on overflow. + ${OverflowRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${OverflowSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${OverflowSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of simultaneous calls that can be in the queue at any one time. + ${OverflowThreshold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to enable presence aware routing. + ${PresenceAwareRouting}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the routing method for the Call Queue. + ${RoutingMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${ServiceLevelThresholdResponseTimeInSecond}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shared Call Queue History template. + ${SharedCallQueueHistoryTemplateId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Scheduling Group to use as Call queues answer target. + ${ShiftsSchedulingGroupId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Shifts Team to use as Call queues answer target. + ${ShiftsTeamId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets ShouldOverwriteCallableChannelProperty flag that indicates user intention to whether overwirte the current callableChannel property value on chat service or not. + ${ShouldOverwriteCallableChannelProperty}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcement for compliance recording. + ${TextAnnouncementForCr}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the text announcemet that is played if CR bot is unable to join the call. + ${TextAnnouncementForCrFailure}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets teams channel thread id if user choose to sync CQ with a channel. + ${ThreadId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the action to take if the timeout threshold is reached. + ${TimeoutAction}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the CallPriority when a CQ transfers the call to another CQ upon the occurrence of timeout. + ${TimeoutActionCallPriority}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the target of the timeout action. + ${TimeoutActionTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is disconnected on Timeout. + ${TimeoutDisconnectAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is disconnected on Timeout. + ${TimeoutDisconnectTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to person on Timeout. + ${TimeoutRedirectPersonTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to phone number on Timeout. + ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voiceapp on Timeout. + ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when call is redirected to voicemail on Timeout. + ${TimeoutRedirectVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the audio file to be played when forwarding callers to shared voicemai. + ${TimeoutSharedVoicemailAudioFilePrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the TTS to be played when forwarding callers to shared voicemail. + ${TimeoutSharedVoicemailTextToSpeechPrompt}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of minutes that a call can be in the queue before it times out. + ${TimeoutThreshold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to use default music on hold audio file. + ${UseDefaultMusicOnHold}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the Call Queue's Users. + ${Users}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${WaitTimeBeforeOfferingCallbackInSecond}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the welcome audio file to play for the call queue. + ${WelcomeMusicAudioFileId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the welcome text to speech content for the call queue. + ${WelcomeTextToSpeechPrompt}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsCallQueue_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update compliance recording template. +PUT /Teams.VoiceApps/compliance-recording/identity. +.Description +Update compliance recording template. +PUT /Teams.VoiceApps/compliance-recording/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IComplianceRecordingForCallQueueDtoModel +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateComplianceRecordingForCallQueueResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [BotId ]: Gets or sets the MRI of the first bot. + [ConcurrentInvitationCount ]: Gets or sets the number of concurrent invitations allowed. Concurrent invitations are used to send multiple invites to the CR bot. + [Description ]: Gets or sets the description of the compliance recording. + [Id ]: Gets or sets the identifier of the compliance recording. + [Name ]: Gets or sets the name of the compliance recording. + [PairedApplication ]: Gets or sets the paired applications for the compliance recording bot. This is a resiliency feature that allows invitation of another bot. If either of BotMRI or the paired application is available, we will consider the call to be successful. + [RequiredBeforeCall ]: Gets or sets a value indicating whether the compliance recording is required before the call. + [RequiredDuringCall ]: Gets or sets a value indicating whether the compliance recording is required during the call. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cscompliancerecordingforcallqueuetemplate +#> +function Set-CsComplianceRecordingForCallQueueTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateComplianceRecordingForCallQueueResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The identity of the compliance recording configuration. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IComplianceRecordingForCallQueueDtoModel] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the MRI of the first bot. + ${BotApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the number of concurrent invitations allowed. + # Concurrent invitations are used to send multiple invites to the CR bot. + ${ConcurrentInvitationCount}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the compliance recording. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the identifier of the compliance recording. + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the compliance recording. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the paired applications for the compliance recording bot. + # This is a resiliency feature that allows invitation of another bot.If either of BotMRI or the paired application is available, we will consider the call to be successful. + ${PairedApplicationInstanceObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required before the call. + ${RequiredBeforeCall}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the compliance recording is required during the call. + ${RequiredDuringCall}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsComplianceRecordingForCallQueueTemplate_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update configuration +.Description +Update configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csconfiguration +#> +function Set-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsConfiguration_UpdateViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update appointment booking flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking/identity +.Description +Update appointment booking flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking/identity +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Represents a request to update a mainline attendant appointment booking flow. + [ApiAuthenticationType ]: Defines the type of API authentication to be used. Supported values include: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ApiDefinition ]: Contains detailed specifications or schema definitions for the API. + [CallerAuthenticationMethod ]: Specifies the method used to authenticate the caller. Supported values include: Sms, Email, VerificationLink, Voiceprint, UserDetails. + [ConfigurationId ]: Gets or sets the configuration ID of the mainline attendant appointment booking flow. + [Description ]: A brief description of the appointment booking flow. + [Identity ]: The unique identifier for the appointment booking flow. + [Name ]: The name assigned to the appointment booking flow. + [Type ]: The type of the mainline attendant flow. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csmainlineattendantappointmentbookingflow +#> +function Set-CsMainlineAttendantAppointmentBookingFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Flow Identity. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAppointmentBookingFlowRequest] + # Represents a request to update a mainline attendant appointment booking flow. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Defines the type of API authentication to be used.Supported values include: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Contains detailed specifications or schema definitions for the API. + ${ApiDefinitions}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Specifies the method used to authenticate the caller.Supported values include: Sms, Email, VerificationLink, Voiceprint, UserDetails. + ${CallerAuthenticationMethod}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the configuration ID of the mainline attendant appointment booking flow. + ${ConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the appointment booking flow. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The unique identifier for the appointment booking flow. + ${Identity1}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The name assigned to the appointment booking flow. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The type of the mainline attendant flow. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantAppointmentBookingFlow_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update question and answer flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer/identity +.Description +Update question and answer flow for mainline attendant PUT api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer/identity +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [ApiAuthenticationType ]: Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + [ConfigurationId ]: Gets or sets the configuration ID of the mainline attendant question and answer flow. + [Description ]: Gets or sets the description of the mainline attendant question and answer flow. + [Identity ]: A brief description of the question and answer flow. + [KnowledgeBase ]: Gets or sets the detailed definitions of the knowledge base. + [Name ]: Gets or sets the name of the mainline attendant question and answer flow. + [Type ]: A brief description of the question and answer flow. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csmainlineattendantquestionanswerflow +#> +function Set-CsMainlineAttendantQuestionAnswerFlow { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Flow Identity. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateQuestionAnswerFlowRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets the api authentication type, allowed values: Basic, ApiKey, BearerTokenStatic, BearerTokenDynamic. + ${ApiAuthenticationType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the configuration ID of the mainline attendant question and answer flow. + ${ConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the mainline attendant question and answer flow. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the question and answer flow. + ${Identity1}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the detailed definitions of the knowledge base. + ${KnowledgeBase}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the mainline attendant question and answer flow. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # A brief description of the question and answer flow. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsMainlineAttendantQuestionAnswerFlow_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Sets a bridge using unique id. +This api is also used for Instance query. +.Description +Sets a bridge using unique id. +This api is also used for Instance query. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Update Conferencing Bridge Default Service number, or make it tenant's default bridge. + [DefaultServiceNumber ]: Gets or sets service number to be updated as new default number of bridge. + [Name ]: Gets or sets name of the bridge. This can only be used when user sets the bridge using instance. + [SetDefault ]: Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcbridge +#> +function Set-CsOdcBridge { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the bridge. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set1', Mandatory)] + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1', Mandatory)] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Name of the bridge. + ${Name}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='Set1', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBridgeUpdateRequest] + # Update Conferencing Bridge Default Service number, or make it tenant's default bridge. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets service number to be updated as new default number of bridge. + ${DefaultServiceNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetExpanded1')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a boolean value indicating if the bridge should be updated to be tenant's default bridge. + ${SetDefault}, + + [Parameter(ParameterSetName='SetExpanded1')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets name of the bridge. + # This can only be used when user sets the bridge using instance. + ${Name1}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set'; + Set1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_Set1'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded'; + SetExpanded1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetExpanded1'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcBridge_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Set service number by unique id. +.Description +Set service number by unique id. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Update Conferencing Service number. + [PrimaryLanguage ]: The primary language CAA should use to service this call, e.g. en-US, en-GB etc. + [RestoreDefaultLanguage ]: Switch to indicate that the Primary and Secondary languages should be set to the default values. + [SecondaryLanguage ]: The list of secondary languages CAA should use to service this call. Number of secondary languages is limited to a max of 4. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcservicenumber +#> +function Set-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the service number. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IServiceNumberUpdateRequest] + # Update Conferencing Service number. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # The primary language CAA should use to service this call, e.g. + # en-US, en-GB etc. + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Switch to indicate that the Primary and Secondary languages should be set to the default values. + ${RestoreDefaultLanguages}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # The list of secondary languages CAA should use to service this call. + # Number of secondary languages is limited to a max of 4. + ${SecondaryLanguages}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcServiceNumber_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +.Description +This cmdlet is used to modify the properties of a user that has been enabled for Microsoft's audio conferencing service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : User data to be sent. + [AllowTollFreeDialIn ]: Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number. TODO: This is not a Switch parameter. + [BridgeId ]: Gets or sets the bridge identifier. + [BridgeName ]: Gets or sets the bridge name. + [ResetLeaderPin ]: Gets or sets a value indicating whether or not to reset the leader pin. TODO: This is a Switch parameter. + [SendEmail ]: Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off. TODO: This is a switch parameter. + [SendEmailToAddress ]: Gets or sets a value indicating To Address to send the email that contains the Audio Conference information. This parameter must be used together with -SendEmail. + [ServiceNumber ]: Gets or sets the service number to set as the user's default bridge number. + [TollFreeServiceNumber ]: Gets or sets the toll-free service number to set as the user's default toll-free service number. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csodcuser +#> +function Set-CsOdcUser { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Identity of the user. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserData] + # User data to be sent. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether or not the meeting should allow dialin via toll-free service number.TODO: This is not a Switch parameter. + ${AllowTollFreeDialIn}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the bridge identifier. + ${BridgeId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the bridge name. + ${BridgeName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether or not to reset the leader pin.TODO: This is a Switch parameter. + ${ResetLeaderPin}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether to sends an email with the PSTN Conference information of a user even if the tenant setting is off.TODO: This is a switch parameter. + ${SendEmail}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets a value indicating To Address to send the email that contains the Audio Conference information.This parameter must be used together with -SendEmail. + ${SendEmailToAddress}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the service number to set as the user's default bridge number. + ${ServiceNumber}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the toll-free service number to set as the user's default toll-free service number. + ${TollFreeServiceNumber}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOdcUser_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Content ]: + [Country ]: + [ForceAccept ]: + [Locale ]: + [RespondedByObjectId ]: + [Response ]: + [ResponseTimestamp ]: + [Version ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineenhancedemergencyservicedisclaimer +#> +function Set-CsOnlineEnhancedEmergencyServiceDisclaimer { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnostics])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEmergencyDisclaimerUserResponseInput] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Content}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CountryOrRegion}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ForceAccept}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Locale}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RespondedByObjectId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${Response}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${ResponseTimestamp}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Version}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer_SetExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Updates a specific schedule. +PUT Teams.VoiceApps/schedules/identity. +.Description +Updates a specific schedule. +PUT Teams.VoiceApps/schedules/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AssociatedConfigurationId ]: + [FixedScheduleDateTimeRange ]: + [End ]: + [Start ]: + [Id ]: + [Name ]: + [RecurrenceRangeEnd ]: + [RecurrenceRangeNumberOfOccurrence ]: + [RecurrenceRangeStart ]: + [RecurrenceRangeType ]: + [Type ]: + [WeeklyRecurrentScheduleFridayHour ]: + [End ]: + [Start ]: + [WeeklyRecurrentScheduleIsComplemented ]: + [WeeklyRecurrentScheduleMondayHour ]: + [WeeklyRecurrentScheduleSaturdayHour ]: + [WeeklyRecurrentScheduleSundayHour ]: + [WeeklyRecurrentScheduleThursdayHour ]: + [WeeklyRecurrentScheduleTuesdayHour ]: + [WeeklyRecurrentScheduleWednesdayHour ]: + +FIXEDSCHEDULEDATETIMERANGE : . + [End ]: + [Start ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +WEEKLYRECURRENTSCHEDULEFRIDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEMONDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESATURDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULESUNDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETHURSDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULETUESDAYHOUR : . + [End ]: + [Start ]: + +WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR : . + [End ]: + [Start ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlineschedule +#> +function Set-CsOnlineSchedule { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IModifyScheduleResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the schedule to be updated. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISchedule] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${AssociatedConfigurationId}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDateTimeRange[]] + # . + # To construct, see NOTES section for FIXEDSCHEDULEDATETIMERANGE properties and create a hash table. + ${FixedScheduleDateTimeRange}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeEnd}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # . + ${RecurrenceRangeNumberOfOccurrence}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.DateTime] + # . + ${RecurrenceRangeStart}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${RecurrenceRangeType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Type}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEFRIDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleFridayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${WeeklyRecurrentScheduleIsComplemented}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEMONDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleMondayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESATURDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSaturdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULESUNDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleSundayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETHURSDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleThursdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULETUESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleTuesdayHour}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITimeRange[]] + # . + # To construct, see NOTES section for WEEKLYRECURRENTSCHEDULEWEDNESDAYHOUR properties and create a hash table. + ${WeeklyRecurrentScheduleWednesdayHour}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSchedule_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Enable or Disable Tenant VerifiedSipDomains. +.Description +Enable or Disable Tenant VerifiedSipDomains. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : The request to update an tenant sip domain. + [Action ]: Action enable or disable domain. + [DomainName ]: Domain Name. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinesipdomain +#> +function Set-CsOnlineSipDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantSipDomainRequest] + # The request to update an tenant sip domain. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Action enable or disable domain. + ${Action}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Domain Name. + ${DomainName}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineSipDomain_SetExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Put OnlineVoicemailUserSettings. +.Description +Put OnlineVoicemailUserSettings. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : User Voicemail Settings base class. + [CallAnswerRule ]: Gets or sets CallAnswerRule. + [DefaultGreetingPromptOverwrite ]: Gets or sets DefaultGreetingPromptOverwrite. + [DefaultOofGreetingPromptOverwrite ]: Gets or sets DefaultOofGreetingPromptOverwrite. + [OofGreetingEnabled ]: Gets or sets a value indicating whether Out of Office Greeting is enabled. + [OofGreetingFollowAutomaticRepliesEnabled ]: Gets or sets a value indicating whether Out of Office Greeting Automatic Replies are enabled. + [PromptLanguage ]: Gets or sets prompt language. + [ShareData ]: Gets or sets a value indicating whether ShareData is enabled. + [TransferTarget ]: Gets or sets TransferTarget. + [VoicemailEnabled ]: Gets or sets a value indicating whether voicemail is enabled. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csonlinevmusersetting +#> +function Set-CsOnlineVMUserSetting { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings] + # User Voicemail Settings base class. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets CallAnswerRule. + ${CallAnswerRule}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets DefaultGreetingPromptOverwrite. + ${DefaultGreetingPromptOverwrite}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets DefaultOofGreetingPromptOverwrite. + ${DefaultOofGreetingPromptOverwrite}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether Out of Office Greetingis enabled. + ${OofGreetingEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether Out of Office GreetingAutomatic Replies are enabled. + ${OofGreetingFollowAutomaticRepliesEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets prompt language. + ${PromptLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether ShareDatais enabled. + ${ShareData}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets TransferTarget. + ${TransferTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether voicemail is enabled. + ${VoicemailEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVMUserSetting_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Add/Update user personal attendant settings in uss +.Description +Add/Update user personal attendant settings in uss +.Example + + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AllowInboundFederatedCalls ]: + [AllowInboundInternalCalls ]: + [AllowInboundPSTNCalls ]: + [BookingCalendarId ]: + [CalleeName ]: + [DefaultLanguage ]: + [DefaultTone ]: + [DefaultVoice ]: + [IsAutomaticRecordingEnabled ]: + [IsAutomaticTranscriptionEnabled ]: + [IsBookingCalendarEnabled ]: + [IsCallScreeningEnabled ]: + [IsNonContactCallbackEnabled ]: + [IsPersonalAttendantEnabled ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cspersonalattendantsettings +#> +function Set-CsPersonalAttendantSettings { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundFederatedCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundInternalCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${AllowInboundPSTNCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CalleeName}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultLanguage}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultTone}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${DefaultVoice}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsAutomaticRecordingEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsAutomaticTranscriptionEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsBookingCalendarEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsCallScreeningEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsNonContactCallbackEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsPersonalAttendantEnabled}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPersonalAttendantSettings_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis + +.Description + +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csphonenumberassignment +#> +function Set-CsPhoneNumberAssignment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${AssignmentCategory}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${EnterpriseVoiceEnabled}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${Identity}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${LocationId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${NetworkSiteId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # . + ${Notify}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumber}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${PhoneNumberType}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${ReverseNumberLookup}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsPhoneNumberAssignment_Set'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update shared call queue history template. +PUT /Teams.VoiceApps/shared-call-queue-history/identity. +.Description +Update shared call queue history template. +PUT /Teams.VoiceApps/shared-call-queue-history/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISharedCallQueueHistoryDtoModel +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateSharedCallQueueHistoryResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [AnsweredAndOutboundCall ]: Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + [Description ]: Gets or sets the description of the shared call queue history. + [Id ]: Gets or sets the identifier of the shared call queue history. + [IncomingMissedCall ]: Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + [Name ]: Gets or sets the name of the shared call queue history. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cssharedcallqueuehistorytemplate +#> +function Set-CsSharedCallQueueHistoryTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateSharedCallQueueHistoryResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # The identity of the shared call queue history configuration. + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISharedCallQueueHistoryDtoModel] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Answered and outbound calls is delivered to authorized users, authorized users and agents or none. + ${AnsweredAndOutboundCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the description of the shared call queue history. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the identifier of the shared call queue history. + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Int32] + # Gets or sets whether the shared call history for Incoming missed calls is delivered to authorized users, authorized users and agents or none. + ${IncomingMissedCalls}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the shared call queue history. + ${Name}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSharedCallQueueHistoryTemplate_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Description +Update IVR Tags Template. +PUT api/v1.0/tenants/tenantId/ivr-tags-template/identity. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateIvrTagsTemplateResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [Description ]: Description of the IVR tag template. + [Id ]: Gets or sets the unique identifier for the IVR tag template. This is used to link the IVR tag template to an AutoAttendant. + [Name ]: Gets or sets the name of the IVR tag template. + [Tag ]: List of tags associated with the IVR tag template. These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id + +TAG : List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + [TagDetailCallPriority ]: + [TagDetailEnableSharedVoicemailSystemPromptSuppression ]: + [TagDetailEnableTranscription ]: + [TagDetailId ]: + [TagDetailType ]: + [TagName ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-cstagstemplate +#> +function Set-CsTagsTemplate { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateIvrTagsTemplateResponse])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagsTemplateDtoModel] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Description of the IVR tag template. + ${Description}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the unique identifier for the IVR tag template. + # This is used to link the IVR tag template to an AutoAttendant. + ${Id}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the name of the IVR tag template. + ${Name}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IIvrTagDtoModel[]] + # List of tags associated with the IVR tag template.These contain the name and callbale entities to which the IVR can initiate a transfer to. + # To construct, see NOTES section for TAG properties and create a hash table. + ${Tag}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTagsTemplate_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Set Org Settings - Set-CsTeamsSettingsCustomApp +.Description +Set Org Settings - Set-CsTeamsSettingsCustomApp +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +APPACCESSREQUESTCONFIG : . + [AdminInstructionMessage ]: Admin instructions for app access requests. + [ApprovalPortalUrl ]: Tenant's approval portal URL for app access requests. + +APPSETTINGSLIST : List of appSettings. + [Context ]: App context. + [Id ]: App Id. + [IsAppLevelAutoInstallEnabled ]: Auto Installation of app is enabled or not. + [IsEnabled ]: App is enabled or not. + +BODY : . + [AppAccessRequestConfig ]: + [AdminInstructionMessage ]: Admin instructions for app access requests. + [ApprovalPortalUrl ]: Tenant's approval portal URL for app access requests. + [AppSettingsList ]: List of appSettings. + [Context ]: App context. + [Id ]: App Id. + [IsAppLevelAutoInstallEnabled ]: Auto Installation of app is enabled or not. + [IsEnabled ]: App is enabled or not. + [IsAppsEnabled ]: Setting to indicate external apps enabled or not. + [IsAppsPurchaseEnabled ]: Setting to indicate purchase external apps enabled or not. + [IsExternalAppsEnabledByDefault ]: Setting to indicate external apps enabled by default or not. + [IsLicenseBasedPinnedAppsEnabled ]: Feature flag for tailored apps experience for F license users. + [IsSideloadedAppsInteractionEnabled ]: Members of this tenant can see and interact with side-loaded apps, which control custom app settings in TAMS. + [IsTenantWideAutoInstallEnabled ]: Setting to indicate auto-installation of external apps. + [LobBackground ]: Background of the LOB banner. It is either an image URL or a color code. + [LobLogo ]: Logo of the LOB banner. It is either an image URL or a color code. + [LobLogomark ]: Logomark in the LOB category. It is either an image URL or a color code. + [LobTextColor ]: Color of the text in the LOB banner. +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csteamssettingscustomapp +#> +function Set-CsTeamsSettingsCustomApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAppAccessRequestConfig] + # . + # To construct, see NOTES section for APPACCESSREQUESTCONFIG properties and create a hash table. + ${AppAccessRequestConfig}, + + [Parameter(ParameterSetName='SetExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationObject[]] + # List of appSettings. + # To construct, see NOTES section for APPSETTINGSLIST properties and create a hash table. + ${AppSettingsList}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Setting to indicate external apps enabled or not. + ${IsAppsEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Setting to indicate purchase external apps enabled or not. + ${IsAppsPurchaseEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Setting to indicate external apps enabled by default or not. + ${IsExternalAppsEnabledByDefault}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Feature flag for tailored apps experience for F license users. + ${IsLicenseBasedPinnedAppsEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Members of this tenant can see and interact with side-loaded apps, which control custom app settings in TAMS. + ${IsSideloadedAppsInteractionEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Setting to indicate auto-installation of external apps. + ${IsTenantWideAutoInstallEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Background of the LOB banner. + # It is either an image URL or a color code. + ${LobBackground}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Logo of the LOB banner. + # It is either an image URL or a color code. + ${LobLogo}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Logomark in the LOB category. + # It is either an image URL or a color code. + ${LobLogomark}, + + [Parameter(ParameterSetName='SetExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Color of the text in the LOB banner. + ${LobTextColor}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_SetExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Updates delegate in bvd +.Description +Updates delegate in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusercallingdelegate +#> +function Set-CsUserCallingDelegate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # ObjectId of the to-be-added member. + ${Delegate}, + + [Parameter(ParameterSetName='Set', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # ObjectId of the group owner + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # If the member is allowed to make calls. + ${MakeCalls}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # If the member is allowed to manage call settings. + ${ManageSettings}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # If the member is allowed to receive calls. + ${ReceiveCalls}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_Set'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_SetViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Add/Update online user routing settings in bvd +.Description +Add/Update online user routing settings in bvd +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [CallGroupDetailDelay ]: + [CallGroupOrder ]: + [CallGroupTargets ]: + [Delegates ]: + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: + [Delegators ]: + [ForwardingTarget ]: + [ForwardingTargetType ]: + [ForwardingType ]: + [GroupMembershipDetails ]: + [CallGroupOwnerId ]: + [NotificationSetting ]: + [GroupNotificationOverride ]: + [IsForwardingEnabled ]: + [IsUnansweredEnabled ]: + [SipUri ]: + [UnansweredDelay ]: + [UnansweredTarget ]: + [UnansweredTargetType ]: + +DELEGATIONSETTINGDELEGATE : . + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: + +DELEGATIONSETTINGDELEGATOR : . + [Id ]: + [MakeCalls ]: + [ManageSettings ]: + [ReceiveCalls ]: + +GROUPMEMBERSHIPDETAILS : . + [CallGroupOwnerId ]: + [NotificationSetting ]: + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusercallingsettings +#> +function Set-CsUserCallingSettings { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallGroupDetailDelay}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${CallGroupOrder}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # . + ${CallGroupTargets}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ForwardingTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ForwardingTargetType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${ForwardingType}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]] + # . + # To construct, see NOTES section for GROUPMEMBERSHIPDETAILS properties and create a hash table. + ${GroupMembershipDetails}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${GroupNotificationOverride}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsForwardingEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${IsUnansweredEnabled}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${SipUri}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UnansweredDelay}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UnansweredTarget}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${UnansweredTargetType}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingSettings_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Set User. +.Description +Set User. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +System.Collections.Hashtable +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/set-csusergenerated +#> +function Set-CsUserGenerated { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] +[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Set', Mandatory)] + [Parameter(ParameterSetName='SetExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # UserId. + ${UserId}, + + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(Required, PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDictionaryOfString]))] + [System.Collections.Hashtable] + # Dictionary of + ${Body}, + + [Parameter(ParameterSetName='SetExpanded')] + [Parameter(ParameterSetName='SetViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_Set'; + SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetExpanded'; + SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetViaIdentity'; + SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserGenerated_SetViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Unassigns the previously assigned service number as default Conference Bridge number. +.Description +Unassigns the previously assigned service number as default Conference Bridge number. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : Class representing ConferencingServiceNumber. + [BridgeId ]: Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + [City ]: Gets or sets the Geocode where the ServiceNumber is intended to be used. + [IsShared ]: Gets or sets a value indicating whether the number is shared between multiple tenants. If this is the case then tenant admins will be unable to edit the number. + [Number ]: Gets or sets the 11 digit number identifying the ServiceNumber. + [PrimaryLanguage ]: Gets or sets the primary language of the ServiceNumber. e.g.: "en-US". + [SecondaryLanguages ]: Gets or sets the list of secondary languages of the ServiceNumber. e.g.: "fr-FR","en-GB","en-IN". + [Type ]: Gets or sets defines the number type Toll/Toll-Free. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/unregister-csodcservicenumber +#> +function Unregister-CsOdcServiceNumber { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] +[CmdletBinding(DefaultParameterSetName='UnregisterExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Unregister', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Service number to be assigned to a bridge. + # The service number in E.164 format, e.g. + # +14251112222 or tel:+14251112222. + ${Identity}, + + [Parameter(ParameterSetName='UnregisterViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge identifier to assign the service numbers to. + ${BridgeId}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # The conferencing bridge name to assign the service numbers. + ${BridgeName}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.Management.Automation.SwitchParameter] + # Switch parameter as a backdoor hook to remove the default service number on bridge. + ${RemoveDefaultServiceNumber}, + + [Parameter(ParameterSetName='Unregister1', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber] + # Class representing ConferencingServiceNumber. + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the unique identifier of the Bridge that this ServiceNumber belongs to. + ${BridgeId1}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the Geocode where the ServiceNumber is intended to be used. + ${City}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Gets or sets a value indicating whether the number is shared between multiple tenants. + # If this is the casethen tenant admins will be unable to edit the number. + ${IsShared}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the 11 digit number identifying the ServiceNumber. + ${Number}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets the primary language of the ServiceNumber. + # e.g.: "en-US". + ${PrimaryLanguage}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String[]] + # Gets or sets the list of secondary languages of the ServiceNumber. + # e.g.: "fr-FR","en-GB","en-IN". + ${SecondaryLanguage}, + + [Parameter(ParameterSetName='UnregisterExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # Gets or sets defines the number type Toll/Toll-Free. + ${Type}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Unregister = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_Unregister'; + Unregister1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_Unregister1'; + UnregisterExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_UnregisterExpanded'; + UnregisterViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOdcServiceNumber_UnregisterViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Refresh a specific AutoAttendant dail by grammer. +POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. +.Description +Refresh a specific AutoAttendant dail by grammer. +POST /Teams.VoiceApps/autoAttendants/{identity}/refresh. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Outputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/update-csautoattendant +#> +function Update-CsAutoAttendant { +[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] +[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # Id for the auto attendant to be refreshed. + ${Identity}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsAutoAttendant_Update'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsAutoAttendant_UpdateViaIdentity'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update configuration +.Description +Update configuration +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity +.Inputs +Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration +.Outputs +System.Boolean +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +BODY : . + [(Any) ]: This indicates any property can be added to this object. + Identity : + +INPUTOBJECT : Identity Parameter + [AppId ]: + [AudioFileId ]: + [Bssid ]: + [ChassisId ]: + [CivicAddressId ]: + [ConfigName ]: + [ConfigType ]: string + [ConnectionId ]: Connection Id. + [ConnectorInstanceId ]: Connector Instance Id + [Country ]: + [DialedNumber ]: + [EndpointId ]: Application instance Id. + [ErrorReportId ]: The UUID of a report instance + [GroupId ]: The ID of a group whose policy assignments will be returned. + [Id ]: + [Identity ]: + [Locale ]: + [LocationId ]: Location id. + [MemberId ]: ObjectId of the to-be-added member. + [Name ]: Setting name + [ObjectId ]: Application instance object ID. + [OdataId ]: A composite URI of a template. + [OperationId ]: The ID of a batch policy assignment operation. + [OrchestrationId ]: The Id of specific Orchestration + [OrderId ]: + [OwnerId ]: ObjectId of the group owner + [PackageName ]: The name of a specific policy package + [PartitionKey ]: PartitionKey of the table. + [PolicyType ]: The policy type for which group policy assignments will be returned. + [PublicTemplateLocale ]: Language and country code for localization of publicly available templates. + [Region ]: Region to query Bvd table. + [SubnetId ]: + [Table ]: Bvd table name. + [TeamId ]: Team Id + [TelephoneNumber ]: An instance of hybrid telephone number. + [TenantId ]: TenantId. Guid + [UserId ]: UserId. + [Version ]: + [WfmTeamId ]: Team Id +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/update-csconfiguration +#> +function Update-CsConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigName}, + + [Parameter(ParameterSetName='Update', Mandatory)] + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [System.String] + # . + ${ConfigType}, + + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # Api Version + ${ApiVersion}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] + [System.String] + # . + ${SchemaVersion}, + + [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IXdsConfiguration] + # . + # To construct, see NOTES section for BODY properties and create a hash table. + ${Body}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.Collections.Hashtable] + # Additional Parameters + ${AdditionalProperties}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_Update'; + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateExpanded'; + UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateViaIdentity'; + UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsConfiguration_UpdateViaIdentityExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# ---------------------------------------------------------------------------------- +# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.5.1, generator: @autorest/powershell@3.0.493) +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update a policy package +.Description +Update a policy package +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +POLICYLIST : . + PolicyName : + PolicyType : +.Link +https://docs.microsoft.com/en-us/powershell/module/teams/update-cscustompolicypackage +#> +function Update-CsCustomPolicyPackage { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Identity}, + + [Parameter(Mandatory)] + [AllowEmptyCollection()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsRequestsPolicyTypeAndName[]] + # . + # To construct, see NOTES section for POLICYLIST properties and create a hash table. + ${PolicyList}, + + [Parameter()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + $mapping = @{ + UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsCustomPolicyPackage_UpdateExpanded'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} + +# SIG # Begin signature block +# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBz/kPsKFOwGek/ +# 6VbLdtLfJn4KQwSRtf6ff/hSAG8Fo6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIA1s +# StTElv/N9NKKgFf+gAo2RfeobcsSdros26CB7mOmMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEArGrFoRUfBChZqbDBJV+ScaLQ1vAXAqFmVrkH +# o8MntA3d7UCTqoUEGo5fg7ASrZkUt7gyXtd455Jvkx4hwezgrSBKmuucVATw9Me7 +# 6VY9PlUWXHHd17PHJfTckRPOlfKVFmMBXFtOoKQsDX2HeE2+d5bNvmLlHmoXFuMe +# JDHXsZdqSelBkbrNvZ5iK7JKL88WFEHQ3iXnqFr/ZnSvXkGcrQpXLqmH+JqaoSY4 +# JFGnMAIJaI/mAyit0owgfegXk9ZhUa3HVT0M4g/OLao05RVgo8SeiRm9s2VxiuFo +# 8knck+7YzDDEyjCX6gILisSWzjSTyBZ0w4pt9Wbm7kcZwOJ8E6GCF5cwgheTBgor +# BgEEAYI3AwMBMYIXgzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFSBgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDxNGi317TJwHPEQRbHnfe9mGo1v3P0devF +# U5vJfzFEYAIGaMLGz+ItGBMyMDI1MTAwMTA4MzMxNy42NTJaMASAAgH0oIHRpIHO +# MIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL +# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxk +# IFRTUyBFU046QTkzNS0wM0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l +# LVN0YW1wIFNlcnZpY2WgghHtMIIHIDCCBQigAwIBAgITMwAAAgy5ZOM1nOz0rgAB +# AAACDDANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDAeFw0yNTAxMzAxOTQzMDBaFw0yNjA0MjIxOTQzMDBaMIHLMQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l +# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTkzNS0w +# M0UwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw +# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKAVYmPeRtga/U6jzqyqLD +# 0MAool23gcBN58+Z/XskYwNJsZ+O+wVyQYl8dPTK1/BC2xAic1m+JvckqjVaQ32K +# mURsEZotirQY4PKVW+eXwRt3r6szgLuic6qoHlbXox/l0HJtgURkzDXWMkKmGSL7 +# z8/crqcvmYqv8t/slAF4J+mpzb9tMFVmjwKXONVdRwg9Q3WaPZBC7Wvoi7PRIN2j +# gjSBnHYyAZSlstKNrpYb6+Gu6oSFkQzGpR65+QNDdkP4ufOf4PbOg3fb4uGPjI8E +# PKlpwMwai1kQyX+fgcgCoV9J+o8MYYCZUet3kzhhwRzqh6LMeDjaXLP701SXXiXc +# 2ZHzuDHbS/sZtJ3627cVpClXEIUvg2xpr0rPlItHwtjo1PwMCpXYqnYKvX8aJ8na +# wT9W8FUuuyZPG1852+q4jkVleKL7x+7el8ETehbdkwdhAXyXimaEzWetNNSmG/Kf +# HAp9czwsL1vKr4Rgn+pIIkZHuomdf5e481K+xIWhLCPdpuV87EqGOK/jbhOnZEqw +# dvA0AlMaLfsmCemZmupejaYuEk05/6cCUxgF4zCnkJeYdMAP+9Z4kVh7tzRFsw/l +# ZSl2D7EhIA6Knj6RffH2k7YtSGSv86CShzfiXaz9y6sTu8SGqF6ObL/eu/DkivyV +# oCfUXWLjiSJsrS63D0EHHQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFHUORSH/sB/r +# Q/beD0l5VxQ706GIMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G +# A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv +# Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs +# BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 +# LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy +# MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH +# AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDZMPr4gVmwwf4G +# MB5ZfHSr34uhug6yzu4HUT+JWMZqz9uhLZBoX5CPjdKJzwAVvYoNuLmS0+9lA5S7 +# 4rvKqd/u9vp88VGk6U7gMceatdqpKlbVRdn2ZfrMcpI4zOc6BtuYrzJV4cEs1YmX +# 95uiAxaED34w02BnfuPZXA0edsDBbd4ixFU8X/1J0DfIUk1YFYPOrmwmI2k16u6T +# cKO0YpRlwTdCq9vO0eEIER1SLmQNBzX9h2ccCvtgekOaBoIQ3ZRai8Ds1f+wcKCP +# zD4qDX3xNgvLFiKoA6ZSG9S/yOrGaiSGIeDy5N9VQuqTNjryuAzjvf5W8AQp31hV +# 1GbUDOkbUdd+zkJWKX4FmzeeN52EEbykoWcJ5V9M4DPGN5xpFqXy9aO0+dR0UUYW +# uqeLhDyRnVeZcTEu0xgmo+pQHauFVASsVORMp8TF8dpesd+tqkkQ8VNvI20oOfnT +# fL+7ZgUMf7qNV0ll0Wo5nlr1CJva1bfk2Hc5BY1M9sd3blBkezyvJPn4j0bfOOrC +# YTwYsNsjiRl/WW18NOpiwqciwFlUNqtWCRMzC9r84YaUMQ82Bywk48d4uBon5ZA8 +# pXXS7jwJTjJj5USeRl9vjT98PDZyCFO2eFSOFdDdf6WBo/WZUA2hGZ0q+J7j140f +# bXCfOUIm0j23HaAV0ckDS/nmC/oF1jCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb +# SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI +# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv +# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj +# YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy +# NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE +# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI +# yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo +# YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y +# aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v +# 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG +# ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS +# kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr +# bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM +# jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL +# W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF +# emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu +# rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE +# FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn +# G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW +# M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 +# Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi +# AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV +# 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js +# Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx +# MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 +# LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv +# 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn +# OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 +# bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 +# rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU +# 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF +# NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ +# HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU +# CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi +# excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm +# dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq +# ELQdVTNYs6FwZvKhggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMx +# EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT +# FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp +# Y2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE5MzUtMDNF +# MC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMK +# AQEwBwYFKw4DAhoDFQDvu8hkhEMt5Z8Ldefls7z1LVU8pqCBgzCBgKR+MHwxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jv +# c29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA7Ib4ATAi +# GA8yMDI1MTAwMTAwNDQ0OVoYDzIwMjUxMDAyMDA0NDQ5WjB3MD0GCisGAQQBhFkK +# BAExLzAtMAoCBQDshvgBAgEAMAoCAQACAgMJAgH/MAcCAQACAhLwMAoCBQDsiEmB +# AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSCh +# CjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAD3v8Ir++pFMLl+70MQllUe7 +# y1X+3up9XEdZ5Jgj1oOhyD2bhCrxS0I5/kMB6bbFrR3JhRoW0/Q6LcHQLmFs5s2H +# ITSHAHDIStYygwXLbmh7uNq7yNSVTfIYJkyBGSIqnclKkC4wJBU60FiVKp0vjPjk +# aO0RDTm2ZCPQMziPIKKiLcI95uYjPRB04y0HC17/yQlLf8MzjGNk2PnwRHwFZWbG +# pRs/Mpwfi1k5lV0LZCuicE6tX2xkrGfl9NLKtLOKiyOuIDf9BBGKYCo8Wm207tv4 +# W1VcF0E8yv+Z3slAKl9Wwf6pAfNIAf8wiVolU0pw1GpKEz931eoYe1He+ajZSlwx +# ggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA +# Agy5ZOM1nOz0rgABAAACDDANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkD +# MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCDom1wiaOu3uaIoHHwldIBT +# K1lxDnc3zCxmxxjPMzMWmzCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EINUo +# 17cFMZN46MI5NfIAg9Ux5cO5xM9inre5riuOZ8ItMIGYMIGApH4wfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIMuWTjNZzs9K4AAQAAAgwwIgQgu7V5 +# UxtdecnnvsuZx1H4TMOBvhwcH0wzCRa0UMgjhyowDQYJKoZIhvcNAQELBQAEggIA +# VItBcHf3YhRXhgDMZNumg875L5hFCOvyOO3uwNCIKFuYahDGgIy9mmmxt4ZLKJN/ +# TVgfkP6EkntDu242Lvdot/U8GYYj1g6h17th2AIgXkqb7fV2L4NGRisyO3/uWw7C +# 6mWYCABRHpaeyDZjpGRYU7ja9TTmaYZatpe4XUBifL+nzLYAu30YUaZBD+wTOTiJ +# 2/vSfyn2ge4KhhmqrJiVgI3Sy0vlzd5iQC7XMMCISBBZMO+yvvSeVHNFkWHQBkvf +# l/qWWHto6lkvo/xLcbZd+FbHD6q4M8qGAATZqlJiITvsOv/LyXAd4lsATde132nN +# SJUxS41IyBR/ZK3/5yA0e1QDdeFvafqg+coAW56ayZRnoU6WATW/z0MDhvwFrLR/ +# H/bQq+xJov7PCaCUMUiY7AaXMxZLjGvQCv4yljY64L3sIUIU9rQkNheQNqzyhRuM +# SOVFKP75aKKHISuTstMT9oAZQWTzwfmSPxifmKfU4XE52RBRCAcwtsM3TF+SX5YJ +# QRknqWdRhAVm5heygE0kY4NQCIzZeZrXl/H7nv/xMlk0/6wglzD/7L3KDdL47F8w +# 2wkP9VYINJB233/RwBm68DZyVo+f1mK6pQnMTss53hyj2F3D4aCvHj2Xxno4bnz2 +# Km6MLiEKprX0Q/mwEdi6kdqVmj2jqjASKXbyQAJH0wM= +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 b/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 new file mode 100644 index 000000000000..2e62ea6e6ac7 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 @@ -0,0 +1,257 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '..\bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = $PSScriptRoot + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } +# endregion + +# SIG # Begin signature block +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBinYxDco4Ms/jt +# y2SUOAGGFlsJymQ7B0Ay6+tcGLbG9KCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz +# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj +# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 +# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh +# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S +# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw +# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW +# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw +# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov +# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx +# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB +# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i +# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL +# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB +# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc +# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh +# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ +# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj +# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc +# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy +# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 +# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK +# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm +# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw +# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD +# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG +# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la +# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc +# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D +# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ +# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk +# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 +# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd +# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL +# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd +# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 +# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS +# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI +# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL +# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD +# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv +# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf +# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF +# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h +# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA +# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn +# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 +# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b +# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ +# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy +# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp +# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi +# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb +# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS +# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL +# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIATt +# akQutmXgLMF/GbL8NirDQVtbkIOFqy28LZj0qbtlMEIGCisGAQQBgjcCAQwxNDAy +# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20wDQYJKoZIhvcNAQEBBQAEggEA17SsiywvTICsAnL5fGyzC/EE26js2hnmpDWC +# a2KoSdvIxLmWYnsXbg5DJb1v6idS2MVDVd46eYYzaeIa8zInxrWqp6MOgJVyLQXh +# N8vGjjWa9qT/+RtlsjT27frDUsBfkkFt3qtn6xyGNKxYvGQ4TX0P9zuEeS//gDyk +# GBZfCjqqRuDkHqevP8ik4DFfObw1iTcRa+ejYfCDTPg9+EDy5stubukg214IoOz+ +# FmvTq9PL3VboTu5x4+iY3L4GVQgOObMYDhuEY2aaeid27EHXOhN4S+pJzK7R6Gz/ +# 5T67FTwteTOuom1s+184WQpLzGYi6UeJsucUzDB1LfwXdD+zHqGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI +# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDaA5MS4DiVLSNBUIDIuXZLs5idxwm77KL7 +# HcuK7/1nagIGaKOvjL6CGBMyMDI1MTAwMTA4MzMwMi4zMzlaMASAAgH0oIHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ +# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv +# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO +# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW +# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 +# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 +# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN +# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 +# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D +# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby +# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV +# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 +# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G +# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i +# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw +# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp +# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud +# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF +# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG +# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt +# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 +# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui +# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U +# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y +# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI +# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc +# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B +# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz +# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD +# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy +# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 +# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 +# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu +# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl +# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg +# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I +# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 +# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ +# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy +# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y +# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H +# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB +# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW +# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B +# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz +# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB +# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB +# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL +# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv +# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr +# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS +# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq +# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 +# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv +# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak +# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK +# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 +# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ +# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep +# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk +# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg +# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW +# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL +# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv +# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx +# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 +# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA +# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM +# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB +# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw +# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I +# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c +# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX +# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO +# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE +# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc +# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI +# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG +# 9w0BCQQxIgQgeYBQLgud1gmcftiFNp1+OdVcUxMZ6LMiJXInMarJqRAwgfoGCyqG +# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve +# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz +# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc +# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICACa6Nq4NPscx13GhxWhaTg5DsYGw0bUo +# Nfeo17hpbR6DlrtvYc7DJC7XBw00ZAyGo6r6wQ6XiXymbFVrnIyymsjp9pjjjEtb +# HaMwU53H10eaCQYvHK4lF37HdpH746RGMSHv6CitJx3C941XprN0Zt44CATmLUS5 +# KjyKF0C2Z+zUz44s27KKb2zZOiNnbIgxRhZ/D2C/JGFOlC9SxjZJrHIeCHDjYd6P +# 21nMFQRvdg5QG7q0GPpg3yEWeu3rJUIo582kSO0jYjwkofc2o0lJPoBfSQc3LvKm +# pveWhnX3Y/JSvJ9hRvN81xqO2aGl+eUgcGhhpzMxjXPHzL73aa5CTrLs3MNR3pwI +# +RmRC0rpKr1hXvefEP+2Vrs89Qbu8C8Vu0llMrvO50T0BLJVIIDUow0mg+zs/MGg +# sEWHZ0K7BAplcyIUkS4jpha+8XCW538M7Uuv3XP53OJgj2Z3gGngixvrnZS+lg+w +# cG4mc4638jAk+N3Jjm13gcFTPmGu2mqXk0DJcYZ+97xLfyng6M1hyAdpXBRCwZpq +# rQFlE7xAFqgLgHLbAQhwHbXuZYufTbGPZ4yceJm4WnFn6LliHInjhy2mvlH8YCib +# eGslVrjejTHq1TQSZIcne1IgWXlFCi8UhBNooSueXIklbPku/w5lleC4fNRNuB/m +# AzaURq/znMHO +# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/CmdletSettings.json b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/CmdletSettings.json new file mode 100644 index 000000000000..fbfce66a5c53 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/CmdletSettings.json @@ -0,0 +1,255 @@ +{ + "EnvironmentConfigurations": [ + { + "environmentType": "INT", + "configApiBaseUrl": "https://dev.api.interfaces.records.teams.microsoft.com", + "resourceId": "4cdeebb1-712e-4b2c-b450-eeef9fc1bc18", + "authority": "https://login.microsoftonline.com/common", + "serviceConfigurations": { + "GPA": { + "clientId": "10b74c53-e4d3-40f9-87ff-b46c872c329b", + "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", + "extensions": {} + }, + "DSSYNC": { + "clientId": "c3d9ab47-b29a-4acb-9935-70f216a3deb3", + "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", + "extensions": {} + }, + "LROS": { + "clientId": "ec73d46d-93d3-49b1-86e4-996b33fca112", + "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", + "extensions": {} + }, + "NGTPROV": { + "clientId": "036102b5-b27c-4591-91aa-1e1eb70bdb1a", + "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", + "extensions": {} + } + } + }, + { + "environmentType": "MultiTenant", + "configApiBaseUrl": "https://api.interfaces.records.teams.microsoft.com", + "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "authority": "https://login.microsoftonline.com/common", + "serviceConfigurations": { + "GPA": { + "clientId": "e6fe3e2b-7019-44bf-a0e8-e1e2745081fb", + "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", + "extensions": {} + }, + "DSSYNC": { + "clientId": "22e233c6-8873-48e8-a1b7-d363357d706d", + "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", + "extensions": {} + }, + "LROS": { + "clientId": "0f7fe8a8-182d-4625-8e95-4cbc7a4384e0", + "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", + "extensions": {} + }, + "NGTPROV": { + "clientId": "a4d23afe-0054-4eba-b30f-c99bd5314e9c", + "redirectUri": "https://login.microsoftonline.com/common/oauth2/nativeclient", + "extensions": {} + } + } + }, + { + "environmentType": "Ag08", + "configApiBaseUrl": "https://api.interfaces.records.teams.eaglex.ic.gov", + "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "authority": "https://login.microsoftonline.eaglex.ic.gov/common", + "serviceConfigurations": { + "GPA": { + "clientId": "7cd1687e-80b2-41a8-9fe3-9bd47a36fd77", + "redirectUri": "https://login.microsoftonline.eaglex.ic.gov/common/oauth2/nativeclient", + "extensions": {} + }, + "DSSYNC": { + "clientId": "7cd1687e-80b2-41a8-9fe3-9bd47a36fd77", + "redirectUri": "https://login.microsoftonline.eaglex.ic.gov/common/oauth2/nativeclient", + "extensions": {} + }, + "LROS": { + "clientId": "7cd1687e-80b2-41a8-9fe3-9bd47a36fd77", + "redirectUri": "https://login.microsoftonline.eaglex.ic.gov/common/oauth2/nativeclient", + "extensions": {} + }, + "NGTPROV": { + "clientId": "7cd1687e-80b2-41a8-9fe3-9bd47a36fd77", + "redirectUri": "https://login.microsoftonline.eaglex.ic.gov/common/oauth2/nativeclient", + "extensions": {} + } + } + }, + { + "environmentType": "Ag09", + "configApiBaseUrl": "https://api.interfaces.records.teams.microsoft.scloud", + "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "authority": "https://login.microsoftonline.microsoft.scloud/common", + "serviceConfigurations": { + "GPA": { + "clientId": "26f9beea-b439-45e6-88fe-b3fe6ff4387c", + "redirectUri": "https://login.microsoftonline.microsoft.scloud/common/oauth2/nativeclient", + "extensions": {} + }, + "DSSYNC": { + "clientId": "26f9beea-b439-45e6-88fe-b3fe6ff4387c", + "redirectUri": "https://login.microsoftonline.microsoft.scloud/common/oauth2/nativeclient", + "extensions": {} + }, + "LROS": { + "clientId": "26f9beea-b439-45e6-88fe-b3fe6ff4387c", + "redirectUri": "https://login.microsoftonline.microsoft.scloud/common/oauth2/nativeclient", + "extensions": {} + }, + "NGTPROV": { + "clientId": "26f9beea-b439-45e6-88fe-b3fe6ff4387c", + "redirectUri": "https://login.microsoftonline.microsoft.scloud/common/oauth2/nativeclient", + "extensions": {} + } + } + }, + { + "environmentType": "Gallatin", + "configApiBaseUrl": "https://api.interfaces.records.teams.microsoftonline.cn", + "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "authority": "https://login.partner.microsoftonline.cn/common", + "serviceConfigurations": { + "GPA": { + "clientId": "3eeff3ec-e916-439a-bea9-d6768b4bc311", + "redirectUri": "https://login.partner.microsoftonline.cn/common/oauth2/nativeclient", + "extensions": {} + }, + "DSSYNC": { + "clientId": "3eeff3ec-e916-439a-bea9-d6768b4bc311", + "redirectUri": "https://login.partner.microsoftonline.cn/common/oauth2/nativeclient", + "extensions": {} + }, + "LROS": { + "clientId": "3eeff3ec-e916-439a-bea9-d6768b4bc311", + "redirectUri": "https://login.partner.microsoftonline.cn/common/oauth2/nativeclient", + "extensions": {} + }, + "NGTPROV": { + "clientId": "3eeff3ec-e916-439a-bea9-d6768b4bc311", + "redirectUri": "https://login.partner.microsoftonline.cn/common/oauth2/nativeclient", + "extensions": {} + } + } + }, + { + "environmentType": "Itar", + "configApiBaseUrl": "https://api.interfaces.records.gov.teams.microsoft.us", + "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "authority": "https://login.microsoftonline.us/common", + "serviceConfigurations": { + "GPA": { + "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "DSSYNC": { + "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "LROS": { + "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "NGTPROV": { + "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + } + } + }, + { + "environmentType": "GCCH", + "configApiBaseUrl": "https://api.interfaces.records.gov.teams.microsoft.us", + "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "authority": "https://login.microsoftonline.us/common", + "serviceConfigurations": { + "GPA": { + "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "DSSYNC": { + "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "LROS": { + "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "NGTPROV": { + "clientId": "b72af4de-f00a-45a5-8378-aec2f317cf27", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + } + } + }, + { + "environmentType": "DOD", + "configApiBaseUrl": "https://api.interfaces.records.dod.teams.microsoft.us", + "resourceId": "48ac35b8-9aa8-4d74-927d-1f4a14a0b239", + "authority": "https://login.microsoftonline.us/common", + "serviceConfigurations": { + "GPA": { + "clientId": "0a0e38c7-8ce5-4e77-a099-9a9f3c5d09aa", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "DSSYNC": { + "clientId": "0a0e38c7-8ce5-4e77-a099-9a9f3c5d09aa", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "LROS": { + "clientId": "0a0e38c7-8ce5-4e77-a099-9a9f3c5d09aa", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + }, + "NGTPROV": { + "clientId": "0a0e38c7-8ce5-4e77-a099-9a9f3c5d09aa", + "redirectUri": "https://login.microsoftonline.us/common/oauth2/nativeclient", + "extensions": {} + } + } + } + ], + "ServiceUriSuffixes": { + "GPA": { + "ReprocessGroupPolicyAssignment": "Skype.Policy/groupPolicyAssignments/{groupId}/policyTypes/{policyType}/reprocess?tenantRegion={region}", + "RefreshGroupUsers": "Skype.Policy/groupPolicyAssignments/{groupId}/refresh/users?tenantRegion={region}&userId={userId}&policyType={policyType}", + "GetGPAGroupMembers": "Teams.InternalSupport/groups/{groupId}/users?all={all}", + "GetGPAUserMembership": "Teams.InternalSupport/users/{userId}/memberOf", + "GetGroupPolicyAssignment": "Skype.Policy/groupPolicyAssignments/oce/{groupId}/policyTypes/{policyType}", + "GetGroupPolicyAssignments": "Skype.Policy/groupPolicyAssignments/oce/{groupId}/policyTypes", + "GetPolicyAssignmentForGroups": "Skype.Policy/groupPolicyAssignments/oce?policyType={policyType}", + "GetAllGroupPolicyAssignments": "Skype.Policy/groupPolicyAssignments/oce" + }, + "DSSYNC": { + "DirectoryObjectSync": "Teams.InternalSupport/ProvisioningOperations/DsRequest" + }, + "LROS": { + "GetBatchOperationStatusForRegion": "Skype.Policy/assignments/operations/status/{operationId}?region={region}", + "GetAllBatchOperationStatusForRegion": "Skype.Policy/assignments/operations/status?region={region}", + "GetBatchOperationDefinitionForRegion": "Skype.Policy/assignments/operations/definition/{operationId}?region={region}", + "ReprocessBatchOperationForRegion": "Skype.Policy/assignments/operations/reprocess/{operationId}?region={region}" + }, + "NGTPROV": { + "MoveNgtProvInstance": "Teams.InternalSupport/NgtProvOperations/Failover/{sideA}/{sideB}?region={region}", + "NgtProvInstanceFailOverStatus": "Teams.InternalSupport/NgtProvOperations/FailoverStatus?region={region}", + "UserProvHistory": "Teams.InternalSupport/AdminStoreOperations/userHistory/{userId}/{region}", + "GenericNgtProvCommand": "Teams.InternalSupport/ProvisioningOperations/runHandler/{region}?handler={handler}?tenant={tenant}?target={target}?serviceInstance={serviceInstance}" + } + } +} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll new file mode 100644 index 000000000000..fdca7bac6a8b Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll new file mode 100644 index 000000000000..ad34a9aef84c Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll new file mode 100644 index 000000000000..78b1b1c89c60 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll new file mode 100644 index 000000000000..ec2db7967083 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll new file mode 100644 index 000000000000..9b7c5d8faa25 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll new file mode 100644 index 000000000000..e8a18a4ec99e Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll new file mode 100644 index 000000000000..fc5d616f68d9 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll new file mode 100644 index 000000000000..d621de85f24f Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll new file mode 100644 index 000000000000..897b044501b1 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 000000000000..e29ee64f615e Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll new file mode 100644 index 000000000000..47529d6aa416 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll new file mode 100644 index 000000000000..393cbf1dee97 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll new file mode 100644 index 000000000000..d787a8775b5c Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll new file mode 100644 index 000000000000..0a0209905e26 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll new file mode 100644 index 000000000000..ca9a777af241 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll new file mode 100644 index 000000000000..5169c48c914f Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll new file mode 100644 index 000000000000..bf89be4980de Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll new file mode 100644 index 000000000000..9e41800ce4ae Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll new file mode 100644 index 000000000000..2124ac0d246b Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll new file mode 100644 index 000000000000..4a29bc7db7f8 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 000000000000..3324ed45ef53 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 000000000000..8decf370fcac Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 000000000000..45ae17b27e42 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll new file mode 100644 index 000000000000..2c6c10570125 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll new file mode 100644 index 000000000000..d3056a460fce Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll new file mode 100644 index 000000000000..015c3e2fbf96 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll new file mode 100644 index 000000000000..1ad797c94a88 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll new file mode 100644 index 000000000000..2b5b8520c438 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll new file mode 100644 index 000000000000..595ee81d4fb4 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll new file mode 100644 index 000000000000..9d95160a36f9 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll new file mode 100644 index 000000000000..236f96369c04 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json new file mode 100644 index 000000000000..0300bacaa346 --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json @@ -0,0 +1,3134 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v3.1", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v3.1": { + "Microsoft.Teams.PowerShell.Module/7.4.0": { + "dependencies": { + "Microsoft.NETCore.Targets": "3.1.0", + "Microsoft.Teams.ConfigAPI.Cmdlets": "8.925.3", + "Microsoft.Teams.Policy.Administration": "21.4.4", + "Microsoft.Teams.Policy.Administration.Cmdlets.OCE": "0.1.12", + "Microsoft.Teams.PowerShell.Connect": "1.7.4", + "Microsoft.Teams.PowerShell.TeamsCmdlets": "1.5.6", + "NuGet.Build.Tasks.Pack": "5.2.0", + "NuGet.CommandLine": "5.11.6", + "System.Management.Automation": "6.2.7", + "System.Net.Http": "4.3.4", + "System.Text.RegularExpressions": "4.3.1" + }, + "runtime": { + "Microsoft.Teams.PowerShell.Module.dll": {} + } + }, + "Microsoft.ApplicationInsights/2.9.1": { + "dependencies": { + "NETStandard.Library": "1.6.1", + "System.Diagnostics.DiagnosticSource": "6.0.1", + "System.Diagnostics.StackTrace": "4.3.0", + "System.Net.Requests": "4.3.0", + "System.Threading.Thread": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.ApplicationInsights.dll": { + "assemblyVersion": "2.9.1.0", + "fileVersion": "2.9.1.26108" + } + } + }, + "Microsoft.Applications.Events.Server/1.1.2.97": { + "dependencies": { + "Microsoft.Data.Sqlite": "1.1.1", + "Microsoft.Extensions.Logging": "1.1.2", + "NETStandard.Library": "1.6.1", + "Newtonsoft.Json": "13.0.3", + "System.Xml.XPath": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Applications.Events.Server.dll": { + "assemblyVersion": "1.1.2.97", + "fileVersion": "1.1.2.97" + } + } + }, + "Microsoft.Azure.KeyVault.AzureServiceDeploy/3.0.0": { + "dependencies": { + "Microsoft.Azure.KeyVault.Jose": "3.0.0", + "Microsoft.Rest.ClientRuntime": "2.3.21", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "NETStandard.Library": "1.6.1", + "Newtonsoft.Json": "13.0.3", + "System.Net.Http": "4.3.4" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.0.0.0" + } + } + }, + "Microsoft.Azure.KeyVault.Core/3.0.0": { + "dependencies": { + "NETStandard.Library": "1.6.1" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.KeyVault.Core.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.0.0.1" + } + } + }, + "Microsoft.Azure.KeyVault.Cryptography/3.0.0": { + "dependencies": { + "Microsoft.Azure.KeyVault.Core": "3.0.0", + "Microsoft.Rest.ClientRuntime": "2.3.21", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "NETStandard.Library": "1.6.1", + "Newtonsoft.Json": "13.0.3", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Net.Http": "4.3.4", + "System.Runtime.Extensions": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.5.0", + "System.Security.Cryptography.Primitives": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.KeyVault.Cryptography.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.0.0.1" + } + } + }, + "Microsoft.Azure.KeyVault.Jose/3.0.0": { + "dependencies": { + "Microsoft.Azure.KeyVault.Core": "3.0.0", + "Microsoft.Azure.KeyVault.Cryptography": "3.0.0", + "Microsoft.Rest.ClientRuntime": "2.3.21", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "NETStandard.Library": "1.6.1", + "Newtonsoft.Json": "13.0.3", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Net.Http": "4.3.4", + "System.Runtime.Extensions": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.5.0", + "System.Security.Cryptography.Primitives": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.KeyVault.Jose.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.0.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.Data.Sqlite/1.1.1": { + "dependencies": { + "NETStandard.Library": "1.6.1", + "SQLite": "3.13.0", + "System.Data.Common": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Data.Sqlite.dll": { + "assemblyVersion": "1.1.1.0", + "fileVersion": "1.1.1.30427" + } + } + }, + "Microsoft.Extensions.Configuration/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/1.1.1": { + "dependencies": { + "NETStandard.Library": "1.6.1", + "System.ComponentModel": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "1.1.1.0", + "fileVersion": "1.1.1.30427" + } + } + }, + "Microsoft.Extensions.Logging/1.1.2": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "1.1.1", + "Microsoft.Extensions.Logging.Abstractions": "1.1.2", + "NETStandard.Library": "1.6.1" + }, + "runtime": { + "lib/netstandard1.1/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "1.1.2.0", + "fileVersion": "1.1.2.30427" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/1.1.2": { + "dependencies": { + "NETStandard.Library": "1.6.1" + }, + "runtime": { + "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "1.1.2.0", + "fileVersion": "1.1.2.30427" + } + } + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Ic3.TenantAdminApi.Common.Helper/1.0.28": { + "dependencies": { + "Microsoft.Azure.KeyVault.AzureServiceDeploy": "3.0.0", + "Microsoft.Extensions.Configuration": "8.0.0", + "Polly": "7.2.4" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll": { + "assemblyVersion": "1.0.28.0", + "fileVersion": "1.0.28.0" + } + } + }, + "Microsoft.Identity.Client/4.70.1": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "6.35.0", + "System.Diagnostics.DiagnosticSource": "6.0.1" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.70.1.0", + "fileVersion": "4.70.1.0" + } + } + }, + "Microsoft.Identity.Client.Broker/4.70.1": { + "dependencies": { + "Microsoft.Identity.Client": "4.70.1", + "Microsoft.Identity.Client.NativeInterop": "0.18.1" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll": { + "assemblyVersion": "4.70.1.0", + "fileVersion": "4.70.1.0" + } + } + }, + "Microsoft.Identity.Client.Desktop/4.70.1": { + "dependencies": { + "Microsoft.Identity.Client": "4.70.1", + "Microsoft.Identity.Client.Broker": "4.70.1", + "Microsoft.Web.WebView2": "1.0.864.35" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll": { + "assemblyVersion": "4.70.1.0", + "fileVersion": "4.70.1.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/4.70.1": { + "dependencies": { + "Microsoft.Identity.Client": "4.70.1", + "System.IO.FileSystem.AccessControl": "5.0.0", + "System.Security.Cryptography.ProtectedData": "7.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "4.70.1.0", + "fileVersion": "4.70.1.0" + } + } + }, + "Microsoft.Identity.Client.NativeInterop/0.18.1": { + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll": { + "assemblyVersion": "0.18.1.0", + "fileVersion": "0.18.1.0" + } + }, + "runtimeTargets": { + "runtimes/linux-x64/native/libmsalruntime.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-arm64/native/msalruntime_arm64.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/msalruntime.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/msalruntime_x86.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "Microsoft.IdentityModel.Abstractions/6.35.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "6.35.0.0", + "fileVersion": "6.35.0.41201" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/6.8.0": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "6.8.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "6.8.0.0", + "fileVersion": "6.8.0.11012" + } + } + }, + "Microsoft.IdentityModel.Logging/6.8.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "6.8.0.0", + "fileVersion": "6.8.0.11012" + } + } + }, + "Microsoft.IdentityModel.Tokens/6.8.0": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "Microsoft.IdentityModel.Logging": "6.8.0", + "System.Security.Cryptography.Cng": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "6.8.0.0", + "fileVersion": "6.8.0.11012" + } + } + }, + "Microsoft.Management.Infrastructure/1.0.0": { + "dependencies": { + "NETStandard.Library": "1.6.1", + "System.Runtime.CompilerServices.VisualC": "4.3.0", + "System.Runtime.Serialization.Xml": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Threading.ThreadPool": "4.3.0" + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + }, + "runtimes/unix/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-arm/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win-arm", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win-arm", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win-arm64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win-arm64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win10-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win10-x64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win10-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win10-x64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win10-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win10-x86", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win10-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win10-x86", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win7-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win7-x64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win7-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win7-x64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win7-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win7-x86", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win7-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win7-x86", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win8-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win8-x64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win8-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win8-x64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win8-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win8-x86", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win8-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win8-x86", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win81-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win81-x64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win81-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win81-x64", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win81-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { + "rid": "win81-x86", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win81-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { + "rid": "win81-x86", + "assetType": "runtime", + "assemblyVersion": "1.0.0.0", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win-arm", + "assetType": "native", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm/native/mi.dll": { + "rid": "win-arm", + "assetType": "native", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm/native/miutils.dll": { + "rid": "win-arm", + "assetType": "native", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm64/native/mi.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win-arm64/native/miutils.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "10.0.16299.15" + }, + "runtimes/win10-x64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win10-x64", + "assetType": "native", + "fileVersion": "10.0.14886.1000" + }, + "runtimes/win10-x64/native/mi.dll": { + "rid": "win10-x64", + "assetType": "native", + "fileVersion": "10.0.14886.1000" + }, + "runtimes/win10-x64/native/miutils.dll": { + "rid": "win10-x64", + "assetType": "native", + "fileVersion": "10.0.14886.1000" + }, + "runtimes/win10-x86/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win10-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win10-x86/native/mi.dll": { + "rid": "win10-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win10-x86/native/miutils.dll": { + "rid": "win10-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win7-x64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win7-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win7-x64/native/mi.dll": { + "rid": "win7-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win7-x64/native/miutils.dll": { + "rid": "win7-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win7-x86/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win7-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win7-x86/native/mi.dll": { + "rid": "win7-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win7-x86/native/miutils.dll": { + "rid": "win7-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win8-x64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win8-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win8-x64/native/mi.dll": { + "rid": "win8-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win8-x64/native/miutils.dll": { + "rid": "win8-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win8-x86/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win8-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win8-x86/native/mi.dll": { + "rid": "win8-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win8-x86/native/miutils.dll": { + "rid": "win8-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win81-x64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win81-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win81-x64/native/mi.dll": { + "rid": "win81-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win81-x64/native/miutils.dll": { + "rid": "win81-x64", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win81-x86/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { + "rid": "win81-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win81-x86/native/mi.dll": { + "rid": "win81-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + }, + "runtimes/win81-x86/native/miutils.dll": { + "rid": "win81-x86", + "assetType": "native", + "fileVersion": "10.0.14394.1000" + } + } + }, + "Microsoft.NETCore.Platforms/5.0.0": {}, + "Microsoft.NETCore.Targets/3.1.0": {}, + "Microsoft.PowerShell.CoreCLR.Eventing/6.2.7": { + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + }, + "runtimeTargets": { + "runtimes/linux-arm/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { + "rid": "linux-arm", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + }, + "runtimes/linux-x64/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { + "rid": "linux-x64", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-arm/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { + "rid": "win-arm", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + }, + "runtimes/win-arm64/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { + "rid": "win-arm64", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + }, + "runtimes/win-x64/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { + "rid": "win-x64", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + }, + "runtimes/win-x86/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { + "rid": "win-x86", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + } + } + }, + "Microsoft.PowerShell.Native/6.2.0": { + "runtimeTargets": { + "runtimes/linux-arm/native/libpsl-native.so": { + "rid": "linux-arm", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-arm64/native/libpsl-native.so": { + "rid": "linux-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-musl-x64/native/libpsl-native.so": { + "rid": "linux-musl-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libmi.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libpsl-native.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libpsrpclient.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx/native/libmi.dylib": { + "rid": "osx", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx/native/libpsl-native.dylib": { + "rid": "osx", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx/native/libpsrpclient.dylib": { + "rid": "osx", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-arm/native/PowerShell.Core.Instrumentation.dll": { + "rid": "win-arm", + "assetType": "native", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-arm/native/pwrshplugin.dll": { + "rid": "win-arm", + "assetType": "native", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-arm/native/pwrshplugin.pdb": { + "rid": "win-arm", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-arm64/native/PowerShell.Core.Instrumentation.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-arm64/native/pwrshplugin.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-arm64/native/pwrshplugin.pdb": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/PowerShell.Core.Instrumentation.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-x64/native/pwrshplugin.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-x64/native/pwrshplugin.pdb": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x86/native/PowerShell.Core.Instrumentation.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-x86/native/pwrshplugin.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "10.0.10011.16384" + }, + "runtimes/win-x86/native/pwrshplugin.pdb": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "0.0.0.0" + } + } + }, + "Microsoft.Rest.ClientRuntime/2.3.21": { + "dependencies": { + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.21.0" + } + } + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.21", + "Newtonsoft.Json": "13.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.Azure.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.3.18.0" + } + } + }, + "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { + "dependencies": { + "Newtonsoft.Json": "13.0.3", + "PowerShellStandard.Library": "5.1.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll": { + "assemblyVersion": "3.2.4.0", + "fileVersion": "3.2.4.0" + } + } + }, + "Microsoft.Teams.ConfigAPI.Cmdlets/8.925.3": {}, + "Microsoft.Teams.Policy.Administration/21.4.4": { + "runtime": { + "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll": { + "assemblyVersion": "21.4.4.0", + "fileVersion": "21.4.4.0" + }, + "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll": { + "assemblyVersion": "1.0.75.0", + "fileVersion": "1.0.75.0" + }, + "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll": { + "assemblyVersion": "1.0.75.0", + "fileVersion": "1.0.75.0" + }, + "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll": { + "assemblyVersion": "21.4.4.0", + "fileVersion": "21.4.4.0" + }, + "lib/netcoreapp3.1/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + }, + "lib/netcoreapp3.1/System.Management.Automation.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "5.1.1.0" + }, + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "Microsoft.Teams.Policy.Administration.Cmdlets.OCE/0.1.12": { + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.2.4", + "Microsoft.Teams.Policy.Administration.Configurations": "12.2.29", + "Newtonsoft.Json": "13.0.3", + "System.Net.Http": "4.3.4" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Microsoft.Teams.Policy.Administration.Configurations/12.2.29": { + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0" + } + }, + "Microsoft.Teams.PowerShell.Connect/1.7.4": { + "dependencies": { + "Microsoft.Applications.Events.Server": "1.1.2.97", + "Microsoft.Ic3.TenantAdminApi.Common.Helper": "1.0.28", + "Microsoft.Identity.Client": "4.70.1", + "Microsoft.Identity.Client.Broker": "4.70.1", + "Microsoft.Identity.Client.Desktop": "4.70.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.70.1", + "Microsoft.Rest.ClientRuntime": "2.3.21", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.2.4", + "Newtonsoft.Json": "13.0.3", + "OneCollectorChannel": "1.1.0.234", + "System.IdentityModel.Tokens.Jwt": "6.8.0", + "System.Management.Automation": "6.2.7", + "System.Net.Http": "4.3.4", + "System.Security.Cryptography.ProtectedData": "7.0.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll": { + "assemblyVersion": "1.7.4.0", + "fileVersion": "1.7.4.0" + }, + "lib/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll": { + "assemblyVersion": "1.0.864.35", + "fileVersion": "1.0.864.35" + }, + "lib/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll": { + "assemblyVersion": "1.0.864.35", + "fileVersion": "1.0.864.35" + }, + "lib/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll": { + "assemblyVersion": "1.0.864.35", + "fileVersion": "1.0.864.35" + }, + "lib/netcoreapp3.1/OneCollectorChannel.dll": { + "assemblyVersion": "1.1.0.234", + "fileVersion": "1.1.0.234" + }, + "lib/netcoreapp3.1/Polly.dll": { + "assemblyVersion": "7.0.0.0", + "fileVersion": "7.2.4.982" + }, + "lib/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.1523.11507" + }, + "lib/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + }, + "lib/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "6.8.0.0", + "fileVersion": "6.8.0.11012" + }, + "lib/netcoreapp3.1/System.Management.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.6.26515.6" + }, + "lib/netcoreapp3.1/System.Security.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + }, + "lib/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "7.0.0.0", + "fileVersion": "7.0.22.51805" + }, + "lib/netcoreapp3.1/System.Security.Principal.Windows.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + } + } + }, + "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.6": { + "dependencies": { + "Microsoft.Teams.PowerShell.Connect": "1.7.4", + "Newtonsoft.Json": "13.0.3", + "Polly": "7.2.4", + "Polly.Contrib.WaitAndRetry": "1.1.1", + "System.Management.Automation": "6.2.7", + "System.Net.Http": "4.3.4" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll": { + "assemblyVersion": "1.5.6.0", + "fileVersion": "1.5.6.0" + }, + "lib/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.1.1.0" + } + } + }, + "Microsoft.Web.WebView2/1.0.864.35": { + "runtimeTargets": { + "runtimes/win-arm64/native/WebView2Loader.dll": { + "rid": "win-arm64", + "assetType": "native", + "fileVersion": "1.0.864.35" + }, + "runtimes/win-x64/native/WebView2Loader.dll": { + "rid": "win-x64", + "assetType": "native", + "fileVersion": "1.0.864.35" + }, + "runtimes/win-x86/native/WebView2Loader.dll": { + "rid": "win-x86", + "assetType": "native", + "fileVersion": "1.0.864.35" + } + } + }, + "Microsoft.Win32.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "Microsoft.Win32.Registry/4.5.0": { + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Microsoft.Win32.Registry.AccessControl/4.5.0": { + "dependencies": { + "Microsoft.Win32.Registry": "4.5.0", + "System.Security.AccessControl": "5.0.0" + } + }, + "NETStandard.Library/1.6.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.Win32.Primitives": "4.3.0", + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Console": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.Compression.ZipFile": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.Net.Http": "4.3.4", + "System.Net.Primitives": "4.3.0", + "System.Net.Sockets": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.1", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Timer": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0" + } + }, + "Newtonsoft.Json/13.0.3": {}, + "NuGet.Build.Tasks.Pack/5.2.0": {}, + "NuGet.CommandLine/5.11.6": {}, + "OneCollectorChannel/1.1.0.234": { + "dependencies": { + "Microsoft.ApplicationInsights": "2.9.1", + "Microsoft.Applications.Events.Server": "1.1.2.97" + } + }, + "Polly/7.2.4": {}, + "Polly.Contrib.WaitAndRetry/1.1.1": {}, + "PowerShellStandard.Library/5.1.0": {}, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0" + } + }, + "runtime.native.System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, + "SQLite/3.13.0": { + "runtimeTargets": { + "runtimes/linux-x64/native/libsqlite3.so": { + "rid": "linux-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libsqlite3.dylib": { + "rid": "osx-x64", + "assetType": "native", + "fileVersion": "0.0.0.0" + }, + "runtimes/win7-x64/native/sqlite3.dll": { + "rid": "win7-x64", + "assetType": "native", + "fileVersion": "3.13.0.0" + }, + "runtimes/win7-x86/native/sqlite3.dll": { + "rid": "win7-x86", + "assetType": "native", + "fileVersion": "3.13.0.0" + } + } + }, + "System.AppContext/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Buffers/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading": "4.3.0" + } + }, + "System.CodeDom/4.5.0": {}, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Collections.Immutable/1.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Configuration.ConfigurationManager/4.5.0": { + "dependencies": { + "System.Security.Cryptography.ProtectedData": "7.0.0", + "System.Security.Permissions": "4.5.0" + } + }, + "System.Console/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.IO": "4.3.0", + "System.Runtime": "4.3.1", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Data.Common/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.1", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Diagnostics.DiagnosticSource/6.0.1": { + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Diagnostics.StackTrace/4.3.0": { + "dependencies": { + "System.IO.FileSystem": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Metadata": "1.4.1", + "System.Runtime": "4.3.1" + } + }, + "System.Diagnostics.Tools/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.DirectoryServices/4.5.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.IO.FileSystem.AccessControl": "5.0.0", + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IdentityModel.Tokens.Jwt/6.8.0": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "6.8.0", + "Microsoft.IdentityModel.Tokens": "6.8.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Buffers": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + } + }, + "System.IO.Compression.ZipFile/4.3.0": { + "dependencies": { + "System.Buffers": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.AccessControl/5.0.0": { + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + }, + "runtimeTargets": { + "runtimes/win/lib/netstandard2.0/System.IO.FileSystem.AccessControl.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + } + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Management/4.5.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.Win32.Registry": "4.5.0", + "System.CodeDom": "4.5.0" + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp2.0/System.Management.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Management.Automation/6.2.7": { + "dependencies": { + "Microsoft.Management.Infrastructure": "1.0.0", + "Microsoft.PowerShell.CoreCLR.Eventing": "6.2.7", + "Microsoft.PowerShell.Native": "6.2.0", + "Microsoft.Win32.Registry.AccessControl": "4.5.0", + "Newtonsoft.Json": "13.0.3", + "System.Configuration.ConfigurationManager": "4.5.0", + "System.DirectoryServices": "4.5.0", + "System.IO.FileSystem.AccessControl": "5.0.0", + "System.Management": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "5.0.0", + "System.Security.Cryptography.Pkcs": "4.5.2", + "System.Security.Permissions": "4.5.0", + "System.Text.Encoding.CodePages": "4.5.1" + }, + "runtimeTargets": { + "runtimes/linux-arm/lib/netcoreapp2.1/System.Management.Automation.dll": { + "rid": "linux-arm", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + }, + "runtimes/linux-x64/lib/netcoreapp2.1/System.Management.Automation.dll": { + "rid": "linux-x64", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "0.0.0.0" + }, + "runtimes/osx/lib/netcoreapp2.1/System.Management.Automation.dll": { + "rid": "osx", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "0.0.0.0" + }, + "runtimes/win-arm/lib/netcoreapp2.1/System.Management.Automation.dll": { + "rid": "win-arm", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + }, + "runtimes/win-arm64/lib/netcoreapp2.1/System.Management.Automation.dll": { + "rid": "win-arm64", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + }, + "runtimes/win-x64/lib/netcoreapp2.1/System.Management.Automation.dll": { + "rid": "win-x64", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + }, + "runtimes/win-x86/lib/netcoreapp2.1/System.Management.Automation.dll": { + "rid": "win-x86", + "assetType": "runtime", + "assemblyVersion": "6.2.7.0", + "fileVersion": "6.2.7.0" + } + } + }, + "System.Memory/4.5.5": {}, + "System.Net.Http/4.3.4": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.DiagnosticSource": "6.0.1", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" + } + }, + "System.Net.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Net.Requests/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Net.Http": "4.3.4", + "System.Net.Primitives": "4.3.0", + "System.Net.WebHeaderCollection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Net.Sockets/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.IO": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Net.WebHeaderCollection/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading": "4.3.0" + } + }, + "System.Private.DataContractSerialization/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.1", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Emit/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Metadata/1.4.1": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Immutable": "1.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Runtime/4.3.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0" + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, + "System.Runtime.CompilerServices.VisualC/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Runtime.Serialization.Xml/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Private.DataContractSerialization": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Security.AccessControl/5.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + }, + "runtimeTargets": { + "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + } + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" + } + }, + "System.Security.Cryptography.Cng/4.5.0": {}, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" + } + }, + "System.Security.Cryptography.Pkcs/4.5.2": { + "dependencies": { + "System.Security.Cryptography.Cng": "4.5.0" + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Security.Cryptography.ProtectedData/7.0.0": {}, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.5.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" + } + }, + "System.Security.Permissions/4.5.0": { + "dependencies": { + "System.Security.AccessControl": "5.0.0" + } + }, + "System.Security.Principal.Windows/5.0.0": { + "runtimeTargets": { + "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { + "rid": "unix", + "assetType": "runtime", + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + }, + "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { + "rid": "win", + "assetType": "runtime", + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + } + } + }, + "System.Security.SecureString/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Text.Encoding.CodePages/4.5.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.RegularExpressions/4.3.1": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Thread/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Threading.ThreadPool/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Threading.Timer/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "3.1.0", + "System.Runtime": "4.3.1" + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.1", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + } + }, + "System.Xml.XDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XmlSerializer/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.1", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + } + }, + "System.Xml.XPath/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + } + } + }, + "libraries": { + "Microsoft.Teams.PowerShell.Module/7.4.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.ApplicationInsights/2.9.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gAC+bFCr10ckAdM6VJ+aL0yfYfbYuklukYJoMjaSCOVHH/h4Xr9SiyPq+Befk/yUSdSv7Fa3nl0ynLATKIwKng==", + "path": "microsoft.applicationinsights/2.9.1", + "hashPath": "microsoft.applicationinsights.2.9.1.nupkg.sha512" + }, + "Microsoft.Applications.Events.Server/1.1.2.97": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1PtLBJEGynJ2DZ5peVSdrZ4YzRUI0ZIIgYbqkI358Il2V5QR5KIZBxyuQ6X5JGyuOShRjWnPuucOqiVBbA/JNw==", + "path": "microsoft.applications.events.server/1.1.2.97", + "hashPath": "microsoft.applications.events.server.1.1.2.97.nupkg.sha512" + }, + "Microsoft.Azure.KeyVault.AzureServiceDeploy/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vxOHQm1jNDzTh3zZmzfCYx4y9efEHXAh0+IMymrNSY1dDZGietrpVYUkq9JM9ERfPpHCx2lavFuUxY70idtjmw==", + "path": "microsoft.azure.keyvault.azureservicedeploy/3.0.0", + "hashPath": "microsoft.azure.keyvault.azureservicedeploy.3.0.0.nupkg.sha512" + }, + "Microsoft.Azure.KeyVault.Core/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2B7k5t61MWKs5rLaPqgGL+1OSegeqL7kSKXQ5bAHgeHxg5bwgnMSuRrPcx3fq8KqS8kny39/CCyJegI1VTomIQ==", + "path": "microsoft.azure.keyvault.core/3.0.0", + "hashPath": "microsoft.azure.keyvault.core.3.0.0.nupkg.sha512" + }, + "Microsoft.Azure.KeyVault.Cryptography/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SJLhUSQnPW76R6ikMlwGyL1T8HyHLQWRzV8kodM0O01xJU2CEPvxbsTS7xg7mXZXSEhcROrxHzQRLr7YosiJVA==", + "path": "microsoft.azure.keyvault.cryptography/3.0.0", + "hashPath": "microsoft.azure.keyvault.cryptography.3.0.0.nupkg.sha512" + }, + "Microsoft.Azure.KeyVault.Jose/3.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VUjDq7RcWi+rhuLzFWrxXCXk3h1WbFZG73wWx/AjcqdaIZUJCKPsOXkGGGuBVT7/9ur8aID6naiC1t/RGxzVGA==", + "path": "microsoft.azure.keyvault.jose/3.0.0", + "hashPath": "microsoft.azure.keyvault.jose.3.0.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.Data.Sqlite/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EA/L0kQtkPm037kHyLtt/9dsB4ephlgmXgaQbW2qcb2jcW8R5RbfT9zh1j9amZIqFP3OwpnZ7kt7xTwC8z7M1A==", + "path": "microsoft.data.sqlite/1.1.1", + "hashPath": "microsoft.data.sqlite.1.1.1.nupkg.sha512" + }, + "Microsoft.Extensions.Configuration/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", + "path": "microsoft.extensions.configuration/8.0.0", + "hashPath": "microsoft.extensions.configuration.8.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sKsx2jEkabcI954cB6MoU2LUxv8YTByV8+ifqbFtIF8gFqPb4/CfPxwvxrYW+aXc4V44KKHOyeTDgyc4B7fjYg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/1.1.1", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.1.1.1.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/1.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LydGeNbeOBTLt3qYz8L3wpRl4TIE6sLBTROiWlU5uckJOaTBCtOTonTbUWrdYEvjOEDFlKySsKUI7HmS7sjrrA==", + "path": "microsoft.extensions.logging/1.1.2", + "hashPath": "microsoft.extensions.logging.1.1.2.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/1.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hbMEC7HYh2JJK0sSrMXFdOc0tjjRq8kDiSGzXh07AVbMnReLqWa6hA0QJx7umneMK7/9L3sKJnkB+RLGTagkOg==", + "path": "microsoft.extensions.logging.abstractions/1.1.2", + "hashPath": "microsoft.extensions.logging.abstractions.1.1.2.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", + "path": "microsoft.extensions.primitives/8.0.0", + "hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512" + }, + "Microsoft.Ic3.TenantAdminApi.Common.Helper/1.0.28": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SFH/dfpb728GUh/U0vOvycwLhqyFLAJhrv7CfS8Gb7xAlDnEFGC2K3edL3tYvKdp3pjTxPlLYwE7LpQBgyYZPA==", + "path": "microsoft.ic3.tenantadminapi.common.helper/1.0.28", + "hashPath": "microsoft.ic3.tenantadminapi.common.helper.1.0.28.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.70.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kF80oiTQ/tMIIZ96zOxsd/mM1htYjIDYQENz/UdQq9aa45G1y/4u0TvX9PBrjXk1bH0N8h2jyzNJ6aD27nLsmw==", + "path": "microsoft.identity.client/4.70.1", + "hashPath": "microsoft.identity.client.4.70.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Broker/4.70.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Jo4kXK3po/YJVja8Z5BQSlxctNG55UWQryOSdfLFx3eW0Du/NVvjxnlsc5VK3cosMJ4mcV+kUTk4pU6hMCBc6w==", + "path": "microsoft.identity.client.broker/4.70.1", + "hashPath": "microsoft.identity.client.broker.4.70.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Desktop/4.70.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MHZbPjzBiDcp1k3wXfcaTPhpZTinB1CKYE+IhjNQU69Z7aP3qEF7uZyBplAfDaxYmF5i17KGNWoBhMLzcXRqgg==", + "path": "microsoft.identity.client.desktop/4.70.1", + "hashPath": "microsoft.identity.client.desktop.4.70.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/4.70.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BcHpwvQrqccR/n2Q6wpr63wglWoVg54rXEtV0dah6tZiUpdX5Ull8d3/R63Jlc+YH2TN0bf+GpuNP83MI/V1aw==", + "path": "microsoft.identity.client.extensions.msal/4.70.1", + "hashPath": "microsoft.identity.client.extensions.msal.4.70.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.NativeInterop/0.18.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oMkIwj4ugqOiGFkMWl/OUG/ndB1cYE5ZNhX+J4Jrj7ojT+lmBCBYcajLpvztIO+Is2Eo6qJxSsFLrCUo4UiCrg==", + "path": "microsoft.identity.client.nativeinterop/0.18.1", + "hashPath": "microsoft.identity.client.nativeinterop.0.18.1.nupkg.sha512" + }, + "Microsoft.IdentityModel.Abstractions/6.35.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xuR8E4Rd96M41CnUSCiOJ2DBh+z+zQSmyrYHdYhD6K4fXBcQGVnRCFQ0efROUYpP+p0zC1BLKr0JRpVuujTZSg==", + "path": "microsoft.identitymodel.abstractions/6.35.0", + "hashPath": "microsoft.identitymodel.abstractions.6.35.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/6.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+7JIww64PkMt7NWFxoe4Y/joeF7TAtA/fQ0b2GFGcagzB59sKkTt/sMZWR6aSZht5YC7SdHi3W6yM1yylRGJCQ==", + "path": "microsoft.identitymodel.jsonwebtokens/6.8.0", + "hashPath": "microsoft.identitymodel.jsonwebtokens.6.8.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/6.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Rfh/p4MaN4gkmhPxwbu8IjrmoDncGfHHPh1sTnc0AcM/Oc39/fzC9doKNWvUAjzFb8LqA6lgZyblTrIsX/wDXg==", + "path": "microsoft.identitymodel.logging/6.8.0", + "hashPath": "microsoft.identitymodel.logging.6.8.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/6.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gTqzsGcmD13HgtNePPcuVHZ/NXWmyV+InJgalW/FhWpII1D7V1k0obIseGlWMeA4G+tZfeGMfXr0klnWbMR/mQ==", + "path": "microsoft.identitymodel.tokens/6.8.0", + "hashPath": "microsoft.identitymodel.tokens.6.8.0.nupkg.sha512" + }, + "Microsoft.Management.Infrastructure/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EhQ4sbjNu4rL39YVhRSKMzCaMNBSwSJi17t8LtAOW94WQTkhQCEhlMukFU2AtWOBW3zGIrvg85XRS+w0nuGxKw==", + "path": "microsoft.management.infrastructure/1.0.0", + "hashPath": "microsoft.management.infrastructure.1.0.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", + "path": "microsoft.netcore.platforms/5.0.0", + "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/3.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IAFeJxHy2vlTm3mhiZVP/jKE5DImLUMQc3OV8z5G4ZBeYNAlPSwjC5V/Vx14GIJU6Osmhr+XPmtWW0cv5jSmTw==", + "path": "microsoft.netcore.targets/3.1.0", + "hashPath": "microsoft.netcore.targets.3.1.0.nupkg.sha512" + }, + "Microsoft.PowerShell.CoreCLR.Eventing/6.2.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IV4UFD/ry5o7FcUjnCrgOoZtJ0XsfY7+nQR0VP3b5Zdpj3WDZRkxi3A5RQUKrCFxLK1zbNlC2nu1qufe3pEuCQ==", + "path": "microsoft.powershell.coreclr.eventing/6.2.7", + "hashPath": "microsoft.powershell.coreclr.eventing.6.2.7.nupkg.sha512" + }, + "Microsoft.PowerShell.Native/6.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5YPhSaW4j6R7oJ53RxOroB51k7zKBpi4owEKAY9rI8Cb+cGIIGN/37DoDOZfbKL4DNW0MeAchgNsAEML049y7Q==", + "path": "microsoft.powershell.native/6.2.0", + "hashPath": "microsoft.powershell.native.6.2.0.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime/2.3.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KDYlgTyO693V6pi6SGk9eg+dDvKjuOgmkapbHdpnB1SmTPKpvWxVLIMyARJsCFLfB6axyURUJHOfvxBQ0yJKeg==", + "path": "microsoft.rest.clientruntime/2.3.21", + "hashPath": "microsoft.rest.clientruntime.2.3.21.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+NVBWvRXNwaAPTZUxjUlQggsrf3X0GbiRoxYfgc3kG9E55ZxZxvZPT3nIfC4DNqzGSXUEvmLbckdXgBBzGdUaA==", + "path": "microsoft.rest.clientruntime.azure/3.3.19", + "hashPath": "microsoft.rest.clientruntime.azure.3.3.19.nupkg.sha512" + }, + "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6Dt9GnaRhKGPF2Z0qB+TwWzKbGT2JyuiCH6RumH7nA9jIK+HK2reZIYz2YMeVfpeZd3Cy5yAgt6S5acDEEGiiA==", + "path": "microsoft.teams.configapi.cmdlethostcontract/3.2.4", + "hashPath": "microsoft.teams.configapi.cmdlethostcontract.3.2.4.nupkg.sha512" + }, + "Microsoft.Teams.ConfigAPI.Cmdlets/8.925.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RFkL3bUSCPZcf4mhuOLzfYo5NXOtoAnXRl/1mZYwzE9yTnhelPvTUVBlgWOATUVa797YhdH4xDkSt1q5J3hTRw==", + "path": "microsoft.teams.configapi.cmdlets/8.925.3", + "hashPath": "microsoft.teams.configapi.cmdlets.8.925.3.nupkg.sha512" + }, + "Microsoft.Teams.Policy.Administration/21.4.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KIwun6R7az9pWTS5povCGT95/PyBQl+ZYN0HbWOK+4qXxcckcV9QprSBGzakVpVkEAHm2cgbkzZ2iFNqSZdgw==", + "path": "microsoft.teams.policy.administration/21.4.4", + "hashPath": "microsoft.teams.policy.administration.21.4.4.nupkg.sha512" + }, + "Microsoft.Teams.Policy.Administration.Cmdlets.OCE/0.1.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RmQ5711nUQnVtAC8cAA5vH5jw6S49sDR3G7NWsYL/jGndOdvWBfRMILTC7zwwMW/rFOgEYGNjaPOE0B+uJujLA==", + "path": "microsoft.teams.policy.administration.cmdlets.oce/0.1.12", + "hashPath": "microsoft.teams.policy.administration.cmdlets.oce.0.1.12.nupkg.sha512" + }, + "Microsoft.Teams.Policy.Administration.Configurations/12.2.29": { + "type": "package", + "serviceable": true, + "sha512": "sha512-M+KIgynbG1IpuH2yjBIqX2HgPLR/eGW4qoNVW/JgF8A0Y7hbMe/kh8bIFPMEPahVRFeoOhHLaj61sKPxcCRYIw==", + "path": "microsoft.teams.policy.administration.configurations/12.2.29", + "hashPath": "microsoft.teams.policy.administration.configurations.12.2.29.nupkg.sha512" + }, + "Microsoft.Teams.PowerShell.Connect/1.7.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5PVwBrhY1PrL9866+37a00LJP1BRhKyFuHWyOqb4dmHM44EvlXn4UJbgyvQOEmwr/i3dMRsJHsEWpeOZmmlP7A==", + "path": "microsoft.teams.powershell.connect/1.7.4", + "hashPath": "microsoft.teams.powershell.connect.1.7.4.nupkg.sha512" + }, + "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.6": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0wpSIlsiwCAAP/sZHIn66p7M8QG4IkAGKOJcR8LHuyp7J0uU0ByINsjp/YyOkGtgV9gOFo8Gun8giCz63BQA6w==", + "path": "microsoft.teams.powershell.teamscmdlets/1.5.6", + "hashPath": "microsoft.teams.powershell.teamscmdlets.1.5.6.nupkg.sha512" + }, + "Microsoft.Web.WebView2/1.0.864.35": { + "type": "package", + "serviceable": true, + "sha512": "sha512-V1qyLRiAZ31qmOOCFCjoONgaUfvJRiTHWcJWkT3V7pluM2+P6QAgqmbE4UX7Gt4sh6eN34wqM30OnTZ6HXI/sw==", + "path": "microsoft.web.webview2/1.0.864.35", + "hashPath": "microsoft.web.webview2.1.0.864.35.nupkg.sha512" + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "path": "microsoft.win32.primitives/4.3.0", + "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", + "path": "microsoft.win32.registry/4.5.0", + "hashPath": "microsoft.win32.registry.4.5.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry.AccessControl/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f2aT8NLc9DsB1VEaM4jlYF9DFLA12+ccmWzWA0HEVC3Vgac7tGLSgrU6jtUG+VO1/R5zA6AomQ2pKqJ+5SDWyQ==", + "path": "microsoft.win32.registry.accesscontrol/4.5.0", + "hashPath": "microsoft.win32.registry.accesscontrol.4.5.0.nupkg.sha512" + }, + "NETStandard.Library/1.6.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", + "path": "netstandard.library/1.6.1", + "hashPath": "netstandard.library.1.6.1.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "NuGet.Build.Tasks.Pack/5.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jRE2Ya2cFTEu9XZ6rQtYjKE1a8q2KjCs0b8bd3cGlZ1cdgfZ6EgR2X0LZ/pCbN2WVcCRI7ISEIcqJ5Ji+Z1HMQ==", + "path": "nuget.build.tasks.pack/5.2.0", + "hashPath": "nuget.build.tasks.pack.5.2.0.nupkg.sha512" + }, + "NuGet.CommandLine/5.11.6": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mNGA6kjtSqfKayS9WI9GZWYXvUI1d+34sNXoakImEt8wtXrRn9FNjWLGP4Q8Ik6R94FkVo18vQUtyD8fOWOZUQ==", + "path": "nuget.commandline/5.11.6", + "hashPath": "nuget.commandline.5.11.6.nupkg.sha512" + }, + "OneCollectorChannel/1.1.0.234": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0PoHLy0O9VbBmXe/TPRXkIH1Qmv6kKs/X5ANLP0MHML/TcQAWHKAxhHdilVrKJEnGDyCgH2QKlcEykpHngxCnA==", + "path": "onecollectorchannel/1.1.0.234", + "hashPath": "onecollectorchannel.1.1.0.234.nupkg.sha512" + }, + "Polly/7.2.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bw00Ck5sh6ekduDE3mnCo1ohzuad946uslCDEENu3091+6UKnBuKLo4e+yaNcCzXxOZCXWY2gV4a35+K1d4LDA==", + "path": "polly/7.2.4", + "hashPath": "polly.7.2.4.nupkg.sha512" + }, + "Polly.Contrib.WaitAndRetry/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==", + "path": "polly.contrib.waitandretry/1.1.1", + "hashPath": "polly.contrib.waitandretry.1.1.1.nupkg.sha512" + }, + "PowerShellStandard.Library/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", + "path": "powershellstandard.library/5.1.0", + "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "path": "runtime.native.system.io.compression/4.3.0", + "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" + }, + "SQLite/3.13.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MJfRiz2p6aMVOxrxGMdVzhpzI0oxTgZSwC8eVuOpV8L7yYaFUu8q/OFYwv9P0/aZ/pdEu24O6gma6wZJMTun9A==", + "path": "sqlite/3.13.0", + "hashPath": "sqlite.3.13.0.nupkg.sha512" + }, + "System.AppContext/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", + "path": "system.appcontext/4.3.0", + "hashPath": "system.appcontext.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", + "path": "system.buffers/4.3.0", + "hashPath": "system.buffers.4.3.0.nupkg.sha512" + }, + "System.CodeDom/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gqpR1EeXOuzNQWL7rOzmtdIz3CaXVjSQCiaGOs2ivjPwynKSJYm39X81fdlp7WuojZs/Z5t1k5ni7HtKQurhjw==", + "path": "system.codedom/4.5.0", + "hashPath": "system.codedom.4.5.0.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.Immutable/1.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zukBRPUuNxwy9m4TGWLxKAnoiMc9+B+8VXeXVyPiBPvOd7yLgAlZ1DlsRWJjMx4VsvhhF2+6q6kO2GRbPja6hA==", + "path": "system.collections.immutable/1.3.0", + "hashPath": "system.collections.immutable.1.3.0.nupkg.sha512" + }, + "System.ComponentModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", + "path": "system.componentmodel/4.3.0", + "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" + }, + "System.Configuration.ConfigurationManager/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", + "path": "system.configuration.configurationmanager/4.5.0", + "hashPath": "system.configuration.configurationmanager.4.5.0.nupkg.sha512" + }, + "System.Console/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", + "path": "system.console/4.3.0", + "hashPath": "system.console.4.3.0.nupkg.sha512" + }, + "System.Data.Common/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lm6E3T5u7BOuEH0u18JpbJHxBfOJPuCyl4Kg1RH10ktYLp5uEEE1xKrHW56/We4SnZpGAuCc9N0MJpSDhTHZGQ==", + "path": "system.data.common/4.3.0", + "hashPath": "system.data.common.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/6.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KiLYDu2k2J82Q9BJpWiuQqCkFjRBWVq4jDzKKWawVi9KWzyD0XG3cmfX0vqTQlL14Wi9EufJrbL0+KCLTbqWiQ==", + "path": "system.diagnostics.diagnosticsource/6.0.1", + "hashPath": "system.diagnostics.diagnosticsource.6.0.1.nupkg.sha512" + }, + "System.Diagnostics.StackTrace/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiHg0vgtd35/DM9jvtaC1eKRpWZxr0gcQd643ABG7GnvSlf5pOkY2uyd42mMOJoOmKvnpNj0F4tuoS1pacTwYw==", + "path": "system.diagnostics.stacktrace/4.3.0", + "hashPath": "system.diagnostics.stacktrace.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "path": "system.diagnostics.tools/4.3.0", + "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.DirectoryServices/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6Uty9sMaeBG0/GIRTW4+DUTvuB/od5E6rY45JbEz1c2xMoPSA9GLov4KdiBEpjsEcsgORa6sC3vfh70tEJJaOw==", + "path": "system.directoryservices/4.5.0", + "hashPath": "system.directoryservices.4.5.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IdentityModel.Tokens.Jwt/6.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5tBCjAub2Bhd5qmcd0WhR5s354e4oLYa//kOWrkX+6/7ZbDDJjMTfwLSOiZ/MMpWdE4DWPLOfTLOq/juj9CKzA==", + "path": "system.identitymodel.tokens.jwt/6.8.0", + "hashPath": "system.identitymodel.tokens.jwt.6.8.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "path": "system.io.compression/4.3.0", + "hashPath": "system.io.compression.4.3.0.nupkg.sha512" + }, + "System.IO.Compression.ZipFile/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", + "path": "system.io.compression.zipfile/4.3.0", + "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.AccessControl/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==", + "path": "system.io.filesystem.accesscontrol/5.0.0", + "hashPath": "system.io.filesystem.accesscontrol.5.0.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.Management/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Z6ac0qPGr3yJtwZEX1SRkhwWa0Kf5NJxx7smLboYsGrApQFECNFdqhGy252T4lrZ5Nwzhd9VQiaifndR3bfHdg==", + "path": "system.management/4.5.0", + "hashPath": "system.management.4.5.0.nupkg.sha512" + }, + "System.Management.Automation/6.2.7": { + "type": "package", + "serviceable": true, + "sha512": "sha512-m2z9+qOpxcZrx+yMFbIQZnJ/OMLhEL2Z0IEGi5HHm7ODLnPwkWOfS/fZ25IHRY50HAX4cSygiall+tjJSiXILA==", + "path": "system.management.automation/6.2.7", + "hashPath": "system.management.automation.6.2.7.nupkg.sha512" + }, + "System.Memory/4.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "path": "system.memory/4.5.5", + "hashPath": "system.memory.4.5.5.nupkg.sha512" + }, + "System.Net.Http/4.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "path": "system.net.http/4.3.4", + "hashPath": "system.net.http.4.3.4.nupkg.sha512" + }, + "System.Net.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "path": "system.net.primitives/4.3.0", + "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" + }, + "System.Net.Requests/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", + "path": "system.net.requests/4.3.0", + "hashPath": "system.net.requests.4.3.0.nupkg.sha512" + }, + "System.Net.Sockets/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", + "path": "system.net.sockets/4.3.0", + "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" + }, + "System.Net.WebHeaderCollection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", + "path": "system.net.webheadercollection/4.3.0", + "hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, + "System.Private.DataContractSerialization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yDaJ2x3mMmjdZEDB4IbezSnCsnjQ4BxinKhRAaP6kEgL6Bb6jANWphs5SzyD8imqeC/3FxgsuXT6ykkiH1uUmA==", + "path": "system.private.datacontractserialization/4.3.0", + "hashPath": "system.private.datacontractserialization.4.3.0.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "path": "system.reflection.emit/4.3.0", + "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Metadata/1.4.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tc2ZyJgweHCLci5oQGuhQn9TD0Ii9DReXkHtZm3aAGp8xe40rpRjiTbMXOtZU+fr0BOQ46goE9+qIqRGjR9wGg==", + "path": "system.reflection.metadata/1.4.1", + "hashPath": "system.reflection.metadata.1.4.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", + "path": "system.runtime/4.3.1", + "hashPath": "system.runtime.4.3.1.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.VisualC/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/dcn1oXqK/p/VnTYWNSf4OXlFIfzCRE/kqWz4+/r5B2S4zlKifB1FqklEEYs5zmE1JE3syvrJ5U4syOwsDQZbA==", + "path": "system.runtime.compilerservices.visualc/4.3.0", + "hashPath": "system.runtime.compilerservices.visualc.4.3.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", + "path": "system.runtime.interopservices.runtimeinformation/4.3.0", + "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", + "path": "system.runtime.serialization.primitives/4.3.0", + "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Xml/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nUQx/5OVgrqEba3+j7OdiofvVq9koWZAC7Z3xGI8IIViZqApWnZ5+lLcwYgTlbkobrl/Rat+Jb8GeD4WQESD2A==", + "path": "system.runtime.serialization.xml/4.3.0", + "hashPath": "system.runtime.serialization.xml.4.3.0.nupkg.sha512" + }, + "System.Security.AccessControl/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "path": "system.security.accesscontrol/5.0.0", + "hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A==", + "path": "system.security.cryptography.cng/4.5.0", + "hashPath": "system.security.cryptography.cng.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Pkcs/4.5.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lIo52x0AAsZs8r1L58lPXaqN6PP51Z/XJts0kZtbZRNYcMguupxqRGjvc/GoqSKTbYa+aBwbkT4xoqQ7EsfN0A==", + "path": "system.security.cryptography.pkcs/4.5.2", + "hashPath": "system.security.cryptography.pkcs.4.5.2.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/7.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==", + "path": "system.security.cryptography.protecteddata/7.0.0", + "hashPath": "system.security.cryptography.protecteddata.7.0.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Security.Permissions/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", + "path": "system.security.permissions/4.5.0", + "hashPath": "system.security.permissions.4.5.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", + "path": "system.security.principal.windows/5.0.0", + "hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512" + }, + "System.Security.SecureString/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PnXp38O9q/2Oe4iZHMH60kinScv6QiiL2XH54Pj2t0Y6c2zKPEiAZsM/M3wBOHLNTBDFP0zfy13WN2M0qFz5jg==", + "path": "system.security.securestring/4.3.0", + "hashPath": "system.security.securestring.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.CodePages/4.5.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", + "path": "system.text.encoding.codepages/4.5.1", + "hashPath": "system.text.encoding.codepages.4.5.1.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", + "path": "system.text.regularexpressions/4.3.1", + "hashPath": "system.text.regularexpressions.4.3.1.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", + "path": "system.threading.tasks.extensions/4.3.0", + "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" + }, + "System.Threading.Thread/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", + "path": "system.threading.thread/4.3.0", + "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" + }, + "System.Threading.ThreadPool/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", + "path": "system.threading.threadpool/4.3.0", + "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" + }, + "System.Threading.Timer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", + "path": "system.threading.timer/4.3.0", + "hashPath": "system.threading.timer.4.3.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "path": "system.xml.xdocument/4.3.0", + "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlSerializer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", + "path": "system.xml.xmlserializer/4.3.0", + "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" + }, + "System.Xml.XPath/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", + "path": "system.xml.xpath/4.3.0", + "hashPath": "system.xml.xpath.4.3.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll new file mode 100644 index 000000000000..3e4b300b873f Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb new file mode 100644 index 000000000000..b3d0ebe75e8a Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml new file mode 100644 index 000000000000..9c5b7f84166a --- /dev/null +++ b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml @@ -0,0 +1,8 @@ + + + + Microsoft.Teams.PowerShell.Module + + + + diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll new file mode 100644 index 000000000000..a91477ead25d Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll new file mode 100644 index 000000000000..a3b892b74038 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll new file mode 100644 index 000000000000..3fa1efe54e41 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll new file mode 100644 index 000000000000..f0a377a3a2cc Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll new file mode 100644 index 000000000000..7e60694860ee Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll new file mode 100644 index 000000000000..a2d241560b29 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll new file mode 100644 index 000000000000..c031ac96e3c0 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll new file mode 100644 index 000000000000..c082759015cd Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll new file mode 100644 index 000000000000..afe6d97775d5 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 000000000000..6fcf940c4e30 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 000000000000..19871f5fcf21 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll new file mode 100644 index 000000000000..cd465d3aa208 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll new file mode 100644 index 000000000000..1eda9c7fa707 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll new file mode 100644 index 000000000000..2b5e3781091d Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 000000000000..8ac2cc7dbc63 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll new file mode 100644 index 000000000000..fd0725aa4906 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll new file mode 100644 index 000000000000..c3e174c06b18 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll new file mode 100644 index 000000000000..9d4508448f18 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll new file mode 100644 index 000000000000..95afcfaf07ef Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll new file mode 100644 index 000000000000..1cfb61b7f7a5 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll new file mode 100644 index 000000000000..5ac532ab8307 Binary files /dev/null and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll differ diff --git a/Modules/PassPushPosh/1.3.2/PSGetModuleInfo.xml b/Modules/PassPushPosh/1.3.2/PSGetModuleInfo.xml new file mode 100644 index 000000000000..0621c3dcbeb3 --- /dev/null +++ b/Modules/PassPushPosh/1.3.2/PSGetModuleInfo.xml @@ -0,0 +1,141 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + PassPushPosh + 1.3.2 + Module + PassPushPosh is a PowerShell Module for accessing the Password Pusher application via API. It supports creating, retrieving, and deleting anonymous and authenticated pushes and getting Push and Dashboard data for authenticated users. + Adam Burley + AdamBurley + Adam Burley, 2022 +
      2025-03-01T20:45:35-05:00
      + + + https://www.gnu.org/licenses/gpl-3.0.en.html + https://github.com/adamburley/PassPushPosh + https://github.com/adamburley/PassPushPosh/blob/main/pwplogo85x85.png?raw=true + + + System.Object[] + System.Array + System.Object + + + PSEdition_Core + Windows + Linux + MacOS + Password + PSModule + + + + + System.Collections.Hashtable + System.Object + + + + Workflow + + + + + + + RoleCapability + + + + DscResource + + + + Cmdlet + + + + Function + + + + Get-Dashboard + Get-Push + Get-PushAccount + Get-PushApiVersion + Get-PushAuditLog + Get-SecretLink + Initialize-PassPushPosh + New-Push + Remove-Push + + + + + Command + + + + Get-Dashboard + Get-Push + Get-PushAccount + Get-PushApiVersion + Get-PushAuditLog + Get-SecretLink + Initialize-PassPushPosh + New-Push + Remove-Push + + + + + + + 1.3.2 - Bug fix for push JSON changes, add Version endpoint_x000D__x000A_ 1.2.0 - Add compatibility with Premium and Pro API endpoints and branding._x000D__x000A_ 1.0.0 - Major refactor, add capabilities and improve testing and build process._x000D__x000A_ 0.3.0 - Remove route translations from URI segments for compatibility with PasswordPusher v1.42.0. See pglombardo/PasswordPusher/pull/2353 + + + + + https://www.powershellgallery.com/api/v2 + PSGallery + NuGet + + + System.Management.Automation.PSCustomObject + System.Object + + + Adam Burley, 2022 + PassPushPosh is a PowerShell Module for accessing the Password Pusher application via API. It supports creating, retrieving, and deleting anonymous and authenticated pushes and getting Push and Dashboard data for authenticated users. + False + 1.3.2 - Bug fix for push JSON changes, add Version endpoint_x000D__x000A_ 1.2.0 - Add compatibility with Premium and Pro API endpoints and branding._x000D__x000A_ 1.0.0 - Major refactor, add capabilities and improve testing and build process._x000D__x000A_ 0.3.0 - Remove route translations from URI segments for compatibility with PasswordPusher v1.42.0. See pglombardo/PasswordPusher/pull/2353 + True + True + 4 + 247 + 16233 + 3/1/2025 8:45:35 PM -05:00 + 3/1/2025 8:45:35 PM -05:00 + 3/2/2025 9:40:00 AM -05:00 + PSEdition_Core Windows Linux MacOS Password PSModule PSFunction_Get-Dashboard PSCommand_Get-Dashboard PSFunction_Get-Push PSCommand_Get-Push PSFunction_Get-PushAccount PSCommand_Get-PushAccount PSFunction_Get-PushApiVersion PSCommand_Get-PushApiVersion PSFunction_Get-PushAuditLog PSCommand_Get-PushAuditLog PSFunction_Get-SecretLink PSCommand_Get-SecretLink PSFunction_Initialize-PassPushPosh PSCommand_Initialize-PassPushPosh PSFunction_New-Push PSCommand_New-Push PSFunction_Remove-Push PSCommand_Remove-Push PSIncludes_Function + False + 2025-03-02T09:40:00Z + 1.3.2 + Adam Burley + false + Module + PassPushPosh.nuspec|PassPushPosh.psd1|PassPushPosh.psm1 + 5d8a1afd-a912-440f-a9b9-e79f42a05f21 + 7.0 + Burley.dev + + + C:\GitHub\CIPP Workspace\CIPP-API\Modules\PassPushPosh\1.3.2 +
      +
      +
      diff --git a/Modules/PassPushPosh/1.3.2/PassPushPosh.psd1 b/Modules/PassPushPosh/1.3.2/PassPushPosh.psd1 new file mode 100644 index 000000000000..7243d064ae4e --- /dev/null +++ b/Modules/PassPushPosh/1.3.2/PassPushPosh.psd1 @@ -0,0 +1,135 @@ +# +# Module manifest for module 'PassPushPosh' +# +# Generated by: Adam Burley +# +# Generated on: 3/1/2025 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'PassPushPosh.psm1' + +# Version number of this module. +ModuleVersion = '1.3.2' + +# Supported PSEditions +CompatiblePSEditions = 'Core' + +# ID used to uniquely identify this module +GUID = '5d8a1afd-a912-440f-a9b9-e79f42a05f21' + +# Author of this module +Author = 'Adam Burley' + +# Company or vendor of this module +CompanyName = 'Burley.dev' + +# Copyright statement for this module +Copyright = 'Adam Burley, 2022' + +# Description of the functionality provided by this module +Description = 'PassPushPosh is a PowerShell Module for accessing the Password Pusher application via API. It supports creating, retrieving, and deleting anonymous and authenticated pushes and getting Push and Dashboard data for authenticated users.' + +# Minimum version of the PowerShell engine required by this module +PowerShellVersion = '7.0' + +# Name of the PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# DotNetFrameworkVersion = '' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# ClrVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +# RequiredAssemblies = @() + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +# FormatsToProcess = @() + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +# NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @('Get-Dashboard','Get-Push','Get-PushAccount','Get-PushApiVersion','Get-PushAuditLog','Get-SecretLink','Initialize-PassPushPosh','New-Push','Remove-Push') + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = @() + +# Variables to export from this module +# VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = 'Get-PushPreview' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + Tags = 'PSEdition_Core','Windows','Linux','MacOS','Password' + + # A URL to the license for this module. + LicenseUri = 'https://www.gnu.org/licenses/gpl-3.0.en.html' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/adamburley/PassPushPosh' + + # A URL to an icon representing this module. + IconUri = 'https://github.com/adamburley/PassPushPosh/blob/main/pwplogo85x85.png?raw=true' + + # ReleaseNotes of this module + ReleaseNotes = ' + 1.3.2 - Bug fix for push JSON changes, add Version endpoint + 1.2.0 - Add compatibility with Premium and Pro API endpoints and branding. + 1.0.0 - Major refactor, add capabilities and improve testing and build process. + 0.3.0 - Remove route translations from URI segments for compatibility with PasswordPusher v1.42.0. See pglombardo/PasswordPusher/pull/2353' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + # ExternalModuleDependencies = @() + + } # End of PSData hashtable + + } # End of PrivateData hashtable + +# HelpInfo URI of this module +HelpInfoURI = 'https://github.com/adamburley/PassPushPosh/blob/main/Docs' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} diff --git a/Modules/PassPushPosh/1.3.2/PassPushPosh.psm1 b/Modules/PassPushPosh/1.3.2/PassPushPosh.psm1 new file mode 100644 index 000000000000..d1276e11e6cd --- /dev/null +++ b/Modules/PassPushPosh/1.3.2/PassPushPosh.psm1 @@ -0,0 +1,1139 @@ +#Region '.\Classes\PasswordPush.ps1' -1 + +class PasswordPush { + [string]$Note + [string]$Payload + [bool]$RetrievalStep + [bool]$IsExpired + [bool]$IsDeleted + [bool]$IsDeletableByViewer + [int]$ExpireAfterDays + [int]$DaysRemaining + [int]$ExpireAfterViews + [int]$ViewsRemaining + [DateTime]$DateCreated + [DateTime]$DateUpdated + [DateTime]$DateExpired + [int]$AccountId + [string]$UrlToken + [string]$Link + [string]$LinkDirect + [string]$LinkRetrievalStep + #[PSCustomObject[]]$Files # Added if present + + PasswordPush() { + # Blank constructor + } + + # Constructor to allow casting or explicit import from a PSObject Representing the result of an API call + PasswordPush([PSCustomObject]$APIresponseObject) { + $_j = $APIresponseObject + $this.Note = $_j.note + $this.Payload = $_j.payload + $this.IsExpired = $_j.expired + $this.IsDeleted = $_j.deleted + $this.IsDeletableByViewer = $_j.deletable_by_viewer + $this.ExpireAfterDays = $_j.expire_after_days + $this.DaysRemaining = $_j.days_remaining + $this.ExpireAfterViews = $_j.expire_after_views + $this.ViewsRemaining = $_j.views_remaining + $this.DateCreated = $_j.created_at + $this.DateUpdated = $_j.updated_at + $this.DateExpired = if ($_j.expired_on) { $_j.expired_on } else { [DateTime]0 } + $this.RetrievalStep = $_j.retrieval_step + $this.AccountId = $_j.account_id + $this.UrlToken = $_j.url_token + $this.LinkDirect = $_j.json_url ? $_j.json_url.Replace('.json','') : "$Script:PPPBaseUrl/p/$($this.UrlToken)" + $this.LinkRetrievalStep = $this.LinkDirect, '/r' -join '' + $this.Link = $_j.html_url ?? $this.RetrievalStep -eq $true ? $this.LinkRetrievalStep : $this.LinkDirect + + if ($_j.Files) { + $this | Add-Member -MemberType NoteProperty -Name Files -Value $_j.files + } + } +} +#EndRegion '.\Classes\PasswordPush.ps1' 53 +#Region '.\Classes\TypeAccelerators.ps1' -1 + +# https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_classes?view=powershell-7.4#exporting-classes-with-type-accelerators +# Define the types to export with type accelerators. +$ExportableTypes =@( + [PasswordPush] +) +# Get the internal TypeAccelerators class to use its static methods. +$TypeAcceleratorsClass = [psobject].Assembly.GetType( + 'System.Management.Automation.TypeAccelerators' +) +<# +# Ensure none of the types would clobber an existing type accelerator. +# If a type accelerator with the same name exists, throw an exception. +$ExistingTypeAccelerators = $TypeAcceleratorsClass::Get +foreach ($Type in $ExportableTypes) { + if ($Type.FullName -in $ExistingTypeAccelerators.Keys) { + $Message = @( + "Unable to register type accelerator '$($Type.FullName)'" + 'Accelerator already exists.' + ) -join ' - ' + + throw [System.Management.Automation.ErrorRecord]::new( + [System.InvalidOperationException]::new($Message), + 'TypeAcceleratorAlreadyExists', + [System.Management.Automation.ErrorCategory]::InvalidOperation, + $Type.FullName + ) + } +}#> +# Add type accelerators for every exportable type. +foreach ($Type in $ExportableTypes) { + try { + $TypeAcceleratorsClass::Add($Type.FullName, $Type) + } catch {} +} +# Remove type accelerators when the module is removed. +($MyInvocation.MyCommand.ScriptBlock.Module.OnRemove = { + foreach($Type in $ExportableTypes) { + $TypeAcceleratorsClass::Remove($Type.FullName) + } +}.GetNewClosure()) | Out-Null +#EndRegion '.\Classes\TypeAccelerators.ps1' 38 +#Region '.\Private\ConvertTo-PasswordPush.ps1' -1 + + <# + .SYNOPSIS + Convert API call response to a PasswordPush object + + .DESCRIPTION + Accepts a JSON string returned from the Password Pusher API and converts it to a [PasswordPush] object. + This allows calculated push retrieval URLs and a more "PowerShell" experience. + Generally you won't need to use this directly, it's automatically invoked within Register-Push and Request-Push. + + .PARAMETER JsonResponse + The string result of an API call from the Password Pusher application + + .INPUTS + [string] + + .OUTPUTS + [PasswordPush] for single object + [PasswordPush[]] for Json array data + + .EXAMPLE + # Common usage - from within the Register-Push cmdlet + PS> $myPush = Register-Push -Payload "This is my secret!" + PS> $myPush.Link # The link parameter always presents the URL as it would appear with the same settings selected on pwpush.com + + https://pwpush.com/p/rz6nryvl-d4 + + .EXAMPLE + # Manually invoking the API + PS> $rawJson = Invoke-WebRequest ` + -Uri https://pwpush.com/p.json ` + -Method Post ` + -Body '{"password": { "payload": "This is my secret!"}}' ` + -ContentType 'application/json' | + Select-Object -ExpandProperty Content + PS> $rawJson + {"expire_after_days":7,"expire_after_views":5,"expired":false,"url_token":"rz6nryvl-d4","created_at":"2022-11-18T14:16:29.821Z","updated_at":"2022-11-18T14:16:29.821Z","deleted":false,"deletable_by_viewer":true,"retrieval_step":false,"expired_on":null,"days_remaining":7,"views_remaining":5} + PS> $rawJson | ConvertTo-PasswordPush + UrlToken : rz6nryvl-d4 + LinkDirect : https://pwpush.com/p/rz6nryvl-d4 + LinkRetrievalStep : https://pwpush.com/p/rz6nryvl-d4/r + Link : https://pwpush.com/p/rz6nryvl-d4 + Payload : + RetrievalStep : False + IsExpired : False + IsDeleted : False + IsDeletableByViewer : True + ExpireAfterDays : 7 + DaysRemaining : 7 + ExpireAfterViews : 5 + ViewsRemaining : 5 + DateCreated : 11/18/2022 2:16:29 PM + DateUpdated : 11/18/2022 2:16:29 PM + DateExpired : 1/1/0001 12:00:00 AM + + .LINK + https://github.com/adamburley/PassPushPosh/blob/main/Docs/ConvertTo-PasswordPush.md + + .NOTES + Needs a rewrite / cleanup + #> +function ConvertTo-PasswordPush { + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Scope = 'Function', Justification = 'Creates a new object, no risk of overwriting data.')] + [CmdletBinding()] + [OutputType([PasswordPush])] + param( + [parameter(Mandatory, ValueFromPipeline)] + [ValidateNotNullOrEmpty()] + [PSCustomObject]$JsonResponse + ) + process { + try { + foreach ($o in $JsonResponse) { + [PasswordPush]::New($o) + } + } + catch { + Write-Debug 'Error in ConvertTo-PasswordPush coercing JSON object to PasswordPush object' + Write-Debug "JsonResponse parameter value: [[$JsonResponse]]" + Write-Error $_ + } + } +} +#EndRegion '.\Private\ConvertTo-PasswordPush.ps1' 83 +#Region '.\Private\Format-PasswordPusherSecret.ps1' -1 + +function Format-PasswordPusherSecret { + [CmdletBinding()] + [OutputType([string])] + param( + [Parameter(Mandatory)] + [AllowEmptyString()] + [string]$Secret, + + [Parameter()] + [switch]$ShowSample + ) + process { + if ($Secret -eq '') { + "length 0" + continue + } + $length = $Secret.Length + $last4 = $Secret.Substring($length - 4) + if ($ShowSample) { + "length $length ending [$last4]" + } + else { + "length $length" + } + } +} +#EndRegion '.\Private\Format-PasswordPusherSecret.ps1' 27 +#Region '.\Private\Invoke-PasswordPusherAPI.ps1' -1 + +function Invoke-PasswordPusherAPI { + [CmdletBinding(DefaultParameterSetName = 'Body')] + [OutputType([PSCustomObject])] + param( + [string]$Endpoint, + [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get, + + [Parameter(ParameterSetName = 'Body')] + [object]$Body, + + [Parameter(ParameterSetName = 'Form')] + [object]$Form, + + [Switch]$ReturnErrors + ) + process { + $_uri = "$Script:PPPBaseURL/$Endpoint" + Write-Debug "Invoke-PasswordPusherAPI: $Method $_uri" + + $iwrSplat = @{ + 'Method' = $Method + 'Uri' = $_uri + 'UserAgent' = $Script:PPPUserAgent + } + if ($PSCmdlet.ParameterSetName -eq 'Form') { + $iwrSplat.Form = $Form + } else { + $iwrSplat.Body = ($body | ConvertTo-Json) + $iwrSplat.ContentType = 'application/json' + } + if ($Script:PPPHeaders.'X-User-Token') { + $iwrSplat['Headers'] = $Script:PPPHeaders + Write-Debug "Authenticated with X-User-Token $(Format-PasswordPusherSecret -Secret $Script:PPPHeaders.'X-User-Token' -ShowSample)" + } + if ($Script:PPPHeaders.'Authorization') { + $iwrSplat['Headers'] = $Script:PPPHeaders + Write-Debug "Authenticated with Bearer token $(Format-PasswordPusherSecret -Secret $Script:PPPHeaders.'Authorization' -ShowSample)" + } + $callInfo = "$Method $_uri" + Write-Verbose "Sending HTTP request: $callInfo" + + $call = Invoke-WebRequest @iwrSplat -SkipHttpErrorCheck + Write-Debug "Response: $($call.StatusCode) $($call.Content)" + if (Test-Json -Json $call.Content) { + $result = $call.Content | ConvertFrom-Json + if ($ReturnErrors -or $call.StatusCode -eq 200 -or $null -eq $result.error) { + $result + } else { + Write-Error -Message "$callInfo : $($call.StatusCode) $($result.error)" + } + } else { + Write-Error -Message "Parseable JSON not returned by API. $callInfo : $($call.StatusCode) $($call.Content)" + } + } +} +#EndRegion '.\Private\Invoke-PasswordPusherAPI.ps1' 56 +#Region '.\Private\New-PasswordPusherUserAgent.ps1' -1 + +function New-PasswordPusherUserAgent { + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Scope = 'Function', Justification = 'Function does not change state.')] + [CmdletBinding()] + [OutputType([string])] + param() + $osVersion = [System.Environment]::OSVersion + $userAtDomain = '{0}@{1}' -f [System.Environment]::UserName, [System.Environment]::UserDomainName + $uAD64 = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($userAtDomain)) + Write-Debug "$userAtDomain transformed to $uAD64. First 20 characters $($uAD64.Substring(0,20))" + + # Version tag is replaced by the semantic version number at build time. See PassPushPosh/issues/11 for context + "PassPushPosh/1.3.2 $osVersion/$($uAD64.Substring(0,20))" +} +#EndRegion '.\Private\New-PasswordPusherUserAgent.ps1' 14 +#Region '.\Public\Get-Dashboard.ps1' -1 + +<# + .SYNOPSIS + Get a list of active or expired Pushes for an authenticated user + + .DESCRIPTION + Retrieves a list of Pushes - active or expired - for an authenticated user. + Active and Expired are different endpoints, so to get both you'll need to make + two calls. + + .PARAMETER Dashboard + The type of dashboard to retrieve. Active or Expired. + + .INPUTS + [string] 'Active' or 'Expired' + + .OUTPUTS + [PasswordPush[]] Array of pushes with data + + .EXAMPLE + Get-Dashboard + + .EXAMPLE + Get-Dashboard Active + + .LINK + https://github.com/adamburley/PassPushPosh/blob/main/Docs/Get-Dashboard.md + + .LINK + https://pwpush.com/api/1.0/passwords/active.en.html + + .LINK + Get-PushAuditLog + + #> +function Get-Dashboard { + [CmdletBinding()] + [OutputType([PasswordPush[]])] + param( + [parameter(Position = 0)] + [ValidateSet('Active', 'Expired')] + [ValidateNotNullOrEmpty()] + [string] + $Dashboard = 'Active' + ) + process { + if (-not $Script:PPPHeaders) { Write-Error 'Dashboard access requires authentication. Run Initialize-PassPushPosh and pass your email address and API key before retrying.' -ErrorAction Stop -Category AuthenticationError } + $uri = "p/$($Dashboard -eq 'Active' ? 'active.json' : 'expired.json')" + Invoke-PasswordPusherAPI -Endpoint $uri -Method Get | ConvertTo-PasswordPush + } +} +#EndRegion '.\Public\Get-Dashboard.ps1' 51 +#Region '.\Public\Get-Push.ps1' -1 + +<# + .SYNOPSIS + Retrieve the secret contents of a Push + + .DESCRIPTION + Get-Push accepts a URL Token string and returns the contents of a Push along with + metadata regarding that Push. Note: Get-Push will return data on an expired + Push (datestamps, etc) even if it does not return the Push contents. + + .PARAMETER URLToken + URL Token for the secret + + .PARAMETER Passhrase + An additional phrase required to view the secret. Required if the Push was created with a Passphrase. + + .PARAMETER OutFolder + For File pushes, a folder path to save files. If the folder path does not exist + it will be created. Files are saved with their original names. + + .PARAMETER IncludePushObject + When saving files from a file push, also save the push data itself. This will + create a JSON object in the same path as the files with the + + .INPUTS + [string] + + .OUTPUTS + [PasswordPush] + + .EXAMPLE + Get-Push -URLToken gzv65wiiuciy + + .EXAMPLE + Get-Push -URLToken gzv65wiiuciy -Passphrase "My Passphrase" + + .LINK + https://github.com/adamburley/PassPushPosh/blob/main/Docs/Get-Push.md + + .LINK + New-Push + + #> +function Get-Push { + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword", "Passphrase", Justification = "DE0001: SecureString shouldn't be used")] + [CmdletBinding(DefaultParameterSetName = 'Text')] + [OutputType([PasswordPush])] + param( + [Parameter(Mandatory, ValueFromPipeline)] + [ValidateNotNullOrEmpty()] + [Alias('Token')] + $URLToken, + + [Parameter()] + [String]$Passphrase, + + [Parameter(ParameterSetName = 'Out File')] + [Alias('OutFile')] + [System.IO.DirectoryInfo]$OutFolder, + + [Parameter(ParameterSetName = 'Out File')] + [switch]$IncludePushObject + ) + begin { Initialize-PassPushPosh -Verbose:$VerbosePreference -Debug:$DebugPreference } + process { + $endpoint = $Passphrase ? "p/$URLToken.json?passphrase=$Passphrase" : "p/$URLToken.json" + $result = Invoke-PasswordPusherAPI -Endpoint $endpoint -ReturnErrors + if ($result.error){ + if ($result.error -eq 'not-found') { Write-Error -Message "Push not found. Check the token you provided. Tokens are case-sensitive." } + if ($result.error -eq 'This push has a passphrase that was incorrect or not provided.') { if ($Passphrase) { Write-Error -Message "Incorrect passphrase provided." } else { Write-Error -Message "Passphrase required. Specify with the -Passphrase parameter." } } + } + $pushObject = $result | ConvertTo-PasswordPush + if ($OutFolder) { + if ($pushObject.Files.Count -gt 0) { + if (-not (Test-Path -Path $OutFolder -PathType Container)) { + New-Item -Path $OutFolder -ItemType Directory | Out-Null + Write-Verbose "$OutFolder does not exist and was created." + } else { + Write-Verbose "Saving files to $OutFolder" + } + foreach ($f in $pushObject.Files){ + Write-Verbose "Saving $($f.filename) [$($f.content_type)]" + Invoke-WebRequest -Uri $f.url -OutFile (Join-Path -Path $OutFolder -ChildPath $f.filename) + } + if ($IncludePushObject) { + $pushObject | ConvertTo-Json -Depth 10 | Out-File (Join-Path $OutFolder -ChildPath "Push_$($pushObject.UrlToken).json") + } + } else { + Write-Warning "No files were included in this push. Nothing was saved." + } + $pushObject + } + else { + $pushObject + } + } +} +#EndRegion '.\Public\Get-Push.ps1' 97 +#Region '.\Public\Get-PushAccount.ps1' -1 + +<# + .SYNOPSIS + Get a list of accounts for an authenticated user + + .DESCRIPTION + Retrieves a list of accounts for an authenticated user. + + .LINK + Get-PushAuditLog + + #> +function Get-PushAccount { + [CmdletBinding()] + [OutputType([PasswordPush[]])] + param() + process { + if (-not $Script:PPPHeaders) { Write-Error 'Dashboard access requires authentication. Run Initialize-PassPushPosh and pass your email address and API key before retrying.' -ErrorAction Stop -Category AuthenticationError } + $uri = 'api/v1/accounts' + Invoke-PasswordPusherAPI -Endpoint $uri -Method Get + } +} +#EndRegion '.\Public\Get-PushAccount.ps1' 22 +#Region '.\Public\Get-PushApiVersion.ps1' -1 + +function Get-PushApiVersion { + [CmdletBinding()] + [OutputType([PSCustomObject])] + param() + Initialize-PassPushPosh -Verbose:$VerbosePreference -Debug:$DebugPreference + Invoke-PasswordPusherAPI -Endpoint 'api/v1/version.json' +} +#EndRegion '.\Public\Get-PushApiVersion.ps1' 8 +#Region '.\Public\Get-PushAuditLog.ps1' -1 + +<# + .SYNOPSIS + Get the view log of an authenticated Push + + .DESCRIPTION + Retrieves the view log of a Push created under an authenticated session. + Returns an array of custom objects with view data. If the query is + successful but there are no results, it returns an empty array. + If there's an error, a single object is returned with information. + See "handling errors" under NOTES + + .PARAMETER URLToken + URL Token from a secret + + .INPUTS + [string] + + .OUTPUTS + [PsCustomObject[]] Array of entries. + [PsCustomObject] If there's an error in the call, it will be returned an object with a property + named 'error'. The value of that member will contain more information + + .EXAMPLE + Get-PushAuditLog -URLToken 'mytokenfromapush' + ip : 75.202.43.56,102.70.135.200 + user_agent : Mozilla/5.0 (Macintosh; Darwin 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:20:05 PDT 2022; root:xnu-8020.140.49~2/RELEASE_ARM64_T8101; + en-US) PowerShell/7.2.7 + referrer : + successful : True + created_at : 11/19/2022 6:32:42 PM + updated_at : 11/19/2022 6:32:42 PM + kind : 0 + + .EXAMPLE + # If there are no views, an empty array is returned + Get-PushAuditLog -URLToken 'mytokenthatsneverbeenseen' + + .LINK + https://github.com/adamburley/PassPushPosh/blob/main/Docs/Get-PushAuditLog.md + + .LINK + https://pwpush.com/api/1.0/passwords/audit.en.html + + .LINK + Get-Dashboard + + .NOTES + Handling Errors: + The API returns different HTTP status codes and results depending where the + call fails. + + | HTTP RESPONSE | Error Reason | Response Body | Sample Object Returned | Note | + |------------------|---------------------------------|----------------------------------------------|--------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| + | 401 UNAUTHORIZED | Invalid API key or email | None | @{ 'Error'= 'Authentication error. Verify email address and API key.'; 'ErrorCode'= 401 } | | + | 200 OK | Push created by another account | {"error":"That push doesn't belong to you."} | @{ 'Error'= "That Push doesn't belong to you"; 'ErrorCode'= 403 } | Function transforms error code to 403 to allow easier response management | + | 404 NOT FOUND | Invalid URL token | None | @{ 'Error'= 'Invalid token. Verify your Push URL token is correct.'; 'ErrorCode'= 404 } | This is different than the response to a delete Push query - in this case it will only return 404 if the token is invalid. | + + #> +function Get-PushAuditLog { + [CmdletBinding()] + [OutputType([PSCustomObject[]])] + param( + [parameter(Mandatory, ValueFromPipeline)] + [Alias('Token')] + [string] + $URLToken + ) + begin { + if (-not $Script:PPPHeaders) { Write-Error 'Retrieving audit logs requires authentication. Run Initialize-PassPushPosh and pass your email address and API key before retrying.' -ErrorAction Stop -Category AuthenticationError } + } + process { + $response = Invoke-PasswordPusherAPI -Endpoint "p/$URLToken/audit.json" -ReturnErrors + switch ($response.error) { + 'not-found' { Write-Error -Message "Push not found. Check the token you provided. Tokens are case-sensitive." } + { $null -ne $_ -and $_ -ne 'not-found' } { Write-Error -Message $_ } + default { $response | Select-Object -ExpandProperty views } + } + } +} +#EndRegion '.\Public\Get-PushAuditLog.ps1' 80 +#Region '.\Public\Get-SecretLink.ps1' -1 + +<# + .SYNOPSIS + Returns a fully qualified secret link to a push of given URL Token + + .DESCRIPTION + Accepts a string value for a URL Token and retrieves a full URL link to the secret. + Returned value is a 1-step retrieval link depending on option selected during Push creation. + Returns false if URL Token is invalid, however it will return a URL if the token is valid + but the Push is expired or deleted. + + .PARAMETER URLToken + URL Token for the secret + + .INPUTS + [string] URL Token value + + .OUTPUTS + [string] Fully qualified URL + + .EXAMPLE + Get-SecretLink -URLToken gzv65wiiuciy + https://pwpush.com/p/gzv65wiiuciy/r + + .EXAMPLE + Get-SecretLink -URLToken gzv65wiiuciy -Raw + { "url": "https://pwpush.com/p/0fkapnbo_pwp4gi8uy0/r" } + + .LINK + https://github.com/adamburley/PassPushPosh/blob/main/Docs/Get-SecretLink.md + + .LINK + https://pwpush.com/api/1.0/passwords/preview.en.html + + .NOTES + Including this endpoint for completeness - however it is generally unnecessary. + The only thing this endpoint does is return a different value depending if "Use 1-click retrieval step" + was selected when the Push was created. Since both the 1-click and the direct links are available + regardless if that option is selected, the links are calculable and both are included by default in a + [PasswordPush] object. + + As it returns false if a Push URL token is not valid you can use it to test if a Push exists without + burning a view. + #> +function Get-SecretLink { + [CmdletBinding()] + [Alias('Get-PushPreview')] + [OutputType('[string]')] + param( + [parameter(Mandatory, ValueFromPipeline)] + [Alias('Token')] + [ValidateLength(5, 256)] + [string]$URLToken + ) + begin { Initialize-PassPushPosh -Verbose:$VerbosePreference -Debug:$DebugPreference } + process { + Invoke-PasswordPusherAPI -Endpoint "p/$URLToken/preview.json" | Select-Object -ExpandProperty url + } +} +#EndRegion '.\Public\Get-SecretLink.ps1' 59 +#Region '.\Public\Initialize-PassPushPosh.ps1' -1 + +<# + .SYNOPSIS + Initialize the PassPushPosh module + + .DESCRIPTION + Initialize-PassPushPosh sets variables for the module's use during the remainder of the session. + Server URL and User Agent values are set by default but may be overridden. + If invoked with email address and API key, calls are sent as authenticated. Otherwise they default to + anonymous. + + This function is called automatically if needed, defaulting to the public pwpush.com service. + + .PARAMETER Bearer + API key for authenticated calls. Supported on hosted instance and OSS v1.51.0 and newer. + + .PARAMETER ApiKey + API key for authenticated calls. Supports older OSS installs. + Also supports Bearer autodetection. This will be removed in a future version. + + .PARAMETER EmailAddress + Email address for authenticated calls. + NOTE: This is only required for legacy X-User-Token authentication. If using hosted pwpush.com + services or OSS v1.51.0 or newer use -Bearer + + .PARAMETER UseLegacyAuth + Use legacy X-User-Token. Supportsversions of Password Pusher OSS older than v1.51.0. + If this is not set, but -ApiKey and -EmailAddress are specified the module will attempt to + auto-detect the correct connection. + + .PARAMETER BaseUrl + Base URL for API calls. Allows use of custom domains with hosted Password Pusher as well as specifying + a private instance. + + Default: https://pwpush.com + + .PARAMETER UserAgent + Set a specific user agent. Default user agent is a combination of the + module info, what your OS reports itself as, and a hash based on + your username + workstation or domain name. This way the UA can be + semi-consistent across sessions but not identifying. + + Note: User agent must meet [RFC9110](https://www.rfc-editor.org/rfc/rfc9110#name-user-agent) specifications or the Password Pusher API will reject the call. + + .PARAMETER Force + Force setting new information. If module is already initialized you can use this to + re-initialize the module. If not specified and there is an existing session the request is ignored. + + .EXAMPLE + # Default settings + PS > Initialize-PassPushPosh + + .EXAMPLE + # Authentication + PS > Initialize-PassPushPosh -Bearer 'myreallylongapikey' + + .EXAMPLE + # Initialize with another domain - may be a private instance or a hosted instance with custom domain + PS > Initialize-PassPushPosh -BaseUrl https://myprivatepwpushinstance.example.com -Bearer 'myreallylongapikey' + + .EXAMPLE + # Legacy authentication support + PS > Initialize-PassPushPosh -ApiKey 'myreallylongapikey' -EmailAddress 'myregisteredemail@example.com' -UseLegacyAuthentication -BaseUrl https://myprivatepwpushinstance.example.com + + .EXAMPLE + # Set a custom User Agent + PS > InitializePassPushPosh -UserAgent "My-CoolUserAgent/1.12.1" + + .LINK + https://github.com/adamburley/PassPushPosh/blob/main/Docs/Initialize-PassPushPosh.md + + .NOTES + The use of X-USER-TOKEN for authentication is depreciated and will be removed in a future release of the API. + This module will support it via legacy mode, initially by attempting to auto-detect if Bearer is supported. + New code using this module should use -Bearer (most cases) or -UseLegacyAuthentication (self-hosted older versions). + In a future release the module will default to Bearer unless the -UseLegacyAuthentication switch is set. + + #> +function Initialize-PassPushPosh { + [CmdletBinding(DefaultParameterSetName = 'Anonymous')] + param ( + [Parameter(ParameterSetName = 'Authenticated')] + [string]$Bearer, + + [Parameter(Mandatory, Position = 0, ParameterSetName = 'Legacy Auth')] + [ValidateLength(5, 256)] + [string]$ApiKey, + + [Parameter(Mandatory, Position = 1, ParameterSetName = 'Legacy Auth')] + [ValidatePattern('.+\@.+\..+', ErrorMessage = 'Please specify a valid email address')] + [string]$EmailAddress, + + [Parameter(ParameterSetName = 'Legacy Auth')] + [switch]$UseLegacyAuthentication, + + [Parameter()] + [ValidatePattern('^https?:\/\/[a-zA-Z0-9-_]+.[a-zA-Z0-9]+')] + [string]$BaseUrl, + + [Parameter()] + [ValidateNotNullOrEmpty()] + [string] + $UserAgent, + + [Parameter()] + [switch]$Force + ) + if ($Script:PPPBaseURL -and -not $Force) { Write-Debug -Message 'PassPushPosh is already initialized.' } + else { + $_baseUrl = $PSBoundParameters.ContainsKey('BaseUrl') ? $BaseUrl : 'https://pwpush.com' + $_apiKey = $PSBoundParameters.ContainsKey('Bearer') ? $Bearer : $ApiKey + + $apiKeySample = $_apiKey ? (Format-PasswordPusherSecret -Secret $_apiKey -ShowSample) : 'None' + + $_AuthType = $PSCmdlet.ParameterSetName -iin 'Anonymous', 'Authenticated' ? $PSCmdlet.ParameterSetName : $UseLegacyAuthentication ? 'Legacy' : 'Automatic' + + switch ($_AuthType) { + 'Anonymous' { + # module is reinitialized from an authenticated to an anonymous session + Remove-Variable -Scope Script -Name PPPHeaders -WhatIf:$false -ErrorAction SilentlyContinue + } + 'Authenticated' { + Write-Debug 'Bearer auth specified.' + Set-Variable -Scope Script -Name PPPHeaders -WhatIf:$false -Value @{ + 'Authorization' = "Bearer $_apiKey" + } + } + 'Legacy' { + Write-Debug 'Legacy auth specified.' + Set-Variable -Scope Script -Name PPPHeaders -WhatIf:$false -Value @{ + 'X-User-Email' = $EmailAddress + 'X-User-Token' = $_apiKey + } + } + 'Automatic' { + Write-Debug 'Legacy auth status not specified Checking for /version' + if ((Invoke-RestMethod "$_baseUrl/api/v1/version.json" -SkipHttpErrorCheck).Api_Version -gt 1.0) { + Write-Debug "Current version detected via /version" + Set-Variable -Scope Script -Name PPPHeaders -WhatIf:$false -Value @{ + 'Authorization' = "Bearer $_apiKey" + } + } else { + Write-Warning 'Instance does not appear to support modern Bearer authentication.' + Write-Warning 'The module will fall back to using legacy authentication.' + Write-Warning 'If you are connecting to a self-hosted instance, verify it is up to date.' + Write-Warning 'If you know you need legacy (X-User-Token) authentication include Invoke-PassPushPosh -UseLegacyAuth $true' + Write-Warning 'To skip the step check and this warning.' + Set-Variable -Scope Script -Name PPPHeaders -WhatIf:$false -Force -Value @{ + 'X-User-Email' = $EmailAddress + 'X-User-Token' = $_apiKey + } + } + } + } + + Set-Variable -WhatIf:$false -Scope Script -Name PPPUserAgent -Value ($PSBoundParameters.ContainsKey('UserAgent') ? $UserAgent : (New-PasswordPusherUserAgent)) + Set-Variable -WhatIf:$false -Scope Script -Name PPPBaseURL -Value $_baseUrl.TrimEnd('/') + + Write-Verbose -Message "PassPushPosh Initialized with these settings: Account type: [$_AuthType] API Key: $apiKeySample Base URL: [$_baseUrl]" + Write-Verbose -Message "User Agent: $Script:PPPUserAgent" + } +} +#EndRegion '.\Public\Initialize-PassPushPosh.ps1' 162 +#Region '.\Public\New-Push.ps1' -1 + +<# + .SYNOPSIS + Create a new Push + + .DESCRIPTION + Create a new Push on the specified Password Pusher instance. The + programmatic equivalent of going to pwpush.com and entering info. + Returns [PasswordPush] object. Link member is a link created based on + 1-step setting however both 1-step and direct links + are always provided at LinkRetrievalStep and LinkDirect properties. + + .PARAMETER Payload + Generic text value to share. Use with -Kind to create arbitrary push types. + Payload is required for all types except File. For QR and URL pushes you + may directly specify those types by using the -QR and -URL parameters. + + .PARAMETER QR + Create a QR-type secret with this text value. May be a link or other text. + + .PARAMETER URL + Create a URL-type secret redirecting to this link. A fully-qualified URL is + required + + .PARAMETER File + Attach files to a push. Up to 10 files in all referenced folders and paths + may be specified by passing a file or folder path or array of paths or a + DirectoryInfo or FileInfo object. + + File pushes can be files only, files with text, or files with a QR code. + To add text, simply use -Payload. To specify a QR code, use -QR or use + -Payload 'your value' -Type QR + + .PARAMETER Passphrase + Require recipients to enter this passphrase to view the created push. + + .PARAMETER Note + The note for this push. Visible only to the push creator. Requires authentication. + + .PARAMETER ExpireAfterDays + Expire secret link and delete after this many days. + + .PARAMETER ExpireAfterViews + Expire secret link and delete after this many views. + + .PARAMETER DeletableByViewer + Allow the recipient of a Push to delete it. + + .PARAMETER RetrievalStep + Require recipient click an extra link to view Push payload. + Helps to avoid chat systems and URL scanners from eating up views. + Note that the retrieval step URL is always available for a push. This + parameter changes if the 1-click link is used in the Link parameter + and returned from the secret link helper (Get-SecretLink) + + .PARAMETER AccountId + Account ID to associate with this push. Requires authentication. + If you have multiple accounts and you do not specify an account ID + Password Pusher will use the first account available, UNLESS you have a custom domain. + In that case it will default to the custom domain account IF you're connecting + to the custom domain for the API session. If you're connecting to pwpush.com, + it will use the unbranded / non-domain account. + + .PARAMETER Kind + The kind of Push to send. Defaults to text. If using -QR, -URL, or -File parameters + the correct kind is automatically selected and this parameter is ignored. + + .INPUTS + [string] + + .OUTPUTS + [PasswordPush] Representation of the submitted push + + .EXAMPLE + $myPush = New-Push "Here's my secret!" + PS > $myPush | Select-Object Link, LinkRetrievalStep, LinkDirect + + Link : https://pwpush.com/p/gzv65wiiuciy # Requested style + LinkRetrievalStep : https://pwpush.com/p/gzv65wiiuciy/r # 1-step + LinkDirect : https://pwpush.com/p/gzv65wiiuciy # Direct + + .EXAMPLE + "Super secret secret" | New-Push -RetrievalStep | Select-Object -ExpandProperty Link + + https://pwpush.com/p/gzv65wiiuciy/r + + + .EXAMPLE + # "Burn after reading" style Push + PS > New-Push -Payload "Still secret text!" -ExpireAfterViews 1 -RetrievalStep + + .EXAMPLE + Create a URL push + PS > New-Push -URL 'https://example.com/coolplacetoforwardmyrecipientto' + + .EXAMPLE + Create a QR push + PS > New-Push -QR 'thing i want to show up when someone reads the QR code' + + .EXAMPLE + Create a file push + PS > New-Push -File 'C:\mytwofiles\mycoolfile.txt', 'C:\mytwofiles\mycoolfile2.txt' + or + PS > New-Push -File 'C:\mytwofiles' + or + PS > $myFolder = Get-ChildItem C:\mytwofiles + PS > New-Push -File $myFolder + + .EXAMPLE + Create a QR push using -Payload + PS > New-Push -Payload 'this is my qr code value' -Kind QR + + + .LINK + https://github.com/adamburley/PassPushPosh/blob/main/Docs/New-Push.md + + .LINK + Get-Push + + .NOTES + Maximum for -ExpireAfterDays and -ExpireAfterViews is based on the default + values for Password Pusher and what's used on the public instance + (pwpush.com). + #> +function New-Push { + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingPlainTextForPassword', 'Passphrase', Justification = "DE0001: SecureString shouldn't be used")] + [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'Low', DefaultParameterSetName = 'Text')] + [OutputType([PasswordPush])] + param( + [Parameter(ParameterSetName = 'Text', ValueFromPipeline, Position = 0)] + [Alias('Password')] + [ValidateNotNullOrEmpty()] + [string]$Payload, + + [Parameter(ParameterSetName = 'QR', Mandatory)] + [string]$QR, + + [Parameter(ParameterSetName = 'URL', Mandatory)] + [ValidatePattern('^https?:\/\/[a-zA-Z0-9-_]+.[a-zA-Z0-9]+')] + [string]$URL, + + [Parameter(ParameterSetName = 'Text')] + [Parameter(ParameterSetName = 'QR')] + [ValidateCount(1, 10)] + [ValidateScript({ $null -ne $Script:PPPHeaders.'X-User-Token' -or $null -ne $Script:PPPHeaders.Authorization }, ErrorMessage = 'Adding files requires authentication.')] + [object[]]$File, + + [Parameter()] + [string]$Passphrase, + + [Parameter()] + [ValidateScript({ $null -ne $Script:PPPHeaders.'X-User-Token' -or $null -ne $Script:PPPHeaders.Authorization }, ErrorMessage = 'Adding a note requires authentication.')] + [ValidateNotNullOrEmpty()] + [string]$Note, + + [Parameter()] + [ValidateRange(1, 90)] + [int] + $ExpireAfterDays, + + [Parameter()] + [ValidateRange(1, 100)] + [int] + $ExpireAfterViews, + + [Parameter()] + [switch] + $DeletableByViewer, + + [Parameter()] + [switch] + $RetrievalStep, + + [Parameter()] + [ValidateScript({ $null -ne $Script:PPPHeaders.Authorization }, ErrorMessage = 'Adding an account id requires authentication.')] + $AccountId, + + [Parameter(ParameterSetName = 'Text')] + [ValidateSet('Text', 'File', 'QR', 'URL')] + [string]$Kind = 'Text' + ) + + begin { + Initialize-PassPushPosh -Verbose:$VerbosePreference -Debug:$DebugPreference + } + process { + $_Kind = switch ($PSCmdlet.ParameterSetName) { + 'QR' { 'qr' } + 'URL' { 'url' } + default { + $File ? 'file' : $Kind.ToLower() + } + } + Write-Debug "Parameter Set: $($PSCmdlet.ParameterSetName)" + Write-Debug "Kind: $_Kind" + + $passVals = @{ 'kind' = $_Kind } + $shouldString = "Submit $_Kind push" + + if ($_Payload = $Payload ? $Payload : $QR ? $QR : $URL ? $URL : $Null) { + $shouldString += ", with payload of length $($_Payload.Length)" + $passVals.payload = $_Payload + } + elseif ($_Kind -ine 'File') { + Write-Error "A payload is required for all Push types except File." -ErrorAction Stop + } + if ($Passphrase) { + $passVals.passphrase = $Passphrase + $shouldString += ", with passphrase of length $($Passphrase.Length)" + } + if ($Note) { + $passVals.note = $note + $shouldString += ", with note $note" + } + if ($ExpireAfterDays) { + $passVals.expire_after_days = $ExpireAfterDays + $shouldString += ", expire after $ExpireAfterDays days" + } + if ($ExpireAfterViews) { + $passVals.expire_after_views = $ExpireAfterViews + $shouldString += ", expire after $ExpireAfterViews views" + } + if ($PSBoundParameters.ContainsKey('DeletableByViewer')) { + $passVals.deletable_by_viewer = [bool]$DeletableByViewer + $shouldString += $DeletableByViewer ? ', deletable by viewer' : ', not deletable by viewer' + } + if ($PSBoundParameters.ContainsKey('RetrievalStep')) { + $passVals.retrieval_step = [bool]$RetrievalStep + $shouldString += $RetrievalStep ? ', with a 1-click retrieval step' : ', without a retrieval step' + } + + if ($File) { + $_Files = Get-ChildItem -Path $File + Write-Debug "Attaching $($_Files.Name -join '; ')" + if ($_Files.Count -gt 10) { + Write-Error "The total number of files is greater than allowed. Only 10 files may be attached to each Push." -ErrorAction Stop + } + else { + $shouldString += ", attaching $($_Files.count) files" + } + $Form = @{ } + $passVals.GetEnumerator() | ForEach-Object { $Form.Add("password[$($_.Name)]", $_.Value) } + $Form.'password[files][]' = $_Files + if ($AccountId) { + $Form.account_id = $AccountId + $shouldString += ', with account ID {0}' -f $AccountId + } + Write-Debug "Form looks like $($Form | Out-String)" + $invokeSplat = @{ + Form = $Form + } + } else { + $Body = @{ 'password' = $passVals } + if ($AccountId) { + $Body.account_id = $AccountId + $shouldString += ', with account ID {0}' -f $AccountId + } + Write-Debug "Body looks like $($Body | ConvertTo-Json -Depth 5)" + $invokeSplat = @{ + Body = $Body + } + } + if ($PSCmdlet.ShouldProcess($shouldString, $Script:PPPBaseUrl, 'Submit new Push')) { + $response = Invoke-PasswordPusherAPI -Endpoint 'p.json' -Method Post @invokeSplat + $response | ConvertTo-PasswordPush + } + } +} +#EndRegion '.\Public\New-Push.ps1' 268 +#Region '.\Public\Remove-Push.ps1' -1 + +<# +.SYNOPSIS +Remove a Push + +.DESCRIPTION +Remove (invalidate) an active push. Requires the Push be either set as +deletable by viewer, or that you are authenticated as the creator of the +Push. + +If you have authorization to delete a push (deletable by viewer TRUE or +you are the Push owner) the endpoint will always return 200 OK with a Push +object, regardless if the Push was previously deleted or expired. + +If the Push URL Token is invalid OR you are not authorized to delete the +Push, the endpoint returns 404 and this function returns $false + +.PARAMETER URLToken +URL Token for the secret + +.PARAMETER PushObject +PasswordPush object + +.INPUTS +[string] URL Token +[PasswordPush] representing the Push to remove + +.OUTPUTS +[bool] True on success, otherwise False + +.EXAMPLE +Remove-Push -URLToken bwzehzem_xu- + +.EXAMPLE +Remove-Push -URLToken + +.LINK +https://github.com/adamburley/PassPushPosh/blob/main/Docs/Remove-Push.md + +.LINK +https://pwpush.com/api/1.0/passwords/destroy.en.html + +.NOTES +TODO testing and debugging +#> +function Remove-Push { + [CmdletBinding(SupportsShouldProcess, DefaultParameterSetName = 'Token')] + [OutputType([PasswordPush], [bool])] + param( + [parameter(ValueFromPipeline, ParameterSetName = 'Token')] + [ValidateNotNullOrEmpty()] + [Alias('Token')] + [string] + $URLToken, + + [Parameter(ValueFromPipeline, ParameterSetName = 'Object')] + [PasswordPush] + $PushObject + ) + process { + if ($PSCmdlet.ParameterSetName -eq 'Object') { + Write-Debug -Message "Remove-Push was passed a PasswordPush object with URLToken: [$($PushObject.URLToken)]" + if (-not $PushObject.IsDeletableByViewer -and -not $Script:PPPHeaders) { + #Pre-qualify if this will succeed + Write-Warning -Message 'Unable to remove Push. Push is not marked as deletable by viewer and you are not authenticated.' + continue + } + if ($PushObject.IsDeletableByViewer) { + Write-Verbose "Push is flagged as deletable by viewer, should be deletable." + } + else { Write-Verbose "In an authenticated API session. Push will be deletable if it was created by authenticated user." } + $URLToken = $PushObject.URLToken + } + else { + Write-Debug -Message "Remove-Push was passed a URLToken: [$URLToken]" + } + Write-Verbose -Message "Push with URL Token [$URLToken] will be deleted if 'Deletable by viewer' was enabled or you are the creator of the push and are authenticated." + if ($PSCmdlet.ShouldProcess('Delete', "Push with token [$URLToken]")) { + $result = Invoke-PasswordPusherAPI -Endpoint "p/$URLToken.json" -Method 'Delete' -ReturnErrors + if ($result.error) { + Write-Error -Message "Unable to remove Push with token [$URLToken]. Error: $($result.error)" + } + else { + $result | ConvertTo-PasswordPush + } + } + } +} +#EndRegion '.\Public\Remove-Push.ps1' 88 diff --git a/RemoveAPDevice/function.json b/RemoveAPDevice/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/RemoveAPDevice/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/RemoveAPDevice/run.ps1 b/RemoveAPDevice/run.ps1 deleted file mode 100644 index a6a32601b8da..000000000000 --- a/RemoveAPDevice/run.ps1 +++ /dev/null @@ -1,36 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" -# Write to the Azure Functions log stream. -Write-Host "PowerShell HTTP trigger function processed a request." - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$Deviceid = $Request.Query.ID - -try { - if ($TenantFilter -eq $null -or $TenantFilter -eq "null") { - $GraphRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/$Deviceid" -type DELETE - } - else { - $GraphRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotDeviceIdentities/$Deviceid" -tenantid $TenantFilter -type DELETE - } - Log-Request -user $request.headers.'x-ms-client-principal' -tenant $TenantFilter -API $APINAME -message "Deleted autopilot device $Deviceid" -Sev "Info" - $body = [pscustomobject]@{"Results" = "Succesfully deleted the autopilot device" } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -tenant $TenantFilter -API $APINAME -message "Autopilot Delete API failed for $deviceid. The error is: $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to delete device: $($_.Exception.Message)" } -} -#force a sync, this can give "too many requests" if deleleting a bunch of devices though. -$GraphRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceManagement/windowsAutopilotSettings/sync" -tenantid $TenantFilter -type POST -body "{}" - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) \ No newline at end of file diff --git a/RemoveApp/function.json b/RemoveApp/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/RemoveApp/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/RemoveApp/run.ps1 b/RemoveApp/run.ps1 deleted file mode 100644 index cabd77dddb41..000000000000 --- a/RemoveApp/run.ps1 +++ /dev/null @@ -1,31 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$policyId = $Request.Query.ID -if (!$policyId) { exit } -try { - #$unAssignRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($policyId)')/assign" -type POST -Body '{"assignments":[]}' -tenant $TenantFilter - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($policyId)" -type DELETE -tenant $TenantFilter - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Deleted $policyId" -Sev "Info" -tenant $TenantFilter - $body = [pscustomobject]@{"Results" = "Succesfully deleted the application" } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not delete app $policyId. $($_.Exception.Message)" -Sev "Error" -tenant $TenantFilter - $body = [pscustomobject]@{"Results" = "Could not delete this application: $($_.Exception.Message)" } - -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) - -#@{ Name = 'LicJoined'; Expression = { ($_.assignedLicenses | ForEach-Object { convert-skuname -skuID $_.skuid }) -join ", " } }, @{ Name = 'Aliases'; Expression = { $_.Proxyaddresses -join ", " } }, @{ Name = 'primDomain'; Expression = { $_.userPrincipalName -split "@" | Select-Object -Last 1 } } \ No newline at end of file diff --git a/RemoveIntuneTemplate/function.json b/RemoveIntuneTemplate/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/RemoveIntuneTemplate/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/RemoveIntuneTemplate/run.ps1 b/RemoveIntuneTemplate/run.ps1 deleted file mode 100644 index 052d6d411aa1..000000000000 --- a/RemoveIntuneTemplate/run.ps1 +++ /dev/null @@ -1,26 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$ID = $request.query.id -try { - Remove-Item "Config\$($ID).IntuneTemplate.json" -Force - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed Intune Template with ID $ID." -Sev "Info" - $body = [pscustomobject]@{"Results" = "Successfully removed Intune Template" } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to remove intune template $ID. $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to remove template" } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) - diff --git a/RemovePolicy/function.json b/RemovePolicy/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/RemovePolicy/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/RemovePolicy/run.ps1 b/RemovePolicy/run.ps1 deleted file mode 100644 index d6948937d826..000000000000 --- a/RemovePolicy/run.ps1 +++ /dev/null @@ -1,33 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$policyId = $Request.Query.ID -if (!$policyId) { exit } -try { - - #$unAssignRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies('$($policyId)')/assign" -type POST -Body '{"assignments":[]}' -tenant $TenantFilter - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/deviceManagement/$($Request.Query.URLName)('$($policyId)')" -type DELETE -tenant $TenantFilter - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Deleted $policyId" -Sev "Info" -tenant $TenantFilter - $body = [pscustomobject]@{"Results" = "Succesfully deleted the policy" } - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not delete policy $policyId. $($_.Exception.Message)" -Sev "Error" -tenant $TenantFilter - $body = [pscustomobject]@{"Results" = "Could not delete policy: $($_.Exception.Message)" } - -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) - -#@{ Name = 'LicJoined'; Expression = { ($_.assignedLicenses | ForEach-Object { convert-skuname -skuID $_.skuid }) -join ", " } }, @{ Name = 'Aliases'; Expression = { $_.Proxyaddresses -join ", " } }, @{ Name = 'primDomain'; Expression = { $_.userPrincipalName -split "@" | Select-Object -Last 1 } } \ No newline at end of file diff --git a/RemoveQueuedAlert/function.json b/RemoveQueuedAlert/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/RemoveQueuedAlert/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/RemoveQueuedAlert/run.ps1 b/RemoveQueuedAlert/run.ps1 deleted file mode 100644 index ca5c30bc4134..000000000000 --- a/RemoveQueuedAlert/run.ps1 +++ /dev/null @@ -1,27 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$user = $request.headers.'x-ms-client-principal' -$ID = $request.query.id -try { - Remove-Item "Cache_Scheduler\$($ID).alert.json" -Force - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed application queue for $ID." -Sev "Info" - $body = [pscustomobject]@{"Results" = "Successfully removed from queue." } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to remove from queue $ID. $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to remove alert from queue" } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) - diff --git a/RemoveQueuedApp/function.json b/RemoveQueuedApp/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/RemoveQueuedApp/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/RemoveQueuedApp/run.ps1 b/RemoveQueuedApp/run.ps1 deleted file mode 100644 index b550359f72ca..000000000000 --- a/RemoveQueuedApp/run.ps1 +++ /dev/null @@ -1,27 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$user = $request.headers.'x-ms-client-principal' -$ID = $request.query.id -try { - Remove-Item "ChocoApps.cache\$($ID)" -Force - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed application queue for $ID." -Sev "Info" - $body = [pscustomobject]@{"Results" = "Successfully removed from queue." } -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to remove application queue for $ID. $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to remove standard)" } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) - diff --git a/RemoveStandard/function.json b/RemoveStandard/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/RemoveStandard/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/RemoveStandard/run.ps1 b/RemoveStandard/run.ps1 deleted file mode 100644 index 15905a22c88c..000000000000 --- a/RemoveStandard/run.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -$user = $request.headers.'x-ms-client-principal' -$ID = $request.query.id -try { - Remove-Item "Cache_Standards\$($ID).Standards.json" -Force - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Removed standards for $ID." -Sev "Info" - $body = [pscustomobject]@{"Results" = "Successfully removed standards deployment" } - - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Failed to remove standard for $ID. $($_.Exception.Message)" -Sev "Error" - $body = [pscustomobject]@{"Results" = "Failed to remove standard)" } -} - - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) - diff --git a/RemoveUser/function.json b/RemoveUser/function.json deleted file mode 100644 index 306b0c51e560..000000000000 --- a/RemoveUser/function.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "type": "httpTrigger", - "direction": "in", - "name": "Request", - "methods": [ - "get", - "post" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - } - ] -} \ No newline at end of file diff --git a/RemoveUser/run.ps1 b/RemoveUser/run.ps1 deleted file mode 100644 index 2a0c3f32071a..000000000000 --- a/RemoveUser/run.ps1 +++ /dev/null @@ -1,31 +0,0 @@ -using namespace System.Net - -# Input bindings are passed in via param block. -param($Request, $TriggerMetadata) - -$APIName = $TriggerMetadata.FunctionName -Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Accessed this API" -Sev "Debug" - -# Interact with query parameters or the body of the request. -$TenantFilter = $Request.Query.TenantFilter -$userid = $Request.Query.ID -if (!$userid) { exit } -try { - $GraphRequest = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($userid)" -type DELETE -tenant $TenantFilter - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Deleted $userid" -Sev "Info" -tenant $TenantFilter - $body = [pscustomobject]@{"Results" = "Succesfully deleted the user." } - -} -catch { - Log-Request -user $request.headers.'x-ms-client-principal' -API $APINAME -message "Could not delete user $userid. $($_.Exception.Message)" -Sev "Error" -tenant $TenantFilter - $body = [pscustomobject]@{"Results" = "Could not delete user: $($_.Exception.Message)" } - -} - -# Associate values to output bindings by calling 'Push-OutputBinding'. -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $body - }) - -#@{ Name = 'LicJoined'; Expression = { ($_.assignedLicenses | ForEach-Object { convert-skuname -skuID $_.skuid }) -join ", " } }, @{ Name = 'Aliases'; Expression = { $_.Proxyaddresses -join ", " } }, @{ Name = 'primDomain'; Expression = { $_.userPrincipalName -split "@" | Select-Object -Last 1 } } \ No newline at end of file diff --git a/Scheduler_Alert/function.json b/Scheduler_Alert/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Scheduler_Alert/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Scheduler_Alert/run.ps1 b/Scheduler_Alert/run.ps1 deleted file mode 100644 index 5eef6f80d845..000000000000 --- a/Scheduler_Alert/run.ps1 +++ /dev/null @@ -1,97 +0,0 @@ -param($tenant) -Write-Host $($Tenant | ConvertTo-Json) -if ($Tenant.tag -eq "AllTenants") { - $Alerts = Get-Content ".\Cache_Scheduler\AllTenants.alert.json" | ConvertFrom-Json -} -else { - $Alerts = Get-Content ".\Cache_Scheduler\$($tenant.tenant).alert.json" | ConvertFrom-Json -} -$ShippedAlerts = switch ($Alerts) { - - { $Alerts."AdminPassword" -eq $true } { - New-GraphGETRequest -uri "https://graph.microsoft.com/beta/roleManagement/directory/roleAssignments?`$filter=roleDefinitionId eq '62e90394-69f5-4237-9190-012177145e10'" -tenantid $($tenant.tenant) | ForEach-Object { - $LastChanges = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/users/$($_.principalId)?`$select=UserPrincipalName,lastPasswordChangeDateTime" -tenant $($tenant.tenant) - if ([datetime]$LastChanges.LastPasswordChangeDateTime -gt (Get-Date).AddDays(-1)) { "Admin password has been changed for $($LastChanges.UserPrincipalName) in last 24 hours" } - } - } - { $_."DefenderMalware" -eq $true } { - - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsDeviceMalwareStates?`$top=999&`$filter=tenantId eq '$($Tenant.tenantid)'" | Where-Object { $_.malwareThreatState -eq "Active" } | ForEach-Object { - "$($_.managedDeviceName): Malware found and active. Severity: $($_.MalwareSeverity). Malware name: $($_.MalwareDisplayName)" - } - } - { $_."DefenderStatus" -eq $true } { - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/managedTenants/windowsProtectionStates?`$top=999&`$filter=tenantId eq '$($Tenant.tenantid)'" | Where-Object { $_.realTimeProtectionEnabled -eq $false -or $_.MalwareprotectionEnabled -eq $false } | ForEach-Object { - "$($_.managedDeviceName) - Real Time Protection: $($_.realTimeProtectionEnabled) & Malware Protection: $($_.MalwareprotectionEnabled)" - } - } - { $_."MFAAdmins" -eq $true } { - $AdminIds = (New-GraphGETRequest -uri "https://graph.microsoft.com/beta/roleManagement/directory/roleAssignments?`$filter=roleDefinitionId eq '62e90394-69f5-4237-9190-012177145e10'&expand=principal" -tenantid $($tenant.tenant)).principal - $AdminList = Get-CIPPMSolUsers -tenant $tenant.tenant | Where-Object -Property ObjectID -In $AdminIds.id - try { $MFARegistration = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails' -tenantid $tenant.tenant -ErrorAction) } catch {} - $AdminList | Where-Object { $_.Usertype -eq "Member" -and $_.BlockCredential -eq $false } | ForEach-Object { - $CARegistered = [boolean]($MFARegistration | Where-Object -Property UserPrincipalName -EQ $_.UserPrincipalName).IsMFARegistered - if ($_.StrongAuthenticationRequirements.StrongAuthenticationRequirement.state -eq $null -and $CARegistered -eq $false) { "Admin $($_.UserPrincipalName) is enabled but does not have any form of MFA configured." } - } - } - { $_."MFAAlertUsers" -eq $true } { - $users = Get-CIPPMSolUsers -tenant $tenant.tenant - try { $MFARegistration = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails' -tenantid $tenant.tenant -ErrorAction) } catch {} - $users | Where-Object { $_.Usertype -eq "Member" -and $_.BlockCredential -eq $false } | ForEach-Object { - $CARegistered = [boolean]($MFARegistration | Where-Object -Property UserPrincipalName -EQ $_.UserPrincipalName).IsMFARegistered - if ($_.StrongAuthenticationRequirements.StrongAuthenticationRequirement.state -eq $null -and $CARegistered -eq $false) { "User $($_.UserPrincipalName) is enabled but does not have any form of MFA configured." } - } - } - - { $_."NewRole" -eq $true } { - $AdminDelta = Get-Content ".\Cache_AlertsCheck\$($Tenant.tenant).AdminDelta.json" | ConvertFrom-Json - $NewDelta = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles?`$expand=members" -tenantid $Tenant.tenant) | Select-Object displayname, Members | ForEach-Object { - [PSCustomObject]@{ - GroupName = $_.displayname - Members = $_.Members.UserPrincipalName - } - } - $null = New-Item ".\Cache_AlertsCheck\$($Tenant.tenant).AdminDelta.json" -Value ($NewDelta | ConvertTo-Json) -Force - if ($AdminDelta) { - foreach ($Group in $NewDelta) { - $OldDelta = $AdminDelta | Where-Object { $_.GroupName -eq $Group.GroupName } - $Group.members | Where-Object { $_ -notin $OldDelta.members } | ForEach-Object { - "$_ has been added to the $($Group.GroupName) Role" - } - } - } - } - { $_."QuotaUsed" -eq $true } { - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getMailboxUsageDetail(period='D7')?`$format=application/json" -tenantid $Tenant.tenant | ForEach-Object { - $PercentLeft = [math]::round($_.StorageUsedInBytes / $_.prohibitSendReceiveQuotaInBytes * 100) - if ($PercentLeft -gt 80) { "$($_.UserPrincipalName): Mailbox has less than 10% space left. Mailbox is $PercentLeft% full" } - } - } - { $Alerts."UnusedLicenses" -eq $true } { - $ConvertTable = Import-Csv Conversiontable.csv - $ExcludedSkuList = Get-Content ".\config\ExcludeSkuList.json" | ConvertFrom-Json - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/subscribedSkus" -tenantid $Tenant.tenant | ForEach-Object { - $skuid = $_ - foreach ($sku in $skuid) { - if ($sku.skuId -in $ExcludedSkuList.guid) { continue } - $PrettyName = ($ConvertTable | Where-Object { $_.guid -eq $sku.skuid }).'Product_Display_Name' | Select-Object -Last 1 - if (!$PrettyName) { $PrettyName = $skuid.skuPartNumber } - - if ($sku.prepaidUnits.enabled - $sku.consumedUnits -ne 0) { - "$PrettyName has unused licenses. Using $($sku.consumedUnits) of $($sku.prepaidUnits.enabled)." - } - } - } - } -} -$currentlog = Get-Content "Logs\$((Get-Date).ToString('ddMMyyyy')).log" | ConvertFrom-Csv -Header "DateTime", "Tenant", "API", "Message", "User", "Severity" -Delimiter "|" | Where-Object -Property Tenant -EQ $tenant.tenant -Write-Host $ShippedAlerts -$ShippedAlerts | ForEach-Object { - if ($_ -in $currentlog.message) { - continue - } - Log-Request -message $_ -API "Alerts" -tenant $tenant.tenant -sev Alert -} -[PSCustomObject]@{ - ReturnedValues = $true -} \ No newline at end of file diff --git a/Scheduler_CIPPNotifications/function.json b/Scheduler_CIPPNotifications/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Scheduler_CIPPNotifications/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Scheduler_CIPPNotifications/run.ps1 b/Scheduler_CIPPNotifications/run.ps1 deleted file mode 100644 index f0a7f41438fb..000000000000 --- a/Scheduler_CIPPNotifications/run.ps1 +++ /dev/null @@ -1,82 +0,0 @@ -param($tenant) - -# Get the current universal time in the default string format. -$currentUTCtime = (Get-Date).ToUniversalTime() - -if (Test-Path '.\Config\Config_Notifications.Json') { - $Config = Get-Content '.\Config\Config_Notifications.Json' | ConvertFrom-Json -} -else { - Write-Host 'Done - No config active' - exit -} - -$Settings = if ($Config.psobject.properties.name) { @($Config.psobject.properties.name, "Alerts") } else { @("Alerts") } -$logdate = (Get-Date).ToString('ddMMyyyy') -try { - $Currentlog = Get-Content "Logs\$($logdate).log" | ConvertFrom-Csv -Header 'DateTime', 'Tenant', 'API', 'Message', 'User', 'Severity' -Delimiter '|' | Where-Object { [datetime]$_.Datetime -gt (Get-Date).AddMinutes(-10) -and $_.api -in $Settings -and $_.Severity -ne 'debug' } -} -catch { - $Currentlog = @{ date = $logdate; message = "The log might be corrupted. We could not retrieve the information: $($_.Exception.message)" } -} -if ($Config.email -ne '' -and $null -ne $CurrentLog) { - $HTMLLog = ($CurrentLog | ConvertTo-Html -frag) -replace '', '
      ' | Out-String - $JSONBody = @" - { - "message": { - "subject": "CIPP Alert: Alerts found starting at $((Get-Date).AddMinutes(-10))", - "body": { - "contentType": "HTML", - "content": "You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log:

      - - - $($HTMLLog) - - " - }, - "toRecipients": [ - { - "emailAddress": { - "address": "$($config.email)" - } - } - ] - }, - "saveToSentItems": "false" - } -"@ - New-GraphPostRequest -uri 'https://graph.microsoft.com/v1.0/me/sendMail' -tenantid $env:TenantID -type POST -body ($JSONBody) -} - - -if ($Config.webhook -ne '' -and $null -ne $CurrentLog) { - switch -wildcard ($config.Webhook) { - - '*webhook.office.com*' { - $Log = $Currentlog | ConvertTo-Html -frag | Out-String - $JSonBody = "{`"text`": `"You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log.

      $Log`"}" - Invoke-RestMethod -Uri $config.webhook -Method POST -ContentType 'Application/json' -Body $JSONBody - } - - '*slack.com*' { - $Log = $Currentlog | ForEach-Object { - $JSonBody = @" - {"blocks":[{"type":"header","text":{"type":"plain_text","text":"New Alert from CIPP","emoji":true}},{"type":"section","fields":[{"type":"mrkdwn","text":"*DateTime:*\n$($_.DateTime)"},{"type":"mrkdwn","text":"*Tenant:*\n$($_.Tenant)"},{"type":"mrkdwn","text":"*API:*\n$($_.API)"},{"type":"mrkdwn","text":"*User:*\n$($_.User)."}]},{"type":"section","text":{"type":"mrkdwn","text":"*Message:*\n$($_.message)"}}]} -"@ - Invoke-RestMethod -Uri $config.webhook -Method POST -ContentType 'Application/json' -Body $JSONBody - } - } - - '*discord.com*' { - $Log = $Currentlog | ConvertTo-Html -frag | Out-String - $JSonBody = "{`"content`": `"You've setup your alert policies to be alerted whenever specific events happen. We've found some of these events in the log. $Log`"}" - Invoke-RestMethod -Uri $config.webhook -Method POST -ContentType 'Application/json' -Body $JSONBody - } - } - -} - - -[PSCustomObject]@{ - ReturnedValues = $true -} \ No newline at end of file diff --git a/Scheduler_GetQueue/function.json b/Scheduler_GetQueue/function.json deleted file mode 100644 index b31f1ad21352..000000000000 --- a/Scheduler_GetQueue/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "name", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Scheduler_GetQueue/run.ps1 b/Scheduler_GetQueue/run.ps1 deleted file mode 100644 index c906d973f416..000000000000 --- a/Scheduler_GetQueue/run.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -param($name) - -$Tenants = Get-ChildItem "Cache_Scheduler\*.json" - -$object = foreach ($Tenant in $tenants) { - $TypeFile = Get-Content "$($tenant)" | ConvertFrom-Json - if ($Typefile.Tenant -ne "AllTenants") { - [pscustomobject]@{ - Tenant = $Typefile.Tenant - Tag = "SingleTenant" - TenantID = $TypeFile.tenantId - Type = $Typefile.Type - } - } - else { - Write-Host "All tenants, doing them all" - get-tenants | ForEach-Object { - [pscustomobject]@{ - Tenant = $_.defaultDomainName - Tag = "AllTenants" - TenantID = $_.customerId - Type = $Typefile.Type - } - } - } -} - - -$object \ No newline at end of file diff --git a/Scheduler_Orchestration/function.json b/Scheduler_Orchestration/function.json deleted file mode 100644 index 7326b39c184d..000000000000 --- a/Scheduler_Orchestration/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "Context", - "type": "orchestrationTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Scheduler_Orchestration/run.ps1 b/Scheduler_Orchestration/run.ps1 deleted file mode 100644 index 420d9303c561..000000000000 --- a/Scheduler_Orchestration/run.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -param($Context) - -New-Item "Cache_Scheduler" -ItemType Directory -ErrorAction SilentlyContinue -New-Item "Cache_Scheduler\CurrentlyRunning.txt" -ItemType File -Force - - -$Batch = (Invoke-DurableActivity -FunctionName 'Scheduler_GetQueue' -Input 'LetsGo') -$ParallelTasks = foreach ($Item in $Batch) { - Invoke-DurableActivity -FunctionName "Scheduler_$($item['Type'])" -Input $item -NoWait -} - -$Outputs = Wait-ActivityFunction -Task $ParallelTasks -Write-Host $Outputs -Remove-Item "Cache_Scheduler\CurrentlyRunning.txt" -Force -Log-request -API "Scheduler" -tenant $tenant -message "Scheduler Ran." -sev Debug \ No newline at end of file diff --git a/Scheduler_Timer/function.json b/Scheduler_Timer/function.json deleted file mode 100644 index b8c54e695997..000000000000 --- a/Scheduler_Timer/function.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "bindings": [ - { - "name": "Timer", - "schedule": "0 */10 * * * *", - "direction": "in", - "type": "timerTrigger" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} diff --git a/Scheduler_Timer/run.ps1 b/Scheduler_Timer/run.ps1 deleted file mode 100644 index f62c2909b58d..000000000000 --- a/Scheduler_Timer/run.ps1 +++ /dev/null @@ -1,8 +0,0 @@ -using namespace System.Net - -param($Timer) - -$InstanceId = Start-NewOrchestration -FunctionName 'Scheduler_Orchestration' -Write-Host "Started orchestration with ID = '$InstanceId'" -New-OrchestrationCheckStatusResponse -Request $timer -InstanceId $InstanceId - diff --git a/SecurityBaselines_All/function.json b/SecurityBaselines_All/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/SecurityBaselines_All/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/SecurityBaselines_All/run.ps1 b/SecurityBaselines_All/run.ps1 deleted file mode 100644 index a4862f7e8b17..000000000000 --- a/SecurityBaselines_All/run.ps1 +++ /dev/null @@ -1,4 +0,0 @@ -param($tenant) -#Log-request -API "SecurityBaselines" -tenant $tenant -message "SecurityBaselines_All called at $((Get-Date).tofiletime())" -sev Info -Write-Output $tenant.defaultDomainName - diff --git a/SecurityBaselines_Orchestration/function.json b/SecurityBaselines_Orchestration/function.json deleted file mode 100644 index 7326b39c184d..000000000000 --- a/SecurityBaselines_Orchestration/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "Context", - "type": "orchestrationTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/SecurityBaselines_Orchestration/run.ps1 b/SecurityBaselines_Orchestration/run.ps1 deleted file mode 100644 index 5f15b2ea36e0..000000000000 --- a/SecurityBaselines_Orchestration/run.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -param($Context) - -Log-request -API "SecurityBaselines" -tenant $tenant -message "SecurityBaselines_Orchestration called at $((Get-Date).tofiletime())" -sev Info -#Remove-Item "SecurityBaselines_All\results.json" -Force - -New-Item "SecurityBaselines_All\CurrentlyRunning.txt" -ItemType File -Force -$Batch = Get-Tenants -$ParallelTasks = foreach ($Item in $Batch) { - Invoke-DurableActivity -FunctionName "SecurityBaselines_All" -Input $item -NoWait -} - -Log-request -API "SecurityBaselines" -tenant $tenant -message "STARTING PROCESS OF OUTPUTS!" -sev Info -$Outputs = Wait-ActivityFunction -Task $ParallelTasks -Log-request -API "SecurityBaselines" -tenant $tenant -message "Outputs found count = $($Outputs.count)" -sev Info - -foreach ($item in $Outputs) { - Write-Host $Item | Out-String - $Object = $Item | ConvertTo-Json - - Set-Content "SecurityBaselines_All\results.json" -Value $Object -Force -} - -#Log-request -API "DomainAnalyser" -tenant $tenant -message "Domain Analyser has Finished" -sev Info -Remove-Item "SecurityBaselines_All\CurrentlyRunning.txt" -Force \ No newline at end of file diff --git a/SecurityBaselines_OrchestrationStarter/function.json b/SecurityBaselines_OrchestrationStarter/function.json deleted file mode 100644 index 14c44f4f0217..000000000000 --- a/SecurityBaselines_OrchestrationStarter/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "name": "Request", - "type": "httpTrigger", - "direction": "in", - "methods": [ - "post", - "get" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} diff --git a/SecurityBaselines_OrchestrationStarter/run.ps1 b/SecurityBaselines_OrchestrationStarter/run.ps1 deleted file mode 100644 index b94c58e14fd2..000000000000 --- a/SecurityBaselines_OrchestrationStarter/run.ps1 +++ /dev/null @@ -1,33 +0,0 @@ -using namespace System.Net - -param($Request, $TriggerMetadata) -Log-request -API "SecurityBaselines" -tenant $tenant -message "SecurityBaselines_OrchestrationStarter called at $(Get-Date)" -sev Info -$APIName = $TriggerMetadata.FunctionName -$OrchestratorName = "SecurityBaselines_Orchestration" - -$CurrentlyRunning = Get-Item "SecurityBaselines_All\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-24) -if ($CurrentlyRunning) { - $Results = [pscustomobject]@{"Results" = "Already running. Please wait for the current instance to finish" } - Log-request -API $APIName -message "Attempted to start an instance but an instance was already running." -sev Info -} -else { - $InstanceId = Start-NewOrchestration -FunctionName $OrchestratorName - Write-Host "Started orchestration with ID = '$InstanceId'" - $Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId - do { - $StillRunning = Get-Item "SecurityBaselines_All\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-24) - if (!$StillRunning) { - $Results = Get-Content "SecurityBaselines_All\Results.json" -ErrorAction SilentlyContinue - } - else { - Start-Sleep -Milliseconds 500 - } - } while ($StillRunning) -} - - - -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $results - }) \ No newline at end of file diff --git a/Shared/AppInsights/Microsoft.ApplicationInsights.dll b/Shared/AppInsights/Microsoft.ApplicationInsights.dll new file mode 100644 index 000000000000..0fc9839e335a Binary files /dev/null and b/Shared/AppInsights/Microsoft.ApplicationInsights.dll differ diff --git a/Standards_AnonReportDisable/function.json b/Standards_AnonReportDisable/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_AnonReportDisable/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_AnonReportDisable/run.ps1 b/Standards_AnonReportDisable/run.ps1 deleted file mode 100644 index 246bf1883a0d..000000000000 --- a/Standards_AnonReportDisable/run.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -param($tenant) - -try { - $uri = "https://login.microsoftonline.com/$($Tenant)/oauth2/token" - $body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $AnonReports = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://admin.microsoft.com/admin/api/reports/config/SetTenantConfiguration' -Body '{"PrivacyEnabled":false,"PowerBiEnabled":true}' -Method POST -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - Log-request -API "Standards" -tenant $tenant -message "Anonymous Reports Disabled." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to disable anonymous reports. Error: $($_.exception.message)" -} \ No newline at end of file diff --git a/Standards_AuditLog/function.json b/Standards_AuditLog/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_AuditLog/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_AuditLog/run.ps1 b/Standards_AuditLog/run.ps1 deleted file mode 100644 index c3a46cdc0005..000000000000 --- a/Standards_AuditLog/run.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -param($tenant) - -try { - $DehydratedTenant = (New-ExoRequest -tenantid $Tenant -cmdlet "Get-OrganizationConfig").IsDehydrated - if ($DehydratedTenant) { - # Drink some water - New-ExoRequest -tenantid $Tenant -cmdlet "Enable-OrganizationCustomization" - } - $AdminAuditLogParams = @{ - UnifiedAuditLogIngestionEnabled = $true - } - New-ExoRequest -tenantid $Tenant -cmdlet "Set-AdminAuditLogConfig" -cmdParams $AdminAuditLogParams - Log-request -API "Standards" -tenant $tenant -message "Unified Audit Log Enabled." -sev Info - -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to apply Unified Audit Log. Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_AutoExpandArchive/function.json b/Standards_AutoExpandArchive/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_AutoExpandArchive/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_AutoExpandArchive/run.ps1 b/Standards_AutoExpandArchive/run.ps1 deleted file mode 100644 index a42ac6ab92ec..000000000000 --- a/Standards_AutoExpandArchive/run.ps1 +++ /dev/null @@ -1,16 +0,0 @@ -param($tenant) - -try { - $upn = "notRequired@required.com" - $tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $tenant).Authorization -AsPlainText -Force - $credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) - $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($tenant)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ErrorAction Continue - Import-PSSession $session -ea Silentlycontinue -AllowClobber -CommandName "Set-OrganizationConfig", - Set-OrganizationConfig -AutoExpandingArchive - Get-PSSession | Remove-PSSession - Log-request -API "Standards" -tenant $tenant -message "Added Auto Expanding Archive." -sev Info - -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to apply Auto Expanding Archives Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_DelegateSentItems/function.json b/Standards_DelegateSentItems/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_DelegateSentItems/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_DelegateSentItems/run.ps1 b/Standards_DelegateSentItems/run.ps1 deleted file mode 100644 index f13b0a3a7537..000000000000 --- a/Standards_DelegateSentItems/run.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -param($tenant) - -try { - $upn = "notRequired@required.com" - $tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $($Tenant)).Authorization -AsPlainText -Force - $credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) - $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($Tenant)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ErrorAction Continue - Import-PSSession $session -ea Silentlycontinue -AllowClobber -CommandName "Get-Mailbox", "Set-mailbox" - Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox, SharedMailbox | Where-Object { $_.MessageCopyForSendOnBehalfEnabled -eq $false -or $_.MessageCopyForSentAsEnabled -eq $false } | set-mailbox -erroraction SilentlyContinue -MessageCopyForSentAsEnabled $true -MessageCopyForSendOnBehalfEnabled $true - Get-PSSession | Remove-PSSession - Log-request -API "Standards" -tenant $tenant -message "Delegate Sent Items Style enabled." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to apply Delegate Sent Items Style. Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_DisableBasicAuth/function.json b/Standards_DisableBasicAuth/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_DisableBasicAuth/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_DisableBasicAuth/run.ps1 b/Standards_DisableBasicAuth/run.ps1 deleted file mode 100644 index 68cd27d736f1..000000000000 --- a/Standards_DisableBasicAuth/run.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -param($tenant) - -try { - $uri = "https://login.microsoftonline.com/$($Tenant)/oauth2/token" - $body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $BasicAuthDisable = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://admin.microsoft.com/admin/api/services/apps/modernAuth' -Body '{"EnableModernAuth":true,"SecureDefaults":false,"DisableModernAuth":false,"AllowOutlookClient":false,"AllowBasicAuthActiveSync":false,"AllowBasicAuthImap":false,"AllowBasicAuthPop":false,"AllowBasicAuthWebServices":true,"AllowBasicAuthPowershell":true,"AllowBasicAuthAutodiscover":false,"AllowBasicAuthMapi":true,"AllowBasicAuthOfflineAddressBook":true,"AllowBasicAuthRpc":true,"AllowBasicAuthSmtp":true}' -Method POST -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - Log-request -API "Standards" -tenant $tenant -message "Basic Authentication Disabled." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to disable Basic Authentication Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_DisableSelfServiceLicenses/function.json b/Standards_DisableSelfServiceLicenses/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_DisableSelfServiceLicenses/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_DisableSelfServiceLicenses/run.ps1 b/Standards_DisableSelfServiceLicenses/run.ps1 deleted file mode 100644 index 957d2b1aaf92..000000000000 --- a/Standards_DisableSelfServiceLicenses/run.ps1 +++ /dev/null @@ -1,20 +0,0 @@ -param($tenant) - -try { - $AADGraphtoken = (Get-GraphToken -scope "https://graph.windows.net/.default") - $tenantid = ((Get-Content "tenants.cache.json" | ConvertFrom-Json) | Where-Object -Property DefaultDomainName -EQ $tenant).CustomerID - $TrackingGuid = New-Guid - $LogonPost = @" -http://provisioning.microsoftonline.com/IProvisioningWebService/MsolConnecturn:uuid:$TrackingGuidhttp://www.w3.org/2005/08/addressing/anonymous$($AADGraphtoken['Authorization'])50afce61-c917-435b-8c6d-60aa5a8b8aa71.2.183.57Version47$($TrackingGuid)https://provisioningapi.microsoftonline.com/provisioningwebservice.svcVersion4 -"@ - $DataBlob = (Invoke-RestMethod -Method POST -Uri "https://provisioningapi.microsoftonline.com/provisioningwebservice.svc" -ContentType "application/soap+xml; charset=utf-8" -Body $LogonPost).envelope.header.BecContext.DataBlob.'#text' - $DisableSelfServiceBody = @" -http://provisioning.microsoftonline.com/IProvisioningWebService/SetCompanySettingsurn:uuid:$TrackingGuidhttp://www.w3.org/2005/08/addressing/anonymous$($AADGraphtoken['Authorization'])$DataBlob250afce61-c917-435b-8c6d-60aa5a8b8aa71.2.183.57Version474e6cb653-c968-4a3a-8a11-2c8919218aebhttps://provisioningapi.microsoftonline.com/provisioningwebservice.svcVersion16false -"@ - $DisableSelfService = (Invoke-RestMethod -Uri "https://provisioningapi.microsoftonline.com/provisioningwebservice.svc" -Method post -Body $DisableSelfServiceBody -ContentType 'application/soap+xml; charset=utf-8') - Log-request "Standards API: $($tenant) Disabled Self Service for licenses" -sev Info - -} -catch { - Log-request "Standards API: $($tenant) failed to disable License Buy Self Service: $($exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_DisableSharedMailbox/function.json b/Standards_DisableSharedMailbox/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_DisableSharedMailbox/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_DisableSharedMailbox/run.ps1 b/Standards_DisableSharedMailbox/run.ps1 deleted file mode 100644 index 003832b92dd9..000000000000 --- a/Standards_DisableSharedMailbox/run.ps1 +++ /dev/null @@ -1,12 +0,0 @@ -param($tenant) - -try { - $SharedMailboxList = (New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($tenant)/Mailbox" -Tenantid $tenant -scope ExchangeOnline | Where-Object -propert RecipientTypeDetails -EQ "SharedMailbox") | ForEach-Object { - New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/users/$($_.ObjectKey)" -type "PATCH" -body '{"accountEnabled":"false"}' -tenantid $tenant - } - Log-request -API "Standards" -tenant $tenant -message "AAD Accounts for shared mailboxes disabled." -sev Info - -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to disable AAD accounts for shared mailboxes. Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_EnableOnlineArchiving/function.json b/Standards_EnableOnlineArchiving/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_EnableOnlineArchiving/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_EnableOnlineArchiving/run.ps1 b/Standards_EnableOnlineArchiving/run.ps1 deleted file mode 100644 index 91d9178f8211..000000000000 --- a/Standards_EnableOnlineArchiving/run.ps1 +++ /dev/null @@ -1,12 +0,0 @@ -param($tenant) - -try { - $MailboxesNoArchive = (New-ExoRequest -tenantid $tenant -cmdlet "get-mailbox" -cmdparams @{ Filter = 'ArchiveGuid -Eq "00000000-0000-0000-0000-000000000000" -AND RecipientTypeDetails -Eq "UserMailbox"' }) | ForEach-Object { - (New-ExoRequest -tenantid $tenant -cmdlet "enable-Mailbox" -cmdparams @{ Identity = $_.Guid; Archive = $true }) - } - Log-request -API "Standards" -tenant $tenant -message "Enabled Online Archiving for all accounts" -sev Info - -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to Enable Online Archiving for all accounts Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_GetQueue/function.json b/Standards_GetQueue/function.json deleted file mode 100644 index b31f1ad21352..000000000000 --- a/Standards_GetQueue/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "name", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Standards_GetQueue/run.ps1 b/Standards_GetQueue/run.ps1 deleted file mode 100644 index 81224842768d..000000000000 --- a/Standards_GetQueue/run.ps1 +++ /dev/null @@ -1,27 +0,0 @@ -param($name) - -$Tenants = Get-ChildItem "Cache_Standards\*.standards.json" - -$object = foreach ($Tenant in $tenants) { - $StandardsFile = Get-Content "$($tenant)" | ConvertFrom-Json - $Standardsfile.Standards.psobject.properties.name | ForEach-Object { - $Standard = $_ - if ($standardsfile.Tenant -ne "AllTenants") { - Write-Host "Not all tenants. Single object" - [pscustomobject]@{ - Tenant = $Standardsfile.Tenant - Standard = $Standard - } - } - else { - get-tenants | ForEach-Object { - [pscustomobject]@{ - Tenant = $_.defaultDomainName - Standard = $Standard - } - } - } - } - -} -$object \ No newline at end of file diff --git a/Standards_LegacyMFA/function.json b/Standards_LegacyMFA/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_LegacyMFA/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_LegacyMFA/run.ps1 b/Standards_LegacyMFA/run.ps1 deleted file mode 100644 index 1bc84327dd9c..000000000000 --- a/Standards_LegacyMFA/run.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -param($tenant) - -try { - $AADGraphtoken = (Get-GraphToken -scope "https://graph.windows.net/.default") - $tenantid = ((Get-Content "tenants.cache.json" | ConvertFrom-Json) | Where-Object -Property DefaultDomainName -EQ $tenant).CustomerID - $TrackingGuid = New-Guid - $LogonPost = @" -http://provisioning.microsoftonline.com/IProvisioningWebService/MsolConnecturn:uuid:$TrackingGuidhttp://www.w3.org/2005/08/addressing/anonymous$($AADGraphtoken['Authorization'])50afce61-c917-435b-8c6d-60aa5a8b8aa71.2.183.57Version47$($TrackingGuid)https://provisioningapi.microsoftonline.com/provisioningwebservice.svcVersion4 -"@ - $DataBlob = (Invoke-RestMethod -Method POST -Uri "https://provisioningapi.microsoftonline.com/provisioningwebservice.svc" -ContentType "application/soap+xml; charset=utf-8" -Body $LogonPost).envelope.header.BecContext.DataBlob.'#text' - $UserListXML = @" -http://provisioning.microsoftonline.com/IProvisioningWebService/ListUsersurn:uuid:$TrackingGuidhttp://www.w3.org/2005/08/addressing/anonymous$($AADGraphtoken['Authorization'])$DataBlob250afce61-c917-435b-8c6d-60aa5a8b8aa71.2.183.57Version474e6cb653-c968-4a3a-8a11-2c8919218aebhttps://provisioningapi.microsoftonline.com/provisioningwebservice.svcVersion16$($tenantid)500AscendingNone -"@ - $Users = (Invoke-RestMethod -Uri "https://provisioningapi.microsoftonline.com/provisioningwebservice.svc" -Method post -Body $UserListXML -ContentType 'application/soap+xml; charset=utf-8').envelope.body.ListUsersResponse.listusersresult.returnvalue.results.user | Where-Object { ($_.StrongAuthenticationRequirements.StrongAuthenticationRequirement.state -eq $null -and $_.UserPrinicipalName -notlike "Sync_*") } - foreach ($user in $users) { - $MSOLXML = @" -http://provisioning.microsoftonline.com/IProvisioningWebService/SetUserurn:uuid:$TrackingGuidhttp://www.w3.org/2005/08/addressing/anonymous$($AADGraphtoken['Authorization'])$($DataBlob)9450afce61-c917-435b-8c6d-60aa5a8b8aa71.2.183.57Version47$TrackingGuidhttps://provisioningapi.microsoftonline.com/provisioningwebservice.svcVersion16$($tenantid)$($User.ObjectID)*0001-01-01T00:00:00Enabled -"@ - $SetMFA = (Invoke-RestMethod -Uri "https://provisioningapi.microsoftonline.com/provisioningwebservice.svc" -Method post -Body $MSOLXML -ContentType 'application/soap+xml; charset=utf-8') - } -} -catch { - Log-request "Standards API: $($tenant) failed to apply per user MFA. Error: $($exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_ModernAuth/function.json b/Standards_ModernAuth/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_ModernAuth/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_ModernAuth/run.ps1 b/Standards_ModernAuth/run.ps1 deleted file mode 100644 index 85fd6b40566c..000000000000 --- a/Standards_ModernAuth/run.ps1 +++ /dev/null @@ -1,11 +0,0 @@ -param($tenant) - -try { - $currentStatus = New-ClassicAPIGetRequest -Uri "https://admin.microsoft.com/admin/api/services/apps/modernAuth" -TenantID $tenant - $currentStatus.EnableModernAuth = $true - $ModernAuthRequest = New-ClassicAPIPostRequest -Uri 'https://admin.microsoft.com/admin/api/services/apps/modernAuth' -Body ($currentStatus | ConvertTo-Json) -Method POST -TenantID $tenant - Log-request -API "Standards" -tenant $tenant -message "Modern Authentication enabled." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to enable Modern Authentication. Error: $($_.exception.message)" -sev "Error" -} \ No newline at end of file diff --git a/Standards_OauthConsent/function.json b/Standards_OauthConsent/function.json deleted file mode 100644 index ce713ef7d4f6..000000000000 --- a/Standards_OauthConsent/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Standards_OauthConsent/run.ps1 b/Standards_OauthConsent/run.ps1 deleted file mode 100644 index 2e8057f318ce..000000000000 --- a/Standards_OauthConsent/run.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -param($tenant) - -try { - $uri = "https://login.microsoftonline.com/$($Tenant)/oauth2/token" - $body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $oAuth = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://admin.microsoft.com/admin/api/settings/apps/IntegratedApps' -Body '{"Enabled":false}' -Method POST -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - Log-request -API "Standards" -tenant $tenant -message "Application Consent Mode has been enabled." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to apply Application Consent Mode Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_Orchestration/function.json b/Standards_Orchestration/function.json deleted file mode 100644 index 7326b39c184d..000000000000 --- a/Standards_Orchestration/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "Context", - "type": "orchestrationTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Standards_Orchestration/run.ps1 b/Standards_Orchestration/run.ps1 deleted file mode 100644 index 443cb1e25af1..000000000000 --- a/Standards_Orchestration/run.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -param($Context) - -New-Item "Cache_Standards" -ItemType Directory -ErrorAction SilentlyContinue -New-Item "Cache_Standards\CurrentlyRunning.txt" -ItemType File -Force - - -$Batch = (Invoke-DurableActivity -FunctionName 'Standards_GetQueue' -Input 'LetsGo') -$ParallelTasks = foreach ($Item in $Batch) { - Invoke-DurableActivity -FunctionName "Standards_$($item['Standard'])"-Input $item['Tenant'] -NoWait -} - -$Outputs = Wait-ActivityFunction -Task $ParallelTasks -Write-Host $Outputs -Remove-Item "Cache_Standards\CurrentlyRunning.txt" -Force -Log-request -API "Standards" -tenant $tenant -message "Deployment finished." -sev Info \ No newline at end of file diff --git a/Standards_OrchestrationStarter/function.json b/Standards_OrchestrationStarter/function.json deleted file mode 100644 index 14c44f4f0217..000000000000 --- a/Standards_OrchestrationStarter/function.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "bindings": [ - { - "authLevel": "anonymous", - "name": "Request", - "type": "httpTrigger", - "direction": "in", - "methods": [ - "post", - "get" - ] - }, - { - "type": "http", - "direction": "out", - "name": "Response" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} diff --git a/Standards_OrchestrationStarter/run.ps1 b/Standards_OrchestrationStarter/run.ps1 deleted file mode 100644 index 5904cdd3a1b5..000000000000 --- a/Standards_OrchestrationStarter/run.ps1 +++ /dev/null @@ -1,23 +0,0 @@ -using namespace System.Net - -param($Request, $TriggerMetadata) -$CurrentlyRunning = Get-Item "Cache_Standards\CurrentlyRunning.txt" -ErrorAction SilentlyContinue | Where-Object -Property LastWriteTime -GT (Get-Date).AddHours(-4) -if ($CurrentlyRunning) { - $Results = [pscustomobject]@{"Results" = "Already running. Please wait for the current instance to finish" } - Log-request -API "StandardsApply" -message "Attempted to Standards but an instance was already running." -sev Info -} -else { - $InstanceId = Start-NewOrchestration -FunctionName 'Standards_Orchestration' - Write-Host "Started orchestration with ID = '$InstanceId'" - $Response = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $InstanceId - Write-Host ($Response | ConvertTo-Json) - Log-request -API "Standards" -tenant $tenant -message "Started applying the standard templates to tenants." -sev Info - $Results = [pscustomobject]@{"Results" = "Started Applying Standards" } -} -Write-Host ($Orchestrator | ConvertTo-Json) - - -Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $results - }) \ No newline at end of file diff --git a/Standards_OrchestrationStarterTimer/function.json b/Standards_OrchestrationStarterTimer/function.json deleted file mode 100644 index 0860d6f56788..000000000000 --- a/Standards_OrchestrationStarterTimer/function.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "bindings": [ - { - "name": "Timer", - "schedule": "0 0 */3 * * *", - "direction": "in", - "type": "timerTrigger" - }, - { - "name": "starter", - "type": "durableClient", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Standards_OrchestrationStarterTimer/run.ps1 b/Standards_OrchestrationStarterTimer/run.ps1 deleted file mode 100644 index 891edf8930a2..000000000000 --- a/Standards_OrchestrationStarterTimer/run.ps1 +++ /dev/null @@ -1,10 +0,0 @@ -using namespace System.Net - -param($Timer) - -$InstanceId = Start-NewOrchestration -FunctionName 'Standards_Orchestration' -Write-Host "Started orchestration with ID = '$InstanceId'" - -$Response = New-OrchestrationCheckStatusResponse -Request $timer -InstanceId $InstanceId -Write-Host ($Response | ConvertTo-Json) -Log-request -API "Standards" -tenant $tenant -message "Started applying the standard templates to tenants." -sev Info diff --git a/Standards_PWdisplayAppInformationRequiredState/function.json b/Standards_PWdisplayAppInformationRequiredState/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_PWdisplayAppInformationRequiredState/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_PWdisplayAppInformationRequiredState/run.ps1 b/Standards_PWdisplayAppInformationRequiredState/run.ps1 deleted file mode 100644 index 53a27f6406bd..000000000000 --- a/Standards_PWdisplayAppInformationRequiredState/run.ps1 +++ /dev/null @@ -1,13 +0,0 @@ -param($tenant) - -try { - $body = @" - {"@odata.context":"https://graph.microsoft.com/beta/$metadata#authenticationMethodConfigurations/$entity","@odata.type":"#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration","id":"MicrosoftAuthenticator","state":"enabled","includeTargets@odata.context":"https://graph.microsoft.com/beta/$metadata#policies/authenticationMethodsPolicy/authenticationMethodConfigurations('MicrosoftAuthenticator')/microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration/includeTargets","includeTargets":[{"targetType":"group","id":"all_users","isRegistrationRequired":false,"authenticationMode":"any","outlookMobileAllowedState":"default","displayAppInformationRequiredState":"enabled","numberMatchingRequiredState":"enabled"}]} -"@ - (New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator" -Type patch -Body $body -ContentType "application/json") - - Log-request -API "Standards" -tenant $tenant -message "Enabled passwordless with Information and Number Matching." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to enable passwordless with Information and Number Matching. Error: $($_.exception.message)" -} \ No newline at end of file diff --git a/Standards_PWnumberMatchingRequiredState/function.json b/Standards_PWnumberMatchingRequiredState/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_PWnumberMatchingRequiredState/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_PWnumberMatchingRequiredState/run.ps1 b/Standards_PWnumberMatchingRequiredState/run.ps1 deleted file mode 100644 index 5fe0c060aa0e..000000000000 --- a/Standards_PWnumberMatchingRequiredState/run.ps1 +++ /dev/null @@ -1,13 +0,0 @@ -param($tenant) - -try { - $body = @" - {"@odata.context":"https://graph.microsoft.com/beta/$metadata#authenticationMethodConfigurations/$entity","@odata.type":"#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration","id":"MicrosoftAuthenticator","state":"enabled","includeTargets@odata.context":"https://graph.microsoft.com/beta/$metadata#policies/authenticationMethodsPolicy/authenticationMethodConfigurations('MicrosoftAuthenticator')/microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration/includeTargets","includeTargets":[{"targetType":"group","id":"all_users","isRegistrationRequired":false,"authenticationMode":"any","outlookMobileAllowedState":"default","displayAppInformationRequiredState":"default","numberMatchingRequiredState":"enabled"}]} -"@ - (New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/microsoftAuthenticator" -Type patch -Body $body -ContentType "application/json") - - Log-request -API "Standards" -tenant $tenant -message "Enabled passwordless with Number Matching." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to enable passwordless with Number Matching. Error: $($_.exception.message)" -} \ No newline at end of file diff --git a/Standards_PasswordExpireDisabled/function.json b/Standards_PasswordExpireDisabled/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_PasswordExpireDisabled/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_PasswordExpireDisabled/run.ps1 b/Standards_PasswordExpireDisabled/run.ps1 deleted file mode 100644 index 8ca1bdb21435..000000000000 --- a/Standards_PasswordExpireDisabled/run.ps1 +++ /dev/null @@ -1,12 +0,0 @@ -param($tenant) - -try { - $uri = "https://login.microsoftonline.com/$($tenant)/oauth2/token" - $body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -method post - $PasswordExpire = Invoke-RestMethod -contenttype "application/json; charset=utf-8" -uri 'https://admin.microsoft.com/admin/api/Settings/security/passwordpolicy' -method POST -body '{"ValidityPeriod":900,"NotificationDays":140,"NeverExpire":true}' -Headers @{Authorization = "Bearer $($token.access_token)"; "x-ms-client-request-id" = [guid]::NewGuid().ToString(); "x-ms-client-session-id" = [guid]::NewGuid().ToString(); 'X-Requested-With' = 'XMLHttpRequest'; 'x-ms-correlation-id' = [guid]::NewGuid() } - Log-request -API "Standards" -tenant $tenant -message "Disabled Password Expiration" -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to disable Password Expiration. Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_SSPR/function.json b/Standards_SSPR/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_SSPR/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_SSPR/run.ps1 b/Standards_SSPR/run.ps1 deleted file mode 100644 index d3c60e7152c7..000000000000 --- a/Standards_SSPR/run.ps1 +++ /dev/null @@ -1,19 +0,0 @@ -param($tenant) - -try { - $uri = "https://login.microsoftonline.com/$($Tenant)/oauth2/token" - $bodypasswordresetpol = "resource=74658136-14ec-4630-ad9b-26e160ff0fc6&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $tokensspr = Invoke-RestMethod $uri -Body $bodypasswordresetpol -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $bodysspr = '{"objectId":"default","enablementType":2,"numberOfAuthenticationMethodsRequired":2,"emailOptionEnabled":true,"mobilePhoneOptionEnabled":true,"officePhoneOptionEnabled":false,"securityQuestionsOptionEnabled":false,"mobileAppNotificationEnabled":true,"mobileAppCodeEnabled":true,"numberOfQuestionsToRegister":5,"numberOfQuestionsToReset":3,"registrationRequiredOnSignIn":true,"registrationReconfirmIntevalInDays":180,"skipRegistrationAllowed":true,"skipRegistrationMaxAllowedDays":7,"customizeHelpdeskLink":false,"customHelpdeskEmailOrUrl":"","notifyUsersOnPasswordReset":true,"notifyOnAdminPasswordReset":true,"passwordResetEnabledGroupIds":[],"passwordResetEnabledGroupName":"","securityQuestions":[],"registrationConditionalAccessPolicies":[],"emailOptionAllowed":true,"mobilePhoneOptionAllowed":true,"officePhoneOptionAllowed":true,"securityQuestionsOptionAllowed":true,"mobileAppNotificationOptionAllowed":true,"mobileAppCodeOptionAllowed":true}' - $SSPRGraph = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://main.iam.ad.ext.azure.com/api/PasswordReset/PasswordResetPolicies' -Method PUT -Body $bodysspr -Headers @{ - Authorization = "Bearer $($tokensspr.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - Log-request -API "Standards" -tenant $tenant -message "SSPR enabled" -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to enable SSPR $($_.exception.message)" -} \ No newline at end of file diff --git a/Standards_SecurityDefaults/function.json b/Standards_SecurityDefaults/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_SecurityDefaults/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_SecurityDefaults/run.ps1 b/Standards_SecurityDefaults/run.ps1 deleted file mode 100644 index 685a8c7078a0..000000000000 --- a/Standards_SecurityDefaults/run.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -param($tenant) - -try { - $SecureDefaultsState = (New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy" -tenantid $tenant) - - if ($SecureDefaultsState.IsEnabled -ne $true) { - Write-Host "Secure Defaults is disabled. Enabling for $tenant" -ForegroundColor Yellow - $body = '{ "isEnabled": true }' - (New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy" -Type patch -Body $body -ContentType "application/json") - } - Log-request -API "Standards" -tenant $tenant -message "Standards API: Security Defaults Enabled." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to enable Security Defaults Error: $($_.exception.message)" -} diff --git a/Standards_SpoofWarn/function.json b/Standards_SpoofWarn/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_SpoofWarn/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_SpoofWarn/run.ps1 b/Standards_SpoofWarn/run.ps1 deleted file mode 100644 index 0b92f55ff2cb..000000000000 --- a/Standards_SpoofWarn/run.ps1 +++ /dev/null @@ -1,16 +0,0 @@ -param($tenant) - -try { - $upn = "notRequired@required.com" - $tokenvalue = ConvertTo-SecureString (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -RefreshToken $ENV:ExchangeRefreshToken -Scope 'https://outlook.office365.com/.default' -Tenantid $tenant).Authorization -AsPlainText -Force - $credential = New-Object System.Management.Automation.PSCredential($upn, $tokenValue) - $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell-liveid?DelegatedOrg=$($tenant)&BasicAuthToOAuthConversion=true" -Credential $credential -Authentication Basic -AllowRedirection -ErrorAction Continue - Import-PSSession $session -ea Silentlycontinue -AllowClobber -CommandName "Set-ExternalInOutlook" - Set-ExternalInOutlook -Enabled $true - Get-PSSession | Remove-PSSession - Log-request -API "Standards" -tenant $tenant -message "Spoofing warnings enabled." -sev Info - -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Could not enabled spoofing warnings. Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_TAP/function.json b/Standards_TAP/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_TAP/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_TAP/run.ps1 b/Standards_TAP/run.ps1 deleted file mode 100644 index 7f5404c264aa..000000000000 --- a/Standards_TAP/run.ps1 +++ /dev/null @@ -1,27 +0,0 @@ -param($tenant) - -try { - $MinimumLifetime = "60" #Minutes - $MaximumLifetime = "480" #minutes - $DefaultLifeTime = "60" #minutes - $DefaultLength = "8" - $body = @" - {"@odata.type":"#microsoft.graph.temporaryAccessPassAuthenticationMethodConfiguration", - "id":"TemporaryAccessPass", - "includeTargets":[{"id":"all_users", - "isRegistrationRequired":false, - "targetType":"group","displayName":"All users"}], - "defaultLength":$DefaultLength, - "defaultLifetimeInMinutes":$DefaultLifeTime, - "isUsableOnce":true, - "maximumLifetimeInMinutes":$MaximumLifetime, - "minimumLifetimeInMinutes":$MinimumLifetime, - "state":"enabled"} -"@ - (New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/policies/authenticationmethodspolicy/authenticationMethodConfigurations/TemporaryAccessPass" -Type patch -Body $body -ContentType "application/json") - - Log-request -API "Standards" -tenant $tenant -message "Enabled Temporary Access Passwords." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to enable TAP. Error: $($_.exception.message)" -} \ No newline at end of file diff --git a/Standards_UndoOauth/function.json b/Standards_UndoOauth/function.json deleted file mode 100644 index ce713ef7d4f6..000000000000 --- a/Standards_UndoOauth/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "type": "activityTrigger", - "direction": "in" - } - ] -} \ No newline at end of file diff --git a/Standards_UndoOauth/run.ps1 b/Standards_UndoOauth/run.ps1 deleted file mode 100644 index 7ce0a73bf0b0..000000000000 --- a/Standards_UndoOauth/run.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -param($tenant) - -try { - $uri = "https://login.microsoftonline.com/$($Tenant)/oauth2/token" - $body = "resource=https://admin.microsoft.com&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $token = Invoke-RestMethod $uri -Body $body -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $oAuth = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://admin.microsoft.com/admin/api/settings/apps/IntegratedApps' -Body '{"Enabled":true}' -Method POST -Headers @{ - Authorization = "Bearer $($token.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - Log-request -API "Standards" -tenant $tenant -message "Application Consent Mode has been disabled." -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to set Application Consent Mode to disabled Error: $($_.exception.message)" -sev Error -} \ No newline at end of file diff --git a/Standards_UndoSSPR/function.json b/Standards_UndoSSPR/function.json deleted file mode 100644 index 2d4ea9094b24..000000000000 --- a/Standards_UndoSSPR/function.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bindings": [ - { - "name": "tenant", - "direction": "in", - "type": "activityTrigger" - } - ] -} \ No newline at end of file diff --git a/Standards_UndoSSPR/run.ps1 b/Standards_UndoSSPR/run.ps1 deleted file mode 100644 index 7e41abb2f94a..000000000000 --- a/Standards_UndoSSPR/run.ps1 +++ /dev/null @@ -1,19 +0,0 @@ -param($tenant) - -try { - $uri = "https://login.microsoftonline.com/$($Tenant)/oauth2/token" - $bodypasswordresetpol = "resource=74658136-14ec-4630-ad9b-26e160ff0fc6&grant_type=refresh_token&refresh_token=$($ENV:ExchangeRefreshToken)" - $tokensspr = Invoke-RestMethod $uri -Body $bodypasswordresetpol -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Method post - $bodysspr = '{ "objectId":"default", "enablementType":0, "numberOfAuthenticationMethodsRequired":2, "emailOptionEnabled":true, "mobilePhoneOptionEnabled":true, "officePhoneOptionEnabled":false, "securityQuestionsOptionEnabled":false, "mobileAppNotificationEnabled":true, "mobileAppCodeEnabled":true, "numberOfQuestionsToRegister":5, "numberOfQuestionsToReset":3, "registrationRequiredOnSignIn":true, "registrationReconfirmIntevalInDays":180, "skipRegistrationAllowed":true, "skipRegistrationMaxAllowedDays":7, "customizeHelpdeskLink":false, "customHelpdeskEmailOrUrl":"", "notifyUsersOnPasswordReset":true, "notifyOnAdminPasswordReset":true, "passwordResetEnabledGroupIds":[], "passwordResetEnabledGroupName":"", "securityQuestions":[], "registrationConditionalAccessPolicies":[], "emailOptionAllowed":true, "mobilePhoneOptionAllowed":true, "officePhoneOptionAllowed":true, "securityQuestionsOptionAllowed":true, "mobileAppNotificationOptionAllowed":true, "mobileAppCodeOptionAllowed":true}' - $SSPRGraph = Invoke-RestMethod -ContentType "application/json;charset=UTF-8" -Uri 'https://main.iam.ad.ext.azure.com/api/PasswordReset/PasswordResetPolicies' -Method PUT -Body $bodysspr -Headers @{ - Authorization = "Bearer $($tokensspr.access_token)"; - "x-ms-client-request-id" = [guid]::NewGuid().ToString(); - "x-ms-client-session-id" = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid() - 'X-Requested-With' = 'XMLHttpRequest' - } - Log-request -API "Standards" -tenant $tenant -message "SSPR disabled" -sev Info -} -catch { - Log-request -API "Standards" -tenant $tenant -message "Failed to disable SSPR $($_.exception.message)" -} \ No newline at end of file diff --git a/TemplateEmail.html b/TemplateEmail.html new file mode 100644 index 000000000000..ee2c5196f5cf --- /dev/null +++ b/TemplateEmail.html @@ -0,0 +1,547 @@ + + + + {0} + + + + + + + + + + + + + + + + + + +
      +{0}
      +
      + +
      +
      + + + + + +
      + +
      + + + + + + +
      + +
       
      + +
      +
      + +
      + + +
      +
      +
      +
      + +
      + + + + + + +
      + +
      + + + + + + + + + + + + + + + + + + +
      +
      +

      + {0} +

      +
      +
      +
      +

      {1}

      +
      +
      + + + + + + + +
      + + {3} + +
      +
      +
      +

      {4}

      +
      +
      +
      +

      +
      +
      +
      + +
      +
      + +
      + + + +
      + + + + + + + diff --git a/Test-AllZTNATests.ps1 b/Test-AllZTNATests.ps1 new file mode 100644 index 000000000000..8c371e090854 --- /dev/null +++ b/Test-AllZTNATests.ps1 @@ -0,0 +1,9 @@ +$Tenant = '7ngn50.onmicrosoft.com' +$item =0 +Get-ChildItem -Path 'C:\Github\CIPP-API\Modules\CIPPCore\Public\Tests' -Recurse -Filter 'Invoke-CippTest*.ps1'| ForEach-Object { + $item++ + + write-host "performing test $($_.BaseName) - $($item)" + . $_.FullName; & $_.BaseName -Tenant $Tenant + +} diff --git a/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 b/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 new file mode 100644 index 000000000000..7a8ae25cc590 --- /dev/null +++ b/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 @@ -0,0 +1,106 @@ +# Pester tests for Get-CIPPAlertGlobalAdminAllowList +# Verifies prefix-based allow list handling and alert emission + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $AlertPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1' + + # Provide minimal stubs so Mock has commands to replace during tests + function New-GraphGetRequest { param($uri, $tenantid, $AsApp) } + function Write-AlertTrace { param($cmdletName, $tenantFilter, $data) } + function Write-AlertMessage { param($tenant, $message) } + function Get-NormalizedError { param($message) $message } + + . $AlertPath +} + +Describe 'Get-CIPPAlertGlobalAdminAllowList' { + BeforeEach { + $script:CapturedData = $null + $script:CapturedTenant = $null + $script:CapturedErrorMessage = $null + + Mock -CommandName New-GraphGetRequest -MockWith { + @( + [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.user' + displayName = 'Allowed Admin' + userPrincipalName = 'breakglass@contoso.com' + id = 'id-allowed' + }, + [pscustomobject]@{ + '@odata.type' = '#microsoft.graph.user' + displayName = 'Unapproved Admin' + userPrincipalName = 'otheradmin@contoso.com' + id = 'id-unapproved' + } + ) + } + + Mock -CommandName Write-AlertTrace -MockWith { + param($cmdletName, $tenantFilter, $data) + $script:CapturedData = $data + $script:CapturedTenant = $tenantFilter + } + + Mock -CommandName Write-AlertMessage -MockWith { + param($tenant, $message) + $script:CapturedErrorMessage = $message + } + } + + It 'emits per-admin alerts when AlertEachAdmin is true' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass'; AlertEachAdmin = $true } + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.UserPrincipalName | Should -Contain 'otheradmin@contoso.com' + $CapturedData.UserPrincipalName | Should -Not -Contain 'breakglass@contoso.com' + $CapturedTenant | Should -Be 'contoso.onmicrosoft.com' + } + + It 'emits single aggregated alert when AlertEachAdmin is false (default)' { + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue 'breakglass' + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].NonCompliantUsers | Should -Contain 'otheradmin@contoso.com' + $CapturedData[0].NonCompliantUsers | Should -Not -Contain 'breakglass@contoso.com' + } + + It 'emits single aggregated alert when AlertEachAdmin is explicitly false via input object' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass'; AlertEachAdmin = $false } + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].NonCompliantUsers | Should -Contain 'otheradmin@contoso.com' + $CapturedData[0].NonCompliantUsers | Should -Not -Contain 'breakglass@contoso.com' + } + + It 'suppresses alert when UPN prefix is approved (comma separated list)' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass,otheradmin'; AlertEachAdmin = $true } + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -BeNullOrEmpty + } + + It 'accepts ApprovedGlobalAdmins property when provided as hashtable' { + $allowInput = @{ ApprovedGlobalAdmins = 'breakglass,otheradmin' } + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue $allowInput + + $CapturedData | Should -BeNullOrEmpty + } + + It 'writes alert message when Graph call fails' { + Mock -CommandName New-GraphGetRequest -MockWith { throw 'Graph failure' } -Verifiable + + Get-CIPPAlertGlobalAdminAllowList -TenantFilter 'contoso.onmicrosoft.com' -InputValue 'breakglass' + + $CapturedData | Should -BeNullOrEmpty + $CapturedErrorMessage | Should -Match 'Failed to check approved Global Admins' + $CapturedErrorMessage | Should -Match 'Graph failure' + } +} diff --git a/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 b/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 new file mode 100644 index 000000000000..e37958e93814 --- /dev/null +++ b/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 @@ -0,0 +1,155 @@ +# Pester tests for Get-CIPPAlertIntunePolicyConflicts +# Verifies aggregation defaults, toggles, and error handling + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $AlertPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Alerts/Get-CIPPAlertIntunePolicyConflicts.ps1' + + function New-GraphGetRequest { param($uri, $tenantid) } + function Write-AlertTrace { param($cmdletName, $tenantFilter, $data) } + function Write-AlertMessage { param($tenant, $message) } + function Get-NormalizedError { param($message) $message } + function Test-CIPPStandardLicense { param($StandardName, $TenantFilter, $RequiredCapabilities) } + + . $AlertPath +} + +Describe 'Get-CIPPAlertIntunePolicyConflicts' { + BeforeEach { + $script:CapturedData = $null + $script:CapturedTenant = $null + $script:CapturedErrorMessage = $null + + Mock -CommandName Test-CIPPStandardLicense -MockWith { $true } + + Mock -CommandName Write-AlertTrace -MockWith { + param($cmdletName, $tenantFilter, $data) + $script:CapturedData = $data + $script:CapturedTenant = $tenantFilter + } + + Mock -CommandName Write-AlertMessage -MockWith { + param($tenant, $message) + $script:CapturedErrorMessage = $message + } + + Mock -CommandName New-GraphGetRequest -MockWith { + param($uri, $tenantid) + if ($uri -like '*deviceManagement/managedDevices*') { + @( + [pscustomobject]@{ + deviceName = 'PC-01' + userPrincipalName = 'user1@contoso.com' + id = 'device-1' + deviceConfigurationStates = @( + [pscustomobject]@{ displayName = 'Policy A'; state = 'conflict' } + ) + } + ) + } elseif ($uri -like '*deviceAppManagement/mobileApps*') { + @( + [pscustomobject]@{ + displayName = 'App A' + deviceStatuses = @( + [pscustomobject]@{ installState = 'error'; deviceName = 'PC-01'; userPrincipalName = 'user1@contoso.com'; deviceId = 'device-1' } + ) + } + ) + } + } + } + + It 'defaults to aggregated alerting with all mechanisms and statuses' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedTenant | Should -Be 'contoso.onmicrosoft.com' + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].PolicyIssues | Should -Be 1 + $CapturedData[0].AppIssues | Should -Be 1 + $CapturedData[0].Issues.Count | Should -Be 2 + } + + It 'emits per-issue alerts when AlertEachIssue is true' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ AlertEachIssue = $true } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 2 + ($CapturedData | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 1 + ($CapturedData | Where-Object { $_.Type -eq 'Application' }).Count | Should -Be 1 + } + + It 'supports legacy Aggregate=false for per-issue alerts' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ Aggregate = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 2 + ($CapturedData | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 1 + ($CapturedData | Where-Object { $_.Type -eq 'Application' }).Count | Should -Be 1 + } + + It 'honors IncludePolicies toggle' { + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ IncludePolicies = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].PolicyIssues | Should -Be 0 + $CapturedData[0].AppIssues | Should -Be 1 + $CapturedData[0].Issues.Count | Should -Be 1 + ($CapturedData[0].Issues | Where-Object { $_.Type -eq 'Policy' }).Count | Should -Be 0 + } + + It 'suppresses conflict-only alerts when AlertConflicts is false' { + # conflict for policy, error for app; expect only app when conflicts suppressed + Mock -CommandName New-GraphGetRequest -MockWith { + param($uri, $tenantid) + if ($uri -like '*deviceManagement/managedDevices*') { + @( + [pscustomobject]@{ + deviceName = 'PC-02' + userPrincipalName = 'user2@contoso.com' + id = 'device-2' + deviceConfigurationStates = @( + [pscustomobject]@{ displayName = 'Policy B'; state = 'conflict' } + ) + } + ) + } elseif ($uri -like '*deviceAppManagement/mobileApps*') { + @( + [pscustomobject]@{ + displayName = 'App B' + deviceStatuses = @( + [pscustomobject]@{ installState = 'error'; deviceName = 'PC-02'; userPrincipalName = 'user2@contoso.com'; deviceId = 'device-2' } + ) + } + ) + } + } + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' -InputValue @{ AlertConflicts = $false; Aggregate = $false } + + $CapturedData | Should -Not -BeNullOrEmpty + $CapturedData.Count | Should -Be 1 + $CapturedData[0].Type | Should -Be 'Application' + $CapturedData[0].IssueStatus | Should -Be 'error' + } + + It 'skips processing when license check fails' { + Mock -CommandName Test-CIPPStandardLicense -MockWith { $false } -Verifiable + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedData | Should -BeNullOrEmpty + $CapturedTenant | Should -BeNullOrEmpty + } + + It 'writes alert message when Graph call fails' { + Mock -CommandName New-GraphGetRequest -MockWith { throw 'Graph failure' } -Verifiable + + Get-CIPPAlertIntunePolicyConflicts -TenantFilter 'contoso.onmicrosoft.com' + + $CapturedData | Should -BeNullOrEmpty + $CapturedErrorMessage | Should -Match 'Failed to query Intune (policy|application) states' + $CapturedErrorMessage | Should -Match 'Graph failure' + } +} diff --git a/Tools/Build-FunctionPermissions.ps1 b/Tools/Build-FunctionPermissions.ps1 new file mode 100644 index 000000000000..38586cc37ff9 --- /dev/null +++ b/Tools/Build-FunctionPermissions.ps1 @@ -0,0 +1,87 @@ +param( + [string]$ModulePath = (Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore'), + [string]$OutputPath, + [string]$ModuleName +) + +$ErrorActionPreference = 'Stop' + +function Resolve-ModuleImportPath { + param( + [Parameter(Mandatory = $true)][string]$Root, + [Parameter(Mandatory = $true)][string]$Name + ) + + $psd1 = Join-Path $Root "$Name.psd1" + if (Test-Path $psd1) { return $psd1 } + + $psm1 = Join-Path $Root "$Name.psm1" + if (Test-Path $psm1) { return $psm1 } + + throw "Module files not found for '$Name' in '$Root'. Expected $Name.psd1 or $Name.psm1." +} + +function Get-HelpProperty { + param( + [Parameter(Mandatory = $true)]$HelpObject, + [Parameter(Mandatory = $true)][string]$PropertyName + ) + + $property = $HelpObject.PSObject.Properties[$PropertyName] + if ($property) { return $property.Value } + return '' +} + +# Resolve defaults +if (-not (Test-Path -Path $ModulePath)) { + throw "ModulePath '$ModulePath' not found. Provide -ModulePath to the module root." +} +$ModulePath = (Resolve-Path -Path $ModulePath).ProviderPath +if (-not $ModuleName) { $ModuleName = (Split-Path -Path $ModulePath -Leaf) } +if (-not $OutputPath) { + $defaultLibData = Join-Path $ModulePath 'lib' 'data' 'function-permissions.json' + $OutputPath = if (Test-Path (Split-Path -Parent $defaultLibData)) { $defaultLibData } else { Join-Path $ModulePath 'function-permissions.json' } +} + +# Ensure destination directory exists +$null = New-Item -ItemType Directory -Path (Split-Path -Parent $OutputPath) -Force + +# Import target module so Get-Help can read Role/Functionality metadata +$ModuleImportPath = Resolve-ModuleImportPath -Root $ModulePath -Name $ModuleName +$normalizedImportPath = [System.IO.Path]::GetFullPath($ModuleImportPath) +$loaded = Get-Module -Name $ModuleName | Where-Object { [System.IO.Path]::GetFullPath($_.Path) -eq $normalizedImportPath } +if (-not $loaded) { + Write-Host "Importing module '$ModuleName' from '$ModuleImportPath'" + Import-Module -Name $ModuleImportPath -Force -ErrorAction Stop +} else { + Write-Host "Module '$ModuleName' already loaded from '$ModuleImportPath'; reusing existing session copy." +} + +$commands = Get-Command -Module $ModuleName -CommandType Function +$permissions = [ordered]@{} + +foreach ($command in $commands | Sort-Object -Property Name | Select-Object -Unique) { + $help = Get-Help -Name $command.Name -ErrorAction SilentlyContinue + if ($help) { + $role = Get-HelpProperty -HelpObject $help -PropertyName 'Role' + $functionality = Get-HelpProperty -HelpObject $help -PropertyName 'Functionality' + } else { + $role = '' + $functionality = '' + } + + if ($role -and $functionality) { + $permissions[$command.Name] = @{ + Role = $role + Functionality = $functionality + } + } else { + Write-Host "Skipping $($command.Name): no Role or Functionality metadata found." + } +} + +# Depth 3 is sufficient for the flat hashtable of functions -> (Role, Functionality) +$json = $permissions | ConvertTo-Json -Depth 3 +Set-Content -Path $OutputPath -Value $json -Encoding UTF8 + +Write-Host "Wrote permissions for $($permissions.Count) functions to $OutputPath" diff --git a/Tools/Clear-DevEnvironment.ps1 b/Tools/Clear-DevEnvironment.ps1 new file mode 100644 index 000000000000..b0fb71e4dff0 --- /dev/null +++ b/Tools/Clear-DevEnvironment.ps1 @@ -0,0 +1,4 @@ +$EnvironmentVariables = @('TenantID', 'ApplicationID', 'ApplicationSecret', 'RefreshToken', 'AzureWebJobsStorage', 'PartnerTenantAvailable', 'SetFromProfile') +ForEach ($Key in $EnvironmentVariables) { + [Environment]::SetEnvironmentVariable($Key, $null) +} diff --git a/Tools/Confirm-FunctionRequirements.ps1 b/Tools/Confirm-FunctionRequirements.ps1 new file mode 100644 index 000000000000..8fad9fc9b1e0 --- /dev/null +++ b/Tools/Confirm-FunctionRequirements.ps1 @@ -0,0 +1,79 @@ +# Set CippRoot directory and process requirements.psd1 +$CippRoot = (Get-Item $PSScriptRoot).Parent.FullName +$Requirements = & { Get-Content $CippRoot\requirements.psd1 -Raw | Invoke-Expression } +$Modules = $Requirements.Keys + +# Exclude top level Modules and Tools directories +$Exclude = @( + 'Modules' + 'Tools' +) +$Files = Get-ChildItem $CippRoot -Exclude $Exclude | Get-ChildItem -Recurse -Include @('*.ps1', '*.psm1') + +# Process each module in requirements +$ModuleTests = $Modules | ForEach-Object -Parallel { + $ModuleRefs = 0 + $Success = $true + $Module = $_ + + try { + # Update module from gallery + Save-Module -Name $Module -Path $using:CippRoot\Modules + $ModuleInfo = Get-Module $using:CippRoot\Modules\$Module -ListAvailable + + # Remove old versions + while (($ModuleInfo | Measure-Object).Count -gt 1) { + Remove-Module $Module + $RemoveVersion = $ModuleInfo | Sort-Object -Property Version | Select-Object -First 1 + Remove-Item -Path $RemoveVersion.ModuleBase -Recurse + } + + # Check for module + if (-not ($ModuleInfo)) { + Import-Module $using:CippRoot\Modules\$Module -Force -ErrorAction Stop + } + + # Get list of module commands + $Commands = (Get-Command -Module $Module -ErrorAction Stop).Name + + # Review all powershell files and search for module commands + $Files = foreach ($File in $using:Files) { + $References = 0 + $Content = Get-Content -Raw $File + $MatchedCommands = foreach ($Command in $Commands) { + if ($Content | Select-String -Pattern $Command) { + $References++ + $ModuleRefs++ + $Command + } + } + if ($References -gt 0) { + [pscustomobject]@{ + File = $File | Resolve-Path -Relative + References = $References + Commands = $MatchedCommands + } + } + } + if ($ModuleRefs -eq 0) { + $ErrorMsg = 'No references found' + $Success = $false + } + } + catch { + $ErrorMsg = $_.Exception.Message + $Success = $false + } + + # Return processed module object + [pscustomobject]@{ + Module = $Module + Version = $ModuleInfo.Version + References = $ModuleRefs + Files = $Files + ErrorMsg = $ErrorMsg + Success = $Success + } +} + +$ModuleTests diff --git a/Tools/Initialize-DevEnvironment.ps1 b/Tools/Initialize-DevEnvironment.ps1 new file mode 100644 index 000000000000..bc8fd6193f91 --- /dev/null +++ b/Tools/Initialize-DevEnvironment.ps1 @@ -0,0 +1,31 @@ +$CippRoot = (Get-Item $PSScriptRoot).Parent.FullName +### Read the local.settings.json file and convert to a PowerShell object. +$CIPPSettings = Get-Content (Join-Path $CippRoot 'local.settings.json') | ConvertFrom-Json | Select-Object -ExpandProperty Values +### Loop through the settings and set environment variables for each. +$ValidKeys = @('TenantID', 'ApplicationID', 'ApplicationSecret', 'RefreshToken', 'AzureWebJobsStorage', 'PartnerTenantAvailable', 'SetFromProfile') +foreach ($Key in $CIPPSettings.PSObject.Properties.Name) { + if ($ValidKeys -contains $Key) { + [Environment]::SetEnvironmentVariable($Key, $CippSettings.$Key) + } +} + +$PowerShellWorkerRoot = Join-Path $env:ProgramFiles 'Microsoft\Azure Functions Core Tools\workers\powershell\7.4\Microsoft.Azure.Functions.PowerShellWorker.dll' +if ((Test-Path $PowerShellWorkerRoot) -and !('Microsoft.Azure.Functions.PowerShellWorker' -as [type])) { + Write-Information "Loading PowerShell Worker from $PowerShellWorkerRoot" + Add-Type -Path $PowerShellWorkerRoot +} + +# Remove previously loaded modules to force reloading if new code changes were made +$LoadedModules = Get-Module | Select-Object -ExpandProperty Name +switch ($LoadedModules) { + 'CIPPCore' { Remove-Module CIPPCore -Force } + 'CippExtensions' { Remove-Module CippExtensions -Force } + 'MicrosoftTeams' { Remove-Module MicrosoftTeams -Force } +} + +Import-Module ( Join-Path $CippRoot 'Modules\AzBobbyTables' ) +Import-Module ( Join-Path $CippRoot 'Modules\DNSHealth' ) +Import-Module ( Join-Path $CippRoot 'Modules\CIPPCore' ) +Import-Module ( Join-Path $CippRoot 'Modules\CippExtensions' ) + +Get-CIPPAuthentication diff --git a/Tools/IntuneWin/Get-IntuneWinPackageContents.ps1 b/Tools/IntuneWin/Get-IntuneWinPackageContents.ps1 new file mode 100644 index 000000000000..c5f2caf2e66b --- /dev/null +++ b/Tools/IntuneWin/Get-IntuneWinPackageContents.ps1 @@ -0,0 +1,32 @@ +param( + $PackagePath, + $MetadataPath +) + +# Example: .\tools\IntuneWin\Get-IntuneWinPackageContents.ps1 -PackagePath .\AddMSPApp\datto.intunewin -MetadataPath .\AddMSPApp\datto.app.xml + +$Metadata = [xml](Get-Content -Path $MetadataPath) +$Encryption = $Metadata.ApplicationInfo.EncryptionInfo + +$Package = Get-Item $PackagePath + +Write-Host "Decrypting IntuneWin package $($Package.FullName)" +Write-Host "Using encryption key: $($Encryption.EncryptionKey)" +Write-Host "Using initialization vector: $($Encryption.InitializationVector)" + +$DecoderParams = @( + "`"$($Package.FullName)`"" + "/key:`"$($Encryption.EncryptionKey)`"" + "/iv:`"$($Encryption.InitializationVector)`"" +) + +Start-Process -FilePath "$PSScriptRoot\IntuneWinAppUtilDecoder.exe" -ArgumentList $DecoderParams -Wait -NoNewWindow +# replace filename.intunewin with filename.decoded.zip +$NewFileName = "$($Package.BaseName -replace '\.intunewin$', '').decoded.zip" + +#Extract zip +Write-Host "Extracting decrypted IntuneWin package: $($Package.DirectoryName)\$NewFileName" +Expand-Archive -Path "$($Package.DirectoryName)\$NewFileName" -DestinationPath "$($Package.DirectoryName)\$($Package.BaseName)" -Force + +# Remove the decoded zip file +Remove-Item -Path "$($Package.DirectoryName)\$NewFileName" -Force diff --git a/Tools/IntuneWin/IntuneWinAppUtil.exe b/Tools/IntuneWin/IntuneWinAppUtil.exe new file mode 100644 index 000000000000..4a570c22fb15 Binary files /dev/null and b/Tools/IntuneWin/IntuneWinAppUtil.exe differ diff --git a/Tools/IntuneWin/IntuneWinAppUtilDecoder.exe b/Tools/IntuneWin/IntuneWinAppUtilDecoder.exe new file mode 100644 index 000000000000..b0c2644d14af Binary files /dev/null and b/Tools/IntuneWin/IntuneWinAppUtilDecoder.exe differ diff --git a/Tools/IntuneWin/New-IntuneWinPackage.ps1 b/Tools/IntuneWin/New-IntuneWinPackage.ps1 new file mode 100644 index 000000000000..f98bc3b64739 --- /dev/null +++ b/Tools/IntuneWin/New-IntuneWinPackage.ps1 @@ -0,0 +1,58 @@ +param( + [Parameter(Mandatory = $true)] + [string]$SourcePath, + [Parameter(Mandatory = $true)] + [string]$FileName, + [Parameter(Mandatory = $true)] + [string]$MetadataFileName +) + +# Example: .\Tools\IntuneWin\New-IntuneWinPackage.ps1 -SourcePath .\AddMSPApp\datto\ -FileName datto.intunewin -MetadataFileName datto.app.xml + +$Source = Get-Item -Path $SourcePath + +$Params = @( + "-c $SourcePath" + '-s install.ps1' + "-o $SourcePath" + '-q' +) + +Start-Process -FilePath "$PSScriptRoot\IntuneWinAppUtil.exe" -ArgumentList $Params -Wait -NoNewWindow + +Expand-Archive -Path "$SourcePath\install.intunewin" -DestinationPath $SourcePath -Force +Write-Host "IntuneWin package contents extracted to: $SourcePath" +Remove-Item -Path "$SourcePath\install.intunewin" -Force +Write-Host "Temporary IntuneWin package file removed from: $SourcePath\install.intunewin" + +# Extract IntunePackage.intunewin from Contents and move to the parent directory +$IntunePackagePath = Join-Path $SourcePath 'IntuneWinPackage\Contents\IntunePackage.intunewin' +if (Test-Path -Path $IntunePackagePath) { + Move-Item -Path $IntunePackagePath -Destination (Join-Path $Source.Parent.FullName $FileName) -Force + Write-Host "IntunePackage.intunewin moved to: $($Source.Parent.FullName)\$FileName" +} else { + Write-Host 'IntunePackage.intunewin not found in Contents directory.' +} + +# Copy the Metadata/Detection.xml file to the parent directory +$DetectionFilePath = Join-Path $SourcePath 'IntuneWinPackage\Metadata\Detection.xml' + +if (Test-Path -Path $DetectionFilePath) { + $MetadataXml = [xml](Get-Content -Path $DetectionFilePath) + $MetadataXml.ApplicationInfo.FileName = $FileName + $MetadataXml.Save($DetectionFilePath) + Write-Host "Detection.xml updated with FileName: $FileName" +} else { + Write-Host 'Detection.xml not found in Metadata directory.' +} + +if (Test-Path -Path $DetectionFilePath) { + Copy-Item -Path $DetectionFilePath -Destination (Join-Path $Source.Parent.FullName $MetadataFileName) -Force + Write-Host "Detection.xml copied to: $($Source.Parent.FullName)\$MetadataFileName" +} else { + Write-Host 'Detection.xml not found in Metadata directory.' +} + +# Clean up the Source directory +Remove-Item -Path $SourcePath -Recurse -Force +Write-Host "Temporary files cleaned up from: $SourcePath" diff --git a/Tools/Test-BackupStorageComparison.ps1 b/Tools/Test-BackupStorageComparison.ps1 new file mode 100644 index 000000000000..ea14bd8a94bf --- /dev/null +++ b/Tools/Test-BackupStorageComparison.ps1 @@ -0,0 +1,249 @@ +param( + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage, + [Parameter(Mandatory = $false)] [ValidateSet('Small', 'Medium', 'Large', 'All')] [string] $TestSize = 'All', + [Parameter(Mandatory = $false)] [bool] $Cleanup = $true +) + +$ErrorActionPreference = 'Stop' + +# Import CIPPCore module from repository +$modulePath = Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore' 'CIPPCore.psm1' +if (-not (Test-Path -LiteralPath $modulePath)) { + throw "CIPPCore module not found at $modulePath" +} +Import-Module -Force $modulePath + +if (-not $ConnectionString) { + throw 'Azure Storage connection string not provided. Set AzureWebJobsStorage or pass -ConnectionString.' +} + +Write-Host '================================' -ForegroundColor Cyan +Write-Host 'Backup Storage Comparison Tests' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +# Test data configurations +$testConfigs = @( + @{ + Name = 'Small' + ItemCount = 10 + PropertiesPerItem = 5 + Description = 'Small payload (~5KB)' + }, + @{ + Name = 'Medium' + ItemCount = 100 + PropertiesPerItem = 15 + Description = 'Medium payload (~250KB)' + }, + @{ + Name = 'Large' + ItemCount = 500 + PropertiesPerItem = 30 + Description = 'Large payload (~2.5MB)' + } +) + +function Generate-TestData { + param( + [int]$ItemCount, + [int]$PropertiesPerItem, + [string]$Type + ) + + $data = @() + for ($i = 0; $i -lt $ItemCount; $i++) { + $item = @{ + id = [guid]::NewGuid().ToString() + rowKey = "item_$i" + timestamp = (Get-Date).ToUniversalTime() + table = $Type + } + + for ($p = 0; $p -lt $PropertiesPerItem; $p++) { + $item["property_$p"] = "This is test property $p with some additional content to make it realistic. Lorem ipsum dolor sit amet." * 3 + } + + $data += $item + } + + return $data +} + +function Test-TableStorage { + param( + [array]$TestData, + [string]$TestName + ) + + Write-Host "`n[TABLE STORAGE] Testing $TestName..." -ForegroundColor Yellow + + $tableName = "TestBackup$(Get-Random -Maximum 100000)" + $Table = Get-CippTable -tablename $tableName + + $jsonString = $TestData | ConvertTo-Json -Depth 100 -Compress + $jsonSizeKB = [math]::Round(($jsonString | Measure-Object -Character).Characters / 1KB, 2) + + Write-Host " JSON Size: $jsonSizeKB KB" + + # Time the storage operation + $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() + try { + $entity = @{ + PartitionKey = 'TestBackup' + RowKey = $TestName + Backup = [string]$jsonString + } + Add-CIPPAzDataTableEntity @Table -Entity $entity -Force -ErrorAction Stop + $stopwatch.Stop() + + Write-Host " Write Time: $($stopwatch.ElapsedMilliseconds)ms" -ForegroundColor Green + Write-Host ' Status: Success ✓' -ForegroundColor Green + + return @{ + Method = 'Table Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $true + Details = "Stored in table '$tableName'" + } + } catch { + $stopwatch.Stop() + Write-Host " Status: Failed ✗ - $($_.Exception.Message)" -ForegroundColor Red + + return @{ + Method = 'Table Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $false + Details = $_.Exception.Message + } + } +} + +function Test-BlobStorage { + param( + [array]$TestData, + [string]$TestName + ) + + Write-Host "`n[BLOB STORAGE] Testing $TestName..." -ForegroundColor Yellow + + $containerName = 'test-backup-comparison' + $blobName = "backup_$TestName`_$(Get-Random -Maximum 100000).json" + + $jsonString = $TestData | ConvertTo-Json -Depth 100 -Compress + $jsonSizeKB = [math]::Round(($jsonString | Measure-Object -Character).Characters / 1KB, 2) + + Write-Host " JSON Size: $jsonSizeKB KB" + + try { + # Ensure container exists + $containers = @() + try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' -ConnectionString $ConnectionString + } catch { $containers = @() } + + $exists = ($containers | Where-Object { $_.Name -eq $containerName }) -ne $null + if (-not $exists) { + Write-Host " Creating container '$containerName'..." -ForegroundColor Gray + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $containerName -Method 'PUT' -QueryParams @{ restype = 'container' } -ConnectionString $ConnectionString + Start-Sleep -Milliseconds 500 + } + + # Time the upload operation + $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource "$containerName/$blobName" -Method 'PUT' -ContentType 'application/json; charset=utf-8' -Body $jsonString -ConnectionString $ConnectionString + $stopwatch.Stop() + + Write-Host " Write Time: $($stopwatch.ElapsedMilliseconds)ms" -ForegroundColor Green + Write-Host ' Status: Success ✓' -ForegroundColor Green + Write-Host " Location: $containerName/$blobName" -ForegroundColor Gray + + return @{ + Method = 'Blob Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $true + Details = "$containerName/$blobName" + } + } catch { + $stopwatch.Stop() + Write-Host " Status: Failed ✗ - $($_.Exception.Message)" -ForegroundColor Red + + return @{ + Method = 'Blob Storage' + TestName = $TestName + Size = $jsonSizeKB + WriteTime = $stopwatch.ElapsedMilliseconds + Success = $false + Details = $_.Exception.Message + } + } +} + +# Run tests +$results = @() +$configsToRun = if ($TestSize -eq 'All') { $testConfigs } else { $testConfigs | Where-Object { $_.Name -eq $TestSize } } + +foreach ($config in $configsToRun) { + Write-Host "`n`n$($config.Description)" -ForegroundColor Magenta + Write-Host "Generating test data ($($config.ItemCount) items, $($config.PropertiesPerItem) properties)..." -ForegroundColor Gray + + $testData = Generate-TestData -ItemCount $config.ItemCount -PropertiesPerItem $config.PropertiesPerItem -Type "Backup_$($config.Name)" + + # Test table storage + $tableResult = Test-TableStorage -TestData $testData -TestName $config.Name + $results += $tableResult + + Start-Sleep -Milliseconds 500 + + # Test blob storage + $blobResult = Test-BlobStorage -TestData $testData -TestName $config.Name + $results += $blobResult +} + +# Summary +Write-Host "`n`n================================" -ForegroundColor Cyan +Write-Host 'Test Summary' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +$results | Group-Object -Property TestName | ForEach-Object { + $testGroup = $_ + Write-Host "`n$($testGroup.Name):" -ForegroundColor Magenta + + $testGroup.Group | ForEach-Object { + $status = if ($_.Success) { '✓' } else { '✗' } + Write-Host " $($_.Method): $($_.Size)KB | Write: $($_.WriteTime)ms | $status" -ForegroundColor $(if ($_.Success) { 'Green' } else { 'Red' }) + } +} + +# Detailed comparison +Write-Host "`n`n================================" -ForegroundColor Cyan +Write-Host 'Performance Comparison' -ForegroundColor Cyan +Write-Host '================================' -ForegroundColor Cyan + +$results | Group-Object -Property TestName | ForEach-Object { + $testGroup = $_ + $tableResult = $testGroup.Group | Where-Object { $_.Method -eq 'Table Storage' } + $blobResult = $testGroup.Group | Where-Object { $_.Method -eq 'Blob Storage' } + + if ($tableResult -and $blobResult -and $tableResult.Success -and $blobResult.Success) { + $timeDiff = $blobResult.WriteTime - $tableResult.WriteTime + $timePercentage = [math]::Round(($timeDiff / $tableResult.WriteTime) * 100, 2) + + Write-Host "`n$($testGroup.Name):" -ForegroundColor Magenta + Write-Host " Table Write Time: $($tableResult.WriteTime)ms" -ForegroundColor Gray + Write-Host " Blob Write Time: $($blobResult.WriteTime)ms" -ForegroundColor Gray + + if ($timeDiff -gt 0) { + Write-Host " Blob is $($timeDiff)ms slower ($($timePercentage)% slower)" -ForegroundColor Yellow + } else { + Write-Host " Blob is $((-$timeDiff))ms faster ($($(-$timePercentage))% faster)" -ForegroundColor Green + } + } +} + +Write-Host "`n`nTest Complete!" -ForegroundColor Green diff --git a/Tools/Test-BlobUpload.ps1 b/Tools/Test-BlobUpload.ps1 new file mode 100644 index 000000000000..f7a13eeb6a55 --- /dev/null +++ b/Tools/Test-BlobUpload.ps1 @@ -0,0 +1,85 @@ +param( + [Parameter(Mandatory = $false)] [string] $ContainerName = 'test', + [Parameter(Mandatory = $false)] [string] $BlobName = 'hello.txt', + [Parameter(Mandatory = $false)] [string] $Content = 'Hello, world!', + [Parameter(Mandatory = $false)] [string] $ConnectionString = $env:AzureWebJobsStorage +) + +$ErrorActionPreference = 'Stop' + +# Import CIPPCore module from repository +$modulePath = Join-Path $PSScriptRoot '..' 'Modules' 'CIPPCore' 'CIPPCore.psm1' +if (-not (Test-Path -LiteralPath $modulePath)) { + throw "CIPPCore module not found at $modulePath" +} +Import-Module -Force $modulePath + +if (-not $ConnectionString) { + throw 'Azure Storage connection string not provided. Set AzureWebJobsStorage or pass -ConnectionString.' +} + +# Parse connection string for AccountName and AccountKey +$connectionParams = @{} +foreach ($part in ($ConnectionString -split ';')) { + $p = $part.Trim() + if ($p -and $p -match '^(.+?)=(.+)$') { $connectionParams[$matches[1]] = $matches[2] } +} +$AccountName = $connectionParams['AccountName'] +$AccountKey = $connectionParams['AccountKey'] + +# Support UseDevelopmentStorage=true +if ($connectionParams['UseDevelopmentStorage'] -eq 'true') { + $AccountName = 'devstoreaccount1' + $AccountKey = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==' +} + +if (-not $AccountName -or -not $AccountKey) { + throw 'Connection string must contain AccountName and AccountKey or UseDevelopmentStorage=true.' +} + +Write-Host "Account: $AccountName" -ForegroundColor Cyan +Write-Host "Container: $ContainerName" -ForegroundColor Cyan +Write-Host "Blob: $BlobName" -ForegroundColor Cyan + +# Check if container exists via listing; create if missing +$containers = @() +try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' +} catch { $containers = @() } + +$exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null +if ($exists) { + Write-Host 'Container exists.' -ForegroundColor Green +} else { + Write-Host 'Container not found. Creating...' -ForegroundColor Yellow + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource $ContainerName -Method 'PUT' -QueryParams @{ restype = 'container' } + Start-Sleep -Seconds 1 + # Re-check + try { + $containers = New-CIPPAzStorageRequest -Service 'blob' -Component 'list' + } catch { $containers = @() } + $exists = ($containers | Where-Object { $_.Name -eq $ContainerName }) -ne $null + if (-not $exists) { throw "Failed to create container '$ContainerName'" } + Write-Host 'Container created.' -ForegroundColor Green +} + +# Upload blob content (BlockBlob by default) +Write-Host 'Uploading blob content...' -ForegroundColor Yellow +try { + $null = New-CIPPAzStorageRequest -Service 'blob' -Resource "$ContainerName/$BlobName" -Method 'PUT' -ContentType 'text/plain; charset=utf-8' -Body $Content +} catch { + Write-Error "Blob upload failed: $($_.Exception.Message)" + throw +} +Write-Host 'Upload complete.' -ForegroundColor Green + +# Generate SAS token valid for 7 days (read-only) +$expiry = (Get-Date).ToUniversalTime().AddDays(7) +$sas = New-CIPPAzServiceSAS -AccountName $AccountName -AccountKey $AccountKey -Service 'blob' -ResourcePath "$ContainerName/$BlobName" -Permissions 'r' -ExpiryTime $expiry -Protocol 'https' -Version '2022-11-02' -SignedResource 'b' -ConnectionString $ConnectionString + +$url = $sas.ResourceUri + $sas.Token +Write-Host 'Download URL (7 days):' -ForegroundColor Cyan +Write-Output $url + +# Return structured object +[PSCustomObject]@{ Url = $url; Container = $ContainerName; Blob = $BlobName; ExpiresUtc = $expiry } diff --git a/Tools/Update-LicenseSKUFiles.ps1 b/Tools/Update-LicenseSKUFiles.ps1 new file mode 100644 index 000000000000..e21817d57f18 --- /dev/null +++ b/Tools/Update-LicenseSKUFiles.ps1 @@ -0,0 +1,58 @@ +<# +.SYNOPSIS +Updates license SKU files and JSON files in the CIPP project. + +.DESCRIPTION +This script downloads the latest license SKU CSV file from Microsoft and updates the ConversionTable.csv files with the latest license SKU data. It also updates the license SKU data in the CIPP repo JSON files. + +.PARAMETER None + +.EXAMPLE +Update-LicenseSKUFiles.ps1 + +This example runs the script to update the license SKU files and JSON files in the CIPP project. + +.NOTES +Date: 2024-09-02 +Version: 1.0 - Initial script + +Needs to be run from the "Tools" folder in the CIPP-API project. +#> + + +# TODO: Convert this to a GitHub Action + +# Download the latest license SKU CSV file from Microsoft. Saved to the TEMP folder to circumvent a bug where "???" is added to the first property name. +$licenseCsvURL = 'https://download.microsoft.com/download/e/3/e/e3e9faf2-f28b-490a-9ada-c6089a1fc5b0/Product%20names%20and%20service%20plan%20identifiers%20for%20licensing.csv' +$TempLicenseDataFile = "$env:TEMP\LicenseSKUs.csv" +Invoke-WebRequest -Uri $licenseCsvURL -OutFile $TempLicenseDataFile +$LicenseDataFile = Get-Item -Path $TempLicenseDataFile +$LicenseData = Import-Csv -Path $LicenseDataFile.FullName -Encoding utf8BOM -Delimiter ',' +# Update ConversionTable.csv with the latest license SKU data +Set-Location $PSScriptRoot +Set-Location .. +$ConversionTableFiles = Get-ChildItem -Path *ConversionTable.csv -Recurse -File +Write-Host "Updating $($ConversionTableFiles.Count) ConversionTable.csv files with the latest license SKU data..." -ForegroundColor Yellow + +foreach ($File in $ConversionTableFiles) { + $LicenseData | Export-Csv -Path $File.FullName -NoTypeInformation -Force -Encoding utf8 -UseQuotes AsNeeded + Write-Host "Updated $($File.FullName) with new license SKU data." -ForegroundColor Green +} + + +# Update the license SKU data in the CIPP repo JSON files +Set-Location $PSScriptRoot +Set-Location .. +Set-Location .. +Set-Location CIPP\src\data +$LicenseJSONFiles = Get-ChildItem -Path *M365Licenses.json -File + +Write-Host "Updating $($LicenseJSONFiles.Count) M365 license JSON files with the latest license SKU data..." -ForegroundColor Yellow + +foreach ($File in $LicenseJSONFiles) { + ConvertTo-Json -InputObject $LicenseData -Depth 100 | Set-Content -Path $File.FullName -Encoding utf8 + Write-Host "Updated $($File.FullName) with new license SKU data." -ForegroundColor Green +} + +# Clean up the temporary license SKU CSV file +Remove-Item -Path $TempLicenseDataFile -Force diff --git a/Tools/Update-StandardsComments.ps1 b/Tools/Update-StandardsComments.ps1 new file mode 100644 index 000000000000..523af0db7bf3 --- /dev/null +++ b/Tools/Update-StandardsComments.ps1 @@ -0,0 +1,142 @@ +<# +.SYNOPSIS + This script updates the comment block in the CIPP standard files. + +.DESCRIPTION + The script reads the standards.json file and updates the comment block in the corresponding CIPP standard files. + It adds or modifies the comment block based on the properties defined in the standards.json file. + This is made to be able to generate the help documentation for the CIPP standards automatically. + +.INPUTS + None. You cannot pipe objects to this script. + +.OUTPUTS + None. The script modifies the CIPP standard files directly. + +.NOTES + .FUNCTIONALITY Internal needs to be present in the comment block for the script, otherwise it will not be updated. + This is done as a safety measure to avoid updating the wrong files. + +.EXAMPLE + Update-StandardsComments.ps1 + + This example runs the script to update the comment block in the CIPP standard files. + +#> +param ( + [switch]$WhatIf +) + + +function EscapeMarkdown([object]$InputObject) { + # https://github.com/microsoft/FormatPowerShellToMarkdownTable/blob/master/src/FormatMarkdownTable/FormatMarkdownTable.psm1 + $Temp = '' + + if ($null -eq $InputObject) { + return '' + } elseif ($InputObject.GetType().BaseType -eq [System.Array]) { + $Temp = '{' + [System.String]::Join(', ', $InputObject) + '}' + } elseif ($InputObject.GetType() -eq [System.Collections.ArrayList] -or $InputObject.GetType().ToString().StartsWith('System.Collections.Generic.List')) { + $Temp = '{' + [System.String]::Join(', ', $InputObject.ToArray()) + '}' + } elseif (Get-Member -InputObject $InputObject -Name ToString -MemberType Method) { + $Temp = $InputObject.ToString() + } else { + $Temp = '' + } + + return $Temp.Replace('\', '\\').Replace('*', '\*').Replace('_', '\_').Replace("``", "\``").Replace('$', '\$').Replace('|', '\|').Replace('<', '\<').Replace('>', '\>').Replace([System.Environment]::NewLine, '
      ') +} + + +# Find the paths to the standards.json file based on the current script path +$StandardsJSONPath = Split-Path (Split-Path $PSScriptRoot) +$StandardsJSONPath = Resolve-Path "$StandardsJSONPath\*\src\data\standards.json" +$StandardsInfo = Get-Content -Path $StandardsJSONPath | ConvertFrom-Json -Depth 10 + +foreach ($Standard in $StandardsInfo) { + + # Calculate the standards file name and path + $StandardFileName = $Standard.name -replace 'standards.', 'Invoke-CIPPStandard' + $StandardsFilePath = Resolve-Path "$(Split-Path $PSScriptRoot)\Modules\CIPPCore\Public\Standards\$StandardFileName.ps1" + if (-not (Test-Path $StandardsFilePath)) { + Write-Host "No file found for standard $($Standard.name)" -ForegroundColor Yellow + continue + } + $Content = (Get-Content -Path $StandardsFilePath -Raw).TrimEnd() + "`n" + + # Remove random newlines before the param block + $regexPattern = '#>\s*\r?\n\s*\r?\n\s*param' + $Content = $Content -replace $regexPattern, "#>`n`n param" + + # Regex to match the existing comment block + $Regex = '<#(.|\n)*?\.FUNCTIONALITY\s*Internal(.|\n)*?#>' + + if ($Content -match $Regex) { + $NewComment = [System.Collections.Generic.List[string]]::new() + # Add the initial static comments + $NewComment.Add("<#`n") + $NewComment.Add(" .FUNCTIONALITY`n") + $NewComment.Add(" Internal`n") + $NewComment.Add(" .COMPONENT`n") + $NewComment.Add(" (APIName) $($Standard.name -replace 'standards.', '')`n") + $NewComment.Add(" .SYNOPSIS`n") + $NewComment.Add(" (Label) $($Standard.label.ToString())`n") + $NewComment.Add(" .DESCRIPTION`n") + if ([string]::IsNullOrWhiteSpace($Standard.docsDescription)) { + $NewComment.Add(" (Helptext) $($Standard.helpText.ToString())`n") + $NewComment.Add(" (DocsDescription) $(EscapeMarkdown($Standard.helpText.ToString()))`n") + } else { + $NewComment.Add(" (Helptext) $($Standard.helpText.ToString())`n") + $NewComment.Add(" (DocsDescription) $(EscapeMarkdown($Standard.docsDescription.ToString()))`n") + } + $NewComment.Add(" .NOTES`n") + + # Loop through the rest of the properties of the standard and add them to the NOTES field + foreach ($Property in $Standard.PSObject.Properties) { + switch ($Property.Name) { + 'name' { continue } + 'impactColour' { continue } + 'docsDescription' { continue } + 'helpText' { continue } + 'label' { continue } + Default { + $NewComment.Add(" $($Property.Name.ToUpper())`n") + if ($Property.Value -is [System.Object[]]) { + foreach ($Value in $Property.Value) { + $NewComment.Add(" $(ConvertTo-Json -InputObject $Value -Depth 5 -Compress)`n") + } + continue + } elseif ($Property.Value -is [System.Management.Automation.PSCustomObject]) { + $NewComment.Add(" $(ConvertTo-Json -InputObject $Property.Value -Depth 5 -Compress)`n") + continue + } else { + if ($null -ne $Property.Value) { + $NewComment.Add(" $(EscapeMarkdown($Property.Value.ToString()))`n") + } + } + } + } + + } + + # Add header about how to update the comment block with this script + $NewComment.Add(" UPDATECOMMENTBLOCK`n") + $NewComment.Add(" Run the Tools\Update-StandardsComments.ps1 script to update this comment block`n") + # -Online help link + $NewComment.Add(" .LINK`n") + $DocsLink = 'https://docs.cipp.app/user-documentation/tenant/standards/list-standards' + + $NewComment.Add(" $DocsLink`n") + $NewComment.Add(' #>') + + # Write the new comment block to the file + if ($WhatIf.IsPresent) { + Write-Host "Would update $StandardsFilePath with the following comment block:" + $NewComment + } else { + $Content -replace $Regex, $NewComment | Set-Content -Path $StandardsFilePath -Encoding utf8 -NoNewline + } + } else { + Write-Host "No comment block found in $StandardsFilePath" -ForegroundColor Yellow + } +} diff --git a/Tools/Update-StandardsJson.ps1 b/Tools/Update-StandardsJson.ps1 new file mode 100644 index 000000000000..8512ebb35268 --- /dev/null +++ b/Tools/Update-StandardsJson.ps1 @@ -0,0 +1,51 @@ +<# +.SYNOPSIS +Copies standards.json from the CIPP frontend to the backend Config folder. + +.DESCRIPTION +This script copies the standards.json file from ../CIPP/src/data/standards.json (frontend) to Config/standards.json (backend). +Run this script from the Tools folder in the CIPP-API project. + +.EXAMPLE +Copy-StandardsJson.ps1 + +.NOTES +Date: 2025-07-16 +Version: 1.2 - Only overwrites if SHA values differ + +Needs to be run from the "Tools" folder in the CIPP-API project. +#> + +# Ensure script runs from Tools folder +Set-Location $PSScriptRoot + +# Go to project root +Set-Location .. +Set-Location .. + +# Source and destination paths +$source = 'CIPP\src\data\standards.json' +$destination = 'CIPP-API\Config\standards.json' + +function Get-FileSHA256 { + param ( + $Path + ) + if (Test-Path $Path) { + return (Get-FileHash -Path $Path -Algorithm SHA256).Hash + } + return $null +} + +if (Test-Path $source) { + $srcSHA = Get-FileSHA256 $source + $dstSHA = Get-FileSHA256 $destination + if ($srcSHA -ne $dstSHA) { + Copy-Item -Path $source -Destination $destination -Force + Write-Host "Copied $source to $destination." -ForegroundColor Green + } else { + Write-Host 'No changes detected (SHA256 match). Destination not overwritten.' -ForegroundColor Yellow + } +} else { + Write-Host "Source file not found: $source" -ForegroundColor Red +} diff --git a/Tools/cipp-openapispec.json b/Tools/cipp-openapispec.json new file mode 100644 index 000000000000..0efd9e314077 --- /dev/null +++ b/Tools/cipp-openapispec.json @@ -0,0 +1,1756 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP API", + "description": "API for Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListScheduledItems": { + "get": { + "summary": "List Scheduled Items", + "description": "Retrieves a list of scheduled items", + "tags": [ + "Scheduler" + ], + "parameters": [ + { + "name": "ShowHidden", + "in": "query", + "description": "Whether to show hidden system jobs", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "Name", + "in": "query", + "description": "Filter by job name", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Scheduled items retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ExecutedTime": { + "type": "string", + "description": "When the job was last executed" + }, + "TaskState": { + "type": "string", + "description": "Current state of the task", + "enum": ["Running", "Planned", "Failed", "Completed"] + }, + "Tenant": { + "type": "string", + "description": "The tenant the job is for" + }, + "Name": { + "type": "string", + "description": "Name of the scheduled job" + }, + "ScheduledTime": { + "type": "integer", + "description": "When the job is scheduled to run (Unix timestamp)" + }, + "Command": { + "type": "string", + "description": "The command to execute" + }, + "Parameters": { + "type": "object", + "description": "Parameters for the command" + }, + "PostExecution": { + "type": "string", + "description": "Actions to take after execution" + }, + "Recurrence": { + "type": "string", + "description": "How often the job recurs" + }, + "Results": { + "type": "string", + "description": "Results of the job execution" + }, + "RowKey": { + "type": "string", + "description": "Unique identifier for the job" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveScheduledItem": { + "post": { + "summary": "Remove Scheduled Item", + "description": "Removes a scheduled item", + "tags": [ + "Scheduler" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The RowKey of the scheduled item to remove" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled item removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddScheduledItem": { + "post": { + "summary": "Add Scheduled Item", + "description": "Adds a new scheduled item", + "tags": [ + "Scheduler" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "tenantFilter", + "Name", + "command", + "ScheduledTime", + "Recurrence" + ], + "properties": { + "tenantFilter": { + "type": "object", + "description": "The tenant to run the job for", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID or domain" + }, + "label": { + "type": "string", + "description": "Tenant display name" + } + } + }, + "Name": { + "type": "string", + "description": "Name of the scheduled job" + }, + "command": { + "type": "object", + "description": "The command to execute", + "properties": { + "label": { + "type": "string", + "description": "Command display name" + }, + "value": { + "type": "string", + "description": "Command value" + } + } + }, + "ScheduledTime": { + "type": "integer", + "description": "When the job is scheduled to run (Unix timestamp)" + }, + "Recurrence": { + "type": "string", + "description": "How often the job recurs", + "enum": ["0", "1d", "7d", "30d", "365d"] + }, + "parameters": { + "type": "object", + "description": "Parameters for the command" + }, + "RawJsonParameters": { + "type": "string", + "description": "JSON string of parameters for advanced configuration" + }, + "postExecution": { + "type": "array", + "description": "Actions to take after execution", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string", + "enum": ["Webhook", "Email", "PSA"] + } + } + } + }, + "RowKey": { + "type": "string", + "description": "Unique identifier for the job (for editing existing jobs)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled item added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListFunctionParameters": { + "get": { + "summary": "List Function Parameters", + "description": "Retrieves a list of available functions and their parameters", + "tags": [ + "Scheduler" + ], + "parameters": [ + { + "name": "Module", + "in": "query", + "description": "The module to list functions for", + "required": true, + "schema": { + "type": "string", + "enum": ["CIPPCore"] + } + } + ], + "responses": { + "200": { + "description": "Function parameters retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Function": { + "type": "string", + "description": "Function name" + }, + "Synopsis": { + "type": "string", + "description": "Function description" + }, + "Parameters": { + "type": "array", + "description": "Function parameters", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Parameter name" + }, + "Type": { + "type": "string", + "description": "Parameter type" + }, + "Required": { + "type": "boolean", + "description": "Whether the parameter is required" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListTenants": { + "get": { + "summary": "List Tenants", + "description": "Retrieves a list of tenants", + "tags": [ + "Tenants" + ], + "parameters": [ + { + "name": "AllTenantSelector", + "in": "query", + "description": "Whether to include the 'All Tenants' option", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Tenants retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "Tenant ID" + }, + "defaultDomainName": { + "type": "string", + "description": "Default domain name" + }, + "displayName": { + "type": "string", + "description": "Display name" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Clear Tenant Cache", + "description": "Clears the tenant cache", + "tags": [ + "Tenants" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ClearCache" + ], + "properties": { + "ClearCache": { + "type": "boolean", + "description": "Whether to clear the cache" + }, + "TenantsOnly": { + "type": "boolean", + "description": "Whether to only clear the tenant cache" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Cache cleared successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecPasswordConfig": { + "get": { + "summary": "Get Password Configuration", + "description": "Retrieves the current password configuration", + "tags": [ + "Settings" + ], + "parameters": [ + { + "name": "list", + "in": "query", + "description": "Whether to list the password configuration", + "required": true, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Password configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "properties": { + "passwordType": { + "type": "string", + "description": "The type of password generation", + "enum": ["Classic", "Correct-Battery-Horse"] + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Update Password Configuration", + "description": "Updates the password configuration", + "tags": [ + "Settings" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "passwordType" + ], + "properties": { + "passwordType": { + "type": "string", + "description": "The type of password generation", + "enum": ["Classic", "Correct-Battery-Horse"] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Password configuration updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecListBackup": { + "get": { + "summary": "List Backups", + "description": "Retrieves a list of backups", + "tags": [ + "Backup" + ], + "parameters": [ + { + "name": "NameOnly", + "in": "query", + "description": "Whether to only return backup names", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "BackupName", + "in": "query", + "description": "The name of a specific backup to retrieve", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Backups retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "BackupName": { + "type": "string", + "description": "Name of the backup" + }, + "Timestamp": { + "type": "string", + "description": "When the backup was created" + }, + "Backup": { + "type": "string", + "description": "The backup data (JSON string)" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecRunBackup": { + "post": { + "summary": "Run Backup", + "description": "Creates a new backup", + "tags": [ + "Backup" + ], + "responses": { + "200": { + "description": "Backup created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecSetCIPPAutoBackup": { + "post": { + "summary": "Set Automatic Backup", + "description": "Enables or disables automatic backups", + "tags": [ + "Backup" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Enabled" + ], + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether to enable automatic backups" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Automatic backup setting updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecRestoreBackup": { + "post": { + "summary": "Restore Backup", + "description": "Restores a backup", + "tags": [ + "Backup" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "required": [ + "BackupName" + ], + "properties": { + "BackupName": { + "type": "string", + "description": "The name of the backup to restore" + } + } + }, + { + "type": "object", + "description": "The backup data to restore" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Backup restored successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/Listlogs": { + "get": { + "summary": "List Logs", + "description": "Retrieves a list of logs", + "tags": [ + "Logs" + ], + "parameters": [ + { + "name": "DateFilter", + "in": "query", + "description": "Filter logs by date (YYYYMMDD format)", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Filter", + "in": "query", + "description": "Whether to apply filtering", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Logs retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DateTime": { + "type": "string", + "description": "When the log entry was created" + }, + "Tenant": { + "type": "string", + "description": "The tenant the log entry is for" + }, + "TenantID": { + "type": "string", + "description": "The tenant ID" + }, + "User": { + "type": "string", + "description": "The user who performed the action" + }, + "Message": { + "type": "string", + "description": "The log message" + }, + "API": { + "type": "string", + "description": "The API that was called" + }, + "Severity": { + "type": "string", + "description": "The severity of the log entry" + }, + "AppId": { + "type": "string", + "description": "The application ID" + }, + "IP": { + "type": "string", + "description": "The IP address of the user" + }, + "LogData": { + "type": "string", + "description": "Additional log data" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Retrieves the configuration for extensions", + "tags": [ + "Integrations" + ], + "responses": { + "200": { + "description": "Extensions configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecExtensionsConfig": { + "post": { + "summary": "Update Extensions Configuration", + "description": "Updates the configuration for extensions", + "tags": [ + "Integrations" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Extensions configuration updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecExtensionTest": { + "get": { + "summary": "Test Extension", + "description": "Tests an extension", + "tags": [ + "Integrations" + ], + "parameters": [ + { + "name": "extensionName", + "in": "query", + "description": "The name of the extension to test", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Extension test completed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecExtensionSync": { + "get": { + "summary": "Sync Extension", + "description": "Syncs an extension", + "tags": [ + "Integrations" + ], + "parameters": [ + { + "name": "Extension", + "in": "query", + "description": "The name of the extension to sync", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Extension sync completed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecExtensionMapping": { + "get": { + "summary": "Get Extension Mapping", + "description": "Retrieves the mapping for an extension", + "tags": [ + "Integrations" + ], + "parameters": [ + { + "name": "List", + "in": "query", + "description": "The name of the extension to get mapping for", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Extension mapping retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Mappings": { + "type": "array", + "description": "The mappings for the extension", + "items": { + "type": "object", + "properties": { + "TenantId": { + "type": "string", + "description": "The tenant ID" + }, + "Tenant": { + "type": "string", + "description": "The tenant name" + }, + "IntegrationName": { + "type": "string", + "description": "The integration name" + }, + "IntegrationId": { + "type": "string", + "description": "The integration ID" + }, + "TenantDomain": { + "type": "string", + "description": "The tenant domain" + } + } + } + }, + "Companies": { + "type": "array", + "description": "The companies for the extension", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The company name" + }, + "value": { + "type": "string", + "description": "The company ID" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Update Extension Mapping", + "description": "Updates the mapping for an extension", + "tags": [ + "Integrations" + ], + "parameters": [ + { + "name": "AddMapping", + "in": "query", + "description": "The name of the extension to update mapping for", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "AutoMapping", + "in": "query", + "description": "The name of the extension to auto-map", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "TenantId": { + "type": "string", + "description": "The tenant ID" + }, + "Tenant": { + "type": "string", + "description": "The tenant name" + }, + "IntegrationName": { + "type": "string", + "description": "The integration name" + }, + "IntegrationId": { + "type": "string", + "description": "The integration ID" + }, + "TenantDomain": { + "type": "string", + "description": "The tenant domain" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Extension mapping updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionSync": { + "get": { + "summary": "List Extension Sync Jobs", + "description": "Retrieves a list of extension sync jobs", + "tags": [ + "Integrations" + ], + "responses": { + "200": { + "description": "Extension sync jobs retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tenant": { + "type": "string", + "description": "The tenant the job is for" + }, + "SyncType": { + "type": "string", + "description": "The type of sync" + }, + "Task": { + "type": "string", + "description": "The task being performed" + }, + "ScheduledTime": { + "type": "string", + "description": "When the job is scheduled to run" + }, + "ExecutedTime": { + "type": "string", + "description": "When the job was last executed" + }, + "LastRun": { + "type": "string", + "description": "When the job was last run" + }, + "RepeatsEvery": { + "type": "string", + "description": "How often the job repeats" + }, + "Results": { + "type": "string", + "description": "Results of the job execution" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExoRequest": { + "post": { + "summary": "List Exchange Cmdlets", + "description": "Retrieves a list of Exchange cmdlets", + "tags": [ + "Exchange" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "required": [ + "availableCmdlets", + "tenantFilter" + ], + "properties": { + "availableCmdlets": { + "type": "boolean", + "description": "Whether to list available cmdlets" + }, + "tenantFilter": { + "type": "string", + "description": "The tenant to list cmdlets for" + }, + "compliance": { + "type": "boolean", + "description": "Whether to use compliance endpoints" + }, + "asApp": { + "type": "boolean", + "description": "Whether to execute as app" + } + } + }, + { + "type": "object", + "required": [ + "cmdlet", + "cmdParams", + "tenantFilter" + ], + "properties": { + "cmdlet": { + "type": "string", + "description": "The cmdlet to execute" + }, + "cmdParams": { + "type": "object", + "description": "The parameters for the cmdlet" + }, + "compliance": { + "type": "boolean", + "description": "Whether to use compliance endpoints" + }, + "tenantFilter": { + "type": "string", + "description": "The tenant to execute the cmdlet for" + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Exchange cmdlets retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Cmdlet": { + "type": "string", + "description": "The cmdlet name" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAzBobbyTables": { + "post": { + "summary": "Execute Azure Table Operations", + "description": "Executes operations on Azure tables", + "tags": [ + "Azure Tables" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FunctionName" + ], + "properties": { + "FunctionName": { + "type": "string", + "description": "The function to execute", + "enum": [ + "Get-AzDataTable", + "Get-AzDataTableEntity", + "Remove-AzDataTableEntity", + "New-AzDataTable", + "Remove-AzDataTable", + "Add-AzDataTableEntity" + ] + }, + "TableName": { + "type": "string", + "description": "The name of the table" + }, + "Parameters": { + "type": "object", + "description": "The parameters for the function" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Azure table operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCippFunction": { + "post": { + "summary": "Execute CIPP Function", + "description": "Executes a CIPP function", + "tags": [ + "CIPP Functions" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "FunctionName" + ], + "properties": { + "FunctionName": { + "type": "string", + "description": "The function to execute", + "enum": [ + "Get-CIPPTimerFunctions", + "!Get-CIPPTimerFunctions" + ] + }, + "Parameters": { + "type": "object", + "description": "The parameters for the function" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "CIPP function executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecApiClient": { + "get": { + "summary": "Get API Client Information", + "description": "Retrieves information about API clients", + "tags": [ + "API Clients" + ], + "parameters": [ + { + "name": "Action", + "in": "query", + "description": "The action to perform", + "required": true, + "schema": { + "type": "string", + "enum": [ + "GetAzureConfiguration", + "List", + "ListAvailable" + ] + } + } + ], + "responses": { + "200": { + "description": "API client information retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "oneOf": [ + { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether Microsoft Authentication is enabled" + }, + "ApiUrl": { + "type": "string", + "description": "The API URL" + }, + "TenantID": { + "type": "string", + "description": "The tenant ID" + }, + "ClientIDs": { + "type": "array", + "description": "The client IDs", + "items": { + "type": "string" + } + } + } + }, + { + "type": "array", + "items": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the client is enabled" + }, + "AppName": { + "type": "string", + "description": "The application name" + }, + "ClientId": { + "type": "string", + "description": "The client ID" + }, + "Role": { + "type": "string", + "description": "The client role" + }, + "IPRange": { + "type": "array", + "description": "The allowed IP ranges", + "items": { + "type": "string" + } + } + } + } + } + ] + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Update API Client", + "description": "Updates an API client", + "tags": [ + "API Clients" + ], + "parameters": [ + { + "name": "action", + "in": "query", + "description": "The action to perform", + "required": false, + "schema": { + "type": "string", + "enum": [ + "SaveToAzure" + ] + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action" + ], + "properties": { + "Action": { + "type": "string", + "description": "The action to perform", + "enum": [ + "AddUpdate", + "ResetSecret", + "Delete" + ] + }, + "ClientId": { + "type": "string", + "description": "The client ID" + }, + "AppName": { + "type": "string", + "description": "The application name" + }, + "Role": { + "type": "string", + "description": "The client role" + }, + "IPRange": { + "type": "array", + "description": "The allowed IP ranges", + "items": { + "type": "string" + } + }, + "Enabled": { + "type": "boolean", + "description": "Whether the client is enabled" + }, + "RemoveAppReg": { + "type": "boolean", + "description": "Whether to remove the app registration" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "API client updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCustomRole": { + "get": { + "summary": "List Custom Roles", + "description": "Retrieves a list of custom roles", + "tags": [ + "API Clients" + ], + "responses": { + "200": { + "description": "Custom roles retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RowKey": { + "type": "string", + "description": "The role name" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/endpoint-openapispec.json b/Tools/endpoint-openapispec.json new file mode 100644 index 000000000000..7fb45816d2ce --- /dev/null +++ b/Tools/endpoint-openapispec.json @@ -0,0 +1,2263 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Endpoint API", + "description": "API endpoints for the Endpoint section of Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListApps": { + "get": { + "summary": "List Applications", + "description": "Retrieves a list of applications", + "tags": [ + "Applications" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Applications retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The application ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the application" + }, + "publishingState": { + "type": "string", + "description": "The publishing state of the application" + }, + "installCommandLine": { + "type": "string", + "description": "The install command line" + }, + "uninstallCommandLine": { + "type": "string", + "description": "The uninstall command line" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAssignApp": { + "post": { + "summary": "Assign Application", + "description": "Assigns an application to users or devices", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "AssignTo", + "ID" + ], + "properties": { + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["AllUsers", "AllDevices", "Both", "customGroup"] + }, + "ID": { + "type": "string", + "description": "The application ID" + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Application assigned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveApp": { + "post": { + "summary": "Remove Application", + "description": "Removes an application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The application ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Application removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListApplicationQueue": { + "get": { + "summary": "List Application Queue", + "description": "Retrieves a list of applications in the queue", + "tags": [ + "Applications" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Application queue retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The queue item ID" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "status": { + "type": "string", + "description": "The status of the queue item" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveQueuedApp": { + "post": { + "summary": "Remove Queued Application", + "description": "Removes an application from the queue", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The queue item ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Queued application removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAppUpload": { + "post": { + "summary": "Execute Application Upload", + "description": "Executes the application upload process", + "tags": [ + "Applications" + ], + "responses": { + "200": { + "description": "Application upload executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddMSPApp": { + "post": { + "summary": "Add MSP Application", + "description": "Adds an MSP vendor application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "rmmname", + "displayName" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "rmmname": { + "type": "object", + "description": "The RMM tool", + "properties": { + "value": { + "type": "string", + "enum": ["datto", "syncro", "immy", "huntress", "automate", "cwcommand"] + } + } + }, + "displayName": { + "type": "string", + "description": "The display name of the application" + }, + "params": { + "type": "object", + "description": "Parameters specific to the RMM tool" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers", "customGroup"] + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "MSP application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddStoreApp": { + "post": { + "summary": "Add Store Application", + "description": "Adds a store application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "packagename", + "applicationName" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "packagename": { + "type": "string", + "description": "The package identifier" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + }, + "InstallationIntent": { + "type": "boolean", + "description": "Whether to mark for uninstallation" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers", "customGroup"] + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Store application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddwinGetApp": { + "post": { + "summary": "Add WinGet Application", + "description": "Adds a WinGet application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "packagename", + "applicationName" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "packagename": { + "type": "string", + "description": "The package identifier" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + }, + "InstallationIntent": { + "type": "boolean", + "description": "Whether to mark for uninstallation" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers", "customGroup"] + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "WinGet application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddChocoApp": { + "post": { + "summary": "Add Chocolatey Application", + "description": "Adds a Chocolatey application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "packagename", + "applicationName" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "packagename": { + "type": "string", + "description": "The package name" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + }, + "customRepo": { + "type": "string", + "description": "Custom repository URL" + }, + "InstallAsSystem": { + "type": "boolean", + "description": "Whether to install as system" + }, + "DisableRestart": { + "type": "boolean", + "description": "Whether to disable restart" + }, + "InstallationIntent": { + "type": "boolean", + "description": "Whether to mark for uninstallation" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers", "customGroup"] + }, + "customGroup": { + "type": "string", + "description": "Custom group names (if AssignTo is customGroup)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Chocolatey application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddOfficeApp": { + "post": { + "summary": "Add Office Application", + "description": "Adds a Microsoft Office application", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants", + "updateChannel", + "languages" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the application to", + "items": { + "type": "object", + "properties": { + "defaultDomainName": { + "type": "string", + "description": "The tenant domain name" + }, + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + }, + "excludedApps": { + "type": "array", + "description": "Apps to exclude from the installation", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "enum": ["access", "excel", "oneNote", "outlook", "powerPoint", "teams", "word", "lync", "bing"] + } + } + } + }, + "updateChannel": { + "type": "object", + "description": "The update channel", + "properties": { + "value": { + "type": "string", + "enum": ["current", "firstReleaseCurrent", "monthlyEnterprise", "deferred", "firstReleaseDeferred"] + } + } + }, + "languages": { + "type": "array", + "description": "Languages to install", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Language tag" + } + } + } + }, + "SharedComputerActivation": { + "type": "boolean", + "description": "Whether to use shared computer activation" + }, + "arch": { + "type": "boolean", + "description": "Whether to use 64-bit" + }, + "RemoveVersions": { + "type": "boolean", + "description": "Whether to remove other versions" + }, + "AcceptLicense": { + "type": "boolean", + "description": "Whether to accept the license" + }, + "AssignTo": { + "type": "string", + "description": "Who to assign the application to", + "enum": ["On", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers"] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Office application added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListAPDevices": { + "get": { + "summary": "List Autopilot Devices", + "description": "Retrieves a list of Autopilot devices", + "tags": [ + "Autopilot" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Autopilot devices retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The device ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the device" + }, + "serialNumber": { + "type": "string", + "description": "The serial number of the device" + }, + "model": { + "type": "string", + "description": "The model of the device" + }, + "manufacturer": { + "type": "string", + "description": "The manufacturer of the device" + }, + "groupTag": { + "type": "string", + "description": "The group tag of the device" + }, + "enrollmentState": { + "type": "string", + "description": "The enrollment state of the device" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAssignAPDevice": { + "post": { + "summary": "Assign Autopilot Device", + "description": "Assigns an Autopilot device to a user", + "tags": [ + "Autopilot" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "device", + "serialNumber", + "user" + ], + "properties": { + "device": { + "type": "string", + "description": "The device ID" + }, + "serialNumber": { + "type": "string", + "description": "The serial number of the device" + }, + "user": { + "type": "string", + "description": "The user principal name" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Autopilot device assigned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveAPDevice": { + "post": { + "summary": "Remove Autopilot Device", + "description": "Removes an Autopilot device", + "tags": [ + "Autopilot" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The device ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Autopilot device removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecSyncAPDevices": { + "post": { + "summary": "Sync Autopilot Devices", + "description": "Syncs Autopilot devices", + "tags": [ + "Autopilot" + ], + "responses": { + "200": { + "description": "Autopilot devices synced successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListAutopilotConfig": { + "get": { + "summary": "List Autopilot Configurations", + "description": "Retrieves a list of Autopilot configurations", + "tags": [ + "Autopilot" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "The type of configuration to retrieve", + "required": false, + "schema": { + "type": "string", + "enum": ["ESP", "ApProfile"] + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Autopilot configurations retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The configuration ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the configuration" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListDevices": { + "get": { + "summary": "List Devices", + "description": "Retrieves a list of devices", + "tags": [ + "Devices" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Devices retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The device ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the device" + }, + "manufacturer": { + "type": "string", + "description": "The manufacturer of the device" + }, + "model": { + "type": "string", + "description": "The model of the device" + }, + "osVersion": { + "type": "string", + "description": "The OS version of the device" + }, + "lastSyncDateTime": { + "type": "string", + "description": "The last sync date and time" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecDeviceAction": { + "post": { + "summary": "Execute Device Action", + "description": "Executes an action on a device", + "tags": [ + "Devices" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action", + "DeviceID" + ], + "properties": { + "Action": { + "type": "string", + "description": "The action to perform", + "enum": ["Reboot", "Rename", "Autopilot", "Wipe", "RemoveFromAutopilot", "RemoveFromIntune", "RemoveFromDefender", "RemoveFromAzure", "RemoveFromEverywhere", "SyncDevice", "FreshStart", "QuickScan", "FullScan", "WindowsUpdateScan", "WindowsUpdateReboot", "WindowsUpdateDrivers", "WindowsUpdateFeatures", "WindowsUpdateOther", "WindowsUpdateAll"] + }, + "DeviceID": { + "type": "string", + "description": "The device ID" + }, + "NewDeviceName": { + "type": "string", + "description": "The new device name (for Rename action)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Device action executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGetLocalAdminPassword": { + "post": { + "summary": "Get Local Admin Password", + "description": "Retrieves the local admin password for a device", + "tags": [ + "Devices" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "DeviceID" + ], + "properties": { + "DeviceID": { + "type": "string", + "description": "The device ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Local admin password retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGetRecoveryKey": { + "post": { + "summary": "Get Recovery Key", + "description": "Retrieves the recovery key for a device", + "tags": [ + "Devices" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "DeviceID" + ], + "properties": { + "DeviceID": { + "type": "string", + "description": "The device ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Recovery key retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListIntunePolicy": { + "get": { + "summary": "List Intune Policies", + "description": "Retrieves a list of Intune policies", + "tags": [ + "Intune" + ], + "parameters": [ + { + "name": "type", + "in": "query", + "description": "The type of policy to retrieve", + "required": false, + "schema": { + "type": "string", + "enum": ["ESP"] + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Intune policies retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The policy ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the policy" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddPolicy": { + "post": { + "summary": "Add Policy", + "description": "Adds a policy", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to add the policy to", + "items": { + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "The tenant ID" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Policy added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddIntuneTemplate": { + "post": { + "summary": "Add Intune Template", + "description": "Adds an Intune template", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "The type of template" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Intune template added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAssignPolicy": { + "post": { + "summary": "Assign Policy", + "description": "Assigns a policy", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "AssignTo", + "ID" + ], + "properties": { + "AssignTo": { + "type": "string", + "description": "Who to assign the policy to", + "enum": ["AllUsers", "AllDevices", "Both"] + }, + "ID": { + "type": "string", + "description": "The policy ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Policy assigned successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemovePolicy": { + "post": { + "summary": "Remove Policy", + "description": "Removes a policy", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The policy ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Policy removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListIntuneTemplates": { + "get": { + "summary": "List Intune Templates", + "description": "Retrieves a list of Intune templates", + "tags": [ + "Intune" + ], + "parameters": [ + { + "name": "View", + "in": "query", + "description": "Whether to view the templates", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Intune templates retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "The template ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the template" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecEditTemplate": { + "post": { + "summary": "Edit Template", + "description": "Edits a template", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "The template ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Template edited successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCommunityRepo": { + "post": { + "summary": "Execute Community Repository", + "description": "Executes a community repository", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "RepoURL": { + "type": "string", + "description": "The repository URL" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Community repository executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveIntuneTemplate": { + "post": { + "summary": "Remove Intune Template", + "description": "Removes an Intune template", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The template ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Intune template removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListIntuneScript": { + "get": { + "summary": "List Intune Scripts", + "description": "Retrieves a list of Intune scripts", + "tags": [ + "Intune" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Intune scripts retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The script ID" + }, + "displayName": { + "type": "string", + "description": "The display name of the script" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveIntuneScript": { + "post": { + "summary": "Remove Intune Script", + "description": "Removes an Intune script", + "tags": [ + "Intune" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "The script ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Intune script removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListGraphRequest": { + "get": { + "summary": "List Graph Request", + "description": "Retrieves data from a Graph API request", + "tags": [ + "Graph" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "endpoint", + "in": "query", + "description": "The Graph API endpoint", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Graph request data retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/listUsers": { + "get": { + "summary": "List Users", + "description": "Retrieves a list of users", + "tags": [ + "Users" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Users retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userPrincipalName": { + "type": "string", + "description": "The user principal name" + }, + "displayName": { + "type": "string", + "description": "The display name of the user" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListAppsRepository": { + "post": { + "summary": "List Apps Repository", + "description": "Searches the apps repository", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "search" + ], + "properties": { + "search": { + "type": "string", + "description": "The search query" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Apps repository search results retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "packagename": { + "type": "string", + "description": "The package name" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListPotentialApps": { + "post": { + "summary": "List Potential Apps", + "description": "Searches for potential apps", + "tags": [ + "Applications" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "searchString", + "type" + ], + "properties": { + "searchString": { + "type": "string", + "description": "The search query" + }, + "type": { + "type": "string", + "description": "The type of apps to search for", + "enum": ["WinGet"] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Potential apps search results retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "packagename": { + "type": "string", + "description": "The package name" + }, + "applicationName": { + "type": "string", + "description": "The application name" + }, + "description": { + "type": "string", + "description": "The application description" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Retrieves the configuration for extensions", + "tags": [ + "Extensions" + ], + "responses": { + "200": { + "description": "Extensions configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCommunityRepos": { + "get": { + "summary": "List Community Repositories", + "description": "Retrieves a list of community repositories", + "tags": [ + "Intune" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Community repositories retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RepoURL": { + "type": "string", + "description": "The repository URL" + }, + "RepoName": { + "type": "string", + "description": "The repository name" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/identity-openapispec.json b/Tools/identity-openapispec.json new file mode 100644 index 000000000000..72e8871a8913 --- /dev/null +++ b/Tools/identity-openapispec.json @@ -0,0 +1,1774 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Identity API", + "description": "API endpoints for identity management in CIPP", + "version": "1.0.0" + }, + "paths": { + "/api/ListGraphRequest": { + "get": { + "summary": "List Graph Request", + "description": "Generic endpoint for making Graph API requests with different parameters", + "parameters": [ + { + "name": "Endpoint", + "in": "query", + "description": "The Graph API endpoint to call", + "required": true, + "schema": { + "type": "string" + }, + "examples": { + "users": { + "value": "users" + }, + "devices": { + "value": "devices" + }, + "identityProtection/riskDetections": { + "value": "identityProtection/riskDetections" + }, + "identityProtection/riskyUsers": { + "value": "identityProtection/riskyUsers" + } + } + }, + { + "name": "manualPagination", + "in": "query", + "description": "Whether to use manual pagination", + "schema": { + "type": "boolean" + } + }, + { + "name": "$select", + "in": "query", + "description": "Fields to select", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Whether to include count", + "schema": { + "type": "boolean" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Field to order by", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Number of records to return", + "schema": { + "type": "integer" + } + }, + { + "name": "$format", + "in": "query", + "description": "Response format", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + }, + "Metadata": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "/api/ExecCreateTAP": { + "post": { + "summary": "Create Temporary Access Password", + "description": "Creates a temporary access password for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecResetMFA": { + "post": { + "summary": "Reset MFA", + "description": "Re-requires MFA registration for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecSendPush": { + "post": { + "summary": "Send MFA Push", + "description": "Sends an MFA push notification to a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "UserEmail": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["UserEmail"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecPerUserMFA": { + "post": { + "summary": "Set Per-User MFA", + "description": "Sets per-user MFA for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User Principal Name" + }, + "State": { + "type": "string", + "enum": ["Enforced", "Enabled", "Disabled"], + "description": "MFA State" + } + }, + "required": ["userId", "State"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecConvertMailbox": { + "post": { + "summary": "Convert Mailbox", + "description": "Converts a mailbox between shared and regular types", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User Principal Name" + }, + "MailboxType": { + "type": "string", + "enum": ["!Shared", "!Regular"], + "description": "Mailbox Type" + } + }, + "required": ["ID", "MailboxType"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecEnableArchive": { + "post": { + "summary": "Enable Online Archive", + "description": "Enables online archive for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecSetOoO": { + "post": { + "summary": "Set Out of Office", + "description": "Sets or disables out of office for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User Principal Name" + }, + "AutoReplyState": { + "type": "string", + "enum": ["Enabled", "Disabled"], + "description": "Auto Reply State" + }, + "input": { + "type": "string", + "description": "Out of Office Message" + } + }, + "required": ["userId", "AutoReplyState"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/EditGroup": { + "post": { + "summary": "Edit Group", + "description": "Edits a group, including adding/removing members and owners", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantId": { + "type": "string", + "description": "Tenant ID" + }, + "groupId": { + "type": "string", + "description": "Group ID" + }, + "AddMember": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Members to add" + }, + "AddOwner": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Owners to add" + }, + "RemoveMember": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Members to remove" + }, + "RemoveOwner": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Owners to remove" + }, + "addMember": { + "type": "string", + "description": "Single member to add" + }, + "groupId": { + "type": "string", + "description": "Group ID to add member to" + } + }, + "required": ["tenantId", "groupId"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListGroups": { + "get": { + "summary": "List Groups", + "description": "Lists groups in the tenant", + "parameters": [ + { + "name": "groupID", + "in": "query", + "description": "Group ID to get details for", + "schema": { + "type": "string" + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant to filter by", + "schema": { + "type": "string" + } + }, + { + "name": "members", + "in": "query", + "description": "Whether to include members", + "schema": { + "type": "boolean" + } + }, + { + "name": "owners", + "in": "query", + "description": "Whether to include owners", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "groupInfo": { + "type": "object" + }, + "members": { + "type": "array", + "items": { + "type": "object" + } + }, + "owners": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/api/ExecEmailForward": { + "post": { + "summary": "Email Forwarding", + "description": "Manages email forwarding for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "User Principal Name" + }, + "userid": { + "type": "string", + "description": "User Principal Name" + }, + "ForwardOption": { + "type": "string", + "description": "Forward Option" + } + }, + "required": ["username", "userid", "ForwardOption"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecOneDriveProvision": { + "post": { + "summary": "Provision OneDrive", + "description": "Pre-provisions OneDrive for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "UserPrincipalName": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["UserPrincipalName"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecOneDriveShortCut": { + "post": { + "summary": "Add OneDrive Shortcut", + "description": "Adds a shortcut to a SharePoint site in a user's OneDrive", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "User Principal Name" + }, + "userid": { + "type": "string", + "description": "User ID" + }, + "siteUrl": { + "type": "string", + "description": "SharePoint Site URL" + } + }, + "required": ["username", "userid", "siteUrl"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListSites": { + "get": { + "summary": "List Sites", + "description": "Lists SharePoint sites", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Type of sites to list", + "schema": { + "type": "string" + } + }, + { + "name": "URLOnly", + "in": "query", + "description": "Whether to return only URLs", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "webUrl": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/api/ExecDisableUser": { + "post": { + "summary": "Disable/Enable User", + "description": "Blocks or unblocks sign-in for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User ID" + }, + "Enable": { + "type": "boolean", + "description": "Whether to enable the user" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecResetPass": { + "post": { + "summary": "Reset Password", + "description": "Resets a user's password", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "MustChange": { + "type": "boolean", + "description": "Whether the user must change password at next logon" + }, + "ID": { + "type": "string", + "description": "User Principal Name" + }, + "displayName": { + "type": "string", + "description": "User Display Name" + } + }, + "required": ["MustChange", "ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecClrImmId": { + "post": { + "summary": "Clear Immutable ID", + "description": "Clears the immutable ID for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User ID" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecRevokeSessions": { + "post": { + "summary": "Revoke Sessions", + "description": "Revokes all sessions for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User ID" + }, + "Username": { + "type": "string", + "description": "User Principal Name" + } + }, + "required": ["ID", "Username"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/RemoveUser": { + "post": { + "summary": "Remove User", + "description": "Deletes a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "User ID" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/AddUser": { + "post": { + "summary": "Add User", + "description": "Creates a new user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "givenName": { + "type": "string", + "description": "First Name" + }, + "surname": { + "type": "string", + "description": "Last Name" + }, + "mailNickname": { + "type": "string", + "description": "Mail Nickname" + }, + "primDomain": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "description": "Primary Domain" + }, + "usageLocation": { + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "description": "Usage Location" + } + }, + "required": ["tenantFilter", "givenName", "surname", "mailNickname", "primDomain"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListMFAUsers": { + "get": { + "summary": "List MFA Users", + "description": "Lists users with MFA information", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "UPN": { + "type": "string" + }, + "AccountEnabled": { + "type": "string" + }, + "isLicensed": { + "type": "string" + }, + "MFARegistration": { + "type": "string" + }, + "PerUser": { + "type": "string" + }, + "CoveredBySD": { + "type": "string" + }, + "CoveredByCA": { + "type": "string" + }, + "MFAMethods": { + "type": "array", + "items": { + "type": "string" + } + }, + "CAPolicies": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "/api/ListSignIns": { + "get": { + "summary": "List Sign Ins", + "description": "Lists sign-in events", + "parameters": [ + { + "name": "Days", + "in": "query", + "description": "Number of days to look back", + "schema": { + "type": "integer" + } + }, + { + "name": "filter", + "in": "query", + "description": "Custom filter", + "schema": { + "type": "string" + } + }, + { + "name": "failedLogonsOnly", + "in": "query", + "description": "Whether to show only failed logons", + "schema": { + "type": "boolean" + } + }, + { + "name": "FailureThreshold", + "in": "query", + "description": "Failure threshold", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "createdDateTime": { + "type": "string" + }, + "userPrincipalName": { + "type": "string" + }, + "clientAppUsed": { + "type": "string" + }, + "authenticationRequirement": { + "type": "string" + }, + "errorCode": { + "type": "string" + }, + "additionalDetails": { + "type": "string" + }, + "ipAddress": { + "type": "string" + }, + "locationcipp": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/api/ListInactiveAccounts": { + "get": { + "summary": "List Inactive Accounts", + "description": "Lists inactive user accounts (6 months)", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tenantDisplayName": { + "type": "string" + }, + "userPrincipalName": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "lastSignInDateTime": { + "type": "string" + }, + "lastNonInteractiveSignInDateTime": { + "type": "string" + }, + "numberOfAssignedLicenses": { + "type": "integer" + }, + "lastRefreshedDateTime": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/api/ListAzureADConnectStatus": { + "get": { + "summary": "List Azure AD Connect Status", + "description": "Lists Azure AD Connect status", + "parameters": [ + { + "name": "DataToReturn", + "in": "query", + "description": "Type of data to return", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "ObjectType": { + "type": "string" + }, + "createdDateTime": { + "type": "string" + }, + "onPremisesProvisioningErrors": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + } + }, + "/api/ExecGroupsHideFromGAL": { + "post": { + "summary": "Hide/Unhide Group from GAL", + "description": "Hides or unhides a group from the Global Address List", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Group Email" + }, + "GroupType": { + "type": "string", + "description": "Group Type" + }, + "HidefromGAL": { + "type": "boolean", + "description": "Whether to hide from GAL" + } + }, + "required": ["ID", "GroupType", "HidefromGAL"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecGroupsDeliveryManagement": { + "post": { + "summary": "Manage Group Delivery Settings", + "description": "Manages delivery settings for a group", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Group Email" + }, + "GroupType": { + "type": "string", + "description": "Group Type" + }, + "OnlyAllowInternal": { + "type": "boolean", + "description": "Whether to only allow internal messages" + } + }, + "required": ["ID", "GroupType", "OnlyAllowInternal"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecGroupsDelete": { + "post": { + "summary": "Delete Group", + "description": "Deletes a group", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Group ID" + }, + "GroupType": { + "type": "string", + "description": "Group Type" + }, + "DisplayName": { + "type": "string", + "description": "Group Display Name" + } + }, + "required": ["ID", "GroupType", "DisplayName"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/AddGroup": { + "post": { + "summary": "Add Group", + "description": "Creates a new group", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "groupName": { + "type": "string", + "description": "Group Name" + }, + "groupType": { + "type": "string", + "description": "Group Type" + } + }, + "required": ["tenantFilter", "groupName", "groupType"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListRoles": { + "get": { + "summary": "List Roles", + "description": "Lists roles in the tenant", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DisplayName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Members": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "/api/ExecDismissRiskyUser": { + "post": { + "summary": "Dismiss Risky User", + "description": "Dismisses the risk for a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID" + }, + "userDisplayName": { + "type": "string", + "description": "User Display Name" + } + }, + "required": ["userId", "userDisplayName"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecJITAdmin": { + "post": { + "summary": "Execute JIT Admin", + "description": "Creates or updates a JIT admin", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "userAction": { + "type": "string", + "enum": ["create", "select"], + "description": "User Action" + }, + "firstName": { + "type": "string", + "description": "First Name" + }, + "lastName": { + "type": "string", + "description": "Last Name" + }, + "userName": { + "type": "string", + "description": "Username" + }, + "domain": { + "type": "string", + "description": "Domain Name" + }, + "existingUser": { + "type": "string", + "description": "Existing User" + }, + "startDate": { + "type": "string", + "format": "date", + "description": "Start Date" + }, + "endDate": { + "type": "string", + "format": "date", + "description": "End Date" + }, + "adminRoles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Admin Roles" + }, + "UseTAP": { + "type": "boolean", + "description": "Generate TAP" + }, + "expireAction": { + "type": "string", + "enum": ["DeleteUser", "DisableUser", "RemoveRoles"], + "description": "Expiration Action" + }, + "postExecution": { + "type": "array", + "items": { + "type": "string", + "enum": ["Webhook", "email", "PSA"] + }, + "description": "Notification Action" + } + }, + "required": ["tenantFilter", "userAction", "startDate", "endDate", "adminRoles"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + }, + "get": { + "summary": "List JIT Admins", + "description": "Lists JIT admins", + "parameters": [ + { + "name": "Action", + "in": "query", + "description": "Action to perform", + "schema": { + "type": "string", + "enum": ["List"] + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/api/ExecDeviceDelete": { + "post": { + "summary": "Manage Device", + "description": "Enables, disables, or deletes a device", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Device ID" + }, + "action": { + "type": "string", + "enum": ["!Enable", "!Disable", "!Delete"], + "description": "Action to perform" + } + }, + "required": ["ID", "action"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecGetRecoveryKey": { + "post": { + "summary": "Get Recovery Key", + "description": "Retrieves BitLocker recovery keys for a device", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "Device ID" + } + }, + "required": ["GUID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListDeletedItems": { + "get": { + "summary": "List Deleted Items", + "description": "Lists deleted items", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "TargetType": { + "type": "string" + }, + "userPrincipalName": { + "type": "string" + }, + "deletedDateTime": { + "type": "string" + }, + "onPremisesSyncEnabled": { + "type": "boolean" + } + } + } + } + } + } + } + } + } + }, + "/api/ExecRestoreDeleted": { + "post": { + "summary": "Restore Deleted Object", + "description": "Restores a deleted object", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Object ID" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ExecOffboardUser": { + "post": { + "summary": "Offboard User", + "description": "Offboards a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "user": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Users to offboard" + }, + "Scheduled": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "description": "Scheduled offboarding" + } + }, + "required": ["tenantFilter", "user"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Lists extensions configuration", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "GitHub": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean" + } + } + } + } + } + } + } + } + } + } + }, + "/api/ExecCommunityRepo": { + "post": { + "summary": "Execute Community Repository Action", + "description": "Executes an action on a community repository", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "enum": ["UploadTemplate"], + "description": "Action to perform" + }, + "GUID": { + "type": "string", + "description": "Template GUID" + }, + "FullName": { + "type": "string", + "description": "Repository Full Name" + }, + "Message": { + "type": "string", + "description": "Commit Message" + } + }, + "required": ["Action", "GUID", "FullName", "Message"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListCommunityRepos": { + "get": { + "summary": "List Community Repositories", + "description": "Lists community repositories", + "parameters": [ + { + "name": "WriteAccess", + "in": "query", + "description": "Whether to only show repositories with write access", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FullName": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + }, + "/api/RemoveGroupTemplate": { + "post": { + "summary": "Remove Group Template", + "description": "Removes a group template", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "Template GUID" + } + }, + "required": ["ID"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + }, + "/api/ListGroupTemplates": { + "get": { + "summary": "List Group Templates", + "description": "Lists group templates", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Displayname": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "groupType": { + "type": "string" + }, + "GUID": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/api/AddGroupTemplate": { + "post": { + "summary": "Add Group Template", + "description": "Creates a new group template", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "Displayname": { + "type": "string", + "description": "Template Display Name" + }, + "Description": { + "type": "string", + "description": "Template Description" + }, + "groupType": { + "type": "string", + "description": "Group Type" + } + }, + "required": ["Displayname", "Description", "groupType"] + } + } + } + }, + "responses": { + "200": { + "description": "Successful response" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/security-openapispec.json b/Tools/security-openapispec.json new file mode 100644 index 000000000000..d7b388cc3a3e --- /dev/null +++ b/Tools/security-openapispec.json @@ -0,0 +1,891 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Security API", + "description": "API endpoints for the Security section of Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListDefenderState": { + "get": { + "summary": "List Defender State", + "description": "Retrieves the status of Microsoft Defender across devices", + "tags": [ + "Defender" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Defender state retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "deviceName": { + "type": "string", + "description": "The name of the device" + }, + "windowsProtectionState": { + "type": "object", + "properties": { + "malwareProtectionEnabled": { + "type": "boolean", + "description": "Whether malware protection is enabled" + }, + "realTimeProtectionEnabled": { + "type": "boolean", + "description": "Whether real-time protection is enabled" + }, + "networkInspectionSystemEnabled": { + "type": "boolean", + "description": "Whether network inspection is enabled" + }, + "deviceState": { + "type": "string", + "description": "The state of the device" + }, + "quickScanOverdue": { + "type": "boolean", + "description": "Whether a quick scan is overdue" + }, + "fullScanOverdue": { + "type": "boolean", + "description": "Whether a full scan is overdue" + }, + "signatureUpdateOverdue": { + "type": "boolean", + "description": "Whether a signature update is overdue" + }, + "rebootRequired": { + "type": "boolean", + "description": "Whether a reboot is required" + }, + "lastReportedDateTime": { + "type": "string", + "format": "date-time", + "description": "The date and time of the last report" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListDefenderTVM": { + "get": { + "summary": "List Defender Threat & Vulnerability Management", + "description": "Retrieves software vulnerabilities detected by Microsoft Defender", + "tags": [ + "Defender" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Defender TVM data retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "affectedDevicesCount": { + "type": "integer", + "description": "The number of affected devices" + }, + "affectedDevices": { + "type": "array", + "description": "The list of affected devices", + "items": { + "type": "string" + } + }, + "osPlatform": { + "type": "string", + "description": "The OS platform" + }, + "softwareVendor": { + "type": "string", + "description": "The software vendor" + }, + "softwareName": { + "type": "string", + "description": "The software name" + }, + "vulnerabilitySeverityLevel": { + "type": "string", + "description": "The severity level of the vulnerability" + }, + "cvssScore": { + "type": "number", + "description": "The CVSS score" + }, + "securityUpdateAvailable": { + "type": "boolean", + "description": "Whether a security update is available" + }, + "exploitabilityLevel": { + "type": "string", + "description": "The exploitability level" + }, + "cveId": { + "type": "string", + "description": "The CVE ID" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddDefenderDeployment": { + "post": { + "summary": "Add Defender Deployment", + "description": "Deploys Microsoft Defender policies to selected tenants", + "tags": [ + "Defender" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "selectedTenants" + ], + "properties": { + "selectedTenants": { + "type": "array", + "description": "The tenants to deploy to", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant display name" + } + } + } + }, + "Compliance": { + "type": "object", + "description": "Compliance settings", + "properties": { + "AllowMEMEnforceCompliance": { + "type": "boolean", + "description": "Allow Microsoft Defender for Endpoint to enforce Endpoint Security Configurations" + }, + "ConnectIosCompliance": { + "type": "boolean", + "description": "Connect iOS/iPadOS devices version 13.0 and above to Microsoft Defender for Endpoint" + }, + "ConnectAndroidCompliance": { + "type": "boolean", + "description": "Connect Android devices version 6.0.0 and above to Microsoft Defender for Endpoint" + }, + "ConnectWindows": { + "type": "boolean", + "description": "Connect Windows devices version 10.0.15063 and above to Microsoft Defender for Endpoint" + }, + "AppSync": { + "type": "boolean", + "description": "Enable App Sync for iOS/iPadOS devices" + }, + "BlockunsupportedOS": { + "type": "boolean", + "description": "Block unsupported OS versions" + }, + "ConnectAndroid": { + "type": "boolean", + "description": "Connect Android devices to Microsoft Defender for Endpoint" + }, + "ConnectIos": { + "type": "boolean", + "description": "Connect iOS/iPadOS devices to Microsoft Defender for Endpoint" + } + } + }, + "EDR": { + "type": "object", + "description": "EDR settings", + "properties": { + "Telemetry": { + "type": "boolean", + "description": "Expedite Telemetry Reporting Frequency" + }, + "Config": { + "type": "boolean", + "description": "Connect Defender Configuration Package automatically from Connector" + }, + "SampleSharing": { + "type": "boolean", + "description": "Enable Sample Sharing" + } + } + }, + "Policy": { + "type": "object", + "description": "Policy settings", + "properties": { + "ScanArchives": { + "type": "boolean", + "description": "Allow Archive Scanning" + }, + "AllowBehavior": { + "type": "boolean", + "description": "Allow behavior monitoring" + }, + "AllowCloudProtection": { + "type": "boolean", + "description": "Allow Cloud Protection" + }, + "AllowEmailScanning": { + "type": "boolean", + "description": "Allow e-mail scanning" + }, + "AllowFullScanNetwork": { + "type": "boolean", + "description": "Allow Full Scan on Network Drives" + }, + "AllowFullScanRemovable": { + "type": "boolean", + "description": "Allow Full Scan on Removable Drives" + }, + "AllowScriptScan": { + "type": "boolean", + "description": "Allow Script Scanning" + }, + "AllowIPS": { + "type": "boolean", + "description": "Allow Intrusion Prevention System" + }, + "LowCPU": { + "type": "boolean", + "description": "Enable Low CPU priority" + }, + "AllowDownloadable": { + "type": "boolean", + "description": "Allow scanning of downloaded files" + }, + "AllowRealTime": { + "type": "boolean", + "description": "Allow Realtime monitoring" + }, + "AllowNetwork": { + "type": "boolean", + "description": "Allow scanning of mapped drives" + }, + "AllowUI": { + "type": "boolean", + "description": "Allow users to access UI" + }, + "NetworkProtectionBlock": { + "type": "boolean", + "description": "Enable Network Protection in Block Mode" + }, + "NetworkProtectionAudit": { + "type": "boolean", + "description": "Enable Network Protection in Audit Mode" + }, + "CheckSigs": { + "type": "boolean", + "description": "Check Signatures before scan" + }, + "DisableCatchupFullScan": { + "type": "boolean", + "description": "Disable Catchup Full Scan" + }, + "DisableCatchupQuickScan": { + "type": "boolean", + "description": "Disable Catchup Quick Scan" + }, + "AssignTo": { + "type": "string", + "description": "Assignment target", + "enum": ["none", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers"] + } + } + }, + "ASR": { + "type": "object", + "description": "Attack Surface Reduction settings", + "properties": { + "BlockAdobeChild": { + "type": "boolean", + "description": "Block Adobe Reader from creating child processes" + }, + "BlockWin32Macro": { + "type": "boolean", + "description": "Block Win32 API calls from Office macros" + }, + "BlockCredentialStealing": { + "type": "boolean", + "description": "Block credential stealing from the Windows local security authority subsystem" + }, + "BlockPSExec": { + "type": "boolean", + "description": "Block process creations originating from PSExec and WMI commands" + }, + "WMIPersistence": { + "type": "boolean", + "description": "Block persistence through WMI event subscription" + }, + "BlockOfficeExes": { + "type": "boolean", + "description": "Block Office applications from creating executable content" + }, + "BlockOfficeApps": { + "type": "boolean", + "description": "Block Office applications from injecting code into other processes" + }, + "BlockYoungExe": { + "type": "boolean", + "description": "Block executable files from running unless they meet a prevalence, age, or trusted list criterion" + }, + "blockJSVB": { + "type": "boolean", + "description": "Block JavaScript or VBScript from launching downloaded executable content" + }, + "blockOfficeComChild": { + "type": "boolean", + "description": "Block Office communication application from creating child processes" + }, + "blockOfficeChild": { + "type": "boolean", + "description": "Block all Office applications from creating child processes" + }, + "BlockUntrustedUSB": { + "type": "boolean", + "description": "Block untrusted and unsigned processes that run from USB" + }, + "EnableRansomwareVac": { + "type": "boolean", + "description": "Use advanced protection against ransomware" + }, + "BlockExesMail": { + "type": "boolean", + "description": "Block executable content from email client and webmail" + }, + "BlockUnsignedDrivers": { + "type": "boolean", + "description": "Block abuse of exploited vulnerable signed drivers" + }, + "AssignTo": { + "type": "string", + "description": "Assignment target", + "enum": ["none", "allLicensedUsers", "AllDevices", "AllDevicesAndUsers"] + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Defender deployment added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecAlertsList": { + "get": { + "summary": "List Security Alerts", + "description": "Retrieves a list of security alerts", + "tags": [ + "Incidents" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Security alerts retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "properties": { + "MSResults": { + "type": "array", + "items": { + "type": "object", + "properties": { + "EventDateTime": { + "type": "string", + "format": "date-time", + "description": "The date and time of the event" + }, + "Status": { + "type": "string", + "description": "The status of the alert" + }, + "Title": { + "type": "string", + "description": "The title of the alert" + }, + "Severity": { + "type": "string", + "description": "The severity of the alert" + }, + "Category": { + "type": "string", + "description": "The category of the alert" + }, + "Tenant": { + "type": "string", + "description": "The tenant name" + }, + "InvolvedUsers": { + "type": "array", + "description": "The users involved in the alert", + "items": { + "type": "string" + } + }, + "Id": { + "type": "string", + "description": "The ID of the alert" + }, + "RawResult": { + "type": "object", + "description": "The raw result data", + "properties": { + "vendorInformation": { + "type": "object", + "properties": { + "vendor": { + "type": "string", + "description": "The vendor name" + }, + "provider": { + "type": "string", + "description": "The provider name" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecSetSecurityAlert": { + "post": { + "summary": "Set Security Alert Status", + "description": "Updates the status of a security alert", + "tags": [ + "Incidents" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "GUID", + "Status", + "Vendor", + "Provider" + ], + "properties": { + "GUID": { + "type": "string", + "description": "The ID of the alert" + }, + "Status": { + "type": "string", + "description": "The new status of the alert", + "enum": ["!inProgress", "!resolved"] + }, + "Vendor": { + "type": "string", + "description": "The vendor name" + }, + "Provider": { + "type": "string", + "description": "The provider name" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Security alert status updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecIncidentsList": { + "get": { + "summary": "List Security Incidents", + "description": "Retrieves a list of security incidents", + "tags": [ + "Incidents" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Security incidents retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Created": { + "type": "string", + "format": "date-time", + "description": "The creation date and time" + }, + "Updated": { + "type": "string", + "format": "date-time", + "description": "The last update date and time" + }, + "Tenant": { + "type": "string", + "description": "The tenant name" + }, + "Id": { + "type": "string", + "description": "The ID of the incident" + }, + "RedirectId": { + "type": "string", + "description": "The redirect ID" + }, + "DisplayName": { + "type": "string", + "description": "The display name of the incident" + }, + "Status": { + "type": "string", + "description": "The status of the incident" + }, + "Severity": { + "type": "string", + "description": "The severity of the incident" + }, + "AssignedTo": { + "type": "string", + "description": "The user assigned to the incident" + }, + "Classification": { + "type": "string", + "description": "The classification of the incident" + }, + "Determination": { + "type": "string", + "description": "The determination of the incident" + }, + "IncidentUrl": { + "type": "string", + "description": "The URL to the incident" + }, + "Tags": { + "type": "array", + "description": "The tags associated with the incident", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecSetSecurityIncident": { + "post": { + "summary": "Set Security Incident Status", + "description": "Updates the status of a security incident or assigns it to a user", + "tags": [ + "Incidents" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "GUID" + ], + "properties": { + "GUID": { + "type": "string", + "description": "The ID of the incident" + }, + "Status": { + "type": "string", + "description": "The new status of the incident", + "enum": ["!active", "!inProgress", "!resolved"] + }, + "Assigned": { + "type": "string", + "description": "The user assigned to the incident" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Security incident updated successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListGraphRequest": { + "get": { + "summary": "List Graph Request", + "description": "Retrieves data from a Graph API request", + "tags": [ + "Graph" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "The tenant to filter by", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "endpoint", + "in": "query", + "description": "The Graph API endpoint", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Number of records to return", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Graph request data retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/teams-share-openapispec.json b/Tools/teams-share-openapispec.json new file mode 100644 index 000000000000..4c327deadebd --- /dev/null +++ b/Tools/teams-share-openapispec.json @@ -0,0 +1,749 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Teams & Share API", + "description": "API endpoints for Teams, SharePoint, and OneDrive management in CIPP", + "version": "1.0.0" + }, + "paths": { + "/api/ListSites": { + "get": { + "summary": "List sites", + "description": "List SharePoint sites or OneDrive accounts based on the type parameter", + "parameters": [ + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": ["SharePointSiteUsage", "OneDriveUsageAccount"] + }, + "description": "Type of sites to list" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Site" + } + } + } + } + } + } + } + }, + "/api/ExecSetSharePointMember": { + "post": { + "summary": "Add or remove SharePoint site member", + "description": "Add or remove a user as a member of a SharePoint site", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["groupId", "add", "URL", "SharePointType", "user"], + "properties": { + "groupId": { + "type": "string", + "description": "Owner principal name" + }, + "add": { + "type": "boolean", + "description": "True to add, false to remove" + }, + "URL": { + "type": "string", + "description": "Web URL of the site" + }, + "SharePointType": { + "type": "string", + "description": "Root web template" + }, + "user": { + "type": "string", + "description": "User principal name to add or remove" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Operation successful" + } + } + } + }, + "/api/ExecSharePointPerms": { + "post": { + "summary": "Manage SharePoint or OneDrive permissions", + "description": "Add or remove a user as a site admin for SharePoint or add/remove permissions for OneDrive", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["UPN", "RemovePermission", "URL"], + "properties": { + "UPN": { + "type": "string", + "description": "Owner principal name" + }, + "RemovePermission": { + "type": "boolean", + "description": "True to remove permission, false to add" + }, + "URL": { + "type": "string", + "description": "Web URL of the site or OneDrive" + }, + "user": { + "type": "string", + "description": "User principal name to add or remove permissions for" + }, + "onedriveAccessUser": { + "type": "string", + "description": "User principal name to add or remove OneDrive access for" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Operation successful" + } + } + } + }, + "/api/AddSite": { + "post": { + "summary": "Add a new SharePoint site", + "description": "Create a new SharePoint site", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["siteName", "siteDescription", "SiteOwner", "TemplateName", "siteDesign"], + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "siteName": { + "type": "string", + "description": "Name of the site" + }, + "siteDescription": { + "type": "string", + "description": "Description of the site" + }, + "SiteOwner": { + "type": "string", + "description": "User principal name of the site owner" + }, + "TemplateName": { + "type": "string", + "enum": ["team", "communication"], + "description": "Template name" + }, + "siteDesign": { + "type": "string", + "enum": ["blank", "Showcase", "Topic"], + "description": "Site design template" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Site created successfully" + } + } + } + }, + "/api/AddSiteBulk": { + "post": { + "summary": "Add multiple SharePoint sites", + "description": "Create multiple SharePoint sites in bulk", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["tenantFilter", "bulkSites"], + "properties": { + "tenantFilter": { + "type": "string", + "description": "Tenant ID" + }, + "bulkSites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "SiteName": { + "type": "string", + "description": "Name of the site" + }, + "siteDescription": { + "type": "string", + "description": "Description of the site" + }, + "siteOwner": { + "type": "string", + "description": "User principal name of the site owner" + }, + "TemplateName": { + "type": "string", + "description": "Template name" + }, + "siteDesign": { + "type": "string", + "description": "Site design template" + }, + "sensitivityLabel": { + "type": "string", + "description": "Sensitivity label" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Sites created successfully" + } + } + } + }, + "/api/ListTeams": { + "get": { + "summary": "List Teams", + "description": "List Microsoft Teams", + "parameters": [ + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": ["list"] + }, + "description": "Type of Teams list" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Team" + } + } + } + } + } + } + } + }, + "/api/AddTeam": { + "post": { + "summary": "Add a new Team", + "description": "Create a new Microsoft Team", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["tenantID", "displayName", "owner", "visibility"], + "properties": { + "tenantID": { + "type": "string", + "description": "Tenant ID" + }, + "displayName": { + "type": "string", + "description": "Display name of the team" + }, + "description": { + "type": "string", + "description": "Description of the team" + }, + "owner": { + "type": "string", + "description": "User principal name of the team owner" + }, + "visibility": { + "type": "string", + "enum": ["public", "private"], + "description": "Team visibility" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Team created successfully" + } + } + } + }, + "/api/ListTeamsActivity": { + "get": { + "summary": "List Teams activity", + "description": "List Microsoft Teams user activity", + "parameters": [ + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": ["TeamsUserActivityUser"] + }, + "description": "Type of Teams activity" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamsActivity" + } + } + } + } + } + } + } + }, + "/api/ListTeamsVoice": { + "get": { + "summary": "List Teams voice phone numbers", + "description": "List Microsoft Teams voice phone numbers", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamsVoice" + } + } + } + } + } + } + } + }, + "/api/ExecTeamsVoicePhoneNumberAssignment": { + "post": { + "summary": "Assign Teams voice phone number", + "description": "Assign a phone number to a user or set emergency location", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["PhoneNumber"], + "properties": { + "PhoneNumber": { + "type": "string", + "description": "Phone number to assign" + }, + "PhoneNumberType": { + "type": "string", + "description": "Type of phone number" + }, + "locationOnly": { + "type": "boolean", + "description": "True if only setting emergency location" + }, + "input": { + "type": "string", + "description": "User principal name or location ID" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Operation successful" + } + } + } + }, + "/api/ExecRemoveTeamsVoicePhoneNumberAssignment": { + "post": { + "summary": "Unassign Teams voice phone number", + "description": "Unassign a phone number from a user", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": ["PhoneNumber", "AssignedTo", "PhoneNumberType"], + "properties": { + "PhoneNumber": { + "type": "string", + "description": "Phone number to unassign" + }, + "AssignedTo": { + "type": "string", + "description": "User the phone number is assigned to" + }, + "PhoneNumberType": { + "type": "string", + "description": "Type of phone number" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Operation successful" + } + } + } + }, + "/api/ListTeamsLisLocation": { + "get": { + "summary": "List Teams emergency locations", + "description": "List Microsoft Teams emergency locations", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamsLocation" + } + } + } + } + } + } + } + }, + "/api/listUsers": { + "get": { + "summary": "List users", + "description": "List users for selection in forms", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } + } + } + } + } + } + } + }, + "/api/ListGraphRequest": { + "get": { + "summary": "List Graph API resources", + "description": "List resources from Microsoft Graph API", + "parameters": [ + { + "name": "Endpoint", + "in": "query", + "required": true, + "schema": { + "type": "string" + }, + "description": "Graph API endpoint" + }, + { + "name": "$filter", + "in": "query", + "schema": { + "type": "string" + }, + "description": "OData filter" + }, + { + "name": "$top", + "in": "query", + "schema": { + "type": "integer" + }, + "description": "Maximum number of results" + }, + { + "name": "$count", + "in": "query", + "schema": { + "type": "boolean" + }, + "description": "Include count" + }, + { + "name": "$orderby", + "in": "query", + "schema": { + "type": "string" + }, + "description": "Order by field" + }, + { + "name": "$select", + "in": "query", + "schema": { + "type": "string" + }, + "description": "Fields to select" + } + ], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "Site": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name of the site" + }, + "createdDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time when the site was created" + }, + "ownerPrincipalName": { + "type": "string", + "description": "Principal name of the site owner" + }, + "lastActivityDate": { + "type": "string", + "format": "date-time", + "description": "Date of last activity" + }, + "fileCount": { + "type": "integer", + "description": "Number of files" + }, + "storageUsedInGigabytes": { + "type": "number", + "format": "float", + "description": "Storage used in gigabytes" + }, + "storageAllocatedInGigabytes": { + "type": "number", + "format": "float", + "description": "Storage allocated in gigabytes" + }, + "reportRefreshDate": { + "type": "string", + "format": "date-time", + "description": "Date when the report was refreshed" + }, + "webUrl": { + "type": "string", + "description": "URL of the site" + }, + "description": { + "type": "string", + "description": "Description of the site" + } + } + }, + "Team": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name of the team" + }, + "description": { + "type": "string", + "description": "Description of the team" + }, + "visibility": { + "type": "string", + "description": "Visibility of the team" + }, + "mailNickname": { + "type": "string", + "description": "Mail nickname of the team" + }, + "id": { + "type": "string", + "description": "ID of the team" + } + } + }, + "TeamsActivity": { + "type": "object", + "properties": { + "UPN": { + "type": "string", + "description": "User principal name" + }, + "LastActive": { + "type": "string", + "format": "date-time", + "description": "Date and time of last activity" + }, + "MeetingCount": { + "type": "integer", + "description": "Number of meetings" + }, + "CallCount": { + "type": "integer", + "description": "Number of calls" + }, + "TeamsChat": { + "type": "integer", + "description": "Number of Teams chats" + } + } + }, + "TeamsVoice": { + "type": "object", + "properties": { + "AssignedTo": { + "type": "string", + "description": "User the phone number is assigned to" + }, + "TelephoneNumber": { + "type": "string", + "description": "Phone number" + }, + "AssignmentStatus": { + "type": "string", + "description": "Assignment status" + }, + "NumberType": { + "type": "string", + "description": "Type of phone number" + }, + "AcquiredCapabilities": { + "type": "string", + "description": "Capabilities of the phone number" + }, + "IsoCountryCode": { + "type": "string", + "description": "ISO country code" + }, + "PlaceName": { + "type": "string", + "description": "Place name" + }, + "ActivationState": { + "type": "string", + "description": "Activation state" + }, + "IsOperatorConnect": { + "type": "boolean", + "description": "Whether the number is operator connect" + }, + "AcquisitionDate": { + "type": "string", + "format": "date-time", + "description": "Date when the number was acquired" + } + } + }, + "TeamsLocation": { + "type": "object", + "properties": { + "Description": { + "type": "string", + "description": "Description of the location" + }, + "LocationId": { + "type": "string", + "description": "ID of the location" + } + } + }, + "User": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name of the user" + }, + "userPrincipalName": { + "type": "string", + "description": "User principal name" + }, + "id": { + "type": "string", + "description": "ID of the user" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/tenant-openapispec.json b/Tools/tenant-openapispec.json new file mode 100644 index 000000000000..36d372109e94 --- /dev/null +++ b/Tools/tenant-openapispec.json @@ -0,0 +1,1853 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Tenant API", + "description": "API for Tenant Management in Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListAlertsQueue": { + "get": { + "summary": "List Alerts Queue", + "description": "Retrieves a list of alerts in the queue", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "Alerts retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RowKey": { + "type": "string", + "description": "Unique identifier for the alert" + }, + "PartitionKey": { + "type": "string", + "description": "Partition key for the alert" + }, + "LogType": { + "type": "string", + "description": "Type of log" + }, + "RawAlert": { + "type": "object", + "description": "Raw alert data" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddAlert": { + "post": { + "summary": "Add Alert", + "description": "Adds a new alert", + "tags": [ + "Tenant Administration" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "array", + "description": "List of tenants to apply the alert to", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "excludedTenants": { + "type": "array", + "description": "List of tenants to exclude from the alert", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "logbook": { + "type": "object", + "description": "Log source", + "properties": { + "value": { + "type": "string", + "description": "Log source value" + }, + "label": { + "type": "string", + "description": "Log source label" + } + } + }, + "conditions": { + "type": "array", + "description": "Alert conditions", + "items": { + "type": "object", + "properties": { + "Property": { + "type": "object", + "description": "Property to check", + "properties": { + "value": { + "type": "string", + "description": "Property value" + }, + "label": { + "type": "string", + "description": "Property label" + } + } + }, + "Operator": { + "type": "object", + "description": "Comparison operator", + "properties": { + "value": { + "type": "string", + "description": "Operator value" + }, + "label": { + "type": "string", + "description": "Operator label" + } + } + }, + "Input": { + "type": "object", + "description": "Input value", + "properties": { + "value": { + "type": "string", + "description": "Input value" + } + } + } + } + } + }, + "Actions": { + "type": "array", + "description": "Actions to take", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Action value" + }, + "label": { + "type": "string", + "description": "Action label" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Alert added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddScheduledItem": { + "post": { + "summary": "Add Scheduled Item", + "description": "Adds a new scheduled item", + "tags": [ + "Tenant Administration" + ], + "parameters": [ + { + "name": "hidden", + "in": "query", + "description": "Whether to hide the scheduled item", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "DisallowDuplicateName", + "in": "query", + "description": "Whether to disallow duplicate names", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "RowKey": { + "type": "string", + "description": "Unique identifier for the scheduled item" + }, + "tenantFilter": { + "type": "string", + "description": "Tenant to apply the scheduled item to" + }, + "excludedTenants": { + "type": "array", + "description": "List of tenants to exclude from the scheduled item", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "Name": { + "type": "string", + "description": "Name of the scheduled item" + }, + "Command": { + "type": "object", + "description": "Command to execute", + "properties": { + "value": { + "type": "string", + "description": "Command value" + } + } + }, + "Parameters": { + "type": "object", + "description": "Parameters for the command" + }, + "ScheduledTime": { + "type": "integer", + "description": "When the job is scheduled to run (Unix timestamp)" + }, + "Recurrence": { + "type": "string", + "description": "How often the job recurs" + }, + "PostExecution": { + "type": "array", + "description": "Actions to take after execution", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Action value" + }, + "label": { + "type": "string", + "description": "Action label" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled item added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/listCSPLicenses": { + "get": { + "summary": "List CSP Licenses", + "description": "Retrieves a list of CSP licenses", + "tags": [ + "Tenant Reports" + ], + "responses": { + "200": { + "description": "CSP licenses retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tenant": { + "type": "string", + "description": "Tenant name" + }, + "TenantId": { + "type": "string", + "description": "Tenant ID" + }, + "SubscriptionId": { + "type": "string", + "description": "Subscription ID" + }, + "SkuId": { + "type": "string", + "description": "SKU ID" + }, + "SkuName": { + "type": "string", + "description": "SKU name" + }, + "Status": { + "type": "string", + "description": "Subscription status" + }, + "Quantity": { + "type": "integer", + "description": "License quantity" + }, + "BillingCycle": { + "type": "string", + "description": "Billing cycle" + }, + "RenewalDate": { + "type": "string", + "description": "Renewal date" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCSPLicense": { + "post": { + "summary": "Execute CSP License Operation", + "description": "Executes an operation on CSP licenses", + "tags": [ + "Tenant Reports" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "description": "Action to perform", + "enum": ["!Add", "!Remove", "!Cancel"] + }, + "sku": { + "type": "string", + "description": "SKU ID" + }, + "add": { + "type": "integer", + "description": "Number of licenses to add" + }, + "Remove": { + "type": "integer", + "description": "Number of licenses to remove" + }, + "SubscriptionIds": { + "type": "string", + "description": "Subscription IDs to cancel" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "CSP license operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListLicenses": { + "get": { + "summary": "List Licenses", + "description": "Retrieves a list of licenses", + "tags": [ + "Tenant Reports" + ], + "responses": { + "200": { + "description": "Licenses retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tenant": { + "type": "string", + "description": "Tenant name" + }, + "License": { + "type": "string", + "description": "License name" + }, + "CountUsed": { + "type": "integer", + "description": "Number of licenses used" + }, + "CountAvailable": { + "type": "integer", + "description": "Number of licenses available" + }, + "TotalLicenses": { + "type": "integer", + "description": "Total number of licenses" + }, + "TermInfo": { + "type": "object", + "description": "Term information" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListStandards": { + "get": { + "summary": "List Standards", + "description": "Retrieves a list of standards", + "tags": [ + "Tenant Standards" + ], + "responses": { + "200": { + "description": "Standards retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RowKey": { + "type": "string", + "description": "Unique identifier for the standard" + }, + "Standard": { + "type": "string", + "description": "Standard name" + }, + "Tenant": { + "type": "string", + "description": "Tenant name" + }, + "Enabled": { + "type": "boolean", + "description": "Whether the standard is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/listStandardTemplates": { + "get": { + "summary": "List Standard Templates", + "description": "Retrieves a list of standard templates", + "tags": [ + "Tenant Standards" + ], + "responses": { + "200": { + "description": "Standard templates retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "Unique identifier for the template" + }, + "templateName": { + "type": "string", + "description": "Template name" + }, + "tenantFilter": { + "type": "array", + "description": "List of tenants to apply the template to", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "excludedTenants": { + "type": "array", + "description": "List of tenants to exclude from the template", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + } + }, + "updatedAt": { + "type": "string", + "description": "When the template was last updated" + }, + "updatedBy": { + "type": "string", + "description": "Who last updated the template" + }, + "runManually": { + "type": "boolean", + "description": "Whether the template is run manually" + }, + "standards": { + "type": "array", + "description": "List of standards in the template", + "items": { + "type": "object" + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecStandardsRun": { + "get": { + "summary": "Execute Standards Run", + "description": "Executes a standards run", + "tags": [ + "Tenant Standards" + ], + "parameters": [ + { + "name": "TemplateId", + "in": "query", + "description": "Template ID to run", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant filter", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Standards run executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/RemoveStandardTemplate": { + "post": { + "summary": "Remove Standard Template", + "description": "Removes a standard template", + "tags": [ + "Tenant Standards" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ID" + ], + "properties": { + "ID": { + "type": "string", + "description": "Template ID to remove" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Standard template removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/execStandardConvert": { + "post": { + "summary": "Convert Standards", + "description": "Converts legacy standards to the new format", + "tags": [ + "Tenant Standards" + ], + "responses": { + "200": { + "description": "Standards converted successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListNamedLocations": { + "get": { + "summary": "List Named Locations", + "description": "Retrieves a list of named locations", + "tags": [ + "Tenant Conditional Access" + ], + "responses": { + "200": { + "description": "Named locations retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the named location" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "@odata.type": { + "type": "string", + "description": "Type of named location" + }, + "includeUnknownCountriesAndRegions": { + "type": "boolean", + "description": "Whether to include unknown countries and regions" + }, + "isTrusted": { + "type": "boolean", + "description": "Whether the location is trusted" + }, + "rangeOrLocation": { + "type": "string", + "description": "Range or location" + }, + "modifiedDateTime": { + "type": "string", + "description": "When the named location was last modified" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecNamedLocation": { + "post": { + "summary": "Execute Named Location Operation", + "description": "Executes an operation on a named location", + "tags": [ + "Tenant Conditional Access" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "namedLocationId", + "change", + "input" + ], + "properties": { + "namedLocationId": { + "type": "string", + "description": "Named location ID" + }, + "change": { + "type": "string", + "description": "Change to make", + "enum": ["addLocation", "removeLocation", "addIp", "removeIp"] + }, + "input": { + "type": "string", + "description": "Input value (country code or IP)" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Named location operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddNamedLocation": { + "post": { + "summary": "Add Named Location", + "description": "Adds a new named location", + "tags": [ + "Tenant Conditional Access" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "Display name" + }, + "locationType": { + "type": "string", + "description": "Type of location", + "enum": ["country", "ip"] + }, + "countriesAndRegions": { + "type": "array", + "description": "List of countries and regions", + "items": { + "type": "string" + } + }, + "includeUnknownCountriesAndRegions": { + "type": "boolean", + "description": "Whether to include unknown countries and regions" + }, + "ipRanges": { + "type": "array", + "description": "List of IP ranges", + "items": { + "type": "object", + "properties": { + "cidrAddress": { + "type": "string", + "description": "CIDR address" + } + } + } + }, + "isTrusted": { + "type": "boolean", + "description": "Whether the location is trusted" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Named location added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListConditionalAccessPolicies": { + "get": { + "summary": "List Conditional Access Policies", + "description": "Retrieves a list of conditional access policies", + "tags": [ + "Tenant Conditional Access" + ], + "responses": { + "200": { + "description": "Conditional access policies retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the policy" + }, + "displayName": { + "type": "string", + "description": "Display name" + }, + "state": { + "type": "string", + "description": "State of the policy" + }, + "conditions": { + "type": "object", + "description": "Conditions for the policy" + }, + "grantControls": { + "type": "object", + "description": "Grant controls for the policy" + }, + "sessionControls": { + "type": "object", + "description": "Session controls for the policy" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCAExclusion": { + "post": { + "summary": "Execute Conditional Access Exclusion", + "description": "Executes a conditional access exclusion", + "tags": [ + "Tenant Conditional Access" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "tenantFilter": { + "type": "object", + "description": "Tenant filter", + "properties": { + "value": { + "type": "string", + "description": "Tenant ID" + }, + "label": { + "type": "string", + "description": "Tenant name" + } + } + }, + "user": { + "type": "object", + "description": "User to exclude", + "properties": { + "value": { + "type": "string", + "description": "User ID" + }, + "label": { + "type": "string", + "description": "User name" + } + } + }, + "policy": { + "type": "object", + "description": "Policy to exclude from", + "properties": { + "value": { + "type": "string", + "description": "Policy ID" + }, + "label": { + "type": "string", + "description": "Policy name" + } + } + }, + "startDate": { + "type": "string", + "description": "Start date for the exclusion" + }, + "endDate": { + "type": "string", + "description": "End date for the exclusion" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Conditional access exclusion executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListGraphRequest": { + "get": { + "summary": "List Graph Request", + "description": "Retrieves data from Microsoft Graph API", + "tags": [ + "Tenant Administration" + ], + "parameters": [ + { + "name": "Endpoint", + "in": "query", + "description": "Graph API endpoint", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Fields to select", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Whether to include count", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "$top", + "in": "query", + "description": "Number of results to return", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Graph request executed successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListAuditLogs": { + "get": { + "summary": "List Audit Logs", + "description": "Retrieves a list of audit logs", + "tags": [ + "Tenant Administration" + ], + "parameters": [ + { + "name": "RelativeTime", + "in": "query", + "description": "Relative time filter", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "StartDate", + "in": "query", + "description": "Start date filter", + "required": false, + "schema": { + "type": "string", + "format": "date" + } + }, + { + "name": "EndDate", + "in": "query", + "description": "End date filter", + "required": false, + "schema": { + "type": "string", + "format": "date" + } + } + ], + "responses": { + "200": { + "description": "Audit logs retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Timestamp": { + "type": "string", + "description": "When the log entry was created" + }, + "Tenant": { + "type": "string", + "description": "Tenant name" + }, + "Title": { + "type": "string", + "description": "Log title" + }, + "LogId": { + "type": "string", + "description": "Unique identifier for the log" + }, + "Actions": { + "type": "string", + "description": "Actions taken" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecListBackup": { + "get": { + "summary": "List Backups", + "description": "Retrieves a list of backups", + "tags": [ + "Tenant Backup" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant filter", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Backups retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "BackupName": { + "type": "string", + "description": "Name of the backup" + }, + "Timestamp": { + "type": "string", + "description": "When the backup was created" + }, + "Backup": { + "type": "string", + "description": "The backup data (JSON string)" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCSPsku": { + "get": { + "summary": "List CSP SKUs", + "description": "Retrieves a list of CSP SKUs", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "CSP SKUs retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "sku": { + "type": "string", + "description": "SKU ID" + }, + "name": { + "type": "array", + "description": "SKU names", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "SKU name" + } + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCommunityRepos": { + "get": { + "summary": "List Community Repositories", + "description": "Retrieves a list of community repositories", + "tags": [ + "Tenant Standards" + ], + "parameters": [ + { + "name": "WriteAccess", + "in": "query", + "description": "Whether to only include repositories with write access", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Community repositories retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FullName": { + "type": "string", + "description": "Full name of the repository" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCommunityRepo": { + "post": { + "summary": "Execute Community Repository Operation", + "description": "Executes an operation on a community repository", + "tags": [ + "Tenant Standards" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action", + "GUID", + "FullName", + "Message" + ], + "properties": { + "Action": { + "type": "string", + "description": "Action to perform", + "enum": ["UploadTemplate"] + }, + "GUID": { + "type": "string", + "description": "Template GUID" + }, + "FullName": { + "type": "string", + "description": "Repository full name" + }, + "Message": { + "type": "string", + "description": "Commit message" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Community repository operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Retrieves the configuration for extensions", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "Extensions configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGDAPRoleTemplate": { + "get": { + "summary": "List GDAP Role Templates", + "description": "Retrieves a list of existing GDAP role templates", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "GDAP role templates retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "TemplateId": { + "type": "string", + "description": "Unique identifier for the template" + }, + "RoleMappings": { + "type": "array", + "description": "List of role mappings in the template", + "items": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Name of the GDAP group" + }, + "GroupId": { + "type": "string", + "description": "Unique identifier for the GDAP group" + }, + "RoleName": { + "type": "string", + "description": "Name of the Microsoft role" + }, + "roleDefinitionId": { + "type": "string", + "description": "Unique identifier for the role definition" + } + } + } + } + } + } + }, + "Metadata": { + "type": "object", + "properties": { + "Count": { + "type": "integer", + "description": "Number of templates returned" + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListGDAPRoles": { + "get": { + "summary": "List GDAP Roles", + "description": "Retrieves a list of GDAP roles that have been mapped in CIPP", + "tags": [ + "Tenant Administration" + ], + "responses": { + "200": { + "description": "GDAP roles retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Name of the GDAP group" + }, + "GroupId": { + "type": "string", + "description": "Unique identifier for the GDAP group" + }, + "RoleName": { + "type": "string", + "description": "Name of the Microsoft role" + }, + "roleDefinitionId": { + "type": "string", + "description": "Unique identifier for the role definition" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGDAPInvite": { + "post": { + "summary": "Create GDAP Invite", + "description": "Creates a GDAP invite using the specified role mappings", + "tags": [ + "Tenant Administration" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "roleMappings" + ], + "properties": { + "roleMappings": { + "type": "array", + "description": "List of role mappings for the GDAP invite", + "items": { + "type": "object", + "properties": { + "GroupName": { + "type": "string", + "description": "Name of the GDAP group" + }, + "GroupId": { + "type": "string", + "description": "Unique identifier for the GDAP group" + }, + "RoleName": { + "type": "string", + "description": "Name of the Microsoft role" + }, + "roleDefinitionId": { + "type": "string", + "description": "Unique identifier for the role definition" + } + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "GDAP invite created successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Message": { + "type": "string", + "description": "Success message" + }, + "Invite": { + "type": "object", + "properties": { + "PartitionKey": { + "type": "string", + "description": "Partition key for the invite" + }, + "RowKey": { + "type": "string", + "description": "Unique identifier for the invite" + }, + "InviteUrl": { + "type": "string", + "description": "URL for accepting the GDAP invite" + }, + "OnboardingUrl": { + "type": "string", + "nullable": true, + "description": "Onboarding URL if available" + }, + "RoleMappings": { + "type": "string", + "description": "JSON string of role mappings" + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/Tools/tools-openapispec.json b/Tools/tools-openapispec.json new file mode 100644 index 000000000000..7d85f7a40e4a --- /dev/null +++ b/Tools/tools-openapispec.json @@ -0,0 +1,665 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "CIPP Tools API", + "description": "API for Tools in Cloud Identity and Policy Platform (CIPP)", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/api", + "description": "CIPP API Server" + } + ], + "components": { + "schemas": { + "StandardResponse": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "description": "The results of the operation" + } + } + } + } + }, + "paths": { + "/ListBreachesAccount": { + "get": { + "summary": "List Breaches for Account", + "description": "Retrieves a list of breaches for a specific account (email or domain)", + "tags": [ + "Breach Lookup" + ], + "parameters": [ + { + "name": "account", + "in": "query", + "description": "Email address or domain name to check for breaches", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Breaches retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "description": "Title of the breach" + }, + "LogoPath": { + "type": "string", + "description": "Path to the breach logo" + }, + "password": { + "type": "string", + "description": "Partial password if available" + }, + "Description": { + "type": "string", + "description": "Description of the breach" + }, + "Domain": { + "type": "string", + "description": "Domain associated with the breach" + }, + "DataClasses": { + "type": "array", + "description": "Types of data leaked in the breach", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListBreachesTenant": { + "get": { + "summary": "List Breaches for Tenant", + "description": "Retrieves a list of breaches for a specific tenant", + "tags": [ + "Breach Lookup" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant ID to filter breaches", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Tenant breaches retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email address associated with the breach" + }, + "password": { + "type": "string", + "description": "Partial password if available" + }, + "sources": { + "type": "string", + "description": "Sources of the breach data" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecBreachSearch": { + "get": { + "summary": "Execute Breach Search", + "description": "Executes a breach search for a tenant", + "tags": [ + "Breach Lookup" + ], + "parameters": [ + { + "name": "tenantFilter", + "in": "query", + "description": "Tenant ID to search for breaches", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Breach search executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListExtensionsConfig": { + "get": { + "summary": "List Extensions Configuration", + "description": "Retrieves the configuration for extensions", + "tags": [ + "Community Repositories" + ], + "responses": { + "200": { + "description": "Extensions configuration retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "GitHub": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether GitHub integration is enabled" + } + } + } + }, + "additionalProperties": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether the extension is enabled" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecGitHubAction": { + "get": { + "summary": "Execute GitHub Action (GET)", + "description": "Executes a GitHub action with GET method", + "tags": [ + "Community Repositories" + ], + "parameters": [ + { + "name": "Action", + "in": "query", + "description": "Action to perform", + "required": true, + "schema": { + "type": "string", + "enum": ["GetBranches", "GetFileTree", "GetFileContents", "GetOrgs"] + } + }, + { + "name": "FullName", + "in": "query", + "description": "Full name of the repository (owner/repo)", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Branch", + "in": "query", + "description": "Branch name", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "Path", + "in": "query", + "description": "File path", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "GitHub action executed successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + }, + "post": { + "summary": "Execute GitHub Action (POST)", + "description": "Executes a GitHub action with POST method", + "tags": [ + "Community Repositories" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action" + ], + "properties": { + "Action": { + "type": "string", + "description": "Action to perform", + "enum": ["CreateRepo", "Search", "GetFileContents"] + }, + "Type": { + "type": "string", + "description": "Type of repository (user or org)", + "enum": ["user", "org", "repositories"] + }, + "Name": { + "type": "string", + "description": "Repository name" + }, + "Org": { + "type": "string", + "description": "Organization name" + }, + "Description": { + "type": "string", + "description": "Repository description" + }, + "Private": { + "type": "boolean", + "description": "Whether the repository is private" + }, + "Repository": { + "type": "string", + "description": "Repository name for search" + }, + "User": { + "type": "string", + "description": "User name for search" + }, + "SearchTerm": { + "type": "array", + "description": "Search terms", + "items": { + "type": "string" + } + }, + "FullName": { + "type": "string", + "description": "Full name of the repository (owner/repo)" + }, + "Path": { + "type": "string", + "description": "File path" + }, + "Branch": { + "type": "string", + "description": "Branch name" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "GitHub action executed successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ListCommunityRepos": { + "get": { + "summary": "List Community Repositories", + "description": "Retrieves a list of community repositories", + "tags": [ + "Community Repositories" + ], + "responses": { + "200": { + "description": "Community repositories retrieved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Repository name" + }, + "Owner": { + "type": "string", + "description": "Repository owner" + }, + "URL": { + "type": "string", + "description": "Repository URL" + }, + "Visibility": { + "type": "string", + "description": "Repository visibility (public/private)" + }, + "WriteAccess": { + "type": "boolean", + "description": "Whether the user has write access to the repository" + }, + "UploadBranch": { + "type": "string", + "description": "Branch used for uploads" + }, + "FullName": { + "type": "string", + "description": "Full name of the repository (owner/repo)" + }, + "DefaultBranch": { + "type": "string", + "description": "Default branch of the repository" + } + } + } + } + } + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/ExecCommunityRepo": { + "post": { + "summary": "Execute Community Repository Operation", + "description": "Executes an operation on a community repository", + "tags": [ + "Community Repositories" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "Action" + ], + "properties": { + "Action": { + "type": "string", + "description": "Action to perform", + "enum": ["Add", "Delete", "SetBranch", "ImportTemplate"] + }, + "Id": { + "type": "string", + "description": "Repository ID" + }, + "Branch": { + "type": "string", + "description": "Branch name" + }, + "FullName": { + "type": "string", + "description": "Full name of the repository (owner/repo)" + }, + "Path": { + "type": "string", + "description": "File path for template import" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Community repository operation executed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/AddScheduledItem": { + "post": { + "summary": "Add Scheduled Item", + "description": "Adds a new scheduled item", + "tags": [ + "Template Library" + ], + "parameters": [ + { + "name": "DisallowDuplicateName", + "in": "query", + "description": "Whether to disallow duplicate names", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "TenantFilter": { + "type": "string", + "description": "Tenant to apply the scheduled item to" + }, + "Name": { + "type": "string", + "description": "Name of the scheduled item" + }, + "Command": { + "type": "object", + "description": "Command to execute", + "properties": { + "value": { + "type": "string", + "description": "Command value" + } + } + }, + "Parameters": { + "type": "object", + "description": "Parameters for the command", + "properties": { + "TemplateSettings": { + "type": "object", + "description": "Template settings" + } + } + }, + "ScheduledTime": { + "type": "integer", + "description": "When the job is scheduled to run (Unix timestamp)" + }, + "Recurrence": { + "type": "object", + "description": "How often the job recurs", + "properties": { + "value": { + "type": "string", + "description": "Recurrence value" + } + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled item added successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StandardResponse" + } + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + } + } + } + } +} \ No newline at end of file diff --git a/UpdateTokens/function.json b/UpdateTokens/function.json deleted file mode 100644 index 828a2484ee7d..000000000000 --- a/UpdateTokens/function.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "bindings": [ - { - "name": "Timer", - "type": "timerTrigger", - "direction": "in", - "schedule": "0 0 0 * * 0" - } - ] -} \ No newline at end of file diff --git a/UpdateTokens/run.ps1 b/UpdateTokens/run.ps1 deleted file mode 100644 index abdf5e5bd9c1..000000000000 --- a/UpdateTokens/run.ps1 +++ /dev/null @@ -1,32 +0,0 @@ -# Input bindings are passed in via param block. -param($Timer) - -# Get the current universal time in the default string format. -$currentUTCtime = (Get-Date).ToUniversalTime() - -$Refreshtoken = (Get-GraphToken -ReturnRefresh $true).Refresh_token -$ExchangeRefreshtoken = (Get-GraphToken -AppID 'a0c73c16-a7e3-4564-9a95-2bdf47383716' -refreshtoken $ENV:ExchangeRefreshtoken -ReturnRefresh $true).Refresh_token - -$ResourceGroup = $ENV:Website_Resource_Group -$Subscription = ($ENV:WEBSITE_OWNER_NAME).split('+') | Select-Object -First 1 -if ($env:MSI_SECRET) { - Disable-AzContextAutosave -Scope Process | Out-Null - $AzSession = Connect-AzAccount -Identity -Subscription $Subscription -} -$KV = Get-AzKeyVault -SubscriptionID $Subscription -ResourceGroupName $ResourceGroup - -if ($Refreshtoken) { - Set-AzKeyVaultSecret -VaultName $kv.vaultname -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) -} -else { log-request -message "Could not update refresh token. Will try again in 7 days." -sev "CRITICAL" } -if ($ExchangeRefreshtoken) { - Set-AzKeyVaultSecret -VaultName $kv.vaultname -Name 'ExchangeRefreshToken' -SecretValue (ConvertTo-SecureString -String $ExchangeRefreshtoken -AsPlainText -Force) - log-request -message "System API: Updated Exchange Refresh token." -sev "info" -API "TokensUpdater" -} -else { - log-request -message "Could not update Exchange refresh token. Will try again in 7 days." -sev "CRITICAL" -API "TokensUpdater" -} - -# Write an information log with the current time. -Write-Host "PowerShell timer trigger function ran! TIME: $currentUTCtime" - diff --git a/cspell.json b/cspell.json new file mode 100644 index 000000000000..28a883c89c5e --- /dev/null +++ b/cspell.json @@ -0,0 +1,111 @@ +{ + "version": "0.2", + "ignorePaths": [], + "dictionaryDefinitions": [], + "dictionaries": [], + "words": [ + "adminapi", + "ADMS", + "AITM", + "Autotask", + "Bluetrait", + "cipp", + "CIPP", + "CIPP-API", + "CIPPCPV", + "CIPPGDAP", + "CIPPURL", + "Connectwise", + "CPIM", + "Datto", + "Dmarc", + "DMARC", + "endswith", + "entra", + "Entra", + "eula", + "exploitability", + "gdap", + "GDAP", + "IMAP", + "innererror", + "Intune", + "locationcipp", + "MAPI", + "MSCNAME", + "Multitenant", + "OBEE", + "passwordless", + "Passwordless", + "PSTN", + "rvdwegen", + "sharepoint", + "SharePoint", + "Sherweb", + "Signup", + "SSPR", + "Standardcal", + "Terrl", + "TNEF", + "weburl", + "winmail", + "Yubikey" + ], + "ignoreWords": [ + "ACOM", + "Sharepoint", + "tenantid", + "jnlp", + "wsfed", + "Imap", + "APINAME", + "CIPPAPI", + "WCSS", + "cacheusers", + "CIPPBPA", + "CIPPCA", + "MCAPI", + "skuid", + "BPOS", + "EPMID", + "CIPPSPO", + "CIPPTAP", + "donotchange", + "Addins", + "Helptext", + "ADDEDCOMPONENT", + "ADDEDDATE", + "POWERSHELLEQUIVALENT", + "RECOMMENDEDBY", + "UPDATECOMMENTBLOCK", + "DISABLEDFEATURES", + "pscustomobject", + "microsoftonline", + "mdo_safeattachments", + "mdo_highconfidencespamaction", + "mdo_highconfidencephishaction", + "mdo_phisspamacation", + "mdo_spam_notifications_only_for_admins", + "mdo_antiphishingpolicies", + "mdo_phishthresholdlevel", + "mdo_autoforwardingmode", + "mdo_blockmailforward", + "mdo_zapspam", + "mdo_zapphish", + "mdo_zapmalware", + "mdo_safedocuments", + "mdo_commonattachmentsfilter", + "mdo_safeattachmentpolicy", + "mdo_safelinksforemail", + "mdo_safelinksforOfficeApps", + "exo_storageproviderrestricted", + "exo_individualsharing", + "exo_outlookaddins", + "exo_mailboxaudit", + "exo_mailtipsenabled", + "mip_search_auditlog", + "onmicrosoft", + "MOERA" + ], + "import": [] +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000000..d9d93f4026cb --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,54 @@ +services: + azurite: + image: mcr.microsoft.com/azure-storage/azurite + container_name: azurite + ports: + - "10000:10000" + - "10001:10001" + - "10002:10002" + networks: + - func-network + environment: + - AZURITE_ACCOUNTS=devstoreaccount1:Eby8vdM02xNoBnZf6KgBVU4= + + cippapi: + build: + context: . + dockerfile: Dockerfile + environment: + - FUNCTIONS_WORKER_RUNTIME=${FUNCTIONS_WORKER_RUNTIME} + - FUNCTIONS_WORKER_RUNTIME_VERSION=${FUNCTIONS_WORKER_RUNTIME_VERSION} + - AzureWebJobsStorage=${AzureWebJobsStorage} + - DEV_SKIP_BPA_TIMER=${DEV_SKIP_BPA_TIMER} + - DEV_SKIP_DOMAIN_TIMER=${DEV_SKIP_DOMAIN_TIMER} + - FUNCTIONS_EXTENSION_VERSION=${FUNCTIONS_EXTENSION_VERSION} + - AzureWebJobs.BestPracticeAnalyser_OrchestrationStarterTimer.Disabled=true + - AzureWebJobs.Domain_OrchestrationStarterTimer.Disabled=true + - WEBSITE_HOSTNAME=cippapi + - NonLocalHostAzurite=${NonLocalHostAzurite} + depends_on: + - azurite + networks: + - func-network + deploy: + replicas: 3 + + nginx: + image: nginx:alpine + container_name: nginx + ports: + - "7071:80" + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + depends_on: + - cippapi + networks: + - func-network + healthcheck: + test: ["CMD", "curl", "-f", "http://cippapi:7071"] + interval: 30s + retries: 5 + +networks: + func-network: + driver: bridge diff --git a/host.json b/host.json index de8106baf7df..0e7bc9b1617d 100644 --- a/host.json +++ b/host.json @@ -1,16 +1,24 @@ { "version": "2.0", "managedDependency": { - "Enabled": true + "enabled": false }, "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", - "version": "[2.*, 3.0.0)" + "version": "[4.26.0, 5.0.0)" }, + "functionTimeout": "00:10:00", "extensions": { "durableTask": { - "maxConcurrentActivityFunctions": 2, - "maxConcurrentOrchestratorFunctions": 1 + "maxConcurrentActivityFunctions": 1, + "maxConcurrentOrchestratorFunctions": 5, + "tracing": { + "distributedTracingEnabled": false, + "version": "None" + }, + "defaultVersion": "8.8.2", + "versionMatchStrategy": "Strict", + "versionFailureStrategy": "Fail" } } -} \ No newline at end of file +} diff --git a/intuneCollection.json b/intuneCollection.json new file mode 100644 index 000000000000..1c6291fefa62 --- /dev/null +++ b/intuneCollection.json @@ -0,0 +1,232365 @@ +[ + { + "id": ".globalpreferences_.globalpreferences", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": ".globalpreferences_com.apple.autologout.autologoutdelay", + "displayName": "Auto Log Out Delay", + "options": null + }, + { + "id": ".globalpreferences_multiplesessionenabled", + "displayName": "Multiple Session Enabled", + "options": [ + { + "id": ".globalpreferences_multiplesessionenabled_false", + "displayName": "False", + "description": null + }, + { + "id": ".globalpreferences_multiplesessionenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetversionprefixmicrosoftedge", + "displayName": "Target version override", + "options": [ + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetversionprefixmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetversionprefixmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetversionprefixmicrosoftedge_part_targetversionprefix", + "displayName": "Target version (Device)", + "options": null + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_targetversionprefixmicrosoftedgebeta", + "displayName": "Target version override", + "options": [ + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_targetversionprefixmicrosoftedgebeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_targetversionprefixmicrosoftedgebeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_targetversionprefixmicrosoftedgebeta_part_targetversionprefix", + "displayName": "Target version (Device)", + "options": null + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_targetversionprefixmicrosoftedgecanary", + "displayName": "Target version override", + "options": [ + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_targetversionprefixmicrosoftedgecanary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_targetversionprefixmicrosoftedgecanary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_targetversionprefixmicrosoftedgecanary_part_targetversionprefix", + "displayName": "Target version (Device)", + "options": null + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_targetversionprefixmicrosoftedgedev", + "displayName": "Target version override", + "options": [ + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_targetversionprefixmicrosoftedgedev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_targetversionprefixmicrosoftedgedev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_targetversionprefixmicrosoftedgedev_part_targetversionprefix", + "displayName": "Target version (Device)", + "options": null + }, + { + "id": "3~policy~microsoft_edge_targetblankimpliesnoopener", + "displayName": "Do not set window.opener for links targeting _blank (User)", + "options": [ + { + "id": "3~policy~microsoft_edge_targetblankimpliesnoopener_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "3~policy~microsoft_edge_targetblankimpliesnoopener_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "3~policy~microsoft_edge~httpauthentication_basicauthoverhttpenabled", + "displayName": "Allow Basic authentication for HTTP (User)", + "options": [ + { + "id": "3~policy~microsoft_edge~httpauthentication_basicauthoverhttpenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "3~policy~microsoft_edge~httpauthentication_basicauthoverhttpenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "ade_activatecellulardata", + "displayName": "Carrier activation server URL", + "options": null + }, + { + "id": "ade_activatecellulardatachoices", + "displayName": "Activate cellular data", + "options": [ + { + "id": "ade_activatecellulardatachoices_0", + "displayName": "No", + "description": null + }, + { + "id": "ade_activatecellulardatachoices_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "ade_appledevicenametemplate", + "displayName": "Device name template", + "options": null + }, + { + "id": "ade_authenticationmethod", + "displayName": "Intune authentication method", + "options": [ + { + "id": "ade_authenticationmethod_2", + "displayName": "Setup Assistant with modern authentication", + "description": null + }, + { + "id": "ade_authenticationmethod_0", + "displayName": "Company Portal", + "description": null + } + ] + }, + { + "id": "ade_devicenametemplatechoices", + "displayName": "Apple device name template", + "options": [ + { + "id": "ade_devicenametemplatechoices_0", + "displayName": "No", + "description": null + }, + { + "id": "ade_devicenametemplatechoices_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "ade_lockedenrollment", + "displayName": "Locked enrollment", + "options": [ + { + "id": "ade_lockedenrollment_0", + "displayName": "No", + "description": null + }, + { + "id": "ade_lockedenrollment_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "ade_maximumcachedusers", + "displayName": "Maximum cached users", + "options": null + }, + { + "id": "ade_maximumsecondsafterscreenlockbeofrepasswordisrequired", + "displayName": "Maximum seconds after screen lock before password is required", + "options": null + }, + { + "id": "ade_maximumsecondsinactivityuntiltemporarysessionlogsout", + "displayName": "Maximum seconds of inactivity until temporary session logs out", + "options": null + }, + { + "id": "ade_maximumsecondsinactivityuntiluserlogsout", + "displayName": "Maximum seconds of inactivity until user session logs out", + "options": null + }, + { + "id": "ade_modernauth_awaitfinalconfiguration", + "displayName": "Await final configuration", + "options": [ + { + "id": "ade_modernauth_awaitfinalconfiguration_0", + "displayName": "No", + "description": null + }, + { + "id": "ade_modernauth_awaitfinalconfiguration_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "ade_requiresharedipadtemporarysessiononly", + "displayName": "Require Shared iPad temporary session only", + "options": [ + { + "id": "ade_requiresharedipadtemporarysessiononly_0", + "displayName": "Not configured", + "description": null + }, + { + "id": "ade_requiresharedipadtemporarysessiononly_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_androidmigration", + "displayName": "Android migration", + "options": [ + { + "id": "ade_setupassistant_androidmigration_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_androidmigration_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_appearance", + "displayName": "Appearance", + "options": [ + { + "id": "ade_setupassistant_appearance_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_appearance_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_appleid", + "displayName": "Apple ID", + "options": [ + { + "id": "ade_setupassistant_appleid_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_appleid_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_applepay", + "displayName": "Apple Pay", + "options": [ + { + "id": "ade_setupassistant_applepay_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_applepay_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_department", + "displayName": "Department", + "options": null + }, + { + "id": "ade_setupassistant_departmentphone", + "displayName": "Department phone", + "options": null + }, + { + "id": "ade_setupassistant_devicemigration", + "displayName": "Device to device migration", + "options": [ + { + "id": "ade_setupassistant_devicemigration_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_devicemigration_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_diagnosticsdata", + "displayName": "Diagnostics Data", + "options": [ + { + "id": "ade_setupassistant_diagnosticsdata_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_diagnosticsdata_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_displaytone", + "displayName": "Display Tone", + "options": [ + { + "id": "ade_setupassistant_displaytone_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_displaytone_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_getstarted", + "displayName": "Get Started", + "options": [ + { + "id": "ade_setupassistant_getstarted_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_getstarted_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_homebutton", + "displayName": "Home button", + "options": [ + { + "id": "ade_setupassistant_homebutton_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_homebutton_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_imessagefacetime", + "displayName": "iMessage and FaceTime", + "options": [ + { + "id": "ade_setupassistant_imessagefacetime_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_imessagefacetime_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_locationservices", + "displayName": "Location services", + "options": [ + { + "id": "ade_setupassistant_locationservices_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_locationservices_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_onboarding", + "displayName": "Onboarding", + "options": [ + { + "id": "ade_setupassistant_onboarding_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_onboarding_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_passcode", + "displayName": "Passcode", + "options": [ + { + "id": "ade_setupassistant_passcode_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_passcode_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_privacy", + "displayName": "Privacy", + "options": [ + { + "id": "ade_setupassistant_privacy_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_privacy_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_restore", + "displayName": "Restore", + "options": [ + { + "id": "ade_setupassistant_restore_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_restore_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_restorecompleted", + "displayName": "Restore completed", + "options": [ + { + "id": "ade_setupassistant_restorecompleted_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_restorecompleted_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_screentime", + "displayName": "Screen Time", + "options": [ + { + "id": "ade_setupassistant_screentime_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_screentime_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_simsetup", + "displayName": "SIM setup", + "options": [ + { + "id": "ade_setupassistant_simsetup_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_simsetup_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_siri", + "displayName": "Siri", + "options": [ + { + "id": "ade_setupassistant_siri_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_siri_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_softwareupdate", + "displayName": "Software Update", + "options": [ + { + "id": "ade_setupassistant_softwareupdate_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_softwareupdate_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_softwareupdatecompleted", + "displayName": "Software Update completed", + "options": [ + { + "id": "ade_setupassistant_softwareupdatecompleted_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_softwareupdatecompleted_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_termsandconditions", + "displayName": "Terms and conditions", + "options": [ + { + "id": "ade_setupassistant_termsandconditions_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_termsandconditions_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_termsofaddress", + "displayName": "Terms of Address", + "options": [ + { + "id": "ade_setupassistant_termsofaddress_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_termsofaddress_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_touchfaceid", + "displayName": "Touch ID and Face ID", + "options": [ + { + "id": "ade_setupassistant_touchfaceid_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_touchfaceid_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_watchmigration", + "displayName": "Watch migration", + "options": [ + { + "id": "ade_setupassistant_watchmigration_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_watchmigration_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_setupassistant_zoom", + "displayName": "Zoom", + "options": [ + { + "id": "ade_setupassistant_zoom_0", + "displayName": "Hide", + "description": null + }, + { + "id": "ade_setupassistant_zoom_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "ade_useraffinity", + "displayName": "User affinity", + "options": [ + { + "id": "ade_useraffinity_1", + "displayName": "Enroll with user affinity", + "description": null + }, + { + "id": "ade_useraffinity_0", + "displayName": "Enroll without user affinity", + "description": null + }, + { + "id": "ade_useraffinity_2", + "displayName": "Enroll with Microsoft Entra ID shared mode", + "description": null + }, + { + "id": "ade_useraffinity_3", + "displayName": "Enroll with Shared iPad", + "description": null + } + ] + }, + { + "id": "ade_useraffinity_awaitfinalconfiguration", + "displayName": "Await final configuration", + "options": [ + { + "id": "ade_useraffinity_awaitfinalconfiguration_0", + "displayName": "No", + "description": null + }, + { + "id": "ade_useraffinity_awaitfinalconfiguration_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "com.apple.airplay_allowlist", + "displayName": "Allow List", + "options": null + }, + { + "id": "com.apple.airplay_allowlist_item_deviceid", + "displayName": "Device ID", + "options": null + }, + { + "id": "com.apple.airplay_com.apple.airplay", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.airplay_passwords", + "displayName": "Password", + "options": null + }, + { + "id": "com.apple.airplay_passwords_item_deviceid", + "displayName": "Device ID", + "options": null + }, + { + "id": "com.apple.airplay_passwords_item_devicename", + "displayName": "Device Name", + "options": null + }, + { + "id": "com.apple.airplay_passwords_item_password", + "displayName": "Password", + "options": null + }, + { + "id": "com.apple.airprint_airprint", + "displayName": "Printers", + "options": null + }, + { + "id": "com.apple.airprint_airprint_item_forcetls", + "displayName": "Force TLS", + "options": [ + { + "id": "com.apple.airprint_airprint_item_forcetls_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.airprint_airprint_item_forcetls_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.airprint_airprint_item_ipaddress", + "displayName": "IP Address", + "options": null + }, + { + "id": "com.apple.airprint_airprint_item_port", + "displayName": "Port", + "options": null + }, + { + "id": "com.apple.airprint_airprint_item_resourcepath", + "displayName": "Resource Path", + "options": null + }, + { + "id": "com.apple.airprint_com.apple.airprint", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { "id": "com.apple.app.lock_app", "displayName": "App", "options": null }, + { + "id": "com.apple.app.lock_app_identifier", + "displayName": "App Identifier", + "options": null + }, + { + "id": "com.apple.app.lock_app_options", + "displayName": "Options", + "options": null + }, + { + "id": "com.apple.app.lock_app_options_disableautolock", + "displayName": "Disable Auto Lock", + "options": [ + { + "id": "com.apple.app.lock_app_options_disableautolock_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_disableautolock_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_disabledevicerotation", + "displayName": "Disable Device Rotation", + "options": [ + { + "id": "com.apple.app.lock_app_options_disabledevicerotation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_disabledevicerotation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_disableringerswitch", + "displayName": "Disable Ringer Switch", + "options": [ + { + "id": "com.apple.app.lock_app_options_disableringerswitch_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_disableringerswitch_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_disablesleepwakebutton", + "displayName": "Disable Sleep Wake Button", + "options": [ + { + "id": "com.apple.app.lock_app_options_disablesleepwakebutton_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_disablesleepwakebutton_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_disabletouch", + "displayName": "Disable Touch", + "options": [ + { + "id": "com.apple.app.lock_app_options_disabletouch_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_disabletouch_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_disablevolumebuttons", + "displayName": "Disable Volume Buttons", + "options": [ + { + "id": "com.apple.app.lock_app_options_disablevolumebuttons_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_disablevolumebuttons_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_enableassistivetouch", + "displayName": "Enable Assistive Touch", + "options": [ + { + "id": "com.apple.app.lock_app_options_enableassistivetouch_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_enableassistivetouch_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_enableinvertcolors", + "displayName": "Enable Invert Colors", + "options": [ + { + "id": "com.apple.app.lock_app_options_enableinvertcolors_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_enableinvertcolors_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_enablemonoaudio", + "displayName": "Enable Mono Audio", + "options": [ + { + "id": "com.apple.app.lock_app_options_enablemonoaudio_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_enablemonoaudio_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_enablespeakselection", + "displayName": "Enable Speak Selection", + "options": [ + { + "id": "com.apple.app.lock_app_options_enablespeakselection_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_enablespeakselection_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_enablevoicecontrol", + "displayName": "Enable Voice Control", + "options": [ + { + "id": "com.apple.app.lock_app_options_enablevoicecontrol_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_enablevoicecontrol_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_enablevoiceover", + "displayName": "Enable Voice Over", + "options": [ + { + "id": "com.apple.app.lock_app_options_enablevoiceover_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_enablevoiceover_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_options_enablezoom", + "displayName": "Enable Zoom", + "options": [ + { + "id": "com.apple.app.lock_app_options_enablezoom_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_options_enablezoom_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_userenabledoptions", + "displayName": "User Enabled Options", + "options": null + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_assistivetouch", + "displayName": "Assistive Touch", + "options": [ + { + "id": "com.apple.app.lock_app_userenabledoptions_assistivetouch_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_assistivetouch_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_invertcolors", + "displayName": "Invert Colors", + "options": [ + { + "id": "com.apple.app.lock_app_userenabledoptions_invertcolors_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_invertcolors_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_voicecontrol", + "displayName": "Voice Control", + "options": [ + { + "id": "com.apple.app.lock_app_userenabledoptions_voicecontrol_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_voicecontrol_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_voiceover", + "displayName": "Voice Over", + "options": [ + { + "id": "com.apple.app.lock_app_userenabledoptions_voiceover_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_voiceover_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_zoom", + "displayName": "Zoom", + "options": [ + { + "id": "com.apple.app.lock_app_userenabledoptions_zoom_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.app.lock_app_userenabledoptions_zoom_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.app.lock_com.apple.app.lock", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.applicationaccess.new_com.apple.applicationaccess.new", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.applicationaccess.new_familycontrolsenabled", + "displayName": "Family Controls Enabled", + "options": [ + { + "id": "com.apple.applicationaccess.new_familycontrolsenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess.new_familycontrolsenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowaccountmodification", + "displayName": "Allow Account Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowaccountmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowaccountmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowactivitycontinuation", + "displayName": "Allow Activity Continuation", + "options": [ + { + "id": "com.apple.applicationaccess_allowactivitycontinuation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowactivitycontinuation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowaddinggamecenterfriends", + "displayName": "Allow Adding Game Center Friends", + "options": [ + { + "id": "com.apple.applicationaccess_allowaddinggamecenterfriends_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowaddinggamecenterfriends_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowairdrop", + "displayName": "Allow AirDrop", + "options": [ + { + "id": "com.apple.applicationaccess_allowairdrop_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowairdrop_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowairplayincomingrequests", + "displayName": "Allow Air Play Incoming Requests", + "options": [ + { + "id": "com.apple.applicationaccess_allowairplayincomingrequests_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowairplayincomingrequests_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowairprint", + "displayName": "Allow AirPrint", + "options": [ + { + "id": "com.apple.applicationaccess_allowairprint_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowairprint_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowairprintcredentialsstorage", + "displayName": "Allow AirPrint Credentials Storage", + "options": [ + { + "id": "com.apple.applicationaccess_allowairprintcredentialsstorage_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowairprintcredentialsstorage_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowairprintibeacondiscovery", + "displayName": "Allow AirPrint iBeacon Discovery", + "options": [ + { + "id": "com.apple.applicationaccess_allowairprintibeacondiscovery_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowairprintibeacondiscovery_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowappcellulardatamodification", + "displayName": "Allow App Cellular Data Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowappcellulardatamodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowappcellulardatamodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowappclips", + "displayName": "Allow App Clips", + "options": [ + { + "id": "com.apple.applicationaccess_allowappclips_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowappclips_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowappinstallation", + "displayName": "Allow App Installation", + "options": [ + { + "id": "com.apple.applicationaccess_allowappinstallation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowappinstallation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowapplepersonalizedadvertising", + "displayName": "Allow Apple Personalized Advertising", + "options": [ + { + "id": "com.apple.applicationaccess_allowapplepersonalizedadvertising_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowapplepersonalizedadvertising_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowappremoval", + "displayName": "Allow App Removal", + "options": [ + { + "id": "com.apple.applicationaccess_allowappremoval_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowappremoval_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowappstobehidden", + "displayName": "Allow Apps To Be Hidden", + "options": [ + { + "id": "com.apple.applicationaccess_allowappstobehidden_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowappstobehidden_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowappstobelocked", + "displayName": "Allow Apps To Be Locked", + "options": [ + { + "id": "com.apple.applicationaccess_allowappstobelocked_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowappstobelocked_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowardremotemanagementmodification", + "displayName": "Allow ARD Remote Management Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowardremotemanagementmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowardremotemanagementmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowassistant", + "displayName": "Allow Assistant", + "options": [ + { + "id": "com.apple.applicationaccess_allowassistant_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowassistant_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowassistantusergeneratedcontent", + "displayName": "Allow Assistant User Generated Content", + "options": [ + { + "id": "com.apple.applicationaccess_allowassistantusergeneratedcontent_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowassistantusergeneratedcontent_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowassistantwhilelocked", + "displayName": "Allow Assistant While Locked", + "options": [ + { + "id": "com.apple.applicationaccess_allowassistantwhilelocked_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowassistantwhilelocked_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowautocorrection", + "displayName": "Allow Auto Correction", + "options": [ + { + "id": "com.apple.applicationaccess_allowautocorrection_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowautocorrection_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowautodim", + "displayName": "Allow Auto Dim", + "options": [ + { + "id": "com.apple.applicationaccess_allowautodim_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowautodim_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowautomaticappdownloads", + "displayName": "Allow Automatic App Downloads", + "options": [ + { + "id": "com.apple.applicationaccess_allowautomaticappdownloads_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowautomaticappdownloads_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowautounlock", + "displayName": "Allow Auto Unlock", + "options": [ + { + "id": "com.apple.applicationaccess_allowautounlock_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowautounlock_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowbluetoothmodification", + "displayName": "Allow Bluetooth Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowbluetoothmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowbluetoothmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowbluetoothsharingmodification", + "displayName": "Allow Bluetooth Sharing Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowbluetoothsharingmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowbluetoothsharingmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowbookstore", + "displayName": "Allow Bookstore", + "options": [ + { + "id": "com.apple.applicationaccess_allowbookstore_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowbookstore_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowbookstoreerotica", + "displayName": "Allow Bookstore Erotica", + "options": [ + { + "id": "com.apple.applicationaccess_allowbookstoreerotica_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowbookstoreerotica_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcallrecording", + "displayName": "Allow Call Recording", + "options": [ + { + "id": "com.apple.applicationaccess_allowcallrecording_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcallrecording_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcamera", + "displayName": "Allow Camera", + "options": [ + { + "id": "com.apple.applicationaccess_allowcamera_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcamera_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcellularplanmodification", + "displayName": "Allow Cellular Plan Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowcellularplanmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcellularplanmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowchat", + "displayName": "Allow Chat", + "options": [ + { + "id": "com.apple.applicationaccess_allowchat_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowchat_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudaddressbook", + "displayName": "Allow Cloud Address Book", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudaddressbook_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudaddressbook_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudbackup", + "displayName": "Allow Cloud Backup", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudbackup_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudbackup_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudbookmarks", + "displayName": "Allow Cloud Bookmarks", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudbookmarks_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudbookmarks_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudcalendar", + "displayName": "Allow Cloud Calendar", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudcalendar_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudcalendar_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowclouddesktopanddocuments", + "displayName": "Allow Cloud Desktop And Documents", + "options": [ + { + "id": "com.apple.applicationaccess_allowclouddesktopanddocuments_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowclouddesktopanddocuments_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowclouddocumentsync", + "displayName": "Allow Cloud Document Sync", + "options": [ + { + "id": "com.apple.applicationaccess_allowclouddocumentsync_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowclouddocumentsync_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudfreeform", + "displayName": "Allow Cloud Freeform", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudfreeform_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudfreeform_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudkeychainsync", + "displayName": "Allow Cloud Keychain Sync", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudkeychainsync_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudkeychainsync_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudmail", + "displayName": "Allow Cloud Mail", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudmail_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudmail_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudnotes", + "displayName": "Allow Cloud Notes", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudnotes_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudnotes_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudphotolibrary", + "displayName": "Allow Cloud Photo Library", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudphotolibrary_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudphotolibrary_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudprivaterelay", + "displayName": "Allow Cloud Private Relay", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudprivaterelay_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudprivaterelay_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcloudreminders", + "displayName": "Allow Cloud Reminders", + "options": [ + { + "id": "com.apple.applicationaccess_allowcloudreminders_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcloudreminders_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcontentcaching", + "displayName": "Allow Content Caching", + "options": [ + { + "id": "com.apple.applicationaccess_allowcontentcaching_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcontentcaching_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowcontinuouspathkeyboard", + "displayName": "Allow Continuous Path Keyboard", + "options": [ + { + "id": "com.apple.applicationaccess_allowcontinuouspathkeyboard_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowcontinuouspathkeyboard_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowdefaultbrowsermodification", + "displayName": "Allow Default Browser Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowdefaultbrowsermodification_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowdefaultbrowsermodification_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowdefinitionlookup", + "displayName": "Allow Definition Lookup", + "options": [ + { + "id": "com.apple.applicationaccess_allowdefinitionlookup_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowdefinitionlookup_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowdevicenamemodification", + "displayName": "Allow Device Name Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowdevicenamemodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowdevicenamemodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowdiagnosticsubmission", + "displayName": "Allow Diagnostic Submission", + "options": [ + { + "id": "com.apple.applicationaccess_allowdiagnosticsubmission_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowdiagnosticsubmission_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowdiagnosticsubmissionmodification", + "displayName": "Allow Diagnostic Submission Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowdiagnosticsubmissionmodification_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowdiagnosticsubmissionmodification_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowdictation", + "displayName": "Allow Dictation", + "options": [ + { + "id": "com.apple.applicationaccess_allowdictation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowdictation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowenablingrestrictions", + "displayName": "Allow Enabling Restrictions", + "options": [ + { + "id": "com.apple.applicationaccess_allowenablingrestrictions_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowenablingrestrictions_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowenterpriseapptrust", + "displayName": "Allow Enterprise App Trust", + "options": [ + { + "id": "com.apple.applicationaccess_allowenterpriseapptrust_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowenterpriseapptrust_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowenterprisebookbackup", + "displayName": "Allow Enterprise Book Backup", + "options": [ + { + "id": "com.apple.applicationaccess_allowenterprisebookbackup_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowenterprisebookbackup_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowenterprisebookmetadatasync", + "displayName": "Allow Enterprise Book Metadata Sync", + "options": [ + { + "id": "com.apple.applicationaccess_allowenterprisebookmetadatasync_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowenterprisebookmetadatasync_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowerasecontentandsettings", + "displayName": "Allow Erase Content And Settings", + "options": [ + { + "id": "com.apple.applicationaccess_allowerasecontentandsettings_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowerasecontentandsettings_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowesimmodification", + "displayName": "Allow ESIM Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowesimmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowesimmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowesimoutgoingtransfers", + "displayName": "allow ESIM Outgoing Transfers", + "options": [ + { + "id": "com.apple.applicationaccess_allowesimoutgoingtransfers_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowesimoutgoingtransfers_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowexplicitcontent", + "displayName": "Allow Explicit Content", + "options": [ + { + "id": "com.apple.applicationaccess_allowexplicitcontent_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowexplicitcontent_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowexternalintelligenceintegrations", + "displayName": "Allow External Intelligence Integrations", + "options": [ + { + "id": "com.apple.applicationaccess_allowexternalintelligenceintegrations_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowexternalintelligenceintegrations_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowexternalintelligenceintegrationssignin", + "displayName": "Allow External Intelligence Integrations Sign In", + "options": [ + { + "id": "com.apple.applicationaccess_allowexternalintelligenceintegrationssignin_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowexternalintelligenceintegrationssignin_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowfilesharingmodification", + "displayName": "Allow File Sharing Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowfilesharingmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowfilesharingmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowfilesnetworkdriveaccess", + "displayName": "Allow Files Network Drive Access", + "options": [ + { + "id": "com.apple.applicationaccess_allowfilesnetworkdriveaccess_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowfilesnetworkdriveaccess_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowfilesusbdriveaccess", + "displayName": "Allow Files USB Drive Access", + "options": [ + { + "id": "com.apple.applicationaccess_allowfilesusbdriveaccess_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowfilesusbdriveaccess_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowfindmydevice", + "displayName": "Allow Find My Device", + "options": [ + { + "id": "com.apple.applicationaccess_allowfindmydevice_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowfindmydevice_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowfindmyfriends", + "displayName": "Allow Find My Friends", + "options": [ + { + "id": "com.apple.applicationaccess_allowfindmyfriends_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowfindmyfriends_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowfindmyfriendsmodification", + "displayName": "Allow Find My Friends Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowfindmyfriendsmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowfindmyfriendsmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowfingerprintforunlock", + "displayName": "Allow Fingerprint For Unlock", + "options": [ + { + "id": "com.apple.applicationaccess_allowfingerprintforunlock_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowfingerprintforunlock_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowfingerprintmodification", + "displayName": "Allow Fingerprint Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowfingerprintmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowfingerprintmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowgamecenter", + "displayName": "Allow Game Center", + "options": [ + { + "id": "com.apple.applicationaccess_allowgamecenter_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowgamecenter_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowgenmoji", + "displayName": "allow Genmoji", + "options": [ + { + "id": "com.apple.applicationaccess_allowgenmoji_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowgenmoji_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowglobalbackgroundfetchwhenroaming", + "displayName": "Allow Global Background Fetch When Roaming", + "options": [ + { + "id": "com.apple.applicationaccess_allowglobalbackgroundfetchwhenroaming_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowglobalbackgroundfetchwhenroaming_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowhostpairing", + "displayName": "Allow Host Pairing", + "options": [ + { + "id": "com.apple.applicationaccess_allowhostpairing_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowhostpairing_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowimageplayground", + "displayName": "Allow Image Playground", + "options": [ + { + "id": "com.apple.applicationaccess_allowimageplayground_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowimageplayground_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowimagewand", + "displayName": "Allow Image Wand", + "options": [ + { + "id": "com.apple.applicationaccess_allowimagewand_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowimagewand_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowinapppurchases", + "displayName": "Allow In App Purchases", + "options": [ + { + "id": "com.apple.applicationaccess_allowinapppurchases_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowinapppurchases_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowinternetsharingmodification", + "displayName": "Allow Internet Sharing Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowinternetsharingmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowinternetsharingmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowiphonemirroring", + "displayName": "Allow iPhone Mirroring", + "options": [ + { + "id": "com.apple.applicationaccess_allowiphonemirroring_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowiphonemirroring_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowiphonewidgetsonmac", + "displayName": "Allow iPhone Widgets On Mac", + "options": [ + { + "id": "com.apple.applicationaccess_allowiphonewidgetsonmac_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowiphonewidgetsonmac_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowitunes", + "displayName": "Allow iTunes", + "options": [ + { + "id": "com.apple.applicationaccess_allowitunes_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowitunes_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowitunesfilesharing", + "displayName": "Allow iTunes File Sharing", + "options": [ + { + "id": "com.apple.applicationaccess_allowitunesfilesharing_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowitunesfilesharing_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowkeyboardshortcuts", + "displayName": "Allow Keyboard Shortcuts", + "options": [ + { + "id": "com.apple.applicationaccess_allowkeyboardshortcuts_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowkeyboardshortcuts_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowlistedappbundleids", + "displayName": "Allow Listed App Bundle IDs", + "options": null + }, + { + "id": "com.apple.applicationaccess_allowlivevoicemail", + "displayName": "Allow Live Voicemail", + "options": [ + { + "id": "com.apple.applicationaccess_allowlivevoicemail_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowlivevoicemail_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowlocalusercreation", + "displayName": "Allow Local User Creation", + "options": [ + { + "id": "com.apple.applicationaccess_allowlocalusercreation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowlocalusercreation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowlockscreencontrolcenter", + "displayName": "Allow Lock Screen Control Center", + "options": [ + { + "id": "com.apple.applicationaccess_allowlockscreencontrolcenter_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowlockscreencontrolcenter_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowlockscreennotificationsview", + "displayName": "Allow Lock Screen Notifications View", + "options": [ + { + "id": "com.apple.applicationaccess_allowlockscreennotificationsview_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowlockscreennotificationsview_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowlockscreentodayview", + "displayName": "Allow Lock Screen Today View", + "options": [ + { + "id": "com.apple.applicationaccess_allowlockscreentodayview_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowlockscreentodayview_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowmailprivacyprotection", + "displayName": "Allow Mail Privacy Protection", + "options": [ + { + "id": "com.apple.applicationaccess_allowmailprivacyprotection_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowmailprivacyprotection_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowmailsummary", + "displayName": "Allow Mail Summary", + "options": [ + { + "id": "com.apple.applicationaccess_allowmailsummary_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowmailsummary_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowmanagedappscloudsync", + "displayName": "Allow Managed Apps Cloud Sync", + "options": [ + { + "id": "com.apple.applicationaccess_allowmanagedappscloudsync_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowmanagedappscloudsync_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowmanagedtowriteunmanagedcontacts", + "displayName": "Allow Managed To Write Unmanaged Contacts", + "options": [ + { + "id": "com.apple.applicationaccess_allowmanagedtowriteunmanagedcontacts_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowmanagedtowriteunmanagedcontacts_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowmarketplaceappinstallation", + "displayName": "allow Marketplace App Installation", + "options": [ + { + "id": "com.apple.applicationaccess_allowmarketplaceappinstallation_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowmarketplaceappinstallation_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowmediasharingmodification", + "displayName": "Allow Media Sharing Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowmediasharingmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowmediasharingmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowmultiplayergaming", + "displayName": "Allow Multiplayer Gaming", + "options": [ + { + "id": "com.apple.applicationaccess_allowmultiplayergaming_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowmultiplayergaming_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowmusicservice", + "displayName": "Allow Music Service", + "options": [ + { + "id": "com.apple.applicationaccess_allowmusicservice_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowmusicservice_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allownews", + "displayName": "Allow News", + "options": [ + { + "id": "com.apple.applicationaccess_allownews_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allownews_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allownfc", + "displayName": "Allow NFC", + "options": [ + { + "id": "com.apple.applicationaccess_allownfc_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allownfc_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allownotificationsmodification", + "displayName": "Allow Notifications Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allownotificationsmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allownotificationsmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowopenfrommanagedtounmanaged", + "displayName": "Allow Open From Managed To Unmanaged", + "options": [ + { + "id": "com.apple.applicationaccess_allowopenfrommanagedtounmanaged_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowopenfrommanagedtounmanaged_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowopenfromunmanagedtomanaged", + "displayName": "Allow Open From Unmanaged To Managed", + "options": [ + { + "id": "com.apple.applicationaccess_allowopenfromunmanagedtomanaged_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowopenfromunmanagedtomanaged_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowotapkiupdates", + "displayName": "Allow OTAPKI Updates", + "options": [ + { + "id": "com.apple.applicationaccess_allowotapkiupdates_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowotapkiupdates_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpairedwatch", + "displayName": "Allow Paired Watch", + "options": [ + { + "id": "com.apple.applicationaccess_allowpairedwatch_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpairedwatch_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpassbookwhilelocked", + "displayName": "Allow Passbook While Locked", + "options": [ + { + "id": "com.apple.applicationaccess_allowpassbookwhilelocked_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpassbookwhilelocked_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpasscodemodification", + "displayName": "Allow Passcode Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowpasscodemodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpasscodemodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpasswordautofill", + "displayName": "Allow Password Auto Fill", + "options": [ + { + "id": "com.apple.applicationaccess_allowpasswordautofill_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpasswordautofill_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpasswordproximityrequests", + "displayName": "Allow Password Proximity Requests", + "options": [ + { + "id": "com.apple.applicationaccess_allowpasswordproximityrequests_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpasswordproximityrequests_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpasswordsharing", + "displayName": "Allow Password Sharing", + "options": [ + { + "id": "com.apple.applicationaccess_allowpasswordsharing_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpasswordsharing_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpersonalhotspotmodification", + "displayName": "Allow Personal Hotspot Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowpersonalhotspotmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpersonalhotspotmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpersonalizedhandwritingresults", + "displayName": "Allow Personalized Handwriting Results", + "options": [ + { + "id": "com.apple.applicationaccess_allowpersonalizedhandwritingresults_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpersonalizedhandwritingresults_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowphotostream", + "displayName": "Allow Photo Stream (Deprecated)", + "options": [ + { + "id": "com.apple.applicationaccess_allowphotostream_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowphotostream_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpodcasts", + "displayName": "Allow Podcasts", + "options": [ + { + "id": "com.apple.applicationaccess_allowpodcasts_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpodcasts_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowpredictivekeyboard", + "displayName": "Allow Predictive Keyboard", + "options": [ + { + "id": "com.apple.applicationaccess_allowpredictivekeyboard_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowpredictivekeyboard_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowprintersharingmodification", + "displayName": "Allow Printer Sharing Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowprintersharingmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowprintersharingmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowproximitysetuptonewdevice", + "displayName": "Allow Proximity Setup To New Device", + "options": [ + { + "id": "com.apple.applicationaccess_allowproximitysetuptonewdevice_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowproximitysetuptonewdevice_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowradioservice", + "displayName": "Allow Radio Service", + "options": [ + { + "id": "com.apple.applicationaccess_allowradioservice_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowradioservice_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowrapidsecurityresponseinstallation", + "displayName": "Allow Rapid Security Response Installation", + "options": [ + { + "id": "com.apple.applicationaccess_allowrapidsecurityresponseinstallation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowrapidsecurityresponseinstallation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowrapidsecurityresponseremoval", + "displayName": "Allow Rapid Security Response Removal", + "options": [ + { + "id": "com.apple.applicationaccess_allowrapidsecurityresponseremoval_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowrapidsecurityresponseremoval_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowrcsmessaging", + "displayName": "Allow RCS Messaging", + "options": [ + { + "id": "com.apple.applicationaccess_allowrcsmessaging_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowrcsmessaging_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowremoteappleeventsmodification", + "displayName": "Allow Remote Apple Events Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowremoteappleeventsmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowremoteappleeventsmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowremotescreenobservation", + "displayName": "Allow Remote Screen Observation", + "options": [ + { + "id": "com.apple.applicationaccess_allowremotescreenobservation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowremotescreenobservation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowsafari", + "displayName": "Allow Safari", + "options": [ + { + "id": "com.apple.applicationaccess_allowsafari_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowsafari_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowscreenshot", + "displayName": "Allow Screen Shot", + "options": [ + { + "id": "com.apple.applicationaccess_allowscreenshot_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowscreenshot_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowshareddevicetemporarysession", + "displayName": "Allow Shared Device Temporary Session", + "options": [ + { + "id": "com.apple.applicationaccess_allowshareddevicetemporarysession_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowshareddevicetemporarysession_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowsharedstream", + "displayName": "Allow Shared Stream", + "options": [ + { + "id": "com.apple.applicationaccess_allowsharedstream_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowsharedstream_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowspellcheck", + "displayName": "Allow Spell Check", + "options": [ + { + "id": "com.apple.applicationaccess_allowspellcheck_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowspellcheck_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowspotlightinternetresults", + "displayName": "Allow Spotlight Internet Results", + "options": [ + { + "id": "com.apple.applicationaccess_allowspotlightinternetresults_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowspotlightinternetresults_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowstartupdiskmodification", + "displayName": "Allow Startup Disk Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowstartupdiskmodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowstartupdiskmodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowsystemappremoval", + "displayName": "Allow System App Removal", + "options": [ + { + "id": "com.apple.applicationaccess_allowsystemappremoval_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowsystemappremoval_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowtimemachinebackup", + "displayName": "Allow Time Machine Backup", + "options": [ + { + "id": "com.apple.applicationaccess_allowtimemachinebackup_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowtimemachinebackup_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowuiappinstallation", + "displayName": "Allow UI App Installation", + "options": [ + { + "id": "com.apple.applicationaccess_allowuiappinstallation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowuiappinstallation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowuiconfigurationprofileinstallation", + "displayName": "Allow UI Configuration Profile Installation", + "options": [ + { + "id": "com.apple.applicationaccess_allowuiconfigurationprofileinstallation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowuiconfigurationprofileinstallation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowuniversalcontrol", + "displayName": "Allow Universal Control", + "options": [ + { + "id": "com.apple.applicationaccess_allowuniversalcontrol_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowuniversalcontrol_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowunmanagedtoreadmanagedcontacts", + "displayName": "Allow Unmanaged To Read Managed Contacts", + "options": [ + { + "id": "com.apple.applicationaccess_allowunmanagedtoreadmanagedcontacts_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowunmanagedtoreadmanagedcontacts_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowunpairedexternalboottorecovery", + "displayName": "Allow Unpaired External Boot To Recovery", + "options": [ + { + "id": "com.apple.applicationaccess_allowunpairedexternalboottorecovery_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowunpairedexternalboottorecovery_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowuntrustedtlsprompt", + "displayName": "Allow Untrusted TLS Prompt", + "options": [ + { + "id": "com.apple.applicationaccess_allowuntrustedtlsprompt_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowuntrustedtlsprompt_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowusbrestrictedmode", + "displayName": "Allow USB Restricted Mode", + "options": [ + { + "id": "com.apple.applicationaccess_allowusbrestrictedmode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowusbrestrictedmode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowvideoconferencing", + "displayName": "Allow Video Conferencing", + "options": [ + { + "id": "com.apple.applicationaccess_allowvideoconferencing_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowvideoconferencing_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowvideoconferencingremotecontrol", + "displayName": "Allow Video Conferencing Remote Control (Deprecated)", + "options": [ + { + "id": "com.apple.applicationaccess_allowvideoconferencingremotecontrol_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowvideoconferencingremotecontrol_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowvoicedialing", + "displayName": "Allow Voice Dialing (Deprecated)", + "options": [ + { + "id": "com.apple.applicationaccess_allowvoicedialing_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowvoicedialing_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowvpncreation", + "displayName": "Allow VPN Creation", + "options": [ + { + "id": "com.apple.applicationaccess_allowvpncreation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowvpncreation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowwallpapermodification", + "displayName": "Allow Wallpaper Modification", + "options": [ + { + "id": "com.apple.applicationaccess_allowwallpapermodification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowwallpapermodification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowwebdistributionappinstallation", + "displayName": "allow Web Distribution App Installation", + "options": [ + { + "id": "com.apple.applicationaccess_allowwebdistributionappinstallation_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowwebdistributionappinstallation_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_allowwritingtools", + "displayName": "Allow Writing Tools", + "options": [ + { + "id": "com.apple.applicationaccess_allowwritingtools_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_allowwritingtools_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_autonomoussingleappmodepermittedappids", + "displayName": "Autonomous Single App Mode Permitted App IDs", + "options": null + }, + { + "id": "com.apple.applicationaccess_blockedappbundleids", + "displayName": "Blocked App Bundle IDs", + "options": null + }, + { + "id": "com.apple.applicationaccess_com.apple.applicationaccess", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.applicationaccess_enforcedfingerprinttimeout", + "displayName": "Enforced Fingerprint Timeout", + "options": null + }, + { + "id": "com.apple.applicationaccess_enforcedsoftwareupdatedelay", + "displayName": "Enforced Software Update Delay", + "options": null + }, + { + "id": "com.apple.applicationaccess_enforcedsoftwareupdatemajorosdeferredinstalldelay", + "displayName": "Enforced Software Update Major OS Deferred Install Delay", + "options": null + }, + { + "id": "com.apple.applicationaccess_enforcedsoftwareupdateminorosdeferredinstalldelay", + "displayName": "Enforced Software Update Minor OS Deferred Install Delay", + "options": null + }, + { + "id": "com.apple.applicationaccess_enforcedsoftwareupdatenonosdeferredinstalldelay", + "displayName": "Enforced Software Update Non OS Deferred Install Delay", + "options": null + }, + { + "id": "com.apple.applicationaccess_forceairdropunmanaged", + "displayName": "Force AirDrop Unmanaged", + "options": [ + { + "id": "com.apple.applicationaccess_forceairdropunmanaged_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceairdropunmanaged_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceairplayoutgoingrequestspairingpassword", + "displayName": "Force AirPlay Outgoing Requests Pairing Password", + "options": [ + { + "id": "com.apple.applicationaccess_forceairplayoutgoingrequestspairingpassword_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceairplayoutgoingrequestspairingpassword_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceairprinttrustedtlsrequirement", + "displayName": "Force AirPrint Trusted TLS Requirement", + "options": [ + { + "id": "com.apple.applicationaccess_forceairprinttrustedtlsrequirement_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceairprinttrustedtlsrequirement_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceassistantprofanityfilter", + "displayName": "Force Assistant Profanity Filter", + "options": [ + { + "id": "com.apple.applicationaccess_forceassistantprofanityfilter_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceassistantprofanityfilter_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceauthenticationbeforeautofill", + "displayName": "Force Authentication Before Auto Fill", + "options": [ + { + "id": "com.apple.applicationaccess_forceauthenticationbeforeautofill_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceauthenticationbeforeautofill_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceautomaticdateandtime", + "displayName": "Force Automatic Date And Time", + "options": [ + { + "id": "com.apple.applicationaccess_forceautomaticdateandtime_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceautomaticdateandtime_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcebypassscreencapturealert", + "displayName": "Force Bypass Screen Capture Alert", + "options": [ + { + "id": "com.apple.applicationaccess_forcebypassscreencapturealert_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcebypassscreencapturealert_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceclassroomautomaticallyjoinclasses", + "displayName": "Force Classroom Automatically Join Classes", + "options": [ + { + "id": "com.apple.applicationaccess_forceclassroomautomaticallyjoinclasses_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceclassroomautomaticallyjoinclasses_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceclassroomrequestpermissiontoleaveclasses", + "displayName": "Force Classroom Request Permission To Leave Classes", + "options": [ + { + "id": "com.apple.applicationaccess_forceclassroomrequestpermissiontoleaveclasses_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceclassroomrequestpermissiontoleaveclasses_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceclassroomunpromptedappanddevicelock", + "displayName": "Force Classroom Unprompted App And Device Lock", + "options": [ + { + "id": "com.apple.applicationaccess_forceclassroomunpromptedappanddevicelock_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceclassroomunpromptedappanddevicelock_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceclassroomunpromptedscreenobservation", + "displayName": "Force Classroom Unprompted Screen Observation", + "options": [ + { + "id": "com.apple.applicationaccess_forceclassroomunpromptedscreenobservation_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceclassroomunpromptedscreenobservation_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcedelayedappsoftwareupdates", + "displayName": "Force Delayed App Software Updates", + "options": [ + { + "id": "com.apple.applicationaccess_forcedelayedappsoftwareupdates_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcedelayedappsoftwareupdates_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcedelayedmajorsoftwareupdates", + "displayName": "Force Delayed Major Software Updates", + "options": [ + { + "id": "com.apple.applicationaccess_forcedelayedmajorsoftwareupdates_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcedelayedmajorsoftwareupdates_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcedelayedsoftwareupdates", + "displayName": "Force Delayed Software Updates", + "options": [ + { + "id": "com.apple.applicationaccess_forcedelayedsoftwareupdates_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcedelayedsoftwareupdates_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceencryptedbackup", + "displayName": "Force Encrypted Backup", + "options": [ + { + "id": "com.apple.applicationaccess_forceencryptedbackup_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceencryptedbackup_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceitunesstorepasswordentry", + "displayName": "Force iTunes Store Password Entry (Deprecated)", + "options": [ + { + "id": "com.apple.applicationaccess_forceitunesstorepasswordentry_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceitunesstorepasswordentry_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcelimitadtracking", + "displayName": "Force Limit Ad Tracking", + "options": [ + { + "id": "com.apple.applicationaccess_forcelimitadtracking_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcelimitadtracking_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceondeviceonlydictation", + "displayName": "Force On Device Only Dictation", + "options": [ + { + "id": "com.apple.applicationaccess_forceondeviceonlydictation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceondeviceonlydictation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forceondeviceonlytranslation", + "displayName": "Force On Device Only Translation", + "options": [ + { + "id": "com.apple.applicationaccess_forceondeviceonlytranslation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forceondeviceonlytranslation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcepreserveesimonerase", + "displayName": "Force Preserve ESIM On Erase", + "options": [ + { + "id": "com.apple.applicationaccess_forcepreserveesimonerase_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcepreserveesimonerase_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcewatchwristdetection", + "displayName": "Force Watch Wrist Detection", + "options": [ + { + "id": "com.apple.applicationaccess_forcewatchwristdetection_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcewatchwristdetection_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcewifipoweron", + "displayName": "Force WiFi Power On", + "options": [ + { + "id": "com.apple.applicationaccess_forcewifipoweron_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcewifipoweron_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_forcewifitoallowednetworksonly", + "displayName": "Force WiFi To Allowed Networks Only", + "options": [ + { + "id": "com.apple.applicationaccess_forcewifitoallowednetworksonly_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_forcewifitoallowednetworksonly_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsau", + "displayName": "Rating Apps - Australia", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsau_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsau_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsau_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsau_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsau_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsau_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsca", + "displayName": "Rating Apps - Canada", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsca_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsca_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsca_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsca_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsca_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsca_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsde", + "displayName": "Rating Apps - Germany", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsde_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsde_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsde_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsde_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsde_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsde_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsfr", + "displayName": "Rating Apps - France", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsfr_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsfr_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsfr_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsfr_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsfr_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsfr_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsgb", + "displayName": "Rating Apps - Great Britain", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsgb_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsgb_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsgb_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsgb_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsgb_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsgb_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsie", + "displayName": "Rating Apps - Ireland", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsie_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsie_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsie_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsie_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsie_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsie_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsjp", + "displayName": "Rating Apps - Japan", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsjp_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsjp_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsjp_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsjp_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsjp_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsjp_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsnz", + "displayName": "Rating Apps - New Zealand", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsnz_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsnz_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsnz_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsnz_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsnz_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsnz_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingappsus", + "displayName": "Rating Apps - United States", + "options": [ + { + "id": "com.apple.applicationaccess_ratingappsus_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsus_1", + "displayName": "4+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsus_2", + "displayName": "9+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsus_3", + "displayName": "12+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsus_4", + "displayName": "17+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingappsus_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesau", + "displayName": "Rating Movies - Australia", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesau_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesau_1", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesau_2", + "displayName": "PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesau_3", + "displayName": "M", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesau_4", + "displayName": "MA15+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesau_5", + "displayName": "R18+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesau_6", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesca", + "displayName": "Rating Movies - Canada", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesca_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesca_1", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesca_2", + "displayName": "PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesca_3", + "displayName": "14A", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesca_4", + "displayName": "18A", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesca_5", + "displayName": "R", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesca_6", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesde", + "displayName": "Rating Movies - Germany", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesde_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesde_1", + "displayName": "Ab 0 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesde_2", + "displayName": "Ab 6 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesde_3", + "displayName": "Ab 12 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesde_4", + "displayName": "Ab 16 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesde_5", + "displayName": "Ab 18 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesde_6", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesfr", + "displayName": "Rating Movies - France", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesfr_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesfr_2", + "displayName": "10", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesfr_3", + "displayName": "12", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesfr_4", + "displayName": "16", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesfr_5", + "displayName": "18", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesfr_6", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb", + "displayName": "Rating Movies - Great Britain", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesgb_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb_1", + "displayName": "U", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb_2", + "displayName": "UC", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb_3", + "displayName": "PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb_4", + "displayName": "12", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb_5", + "displayName": "12A", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb_6", + "displayName": "15", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb_7", + "displayName": "18", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesgb_8", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesie", + "displayName": "Rating Movies - Ireland", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesie_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesie_1", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesie_2", + "displayName": "PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesie_3", + "displayName": "12A", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesie_4", + "displayName": "15A", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesie_5", + "displayName": "16", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesie_6", + "displayName": "18", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesie_7", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesjp", + "displayName": "Rating Movies - Japan", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesjp_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesjp_1", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesjp_2", + "displayName": "PG-12", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesjp_3", + "displayName": "R15+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesjp_4", + "displayName": "R18+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesjp_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz", + "displayName": "Rating Movies - New Zealand", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesnz_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_1", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_2", + "displayName": "PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_3", + "displayName": "M", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_4", + "displayName": "R13", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_5", + "displayName": "R15", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_6", + "displayName": "R16", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_7", + "displayName": "R18", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_8", + "displayName": "R", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_9", + "displayName": "RP16", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesnz_10", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingmoviesus", + "displayName": "Rating Movies - United States", + "options": [ + { + "id": "com.apple.applicationaccess_ratingmoviesus_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesus_1", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesus_2", + "displayName": "PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesus_3", + "displayName": "PG-13", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesus_4", + "displayName": "R", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesus_5", + "displayName": "NC-17", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingmoviesus_6", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingregion", + "displayName": "Rating Region", + "options": [ + { + "id": "com.apple.applicationaccess_ratingregion_0", + "displayName": "United States", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingregion_1", + "displayName": "Australia", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingregion_2", + "displayName": "Canada", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingregion_3", + "displayName": "Germany", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingregion_4", + "displayName": "France", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingregion_5", + "displayName": "Ireland", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingregion_6", + "displayName": "Japan", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingregion_7", + "displayName": "New Zealand", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingregion_8", + "displayName": "Great Britain", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau", + "displayName": "Rating TV Shows - Australia", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsau_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_1", + "displayName": "P", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_2", + "displayName": "C", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_3", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_4", + "displayName": "PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_5", + "displayName": "M", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_6", + "displayName": "MA15+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_7", + "displayName": "AV15+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_8", + "displayName": "All", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsau_9", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsca", + "displayName": "Rating TV Shows - Canada", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsca_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsca_1", + "displayName": "C", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsca_2", + "displayName": "C8", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsca_3", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsca_4", + "displayName": "PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsca_5", + "displayName": "14+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsca_6", + "displayName": "18+", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsca_7", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsde", + "displayName": "Rating TV Shows - Germany", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsde_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsde_1", + "displayName": "Ab 0 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsde_2", + "displayName": "Ab 6 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsde_3", + "displayName": "Ab 12 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsde_4", + "displayName": "Ab 16 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsde_5", + "displayName": "Ab 18 Jahren", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsde_7", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsfr", + "displayName": "Rating TV Shows - France", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsfr_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsfr_1", + "displayName": "-10", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsfr_2", + "displayName": "-12", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsfr_3", + "displayName": "-16", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsfr_4", + "displayName": "-18", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsfr_5", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsgb", + "displayName": "Rating TV Shows - Great Britain", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsgb_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsgb_1", + "displayName": "Caution", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsgb_2", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsie", + "displayName": "Rating TV Shows - Ireland", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsie_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsie_1", + "displayName": "GA", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsie_2", + "displayName": "CH", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsie_3", + "displayName": "YA", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsie_4", + "displayName": "PS", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsie_5", + "displayName": "MA", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsie_6", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsjp", + "displayName": "Rating TV Shows - Japan", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsjp_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsjp_1", + "displayName": "Explicit Allowed", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsjp_2", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsnz", + "displayName": "Rating TV Shows - New Zealand", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsnz_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsnz_1", + "displayName": "G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsnz_2", + "displayName": "PGR", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsnz_3", + "displayName": "AO", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsnz_4", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsus", + "displayName": "Rating TV Shows - United States", + "options": [ + { + "id": "com.apple.applicationaccess_ratingtvshowsus_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsus_1", + "displayName": "TV-Y", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsus_2", + "displayName": "TV-Y7", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsus_3", + "displayName": "TV-G", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsus_4", + "displayName": "TV-PG", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsus_5", + "displayName": "TV-14", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsus_6", + "displayName": "TB-MA", + "description": null + }, + { + "id": "com.apple.applicationaccess_ratingtvshowsus_7", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_requiremanagedpasteboard", + "displayName": "Require Managed Pasteboard", + "options": [ + { + "id": "com.apple.applicationaccess_requiremanagedpasteboard_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_requiremanagedpasteboard_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_safariacceptcookies", + "displayName": "Safari Accept Cookies", + "options": [ + { + "id": "com.apple.applicationaccess_safariacceptcookies_0", + "displayName": "Prevent Cross-Site Tracking and Block All Cookies are enabled and the user canʼt disable either setting.", + "description": null + }, + { + "id": "com.apple.applicationaccess_safariacceptcookies_1", + "displayName": "Prevent Cross-Site Tracking is enabled and the user canʼt disable it. Block All Cookies is not enabled, although the user can enable it.", + "description": null + }, + { + "id": "com.apple.applicationaccess_safariacceptcookies_2", + "displayName": "Prevent Cross-Site Tracking is enabled and Block All Cookies is not enabled. The user can toggle either setting.", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_safariallowautofill", + "displayName": "Safari Allow Autofill", + "options": [ + { + "id": "com.apple.applicationaccess_safariallowautofill_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_safariallowautofill_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_safariallowjavascript", + "displayName": "Safari Allow Java Script", + "options": [ + { + "id": "com.apple.applicationaccess_safariallowjavascript_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_safariallowjavascript_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_safariallowpopups", + "displayName": "Safari Allow Popups", + "options": [ + { + "id": "com.apple.applicationaccess_safariallowpopups_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_safariallowpopups_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.applicationaccess_safariforcefraudwarning", + "displayName": "Safari Force Fraud Warning", + "options": [ + { + "id": "com.apple.applicationaccess_safariforcefraudwarning_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.applicationaccess_safariforcefraudwarning_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.appstore_com.apple.appstore", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.appstore_disablesoftwareupdatenotifications", + "displayName": "Disable Software Update Notifications", + "options": [ + { + "id": "com.apple.appstore_disablesoftwareupdatenotifications_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.appstore_disablesoftwareupdatenotifications_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.appstore_restrict-store-disable-app-adoption", + "displayName": "restrict-store-disable-app-adoption", + "options": [ + { + "id": "com.apple.appstore_restrict-store-disable-app-adoption_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.appstore_restrict-store-disable-app-adoption_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.appstore_restrict-store-softwareupdate-only", + "displayName": "Restrict Store Software Update Only", + "options": [ + { + "id": "com.apple.appstore_restrict-store-softwareupdate-only_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.appstore_restrict-store-softwareupdate-only_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.asam_allowedapplications", + "displayName": "Allowed Applications", + "options": null + }, + { + "id": "com.apple.asam_allowedapplications_item_bundleidentifier", + "displayName": "Bundle Identifier", + "options": null + }, + { + "id": "com.apple.asam_allowedapplications_item_teamidentifier", + "displayName": "Team Identifier", + "options": null + }, + { + "id": "com.apple.asam_com.apple.asam", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.assetcache.managed_allowcachedelete", + "displayName": "Allow Cache Delete", + "options": [ + { + "id": "com.apple.assetcache.managed_allowcachedelete_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_allowcachedelete_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_allowpersonalcaching", + "displayName": "Allow Personal Caching", + "options": [ + { + "id": "com.apple.assetcache.managed_allowpersonalcaching_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_allowpersonalcaching_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_allowsharedcaching", + "displayName": "Allow Shared Caching", + "options": [ + { + "id": "com.apple.assetcache.managed_allowsharedcaching_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_allowsharedcaching_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_autoactivation", + "displayName": "Auto Activation", + "options": [ + { + "id": "com.apple.assetcache.managed_autoactivation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_autoactivation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_autoenabletetheredcaching", + "displayName": "Auto Enable Tethered Caching", + "options": [ + { + "id": "com.apple.assetcache.managed_autoenabletetheredcaching_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_autoenabletetheredcaching_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_cachelimit", + "displayName": "Cache Limit", + "options": null + }, + { + "id": "com.apple.assetcache.managed_com.apple.assetcache.managed", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.assetcache.managed_datapath", + "displayName": "Data Path", + "options": null + }, + { + "id": "com.apple.assetcache.managed_denytetheredcaching", + "displayName": "Deny Tethered Caching", + "options": [ + { + "id": "com.apple.assetcache.managed_denytetheredcaching_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_denytetheredcaching_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_displayalerts", + "displayName": "Display Alerts", + "options": [ + { + "id": "com.apple.assetcache.managed_displayalerts_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_displayalerts_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_keepawake", + "displayName": "Keep Awake", + "options": [ + { + "id": "com.apple.assetcache.managed_keepawake_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_keepawake_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_listenranges", + "displayName": "Listen Ranges", + "options": null + }, + { + "id": "com.apple.assetcache.managed_listenranges_item_first", + "displayName": "First", + "options": null + }, + { + "id": "com.apple.assetcache.managed_listenranges_item_last", + "displayName": "Last", + "options": null + }, + { + "id": "com.apple.assetcache.managed_listenranges_item_type", + "displayName": "IP Address Type", + "options": [ + { + "id": "com.apple.assetcache.managed_listenranges_item_type_0", + "displayName": "IPv4", + "description": null + }, + { + "id": "com.apple.assetcache.managed_listenranges_item_type_1", + "displayName": "IPv6", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_listenrangesonly", + "displayName": "Listen Ranges Only", + "options": [ + { + "id": "com.apple.assetcache.managed_listenrangesonly_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_listenrangesonly_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_listenwithpeersandparents", + "displayName": "Listen With Peers And Parents", + "options": [ + { + "id": "com.apple.assetcache.managed_listenwithpeersandparents_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_listenwithpeersandparents_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_localsubnetsonly", + "displayName": "Local Subnets Only", + "options": [ + { + "id": "com.apple.assetcache.managed_localsubnetsonly_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_localsubnetsonly_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_logclientidentity", + "displayName": "Log Client Identity", + "options": [ + { + "id": "com.apple.assetcache.managed_logclientidentity_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_logclientidentity_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_parents", + "displayName": "Parents", + "options": null + }, + { + "id": "com.apple.assetcache.managed_parentselectionpolicy", + "displayName": "Parent Selection Policy", + "options": [ + { + "id": "com.apple.assetcache.managed_parentselectionpolicy_0", + "displayName": "first-available", + "description": null + }, + { + "id": "com.apple.assetcache.managed_parentselectionpolicy_1", + "displayName": "url-path-hash", + "description": null + }, + { + "id": "com.apple.assetcache.managed_parentselectionpolicy_2", + "displayName": "random", + "description": null + }, + { + "id": "com.apple.assetcache.managed_parentselectionpolicy_3", + "displayName": "round-robin", + "description": null + }, + { + "id": "com.apple.assetcache.managed_parentselectionpolicy_4", + "displayName": "sticky-available", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_peerfilterranges", + "displayName": "Peer Filter Ranges", + "options": null + }, + { + "id": "com.apple.assetcache.managed_peerfilterranges_item_first", + "displayName": "First", + "options": null + }, + { + "id": "com.apple.assetcache.managed_peerfilterranges_item_last", + "displayName": "Last", + "options": null + }, + { + "id": "com.apple.assetcache.managed_peerfilterranges_item_type", + "displayName": "IP Address Type", + "options": [ + { + "id": "com.apple.assetcache.managed_peerfilterranges_item_type_0", + "displayName": "IPv4", + "description": null + }, + { + "id": "com.apple.assetcache.managed_peerfilterranges_item_type_1", + "displayName": "IPv6", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_peerlistenranges", + "displayName": "Peer Listen Ranges", + "options": null + }, + { + "id": "com.apple.assetcache.managed_peerlistenranges_item_first", + "displayName": "First", + "options": null + }, + { + "id": "com.apple.assetcache.managed_peerlistenranges_item_last", + "displayName": "Last", + "options": null + }, + { + "id": "com.apple.assetcache.managed_peerlistenranges_item_type", + "displayName": "IP Address Type", + "options": [ + { + "id": "com.apple.assetcache.managed_peerlistenranges_item_type_0", + "displayName": "IPv4", + "description": null + }, + { + "id": "com.apple.assetcache.managed_peerlistenranges_item_type_1", + "displayName": "IPv6", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_peerlocalsubnetsonly", + "displayName": "Peer Local Subnets Only", + "options": [ + { + "id": "com.apple.assetcache.managed_peerlocalsubnetsonly_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.assetcache.managed_peerlocalsubnetsonly_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.assetcache.managed_port", + "displayName": "Port", + "options": null + }, + { + "id": "com.apple.assetcache.managed_publicranges", + "displayName": "Public Ranges", + "options": null + }, + { + "id": "com.apple.assetcache.managed_publicranges_item_first", + "displayName": "First", + "options": null + }, + { + "id": "com.apple.assetcache.managed_publicranges_item_last", + "displayName": "Last", + "options": null + }, + { + "id": "com.apple.assetcache.managed_publicranges_item_type", + "displayName": "IP Address Type", + "options": [ + { + "id": "com.apple.assetcache.managed_publicranges_item_type_0", + "displayName": "IPv4", + "description": null + }, + { + "id": "com.apple.assetcache.managed_publicranges_item_type_1", + "displayName": "IPv6", + "description": null + } + ] + }, + { + "id": "com.apple.associated-domains_com.apple.associated-domains", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.associated-domains_configuration", + "displayName": "Configuration", + "options": null + }, + { + "id": "com.apple.associated-domains_configuration_item_applicationidentifier", + "displayName": "Application Identifier", + "options": null + }, + { + "id": "com.apple.associated-domains_configuration_item_associateddomains", + "displayName": "Associated Domains", + "options": null + }, + { + "id": "com.apple.associated-domains_configuration_item_enabledirectdownloads", + "displayName": "Enable Direct Downloads", + "options": [ + { + "id": "com.apple.associated-domains_configuration_item_enabledirectdownloads_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.associated-domains_configuration_item_enabledirectdownloads_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.caldav.account_caldavaccountdescription", + "displayName": "Cal DAV Account Description", + "options": null + }, + { + "id": "com.apple.caldav.account_caldavhostname", + "displayName": "Cal DAV Host Name", + "options": null + }, + { + "id": "com.apple.caldav.account_caldavpassword", + "displayName": "Cal DAV Password", + "options": null + }, + { + "id": "com.apple.caldav.account_caldavport", + "displayName": "Cal DAV Port", + "options": null + }, + { + "id": "com.apple.caldav.account_caldavprincipalurl", + "displayName": "Cal DAV Principal URL", + "options": null + }, + { + "id": "com.apple.caldav.account_caldavusername", + "displayName": "Cal DAV Username", + "options": null + }, + { + "id": "com.apple.caldav.account_caldavusessl", + "displayName": "Cal DAV Use SSL", + "options": [ + { + "id": "com.apple.caldav.account_caldavusessl_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.caldav.account_caldavusessl_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.caldav.account_com.apple.caldav.account", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.carddav.account_carddavaccountdescription", + "displayName": "Card DAV Account Description", + "options": null + }, + { + "id": "com.apple.carddav.account_carddavhostname", + "displayName": "Card DAV Host Name", + "options": null + }, + { + "id": "com.apple.carddav.account_carddavpassword", + "displayName": "Card DAV Password", + "options": null + }, + { + "id": "com.apple.carddav.account_carddavport", + "displayName": "Card DAV Port", + "options": null + }, + { + "id": "com.apple.carddav.account_carddavprincipalurl", + "displayName": "Card DAV Principal URL", + "options": null + }, + { + "id": "com.apple.carddav.account_carddavusername", + "displayName": "Card DAV Username", + "options": null + }, + { + "id": "com.apple.carddav.account_carddavusessl", + "displayName": "Card DAV Use SSL", + "options": [ + { + "id": "com.apple.carddav.account_carddavusessl_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.carddav.account_carddavusessl_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.carddav.account_com.apple.carddav.account", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { "id": "com.apple.cellular_apns", "displayName": "APNs", "options": null }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmask", + "displayName": "Allowed Protocol Mask", + "options": [ + { + "id": "com.apple.cellular_apns_item_allowedprotocolmask_0", + "displayName": "IPv4", + "description": null + }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmask_1", + "displayName": "IPv6", + "description": null + }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmask_2", + "displayName": "Both", + "description": null + } + ] + }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmaskindomesticroaming", + "displayName": "Allowed Protocol Mask In Domestic Roaming", + "options": [ + { + "id": "com.apple.cellular_apns_item_allowedprotocolmaskindomesticroaming_0", + "displayName": "IPv4", + "description": null + }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmaskindomesticroaming_1", + "displayName": "IPv6", + "description": null + }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmaskindomesticroaming_2", + "displayName": "Both", + "description": null + } + ] + }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmaskinroaming", + "displayName": "Allowed Protocol Mask In Roaming", + "options": [ + { + "id": "com.apple.cellular_apns_item_allowedprotocolmaskinroaming_0", + "displayName": "IPv4", + "description": null + }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmaskinroaming_1", + "displayName": "IPv6", + "description": null + }, + { + "id": "com.apple.cellular_apns_item_allowedprotocolmaskinroaming_2", + "displayName": "Both", + "description": null + } + ] + }, + { + "id": "com.apple.cellular_apns_item_authenticationtype", + "displayName": "Authentication Type", + "options": [ + { + "id": "com.apple.cellular_apns_item_authenticationtype_0", + "displayName": "CHAP", + "description": null + }, + { + "id": "com.apple.cellular_apns_item_authenticationtype_1", + "displayName": "PAP", + "description": null + } + ] + }, + { + "id": "com.apple.cellular_apns_item_enablexlat464", + "displayName": "Enable XLAT464", + "options": [ + { + "id": "com.apple.cellular_apns_item_enablexlat464_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.cellular_apns_item_enablexlat464_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.cellular_apns_item_name", + "displayName": "Name", + "options": null + }, + { + "id": "com.apple.cellular_apns_item_password", + "displayName": "Password", + "options": null + }, + { + "id": "com.apple.cellular_apns_item_proxyport", + "displayName": "Proxy Port", + "options": null + }, + { + "id": "com.apple.cellular_apns_item_proxyserver", + "displayName": "Proxy Server", + "options": null + }, + { + "id": "com.apple.cellular_apns_item_username", + "displayName": "Username", + "options": null + }, + { + "id": "com.apple.cellular_attachapn", + "displayName": "Attach APN", + "options": null + }, + { + "id": "com.apple.cellular_attachapn_allowedprotocolmask", + "displayName": "Allowed Protocol Mask", + "options": [ + { + "id": "com.apple.cellular_attachapn_allowedprotocolmask_0", + "displayName": "IPv4", + "description": null + }, + { + "id": "com.apple.cellular_attachapn_allowedprotocolmask_1", + "displayName": "IPv6", + "description": null + }, + { + "id": "com.apple.cellular_attachapn_allowedprotocolmask_2", + "displayName": "Both", + "description": null + } + ] + }, + { + "id": "com.apple.cellular_attachapn_authenticationtype", + "displayName": "Authentication Type", + "options": [ + { + "id": "com.apple.cellular_attachapn_authenticationtype_0", + "displayName": "CHAP", + "description": null + }, + { + "id": "com.apple.cellular_attachapn_authenticationtype_1", + "displayName": "PAP", + "description": null + } + ] + }, + { + "id": "com.apple.cellular_attachapn_name", + "displayName": "Name", + "options": null + }, + { + "id": "com.apple.cellular_attachapn_password", + "displayName": "Password", + "options": null + }, + { + "id": "com.apple.cellular_attachapn_username", + "displayName": "Username", + "options": null + }, + { + "id": "com.apple.cellular_com.apple.cellular", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.configurationprofile.identification_com.apple.configurationprofile.identification", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification", + "displayName": "Payload Identification", + "options": null + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification_authmethod", + "displayName": "Auth Method", + "options": [ + { + "id": "com.apple.configurationprofile.identification_payloadidentification_authmethod_0", + "displayName": "Password", + "description": null + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification_authmethod_1", + "displayName": "UserEnteredPassword", + "description": null + } + ] + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification_emailaddress", + "displayName": "Email Address", + "options": null + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification_fullname", + "displayName": "Full Name", + "options": null + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification_password", + "displayName": "Password", + "options": null + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification_prompt", + "displayName": "Prompt", + "options": null + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification_promptmessage", + "displayName": "Prompt Message", + "options": null + }, + { + "id": "com.apple.configurationprofile.identification_payloadidentification_username", + "displayName": "User Name", + "options": null + }, + { + "id": "com.apple.desktop_com.apple.desktop", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.desktop_override-picture-path", + "displayName": "Override Picture Path", + "options": null + }, + { + "id": "com.apple.dictionary_com.apple.dictionary", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.dictionary_parentalcontrol", + "displayName": "Parental Control", + "options": [ + { + "id": "com.apple.dictionary_parentalcontrol_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dictionary_parentalcontrol_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adallowmultidomainauth", + "displayName": "AD Allow Multi Domain Auth", + "options": [ + { + "id": "com.apple.directoryservice.managed_adallowmultidomainauth_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adallowmultidomainauth_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adallowmultidomainauthflag", + "displayName": "AD Allow Multi Domain Auth Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adallowmultidomainauthflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adallowmultidomainauthflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adcreatemobileaccountatlogin", + "displayName": "AD Create Mobile Account At Login", + "options": [ + { + "id": "com.apple.directoryservice.managed_adcreatemobileaccountatlogin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adcreatemobileaccountatlogin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adcreatemobileaccountatloginflag", + "displayName": "AD Create Mobile Account At Login Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adcreatemobileaccountatloginflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adcreatemobileaccountatloginflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_addefaultusershell", + "displayName": "AD Default User Shell", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_addefaultusershellflag", + "displayName": "AD Default User Shell Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_addefaultusershellflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_addefaultusershellflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_addomainadmingrouplist", + "displayName": "AD Domain Admin Group List", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_addomainadmingrouplistflag", + "displayName": "AD Domain Admin Group List Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_addomainadmingrouplistflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_addomainadmingrouplistflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adforcehomelocal", + "displayName": "AD Force Home Local", + "options": [ + { + "id": "com.apple.directoryservice.managed_adforcehomelocal_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adforcehomelocal_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adforcehomelocalflag", + "displayName": "AD Force Home Local Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adforcehomelocalflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adforcehomelocalflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_admapggidattribute", + "displayName": "AD Map GGID Attribute", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_admapggidattributeflag", + "displayName": "AD Map GGID Attribute Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_admapggidattributeflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_admapggidattributeflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_admapgidattribute", + "displayName": "AD Map GID Attribute", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_admapgidattributeflag", + "displayName": "AD Map GID Attribute Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_admapgidattributeflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_admapgidattributeflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_admapuidattribute", + "displayName": "AD Map UID Attribute", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_admapuidattributeflag", + "displayName": "AD Map UID Attribute Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_admapuidattributeflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_admapuidattributeflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_admountstyle", + "displayName": "AD Mount Style", + "options": [ + { + "id": "com.apple.directoryservice.managed_admountstyle_0", + "displayName": "afp", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_admountstyle_1", + "displayName": "smb", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adnamespace", + "displayName": "AD Namespace", + "options": [ + { + "id": "com.apple.directoryservice.managed_adnamespace_0", + "displayName": "forest", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adnamespace_1", + "displayName": "domain", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adnamespaceflag", + "displayName": "AD Namespace Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adnamespaceflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adnamespaceflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adorganizationalunit", + "displayName": "AD Organizational Unit", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_adpacketencrypt", + "displayName": "AD Packet Encrypt", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_adpacketencryptflag", + "displayName": "AD Packet Encrypt Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adpacketencryptflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adpacketencryptflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adpacketsign", + "displayName": "AD Packet Sign", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_adpacketsignflag", + "displayName": "AD Packet Sign Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adpacketsignflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adpacketsignflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adpreferreddcserver", + "displayName": "AD Preferred DC Server", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_adpreferreddcserverflag", + "displayName": "AD Preferred DC Server Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adpreferreddcserverflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adpreferreddcserverflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adrestrictddns", + "displayName": "AD Restrict DDNS", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_adrestrictddnsflag", + "displayName": "AD Restrict DDNS Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adrestrictddnsflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adrestrictddnsflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adtrustchangepassintervaldays", + "displayName": "AD Trust Change Pass Interval Days", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_adtrustchangepassintervaldaysflag", + "displayName": "AD Trust Change Pass Interval Days Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adtrustchangepassintervaldaysflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adtrustchangepassintervaldaysflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adusewindowsuncpath", + "displayName": "AD Use Windows UNC Path", + "options": [ + { + "id": "com.apple.directoryservice.managed_adusewindowsuncpath_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adusewindowsuncpath_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adusewindowsuncpathflag", + "displayName": "AD Use Windows UNC Path Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adusewindowsuncpathflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adusewindowsuncpathflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adwarnuserbeforecreatingma", + "displayName": "AD Warn User Before Creating MA", + "options": [ + { + "id": "com.apple.directoryservice.managed_adwarnuserbeforecreatingma_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adwarnuserbeforecreatingma_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_adwarnuserbeforecreatingmaflag", + "displayName": "AD Warn User Before Creating MA Flag", + "options": [ + { + "id": "com.apple.directoryservice.managed_adwarnuserbeforecreatingmaflag_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.directoryservice.managed_adwarnuserbeforecreatingmaflag_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.directoryservice.managed_clientid", + "displayName": "Client ID", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_com.apple.directoryservice.managed", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_description", + "displayName": "Description", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_hostname", + "displayName": "Host Name", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_password", + "displayName": "Password", + "options": null + }, + { + "id": "com.apple.directoryservice.managed_username", + "displayName": "User Name", + "options": null + }, + { + "id": "com.apple.discrecording_burnsupport", + "displayName": "Burn Support", + "options": [ + { + "id": "com.apple.discrecording_burnsupport_0", + "displayName": "off", + "description": null + }, + { + "id": "com.apple.discrecording_burnsupport_1", + "displayName": "authenticate", + "description": null + }, + { + "id": "com.apple.discrecording_burnsupport_2", + "displayName": "on", + "description": null + } + ] + }, + { + "id": "com.apple.discrecording_com.apple.discrecording", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_com.apple.dnssettings.managed", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_dnssettings", + "displayName": "DNS Settings", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_dnssettings_dnsprotocol", + "displayName": "DNS Protocol", + "options": [ + { + "id": "com.apple.dnssettings.managed_dnssettings_dnsprotocol_0", + "displayName": "HTTPS", + "description": null + }, + { + "id": "com.apple.dnssettings.managed_dnssettings_dnsprotocol_1", + "displayName": "TLS", + "description": null + } + ] + }, + { + "id": "com.apple.dnssettings.managed_dnssettings_serveraddresses", + "displayName": "Server Addresses", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_dnssettings_servername", + "displayName": "Server Name (Deprecated)", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_dnssettings_serverurl", + "displayName": "Server URL", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_dnssettings_supplementalmatchdomains", + "displayName": "Supplemental Match Domains", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules", + "displayName": "On Demand Rules", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_action", + "displayName": "Action", + "options": [ + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_action_0", + "displayName": "Connect", + "description": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_action_1", + "displayName": "Disconnect", + "description": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_action_2", + "displayName": "Evaluate Connection", + "description": null + } + ] + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters", + "displayName": "Action Parameters", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters_domainaction", + "displayName": "Domain Action (Deprecated)", + "options": [ + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters_domainaction_0", + "displayName": "Never Connect", + "description": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters_domainaction_1", + "displayName": "Connect If Needed", + "description": null + } + ] + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters_domains", + "displayName": "Domains (Deprecated)", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters_item_domainaction", + "displayName": "Domain Action", + "options": [ + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters_item_domainaction_0", + "displayName": "NeverConnect", + "description": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters_item_domainaction_1", + "displayName": "ConnectIfNeeded", + "description": null + } + ] + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_actionparameters_item_domains", + "displayName": "Domains", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_dnsdomainmatch", + "displayName": "DNS Domain Match", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_dnsserveraddressmatch", + "displayName": "DNS Server Address Match", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_interfacetypematch", + "displayName": "Interface Type Match", + "options": [ + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_interfacetypematch_0", + "displayName": "Ethernet", + "description": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_interfacetypematch_1", + "displayName": "WiFi", + "description": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_interfacetypematch_2", + "displayName": "Cellular", + "description": null + } + ] + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_ssidmatch", + "displayName": "SSID Match", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_ondemandrules_item_urlstringprobe", + "displayName": "URL String Probe", + "options": null + }, + { + "id": "com.apple.dnssettings.managed_prohibitdisablement", + "displayName": "Prohibit Disablement", + "options": [ + { + "id": "com.apple.dnssettings.managed_prohibitdisablement_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.dnssettings.managed_prohibitdisablement_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.dock_allowdockfixupoverride", + "displayName": "Allow Dock Fixup Override", + "options": [ + { + "id": "com.apple.dock_allowdockfixupoverride_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_allowdockfixupoverride_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_autohide", + "displayName": "Auto Hide", + "options": [ + { + "id": "com.apple.dock_autohide_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_autohide_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_autohide-immutable", + "displayName": "Auto Hide Immutable", + "options": [ + { + "id": "com.apple.dock_autohide-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_autohide-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_com.apple.dock", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.dock_contents-immutable", + "displayName": "Contents Immutable", + "options": [ + { + "id": "com.apple.dock_contents-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_contents-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_dblclickbehavior", + "displayName": "Double Click Behavior", + "options": [ + { + "id": "com.apple.dock_dblclickbehavior_0", + "displayName": "Minimize", + "description": null + }, + { + "id": "com.apple.dock_dblclickbehavior_1", + "displayName": "Maximize", + "description": null + }, + { + "id": "com.apple.dock_dblclickbehavior_2", + "displayName": "None", + "description": null + } + ] + }, + { + "id": "com.apple.dock_dblclickbehavior-immutable", + "displayName": "Double Click Behavior Immutable", + "options": [ + { + "id": "com.apple.dock_dblclickbehavior-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_dblclickbehavior-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_largesize", + "displayName": "Large Size", + "options": null + }, + { + "id": "com.apple.dock_launchanim", + "displayName": "Launch Animation", + "options": [ + { + "id": "com.apple.dock_launchanim_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_launchanim_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_launchanim-immutable", + "displayName": "Launch Animation Immutable", + "options": [ + { + "id": "com.apple.dock_launchanim-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_launchanim-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_magnification", + "displayName": "Magnification", + "options": [ + { + "id": "com.apple.dock_magnification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_magnification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_magnify-immutable", + "displayName": "Magnify Immutable", + "options": [ + { + "id": "com.apple.dock_magnify-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_magnify-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_magsize-immutable", + "displayName": "Magnification Size Immutable", + "options": [ + { + "id": "com.apple.dock_magsize-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_magsize-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_mcxdockspecialfolders", + "displayName": "MCX Dock Special Folders", + "options": null + }, + { + "id": "com.apple.dock_mineffect", + "displayName": "Minimize Effect", + "options": [ + { + "id": "com.apple.dock_mineffect_0", + "displayName": "Genie", + "description": null + }, + { + "id": "com.apple.dock_mineffect_1", + "displayName": "Scale", + "description": null + } + ] + }, + { + "id": "com.apple.dock_mineffect-immutable", + "displayName": "Minimize Effect Immutable", + "options": [ + { + "id": "com.apple.dock_mineffect-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_mineffect-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_minimize-to-application", + "displayName": "Minimize To Application", + "options": [ + { + "id": "com.apple.dock_minimize-to-application_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_minimize-to-application_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_minintoapp-immutable", + "displayName": "Minimize Into Application Immutable", + "options": [ + { + "id": "com.apple.dock_minintoapp-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_minintoapp-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_orientation", + "displayName": "Orientation", + "options": [ + { + "id": "com.apple.dock_orientation_0", + "displayName": "Bottom", + "description": null + }, + { + "id": "com.apple.dock_orientation_1", + "displayName": "Left", + "description": null + }, + { + "id": "com.apple.dock_orientation_2", + "displayName": "Right", + "description": null + } + ] + }, + { + "id": "com.apple.dock_persistent-apps", + "displayName": "Persistent Apps", + "options": null + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-data", + "displayName": "Tile Data", + "options": null + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-data_file-type", + "displayName": "File Type", + "options": [ + { + "id": "com.apple.dock_persistent-apps_item_tile-data_file-type_0", + "displayName": "URL", + "description": null + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-data_file-type_1", + "displayName": "File", + "description": null + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-data_file-type_2", + "displayName": "Directory", + "description": null + } + ] + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-data_label", + "displayName": "Label", + "options": null + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-data_url", + "displayName": "URL", + "options": null + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-type", + "displayName": "Tile Type", + "options": [ + { + "id": "com.apple.dock_persistent-apps_item_tile-type_0", + "displayName": "File", + "description": null + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-type_1", + "displayName": "Directory", + "description": null + }, + { + "id": "com.apple.dock_persistent-apps_item_tile-type_2", + "displayName": "URL", + "description": null + } + ] + }, + { + "id": "com.apple.dock_persistent-others", + "displayName": "Persistent Others", + "options": null + }, + { + "id": "com.apple.dock_persistent-others_item_tile-data", + "displayName": "Tile Data", + "options": null + }, + { + "id": "com.apple.dock_persistent-others_item_tile-data_file-type", + "displayName": "File Type", + "options": [ + { + "id": "com.apple.dock_persistent-others_item_tile-data_file-type_0", + "displayName": "URL", + "description": null + }, + { + "id": "com.apple.dock_persistent-others_item_tile-data_file-type_1", + "displayName": "File", + "description": null + }, + { + "id": "com.apple.dock_persistent-others_item_tile-data_file-type_2", + "displayName": "Directory", + "description": null + } + ] + }, + { + "id": "com.apple.dock_persistent-others_item_tile-data_label", + "displayName": "Label", + "options": null + }, + { + "id": "com.apple.dock_persistent-others_item_tile-data_url", + "displayName": "URL", + "options": null + }, + { + "id": "com.apple.dock_persistent-others_item_tile-type", + "displayName": "Tile Type", + "options": [ + { + "id": "com.apple.dock_persistent-others_item_tile-type_0", + "displayName": "File", + "description": null + }, + { + "id": "com.apple.dock_persistent-others_item_tile-type_1", + "displayName": "Directory", + "description": null + }, + { + "id": "com.apple.dock_persistent-others_item_tile-type_2", + "displayName": "URL", + "description": null + } + ] + }, + { + "id": "com.apple.dock_position-immutable", + "displayName": "Position Immutable", + "options": [ + { + "id": "com.apple.dock_position-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_position-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_showindicators-immutable", + "displayName": "Show Indicators Immutable", + "options": [ + { + "id": "com.apple.dock_showindicators-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_showindicators-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_show-process-indicators", + "displayName": "Show Process Indicators", + "options": [ + { + "id": "com.apple.dock_show-process-indicators_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_show-process-indicators_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_show-recents", + "displayName": "Show Recents", + "options": [ + { + "id": "com.apple.dock_show-recents_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_show-recents_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_showrecents-immutable", + "displayName": "Show Recents Immutable", + "options": [ + { + "id": "com.apple.dock_showrecents-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_showrecents-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_size-immutable", + "displayName": "Size Immutable", + "options": [ + { + "id": "com.apple.dock_size-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_size-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_static-apps", + "displayName": "Static Apps", + "options": null + }, + { + "id": "com.apple.dock_static-apps_item_tile-data", + "displayName": "Tile Data", + "options": null + }, + { + "id": "com.apple.dock_static-apps_item_tile-data_file-type", + "displayName": "File Type", + "options": [ + { + "id": "com.apple.dock_static-apps_item_tile-data_file-type_0", + "displayName": "URL", + "description": null + }, + { + "id": "com.apple.dock_static-apps_item_tile-data_file-type_1", + "displayName": "File", + "description": null + }, + { + "id": "com.apple.dock_static-apps_item_tile-data_file-type_2", + "displayName": "Directory", + "description": null + } + ] + }, + { + "id": "com.apple.dock_static-apps_item_tile-data_label", + "displayName": "Label", + "options": null + }, + { + "id": "com.apple.dock_static-apps_item_tile-data_url", + "displayName": "URL", + "options": null + }, + { + "id": "com.apple.dock_static-apps_item_tile-type", + "displayName": "Tile Type", + "options": [ + { + "id": "com.apple.dock_static-apps_item_tile-type_0", + "displayName": "File", + "description": null + }, + { + "id": "com.apple.dock_static-apps_item_tile-type_1", + "displayName": "Directory", + "description": null + }, + { + "id": "com.apple.dock_static-apps_item_tile-type_2", + "displayName": "URL", + "description": null + } + ] + }, + { + "id": "com.apple.dock_static-only", + "displayName": "Static Only", + "options": [ + { + "id": "com.apple.dock_static-only_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_static-only_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.dock_static-others", + "displayName": "Static Others", + "options": null + }, + { + "id": "com.apple.dock_static-others_item_tile-data", + "displayName": "Tile Data", + "options": null + }, + { + "id": "com.apple.dock_static-others_item_tile-data_file-type", + "displayName": "File Type", + "options": [ + { + "id": "com.apple.dock_static-others_item_tile-data_file-type_0", + "displayName": "URL", + "description": null + }, + { + "id": "com.apple.dock_static-others_item_tile-data_file-type_1", + "displayName": "File", + "description": null + }, + { + "id": "com.apple.dock_static-others_item_tile-data_file-type_2", + "displayName": "Directory", + "description": null + } + ] + }, + { + "id": "com.apple.dock_static-others_item_tile-data_label", + "displayName": "Label", + "options": null + }, + { + "id": "com.apple.dock_static-others_item_tile-data_url", + "displayName": "URL", + "options": null + }, + { + "id": "com.apple.dock_static-others_item_tile-type", + "displayName": "Tile Type", + "options": [ + { + "id": "com.apple.dock_static-others_item_tile-type_0", + "displayName": "File", + "description": null + }, + { + "id": "com.apple.dock_static-others_item_tile-type_1", + "displayName": "Directory", + "description": null + }, + { + "id": "com.apple.dock_static-others_item_tile-type_2", + "displayName": "URL", + "description": null + } + ] + }, + { + "id": "com.apple.dock_tilesize", + "displayName": "Tile Size", + "options": null + }, + { + "id": "com.apple.dock_windowtabbing", + "displayName": "Window Tabbing", + "options": [ + { + "id": "com.apple.dock_windowtabbing_0", + "displayName": "Manual", + "description": null + }, + { + "id": "com.apple.dock_windowtabbing_1", + "displayName": "Always", + "description": null + }, + { + "id": "com.apple.dock_windowtabbing_2", + "displayName": "Full Screen", + "description": null + } + ] + }, + { + "id": "com.apple.dock_windowtabbing-immutable", + "displayName": "Window Tabbing Immutable", + "options": [ + { + "id": "com.apple.dock_windowtabbing-immutable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.dock_windowtabbing-immutable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.domains_com.apple.domains", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.domains_crosssitetrackingpreventionrelaxeddomains", + "displayName": "Cross Site Tracking Prevention Relaxed Domains", + "options": null + }, + { + "id": "com.apple.domains_emaildomains", + "displayName": "Email Domains", + "options": null + }, + { + "id": "com.apple.domains_safaripasswordautofilldomains", + "displayName": "Safari Password Auto Fill Domains", + "options": null + }, + { + "id": "com.apple.domains_webdomains", + "displayName": "Web Domains", + "options": null + }, + { + "id": "com.apple.extensiblesso_authenticationmethod", + "displayName": "Authentication Method (Deprecated)", + "options": [ + { + "id": "com.apple.extensiblesso_authenticationmethod_0", + "displayName": "Password", + "description": null + }, + { + "id": "com.apple.extensiblesso_authenticationmethod_1", + "displayName": "UserSecureEnclaveKey", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_com.apple.extensiblesso", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.extensiblesso_com.apple.extensiblesso-kerberos_kerberos", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.extensiblesso_deniedbundleidentifiers", + "displayName": "Denied Bundle Identifiers", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata", + "displayName": "Extension Data", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_allowautomaticlogin_kerberos", + "displayName": "Allow Automatic Login", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_allowautomaticlogin_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_allowautomaticlogin_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_allowpassword_kerberos", + "displayName": "allow Password", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_allowpassword_kerberos_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_allowpassword_kerberos_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_allowpasswordchange_kerberos", + "displayName": "Allow Password Change", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_allowpasswordchange_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_allowpasswordchange_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_allowsmartcard_kerberos", + "displayName": "allow Smart Card", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_allowsmartcard_kerberos_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_allowsmartcard_kerberos_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_credentialbundleidacl_kerberos", + "displayName": "Credential Bundle ID ACL", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_credentialusemode_kerberos", + "displayName": "Credential Use Mode", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_credentialusemode_kerberos_0", + "displayName": "Always", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_credentialusemode_kerberos_1", + "displayName": "When Not Specified", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_credentialusemode_kerberos_2", + "displayName": "Kerberos Default ", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_customusernamelabel_kerberos", + "displayName": "Custom Username Label", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_delayusersetup_kerberos", + "displayName": "Delay User Setup", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_delayusersetup_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_delayusersetup_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_domainrealmmapping_generickey_kerberos_keytobereplaced", + "displayName": "Realm", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_domainrealmmapping_generickey_kerberos_string", + "displayName": "Domain Realm Mapping", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_domainrealmmapping_kerberos", + "displayName": "Domain Realm Mapping", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_domainrealmmapping_realm_kerberos", + "displayName": "Realm (Deprecated)", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_generickey_boolean", + "displayName": "Value", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_generickey_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_generickey_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_generickey_integer", + "displayName": "Value", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_generickey_keytobereplaced", + "displayName": "Key", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_generickey_string", + "displayName": "Value", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_helptext_kerberos", + "displayName": "Help Text", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_identityissuerautoselectfilter_kerberos", + "displayName": "identity Issuer Auto Select Filter", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_includekerberosappsinbundleidacl_kerberos", + "displayName": "Include Kerberos Apps In Bundle ID ACL", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_includekerberosappsinbundleidacl_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_includekerberosappsinbundleidacl_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_includemanagedappsinbundleidacl_kerberos", + "displayName": "Include Managed Apps In Bundle ID ACL", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_includemanagedappsinbundleidacl_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_includemanagedappsinbundleidacl_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_isdefaultrealm_kerberos", + "displayName": "Is Default Realm", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_isdefaultrealm_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_isdefaultrealm_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_kerberos", + "displayName": "Extension Data", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_monitorcredentialscache_kerberos", + "displayName": "Monitor Credentials Cache", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_monitorcredentialscache_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_monitorcredentialscache_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_performkerberosonly_kerberos", + "displayName": "Perform Kerberos Only", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_performkerberosonly_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_performkerberosonly_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_preferredkdcs_kerberos", + "displayName": "Preferred KDCs", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_principalname_kerberos", + "displayName": "Principal Name", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_pwchangeurl_kerberos", + "displayName": "Password Change URL", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_pwnotificationdays_kerberos", + "displayName": "Password Notification Days", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_pwreqcomplexity_kerberos", + "displayName": "Password Req Complexity", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_pwreqcomplexity_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_pwreqcomplexity_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_pwreqhistory_kerberos", + "displayName": "Password Req History", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_pwreqlength_kerberos", + "displayName": "Password Req Length", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_pwreqminage_kerberos", + "displayName": "Password Req Min Age", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_pwreqtext_kerberos", + "displayName": "Password Req Text", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_requiretlsforldap_kerberos", + "displayName": "Require TLS For LDAP", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_requiretlsforldap_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_requiretlsforldap_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_requireuserpresence_kerberos", + "displayName": "Require User Presence", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_requireuserpresence_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_requireuserpresence_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_sitecode_kerberos", + "displayName": "Site Code", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_startinsmartcardmode_kerberos", + "displayName": "start In Smart Card Mode", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_startinsmartcardmode_kerberos_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_startinsmartcardmode_kerberos_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_synclocalpassword_kerberos", + "displayName": "Sync Local Password", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_synclocalpassword_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_synclocalpassword_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensiondata_usesiteautodiscovery_kerberos", + "displayName": "Use Site Auto Discovery", + "options": [ + { + "id": "com.apple.extensiblesso_extensiondata_usesiteautodiscovery_kerberos_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.extensiblesso_extensiondata_usesiteautodiscovery_kerberos_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_extensionidentifier", + "displayName": "Extension Identifier", + "options": null + }, + { + "id": "com.apple.extensiblesso_extensionidentifier_kerberos", + "displayName": "Extension Identifier", + "options": { + "id": "com.apple.extensiblesso_extensionidentifier_kerberos_0", + "displayName": "com.apple.AppSSOKerberos.KerberosExtension", + "description": null + } + }, + { + "id": "com.apple.extensiblesso_hosts", + "displayName": "Hosts", + "options": null + }, + { + "id": "com.apple.extensiblesso_hosts_kerberos", + "displayName": "Hosts", + "options": null + }, + { + "id": "com.apple.extensiblesso_ignored_$typepicker", + "displayName": "Type", + "options": [ + { + "id": "com.apple.extensiblesso_ignored_0", + "displayName": "String", + "description": "String" + }, + { + "id": "com.apple.extensiblesso_ignored_1", + "displayName": "Integer", + "description": "Integer" + }, + { + "id": "com.apple.extensiblesso_ignored_2", + "displayName": "Boolean", + "description": "Boolean" + } + ] + }, + { + "id": "com.apple.extensiblesso_ignored_kerberos_$typepicker", + "displayName": "IGNORED", + "options": { + "id": "com.apple.extensiblesso_ignored_kerberos_0", + "displayName": "Array", + "description": null + } + }, + { + "id": "com.apple.extensiblesso_platformsso", + "displayName": "Platform SSO", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_accountdisplayname", + "displayName": "Account Display Name", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_additionalgroups", + "displayName": "Additional Groups", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_administratorgroups", + "displayName": "Administrator Groups", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_authenticationgraceperiod", + "displayName": "Authentication Grace Period", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_authenticationmethod", + "displayName": "Authentication Method", + "options": [ + { + "id": "com.apple.extensiblesso_platformsso_authenticationmethod_0", + "displayName": "Password", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_authenticationmethod_1", + "displayName": "UserSecureEnclaveKey", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_authenticationmethod_2", + "displayName": "SmartCard", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_platformsso_authorizationgroups", + "displayName": "Authorization Groups", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_authorizationgroups_authorization right", + "displayName": "Authorization Right (Deprecated)", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_authorizationgroups_generickey", + "displayName": "ANY", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_authorizationgroups_generickey_keytobereplaced", + "displayName": "Authorization Groups", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_authorizationgroups_group", + "displayName": "Group (Deprecated)", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_enableauthorization", + "displayName": "Enable Authorization", + "options": [ + { + "id": "com.apple.extensiblesso_platformsso_enableauthorization_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_enableauthorization_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_platformsso_enablecreateuseratlogin", + "displayName": "Enable Create User At Login", + "options": [ + { + "id": "com.apple.extensiblesso_platformsso_enablecreateuseratlogin_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_enablecreateuseratlogin_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_platformsso_filevaultpolicy", + "displayName": "FileVault Policy", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_loginfrequency", + "displayName": "Login Frequency", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_loginpolicy", + "displayName": "Login Policy", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_newuserauthorizationmode", + "displayName": "New User Authorization Mode", + "options": [ + { + "id": "com.apple.extensiblesso_platformsso_newuserauthorizationmode_0", + "displayName": "Standard", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_newuserauthorizationmode_1", + "displayName": "Admin", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_newuserauthorizationmode_2", + "displayName": "Groups", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_platformsso_nonplatformssoaccounts", + "displayName": "Non Platform SSO Accounts", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_offlinegraceperiod", + "displayName": "Offline Grace Period", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_tokentousermapping", + "displayName": "Token To User Mapping", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_tokentousermapping_accountname", + "displayName": "Account Name", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_tokentousermapping_fullname", + "displayName": "Full Name", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_unlockpolicy", + "displayName": "Unlock Policy", + "options": null + }, + { + "id": "com.apple.extensiblesso_platformsso_userauthorizationmode", + "displayName": "User Authorization Mode", + "options": [ + { + "id": "com.apple.extensiblesso_platformsso_userauthorizationmode_0", + "displayName": "Standard", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_userauthorizationmode_1", + "displayName": "Admin", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_userauthorizationmode_2", + "displayName": "Groups", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_platformsso_useshareddevicekeys", + "displayName": "Use Shared Device Keys", + "options": [ + { + "id": "com.apple.extensiblesso_platformsso_useshareddevicekeys_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.extensiblesso_platformsso_useshareddevicekeys_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_realm", + "displayName": "Realm", + "options": null + }, + { + "id": "com.apple.extensiblesso_realm_kerberos", + "displayName": "Realm", + "options": null + }, + { + "id": "com.apple.extensiblesso_registrationtoken", + "displayName": "Registration Token", + "options": null + }, + { + "id": "com.apple.extensiblesso_screenlockedbehavior", + "displayName": "Screen Locked Behavior", + "options": { + "id": "com.apple.extensiblesso_screenlockedbehavior_0", + "displayName": "Do Not Handle", + "description": null + } + }, + { + "id": "com.apple.extensiblesso_teamidentifier", + "displayName": "Team Identifier", + "options": null + }, + { + "id": "com.apple.extensiblesso_teamidentifier_kerberos", + "displayName": "Team Identifier", + "options": { + "id": "com.apple.extensiblesso_teamidentifier_kerberos_0", + "displayName": "apple", + "description": null + } + }, + { + "id": "com.apple.extensiblesso_type", + "displayName": "Type", + "options": [ + { + "id": "com.apple.extensiblesso_type_0", + "displayName": "Credential", + "description": null + }, + { + "id": "com.apple.extensiblesso_type_1", + "displayName": "Redirect", + "description": null + } + ] + }, + { + "id": "com.apple.extensiblesso_type_kerberos", + "displayName": "Type", + "options": { + "id": "com.apple.extensiblesso_type_kerberos_0", + "displayName": "Credential", + "description": null + } + }, + { + "id": "com.apple.extensiblesso_urls", + "displayName": "URLs", + "options": null + }, + { + "id": "com.apple.familycontrols.contentfilter_com.apple.familycontrols.contentfilter", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.familycontrols.contentfilter_filterblacklist", + "displayName": "Filter Blocklist", + "options": null + }, + { + "id": "com.apple.familycontrols.contentfilter_filterwhitelist", + "displayName": "Filter Allowlist", + "options": null + }, + { + "id": "com.apple.familycontrols.contentfilter_restrictweb", + "displayName": "Restrict Web", + "options": [ + { + "id": "com.apple.familycontrols.contentfilter_restrictweb_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.familycontrols.contentfilter_restrictweb_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.contentfilter_sitewhitelist", + "displayName": "Site Allowlist", + "options": null + }, + { + "id": "com.apple.familycontrols.contentfilter_sitewhitelist_item_address", + "displayName": "Address", + "options": null + }, + { + "id": "com.apple.familycontrols.contentfilter_sitewhitelist_item_pagetitle", + "displayName": "Page Title", + "options": null + }, + { + "id": "com.apple.familycontrols.contentfilter_usecontentfilter", + "displayName": "Use Content Filter", + "options": [ + { + "id": "com.apple.familycontrols.contentfilter_usecontentfilter_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.familycontrols.contentfilter_usecontentfilter_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.contentfilter_whitelistenabled", + "displayName": "Allowlist Enabled", + "options": [ + { + "id": "com.apple.familycontrols.contentfilter_whitelistenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.familycontrols.contentfilter_whitelistenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_com.apple.familycontrols.timelimits.v2", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_familycontrolsenabled", + "displayName": "Family Controls Enabled", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_familycontrolsenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_familycontrolsenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits", + "displayName": "Time Limits", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance", + "displayName": "Weekday Allowance", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_enabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_enabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_end", + "displayName": "End", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_rangetype", + "displayName": "Range Type", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_rangetype_0", + "displayName": "Weekday", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_rangetype_1", + "displayName": "Weekend", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_secondsperday", + "displayName": "Seconds Per Day", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-allowance_start", + "displayName": "Start", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew", + "displayName": "Weekday Curfew", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_enabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_enabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_end", + "displayName": "End", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_rangetype", + "displayName": "Range Type", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_rangetype_0", + "displayName": "Weekday", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_rangetype_1", + "displayName": "Weekend", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_secondsperday", + "displayName": "Seconds Per Day", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekday-curfew_start", + "displayName": "Start", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance", + "displayName": "Weekend Allowance", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_enabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_enabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_end", + "displayName": "End", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_rangetype", + "displayName": "Range Type", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_rangetype_0", + "displayName": "Weekday", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_rangetype_1", + "displayName": "Weekend", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_secondsperday", + "displayName": "Seconds Per Day", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-allowance_start", + "displayName": "Start", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew", + "displayName": "Weekend Curfew", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_enabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_enabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_end", + "displayName": "End", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_rangetype", + "displayName": "Range Type", + "options": [ + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_rangetype_0", + "displayName": "Weekday", + "description": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_rangetype_1", + "displayName": "Weekend", + "description": null + } + ] + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_secondsperday", + "displayName": "Seconds Per Day", + "options": null + }, + { + "id": "com.apple.familycontrols.timelimits.v2_time-limits_weekend-curfew_start", + "displayName": "Start", + "options": null + }, + { + "id": "com.apple.fileproviderd_allowmanagedfileproviderstorequestattribution", + "displayName": "Allow Managed File Providers To Request Attribution", + "options": [ + { + "id": "com.apple.fileproviderd_allowmanagedfileproviderstorequestattribution_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.fileproviderd_allowmanagedfileproviderstorequestattribution_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.fileproviderd_com.apple.fileproviderd", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.finder_com.apple.finder", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.finder_prohibitburn", + "displayName": "Prohibit Burn", + "options": [ + { + "id": "com.apple.finder_prohibitburn_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_prohibitburn_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.finder_prohibitconnectto", + "displayName": "Prohibit Connect To", + "options": [ + { + "id": "com.apple.finder_prohibitconnectto_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_prohibitconnectto_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.finder_prohibiteject", + "displayName": "Prohibit Eject", + "options": [ + { + "id": "com.apple.finder_prohibiteject_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_prohibiteject_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.finder_prohibitgotofolder", + "displayName": "Prohibit Go To Folder", + "options": [ + { + "id": "com.apple.finder_prohibitgotofolder_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_prohibitgotofolder_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.finder_showexternalharddrivesondesktop", + "displayName": "Show External Hard Drives On Desktop", + "options": [ + { + "id": "com.apple.finder_showexternalharddrivesondesktop_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_showexternalharddrivesondesktop_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.finder_showharddrivesondesktop", + "displayName": "Show Hard Drives On Desktop", + "options": [ + { + "id": "com.apple.finder_showharddrivesondesktop_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_showharddrivesondesktop_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.finder_showmountedserversondesktop", + "displayName": "Show Mounted Servers On Desktop", + "options": [ + { + "id": "com.apple.finder_showmountedserversondesktop_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_showmountedserversondesktop_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.finder_showremovablemediaondesktop", + "displayName": "Show Removable Media On Desktop", + "options": [ + { + "id": "com.apple.finder_showremovablemediaondesktop_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_showremovablemediaondesktop_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.finder_warnonemptytrash", + "displayName": "Warn On Empty Trash", + "options": [ + { + "id": "com.apple.finder_warnonemptytrash_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.finder_warnonemptytrash_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.font_com.apple.font", + "displayName": "com.apple.font", + "options": null + }, + { "id": "com.apple.font_font", "displayName": "Font", "options": null }, + { "id": "com.apple.font_name", "displayName": "Name", "options": null }, + { + "id": "com.apple.gamed_com.apple.gamed", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.gamed_gkfeatureaccountmodificationallowed", + "displayName": "GK Feature Account Modification Allowed", + "options": [ + { + "id": "com.apple.gamed_gkfeatureaccountmodificationallowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.gamed_gkfeatureaccountmodificationallowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.ldap.account_com.apple.ldap.account", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.ldap.account_ldapaccountdescription", + "displayName": "LDAP Account Description", + "options": null + }, + { + "id": "com.apple.ldap.account_ldapaccounthostname", + "displayName": "LDAP Account Host Name", + "options": null + }, + { + "id": "com.apple.ldap.account_ldapaccountpassword", + "displayName": "LDAP Account Password", + "options": null + }, + { + "id": "com.apple.ldap.account_ldapaccountusername", + "displayName": "LDAP Account User Name", + "options": null + }, + { + "id": "com.apple.ldap.account_ldapaccountusessl", + "displayName": "LDAP Account Use SSL", + "options": [ + { + "id": "com.apple.ldap.account_ldapaccountusessl_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.ldap.account_ldapaccountusessl_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.ldap.account_ldapsearchsettings", + "displayName": "LDAP Search Settings", + "options": null + }, + { + "id": "com.apple.ldap.account_ldapsearchsettings_item_ldapsearchsettingdescription", + "displayName": "LDAP Search Setting Description", + "options": null + }, + { + "id": "com.apple.ldap.account_ldapsearchsettings_item_ldapsearchsettingscope", + "displayName": "LDAP Search Setting Scope", + "options": [ + { + "id": "com.apple.ldap.account_ldapsearchsettings_item_ldapsearchsettingscope_0", + "displayName": "Base", + "description": null + }, + { + "id": "com.apple.ldap.account_ldapsearchsettings_item_ldapsearchsettingscope_1", + "displayName": "OneLevel", + "description": null + }, + { + "id": "com.apple.ldap.account_ldapsearchsettings_item_ldapsearchsettingscope_2", + "displayName": "Subtree", + "description": null + } + ] + }, + { + "id": "com.apple.ldap.account_ldapsearchsettings_item_ldapsearchsettingsearchbase", + "displayName": "LDAP Search Setting Search Base", + "options": null + }, + { + "id": "com.apple.loginitems.managed_autolaunchedapplicationdictionary-managed", + "displayName": "Auto Launch Items", + "options": null + }, + { + "id": "com.apple.loginitems.managed_autolaunchedapplicationdictionary-managed_item_hide", + "displayName": "Hide", + "options": [ + { + "id": "com.apple.loginitems.managed_autolaunchedapplicationdictionary-managed_item_hide_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginitems.managed_autolaunchedapplicationdictionary-managed_item_hide_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginitems.managed_autolaunchedapplicationdictionary-managed_item_path", + "displayName": "Path", + "options": null + }, + { + "id": "com.apple.loginitems.managed_com.apple.loginitems.managed", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.loginwindow_adminhostinfo", + "displayName": "Admin Host Info", + "options": null + }, + { + "id": "com.apple.loginwindow_allowlist", + "displayName": "Allow List", + "options": null + }, + { + "id": "com.apple.loginwindow_autologinpassword", + "displayName": "Autologin Password", + "options": null + }, + { + "id": "com.apple.loginwindow_autologinusername", + "displayName": "Autologin Username", + "options": null + }, + { + "id": "com.apple.loginwindow_com.apple.loginwindow", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.loginwindow_denylist", + "displayName": "Deny List", + "options": null + }, + { + "id": "com.apple.loginwindow_disableconsoleaccess", + "displayName": "Disable Console Access", + "options": [ + { + "id": "com.apple.loginwindow_disableconsoleaccess_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_disableconsoleaccess_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_disablescreenlockimmediate", + "displayName": "Disable Screen Lock Immediate", + "options": [ + { + "id": "com.apple.loginwindow_disablescreenlockimmediate_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_disablescreenlockimmediate_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_hideadminusers", + "displayName": "Hide Admin Users", + "options": [ + { + "id": "com.apple.loginwindow_hideadminusers_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_hideadminusers_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_hidelocalusers", + "displayName": "Hide Local Users", + "options": [ + { + "id": "com.apple.loginwindow_hidelocalusers_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_hidelocalusers_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_includenetworkuser", + "displayName": "Include Network User", + "options": [ + { + "id": "com.apple.loginwindow_includenetworkuser_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_includenetworkuser_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_loginwindowtext", + "displayName": "Login Window Text", + "options": null + }, + { + "id": "com.apple.loginwindow_logoutdisabledwhileloggedin", + "displayName": "Log Out Disabled While Logged In", + "options": [ + { + "id": "com.apple.loginwindow_logoutdisabledwhileloggedin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_logoutdisabledwhileloggedin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_poweroffdisabledwhileloggedin", + "displayName": "Power Off Disabled While Logged In", + "options": [ + { + "id": "com.apple.loginwindow_poweroffdisabledwhileloggedin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_poweroffdisabledwhileloggedin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_restartdisabled", + "displayName": "Restart Disabled", + "options": [ + { + "id": "com.apple.loginwindow_restartdisabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_restartdisabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_restartdisabledwhileloggedin", + "displayName": "Restart Disabled While Logged In", + "options": [ + { + "id": "com.apple.loginwindow_restartdisabledwhileloggedin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_restartdisabledwhileloggedin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_showfullname", + "displayName": "Show Full Name", + "options": [ + { + "id": "com.apple.loginwindow_showfullname_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_showfullname_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_showotherusers_managed", + "displayName": "Show Other Users Managed", + "options": [ + { + "id": "com.apple.loginwindow_showotherusers_managed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_showotherusers_managed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_shutdowndisabled", + "displayName": "Shut Down Disabled", + "options": [ + { + "id": "com.apple.loginwindow_shutdowndisabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_shutdowndisabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_shutdowndisabledwhileloggedin", + "displayName": "Shut Down Disabled While Logged In", + "options": [ + { + "id": "com.apple.loginwindow_shutdowndisabledwhileloggedin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_shutdowndisabledwhileloggedin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.loginwindow_sleepdisabled", + "displayName": "Sleep Disabled", + "options": [ + { + "id": "com.apple.loginwindow_sleepdisabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.loginwindow_sleepdisabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_acknowledgeddatacollectionpolicy", + "displayName": "Automatically acknowledge data collection policy", + "options": [ + { + "id": "com.apple.managedclient.preferences_acknowledgeddatacollectionpolicy_0", + "displayName": "Acknowledge - send required data", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_acknowledgeddatacollectionpolicy_1", + "displayName": "Acknowledge - send required and optional data (Deprecated)", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_addressbarmicrosoftsearchinbingproviderenabled", + "displayName": "Enable Microsoft Search in Bing suggestions in the address bar", + "options": [ + { + "id": "com.apple.managedclient.preferences_addressbarmicrosoftsearchinbingproviderenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_addressbarmicrosoftsearchinbingproviderenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads", + "options": [ + { + "id": "com.apple.managedclient.preferences_adssettingforintrusiveadssites_0", + "displayName": "Allow ads on all sites", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_adssettingforintrusiveadssites_1", + "displayName": "Block ads on sites with intrusive ads. (Default value)", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_allowcertswithoutmatchingemailaddress", + "displayName": "Allow S/MIME certificates without a matching email address", + "options": [ + { + "id": "com.apple.managedclient.preferences_allowcertswithoutmatchingemailaddress_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_allowcertswithoutmatchingemailaddress_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_allowcrossoriginauthprompt", + "displayName": "Allow cross-origin HTTP Basic Auth prompts", + "options": [ + { + "id": "com.apple.managedclient.preferences_allowcrossoriginauthprompt_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_allowcrossoriginauthprompt_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_allowdeletingbrowserhistory", + "displayName": "Enable deleting browser and download history", + "options": [ + { + "id": "com.apple.managedclient.preferences_allowdeletingbrowserhistory_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_allowdeletingbrowserhistory_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_allowedemaildomains", + "displayName": "Allowed Email Domains", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_allowedthreats", + "displayName": "Allowed threats", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_allowfileselectiondialogs", + "displayName": "Allow file selection dialogs", + "options": [ + { + "id": "com.apple.managedclient.preferences_allowfileselectiondialogs_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_allowfileselectiondialogs_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_allowpopupsduringpageunload", + "displayName": "Allows a page to show popups during its unloading", + "options": [ + { + "id": "com.apple.managedclient.preferences_allowpopupsduringpageunload_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_allowpopupsduringpageunload_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_allowsurfgame", + "displayName": "Allow surf game", + "options": [ + { + "id": "com.apple.managedclient.preferences_allowsurfgame_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_allowsurfgame_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_allowsyncxhrinpagedismissal", + "displayName": "Allow pages to send synchronous XHR requests during page dismissal", + "options": [ + { + "id": "com.apple.managedclient.preferences_allowsyncxhrinpagedismissal_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_allowsyncxhrinpagedismissal_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_allowtrackingforurls", + "displayName": "Configure tracking prevention exceptions for specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_allowvisualbasictobindtosystem", + "displayName": "Allow Visual Basic macros to use system APIs", + "options": [ + { + "id": "com.apple.managedclient.preferences_allowvisualbasictobindtosystem_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_allowvisualbasictobindtosystem_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_alternateerrorpagesenabled", + "displayName": "Suggest similar pages when a webpage can’t be found", + "options": [ + { + "id": "com.apple.managedclient.preferences_alternateerrorpagesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_alternateerrorpagesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_alwaysopenpdfexternally", + "displayName": "Always open PDF files externally", + "options": [ + { + "id": "com.apple.managedclient.preferences_alwaysopenpdfexternally_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_alwaysopenpdfexternally_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for InPrivate and Guest profiles", + "options": [ + { + "id": "com.apple.managedclient.preferences_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Enable ambient authentication in regular sessions only.", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enable ambient authentication in InPrivate and regular sessions", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_ambientauthenticationinprivatemodesenabled_2", + "displayName": "Enable ambient authentication in guest and regular sessions", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_ambientauthenticationinprivatemodesenabled_3", + "displayName": "Enable ambient authentication in regular, InPrivate and guest sessions", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_appcacheforceenabled", + "displayName": "Allows the AppCache feature to be re-enabled, even if it's turned off by default", + "options": [ + { + "id": "com.apple.managedclient.preferences_appcacheforceenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_appcacheforceenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem", + "displayName": "Applications", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app", + "displayName": "Company Portal", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_application id", + "displayName": "Company Portal Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_lcid", + "displayName": "Company Portal LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_company portal.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app", + "displayName": "Microsoft Defender ATP (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_application id", + "displayName": "Microsoft Defender ATP Application ID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_lcid", + "displayName": "Microsoft Defender ATP LCID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_manifestserver", + "displayName": "Update channel override (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender atp.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app", + "displayName": "Microsoft Defender", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_application id", + "displayName": "Microsoft Defender Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_lcid", + "displayName": "Microsoft Defender LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft defender.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app", + "displayName": "Microsoft Edge Beta (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_application id", + "displayName": "Microsoft Edge Beta Application ID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_lcid", + "displayName": "Microsoft Edge Beta LCID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_manifestserver", + "displayName": "Update channel override (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge beta.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app", + "displayName": "Microsoft Edge Canary (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_application id", + "displayName": "Microsoft Edge Canary Application ID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_lcid", + "displayName": "Microsoft Edge Canary LCID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_manifestserver", + "displayName": "Update channel override (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge canary.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app", + "displayName": "Microsoft Edge Dev (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_application id", + "displayName": "Microsoft Edge Dev Application ID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_lcid", + "displayName": "Microsoft Edge Dev LCID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_manifestserver", + "displayName": "Update channel override (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge dev.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app", + "displayName": "Microsoft Edge (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_application id", + "displayName": "Microsoft Edge Application ID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_lcid", + "displayName": "Microsoft Edge LCID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_manifestserver", + "displayName": "Update channel override (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft edge.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app", + "displayName": "Microsoft Excel", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_application id", + "displayName": "Microsoft Excel Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_lcid", + "displayName": "Microsoft Excel LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft excel.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app", + "displayName": "Microsoft OneNote", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_application id", + "displayName": "Microsoft OneNote Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_lcid", + "displayName": "Microsoft OneNote LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft onenote.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app", + "displayName": "Microsoft Outlook", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_application id", + "displayName": "Microsoft Outlook Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_lcid", + "displayName": "Microsoft Outlook LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft outlook.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app", + "displayName": "Microsoft PowerPoint", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_application id", + "displayName": "Microsoft PowerPoint Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_lcid", + "displayName": "Microsoft PowerPoint LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft powerpoint.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app", + "displayName": "Microsoft Remote Desktop", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_application id", + "displayName": "Microsoft Remote Desktop Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_lcid", + "displayName": "Microsoft Remote Desktop LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft remote desktop.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams (work or school).app", + "displayName": "Microsoft Teams (work or school).app", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams (work or school).app_application id", + "displayName": "Microsoft Teams (work or school) Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams (work or school).app_lcid", + "displayName": "Microsoft Teams (work or school) LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams (work or school).app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams (work or school).app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams (work or school).app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams (work or school).app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams (work or school).app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams classic.app", + "displayName": "Microsoft Teams classic", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams classic.app_application id", + "displayName": "ApplicationsSystem//Applications/Microsoft Teams classic.app/Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams classic.app_lcid", + "displayName": "Microsoft Teams classic LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams classic.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams classic.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams classic.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams classic.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams classic.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app", + "displayName": "Microsoft Teams (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_application id", + "displayName": "Microsoft Teams Application ID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_lcid", + "displayName": "Microsoft Teams LCID (Deprecated)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_manifestserver", + "displayName": "Update channel override (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft teams.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app", + "displayName": "Microsoft Word", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_application id", + "displayName": "Microsoft Word Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_lcid", + "displayName": "Microsoft Word LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_microsoft word.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app", + "displayName": "OneDrive", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_application id", + "displayName": "OneDrive Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_lcid", + "displayName": "OneDrive LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_onedrive.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app", + "displayName": "Skype for Business", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_application id", + "displayName": "Skype for Business Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_lcid", + "displayName": "Skype for Business LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_applications_skype for business.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app", + "displayName": "Microsoft Auto Update", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_application id", + "displayName": "Microsoft AutoUpdate Application ID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_channelname", + "displayName": "Channel Name (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_channelname_2", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_lcid", + "displayName": "Microsoft AutoUpdate LCID", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_manifestserver", + "displayName": "Update channel override", + "options": [ + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_manifestserver_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_manifestserver_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_manifestserver_2", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_applicationssystem_library_application support_microsoft_mau2.0_microsoft autoupdate.app_manifestserver_3", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_audiocaptureallowed", + "displayName": "Allow or block audio capture", + "options": [ + { + "id": "com.apple.managedclient.preferences_audiocaptureallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_audiocaptureallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_audiocaptureallowedurls", + "displayName": "Sites that can access audio capture devices without requesting permission", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_audiosandboxenabled", + "displayName": "Allow the audio sandbox to run", + "options": [ + { + "id": "com.apple.managedclient.preferences_audiosandboxenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_audiosandboxenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_authnegotiatedelegateallowlist", + "displayName": "Specifies a list of servers that Microsoft Edge can delegate user credentials to", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_authschemes", + "displayName": "Supported authentication schemes", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_authserverallowlist", + "displayName": "Configure list of allowed authentication servers", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_autofilladdressenabled", + "displayName": "Enable AutoFill for addresses", + "options": [ + { + "id": "com.apple.managedclient.preferences_autofilladdressenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_autofilladdressenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_autofillcreditcardenabled", + "displayName": "Enable AutoFill for credit cards", + "options": [ + { + "id": "com.apple.managedclient.preferences_autofillcreditcardenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_autofillcreditcardenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_autoimportatfirstrun", + "displayName": "Automatically import another browser's data and settings at first run", + "options": [ + { + "id": "com.apple.managedclient.preferences_autoimportatfirstrun_0", + "displayName": "Automatically imports all supported datatypes and settings from the default browser", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_autoimportatfirstrun_1", + "displayName": "Automatically imports all supported datatypes and settings from Internet Explorer", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_autoimportatfirstrun_2", + "displayName": "Automatically imports all supported datatypes and settings from Google Chrome", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_autoimportatfirstrun_3", + "displayName": "Automatically imports all supported datatypes and settings from Safari", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_autoimportatfirstrun_4", + "displayName": "Disables automatic import, and the import section of the first-run experience is skipped", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_autoimportatfirstrun_5", + "displayName": "Automatically imports all supported datatypes and settings from Mozilla Firefox", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_automaticallydownloadexternalcontent", + "displayName": "Download embedded images", + "options": [ + { + "id": "com.apple.managedclient.preferences_automaticallydownloadexternalcontent_0", + "displayName": "Never download images", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_automaticallydownloadexternalcontent_1", + "displayName": "Automatically download images from users in the address book", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_automaticallydownloadexternalcontent_2", + "displayName": "Always download images regardless of sender", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_automaticdefinitionupdateenabled", + "displayName": "Automatic security intelligence updates", + "options": [ + { + "id": "com.apple.managedclient.preferences_automaticdefinitionupdateenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_automaticdefinitionupdateenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_automaticsamplesubmission", + "displayName": "Enable / disable automatic sample submissions", + "options": [ + { + "id": "com.apple.managedclient.preferences_automaticsamplesubmission_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_automaticsamplesubmission_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_automaticuploadbandwidthpercentage", + "displayName": "Automatic upload bandwidth percentage", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_autoopenallowedforurls", + "displayName": "URLs where AutoOpenFileTypes can apply", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_autoopenfiletypes", + "displayName": "List of file types that should be automatically opened on download", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_autoplayallowed", + "displayName": "Allow media autoplay for websites", + "options": [ + { + "id": "com.apple.managedclient.preferences_autoplayallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_autoplayallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_autoselectcertificateforurls", + "displayName": "Automatically select client certificates for these sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_backgroundtemplatelistupdatesenabled", + "displayName": "Enables background updates to the list of available templates for Collections and other features that use templates", + "options": [ + { + "id": "com.apple.managedclient.preferences_backgroundtemplatelistupdatesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_backgroundtemplatelistupdatesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_basicauthoverhttpenabled", + "displayName": "Allow Basic authentication for HTTP", + "options": [ + { + "id": "com.apple.managedclient.preferences_basicauthoverhttpenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_basicauthoverhttpenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_bingadssuppression", + "displayName": "Block all ads on Bing search results", + "options": [ + { + "id": "com.apple.managedclient.preferences_bingadssuppression_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_bingadssuppression_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_blockexternalextensions", + "displayName": "Blocks external extensions from being installed", + "options": [ + { + "id": "com.apple.managedclient.preferences_blockexternalextensions_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_blockexternalextensions_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_blockexternalsync", + "displayName": "Block external sync", + "options": [ + { + "id": "com.apple.managedclient.preferences_blockexternalsync_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_blockexternalsync_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_blockthirdpartycookies", + "displayName": "Block third party cookies", + "options": [ + { + "id": "com.apple.managedclient.preferences_blockthirdpartycookies_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_blockthirdpartycookies_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_browseraddprofileenabled", + "displayName": "Enable profile creation from the Identity flyout menu or the Settings page", + "options": [ + { + "id": "com.apple.managedclient.preferences_browseraddprofileenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_browseraddprofileenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_browserguestmodeenabled", + "displayName": "Enable guest mode", + "options": [ + { + "id": "com.apple.managedclient.preferences_browserguestmodeenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_browserguestmodeenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_browsernetworktimequeriesenabled", + "displayName": "Allow queries to a Browser Network Time service", + "options": [ + { + "id": "com.apple.managedclient.preferences_browsernetworktimequeriesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_browsernetworktimequeriesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_browsersignin", + "displayName": "Browser sign-in settings", + "options": [ + { + "id": "com.apple.managedclient.preferences_browsersignin_0", + "displayName": "Disable browser sign-in", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_browsersignin_1", + "displayName": "Enable browser sign-in", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_browsersignin_2", + "displayName": "Force users to sign-in to use the browser", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_builtincertificateverifierenabled", + "displayName": "Determines whether the built-in certificate verifier will be used to verify server certificates", + "options": [ + { + "id": "com.apple.managedclient.preferences_builtincertificateverifierenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_builtincertificateverifierenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_builtindnsclientenabled", + "displayName": "Use built-in DNS client", + "options": [ + { + "id": "com.apple.managedclient.preferences_builtindnsclientenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_builtindnsclientenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_calendarfirstdayofweek", + "displayName": "Specify first day of the week", + "options": [ + { + "id": "com.apple.managedclient.preferences_calendarfirstdayofweek_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_calendarfirstdayofweek_1", + "displayName": "Monday", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_calendarfirstdayofweek_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_calendarfirstdayofweek_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_calendarfirstdayofweek_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_calendarfirstdayofweek_5", + "displayName": "Friday", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_calendarfirstdayofweek_6", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_certificatetransparencyenforcementdisabledforcas", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_certificatetransparencyenforcementdisabledforlegacycas", + "displayName": "Disable Certificate Transparency enforcement for a list of legacy certificate authorities", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_certificatetransparencyenforcementdisabledforurls", + "displayName": "Disable Certificate Transparency enforcement for specific URLs", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_channelname", + "displayName": "Update channel", + "options": [ + { + "id": "com.apple.managedclient.preferences_channelname_0", + "displayName": "Current Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_channelname_1", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_channelname_2", + "displayName": "Current Channel (Deferred)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_channelname_3", + "displayName": "Beta Channel", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_channelname_4", + "displayName": "Current Channel (Monthly)", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_clearbrowsingdataonexit", + "displayName": "Clear browsing data when Microsoft Edge closes", + "options": [ + { + "id": "com.apple.managedclient.preferences_clearbrowsingdataonexit_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_clearbrowsingdataonexit_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_clearcachedimagesandfilesonexit", + "displayName": "Clear cached images and files when Microsoft Edge closes", + "options": [ + { + "id": "com.apple.managedclient.preferences_clearcachedimagesandfilesonexit_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_clearcachedimagesandfilesonexit_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_cloudblocklevel", + "displayName": "Cloud Block Level", + "options": [ + { + "id": "com.apple.managedclient.preferences_cloudblocklevel_0", + "displayName": "normal", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_cloudblocklevel_1", + "displayName": "moderate", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_cloudblocklevel_2", + "displayName": "high", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_cloudblocklevel_3", + "displayName": "high_plus", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_cloudblocklevel_4", + "displayName": "zero_tolerance", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_collectionsservicesandexportsblocklist", + "displayName": "Block access to a specified list of services and export targets in Collections", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_commandlineflagsecuritywarningsenabled", + "displayName": "Enable security warnings for command-line flags", + "options": [ + { + "id": "com.apple.managedclient.preferences_commandlineflagsecuritywarningsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_commandlineflagsecuritywarningsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_componentupdatesenabled", + "displayName": "Enable component updates in Microsoft Edge", + "options": [ + { + "id": "com.apple.managedclient.preferences_componentupdatesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_componentupdatesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_configuredonottrack", + "displayName": "Configure Do Not Track", + "options": [ + { + "id": "com.apple.managedclient.preferences_configuredonottrack_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_configuredonottrack_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_configurefriendlyurlformat", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users", + "options": [ + { + "id": "com.apple.managedclient.preferences_configurefriendlyurlformat_0", + "displayName": "The plain URL without any extra information, such as the page's title. This is the recommended option when this policy is configured. For more information, see the description.", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_configurefriendlyurlformat_1", + "displayName": "Titled Hyperlink: A hyperlink that points to the copied URL, but whose visible text is the title of the destination page. This is the Friendly URL format.", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_configurefriendlyurlformat_2", + "displayName": "Coming soon. If set, behaves the same as 'Plain URL'.", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_configureonlinetexttospeech", + "displayName": "Configure Online Text To Speech", + "options": [ + { + "id": "com.apple.managedclient.preferences_configureonlinetexttospeech_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_configureonlinetexttospeech_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_consumerexperience", + "displayName": "Control sign-in to consumer version", + "options": [ + { + "id": "com.apple.managedclient.preferences_consumerexperience_0", + "displayName": "enabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_consumerexperience_1", + "displayName": "disabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_cookiesallowedforurls", + "displayName": "Allow cookies on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_cookiesblockedforurls", + "displayName": "Block cookies on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_cookiessessiononlyforurls", + "displayName": "Limit cookies from specific websites to the current session", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_customhelplink", + "displayName": "Specify custom help link", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_datalossprevention", + "displayName": "Use Data Loss Prevention", + "options": [ + { + "id": "com.apple.managedclient.preferences_datalossprevention_0", + "displayName": "enabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_datalossprevention_1", + "displayName": "disabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultbrowsersettingenabled", + "displayName": "Set Microsoft Edge as default browser", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultbrowsersettingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultbrowsersettingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultcookiessetting", + "displayName": "Configure cookies", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultcookiessetting_0", + "displayName": "Let all sites create cookies", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultcookiessetting_1", + "displayName": "Don't let any site create cookies", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultcookiessetting_2", + "displayName": "Keep cookies for the duration of the session", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultemailaddressordomain", + "displayName": "Default domain name", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultfilesystemreadguardsetting_0", + "displayName": "Don't allow any site to request read access to files and directories via the File System API", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultfilesystemreadguardsetting_1", + "displayName": "Allow sites to ask the user to grant read access to files and directories via the File System API", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultfilesystemwriteguardsetting_0", + "displayName": "Don't allow any site to request write access to files and directories", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultfilesystemwriteguardsetting_1", + "displayName": "Allow sites to ask the user to grant write access to files and directories", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultgeolocationsetting", + "displayName": "Default geolocation setting", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultgeolocationsetting_0", + "displayName": "Allow sites to track users' physical location", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultgeolocationsetting_1", + "displayName": "Don't allow any site to track users' physical location", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultgeolocationsetting_2", + "displayName": "Ask whenever a site wants to track users' physical location", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultimagessetting", + "displayName": "Default images setting", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultimagessetting_0", + "displayName": "Allow all sites to show all images", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultimagessetting_1", + "displayName": "Don't allow any site to show images", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultinsecurecontentsetting_0", + "displayName": "Do not allow any site to load mixed content", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultinsecurecontentsetting_1", + "displayName": "Allow users to add exceptions to allow mixed content", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultjavascriptsetting", + "displayName": "Default JavaScript setting", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultjavascriptsetting_0", + "displayName": "Allow all sites to run JavaScript", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultjavascriptsetting_1", + "displayName": "Don't allow any site to run JavaScript", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultnotificationssetting", + "displayName": "Default notification setting", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultnotificationssetting_0", + "displayName": "Allow sites to show desktop notifications", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultnotificationssetting_1", + "displayName": "Don't allow any site to show desktop notifications", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultnotificationssetting_2", + "displayName": "Ask every time a site wants to show desktop notifications", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultpluginssetting", + "displayName": "Default Adobe Flash setting", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultpluginssetting_0", + "displayName": "Block the Adobe Flash plugin", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultpluginssetting_1", + "displayName": "Click to play", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultpopupssetting", + "displayName": "Default pop-up window setting", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultpopupssetting_0", + "displayName": "Allow all sites to show pop-ups", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultpopupssetting_1", + "displayName": "Do not allow any site to show popups", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultprinterselection", + "displayName": "Default printer selection rules", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchprovidercontextmenuaccessallowed", + "displayName": "Allow default search provider context menu search access", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultsearchprovidercontextmenuaccessallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchprovidercontextmenuaccessallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchproviderenabled", + "displayName": "Enable the default search provider", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultsearchproviderenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchproviderenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchproviderencodings", + "displayName": "Default search provider encodings", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchproviderimageurl", + "displayName": "Specifies the search-by-image feature for the default search provider", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for an image URL that uses POST", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchprovidername", + "displayName": "Default search provider name", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsearchprovidersuggesturl", + "displayName": "Default search provider URL for suggestions", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsensorssetting", + "displayName": "Default sensors setting", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultsensorssetting_0", + "displayName": "Allow sites to access sensors", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultsensorssetting_1", + "displayName": "Do not allow any site to access sensors", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultserialguardsetting", + "displayName": "Control use of the Serial API", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultserialguardsetting_0", + "displayName": "Do not allow any site to request access to serial ports via the Serial API", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultserialguardsetting_1", + "displayName": "Allow sites to ask for user permission to access a serial port", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultstolocalopensave", + "displayName": "Default to local files for open/save", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultstolocalopensave_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultstolocalopensave_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultweatherlocation", + "displayName": "Default weather location", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultwebbluetoothguardsetting_0", + "displayName": "Do not allow any site to request access to Bluetooth devices via the Web Bluetooth API", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultwebbluetoothguardsetting_1", + "displayName": "Allow sites to ask the user to grant access to a nearby Bluetooth device", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API", + "options": [ + { + "id": "com.apple.managedclient.preferences_defaultwebusbguardsetting_0", + "displayName": "Do not allow any site to request access to USB devices via the WebUSB API", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_defaultwebusbguardsetting_1", + "displayName": "Allow sites to ask the user to grant access to a connected USB device", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_developertoolsavailability", + "displayName": "Control where developer tools can be used", + "options": [ + { + "id": "com.apple.managedclient.preferences_developertoolsavailability_0", + "displayName": "Block the developer tools on extensions installed by enterprise policy, allow in other contexts", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_developertoolsavailability_1", + "displayName": "Allow using the developer tools", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_developertoolsavailability_2", + "displayName": "Don't allow using the developer tools", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_diagnosticdata", + "displayName": "Send required and optional diagnostic data about browser usage", + "options": [ + { + "id": "com.apple.managedclient.preferences_diagnosticdata_0", + "displayName": "Off (Not recommended)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_diagnosticdata_1", + "displayName": "Required data", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_diagnosticdata_2", + "displayName": "Optional data", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_diagnosticdatatypepreference", + "displayName": "Diagnostic data level", + "options": [ + { + "id": "com.apple.managedclient.preferences_diagnosticdatatypepreference_0", + "displayName": "Required data only", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_diagnosticdatatypepreference_1", + "displayName": "Required and Optional data", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_diagnosticdatatypepreference_2", + "displayName": "Do not send data", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_diagnosticlevel", + "displayName": "Diagnostic collection level", + "options": [ + { + "id": "com.apple.managedclient.preferences_diagnosticlevel_0", + "displayName": "optional", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_diagnosticlevel_1", + "displayName": "required", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disable3dapis", + "displayName": "Disable support for 3D graphics APIs", + "options": [ + { + "id": "com.apple.managedclient.preferences_disable3dapis_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disable3dapis_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disableauthnegotiatecnamelookup", + "displayName": "Disable CNAME lookup when negotiating Kerberos authentication", + "options": [ + { + "id": "com.apple.managedclient.preferences_disableauthnegotiatecnamelookup_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disableauthnegotiatecnamelookup_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disableautoconfig", + "displayName": "Disable automatic sign in", + "options": [ + { + "id": "com.apple.managedclient.preferences_disableautoconfig_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disableautoconfig_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablecloudfonts", + "displayName": "Disable cloud fonts", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablecloudfonts_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablecloudfonts_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disabledonotforward", + "displayName": "Disable 'Do Not Forward' options", + "options": [ + { + "id": "com.apple.managedclient.preferences_disabledonotforward_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disabledonotforward_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disableencryptonly", + "displayName": "Disable Microsoft 365 encryption options", + "options": [ + { + "id": "com.apple.managedclient.preferences_disableencryptonly_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disableencryptonly_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disableexport", + "displayName": "Disable export to OLM files", + "options": [ + { + "id": "com.apple.managedclient.preferences_disableexport_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disableexport_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablehydrationtoast", + "displayName": "Disable download toasts", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablehydrationtoast_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablehydrationtoast_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disableimport", + "displayName": "Disable import from OLM and PST files", + "options": [ + { + "id": "com.apple.managedclient.preferences_disableimport_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disableimport_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disableinsidercheckbox", + "displayName": "Disable Office Insider membership", + "options": [ + { + "id": "com.apple.managedclient.preferences_disableinsidercheckbox_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disableinsidercheckbox_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablepersonalsync", + "displayName": "Disable personal accounts", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablepersonalsync_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablepersonalsync_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablerespondtomeetingwithoutresponse", + "displayName": "Disable 'Do not send response'", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablerespondtomeetingwithoutresponse_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablerespondtomeetingwithoutresponse_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablescreenshots", + "displayName": "Disable taking screenshots", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablescreenshots_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablescreenshots_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablesignatures", + "displayName": "Disable email signatures", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablesignatures_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablesignatures_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disableskypemeeting", + "displayName": "Disable Skype for Business meeting support", + "options": [ + { + "id": "com.apple.managedclient.preferences_disableskypemeeting_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disableskypemeeting_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablesmimecompose", + "displayName": "Disable S/MIME", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablesmimecompose_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablesmimecompose_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disableteamsmeeting", + "displayName": "Disable Microsoft Teams meeting support", + "options": [ + { + "id": "com.apple.managedclient.preferences_disableteamsmeeting_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disableteamsmeeting_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disabletutorial", + "displayName": "Disable tutorial", + "options": [ + { + "id": "com.apple.managedclient.preferences_disabletutorial_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disabletutorial_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablevisualbasicexternaldylibs", + "displayName": "Prevent Visual Basic macros from using external dynamic libraries", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablevisualbasicexternaldylibs_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablevisualbasicexternaldylibs_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablevisualbasicmacscript", + "displayName": "Prevent Visual Basic macros from using legacy MacScript", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablevisualbasicmacscript_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablevisualbasicmacscript_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disablevisualbasictobindtopopen", + "displayName": "Prevent Visual Basic macros from using pipes to communicate", + "options": [ + { + "id": "com.apple.managedclient.preferences_disablevisualbasictobindtopopen_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_disablevisualbasictobindtopopen_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_disallowedthreatactions", + "displayName": "Disallowed threat actions", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_diskcachedir", + "displayName": "Set disk cache directory", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_diskcachesize", + "displayName": "Set disk cache size, in bytes", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_dnsinterceptionchecksenabled", + "displayName": "DNS interception checks enabled", + "options": [ + { + "id": "com.apple.managedclient.preferences_dnsinterceptionchecksenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_dnsinterceptionchecksenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_dnsoverhttpsmode", + "displayName": "Control the mode of DNS-over-HTTPS", + "options": [ + { + "id": "com.apple.managedclient.preferences_dnsoverhttpsmode_0", + "displayName": "Enable DNS-over-HTTPS with insecure fallback", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_dnsoverhttpsmode_1", + "displayName": "Disable DNS-over-HTTPS", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_dnsoverhttpsmode_2", + "displayName": "Enable DNS-over-HTTPS without insecure fallback", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_downloadbandwidthlimited", + "displayName": "Set maximum download throughput", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_downloaddirectory", + "displayName": "Set download directory", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_downloadrestrictions", + "displayName": "Allow download restrictions", + "options": [ + { + "id": "com.apple.managedclient.preferences_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_downloadrestrictions_1", + "displayName": "Block dangerous downloads", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_downloadrestrictions_2", + "displayName": "Block potentially dangerous downloads", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_earlypreview", + "displayName": "Enable / disable early preview", + "options": [ + { + "id": "com.apple.managedclient.preferences_earlypreview_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_earlypreview_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_edgecollectionsenabled", + "displayName": "Enable the Collections feature", + "options": [ + { + "id": "com.apple.managedclient.preferences_edgecollectionsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_edgecollectionsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_edgeshoppingassistantenabled", + "displayName": "Shopping in Microsoft Edge Enabled", + "options": [ + { + "id": "com.apple.managedclient.preferences_edgeshoppingassistantenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_edgeshoppingassistantenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_editfavoritesenabled", + "displayName": "Allows users to edit favorites", + "options": [ + { + "id": "com.apple.managedclient.preferences_editfavoritesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_editfavoritesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enableallocsiclients", + "displayName": "Enable simultaneous edits for Office apps", + "options": [ + { + "id": "com.apple.managedclient.preferences_enableallocsiclients_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enableallocsiclients_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enableauthnegotiateport", + "displayName": "Include non-standard port in Kerberos SPN", + "options": [ + { + "id": "com.apple.managedclient.preferences_enableauthnegotiateport_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enableauthnegotiateport_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enablebackgroundaccessibilitychecker", + "displayName": "Background accessibility checking", + "options": [ + { + "id": "com.apple.managedclient.preferences_enablebackgroundaccessibilitychecker_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablebackgroundaccessibilitychecker_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enablecheckforupdatesbutton", + "displayName": "Enable check for updates", + "options": [ + { + "id": "com.apple.managedclient.preferences_enablecheckforupdatesbutton_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablecheckforupdatesbutton_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enabled", + "displayName": "Enable / disable cloud delivered protection", + "options": [ + { + "id": "com.apple.managedclient.preferences_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enabledeprecatedwebplatformfeatures", + "displayName": "Re-enable deprecated web platform features for a limited time", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_enabledomainactionsdownload", + "displayName": "Enable Domain Actions Download from Microsoft", + "options": [ + { + "id": "com.apple.managedclient.preferences_enabledomainactionsdownload_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enabledomainactionsdownload_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enablefilehashcomputation", + "displayName": "Enable file hash computation", + "options": [ + { + "id": "com.apple.managedclient.preferences_enablefilehashcomputation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablefilehashcomputation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enablemediarouter", + "displayName": "Enable Google Cast", + "options": [ + { + "id": "com.apple.managedclient.preferences_enablemediarouter_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablemediarouter_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enablenewoutlook", + "displayName": "Enable New Outlook", + "options": [ + { + "id": "com.apple.managedclient.preferences_enablenewoutlook_0", + "displayName": "Classic Outlook only", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablenewoutlook_1", + "displayName": "Default to Classic Outlook. Users may switch to New Outlook", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablenewoutlook_2", + "displayName": "Default to New Outlook. Users may revert to Classic Outlook", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablenewoutlook_3", + "displayName": "New Outlook only", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enableodignore", + "displayName": "Ignore named files", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_enableonlinerevocationchecks", + "displayName": "Enable online OCSP/CRL checks", + "options": [ + { + "id": "com.apple.managedclient.preferences_enableonlinerevocationchecks_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enableonlinerevocationchecks_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enablerealtimeprotection", + "displayName": "Enable real-time protection (deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_enablerealtimeprotection_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablerealtimeprotection_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enablesha1forlocalanchors", + "displayName": "Allow certificates signed using SHA-1 when issued by local trust anchors", + "options": [ + { + "id": "com.apple.managedclient.preferences_enablesha1forlocalanchors_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enablesha1forlocalanchors_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel", + "displayName": "Enforcement level", + "options": [ + { + "id": "com.apple.managedclient.preferences_enforcementlevel_0", + "displayName": "disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel_1", + "displayName": "audit", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel_2", + "displayName": "block", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel_antivirusengine", + "displayName": "Enforcement level", + "options": [ + { + "id": "com.apple.managedclient.preferences_enforcementlevel_antivirusengine_0", + "displayName": "passive", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel_antivirusengine_1", + "displayName": "on_demand", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel_antivirusengine_2", + "displayName": "real_time", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel_tamperprotection", + "displayName": "Enforcement level", + "options": [ + { + "id": "com.apple.managedclient.preferences_enforcementlevel_tamperprotection_0", + "displayName": "disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel_tamperprotection_1", + "displayName": "audit", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enforcementlevel_tamperprotection_2", + "displayName": "block", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_enterprisehardwareplatformapienabled", + "displayName": "Allow managed extensions to use the Enterprise Hardware Platform API", + "options": [ + { + "id": "com.apple.managedclient.preferences_enterprisehardwareplatformapienabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_enterprisehardwareplatformapienabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_exclusions", + "displayName": "Scan exclusions", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_$type", + "displayName": "Type", + "options": [ + { + "id": "com.apple.managedclient.preferences_exclusions_item_$type_0", + "displayName": "Path", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_$type_1", + "displayName": "File extension", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_$type_2", + "displayName": "File name", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_args_tamperprotection", + "displayName": "Process's arguments", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_extension", + "displayName": "File extension", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_isdirectory", + "displayName": "Directory (selected) or file (not selected)", + "options": [ + { + "id": "com.apple.managedclient.preferences_exclusions_item_isdirectory_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_isdirectory_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_name", + "displayName": "Name", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_path", + "displayName": "Path", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_path_tamperprotection", + "displayName": "Process path", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_signingid_tamperprotection", + "displayName": "Process's Signing Identifier", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_item_teamid_tamperprotection", + "displayName": "Process's TeamIdentifier", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusions_tamperprotection", + "displayName": "Process exclusions", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_exclusionsmergepolicy", + "displayName": "Exclusions merge", + "options": [ + { + "id": "com.apple.managedclient.preferences_exclusionsmergepolicy_0", + "displayName": "merge", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_exclusionsmergepolicy_1", + "displayName": "admin_only", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_exemptdomainfiletypepairsfromfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service", + "options": [ + { + "id": "com.apple.managedclient.preferences_experimentationandconfigurationservicecontrol_0", + "displayName": "Retrieve configurations and experiments", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_experimentationandconfigurationservicecontrol_1", + "displayName": "Retrieve configurations only", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_experimentationandconfigurationservicecontrol_2", + "displayName": "Disable communication with the Experimentation and Configuration Service", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_extendedlogging", + "displayName": "Enable extended logging", + "options": [ + { + "id": "com.apple.managedclient.preferences_extendedlogging_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_extendedlogging_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_extensionallowedtypes", + "displayName": "Configure allowed extension types", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_extensioninstallallowlist", + "displayName": "Allow specific extensions to be installed", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_extensioninstallblocklist", + "displayName": "Control which extensions cannot be installed", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_extensioninstallforcelist", + "displayName": "Control which extensions are installed silently", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_extensioninstallsources", + "displayName": "Configure extension and user script install sources", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_externalprotocoldialogshowalwaysopencheckbox", + "displayName": "Show an \"Always open\" checkbox in external protocol dialog", + "options": [ + { + "id": "com.apple.managedclient.preferences_externalprotocoldialogshowalwaysopencheckbox_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_externalprotocoldialogshowalwaysopencheckbox_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_familysafetysettingsenabled", + "displayName": "Allow users to configure Family safety", + "options": [ + { + "id": "com.apple.managedclient.preferences_familysafetysettingsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_familysafetysettingsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_favoritesbarenabled", + "displayName": "Enable favorites bar", + "options": [ + { + "id": "com.apple.managedclient.preferences_favoritesbarenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_favoritesbarenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_filesondemandenabled", + "displayName": "Enable Files On-Demand", + "options": [ + { + "id": "com.apple.managedclient.preferences_filesondemandenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_filesondemandenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_filesystemreadaskforurls", + "displayName": "Allow read access via the File System API on these sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_filesystemreadblockedforurls", + "displayName": "Block read access via the File System API on these sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_filesystemwriteaskforurls", + "displayName": "Allow write access to files and directories on these sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_filesystemwriteblockedforurls", + "displayName": "Block write access to files and directories on these sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_forcebingsafesearch", + "displayName": "Enforce Bing SafeSearch", + "options": [ + { + "id": "com.apple.managedclient.preferences_forcebingsafesearch_0", + "displayName": "Don't configure search restrictions in Bing", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forcebingsafesearch_1", + "displayName": "Configure moderate search restrictions in Bing", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forcebingsafesearch_2", + "displayName": "Configure strict search restrictions in Bing", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_forcecertificatepromptsonmultiplematches", + "displayName": "Configure whether Microsoft Edge should automatically select a certificate when there are multiple certificate matches for a site configured with \"AutoSelectCertificateForUrls\"", + "options": [ + { + "id": "com.apple.managedclient.preferences_forcecertificatepromptsonmultiplematches_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forcecertificatepromptsonmultiplematches_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_forceephemeralprofiles", + "displayName": "Enable use of ephemeral profiles", + "options": [ + { + "id": "com.apple.managedclient.preferences_forceephemeralprofiles_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forceephemeralprofiles_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_forcegooglesafesearch", + "displayName": "Enforce Google SafeSearch", + "options": [ + { + "id": "com.apple.managedclient.preferences_forcegooglesafesearch_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forcegooglesafesearch_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_forcelegacydefaultreferrerpolicy", + "displayName": "Use a default referrer policy of no-referrer-when-downgrade.", + "options": [ + { + "id": "com.apple.managedclient.preferences_forcelegacydefaultreferrerpolicy_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forcelegacydefaultreferrerpolicy_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_forcesync", + "displayName": "Force synchronization of browser data and do not show the sync consent prompt", + "options": [ + { + "id": "com.apple.managedclient.preferences_forcesync_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forcesync_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode", + "options": [ + { + "id": "com.apple.managedclient.preferences_forceyoutuberestrict_0", + "displayName": "Do not enforce Restricted Mode on YouTube", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forceyoutuberestrict_1", + "displayName": "Enforce at least Moderate Restricted Mode on YouTube", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_forceyoutuberestrict_2", + "displayName": "Enforce Strict Restricted Mode for YouTube", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_globallyscopehttpauthcacheenabled", + "displayName": "Enable globally scoped HTTP auth cache", + "options": [ + { + "id": "com.apple.managedclient.preferences_globallyscopehttpauthcacheenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_globallyscopehttpauthcacheenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_gotointranetsiteforsinglewordentryinaddressbar", + "displayName": "Force direct intranet site navigation instead of searching on single word entries in the Address Bar", + "options": [ + { + "id": "com.apple.managedclient.preferences_gotointranetsiteforsinglewordentryinaddressbar_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_gotointranetsiteforsinglewordentryinaddressbar_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_guardagainstappmodification", + "displayName": "Guard against app modification", + "options": [ + { + "id": "com.apple.managedclient.preferences_guardagainstappmodification_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_guardagainstappmodification_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_hardwareaccelerationmodeenabled", + "displayName": "Use hardware acceleration when available", + "options": [ + { + "id": "com.apple.managedclient.preferences_hardwareaccelerationmodeenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_hardwareaccelerationmodeenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_hidedockicon", + "displayName": "Hide dock icon", + "options": [ + { + "id": "com.apple.managedclient.preferences_hidedockicon_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_hidedockicon_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_hidefirstrunexperience", + "displayName": "Hide the First-run experience and splash screen", + "options": [ + { + "id": "com.apple.managedclient.preferences_hidefirstrunexperience_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_hidefirstrunexperience_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_hidefoldersonmycomputerrootinfolderlist", + "displayName": "Hide On My Computer folders", + "options": [ + { + "id": "com.apple.managedclient.preferences_hidefoldersonmycomputerrootinfolderlist_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_hidefoldersonmycomputerrootinfolderlist_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_hidestatusmenuicon", + "displayName": "Show / hide status menu icon", + "options": [ + { + "id": "com.apple.managedclient.preferences_hidestatusmenuicon_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_hidestatusmenuicon_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_homepageisnewtabpage", + "displayName": "Set the new tab page as the home page", + "options": [ + { + "id": "com.apple.managedclient.preferences_homepageisnewtabpage_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_homepageisnewtabpage_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_homepagelocation", + "displayName": "Configure the home page URL", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_howtocheck", + "displayName": "Enable AutoUpdate", + "options": [ + { + "id": "com.apple.managedclient.preferences_howtocheck_0", + "displayName": "True", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_howtocheck_1", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_howtocheck_2", + "displayName": "Manual Check", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_hstspolicybypasslist", + "displayName": "Configure the list of names that will bypass the HSTS policy check", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_imagesallowedforurls", + "displayName": "Allow images on these sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_imagesblockedforurls", + "displayName": "Block images on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_importautofillformdata", + "displayName": "Allow importing of autofill form data", + "options": [ + { + "id": "com.apple.managedclient.preferences_importautofillformdata_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importautofillformdata_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importbrowsersettings", + "displayName": "Allow importing of browser settings", + "options": [ + { + "id": "com.apple.managedclient.preferences_importbrowsersettings_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importbrowsersettings_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importcookies", + "displayName": "Allow importing of Cookies", + "options": [ + { + "id": "com.apple.managedclient.preferences_importcookies_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importcookies_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importextensions", + "displayName": "Allow importing of extensions", + "options": [ + { + "id": "com.apple.managedclient.preferences_importextensions_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importextensions_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importfavorites", + "displayName": "Allow importing of favorites", + "options": [ + { + "id": "com.apple.managedclient.preferences_importfavorites_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importfavorites_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importhistory", + "displayName": "Allow importing of browsing history", + "options": [ + { + "id": "com.apple.managedclient.preferences_importhistory_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importhistory_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importhomepage", + "displayName": "Allow importing of home page settings", + "options": [ + { + "id": "com.apple.managedclient.preferences_importhomepage_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importhomepage_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importopentabs", + "displayName": "Allow importing of open tabs", + "options": [ + { + "id": "com.apple.managedclient.preferences_importopentabs_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importopentabs_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importpaymentinfo", + "displayName": "Allow importing of payment info", + "options": [ + { + "id": "com.apple.managedclient.preferences_importpaymentinfo_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importpaymentinfo_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importsavedpasswords", + "displayName": "Allow importing of saved passwords", + "options": [ + { + "id": "com.apple.managedclient.preferences_importsavedpasswords_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importsavedpasswords_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importsearchengine", + "displayName": "Allow importing of search engine settings", + "options": [ + { + "id": "com.apple.managedclient.preferences_importsearchengine_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importsearchengine_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_importshortcuts", + "displayName": "Allow importing of shortcuts", + "options": [ + { + "id": "com.apple.managedclient.preferences_importshortcuts_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_importshortcuts_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_inprivatemodeavailability", + "displayName": "Configure InPrivate mode availability", + "options": [ + { + "id": "com.apple.managedclient.preferences_inprivatemodeavailability_0", + "displayName": "InPrivate mode available", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_inprivatemodeavailability_1", + "displayName": "InPrivate mode disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_inprivatemodeavailability_2", + "displayName": "InPrivate mode forced", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_insecurecontentallowedforurls", + "displayName": "Allow insecure content on specified sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_insecurecontentblockedforurls", + "displayName": "Block insecure content on specified sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_insecureformswarningsenabled", + "displayName": "Enable warnings for insecure forms", + "options": [ + { + "id": "com.apple.managedclient.preferences_insecureformswarningsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_insecureformswarningsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_intensivewakeupthrottlingenabled", + "displayName": "Control the IntensiveWakeUpThrottling feature", + "options": [ + { + "id": "com.apple.managedclient.preferences_intensivewakeupthrottlingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_intensivewakeupthrottlingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior", + "options": [ + { + "id": "com.apple.managedclient.preferences_intranetredirectbehavior_0", + "displayName": "Use default browser behavior.", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_intranetredirectbehavior_1", + "displayName": "Disable DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_intranetredirectbehavior_2", + "displayName": "Disable DNS interception checks; allow did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_intranetredirectbehavior_3", + "displayName": "Allow DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_isolateorigins", + "displayName": "Enable site isolation for specific origins", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_javascriptallowedforurls", + "displayName": "Allow JavaScript on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_javascriptblockedforurls", + "displayName": "Block JavaScript on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_kfmblockoptin", + "displayName": "Prevent users from using the Folder Backup feature (Known Folder Move)", + "options": [ + { + "id": "com.apple.managedclient.preferences_kfmblockoptin_0", + "displayName": "No prevention", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_kfmblockoptin_1", + "displayName": "Prevent Folder Backup", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_kfmblockoptin_2", + "displayName": "Prevent Folder Backup and Redirect to local device", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_kfmblockoptout", + "displayName": "Force users to use the Folder Backup feature (Known Folder Move)", + "options": [ + { + "id": "com.apple.managedclient.preferences_kfmblockoptout_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_kfmblockoptout_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_kfmoptinwithwizard", + "displayName": "Prompt users to enable the Folder Backup feature (Known Folder Move)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_kfmsilentoptin", + "displayName": "Automatically and silently enable the Folder Backup feature (Known Folder Move)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_kfmsilentoptindesktop", + "displayName": "Include ~/Desktop in Folder Backup (Known Folder Move)", + "options": [ + { + "id": "com.apple.managedclient.preferences_kfmsilentoptindesktop_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_kfmsilentoptindesktop_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_kfmsilentoptindocuments", + "displayName": "Include ~/Documents in Folder Backup (Known Folder Move)", + "options": [ + { + "id": "com.apple.managedclient.preferences_kfmsilentoptindocuments_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_kfmsilentoptindocuments_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_kfmsilentoptinwithnotification", + "displayName": "Display a notification to users once their folders have been redirected", + "options": [ + { + "id": "com.apple.managedclient.preferences_kfmsilentoptinwithnotification_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_kfmsilentoptinwithnotification_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_kioskaddressbareditingenabled", + "displayName": "Configure address bar editing for kiosk mode public browsing experience", + "options": [ + { + "id": "com.apple.managedclient.preferences_kioskaddressbareditingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_kioskaddressbareditingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_legacysamesitecookiebehaviorenabled", + "displayName": "Enable default legacy SameSite cookie behavior setting", + "options": [ + { + "id": "com.apple.managedclient.preferences_legacysamesitecookiebehaviorenabled_0", + "displayName": "Revert to legacy SameSite behavior for cookies on all sites", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_legacysamesitecookiebehaviorenabled_1", + "displayName": "Use SameSite-by-default behavior for cookies on all sites", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_legacysamesitecookiebehaviorenabledfordomainlist", + "displayName": "Revert to legacy SameSite behavior for cookies on specified sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_localprovidersenabled", + "displayName": "Allow suggestions from local providers", + "options": [ + { + "id": "com.apple.managedclient.preferences_localprovidersenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_localprovidersenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_manifestserver", + "displayName": "Deferred updates (Deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_manifestserver_0", + "displayName": "Defer 3 days", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_1", + "displayName": "Defer 7 days", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_2", + "displayName": "Defer 14 days", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_3", + "displayName": "Defer 21 days", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_4", + "displayName": "Defer 28 days", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_5", + "displayName": "Defer 45 days", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_6", + "displayName": "Pause at 16.64 (August 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_7", + "displayName": "Pause at 16.63 (July 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_8", + "displayName": "Pause at 16.62 (June 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_9", + "displayName": "Pause at 16.61 (May 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_10", + "displayName": "Pause at 16.60 (April 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_11", + "displayName": "Pause at 16.59 (March 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_12", + "displayName": "Pause at 16.58 (February 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_13", + "displayName": "Pause at 16.57 (January 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_14", + "displayName": "Pause at 16.56 (December 2021 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_15", + "displayName": "Pause at 16.55 (November 2021 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_16", + "displayName": "Pause at 16.54 (October 2021 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_17", + "displayName": "Pause at 16.53 (September 2021 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_18", + "displayName": "Pause at 16.52 (August 2021 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_19", + "displayName": "Pause at 16.51 (July 2021 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_20", + "displayName": "Pause at 16.80 (December 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_21", + "displayName": "Pause at 16.79 (November 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_22", + "displayName": "Pause at 16.78 (October 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_23", + "displayName": "Pause at 16.77 (September 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_24", + "displayName": "Pause at 16.76 (August 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_25", + "displayName": "Pause at 16.75 (July 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_26", + "displayName": "Pause at 16.74 (June 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_27", + "displayName": "Pause at 16.73 (May 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_28", + "displayName": "Pause at 16.72 (April 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_29", + "displayName": "Pause at 16.71 (March 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_30", + "displayName": "Pause at 16.70 (February 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_31", + "displayName": "Pause at 16.69 (January 2023 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_32", + "displayName": "Pause at 16.68 (December 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_33", + "displayName": "Pause at 16.67 (November 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_34", + "displayName": "Pause at 16.66 (October 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_35", + "displayName": "Pause at 16.65 (September 2022 Release)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_manifestserver_36", + "displayName": "Change Freeze", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_maxconnectionsperproxy", + "displayName": "Maximum number of concurrent connections to the proxy server", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_maximumondemandscanthreads", + "displayName": "Degree of parallelism for on-demand scans", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_mediaroutercastallowallips", + "displayName": "Allow Google Cast to connect to Cast devices on all IP addresses", + "options": [ + { + "id": "com.apple.managedclient.preferences_mediaroutercastallowallips_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_mediaroutercastallowallips_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_metricsreportingenabled", + "displayName": "Enable usage and crash-related data reporting", + "options": [ + { + "id": "com.apple.managedclient.preferences_metricsreportingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_metricsreportingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_nativemessagingallowlist", + "displayName": "Control which native messaging hosts users can use", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_nativemessagingblocklist", + "displayName": "Configure native messaging block list", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_nativemessaginguserlevelhosts", + "displayName": "Allow user-level native messaging hosts (installed without admin permissions)", + "options": [ + { + "id": "com.apple.managedclient.preferences_nativemessaginguserlevelhosts_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_nativemessaginguserlevelhosts_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_networkpredictionoptions", + "displayName": "Enable network prediction", + "options": [ + { + "id": "com.apple.managedclient.preferences_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular. (Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_networkpredictionoptions_2", + "displayName": "Don't predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_newtabpageallowedbackgroundtypes", + "displayName": "Configure the background types allowed for the new tab page layout", + "options": [ + { + "id": "com.apple.managedclient.preferences_newtabpageallowedbackgroundtypes_0", + "displayName": "Disable daily background image type", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_newtabpageallowedbackgroundtypes_1", + "displayName": "Disable custom background image type", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_newtabpageallowedbackgroundtypes_2", + "displayName": "Disable all background image types", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_newtabpagehidedefaulttopsites", + "displayName": "Hide the default top sites from the new tab page", + "options": [ + { + "id": "com.apple.managedclient.preferences_newtabpagehidedefaulttopsites_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_newtabpagehidedefaulttopsites_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_newtabpagelocation", + "displayName": "Configure the new tab page URL", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_newtabpageprerenderenabled", + "displayName": "Enable preload of the new tab page for faster rendering", + "options": [ + { + "id": "com.apple.managedclient.preferences_newtabpageprerenderenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_newtabpageprerenderenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_newtabpagesearchbox", + "displayName": "Configure the new tab page search box experience", + "options": [ + { + "id": "com.apple.managedclient.preferences_newtabpagesearchbox_0", + "displayName": "Search box (Recommended)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_newtabpagesearchbox_1", + "displayName": "Address bar", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_newtabpagesetfeedtype", + "displayName": "Configure the Microsoft Edge new tab page experience", + "options": [ + { + "id": "com.apple.managedclient.preferences_newtabpagesetfeedtype_0", + "displayName": "Microsoft News feed experience", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_newtabpagesetfeedtype_1", + "displayName": "Office 365 feed experience", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_notificationsallowedforurls", + "displayName": "Allow notifications on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_notificationsblockedforurls", + "displayName": "Block notifications on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_npssurveydisabled", + "displayName": "Disable user surveys", + "options": [ + { + "id": "com.apple.managedclient.preferences_npssurveydisabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_npssurveydisabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_ntlmv2enabled", + "displayName": "Control whether NTLMv2 authentication is enabled", + "options": [ + { + "id": "com.apple.managedclient.preferences_ntlmv2enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_ntlmv2enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_officeactivationemailaddress", + "displayName": "Office Activation Email Address", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_officeautosignin", + "displayName": "Enable automatic sign-in", + "options": [ + { + "id": "com.apple.managedclient.preferences_officeautosignin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_officeautosignin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_officeexperiencesanalyzingcontentpreference", + "displayName": "Allow experiences and functionality that analyzes user content", + "options": [ + { + "id": "com.apple.managedclient.preferences_officeexperiencesanalyzingcontentpreference_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_officeexperiencesanalyzingcontentpreference_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_officeexperiencesdownloadingcontentpreference", + "displayName": "Allow experiences and functionality that downloads user content", + "options": [ + { + "id": "com.apple.managedclient.preferences_officeexperiencesdownloadingcontentpreference_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_officeexperiencesdownloadingcontentpreference_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_officewebaddindisableomexcatalog", + "displayName": "Disable third-party store add-in catalog", + "options": [ + { + "id": "com.apple.managedclient.preferences_officewebaddindisableomexcatalog_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_officewebaddindisableomexcatalog_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_oldisablejunkoptionsprefkey", + "displayName": "Disable Junk settings", + "options": [ + { + "id": "com.apple.managedclient.preferences_oldisablejunkoptionsprefkey_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_oldisablejunkoptionsprefkey_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_openatlogin", + "displayName": "Open at login", + "options": [ + { + "id": "com.apple.managedclient.preferences_openatlogin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_openatlogin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_optionalconnectedexperiencespreference", + "displayName": "Allow optional connected experiences", + "options": [ + { + "id": "com.apple.managedclient.preferences_optionalconnectedexperiencespreference_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_optionalconnectedexperiencespreference_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_overridesecurityrestrictionsoninsecureorigin", + "displayName": "Control where security restrictions on insecure origins apply", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_passivemode", + "displayName": "Enable passive mode (deprecated)", + "options": [ + { + "id": "com.apple.managedclient.preferences_passivemode_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_passivemode_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_passwordmanagerenabled", + "displayName": "Enable saving passwords to the password manager", + "options": [ + { + "id": "com.apple.managedclient.preferences_passwordmanagerenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_passwordmanagerenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_passwordmonitorallowed", + "displayName": "Allow Microsoft Edge to monitor user passwords", + "options": [ + { + "id": "com.apple.managedclient.preferences_passwordmonitorallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_passwordmonitorallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_passwordprotectionloginurls", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture fingerprint of password", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_passwordprotectionwarningtrigger", + "displayName": "Configure password protection warning trigger", + "options": [ + { + "id": "com.apple.managedclient.preferences_passwordprotectionwarningtrigger_0", + "displayName": "Password protection warning is off", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_passwordprotectionwarningtrigger_1", + "displayName": "Password protection warning is triggered by password reuse", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_passwordrevealenabled", + "displayName": "Enable Password reveal button", + "options": [ + { + "id": "com.apple.managedclient.preferences_passwordrevealenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_passwordrevealenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_paymentmethodqueryenabled", + "displayName": "Allow websites to query for available payment methods", + "options": [ + { + "id": "com.apple.managedclient.preferences_paymentmethodqueryenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_paymentmethodqueryenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_personalizationreportingenabled", + "displayName": "Allow personalization of ads, search and news by sending browsing history to Microsoft", + "options": [ + { + "id": "com.apple.managedclient.preferences_personalizationreportingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_personalizationreportingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_phoenixonboardingflowfrelaunched", + "displayName": "Hide the 'Personalize the new Outlook' dialog", + "options": [ + { + "id": "com.apple.managedclient.preferences_phoenixonboardingflowfrelaunched_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_phoenixonboardingflowfrelaunched_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_pluginsblockedforurls", + "displayName": "Block the Adobe Flash plug-in on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_popupsallowedforurls", + "displayName": "Allow pop-up windows on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_popupsblockedforurls", + "displayName": "Block pop-up windows on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_preventsmartscreenpromptoverride", + "displayName": "Prevent bypassing Microsoft Defender SmartScreen prompts for sites", + "options": [ + { + "id": "com.apple.managedclient.preferences_preventsmartscreenpromptoverride_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_preventsmartscreenpromptoverride_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_preventsmartscreenpromptoverrideforfiles", + "displayName": "Prevent bypassing of Microsoft Defender SmartScreen warnings about downloads", + "options": [ + { + "id": "com.apple.managedclient.preferences_preventsmartscreenpromptoverrideforfiles_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_preventsmartscreenpromptoverrideforfiles_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_printertypedenylist", + "displayName": "Disable printer types on the deny list", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_printheaderfooter", + "displayName": "Print headers and footers", + "options": [ + { + "id": "com.apple.managedclient.preferences_printheaderfooter_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_printheaderfooter_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_printingenabled", + "displayName": "Enable printing", + "options": [ + { + "id": "com.apple.managedclient.preferences_printingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_printingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_printpreviewusesystemdefaultprinter", + "displayName": "Set the system default printer as the default printer", + "options": [ + { + "id": "com.apple.managedclient.preferences_printpreviewusesystemdefaultprinter_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_printpreviewusesystemdefaultprinter_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_proactiveauthenabled", + "displayName": "Enable Proactive Authentication", + "options": [ + { + "id": "com.apple.managedclient.preferences_proactiveauthenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_proactiveauthenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_promotionaltabsenabled", + "displayName": "Enable full-tab promotional content", + "options": [ + { + "id": "com.apple.managedclient.preferences_promotionaltabsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_promotionaltabsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_promptfordownloadlocation", + "displayName": "Ask where to save downloaded files", + "options": [ + { + "id": "com.apple.managedclient.preferences_promptfordownloadlocation_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_promptfordownloadlocation_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_proxybypasslist", + "displayName": "Configure proxy bypass rules", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_proxymode", + "displayName": "Configure proxy server settings", + "options": [ + { + "id": "com.apple.managedclient.preferences_proxymode_0", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_proxymode_1", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_proxymode_2", + "displayName": "Use a .pac proxy script", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_proxymode_3", + "displayName": "Use fixed proxy servers", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_proxymode_4", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_proxypacurl", + "displayName": "Set the proxy .pac file URL", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_proxyserver", + "displayName": "Configure address or URL of proxy server", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_quicallowed", + "displayName": "Allow QUIC protocol", + "options": [ + { + "id": "com.apple.managedclient.preferences_quicallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_quicallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_relaunchnotification", + "displayName": "Notify a user that a browser restart is recommended or required for pending updates", + "options": [ + { + "id": "com.apple.managedclient.preferences_relaunchnotification_0", + "displayName": "Recommended - Show a recurring prompt to the user indicating that a restart is recommended", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_relaunchnotification_1", + "displayName": "Required - Show a recurring prompt to the user indicating that a restart is required", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_relaunchnotificationperiod", + "displayName": "Set the time period for update notifications", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_resolvenavigationerrorsusewebservice", + "displayName": "Enable resolution of navigation errors using a web service", + "options": [ + { + "id": "com.apple.managedclient.preferences_resolvenavigationerrorsusewebservice_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_resolvenavigationerrorsusewebservice_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_restoreonstartup", + "displayName": "Action to take on startup", + "options": [ + { + "id": "com.apple.managedclient.preferences_restoreonstartup_0", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_restoreonstartup_1", + "displayName": "Open a list of URLs", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_restoreonstartup_2", + "displayName": "Open a new tab", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_restoreonstartupurls", + "displayName": "Sites to open when the browser starts", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_restrictsignintopattern", + "displayName": "Restrict which accounts can be used as Microsoft Edge primary accounts", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_runallflashinallowmode", + "displayName": "Extend Adobe Flash content setting to all content", + "options": [ + { + "id": "com.apple.managedclient.preferences_runallflashinallowmode_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_runallflashinallowmode_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_savecookiesonexit", + "displayName": "Save cookies when Microsoft Edge closes", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_savingbrowserhistorydisabled", + "displayName": "Disable saving browser history", + "options": [ + { + "id": "com.apple.managedclient.preferences_savingbrowserhistorydisabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_savingbrowserhistorydisabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_scanafterdefinitionupdate", + "displayName": "Run a scan after definitions are updated", + "options": [ + { + "id": "com.apple.managedclient.preferences_scanafterdefinitionupdate_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_scanafterdefinitionupdate_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_scanarchives", + "displayName": "Scanning inside archive files", + "options": [ + { + "id": "com.apple.managedclient.preferences_scanarchives_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_scanarchives_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_scanhistorymaximumitems", + "displayName": "Scan history size", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_scanresultsretentiondays", + "displayName": "Scan results retention", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_screencaptureallowed", + "displayName": "Allow or deny screen capture", + "options": [ + { + "id": "com.apple.managedclient.preferences_screencaptureallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_screencaptureallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_scrolltotextfragmentenabled", + "displayName": "Enable scrolling to text specified in URL fragments", + "options": [ + { + "id": "com.apple.managedclient.preferences_scrolltotextfragmentenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_scrolltotextfragmentenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_searchsuggestenabled", + "displayName": "Enable search suggestions", + "options": [ + { + "id": "com.apple.managedclient.preferences_searchsuggestenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_searchsuggestenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_securitykeypermitattestation", + "displayName": "Websites or domains that don't need permission to use direct Security Key attestation", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_sendsiteinfotoimproveservices", + "displayName": "Send site information to improve Microsoft services", + "options": [ + { + "id": "com.apple.managedclient.preferences_sendsiteinfotoimproveservices_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sendsiteinfotoimproveservices_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_sensorsallowedforurls", + "displayName": "Allow access to sensors on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_sensorsblockedforurls", + "displayName": "Block access to sensors on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_serialaskforurls", + "displayName": "Allow the Serial API on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_serialblockedforurls", + "displayName": "Block the Serial API on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_sharepointonpremfrontdoorurl", + "displayName": "SharePoint Server Front Door URL", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_sharepointonpremprioritizationpolicy", + "displayName": "SharePoint Prioritization", + "options": [ + { + "id": "com.apple.managedclient.preferences_sharepointonpremprioritizationpolicy_0", + "displayName": "Prioritize SharePoint Online", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sharepointonpremprioritizationpolicy_1", + "displayName": "Prioritize SharePoint Server", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_sharepointonpremtenantname", + "displayName": "SharePoint Server Tenant Name", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_showcasticonintoolbar", + "displayName": "Show the cast icon in the toolbar", + "options": [ + { + "id": "com.apple.managedclient.preferences_showcasticonintoolbar_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_showcasticonintoolbar_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_showdocstageonlaunch", + "displayName": "Show Template Gallery on app launch", + "options": [ + { + "id": "com.apple.managedclient.preferences_showdocstageonlaunch_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_showdocstageonlaunch_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_showhomebutton", + "displayName": "Show Home button on toolbar", + "options": [ + { + "id": "com.apple.managedclient.preferences_showhomebutton_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_showhomebutton_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_showmicrosoftrewards", + "displayName": "Show Microsoft Rewards experiences", + "options": [ + { + "id": "com.apple.managedclient.preferences_showmicrosoftrewards_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_showmicrosoftrewards_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_showofficeshortcutinfavoritesbar", + "displayName": "Show Microsoft Office shortcut in favorites bar", + "options": [ + { + "id": "com.apple.managedclient.preferences_showofficeshortcutinfavoritesbar_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_showofficeshortcutinfavoritesbar_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_showwhatsnewonlaunch", + "displayName": "Show Whats New dialog", + "options": [ + { + "id": "com.apple.managedclient.preferences_showwhatsnewonlaunch_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_showwhatsnewonlaunch_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_signedhttpexchangeenabled", + "displayName": "Enable Signed HTTP Exchange (SXG) support", + "options": [ + { + "id": "com.apple.managedclient.preferences_signedhttpexchangeenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_signedhttpexchangeenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_siteperprocess", + "displayName": "Enable site isolation for every site", + "options": [ + { + "id": "com.apple.managedclient.preferences_siteperprocess_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_siteperprocess_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabsblockedforurls", + "displayName": "Block Sleeping Tabs on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabsenabled", + "displayName": "Configure Sleeping Tabs", + "options": [ + { + "id": "com.apple.managedclient.preferences_sleepingtabsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs", + "options": [ + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout_0", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout_1", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout_2", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout_3", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout_4", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout_5", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout_6", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sleepingtabstimeout_7", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_smartscreenallowlistdomains", + "displayName": "Configure the list of domains for which Microsoft Defender SmartScreen won't trigger warnings", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_smartscreenenabled", + "displayName": "Configure Microsoft Defender SmartScreen", + "options": [ + { + "id": "com.apple.managedclient.preferences_smartscreenenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_smartscreenenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_smartscreenpuaenabled", + "displayName": "Configure Microsoft Defender SmartScreen to block potentially unwanted apps", + "options": [ + { + "id": "com.apple.managedclient.preferences_smartscreenpuaenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_smartscreenpuaenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_smimecertificateslookuporder", + "displayName": "Set the order in which S/MIME certificates are considered", + "options": [ + { + "id": "com.apple.managedclient.preferences_smimecertificateslookuporder_0", + "displayName": "Contacts", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_smimecertificateslookuporder_1", + "displayName": "Global Address List", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_smimecertificateslookuporder_2", + "displayName": "Device", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_smimecertificateslookuporder_3", + "displayName": "LDAP", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_speechrecognitionenabled", + "displayName": "Configure Speech Recognition", + "options": [ + { + "id": "com.apple.managedclient.preferences_speechrecognitionenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_speechrecognitionenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_spellcheckenabled", + "displayName": "Enable spellcheck", + "options": [ + { + "id": "com.apple.managedclient.preferences_spellcheckenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_spellcheckenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_sslerroroverrideallowed", + "displayName": "Allow users to proceed from the HTTPS warning page", + "options": [ + { + "id": "com.apple.managedclient.preferences_sslerroroverrideallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sslerroroverrideallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_sslversionmin", + "displayName": "Minimum TLS version enabled", + "options": [ + { + "id": "com.apple.managedclient.preferences_sslversionmin_0", + "displayName": "TLS 1.0", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sslversionmin_1", + "displayName": "TLS 1.1", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_sslversionmin_2", + "displayName": "TLS 1.2", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_startdaemononapplaunch", + "displayName": "Register app on launch", + "options": [ + { + "id": "com.apple.managedclient.preferences_startdaemononapplaunch_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_startdaemononapplaunch_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_strictermixedcontenttreatmentenabled", + "displayName": "Enable stricter treatment for mixed content", + "options": [ + { + "id": "com.apple.managedclient.preferences_strictermixedcontenttreatmentenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_strictermixedcontenttreatmentenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_suppresso365autodiscoveroverride", + "displayName": "Use domain-based autodiscover instead of Office 365", + "options": [ + { + "id": "com.apple.managedclient.preferences_suppresso365autodiscoveroverride_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_suppresso365autodiscoveroverride_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_suppressunsupportedoswarning", + "displayName": "Suppress the unsupported OS warning", + "options": [ + { + "id": "com.apple.managedclient.preferences_suppressunsupportedoswarning_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_suppressunsupportedoswarning_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_syncdisabled", + "displayName": "Disable synchronization of data using Microsoft sync services", + "options": [ + { + "id": "com.apple.managedclient.preferences_syncdisabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_syncdisabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_synctypeslistdisabled", + "displayName": "Configure the list of types that are excluded from synchronization", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_systemextensions", + "displayName": "Use System Extensions", + "options": [ + { + "id": "com.apple.managedclient.preferences_systemextensions_0", + "displayName": "enabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_systemextensions_1", + "displayName": "disabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_tabfreezingenabled", + "displayName": "Allow freezing of background tabs", + "options": [ + { + "id": "com.apple.managedclient.preferences_tabfreezingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_tabfreezingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_tags", + "displayName": "Device tags", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_tags_item_key", + "displayName": "Type of tag", + "options": { + "id": "com.apple.managedclient.preferences_tags_item_key_0", + "displayName": "GROUP", + "description": null + } + }, + { + "id": "com.apple.managedclient.preferences_tags_item_value", + "displayName": "Value of tag", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_targetblankimpliesnoopener", + "displayName": "Do not set window.opener for links targeting _blank", + "options": [ + { + "id": "com.apple.managedclient.preferences_targetblankimpliesnoopener_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_targetblankimpliesnoopener_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_taskmanagerendprocessenabled", + "displayName": "Enable ending processes in the Browser task manager", + "options": [ + { + "id": "com.apple.managedclient.preferences_taskmanagerendprocessenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_taskmanagerendprocessenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_threattypesettings", + "displayName": "Threat type settings", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_threattypesettings_item_key", + "displayName": "Threat type", + "options": [ + { + "id": "com.apple.managedclient.preferences_threattypesettings_item_key_0", + "displayName": "potentially_unwanted_application", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_threattypesettings_item_key_1", + "displayName": "archive_bomb", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_threattypesettings_item_value", + "displayName": "Action to take", + "options": [ + { + "id": "com.apple.managedclient.preferences_threattypesettings_item_value_0", + "displayName": "audit", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_threattypesettings_item_value_1", + "displayName": "block", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_threattypesettings_item_value_2", + "displayName": "off", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_threattypesettingsmergepolicy", + "displayName": "Threat type settings merge", + "options": [ + { + "id": "com.apple.managedclient.preferences_threattypesettingsmergepolicy_0", + "displayName": "merge", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_threattypesettingsmergepolicy_1", + "displayName": "admin_only", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_tls13hardeningforlocalanchorsenabled", + "displayName": "Enable a TLS 1.3 security feature for local trust anchors.", + "options": [ + { + "id": "com.apple.managedclient.preferences_tls13hardeningforlocalanchorsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_tls13hardeningforlocalanchorsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_tlsciphersuitedenylist", + "displayName": "Specify the TLS cipher suites to disable", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_totalmemorylimitmb", + "displayName": "Set limit on megabytes of memory a single Microsoft Edge instance can use.", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_trackingprevention", + "displayName": "Block tracking of users' web-browsing activity", + "options": [ + { + "id": "com.apple.managedclient.preferences_trackingprevention_0", + "displayName": "Off (no tracking prevention)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_trackingprevention_1", + "displayName": "Basic (blocks harmful trackers, content and ads will be personalized)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_trackingprevention_2", + "displayName": "Balanced (blocks harmful trackers and trackers from sites user has not visited; content and ads will be less personalized)", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_trackingprevention_3", + "displayName": "Strict (blocks harmful trackers and majority of trackers from all sites; content and ads will have minimal personalization. Some parts of sites might not work)", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_translateenabled", + "displayName": "Enable Translate", + "options": [ + { + "id": "com.apple.managedclient.preferences_translateenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_translateenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_trusto365autodiscoverredirect", + "displayName": "Trust Office 365 autodiscover redirects", + "options": [ + { + "id": "com.apple.managedclient.preferences_trusto365autodiscoverredirect_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_trusto365autodiscoverredirect_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_updatecache", + "displayName": "Update cache server", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_updatecheckfrequency", + "displayName": "Update check frequency (mins)", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_updatedeadline.daysbeforeforcedquit", + "displayName": "Days before forced updates", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_updatedeadline.finalcountdown", + "displayName": "Number of minutes for the final countdown timer", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_updateroptimization", + "displayName": "Updater optimization technique", + "options": [ + { + "id": "com.apple.managedclient.preferences_updateroptimization_0", + "displayName": "Lower network overhead", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_updateroptimization_1", + "displayName": "Lower processor overhead", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_updateroptimization_2", + "displayName": "Always use full updates", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_uploadbandwidthlimited", + "displayName": "Set maximum upload throughput", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_urlallowlist", + "displayName": "Define a list of allowed URLs", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_urlblocklist", + "displayName": "Block access to a list of URLs", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_useragentclienthintsenabled", + "displayName": "Enable the User-Agent Client Hints feature", + "options": [ + { + "id": "com.apple.managedclient.preferences_useragentclienthintsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_useragentclienthintsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_userdatadir", + "displayName": "Set the user data directory", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_userfeedbackallowed", + "displayName": "Allow user feedback", + "options": [ + { + "id": "com.apple.managedclient.preferences_userfeedbackallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_userfeedbackallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_userinitiatedfeedback", + "displayName": "User initiated feedback", + "options": [ + { + "id": "com.apple.managedclient.preferences_userinitiatedfeedback_0", + "displayName": "enabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_userinitiatedfeedback_1", + "displayName": "disabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_userpreference_apptheming", + "displayName": "Set theme", + "options": [ + { + "id": "com.apple.managedclient.preferences_userpreference_apptheming_0", + "displayName": "Blue", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_userpreference_apptheming_1", + "displayName": "Purple", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_userpreference_apptheming_2", + "displayName": "Pink", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_userpreference_apptheming_3", + "displayName": "Orange", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_userpreference_apptheming_4", + "displayName": "Red", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_userpreference_apptheming_5", + "displayName": "Green", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_userpreference_maxchecklistdisplaydurationmet", + "displayName": "Hide the 'Get started with Outlook' control in the task pane", + "options": [ + { + "id": "com.apple.managedclient.preferences_userpreference_maxchecklistdisplaydurationmet_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_userpreference_maxchecklistdisplaydurationmet_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_usesystemprintdialog", + "displayName": "Print using system print dialog", + "options": [ + { + "id": "com.apple.managedclient.preferences_usesystemprintdialog_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_usesystemprintdialog_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_vbaobjectmodelistrusted", + "displayName": "Allow macros to modify Visual Basic projects", + "options": [ + { + "id": "com.apple.managedclient.preferences_vbaobjectmodelistrusted_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_vbaobjectmodelistrusted_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_verticaltabsallowed", + "displayName": "Configures availability of a vertical layout for tabs on the side of the browser", + "options": [ + { + "id": "com.apple.managedclient.preferences_verticaltabsallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_verticaltabsallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_videocaptureallowed", + "displayName": "Allow or block video capture", + "options": [ + { + "id": "com.apple.managedclient.preferences_videocaptureallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_videocaptureallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_videocaptureallowedurls", + "displayName": "Sites that can access video capture devices without requesting permission", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_visualbasicentirelydisabled", + "displayName": "Prevent all Visual Basic macros from executing", + "options": [ + { + "id": "com.apple.managedclient.preferences_visualbasicentirelydisabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_visualbasicentirelydisabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_visualbasicmacroexecutionstate", + "displayName": "Visual Basic macro policy", + "options": [ + { + "id": "com.apple.managedclient.preferences_visualbasicmacroexecutionstate_0", + "displayName": "Macros disabled by default, with warning to enable", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_visualbasicmacroexecutionstate_1", + "displayName": "Disable all macros", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_visualbasicmacroexecutionstate_2", + "displayName": "Always allow macros to run (potentially dangerous)", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_weather_update_automatically", + "displayName": "Disable automatic updating of weather location", + "options": [ + { + "id": "com.apple.managedclient.preferences_weather_update_automatically_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_weather_update_automatically_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_webcaptureenabled", + "displayName": "Enable web capture feature in Microsoft Edge", + "options": [ + { + "id": "com.apple.managedclient.preferences_webcaptureenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_webcaptureenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_webrtcallowlegacytlsprotocols", + "displayName": "Allow legacy TLS/DTLS downgrade in WebRTC", + "options": [ + { + "id": "com.apple.managedclient.preferences_webrtcallowlegacytlsprotocols_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_webrtcallowlegacytlsprotocols_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_webrtclocalhostiphandling", + "displayName": "Restrict exposure of local IP address by WebRTC", + "options": [ + { + "id": "com.apple.managedclient.preferences_webrtclocalhostiphandling_0", + "displayName": "Allow all interfaces. This exposes the local IP address", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_webrtclocalhostiphandling_1", + "displayName": "Allow public and private interfaces over http default route. This exposes the local IP address", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_webrtclocalhostiphandling_2", + "displayName": "Allow public interface over http default route. This doesn't expose the local IP address", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_webrtclocalhostiphandling_3", + "displayName": "Use TCP unless proxy server supports UDP. This doesn't expose the local IP address", + "description": null + } + ] + }, + { + "id": "com.apple.managedclient.preferences_webrtclocalipsallowedurls", + "displayName": "Manage exposure of local IP addressess by WebRTC", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_webusbaskforurls", + "displayName": "Allow WebUSB on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_webusbblockedforurls", + "displayName": "Block WebUSB on specific sites", + "options": null + }, + { + "id": "com.apple.managedclient.preferences_wpadquickcheckenabled", + "displayName": "Set WPAD optimization", + "options": [ + { + "id": "com.apple.managedclient.preferences_wpadquickcheckenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.managedclient.preferences_wpadquickcheckenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.filevault2_com.apple.mcx.filevault2", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcx.filevault2_defer", + "displayName": "Defer", + "options": { + "id": "com.apple.mcx.filevault2_defer_true", + "displayName": "Enabled", + "description": null + } + }, + { + "id": "com.apple.mcx.filevault2_deferdontaskatuserlogout", + "displayName": "Defer Dont Ask At User Logout", + "options": [ + { + "id": "com.apple.mcx.filevault2_deferdontaskatuserlogout_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_deferdontaskatuserlogout_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.filevault2_deferforceatuserloginmaxbypassattempts", + "displayName": "Defer Force At User Login Max Bypass Attempts", + "options": null + }, + { + "id": "com.apple.mcx.filevault2_enable", + "displayName": "Enable", + "options": [ + { + "id": "com.apple.mcx.filevault2_enable_0", + "displayName": "On", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_enable_1", + "displayName": "Off", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.filevault2_forceenableinsetupassistant", + "displayName": "Force Enable In Setup Assistant", + "options": [ + { + "id": "com.apple.mcx.filevault2_forceenableinsetupassistant_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_forceenableinsetupassistant_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.filevault2_outputpath", + "displayName": "Output Path", + "options": null + }, + { + "id": "com.apple.mcx.filevault2_password", + "displayName": "Password", + "options": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths", + "displayName": "Recovery Key Rotation In Months", + "options": [ + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_0", + "displayName": "Not configured", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_1", + "displayName": "1 month", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_2", + "displayName": "2 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_3", + "displayName": "3 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_4", + "displayName": "4 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_5", + "displayName": "5 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_6", + "displayName": "6 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_7", + "displayName": "7 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_8", + "displayName": "8 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_9", + "displayName": "9 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_10", + "displayName": "10 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_11", + "displayName": "11 months", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_recoverykeyrotationinmonths_12", + "displayName": "12 months", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.filevault2_showrecoverykey", + "displayName": "Show Recovery Key", + "options": [ + { + "id": "com.apple.mcx.filevault2_showrecoverykey_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_showrecoverykey_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.filevault2_usekeychain", + "displayName": "Use Keychain", + "options": [ + { + "id": "com.apple.mcx.filevault2_usekeychain_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_usekeychain_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.filevault2_userecoverykey", + "displayName": "Use Recovery Key", + "options": { + "id": "com.apple.mcx.filevault2_userecoverykey_true", + "displayName": "Enabled", + "description": null + } + }, + { + "id": "com.apple.mcx.filevault2_userentersmissinginfo", + "displayName": "User Enters Missing Info", + "options": [ + { + "id": "com.apple.mcx.filevault2_userentersmissinginfo_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx.filevault2_userentersmissinginfo_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.filevault2_username", + "displayName": "Username", + "options": null + }, + { + "id": "com.apple.mcx.timemachine_autobackup", + "displayName": "Auto Backup", + "options": [ + { + "id": "com.apple.mcx.timemachine_autobackup_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx.timemachine_autobackup_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.timemachine_backupallvolumes", + "displayName": "Backup All Volumes", + "options": [ + { + "id": "com.apple.mcx.timemachine_backupallvolumes_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx.timemachine_backupallvolumes_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.timemachine_backupdesturl", + "displayName": "Backup Destination URL", + "options": null + }, + { + "id": "com.apple.mcx.timemachine_backupsizemb", + "displayName": "Backup Size MB", + "options": null + }, + { + "id": "com.apple.mcx.timemachine_backupskipsys", + "displayName": "Backup Skip System", + "options": [ + { + "id": "com.apple.mcx.timemachine_backupskipsys_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx.timemachine_backupskipsys_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.timemachine_basepaths", + "displayName": "Base Paths", + "options": null + }, + { + "id": "com.apple.mcx.timemachine_com.apple.mcx.timemachine", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcx.timemachine_mobilebackups", + "displayName": "Mobile Backups", + "options": [ + { + "id": "com.apple.mcx.timemachine_mobilebackups_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx.timemachine_mobilebackups_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx.timemachine_skippaths", + "displayName": "Skip Paths", + "options": null + }, + { + "id": "com.apple.mcx_cachedaccounts.askforsecuretokenauthbypass", + "displayName": "Ask For Secure Token Auth Bypass", + "options": [ + { + "id": "com.apple.mcx_cachedaccounts.askforsecuretokenauthbypass_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_cachedaccounts.askforsecuretokenauthbypass_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_cachedaccounts.expiry.delete.disusedseconds", + "displayName": "Expiry Delete Disused Seconds", + "options": null + }, + { + "id": "com.apple.mcx_cachedaccounts.warnoncreate.allownever", + "displayName": "Warn On Create Allow Never", + "options": [ + { + "id": "com.apple.mcx_cachedaccounts.warnoncreate.allownever_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_cachedaccounts.warnoncreate.allownever_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.cachedaccounts.createatlogin", + "displayName": "Create At Login", + "options": [ + { + "id": "com.apple.mcx_com.apple.cachedaccounts.createatlogin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.cachedaccounts.createatlogin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.cachedaccounts.warnoncreate", + "displayName": "Warn On Create", + "options": [ + { + "id": "com.apple.mcx_com.apple.cachedaccounts.warnoncreate_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.cachedaccounts.warnoncreate_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower", + "displayName": "Desktop Power", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_automatic restart on power loss", + "displayName": "Automatic Restart On Power Loss", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_automatic restart on power loss_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_automatic restart on power loss_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_disk sleep timer", + "displayName": "Disk Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_display sleep timer", + "displayName": "Display Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_dynamic power step", + "displayName": "Dynamic Power Step", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_dynamic power step_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_dynamic power step_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_reduce processor speed", + "displayName": "Reduce Processor Speed", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_reduce processor speed_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_reduce processor speed_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_system sleep timer", + "displayName": "System Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_wake on lan", + "displayName": "Wake on LAN", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_wake on lan_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_wake on lan_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_wake on modem ring", + "displayName": "Wake On Modem Ring", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_wake on modem ring_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.acpower_wake on modem ring_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule", + "displayName": "Desktop Schedule", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff", + "displayName": "Repeating Power Off", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_eventtype", + "displayName": "Event Type", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_eventtype_0", + "displayName": "Wake", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_eventtype_1", + "displayName": "Power On", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_eventtype_2", + "displayName": "Wake Power On", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_eventtype_3", + "displayName": "Sleep", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_eventtype_4", + "displayName": "Shutdown", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_eventtype_5", + "displayName": "Restart", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_time", + "displayName": "Time", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_weekdays", + "displayName": "Weekdays", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_weekdays_0", + "displayName": "Mon", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_weekdays_1", + "displayName": "Tue", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_weekdays_2", + "displayName": "Wed", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_weekdays_3", + "displayName": "Thu", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_weekdays_4", + "displayName": "Fri", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_weekdays_5", + "displayName": "Sat", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweroff_weekdays_6", + "displayName": "Sun", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron", + "displayName": "Repeating Power On", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_eventtype", + "displayName": "Event Type", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_eventtype_0", + "displayName": "Wake", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_eventtype_1", + "displayName": "Power On", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_eventtype_2", + "displayName": "Wake Power On", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_eventtype_3", + "displayName": "Sleep", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_eventtype_4", + "displayName": "Shutdown", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_eventtype_5", + "displayName": "Restart", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_time", + "displayName": "Time", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_weekdays", + "displayName": "Weekdays", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_weekdays_0", + "displayName": "Mon", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_weekdays_1", + "displayName": "Tue", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_weekdays_2", + "displayName": "Wed", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_weekdays_3", + "displayName": "Thu", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_weekdays_4", + "displayName": "Fri", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_weekdays_5", + "displayName": "Sat", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.desktop.schedule_repeatingpoweron_weekdays_6", + "displayName": "Sun", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower", + "displayName": "Laptop Power", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_automatic restart on power loss", + "displayName": "Automatic Restart On Power Loss", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_automatic restart on power loss_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_automatic restart on power loss_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_disk sleep timer", + "displayName": "Disk Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_display sleep timer", + "displayName": "Display Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_dynamic power step", + "displayName": "Dynamic Power Step", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_dynamic power step_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_dynamic power step_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_reduce processor speed", + "displayName": "Reduce Processor Speed", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_reduce processor speed_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_reduce processor speed_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_system sleep timer", + "displayName": "System Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_wake on lan", + "displayName": "Wake on LAN", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_wake on lan_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_wake on lan_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_wake on modem ring", + "displayName": "Wake On Modem Ring", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_wake on modem ring_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.acpower_wake on modem ring_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower", + "displayName": "Laptop Battery Power", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_automatic restart on power loss", + "displayName": "Automatic Restart On Power Loss", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_automatic restart on power loss_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_automatic restart on power loss_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_disk sleep timer", + "displayName": "Disk Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_display sleep timer", + "displayName": "Display Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_dynamic power step", + "displayName": "Dynamic Power Step", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_dynamic power step_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_dynamic power step_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_reduce processor speed", + "displayName": "Reduce Processor Speed", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_reduce processor speed_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_reduce processor speed_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_system sleep timer", + "displayName": "System Sleep Timer", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_wake on lan", + "displayName": "Wake on LAN", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_wake on lan_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_wake on lan_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_wake on modem ring", + "displayName": "Wake On Modem Ring", + "options": [ + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_wake on modem ring_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_com.apple.energysaver.portable.batterypower_wake on modem ring_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_com.apple.mcx-accounts", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.mcx-energysaver", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.mcx-fdefilevaultoptions", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.mcx-mobileaccounts", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcx_com.apple.mcx-timeserver", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcx_destroyfvkeyonstandby", + "displayName": "Destroy FV Key On Standby", + "options": [ + { + "id": "com.apple.mcx_destroyfvkeyonstandby_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_destroyfvkeyonstandby_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_disableguestaccount", + "displayName": "Disable Guest Account", + "options": [ + { + "id": "com.apple.mcx_disableguestaccount_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_disableguestaccount_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_dontallowfdedisable", + "displayName": "Prevent FileVault From Being Disabled", + "options": [ + { + "id": "com.apple.mcx_dontallowfdedisable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_dontallowfdedisable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_dontallowfdeenable", + "displayName": "Prevent FileVault From Being Enabled", + "options": [ + { + "id": "com.apple.mcx_dontallowfdeenable_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_dontallowfdeenable_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_enableguestaccount", + "displayName": "Enable Guest Account", + "options": [ + { + "id": "com.apple.mcx_enableguestaccount_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_enableguestaccount_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_sleepdisabled", + "displayName": "Sleep Disabled", + "options": [ + { + "id": "com.apple.mcx_sleepdisabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcx_sleepdisabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcx_timeserver", + "displayName": "Time Server", + "options": null + }, + { + "id": "com.apple.mcx_timezone", + "displayName": "Time Zone", + "options": null + }, + { + "id": "com.apple.mcxmenuextras_airport.menu", + "displayName": "AirPort", + "options": [ + { + "id": "com.apple.mcxmenuextras_airport.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_airport.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_battery.menu", + "displayName": "Battery", + "options": [ + { + "id": "com.apple.mcxmenuextras_battery.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_battery.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_bluetooth.menu", + "displayName": "Bluetooth", + "options": [ + { + "id": "com.apple.mcxmenuextras_bluetooth.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_bluetooth.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_clock.menu", + "displayName": "Clock", + "options": [ + { + "id": "com.apple.mcxmenuextras_clock.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_clock.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_com.apple.mcxmenuextras", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcxmenuextras_cpu.menu", + "displayName": "CPU", + "options": [ + { + "id": "com.apple.mcxmenuextras_cpu.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_cpu.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_delayseconds", + "displayName": "Delay Seconds", + "options": null + }, + { + "id": "com.apple.mcxmenuextras_displays.menu", + "displayName": "Displays", + "options": [ + { + "id": "com.apple.mcxmenuextras_displays.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_displays.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_eject.menu", + "displayName": "Eject", + "options": [ + { + "id": "com.apple.mcxmenuextras_eject.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_eject.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_fax.menu", + "displayName": "Fax", + "options": [ + { + "id": "com.apple.mcxmenuextras_fax.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_fax.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_homesync.menu", + "displayName": "HomeSync", + "options": [ + { + "id": "com.apple.mcxmenuextras_homesync.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_homesync.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_ichat.menu", + "displayName": "iChat", + "options": [ + { + "id": "com.apple.mcxmenuextras_ichat.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_ichat.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_ink.menu", + "displayName": "Ink", + "options": [ + { + "id": "com.apple.mcxmenuextras_ink.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_ink.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_irda.menu", + "displayName": "IrDA", + "options": [ + { + "id": "com.apple.mcxmenuextras_irda.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_irda.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_maxwaitseconds", + "displayName": "Max Wait Seconds", + "options": null + }, + { + "id": "com.apple.mcxmenuextras_pccard.menu", + "displayName": "PCCard", + "options": [ + { + "id": "com.apple.mcxmenuextras_pccard.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_pccard.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_ppp.menu", + "displayName": "PPP", + "options": [ + { + "id": "com.apple.mcxmenuextras_ppp.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_ppp.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_pppoe.menu", + "displayName": "PPPoE", + "options": [ + { + "id": "com.apple.mcxmenuextras_pppoe.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_pppoe.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_remotedesktop.menu", + "displayName": "Remote Desktop", + "options": [ + { + "id": "com.apple.mcxmenuextras_remotedesktop.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_remotedesktop.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_script menu.menu", + "displayName": "Script Menu", + "options": [ + { + "id": "com.apple.mcxmenuextras_script menu.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_script menu.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_spaces.menu", + "displayName": "Spaces", + "options": [ + { + "id": "com.apple.mcxmenuextras_spaces.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_spaces.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_sync.menu", + "displayName": "Sync", + "options": [ + { + "id": "com.apple.mcxmenuextras_sync.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_sync.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_textinput.menu", + "displayName": "Text Input", + "options": [ + { + "id": "com.apple.mcxmenuextras_textinput.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_textinput.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_timemachine.menu", + "displayName": "TimeMachine", + "options": [ + { + "id": "com.apple.mcxmenuextras_timemachine.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_timemachine.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_universalaccess.menu", + "displayName": "Universal Access", + "options": [ + { + "id": "com.apple.mcxmenuextras_universalaccess.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_universalaccess.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_user.menu", + "displayName": "User", + "options": [ + { + "id": "com.apple.mcxmenuextras_user.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_user.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_volume.menu", + "displayName": "Volume", + "options": [ + { + "id": "com.apple.mcxmenuextras_volume.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_volume.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_vpn.menu", + "displayName": "VPN", + "options": [ + { + "id": "com.apple.mcxmenuextras_vpn.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_vpn.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxmenuextras_wwan.menu", + "displayName": "WWAN", + "options": [ + { + "id": "com.apple.mcxmenuextras_wwan.menu_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxmenuextras_wwan.menu_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxprinting_allowlocalprinters", + "displayName": "Allow Local Printers", + "options": [ + { + "id": "com.apple.mcxprinting_allowlocalprinters_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxprinting_allowlocalprinters_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxprinting_com.apple.mcxprinting", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mcxprinting_defaultprinter", + "displayName": "Default Printer", + "options": null + }, + { + "id": "com.apple.mcxprinting_defaultprinter_deviceuri", + "displayName": "Device URI", + "options": null + }, + { + "id": "com.apple.mcxprinting_defaultprinter_displayname", + "displayName": "Display Name", + "options": null + }, + { + "id": "com.apple.mcxprinting_footerfontname", + "displayName": "Footer Font Name", + "options": null + }, + { + "id": "com.apple.mcxprinting_footerfontsize", + "displayName": "Footer Font Size", + "options": null + }, + { + "id": "com.apple.mcxprinting_printfooter", + "displayName": "Print Footer", + "options": [ + { + "id": "com.apple.mcxprinting_printfooter_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxprinting_printfooter_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxprinting_printmacaddress", + "displayName": "Print MAC Address", + "options": [ + { + "id": "com.apple.mcxprinting_printmacaddress_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxprinting_printmacaddress_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxprinting_requireadmintoaddprinters", + "displayName": "Require Admin To Add Printers", + "options": [ + { + "id": "com.apple.mcxprinting_requireadmintoaddprinters_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxprinting_requireadmintoaddprinters_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxprinting_requireadmintoprintlocally", + "displayName": "Require Admin To Print Locally", + "options": [ + { + "id": "com.apple.mcxprinting_requireadmintoprintlocally_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxprinting_requireadmintoprintlocally_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxprinting_showonlymanagedprinters", + "displayName": "Show Only Managed Printers", + "options": [ + { + "id": "com.apple.mcxprinting_showonlymanagedprinters_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxprinting_showonlymanagedprinters_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mcxprinting_userprinterlist", + "displayName": "User Printer List", + "options": null + }, + { + "id": "com.apple.mcxprinting_userprinterlist_printer", + "displayName": "Printer", + "options": null + }, + { + "id": "com.apple.mcxprinting_userprinterlist_printer_deviceuri", + "displayName": "Device URI", + "options": null + }, + { + "id": "com.apple.mcxprinting_userprinterlist_printer_displayname", + "displayName": "Display Name", + "options": null + }, + { + "id": "com.apple.mcxprinting_userprinterlist_printer_location", + "displayName": "Location", + "options": null + }, + { + "id": "com.apple.mcxprinting_userprinterlist_printer_model", + "displayName": "Model", + "options": null + }, + { + "id": "com.apple.mcxprinting_userprinterlist_printer_ppdurl", + "displayName": "PPD URL", + "options": null + }, + { + "id": "com.apple.mcxprinting_userprinterlist_printer_printerlocked", + "displayName": "Printer Locked", + "options": [ + { + "id": "com.apple.mcxprinting_userprinterlist_printer_printerlocked_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mcxprinting_userprinterlist_printer_printerlocked_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_allowsimple", + "displayName": "Allow Simple Passcode", + "options": [ + { + "id": "com.apple.mobiledevice.passwordpolicy_allowsimple_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_allowsimple_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_changeatnextauth", + "displayName": "Change At Next Auth", + "options": [ + { + "id": "com.apple.mobiledevice.passwordpolicy_changeatnextauth_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_changeatnextauth_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_com.apple.mobiledevice.passwordpolicy", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_customregex", + "displayName": "Custom Regex", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_customregex_passwordcontentdescription", + "displayName": "Password Content Description", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_customregex_passwordcontentdescription_generickey", + "displayName": "Description", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_customregex_passwordcontentdescription_generickey_keytobereplaced", + "displayName": "Password Content Description", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_customregex_passwordcontentregex", + "displayName": "Password Content Regex", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_forcepin", + "displayName": "Force PIN", + "options": [ + { + "id": "com.apple.mobiledevice.passwordpolicy_forcepin_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_forcepin_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_maxfailedattempts", + "displayName": "Max Failed Attempts", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_maxgraceperiod", + "displayName": "Max Grace Period", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_maxinactivity", + "displayName": "Max Inactivity", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_maxpinageindays", + "displayName": "Max PIN Age In Days", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_mincomplexchars", + "displayName": "Min Complex Characters", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_minlength", + "displayName": "Min Length", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_minutesuntilfailedloginreset", + "displayName": "Minutes Until Failed Login Reset", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_pinhistory", + "displayName": "PIN History", + "options": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_requirealphanumeric", + "displayName": "Require Alphanumeric Passcode", + "options": [ + { + "id": "com.apple.mobiledevice.passwordpolicy_requirealphanumeric_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.mobiledevice.passwordpolicy_requirealphanumeric_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.networkusagerules_applicationrules", + "displayName": "Application Rules", + "options": null + }, + { + "id": "com.apple.networkusagerules_applicationrules_item_allowcellulardata", + "displayName": "Allow Cellular Data", + "options": [ + { + "id": "com.apple.networkusagerules_applicationrules_item_allowcellulardata_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.networkusagerules_applicationrules_item_allowcellulardata_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.networkusagerules_applicationrules_item_allowroamingcellulardata", + "displayName": "Allow Roaming Cellular Data", + "options": [ + { + "id": "com.apple.networkusagerules_applicationrules_item_allowroamingcellulardata_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.networkusagerules_applicationrules_item_allowroamingcellulardata_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.networkusagerules_applicationrules_item_appidentifiermatches", + "displayName": "App Identifier Matches", + "options": null + }, + { + "id": "com.apple.networkusagerules_com.apple.networkusagerules", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.networkusagerules_simrules", + "displayName": "SIM Rules", + "options": null + }, + { + "id": "com.apple.networkusagerules_simrules_item_iccids", + "displayName": "ICCI Ds", + "options": null + }, + { + "id": "com.apple.networkusagerules_simrules_item_wifiassistpolicy", + "displayName": "Wi Fi Assist Policy", + "options": [ + { + "id": "com.apple.networkusagerules_simrules_item_wifiassistpolicy_0", + "displayName": "2", + "description": null + }, + { + "id": "com.apple.networkusagerules_simrules_item_wifiassistpolicy_1", + "displayName": "3", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_com.apple.notificationsettings", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings", + "displayName": "Notification Settings", + "options": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_alerttype", + "displayName": "Alert Type", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_alerttype_0", + "displayName": "None", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_alerttype_1", + "displayName": "Temporary Banner", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_alerttype_2", + "displayName": "Persistent Banner", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_badgesenabled", + "displayName": "Badges Enabled", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_badgesenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_badgesenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_bundleidentifier", + "displayName": "Bundle Identifier", + "options": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_criticalalertenabled", + "displayName": "Critical Alert Enabled", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_criticalalertenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_criticalalertenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_groupingtype", + "displayName": "Grouping Type", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_groupingtype_0", + "displayName": "Automatic: Group notifications into app-specified groups", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_groupingtype_1", + "displayName": "By app: Group notifications into one group", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_groupingtype_2", + "displayName": "Off: Don't group notifications", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_notificationsenabled", + "displayName": "Notifications Enabled", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_notificationsenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_notificationsenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_previewtype", + "displayName": "Preview Type", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_previewtype_0", + "displayName": "Always: Previews will be shown when the device is locked and unlocked", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_previewtype_1", + "displayName": "When Unlocked: Previews will only be shown when the device is unlocked", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_previewtype_2", + "displayName": "Never: Previews will never be shown", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_showincarplay", + "displayName": "Show In Car Play", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_showincarplay_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_showincarplay_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_showinlockscreen", + "displayName": "Show In Lock Screen", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_showinlockscreen_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_showinlockscreen_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_showinnotificationcenter", + "displayName": "Show In Notification Center", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_showinnotificationcenter_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_showinnotificationcenter_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_soundsenabled", + "displayName": "Sounds Enabled", + "options": [ + { + "id": "com.apple.notificationsettings_notificationsettings_item_soundsenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.notificationsettings_notificationsettings_item_soundsenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.nsextension_allowedextensions", + "displayName": "Allowed Extensions", + "options": null + }, + { + "id": "com.apple.nsextension_com.apple.nsextension", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.nsextension_deniedextensionpoints", + "displayName": "Denied Extension Points", + "options": null + }, + { + "id": "com.apple.nsextension_deniedextensions", + "displayName": "Denied Extensions", + "options": null + }, + { + "id": "com.apple.preference.security_com.apple.preference.security", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.preference.security_dontallowfirewallui", + "displayName": "Do Not Allow Firewall UI", + "options": [ + { + "id": "com.apple.preference.security_dontallowfirewallui_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.preference.security_dontallowfirewallui_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.preference.security_dontallowlockmessageui", + "displayName": "Do Not Allow Lock Message UI", + "options": [ + { + "id": "com.apple.preference.security_dontallowlockmessageui_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.preference.security_dontallowlockmessageui_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.preference.security_dontallowpasswordresetui", + "displayName": "Do Not Allow Password Reset UI", + "options": [ + { + "id": "com.apple.preference.security_dontallowpasswordresetui_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.preference.security_dontallowpasswordresetui_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.preference.users_com.apple.preference.users", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.preference.users_disableusingicloudpassword", + "displayName": "Disable Using iCloud Password", + "options": [ + { + "id": "com.apple.preference.users_disableusingicloudpassword_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.preference.users_disableusingicloudpassword_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.profileremovalpassword_com.apple.profileremovalpassword", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.profileremovalpassword_removalpassword", + "displayName": "Removal Password", + "options": null + }, + { + "id": "com.apple.proxy.http.global_com.apple.proxy.http.global", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.proxy.http.global_proxycaptiveloginallowed", + "displayName": "Proxy Captive Login Allowed", + "options": [ + { + "id": "com.apple.proxy.http.global_proxycaptiveloginallowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.proxy.http.global_proxycaptiveloginallowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.proxy.http.global_proxypacfallbackallowed", + "displayName": "Proxy PAC Fallback Allowed", + "options": [ + { + "id": "com.apple.proxy.http.global_proxypacfallbackallowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.proxy.http.global_proxypacfallbackallowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.proxy.http.global_proxypacurl", + "displayName": "Proxy PAC URL (Deprecated)", + "options": null + }, + { + "id": "com.apple.proxy.http.global_proxypassword", + "displayName": "Proxy Password", + "options": null + }, + { + "id": "com.apple.proxy.http.global_proxyserver", + "displayName": "Proxy Server (Deprecated)", + "options": null + }, + { + "id": "com.apple.proxy.http.global_proxyserverport", + "displayName": "Proxy Server Port (Deprecated)", + "options": null + }, + { + "id": "com.apple.proxy.http.global_proxytype", + "displayName": "Proxy Type", + "options": [ + { + "id": "com.apple.proxy.http.global_proxytype_0", + "displayName": "Manual", + "description": null + }, + { + "id": "com.apple.proxy.http.global_proxytype_1", + "displayName": "Auto", + "description": null + } + ] + }, + { + "id": "com.apple.proxy.http.global_proxyusername", + "displayName": "Proxy Username", + "options": null + }, + { + "id": "com.apple.screensaver.user_com.apple.screensaver.user", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.screensaver.user_idletime", + "displayName": "Idle Time", + "options": null + }, + { + "id": "com.apple.screensaver.user_modulename", + "displayName": "Module Name", + "options": null + }, + { + "id": "com.apple.screensaver.user_modulepath", + "displayName": "Module Path", + "options": null + }, + { + "id": "com.apple.screensaver_askforpassword", + "displayName": "Ask For Password", + "options": [ + { + "id": "com.apple.screensaver_askforpassword_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.screensaver_askforpassword_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.screensaver_askforpassworddelay", + "displayName": "Ask For Password Delay", + "options": null + }, + { + "id": "com.apple.screensaver_com.apple.screensaver", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.screensaver_loginwindowidletime", + "displayName": "Login Window Idle Time", + "options": null + }, + { + "id": "com.apple.screensaver_loginwindowmodulepath", + "displayName": "Login Window Module Path", + "options": null + }, + { + "id": "com.apple.screensaver_modulename", + "displayName": "Module Name", + "options": null + }, + { + "id": "com.apple.security.fderecoverykeyescrow_com.apple.security.fderecoverykeyescrow", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.security.fderecoverykeyescrow_devicekey", + "displayName": "Device Key", + "options": null + }, + { + "id": "com.apple.security.fderecoverykeyescrow_location", + "displayName": "Location", + "options": null + }, + { + "id": "com.apple.security.firewall_allowsigned", + "displayName": "Allow Signed", + "options": [ + { + "id": "com.apple.security.firewall_allowsigned_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.firewall_allowsigned_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.firewall_allowsignedapp", + "displayName": "Allow Signed App", + "options": [ + { + "id": "com.apple.security.firewall_allowsignedapp_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.firewall_allowsignedapp_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.firewall_applications", + "displayName": "Applications", + "options": null + }, + { + "id": "com.apple.security.firewall_applications_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.security.firewall_applications_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.firewall_applications_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.firewall_applications_item_bundleid", + "displayName": "Bundle ID", + "options": null + }, + { + "id": "com.apple.security.firewall_blockallincoming", + "displayName": "Block All Incoming", + "options": [ + { + "id": "com.apple.security.firewall_blockallincoming_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.firewall_blockallincoming_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.firewall_com.apple.security.firewall", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.security.firewall_enablefirewall", + "displayName": "Enable Firewall", + "options": [ + { + "id": "com.apple.security.firewall_enablefirewall_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.firewall_enablefirewall_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.firewall_enablelogging", + "displayName": "Enable Logging (Deprecated)", + "options": [ + { + "id": "com.apple.security.firewall_enablelogging_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.firewall_enablelogging_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.firewall_enablestealthmode", + "displayName": "Enable Stealth Mode", + "options": [ + { + "id": "com.apple.security.firewall_enablestealthmode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.firewall_enablestealthmode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.firewall_loggingoption", + "displayName": "Logging Option (Deprecated)", + "options": [ + { + "id": "com.apple.security.firewall_loggingoption_0", + "displayName": "throttled", + "description": null + }, + { + "id": "com.apple.security.firewall_loggingoption_1", + "displayName": "brief", + "description": null + }, + { + "id": "com.apple.security.firewall_loggingoption_2", + "displayName": "detail", + "description": null + } + ] + }, + { + "id": "com.apple.security.smartcard_allowsmartcard", + "displayName": "Allow Smart Card", + "options": [ + { + "id": "com.apple.security.smartcard_allowsmartcard_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.smartcard_allowsmartcard_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.smartcard_checkcertificatetrust", + "displayName": "Check Certificate Trust", + "options": [ + { + "id": "com.apple.security.smartcard_checkcertificatetrust_0", + "displayName": "Disable certificate trust check", + "description": null + }, + { + "id": "com.apple.security.smartcard_checkcertificatetrust_1", + "displayName": "Enable certificate trust check and standard validity check", + "description": null + }, + { + "id": "com.apple.security.smartcard_checkcertificatetrust_2", + "displayName": "Enable certificate trust check and soft revocation check", + "description": null + }, + { + "id": "com.apple.security.smartcard_checkcertificatetrust_3", + "displayName": "Enable certificate trust check and hard revocation check", + "description": null + } + ] + }, + { + "id": "com.apple.security.smartcard_com.apple.security.smartcard", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.security.smartcard_enforcesmartcard", + "displayName": "Enforce Smart Card", + "options": [ + { + "id": "com.apple.security.smartcard_enforcesmartcard_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.smartcard_enforcesmartcard_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.smartcard_onecardperuser", + "displayName": "One Card Per User", + "options": [ + { + "id": "com.apple.security.smartcard_onecardperuser_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.smartcard_onecardperuser_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.security.smartcard_tokenremovalaction", + "displayName": "Token Removal Action", + "options": [ + { + "id": "com.apple.security.smartcard_tokenremovalaction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.security.smartcard_tokenremovalaction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.security.smartcard_userpairing", + "displayName": "User Pairing", + "options": [ + { + "id": "com.apple.security.smartcard_userpairing_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.security.smartcard_userpairing_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.servicemanagement_com.apple.servicemanagement", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.servicemanagement_rules", + "displayName": "Rules", + "options": null + }, + { + "id": "com.apple.servicemanagement_rules_item_comment", + "displayName": "Comment", + "options": null + }, + { + "id": "com.apple.servicemanagement_rules_item_ruletype", + "displayName": "Rule Type", + "options": [ + { + "id": "com.apple.servicemanagement_rules_item_ruletype_0", + "displayName": "Bundle Identifier", + "description": null + }, + { + "id": "com.apple.servicemanagement_rules_item_ruletype_1", + "displayName": "Bundle Identifier Prefix", + "description": null + }, + { + "id": "com.apple.servicemanagement_rules_item_ruletype_2", + "displayName": "Label", + "description": null + }, + { + "id": "com.apple.servicemanagement_rules_item_ruletype_3", + "displayName": "Label Prefix", + "description": null + }, + { + "id": "com.apple.servicemanagement_rules_item_ruletype_4", + "displayName": "Team Identifier", + "description": null + } + ] + }, + { + "id": "com.apple.servicemanagement_rules_item_rulevalue", + "displayName": "Rule Value", + "options": null + }, + { + "id": "com.apple.servicemanagement_rules_item_teamidentifier", + "displayName": "Team Identifier", + "options": null + }, + { + "id": "com.apple.shareddeviceconfiguration_assettaginformation", + "displayName": "Asset Tag Information", + "options": null + }, + { + "id": "com.apple.shareddeviceconfiguration_com.apple.shareddeviceconfiguration", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.shareddeviceconfiguration_lockscreenfootnote", + "displayName": "Lock Screen Footnote", + "options": null + }, + { + "id": "com.apple.softwareupdate_allowprereleaseinstallation", + "displayName": "Allow Pre Release Installation", + "options": [ + { + "id": "com.apple.softwareupdate_allowprereleaseinstallation_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.softwareupdate_allowprereleaseinstallation_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.softwareupdate_automaticallyinstallappupdates", + "displayName": "Automatically Install App Updates", + "options": [ + { + "id": "com.apple.softwareupdate_automaticallyinstallappupdates_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.softwareupdate_automaticallyinstallappupdates_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.softwareupdate_automaticallyinstallmacosupdates", + "displayName": "Automatically Install Mac OS Updates", + "options": [ + { + "id": "com.apple.softwareupdate_automaticallyinstallmacosupdates_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.softwareupdate_automaticallyinstallmacosupdates_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.softwareupdate_automaticcheckenabled", + "displayName": "Automatic Check Enabled", + "options": [ + { + "id": "com.apple.softwareupdate_automaticcheckenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.softwareupdate_automaticcheckenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.softwareupdate_automaticdownload", + "displayName": "Automatic Download", + "options": [ + { + "id": "com.apple.softwareupdate_automaticdownload_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.softwareupdate_automaticdownload_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.softwareupdate_com.apple.softwareupdate", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.softwareupdate_configdatainstall", + "displayName": "Config Data Install", + "options": [ + { + "id": "com.apple.softwareupdate_configdatainstall_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.softwareupdate_configdatainstall_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.softwareupdate_criticalupdateinstall", + "displayName": "Critical Update Install", + "options": [ + { + "id": "com.apple.softwareupdate_criticalupdateinstall_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.softwareupdate_criticalupdateinstall_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.softwareupdate_restrict-software-update-require-admin-to-install", + "displayName": "Restrict Software Update Require Admin To Install", + "options": [ + { + "id": "com.apple.softwareupdate_restrict-software-update-require-admin-to-install_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.softwareupdate_restrict-software-update-require-admin-to-install_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.subscribedcalendar.account_com.apple.subscribedcalendar.account", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.subscribedcalendar.account_subcalaccountdescription", + "displayName": "Account Description", + "options": null + }, + { + "id": "com.apple.subscribedcalendar.account_subcalaccounthostname", + "displayName": "Account Host Name", + "options": null + }, + { + "id": "com.apple.subscribedcalendar.account_subcalaccountpassword", + "displayName": "Account Password", + "options": null + }, + { + "id": "com.apple.subscribedcalendar.account_subcalaccountusername", + "displayName": "Account Username", + "options": null + }, + { + "id": "com.apple.subscribedcalendar.account_subcalaccountusessl", + "displayName": "Account Use SSL", + "options": [ + { + "id": "com.apple.subscribedcalendar.account_subcalaccountusessl_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.subscribedcalendar.account_subcalaccountusessl_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.system.logging_com.apple.system.logging", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.system.logging_system", + "displayName": "System", + "options": null + }, + { + "id": "com.apple.system.logging_system_enable-private-data", + "displayName": "Enable Private Data", + "options": [ + { + "id": "com.apple.system.logging_system_enable-private-data_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.system.logging_system_enable-private-data_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_com.apple.systemconfiguration", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies", + "displayName": "Proxies", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_exceptionslist", + "displayName": "Exceptions List", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_fallbackallowed", + "displayName": "Fall Back Allowed", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_fallbackallowed_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_fallbackallowed_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_ftpenable", + "displayName": "FTP Enable", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_ftpenable_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_ftpenable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_ftppassive", + "displayName": "FTP Passive", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_ftppassive_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_ftppassive_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_ftpport", + "displayName": "FTP Port", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_ftpproxy", + "displayName": "FTP Proxy", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_gopherenable", + "displayName": "Gopher Enable", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_gopherenable_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_gopherenable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_gopherport", + "displayName": "Gopher Port", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_gopherproxy", + "displayName": "Gopher Proxy", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_httpenable", + "displayName": "HTTP Enable", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_httpenable_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_httpenable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_httpport", + "displayName": "HTTP Port", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_httpproxy", + "displayName": "HTTP Proxy", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_httpsenable", + "displayName": "HTTPS Enable", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_httpsenable_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_httpsenable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_httpsport", + "displayName": "HTTPS Port", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_httpsproxy", + "displayName": "HTTPS Proxy", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_proxyautoconfigenable", + "displayName": "Proxy Auto Config Enable", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_proxyautoconfigenable_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_proxyautoconfigenable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_proxyautoconfigurlstring", + "displayName": "Proxy Auto Config URL String", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_proxycaptiveloginallowed", + "displayName": "Proxy Captive Login Allowed", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_proxycaptiveloginallowed_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_proxycaptiveloginallowed_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_rtspenable", + "displayName": "RTSP Enable", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_rtspenable_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_rtspenable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_rtspport", + "displayName": "RTSP Port", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_rtspproxy", + "displayName": "RTSP Proxy", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_socksenable", + "displayName": "SOCKS Enable", + "options": [ + { + "id": "com.apple.systemconfiguration_proxies_socksenable_0", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systemconfiguration_proxies_socksenable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systemconfiguration_proxies_socksportinteger", + "displayName": "SOCKS Port Integer", + "options": null + }, + { + "id": "com.apple.systemconfiguration_proxies_socksproxy", + "displayName": "SOCKS Proxy", + "options": null + }, + { + "id": "com.apple.system-extension-policy_allowedsystemextensions", + "displayName": "Allowed System Extensions", + "options": null + }, + { + "id": "com.apple.system-extension-policy_allowedsystemextensions_generickey", + "displayName": "Allowed System Extensions", + "options": null + }, + { + "id": "com.apple.system-extension-policy_allowedsystemextensions_generickey_keytobereplaced", + "displayName": "Team Identifier", + "options": null + }, + { + "id": "com.apple.system-extension-policy_allowedsystemextensiontypes", + "displayName": "Allowed System Extension Types", + "options": null + }, + { + "id": "com.apple.system-extension-policy_allowedsystemextensiontypes_generickey", + "displayName": "Allowed System Extension Types", + "options": null + }, + { + "id": "com.apple.system-extension-policy_allowedsystemextensiontypes_generickey_keytobereplaced", + "displayName": "Team Identifier", + "options": null + }, + { + "id": "com.apple.system-extension-policy_allowedteamidentifiers", + "displayName": "Allowed Team Identifiers", + "options": null + }, + { + "id": "com.apple.system-extension-policy_allowuseroverrides", + "displayName": "Allow User Overrides", + "options": [ + { + "id": "com.apple.system-extension-policy_allowuseroverrides_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.system-extension-policy_allowuseroverrides_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.system-extension-policy_com.apple.system-extension-policy", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.system-extension-policy_nonremovablefromuisystemextensions", + "displayName": "Non Removable From UI System Extensions", + "options": null + }, + { + "id": "com.apple.system-extension-policy_nonremovablefromuisystemextensions_generickey", + "displayName": "ANY", + "options": null + }, + { + "id": "com.apple.system-extension-policy_nonremovablefromuisystemextensions_generickey_keytobereplaced", + "displayName": "Non Removable From UI System Extensions", + "options": null + }, + { + "id": "com.apple.system-extension-policy_nonremovablesystemextensions", + "displayName": "Non Removable System Extensions", + "options": null + }, + { + "id": "com.apple.system-extension-policy_nonremovablesystemextensions_generickey", + "displayName": "ANY", + "options": null + }, + { + "id": "com.apple.system-extension-policy_nonremovablesystemextensions_generickey_keytobereplaced", + "displayName": "Non Removable System Extensions", + "options": null + }, + { + "id": "com.apple.system-extension-policy_removablesystemextensions", + "displayName": "Removable System Extensions", + "options": null + }, + { + "id": "com.apple.system-extension-policy_removablesystemextensions_generickey", + "displayName": "Removable System Extensions", + "options": null + }, + { + "id": "com.apple.system-extension-policy_removablesystemextensions_generickey_keytobereplaced", + "displayName": "Team Identifier", + "options": null + }, + { + "id": "com.apple.systempolicy.control_allowidentifieddevelopers", + "displayName": "Allow Identified Developers", + "options": [ + { + "id": "com.apple.systempolicy.control_allowidentifieddevelopers_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systempolicy.control_allowidentifieddevelopers_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systempolicy.control_com.apple.systempolicy.control", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.systempolicy.control_enableassessment", + "displayName": "Enable Assessment", + "options": [ + { + "id": "com.apple.systempolicy.control_enableassessment_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systempolicy.control_enableassessment_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systempolicy.control_enablexprotectmalwareupload", + "displayName": "Enable XProtect Malware Upload", + "options": [ + { + "id": "com.apple.systempolicy.control_enablexprotectmalwareupload_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.systempolicy.control_enablexprotectmalwareupload_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.systempolicy.managed_com.apple.systempolicy.managed", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.systempolicy.managed_disableoverride", + "displayName": "Disable Override", + "options": [ + { + "id": "com.apple.systempolicy.managed_disableoverride_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.systempolicy.managed_disableoverride_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.systempreferences_com.apple.systempreferences", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.systempreferences_disabledpreferencepanes", + "displayName": "Disabled Preference Panes", + "options": null + }, + { + "id": "com.apple.systempreferences_enabledpreferencepanes", + "displayName": "Enabled Preference Panes", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_com.apple.tcc.configuration-profile-policy", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services", + "displayName": "Services", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility", + "displayName": "Accessibility", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_accessibility_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook", + "displayName": "Address Book", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_addressbook_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents", + "displayName": "Apple Events", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_aereceivercoderequirement", + "displayName": "AE Receiver Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_aereceiveridentifier", + "displayName": "AE Receiver Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_aereceiveridentifiertype", + "displayName": "AE Receiver Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_aereceiveridentifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_aereceiveridentifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_appleevents_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways", + "displayName": "Bluetooth Always", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_aereceivercoderequirement", + "displayName": "AE Receiver Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_aereceiveridentifier", + "displayName": "AE Receiver Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_aereceiveridentifiertype", + "displayName": "AE Receiver Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_aereceiveridentifiertype_0", + "displayName": "bundleID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_aereceiveridentifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_allowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_allowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_authorization_2", + "displayName": "AllowStandardUserToSetSystemService", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_comment", + "displayName": "Comment", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_identifiertype_0", + "displayName": "bundleID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_staticcode_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_bluetoothalways_item_staticcode_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar", + "displayName": "Calendar", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_calendar_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera", + "displayName": "Camera", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_camera_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence", + "displayName": "File Provider Presence", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_fileproviderpresence_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent", + "displayName": "Listen Event", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_allowed", + "displayName": "Allowed (Deprecated)", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_listenevent_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary", + "displayName": "Media Library", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_medialibrary_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone", + "displayName": "Microphone", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_microphone_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos", + "displayName": "Photos", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_photos_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent", + "displayName": "Post Event", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_postevent_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders", + "displayName": "Reminders", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_reminders_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture", + "displayName": "Screen Capture", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_allowed", + "displayName": "Allowed (Deprecated)", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_screencapture_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition", + "displayName": "Speech Recognition", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_speechrecognition_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles", + "displayName": "System Policy All Files", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyallfiles_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles", + "displayName": "System Policy App Bundles", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappbundles_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata", + "displayName": "System Policy App Data", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_allowed_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_allowed_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_authorization_2", + "displayName": "AllowStandardUserToSetSystemService", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_identifiertype_0", + "displayName": "bundleID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_staticcode_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyappdata_item_staticcode_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder", + "displayName": "System Policy Desktop Folder", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydesktopfolder_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder", + "displayName": "System Policy Documents Folder", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydocumentsfolder_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder", + "displayName": "System Policy Downloads Folder", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicydownloadsfolder_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes", + "displayName": "System Policy Network Volumes", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicynetworkvolumes_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes", + "displayName": "System Policy Removable Volumes", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicyremovablevolumes_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles", + "displayName": "System Policy Sys Admin Files", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_allowed", + "displayName": "Allowed", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_allowed_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_allowed_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_authorization", + "displayName": "Authorization", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_authorization_0", + "displayName": "Allow", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_authorization_1", + "displayName": "Deny", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_authorization_2", + "displayName": "Allow Standard User To Set System Service", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_coderequirement", + "displayName": "Code Requirement", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_identifier", + "displayName": "Identifier", + "options": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_identifiertype", + "displayName": "Identifier Type", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_identifiertype_0", + "displayName": "bundle ID", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_identifiertype_1", + "displayName": "path", + "description": null + } + ] + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_staticcode", + "displayName": "Static Code", + "options": [ + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_staticcode_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.tcc.configuration-profile-policy_services_systempolicysysadminfiles_item_staticcode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_closeviewfarpoint", + "displayName": "Close View Far Point", + "options": null + }, + { + "id": "com.apple.universalaccess_closeviewhotkeysenabled", + "displayName": "Close View Hotkeys Enabled", + "options": [ + { + "id": "com.apple.universalaccess_closeviewhotkeysenabled_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_closeviewhotkeysenabled_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_closeviewnearpoint", + "displayName": "Close View Near Point", + "options": null + }, + { + "id": "com.apple.universalaccess_closeviewscrollwheeltoggle", + "displayName": "Close View Scroll Wheel Toggle", + "options": [ + { + "id": "com.apple.universalaccess_closeviewscrollwheeltoggle_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_closeviewscrollwheeltoggle_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_closeviewsmoothimages", + "displayName": "Close View Smooth Images", + "options": [ + { + "id": "com.apple.universalaccess_closeviewsmoothimages_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_closeviewsmoothimages_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_com.apple.universalaccess", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.universalaccess_contrast", + "displayName": "Contrast", + "options": null + }, + { + "id": "com.apple.universalaccess_flashscreen", + "displayName": "Flash Screen", + "options": [ + { + "id": "com.apple.universalaccess_flashscreen_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_flashscreen_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_mousedriver", + "displayName": "Mouse Driver", + "options": [ + { + "id": "com.apple.universalaccess_mousedriver_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_mousedriver_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_mousedrivercursorsize", + "displayName": "Mouse Driver Cursor Size", + "options": null + }, + { + "id": "com.apple.universalaccess_mousedriverignoretrackpad", + "displayName": "Mouse Driver Ignore Trackpad", + "options": [ + { + "id": "com.apple.universalaccess_mousedriverignoretrackpad_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_mousedriverignoretrackpad_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_mousedriverinitialdelay", + "displayName": "Mouse Driver Initial Delay", + "options": null + }, + { + "id": "com.apple.universalaccess_mousedrivermaxspeed", + "displayName": "Mouse Driver Max Speed", + "options": null + }, + { + "id": "com.apple.universalaccess_slowkey", + "displayName": "Slow Key", + "options": [ + { + "id": "com.apple.universalaccess_slowkey_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_slowkey_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_slowkeybeepon", + "displayName": "Slow Key Beep On", + "options": [ + { + "id": "com.apple.universalaccess_slowkeybeepon_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_slowkeybeepon_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_slowkeydelay", + "displayName": "Slow Key Delay", + "options": null + }, + { + "id": "com.apple.universalaccess_stereoasmono", + "displayName": "Stereo as Mono", + "options": [ + { + "id": "com.apple.universalaccess_stereoasmono_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_stereoasmono_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_stickykey", + "displayName": "Sticky Key", + "options": [ + { + "id": "com.apple.universalaccess_stickykey_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_stickykey_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_stickykeybeeponmodifier", + "displayName": "Sticky Key Beep On Modifier", + "options": [ + { + "id": "com.apple.universalaccess_stickykeybeeponmodifier_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_stickykeybeeponmodifier_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_stickykeyshowwindow", + "displayName": "Sticky Key Show Window", + "options": [ + { + "id": "com.apple.universalaccess_stickykeyshowwindow_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_stickykeyshowwindow_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_voiceoveronoffkey", + "displayName": "Voice Over On Off Key", + "options": [ + { + "id": "com.apple.universalaccess_voiceoveronoffkey_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_voiceoveronoffkey_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.universalaccess_whiteonblack", + "displayName": "White On Black", + "options": [ + { + "id": "com.apple.universalaccess_whiteonblack_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.universalaccess_whiteonblack_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.webcontent-filter_allowlistbookmarks", + "displayName": "Allow List Bookmarks", + "options": null + }, + { + "id": "com.apple.webcontent-filter_allowlistbookmarks_item_title", + "displayName": "Title", + "options": null + }, + { + "id": "com.apple.webcontent-filter_allowlistbookmarks_item_url", + "displayName": "URL", + "options": null + }, + { + "id": "com.apple.webcontent-filter_autofilterenabled", + "displayName": "Auto Filter Enabled", + "options": [ + { + "id": "com.apple.webcontent-filter_autofilterenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.webcontent-filter_autofilterenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.webcontent-filter_com.apple.webcontent-filter", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.webcontent-filter_denylisturls", + "displayName": "Deny List URLs", + "options": null + }, + { + "id": "com.apple.webcontent-filter_filterbrowsers", + "displayName": "Filter Browsers", + "options": [ + { + "id": "com.apple.webcontent-filter_filterbrowsers_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.webcontent-filter_filterbrowsers_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.webcontent-filter_filterdataproviderbundleidentifier", + "displayName": "Filter Data Provider Bundle Identifier", + "options": null + }, + { + "id": "com.apple.webcontent-filter_filterdataproviderdesignatedrequirement", + "displayName": "Filter Data Provider Designated Requirement", + "options": null + }, + { + "id": "com.apple.webcontent-filter_filtergrade", + "displayName": "Filter Grade", + "options": [ + { + "id": "com.apple.webcontent-filter_filtergrade_0", + "displayName": "firewall", + "description": null + }, + { + "id": "com.apple.webcontent-filter_filtergrade_1", + "displayName": "inspector", + "description": null + } + ] + }, + { + "id": "com.apple.webcontent-filter_filterpacketproviderbundleidentifier", + "displayName": "Filter Packet Provider Bundle Identifier", + "options": null + }, + { + "id": "com.apple.webcontent-filter_filterpacketproviderdesignatedrequirement", + "displayName": "Filter Packet Provider Designated Requirement", + "options": null + }, + { + "id": "com.apple.webcontent-filter_filterpackets", + "displayName": "Filter Packets", + "options": [ + { + "id": "com.apple.webcontent-filter_filterpackets_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.webcontent-filter_filterpackets_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.webcontent-filter_filtersockets", + "displayName": "Filter Sockets", + "options": [ + { + "id": "com.apple.webcontent-filter_filtersockets_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.webcontent-filter_filtersockets_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.webcontent-filter_filtertype", + "displayName": "Filter Type", + "options": [ + { + "id": "com.apple.webcontent-filter_filtertype_0", + "displayName": "Built-in", + "description": null + }, + { + "id": "com.apple.webcontent-filter_filtertype_1", + "displayName": "Plug-in", + "description": null + } + ] + }, + { + "id": "com.apple.webcontent-filter_hidedenylisturls", + "displayName": "Hide Deny List UR Ls", + "options": [ + { + "id": "com.apple.webcontent-filter_hidedenylisturls_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.apple.webcontent-filter_hidedenylisturls_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.apple.webcontent-filter_organization", + "displayName": "Organization", + "options": null + }, + { + "id": "com.apple.webcontent-filter_password", + "displayName": "Password", + "options": null + }, + { + "id": "com.apple.webcontent-filter_permittedurls", + "displayName": "Permitted URLs", + "options": null + }, + { + "id": "com.apple.webcontent-filter_pluginbundleid", + "displayName": "Plugin Bundle ID", + "options": null + }, + { + "id": "com.apple.webcontent-filter_serveraddress", + "displayName": "Server Address", + "options": null + }, + { + "id": "com.apple.webcontent-filter_userdefinedname", + "displayName": "User Defined Name", + "options": null + }, + { + "id": "com.apple.webcontent-filter_username", + "displayName": "User Name", + "options": null + }, + { + "id": "com.apple.xsan.preferences_com.apple.xsan.preferences", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.xsan.preferences_denydlc", + "displayName": "Deny DLC", + "options": null + }, + { + "id": "com.apple.xsan.preferences_denymount", + "displayName": "Deny Mount", + "options": null + }, + { + "id": "com.apple.xsan.preferences_onlymount", + "displayName": "Only Mount", + "options": null + }, + { + "id": "com.apple.xsan.preferences_preferdlc", + "displayName": "Prefer DLC", + "options": null + }, + { + "id": "com.apple.xsan.preferences_usedlc", + "displayName": "Use DLC", + "options": [ + { + "id": "com.apple.xsan.preferences_usedlc_false", + "displayName": "False", + "description": null + }, + { + "id": "com.apple.xsan.preferences_usedlc_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "com.apple.xsan_com.apple.xsan", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "com.apple.xsan_fsnameservers", + "displayName": "FS Name Servers", + "options": null + }, + { + "id": "com.apple.xsan_sanauthmethod", + "displayName": "San Auth Method", + "options": { + "id": "com.apple.xsan_sanauthmethod_0", + "displayName": "auth_secret", + "description": null + } + }, + { + "id": "com.apple.xsan_sanconfigurls", + "displayName": "San Config URLs", + "options": null + }, + { + "id": "com.apple.xsan_sanname", + "displayName": "San Name", + "options": null + }, + { + "id": "com.apple.xsan_sharedsecret", + "displayName": "Shared Secret", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.accessibilityimagelabelsenabled", + "displayName": "Let screen reader users get image descriptions from Microsoft", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.accessibilityimagelabelsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.accessibilityimagelabelsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.addressbareditingenabled", + "displayName": "Configure address bar editing", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.addressbareditingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.addressbareditingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.addressbarmicrosoftsearchinbingproviderenabled", + "displayName": "Enable Microsoft Search in Bing suggestions in the address bar", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.addressbarmicrosoftsearchinbingproviderenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.addressbarmicrosoftsearchinbingproviderenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.adssettingforintrusiveadssites_allowads", + "displayName": "Allow ads on all sites", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.adssettingforintrusiveadssites_blockads", + "displayName": "Block ads on sites with intrusive ads. (Default value)", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.adstransparencyenabled", + "displayName": "Configure if the ads transparency feature is enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.adstransparencyenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.adstransparencyenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowdeletingbrowserhistory", + "displayName": "Enable deleting browser and download history", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowdeletingbrowserhistory_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowdeletingbrowserhistory_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowgamesmenu", + "displayName": "Allow users to access the games menu", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowgamesmenu_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowgamesmenu_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowpopupsduringpageunload", + "displayName": "Allows a page to show popups during its unloading (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowpopupsduringpageunload_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowpopupsduringpageunload_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowsurfgame", + "displayName": "Allow surf game", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowsurfgame_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowsurfgame_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowsyncxhrinpagedismissal", + "displayName": "Allow pages to send synchronous XHR requests during page dismissal (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowsyncxhrinpagedismissal_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowsyncxhrinpagedismissal_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.allowtrackingforurls", + "displayName": "Configure tracking prevention exceptions for specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alternateerrorpagesenabled", + "displayName": "Suggest similar pages when a webpage can't be found", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alternateerrorpagesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alternateerrorpagesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alternateerrorpagesenabled_recommended", + "displayName": "Suggest similar pages when a webpage can't be found (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alternateerrorpagesenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alternateerrorpagesenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alwaysopenpdfexternally", + "displayName": "Always open PDF files externally", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alwaysopenpdfexternally_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.alwaysopenpdfexternally_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.askbeforecloseenabled", + "displayName": "Get user confirmation before closing a browser window with multiple tabs", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.askbeforecloseenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.askbeforecloseenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.askbeforecloseenabled_recommended", + "displayName": "Get user confirmation before closing a browser window with multiple tabs (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.askbeforecloseenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.askbeforecloseenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.audiocaptureallowedurls", + "displayName": "Sites that can access audio capture devices without requesting permission", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofilladdressenabled", + "displayName": "Enable AutoFill for addresses", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofilladdressenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofilladdressenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofilladdressenabled_recommended", + "displayName": "Enable AutoFill for addresses (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofilladdressenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofilladdressenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillcreditcardenabled", + "displayName": "Enable AutoFill for payment instruments", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillcreditcardenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillcreditcardenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillcreditcardenabled_recommended", + "displayName": "Enable AutoFill for payment instruments (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillcreditcardenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillcreditcardenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillmembershipsenabled", + "displayName": "Save and fill memberships", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillmembershipsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillmembershipsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillmembershipsenabled_recommended", + "displayName": "Save and fill memberships (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillmembershipsenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autofillmembershipsenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autolaunchprotocolscomponentenabled", + "displayName": "AutoLaunch Protocols Component Enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autolaunchprotocolscomponentenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autolaunchprotocolscomponentenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automaticdownloadsallowedforurls", + "displayName": "Allow multiple automatic downloads in quick succession on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automaticdownloadsblockedforurls", + "displayName": "Block multiple automatic downloads in quick succession on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automatichttpsdefault", + "displayName": "Configure Automatic HTTPS", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automatichttpsdefault_disableautomatichttps", + "displayName": "Automatic HTTPS functionality is disabled.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automatichttpsdefault_upgradecapabledomains", + "displayName": "(Deprecated) Navigations delivered over HTTP are switched to HTTPS, only on domains likely to support HTTPS.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automatichttpsdefault_alwaysupgrade", + "displayName": "All navigations delivered over HTTP are switched to HTTPS. Connection errors might occur more often.", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automatichttpsdefault_recommended", + "displayName": "Configure Automatic HTTPS (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automatichttpsdefault_recommended_disableautomatichttps", + "displayName": "Automatic HTTPS functionality is disabled.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automatichttpsdefault_recommended_upgradecapabledomains", + "displayName": "(Deprecated) Navigations delivered over HTTP are switched to HTTPS, only on domains likely to support HTTPS.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.automatichttpsdefault_recommended_alwaysupgrade", + "displayName": "All navigations delivered over HTTP are switched to HTTPS. Connection errors might occur more often.", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autoopenallowedforurls", + "displayName": "URLs where AutoOpenFileTypes can apply", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autoopenfiletypes", + "displayName": "List of file types that should be automatically opened on download", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autoplayallowed", + "displayName": "Allow media autoplay for websites", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autoplayallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autoplayallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autoplayallowlist", + "displayName": "Allow media autoplay on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.autoselectcertificateforurls", + "displayName": "Automatically select client certificates for these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.backgroundtemplatelistupdatesenabled", + "displayName": "Enables background updates to the list of available templates for Collections and other features that use templates (Deprecated)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.backgroundtemplatelistupdatesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.backgroundtemplatelistupdatesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockexternalextensions", + "displayName": "Blocks external extensions from being installed", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockexternalextensions_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockexternalextensions_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockthirdpartycookies", + "displayName": "Block third party cookies", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockthirdpartycookies_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockthirdpartycookies_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockthirdpartycookies_recommended", + "displayName": "Block third party cookies (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockthirdpartycookies_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.blockthirdpartycookies_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.browsernetworktimequeriesenabled", + "displayName": "Allow queries to a Browser Network Time service", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.browsernetworktimequeriesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.browsernetworktimequeriesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.certificatetransparencyenforcementdisabledforcas", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.certificatetransparencyenforcementdisabledforlegacycas", + "displayName": "Disable Certificate Transparency enforcement for a list of legacy certificate authorities", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearbrowsingdataonexit", + "displayName": "Clear browsing data when Microsoft Edge closes", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearbrowsingdataonexit_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearbrowsingdataonexit_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearbrowsingdataonexit_recommended", + "displayName": "Clear browsing data when Microsoft Edge closes (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearbrowsingdataonexit_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearbrowsingdataonexit_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearcachedimagesandfilesonexit", + "displayName": "Clear cached images and files when Microsoft Edge closes", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearcachedimagesandfilesonexit_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearcachedimagesandfilesonexit_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearcachedimagesandfilesonexit_recommended", + "displayName": "Clear cached images and files when Microsoft Edge closes (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearcachedimagesandfilesonexit_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clearcachedimagesandfilesonexit_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clipboardallowedforurls", + "displayName": "Allow clipboard use on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.clipboardblockedforurls", + "displayName": "Block clipboard use on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.collectionsservicesandexportsblocklist", + "displayName": "Block access to a specified list of services and export targets in Collections", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.collectionsservicesandexportsblocklist_collections_share", + "displayName": "Sharing of Collections", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.collectionsservicesandexportsblocklist_local_pdf", + "displayName": "Save local PDFs in Collections to OneDrive", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.collectionsservicesandexportsblocklist_send_word", + "displayName": "Send collection to Microsoft Word", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.collectionsservicesandexportsblocklist_send_excel", + "displayName": "Send collection to Microsoft Excel", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.collectionsservicesandexportsblocklist_send_onenote", + "displayName": "Send collection to Microsoft OneNote", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configuredonottrack", + "displayName": "Configure Do Not Track", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configuredonottrack_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configuredonottrack_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurefriendlyurlformat", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurefriendlyurlformat_plaintext", + "displayName": "The plain URL without any extra information, such as the page's title. This is the recommended option when this policy is configured. For more information, see the description.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurefriendlyurlformat_titledhyperlink", + "displayName": "Titled Hyperlink: A hyperlink that points to the copied URL, but whose visible text is the title of the destination page. This is the Friendly URL format.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurefriendlyurlformat_webpreview", + "displayName": "Coming soon. If set, behaves the same as 'Plain URL'.", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurefriendlyurlformat_recommended", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurefriendlyurlformat_recommended_plaintext", + "displayName": "The plain URL without any extra information, such as the page's title. This is the recommended option when this policy is configured. For more information, see the description.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurefriendlyurlformat_recommended_titledhyperlink", + "displayName": "Titled Hyperlink: A hyperlink that points to the copied URL, but whose visible text is the title of the destination page. This is the Friendly URL format.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurefriendlyurlformat_recommended_webpreview", + "displayName": "Coming soon. If set, behaves the same as 'Plain URL'.", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configurekeyboardshortcuts", + "displayName": "Configure the list of commands for which to disable keyboard shortcuts", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configureonlinetexttospeech", + "displayName": "Configure Online Text To Speech", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configureonlinetexttospeech_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configureonlinetexttospeech_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configureshare", + "displayName": "Configure the Share experience", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configureshare_shareallowed", + "displayName": "Allow using the Share experience", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.configureshare_sharedisallowed", + "displayName": "Don't allow using the Share experience", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.controldefaultstateofallowextensionfromotherstoressettingenabled_recommended", + "displayName": "Configure default state of Allow extensions from other stores setting (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.controldefaultstateofallowextensionfromotherstoressettingenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.controldefaultstateofallowextensionfromotherstoressettingenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.cookiesallowedforurls", + "displayName": "Allow cookies on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.cookiesblockedforurls", + "displayName": "Block cookies on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.cookiessessiononlyforurls", + "displayName": "Limit cookies from specific websites to the current session", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.corsnonwildcardrequestheaderssupport", + "displayName": "CORS non-wildcard request header support enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.corsnonwildcardrequestheaderssupport_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.corsnonwildcardrequestheaderssupport_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.crossoriginwebassemblymodulesharingenabled", + "displayName": "Specifies whether WebAssembly modules can be sent cross-origin (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.crossoriginwebassemblymodulesharingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.crossoriginwebassemblymodulesharingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.cryptowalletenabled", + "displayName": "Enable CryptoWallet feature", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.cryptowalletenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.cryptowalletenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.customhelplink", + "displayName": "Specify custom help link", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultautomaticdownloadssetting", + "displayName": "Default automatic downloads setting", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultautomaticdownloadssetting_allowautomaticdownloads", + "displayName": "Allow all websites to perform automatic downloads", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultautomaticdownloadssetting_blockautomaticdownloads", + "displayName": "Don't allow any website to perform automatic downloads", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultclipboardsetting", + "displayName": "Default clipboard site permission", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultclipboardsetting_blockclipboard", + "displayName": "Do not allow any site to use the clipboard site permission", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultclipboardsetting_askclipboard", + "displayName": "Allow sites to ask the user to grant the clipboard site permission", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultcookiessetting", + "displayName": "Configure cookies", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultcookiessetting_allowcookies", + "displayName": "Let all sites create cookies", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultcookiessetting_blockcookies", + "displayName": "Don't let any site create cookies", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultcookiessetting_sessiononly", + "displayName": "Keep cookies for the duration of the session, except ones listed in \"SaveCookiesOnExit\"", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultfilesystemreadguardsetting_blockfilesystemread", + "displayName": "Don't allow any site to request read access to files and directories via the File System API", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultfilesystemreadguardsetting_askfilesystemread", + "displayName": "Allow sites to ask the user to grant read access to files and directories via the File System API", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultfilesystemwriteguardsetting_blockfilesystemwrite", + "displayName": "Don't allow any site to request write access to files and directories", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultfilesystemwriteguardsetting_askfilesystemwrite", + "displayName": "Allow sites to ask the user to grant write access to files and directories", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultgeolocationsetting", + "displayName": "Default geolocation setting", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultgeolocationsetting_allowgeolocation", + "displayName": "Allow sites to track users' physical location", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultgeolocationsetting_blockgeolocation", + "displayName": "Don't allow any site to track users' physical location", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultgeolocationsetting_askgeolocation", + "displayName": "Ask whenever a site wants to track users' physical location", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultimagessetting", + "displayName": "Default images setting", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultimagessetting_allowimages", + "displayName": "Allow all sites to show all images", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultimagessetting_blockimages", + "displayName": "Don't allow any site to show images", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultinsecurecontentsetting_blockinsecurecontent", + "displayName": "Do not allow any site to load mixed content", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultinsecurecontentsetting_allowexceptionsinsecurecontent", + "displayName": "Allow users to add exceptions to allow mixed content", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultjavascriptjitsetting_allowjavascriptjit", + "displayName": "Allow any site to run JavaScript JIT", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultjavascriptjitsetting_blockjavascriptjit", + "displayName": "Do not allow any site to run JavaScript JIT", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultjavascriptsetting", + "displayName": "Default JavaScript setting", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultjavascriptsetting_allowjavascript", + "displayName": "Allow all sites to run JavaScript", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultjavascriptsetting_blockjavascript", + "displayName": "Don't allow any site to run JavaScript", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultnotificationssetting", + "displayName": "Default notification setting", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultnotificationssetting_allownotifications", + "displayName": "Allow sites to show desktop notifications", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultnotificationssetting_blocknotifications", + "displayName": "Don't allow any site to show desktop notifications", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultnotificationssetting_asknotifications", + "displayName": "Ask every time a site wants to show desktop notifications", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultpluginssetting", + "displayName": "Default Adobe Flash setting (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultpluginssetting_blockplugins", + "displayName": "Block the Adobe Flash plugin", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultpluginssetting_clicktoplay", + "displayName": "Click to play", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultpopupssetting", + "displayName": "Default pop-up window setting", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultpopupssetting_allowpopups", + "displayName": "Allow all sites to show pop-ups", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultpopupssetting_blockpopups", + "displayName": "Do not allow any site to show popups", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultprinterselection", + "displayName": "Default printer selection rules", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidercontextmenuaccessallowed", + "displayName": "Allow default search provider context menu search access", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidercontextmenuaccessallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidercontextmenuaccessallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderenabled", + "displayName": "Enable the default search provider", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderenabled_recommended", + "displayName": "Enable the default search provider (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderencodings", + "displayName": "Default search provider encodings", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderencodings_recommended", + "displayName": "Default search provider encodings (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderimageurl", + "displayName": "Specifies the search-by-image feature for the default search provider", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderimageurl_recommended", + "displayName": "Specifies the search-by-image feature for the default search provider (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for an image URL that uses POST", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderimageurlpostparams_recommended", + "displayName": "Parameters for an image URL that uses POST (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderkeyword", + "displayName": "Default search provider keyword", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchproviderkeyword_recommended", + "displayName": "Default search provider keyword (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidername", + "displayName": "Default search provider name", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidername_recommended", + "displayName": "Default search provider name (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidersearchurl_recommended", + "displayName": "Default search provider search URL (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidersuggesturl", + "displayName": "Default search provider URL for suggestions", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsearchprovidersuggesturl_recommended", + "displayName": "Default search provider URL for suggestions (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsensorssetting", + "displayName": "Default sensors setting", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsensorssetting_allowsensors", + "displayName": "Allow sites to access sensors", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultsensorssetting_blocksensors", + "displayName": "Do not allow any site to access sensors", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultserialguardsetting", + "displayName": "Control use of the Serial API", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultserialguardsetting_blockserial", + "displayName": "Do not allow any site to request access to serial ports via the Serial API", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultserialguardsetting_askserial", + "displayName": "Allow sites to ask for user permission to access a serial port", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultshareadditionalosregionsetting", + "displayName": "Set the default \"share additional operating system region\" setting", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultshareadditionalosregionsetting_limited", + "displayName": "Limited", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultshareadditionalosregionsetting_always", + "displayName": "Always share the OS Regional format", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultshareadditionalosregionsetting_never", + "displayName": "Never share the OS Regional format", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultshareadditionalosregionsetting_recommended", + "displayName": "Set the default \"share additional operating system region\" setting (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultshareadditionalosregionsetting_recommended_limited", + "displayName": "Limited", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultshareadditionalosregionsetting_recommended_always", + "displayName": "Always share the OS Regional format", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultshareadditionalosregionsetting_recommended_never", + "displayName": "Never share the OS Regional format", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebbluetoothguardsetting_blockwebbluetooth", + "displayName": "Do not allow any site to request access to Bluetooth devices via the Web Bluetooth API", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebbluetoothguardsetting_askwebbluetooth", + "displayName": "Allow sites to ask the user to grant access to a nearby Bluetooth device", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebhidguardsetting", + "displayName": "Control use of the WebHID API", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebhidguardsetting_blockwebhid", + "displayName": "Do not allow any site to request access to HID devices via the WebHID API", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebhidguardsetting_askwebhid", + "displayName": "Allow sites to ask the user to grant access to a HID device", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebusbguardsetting_blockwebusb", + "displayName": "Do not allow any site to request access to USB devices via the WebUSB API", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.defaultwebusbguardsetting_askwebusb", + "displayName": "Allow sites to ask the user to grant access to a connected USB device", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.definepreferredlanguages", + "displayName": "Define an ordered list of preferred languages that websites should display in if the site supports the language", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.delaynavigationsforinitialsitelistdownload", + "displayName": "Require that the Enterprise Mode Site List is available before tab navigation", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.delaynavigationsforinitialsitelistdownload_none", + "displayName": "None", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.delaynavigationsforinitialsitelistdownload_all", + "displayName": "All eligible navigations", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.developertoolsavailability", + "displayName": "Control where developer tools can be used", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.developertoolsavailability_developertoolsdisallowedforforceinstalledextensions", + "displayName": "Block the developer tools on extensions installed by enterprise policy, allow in other contexts", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.developertoolsavailability_developertoolsallowed", + "displayName": "Allow using the developer tools", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.developertoolsavailability_developertoolsdisallowed", + "displayName": "Don't allow using the developer tools", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.disable3dapis", + "displayName": "Disable support for 3D graphics APIs", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.disable3dapis_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.disable3dapis_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.displaycapturepermissionspolicyenabled", + "displayName": "Specifies whether the display-capture permissions-policy is checked or skipped (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.displaycapturepermissionspolicyenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.displaycapturepermissionspolicyenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.donotsilentlyblockprotocolsfromorigins", + "displayName": "Define a list of protocols that can not be silently blocked by anti-flood protection", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.doubleclickclosetabenabled", + "displayName": "Double Click feature in Microsoft Edge enabled (only available in China)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.doubleclickclosetabenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.doubleclickclosetabenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloaddirectory", + "displayName": "Set download directory", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloaddirectory_recommended", + "displayName": "Set download directory (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions", + "displayName": "Allow download restrictions", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_defaultdownloadsecurity", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_blockdangerousdownloads", + "displayName": "Block malicious downloads and dangerous file types", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_blockpotentiallydangerousdownloads", + "displayName": "Block potentially dangerous or unwanted downloads and dangerous file types", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_blockalldownloads", + "displayName": "Block all downloads", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_blockmaliciousdownloads", + "displayName": "Block malicious downloads", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_recommended", + "displayName": "Allow download restrictions (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_recommended_defaultdownloadsecurity", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_recommended_blockdangerousdownloads", + "displayName": "Block malicious downloads and dangerous file types", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_recommended_blockpotentiallydangerousdownloads", + "displayName": "Block potentially dangerous or unwanted downloads and dangerous file types", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_recommended_blockalldownloads", + "displayName": "Block all downloads", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.downloadrestrictions_recommended_blockmaliciousdownloads", + "displayName": "Block malicious downloads", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeassetdeliveryserviceenabled", + "displayName": "Allow features to download assets from the Asset Delivery Service", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeassetdeliveryserviceenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeassetdeliveryserviceenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeassetdeliveryserviceenabled_recommended", + "displayName": "Allow features to download assets from the Asset Delivery Service (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeassetdeliveryserviceenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeassetdeliveryserviceenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgecollectionsenabled", + "displayName": "Enable the Collections feature", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgecollectionsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgecollectionsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgediscoverenabled", + "displayName": "Discover feature In Microsoft Edge (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgediscoverenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgediscoverenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgediscoverenabled_recommended", + "displayName": "Discover feature In Microsoft Edge (Obsolete) (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgediscoverenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgediscoverenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeedropenabled", + "displayName": "Enable Drop feature in Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeedropenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeedropenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeenhanceimagesenabled", + "displayName": "Enhance images enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeenhanceimagesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeenhanceimagesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgefollowenabled", + "displayName": "Enable Follow service in Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgefollowenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgefollowenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeshoppingassistantenabled", + "displayName": "Shopping in Microsoft Edge Enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeshoppingassistantenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeshoppingassistantenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeshoppingassistantenabled_recommended", + "displayName": "Shopping in Microsoft Edge Enabled (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeshoppingassistantenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeshoppingassistantenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeworkspacesenabled", + "displayName": "Enable Workspaces", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeworkspacesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.edgeworkspacesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.editfavoritesenabled", + "displayName": "Allows users to edit favorites", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.editfavoritesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.editfavoritesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enabledeprecatedwebplatformfeatures", + "displayName": "Re-enable deprecated web platform features for a limited time (Obsolete)", + "options": { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enabledeprecatedwebplatformfeatures_exampledeprecatedfeature", + "displayName": "Enable ExampleDeprecatedFeature API through 2008/09/02", + "description": null + } + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enablemediarouter", + "displayName": "Enable Google Cast", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enablemediarouter_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enablemediarouter_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymode_standardmode", + "displayName": "Standard mode", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymode_balancedmode", + "displayName": "Balanced mode", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymode_strictmode", + "displayName": "Strict mode", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymode_basicmode", + "displayName": "Basic mode", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymodebypassintranet", + "displayName": "Enhanced Security Mode configuration for Intranet zone sites", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymodebypassintranet_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymodebypassintranet_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymodebypasslistdomains", + "displayName": "Configure the list of domains for which enhance security mode will not be enforced", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enhancesecuritymodeenforcelistdomains", + "displayName": "Configure the list of domains for which enhance security mode will always be enforced", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enterprisehardwareplatformapienabled", + "displayName": "Allow managed extensions to use the Enterprise Hardware Platform API", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enterprisehardwareplatformapienabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enterprisehardwareplatformapienabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enterprisemodesitelistmanagerallowed", + "displayName": "Allow access to the Enterprise Mode Site List Manager tool", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enterprisemodesitelistmanagerallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.enterprisemodesitelistmanagerallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.eventpathenabled", + "displayName": "Re-enable the Event.path API until Microsoft Edge version 115", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.eventpathenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.eventpathenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.exemptdomainfiletypepairsfromfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains (Obsolete)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.exemptfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensionallowedtypes", + "displayName": "Configure allowed extension types", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensionallowedtypes_extension", + "displayName": "Extension", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensionallowedtypes_theme", + "displayName": "Theme", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensionallowedtypes_user_script", + "displayName": "User script", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensionallowedtypes_hosted_app", + "displayName": "Hosted app", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensionallowedtypes_legacy_packaged_app", + "displayName": "Legacy packaged app", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensionallowedtypes_platform_app", + "displayName": "Platform app", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensioninstallallowlist", + "displayName": "Allow specific extensions to be installed", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensioninstallblocklist", + "displayName": "Control which extensions cannot be installed", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensioninstallforcelist", + "displayName": "Control which extensions are installed silently", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensioninstallsources", + "displayName": "Configure extension and user script install sources", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.extensionsettings", + "displayName": "Configure extension management settings", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.externalprotocoldialogshowalwaysopencheckbox", + "displayName": "Show an \"Always open\" checkbox in external protocol dialog", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.externalprotocoldialogshowalwaysopencheckbox_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.externalprotocoldialogshowalwaysopencheckbox_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.familysafetysettingsenabled", + "displayName": "Allow users to configure Family safety and Kids Mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.familysafetysettingsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.familysafetysettingsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.favoritesbarenabled", + "displayName": "Enable favorites bar", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.favoritesbarenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.favoritesbarenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.favoritesbarenabled_recommended", + "displayName": "Enable favorites bar (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.favoritesbarenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.favoritesbarenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on shutdown", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.filesystemreadaskforurls", + "displayName": "Allow read access via the File System API on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.filesystemreadblockedforurls", + "displayName": "Block read access via the File System API on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.filesystemwriteaskforurls", + "displayName": "Allow write access to files and directories on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.filesystemwriteblockedforurls", + "displayName": "Block write access to files and directories on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcebingsafesearch", + "displayName": "Enforce Bing SafeSearch", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcebingsafesearch_bingsafesearchnorestrictionsmode", + "displayName": "Don't configure search restrictions in Bing", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcebingsafesearch_bingsafesearchmoderatemode", + "displayName": "Configure moderate search restrictions in Bing", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcebingsafesearch_bingsafesearchstrictmode", + "displayName": "Configure strict search restrictions in Bing", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forceephemeralprofiles", + "displayName": "Enable use of ephemeral profiles", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forceephemeralprofiles_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forceephemeralprofiles_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcegooglesafesearch", + "displayName": "Enforce Google SafeSearch", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcegooglesafesearch_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcegooglesafesearch_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcemajorversiontominorpositioninuseragent", + "displayName": "Enable or disable freezing the User-Agent string at major version 99", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcemajorversiontominorpositioninuseragent_default", + "displayName": "Default to browser settings for User-Agent string version.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcemajorversiontominorpositioninuseragent_forcedisabled", + "displayName": "The User-Agent string will not freeze the major version.", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcemajorversiontominorpositioninuseragent_forceenabled", + "displayName": "The User-Agent string will freeze the major version as 99 and include the browser's major version in the minor position.", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcesync", + "displayName": "Force synchronization of browser data and do not show the sync consent prompt", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcesync_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcesync_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forcesynctypes", + "displayName": "Configure the list of types that are included for synchronization", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forceyoutuberestrict_off", + "displayName": "Do not enforce Restricted Mode on YouTube", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forceyoutuberestrict_moderate", + "displayName": "Enforce at least Moderate Restricted Mode on YouTube", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.forceyoutuberestrict_strict", + "displayName": "Enforce Strict Restricted Mode for YouTube", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.fullscreenallowed", + "displayName": "Allow full screen mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.fullscreenallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.fullscreenallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.globallyscopehttpauthcacheenabled", + "displayName": "Enable globally scoped HTTP auth cache", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.globallyscopehttpauthcacheenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.globallyscopehttpauthcacheenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.homepageisnewtabpage", + "displayName": "Set the new tab page as the home page", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.homepageisnewtabpage_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.homepageisnewtabpage_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.homepageisnewtabpage_recommended", + "displayName": "Set the new tab page as the home page (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.homepageisnewtabpage_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.homepageisnewtabpage_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.homepagelocation", + "displayName": "Configure the home page URL", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.homepagelocation_recommended", + "displayName": "Configure the home page URL (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.hstspolicybypasslist", + "displayName": "Configure the list of names that will bypass the HSTS policy check", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.hubssidebarenabled", + "displayName": "Show Hubs Sidebar", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.hubssidebarenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.hubssidebarenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.hubssidebarenabled_recommended", + "displayName": "Show Hubs Sidebar (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.hubssidebarenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.hubssidebarenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.imagesallowedforurls", + "displayName": "Allow images on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.imagesblockedforurls", + "displayName": "Block images on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.immersivereadergrammartoolsenabled", + "displayName": "Enable Grammar Tools feature within Immersive Reader in Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.immersivereadergrammartoolsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.immersivereadergrammartoolsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.immersivereaderpicturedictionaryenabled", + "displayName": "Enable Picture Dictionary feature within Immersive Reader in Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.immersivereaderpicturedictionaryenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.immersivereaderpicturedictionaryenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importautofillformdata", + "displayName": "Allow importing of autofill form data", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importautofillformdata_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importautofillformdata_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importautofillformdata_recommended", + "displayName": "Allow importing of autofill form data (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importautofillformdata_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importautofillformdata_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importbrowsersettings", + "displayName": "Allow importing of browser settings", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importbrowsersettings_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importbrowsersettings_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importbrowsersettings_recommended", + "displayName": "Allow importing of browser settings (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importbrowsersettings_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importbrowsersettings_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importcookies", + "displayName": "Allow importing of Cookies", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importcookies_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importcookies_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importcookies_recommended", + "displayName": "Allow importing of Cookies (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importcookies_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importcookies_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importextensions", + "displayName": "Allow importing of extensions", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importextensions_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importextensions_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importextensions_recommended", + "displayName": "Allow importing of extensions (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importextensions_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importextensions_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importfavorites", + "displayName": "Allow importing of favorites", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importfavorites_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importfavorites_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importfavorites_recommended", + "displayName": "Allow importing of favorites (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importfavorites_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importfavorites_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhistory", + "displayName": "Allow importing of browsing history", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhistory_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhistory_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhistory_recommended", + "displayName": "Allow importing of browsing history (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhistory_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhistory_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhomepage", + "displayName": "Allow importing of home page settings", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhomepage_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importhomepage_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importoneachlaunch", + "displayName": "Allow import of data from other browsers on each Microsoft Edge launch", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importoneachlaunch_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importoneachlaunch_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importopentabs", + "displayName": "Allow importing of open tabs", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importopentabs_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importopentabs_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importopentabs_recommended", + "displayName": "Allow importing of open tabs (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importopentabs_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importopentabs_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importpaymentinfo", + "displayName": "Allow importing of payment info", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importpaymentinfo_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importpaymentinfo_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importpaymentinfo_recommended", + "displayName": "Allow importing of payment info (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importpaymentinfo_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importpaymentinfo_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsavedpasswords", + "displayName": "Allow importing of saved passwords", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsavedpasswords_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsavedpasswords_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsavedpasswords_recommended", + "displayName": "Allow importing of saved passwords (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsavedpasswords_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsavedpasswords_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsearchengine", + "displayName": "Allow importing of search engine settings", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsearchengine_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsearchengine_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsearchengine_recommended", + "displayName": "Allow importing of search engine settings (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsearchengine_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importsearchengine_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importshortcuts", + "displayName": "Allow importing of shortcuts", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importshortcuts_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importshortcuts_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importshortcuts_recommended", + "displayName": "Allow importing of shortcuts (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importshortcuts_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importshortcuts_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importstartuppagesettings", + "displayName": "Allow importing of startup page settings", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importstartuppagesettings_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importstartuppagesettings_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importstartuppagesettings_recommended", + "displayName": "Allow importing of startup page settings (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importstartuppagesettings_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.importstartuppagesettings_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.inprivatemodeavailability", + "displayName": "Configure InPrivate mode availability", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.inprivatemodeavailability_enabled", + "displayName": "InPrivate mode available", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.inprivatemodeavailability_disabled", + "displayName": "InPrivate mode disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.inprivatemodeavailability_forced", + "displayName": "InPrivate mode forced", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecurecontentallowedforurls", + "displayName": "Allow insecure content on specified sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecurecontentblockedforurls", + "displayName": "Block insecure content on specified sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecureformswarningsenabled", + "displayName": "Enable warnings for insecure forms", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecureformswarningsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecureformswarningsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecureprivatenetworkrequestsallowed", + "displayName": "Specifies whether to allow websites to make requests to more-private network endpoints", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecureprivatenetworkrequestsallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecureprivatenetworkrequestsallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.insecureprivatenetworkrequestsallowedforurls", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from in an insecure manner", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationalwaysuseoscapture", + "displayName": "Always use the OS capture engine to avoid issues with capturing Internet Explorer mode tabs", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationalwaysuseoscapture_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationalwaysuseoscapture_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationalwayswaitforunload", + "displayName": "Wait for Internet Explorer mode tabs to completely unload before ending the browser session", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationalwayswaitforunload_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationalwayswaitforunload_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationcloudneutralsitesreporting", + "displayName": "Configure reporting of potentially misconfigured neutral site URLs to the M365 Admin Center Site Lists app", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationcloudsitelist", + "displayName": "Configure the Enterprise Mode Cloud Site List", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationcloudusersitesreporting", + "displayName": "Configure reporting of IE Mode user list entries to the M365 Admin Center Site Lists app", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationcomplexnavdatatypes", + "displayName": "Configure whether form data and HTTP headers will be sent when entering or exiting Internet Explorer mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationcomplexnavdatatypes_includenone", + "displayName": "Do not send form data or headers", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationcomplexnavdatatypes_includeformdataonly", + "displayName": "Send form data only", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationcomplexnavdatatypes_includeheadersonly", + "displayName": "Send additional headers only", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationcomplexnavdatatypes_includeformdataandheaders", + "displayName": "Send form data and additional headers", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationenhancedhangdetection", + "displayName": "Configure enhanced hang detection for Internet Explorer mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationenhancedhangdetection_disabled", + "displayName": "Enhanced hang detection disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationenhancedhangdetection_enabled", + "displayName": "Enhanced hang detection enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlevel", + "displayName": "Configure Internet Explorer integration", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlevel_none", + "displayName": "None", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlevel_iemode", + "displayName": "Internet Explorer mode", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlevel_needie", + "displayName": "Internet Explorer 11", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalfileallowed", + "displayName": "Allow launching of local files in Internet Explorer mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalfileallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalfileallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalfileextensionallowlist", + "displayName": "Open local files in Internet Explorer mode file extension allow list", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalfileshowcontextmenu", + "displayName": "Show context menu to open a file:// link in Internet Explorer mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalfileshowcontextmenu_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalfileshowcontextmenu_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalmhtfileallowed", + "displayName": "Allow local MHTML files to open automatically in Internet Explorer mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalmhtfileallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationlocalmhtfileallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationreloadiniemodeallowed", + "displayName": "Allow unconfigured sites to be reloaded in Internet Explorer mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationreloadiniemodeallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationreloadiniemodeallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationreloadiniemodeallowed_recommended", + "displayName": "Allow unconfigured sites to be reloaded in Internet Explorer mode (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationreloadiniemodeallowed_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationreloadiniemodeallowed_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationsitelist", + "displayName": "Configure the Enterprise Mode Site List", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationsitelistrefreshinterval", + "displayName": "Configure how frequently the Enterprise Mode Site List is refreshed", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationsiteredirect", + "displayName": "Specify how \"in-page\" navigations to unconfigured sites behave when started from Internet Explorer mode pages", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationsiteredirect_default", + "displayName": "Default", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationsiteredirect_automaticnavigationsonly", + "displayName": "Keep only automatic navigations in Internet Explorer mode", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationsiteredirect_allinpagenavigations", + "displayName": "Keep all in-page navigations in Internet Explorer mode", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationtestingallowed", + "displayName": "Allow Internet Explorer mode testing (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationtestingallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationtestingallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationwindowopenheightadjustment", + "displayName": "Configure the pixel adjustment between window.open heights sourced from IE mode pages vs. Edge mode pages", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerintegrationwindowopenwidthadjustment", + "displayName": "Configure the pixel adjustment between window.open widths sourced from IE mode pages vs. Edge mode pages", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodecleardataonexitenabled", + "displayName": "Clear history for IE and IE mode every time you exit", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodecleardataonexitenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodecleardataonexitenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodeenablesavepageas", + "displayName": "Allow Save page as in Internet Explorer mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodeenablesavepageas_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodeenablesavepageas_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetabinedgemodeallowed", + "displayName": "Allow sites configured for Internet Explorer mode to open in Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetabinedgemodeallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetabinedgemodeallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetoolbarbuttonenabled", + "displayName": "Show the Reload in Internet Explorer mode button in the toolbar", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetoolbarbuttonenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetoolbarbuttonenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetoolbarbuttonenabled_recommended", + "displayName": "Show the Reload in Internet Explorer mode button in the toolbar (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetoolbarbuttonenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorermodetoolbarbuttonenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerzoomdisplay", + "displayName": "Display zoom in IE Mode tabs with DPI Scale included like it is in Internet Explorer", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerzoomdisplay_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.internetexplorerzoomdisplay_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.intranetfilelinksenabled", + "displayName": "Allow intranet zone file URL links from Microsoft Edge to open in Windows File Explorer", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.intranetfilelinksenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.intranetfilelinksenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.javascriptallowedforurls", + "displayName": "Allow JavaScript on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.javascriptblockedforurls", + "displayName": "Block JavaScript on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.javascriptjitallowedforsites", + "displayName": "Allow JavaScript to use JIT on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.javascriptjitblockedforsites", + "displayName": "Block JavaScript from using JIT on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.legacysamesitecookiebehaviorenabled", + "displayName": "Enable default legacy SameSite cookie behavior setting (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.legacysamesitecookiebehaviorenabled_defaulttolegacysamesitecookiebehavior", + "displayName": "Revert to legacy SameSite behavior for cookies on all sites", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.legacysamesitecookiebehaviorenabled_defaulttosamesitebydefaultcookiebehavior", + "displayName": "Use SameSite-by-default behavior for cookies on all sites", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.legacysamesitecookiebehaviorenabledfordomainlist", + "displayName": "Revert to legacy SameSite behavior for cookies on specified sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.linkedaccountenabled", + "displayName": "Enable the linked account feature", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.linkedaccountenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.linkedaccountenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.livecaptionsallowed", + "displayName": "Live captions allowed", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.livecaptionsallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.livecaptionsallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localbrowserdatashareenabled", + "displayName": "Enable Windows to search local Microsoft Edge browsing data", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localbrowserdatashareenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localbrowserdatashareenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localbrowserdatashareenabled_recommended", + "displayName": "Enable Windows to search local Microsoft Edge browsing data (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localbrowserdatashareenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localbrowserdatashareenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localprovidersenabled", + "displayName": "Allow suggestions from local providers", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localprovidersenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localprovidersenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localprovidersenabled_recommended", + "displayName": "Allow suggestions from local providers (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localprovidersenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.localprovidersenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.managedconfigurationperorigin", + "displayName": "Sets managed configuration values for websites to specific origins", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.managedfavorites", + "displayName": "Configure favorites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.managedsearchengines", + "displayName": "Manage Search Engines", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.managedsearchengines_recommended", + "displayName": "Manage Search Engines (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsoftedgeinsiderpromotionenabled", + "displayName": "Microsoft Edge Insider Promotion Enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsoftedgeinsiderpromotionenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsoftedgeinsiderpromotionenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsofteditorproofingenabled", + "displayName": "Spell checking provided by Microsoft Editor", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsofteditorproofingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsofteditorproofingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsofteditorsynonymsenabled", + "displayName": "Synonyms are provided when using Microsoft Editor spell checker", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsofteditorsynonymsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsofteditorsynonymsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsoftofficemenuenabled", + "displayName": "Allow users to access the Microsoft Office menu (Deprecated)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsoftofficemenuenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.microsoftofficemenuenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.mousegestureenabled", + "displayName": "Mouse Gesture Enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.mousegestureenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.mousegestureenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.nativemessagingallowlist", + "displayName": "Control which native messaging hosts users can use", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.nativemessagingblocklist", + "displayName": "Configure native messaging block list", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.nativemessaginguserlevelhosts", + "displayName": "Allow user-level native messaging hosts (installed without admin permissions)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.nativemessaginguserlevelhosts_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.nativemessaginguserlevelhosts_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.navigationdelayforinitialsitelistdownloadtimeout", + "displayName": "Set a timeout for delay of tab navigation for the Enterprise Mode Site List", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.networkpredictionoptions", + "displayName": "Enable network prediction", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.networkpredictionoptions_networkpredictionalways", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.networkpredictionoptions_networkpredictionwifionly", + "displayName": "Not supported, if this value is used it will be treated as if 'Predict network actions on any network connection' (0) was set", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.networkpredictionoptions_networkpredictionnever", + "displayName": "Don't predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.networkpredictionoptions_recommended", + "displayName": "Enable network prediction (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.networkpredictionoptions_recommended_networkpredictionalways", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.networkpredictionoptions_recommended_networkpredictionwifionly", + "displayName": "Not supported, if this value is used it will be treated as if 'Predict network actions on any network connection' (0) was set", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.networkpredictionoptions_recommended_networkpredictionnever", + "displayName": "Don't predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newpdfreaderenabled", + "displayName": "Microsoft Edge built-in PDF reader powered by Adobe Acrobat enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newpdfreaderenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newpdfreaderenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newpdfreaderenabled_recommended", + "displayName": "Microsoft Edge built-in PDF reader powered by Adobe Acrobat enabled (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newpdfreaderenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newpdfreaderenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageallowedbackgroundtypes", + "displayName": "Configure the background types allowed for the new tab page layout", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageallowedbackgroundtypes_disableimageoftheday", + "displayName": "Disable daily background image type", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageallowedbackgroundtypes_disablecustomimage", + "displayName": "Disable custom background image type", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageallowedbackgroundtypes_disableall", + "displayName": "Disable all background image types", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageapplauncherenabled", + "displayName": "Hide App Launcher on Microsoft Edge new tab page", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageapplauncherenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageapplauncherenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagecompanylogo", + "displayName": "Set new tab page company logo (Obsolete)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagecontentenabled", + "displayName": "Allow Microsoft News content on the new tab page", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagecontentenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagecontentenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagehidedefaulttopsites", + "displayName": "Hide the default top sites from the new tab page", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagehidedefaulttopsites_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagehidedefaulttopsites_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagelocation", + "displayName": "Configure the new tab page URL", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagelocation_recommended", + "displayName": "Configure the new tab page URL (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagemanagedquicklinks", + "displayName": "Set new tab page quick links", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagemanagedquicklinks_recommended", + "displayName": "Set new tab page quick links (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageprerenderenabled", + "displayName": "Enable preload of the new tab page for faster rendering", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageprerenderenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageprerenderenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageprerenderenabled_recommended", + "displayName": "Enable preload of the new tab page for faster rendering (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageprerenderenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpageprerenderenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagequicklinksenabled", + "displayName": "Allow quick links on the new tab page", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagequicklinksenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagequicklinksenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesearchbox", + "displayName": "Configure the new tab page search box experience", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesearchbox_bing", + "displayName": "Search box (Recommended)", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesearchbox_redirect", + "displayName": "Address bar", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesearchbox_recommended", + "displayName": "Configure the new tab page search box experience (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesearchbox_recommended_bing", + "displayName": "Search box (Recommended)", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesearchbox_recommended_redirect", + "displayName": "Address bar", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesetfeedtype", + "displayName": "Configure the Microsoft Edge new tab page experience (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesetfeedtype_news", + "displayName": "Microsoft News feed experience", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesetfeedtype_office", + "displayName": "Office 365 feed experience", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesetfeedtype_recommended", + "displayName": "Configure the Microsoft Edge new tab page experience (Obsolete) (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesetfeedtype_recommended_news", + "displayName": "Microsoft News feed experience", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.newtabpagesetfeedtype_recommended_office", + "displayName": "Office 365 feed experience", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.notificationsallowedforurls", + "displayName": "Allow notifications on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.notificationsblockedforurls", + "displayName": "Block notifications on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.originagentclusterdefaultenabled", + "displayName": "Origin-keyed agent clustering enabled by default", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.originagentclusterdefaultenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.originagentclusterdefaultenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.outlookhubmenuenabled", + "displayName": "Allow users to access the Outlook menu (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.outlookhubmenuenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.outlookhubmenuenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.outlookhubmenuenabled_recommended", + "displayName": "Allow users to access the Outlook menu (Obsolete) (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.outlookhubmenuenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.outlookhubmenuenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordgeneratorenabled", + "displayName": "Allow users to get a strong password suggestion whenever they are creating an account online", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordgeneratorenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordgeneratorenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerblocklist", + "displayName": "Configure the list of domains for which the password manager UI (Save and Fill) will be disabled", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerenabled", + "displayName": "Enable saving passwords to the password manager", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerenabled_recommended", + "displayName": "Enable saving passwords to the password manager (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerrestrictlengthenabled", + "displayName": "Restrict the length of passwords that can be saved in the Password Manager", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerrestrictlengthenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmanagerrestrictlengthenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmonitorallowed", + "displayName": "Allow users to be alerted if their passwords are found to be unsafe", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmonitorallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmonitorallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmonitorallowed_recommended", + "displayName": "Allow users to be alerted if their passwords are found to be unsafe (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmonitorallowed_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordmonitorallowed_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordprotectionloginurls", + "displayName": "Configure the list of enterprise login URLs where the password protection service should capture salted hashes of a password", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordprotectionwarningtrigger", + "displayName": "Configure password protection warning trigger", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordprotectionwarningtrigger_passwordprotectionwarningoff", + "displayName": "Password protection warning is off", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordprotectionwarningtrigger_passwordprotectionwarningonpasswordreuse", + "displayName": "Password protection warning is triggered by password reuse", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordrevealenabled_recommended", + "displayName": "Enable Password reveal button (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordrevealenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.passwordrevealenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.paymentmethodqueryenabled", + "displayName": "Allow websites to query for available payment methods", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.paymentmethodqueryenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.paymentmethodqueryenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.pdfsecuremode", + "displayName": "Secure mode and Certificate-based Digital Signature validation in native PDF reader", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.pdfsecuremode_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.pdfsecuremode_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.pdfxfaenabled", + "displayName": "XFA support in native PDF reader enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.pdfxfaenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.pdfxfaenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.performancedetectorenabled", + "displayName": "Performance Detector Enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.performancedetectorenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.performancedetectorenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.performancedetectorenabled_recommended", + "displayName": "Performance Detector Enabled (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.performancedetectorenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.performancedetectorenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.personalizationreportingenabled", + "displayName": "Allow personalization of ads, Microsoft Edge, search, news and other Microsoft services by sending browsing history, favorites and collections, usage and other browsing data to Microsoft", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.personalizationreportingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.personalizationreportingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.pluginsallowedforurls", + "displayName": "Allow the Adobe Flash plug-in on specific sites (Obsolete)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.pluginsblockedforurls", + "displayName": "Block the Adobe Flash plug-in on specific sites (Obsolete)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.popupsallowedforurls", + "displayName": "Allow pop-up windows on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.popupsblockedforurls", + "displayName": "Block pop-up windows on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.preventsmartscreenpromptoverride", + "displayName": "Prevent bypassing Microsoft Defender SmartScreen prompts for sites", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.preventsmartscreenpromptoverride_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.preventsmartscreenpromptoverride_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.preventsmartscreenpromptoverrideforfiles", + "displayName": "Prevent bypassing of Microsoft Defender SmartScreen warnings about downloads", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.preventsmartscreenpromptoverrideforfiles_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.preventsmartscreenpromptoverrideforfiles_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.primarypasswordsetting_automatically", + "displayName": "Automatically", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.primarypasswordsetting_withdevicepassword", + "displayName": "With device password", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.primarypasswordsetting_withcustomprimarypassword", + "displayName": "With custom primary password", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.primarypasswordsetting_autofilloff", + "displayName": "Autofill off", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printertypedenylist", + "displayName": "Disable printer types on the deny list", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printertypedenylist_privet", + "displayName": "Zeroconf-based (mDNS + DNS-SD) protocol destinations", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printertypedenylist_extension", + "displayName": "Extension-based destinations", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printertypedenylist_pdf", + "displayName": "The 'Save as PDF' destination. (93 or later, also disables from context menu)", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printertypedenylist_local", + "displayName": "Local printer destinations", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printertypedenylist_onedrive", + "displayName": "Save as PDF (OneDrive) printer destinations. (103 or later)", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingallowedbackgroundgraphicsmodes_any", + "displayName": "Allow printing with and without background graphics", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingallowedbackgroundgraphicsmodes_enabled", + "displayName": "Allow printing only with background graphics", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingallowedbackgroundgraphicsmodes_disabled", + "displayName": "Allow printing only without background graphics", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingbackgroundgraphicsdefault_enabled", + "displayName": "Enable background graphics printing mode by default", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingbackgroundgraphicsdefault_disabled", + "displayName": "Disable background graphics printing mode by default", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingenabled", + "displayName": "Enable printing", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingpapersizedefault", + "displayName": "Default printing page size", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingwebpagelayout", + "displayName": "Sets layout for printing", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingwebpagelayout_portrait", + "displayName": "Sets layout option as portrait", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingwebpagelayout_landscape", + "displayName": "Sets layout option as landscape", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingwebpagelayout_recommended", + "displayName": "Sets layout for printing (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingwebpagelayout_recommended_portrait", + "displayName": "Sets layout option as portrait", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printingwebpagelayout_recommended_landscape", + "displayName": "Sets layout option as landscape", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpostscriptmode", + "displayName": "Print PostScript Mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpostscriptmode_default", + "displayName": "Default", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpostscriptmode_type42", + "displayName": "Type42", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpreviewstickysettings", + "displayName": "Configure the sticky print preview settings", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpreviewstickysettings_recommended", + "displayName": "Configure the sticky print preview settings (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpreviewusesystemdefaultprinter", + "displayName": "Set the system default printer as the default printer", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpreviewusesystemdefaultprinter_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpreviewusesystemdefaultprinter_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpreviewusesystemdefaultprinter_recommended", + "displayName": "Set the system default printer as the default printer (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpreviewusesystemdefaultprinter_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printpreviewusesystemdefaultprinter_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printrasterizationmode", + "displayName": "Print Rasterization Mode", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printrasterizationmode_full", + "displayName": "Full page rasterization", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printrasterizationmode_fast", + "displayName": "Avoid rasterization if possible", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printstickysettings", + "displayName": "Print preview sticky settings", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printstickysettings_enableall", + "displayName": "Enable sticky settings for PDF and Webpages", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printstickysettings_disableall", + "displayName": "Disable sticky settings for PDF and Webpages", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printstickysettings_disablepdf", + "displayName": "Disable sticky settings for PDF", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.printstickysettings_disablewebpage", + "displayName": "Disable sticky settings for Webpages", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proactiveauthenabled", + "displayName": "Enable Proactive Authentication (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proactiveauthenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proactiveauthenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.promptfordownloadlocation", + "displayName": "Ask where to save downloaded files", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.promptfordownloadlocation_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.promptfordownloadlocation_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.promptonmultiplematchingcertificates", + "displayName": "Prompt the user to select a certificate when multiple certificates match", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.promptonmultiplematchingcertificates_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.promptonmultiplematchingcertificates_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxybypasslist", + "displayName": "Configure proxy bypass rules (Deprecated)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxymode", + "displayName": "Configure proxy server settings (Deprecated)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxymode_proxydisabled", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxymode_proxyautodetect", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxymode_proxypacscript", + "displayName": "Use a .pac proxy script", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxymode_proxyfixedservers", + "displayName": "Use fixed proxy servers", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxymode_proxyusesystem", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxypacurl", + "displayName": "Set the proxy .pac file URL (Deprecated)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxyserver", + "displayName": "Configure address or URL of proxy server (Deprecated)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.proxysettings", + "displayName": "Proxy settings", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quicksearchshowminimenu", + "displayName": "Enables Microsoft Edge mini menu", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quicksearchshowminimenu_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quicksearchshowminimenu_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quicksearchshowminimenu_recommended", + "displayName": "Enables Microsoft Edge mini menu (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quicksearchshowminimenu_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quicksearchshowminimenu_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quickviewofficefilesenabled", + "displayName": "Manage QuickView Office files capability in Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quickviewofficefilesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.quickviewofficefilesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.readaloudenabled", + "displayName": "Enable Read Aloud feature in Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.readaloudenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.readaloudenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.registeredprotocolhandlers_recommended", + "displayName": "Register protocol handlers (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.relatedmatchescloudserviceenabled", + "displayName": "Configure Related Matches in Find on Page", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.relatedmatchescloudserviceenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.relatedmatchescloudserviceenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.resolvenavigationerrorsusewebservice", + "displayName": "Enable resolution of navigation errors using a web service", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.resolvenavigationerrorsusewebservice_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.resolvenavigationerrorsusewebservice_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.resolvenavigationerrorsusewebservice_recommended", + "displayName": "Enable resolution of navigation errors using a web service (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.resolvenavigationerrorsusewebservice_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.resolvenavigationerrorsusewebservice_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartup", + "displayName": "Action to take on startup", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartup_restoreonstartupisnewtabpage", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartup_restoreonstartupislastsession", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartup_restoreonstartupisurls", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartup_recommended", + "displayName": "Action to take on startup (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartup_recommended_restoreonstartupisnewtabpage", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartup_recommended_restoreonstartupislastsession", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartup_recommended_restoreonstartupisurls", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartupurls", + "displayName": "Sites to open when the browser starts", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartupurls_recommended", + "displayName": "Sites to open when the browser starts (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartupuserurlsenabled", + "displayName": "Allow users to add and remove their own sites during startup when the RestoreOnStartupURLs policy is configured", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartupuserurlsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restoreonstartupuserurlsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restorepdfview", + "displayName": "Restore PDF view", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restorepdfview_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.restorepdfview_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.runallflashinallowmode", + "displayName": "Extend Adobe Flash content setting to all content (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.runallflashinallowmode_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.runallflashinallowmode_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sameorigintabcaptureallowedbyorigins", + "displayName": "Allow Same Origin Tab capture by these origins", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sandboxexternalprotocolblocked", + "displayName": "Allow Microsoft Edge to block navigations to external protocols in a sandboxed iframe", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sandboxexternalprotocolblocked_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sandboxexternalprotocolblocked_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.savecookiesonexit", + "displayName": "Save cookies when Microsoft Edge closes", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.savingbrowserhistorydisabled", + "displayName": "Disable saving browser history", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.savingbrowserhistorydisabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.savingbrowserhistorydisabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.screencaptureallowed", + "displayName": "Allow or deny screen capture", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.screencaptureallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.screencaptureallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.screencaptureallowedbyorigins", + "displayName": "Allow Desktop, Window, and Tab capture by these origins", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.scrolltotextfragmentenabled", + "displayName": "Enable scrolling to text specified in URL fragments", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.scrolltotextfragmentenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.scrolltotextfragmentenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchfiltersenabled", + "displayName": "Search Filters Enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchfiltersenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchfiltersenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchfiltersenabled_recommended", + "displayName": "Search Filters Enabled (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchfiltersenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchfiltersenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchinsidebarenabled", + "displayName": "Search in Sidebar enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchinsidebarenabled_enablesearchinsidebar", + "displayName": "Enable search in sidebar", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchinsidebarenabled_disablesearchinsidebarforkidsmode", + "displayName": "Disable search in sidebar for Kids Mode", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchinsidebarenabled_disablesearchinsidebar", + "displayName": "Disable search in sidebar", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchsuggestenabled", + "displayName": "Enable search suggestions", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchsuggestenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchsuggestenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchsuggestenabled_recommended", + "displayName": "Enable search suggestions (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchsuggestenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.searchsuggestenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.securitykeypermitattestation", + "displayName": "Websites or domains that don't need permission to use direct Security Key attestation", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sendintranettointernetexplorer", + "displayName": "Send all intranet sites to Internet Explorer", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sendintranettointernetexplorer_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sendintranettointernetexplorer_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sensorsallowedforurls", + "displayName": "Allow access to sensors on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sensorsblockedforurls", + "displayName": "Block access to sensors on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.serialaskforurls", + "displayName": "Allow the Serial API on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.serialblockedforurls", + "displayName": "Block the Serial API on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.settimeoutwithout1msclampenabled", + "displayName": "Control Javascript setTimeout() function minimum timeout (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.settimeoutwithout1msclampenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.settimeoutwithout1msclampenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sharedarraybufferunrestrictedaccessallowed", + "displayName": "Specifies whether SharedArrayBuffers can be used in a non cross-origin-isolated context", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sharedarraybufferunrestrictedaccessallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sharedarraybufferunrestrictedaccessallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showacrobatsubscriptionbutton", + "displayName": "Shows button on native PDF viewer in Microsoft Edge that allows users to sign up for Adobe Acrobat subscription", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showacrobatsubscriptionbutton_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showacrobatsubscriptionbutton_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showcasticonintoolbar", + "displayName": "Show the cast icon in the toolbar", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showcasticonintoolbar_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showcasticonintoolbar_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showdownloadstoolbarbutton", + "displayName": "Show Downloads button on the toolbar (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showdownloadstoolbarbutton_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showdownloadstoolbarbutton_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showhomebutton", + "displayName": "Show Home button on toolbar", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showhomebutton_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showhomebutton_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showhomebutton_recommended", + "displayName": "Show Home button on toolbar (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showhomebutton_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showhomebutton_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showmicrosoftrewards", + "displayName": "Show Microsoft Rewards experiences", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showmicrosoftrewards_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showmicrosoftrewards_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showmicrosoftrewards_recommended", + "displayName": "Show Microsoft Rewards experiences (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showmicrosoftrewards_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showmicrosoftrewards_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showofficeshortcutinfavoritesbar", + "displayName": "Show Microsoft Office shortcut in favorites bar (Deprecated)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showofficeshortcutinfavoritesbar_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showofficeshortcutinfavoritesbar_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showpdfdefaultrecommendationsenabled", + "displayName": "Allow notifications to set Microsoft Edge as default PDF reader", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showpdfdefaultrecommendationsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showpdfdefaultrecommendationsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showrecommendationsenabled", + "displayName": "Allow feature recommendations and browser assistance notifications from Microsoft Edge", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showrecommendationsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.showrecommendationsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.signedhttpexchangeenabled", + "displayName": "Enable Signed HTTP Exchange (SXG) support", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.signedhttpexchangeenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.signedhttpexchangeenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabsblockedforurls", + "displayName": "Block sleeping tabs on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabsblockedforurls_recommended", + "displayName": "Block sleeping tabs on specific sites (users can override)", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabsenabled", + "displayName": "Configure sleeping tabs", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabsenabled_recommended", + "displayName": "Configure sleeping tabs (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabsenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabsenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for sleeping tabs", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_30seconds", + "displayName": "30 seconds of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_5minutes", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_15minutes", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_30minutes", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_1hour", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_2hours", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_3hours", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_6hours", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_12hours", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended", + "displayName": "Set the background tab inactivity timeout for sleeping tabs (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_30seconds", + "displayName": "30 seconds of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_5minutes", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_15minutes", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_30minutes", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_1hour", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_2hours", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_3hours", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_6hours", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sleepingtabstimeout_recommended_12hours", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartactionsblocklist", + "displayName": "Block smart actions for a list of services", + "options": { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartactionsblocklist_smart_actions_pdf", + "displayName": "Smart actions in PDF", + "description": null + } + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartactionsblocklist_recommended", + "displayName": "Block smart actions for a list of services (users can override)", + "options": { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartactionsblocklist_recommended_smart_actions_pdf", + "displayName": "Smart actions in PDF", + "description": null + } + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartscreenallowlistdomains", + "displayName": "Configure the list of domains for which Microsoft Defender SmartScreen won't trigger warnings", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartscreenfortrusteddownloadsenabled", + "displayName": "Force Microsoft Defender SmartScreen checks on downloads from trusted sources", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartscreenfortrusteddownloadsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartscreenfortrusteddownloadsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartscreenfortrusteddownloadsenabled_recommended", + "displayName": "Force Microsoft Defender SmartScreen checks on downloads from trusted sources (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartscreenfortrusteddownloadsenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.smartscreenfortrusteddownloadsenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.speechrecognitionenabled", + "displayName": "Configure Speech Recognition", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.speechrecognitionenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.speechrecognitionenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.spellcheckenabled", + "displayName": "Enable spellcheck", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.spellcheckenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.spellcheckenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.spellchecklanguage", + "displayName": "Enable specific spellcheck languages", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.spellchecklanguageblocklist", + "displayName": "Force disable spellcheck languages", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sslerroroverrideallowed", + "displayName": "Allow users to proceed from the HTTPS warning page", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sslerroroverrideallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sslerroroverrideallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.sslerroroverrideallowedfororigins", + "displayName": "Allow users to proceed from the HTTPS warning page for specific origins", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.strictermixedcontenttreatmentenabled", + "displayName": "Enable stricter treatment for mixed content (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.strictermixedcontenttreatmentenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.strictermixedcontenttreatmentenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.syncdisabled", + "displayName": "Disable synchronization of data using Microsoft sync services", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.syncdisabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.syncdisabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.syncdisabled_recommended", + "displayName": "Disable synchronization of data using Microsoft sync services (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.syncdisabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.syncdisabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.synctypeslistdisabled", + "displayName": "Configure the list of types that are excluded from synchronization", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.tabcaptureallowedbyorigins", + "displayName": "Allow Tab capture by these origins", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.tabservicesenabled", + "displayName": "Tab Services enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.tabservicesenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.tabservicesenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.textpredictionenabled", + "displayName": "Text prediction enabled by default", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.textpredictionenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.textpredictionenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.tls13hardeningforlocalanchorsenabled", + "displayName": "Enable a TLS 1.3 security feature for local trust anchors (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.tls13hardeningforlocalanchorsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.tls13hardeningforlocalanchorsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.trackingprevention", + "displayName": "Block tracking of users' web-browsing activity", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.trackingprevention_trackingpreventionoff", + "displayName": "Off (no tracking prevention)", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.trackingprevention_trackingpreventionbasic", + "displayName": "Basic (blocks harmful trackers, content and ads will be personalized)", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.trackingprevention_trackingpreventionbalanced", + "displayName": "Balanced (blocks harmful trackers and trackers from sites user has not visited; content and ads will be less personalized)", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.trackingprevention_trackingpreventionstrict", + "displayName": "Strict (blocks harmful trackers and majority of trackers from all sites; content and ads will have minimal personalization. Some parts of sites might not work)", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.translateenabled", + "displayName": "Enable Translate", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.translateenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.translateenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.translateenabled_recommended", + "displayName": "Enable Translate (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.translateenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.translateenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.travelassistanceenabled", + "displayName": "Enable travel assistance (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.travelassistanceenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.travelassistanceenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.travelassistanceenabled_recommended", + "displayName": "Enable travel assistance (Obsolete) (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.travelassistanceenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.travelassistanceenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.u2fsecuritykeyapienabled", + "displayName": "Allow using the deprecated U2F Security Key API (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.u2fsecuritykeyapienabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.u2fsecuritykeyapienabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.unthrottlednestedtimeoutenabled", + "displayName": "JavaScript setTimeout will not be clamped until a higher nesting threshold is set (Deprecated)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.unthrottlednestedtimeoutenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.unthrottlednestedtimeoutenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.urlallowlist", + "displayName": "Define a list of allowed URLs", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.urlblocklist", + "displayName": "Block access to a list of URLs", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.useragentreduction", + "displayName": "Enable or disable the User-Agent Reduction", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.useragentreduction_default", + "displayName": "User-Agent reduction will be controllable via Experimentation", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.useragentreduction_forcedisabled", + "displayName": "User-Agent reduction diabled, and not enabled by Experimentation", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.useragentreduction_forceenabled", + "displayName": "User-Agent reduction will be enabled for all origins", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.usesystemprintdialog", + "displayName": "Print using system print dialog", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.usesystemprintdialog_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.usesystemprintdialog_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.verticaltabsallowed", + "displayName": "Configures availability of a vertical layout for tabs on the side of the browser", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.verticaltabsallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.verticaltabsallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.videocaptureallowed", + "displayName": "Allow or block video capture", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.videocaptureallowed_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.videocaptureallowed_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.videocaptureallowedurls", + "displayName": "Sites that can access video capture devices without requesting permission", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.visualsearchenabled", + "displayName": "Visual search enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.visualsearchenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.visualsearchenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.visualsearchenabled_recommended", + "displayName": "Visual search enabled (users can override)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.visualsearchenabled_recommended_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.visualsearchenabled_recommended_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webappinstallforcelist", + "displayName": "Configure list of force-installed Web Apps", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webcomponentsv0enabled", + "displayName": "Re-enable Web Components v0 API until M84 (Obsolete)", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webcomponentsv0enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webcomponentsv0enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webhidaskforurls", + "displayName": "Allow the WebHID API on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webhidblockedforurls", + "displayName": "Block the WebHID API on these sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webrtclocalhostiphandling", + "displayName": "Restrict exposure of local IP address by WebRTC", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webrtclocalhostiphandling_allowallinterfaces", + "displayName": "Allow all interfaces. This exposes the local IP address", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webrtclocalhostiphandling_allowpublicandprivateinterfaces", + "displayName": "Allow public and private interfaces over http default route. This exposes the local IP address", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webrtclocalhostiphandling_allowpublicinterfaceonly", + "displayName": "Allow public interface over http default route. This doesn't expose the local IP address", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webrtclocalhostiphandling_disablenonproxiedudp", + "displayName": "Use TCP unless proxy server supports UDP. This doesn't expose the local IP address", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webrtclocalipsallowedurls", + "displayName": "Manage exposure of local IP addressess by WebRTC", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webselectenabled", + "displayName": "Web Select Enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webselectenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webselectenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.websqlaccess", + "displayName": "Force WebSQL to be enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.websqlaccess_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.websqlaccess_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.websqlnonsecurecontextenabled", + "displayName": "Force WebSQL in non-secure contexts to be enabled", + "options": [ + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.websqlnonsecurecontextenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.websqlnonsecurecontextenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webusballowdevicesforurls", + "displayName": "Grant access to specific sites to connect to specific USB devices", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webusbaskforurls", + "displayName": "Allow WebUSB on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.webusbblockedforurls", + "displayName": "Block WebUSB on specific sites", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.windowcaptureallowedbyorigins", + "displayName": "Allow Window and Tab capture by these origins", + "options": null + }, + { + "id": "com.microsoft.edge.mamedgeappconfigsettings.workspacesnavigationsettings", + "displayName": "Configure navigation settings per groups of URLs in Microsoft Edge Workspaces", + "options": null + }, + { + "id": "defender_disableprivacymode", + "displayName": "Allow users to view the full History results", + "options": [ + { + "id": "defender_disableprivacymode_0", + "displayName": "No", + "description": null + }, + { + "id": "defender_disableprivacymode_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "defender_disablerestorepoint", + "displayName": "Create a system restore point before computers are cleaned", + "options": [ + { + "id": "defender_disablerestorepoint_0", + "displayName": "No", + "description": null + }, + { + "id": "defender_disablerestorepoint_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "defender_randomizescheduletasktimes", + "displayName": "Randomize scheduled scan and security intelligence update start times", + "options": [ + { + "id": "defender_randomizescheduletasktimes_0", + "displayName": "No", + "description": null + }, + { + "id": "defender_randomizescheduletasktimes_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_deletionpolicy", + "displayName": "Deletion Policy", + "options": [ + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_deletionpolicy_0", + "displayName": "Delete immediately upon device returning to a state with no currently active users)", + "description": "Delete immediately upon device returning to a state with no currently active users)" + }, + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_deletionpolicy_1", + "displayName": "Delete at storage capacity threshold", + "description": "Delete at storage capacity threshold" + }, + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_deletionpolicy_2", + "displayName": "Delete at both storage capacity threshold and profile inactivity threshold", + "description": "Delete at both storage capacity threshold and profile inactivity threshold" + } + ] + }, + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_enableprofilemanager", + "displayName": "Enable Profile Manager", + "options": [ + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_enableprofilemanager_false", + "displayName": "False", + "description": "False" + }, + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_enableprofilemanager_true", + "displayName": "True", + "description": "True" + } + ] + }, + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_profileinactivitythreshold", + "displayName": "Profile Inactivity Threshold", + "options": null + }, + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_storagecapacitystartdeletion", + "displayName": "Storage Capacity Start Deletion", + "options": null + }, + { + "id": "device_vendor_msft_accountmanagement_userprofilemanagement_storagecapacitystopdeletion", + "displayName": "Storage Capacity Stop Deletion", + "options": null + }, + { + "id": "device_vendor_msft_bitlocker_allowstandarduserencryption", + "displayName": "Allow Standard User Encryption", + "options": [ + { + "id": "device_vendor_msft_bitlocker_allowstandarduserencryption_0", + "displayName": "Disabled", + "description": "This is the default, when the policy is not set. If current logged on user is a standard user, \"RequireDeviceEncryption\" policy will not try to enable encryption on any drive." + }, + { + "id": "device_vendor_msft_bitlocker_allowstandarduserencryption_1", + "displayName": "Enabled", + "description": "\"RequireDeviceEncryption\" policy will try to enable encryption on all fixed drives even if a current logged in user is standard user." + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_allowwarningforotherdiskencryption", + "displayName": "Allow Warning For Other Disk Encryption", + "options": [ + { + "id": "device_vendor_msft_bitlocker_allowwarningforotherdiskencryption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_allowwarningforotherdiskencryption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_configurerecoverypasswordrotation", + "displayName": "Configure Recovery Password Rotation", + "options": [ + { + "id": "device_vendor_msft_bitlocker_configurerecoverypasswordrotation_0", + "displayName": "Refresh off (default)", + "description": "Refresh off (default)" + }, + { + "id": "device_vendor_msft_bitlocker_configurerecoverypasswordrotation_1", + "displayName": "Refresh on for Azure AD-joined devices", + "description": "Refresh on for Azure AD-joined devices" + }, + { + "id": "device_vendor_msft_bitlocker_configurerecoverypasswordrotation_2", + "displayName": "Refresh on for both Azure AD-joined and hybrid-joined devices", + "description": "Refresh on for both Azure AD-joined and hybrid-joined devices" + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype", + "displayName": "Choose drive encryption method and cipher strength (Windows 10 [Version 1511] and later)", + "options": [ + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsfdvdropdown_name", + "displayName": "Select the encryption method for fixed data drives:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsfdvdropdown_name_3", + "displayName": "AES-CBC 128-bit", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsfdvdropdown_name_4", + "displayName": "AES-CBC 256-bit", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsfdvdropdown_name_6", + "displayName": "XTS-AES 128-bit (default)", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsfdvdropdown_name_7", + "displayName": "XTS-AES 256-bit", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsosdropdown_name", + "displayName": "Select the encryption method for operating system drives:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsosdropdown_name_3", + "displayName": "AES-CBC 128-bit", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsosdropdown_name_4", + "displayName": "AES-CBC 256-bit", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsosdropdown_name_6", + "displayName": "XTS-AES 128-bit (default)", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsosdropdown_name_7", + "displayName": "XTS-AES 256-bit", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsrdvdropdown_name", + "displayName": "Select the encryption method for removable data drives:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsrdvdropdown_name_3", + "displayName": "AES-CBC 128-bit (default)", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsrdvdropdown_name_4", + "displayName": "AES-CBC 256-bit", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsrdvdropdown_name_6", + "displayName": "XTS-AES 128-bit", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_encryptionmethodbydrivetype_encryptionmethodwithxtsrdvdropdown_name_7", + "displayName": "XTS-AES 256-bit", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesencryptiontype", + "displayName": "Enforce drive encryption type on fixed data drives", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesencryptiontype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesencryptiontype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesencryptiontype_fdvencryptiontypedropdown_name", + "displayName": "Select the encryption type: (Device)", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesencryptiontype_fdvencryptiontypedropdown_name_0", + "displayName": "Allow user to choose (default)", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesencryptiontype_fdvencryptiontypedropdown_name_1", + "displayName": "Full encryption", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesencryptiontype_fdvencryptiontypedropdown_name_2", + "displayName": "Used Space Only encryption", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions", + "displayName": "Choose how BitLocker-protected fixed drives can be recovered", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvactivedirectorybackup_name", + "displayName": "Save BitLocker recovery information to AD DS for fixed data drives", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvactivedirectorybackup_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvactivedirectorybackup_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvactivedirectorybackupdropdown_name", + "displayName": "Configure storage of BitLocker recovery information to AD DS:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvactivedirectorybackupdropdown_name_1", + "displayName": "Backup recovery passwords and key packages", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvactivedirectorybackupdropdown_name_2", + "displayName": "Backup recovery passwords only", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvallowdra_name", + "displayName": "Allow data recovery agent", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvallowdra_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvallowdra_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvhiderecoverypage_name", + "displayName": "Omit recovery options from the BitLocker setup wizard", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvhiderecoverypage_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvhiderecoverypage_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrecoverykeyusagedropdown_name", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrecoverykeyusagedropdown_name_2", + "displayName": "Allow 256-bit recovery key", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrecoverykeyusagedropdown_name_1", + "displayName": "Require 256-bit recovery key", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrecoverykeyusagedropdown_name_0", + "displayName": "Do not allow 256-bit recovery key", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrecoverypasswordusagedropdown_name", + "displayName": "\r\nConfigure user storage of BitLocker recovery information:\r\n", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrecoverypasswordusagedropdown_name_2", + "displayName": "Allow 48-digit recovery password", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrecoverypasswordusagedropdown_name_1", + "displayName": "Require 48-digit recovery password", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrecoverypasswordusagedropdown_name_0", + "displayName": "Do not allow 48-digit recovery password", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrequireactivedirectorybackup_name", + "displayName": "Do not enable BitLocker until recovery information is stored to AD DS for fixed data drives", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrequireactivedirectorybackup_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrecoveryoptions_fdvrequireactivedirectorybackup_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrequireencryption", + "displayName": "Deny write access to fixed drives not protected by BitLocker", + "options": [ + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrequireencryption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_fixeddrivesrequireencryption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_identificationfield", + "displayName": "Provide the unique identifiers for your organization", + "options": [ + { + "id": "device_vendor_msft_bitlocker_identificationfield_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_identificationfield_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_identificationfield_identificationfield", + "displayName": "BitLocker identification field: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_bitlocker_identificationfield_secidentificationfield", + "displayName": "Allowed BitLocker identification field: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde", + "displayName": "Control use of BitLocker on removable drives", + "options": [ + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde_rdvallowbde_name", + "displayName": "Allow users to apply BitLocker protection on removable data drives (Device)", + "options": [ + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde_rdvallowbde_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde_rdvallowbde_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde_rdvdisablebde_name", + "displayName": "Allow users to suspend and decrypt BitLocker protection on removable data drives (Device)", + "options": [ + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde_rdvdisablebde_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesconfigurebde_rdvdisablebde_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesencryptiontype", + "displayName": "Enforce drive encryption type on removable data drives", + "options": [ + { + "id": "device_vendor_msft_bitlocker_removabledrivesencryptiontype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesencryptiontype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesencryptiontype_rdvencryptiontypedropdown_name", + "displayName": "Select the encryption type: (Device)", + "options": [ + { + "id": "device_vendor_msft_bitlocker_removabledrivesencryptiontype_rdvencryptiontypedropdown_name_0", + "displayName": "Allow user to choose (default)", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesencryptiontype_rdvencryptiontypedropdown_name_1", + "displayName": "Full encryption", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesencryptiontype_rdvencryptiontypedropdown_name_2", + "displayName": "Used Space Only encryption", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesexcludedfromencryption", + "displayName": "Removable Drives Excluded From Encryption", + "options": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesrequireencryption", + "displayName": "Deny write access to removable drives not protected by BitLocker", + "options": [ + { + "id": "device_vendor_msft_bitlocker_removabledrivesrequireencryption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesrequireencryption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesrequireencryption_rdvcrossorg", + "displayName": "Do not allow write access to devices configured in another organization", + "options": [ + { + "id": "device_vendor_msft_bitlocker_removabledrivesrequireencryption_rdvcrossorg_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_removabledrivesrequireencryption_rdvcrossorg_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_requiredeviceencryption", + "displayName": "Require Device Encryption", + "options": [ + { + "id": "device_vendor_msft_bitlocker_requiredeviceencryption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_requiredeviceencryption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesdisallowstandarduserscanchangepin", + "displayName": "Disallow standard users from changing the PIN or password", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesdisallowstandarduserscanchangepin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesdisallowstandarduserscanchangepin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesenableprebootinputprotectorsonslates", + "displayName": "Enable use of BitLocker authentication requiring preboot keyboard input on slates", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesenableprebootinputprotectorsonslates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesenableprebootinputprotectorsonslates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesenableprebootpinexceptionondecapabledevice", + "displayName": "Allow devices compliant with InstantGo or HSTI to opt out of pre-boot PIN.", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesenableprebootpinexceptionondecapabledevice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesenableprebootpinexceptionondecapabledevice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesencryptiontype", + "displayName": "Enforce drive encryption type on operating system drives", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesencryptiontype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesencryptiontype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesencryptiontype_osencryptiontypedropdown_name", + "displayName": "Select the encryption type: (Device)", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesencryptiontype_osencryptiontypedropdown_name_0", + "displayName": "Allow user to choose (default)", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesencryptiontype_osencryptiontypedropdown_name_1", + "displayName": "Full encryption", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesencryptiontype_osencryptiontypedropdown_name_2", + "displayName": "Used Space Only encryption", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesenhancedpin", + "displayName": "Allow enhanced PINs for startup", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesenhancedpin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesenhancedpin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesminimumpinlength", + "displayName": "Configure minimum PIN length for startup", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesminimumpinlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesminimumpinlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesminimumpinlength_minpinlength", + "displayName": "Minimum characters:", + "options": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage", + "displayName": "Configure pre-boot recovery message and URL", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_prebootrecoveryinfodropdown_name", + "displayName": "Select an option for the pre-boot recovery message:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_prebootrecoveryinfodropdown_name_0", + "displayName": "", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_prebootrecoveryinfodropdown_name_1", + "displayName": "Use default recovery message and URL", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_prebootrecoveryinfodropdown_name_2", + "displayName": "Use custom recovery message", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_prebootrecoveryinfodropdown_name_3", + "displayName": "Use custom recovery URL", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_recoverymessage_input", + "displayName": "Custom recovery message option:", + "options": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoverymessage_recoveryurl_input", + "displayName": "Custom recovery URL option:", + "options": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions", + "displayName": "Choose how BitLocker-protected operating system drives can be recovered", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osactivedirectorybackup_name", + "displayName": "Save BitLocker recovery information to AD DS for operating system drives", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osactivedirectorybackup_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osactivedirectorybackup_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osactivedirectorybackupdropdown_name", + "displayName": "Configure storage of BitLocker recovery information to AD DS:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osactivedirectorybackupdropdown_name_1", + "displayName": "Store recovery passwords and key packages", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osactivedirectorybackupdropdown_name_2", + "displayName": "Store recovery passwords only", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osallowdra_name", + "displayName": "Allow data recovery agent", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osallowdra_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osallowdra_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_oshiderecoverypage_name", + "displayName": "Omit recovery options from the BitLocker setup wizard", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_oshiderecoverypage_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_oshiderecoverypage_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrecoverykeyusagedropdown_name", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrecoverykeyusagedropdown_name_2", + "displayName": "Allow 256-bit recovery key", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrecoverykeyusagedropdown_name_1", + "displayName": "Require 256-bit recovery key", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrecoverykeyusagedropdown_name_0", + "displayName": "Do not allow 256-bit recovery key", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrecoverypasswordusagedropdown_name", + "displayName": "\r\nConfigure user storage of BitLocker recovery information:\r\n", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrecoverypasswordusagedropdown_name_2", + "displayName": "Allow 48-digit recovery password", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrecoverypasswordusagedropdown_name_1", + "displayName": "Require 48-digit recovery password", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrecoverypasswordusagedropdown_name_0", + "displayName": "Do not allow 48-digit recovery password", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrequireactivedirectorybackup_name", + "displayName": "Do not enable BitLocker until recovery information is stored to AD DS for operating system drives", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrequireactivedirectorybackup_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrecoveryoptions_osrequireactivedirectorybackup_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication", + "displayName": "Require additional authentication at startup", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configurenontpmstartupkeyusage_name", + "displayName": "Allow BitLocker without a compatible TPM (requires a password or a startup key on a USB flash drive)", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configurenontpmstartupkeyusage_name_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configurenontpmstartupkeyusage_name_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configurepinusagedropdown_name", + "displayName": "Configure TPM startup PIN:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configurepinusagedropdown_name_2", + "displayName": "Allow startup PIN with TPM", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configurepinusagedropdown_name_1", + "displayName": "Require startup PIN with TPM", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configurepinusagedropdown_name_0", + "displayName": "Do not allow startup PIN with TPM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmpinkeyusagedropdown_name", + "displayName": "Configure TPM startup key and PIN:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmpinkeyusagedropdown_name_2", + "displayName": "Allow startup key and PIN with TPM", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmpinkeyusagedropdown_name_1", + "displayName": "Require startup key and PIN with TPM", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmpinkeyusagedropdown_name_0", + "displayName": "Do not allow startup key and PIN with TPM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmstartupkeyusagedropdown_name", + "displayName": "Configure TPM startup key:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmstartupkeyusagedropdown_name_2", + "displayName": "Allow startup key with TPM", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmstartupkeyusagedropdown_name_1", + "displayName": "Require startup key with TPM", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmstartupkeyusagedropdown_name_0", + "displayName": "Do not allow startup key with TPM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmusagedropdown_name", + "displayName": "Configure TPM startup:", + "options": [ + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmusagedropdown_name_2", + "displayName": "Allow TPM", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmusagedropdown_name_1", + "displayName": "Require TPM", + "description": null + }, + { + "id": "device_vendor_msft_bitlocker_systemdrivesrequirestartupauthentication_configuretpmusagedropdown_name_0", + "displayName": "Do not allow TPM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_clouddesktop_boottocloudpcenhanced", + "displayName": "Boot To Cloud PC Enhanced", + "options": [ + { + "id": "device_vendor_msft_clouddesktop_boottocloudpcenhanced_0", + "displayName": "Not Configured", + "description": "Not Configured" + }, + { + "id": "device_vendor_msft_clouddesktop_boottocloudpcenhanced_1", + "displayName": "Enable Boot to Cloud Shared PC Mode", + "description": "Enable Boot to Cloud Shared PC Mode" + }, + { + "id": "device_vendor_msft_clouddesktop_boottocloudpcenhanced_2", + "displayName": "Enable Boot to Cloud Dedicated Mode (Cloud only)", + "description": "Enable Boot to Cloud Dedicated Mode (Cloud only)" + } + ] + }, + { + "id": "device_vendor_msft_clouddesktop_enableboottocloudsharedpcmode", + "displayName": "[Deprecated] Enable Boot To Cloud Shared PC Mode", + "options": [ + { + "id": "device_vendor_msft_clouddesktop_enableboottocloudsharedpcmode_false", + "displayName": "Not configured", + "description": "Not configured" + }, + { + "id": "device_vendor_msft_clouddesktop_enableboottocloudsharedpcmode_true", + "displayName": "Boot to cloud shared pc mode enabled", + "description": "Boot to cloud shared pc mode enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_allowdatagramprocessingonwinserver", + "displayName": "Allow Datagram Processing On Win Server", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_allowdatagramprocessingonwinserver_1", + "displayName": "Datagram processing on Windows Server is enabled.", + "description": "Datagram processing on Windows Server is enabled." + }, + { + "id": "device_vendor_msft_defender_configuration_allowdatagramprocessingonwinserver_0", + "displayName": "Datagram processing on Windows Server is disabled.", + "description": "Datagram processing on Windows Server is disabled." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_allownetworkprotectiondownlevel", + "displayName": "Allow Network Protection Down Level", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_allownetworkprotectiondownlevel_1", + "displayName": "Network protection will be enabled downlevel.", + "description": "Network protection will be enabled downlevel." + }, + { + "id": "device_vendor_msft_defender_configuration_allownetworkprotectiondownlevel_0", + "displayName": "Network protection will be disabled downlevel.", + "description": "Network protection will be disabled downlevel." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_allownetworkprotectiononwinserver", + "displayName": "Allow Network Protection On Win Server", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_allownetworkprotectiononwinserver_1", + "displayName": "Allow", + "description": "Allow" + }, + { + "id": "device_vendor_msft_defender_configuration_allownetworkprotectiononwinserver_0", + "displayName": "Disallow", + "description": "Disallow" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_allowswitchtoasyncinspection", + "displayName": "Allow Switch To Async Inspection", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_allowswitchtoasyncinspection_1", + "displayName": "Allow switching to asynchronous inspection", + "description": "Allow switching to asynchronous inspection" + }, + { + "id": "device_vendor_msft_defender_configuration_allowswitchtoasyncinspection_0", + "displayName": "Don’t allow asynchronous inspection", + "description": "Don’t allow asynchronous inspection" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_archivemaxdepth", + "displayName": "Archive Max Depth", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_archivemaxsize", + "displayName": "Archive Max Size", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_asronlyperruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionaggressiveness", + "displayName": "Remote Encryption Protection Aggressiveness", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionaggressiveness_0", + "displayName": "Low: Block only when confidence level is 100% (Default)", + "description": "Low: Block only when confidence level is 100% (Default)" + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionaggressiveness_1", + "displayName": "Medium: Use cloud aggregation and block when confidence level is above 99%", + "description": "Medium: Use cloud aggregation and block when confidence level is above 99%" + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionaggressiveness_2", + "displayName": "High: Use cloud intel and context, and block when confidence level is above 90%", + "description": "High: Use cloud intel and context, and block when confidence level is above 90%" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionconfiguredstate", + "displayName": "Remote Encryption Protection Configured State", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionconfiguredstate_0", + "displayName": "Not configured: Apply defaults set for the antivirus engine and platform", + "description": "Not configured: Apply defaults set for the antivirus engine and platform" + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionconfiguredstate_1", + "displayName": "Block: Prevent suspicious and malicious behaviors", + "description": "Block: Prevent suspicious and malicious behaviors" + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionconfiguredstate_2", + "displayName": "Audit: Generate EDR detections without blocking", + "description": "Audit: Generate EDR detections without blocking" + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionconfiguredstate_4", + "displayName": "Off: Feature is off with no performance impact", + "description": "Off: Feature is off with no performance impact" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionexclusions", + "displayName": "Remote Encryption Protection Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_behavioralnetworkblocks_remoteencryptionprotection_remoteencryptionprotectionmaxblocktime", + "displayName": "Remote Encryption Protection Max Block Time", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_dataduplicationdirectory", + "displayName": "Data Duplication Directory", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_dataduplicationlocalretentionperiod", + "displayName": "Data Duplication Local Retention Period", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_dataduplicationmaximumquota", + "displayName": "Data Duplication Maximum Quota", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_dataduplicationremotelocation", + "displayName": "Data Duplication Remote Location", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_daysuntilaggressivecatchupquickscan", + "displayName": "Days Until Aggressive Catchup Quick Scan", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_defaultenforcement", + "displayName": "Default Enforcement", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_defaultenforcement_1", + "displayName": "Default Allow Enforcement", + "description": "Default Allow Enforcement" + }, + { + "id": "device_vendor_msft_defender_configuration_defaultenforcement_2", + "displayName": "Default Deny Enforcement", + "description": "Default Deny Enforcement" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}", + "displayName": "ID", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata", + "displayName": "Policy rule", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry", + "displayName": "Entry", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_accesmask", + "displayName": "Access mask", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_accesmask_1", + "displayName": "Read", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_accesmask_2", + "displayName": "Write", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_accesmask_4", + "displayName": "Execute", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_accesmask_8", + "displayName": "File read", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_accesmask_16", + "displayName": "File write", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_accesmask_32", + "displayName": "File execute", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_accesmask_64", + "displayName": "Print", + "description": "" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_computersid", + "displayName": "Computer Sid", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_id", + "displayName": "ID", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_options", + "displayName": "Options", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_options_0", + "displayName": "None", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_options_1", + "displayName": "Show notification", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_options_2", + "displayName": "Send event", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_options_3", + "displayName": "Send notification and event", + "description": "" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_options_4", + "displayName": "Disable", + "description": "" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_sid", + "displayName": "Sid", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_type", + "displayName": "Type", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_type_allow", + "displayName": "Allow", + "description": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_type_deny", + "displayName": "Deny", + "description": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_type_auditallowed", + "displayName": "Audit Allowed", + "description": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_entry_type_auditdenied", + "displayName": "Audit Denied", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_excludedidlist", + "displayName": "Excluded ID", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_excludedidlist_groupid", + "displayName": "Excluded ID", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_id", + "displayName": "ID", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_includedidlist", + "displayName": "Included ID", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_includedidlist_groupid", + "displayName": "Included ID", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrol_policyrules_{ruleid}_ruledata_name", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrolenabled", + "displayName": "Device Control Enabled", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_devicecontrolenabled_1", + "displayName": "Device Control is enabled", + "description": "Device Control is enabled" + }, + { + "id": "device_vendor_msft_defender_configuration_devicecontrolenabled_0", + "displayName": "Device Control is disabled", + "description": "Device Control is disabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablecachemaintenance", + "displayName": "Disable Cache Maintenance", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablecachemaintenance_1", + "displayName": "Cache maintenance is disabled", + "description": "Cache maintenance is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablecachemaintenance_0", + "displayName": "Cache maintenance is enabled (default)", + "description": "Cache maintenance is enabled (default)" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablecoreserviceecsintegration", + "displayName": "Disable Core Service ECS Integration", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablecoreserviceecsintegration_0", + "displayName": "The Defender core service will use the Experimentation and Configuration Service (ECS) to rapidly deliver critical, org-specific fixes.", + "description": "The Defender core service will use the Experimentation and Configuration Service (ECS) to rapidly deliver critical, org-specific fixes." + }, + { + "id": "device_vendor_msft_defender_configuration_disablecoreserviceecsintegration_1", + "displayName": "The Defender core service stops using the Experimentation and Configuration Service (ECS). Fixes will continue to be delivered through security intelligence updates.", + "description": "The Defender core service stops using the Experimentation and Configuration Service (ECS). Fixes will continue to be delivered through security intelligence updates." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablecoreservicetelemetry", + "displayName": "Disable Core Service Telemetry", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablecoreservicetelemetry_0", + "displayName": "The Defender core service will use the OneDsCollector framework to rapidly collect telemetry.", + "description": "The Defender core service will use the OneDsCollector framework to rapidly collect telemetry." + }, + { + "id": "device_vendor_msft_defender_configuration_disablecoreservicetelemetry_1", + "displayName": "The Defender core service stops using the OneDsCollector framework to rapidly collect telemetry, impacting Microsoft's ability to quickly recognize and address poor performance, false positives, and other problems.", + "description": "The Defender core service stops using the OneDsCollector framework to rapidly collect telemetry, impacting Microsoft's ability to quickly recognize and address poor performance, false positives, and other problems." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablecputhrottleonidlescans", + "displayName": "Disable Cpu Throttle On Idle Scans", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablecputhrottleonidlescans_1", + "displayName": "Disable CPU Throttle on idle scans", + "description": "Disable CPU Throttle on idle scans" + }, + { + "id": "device_vendor_msft_defender_configuration_disablecputhrottleonidlescans_0", + "displayName": "Enable CPU Throttle on idle scans", + "description": "Enable CPU Throttle on idle scans" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disabledatagramprocessing", + "displayName": "Disable Datagram Processing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disabledatagramprocessing_1", + "displayName": "UDP inspection is off", + "description": "UDP inspection is off" + }, + { + "id": "device_vendor_msft_defender_configuration_disabledatagramprocessing_0", + "displayName": "UDP inspection is on", + "description": "UDP inspection is on" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablednsovertcpparsing", + "displayName": "Disable Dns Over Tcp Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablednsovertcpparsing_1", + "displayName": "DNS over TCP parsing is disabled", + "description": "DNS over TCP parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablednsovertcpparsing_0", + "displayName": "DNS over TCP parsing is enabled", + "description": "DNS over TCP parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablednsparsing", + "displayName": "Disable Dns Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablednsparsing_1", + "displayName": "DNS parsing is disabled", + "description": "DNS parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablednsparsing_0", + "displayName": "DNS parsing is enabled", + "description": "DNS parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disableftpparsing", + "displayName": "Disable Ftp Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disableftpparsing_1", + "displayName": "FTP parsing is disabled", + "description": "FTP parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disableftpparsing_0", + "displayName": "FTP parsing is enabled", + "description": "FTP parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablegradualrelease", + "displayName": "Disable Gradual Release", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablegradualrelease_1", + "displayName": "Gradual release is disabled", + "description": "Gradual release is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablegradualrelease_0", + "displayName": "Gradual release is enabled", + "description": "Gradual release is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablehttpparsing", + "displayName": "Disable Http Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablehttpparsing_1", + "displayName": "HTTP parsing is disabled", + "description": "HTTP parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablehttpparsing_0", + "displayName": "HTTP parsing is enabled", + "description": "HTTP parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disableinboundconnectionfiltering", + "displayName": "Disable Inbound Connection Filtering", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disableinboundconnectionfiltering_1", + "displayName": "Inbound connection filtering is disabled", + "description": "Inbound connection filtering is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disableinboundconnectionfiltering_0", + "displayName": "Inbound connection filtering is enabled", + "description": "Inbound connection filtering is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablelocaladminmerge", + "displayName": "Disable Local Admin Merge", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablelocaladminmerge_0", + "displayName": "Enable Local Admin Merge", + "description": "Enable Local Admin Merge" + }, + { + "id": "device_vendor_msft_defender_configuration_disablelocaladminmerge_1", + "displayName": "Disable Local Admin Merge", + "description": "Disable Local Admin Merge" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablenetworkprotectionperftelemetry", + "displayName": "Disable Network Protection Perf Telemetry", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablenetworkprotectionperftelemetry_1", + "displayName": "Network protection telemetry is disabled", + "description": "Network protection telemetry is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablenetworkprotectionperftelemetry_0", + "displayName": "Network protection telemetry is enabled", + "description": "Network protection telemetry is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablequicparsing", + "displayName": "Disable Quic Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablequicparsing_1", + "displayName": "QUIC parsing is disabled", + "description": "QUIC parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablequicparsing_0", + "displayName": "QUIC parsing is enabled", + "description": "QUIC parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablerdpparsing", + "displayName": "Disable Rdp Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablerdpparsing_1", + "displayName": "RDP Parsing is disabled", + "description": "RDP Parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablerdpparsing_0", + "displayName": "RDP Parsing is enabled", + "description": "RDP Parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablesmtpparsing", + "displayName": "Disable Smtp Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablesmtpparsing_1", + "displayName": "SMTP parsing is disabled", + "description": "SMTP parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablesmtpparsing_0", + "displayName": "SMTP parsing is enabled", + "description": "SMTP parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disablesshparsing", + "displayName": "Disable Ssh Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disablesshparsing_1", + "displayName": "SSH parsing is disabled", + "description": "SSH parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disablesshparsing_0", + "displayName": "SSH parsing is enabled", + "description": "SSH parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_disabletlsparsing", + "displayName": "Disable Tls Parsing", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_disabletlsparsing_1", + "displayName": "TLS parsing is disabled", + "description": "TLS parsing is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_disabletlsparsing_0", + "displayName": "TLS parsing is enabled", + "description": "TLS parsing is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_enableconvertwarntoblock", + "displayName": "Enable Convert Warn To Block", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_enableconvertwarntoblock_1", + "displayName": "Warn verdicts are converted to block", + "description": "Warn verdicts are converted to block" + }, + { + "id": "device_vendor_msft_defender_configuration_enableconvertwarntoblock_0", + "displayName": "Warn verdicts are not converted to block", + "description": "Warn verdicts are not converted to block" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_enablednssinkhole", + "displayName": "[Deprecated] Enable Dns Sinkhole", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_enablednssinkhole_0", + "displayName": "DNS Sinkhole is disabled", + "description": "DNS Sinkhole is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_enablednssinkhole_1", + "displayName": "DNS Sinkhole is enabled", + "description": "DNS Sinkhole is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_enablefilehashcomputation", + "displayName": "Enable File Hash Computation", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_enablefilehashcomputation_0", + "displayName": "Disable", + "description": "Disable" + }, + { + "id": "device_vendor_msft_defender_configuration_enablefilehashcomputation_1", + "displayName": "Enable", + "description": "Enable" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_enableudpreceiveoffload", + "displayName": "Enable Udp Receive Offload", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_enableudpreceiveoffload_0", + "displayName": "Udp Receive Offload is disabled", + "description": "Udp Receive Offload is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_enableudpreceiveoffload_1", + "displayName": "Udp Receive Offload is enabled", + "description": "Udp Receive Offload is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_enableudpsegmentationoffload", + "displayName": "Enable Udp Segmentation Offload", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_enableudpsegmentationoffload_0", + "displayName": "Udp Segmentation Offload is disabled", + "description": "Udp Segmentation Offload is disabled" + }, + { + "id": "device_vendor_msft_defender_configuration_enableudpsegmentationoffload_1", + "displayName": "Udp Segmentation Offload is enabled", + "description": "Udp Segmentation Offload is enabled" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_engineupdateschannel", + "displayName": "Engine Updates Channel", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_engineupdateschannel_0", + "displayName": "Not configured (Default). The device will stay up to date automatically during the gradual release cycle. Suitable for most devices.", + "description": "Not configured (Default). The device will stay up to date automatically during the gradual release cycle. Suitable for most devices." + }, + { + "id": "device_vendor_msft_defender_configuration_engineupdateschannel_2", + "displayName": "Beta Channel: Devices set to this channel will be the first to receive new updates. Select Beta Channel to participate in identifying and reporting issues to Microsoft. Devices in the Windows Insider Program are subscribed to this channel by default. For use in (manual) test environments only and a limited number of devices.", + "description": "Beta Channel: Devices set to this channel will be the first to receive new updates. Select Beta Channel to participate in identifying and reporting issues to Microsoft. Devices in the Windows Insider Program are subscribed to this channel by default. For use in (manual) test environments only and a limited number of devices." + }, + { + "id": "device_vendor_msft_defender_configuration_engineupdateschannel_3", + "displayName": "Current Channel (Preview): Devices set to this channel will be offered updates earliest during the monthly gradual release cycle. Suggested for pre-production/validation environments.", + "description": "Current Channel (Preview): Devices set to this channel will be offered updates earliest during the monthly gradual release cycle. Suggested for pre-production/validation environments." + }, + { + "id": "device_vendor_msft_defender_configuration_engineupdateschannel_4", + "displayName": "Current Channel (Staged): Devices will be offered updates after the monthly gradual release cycle. Suggested to apply to a small, representative part of your production population (~10%).", + "description": "Current Channel (Staged): Devices will be offered updates after the monthly gradual release cycle. Suggested to apply to a small, representative part of your production population (~10%)." + }, + { + "id": "device_vendor_msft_defender_configuration_engineupdateschannel_5", + "displayName": "Current Channel (Broad): Devices will be offered updates only after the gradual release cycle completes. Suggested to apply to a broad set of devices in your production population (~10-100%).", + "description": "Current Channel (Broad): Devices will be offered updates only after the gradual release cycle completes. Suggested to apply to a broad set of devices in your production population (~10-100%)." + }, + { + "id": "device_vendor_msft_defender_configuration_engineupdateschannel_6", + "displayName": "Critical - Time delay: Devices will be offered updates with a 48-hour delay. Suggested for critical environments only.", + "description": "Critical - Time delay: Devices will be offered updates with a 48-hour delay. Suggested for critical environments only." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_excludedipaddresses", + "displayName": "Excluded Ip Addresses", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_hideexclusionsfromlocaladmins", + "displayName": "Hide Exclusions From Local Admins", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_hideexclusionsfromlocaladmins_1", + "displayName": "If you enable this setting, local admins will no longer be able to see the exclusion list in Windows Security App or via PowerShell.", + "description": "If you enable this setting, local admins will no longer be able to see the exclusion list in Windows Security App or via PowerShell." + }, + { + "id": "device_vendor_msft_defender_configuration_hideexclusionsfromlocaladmins_0", + "displayName": "If you disable or do not configure this setting, local admins will be able to see exclusions in the Windows Security App and via PowerShell.", + "description": "If you disable or do not configure this setting, local admins will be able to see exclusions in the Windows Security App and via PowerShell." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_hideexclusionsfromlocalusers", + "displayName": "Hide Exclusions From Local Users", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_hideexclusionsfromlocalusers_1", + "displayName": "If you enable this setting, local users will no longer be able to see the exclusion list in Windows Security App or via PowerShell.", + "description": "If you enable this setting, local users will no longer be able to see the exclusion list in Windows Security App or via PowerShell." + }, + { + "id": "device_vendor_msft_defender_configuration_hideexclusionsfromlocalusers_0", + "displayName": "If you disable or do not configure this setting, local users will be able to see exclusions in the Windows Security App and via PowerShell.", + "description": "If you disable or do not configure this setting, local users will be able to see exclusions in the Windows Security App and via PowerShell." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_inteltdtenabled", + "displayName": "Intel TDT Enabled", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_inteltdtenabled_0", + "displayName": "If you do not configure this setting, the default value will be applied. The default value is controlled by Microsoft security intelligence updates. Microsoft will enable Intel TDT if there is a known threat.", + "description": "If you do not configure this setting, the default value will be applied. The default value is controlled by Microsoft security intelligence updates. Microsoft will enable Intel TDT if there is a known threat." + }, + { + "id": "device_vendor_msft_defender_configuration_inteltdtenabled_1", + "displayName": "If you configure this setting to enabled, Intel TDT integration will turn on.", + "description": "If you configure this setting to enabled, Intel TDT integration will turn on." + }, + { + "id": "device_vendor_msft_defender_configuration_inteltdtenabled_2", + "displayName": "If you configure this setting to disabled, Intel TDT integration will turn off.", + "description": "If you configure this setting to disabled, Intel TDT integration will turn off." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_meteredconnectionupdates", + "displayName": "Metered Connection Updates", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_meteredconnectionupdates_1", + "displayName": "Allowed", + "description": "Allowed" + }, + { + "id": "device_vendor_msft_defender_configuration_meteredconnectionupdates_0", + "displayName": "Not Allowed", + "description": "Not Allowed" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_networkprotectionreputationmode", + "displayName": "Network Protection Reputation Mode", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_networkprotectionreputationmode_0", + "displayName": "Use standard reputation engine", + "description": "Use standard reputation engine" + }, + { + "id": "device_vendor_msft_defender_configuration_networkprotectionreputationmode_1", + "displayName": "Use ESP reputation engine", + "description": "Use ESP reputation engine" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_oobeenablertpandsigupdate", + "displayName": "Oobe Enable Rtp And Sig Update", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_oobeenablertpandsigupdate_1", + "displayName": "If you enable this setting, real-time protection and Security Intelligence Updates are enabled during OOBE.", + "description": "If you enable this setting, real-time protection and Security Intelligence Updates are enabled during OOBE." + }, + { + "id": "device_vendor_msft_defender_configuration_oobeenablertpandsigupdate_0", + "displayName": "If you either disable or do not configure this setting, real-time protection and Security Intelligence Updates during OOBE is not enabled.", + "description": "If you either disable or do not configure this setting, real-time protection and Security Intelligence Updates during OOBE is not enabled." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_passiveremediation", + "displayName": "Passive Remediation", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_passiveremediation_0", + "displayName": "Passive Remediation is turned off (default)", + "description": "Passive Remediation is turned off (default)" + }, + { + "id": "device_vendor_msft_defender_configuration_passiveremediation_1", + "displayName": "PASSIVEREMEDIATIONFLAGSENSEAUTOREMEDIATION: Passive Remediation Sense AutoRemediation", + "description": "PASSIVE_REMEDIATION_FLAG_SENSE_AUTO_REMEDIATION: Passive Remediation Sense AutoRemediation" + }, + { + "id": "device_vendor_msft_defender_configuration_passiveremediation_2", + "displayName": "PASSIVEREMEDIATIONFLAGRTPAUDIT: Passive Remediation Realtime Protection Audit", + "description": "PASSIVE_REMEDIATION_FLAG_RTP_AUDIT: Passive Remediation Realtime Protection Audit" + }, + { + "id": "device_vendor_msft_defender_configuration_passiveremediation_4", + "displayName": "PASSIVEREMEDIATIONFLAGRTPREMEDIATION: Passive Remediation Realtime Protection Remediation", + "description": "PASSIVE_REMEDIATION_FLAG_RTP_REMEDIATION: Passive Remediation Realtime Protection Remediation" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_performancemodestatus", + "displayName": "Performance Mode Status", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_performancemodestatus_0", + "displayName": "Performance mode is enabled (default). A service restart is required after changing this value.", + "description": "Performance mode is enabled (default). A service restart is required after changing this value." + }, + { + "id": "device_vendor_msft_defender_configuration_performancemodestatus_1", + "displayName": "Performance mode is disabled. A service restart is required after changing this value.", + "description": "Performance mode is disabled. A service restart is required after changing this value." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_platformupdateschannel", + "displayName": "Platform Updates Channel", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_platformupdateschannel_0", + "displayName": "Not configured (Default). The device will stay up to date automatically during the gradual release cycle. Suitable for most devices.", + "description": "Not configured (Default). The device will stay up to date automatically during the gradual release cycle. Suitable for most devices." + }, + { + "id": "device_vendor_msft_defender_configuration_platformupdateschannel_2", + "displayName": "Beta Channel: Devices set to this channel will be the first to receive new updates. Select Beta Channel to participate in identifying and reporting issues to Microsoft. Devices in the Windows Insider Program are subscribed to this channel by default. For use in (manual) test environments only and a limited number of devices.", + "description": "Beta Channel: Devices set to this channel will be the first to receive new updates. Select Beta Channel to participate in identifying and reporting issues to Microsoft. Devices in the Windows Insider Program are subscribed to this channel by default. For use in (manual) test environments only and a limited number of devices." + }, + { + "id": "device_vendor_msft_defender_configuration_platformupdateschannel_3", + "displayName": "Current Channel (Preview): Devices set to this channel will be offered updates earliest during the monthly gradual release cycle. Suggested for pre-production/validation environments.", + "description": "Current Channel (Preview): Devices set to this channel will be offered updates earliest during the monthly gradual release cycle. Suggested for pre-production/validation environments." + }, + { + "id": "device_vendor_msft_defender_configuration_platformupdateschannel_4", + "displayName": "Current Channel (Staged): Devices will be offered updates after the monthly gradual release cycle. Suggested to apply to a small, representative part of your production population (~10%).", + "description": "Current Channel (Staged): Devices will be offered updates after the monthly gradual release cycle. Suggested to apply to a small, representative part of your production population (~10%)." + }, + { + "id": "device_vendor_msft_defender_configuration_platformupdateschannel_5", + "displayName": "Current Channel (Broad): Devices will be offered updates only after the gradual release cycle completes. Suggested to apply to a broad set of devices in your production population (~10-100%).", + "description": "Current Channel (Broad): Devices will be offered updates only after the gradual release cycle completes. Suggested to apply to a broad set of devices in your production population (~10-100%)." + }, + { + "id": "device_vendor_msft_defender_configuration_platformupdateschannel_6", + "displayName": "Critical - Time delay: Devices will be offered updates with a 48-hour delay. Suggested for critical environments only.", + "description": "Critical - Time delay: Devices will be offered updates with a 48-hour delay. Suggested for critical environments only." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_quickscanincludeexclusions", + "displayName": "Quick Scan Include Exclusions", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_quickscanincludeexclusions_0", + "displayName": "If you set this setting to 0 or do not configure it, exclusions are not scanned during quick scans.", + "description": "If you set this setting to 0 or do not configure it, exclusions are not scanned during quick scans." + }, + { + "id": "device_vendor_msft_defender_configuration_quickscanincludeexclusions_1", + "displayName": "If you set this setting to 1, all files and directories that are excluded from real-time protection using contextual exclusions are scanned during a quick scan.", + "description": "If you set this setting to 1, all files and directories that are excluded from real-time protection using contextual exclusions are scanned during a quick scan." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_randomizescheduletasktimes", + "displayName": "Randomize Schedule Task Times", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_randomizescheduletasktimes_1", + "displayName": "Widen or narrow the randomization period for scheduled scans. Specify a randomization window of between 1 and 23 hours by using the setting SchedulerRandomizationTime.", + "description": "Widen or narrow the randomization period for scheduled scans. Specify a randomization window of between 1 and 23 hours by using the setting SchedulerRandomizationTime." + }, + { + "id": "device_vendor_msft_defender_configuration_randomizescheduletasktimes_0", + "displayName": "Scheduled tasks will not be randomized.", + "description": "Scheduled tasks will not be randomized." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_scanonlyifidleenabled", + "displayName": "Scan Only If Idle Enabled", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_scanonlyifidleenabled_1", + "displayName": "Runs scheduled scans only if the system is idle.", + "description": "Runs scheduled scans only if the system is idle." + }, + { + "id": "device_vendor_msft_defender_configuration_scanonlyifidleenabled_0", + "displayName": "Runs scheduled scans regardless of whether the system is idle.", + "description": "Runs scheduled scans regardless of whether the system is idle." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_schedulerrandomizationtime", + "displayName": "Scheduler Randomization Time", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday", + "displayName": "Schedule Security Intelligence Update Day", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_0", + "displayName": "Daily", + "description": "Daily" + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_1", + "displayName": "Sunday", + "description": "Sunday" + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_2", + "displayName": "Monday", + "description": "Monday" + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_3", + "displayName": "Tuesday", + "description": "Tuesday" + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_4", + "displayName": "Wednesday", + "description": "Wednesday" + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_5", + "displayName": "Thursday", + "description": "Thursday" + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_6", + "displayName": "Friday", + "description": "Friday" + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_7", + "displayName": "Saturday", + "description": "Saturday" + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdateday_8", + "displayName": "Never", + "description": "Never" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_schedulesecurityintelligenceupdatetime", + "displayName": "Schedule Security Intelligence Update Time", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_secureddevicesconfiguration", + "displayName": "Secured Devices Configuration", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_secureddevicesconfiguration_removablemediadevices", + "displayName": "Removable Media Devices", + "description": "RemovableMediaDevices" + }, + { + "id": "device_vendor_msft_defender_configuration_secureddevicesconfiguration_cdromdevices", + "displayName": "Cd Rom Devices", + "description": "CdRomDevices" + }, + { + "id": "device_vendor_msft_defender_configuration_secureddevicesconfiguration_wpddevices", + "displayName": "Wpd Devices", + "description": "WpdDevices" + }, + { + "id": "device_vendor_msft_defender_configuration_secureddevicesconfiguration_printerdevices", + "displayName": "Printer Devices", + "description": "PrinterDevices" + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_securityintelligencelocationupdateatscheduledtimeonly", + "displayName": "Security Intelligence Location Update At Scheduled Time Only", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_securityintelligencelocationupdateatscheduledtimeonly_1", + "displayName": "If you enable this setting and configure SecurityIntelligenceLocation, updates from the configured location occur only at the previously configured scheduled update time.", + "description": "If you enable this setting and configure SecurityIntelligenceLocation, updates from the configured location occur only at the previously configured scheduled update time." + }, + { + "id": "device_vendor_msft_defender_configuration_securityintelligencelocationupdateatscheduledtimeonly_0", + "displayName": "If you either disable or do not configure this setting, updates occur whenever a new security intelligence update is detected at the location that is specified by SecurityIntelligenceLocation.", + "description": "If you either disable or do not configure this setting, updates occur whenever a new security intelligence update is detected at the location that is specified by SecurityIntelligenceLocation." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_securityintelligenceupdateschannel", + "displayName": "Security Intelligence Updates Channel", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_securityintelligenceupdateschannel_0", + "displayName": "Not configured (Default). The device will stay up to date automatically during the gradual release cycle. Suitable for most devices.", + "description": "Not configured (Default). The device will stay up to date automatically during the gradual release cycle. Suitable for most devices." + }, + { + "id": "device_vendor_msft_defender_configuration_securityintelligenceupdateschannel_4", + "displayName": "Current Channel (Staged): Devices will be offered updates after the release cycle. Suggested to apply to a small, representative part of production population (~10%).", + "description": "Current Channel (Staged): Devices will be offered updates after the release cycle. Suggested to apply to a small, representative part of production population (~10%)." + }, + { + "id": "device_vendor_msft_defender_configuration_securityintelligenceupdateschannel_5", + "displayName": "Current Channel (Broad): Devices will be offered updates only after the gradual release cycle completes. Suggested to apply to a broad set of devices in your production population (~10-100%).", + "description": "Current Channel (Broad): Devices will be offered updates only after the gradual release cycle completes. Suggested to apply to a broad set of devices in your production population (~10-100%)." + } + ] + }, + { + "id": "device_vendor_msft_defender_configuration_supportloglocation", + "displayName": "Support Log Location", + "options": null + }, + { + "id": "device_vendor_msft_defender_configuration_throttleforscheduledscanonly", + "displayName": "Throttle For Scheduled Scan Only", + "options": [ + { + "id": "device_vendor_msft_defender_configuration_throttleforscheduledscanonly_1", + "displayName": "If you enable this setting, CPU throttling will apply only to scheduled scans.", + "description": "If you enable this setting, CPU throttling will apply only to scheduled scans." + }, + { + "id": "device_vendor_msft_defender_configuration_throttleforscheduledscanonly_0", + "displayName": "If you disable this setting, CPU throttling will apply to scheduled and custom scans.", + "description": "If you disable this setting, CPU throttling will apply to scheduled and custom scans." + } + ] + }, + { + "id": "device_vendor_msft_dmclient_provider_{providerid}", + "displayName": " Provider ID", + "options": null + }, + { + "id": "device_vendor_msft_dmclient_provider_{providerid}_configrefresh_cadence", + "displayName": "Refresh cadence", + "options": null + }, + { + "id": "device_vendor_msft_dmclient_provider_{providerid}_configrefresh_enabled", + "displayName": "Config refresh", + "options": [ + { + "id": "device_vendor_msft_dmclient_provider_{providerid}_configrefresh_enabled_true", + "displayName": "Enabled.", + "description": "Enabled." + }, + { + "id": "device_vendor_msft_dmclient_provider_{providerid}_configrefresh_enabled_false", + "displayName": "Disabled.", + "description": "Disabled." + } + ] + }, + { + "id": "device_vendor_msft_email_accountname", + "displayName": "Account Name", + "options": null + }, + { + "id": "device_vendor_msft_email_emailaddressattributeaad", + "displayName": "Email address attribute from AAD", + "options": null + }, + { + "id": "device_vendor_msft_email_emailserver", + "displayName": "Email Server", + "options": null + }, + { + "id": "device_vendor_msft_email_usernameattributeaad", + "displayName": "Username attribute from AAD", + "options": null + }, + { + "id": "device_vendor_msft_euiccs_{euicc}", + "displayName": "eSIM", + "options": null + }, + { + "id": "device_vendor_msft_euiccs_{euicc}_downloadservers_{servername}", + "displayName": "Download Servers", + "options": null + }, + { + "id": "device_vendor_msft_euiccs_{euicc}_downloadservers_{servername}_autoenable", + "displayName": "Auto Enable", + "options": [ + { + "id": "device_vendor_msft_euiccs_{euicc}_downloadservers_{servername}_autoenable_false", + "displayName": "Disable", + "description": "Disable" + }, + { + "id": "device_vendor_msft_euiccs_{euicc}_downloadservers_{servername}_autoenable_true", + "displayName": "Enable", + "description": "Enable" + } + ] + }, + { + "id": "device_vendor_msft_euiccs_{euicc}_downloadservers_{servername}_servername", + "displayName": "Server Name", + "options": null + }, + { + "id": "device_vendor_msft_euiccs_{euicc}_policies_localuienabled", + "displayName": "Display Local UI", + "options": [ + { + "id": "device_vendor_msft_euiccs_{euicc}_policies_localuienabled_false", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_euiccs_{euicc}_policies_localuienabled_true", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_laps_policies_adencryptedpasswordhistorysize", + "displayName": "AD Encrypted Password History Size", + "options": null + }, + { + "id": "device_vendor_msft_laps_policies_administratoraccountname", + "displayName": "Administrator Account Name", + "options": null + }, + { + "id": "device_vendor_msft_laps_policies_adpasswordencryptionenabled", + "displayName": "AD Password Encryption Enabled", + "options": [ + { + "id": "device_vendor_msft_laps_policies_adpasswordencryptionenabled_false", + "displayName": "Store the password in clear-text form in Active Directory", + "description": "Store the password in clear-text form in Active Directory" + }, + { + "id": "device_vendor_msft_laps_policies_adpasswordencryptionenabled_true", + "displayName": "Store the password in encrypted form in Active Directory", + "description": "Store the password in encrypted form in Active Directory" + } + ] + }, + { + "id": "device_vendor_msft_laps_policies_adpasswordencryptionprincipal", + "displayName": "AD Password Encryption Principal", + "options": null + }, + { + "id": "device_vendor_msft_laps_policies_backupdirectory", + "displayName": "Backup Directory", + "options": [ + { + "id": "device_vendor_msft_laps_policies_backupdirectory_0", + "displayName": "Disabled (password will not be backed up)", + "description": "Disabled (password will not be backed up)" + }, + { + "id": "device_vendor_msft_laps_policies_backupdirectory_1", + "displayName": "Backup the password to Azure AD only", + "description": "Backup the password to Azure AD only" + }, + { + "id": "device_vendor_msft_laps_policies_backupdirectory_2", + "displayName": "Backup the password to Active Directory only", + "description": "Backup the password to Active Directory only" + } + ] + }, + { + "id": "device_vendor_msft_laps_policies_passwordagedays", + "displayName": "Password Age Days", + "options": null + }, + { + "id": "device_vendor_msft_laps_policies_passwordagedays_aad", + "displayName": "Password Age Days", + "options": null + }, + { + "id": "device_vendor_msft_laps_policies_passwordcomplexity", + "displayName": "Password Complexity", + "options": [ + { + "id": "device_vendor_msft_laps_policies_passwordcomplexity_1", + "displayName": "Large letters", + "description": "Large letters" + }, + { + "id": "device_vendor_msft_laps_policies_passwordcomplexity_2", + "displayName": "Large letters + small letters", + "description": "Large letters + small letters" + }, + { + "id": "device_vendor_msft_laps_policies_passwordcomplexity_3", + "displayName": "Large letters + small letters + numbers", + "description": "Large letters + small letters + numbers" + }, + { + "id": "device_vendor_msft_laps_policies_passwordcomplexity_4", + "displayName": "Large letters + small letters + numbers + special characters", + "description": "Large letters + small letters + numbers + special characters" + }, + { + "id": "device_vendor_msft_laps_policies_passwordcomplexity_5", + "displayName": "Large letters + small letters + numbers + special characters (improved readability)", + "description": "Large letters + small letters + numbers + special characters (improved readability)" + } + ] + }, + { + "id": "device_vendor_msft_laps_policies_passwordexpirationprotectionenabled", + "displayName": "Password Expiration Protection Enabled", + "options": [ + { + "id": "device_vendor_msft_laps_policies_passwordexpirationprotectionenabled_false", + "displayName": "Allow configured password expiriration timestamp to exceed maximum password age", + "description": "Allow configured password expiriration timestamp to exceed maximum password age" + }, + { + "id": "device_vendor_msft_laps_policies_passwordexpirationprotectionenabled_true", + "displayName": "Do not allow configured password expiriration timestamp to exceed maximum password age", + "description": "Do not allow configured password expiriration timestamp to exceed maximum password age" + } + ] + }, + { + "id": "device_vendor_msft_laps_policies_passwordlength", + "displayName": "Password Length", + "options": null + }, + { + "id": "device_vendor_msft_laps_policies_postauthenticationactions", + "displayName": "Post Authentication Actions", + "options": [ + { + "id": "device_vendor_msft_laps_policies_postauthenticationactions_1", + "displayName": "Reset password: upon expiry of the grace period, the managed account password will be reset.", + "description": "Reset password: upon expiry of the grace period, the managed account password will be reset." + }, + { + "id": "device_vendor_msft_laps_policies_postauthenticationactions_3", + "displayName": "Reset the password and logoff the managed account: upon expiry of the grace period, the managed account password will be reset and any interactive logon sessions using the managed account will terminated.", + "description": "Reset the password and logoff the managed account: upon expiry of the grace period, the managed account password will be reset and any interactive logon sessions using the managed account will terminated." + }, + { + "id": "device_vendor_msft_laps_policies_postauthenticationactions_5", + "displayName": "Reset the password and reboot: upon expiry of the grace period, the managed account password will be reset and the managed device will be immediately rebooted.", + "description": "Reset the password and reboot: upon expiry of the grace period, the managed account password will be reset and the managed device will be immediately rebooted." + } + ] + }, + { + "id": "device_vendor_msft_laps_policies_postauthenticationresetdelay", + "displayName": "Post Authentication Reset Delay", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}", + "displayName": "Device-scoped settings", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_enablepinrecovery", + "displayName": "Enable Pin Recovery", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_enablepinrecovery_false", + "displayName": "false", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_enablepinrecovery_true", + "displayName": "true", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_excludesecuritydevices_tpm12", + "displayName": "Restrict use of TPM 1.2", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_excludesecuritydevices_tpm12_false", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_excludesecuritydevices_tpm12_true", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_digits", + "displayName": "Digits", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_digits_0", + "displayName": "Allows the use of digits in PIN.", + "description": "Allows the use of digits in PIN." + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_digits_1", + "displayName": "Requires the use of at least one digits in PIN.", + "description": "Requires the use of at least one digits in PIN." + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_digits_2", + "displayName": "Does not allow the use of digits in PIN.", + "description": "Does not allow the use of digits in PIN." + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_expiration", + "displayName": "Expiration", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_history", + "displayName": "PIN History", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_lowercaseletters", + "displayName": "Lowercase Letters", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_lowercaseletters_0", + "displayName": "Allowed", + "description": "Allows the use of lowercase letters in PIN." + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_lowercaseletters_1", + "displayName": "Required", + "description": "Requires the use of at least one lowercase letters in PIN." + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_lowercaseletters_2", + "displayName": "Blocked", + "description": "Does not allow the use of lowercase letters in PIN." + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_maximumpinlength", + "displayName": "Maximum PIN Length", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_minimumpinlength", + "displayName": "Minimum PIN Length", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_specialcharacters", + "displayName": "Special Characters", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_specialcharacters_0", + "displayName": "Allows the use of special characters in PIN.", + "description": "Allows the use of special characters in PIN." + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_specialcharacters_1", + "displayName": "Requires the use of at least one special characters in PIN.", + "description": "Requires the use of at least one special characters in PIN." + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_specialcharacters_2", + "displayName": "Does not allow the use of special characters in PIN.", + "description": "Does not allow the use of special characters in PIN." + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_uppercaseletters", + "displayName": "Uppercase Letters", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_uppercaseletters_0", + "displayName": "Allowed", + "description": "Allows the use of uppercase letters in PIN." + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_uppercaseletters_1", + "displayName": "Required", + "description": "Requires the use of at least one uppercase letters in PIN." + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_uppercaseletters_2", + "displayName": "Blocked", + "description": "Does not allow the use of uppercase letters in PIN." + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_remote_useremotepassport", + "displayName": "Use Remote Passport", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_remote_useremotepassport_false", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_remote_useremotepassport_true", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_requiresecuritydevice", + "displayName": "Require Security Device", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_requiresecuritydevice_false", + "displayName": "false", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_requiresecuritydevice_true", + "displayName": "true", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usecertificateforonpremauth", + "displayName": "Use Certificate For On Prem Auth", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usecertificateforonpremauth_false", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usecertificateforonpremauth_true", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usecloudtrustforonpremauth", + "displayName": "Use Cloud Trust For On Prem Auth", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usecloudtrustforonpremauth_false", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usecloudtrustforonpremauth_true", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usehellocertificatesassmartcardcertificates", + "displayName": "Use Hello Certificates As Smart Card Certificates", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usehellocertificatesassmartcardcertificates_false", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usehellocertificatesassmartcardcertificates_true", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usepassportforwork", + "displayName": "Use Windows Hello For Business (Device)", + "options": [ + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usepassportforwork_false", + "displayName": "false", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_{tenantid}_policies_usepassportforwork_true", + "displayName": "true", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_biometrics_enableesswithsupportedperipherals", + "displayName": "Enable ESS with Supported Peripherals", + "options": [ + { + "id": "device_vendor_msft_passportforwork_biometrics_enableesswithsupportedperipherals_0", + "displayName": "Enhanced sign-in security will be disabled on all systems. If a user already has a secure Windows Hello enrollment, they will lose their enrollment and must reset PIN, and they will have the option to re-enroll in normal face and fingerprint. Peripheral usage will be enabled by disabling Enhanced sign-in security. OS will not attempt to start secure components, even if the secure hardware and software components are present. (not recommended)", + "description": "Enhanced sign-in security will be disabled on all systems. If a user already has a secure Windows Hello enrollment, they will lose their enrollment and must reset PIN, and they will have the option to re-enroll in normal face and fingerprint. Peripheral usage will be enabled by disabling Enhanced sign-in security. OS will not attempt to start secure components, even if the secure hardware and software components are present. (not recommended)" + }, + { + "id": "device_vendor_msft_passportforwork_biometrics_enableesswithsupportedperipherals_1", + "displayName": "Enhanced sign-in security will be enabled on systems with capable software and hardware, following the existing default behavior in Windows. For systems with one secure modality (face or fingerprint) and one insecure modality (fingerprint or face), only the secure sensor can be used for sign-in and the insecure sensor(s) will be blocked. This includes peripheral devices, which are unsupported and will be unusable. (default and recommended for highest security)", + "description": "Enhanced sign-in security will be enabled on systems with capable software and hardware, following the existing default behavior in Windows. For systems with one secure modality (face or fingerprint) and one insecure modality (fingerprint or face), only the secure sensor can be used for sign-in and the insecure sensor(s) will be blocked. This includes peripheral devices, which are unsupported and will be unusable. (default and recommended for highest security)" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_biometrics_facialfeaturesuseenhancedantispoofing", + "displayName": "Facial Features Use Enhanced Anti Spoofing", + "options": [ + { + "id": "device_vendor_msft_passportforwork_biometrics_facialfeaturesuseenhancedantispoofing_false", + "displayName": "false", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_biometrics_facialfeaturesuseenhancedantispoofing_true", + "displayName": "true", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_biometrics_usebiometrics", + "displayName": "Allow Use of Biometrics", + "options": [ + { + "id": "device_vendor_msft_passportforwork_biometrics_usebiometrics_false", + "displayName": "False", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_biometrics_usebiometrics_true", + "displayName": "True", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_deviceunlock_groupa", + "displayName": "Group A", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_deviceunlock_groupb", + "displayName": "Group B", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_deviceunlock_plugins", + "displayName": "Device Unlock Plugins", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_dynamiclock_dynamiclock", + "displayName": "Dynamic Lock", + "options": [ + { + "id": "device_vendor_msft_passportforwork_dynamiclock_dynamiclock_false", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_passportforwork_dynamiclock_dynamiclock_true", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_passportforwork_dynamiclock_plugins", + "displayName": "Dynamic Lock Plugins", + "options": null + }, + { + "id": "device_vendor_msft_passportforwork_securitykey_usesecuritykeyforsignin", + "displayName": "Use Security Key For Signin", + "options": [ + { + "id": "device_vendor_msft_passportforwork_securitykey_usesecuritykeyforsignin_0", + "displayName": "Disabled", + "description": "disabled" + }, + { + "id": "device_vendor_msft_passportforwork_securitykey_usesecuritykeyforsignin_1", + "displayName": "Enabled", + "description": "enabled" + } + ] + }, + { + "id": "device_vendor_msft_pkcscertificate_certificatevalidityperiod", + "displayName": "Certificate validity period", + "options": null + }, + { + "id": "device_vendor_msft_pkcscertificate_certificationauthority", + "displayName": "Certification Authority", + "options": null + }, + { + "id": "device_vendor_msft_pkcscertificate_keystorageprovider", + "displayName": "Key storage provider (KSP)", + "options": null + }, + { + "id": "device_vendor_msft_pkcscertificate_renewalthreshold", + "displayName": "Renewal threshold (%)", + "options": null + }, + { + "id": "device_vendor_msft_pkcscertificate_subjectnameformat", + "displayName": "Subject name format", + "options": null + }, + { + "id": "device_vendor_msft_pkcsimportedcertificate_intendedpurpose", + "displayName": "Intended Purpose", + "options": null + }, + { + "id": "device_vendor_msft_pkcsimportedcertificate_keystorageprovider", + "displayName": "Key storage provider (KSP)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_abovelock_allowcortanaabovelock", + "displayName": "Allow Cortana Above Lock", + "options": [ + { + "id": "device_vendor_msft_policy_config_abovelock_allowcortanaabovelock_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_abovelock_allowcortanaabovelock_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_abovelock_allowtoasts", + "displayName": "Allow Toasts", + "options": [ + { + "id": "device_vendor_msft_policy_config_abovelock_allowtoasts_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_abovelock_allowtoasts_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_accounts_allowaddingnonmicrosoftaccountsmanually", + "displayName": "Allow Adding Non Microsoft Accounts Manually", + "options": [ + { + "id": "device_vendor_msft_policy_config_accounts_allowaddingnonmicrosoftaccountsmanually_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_accounts_allowaddingnonmicrosoftaccountsmanually_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_accounts_allowmicrosoftaccountconnection", + "displayName": "Allow Microsoft Account Connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_accounts_allowmicrosoftaccountconnection_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_accounts_allowmicrosoftaccountconnection_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_accounts_allowmicrosoftaccountsigninassistant", + "displayName": "Allow Microsoft Account Sign In Assistant", + "options": [ + { + "id": "device_vendor_msft_policy_config_accounts_allowmicrosoftaccountsigninassistant_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_accounts_allowmicrosoftaccountsigninassistant_1", + "displayName": "Manual start", + "description": "Manual start" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_accounts_domainnamesforemailsync", + "displayName": "Domain Names For Email Sync", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_activexcontrols_approvedinstallationsites", + "displayName": "Approved Installation Sites for ActiveX Controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_activexcontrols_approvedinstallationsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_activexcontrols_approvedinstallationsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_activexcontrols_approvedinstallationsites_approvedactivexinstallsiteslist", + "displayName": "Host URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_activexcontrols_approvedinstallationsites_approvedactivexinstallsiteslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_activexcontrols_approvedinstallationsites_approvedactivexinstallsiteslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies", + "displayName": "Establish ActiveX installation policy for sites in Trusted zones", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreinvalidcertdate", + "displayName": "Expired certificate validation date (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreinvalidcertdate_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreinvalidcertdate_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreinvalidcn", + "displayName": "Invalid certificate name (CN) (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreinvalidcn_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreinvalidcn_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreunknownca", + "displayName": "Unknown certifcation authority (CA) (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreunknownca_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignoreunknownca_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignorewrongcertusage", + "displayName": "Wrong certificate usage (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignorewrongcertusage_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_ignorewrongcertusage_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installsignedocx", + "displayName": "Installation Policy for signed ActiveX control (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installsignedocx_0", + "displayName": "Don't install", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installsignedocx_1", + "displayName": "Prompt the user", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installsignedocx_2", + "displayName": "Silently install", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installtrustedocx", + "displayName": "Installation Policy for ActiveX control signed by trusted publisher (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installtrustedocx_0", + "displayName": "Don't install", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installtrustedocx_1", + "displayName": "Prompt the user", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installtrustedocx_2", + "displayName": "Silently install", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installunsignedocx", + "displayName": "Installation Policy for unsigned ActiveX control (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installunsignedocx_0", + "displayName": "Don't install", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_activexinstallservice_axisurlzonepolicies_installunsignedocx_1", + "displayName": "Prompt the user", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd", + "displayName": "Password Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_adminname", + "displayName": "Name of administrator account to manage", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_adminname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_adminname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_adminname_txt_adminaccountname", + "displayName": "Administrator account name (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_dontallowpwdexpirationbehindpolicy", + "displayName": "Do not allow password expiration time longer than required by policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_dontallowpwdexpirationbehindpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_dontallowpwdexpirationbehindpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_elm_admpwd_passwordagedays", + "displayName": "Password Age (Days) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_elm_admpwd_passwordcomplexity", + "displayName": "Password Complexity (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_elm_admpwd_passwordcomplexity_1", + "displayName": "Large letters", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_elm_admpwd_passwordcomplexity_2", + "displayName": "Large letters + small letters", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_elm_admpwd_passwordcomplexity_3", + "displayName": "Large letters + small letters + numbers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_elm_admpwd_passwordcomplexity_4", + "displayName": "Large letters + small letters + numbers + specials", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_elm_admpwd_passwordlength", + "displayName": "Password Length (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_enabled", + "displayName": "Enable local admin password management", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_admpwd_pol_admpwd_enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatprevent16bitmach", + "displayName": "Prevent access to 16-bit applications", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatprevent16bitmach_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatprevent16bitmach_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatremoveprogramcompatproppage", + "displayName": "Remove Program Compatibility Property Page", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatremoveprogramcompatproppage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatremoveprogramcompatproppage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffapplicationimpacttelemetry", + "displayName": "Turn off Application Telemetry", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffapplicationimpacttelemetry_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffapplicationimpacttelemetry_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffengine", + "displayName": "Turn off Application Compatibility Engine", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffengine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffengine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprogramcompatibilityassistant_2", + "displayName": "Turn off Program Compatibility Assistant", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprogramcompatibilityassistant_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprogramcompatibilityassistant_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprograminventory", + "displayName": "Turn off Inventory Collector", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprograminventory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprograminventory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffswitchback", + "displayName": "Turn off SwitchBack Compatibility Engine", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffswitchback_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffswitchback_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffuseractionrecord", + "displayName": "Turn off Steps Recorder", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffuseractionrecord_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appcompat_appcompatturnoffuseractionrecord_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appxpackagemanager_allowdeploymentinspecialprofiles", + "displayName": "Allow deployment operations in special profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appxpackagemanager_allowdeploymentinspecialprofiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appxpackagemanager_allowdeploymentinspecialprofiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeapplicationcontenturirules", + "displayName": "Turn on dynamic Content URI Rules for Windows store apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeapplicationcontenturirules_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeapplicationcontenturirules_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeapplicationcontenturirules_listbox_contenturirules", + "displayName": "Content URI Rules: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockfileelevation", + "displayName": "Block launching desktop apps associated with a file.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockfileelevation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockfileelevation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockhostedappaccesswinrt", + "displayName": "Block launching Universal Windows apps with Windows Runtime API access from hosted content.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockhostedappaccesswinrt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockhostedappaccesswinrt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockprotocolelevation", + "displayName": "Block launching desktop apps associated with a URI scheme", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockprotocolelevation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockprotocolelevation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_auditsettings_includecmdline", + "displayName": "Include command line in process creation events", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_auditsettings_includecmdline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_auditsettings_includecmdline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablebranchcache", + "displayName": "Do not allow the BITS client to use Windows Branch Cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablebranchcache_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablebranchcache_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablepeercachingclient", + "displayName": "Do not allow the computer to act as a BITS Peercaching client", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablepeercachingclient_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablepeercachingclient_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablepeercachingserver", + "displayName": "Do not allow the computer to act as a BITS Peercaching server", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablepeercachingserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_disablepeercachingserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_enablepeercaching", + "displayName": "Allow BITS Peercaching", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_enablepeercaching_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_enablepeercaching_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthservedforpeers", + "displayName": "Limit the maximum network bandwidth used for Peercaching", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthservedforpeers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthservedforpeers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthservedforpeers_bits_maxbandwidthservedforpeerslist", + "displayName": "Maximum network bandwidth used for Peercaching (bps): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance", + "displayName": "Set up a maintenance schedule to limit the maximum network bandwidth used for BITS background transfers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysfrom", + "displayName": "From (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysfrom_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysfrom_1", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysfrom_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysfrom_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysfrom_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysfrom_5", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysfrom_6", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysto", + "displayName": "To (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysto_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysto_1", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysto_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysto_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysto_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysto_5", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancedaysto_6", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehighprioritylimit", + "displayName": "High Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehighpriorityunit", + "displayName": "High Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehighpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehighpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehighpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom", + "displayName": "From (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_0", + "displayName": "12 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_1", + "displayName": "1 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_2", + "displayName": "2 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_3", + "displayName": "3 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_4", + "displayName": "4 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_5", + "displayName": "5 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_6", + "displayName": "6 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_7", + "displayName": "7 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_8", + "displayName": "8 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_9", + "displayName": "9 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_10", + "displayName": "10 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_11", + "displayName": "11 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_12", + "displayName": "12 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_13", + "displayName": "1 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_14", + "displayName": "2 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_15", + "displayName": "3 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_16", + "displayName": "4 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_17", + "displayName": "5 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_18", + "displayName": "6 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_19", + "displayName": "7 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_20", + "displayName": "8 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_21", + "displayName": "9 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_22", + "displayName": "10 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursfrom_23", + "displayName": "11 PM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto", + "displayName": "To (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_0", + "displayName": "12 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_1", + "displayName": "1 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_2", + "displayName": "2 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_3", + "displayName": "3 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_4", + "displayName": "4 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_5", + "displayName": "5 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_6", + "displayName": "6 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_7", + "displayName": "7 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_8", + "displayName": "8 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_9", + "displayName": "9 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_10", + "displayName": "10 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_11", + "displayName": "11 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_12", + "displayName": "12 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_13", + "displayName": "1 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_14", + "displayName": "2 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_15", + "displayName": "3 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_16", + "displayName": "4 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_17", + "displayName": "5 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_18", + "displayName": "6 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_19", + "displayName": "7 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_20", + "displayName": "8 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_21", + "displayName": "9 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_22", + "displayName": "10 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancehoursto_23", + "displayName": "11 PM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancelowprioritylimit", + "displayName": "Low Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancelowpriorityunit", + "displayName": "Low Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancelowpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancelowpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancelowpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancenormalprioritylimit", + "displayName": "Normal Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancenormalpriorityunit", + "displayName": "Normal Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancenormalpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancenormalpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_maintenance_bits_maintenancenormalpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work", + "displayName": "Set up a work schedule to limit the maximum network bandwidth used for BITS background transfers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_ignorelimitsonlan", + "displayName": "Ignore bandwidth limits if the source and the destination are on the same subnet. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_ignorelimitsonlan_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_ignorelimitsonlan_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworkhighprioritylimit", + "displayName": "High Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworkhighpriorityunit", + "displayName": "High Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworkhighpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworkhighpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworkhighpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworklowprioritylimit", + "displayName": "Low Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworklowpriorityunit", + "displayName": "Low Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworklowpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworklowpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworklowpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworknormalprioritylimit", + "displayName": "Normal Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworknormalpriorityunit", + "displayName": "Normal Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworknormalpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworknormalpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_nonworknormalpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysfrom", + "displayName": "From (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysfrom_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysfrom_1", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysfrom_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysfrom_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysfrom_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysfrom_5", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysfrom_6", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysto", + "displayName": "To (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysto_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysto_1", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysto_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysto_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysto_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysto_5", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workdaysto_6", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhighprioritylimit", + "displayName": "High Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhighpriorityunit", + "displayName": "High Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhighpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhighpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhighpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom", + "displayName": "From (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_0", + "displayName": "12 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_1", + "displayName": "1 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_2", + "displayName": "2 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_3", + "displayName": "3 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_4", + "displayName": "4 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_5", + "displayName": "5 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_6", + "displayName": "6 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_7", + "displayName": "7 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_8", + "displayName": "8 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_9", + "displayName": "9 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_10", + "displayName": "10 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_11", + "displayName": "11 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_12", + "displayName": "12 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_13", + "displayName": "1 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_14", + "displayName": "2 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_15", + "displayName": "3 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_16", + "displayName": "4 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_17", + "displayName": "5 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_18", + "displayName": "6 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_19", + "displayName": "7 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_20", + "displayName": "8 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_21", + "displayName": "9 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_22", + "displayName": "10 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursfrom_23", + "displayName": "11 PM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto", + "displayName": "To (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_0", + "displayName": "12 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_1", + "displayName": "1 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_2", + "displayName": "2 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_3", + "displayName": "3 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_4", + "displayName": "4 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_5", + "displayName": "5 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_6", + "displayName": "6 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_7", + "displayName": "7 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_8", + "displayName": "8 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_9", + "displayName": "9 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_10", + "displayName": "10 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_11", + "displayName": "11 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_12", + "displayName": "12 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_13", + "displayName": "1 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_14", + "displayName": "2 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_15", + "displayName": "3 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_16", + "displayName": "4 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_17", + "displayName": "5 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_18", + "displayName": "6 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_19", + "displayName": "7 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_20", + "displayName": "8 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_21", + "displayName": "9 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_22", + "displayName": "10 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_workhoursto_23", + "displayName": "11 PM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worklowprioritylimit", + "displayName": "Low Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worklowpriorityunit", + "displayName": "Low Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worklowpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worklowpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worklowpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worknormalprioritylimit", + "displayName": "Normal Priority Limit: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worknormalpriorityunit", + "displayName": "Normal Priority Unit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worknormalpriorityunit_1", + "displayName": "Kbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worknormalpriorityunit_2", + "displayName": "Mbps", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxbandwidthv2_work_bits_worknormalpriorityunit_3", + "displayName": "Unlimited", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxcachesize", + "displayName": "Limit the BITS Peercache size", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxcachesize_bits_maxsize", + "displayName": "Percentage of disk space to be used for the BITS peercache: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxcontentage", + "displayName": "Limit the age of files in the BITS Peercache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxcontentage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxcontentage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxcontentage_bits_maxcontentagelist", + "displayName": "Number of days: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxdownloadtime", + "displayName": "Limit the maximum BITS job download time", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxdownloadtime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxdownloadtime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxdownloadtime_bits_maxdownloadseconds", + "displayName": "Active Job Timeout in seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxfilesperjob", + "displayName": "Limit the maximum number of files allowed in a BITS job", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxfilesperjob_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxfilesperjob_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxfilesperjob_bits_maxfilesperjoblist", + "displayName": "Maximum number of files allowed in a BITS job: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxjobspermachine", + "displayName": "Limit the maximum number of BITS jobs for this computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxjobspermachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxjobspermachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxjobspermachine_bits_maxjobspermachinelist", + "displayName": "Maximum number of BITS jobs for this computer: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxjobsperuser", + "displayName": "Limit the maximum number of BITS jobs for each user", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxjobsperuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxjobsperuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxjobsperuser_bits_maxjobsperuserlist", + "displayName": "Maximum number of BITS jobs for each user: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxrangesperfile", + "displayName": "Limit the maximum number of ranges that can be added to the file in a BITS job", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxrangesperfile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxrangesperfile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_bits_bits_maxrangesperfile_bits_maxrangesperfilelist", + "displayName": "Maximum number of ranges that can be added to the file in a BITS job: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ciphersuiteorder_sslciphersuiteorder", + "displayName": "SSL Cipher Suite Order", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ciphersuiteorder_sslciphersuiteorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ciphersuiteorder_sslciphersuiteorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ciphersuiteorder_sslciphersuiteorder_pol_sslciphersuiteorder", + "displayName": "SSL Cipher Suites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ciphersuiteorder_sslcurveorder", + "displayName": "ECC Curve Order", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ciphersuiteorder_sslcurveorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ciphersuiteorder_sslcurveorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ciphersuiteorder_sslcurveorder_sslcurveorderlist", + "displayName": "ECC Curve Order: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_com_appmgmt_com_searchforclsid_2", + "displayName": "Download missing COM components", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_com_appmgmt_com_searchforclsid_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_com_appmgmt_com_searchforclsid_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_forcedefaultlockscreen", + "displayName": "Force a specific default lock screen and logon image", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_forcedefaultlockscreen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_forcedefaultlockscreen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_forcedefaultlockscreen_lockscreenimage", + "displayName": "Path to lock screen image: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_forcedefaultlockscreen_lockscreenoverlaysdisabled", + "displayName": "Turn off fun facts, tips, tricks, and more on lock screen (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_forcedefaultlockscreen_lockscreenoverlaysdisabled_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_forcedefaultlockscreen_lockscreenoverlaysdisabled_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nochanginglockscreen", + "displayName": "Prevent changing lock screen and logon image", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nochanginglockscreen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nochanginglockscreen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nochangingstartmenubackground", + "displayName": "Prevent changing start menu background", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nochangingstartmenubackground_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nochangingstartmenubackground_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nolockscreen", + "displayName": "Do not display the lock screen", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nolockscreen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nolockscreen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_personalcolors", + "displayName": "Force a specific background and accent color", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_personalcolors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_personalcolors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_personalcolors_personalcolors_accent", + "displayName": "Accent color: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_personalcolors_personalcolors_background", + "displayName": "Start background color: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_startbackground", + "displayName": "Force a specific Start background", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_startbackground_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_startbackground_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_startbackground_startbackgroundspin", + "displayName": "Background ID: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_cpls_usedefaulttile", + "displayName": "Apply the default account picture to all users", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_cpls_usedefaulttile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_cpls_usedefaulttile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_allowdomaindelaylock", + "displayName": "Allow users to select when a password is required when resuming from connected standby", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_allowdomaindelaylock_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_allowdomaindelaylock_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_defaultcredentialprovider", + "displayName": "Assign a default credential provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_defaultcredentialprovider_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_defaultcredentialprovider_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_defaultcredentialprovider_defaultcredentialprovider_message", + "displayName": "Assign the following credential provider as the default credential provider: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_excludedcredentialproviders", + "displayName": "Exclude credential providers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_excludedcredentialproviders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_excludedcredentialproviders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credentialproviders_excludedcredentialproviders_excludedcredentialproviders_message", + "displayName": "Exclude the following credential providers: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefaultcredentials", + "displayName": "Allow delegating default credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefaultcredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefaultcredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefaultcredentials_allowdefaultcredentials_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefaultcredentials_concatenatedefaults_adc", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefaultcredentials_concatenatedefaults_adc_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefaultcredentials_concatenatedefaults_adc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefcredentialswhenntlmonly", + "displayName": "Allow delegating default credentials with NTLM-only server authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefcredentialswhenntlmonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefcredentialswhenntlmonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefcredentialswhenntlmonly_allowdefcredentialswhenntlmonly_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefcredentialswhenntlmonly_concatenatedefaults_adcn", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefcredentialswhenntlmonly_concatenatedefaults_adcn_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowdefcredentialswhenntlmonly_concatenatedefaults_adcn_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowencryptionoracle", + "displayName": "Encryption Oracle Remediation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowencryptionoracle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowencryptionoracle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowencryptionoracle_allowencryptionoracledrop", + "displayName": "Protection Level: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowencryptionoracle_allowencryptionoracledrop_0", + "displayName": "Force Updated Clients", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowencryptionoracle_allowencryptionoracledrop_1", + "displayName": "Mitigated", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowencryptionoracle_allowencryptionoracledrop_2", + "displayName": "Vulnerable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentials", + "displayName": "Allow delegating fresh credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentials_allowfreshcredentials_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentials_concatenatedefaults_afc", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentials_concatenatedefaults_afc_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentials_concatenatedefaults_afc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentialswhenntlmonly", + "displayName": "Allow delegating fresh credentials with NTLM-only server authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentialswhenntlmonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentialswhenntlmonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentialswhenntlmonly_allowfreshcredentialswhenntlmonly_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentialswhenntlmonly_concatenatedefaults_afcn", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentialswhenntlmonly_concatenatedefaults_afcn_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowfreshcredentialswhenntlmonly_concatenatedefaults_afcn_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentials", + "displayName": "Allow delegating saved credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentials_allowsavedcredentials_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentials_concatenatedefaults_asc", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentials_concatenatedefaults_asc_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentials_concatenatedefaults_asc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentialswhenntlmonly", + "displayName": "Allow delegating saved credentials with NTLM-only server authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentialswhenntlmonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentialswhenntlmonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentialswhenntlmonly_allowsavedcredentialswhenntlmonly_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentialswhenntlmonly_concatenatedefaults_ascn", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentialswhenntlmonly_concatenatedefaults_ascn_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_allowsavedcredentialswhenntlmonly_concatenatedefaults_ascn_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denydefaultcredentials", + "displayName": "Deny delegating default credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_denydefaultcredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denydefaultcredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denydefaultcredentials_concatenatedefaults_ddc", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_denydefaultcredentials_concatenatedefaults_ddc_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denydefaultcredentials_concatenatedefaults_ddc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denydefaultcredentials_denydefaultcredentials_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denyfreshcredentials", + "displayName": "Deny delegating fresh credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_denyfreshcredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denyfreshcredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denyfreshcredentials_concatenatedefaults_dfc", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_denyfreshcredentials_concatenatedefaults_dfc_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denyfreshcredentials_concatenatedefaults_dfc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denyfreshcredentials_denyfreshcredentials_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denysavedcredentials", + "displayName": "Deny delegating saved credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_denysavedcredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denysavedcredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denysavedcredentials_concatenatedefaults_dsc", + "displayName": "Concatenate OS defaults with input above (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_denysavedcredentials_concatenatedefaults_dsc_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denysavedcredentials_concatenatedefaults_dsc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_denysavedcredentials_denysavedcredentials_name", + "displayName": "Add servers to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_restrictedremoteadministration", + "displayName": "Restrict delegation of credentials to remote servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_restrictedremoteadministration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_restrictedremoteadministration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_restrictedremoteadministration_restrictedremoteadministrationdrop", + "displayName": "Use the following restricted mode: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credssp_restrictedremoteadministration_restrictedremoteadministrationdrop_3", + "displayName": "Restrict Credential Delegation", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_restrictedremoteadministration_restrictedremoteadministrationdrop_2", + "displayName": "Require Remote Credential Guard", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credssp_restrictedremoteadministration_restrictedremoteadministrationdrop_1", + "displayName": "Require Restricted Admin", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credui_enablesecurecredentialprompting", + "displayName": "Require trusted path for credential entry", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credui_enablesecurecredentialprompting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credui_enablesecurecredentialprompting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_credui_nolocalpasswordresetquestions", + "displayName": "Prevent the use of security questions for local accounts", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_credui_nolocalpasswordresetquestions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_credui_nolocalpasswordresetquestions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_datacollection_commercialidpolicy", + "displayName": "Configure the Commercial ID", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_datacollection_commercialidpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_datacollection_commercialidpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_datacollection_commercialidpolicy_commercialidvalue", + "displayName": "Commercial Id: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckallowlocallist", + "displayName": "Allow local activation security check exemptions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckallowlocallist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckallowlocallist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckexemptionlist", + "displayName": "Define Activation Security Check exemptions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckexemptionlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckexemptionlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckexemptionlist_dcom_lbl_actseccheckexemptionlist", + "displayName": "Add\\remove DCOM servers to the exemption list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckexemptionlist_dcom_lbl_actseccheckexemptionlist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dcom_dcomactivationsecuritycheckexemptionlist_dcom_lbl_actseccheckexemptionlist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_desktop_nodesktop", + "displayName": "Hide and disable all items on the desktop", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_desktop_nodesktop_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_desktop_nodesktop_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_devicecompat_deviceflags", + "displayName": "Device compatibility settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_devicecompat_deviceflags_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_devicecompat_deviceflags_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_devicecompat_drivershims", + "displayName": "Driver compatibility settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_devicecompat_drivershims_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_devicecompat_drivershims_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceguard_configcipolicy", + "displayName": "Deploy Windows Defender Application Control", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceguard_configcipolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceguard_configcipolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceguard_configcipolicy_configcipolicyfilepathtext", + "displayName": "Code Integrity Policy file path: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_allowadmininstall", + "displayName": "Allow administrators to override Device Installation Restriction policies", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_allowadmininstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_allowadmininstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_deniedpolicy_detailtext", + "displayName": "Display a custom message when installation is prevented by a policy setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_deniedpolicy_detailtext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_deniedpolicy_detailtext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_deniedpolicy_detailtext_deviceinstall_deniedpolicy_detailtext_text", + "displayName": "Detail Text (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_deniedpolicy_simpletext", + "displayName": "Display a custom message title when device installation is prevented by a policy setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_deniedpolicy_simpletext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_deniedpolicy_simpletext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_deniedpolicy_simpletext_deviceinstall_deniedpolicy_simpletext_text", + "displayName": "Main Text (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_installtimeout", + "displayName": "Configure device installation time-out", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_installtimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_installtimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_installtimeout_deviceinstall_installtimeout_time", + "displayName": "Device Installation Timeout (in seconds) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_policy_reboottime", + "displayName": "Time (in seconds) to force reboot when required for policy changes to take effect", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_policy_reboottime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_policy_reboottime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_policy_reboottime_deviceinstall_policy_reboottime_time", + "displayName": "Reboot Timeout (in seconds) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_removable_deny", + "displayName": "Prevent installation of removable devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_removable_deny_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_removable_deny_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_systemrestore", + "displayName": "Prevent creation of a system restore point during device activity that would normally prompt creation of a restore point", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_systemrestore_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_deviceinstall_systemrestore_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_driverinstall_classes_allowuser", + "displayName": "Allow non-administrators to install drivers for these device setup classes", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_driverinstall_classes_allowuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_driverinstall_classes_allowuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_deviceinstallation_driverinstall_classes_allowuser_driverinstall_classes_allowuser_list", + "displayName": "Allow Users to install driver packages for these classes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_deviceinstall_balloontips", + "displayName": "Turn off \"Found New Hardware\" balloons during device installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_deviceinstall_balloontips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_deviceinstall_balloontips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_driversearchplaces_searchorderconfiguration", + "displayName": "Specify search order for device driver source locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_driversearchplaces_searchorderconfiguration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_driversearchplaces_searchorderconfiguration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_driversearchplaces_searchorderconfiguration_driversearchplaces_searchorderconfiguration_dropdown", + "displayName": "Select search order: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_driversearchplaces_searchorderconfiguration_driversearchplaces_searchorderconfiguration_dropdown_1", + "displayName": "Always search Windows Update", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_driversearchplaces_searchorderconfiguration_driversearchplaces_searchorderconfiguration_dropdown_2", + "displayName": "Search Windows Update only if needed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_devicesetup_driversearchplaces_searchorderconfiguration_driversearchplaces_searchorderconfiguration_dropdown_0", + "displayName": "Do not search Windows Update", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dfs_dfsdiscoverdc", + "displayName": "Configure how often a DFS client discovers domain controllers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dfs_dfsdiscoverdc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dfs_dfsdiscoverdc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dfs_dfsdiscoverdc_dfsdiscoverdialog", + "displayName": "Time in minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_digitallocker_digitalx_diableapplication_titletext_2", + "displayName": "Do not allow Digital Locker to run", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_digitallocker_digitalx_diableapplication_titletext_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_digitallocker_digitalx_diableapplication_titletext_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskdiagnostic_dfdalertpolicy", + "displayName": "Disk Diagnostic: Configure custom alert text", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskdiagnostic_dfdalertpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskdiagnostic_dfdalertpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskdiagnostic_dfdalertpolicy_dfdalertpolicytitle", + "displayName": "Custom alert text (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskdiagnostic_wdiscenarioexecutionpolicy", + "displayName": "Disk Diagnostic: Configure execution level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskdiagnostic_wdiscenarioexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskdiagnostic_wdiscenarioexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_bootresumepolicy", + "displayName": "Turn off boot and resume optimizations", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_bootresumepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_bootresumepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_cachepowermodepolicy", + "displayName": "Turn off cache power mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_cachepowermodepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_cachepowermodepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_featureoffpolicy", + "displayName": "Turn off non-volatile cache feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_featureoffpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_featureoffpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_solidstatepolicy", + "displayName": "Turn off solid state mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_solidstatepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_disknvcache_solidstatepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_enable", + "displayName": "Enable disk quotas", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_enable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_enable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_enforce", + "displayName": "Enforce disk quota limit", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_enforce_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_enforce_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit", + "displayName": "Specify default quota limit and warning level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_limitunits", + "displayName": "Units (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_limitunits_1", + "displayName": "KB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_limitunits_2", + "displayName": "MB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_limitunits_3", + "displayName": "GB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_limitunits_4", + "displayName": "TB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_limitunits_5", + "displayName": "PB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_limitunits_6", + "displayName": "EB", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_limitvalue", + "displayName": "Value (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_thresholdunits", + "displayName": "Units (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_thresholdunits_1", + "displayName": "KB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_thresholdunits_2", + "displayName": "MB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_thresholdunits_3", + "displayName": "GB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_thresholdunits_4", + "displayName": "TB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_thresholdunits_5", + "displayName": "PB", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_thresholdunits_6", + "displayName": "EB", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_limit_dq_thresholdvalue", + "displayName": "Value (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_logeventoverlimit", + "displayName": "Log event when quota limit is exceeded", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_logeventoverlimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_logeventoverlimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_logeventoverthreshold", + "displayName": "Log event when quota warning level is exceeded", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_logeventoverthreshold_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_logeventoverthreshold_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_removablemedia", + "displayName": "Apply policy to removable media", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_removablemedia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_diskquota_dq_removablemedia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_distributedlinktracking_dlt_allowdomainmode", + "displayName": "Allow Distributed Link Tracking clients to use domain resources", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_distributedlinktracking_dlt_allowdomainmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_distributedlinktracking_dlt_allowdomainmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_allowfqdnnetbiosqueries", + "displayName": "Allow NetBT queries for fully qualified domain names", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_allowfqdnnetbiosqueries_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_allowfqdnnetbiosqueries_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_appendtomultilabelname", + "displayName": "Allow DNS suffix appending to unqualified multi-label name queries", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_appendtomultilabelname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_appendtomultilabelname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_domain", + "displayName": "Connection-specific DNS suffix", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_domain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_domain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_domain_dns_domainlabel", + "displayName": "DNS suffix: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_domainnamedevolutionlevel", + "displayName": "Primary DNS suffix devolution level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_domainnamedevolutionlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_domainnamedevolutionlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_domainnamedevolutionlevel_dns_domainnamedevolutionlevellabel", + "displayName": "Set the primary DNS suffix devolution level (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_idnencoding", + "displayName": "Turn off IDN encoding", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_idnencoding_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_idnencoding_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_idnmapping", + "displayName": "IDN mapping", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_idnmapping_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_idnmapping_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_nameserver", + "displayName": "DNS servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_nameserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_nameserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_nameserver_dns_nameserverlabel", + "displayName": "IP addresses: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_preferlocalresponsesoverlowerorderdns", + "displayName": "Prefer link local responses over DNS when received over a network with higher precedence", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_preferlocalresponsesoverlowerorderdns_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_preferlocalresponsesoverlowerorderdns_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_primarydnssuffix", + "displayName": "Primary DNS suffix", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_primarydnssuffix_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_primarydnssuffix_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_primarydnssuffix_dns_primarydnssuffixbox", + "displayName": "Enter a primary DNS suffix: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registeradaptername", + "displayName": "Register DNS records with connection-specific DNS suffix", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registeradaptername_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registeradaptername_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registerreverselookup", + "displayName": "Register PTR records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registerreverselookup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registerreverselookup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registerreverselookup_dns_registerreverselookup_box", + "displayName": "Register PTR records: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registerreverselookup_dns_registerreverselookup_box_2", + "displayName": "Register only if A record registration succeeds", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registerreverselookup_dns_registerreverselookup_box_1", + "displayName": "Register", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registerreverselookup_dns_registerreverselookup_box_0", + "displayName": "Do not register", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationenabled", + "displayName": "Dynamic update", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationoverwritesinconflict", + "displayName": "Replace addresses in conflicts", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationoverwritesinconflict_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationoverwritesinconflict_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationrefreshinterval", + "displayName": "Registration refresh interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationrefreshinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationrefreshinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationrefreshinterval_dns_registrationrefreshintervallabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationttl", + "displayName": "TTL value for A and PTR records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationttl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationttl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_registrationttl_dns_registrationttllabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_searchlist", + "displayName": "DNS suffix search list", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_searchlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_searchlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_searchlist_dns_searchlistlabel", + "displayName": "DNS Suffixes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_smartmultihomednameresolution", + "displayName": "Turn off smart multi-homed name resolution", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_smartmultihomednameresolution_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_smartmultihomednameresolution_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_smartprotocolreorder", + "displayName": "Turn off smart protocol reordering", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_smartprotocolreorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_smartprotocolreorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatesecuritylevel", + "displayName": "Update security level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatesecuritylevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatesecuritylevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatesecuritylevel_dns_updatesecuritylevel_box", + "displayName": "Update security level: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatesecuritylevel_dns_updatesecuritylevel_box_256", + "displayName": "Only secure", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatesecuritylevel_dns_updatesecuritylevel_box_16", + "displayName": "Only unsecure", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatesecuritylevel_dns_updatesecuritylevel_box_0", + "displayName": "Unsecure followed by secure", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatetopleveldomainzones", + "displayName": "Update top level domain zones", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatetopleveldomainzones_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_updatetopleveldomainzones_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_usedomainnamedevolution", + "displayName": "Primary DNS suffix devolution", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_usedomainnamedevolution_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_dns_usedomainnamedevolution_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_turn_off_multicast", + "displayName": "Turn off multicast name resolution", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_turn_off_multicast_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dnsclient_turn_off_multicast_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_2", + "displayName": "Specify a default color", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_2_dwmdefaultcolorizationcoloralpha", + "displayName": "Alpha (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_2_dwmdefaultcolorizationcolorblue", + "displayName": "Blue (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_2_dwmdefaultcolorizationcolorgreen", + "displayName": "Green (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_2_dwmdefaultcolorizationcolorred", + "displayName": "Red (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdisallowanimations_2", + "displayName": "Do not allow window animations", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdisallowanimations_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdisallowanimations_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdisallowcolorizationcolorchanges_2", + "displayName": "Do not allow color changes", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdisallowcolorizationcolorchanges_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_dwm_dwmdisallowcolorizationcolorchanges_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_encryptfilesonmove_noencryptonmove", + "displayName": "Do not automatically encrypt files moved to encrypted folders", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_encryptfilesonmove_noencryptonmove_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_encryptfilesonmove_noencryptonmove_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_approvedenstordevices", + "displayName": "Configure list of Enhanced Storage devices usable on your computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_approvedenstordevices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_approvedenstordevices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_approvedenstordevices_approvedenstordevices_list", + "displayName": "Usable Enhanced Storage Devices: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_approvedsilos", + "displayName": "Configure list of IEEE 1667 silos usable on your computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_approvedsilos_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_approvedsilos_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_approvedsilos_approvedsilos_list", + "displayName": "Usable IEEE 1667 Silo Type Identifiers: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_disablepasswordauthentication", + "displayName": "Do not allow password authentication of Enhanced Storage devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_disablepasswordauthentication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_disablepasswordauthentication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_disallowlegacydiskdevices", + "displayName": "Do not allow non-Enhanced Storage removable devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_disallowlegacydiskdevices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_disallowlegacydiskdevices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_lockdeviceonmachinelock", + "displayName": "Lock Enhanced Storage when the computer is locked", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_lockdeviceonmachinelock_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_lockdeviceonmachinelock_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_roothubconnectedenstordevices", + "displayName": "Allow only USB root hub connected Enhanced Storage devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_roothubconnectedenstordevices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_enhancedstorage_roothubconnectedenstordevices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef", + "displayName": "Default application reporting settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornonedef_list", + "displayName": "Default: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornonedef_list_1", + "displayName": "Report all application errors", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornonedef_list_0", + "displayName": "Do not report any application errors", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornoneincms_chk", + "displayName": "Report all errors in Microsoft applications. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornoneincms_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornoneincms_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornonewincomp_chk", + "displayName": "Report all errors in Windows components. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornonewincomp_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornonedef_pch_allornonewincomp_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornoneex", + "displayName": "List of applications to never report errors for", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornoneex_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornoneex_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornoneex_pch_allornoneex_list", + "displayName": "Exclude errors for applications on this list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornoneinc", + "displayName": "List of applications to always report errors for", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornoneinc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornoneinc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_allornoneinc_pch_allornoneinc_list", + "displayName": "Report errors for applications on this list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport", + "displayName": "Configure Error Reporting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_companytext_edit", + "displayName": "Replace instances of the word 'Microsoft' with: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_dumppath_edit", + "displayName": "Corporate upload file path: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_forceq_chk", + "displayName": "Force queue mode for application errors (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_forceq_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_forceq_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_noexternalurl_chk", + "displayName": "Do not display links to any Microsoft provided 'more information' web sites. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_noexternalurl_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_noexternalurl_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_nofilecollect_chk", + "displayName": "Do not collect additional files (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_nofilecollect_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_nofilecollect_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_noleveltwo_chk", + "displayName": "Do not collect additional machine data (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_noleveltwo_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_configurereport_pch_noleveltwo_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_reportoperatingsystemfaults", + "displayName": "Report operating system errors", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_reportoperatingsystemfaults_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_pch_reportoperatingsystemfaults_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werarchive_2", + "displayName": "Configure Report Archive", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werarchive_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werarchive_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werarchive_2_werarchivebehavior", + "displayName": "Archive behavior: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werarchive_2_werarchivebehavior_2", + "displayName": "Store all", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werarchive_2_werarchivebehavior_1", + "displayName": "Store parameters only", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werarchive_2_wermaxarchivecount", + "displayName": "Maximum number of reports to store: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werautoapproveosdumps_2", + "displayName": "Automatically send memory dumps for OS-generated error reports", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werautoapproveosdumps_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werautoapproveosdumps_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypassdatathrottling_2", + "displayName": "Do not throttle additional data", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypassdatathrottling_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypassdatathrottling_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypassnetworkcostthrottling_2", + "displayName": "Send data when on connected to a restricted/costed network", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypassnetworkcostthrottling_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypassnetworkcostthrottling_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypasspowerthrottling_2", + "displayName": "Send additional data when on battery power", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypasspowerthrottling_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werbypasspowerthrottling_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer", + "displayName": "Configure Corporate Windows Error Reporting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_wercercorporateportnumber", + "displayName": "Server port: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_wercerserver", + "displayName": "Corporate server name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_werceruploadonfreenetworksonly", + "displayName": "Only upload on free networks (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_werceruploadonfreenetworksonly_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_werceruploadonfreenetworksonly_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_wercerusessl", + "displayName": "Connect using SSL (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_wercerusessl_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wercer_wercerusessl_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werconsentoverride_2", + "displayName": "Ignore custom consent settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werconsentoverride_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werconsentoverride_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_2", + "displayName": "Configure Default consent", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_2_werconsent", + "displayName": "Consent level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_2_werconsent_1", + "displayName": "Always ask before sending data", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_2_werconsent_2", + "displayName": "Send parameters", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_2_werconsent_3", + "displayName": "Send parameters and safe additional data", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_2_werconsent_4", + "displayName": "Send all data", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werexlusion_2", + "displayName": "List of applications to be excluded", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werexlusion_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werexlusion_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werexlusion_2_werexlusionlist", + "displayName": "List of applications to be excluded (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wernologging_2", + "displayName": "Disable logging", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wernologging_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_wernologging_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2", + "displayName": "Configure Report Queue", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_wermaxqueuecount", + "displayName": "Maximum number of reports to queue: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_wermaxqueuesize", + "displayName": "Maximum size of the queue (MB): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_werminfreediskspace", + "displayName": "Minimum free disk space (MB): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_werqueuebehavior", + "displayName": "Queuing behavior: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_werqueuebehavior_0", + "displayName": "Default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_werqueuebehavior_1", + "displayName": "Always queue", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_werqueuebehavior_2", + "displayName": "Always queue for administrator", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_errorreporting_werqueue_2_werupdatecheck", + "displayName": "Number of days between solution check reminders: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventforwarding_forwarderresourceusage", + "displayName": "Configure forwarder resource usage", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventforwarding_forwarderresourceusage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventforwarding_forwarderresourceusage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventforwarding_forwarderresourceusage_maxforwardingrate", + "displayName": "The maximum forwarding rate ( events/sec ) allowed for the forwarder: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventforwarding_subscriptionmanager", + "displayName": "Configure target Subscription Manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventforwarding_subscriptionmanager_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventforwarding_subscriptionmanager_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventforwarding_subscriptionmanager_subscriptionmanager_listbox", + "displayName": "SubscriptionManagers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_1", + "displayName": "Back up log automatically when full", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_2", + "displayName": "Back up log automatically when full", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_3", + "displayName": "Back up log automatically when full", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_4", + "displayName": "Back up log automatically when full", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_autobackup_4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_1", + "displayName": "Configure log access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_1_channel_log_filelogaccess", + "displayName": "Log Access (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_2", + "displayName": "Configure log access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_2_channel_log_filelogaccess", + "displayName": "Log Access (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_3", + "displayName": "Configure log access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_3_channel_log_filelogaccess", + "displayName": "Log Access (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_4", + "displayName": "Configure log access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_4_channel_log_filelogaccess", + "displayName": "Log Access (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_5", + "displayName": "Configure log access (legacy)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_5_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_5_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_5_channel_log_filelogaccess", + "displayName": "Log Access (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_6", + "displayName": "Configure log access (legacy)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_6_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_6_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_6_channel_log_filelogaccess", + "displayName": "Log Access (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_7", + "displayName": "Configure log access (legacy)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_7_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_7_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_7_channel_log_filelogaccess", + "displayName": "Log Access (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_8", + "displayName": "Configure log access (legacy)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_8_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_8_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_filelogaccess_8_channel_log_filelogaccess", + "displayName": "Log Access (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_2", + "displayName": "Control Event Log behavior when the log file reaches its maximum size", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_3", + "displayName": "Control Event Log behavior when the log file reaches its maximum size", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_4", + "displayName": "Control Event Log behavior when the log file reaches its maximum size", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_log_retention_4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logenabled", + "displayName": "Turn on logging", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_1", + "displayName": "Control the location of the log file", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_1_channel_logfilepath", + "displayName": "Log File Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_2", + "displayName": "Control the location of the log file", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_2_channel_logfilepath", + "displayName": "Log File Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_3", + "displayName": "Control the location of the log file", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_3_channel_logfilepath", + "displayName": "Log File Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_4", + "displayName": "Control the location of the log file", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logfilepath_4_channel_logfilepath", + "displayName": "Log File Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logmaxsize_3", + "displayName": "Specify the maximum log file size (KB)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logmaxsize_3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logmaxsize_3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlog_channel_logmaxsize_3_channel_logmaxsize", + "displayName": "Maximum Log Size (KB) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlogging_enableprotectedeventlogging", + "displayName": "Enable Protected Event Logging", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventlogging_enableprotectedeventlogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlogging_enableprotectedeventlogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventlogging_enableprotectedeventlogging_encryptioncertificate", + "displayName": "\r\nProvide an encryption certificate to be used by Protected Event Logging. You may provide either:\r\n\r\n - The content of a base-64 encoded X.509 certificate\r\n - The thumbprint of a certificate that can be found in the Local Machine certificate store (usually deployed by PKI infrastructure)\r\n - The full path to a certificate (can be local, or a remote share)\r\n - The path to a directory containing a certificate or certificates (can be local, or a remote share)\r\n - The subject name of a certificate that can be found in the Local Machine certificate store (usually deployed by PKI infrastructure)\r\n\r\nThe resulting certificate must have 'Document Encryption' as an enhanced key usage (1.3.6.1.4.1.311.80.1), as well as either Data Encipherment or Key Encipherment key usages enabled.\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionprogram", + "displayName": "Events.asp program", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionprogram_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionprogram_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionprogram_eventviewer_redirectionprogram", + "displayName": "Events.asp program (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionprogramcommandlineparameters", + "displayName": "Events.asp program command line parameters", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionprogramcommandlineparameters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionprogramcommandlineparameters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionprogramcommandlineparameters_eventviewer_redirectionprogramcommandlineparameters", + "displayName": "Events.asp program command line parameters (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionurl", + "displayName": "Events.asp URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_eventviewer_eventviewer_redirectionurl_eventviewer_redirectionurl", + "displayName": "Events.asp URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_explorer_admininfourl", + "displayName": "Set a support web page link", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_explorer_admininfourl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_explorer_admininfourl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_explorer_admininfourl_admininfourl_textbox", + "displayName": "Support Web page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_explorer_disableroamedprofileinit", + "displayName": "Do not reinitialize a pre-existing roamed user profile when it is loaded on a machine for the first time", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_explorer_disableroamedprofileinit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_explorer_disableroamedprofileinit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_hibernate", + "displayName": "Allow hibernate (S4) when starting from a Windows To Go workspace", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_hibernate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_hibernate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_launcher", + "displayName": "Windows To Go Default Startup Options", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_launcher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_launcher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_sleep", + "displayName": "Disallow standby sleep states (S1-S3) when starting from a Windows to Go workspace", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_sleep_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_externalboot_portableoperatingsystem_sleep_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filerecovery_wdiscenarioexecutionpolicy", + "displayName": "Configure Corrupted File Recovery behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filerecovery_wdiscenarioexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filerecovery_wdiscenarioexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filerecovery_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filerecovery_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel_1", + "displayName": "Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filerecovery_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel_2", + "displayName": "Regular", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filerecovery_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel_3", + "displayName": "Silent", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_fileservervssprovider_pol_encryptprotocol", + "displayName": "Allow or Disallow use of encryption to protect the RPC protocol messages between File Share Shadow Copy Provider running on application server and File Share Shadow Copy Agent running on the file servers.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_fileservervssprovider_pol_encryptprotocol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_fileservervssprovider_pol_encryptprotocol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_disablecompression", + "displayName": "Do not allow compression on all NTFS volumes", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_disablecompression_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_disablecompression_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_disabledeletenotification", + "displayName": "Disable delete notifications on all volumes", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_disabledeletenotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_disabledeletenotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_disableencryption", + "displayName": "Do not allow encryption on all NTFS volumes", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_disableencryption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_disableencryption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_enablepagefileencryption", + "displayName": "Enable NTFS pagefile encryption", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_enablepagefileencryption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_enablepagefileencryption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_longpathsenabled", + "displayName": "Enable Win32 long paths", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_longpathsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_longpathsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_shortnamecreationsettings", + "displayName": "Short name creation options", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_shortnamecreationsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_shortnamecreationsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_shortnamecreationsettings_shortnamecreationsetting_levels", + "displayName": "Short name creation options (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_shortnamecreationsettings_shortnamecreationsetting_levels_0", + "displayName": "Enable on all volumes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_shortnamecreationsettings_shortnamecreationsetting_levels_1", + "displayName": "Disable on all volumes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_shortnamecreationsettings_shortnamecreationsetting_levels_2", + "displayName": "Enable / disable on a per volume basis", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_shortnamecreationsettings_shortnamecreationsetting_levels_3", + "displayName": "Disable on all data volumes", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation", + "displayName": "Selectively allow the evaluation of a symbolic link", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassl2l", + "displayName": "Local Link to Local Target (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassl2l_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassl2l_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassl2r", + "displayName": "Local Link to a Remote Target (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassl2r_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassl2r_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassr2l", + "displayName": "Remote Link to Local Target (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassr2l_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassr2l_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassr2r", + "displayName": "Remote Link to Remote Target (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassr2r_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_symlinkevaluation_symlinkclassr2r_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_txfdeprecatedfunctionality", + "displayName": "Enable / disable TXF deprecated features", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_filesys_txfdeprecatedfunctionality_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_filesys_txfdeprecatedfunctionality_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_folderredirection_localizexprelativepaths_2", + "displayName": "Use localized subfolder names when redirecting Start Menu and My Documents", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_folderredirection_localizexprelativepaths_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_folderredirection_localizexprelativepaths_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_folderredirection_primarycomputer_fr_2", + "displayName": "Redirect folders on primary computers only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_folderredirection_primarycomputer_fr_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_folderredirection_primarycomputer_fr_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_fthsvc_wdiscenarioexecutionpolicy", + "displayName": "Configure Scenario Execution Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_fthsvc_wdiscenarioexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_fthsvc_wdiscenarioexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_blockuserinputmethodsforsignin", + "displayName": "Disallow copying of user input methods to the system account for sign-in", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_blockuserinputmethodsforsignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_blockuserinputmethodsforsignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_customlocalesnoselect_2", + "displayName": "Disallow selection of Custom Locales", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_customlocalesnoselect_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_customlocalesnoselect_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_implicitdatacollectionoff_2", + "displayName": "Turn off automatic learning", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_implicitdatacollectionoff_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_implicitdatacollectionoff_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_localesystemrestrict", + "displayName": "Restrict system locales", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_localesystemrestrict_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_localesystemrestrict_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_localesystemrestrict_allowablesystemlocaletaglist", + "displayName": "System Locales (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_localeuserrestrict_2", + "displayName": "Restrict user locales", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_localeuserrestrict_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_localeuserrestrict_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_localeuserrestrict_2_allowableuserlocaletaglist", + "displayName": "User Locales (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage", + "displayName": "Restricts the UI language Windows uses for all logged users", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect", + "displayName": "Restrict users to the following language: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_en-us", + "displayName": "English", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_ja-jp", + "displayName": "Japanese", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_ko-kr", + "displayName": "Korean", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_de-de", + "displayName": "German", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_zh-cn", + "displayName": "Simplified Chinese", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_zh-tw", + "displayName": "Traditional Chinese (Taiwan)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_fr-fr", + "displayName": "French", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_es-es", + "displayName": "Spanish", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_it-it", + "displayName": "Italian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_sv-se", + "displayName": "Swedish", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_nl-nl", + "displayName": "Dutch", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_pt-br", + "displayName": "Portuguese (Brazil)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_fi-fi", + "displayName": "Finnish", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_nb-no", + "displayName": "Norwegian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_da-dk", + "displayName": "Danish", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_hu-hu", + "displayName": "Hungarian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_pl-pl", + "displayName": "Polish", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_ru-ru", + "displayName": "Russian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_cs-cz", + "displayName": "Czech", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_el-gr", + "displayName": "Greek", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_pt-pt", + "displayName": "Portuguese (Portugal)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_tr-tr", + "displayName": "Turkish", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_ar-sa", + "displayName": "Arabic", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_he-il", + "displayName": "Hebrew", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_sk-sk", + "displayName": "Slovak", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_sl-si", + "displayName": "Slovenian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_ro-ro", + "displayName": "Romanian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_hr-hr", + "displayName": "Croatian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_bg-bg", + "displayName": "Bulgarian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_et-ee", + "displayName": "Estonian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_lt-lt", + "displayName": "Lithuanian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_lv-lv", + "displayName": "Latvian", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_th-th", + "displayName": "Thai", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_zh-hk", + "displayName": "Traditional Chinese (Hong Kong)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_sr-latn-cs", + "displayName": "Serbian (Latin)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_lockmachineuilanguage_uilangselect_uk-ua", + "displayName": "Ukrainian", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_preventgeoidchange_2", + "displayName": "Disallow changing of geographic location", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_preventgeoidchange_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_preventgeoidchange_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_preventuseroverrides_2", + "displayName": "Disallow user override of locale settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_globalization_preventuseroverrides_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_globalization_preventuseroverrides_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_allowx-forestpolicy-and-rup", + "displayName": "Allow cross-forest user policy and roaming user profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_allowx-forestpolicy-and-rup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_allowx-forestpolicy-and-rup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_corpconnsyncwaittime", + "displayName": "Specify workplace connectivity wait time for policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_corpconnsyncwaittime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_corpconnsyncwaittime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_corpconnsyncwaittime_corpconnsyncwaittime_seconds", + "displayName": "Amount of time to wait (in seconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt", + "displayName": "Configure software Installation policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt_cse_nochanges1", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt_cse_nochanges1_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt_cse_nochanges1_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt_cse_slowlink1", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt_cse_slowlink1_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_appmgmt_cse_slowlink1_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota", + "displayName": "Configure disk quota policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_nobackground2", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_nobackground2_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_nobackground2_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_nochanges2", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_nochanges2_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_nochanges2_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_slowlink2", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_slowlink2_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_diskquota_cse_slowlink2_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery", + "displayName": "Configure EFS recovery policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_nobackground3", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_nobackground3_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_nobackground3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_nochanges3", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_nochanges3_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_nochanges3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_slowlink3", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_slowlink3_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_efsrecovery_cse_slowlink3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection", + "displayName": "Configure folder redirection policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection_cse_nochanges4", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection_cse_nochanges4_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection_cse_nochanges4_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection_cse_slowlink4", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection_cse_slowlink4_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_folderredirection_cse_slowlink4_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem", + "displayName": "Configure Internet Explorer Maintenance policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_nobackground5", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_nobackground5_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_nobackground5_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_nochanges5", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_nochanges5_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_nochanges5_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_slowlink5", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_slowlink5_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_iem_cse_slowlink5_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity", + "displayName": "Configure IP security policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_nobackground6", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_nobackground6_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_nobackground6_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_nochanges6", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_nochanges6_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_nochanges6_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_slowlink6", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_slowlink6_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_ipsecurity_cse_slowlink6_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry", + "displayName": "Configure registry policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry_cse_nobackground10", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry_cse_nobackground10_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry_cse_nobackground10_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry_cse_nochanges10", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry_cse_nochanges10_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_registry_cse_nochanges10_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts", + "displayName": "Configure scripts policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_nobackground7", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_nobackground7_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_nobackground7_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_nochanges7", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_nochanges7_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_nochanges7_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_slowlink7", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_slowlink7_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_scripts_cse_slowlink7_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security", + "displayName": "Configure security policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security_cse_nobackground11", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security_cse_nobackground11_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security_cse_nobackground11_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security_cse_nochanges11", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security_cse_nochanges11_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_security_cse_nochanges11_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired", + "displayName": "Configure wired policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_nobackground8", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_nobackground8_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_nobackground8_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_nochanges8", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_nochanges8_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_nochanges8_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_slowlink8", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_slowlink8_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wired_cse_slowlink8_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless", + "displayName": "Configure wireless policy processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_nobackground9", + "displayName": "Do not apply during periodic background processing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_nobackground9_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_nobackground9_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_nochanges9", + "displayName": "Process even if the Group Policy objects have not changed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_nochanges9_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_nochanges9_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_slowlink9", + "displayName": "Allow processing across a slow network connection (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_slowlink9_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_cse_wireless_cse_slowlink9_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_denyrsoptointeractiveuser_2", + "displayName": "Determine if interactive users can generate Resultant Set of Policy data", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_denyrsoptointeractiveuser_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_denyrsoptointeractiveuser_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disableaoacprocessing", + "displayName": "Turn off Group Policy Client Service AOAC optimization", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disableaoacprocessing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disableaoacprocessing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disablebackgroundpolicy", + "displayName": "Turn off background refresh of Group Policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disablebackgroundpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disablebackgroundpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disablelgpoprocessing", + "displayName": "Turn off Local Group Policy Objects processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disablelgpoprocessing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disablelgpoprocessing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disableusersfrommachgp", + "displayName": "Remove users' ability to invoke machine policy refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disableusersfrommachgp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_disableusersfrommachgp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablecdp", + "displayName": "Continue experiences on this device", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablecdp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablecdp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimization", + "displayName": "Configure Group Policy Caching", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimization_syncmodenodcthreshold1", + "displayName": "Timeout value: [number field] milliseconds (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimization_syncmodeslowlinkthreshold1", + "displayName": "Slow link value:[number field] milliseconds (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimizationonserversku", + "displayName": "Enable Group Policy Caching for Servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimizationonserversku_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimizationonserversku_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimizationonserversku_syncmodenodcthreshold1", + "displayName": "Timeout value: [number field] milliseconds (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablelogonoptimizationonserversku_syncmodeslowlinkthreshold1", + "displayName": "Slow link value:[number field] milliseconds (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablemmx", + "displayName": "Phone-PC linking on this device", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablemmx_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_enablemmx_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_fontmitigation", + "displayName": "Untrusted Font Blocking", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_fontmitigation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_fontmitigation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_fontmitigation_fontmitigation_dl", + "displayName": "Mitigation Options (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_fontmitigation_fontmitigation_dl_1000000000000", + "displayName": "Block untrusted fonts and log events", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_fontmitigation_fontmitigation_dl_2000000000000", + "displayName": "Do not block untrusted fonts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_fontmitigation_fontmitigation_dl_3000000000000", + "displayName": "Log events without blocking untrusted fonts", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_2", + "displayName": "Configure Group Policy slow link detection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_2_cse_3g_default_to_slowlink_computer", + "displayName": "Always treat WWAN connections as a slow link (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_2_cse_3g_default_to_slowlink_computer_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_2_cse_3g_default_to_slowlink_computer_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_2_transferrateop2", + "displayName": "Connection speed (Kbps): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrate", + "displayName": "Set Group Policy refresh interval for computers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrate_gprefreshrate1", + "displayName": "Minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrate_gprefreshrateoffset1", + "displayName": "Minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshratedc", + "displayName": "Set Group Policy refresh interval for domain controllers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshratedc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshratedc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshratedc_gprefreshrate2", + "displayName": "Minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshratedc_gprefreshrateoffset2", + "displayName": "Minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_logonscriptdelay", + "displayName": "Configure Logon Script Delay", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_logonscriptdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_logonscriptdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_logonscriptdelay_asyncscriptdelay1", + "displayName": "minute: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_onlyuselocaladminfiles", + "displayName": "Always use local ADM files for Group Policy Object Editor", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_onlyuselocaladminfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_onlyuselocaladminfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions", + "displayName": "Process Mitigation Options", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_processmitigationoptionslist", + "displayName": "Process Mitigation Options (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_processmitigationoptionslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_processmitigationoptionslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_resetdfsclientinfoduringrefreshpolicy", + "displayName": "Enable AD/DFS domain controller synchronization during policy refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_resetdfsclientinfoduringrefreshpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_resetdfsclientinfoduringrefreshpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_rsoplogging", + "displayName": "Turn off Resultant Set of Policy logging", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_rsoplogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_rsoplogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_slowlinkdefaultfordirectaccess", + "displayName": "Configure Direct Access connections as a fast network connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_slowlinkdefaultfordirectaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_slowlinkdefaultfordirectaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_slowlinkdefaulttoasync", + "displayName": "Change Group Policy processing to run asynchronously when a slow network connection is detected.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_slowlinkdefaulttoasync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_slowlinkdefaulttoasync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_syncwaittime", + "displayName": "Specify startup policy processing wait time", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_syncwaittime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_syncwaittime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_syncwaittime_syncwaittime_minutes", + "displayName": "Amount of time to wait (in seconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_userpolicymode", + "displayName": "Configure user Group Policy loopback processing mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_userpolicymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_userpolicymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_userpolicymode_userpolicymodeop", + "displayName": "Mode: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_userpolicymode_userpolicymodeop_1", + "displayName": "Merge", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_grouppolicy_userpolicymode_userpolicymodeop_2", + "displayName": "Replace", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_help_disablehhdep", + "displayName": "Turn off Data Execution Prevention for HTML Help Executible", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_help_disablehhdep_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_help_disablehhdep_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_help_helpqualifiedrootdir_comp", + "displayName": "Restrict potentially unsafe HTML Help functions to specified folders", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_help_helpqualifiedrootdir_comp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_help_helpqualifiedrootdir_comp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_help_helpqualifiedrootdir_comp_helpqualifiedrootdir_edit", + "displayName": "Enter folder names separated by semi-colons: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_help_restrictrunfromhelp_comp", + "displayName": "Restrict these programs from being launched from Help", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_help_restrictrunfromhelp_comp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_help_restrictrunfromhelp_comp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_help_restrictrunfromhelp_comp_restrictrunfromhelp_edit", + "displayName": "Enter executables separated by commas: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_helpandsupport_activehelp", + "displayName": "Turn off Active Help", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_helpandsupport_activehelp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_helpandsupport_activehelp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_hotspotauth_hotspotauth_enable", + "displayName": "Enable Hotspot Authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_hotspotauth_hotspotauth_enable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_hotspotauth_hotspotauth_enable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_ceipenable", + "displayName": "Turn off Windows Customer Experience Improvement Program", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_ceipenable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_ceipenable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_certmgr_disableautorootupdates", + "displayName": "Turn off Automatic Root Certificates Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_certmgr_disableautorootupdates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_certmgr_disableautorootupdates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_driversearchplaces_dontsearchwindowsupdate", + "displayName": "Turn off Windows Update device driver searching", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_driversearchplaces_dontsearchwindowsupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_driversearchplaces_dontsearchwindowsupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_eventviewer_disablelinks", + "displayName": "Turn off Event Viewer \"Events.asp\" links", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_eventviewer_disablelinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_eventviewer_disablelinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_hss_headlinespolicy", + "displayName": "Turn off Help and Support Center \"Did you know?\" content", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_hss_headlinespolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_hss_headlinespolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_hss_kbsearchpolicy", + "displayName": "Turn off Help and Support Center Microsoft Knowledge Base search", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_hss_kbsearchpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_hss_kbsearchpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_internetmanagement_restrictcommunication_2", + "displayName": "Restrict Internet communication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_internetmanagement_restrictcommunication_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_internetmanagement_restrictcommunication_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_nc_exitonisp", + "displayName": "Turn off Internet Connection Wizard if URL connection is referring to Microsoft.com", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_nc_exitonisp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_nc_exitonisp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_nc_noregistration", + "displayName": "Turn off Registration if URL connection is referring to Microsoft.com", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_nc_noregistration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_nc_noregistration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_pch_donotreport", + "displayName": "Turn off Windows Error Reporting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_pch_donotreport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_pch_donotreport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_removewindowsupdate_icm", + "displayName": "Turn off access to all Windows Update features", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_removewindowsupdate_icm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_removewindowsupdate_icm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_searchcompanion_disablefileupdates", + "displayName": "Turn off Search Companion content file updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_searchcompanion_disablefileupdates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_searchcompanion_disablefileupdates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_shellnouseinternetopenwith_2", + "displayName": "Turn off Internet File Association service", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_shellnouseinternetopenwith_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_shellnouseinternetopenwith_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_shellnousestoreopenwith_2", + "displayName": "Turn off access to the Store", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_shellnousestoreopenwith_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_shellnousestoreopenwith_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_shellremoveorderprints_2", + "displayName": "Turn off the \"Order Prints\" picture task", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_shellremoveorderprints_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_shellremoveorderprints_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_shellremovepublishtoweb_2", + "displayName": "Turn off the \"Publish to Web\" task for files and folders", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_shellremovepublishtoweb_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_shellremovepublishtoweb_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_winmsg_noinstrumentation_2", + "displayName": "Turn off the Windows Messenger Customer Experience Improvement Program", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_icm_winmsg_noinstrumentation_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_icm_winmsg_noinstrumentation_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iis_preventiisinstall", + "displayName": "Prevent IIS installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iis_preventiisinstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iis_preventiisinstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configureisnsservers", + "displayName": "Do not allow manual configuration of iSNS servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configureisnsservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configureisnsservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configuretargetportals", + "displayName": "Do not allow manual configuration of target portals", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configuretargetportals_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configuretargetportals_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configuretargets", + "displayName": "Do not allow manual configuration of discovered targets", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configuretargets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_configuretargets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_newstatictargets", + "displayName": "Do not allow adding new targets via manual configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_newstatictargets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsidiscovery_newstatictargets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsigeneral_changeiqnname", + "displayName": "Do not allow changes to initiator iqn name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsigeneral_changeiqnname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsigeneral_changeiqnname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsigeneral_restrictadditionallogins", + "displayName": "Do not allow additional session logins", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsigeneral_restrictadditionallogins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsigeneral_restrictadditionallogins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_changechapsecret", + "displayName": "Do not allow changes to initiator CHAP secret", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_changechapsecret_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_changechapsecret_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requireipsec", + "displayName": "Do not allow connections without IPSec", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requireipsec_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requireipsec_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requiremutualchap", + "displayName": "Do not allow sessions without mutual CHAP", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requiremutualchap_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requiremutualchap_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requireonewaychap", + "displayName": "Do not allow sessions without one way CHAP", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requireonewaychap_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_iscsi_iscsisecurity_requireonewaychap_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_cbacandarmor", + "displayName": "KDC support for claims, compound authentication and Kerberos armoring", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kdc_cbacandarmor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_cbacandarmor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_cbacandarmor_cbacandarmor_levels", + "displayName": "Claims, compound authentication for Dynamic Access Control and Kerberos armoring options: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kdc_cbacandarmor_cbacandarmor_levels_0", + "displayName": "Not supported", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_cbacandarmor_cbacandarmor_levels_1", + "displayName": "Supported", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_cbacandarmor_cbacandarmor_levels_2", + "displayName": "Always provide claims", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_cbacandarmor_cbacandarmor_levels_3", + "displayName": "Fail unarmored authentication requests", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_emitlili", + "displayName": "Provide information about previous logons to client computers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kdc_emitlili_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_emitlili_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_forestsearch", + "displayName": "Use forest search order", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kdc_forestsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_forestsearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_forestsearch_forestsearchlist", + "displayName": "Forests to Search (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_pkinitfreshness", + "displayName": "KDC support for PKInit Freshness Extension", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kdc_pkinitfreshness_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_pkinitfreshness_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_pkinitfreshness_pkinitfreshness_levels", + "displayName": "PKInit Freshness Extension options: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kdc_pkinitfreshness_pkinitfreshness_levels_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_pkinitfreshness_pkinitfreshness_levels_1", + "displayName": "Supported", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_pkinitfreshness_pkinitfreshness_levels_2", + "displayName": "Required", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_requestcompoundid", + "displayName": "Request compound authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kdc_requestcompoundid_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_requestcompoundid_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_ticketsizethreshold", + "displayName": "Warning for large Kerberos tickets", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kdc_ticketsizethreshold_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_ticketsizethreshold_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kdc_ticketsizethreshold_ticketsizethreshold", + "displayName": "Ticket Size Threshold (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_alwayssendcompoundid", + "displayName": "Always send compound authentication first", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_alwayssendcompoundid_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_alwayssendcompoundid_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_devicepkinitenabled", + "displayName": "Support device authentication using certificate", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_devicepkinitenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_devicepkinitenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_devicepkinitenabled_devicepkinitbehavior", + "displayName": "Device authentication behavior using certificate: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_devicepkinitenabled_devicepkinitbehavior_0", + "displayName": "Automatic", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_devicepkinitenabled_devicepkinitbehavior_1", + "displayName": "Force", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_hosttorealm", + "displayName": "Define host name-to-Kerberos realm mappings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_hosttorealm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_hosttorealm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_hosttorealm_hosttorealm", + "displayName": "Define host name-to-realm mappings: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_hosttorealm_hosttorealm_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_hosttorealm_hosttorealm_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxydisableserverrevocationcheck", + "displayName": "Disable revocation checking for the SSL certificate of KDC proxy servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxydisableserverrevocationcheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxydisableserverrevocationcheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxyserver", + "displayName": "Specify KDC proxy servers for Kerberos clients", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxyserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxyserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxyserver_kdcproxyserver", + "displayName": "Define KDC proxy servers settings: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxyserver_kdcproxyserver_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_kdcproxyserver_kdcproxyserver_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_mitrealms", + "displayName": "Define interoperable Kerberos V5 realm settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_mitrealms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_mitrealms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_mitrealms_mitrealms", + "displayName": "Define interoperable Kerberos V5 realm settings: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_mitrealms_mitrealms_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_mitrealms_mitrealms_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_serveracceptscompound", + "displayName": "Support compound authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_serveracceptscompound_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_serveracceptscompound_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_serveracceptscompound_compoundidenabled", + "displayName": "Support authorization with client device information: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_serveracceptscompound_compoundidenabled_0", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_serveracceptscompound_compoundidenabled_1", + "displayName": "Automatic", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_serveracceptscompound_compoundidenabled_2", + "displayName": "Always", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_stricttarget", + "displayName": "Require strict target SPN match on remote procedure calls", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_kerberos_stricttarget_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_kerberos_stricttarget_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_ciphersuiteorder", + "displayName": "Cipher suite order", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_ciphersuiteorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_ciphersuiteorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_ciphersuiteorder_multitext_ciphersuiteorder", + "displayName": "\r\nCipher suites:\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashpublication", + "displayName": "Hash Publication for BranchCache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashpublication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashpublication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashpublication_lbl_hashpublicationactioncombo", + "displayName": "Hash publication actions: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashpublication_lbl_hashpublicationactioncombo_0", + "displayName": "Allow hash publication only for shared folders on which BranchCache is enabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashpublication_lbl_hashpublicationactioncombo_1", + "displayName": "Disallow hash publication on all shared folders", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashpublication_lbl_hashpublicationactioncombo_2", + "displayName": "Allow hash publication for all shared folders", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashsupportversion", + "displayName": "Hash Version support for BranchCache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashsupportversion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashsupportversion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashsupportversion_lbl_hashversionsupportactioncombo", + "displayName": "Hash version supported: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashsupportversion_lbl_hashversionsupportactioncombo_1", + "displayName": "Supports V1 hash version only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashsupportversion_lbl_hashversionsupportactioncombo_2", + "displayName": "Supports V2 hash version only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_hashsupportversion_lbl_hashversionsupportactioncombo_3", + "displayName": "Supports V1 as well as V2 versions", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_honorciphersuiteorder", + "displayName": "Honor cipher suite order", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_honorciphersuiteorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanserver_pol_honorciphersuiteorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_ciphersuiteorder", + "displayName": "Cipher suite order", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_ciphersuiteorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_ciphersuiteorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_ciphersuiteorder_multitext_ciphersuiteorder", + "displayName": "\r\nCipher suites:\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_enablehandlecachingforcafiles", + "displayName": "Handle Caching on Continuous Availability Shares", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_enablehandlecachingforcafiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_enablehandlecachingforcafiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_enableofflinefilesforcashares", + "displayName": "Offline Files Availability on Continuous Availability Shares", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_enableofflinefilesforcashares_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_lanmanworkstation_pol_enableofflinefilesforcashares_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_leakdiagnostic_wdiscenarioexecutionpolicy", + "displayName": "Configure Scenario Execution Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_leakdiagnostic_wdiscenarioexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_leakdiagnostic_wdiscenarioexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio", + "displayName": "Turn on Mapper I/O (LLTDIO) driver", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_allowondomain", + "displayName": "Allow operation while in domain (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_allowondomain_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_allowondomain_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_allowonpublicnet", + "displayName": "Allow operation while in public network (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_allowonpublicnet_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_allowonpublicnet_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_prohibitonprivatenet", + "displayName": "Prohibit operation while in private network (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_prohibitonprivatenet_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablelltdio_lltd_enablelltdio_prohibitonprivatenet_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr", + "displayName": "Turn on Responder (RSPNDR) driver", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_allowondomain", + "displayName": "Allow operation while in domain (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_allowondomain_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_allowondomain_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_allowonpublicnet", + "displayName": "Allow operation while in public network (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_allowonpublicnet_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_allowonpublicnet_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_prohibitonprivatenet", + "displayName": "Prohibit operation while in private network (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_prohibitonprivatenet_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_linklayertopologydiscovery_lltd_enablerspndr_lltd_enablerspndr_prohibitonprivatenet_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_locationprovideradm_disablewindowslocationprovider_1", + "displayName": "Turn off Windows Location Provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_locationprovideradm_disablewindowslocationprovider_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_locationprovideradm_disablewindowslocationprovider_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_blockuserfromshowingaccountdetailsonsignin", + "displayName": "Block user from showing account details on sign-in", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_blockuserfromshowingaccountdetailsonsignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_blockuserfromshowingaccountdetailsonsignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_disableacrylicbackgroundonlogon", + "displayName": "Show clear logon background", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_disableacrylicbackgroundonlogon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_disableacrylicbackgroundonlogon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_disableexplorerrunlegacy_2", + "displayName": "Do not process the legacy run list", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_disableexplorerrunlegacy_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_disableexplorerrunlegacy_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_disableexplorerrunoncelegacy_2", + "displayName": "Do not process the run once list", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_disableexplorerrunoncelegacy_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_disableexplorerrunoncelegacy_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_disablestatusmessages", + "displayName": "Remove Boot / Shutdown / Logon / Logoff status messages", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_disablestatusmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_disablestatusmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_dontenumerateconnectedusers", + "displayName": "Do not enumerate connected users on domain-joined computers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_dontenumerateconnectedusers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_dontenumerateconnectedusers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_nowelcometips_2", + "displayName": "Do not display the Getting Started welcome screen at logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_nowelcometips_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_nowelcometips_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_run_2", + "displayName": "Run these programs at user logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_run_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_run_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_run_2_runlistbox2", + "displayName": "Items to run at logon (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_syncforegroundpolicy", + "displayName": "Always wait for the network at computer startup and logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_syncforegroundpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_syncforegroundpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_useoembackground", + "displayName": "Always use custom logon background", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_useoembackground_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_useoembackground_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_verbosestatus", + "displayName": "Display highly detailed status messages", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_logon_verbosestatus_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_logon_verbosestatus_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_allowfastservicestartup", + "displayName": "Allow antimalware service to startup with normal priority", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_allowfastservicestartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_allowfastservicestartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableantispywaredefender", + "displayName": "Turn off Microsoft Defender Antivirus", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableantispywaredefender_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableantispywaredefender_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableautoexclusions", + "displayName": "Turn off Auto Exclusions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableautoexclusions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableautoexclusions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableblockatfirstseen", + "displayName": "Configure the 'Block at First Sight' feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableblockatfirstseen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableblockatfirstseen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disablelocaladminmerge", + "displayName": "Configure local administrator merge behavior for lists", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disablelocaladminmerge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disablelocaladminmerge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disablerealtimemonitoring", + "displayName": "Turn off real-time protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disablerealtimemonitoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disablerealtimemonitoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableroutinelytakingaction", + "displayName": "Turn off routine remediation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableroutinelytakingaction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_disableroutinelytakingaction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_extensions", + "displayName": "Extension Exclusions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_extensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_extensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_extensions_exclusions_extensionslist", + "displayName": "Extension Exclusions (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_extensions_exclusions_extensionslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_extensions_exclusions_extensionslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_paths", + "displayName": "Path Exclusions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_paths_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_paths_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_paths_exclusions_pathslist", + "displayName": "Path Exclusions (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_paths_exclusions_pathslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_paths_exclusions_pathslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_processes", + "displayName": "Process Exclusions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_processes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_processes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_processes_exclusions_processeslist", + "displayName": "Process Exclusions (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_processes_exclusions_processeslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exclusions_processes_exclusions_processeslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_asronlyexclusions", + "displayName": "Exclude files and paths from Attack Surface Reduction Rules", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_asronlyexclusions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_asronlyexclusions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_asronlyexclusions_exploitguard_asr_asronlyexclusions", + "displayName": "Exclusions from ASR rules: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_asronlyexclusions_exploitguard_asr_asronlyexclusions_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_asronlyexclusions_exploitguard_asr_asronlyexclusions_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_rules", + "displayName": "Configure Attack Surface Reduction rules", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_rules_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_rules_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_rules_exploitguard_asr_rules", + "displayName": "Set the state for each ASR rule: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_rules_exploitguard_asr_rules_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_asr_rules_exploitguard_asr_rules_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_allowedapplications", + "displayName": "Configure allowed applications", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_allowedapplications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_allowedapplications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_allowedapplications_exploitguard_controlledfolderaccess_allowedapplications", + "displayName": "Enter the applications that should be trusted: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_allowedapplications_exploitguard_controlledfolderaccess_allowedapplications_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_allowedapplications_exploitguard_controlledfolderaccess_allowedapplications_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_protectedfolders", + "displayName": "Configure protected folders", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_protectedfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_protectedfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_protectedfolders_exploitguard_controlledfolderaccess_protectedfolders", + "displayName": "Enter the folders that should be guarded: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_protectedfolders_exploitguard_controlledfolderaccess_protectedfolders_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_exploitguard_controlledfolderaccess_protectedfolders_exploitguard_controlledfolderaccess_protectedfolders_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_mpengine_enablefilehashcomputation", + "displayName": "Enable file hash computation feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_mpengine_enablefilehashcomputation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_mpengine_enablefilehashcomputation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_disablesignatureretirement", + "displayName": "Turn on definition retirement", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_disablesignatureretirement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_disablesignatureretirement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_sku_differentiation_signature_set_guid", + "displayName": "Specify additional definition sets for network traffic inspection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_sku_differentiation_signature_set_guid_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_sku_differentiation_signature_set_guid_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_sku_differentiation_signature_set_guid_nis_consumers_ips_sku_differentiation_signature_set_guidlist", + "displayName": "Specify additional definition sets for network traffic inspection (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_sku_differentiation_signature_set_guid_nis_consumers_ips_sku_differentiation_signature_set_guidlist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_consumers_ips_sku_differentiation_signature_set_guid_nis_consumers_ips_sku_differentiation_signature_set_guidlist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_disableprotocolrecognition", + "displayName": "Turn on protocol recognition", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_disableprotocolrecognition_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_nis_disableprotocolrecognition_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxybypass", + "displayName": "Define addresses to bypass proxy server", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxybypass_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxybypass_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxybypass_proxybypass", + "displayName": "Define addresses to bypass proxy server (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxypacurl", + "displayName": "Define proxy auto-config (.pac) for connecting to the network", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxypacurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxypacurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxypacurl_proxypacurl", + "displayName": "Define proxy auto-config (.pac) for connecting to the network (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxyserver", + "displayName": "Define proxy server for connecting to the network", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxyserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxyserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_proxyserver_proxyserver", + "displayName": "Define proxy server for connecting to the network (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_quarantine_localsettingoverridepurgeitemsafterdelay", + "displayName": "Configure local setting override for the removal of items from Quarantine folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_quarantine_localsettingoverridepurgeitemsafterdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_quarantine_localsettingoverridepurgeitemsafterdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_quarantine_purgeitemsafterdelay", + "displayName": "Configure removal of items from Quarantine folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_quarantine_purgeitemsafterdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_quarantine_purgeitemsafterdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_quarantine_purgeitemsafterdelay_quarantine_purgeitemsafterdelay", + "displayName": "Configure removal of items from Quarantine folder (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_randomizescheduletasktimes", + "displayName": "Randomize scheduled task times", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_randomizescheduletasktimes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_randomizescheduletasktimes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablebehaviormonitoring", + "displayName": "Turn on behavior monitoring", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablebehaviormonitoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablebehaviormonitoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disableioavprotection", + "displayName": "Scan all downloaded files and attachments", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disableioavprotection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disableioavprotection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disableonaccessprotection", + "displayName": "Monitor file and program activity on your computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disableonaccessprotection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disableonaccessprotection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablerawwritenotification", + "displayName": "Turn on raw volume write notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablerawwritenotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablerawwritenotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablescanonrealtimeenable", + "displayName": "Turn on process scanning whenever real-time protection is enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablescanonrealtimeenable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_disablescanonrealtimeenable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_ioavmaxsize", + "displayName": "Define the maximum size of downloaded files and attachments to be scanned", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_ioavmaxsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_ioavmaxsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_ioavmaxsize_realtimeprotection_ioavmaxsize", + "displayName": "Define the maximum size of downloaded files and attachments to be scanned (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisablebehaviormonitoring", + "displayName": "Configure local setting override for turn on behavior monitoring", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisablebehaviormonitoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisablebehaviormonitoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisableioavprotection", + "displayName": "Configure local setting override for scanning all downloaded files and attachments", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisableioavprotection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisableioavprotection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisableonaccessprotection", + "displayName": "Configure local setting override for monitoring file and program activity on your computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisableonaccessprotection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisableonaccessprotection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisablerealtimemonitoring", + "displayName": "Configure local setting override to turn on real-time protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisablerealtimemonitoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverridedisablerealtimemonitoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverriderealtimescandirection", + "displayName": "Configure local setting override for monitoring for incoming and outgoing file activity", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverriderealtimescandirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_realtimeprotection_localsettingoverriderealtimescandirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_localsettingoverridescan_scheduletime", + "displayName": "Configure local setting override for the time of day to run a scheduled full scan to complete remediation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_localsettingoverridescan_scheduletime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_localsettingoverridescan_scheduletime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday", + "displayName": "Specify the day of the week to run a scheduled full scan to complete remediation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday", + "displayName": "Specify the day of the week to run a scheduled full scan to complete remediation (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_8", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_0", + "displayName": "Every Day", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_1", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_2", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_3", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_4", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_5", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_6", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduleday_remediation_scan_scheduleday_7", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduletime", + "displayName": "Specify the time of day to run a scheduled full scan to complete remediation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduletime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduletime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_remediation_scan_scheduletime_remediation_scan_scheduletime", + "displayName": "Specify the time of day to run a scheduled full scan to complete remediation (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_additionalactiontimeout", + "displayName": "Configure time out for detections requiring additional action", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_additionalactiontimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_additionalactiontimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_additionalactiontimeout_reporting_additionalactiontimeout", + "displayName": "Configure time out for detections requiring additional action (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_criticalfailuretimeout", + "displayName": "Configure time out for detections in critically failed state", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_criticalfailuretimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_criticalfailuretimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_criticalfailuretimeout_reporting_criticalfailuretimeout", + "displayName": "Configure time out for detections in critically failed state (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_disableenhancednotifications", + "displayName": "Turn off enhanced notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_disableenhancednotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_disableenhancednotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_disablegenericreports", + "displayName": "Configure Watson events", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_disablegenericreports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_disablegenericreports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_noncriticaltimeout", + "displayName": "Configure time out for detections in non-critical failed state", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_noncriticaltimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_noncriticaltimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_noncriticaltimeout_reporting_noncriticaltimeout", + "displayName": "Configure time out for detections in non-critical failed state (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_recentlycleanedtimeout", + "displayName": "Configure time out for detections in recently remediated state", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_recentlycleanedtimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_recentlycleanedtimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_recentlycleanedtimeout_reporting_recentlycleanedtimeout", + "displayName": "Configure time out for detections in recently remediated state (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_wpptracingcomponents", + "displayName": "Configure Windows software trace preprocessor components", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_wpptracingcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_wpptracingcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_wpptracingcomponents_reporting_wpptracingcomponents", + "displayName": "Configure Windows software trace preprocessor components (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_wpptracinglevel", + "displayName": "Configure WPP tracing level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_wpptracinglevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_wpptracinglevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_reporting_wpptracinglevel_reporting_wpptracinglevel", + "displayName": "Configure WPP tracing level (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_allowpause", + "displayName": "Allow users to pause scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_allowpause_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_allowpause_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_archivemaxdepth", + "displayName": "Specify the maximum depth to scan archive files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_archivemaxdepth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_archivemaxdepth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_archivemaxdepth_scan_archivemaxdepth", + "displayName": "Specify the maximum depth to scan archive files (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_archivemaxsize", + "displayName": "Specify the maximum size of archive files to be scanned", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_archivemaxsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_archivemaxsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_archivemaxsize_scan_archivemaxsize", + "displayName": "Specify the maximum size of archive files to be scanned (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablearchivescanning", + "displayName": "Scan archive files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablearchivescanning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablearchivescanning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableemailscanning", + "displayName": "Turn on e-mail scanning", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableemailscanning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableemailscanning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableheuristics", + "displayName": "Turn on heuristics", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableheuristics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableheuristics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablepackedexescanning", + "displayName": "Scan packed executables", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablepackedexescanning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablepackedexescanning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableremovabledrivescanning", + "displayName": "Scan removable drives", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableremovabledrivescanning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disableremovabledrivescanning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablereparsepointscanning", + "displayName": "Turn on reparse point scanning", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablereparsepointscanning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablereparsepointscanning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablerestorepoint", + "displayName": "Create a system restore point", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablerestorepoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablerestorepoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablescanningmappednetworkdrivesforfullscan", + "displayName": "Run full scan on mapped network drives", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablescanningmappednetworkdrivesforfullscan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablescanningmappednetworkdrivesforfullscan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablescanningnetworkfiles", + "displayName": "Scan network files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablescanningnetworkfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_disablescanningnetworkfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverrideavgcpuloadfactor", + "displayName": "Configure local setting override for maximum percentage of CPU utilization", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverrideavgcpuloadfactor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverrideavgcpuloadfactor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescanparameters", + "displayName": "Configure local setting override for the scan type to use for a scheduled scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescanparameters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescanparameters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescheduleday", + "displayName": "Configure local setting override for schedule scan day", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescheduleday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescheduleday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverrideschedulequickscantime", + "displayName": "Configure local setting override for scheduled quick scan time", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverrideschedulequickscantime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverrideschedulequickscantime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescheduletime", + "displayName": "Configure local setting override for scheduled scan time", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescheduletime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_localsettingoverridescheduletime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_lowcpupriority", + "displayName": "Configure low CPU priority for scheduled scans", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_lowcpupriority_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_lowcpupriority_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_missedscheduledscancountbeforecatchup", + "displayName": "Define the number of days after which a catch-up scan is forced", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_missedscheduledscancountbeforecatchup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_missedscheduledscancountbeforecatchup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_missedscheduledscancountbeforecatchup_scan_missedscheduledscancountbeforecatchup", + "displayName": "Define the number of scheduled scans that can be missed after which a catch-up scan is forced (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_purgeitemsafterdelay", + "displayName": "Turn on removal of items from scan history folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_purgeitemsafterdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_purgeitemsafterdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_purgeitemsafterdelay_scan_purgeitemsafterdelay", + "displayName": "Turn on removal of items from scan history folder (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_quickscaninterval", + "displayName": "Specify the interval to run quick scans per day", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_quickscaninterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_quickscaninterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_quickscaninterval_scan_quickscaninterval", + "displayName": "Specify the interval to run quick scans per day (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scanonlyifidle", + "displayName": "Start the scheduled scan only when computer is on but not in use", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scanonlyifidle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scanonlyifidle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday", + "displayName": "Specify the day of the week to run a scheduled scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday", + "displayName": "Specify the day of the week to run a scheduled scan (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_8", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_0", + "displayName": "Every Day", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_1", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_2", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_3", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_4", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_5", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_6", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduleday_scan_scheduleday_7", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduletime", + "displayName": "Specify the time of day to run a scheduled scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduletime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduletime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_scan_scheduletime_scan_scheduletime", + "displayName": "Specify the time of day to run a scheduled scan (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_servicekeepalive", + "displayName": "Allow antimalware service to remain running always", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_servicekeepalive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_servicekeepalive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_assignaturedue", + "displayName": "Define the number of days before spyware security intelligence is considered out of date", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_assignaturedue_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_assignaturedue_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_assignaturedue_signatureupdate_assignaturedue", + "displayName": "Define the number of days before spyware security intelligence is considered out of date (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_avsignaturedue", + "displayName": "Define the number of days before virus security intelligence is considered out of date", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_avsignaturedue_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_avsignaturedue_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_avsignaturedue_signatureupdate_avsignaturedue", + "displayName": "Define the number of days before virus security intelligence is considered out of date (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_definitionupdatefilesharessources", + "displayName": "Define file shares for downloading security intelligence updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_definitionupdatefilesharessources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_definitionupdatefilesharessources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_definitionupdatefilesharessources_signatureupdate_definitionupdatefilesharessources", + "displayName": "Define file shares for downloading security intelligence updates (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disablescanonupdate", + "displayName": "Turn on scan after security intelligence update", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disablescanonupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disablescanonupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disablescheduledsignatureupdateonbattery", + "displayName": "Allow security intelligence updates when running on battery power", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disablescheduledsignatureupdateonbattery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disablescheduledsignatureupdateonbattery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disableupdateonstartupwithoutengine", + "displayName": "Initiate security intelligence update on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disableupdateonstartupwithoutengine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_disableupdateonstartupwithoutengine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_fallbackorder", + "displayName": "Define the order of sources for downloading security intelligence updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_fallbackorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_fallbackorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_fallbackorder_signatureupdate_fallbackorder", + "displayName": "Define the order of sources for downloading security intelligence updates (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_forceupdatefrommu", + "displayName": "Allow security intelligence updates from Microsoft Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_forceupdatefrommu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_forceupdatefrommu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_realtimesignaturedelivery", + "displayName": "Allow real-time security intelligence updates based on reports to Microsoft MAPS", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_realtimesignaturedelivery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_realtimesignaturedelivery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday", + "displayName": "Specify the day of the week to check for security intelligence updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday", + "displayName": "Specify the day of the week to check for security intelligence updates (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_8", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_0", + "displayName": "Every Day", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_1", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_2", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_3", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_4", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_5", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_6", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduleday_signatureupdate_scheduleday_7", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduletime", + "displayName": "Specify the time to check for security intelligence updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduletime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduletime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_scheduletime_signatureupdate_scheduletime", + "displayName": "Specify the time to check for security intelligence updates (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_sharedsignatureslocation", + "displayName": "Define security intelligence location for VDI clients.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_sharedsignatureslocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_sharedsignatureslocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_sharedsignatureslocation_signatureupdate_sharedsignatureslocation", + "displayName": "Define file share for downloading security intelligence updates in virtual environments (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_signaturedisablenotification", + "displayName": "Allow notifications to disable security intelligence based reports to Microsoft MAPS", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_signaturedisablenotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_signaturedisablenotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_signatureupdatecatchupinterval", + "displayName": "Define the number of days after which a catch-up security intelligence update is required", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_signatureupdatecatchupinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_signatureupdatecatchupinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_signatureupdatecatchupinterval_signatureupdate_signatureupdatecatchupinterval", + "displayName": "Define the number of days after which a catch-up security intelligence update is required (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_updateonstartup", + "displayName": "Check for the latest virus and spyware security intelligence on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_updateonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_signatureupdate_updateonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynet_localsettingoverridespynetreporting", + "displayName": "Configure local setting override for reporting to Microsoft MAPS", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynet_localsettingoverridespynetreporting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynet_localsettingoverridespynetreporting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynetreporting", + "displayName": "Join Microsoft MAPS", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynetreporting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynetreporting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynetreporting_spynetreporting", + "displayName": "Join Microsoft MAPS (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynetreporting_spynetreporting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynetreporting_spynetreporting_1", + "displayName": "Basic MAPS", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_spynetreporting_spynetreporting_2", + "displayName": "Advanced MAPS", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_threats_threatiddefaultaction", + "displayName": "Specify threats upon which default action should not be taken when detected", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_threats_threatiddefaultaction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_threats_threatiddefaultaction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_threats_threatiddefaultaction_threats_threatiddefaultactionlist", + "displayName": "Specify threats upon which default action should not be taken when detected (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_threats_threatiddefaultaction_threats_threatiddefaultactionlist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_threats_threatiddefaultaction_threats_threatiddefaultactionlist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_customdefaultactiontoaststring", + "displayName": "Display additional text to clients when they need to perform an action", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_customdefaultactiontoaststring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_customdefaultactiontoaststring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_customdefaultactiontoaststring_ux_configuration_customdefaultactiontoaststring", + "displayName": "Display additional text to clients when they need to perform an action (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_notification_suppress", + "displayName": "Suppress all notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_notification_suppress_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_notification_suppress_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_suppressrebootnotification", + "displayName": "Suppresses reboot notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_suppressrebootnotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_suppressrebootnotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_uilockdown", + "displayName": "Enable headless UI mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_uilockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_microsoftdefenderantivirus_ux_configuration_uilockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mobilepcmobilitycenter_mobilitycenterenable_2", + "displayName": "Turn off Windows Mobility Center", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mobilepcmobilitycenter_mobilitycenterenable_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mobilepcmobilitycenter_mobilitycenterenable_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mobilepcpresentationsettings_presentationsettingsenable_2", + "displayName": "Turn off Windows presentation settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mobilepcpresentationsettings_presentationsettingsenable_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mobilepcpresentationsettings_presentationsettingsenable_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msapolicy_microsoftaccount_disableuserauth", + "displayName": "Block all consumer Microsoft account user authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msapolicy_microsoftaccount_disableuserauth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msapolicy_microsoftaccount_disableuserauth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msched_activationboundarypolicy", + "displayName": "Automatic Maintenance Activation Boundary", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msched_activationboundarypolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msched_activationboundarypolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msched_activationboundarypolicy_activationboundary", + "displayName": "Regular maintenance activation boundary (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msched_randomdelaypolicy", + "displayName": "Automatic Maintenance Random Delay", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msched_randomdelaypolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msched_randomdelaypolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msched_randomdelaypolicy_randomdelay", + "displayName": "Regular maintenance random delay (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdtsupportprovider", + "displayName": "Microsoft Support Diagnostic Tool: Turn on MSDT interactive communication with support provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdtsupportprovider_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdtsupportprovider_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdttooldownloadpolicy", + "displayName": "Microsoft Support Diagnostic Tool: Restrict tool download", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdttooldownloadpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdttooldownloadpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdttooldownloadpolicy_msdttooldownloadpolicylevel", + "displayName": "Tool downloads allowed (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdttooldownloadpolicy_msdttooldownloadpolicylevel_1", + "displayName": "Remote troubleshooting only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msdt_msdttooldownloadpolicy_msdttooldownloadpolicylevel_2", + "displayName": "Local and remote troubleshooting", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msdt_wdiscenarioexecutionpolicy", + "displayName": "Microsoft Support Diagnostic Tool: Configure execution level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msdt_wdiscenarioexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msdt_wdiscenarioexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownbrowse", + "displayName": "Allow users to browse for source while elevated", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownbrowse_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownbrowse_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownmedia", + "displayName": "Allow users to use media source while elevated", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownmedia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownmedia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownpatch", + "displayName": "Allow users to patch elevated products", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownpatch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_allowlockdownpatch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableautomaticapplicationshutdown", + "displayName": "Prohibit use of Restart Manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disableautomaticapplicationshutdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableautomaticapplicationshutdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableautomaticapplicationshutdown_disableautomaticapplicationshutdown", + "displayName": "Prohibit Usage of Restart Manager (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disableautomaticapplicationshutdown_disableautomaticapplicationshutdown_0", + "displayName": "Restart Manager On", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableautomaticapplicationshutdown_disableautomaticapplicationshutdown_1", + "displayName": "Restart Manager Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableautomaticapplicationshutdown_disableautomaticapplicationshutdown_2", + "displayName": "Restart Manager Off for Legacy App Setup", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablebrowse", + "displayName": "Remove browse dialog box for new source", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disablebrowse_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablebrowse_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableflyweightpatching", + "displayName": "Prohibit flyweight patching", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disableflyweightpatching_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableflyweightpatching_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableflyweightpatching_disableflyweightpatching", + "displayName": "Prohibit Flyweight Patching (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disableflyweightpatching_disableflyweightpatching_1", + "displayName": "Patch Optimization Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableflyweightpatching_disableflyweightpatching_0", + "displayName": "Patch Optimization On", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableloggingfrompackage", + "displayName": "Turn off logging via package settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disableloggingfrompackage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableloggingfrompackage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableloggingfrompackage_disableloggingfrompackage", + "displayName": "Disable logging via package settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disableloggingfrompackage_disableloggingfrompackage_1", + "displayName": "Disable logging via package settings off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disableloggingfrompackage_disableloggingfrompackage_0", + "displayName": "Disable logging via package settings on", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablemsi", + "displayName": "Turn off Windows Installer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disablemsi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablemsi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablemsi_disablemsi", + "displayName": "Disable Windows Installer (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disablemsi_disablemsi_2", + "displayName": "Always", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablemsi_disablemsi_1", + "displayName": "For non-managed applications only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablemsi_disablemsi_0", + "displayName": "Never", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablepatch", + "displayName": "Prevent users from using Windows Installer to install updates and upgrades", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disablepatch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablepatch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablerollback_2", + "displayName": "Prohibit rollback", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disablerollback_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablerollback_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablesharedcomponent", + "displayName": "Turn off shared components", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_disablesharedcomponent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_disablesharedcomponent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableluapatching", + "displayName": "Prohibit non-administrators from applying vendor signed updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableluapatching_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableluapatching_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disablepatchuninstall", + "displayName": "Prohibit removal of updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disablepatchuninstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disablepatchuninstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disablesrcheckpoints", + "displayName": "Turn off creation of System Restore checkpoints", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disablesrcheckpoints_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disablesrcheckpoints_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableuserinstalls", + "displayName": "Prohibit User Installs", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableuserinstalls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableuserinstalls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableuserinstalls_msi_disableuserinstallsbox", + "displayName": "User Install Behavior: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableuserinstalls_msi_disableuserinstallsbox_0", + "displayName": "Allow User Installs", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_disableuserinstalls_msi_disableuserinstallsbox_1", + "displayName": "Hide User Installs", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_enforceupgradecomponentrules", + "displayName": "Enforce upgrade component rules", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_enforceupgradecomponentrules_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_enforceupgradecomponentrules_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_maxpatchcachesize", + "displayName": "Control maximum size of baseline file cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_maxpatchcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_maxpatchcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msi_maxpatchcachesize_msi_maxpatchcachesize", + "displayName": "Baseline file cache maximum size (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msidisableembeddedui", + "displayName": "Prevent embedded UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msidisableembeddedui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msidisableembeddedui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msilogging", + "displayName": "Specify the types of events Windows Installer records in its transaction log", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_msilogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msilogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_msilogging_msilogging", + "displayName": "Logging (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_safeforscripting", + "displayName": "Prevent Internet Explorer security prompt for Windows Installer scripts", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_safeforscripting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_safeforscripting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_transformssecure", + "displayName": "Save copies of transform files in a secure location on workstation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msi_transformssecure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msi_transformssecure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msifilerecovery_wdiscenarioexecutionpolicy", + "displayName": "Configure MSI Corrupted File Recovery behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msifilerecovery_wdiscenarioexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msifilerecovery_wdiscenarioexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_msifilerecovery_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_msifilerecovery_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel_1", + "displayName": "Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msifilerecovery_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel_2", + "displayName": "Prompt for Resolution", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_msifilerecovery_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel_3", + "displayName": "Silent", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoadminlogon", + "displayName": "MSS: (AutoAdminLogon) Enable Automatic Logon (not recommended)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoadminlogon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoadminlogon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoreboot", + "displayName": "MSS: (AutoReboot) Allow Windows to automatically restart after a system crash (recommended except for highly secure environments)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoreboot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoreboot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoshareserver", + "displayName": "MSS: (AutoShareServer) Enable Administrative Shares (recommended except for highly secure environments)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoshareserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autoshareserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autosharewks", + "displayName": "MSS: (AutoShareWks) Enable Administrative Shares (recommended except for highly secure environments)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autosharewks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_autosharewks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_disablesavepassword", + "displayName": "MSS: (DisableSavePassword) Prevent the dial-up passsword from being saved (recommended)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_disablesavepassword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_disablesavepassword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_enabledeadgwdetect", + "displayName": "MSS: (EnableDeadGWDetect) Allow automatic detection of dead network gateways (could lead to DoS)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_enabledeadgwdetect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_enabledeadgwdetect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_hidefrombrowselist", + "displayName": "MSS: (Hidden) Hide Computer From the Browse List (not recommended except for highly secure environments)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_hidefrombrowselist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_hidefrombrowselist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime", + "displayName": "MSS: (KeepAliveTime) How often keep-alive packets are sent in milliseconds", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_keepalivetime", + "displayName": "KeepAliveTime (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_keepalivetime_150000", + "displayName": "150000 or 2.5 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_keepalivetime_300000", + "displayName": "300000 or 5 minutes (recommended) ", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_keepalivetime_600000", + "displayName": "600000 or 10 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_keepalivetime_1200000", + "displayName": "1200000 or 20 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_keepalivetime_2400000", + "displayName": "2400000 or 40 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_keepalivetime_3600000", + "displayName": "3600000 or 1 hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_keepalivetime_keepalivetime_7200000", + "displayName": "7200000 or 2 hours (default value)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_nodefaultexempt", + "displayName": "MSS: (NoDefaultExempt) Configure IPSec exemptions for various types of network traffic.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_nodefaultexempt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_nodefaultexempt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_nodefaultexempt_nodefaultexempt", + "displayName": "NoDefaultExempt (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_nodefaultexempt_nodefaultexempt_0", + "displayName": "Allow all exemptions.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_nodefaultexempt_nodefaultexempt_1", + "displayName": "Multicast, broadcast, & ISAKMP exempt.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_nodefaultexempt_nodefaultexempt_2", + "displayName": "RSVP, Kerberos, and ISAKMP are exempt.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_nodefaultexempt_nodefaultexempt_3", + "displayName": "Only ISAKMP is exempt.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_ntfsdisable8dot3namecreation", + "displayName": "MSS: (NtfsDisable8dot3NameCreation) Enable the computer to stop generating 8.3 style filenames", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_ntfsdisable8dot3namecreation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_ntfsdisable8dot3namecreation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_ntfsdisable8dot3namecreation_ntfsdisable8dot3namecreation", + "displayName": "NtfsDisable8dot3NameCreation (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_ntfsdisable8dot3namecreation_ntfsdisable8dot3namecreation_0", + "displayName": "Enable 8Dot3 Creation on all Volumes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_ntfsdisable8dot3namecreation_ntfsdisable8dot3namecreation_1", + "displayName": "Disable 8Dot3 Creation on all Volumes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_ntfsdisable8dot3namecreation_ntfsdisable8dot3namecreation_2", + "displayName": "Set 8dot3 name creation per volume using FSUTIL", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_ntfsdisable8dot3namecreation_ntfsdisable8dot3namecreation_3", + "displayName": "Disable 8Dot3 name creation on all volumes except system volume", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_performrouterdiscovery", + "displayName": "MSS: (PerformRouterDiscovery) Allow IRDP to detect and configure Default Gateway addresses (could lead to DoS)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_performrouterdiscovery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_performrouterdiscovery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_safedllsearchmode", + "displayName": "MSS: (SafeDllSearchMode) Enable Safe DLL search mode (recommended)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_safedllsearchmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_safedllsearchmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_screensavergraceperiod", + "displayName": "MSS: (ScreenSaverGracePeriod) The time in seconds before the screen saver grace period expires (0 recommended)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_screensavergraceperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_screensavergraceperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_screensavergraceperiod_screensavergraceperiod", + "displayName": "ScreenSaverGracePeriod (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_synattackprotect", + "displayName": "MSS: (SynAttackProtect) Syn attack protection level (protects against DoS)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_synattackprotect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_synattackprotect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_synattackprotect_synattackprotect", + "displayName": "SynAttackProtect (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_synattackprotect_synattackprotect_0", + "displayName": "No additional protection, use default settings", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_synattackprotect_synattackprotect_1", + "displayName": "Connections time out sooner if a SYN attack is detected", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxconnectresponseretransmissions", + "displayName": "MSS: (TcpMaxConnectResponseRetransmissions) SYN-ACK retransmissions when a connection request is not acknowledged", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxconnectresponseretransmissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxconnectresponseretransmissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxconnectresponseretransmissions_tcpmaxconnectresponseretransmissions", + "displayName": "TcpMaxConnectResponseRetransmissions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxconnectresponseretransmissions_tcpmaxconnectresponseretransmissions_0", + "displayName": "No retransmission, half-open connections dropped after 3 seconds", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxconnectresponseretransmissions_tcpmaxconnectresponseretransmissions_1", + "displayName": "3 seconds, half-open connections dropped after 9 seconds", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxconnectresponseretransmissions_tcpmaxconnectresponseretransmissions_2", + "displayName": "3 & 6 seconds, half-open connections dropped after 21 seconds", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxconnectresponseretransmissions_tcpmaxconnectresponseretransmissions_3", + "displayName": "3, 6, & 9 seconds, half-open connections dropped after 45 seconds", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxdataretransmissions", + "displayName": "MSS: (TcpMaxDataRetransmissions) How many times unacknowledged data is retransmitted (3 recommended, 5 is default)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxdataretransmissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxdataretransmissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxdataretransmissions_tcpmaxdataretransmissions", + "displayName": "TcpMaxDataRetransmissions (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxdataretransmissionsipv6", + "displayName": "MSS: (TcpMaxDataRetransmissions IPv6) How many times unacknowledged data is retransmitted (3 recommended, 5 is default)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxdataretransmissionsipv6_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxdataretransmissionsipv6_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_tcpmaxdataretransmissionsipv6_tcpmaxdataretransmissions", + "displayName": "TcpMaxDataRetransmissions (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel", + "displayName": "MSS: (WarningLevel) Percentage threshold for the security event log at which the system will generate a warning", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel_warninglevel", + "displayName": "WarningLevel (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel_warninglevel_50", + "displayName": "50%", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel_warninglevel_60", + "displayName": "60%", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel_warninglevel_70", + "displayName": "70%", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel_warninglevel_80", + "displayName": "80%", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_mss-legacy_pol_mss_warninglevel_warninglevel_90", + "displayName": "90%", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_corporateresources", + "displayName": "Corporate Resources", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_nca_corporateresources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_corporateresources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_corporateresources_corporateresources_control", + "displayName": "Corporate Resources (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_customcommands", + "displayName": "Custom Commands", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_nca_customcommands_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_customcommands_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_customcommands_customcommands_control", + "displayName": "CustomCommands (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_dtes", + "displayName": "IPsec Tunnel Endpoints", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_nca_dtes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_dtes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_dtes_dtes_control", + "displayName": "DTEs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_friendlyname", + "displayName": "Friendly Name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_nca_friendlyname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_friendlyname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_friendlyname_friendlyname_control", + "displayName": "Friendly Name (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_localnameson", + "displayName": "Prefer Local Names Allowed", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_nca_localnameson_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_localnameson_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_passivemode", + "displayName": "DirectAccess Passive Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_nca_passivemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_passivemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_showui", + "displayName": "User Interface", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_nca_showui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_showui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_supportemail", + "displayName": "Support Email Address", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_nca_supportemail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_supportemail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_nca_supportemail_supportemail_control", + "displayName": "Support Email (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpdnsprobecontent", + "displayName": "Specify corporate DNS probe host address", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpdnsprobecontent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpdnsprobecontent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpdnsprobecontent_ncsi_corpdnsprobecontentbox", + "displayName": "Corporate DNS Probe Address: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpdnsprobehost", + "displayName": "Specify corporate DNS probe host name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpdnsprobehost_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpdnsprobehost_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpdnsprobehost_ncsi_corpdnsprobehostbox", + "displayName": "Corporate DNS Probe Hostname: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpsiteprefixes", + "displayName": "Specify corporate site prefix list", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpsiteprefixes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpsiteprefixes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpsiteprefixes_ncsi_corpsiteprefixesbox", + "displayName": "Corporate Site Prefix List: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpwebprobeurl", + "displayName": "Specify corporate Website probe URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpwebprobeurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpwebprobeurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_corpwebprobeurl_ncsi_corpwebprobeurlbox", + "displayName": "Corporate Website Probe URL: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_domainlocationdeterminationurl", + "displayName": "Specify domain location determination URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_domainlocationdeterminationurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_domainlocationdeterminationurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_domainlocationdeterminationurl_ncsi_domainlocationdeterminationurlbox", + "displayName": "Corporate Domain Location Determination URL: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_globaldns", + "displayName": "Specify global DNS", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_globaldns_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_globaldns_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_globaldns_ncsi_useglobaldns_checkbox", + "displayName": "Use global DNS (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_globaldns_ncsi_useglobaldns_checkbox_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_globaldns_ncsi_useglobaldns_checkbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_passivepolling", + "displayName": "Specify passive polling", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_passivepolling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_passivepolling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_passivepolling_ncsi_disablepassivepolling_checkbox", + "displayName": "Disable passive polling (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_passivepolling_ncsi_disablepassivepolling_checkbox_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_ncsi_ncsi_passivepolling_ncsi_disablepassivepolling_checkbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_addresslookuponpingbehavior", + "displayName": "Specify address lookup behavior for DC locator ping", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_addresslookuponpingbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_addresslookuponpingbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_addresslookuponpingbehavior_netlogon_addresslookuponpingbehaviorlabel", + "displayName": "Address lookup behavior: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_addresstypereturned", + "displayName": "Return domain controller address type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_addresstypereturned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_addresstypereturned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allowdnssuffixsearch", + "displayName": "Use DNS name resolution when a single-label domain name is used, by appending different registered DNS suffixes, if the AllowSingleLabelDnsDomain setting is not enabled.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allowdnssuffixsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allowdnssuffixsearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allownt4crypto", + "displayName": "Allow cryptography algorithms compatible with Windows NT 4.0", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allownt4crypto_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allownt4crypto_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allowsinglelabeldnsdomain", + "displayName": "Use DNS name resolution with a single-label domain name instead of NetBIOS name resolution to locate the DC", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allowsinglelabeldnsdomain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_allowsinglelabeldnsdomain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_autositecoverage", + "displayName": "Use automated site coverage by the DC Locator DNS SRV Records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_autositecoverage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_autositecoverage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_avoidfallbacknetbiosdiscovery", + "displayName": "Do not use NetBIOS-based discovery for domain controller location when DNS-based discovery fails", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_avoidfallbacknetbiosdiscovery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_avoidfallbacknetbiosdiscovery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_avoidpdconwan", + "displayName": "Contact PDC on logon failure", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_avoidpdconwan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_avoidpdconwan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretryinitialperiod", + "displayName": "Use initial DC discovery retry setting for background callers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretryinitialperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretryinitialperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretryinitialperiod_netlogon_backgroundretryinitialperiodlabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretrymaximumperiod", + "displayName": "Use maximum DC discovery retry interval setting for background callers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretrymaximumperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretrymaximumperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretrymaximumperiod_netlogon_backgroundretrymaximumperiodlabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretryquittime", + "displayName": "Use final DC discovery retry setting for background callers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretryquittime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretryquittime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundretryquittime_netlogon_backgroundretryquittimelabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundsuccessfulrefreshperiod", + "displayName": "Use positive periodic DC cache refresh for background callers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundsuccessfulrefreshperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundsuccessfulrefreshperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_backgroundsuccessfulrefreshperiod_netlogon_backgroundsuccessfulrefreshperiodlabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_debugflag", + "displayName": "Specify log file debug output level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_debugflag_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_debugflag_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_debugflag_netlogon_debugflaglabel", + "displayName": "Level: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsavoidregisterrecords", + "displayName": "Specify DC Locator DNS records not registered by the DCs", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsavoidregisterrecords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsavoidregisterrecords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsavoidregisterrecords_netlogon_dnsavoidregisterrecordslabel", + "displayName": "Mnemonics: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsrefreshinterval", + "displayName": "Specify Refresh Interval of the DC Locator DNS records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsrefreshinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsrefreshinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsrefreshinterval_netlogon_dnsrefreshintervallabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnssrvrecorduselowercasehostnames", + "displayName": "Use lowercase DNS host names when registering domain controller SRV records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnssrvrecorduselowercasehostnames_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnssrvrecorduselowercasehostnames_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsttl", + "displayName": "Set TTL in the DC Locator DNS Records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsttl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsttl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_dnsttl_netlogon_dnsttllabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_expecteddialupdelay", + "displayName": "Specify expected dial-up delay on logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_expecteddialupdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_expecteddialupdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_expecteddialupdelay_netlogon_expecteddialupdelaylabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_forcerediscoveryinterval", + "displayName": "Force Rediscovery Interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_forcerediscoveryinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_forcerediscoveryinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_forcerediscoveryinterval_netlogon_forcerediscoveryintervallabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_gcsitecoverage", + "displayName": "Specify sites covered by the GC Locator DNS SRV Records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_gcsitecoverage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_gcsitecoverage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_gcsitecoverage_netlogon_gcsitecoveragelabel", + "displayName": "Sites: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ignoreincomingmailslotmessages", + "displayName": "Do not process incoming mailslot messages used for domain controller location based on NetBIOS domain names", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ignoreincomingmailslotmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ignoreincomingmailslotmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ldapsrvpriority", + "displayName": "Set Priority in the DC Locator DNS SRV records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ldapsrvpriority_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ldapsrvpriority_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ldapsrvpriority_netlogon_ldapsrvprioritylabel", + "displayName": "Priority: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ldapsrvweight", + "displayName": "Set Weight in the DC Locator DNS SRV records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ldapsrvweight_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ldapsrvweight_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ldapsrvweight_netlogon_ldapsrvweightlabel", + "displayName": "Weight: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_maximumlogfilesize", + "displayName": "Specify maximum log file size", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_maximumlogfilesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_maximumlogfilesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_maximumlogfilesize_netlogon_maximumlogfilesizelabel", + "displayName": "Bytes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ndncsitecoverage", + "displayName": "Specify sites covered by the application directory partition DC Locator DNS SRV records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ndncsitecoverage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ndncsitecoverage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_ndncsitecoverage_netlogon_ndncsitecoveragelabel", + "displayName": "Sites: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_negativecacheperiod", + "displayName": "Specify negative DC Discovery cache setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_negativecacheperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_negativecacheperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_negativecacheperiod_netlogon_negativecacheperiodlabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_netlogonsharecompatibilitymode", + "displayName": "Set Netlogon share compatibility", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_netlogonsharecompatibilitymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_netlogonsharecompatibilitymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_nonbackgroundsuccessfulrefreshperiod", + "displayName": "Specify positive periodic DC Cache refresh for non-background callers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_nonbackgroundsuccessfulrefreshperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_nonbackgroundsuccessfulrefreshperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_nonbackgroundsuccessfulrefreshperiod_netlogon_nonbackgroundsuccessfulrefreshperiodlabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_pingurgencymode", + "displayName": "Use urgent mode when pinging domain controllers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_pingurgencymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_pingurgencymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_pingurgencymode_netlogon_pingurgencymodelabel", + "displayName": "Ping urgency mode: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_scavengeinterval", + "displayName": "Set scavenge interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_scavengeinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_scavengeinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_scavengeinterval_netlogon_scavengeintervallabel", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sitecoverage", + "displayName": "Specify sites covered by the DC Locator DNS SRV records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sitecoverage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sitecoverage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sitecoverage_netlogon_sitecoveragelabel", + "displayName": "Sites: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sitename", + "displayName": "Specify site name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sitename_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sitename_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sitename_netlogon_sitenamelabel", + "displayName": "Site: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sysvolsharecompatibilitymode", + "displayName": "Set SYSVOL share compatibility", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sysvolsharecompatibilitymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_sysvolsharecompatibilitymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_trynextclosestsite", + "displayName": "Try Next Closest Site", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_trynextclosestsite_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_trynextclosestsite_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_usedynamicdns", + "displayName": "Specify dynamic registration of the DC Locator DNS Records", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_usedynamicdns_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_netlogon_netlogon_usedynamicdns_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_donotshowlocalonlyicon", + "displayName": "Do not show the \"local access only\" network icon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_donotshowlocalonlyicon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_donotshowlocalonlyicon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_forcetunneling", + "displayName": "Route all traffic through the internal network", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_forcetunneling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_forcetunneling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_forcetunneling_stateselect", + "displayName": "Select from the following states: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_forcetunneling_stateselect_enabled", + "displayName": "Enabled State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_forcetunneling_stateselect_disabled", + "displayName": "Disabled State", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_personalfirewallconfig", + "displayName": "Prohibit use of Internet Connection Firewall on your DNS domain network", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_personalfirewallconfig_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_personalfirewallconfig_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_showsharedaccessui", + "displayName": "Prohibit use of Internet Connection Sharing on your DNS domain network", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_showsharedaccessui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_showsharedaccessui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_stddomainusersetlocation", + "displayName": "Require domain users to elevate when setting a network's location", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_stddomainusersetlocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_networkconnections_nc_stddomainusersetlocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_alwayspinsubfolders", + "displayName": "Subfolders always available offline", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_alwayspinsubfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_alwayspinsubfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_2", + "displayName": "Specify administratively assigned Offline Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_2_lbl_assignedofflinefileslist", + "displayName": "Files and Folders: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_2_lbl_assignedofflinefileslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_2_lbl_assignedofflinefileslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings", + "displayName": "Configure Background Sync", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_lbl_backgroundsyncblockoutperiodduration", + "displayName": "Blockout Duration (minutes) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_lbl_backgroundsyncblockoutperiodstarttime", + "displayName": "Blockout Start Time (HHMM) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_lbl_backgroundsyncdefaultsynctime", + "displayName": "Sync Interval (minutes) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_lbl_backgroundsyncignoreblockouttime", + "displayName": "Maximum Allowed Time Without A Sync (minutes) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_lbl_backgroundsyncinforcedoffline", + "displayName": "Enable Background Sync for shares in user selected \"Work Offline\" mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_lbl_backgroundsyncinforcedoffline_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_lbl_backgroundsyncinforcedoffline_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_backgroundsyncsettings_lbl_backgroundsyncvariance", + "displayName": "Sync Variance (minutes) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_cachesize", + "displayName": "Limit disk space used by Offline Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_cachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_cachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_cachesize_lbl_autocachesizespin", + "displayName": "Size of auto-cached files: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_cachesize_lbl_totalcachesizespin", + "displayName": "Total size of offline files: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_2", + "displayName": "Non-default server disconnect actions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_2_lbl_customgoofflineactionslist", + "displayName": "Customize actions: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_2_lbl_customgoofflineactionslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_2_lbl_customgoofflineactionslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_defcachesize", + "displayName": "Default cache size", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_defcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_defcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_defcachesize_lbl_defcachesizespin", + "displayName": "Default cache size: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_enabled", + "displayName": "Allow or Disallow use of the Offline Files feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_encryptofflinefiles", + "displayName": "Encrypt the Offline Files cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_encryptofflinefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_encryptofflinefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_eventlogginglevel_2", + "displayName": "Event logging level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_eventlogginglevel_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_eventlogginglevel_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_eventlogginglevel_2_lbl_eventlogginglevelspin", + "displayName": "Enter [0-3]: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_exclusionlistsettings", + "displayName": "Enable file screens", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_exclusionlistsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_exclusionlistsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_exclusionlistsettings_lbl_exclusionlistsettingslist", + "displayName": "Extensions: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_extexclusionlist", + "displayName": "Files not cached", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_extexclusionlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_extexclusionlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_extexclusionlist_lbl_extexclusionlistedit", + "displayName": "Extensions: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_2", + "displayName": "Action on server disconnect", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_2_lbl_goofflineactioncombo", + "displayName": "Action: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_2_lbl_goofflineactioncombo_0", + "displayName": "Work offline", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_2_lbl_goofflineactioncombo_1", + "displayName": "Never go offline", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nocacheviewer_2", + "displayName": "Prevent use of Offline Files folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nocacheviewer_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nocacheviewer_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_noconfigcache_2", + "displayName": "Prohibit user configuration of Offline Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_noconfigcache_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_noconfigcache_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nomakeavailableoffline_2", + "displayName": "Remove \"Make Available Offline\" command", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nomakeavailableoffline_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nomakeavailableoffline_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_2", + "displayName": "Remove \"Make Available Offline\" for these files and folders", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_2_lbl_nopinfileslist", + "displayName": "Files and Folders: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_2_lbl_nopinfileslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_2_lbl_nopinfileslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_noreminders_2", + "displayName": "Turn off reminder balloons", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_noreminders_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_noreminders_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_onlinecachingsettings", + "displayName": "Enable Transparent Caching", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_onlinecachingsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_onlinecachingsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_onlinecachingsettings_lbl_onlinecachingsettingslist", + "displayName": "Enter network latency value in milliseconds (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_purgeatlogoff", + "displayName": "At logoff, delete local copy of user’s offline files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_purgeatlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_purgeatlogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_purgeatlogoff_lbl_purgeonlyautocachedfiles", + "displayName": "Delete only the temporary offline files. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_purgeatlogoff_lbl_purgeonlyautocachedfiles_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_purgeatlogoff_lbl_purgeonlyautocachedfiles_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_quickadimpin", + "displayName": "Turn on economical application of administratively assigned Offline Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_quickadimpin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_quickadimpin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_reminderfreq_2", + "displayName": "Reminder balloon frequency", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_reminderfreq_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_reminderfreq_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_reminderfreq_2_lbl_reminderfreqspin", + "displayName": "Minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_reminderinittimeout_2", + "displayName": "Initial reminder balloon lifetime", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_reminderinittimeout_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_reminderinittimeout_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_reminderinittimeout_2_lbl_reminderinittimeoutspin", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_remindertimeout_2", + "displayName": "Reminder balloon lifetime", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_remindertimeout_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_remindertimeout_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_remindertimeout_2_lbl_remindertimeoutspin", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinksettings", + "displayName": "Configure slow-link mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinksettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinksettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinksettings_lbl_slowlinksettingslist", + "displayName": "UNC Paths: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinksettings_lbl_slowlinksettingslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinksettings_lbl_slowlinksettingslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinkspeed", + "displayName": "Configure Slow link speed", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinkspeed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinkspeed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_slowlinkspeed_lbl_slowlinkspeedspin", + "displayName": "Value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogoff_2", + "displayName": "Synchronize all offline files before logging off", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogoff_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogoff_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogon_2", + "displayName": "Synchronize all offline files when logging on", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogon_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogon_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_2", + "displayName": "Synchronize offline files before suspend", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_2_lbl_syncatsuspendcombo", + "displayName": "Action: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_2_lbl_syncatsuspendcombo_0", + "displayName": "Quick", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_2_lbl_syncatsuspendcombo_1", + "displayName": "Full", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_synconcostednetwork", + "displayName": "Enable file synchronization on costed networks", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_synconcostednetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_synconcostednetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_workofflinedisabled_2", + "displayName": "Remove \"Work offline\" command", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_workofflinedisabled_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_offlinefiles_pol_workofflinedisabled_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectblockeddriverspolicy", + "displayName": "Notify blocked drivers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectblockeddriverspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectblockeddriverspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomcomponentfailurespolicy", + "displayName": "Detect application failures caused by deprecated COM objects", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomcomponentfailurespolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomcomponentfailurespolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomcomponentfailurespolicy_detectdeprecatedcomcomponentfailureslevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomcomponentfailurespolicy_detectdeprecatedcomcomponentfailureslevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomcomponentfailurespolicy_detectdeprecatedcomcomponentfailureslevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomponentfailurespolicy", + "displayName": "Detect application failures caused by deprecated Windows DLLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomponentfailurespolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomponentfailurespolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomponentfailurespolicy_detectdeprecatedcomponentfailureslevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomponentfailurespolicy_detectdeprecatedcomponentfailureslevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectdeprecatedcomponentfailurespolicy_detectdeprecatedcomponentfailureslevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectinstallfailurespolicy", + "displayName": "Detect application install failures", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectinstallfailurespolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectinstallfailurespolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectundetectedinstallerspolicy", + "displayName": "Detect application installers that need to be run as administrator", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectundetectedinstallerspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectundetectedinstallerspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectundetectedinstallerspolicy_detectundetectedinstallerslevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectundetectedinstallerspolicy_detectundetectedinstallerslevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectundetectedinstallerspolicy_detectundetectedinstallerslevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectupdatefailurespolicy", + "displayName": "Detect applications unable to launch installers under UAC", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectupdatefailurespolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectupdatefailurespolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectupdatefailurespolicy_detectupdatefailureslevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_detectupdatefailurespolicy_detectupdatefailureslevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_detectupdatefailurespolicy_detectupdatefailureslevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_disablepcauipolicy", + "displayName": "Detect compatibility issues for applications and drivers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pca_disablepcauipolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pca_disablepcauipolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache", + "displayName": "Turn on BranchCache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_distributed", + "displayName": "Set BranchCache Distributed Cache mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_distributed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_distributed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hosted", + "displayName": "Set BranchCache Hosted Cache mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hosted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hosted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hosted_wbc_cache_textbox", + "displayName": "Type the name of the hosted cache server (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hostedcachediscovery", + "displayName": "Enable Automatic Hosted Cache Discovery by Service Connection Point", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hostedcachediscovery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hostedcachediscovery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hostedmultipleservers", + "displayName": "Configure Hosted Cache Servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hostedmultipleservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hostedmultipleservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_hostedmultipleservers_wbc_multipleservers_listbox", + "displayName": "\r\nHosted cache servers\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_smb", + "displayName": "Configure BranchCache for network files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_smb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_smb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_enablewindowsbranchcache_smb_wbc_smblatency_decimaltextbox", + "displayName": "\r\nType the maximum round trip network latency (milliseconds) after which caching begins\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setcachepercent", + "displayName": "Set percentage of disk space used for client computer cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setcachepercent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setcachepercent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setcachepercent_wbc_cache_size_percent_dctxtbox", + "displayName": "\r\nSpecify the percentage of total disk space allocated for the cache\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdatacacheentrymaxage", + "displayName": "Set age for segments in the data cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdatacacheentrymaxage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdatacacheentrymaxage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdatacacheentrymaxage_wbc_cache_maxage_dctxtbox", + "displayName": "\r\nSpecify the age in days for which segments in the data cache are valid\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdowngrading", + "displayName": "Configure Client BranchCache Version Support", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdowngrading_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdowngrading_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdowngrading_downgrading_version", + "displayName": "Select from the following versions: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdowngrading_downgrading_version_1", + "displayName": "Windows Vista with BITS 4.0 installed, Windows 7, or Windows Server 2008 R2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_peertopeercaching_setdowngrading_downgrading_version_2", + "displayName": "Windows 8", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pentraining_pentrainingoff_2", + "displayName": "Turn off Tablet PC Pen Training", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pentraining_pentrainingoff_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pentraining_pentrainingoff_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_1", + "displayName": "Configure Scenario Execution Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_1_wdiscenarioexecutionpolicylevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_1_wdiscenarioexecutionpolicylevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_1_wdiscenarioexecutionpolicylevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_2", + "displayName": "Configure Scenario Execution Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_2_wdiscenarioexecutionpolicylevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_2_wdiscenarioexecutionpolicylevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_2_wdiscenarioexecutionpolicylevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_3", + "displayName": "Configure Scenario Execution Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_3_wdiscenarioexecutionpolicylevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_3_wdiscenarioexecutionpolicylevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_3_wdiscenarioexecutionpolicylevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_4", + "displayName": "Configure Scenario Execution Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_4_wdiscenarioexecutionpolicylevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_4_wdiscenarioexecutionpolicylevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_performancediagnostics_wdiscenarioexecutionpolicy_4_wdiscenarioexecutionpolicylevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_acconnectivityinstandby_2", + "displayName": "Allow network connectivity during connected-standby (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_acconnectivityinstandby_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_acconnectivityinstandby_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_accriticalsleeptransitionsdisable_2", + "displayName": "Turn on the ability for applications to prevent sleep transitions (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_accriticalsleeptransitionsdisable_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_accriticalsleeptransitionsdisable_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_acstartmenubuttonaction_2", + "displayName": "Select the Start menu Power button action (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_acstartmenubuttonaction_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_acstartmenubuttonaction_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_acstartmenubuttonaction_2_selectacstartmenubuttonaction", + "displayName": "User Interface Sleep Button Action (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_acstartmenubuttonaction_2_selectacstartmenubuttonaction_0", + "displayName": "Sleep", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_acstartmenubuttonaction_2_selectacstartmenubuttonaction_1", + "displayName": "Hibernate", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_acstartmenubuttonaction_2_selectacstartmenubuttonaction_2", + "displayName": "Shut down", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystempowerrequestac", + "displayName": "Allow applications to prevent automatic sleep (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystempowerrequestac_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystempowerrequestac_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystempowerrequestdc", + "displayName": "Allow applications to prevent automatic sleep (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystempowerrequestdc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystempowerrequestdc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystemsleepwithremotefilesopenac", + "displayName": "Allow automatic sleep with Open Network Files (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystemsleepwithremotefilesopenac_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystemsleepwithremotefilesopenac_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystemsleepwithremotefilesopendc", + "displayName": "Allow automatic sleep with Open Network Files (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystemsleepwithremotefilesopendc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_allowsystemsleepwithremotefilesopendc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_customactiveschemeoverride_2", + "displayName": "Specify a custom active power plan", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_customactiveschemeoverride_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_customactiveschemeoverride_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_customactiveschemeoverride_2_customactiveschemeoverrideenter", + "displayName": "Custom Active Power Plan (GUID): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction0_2", + "displayName": "Critical battery notification action", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction0_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction0_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction0_2_selectdcbatterydischargeaction0", + "displayName": "Critical Battery Notification Action (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction0_2_selectdcbatterydischargeaction0_0", + "displayName": "Take no action", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction0_2_selectdcbatterydischargeaction0_1", + "displayName": "Sleep", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction0_2_selectdcbatterydischargeaction0_2", + "displayName": "Hibernate", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction0_2_selectdcbatterydischargeaction0_3", + "displayName": "Shut down", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction1_2", + "displayName": "Low battery notification action", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction1_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction1_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction1_2_selectdcbatterydischargeaction1", + "displayName": "Low Battery Notification Action (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction1_2_selectdcbatterydischargeaction1_0", + "displayName": "Take no action", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction1_2_selectdcbatterydischargeaction1_1", + "displayName": "Sleep", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction1_2_selectdcbatterydischargeaction1_2", + "displayName": "Hibernate", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargeaction1_2_selectdcbatterydischargeaction1_3", + "displayName": "Shut down", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel0_2", + "displayName": "Critical battery notification level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel0_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel0_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel0_2_enterdcbatterydischargelevel0", + "displayName": "Critical Battery Notification Level (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel1_2", + "displayName": "Low battery notification level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel1_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel1_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel1_2_enterdcbatterydischargelevel1", + "displayName": "Low Battery Notification Level (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel1uinotification_2", + "displayName": "Turn off low battery user notification", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel1uinotification_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcbatterydischargelevel1uinotification_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcconnectivityinstandby_2", + "displayName": "Allow network connectivity during connected-standby (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcconnectivityinstandby_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcconnectivityinstandby_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dccriticalsleeptransitionsdisable_2", + "displayName": "Turn on the ability for applications to prevent sleep transitions (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dccriticalsleeptransitionsdisable_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dccriticalsleeptransitionsdisable_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcstartmenubuttonaction_2", + "displayName": "Select the Start menu Power button action (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcstartmenubuttonaction_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcstartmenubuttonaction_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcstartmenubuttonaction_2_selectdcstartmenubuttonaction", + "displayName": "User Interface Sleep Button Action (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dcstartmenubuttonaction_2_selectdcstartmenubuttonaction_0", + "displayName": "Sleep", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcstartmenubuttonaction_2_selectdcstartmenubuttonaction_1", + "displayName": "Hibernate", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dcstartmenubuttonaction_2_selectdcstartmenubuttonaction_2", + "displayName": "Shut down", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_diskacpowerdowntimeout_2", + "displayName": "Turn Off the hard disk (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_diskacpowerdowntimeout_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_diskacpowerdowntimeout_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_diskacpowerdowntimeout_2_enterdiskacpowerdowntimeout", + "displayName": "Turn Off the Hard Disk (seconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_diskdcpowerdowntimeout_2", + "displayName": "Turn Off the hard disk (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_diskdcpowerdowntimeout_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_diskdcpowerdowntimeout_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_diskdcpowerdowntimeout_2_enterdiskdcpowerdowntimeout", + "displayName": "Turn Off the Hard Disk (seconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dont_poweroff_aftershutdown", + "displayName": "Do not turn off system power after a Windows system shutdown has occurred.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_dont_poweroff_aftershutdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_dont_poweroff_aftershutdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_enabledesktopslideshowac", + "displayName": "Turn on desktop background slideshow (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_enabledesktopslideshowac_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_enabledesktopslideshowac_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_enabledesktopslideshowdc", + "displayName": "Turn on desktop background slideshow (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_enabledesktopslideshowdc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_enabledesktopslideshowdc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_inboxactiveschemeoverride_2", + "displayName": "Select an active power plan", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_inboxactiveschemeoverride_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_inboxactiveschemeoverride_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_inboxactiveschemeoverride_2_inboxactiveschemeoverrideenter", + "displayName": "Active Power Plan: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_inboxactiveschemeoverride_2_inboxactiveschemeoverrideenter_381b4222-f694-41f0-9685-ff5bb260df2e", + "displayName": "Automatic (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_inboxactiveschemeoverride_2_inboxactiveschemeoverrideenter_a1841308-3541-4fab-bc81-f71556f20b4a", + "displayName": "Power Saver", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_inboxactiveschemeoverride_2_inboxactiveschemeoverrideenter_8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c", + "displayName": "High Performance", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_powerthrottlingturnoff", + "displayName": "Turn off Power Throttling", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_powerthrottlingturnoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_powerthrottlingturnoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_reservebatterynotificationlevel", + "displayName": "Reserve battery notification level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_power_reservebatterynotificationlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_power_reservebatterynotificationlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_power_reservebatterynotificationlevel_enterreservebatterynotificationlevel", + "displayName": "Reserve Battery Notification Level (percent): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablemodulelogging", + "displayName": "Turn on Module Logging", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablemodulelogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablemodulelogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablemodulelogging_listbox_modulenames", + "displayName": "Module Names (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts", + "displayName": "Turn on Script Execution", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_executionpolicy", + "displayName": "Execution Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_executionpolicy_allsigned", + "displayName": "Allow only signed scripts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_executionpolicy_remotesigned", + "displayName": "Allow local scripts and remote signed scripts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_executionpolicy_unrestricted", + "displayName": "Allow all scripts", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting", + "displayName": "Turn on PowerShell Transcription", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_enableinvocationheader", + "displayName": "Include invocation headers: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_enableinvocationheader_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_enableinvocationheader_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_outputdirectory", + "displayName": "Transcript output directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enableupdatehelpdefaultsourcepath", + "displayName": "Set the default source path for Update-Help", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enableupdatehelpdefaultsourcepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enableupdatehelpdefaultsourcepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_powershellexecutionpolicy_enableupdatehelpdefaultsourcepath_sourcepathforupdatehelp", + "displayName": "Default Source Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablebackuprestore_2", + "displayName": "Prevent restoring previous versions from backups", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablebackuprestore_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablebackuprestore_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablelocalpage_2", + "displayName": "Hide previous versions list for local files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablelocalpage_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablelocalpage_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablelocalrestore_2", + "displayName": "Prevent restoring local previous versions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablelocalrestore_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disablelocalrestore_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disableremotepage_2", + "displayName": "Hide previous versions list for remote files", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disableremotepage_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disableremotepage_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disableremoterestore_2", + "displayName": "Prevent restoring remote previous versions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disableremoterestore_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_disableremoterestore_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_hidebackupentries_2", + "displayName": "Hide previous versions of files on backup location", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_previousversions_hidebackupentries_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_previousversions_hidebackupentries_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_allowwebprinting", + "displayName": "Activate Internet printing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_allowwebprinting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_allowwebprinting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_applicationdriverisolation", + "displayName": "Isolate print drivers from applications", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_applicationdriverisolation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_applicationdriverisolation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_customizedsupporturl", + "displayName": "Custom support URL in the Printers folder's left pane", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_customizedsupporturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_customizedsupporturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_customizedsupporturl_customizedsupporturl_link", + "displayName": "URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_domainprinters", + "displayName": "Add Printer wizard - Network scan page (Managed network)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_domainprinters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_domainprinters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_domainprinters_adprinters", + "displayName": "Number of directory printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_domainprinters_bluetoothprinters", + "displayName": "Number of Bluetooth printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_domainprinters_ipprinters", + "displayName": "Number of TCP/IP printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_domainprinters_shareprinters", + "displayName": "Number of shared printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_domainprinters_wsdprinters", + "displayName": "Number of Web Services Printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_donotinstallcompatibledriverfromwindowsupdate", + "displayName": "Extend Point and Print connection to search Windows Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_donotinstallcompatibledriverfromwindowsupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_donotinstallcompatibledriverfromwindowsupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_emfdespooling", + "displayName": "Always render print jobs on the server", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_emfdespooling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_emfdespooling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_forcesoftwarerasterization", + "displayName": "Always rasterize content to be printed using a software rasterizer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_forcesoftwarerasterization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_forcesoftwarerasterization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_kmprintersareblocked", + "displayName": "Disallow installation of printers using kernel-mode drivers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_kmprintersareblocked_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_kmprintersareblocked_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_mxdwuselegacyoutputformatmsxps", + "displayName": "Change Microsoft XPS Document Writer (MXDW) default output format to the legacy Microsoft XPS format (*.xps)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_mxdwuselegacyoutputformatmsxps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_mxdwuselegacyoutputformatmsxps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_nondomainprinters", + "displayName": "Add Printer wizard - Network scan page (Unmanaged network)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_nondomainprinters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_nondomainprinters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_nondomainprinters_bluetoothprinters", + "displayName": "Number of Bluetooth printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_nondomainprinters_ipprinters", + "displayName": "Number of TCP/IP printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_nondomainprinters_shareprinters", + "displayName": "Number of shared printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_nondomainprinters_wsdprinters", + "displayName": "Number of Web Services Printers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_packagepointandprintonly_win7", + "displayName": "Only use Package Point and print", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_packagepointandprintonly_win7_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_packagepointandprintonly_win7_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_packagepointandprintserverlist_win7", + "displayName": "Package Point and print - Approved servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_packagepointandprintserverlist_win7_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_packagepointandprintserverlist_win7_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_packagepointandprintserverlist_win7_packagepointandprintserverlist_edit", + "displayName": "Enter fully qualified server names (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_physicallocation", + "displayName": "Computer location", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_physicallocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_physicallocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_physicallocation_physicallocation_name", + "displayName": "Location (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_physicallocationsupport", + "displayName": "Pre-populate printer search location text", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_physicallocationsupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_physicallocationsupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_printdriverisolationexecutionpolicy", + "displayName": "Execute print drivers in isolated processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_printdriverisolationexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_printdriverisolationexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_printdriverisolationoverridecompat", + "displayName": "Override print driver execution compatibility setting reported by print driver", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_printdriverisolationoverridecompat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_printdriverisolationoverridecompat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_printerserverthread", + "displayName": "Printer browsing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_printerserverthread_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_printerserverthread_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_showjobtitleineventlogs", + "displayName": "Allow job name in event logs", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_showjobtitleineventlogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_showjobtitleineventlogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_v4driverdisallowprinterextension", + "displayName": "Do not allow v4 printer drivers to show printer extensions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing_v4driverdisallowprinterextension_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing_v4driverdisallowprinterextension_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_autopublishing", + "displayName": "Automatically publish new printers in Active Directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_autopublishing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_autopublishing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_immortalprintqueue", + "displayName": "Allow pruning of published printers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_immortalprintqueue_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_immortalprintqueue_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_prunedownlevel", + "displayName": "Prune printers that are not automatically republished", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_prunedownlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_prunedownlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_prunedownlevel_prunedownleveltitle", + "displayName": "Prune non-republishing printers: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_prunedownlevel_prunedownleveltitle_0", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_prunedownlevel_prunedownleveltitle_1", + "displayName": "Only if Print Server is found", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_prunedownlevel_prunedownleveltitle_2", + "displayName": "Whenever printer is not found", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval", + "displayName": "Directory pruning interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle", + "displayName": "Interval: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_0", + "displayName": "Continuous", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_10", + "displayName": "10 Minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_30", + "displayName": "30 Minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_60", + "displayName": "1 Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_240", + "displayName": "4 Hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_480", + "displayName": "8 Hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_720", + "displayName": "12 Hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_1440", + "displayName": "1 Day", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_2880", + "displayName": "2 Days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_4320", + "displayName": "3 Days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_5760", + "displayName": "4 Days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_7200", + "displayName": "5 Days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_8640", + "displayName": "6 Days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_10080", + "displayName": "1 Week", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_20160", + "displayName": "2 Weeks", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_30240", + "displayName": "3 Weeks", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_40320", + "displayName": "4 Weeks", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_50400", + "displayName": "5 Weeks", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_60480", + "displayName": "6 Weeks", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_70560", + "displayName": "7 Weeks", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruninginterval_pruningintervaltitle_4294967295", + "displayName": "Infinite", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority", + "displayName": "Directory pruning priority", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority_prioritylevel", + "displayName": "Priority level: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority_prioritylevel_4294967294", + "displayName": "Lowest", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority_prioritylevel_4294967295", + "displayName": "Below Normal", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority_prioritylevel_0", + "displayName": "Normal", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority_prioritylevel_1", + "displayName": "Above Normal", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningpriority_prioritylevel_2", + "displayName": "Highest", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries", + "displayName": "Directory pruning retry", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_pruningretriestitle", + "displayName": "Retries: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_pruningretriestitle_0", + "displayName": "No Retry", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_pruningretriestitle_1", + "displayName": "1 Retry", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_pruningretriestitle_2", + "displayName": "2 Retries", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_pruningretriestitle_3", + "displayName": "3 Retries", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_pruningretriestitle_4", + "displayName": "4 Retries", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_pruningretriestitle_5", + "displayName": "5 Retries", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretries_pruningretriestitle_6", + "displayName": "6 Retries", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretrylog", + "displayName": "Log directory pruning retry events", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretrylog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_pruningretrylog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_registerspoolerremoterpcendpoint", + "displayName": "Allow Print Spooler to accept client connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_registerspoolerremoterpcendpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_registerspoolerremoterpcendpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate", + "displayName": "Check published state", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_verifypublishedstatetitle", + "displayName": "Published State Check Interval: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_verifypublishedstatetitle_30", + "displayName": "30 Minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_verifypublishedstatetitle_60", + "displayName": "1 Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_verifypublishedstatetitle_240", + "displayName": "4 Hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_verifypublishedstatetitle_480", + "displayName": "8 Hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_verifypublishedstatetitle_720", + "displayName": "12 Hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_verifypublishedstatetitle_1440", + "displayName": "1 Day", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_printing2_verifypublishedstate_verifypublishedstatetitle_4294967295", + "displayName": "Never", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_pushtoinstall_disablepushtoinstall", + "displayName": "Turn off Push To Install service", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_pushtoinstall_disablepushtoinstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_pushtoinstall_disablepushtoinstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosmaxoutstandingsends", + "displayName": "Limit outstanding packets", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosmaxoutstandingsends_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosmaxoutstandingsends_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosmaxoutstandingsends_qosmaxoutstandingsends_box", + "displayName": "Number of packets: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosnonbesteffortlimit", + "displayName": "Limit reservable bandwidth", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosnonbesteffortlimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosnonbesteffortlimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosnonbesteffortlimit_qosnonbesteffortlimit_box", + "displayName": "Bandwidth limit (%): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_c", + "displayName": "Best effort service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_c_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_c_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_c_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_nc", + "displayName": "Best effort service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_nc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_nc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_nc_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_pv", + "displayName": "Best effort service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_pv_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_pv_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypebesteffort_pv_qospriorityvalue", + "displayName": "Priority value (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_c", + "displayName": "Controlled load service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_c_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_c_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_c_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_nc", + "displayName": "Controlled load service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_nc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_nc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_nc_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_pv", + "displayName": "Controlled load service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_pv_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_pv_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypecontrolledload_pv_qospriorityvalue", + "displayName": "Priority value (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_c", + "displayName": "Guaranteed service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_c_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_c_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_c_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_nc", + "displayName": "Guaranteed service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_nc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_nc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_nc_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_pv", + "displayName": "Guaranteed service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_pv_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_pv_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypeguaranteed_pv_qospriorityvalue", + "displayName": "Priority value (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_c", + "displayName": "Network control service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_c_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_c_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_c_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_nc", + "displayName": "Network control service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_nc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_nc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_nc_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_pv", + "displayName": "Network control service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_pv_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_pv_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenetworkcontrol_pv_qospriorityvalue", + "displayName": "Priority value (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenonconforming", + "displayName": "Non-conforming packets", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenonconforming_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenonconforming_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypenonconforming_qospriorityvalue", + "displayName": "Priority value (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_c", + "displayName": "Qualitative service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_c_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_c_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_c_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_nc", + "displayName": "Qualitative service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_nc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_nc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_nc_qosdscpvalue", + "displayName": "DSCP value: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_pv", + "displayName": "Qualitative service type", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_pv_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_pv_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qosservicetypequalitative_pv_qospriorityvalue", + "displayName": "Priority value (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qostimerresolution", + "displayName": "Set timer resolution", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_qos_qostimerresolution_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qostimerresolution_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_qos_qostimerresolution_qostimerresolution_box", + "displayName": "Timer units (in microseconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_radar_wdiscenarioexecutionpolicy", + "displayName": "Configure Scenario Execution Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_radar_wdiscenarioexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_radar_wdiscenarioexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_radar_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_radar_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_radar_wdiscenarioexecutionpolicy_wdiscenarioexecutionpolicylevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_ee_enablepersistenttimestamp", + "displayName": "Enable Persistent Time Stamp", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_reliability_ee_enablepersistenttimestamp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_ee_enablepersistenttimestamp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_ee_enablepersistenttimestamp_ee_enablepersistenttimestamp_desc4", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_pch_reportshutdownevents", + "displayName": "Report unplanned shutdown events", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_reliability_pch_reportshutdownevents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_pch_reportshutdownevents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdowneventtrackerstatefile", + "displayName": "Activate Shutdown Event Tracker System State Data feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdowneventtrackerstatefile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdowneventtrackerstatefile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdownreason", + "displayName": "Display Shutdown Event Tracker", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdownreason_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdownreason_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdownreason_shutdownreason_box", + "displayName": "Shutdown Event Tracker should be displayed: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdownreason_shutdownreason_box_1", + "displayName": "Always", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdownreason_shutdownreason_box_2", + "displayName": "Workstation Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_reliability_shutdownreason_shutdownreason_box_3", + "displayName": "Server Only", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_encryptedticketonly", + "displayName": "Allow only Windows Vista or later connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_encryptedticketonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_encryptedticketonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_optimize_bandwidth", + "displayName": "Turn on bandwidth optimization", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_optimize_bandwidth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_optimize_bandwidth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_optimize_bandwidth_ra_optimize_bandwidth_list", + "displayName": "Optimize settings for reduced bandwidth: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_optimize_bandwidth_ra_optimize_bandwidth_list_14", + "displayName": "No optimization", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_optimize_bandwidth_ra_optimize_bandwidth_list_12", + "displayName": "No full window drag", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_optimize_bandwidth_ra_optimize_bandwidth_list_8", + "displayName": "Turn off background", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_remoteassistance_ra_optimize_bandwidth_ra_optimize_bandwidth_list_0", + "displayName": "Full optimization", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_accessrights_reboottime_2", + "displayName": "Set time (in seconds) to force reboot", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_accessrights_reboottime_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_accessrights_reboottime_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_accessrights_reboottime_2_accessrights_reboottime_seconds", + "displayName": "Time (in seconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyexecute_access_2", + "displayName": "CD and DVD: Deny execute access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyexecute_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyexecute_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyread_access_2", + "displayName": "CD and DVD: Deny read access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyread_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyread_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denywrite_access_2", + "displayName": "CD and DVD: Deny write access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denywrite_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denywrite_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_customclasses_denyread_access_2", + "displayName": "Custom Classes: Deny read access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_customclasses_denyread_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_customclasses_denyread_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_customclasses_denyread_access_2_customclasses_list", + "displayName": "GUID for custom removable storage class: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_customclasses_denywrite_access_2", + "displayName": "Custom Classes: Deny write access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_customclasses_denywrite_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_customclasses_denywrite_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_customclasses_denywrite_access_2_customclasses_list", + "displayName": "GUID for custom removable storage class: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyexecute_access_2", + "displayName": "Floppy Drives: Deny execute access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyexecute_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyexecute_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyread_access_2", + "displayName": "Floppy Drives: Deny read access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyread_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyread_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denywrite_access_2", + "displayName": "Floppy Drives: Deny write access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denywrite_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_floppydrives_denywrite_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removable_remote_allow_access", + "displayName": "All Removable Storage: Allow direct access in remote sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removable_remote_allow_access_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removable_remote_allow_access_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyexecute_access_2", + "displayName": "Removable Disks: Deny execute access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyexecute_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyexecute_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyread_access_2", + "displayName": "Removable Disks: Deny read access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyread_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyread_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removablestorageclasses_denyall_access_2", + "displayName": "All Removable Storage classes: Deny all access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removablestorageclasses_denyall_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_removablestorageclasses_denyall_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyexecute_access_2", + "displayName": "Tape Drives: Deny execute access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyexecute_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyexecute_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyread_access_2", + "displayName": "Tape Drives: Deny read access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyread_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyread_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denywrite_access_2", + "displayName": "Tape Drives: Deny write access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denywrite_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_tapedrives_denywrite_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_wpddevices_denyread_access_2", + "displayName": "WPD Devices: Deny read access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_wpddevices_denyread_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_wpddevices_denyread_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_wpddevices_denywrite_access_2", + "displayName": "WPD Devices: Deny write access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_wpddevices_denywrite_access_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_removablestorage_wpddevices_denywrite_access_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation", + "displayName": "Propagate extended error information", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation_rpcextendederrorinformationlist", + "displayName": "Propagation of extended error information: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation_rpcextendederrorinformationlist_0", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation_rpcextendederrorinformationlist_1", + "displayName": "On with Exceptions", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation_rpcextendederrorinformationlist_2", + "displayName": "Off with Exceptions", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation_rpcextendederrorinformationlist_3", + "displayName": "On", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcextendederrorinformation_rpcexterrorexceptions", + "displayName": "Extended Error Information Exceptions: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcignoredelegationfailure", + "displayName": "Ignore Delegation Failure", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcignoredelegationfailure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcignoredelegationfailure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcignoredelegationfailure_rpcignoredelegationfailurelist", + "displayName": "Ignoring Delegation Failure: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcignoredelegationfailure_rpcignoredelegationfailurelist_0", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcignoredelegationfailure_rpcignoredelegationfailurelist_1", + "displayName": "On", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcminimumhttpconnectiontimeout", + "displayName": "Set Minimum Idle Connection Timeout for RPC/HTTP connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcminimumhttpconnectiontimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcminimumhttpconnectiontimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcminimumhttpconnectiontimeout_rpcminimumhttpconnectiontimeoutvalue", + "displayName": "Minimum Idle Connection Timeout (in seconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation", + "displayName": "Maintain RPC Troubleshooting State Information", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation_rpcstateinformationlist", + "displayName": "RPC Runtime state information to maintain: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation_rpcstateinformationlist_0", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation_rpcstateinformationlist_1", + "displayName": "Auto1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation_rpcstateinformationlist_2", + "displayName": "Auto2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation_rpcstateinformationlist_3", + "displayName": "Server", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_rpc_rpcstateinformation_rpcstateinformationlist_4", + "displayName": "Full", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sam_samngckeyrocavalidation", + "displayName": "Configure validation of ROCA-vulnerable WHfB keys during authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sam_samngckeyrocavalidation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sam_samngckeyrocavalidation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sam_samngckeyrocavalidation_samngckeyrocavalidation_settings", + "displayName": "Options for handling ROCA-vulnerable WHfB keys: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sam_samngckeyrocavalidation_samngckeyrocavalidation_settings_0", + "displayName": "Ignore ROCA-vulnerable WHfB keys", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sam_samngckeyrocavalidation_samngckeyrocavalidation_settings_1", + "displayName": "Audit ROCA-vulnerable WHfB keys on use", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sam_samngckeyrocavalidation_samngckeyrocavalidation_settings_2", + "displayName": "Block ROCA-vulnerable WHfB keys on use", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_allow_logon_script_netbiosdisabled", + "displayName": "Allow logon scripts when NetBIOS or WINS is disabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_scripts_allow_logon_script_netbiosdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_allow_logon_script_netbiosdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_maxgposcriptwaitpolicy", + "displayName": "Specify maximum wait time for Group Policy scripts", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_scripts_maxgposcriptwaitpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_maxgposcriptwaitpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_maxgposcriptwaitpolicy_maxgposcriptwait", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_computer_ps_scripts_first", + "displayName": "Run Windows PowerShell scripts first at computer startup, shutdown", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_computer_ps_scripts_first_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_computer_ps_scripts_first_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_logon_script_sync_2", + "displayName": "Run logon scripts synchronously", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_logon_script_sync_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_logon_script_sync_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_shutdown_script_visible", + "displayName": "Display instructions in shutdown scripts as they run", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_shutdown_script_visible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_shutdown_script_visible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_startup_script_sync", + "displayName": "Run startup scripts asynchronously", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_startup_script_sync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_startup_script_sync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_startup_script_visible", + "displayName": "Display instructions in startup scripts as they run", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_startup_script_visible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_startup_script_visible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_user_ps_scripts_first", + "displayName": "Run Windows PowerShell scripts first at user logon, logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_user_ps_scripts_first_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_scripts_run_user_ps_scripts_first_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_betterwhenconnected", + "displayName": "Troubleshooting: Allow users to access online troubleshooting content on Microsoft servers from the Troubleshooting Control Panel (via the Windows Online Troubleshooting Service - WOTS)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_betterwhenconnected_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_betterwhenconnected_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_scripteddiagnosticsexecutionpolicy", + "displayName": "Troubleshooting: Allow users to access and run Troubleshooting Wizards", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_scripteddiagnosticsexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_scripteddiagnosticsexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_scripteddiagnosticssecuritypolicy", + "displayName": "Configure Security Policy for Scripted Diagnostics", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_scripteddiagnosticssecuritypolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiageng_scripteddiagnosticssecuritypolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiagschd_scheduleddiagnosticsexecutionpolicy", + "displayName": "Configure Scheduled Maintenance Behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sdiagschd_scheduleddiagnosticsexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiagschd_scheduleddiagnosticsexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiagschd_scheduleddiagnosticsexecutionpolicy_scheduleddiagnosticsexecutionpolicylevel", + "displayName": "Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sdiagschd_scheduleddiagnosticsexecutionpolicy_scheduleddiagnosticsexecutionpolicylevel_1", + "displayName": "Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sdiagschd_scheduleddiagnosticsexecutionpolicy_scheduleddiagnosticsexecutionpolicylevel_2", + "displayName": "Regular", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_securitycenter_securitycenter_securitycenterindomain", + "displayName": "Turn on Security Center (Domain PCs only)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_securitycenter_securitycenter_securitycenterindomain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_securitycenter_securitycenter_securitycenterindomain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sensors_disablelocationscripting_2", + "displayName": "Turn off location scripting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sensors_disablelocationscripting_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sensors_disablelocationscripting_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sensors_disablesensors_2", + "displayName": "Turn off sensors", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sensors_disablesensors_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sensors_disablesensors_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_do_not_display_manage_your_server_page", + "displayName": "Do not display Manage Your Server page at logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_servermanager_do_not_display_manage_your_server_page_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_do_not_display_manage_your_server_page_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_donotlaunchinitialconfigurationtasks", + "displayName": "Do not display Initial Configuration Tasks window automatically at logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_servermanager_donotlaunchinitialconfigurationtasks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_donotlaunchinitialconfigurationtasks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_donotlaunchservermanager", + "displayName": "Do not display Server Manager automatically at logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_servermanager_donotlaunchservermanager_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_donotlaunchservermanager_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_servermanagerautorefreshrate", + "displayName": "Configure the refresh interval for Server Manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_servermanager_servermanagerautorefreshrate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_servermanagerautorefreshrate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_servermanager_servermanagerautorefreshrate_refreshrate", + "displayName": "Minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing", + "displayName": "Specify settings for optional component installation and component repair", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_checkbox_neverusewu", + "displayName": "Never attempt to download payload from Windows Update (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_checkbox_neverusewu_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_checkbox_neverusewu_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_checkbox_sidestepwsus", + "displayName": "Download repair content and optional features directly from Windows Update instead of Windows Server Update Services (WSUS) (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_checkbox_sidestepwsus_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_checkbox_sidestepwsus_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_servicing_servicing_localsourcepath_textbox", + "displayName": "Alternate source file path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableapplicationsettingsync", + "displayName": "Do not sync app settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableapplicationsettingsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableapplicationsettingsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableapplicationsettingsync_checkbox_useroverride", + "displayName": "Allow users to turn \"app settings\" syncing on. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableapplicationsettingsync_checkbox_useroverride_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableapplicationsettingsync_checkbox_useroverride_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableappsyncsettingsync", + "displayName": "Do not sync Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableappsyncsettingsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableappsyncsettingsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableappsyncsettingsync_checkbox_useroverride", + "displayName": "Allow users to turn \"AppSync\" syncing on. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableappsyncsettingsync_checkbox_useroverride_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disableappsyncsettingsync_checkbox_useroverride_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablecredentialssettingsync", + "displayName": "Do not sync passwords", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablecredentialssettingsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablecredentialssettingsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablecredentialssettingsync_checkbox_useroverride", + "displayName": "Allow users to turn \"passwords\" syncing on. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablecredentialssettingsync_checkbox_useroverride_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablecredentialssettingsync_checkbox_useroverride_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disabledesktopthemesettingsync", + "displayName": "Do not sync desktop personalization", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disabledesktopthemesettingsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disabledesktopthemesettingsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disabledesktopthemesettingsync_checkbox_useroverride", + "displayName": "Allow users to turn \"desktop personalization\" syncing on. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disabledesktopthemesettingsync_checkbox_useroverride_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disabledesktopthemesettingsync_checkbox_useroverride_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablepersonalizationsettingsync", + "displayName": "Do not sync personalize", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablepersonalizationsettingsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablepersonalizationsettingsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablepersonalizationsettingsync_checkbox_useroverride", + "displayName": "Allow users to turn \"personalize\" syncing on. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablepersonalizationsettingsync_checkbox_useroverride_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablepersonalizationsettingsync_checkbox_useroverride_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesettingsync", + "displayName": "Do not sync", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesettingsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesettingsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesettingsync_checkbox_useroverride", + "displayName": "Allow users to turn syncing on. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesettingsync_checkbox_useroverride_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesettingsync_checkbox_useroverride_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablestartlayoutsettingsync", + "displayName": "Do not sync start settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablestartlayoutsettingsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablestartlayoutsettingsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablestartlayoutsettingsync_checkbox_useroverride", + "displayName": "Allow users to turn \"start layout\" syncing on. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablestartlayoutsettingsync_checkbox_useroverride_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablestartlayoutsettingsync_checkbox_useroverride_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesynconpaidnetwork", + "displayName": "Do not sync on metered connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesynconpaidnetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablesynconpaidnetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablewindowssettingsync", + "displayName": "Do not sync other Windows settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablewindowssettingsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablewindowssettingsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablewindowssettingsync_checkbox_useroverride", + "displayName": "Allow users to turn \"other Windows settings\" syncing on. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablewindowssettingsync_checkbox_useroverride_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_settingsync_disablewindowssettingsync_checkbox_useroverride_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_sharing_disablehomegroup", + "displayName": "Prevent the computer from joining a homegroup", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_sharing_disablehomegroup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_sharing_disablehomegroup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowcertificateswithnoeku", + "displayName": "Allow certificates with no extended key usage certificate attribute", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowcertificateswithnoeku_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowcertificateswithnoeku_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowintegratedunblock", + "displayName": "Allow Integrated Unblock screen to be displayed at the time of logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowintegratedunblock_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowintegratedunblock_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowsignatureonlykeys", + "displayName": "Allow signature keys valid for Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowsignatureonlykeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowsignatureonlykeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowtimeinvalidcertificates", + "displayName": "Allow time invalid certificates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowtimeinvalidcertificates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_allowtimeinvalidcertificates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certpropenabledstring", + "displayName": "Turn on certificate propagation from smart card", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certpropenabledstring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certpropenabledstring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootcleanupstring", + "displayName": "Configure root certificate clean up", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootcleanupstring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootcleanupstring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootcleanupstring_rootcertcleanupoption_levels", + "displayName": "Root certificate clean up options (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootcleanupstring_rootcertcleanupoption_levels_0", + "displayName": "No cleanup", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootcleanupstring_rootcertcleanupoption_levels_1", + "displayName": "Clean up certificates on smart card removal", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootcleanupstring_rootcertcleanupoption_levels_2", + "displayName": "Clean up certificates on log off", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootenabledstring", + "displayName": "Turn on root certificate propagation from smart card", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootenabledstring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_certproprootenabledstring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_disallowplaintextpin", + "displayName": "Prevent plaintext PINs from being returned by Credential Manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_disallowplaintextpin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_disallowplaintextpin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_enumerateecccerts", + "displayName": "Allow ECC certificates to be used for logon and authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_enumerateecccerts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_enumerateecccerts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_filterduplicatecerts", + "displayName": "Filter duplicate logon certificates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_filterduplicatecerts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_filterduplicatecerts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_forcereadingallcertificates", + "displayName": "Force the reading of all certificates from the smart card", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_forcereadingallcertificates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_forcereadingallcertificates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_integratedunblockpromptstring", + "displayName": "Display string when smart card is blocked", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_integratedunblockpromptstring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_integratedunblockpromptstring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_integratedunblockpromptstring_integratedunblockpromptstring", + "displayName": "Display string when smart card is blocked (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_reversesubject", + "displayName": "Reverse the subject name stored in a certificate when displaying", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_reversesubject_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_reversesubject_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_scpnpenabled", + "displayName": "Turn on Smart Card Plug and Play service", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_scpnpenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_scpnpenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_scpnpnotification", + "displayName": "Notify user of successful smart card driver installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_scpnpnotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_scpnpnotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_x509hintsneeded", + "displayName": "Allow user name hint", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_smartcard_x509hintsneeded_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_smartcard_x509hintsneeded_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_communities", + "displayName": "Specify communities", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_communities_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_communities_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_communities_snmp_communitieslistbox", + "displayName": "Communities (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_permittedmanagers", + "displayName": "Specify permitted managers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_permittedmanagers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_permittedmanagers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_permittedmanagers_snmp_permittedmanagerslistbox", + "displayName": "Permitted managers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_traps_public", + "displayName": "Specify traps for public community", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_traps_public_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_traps_public_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_snmp_snmp_traps_public_snmp_traps_publiclistbox", + "displayName": "Trap configuration (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_soundrec_soundrec_diableapplication_titletext_2", + "displayName": "Do not allow Sound Recorder to run", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_soundrec_soundrec_diableapplication_titletext_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_soundrec_soundrec_diableapplication_titletext_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration", + "displayName": "Customize message for Access Denied errors", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_additonalemailtotext", + "displayName": "Additional recipients: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_allowemailrequestscheck", + "displayName": "Enable users to request assistance (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_allowemailrequestscheck_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_allowemailrequestscheck_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_emailmessagetext", + "displayName": "\r\nAdd the following text to the end of the email:\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_errormessagetext", + "displayName": "\r\nDisplay the following message to users who are denied access:\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_generatelogcheck", + "displayName": "Log emails in Application and Services event log (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_generatelogcheck_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_generatelogcheck_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_includedeviceclaimscheck", + "displayName": "Include device claims (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_includedeviceclaimscheck_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_includedeviceclaimscheck_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_includeuserclaimscheck", + "displayName": "Include user claims (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_includeuserclaimscheck_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_includeuserclaimscheck_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_putadminontocheck", + "displayName": "File server administrator (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_putadminontocheck_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_putadminontocheck_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_putdataownerontocheck", + "displayName": "Folder owner (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_putdataownerontocheck_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_accessdeniedconfiguration_putdataownerontocheck_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_centralclassificationlist", + "displayName": "File Classification Infrastructure: Specify classification properties list", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_centralclassificationlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_centralclassificationlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_centralclassificationlist_centralclassificationlisttextelement", + "displayName": "Classification properties list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_enablemanualux", + "displayName": "File Classification Infrastructure: Display Classification tab in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_enablemanualux_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_enablemanualux_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_enableshellaccesscheck", + "displayName": "Enable access-denied assistance on client for all file types", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_srmfci_enableshellaccesscheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_srmfci_enableshellaccesscheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_hidepoweroptions", + "displayName": "Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_startmenu_hidepoweroptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_hidepoweroptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist", + "displayName": "Remove All Programs list from the Start menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown", + "displayName": "Choose one of the following actions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown_0", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown_3", + "displayName": "Collapse", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown_2", + "displayName": "Collapse and disable setting", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown_1", + "displayName": "Remove and disable setting", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_norun", + "displayName": "Remove Run menu from Start Menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_startmenu_norun_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_norun_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nosettaskbar", + "displayName": "Prevent changes to Taskbar and Start Menu Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nosettaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nosettaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_notraycontextmenu", + "displayName": "Remove access to the context menus for the taskbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_startmenu_notraycontextmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_notraycontextmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nouninstallfromstart", + "displayName": "Prevent users from uninstalling applications from Start", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nouninstallfromstart_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_nouninstallfromstart_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_startpinappswheninstalled", + "displayName": "Pin Apps to Start when installed", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_startmenu_startpinappswheninstalled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_startpinappswheninstalled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_startmenu_startpinappswheninstalled_startpinappswheninstalled_name", + "displayName": "Add AppIDs to the list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_systemrestore_sr_disableconfig", + "displayName": "Turn off Configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_systemrestore_sr_disableconfig_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_systemrestore_sr_disableconfig_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_autocomplete_2", + "displayName": "Turn off AutoComplete integration with Input Panel", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_autocomplete_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_autocomplete_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_edgetarget_2", + "displayName": "Prevent Input Panel tab from appearing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_edgetarget_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_edgetarget_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptarget_2", + "displayName": "For tablet pen input, don’t show the Input Panel icon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptarget_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptarget_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptouchtarget_2", + "displayName": "For touch input, don’t show the Input Panel icon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptouchtarget_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptouchtarget_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2", + "displayName": "Turn off password security in Input Panel", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2_passwordsecurity", + "displayName": "Turn off password security in Input Panel (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2_passwordsecurity_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2_passwordsecurity_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2_passwordsecurity_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2_passwordsecurity_4", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_2_passwordsecurity_5", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_prediction_2", + "displayName": "Disable text prediction", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_prediction_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_prediction_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_rarechar_2", + "displayName": "Include rarely used Chinese, Kanji, or Hanja characters", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_rarechar_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_rarechar_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_2", + "displayName": "Turn off tolerant and Z-shaped scratch-out gestures", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_2_scratchout", + "displayName": "Turn off tolerant and Z-shaped scratch-out gestures (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_2_scratchout_1", + "displayName": "All", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_2_scratchout_2", + "displayName": "Tolerant", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_2_scratchout_3", + "displayName": "None", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disableinkball_2", + "displayName": "Do not allow Inkball to run", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disableinkball_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disableinkball_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablejournal_2", + "displayName": "Do not allow Windows Journal to be run", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablejournal_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablejournal_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablenotewriterprinting_2", + "displayName": "Do not allow printing to Journal Note Writer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablenotewriterprinting_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablenotewriterprinting_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablesnippingtool_2", + "displayName": "Do not allow Snipping Tool to run", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablesnippingtool_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_disablesnippingtool_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventbackescmapping_2", + "displayName": "Prevent Back-ESC mapping", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventbackescmapping_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventbackescmapping_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventflicks_2", + "displayName": "Prevent flicks", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventflicks_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventflicks_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventflickslearningmode_2", + "displayName": "Prevent Flicks Learning Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventflickslearningmode_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventflickslearningmode_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventlaunchapp_2", + "displayName": "Prevent launch an application", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventlaunchapp_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventlaunchapp_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventpressandhold_2", + "displayName": "Prevent press and hold", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventpressandhold_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_preventpressandhold_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_turnoffbuttons_2", + "displayName": "Turn off hardware buttons", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_turnoffbuttons_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_turnoffbuttons_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_turnofffeedback_2", + "displayName": "Turn off pen feedback", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_turnofffeedback_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tabletshell_turnofffeedback_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_taskbar_taskbarnopinnedlist", + "displayName": "Remove pinned programs from the Taskbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_taskbar_taskbarnopinnedlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_taskbar_taskbarnopinnedlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_router_name", + "displayName": "Set 6to4 Relay Name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_router_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_router_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_router_name_resolution_interval", + "displayName": "Set 6to4 Relay Name Resolution Interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_router_name_resolution_interval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_router_name_resolution_interval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_router_name_resolution_interval_routernameresolutionintervalbox", + "displayName": "Minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_router_name_routernamebox", + "displayName": "Enter a router or relay name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_state", + "displayName": "Set 6to4 State", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_state_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_state_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_state_stateselect", + "displayName": "Select from the following states: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_state_stateselect_default", + "displayName": "Default State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_state_stateselect_enabled", + "displayName": "Enabled State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_6to4_state_stateselect_disabled", + "displayName": "Disabled State", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_ip_stateless_autoconfiguration_limits_state", + "displayName": "Set IP Stateless Autoconfiguration Limits State", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_ip_stateless_autoconfiguration_limits_state_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_ip_stateless_autoconfiguration_limits_state_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_iphttps_clientstate", + "displayName": "Set IP-HTTPS State", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_iphttps_clientstate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_iphttps_clientstate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_iphttps_clientstate_iphttpsclienturlbox", + "displayName": "Enter the IPHTTPS Url: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_iphttps_clientstate_stateselect", + "displayName": "Select Interface state from the following options: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_iphttps_clientstate_stateselect_0", + "displayName": "Default State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_iphttps_clientstate_stateselect_2", + "displayName": "Enabled State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_iphttps_clientstate_stateselect_3", + "displayName": "Disabled State", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_router_name", + "displayName": "Set ISATAP Router Name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_router_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_router_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_router_name_routernamebox", + "displayName": "Enter a router or relay name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_state", + "displayName": "Set ISATAP State", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_state_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_state_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_state_stateselect", + "displayName": "Select from the following states: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_state_stateselect_default", + "displayName": "Default State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_state_stateselect_enabled", + "displayName": "Enabled State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_isatap_state_stateselect_disabled", + "displayName": "Disabled State", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_client_port", + "displayName": "Set Teredo Client Port", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_client_port_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_client_port_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_client_port_teredoclientportbox", + "displayName": "\r\nThe setting allows you to customize the Teredo client port\r\nThe range is 0 to 65535. Default (recommended) is 0 which is to let the local system pick the port.\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_default_qualified", + "displayName": "Set Teredo Default Qualified", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_default_qualified_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_default_qualified_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_default_qualified_stateselect", + "displayName": "Select from the following states: (Device)", + "options": { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_default_qualified_stateselect_enabled", + "displayName": "Enabled State", + "description": null + } + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_refresh_rate", + "displayName": "Set Teredo Refresh Rate", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_refresh_rate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_refresh_rate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_refresh_rate_teredorefreshratebox", + "displayName": "Seconds: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_server_name", + "displayName": "Set Teredo Server Name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_server_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_server_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_server_name_teredoservernamebox", + "displayName": "Enter a Teredo server name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_state", + "displayName": "Set Teredo State", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_state_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_state_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_state_stateselect", + "displayName": "Select from the following states: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_state_stateselect_default", + "displayName": "Default State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_state_stateselect_disabled", + "displayName": "Disabled State", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_state_stateselect_client", + "displayName": "Client", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_teredo_state_stateselect_enterprise client", + "displayName": "Enterprise Client", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_windows_scaling_heuristics_state", + "displayName": "Set Window Scaling Heuristics State", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tcpip_windows_scaling_heuristics_state_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tcpip_windows_scaling_heuristics_state_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_auto_reconnect", + "displayName": "Automatic reconnection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_auto_reconnect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_auto_reconnect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_camera_redirection", + "displayName": "Do not allow video capture redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_camera_redirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_camera_redirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_certificate_template_policy", + "displayName": "Server authentication certificate template", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_certificate_template_policy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_certificate_template_policy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_certificate_template_policy_ts_certificate_template_name", + "displayName": "Certificate Template Name (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_signed_files_2", + "displayName": "Allow .rdp files from valid publishers and user's default .rdp settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_signed_files_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_signed_files_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_unsigned_files_2", + "displayName": "Allow .rdp files from unknown publishers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_unsigned_files_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_unsigned_files_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio", + "displayName": "Allow audio and video playback redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_capture", + "displayName": "Allow audio recording redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_capture_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_capture_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_quality", + "displayName": "Limit audio playback quality", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_quality_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_quality_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_quality_ts_audio_quality_level", + "displayName": "Audio Quality (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_quality_ts_audio_quality_level_1", + "displayName": "Dynamic", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_quality_ts_audio_quality_level_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_audio_quality_ts_audio_quality_level_7", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_clipboard", + "displayName": "Do not allow Clipboard redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_clipboard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_clipboard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_com", + "displayName": "Do not allow COM port redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_com_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_com_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_default_m", + "displayName": "Do not set default client printer to be default printer in a session", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_default_m_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_default_m_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_disable_hardware_mode", + "displayName": "Do not allow hardware accelerated decoding", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_disable_hardware_mode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_disable_hardware_mode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_lpt", + "displayName": "Do not allow LPT port redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_lpt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_lpt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_pnp", + "displayName": "Do not allow supported Plug and Play device redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_pnp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_pnp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_printer", + "displayName": "Do not allow client printer redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_printer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_printer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_trusted_certificate_thumbprints_1", + "displayName": "Specify SHA1 thumbprints of certificates representing trusted .rdp publishers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_trusted_certificate_thumbprints_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_trusted_certificate_thumbprints_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_trusted_certificate_thumbprints_1_trusted_certificate_thumbprints", + "displayName": "Comma-separated list of SHA1 trusted certificate thumbprints: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_turn_off_udp", + "displayName": "Turn Off UDP On Client", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_turn_off_udp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_client_turn_off_udp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth", + "displayName": "Limit maximum color depth", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth_ts_color_depth", + "displayName": "Color Depth (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth_ts_color_depth_999", + "displayName": "Client Compatible", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth_ts_color_depth_2", + "displayName": "15 bit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth_ts_color_depth_3", + "displayName": "16 bit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth_ts_color_depth_4", + "displayName": "24 bit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_colordepth_ts_color_depth_5", + "displayName": "32 bit", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_delete_roaming_user_profiles", + "displayName": "Limit the size of the entire roaming user profile cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_delete_roaming_user_profiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_delete_roaming_user_profiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_delete_roaming_user_profiles_ts_profile_directory_monitoring_interval", + "displayName": "Monitoring interval (minutes): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_delete_roaming_user_profiles_ts_profile_directory_quota", + "displayName": "Maximum cache size (GBs): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_disable_remote_desktop_wallpaper", + "displayName": "Enforce Removal of Remote Desktop Wallpaper", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_disable_remote_desktop_wallpaper_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_disable_remote_desktop_wallpaper_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_dx_use_full_hwgpu", + "displayName": "Use hardware graphics adapters for all Remote Desktop Services sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_dx_use_full_hwgpu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_dx_use_full_hwgpu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_easy_print", + "displayName": "Use Remote Desktop Easy Print printer driver first", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_easy_print_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_easy_print_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_enablevirtualgraphics", + "displayName": "Configure RemoteFX", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_enablevirtualgraphics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_enablevirtualgraphics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_fallbackprintdrivertype", + "displayName": "Specify RD Session Host server fallback printer driver behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_fallbackprintdrivertype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_fallbackprintdrivertype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_fallbackprintdrivertype_ts_fallback_options", + "displayName": "When attempting to find a suitable driver: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_fallbackprintdrivertype_ts_fallback_options_1", + "displayName": "Do nothing if one is not found.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_fallbackprintdrivertype_ts_fallback_options_2", + "displayName": "Default to PCL if one is not found.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_fallbackprintdrivertype_ts_fallback_options_3", + "displayName": "Default to PS if one is not found.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_fallbackprintdrivertype_ts_fallback_options_4", + "displayName": "Show both PCL and PS if one is not found.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_forcible_logoff", + "displayName": "Deny logoff of an administrator logged in to the console session", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_forcible_logoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_forcible_logoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_join_session_directory", + "displayName": "Join RD Connection Broker", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_join_session_directory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_join_session_directory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_keep_alive", + "displayName": "Configure keep-alive connection interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_keep_alive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_keep_alive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_keep_alive_ts_keep_alive_interval", + "displayName": "Keep-Alive interval: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_secgroup", + "displayName": "License server security group", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_secgroup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_secgroup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_servers", + "displayName": "Use the specified Remote Desktop license servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_servers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_servers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_servers_ts_license_edit", + "displayName": "License servers to use: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_tooltip", + "displayName": "Hide notifications about RD Licensing problems that affect the RD Session Host server", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_tooltip_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_license_tooltip_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_licensing_mode", + "displayName": "Set the Remote Desktop licensing mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_licensing_mode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_licensing_mode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_licensing_mode_ts_licensing_name", + "displayName": "Specify the licensing mode for the RD Session Host server. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_licensing_mode_ts_licensing_name_2", + "displayName": "Per Device", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_licensing_mode_ts_licensing_name_4", + "displayName": "Per User", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_licensing_mode_ts_licensing_name_6", + "displayName": "AAD Per User", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_max_con_policy", + "displayName": "Limit number of connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_max_con_policy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_max_con_policy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_max_con_policy_ts_maximum_connections_allowed", + "displayName": "RD Maximum Connections allowed (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxdisplayres", + "displayName": "Limit maximum display resolution", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxdisplayres_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxdisplayres_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxdisplayres_ts_displayres_height", + "displayName": "Height (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxdisplayres_ts_displayres_width", + "displayName": "Width (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxmonitor", + "displayName": "Limit number of monitors", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxmonitor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxmonitor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_maxmonitor_ts_max_monitor", + "displayName": "Maximum Monitors (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_nodisconnectmenu", + "displayName": "Remove \"Disconnect\" option from Shut Down dialog", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_nodisconnectmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_nodisconnectmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_nosecuritymenu", + "displayName": "Remove Windows Security item from Start menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_nosecuritymenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_nosecuritymenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_preventlicenseupgrade", + "displayName": "Prevent license upgrade", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_preventlicenseupgrade_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_preventlicenseupgrade_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_promt_creds_client_comp", + "displayName": "Prompt for credentials on the client computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_promt_creds_client_comp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_promt_creds_client_comp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_rdsappx_waitforregistration", + "displayName": "Suspend user sign-in to complete app registration", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_rdsappx_waitforregistration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_rdsappx_waitforregistration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2", + "displayName": "Set rules for remote control of Remote Desktop Services user sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2_ts_remotecontrol_levels", + "displayName": "Options: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2_ts_remotecontrol_levels_0", + "displayName": "No remote control allowed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2_ts_remotecontrol_levels_1", + "displayName": "Full Control with user's permission", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2_ts_remotecontrol_levels_2", + "displayName": "Full Control without user's permission", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2_ts_remotecontrol_levels_3", + "displayName": "View Session with user's permission", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_2_ts_remotecontrol_levels_4", + "displayName": "View Session without user's permission", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics", + "displayName": "Optimize visual experience when using RemoteFX", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_ts_remotedesktopvirtualgraphics_screencapturerate", + "displayName": "Screen capture rate (frames per second): (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_ts_remotedesktopvirtualgraphics_screencapturerate_1", + "displayName": "Highest (best quality)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_ts_remotedesktopvirtualgraphics_screencapturerate_2", + "displayName": "Medium (default)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_ts_remotedesktopvirtualgraphics_screencapturerate_3", + "displayName": "Lowest", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_ts_remotedesktopvirtualgraphics_screenimagequality", + "displayName": "Screen Image Quality: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_ts_remotedesktopvirtualgraphics_screenimagequality_1", + "displayName": "Highest (best quality)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_ts_remotedesktopvirtualgraphics_screenimagequality_2", + "displayName": "Medium (default)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_remotedesktopvirtualgraphics_ts_remotedesktopvirtualgraphics_screenimagequality_3", + "displayName": "Lowest", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_clustname", + "displayName": "Configure RD Connection Broker farm name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_clustname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_clustname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_clustname_ts_sd_clustname", + "displayName": "Configure RD Connection Broker farm name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_expose_address", + "displayName": "Use IP Address Redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_expose_address_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_expose_address_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_loc", + "displayName": "Configure RD Connection Broker server name", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_loc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_loc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sd_loc_ts_sd_loc", + "displayName": "Configure RD Connection Broker server name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_security_layer_policy", + "displayName": "Require use of specific security layer for remote (RDP) connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_security_layer_policy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_security_layer_policy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_security_layer_policy_ts_security_layer", + "displayName": "Security Layer (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_security_layer_policy_ts_security_layer_0", + "displayName": "RDP", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_security_layer_policy_ts_security_layer_1", + "displayName": "Negotiate", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_security_layer_policy_ts_security_layer_2", + "displayName": "SSL", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_network_detect", + "displayName": "Select network detection on the server", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_network_detect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_network_detect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_network_detect_ts_select_network_detect_level", + "displayName": "Select Network Detect Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_network_detect_ts_select_network_detect_level_0", + "displayName": "Use both Connect Time Detect and Continuous Network Detect", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_network_detect_ts_select_network_detect_level_1", + "displayName": "Turn off Connect Time Detect", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_network_detect_ts_select_network_detect_level_2", + "displayName": "Turn off Continuous Network Detect", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_network_detect_ts_select_network_detect_level_3", + "displayName": "Turn off Connect Time Detect and Continuous Network Detect", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_transport", + "displayName": "Select RDP transport protocols", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_transport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_transport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_transport_ts_select_transport_type", + "displayName": "Select Transport Type (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_transport_ts_select_transport_type_0", + "displayName": "Use both UDP and TCP", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_transport_ts_select_transport_type_1", + "displayName": "Use only TCP", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_select_transport_ts_select_transport_type_2", + "displayName": "Use either UDP or TCP", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_advanced_remotefx_remoteapp", + "displayName": "Use advanced RemoteFX graphics for RemoteApp", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_advanced_remotefx_remoteapp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_advanced_remotefx_remoteapp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_auth", + "displayName": "Configure server authentication for client", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_auth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_auth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_auth_ts_server_auth_level", + "displayName": "Authentication setting: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_auth_ts_server_auth_level_0", + "displayName": "Always connect, even if authentication fails", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_auth_ts_server_auth_level_2", + "displayName": "Warn me if authentication fails", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_auth_ts_server_auth_level_1", + "displayName": "Do not connect if authentication fails", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_avc_hw_encode_preferred", + "displayName": "Configure H.264/AVC hardware encoding for Remote Desktop Connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_avc_hw_encode_preferred_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_avc_hw_encode_preferred_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_avc444_mode_preferred", + "displayName": "Prioritize H.264/AVC 444 graphics mode for Remote Desktop Connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_avc444_mode_preferred_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_avc444_mode_preferred_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_compressor", + "displayName": "Configure compression for RemoteFX data", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_compressor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_compressor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_compressor_ts_compressor_levels", + "displayName": "RDP compression algorithm: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_compressor_ts_compressor_levels_1", + "displayName": "Optimized to use less memory", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_compressor_ts_compressor_levels_3", + "displayName": "Optimized to use less network bandwidth", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_compressor_ts_compressor_levels_2", + "displayName": "Balances memory and network bandwidth", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_compressor_ts_compressor_levels_0", + "displayName": "Do not use an RDP compression algorithm", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_image_quality", + "displayName": "Configure image quality for RemoteFX Adaptive Graphics", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_image_quality_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_image_quality_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_image_quality_ts_server_image_quality_levels", + "displayName": "Image quality: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_image_quality_ts_server_image_quality_levels_1", + "displayName": "Lossless", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_image_quality_ts_server_image_quality_levels_2", + "displayName": "High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_image_quality_ts_server_image_quality_levels_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_image_quality_ts_server_image_quality_levels_4", + "displayName": "Low", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_legacy_rfx", + "displayName": "Enable RemoteFX encoding for RemoteFX clients designed for Windows Server 2008 R2 SP1", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_legacy_rfx_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_legacy_rfx_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_profile", + "displayName": "Configure RemoteFX Adaptive Graphics", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_profile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_profile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_profile_ts_server_profile_levels", + "displayName": "RDP experience: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_profile_ts_server_profile_levels_2", + "displayName": "Let the system choose experience for network condition", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_profile_ts_server_profile_levels_1", + "displayName": "Optimize for server scalability", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_profile_ts_server_profile_levels_3", + "displayName": "Optimize for minimum bandwidth usage", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_visexp", + "displayName": "Optimize visual experience for Remote Desktop Service Sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_visexp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_visexp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_visexp_ts_visexp_settings", + "displayName": "Visual experience: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_visexp_ts_visexp_settings_1", + "displayName": "Rich multimedia", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_visexp_ts_visexp_settings_2", + "displayName": "Text", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_wddm_graphics_driver", + "displayName": "Use WDDM graphics display driver for Remote Desktop Connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_wddm_graphics_driver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_server_wddm_graphics_driver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_session_end_on_limit_2", + "displayName": "End session when time limits are reached", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_session_end_on_limit_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_session_end_on_limit_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2", + "displayName": "Set time limit for disconnected sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected", + "displayName": "End a disconnected session (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_0", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_60000", + "displayName": "1 minute", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_300000", + "displayName": "5 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_600000", + "displayName": "10 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_900000", + "displayName": "15 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_1800000", + "displayName": "30 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_3600000", + "displayName": "1 hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_7200000", + "displayName": "2 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_10800000", + "displayName": "3 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_21600000", + "displayName": "6 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_28800000", + "displayName": "8 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_43200000", + "displayName": "12 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_57600000", + "displayName": "16 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_64800000", + "displayName": "18 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_86400000", + "displayName": "1 day", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_172800000", + "displayName": "2 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_259200000", + "displayName": "3 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_345600000", + "displayName": "4 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_2_ts_sessions_enddisconnected_432000000", + "displayName": "5 days", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2", + "displayName": "Set time limit for active but idle Remote Desktop Services sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext", + "displayName": "Idle session limit: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_0", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_60000", + "displayName": "1 minute", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_300000", + "displayName": "5 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_600000", + "displayName": "10 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_900000", + "displayName": "15 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_1800000", + "displayName": "30 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_3600000", + "displayName": "1 hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_7200000", + "displayName": "2 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_10800000", + "displayName": "3 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_21600000", + "displayName": "6 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_28800000", + "displayName": "8 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_43200000", + "displayName": "12 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_57600000", + "displayName": "16 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_64800000", + "displayName": "18 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_86400000", + "displayName": "1 day", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_172800000", + "displayName": "2 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_259200000", + "displayName": "3 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_345600000", + "displayName": "4 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_2_ts_sessions_idlelimittext_432000000", + "displayName": "5 days", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2", + "displayName": "Set time limit for active Remote Desktop Services sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit", + "displayName": "Active session limit : (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_0", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_60000", + "displayName": "1 minute", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_300000", + "displayName": "5 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_600000", + "displayName": "10 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_900000", + "displayName": "15 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_1800000", + "displayName": "30 minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_3600000", + "displayName": "1 hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_7200000", + "displayName": "2 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_10800000", + "displayName": "3 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_21600000", + "displayName": "6 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_28800000", + "displayName": "8 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_43200000", + "displayName": "12 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_57600000", + "displayName": "16 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_64800000", + "displayName": "18 hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_86400000", + "displayName": "1 day", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_172800000", + "displayName": "2 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_259200000", + "displayName": "3 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_345600000", + "displayName": "4 days", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_2_ts_sessions_activelimit_432000000", + "displayName": "5 days", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_single_session", + "displayName": "Restrict Remote Desktop Services users to a single Remote Desktop Services session", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_single_session_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_single_session_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_smart_card", + "displayName": "Do not allow smart card device redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_smart_card_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_smart_card_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_start_program_2", + "displayName": "Start a program on connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_start_program_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_start_program_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_start_program_2_ts_program_name", + "displayName": "Program path and file name (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_start_program_2_ts_workdir", + "displayName": "Working Directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_temp_delete", + "displayName": "Do not delete temp folders upon exit", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_temp_delete_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_temp_delete_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_temp_per_session", + "displayName": "Do not use temporary folders per session", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_temp_per_session_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_temp_per_session_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_time_zone", + "displayName": "Allow time zone redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_time_zone_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_time_zone_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_tscc_permissions_policy", + "displayName": "Do not allow local administrators to customize permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_tscc_permissions_policy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_tscc_permissions_policy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_turnoff_singleapp", + "displayName": "Always show desktop on connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_turnoff_singleapp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_turnoff_singleapp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_usb_redirection_disable", + "displayName": "Allow RDP redirection of other supported RemoteFX USB devices from this computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_usb_redirection_disable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_usb_redirection_disable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_usb_redirection_disable_usbaccessright", + "displayName": "RemoteFX USB Redirection Access Rights (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_usb_redirection_disable_usbaccessright_1", + "displayName": "Adminstrators Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_usb_redirection_disable_usbaccessright_2", + "displayName": "Adminstrators and Users", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_authentication_policy", + "displayName": "Require user authentication for remote connections by using Network Level Authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_authentication_policy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_authentication_policy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home", + "displayName": "Set Remote Desktop Services User Home Directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter", + "displayName": "Drive Letter (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_g:", + "displayName": "G:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_h:", + "displayName": "H:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_i:", + "displayName": "I:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_j:", + "displayName": "J:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_k:", + "displayName": "K:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_l:", + "displayName": "L:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_m:", + "displayName": "M:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_n:", + "displayName": "N:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_o:", + "displayName": "O:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_p:", + "displayName": "P:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_q:", + "displayName": "Q:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_r:", + "displayName": "R:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_s:", + "displayName": "S:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_t:", + "displayName": "T:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_u:", + "displayName": "U:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_v:", + "displayName": "V:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_w:", + "displayName": "W:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_x:", + "displayName": "X:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_y:", + "displayName": "Y:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_drive_letter_z:", + "displayName": "Z:", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_home_dir", + "displayName": "Home Dir Root Path: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_user_home_location", + "displayName": "Location: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_user_home_location_1", + "displayName": "On the Network", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_home_ts_user_home_location_0", + "displayName": "On the Local machine", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_mandatory_profiles", + "displayName": "Use mandatory profiles on the RD Session Host server", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_mandatory_profiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_mandatory_profiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_profiles", + "displayName": "Set path for Remote Desktop Services Roaming User Profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_profiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_profiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_terminalserver_ts_user_profiles_ts_profile_path", + "displayName": "Profile path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_touchinput_panningeverywhereoff_2", + "displayName": "Turn off Touch Panning", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_touchinput_panningeverywhereoff_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_touchinput_panningeverywhereoff_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_touchinput_touchinputoff_2", + "displayName": "Turn off Tablet PC touch input", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_touchinput_touchinputoff_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_touchinput_touchinputoff_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_blockedcommandslist_name", + "displayName": "Configure the list of blocked TPM commands", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_blockedcommandslist_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_blockedcommandslist_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_blockedcommandslist_name_blockedcommandslist_ordinals2", + "displayName": "The list of blocked TPM commands: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_cleartpmifnotready_name", + "displayName": "Configure the system to clear the TPM if it is not in a ready state.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_cleartpmifnotready_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_cleartpmifnotready_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_ignoredefaultlist_name", + "displayName": "Ignore the default list of blocked TPM commands", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_ignoredefaultlist_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_ignoredefaultlist_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_ignorelocallist_name", + "displayName": "Ignore the local list of blocked TPM commands", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_ignorelocallist_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_ignorelocallist_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_optintodsha_name", + "displayName": "Enable Device Health Attestation Monitoring and Reporting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_optintodsha_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_optintodsha_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_osmanagedauth_name", + "displayName": "Configure the level of TPM owner authorization information available to the operating system", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_osmanagedauth_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_osmanagedauth_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_osmanagedauth_name_selectosmanagedauthlevel", + "displayName": "Operating system managed TPM authentication level: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_osmanagedauth_name_selectosmanagedauthlevel_4", + "displayName": "Full", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_osmanagedauth_name_selectosmanagedauthlevel_2", + "displayName": "Delegated", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_osmanagedauth_name_selectosmanagedauthlevel_0", + "displayName": "None", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailureduration_name", + "displayName": "Standard User Lockout Duration", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailureduration_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailureduration_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailureduration_name_dxt_standarduserauthorizationfailureduration_name", + "displayName": "Duration for counting TPM authorization failures (minutes): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailureindividualthreshold_name", + "displayName": "Standard User Individual Lockout Threshold", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailureindividualthreshold_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailureindividualthreshold_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailureindividualthreshold_name_dxt_standarduserauthorizationfailureindividualthreshold_name", + "displayName": "Maximum number of authorization failures per duration: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailuretotalthreshold_name", + "displayName": "Standard User Total Lockout Threshold", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailuretotalthreshold_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailuretotalthreshold_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_standarduserauthorizationfailuretotalthreshold_name_dxt_standarduserauthorizationfailuretotalthreshold_name", + "displayName": "Maximum number of authorization failures per duration: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_uselegacydap_name", + "displayName": "Configure the system to use legacy Dictionary Attack Prevention Parameters setting for TPM 2.0.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_tpm_uselegacydap_name_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_tpm_uselegacydap_name_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_calculator", + "displayName": "Calculator", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_calculator_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_calculator_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod", + "displayName": "Configure Sync Method", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_settingsimportnotification_delay", + "displayName": "Notification delay (in seconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_settingsimportnotification_enable", + "displayName": "Enable notification (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_settingsimportnotification_enable_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_settingsimportnotification_enable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_syncmethodconfiguration_list", + "displayName": "Sync Method: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_syncmethodconfiguration_list_syncprovider", + "displayName": "SyncProvider", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_syncmethodconfiguration_list_none", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_syncmethodconfiguration_list_external", + "displayName": "External", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configurevdi", + "displayName": "VDI Configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configurevdi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configurevdi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_configurevdi_vdicollectionname", + "displayName": "VDI Collection Name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_contactitdescription", + "displayName": "Contact IT Link Text", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_contactitdescription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_contactitdescription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_contactitdescription_contactitdescription", + "displayName": "Contact IT Link Text (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_contactiturl", + "displayName": "Contact IT URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_contactiturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_contactiturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_contactiturl_contactiturl", + "displayName": "Contact IT URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewin8sync", + "displayName": "Do not synchronize Windows Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewin8sync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewin8sync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings", + "displayName": "Synchronize Windows settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_desktopsettings", + "displayName": "Desktop settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_desktopsettings_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_desktopsettings_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_easeofaccesssettings", + "displayName": "Ease of access (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_easeofaccesssettings_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_easeofaccesssettings_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_networkprinters", + "displayName": "Network Printers (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_networkprinters_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_networkprinters_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_roamingcredentialsettings", + "displayName": "Roaming Credentials (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_roamingcredentialsettings_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_roamingcredentialsettings_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_themesettings", + "displayName": "Themes (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_themesettings_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_themesettings_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_enableuev", + "displayName": "Enable UEV", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_enableuev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_enableuev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_enableuev_registerinboxtemplates", + "displayName": "Auto-register inbox templates (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_enableuev_registerinboxtemplates_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_enableuev_registerinboxtemplates_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_finance", + "displayName": "Finance", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_finance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_finance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_firstusenotificationenabled", + "displayName": "First Use Notification", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_firstusenotificationenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_firstusenotificationenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_games", + "displayName": "Games", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_games_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_games_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer10", + "displayName": "Internet Explorer 10", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer11", + "displayName": "Internet Explorer 11", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer8", + "displayName": "Internet Explorer 8", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer8_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer8_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer9", + "displayName": "Internet Explorer 9", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer9_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer9_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorercommon", + "displayName": "Internet Explorer Common Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorercommon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorercommon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_maps", + "displayName": "Maps", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_maps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_maps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_maxpackagesizeinbytes", + "displayName": "Settings package size warning threshold", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_maxpackagesizeinbytes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_maxpackagesizeinbytes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_maxpackagesizeinbytes_maxpackagesizeinbytes", + "displayName": "Package size threshold (in bytes): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010access", + "displayName": "Microsoft Access 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010access_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010access_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010common", + "displayName": "Microsoft Office 2010 Common Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010common_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010common_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010excel", + "displayName": "Microsoft Excel 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010excel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010excel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010infopath", + "displayName": "Microsoft InfoPath 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010infopath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010infopath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010lync", + "displayName": "Microsoft Lync 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010lync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010lync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010onenote", + "displayName": "Microsoft OneNote 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010onenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010onenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010outlook", + "displayName": "Microsoft Outlook 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010outlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010outlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010powerpoint", + "displayName": "Microsoft PowerPoint 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010powerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010powerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010project", + "displayName": "Microsoft Project 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010project_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010project_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010publisher", + "displayName": "Microsoft Publisher 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010publisher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010publisher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointdesigner", + "displayName": "Microsoft SharePoint Designer 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointdesigner_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointdesigner_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointworkspace", + "displayName": "Microsoft SharePoint Workspace 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointworkspace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointworkspace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010visio", + "displayName": "Microsoft Visio 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010visio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010visio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010word", + "displayName": "Microsoft Word 2010", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010word_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010word_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013access", + "displayName": "Microsoft Access 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013access_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013access_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013accessbackup", + "displayName": "Access 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013accessbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013accessbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013common", + "displayName": "Microsoft Office 2013 Common Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013common_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013common_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013commonbackup", + "displayName": "Common 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013commonbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013commonbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excel", + "displayName": "Microsoft Excel 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excelbackup", + "displayName": "Excel 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excelbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excelbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopath", + "displayName": "Microsoft InfoPath 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopathbackup", + "displayName": "InfoPath 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopathbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopathbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lync", + "displayName": "Microsoft Lync 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lyncbackup", + "displayName": "Lync 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lyncbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lyncbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onedriveforbusiness", + "displayName": "Microsoft OneDrive for Business 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onedriveforbusiness_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onedriveforbusiness_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenote", + "displayName": "Microsoft OneNote 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenotebackup", + "displayName": "OneNote 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenotebackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenotebackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlook", + "displayName": "Microsoft Outlook 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlookbackup", + "displayName": "Outlook 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlookbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlookbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpoint", + "displayName": "Microsoft PowerPoint 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpointbackup", + "displayName": "PowerPoint 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpointbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpointbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013project", + "displayName": "Microsoft Project 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013project_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013project_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013projectbackup", + "displayName": "Project 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013projectbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013projectbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisher", + "displayName": "Microsoft Publisher 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisherbackup", + "displayName": "Publisher 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisherbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisherbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesigner", + "displayName": "Microsoft SharePoint Designer 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesigner_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesigner_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesignerbackup", + "displayName": "SharePoint Designer 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesignerbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesignerbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013uploadcenter", + "displayName": "Microsoft Office 2013 Upload Center", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013uploadcenter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013uploadcenter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visio", + "displayName": "Microsoft Visio 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visiobackup", + "displayName": "Visio 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visiobackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visiobackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013word", + "displayName": "Microsoft Word 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013word_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013word_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013wordbackup", + "displayName": "Word 2013 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013wordbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013wordbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016access", + "displayName": "Microsoft Access 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016access_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016access_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016accessbackup", + "displayName": "Access 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016accessbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016accessbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016common", + "displayName": "Microsoft Office 2016 Common Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016common_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016common_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016commonbackup", + "displayName": "Common 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016commonbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016commonbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excel", + "displayName": "Microsoft Excel 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excelbackup", + "displayName": "Excel 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excelbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excelbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lync", + "displayName": "Microsoft Lync 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lyncbackup", + "displayName": "Lync 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lyncbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lyncbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onedriveforbusiness", + "displayName": "Microsoft OneDrive for Business 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onedriveforbusiness_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onedriveforbusiness_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenote", + "displayName": "Microsoft OneNote 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenotebackup", + "displayName": "OneNote 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenotebackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenotebackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlook", + "displayName": "Microsoft Outlook 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlookbackup", + "displayName": "Outlook 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlookbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlookbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpoint", + "displayName": "Microsoft PowerPoint 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpointbackup", + "displayName": "PowerPoint 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpointbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpointbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016project", + "displayName": "Microsoft Project 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016project_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016project_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016projectbackup", + "displayName": "Project 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016projectbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016projectbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisher", + "displayName": "Microsoft Publisher 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisherbackup", + "displayName": "Publisher 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisherbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisherbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016uploadcenter", + "displayName": "Microsoft Office 2016 Upload Center", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016uploadcenter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016uploadcenter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visio", + "displayName": "Microsoft Visio 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visiobackup", + "displayName": "Visio 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visiobackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visiobackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016word", + "displayName": "Microsoft Word 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016word_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016word_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016wordbackup", + "displayName": "Word 2016 backup only", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016wordbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016wordbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2013", + "displayName": "Microsoft Office 365 Access 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2016", + "displayName": "Microsoft Office 365 Access 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2013", + "displayName": "Microsoft Office 365 Common 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2016", + "displayName": "Microsoft Office 365 Common 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2013", + "displayName": "Microsoft Office 365 Excel 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2016", + "displayName": "Microsoft Office 365 Excel 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365infopath2013", + "displayName": "Microsoft Office 365 InfoPath 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365infopath2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365infopath2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2013", + "displayName": "Microsoft Office 365 Lync 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2016", + "displayName": "Microsoft Office 365 Lync 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2013", + "displayName": "Microsoft Office 365 OneNote 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2016", + "displayName": "Microsoft Office 365 OneNote 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2013", + "displayName": "Microsoft Office 365 Outlook 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2016", + "displayName": "Microsoft Office 365 Outlook 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2013", + "displayName": "Microsoft Office 365 PowerPoint 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2016", + "displayName": "Microsoft Office 365 PowerPoint 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2013", + "displayName": "Microsoft Office 365 Project 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2016", + "displayName": "Microsoft Office 365 Project 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2013", + "displayName": "Microsoft Office 365 Publisher 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2016", + "displayName": "Microsoft Office 365 Publisher 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365sharepointdesigner2013", + "displayName": "Microsoft Office 365 SharePoint Designer 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365sharepointdesigner2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365sharepointdesigner2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2013", + "displayName": "Microsoft Office 365 Visio 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2016", + "displayName": "Microsoft Office 365 Visio 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2013", + "displayName": "Microsoft Office 365 Word 2013", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2016", + "displayName": "Microsoft Office 365 Word 2016", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_music", + "displayName": "Music", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_music_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_music_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_news", + "displayName": "News", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_news_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_news_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_notepad", + "displayName": "Notepad", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_notepad_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_notepad_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_reader", + "displayName": "Reader", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_reader_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_reader_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_repositorytimeout", + "displayName": "Synchronization timeout", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_repositorytimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_repositorytimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_repositorytimeout_repositorytimeout", + "displayName": "Synchronization timeout (in milliseconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingsstoragepath", + "displayName": "Settings storage path", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingsstoragepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingsstoragepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingsstoragepath_settingsstoragepath", + "displayName": "Settings storage path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingstemplatecatalogpath", + "displayName": "Settings template catalog path", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingstemplatecatalogpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingstemplatecatalogpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingstemplatecatalogpath_overridemstemplates", + "displayName": "Replace the default Microsoft templates (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingstemplatecatalogpath_overridemstemplates_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingstemplatecatalogpath_overridemstemplates_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_settingstemplatecatalogpath_settingstemplatecatalogpath", + "displayName": "Settings template catalog path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_sports", + "displayName": "Sports", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_sports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_sports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncenabled", + "displayName": "Use User Experience Virtualization (UE-V)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetwork", + "displayName": "Sync settings over metered connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetworkwhenroaming", + "displayName": "Sync settings over metered connections even when roaming", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetworkwhenroaming_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetworkwhenroaming_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncproviderpingenabled", + "displayName": "Ping the settings storage location before sync", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncproviderpingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncproviderpingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncunlistedwindows8apps", + "displayName": "Sync Unlisted Windows Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncunlistedwindows8apps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_syncunlistedwindows8apps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_travel", + "displayName": "Travel", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_travel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_travel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_trayiconenabled", + "displayName": "Tray Icon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_trayiconenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_trayiconenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_video", + "displayName": "Video", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_video_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_video_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_weather", + "displayName": "Weather", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_weather_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_weather_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_wordpad", + "displayName": "WordPad", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_wordpad_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userexperiencevirtualization_wordpad_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_cleanupprofiles", + "displayName": "Delete user profiles older than a specified number of days on system restart", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_cleanupprofiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_cleanupprofiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_cleanupprofiles_cleanupprofiles_days", + "displayName": "Delete user profiles older than (days) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_dontforceunloadhive", + "displayName": "Do not forcefully unload the users registry at user logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_dontforceunloadhive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_dontforceunloadhive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_leaveappmgmtdata", + "displayName": "Leave Windows Installer and Group Policy Software Installation Data", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_leaveappmgmtdata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_leaveappmgmtdata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_profileerroraction", + "displayName": "Do not log users on with temporary profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_profileerroraction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_profileerroraction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_slowlinktimeout", + "displayName": "Control slow network connection timeout for user profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_slowlinktimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_slowlinktimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_slowlinktimeout_slowlinkwaitinterval", + "displayName": "Time (milliseconds) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_slowlinktimeout_transferrateop", + "displayName": "Connection speed (Kbps): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home", + "displayName": "Set user home folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter", + "displayName": "Drive letter (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_g:", + "displayName": "G:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_h:", + "displayName": "H:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_i:", + "displayName": "I:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_j:", + "displayName": "J:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_k:", + "displayName": "K:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_l:", + "displayName": "L:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_m:", + "displayName": "M:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_n:", + "displayName": "N:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_o:", + "displayName": "O:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_p:", + "displayName": "P:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_q:", + "displayName": "Q:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_r:", + "displayName": "R:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_s:", + "displayName": "S:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_t:", + "displayName": "T:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_u:", + "displayName": "U:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_v:", + "displayName": "V:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_w:", + "displayName": "W:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_x:", + "displayName": "X:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_y:", + "displayName": "Y:", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_drive_letter_z:", + "displayName": "Z:", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_home_path", + "displayName": "Path: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_user_home_location", + "displayName": "Location: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_user_home_location_1", + "displayName": "On the network", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_user_home_user_home_location_0", + "displayName": "On the local computer", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_userinfoaccessaction", + "displayName": "User management of sharing user name, account picture, and domain information with apps (not desktop apps)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_userinfoaccessaction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_userinfoaccessaction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_userinfoaccessaction_allowuserinfoaccess", + "displayName": "Action: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_userinfoaccessaction_allowuserinfoaccess_1", + "displayName": "Always on", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_userprofiles_userinfoaccessaction_allowuserinfoaccess_2", + "displayName": "Always off", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config", + "displayName": "Global Configuration Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_announceflags", + "displayName": "AnnounceFlags (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_chaindisable", + "displayName": "ChainDisable (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_chainentrytimeout", + "displayName": "ChainEntryTimeout (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_chainloggingrate", + "displayName": "ChainLoggingRate (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_chainmaxentries", + "displayName": "ChainMaxEntries (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_chainmaxhostentries", + "displayName": "ChainMaxHostEntries (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_clockadjustmentauditlimit", + "displayName": "ClockAdjustmentAuditLimit (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_clockholdoverperiod", + "displayName": "ClockHoldoverPeriod (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_eventlogflags", + "displayName": "EventLogFlags (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_frequencycorrectrate", + "displayName": "FrequencyCorrectRate (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_holdperiod", + "displayName": "HoldPeriod (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_largephaseoffset", + "displayName": "LargePhaseOffset (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_localclockdispersion", + "displayName": "LocalClockDispersion (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_maxallowedphaseoffset", + "displayName": "MaxAllowedPhaseOffset (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_maxnegphasecorrection", + "displayName": "MaxNegPhaseCorrection (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_maxpollinterval", + "displayName": "MaxPollInterval (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_maxposphasecorrection", + "displayName": "MaxPosPhaseCorrection (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_minpollinterval", + "displayName": "MinPollInterval (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_phasecorrectrate", + "displayName": "PhaseCorrectRate (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_polladjustfactor", + "displayName": "PollAdjustFactor (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_requiresecuretimesyncrequests", + "displayName": "RequireSecureTimeSyncRequests (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_spikewatchperiod", + "displayName": "SpikeWatchPeriod (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_updateinterval", + "displayName": "UpdateInterval (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_config_w32time_utilizessltimedata", + "displayName": "UtilizeSslTimeData (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient", + "displayName": "Configure Windows NTP Client", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_crosssitesyncflags", + "displayName": "CrossSiteSyncFlags (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_ntpclienteventlogflags", + "displayName": "EventLogFlags (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_ntpserver", + "displayName": "NtpServer (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_resolvepeerbackoffmaxtimes", + "displayName": "ResolvePeerBackoffMaxTimes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_resolvepeerbackoffminutes", + "displayName": "ResolvePeerBackoffMinutes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_specialpollinterval", + "displayName": "SpecialPollInterval (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_type", + "displayName": "Type (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_type_nosync", + "displayName": "NoSync", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_type_ntp", + "displayName": "NTP", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_type_nt5ds", + "displayName": "NT5DS", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_configure_ntpclient_w32time_type_allsync", + "displayName": "AllSync", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_enable_ntpclient", + "displayName": "Enable Windows NTP Client", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_enable_ntpclient_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_enable_ntpclient_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_enable_ntpserver", + "displayName": "Enable Windows NTP Server", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_enable_ntpserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_w32time_w32time_policy_enable_ntpserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_disablepowermanagement", + "displayName": "Disable power management in connected standby mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_disablepowermanagement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_disablepowermanagement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_enablesoftdisconnect", + "displayName": "Enable Windows to soft-disconnect a computer from a network", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_enablesoftdisconnect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_enablesoftdisconnect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_minimizeconnections", + "displayName": "Minimize the number of simultaneous connections to the Internet or a Windows Domain", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_minimizeconnections_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_minimizeconnections_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_minimizeconnections_wcm_minimizeconnections_options", + "displayName": "Minimize Policy Options (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_minimizeconnections_wcm_minimizeconnections_options_0", + "displayName": "0 = Allow simultaneous connections", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_minimizeconnections_wcm_minimizeconnections_options_1", + "displayName": "1 = Minimize simultaneous connections", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_minimizeconnections_wcm_minimizeconnections_options_2", + "displayName": "2 = Stay connected to cellular", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wcm_wcm_minimizeconnections_wcm_minimizeconnections_options_3", + "displayName": "3 = Prevent Wi-Fi when on Ethernet", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenariodatasizelimitpolicy", + "displayName": "Diagnostics: Configure scenario retention", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenariodatasizelimitpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenariodatasizelimitpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenariodatasizelimitpolicy_wdidpsscenariodatasizelimitpolicyvalue", + "displayName": "Scenario data size limit (in MB) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenarioexecutionpolicy", + "displayName": "Diagnostics: Configure scenario execution level", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenarioexecutionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenarioexecutionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenarioexecutionpolicy_wdidpsscenarioexecutionpolicylevel", + "displayName": "Scenario Execution Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenarioexecutionpolicy_wdidpsscenarioexecutionpolicylevel_1", + "displayName": "Detection and Troubleshooting Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wdi_wdidpsscenarioexecutionpolicy_wdidpsscenarioexecutionpolicylevel_2", + "displayName": "Detection, Troubleshooting and Resolution", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wincal_turnoffwincal_2", + "displayName": "Turn off Windows Calendar", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wincal_turnoffwincal_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wincal_turnoffwincal_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowscolorsystem_prohibitchanginginstalledprofilelist_2", + "displayName": "Prohibit installing or uninstalling color profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowscolorsystem_prohibitchanginginstalledprofilelist_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowscolorsystem_prohibitchanginginstalledprofilelist_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_disablewcnui_2", + "displayName": "Prohibit access of the Windows Connect Now wizards", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_disablewcnui_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_disablewcnui_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar", + "displayName": "Configuration of wireless settings using Windows Connect Now", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableflashconfig", + "displayName": "Turn off ability to configure using a USB Flash Drive (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableflashconfig_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableflashconfig_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableinband802dot11", + "displayName": "Turn off ability to configure using WCN over In-band 802.11 WLAN (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableinband802dot11_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableinband802dot11_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableupnp", + "displayName": "Turn off ability to configure using WCN over Ethernet (UPnP) (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableupnp_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disableupnp_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disablewpd", + "displayName": "Turn off ability to configure Windows Portable Device (WPD) (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disablewpd_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_disablewpd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_enableregistrar_maxwcndevicenumber", + "displayName": "Maximum number of WCN devices allowed: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_higher_precedence_registrar", + "displayName": "Higher precedence medium for devices discovered by multiple media: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_higher_precedence_registrar_1", + "displayName": "WCN over Ethernet (UPnP)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsconnectnow_wcn_enableregistrar_wcn_higher_precedence_registrar_2", + "displayName": "WCN over In-band 802.11 WLAN", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_checksamesourceandtargetforfranddfs", + "displayName": "Verify old and new Folder Redirection targets point to the same share before redirecting", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_checksamesourceandtargetforfranddfs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_checksamesourceandtargetforfranddfs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_defaultlibrarieslocation", + "displayName": "Location where all default Library definition files for users/machines reside.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_defaultlibrarieslocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_defaultlibrarieslocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_defaultlibrarieslocation_defaultlibrarieslocation", + "displayName": "Default Libraries definition location (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_disablebinddirectlytopropertysetstorage", + "displayName": "Disable binding directly to IPropertySetStorage without intermediate layers.", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_disablebinddirectlytopropertysetstorage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_disablebinddirectlytopropertysetstorage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enableshellshortcuticonremotepath", + "displayName": "Allow the use of remote paths in file shortcut icons", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enableshellshortcuticonremotepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enableshellshortcuticonremotepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enablesmartscreen", + "displayName": "Configure Windows Defender SmartScreen", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enablesmartscreen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enablesmartscreen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enablesmartscreen_enablesmartscreendropdown", + "displayName": "Pick one of the following settings: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enablesmartscreen_enablesmartscreendropdown_block", + "displayName": "Warn and prevent bypass", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_enablesmartscreen_enablesmartscreendropdown_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized", + "displayName": "Start File Explorer with ribbon minimized", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown", + "displayName": "Pick one of the following settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown_1", + "displayName": "Always open new File Explorer windows with the ribbon minimized.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown_2", + "displayName": "Never open new File Explorer windows with the ribbon minimized.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown_3", + "displayName": "Minimize the ribbon when File Explorer is opened the first time.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown_4", + "displayName": "Display the full ribbon when File Explorer is opened the first time.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internet", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internetlockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internetlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internetlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranet", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranetlockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranetlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranetlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachine", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachinelockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachinelockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachinelockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restricted", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restricted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restricted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restrictedlockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restrictedlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restrictedlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trusted", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trusted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trusted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trustedlockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trustedlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trustedlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internet", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internetlockdown", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internetlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internetlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranet", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranetlockdown", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranetlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranetlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachine", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachinelockdown", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachinelockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachinelockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restricted", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restricted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restricted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restrictedlockdown", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restrictedlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restrictedlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trusted", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trusted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trusted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trustedlockdown", + "displayName": "Allow OpenSearch queries in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trustedlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trustedlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_nonewappalert", + "displayName": "Do not show the 'new application installed' notification", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_nonewappalert_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_nonewappalert_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_nostrcmplogical", + "displayName": "Turn off numerical sorting in File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_nostrcmplogical_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_nostrcmplogical_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_shellprotocolprotectedmodetitle_2", + "displayName": "Turn off shell protocol protected mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_shellprotocolprotectedmodetitle_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_shellprotocolprotectedmodetitle_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_showhibernateoption", + "displayName": "Show hibernate in the power options menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_showhibernateoption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_showhibernateoption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_showsleepoption", + "displayName": "Show sleep in the power options menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_showsleepoption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsexplorer_showsleepoption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpdllcachedir", + "displayName": "Specify Windows File Protection cache location (Windows Insiders only)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpdllcachedir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpdllcachedir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpdllcachedir_wfpdllcachedirbox", + "displayName": "Cache file path: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpquota", + "displayName": "Limit Windows File Protection cache size (Windows Insiders only)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpquota_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpquota_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpquota_wfpquota_size", + "displayName": "Cache size (in MB) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpscan", + "displayName": "Set Windows File Protection scanning (Windows Insiders only)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpscan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpscan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpscan_wfpscanlist", + "displayName": "Scanning frequency: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpscan_wfpscanlist_0", + "displayName": "Do not scan during startup", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpscan_wfpscanlist_1", + "displayName": "Scan during startup", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpshowprogress", + "displayName": "Hide the file scan progress window (Windows Insiders only)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpshowprogress_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsfileprotection_wfpshowprogress_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediadrm_disableonline", + "displayName": "Prevent Windows Media DRM Internet Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsmediadrm_disableonline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediadrm_disableonline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_disableautoupdate", + "displayName": "Prevent Automatic Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_disableautoupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_disableautoupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_disablesetupfirstuseconfiguration", + "displayName": "Do Not Show First Use Dialog Boxes", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_disablesetupfirstuseconfiguration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_disablesetupfirstuseconfiguration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_dontuseframeinterpolation", + "displayName": "Prevent Video Smoothing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_dontuseframeinterpolation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_dontuseframeinterpolation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventlibrarysharing", + "displayName": "Prevent Media Sharing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventlibrarysharing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventlibrarysharing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventquicklaunchshortcut", + "displayName": "Prevent Quick Launch Toolbar Shortcut Creation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventquicklaunchshortcut_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventquicklaunchshortcut_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventwmpdesktopshortcut", + "displayName": "Prevent Desktop Shortcut Creation", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventwmpdesktopshortcut_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsmediaplayer_preventwmpdesktopshortcut_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsremotemanagement_disallowkerberos_1", + "displayName": "Disallow Kerberos authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsremotemanagement_disallowkerberos_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsremotemanagement_disallowkerberos_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsremotemanagement_disallowkerberos_2", + "displayName": "Disallow Kerberos authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsremotemanagement_disallowkerberos_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsremotemanagement_disallowkerberos_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_disableautodownloadwin8", + "displayName": "Turn off Automatic Download of updates on Win8 machines", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_disableautodownloadwin8_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_disableautodownloadwin8_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_disableosupgrade_2", + "displayName": "Turn off the offer to update to the latest version of Windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_disableosupgrade_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_disableosupgrade_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_removewindowsstore_2", + "displayName": "Turn off the Store application", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_removewindowsstore_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_windowsstore_removewindowsstore_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wininit_disablenamedpipeshutdownpolicydescription", + "displayName": "Turn off legacy remote shutdown interface", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wininit_disablenamedpipeshutdownpolicydescription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wininit_disablenamedpipeshutdownpolicydescription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wininit_hiberboot", + "displayName": "Require use of fast startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wininit_hiberboot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wininit_hiberboot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wininit_shutdowntimeouthungsessionsdescription", + "displayName": "Timeout for hung logon sessions during shutdown", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wininit_shutdowntimeouthungsessionsdescription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wininit_shutdowntimeouthungsessionsdescription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wininit_shutdowntimeouthungsessionsdescription_shutdownsessiontimeout_time", + "displayName": "Hung session timeout in Minutes: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_displaylastlogoninfodescription", + "displayName": "Display information about previous logons during user logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_winlogon_displaylastlogoninfodescription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_displaylastlogoninfodescription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_reportcachedlogonpolicydescription", + "displayName": "Report when logon server was not available during user logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_winlogon_reportcachedlogonpolicydescription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_reportcachedlogonpolicydescription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_softwaresasgeneration", + "displayName": "Disable or enable software Secure Attention Sequence", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_winlogon_softwaresasgeneration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_softwaresasgeneration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_softwaresasgeneration_softwaresasgenerationdescription", + "displayName": "Set which software is allowed to generate the Secure Attention Sequence (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_winlogon_softwaresasgeneration_softwaresasgenerationdescription_0", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_softwaresasgeneration_softwaresasgenerationdescription_1", + "displayName": "Services", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_softwaresasgeneration_softwaresasgenerationdescription_2", + "displayName": "Ease of Access applications", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_winlogon_softwaresasgeneration_softwaresasgenerationdescription_3", + "displayName": "Services and Ease of Access applications", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_winsrv_allowblockingappsatshutdown", + "displayName": "Turn off automatic termination of applications that block or cancel shutdown", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_winsrv_allowblockingappsatshutdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_winsrv_allowblockingappsatshutdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setcost", + "displayName": "Set Cost", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setcost_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setcost_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setcost_cost_dropdownlist", + "displayName": "Please select a wlan connection cost value to set: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setcost_cost_dropdownlist_1", + "displayName": "Unrestricted", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setcost_cost_dropdownlist_2", + "displayName": "Fixed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setcost_cost_dropdownlist_3", + "displayName": "Variable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setpinenforced", + "displayName": "Require PIN pairing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setpinenforced_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setpinenforced_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setpinpreferred", + "displayName": "Prefer PIN pairing", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setpinpreferred_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_wlansvc_setpinpreferred_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_admx_workfoldersclient_pol_machineenableworkfolders", + "displayName": "Force automatic setup for all users", + "options": [ + { + "id": "device_vendor_msft_policy_config_admx_workfoldersclient_pol_machineenableworkfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_admx_workfoldersclient_pol_machineenableworkfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationcontrol_built_in_controls", + "displayName": "App Control for Business Built In Controls", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_applicationcontrol_built_in_controls_enable_app_control", + "displayName": "Enable App Control for Business policy to trust Windows components and Store apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationcontrol_built_in_controls_enable_app_control_0", + "displayName": "Enforce", + "description": "Enforce" + }, + { + "id": "device_vendor_msft_policy_config_applicationcontrol_built_in_controls_enable_app_control_1", + "displayName": "Audit only", + "description": "Audit only" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationcontrol_built_in_controls_trust_apps", + "displayName": "Select additional rules for trusting apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationcontrol_built_in_controls_trust_apps_0", + "displayName": "Trust apps with good reputation", + "description": "Trust app with good reputation" + }, + { + "id": "device_vendor_msft_policy_config_applicationcontrol_built_in_controls_trust_apps_1", + "displayName": "Trust apps from managed installers", + "description": "Trust apps from managed installers" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationcontrol_policies_{policyguid}_policiesoptions", + "displayName": "Configuration settings format", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationcontrol_configure_xml_selected", + "displayName": "Enter xml data", + "description": "Enter xml data" + }, + { + "id": "device_vendor_msft_policy_config_applicationcontrol_built_in_controls_selected", + "displayName": "Use built-in controls", + "description": "Use built-in controls" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationcontrol_policies_{policyguid}_xml", + "displayName": "App Control for Business policy", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_applicationdefaults_defaultassociationsconfiguration", + "displayName": "Default Associations Configuration", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_applicationdefaults_enableappurihandlers", + "displayName": "Enable App Uri Handlers", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationdefaults_enableappurihandlers_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_applicationdefaults_enableappurihandlers_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowalltrustedapps", + "displayName": "Allow All Trusted Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowalltrustedapps_0", + "displayName": "Explicit deny.", + "description": "Explicit deny." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowalltrustedapps_1", + "displayName": "Explicit allow unlock.", + "description": "Explicit allow unlock." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowalltrustedapps_65535", + "displayName": "Not configured.", + "description": "Not configured." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowappstoreautoupdate", + "displayName": "Allow apps from the Microsoft app store to auto update", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowappstoreautoupdate_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowappstoreautoupdate_1", + "displayName": "Allowed.", + "description": "Allowed." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowappstoreautoupdate_2", + "displayName": "Not configured.", + "description": "Not configured." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowdeveloperunlock", + "displayName": "Allow Developer Unlock", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowdeveloperunlock_0", + "displayName": "Explicit deny.", + "description": "Explicit deny." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowdeveloperunlock_1", + "displayName": "Explicit allow unlock.", + "description": "Explicit allow unlock." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowdeveloperunlock_65535", + "displayName": "Not configured.", + "description": "Not configured." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowgamedvr", + "displayName": "Allow Game DVR", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowgamedvr_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowgamedvr_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowshareduserappdata", + "displayName": "Allow Shared User App Data", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowshareduserappdata_0", + "displayName": "Block", + "description": "Prevented/not allowed, but Microsoft Edge downloads book files to a per-user folder for each user." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_allowshareduserappdata_1", + "displayName": "Allow", + "description": "Allowed. Microsoft Edge downloads book files into a shared folder. For this policy to work correctly, you must also enable the Allow a Windows app to share application data between users group policy. Also, the users must be signed in with a school or work account." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_blocknonadminuserinstall", + "displayName": "Block Non Admin User Install", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_blocknonadminuserinstall_0", + "displayName": "Block", + "description": "Disabled. All users will be able to initiate installation of Windows app packages." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_blocknonadminuserinstall_1", + "displayName": "Allow", + "description": "Enabled. Non-administrator users will not be able to initiate installation of Windows app packages." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_disablestoreoriginatedapps", + "displayName": "Disable Store Originated Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_disablestoreoriginatedapps_0", + "displayName": "Disabled", + "description": "Enable launch of apps." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_disablestoreoriginatedapps_1", + "displayName": "Enabled", + "description": "Disable launch of apps." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_launchappafterlogon", + "displayName": "Launch App After Log On", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_msiallowusercontroloverinstall", + "displayName": "MSI Allow User Control Over Install", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_msiallowusercontroloverinstall_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_msiallowusercontroloverinstall_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_msialwaysinstallwithelevatedprivileges", + "displayName": "MSI Always Install With Elevated Privileges", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_msialwaysinstallwithelevatedprivileges_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_msialwaysinstallwithelevatedprivileges_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_requireprivatestoreonly", + "displayName": "Require Private Store Only", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_requireprivatestoreonly_0", + "displayName": "Allow both public and Private store.", + "description": "Allow both public and Private store." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_requireprivatestoreonly_1", + "displayName": "Only Private store is enabled.", + "description": "Only Private store is enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_restrictappdatatosystemvolume", + "displayName": "Restrict App Data To System Volume", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_restrictappdatatosystemvolume_0", + "displayName": "Disabled", + "description": "Not restricted." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_restrictappdatatosystemvolume_1", + "displayName": "Enabled", + "description": "Restricted." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_restrictapptosystemvolume", + "displayName": "Restrict App To System Volume", + "options": [ + { + "id": "device_vendor_msft_policy_config_applicationmanagement_restrictapptosystemvolume_0", + "displayName": "Disabled", + "description": "Not restricted." + }, + { + "id": "device_vendor_msft_policy_config_applicationmanagement_restrictapptosystemvolume_1", + "displayName": "Enabled", + "description": "Restricted." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appruntime_allowmicrosoftaccountstobeoptional", + "displayName": "Allow Microsoft accounts to be optional", + "options": [ + { + "id": "device_vendor_msft_policy_config_appruntime_allowmicrosoftaccountstobeoptional_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appruntime_allowmicrosoftaccountstobeoptional_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowappvclient", + "displayName": "Enable App-V Client", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowappvclient_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowappvclient_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowdynamicvirtualization", + "displayName": "Enable Dynamic Virtualization", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowdynamicvirtualization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowdynamicvirtualization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpackagecleanup", + "displayName": "Enable automatic cleanup of unused appv packages", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpackagecleanup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpackagecleanup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpackagescripts", + "displayName": "Enable Package Scripts", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpackagescripts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpackagescripts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpublishingrefreshux", + "displayName": "Enable Publishing Refresh UX", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpublishingrefreshux_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowpublishingrefreshux_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver", + "displayName": "Reporting Server", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver_data_block_size", + "displayName": "Data Block Size", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver_data_cache_limit", + "displayName": "Data Cache Limit", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver_interval", + "displayName": "Repeat reporting for every (days)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver_random_delay", + "displayName": "Delay reporting for the random minutes", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver_reporting_server_url_prompt", + "displayName": "Reporting Server URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowreportingserver_start_time", + "displayName": "Reporting Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowroamingfileexclusions", + "displayName": "Roaming File Exclusions", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowroamingfileexclusions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowroamingfileexclusions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowroamingfileexclusions_integration_roaming_file_exclusions_prompt", + "displayName": "Roaming Registry Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowroamingregistryexclusions", + "displayName": "Roaming Registry Exclusions", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowroamingregistryexclusions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowroamingregistryexclusions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowroamingregistryexclusions_integration_roaming_registry_exclusions_prompt", + "displayName": "Roaming File Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowstreamingautoload", + "displayName": "Specify what to load in background (aka AutoLoad)", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowstreamingautoload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowstreamingautoload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowstreamingautoload_steaming_autoload_options", + "displayName": "Autoload Options", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowstreamingautoload_steaming_autoload_options_0", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowstreamingautoload_steaming_autoload_options_1", + "displayName": "Previously Used", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_allowstreamingautoload_steaming_autoload_options_2", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_clientcoexistenceallowmigrationmode", + "displayName": "Enable Migration Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_clientcoexistenceallowmigrationmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_clientcoexistenceallowmigrationmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_integrationallowrootglobal", + "displayName": "Integration Root User", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_integrationallowrootglobal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_integrationallowrootglobal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_integrationallowrootglobal_integration_root_user_prompt", + "displayName": "Integration Root User", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_integrationallowrootuser", + "displayName": "Integration Root Global", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_integrationallowrootuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_integrationallowrootuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_integrationallowrootuser_integration_root_global_prompt", + "displayName": "Integration Root Global", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1", + "displayName": "Publishing Server 1 Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_publishing_refresh_options", + "displayName": "Global Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_refresh_interval_prompt", + "displayName": "Global Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_refresh_onlogon_options", + "displayName": "Global Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_refresh_unit_options", + "displayName": "Global Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_global_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_publishing_server_url_prompt", + "displayName": "Publishing Server URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_publishing_server1_name_prompt", + "displayName": "Publishing Server Display Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_publishing_refresh_options", + "displayName": "User Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_refresh_interval_prompt", + "displayName": "User Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_refresh_onlogon_options", + "displayName": "User Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_refresh_unit_options", + "displayName": "User Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver1_user_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2", + "displayName": "Publishing Server 2 Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_publishing_refresh_options", + "displayName": "Global Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_refresh_interval_prompt", + "displayName": "Global Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_refresh_onlogon_options", + "displayName": "Global Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_refresh_unit_options", + "displayName": "Global Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_global_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_publishing_server_url_prompt", + "displayName": "Publishing Server URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_publishing_server2_name_prompt", + "displayName": "Publishing Server Display Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_publishing_refresh_options", + "displayName": "User Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_refresh_interval_prompt", + "displayName": "User Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_refresh_onlogon_options", + "displayName": "User Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_refresh_unit_options", + "displayName": "User Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver2_user_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3", + "displayName": "Publishing Server 3 Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_publishing_refresh_options", + "displayName": "Global Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_refresh_interval_prompt", + "displayName": "Global Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_refresh_onlogon_options", + "displayName": "Global Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_refresh_unit_options", + "displayName": "Global Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_global_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_publishing_server_url_prompt", + "displayName": "Publishing Server URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_publishing_server3_name_prompt", + "displayName": "Publishing Server Display Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_publishing_refresh_options", + "displayName": "User Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_refresh_interval_prompt", + "displayName": "User Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_refresh_onlogon_options", + "displayName": "User Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_refresh_unit_options", + "displayName": "User Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver3_user_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4", + "displayName": "Publishing Server 4 Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_publishing_refresh_options", + "displayName": "Global Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_refresh_interval_prompt", + "displayName": "Global Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_refresh_onlogon_options", + "displayName": "Global Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_refresh_unit_options", + "displayName": "Global Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_global_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_publishing_server_url_prompt", + "displayName": "Publishing Server URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_publishing_server4_name_prompt", + "displayName": "Publishing Server Display Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_publishing_refresh_options", + "displayName": "User Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_refresh_interval_prompt", + "displayName": "User Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_refresh_onlogon_options", + "displayName": "User Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_refresh_unit_options", + "displayName": "User Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver4_user_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5", + "displayName": "Publishing Server 5 Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_publishing_refresh_options", + "displayName": "Global Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_refresh_interval_prompt", + "displayName": "Global Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_refresh_onlogon_options", + "displayName": "Global Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_refresh_unit_options", + "displayName": "Global Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_global_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_publishing_server_url_prompt", + "displayName": "Publishing Server URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_publishing_server5_name_prompt", + "displayName": "Publishing Server Display Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_publishing_refresh_options", + "displayName": "User Publishing Refresh", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_publishing_refresh_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_publishing_refresh_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_refresh_interval_prompt", + "displayName": "User Publishing Refresh Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_refresh_onlogon_options", + "displayName": "User Publishing Refresh On Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_refresh_onlogon_options_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_refresh_onlogon_options_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_refresh_unit_options", + "displayName": "User Publishing Refresh Interval Unit", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_refresh_unit_options_0", + "displayName": "Hour", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_publishingallowserver5_user_refresh_unit_options_1", + "displayName": "Day", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowcertificatefilterforclient_ssl", + "displayName": "Certificate Filter For Client SSL", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowcertificatefilterforclient_ssl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowcertificatefilterforclient_ssl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowcertificatefilterforclient_ssl_streaming_certificate_filter_for_client_ssl_prompt", + "displayName": "Certificate Filter For Client SSL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowhighcostlaunch", + "displayName": "Allow First Time Application Launches if on a High Cost Windows 8 Metered Connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowhighcostlaunch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowhighcostlaunch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowlocationprovider", + "displayName": "Location Provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowlocationprovider_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowlocationprovider_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowlocationprovider_streaming_location_provider_prompt", + "displayName": "Location Provider", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowpackageinstallationroot", + "displayName": "Package Installation Root", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowpackageinstallationroot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowpackageinstallationroot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowpackageinstallationroot_streaming_package_installation_root_prompt", + "displayName": "Package Installation Root", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowpackagesourceroot", + "displayName": "Package Source Root", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowpackagesourceroot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowpackagesourceroot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowpackagesourceroot_package_source_root_prompt", + "displayName": "Package Source Root", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowreestablishmentinterval", + "displayName": "Reestablishment Interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowreestablishmentinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowreestablishmentinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowreestablishmentinterval_streaming_reestablishment_interval_prompt", + "displayName": "Reestablishment Interval:", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowreestablishmentretries", + "displayName": "Reestablishment Retries", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowreestablishmentretries_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowreestablishmentretries_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingallowreestablishmentretries_streaming_reestablishment_retries_prompt", + "displayName": "Reestablishment Retries:", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingsharedcontentstoremode", + "displayName": "Shared Content Store (SCS) mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingsharedcontentstoremode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingsharedcontentstoremode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingsupportbranchcache", + "displayName": "Enable Support for BranchCache", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingsupportbranchcache_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingsupportbranchcache_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingverifycertificaterevocationlist", + "displayName": "Verify certificate revocation list", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingverifycertificaterevocationlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_streamingverifycertificaterevocationlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_virtualcomponentsallowlist", + "displayName": "Virtual Component Process Allow List", + "options": [ + { + "id": "device_vendor_msft_policy_config_appvirtualization_virtualcomponentsallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_virtualcomponentsallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_appvirtualization_virtualcomponentsallowlist_virtualization_jitvallowlist_prompt", + "displayName": "Virtual Component Process Allow List", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditcredentialvalidation", + "displayName": "Account Logon Audit Credential Validation", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditcredentialvalidation_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditcredentialvalidation_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditcredentialvalidation_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditcredentialvalidation_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosauthenticationservice", + "displayName": "Account Logon Audit Kerberos Authentication Service", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosauthenticationservice_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosauthenticationservice_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosauthenticationservice_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosauthenticationservice_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosserviceticketoperations", + "displayName": "Account Logon Audit Kerberos Service Ticket Operations", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosserviceticketoperations_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosserviceticketoperations_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosserviceticketoperations_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditkerberosserviceticketoperations_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditotheraccountlogonevents", + "displayName": "Account Logon Audit Other Account Logon Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditotheraccountlogonevents_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditotheraccountlogonevents_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditotheraccountlogonevents_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogon_auditotheraccountlogonevents_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditaccountlockout", + "displayName": "Account Logon Logoff Audit Account Lockout", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditaccountlockout_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditaccountlockout_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditaccountlockout_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditaccountlockout_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditgroupmembership", + "displayName": "Account Logon Logoff Audit Group Membership", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditgroupmembership_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditgroupmembership_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditgroupmembership_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditgroupmembership_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecextendedmode", + "displayName": "Account Logon Logoff Audit I Psec Extended Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecextendedmode_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecextendedmode_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecextendedmode_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecextendedmode_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecmainmode", + "displayName": "Account Logon Logoff Audit I Psec Main Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecmainmode_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecmainmode_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecmainmode_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecmainmode_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecquickmode", + "displayName": "Account Logon Logoff Audit I Psec Quick Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecquickmode_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecquickmode_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecquickmode_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditipsecquickmode_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogoff", + "displayName": "Account Logon Logoff Audit Logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogoff_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogoff_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogoff_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogoff_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogon", + "displayName": "Account Logon Logoff Audit Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogon_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogon_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogon_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditlogon_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditnetworkpolicyserver", + "displayName": "Account Logon Logoff Audit Network Policy Server", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditnetworkpolicyserver_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditnetworkpolicyserver_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditnetworkpolicyserver_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditnetworkpolicyserver_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditotherlogonlogoffevents", + "displayName": "Audit Other Logon Logoff Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditotherlogonlogoffevents_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditotherlogonlogoffevents_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditotherlogonlogoffevents_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditotherlogonlogoffevents_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditspeciallogon", + "displayName": "Audit Special Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditspeciallogon_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditspeciallogon_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditspeciallogon_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_auditspeciallogon_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_audituserdeviceclaims", + "displayName": "Account Logon Logoff Audit User Device Claims", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_audituserdeviceclaims_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_audituserdeviceclaims_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_audituserdeviceclaims_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountlogonlogoff_audituserdeviceclaims_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditapplicationgroupmanagement", + "displayName": "Account Management Audit Application Group Management", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditapplicationgroupmanagement_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditapplicationgroupmanagement_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditapplicationgroupmanagement_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditapplicationgroupmanagement_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditcomputeraccountmanagement", + "displayName": "Account Management Audit Computer Account Management", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditcomputeraccountmanagement_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditcomputeraccountmanagement_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditcomputeraccountmanagement_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditcomputeraccountmanagement_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditdistributiongroupmanagement", + "displayName": "Account Management Audit Distribution Group Management", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditdistributiongroupmanagement_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditdistributiongroupmanagement_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditdistributiongroupmanagement_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditdistributiongroupmanagement_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditotheraccountmanagementevents", + "displayName": "Account Management Audit Other Account Management Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditotheraccountmanagementevents_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditotheraccountmanagementevents_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditotheraccountmanagementevents_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditotheraccountmanagementevents_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditsecuritygroupmanagement", + "displayName": "Audit Security Group Management", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditsecuritygroupmanagement_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditsecuritygroupmanagement_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditsecuritygroupmanagement_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_auditsecuritygroupmanagement_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_audituseraccountmanagement", + "displayName": "Audit User Account Management", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_audituseraccountmanagement_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_audituseraccountmanagement_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_audituseraccountmanagement_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_accountmanagement_audituseraccountmanagement_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditdpapiactivity", + "displayName": "Detailed Tracking Audit DPAPI Activity", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditdpapiactivity_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditdpapiactivity_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditdpapiactivity_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditdpapiactivity_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditpnpactivity", + "displayName": "Detailed Tracking Audit PNP Activity", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditpnpactivity_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditpnpactivity_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditpnpactivity_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditpnpactivity_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesscreation", + "displayName": "Detailed Tracking Audit Process Creation", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesscreation_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesscreation_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesscreation_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesscreation_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesstermination", + "displayName": "Detailed Tracking Audit Process Termination", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesstermination_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesstermination_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesstermination_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditprocesstermination_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditrpcevents", + "displayName": "Detailed Tracking Audit RPC Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditrpcevents_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditrpcevents_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditrpcevents_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_auditrpcevents_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_audittokenrightadjusted", + "displayName": "Detailed Tracking Audit Token Right Adjusted", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_audittokenrightadjusted_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_audittokenrightadjusted_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_audittokenrightadjusted_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_detailedtracking_audittokenrightadjusted_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdetaileddirectoryservicereplication", + "displayName": "DS Access Audit Detailed Directory Service Replication", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdetaileddirectoryservicereplication_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdetaileddirectoryservicereplication_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdetaileddirectoryservicereplication_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdetaileddirectoryservicereplication_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryserviceaccess", + "displayName": "DS Access Audit Directory Service Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryserviceaccess_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryserviceaccess_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryserviceaccess_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryserviceaccess_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicechanges", + "displayName": "Audit Directory Service Changes", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicechanges_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicechanges_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicechanges_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicechanges_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicereplication", + "displayName": "DS Access Audit Directory Service Replication", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicereplication_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicereplication_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicereplication_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_dsaccess_auditdirectoryservicereplication_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditapplicationgenerated", + "displayName": "Object Access Audit Application Generated", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditapplicationgenerated_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditapplicationgenerated_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditapplicationgenerated_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditapplicationgenerated_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcentralaccesspolicystaging", + "displayName": "Object Access Audit Central Access Policy Staging", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcentralaccesspolicystaging_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcentralaccesspolicystaging_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcentralaccesspolicystaging_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcentralaccesspolicystaging_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcertificationservices", + "displayName": "Object Access Audit Certification Services", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcertificationservices_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcertificationservices_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcertificationservices_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditcertificationservices_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditdetailedfileshare", + "displayName": "Object Access Audit Detailed File Share", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditdetailedfileshare_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditdetailedfileshare_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditdetailedfileshare_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditdetailedfileshare_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfileshare", + "displayName": "Audit File Share Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfileshare_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfileshare_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfileshare_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfileshare_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilesystem", + "displayName": "Object Access Audit File System", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilesystem_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilesystem_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilesystem_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilesystem_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformconnection", + "displayName": "Object Access Audit Filtering Platform Connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformconnection_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformconnection_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformconnection_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformconnection_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformpacketdrop", + "displayName": "Object Access Audit Filtering Platform Packet Drop", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformpacketdrop_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformpacketdrop_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformpacketdrop_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditfilteringplatformpacketdrop_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_audithandlemanipulation", + "displayName": "Object Access Audit Handle Manipulation", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_audithandlemanipulation_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_audithandlemanipulation_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_audithandlemanipulation_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_audithandlemanipulation_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditkernelobject", + "displayName": "Object Access Audit Kernel Object", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditkernelobject_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditkernelobject_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditkernelobject_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditkernelobject_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditotherobjectaccessevents", + "displayName": "Object Access Audit Other Object Access Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditotherobjectaccessevents_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditotherobjectaccessevents_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditotherobjectaccessevents_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditotherobjectaccessevents_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditregistry", + "displayName": "Object Access Audit Registry", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditregistry_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditregistry_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditregistry_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditregistry_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditremovablestorage", + "displayName": "Object Access Audit Removable Storage", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditremovablestorage_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditremovablestorage_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditremovablestorage_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditremovablestorage_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditsam", + "displayName": "Object Access Audit SAM", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditsam_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditsam_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditsam_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_objectaccess_auditsam_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthenticationpolicychange", + "displayName": "Audit Authentication Policy Change", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthenticationpolicychange_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthenticationpolicychange_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthenticationpolicychange_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthenticationpolicychange_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthorizationpolicychange", + "displayName": "Audit Authorization Policy Change", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthorizationpolicychange_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthorizationpolicychange_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthorizationpolicychange_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditauthorizationpolicychange_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditfilteringplatformpolicychange", + "displayName": "Policy Change Audit Filtering Platform Policy Change", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditfilteringplatformpolicychange_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditfilteringplatformpolicychange_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditfilteringplatformpolicychange_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditfilteringplatformpolicychange_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditmpssvcrulelevelpolicychange", + "displayName": "Policy Change Audit MPSSVC Rule Level Policy Change", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditmpssvcrulelevelpolicychange_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditmpssvcrulelevelpolicychange_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditmpssvcrulelevelpolicychange_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditmpssvcrulelevelpolicychange_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditotherpolicychangeevents", + "displayName": "Policy Change Audit Other Policy Change Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditotherpolicychangeevents_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditotherpolicychangeevents_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditotherpolicychangeevents_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditotherpolicychangeevents_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditpolicychange", + "displayName": "Audit Changes to Audit Policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditpolicychange_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditpolicychange_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditpolicychange_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_policychange_auditpolicychange_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditnonsensitiveprivilegeuse", + "displayName": "Privilege Use Audit Non Sensitive Privilege Use", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditnonsensitiveprivilegeuse_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditnonsensitiveprivilegeuse_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditnonsensitiveprivilegeuse_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditnonsensitiveprivilegeuse_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditotherprivilegeuseevents", + "displayName": "Privilege Use Audit Other Privilege Use Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditotherprivilegeuseevents_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditotherprivilegeuseevents_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditotherprivilegeuseevents_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditotherprivilegeuseevents_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditsensitiveprivilegeuse", + "displayName": "Privilege Use Audit Sensitive Privilege Use", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditsensitiveprivilegeuse_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditsensitiveprivilegeuse_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditsensitiveprivilegeuse_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_privilegeuse_auditsensitiveprivilegeuse_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditipsecdriver", + "displayName": "System Audit I Psec Driver", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_system_auditipsecdriver_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditipsecdriver_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditipsecdriver_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditipsecdriver_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditothersystemevents", + "displayName": "System Audit Other System Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_system_auditothersystemevents_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditothersystemevents_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditothersystemevents_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditothersystemevents_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritystatechange", + "displayName": "System Audit Security State Change", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritystatechange_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritystatechange_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritystatechange_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritystatechange_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritysystemextension", + "displayName": "Audit Security System Extension", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritysystemextension_0", + "displayName": "Off/None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritysystemextension_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritysystemextension_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsecuritysystemextension_3", + "displayName": "Success+Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsystemintegrity", + "displayName": "System Audit System Integrity", + "options": [ + { + "id": "device_vendor_msft_policy_config_audit_system_auditsystemintegrity_0", + "displayName": "Off/ None", + "description": "Off/None" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsystemintegrity_1", + "displayName": "Success", + "description": "Success" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsystemintegrity_2", + "displayName": "Failure", + "description": "Failure" + }, + { + "id": "device_vendor_msft_policy_config_audit_system_auditsystemintegrity_3", + "displayName": "Success+ Failure", + "description": "Success+Failure" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_authentication_allowaadpasswordreset", + "displayName": "Allow Aad Password Reset", + "options": [ + { + "id": "device_vendor_msft_policy_config_authentication_allowaadpasswordreset_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_authentication_allowaadpasswordreset_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_authentication_allowfastreconnect", + "displayName": "Allow Fast Reconnect", + "options": [ + { + "id": "device_vendor_msft_policy_config_authentication_allowfastreconnect_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_authentication_allowfastreconnect_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_authentication_allowsecondaryauthenticationdevice", + "displayName": "Allow Secondary Authentication Device", + "options": [ + { + "id": "device_vendor_msft_policy_config_authentication_allowsecondaryauthenticationdevice_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_authentication_allowsecondaryauthenticationdevice_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_authentication_configurewebcamaccessdomainnames", + "displayName": "Configure Webcam Access Domain Names", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_authentication_configurewebsigninallowedurls", + "displayName": "Configure Web Sign In Allowed Urls", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablefastfirstsignin", + "displayName": "Enable Fast First Sign In", + "options": [ + { + "id": "device_vendor_msft_policy_config_authentication_enablefastfirstsignin_0", + "displayName": "The feature defaults to the existing SKU and device capabilities.", + "description": "The feature defaults to the existing SKU and device capabilities." + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablefastfirstsignin_1", + "displayName": "Enabled. Auto-connect new non-admin Azure AD accounts to pre-configured candidate local accounts", + "description": "Enabled. Auto-connect new non-admin Azure AD accounts to pre-configured candidate local accounts" + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablefastfirstsignin_2", + "displayName": "Disabled. Do not auto-connect new non-admin Azure AD accounts to pre-configured local accounts", + "description": "Disabled. Do not auto-connect new non-admin Azure AD accounts to pre-configured local accounts" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablepasswordlessexperience", + "displayName": "Enable Passwordless Experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_authentication_enablepasswordlessexperience_0", + "displayName": "The feature defaults to the existing edition and device capabilities.", + "description": "The feature defaults to the existing edition and device capabilities." + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablepasswordlessexperience_1", + "displayName": "Enabled. The Passwordless experience will be enabled on Windows", + "description": "Enabled. The Passwordless experience will be enabled on Windows" + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablepasswordlessexperience_2", + "displayName": "Disabled. The Passwordless experience will not be enabled on Windows", + "description": "Disabled. The Passwordless experience will not be enabled on Windows" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablewebsignin", + "displayName": "Enable Web Sign In", + "options": [ + { + "id": "device_vendor_msft_policy_config_authentication_enablewebsignin_0", + "displayName": "The feature defaults to the existing SKU and device capabilities.", + "description": "The feature defaults to the existing SKU and device capabilities." + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablewebsignin_1", + "displayName": "Enabled. Web Sign-in will be enabled for signing in to Windows", + "description": "Enabled. Web Sign-in will be enabled for signing in to Windows" + }, + { + "id": "device_vendor_msft_policy_config_authentication_enablewebsignin_2", + "displayName": "Disabled. Web Sign-in will not be enabled for signing in to Windows", + "description": "Disabled. Web Sign-in will not be enabled for signing in to Windows" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_authentication_preferredaadtenantdomainname", + "displayName": "Preferred Aad Tenant Domain Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_autoplay_disallowautoplayfornonvolumedevices", + "displayName": "Disallow Autoplay for non-volume devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_autoplay_disallowautoplayfornonvolumedevices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_autoplay_disallowautoplayfornonvolumedevices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior", + "displayName": "Set the default behavior for AutoRun", + "options": [ + { + "id": "device_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_noautorun_dropdown", + "displayName": "Default AutoRun Behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_noautorun_dropdown_1", + "displayName": "Do not execute any autorun commands", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_noautorun_dropdown_2", + "displayName": "Automatically execute autorun commands", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_autoplay_turnoffautoplay", + "displayName": "Turn off Autoplay", + "options": [ + { + "id": "device_vendor_msft_policy_config_autoplay_turnoffautoplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_autoplay_turnoffautoplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_autoplay_turnoffautoplay_autorun_box", + "displayName": "Turn off Autoplay on:", + "options": [ + { + "id": "device_vendor_msft_policy_config_autoplay_turnoffautoplay_autorun_box_181", + "displayName": "CD-ROM and removable media drives", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_autoplay_turnoffautoplay_autorun_box_255", + "displayName": "All drives", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_bits_bandwidththrottlingendtime", + "displayName": "Bandwidth Throttling End Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_bits_bandwidththrottlingstarttime", + "displayName": "Bandwidth Throttling Start Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_bits_bandwidththrottlingtransferrate", + "displayName": "Bandwidth Throttling Transfer Rate", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorbackgroundpriority", + "displayName": "Costed Network Behavior Background Priority", + "options": [ + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorbackgroundpriority_1", + "displayName": "Always transfer", + "description": "Always transfer" + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorbackgroundpriority_2", + "displayName": "Transfer unless roaming", + "description": "Transfer unless roaming" + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorbackgroundpriority_3", + "displayName": "Transfer unless surcharge applies (when not roaming or over cap)", + "description": "Transfer unless surcharge applies (when not roaming or over cap)" + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorbackgroundpriority_4", + "displayName": "Transfer unless nearing limit (when not roaming or nearing cap)", + "description": "Transfer unless nearing limit (when not roaming or nearing cap)" + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorbackgroundpriority_5", + "displayName": "Transfer only if unconstrained", + "description": "Transfer only if unconstrained" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorforegroundpriority", + "displayName": "Costed Network Behavior Foreground Priority", + "options": [ + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorforegroundpriority_1", + "displayName": "Always transfer", + "description": "Always transfer" + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorforegroundpriority_2", + "displayName": "Transfer unless roaming", + "description": "Transfer unless roaming" + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorforegroundpriority_3", + "displayName": "Transfer unless surcharge applies (when not roaming or over cap)", + "description": "Transfer unless surcharge applies (when not roaming or over cap)" + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorforegroundpriority_4", + "displayName": "Transfer unless nearing limit (when not roaming or nearing cap)", + "description": "Transfer unless nearing limit (when not roaming or nearing cap)" + }, + { + "id": "device_vendor_msft_policy_config_bits_costednetworkbehaviorforegroundpriority_5", + "displayName": "Transfer only if unconstrained", + "description": "Transfer only if unconstrained" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_bits_jobinactivitytimeout", + "displayName": "Job Inactivity Timeout", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_allowadvertising", + "displayName": "Allow Advertising", + "options": [ + { + "id": "device_vendor_msft_policy_config_bluetooth_allowadvertising_0", + "displayName": "Block", + "description": "Not allowed. When set to 0, the device will not send out advertisements. To verify, use any Bluetooth LE app and enable it to do advertising. Then, verify that the advertisement is not received by the peripheral." + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_allowadvertising_1", + "displayName": "Allow", + "description": "Allowed. When set to 1, the device will send out advertisements. To verify, use any Bluetooth LE app and enable it to do advertising. Then, verify that the advertisement is received by the peripheral." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_allowdiscoverablemode", + "displayName": "Allow Discoverable Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_bluetooth_allowdiscoverablemode_0", + "displayName": "Block", + "description": "Not allowed. When set to 0, other devices will not be able to detect the device. To verify, open the Bluetooth control panel on the device. Then, go to another Bluetooth-enabled device, open the Bluetooth control panel, and verify that you cannot see the name of the device." + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_allowdiscoverablemode_1", + "displayName": "Allow", + "description": "Allowed. When set to 1, other devices will be able to detect the device. To verify, open the Bluetooth control panel on the device. Then, go to another Bluetooth-enabled device, open the Bluetooth control panel and verify that you can discover it." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_allowprepairing", + "displayName": "Allow Prepairing", + "options": [ + { + "id": "device_vendor_msft_policy_config_bluetooth_allowprepairing_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_allowprepairing_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_allowpromptedproximalconnections", + "displayName": "Allow Prompted Proximal Connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_bluetooth_allowpromptedproximalconnections_0", + "displayName": "Block", + "description": "Disallow. Block users on these managed devices from using Swift Pair and other proximity based scenarios" + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_allowpromptedproximalconnections_1", + "displayName": "Allow", + "description": "Allow. Allow users on these managed devices to use Swift Pair and other proximity based scenarios" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_localdevicename", + "displayName": "Local Device Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_servicesallowedlist", + "displayName": "Services Allowed List", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_bluetooth_setminimumencryptionkeysize", + "displayName": "Set Minimum Encryption Key Size", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_allowaddressbardropdown", + "displayName": "Allow Address Bar Dropdown", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowaddressbardropdown_0", + "displayName": "Block", + "description": "Prevented/not allowed. Hide the Address bar drop-down functionality and disable the Show search and site suggestions as I type toggle in Settings." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowaddressbardropdown_1", + "displayName": "Allow", + "description": "Allowed. Show the Address bar drop-down list and make it available." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowautofill", + "displayName": "Allow Autofill", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowautofill_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowautofill_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowconfigurationupdateforbookslibrary", + "displayName": "Allow Configuration Update For Books Library", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowconfigurationupdateforbookslibrary_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowconfigurationupdateforbookslibrary_1", + "displayName": "Allow", + "description": "Allowed. Microsoft Edge updates the configuration data for the Books Library automatically." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowcookies", + "displayName": "Allow Cookies", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowcookies_0", + "displayName": "Block all cookies from all sites", + "description": "Block all cookies from all sites" + }, + { + "id": "device_vendor_msft_policy_config_browser_allowcookies_1", + "displayName": "Block only cookies from third party websites", + "description": "Block only cookies from third party websites" + }, + { + "id": "device_vendor_msft_policy_config_browser_allowcookies_2", + "displayName": "Allow all cookies from all sites", + "description": "Allow all cookies from all sites" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowdevelopertools", + "displayName": "Allow Developer Tools", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowdevelopertools_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowdevelopertools_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowdonottrack", + "displayName": "Allow Do Not Track", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowdonottrack_0", + "displayName": "Block", + "description": "Never send tracking information." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowdonottrack_1", + "displayName": "Allow", + "description": "Send tracking information." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowextensions", + "displayName": "Allow Extensions", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowextensions_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowextensions_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowflash", + "displayName": "Allow Flash", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowflash_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowflash_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowflashclicktorun", + "displayName": "Allow Flash Click To Run", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowflashclicktorun_0", + "displayName": "Block", + "description": "Load and run Adobe Flash content automatically." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowflashclicktorun_1", + "displayName": "Allow", + "description": "Does not load or run Adobe Flash content automatically. Requires action from the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowfullscreenmode", + "displayName": "Allow Full Screen Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowfullscreenmode_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowfullscreenmode_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowinprivate", + "displayName": "Allow InPrivate", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowinprivate_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowinprivate_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowmicrosoftcompatibilitylist", + "displayName": "Allow Microsoft Compatibility List", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowmicrosoftcompatibilitylist_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowmicrosoftcompatibilitylist_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowpasswordmanager", + "displayName": "Allow Password Manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowpasswordmanager_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowpasswordmanager_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowpopups", + "displayName": "Allow Popups", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowpopups_0", + "displayName": "Block", + "description": "Turn off Pop-up Blocker letting pop-up windows open." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowpopups_1", + "displayName": "Allow", + "description": "Turn on Pop-up Blocker stopping pop-up windows from opening." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowprelaunch", + "displayName": "Allow Prelaunch", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowprelaunch_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowprelaunch_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowprinting", + "displayName": "Allow Printing", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowprinting_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowprinting_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsavinghistory", + "displayName": "Allow Saving History", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowsavinghistory_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsavinghistory_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsearchenginecustomization", + "displayName": "Allow Search Engine Customization", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowsearchenginecustomization_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsearchenginecustomization_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsearchsuggestionsinaddressbar", + "displayName": "Allow Search Suggestionsin Address Bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowsearchsuggestionsinaddressbar_0", + "displayName": "Block", + "description": "Prevented/Not allowed. Hide the search suggestions." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsearchsuggestionsinaddressbar_1", + "displayName": "Allow", + "description": "Allowed. Show the search suggestions." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsideloadingofextensions", + "displayName": "Allow Sideloading Of Extensions", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowsideloadingofextensions_0", + "displayName": "Block", + "description": "Prevented/Not allowed. Disabling does not prevent sideloading of extensions using Add-AppxPackage via Powershell. To prevent this, set the ApplicationManagement/AllowDeveloperUnlock policy to 1 (enabled)." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsideloadingofextensions_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsmartscreen", + "displayName": "Allow Smart Screen", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowsmartscreen_0", + "displayName": "Block", + "description": "Turned off. Do not protect users from potential threats and prevent users from turning it on." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowsmartscreen_1", + "displayName": "Allow", + "description": "Turned on. Protect users from potential threats and prevent users from turning it off." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowtabpreloading", + "displayName": "Allow Tab Preloading", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowtabpreloading_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowtabpreloading_1", + "displayName": "Allow", + "description": "Allowed. Preload Start and New tab pages." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_allowwebcontentonnewtabpage", + "displayName": "Allow Web Content On New Tab Page", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_allowwebcontentonnewtabpage_0", + "displayName": "Block", + "description": "Load a blank page instead of the default New tab page and prevent users from changing it." + }, + { + "id": "device_vendor_msft_policy_config_browser_allowwebcontentonnewtabpage_1", + "displayName": "Allow", + "description": "Load the default New tab page." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_alwaysenablebookslibrary", + "displayName": "Always Enable Books Library", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_alwaysenablebookslibrary_0", + "displayName": "Disabled", + "description": "Show the Books Library only in countries or regions where supported." + }, + { + "id": "device_vendor_msft_policy_config_browser_alwaysenablebookslibrary_1", + "displayName": "Enabled", + "description": "Show the Books Library, regardless of the device's country or region." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_clearbrowsingdataonexit", + "displayName": "Clear Browsing Data On Exit", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_clearbrowsingdataonexit_0", + "displayName": "Disabled", + "description": "Prevented/not allowed. Users can configure the 'Clear browsing data' option in Settings." + }, + { + "id": "device_vendor_msft_policy_config_browser_clearbrowsingdataonexit_1", + "displayName": "Enabled", + "description": "Allowed. Clear the browsing data upon exit automatically." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_configureadditionalsearchengines", + "displayName": "Configure Additional Search Engines", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_configurefavoritesbar", + "displayName": "Configure Favorites Bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_configurefavoritesbar_0", + "displayName": "Disabled", + "description": "Hide the favorites bar on all pages. Also, the favorites bar toggle, in Settings, is set to Off and disabled preventing users from making changes. Microsoft Edge also hides the “show bar/hide bar” option in the context menu." + }, + { + "id": "device_vendor_msft_policy_config_browser_configurefavoritesbar_1", + "displayName": "Enabled", + "description": "Show the favorites bar on all pages. Also, the favorites bar toggle, in Settings, is set to On and disabled preventing users from making changes. Microsoft Edge also hides the “show bar/hide bar” option in the context menu." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_configurehomebutton", + "displayName": "Configure Home Button", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_configurehomebutton_0", + "displayName": "Show home button and load the Start page", + "description": "Show home button and load the Start page" + }, + { + "id": "device_vendor_msft_policy_config_browser_configurehomebutton_1", + "displayName": "Show home button and load the New tab page", + "description": "Show home button and load the New tab page" + }, + { + "id": "device_vendor_msft_policy_config_browser_configurehomebutton_2", + "displayName": "Show home button and load the custom URL defined in the Set Home Button URL policy", + "description": "Show home button and load the custom URL defined in the Set Home Button URL policy" + }, + { + "id": "device_vendor_msft_policy_config_browser_configurehomebutton_3", + "displayName": "Hide home button", + "description": "Hide home button" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_configurekioskmode", + "displayName": "Configure Kiosk Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_configurekioskmode_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_browser_configurekioskmode_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_configurekioskresetafteridletimeout", + "displayName": "Configure Kiosk Reset After Idle Timeout", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith", + "displayName": "Configure Open Microsoft Edge With", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith_0", + "displayName": "Load the Start page", + "description": "Load the Start page" + }, + { + "id": "device_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith_1", + "displayName": "Load the New tab page", + "description": "Load the New tab page" + }, + { + "id": "device_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith_2", + "displayName": "Load the previous pages", + "description": "Load the previous pages" + }, + { + "id": "device_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith_3", + "displayName": "Load a specific page or pages", + "description": "Load a specific page or pages" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics", + "displayName": "Configure Telemetry For Microsoft 365 Analytics", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics_0", + "displayName": "No data collected or sent", + "description": "No data collected or sent" + }, + { + "id": "device_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics_1", + "displayName": "Send intranet history only", + "description": "Send intranet history only" + }, + { + "id": "device_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics_2", + "displayName": "Send Internet history only", + "description": "Send Internet history only" + }, + { + "id": "device_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics_3", + "displayName": "Send both intranet and Internet history", + "description": "Send both intranet and Internet history" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_disablelockdownofstartpages", + "displayName": "Disable Lockdown Of Start Pages", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_disablelockdownofstartpages_0", + "displayName": "Disabled", + "description": "Lock down Start pages configured in either the ConfigureOpenEdgeWith policy and HomePages policy." + }, + { + "id": "device_vendor_msft_policy_config_browser_disablelockdownofstartpages_1", + "displayName": "Enabled", + "description": "Unlocked. Users can make changes to all configured start pages." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_enableextendedbookstelemetry", + "displayName": "Enable Extended Books Telemetry", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_enableextendedbookstelemetry_0", + "displayName": "Disabled", + "description": "Gather and send only basic diagnostic data, depending on the device configuration." + }, + { + "id": "device_vendor_msft_policy_config_browser_enableextendedbookstelemetry_1", + "displayName": "Enabled", + "description": "Gather all diagnostic data." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_enterprisemodesitelist", + "displayName": "Enterprise Mode Site List", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_enterprisesitelistserviceurl", + "displayName": "Enterprise Site List Service Url", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_homepages", + "displayName": "Home Pages", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_lockdownfavorites", + "displayName": "Lockdown Favorites", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_lockdownfavorites_0", + "displayName": "Disabled", + "description": "Allowed/not locked down. Users can add, import, and make changes to the favorites." + }, + { + "id": "device_vendor_msft_policy_config_browser_lockdownfavorites_1", + "displayName": "Enabled", + "description": "Prevented/locked down." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_preventaccesstoaboutflagsinmicrosoftedge", + "displayName": "Prevent Access To About Flags In Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_preventaccesstoaboutflagsinmicrosoftedge_0", + "displayName": "Disabled", + "description": "Allowed." + }, + { + "id": "device_vendor_msft_policy_config_browser_preventaccesstoaboutflagsinmicrosoftedge_1", + "displayName": "Enabled", + "description": "Prevents users from accessing the about:flags page." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_preventcerterroroverrides", + "displayName": "Prevent Cert Error Overrides", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_preventcerterroroverrides_0", + "displayName": "Disabled", + "description": "Allowed/turned on. Override the security warning to sites that have SSL errors." + }, + { + "id": "device_vendor_msft_policy_config_browser_preventcerterroroverrides_1", + "displayName": "Enabled", + "description": "Prevented/turned on." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_preventlivetiledatacollection", + "displayName": "Prevent Live Tile Data Collection", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_preventlivetiledatacollection_0", + "displayName": "Disabled", + "description": "Collect and send Live Tile metadata." + }, + { + "id": "device_vendor_msft_policy_config_browser_preventlivetiledatacollection_1", + "displayName": "Enabled", + "description": "No data collected." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_preventsmartscreenpromptoverride", + "displayName": "Prevent Smart Screen Prompt Override", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_preventsmartscreenpromptoverride_0", + "displayName": "Disabled", + "description": "Allowed/turned off. Users can ignore the warning and continue to the site." + }, + { + "id": "device_vendor_msft_policy_config_browser_preventsmartscreenpromptoverride_1", + "displayName": "Enabled", + "description": "Prevented/turned on." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_preventsmartscreenpromptoverrideforfiles", + "displayName": "Prevent Smart Screen Prompt Override For Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_preventsmartscreenpromptoverrideforfiles_0", + "displayName": "Disabled", + "description": "Allowed/turned off. Users can ignore the warning and continue to download the unverified file(s)." + }, + { + "id": "device_vendor_msft_policy_config_browser_preventsmartscreenpromptoverrideforfiles_1", + "displayName": "Enabled", + "description": "Prevented/turned on." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_preventturningoffrequiredextensions", + "displayName": "Prevent Turning Off Required Extensions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_preventusinglocalhostipaddressforwebrtc", + "displayName": "Prevent Using Local Host IP Address For Web RTC", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_preventusinglocalhostipaddressforwebrtc_0", + "displayName": "Disabled", + "description": "Allowed. Show localhost IP addresses." + }, + { + "id": "device_vendor_msft_policy_config_browser_preventusinglocalhostipaddressforwebrtc_1", + "displayName": "Enabled", + "description": "Prevented/Not allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_provisionfavorites", + "displayName": "Provision Favorites", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_sendintranettraffictointernetexplorer", + "displayName": "Send Intranet Trafficto Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_sendintranettraffictointernetexplorer_0", + "displayName": "Disabled", + "description": "All sites, including intranet sites, open in Microsoft Edge automatically." + }, + { + "id": "device_vendor_msft_policy_config_browser_sendintranettraffictointernetexplorer_1", + "displayName": "Enabled", + "description": "Only intranet sites open in Internet Explorer 11 automatically." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_setdefaultsearchengine", + "displayName": "Set Default Search Engine", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_sethomebuttonurl", + "displayName": "Set Home Button URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_setnewtabpageurl", + "displayName": "Set New Tab Page URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_browser_showmessagewhenopeningsitesininternetexplorer", + "displayName": "Show Message When Opening Sites In Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_showmessagewhenopeningsitesininternetexplorer_0", + "displayName": "No additional message displays.", + "description": "No additional message displays." + }, + { + "id": "device_vendor_msft_policy_config_browser_showmessagewhenopeningsitesininternetexplorer_1", + "displayName": "Show an additional message stating that a site has opened in IE11.", + "description": "Show an additional message stating that a site has opened in IE11." + }, + { + "id": "device_vendor_msft_policy_config_browser_showmessagewhenopeningsitesininternetexplorer_2", + "displayName": "Show an additional message with a \"Keep going in Microsoft Edge\" link.", + "description": "Show an additional message with a \"Keep going in Microsoft Edge\" link." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_syncfavoritesbetweenieandmicrosoftedge", + "displayName": "Sync Favorites Between IE And Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_syncfavoritesbetweenieandmicrosoftedge_0", + "displayName": "Disabled", + "description": "Turned off/not syncing." + }, + { + "id": "device_vendor_msft_policy_config_browser_syncfavoritesbetweenieandmicrosoftedge_1", + "displayName": "Enabled", + "description": "Turned on/syncing." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_unlockhomebutton", + "displayName": "Unlock Home Button", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_unlockhomebutton_0", + "displayName": "Disabled", + "description": "Lock down and prevent users from making changes to the settings." + }, + { + "id": "device_vendor_msft_policy_config_browser_unlockhomebutton_1", + "displayName": "Enabled", + "description": "Let users make changes." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_browser_usesharedfolderforbooks", + "displayName": "Use Shared Folder For Books", + "options": [ + { + "id": "device_vendor_msft_policy_config_browser_usesharedfolderforbooks_0", + "displayName": "Disabled", + "description": "Prevented/not allowed, but Microsoft Edge downloads book files to a per-user folder for each user." + }, + { + "id": "device_vendor_msft_policy_config_browser_usesharedfolderforbooks_1", + "displayName": "Enabled", + "description": "Allowed. Microsoft Edge downloads book files to a shared folder. For this policy to work correctly, you must also enable the Allow a Windows app to share application data between users group policy. Also, the users must be signed in with a school or work account." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_camera_allowcamera", + "displayName": "Allow Camera", + "options": [ + { + "id": "device_vendor_msft_policy_config_camera_allowcamera_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_camera_allowcamera_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_cellular_letappsaccesscellulardata", + "displayName": "Let Apps Access Cellular Data", + "options": [ + { + "id": "device_vendor_msft_policy_config_cellular_letappsaccesscellulardata_0", + "displayName": "User is in control", + "description": "User is in control" + }, + { + "id": "device_vendor_msft_policy_config_cellular_letappsaccesscellulardata_1", + "displayName": "Force Allow", + "description": "Force Allow" + }, + { + "id": "device_vendor_msft_policy_config_cellular_letappsaccesscellulardata_2", + "displayName": "Force Deny", + "description": "Force Deny" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_cellular_letappsaccesscellulardata_forceallowtheseapps", + "displayName": "Let Apps Access Cellular Data Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_cellular_letappsaccesscellulardata_forcedenytheseapps", + "displayName": "Let Apps Access Cellular Data Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_cellular_letappsaccesscellulardata_userincontroloftheseapps", + "displayName": "Let Apps Access Cellular Data User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_cellular_showappcellularaccessui", + "displayName": "Set Per-App Cellular Access UI Visibility", + "options": [ + { + "id": "device_vendor_msft_policy_config_cellular_showappcellularaccessui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_cellular_showappcellularaccessui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_cellular_showappcellularaccessui_showappcellularaccessui_option", + "displayName": "Please select one option to set: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_cellular_showappcellularaccessui_showappcellularaccessui_option_0", + "displayName": "Hide", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_cellular_showappcellularaccessui_showappcellularaccessui_option_1", + "displayName": "Show", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_abusiveexperienceinterventionenforce", + "displayName": "Abusive Experience Intervention Enforce", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_abusiveexperienceinterventionenforce_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_abusiveexperienceinterventionenforce_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_accessibilityimagelabelsenabled", + "displayName": "Enable Get Image Descriptions from Google.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_accessibilityimagelabelsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_accessibilityimagelabelsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_additionaldnsquerytypesenabled", + "displayName": "Allow DNS queries for additional DNS record types", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_additionaldnsquerytypesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_additionaldnsquerytypesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_adssettingforintrusiveadssites_1", + "displayName": "Allow ads on all sites", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_adssettingforintrusiveadssites_2", + "displayName": "Do not allow ads on sites with intrusive ads", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_advancedprotectionallowed", + "displayName": "Enable additional protections for users enrolled in the Advanced Protection program", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_advancedprotectionallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_advancedprotectionallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdeletingbrowserhistory", + "displayName": "Enable deleting browser and download history", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdeletingbrowserhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdeletingbrowserhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdinosaureasteregg", + "displayName": "Allow Dinosaur Easter Egg Game", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdinosaureasteregg_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdinosaureasteregg_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alloweddomainsforapps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alloweddomainsforapps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alloweddomainsforapps_alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowfileselectiondialogs", + "displayName": "Allow invocation of file selection dialogs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowfileselectiondialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowfileselectiondialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowsyncxhrinpagedismissal", + "displayName": "Allows a page to perform synchronous XHR requests during page dismissal.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowsyncxhrinpagedismissal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowsyncxhrinpagedismissal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alternateerrorpagesenabled", + "displayName": "Enable alternate error pages", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alternateerrorpagesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alternateerrorpagesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alwaysopenpdfexternally", + "displayName": "Always Open PDF files externally", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alwaysopenpdfexternally_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alwaysopenpdfexternally_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for profile types.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for profile types. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Enable ambient authentication in regular sessions only.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enable ambient authentication in incognito and regular sessions.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_2", + "displayName": "Enable ambient authentication in guest and regular sessions.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_3", + "displayName": "Enable ambient authentication in regular, incognito and guest sessions.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_applicationlocalevalue", + "displayName": "Application locale", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_applicationlocalevalue_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_applicationlocalevalue_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_applicationlocalevalue_applicationlocalevalue", + "displayName": "Application locale (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowed", + "displayName": "Allow or deny audio capture", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowedurls", + "displayName": "URLs that will be granted access to audio capture devices without prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowedurls_audiocaptureallowedurlsdesc", + "displayName": "URLs that will be granted access to audio capture devices without prompt (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audioprocesshighpriorityenabled", + "displayName": "Allow the audio process to run with priority above normal on Windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audioprocesshighpriorityenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audioprocesshighpriorityenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiosandboxenabled", + "displayName": "Allow the audio sandbox to run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiosandboxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiosandboxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofilladdressenabled", + "displayName": "Enable AutoFill for addresses", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofilladdressenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofilladdressenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofillcreditcardenabled", + "displayName": "Enable AutoFill for credit cards", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofillcreditcardenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofillcreditcardenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autolaunchprotocolsfromorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autolaunchprotocolsfromorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autolaunchprotocolsfromorigins_autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenallowedforurls", + "displayName": "URLs where AutoOpenFileTypes can apply", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenallowedforurls_autoopenallowedforurlsdesc", + "displayName": "URLs where AutoOpenFileTypes can apply (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenfiletypes", + "displayName": "List of file types that should be automatically opened on download", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenfiletypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenfiletypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenfiletypes_autoopenfiletypesdesc", + "displayName": "List of file types that should be automatically opened on download (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowed", + "displayName": "Allow media autoplay", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowlist", + "displayName": "Allow media autoplay on a allowlist of URL patterns", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowlist_autoplayallowlistdesc", + "displayName": "Allow media autoplay on a allowlist of URL patterns (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_backgroundmodeenabled", + "displayName": "Continue running background apps when Google Chrome is closed", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_backgroundmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_backgroundmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_blockthirdpartycookies", + "displayName": "Block third party cookies", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_blockthirdpartycookies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_blockthirdpartycookies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_bookmarkbarenabled", + "displayName": "Enable Bookmark Bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_bookmarkbarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_bookmarkbarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browseraddpersonenabled", + "displayName": "Enable add person in user manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browseraddpersonenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browseraddpersonenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenabled", + "displayName": "Enable guest mode in browser", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenforced", + "displayName": "Enforce browser guest mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenforced_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenforced_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlabsenabled", + "displayName": "Browser experiments icon in toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlegacyextensionpointsblocked", + "displayName": "Block Browser Legacy Extension Points", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlegacyextensionpointsblocked_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlegacyextensionpointsblocked_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsernetworktimequeriesenabled", + "displayName": "Allow queries to a Google time service", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsernetworktimequeriesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsernetworktimequeriesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin", + "displayName": "Browser sign in settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_browsersignin", + "displayName": "Browser sign in settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_browsersignin_0", + "displayName": "Disable browser sign-in", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_browsersignin_1", + "displayName": "Enable browser sign-in", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_browsersignin_2", + "displayName": "Force users to sign-in to use the browser", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserthemecolor", + "displayName": "Configure the color of the browser's theme", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserthemecolor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserthemecolor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserthemecolor_browserthemecolor", + "displayName": "Configure the color of the browser's theme (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsingdatalifetime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsingdatalifetime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsingdatalifetime_browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_builtindnsclientenabled", + "displayName": "Use built-in DNS client", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_builtindnsclientenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_builtindnsclientenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cecpq2enabled", + "displayName": "CECPQ2 post-quantum key-agreement enabled for TLS", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cecpq2enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cecpq2enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforcas", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforcas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforcas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforcas_certificatetransparencyenforcementdisabledforcasdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforlegacycas", + "displayName": "Disable Certificate Transparency enforcement for a list of Legacy Certificate Authorities", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforlegacycas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforlegacycas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforlegacycas_certificatetransparencyenforcementdisabledforlegacycasdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of Legacy Certificate Authorities (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforurls", + "displayName": "Disable Certificate Transparency enforcement for a list of URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforurls_certificatetransparencyenforcementdisabledforurlsdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupenabled", + "displayName": "Enable Chrome Cleanup on Windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupreportingenabled", + "displayName": "Control how Chrome Cleanup reports data to Google", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations", + "displayName": "Determine the availability of variations", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_chromevariations", + "displayName": "Determine the availability of variations (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_chromevariations_0", + "displayName": "Enable all variations", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_chromevariations_1", + "displayName": "Enable variations concerning critical fixes only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_chromevariations_2", + "displayName": "Disable all variations", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clearbrowsingdataonexitlist", + "displayName": "Clear Browsing Data on Exit", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clearbrowsingdataonexitlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clearbrowsingdataonexitlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clearbrowsingdataonexitlist_clearbrowsingdataonexitlistdesc", + "displayName": "Clear Browsing Data on Exit (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clicktocallenabled", + "displayName": "Enable the Click to Call Feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clicktocallenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clicktocallenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmentmandatory", + "displayName": "Enable mandatory cloud management enrollment", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmentmandatory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmentmandatory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmenttoken", + "displayName": "The enrollment token of cloud policy on desktop", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmenttoken_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmenttoken_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmenttoken_cloudmanagementenrollmenttoken", + "displayName": "The enrollment token of cloud policy on desktop (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudpolicyoverridesplatformpolicy", + "displayName": "Google Chrome cloud policy overrides Platform policy.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudpolicyoverridesplatformpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudpolicyoverridesplatformpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicymerge", + "displayName": "Enables merging of user cloud policies into machine-level policies", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicymerge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicymerge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicyoverridescloudmachinepolicy", + "displayName": "Allow user cloud policies to override Chrome Browser Cloud Management policies.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicyoverridescloudmachinepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicyoverridescloudmachinepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_commandlineflagsecuritywarningsenabled", + "displayName": "Enable security warnings for command-line flags", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_commandlineflagsecuritywarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_commandlineflagsecuritywarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_componentupdatesenabled", + "displayName": "Enable component updates in Google Chrome", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_componentupdatesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_componentupdatesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_corsnonwildcardrequestheaderssupport", + "displayName": "CORS non-wildcard request headers support", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_corsnonwildcardrequestheaderssupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_corsnonwildcardrequestheaderssupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_crossoriginwebassemblymodulesharingenabled", + "displayName": "Specifies whether WebAssembly modules can be sent cross-origin", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_crossoriginwebassemblymodulesharingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_crossoriginwebassemblymodulesharingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultbrowsersettingenabled", + "displayName": "Set Google Chrome as Default Browser", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultbrowsersettingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultbrowsersettingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultsearchprovidercontextmenuaccessallowed", + "displayName": "Allow default search provider context menu search access", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultsearchprovidercontextmenuaccessallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultsearchprovidercontextmenuaccessallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_desktopsharinghubenabled", + "displayName": "Enable desktop sharing in the omnibox and 3-dot menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_desktopsharinghubenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_desktopsharinghubenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability", + "displayName": "Control where Developer Tools can be used", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_developertoolsavailability", + "displayName": "Control where Developer Tools can be used (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_developertoolsavailability_0", + "displayName": "Disallow usage of the Developer Tools on extensions installed by enterprise policy, allow usage of the Developer Tools in other contexts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_developertoolsavailability_1", + "displayName": "Allow usage of the Developer Tools", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_developertoolsavailability_2", + "displayName": "Disallow usage of the Developer Tools", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disable3dapis", + "displayName": "Disable support for 3D graphics APIs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disable3dapis_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disable3dapis_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablesafebrowsingproceedanyway", + "displayName": "Disable proceeding from the Safe Browsing warning page", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablesafebrowsingproceedanyway_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablesafebrowsingproceedanyway_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablescreenshots", + "displayName": "Disable taking screenshots", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablescreenshots_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablescreenshots_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachedir", + "displayName": "Set disk cache directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachedir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachedir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachedir_diskcachedir", + "displayName": "Set disk cache directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachesize", + "displayName": "Set disk cache size in bytes", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachesize_diskcachesize", + "displayName": "Set disk cache size: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_displaycapturepermissionspolicyenabled", + "displayName": "Specifies whether the display-capture permissions-policy is checked or skipped.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_displaycapturepermissionspolicyenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_displaycapturepermissionspolicyenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsinterceptionchecksenabled", + "displayName": "DNS interception checks enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsinterceptionchecksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsinterceptionchecksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode", + "displayName": "Controls the mode of DNS-over-HTTPS", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_dnsoverhttpsmode", + "displayName": "Controls the mode of DNS-over-HTTPS (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_dnsoverhttpsmode_off", + "displayName": "Disable DNS-over-HTTPS", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_dnsoverhttpsmode_automatic", + "displayName": "Enable DNS-over-HTTPS with insecure fallback", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_dnsoverhttpsmode_secure", + "displayName": "Enable DNS-over-HTTPS without insecure fallback", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpstemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpstemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpstemplates_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloaddirectory", + "displayName": "Set download directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloaddirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloaddirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloaddirectory_downloaddirectory", + "displayName": "Set download directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions", + "displayName": "Allow download restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions", + "displayName": "Download restrictions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_0", + "displayName": "No special restrictions. Default.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_1", + "displayName": "Block malicious downloads and dangerous file types.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_2", + "displayName": "Block malicious downloads, uncommon or unwanted downloads and dangerous file types.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_3", + "displayName": "Block all downloads.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_4", + "displayName": "Block malicious downloads. Recommended.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_editbookmarksenabled", + "displayName": "Enable or disable bookmark editing", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_editbookmarksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_editbookmarksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableexperimentalpolicies", + "displayName": "Enables experimental policies", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableexperimentalpolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableexperimentalpolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableexperimentalpolicies_enableexperimentalpoliciesdesc", + "displayName": "Enables experimental policies (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableonlinerevocationchecks", + "displayName": "Enable online OCSP/CRL checks", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableonlinerevocationchecks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableonlinerevocationchecks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enterprisehardwareplatformapienabled", + "displayName": "Enables managed extensions to use the Enterprise Hardware Platform API", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enterprisehardwareplatformapienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enterprisehardwareplatformapienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_explicitlyallowednetworkports", + "displayName": "Explicitly allowed network ports", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_explicitlyallowednetworkports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_explicitlyallowednetworkports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_explicitlyallowednetworkports_explicitlyallowednetworkportsdesc", + "displayName": "Explicitly allowed network ports (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_externalprotocoldialogshowalwaysopencheckbox", + "displayName": "Show an \"Always open\" checkbox in external protocol dialog.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_externalprotocoldialogshowalwaysopencheckbox_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_externalprotocoldialogshowalwaysopencheckbox_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on Shutdown", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fetchkeepalivedurationsecondsonshutdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fetchkeepalivedurationsecondsonshutdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fetchkeepalivedurationsecondsonshutdown_fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on Shutdown: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcedlanguages", + "displayName": "Configure the content and order of preferred languages", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcedlanguages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcedlanguages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcedlanguages_forcedlanguagesdesc", + "displayName": "Configure the content and order of preferred languages (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceephemeralprofiles", + "displayName": "Ephemeral profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceephemeralprofiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceephemeralprofiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcegooglesafesearch", + "displayName": "Force Google SafeSearch", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcegooglesafesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcegooglesafesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_forceyoutuberestrict_0", + "displayName": "Do not enforce Restricted Mode on YouTube", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_forceyoutuberestrict_1", + "displayName": "Enforce at least Moderate Restricted Mode on YouTube", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_forceyoutuberestrict_2", + "displayName": "Enforce Strict Restricted Mode for YouTube", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fullscreenallowed", + "displayName": "Allow fullscreen mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fullscreenallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fullscreenallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_globallyscopehttpauthcacheenabled", + "displayName": "Enable globally scoped HTTP auth cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_globallyscopehttpauthcacheenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_globallyscopehttpauthcacheenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hardwareaccelerationmodeenabled", + "displayName": "Use hardware acceleration when available", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hardwareaccelerationmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hardwareaccelerationmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode", + "displayName": "Control use of the Headless Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_headlessmode", + "displayName": "Control use of the Headless Mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_headlessmode_1", + "displayName": "Allow use of the Headless Mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_headlessmode_2", + "displayName": "Do not allow use of the Headless Mode", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hidewebstoreicon", + "displayName": "Hide the web store from the New Tab Page and app launcher", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hidewebstoreicon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hidewebstoreicon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_historyclustersvisible", + "displayName": "Show history clusters on the Chrome history page", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_historyclustersvisible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_historyclustersvisible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hstspolicybypasslist", + "displayName": "List of names that will bypass the HSTS policy check", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hstspolicybypasslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hstspolicybypasslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hstspolicybypasslist_hstspolicybypasslistdesc", + "displayName": "List of names that will bypass the HSTS policy check (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode", + "displayName": "Allow HTTPS-Only Mode to be enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_httpsonlymode", + "displayName": "Allow HTTPS-Only Mode to be enabled (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_httpsonlymode_allowed", + "displayName": "Allow users to enable HTTPS-Only Mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_httpsonlymode_disallowed", + "displayName": "Do not allow users to enable HTTPS-Only Mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_httpsonlymode_force_enabled", + "displayName": "Force enable HTTPS-Only Mode (not supported yet)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importautofillformdata", + "displayName": "Import autofill form data from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importautofillformdata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importautofillformdata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importbookmarks", + "displayName": "Import bookmarks from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importbookmarks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importbookmarks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhistory", + "displayName": "Import browsing history from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhomepage", + "displayName": "Import of homepage from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsavedpasswords", + "displayName": "Import saved passwords from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsavedpasswords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsavedpasswords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsearchengine", + "displayName": "Import search engines from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsearchengine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsearchengine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability", + "displayName": "Incognito mode availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_incognitomodeavailability", + "displayName": "Incognito mode availability (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_incognitomodeavailability_0", + "displayName": "Incognito mode available", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_incognitomodeavailability_1", + "displayName": "Incognito mode disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_incognitomodeavailability_2", + "displayName": "Incognito mode forced", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureformswarningsenabled", + "displayName": "Enable warnings for insecure forms", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureformswarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureformswarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowed", + "displayName": "Specifies whether to allow insecure websites to make requests to more-private network endpoints", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowedforurls", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from insecure contexts.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowedforurls_insecureprivatenetworkrequestsallowedforurlsdesc", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from insecure contexts. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intensivewakeupthrottlingenabled", + "displayName": "Control the IntensiveWakeUpThrottling feature.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intensivewakeupthrottlingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intensivewakeupthrottlingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior_0", + "displayName": "Use default browser behavior.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior_1", + "displayName": "Disable DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior_2", + "displayName": "Disable DNS interception checks; allow did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior_3", + "displayName": "Allow DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_isolateorigins", + "displayName": "Enable Site Isolation for specified origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_isolateorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_isolateorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_isolateorigins_isolateorigins", + "displayName": "Enable Site Isolation for specified origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lensregionsearchenabled", + "displayName": "Allow Google Lens region search menu item to be shown in context menu if supported.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lensregionsearchenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lensregionsearchenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lockiconinaddressbarenabled", + "displayName": "Enable lock icon in the omnibox for secure connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lockiconinaddressbarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lockiconinaddressbarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lookalikewarningallowlistdomains", + "displayName": "Suppress lookalike domain warnings on domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lookalikewarningallowlistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lookalikewarningallowlistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lookalikewarningallowlistdomains_lookalikewarningallowlistdomainsdesc", + "displayName": "Suppress lookalike domain warnings on domains (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction", + "displayName": "Add restrictions on managed accounts", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_managedaccountssigninrestriction", + "displayName": "Add restrictions on managed accounts (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_managedaccountssigninrestriction_primary_account", + "displayName": "A Managed account must be a primary account", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_managedaccountssigninrestriction_primary_account_strict", + "displayName": "A Managed account must be a primary account and have no secondary accounts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_managedaccountssigninrestriction_none", + "displayName": "No restrictions on managed accounts", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedbookmarks", + "displayName": "Managed Bookmarks", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedbookmarks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedbookmarks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedbookmarks_managedbookmarks", + "displayName": "Managed Bookmarks (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedconfigurationperorigin", + "displayName": "Sets managed configuration values to websites to specific origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedconfigurationperorigin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedconfigurationperorigin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedconfigurationperorigin_managedconfigurationperorigin", + "displayName": "Sets managed configuration values to websites to specific origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxconnectionsperproxy", + "displayName": "Maximal number of concurrent connections to the proxy server", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxconnectionsperproxy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxconnectionsperproxy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxconnectionsperproxy_maxconnectionsperproxy", + "displayName": "Maximal number of concurrent connections to the proxy server: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxinvalidationfetchdelay", + "displayName": "Maximum fetch delay after a policy invalidation", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxinvalidationfetchdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxinvalidationfetchdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxinvalidationfetchdelay_maxinvalidationfetchdelay", + "displayName": "Maximum fetch delay after a policy invalidation: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediarecommendationsenabled", + "displayName": "Enable Media Recommendations", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediarecommendationsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediarecommendationsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediaroutercastallowallips", + "displayName": "Allow Google Cast to connect to Cast devices on all IP addresses.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediaroutercastallowallips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediaroutercastallowallips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_metricsreportingenabled", + "displayName": "Enable reporting of usage and crash-related data", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_metricsreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_metricsreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions", + "displayName": "Enable network prediction", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_networkpredictionoptions", + "displayName": "Enable network prediction (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular.\r\n(Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_networkpredictionoptions_2", + "displayName": "Do not predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkservicesandboxenabled", + "displayName": "Enable the network service sandbox", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkservicesandboxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkservicesandboxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcardsvisible", + "displayName": "Show cards on the New Tab Page", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcardsvisible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcardsvisible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcustombackgroundenabled", + "displayName": "Allow users to customize the background on the New Tab page", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcustombackgroundenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcustombackgroundenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_overridesecurityrestrictionsoninsecureorigin", + "displayName": "Origins or hostname patterns for which restrictions on\r\ninsecure origins should not apply", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_overridesecurityrestrictionsoninsecureorigin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_overridesecurityrestrictionsoninsecureorigin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_overridesecurityrestrictionsoninsecureorigin_overridesecurityrestrictionsoninsecureorigindesc", + "displayName": "Origins or hostname patterns for which restrictions on\r\ninsecure origins should not apply (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_paymentmethodqueryenabled", + "displayName": "Allow websites to query for available payment methods.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_paymentmethodqueryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_paymentmethodqueryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyatomicgroupsenabled", + "displayName": "Enables the concept of policy atomic groups", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyatomicgroupsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyatomicgroupsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policydictionarymultiplesourcemergelist", + "displayName": "Allow merging dictionary policies from different sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policydictionarymultiplesourcemergelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policydictionarymultiplesourcemergelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policydictionarymultiplesourcemergelist_policydictionarymultiplesourcemergelistdesc", + "displayName": "Allow merging dictionary policies from different sources (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policylistmultiplesourcemergelist", + "displayName": "Allow merging list policies from different sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policylistmultiplesourcemergelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policylistmultiplesourcemergelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policylistmultiplesourcemergelist_policylistmultiplesourcemergelistdesc", + "displayName": "Allow merging list policies from different sources (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyrefreshrate", + "displayName": "Refresh rate for user policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyrefreshrate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyrefreshrate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyrefreshrate_policyrefreshrate", + "displayName": "Refresh rate for user policy: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability", + "displayName": "Profile picker availability on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_profilepickeronstartupavailability", + "displayName": "Profile picker availability on startup (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_profilepickeronstartupavailability_0", + "displayName": "Profile picker available at startup", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_profilepickeronstartupavailability_1", + "displayName": "Profile picker disabled at startup", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_profilepickeronstartupavailability_2", + "displayName": "Profile picker forced at startup", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promotionaltabsenabled", + "displayName": "Enable showing full-tab promotional content", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promotionaltabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promotionaltabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promptfordownloadlocation", + "displayName": "Ask where to save each file before downloading", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promptfordownloadlocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promptfordownloadlocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_proxysettings", + "displayName": "Proxy settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_proxysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_proxysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_proxysettings_proxysettings", + "displayName": "Proxy settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_quicallowed", + "displayName": "Allow QUIC protocol", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_quicallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_quicallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alternateerrorpagesenabled_recommended", + "displayName": "Enable alternate error pages", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alternateerrorpagesenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alternateerrorpagesenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alwaysopenpdfexternally_recommended", + "displayName": "Always Open PDF files externally", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alwaysopenpdfexternally_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alwaysopenpdfexternally_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_applicationlocalevalue_recommended", + "displayName": "Application locale", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_applicationlocalevalue_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_applicationlocalevalue_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_applicationlocalevalue_recommended_applicationlocalevalue", + "displayName": "Application locale (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofilladdressenabled_recommended", + "displayName": "Enable AutoFill for addresses", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofilladdressenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofilladdressenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofillcreditcardenabled_recommended", + "displayName": "Enable AutoFill for credit cards", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofillcreditcardenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofillcreditcardenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_backgroundmodeenabled_recommended", + "displayName": "Continue running background apps when Google Chrome is closed", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_backgroundmodeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_backgroundmodeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_blockthirdpartycookies_recommended", + "displayName": "Block third party cookies", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_blockthirdpartycookies_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_blockthirdpartycookies_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_bookmarkbarenabled_recommended", + "displayName": "Enable Bookmark Bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_bookmarkbarenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_bookmarkbarenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultdownloaddirectory_recommended", + "displayName": "Set default download directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultdownloaddirectory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultdownloaddirectory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultdownloaddirectory_recommended_defaultdownloaddirectory", + "displayName": "Set default download directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultsearchprovidercontextmenuaccessallowed_recommended", + "displayName": "Allow default search provider context menu search access", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultsearchprovidercontextmenuaccessallowed_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultsearchprovidercontextmenuaccessallowed_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloaddirectory_recommended", + "displayName": "Set download directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloaddirectory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloaddirectory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloaddirectory_recommended_downloaddirectory", + "displayName": "Set download directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended", + "displayName": "Allow download restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions", + "displayName": "Download restrictions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_0", + "displayName": "No special restrictions. Default.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_1", + "displayName": "Block malicious downloads and dangerous file types.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_2", + "displayName": "Block malicious downloads, uncommon or unwanted downloads and dangerous file types.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_3", + "displayName": "Block all downloads.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_4", + "displayName": "Block malicious downloads. Recommended.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importautofillformdata_recommended", + "displayName": "Import autofill form data from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importautofillformdata_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importautofillformdata_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importbookmarks_recommended", + "displayName": "Import bookmarks from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importbookmarks_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importbookmarks_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importhistory_recommended", + "displayName": "Import browsing history from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importhistory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importhistory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsavedpasswords_recommended", + "displayName": "Import saved passwords from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsavedpasswords_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsavedpasswords_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsearchengine_recommended", + "displayName": "Import search engines from default browser on first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsearchengine_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsearchengine_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_metricsreportingenabled_recommended", + "displayName": "Enable reporting of usage and crash-related data", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_metricsreportingenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_metricsreportingenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended", + "displayName": "Enable network prediction", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_networkpredictionoptions", + "displayName": "Enable network prediction (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular.\r\n(Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_networkpredictionoptions_2", + "displayName": "Do not predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_safebrowsingfortrustedsourcesenabled_recommended", + "displayName": "Enable Safe Browsing for trusted sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_safebrowsingfortrustedsourcesenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_safebrowsingfortrustedsourcesenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_searchsuggestenabled_recommended", + "displayName": "Enable search suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_searchsuggestenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_searchsuggestenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_showfullurlsinaddressbar_recommended", + "displayName": "Show Full URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_showfullurlsinaddressbar_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_showfullurlsinaddressbar_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_spellcheckserviceenabled_recommended", + "displayName": "Enable or disable spell checking web service", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_spellcheckserviceenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_spellcheckserviceenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_translateenabled_recommended", + "displayName": "Enable Translate", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_translateenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_translateenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended", + "displayName": "Register protocol handlers", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_registeredprotocolhandlers", + "displayName": "Register protocol handlers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovideralternateurls_recommended", + "displayName": "List of alternate URLs for the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovideralternateurls_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovideralternateurls_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovideralternateurls_recommended_defaultsearchprovideralternateurlsdesc", + "displayName": "List of alternate URLs for the default search provider (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended", + "displayName": "Enable the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended", + "displayName": "Default search provider encodings", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_defaultsearchproviderencodingsdesc", + "displayName": "Default search provider encodings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidericonurl_recommended", + "displayName": "Default search provider icon", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidericonurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidericonurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidericonurl_recommended_defaultsearchprovidericonurl", + "displayName": "Default search provider icon (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended", + "displayName": "Parameter providing search-by-image feature for the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_defaultsearchproviderimageurl", + "displayName": "Parameter providing search-by-image feature for the default search provider (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended", + "displayName": "Parameters for image URL which uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for image URL which uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended", + "displayName": "Default search provider keyword", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended", + "displayName": "Default search provider name", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_defaultsearchprovidername", + "displayName": "Default search provider name (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidernewtaburl_recommended", + "displayName": "Default search provider new tab page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidernewtaburl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidernewtaburl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidernewtaburl_recommended_defaultsearchprovidernewtaburl", + "displayName": "Default search provider new tab page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended", + "displayName": "Default search provider search URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurlpostparams_recommended", + "displayName": "Parameters for search URL which uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurlpostparams_recommended_defaultsearchprovidersearchurlpostparams", + "displayName": "Parameters for search URL which uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended", + "displayName": "Default search provider suggest URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_defaultsearchprovidersuggesturl", + "displayName": "Default search provider suggest URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturlpostparams_recommended", + "displayName": "Parameters for suggest URL which uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturlpostparams_recommended_defaultsearchprovidersuggesturlpostparams", + "displayName": "Parameters for suggest URL which uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_autofillenabled_recommended", + "displayName": "Enable AutoFill", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_autofillenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_autofillenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_safebrowsingenabled_recommended", + "displayName": "Enable Safe Browsing", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_safebrowsingenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_safebrowsingenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordleakdetectionenabled_recommended", + "displayName": "Enable leak detection for entered credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordleakdetectionenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordleakdetectionenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended", + "displayName": "Enable saving passwords to the password manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printheaderfooter_recommended", + "displayName": "Print Headers and Footers", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printheaderfooter_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printheaderfooter_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpdfasimagedefault_recommended", + "displayName": "Print PDF as Image Default", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpdfasimagedefault_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpdfasimagedefault_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended", + "displayName": "Use System Default Printer as Default", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_clearsitedataonexit_recommended", + "displayName": "Clear site data on browser shutdown (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_clearsitedataonexit_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_clearsitedataonexit_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturl_recommended", + "displayName": "Default search provider instant URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturl_recommended_defaultsearchproviderinstanturl", + "displayName": "Default search provider instant URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturlpostparams_recommended", + "displayName": "Parameters for instant URL which uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturlpostparams_recommended_defaultsearchproviderinstanturlpostparams", + "displayName": "Parameters for instant URL which uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchprovidersearchtermsreplacementkey_recommended", + "displayName": "Parameter controlling search term placement for the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchprovidersearchtermsreplacementkey_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchprovidersearchtermsreplacementkey_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchprovidersearchtermsreplacementkey_recommended_defaultsearchprovidersearchtermsreplacementkey", + "displayName": "Parameter controlling search term placement for the default search provider (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_dnsprefetchingenabled_recommended", + "displayName": "Enable network prediction", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_dnsprefetchingenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_dnsprefetchingenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_instantenabled_recommended", + "displayName": "Enable Instant", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_instantenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_instantenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended", + "displayName": "Safe Browsing Protection Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_safebrowsingprotectionlevel", + "displayName": "Safe Browsing Protection Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_safebrowsingprotectionlevel_0", + "displayName": "Safe Browsing is never active.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_safebrowsingprotectionlevel_1", + "displayName": "Safe Browsing is active in the standard mode.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_safebrowsingprotectionlevel_2", + "displayName": "Safe Browsing is active in the enhanced mode. This mode provides better security, but requires sharing more browsing information with Google.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepageisnewtabpage_recommended", + "displayName": "Use New Tab Page as homepage", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepageisnewtabpage_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepageisnewtabpage_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepagelocation_recommended", + "displayName": "Configure the home page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepagelocation_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepagelocation_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepagelocation_recommended_homepagelocation", + "displayName": "Home page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended", + "displayName": "Action on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup", + "displayName": "Action on startup (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_5", + "displayName": "Open New Tab Page", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartupurls_recommended", + "displayName": "URLs to open on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartupurls_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartupurls_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartupurls_recommended_restoreonstartupurlsdesc", + "displayName": "URLs to open on startup (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_showhomebutton_recommended", + "displayName": "Show Home button on toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_showhomebutton_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_showhomebutton_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification", + "displayName": "Notify a user that a browser relaunch or device restart is recommended or required", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_relaunchnotification", + "displayName": "Notify a user that a browser relaunch or device restart is recommended or required (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_relaunchnotification_1", + "displayName": "Show a recurring prompt to the user indicating that a relaunch is recommended", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_relaunchnotification_2", + "displayName": "Show a recurring prompt to the user indicating that a relaunch is required", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotificationperiod", + "displayName": "Set the time period for update notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotificationperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotificationperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotificationperiod_relaunchnotificationperiod", + "displayName": "Time period (milliseconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchwindow", + "displayName": "Set the time interval for relaunch", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchwindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchwindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchwindow_relaunchwindow", + "displayName": "Relaunch time window (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_remotedebuggingallowed", + "displayName": "Allow remote debugging", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_remotedebuggingallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_remotedebuggingallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_renderercodeintegrityenabled", + "displayName": "Enable Renderer Code Integrity", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_renderercodeintegrityenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_renderercodeintegrityenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_requireonlinerevocationchecksforlocalanchors", + "displayName": "Require online OCSP/CRL checks for local trust anchors", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_requireonlinerevocationchecksforlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_requireonlinerevocationchecksforlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_restrictsignintopattern", + "displayName": "Restrict which Google accounts are allowed to be set as browser primary accounts in Google Chrome", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_restrictsignintopattern_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_restrictsignintopattern_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_restrictsignintopattern_restrictsignintopattern", + "displayName": "Restrict which Google accounts are allowed to be set as browser primary accounts in Google Chrome (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilelocation", + "displayName": "Set the roaming profile directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilelocation_roamingprofilelocation", + "displayName": "Set the roaming profile directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilesupportenabled", + "displayName": "Enable the creation of roaming copies for Google Chrome profile data", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilesupportenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilesupportenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safebrowsingfortrustedsourcesenabled", + "displayName": "Enable Safe Browsing for trusted sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safebrowsingfortrustedsourcesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safebrowsingfortrustedsourcesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior", + "displayName": "Control SafeSites adult content filtering.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_safesitesfilterbehavior", + "displayName": "Control SafeSites adult content filtering. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_safesitesfilterbehavior_0", + "displayName": "Do not filter sites for adult content", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_safesitesfilterbehavior_1", + "displayName": "Filter top level sites (but not embedded iframes) for adult content", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sandboxexternalprotocolblocked", + "displayName": "Allow Chrome to block navigations toward external protocols in sandboxed iframes", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sandboxexternalprotocolblocked_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sandboxexternalprotocolblocked_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_savingbrowserhistorydisabled", + "displayName": "Disable saving browser history", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_savingbrowserhistorydisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_savingbrowserhistorydisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_scrolltotextfragmentenabled", + "displayName": "Enable scrolling to text specified in URL fragments", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_scrolltotextfragmentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_scrolltotextfragmentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_searchsuggestenabled", + "displayName": "Enable search suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_searchsuggestenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_searchsuggestenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_securitykeypermitattestation", + "displayName": "URLs/domains automatically permitted direct Security Key attestation", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_securitykeypermitattestation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_securitykeypermitattestation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_securitykeypermitattestation_securitykeypermitattestationdesc", + "displayName": "URLs/domains automatically permitted direct Security Key attestation (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedarraybufferunrestrictedaccessallowed", + "displayName": "Specifies whether SharedArrayBuffers can be used in a non cross-origin-isolated context", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedarraybufferunrestrictedaccessallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedarraybufferunrestrictedaccessallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedclipboardenabled", + "displayName": "Enable the Shared Clipboard Feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedclipboardenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedclipboardenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showappsshortcutinbookmarkbar", + "displayName": "Show the apps shortcut in the bookmark bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showappsshortcutinbookmarkbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showappsshortcutinbookmarkbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showfullurlsinaddressbar", + "displayName": "Show Full URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showfullurlsinaddressbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showfullurlsinaddressbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signedhttpexchangeenabled", + "displayName": "Enable Signed HTTP Exchange (SXG) support", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signedhttpexchangeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signedhttpexchangeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signininterceptionenabled", + "displayName": "Enable signin interception", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signininterceptionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signininterceptionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_siteperprocess", + "displayName": "Require Site Isolation for every site", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_siteperprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_siteperprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckenabled", + "displayName": "Enable spellcheck", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguage", + "displayName": "Force enable spellcheck languages", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguage_spellchecklanguagedesc", + "displayName": "Force enable spellcheck languages (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguageblocklist", + "displayName": "Force disable spellcheck languages", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguageblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguageblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguageblocklist_spellchecklanguageblocklistdesc", + "displayName": "Force disable spellcheck languages (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckserviceenabled", + "displayName": "Enable or disable spell checking web service", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckserviceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckserviceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowed", + "displayName": "Allow proceeding from the SSL warning page", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowedfororigins", + "displayName": "Allow proceeding from the SSL warning page on specific origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowedfororigins_sslerroroverrideallowedfororiginsdesc", + "displayName": "Allow proceeding from the SSL warning page on specific origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin", + "displayName": "Minimum SSL version enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_sslversionmin", + "displayName": "Minimum SSL version enabled (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_sslversionmin_tls1", + "displayName": "TLS 1.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_sslversionmin_tls1.1", + "displayName": "TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_sslversionmin_tls1.2", + "displayName": "TLS 1.2", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressdifferentoriginsubframedialogs", + "displayName": "Suppress JavaScript Dialogs triggered from different origin subframes", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressdifferentoriginsubframedialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressdifferentoriginsubframedialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressunsupportedoswarning", + "displayName": "Suppress the unsupported OS warning", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressunsupportedoswarning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressunsupportedoswarning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_syncdisabled", + "displayName": "Disable synchronization of data with Google", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_syncdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_syncdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_synctypeslistdisabled", + "displayName": "List of types that should be excluded from synchronization", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_synctypeslistdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_synctypeslistdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_synctypeslistdisabled_synctypeslistdisableddesc", + "displayName": "List of types that should be excluded from synchronization (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_targetblankimpliesnoopener", + "displayName": "Do not set window.opener for links targeting _blank", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_targetblankimpliesnoopener_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_targetblankimpliesnoopener_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_taskmanagerendprocessenabled", + "displayName": "Enable ending processes in Task Manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_taskmanagerendprocessenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_taskmanagerendprocessenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_thirdpartyblockingenabled", + "displayName": "Enable third party software injection blocking", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_thirdpartyblockingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_thirdpartyblockingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_totalmemorylimitmb", + "displayName": "Set limit on megabytes of memory a single Chrome instance can use.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_totalmemorylimitmb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_totalmemorylimitmb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_totalmemorylimitmb_totalmemorylimitmb", + "displayName": "Set memory limit for Chrome instances: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_translateenabled", + "displayName": "Enable Translate", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_translateenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_translateenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_u2fsecuritykeyapienabled", + "displayName": "Allow using the deprecated U2F Security Key API", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_u2fsecuritykeyapienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_u2fsecuritykeyapienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlallowlist", + "displayName": "Allow access to a list of URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlallowlist_urlallowlistdesc", + "displayName": "Allow access to a list of URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlblocklist", + "displayName": "Block access to a list of URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlblocklist_urlblocklistdesc", + "displayName": "Block access to a list of URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlkeyedanonymizeddatacollectionenabled", + "displayName": "Enable URL-keyed anonymized data collection", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlkeyedanonymizeddatacollectionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlkeyedanonymizeddatacollectionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatadir", + "displayName": "Set user data directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatadir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatadir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatadir_userdatadir", + "displayName": "Set user data directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatasnapshotretentionlimit", + "displayName": "Limits the number of user data snapshots retained for use in case of emergency rollback.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatasnapshotretentionlimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatasnapshotretentionlimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatasnapshotretentionlimit_userdatasnapshotretentionlimit", + "displayName": "Limits the number of user data snapshots retained for use in case of emergency rollback.: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userfeedbackallowed", + "displayName": "Allow user feedback", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userfeedbackallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userfeedbackallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowed", + "displayName": "Allow or deny video capture", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowedurls", + "displayName": "URLs that will be granted access to video capture devices without prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowedurls_videocaptureallowedurlsdesc", + "displayName": "URLs that will be granted access to video capture devices without prompt (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webappinstallforcelist", + "displayName": "Configure list of force-installed Web Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webappinstallforcelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webappinstallforcelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webappinstallforcelist_webappinstallforcelist", + "displayName": "URLs for Web Apps to be silently installed. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcallowlegacytlsprotocols", + "displayName": "Allow legacy TLS/DTLS downgrade in WebRTC", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcallowlegacytlsprotocols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcallowlegacytlsprotocols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtceventlogcollectionallowed", + "displayName": "Allow collection of WebRTC event logs from Google services", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtceventlogcollectionallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtceventlogcollectionallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling", + "displayName": "The IP handling policy of WebRTC", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling", + "displayName": "The IP handling policy of WebRTC (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling_default", + "displayName": "WebRTC will use all available interfaces when searching for the best path.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling_default_public_and_private_interfaces", + "displayName": "WebRTC will only use the interface connecting to the public Internet, but may connect using private IP addresses.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling_default_public_interface_only", + "displayName": "WebRTC will only use the interface connecting to the public Internet, and will not connect using private IP addresses.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling_disable_non_proxied_udp", + "displayName": "WebRTC will use TCP on the public-facing interface, and will only use UDP if supported by a configured proxy.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtclocalipsallowedurls", + "displayName": "URLs for which local IPs are exposed in WebRTC ICE candidates", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtclocalipsallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtclocalipsallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtclocalipsallowedurls_webrtclocalipsallowedurlsdesc", + "displayName": "URLs for which local IPs are exposed in WebRTC ICE candidates (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcudpportrange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcudpportrange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcudpportrange_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_websqlinthirdpartycontextenabled", + "displayName": "Force WebSQL in third-party contexts to be re-enabled.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_websqlinthirdpartycontextenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_websqlinthirdpartycontextenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_windowocclusionenabled", + "displayName": "Enable Window Occlusion", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_windowocclusionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_windowocclusionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_wpadquickcheckenabled", + "displayName": "Enable WPAD optimization", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_wpadquickcheckenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_wpadquickcheckenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserparameters", + "displayName": "Command-line parameters for the alternative browser.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserparameters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserparameters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserparameters_alternativebrowserparametersdesc", + "displayName": "Command-line parameters for the alternative browser. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserpath", + "displayName": "Alternative browser to launch for configured websites.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserpath_alternativebrowserpath", + "displayName": "Alternative browser to launch for configured websites. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromeparameters", + "displayName": "Command-line parameters for switching from the alternative browser.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromeparameters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromeparameters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromeparameters_browserswitcherchromeparametersdesc", + "displayName": "Command-line parameters for switching from the alternative browser. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromepath", + "displayName": "Path to Chrome for switching from the alternative browser.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromepath_browserswitcherchromepath", + "displayName": "Path to Chrome for switching from the alternative browser. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherdelay", + "displayName": "Delay before launching alternative browser (milliseconds)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherdelay_browserswitcherdelay", + "displayName": "Delay before launching alternative browser (milliseconds): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherenabled", + "displayName": "Enable the Legacy Browser Support feature.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalgreylisturl", + "displayName": "URL of an XML file that contains URLs that should never trigger a browser switch.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalgreylisturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalgreylisturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalgreylisturl_browserswitcherexternalgreylisturl", + "displayName": "URL of an XML file that contains URLs that should never trigger a browser switch. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalsitelisturl", + "displayName": "URL of an XML file that contains URLs to load in an alternative browser.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalsitelisturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalsitelisturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalsitelisturl_browserswitcherexternalsitelisturl", + "displayName": "URL of an XML file that contains URLs to load in an alternative browser. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherkeeplastchrometab", + "displayName": "Keep last tab open in Chrome.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherkeeplastchrometab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherkeeplastchrometab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode", + "displayName": "Sitelist parsing mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_browserswitcherparsingmode", + "displayName": "Sitelist parsing mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_browserswitcherparsingmode_0", + "displayName": "Default behavior for LBS.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_browserswitcherparsingmode_1", + "displayName": "More compatible with Microsoft IE/Edge enterprise mode sitelists.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurlgreylist", + "displayName": "Websites that should never trigger a browser switch.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurlgreylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurlgreylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurlgreylist_browserswitcherurlgreylistdesc", + "displayName": "Websites that should never trigger a browser switch. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurllist", + "displayName": "Websites to open in alternative browser", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurllist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurllist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurllist_browserswitcherurllistdesc", + "displayName": "Websites to open in alternative browser (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcheruseiesitelist", + "displayName": "Use Internet Explorer's SiteList policy for Legacy Browser Support.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcheruseiesitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcheruseiesitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_autoselectcertificateforurls", + "displayName": "Automatically select client certificates for these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_autoselectcertificateforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_autoselectcertificateforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_autoselectcertificateforurls_autoselectcertificateforurlsdesc", + "displayName": "Automatically select client certificates for these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesallowedforurls", + "displayName": "Allow cookies on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesallowedforurls_cookiesallowedforurlsdesc", + "displayName": "Allow cookies on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesblockedforurls", + "displayName": "Block cookies on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesblockedforurls_cookiesblockedforurlsdesc", + "displayName": "Block cookies on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiessessiononlyforurls", + "displayName": "Limit cookies from matching URLs to the current session", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiessessiononlyforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiessessiononlyforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiessessiononlyforurls_cookiessessiononlyforurlsdesc", + "displayName": "Limit cookies from matching URLs to the current session (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting", + "displayName": "Default cookies setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_defaultcookiessetting", + "displayName": "Default cookies setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_defaultcookiessetting_1", + "displayName": "Allow all sites to set local data", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_defaultcookiessetting_2", + "displayName": "Do not allow any site to set local data", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_defaultcookiessetting_4", + "displayName": "Keep cookies for the duration of the session", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting_2", + "displayName": "Do not allow any site to request read access to files and directories via the File System API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting_3", + "displayName": "Allow sites to ask the user to grant read access to files and directories via the File System API", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting_2", + "displayName": "Do not allow any site to request write access to files and directories", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting_3", + "displayName": "Allow sites to ask the user to grant write access to files and directories", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting", + "displayName": "Default geolocation setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting", + "displayName": "Default geolocation setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_1", + "displayName": "Allow sites to track the users' physical location", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_2", + "displayName": "Do not allow any site to track the users' physical location", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_3", + "displayName": "Ask whenever a site wants to track the users' physical location", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting", + "displayName": "Default images setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_defaultimagessetting", + "displayName": "Default images setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_defaultimagessetting_1", + "displayName": "Allow all sites to show all images", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_defaultimagessetting_2", + "displayName": "Do not allow any site to show images", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting_2", + "displayName": "Do not allow any site to load mixed content", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting_3", + "displayName": "Allow users to add exceptions to allow mixed content", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting_1", + "displayName": "Allow any site to run JavaScript JIT", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting_2", + "displayName": "Do not allow any site to run JavaScript JIT", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting", + "displayName": "Default JavaScript setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting", + "displayName": "Default JavaScript setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting_1", + "displayName": "Allow all sites to run JavaScript", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting_2", + "displayName": "Do not allow any site to run JavaScript", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting", + "displayName": "Default notification setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_defaultnotificationssetting", + "displayName": "Default notification setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_defaultnotificationssetting_1", + "displayName": "Allow sites to show desktop notifications", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_defaultnotificationssetting_2", + "displayName": "Do not allow any site to show desktop notifications", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_defaultnotificationssetting_3", + "displayName": "Ask every time a site wants to show desktop notifications", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting", + "displayName": "Default popups setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_defaultpopupssetting", + "displayName": "Default popups setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_defaultpopupssetting_1", + "displayName": "Allow all sites to show pop-ups", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_defaultpopupssetting_2", + "displayName": "Do not allow any site to show popups", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting", + "displayName": "Default sensors setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_defaultsensorssetting", + "displayName": "Default sensors setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_defaultsensorssetting_1", + "displayName": "Allow sites to access sensors", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_defaultsensorssetting_2", + "displayName": "Do not allow any site to access sensors", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting", + "displayName": "Control use of the Serial API", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_defaultserialguardsetting", + "displayName": "Control use of the Serial API (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_defaultserialguardsetting_2", + "displayName": "Do not allow any site to request access to serial ports via the Serial API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_defaultserialguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a serial port", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting_2", + "displayName": "Do not allow any site to request access to Bluetooth devices via the Web Bluetooth API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a nearby Bluetooth device", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting_2", + "displayName": "Do not allow any site to request access to USB devices via the WebUSB API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a connected USB device", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadaskforurls", + "displayName": "Allow read access via the File System API on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadaskforurls_filesystemreadaskforurlsdesc", + "displayName": "Allow read access via the File System API on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadblockedforurls", + "displayName": "Block read access via the File System API on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadblockedforurls_filesystemreadblockedforurlsdesc", + "displayName": "Block read access via the File System API on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteaskforurls", + "displayName": "Allow write access to files and directories on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteaskforurls_filesystemwriteaskforurlsdesc", + "displayName": "Allow write access to files and directories on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteblockedforurls", + "displayName": "Block write access to files and directories on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteblockedforurls_filesystemwriteblockedforurlsdesc", + "displayName": "Block write access to files and directories on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesallowedforurls", + "displayName": "Allow images on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesallowedforurls_imagesallowedforurlsdesc", + "displayName": "Allow images on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesblockedforurls", + "displayName": "Block images on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesblockedforurls_imagesblockedforurlsdesc", + "displayName": "Block images on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentallowedforurls", + "displayName": "Allow insecure content on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentallowedforurls_insecurecontentallowedforurlsdesc", + "displayName": "Allow insecure content on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentblockedforurls", + "displayName": "Block insecure content on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentblockedforurls_insecurecontentblockedforurlsdesc", + "displayName": "Block insecure content on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptallowedforurls", + "displayName": "Allow JavaScript on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptallowedforurls_javascriptallowedforurlsdesc", + "displayName": "Allow JavaScript on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptblockedforurls", + "displayName": "Block JavaScript on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptblockedforurls_javascriptblockedforurlsdesc", + "displayName": "Block JavaScript on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitallowedforsites", + "displayName": "Allow JavaScript to use JIT on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitallowedforsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitallowedforsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitallowedforsites_javascriptjitallowedforsitesdesc", + "displayName": "Allow JavaScript to use JIT on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitblockedforsites", + "displayName": "Block JavaScript from using JIT on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitblockedforsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitblockedforsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitblockedforsites_javascriptjitblockedforsitesdesc", + "displayName": "Block JavaScript from using JIT on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist", + "displayName": "Revert to legacy SameSite behavior for cookies on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_legacysamesitecookiebehaviorenabledfordomainlistdesc", + "displayName": "Revert to legacy SameSite behavior for cookies on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsallowedforurls", + "displayName": "Allow notifications on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsallowedforurls_notificationsallowedforurlsdesc", + "displayName": "Allow notifications on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsblockedforurls", + "displayName": "Block notifications on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsblockedforurls_notificationsblockedforurlsdesc", + "displayName": "Block notifications on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsallowedforurls", + "displayName": "Allow popups on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsallowedforurls_popupsallowedforurlsdesc", + "displayName": "Allow popups on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsblockedforurls", + "displayName": "Block popups on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsblockedforurls_popupsblockedforurlsdesc", + "displayName": "Block popups on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsallowedforurls", + "displayName": "Allow access to sensors on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsallowedforurls_sensorsallowedforurlsdesc", + "displayName": "Allow access to sensors on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsblockedforurls", + "displayName": "Block access to sensors on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsblockedforurls_sensorsblockedforurlsdesc", + "displayName": "Block access to sensors on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowallportsforurls", + "displayName": "Automatically grant permission to sites to connect all serial ports.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowallportsforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowallportsforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowallportsforurls_serialallowallportsforurlsdesc", + "displayName": "Automatically grant permission to sites to connect all serial ports. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowusbdevicesforurls", + "displayName": "Automatically grant permission to sites to connect to USB serial devices.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowusbdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowusbdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowusbdevicesforurls_serialallowusbdevicesforurls", + "displayName": "Automatically grant permission to sites to connect to USB serial devices. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialaskforurls", + "displayName": "Allow the Serial API on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialaskforurls_serialaskforurlsdesc", + "displayName": "Allow the Serial API on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialblockedforurls", + "displayName": "Block the Serial API on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialblockedforurls_serialblockedforurlsdesc", + "displayName": "Block the Serial API on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusballowdevicesforurls", + "displayName": "Automatically grant permission to these sites to connect to USB devices with the given vendor and product IDs.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusballowdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusballowdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusballowdevicesforurls_webusballowdevicesforurls", + "displayName": "Automatically grant permission to these sites to connect to USB devices with the given vendor and product IDs. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbaskforurls", + "displayName": "Allow WebUSB on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbaskforurls_webusbaskforurlsdesc", + "displayName": "Allow WebUSB on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbblockedforurls", + "displayName": "Block WebUSB on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbblockedforurls_webusbblockedforurlsdesc", + "displayName": "Block WebUSB on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovideralternateurls", + "displayName": "List of alternate URLs for the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovideralternateurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovideralternateurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovideralternateurls_defaultsearchprovideralternateurlsdesc", + "displayName": "List of alternate URLs for the default search provider (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderenabled", + "displayName": "Enable the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderencodings", + "displayName": "Default search provider encodings", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderencodings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderencodings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderencodings_defaultsearchproviderencodingsdesc", + "displayName": "Default search provider encodings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidericonurl", + "displayName": "Default search provider icon", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidericonurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidericonurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidericonurl_defaultsearchprovidericonurl", + "displayName": "Default search provider icon (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurl", + "displayName": "Parameter providing search-by-image feature for the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurl_defaultsearchproviderimageurl", + "displayName": "Parameter providing search-by-image feature for the default search provider (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for image URL which uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurlpostparams_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for image URL which uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderkeyword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderkeyword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderkeyword_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidername", + "displayName": "Default search provider name", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidername_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidername_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidername_defaultsearchprovidername", + "displayName": "Default search provider name (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidernewtaburl", + "displayName": "Default search provider new tab page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidernewtaburl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidernewtaburl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidernewtaburl_defaultsearchprovidernewtaburl", + "displayName": "Default search provider new tab page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurl_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurlpostparams", + "displayName": "Parameters for search URL which uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurlpostparams_defaultsearchprovidersearchurlpostparams", + "displayName": "Parameters for search URL which uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturl", + "displayName": "Default search provider suggest URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturl_defaultsearchprovidersuggesturl", + "displayName": "Default search provider suggest URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturlpostparams", + "displayName": "Parameters for suggest URL which uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturlpostparams_defaultsearchprovidersuggesturlpostparams", + "displayName": "Parameters for suggest URL which uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authnegotiatedelegatewhitelist", + "displayName": "Kerberos delegation server whitelist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authnegotiatedelegatewhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authnegotiatedelegatewhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authnegotiatedelegatewhitelist_authnegotiatedelegatewhitelist", + "displayName": "Kerberos delegation server whitelist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authserverwhitelist", + "displayName": "Authentication server whitelist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authserverwhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authserverwhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authserverwhitelist_authserverwhitelist", + "displayName": "Authentication server whitelist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autofillenabled", + "displayName": "Enable AutoFill", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autofillenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autofillenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autoplaywhitelist", + "displayName": "Allow media autoplay on a whitelist of URL patterns", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autoplaywhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autoplaywhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autoplaywhitelist_autoplaywhitelistdesc", + "displayName": "Allow media autoplay on a whitelist of URL patterns (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting", + "displayName": "Default mediastream setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_defaultmediastreamsetting", + "displayName": "Default mediastream setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_defaultmediastreamsetting_2", + "displayName": "Do not allow any site to access the camera and microphone", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_defaultmediastreamsetting_3", + "displayName": "Ask every time a site wants to access the camera and/or microphone", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_developertoolsdisabled", + "displayName": "Disable Developer Tools", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_developertoolsdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_developertoolsdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_disabledschemes", + "displayName": "Disable URL protocol schemes", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_disabledschemes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_disabledschemes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_disabledschemes_disabledschemesdesc", + "displayName": "List of disabled protocol schemes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallblacklist", + "displayName": "Configure extension installation blacklist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallblacklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallblacklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallblacklist_extensioninstallblacklistdesc", + "displayName": "Extension IDs the user should be prevented from installing (or * for all) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallwhitelist", + "displayName": "Configure extension installation whitelist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallwhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallwhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallwhitelist_extensioninstallwhitelistdesc", + "displayName": "Extension IDs to exempt from the blacklist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcebrowsersignin", + "displayName": "Enable force sign in for Google Chrome", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcebrowsersignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcebrowsersignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcesafesearch", + "displayName": "Force SafeSearch", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcesafesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcesafesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forceyoutubesafetymode", + "displayName": "Force YouTube Safety Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forceyoutubesafetymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forceyoutubesafetymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_incognitoenabled", + "displayName": "Enable Incognito mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_incognitoenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_incognitoenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_javascriptenabled", + "displayName": "Enable JavaScript", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_javascriptenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_javascriptenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingblacklist", + "displayName": "Configure native messaging blocklist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingblacklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingblacklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingblacklist_nativemessagingblacklistdesc", + "displayName": "Names of the forbidden native messaging hosts (or * for all) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingwhitelist", + "displayName": "Configure native messaging whitelist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingwhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingwhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingwhitelist_nativemessagingwhitelistdesc", + "displayName": "Names of the native messaging hosts to exempt from the blocklist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativewindowocclusionenabled", + "displayName": "Enable Native Window Occlusion", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativewindowocclusionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativewindowocclusionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxybypasslist", + "displayName": "Proxy bypass rules", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxybypasslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxybypasslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxybypasslist_proxybypasslist", + "displayName": "Comma-separated list of proxy bypass rules (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode", + "displayName": "Choose how to specify proxy server settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode", + "displayName": "Choose how to specify proxy server settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_direct", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_auto_detect", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_pac_script", + "displayName": "Use a .pac proxy script", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_fixed_servers", + "displayName": "Use fixed proxy servers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_system", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxypacurl", + "displayName": "URL to a proxy .pac file", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxypacurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxypacurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxypacurl_proxypacurl", + "displayName": "URL to a proxy .pac file (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyserver", + "displayName": "Address or URL of proxy server", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyserver_proxyserver", + "displayName": "Address or URL of proxy server (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode", + "displayName": "Choose how to specify proxy server settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode", + "displayName": "Choose how to specify proxy server settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode_0", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode_1", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode_2", + "displayName": "Manually specify proxy settings", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode_3", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostclientdomain", + "displayName": "Configure the required domain name for remote access clients", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostclientdomain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostclientdomain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostclientdomain_remoteaccesshostclientdomain", + "displayName": "Configure the required domain name for remote access clients (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostdomain", + "displayName": "Configure the required domain name for remote access hosts", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostdomain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostdomain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostdomain_remoteaccesshostdomain", + "displayName": "Configure the required domain name for remote access hosts (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingenabled", + "displayName": "Enable Safe Browsing", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingwhitelistdomains", + "displayName": "Configure the list of domains on which Safe Browsing will not trigger warnings.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingwhitelistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingwhitelistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingwhitelistdomains_safebrowsingwhitelistdomainsdesc", + "displayName": "Configure the list of domains on which Safe Browsing will not trigger warnings. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_signinallowed", + "displayName": "Allow sign in to Google Chrome", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_signinallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_signinallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_spellchecklanguageblacklist", + "displayName": "Force disable spellcheck languages", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_spellchecklanguageblacklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_spellchecklanguageblacklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_spellchecklanguageblacklist_spellchecklanguageblacklistdesc", + "displayName": "Force disable spellcheck languages (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_strictermixedcontenttreatmentenabled", + "displayName": "Enable stricter treatment for mixed content", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_strictermixedcontenttreatmentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_strictermixedcontenttreatmentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_unsafelytreatinsecureoriginassecure", + "displayName": "Origins or hostname patterns for which restrictions on\r\ninsecure origins should not apply", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_unsafelytreatinsecureoriginassecure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_unsafelytreatinsecureoriginassecure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_unsafelytreatinsecureoriginassecure_unsafelytreatinsecureoriginassecuredesc", + "displayName": "Origins or hostname patterns for which restrictions on\r\ninsecure origins should not apply (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlblacklist", + "displayName": "Block access to a list of URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlblacklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlblacklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlblacklist_urlblacklistdesc", + "displayName": "Block access to a list of URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlwhitelist", + "displayName": "Allow access to a list of URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlwhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlwhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlwhitelist_urlwhitelistdesc", + "displayName": "Allow access to a list of URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_blockexternalextensions", + "displayName": "Blocks external extensions from being installed", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_blockexternalextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_blockexternalextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionallowedtypes", + "displayName": "Configure allowed app/extension types", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionallowedtypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionallowedtypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionallowedtypes_extensionallowedtypesdesc", + "displayName": "Types of extensions/apps that are allowed to be installed (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallallowlist", + "displayName": "Configure extension installation allow list", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallallowlist_extensioninstallallowlistdesc", + "displayName": "Extension IDs to exempt from the blocklist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallblocklist", + "displayName": "Configure extension installation blocklist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallblocklist_extensioninstallblocklistdesc", + "displayName": "Extension IDs the user should be prevented from installing (or * for all) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallforcelist", + "displayName": "Configure the list of force-installed apps and extensions", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallforcelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallforcelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallforcelist_extensioninstallforcelistdesc", + "displayName": "Extension/App IDs and update URLs to be silently installed (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallsources", + "displayName": "Configure extension, app, and user script install sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallsources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallsources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallsources_extensioninstallsourcesdesc", + "displayName": "URL patterns to allow extension, app, and user script installs from (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionsettings", + "displayName": "Extension management settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionsettings_extensionsettings", + "displayName": "Extension management settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_enablemediarouter", + "displayName": "Enable Google Cast", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_enablemediarouter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_enablemediarouter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_showcasticonintoolbar", + "displayName": "Show the Google Cast toolbar icon", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_showcasticonintoolbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_showcasticonintoolbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_allowcrossoriginauthprompt", + "displayName": "Cross-origin HTTP Authentication prompts", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_allowcrossoriginauthprompt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_allowcrossoriginauthprompt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authnegotiatedelegateallowlist", + "displayName": "Kerberos delegation server allowlist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authnegotiatedelegateallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authnegotiatedelegateallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authnegotiatedelegateallowlist_authnegotiatedelegateallowlist", + "displayName": "Kerberos delegation server allowlist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authschemes", + "displayName": "Supported authentication schemes", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authschemes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authschemes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authschemes_authschemes", + "displayName": "Supported authentication schemes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authserverallowlist", + "displayName": "Authentication server allowlist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authserverallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authserverallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authserverallowlist_authserverallowlist", + "displayName": "Authentication server allowlist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_basicauthoverhttpenabled", + "displayName": "Allow Basic authentication for HTTP", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_basicauthoverhttpenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_basicauthoverhttpenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_disableauthnegotiatecnamelookup", + "displayName": "Disable CNAME lookup when negotiating Kerberos authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_disableauthnegotiatecnamelookup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_disableauthnegotiatecnamelookup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_enableauthnegotiateport", + "displayName": "Include non-standard port in Kerberos SPN", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_enableauthnegotiateport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_enableauthnegotiateport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingallowlist", + "displayName": "Configure native messaging allowlist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingallowlist_nativemessagingallowlistdesc", + "displayName": "Names of the native messaging hosts to exempt from the blocklist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingblocklist", + "displayName": "Configure native messaging blocklist", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingblocklist_nativemessagingblocklistdesc", + "displayName": "Names of the forbidden native messaging hosts (or * for all) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessaginguserlevelhosts", + "displayName": "Allow user-level Native Messaging hosts (installed without admin permissions)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessaginguserlevelhosts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessaginguserlevelhosts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~other_promptonmultiplematchingcertificates", + "displayName": "Prompt for the client certificate when multiple certificates match.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~other_promptonmultiplematchingcertificates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~other_promptonmultiplematchingcertificates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordleakdetectionenabled", + "displayName": "Enable leak detection for entered credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordleakdetectionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordleakdetectionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordmanagerenabled", + "displayName": "Enable saving passwords to the password manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordmanagerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordmanagerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintproxyenabled", + "displayName": "Enable Google Cloud Print proxy", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintproxyenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintproxyenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintsubmitenabled", + "displayName": "Enable submission of documents to Google Cloud Print", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintsubmitenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintsubmitenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_defaultprinterselection", + "displayName": "Default printer selection rules", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_defaultprinterselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_defaultprinterselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_defaultprinterselection_defaultprinterselection", + "displayName": "Default printer selection rules (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_disableprintpreview", + "displayName": "Disable Print Preview", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_disableprintpreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_disableprintpreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printertypedenylist", + "displayName": "Disable printer types on the deny list", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printertypedenylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printertypedenylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printertypedenylist_printertypedenylistdesc", + "displayName": "Disable printer types on the deny list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printheaderfooter", + "displayName": "Print Headers and Footers", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printheaderfooter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printheaderfooter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_any", + "displayName": "Allow printing both with and without background graphics", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_enabled", + "displayName": "Allow printing only with background graphics", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_disabled", + "displayName": "Allow printing only without background graphics", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault_enabled", + "displayName": "Enable background graphics printing mode by default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault_disabled", + "displayName": "Disable background graphics printing mode by default", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingenabled", + "displayName": "Enable printing", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingpapersizedefault", + "displayName": "Default printing page size", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingpapersizedefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingpapersizedefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingpapersizedefault_printingpapersizedefault", + "displayName": "Default printing page size (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpdfasimageavailability", + "displayName": "Print PDF as Image Available", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpdfasimageavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpdfasimageavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode", + "displayName": "Print PostScript Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_printpostscriptmode", + "displayName": "Print PostScript Mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_printpostscriptmode_0", + "displayName": "Default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_printpostscriptmode_1", + "displayName": "Type42", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpreviewusesystemdefaultprinter", + "displayName": "Use System Default Printer as Default", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpreviewusesystemdefaultprinter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpreviewusesystemdefaultprinter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode", + "displayName": "Print Rasterization Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_printrasterizationmode", + "displayName": "Print Rasterization Mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_printrasterizationmode_0", + "displayName": "Full", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_printrasterizationmode_1", + "displayName": "Fast", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizepdfdpi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizepdfdpi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizepdfdpi_printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowclientpairing", + "displayName": "Enable or disable PIN-less authentication for remote access hosts", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowclientpairing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowclientpairing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowfiletransfer", + "displayName": "Allow remote access users to transfer files to/from the host", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowfiletransfer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowfiletransfer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowrelayedconnection", + "displayName": "Enable the use of relay servers by the remote access host", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowrelayedconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowrelayedconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremoteaccessconnections", + "displayName": "Allow remote access connections to this machine", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremoteaccessconnections_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremoteaccessconnections_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremotesupportconnections", + "displayName": "Allow remote support connections to this machine", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremotesupportconnections_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremotesupportconnections_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowuiaccessforremoteassistance", + "displayName": "Allow remote users to interact with elevated windows in remote assistance sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowuiaccessforremoteassistance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowuiaccessforremoteassistance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclientdomainlist", + "displayName": "Configure the required domain names for remote access clients", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclientdomainlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclientdomainlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclientdomainlist_remoteaccesshostclientdomainlistdesc", + "displayName": "Configure the required domain names for remote access clients (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclipboardsizebytes", + "displayName": "The maximum size, in bytes, that can be transferred between client and host via clipboard synchronization", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclipboardsizebytes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclipboardsizebytes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclipboardsizebytes_remoteaccesshostclipboardsizebytes", + "displayName": "The maximum size, in bytes, that can be transferred between client and host via clipboard synchronization: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostdomainlist", + "displayName": "Configure the required domain names for remote access hosts", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostdomainlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostdomainlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostdomainlist_remoteaccesshostdomainlistdesc", + "displayName": "Configure the required domain names for remote access hosts (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostfirewalltraversal", + "displayName": "Enable firewall traversal from remote access host", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostfirewalltraversal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostfirewalltraversal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostmaximumsessiondurationminutes", + "displayName": "Maximum session duration allowed for remote access connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostmaximumsessiondurationminutes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostmaximumsessiondurationminutes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostmaximumsessiondurationminutes_remoteaccesshostmaximumsessiondurationminutes", + "displayName": "Maximum session duration allowed for remote access connections: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostrequirecurtain", + "displayName": "Enable curtaining of remote access hosts", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostrequirecurtain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostrequirecurtain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostudpportrange", + "displayName": "Restrict the UDP port range used by the remote access host", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostudpportrange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostudpportrange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostudpportrange_remoteaccesshostudpportrange", + "displayName": "Restrict the UDP port range used by the remote access host (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_additionallaunchparameters", + "displayName": "Additional command line parameters for Google Chrome", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_additionallaunchparameters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_additionallaunchparameters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_additionallaunchparameters_additionallaunchparameters", + "displayName": "Additional command line parameters for Google Chrome (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_advancedprotectiondeepscanningenabled", + "displayName": "Enable sending downloads to Google for deep scanning for users enrolled in the Advanced Protection program", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_advancedprotectiondeepscanningenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_advancedprotectiondeepscanningenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowoutdatedplugins", + "displayName": "Allow running plugins that are outdated", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowoutdatedplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowoutdatedplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowpopupsduringpageunload", + "displayName": "Allows a page to show popups during its unloading", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowpopupsduringpageunload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowpopupsduringpageunload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_alwaysauthorizeplugins", + "displayName": "Always runs plugins that require authorization (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_alwaysauthorizeplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_alwaysauthorizeplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_appcacheforceenabled", + "displayName": "Allows the AppCache feature to be re-enabled even if it is off by default.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_appcacheforceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_appcacheforceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframecontenttypes", + "displayName": "Allow Google Chrome Frame to handle the listed content types", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframecontenttypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframecontenttypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframecontenttypes_chromeframecontenttypesdesc", + "displayName": "Allow Google Chrome Frame to handle the listed content types (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings", + "displayName": "Default HTML renderer for Google Chrome Frame", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_chromeframerenderersettings", + "displayName": "Default HTML renderer for Google Chrome Frame (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_chromeframerenderersettings_0", + "displayName": "Use the host browser by default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_chromeframerenderersettings_1", + "displayName": "Use Google Chrome Frame by default", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_clearsitedataonexit", + "displayName": "Clear site data on browser shutdown (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_clearsitedataonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_clearsitedataonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_cloudprintwarningssuppressed", + "displayName": "Suppress Google Cloud Print deprecation messages", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_cloudprintwarningssuppressed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_cloudprintwarningssuppressed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corslegacymodeenabled", + "displayName": "Use the legacy CORS implementation rather than new CORS", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corslegacymodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corslegacymodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corsmitigationlist", + "displayName": "Enable CORS check mitigations in the new CORS implementation", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corsmitigationlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corsmitigationlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corsmitigationlist_corsmitigationlistdesc", + "displayName": "Enable CORS check mitigations in the new CORS implementation (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting", + "displayName": "Control use of the File Handling API", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_defaultfilehandlingguardsetting", + "displayName": "Control use of the File Handling API (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_defaultfilehandlingguardsetting_2", + "displayName": "Do not allow any web app to access file types via the File Handling API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_defaultfilehandlingguardsetting_3", + "displayName": "Allow web apps to ask the user to grant access to file types via the File Handling API", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting", + "displayName": "Default key generation setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_defaultkeygensetting", + "displayName": "Default key generation setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_defaultkeygensetting_1", + "displayName": "Allow all sites to use key generation", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_defaultkeygensetting_2", + "displayName": "Do not allow any site to use key generation", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting", + "displayName": "Default Flash setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_defaultpluginssetting", + "displayName": "Default Flash setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_defaultpluginssetting_1", + "displayName": "Allow all sites to automatically run the Flash plugin", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_defaultpluginssetting_2", + "displayName": "Block the Flash plugin", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_defaultpluginssetting_3", + "displayName": "Click to play", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturl", + "displayName": "Default search provider instant URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturl_defaultsearchproviderinstanturl", + "displayName": "Default search provider instant URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturlpostparams", + "displayName": "Parameters for instant URL which uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturlpostparams_defaultsearchproviderinstanturlpostparams", + "displayName": "Parameters for instant URL which uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchprovidersearchtermsreplacementkey", + "displayName": "Parameter controlling search term placement for the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchprovidersearchtermsreplacementkey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchprovidersearchtermsreplacementkey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchprovidersearchtermsreplacementkey_defaultsearchprovidersearchtermsreplacementkey", + "displayName": "Parameter controlling search term placement for the default search provider (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dheenabled", + "displayName": "Enable DHE cipher suites in TLS", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dheenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dheenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledplugins", + "displayName": "Specify a list of disabled plugins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledplugins_disabledpluginsdesc", + "displayName": "List of disabled plugins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledpluginsexceptions", + "displayName": "Specify a list of plugins that the user can enable or disable", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledpluginsexceptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledpluginsexceptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledpluginsexceptions_disabledpluginsexceptionsdesc", + "displayName": "List of exceptions to the list of disabled plugins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablepluginfinder", + "displayName": "Specify whether the plugin finder should be disabled (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablepluginfinder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablepluginfinder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablespdy", + "displayName": "Disable SPDY protocol", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablespdy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablespdy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablesslrecordsplitting", + "displayName": "Disable TLS False Start", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablesslrecordsplitting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablesslrecordsplitting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dnsprefetchingenabled", + "displayName": "Enable network prediction", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dnsprefetchingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dnsprefetchingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablecommonnamefallbackforlocalanchors", + "displayName": "Allow certificates issued by local trust anchors without subjectAlternativeName extension", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablecommonnamefallbackforlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablecommonnamefallbackforlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedprivetprinting", + "displayName": "Enable deprecated privet printing", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedprivetprinting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedprivetprinting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebbasedsignin", + "displayName": "Enable the old web-based signin flow", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebbasedsignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebbasedsignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebplatformfeatures", + "displayName": "Enable deprecated web platform features for a limited time", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebplatformfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebplatformfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebplatformfeatures_enabledeprecatedwebplatformfeaturesdesc", + "displayName": "Enable deprecated web platform features for a limited time (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledplugins", + "displayName": "Specify a list of enabled plugins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledplugins_enabledpluginsdesc", + "displayName": "List of enabled plugins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesha1forlocalanchors", + "displayName": "Allow SHA-1 signed certificates issued by local trust anchors", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesha1forlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesha1forlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesymanteclegacyinfrastructure", + "displayName": "Enable trust in Symantec Corporation's Legacy PKI Infrastructure", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesymanteclegacyinfrastructure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesymanteclegacyinfrastructure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstorename", + "displayName": "Enterprise web store name (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstorename_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstorename_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstorename_enterprisewebstorename", + "displayName": "Enterprise web store name (deprecated) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstoreurl", + "displayName": "Enterprise web store URL (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstoreurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstoreurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstoreurl_enterprisewebstoreurl", + "displayName": "Enterprise web store URL (deprecated) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_extensionallowinsecureupdates", + "displayName": "Allow insecure algorithms in integrity checks on extension updates and installs", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_extensionallowinsecureupdates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_extensionallowinsecureupdates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingallowedforurls", + "displayName": "Allow the File Handling API on these web apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingallowedforurls_filehandlingallowedforurlsdesc", + "displayName": "Allow the File Handling API on these web apps (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingblockedforurls", + "displayName": "Block the File Handling API on these web apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingblockedforurls_filehandlingblockedforurlsdesc", + "displayName": "Block the File Handling API on these web apps (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcelegacydefaultreferrerpolicy", + "displayName": "Use a default referrer policy of no-referrer-when-downgrade.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcelegacydefaultreferrerpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcelegacydefaultreferrerpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcenetworkinprocess", + "displayName": "Force networking code to run in the browser process", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcenetworkinprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcenetworkinprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_gcfuserdatadir", + "displayName": "Set Google Chrome Frame user data directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_gcfuserdatadir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_gcfuserdatadir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_gcfuserdatadir_gcfuserdatadir", + "displayName": "Set user data directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_hidewebstorepromo", + "displayName": "Prevent app promotions from appearing on the new tab page", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_hidewebstorepromo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_hidewebstorepromo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_http09onnondefaultportsenabled", + "displayName": "Enable HTTP/0.9 support on non-default ports", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_http09onnondefaultportsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_http09onnondefaultportsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_instantenabled", + "displayName": "Enable Instant", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_instantenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_instantenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenallowedforurls", + "displayName": "Allow key generation on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenallowedforurls_keygenallowedforurlsdesc", + "displayName": "Allow key generation on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenblockedforurls", + "displayName": "Block key generation on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenblockedforurls_keygenblockedforurlsdesc", + "displayName": "Block key generation on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled", + "displayName": "Default legacy SameSite cookie behavior setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled", + "displayName": "Default legacy SameSite cookie behavior setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled_1", + "displayName": "Revert to legacy SameSite behavior for cookies on all sites", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled_2", + "displayName": "Use SameSite-by-default behavior for cookies on all sites", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_localdiscoveryenabled", + "displayName": "Enable chrome://devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_localdiscoveryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_localdiscoveryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_machinelevelusercloudpolicyenrollmenttoken", + "displayName": "The enrollment token of cloud policy on desktop", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_machinelevelusercloudpolicyenrollmenttoken_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_machinelevelusercloudpolicyenrollmenttoken_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_machinelevelusercloudpolicyenrollmenttoken_machinelevelusercloudpolicyenrollmenttoken", + "displayName": "The enrollment token of cloud policy on desktop (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_mediacachesize", + "displayName": "Set media disk cache size in bytes", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_mediacachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_mediacachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_mediacachesize_mediacachesize", + "displayName": "Set media disk cache size: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pachttpsurlstrippingenabled", + "displayName": "Enable PAC URL stripping (for https://)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pachttpsurlstrippingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pachttpsurlstrippingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_passwordmanagerallowshowpasswords", + "displayName": "Allow users to show passwords in Password Manager (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_passwordmanagerallowshowpasswords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_passwordmanagerallowshowpasswords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsallowedforurls", + "displayName": "Allow the Flash plugin on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsallowedforurls_pluginsallowedforurlsdesc", + "displayName": "Allow the Flash plugin on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsblockedforurls", + "displayName": "Block the Flash plugin on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsblockedforurls_pluginsblockedforurlsdesc", + "displayName": "Block the Flash plugin on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_rc4enabled", + "displayName": "Enable RC4 cipher suites in TLS", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_rc4enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_rc4enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccessclientfirewalltraversal", + "displayName": "Enable firewall traversal from remote access client", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccessclientfirewalltraversal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccessclientfirewalltraversal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostdebugoverridepolicies", + "displayName": "Policy overrides for Debug builds of the remote access host", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostdebugoverridepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostdebugoverridepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostdebugoverridepolicies_remoteaccesshostdebugoverridepolicies", + "displayName": "Policy overrides for Debug builds of the remote access host (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostrequiretwofactor", + "displayName": "Enable two-factor authentication for remote access hosts", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostrequiretwofactor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostrequiretwofactor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshosttalkgadgetprefix", + "displayName": "Configure the TalkGadget prefix for remote access hosts", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshosttalkgadgetprefix_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshosttalkgadgetprefix_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshosttalkgadgetprefix_remoteaccesshosttalkgadgetprefix", + "displayName": "Configure the TalkGadget prefix for remote access hosts (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinchromeframelist", + "displayName": "Always render the following URL patterns in Google Chrome Frame", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinchromeframelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinchromeframelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinchromeframelist_renderinchromeframelistdesc", + "displayName": "Always render the following URL patterns in Google Chrome Frame (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinhostlist", + "displayName": "Always render the following URL patterns in the host browser", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinhostlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinhostlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinhostlist_renderinhostlistdesc", + "displayName": "Always render the following URL patterns in the host browser (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_runallflashinallowmode", + "displayName": "Extend Flash content setting to all content (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_runallflashinallowmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_runallflashinallowmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_safebrowsingextendedreportingoptinallowed", + "displayName": "Allow users to opt in to Safe Browsing extended reporting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_safebrowsingextendedreportingoptinallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_safebrowsingextendedreportingoptinallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_skipmetadatacheck", + "displayName": "Skip the meta tag check in Google Chrome Frame", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_skipmetadatacheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_skipmetadatacheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin", + "displayName": "Minimum TLS version to fallback to", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_sslversionfallbackmin", + "displayName": "Minimum TLS version to fallback to (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_sslversionfallbackmin_tls1.1", + "displayName": "TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_sslversionfallbackmin_tls1.2", + "displayName": "TLS 1.2", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax", + "displayName": "Maximum SSL version enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_sslversionmax", + "displayName": "Maximum SSL version enabled (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_sslversionmax_tls1.2", + "displayName": "TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_sslversionmax_tls1.3", + "displayName": "TLS 1.3", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_supervisedusercreationenabled", + "displayName": "Enable creation of supervised users", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_supervisedusercreationenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_supervisedusercreationenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_suppresschromeframeturndownprompt", + "displayName": "Suppress the Google Chrome Frame turndown prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_suppresschromeframeturndownprompt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_suppresschromeframeturndownprompt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabfreezingenabled", + "displayName": "Allow background tabs freeze", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabfreezingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabfreezingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabunderallowed", + "displayName": "Allow sites to simultaneously navigate and open pop-ups", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabunderallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabunderallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tls13hardeningforlocalanchorsenabled", + "displayName": "Enable a TLS 1.3 security feature for local trust anchors.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tls13hardeningforlocalanchorsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tls13hardeningforlocalanchorsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tripledesenabled", + "displayName": "Enable 3DES cipher suites in TLS", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tripledesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tripledesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_uselegacyformcontrols", + "displayName": "Use Legacy Form Controls until M84.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_uselegacyformcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_uselegacyformcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_useragentclienthintsenabled", + "displayName": "Control the User-Agent Client Hints feature.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_useragentclienthintsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_useragentclienthintsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webcomponentsv0enabled", + "displayName": "Re-enable Web Components v0 API until M84.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webcomponentsv0enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webcomponentsv0enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webdriveroverridesincompatiblepolicies", + "displayName": "Allow WebDriver to Override Incompatible Policies", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webdriveroverridesincompatiblepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webdriveroverridesincompatiblepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_welcomepageonosupgradeenabled", + "displayName": "Enable showing the welcome page on the first browser launch following OS upgrade", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_welcomepageonosupgradeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_welcomepageonosupgradeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionchangepasswordurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionchangepasswordurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionchangepasswordurl_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionloginurls", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture salted hashes of passwords.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionloginurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionloginurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionloginurls_passwordprotectionloginurlsdesc", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture salted hashes of passwords. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger", + "displayName": "Password protection warning trigger", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger", + "displayName": "Password protection warning trigger (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_0", + "displayName": "Password protection warning is off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_1", + "displayName": "Password protection warning is triggered by password reuse", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_2", + "displayName": "Password protection warning is triggered by password reuse on phishing page", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingallowlistdomains", + "displayName": "Configure the list of domains on which Safe Browsing will not trigger warnings.", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingallowlistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingallowlistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingallowlistdomains_safebrowsingallowlistdomainsdesc", + "displayName": "Configure the list of domains on which Safe Browsing will not trigger warnings. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingextendedreportingenabled", + "displayName": "Enable Safe Browsing Extended Reporting", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingextendedreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingextendedreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel", + "displayName": "Safe Browsing Protection Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_safebrowsingprotectionlevel", + "displayName": "Safe Browsing Protection Level (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_safebrowsingprotectionlevel_0", + "displayName": "Safe Browsing is never active.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_safebrowsingprotectionlevel_1", + "displayName": "Safe Browsing is active in the standard mode.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_safebrowsingprotectionlevel_2", + "displayName": "Safe Browsing is active in the enhanced mode. This mode provides better security, but requires sharing more browsing information with Google.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_sameorigintabcaptureallowedbyorigins", + "displayName": "Allow Same Origin Tab capture by these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_sameorigintabcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_sameorigintabcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_sameorigintabcaptureallowedbyorigins_sameorigintabcaptureallowedbyoriginsdesc", + "displayName": "Allow Same Origin Tab capture by these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowed", + "displayName": "Allow or deny screen capture", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowedbyorigins", + "displayName": "Allow Desktop, Window, and Tab capture by these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowedbyorigins_screencaptureallowedbyoriginsdesc", + "displayName": "Allow Desktop, Window, and Tab capture by these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_tabcaptureallowedbyorigins", + "displayName": "Allow Tab capture by these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_tabcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_tabcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_tabcaptureallowedbyorigins_tabcaptureallowedbyoriginsdesc", + "displayName": "Allow Tab capture by these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_windowcaptureallowedbyorigins", + "displayName": "Allow Window and Tab capture by these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_windowcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_windowcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_windowcaptureallowedbyorigins_windowcaptureallowedbyoriginsdesc", + "displayName": "Allow Window and Tab capture by these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepageisnewtabpage", + "displayName": "Use New Tab Page as homepage", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepageisnewtabpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepageisnewtabpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepagelocation", + "displayName": "Configure the home page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepagelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepagelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepagelocation_homepagelocation", + "displayName": "Home page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_newtabpagelocation", + "displayName": "Configure the New Tab page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_newtabpagelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_newtabpagelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_newtabpagelocation_newtabpagelocation", + "displayName": "New Tab page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup", + "displayName": "Action on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_restoreonstartup", + "displayName": "Action on startup (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_restoreonstartup_5", + "displayName": "Open New Tab Page", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartupurls", + "displayName": "URLs to open on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartupurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartupurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartupurls_restoreonstartupurlsdesc", + "displayName": "URLs to open on startup (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_showhomebutton", + "displayName": "Show Home button on toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_showhomebutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_showhomebutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_boottocloudmode", + "displayName": "Boot To Cloud Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_clouddesktop_boottocloudmode_0", + "displayName": "Not Configured", + "description": "Not Configured" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_boottocloudmode_1", + "displayName": "Enable Boot to Cloud Desktop", + "description": "Enable Boot to Cloud Desktop" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout", + "displayName": "Set Max Connection Timeout", + "options": [ + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_5", + "displayName": "5 min", + "description": "5 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_6", + "displayName": "6 min", + "description": "6 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_7", + "displayName": "7 min", + "description": "7 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_8", + "displayName": "8 min", + "description": "8 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_9", + "displayName": "9 min", + "description": "9 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_10", + "displayName": "10 min", + "description": "10 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_11", + "displayName": "11 min", + "description": "11 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_12", + "displayName": "12 min", + "description": "12 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_13", + "displayName": "13 min", + "description": "13 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_14", + "displayName": "14 min", + "description": "14 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_15", + "displayName": "15 min", + "description": "15 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_16", + "displayName": "16 min", + "description": "16 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_17", + "displayName": "17 min", + "description": "17 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_18", + "displayName": "18 min", + "description": "18 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_19", + "displayName": "19 min", + "description": "19 min" + }, + { + "id": "device_vendor_msft_policy_config_clouddesktop_setmaxconnectiontimeout_20", + "displayName": "20 min", + "description": "20 min" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowbluetooth", + "displayName": "Allow Bluetooth", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_allowbluetooth_0", + "displayName": "Disallow Bluetooth. The radio in the Bluetooth control panel will be grayed out and the user will not be able to turn Bluetooth on.", + "description": "Disallow Bluetooth. If this is set to 0, the radio in the Bluetooth control panel will be grayed out and the user will not be able to turn Bluetooth on." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowbluetooth_1", + "displayName": "Reserved. The radio in the Bluetooth control panel will be functional and the user will be able to turn Bluetooth on.", + "description": "Reserved. If this is set to 1, the radio in the Bluetooth control panel will be functional and the user will be able to turn Bluetooth on." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowbluetooth_2", + "displayName": "Allow Bluetooth. The radio in the Bluetooth control panel will be functional and the user will be able to turn Bluetooth on.", + "description": "Allow Bluetooth. If this is set to 2, the radio in the Bluetooth control panel will be functional and the user will be able to turn Bluetooth on." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowcellulardata", + "displayName": "Allow Cellular Data", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_allowcellulardata_0", + "displayName": "Do not allow the cellular data channel. The user cannot turn it on. This value is not supported in Windows 10, version 1511.", + "description": "Do not allow the cellular data channel. The user cannot turn it on. This value is not supported in Windows 10, version 1511." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowcellulardata_1", + "displayName": "Allow the cellular data channel. The user can turn it off.", + "description": "Allow the cellular data channel. The user can turn it off." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowcellulardata_2", + "displayName": "Allow the cellular data channel. The user cannot turn it off.", + "description": "Allow the cellular data channel. The user cannot turn it off." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowcellulardataroaming", + "displayName": "Allow Cellular Data Roaming", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_allowcellulardataroaming_0", + "displayName": "Do not allow cellular data roaming. The user cannot turn it on. This value is not supported in Windows 10, version 1511.", + "description": "Do not allow cellular data roaming. The user cannot turn it on. This value is not supported in Windows 10, version 1511." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowcellulardataroaming_1", + "displayName": "Allow cellular data roaming.", + "description": "Allow cellular data roaming." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowcellulardataroaming_2", + "displayName": "Allow cellular data roaming on. The user cannot turn it off.", + "description": "Allow cellular data roaming on. The user cannot turn it off." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowconnecteddevices", + "displayName": "Allow Connected Devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_allowconnecteddevices_0", + "displayName": "Block", + "description": "Disable (CDP service not available)." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowconnecteddevices_1", + "displayName": "Allow", + "description": "Allow (CDP service available)." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowphonepclinking", + "displayName": "Allow Phone PC Linking", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_allowphonepclinking_0", + "displayName": "Block", + "description": "Do not link." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowphonepclinking_1", + "displayName": "Allow", + "description": "Allow phone-PC linking." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowusbconnection", + "displayName": "Allow USB Connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_allowusbconnection_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowusbconnection_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowvpnovercellular", + "displayName": "Allow VPN Over Cellular", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_allowvpnovercellular_0", + "displayName": "Block", + "description": "VPN is not allowed over cellular." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowvpnovercellular_1", + "displayName": "Allow", + "description": "VPN can use any connection, including cellular." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowvpnroamingovercellular", + "displayName": "Allow VPN Roaming Over Cellular", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_allowvpnroamingovercellular_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_connectivity_allowvpnroamingovercellular_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_diableprintingoverhttp", + "displayName": "Turn off printing over HTTP", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_diableprintingoverhttp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_connectivity_diableprintingoverhttp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_disabledownloadingofprintdriversoverhttp", + "displayName": "Turn off downloading of print drivers over HTTP", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_disabledownloadingofprintdriversoverhttp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_connectivity_disabledownloadingofprintdriversoverhttp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_disableinternetdownloadforwebpublishingandonlineorderingwizards", + "displayName": "Turn off Internet download for Web publishing and online ordering wizards", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_disableinternetdownloadforwebpublishingandonlineorderingwizards_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_connectivity_disableinternetdownloadforwebpublishingandonlineorderingwizards_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_disallownetworkconnectivityactivetests", + "displayName": "Disallow Network Connectivity Active Tests", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_disallownetworkconnectivityactivetests_1", + "displayName": "Allow", + "description": "Allow" + }, + { + "id": "device_vendor_msft_policy_config_connectivity_disallownetworkconnectivityactivetests_0", + "displayName": "Block", + "description": "Block" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_hardeneduncpaths", + "displayName": "Hardened UNC Paths", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_hardeneduncpaths_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_connectivity_hardeneduncpaths_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_connectivity_hardeneduncpaths_pol_hardenedpaths", + "displayName": "Hardened UNC Paths: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_connectivity_hardeneduncpaths_pol_hardenedpaths_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_connectivity_hardeneduncpaths_pol_hardenedpaths_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_connectivity_prohibitinstallationandconfigurationofnetworkbridge", + "displayName": "Prohibit installation and configuration of Network Bridge on your DNS domain network", + "options": [ + { + "id": "device_vendor_msft_policy_config_connectivity_prohibitinstallationandconfigurationofnetworkbridge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_connectivity_prohibitinstallationandconfigurationofnetworkbridge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_controlpolicyconflict_mdmwinsovergp", + "displayName": "MDM Wins Over GP", + "options": [ + { + "id": "device_vendor_msft_policy_config_controlpolicyconflict_mdmwinsovergp_0", + "displayName": "", + "description": "" + }, + { + "id": "device_vendor_msft_policy_config_controlpolicyconflict_mdmwinsovergp_1", + "displayName": "The MDM policy is used and the GP policy is blocked.", + "description": "The MDM policy is used and the GP policy is blocked." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_credentialproviders_allowpinlogon", + "displayName": "Turn on convenience PIN sign-in", + "options": [ + { + "id": "device_vendor_msft_policy_config_credentialproviders_allowpinlogon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_credentialproviders_allowpinlogon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_credentialproviders_blockpicturepassword", + "displayName": "Turn off picture password sign-in", + "options": [ + { + "id": "device_vendor_msft_policy_config_credentialproviders_blockpicturepassword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_credentialproviders_blockpicturepassword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_credentialproviders_disableautomaticredeploymentcredentials", + "displayName": "Disable Automatic Re Deployment Credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_credentialproviders_disableautomaticredeploymentcredentials_0", + "displayName": "Disabled", + "description": "Enable the visibility of the credentials for Autopilot Reset." + }, + { + "id": "device_vendor_msft_policy_config_credentialproviders_disableautomaticredeploymentcredentials_1", + "displayName": "Enabled", + "description": "Disable visibility of the credentials for Autopilot Reset." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_credentialsdelegation_remotehostallowsdelegationofnonexportablecredentials", + "displayName": "Remote host allows delegation of non-exportable credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_credentialsdelegation_remotehostallowsdelegationofnonexportablecredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_credentialsdelegation_remotehostallowsdelegationofnonexportablecredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_credentialsui_disablepasswordreveal", + "displayName": "Do not display the password reveal button", + "options": [ + { + "id": "device_vendor_msft_policy_config_credentialsui_disablepasswordreveal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_credentialsui_disablepasswordreveal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_credentialsui_enumerateadministrators", + "displayName": "Enumerate administrator accounts on elevation", + "options": [ + { + "id": "device_vendor_msft_policy_config_credentialsui_enumerateadministrators_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_credentialsui_enumerateadministrators_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_cryptography_allowfipsalgorithmpolicy", + "displayName": "Allow Fips Algorithm Policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_cryptography_allowfipsalgorithmpolicy_1", + "displayName": "Allow", + "description": "Allow" + }, + { + "id": "device_vendor_msft_policy_config_cryptography_allowfipsalgorithmpolicy_0", + "displayName": "Block", + "description": "Block" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_cryptography_tlsciphersuites", + "displayName": "TLS Cipher Suites", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_dataprotection_allowdirectmemoryaccess", + "displayName": "Allow Direct Memory Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_dataprotection_allowdirectmemoryaccess_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_dataprotection_allowdirectmemoryaccess_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_dataprotection_legacyselectivewipeid", + "displayName": "Legacy Selective Wipe ID", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost3g", + "displayName": "Set 3G Cost", + "options": [ + { + "id": "device_vendor_msft_policy_config_datausage_setcost3g_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost3g_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost3g_cost3g_dropdownlist", + "displayName": "Please select a 3G connection cost value to set: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_datausage_setcost3g_cost3g_dropdownlist_1", + "displayName": "Unrestricted", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost3g_cost3g_dropdownlist_2", + "displayName": "Fixed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost3g_cost3g_dropdownlist_3", + "displayName": "Variable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost4g", + "displayName": "Set 4G Cost", + "options": [ + { + "id": "device_vendor_msft_policy_config_datausage_setcost4g_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost4g_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost4g_cost4g_dropdownlist", + "displayName": "Please select a 4G connection cost value to set: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_datausage_setcost4g_cost4g_dropdownlist_1", + "displayName": "Unrestricted", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost4g_cost4g_dropdownlist_2", + "displayName": "Fixed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_datausage_setcost4g_cost4g_dropdownlist_3", + "displayName": "Variable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowarchivescanning", + "displayName": "Allow Archive Scanning", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowarchivescanning_0", + "displayName": "Not allowed. Turns off scanning on archived files.", + "description": "Not allowed. Turns off scanning on archived files." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowarchivescanning_1", + "displayName": "Allowed. Scans the archive files.", + "description": "Allowed. Scans the archive files." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowbehaviormonitoring", + "displayName": "Allow Behavior Monitoring", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowbehaviormonitoring_0", + "displayName": "Not allowed. Turns off behavior monitoring.", + "description": "Not allowed. Turns off behavior monitoring." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowbehaviormonitoring_1", + "displayName": "Allowed. Turns on real-time behavior monitoring.", + "description": "Allowed. Turns on real-time behavior monitoring." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowcloudprotection", + "displayName": "Allow Cloud Protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowcloudprotection_0", + "displayName": "Not allowed. Turns off Cloud Protection.", + "description": "Not allowed. Turns off Cloud Protection." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowcloudprotection_1", + "displayName": "Allowed. Turns on Cloud Protection.", + "description": "Allowed. Turns on Cloud Protection." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowemailscanning", + "displayName": "Allow Email Scanning", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowemailscanning_0", + "displayName": "Not allowed. Turns off email scanning.", + "description": "Not allowed. Turns off email scanning." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowemailscanning_1", + "displayName": "Allowed. Turns on email scanning.", + "description": "Allowed. Turns on email scanning." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowfullscanonmappednetworkdrives", + "displayName": "Allow Full Scan On Mapped Network Drives", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowfullscanonmappednetworkdrives_0", + "displayName": "Not allowed. Disables scanning on mapped network drives.", + "description": "Not allowed. Disables scanning on mapped network drives." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowfullscanonmappednetworkdrives_1", + "displayName": "Allowed. Scans mapped network drives.", + "description": "Allowed. Scans mapped network drives." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowfullscanremovabledrivescanning", + "displayName": "Allow Full Scan Removable Drive Scanning", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowfullscanremovabledrivescanning_0", + "displayName": "Not allowed. Turns off scanning on removable drives.", + "description": "Not allowed. Turns off scanning on removable drives." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowfullscanremovabledrivescanning_1", + "displayName": "Allowed. Scans removable drives.", + "description": "Allowed. Scans removable drives." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowintrusionpreventionsystem", + "displayName": "[Deprecated] Allow Intrusion Prevention System", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowintrusionpreventionsystem_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowintrusionpreventionsystem_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowioavprotection", + "displayName": "Allow scanning of all downloaded files and attachments", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowioavprotection_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowioavprotection_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowonaccessprotection", + "displayName": "Allow On Access Protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowonaccessprotection_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowonaccessprotection_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowrealtimemonitoring", + "displayName": "Allow Realtime Monitoring", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowrealtimemonitoring_0", + "displayName": "Not allowed. Turns off the real-time monitoring service.", + "description": "Not allowed. Turns off the real-time monitoring service." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowrealtimemonitoring_1", + "displayName": "Allowed. Turns on and runs the real-time monitoring service.", + "description": "Allowed. Turns on and runs the real-time monitoring service." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowscanningnetworkfiles", + "displayName": "Allow Scanning Network Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowscanningnetworkfiles_0", + "displayName": "Not allowed. Turns off scanning of network files.", + "description": "Not allowed. Turns off scanning of network files." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowscanningnetworkfiles_1", + "displayName": "Allowed. Scans network files.", + "description": "Allowed. Scans network files." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowscriptscanning", + "displayName": "Allow Script Scanning", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowscriptscanning_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowscriptscanning_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_allowuseruiaccess", + "displayName": "Allow User UI Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_allowuseruiaccess_0", + "displayName": "Not allowed. Prevents users from accessing UI.", + "description": "Not allowed. Prevents users from accessing UI." + }, + { + "id": "device_vendor_msft_policy_config_defender_allowuseruiaccess_1", + "displayName": "Allowed. Lets users access UI.", + "description": "Allowed. Lets users access UI." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductiononlyexclusions", + "displayName": "Attack Surface Reduction Only Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules", + "displayName": "Attack Surface Reduction Rules", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers", + "displayName": "Block abuse of exploited vulnerable signed drivers (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockadobereaderfromcreatingchildprocesses", + "displayName": "Block Adobe Reader from creating child processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockadobereaderfromcreatingchildprocesses_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockadobereaderfromcreatingchildprocesses_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockadobereaderfromcreatingchildprocesses_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockadobereaderfromcreatingchildprocesses_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockadobereaderfromcreatingchildprocesses_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses", + "displayName": "Block all Office applications from creating child processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem", + "displayName": "Block credential stealing from the Windows local security authority subsystem", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail", + "displayName": "Block executable content from email client and webmail", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion", + "displayName": "Block executable files from running unless they meet a prevalence, age, or trusted list criterion", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablefilesrunningunlesstheymeetprevalenceagetrustedlistcriterion_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts", + "displayName": "Block execution of potentially obfuscated scripts", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent", + "displayName": "Block JavaScript or VBScript from launching downloaded executable content", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent", + "displayName": "Block Office applications from creating executable content", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses", + "displayName": "Block Office applications from injecting code into other processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses", + "displayName": "Block Office communication application from creating child processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockpersistencethroughwmieventsubscription", + "displayName": "Block persistence through WMI event subscription", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockpersistencethroughwmieventsubscription_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockpersistencethroughwmieventsubscription_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockpersistencethroughwmieventsubscription_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockpersistencethroughwmieventsubscription_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands", + "displayName": "Block process creations originating from PSExec and WMI commands", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockrebootingmachineinsafemode", + "displayName": "[PREVIEW] Block rebooting machine in Safe Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockrebootingmachineinsafemode_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockrebootingmachineinsafemode_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockrebootingmachineinsafemode_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockrebootingmachineinsafemode_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockrebootingmachineinsafemode_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb", + "displayName": "Block untrusted and unsigned processes that run from USB", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuseofcopiedorimpersonatedsystemtools", + "displayName": "[PREVIEW] Block use of copied or impersonated system tools", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuseofcopiedorimpersonatedsystemtools_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuseofcopiedorimpersonatedsystemtools_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuseofcopiedorimpersonatedsystemtools_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuseofcopiedorimpersonatedsystemtools_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuseofcopiedorimpersonatedsystemtools_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwebshellcreationforservers", + "displayName": "Block Webshell creation for Servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwebshellcreationforservers_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwebshellcreationforservers_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwebshellcreationforservers_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwebshellcreationforservers_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwebshellcreationforservers_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros", + "displayName": "Block Win32 API calls from Office macros", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware", + "displayName": "Use advanced protection against ransomware", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_off", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_block", + "displayName": "Block", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_audit", + "displayName": "Audit", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_warn", + "displayName": "Warn", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware_perruleexclusions", + "displayName": "ASR Only Per Rule Exclusions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_avgcpuloadfactor", + "displayName": "Avg CPU Load Factor", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_checkforsignaturesbeforerunningscan", + "displayName": "Check For Signatures Before Running Scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_checkforsignaturesbeforerunningscan_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_defender_checkforsignaturesbeforerunningscan_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_cloudblocklevel", + "displayName": "Cloud Block Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_cloudblocklevel_0", + "displayName": "Default State", + "description": "Default State" + }, + { + "id": "device_vendor_msft_policy_config_defender_cloudblocklevel_2", + "displayName": "High", + "description": "High" + }, + { + "id": "device_vendor_msft_policy_config_defender_cloudblocklevel_4", + "displayName": "High Plus", + "description": "HighPlus" + }, + { + "id": "device_vendor_msft_policy_config_defender_cloudblocklevel_6", + "displayName": "Zero Tolerance", + "description": "ZeroTolerance" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_cloudextendedtimeout", + "displayName": "Cloud Extended Timeout", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_controlledfolderaccessallowedapplications", + "displayName": "Controlled Folder Access Allowed Applications", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_controlledfolderaccessprotectedfolders", + "displayName": "Controlled Folder Access Protected Folders", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_daystoretaincleanedmalware", + "displayName": "Days To Retain Cleaned Malware", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_disablecatchupfullscan", + "displayName": "Disable Catchup Full Scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_disablecatchupfullscan_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_defender_disablecatchupfullscan_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_disablecatchupquickscan", + "displayName": "Disable Catchup Quick Scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_disablecatchupquickscan_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_defender_disablecatchupquickscan_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_enablecontrolledfolderaccess", + "displayName": "Enable Controlled Folder Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_enablecontrolledfolderaccess_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_defender_enablecontrolledfolderaccess_1", + "displayName": "Enabled", + "description": "Enabled" + }, + { + "id": "device_vendor_msft_policy_config_defender_enablecontrolledfolderaccess_2", + "displayName": "Audit Mode", + "description": "Audit Mode" + }, + { + "id": "device_vendor_msft_policy_config_defender_enablecontrolledfolderaccess_3", + "displayName": "Block disk modification only", + "description": "Block disk modification only" + }, + { + "id": "device_vendor_msft_policy_config_defender_enablecontrolledfolderaccess_4", + "displayName": "Audit disk modification only", + "description": "Audit disk modification only" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_enablelowcpupriority", + "displayName": "Enable Low CPU Priority", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_enablelowcpupriority_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_defender_enablelowcpupriority_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_enablenetworkprotection", + "displayName": "Enable Network Protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_enablenetworkprotection_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_defender_enablenetworkprotection_1", + "displayName": "Enabled (block mode)", + "description": "Enabled (block mode)" + }, + { + "id": "device_vendor_msft_policy_config_defender_enablenetworkprotection_2", + "displayName": "Enabled (audit mode)", + "description": "Enabled (audit mode)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_excludedextensions", + "displayName": "Excluded Extensions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_excludedpaths", + "displayName": "Excluded Paths", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_excludedprocesses", + "displayName": "Excluded Processes", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_puaprotection", + "displayName": "PUA Protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_puaprotection_0", + "displayName": "PUA Protection off. Windows Defender will not protect against potentially unwanted applications.", + "description": "PUA Protection off. Windows Defender will not protect against potentially unwanted applications." + }, + { + "id": "device_vendor_msft_policy_config_defender_puaprotection_1", + "displayName": "PUA Protection on. Detected items are blocked. They will show in history along with other threats.", + "description": "PUA Protection on. Detected items are blocked. They will show in history along with other threats." + }, + { + "id": "device_vendor_msft_policy_config_defender_puaprotection_2", + "displayName": "Audit mode. Windows Defender will detect potentially unwanted applications, but take no action. You can review information about the applications Windows Defender would have taken action against by searching for events created by Windows Defender in the Event Viewer.", + "description": "Audit mode. Windows Defender will detect potentially unwanted applications, but take no action. You can review information about the applications Windows Defender would have taken action against by searching for events created by Windows Defender in the Event Viewer." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_realtimescandirection", + "displayName": "Real Time Scan Direction", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_realtimescandirection_0", + "displayName": "Monitor all files (bi-directional).", + "description": "Monitor all files (bi-directional)." + }, + { + "id": "device_vendor_msft_policy_config_defender_realtimescandirection_1", + "displayName": "Monitor incoming files.", + "description": "Monitor incoming files." + }, + { + "id": "device_vendor_msft_policy_config_defender_realtimescandirection_2", + "displayName": "Monitor outgoing files.", + "description": "Monitor outgoing files." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_scanparameter", + "displayName": "Scan Parameter", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_scanparameter_1", + "displayName": "Quick scan", + "description": "Quick scan" + }, + { + "id": "device_vendor_msft_policy_config_defender_scanparameter_2", + "displayName": "Full scan", + "description": "Full scan" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulequickscantime", + "displayName": "Schedule Quick Scan Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday", + "displayName": "Schedule Scan Day", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_0", + "displayName": "Every day", + "description": "Every day" + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_1", + "displayName": "Sunday", + "description": "Sunday" + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_2", + "displayName": "Monday", + "description": "Monday" + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_3", + "displayName": "Tuesday", + "description": "Tuesday" + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_4", + "displayName": "Wednesday", + "description": "Wednesday" + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_5", + "displayName": "Thursday", + "description": "Thursday" + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_6", + "displayName": "Friday", + "description": "Friday" + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_7", + "displayName": "Saturday", + "description": "Saturday" + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescanday_8", + "displayName": "No scheduled scan", + "description": "No scheduled scan" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_schedulescantime", + "displayName": "Schedule Scan Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_securityintelligencelocation", + "displayName": "Security Intelligence Location", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_signatureupdatefallbackorder", + "displayName": "Signature Update Fallback Order", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_signatureupdatefilesharessources", + "displayName": "Signature Update File Shares Sources", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_signatureupdateinterval", + "displayName": "Signature Update Interval", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_submitsamplesconsent", + "displayName": "Submit Samples Consent", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_submitsamplesconsent_0", + "displayName": "Always prompt.", + "description": "Always prompt." + }, + { + "id": "device_vendor_msft_policy_config_defender_submitsamplesconsent_1", + "displayName": "Send safe samples automatically.", + "description": "Send safe samples automatically." + }, + { + "id": "device_vendor_msft_policy_config_defender_submitsamplesconsent_2", + "displayName": "Never send.", + "description": "Never send." + }, + { + "id": "device_vendor_msft_policy_config_defender_submitsamplesconsent_3", + "displayName": "Send all samples automatically.", + "description": "Send all samples automatically." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction", + "displayName": "Threat Severity Default Action", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats", + "displayName": "Remediation action for High severity threats", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats_clean", + "displayName": "Clean. Service tries to recover files and try to disinfect.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats_quarantine", + "displayName": "Quarantine. Moves files to quarantine.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats_remove", + "displayName": "Remove. Removes files from system.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats_allow", + "displayName": "Allow. Allows file/does none of the above actions.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats_userdefined", + "displayName": "User defined. Requires user to make a decision on which action to take.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_highseveritythreats_block", + "displayName": "Block. Blocks file execution.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats", + "displayName": "Remediation action for Low severity threats", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats_clean", + "displayName": "Clean. Service tries to recover files and try to disinfect.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats_quarantine", + "displayName": "Quarantine. Moves files to quarantine.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats_remove", + "displayName": "Remove. Removes files from system.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats_allow", + "displayName": "Allow. Allows file/does none of the above actions.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats_userdefined", + "displayName": "User defined. Requires user to make a decision on which action to take.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_lowseveritythreats_block", + "displayName": "Block. Blocks file execution.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats", + "displayName": "Remediation action for Moderate severity threats", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats_clean", + "displayName": "Clean. Service tries to recover files and try to disinfect.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats_quarantine", + "displayName": "Quarantine. Moves files to quarantine.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats_remove", + "displayName": "Remove. Removes files from system.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats_allow", + "displayName": "Allow. Allows file/does none of the above actions.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats_userdefined", + "displayName": "User defined. Requires user to make a decision on which action to take.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_moderateseveritythreats_block", + "displayName": "Block. Blocks file execution.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats", + "displayName": "Remediation action for Severe threats", + "options": [ + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats_clean", + "displayName": "Clean. Service tries to recover files and try to disinfect.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats_quarantine", + "displayName": "Quarantine. Moves files to quarantine.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats_remove", + "displayName": "Remove. Removes files from system.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats_allow", + "displayName": "Allow. Allows file/does none of the above actions.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats_userdefined", + "displayName": "User defined. Requires user to make a decision on which action to take.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_defender_threatseveritydefaultaction_severethreats_block", + "displayName": "Block. Blocks file execution.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_doabsolutemaxcachesize", + "displayName": "DO Absolute Max Cache Size", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_doallowvpnpeercaching", + "displayName": "DO Allow VPN Peer Caching", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_doallowvpnpeercaching_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_doallowvpnpeercaching_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_docachehost", + "displayName": "DO Cache Host", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_docachehostsource", + "displayName": "DO Cache Host Source", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodelaybackgrounddownloadfromhttp", + "displayName": "DO Delay Background Download From Http", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodelaycacheserverfallbackbackground", + "displayName": "DO Delay Cache Server Fallback Background", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodelaycacheserverfallbackforeground", + "displayName": "DO Delay Cache Server Fallback Foreground", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodelayforegrounddownloadfromhttp", + "displayName": "DO Delay Foreground Download From Http", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodisallowcacheserverdownloadsonvpn", + "displayName": "DO Disallow Cache Server Downloads On VPN", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodisallowcacheserverdownloadsonvpn_0", + "displayName": "Allowed", + "description": "Allowed" + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodisallowcacheserverdownloadsonvpn_1", + "displayName": "Not allowed", + "description": "Not allowed" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodownloadmode", + "displayName": "DO Download Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodownloadmode_0", + "displayName": "HTTP only, no peering.", + "description": "HTTP only, no peering." + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodownloadmode_1", + "displayName": "HTTP blended with peering behind the same NAT.", + "description": "HTTP blended with peering behind the same NAT." + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodownloadmode_2", + "displayName": "When this option is selected, peering will cross NATs. To create a custom group use Group ID in combination with Mode 2.", + "description": "When this option is selected, peering will cross NATs. To create a custom group use Group ID in combination with Mode 2." + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodownloadmode_3", + "displayName": "HTTP blended with Internet peering.", + "description": "HTTP blended with Internet peering." + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodownloadmode_99", + "displayName": "9 - Simple download mode with no peering. Delivery Optimization downloads using HTTP only and does not attempt to contact the Delivery Optimization cloud services. Added in Windows 10, version 1607.", + "description": "9 - Simple download mode with no peering. Delivery Optimization downloads using HTTP only and does not attempt to contact the Delivery Optimization cloud services. Added in Windows 10, version 1607." + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dodownloadmode_100", + "displayName": "Bypass mode. Windows 10: Do not use Delivery Optimization and use BITS instead. Windows 11: Deprecated, use Simple mode instead.", + "description": "Bypass mode. Windows 10: Do not use Delivery Optimization and use BITS instead. Windows 11: Deprecated, use Simple mode instead." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dogroupid", + "displayName": "DO Group Id", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dogroupidsource", + "displayName": "DO Group Id Source", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dogroupidsource_0", + "displayName": "Unset", + "description": "Unset" + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dogroupidsource_1", + "displayName": "AD site", + "description": "AD site" + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dogroupidsource_2", + "displayName": "Authenticated domain SID", + "description": "Authenticated domain SID" + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dogroupidsource_3", + "displayName": "DHCP user option", + "description": "DHCP user option" + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dogroupidsource_4", + "displayName": "DNS suffix", + "description": "DNS suffix" + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dogroupidsource_5", + "displayName": "AAD", + "description": "AAD" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domaxbackgrounddownloadbandwidth", + "displayName": "DO Max Background Download Bandwidth", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domaxcacheage", + "displayName": "DO Max Cache Age", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domaxcachesize", + "displayName": "DO Max Cache Size", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domaxdownloadbandwidth", + "displayName": "DO Max Download Bandwidth", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domaxforegrounddownloadbandwidth", + "displayName": "DO Max Foreground Download Bandwidth", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domaxuploadbandwidth", + "displayName": "DO Max Upload Bandwidth", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dominbackgroundqos", + "displayName": "DO Min Background Qos", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dominbatterypercentageallowedtoupload", + "displayName": "DO Min Battery Percentage Allowed To Upload", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domindisksizeallowedtopeer", + "displayName": "DO Min Disk Size Allowed To Peer", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dominfilesizetocache", + "displayName": "DO Min File Size To Cache", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dominramallowedtopeer", + "displayName": "DO Min RAM Allowed To Peer", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domodifycachedrive", + "displayName": "DO Modify Cache Drive", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_domonthlyuploaddatacap", + "displayName": "DO Monthly Upload Data Cap", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dopercentagemaxbackgroundbandwidth", + "displayName": "DO Percentage Max Background Bandwidth", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dopercentagemaxforegroundbandwidth", + "displayName": "DO Percentage Max Foreground Bandwidth", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dorestrictpeerselectionby", + "displayName": "DO Restrict Peer Selection By", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dorestrictpeerselectionby_0", + "displayName": "None.", + "description": "None." + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dorestrictpeerselectionby_1", + "displayName": "Subnet mask.", + "description": "Subnet mask." + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dorestrictpeerselectionby_2", + "displayName": "Local peer discovery (DNS-SD).", + "description": "Local peer discovery (DNS-SD)." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth", + "displayName": "Set Business Hours to Limit Background Download Bandwidth", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom", + "displayName": "From: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_0", + "displayName": "12 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_1", + "displayName": "1 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_2", + "displayName": "2 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_3", + "displayName": "3 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_4", + "displayName": "4 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_5", + "displayName": "5 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_6", + "displayName": "6 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_7", + "displayName": "7 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_8", + "displayName": "8 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_9", + "displayName": "9 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_10", + "displayName": "10 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_11", + "displayName": "11 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_12", + "displayName": "12 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_13", + "displayName": "1 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_14", + "displayName": "2 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_15", + "displayName": "3 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_16", + "displayName": "4 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_17", + "displayName": "5 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_18", + "displayName": "6 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_19", + "displayName": "7 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_20", + "displayName": "8 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_21", + "displayName": "9 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_22", + "displayName": "10 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthfrom_23", + "displayName": "11 PM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthin", + "displayName": "\r\nMaximum Background Download Bandwidth (percentage) during Business Hours:\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthout", + "displayName": "\r\nMaximum Background Download Bandwidth (percentage) outside of Business Hours:\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto", + "displayName": "To: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_0", + "displayName": "12 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_1", + "displayName": "1 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_2", + "displayName": "2 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_3", + "displayName": "3 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_4", + "displayName": "4 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_5", + "displayName": "5 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_6", + "displayName": "6 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_7", + "displayName": "7 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_8", + "displayName": "8 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_9", + "displayName": "9 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_10", + "displayName": "10 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_11", + "displayName": "11 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_12", + "displayName": "12 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_13", + "displayName": "1 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_14", + "displayName": "2 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_15", + "displayName": "3 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_16", + "displayName": "4 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_17", + "displayName": "5 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_18", + "displayName": "6 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_19", + "displayName": "7 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_20", + "displayName": "8 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_21", + "displayName": "9 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_22", + "displayName": "10 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitbackgrounddownloadbandwidth_sethourstolimitbackgrounddownloadbandwidthto_23", + "displayName": "11 PM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth", + "displayName": "Set Business Hours to Limit Foreground Download Bandwidth", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom", + "displayName": "From: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_0", + "displayName": "12 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_1", + "displayName": "1 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_2", + "displayName": "2 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_3", + "displayName": "3 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_4", + "displayName": "4 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_5", + "displayName": "5 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_6", + "displayName": "6 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_7", + "displayName": "7 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_8", + "displayName": "8 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_9", + "displayName": "9 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_10", + "displayName": "10 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_11", + "displayName": "11 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_12", + "displayName": "12 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_13", + "displayName": "1 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_14", + "displayName": "2 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_15", + "displayName": "3 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_16", + "displayName": "4 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_17", + "displayName": "5 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_18", + "displayName": "6 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_19", + "displayName": "7 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_20", + "displayName": "8 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_21", + "displayName": "9 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_22", + "displayName": "10 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthfrom_23", + "displayName": "11 PM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthin", + "displayName": "\r\nMaximum Foreground Download Bandwidth (percentage) during Business Hours:\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthout", + "displayName": "\r\nMaximum Foreground Download Bandwidth (percentage) outside of Business Hours:\r\n", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto", + "displayName": "To: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_0", + "displayName": "12 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_1", + "displayName": "1 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_2", + "displayName": "2 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_3", + "displayName": "3 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_4", + "displayName": "4 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_5", + "displayName": "5 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_6", + "displayName": "6 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_7", + "displayName": "7 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_8", + "displayName": "8 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_9", + "displayName": "9 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_10", + "displayName": "10 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_11", + "displayName": "11 AM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_12", + "displayName": "12 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_13", + "displayName": "1 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_14", + "displayName": "2 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_15", + "displayName": "3 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_16", + "displayName": "4 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_17", + "displayName": "5 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_18", + "displayName": "6 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_19", + "displayName": "7 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_20", + "displayName": "8 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_21", + "displayName": "9 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_22", + "displayName": "10 PM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dosethourstolimitforegrounddownloadbandwidth_sethourstolimitforegrounddownloadbandwidthto_23", + "displayName": "11 PM", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deliveryoptimization_dovpnkeywords", + "displayName": "DO Vpn Keywords", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableadditionalsources", + "displayName": "Enable App Installer Additional Sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableadditionalsources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableadditionalsources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableadditionalsources_additionalsources", + "displayName": "Additional Sources: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableallowedsources", + "displayName": "Enable App Installer Allowed Sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableallowedsources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableallowedsources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableallowedsources_allowedsources", + "displayName": "Allowed Sources: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableappinstaller", + "displayName": "Enable App Installer", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableappinstaller_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableappinstaller_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enabledefaultsource", + "displayName": "Enable App Installer Default Source", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enabledefaultsource_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enabledefaultsource_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableexperimentalfeatures", + "displayName": "Enable App Installer Experimental Features", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableexperimentalfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enableexperimentalfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablehashoverride", + "displayName": "Enable App Installer Hash Override", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablehashoverride_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablehashoverride_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablelocalmanifestfiles", + "displayName": "Enable App Installer Local Manifest Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablelocalmanifestfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablelocalmanifestfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablemicrosoftstoresource", + "displayName": "Enable App Installer Microsoft Store Source", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablemicrosoftstoresource_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablemicrosoftstoresource_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablemsappinstallerprotocol", + "displayName": "Enable App Installer ms-appinstaller protocol", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablemsappinstallerprotocol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablemsappinstallerprotocol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablesettings", + "displayName": "Enable App Installer Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_enablesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_sourceautoupdateinterval", + "displayName": "Set App Installer Source Auto Update Interval In Minutes", + "options": [ + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_sourceautoupdateinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_sourceautoupdateinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_desktopappinstaller_sourceautoupdateinterval_sourceautoupdateinterval", + "displayName": "Source Auto Update Interval In Minutes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_configuresystemguardlaunch", + "displayName": "Configure System Guard Launch", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceguard_configuresystemguardlaunch_0", + "displayName": "Unmanaged Configurable by Administrative user", + "description": "Unmanaged Configurable by Administrative user" + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_configuresystemguardlaunch_1", + "displayName": "Unmanaged Enables Secure Launch if supported by hardware", + "description": "Unmanaged Enables Secure Launch if supported by hardware" + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_configuresystemguardlaunch_2", + "displayName": "Unmanaged Disables Secure Launch", + "description": "Unmanaged Disables Secure Launch" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_enablevirtualizationbasedsecurity", + "displayName": "Enable Virtualization Based Security", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceguard_enablevirtualizationbasedsecurity_0", + "displayName": "disable virtualization based security.", + "description": "disable virtualization based security." + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_enablevirtualizationbasedsecurity_1", + "displayName": "enable virtualization based security.", + "description": "enable virtualization based security." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_lsacfgflags", + "displayName": "Credential Guard", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceguard_lsacfgflags_0", + "displayName": "(Disabled) Turns off Credential Guard remotely if configured previously without UEFI Lock.", + "description": "(Disabled) Turns off Credential Guard remotely if configured previously without UEFI Lock." + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_lsacfgflags_1", + "displayName": "(Enabled with UEFI lock) Turns on Credential Guard with UEFI lock.", + "description": "(Enabled with UEFI lock) Turns on Credential Guard with UEFI lock." + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_lsacfgflags_2", + "displayName": "(Enabled without lock) Turns on Credential Guard without UEFI lock.", + "description": "(Enabled without lock) Turns on Credential Guard without UEFI lock." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_requireplatformsecurityfeatures", + "displayName": "Require Platform Security Features", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceguard_requireplatformsecurityfeatures_1", + "displayName": "Turns on VBS with Secure Boot.", + "description": "Turns on VBS with Secure Boot." + }, + { + "id": "device_vendor_msft_policy_config_deviceguard_requireplatformsecurityfeatures_3", + "displayName": "Turns on VBS with Secure Boot and direct memory access (DMA). DMA requires hardware support.", + "description": "Turns on VBS with Secure Boot and direct memory access (DMA). DMA requires hardware support." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_allowdevicehealthmonitoring", + "displayName": "Allow Device Health Monitoring", + "options": [ + { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_allowdevicehealthmonitoring_1", + "displayName": "The DeviceHealthMonitoring connection is enabled.", + "description": "The DeviceHealthMonitoring connection is enabled." + }, + { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_allowdevicehealthmonitoring_0", + "displayName": "The DeviceHealthMonitoring connection is disabled.", + "description": "The DeviceHealthMonitoring connection is disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_configdevicehealthmonitoringscope", + "displayName": "[Deprecated] Config Device Health Monitoring Scope", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_configdevicehealthmonitoringscope_v2_epm", + "displayName": "Config Device Health Monitoring Scope", + "options": { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_configdevicehealthmonitoringscope_v2_epm_privilegemanagement", + "displayName": "Privilege Management", + "description": null + } + }, + { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_configdevicehealthmonitoringserviceinstance", + "displayName": "[Deprecated] Config Device Health Monitoring Service Instance", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_configdevicehealthmonitoringuploaddestination", + "displayName": "[Deprecated] Config Device Health Monitoring Upload Destination", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicehealthmonitoring_configdevicehealthmonitoringuploaddestination_v2", + "displayName": "Config Device Health Monitoring Upload Destination", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdeviceids", + "displayName": "Allow installation of devices that match any of these device IDs", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdeviceids_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdeviceids_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdeviceids_deviceinstall_ids_allow_list", + "displayName": "Allowed device IDs", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdeviceinstanceids", + "displayName": "Allow installation of devices that match any of these device instance IDs", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdeviceinstanceids_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdeviceinstanceids_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdeviceinstanceids_deviceinstall_instance_ids_allow_list", + "displayName": "Allowed Instance IDs", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdevicesetupclasses", + "displayName": "Allow installation of devices using drivers that match these device setup classes", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdevicesetupclasses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdevicesetupclasses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_allowinstallationofmatchingdevicesetupclasses_deviceinstall_classes_allow_list", + "displayName": "Allowed classes", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_enableinstallationpolicylayering", + "displayName": "Apply layered order of evaluation for Allow and Prevent device installation policies across all device match criteria", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_enableinstallationpolicylayering_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_enableinstallationpolicylayering_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventdevicemetadatafromnetwork", + "displayName": "Prevent device metadata retrieval from the Internet", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventdevicemetadatafromnetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventdevicemetadatafromnetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofdevicesnotdescribedbyotherpolicysettings", + "displayName": "Prevent installation of devices not described by other policy settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofdevicesnotdescribedbyotherpolicysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofdevicesnotdescribedbyotherpolicysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceids", + "displayName": "Prevent installation of devices that match any of these device IDs", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceids_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceids_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceids_deviceinstall_ids_deny_list", + "displayName": "Prevented device IDs", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceids_deviceinstall_ids_deny_retroactive", + "displayName": "Also apply to matching devices that are already installed.", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceids_deviceinstall_ids_deny_retroactive_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceids_deviceinstall_ids_deny_retroactive_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceinstanceids", + "displayName": "Prevent installation of devices that match any of these device instance IDs", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceinstanceids_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceinstanceids_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceinstanceids_deviceinstall_instance_ids_deny_list", + "displayName": "Prevented Instance IDs", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceinstanceids_deviceinstall_instance_ids_deny_retroactive", + "displayName": "Also apply to matching devices that are already installed. (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceinstanceids_deviceinstall_instance_ids_deny_retroactive_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdeviceinstanceids_deviceinstall_instance_ids_deny_retroactive_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdevicesetupclasses", + "displayName": "Prevent installation of devices using drivers that match these device setup classes", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdevicesetupclasses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdevicesetupclasses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdevicesetupclasses_deviceinstall_classes_deny_list", + "displayName": "Prevented Classes", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdevicesetupclasses_deviceinstall_classes_deny_retroactive", + "displayName": "Also apply to matching devices that are already installed.", + "options": [ + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdevicesetupclasses_deviceinstall_classes_deny_retroactive_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_deviceinstallation_preventinstallationofmatchingdevicesetupclasses_deviceinstall_classes_deny_retroactive_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_devicelock_allowsimpledevicepassword", + "displayName": "Allow Simple Device Password", + "options": [ + { + "id": "device_vendor_msft_policy_config_devicelock_allowsimpledevicepassword_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_devicelock_allowsimpledevicepassword_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_devicelock_alphanumericdevicepasswordrequired", + "displayName": "Alphanumeric Device Password Required", + "options": [ + { + "id": "device_vendor_msft_policy_config_devicelock_alphanumericdevicepasswordrequired_0", + "displayName": "Password or Alphanumeric PIN required.", + "description": "Password or Alphanumeric PIN required." + }, + { + "id": "device_vendor_msft_policy_config_devicelock_alphanumericdevicepasswordrequired_1", + "displayName": "Password or Numeric PIN required.", + "description": "Password or Numeric PIN required." + }, + { + "id": "device_vendor_msft_policy_config_devicelock_alphanumericdevicepasswordrequired_2", + "displayName": "Password, Numeric PIN, or Alphanumeric PIN required.", + "description": "Password, Numeric PIN, or Alphanumeric PIN required." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_devicelock_devicepasswordenabled", + "displayName": "Device Password Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_devicelock_devicepasswordenabled_0", + "displayName": "Enabled", + "description": "Enabled" + }, + { + "id": "device_vendor_msft_policy_config_devicelock_devicepasswordenabled_1", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_devicelock_devicepasswordexpiration", + "displayName": "Device Password Expiration", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_devicepasswordhistory", + "displayName": "Device Password History", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_enforcelockscreenandlogonimage", + "displayName": "Enforce Lock Screen And Logon Image", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_enforcelockscreenprovider", + "displayName": "Enforce Lock Screen Provider", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_maxdevicepasswordfailedattempts", + "displayName": "Max Device Password Failed Attempts", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_maxinactivitytimedevicelock", + "displayName": "Max Inactivity Time Device Lock", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_maxinactivitytimedevicelockwithexternaldisplay", + "displayName": "[Deprecated] Max Inactivity Time Device Lock With External Display", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_mindevicepasswordcomplexcharacters", + "displayName": "Min Device Password Complex Characters", + "options": [ + { + "id": "device_vendor_msft_policy_config_devicelock_mindevicepasswordcomplexcharacters_1", + "displayName": "Digits only", + "description": "Digits only" + }, + { + "id": "device_vendor_msft_policy_config_devicelock_mindevicepasswordcomplexcharacters_2", + "displayName": "Digits and lowercase letters are required", + "description": "Digits and lowercase letters are required" + }, + { + "id": "device_vendor_msft_policy_config_devicelock_mindevicepasswordcomplexcharacters_3", + "displayName": "Digits lowercase letters and uppercase letters are required. Not supported in desktop Microsoft accounts and domain accounts", + "description": "Digits lowercase letters and uppercase letters are required. Not supported in desktop Microsoft accounts and domain accounts" + }, + { + "id": "device_vendor_msft_policy_config_devicelock_mindevicepasswordcomplexcharacters_4", + "displayName": "Digits lowercase letters uppercase letters and special characters are required. Not supported in desktop", + "description": "Digits lowercase letters uppercase letters and special characters are required. Not supported in desktop" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_devicelock_mindevicepasswordlength", + "displayName": "Min Device Password Length", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_minimumpasswordage", + "displayName": "Minimum Password Age", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_preventenablinglockscreencamera", + "displayName": "Prevent enabling lock screen camera", + "options": [ + { + "id": "device_vendor_msft_policy_config_devicelock_preventenablinglockscreencamera_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_preventenablinglockscreencamera_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_devicelock_preventlockscreenslideshow", + "displayName": "Prevent enabling lock screen slide show", + "options": [ + { + "id": "device_vendor_msft_policy_config_devicelock_preventlockscreenslideshow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_devicelock_preventlockscreenslideshow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_display_disableperprocessdpiforapps", + "displayName": "Disable Per Process Dpi For Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_display_enableperprocessdpi", + "displayName": "Enable Per Process Dpi", + "options": [ + { + "id": "device_vendor_msft_policy_config_display_enableperprocessdpi_0", + "displayName": "Disabled", + "description": "Disable." + }, + { + "id": "device_vendor_msft_policy_config_display_enableperprocessdpi_1", + "displayName": "Enabled", + "description": "Enable." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_display_enableperprocessdpiforapps", + "displayName": "Enable Per Process Dpi For Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_display_turnoffgdidpiscalingforapps", + "displayName": "Turn Off Gdi DPI Scaling For Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_display_turnongdidpiscalingforapps", + "displayName": "Turn On Gdi DPI Scaling For Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_dmaguard_deviceenumerationpolicy", + "displayName": "Device Enumeration Policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_dmaguard_deviceenumerationpolicy_0", + "displayName": "Block all (Most restrictive)", + "description": "Block all (Most restrictive)" + }, + { + "id": "device_vendor_msft_policy_config_dmaguard_deviceenumerationpolicy_1", + "displayName": "Only after log in/screen unlock", + "description": "Only after log in/screen unlock" + }, + { + "id": "device_vendor_msft_policy_config_dmaguard_deviceenumerationpolicy_2", + "displayName": "Allow all (Least restrictive)", + "description": "Allow all (Least restrictive)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_eap_allowtls1_3", + "displayName": "Allow TLS13", + "options": [ + { + "id": "device_vendor_msft_policy_config_eap_allowtls1_3_0", + "displayName": "Use of TLS version 1.3 is not allowed for authentication.", + "description": "Use of TLS version 1.3 is not allowed for authentication." + }, + { + "id": "device_vendor_msft_policy_config_eap_allowtls1_3_1", + "displayName": "Use of TLS version 1.3 is allowed for authentication.", + "description": "Use of TLS version 1.3 is allowed for authentication." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_education_enableeduthemes", + "displayName": "Enable Edu Themes", + "options": [ + { + "id": "device_vendor_msft_policy_config_education_enableeduthemes_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_education_enableeduthemes_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_education_iseducationenvironment", + "displayName": "Is Education Environment", + "options": [ + { + "id": "device_vendor_msft_policy_config_education_iseducationenvironment_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_education_iseducationenvironment_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_customizeconsentsettings", + "displayName": "Customize consent settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_errorreporting_customizeconsentsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_customizeconsentsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_customizeconsentsettings_werconsentcustomize", + "displayName": "Customize consent settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_customizeconsentsettings_werconsentcustomize_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_customizeconsentsettings_werconsentcustomize_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_disablewindowserrorreporting", + "displayName": "Disable Windows Error Reporting", + "options": [ + { + "id": "device_vendor_msft_policy_config_errorreporting_disablewindowserrorreporting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_disablewindowserrorreporting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_displayerrornotification", + "displayName": "Display Error Notification", + "options": [ + { + "id": "device_vendor_msft_policy_config_errorreporting_displayerrornotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_displayerrornotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_donotsendadditionaldata", + "displayName": "Do not send additional data", + "options": [ + { + "id": "device_vendor_msft_policy_config_errorreporting_donotsendadditionaldata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_donotsendadditionaldata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_preventcriticalerrordisplay", + "displayName": "Prevent display of the user interface for critical errors", + "options": [ + { + "id": "device_vendor_msft_policy_config_errorreporting_preventcriticalerrordisplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_errorreporting_preventcriticalerrordisplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_controleventlogbehavior", + "displayName": "Control Event Log behavior when the log file reaches its maximum size", + "options": [ + { + "id": "device_vendor_msft_policy_config_eventlogservice_controleventlogbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_controleventlogbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizeapplicationlog", + "displayName": "Specify the maximum log file size (KB)", + "options": [ + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizeapplicationlog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizeapplicationlog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizeapplicationlog_channel_logmaxsize", + "displayName": "Maximum Log Size (KB)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizesecuritylog", + "displayName": "Specify the maximum log file size (KB)", + "options": [ + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizesecuritylog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizesecuritylog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizesecuritylog_channel_logmaxsize", + "displayName": "Maximum Log Size (KB)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizesystemlog", + "displayName": "Specify the maximum log file size (KB)", + "options": [ + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizesystemlog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizesystemlog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_eventlogservice_specifymaximumfilesizesystemlog_channel_logmaxsize", + "displayName": "Maximum Log Size (KB)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_experience_allowclipboardhistory", + "displayName": "Allow Clipboard History", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowclipboardhistory_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowclipboardhistory_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowcortana", + "displayName": "Allow Cortana", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowcortana_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowcortana_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowdevicediscovery", + "displayName": "Allow Device Discovery", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowdevicediscovery_0", + "displayName": "Block", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowdevicediscovery_1", + "displayName": "Allow", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowfindmydevice", + "displayName": "Allow Find My Device", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowfindmydevice_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowfindmydevice_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowmanualmdmunenrollment", + "displayName": "Allow Manual MDM Unenrollment", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowmanualmdmunenrollment_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowmanualmdmunenrollment_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowsaveasofofficefiles", + "displayName": "Allow Save As Of Office Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowsaveasofofficefiles_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowsaveasofofficefiles_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowscreencapture", + "displayName": "Allow Screen Capture", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowscreencapture_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowscreencapture_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowsimerrordialogpromptwhennosim", + "displayName": "Allow SIM Error Dialog Prompt When No SIM", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowsimerrordialogpromptwhennosim_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowsimerrordialogpromptwhennosim_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowsyncmysettings", + "displayName": "Allow Sync My Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowsyncmysettings_0", + "displayName": "Block", + "description": "Sync settings are not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowsyncmysettings_1", + "displayName": "Allow", + "description": "Sync settings allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowwindowsconsumerfeatures", + "displayName": "Allow Windows Consumer Features", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowwindowsconsumerfeatures_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowwindowsconsumerfeatures_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_allowwindowstips", + "displayName": "Allow Windows Tips", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_allowwindowstips_0", + "displayName": "Block", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_experience_allowwindowstips_1", + "displayName": "Allow", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_configurechaticon", + "displayName": "Configure Chat Icon", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_configurechaticon_0", + "displayName": "Windows default", + "description": "Not configured" + }, + { + "id": "device_vendor_msft_policy_config_experience_configurechaticon_1", + "displayName": "Show", + "description": "Show" + }, + { + "id": "device_vendor_msft_policy_config_experience_configurechaticon_2", + "displayName": "Hide", + "description": "Hide" + }, + { + "id": "device_vendor_msft_policy_config_experience_configurechaticon_3", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_disablecloudoptimizedcontent", + "displayName": "Disable Cloud Optimized Content", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_disablecloudoptimizedcontent_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_experience_disablecloudoptimizedcontent_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_disableconsumeraccountstatecontent", + "displayName": "Disable Consumer Account State Content", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_disableconsumeraccountstatecontent_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_experience_disableconsumeraccountstatecontent_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_donotshowfeedbacknotifications", + "displayName": "Do Not Show Feedback Notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_donotshowfeedbacknotifications_0", + "displayName": "Feedback notifications are not disabled. The actual state of feedback notifications on the device will then depend on what GP has configured or what the user has configured locally.", + "description": "Feedback notifications are not disabled. The actual state of feedback notifications on the device will then depend on what GP has configured or what the user has configured locally." + }, + { + "id": "device_vendor_msft_policy_config_experience_donotshowfeedbacknotifications_1", + "displayName": "Feedback notifications are disabled.", + "description": "Feedback notifications are disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_donotsyncbrowsersettings", + "displayName": "Do Not Sync Browser Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_donotsyncbrowsersettings_2", + "displayName": "Disable Syncing", + "description": "Disable Syncing" + }, + { + "id": "device_vendor_msft_policy_config_experience_donotsyncbrowsersettings_0", + "displayName": "Allow syncing", + "description": "Allow syncing" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_preventusersfromturningonbrowsersyncing", + "displayName": "Prevent Users From Turning On Browser Syncing", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_preventusersfromturningonbrowsersyncing_0", + "displayName": "Disabled", + "description": "Allowed/turned on. Users can sync the browser settings." + }, + { + "id": "device_vendor_msft_policy_config_experience_preventusersfromturningonbrowsersyncing_1", + "displayName": "Enabled", + "description": "Prevented/turned off." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_experience_showlockonusertile", + "displayName": "Show Lock On User Tile", + "options": [ + { + "id": "device_vendor_msft_policy_config_experience_showlockonusertile_0", + "displayName": "Disabled", + "description": "The lock option is not displayed in the User Tile menu." + }, + { + "id": "device_vendor_msft_policy_config_experience_showlockonusertile_1", + "displayName": "Enabled", + "description": "The lock option is displayed in the User Tile menu." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_exploitguard_exploitprotectionsettings", + "displayName": "Exploit Protection Settings", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_federatedauthentication_enablewebsigninforprimaryuser", + "displayName": "Enable Web Sign In For Primary User", + "options": [ + { + "id": "device_vendor_msft_policy_config_federatedauthentication_enablewebsigninforprimaryuser_0", + "displayName": "Feature defaults as appropriate for edition and device capabilities. As of now, all editions/devices exhibit Disabled behavior by default. However, this may change for future editions/devices.", + "description": "Feature defaults as appropriate for edition and device capabilities. As of now, all editions/devices exhibit Disabled behavior by default. However, this may change for future editions/devices." + }, + { + "id": "device_vendor_msft_policy_config_federatedauthentication_enablewebsigninforprimaryuser_1", + "displayName": "Enabled. Web Sign-in Credential Provider will be enabled for device sign-in.", + "description": "Enabled. Web Sign-in Credential Provider will be enabled for device sign-in." + }, + { + "id": "device_vendor_msft_policy_config_federatedauthentication_enablewebsigninforprimaryuser_2", + "displayName": "Disabled. Web Sign-in Credential Provider will be not be enabled for device sign-in.", + "description": "Disabled. Web Sign-in Credential Provider will be not be enabled for device sign-in." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_feeds_feedsenabled", + "displayName": "Enable News and interests", + "options": [ + { + "id": "device_vendor_msft_policy_config_feeds_feedsenabled_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_feeds_feedsenabled_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_allowoptiontoshownetwork", + "displayName": "Allow Option To Show Network", + "options": [ + { + "id": "device_vendor_msft_policy_config_fileexplorer_allowoptiontoshownetwork_0", + "displayName": "Not Allowed.", + "description": "Not Allowed." + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_allowoptiontoshownetwork_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_allowoptiontoshowthispc", + "displayName": "Allow Option To Show This PC", + "options": [ + { + "id": "device_vendor_msft_policy_config_fileexplorer_allowoptiontoshowthispc_0", + "displayName": "Not Allowed.", + "description": "Not Allowed." + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_allowoptiontoshowthispc_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_disablegraphrecentitems", + "displayName": "Disable Graph Recent Items", + "options": [ + { + "id": "device_vendor_msft_policy_config_fileexplorer_disablegraphrecentitems_0", + "displayName": "File Explorer will request cloud file metadata and display it in the Quick access view.", + "description": "File Explorer will request cloud file metadata and display it in the Quick access view." + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_disablegraphrecentitems_1", + "displayName": "File Explorer will not request cloud file metadata or display it in the Quick access view.", + "description": "File Explorer will not request cloud file metadata or display it in the Quick access view." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations", + "displayName": "Set Allowed Folder Locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_0", + "displayName": "Access to all folder locations.", + "description": "Access to all folder locations." + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_13", + "displayName": "Documents, Pictures, Downloads", + "description": "Documents, Pictures, Downloads" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_15", + "displayName": "Desktop, Documents, Pictures, Downloads", + "description": "Desktop, Documents, Pictures, Downloads" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_31", + "displayName": "Desktop, Documents, Pictures, Downloads, Network", + "description": "Desktop, Documents, Pictures, Downloads, Network" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_47", + "displayName": "This PC, Desktop, Documents, Pictures, Downloads", + "description": "This PC, Desktop, Documents, Pictures, Downloads" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_63", + "displayName": "This PC, Desktop, Documents, Pictures, Downloads, Network", + "description": "This PC, Desktop, Documents, Pictures, Downloads, Network" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations", + "displayName": "Set Allowed Storage Locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_0", + "displayName": "Access to all storage locations.", + "description": "Access to all storage locations." + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_1", + "displayName": "Removable Drives", + "description": "Removable Drives" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_2", + "displayName": "Sync roots", + "description": "Sync roots" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_3", + "displayName": "Removable Drives, Sync roots", + "description": "Removable Drives, Sync roots" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_4", + "displayName": "Local Drives", + "description": "Local Drives" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_5", + "displayName": "Removable Drives, Local Drives", + "description": "Removable Drives, Local Drives" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_6", + "displayName": "Sync Roots, Local Drives", + "description": "Sync Roots, Local Drives" + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_7", + "displayName": "Removable Drives, Sync Roots, Local Drives", + "description": "Removable Drives, Sync Roots, Local Drives" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_turnoffdataexecutionpreventionforexplorer", + "displayName": "Turn off Data Execution Prevention for Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_fileexplorer_turnoffdataexecutionpreventionforexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_turnoffdataexecutionpreventionforexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_turnoffheapterminationoncorruption", + "displayName": "Turn off heap termination on corruption", + "options": [ + { + "id": "device_vendor_msft_policy_config_fileexplorer_turnoffheapterminationoncorruption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fileexplorer_turnoffheapterminationoncorruption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_filesystem_devdriveattachpolicy", + "displayName": "Dev drive filter attach policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_filesystem_devdriveattachpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_filesystem_devdriveattachpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_filesystem_devdriveattachpolicy_devdriveattachpolicy", + "displayName": "Filter list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_filesystem_enabledevdrive", + "displayName": "Enable dev drive", + "options": [ + { + "id": "device_vendor_msft_policy_config_filesystem_enabledevdrive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_filesystem_enabledevdrive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_filesystem_enabledevdrive_devdriveallowantivirusfilter", + "displayName": "Let antivirus filter protect dev drives (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_filesystem_enabledevdrive_devdriveallowantivirusfilter_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_filesystem_enabledevdrive_devdriveallowantivirusfilter_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_cleanupinvalidsessions", + "displayName": "Clean-up Invalid Sessions", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_cleanupinvalidsessions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_cleanupinvalidsessions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_roamrecyclebin", + "displayName": "Roam Recycle Bin", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_roamrecyclebin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_roamrecyclebin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_vhdcompactdisk", + "displayName": "VHD Compact Disk", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_vhdcompactdisk_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix_vhdcompactdisk_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdcachedirectory", + "displayName": "Cache Directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdcachedirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdcachedirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdcachedirectory_ccdcachedirectory", + "displayName": "Cache Directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdproxydirectory", + "displayName": "Proxy Directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdproxydirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdproxydirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdproxydirectory_ccdproxydirectory", + "displayName": "Proxy Directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdwritecachedirectory", + "displayName": "Write Cache Directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdwritecachedirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdwritecachedirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~ccd_ccdwritecachedirectory_ccdwritecachedirectory", + "displayName": "Write Cache Directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingadcomputergroupprocess", + "displayName": "AD Computer Group Process", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingadcomputergroupprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingadcomputergroupprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingdriverinterface", + "displayName": "Driver Interface", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingdriverinterface_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingdriverinterface_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingenabled", + "displayName": "Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingenabled_loggingenabled", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingenabled_loggingenabled_0", + "displayName": "Logging Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingenabled_loggingenabled_1", + "displayName": "Specific Logs Only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingenabled_loggingenabled_2", + "displayName": "Enable All Logs", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingfontvisibility", + "displayName": "Font Visibility", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingfontvisibility_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingfontvisibility_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingfrxlauncher", + "displayName": "FrxLauncher", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingfrxlauncher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingfrxlauncher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingieplugin", + "displayName": "IE plugin", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingieplugin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingieplugin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingjavaruleeditor", + "displayName": "Java rule editor", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingjavaruleeditor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingjavaruleeditor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_logginglogdirectory", + "displayName": "Log Directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_logginglogdirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_logginglogdirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_logginglogdirectory_logginglogdirectory", + "displayName": "Log Directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_logginglogkeepingperiod", + "displayName": "Log Keeping Period", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_logginglogkeepingperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_logginglogkeepingperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_logginglogkeepingperiod_logginglogkeepingperiod", + "displayName": "Log Keeping Period (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingnetwork", + "displayName": "Network", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingnetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingnetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingodfccontainer", + "displayName": "ODFC Container", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingodfccontainer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingodfccontainer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprintervisibility", + "displayName": "Printer Visibility", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprintervisibility_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprintervisibility_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprocessstart", + "displayName": "Process Start", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprocessstart_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprocessstart_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprofileconfigurationtool", + "displayName": "Profile Configuration Tool", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprofileconfigurationtool_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprofileconfigurationtool_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprofilecontainer", + "displayName": "Profile Container", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprofilecontainer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingprofilecontainer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingrulecompilation", + "displayName": "Rule Compilation", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingrulecompilation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingrulecompilation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingruleeditor", + "displayName": "Rule Editor", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingruleeditor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingruleeditor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingsearchplugin", + "displayName": "Search Plugin", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingsearchplugin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingsearchplugin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingsearchroaming", + "displayName": "Search Roaming", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingsearchroaming_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingsearchroaming_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingservices", + "displayName": "Services", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingservices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~logging_loggingservices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcaccessnetworkascomputer", + "displayName": "Access Network as Computer Object", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcaccessnetworkascomputer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcaccessnetworkascomputer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcattachedvhdsddl", + "displayName": "Attached VHD SDDL", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcattachedvhdsddl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcattachedvhdsddl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcattachedvhdsddl_odfcattachedvhdsddl", + "displayName": "Attached VHD SDDL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeofficeactivation", + "displayName": "Include Office Activation", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeofficeactivation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeofficeactivation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonedrive", + "displayName": "Include OneDrive", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonedrive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonedrive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonenote", + "displayName": "Include OneNote", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonenoteuwp", + "displayName": "Include OneNote UWP", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonenoteuwp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeonenoteuwp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeoutlook", + "displayName": "Include Outlook", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeoutlookpersonalization", + "displayName": "Include Outlook Personalization", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeoutlookpersonalization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeoutlookpersonalization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludesharepoint", + "displayName": "Include SharePoint", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludesharepoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludesharepoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeskype", + "displayName": "Include Skype", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeskype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeskype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeteams", + "displayName": "Include Teams", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeteams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcincludeteams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcisdynamicvhd", + "displayName": "Is Dynamic (VHD)", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcisdynamicvhd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcisdynamicvhd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfclockedretrycount", + "displayName": "Locked Retry Count", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfclockedretrycount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfclockedretrycount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfclockedretrycount_odfclockedretrycount", + "displayName": "Locked Retry Count (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfclockedretryinterval", + "displayName": "Locked Retry Interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfclockedretryinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfclockedretryinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfclockedretryinterval_odfclockedretryinterval", + "displayName": "Locked Retry Interval (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcmirrorlocalosttovhd", + "displayName": "Mirror Local OST To VHD", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcmirrorlocalosttovhd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcmirrorlocalosttovhd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcmirrorlocalosttovhd_odfcmirrorlocalosttovhd", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcmirrorlocalosttovhd_odfcmirrorlocalosttovhd_0", + "displayName": "Do not mirror OST to VHD", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcmirrorlocalosttovhd_odfcmirrorlocalosttovhd_1", + "displayName": "Copy OST to VHD", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcmirrorlocalosttovhd_odfcmirrorlocalosttovhd_2", + "displayName": "Move OST to VHD", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcnumbersessionvhdstokeep", + "displayName": "Number Session VHD(s) To Keep", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcnumbersessionvhdstokeep_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcnumbersessionvhdstokeep_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcnumbersessionvhdstokeep_odfcnumbersessionvhdstokeep", + "displayName": "Number Session VHD(s) To Keep (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcodfcenabled", + "displayName": "Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcodfcenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcodfcenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcoutlookcachedmode", + "displayName": "Outlook Cached Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcoutlookcachedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcoutlookcachedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcoutlookfolderpath", + "displayName": "Outlook Folder Path", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcoutlookfolderpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcoutlookfolderpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcoutlookfolderpath_odfcoutlookfolderpath", + "displayName": "Outlook Folder Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcpreventloginwithfailure", + "displayName": "Prevent Login With Failure", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcpreventloginwithfailure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcpreventloginwithfailure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcpreventloginwithtempprofile", + "displayName": "Prevent Login With Temp Profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcpreventloginwithtempprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcpreventloginwithtempprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcreattachcount", + "displayName": "Reattach Count", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcreattachcount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcreattachcount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcreattachcount_odfcreattachcount", + "displayName": "Reattach Count (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcreattachinterval", + "displayName": "Reattach Interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcreattachinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcreattachinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcreattachinterval_odfcreattachinterval", + "displayName": "Reattach Interval (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcredirecttype", + "displayName": "Redirect Type", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcredirecttype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcredirecttype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcredirecttype_odfcredirecttype", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcredirecttype_odfcredirecttype_1", + "displayName": "Legacy Redirection", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcredirecttype_odfcredirecttype_2", + "displayName": "FSLogix Redirection", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcrefreshuserpolicy", + "displayName": "Refresh User Policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcrefreshuserpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcrefreshuserpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcremoveorphanedostfilesonlogoff", + "displayName": "Remove Orphaned OST Files On Logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcremoveorphanedostfilesonlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcremoveorphanedostfilesonlogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcroamsearch", + "displayName": "Roam Search", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcroamsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcroamsearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcroamsearch_odfcroamsearch", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcroamsearch_odfcroamsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcroamsearch_odfcroamsearch_1", + "displayName": "Single-user Search", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcroamsearch_odfcroamsearch_2", + "displayName": "Multi-user Search", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcsizeinmbs", + "displayName": "Size In MBs", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcsizeinmbs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcsizeinmbs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcsizeinmbs_odfcsizeinmbs", + "displayName": "Size In MBs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdaccessmode", + "displayName": "VHD Access Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdaccessmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdaccessmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdaccessmode_odfcvhdaccessmode", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdaccessmode_odfcvhdaccessmode_0", + "displayName": "Direct Access", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdaccessmode_odfcvhdaccessmode_1", + "displayName": "DiffDisk On Network", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdaccessmode_odfcvhdaccessmode_2", + "displayName": "Local DiffDisk", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdaccessmode_odfcvhdaccessmode_3", + "displayName": "Unique Disk per Session", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdlocations", + "displayName": "VHD Locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdlocations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdlocations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdlocations_odfcvhdlocations", + "displayName": "VHD Locations (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdxsectorsize", + "displayName": "VHDX Sector Size", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdxsectorsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdxsectorsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdxsectorsize_odfcvhdxsectorsize", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdxsectorsize_odfcvhdxsectorsize_512", + "displayName": "512 bytes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvhdxsectorsize_odfcvhdxsectorsize_4096", + "displayName": "4 KB", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumetypevhdorvhdx", + "displayName": "Volume Type (VHD or VHDX)", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumetypevhdorvhdx_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumetypevhdorvhdx_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumetypevhdorvhdx_odfcvolumetypevhdorvhdx", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumetypevhdorvhdx_odfcvolumetypevhdorvhdx_vhd", + "displayName": "VHD", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumetypevhdorvhdx_odfcvolumetypevhdorvhdx_vhdx", + "displayName": "VHDX", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumewaittimemilliseconds", + "displayName": "Volume Wait Time (milliseconds)", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumewaittimemilliseconds_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumewaittimemilliseconds_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc_odfcvolumewaittimemilliseconds_odfcvolumewaittimemilliseconds", + "displayName": "Volume Wait Time (milliseconds) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdlocations", + "displayName": "CCD Locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdlocations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdlocations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdlocations_odfcccdlocations", + "displayName": "CCD Locations (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdmaxcachesizeinmbs", + "displayName": "CCD Max Cache Size in MBs", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdmaxcachesizeinmbs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdmaxcachesizeinmbs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdmaxcachesizeinmbs_odfcccdmaxcachesizeinmbs", + "displayName": "CCD Max Cache Size in MBs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdunregistertimeout", + "displayName": "CCD Unregister Timeout", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdunregistertimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdunregistertimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcccdunregistertimeout_odfcccdunregistertimeout", + "displayName": "CCD Unregister Timeout (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcclearcacheonforcedunregister", + "displayName": "Clear Cache On Forced Unregister", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcclearcacheonforcedunregister_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcclearcacheonforcedunregister_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcclearcacheonlogoff", + "displayName": "Clear Cache On Logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcclearcacheonlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfcclearcacheonlogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfchealthyprovidersrequiredforregister", + "displayName": "Healthy Providers Required For Register", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfchealthyprovidersrequiredforregister_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfchealthyprovidersrequiredforregister_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfchealthyprovidersrequiredforregister_odfchealthyprovidersrequiredforregister", + "displayName": "Healthy Providers Required For Register (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfchealthyprovidersrequiredforunregister", + "displayName": "Healthy Providers Required For Unregister", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfchealthyprovidersrequiredforunregister_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfchealthyprovidersrequiredforunregister_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_ccd_odfchealthyprovidersrequiredforunregister_odfchealthyprovidersrequiredforunregister", + "displayName": "Healthy Providers Required For Unregister (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcdiffdiskparentfolderpath", + "displayName": "Diff Disk Parent Folder Path", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcdiffdiskparentfolderpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcdiffdiskparentfolderpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcdiffdiskparentfolderpath_odfcdiffdiskparentfolderpath", + "displayName": "Diff Disk Parent Folder Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcflipflopprofiledirectoryname", + "displayName": "Flip Flop Profile Directory Name", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcflipflopprofiledirectoryname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcflipflopprofiledirectoryname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcnoprofilecontainingfolder", + "displayName": "No Profile Containing Folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcnoprofilecontainingfolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcnoprofilecontainingfolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcsiddirectorynamematch", + "displayName": "SID Directory Name Match", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcsiddirectorynamematch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcsiddirectorynamematch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcsiddirectorynamematch_odfcsiddirectorynamematch", + "displayName": "SID Directory Name Match (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcsiddirectorynamepattern", + "displayName": "SID Directory Name Pattern", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcsiddirectorynamepattern_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcsiddirectorynamepattern_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcsiddirectorynamepattern_odfcsiddirectorynamepattern", + "displayName": "SID Directory Name Pattern (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcvhdnamematch", + "displayName": "VHD Name Match", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcvhdnamematch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcvhdnamematch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcvhdnamematch_odfcvhdnamematch", + "displayName": "VHD Name Match (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcvhdnamepattern", + "displayName": "VHD Name Pattern", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcvhdnamepattern_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcvhdnamepattern_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~odfc~odfc_containeranddirectorynaming_odfcvhdnamepattern_odfcvhdnamepattern", + "displayName": "VHD Name Pattern (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesaccessnetworkascomputer", + "displayName": "Access Network as Computer Object", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesaccessnetworkascomputer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesaccessnetworkascomputer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesattachedvhdsddl", + "displayName": "Attached VHD SDDL", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesattachedvhdsddl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesattachedvhdsddl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesattachedvhdsddl_profilesattachedvhdsddl", + "displayName": "Attached VHD SDDL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilescleanoutnotifications", + "displayName": "Clean Out Notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilescleanoutnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilescleanoutnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesdeletelocalprofilewhenvhdshouldapply", + "displayName": "Delete Local Profile When VHD Should Apply", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesdeletelocalprofilewhenvhdshouldapply_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesdeletelocalprofilewhenvhdshouldapply_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesenabled", + "displayName": "Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesinstallappxpackages", + "displayName": "Install Appx Packages", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesinstallappxpackages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesinstallappxpackages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesisdynamicvhd", + "displayName": "Is Dynamic (VHD)", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesisdynamicvhd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesisdynamicvhd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileskeeplocaldirectoryafterlogoff", + "displayName": "Keep Local Directory (after logoff)", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileskeeplocaldirectoryafterlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileskeeplocaldirectoryafterlogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileslockedretrycount", + "displayName": "Locked Retry Count", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileslockedretrycount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileslockedretrycount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileslockedretrycount_profileslockedretrycount", + "displayName": "Locked Retry Count (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileslockedretryinterval", + "displayName": "Locked Retry Interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileslockedretryinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileslockedretryinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profileslockedretryinterval_profileslockedretryinterval", + "displayName": "Locked Retry Interval (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesoutlookcachedmode", + "displayName": "Outlook Cached Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesoutlookcachedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesoutlookcachedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilespreventloginwithfailure", + "displayName": "Prevent Login With Failure", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilespreventloginwithfailure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilespreventloginwithfailure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilespreventloginwithtempprofile", + "displayName": "Prevent Login With Temp Profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilespreventloginwithtempprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilespreventloginwithtempprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiledirectorysddl", + "displayName": "Profile Directory SDDL", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiledirectorysddl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiledirectorysddl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiledirectorysddl_profilesprofiledirectorysddl", + "displayName": "Profile Directory SDDL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiletype", + "displayName": "Profile Type", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiletype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiletype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiletype_profilesprofiletype", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiletype_profilesprofiletype_0", + "displayName": "Normal Profile", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiletype_profilesprofiletype_1", + "displayName": "Read / Write Profile", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiletype_profilesprofiletype_2", + "displayName": "Read Only Profile", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesprofiletype_profilesprofiletype_3", + "displayName": "Read / Write profile - fallback to Read Only", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesreattachcount", + "displayName": "Reattach Count", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesreattachcount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesreattachcount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesreattachcount_profilesreattachcount", + "displayName": "Reattach Count (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesreattachinterval", + "displayName": "Reattach Interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesreattachinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesreattachinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesreattachinterval_profilesreattachinterval", + "displayName": "Reattach Interval (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesrebootonuserlogoff", + "displayName": "Reboot On User Logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesrebootonuserlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesrebootonuserlogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesrebootonuserlogoff_profilesrebootonuserlogoff", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesrebootonuserlogoff_profilesrebootonuserlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesrebootonuserlogoff_profilesrebootonuserlogoff_1", + "displayName": "Reboot on any logoff", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesrebootonuserlogoff_profilesrebootonuserlogoff_2", + "displayName": "Reboot only on any FSLogix Profile logoff", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirectionxmlsourcefolder", + "displayName": "Redirection XML Source Folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirectionxmlsourcefolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirectionxmlsourcefolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirectionxmlsourcefolder_profilesredirectionxmlsourcefolder", + "displayName": "Redirection XML Source Folder (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirecttype", + "displayName": "Redirect Type", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirecttype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirecttype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirecttype_profilesredirecttype", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirecttype_profilesredirecttype_1", + "displayName": "Legacy Redirection", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesredirecttype_profilesredirecttype_2", + "displayName": "FSLogix Redirection", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesremoveorphanedostfilesonlogoff", + "displayName": "Remove Orphaned OST Files On Logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesremoveorphanedostfilesonlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesremoveorphanedostfilesonlogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamidentity", + "displayName": "Roam Identity", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamidentity_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamidentity_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamsearch", + "displayName": "Roam Search", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamsearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamsearch_profilesroamsearch", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamsearch_profilesroamsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamsearch_profilesroamsearch_1", + "displayName": "Single-user Search", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesroamsearch_profilesroamsearch_2", + "displayName": "Multi-user Search", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessettempfolderstolocalpath", + "displayName": "Set Temp Folders to Local Path", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessettempfolderstolocalpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessettempfolderstolocalpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessettempfolderstolocalpath_profilessettempfolderstolocalpath", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessettempfolderstolocalpath_profilessettempfolderstolocalpath_0", + "displayName": "Take no action", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessettempfolderstolocalpath_profilessettempfolderstolocalpath_1", + "displayName": "Redirect TEMP and TMP to local drive", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessettempfolderstolocalpath_profilessettempfolderstolocalpath_2", + "displayName": "Redirect INetCache to local drive", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessettempfolderstolocalpath_profilessettempfolderstolocalpath_3", + "displayName": "Redirect TEMP, TMP and INetCache to local drive", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesshutdownonuserlogoff", + "displayName": "Shutdown On User Logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesshutdownonuserlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesshutdownonuserlogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesshutdownonuserlogoff_profilesshutdownonuserlogoff", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesshutdownonuserlogoff_profilesshutdownonuserlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesshutdownonuserlogoff_profilesshutdownonuserlogoff_1", + "displayName": "Shutdown on any logoff", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesshutdownonuserlogoff_profilesshutdownonuserlogoff_2", + "displayName": "Shutdown on any FSLogix Profile logoff", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessiddirectorysddl", + "displayName": "SID Directory SDDL", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessiddirectorysddl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessiddirectorysddl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessiddirectorysddl_profilessiddirectorysddl", + "displayName": "SID Directory SDDL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessizeinmbs", + "displayName": "Size In MBs", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessizeinmbs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessizeinmbs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilessizeinmbs_profilessizeinmbs", + "displayName": "Size In MBs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdlocations", + "displayName": "VHD Locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdlocations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdlocations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdlocations_profilesvhdlocations", + "displayName": "VHD Locations (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdxsectorsize", + "displayName": "VHDX Sector Size", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdxsectorsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdxsectorsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdxsectorsize_profilesvhdxsectorsize", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdxsectorsize_profilesvhdxsectorsize_512", + "displayName": "512 bytes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvhdxsectorsize_profilesvhdxsectorsize_4096", + "displayName": "4 KB", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvolumewaittimemilliseconds", + "displayName": "Volume Wait Time (milliseconds)", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvolumewaittimemilliseconds_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvolumewaittimemilliseconds_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles_profilesvolumewaittimemilliseconds_profilesvolumewaittimemilliseconds", + "displayName": "Volume Wait Time (milliseconds) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdlocations", + "displayName": "CCD Locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdlocations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdlocations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdlocations_profilesccdlocations", + "displayName": "CCD Locations (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdmaxcachesizeinmbs", + "displayName": "CCD Max Cache Size in MBs", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdmaxcachesizeinmbs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdmaxcachesizeinmbs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdmaxcachesizeinmbs_profilesccdmaxcachesizeinmbs", + "displayName": "CCD Max Cache Size in MBs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdunregistertimeout", + "displayName": "CCD Unregister Timeout", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdunregistertimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdunregistertimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesccdunregistertimeout_profilesccdunregistertimeout", + "displayName": "CCD Unregister Timeout (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesclearcacheonforcedunregister", + "displayName": "Clear Cache on Forced Unregister", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesclearcacheonforcedunregister_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesclearcacheonforcedunregister_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesclearcacheonlogoff", + "displayName": "Clear Cache on Logoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesclearcacheonlogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profilesclearcacheonlogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profileshealthyprovidersrequiredforregister", + "displayName": "Healthy Providers Required For Register", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profileshealthyprovidersrequiredforregister_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profileshealthyprovidersrequiredforregister_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profileshealthyprovidersrequiredforregister_profileshealthyprovidersrequiredforregister", + "displayName": "Healthy Providers Required For Register (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profileshealthyprovidersrequiredforunregister", + "displayName": "Healthy Providers Required For Unregister", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profileshealthyprovidersrequiredforunregister_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profileshealthyprovidersrequiredforunregister_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_ccd_profileshealthyprovidersrequiredforunregister_profileshealthyprovidersrequiredforunregister", + "displayName": "Healthy Providers Required For Unregister (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesdiffdiskparentfolderpath", + "displayName": "Diff Disk Parent Folder Path", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesdiffdiskparentfolderpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesdiffdiskparentfolderpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesdiffdiskparentfolderpath_profilesdiffdiskparentfolderpath", + "displayName": "Diff Disk Parent Folder Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesflipflopprofiledirectoryname", + "displayName": "Flip Flop Profile Directory Name", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesflipflopprofiledirectoryname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesflipflopprofiledirectoryname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesnoprofilecontainingfolder", + "displayName": "No Profile Containing Folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesnoprofilecontainingfolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesnoprofilecontainingfolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilessiddirectorynamematch", + "displayName": "SID Directory Name Match", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilessiddirectorynamematch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilessiddirectorynamematch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilessiddirectorynamematch_profilessiddirectorynamematch", + "displayName": "SID Directory Name Match (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilessiddirectorynamepattern", + "displayName": "SID Directory Name Pattern", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilessiddirectorynamepattern_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilessiddirectorynamepattern_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilessiddirectorynamepattern_profilessiddirectorynamepattern", + "displayName": "SID Directory Name Pattern (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvhdnamematch", + "displayName": "VHD Name Match", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvhdnamematch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvhdnamematch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvhdnamematch_profilesvhdnamematch", + "displayName": "VHD Name Match (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvhdnamepattern", + "displayName": "VHD Name Pattern", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvhdnamepattern_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvhdnamepattern_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvhdnamepattern_profilesvhdnamepattern", + "displayName": "VHD Name Pattern (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvolumetypevhdorvhdx", + "displayName": "Volume Type (VHD or VHDX)", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvolumetypevhdorvhdx_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvolumetypevhdorvhdx_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvolumetypevhdorvhdx_profilesvolumetypevhdorvhdx", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvolumetypevhdorvhdx_profilesvolumetypevhdorvhdx_vhd", + "displayName": "VHD", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_fslogixv1~policy~fslogix~profiles~profiles_containeranddirectorynaming_profilesvolumetypevhdorvhdx_profilesvolumetypevhdorvhdx_vhdx", + "displayName": "VHDX", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_games_allowadvancedgamingservices", + "displayName": "Allow Advanced Gaming Services", + "options": [ + { + "id": "device_vendor_msft_policy_config_games_allowadvancedgamingservices_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_games_allowadvancedgamingservices_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_handwriting_paneldefaultmodedocked", + "displayName": "Panel Default Mode Docked", + "options": [ + { + "id": "device_vendor_msft_policy_config_handwriting_paneldefaultmodedocked_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_handwriting_paneldefaultmodedocked_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forceinstantlock", + "displayName": "Force Instant Lock", + "options": [ + { + "id": "device_vendor_msft_policy_config_humanpresence_forceinstantlock_2", + "displayName": "Forced Off.", + "description": "ForcedOff." + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forceinstantlock_1", + "displayName": "Forced On.", + "description": "ForcedOn." + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forceinstantlock_0", + "displayName": "Default To User Choice.", + "description": "DefaultToUserChoice." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forceinstantwake", + "displayName": "Force Instant Wake", + "options": [ + { + "id": "device_vendor_msft_policy_config_humanpresence_forceinstantwake_2", + "displayName": "Forced Off.", + "description": "ForcedOff." + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forceinstantwake_1", + "displayName": "Forced On.", + "description": "ForcedOn." + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forceinstantwake_0", + "displayName": "Default To User Choice.", + "description": "DefaultToUserChoice." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forcelocktimeout", + "displayName": "Force Lock Timeout", + "options": [ + { + "id": "device_vendor_msft_policy_config_humanpresence_forcelocktimeout_120", + "displayName": "Two Minutes", + "description": "TwoMinutes" + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forcelocktimeout_30", + "displayName": "Thirty Seconds.", + "description": "ThirtySeconds." + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forcelocktimeout_10", + "displayName": "Ten Seconds.", + "description": "TenSeconds." + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forcelocktimeout_1", + "displayName": "Immediate.", + "description": "Immediate." + }, + { + "id": "device_vendor_msft_policy_config_humanpresence_forcelocktimeout_0", + "displayName": "Default To User Choice.", + "description": "DefaultToUserChoice." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_addsearchprovider", + "displayName": "Add a specific list of search providers to the user's list of search providers", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_addsearchprovider_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_addsearchprovider_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowactivexfiltering", + "displayName": "Turn on ActiveX Filtering", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowactivexfiltering_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowactivexfiltering_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowaddonlist", + "displayName": "Add-on List", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowaddonlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowaddonlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowaddonlist_addonlist", + "displayName": "Add-on List (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowaddonlist_addonlist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowaddonlist_addonlist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowcertificateaddressmismatchwarning", + "displayName": "Turn on certificate address mismatch warning", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowcertificateaddressmismatchwarning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowcertificateaddressmismatchwarning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowdeletingbrowsinghistoryonexit", + "displayName": "Allow deleting browsing history on exit", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowdeletingbrowsinghistoryonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowdeletingbrowsinghistoryonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenhancedprotectedmode", + "displayName": "Turn on Enhanced Protected Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenhancedprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenhancedprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenhancedsuggestionsinaddressbar", + "displayName": "Allow Microsoft services to provide enhanced suggestions as the user types in the Address bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenhancedsuggestionsinaddressbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenhancedsuggestionsinaddressbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenterprisemodefromtoolsmenu", + "displayName": "Let users turn on and use Enterprise Mode from the Tools menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenterprisemodefromtoolsmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenterprisemodefromtoolsmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenterprisemodefromtoolsmenu_enterreportbackprompt", + "displayName": "Type the location (URL) of where to receive reports about the websites for which users turn on and use Enterprise Mode", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenterprisemodesitelist", + "displayName": "Use the Enterprise Mode IE website list", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenterprisemodesitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenterprisemodesitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowenterprisemodesitelist_entersitelistprompt", + "displayName": "Type the location (URL) of your Enterprise Mode IE website list", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowfallbacktossl3", + "displayName": "Allow fallback to SSL 3.0 (Internet Explorer)", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowfallbacktossl3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowfallbacktossl3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowfallbacktossl3_advanced_enablessl3fallbackoptions", + "displayName": "Allow insecure fallback for:", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowfallbacktossl3_advanced_enablessl3fallbackoptions_0", + "displayName": "No Sites", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowfallbacktossl3_advanced_enablessl3fallbackoptions_1", + "displayName": "Non-Protected Mode Sites", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowfallbacktossl3_advanced_enablessl3fallbackoptions_3", + "displayName": "All Sites", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetexplorer7policylist", + "displayName": "Use Policy List of Internet Explorer 7 sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetexplorer7policylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetexplorer7policylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetexplorer7policylist_compatview_sitelist", + "displayName": "List of sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetexplorerstandardsmode", + "displayName": "Turn on Internet Explorer Standards Mode for local intranet", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetexplorerstandardsmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetexplorerstandardsmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate", + "displayName": "Internet Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate", + "displayName": "Internet", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate", + "displayName": "Intranet Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate", + "displayName": "Intranet", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate", + "displayName": "Local Machine Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate", + "displayName": "Local Machine Zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate", + "displayName": "Locked-Down Internet Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate", + "displayName": "Locked-Down Internet", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate", + "displayName": "Locked-Down Intranet Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate", + "displayName": "Locked-Down Intranet", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate", + "displayName": "Locked-Down Local Machine Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate", + "displayName": "Locked-Down Local Machine Zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate", + "displayName": "Locked-Down Restricted Sites Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate", + "displayName": "Locked-Down Restricted Sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowonewordentry", + "displayName": "Go to an intranet site for a one-word entry in the Address bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowonewordentry_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowonewordentry_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsavetargetasiniemode", + "displayName": "Allow \"Save Target As\" in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsavetargetasiniemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsavetargetasiniemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist", + "displayName": "Site to Zone Assignment List", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_iz_zonemapprompt", + "displayName": "Enter the zone assignments here. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_iz_zonemapprompt_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_iz_zonemapprompt_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate", + "displayName": "Locked-Down Trusted Sites Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate", + "displayName": "Locked-Down Trusted Sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsoftwarewhensignatureisinvalid", + "displayName": "Allow software to run or install even if the signature is invalid", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsoftwarewhensignatureisinvalid_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsoftwarewhensignatureisinvalid_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate", + "displayName": "Restricted Sites Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate", + "displayName": "Restricted Sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsuggestedsites", + "displayName": "Turn on Suggested Sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsuggestedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowsuggestedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate", + "displayName": "Trusted Sites Zone Template", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate", + "displayName": "Trusted Sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_checkservercertificaterevocation", + "displayName": "Check for server certificate revocation", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_checkservercertificaterevocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_checkservercertificaterevocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_checksignaturesondownloadedprograms", + "displayName": "Check for signatures on downloaded programs", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_checksignaturesondownloadedprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_checksignaturesondownloadedprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel", + "displayName": "Configure which channel of Microsoft Edge to use for opening redirected sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser", + "displayName": "First choice (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_", + "displayName": "", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_1", + "displayName": "Microsoft Edge Stable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_2", + "displayName": "Microsoft Edge Beta version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_3", + "displayName": "Microsoft Edge Dev version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_4", + "displayName": "Microsoft Edge Canary version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_0", + "displayName": "Microsoft Edge version 45 or earlier", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2", + "displayName": "Second choice (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_", + "displayName": "", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_1", + "displayName": "Microsoft Edge Stable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_2", + "displayName": "Microsoft Edge Beta version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_3", + "displayName": "Microsoft Edge Dev version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_4", + "displayName": "Microsoft Edge Canary version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_0", + "displayName": "Microsoft Edge version 45 or earlier", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3", + "displayName": "Third choice (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_", + "displayName": "", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_1", + "displayName": "Microsoft Edge Stable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_2", + "displayName": "Microsoft Edge Beta version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_3", + "displayName": "Microsoft Edge Dev version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_4", + "displayName": "Microsoft Edge Canary version 77 or later", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_0", + "displayName": "Microsoft Edge version 45 or earlier", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_consistentmimehandlinginternetexplorerprocesses", + "displayName": "Internet Explorer Processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_consistentmimehandlinginternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_consistentmimehandlinginternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableadobeflash", + "displayName": "Turn off Adobe Flash in Internet Explorer and prevent applications from using Internet Explorer technology to instantiate Flash objects", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableadobeflash_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableadobeflash_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarnings", + "displayName": "Prevent bypassing SmartScreen Filter warnings", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarningsaboutuncommonfiles", + "displayName": "Prevent bypassing SmartScreen Filter warnings about files that are not commonly downloaded from the Internet", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarningsaboutuncommonfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarningsaboutuncommonfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecompatview", + "displayName": "Turn off Compatibility View", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecompatview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecompatview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableconfiguringhistory", + "displayName": "Disable \"Configuring History\"", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableconfiguringhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableconfiguringhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableconfiguringhistory_daystokeep_prompt", + "displayName": "Days to keep pages in History", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecrashdetection", + "displayName": "Turn off Crash Detection", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecrashdetection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecrashdetection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecustomerexperienceimprovementprogramparticipation", + "displayName": "Prevent participation in the Customer Experience Improvement Program", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecustomerexperienceimprovementprogramparticipation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablecustomerexperienceimprovementprogramparticipation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disabledeletinguservisitedwebsites", + "displayName": "Prevent deleting websites that the user has visited", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disabledeletinguservisitedwebsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disabledeletinguservisitedwebsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableenclosuredownloading", + "displayName": "Prevent downloading of enclosures", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableenclosuredownloading_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableenclosuredownloading_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport", + "displayName": "Turn off encryption support", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions", + "displayName": "Secure Protocol combinations", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_0", + "displayName": "Use no secure protocols", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_8", + "displayName": "Only use SSL 2.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_32", + "displayName": "Only use SSL 3.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_40", + "displayName": "Use SSL 2.0 and SSL 3.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_128", + "displayName": "Only use TLS 1.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_136", + "displayName": "Use SSL 2.0 and TLS 1.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_160", + "displayName": "Use SSL 3.0 and TLS 1.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_168", + "displayName": "Use SSL 2.0, SSL 3.0, and TLS 1.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_512", + "displayName": "Only use TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_520", + "displayName": "Use SSL 2.0 and TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_544", + "displayName": "Use SSL 3.0 and TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_552", + "displayName": "Use SSL 2.0, SSL 3.0, and TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_640", + "displayName": "Use TLS 1.0 and TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_648", + "displayName": "Use SSL 2.0, TLS 1.0, and TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_672", + "displayName": "Use SSL 3.0, TLS 1.0, and TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_680", + "displayName": "Use SSL 2.0, SSL 3.0, TLS 1.0, and TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2048", + "displayName": "Only use TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2056", + "displayName": "Use SSL 2.0 and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2080", + "displayName": "Use SSL 3.0 and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2088", + "displayName": "Use SSL 2.0, SSL 3.0, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2176", + "displayName": "Use TLS 1.0 and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2184", + "displayName": "Use SSL 2.0, TLS 1.0, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2208", + "displayName": "Use SSL 3.0, TLS 1.0, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2216", + "displayName": "Use SSL 2.0, SSL 3.0, TLS 1.0, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2560", + "displayName": "Use TLS 1.1 and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2568", + "displayName": "Use SSL 2.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2592", + "displayName": "Use SSL 3.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2600", + "displayName": "Use SSL 2.0, SSL 3.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2688", + "displayName": "Use TLS 1.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2696", + "displayName": "Use SSL 2.0, TLS 1.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2720", + "displayName": "Use SSL 3.0, TLS 1.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2728", + "displayName": "Use SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_8192", + "displayName": "Only use TLS 1.3", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_10240", + "displayName": "Use TLS 1.2 and TLS 1.3", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_10752", + "displayName": "Use TLS 1.1, TLS 1.2, and TLS 1.3", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_10880", + "displayName": "Use TLS 1.0, TLS 1.1, TLS 1.2, and TLS 1.3", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_10912", + "displayName": "Use SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, and TLS 1.3", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefeedsbackgroundsync", + "displayName": "Turn off background synchronization for feeds and Web Slices", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefeedsbackgroundsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefeedsbackgroundsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard", + "displayName": "Prevent running First Run wizard", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_firstrunoptions", + "displayName": "Select your choice", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_firstrunoptions_1", + "displayName": "Go directly to home page", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_firstrunoptions_2", + "displayName": "Go directly to \"Welcome To IE\" page", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableflipaheadfeature", + "displayName": "Turn off the flip ahead with page prediction feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableflipaheadfeature_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableflipaheadfeature_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablegeolocation", + "displayName": "Turn off browser geolocation", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablegeolocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablegeolocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablehtmlapplication", + "displayName": "Disable HTML Application", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablehtmlapplication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablehtmlapplication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableignoringcertificateerrors", + "displayName": "Prevent ignoring certificate errors", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableignoringcertificateerrors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableignoringcertificateerrors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinprivatebrowsing", + "displayName": "Turn off InPrivate Browsing", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinprivatebrowsing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinprivatebrowsing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp", + "displayName": "[Deprecated] Disable Internet Explorer 11 as a standalone browser", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2", + "displayName": "Disable Internet Explorer 11 as a standalone browser", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_notifydisableieoptions", + "displayName": "Notify that Internet Explorer 11 browser is disabled (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_notifydisableieoptions_0", + "displayName": "Never", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_notifydisableieoptions_1", + "displayName": "Always", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_notifydisableieoptions_2", + "displayName": "Once per user", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableprocessesinenhancedprotectedmode", + "displayName": "Turn on 64-bit tab processes when running in Enhanced Protected Mode on 64-bit versions of Windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableprocessesinenhancedprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableprocessesinenhancedprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableproxychange", + "displayName": "Prevent changing proxy settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableproxychange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableproxychange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesearchproviderchange", + "displayName": "Prevent changing the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesearchproviderchange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesearchproviderchange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesecondaryhomepagechange", + "displayName": "Disable changing secondary home page settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesecondaryhomepagechange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesecondaryhomepagechange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesecondaryhomepagechange_secondaryhomepageslist", + "displayName": "Secondary home pages (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesecuritysettingscheck", + "displayName": "Turn off the Security Settings Check feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesecuritysettingscheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablesecuritysettingscheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableupdatecheck", + "displayName": "Disable Periodic Check for Internet Explorer software updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableupdatecheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disableupdatecheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablewebaddressautocomplete", + "displayName": "Turn off the auto-complete feature for web addresses", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablewebaddressautocomplete_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_disablewebaddressautocomplete_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowactivexcontrolsinprotectedmode", + "displayName": "Do not allow ActiveX controls to run in Protected Mode when Enhanced Protected Mode is enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowactivexcontrolsinprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowactivexcontrolsinprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowuserstoaddsites", + "displayName": "Security Zones: Do not allow users to add/delete sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowuserstoaddsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowuserstoaddsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowuserstochangepolicies", + "displayName": "Security Zones: Do not allow users to change policies", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowuserstochangepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotallowuserstochangepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrols", + "displayName": "Turn off blocking of outdated ActiveX controls for Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrolsonspecificdomains", + "displayName": "Turn off blocking of outdated ActiveX controls for Internet Explorer on specific domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrolsonspecificdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrolsonspecificdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrolsonspecificdomains_domainlist", + "displayName": "Domain allow list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_enableextendediemodehotkeys", + "displayName": "Enable extended hot keys in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_enableextendediemodehotkeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_enableextendediemodehotkeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_enableglobalwindowlistiniemode", + "displayName": "Enable global window list in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_enableglobalwindowlistiniemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_enableglobalwindowlistiniemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_includealllocalsites", + "displayName": "Intranet Sites: Include all local (intranet) sites not listed in other zones", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_includealllocalsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_includealllocalsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_includeallnetworkpaths", + "displayName": "Intranet Sites: Include all network paths (UNCs)", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_includeallnetworkpaths_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_includeallnetworkpaths_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript", + "displayName": "Allow cut, copy or paste operations from the clipboard via script", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_iz_partname1407", + "displayName": "Allow paste operations via script", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_iz_partname1407_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_iz_partname1407_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_iz_partname1407_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles", + "displayName": "Allow drag and drop or copy and paste files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_iz_partname1802", + "displayName": "Allow drag and drop or copy and paste files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_iz_partname1802_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_iz_partname1802_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_iz_partname1802_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles", + "displayName": "Allow loading of XAML files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_iz_partname2402", + "displayName": "XAML Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_iz_partname2402_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_iz_partname2402_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_iz_partname2402_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols", + "displayName": "Allow only approved domains to use ActiveX controls without prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b", + "displayName": "Only allow approved domains to use ActiveX controls without prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol", + "displayName": "Allow only approved domains to use the TDC ActiveX control", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c", + "displayName": "Only allow approved domains to use the TDC ActiveX control", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols", + "displayName": "Allow scripting of Internet Explorer WebBrowser controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206", + "displayName": "Internet Explorer web browser control", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows", + "displayName": "Allow script-initiated windows without size or position constraints", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_iz_partname2102", + "displayName": "Allow script-initiated windows without size or position constraints", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_iz_partname2102_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_iz_partname2102_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript", + "displayName": "Allow updates to status bar via script", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_iz_partname2103", + "displayName": "Status bar updates via script", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_iz_partname2103_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_iz_partname2103_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer", + "displayName": "Allow VBScript to run in Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_iz_partname140c", + "displayName": "Allow VBScript to run in Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_iz_partname140c_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_iz_partname140c_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_iz_partname140c_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols", + "displayName": "Download signed ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_iz_partname1001", + "displayName": "Download signed ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_iz_partname1001_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_iz_partname1001_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_iz_partname1001_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols", + "displayName": "Download unsigned ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_iz_partname1004", + "displayName": "Download unsigned ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_iz_partname1004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_iz_partname1004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_iz_partname1004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter", + "displayName": "Turn on Cross-Site Scripting Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_iz_partname1409", + "displayName": "Turn on Cross-Site Scripting (XSS) Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_iz_partname1409_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_iz_partname1409_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows", + "displayName": "Enable dragging of content from different domains across windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709", + "displayName": "Enable dragging of content from different domains across windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows", + "displayName": "Enable dragging of content from different domains within a window", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708", + "displayName": "Enable dragging of content from different domains within a window", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing", + "displayName": "Enable MIME Sniffing", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_iz_partname2100", + "displayName": "Enable MIME Sniffing", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_iz_partname2100_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_iz_partname2100_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode", + "displayName": "Turn on Protected Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_iz_partname2500", + "displayName": "Protected Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_iz_partname2500_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_iz_partname2500_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver", + "displayName": "Include local path when user is uploading files to a server", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a", + "displayName": "Include local directory path when uploading files to a server", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe", + "displayName": "Launching applications and files in an IFRAME", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_iz_partname1804", + "displayName": "Launching applications and files in an IFRAME", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_iz_partname1804_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_iz_partname1804_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_iz_partname1804_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions", + "displayName": "Logon options", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00", + "displayName": "Logon options", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00_196608", + "displayName": "Anonymous logon", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00_131072", + "displayName": "Automatic logon only in Intranet zone", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00_0", + "displayName": "Automatic logon with current username and password", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00_65536", + "displayName": "Prompt for user name and password", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode", + "displayName": "Run .NET Framework-reliant components signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001", + "displayName": "Run .NET Framework-reliant components signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles", + "displayName": "Show security warning for potentially unsafe files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806", + "displayName": "Launching programs and unsafe files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker", + "displayName": "Use Pop-up Blocker", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_iz_partname1809", + "displayName": "Use Pop-up Blocker", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_iz_partname1809_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_iz_partname1809_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_jscriptreplacement", + "displayName": "Replace JScript by loading JScript9Legacy in place of JScript via MSHTML/WebOC.", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_jscriptreplacement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_jscriptreplacement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_keepintranetsitesininternetexplorer", + "displayName": "Keep all intranet sites in Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_keepintranetsitesininternetexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_keepintranetsitesininternetexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_mimesniffingsafetyfeatureinternetexplorerprocesses", + "displayName": "Internet Explorer Processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_mimesniffingsafetyfeatureinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_mimesniffingsafetyfeatureinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_mkprotocolsecurityrestrictioninternetexplorerprocesses", + "displayName": "Internet Explorer Processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_mkprotocolsecurityrestrictioninternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_mkprotocolsecurityrestrictioninternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_newtabdefaultpage", + "displayName": "Specify default behavior for a new tab", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions", + "displayName": "New tab behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions_3", + "displayName": "New tab page with my news feed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions_0", + "displayName": "about:blank", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions_2", + "displayName": "New tab page", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions_1", + "displayName": "Home page", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_notificationbarinternetexplorerprocesses", + "displayName": "Internet Explorer Processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_notificationbarinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_notificationbarinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter", + "displayName": "Prevent managing SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_ie9safetyfilteroptions", + "displayName": "Select SmartScreen Filter mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_ie9safetyfilteroptions_0", + "displayName": "Off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_ie9safetyfilteroptions_1", + "displayName": "On", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventperuserinstallationofactivexcontrols", + "displayName": "Prevent per-user installation of ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventperuserinstallationofactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_preventperuserinstallationofactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_protectionfromzoneelevationinternetexplorerprocesses", + "displayName": "Internet Explorer Processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_protectionfromzoneelevationinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_protectionfromzoneelevationinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_removerunthistimebuttonforoutdatedactivexcontrols", + "displayName": "Remove \"Run this time\" button for outdated ActiveX controls in Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_removerunthistimebuttonforoutdatedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_removerunthistimebuttonforoutdatedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_resetzoomfordialoginiemode", + "displayName": "Reset zoom to default for HTML dialogs in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_resetzoomfordialoginiemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_resetzoomfordialoginiemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictactivexinstallinternetexplorerprocesses", + "displayName": "Internet Explorer Processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictactivexinstallinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictactivexinstallinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting", + "displayName": "Allow active scripting", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_iz_partname1400", + "displayName": "Allow active scripting", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_iz_partname1400_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_iz_partname1400_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_iz_partname1400_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors", + "displayName": "Allow binary and script behaviors", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_iz_partname2000", + "displayName": "Allow Binary and Script Behaviors", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_iz_partname2000_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_iz_partname2000_65536", + "displayName": "Administrator approved", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_iz_partname2000_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript", + "displayName": "Allow cut, copy or paste operations from the clipboard via script", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_iz_partname1407", + "displayName": "Allow paste operations via script", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_iz_partname1407_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_iz_partname1407_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_iz_partname1407_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles", + "displayName": "Allow drag and drop or copy and paste files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_iz_partname1802", + "displayName": "Allow drag and drop or copy and paste files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_iz_partname1802_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_iz_partname1802_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_iz_partname1802_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads", + "displayName": "Allow file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_iz_partname1803", + "displayName": "Allow file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_iz_partname1803_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_iz_partname1803_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles", + "displayName": "Allow loading of XAML files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_iz_partname2402", + "displayName": "XAML Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_iz_partname2402_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_iz_partname2402_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_iz_partname2402_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh", + "displayName": "Allow META REFRESH", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_iz_partname1608", + "displayName": "Allow META REFRESH", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_iz_partname1608_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_iz_partname1608_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols", + "displayName": "Allow only approved domains to use ActiveX controls without prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b", + "displayName": "Only allow approved domains to use ActiveX controls without prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol", + "displayName": "Allow only approved domains to use the TDC ActiveX control", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c", + "displayName": "Only allow approved domains to use the TDC ActiveX control", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols", + "displayName": "Allow scripting of Internet Explorer WebBrowser controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206", + "displayName": "Internet Explorer web browser control", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows", + "displayName": "Allow script-initiated windows without size or position constraints", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_iz_partname2102", + "displayName": "Allow script-initiated windows without size or position constraints", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_iz_partname2102_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_iz_partname2102_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript", + "displayName": "Allow updates to status bar via script", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_iz_partname2103", + "displayName": "Status bar updates via script", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_iz_partname2103_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_iz_partname2103_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer", + "displayName": "Allow VBScript to run in Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_iz_partname140c", + "displayName": "Allow VBScript to run in Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_iz_partname140c_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_iz_partname140c_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_iz_partname140c_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols", + "displayName": "Download signed ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_iz_partname1001", + "displayName": "Download signed ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_iz_partname1001_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_iz_partname1001_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_iz_partname1001_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols", + "displayName": "Download unsigned ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_iz_partname1004", + "displayName": "Download unsigned ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_iz_partname1004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_iz_partname1004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_iz_partname1004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter", + "displayName": "Turn on Cross-Site Scripting Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_iz_partname1409", + "displayName": "Turn on Cross-Site Scripting (XSS) Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_iz_partname1409_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_iz_partname1409_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows", + "displayName": "Enable dragging of content from different domains across windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709", + "displayName": "Enable dragging of content from different domains across windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows", + "displayName": "Enable dragging of content from different domains within a window", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708", + "displayName": "Enable dragging of content from different domains within a window", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing", + "displayName": "Enable MIME Sniffing", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_iz_partname2100", + "displayName": "Enable MIME Sniffing", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_iz_partname2100_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_iz_partname2100_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver", + "displayName": "Include local path when user is uploading files to a server", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a", + "displayName": "Include local directory path when uploading files to a server", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe", + "displayName": "Launching applications and files in an IFRAME", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_iz_partname1804", + "displayName": "Launching applications and files in an IFRAME", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_iz_partname1804_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_iz_partname1804_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_iz_partname1804_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions", + "displayName": "Logon options", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00", + "displayName": "Logon options", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00_196608", + "displayName": "Anonymous logon", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00_131072", + "displayName": "Automatic logon only in Intranet zone", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00_0", + "displayName": "Automatic logon with current username and password", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00_65536", + "displayName": "Prompt for user name and password", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins", + "displayName": "Run ActiveX controls and plugins", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200", + "displayName": "Run ActiveX controls and plugins", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200_65536", + "displayName": "Administrator approved", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode", + "displayName": "Run .NET Framework-reliant components signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001", + "displayName": "Run .NET Framework-reliant components signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting", + "displayName": "Script ActiveX controls marked safe for scripting", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_iz_partname1405", + "displayName": "Script ActiveX controls marked safe for scripting", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_iz_partname1405_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_iz_partname1405_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_iz_partname1405_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets", + "displayName": "Scripting of Java applets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_iz_partname1402", + "displayName": "Scripting of Java applets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_iz_partname1402_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_iz_partname1402_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_iz_partname1402_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles", + "displayName": "Show security warning for potentially unsafe files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806", + "displayName": "Launching programs and unsafe files", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode", + "displayName": "Turn on Protected Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_iz_partname2500", + "displayName": "Protected Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_iz_partname2500_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_iz_partname2500_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker", + "displayName": "Use Pop-up Blocker", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_iz_partname1809", + "displayName": "Use Pop-up Blocker", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_iz_partname1809_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_iz_partname1809_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictfiledownloadinternetexplorerprocesses", + "displayName": "Internet Explorer Processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictfiledownloadinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_restrictfiledownloadinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_scriptedwindowsecurityrestrictionsinternetexplorerprocesses", + "displayName": "Internet Explorer Processes", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_scriptedwindowsecurityrestrictionsinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_scriptedwindowsecurityrestrictionsinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_searchproviderlist", + "displayName": "Restrict search providers to a specific list", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_searchproviderlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_searchproviderlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_securityzonesuseonlymachinesettings", + "displayName": "Security Zones: Use only machine settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_securityzonesuseonlymachinesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_securityzonesuseonlymachinesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_sendsitesnotinenterprisesitelisttoedge", + "displayName": "Send all sites not included in the Enterprise Mode Site List to Microsoft Edge.", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_sendsitesnotinenterprisesitelisttoedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_sendsitesnotinenterprisesitelisttoedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_specifyuseofactivexinstallerservice", + "displayName": "Specify use of ActiveX Installer Service for installation of ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_specifyuseofactivexinstallerservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_specifyuseofactivexinstallerservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets", + "displayName": "Allow scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00", + "displayName": "Java permissions", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kerberos_allowforestsearchorder", + "displayName": "Use forest search order", + "options": [ + { + "id": "device_vendor_msft_policy_config_kerberos_allowforestsearchorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_kerberos_allowforestsearchorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kerberos_allowforestsearchorder_forestsearchlist", + "displayName": "Forests to Search (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_kerberos_kerberosclientsupportsclaimscompoundarmor", + "displayName": "Kerberos client support for claims, compound authentication and Kerberos armoring", + "options": [ + { + "id": "device_vendor_msft_policy_config_kerberos_kerberosclientsupportsclaimscompoundarmor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_kerberos_kerberosclientsupportsclaimscompoundarmor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kerberos_requirekerberosarmoring", + "displayName": "Fail authentication requests when Kerberos armoring is not available", + "options": [ + { + "id": "device_vendor_msft_policy_config_kerberos_requirekerberosarmoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_kerberos_requirekerberosarmoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kerberos_requirestrictkdcvalidation", + "displayName": "Require strict KDC validation", + "options": [ + { + "id": "device_vendor_msft_policy_config_kerberos_requirestrictkdcvalidation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_kerberos_requirestrictkdcvalidation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kerberos_setmaximumcontexttokensize", + "displayName": "Set maximum Kerberos SSPI context token buffer size", + "options": [ + { + "id": "device_vendor_msft_policy_config_kerberos_setmaximumcontexttokensize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_kerberos_setmaximumcontexttokensize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kerberos_setmaximumcontexttokensize_maxtokensize", + "displayName": "Maximum size (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_kerberos_upnnamehints", + "displayName": "UPN Name Hints", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_blockedurlexceptions", + "displayName": "Blocked Url Exceptions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_blockedurls", + "displayName": "Blocked Urls", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_defaulturl", + "displayName": "Default URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enableendsessionbutton", + "displayName": "Enable End Session Button", + "options": [ + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enableendsessionbutton_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enableendsessionbutton_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enablehomebutton", + "displayName": "Enable Home Button", + "options": [ + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enablehomebutton_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enablehomebutton_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enablenavigationbuttons", + "displayName": "Enable Navigation Buttons", + "options": [ + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enablenavigationbuttons_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_enablenavigationbuttons_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_kioskbrowser_restartonidletime", + "displayName": "Restart On Idle Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_lanmanworkstation_enableinsecureguestlogons", + "displayName": "Enable Insecure Guest Logons", + "options": [ + { + "id": "device_vendor_msft_policy_config_lanmanworkstation_enableinsecureguestlogons_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_lanmanworkstation_enableinsecureguestlogons_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_licensing_allowwindowsentitlementreactivation", + "displayName": "Allow Windows Entitlement Reactivation", + "options": [ + { + "id": "device_vendor_msft_policy_config_licensing_allowwindowsentitlementreactivation_0", + "displayName": "Block", + "description": "Disable Windows license reactivation on managed devices." + }, + { + "id": "device_vendor_msft_policy_config_licensing_allowwindowsentitlementreactivation_1", + "displayName": "Allow", + "description": "Enable Windows license reactivation on managed devices." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_licensing_disallowkmsclientonlineavsvalidation", + "displayName": "Disallow KMS Client Online AVS Validation", + "options": [ + { + "id": "device_vendor_msft_policy_config_licensing_disallowkmsclientonlineavsvalidation_0", + "displayName": "Block", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_licensing_disallowkmsclientonlineavsvalidation_1", + "displayName": "Allow", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_blockmicrosoftaccounts", + "displayName": "Accounts Block Microsoft Accounts", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_blockmicrosoftaccounts_0", + "displayName": "Disabled (users will be able to use Microsoft accounts with Windows).", + "description": "Disabled (users will be able to use Microsoft accounts with Windows)." + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_blockmicrosoftaccounts_1", + "displayName": "Enabled (users can't add Microsoft accounts).", + "description": "Enabled (users can't add Microsoft accounts)." + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_blockmicrosoftaccounts_3", + "displayName": "Users can't add or log on with Microsoft accounts", + "description": "Users can't add or log on with Microsoft accounts" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_enableadministratoraccountstatus", + "displayName": "Accounts Enable Administrator Account Status", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_enableadministratoraccountstatus_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_enableadministratoraccountstatus_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_enableguestaccountstatus", + "displayName": "Accounts Enable Guest Account Status", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_enableguestaccountstatus_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_enableguestaccountstatus_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_limitlocalaccountuseofblankpasswordstoconsolelogononly", + "displayName": "Accounts Limit Local Account Use Of Blank Passwords To Console Logon Only", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_limitlocalaccountuseofblankpasswordstoconsolelogononly_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_limitlocalaccountuseofblankpasswordstoconsolelogononly_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_renameadministratoraccount", + "displayName": "Accounts Rename Administrator Account", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_accounts_renameguestaccount", + "displayName": "Accounts Rename Guest Account", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_devices_allowedtoformatandejectremovablemedia", + "displayName": "Devices Allowed To Format And Eject Removable Media", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_devices_allowundockwithouthavingtologon", + "displayName": "Devices Allow Undock Without Having To Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_devices_allowundockwithouthavingtologon_1", + "displayName": "Allow", + "description": "Allow" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_devices_allowundockwithouthavingtologon_0", + "displayName": "Block", + "description": "Block" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_devices_preventusersfrominstallingprinterdriverswhenconnectingtosharedprinters", + "displayName": "Devices Prevent Users From Installing Printer Drivers When Connecting To Shared Printers", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_devices_preventusersfrominstallingprinterdriverswhenconnectingtosharedprinters_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_devices_preventusersfrominstallingprinterdriverswhenconnectingtosharedprinters_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_devices_restrictcdromaccesstolocallyloggedonuseronly", + "displayName": "Devices Restrict CDROM Access To Locally Logged On User Only", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_displayuserinformationwhenthesessionislocked", + "displayName": "Interactive Logon Display User Information When The Session Is Locked", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_displayuserinformationwhenthesessionislocked_1", + "displayName": "User display name, domain and user names", + "description": "User display name, domain and user names" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_displayuserinformationwhenthesessionislocked_2", + "displayName": "User display name only", + "description": "User display name only" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_displayuserinformationwhenthesessionislocked_3", + "displayName": "Do not display user information", + "description": "Do not display user information" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_displayuserinformationwhenthesessionislocked_4", + "displayName": "Domain and user names only", + "description": "Domain and user names only" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotdisplaylastsignedin", + "displayName": "Interactive Logon Do Not Display Last Signed In", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotdisplaylastsignedin_0", + "displayName": "Disabled (username will be shown)", + "description": "Disabled (username will be shown)" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotdisplaylastsignedin_1", + "displayName": "Enabled (username will not be shown)", + "description": "Enabled (username will not be shown)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotdisplayusernameatsignin", + "displayName": "Interactive Logon Do Not Display Username At Sign In", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotdisplayusernameatsignin_0", + "displayName": "Disabled (username will be shown)", + "description": "Disabled (username will be shown)" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotdisplayusernameatsignin_1", + "displayName": "Enabled (username will not be shown)", + "description": "Enabled (username will not be shown)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotrequirectrlaltdel", + "displayName": "Interactive Logon Do Not Require CTRLALTDEL", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotrequirectrlaltdel_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_donotrequirectrlaltdel_1", + "displayName": "Enabled (a user is not required to press CTRL+ALT+DEL to log on)", + "description": "Enabled (a user is not required to press CTRL+ALT+DEL to log on)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_machineinactivitylimit", + "displayName": "[Deprecated] Interactive Logon Machine Inactivity Limit (Deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_machineinactivitylimit_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_machineinactivitylimit_1", + "displayName": "Enabled (session will lock after amount of inactive time exceeds the inactivity limit)", + "description": "Enabled (session will lock after amount of inactive time exceeds the inactivity limit)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_machineinactivitylimit_v2", + "displayName": "Interactive Logon Machine Inactivity Limit", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_messagetextforusersattemptingtologon", + "displayName": "Interactive Logon Message Text For Users Attempting To Log On", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_messagetitleforusersattemptingtologon", + "displayName": "Interactive Logon Message Title For Users Attempting To Log On", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_smartcardremovalbehavior", + "displayName": "Interactive Logon Smart Card Removal Behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_smartcardremovalbehavior_0", + "displayName": "No Action", + "description": "No Action" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_smartcardremovalbehavior_1", + "displayName": "Lock Workstation", + "description": "Lock Workstation" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_smartcardremovalbehavior_2", + "displayName": "Force Logoff", + "description": "Force Logoff" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_interactivelogon_smartcardremovalbehavior_3", + "displayName": "Disconnect Remote Desktop Session", + "description": "Disconnect Remote Desktop Session" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_digitallysigncommunicationsalways", + "displayName": "Microsoft Network Client Digitally Sign Communications Always", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_digitallysigncommunicationsalways_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_digitallysigncommunicationsalways_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_digitallysigncommunicationsifserveragrees", + "displayName": "Microsoft Network Client Digitally Sign Communications If Server Agrees", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_digitallysigncommunicationsifserveragrees_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_digitallysigncommunicationsifserveragrees_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_sendunencryptedpasswordtothirdpartysmbservers", + "displayName": "Microsoft Network Client Send Unencrypted Password To Third Party SMB Servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_sendunencryptedpasswordtothirdpartysmbservers_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkclient_sendunencryptedpasswordtothirdpartysmbservers_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkserver_digitallysigncommunicationsalways", + "displayName": "Microsoft Network Server Digitally Sign Communications Always", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkserver_digitallysigncommunicationsalways_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkserver_digitallysigncommunicationsalways_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkserver_digitallysigncommunicationsifclientagrees", + "displayName": "Microsoft Network Server Digitally Sign Communications If Client Agrees", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkserver_digitallysigncommunicationsifclientagrees_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_microsoftnetworkserver_digitallysigncommunicationsifclientagrees_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_donotallowanonymousenumerationofsamaccounts", + "displayName": "Network Access Do Not Allow Anonymous Enumeration Of SAM Accounts", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_donotallowanonymousenumerationofsamaccounts_1", + "displayName": "Enabled", + "description": "Enabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_donotallowanonymousenumerationofsamaccounts_0", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_donotallowanonymousenumerationofsamaccountsandshares", + "displayName": "Network Access Do Not Allow Anonymous Enumeration Of Sam Accounts And Shares", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_donotallowanonymousenumerationofsamaccountsandshares_1", + "displayName": "Enabled", + "description": "Enabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_donotallowanonymousenumerationofsamaccountsandshares_0", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_restrictanonymousaccesstonamedpipesandshares", + "displayName": "Network Access Restrict Anonymous Access To Named Pipes And Shares", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_restrictanonymousaccesstonamedpipesandshares_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_restrictanonymousaccesstonamedpipesandshares_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networkaccess_restrictclientsallowedtomakeremotecallstosam", + "displayName": "Network Access Restrict Clients Allowed To Make Remote Calls To SAM", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_allowlocalsystemtousecomputeridentityforntlm", + "displayName": "Network Security Allow Local System To Use Computer Identity For NTLM", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_allowlocalsystemtousecomputeridentityforntlm_1", + "displayName": "Allow", + "description": "Allow" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_allowlocalsystemtousecomputeridentityforntlm_0", + "displayName": "Block", + "description": "Block" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_allowpku2uauthenticationrequests", + "displayName": "Network Security Allow PKU2U Authentication Requests", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_allowpku2uauthenticationrequests_0", + "displayName": "Block", + "description": "Block" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_allowpku2uauthenticationrequests_1", + "displayName": "Allow", + "description": "Allow" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_donotstorelanmanagerhashvalueonnextpasswordchange", + "displayName": "Network Security Do Not Store LAN Manager Hash Value On Next Password Change", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_donotstorelanmanagerhashvalueonnextpasswordchange_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_donotstorelanmanagerhashvalueonnextpasswordchange_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_lanmanagerauthenticationlevel", + "displayName": "Network Security LAN Manager Authentication Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_lanmanagerauthenticationlevel_0", + "displayName": "Send LM and NTLM responses", + "description": "Send LM and NTLM responses" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_lanmanagerauthenticationlevel_1", + "displayName": "Send LM and NTLM-use NTLMv2 session security if negotiated", + "description": "Send LM and NTLM-use NTLMv2 session security if negotiated" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_lanmanagerauthenticationlevel_2", + "displayName": "Send LM and NTLM responses only", + "description": "Send LM and NTLM responses only" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_lanmanagerauthenticationlevel_3", + "displayName": "Send LM and NTLMv2 responses only", + "description": "Send LM and NTLMv2 responses only" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_lanmanagerauthenticationlevel_4", + "displayName": "Send LM and NTLMv2 responses only. Refuse LM", + "description": "Send LM and NTLMv2 responses only. Refuse LM" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_lanmanagerauthenticationlevel_5", + "displayName": "Send LM and NTLMv2 responses only. Refuse LM and NTLM", + "description": "Send LM and NTLMv2 responses only. Refuse LM and NTLM" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedclients", + "displayName": "Network Security Minimum Session Security For NTLMSSP Based Clients", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedclients_0", + "displayName": "None", + "description": "None" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedclients_524288", + "displayName": "Require NTLMv2 session security", + "description": "Require NTLMv2 session security" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedclients_536870912", + "displayName": "Require 128-bit encryption", + "description": "Require 128-bit encryption" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedclients_537395200", + "displayName": "Require NTLM and 128-bit encryption", + "description": "Require NTLM and 128-bit encryption" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedservers", + "displayName": "Network Security Minimum Session Security For NTLMSSP Based Servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedservers_0", + "displayName": "None", + "description": "None" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedservers_524288", + "displayName": "Require NTLMv2 session security", + "description": "Require NTLMv2 session security" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedservers_536870912", + "displayName": "Require 128-bit encryption", + "description": "Require 128-bit encryption" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_minimumsessionsecurityforntlmsspbasedservers_537395200", + "displayName": "Require NTLM and 128-bit encryption", + "description": "Require NTLM and 128-bit encryption" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_addremoteserverexceptionsforntlmauthentication", + "displayName": "Network Security Restrict NTLM Add Remote Server Exceptions For NTLM Authentication", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_auditincomingntlmtraffic", + "displayName": "Network Security Restrict NTLM Audit Incoming NTLM Traffic", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_auditincomingntlmtraffic_0", + "displayName": "Disable", + "description": "Disable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_auditincomingntlmtraffic_1", + "displayName": "Enable auditing for domain accounts", + "description": "Enable auditing for domain accounts" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_auditincomingntlmtraffic_2", + "displayName": "Enable auditing for all accounts", + "description": "Enable auditing for all accounts" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_incomingntlmtraffic", + "displayName": "Network Security Restrict NTLM Incoming NTLM Traffic", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_incomingntlmtraffic_0", + "displayName": "Allow all", + "description": "Allow all" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_incomingntlmtraffic_1", + "displayName": "Deny all domain accounts", + "description": "Deny all domain accounts" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_incomingntlmtraffic_2", + "displayName": "Deny all accounts", + "description": "Deny all accounts" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_outgoingntlmtraffictoremoteservers", + "displayName": "Network Security Restrict NTLM Outgoing NTLM Traffic To Remote Servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_outgoingntlmtraffictoremoteservers_0", + "displayName": "Allow all", + "description": "Allow all" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_outgoingntlmtraffictoremoteservers_1", + "displayName": "Deny all domain accounts", + "description": "Deny all domain accounts" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_networksecurity_restrictntlm_outgoingntlmtraffictoremoteservers_2", + "displayName": "Deny all accounts", + "description": "Deny all accounts" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_shutdown_allowsystemtobeshutdownwithouthavingtologon", + "displayName": "Shutdown Allow System To Be Shut Down Without Having To Log On", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_shutdown_allowsystemtobeshutdownwithouthavingtologon_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_shutdown_allowsystemtobeshutdownwithouthavingtologon_1", + "displayName": "Enabled (Allow system to be shut down without having to log on)", + "description": "Enabled (Allow system to be shut down without having to log on)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_shutdown_clearvirtualmemorypagefile", + "displayName": "Shutdown Clear Virtual Memory Page File", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_shutdown_clearvirtualmemorypagefile_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_shutdown_clearvirtualmemorypagefile_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_allowuiaccessapplicationstopromptforelevation", + "displayName": "User Account Control Allow UI Access Applications To Prompt For Elevation", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_allowuiaccessapplicationstopromptforelevation_0", + "displayName": "disabled", + "description": "disabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_allowuiaccessapplicationstopromptforelevation_1", + "displayName": "enabled (allow UIAccess applications to prompt for elevation without using the secure desktop)", + "description": "enabled (allow UIAccess applications to prompt for elevation without using the secure desktop)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministratorprotection", + "displayName": "User Account Control Behavior Of The Elevation Prompt For Administrator Protection (Windows Insiders only)", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministratorprotection_1", + "displayName": "Prompt for credentials on the secure desktop", + "description": "Prompt for credentials on the secure desktop" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministratorprotection_2", + "displayName": "Prompt for consent on the secure desktop", + "description": "Prompt for consent on the secure desktop" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministrators", + "displayName": "User Account Control Behavior Of The Elevation Prompt For Administrators", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministrators_0", + "displayName": "Elevate without prompting", + "description": "Elevate without prompting" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministrators_1", + "displayName": "Prompt for credentials on the secure desktop", + "description": "Prompt for credentials on the secure desktop" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministrators_2", + "displayName": "Prompt for consent on the secure desktop", + "description": "Prompt for consent on the secure desktop" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministrators_3", + "displayName": "Prompt for credentials", + "description": "Prompt for credentials" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministrators_4", + "displayName": "Prompt for consent", + "description": "Prompt for consent" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforadministrators_5", + "displayName": "Prompt for consent for non-Windows binaries", + "description": "Prompt for consent for non-Windows binaries" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforstandardusers", + "displayName": "User Account Control Behavior Of The Elevation Prompt For Standard Users", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforstandardusers_0", + "displayName": "Automatically deny elevation requests", + "description": "Automatically deny elevation requests" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforstandardusers_1", + "displayName": "Prompt for credentials on the secure desktop", + "description": "Prompt for credentials on the secure desktop" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_behavioroftheelevationpromptforstandardusers_3", + "displayName": "Prompt for credentials", + "description": "Prompt for credentials" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_detectapplicationinstallationsandpromptforelevation", + "displayName": "User Account Control Detect Application Installations And Prompt For Elevation", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_detectapplicationinstallationsandpromptforelevation_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_detectapplicationinstallationsandpromptforelevation_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_onlyelevateexecutablefilesthataresignedandvalidated", + "displayName": "User Account Control Only Elevate Executable Files That Are Signed And Validated", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_onlyelevateexecutablefilesthataresignedandvalidated_0", + "displayName": "Disabled: Does not enforce validation.", + "description": "Disabled: Does not enforce validation." + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_onlyelevateexecutablefilesthataresignedandvalidated_1", + "displayName": "Enabled: Enforces validation.", + "description": "Enabled: Enforces validation." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_onlyelevateuiaccessapplicationsthatareinstalledinsecurelocations", + "displayName": "User Account Control Only Elevate UI Access Applications That Are Installed In Secure Locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_onlyelevateuiaccessapplicationsthatareinstalledinsecurelocations_0", + "displayName": "Disabled: Application runs with UIAccess integrity even if it does not reside in a secure location.", + "description": "Disabled: Application runs with UIAccess integrity even if it does not reside in a secure location." + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_onlyelevateuiaccessapplicationsthatareinstalledinsecurelocations_1", + "displayName": "Enabled: Application runs with UIAccess integrity only if it resides in secure location.", + "description": "Enabled: Application runs with UIAccess integrity only if it resides in secure location." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_runalladministratorsinadminapprovalmode", + "displayName": "User Account Control Run All Administrators In Admin Approval Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_runalladministratorsinadminapprovalmode_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_runalladministratorsinadminapprovalmode_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_switchtothesecuredesktopwhenpromptingforelevation", + "displayName": "User Account Control Switch To The Secure Desktop When Prompting For Elevation", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_switchtothesecuredesktopwhenpromptingforelevation_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_switchtothesecuredesktopwhenpromptingforelevation_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_typeofadminapprovalmode", + "displayName": "User Account Control Type Of Admin Approval Mode (Windows Insiders only)", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_typeofadminapprovalmode_1", + "displayName": "Legacy Admin Approval Mode", + "description": "Legacy Admin Approval Mode" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_typeofadminapprovalmode_2", + "displayName": "Admin Approval Mode with Administrator protection", + "description": "Admin Approval Mode with Administrator protection" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_useadminapprovalmode", + "displayName": "User Account Control Use Admin Approval Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_useadminapprovalmode_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_useadminapprovalmode_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_virtualizefileandregistrywritefailurestoperuserlocations", + "displayName": "User Account Control Virtualize File And Registry Write Failures To Per User Locations", + "options": [ + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_virtualizefileandregistrywritefailurestoperuserlocations_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_localpoliciessecurityoptions_useraccountcontrol_virtualizefileandregistrywritefailurestoperuserlocations_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localsecurityauthority_allowcustomsspsaps", + "displayName": "Allow Custom SSPs and APs to be loaded into LSASS", + "options": [ + { + "id": "device_vendor_msft_policy_config_localsecurityauthority_allowcustomsspsaps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localsecurityauthority_allowcustomsspsaps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localsecurityauthority_configurelsaprotectedprocess", + "displayName": "Configure Lsa Protected Process", + "options": [ + { + "id": "device_vendor_msft_policy_config_localsecurityauthority_configurelsaprotectedprocess_0", + "displayName": "Disabled. Default value. LSA will not run as protected process.", + "description": "Disabled. Default value. LSA will not run as protected process." + }, + { + "id": "device_vendor_msft_policy_config_localsecurityauthority_configurelsaprotectedprocess_1", + "displayName": "Enabled with UEFI lock. LSA will run as protected process and this configuration is UEFI locked.", + "description": "Enabled with UEFI lock. LSA will run as protected process and this configuration is UEFI locked." + }, + { + "id": "device_vendor_msft_policy_config_localsecurityauthority_configurelsaprotectedprocess_2", + "displayName": "Enabled without UEFI lock. LSA will run as protected process and this configuration is not UEFI locked.", + "description": "Enabled without UEFI lock. LSA will run as protected process and this configuration is not UEFI locked." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure", + "displayName": "Group Configuration", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup", + "displayName": "access group", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_action", + "displayName": "Group and user action", + "options": [ + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_action_add_update", + "displayName": "Add (Update)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_action_remove_update", + "displayName": "Remove (Update)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_action_add_restrict", + "displayName": "Add (Replace)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_desc", + "displayName": "Local group", + "options": [ + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_desc_administrators", + "displayName": "Administrators", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_desc_users", + "displayName": "Users", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_desc_guests", + "displayName": "Guests", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_desc_powerusers", + "displayName": "Power Users", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_desc_remotedesktopusers", + "displayName": "Remote Desktop Users", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_desc_remotemanagementusers", + "displayName": "Remote Management Users", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_users", + "displayName": "Selected user(s)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_userselectiontype", + "displayName": "User selection type", + "options": [ + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_userselectiontype_users", + "displayName": "Users/Groups", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_localusersandgroups_configure_groupconfiguration_accessgroup_userselectiontype_manual", + "displayName": "Manual", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lockdown_allowedgeswipe", + "displayName": "Allow Edge Swipe", + "options": [ + { + "id": "device_vendor_msft_policy_config_lockdown_allowedgeswipe_0", + "displayName": "Block", + "description": "Disallow edge swipe." + }, + { + "id": "device_vendor_msft_policy_config_lockdown_allowedgeswipe_1", + "displayName": "Allow", + "description": "Allow edge swipe." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode", + "displayName": "Specify server", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_l_serveraddressexternal_value", + "displayName": "DNS name of the external server (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_l_serveraddressinternal_value", + "displayName": "DNS name of the internal server (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfiguredservercheckvalues", + "displayName": "Additional server versions supported", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfiguredservercheckvalues_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfiguredservercheckvalues_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfiguredservercheckvalues_l_configuredservercheckvalues_value", + "displayName": "Server version names (semicolon separated list): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableautomaticsendtracing", + "displayName": "Disable automatic upload of sign-in failure logs", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableautomaticsendtracing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableautomaticsendtracing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablehttpconnect", + "displayName": "Disable HTTP fallback for SIP connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablehttpconnect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablehttpconnect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablentcredentials", + "displayName": "Require logon credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablentcredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablentcredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableservercheck", + "displayName": "Disable server version check", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableservercheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableservercheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablebitsforgaldownload", + "displayName": "Enable using BITS to download Address Book Service files", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablebitsforgaldownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablebitsforgaldownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablesiphighsecuritymode", + "displayName": "Configure SIP security mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablesiphighsecuritymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablesiphighsecuritymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policygaldownloadinitialdelay", + "displayName": "Global Address Book Download Initial Delay", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policygaldownloadinitialdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policygaldownloadinitialdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policygaldownloadinitialdelay_l_galdownloadinitialdelay_value", + "displayName": "Maximum possible number of minutes to delay download: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policypreventrun", + "displayName": "Prevent users from running Microsoft Lync", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policypreventrun_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policypreventrun_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysavepassword", + "displayName": "Allow storage of user passwords", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysavepassword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysavepassword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression", + "displayName": "Configure SIP compression mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_l_policysipcompression", + "displayName": "Configure SIP compression mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_l_policysipcompression_0", + "displayName": "Always disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_l_policysipcompression_1", + "displayName": "Always enabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_l_policysipcompression_2", + "displayName": "Based on adaptor speed (default)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_l_policysipcompression_3", + "displayName": "Based on ping round-trip time", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policytrustmodeldata", + "displayName": "Trusted Domain List", + "options": [ + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policytrustmodeldata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policytrustmodeldata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policytrustmodeldata_l_trustmodeldata_value", + "displayName": "Trusted Domains (comma separated list): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_maps_allowofflinemapsdownloadovermeteredconnection", + "displayName": "Allow Offline Maps Download Over Metered Connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_maps_allowofflinemapsdownloadovermeteredconnection_0", + "displayName": "Disabled. Force disable auto-update over metered connection.", + "description": "Disabled. Force disable auto-update over metered connection." + }, + { + "id": "device_vendor_msft_policy_config_maps_allowofflinemapsdownloadovermeteredconnection_1", + "displayName": "Enabled. Force enable auto-update over metered connection.", + "description": "Enabled. Force enable auto-update over metered connection." + }, + { + "id": "device_vendor_msft_policy_config_maps_allowofflinemapsdownloadovermeteredconnection_65535", + "displayName": "Not configured. User's choice.", + "description": "Not configured. User's choice." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_maps_enableofflinemapsautoupdate", + "displayName": "Enable Offline Maps Auto Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_maps_enableofflinemapsautoupdate_0", + "displayName": "Disabled. Force off auto-update.", + "description": "Disabled. Force off auto-update." + }, + { + "id": "device_vendor_msft_policy_config_maps_enableofflinemapsautoupdate_1", + "displayName": "Enabled. Force on auto-update.", + "description": "Enabled. Force on auto-update." + }, + { + "id": "device_vendor_msft_policy_config_maps_enableofflinemapsautoupdate_65535", + "displayName": "Not configured. User's choice.", + "description": "Not configured. User's choice." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_memorydump_allowcrashdump", + "displayName": "Allow Crash Dump", + "options": [ + { + "id": "device_vendor_msft_policy_config_memorydump_allowcrashdump_0", + "displayName": "Block", + "description": "Disable crash dump collection." + }, + { + "id": "device_vendor_msft_policy_config_memorydump_allowcrashdump_1", + "displayName": "Allow", + "description": "Allow crash dump collection." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_memorydump_allowlivedump", + "displayName": "Allow Live Dump", + "options": [ + { + "id": "device_vendor_msft_policy_config_memorydump_allowlivedump_0", + "displayName": "Block", + "description": "Disable live dump collection." + }, + { + "id": "device_vendor_msft_policy_config_memorydump_allowlivedump_1", + "displayName": "Allow", + "description": "Allow live dump collection." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_messaging_allowmessagesync", + "displayName": "Allow Message Sync", + "options": [ + { + "id": "device_vendor_msft_policy_config_messaging_allowmessagesync_0", + "displayName": "message sync is not allowed and cannot be changed by the user.", + "description": "message sync is not allowed and cannot be changed by the user." + }, + { + "id": "device_vendor_msft_policy_config_messaging_allowmessagesync_1", + "displayName": "message sync is allowed. The user can change this setting.", + "description": "message sync is allowed. The user can change this setting." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder", + "displayName": "Configure the location of the browser executable folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_browserexecutablefolderdesc", + "displayName": "Set value name to the Application User Model ID or the executable file name. You can use the \"*\" wildcard as value name to apply to all applications. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_browserexecutablefolderdesc_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_browserexecutablefolderdesc_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference", + "displayName": "Set the release channel search order preference", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_releasechannelpreferencedesc", + "displayName": "Set value name to the Application User Model ID or the executable file name. You can use the \"*\" wildcard as value name to apply to all applications. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_releasechannelpreferencedesc_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_releasechannelpreferencedesc_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_2", + "displayName": "Retrieve configurations and experiments", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_1", + "displayName": "Retrieve configurations only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_0", + "displayName": "Disable communication with the Experimentation and Configuration Service", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_forcepermissionpolicyunloaddefaultenabled", + "displayName": "Controls whether unload event handlers can be disabled.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_forcepermissionpolicyunloaddefaultenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_forcepermissionpolicyunloaddefaultenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist", + "displayName": "HTTP Allowlist", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_httpallowlistdesc", + "displayName": "HTTP Allowlist (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_httpallowlistdesc_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_httpallowlistdesc_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newbaseurlinheritancebehaviorallowed", + "displayName": "Allows enabling the feature NewBaseUrlInheritanceBehavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newbaseurlinheritancebehaviorallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newbaseurlinheritancebehaviorallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list", + "displayName": "Enable built-in PDF reader powered by Adobe Acrobat for WebView2", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_newpdfreaderwebview2listdesc", + "displayName": "Set value name to the Application User Model ID or the executable file name. You can use the \"*\" wildcard as value name to apply to all applications. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_newpdfreaderwebview2listdesc_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_newpdfreaderwebview2listdesc_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_rsakeyusageforlocalanchorsenabled", + "displayName": "Check RSA key usage for server certificates issued by local trust anchors", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_rsakeyusageforlocalanchorsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_rsakeyusageforlocalanchorsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowdeletingbrowserhistory", + "displayName": "Enable deleting browser and download history", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowdeletingbrowserhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowdeletingbrowserhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowfileselectiondialogs", + "displayName": "Allow file selection dialogs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowfileselectiondialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowfileselectiondialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_alwaysopenpdfexternally", + "displayName": "Always open PDF files externally", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_alwaysopenpdfexternally_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_alwaysopenpdfexternally_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_applicationlocalevalue", + "displayName": "Set application locale", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_applicationlocalevalue_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_applicationlocalevalue_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_applicationlocalevalue_applicationlocalevalue", + "displayName": "Application locale (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowed", + "displayName": "Allow or block audio capture", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowedurls", + "displayName": "Sites that can access audio capture devices without requesting permission", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowedurls_audiocaptureallowedurlsdesc", + "displayName": "Sites that can access audio capture devices without requesting permission (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofilladdressenabled", + "displayName": "Enable AutoFill for addresses", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofilladdressenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofilladdressenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofillcreditcardenabled", + "displayName": "Enable AutoFill for payment instruments", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofillcreditcardenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofillcreditcardenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun", + "displayName": "Automatically import another browser's data and settings at first run", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun", + "displayName": "Automatically import another browser's data and settings at first run (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_0", + "displayName": "Automatically imports all supported datatypes and settings from the default browser", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_1", + "displayName": "Automatically imports all supported datatypes and settings from Internet Explorer", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_2", + "displayName": "Automatically imports all supported datatypes and settings from Google Chrome", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_3", + "displayName": "Automatically imports all supported datatypes and settings from Safari", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_4", + "displayName": "Disables automatic import, and the import section of the first-run experience is skipped", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_backgroundmodeenabled", + "displayName": "Continue running background apps after Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_backgroundmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_backgroundmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_blockthirdpartycookies", + "displayName": "Block third party cookies", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_blockthirdpartycookies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_blockthirdpartycookies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browseraddprofileenabled", + "displayName": "Enable profile creation from the Identity flyout menu or the Settings page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browseraddprofileenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browseraddprofileenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browserguestmodeenabled", + "displayName": "Enable guest mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browserguestmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browserguestmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsernetworktimequeriesenabled", + "displayName": "Allow queries to a Browser Network Time service", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsernetworktimequeriesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsernetworktimequeriesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin", + "displayName": "Browser sign-in settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_browsersignin", + "displayName": "Browser sign-in settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_browsersignin_0", + "displayName": "Disable browser sign-in", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_browsersignin_1", + "displayName": "Enable browser sign-in", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_browsersignin_2", + "displayName": "Force users to sign-in to use the browser", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_builtindnsclientenabled", + "displayName": "Use built-in DNS client", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_builtindnsclientenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_builtindnsclientenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforcas", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforcas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforcas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforcas_certificatetransparencyenforcementdisabledforcasdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforlegacycas", + "displayName": "Disable Certificate Transparency enforcement for a list of legacy certificate authorities", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforlegacycas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforlegacycas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforlegacycas_certificatetransparencyenforcementdisabledforlegacycasdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of legacy certificate authorities (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforurls", + "displayName": "Disable Certificate Transparency enforcement for specific URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforurls_certificatetransparencyenforcementdisabledforurlsdesc", + "displayName": "Disable Certificate Transparency enforcement for specific URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_componentupdatesenabled", + "displayName": "Enable component updates in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_componentupdatesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_componentupdatesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configuredonottrack", + "displayName": "Configure Do Not Track", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configuredonottrack_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configuredonottrack_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configureonlinetexttospeech", + "displayName": "Configure Online Text To Speech", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configureonlinetexttospeech_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configureonlinetexttospeech_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability", + "displayName": "Control where developer tools can be used", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_developertoolsavailability", + "displayName": "Control where developer tools can be used (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_developertoolsavailability_0", + "displayName": "Block the developer tools on extensions installed by enterprise policy, allow in other contexts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_developertoolsavailability_1", + "displayName": "Allow using the developer tools", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_developertoolsavailability_2", + "displayName": "Don't allow using the developer tools", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disable3dapis", + "displayName": "Disable support for 3D graphics APIs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disable3dapis_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disable3dapis_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disablescreenshots", + "displayName": "Disable taking screenshots", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disablescreenshots_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disablescreenshots_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachedir", + "displayName": "Set disk cache directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachedir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachedir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachedir_diskcachedir", + "displayName": "Set disk cache directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachesize", + "displayName": "Set disk cache size, in bytes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachesize_diskcachesize", + "displayName": "Set disk cache size: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloaddirectory", + "displayName": "Set download directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloaddirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloaddirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloaddirectory_downloaddirectory", + "displayName": "Set download directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions", + "displayName": "Allow download restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions", + "displayName": "Download restrictions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_1", + "displayName": "Block dangerous downloads", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_2", + "displayName": "Block potentially dangerous downloads", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_editfavoritesenabled", + "displayName": "Allows users to edit favorites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_editfavoritesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_editfavoritesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledeprecatedwebplatformfeatures", + "displayName": "Re-enable deprecated web platform features for a limited time", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledeprecatedwebplatformfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledeprecatedwebplatformfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledeprecatedwebplatformfeatures_enabledeprecatedwebplatformfeaturesdesc", + "displayName": "Re-enable deprecated web platform features for a limited time (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledomainactionsdownload", + "displayName": "Enable Domain Actions Download from Microsoft (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledomainactionsdownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledomainactionsdownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enableonlinerevocationchecks", + "displayName": "Enable online OCSP/CRL checks", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enableonlinerevocationchecks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enableonlinerevocationchecks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_2", + "displayName": "Retrieve configurations and experiments", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_1", + "displayName": "Retrieve configurations only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_0", + "displayName": "Disable communication with the Experimentation and Configuration Service", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_favoritesbarenabled", + "displayName": "Enable favorites bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_favoritesbarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_favoritesbarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch", + "displayName": "Enforce Bing SafeSearch", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_forcebingsafesearch", + "displayName": "Enforce Bing SafeSearch (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_forcebingsafesearch_0", + "displayName": "Don't configure search restrictions in Bing", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_forcebingsafesearch_1", + "displayName": "Configure moderate search restrictions in Bing", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_forcebingsafesearch_2", + "displayName": "Configure strict search restrictions in Bing", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceephemeralprofiles", + "displayName": "Enable use of ephemeral profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceephemeralprofiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceephemeralprofiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcegooglesafesearch", + "displayName": "Enforce Google SafeSearch", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcegooglesafesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcegooglesafesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_forceyoutuberestrict_0", + "displayName": "Do not enforce Restricted Mode on YouTube", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_forceyoutuberestrict_1", + "displayName": "Enforce at least Moderate Restricted Mode on YouTube", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_forceyoutuberestrict_2", + "displayName": "Enforce Strict Restricted Mode for YouTube", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_fullscreenallowed", + "displayName": "Allow full screen mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_fullscreenallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_fullscreenallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_hardwareaccelerationmodeenabled", + "displayName": "Use hardware acceleration when available", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_hardwareaccelerationmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_hardwareaccelerationmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importautofillformdata", + "displayName": "Allow importing of autofill form data", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importautofillformdata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importautofillformdata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importfavorites", + "displayName": "Allow importing of favorites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importfavorites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importfavorites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhistory", + "displayName": "Allow importing of browsing history", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhomepage", + "displayName": "Allow importing of home page settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importpaymentinfo", + "displayName": "Allow importing of payment info", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importpaymentinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importpaymentinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsavedpasswords", + "displayName": "Allow importing of saved passwords", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsavedpasswords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsavedpasswords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsearchengine", + "displayName": "Allow importing of search engine settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsearchengine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsearchengine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability", + "displayName": "Configure InPrivate mode availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_inprivatemodeavailability", + "displayName": "Configure InPrivate mode availability (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_inprivatemodeavailability_0", + "displayName": "InPrivate mode available", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_inprivatemodeavailability_1", + "displayName": "InPrivate mode disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_inprivatemodeavailability_2", + "displayName": "InPrivate mode forced", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel", + "displayName": "Configure Internet Explorer integration", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_internetexplorerintegrationlevel", + "displayName": "Configure Internet Explorer integration (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_internetexplorerintegrationlevel_1", + "displayName": "Internet Explorer mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_internetexplorerintegrationlevel_2", + "displayName": "Internet Explorer 11", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_isolateorigins", + "displayName": "Enable site isolation for specific origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_isolateorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_isolateorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_isolateorigins_isolateorigins", + "displayName": "Enable site isolation for specific origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedfavorites", + "displayName": "Configure favorites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedfavorites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedfavorites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedfavorites_managedfavorites", + "displayName": "Configure favorites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedsearchengines", + "displayName": "Manage Search Engines", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedsearchengines_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedsearchengines_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedsearchengines_managedsearchengines", + "displayName": "Manage Search Engines (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_maxconnectionsperproxy", + "displayName": "Maximum number of concurrent connections to the proxy server", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_maxconnectionsperproxy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_maxconnectionsperproxy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_maxconnectionsperproxy_maxconnectionsperproxy", + "displayName": "Maximum number of concurrent connections to the proxy server: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_mediaroutercastallowallips", + "displayName": "Allow Google Cast to connect to Cast devices on all IP addresses", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_mediaroutercastallowallips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_mediaroutercastallowallips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_metricsreportingenabled", + "displayName": "Enable usage and crash-related data reporting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_metricsreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_metricsreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions", + "displayName": "Enable network prediction", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_networkpredictionoptions", + "displayName": "Enable network prediction (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular.\r\n(Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_networkpredictionoptions_2", + "displayName": "Don't predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_overridesecurityrestrictionsoninsecureorigin", + "displayName": "Control where security restrictions on insecure origins apply", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_overridesecurityrestrictionsoninsecureorigin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_overridesecurityrestrictionsoninsecureorigin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_overridesecurityrestrictionsoninsecureorigin_overridesecurityrestrictionsoninsecureorigindesc", + "displayName": "Control where security restrictions on insecure origins apply (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_proactiveauthenabled", + "displayName": "Enable Proactive Authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_proactiveauthenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_proactiveauthenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promotionaltabsenabled", + "displayName": "Enable full-tab promotional content", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promotionaltabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promotionaltabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promptfordownloadlocation", + "displayName": "Ask where to save downloaded files", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promptfordownloadlocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promptfordownloadlocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_quicallowed", + "displayName": "Allow QUIC protocol", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_quicallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_quicallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_applicationlocalevalue_recommended", + "displayName": "Set application locale", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_applicationlocalevalue_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_applicationlocalevalue_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_applicationlocalevalue_recommended_applicationlocalevalue", + "displayName": "Application locale (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofilladdressenabled_recommended", + "displayName": "Enable AutoFill for addresses", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofilladdressenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofilladdressenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofillcreditcardenabled_recommended", + "displayName": "Enable AutoFill for credit cards", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofillcreditcardenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofillcreditcardenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_backgroundmodeenabled_recommended", + "displayName": "Continue running background apps after Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_backgroundmodeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_backgroundmodeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_blockthirdpartycookies_recommended", + "displayName": "Block third party cookies", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_blockthirdpartycookies_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_blockthirdpartycookies_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloaddirectory_recommended", + "displayName": "Set download directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloaddirectory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloaddirectory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloaddirectory_recommended_downloaddirectory", + "displayName": "Set download directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended", + "displayName": "Allow download restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions", + "displayName": "Download restrictions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_1", + "displayName": "Block dangerous downloads", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_2", + "displayName": "Block potentially dangerous downloads", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_favoritesbarenabled_recommended", + "displayName": "Enable favorites bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_favoritesbarenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_favoritesbarenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importautofillformdata_recommended", + "displayName": "Allow importing of autofill form data", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importautofillformdata_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importautofillformdata_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importfavorites_recommended", + "displayName": "Allow importing of favorites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importfavorites_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importfavorites_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importhistory_recommended", + "displayName": "Allow importing of browsing history", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importhistory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importhistory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importpaymentinfo_recommended", + "displayName": "Allow importing of payment info", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importpaymentinfo_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importpaymentinfo_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsavedpasswords_recommended", + "displayName": "Allow importing of saved passwords", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsavedpasswords_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsavedpasswords_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsearchengine_recommended", + "displayName": "Allow importing of search engine settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsearchengine_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsearchengine_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended", + "displayName": "Enable network prediction", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_networkpredictionoptions", + "displayName": "Enable network prediction (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular.\r\n(Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_networkpredictionoptions_2", + "displayName": "Don't predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_resolvenavigationerrorsusewebservice_recommended", + "displayName": "Enable resolution of navigation errors using a web service", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_resolvenavigationerrorsusewebservice_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_resolvenavigationerrorsusewebservice_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_searchsuggestenabled_recommended", + "displayName": "Enable search suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_searchsuggestenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_searchsuggestenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_syncdisabled_recommended", + "displayName": "Disable synchronization of data using Microsoft sync services", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_syncdisabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_syncdisabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_translateenabled_recommended", + "displayName": "Enable Translate", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_translateenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_translateenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended", + "displayName": "Register protocol handlers", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_registeredprotocolhandlers", + "displayName": "Register protocol handlers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended", + "displayName": "Enable saving passwords to the password manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printheaderfooter_recommended", + "displayName": "Print headers and footers", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printheaderfooter_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printheaderfooter_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended", + "displayName": "Set the system default printer as the default printer", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenenabled_recommended", + "displayName": "Configure Microsoft Defender SmartScreen", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepageisnewtabpage_recommended", + "displayName": "Set the new tab page as the home page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepageisnewtabpage_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepageisnewtabpage_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepagelocation_recommended", + "displayName": "Configure the home page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepagelocation_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepagelocation_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepagelocation_recommended_homepagelocation", + "displayName": "Home page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_newtabpagelocation_recommended", + "displayName": "Configure the new tab page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_newtabpagelocation_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_newtabpagelocation_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_newtabpagelocation_recommended_newtabpagelocation", + "displayName": "New tab page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended", + "displayName": "Action to take on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup", + "displayName": "Action to take on startup (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_5", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartupurls_recommended", + "displayName": "Sites to open when the browser starts", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartupurls_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartupurls_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartupurls_recommended_restoreonstartupurlsdesc", + "displayName": "Sites to open when the browser starts (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_showhomebutton_recommended", + "displayName": "Show Home button on toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_showhomebutton_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_showhomebutton_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification", + "displayName": "Notify a user that a browser restart is recommended or required for pending updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_relaunchnotification", + "displayName": "Notify a user that a browser restart is recommended or required for pending updates (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_relaunchnotification_1", + "displayName": "Recommended - Show a recurring prompt to the user indicating that a restart is recommended", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_relaunchnotification_2", + "displayName": "Required - Show a recurring prompt to the user indicating that a restart is required", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotificationperiod", + "displayName": "Set the time period for update notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotificationperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotificationperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotificationperiod_relaunchnotificationperiod", + "displayName": "Set the time period for update notifications: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_requireonlinerevocationchecksforlocalanchors", + "displayName": "Specify if online OCSP/CRL checks are required for local trust anchors", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_requireonlinerevocationchecksforlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_requireonlinerevocationchecksforlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_resolvenavigationerrorsusewebservice", + "displayName": "Enable resolution of navigation errors using a web service", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_resolvenavigationerrorsusewebservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_resolvenavigationerrorsusewebservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_restrictsignintopattern", + "displayName": "Restrict which accounts can be used to sign in to Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_restrictsignintopattern_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_restrictsignintopattern_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_restrictsignintopattern_restrictsignintopattern", + "displayName": "Restrict which accounts can be used as Microsoft Edge primary accounts (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_runallflashinallowmode", + "displayName": "Extend Adobe Flash content setting to all content", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_runallflashinallowmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_runallflashinallowmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_savingbrowserhistorydisabled", + "displayName": "Disable saving browser history", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_savingbrowserhistorydisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_savingbrowserhistorydisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_searchsuggestenabled", + "displayName": "Enable search suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_searchsuggestenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_searchsuggestenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_securitykeypermitattestation", + "displayName": "Websites or domains that don't need permission to use direct Security Key attestation", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_securitykeypermitattestation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_securitykeypermitattestation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_securitykeypermitattestation_securitykeypermitattestationdesc", + "displayName": "Websites or domains that don't need permission to use direct Security Key attestation (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendintranettointernetexplorer", + "displayName": "Send all intranet sites to Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendintranettointernetexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendintranettointernetexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendsiteinfotoimproveservices", + "displayName": "Send site information to improve Microsoft services", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendsiteinfotoimproveservices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendsiteinfotoimproveservices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_showofficeshortcutinfavoritesbar", + "displayName": "Show Microsoft Office shortcut in favorites bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_showofficeshortcutinfavoritesbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_showofficeshortcutinfavoritesbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_siteperprocess", + "displayName": "Enable site isolation for every site", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_siteperprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_siteperprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellcheckenabled", + "displayName": "Enable spellcheck", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellcheckenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellcheckenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellchecklanguage", + "displayName": "Enable specific spellcheck languages", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellchecklanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellchecklanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellchecklanguage_spellchecklanguagedesc", + "displayName": "Enable specific spellcheck languages (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslerroroverrideallowed", + "displayName": "Allow users to proceed from the HTTPS warning page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslerroroverrideallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslerroroverrideallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin", + "displayName": "Minimum TLS version enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_sslversionmin", + "displayName": "Minimum SSL version enabled (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_sslversionmin_tls1", + "displayName": "TLS 1.0", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_sslversionmin_tls1.1", + "displayName": "TLS 1.1", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_sslversionmin_tls1.2", + "displayName": "TLS 1.2", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_suppressunsupportedoswarning", + "displayName": "Suppress the unsupported OS warning", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_suppressunsupportedoswarning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_suppressunsupportedoswarning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_syncdisabled", + "displayName": "Disable synchronization of data using Microsoft sync services", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_syncdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_syncdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_tablifecyclesenabled", + "displayName": "Configure tab lifecycles", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_tablifecyclesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_tablifecyclesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_taskmanagerendprocessenabled", + "displayName": "Enable ending processes in the Browser task manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_taskmanagerendprocessenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_taskmanagerendprocessenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_translateenabled", + "displayName": "Enable Translate", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_translateenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_translateenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlallowlist", + "displayName": "Define a list of allowed URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlallowlist_urlallowlistdesc", + "displayName": "Define a list of allowed URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlblocklist", + "displayName": "Block access to a list of URLs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlblocklist_urlblocklistdesc", + "displayName": "Block access to a list of URLs (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userdatadir", + "displayName": "Set the user data directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userdatadir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userdatadir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userdatadir_userdatadir", + "displayName": "Set the user data directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userfeedbackallowed", + "displayName": "Allow user feedback", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userfeedbackallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userfeedbackallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowed", + "displayName": "Allow or block video capture", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowedurls", + "displayName": "Sites that can access video capture devices without requesting permission", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowedurls_videocaptureallowedurlsdesc", + "displayName": "Sites that can access video capture devices without requesting permission (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webdriveroverridesincompatiblepolicies", + "displayName": "Allow WebDriver to Override Incompatible Policies (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webdriveroverridesincompatiblepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webdriveroverridesincompatiblepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling", + "displayName": "Restrict exposure of local IP address by WebRTC", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling", + "displayName": "Restrict exposure of localhost IP address by WebRTC (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling_default", + "displayName": "Allow all interfaces. This exposes the local IP address", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling_default_public_and_private_interfaces", + "displayName": "Allow public and private interfaces over http default route. This exposes the local IP address", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling_default_public_interface_only", + "displayName": "Allow public interface over http default route. This doesn't expose the local IP address", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling_disable_non_proxied_udp", + "displayName": "Use TCP unless proxy server supports UDP. This doesn't expose the local IP address", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtcudpportrange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtcudpportrange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtcudpportrange_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_wpadquickcheckenabled", + "displayName": "Set WPAD optimization", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_wpadquickcheckenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_wpadquickcheckenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_autoselectcertificateforurls", + "displayName": "Automatically select client certificates for these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_autoselectcertificateforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_autoselectcertificateforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_autoselectcertificateforurls_autoselectcertificateforurlsdesc", + "displayName": "Automatically select client certificates for these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesallowedforurls", + "displayName": "Allow cookies on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesallowedforurls_cookiesallowedforurlsdesc", + "displayName": "Allow cookies on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesblockedforurls", + "displayName": "Block cookies on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesblockedforurls_cookiesblockedforurlsdesc", + "displayName": "Block cookies on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiessessiononlyforurls", + "displayName": "Limit cookies from specific websites to the current session", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiessessiononlyforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiessessiononlyforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiessessiononlyforurls_cookiessessiononlyforurlsdesc", + "displayName": "Limit cookies from specific websites to the current session (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting", + "displayName": "Configure cookies", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_defaultcookiessetting", + "displayName": "Configure cookies (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_defaultcookiessetting_1", + "displayName": "Let all sites create cookies", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_defaultcookiessetting_2", + "displayName": "Don't let any site create cookies", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_defaultcookiessetting_4", + "displayName": "Keep cookies for the duration of the session", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting", + "displayName": "Default geolocation setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting", + "displayName": "Default geolocation setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_1", + "displayName": "Allow sites to track users' physical location", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_2", + "displayName": "Don't allow any site to track users' physical location", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_3", + "displayName": "Ask whenever a site wants to track users' physical location", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting", + "displayName": "Default images setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_defaultimagessetting", + "displayName": "Default images setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_defaultimagessetting_1", + "displayName": "Allow all sites to show all images", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_defaultimagessetting_2", + "displayName": "Don't allow any site to show images", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting", + "displayName": "Default JavaScript setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting", + "displayName": "Default JavaScript setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting_1", + "displayName": "Allow all sites to run JavaScript", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting_2", + "displayName": "Don't allow any site to run JavaScript", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting", + "displayName": "Default notification setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_defaultnotificationssetting", + "displayName": "Default notification setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_defaultnotificationssetting_1", + "displayName": "Allow sites to show desktop notifications", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_defaultnotificationssetting_2", + "displayName": "Don't allow any site to show desktop notifications", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_defaultnotificationssetting_3", + "displayName": "Ask every time a site wants to show desktop notifications", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting", + "displayName": "Default Adobe Flash setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_defaultpluginssetting", + "displayName": "Default Adobe Flash setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_defaultpluginssetting_2", + "displayName": "Block the Adobe Flash plugin", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_defaultpluginssetting_3", + "displayName": "Click to play", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting", + "displayName": "Default pop-up window setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_defaultpopupssetting", + "displayName": "Default pop-up window setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_defaultpopupssetting_1", + "displayName": "Allow all sites to show pop-ups", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_defaultpopupssetting_2", + "displayName": "Do not allow any site to show popups", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting_2", + "displayName": "Do not allow any site to request access to Bluetooth devices via the Web Bluetooth API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a nearby Bluetooth device", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting_2", + "displayName": "Do not allow any site to request access to USB devices via the WebUSB API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a connected USB device", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesallowedforurls", + "displayName": "Allow images on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesallowedforurls_imagesallowedforurlsdesc", + "displayName": "Allow images on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesblockedforurls", + "displayName": "Block images on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesblockedforurls_imagesblockedforurlsdesc", + "displayName": "Block images on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptallowedforurls", + "displayName": "Allow JavaScript on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptallowedforurls_javascriptallowedforurlsdesc", + "displayName": "Allow JavaScript on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptblockedforurls", + "displayName": "Block JavaScript on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptblockedforurls_javascriptblockedforurlsdesc", + "displayName": "Block JavaScript on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsallowedforurls", + "displayName": "Allow notifications on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsallowedforurls_notificationsallowedforurlsdesc", + "displayName": "Allow notifications on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsblockedforurls", + "displayName": "Block notifications on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsblockedforurls_notificationsblockedforurlsdesc", + "displayName": "Block notifications on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsallowedforurls", + "displayName": "Allow the Adobe Flash plug-in on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsallowedforurls_pluginsallowedforurlsdesc", + "displayName": "Allow the Adobe Flash plug-in on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsblockedforurls", + "displayName": "Block the Adobe Flash plug-in on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsblockedforurls_pluginsblockedforurlsdesc", + "displayName": "Block the Adobe Flash plug-in on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsallowedforurls", + "displayName": "Allow pop-up windows on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsallowedforurls_popupsallowedforurlsdesc", + "displayName": "Allow pop-up windows on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsblockedforurls", + "displayName": "Block pop-up windows on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsblockedforurls_popupsblockedforurlsdesc", + "displayName": "Block pop-up windows on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusballowdevicesforurls", + "displayName": "Grant access to specific sites to connect to specific USB devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusballowdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusballowdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusballowdevicesforurls_webusballowdevicesforurls", + "displayName": "Grant access to specific sites to connect to specific USB devices (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbaskforurls", + "displayName": "Allow WebUSB on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbaskforurls_webusbaskforurlsdesc", + "displayName": "Allow WebUSB on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbblockedforurls", + "displayName": "Block WebUSB on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbblockedforurls_webusbblockedforurlsdesc", + "displayName": "Block WebUSB on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderenabled", + "displayName": "Enable the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderencodings", + "displayName": "Default search provider encodings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderencodings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderencodings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderencodings_defaultsearchproviderencodingsdesc", + "displayName": "Default search provider encodings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurl", + "displayName": "Specifies the search-by-image feature for the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurl_defaultsearchproviderimageurl", + "displayName": "Specifies the search-by-image feature for the default search provider (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for an image URL that uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurlpostparams_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for an image URL that uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderkeyword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderkeyword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderkeyword_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidername", + "displayName": "Default search provider name", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidername_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidername_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidername_defaultsearchprovidername", + "displayName": "Default search provider name (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersearchurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersearchurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersearchurl_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersuggesturl", + "displayName": "Default search provider URL for suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersuggesturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersuggesturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersuggesturl_defaultsearchprovidersuggesturl", + "displayName": "Default search provider URL for suggestions (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionallowedtypes", + "displayName": "Configure allowed extension types", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionallowedtypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionallowedtypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionallowedtypes_extensionallowedtypesdesc", + "displayName": "Types of extensions/apps that are allowed to be installed (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallallowlist", + "displayName": "Allow specific extensions to be installed", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallallowlist_extensioninstallallowlistdesc", + "displayName": "Extension IDs to exempt from the block list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallblocklist", + "displayName": "Control which extensions cannot be installed", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallblocklist_extensioninstallblocklistdesc", + "displayName": "Extension IDs the user should be prevented from installing (or * for all) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallforcelist", + "displayName": "Control which extensions are installed silently", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallforcelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallforcelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallforcelist_extensioninstallforcelistdesc", + "displayName": "Extension/App IDs and update URLs to be silently installed (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallsources", + "displayName": "Configure extension and user script install sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallsources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallsources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallsources_extensioninstallsourcesdesc", + "displayName": "URL patterns to allow extension, app, and user script installs from (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionsettings", + "displayName": "Configure extension management settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionsettings_extensionsettings", + "displayName": "Configure extension management settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_enablemediarouter", + "displayName": "Enable Google Cast", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_enablemediarouter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_enablemediarouter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_showcasticonintoolbar", + "displayName": "Show the cast icon in the toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_showcasticonintoolbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_showcasticonintoolbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_allowcrossoriginauthprompt", + "displayName": "Allow cross-origin HTTP Basic Auth prompts", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_allowcrossoriginauthprompt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_allowcrossoriginauthprompt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authnegotiatedelegateallowlist", + "displayName": "Specifies a list of servers that Microsoft Edge can delegate user credentials to", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authnegotiatedelegateallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authnegotiatedelegateallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authnegotiatedelegateallowlist_authnegotiatedelegateallowlist", + "displayName": "Specifies a list of servers that Microsoft Edge can delegate user credentials to (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authschemes", + "displayName": "Supported authentication schemes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authschemes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authschemes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authschemes_authschemes", + "displayName": "Supported authentication schemes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authserverallowlist", + "displayName": "Configure list of allowed authentication servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authserverallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authserverallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authserverallowlist_authserverallowlist", + "displayName": "Configure list of allowed authentication servers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_disableauthnegotiatecnamelookup", + "displayName": "Disable CNAME lookup when negotiating Kerberos authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_disableauthnegotiatecnamelookup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_disableauthnegotiatecnamelookup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_enableauthnegotiateport", + "displayName": "Include non-standard port in Kerberos SPN", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_enableauthnegotiateport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_enableauthnegotiateport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingallowlist", + "displayName": "Control which native messaging hosts users can use", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingallowlist_nativemessagingallowlistdesc", + "displayName": "Names of the native messaging hosts to exempt from the block list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingblocklist", + "displayName": "Configure native messaging block list", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingblocklist_nativemessagingblocklistdesc", + "displayName": "Names of the forbidden native messaging hosts (or * for all) (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessaginguserlevelhosts", + "displayName": "Allow user-level native messaging hosts (installed without admin permissions)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessaginguserlevelhosts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessaginguserlevelhosts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordmanagerenabled", + "displayName": "Enable saving passwords to the password manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordmanagerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordmanagerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionchangepasswordurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionchangepasswordurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionchangepasswordurl_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionloginurls", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture fingerprint of password", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionloginurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionloginurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionloginurls_passwordprotectionloginurlsdesc", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture fingerprint of password (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger", + "displayName": "Configure password protection warning trigger", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger", + "displayName": "Configure password protection warning trigger (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_0", + "displayName": "Password protection warning is off", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_1", + "displayName": "Password protection warning is triggered by password reuse", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_defaultprinterselection", + "displayName": "Default printer selection rules", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_defaultprinterselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_defaultprinterselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_defaultprinterselection_defaultprinterselection", + "displayName": "Default printer selection rules (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printheaderfooter", + "displayName": "Print headers and footers", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printheaderfooter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printheaderfooter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printingenabled", + "displayName": "Enable printing", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printpreviewusesystemdefaultprinter", + "displayName": "Set the system default printer as the default printer", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printpreviewusesystemdefaultprinter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printpreviewusesystemdefaultprinter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_usesystemprintdialog", + "displayName": "Print using system print dialog", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_usesystemprintdialog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_usesystemprintdialog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxybypasslist", + "displayName": "Configure proxy bypass rules", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxybypasslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxybypasslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxybypasslist_proxybypasslist", + "displayName": "Comma-separated list of proxy bypass rules (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode", + "displayName": "Configure proxy server settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode", + "displayName": "Configure proxy server settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_direct", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_auto_detect", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_pac_script", + "displayName": "Use a .pac proxy script", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_fixed_servers", + "displayName": "Use fixed proxy servers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_system", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxypacurl", + "displayName": "Set the proxy .pac file URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxypacurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxypacurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxypacurl_proxypacurl", + "displayName": "Set the proxy .pac file URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxyserver", + "displayName": "Configure address or URL of proxy server", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxyserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxyserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxyserver_proxyserver", + "displayName": "Configure address or URL of proxy server (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxysettings", + "displayName": "Proxy settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxysettings_proxysettings", + "displayName": "Proxy settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverride", + "displayName": "Prevent bypassing Microsoft Defender SmartScreen prompts for sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverride_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverride_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverrideforfiles", + "displayName": "Prevent bypassing of Microsoft Defender SmartScreen warnings about downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverrideforfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverrideforfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenallowlistdomains", + "displayName": "Configure the list of domains for which Microsoft Defender SmartScreen won't trigger warnings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenallowlistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenallowlistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenallowlistdomains_smartscreenallowlistdomainsdesc", + "displayName": "Configure the list of domains for which SmartScreen won't trigger warnings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenenabled", + "displayName": "Configure Microsoft Defender SmartScreen", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepageisnewtabpage", + "displayName": "Set the new tab page as the home page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepageisnewtabpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepageisnewtabpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepagelocation", + "displayName": "Configure the home page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepagelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepagelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepagelocation_homepagelocation", + "displayName": "Home page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagehidedefaulttopsites", + "displayName": "Hide the default top sites from the new tab page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagehidedefaulttopsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagehidedefaulttopsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagelocation", + "displayName": "Configure the new tab page URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagelocation_newtabpagelocation", + "displayName": "New tab page URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup", + "displayName": "Action to take on startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup", + "displayName": "Action to take on startup (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_5", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartupurls", + "displayName": "Sites to open when the browser starts", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartupurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartupurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartupurls_restoreonstartupurlsdesc", + "displayName": "Sites to open when the browser starts (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_showhomebutton", + "displayName": "Show Home button on toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_showhomebutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_showhomebutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions", + "displayName": "Allow download restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions", + "displayName": "Download restrictions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_1", + "displayName": "Block malicious downloads and dangerous file types", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_2", + "displayName": "Block potentially dangerous or unwanted downloads and dangerous file types", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_4", + "displayName": "Block malicious downloads", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended", + "displayName": "Allow download restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions", + "displayName": "Download restrictions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_1", + "displayName": "Block malicious downloads and dangerous file types", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_2", + "displayName": "Block potentially dangerous or unwanted downloads and dangerous file types", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_4", + "displayName": "Block malicious downloads", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_adstransparencyenabled", + "displayName": "Configure if the ads transparency feature is enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_adstransparencyenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_adstransparencyenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_hiderestoredialogenabled", + "displayName": "Hide restore pages dialog after browser crash", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_hiderestoredialogenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_hiderestoredialogenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_pdfsecuremode", + "displayName": "Secure mode and Certificate-based Digital Signature validation in native PDF reader", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_pdfsecuremode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_pdfsecuremode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_promptonmultiplematchingcertificates", + "displayName": "Prompt the user to select a certificate when multiple certificates match", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_promptonmultiplematchingcertificates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_promptonmultiplematchingcertificates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting", + "displayName": "Control use of the WebHID API", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_defaultwebhidguardsetting", + "displayName": "Control use of the WebHID API (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_defaultwebhidguardsetting_2", + "displayName": "Do not allow any site to request access to HID devices via the WebHID API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_defaultwebhidguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a HID device", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidaskforurls", + "displayName": "Allow the WebHID API on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidaskforurls_webhidaskforurlsdesc", + "displayName": "Allow the WebHID API on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidblockedforurls", + "displayName": "Block the WebHID API on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidblockedforurls_webhidblockedforurlsdesc", + "displayName": "Block the WebHID API on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_configurekeyboardshortcuts", + "displayName": "Configure the list of commands for which to disable keyboard shortcuts", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_configurekeyboardshortcuts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_configurekeyboardshortcuts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_configurekeyboardshortcuts_configurekeyboardshortcuts", + "displayName": "Configure the list of commands for which to disable keyboard shortcuts (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_edgeassetdeliveryserviceenabled", + "displayName": "Allow features to download assets from the Asset Delivery Service", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_edgeassetdeliveryserviceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_edgeassetdeliveryserviceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_internetexplorermodeenablesavepageas", + "displayName": "Allow Save page as in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_internetexplorermodeenablesavepageas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_internetexplorermodeenablesavepageas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_edgeassetdeliveryserviceenabled_recommended", + "displayName": "Allow features to download assets from the Asset Delivery Service", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_edgeassetdeliveryserviceenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_edgeassetdeliveryserviceenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_sitesafetyservicesenabled_recommended", + "displayName": "Allow users to configure Site safety services", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_sitesafetyservicesenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_sitesafetyservicesenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended~extensions_recommended_controldefaultstateofallowextensionfromotherstoressettingenabled_recommended", + "displayName": "Configure default state of Allow extensions from other stores setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended~extensions_recommended_controldefaultstateofallowextensionfromotherstoressettingenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended~extensions_recommended_controldefaultstateofallowextensionfromotherstoressettingenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_sitesafetyservicesenabled", + "displayName": "Allow users to configure Site safety services", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_sitesafetyservicesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_sitesafetyservicesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~identity_edgedefaultprofileenabled", + "displayName": "Default Profile Setting Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~identity_edgedefaultprofileenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~identity_edgedefaultprofileenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~identity_edgedefaultprofileenabled_edgedefaultprofileenabled", + "displayName": "Default Profile Setting Enabled (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~kioskmode_kioskswipegesturesenabled", + "displayName": "Swipe gestures in Microsoft Edge kiosk mode enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~kioskmode_kioskswipegesturesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~kioskmode_kioskswipegesturesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_networkservicesandboxenabled", + "displayName": "Enable the network service sandbox", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_networkservicesandboxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_networkservicesandboxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_outlookhubmenuenabled", + "displayName": "Allow users to access the Outlook menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_outlookhubmenuenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_outlookhubmenuenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_recommended_outlookhubmenuenabled_recommended", + "displayName": "Allow users to access the Outlook menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_recommended_outlookhubmenuenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_recommended_outlookhubmenuenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_settimeoutwithout1msclampenabled", + "displayName": "Control Javascript setTimeout() function minimum timeout (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_settimeoutwithout1msclampenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_settimeoutwithout1msclampenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_useragentclienthintsgreaseupdateenabled", + "displayName": "Control the User-Agent Client Hints GREASE Update feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_useragentclienthintsgreaseupdateenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_useragentclienthintsgreaseupdateenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge~httpauthentication_allhttpauthschemesallowedfororigins", + "displayName": "List of origins that allow all HTTP authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge~httpauthentication_allhttpauthschemesallowedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge~httpauthentication_allhttpauthschemesallowedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge~httpauthentication_allhttpauthschemesallowedfororigins_allhttpauthschemesallowedfororiginsdesc", + "displayName": "List of origins that allow all HTTP authentication (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_internetexplorerzoomdisplay", + "displayName": "Display zoom in IE Mode tabs with DPI Scale included like it is in Internet Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_internetexplorerzoomdisplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_internetexplorerzoomdisplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_livecaptionsallowed", + "displayName": "Live captions allowed", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_livecaptionsallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_livecaptionsallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_originagentclusterdefaultenabled", + "displayName": "Origin-keyed agent clustering enabled by default", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_originagentclusterdefaultenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_originagentclusterdefaultenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge~identity_guidedswitchenabled", + "displayName": "Guided Switch Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge~identity_guidedswitchenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge~identity_guidedswitchenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_alloweddomainsforapps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_alloweddomainsforapps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_alloweddomainsforapps_alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_askbeforecloseenabled", + "displayName": "Get user confirmation before closing a browser window with multiple tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_askbeforecloseenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_askbeforecloseenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting", + "displayName": "Configure browser process code integrity guard setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_browsercodeintegritysetting", + "displayName": "Configure browser process code integrity guard setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_browsercodeintegritysetting_0", + "displayName": "Do not enable code integrity guard in the browser process.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_browsercodeintegritysetting_1", + "displayName": "Enable code integrity guard audit mode in the browser process.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_browsercodeintegritysetting_2", + "displayName": "Enable code integrity guard enforcement in the browser process.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_doubleclickclosetabenabled", + "displayName": "Double Click feature in Microsoft Edge enabled (only available in China)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_doubleclickclosetabenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_doubleclickclosetabenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_edgeedropenabled", + "displayName": "Enable Drop feature in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_edgeedropenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_edgeedropenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_importoneachlaunch", + "displayName": "Allow import of data from other browsers on each Microsoft Edge launch", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_importoneachlaunch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_importoneachlaunch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_pdfxfaenabled", + "displayName": "XFA support in native PDF reader enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_pdfxfaenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_pdfxfaenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_quicksearchshowminimenu", + "displayName": "Enables Microsoft Edge mini menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_quicksearchshowminimenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_quicksearchshowminimenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_askbeforecloseenabled_recommended", + "displayName": "Get user confirmation before closing a browser window with multiple tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_askbeforecloseenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_askbeforecloseenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_quicksearchshowminimenu_recommended", + "displayName": "Enables Microsoft Edge mini menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_quicksearchshowminimenu_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_quicksearchshowminimenu_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_textpredictionenabled", + "displayName": "Text prediction enabled by default", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_textpredictionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_textpredictionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge~passwordmanager_passwordmanagerrestrictlengthenabled", + "displayName": "Restrict the length of passwords that can be saved in the Password Manager", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge~passwordmanager_passwordmanagerrestrictlengthenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge~passwordmanager_passwordmanagerrestrictlengthenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_exemptfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_exemptfiletypedownloadwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_exemptfiletypedownloadwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_exemptfiletypedownloadwarnings_exemptfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_internetexplorerintegrationalwayswaitforunload", + "displayName": "Wait for Internet Explorer mode tabs to completely unload before ending the browser session", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_internetexplorerintegrationalwayswaitforunload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_internetexplorerintegrationalwayswaitforunload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorproofingenabled", + "displayName": "Spell checking provided by Microsoft Editor", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorproofingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorproofingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorsynonymsenabled", + "displayName": "Synonyms are provided when using Microsoft Editor spell checker", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorsynonymsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorsynonymsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_configurefriendlyurlformat", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_configurefriendlyurlformat_1", + "displayName": "The plain URL without any extra information, such as the page's title. This is the recommended option when this policy is configured. For more information, see the description.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_configurefriendlyurlformat_3", + "displayName": "Titled Hyperlink: A hyperlink that points to the copied URL, but whose visible text is the title of the destination page. This is the Friendly URL format.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_configurefriendlyurlformat_4", + "displayName": "Coming soon. If set, behaves the same as 'Plain URL'.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_unthrottlednestedtimeoutenabled", + "displayName": "JavaScript setTimeout will not be clamped until a higher nesting threshold is set (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_unthrottlednestedtimeoutenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_unthrottlednestedtimeoutenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_internetexplorerintegrationalwaysuseoscapture", + "displayName": "Always use the OS capture engine to avoid issues with capturing Internet Explorer mode tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_internetexplorerintegrationalwaysuseoscapture_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_internetexplorerintegrationalwaysuseoscapture_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeenabled_recommended", + "displayName": "Efficiency mode enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeonpowerenabled_recommended", + "displayName": "Enable efficiency mode when the device is connected to a power source", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeonpowerenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeonpowerenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeenabled", + "displayName": "Efficiency mode enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeonpowerenabled", + "displayName": "Enable efficiency mode when the device is connected to a power source", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeonpowerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeonpowerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~printing_printpdfasimagedefault", + "displayName": "Print PDF as Image Default", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~printing_printpdfasimagedefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~printing_printpdfasimagedefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_enhancesecuritymodebypassintranet", + "displayName": "Enhanced Security Mode configuration for Intranet zone sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_enhancesecuritymodebypassintranet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_enhancesecuritymodebypassintranet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_eventpathenabled", + "displayName": "Re-enable the Event.path API until Microsoft Edge version 115", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_eventpathenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_eventpathenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_internetexplorerintegrationlocalmhtfileallowed", + "displayName": "Allow local MHTML files to open automatically in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_internetexplorerintegrationlocalmhtfileallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_internetexplorerintegrationlocalmhtfileallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_recommended~performance_recommended_performancedetectorenabled_recommended", + "displayName": "Performance Detector Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_recommended~performance_recommended_performancedetectorenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_recommended~performance_recommended_performancedetectorenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_webselectenabled", + "displayName": "Web Select Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_webselectenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_webselectenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlaccess", + "displayName": "Force WebSQL to be enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlnonsecurecontextenabled", + "displayName": "Force WebSQL in non-secure contexts to be enabled (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlnonsecurecontextenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlnonsecurecontextenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~edgeworkspaces_edgeworkspacesenabled", + "displayName": "Enable Workspaces", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~edgeworkspaces_edgeworkspacesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~edgeworkspaces_edgeworkspacesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~identity_linkedaccountenabled", + "displayName": "Enable the linked account feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~identity_linkedaccountenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~identity_linkedaccountenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~performance_performancedetectorenabled", + "displayName": "Performance Detector Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~performance_performancedetectorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~performance_performancedetectorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~startup_restoreonstartupuserurlsenabled", + "displayName": "Allow users to add and remove their own sites during startup when the RestoreOnStartupURLs policy is configured", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~startup_restoreonstartupuserurlsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~startup_restoreonstartupuserurlsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting", + "displayName": "Set the default \"share additional operating system region\" setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_defaultshareadditionalosregionsetting", + "displayName": "'Set the default \"share additional operating system region\" setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_defaultshareadditionalosregionsetting_0", + "displayName": "Limited", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_defaultshareadditionalosregionsetting_1", + "displayName": "Always share the OS Regional format", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_defaultshareadditionalosregionsetting_2", + "displayName": "Never share the OS Regional format", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_encryptedclienthelloenabled", + "displayName": "TLS Encrypted ClientHello Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_encryptedclienthelloenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_encryptedclienthelloenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended", + "displayName": "Set the default \"share additional operating system region\" setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_defaultshareadditionalosregionsetting", + "displayName": "'Set the default \"share additional operating system region\" setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_defaultshareadditionalosregionsetting_0", + "displayName": "Limited", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_defaultshareadditionalosregionsetting_1", + "displayName": "Always share the OS Regional format", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_defaultshareadditionalosregionsetting_2", + "displayName": "Never share the OS Regional format", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge~startup_newtabpageapplauncherenabled", + "displayName": "Hide App Launcher on Microsoft Edge new tab page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge~startup_newtabpageapplauncherenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge~startup_newtabpageapplauncherenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardallowedforurls", + "displayName": "Allow clipboard use on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardallowedforurls_clipboardallowedforurlsdesc", + "displayName": "Allow clipboard use on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardblockedforurls", + "displayName": "Block clipboard use on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardblockedforurls_clipboardblockedforurlsdesc", + "displayName": "Block clipboard use on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting", + "displayName": "Default clipboard site permission", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_defaultclipboardsetting", + "displayName": "Default clipboard site permission (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_defaultclipboardsetting_2", + "displayName": "Do not allow any site to use the clipboard site permission", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_defaultclipboardsetting_3", + "displayName": "Allow sites to ask the user to grant the clipboard site permission", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_microsoftrootstoreenabled", + "displayName": "Determines whether the Microsoft Root Store and built-in certificate verifier will be used to verify server certificates (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_microsoftrootstoreenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_microsoftrootstoreenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowalldevicesforurls", + "displayName": "Allow listed sites to connect to any HID device", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowalldevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowalldevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowalldevicesforurls_webhidallowalldevicesforurlsdesc", + "displayName": "Allow listed sites to connect to any HID device (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdevicesforurls", + "displayName": "Allow listed sites connect to specific HID devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdevicesforurls_webhidallowdevicesforurls", + "displayName": "Allow listed sites connect to specific HID devices (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdeviceswithhidusagesforurls", + "displayName": "Automatically grant permission to these sites to connect to HID devices containing top-level collections with the given HID usage", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdeviceswithhidusagesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdeviceswithhidusagesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdeviceswithhidusagesforurls_webhidallowdeviceswithhidusagesforurls", + "displayName": "Automatically grant permission to these sites to connect to HID devices containing top-level collections with the given HID usage (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_autofillmembershipsenabled", + "displayName": "Save and fill memberships", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_autofillmembershipsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_autofillmembershipsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_autofillmembershipsenabled_recommended", + "displayName": "Save and fill memberships", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_autofillmembershipsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_autofillmembershipsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_searchfiltersenabled_recommended", + "displayName": "Search Filters Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_searchfiltersenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_searchfiltersenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended~printing_recommended_printpreviewstickysettings_recommended", + "displayName": "Configure the sticky print preview settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended~printing_recommended_printpreviewstickysettings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended~printing_recommended_printpreviewstickysettings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended~printing_recommended_printpreviewstickysettings_recommended_printpreviewstickysettings", + "displayName": "Configure the sticky print preview settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchfiltersenabled", + "displayName": "Search Filters Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchfiltersenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchfiltersenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled", + "displayName": "Search in Sidebar enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_searchinsidebarenabled", + "displayName": "Search in Sidebar enabled (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_searchinsidebarenabled_0", + "displayName": "Enable search in sidebar", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_searchinsidebarenabled_1", + "displayName": "Disable search in sidebar for Kids Mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_searchinsidebarenabled_2", + "displayName": "Disable search in sidebar", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsallowedforurls", + "displayName": "Allow multiple automatic downloads in quick succession on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsallowedforurls_automaticdownloadsallowedforurlsdesc", + "displayName": "Allow multiple automatic downloads in quick succession on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsblockedforurls", + "displayName": "Block multiple automatic downloads in quick succession on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsblockedforurls_automaticdownloadsblockedforurlsdesc", + "displayName": "Block multiple automatic downloads in quick succession on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting", + "displayName": "Default automatic downloads setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_defaultautomaticdownloadssetting", + "displayName": "Default automatic downloads setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_defaultautomaticdownloadssetting_1", + "displayName": "Allow all websites to perform automatic downloads", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_defaultautomaticdownloadssetting_2", + "displayName": "Don't allow any website to perform automatic downloads", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~edgeworkspaces_workspacesnavigationsettings", + "displayName": "Configure navigation settings per groups of URLs in Microsoft Edge Workspaces", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~edgeworkspaces_workspacesnavigationsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~edgeworkspaces_workspacesnavigationsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~edgeworkspaces_workspacesnavigationsettings_workspacesnavigationsettings", + "displayName": "Configure navigation settings per groups of URLs in Microsoft Edge Workspaces (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereadergrammartoolsenabled", + "displayName": "Enable Grammar Tools feature within Immersive Reader in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereadergrammartoolsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereadergrammartoolsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereaderpicturedictionaryenabled", + "displayName": "Enable Picture Dictionary feature within Immersive Reader in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereaderpicturedictionaryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereaderpicturedictionaryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~printing_printpreviewstickysettings", + "displayName": "Configure the sticky print preview settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~printing_printpreviewstickysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~printing_printpreviewstickysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~printing_printpreviewstickysettings_printpreviewstickysettings", + "displayName": "Configure the sticky print preview settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_internetexplorermodecleardataonexitenabled", + "displayName": "Clear history for IE and IE mode every time you exit", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_internetexplorermodecleardataonexitenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_internetexplorermodecleardataonexitenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_newpdfreaderenabled", + "displayName": "Microsoft Edge built-in PDF reader powered by Adobe Acrobat enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_newpdfreaderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_newpdfreaderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_recommended_newpdfreaderenabled_recommended", + "displayName": "Microsoft Edge built-in PDF reader powered by Adobe Acrobat enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_recommended_newpdfreaderenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_recommended_newpdfreaderenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_sharedarraybufferunrestrictedaccessallowed", + "displayName": "Specifies whether SharedArrayBuffers can be used in a non cross-origin-isolated context", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_sharedarraybufferunrestrictedaccessallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_sharedarraybufferunrestrictedaccessallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_showacrobatsubscriptionbutton", + "displayName": "Shows button on native PDF viewer in Microsoft Edge that allows users to sign up for Adobe Acrobat subscription", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_showacrobatsubscriptionbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_showacrobatsubscriptionbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_cryptowalletenabled", + "displayName": "Enable CryptoWallet feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_cryptowalletenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_cryptowalletenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_mousegestureenabled", + "displayName": "Mouse Gesture Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_mousegestureenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_mousegestureenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_readaloudenabled", + "displayName": "Enable Read Aloud feature in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_readaloudenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_readaloudenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_restorepdfview", + "displayName": "Restore PDF view", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_restorepdfview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_restorepdfview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_tabservicesenabled", + "displayName": "Enable tab organization suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_tabservicesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_tabservicesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_defaultbrowsersettingscampaignenabled", + "displayName": "Enables default browser settings campaigns", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_defaultbrowsersettingscampaignenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_defaultbrowsersettingscampaignenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_discoverpagecontextenabled", + "displayName": "Enable Discover access to page contents for AAD profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_discoverpagecontextenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_discoverpagecontextenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_enforcelocalanchorconstraintsenabled", + "displayName": "Determines whether the built-in certificate verifier will enforce constraints encoded into trust anchors loaded from the platform trust store (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_enforcelocalanchorconstraintsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_enforcelocalanchorconstraintsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_showdownloadstoolbarbutton", + "displayName": "Show Downloads button on the toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_showdownloadstoolbarbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_showdownloadstoolbarbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_standalonehubssidebarenabled", + "displayName": "Standalone Sidebar Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_standalonehubssidebarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_standalonehubssidebarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_composeinlineenabled", + "displayName": "Compose is enabled for writing on the web", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_composeinlineenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_composeinlineenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeindicatoruienabled", + "displayName": "Manage the indicator UI of the Enhanced Security Mode (ESM) feature in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeindicatoruienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeindicatoruienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeoptoutuxenabled", + "displayName": "Manage opt-out user experience for Enhanced Security Mode (ESM) in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeoptoutuxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeoptoutuxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_recommended_walletdonationenabled_recommended", + "displayName": "Wallet Donation Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_recommended_walletdonationenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_recommended_walletdonationenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_searchforimageenabled", + "displayName": "Search for image enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_searchforimageenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_searchforimageenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_walletdonationenabled", + "displayName": "Wallet Donation Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_walletdonationenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_walletdonationenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenabled", + "displayName": "Microsoft Edge management enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenrollmenttoken", + "displayName": "Microsoft Edge management enrollment token", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenrollmenttoken_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenrollmenttoken_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenrollmenttoken_edgemanagementenrollmenttoken", + "displayName": "Microsoft Edge management enrollment token (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementextensionsfeedbackenabled", + "displayName": "Microsoft Edge management extensions feedback enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementextensionsfeedbackenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementextensionsfeedbackenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_recommended~performance_recommended_pinbrowseressentialstoolbarbutton_recommended", + "displayName": "Pin browser essentials toolbar button", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_recommended~performance_recommended_pinbrowseressentialstoolbarbutton_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_recommended~performance_recommended_pinbrowseressentialstoolbarbutton_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_throttlenonvisiblecrossoriginiframesallowed", + "displayName": "Allows enabling throttling of non-visible, cross-origin iframes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_throttlenonvisiblecrossoriginiframesallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_throttlenonvisiblecrossoriginiframesallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting", + "displayName": "Default setting for third-party storage partitioning", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_defaultthirdpartystoragepartitioningsetting", + "displayName": "Default setting for third-party storage partitioning (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_defaultthirdpartystoragepartitioningsetting_1", + "displayName": "Let third-party storage partitioning to be enabled.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_defaultthirdpartystoragepartitioningsetting_2", + "displayName": "Block third-party storage partitioning from being enabled.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_thirdpartystoragepartitioningblockedfororigins", + "displayName": "Block third-party storage partitioning for these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_thirdpartystoragepartitioningblockedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_thirdpartystoragepartitioningblockedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_thirdpartystoragepartitioningblockedfororigins_thirdpartystoragepartitioningblockedfororiginsdesc", + "displayName": "Block third-party storage partitioning for these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~performance_pinbrowseressentialstoolbarbutton", + "displayName": "Pin browser essentials toolbar button", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~performance_pinbrowseressentialstoolbarbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~performance_pinbrowseressentialstoolbarbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_allowsystemnotifications", + "displayName": "Allows system notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_allowsystemnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_allowsystemnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_edgewalletetreeenabled", + "displayName": "Edge Wallet E-Tree Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_edgewalletetreeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_edgewalletetreeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_internetexplorerintegrationzoneidentifiermhtfileallowed", + "displayName": "Automatically open downloaded MHT or MHTML files from the web in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_internetexplorerintegrationzoneidentifiermhtfileallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_internetexplorerintegrationzoneidentifiermhtfileallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended_edgewalletetreeenabled_recommended", + "displayName": "Edge Wallet E-Tree Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended_edgewalletetreeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended_edgewalletetreeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended~edgegames_recommended_gamermodeenabled_recommended", + "displayName": "Enable Gamer Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended~edgegames_recommended_gamermodeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended~edgegames_recommended_gamermodeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarallowed", + "displayName": "Enable the Search bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarisenabledonstartup", + "displayName": "Allow the Search bar at Windows startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarisenabledonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarisenabledonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_showhistorythumbnails", + "displayName": "Show thumbnail images for browsing history", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_showhistorythumbnails_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_showhistorythumbnails_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_splitscreenenabled", + "displayName": "Enable split screen feature in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_splitscreenenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_splitscreenenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_uploadfromphoneenabled", + "displayName": "Enable upload files from phone in Microsoft Edge desktop", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_uploadfromphoneenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_uploadfromphoneenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge~edgegames_gamermodeenabled", + "displayName": "Enable Gamer Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge~edgegames_gamermodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge~edgegames_gamermodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_beforeunloadeventcancelbypreventdefaultenabled", + "displayName": "Control the behavior for the cancel dialog produced by the beforeunload event", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_beforeunloadeventcancelbypreventdefaultenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_beforeunloadeventcancelbypreventdefaultenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcebuiltinpushmessagingclient", + "displayName": "Forces Microsoft Edge to use its built-in WNS push client to connect to the Windows Push Notification Service.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcebuiltinpushmessagingclient_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcebuiltinpushmessagingclient_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcepermissionpolicyunloaddefaultenabled", + "displayName": "Controls whether unload event handlers can be disabled.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcepermissionpolicyunloaddefaultenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcepermissionpolicyunloaddefaultenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_pictureinpictureoverlayenabled", + "displayName": "Enable Picture in Picture overlay feature on supported webpages in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_pictureinpictureoverlayenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_pictureinpictureoverlayenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_recommended~passwordmanager_recommended_passworddeleteonbrowsercloseenabled_recommended", + "displayName": "Prevent passwords from being deleted if any Edge settings is enabled to delete browsing data when Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_recommended~passwordmanager_recommended_passworddeleteonbrowsercloseenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_recommended~passwordmanager_recommended_passworddeleteonbrowsercloseenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_sendmouseeventsdisabledformcontrolsenabled", + "displayName": "Control the new behavior for event dispatching on disabled form controls", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_sendmouseeventsdisabledformcontrolsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_sendmouseeventsdisabledformcontrolsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~contentsettings_dataurlinsvguseenabled", + "displayName": "Data URL support for SVGUseElement", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~contentsettings_dataurlinsvguseenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~contentsettings_dataurlinsvguseenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~network_compressiondictionarytransportenabled", + "displayName": "Enable compression dictionary transport support", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~network_compressiondictionarytransportenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~network_compressiondictionarytransportenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~passwordmanager_passworddeleteonbrowsercloseenabled", + "displayName": "Prevent passwords from being deleted if any Edge settings is enabled to delete browsing data when Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~passwordmanager_passworddeleteonbrowsercloseenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~passwordmanager_passworddeleteonbrowsercloseenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~smartscreen_exemptsmartscreendownloadwarnings", + "displayName": "Disable SmartScreen AppRep based warnings for specified file types on specified domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~smartscreen_exemptsmartscreendownloadwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~smartscreen_exemptsmartscreendownloadwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~smartscreen_exemptsmartscreendownloadwarnings_exemptsmartscreendownloadwarnings", + "displayName": "Disable SmartScreen AppRep based warnings for specified file types on specified domains (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagebingchatenabled", + "displayName": "Disable Bing chat entry-points on Microsoft Edge Enterprise new tab page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagebingchatenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagebingchatenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagecompanylogoenabled", + "displayName": "Hide the company logo on the Microsoft Edge new tab page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagecompanylogoenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagecompanylogoenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge_recommended_organizationalbrandingonworkprofileuienabled_recommended", + "displayName": "Allow the use of your organization's branding assets from M365 on the profile-related UI of a work profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge_recommended_organizationalbrandingonworkprofileuienabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge_recommended_organizationalbrandingonworkprofileuienabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchintranetsitestoworkprofile", + "displayName": "Switch intranet sites to a work profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchintranetsitestoworkprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchintranetsitestoworkprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchsitesoniemodesitelisttoworkprofile", + "displayName": "Switch sites on the IE mode site list to a work profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchsitesoniemodesitelisttoworkprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchsitesoniemodesitelisttoworkprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementpolicyoverridesplatformpolicy", + "displayName": "Microsoft Edge management service policy overrides platform policy.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementpolicyoverridesplatformpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementpolicyoverridesplatformpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementuserpolicyoverridescloudmachinepolicy", + "displayName": "Allow Microsoft Edge management service user policies to override policies set through an enrollment token.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementuserpolicyoverridescloudmachinepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementuserpolicyoverridescloudmachinepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_edge3pserptelemetryenabled", + "displayName": "Edge 3P SERP Telemetry Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_edge3pserptelemetryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_edge3pserptelemetryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_edge3pserptelemetryenabled_recommended", + "displayName": "Edge 3P SERP Telemetry Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_edge3pserptelemetryenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_edge3pserptelemetryenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_organizationlogooverlayonappiconenabled_recommended", + "displayName": "Allow your organization's logo from Microsoft Entra to be overlaid on the Microsoft Edge app icon of a work profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_organizationlogooverlayonappiconenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_organizationlogooverlayonappiconenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~identity_recommended_automaticprofileswitchingsitelist_recommended", + "displayName": "Configure the automatic profile switching site list", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~identity_recommended_automaticprofileswitchingsitelist_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~identity_recommended_automaticprofileswitchingsitelist_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~identity_recommended_automaticprofileswitchingsitelist_recommended_automaticprofileswitchingsitelist", + "displayName": "Configure the automatic profile switching site list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~sleepingtabs_recommended_autodiscardsleepingtabsenabled_recommended", + "displayName": "Configure auto discard sleeping tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~sleepingtabs_recommended_autodiscardsleepingtabsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~sleepingtabs_recommended_autodiscardsleepingtabsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_webappsettings", + "displayName": "Web App management settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_webappsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_webappsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_webappsettings_webappsettings", + "displayName": "Web App management settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~identity_automaticprofileswitchingsitelist", + "displayName": "Configure the automatic profile switching site list", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~identity_automaticprofileswitchingsitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~identity_automaticprofileswitchingsitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~identity_automaticprofileswitchingsitelist_automaticprofileswitchingsitelist", + "displayName": "Configure the automatic profile switching site list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~sleepingtabs_autodiscardsleepingtabsenabled", + "displayName": "Configure auto discard sleeping tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~sleepingtabs_autodiscardsleepingtabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~sleepingtabs_autodiscardsleepingtabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_nativehostsexecutableslaunchdirectly", + "displayName": "Force Windows executable Native Messaging hosts to launch directly", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_nativehostsexecutableslaunchdirectly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_nativehostsexecutableslaunchdirectly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_postquantumkeyagreementenabled", + "displayName": "Enable post-quantum key agreement for TLS", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_postquantumkeyagreementenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_postquantumkeyagreementenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~googlecast_edgedisabledialprotocolforcastdiscovery", + "displayName": "Disable DIAL protocol for cast device discovery", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~googlecast_edgedisabledialprotocolforcastdiscovery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~googlecast_edgedisabledialprotocolforcastdiscovery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsenabled", + "displayName": "Enable Related Website Sets", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsoverrides", + "displayName": "Override Related Website Sets.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsoverrides_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsoverrides_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsoverrides_relatedwebsitesetsoverrides", + "displayName": "Override Related Website Sets. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_preventtyposquattingpromptoverride", + "displayName": "Prevent bypassing Edge Website Typo Protection prompts for sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_preventtyposquattingpromptoverride_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_preventtyposquattingpromptoverride_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_typosquattingallowlistdomains", + "displayName": "Configure the list of domains for which Edge Website Typo Protection won't trigger warnings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_typosquattingallowlistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_typosquattingallowlistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_typosquattingallowlistdomains_typosquattingallowlistdomainsdesc", + "displayName": "Configure the list of domains for which Edge Website Typo Protection won't trigger warnings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_aigenthemesenabled", + "displayName": "Enables DALL-E themes generation", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_aigenthemesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_aigenthemesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_enhancesecuritymodeallowuserbypass", + "displayName": "Allow users to bypass Enhanced Security Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_enhancesecuritymodeallowuserbypass_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_enhancesecuritymodeallowuserbypass_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_superdragdropenabled", + "displayName": "Super Drag Drop Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_superdragdropenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_superdragdropenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_urldiagnosticdataenabled", + "displayName": "URL reporting in Edge diagnostic data enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_urldiagnosticdataenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_urldiagnosticdataenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_rsakeyusageforlocalanchorsenabled", + "displayName": "Check RSA key usage for server certificates issued by local trust anchors", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_rsakeyusageforlocalanchorsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_rsakeyusageforlocalanchorsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_screencapturewithoutgestureallowedfororigins", + "displayName": "Allow screen capture without prior user gesture", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_screencapturewithoutgestureallowedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_screencapturewithoutgestureallowedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_screencapturewithoutgestureallowedfororigins_screencapturewithoutgestureallowedfororiginsdesc", + "displayName": "Allow screen capture without prior user gesture (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting", + "displayName": "Default Window Management permission setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_defaultwindowmanagementsetting", + "displayName": "Default Window Management permission setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_defaultwindowmanagementsetting_2", + "displayName": "Denies the Window Management permission on all sites by default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_defaultwindowmanagementsetting_3", + "displayName": "Ask every time a site wants obtain the Window Management permission", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementallowedforurls", + "displayName": "Allow Window Management permission on specified sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementallowedforurls_windowmanagementallowedforurlsdesc", + "displayName": "Allow Window Management permission on specified sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementblockedforurls", + "displayName": "Block Window Management permission on specified sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementblockedforurls_windowmanagementblockedforurlsdesc", + "displayName": "Block Window Management permission on specified sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensioninstalltypeblocklist", + "displayName": "Blocklist for extension install types", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensioninstalltypeblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensioninstalltypeblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensioninstalltypeblocklist_extensioninstalltypeblocklistdesc", + "displayName": "Blocklist for extension install types (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability", + "displayName": "Control Manifest v2 extension availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability", + "displayName": "Control Manifest v2 extension availability (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability_0", + "displayName": "Default browser behavior", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability_1", + "displayName": "Manifest v2 is disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability_2", + "displayName": "Manifest v2 is enabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability_3", + "displayName": "Manifest v2 is enabled for forced extensions only", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotcdppagecontext", + "displayName": "Control Copilot with Commerical Data Protection access to browser context for Microsoft Entra ID profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotcdppagecontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotcdppagecontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotpagecontext", + "displayName": "Control Copilot access to browser context for Microsoft Entra ID profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotpagecontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotpagecontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_mutationeventsenabled", + "displayName": "Enable deprecated/removed Mutation Events", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_mutationeventsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_mutationeventsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_imageeditorserviceenabled", + "displayName": "Enable the Designer for Image Editor feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_imageeditorserviceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_imageeditorserviceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_qrcodegeneratorenabled", + "displayName": "Enable QR Code Generator", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_qrcodegeneratorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_qrcodegeneratorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge~network_zstdcontentencodingenabled", + "displayName": "Enable zstd content encoding support", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge~network_zstdcontentencodingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge~network_zstdcontentencodingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge_internetexplorersetforegroundwhenactive", + "displayName": "Keep the active Microsoft Edge window with an Internet Explorer mode tab always in the foreground.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge_internetexplorersetforegroundwhenactive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge_internetexplorersetforegroundwhenactive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge~identity_proactiveauthworkflowenabled", + "displayName": "Enable proactive authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge~identity_proactiveauthworkflowenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge~identity_proactiveauthworkflowenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_csscustomstatedeprecatedsyntaxenabled", + "displayName": "Controls whether the deprecated :--foo syntax for CSS custom state is enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_csscustomstatedeprecatedsyntaxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_csscustomstatedeprecatedsyntaxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_edgesidebarappurlhostblocklist", + "displayName": "Control which apps cannot be opened in Microsoft Edge sidebar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_edgesidebarappurlhostblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_edgesidebarappurlhostblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_edgesidebarappurlhostblocklist_edgesidebarappurlhostblocklistdesc", + "displayName": "Control which apps cannot be opened in Microsoft Edge sidebar (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128.1~policy~microsoft_edge_applicationboundencryptionenabled", + "displayName": "Enable Application Bound Encryption", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128.1~policy~microsoft_edge_applicationboundencryptionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128.1~policy~microsoft_edge_applicationboundencryptionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings", + "displayName": "Dynamic Code Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_dynamiccodesettings", + "displayName": "Dynamic Code Settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_dynamiccodesettings_0", + "displayName": "Default dynamic code settings", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_dynamiccodesettings_1", + "displayName": "Prevent the browser process from creating dynamic code", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgeopeninsidebarenabled", + "displayName": "Enable open in sidebar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgeopeninsidebarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgeopeninsidebarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgesidebarcustomizeenabled", + "displayName": "Enable sidebar customize", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgesidebarcustomizeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgesidebarcustomizeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_keyboardfocusablescrollersenabled", + "displayName": "Enable keyboard focusable scrollers", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_keyboardfocusablescrollersenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_keyboardfocusablescrollersenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_recommended~downloads_recommended_showdownloadsinsecurewarningsenabled_recommended", + "displayName": "Enable insecure download warnings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_recommended~downloads_recommended_showdownloadsinsecurewarningsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_recommended~downloads_recommended_showdownloadsinsecurewarningsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~downloads_showdownloadsinsecurewarningsenabled", + "displayName": "Enable insecure download warnings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~downloads_showdownloadsinsecurewarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~downloads_showdownloadsinsecurewarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings", + "displayName": "Control the availability of developer mode on extensions page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_extensiondevelopermodesettings", + "displayName": "Control the availability of developer mode on extensions page (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_extensiondevelopermodesettings_0", + "displayName": "Allow the usage of developer mode on extensions page", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_extensiondevelopermodesettings_1", + "displayName": "Do not allow the usage of developer mode on extensions page", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensionextendedbackgroundlifetimeforportconnectionstourls", + "displayName": "Configure a list of origins that grant an extended background lifetime to connecting extensions.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensionextendedbackgroundlifetimeforportconnectionstourls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensionextendedbackgroundlifetimeforportconnectionstourls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensionextendedbackgroundlifetimeforportconnectionstourls_extensionextendedbackgroundlifetimeforportconnectionstourlsdesc", + "displayName": "Configure a list of origins that grant an extended background lifetime to connecting extensions. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended", + "displayName": "Action to take on Microsoft Edge startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup", + "displayName": "Action to take on Microsoft Edge startup (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_5", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_6", + "displayName": "Open a list of URLs and restore the last session", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup", + "displayName": "Action to take on Microsoft Edge startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup", + "displayName": "Action to take on Microsoft Edge startup (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_5", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_6", + "displayName": "Open a list of URLs and restore the last session", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_adssettingforintrusiveadssites_1", + "displayName": "Allow ads on all sites", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_adssettingforintrusiveadssites_2", + "displayName": "Block ads on sites with intrusive ads. (Default value)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowpopupsduringpageunload", + "displayName": "Allows a page to show popups during its unloading", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowpopupsduringpageunload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowpopupsduringpageunload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowtrackingforurls", + "displayName": "Configure tracking prevention exceptions for specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowtrackingforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowtrackingforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowtrackingforurls_allowtrackingforurlsdesc", + "displayName": "Configure tracking prevention exceptions for specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_autoplayallowed", + "displayName": "Allow media autoplay for websites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_autoplayallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_autoplayallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clearbrowsingdataonexit", + "displayName": "Clear browsing data when Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clearbrowsingdataonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clearbrowsingdataonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clickonceenabled", + "displayName": "Allow users to open files using the ClickOnce protocol", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clickonceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clickonceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_commandlineflagsecuritywarningsenabled", + "displayName": "Enable security warnings for command-line flags", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_commandlineflagsecuritywarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_commandlineflagsecuritywarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_directinvokeenabled", + "displayName": "Allow users to open files using the DirectInvoke protocol", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_directinvokeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_directinvokeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_edgecollectionsenabled", + "displayName": "Enable the Collections feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_edgecollectionsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_edgecollectionsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_enterprisehardwareplatformapienabled", + "displayName": "Allow managed extensions to use the Enterprise Hardware Platform API", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_enterprisehardwareplatformapienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_enterprisehardwareplatformapienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_forcenetworkinprocess", + "displayName": "Force networking code to run in the browser process", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_forcenetworkinprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_forcenetworkinprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_gotointranetsiteforsinglewordentryinaddressbar", + "displayName": "Force direct intranet site navigation instead of searching on single word entries in the Address Bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_gotointranetsiteforsinglewordentryinaddressbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_gotointranetsiteforsinglewordentryinaddressbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_importbrowsersettings", + "displayName": "Allow importing of browser settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_importbrowsersettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_importbrowsersettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_internetexplorerintegrationsitelist", + "displayName": "Configure the Enterprise Mode Site List", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_internetexplorerintegrationsitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_internetexplorerintegrationsitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_internetexplorerintegrationsitelist_internetexplorerintegrationsitelist", + "displayName": "Configure the Enterprise Mode Site List (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_nonremovableprofileenabled", + "displayName": "Configure whether a user always has a default profile automatically signed in with their work or school account", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_nonremovableprofileenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_nonremovableprofileenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_clearbrowsingdataonexit_recommended", + "displayName": "Clear browsing data when Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_clearbrowsingdataonexit_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_clearbrowsingdataonexit_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_importbrowsersettings_recommended", + "displayName": "Allow importing of browser settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_importbrowsersettings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_importbrowsersettings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenfortrusteddownloadsenabled_recommended", + "displayName": "Force Microsoft Defender SmartScreen checks on downloads from trusted sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenfortrusteddownloadsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenfortrusteddownloadsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_renderercodeintegrityenabled", + "displayName": "Enable renderer code integrity", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_renderercodeintegrityenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_renderercodeintegrityenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_signedhttpexchangeenabled", + "displayName": "Enable Signed HTTP Exchange (SXG) support", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_signedhttpexchangeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_signedhttpexchangeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_spellchecklanguageblocklist", + "displayName": "Force disable spellcheck languages", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_spellchecklanguageblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_spellchecklanguageblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_spellchecklanguageblocklist_spellchecklanguageblocklistdesc", + "displayName": "Force disable spellcheck languages (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention", + "displayName": "Block tracking of users' web-browsing activity", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention", + "displayName": "Block tracking of users' web-browsing activity (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention_0", + "displayName": "Off (no tracking prevention)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention_1", + "displayName": "Basic (blocks harmful trackers, content and ads will be personalized)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention_2", + "displayName": "Balanced (blocks harmful trackers and trackers from sites user has not visited; content and ads will be less personalized)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention_3", + "displayName": "Strict (blocks harmful trackers and majority of trackers from all sites; content and ads will have minimal personalization. Some parts of sites might not work)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge~smartscreen_smartscreenfortrusteddownloadsenabled", + "displayName": "Force Microsoft Defender SmartScreen checks on downloads from trusted sources", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge~smartscreen_smartscreenfortrusteddownloadsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge~smartscreen_smartscreenfortrusteddownloadsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_allowsyncxhrinpagedismissal", + "displayName": "Allow pages to send synchronous XHR requests during page dismissal", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_allowsyncxhrinpagedismissal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_allowsyncxhrinpagedismissal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_backgroundtemplatelistupdatesenabled", + "displayName": "Enables background updates to the list of available templates for Collections and other features that use templates", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_backgroundtemplatelistupdatesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_backgroundtemplatelistupdatesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_customhelplink", + "displayName": "Specify custom help link", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_customhelplink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_customhelplink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_customhelplink_customhelplink", + "displayName": "Specify custom help link (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_externalprotocoldialogshowalwaysopencheckbox", + "displayName": "Show an \"Always open\" checkbox in external protocol dialog", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_externalprotocoldialogshowalwaysopencheckbox_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_externalprotocoldialogshowalwaysopencheckbox_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_hstspolicybypasslist", + "displayName": "Configure the list of names that will bypass the HSTS policy check", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_hstspolicybypasslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_hstspolicybypasslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_hstspolicybypasslist_hstspolicybypasslistdesc", + "displayName": "Configure the list of names that will bypass the HSTS policy check (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_importopentabs", + "displayName": "Allow importing of open tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_importopentabs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_importopentabs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended_importopentabs_recommended", + "displayName": "Allow importing of open tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended_importopentabs_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended_importopentabs_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagemanagedquicklinks_recommended", + "displayName": "Set new tab page quick links", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagemanagedquicklinks_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagemanagedquicklinks_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagemanagedquicklinks_recommended_newtabpagemanagedquicklinks", + "displayName": "Set new tab page quick links (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended", + "displayName": "Configure the Microsoft Edge new tab page experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_newtabpagesetfeedtype", + "displayName": "New tab page experience (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_newtabpagesetfeedtype_0", + "displayName": "Microsoft News feed experience", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_newtabpagesetfeedtype_1", + "displayName": "Office 365 feed experience", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_tabfreezingenabled", + "displayName": "Allow freezing of background tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_tabfreezingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_tabfreezingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagecompanylogo", + "displayName": "Set new tab page company logo (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagecompanylogo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagecompanylogo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagecompanylogo_newtabpagecompanylogo", + "displayName": "New tab page company logo (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagemanagedquicklinks", + "displayName": "Set new tab page quick links", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagemanagedquicklinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagemanagedquicklinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagemanagedquicklinks_newtabpagemanagedquicklinks", + "displayName": "Set new tab page quick links (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype", + "displayName": "Configure the Microsoft Edge new tab page experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_newtabpagesetfeedtype", + "displayName": "New tab page experience (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_newtabpagesetfeedtype_0", + "displayName": "Microsoft News feed experience", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_newtabpagesetfeedtype_1", + "displayName": "Office 365 feed experience", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_alternateerrorpagesenabled", + "displayName": "Suggest similar pages when a webpage can’t be found", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_alternateerrorpagesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_alternateerrorpagesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_dnsinterceptionchecksenabled", + "displayName": "DNS interception checks enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_dnsinterceptionchecksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_dnsinterceptionchecksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_hidefirstrunexperience", + "displayName": "Hide the First-run experience and splash screen", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_hidefirstrunexperience_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_hidefirstrunexperience_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_paymentmethodqueryenabled", + "displayName": "Allow websites to query for available payment methods", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_paymentmethodqueryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_paymentmethodqueryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_personalizationreportingenabled", + "displayName": "Allow personalization of ads, search and news by sending browsing history to Microsoft", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_personalizationreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_personalizationreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_pinningwizardallowed", + "displayName": "Allow Pin to taskbar wizard", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_pinningwizardallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_pinningwizardallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended_alternateerrorpagesenabled_recommended", + "displayName": "Suggest similar pages when a webpage can’t be found", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended_alternateerrorpagesenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended_alternateerrorpagesenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenpuaenabled_recommended", + "displayName": "Configure Microsoft Defender SmartScreen to block potentially unwanted apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenpuaenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenpuaenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_totalmemorylimitmb", + "displayName": "Set limit on megabytes of memory a single Microsoft Edge instance can use.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_totalmemorylimitmb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_totalmemorylimitmb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_totalmemorylimitmb_totalmemorylimitmb", + "displayName": "Set memory limit for Microsoft Edge instances: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webappinstallforcelist", + "displayName": "Configure list of force-installed Web Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webappinstallforcelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webappinstallforcelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webappinstallforcelist_webappinstallforcelist", + "displayName": "URLs for Web Apps to be silently installed. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webcomponentsv0enabled", + "displayName": "Re-enable Web Components v0 API until M84. (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webcomponentsv0enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webcomponentsv0enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webrtclocalipsallowedurls", + "displayName": "Manage exposure of local IP addressess by WebRTC", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webrtclocalipsallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webrtclocalipsallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webrtclocalipsallowedurls_webrtclocalipsallowedurlsdesc", + "displayName": "Manage exposure of local IP addressess by WebRTC (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting_2", + "displayName": "Do not allow any site to load blockable mixed content", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting_3", + "displayName": "Allow users to add exceptions to allow blockable mixed content", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentallowedforurls", + "displayName": "Allow insecure content on specified sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentallowedforurls_insecurecontentallowedforurlsdesc", + "displayName": "Allow insecure content on specified sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentblockedforurls", + "displayName": "Block insecure content on specified sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentblockedforurls_insecurecontentblockedforurlsdesc", + "displayName": "Block insecure content on specified sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled", + "displayName": "Enable default legacy SameSite cookie behavior setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled", + "displayName": "Enable default legacy SameSite cookie behavior setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled_1", + "displayName": "Revert to legacy SameSite behavior for cookies on all sites", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled_2", + "displayName": "Use SameSite-by-default behavior for cookies on all sites", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist", + "displayName": "Revert to legacy SameSite behavior for cookies on specified sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_legacysamesitecookiebehaviorenabledfordomainlistdesc", + "displayName": "Revert to legacy SameSite behavior for cookies on specified sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~smartscreen_smartscreenpuaenabled", + "displayName": "Configure Microsoft Defender SmartScreen to block potentially unwanted apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~smartscreen_smartscreenpuaenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~smartscreen_smartscreenpuaenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_addressbarmicrosoftsearchinbingproviderenabled", + "displayName": "Enable Microsoft Search in Bing suggestions in the address bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_addressbarmicrosoftsearchinbingproviderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_addressbarmicrosoftsearchinbingproviderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for InPrivate and Guest profiles", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for InPrivate and Guest profiles (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Enable ambient authentication in regular sessions only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enable ambient authentication in InPrivate and regular sessions", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_2", + "displayName": "Enable ambient authentication in guest and regular sessions", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_3", + "displayName": "Enable ambient authentication in regular, InPrivate and guest sessions", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_audiosandboxenabled", + "displayName": "Allow the audio sandbox to run", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_audiosandboxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_audiosandboxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin", + "displayName": "Configure automatic sign in with an Active Directory domain account when there is no Azure AD domain account", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_configureonpremisesaccountautosignin", + "displayName": "Configure automatic sign in with an Active Directory domain account when there is no Azure AD domain account (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_configureonpremisesaccountautosignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_configureonpremisesaccountautosignin_1", + "displayName": "Sign in and make domain account non-removable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_forcelegacydefaultreferrerpolicy", + "displayName": "Use a default referrer policy of no-referrer-when-downgrade. (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_forcelegacydefaultreferrerpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_forcelegacydefaultreferrerpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_globallyscopehttpauthcacheenabled", + "displayName": "Enable globally scoped HTTP auth cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_globallyscopehttpauthcacheenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_globallyscopehttpauthcacheenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importcookies", + "displayName": "Allow importing of Cookies", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importcookies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importcookies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importextensions", + "displayName": "Allow importing of extensions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importshortcuts", + "displayName": "Allow importing of shortcuts", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importshortcuts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importshortcuts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect", + "displayName": "Specify how \"in-page\" navigations to unconfigured sites behave when started from Internet Explorer mode pages", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_internetexplorerintegrationsiteredirect", + "displayName": "Specify how \"in-page\" navigations to unconfigured sites behave when started from Internet Explorer mode pages (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_internetexplorerintegrationsiteredirect_0", + "displayName": "Default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_internetexplorerintegrationsiteredirect_1", + "displayName": "Keep only automatic navigations in Internet Explorer mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_internetexplorerintegrationsiteredirect_2", + "displayName": "Keep all in-page navigations in Internet Explorer mode", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importcookies_recommended", + "displayName": "Allow importing of Cookies", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importcookies_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importcookies_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importextensions_recommended", + "displayName": "Allow importing of extensions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importextensions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importextensions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importshortcuts_recommended", + "displayName": "Allow importing of shortcuts", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importshortcuts_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importshortcuts_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_strictermixedcontenttreatmentenabled", + "displayName": "Enable stricter treatment for mixed content", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_strictermixedcontenttreatmentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_strictermixedcontenttreatmentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_tls13hardeningforlocalanchorsenabled", + "displayName": "Enable a TLS 1.3 security feature for local trust anchors.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_tls13hardeningforlocalanchorsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_tls13hardeningforlocalanchorsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81identitydiff~policy~microsoft_edge_forcecertificatepromptsonmultiplematches", + "displayName": "Configure whether Microsoft Edge should automatically select a certificate when there are multiple certificate matches for a site configured with \"AutoSelectCertificateForUrls\"", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81identitydiff~policy~microsoft_edge_forcecertificatepromptsonmultiplematches_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev81identitydiff~policy~microsoft_edge_forcecertificatepromptsonmultiplematches_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowsurfgame", + "displayName": "Allow surf game", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowsurfgame_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowsurfgame_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowtokenbindingforurls", + "displayName": "Configure the list of sites for which Microsoft Edge will attempt to establish a Token Binding with.", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowtokenbindingforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowtokenbindingforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowtokenbindingforurls_allowtokenbindingforurlsdesc", + "displayName": "Configure the list of sites for which Microsoft Edge will attempt to establish a Token Binding with. (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_bingadssuppression", + "displayName": "Block all ads on Bing search results", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_bingadssuppression_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_bingadssuppression_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_clearcachedimagesandfilesonexit", + "displayName": "Clear cached images and files when Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_clearcachedimagesandfilesonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_clearcachedimagesandfilesonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare", + "displayName": "Configure the Share experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_configureshare", + "displayName": "Configure the Share experience (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_configureshare_0", + "displayName": "Allow using the Share experience", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_configureshare_1", + "displayName": "Don't allow using the Share experience", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_deletedataonmigration", + "displayName": "Delete old browser data on migration", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_deletedataonmigration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_deletedataonmigration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode", + "displayName": "Control the mode of DNS-over-HTTPS", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_dnsoverhttpsmode", + "displayName": "Control the mode of DNS-over-HTTPS (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_dnsoverhttpsmode_off", + "displayName": "Disable DNS-over-HTTPS", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_dnsoverhttpsmode_automatic", + "displayName": "Enable DNS-over-HTTPS with insecure fallback", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_dnsoverhttpsmode_secure", + "displayName": "Enable DNS-over-HTTPS without insecure fallback", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpstemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpstemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpstemplates_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_familysafetysettingsenabled", + "displayName": "Allow users to configure Family safety", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_familysafetysettingsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_familysafetysettingsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_localprovidersenabled", + "displayName": "Allow suggestions from local providers", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_localprovidersenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_localprovidersenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_clearcachedimagesandfilesonexit_recommended", + "displayName": "Clear cached images and files when Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_clearcachedimagesandfilesonexit_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_clearcachedimagesandfilesonexit_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_localprovidersenabled_recommended", + "displayName": "Allow suggestions from local providers", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_localprovidersenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_localprovidersenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_screencaptureallowed", + "displayName": "Allow or deny screen capture", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_screencaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_screencaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_scrolltotextfragmentenabled", + "displayName": "Enable scrolling to text specified in URL fragments", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_scrolltotextfragmentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_scrolltotextfragmentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_synctypeslistdisabled", + "displayName": "Configure the list of types that are excluded from synchronization", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_synctypeslistdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_synctypeslistdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_synctypeslistdisabled_synctypeslistdisableddesc", + "displayName": "Configure the list of types that are excluded from synchronization (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_appcacheforceenabled", + "displayName": "Allows the AppCache feature to be re-enabled, even if it's turned off by default", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_appcacheforceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_appcacheforceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload", + "displayName": "Require that the Enterprise Mode Site List is available before tab navigation", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_delaynavigationsforinitialsitelistdownload", + "displayName": "Require that the Enterprise Mode Site List is available before tab navigation (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_delaynavigationsforinitialsitelistdownload_0", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_delaynavigationsforinitialsitelistdownload_1", + "displayName": "All eligible navigations", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection", + "displayName": "Configure enhanced hang detection for Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_internetexplorerintegrationenhancedhangdetection", + "displayName": "Configure enhanced hang detection for Internet Explorer mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_internetexplorerintegrationenhancedhangdetection_0", + "displayName": "Enhanced hang detection disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_internetexplorerintegrationenhancedhangdetection_1", + "displayName": "Enhanced hang detection enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_nativewindowocclusionenabled", + "displayName": "Enable Hiding of Native Windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_nativewindowocclusionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_nativewindowocclusionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_navigationdelayforinitialsitelistdownloadtimeout", + "displayName": "Set a timeout for delay of tab navigation for the Enterprise Mode Site List", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_navigationdelayforinitialsitelistdownloadtimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_navigationdelayforinitialsitelistdownloadtimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_navigationdelayforinitialsitelistdownloadtimeout_navigationdelayforinitialsitelistdownloadtimeout", + "displayName": "Set a timeout for delay of tab navigation for the Enterprise Mode Site List: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended_managedsearchengines_recommended", + "displayName": "Manage Search Engines", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended_managedsearchengines_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended_managedsearchengines_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended_managedsearchengines_recommended_managedsearchengines", + "displayName": "Manage Search Engines (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended", + "displayName": "Enable the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended", + "displayName": "Default search provider encodings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_defaultsearchproviderencodingsdesc", + "displayName": "Default search provider encodings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended", + "displayName": "Specifies the search-by-image feature for the default search provider", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_defaultsearchproviderimageurl", + "displayName": "Specifies the search-by-image feature for the default search provider (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended", + "displayName": "Parameters for an image URL that uses POST", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for an image URL that uses POST (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended", + "displayName": "Default search provider keyword", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended", + "displayName": "Default search provider name", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_defaultsearchprovidername", + "displayName": "Default search provider name (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended", + "displayName": "Default search provider search URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended", + "displayName": "Default search provider URL for suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_defaultsearchprovidersuggesturl", + "displayName": "Default search provider URL for suggestions (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_winhttpproxyresolverenabled", + "displayName": "Use Windows proxy resolver (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_winhttpproxyresolverenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_winhttpproxyresolverenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge~applicationguard_applicationguardcontainerproxy", + "displayName": "Application Guard Container Proxy", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge~applicationguard_applicationguardcontainerproxy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge~applicationguard_applicationguardcontainerproxy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge~applicationguard_applicationguardcontainerproxy_applicationguardcontainerproxy", + "displayName": "Application Guard Container Proxy (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autolaunchprotocolsfromorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autolaunchprotocolsfromorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autolaunchprotocolsfromorigins_autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenallowedforurls", + "displayName": "URLs where AutoOpenFileTypes can apply", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenallowedforurls_autoopenallowedforurlsdesc", + "displayName": "URLs where AutoOpenFileTypes can apply (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenfiletypes", + "displayName": "List of file types that should be automatically opened on download", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenfiletypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenfiletypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenfiletypes_autoopenfiletypesdesc", + "displayName": "List of file types that should be automatically opened on download (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_defaultsearchprovidercontextmenuaccessallowed", + "displayName": "Allow default search provider context menu search access", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_defaultsearchprovidercontextmenuaccessallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_defaultsearchprovidercontextmenuaccessallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_enablesha1forlocalanchors", + "displayName": "Allow certificates signed using SHA-1 when issued by local trust anchors (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_enablesha1forlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_enablesha1forlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_exemptdomainfiletypepairsfromfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_exemptdomainfiletypepairsfromfiletypedownloadwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_exemptdomainfiletypepairsfromfiletypedownloadwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_exemptdomainfiletypepairsfromfiletypedownloadwarnings_exemptdomainfiletypepairsfromfiletypedownloadwarningsdesc", + "displayName": "Disable download file type extension-based warnings for specified file types on domains (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_intensivewakeupthrottlingenabled", + "displayName": "Control the IntensiveWakeUpThrottling feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_intensivewakeupthrottlingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_intensivewakeupthrottlingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended", + "displayName": "Configure the new tab page search box experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_newtabpagesearchbox", + "displayName": "New tab page search box experience (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_newtabpagesearchbox_bing", + "displayName": "Search box (Recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_newtabpagesearchbox_redirect", + "displayName": "Address bar", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmonitorallowed_recommended", + "displayName": "Allow users to be alerted if their passwords are found to be unsafe", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmonitorallowed_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmonitorallowed_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~startup_recommended_newtabpageprerenderenabled_recommended", + "displayName": "Enable preload of the new tab page for faster rendering", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~startup_recommended_newtabpageprerenderenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~startup_recommended_newtabpageprerenderenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilelocation", + "displayName": "Set the roaming profile directory", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilelocation_roamingprofilelocation", + "displayName": "Set the roaming profile directory (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilesupportenabled", + "displayName": "Enable using roaming copies for Microsoft Edge profile data", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilesupportenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilesupportenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_tlsciphersuitedenylist", + "displayName": "Specify the TLS cipher suites to disable", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_tlsciphersuitedenylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_tlsciphersuitedenylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_tlsciphersuitedenylist_tlsciphersuitedenylistdesc", + "displayName": "Specify the TLS cipher suites to disable (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox", + "displayName": "Configure the new tab page search box experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_newtabpagesearchbox", + "displayName": "New tab page search box experience (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_newtabpagesearchbox_bing", + "displayName": "Search box (Recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_newtabpagesearchbox_redirect", + "displayName": "Address bar", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~passwordmanager_passwordmonitorallowed", + "displayName": "Allow users to be alerted if their passwords are found to be unsafe", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~passwordmanager_passwordmonitorallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~passwordmanager_passwordmonitorallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~startup_newtabpageprerenderenabled", + "displayName": "Enable preload of the new tab page for faster rendering", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~startup_newtabpageprerenderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~startup_newtabpageprerenderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_collectionsservicesandexportsblocklist", + "displayName": "Block access to a specified list of services and export targets in Collections", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_collectionsservicesandexportsblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_collectionsservicesandexportsblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_collectionsservicesandexportsblocklist_collectionsservicesandexportsblocklistdesc", + "displayName": "Block access to a specified list of services and export targets in Collections (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting", + "displayName": "Default sensors setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_defaultsensorssetting", + "displayName": "Default sensors setting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_defaultsensorssetting_1", + "displayName": "Allow sites to access sensors", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_defaultsensorssetting_2", + "displayName": "Do not allow any site to access sensors", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting", + "displayName": "Control use of the Serial API", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_defaultserialguardsetting", + "displayName": "Control use of the Serial API (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_defaultserialguardsetting_2", + "displayName": "Do not allow any site to request access to serial ports via the Serial API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_defaultserialguardsetting_3", + "displayName": "Allow sites to ask for user permission to access a serial port", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata", + "displayName": "Send required and optional diagnostic data about browser usage", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_diagnosticdata", + "displayName": "Send required and optional diagnostic data about browser usage (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_diagnosticdata_0", + "displayName": "Off (Not recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_diagnosticdata_1", + "displayName": "Required data", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_diagnosticdata_2", + "displayName": "Optional data", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_enterprisemodesitelistmanagerallowed", + "displayName": "Allow access to the Enterprise Mode Site List Manager tool", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_enterprisemodesitelistmanagerallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_enterprisemodesitelistmanagerallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_forcesync", + "displayName": "Force synchronization of browser data and do not show the sync consent prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_forcesync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_forcesync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_insecureformswarningsenabled", + "displayName": "Enable warnings for insecure forms", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_insecureformswarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_insecureformswarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_internetexplorerintegrationtestingallowed", + "displayName": "Allow Internet Explorer mode testing", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_internetexplorerintegrationtestingallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_internetexplorerintegrationtestingallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_savecookiesonexit", + "displayName": "Save cookies when Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_savecookiesonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_savecookiesonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_savecookiesonexit_savecookiesonexitdesc", + "displayName": "Save cookies when Microsoft Edge closes (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsallowedforurls", + "displayName": "Allow access to sensors on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsallowedforurls_sensorsallowedforurlsdesc", + "displayName": "Allow access to sensors on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsblockedforurls", + "displayName": "Block access to sensors on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsblockedforurls_sensorsblockedforurlsdesc", + "displayName": "Block access to sensors on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialaskforurls", + "displayName": "Allow the Serial API on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialaskforurls_serialaskforurlsdesc", + "displayName": "Allow the Serial API on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialblockedforurls", + "displayName": "Block the Serial API on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialblockedforurls_serialblockedforurlsdesc", + "displayName": "Block the Serial API on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_useragentclienthintsenabled", + "displayName": "Enable the User-Agent Client Hints feature (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_useragentclienthintsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_useragentclienthintsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_userdatasnapshotretentionlimit", + "displayName": "Limits the number of user data snapshots retained for use in case of emergency rollback", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_userdatasnapshotretentionlimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_userdatasnapshotretentionlimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_userdatasnapshotretentionlimit_userdatasnapshotretentionlimit", + "displayName": "Limits the number of user data snapshots retained for use in case of emergency rollback: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting_2", + "displayName": "Don't allow any site to request read access to files and directories via the File System API", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting_3", + "displayName": "Allow sites to ask the user to grant read access to files and directories via the File System API", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting_2", + "displayName": "Don't allow any site to request write access to files and directories", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting_3", + "displayName": "Allow sites to ask the user to grant write access to files and directories", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadaskforurls", + "displayName": "Allow read access via the File System API on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadaskforurls_filesystemreadaskforurlsdesc", + "displayName": "Allow read access via the File System API on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadblockedforurls", + "displayName": "Block read access via the File System API on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadblockedforurls_filesystemreadblockedforurlsdesc", + "displayName": "Block read access via the File System API on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteaskforurls", + "displayName": "Allow write access to files and directories on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteaskforurls_filesystemwriteaskforurlsdesc", + "displayName": "Allow write access to files and directories on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteblockedforurls", + "displayName": "Block write access to files and directories on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteblockedforurls_filesystemwriteblockedforurlsdesc", + "displayName": "Block write access to files and directories on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_spotlightexperiencesandrecommendationsenabled", + "displayName": "Choose whether users can receive customized background images and text, suggestions, notifications,\r\nand tips for Microsoft services", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_spotlightexperiencesandrecommendationsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_spotlightexperiencesandrecommendationsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes", + "displayName": "Configure the background types allowed for the new tab page layout", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_newtabpageallowedbackgroundtypes", + "displayName": "New tab page experience (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_newtabpageallowedbackgroundtypes_1", + "displayName": "Disable daily background image type", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_newtabpageallowedbackgroundtypes_2", + "displayName": "Disable custom background image type", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_newtabpageallowedbackgroundtypes_3", + "displayName": "Disable all background image types", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_configurefriendlyurlformat", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_configurefriendlyurlformat_1", + "displayName": "The plain URL without any extra information, such as the page's title. This is the recommended option when this policy is configured. For more information, see the description.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_configurefriendlyurlformat_3", + "displayName": "Titled Hyperlink: A hyperlink that points to the copied URL, but whose visible text is the title of the destination page. This is the Friendly URL format.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_configurefriendlyurlformat_4", + "displayName": "Coming soon. If set, behaves the same as 'Plain URL'.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_edgeshoppingassistantenabled", + "displayName": "Shopping in Microsoft Edge Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_edgeshoppingassistantenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_edgeshoppingassistantenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_hideinternetexplorerredirectuxforincompatiblesitesenabled", + "displayName": "Hide the one-time redirection dialog and the banner on Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_hideinternetexplorerredirectuxforincompatiblesitesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_hideinternetexplorerredirectuxforincompatiblesitesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_edgeshoppingassistantenabled_recommended", + "displayName": "Shopping in Microsoft Edge Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_edgeshoppingassistantenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_edgeshoppingassistantenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended", + "displayName": "Redirect incompatible sites from Internet Explorer to Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_redirectsitesfrominternetexplorerredirectmode", + "displayName": "Redirect incompatible sites from Internet Explorer to Microsoft Edge (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_redirectsitesfrominternetexplorerredirectmode_0", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_redirectsitesfrominternetexplorerredirectmode_1", + "displayName": "Redirect sites based on the incompatible sites sitelist", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordrevealenabled_recommended", + "displayName": "Enable Password reveal button", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordrevealenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordrevealenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerpreventbhoinstall", + "displayName": "Prevent install of the BHO to redirect incompatible sites from Internet Explorer to Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerpreventbhoinstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerpreventbhoinstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode", + "displayName": "Redirect incompatible sites from Internet Explorer to Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_redirectsitesfrominternetexplorerredirectmode", + "displayName": "Redirect incompatible sites from Internet Explorer to Microsoft Edge (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_redirectsitesfrominternetexplorerredirectmode_0", + "displayName": "Disable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_redirectsitesfrominternetexplorerredirectmode_1", + "displayName": "Redirect sites based on the incompatible sites sitelist", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_speechrecognitionenabled", + "displayName": "Configure Speech Recognition", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_speechrecognitionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_speechrecognitionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_webcaptureenabled", + "displayName": "Enable web capture feature in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_webcaptureenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_webcaptureenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskaddressbareditingenabled", + "displayName": "Configure address bar editing for kiosk mode public browsing experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskaddressbareditingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskaddressbareditingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskdeletedownloadsonexit", + "displayName": "Delete files downloaded as part of kiosk session when Microsoft Edge closes", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskdeletedownloadsonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskdeletedownloadsonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~printing_printingpapersizedefault", + "displayName": "Default printing page size", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~printing_printingpapersizedefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~printing_printingpapersizedefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~printing_printingpapersizedefault_printingpapersizedefault", + "displayName": "Default printing page size (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.0.705.23~policy~microsoft_edge_targetblankimpliesnoopener", + "displayName": "Do not set window.opener for links targeting _blank", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.0.705.23~policy~microsoft_edge_targetblankimpliesnoopener_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.0.705.23~policy~microsoft_edge_targetblankimpliesnoopener_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.0.705.23~policy~microsoft_edge~httpauthentication_basicauthoverhttpenabled", + "displayName": "Allow Basic authentication for HTTP", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.0.705.23~policy~microsoft_edge~httpauthentication_basicauthoverhttpenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.0.705.23~policy~microsoft_edge~httpauthentication_basicauthoverhttpenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended", + "displayName": "Set the background tab inactivity timeout for sleeping tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for sleeping tabs (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_30", + "displayName": "30 seconds of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_300", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_900", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_1800", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_3600", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_7200", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_10800", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_21600", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_43200", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for sleeping tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for sleeping tabs (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_30", + "displayName": "30 seconds of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_300", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_900", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_1800", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_3600", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_7200", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_10800", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_21600", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_43200", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileallowed", + "displayName": "Allow launching of local files in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileextensionallowlist", + "displayName": "Open local files in Internet Explorer mode file extension allow list", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileextensionallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileextensionallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileextensionallowlist_internetexplorerintegrationlocalfileextensionallowlistdesc", + "displayName": "Open local files in Internet Explorer mode file extension allow list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileshowcontextmenu", + "displayName": "Show context menu to open a link in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileshowcontextmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileshowcontextmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior_0", + "displayName": "Use default browser behavior.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior_1", + "displayName": "Disable DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior_2", + "displayName": "Disable DNS interception checks; allow did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior_3", + "displayName": "Allow DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended_showmicrosoftrewards_recommended", + "displayName": "Show Microsoft Rewards experiences", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended_showmicrosoftrewards_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended_showmicrosoftrewards_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~performance_recommended_startupboostenabled_recommended", + "displayName": "Enable startup boost", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~performance_recommended_startupboostenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~performance_recommended_startupboostenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsblockedforurls_recommended", + "displayName": "Block Sleeping Tabs on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsblockedforurls_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsblockedforurls_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsblockedforurls_recommended_sleepingtabsblockedforurlsdesc", + "displayName": "Block Sleeping Tabs on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsenabled_recommended", + "displayName": "Configure Sleeping Tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_300", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_900", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_1800", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_3600", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_7200", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_10800", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_21600", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_43200", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_showmicrosoftrewards", + "displayName": "Show Microsoft Rewards experiences", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_showmicrosoftrewards_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_showmicrosoftrewards_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_verticaltabsallowed", + "displayName": "Configures availability of a vertical layout for tabs on the side of the browser", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_verticaltabsallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_verticaltabsallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webrtcallowlegacytlsprotocols", + "displayName": "Allow legacy TLS/DTLS downgrade in WebRTC (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webrtcallowlegacytlsprotocols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webrtcallowlegacytlsprotocols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetallowed", + "displayName": "Enable the Web widget", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetisenabledonstartup", + "displayName": "Allow the Web widget at Windows startup", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetisenabledonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetisenabledonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~extensions_blockexternalextensions", + "displayName": "Blocks external extensions from being installed", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~extensions_blockexternalextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~extensions_blockexternalextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~performance_startupboostenabled", + "displayName": "Enable startup boost", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~performance_startupboostenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~performance_startupboostenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~printing_printertypedenylist", + "displayName": "Disable printer types on the deny list", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~printing_printertypedenylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~printing_printertypedenylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~printing_printertypedenylist_printertypedenylistdesc", + "displayName": "Disable printer types on the deny list (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsblockedforurls", + "displayName": "Block Sleeping Tabs on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsblockedforurls_sleepingtabsblockedforurlsdesc", + "displayName": "Block Sleeping Tabs on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsenabled", + "displayName": "Configure Sleeping Tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_300", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_900", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_1800", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_3600", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_7200", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_10800", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_21600", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_43200", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_browsingdatalifetime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_browsingdatalifetime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_browsingdatalifetime_browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_definepreferredlanguages", + "displayName": "Define an ordered list of preferred languages that websites should display in if the site supports the language", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_definepreferredlanguages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_definepreferredlanguages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_definepreferredlanguages_definepreferredlanguages", + "displayName": "Define an ordered list of preferred languages that websites should display in if the site supports the language (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_recommended_smartactionsblocklist_recommended", + "displayName": "Block smart actions for a list of services", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_recommended_smartactionsblocklist_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_recommended_smartactionsblocklist_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_recommended_smartactionsblocklist_recommended_smartactionsblocklistdesc", + "displayName": "Block smart actions for a list of services (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_showrecommendationsenabled", + "displayName": "Allow feature recommendations and browser assistance notifications from Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_showrecommendationsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_showrecommendationsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_smartactionsblocklist", + "displayName": "Block smart actions for a list of services", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_smartactionsblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_smartactionsblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_smartactionsblocklist_smartactionsblocklistdesc", + "displayName": "Block smart actions for a list of services (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~manageability_mamenabled", + "displayName": "Mobile App Management Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~manageability_mamenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~manageability_mamenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_any", + "displayName": "Allow printing with and without background graphics", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_enabled", + "displayName": "Allow printing only with background graphics", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_disabled", + "displayName": "Allow printing only without background graphics", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault_enabled", + "displayName": "Enable background graphics printing mode by default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault_disabled", + "displayName": "Disable background graphics printing mode by default", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on shutdown", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_fetchkeepalivedurationsecondsonshutdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_fetchkeepalivedurationsecondsonshutdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_fetchkeepalivedurationsecondsonshutdown_fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on shutdown: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_managedconfigurationperorigin", + "displayName": "Sets managed configuration values for websites to specific origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_managedconfigurationperorigin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_managedconfigurationperorigin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_managedconfigurationperorigin_managedconfigurationperorigin", + "displayName": "Sets managed configuration values for websites to specific origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_quickviewofficefilesenabled", + "displayName": "Manage QuickView Office files capability in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_quickviewofficefilesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_quickviewofficefilesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_recommended~httpauthentication_recommended_windowshelloforhttpauthenabled_recommended", + "displayName": "Windows Hello For HTTP Auth Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_recommended~httpauthentication_recommended_windowshelloforhttpauthenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_recommended~httpauthentication_recommended_windowshelloforhttpauthenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_sslerroroverrideallowedfororigins", + "displayName": "Allow users to proceed from the HTTPS warning page for specific origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_sslerroroverrideallowedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_sslerroroverrideallowedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_sslerroroverrideallowedfororigins_sslerroroverrideallowedfororiginsdesc", + "displayName": "Allow users to proceed from the HTTPS warning page for specific origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~applicationguard_applicationguardfavoritessyncenabled", + "displayName": "Application Guard Favorites Sync Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~applicationguard_applicationguardfavoritessyncenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~applicationguard_applicationguardfavoritessyncenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~httpauthentication_windowshelloforhttpauthenabled", + "displayName": "Windows Hello For HTTP Auth Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~httpauthentication_windowshelloforhttpauthenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~httpauthentication_windowshelloforhttpauthenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode", + "displayName": "Print Rasterization Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_printrasterizationmode", + "displayName": "Print Rasterization Mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_printrasterizationmode_0", + "displayName": "Full page rasterization", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_printrasterizationmode_1", + "displayName": "Avoid rasterization if possible", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_explicitlyallowednetworkports", + "displayName": "Explicitly allowed network ports", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_explicitlyallowednetworkports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_explicitlyallowednetworkports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_explicitlyallowednetworkports_explicitlyallowednetworkportsdesc", + "displayName": "Explicitly allowed network ports (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_importstartuppagesettings", + "displayName": "Allow importing of startup page settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_importstartuppagesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_importstartuppagesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_mathsolverenabled", + "displayName": "Let users snip a Math problem and get the solution with a step-by-step explanation in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_mathsolverenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_mathsolverenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_recommended_importstartuppagesettings_recommended", + "displayName": "Allow importing of startup page settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_recommended_importstartuppagesettings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_recommended_importstartuppagesettings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~applicationguard_applicationguardtrafficidentificationenabled", + "displayName": "Application Guard Traffic Identification", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~applicationguard_applicationguardtrafficidentificationenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~applicationguard_applicationguardtrafficidentificationenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagecontentenabled", + "displayName": "Allow Microsoft News content on the new tab page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagecontentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagecontentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagequicklinksenabled", + "displayName": "Allow quick links on the new tab page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagequicklinksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagequicklinksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_aadwebsitessousingthisprofileenabled", + "displayName": "Single sign-on for work or school sites using this profile enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_aadwebsitessousingthisprofileenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_aadwebsitessousingthisprofileenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault", + "displayName": "Configure Automatic HTTPS", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_automatichttpsdefault", + "displayName": "Configure Automatic HTTPS (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_automatichttpsdefault_0", + "displayName": "Automatic HTTPS functionality is disabled.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_automatichttpsdefault_1", + "displayName": "Navigations delivered over HTTP are switched to HTTPS, only on domains likely to support HTTPS.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_automatichttpsdefault_2", + "displayName": "All navigations delivered over HTTP are switched to HTTPS. Connection errors might occur more often.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_headlessmodeenabled", + "displayName": "Control use of the Headless Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_headlessmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_headlessmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationlocalsitelistexpirationdays", + "displayName": "Specify the number of days that a site remains on the local IE mode site list", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationlocalsitelistexpirationdays_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationlocalsitelistexpirationdays_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationlocalsitelistexpirationdays_internetexplorerintegrationlocalsitelistexpirationdays", + "displayName": "Specify the number of days that a site remains on the local IE mode site list: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationreloadiniemodeallowed", + "displayName": "Allow unconfigured sites to be reloaded in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationreloadiniemodeallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationreloadiniemodeallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_aadwebsitessousingthisprofileenabled_recommended", + "displayName": "Single sign-on for work or school sites using this profile enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_aadwebsitessousingthisprofileenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_aadwebsitessousingthisprofileenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended", + "displayName": "Configure Automatic HTTPS", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_automatichttpsdefault", + "displayName": "Configure Automatic HTTPS (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_automatichttpsdefault_0", + "displayName": "Automatic HTTPS functionality is disabled.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_automatichttpsdefault_1", + "displayName": "Navigations delivered over HTTP are switched to HTTPS, only on domains likely to support HTTPS.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_automatichttpsdefault_2", + "displayName": "All navigations delivered over HTTP are switched to HTTPS. Connection errors might occur more often.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_internetexplorerintegrationreloadiniemodeallowed_recommended", + "displayName": "Allow unconfigured sites to be reloaded in Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_internetexplorerintegrationreloadiniemodeallowed_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_internetexplorerintegrationreloadiniemodeallowed_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowed", + "displayName": "Specifies whether to allow insecure websites to make requests to more-private network endpoints", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowedforurls", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from insecure contexts", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowedforurls_insecureprivatenetworkrequestsallowedforurlsdesc", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from insecure contexts (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_0", + "displayName": "Automatically", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_1", + "displayName": "With device password", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_2", + "displayName": "With custom primary password", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_3", + "displayName": "Autofill off", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_autoplayallowlist", + "displayName": "Allow media autoplay on specific sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_autoplayallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_autoplayallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_autoplayallowlist_autoplayallowlistdesc", + "displayName": "Allow media autoplay on specific sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_cecpq2enabled", + "displayName": "CECPQ2 post-quantum key-agreement enabled for TLS", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_cecpq2enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_cecpq2enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_configureviewinfileexplorer", + "displayName": "Configure the View in File Explorer feature for SharePoint pages in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_configureviewinfileexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_configureviewinfileexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_configureviewinfileexplorer_configureviewinfileexplorer", + "displayName": "Configure the View in File Explorer feature for SharePoint pages in Microsoft Edge (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationcloudsitelist", + "displayName": "Configure the Enterprise Mode Cloud Site List", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationcloudsitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationcloudsitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationcloudsitelist_internetexplorerintegrationcloudsitelist", + "displayName": "Configure the Enterprise Mode Cloud Site List (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationsitelistrefreshinterval", + "displayName": "Configure how frequently the Enterprise Mode Site List is refreshed", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationsitelistrefreshinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationsitelistrefreshinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationsitelistrefreshinterval_internetexplorerintegrationsitelistrefreshinterval", + "displayName": "Configure how frequently the Enterprise Mode Site List is refreshed: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_localbrowserdatashareenabled", + "displayName": "Enable Windows to search local Microsoft Edge browsing data", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_localbrowserdatashareenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_localbrowserdatashareenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_msawebsitessousingthisprofileallowed", + "displayName": "Allow single sign-on for Microsoft sites using this profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_msawebsitessousingthisprofileallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_msawebsitessousingthisprofileallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_localbrowserdatashareenabled_recommended", + "displayName": "Enable Windows to search local Microsoft Edge browsing data", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_localbrowserdatashareenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_localbrowserdatashareenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_msawebsitessousingthisprofileallowed_recommended", + "displayName": "Allow single sign-on for Microsoft sites using this profile", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_msawebsitessousingthisprofileallowed_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_msawebsitessousingthisprofileallowed_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_travelassistanceenabled_recommended", + "displayName": "Enable travel assistance", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_travelassistanceenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_travelassistanceenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended", + "displayName": "Sets layout for printing", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_printingwebpagelayout", + "displayName": "Sets layout for printing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_printingwebpagelayout_0", + "displayName": "Sets layout option as portrait", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_printingwebpagelayout_1", + "displayName": "Sets layout option as landscape", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_relaunchwindow", + "displayName": "Set the time interval for relaunch", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_relaunchwindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_relaunchwindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_relaunchwindow_relaunchwindow", + "displayName": "Relaunch time window (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_remotedebuggingallowed", + "displayName": "Allow remote debugging", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_remotedebuggingallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_remotedebuggingallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_travelassistanceenabled", + "displayName": "Enable travel assistance", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_travelassistanceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_travelassistanceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_tripledesenabled", + "displayName": "Enable 3DES cipher suites in TLS", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_tripledesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_tripledesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting_1", + "displayName": "Allow any site to run JavaScript JIT", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting_2", + "displayName": "Do not allow any site to run JavaScript JIT", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitallowedforsites", + "displayName": "Allow JavaScript to use JIT on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitallowedforsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitallowedforsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitallowedforsites_javascriptjitallowedforsitesdesc", + "displayName": "Allow JavaScript to use JIT on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitblockedforsites", + "displayName": "Block JavaScript from using JIT on these sites", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitblockedforsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitblockedforsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitblockedforsites_javascriptjitblockedforsitesdesc", + "displayName": "Block JavaScript from using JIT on these sites (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_showpdfdefaultrecommendationsenabled", + "displayName": "Allow notifications to set Microsoft Edge as default PDF reader", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_showpdfdefaultrecommendationsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_showpdfdefaultrecommendationsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol", + "displayName": "Configure users ability to override feature flags", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_featureflagoverridescontrol", + "displayName": "Configure users ability to override feature flags (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_featureflagoverridescontrol_2", + "displayName": "Allow users to override feature flags using command line arguments only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_featureflagoverridescontrol_1", + "displayName": "Allow users to override feature flags", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_featureflagoverridescontrol_0", + "displayName": "Prevent users from overriding feature flags", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_implicitsigninenabled", + "displayName": "Enable implicit sign-in", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_implicitsigninenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_implicitsigninenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_oneauthauthenticationenforced", + "displayName": "OneAuth Authentication Flow Enforced for signin", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_oneauthauthenticationenforced_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_oneauthauthenticationenforced_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_passwordgeneratorenabled", + "displayName": "Allow users to get a strong password suggestion whenever they are creating an account online", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_passwordgeneratorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_passwordgeneratorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_0", + "displayName": "Automatically", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_1", + "displayName": "With device password", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout", + "displayName": "Sets layout for printing", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_printingwebpagelayout", + "displayName": "Sets layout for printing (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_printingwebpagelayout_0", + "displayName": "Sets layout option as portrait", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_printingwebpagelayout_1", + "displayName": "Sets layout option as landscape", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge_webrtcrespectosroutingtableenabled", + "displayName": "Enable support for Windows OS routing table rules when making peer to peer connections via WebRTC", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge_webrtcrespectosroutingtableenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge_webrtcrespectosroutingtableenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~applicationguard_applicationguardpassivemodeenabled", + "displayName": "Ignore Application Guard site list configuration and browse Edge normally", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~applicationguard_applicationguardpassivemodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~applicationguard_applicationguardpassivemodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~identity_onlyonpremisesimplicitsigninenabled", + "displayName": "Only on-premises account enabled for implicit sign-in", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~identity_onlyonpremisesimplicitsigninenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~identity_onlyonpremisesimplicitsigninenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_browserlegacyextensionpointsblockingenabled", + "displayName": "Enable browser legacy extension point blocking", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_browserlegacyextensionpointsblockingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_browserlegacyextensionpointsblockingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_crossoriginwebassemblymodulesharingenabled", + "displayName": "Specifies whether WebAssembly modules can be sent cross-origin", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_crossoriginwebassemblymodulesharingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_crossoriginwebassemblymodulesharingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_displaycapturepermissionspolicyenabled", + "displayName": "Specifies whether the display-capture permissions-policy is checked or skipped", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_displaycapturepermissionspolicyenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_displaycapturepermissionspolicyenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenheightadjustment", + "displayName": "Configure the pixel adjustment between window.open heights sourced from IE mode pages vs. Edge mode pages", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenheightadjustment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenheightadjustment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenheightadjustment_internetexplorerintegrationwindowopenheightadjustment", + "displayName": "Configure the pixel adjustment between window.open heights sourced from IE mode pages vs. Edge mode pages: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenwidthadjustment", + "displayName": "Configure the pixel adjustment between window.open widths sourced from IE mode pages vs. Edge mode pages", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenwidthadjustment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenwidthadjustment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenwidthadjustment_internetexplorerintegrationwindowopenwidthadjustment", + "displayName": "Configure the pixel adjustment between window.open widths sourced from IE mode pages vs. Edge mode pages: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended_visualsearchenabled_recommended", + "displayName": "Visual search enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended_visualsearchenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended_visualsearchenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended~smartscreen_recommended_newsmartscreenlibraryenabled_recommended", + "displayName": "Enable new SmartScreen library", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended~smartscreen_recommended_newsmartscreenlibraryenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended~smartscreen_recommended_newsmartscreenlibraryenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior", + "displayName": "Configure ShadowStack crash rollback behavior", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_shadowstackcrashrollbackbehavior", + "displayName": "Configure ShadowStack crash rollback behavior (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_shadowstackcrashrollbackbehavior_0", + "displayName": "Disable Hardware-enforced Stack Protection", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_shadowstackcrashrollbackbehavior_1", + "displayName": "Disable Hardware-enforced Stack Protection until the next Microsoft Edge update", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_shadowstackcrashrollbackbehavior_2", + "displayName": "Enable Hardware-enforced Stack Protection", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_visualsearchenabled", + "displayName": "Visual search enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_visualsearchenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_visualsearchenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~contentsettings_intranetfilelinksenabled", + "displayName": "Allow intranet zone file URL links from Microsoft Edge to open in Windows File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~contentsettings_intranetfilelinksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~contentsettings_intranetfilelinksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~smartscreen_newsmartscreenlibraryenabled", + "displayName": "Enable new SmartScreen library", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~smartscreen_newsmartscreenlibraryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~smartscreen_newsmartscreenlibraryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended", + "displayName": "Configure when efficiency mode should become active", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode", + "displayName": "Configure when efficiency mode should become active (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_0", + "displayName": "Efficiency mode is always active", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_1", + "displayName": "Efficiency mode is never active", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_2", + "displayName": "Efficiency mode is active when the device is unplugged", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_3", + "displayName": "Efficiency mode is active when the device is unplugged and the battery is low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_4", + "displayName": "When the device is unplugged, efficiency mode takes moderate steps to save battery. When the device is unplugged and the battery is low, efficiency mode takes additional steps to save battery.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_5", + "displayName": "When the device is unplugged or unplugged and the battery is low, efficiency mode takes additional steps to save battery.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode", + "displayName": "Configure when efficiency mode should become active", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode", + "displayName": "Configure when efficiency mode should become active (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_0", + "displayName": "Efficiency mode is always active", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_1", + "displayName": "Efficiency mode is never active", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_2", + "displayName": "Efficiency mode is active when the device is unplugged", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_3", + "displayName": "Efficiency mode is active when the device is unplugged and the battery is low", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_4", + "displayName": "When the device is unplugged, efficiency mode takes moderate steps to save battery. When the device is unplugged and the battery is low, efficiency mode takes additional steps to save battery.", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_5", + "displayName": "When the device is unplugged or unplugged and the battery is low, efficiency mode takes additional steps to save battery.", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_audioprocesshighpriorityenabled", + "displayName": "Allow the audio process to run with priority above normal on Windows", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_audioprocesshighpriorityenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_audioprocesshighpriorityenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_autolaunchprotocolscomponentenabled", + "displayName": "AutoLaunch Protocols Component Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_autolaunchprotocolscomponentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_autolaunchprotocolscomponentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_forcesynctypes", + "displayName": "Configure the list of types that are included for synchronization", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_forcesynctypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_forcesynctypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_forcesynctypes_forcesynctypesdesc", + "displayName": "Configure the list of types that are included for synchronization (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes", + "displayName": "Configure whether form data and HTTP headers will be sent when entering or exiting Internet Explorer mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes", + "displayName": "Configure whether form data and HTTP headers will be sent when entering or exiting Internet Explorer mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes_0", + "displayName": "Do not send form data or headers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes_1", + "displayName": "Send form data only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes_2", + "displayName": "Send additional headers only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes_3", + "displayName": "Send form data and additional headers", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorermodetoolbarbuttonenabled", + "displayName": "Show the Reload in Internet Explorer mode button in the toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorermodetoolbarbuttonenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorermodetoolbarbuttonenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended_internetexplorermodetoolbarbuttonenabled_recommended", + "displayName": "Show the Reload in Internet Explorer mode button in the toolbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended_internetexplorermodetoolbarbuttonenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended_internetexplorermodetoolbarbuttonenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended", + "displayName": "Configure when efficiency mode should become active", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode", + "displayName": "Configure when efficiency mode should become active (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_0", + "displayName": "Efficiency mode is always active", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_1", + "displayName": "Efficiency mode is never active", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_2", + "displayName": "Efficiency mode is active when the device is unplugged", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_3", + "displayName": "Efficiency mode is active when the device is unplugged and the battery is low", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~typosquattingchecker_recommended_typosquattingcheckerenabled_recommended", + "displayName": "Configure Edge TyposquattingChecker", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~typosquattingchecker_recommended_typosquattingcheckerenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~typosquattingchecker_recommended_typosquattingcheckerenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_rendererappcontainerenabled", + "displayName": "Enable renderer in app container", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_rendererappcontainerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_rendererappcontainerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_sharedlinksenabled", + "displayName": "Show links shared from Microsoft 365 apps in History", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_sharedlinksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_sharedlinksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~applicationguard_applicationguarduploadblockingenabled", + "displayName": "Prevents files from being uploaded while in Application Guard", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~applicationguard_applicationguarduploadblockingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~applicationguard_applicationguarduploadblockingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode", + "displayName": "Configure when efficiency mode should become active", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode", + "displayName": "Configure when efficiency mode should become active (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode_0", + "displayName": "Efficiency mode is always active", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode_1", + "displayName": "Efficiency mode is never active", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode_2", + "displayName": "Efficiency mode is active when the device is unplugged", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode_3", + "displayName": "Efficiency mode is active when the device is unplugged and the battery is low", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode", + "displayName": "Print PostScript Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_printpostscriptmode", + "displayName": "Print PostScript Mode (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_printpostscriptmode_0", + "displayName": "Default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_printpostscriptmode_1", + "displayName": "Type42", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printrasterizepdfdpi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printrasterizepdfdpi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printrasterizepdfdpi_printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~typosquattingchecker_typosquattingcheckerenabled", + "displayName": "Configure Edge TyposquattingChecker", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~typosquattingchecker_typosquattingcheckerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~typosquattingchecker_typosquattingcheckerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_accessibilityimagelabelsenabled", + "displayName": "Get Image Descriptions from Microsoft Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_accessibilityimagelabelsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_accessibilityimagelabelsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_corsnonwildcardrequestheaderssupport", + "displayName": "CORS non-wildcard request header support enabled (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_corsnonwildcardrequestheaderssupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_corsnonwildcardrequestheaderssupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgediscoverenabled", + "displayName": "Discover feature In Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgediscoverenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgediscoverenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgeenhanceimagesenabled", + "displayName": "Enhance images enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgeenhanceimagesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgeenhanceimagesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_internetexplorermodetabinedgemodeallowed", + "displayName": "Allow sites configured for Internet Explorer mode to open in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_internetexplorermodetabinedgemodeallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_internetexplorermodetabinedgemodeallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_openmicrosoftlinksinedgeenabled", + "displayName": "Always open links from certain Microsoft apps in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_openmicrosoftlinksinedgeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_openmicrosoftlinksinedgeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended_edgediscoverenabled_recommended", + "displayName": "Discover feature In Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended_edgediscoverenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended_edgediscoverenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreendnsrequestsenabled_recommended", + "displayName": "Enable Microsoft Defender SmartScreen DNS requests", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreendnsrequestsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreendnsrequestsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_websqlinthirdpartycontextenabled", + "displayName": "Force WebSQL in third-party contexts to be re-enabled (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_websqlinthirdpartycontextenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_websqlinthirdpartycontextenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowallportsforurls", + "displayName": "Automatically grant sites permission to connect all serial ports", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowallportsforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowallportsforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowallportsforurls_serialallowallportsforurlsdesc", + "displayName": "Automatically grant sites permission to connect all serial ports (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowusbdevicesforurls", + "displayName": "Automatically grant sites permission to connect to USB serial devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowusbdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowusbdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowusbdevicesforurls_serialallowusbdevicesforurls", + "displayName": "Automatically grant sites permission to connect to USB serial devices (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_sameorigintabcaptureallowedbyorigins", + "displayName": "Allow Same Origin Tab capture by these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_sameorigintabcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_sameorigintabcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_sameorigintabcaptureallowedbyorigins_sameorigintabcaptureallowedbyoriginsdesc", + "displayName": "Allow Same Origin Tab capture by these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_screencaptureallowedbyorigins", + "displayName": "Allow Desktop, Window, and Tab capture by these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_screencaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_screencaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_screencaptureallowedbyorigins_screencaptureallowedbyoriginsdesc", + "displayName": "Allow Desktop, Window, and Tab capture by these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_tabcaptureallowedbyorigins", + "displayName": "Allow Tab capture by these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_tabcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_tabcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_tabcaptureallowedbyorigins_tabcaptureallowedbyoriginsdesc", + "displayName": "Allow Tab capture by these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_windowcaptureallowedbyorigins", + "displayName": "Allow Window and Tab capture by these origins", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_windowcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_windowcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_windowcaptureallowedbyorigins_windowcaptureallowedbyoriginsdesc", + "displayName": "Allow Window and Tab capture by these origins (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~smartscreen_smartscreendnsrequestsenabled", + "displayName": "Enable Microsoft Defender SmartScreen DNS requests", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~smartscreen_smartscreendnsrequestsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~smartscreen_smartscreendnsrequestsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_0", + "displayName": "Standard mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_1", + "displayName": "Balanced mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_2", + "displayName": "Strict mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_3", + "displayName": "Basic mode", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_edgefollowenabled", + "displayName": "Enable Follow service in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_edgefollowenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_edgefollowenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_0", + "displayName": "Standard mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_1", + "displayName": "Balanced mode", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_2", + "displayName": "Strict mode", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodebypasslistdomains", + "displayName": "Configure the list of domains for which enhance security mode will not be enforced", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodebypasslistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodebypasslistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodebypasslistdomains_enhancesecuritymodebypasslistdomainsdesc", + "displayName": "Configure the list of domains for which enhance security mode will not be enforced (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodeenforcelistdomains", + "displayName": "Configure the list of domains for which enhance security mode will always be enforced", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodeenforcelistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodeenforcelistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodeenforcelistdomains_enhancesecuritymodeenforcelistdomainsdesc", + "displayName": "Configure the list of domains for which enhance security mode will always be enforced (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_inappsupportenabled", + "displayName": "In-app support Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_inappsupportenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_inappsupportenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_microsoftedgeinsiderpromotionenabled", + "displayName": "Microsoft Edge Insider Promotion Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_microsoftedgeinsiderpromotionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_microsoftedgeinsiderpromotionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_u2fsecuritykeyapienabled", + "displayName": "Allow using the deprecated U2F Security Key API (deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_u2fsecuritykeyapienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_u2fsecuritykeyapienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings", + "displayName": "Print preview sticky settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings", + "displayName": "Print preview sticky settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings_0", + "displayName": "Enable sticky settings for PDF and Webpages", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings_1", + "displayName": "Disable sticky settings for PDF and Webpages", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings_2", + "displayName": "Disable sticky settings for PDF", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings_3", + "displayName": "Disable sticky settings for Webpages", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_addressbareditingenabled", + "displayName": "Configure address bar editing", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_addressbareditingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_addressbareditingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_allowgamesmenu", + "displayName": "Allow users to access the games menu", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_allowgamesmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_allowgamesmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_donotsilentlyblockprotocolsfromorigins", + "displayName": "Define a list of protocols that can not be silently blocked by anti-flood protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_donotsilentlyblockprotocolsfromorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_donotsilentlyblockprotocolsfromorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_donotsilentlyblockprotocolsfromorigins_donotsilentlyblockprotocolsfromorigins", + "displayName": "Define a list of protocols that can not be silently blocked by anti-flood protection (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_hubssidebarenabled", + "displayName": "Show Hubs Sidebar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_hubssidebarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_hubssidebarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudneutralsitesreporting", + "displayName": "Configure reporting of potentially misconfigured neutral site URLs to the M365 Admin Center Site Lists app", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudneutralsitesreporting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudneutralsitesreporting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudneutralsitesreporting_internetexplorerintegrationcloudneutralsitesreporting", + "displayName": "Configure reporting of potentially misconfigured neutral site URLs to the M365 Admin Center Site Lists app (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudusersitesreporting", + "displayName": "Configure reporting of IE Mode user list entries to the M365 Admin Center Site Lists app", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudusersitesreporting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudusersitesreporting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudusersitesreporting_internetexplorerintegrationcloudusersitesreporting", + "displayName": "Configure reporting of IE Mode user list entries to the M365 Admin Center Site Lists app (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended_hubssidebarenabled_recommended", + "displayName": "Show Hubs Sidebar", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended_hubssidebarenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended_hubssidebarenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended~identity_recommended_signinctaonntpenabled_recommended", + "displayName": "Enable sign in click to action dialog", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended~identity_recommended_signinctaonntpenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended~identity_recommended_signinctaonntpenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_relatedmatchescloudserviceenabled", + "displayName": "Configure Related Matches in Find on Page", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_relatedmatchescloudserviceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_relatedmatchescloudserviceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_sandboxexternalprotocolblocked", + "displayName": "Allow Microsoft Edge to block navigations to external protocols in a sandboxed iframe", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_sandboxexternalprotocolblocked_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_sandboxexternalprotocolblocked_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction", + "displayName": "Enable or disable the User-Agent Reduction", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_useragentreduction", + "displayName": "Enable or disable the User-Agent Reduction (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_useragentreduction_0", + "displayName": "User-Agent reduction will be controllable via Experimentation", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_useragentreduction_1", + "displayName": "User-Agent reduction diabled, and not enabled by Experimentation", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_useragentreduction_2", + "displayName": "User-Agent reduction will be enabled for all origins", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge~passwordmanager_passwordmanagerblocklist", + "displayName": "Configure the list of domains for which the password manager UI (Save and Fill) will be disabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge~passwordmanager_passwordmanagerblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge~passwordmanager_passwordmanagerblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge~passwordmanager_passwordmanagerblocklist_passwordmanagerblocklistdesc", + "displayName": "Configure the list of domains for which the password manager UI (Save and Fill) will be disabled (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_aadgroupmembershipcachevalidityindays", + "displayName": "AAD Group Membership Cache Validity In Days", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_allowcaptiveportalbeforelogon", + "displayName": "Allow Captive Portal Before Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_allowcaptiveportalbeforelogon_0", + "displayName": "Displaying captive portal is not allowed.", + "description": "Displaying captive portal is not allowed." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_allowcaptiveportalbeforelogon_1", + "displayName": "Displaying captive portal is allowed.", + "description": "Displaying captive portal is allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_allowlaunchuriinsingleappkiosk", + "displayName": "Allow Launch Uri In Single App Kiosk", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_allowlaunchuriinsingleappkiosk_0", + "displayName": "Applications are not allowed to be launched with Launcher API, when in single app kiosk mode.", + "description": "Applications are not allowed to be launched with Launcher API, when in single app kiosk mode." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_allowlaunchuriinsingleappkiosk_1", + "displayName": "Applications are allowed to be launched with Launcher API, when in single app kiosk mode.", + "description": "Applications are allowed to be launched with Launcher API, when in single app kiosk mode." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_autologonuser", + "displayName": "Auto Logon User", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_automaticdisplayadjustment", + "displayName": "Automatic Display Adjustment", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_automaticdisplayadjustment_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_automaticdisplayadjustment_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_brightnessbuttondisabled", + "displayName": "Brightness Button Disabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_brightnessbuttondisabled_0", + "displayName": "Disabled", + "description": "Brightness can be changed with press of brightness button." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_brightnessbuttondisabled_1", + "displayName": "Enabled", + "description": "Brightness cannot be changed with press of brightness button." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_configuremovingplatform", + "displayName": "Configure Moving Platform", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_configuremovingplatform_0", + "displayName": "Last set user's preference. Initial state is OFF and after that user's preference is persisted across reboots and is used to initialize the system.", + "description": "Last set user's preference. Initial state is OFF and after that user's preference is persisted across reboots and is used to initialize the system." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_configuremovingplatform_1", + "displayName": "Moving platform is disabled and cannot be changed by user.", + "description": "Moving platform is disabled and cannot be changed by user." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_configuremovingplatform_2", + "displayName": "Moving platform is enabled and cannot be changed by user.", + "description": "Moving platform is enabled and cannot be changed by user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_disallownetworkconnectivitypassivepolling", + "displayName": "Disallow Network Connectivity Passive Polling", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_disallownetworkconnectivitypassivepolling_0", + "displayName": "Allowed.", + "description": "Allowed." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_disallownetworkconnectivitypassivepolling_1", + "displayName": "Not allowed.", + "description": "Not allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_eyetrackingcalibrationprompt", + "displayName": "Eye Tracking Calibration Prompt", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_eyetrackingcalibrationprompt_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_eyetrackingcalibrationprompt_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_fallbackdiagnostics", + "displayName": "Fallback Diagnostics", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_fallbackdiagnostics_0", + "displayName": "Not allowed. Diagnostic logs cannot be collected by pressing the button combination.", + "description": "Not allowed. Diagnostic logs cannot be collected by pressing the button combination." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_fallbackdiagnostics_1", + "displayName": "Allowed for device owners only. Diagnostics logs can be collected by pressing the button combination only if signed-in user is considered as device owner.", + "description": "Allowed for device owners only. Diagnostics logs can be collected by pressing the button combination only if signed-in user is considered as device owner." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_fallbackdiagnostics_2", + "displayName": "Allowed for all users. Diagnostic logs can be collected by pressing the button combination.", + "description": "Allowed for all users. Diagnostic logs can be collected by pressing the button combination." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_headtrackingmode", + "displayName": "Head Tracking Mode", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_manualdowndirectiondisabled", + "displayName": "Manual Down Direction Disabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_manualdowndirectiondisabled_0", + "displayName": "User is allowed to manually change down direction.", + "description": "User is allowed to manually change down direction." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_manualdowndirectiondisabled_1", + "displayName": "User is not allowed to manually change down direction.", + "description": "User is not allowed to manually change down direction." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_microphonedisabled", + "displayName": "Microphone Disabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_microphonedisabled_0", + "displayName": "Disabled", + "description": "Microphone can be used for voice." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_microphonedisabled_1", + "displayName": "Enabled", + "description": "Microphone cannot be used for voice." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_skipcalibrationduringsetup", + "displayName": "Skip Calibration During Setup", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_skipcalibrationduringsetup_0", + "displayName": "Eye tracking calibration process will be shown during device setup and first time user setup.", + "description": "Eye tracking calibration process will be shown during device setup and first time user setup." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_skipcalibrationduringsetup_1", + "displayName": "Eye tracking calibration process will not be shown during device setup and first time user setup.", + "description": "Eye tracking calibration process will not be shown during device setup and first time user setup." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_skiptrainingduringsetup", + "displayName": "Skip Training During Setup", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_skiptrainingduringsetup_0", + "displayName": "Training process will be shown during device setup and first time user setup.", + "description": "Training process will be shown during device setup and first time user setup." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_skiptrainingduringsetup_1", + "displayName": "Training process will not be shown during device setup and first time user setup.", + "description": "Training process will not be shown during device setup and first time user setup." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_visitorautologon", + "displayName": "Visitor Auto Logon", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_visitorautologon_0", + "displayName": "Visitor user will not be signed in automatically.", + "description": "Visitor user will not be signed in automatically." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_visitorautologon_1", + "displayName": "Visitor user will be signed in automatically.", + "description": "Visitor user will be signed in automatically." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_volumebuttondisabled", + "displayName": "Volume Button Disabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_mixedreality_volumebuttondisabled_0", + "displayName": "Disabled", + "description": "Volume can be changed with press of the volume button." + }, + { + "id": "device_vendor_msft_policy_config_mixedreality_volumebuttondisabled_1", + "displayName": "Enabled", + "description": "Volume cannot be changed with press of the volume button." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_applyuacrestrictionstolocalaccountsonnetworklogon", + "displayName": "Apply UAC restrictions to local accounts on network logons", + "options": [ + { + "id": "device_vendor_msft_policy_config_mssecurityguide_applyuacrestrictionstolocalaccountsonnetworklogon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_applyuacrestrictionstolocalaccountsonnetworklogon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1clientdriver", + "displayName": "Configure SMB v1 client driver", + "options": [ + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1clientdriver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1clientdriver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1clientdriver_pol_secguide_smb1clientdriver", + "displayName": "Configure MrxSmb10 driver", + "options": [ + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1clientdriver_pol_secguide_smb1clientdriver_4", + "displayName": "Disable driver (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1clientdriver_pol_secguide_smb1clientdriver_3", + "displayName": "Manual start (default for Win7/2008/2008R2/2012)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1clientdriver_pol_secguide_smb1clientdriver_2", + "displayName": "Automatic start (default for Win8.1/2012R2/newer)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1server", + "displayName": "Configure SMB v1 server", + "options": [ + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1server_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_configuresmbv1server_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_enablestructuredexceptionhandlingoverwriteprotection", + "displayName": "Enable Structured Exception Handling Overwrite Protection (SEHOP)", + "options": [ + { + "id": "device_vendor_msft_policy_config_mssecurityguide_enablestructuredexceptionhandlingoverwriteprotection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_enablestructuredexceptionhandlingoverwriteprotection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_turnonwindowsdefenderprotectionagainstpotentiallyunwantedapplications", + "displayName": "Turn on Windows Defender protection against Potentially Unwanted Applications (DEPRECATED)", + "options": [ + { + "id": "device_vendor_msft_policy_config_mssecurityguide_turnonwindowsdefenderprotectionagainstpotentiallyunwantedapplications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_turnonwindowsdefenderprotectionagainstpotentiallyunwantedapplications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_wdigestauthentication", + "displayName": "WDigest Authentication (disabling may require KB2871997)", + "options": [ + { + "id": "device_vendor_msft_policy_config_mssecurityguide_wdigestauthentication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_mssecurityguide_wdigestauthentication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_allowicmpredirectstooverrideospfgeneratedroutes", + "displayName": "MSS: (EnableICMPRedirect) Allow ICMP redirects to override OSPF generated routes", + "options": [ + { + "id": "device_vendor_msft_policy_config_msslegacy_allowicmpredirectstooverrideospfgeneratedroutes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_allowicmpredirectstooverrideospfgeneratedroutes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_allowthecomputertoignorenetbiosnamereleaserequestsexceptfromwinsservers", + "displayName": "MSS: (NoNameReleaseOnDemand) Allow the computer to ignore NetBIOS name release requests except from WINS servers", + "options": [ + { + "id": "device_vendor_msft_policy_config_msslegacy_allowthecomputertoignorenetbiosnamereleaserequestsexceptfromwinsservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_allowthecomputertoignorenetbiosnamereleaserequestsexceptfromwinsservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipsourceroutingprotectionlevel", + "displayName": "MSS: (DisableIPSourceRouting) IP source routing protection level (protects against packet spoofing)", + "options": [ + { + "id": "device_vendor_msft_policy_config_msslegacy_ipsourceroutingprotectionlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipsourceroutingprotectionlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipsourceroutingprotectionlevel_disableipsourcerouting", + "displayName": "DisableIPSourceRouting (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_msslegacy_ipsourceroutingprotectionlevel_disableipsourcerouting_0", + "displayName": "No additional protection, source routed packets are allowed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipsourceroutingprotectionlevel_disableipsourcerouting_1", + "displayName": "Medium, source routed packets ignored when IP forwarding is enabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipsourceroutingprotectionlevel_disableipsourcerouting_2", + "displayName": "Highest protection, source routing is completely disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipv6sourceroutingprotectionlevel", + "displayName": "MSS: (DisableIPSourceRouting IPv6) IP source routing protection level (protects against packet spoofing)", + "options": [ + { + "id": "device_vendor_msft_policy_config_msslegacy_ipv6sourceroutingprotectionlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipv6sourceroutingprotectionlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipv6sourceroutingprotectionlevel_disableipsourceroutingipv6", + "displayName": "DisableIPSourceRoutingIPv6 (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_msslegacy_ipv6sourceroutingprotectionlevel_disableipsourceroutingipv6_0", + "displayName": "No additional protection, source routed packets are allowed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipv6sourceroutingprotectionlevel_disableipsourceroutingipv6_1", + "displayName": "Medium, source routed packets ignored when IP forwarding is enabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_msslegacy_ipv6sourceroutingprotectionlevel_disableipsourceroutingipv6_2", + "displayName": "Highest protection, source routing is completely disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterprisecloudresources", + "displayName": "Enterprise Cloud Resources", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseinternalproxyservers", + "displayName": "Enterprise Internal Proxy Servers", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseiprange", + "displayName": "Enterprise IP Range", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseiprangesareauthoritative", + "displayName": "Enterprise IP Ranges Are Authoritative", + "options": [ + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseiprangesareauthoritative_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseiprangesareauthoritative_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterprisenetworkdomainnames", + "displayName": "Enterprise Network Domain Names", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseproxyservers", + "displayName": "Enterprise Proxy Servers", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseproxyserversareauthoritative", + "displayName": "Enterprise Proxy Servers Are Authoritative", + "options": [ + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseproxyserversareauthoritative_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_enterpriseproxyserversareauthoritative_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_networkisolation_neutralresources", + "displayName": "Neutral Resources", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_networklistmanager_allowedtlsauthenticationendpoints", + "displayName": "Allowed Tls Authentication Endpoints", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_networklistmanager_configuredtlsauthenticationnetworkname", + "displayName": "Configured Tls Authentication Network Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_newsandinterests_allownewsandinterests", + "displayName": "Allow widgets", + "options": [ + { + "id": "device_vendor_msft_policy_config_newsandinterests_allownewsandinterests_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_newsandinterests_allownewsandinterests_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_notifications_disallowcloudnotification", + "displayName": "Disallow Cloud Notification", + "options": [ + { + "id": "device_vendor_msft_policy_config_notifications_disallowcloudnotification_0", + "displayName": "Block", + "description": "Enable cloud notification." + }, + { + "id": "device_vendor_msft_policy_config_notifications_disallowcloudnotification_1", + "displayName": "Allow", + "description": "Disable cloud notification." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_graphsettings_l_mapchartitadminoptin", + "displayName": "Allow Map Charts to send geographic data to Bing", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_graphsettings_l_mapchartitadminoptin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_graphsettings_l_mapchartitadminoptin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingmachine", + "displayName": "Disable Training of all features on the computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingmachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingmachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingofadaptivefloatiemachine", + "displayName": "Disable Training of the Adaptive Floatie feature on the computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingofadaptivefloatiemachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingofadaptivefloatiemachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_orgideduenabledcentennial", + "displayName": "Enable EDU Org ID Sign In in Office from Windows Store", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_orgideduenabledcentennial_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_orgideduenabledcentennial_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_sclcacheoverride", + "displayName": "Specify the location to save the licensing token used by shared computer activation", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_sclcacheoverride_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_sclcacheoverride_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_sclcacheoverride_l_sclcacheoverride", + "displayName": "Folder location: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_sharedcomputerlicensing", + "displayName": "Use shared computer activation", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_sharedcomputerlicensing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_licensingsettings_l_sharedcomputerlicensing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_ageoutpolicy", + "displayName": "Age out documents older than n days", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_ageoutpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_ageoutpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_documentinspector", + "displayName": "Prevent document inspectors from running", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_documentinspector_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_documentinspector_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_documentinspector_l_empty197", + "displayName": "", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_evictserverversionspolicy", + "displayName": "Age out the locally cached copies of server document versions that are more than n days old.", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_evictserverversionspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_evictserverversionspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_filepreviewing", + "displayName": "File Previewing", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_filepreviewing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_filepreviewing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_filepreviewing_l_empty196", + "displayName": "", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_maximplicitcachesize", + "displayName": "Set the max size of the Office Document Cache", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_maximplicitcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_maximplicitcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_opendirectlyinapp", + "displayName": "Open Directly in Office Client Application", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_opendirectlyinapp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_miscellaneous_l_opendirectlyinapp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablepackagerepair", + "displayName": "Disable Package Repair", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablepackagerepair_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablepackagerepair_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablepasswordcaching", + "displayName": "Disable Password Caching", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablepasswordcaching_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablepasswordcaching_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablevbaforofficeapplications", + "displayName": "Disable VBA for Office applications", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablevbaforofficeapplications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_disablevbaforofficeapplications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_graphicsfilterimport", + "displayName": "Graphics filter import", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_graphicsfilterimport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine_l_graphicsfilterimport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement", + "displayName": "Add-on Management", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_excelexe15", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_excelexe15_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_excelexe15_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_exprwdexe24", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_exprwdexe24_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_exprwdexe24_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_grooveexe14", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_grooveexe14_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_grooveexe14_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_msaccessexe25", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_msaccessexe25_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_msaccessexe25_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_mse7exe27", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_mse7exe27_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_mse7exe27_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_mspubexe16", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_mspubexe16_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_mspubexe16_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_onenoteexe26", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_onenoteexe26_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_onenoteexe26_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_outlookexe22", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_outlookexe22_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_outlookexe22_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_powerpntexe17", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_powerpntexe17_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_powerpntexe17_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_pptviewexe18", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_pptviewexe18_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_pptviewexe18_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_spdesignexe23", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_spdesignexe23_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_spdesignexe23_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_visioexe19", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_visioexe19_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_visioexe19_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_winprojexe20", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_winprojexe20_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_winprojexe20_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_winwordexe21", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_winwordexe21_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_addonmanagement_l_winwordexe21_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject", + "displayName": "Bind to object", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_excelexe141", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_excelexe141_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_excelexe141_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_exprwdexe150", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_exprwdexe150_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_exprwdexe150_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_grooveexe140", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_grooveexe140_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_grooveexe140_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_msaccessexe151", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_msaccessexe151_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_msaccessexe151_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_mse7exe153", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_mse7exe153_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_mse7exe153_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_mspubexe142", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_mspubexe142_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_mspubexe142_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_onenoteexe152", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_onenoteexe152_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_onenoteexe152_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_outlookexe148", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_outlookexe148_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_outlookexe148_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_powerpntexe143", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_powerpntexe143_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_powerpntexe143_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_pptviewexe144", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_pptviewexe144_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_pptviewexe144_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_spdesignexe149", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_spdesignexe149_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_spdesignexe149_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_visioexe145", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_visioexe145_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_visioexe145_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_winprojexe146", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_winprojexe146_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_winprojexe146_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_winwordexe147", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_winwordexe147_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_bindtoobject_l_winwordexe147_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups", + "displayName": "Block popups", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_excelexe183", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_excelexe183_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_excelexe183_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_exprwdexe192", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_exprwdexe192_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_exprwdexe192_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_grooveexe182", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_grooveexe182_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_grooveexe182_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_msaccessexe193", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_msaccessexe193_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_msaccessexe193_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_mse7exe195", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_mse7exe195_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_mse7exe195_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_mspubexe184", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_mspubexe184_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_mspubexe184_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_onenoteexe194", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_onenoteexe194_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_onenoteexe194_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_outlookexe190", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_outlookexe190_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_outlookexe190_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_powerpntexe185", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_powerpntexe185_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_powerpntexe185_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_pptviewexe186", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_pptviewexe186_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_pptviewexe186_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_spdesignexe191", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_spdesignexe191_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_spdesignexe191_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_visioexe187", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_visioexe187_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_visioexe187_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_winprojexe188", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_winprojexe188_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_winprojexe188_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_winwordexe189", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_winwordexe189_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_blockpopups_l_winwordexe189_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling", + "displayName": "Consistent Mime Handling", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_excelexe43", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_excelexe43_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_excelexe43_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_exprwdexe52", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_exprwdexe52_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_exprwdexe52_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_grooveexe42", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_grooveexe42_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_grooveexe42_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_msaccessexe53", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_msaccessexe53_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_msaccessexe53_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_mse7exe55", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_mse7exe55_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_mse7exe55_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_mspubexe44", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_mspubexe44_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_mspubexe44_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_onenoteexe54", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_onenoteexe54_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_onenoteexe54_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_outlookexe50", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_outlookexe50_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_outlookexe50_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_powerpntexe45", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_powerpntexe45_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_powerpntexe45_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_pptviewexe46", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_pptviewexe46_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_pptviewexe46_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_spdesignexe51", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_spdesignexe51_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_spdesignexe51_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_visioexe47", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_visioexe47_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_visioexe47_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_winprojexe48", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_winprojexe48_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_winprojexe48_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_winwordexe49", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_winwordexe49_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_consistentmimehandling_l_winwordexe49_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword", + "displayName": "Disable user name and password", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_excelexe127", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_excelexe127_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_excelexe127_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_exprwdexe136", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_exprwdexe136_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_exprwdexe136_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_grooveexe126", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_grooveexe126_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_grooveexe126_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_msaccessexe137", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_msaccessexe137_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_msaccessexe137_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_mse7exe139", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_mse7exe139_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_mse7exe139_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_mspubexe128", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_mspubexe128_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_mspubexe128_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_onenoteexe138", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_onenoteexe138_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_onenoteexe138_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_outlookexe134", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_outlookexe134_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_outlookexe134_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_powerpntexe129", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_powerpntexe129_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_powerpntexe129_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_pptviewexe130", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_pptviewexe130_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_pptviewexe130_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_spdesignexe135", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_spdesignexe135_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_spdesignexe135_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_visioexe131", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_visioexe131_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_visioexe131_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_winprojexe132", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_winprojexe132_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_winprojexe132_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_winwordexe133", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_winwordexe133_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_disableusernameandpassword_l_winwordexe133_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar", + "displayName": "Information Bar", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_excelexe113", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_excelexe113_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_excelexe113_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_exprwdexe122", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_exprwdexe122_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_exprwdexe122_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_grooveexe112", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_grooveexe112_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_grooveexe112_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_msaccessexe123", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_msaccessexe123_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_msaccessexe123_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_mse7exe125", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_mse7exe125_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_mse7exe125_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_mspubexe114", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_mspubexe114_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_mspubexe114_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_onenoteexe124", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_onenoteexe124_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_onenoteexe124_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_outlookexe120", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_outlookexe120_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_outlookexe120_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_powerpntexe115", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_powerpntexe115_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_powerpntexe115_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_pptviewexe116", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_pptviewexe116_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_pptviewexe116_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_spdesignexe121", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_spdesignexe121_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_spdesignexe121_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_visioexe117", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_visioexe117_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_visioexe117_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_winprojexe118", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_winprojexe118_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_winprojexe118_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_winwordexe119", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_winwordexe119_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_informationbar_l_winwordexe119_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity", + "displayName": "Local Machine Zone Lockdown Security", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_excelexe29", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_excelexe29_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_excelexe29_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_exprwdexe38", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_exprwdexe38_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_exprwdexe38_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_grooveexe28", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_grooveexe28_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_grooveexe28_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_msaccessexe39", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_msaccessexe39_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_msaccessexe39_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_mse7exe41", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_mse7exe41_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_mse7exe41_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_mspubexe30", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_mspubexe30_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_mspubexe30_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_onenoteexe40", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_onenoteexe40_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_onenoteexe40_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_outlookexe36", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_outlookexe36_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_outlookexe36_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_powerpntexe31", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_powerpntexe31_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_powerpntexe31_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_pptviewexe32", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_pptviewexe32_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_pptviewexe32_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_spdesignexe37", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_spdesignexe37_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_spdesignexe37_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_visioexe33", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_visioexe33_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_visioexe33_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_winprojexe34", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_winprojexe34_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_winprojexe34_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_winwordexe35", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_winwordexe35_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_localmachinezonelockdownsecurity_l_winwordexe35_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature", + "displayName": "Mime Sniffing Safety Feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_excelexe57", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_excelexe57_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_excelexe57_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_exprwdexe66", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_exprwdexe66_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_exprwdexe66_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_grooveexe56", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_grooveexe56_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_grooveexe56_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_msaccessexe67", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_msaccessexe67_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_msaccessexe67_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_mse7exe69", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_mse7exe69_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_mse7exe69_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_mspubexe58", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_mspubexe58_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_mspubexe58_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_onenoteexe68", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_onenoteexe68_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_onenoteexe68_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_outlookexe64", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_outlookexe64_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_outlookexe64_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_powerpntexe59", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_powerpntexe59_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_powerpntexe59_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_pptviewexe60", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_pptviewexe60_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_pptviewexe60_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_spdesignexe65", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_spdesignexe65_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_spdesignexe65_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_visioexe61", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_visioexe61_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_visioexe61_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_winprojexe62", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_winprojexe62_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_winprojexe62_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_winwordexe63", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_winwordexe63_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_mimesniffingsafetyfature_l_winwordexe63_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl", + "displayName": "Navigate URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_excelexe169", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_excelexe169_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_excelexe169_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_exprwdexe178", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_exprwdexe178_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_exprwdexe178_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_grooveexe168", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_grooveexe168_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_grooveexe168_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_msaccessexe179", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_msaccessexe179_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_msaccessexe179_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_mse7exe181", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_mse7exe181_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_mse7exe181_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_mspubexe170", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_mspubexe170_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_mspubexe170_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_onenoteexe180", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_onenoteexe180_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_onenoteexe180_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_outlookexe176", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_outlookexe176_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_outlookexe176_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_powerpntexe171", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_powerpntexe171_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_powerpntexe171_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_pptviewexe172", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_pptviewexe172_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_pptviewexe172_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_spdesignexe177", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_spdesignexe177_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_spdesignexe177_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_visioexe173", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_visioexe173_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_visioexe173_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_winprojexe174", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_winprojexe174_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_winprojexe174_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_winwordexe175", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_winwordexe175_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_navigateurl_l_winwordexe175_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection", + "displayName": "Object Caching Protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_excelexe71", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_excelexe71_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_excelexe71_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_exprwdexe80", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_exprwdexe80_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_exprwdexe80_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_grooveexe70", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_grooveexe70_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_grooveexe70_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_msaccessexe81", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_msaccessexe81_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_msaccessexe81_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_mse7exe83", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_mse7exe83_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_mse7exe83_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_mspubexe72", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_mspubexe72_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_mspubexe72_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_onenoteexe82", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_onenoteexe82_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_onenoteexe82_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_outlookexe78", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_outlookexe78_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_outlookexe78_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_powerpntexe73", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_powerpntexe73_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_powerpntexe73_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_pptviewexe74", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_pptviewexe74_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_pptviewexe74_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_spdesignexe79", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_spdesignexe79_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_spdesignexe79_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_visioexe75", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_visioexe75_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_visioexe75_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_winprojexe76", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_winprojexe76_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_winprojexe76_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_winwordexe77", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_winwordexe77_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_objectcachingprotection_l_winwordexe77_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation", + "displayName": "Protection From Zone Elevation", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_excelexe99", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_excelexe99_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_excelexe99_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_exprwdexe108", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_exprwdexe108_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_exprwdexe108_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_grooveexe98", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_grooveexe98_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_grooveexe98_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_msaccessexe109", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_msaccessexe109_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_msaccessexe109_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_mse7exe111", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_mse7exe111_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_mse7exe111_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_mspubexe100", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_mspubexe100_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_mspubexe100_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_onenoteexe110", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_onenoteexe110_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_onenoteexe110_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_outlookexe106", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_outlookexe106_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_outlookexe106_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_powerpntexe101", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_powerpntexe101_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_powerpntexe101_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_pptviewexe102", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_pptviewexe102_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_pptviewexe102_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_spdesignexe107", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_spdesignexe107_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_spdesignexe107_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_visioexe103", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_visioexe103_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_visioexe103_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_winprojexe104", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_winprojexe104_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_winprojexe104_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_winwordexe105", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_winwordexe105_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_protectionfromzoneelevation_l_winwordexe105_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall", + "displayName": "Restrict ActiveX Install", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_excelexe", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_excelexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_excelexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_exprwdexe", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_exprwdexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_exprwdexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_grooveexe", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_grooveexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_grooveexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_msaccessexe", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_msaccessexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_msaccessexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_mse7exe", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_mse7exe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_mse7exe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_mspubexe", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_mspubexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_mspubexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_onenoteexe", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_onenoteexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_onenoteexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_outlookexe", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_outlookexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_outlookexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_powerpntexe", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_powerpntexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_powerpntexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_pptviewexe", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_pptviewexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_pptviewexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_spdesignexe", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_spdesignexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_spdesignexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_visioexe", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_visioexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_visioexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_winprojexe", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_winprojexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_winprojexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_winwordexe", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_winwordexe_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictactivexinstall_l_winwordexe_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload", + "displayName": "Restrict File Download", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_excelexe1", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_excelexe1_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_excelexe1_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_exprwdexe10", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_exprwdexe10_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_exprwdexe10_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_grooveexe0", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_grooveexe0_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_grooveexe0_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_msaccessexe11", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_msaccessexe11_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_msaccessexe11_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_mse7exe13", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_mse7exe13_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_mse7exe13_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_mspubexe2", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_mspubexe2_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_mspubexe2_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_onenoteexe12", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_onenoteexe12_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_onenoteexe12_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_outlookexe8", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_outlookexe8_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_outlookexe8_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_powerpntexe3", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_powerpntexe3_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_powerpntexe3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_pptviewexe4", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_pptviewexe4_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_pptviewexe4_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_spdesignexe9", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_spdesignexe9_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_spdesignexe9_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_visioexe5", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_visioexe5_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_visioexe5_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_winprojexe6", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_winprojexe6_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_winprojexe6_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_winwordexe7", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_winwordexe7_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_restrictfiledownload_l_winwordexe7_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl", + "displayName": "Saved from URL", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_excelexe155", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_excelexe155_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_excelexe155_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_exprwdexe164", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_exprwdexe164_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_exprwdexe164_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_grooveexe154", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_grooveexe154_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_grooveexe154_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_msaccessexe165", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_msaccessexe165_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_msaccessexe165_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_mse7exe167", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_mse7exe167_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_mse7exe167_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_mspubexe156", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_mspubexe156_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_mspubexe156_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_onenoteexe166", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_onenoteexe166_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_onenoteexe166_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_outlookexe162", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_outlookexe162_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_outlookexe162_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_powerpntexe157", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_powerpntexe157_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_powerpntexe157_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_pptviewexe158", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_pptviewexe158_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_pptviewexe158_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_spdesignexe163", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_spdesignexe163_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_spdesignexe163_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_visioexe159", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_visioexe159_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_visioexe159_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_winprojexe160", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_winprojexe160_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_winprojexe160_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_winwordexe161", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_winwordexe161_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_savedfromurl_l_winwordexe161_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions", + "displayName": "Scripted Window Security Restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_excelexe85", + "displayName": "excel.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_excelexe85_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_excelexe85_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_exprwdexe94", + "displayName": "exprwd.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_exprwdexe94_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_exprwdexe94_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_grooveexe84", + "displayName": "groove.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_grooveexe84_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_grooveexe84_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_msaccessexe95", + "displayName": "msaccess.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_msaccessexe95_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_msaccessexe95_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_mse7exe97", + "displayName": "mse7.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_mse7exe97_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_mse7exe97_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_mspubexe86", + "displayName": "mspub.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_mspubexe86_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_mspubexe86_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_onenoteexe96", + "displayName": "onent.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_onenoteexe96_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_onenoteexe96_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_outlookexe92", + "displayName": "outlook.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_outlookexe92_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_outlookexe92_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_powerpntexe87", + "displayName": "powerpnt.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_powerpntexe87_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_powerpntexe87_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_pptviewexe88", + "displayName": "pptview.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_pptviewexe88_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_pptviewexe88_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_spdesignexe93", + "displayName": "spDesign.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_spdesignexe93_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_spdesignexe93_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_visioexe89", + "displayName": "visio.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_visioexe89_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_visioexe89_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_winprojexe90", + "displayName": "winproj.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_winprojexe90_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_winprojexe90_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_winwordexe91", + "displayName": "winword.exe (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_winwordexe91_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_securitysettingsmachine~l_iesecurity_l_scriptedwindowsecurityrestrictions_l_winwordexe91_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_enableautomaticupdates", + "displayName": "Enable Automatic Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_enableautomaticupdates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_enableautomaticupdates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_hideenabledisableupdates", + "displayName": "Hide option to enable or disable updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_hideenabledisableupdates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_hideenabledisableupdates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_hideupdatenotifications", + "displayName": "Hide Update Notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_hideupdatenotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_hideupdatenotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_officemgmtcom", + "displayName": "Office 365 Client Management", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_officemgmtcom_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_officemgmtcom_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_onlinerepair", + "displayName": "Online Repair", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_onlinerepair_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_onlinerepair_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_onlinerepair_l_fallbacktocdn", + "displayName": "Use Office CDN (if needed) (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_onlinerepair_l_fallbacktocdn_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_onlinerepair_l_fallbacktocdn_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_onlinerepair_l_localodtpath", + "displayName": "Location of Office Deployment Tool: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_setbitsasprimary", + "displayName": "Prioritize BITS", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_setbitsasprimary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_setbitsasprimary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updateblockversion", + "displayName": "Prevent Office from being updated to a specific version", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updateblockversion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updateblockversion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updateblockversion_l_updateblockversionid", + "displayName": "Block version: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch", + "displayName": "Update Channel (Deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid", + "displayName": "Channel Name: (Device) (Deprecated)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_current", + "displayName": "Monthly Channel", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_firstreleasecurrent", + "displayName": "Monthly Channel (Targeted)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_deferred", + "displayName": "Semi-Annual Channel", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_firstreleasedeferred", + "displayName": "Semi-Annual Channel (Targeted)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_insiderfast", + "displayName": "Insider Fast", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatedeadline", + "displayName": "Update Deadline", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatedeadline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatedeadline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatedeadline_l_updatedeadlineid", + "displayName": "Deadline: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatepath", + "displayName": "Update Path", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatepath_l_updatepathid", + "displayName": "Location for updates: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatetargetversion", + "displayName": "Target Version", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatetargetversion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatetargetversion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_updatetargetversion_l_updatetargetversionid", + "displayName": "Update version: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_vltosubscription", + "displayName": "Upgrade Office 2019 to Office 365 ProPlus", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_vltosubscription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_updates_l_vltosubscription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_volumeactivation_l_preventtokenactivationdialogfromclosing", + "displayName": "Prevent Token Activation dialog from closing", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_volumeactivation_l_preventtokenactivationdialogfromclosing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_volumeactivation_l_preventtokenactivationdialogfromclosing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_volumeactivation_l_useonlytokenactivation", + "displayName": "Use only Token Activation", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_volumeactivation_l_useonlytokenactivation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v2~policy~l_microsoftofficemachine~l_volumeactivation_l_useonlytokenactivation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_globaloptionsmachine~l_customizemachine_l_defaultuithememachine", + "displayName": "Default Office theme", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_globaloptionsmachine~l_customizemachine_l_defaultuithememachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_globaloptionsmachine~l_customizemachine_l_defaultuithememachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_globaloptionsmachine~l_customizemachine_l_defaultuithememachine_l_defaultuithemeenum", + "displayName": "Theme: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_globaloptionsmachine~l_customizemachine_l_defaultuithememachine_l_defaultuithemeenum_0", + "displayName": "Colorful", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_globaloptionsmachine~l_customizemachine_l_defaultuithememachine_l_defaultuithemeenum_3", + "displayName": "Dark Gray", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_globaloptionsmachine~l_customizemachine_l_defaultuithememachine_l_defaultuithemeenum_4", + "displayName": "Black", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_globaloptionsmachine~l_customizemachine_l_defaultuithememachine_l_defaultuithemeenum_5", + "displayName": "White", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_licensingsettings_l_dbs", + "displayName": "Use a device-based license for Office 365 ProPlus", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_licensingsettings_l_dbs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_licensingsettings_l_dbs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_updates_l_deferupdatedays", + "displayName": "Delay downloading and installing updates for Office", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_updates_l_deferupdatedays_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_updates_l_deferupdatedays_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_updates_l_deferupdatedays_l_deferupdatedaysid", + "displayName": "Days: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_updates_l_preventteamsinstall", + "displayName": "Don’t install Microsoft Teams with new installations or updates of Office", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_updates_l_preventteamsinstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v3~policy~l_microsoftofficemachine~l_updates_l_preventteamsinstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v4~policy~l_microsoftofficemachine~l_licensingsettings_l_extendedofflinesubscription", + "displayName": "Allow extended offline use for Office 365 ProPlus", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v4~policy~l_microsoftofficemachine~l_licensingsettings_l_extendedofflinesubscription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v4~policy~l_microsoftofficemachine~l_licensingsettings_l_extendedofflinesubscription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v5~policy~l_microsoftofficemachine~l_updates_l_preventbinginstall", + "displayName": "Don’t install extension for Microsoft Search in Bing that makes Bing the default search engine", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v5~policy~l_microsoftofficemachine~l_updates_l_preventbinginstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v5~policy~l_microsoftofficemachine~l_updates_l_preventbinginstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v6~policy~l_microsoftofficemachine~l_licensingsettings_l_viewermode", + "displayName": "Use Viewer Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v6~policy~l_microsoftofficemachine~l_licensingsettings_l_viewermode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v6~policy~l_microsoftofficemachine~l_licensingsettings_l_viewermode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine", + "displayName": "Show the option for the Office Update Channel experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_insiderfast", + "displayName": "Beta Channel (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_insiderfast_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_insiderfast_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_insiderslow", + "displayName": "Current Channel (Preview) (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_insiderslow_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_insiderslow_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_mec", + "displayName": "Monthly Enterprise Channel (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_mec_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_mec_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_production", + "displayName": "Current Channel (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_production_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_production_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_sae", + "displayName": "Semi-Annual Enterprise Channel (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_sae_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_sae_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_saepreview", + "displayName": "Semi-Annual Enterprise Channel (Preview) (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_saepreview_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_office16v9~policy~l_microsoftofficemachine~l_miscellaneous_l_updatechannelselectormachine_l_uc_saepreview_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard", + "displayName": "Silently move Windows known folders to OneDrive", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_desktop_checkbox", + "displayName": "Desktop (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_desktop_checkbox_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_desktop_checkbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_documents_checkbox", + "displayName": "Documents (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_documents_checkbox_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_documents_checkbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_dropdown", + "displayName": "Show notification to users after folders have been redirected: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_dropdown_0", + "displayName": "No", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_dropdown_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_pictures_checkbox", + "displayName": "Pictures (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_pictures_checkbox_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_pictures_checkbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2.updates~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_textbox", + "displayName": "Tenant ID: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_allowtenantlist", + "displayName": "Allow syncing OneDrive accounts for only specific organizations", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_allowtenantlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_allowtenantlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_allowtenantlist_allowtenantlistbox", + "displayName": "Tenant ID: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automaticuploadbandwidthpercentage", + "displayName": "Limit the sync app upload rate to a percentage of throughput", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automaticuploadbandwidthpercentage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automaticuploadbandwidthpercentage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automaticuploadbandwidthpercentage_bandwidthspinbox", + "displayName": "Bandwidth: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites", + "displayName": "Configure team site libraries to sync automatically", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_automountteamsiteslistbox", + "displayName": "Libraries: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_automountteamsiteslistbox_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_automountteamsiteslistbox_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blockexternalsync", + "displayName": "Prevent users from syncing libraries and folders shared from other organizations", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blockexternalsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blockexternalsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blockknownfoldermove", + "displayName": "Prevent users from moving their Windows known folders to OneDrive", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blockknownfoldermove_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blockknownfoldermove_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blocktenantlist", + "displayName": "Block syncing OneDrive accounts for specific organizations", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blocktenantlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blocktenantlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_blocktenantlist_blocktenantlistbox", + "displayName": "Tenant ID: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_dehydratesyncedteamsites", + "displayName": "Convert synced team site files to online-only files", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_dehydratesyncedteamsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_dehydratesyncedteamsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_diskspacecheckthresholdmb", + "displayName": "Set the maximum size of a user's OneDrive that can download automatically", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_diskspacecheckthresholdmb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_diskspacecheckthresholdmb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_diskspacecheckthresholdmb_diskspacecheckthresholdmblist", + "displayName": "Max size: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_diskspacecheckthresholdmb_diskspacecheckthresholdmblist_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_diskspacecheckthresholdmb_diskspacecheckthresholdmblist_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_filesondemandenabled", + "displayName": "Use OneDrive Files On-Demand", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_filesondemandenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_filesondemandenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_forcedlocalmassdeletedetection", + "displayName": "Require users to confirm large delete operations", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_forcedlocalmassdeletedetection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_forcedlocalmassdeletedetection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_gposetupdatering", + "displayName": "Set the sync app update ring", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_gposetupdatering_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_gposetupdatering_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_gposetupdatering_gposetupdatering_dropdown", + "displayName": "Update ring: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_gposetupdatering_gposetupdatering_dropdown_0", + "displayName": "Deferred", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_gposetupdatering_gposetupdatering_dropdown_5", + "displayName": "Production", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_gposetupdatering_gposetupdatering_dropdown_4", + "displayName": "Insiders", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmblockoptout", + "displayName": "Prevent users from redirecting their Windows known folders to their PC", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmblockoptout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmblockoptout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinnowizard", + "displayName": "Silently move Windows known folders to OneDrive", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinnowizard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinnowizard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_dropdown", + "displayName": "Show notification to users after folders have been redirected: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_dropdown_0", + "displayName": "No", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_dropdown_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinnowizard_kfmoptinnowizard_textbox", + "displayName": "Tenant ID: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinwithwizard", + "displayName": "Prompt users to move Windows known folders to OneDrive", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinwithwizard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinwithwizard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_kfmoptinwithwizard_kfmoptinwithwizard_textbox", + "displayName": "Tenant ID: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_preventnetworktrafficpreusersignin", + "displayName": "Prevent the sync app from generating network traffic until users sign in", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_preventnetworktrafficpreusersignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_preventnetworktrafficpreusersignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremfrontdoorurl", + "displayName": "Specify SharePoint Server URL and organization name", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremfrontdoorurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremfrontdoorurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremfrontdoorurl_sharepointonpremfrontdoorurlbox", + "displayName": "SharePoint Server 2019 URL: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremfrontdoorurl_sharepointonpremtenantnamebox", + "displayName": "Organization name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremprioritization", + "displayName": "Specify the OneDrive location in a hybrid environment", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremprioritization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremprioritization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremprioritization_sharepointonpremprioritization_dropdown", + "displayName": "Authenticate first against: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremprioritization_sharepointonpremprioritization_dropdown_0", + "displayName": "SharePoint Online", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_sharepointonpremprioritization_sharepointonpremprioritization_dropdown_1", + "displayName": "SharePoint Server 2019", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_silentaccountconfig", + "displayName": "Silently sign in users to the OneDrive sync app with their Windows credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_silentaccountconfig_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_silentaccountconfig_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_enableautomaticuploadbandwidthmanagement", + "displayName": "Enable automatic upload bandwidth management for OneDrive", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_enableautomaticuploadbandwidthmanagement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_enableautomaticuploadbandwidthmanagement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_localmassdeletefiledeletethreshold", + "displayName": "Prompt users when they delete multiple OneDrive files on their local computer", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_localmassdeletefiledeletethreshold_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_localmassdeletefiledeletethreshold_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_localmassdeletefiledeletethreshold_lmdfiledeletethresholdbox", + "displayName": "Number of files: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_mindiskspacelimitinmb", + "displayName": "Block file downloads when users are low on disk space", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_mindiskspacelimitinmb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_mindiskspacelimitinmb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_mindiskspacelimitinmb_mindiskspacemb", + "displayName": "Minimum available disk space: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_permitdisablepermissioninheritance", + "displayName": "Allow OneDrive to disable Windows permission inheritance in folders synced read-only", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_permitdisablepermissioninheritance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_permitdisablepermissioninheritance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_warningmindiskspacelimitinmb", + "displayName": "Warn users who are low on disk space", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_warningmindiskspacelimitinmb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_warningmindiskspacelimitinmb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv3~policy~onedrivengsc_warningmindiskspacelimitinmb_warningmindiskspacemb", + "displayName": "Minimum available disk space: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_disablefirstdeletedialog", + "displayName": "Hide the \"Deleted files are removed everywhere\" reminder", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_disablefirstdeletedialog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_disablefirstdeletedialog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_enableodignorelistfromgpo", + "displayName": "Exclude specific kinds of files from being uploaded", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_enableodignorelistfromgpo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_enableodignorelistfromgpo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_enableodignorelistfromgpo_enableodignorelistfromgpolistbox", + "displayName": "Keywords: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_ignorewebproxy", + "displayName": "Cause sync client to ignore normal web proxy detection logic", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_ignorewebproxy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_ignorewebproxy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_kfmforcewindowsdisplaylanguage", + "displayName": "Always use the user's Windows display language when provisioning known folders in OneDrive", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_kfmforcewindowsdisplaylanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_kfmforcewindowsdisplaylanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv5~policy~onedrivengsc_syncadminreports", + "displayName": "Sync Admin Reports", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv5~policy~onedrivengsc_syncadminreports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv5~policy~onedrivengsc_syncadminreports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv5~policy~onedrivengsc_syncadminreports_syncadminreports_textbox", + "displayName": "Tenant Association Key: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_blockexternallistsync", + "displayName": "Blocks syncing of external lists via Lists sync", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_blockexternallistsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_blockexternallistsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_disablelistsync", + "displayName": "Disables Lists sync on this device.", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_disablelistsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_disablelistsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_disablelistsyncsilentconfig", + "displayName": "Disables silent configuration of Lists sync on this device.", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_disablelistsyncsilentconfig_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~nucleuslistsync_disablelistsyncsilentconfig_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_disableautoconfig", + "displayName": "Disable silently sign in users to the OneDrive sync app with an existing credential that is made available to Microsoft applications", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_disableautoconfig_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_disableautoconfig_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_disableautoconfig_disableautoconfigtypes", + "displayName": "Disabled Account Types: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport", + "displayName": "Allow users to contact Microsoft for feedback and support", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_contactsupport_checkbox", + "displayName": "Contact OneDrive Support​ (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_contactsupport_checkbox_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_contactsupport_checkbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_receivesurveys_checkbox", + "displayName": "Receive user satisfication surveys (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_receivesurveys_checkbox_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_receivesurveys_checkbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_sendfeedback_checkbox", + "displayName": "Send Feedback (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_sendfeedback_checkbox_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablefeedbackandsupport_granularfeedbackcontrol_sendfeedback_checkbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablesyncadminreports", + "displayName": "Enable sync health reporting for OneDrive", + "options": [ + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablesyncadminreports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_enablesyncadminreports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_allowhibernate", + "displayName": "Allow Hibernate", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_allowhibernate_0", + "displayName": "Block", + "description": "Disable hibernate." + }, + { + "id": "device_vendor_msft_policy_config_power_allowhibernate_1", + "displayName": "Allow", + "description": "Allow hibernate." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_allowstandbystateswhensleepingonbattery", + "displayName": "Allow standby states (S1-S3) when sleeping (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_allowstandbystateswhensleepingonbattery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_allowstandbystateswhensleepingonbattery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_allowstandbywhensleepingpluggedin", + "displayName": "Allow standby states (S1-S3) when sleeping (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_allowstandbywhensleepingpluggedin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_allowstandbywhensleepingpluggedin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_displayofftimeoutonbattery", + "displayName": "Turn off the display (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_displayofftimeoutonbattery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_displayofftimeoutonbattery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_displayofftimeoutonbattery_entervideodcpowerdowntimeout", + "displayName": "On battery power, turn display off after (seconds)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_displayofftimeoutpluggedin", + "displayName": "Turn off the display (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_displayofftimeoutpluggedin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_displayofftimeoutpluggedin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_displayofftimeoutpluggedin_entervideoacpowerdowntimeout", + "displayName": "When plugged in, turn display off after (seconds)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_energysaverbatterythresholdonbattery", + "displayName": "Energy Saver Battery Threshold On Battery", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_energysaverbatterythresholdpluggedin", + "displayName": "Energy Saver Battery Threshold Plugged In", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_hibernatetimeoutonbattery", + "displayName": "Specify the system hibernate timeout (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_hibernatetimeoutonbattery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_hibernatetimeoutonbattery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_hibernatetimeoutonbattery_enterdchibernatetimeout", + "displayName": "System Hibernate Timeout (seconds):", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_hibernatetimeoutpluggedin", + "displayName": "Specify the system hibernate timeout (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_hibernatetimeoutpluggedin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_hibernatetimeoutpluggedin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_hibernatetimeoutpluggedin_enterachibernatetimeout", + "displayName": "System Hibernate Timeout (seconds):", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_requirepasswordwhencomputerwakesonbattery", + "displayName": "Require a password when a computer wakes (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_requirepasswordwhencomputerwakesonbattery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_requirepasswordwhencomputerwakesonbattery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_requirepasswordwhencomputerwakespluggedin", + "displayName": "Require a password when a computer wakes (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_requirepasswordwhencomputerwakespluggedin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_requirepasswordwhencomputerwakespluggedin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactiononbattery", + "displayName": "Select Lid Close Action On Battery", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactiononbattery_0", + "displayName": "Take no action", + "description": "Take no action" + }, + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactiononbattery_1", + "displayName": "Sleep", + "description": "Sleep" + }, + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactiononbattery_2", + "displayName": "System hibernate sleep state", + "description": "System hibernate sleep state" + }, + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactiononbattery_3", + "displayName": "System shutdown", + "description": "System shutdown" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactionpluggedin", + "displayName": "Select Lid Close Action Plugged In", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactionpluggedin_0", + "displayName": "Take no action", + "description": "Take no action" + }, + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactionpluggedin_1", + "displayName": "Sleep", + "description": "Sleep" + }, + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactionpluggedin_2", + "displayName": "System hibernate sleep state", + "description": "System hibernate sleep state" + }, + { + "id": "device_vendor_msft_policy_config_power_selectlidcloseactionpluggedin_3", + "displayName": "System shutdown", + "description": "System shutdown" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactiononbattery", + "displayName": "Select Power Button Action On Battery", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactiononbattery_0", + "displayName": "Take no action", + "description": "Take no action" + }, + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactiononbattery_1", + "displayName": "Sleep", + "description": "Sleep" + }, + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactiononbattery_2", + "displayName": "System hibernate sleep state", + "description": "System hibernate sleep state" + }, + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactiononbattery_3", + "displayName": "System shutdown", + "description": "System shutdown" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactionpluggedin", + "displayName": "Select Power Button Action Plugged In", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactionpluggedin_0", + "displayName": "Take no action", + "description": "Take no action" + }, + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactionpluggedin_1", + "displayName": "Sleep", + "description": "Sleep" + }, + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactionpluggedin_2", + "displayName": "System hibernate sleep state", + "description": "System hibernate sleep state" + }, + { + "id": "device_vendor_msft_policy_config_power_selectpowerbuttonactionpluggedin_3", + "displayName": "System shutdown", + "description": "System shutdown" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactiononbattery", + "displayName": "Select Sleep Button Action On Battery", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactiononbattery_0", + "displayName": "Take no action", + "description": "Take no action" + }, + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactiononbattery_1", + "displayName": "Sleep", + "description": "Sleep" + }, + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactiononbattery_2", + "displayName": "System hibernate sleep state", + "description": "System hibernate sleep state" + }, + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactiononbattery_3", + "displayName": "System shutdown", + "description": "System shutdown" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactionpluggedin", + "displayName": "Select Sleep Button Action Plugged In", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactionpluggedin_0", + "displayName": "Take no action", + "description": "Take no action" + }, + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactionpluggedin_1", + "displayName": "Sleep", + "description": "Sleep" + }, + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactionpluggedin_2", + "displayName": "System hibernate sleep state", + "description": "System hibernate sleep state" + }, + { + "id": "device_vendor_msft_policy_config_power_selectsleepbuttonactionpluggedin_3", + "displayName": "System shutdown", + "description": "System shutdown" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_standbytimeoutonbattery", + "displayName": "Specify the system sleep timeout (on battery)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_standbytimeoutonbattery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_standbytimeoutonbattery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_standbytimeoutonbattery_enterdcstandbytimeout", + "displayName": "System Sleep Timeout (seconds):", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_standbytimeoutpluggedin", + "displayName": "Specify the system sleep timeout (plugged in)", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_standbytimeoutpluggedin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_power_standbytimeoutpluggedin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_standbytimeoutpluggedin_enteracstandbytimeout", + "displayName": "System Sleep Timeout (seconds):", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_turnoffhybridsleeponbattery", + "displayName": "Turn Off Hybrid Sleep On Battery", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_turnoffhybridsleeponbattery_0", + "displayName": "", + "description": "" + }, + { + "id": "device_vendor_msft_policy_config_power_turnoffhybridsleeponbattery_1", + "displayName": "hybrid sleep", + "description": "hybrid sleep" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_turnoffhybridsleeppluggedin", + "displayName": "Turn Off Hybrid Sleep Plugged In", + "options": [ + { + "id": "device_vendor_msft_policy_config_power_turnoffhybridsleeppluggedin_0", + "displayName": "", + "description": "" + }, + { + "id": "device_vendor_msft_policy_config_power_turnoffhybridsleeppluggedin_1", + "displayName": "hybrid sleep", + "description": "hybrid sleep" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_power_unattendedsleeptimeoutonbattery", + "displayName": "Unattended Sleep Timeout On Battery", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_power_unattendedsleeptimeoutpluggedin", + "displayName": "Unattended Sleep Timeout Plugged In", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpointmachine~l_convertersmachineppt_l_externalconverterasdefaultforfileextensionppt", + "displayName": "Turn on an external converter as the default for a file extension", + "options": [ + { + "id": "device_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpointmachine~l_convertersmachineppt_l_externalconverterasdefaultforfileextensionppt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpointmachine~l_convertersmachineppt_l_externalconverterasdefaultforfileextensionppt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpointmachine~l_convertersmachineppt_l_externalconverterasdefaultforfileextensionppt_l_listofexternalconvertersppt", + "displayName": "List of external file format converters to customize (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpointmachine~l_convertersmachineppt_l_externalconverterasdefaultforfileextensionppt_l_listofexternalconvertersppt_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpointmachine~l_convertersmachineppt_l_externalconverterasdefaultforfileextensionppt_l_listofexternalconvertersppt_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_printers_approvedusbprintdevices", + "displayName": "List of Approved USB-connected print devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_approvedusbprintdevices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_approvedusbprintdevices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_approvedusbprintdevices_approvedusbprintdevices_list", + "displayName": "vid/pid (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurecopyfilespolicy", + "displayName": "Manage processing of Queue-specific files", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurecopyfilespolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurecopyfilespolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurecopyfilespolicy_copyfilespolicy_enum", + "displayName": "Manage processing of Queue-Specific files: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurecopyfilespolicy_copyfilespolicy_enum_0", + "displayName": "Do not allow Queue-specific files", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurecopyfilespolicy_copyfilespolicy_enum_1", + "displayName": "Limit Queue-specific files to Color profiles", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurecopyfilespolicy_copyfilespolicy_enum_2", + "displayName": "Allow all Queue-specfic files", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel", + "displayName": "Manage Print Driver signature validation", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel_drivervalidationlevel_enum", + "displayName": "Select the driver signature mechanism for this computer: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel_drivervalidationlevel_enum_0", + "displayName": "Require inbox signed drivers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel_drivervalidationlevel_enum_1", + "displayName": "Allow inbox and Print Drivers Trusted Store signed drivers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel_drivervalidationlevel_enum_2", + "displayName": "Allow inbox, Print Drivers Trusted Store, and WHQL signed drivers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel_drivervalidationlevel_enum_3", + "displayName": "Allow inbox, Print Drivers Trusted Store, WHQL, and Trusted Publisher Store signed drivers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configuredrivervalidationlevel_drivervalidationlevel_enum_4", + "displayName": "Allow all validly signed drivers", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configureipppagecountspolicy", + "displayName": "Always send job page count information for IPP printers", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configureipppagecountspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configureipppagecountspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configureredirectionguardpolicy", + "displayName": "Configure Redirection Guard", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configureredirectionguardpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configureredirectionguardpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configureredirectionguardpolicy_redirectionguardpolicy_enum", + "displayName": "Redirection Guard Options (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configureredirectionguardpolicy_redirectionguardpolicy_enum_0", + "displayName": "Redirection Guard Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configureredirectionguardpolicy_redirectionguardpolicy_enum_1", + "displayName": "Redirection Guard Enabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configureredirectionguardpolicy_redirectionguardpolicy_enum_2", + "displayName": "Redirection Guard Audit Only", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy", + "displayName": "Configure RPC connection settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_rpcconnectionauthentication_enum", + "displayName": "Use authentication for outgoing RPC connections: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_rpcconnectionauthentication_enum_0", + "displayName": "Default", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_rpcconnectionauthentication_enum_1", + "displayName": "Authentication enabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_rpcconnectionauthentication_enum_2", + "displayName": "Authentication disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_rpcconnectionprotocol_enum", + "displayName": "Protocol to use for outgoing RPC connections: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_rpcconnectionprotocol_enum_0", + "displayName": "RPC over TCP", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpcconnectionpolicy_rpcconnectionprotocol_enum_1", + "displayName": "RPC over named pipes", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy", + "displayName": "Configure RPC listener settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_rpcauthenticationprotocol_enum", + "displayName": "Authentication protocol to use for incoming RPC connections: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_rpcauthenticationprotocol_enum_0", + "displayName": "Negotiate", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_rpcauthenticationprotocol_enum_1", + "displayName": "Kerberos", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_rpclistenerprotocols_enum", + "displayName": "Protocols to allow for incoming RPC connections: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_rpclistenerprotocols_enum_3", + "displayName": "RPC over named pipes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_rpclistenerprotocols_enum_5", + "displayName": "RPC over TCP", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpclistenerpolicy_rpclistenerprotocols_enum_7", + "displayName": "RPC over named pipes and TCP", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpctcpport", + "displayName": "Configure RPC over TCP port", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_configurerpctcpport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpctcpport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_configurerpctcpport_rpctcpport", + "displayName": "RPC over TCP port: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_printers_enabledevicecontrol", + "displayName": "Enable Device Control Printing Restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_enabledevicecontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_enabledevicecontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_managedriverexclusionlist", + "displayName": "Manage Print Driver exclusion list", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_managedriverexclusionlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_managedriverexclusionlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_managedriverexclusionlist_driver_exclusionlistentry", + "displayName": "File Hash File Name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_printers_managedriverexclusionlist_driver_exclusionlistentry_key", + "displayName": "Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_printers_managedriverexclusionlist_driver_exclusionlistentry_value", + "displayName": "Value", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions", + "displayName": "Point and Print Restrictions", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_nowarningnoelevationoninstall_enum", + "displayName": "When installing drivers for a new connection: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_nowarningnoelevationoninstall_enum_0", + "displayName": "Show warning and elevation prompt", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_nowarningnoelevationoninstall_enum_1", + "displayName": "Do not show warning or elevation prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_nowarningnoelevationonupdate_enum", + "displayName": "When updating drivers for an existing connection: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_nowarningnoelevationonupdate_enum_0", + "displayName": "Show warning and elevation prompt", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_nowarningnoelevationonupdate_enum_1", + "displayName": "Show warning only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_nowarningnoelevationonupdate_enum_2", + "displayName": "Do not show warning or elevation prompt", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_trustedforest_chk", + "displayName": "Users can only point and print to machines in their forest (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_trustedforest_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_trustedforest_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_trustedservers_chk", + "displayName": "Users can only point and print to these servers: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_trustedservers_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_trustedservers_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_pointandprintrestrictions_pointandprint_trustedservers_edit", + "displayName": "Enter fully qualified server names separated by semicolons (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_printers_publishprinters", + "displayName": "Allow printers to be published", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_publishprinters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_publishprinters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_printers_restrictdriverinstallationtoadministrators", + "displayName": "Limits print driver installation to Administrators", + "options": [ + { + "id": "device_vendor_msft_policy_config_printers_restrictdriverinstallationtoadministrators_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_printers_restrictdriverinstallationtoadministrators_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_allowautoacceptpairingandprivacyconsentprompts", + "displayName": "Allow Auto Accept Pairing And Privacy Consent Prompts", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_allowautoacceptpairingandprivacyconsentprompts_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_privacy_allowautoacceptpairingandprivacyconsentprompts_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_allowcrossdeviceclipboard", + "displayName": "Allow Cross Device Clipboard", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_allowcrossdeviceclipboard_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_privacy_allowcrossdeviceclipboard_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_allowinputpersonalization", + "displayName": "Allow Input Personalization", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_allowinputpersonalization_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_privacy_allowinputpersonalization_1", + "displayName": "Allow", + "description": "Choice deferred to user's preference." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_disableadvertisingid", + "displayName": "Disable Advertising ID", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_disableadvertisingid_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_privacy_disableadvertisingid_1", + "displayName": "Enabled", + "description": "Enabled" + }, + { + "id": "device_vendor_msft_policy_config_privacy_disableadvertisingid_65535", + "displayName": "Not Configured", + "description": "Not Configured" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_disableprivacyexperience", + "displayName": "Disable Privacy Experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_disableprivacyexperience_0", + "displayName": "Disabled", + "description": "Allow the 'choose privacy settings for your device' screen for a new user during their first logon or when an existing user logs in for the first time after an upgrade." + }, + { + "id": "device_vendor_msft_policy_config_privacy_disableprivacyexperience_1", + "displayName": "Enabled", + "description": "Do not allow the 'choose privacy settings for your device' screen when a new user logs in or an existing user logs in for the first time after an upgrade." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_enableactivityfeed", + "displayName": "Enable Activity Feed", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_enableactivityfeed_0", + "displayName": "Disabled", + "description": "Disabled. Apps/OS can't publish the activities and roaming is disabled. (not published to the cloud)." + }, + { + "id": "device_vendor_msft_policy_config_privacy_enableactivityfeed_1", + "displayName": "Enabled", + "description": "Enabled. Apps/OS can publish the activities and will be roamed across device graph." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessaccountinfo", + "displayName": "Let Apps Access Account Info", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessaccountinfo_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessaccountinfo_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessaccountinfo_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessaccountinfo_forceallowtheseapps", + "displayName": "Let Apps Access Account Info Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessaccountinfo_forcedenytheseapps", + "displayName": "Let Apps Access Account Info Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessaccountinfo_userincontroloftheseapps", + "displayName": "Let Apps Access Account Info User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessbackgroundspatialperception", + "displayName": "Let Apps Access Background Spatial Perception", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessbackgroundspatialperception_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessbackgroundspatialperception_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessbackgroundspatialperception_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessbackgroundspatialperception_forceallowtheseapps", + "displayName": "Let Apps Access Background Spatial Perception Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessbackgroundspatialperception_forcedenytheseapps", + "displayName": "Let Apps Access Background Spatial Perception Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessbackgroundspatialperception_userincontroloftheseapps", + "displayName": "Let Apps Access Background Spatial Perception User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscalendar", + "displayName": "Let Apps Access Calendar", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscalendar_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscalendar_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscalendar_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscalendar_forceallowtheseapps", + "displayName": "Let Apps Access Calendar Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscalendar_forcedenytheseapps", + "displayName": "Let Apps Access Calendar Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscalendar_userincontroloftheseapps", + "displayName": "Let Apps Access Calendar User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscallhistory", + "displayName": "Let Apps Access Call History", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscallhistory_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscallhistory_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscallhistory_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscallhistory_forceallowtheseapps", + "displayName": "Let Apps Access Call History Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscallhistory_forcedenytheseapps", + "displayName": "Let Apps Access Call History Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscallhistory_userincontroloftheseapps", + "displayName": "Let Apps Access Call History User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscamera", + "displayName": "Let Apps Access Camera", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscamera_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscamera_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscamera_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscamera_forceallowtheseapps", + "displayName": "Let Apps Access Camera Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscamera_forcedenytheseapps", + "displayName": "Let Apps Access Camera Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscamera_userincontroloftheseapps", + "displayName": "Let Apps Access Camera User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscontacts", + "displayName": "Let Apps Access Contacts", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscontacts_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscontacts_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscontacts_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscontacts_forceallowtheseapps", + "displayName": "Let Apps Access Contacts Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscontacts_forcedenytheseapps", + "displayName": "Let Apps Access Contacts Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesscontacts_userincontroloftheseapps", + "displayName": "Let Apps Access Contacts User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessemail", + "displayName": "Let Apps Access Email", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessemail_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessemail_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessemail_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessemail_forceallowtheseapps", + "displayName": "Let Apps Access Email Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessemail_forcedenytheseapps", + "displayName": "Let Apps Access Email Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessemail_userincontroloftheseapps", + "displayName": "Let Apps Access Email User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgazeinput", + "displayName": "Let Apps Access Gaze Input", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgazeinput_forceallowtheseapps", + "displayName": "Let Apps Access Gaze Input Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgazeinput_forcedenytheseapps", + "displayName": "Let Apps Access Gaze Input Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgazeinput_userincontroloftheseapps", + "displayName": "Let Apps Access Gaze Input User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgraphicscaptureprogrammatic", + "displayName": "Let Apps Access Graphics Capture Programmatic", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgraphicscaptureprogrammatic_forceallowtheseapps", + "displayName": "Let Apps Access Graphics Capture Programmatic Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgraphicscaptureprogrammatic_forcedenytheseapps", + "displayName": "Let Apps Access Graphics Capture Programmatic Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgraphicscaptureprogrammatic_userincontroloftheseapps", + "displayName": "Let Apps Access Graphics Capture Programmatic User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgraphicscapturewithoutborder", + "displayName": "Let Apps Access Graphics Capture Without Border", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgraphicscapturewithoutborder_forceallowtheseapps", + "displayName": "Let Apps Access Graphics Capture Without Border Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgraphicscapturewithoutborder_forcedenytheseapps", + "displayName": "Let Apps Access Graphics Capture Without Border Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessgraphicscapturewithoutborder_userincontroloftheseapps", + "displayName": "Let Apps Access Graphics Capture Without Border User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesslocation", + "displayName": "Let Apps Access Location", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesslocation_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesslocation_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesslocation_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesslocation_forceallowtheseapps", + "displayName": "Let Apps Access Location Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesslocation_forcedenytheseapps", + "displayName": "Let Apps Access Location Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesslocation_userincontroloftheseapps", + "displayName": "Let Apps Access Location User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmessaging", + "displayName": "Let Apps Access Messaging", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmessaging_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmessaging_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmessaging_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmessaging_forceallowtheseapps", + "displayName": "Let Apps Access Messaging Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmessaging_forcedenytheseapps", + "displayName": "Let Apps Access Messaging Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmessaging_userincontroloftheseapps", + "displayName": "Let Apps Access Messaging User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmicrophone", + "displayName": "Let Apps Access Microphone", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmicrophone_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmicrophone_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmicrophone_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmicrophone_forceallowtheseapps", + "displayName": "Let Apps Access Microphone Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmicrophone_forcedenytheseapps", + "displayName": "Let Apps Access Microphone Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmicrophone_userincontroloftheseapps", + "displayName": "Let Apps Access Microphone User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmotion", + "displayName": "Let Apps Access Motion", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmotion_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmotion_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmotion_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmotion_forceallowtheseapps", + "displayName": "Let Apps Access Motion Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmotion_forcedenytheseapps", + "displayName": "Let Apps Access Motion Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessmotion_userincontroloftheseapps", + "displayName": "Let Apps Access Motion User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessnotifications", + "displayName": "Let Apps Access Notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessnotifications_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessnotifications_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessnotifications_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessnotifications_forceallowtheseapps", + "displayName": "Let Apps Access Notifications Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessnotifications_forcedenytheseapps", + "displayName": "Let Apps Access Notifications Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessnotifications_userincontroloftheseapps", + "displayName": "Let Apps Access Notifications User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessphone", + "displayName": "Let Apps Access Phone", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessphone_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessphone_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessphone_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessphone_forceallowtheseapps", + "displayName": "Let Apps Access Phone Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessphone_forcedenytheseapps", + "displayName": "Let Apps Access Phone Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessphone_userincontroloftheseapps", + "displayName": "Let Apps Access Phone User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessradios", + "displayName": "Let Apps Access Radios", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessradios_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessradios_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessradios_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessradios_forceallowtheseapps", + "displayName": "Let Apps Access Radios Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessradios_forcedenytheseapps", + "displayName": "Let Apps Access Radios Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccessradios_userincontroloftheseapps", + "displayName": "Let Apps Access Radios User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstasks", + "displayName": "Let Apps Access Tasks", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstasks_forceallowtheseapps", + "displayName": "Let Apps Access Tasks Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstasks_forcedenytheseapps", + "displayName": "Let Apps Access Tasks Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstasks_userincontroloftheseapps", + "displayName": "Let Apps Access Tasks User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstrusteddevices", + "displayName": "Let Apps Access Trusted Devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstrusteddevices_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstrusteddevices_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstrusteddevices_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstrusteddevices_forceallowtheseapps", + "displayName": "Let Apps Access Trusted Devices Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstrusteddevices_forcedenytheseapps", + "displayName": "Let Apps Access Trusted Devices Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsaccesstrusteddevices_userincontroloftheseapps", + "displayName": "Let Apps Access Trusted Devices User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsactivatewithvoice", + "displayName": "Let Apps Activate With Voice", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsactivatewithvoice_0", + "displayName": "User in control. Users can decide if Windows apps can be activated by voice using Settings > Privacy options on the device.", + "description": "User in control. Users can decide if Windows apps can be activated by voice using Settings > Privacy options on the device." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsactivatewithvoice_1", + "displayName": "Force allow. Windows apps can be activated by voice and users cannot change it.", + "description": "Force allow. Windows apps can be activated by voice and users cannot change it." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsactivatewithvoice_2", + "displayName": "Force deny. Windows apps cannot be activated by voice and users cannot change it.", + "description": "Force deny. Windows apps cannot be activated by voice and users cannot change it." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsactivatewithvoiceabovelock", + "displayName": "Let Apps Activate With Voice Above Lock", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsactivatewithvoiceabovelock_0", + "displayName": "User in control. Users can decide if Windows apps can be activated by voice while the screen is locked using Settings > Privacy options on the device.", + "description": "User in control. Users can decide if Windows apps can be activated by voice while the screen is locked using Settings > Privacy options on the device." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsactivatewithvoiceabovelock_1", + "displayName": "Force allow. Windows apps can be activated by voice while the screen is locked, and users cannot change it.", + "description": "Force allow. Windows apps can be activated by voice while the screen is locked, and users cannot change it." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsactivatewithvoiceabovelock_2", + "displayName": "Force deny. Windows apps cannot be activated by voice while the screen is locked, and users cannot change it.", + "description": "Force deny. Windows apps cannot be activated by voice while the screen is locked, and users cannot change it." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsgetdiagnosticinfo", + "displayName": "Let Apps Get Diagnostic Info", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsgetdiagnosticinfo_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsgetdiagnosticinfo_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsgetdiagnosticinfo_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsgetdiagnosticinfo_forceallowtheseapps", + "displayName": "Let Apps Get Diagnostic Info Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsgetdiagnosticinfo_forcedenytheseapps", + "displayName": "Let Apps Get Diagnostic Info Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsgetdiagnosticinfo_userincontroloftheseapps", + "displayName": "Let Apps Get Diagnostic Info User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsruninbackground", + "displayName": "Let Apps Run In Background", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappsruninbackground_0", + "displayName": "User in control (default).", + "description": "User in control (default)." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsruninbackground_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsruninbackground_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsruninbackground_forceallowtheseapps", + "displayName": "Force Allow These Apps to Run in Background", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsruninbackground_forcedenytheseapps", + "displayName": "Let Apps Run In Background Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappsruninbackground_userincontroloftheseapps", + "displayName": "Let Apps Run In Background User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappssyncwithdevices", + "displayName": "Let Apps Sync With Devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_letappssyncwithdevices_0", + "displayName": "User in control.", + "description": "User in control." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappssyncwithdevices_1", + "displayName": "Force allow.", + "description": "Force allow." + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappssyncwithdevices_2", + "displayName": "Force deny.", + "description": "Force deny." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappssyncwithdevices_forceallowtheseapps", + "displayName": "Let Apps Sync With Devices Force Allow These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappssyncwithdevices_forcedenytheseapps", + "displayName": "Let Apps Sync With Devices Force Deny These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_letappssyncwithdevices_userincontroloftheseapps", + "displayName": "Let Apps Sync With Devices User In Control Of These Apps", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_privacy_publishuseractivities", + "displayName": "Publish User Activities", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_publishuseractivities_0", + "displayName": "Disabled", + "description": "Disabled. Apps/OS can't publish the user activities." + }, + { + "id": "device_vendor_msft_policy_config_privacy_publishuseractivities_1", + "displayName": "Enabled", + "description": "Enabled. Apps/OS can publish the user activities." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_privacy_uploaduseractivities", + "displayName": "Upload User Activities", + "options": [ + { + "id": "device_vendor_msft_policy_config_privacy_uploaduseractivities_0", + "displayName": "Disabled", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_privacy_uploaduseractivities_1", + "displayName": "Enabled", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_quiettime_allowusertochangesetting", + "displayName": "Allow user to change setting", + "options": [ + { + "id": "device_vendor_msft_policy_config_quiettime_allowusertochangesetting_0", + "displayName": "No", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_allowusertochangesetting_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday", + "displayName": "Mute notifications all day", + "options": { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_1", + "displayName": "Require", + "description": null + } + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_daysoftheweek", + "displayName": "Days of the week", + "options": [ + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_daysoftheweek_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_daysoftheweek_1", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_daysoftheweek_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_daysoftheweek_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_daysoftheweek_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_daysoftheweek_5", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsallday_daysoftheweek_6", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsclockedout", + "displayName": "Mute notifications", + "options": { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsclockedout_1", + "displayName": "Require", + "description": null + } + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily", + "displayName": "Mute notifications daily", + "options": { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_1", + "displayName": "Require", + "description": null + } + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_daysoftheweek", + "displayName": "Days of the week", + "options": [ + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_daysoftheweek_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_daysoftheweek_1", + "displayName": "Monday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_daysoftheweek_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_daysoftheweek_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_daysoftheweek_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_daysoftheweek_5", + "displayName": "Friday", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_daysoftheweek_6", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_endtime", + "displayName": "End time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_mutenotificationsdaily_starttime", + "displayName": "Start time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_rangesettings_endtime", + "displayName": "End", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_quiettime_rangesettings_starttime", + "displayName": "Start", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_customizewarningmessages", + "displayName": "Customize warning messages", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteassistance_customizewarningmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_customizewarningmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_customizewarningmessages_ra_options_connect_message", + "displayName": "Display warning message before connecting: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_customizewarningmessages_ra_options_share_control_message", + "displayName": "Display warning message before sharing control: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_sessionlogging", + "displayName": "Turn on session logging", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteassistance_sessionlogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_sessionlogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance", + "displayName": "Configure Solicited Remote Assistance", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_control_list", + "displayName": "Permit remote control of this computer:", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_control_list_1", + "displayName": "Allow helpers to remotely control the computer", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_control_list_0", + "displayName": "Allow helpers to only view the computer", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_expireunits_list", + "displayName": "Maximum ticket time (units):", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_expireunits_list_0", + "displayName": "Minutes", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_expireunits_list_1", + "displayName": "Hours", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_expireunits_list_2", + "displayName": "Days", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_expirevalue_edt", + "displayName": "Maximum ticket time (value):", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_mailto_list", + "displayName": "Method for sending email invitations:", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_mailto_list_0", + "displayName": "Simple MAPI", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_solicitedremoteassistance_ra_solicit_mailto_list_1", + "displayName": "Mailto", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_unsolicitedremoteassistance", + "displayName": "Configure Offer Remote Assistance", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteassistance_unsolicitedremoteassistance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_unsolicitedremoteassistance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_unsolicitedremoteassistance_ra_unsolicit_control_list", + "displayName": "Permit remote control of this computer: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteassistance_unsolicitedremoteassistance_ra_unsolicit_control_list_1", + "displayName": "Allow helpers to remotely control the computer", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_unsolicitedremoteassistance_ra_unsolicit_control_list_0", + "displayName": "Allow helpers to only view the computer", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteassistance_unsolicitedremoteassistance_ra_unsolicit_dacl_edit", + "displayName": "Helpers: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_allowuserstoconnectremotely", + "displayName": "Allow users to connect remotely by using Remote Desktop Services", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_allowuserstoconnectremotely_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_allowuserstoconnectremotely_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_clientconnectionencryptionlevel", + "displayName": "Set client connection encryption level", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_clientconnectionencryptionlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_clientconnectionencryptionlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_clientconnectionencryptionlevel_ts_encryption_level", + "displayName": "Encryption Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_clientconnectionencryptionlevel_ts_encryption_level_1", + "displayName": "Low Level", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_clientconnectionencryptionlevel_ts_encryption_level_2", + "displayName": "Client Compatible", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_clientconnectionencryptionlevel_ts_encryption_level_3", + "displayName": "High Level", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_disconnectonlocklegacyauthn", + "displayName": "Disconnect remote session on lock for legacy authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_disconnectonlocklegacyauthn_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_disconnectonlocklegacyauthn_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_disconnectonlockmicrosoftidentityauthn", + "displayName": "Disconnect remote session on lock for Microsoft identity platform authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_disconnectonlockmicrosoftidentityauthn_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_disconnectonlockmicrosoftidentityauthn_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowdriveredirection", + "displayName": "Do not allow drive redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowdriveredirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowdriveredirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowpasswordsaving", + "displayName": "Do not allow passwords to be saved", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowpasswordsaving_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowpasswordsaving_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowwebauthnredirection", + "displayName": "Do not allow WebAuthn redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowwebauthnredirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_donotallowwebauthnredirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection", + "displayName": "Restrict clipboard transfer from client to server", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text", + "displayName": "Restrict clipboard transfer from client to server: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_0", + "displayName": "Disable clipboard transfers from client to server", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_1", + "displayName": "Allow plain text", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_2", + "displayName": "Allow plain text and images", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_3", + "displayName": "Allow plain text, images and Rich Text Format", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_4", + "displayName": "Allow plain text, images, Rich Text Format and HTML", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection", + "displayName": "Restrict clipboard transfer from server to client", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text", + "displayName": "Restrict clipboard transfer from server to client: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_0", + "displayName": "Disable clipboard transfers from server to client", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_1", + "displayName": "Allow plain text", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_2", + "displayName": "Allow plain text and images", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_3", + "displayName": "Allow plain text, images and Rich Text Format", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_4", + "displayName": "Allow plain text, images, Rich Text Format and HTML", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_promptforpassworduponconnection", + "displayName": "Always prompt for password upon connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_promptforpassworduponconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_promptforpassworduponconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_requiresecurerpccommunication", + "displayName": "Require secure RPC communication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_requiresecurerpccommunication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotedesktopservices_requiresecurerpccommunication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowbasicauthentication_client", + "displayName": "Allow Basic authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowbasicauthentication_client_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowbasicauthentication_client_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowbasicauthentication_service", + "displayName": "Allow Basic authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowbasicauthentication_service_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowbasicauthentication_service_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowcredsspauthenticationclient", + "displayName": "Allow CredSSP authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowcredsspauthenticationclient_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowcredsspauthenticationclient_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowcredsspauthenticationservice", + "displayName": "Allow CredSSP authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowcredsspauthenticationservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowcredsspauthenticationservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowremoteservermanagement", + "displayName": "Allow remote server management through WinRM", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowremoteservermanagement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowremoteservermanagement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowremoteservermanagement_allowautoconfig_ipv4filter", + "displayName": "IPv4 filter: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowremoteservermanagement_allowautoconfig_ipv6filter", + "displayName": "IPv6 filter: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowunencryptedtraffic_client", + "displayName": "Allow unencrypted traffic", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowunencryptedtraffic_client_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowunencryptedtraffic_client_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowunencryptedtraffic_service", + "displayName": "Allow unencrypted traffic", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowunencryptedtraffic_service_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_allowunencryptedtraffic_service_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallowdigestauthentication", + "displayName": "Disallow Digest authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallowdigestauthentication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallowdigestauthentication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallownegotiateauthenticationclient", + "displayName": "Disallow Negotiate authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallownegotiateauthenticationclient_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallownegotiateauthenticationclient_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallownegotiateauthenticationservice", + "displayName": "Disallow Negotiate authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallownegotiateauthenticationservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallownegotiateauthenticationservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallowstoringofrunascredentials", + "displayName": "Disallow WinRM from storing RunAs credentials", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallowstoringofrunascredentials_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_disallowstoringofrunascredentials_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_specifychannelbindingtokenhardeninglevel", + "displayName": "Specify channel binding token hardening level", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_specifychannelbindingtokenhardeninglevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_specifychannelbindingtokenhardeninglevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_specifychannelbindingtokenhardeninglevel_hardeninglevelcombo", + "displayName": "Hardening Level: (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_specifychannelbindingtokenhardeninglevel_hardeninglevelcombo_none", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_specifychannelbindingtokenhardeninglevel_hardeninglevelcombo_relaxed", + "displayName": "Relaxed", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_specifychannelbindingtokenhardeninglevel_hardeninglevelcombo_strict", + "displayName": "Strict", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_trustedhosts", + "displayName": "Trusted Hosts", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_trustedhosts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_trustedhosts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_trustedhosts_trustedhosts_list", + "displayName": "TrustedHostsList: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_turnoncompatibilityhttplistener", + "displayName": "Turn On Compatibility HTTP Listener", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_turnoncompatibilityhttplistener_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_turnoncompatibilityhttplistener_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_turnoncompatibilityhttpslistener", + "displayName": "Turn On Compatibility HTTPS Listener", + "options": [ + { + "id": "device_vendor_msft_policy_config_remotemanagement_turnoncompatibilityhttpslistener_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remotemanagement_turnoncompatibilityhttpslistener_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_restrictunauthenticatedrpcclients", + "displayName": "Restrict Unauthenticated RPC clients", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_restrictunauthenticatedrpcclients_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_restrictunauthenticatedrpcclients_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_restrictunauthenticatedrpcclients_rpcrestrictremoteclientslist", + "displayName": "RPC Runtime Unauthenticated Client Restriction to Apply:", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_restrictunauthenticatedrpcclients_rpcrestrictremoteclientslist_0", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_restrictunauthenticatedrpcclients_rpcrestrictremoteclientslist_1", + "displayName": "Authenticated", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_restrictunauthenticatedrpcclients_rpcrestrictremoteclientslist_2", + "displayName": "Authenticated without exceptions", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_rpcendpointmapperclientauthentication", + "displayName": "Enable RPC Endpoint Mapper Client Authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_rpcendpointmapperclientauthentication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteprocedurecall_rpcendpointmapperclientauthentication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_allowremoteshellaccess", + "displayName": "Allow Remote Shell Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteshell_allowremoteshellaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_allowremoteshellaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_maxconcurrentusers", + "displayName": "MaxConcurrentUsers", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteshell_maxconcurrentusers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_maxconcurrentusers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_maxconcurrentusers_maxconcurrentusers", + "displayName": "MaxConcurrentUsers (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifyidletimeout", + "displayName": "Specify idle Timeout", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteshell_specifyidletimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifyidletimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifyidletimeout_idletimeout", + "displayName": "IdleTimeout (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxmemory", + "displayName": "Specify maximum amount of memory in MB per Shell", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxmemory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxmemory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxmemory_maxmemorypershellmb", + "displayName": "MaxMemoryPerShellMB (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxprocesses", + "displayName": "Specify maximum number of processes per Shell", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxprocesses_maxprocessespershell", + "displayName": "MaxProcessesPerShell (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxremoteshells", + "displayName": "Specify maximum number of remote shells per user", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxremoteshells_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxremoteshells_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifymaxremoteshells_maxshellsperuser", + "displayName": "MaxShellsPerUser (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifyshelltimeout", + "displayName": "Specify Shell Timeout", + "options": [ + { + "id": "device_vendor_msft_policy_config_remoteshell_specifyshelltimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifyshelltimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_remoteshell_specifyshelltimeout_shelltimeout", + "displayName": "ShellTimeOut (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_search_allowcloudsearch", + "displayName": "Allow Cloud Search", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_allowcloudsearch_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_search_allowcloudsearch_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_allowcortanainaad", + "displayName": "Allow Cortana In AAD", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_allowcortanainaad_0", + "displayName": "Block", + "description": "Not allowed. The Cortana consent page will not appear in AAD OOBE during setup." + }, + { + "id": "device_vendor_msft_policy_config_search_allowcortanainaad_1", + "displayName": "Allow", + "description": "Allowed. The Cortana consent page will appear in Azure AAD OOBE during setup." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_allowfindmyfiles", + "displayName": "Allow Find My Files", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_allowfindmyfiles_1", + "displayName": "Find My Files feature can be toggled (still off by default), and the settings UI is present.", + "description": "Find My Files feature can be toggled (still off by default), and the settings UI is present." + }, + { + "id": "device_vendor_msft_policy_config_search_allowfindmyfiles_0", + "displayName": "Find My Files feature is turned off completely, and the settings UI is disabled.", + "description": "Find My Files feature is turned off completely, and the settings UI is disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_allowindexingencryptedstoresoritems", + "displayName": "Allow Indexing Encrypted Stores Or Items", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_allowindexingencryptedstoresoritems_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_search_allowindexingencryptedstoresoritems_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_allowsearchhighlights", + "displayName": "Allow Search Highlights", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_search_allowsearchtouselocation", + "displayName": "Allow Search To Use Location", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_allowsearchtouselocation_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_search_allowsearchtouselocation_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_allowstoringimagesfromvisionsearch", + "displayName": "Allow Storing Images From Vision Search", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_allowstoringimagesfromvisionsearch_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_search_allowstoringimagesfromvisionsearch_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_allowusingdiacritics", + "displayName": "Allow Using Diacritics", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_allowusingdiacritics_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_search_allowusingdiacritics_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_allowwindowsindexer", + "displayName": "Allow Windows Indexer", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_search_alwaysuseautolangdetection", + "displayName": "Always Use Auto Lang Detection", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_alwaysuseautolangdetection_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_search_alwaysuseautolangdetection_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_configuresearchontaskbarmode", + "displayName": "Configure Search On Taskbar Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_configuresearchontaskbarmode_0", + "displayName": "Hide", + "description": "Hide" + }, + { + "id": "device_vendor_msft_policy_config_search_configuresearchontaskbarmode_1", + "displayName": "Search icon only", + "description": "Search icon only" + }, + { + "id": "device_vendor_msft_policy_config_search_configuresearchontaskbarmode_2", + "displayName": "Search icon and label", + "description": "Search icon and label" + }, + { + "id": "device_vendor_msft_policy_config_search_configuresearchontaskbarmode_3", + "displayName": "Search box", + "description": "Search box" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_disablebackoff", + "displayName": "Disable Backoff", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_disablebackoff_0", + "displayName": "Disable.", + "description": "Disable." + }, + { + "id": "device_vendor_msft_policy_config_search_disablebackoff_1", + "displayName": "Enable.", + "description": "Enable." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_disableremovabledriveindexing", + "displayName": "Disable Removable Drive Indexing", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_disableremovabledriveindexing_0", + "displayName": "Disable.", + "description": "Disable." + }, + { + "id": "device_vendor_msft_policy_config_search_disableremovabledriveindexing_1", + "displayName": "Enable.", + "description": "Enable." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_disablesearch", + "displayName": "Disable Search", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_disablesearch_0", + "displayName": "Do not disable.", + "description": "Do not disable." + }, + { + "id": "device_vendor_msft_policy_config_search_disablesearch_1", + "displayName": "Disable.", + "description": "Disable." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_donotusewebresults", + "displayName": "Do Not Use Web Results", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_donotusewebresults_0", + "displayName": "Not allowed. Queries won't be performed on the web and web results won't be displayed when a user performs a query in Search.", + "description": "Not allowed. Queries won't be performed on the web and web results won't be displayed when a user performs a query in Search." + }, + { + "id": "device_vendor_msft_policy_config_search_donotusewebresults_1", + "displayName": "Allowed. Queries will be performed on the web and web results will be displayed when a user performs a query in Search.", + "description": "Allowed. Queries will be performed on the web and web results will be displayed when a user performs a query in Search." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_preventindexinglowdiskspacemb", + "displayName": "Prevent Indexing Low Disk Space MB", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_preventindexinglowdiskspacemb_0", + "displayName": "Disable.", + "description": "Disable." + }, + { + "id": "device_vendor_msft_policy_config_search_preventindexinglowdiskspacemb_1", + "displayName": "Enable.", + "description": "Enable." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_search_preventremotequeries", + "displayName": "Prevent Remote Queries", + "options": [ + { + "id": "device_vendor_msft_policy_config_search_preventremotequeries_0", + "displayName": "Disable.", + "description": "Disable." + }, + { + "id": "device_vendor_msft_policy_config_search_preventremotequeries_1", + "displayName": "Enable.", + "description": "Enable." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_a001_block_flash", + "displayName": "Block Flash activation in Office documents", + "options": [ + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_a001_block_flash_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_a001_block_flash_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_a001_block_flash_pol_secguide_block_flash", + "displayName": "Block Flash player in Office (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_a001_block_flash_pol_secguide_block_flash_block all flash activation", + "displayName": "Block all activation", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_a001_block_flash_pol_secguide_block_flash_block embedded flash activation only", + "displayName": "Block embedding/linking, allow other activation", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_a001_block_flash_pol_secguide_block_flash_allow all flash activation", + "displayName": "Allow all activation", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript", + "displayName": "Restrict legacy JScript execution for Office", + "options": [ + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_excel", + "displayName": "Excel: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_msaccess", + "displayName": "Access: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_mspub", + "displayName": "Publisher: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_onenote", + "displayName": "OneNote: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_outlook", + "displayName": "Outlook: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_powerpnt", + "displayName": "PowerPoint: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_visio", + "displayName": "Visio: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_winproj", + "displayName": "Project: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_secguidev22h2~policy~cat_secguide_pol_secguide_legacy_jscript_pol_sg_winword", + "displayName": "Word: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_security_allowaddprovisioningpackage", + "displayName": "Allow Add Provisioning Package", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_allowaddprovisioningpackage_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_security_allowaddprovisioningpackage_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_security_allowremoveprovisioningpackage", + "displayName": "Allow Remove Provisioning Package", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_allowremoveprovisioningpackage_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_security_allowremoveprovisioningpackage_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_security_cleartpmifnotready", + "displayName": "Clear TPM If Not Ready", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_cleartpmifnotready_0", + "displayName": "Disabled", + "description": "Will not force recovery from a non-ready TPM state." + }, + { + "id": "device_vendor_msft_policy_config_security_cleartpmifnotready_1", + "displayName": "Enabled", + "description": "Will prompt to clear the TPM if the TPM is in a non-ready state (or reduced functionality) which can be remediated with a TPM Clear." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_security_configurewindowspasswords", + "displayName": "Configure Windows Passwords", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_configurewindowspasswords_0", + "displayName": "-Disallow passwords (Asymmetric credentials will be promoted to replace passwords on Windows features)", + "description": "-Disallow passwords (Asymmetric credentials will be promoted to replace passwords on Windows features)" + }, + { + "id": "device_vendor_msft_policy_config_security_configurewindowspasswords_1", + "displayName": "Allow passwords (Passwords continue to be allowed to be used for Windows features)", + "description": "Allow passwords (Passwords continue to be allowed to be used for Windows features)" + }, + { + "id": "device_vendor_msft_policy_config_security_configurewindowspasswords_2", + "displayName": "as per SKU and device capabilities. Windows 10 S devices will exhibit \"Disallow passwords\" default, and all other devices will default to \"Allow passwords\")", + "description": "as per SKU and device capabilities. Windows 10 S devices will exhibit \"Disallow passwords\" default, and all other devices will default to \"Allow passwords\")" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_security_preventautomaticdeviceencryptionforazureadjoineddevices", + "displayName": "Prevent Automatic Device Encryption For Azure AD Joined Devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_preventautomaticdeviceencryptionforazureadjoineddevices_0", + "displayName": "Encryption enabled.", + "description": "Encryption enabled." + }, + { + "id": "device_vendor_msft_policy_config_security_preventautomaticdeviceencryptionforazureadjoineddevices_1", + "displayName": "Encryption disabled.", + "description": "Encryption disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_security_recoveryenvironmentauthentication", + "displayName": "Recovery Environment Authentication", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_recoveryenvironmentauthentication_0", + "displayName": "current) behavior", + "description": "current) behavior" + }, + { + "id": "device_vendor_msft_policy_config_security_recoveryenvironmentauthentication_1", + "displayName": "RequireAuthentication: Admin Authentication is always required for components in RecoveryEnvironment", + "description": "RequireAuthentication: Admin Authentication is always required for components in RecoveryEnvironment" + }, + { + "id": "device_vendor_msft_policy_config_security_recoveryenvironmentauthentication_2", + "displayName": "NoRequireAuthentication: Admin Authentication is not required for components in RecoveryEnvironment", + "description": "NoRequireAuthentication: Admin Authentication is not required for components in RecoveryEnvironment" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_security_requiredeviceencryption", + "displayName": "Require Device Encryption", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_requiredeviceencryption_0", + "displayName": "Encryption is not required.", + "description": "Encryption is not required." + }, + { + "id": "device_vendor_msft_policy_config_security_requiredeviceencryption_1", + "displayName": "Encryption is required.", + "description": "Encryption is required." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_security_requireprovisioningpackagesignature", + "displayName": "Require Provisioning Package Signature", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_requireprovisioningpackagesignature_0", + "displayName": "Not required.", + "description": "Not required." + }, + { + "id": "device_vendor_msft_policy_config_security_requireprovisioningpackagesignature_1", + "displayName": "Required.", + "description": "Required." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_security_requireretrievehealthcertificateonboot", + "displayName": "Require Retrieve Health Certificate On Boot", + "options": [ + { + "id": "device_vendor_msft_policy_config_security_requireretrievehealthcertificateonboot_0", + "displayName": "Not required.", + "description": "Not required." + }, + { + "id": "device_vendor_msft_policy_config_security_requireretrievehealthcertificateonboot_1", + "displayName": "Required.", + "description": "Required." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_servicecontrolmanager_svchostprocessmitigation", + "displayName": "Enable svchost.exe mitigation options", + "options": [ + { + "id": "device_vendor_msft_policy_config_servicecontrolmanager_svchostprocessmitigation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_servicecontrolmanager_svchostprocessmitigation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowdatasense", + "displayName": "Allow Data Sense", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowdatasense_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowdatasense_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowdatetime", + "displayName": "Allow Date Time", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowdatetime_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowdatetime_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowlanguage", + "displayName": "Allow Language", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowlanguage_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowlanguage_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowonlinetips", + "displayName": "Allow Online Tips", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowonlinetips_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowonlinetips_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowpowersleep", + "displayName": "Allow Power Sleep", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowpowersleep_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowpowersleep_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowregion", + "displayName": "Allow Region", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowregion_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowregion_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowsigninoptions", + "displayName": "Allow Sign In Options", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowsigninoptions_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowsigninoptions_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowvpn", + "displayName": "Allow VPN", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowvpn_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowvpn_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowworkplace", + "displayName": "Allow Workplace", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowworkplace_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowworkplace_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_allowyouraccount", + "displayName": "Allow Your Account", + "options": [ + { + "id": "device_vendor_msft_policy_config_settings_allowyouraccount_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_settings_allowyouraccount_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_settings_pagevisibilitylist", + "displayName": "Page Visibility List", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_smartscreen_enableappinstallcontrol", + "displayName": "Enable App Install Control", + "options": [ + { + "id": "device_vendor_msft_policy_config_smartscreen_enableappinstallcontrol_0", + "displayName": "Disable", + "description": "Turns off Application Installation Control, allowing users to download and install files from anywhere on the web." + }, + { + "id": "device_vendor_msft_policy_config_smartscreen_enableappinstallcontrol_1", + "displayName": "Enable", + "description": "Turns on Application Installation Control, allowing users to only install apps from the Store." + }, + { + "id": "device_vendor_msft_policy_config_smartscreen_enableappinstallcontrol_2", + "displayName": "Turns on Application Installation Control, letting users know that there's a comparable app in the Store", + "description": "Turns on Application Installation Control, letting users know that there's a comparable app in the Store" + }, + { + "id": "device_vendor_msft_policy_config_smartscreen_enableappinstallcontrol_3", + "displayName": "Turns on Application Installation Control, warning users before installing apps from outside the Store", + "description": "Turns on Application Installation Control, warning users before installing apps from outside the Store" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_smartscreen_enablesmartscreeninshell", + "displayName": "Enable Smart Screen In Shell", + "options": [ + { + "id": "device_vendor_msft_policy_config_smartscreen_enablesmartscreeninshell_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_smartscreen_enablesmartscreeninshell_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_smartscreen_preventoverrideforfilesinshell", + "displayName": "Prevent Override For Files In Shell", + "options": [ + { + "id": "device_vendor_msft_policy_config_smartscreen_preventoverrideforfilesinshell_0", + "displayName": "Disabled", + "description": "Do not prevent override." + }, + { + "id": "device_vendor_msft_policy_config_smartscreen_preventoverrideforfilesinshell_1", + "displayName": "Enabled", + "description": "Prevent override." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_speech_allowspeechmodelupdate", + "displayName": "Allow Speech Model Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_speech_allowspeechmodelupdate_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_speech_allowspeechmodelupdate_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderdocuments", + "displayName": "Allow Pinned Folder Documents", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderdocuments_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderdocuments_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderdocuments_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderdownloads", + "displayName": "Allow Pinned Folder Downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderdownloads_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderdownloads_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderdownloads_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderfileexplorer", + "displayName": "Allow Pinned Folder File Explorer", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderfileexplorer_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderfileexplorer_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderfileexplorer_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderhomegroup", + "displayName": "Allow Pinned Folder Home Group", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderhomegroup_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderhomegroup_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderhomegroup_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldermusic", + "displayName": "Allow Pinned Folder Music", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldermusic_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldermusic_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldermusic_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldernetwork", + "displayName": "Allow Pinned Folder Network", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldernetwork_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldernetwork_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldernetwork_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderpersonalfolder", + "displayName": "Allow Pinned Folder Personal Folder", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderpersonalfolder_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderpersonalfolder_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderpersonalfolder_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderpictures", + "displayName": "Allow Pinned Folder Pictures", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderpictures_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderpictures_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfolderpictures_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldersettings", + "displayName": "Allow Pinned Folder Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldersettings_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldersettings_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldersettings_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldervideos", + "displayName": "Allow Pinned Folder Videos", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldervideos_0", + "displayName": "The shortcut is hidden and disables the setting in the Settings app.", + "description": "The shortcut is hidden and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldervideos_1", + "displayName": "The shortcut is visible and disables the setting in the Settings app.", + "description": "The shortcut is visible and disables the setting in the Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_allowpinnedfoldervideos_65535", + "displayName": "There is no enforced configuration and the setting can be changed by the user.", + "description": "There is no enforced configuration and the setting can be changed by the user." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_configurestartpins", + "displayName": "Configure Start Pins", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_start_disablecontextmenus", + "displayName": "Disable Context Menus", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_disablecontextmenus_0", + "displayName": "Disabled", + "description": "Do not disable." + }, + { + "id": "device_vendor_msft_policy_config_start_disablecontextmenus_1", + "displayName": "Enabled", + "description": "Disable." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_disableeditingquicksettings", + "displayName": "Disable Editing Quick Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_disableeditingquicksettings_0", + "displayName": "Enable editing Quick Settings.", + "description": "Enable editing Quick Settings." + }, + { + "id": "device_vendor_msft_policy_config_start_disableeditingquicksettings_1", + "displayName": "Disable editing Quick Settings.", + "description": "Disable editing Quick Settings." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_forcestartsize", + "displayName": "Force Start Size", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_forcestartsize_0", + "displayName": "Do not force size of Start.", + "description": "Do not force size of Start." + }, + { + "id": "device_vendor_msft_policy_config_start_forcestartsize_1", + "displayName": "Force non-fullscreen size of Start.", + "description": "Force non-fullscreen size of Start." + }, + { + "id": "device_vendor_msft_policy_config_start_forcestartsize_2", + "displayName": "Force a fullscreen size of Start.", + "description": "Force a fullscreen size of Start." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hideapplist", + "displayName": "Hide App List", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hideapplist_0", + "displayName": "None.", + "description": "None." + }, + { + "id": "device_vendor_msft_policy_config_start_hideapplist_1", + "displayName": "Hide all apps list.", + "description": "Hide all apps list." + }, + { + "id": "device_vendor_msft_policy_config_start_hideapplist_2", + "displayName": "Hide all apps list, and Disable \"Show app list in Start menu\" in Settings app.", + "description": "Hide all apps list, and Disable \"Show app list in Start menu\" in Settings app." + }, + { + "id": "device_vendor_msft_policy_config_start_hideapplist_3", + "displayName": "Hide all apps list, remove all apps button, and Disable \"Show app list in Start menu\" in Settings app.", + "description": "Hide all apps list, remove all apps button, and Disable \"Show app list in Start menu\" in Settings app." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hidechangeaccountsettings", + "displayName": "Hide Change Account Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hidechangeaccountsettings_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hidechangeaccountsettings_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hidefrequentlyusedapps", + "displayName": "Hide Frequently Used Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hidefrequentlyusedapps_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hidefrequentlyusedapps_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hidehibernate", + "displayName": "Hide Hibernate", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hidehibernate_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hidehibernate_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hidelock", + "displayName": "Hide Lock", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hidelock_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hidelock_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hidepowerbutton", + "displayName": "Hide Power Button", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hidepowerbutton_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hidepowerbutton_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hiderecentjumplists", + "displayName": "Hide Recent Jumplists", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hiderecentjumplists_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hiderecentjumplists_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hiderecentlyaddedapps", + "displayName": "Hide Recently Added Apps", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hiderecentlyaddedapps_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hiderecentlyaddedapps_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hiderestart", + "displayName": "Hide Restart", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hiderestart_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hiderestart_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hideshutdown", + "displayName": "Hide Shut Down", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hideshutdown_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hideshutdown_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hidesignout", + "displayName": "Hide Sign Out", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hidesignout_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hidesignout_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hidesleep", + "displayName": "Hide Sleep", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hidesleep_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hidesleep_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hideswitchaccount", + "displayName": "Hide Switch Account", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hideswitchaccount_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hideswitchaccount_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_hideusertile", + "displayName": "Hide User Tile", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_hideusertile_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "device_vendor_msft_policy_config_start_hideusertile_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_importedgeassets", + "displayName": "Import Edge Assets", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_start_nopinningtotaskbar", + "displayName": "No Pinning To Taskbar", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_nopinningtotaskbar_0", + "displayName": "Disabled", + "description": "Pinning enabled." + }, + { + "id": "device_vendor_msft_policy_config_start_nopinningtotaskbar_1", + "displayName": "Enabled", + "description": "Pinning disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_simplifyquicksettings", + "displayName": "Simplify Quick Settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_start_simplifyquicksettings_0", + "displayName": "Load regular Quick Settings layout.", + "description": "Load regular Quick Settings layout." + }, + { + "id": "device_vendor_msft_policy_config_start_simplifyquicksettings_1", + "displayName": "Load simplified Quick Settings layout.", + "description": "Load simplified Quick Settings layout." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_start_startlayout", + "displayName": "Start Layout", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_storage_allowdiskhealthmodelupdates", + "displayName": "Allow Disk Health Model Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_storage_allowdiskhealthmodelupdates_0", + "displayName": "Do not allow", + "description": "Do not allow" + }, + { + "id": "device_vendor_msft_policy_config_storage_allowdiskhealthmodelupdates_1", + "displayName": "Allow", + "description": "Allow" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_storage_allowstoragesenseglobal", + "displayName": "Allow Storage Sense Global", + "options": [ + { + "id": "device_vendor_msft_policy_config_storage_allowstoragesenseglobal_1", + "displayName": "Allow", + "description": "Allow" + }, + { + "id": "device_vendor_msft_policy_config_storage_allowstoragesenseglobal_0", + "displayName": "Block", + "description": "Block" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_storage_allowstoragesensetemporaryfilescleanup", + "displayName": "Allow Storage Sense Temporary Files Cleanup", + "options": [ + { + "id": "device_vendor_msft_policy_config_storage_allowstoragesensetemporaryfilescleanup_1", + "displayName": "Allow", + "description": "Allow" + }, + { + "id": "device_vendor_msft_policy_config_storage_allowstoragesensetemporaryfilescleanup_0", + "displayName": "Block", + "description": "Block" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_storage_configstoragesensecloudcontentdehydrationthreshold", + "displayName": "Config Storage Sense Cloud Content Dehydration Threshold", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_storage_configstoragesensedownloadscleanupthreshold", + "displayName": "Config Storage Sense Downloads Cleanup Threshold", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_storage_configstoragesenseglobalcadence", + "displayName": "Config Storage Sense Global Cadence", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_storage_configstoragesenserecyclebincleanupthreshold", + "displayName": "Config Storage Sense Recycle Bin Cleanup Threshold", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_storage_enhancedstoragedevices", + "displayName": "Do not allow Windows to activate Enhanced Storage devices", + "options": [ + { + "id": "device_vendor_msft_policy_config_storage_enhancedstoragedevices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_storage_enhancedstoragedevices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_storage_removablediskdenywriteaccess", + "displayName": "Removable Disk Deny Write Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_storage_removablediskdenywriteaccess_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_storage_removablediskdenywriteaccess_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowbuildpreview", + "displayName": "Allow Build Preview", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowbuildpreview_0", + "displayName": "Not allowed. The item \"Get Insider builds\" is unavailable, users are unable to make their devices available for preview software.", + "description": "Not allowed. The item \"Get Insider builds\" is unavailable, users are unable to make their devices available for preview software." + }, + { + "id": "device_vendor_msft_policy_config_system_allowbuildpreview_1", + "displayName": "Allowed. Users can make their devices available for downloading and installing preview software.", + "description": "Allowed. Users can make their devices available for downloading and installing preview software." + }, + { + "id": "device_vendor_msft_policy_config_system_allowbuildpreview_2", + "displayName": "Not configured. Users can make their devices available for downloading and installing preview software.", + "description": "Not configured. Users can make their devices available for downloading and installing preview software." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowcommercialdatapipeline", + "displayName": "Allow Commercial Data Pipeline", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowcommercialdatapipeline_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_allowcommercialdatapipeline_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowdesktopanalyticsprocessing", + "displayName": "Allow Desktop Analytics Processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowdesktopanalyticsprocessing_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_system_allowdesktopanalyticsprocessing_2", + "displayName": "Allowed", + "description": "Allowed" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowdevicenameindiagnosticdata", + "displayName": "Allow device name to be sent in Windows diagnostic data", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowdevicenameindiagnosticdata_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_allowdevicenameindiagnosticdata_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowembeddedmode", + "displayName": "Allow Embedded Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowembeddedmode_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_system_allowembeddedmode_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowexperimentation", + "displayName": "Allow Experimentation", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowexperimentation_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_allowexperimentation_1", + "displayName": "Permits Microsoft to configure device settings only.", + "description": "Permits Microsoft to configure device settings only." + }, + { + "id": "device_vendor_msft_policy_config_system_allowexperimentation_2", + "displayName": "Allows Microsoft to conduct full experimentation.", + "description": "Allows Microsoft to conduct full experimentation." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowfontproviders", + "displayName": "Allow Font Providers", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowfontproviders_0", + "displayName": "Not allowed. No traffic to fs.microsoft.com and only locally installed fonts are available.", + "description": "Not allowed. No traffic to fs.microsoft.com and only locally installed fonts are available." + }, + { + "id": "device_vendor_msft_policy_config_system_allowfontproviders_1", + "displayName": "Allowed. There may be network traffic to fs.microsoft.com and downloadable fonts are available to apps that support them.", + "description": "Allowed. There may be network traffic to fs.microsoft.com and downloadable fonts are available to apps that support them." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowlocation", + "displayName": "Allow Location", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowlocation_0", + "displayName": "Force Location Off. All Location Privacy settings are toggled off and grayed out. Users cannot change the settings, and no apps are allowed access to the Location service, including Cortana and Search.", + "description": "Force Location Off. All Location Privacy settings are toggled off and grayed out. Users cannot change the settings, and no apps are allowed access to the Location service, including Cortana and Search." + }, + { + "id": "device_vendor_msft_policy_config_system_allowlocation_1", + "displayName": "Location service is allowed. The user has control and can change Location Privacy settings on or off.", + "description": "Location service is allowed. The user has control and can change Location Privacy settings on or off." + }, + { + "id": "device_vendor_msft_policy_config_system_allowlocation_2", + "displayName": "Force Location On. All Location Privacy settings are toggled on and grayed out. Users cannot change the settings and all consent permissions will be automatically suppressed.", + "description": "Force Location On. All Location Privacy settings are toggled on and grayed out. Users cannot change the settings and all consent permissions will be automatically suppressed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowmicrosoftmanageddesktopprocessing", + "displayName": "Allow Microsoft Managed Desktop Processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowmicrosoftmanageddesktopprocessing_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_system_allowmicrosoftmanageddesktopprocessing_32", + "displayName": "Allowed", + "description": "Allowed" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowstoragecard", + "displayName": "Allow Storage Card", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowstoragecard_0", + "displayName": "SD card use is not allowed and USB drives are disabled. This setting does not prevent programmatic access to the storage card.", + "description": "SD card use is not allowed and USB drives are disabled. This setting does not prevent programmatic access to the storage card." + }, + { + "id": "device_vendor_msft_policy_config_system_allowstoragecard_1", + "displayName": "Allow a storage card.", + "description": "Allow a storage card." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowtelemetry", + "displayName": "Allow Telemetry", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowtelemetry_0", + "displayName": "Security", + "description": "Security. Information that is required to help keep Windows more secure, including data about the Connected User Experience and Telemetry component settings, the Malicious Software Removal Tool, and Windows Defender.\nNote: This value is only applicable to Windows 10 Enterprise, Windows 10 Education, Windows 10 Mobile Enterprise, Windows 10 IoT Core (IoT Core), and Windows Server 2016. Using this setting on other devices is equivalent to setting the value of 1." + }, + { + "id": "device_vendor_msft_policy_config_system_allowtelemetry_1", + "displayName": "Basic", + "description": "Basic. Basic device info, including: quality-related data, app compatibility, app usage data, and data from the Security level." + }, + { + "id": "device_vendor_msft_policy_config_system_allowtelemetry_3", + "displayName": "Full", + "description": "Full. All data necessary to identify and help to fix problems, plus data from the Security, Basic, and Enhanced levels." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowupdatecomplianceprocessing", + "displayName": "Allow Update Compliance Processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowupdatecomplianceprocessing_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_system_allowupdatecomplianceprocessing_16", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowusertoresetphone", + "displayName": "Allow User To Reset Phone", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowusertoresetphone_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_system_allowusertoresetphone_1", + "displayName": "Allowed to reset to factory default settings.", + "description": "Allowed to reset to factory default settings." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_allowwufbcloudprocessing", + "displayName": "Allow WUfB Cloud Processing", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_allowwufbcloudprocessing_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_system_allowwufbcloudprocessing_8", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_bootstartdriverinitialization", + "displayName": "Boot-Start Driver Initialization Policy", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_bootstartdriverinitialization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_system_bootstartdriverinitialization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_bootstartdriverinitialization_selectdriverloadpolicy", + "displayName": "Choose the boot-start drivers that can be initialized:", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_bootstartdriverinitialization_selectdriverloadpolicy_8", + "displayName": "Good only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_system_bootstartdriverinitialization_selectdriverloadpolicy_1", + "displayName": "Good and unknown", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_system_bootstartdriverinitialization_selectdriverloadpolicy_3", + "displayName": "Good, unknown and bad but critical", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_system_bootstartdriverinitialization_selectdriverloadpolicy_7", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_configuremicrosoft365uploadendpoint", + "displayName": "Configure Microsoft 365 Upload Endpoint", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_system_configuretelemetryoptinchangenotification", + "displayName": "Configure Telemetry Opt In Change Notification", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_configuretelemetryoptinchangenotification_0", + "displayName": "Enable telemetry change notifications.", + "description": "Enable telemetry change notifications." + }, + { + "id": "device_vendor_msft_policy_config_system_configuretelemetryoptinchangenotification_1", + "displayName": "Disable telemetry change notifications.", + "description": "Disable telemetry change notifications." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_configuretelemetryoptinsettingsux", + "displayName": "Configure Telemetry Opt In Settings Ux", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_configuretelemetryoptinsettingsux_0", + "displayName": "Enable Telemetry opt-in Settings.", + "description": "Enable Telemetry opt-in Settings." + }, + { + "id": "device_vendor_msft_policy_config_system_configuretelemetryoptinsettingsux_1", + "displayName": "Disable Telemetry opt-in Settings.", + "description": "Disable Telemetry opt-in Settings." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_disabledevicedelete", + "displayName": "Disable Device Delete", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_disabledevicedelete_0", + "displayName": "Not disabled.", + "description": "Not disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_disabledevicedelete_1", + "displayName": "Disabled.", + "description": "Disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_disablediagnosticdataviewer", + "displayName": "Disable Diagnostic Data Viewer", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_disablediagnosticdataviewer_0", + "displayName": "Not disabled.", + "description": "Not disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_disablediagnosticdataviewer_1", + "displayName": "Disabled.", + "description": "Disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_disabledirectxdatabaseupdate", + "displayName": "Disable Direct X Database Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_disabledirectxdatabaseupdate_0", + "displayName": "Not disabled.", + "description": "Not disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_disabledirectxdatabaseupdate_1", + "displayName": "Disabled.", + "description": "Disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_disableenterpriseauthproxy", + "displayName": "Disable Enterprise Auth Proxy", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_disableenterpriseauthproxy_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_system_disableenterpriseauthproxy_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_disableonedrivefilesync", + "displayName": "Disable One Drive File Sync", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_disableonedrivefilesync_0", + "displayName": "Sync enabled.", + "description": "Sync enabled." + }, + { + "id": "device_vendor_msft_policy_config_system_disableonedrivefilesync_1", + "displayName": "Sync disabled.", + "description": "Sync disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_disableonesettingsdownloads", + "displayName": "Disable One Settings Downloads", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_disableonesettingsdownloads_0", + "displayName": "Not disabled.", + "description": "Not disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_disableonesettingsdownloads_1", + "displayName": "Disabled.", + "description": "Disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_disablesystemrestore", + "displayName": "Turn off System Restore", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_disablesystemrestore_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_system_disablesystemrestore_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_enableonesettingsauditing", + "displayName": "Enable One Settings Auditing", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_enableonesettingsauditing_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_enableonesettingsauditing_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_feedbackhubalwayssavediagnosticslocally", + "displayName": "Feedback Hub Always Save Diagnostics Locally", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_feedbackhubalwayssavediagnosticslocally_0", + "displayName": "False. The Feedback Hub will not always save a local copy of diagnostics that may be created when a feedback is submitted. The user will have the option to do so.", + "description": "False. The Feedback Hub will not always save a local copy of diagnostics that may be created when a feedback is submitted. The user will have the option to do so." + }, + { + "id": "device_vendor_msft_policy_config_system_feedbackhubalwayssavediagnosticslocally_1", + "displayName": "True. The Feedback Hub should always save a local copy of diagnostics that may be created when a feedback is submitted.", + "description": "True. The Feedback Hub should always save a local copy of diagnostics that may be created when a feedback is submitted." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_limitdiagnosticlogcollection", + "displayName": "Limit Diagnostic Log Collection", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_limitdiagnosticlogcollection_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_limitdiagnosticlogcollection_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_limitdumpcollection", + "displayName": "Limit Dump Collection", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_limitdumpcollection_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_limitdumpcollection_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_limitenhanceddiagnosticdatawindowsanalytics", + "displayName": "Limit Enhanced Diagnostic Data Windows Analytics", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_limitenhanceddiagnosticdatawindowsanalytics_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_system_limitenhanceddiagnosticdatawindowsanalytics_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_system_telemetryproxy", + "displayName": "Telemetry Proxy", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_system_turnofffilehistory", + "displayName": "Turn Off File History", + "options": [ + { + "id": "device_vendor_msft_policy_config_system_turnofffilehistory_0", + "displayName": "Allow file history.", + "description": "Allow file history." + }, + { + "id": "device_vendor_msft_policy_config_system_turnofffilehistory_1", + "displayName": "Turn off file history.", + "description": "Turn off file history." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurehomegrouplistenerservicestartupmode", + "displayName": "Configure Home Group Listener Service Startup Mode", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurehomegroupproviderservicestartupmode", + "displayName": "Configure Home Group Provider Service Startup Mode", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxaccessorymanagementservicestartupmode", + "displayName": "Configure Xbox Accessory Management Service Startup Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxaccessorymanagementservicestartupmode_2", + "displayName": "Automatic", + "description": "Automatic" + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxaccessorymanagementservicestartupmode_3", + "displayName": "Manual", + "description": "Manual" + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxaccessorymanagementservicestartupmode_4", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxliveauthmanagerservicestartupmode", + "displayName": "Configure Xbox Live Auth Manager Service Startup Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxliveauthmanagerservicestartupmode_2", + "displayName": "Automatic", + "description": "Automatic" + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxliveauthmanagerservicestartupmode_3", + "displayName": "Manual", + "description": "Manual" + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxliveauthmanagerservicestartupmode_4", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxlivegamesaveservicestartupmode", + "displayName": "Configure Xbox Live Game Save Service Startup Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxlivegamesaveservicestartupmode_2", + "displayName": "Automatic", + "description": "Automatic" + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxlivegamesaveservicestartupmode_3", + "displayName": "Manual", + "description": "Manual" + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxlivegamesaveservicestartupmode_4", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxlivenetworkingservicestartupmode", + "displayName": "Configure Xbox Live Networking Service Startup Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxlivenetworkingservicestartupmode_2", + "displayName": "Automatic", + "description": "Automatic" + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxlivenetworkingservicestartupmode_3", + "displayName": "Manual", + "description": "Manual" + }, + { + "id": "device_vendor_msft_policy_config_systemservices_configurexboxlivenetworkingservicestartupmode_4", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_taskmanager_allowendtask", + "displayName": "Allow End Task", + "options": [ + { + "id": "device_vendor_msft_policy_config_taskmanager_allowendtask_0", + "displayName": "Block", + "description": "Disabled. EndTask functionality is blocked in TaskManager." + }, + { + "id": "device_vendor_msft_policy_config_taskmanager_allowendtask_1", + "displayName": "Allow", + "description": "Enabled. Users can perform EndTask in TaskManager." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_taskscheduler_enablexboxgamesavetask", + "displayName": "Enable Xbox Game Save Task", + "options": [ + { + "id": "device_vendor_msft_policy_config_taskscheduler_enablexboxgamesavetask_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_taskscheduler_enablexboxgamesavetask_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions", + "displayName": "Cloud Policy Details", + "options": [ + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_enforcefirewall", + "displayName": "Enable firewall protection of Microsoft endpoints (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_enforcefirewall_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_enforcefirewall_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_payloadcloudid", + "displayName": "Cloud ID (optional): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_payloadhostnamesid", + "displayName": "Hostnames (optional): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_payloadiprangesid", + "displayName": "IP Ranges (optional): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_payloadpolicyid", + "displayName": "Policy GUID: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_payloadsubdomainsupportedhostnamesid", + "displayName": "Subdomain Supported Hostnames (optional): (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_tenantrestrictions_configuretenantrestrictions_payloadtenantid", + "displayName": "Azure AD Directory ID: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking", + "displayName": "Enable watermarking", + "options": [ + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_part_watermarkingcontent", + "displayName": "QR code embedded content (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_part_watermarkingcontent_0", + "displayName": "Connection ID", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_part_watermarkingcontent_1", + "displayName": "Device ID", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_part_watermarkingheightfactor", + "displayName": "Height of grid box in percent relative to QR code bitmap height (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_part_watermarkingopacity", + "displayName": "QR code bitmap opacity (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_part_watermarkingqrscale", + "displayName": "QR code bitmap scale factor (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1.upadtes~policy~avd_gp_node_avd_server_watermarking_part_watermarkingwidthfactor", + "displayName": "Width of grid box in percent relative to QR code bitmap width (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_connection_interval_graphics_data", + "displayName": "Enable Graphics related data logging for every connection interval", + "options": [ + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_connection_interval_graphics_data_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_connection_interval_graphics_data_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_screen_capture_protection", + "displayName": "Enable screen capture protection", + "options": [ + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_screen_capture_protection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_screen_capture_protection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_screen_capture_protection_avd_server_screen_capture_protection_level", + "displayName": "Screen Capture Protection Options (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_screen_capture_protection_avd_server_screen_capture_protection_level_1", + "displayName": " Block screen capture on client ", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_screen_capture_protection_avd_server_screen_capture_protection_level_2", + "displayName": " Block screen capture on client and server ", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_port_redirector", + "displayName": "Enable RDP Shortpath for managed networks", + "options": [ + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_port_redirector_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_port_redirector_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_port_redirector_part_udpredirectorport", + "displayName": "UDP port (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_stun_client_port_range", + "displayName": "Use port range for RDP Shortpath for unmanaged networks", + "options": [ + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_stun_client_port_range_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_stun_client_port_range_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_stun_client_port_range_part_iceclientportbase", + "displayName": "UDP port base (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_udp_stun_client_port_range_part_iceclientportrange", + "displayName": "Port pool size (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_watermarking", + "displayName": "[Deprecated] Enable watermarking", + "options": [ + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_watermarking_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_watermarking_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_watermarking_part_watermarkingheightfactor", + "displayName": "[Deprecated] Height of grid box in percent relative to QR code bitmap height (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_watermarking_part_watermarkingopacity", + "displayName": "[Deprecated] QR code bitmap opacity (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_watermarking_part_watermarkingqrscale", + "displayName": "[Deprecated] QR code bitmap scale factor (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_terminalserver-avdv1~policy~avd_gp_node_avd_server_watermarking_part_watermarkingwidthfactor", + "displayName": "[Deprecated] Width of grid box in percent relative to QR code bitmap width (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowhardwarekeyboardtextsuggestions", + "displayName": "Allow Hardware Keyboard Text Suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowhardwarekeyboardtextsuggestions_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowhardwarekeyboardtextsuggestions_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowimelogging", + "displayName": "Allow IME Logging", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowimelogging_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowimelogging_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowimenetworkaccess", + "displayName": "Allow IME Network Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowimenetworkaccess_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowimenetworkaccess_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowinputpanel", + "displayName": "Allow Input Panel", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowinputpanel_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowinputpanel_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseimesurrogatepaircharacters", + "displayName": "Allow Japanese IME Surrogate Pair Characters", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseimesurrogatepaircharacters_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseimesurrogatepaircharacters_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseivscharacters", + "displayName": "Allow Japanese IVS Characters", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseivscharacters_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseivscharacters_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowjapanesenonpublishingstandardglyph", + "displayName": "Allow Japanese Non Publishing Standard Glyph", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowjapanesenonpublishingstandardglyph_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowjapanesenonpublishingstandardglyph_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseuserdictionary", + "displayName": "Allow Japanese User Dictionary", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseuserdictionary_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowjapaneseuserdictionary_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowkeyboardtextsuggestions", + "displayName": "Allow Keyboard Text Suggestions", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowkeyboardtextsuggestions_0", + "displayName": "Block", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowkeyboardtextsuggestions_1", + "displayName": "Allow", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowlanguagefeaturesuninstall", + "displayName": "Allow Language Features Uninstall", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowlanguagefeaturesuninstall_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowlanguagefeaturesuninstall_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowlinguisticdatacollection", + "displayName": "Allow Linguistic Data Collection", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_allowlinguisticdatacollection_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_textinput_allowlinguisticdatacollection_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_configurejapaneseimeversion", + "displayName": "Configure Japanese IME Version", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_configurejapaneseimeversion_0", + "displayName": "Allows you to configure which Microsoft Japanese IME version to use. The new Microsoft Japanese IME version is configured by default.", + "description": "Allows you to configure which Microsoft Japanese IME version to use. The new Microsoft Japanese IME version is configured by default." + }, + { + "id": "device_vendor_msft_policy_config_textinput_configurejapaneseimeversion_1", + "displayName": "Does not allow you to configure which Microsoft Japanese IME version to use. The previous version of Microsoft Japanese IME is always selected.", + "description": "Does not allow you to configure which Microsoft Japanese IME version to use. The previous version of Microsoft Japanese IME is always selected." + }, + { + "id": "device_vendor_msft_policy_config_textinput_configurejapaneseimeversion_2", + "displayName": "Does not allow you to configure which Microsoft Japanese IME version to use. The new Microsoft Japanese IME version is always selected.", + "description": "Does not allow you to configure which Microsoft Japanese IME version to use. The new Microsoft Japanese IME version is always selected." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_configuresimplifiedchineseimeversion", + "displayName": "Configure Simplified Chinese IME Version", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_configuresimplifiedchineseimeversion_0", + "displayName": "Allows you to configure which Microsoft Simplified Chinese IME version to use. The new Microsoft Simplified Chinese IME version is configured by default.", + "description": "Allows you to configure which Microsoft Simplified Chinese IME version to use. The new Microsoft Simplified Chinese IME version is configured by default." + }, + { + "id": "device_vendor_msft_policy_config_textinput_configuresimplifiedchineseimeversion_1", + "displayName": "Does not allow you to configure which Microsoft Simplified Chinese IME version to use. The previous version of Microsoft Simplified Chinese IME is always selected.", + "description": "Does not allow you to configure which Microsoft Simplified Chinese IME version to use. The previous version of Microsoft Simplified Chinese IME is always selected." + }, + { + "id": "device_vendor_msft_policy_config_textinput_configuresimplifiedchineseimeversion_2", + "displayName": "Does not allow you to configure which Microsoft Simplified Chinese IME version to use. The new Microsoft Simplified Chinese IME version is always selected.", + "description": "Does not allow you to configure which Microsoft Simplified Chinese IME version to use. The new Microsoft Simplified Chinese IME version is always selected." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_configuretraditionalchineseimeversion", + "displayName": "Configure Traditional Chinese IME Version", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_configuretraditionalchineseimeversion_0", + "displayName": "Allows you to configure which Microsoft Traditional Chinese IME version to use. The new Microsoft Traditional Chinese IME version is configured by default.", + "description": "Allows you to configure which Microsoft Traditional Chinese IME version to use. The new Microsoft Traditional Chinese IME version is configured by default." + }, + { + "id": "device_vendor_msft_policy_config_textinput_configuretraditionalchineseimeversion_1", + "displayName": "Does not allow you to configure which Microsoft Traditional Chinese IME version to use. The previous version of Microsoft Traditional Chinese IME is always selected.", + "description": "Does not allow you to configure which Microsoft Traditional Chinese IME version to use. The previous version of Microsoft Traditional Chinese IME is always selected." + }, + { + "id": "device_vendor_msft_policy_config_textinput_configuretraditionalchineseimeversion_2", + "displayName": "Does not allow you to configure which Microsoft Traditional Chinese IME version to use. The new Microsoft Traditional Chinese IME version is always selected.", + "description": "Does not allow you to configure which Microsoft Traditional Chinese IME version to use. The new Microsoft Traditional Chinese IME version is always selected." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_enabletouchkeyboardautoinvokeindesktopmode", + "displayName": "Enable Touch Keyboard Auto Invoke In Desktop Mode", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_enabletouchkeyboardautoinvokeindesktopmode_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_textinput_enabletouchkeyboardautoinvokeindesktopmode_1", + "displayName": "Enabled", + "description": "Enabled." + }, + { + "id": "device_vendor_msft_policy_config_textinput_enabletouchkeyboardautoinvokeindesktopmode_2", + "displayName": "Always.", + "description": "Always." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptjis0208", + "displayName": "Exclude Japanese IME Except JIS0208", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptjis0208_0", + "displayName": "No characters are filtered.", + "description": "No characters are filtered." + }, + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptjis0208_1", + "displayName": "All characters except JIS0208 are filtered.", + "description": "All characters except JIS0208 are filtered." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptjis0208andeudc", + "displayName": "Exclude Japanese IME Except JIS0208and EUDC", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptjis0208andeudc_0", + "displayName": "No characters are filtered.", + "description": "No characters are filtered." + }, + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptjis0208andeudc_1", + "displayName": "All characters except JIS0208 and EUDC are filtered.", + "description": "All characters except JIS0208 and EUDC are filtered." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptshiftjis", + "displayName": "Exclude Japanese IME Except Shift JIS", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptshiftjis_0", + "displayName": "No characters are filtered.", + "description": "No characters are filtered." + }, + { + "id": "device_vendor_msft_policy_config_textinput_excludejapaneseimeexceptshiftjis_1", + "displayName": "All characters except ShiftJIS are filtered.", + "description": "All characters except ShiftJIS are filtered." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_forcetouchkeyboarddockedstate", + "displayName": "Force Touch Keyboard Docked State", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_forcetouchkeyboarddockedstate_0", + "displayName": "The OS determines when it's most appropriate to be available.", + "description": "The OS determines when it's most appropriate to be available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_forcetouchkeyboarddockedstate_1", + "displayName": "Touch keyboard is always docked.", + "description": "Touch keyboard is always docked." + }, + { + "id": "device_vendor_msft_policy_config_textinput_forcetouchkeyboarddockedstate_2", + "displayName": "Touch keyboard docking can be changed.", + "description": "Touch keyboard docking can be changed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboarddictationbuttonavailability", + "displayName": "Touch Keyboard Dictation Button Availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboarddictationbuttonavailability_0", + "displayName": "The OS determines when it's most appropriate to be available.", + "description": "The OS determines when it's most appropriate to be available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboarddictationbuttonavailability_1", + "displayName": "Dictation button on the keyboard is always available.", + "description": "Dictation button on the keyboard is always available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboarddictationbuttonavailability_2", + "displayName": "Dictation button on the keyboard is always disabled.", + "description": "Dictation button on the keyboard is always disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardemojibuttonavailability", + "displayName": "Touch Keyboard Emoji Button Availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardemojibuttonavailability_0", + "displayName": "The OS determines when it's most appropriate to be available.", + "description": "The OS determines when it's most appropriate to be available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardemojibuttonavailability_1", + "displayName": "Emoji button on keyboard is always available.", + "description": "Emoji button on keyboard is always available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardemojibuttonavailability_2", + "displayName": "Emoji button on keyboard is always disabled.", + "description": "Emoji button on keyboard is always disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardfullmodeavailability", + "displayName": "Touch Keyboard Full Mode Availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardfullmodeavailability_0", + "displayName": "The OS determines when it's most appropriate to be available.", + "description": "The OS determines when it's most appropriate to be available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardfullmodeavailability_1", + "displayName": "Full keyboard is always available.", + "description": "Full keyboard is always available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardfullmodeavailability_2", + "displayName": "Full keyboard is always disabled.", + "description": "Full keyboard is always disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardhandwritingmodeavailability", + "displayName": "Touch Keyboard Handwriting Mode Availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardhandwritingmodeavailability_0", + "displayName": "The OS determines when it's most appropriate to be available.", + "description": "The OS determines when it's most appropriate to be available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardhandwritingmodeavailability_1", + "displayName": "Handwriting input panel is always available.", + "description": "Handwriting input panel is always available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardhandwritingmodeavailability_2", + "displayName": "Handwriting input panel is always disabled.", + "description": "Handwriting input panel is always disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardnarrowmodeavailability", + "displayName": "Touch Keyboard Narrow Mode Availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardnarrowmodeavailability_0", + "displayName": "The OS determines when it's most appropriate to be available.", + "description": "The OS determines when it's most appropriate to be available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardnarrowmodeavailability_1", + "displayName": "Narrow keyboard is always available.", + "description": "Narrow keyboard is always available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardnarrowmodeavailability_2", + "displayName": "Narrow keyboard is always disabled.", + "description": "Narrow keyboard is always disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardsplitmodeavailability", + "displayName": "Touch Keyboard Split Mode Availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardsplitmodeavailability_0", + "displayName": "The OS determines when it's most appropriate to be available.", + "description": "The OS determines when it's most appropriate to be available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardsplitmodeavailability_1", + "displayName": "Split keyboard is always available.", + "description": "Split keyboard is always available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardsplitmodeavailability_2", + "displayName": "Split keyboard is always disabled.", + "description": "Split keyboard is always disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardwidemodeavailability", + "displayName": "Touch Keyboard Wide Mode Availability", + "options": [ + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardwidemodeavailability_0", + "displayName": "The OS determines when it's most appropriate to be available.", + "description": "The OS determines when it's most appropriate to be available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardwidemodeavailability_1", + "displayName": "Wide keyboard is always available.", + "description": "Wide keyboard is always available." + }, + { + "id": "device_vendor_msft_policy_config_textinput_touchkeyboardwidemodeavailability_2", + "displayName": "Wide keyboard is always disabled.", + "description": "Wide keyboard is always disabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_allowset24hourclock", + "displayName": "Allow Set24 Hour Clock", + "options": [ + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_allowset24hourclock_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_allowset24hourclock_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_blockcleanupofunusedpreinstalledlangpacks", + "displayName": "Block Cleanup Of Unused Preinstalled Lang Packs", + "options": [ + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_blockcleanupofunusedpreinstalledlangpacks_0", + "displayName": "Block", + "description": "Not blocked." + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_blockcleanupofunusedpreinstalledlangpacks_1", + "displayName": "Allow", + "description": "Blocked." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_configuretimezone", + "displayName": "Configure Time Zone", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_machineuilanguageoverwrite", + "displayName": "Machine UI Language Overwrite", + "options": [ + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_machineuilanguageoverwrite_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_machineuilanguageoverwrite_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_restrictlanguagepacksandfeaturesinstall", + "displayName": "Restrict Language Packs And Features Install", + "options": [ + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_restrictlanguagepacksandfeaturesinstall_0", + "displayName": "Disabled", + "description": "Not restricted." + }, + { + "id": "device_vendor_msft_policy_config_timelanguagesettings_restrictlanguagepacksandfeaturesinstall_1", + "displayName": "Enabled", + "description": "Restricted." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_troubleshooting_allowrecommendations", + "displayName": "Allow Recommendations", + "options": [ + { + "id": "device_vendor_msft_policy_config_troubleshooting_allowrecommendations_0", + "displayName": "Turn this feature off.", + "description": "Turn this feature off." + }, + { + "id": "device_vendor_msft_policy_config_troubleshooting_allowrecommendations_1", + "displayName": "Turn this feature off but still apply critical troubleshooting.", + "description": "Turn this feature off but still apply critical troubleshooting." + }, + { + "id": "device_vendor_msft_policy_config_troubleshooting_allowrecommendations_2", + "displayName": "Notify users when recommended troubleshooting is available, then allow the user to run or ignore it.", + "description": "Notify users when recommended troubleshooting is available, then allow the user to run or ignore it." + }, + { + "id": "device_vendor_msft_policy_config_troubleshooting_allowrecommendations_3", + "displayName": "Run recommended troubleshooting automatically and notify the user after it's been successfully run.", + "description": "Run recommended troubleshooting automatically and notify the user after it's been successfully run." + }, + { + "id": "device_vendor_msft_policy_config_troubleshooting_allowrecommendations_4", + "displayName": "Run recommended troubleshooting automatically without notifying the user.", + "description": "Run recommended troubleshooting automatically without notifying the user." + }, + { + "id": "device_vendor_msft_policy_config_troubleshooting_allowrecommendations_5", + "displayName": "Allow the user to choose their own recommended troubleshooting settings.", + "description": "Allow the user to choose their own recommended troubleshooting settings." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_activehoursend", + "displayName": "Active Hours End", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_activehoursmaxrange", + "displayName": "Active Hours Max Range", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_activehoursstart", + "displayName": "Active Hours Start", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_allowautoupdate", + "displayName": "Allow Auto Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_allowautoupdate_0", + "displayName": "Notify the user before downloading the update. This policy is used by the enterprise who wants to enable the end-users to manage data usage. With this option users are notified when there are updates that apply to the device and are ready for download. Users can download and install the updates from the Windows Update control panel.", + "description": "Notify the user before downloading the update. This policy is used by the enterprise who wants to enable the end-users to manage data usage. With this option users are notified when there are updates that apply to the device and are ready for download. Users can download and install the updates from the Windows Update control panel." + }, + { + "id": "device_vendor_msft_policy_config_update_allowautoupdate_1", + "displayName": "Auto install the update and then notify the user to schedule a device restart. Updates are downloaded automatically on non-metered networks and installed during \"Automatic Maintenance\" when the device is not in use and is not running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates immediately. If the installation requires a restart, the end-user is prompted to schedule the restart time. The end-user has up to seven days to schedule the restart and after that, a restart of the device is forced. Enabling the end-user to control the start time reduces the risk of accidental data loss caused by applications that do not shutdown properly on restart.", + "description": "Auto install the update and then notify the user to schedule a device restart. Updates are downloaded automatically on non-metered networks and installed during \"Automatic Maintenance\" when the device is not in use and is not running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates immediately. If the installation requires a restart, the end-user is prompted to schedule the restart time. The end-user has up to seven days to schedule the restart and after that, a restart of the device is forced. Enabling the end-user to control the start time reduces the risk of accidental data loss caused by applications that do not shutdown properly on restart." + }, + { + "id": "device_vendor_msft_policy_config_update_allowautoupdate_2", + "displayName": "Auto install and restart. Updates are downloaded automatically on non-metered networks and installed during \"Automatic Maintenance\" when the device is not in use and is not running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates right away. If a restart is required, then the device is automatically restarted when the device is not actively being used. This is the default behavior for unmanaged devices. Devices are updated quickly, but it increases the risk of accidental data loss caused by an application that does not shutdown properly on restart.", + "description": "Auto install and restart. Updates are downloaded automatically on non-metered networks and installed during \"Automatic Maintenance\" when the device is not in use and is not running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates right away. If a restart is required, then the device is automatically restarted when the device is not actively being used. This is the default behavior for unmanaged devices. Devices are updated quickly, but it increases the risk of accidental data loss caused by an application that does not shutdown properly on restart." + }, + { + "id": "device_vendor_msft_policy_config_update_allowautoupdate_3", + "displayName": "Auto install and restart at a specified time. The IT specifies the installation day and time. If no day and time are specified, the default is 3 AM daily. Automatic installation happens at this time and device restart happens after a 15-minute countdown. If the user is logged in when Windows is ready to restart, the user can interrupt the 15-minute countdown to delay the restart.", + "description": "Auto install and restart at a specified time. The IT specifies the installation day and time. If no day and time are specified, the default is 3 AM daily. Automatic installation happens at this time and device restart happens after a 15-minute countdown. If the user is logged in when Windows is ready to restart, the user can interrupt the 15-minute countdown to delay the restart." + }, + { + "id": "device_vendor_msft_policy_config_update_allowautoupdate_4", + "displayName": "Auto install and restart without end-user control. Updates are downloaded automatically on non-metered networks and installed during \"Automatic Maintenance\" when the device is not in use and is not running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates right away. If a restart is required, then the device is automatically restarted when the device is not actively being used. This setting option also sets the end-user control panel to read-only.", + "description": "Auto install and restart without end-user control. Updates are downloaded automatically on non-metered networks and installed during \"Automatic Maintenance\" when the device is not in use and is not running on battery power. If automatic maintenance is unable to install updates for two days, Windows Update will install updates right away. If a restart is required, then the device is automatically restarted when the device is not actively being used. This setting option also sets the end-user control panel to read-only." + }, + { + "id": "device_vendor_msft_policy_config_update_allowautoupdate_5", + "displayName": "Turn off automatic updates.", + "description": "Turn off automatic updates." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_allowautowindowsupdatedownloadovermeterednetwork", + "displayName": "Allow Auto Windows Update Download Over Metered Network", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_allowautowindowsupdatedownloadovermeterednetwork_0", + "displayName": "Not allowed", + "description": "Not allowed" + }, + { + "id": "device_vendor_msft_policy_config_update_allowautowindowsupdatedownloadovermeterednetwork_1", + "displayName": "Allowed", + "description": "Allowed" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_allowmuupdateservice", + "displayName": "Allow MU Update Service", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_allowmuupdateservice_0", + "displayName": "Not allowed or not configured.", + "description": "Not allowed or not configured." + }, + { + "id": "device_vendor_msft_policy_config_update_allowmuupdateservice_1", + "displayName": "Allowed. Accepts updates received through Microsoft Update.", + "description": "Allowed. Accepts updates received through Microsoft Update." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_allownonmicrosoftsignedupdate", + "displayName": "Allow Non Microsoft Signed Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_allownonmicrosoftsignedupdate_0", + "displayName": "Block", + "description": "Not allowed or not configured. Updates from an intranet Microsoft update service location must be signed by Microsoft." + }, + { + "id": "device_vendor_msft_policy_config_update_allownonmicrosoftsignedupdate_1", + "displayName": "Allow", + "description": "Allowed. Accepts updates received through an intranet Microsoft update service location, if they are signed by a certificate found in the 'Trusted Publishers' certificate store of the local computer." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_allowoptionalcontent", + "displayName": "Allow Optional Content", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_allowoptionalcontent_0", + "displayName": "Don't receive optional updates", + "description": "Don't receive optional updates" + }, + { + "id": "device_vendor_msft_policy_config_update_allowoptionalcontent_1", + "displayName": "Automatically receive optional updates (including CFRs)", + "description": "Automatically receive optional updates (including CFRs)" + }, + { + "id": "device_vendor_msft_policy_config_update_allowoptionalcontent_2", + "displayName": "Automatically receive optional updates", + "description": "Automatically receive optional updates" + }, + { + "id": "device_vendor_msft_policy_config_update_allowoptionalcontent_3", + "displayName": "Users can select which optional updates to receive", + "description": "Users can select which optional updates to receive" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_allowtemporaryenterprisefeaturecontrol", + "displayName": "Allow Temporary Enterprise Feature Control", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_allowtemporaryenterprisefeaturecontrol_0", + "displayName": "Not allowed", + "description": "Not allowed" + }, + { + "id": "device_vendor_msft_policy_config_update_allowtemporaryenterprisefeaturecontrol_1", + "displayName": "Allowed", + "description": "Allowed" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_allowupdateservice", + "displayName": "Allow Update Service", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_allowupdateservice_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_update_allowupdateservice_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_automaticmaintenancewakeup", + "displayName": "Automatic Maintenance Wake Up", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_automaticmaintenancewakeup_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_update_automaticmaintenancewakeup_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartdeadlineperiodindays", + "displayName": "Auto Restart Deadline Period In Days", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartdeadlineperiodindaysforfeatureupdates", + "displayName": "Auto Restart Deadline Period In Days For Feature Updates", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartnotificationschedule", + "displayName": "[Deprecated] Auto Restart Notification Schedule", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartnotificationschedule_v2", + "displayName": "Auto Restart Notification Schedule", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_autorestartnotificationschedule_15", + "displayName": "15 Minutes", + "description": "15 Minutes" + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartnotificationschedule_30", + "displayName": "30 Minutes", + "description": "30 Minutes" + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartnotificationschedule_60", + "displayName": "60 Minutes", + "description": "60 Minutes" + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartnotificationschedule_120", + "displayName": "120 Minutes", + "description": "120 Minutes" + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartnotificationschedule_240", + "displayName": "240 Minutes", + "description": "240 Minutes" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartrequirednotificationdismissal", + "displayName": "Auto Restart Required Notification Dismissal", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_autorestartrequirednotificationdismissal_1", + "displayName": "Auto Dismissal.", + "description": "Auto Dismissal." + }, + { + "id": "device_vendor_msft_policy_config_update_autorestartrequirednotificationdismissal_2", + "displayName": "User Dismissal.", + "description": "User Dismissal." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_branchreadinesslevel", + "displayName": "Branch Readiness Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_branchreadinesslevel_2", + "displayName": "{0x2} - Windows Insider build - Fast (added in Windows 10, version 1709)", + "description": "{0x2} - Windows Insider build - Fast (added in Windows 10, version 1709)" + }, + { + "id": "device_vendor_msft_policy_config_update_branchreadinesslevel_4", + "displayName": "{0x4} - Windows Insider build - Slow (added in Windows 10, version 1709)", + "description": "{0x4} - Windows Insider build - Slow (added in Windows 10, version 1709)" + }, + { + "id": "device_vendor_msft_policy_config_update_branchreadinesslevel_8", + "displayName": "{0x8} - Release Windows Insider build (added in Windows 10, version 1709)", + "description": "{0x8} - Release Windows Insider build (added in Windows 10, version 1709)" + }, + { + "id": "device_vendor_msft_policy_config_update_branchreadinesslevel_16", + "displayName": "{0x10} - Semi-annual Channel (Targeted). Device gets all applicable feature updates from Semi-annual Channel (Targeted).", + "description": "{0x10} - Semi-annual Channel (Targeted). Device gets all applicable feature updates from Semi-annual Channel (Targeted)." + }, + { + "id": "device_vendor_msft_policy_config_update_branchreadinesslevel_32", + "displayName": "2 {0x20} - Semi-annual Channel. Device gets feature updates from Semi-annual Channel. (*Only applicable to releases prior to 1903, for all releases 1903 and after the Semi-annual Channel and Semi-annual Channel (Targeted) into a single Semi-annual Channel with a value of 16)", + "description": "2 {0x20} - Semi-annual Channel. Device gets feature updates from Semi-annual Channel. (*Only applicable to releases prior to 1903, for all releases 1903 and after the Semi-annual Channel and Semi-annual Channel (Targeted) into a single Semi-annual Channel with a value of 16)" + }, + { + "id": "device_vendor_msft_policy_config_update_branchreadinesslevel_64", + "displayName": "{0x40} - Release Preview of Quality Updates Only.", + "description": "{0x40} - Release Preview of Quality Updates Only." + }, + { + "id": "device_vendor_msft_policy_config_update_branchreadinesslevel_128", + "displayName": "{0x80} - Canary Channel.", + "description": "{0x80} - Canary Channel." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlineforfeatureupdates", + "displayName": "Configure Deadline For Feature Updates", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlineforqualityupdates", + "displayName": "Quality Update Deadline Period (Days)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinegraceperiod", + "displayName": "Configure Deadline Grace Period", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinegraceperiodforfeatureupdates", + "displayName": "Configure Deadline Grace Period For Feature Updates", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautoreboot", + "displayName": "Configure Deadline No Auto Reboot", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautoreboot_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautoreboot_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautorebootforfeatureupdates", + "displayName": "Configure Deadline No Auto Reboot For Feature Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautorebootforfeatureupdates_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautorebootforfeatureupdates_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautorebootforqualityupdates", + "displayName": "Configure Deadline No Auto Reboot For Quality Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautorebootforqualityupdates_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_update_configuredeadlinenoautorebootforqualityupdates_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_configurefeatureupdateuninstallperiod", + "displayName": "Configure Feature Update Uninstall Period", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_deferfeatureupdatesperiodindays", + "displayName": "Defer Feature Updates Period In Days", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_deferqualityupdatesperiodindays", + "displayName": "Defer Quality Updates Period (Days)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_deferupdateperiod", + "displayName": "Defer Update Period", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_deferupgradeperiod", + "displayName": "Defer Upgrade Period", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_detectionfrequency", + "displayName": "Detection Frequency", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_disabledualscan", + "displayName": "Disable Dual Scan", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_disabledualscan_0", + "displayName": "allow scan against Windows Update", + "description": "allow scan against Windows Update" + }, + { + "id": "device_vendor_msft_policy_config_update_disabledualscan_1", + "displayName": "do not allow update deferral policies to cause scans against Windows Update", + "description": "do not allow update deferral policies to cause scans against Windows Update" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_disablewufbsafeguards_v2", + "displayName": "Disable WUfB Safeguards", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_disablewufbsafeguards_0", + "displayName": "Safeguards are enabled and devices may be blocked for upgrades until the safeguard is cleared.", + "description": "Safeguards are enabled and devices may be blocked for upgrades until the safeguard is cleared." + }, + { + "id": "device_vendor_msft_policy_config_update_disablewufbsafeguards_1", + "displayName": "Safeguards are not enabled and upgrades will be deployed without blocking on safeguards.", + "description": "Safeguards are not enabled and upgrades will be deployed without blocking on safeguards." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_donotenforceenterprisetlscertpinningforupdatedetection", + "displayName": "Do Not Enforce Enterprise TLS Cert Pinning For Update Detection", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_donotenforceenterprisetlscertpinningforupdatedetection_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_update_donotenforceenterprisetlscertpinningforupdatedetection_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_engagedrestartdeadline", + "displayName": "Engaged Restart Deadline", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_engagedrestartdeadlineforfeatureupdates", + "displayName": "Engaged Restart Deadline For Feature Updates", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_engagedrestartsnoozeschedule", + "displayName": "Engaged Restart Snooze Schedule", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_engagedrestartsnoozescheduleforfeatureupdates", + "displayName": "Engaged Restart Snooze Schedule For Feature Updates", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_engagedrestarttransitionschedule", + "displayName": "Engaged Restart Transition Schedule", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_engagedrestarttransitionscheduleforfeatureupdates", + "displayName": "Engaged Restart Transition Schedule For Feature Updates", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_excludewudriversinqualityupdate", + "displayName": "Exclude WU Drivers In Quality Update", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_excludewudriversinqualityupdate_0", + "displayName": "Allow Windows Update drivers.", + "description": "Allow Windows Update drivers." + }, + { + "id": "device_vendor_msft_policy_config_update_excludewudriversinqualityupdate_1", + "displayName": "Exclude Windows Update drivers.", + "description": "Exclude Windows Update drivers." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_fillemptycontenturls", + "displayName": "Fill Empty Content Urls", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_fillemptycontenturls_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_update_fillemptycontenturls_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_ignoremoappdownloadlimit", + "displayName": "Ignore MO App Download Limit", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_ignoremoappdownloadlimit_0", + "displayName": "Disabled", + "description": "Do not ignore MO download limit for apps and their updates." + }, + { + "id": "device_vendor_msft_policy_config_update_ignoremoappdownloadlimit_1", + "displayName": "Enabled", + "description": "Ignore MO download limit (allow unlimited downloading) for apps and their updates." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_ignoremoupdatedownloadlimit", + "displayName": "Ignore MO Update Download Limit", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_ignoremoupdatedownloadlimit_0", + "displayName": "Disabled", + "description": "Do not ignore MO download limit for OS updates." + }, + { + "id": "device_vendor_msft_policy_config_update_ignoremoupdatedownloadlimit_1", + "displayName": "Enabled", + "description": "Ignore MO download limit (allow unlimited downloading) for OS updates." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_managepreviewbuilds", + "displayName": "Manage Preview Builds", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_managepreviewbuilds_0", + "displayName": "Disable Preview builds", + "description": "Disable Preview builds" + }, + { + "id": "device_vendor_msft_policy_config_update_managepreviewbuilds_1", + "displayName": "Disable Preview builds once the next release is public", + "description": "Disable Preview builds once the next release is public" + }, + { + "id": "device_vendor_msft_policy_config_update_managepreviewbuilds_2", + "displayName": "Enable Preview builds", + "description": "Enable Preview builds" + }, + { + "id": "device_vendor_msft_policy_config_update_managepreviewbuilds_3", + "displayName": "Preview builds is left to user selection", + "description": "Preview builds is left to user selection" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_noupdatenotificationsduringactivehours", + "displayName": "No Update Notifications During Active Hours", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_noupdatenotificationsduringactivehours_0", + "displayName": "Disabled.", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_update_noupdatenotificationsduringactivehours_1", + "displayName": "Enabled.", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_pausedeferrals", + "displayName": "Pause Deferrals", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_pausedeferrals_0", + "displayName": "Deferrals are not paused.", + "description": "Deferrals are not paused." + }, + { + "id": "device_vendor_msft_policy_config_update_pausedeferrals_1", + "displayName": "Deferrals are paused.", + "description": "Deferrals are paused." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_pausefeatureupdates", + "displayName": "Pause Feature Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_pausefeatureupdates_0", + "displayName": "Feature Updates are not paused.", + "description": "Feature Updates are not paused." + }, + { + "id": "device_vendor_msft_policy_config_update_pausefeatureupdates_1", + "displayName": "Feature Updates are paused for 60 days or until value set to back to 0, whichever is sooner.", + "description": "Feature Updates are paused for 60 days or until value set to back to 0, whichever is sooner." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_pausefeatureupdatesstarttime", + "displayName": "Pause Feature Updates Start Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_pausequalityupdates", + "displayName": "Pause Quality Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_pausequalityupdates_0", + "displayName": "Quality Updates are not paused.", + "description": "Quality Updates are not paused." + }, + { + "id": "device_vendor_msft_policy_config_update_pausequalityupdates_1", + "displayName": "Quality Updates are paused for 35 days or until value set back to 0, whichever is sooner.", + "description": "Quality Updates are paused for 35 days or until value set back to 0, whichever is sooner." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_pausequalityupdatesstarttime", + "displayName": "Pause Quality Updates Start Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_phoneupdaterestrictions", + "displayName": "Phone Update Restrictions", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_productversion", + "displayName": "Product Version", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_requiredeferupgrade", + "displayName": "Require Defer Upgrade", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_requiredeferupgrade_0", + "displayName": "User gets upgrades from Semi-Annual Channel (Targeted).", + "description": "User gets upgrades from Semi-Annual Channel (Targeted)." + }, + { + "id": "device_vendor_msft_policy_config_update_requiredeferupgrade_1", + "displayName": "User gets upgrades from Semi-Annual Channel.", + "description": "User gets upgrades from Semi-Annual Channel." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_requireupdateapproval", + "displayName": "Require Update Approval", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_requireupdateapproval_0", + "displayName": "Not configured. The device installs all applicable updates.", + "description": "Not configured. The device installs all applicable updates." + }, + { + "id": "device_vendor_msft_policy_config_update_requireupdateapproval_1", + "displayName": "The device only installs updates that are both applicable and on the Approved Updates list. Set this policy to 1 if IT wants to control the deployment of updates on devices, such as when testing is required prior to deployment.", + "description": "The device only installs updates that are both applicable and on the Approved Updates list. Set this policy to 1 if IT wants to control the deployment of updates on devices, such as when testing is required prior to deployment." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday", + "displayName": "Scheduled Install Day", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday_0", + "displayName": "Every day", + "description": "Every day" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday_1", + "displayName": "Sunday", + "description": "Sunday" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday_2", + "displayName": "Monday", + "description": "Monday" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday_3", + "displayName": "Tuesday", + "description": "Tuesday" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday_4", + "displayName": "Wednesday", + "description": "Wednesday" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday_5", + "displayName": "Thursday", + "description": "Thursday" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday_6", + "displayName": "Friday", + "description": "Friday" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallday_7", + "displayName": "Saturday", + "description": "Saturday" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstalleveryweek", + "displayName": "Scheduled Install Every Week", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_scheduledinstalleveryweek_0", + "displayName": "no update in the schedule", + "description": "no update in the schedule" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstalleveryweek_1", + "displayName": "update is scheduled every week", + "description": "update is scheduled every week" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallfirstweek", + "displayName": "Scheduled Install First Week", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallfirstweek_0", + "displayName": "no update in the schedule", + "description": "no update in the schedule" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallfirstweek_1", + "displayName": "update is scheduled every first week of the month", + "description": "update is scheduled every first week of the month" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallfourthweek", + "displayName": "Scheduled Install Fourth Week", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallfourthweek_0", + "displayName": "no update in the schedule", + "description": "no update in the schedule" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallfourthweek_1", + "displayName": "update is scheduled every fourth week of the month", + "description": "update is scheduled every fourth week of the month" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallsecondweek", + "displayName": "Scheduled Install Second Week", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallsecondweek_0", + "displayName": "no update in the schedule", + "description": "no update in the schedule" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallsecondweek_1", + "displayName": "update is scheduled every second week of the month", + "description": "update is scheduled every second week of the month" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallthirdweek", + "displayName": "Scheduled Install Third Week", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallthirdweek_0", + "displayName": "no update in the schedule", + "description": "no update in the schedule" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstallthirdweek_1", + "displayName": "update is scheduled every third week of the month", + "description": "update is scheduled every third week of the month" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_scheduledinstalltime", + "displayName": "Scheduled Install Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_scheduleimminentrestartwarning", + "displayName": "[Deprecated] Schedule Imminent Restart Warning", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_scheduleimminentrestartwarning_v2", + "displayName": "Schedule Imminent Restart Warning", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_scheduleimminentrestartwarning_15", + "displayName": "15 Minutes", + "description": "15 Minutes" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduleimminentrestartwarning_30", + "displayName": "30 Minutes", + "description": "30 Minutes" + }, + { + "id": "device_vendor_msft_policy_config_update_scheduleimminentrestartwarning_60", + "displayName": "60 Minutes", + "description": "60 Minutes" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_schedulerestartwarning", + "displayName": "Schedule Restart Warning", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_schedulerestartwarning_2", + "displayName": "2 Hours", + "description": "2 Hours" + }, + { + "id": "device_vendor_msft_policy_config_update_schedulerestartwarning_4", + "displayName": "4 Hours", + "description": "4 Hours" + }, + { + "id": "device_vendor_msft_policy_config_update_schedulerestartwarning_8", + "displayName": "8 Hours", + "description": "8 Hours" + }, + { + "id": "device_vendor_msft_policy_config_update_schedulerestartwarning_12", + "displayName": "12 Hours", + "description": "12 Hours" + }, + { + "id": "device_vendor_msft_policy_config_update_schedulerestartwarning_24", + "displayName": "24 Hours", + "description": "24 Hours" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setautorestartnotificationdisable", + "displayName": "Set Auto Restart Notification Disable", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setautorestartnotificationdisable_0", + "displayName": "Enabled", + "description": "Enabled" + }, + { + "id": "device_vendor_msft_policy_config_update_setautorestartnotificationdisable_1", + "displayName": "Disabled", + "description": "Disabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setdisablepauseuxaccess", + "displayName": "Block \"Pause Updates\" ability", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setdisablepauseuxaccess_1", + "displayName": "Block", + "description": "Enable" + }, + { + "id": "device_vendor_msft_policy_config_update_setdisablepauseuxaccess_0", + "displayName": "Allow", + "description": "Disable" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setdisableuxwuaccess", + "displayName": "Set Disable UXWU Access", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setdisableuxwuaccess_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_update_setdisableuxwuaccess_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setedurestart", + "displayName": "Set EDU Restart", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setedurestart_0", + "displayName": "not configured", + "description": "not configured" + }, + { + "id": "device_vendor_msft_policy_config_update_setedurestart_1", + "displayName": "configured", + "description": "configured" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourcefordriverupdates", + "displayName": "Set Policy Driven Update Source For Driver Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourcefordriverupdates_0", + "displayName": "Detect, download and deploy Driver Updates from Windows Update", + "description": "Detect, download and deploy Driver Updates from Windows Update" + }, + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourcefordriverupdates_1", + "displayName": "Detect, download and deploy Driver Updates from Windows Server Update Services (WSUS)", + "description": "Detect, download and deploy Driver Updates from Windows Server Update Services (WSUS)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforfeatureupdates", + "displayName": "Set Policy Driven Update Source For Feature Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforfeatureupdates_0", + "displayName": "Detect, download and deploy Feature Updates from Windows Update", + "description": "Detect, download and deploy Feature Updates from Windows Update" + }, + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforfeatureupdates_1", + "displayName": "Detect, download and deploy Feature Updates from Windows Server Update Services (WSUS)", + "description": "Detect, download and deploy Feature Updates from Windows Server Update Services (WSUS)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforotherupdates", + "displayName": "Set Policy Driven Update Source For Other Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforotherupdates_0", + "displayName": "Detect, download and deploy other Updates from Windows Update", + "description": "Detect, download and deploy other Updates from Windows Update" + }, + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforotherupdates_1", + "displayName": "Detect, download and deploy other Updates from Windows Server Update Services (WSUS)", + "description": "Detect, download and deploy other Updates from Windows Server Update Services (WSUS)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforqualityupdates", + "displayName": "Set Policy Driven Update Source For Quality Updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforqualityupdates_0", + "displayName": "Detect, download and deploy Quality Updates from Windows Update", + "description": "Detect, download and deploy Quality Updates from Windows Update" + }, + { + "id": "device_vendor_msft_policy_config_update_setpolicydrivenupdatesourceforqualityupdates_1", + "displayName": "Detect, download and deploy Quality Updates from Windows Server Update Services (WSUS)", + "description": "Detect, download and deploy Quality Updates from Windows Server Update Services (WSUS)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_setproxybehaviorforupdatedetection", + "displayName": "Set Proxy Behavior For Update Detection", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_setproxybehaviorforupdatedetection_0", + "displayName": "Only use system proxy for detecting updates (default)", + "description": "Only use system proxy for detecting updates (default)" + }, + { + "id": "device_vendor_msft_policy_config_update_setproxybehaviorforupdatedetection_1", + "displayName": "Allow user proxy to be used as a fallback if detection using system proxy fails", + "description": "Allow user proxy to be used as a fallback if detection using system proxy fails" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_targetreleaseversion", + "displayName": "Target Release Version", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_updatenotificationlevel", + "displayName": "Update Notification Level", + "options": [ + { + "id": "device_vendor_msft_policy_config_update_updatenotificationlevel_0", + "displayName": "Use the default Windows Update notifications", + "description": "Use the default Windows Update notifications" + }, + { + "id": "device_vendor_msft_policy_config_update_updatenotificationlevel_1", + "displayName": "Turn off all notifications, excluding restart warnings", + "description": "Turn off all notifications, excluding restart warnings" + }, + { + "id": "device_vendor_msft_policy_config_update_updatenotificationlevel_2", + "displayName": "Turn off all notifications, including restart warnings", + "description": "Turn off all notifications, including restart warnings" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update_updateserviceurl", + "displayName": "Update Service Url", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update_updateserviceurlalternate", + "displayName": "Update Service Url Alternate", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultallowinstallation", + "displayName": "Allow installation default", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultallowinstallation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultallowinstallation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultupdatepolicy", + "displayName": "Update policy override default", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultupdatepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultupdatepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultupdatepolicy_part_updatepolicy", + "displayName": "Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultupdatepolicy_part_updatepolicy_1", + "displayName": "Always allow updates (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultupdatepolicy_part_updatepolicy_2", + "displayName": "Manual updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultupdatepolicy_part_updatepolicy_3", + "displayName": "Automatic silent updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications_pol_defaultupdatepolicy_part_updatepolicy_0", + "displayName": "Updates disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_updatepolicymicrosoftedge", + "displayName": "Update policy override", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_updatepolicymicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_updatepolicymicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_updatepolicymicrosoftedge_part_updatepolicy", + "displayName": "Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_updatepolicymicrosoftedge_part_updatepolicy_1", + "displayName": "Always allow updates (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_updatepolicymicrosoftedge_part_updatepolicy_2", + "displayName": "Manual updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_updatepolicymicrosoftedge_part_updatepolicy_3", + "displayName": "Automatic silent updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedge_pol_updatepolicymicrosoftedge_part_updatepolicy_0", + "displayName": "Updates disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_updatepolicymicrosoftedgebeta", + "displayName": "Update policy override", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_updatepolicymicrosoftedgebeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_updatepolicymicrosoftedgebeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_updatepolicymicrosoftedgebeta_part_updatepolicy", + "displayName": "Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_updatepolicymicrosoftedgebeta_part_updatepolicy_1", + "displayName": "Always allow updates (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_updatepolicymicrosoftedgebeta_part_updatepolicy_2", + "displayName": "Manual updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_updatepolicymicrosoftedgebeta_part_updatepolicy_3", + "displayName": "Automatic silent updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgebeta_pol_updatepolicymicrosoftedgebeta_part_updatepolicy_0", + "displayName": "Updates disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_updatepolicymicrosoftedgecanary", + "displayName": "Update policy override", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_updatepolicymicrosoftedgecanary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_updatepolicymicrosoftedgecanary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_updatepolicymicrosoftedgecanary_part_updatepolicy", + "displayName": "Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_updatepolicymicrosoftedgecanary_part_updatepolicy_1", + "displayName": "Always allow updates (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_updatepolicymicrosoftedgecanary_part_updatepolicy_2", + "displayName": "Manual updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_updatepolicymicrosoftedgecanary_part_updatepolicy_3", + "displayName": "Automatic silent updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgecanary_pol_updatepolicymicrosoftedgecanary_part_updatepolicy_0", + "displayName": "Updates disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_updatepolicymicrosoftedgedev", + "displayName": "Update policy override", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_updatepolicymicrosoftedgedev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_updatepolicymicrosoftedgedev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_updatepolicymicrosoftedgedev_part_updatepolicy", + "displayName": "Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_updatepolicymicrosoftedgedev_part_updatepolicy_1", + "displayName": "Always allow updates (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_updatepolicymicrosoftedgedev_part_updatepolicy_2", + "displayName": "Manual updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_updatepolicymicrosoftedgedev_part_updatepolicy_3", + "displayName": "Automatic silent updates only", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_applications~cat_microsoftedgedev_pol_updatepolicymicrosoftedgedev_part_updatepolicy_0", + "displayName": "Updates disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_autoupdatecheckperiod", + "displayName": "Auto-update check period override", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_autoupdatecheckperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_autoupdatecheckperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_autoupdatecheckperiod_part_autoupdatecheckperiod", + "displayName": "Minutes between update checks (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_updatechecksuppressedperiod", + "displayName": "Time period in each day to suppress auto-update check", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_updatechecksuppressedperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_updatechecksuppressedperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_updatechecksuppressedperiod_part_updatechecksuppresseddurationmin", + "displayName": "Duration (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_updatechecksuppressedperiod_part_updatechecksuppressedstarthour", + "displayName": "Hour (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_preferences_pol_updatechecksuppressedperiod_part_updatechecksuppressedstartmin", + "displayName": "Minute (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode", + "displayName": "Choose how to specify proxy server settings", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode_part_proxymode", + "displayName": "Choose how to specify proxy server settings (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode_part_proxymode_direct", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode_part_proxymode_auto_detect", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode_part_proxymode_pac_script", + "displayName": "Use a .pac proxy script", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode_part_proxymode_fixed_servers", + "displayName": "Use fixed proxy servers", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxymode_part_proxymode_system", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxypacurl", + "displayName": "URL to a proxy .pac file", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxypacurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxypacurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxypacurl_part_proxypacurl", + "displayName": "URL to a proxy .pac file (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxyserver", + "displayName": "Address or URL of proxy server", + "options": [ + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxyserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxyserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_update~policy~cat_google~cat_googleupdate~cat_proxyserver_pol_proxyserver_part_proxyserver", + "displayName": "Address or URL of proxy server (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications_pol_defaultallowinstallation", + "displayName": "Allow installation default", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications_pol_defaultallowinstallation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications_pol_defaultallowinstallation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications_pol_defaultallowinstallation_part_installpolicy", + "displayName": "Install Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications_pol_defaultallowinstallation_part_installpolicy_1", + "displayName": "Always allow Installs (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications_pol_defaultallowinstallation_part_installpolicy_0", + "displayName": "Installs disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_part_installpolicy", + "displayName": "Install Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_part_installpolicy_1", + "displayName": "Always allow Installs (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_part_installpolicy_0", + "displayName": "Installs disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_part_installpolicy_5", + "displayName": "Force Installs (Machine-Wide)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_part_installpolicy_4", + "displayName": "Always allow Machine-Wide Installs, but not Per-User Installs", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_allowinstallationmicrosoftedge_part_installpolicy_6", + "displayName": "Force Installs (Per-User)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_part_installpolicy", + "displayName": "Install Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_part_installpolicy_1", + "displayName": "Always allow Installs (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_part_installpolicy_0", + "displayName": "Installs disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_part_installpolicy_5", + "displayName": "Force Installs (Machine-Wide)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_part_installpolicy_4", + "displayName": "Always allow Machine-Wide Installs, but not Per-User Installs", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_allowinstallationmicrosoftedgebeta_part_installpolicy_6", + "displayName": "Force Installs (Per-User)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary_part_installpolicy", + "displayName": "Install Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary_part_installpolicy_1", + "displayName": "Always allow Installs (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary_part_installpolicy_0", + "displayName": "Installs disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_allowinstallationmicrosoftedgecanary_part_installpolicy_6", + "displayName": "Force Installs (Per-User)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_part_installpolicy", + "displayName": "Install Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_part_installpolicy_1", + "displayName": "Always allow Installs (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_part_installpolicy_0", + "displayName": "Installs disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_part_installpolicy_5", + "displayName": "Force Installs (Machine-Wide)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_part_installpolicy_4", + "displayName": "Always allow Machine-Wide Installs, but not Per-User Installs", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updateupdates.1~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_allowinstallationmicrosoftedgedev_part_installpolicy_6", + "displayName": "Force Installs (Per-User)", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultmeteredupdates", + "displayName": "Let users update all apps on metered connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultmeteredupdates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultmeteredupdates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultmeteredupdates_part_defaultmeteredupdatespolicy", + "displayName": "Default Metered Updates policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultmeteredupdates_part_defaultmeteredupdatespolicy_1", + "displayName": "Default Metered Updates Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultmeteredupdates_part_defaultmeteredupdatespolicy_2", + "displayName": "Default Metered Updates Allowed", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultremovedesktopshortcut", + "displayName": "Remove Desktop Shortcuts upon update default", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultremovedesktopshortcut_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultremovedesktopshortcut_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultremovedesktopshortcut_part_removedesktopshortcut", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultremovedesktopshortcut_part_removedesktopshortcut_1", + "displayName": "Force delete system-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultremovedesktopshortcut_part_removedesktopshortcut_2", + "displayName": "Force delete system-level and user-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications_pol_defaultremovedesktopshortcut_part_removedesktopshortcut_0", + "displayName": "Prevent Desktop Shortcut creation on install", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_edgepreviewmicrosoftedge", + "displayName": "Allow users in the Windows Insider Program to be enrolled in Edge Preview", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_edgepreviewmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_edgepreviewmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_meteredupdatesmicrosoftedge", + "displayName": "Let users update on metered connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_meteredupdatesmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_meteredupdatesmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_meteredupdatesmicrosoftedge_part_meteredupdatespolicy", + "displayName": "Metered Updates Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_meteredupdatesmicrosoftedge_part_meteredupdatespolicy_1", + "displayName": "Metered Disable updates", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_meteredupdatesmicrosoftedge_part_meteredupdatespolicy_2", + "displayName": "Metered Updates Allowed", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_removedesktopshortcutmicrosoftedge", + "displayName": "Remove Desktop Shortcuts upon update", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_removedesktopshortcutmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_removedesktopshortcutmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_removedesktopshortcutmicrosoftedge_part_removedesktopshortcut", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_removedesktopshortcutmicrosoftedge_part_removedesktopshortcut_1", + "displayName": "Force delete system-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_removedesktopshortcutmicrosoftedge_part_removedesktopshortcut_2", + "displayName": "Force delete system-level and user-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_removedesktopshortcutmicrosoftedge_part_removedesktopshortcut_0", + "displayName": "Prevent Desktop Shortcut creation on install", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_uninstalledgemicrosoftedge", + "displayName": "Specify uninstall behavior for Microsoft Edge", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_uninstalledgemicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_uninstalledgemicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_uninstalledgemicrosoftedge_part_uninstalledgepolicy", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_uninstalledgemicrosoftedge_part_uninstalledgepolicy_1", + "displayName": "Enabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_uninstalledgemicrosoftedge_part_uninstalledgepolicy_2", + "displayName": "Enabled and delete user data", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_uninstalledgemicrosoftedge_part_uninstalledgepolicy_3", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_uninstalledgemicrosoftedge_part_uninstalledgepolicy_0", + "displayName": "Not Configured", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_meteredupdatesmicrosoftedgebeta", + "displayName": "Let users update on metered connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_meteredupdatesmicrosoftedgebeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_meteredupdatesmicrosoftedgebeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_meteredupdatesmicrosoftedgebeta_part_meteredupdatespolicy", + "displayName": "Metered Updates Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_meteredupdatesmicrosoftedgebeta_part_meteredupdatespolicy_1", + "displayName": "Metered Disable updates", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_meteredupdatesmicrosoftedgebeta_part_meteredupdatespolicy_2", + "displayName": "Metered Updates Allowed", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_removedesktopshortcutmicrosoftedgebeta", + "displayName": "Remove Desktop Shortcuts upon update", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_removedesktopshortcutmicrosoftedgebeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_removedesktopshortcutmicrosoftedgebeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_removedesktopshortcutmicrosoftedgebeta_part_removedesktopshortcut", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_removedesktopshortcutmicrosoftedgebeta_part_removedesktopshortcut_1", + "displayName": "Force delete system-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_removedesktopshortcutmicrosoftedgebeta_part_removedesktopshortcut_2", + "displayName": "Force delete system-level and user-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_removedesktopshortcutmicrosoftedgebeta_part_removedesktopshortcut_0", + "displayName": "Prevent Desktop Shortcut creation on install", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_meteredupdatesmicrosoftedgecanary", + "displayName": "Let users update on metered connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_meteredupdatesmicrosoftedgecanary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_meteredupdatesmicrosoftedgecanary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_meteredupdatesmicrosoftedgecanary_part_meteredupdatespolicy", + "displayName": "Metered Updates Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_meteredupdatesmicrosoftedgecanary_part_meteredupdatespolicy_1", + "displayName": "Metered Disable updates", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_meteredupdatesmicrosoftedgecanary_part_meteredupdatespolicy_2", + "displayName": "Metered Updates Allowed", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_removedesktopshortcutmicrosoftedgecanary", + "displayName": "Remove Desktop Shortcuts upon update", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_removedesktopshortcutmicrosoftedgecanary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_removedesktopshortcutmicrosoftedgecanary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_removedesktopshortcutmicrosoftedgecanary_part_removedesktopshortcut", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_removedesktopshortcutmicrosoftedgecanary_part_removedesktopshortcut_1", + "displayName": "Force delete system-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_removedesktopshortcutmicrosoftedgecanary_part_removedesktopshortcut_2", + "displayName": "Force delete system-level and user-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_removedesktopshortcutmicrosoftedgecanary_part_removedesktopshortcut_0", + "displayName": "Prevent Desktop Shortcut creation on install", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_meteredupdatesmicrosoftedgedev", + "displayName": "Let users update on metered connections", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_meteredupdatesmicrosoftedgedev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_meteredupdatesmicrosoftedgedev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_meteredupdatesmicrosoftedgedev_part_meteredupdatespolicy", + "displayName": "Metered Updates Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_meteredupdatesmicrosoftedgedev_part_meteredupdatespolicy_1", + "displayName": "Metered Disable updates", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_meteredupdatesmicrosoftedgedev_part_meteredupdatespolicy_2", + "displayName": "Metered Updates Allowed", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_removedesktopshortcutmicrosoftedgedev", + "displayName": "Remove Desktop Shortcuts upon update", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_removedesktopshortcutmicrosoftedgedev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_removedesktopshortcutmicrosoftedgedev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_removedesktopshortcutmicrosoftedgedev_part_removedesktopshortcut", + "displayName": "", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_removedesktopshortcutmicrosoftedgedev_part_removedesktopshortcut_1", + "displayName": "Force delete system-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_removedesktopshortcutmicrosoftedgedev_part_removedesktopshortcut_2", + "displayName": "Force delete system-level and user-level Desktop Shortcuts", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev127~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_removedesktopshortcutmicrosoftedgedev_part_removedesktopshortcut_0", + "displayName": "Prevent Desktop Shortcut creation on install", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev78diff~policy~cat_google~cat_googleupdate~cat_applications_pol_allowsidebysideexperience", + "displayName": "Allow Microsoft Edge Side by Side browser experience", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev78diff~policy~cat_google~cat_googleupdate~cat_applications_pol_allowsidebysideexperience_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev78diff~policy~cat_google~cat_googleupdate~cat_applications_pol_allowsidebysideexperience_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications_pol_defaultcreatedesktopshortcut", + "displayName": "Prevent Desktop Shortcut creation upon install default", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications_pol_defaultcreatedesktopshortcut_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications_pol_defaultcreatedesktopshortcut_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_createdesktopshortcutmicrosoftedge", + "displayName": "Prevent Desktop Shortcut creation upon install", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_createdesktopshortcutmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_createdesktopshortcutmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_createdesktopshortcutmicrosoftedgebeta", + "displayName": "Prevent Desktop Shortcut creation upon install", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_createdesktopshortcutmicrosoftedgebeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_createdesktopshortcutmicrosoftedgebeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_createdesktopshortcutmicrosoftedgecanary", + "displayName": "Prevent Desktop Shortcut creation upon install", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_createdesktopshortcutmicrosoftedgecanary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_createdesktopshortcutmicrosoftedgecanary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_createdesktopshortcutmicrosoftedgedev", + "displayName": "Prevent Desktop Shortcut creation upon install", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_createdesktopshortcutmicrosoftedgedev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev83diff~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_createdesktopshortcutmicrosoftedgedev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_rollbacktotargetversionmicrosoftedge", + "displayName": "Rollback to Target version", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_rollbacktotargetversionmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_rollbacktotargetversionmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_rollbacktotargetversionmicrosoftedgebeta", + "displayName": "Rollback to Target version", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_rollbacktotargetversionmicrosoftedgebeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgebeta_pol_rollbacktotargetversionmicrosoftedgebeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_rollbacktotargetversionmicrosoftedgecanary", + "displayName": "Rollback to Target version", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_rollbacktotargetversionmicrosoftedgecanary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgecanary_pol_rollbacktotargetversionmicrosoftedgecanary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_rollbacktotargetversionmicrosoftedgedev", + "displayName": "Rollback to Target version", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_rollbacktotargetversionmicrosoftedgedev_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev86~policy~cat_edgeupdate~cat_applications~cat_microsoftedgedev_pol_rollbacktotargetversionmicrosoftedgedev_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev87.updates.1~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev87.updates.1~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev87.updates.1~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev87.updates.1~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_part_installpolicy", + "displayName": "Install Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev87.updates.1~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_part_installpolicy_1", + "displayName": "Always allow Installs (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev87.updates.1~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_part_installpolicy_0", + "displayName": "Installs disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev87.updates.1~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_part_installpolicy_5", + "displayName": "Force Installs (Machine-Wide)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev87.updates.1~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_part_installpolicy_4", + "displayName": "Always allow Machine-Wide Installs, but not Per-User Installs", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview", + "displayName": "Allow installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_allowinstallationmicrosoftedgewebview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_updatepolicymicrosoftedgewebview", + "displayName": "Update policy override", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_updatepolicymicrosoftedgewebview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_updatepolicymicrosoftedgewebview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_updatepolicymicrosoftedgewebview_part_updatepolicy", + "displayName": "Update Policy (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_updatepolicymicrosoftedgewebview_part_updatepolicy_1", + "displayName": "Always allow updates (recommended)", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev87~policy~cat_edgeupdate~cat_webview_pol_updatepolicymicrosoftedgewebview_part_updatepolicy_0", + "displayName": "Updates disabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev94~policy~cat_edgeupdate_pol_ecscontrol", + "displayName": "Control updater's communication with the Experimentation and Configuration Service", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev94~policy~cat_edgeupdate_pol_ecscontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev94~policy~cat_edgeupdate_pol_ecscontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev94~policy~cat_edgeupdate_pol_ecscontrol_part_ecscontrol", + "displayName": "Control updater's communication with Experimentation and Configuration Service (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev94~policy~cat_edgeupdate_pol_ecscontrol_part_ecscontrol_0", + "displayName": "Disable communication with the Experimentation and Configuration Service", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev94~policy~cat_edgeupdate_pol_ecscontrol_part_ecscontrol_1", + "displayName": "Enable communication and download experiments", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev95~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetchannelmicrosoftedge", + "displayName": "Target Channel override", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev95~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetchannelmicrosoftedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev95~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetchannelmicrosoftedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_updatev95~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetchannelmicrosoftedge_part_targetchannel", + "displayName": "Target Channel (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_updatev95~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetchannelmicrosoftedge_part_targetchannel_stable", + "displayName": "Stable", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev95~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetchannelmicrosoftedge_part_targetchannel_beta", + "displayName": "Beta", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev95~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetchannelmicrosoftedge_part_targetchannel_dev", + "displayName": "Dev", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_updatev95~policy~cat_edgeupdate~cat_applications~cat_microsoftedge_pol_targetchannelmicrosoftedge_part_targetchannel_extended", + "displayName": "Extended Stable", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_userrights_accesscredentialmanagerastrustedcaller", + "displayName": "Access Credential Manager As Trusted Caller", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_accessfromnetwork", + "displayName": "Access From Network", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_actaspartoftheoperatingsystem", + "displayName": "Act As Part Of The Operating System", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_allowlocallogon", + "displayName": "Allow Local Log On", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_backupfilesanddirectories", + "displayName": "Backup Files And Directories", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_bypasstraversechecking", + "displayName": "Bypass Traverse Checking", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_changesystemtime", + "displayName": "Change System Time", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_changetimezone", + "displayName": "Change Time Zone", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_createglobalobjects", + "displayName": "Create Global Objects", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_createpagefile", + "displayName": "Create Page File", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_createpermanentsharedobjects", + "displayName": "Create Permanent Shared Objects", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_createsymboliclinks", + "displayName": "Create Symbolic Links", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_createtoken", + "displayName": "Create Token", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_debugprograms", + "displayName": "Debug Programs", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_denyaccessfromnetwork", + "displayName": "Deny Access From Network", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_denylocallogon", + "displayName": "Deny Local Log On", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_denylogonasbatchjob", + "displayName": "Deny Log On As Batch Job", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_denyremotedesktopserviceslogon", + "displayName": "Deny Remote Desktop Services Log On", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_enabledelegation", + "displayName": "Enable Delegation", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_generatesecurityaudits", + "displayName": "Generate Security Audits", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_impersonateclient", + "displayName": "Impersonate Client", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_increaseprocessworkingset", + "displayName": "Increase Process Working Set", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_increaseschedulingpriority", + "displayName": "Increase Scheduling Priority", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_loadunloaddevicedrivers", + "displayName": "Load Unload Device Drivers", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_lockmemory", + "displayName": "Lock Memory", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_logonasbatchjob", + "displayName": "Log On As Batch Job", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_logonasservice", + "displayName": "Log On As Service", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_manageauditingandsecuritylog", + "displayName": "Manage Auditing And Security Log", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_managevolume", + "displayName": "Manage Volume", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_modifyfirmwareenvironment", + "displayName": "Modify Firmware Environment", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_modifyobjectlabel", + "displayName": "Modify Object Label", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_profilesingleprocess", + "displayName": "Profile Single Process", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_profilesystemperformance", + "displayName": "Profile System Performance", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_remoteshutdown", + "displayName": "Remote Shutdown", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_replaceprocessleveltoken", + "displayName": "Replace Process Level Token", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_restorefilesanddirectories", + "displayName": "Restore Files And Directories", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_shutdownthesystem", + "displayName": "Shut Down The System", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_userrights_takeownership", + "displayName": "Take Ownership", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_virtualizationbasedtechnology_hypervisorenforcedcodeintegrity", + "displayName": "Hypervisor Enforced Code Integrity", + "options": [ + { + "id": "device_vendor_msft_policy_config_virtualizationbasedtechnology_hypervisorenforcedcodeintegrity_0", + "displayName": "(Disabled) Turns off Hypervisor-Protected Code Integrity remotely if configured previously without UEFI Lock.", + "description": "(Disabled) Turns off Hypervisor-Protected Code Integrity remotely if configured previously without UEFI Lock." + }, + { + "id": "device_vendor_msft_policy_config_virtualizationbasedtechnology_hypervisorenforcedcodeintegrity_1", + "displayName": "(Enabled with UEFI lock) Turns on Hypervisor-Protected Code Integrity with UEFI lock.", + "description": "(Enabled with UEFI lock) Turns on Hypervisor-Protected Code Integrity with UEFI lock." + }, + { + "id": "device_vendor_msft_policy_config_virtualizationbasedtechnology_hypervisorenforcedcodeintegrity_2", + "displayName": "(Enabled without lock) Turns on Hypervisor-Protected Code Integrity without UEFI lock.", + "description": "(Enabled without lock) Turns on Hypervisor-Protected Code Integrity without UEFI lock." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_virtualizationbasedtechnology_requireuefimemoryattributestable", + "displayName": "Require UEFI Memory Attributes Table", + "options": [ + { + "id": "device_vendor_msft_policy_config_virtualizationbasedtechnology_requireuefimemoryattributestable_0", + "displayName": "Do not require UEFI Memory Attributes Table", + "description": "Do not require UEFI Memory Attributes Table" + }, + { + "id": "device_vendor_msft_policy_config_virtualizationbasedtechnology_requireuefimemoryattributestable_1", + "displayName": "Require UEFI Memory Attributes Table", + "description": "Require UEFI Memory Attributes Table" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1.updates~policy~visualstudio~privacysettings_intellicoderemoteanalysisdisabled", + "displayName": "Disable IntelliCode custom model training", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1.updates~policy~visualstudio~privacysettings_intellicoderemoteanalysisdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1.updates~policy~visualstudio~privacysettings_intellicoderemoteanalysisdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablefeedbackdialog", + "displayName": "Disable the send-a-smile feature", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablefeedbackdialog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablefeedbackdialog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablescreenshotcapture", + "displayName": "Disables send-a-smile's screenshot capability", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablescreenshotcapture_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablescreenshotcapture_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesenabled", + "displayName": "Enable administrator updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesenabled_administratorupdatesenableddropid", + "displayName": "Microsoft Update Channel", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesenabled_administratorupdatesenableddropid_1", + "displayName": "WSUS/SCCM", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesenabled_administratorupdatesenableddropid_2", + "displayName": "WSUS/SCCM and Microsoft Updates/Intune", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesoptout", + "displayName": "Opt out of administrator updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesoptout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_administratorupdatesoptout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_backgrounddownloaddisabled", + "displayName": "Disable downloading updates automatically", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_backgrounddownloaddisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_backgrounddownloaddisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_cachepath", + "displayName": "Package manifest and payload cache path", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_cachepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_cachepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_cachepath_cachepath_textbox", + "displayName": "Package Manifest and Payload Cache Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_disablerollback", + "displayName": "Disable the ability to rollback or undo a Visual Studio update", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_disablerollback_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_disablerollback_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_hideavailabletab", + "displayName": "Hide the Available tab shown in the Visual Studio Installer", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_hideavailabletab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_hideavailabletab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_keepdownloadedpayloads", + "displayName": "Keep package payloads after installation", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_keepdownloadedpayloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_keepdownloadedpayloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_removeoutofsupport", + "displayName": "Remove out-of-support components during updates", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_removeoutofsupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_removeoutofsupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_sharedinstallationpath", + "displayName": "Shared installation path", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_sharedinstallationpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_sharedinstallationpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_sharedinstallationpath_sharedinstallationpath_textbox", + "displayName": "Shared Installation Path (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_updateconfigurationfile", + "displayName": "Custom path to the update configuration file", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_updateconfigurationfile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_updateconfigurationfile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~installandupdatesettings_updateconfigurationfile_updateconfigurationfile_textbox", + "displayName": "Custom Path to the Update Config (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_directconnectionmode", + "displayName": "Require direct connection", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_directconnectionmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_directconnectionmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disableanonymousguests", + "displayName": "Disable anonymous guests", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disableanonymousguests_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disableanonymousguests_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disablereadwriteterminal", + "displayName": "Disable shared read write terminal", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disablereadwriteterminal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disablereadwriteterminal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disablesharedserver", + "displayName": "Disable shared server", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disablesharedserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_disablesharedserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_guestapprovalrequired", + "displayName": "Require guest approval", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_guestapprovalrequired_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_guestapprovalrequired_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_livesharedomainname", + "displayName": "Allow only company domain accounts", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_livesharedomainname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_livesharedomainname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~livesharesettings_livesharedomainname_liveshare_domainname_textbox", + "displayName": "Enter Domain Name: (Device)", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~privacysettings_intellicoderemoteanalysisdisabled", + "displayName": "Disable IntelliCode custom model training", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~privacysettings_intellicoderemoteanalysisdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~privacysettings_intellicoderemoteanalysisdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~privacysettings_telemetryoptin", + "displayName": "Enable the Visual Studio Customer Experience Improvement Program", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~privacysettings_telemetryoptin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~privacysettings_telemetryoptin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~installandupdatesettings_allowstandardusercontrol", + "displayName": "Allow standard users to execute installer operations", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~installandupdatesettings_allowstandardusercontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~installandupdatesettings_allowstandardusercontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~installandupdatesettings_allowstandardusercontrol_allowstandardusercontroldropid", + "displayName": "Define which installer commands Standard Users can execute", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~installandupdatesettings_allowstandardusercontrol_allowstandardusercontroldropid_1", + "displayName": "Enabled for Update and Rollback", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~installandupdatesettings_allowstandardusercontrol_allowstandardusercontroldropid_2", + "displayName": "Enabled for all installer operations", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~livesharesettings_disablechat", + "displayName": "Disable Chat", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~livesharesettings_disablechat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~livesharesettings_disablechat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~visualstudiodevtunnelssettings_disablevisualstudiodevtunnels", + "displayName": "Disable dev tunnels in Visual Studio", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~visualstudiodevtunnelssettings_disablevisualstudiodevtunnels_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov2.1~policy~visualstudio~visualstudiodevtunnelssettings_disablevisualstudiodevtunnels_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov3~policy~visualstudio~installandupdatesettings_administratorupdatesnotifications", + "displayName": "Display administrator update notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov3~policy~visualstudio~installandupdatesettings_administratorupdatesnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov3~policy~visualstudio~installandupdatesettings_administratorupdatesnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov4~policy~visualstudio~copilotsettings_disablecopilot", + "displayName": "Disable Copilot", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov4~policy~visualstudio~copilotsettings_disablecopilot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov4~policy~visualstudio~copilotsettings_disablecopilot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov4~policy~visualstudio~copilotsettings_disablecopilotforindividuals", + "displayName": "Disable Copilot for Individual", + "options": [ + { + "id": "device_vendor_msft_policy_config_visualstudiov4~policy~visualstudio~copilotsettings_disablecopilotforindividuals_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_visualstudiov4~policy~visualstudio~copilotsettings_disablecopilotforindividuals_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_automaticdatacollection", + "displayName": "Automatic Data Collection", + "options": [ + { + "id": "device_vendor_msft_policy_config_webthreatdefense_automaticdatacollection_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_automaticdatacollection_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifymalicious", + "displayName": "Notify Malicious", + "options": [ + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifymalicious_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifymalicious_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifypasswordreuse", + "displayName": "Notify Password Reuse", + "options": [ + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifypasswordreuse_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifypasswordreuse_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifyunsafeapp", + "displayName": "Notify Unsafe App", + "options": [ + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifyunsafeapp_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_notifyunsafeapp_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_serviceenabled", + "displayName": "Service Enabled", + "options": [ + { + "id": "device_vendor_msft_policy_config_webthreatdefense_serviceenabled_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_webthreatdefense_serviceenabled_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowautoconnecttowifisensehotspots", + "displayName": "Allow Auto Connect To Wi Fi Sense Hotspots", + "options": [ + { + "id": "device_vendor_msft_policy_config_wifi_allowautoconnecttowifisensehotspots_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowautoconnecttowifisensehotspots_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowinternetsharing", + "displayName": "Allow Internet Sharing", + "options": [ + { + "id": "device_vendor_msft_policy_config_wifi_allowinternetsharing_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowinternetsharing_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowmanualwificonfiguration", + "displayName": "Allow Manual Wi Fi Configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_wifi_allowmanualwificonfiguration_0", + "displayName": "Block", + "description": "No Wi-Fi connection outside of MDM provisioned network is allowed." + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowmanualwificonfiguration_1", + "displayName": "Allow", + "description": "Adding new network SSIDs beyond the already MDM provisioned ones is allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowwifi", + "displayName": "Allow Wi Fi", + "options": [ + { + "id": "device_vendor_msft_policy_config_wifi_allowwifi_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowwifi_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowwifidirect", + "displayName": "Allow Wi Fi Direct", + "options": [ + { + "id": "device_vendor_msft_policy_config_wifi_allowwifidirect_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_wifi_allowwifidirect_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wifi_wlanscanmode", + "displayName": "WLAN Scan Mode", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_windowsconnectionmanager_prohitconnectiontonondomainnetworkswhenconnectedtodomainauthenticatednetwork", + "displayName": "Prohibit connection to non-domain networks when connected to domain authenticated network", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsconnectionmanager_prohitconnectiontonondomainnetworkswhenconnectedtodomainauthenticatednetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowsconnectionmanager_prohitconnectiontonondomainnetworkswhenconnectedtodomainauthenticatednetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_companyname", + "displayName": "Company Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableaccountprotectionui", + "displayName": "Disable Account Protection UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableaccountprotectionui_0", + "displayName": "(Disable) The users can see the display of the Account protection area in Windows Defender Security Center.", + "description": "(Disable) The users can see the display of the Account protection area in Windows Defender Security Center." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableaccountprotectionui_1", + "displayName": "(Enable) The users cannot see the display of the Account protection area in Windows Defender Security Center.", + "description": "(Enable) The users cannot see the display of the Account protection area in Windows Defender Security Center." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableappbrowserui", + "displayName": "Disable App Browser UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableappbrowserui_0", + "displayName": "(Disable) The users can see the display of the app and browser protection area in Windows Defender Security Center.", + "description": "(Disable) The users can see the display of the app and browser protection area in Windows Defender Security Center." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableappbrowserui_1", + "displayName": "(Enable) The users cannot see the display of the app and browser protection area in Windows Defender Security Center.", + "description": "(Enable) The users cannot see the display of the app and browser protection area in Windows Defender Security Center." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablecleartpmbutton", + "displayName": "Disable Clear Tpm Button", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablecleartpmbutton_0", + "displayName": "(Disabled or not configured) The security processor troubleshooting page shows a button that initiates the process to clear the security processor (TPM).", + "description": "(Disabled or not configured) The security processor troubleshooting page shows a button that initiates the process to clear the security processor (TPM)." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablecleartpmbutton_1", + "displayName": "(Enabled) The security processor troubleshooting page will not show a button to initiate the process to clear the security processor (TPM)", + "description": "(Enabled) The security processor troubleshooting page will not show a button to initiate the process to clear the security processor (TPM)" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disabledevicesecurityui", + "displayName": "Disable Device Security UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disabledevicesecurityui_0", + "displayName": "(Disable) The users can see the display of the Device security area in Windows Defender Security Center.", + "description": "(Disable) The users can see the display of the Device security area in Windows Defender Security Center." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disabledevicesecurityui_1", + "displayName": "(Enable) The users cannot see the display of the Device security area in Windows Defender Security Center.", + "description": "(Enable) The users cannot see the display of the Device security area in Windows Defender Security Center." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableenhancednotifications", + "displayName": "Disable Enhanced Notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableenhancednotifications_0", + "displayName": "(Disable) Windows Defender Security Center will display critical and non-critical notifications to users..", + "description": "(Disable) Windows Defender Security Center will display critical and non-critical notifications to users.." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disableenhancednotifications_1", + "displayName": "(Enable) Windows Defender Security Center only display notifications which are considered critical on clients.", + "description": "(Enable) Windows Defender Security Center only display notifications which are considered critical on clients." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablefamilyui", + "displayName": "Disable Family UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablefamilyui_0", + "displayName": "(Disable) The users can see the display of the family options area in Windows Defender Security Center.", + "description": "(Disable) The users can see the display of the family options area in Windows Defender Security Center." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablefamilyui_1", + "displayName": "(Enable) The users cannot see the display of the family options area in Windows Defender Security Center.", + "description": "(Enable) The users cannot see the display of the family options area in Windows Defender Security Center." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablehealthui", + "displayName": "Disable Health UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablehealthui_0", + "displayName": "(Disable) The users can see the display of the device performance and health area in Windows Defender Security Center.", + "description": "(Disable) The users can see the display of the device performance and health area in Windows Defender Security Center." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablehealthui_1", + "displayName": "(Enable) The users cannot see the display of the device performance and health area in Windows Defender Security Center.", + "description": "(Enable) The users cannot see the display of the device performance and health area in Windows Defender Security Center." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablenetworkui", + "displayName": "Disable Network UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablenetworkui_0", + "displayName": "(Disable) The users can see the display of the firewall and network protection area in Windows Defender Security Center.", + "description": "(Disable) The users can see the display of the firewall and network protection area in Windows Defender Security Center." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablenetworkui_1", + "displayName": "(Enable) The users cannot see the display of the firewall and network protection area in Windows Defender Security Center.", + "description": "(Enable) The users cannot see the display of the firewall and network protection area in Windows Defender Security Center." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablenotifications", + "displayName": "Disable Notifications", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablenotifications_0", + "displayName": "(Disable) The users can see the display of Windows Defender Security Center notifications.", + "description": "(Disable) The users can see the display of Windows Defender Security Center notifications." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablenotifications_1", + "displayName": "(Enable) The users cannot see the display of Windows Defender Security Center notifications.", + "description": "(Enable) The users cannot see the display of Windows Defender Security Center notifications." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disabletpmfirmwareupdatewarning", + "displayName": "Disable Tpm Firmware Update Warning", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disabletpmfirmwareupdatewarning_0", + "displayName": "(Disable or Not configured) A warning will be displayed if the firmware of the security processor (TPM) should be updated for TPMs that have a vulnerability.", + "description": "(Disable or Not configured) A warning will be displayed if the firmware of the security processor (TPM) should be updated for TPMs that have a vulnerability." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disabletpmfirmwareupdatewarning_1", + "displayName": "(Enabled) No warning will be displayed if the firmware of the security processor (TPM) should be updated.", + "description": "(Enabled) No warning will be displayed if the firmware of the security processor (TPM) should be updated." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablevirusui", + "displayName": "Disable Virus UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablevirusui_0", + "displayName": "(Disable) The users can see the display of the virus and threat protection area in Windows Defender Security Center.", + "description": "(Disable) The users can see the display of the virus and threat protection area in Windows Defender Security Center." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disablevirusui_1", + "displayName": "(Enable) The users cannot see the display of the virus and threat protection area in Windows Defender Security Center.", + "description": "(Enable) The users cannot see the display of the virus and threat protection area in Windows Defender Security Center." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disallowexploitprotectionoverride", + "displayName": "Disallow Exploit Protection Override", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disallowexploitprotectionoverride_0", + "displayName": "(Disable) Local users are allowed to make changes in the exploit protection settings area.", + "description": "(Disable) Local users are allowed to make changes in the exploit protection settings area." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_disallowexploitprotectionoverride_1", + "displayName": "(Enable) Local users cannot make changes in the exploit protection settings area.", + "description": "(Enable) Local users cannot make changes in the exploit protection settings area." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_email", + "displayName": "Email", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_enablecustomizedtoasts", + "displayName": "Enable Customized Toasts", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_enablecustomizedtoasts_0", + "displayName": "(Disable) Notifications contain a default notification text.", + "description": "(Disable) Notifications contain a default notification text." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_enablecustomizedtoasts_1", + "displayName": "(Enable) Notifications contain the company name and contact options.", + "description": "(Enable) Notifications contain the company name and contact options." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_enableinappcustomization", + "displayName": "Enable In App Customization", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_enableinappcustomization_0", + "displayName": "(Disable) Do not display the company name and contact options in the card fly out notification.", + "description": "(Disable) Do not display the company name and contact options in the card fly out notification." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_enableinappcustomization_1", + "displayName": "(Enable) Display the company name and contact options in the card fly out notification.", + "description": "(Enable) Display the company name and contact options in the card fly out notification." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hideransomwaredatarecovery", + "displayName": "Hide Ransomware Data Recovery", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hideransomwaredatarecovery_0", + "displayName": "(Disable or not configured) The Ransomware data recovery area will be visible.", + "description": "(Disable or not configured) The Ransomware data recovery area will be visible." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hideransomwaredatarecovery_1", + "displayName": "(Enable) The Ransomware data recovery area is hidden.", + "description": "(Enable) The Ransomware data recovery area is hidden." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidesecureboot", + "displayName": "Hide Secure Boot", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidesecureboot_0", + "displayName": "(Disable or not configured) The Secure boot area is displayed.", + "description": "(Disable or not configured) The Secure boot area is displayed." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidesecureboot_1", + "displayName": "(Enable) The Secure boot area is hidden.", + "description": "(Enable) The Secure boot area is hidden." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidetpmtroubleshooting", + "displayName": "Hide TPM Troubleshooting", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidetpmtroubleshooting_0", + "displayName": "(Disable or not configured) The Security processor (TPM) troubleshooting area is displayed.", + "description": "(Disable or not configured) The Security processor (TPM) troubleshooting area is displayed." + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidetpmtroubleshooting_1", + "displayName": "(Enable) The Security processor (TPM) troubleshooting area is hidden.", + "description": "(Enable) The Security processor (TPM) troubleshooting area is hidden." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidewindowssecuritynotificationareacontrol", + "displayName": "Hide Windows Security Notification Area Control", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidewindowssecuritynotificationareacontrol_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_hidewindowssecuritynotificationareacontrol_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_phone", + "displayName": "Phone", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_windowsdefendersecuritycenter_url", + "displayName": "URL", + "options": null + }, + { + "id": "device_vendor_msft_policy_config_windowsinkworkspace_allowsuggestedappsinwindowsinkworkspace", + "displayName": "Allow Suggested Apps In Windows Ink Workspace", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsinkworkspace_allowsuggestedappsinwindowsinkworkspace_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_windowsinkworkspace_allowsuggestedappsinwindowsinkworkspace_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowsinkworkspace_allowwindowsinkworkspace", + "displayName": "Allow Windows Ink Workspace", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowsinkworkspace_allowwindowsinkworkspace_0", + "displayName": "access to ink workspace is disabled. The feature is turned off.", + "description": "access to ink workspace is disabled. The feature is turned off." + }, + { + "id": "device_vendor_msft_policy_config_windowsinkworkspace_allowwindowsinkworkspace_1", + "displayName": "ink workspace is enabled (feature is turned on), but the user cannot access it above the lock screen.", + "description": "ink workspace is enabled (feature is turned on), but the user cannot access it above the lock screen." + }, + { + "id": "device_vendor_msft_policy_config_windowsinkworkspace_allowwindowsinkworkspace_2", + "displayName": "ink workspace is enabled (feature is turned on), and the user is allowed to use it above the lock screen.", + "description": "ink workspace is enabled (feature is turned on), and the user is allowed to use it above the lock screen." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_allowautomaticrestartsignon", + "displayName": "Sign-in and lock last interactive user automatically after a restart", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_allowautomaticrestartsignon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_allowautomaticrestartsignon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_configautomaticrestartsignon", + "displayName": "Configure the mode of automatically signing in and locking last interactive user after a restart or cold boot", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_configautomaticrestartsignon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_configautomaticrestartsignon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_configautomaticrestartsignon_configautomaticrestartsignondescription", + "displayName": "Configure the mode of automatically signing in and locking last interactive user after a restart or cold boot (Device)", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_configautomaticrestartsignon_configautomaticrestartsignondescription_0", + "displayName": "Enabled if BitLocker is on and not suspended", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_configautomaticrestartsignon_configautomaticrestartsignondescription_1", + "displayName": "Always Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_disablelockscreenappnotifications", + "displayName": "Turn off app notifications on the lock screen", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_disablelockscreenappnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_disablelockscreenappnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_dontdisplaynetworkselectionui", + "displayName": "Do not display network selection UI", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_dontdisplaynetworkselectionui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_dontdisplaynetworkselectionui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_enablefirstlogonanimation", + "displayName": "Enable First Logon Animation", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_enablefirstlogonanimation_0", + "displayName": "Disabled", + "description": "Disabled." + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_enablefirstlogonanimation_1", + "displayName": "Enabled", + "description": "Enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_enablemprnotifications", + "displayName": "Enable MPR notifications for the system", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_enablemprnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_enablemprnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_enumeratelocalusersondomainjoinedcomputers", + "displayName": "Enumerate local users on domain-joined computers", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_enumeratelocalusersondomainjoinedcomputers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_enumeratelocalusersondomainjoinedcomputers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_hidefastuserswitching", + "displayName": "Hide Fast User Switching", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_hidefastuserswitching_0", + "displayName": "Disabled", + "description": "Disabled (visible)." + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_hidefastuserswitching_1", + "displayName": "Enabled", + "description": "Enabled (hidden)." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_overrideshellprogram", + "displayName": "Override Shell Program", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowslogon_overrideshellprogram_0", + "displayName": "Not Configured", + "description": "Not Configured" + }, + { + "id": "device_vendor_msft_policy_config_windowslogon_overrideshellprogram_1", + "displayName": "Apply Lightweight shell", + "description": "Apply Lightweight shell" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging", + "displayName": "Turn on PowerShell Script Block Logging", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_enablescriptblockinvocationlogging", + "displayName": "Log script block invocation start / stop events:", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_enablescriptblockinvocationlogging_0", + "displayName": "False", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_enablescriptblockinvocationlogging_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowaudioinput", + "displayName": "Allow Audio Input", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowaudioinput_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowaudioinput_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowclipboardredirection", + "displayName": "Allow Clipboard Redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowclipboardredirection_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowclipboardredirection_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allownetworking", + "displayName": "Allow Networking", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowssandbox_allownetworking_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allownetworking_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowprinterredirection", + "displayName": "Allow Printer Redirection", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowprinterredirection_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowprinterredirection_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowvgpu", + "displayName": "Allow VGPU", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowvgpu_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowvgpu_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowvideoinput", + "displayName": "Allow Video Input", + "options": [ + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowvideoinput_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_windowssandbox_allowvideoinput_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowmdnsadvertisement", + "displayName": "Allow Mdns Advertisement", + "options": [ + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowmdnsadvertisement_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowmdnsadvertisement_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowmdnsdiscovery", + "displayName": "Allow Mdns Discovery", + "options": [ + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowmdnsdiscovery_0", + "displayName": "Not allowed.", + "description": "Not allowed." + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowmdnsdiscovery_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectionfrompc", + "displayName": "Allow Projection From PC", + "options": [ + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectionfrompc_0", + "displayName": "Your PC cannot discover or project to other devices.", + "description": "Your PC cannot discover or project to other devices." + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectionfrompc_1", + "displayName": "Your PC can discover and project to other devices.", + "description": "Your PC can discover and project to other devices." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectionfrompcoverinfrastructure", + "displayName": "Allow Projection From PC Over Infrastructure", + "options": [ + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectionfrompcoverinfrastructure_0", + "displayName": "Your PC cannot discover or project to other infrastructure devices, although it is possible to discover and project over WiFi Direct.", + "description": "Your PC cannot discover or project to other infrastructure devices, although it is possible to discover and project over WiFi Direct." + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectionfrompcoverinfrastructure_1", + "displayName": "Your PC can discover and project to other devices over infrastructure.", + "description": "Your PC can discover and project to other devices over infrastructure." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectiontopc", + "displayName": "Allow Projection To PC", + "options": [ + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectiontopc_0", + "displayName": "Projection to PC is not allowed. Always off and the user cannot enable it.", + "description": "Projection to PC is not allowed. Always off and the user cannot enable it." + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectiontopc_1", + "displayName": "Projection to PC is allowed. Enabled only above the lock screen.", + "description": "Projection to PC is allowed. Enabled only above the lock screen." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectiontopcoverinfrastructure", + "displayName": "Allow Projection To PC Over Infrastructure", + "options": [ + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectiontopcoverinfrastructure_0", + "displayName": "Your PC is not discoverable and other devices cannot project to it over infrastructure, although it is possible to project to it over WiFi Direct.", + "description": "Your PC is not discoverable and other devices cannot project to it over infrastructure, although it is possible to project to it over WiFi Direct." + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowprojectiontopcoverinfrastructure_1", + "displayName": "Your PC is discoverable and other devices can project to it over infrastructure.", + "description": "Your PC is discoverable and other devices can project to it over infrastructure." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowuserinputfromwirelessdisplayreceiver", + "displayName": "Allow User Input From Wireless Display Receiver", + "options": [ + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowuserinputfromwirelessdisplayreceiver_0", + "displayName": "Wireless display input disabled.", + "description": "Wireless display input disabled." + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_allowuserinputfromwirelessdisplayreceiver_1", + "displayName": "Wireless display input enabled.", + "description": "Wireless display input enabled." + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_requirepinforpairing", + "displayName": "Require Pin For Pairing", + "options": [ + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_requirepinforpairing_0", + "displayName": "PIN is not required.", + "description": "PIN is not required." + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_requirepinforpairing_1", + "displayName": "Pairing ceremony for new devices will always require a PIN", + "description": "Pairing ceremony for new devices will always require a PIN" + }, + { + "id": "device_vendor_msft_policy_config_wirelessdisplay_requirepinforpairing_2", + "displayName": "All pairings will require PIN", + "description": "All pairings will require PIN" + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowdebugshell", + "displayName": "Allow the debug shell", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowdebugshell_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowdebugshell_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowdiskmount", + "displayName": "Allow passthrough disk mount", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowdiskmount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowdiskmount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowinboxwsl", + "displayName": "Allow the Inbox version of the Windows Subsystem For Linux", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowinboxwsl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowinboxwsl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowwsl", + "displayName": "Allow the Windows Subsystem For Linux", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowwsl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowwsl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowwsl1", + "displayName": "Allow WSL1", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowwsl1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_allowwsl1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customkernelcommandlineusersettingconfigurable", + "displayName": "Allow kernel command line configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customkernelcommandlineusersettingconfigurable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customkernelcommandlineusersettingconfigurable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customkernelusersettingconfigurable", + "displayName": "Allow custom kernel configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customkernelusersettingconfigurable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customkernelusersettingconfigurable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customnetworkingusersettingconfigurable", + "displayName": "Allow custom networking configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customnetworkingusersettingconfigurable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customnetworkingusersettingconfigurable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customsystemdistrousersettingconfigurable", + "displayName": "Allow custom system distribution configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customsystemdistrousersettingconfigurable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_customsystemdistrousersettingconfigurable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_firewallusersettingconfigurable", + "displayName": "Allow user setting firewall configuration", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_firewallusersettingconfigurable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_firewallusersettingconfigurable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_kerneldebugusersettingconfigurable", + "displayName": "Allow kernel debugging", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_kerneldebugusersettingconfigurable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_kerneldebugusersettingconfigurable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_nestedvirtualizationusersettingconfigurable", + "displayName": "Allow nested virtualization", + "options": [ + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_nestedvirtualizationusersettingconfigurable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "device_vendor_msft_policy_config_wslv1~policy~wsl_nestedvirtualizationusersettingconfigurable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_allowelevationdetection", + "displayName": "(Preview) Automatically detect elevations", + "options": [ + { + "id": "device_vendor_msft_policy_elevationclientsettings_allowelevationdetection_0", + "displayName": "No", + "description": "No" + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_allowelevationdetection_1", + "displayName": "Yes", + "description": "Yes" + } + ] + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_defaultelevationresponse", + "displayName": "Default elevation response", + "options": [ + { + "id": "device_vendor_msft_policy_elevationclientsettings_defaultelevationresponse_0", + "displayName": "Deny all requests", + "description": "Deny all requests" + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_defaultelevationresponse_1", + "displayName": "Require user confirmation", + "description": "Require user confirmation" + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_defaultelevationresponse_2", + "displayName": "Require support approval", + "description": "Require support approval" + } + ] + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_enableepm", + "displayName": "Endpoint Privilege Management", + "options": [ + { + "id": "device_vendor_msft_policy_elevationclientsettings_enableepm_1", + "displayName": "Enabled", + "description": "Enabled" + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_enableepm_0", + "displayName": "Disabled", + "description": "Turning off this feature will uninstall the companion client from assigned devices if one is already installed" + } + ] + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_reportingscope", + "displayName": "Reporting scope", + "options": [ + { + "id": "device_vendor_msft_policy_elevationclientsettings_reportingscope_1", + "displayName": "Diagnostic data and managed elevations only", + "description": "Diagnostic data and managed elevations only" + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_reportingscope_2", + "displayName": "Diagnostic data and all endpoint elevations", + "description": "Diagnostic data and all endpoint elevations" + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_reportingscope_0", + "displayName": "Diagnostic data only", + "description": "Diagnostic data only" + } + ] + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_senddata", + "displayName": "Send elevation data for reporting", + "options": [ + { + "id": "device_vendor_msft_policy_elevationclientsettings_senddata_1", + "displayName": "Yes", + "description": "Yes" + }, + { + "id": "device_vendor_msft_policy_elevationclientsettings_senddata_0", + "displayName": "No", + "description": "No" + } + ] + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationclientsettings_defaultelevationresponse_validation", + "displayName": "Validation", + "options": [ + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationclientsettings_defaultelevationresponse_validation_0", + "displayName": "Business justification", + "description": "Business Justification" + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationclientsettings_defaultelevationresponse_validation_1", + "displayName": "Windows authentication", + "description": "Windows Authentication" + } + ] + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}", + "displayName": "Elevation Rule Name", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_appliesto", + "displayName": "Applies to", + "options": { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_allusers", + "displayName": "All device users", + "description": null + } + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_certificatefileupload", + "displayName": "File upload", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_certificatepayloadwithreusablesetting", + "displayName": "Certificate", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_certificatetype", + "displayName": "Certificate type", + "options": [ + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_publisher", + "displayName": "Publisher", + "description": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_issuingauthority", + "displayName": "Certificate authority", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_childprocessbehavior", + "displayName": "Child process behavior", + "options": [ + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_allowrunelevated", + "displayName": "Allow all child processes to run elevated", + "description": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_allowrunelevatedrulerequired", + "displayName": "Require rule to elevate", + "description": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_deny", + "displayName": "Deny all", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_description", + "displayName": "Description", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_filedescription", + "displayName": "File description", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_filehash", + "displayName": "File hash", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_filename", + "displayName": "File name", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_filepath", + "displayName": "File path", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_fileversion", + "displayName": "Minimum version", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_internalname", + "displayName": "Internal name", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_name", + "displayName": "Rule name", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_productname", + "displayName": "Product name", + "options": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_ruletype", + "displayName": "Elevation type", + "options": [ + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_self", + "displayName": "User confirmed", + "description": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_automatic", + "displayName": "Automatic", + "description": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_supportarbitrated", + "displayName": "Support approved", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_ruletype_validation", + "displayName": "Validation", + "options": [ + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_ruletype_validation_0", + "displayName": "Business justification", + "description": "Business Justification" + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_ruletype_validation_1", + "displayName": "Windows authentication", + "description": "Windows Authentication" + } + ] + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_signaturesource", + "displayName": "Signature source", + "options": [ + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_signaturesource_0", + "displayName": "Use a certificate file in reusable settings", + "description": null + }, + { + "id": "device_vendor_msft_policy_privilegemanagement_elevationrules_{elevationrulename}_signaturesource_1", + "displayName": "Upload a certificate file", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_reboot_schedule_dailyrecurrent", + "displayName": "Daily Recurrent", + "options": null + }, + { + "id": "device_vendor_msft_reboot_schedule_single", + "displayName": "Single", + "options": null + }, + { + "id": "device_vendor_msft_reboot_schedule_weeklyrecurrent", + "displayName": "Weekly Recurrent (Windows Insiders only)", + "options": null + }, + { + "id": "device_vendor_msft_scepcertificate_certificatetype", + "displayName": "CertificateType", + "options": null + }, + { + "id": "device_vendor_msft_scepcertificate_certificatevalidityperiod", + "displayName": "Certificate validity period", + "options": null + }, + { + "id": "device_vendor_msft_scepcertificate_hashalgorithm", + "displayName": "Hash algorithm", + "options": null + }, + { + "id": "device_vendor_msft_scepcertificate_keystorageprovider", + "displayName": "Key storage provider (KSP)", + "options": null + }, + { + "id": "device_vendor_msft_scepcertificate_keyusage", + "displayName": "Key usage", + "options": null + }, + { + "id": "device_vendor_msft_scepcertificate_rootcertificate", + "displayName": "Root Certificate", + "options": null + }, + { + "id": "device_vendor_msft_scepcertificate_scepserverurls", + "displayName": "SCEP Server URLs", + "options": null + }, + { + "id": "device_vendor_msft_scepcertificate_subjectnameformat", + "displayName": "Subject name format", + "options": null + }, + { + "id": "device_vendor_msft_trustedcertificate_certificatefile", + "displayName": "Certificate file", + "options": null + }, + { + "id": "device_vendor_msft_trustedcertificate_destinationstore", + "displayName": "Destination Store", + "options": null + }, + { + "id": "device_vendor_msft_vpnconnection_connectionname", + "displayName": "Connection name", + "options": null + }, + { + "id": "device_vendor_msft_vpnconnection_connectiontype", + "displayName": "Connection type", + "options": null + }, + { + "id": "device_vendor_msft_vpnconnection_profilewithuserordevicescope", + "displayName": "Use this VPN profile with a user/device scope", + "options": null + }, + { + "id": "device_vendor_msft_vpnconnection_servers", + "displayName": "Servers", + "options": null + }, + { + "id": "device_vendor_msft_wifi_profile_{ssid}_proxy", + "displayName": "Company proxy settings", + "options": null + }, + { + "id": "device_vendor_msft_wifi_profile_{ssid}_proxypacurl", + "displayName": "Connect Automatically when in range", + "options": null + }, + { + "id": "device_vendor_msft_wifi_profile_{ssid}_proxywpad", + "displayName": "Connect to this network, even when its not broadcasting its SSID", + "options": null + }, + { + "id": "device_vendor_msft_wifi_profile_{ssid}_wificost", + "displayName": "Metered connection limit", + "options": null + }, + { + "id": "device_vendor_msft_wifi_profile_{ssid}_wlanxml", + "displayName": "Wireless security type", + "options": null + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configuration_samplesharing", + "displayName": "Sample Sharing", + "options": [ + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configuration_samplesharing_0", + "displayName": "None", + "description": null + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configuration_samplesharing_1", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configuration_telemetryreportingfrequency", + "displayName": "[Deprecated] Telemetry Reporting Frequency", + "options": [ + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configuration_telemetryreportingfrequency_1", + "displayName": "Normal", + "description": null + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configuration_telemetryreportingfrequency_2", + "displayName": "Expedite", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configurationtype", + "displayName": "Microsoft Defender for Endpoint client configuration package type", + "options": [ + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configurationtype_autofromconnector", + "displayName": "Auto from connector", + "description": null + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configurationtype_onboard", + "displayName": "Onboard", + "description": null + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_configurationtype_offboard", + "displayName": "Offboard", + "description": null + } + ] + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_offboarding", + "displayName": "Offboarding (Device)", + "options": null + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_onboarding", + "displayName": "Onboarding (Device)", + "options": null + }, + { + "id": "device_vendor_msft_windowsadvancedthreatprotection_onboarding_fromconnector", + "displayName": "Onboarding blob from Connector", + "options": null + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_audit_auditapplicationguard", + "displayName": "Audit Application Guard", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_audit_auditapplicationguard_0", + "displayName": "Disabled", + "description": "Audit event logs aren't collected for Application Guard." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_audit_auditapplicationguard_1", + "displayName": "Enabled", + "description": "Application Guard inherits its auditing policies from system and starts to audit security events for Application Guard container." + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_installwindowsdefenderapplicationguard", + "displayName": "Install Windows defender application guard", + "options": { + "id": "device_vendor_msft_windowsdefenderapplicationguard_installwindowsdefenderapplicationguard_install", + "displayName": "Install - Will initiate feature install", + "description": "Will initiate feature install." + } + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_platformstatus", + "displayName": "Platform status", + "options": null + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowcameramicrophoneredirection", + "displayName": "Allow camera and microphone access", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowcameramicrophoneredirection_0", + "displayName": "Disabled", + "description": "Microsoft Defender Application Guard cannot access the device's camera and microphone. When the policy is not configured, it is the same as disabled (0)." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowcameramicrophoneredirection_1", + "displayName": "Enabled", + "description": "Turns on the functionality to allow Microsoft Defender Application Guard to access the device's camera and microphone." + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowpersistence", + "displayName": "Allow data persistence", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowpersistence_0", + "displayName": "Disabled", + "description": "Application Guard discards user-downloaded files and other items (such as, cookies, Favorites, and so on) during machine restart or user log-off." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowpersistence_1", + "displayName": "Enabled", + "description": "Application Guard saves user-downloaded files and other items (such as, cookies, Favorites, and so on) for use in future Application Guard sessions." + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowvirtualgpu", + "displayName": "Allow hardware-accelerated rendering", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowvirtualgpu_0", + "displayName": "Disabled", + "description": "Cannot access the vGPU and uses the CPU to support rendering graphics. When the policy is not configured, it is the same as disabled (0)." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowvirtualgpu_1", + "displayName": "Enabled", + "description": "Turns on the functionality to access the vGPU offloading graphics rendering from the CPU. This can create a faster experience when working with graphics intense websites or watching video within the container." + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowwindowsdefenderapplicationguard", + "displayName": "Turn on Microsoft Defender Application Guard", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowwindowsdefenderapplicationguard_0", + "displayName": "Disabled", + "description": "Disable Microsoft Defender Application Guard" + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowwindowsdefenderapplicationguard_1", + "displayName": "Enabled for Microsoft Edge ONLY", + "description": "Enable Microsoft Defender Application Guard for Microsoft Edge ONLY" + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowwindowsdefenderapplicationguard_2", + "displayName": "Enabled for isolated Windows environments ONLY", + "description": "Enable Microsoft Defender Application Guard for isolated Windows environments ONLY" + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_allowwindowsdefenderapplicationguard_3", + "displayName": "Enabled for Microsoft Edge AND isolated Windows environments", + "description": "Enable Microsoft Defender Application Guard for Microsoft Edge AND isolated Windows environments" + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_certificatethumbprints", + "displayName": "Certificate Thumbprints", + "options": null + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardfiletype", + "displayName": "Clipboard content options", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardfiletype_1", + "displayName": "Allow text copying", + "description": "Allow text copying." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardfiletype_2", + "displayName": "Allow image copying", + "description": "Allow image copying." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardfiletype_3", + "displayName": "Allow both text and image copying", + "description": "Allow text and image copying." + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardsettings", + "displayName": "Clipboard behavior settings", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardsettings_0", + "displayName": "Disable clipboard functionality completely", + "description": "Completely turns Off the clipboard functionality for the Application Guard." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardsettings_1", + "displayName": "Enable clipboard operation from Application Guard to the host", + "description": "Turns On clipboard operation from an isolated session to the host." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardsettings_2", + "displayName": "Enable clipboard operation from the host to Application Guard", + "description": "Turns On clipboard operation from the host to an isolated session." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_clipboardsettings_3", + "displayName": "Enable clipboard operation in both directions", + "description": "Turns On clipboard operation in both the directions." + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_printingsettings", + "displayName": "Print Settings", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_printingsettings_0", + "displayName": "Disable all print functionality", + "description": "Disables all print functionality." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_printingsettings_1", + "displayName": "Enable XPS printing", + "description": "Enables only XPS printing." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_printingsettings_2", + "displayName": "Enable PDF printing", + "description": "Enables only PDF printing." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_printingsettings_4", + "displayName": "Enable local printing", + "description": "Enables only local printing." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_printingsettings_8", + "displayName": "Enable network printing", + "description": "Enables only network printing." + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_savefilestohost", + "displayName": "Allow files to download and save to the host operating system", + "options": [ + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_savefilestohost_0", + "displayName": "Disabled", + "description": "The user cannot download files from Edge in the container to the host file system. When the policy is not configured, it is the same as disabled (0)." + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_settings_savefilestohost_1", + "displayName": "Enabled", + "description": "Turns on the functionality to allow users to download files from Edge in the container to the host file system." + } + ] + }, + { + "id": "device_vendor_msft_windowsdefenderapplicationguard_status", + "displayName": "Status", + "options": null + }, + { + "id": "diskmanagement_diskmanagement", + "displayName": "com.apple.configuration.diskmanagement.settings", + "options": null + }, + { + "id": "diskmanagement_restrictions", + "displayName": "Restrictions", + "options": null + }, + { + "id": "diskmanagement_restrictions_externalstorage", + "displayName": "External Storage", + "options": [ + { + "id": "diskmanagement_restrictions_externalstorage_0", + "displayName": "Allowed", + "description": null + }, + { + "id": "diskmanagement_restrictions_externalstorage_1", + "displayName": "ReadOnly", + "description": null + }, + { + "id": "diskmanagement_restrictions_externalstorage_2", + "displayName": "Disallowed", + "description": null + } + ] + }, + { + "id": "diskmanagement_restrictions_networkstorage", + "displayName": "Network Storage", + "options": [ + { + "id": "diskmanagement_restrictions_networkstorage_0", + "displayName": "Allowed", + "description": null + }, + { + "id": "diskmanagement_restrictions_networkstorage_1", + "displayName": "ReadOnly", + "description": null + }, + { + "id": "diskmanagement_restrictions_networkstorage_2", + "displayName": "Disallowed", + "description": null + } + ] + }, + { + "id": "enforcement_detailsurl", + "displayName": "Details URL", + "options": null + }, + { + "id": "enforcement_enforcement", + "displayName": "com.apple.configuration.softwareupdate.enforcement.specific", + "options": null + }, + { + "id": "enforcement_targetbuildversion", + "displayName": "Target Build Version", + "options": null + }, + { + "id": "enforcement_targetlocaldatetime", + "displayName": "Target Date Time (UTC)", + "options": null + }, + { + "id": "enforcement_targetosversion", + "displayName": "Target OS Version", + "options": null + }, + { + "id": "enrollment_autopilot_dpp_accountype", + "displayName": "User account type", + "options": [ + { + "id": "enrollment_autopilot_dpp_accountype_0", + "displayName": "Administrator", + "description": null + }, + { + "id": "enrollment_autopilot_dpp_accountype_1", + "displayName": "Standard User", + "description": null + } + ] + }, + { + "id": "enrollment_autopilot_dpp_allowdiagnostics", + "displayName": "Show link to diagnostics", + "options": [ + { + "id": "enrollment_autopilot_dpp_allowdiagnostics_0", + "displayName": "No", + "description": null + }, + { + "id": "enrollment_autopilot_dpp_allowdiagnostics_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "enrollment_autopilot_dpp_allowedappids", + "displayName": "Allowed Applications", + "options": null + }, + { + "id": "enrollment_autopilot_dpp_allowedpolicyids", + "displayName": "Allowed Policies", + "options": null + }, + { + "id": "enrollment_autopilot_dpp_allowedscriptids", + "displayName": "Allowed Scripts", + "options": null + }, + { + "id": "enrollment_autopilot_dpp_allowskip", + "displayName": "Allow users to skip setup after multiple attempts", + "options": [ + { + "id": "enrollment_autopilot_dpp_allowskip_0", + "displayName": "No", + "description": null + }, + { + "id": "enrollment_autopilot_dpp_allowskip_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "enrollment_autopilot_dpp_customerrormessage", + "displayName": "Custom error message", + "options": null + }, + { + "id": "enrollment_autopilot_dpp_deploymentmode", + "displayName": "Deployment mode", + "options": { + "id": "enrollment_autopilot_dpp_deploymentmode_0", + "displayName": "User-driven", + "description": "Devices are associated with the user enrolling the device and user credentials are required to provision the device" + } + }, + { + "id": "enrollment_autopilot_dpp_deploymenttype", + "displayName": "Deployment type", + "options": { + "id": "enrollment_autopilot_dpp_deploymenttype_0", + "displayName": "Single user", + "description": null + } + }, + { + "id": "enrollment_autopilot_dpp_devicesecuritygroupids", + "displayName": "Device security group", + "options": null + }, + { + "id": "enrollment_autopilot_dpp_jointype", + "displayName": "Join type", + "options": { + "id": "enrollment_autopilot_dpp_jointype_0", + "displayName": "Microsoft Entra joined", + "description": "Cloud-only without an on-premises Windows Server Active Directory" + } + }, + { + "id": "enrollment_autopilot_dpp_timeout", + "displayName": "Minutes allowed before showing installation error", + "options": null + }, + { + "id": "enrollment_restriction_blockmdmenrollment", + "displayName": "Block MDM enrollment", + "options": [ + { + "id": "enrollment_restriction_blockmdmenrollment_0", + "displayName": "No", + "description": null + }, + { + "id": "enrollment_restriction_blockmdmenrollment_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "extensionsettings_extensionsettings", + "displayName": "com.apple.configuration.safari.extensions.settings", + "options": null + }, + { + "id": "extensionsettings_managedextensions", + "displayName": "Managed Extensions", + "options": null + }, + { + "id": "extensionsettings_managedextensions_generickey", + "displayName": "ANY", + "options": null + }, + { + "id": "extensionsettings_managedextensions_generickey_alloweddomains", + "displayName": "Allowed Domains", + "options": null + }, + { + "id": "extensionsettings_managedextensions_generickey_denieddomains", + "displayName": "Denied Domains", + "options": null + }, + { + "id": "extensionsettings_managedextensions_generickey_keytobereplaced", + "displayName": "Managed Extensions", + "options": null + }, + { + "id": "extensionsettings_managedextensions_generickey_privatebrowsing", + "displayName": "Private Browsing", + "options": [ + { + "id": "extensionsettings_managedextensions_generickey_privatebrowsing_0", + "displayName": "Allowed", + "description": null + }, + { + "id": "extensionsettings_managedextensions_generickey_privatebrowsing_1", + "displayName": "AlwaysOn", + "description": null + }, + { + "id": "extensionsettings_managedextensions_generickey_privatebrowsing_2", + "displayName": "AlwaysOff", + "description": null + } + ] + }, + { + "id": "extensionsettings_managedextensions_generickey_state", + "displayName": "State", + "options": [ + { + "id": "extensionsettings_managedextensions_generickey_state_0", + "displayName": "Allowed", + "description": null + }, + { + "id": "extensionsettings_managedextensions_generickey_state_1", + "displayName": "Always On", + "description": null + }, + { + "id": "extensionsettings_managedextensions_generickey_state_2", + "displayName": "Always Off", + "description": null + } + ] + }, + { + "id": "linux_customconfig_executioncontext", + "displayName": "Execution context", + "options": [ + { + "id": "linux_customconfig_executioncontext_root", + "displayName": "Root", + "description": null + }, + { + "id": "linux_customconfig_executioncontext_user", + "displayName": "User", + "description": null + } + ] + }, + { + "id": "linux_customconfig_executionfrequency", + "displayName": "Execution frequency", + "options": [ + { + "id": "linux_customconfig_executionfrequency_15minutes", + "displayName": "Every 15 minutes", + "description": null + }, + { + "id": "linux_customconfig_executionfrequency_30minutes", + "displayName": "Every 30 minutes", + "description": null + }, + { + "id": "linux_customconfig_executionfrequency_1hour", + "displayName": "Every 1 hour", + "description": null + }, + { + "id": "linux_customconfig_executionfrequency_2hours", + "displayName": "Every 2 hours", + "description": null + }, + { + "id": "linux_customconfig_executionfrequency_3hours", + "displayName": "Every 3 hours", + "description": null + }, + { + "id": "linux_customconfig_executionfrequency_6hours", + "displayName": "Every 6 hours", + "description": null + }, + { + "id": "linux_customconfig_executionfrequency_12hours", + "displayName": "Every 12 hours", + "description": null + }, + { + "id": "linux_customconfig_executionfrequency_1day", + "displayName": "Every 1 day", + "description": null + }, + { + "id": "linux_customconfig_executionfrequency_1week", + "displayName": "Every 1 week", + "description": null + } + ] + }, + { + "id": "linux_customconfig_executionretries", + "displayName": "Execution retries", + "options": [ + { + "id": "linux_customconfig_executionretries_0", + "displayName": "No retries", + "description": null + }, + { + "id": "linux_customconfig_executionretries_1", + "displayName": "1 time", + "description": null + }, + { + "id": "linux_customconfig_executionretries_2", + "displayName": "2 times", + "description": null + }, + { + "id": "linux_customconfig_executionretries_3", + "displayName": "3 times", + "description": null + } + ] + }, + { + "id": "linux_customconfig_script", + "displayName": "Execution Script", + "options": null + }, + { + "id": "linux_enrollment_blockenrollment", + "displayName": "Block Linux Enrollment", + "options": [ + { + "id": "linux_blockenrollment_required_0", + "displayName": "No", + "description": null + }, + { + "id": "linux_blockenrollment_required_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_allowedthreats", + "displayName": "Allowed threats", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_behaviormonitoring", + "displayName": "Enable behavior monitoring", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_behaviormonitoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_behaviormonitoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_disallowedthreatactions", + "displayName": "Disallowed threat actions", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_enablefilehashcomputation", + "displayName": "Enable file hash computation", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_enablefilehashcomputation_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_enablefilehashcomputation_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_enablerealtimeprotection", + "displayName": "Enable real-time protection (deprecated)", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_enablerealtimeprotection_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_enablerealtimeprotection_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_enforcementlevel", + "displayName": "Enforcement Level", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_enforcementlevel_0", + "displayName": "Realtime", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_enforcementlevel_1", + "displayName": "OnDemand", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_enforcementlevel_2", + "displayName": "Passive", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions", + "displayName": "Scan exclusions", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_$type", + "displayName": "Type", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_$type_0", + "displayName": "Path", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_$type_1", + "displayName": "File extension", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_$type_2", + "displayName": "Process name", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_extension", + "displayName": "File extension", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_isdirectory", + "displayName": "Is directory", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_isdirectory_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_isdirectory_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_name", + "displayName": "File name", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusions_item_path", + "displayName": "Path", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusionsmergepolicy", + "displayName": "Exclusions merge", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_exclusionsmergepolicy_0", + "displayName": "merge", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_exclusionsmergepolicy_1", + "displayName": "admin_only", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_maximumondemandscanthreads", + "displayName": "maximum on demand scan threads", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_nonexecmountpolicy", + "displayName": "non execute mount mute", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_nonexecmountpolicy_0", + "displayName": "unmute", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_nonexecmountpolicy_1", + "displayName": "mute", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_passivemode", + "displayName": "Enable passive mode (deprecated)", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_passivemode_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_passivemode_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_scanafterdefinitionupdate", + "displayName": "Enable scanning after definition update", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_scanafterdefinitionupdate_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_scanafterdefinitionupdate_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_scanarchives", + "displayName": "Enable scanning of archives", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_scanarchives_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_scanarchives_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_scanhistorymaximumitems", + "displayName": "Scan history size", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_scanresultsretentiondays", + "displayName": "Scan results retention", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettings", + "displayName": "Threat type settings", + "options": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettings_item_key", + "displayName": "Threat type", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettings_item_key_0", + "displayName": "potentially_unwanted_application", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettings_item_key_1", + "displayName": "archive_bomb", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettings_item_value", + "displayName": "Action to take", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettings_item_value_0", + "displayName": "audit", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettings_item_value_1", + "displayName": "block", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettings_item_value_2", + "displayName": "off", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettingsmergepolicy", + "displayName": "Threat type settings merge", + "options": [ + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettingsmergepolicy_0", + "displayName": "merge", + "description": null + }, + { + "id": "linux_mdatp_managed_antivirusengine_threattypesettingsmergepolicy_1", + "displayName": "admin_only", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_antivirusengine_unmonitoredfilesystems", + "displayName": "Unmonitored Filesystems", + "options": null + }, + { + "id": "linux_mdatp_managed_cloudservice_automaticdefinitionupdateenabled", + "displayName": "Automatic security intelligence updates", + "options": [ + { + "id": "linux_mdatp_managed_cloudservice_automaticdefinitionupdateenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_automaticdefinitionupdateenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_cloudservice_automaticsamplesubmissionconsent", + "displayName": "Enable automatic sample submissions", + "options": [ + { + "id": "linux_mdatp_managed_cloudservice_automaticsamplesubmissionconsent_none", + "displayName": "None", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_automaticsamplesubmissionconsent_safe", + "displayName": "Safe", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_automaticsamplesubmissionconsent_all", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_cloudservice_cloudblocklevel", + "displayName": "Configure cloud block level", + "options": [ + { + "id": "linux_mdatp_managed_cloudservice_cloudblocklevel_normal", + "displayName": "Normal", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_cloudblocklevel_moderate", + "displayName": "Moderate", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_cloudblocklevel_high", + "displayName": "High", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_cloudblocklevel_high_plus", + "displayName": "High_Plus", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_cloudblocklevel_zero_tolerance", + "displayName": "Zero_Tolerance", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_cloudservice_diagnosticlevel", + "displayName": "Diagnostic data collection level", + "options": [ + { + "id": "linux_mdatp_managed_cloudservice_diagnosticlevel_0", + "displayName": "optional", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_diagnosticlevel_1", + "displayName": "required", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_cloudservice_enabled", + "displayName": "Enable cloud delivered protection", + "options": [ + { + "id": "linux_mdatp_managed_cloudservice_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_cloudservice_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_edr_tags", + "displayName": "Device tags", + "options": null + }, + { + "id": "linux_mdatp_managed_edr_tags_item_key", + "displayName": "Type of tag", + "options": { + "id": "linux_mdatp_managed_edr_tags_item_key_0", + "displayName": "GROUP", + "description": null + } + }, + { + "id": "linux_mdatp_managed_edr_tags_item_value", + "displayName": "Value of tag", + "options": null + }, + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions", + "displayName": "Global Exclusions", + "options": null + }, + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions_item_$type", + "displayName": "Type", + "options": [ + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions_item_$type_0", + "displayName": "Path", + "description": null + }, + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions_item_$type_1", + "displayName": "Process name", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions_item_isdirectory", + "displayName": "Is directory", + "options": [ + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions_item_isdirectory_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions_item_isdirectory_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions_item_name", + "displayName": "Process name", + "options": null + }, + { + "id": "linux_mdatp_managed_exclusionsettings_exclusions_item_path", + "displayName": "Path", + "options": null + }, + { + "id": "linux_mdatp_managed_networkprotection_enforcementlevel", + "displayName": "Enforcement Level", + "options": [ + { + "id": "linux_mdatp_managed_networkprotection_enforcementlevel_0", + "displayName": "disabled", + "description": null + }, + { + "id": "linux_mdatp_managed_networkprotection_enforcementlevel_1", + "displayName": "audit", + "description": null + }, + { + "id": "linux_mdatp_managed_networkprotection_enforcementlevel_2", + "displayName": "block", + "description": null + } + ] + }, + { + "id": "loginwindow_disableloginitemssuppression", + "displayName": "Disable Login Items Suppression", + "options": [ + { + "id": "loginwindow_disableloginitemssuppression_false", + "displayName": "False", + "description": null + }, + { + "id": "loginwindow_disableloginitemssuppression_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "loginwindow_loginwindow", + "displayName": "Top Level Setting Group Collection", + "options": null + }, + { + "id": "mathsettings_calculator", + "displayName": "Calculator", + "options": null + }, + { + "id": "mathsettings_calculator_basicmode", + "displayName": "Basic Mode", + "options": null + }, + { + "id": "mathsettings_calculator_basicmode_addsquareroot", + "displayName": "Add Square Root", + "options": [ + { + "id": "mathsettings_calculator_basicmode_addsquareroot_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "mathsettings_calculator_basicmode_addsquareroot_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "mathsettings_calculator_inputmodes", + "displayName": "Input Modes", + "options": null + }, + { + "id": "mathsettings_calculator_inputmodes_rpn", + "displayName": "RPN", + "options": [ + { + "id": "mathsettings_calculator_inputmodes_rpn_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "mathsettings_calculator_inputmodes_rpn_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "mathsettings_calculator_inputmodes_unitconversion", + "displayName": "Unit Conversion", + "options": [ + { + "id": "mathsettings_calculator_inputmodes_unitconversion_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "mathsettings_calculator_inputmodes_unitconversion_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "mathsettings_calculator_mathnotesmode", + "displayName": "Math Notes Mode", + "options": null + }, + { + "id": "mathsettings_calculator_mathnotesmode_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "mathsettings_calculator_mathnotesmode_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "mathsettings_calculator_mathnotesmode_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "mathsettings_calculator_programmermode", + "displayName": "Programmer Mode", + "options": null + }, + { + "id": "mathsettings_calculator_programmermode_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "mathsettings_calculator_programmermode_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "mathsettings_calculator_programmermode_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "mathsettings_calculator_scientificmode", + "displayName": "Scientific Mode", + "options": null + }, + { + "id": "mathsettings_calculator_scientificmode_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "mathsettings_calculator_scientificmode_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "mathsettings_calculator_scientificmode_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "mathsettings_mathsettings", + "displayName": "com.apple.configuration.math.settings", + "options": null + }, + { + "id": "mathsettings_systembehavior", + "displayName": "System Behavior", + "options": null + }, + { + "id": "mathsettings_systembehavior_keyboardsuggestions", + "displayName": "Keyboard Suggestions", + "options": [ + { + "id": "mathsettings_systembehavior_keyboardsuggestions_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "mathsettings_systembehavior_keyboardsuggestions_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "mathsettings_systembehavior_mathnotes", + "displayName": "Math Notes", + "options": [ + { + "id": "mathsettings_systembehavior_mathnotes_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "mathsettings_systembehavior_mathnotes_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "osrecoverysettings_acceptlicense", + "displayName": "Automatically accept license terms", + "options": [ + { + "id": "osrecoverysettings_acceptlicense_0", + "displayName": "No", + "description": null + }, + { + "id": "osrecoverysettings_acceptlicense_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "osrecoverysettings_baselanguage", + "displayName": "Base language", + "options": [ + { + "id": "osrecoverysettings_baselanguage_arabic", + "displayName": "Arabic", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_bulgarian", + "displayName": "Bulgarian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_chinese_simplified", + "displayName": "Chinese (Simplified)", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_chinese_traditional", + "displayName": "Chinese (Traditional)", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_croatian", + "displayName": "Croatian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_czech", + "displayName": "Czech", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_danish", + "displayName": "Danish", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_dutch", + "displayName": "Dutch", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_english", + "displayName": "English (United States)", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_english_uk", + "displayName": "English (United Kingdom)", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_estonian", + "displayName": "Estonian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_finnish", + "displayName": "Finnish", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_french", + "displayName": "French", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_french_canada", + "displayName": "French (Canada)", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_german", + "displayName": "German", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_greek", + "displayName": "Greek", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_hebrew", + "displayName": "Hebrew", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_hungarian", + "displayName": "Hungarian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_italian", + "displayName": "Italian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_japanese", + "displayName": "Japanese", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_korean", + "displayName": "Korean", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_latvian", + "displayName": "Latvian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_lithuanian", + "displayName": "Lithuanian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_norwegian", + "displayName": "Norwegian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_polish", + "displayName": "Polish", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_portuguese", + "displayName": "Portuguese (Portugal)", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_portuguesebrazil", + "displayName": "Portuguese(Brazil)", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_romanian", + "displayName": "Romanian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_russian", + "displayName": "Russian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_serbian_latin ", + "displayName": "Serbian Latin", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_slovak", + "displayName": "Slovak", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_slovenian", + "displayName": "Slovenian", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_spanish", + "displayName": "Spanish", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_spanishmexico", + "displayName": "Spanish (Mexico)", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_swedish", + "displayName": "Swedish", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_thai", + "displayName": "Thai", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_turkish", + "displayName": "Turkish", + "description": null + }, + { + "id": "osrecoverysettings_baselanguage_ukrainian", + "displayName": "Ukrainian", + "description": null + } + ] + }, + { + "id": "osrecoverysettings_createrecoverypartition", + "displayName": "Create recovery partition", + "options": [ + { + "id": "osrecoverysettings_createrecoverypartition_0", + "displayName": "No", + "description": null + }, + { + "id": "osrecoverysettings_createrecoverypartition_1", + "displayName": "Yes", + "description": null + } + ] + }, + { + "id": "osrecoverysettings_formatdisk", + "displayName": "Format disk", + "options": [ + { + "id": "osrecoverysettings_formatdisk_0", + "displayName": "Format windows partition", + "description": null + }, + { + "id": "osrecoverysettings_formatdisk_1", + "displayName": "Format all partition", + "description": null + } + ] + }, + { + "id": "osrecoverysettings_keyboardsettings", + "displayName": "Keyboard settings", + "options": [ + { + "id": "osrecoverysettings_keyboardsettings_afrikaans", + "displayName": "Afrikaans", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_afrikaansn", + "displayName": "Afrikaans (Namibia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_albanian", + "displayName": "Albanian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_albaniank", + "displayName": "Albanian (Kosovo)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_alsatianf", + "displayName": "Alsatian (France)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_amharic", + "displayName": "Amharic", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabic", + "displayName": "Arabic", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabica", + "displayName": "Arabic (Algeria)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabicb", + "displayName": "Arabic (Bahrain)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabice", + "displayName": "Arabic (Egypt)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabici", + "displayName": "Arabic (Iraq)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabicj)", + "displayName": "Arabic (Jordan)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabick", + "displayName": "Arabic (Kuwait)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabicl", + "displayName": "Arabic (Lebanon)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabicli", + "displayName": "Arabic (Libya)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabicm", + "displayName": "Arabic (Morocco)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arbaico", + "displayName": "Arabic (Oman)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arbaicq", + "displayName": "Arabic (Qatar)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arbaics", + "displayName": "Arabic (Syria)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arbaict", + "displayName": "Arabic (Tunisia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arbaicu", + "displayName": "Arabic (United Arab Emirates)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabicw", + "displayName": "Arabic (World)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_arabicy", + "displayName": "Arabic (Yemen)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_armenian", + "displayName": "Armenian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_assamese", + "displayName": "Assamese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_azerbaijani", + "displayName": "Azerbaijani", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_azerbaijanic", + "displayName": "Azerbaijani (Cyrillic)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_bangla", + "displayName": "Bangla", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_bashkir", + "displayName": "Bashkir", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_basque", + "displayName": "Basque", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_belarusian", + "displayName": "Belarusian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_bengali", + "displayName": "Bengali (India)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_bosnian", + "displayName": "Bosnian (Latin)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_breton", + "displayName": "Breton", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_bulgarian", + "displayName": "Bulgarian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_burmese", + "displayName": "Burmese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_catalan", + "displayName": "Catalan", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_catalana", + "displayName": "Catalan (Andorra)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_catalanfrance", + "displayName": "Catalan (France)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_catalanitaly", + "displayName": "Catalan (Italy)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_centralatlastamazight", + "displayName": "Central Atlas Tamazight", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_centralatlastamazightarabic", + "displayName": "Central Atlas Tamazight (Arabic)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_centralatlastamazighttifinagh", + "displayName": "Central Atlas Tamazight (Tifinagh)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_centralkurdish", + "displayName": "Central Kurdish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_chechen", + "displayName": "Chechen", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_cherokee", + "displayName": "Cherokee", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_chinese", + "displayName": "Chinese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_chinesesimplifiedhongkongsar", + "displayName": "Chinese (Simplified, Hong Kong SAR)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_chinesesimplifiedmacaosar", + "displayName": "Chinese (Simplified, Macao SAR)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_chinesetraditional", + "displayName": "Chinese (Traditional)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_chinesetraditionaltaiwan", + "displayName": "Chinese (Traditional, Taiwan)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_churchslavic", + "displayName": "Church Slavic", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_colognian", + "displayName": "Colognian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_cornish", + "displayName": "Cornish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_corsican", + "displayName": "Corsican", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_croatian", + "displayName": "Croatian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_croatianbosniaherzegovina", + "displayName": "Croatian (Bosnia & Herzegovina)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_czech", + "displayName": "Czech", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_danish", + "displayName": "Danish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_danishgreenland", + "displayName": "Danish (Greenland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_divehi", + "displayName": "Divehi", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_dutch", + "displayName": "Dutch", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_dutcharuba", + "displayName": "Dutch (Aruba)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_dutchbelgium", + "displayName": "Dutch (Belgium)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_dutchbonaires", + "displayName": "Dutch (Bonaire, Sint Eustatius and Saba)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_dutchcuracao", + "displayName": "Dutch (Curaçao)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_dutchsintmaarten", + "displayName": "Dutch (Sint Maarten)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_dutchsuriname", + "displayName": "Dutch (Suriname)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_dzongkha", + "displayName": "Dzongkha", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_english", + "displayName": "English", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishaustralia", + "displayName": "English (Australia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishaustria", + "displayName": "English (Austria)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishbelgium", + "displayName": "English (Belgium)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishbelize", + "displayName": "English (Belize)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishbritishvirginislands", + "displayName": "English (British Virgin Islands)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishburundi", + "displayName": "English (Burundi)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishcanada", + "displayName": "English (Canada)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishcaribbean", + "displayName": "English (Caribbean)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishdenmark", + "displayName": "English (Denmark)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishfalklandislands", + "displayName": "English (Falkland Islands)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishfinland", + "displayName": "English (Finland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishgermany", + "displayName": "English (Germany)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishgibraltar", + "displayName": "English (Gibraltar)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishguernsey", + "displayName": "English (Guernsey)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishhongkongsar", + "displayName": "English (Hong Kong SAR)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishindia", + "displayName": "English (India)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishireland", + "displayName": "English (Ireland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishisleofman", + "displayName": "English (Isle of Man)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishisrael", + "displayName": "English (Israel)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishjamaica", + "displayName": "English (Jamaica)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishjersey", + "displayName": "English (Jersey)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishmalaysia", + "displayName": "English (Malaysia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishmalta", + "displayName": "English (Malta)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishnetherlands", + "displayName": "English (Netherlands)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishnewzealand", + "displayName": "English (New Zealand)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishphilippines", + "displayName": "English (Philippines)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishsingapore", + "displayName": "English (Singapore)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishslovenia", + "displayName": "English (Slovenia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishsouthafrica", + "displayName": "English (South Africa)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishsweden", + "displayName": "English (Sweden)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishswitzerland", + "displayName": "English (Switzerland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishtrinidadtobago", + "displayName": "English (Trinidad & Tobago)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishuk", + "displayName": "English (United Kingdom)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_englishzimbabwe", + "displayName": "English (Zimbabwe)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_estonian", + "displayName": "Estonian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_faroese", + "displayName": "Faroese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_filipino", + "displayName": "Filipino", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_finnish", + "displayName": "Finnish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_french", + "displayName": "French", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchbelgium", + "displayName": "French (Belgium)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchcameroon", + "displayName": "French (Cameroon)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchcanada", + "displayName": "French (Canada)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchcotedivoire", + "displayName": "French (Côte d’Ivoire)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchhaiti", + "displayName": "French (Haiti)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchluxembourg", + "displayName": "French (Luxembourg)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchmali", + "displayName": "French (Mali)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchmonaco", + "displayName": "French (Monaco)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchmorocco", + "displayName": "French (Morocco)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchreunion", + "displayName": "French (Réunion)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchsenegal", + "displayName": "French (Senegal)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchswitzerland", + "displayName": "French (Switzerland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_frenchcongodrc", + "displayName": "French Congo (DRC)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_friulian", + "displayName": "Friulian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulah", + "displayName": "Fulah", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahadlam", + "displayName": "Fulah (Adlam)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahburkinafaso", + "displayName": "Fulah (Latin, Burkina Faso)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahcameroon", + "displayName": "Fulah (Latin, Cameroon)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahgambia", + "displayName": "Fulah (Latin, Gambia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahghana", + "displayName": "Fulah (Latin, Ghana)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahguinea", + "displayName": "Fulah (Latin, Guinea)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahguineabissau", + "displayName": "Fulah (Latin, Guinea-Bissau)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahliberia", + "displayName": "Fulah (Latin, Liberia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahmauritania", + "displayName": "Fulah (Latin, Mauritania)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahniger", + "displayName": "Fulah (Latin, Niger)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahnigeria", + "displayName": "Fulah (Latin, Nigeria)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_fulahsierraleone", + "displayName": "Fulah (Latin, Sierra Leone)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_galician", + "displayName": "Galician", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_georgian", + "displayName": "Georgian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_german", + "displayName": "German", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_germanaustria", + "displayName": "German (Austria)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_germanbelgium", + "displayName": "German (Belgium)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_germanitaly", + "displayName": "German (Italy)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_germanliechtenstein", + "displayName": "German (Liechtenstein)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_germanluxembourg", + "displayName": "German (Luxembourg)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_germanswitzerland", + "displayName": "German (Switzerland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_greek", + "displayName": "Greek", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_guarani", + "displayName": "Guarani", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_gujarati", + "displayName": "Gujarati", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_hausa", + "displayName": "Hausa", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_hawaiian", + "displayName": "Hawaiian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_hebrew", + "displayName": "Hebrew", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_hindi", + "displayName": "Hindi", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_hungarian", + "displayName": "Hungarian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_icelandic", + "displayName": "Icelandic", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_igbo", + "displayName": "Igbo", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_indonesian", + "displayName": "Indonesian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_interlingua", + "displayName": "Interlingua", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_inuktitut", + "displayName": "Inuktitut", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_inuktitutsyllabics", + "displayName": "Inuktitut (Syllabics)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_irish", + "displayName": "Irish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_irishunitedkingdom", + "displayName": "Irish (United Kingdom)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_italian", + "displayName": "Italian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_italianswitzerland", + "displayName": "Italian (Switzerland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_italianvaticancity", + "displayName": "Italian (Vatican City)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_japanese", + "displayName": "Japanese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_javanese", + "displayName": "Javanese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_javanesejavanese", + "displayName": "Javanese (Javanese)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kalaallisut", + "displayName": "Kalaallisut", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kannada", + "displayName": "Kannada", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kashmiri", + "displayName": "Kashmiri", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kashmiridevanagari", + "displayName": "Kashmiri (Devanagari)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kazakh", + "displayName": "Kazakh", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_khmer", + "displayName": "Khmer", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kinyarwanda", + "displayName": "Kinyarwanda", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kiswahili", + "displayName": "Kiswahili", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kiswahilicongodrc", + "displayName": "Kiswahili (Congo DRC)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kiswahilitanzania", + "displayName": "Kiswahili (Tanzania)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kiswahiliuganda", + "displayName": "Kiswahili (Uganda)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_konkani", + "displayName": "Konkani", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_korean", + "displayName": "Korean", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_koreannorthkorea", + "displayName": "Korean (North Korea)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_kyrgyz", + "displayName": "Kyrgyz", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_lao", + "displayName": "Lao", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_latvian", + "displayName": "Latvian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_lithuanian", + "displayName": "Lithuanian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_lowersorbian", + "displayName": "Lower Sorbian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_luxembourgish", + "displayName": "Luxembourgish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_macedonian", + "displayName": "Macedonian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_malagasy", + "displayName": "Malagasy", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_malay", + "displayName": "Malay", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_malaybrunei", + "displayName": "Malay (Brunei)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_malayindonesia", + "displayName": "Malay (Indonesia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_malaysingapore", + "displayName": "Malay (Singapore)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_malayalam", + "displayName": "Malayalam", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_maltese", + "displayName": "Maltese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_manipuri", + "displayName": "Manipuri", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_manx", + "displayName": "Manx", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_maori", + "displayName": "Maori", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_mapuche", + "displayName": "Mapuche", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_marathi", + "displayName": "Marathi", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_mazanderani", + "displayName": "Mazanderani", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_mohawk", + "displayName": "Mohawk", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_mongolian", + "displayName": "Mongolian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_mongolian_traditional_mongolian", + "displayName": "Mongolian (Traditional Mongolian)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_mongolian_traditional_mongolian_mongolia", + "displayName": "Mongolian (Traditional Mongolian, Mongolia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_nko", + "displayName": "N'ko", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_nepali", + "displayName": "Nepali", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_nepali_india", + "displayName": "Nepali (India)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_northern_luri", + "displayName": "Northern Luri", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_northern_sami", + "displayName": "Northern Sami", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_norwegian", + "displayName": "Norwegian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_norwegian_nynorsk", + "displayName": "Norwegian Nynorsk", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_occitan", + "displayName": "Occitan", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_odia", + "displayName": "Odia", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_oromo", + "displayName": "Oromo", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_oromo_kenya", + "displayName": "Oromo (Kenya)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_ossetic", + "displayName": "Ossetic", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_papiamento", + "displayName": "Papiamento", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_pashto", + "displayName": "Pashto", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_pashto_pakistan", + "displayName": "Pashto (Pakistan)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_persian", + "displayName": "Persian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_persian_afghanistan", + "displayName": "Persian (Afghanistan)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_polish", + "displayName": "Polish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese", + "displayName": "Portuguese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_angola", + "displayName": "Portuguese (Angola)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_cabo_verde", + "displayName": "Portuguese (Cabo Verde)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_equatorial_guinea", + "displayName": "Portuguese (Equatorial Guinea)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_guinea_bissau", + "displayName": "Portuguese (Guinea-Bissau)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_luxembourg", + "displayName": "Portuguese (Luxembourg)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_macao_sar", + "displayName": "Portuguese (Macao SAR)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_mozambique", + "displayName": "Portuguese (Mozambique)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_portugal", + "displayName": "Portuguese (Portugal)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_switzerland", + "displayName": "Portuguese (Switzerland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_sao_tome_principe", + "displayName": "Portuguese (São Tomé & Príncipe)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_portuguese_timor_leste", + "displayName": "Portuguese (Timor-Leste)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_prussian", + "displayName": "Prussian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_punjabi", + "displayName": "Punjabi", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_quechua", + "displayName": "Quechua", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_quechua_ecuador", + "displayName": "Quechua (Ecuador)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_quechua_peru", + "displayName": "Quechua (Peru)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_romanian", + "displayName": "Romanian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_romanian_moldova", + "displayName": "Romanian (Moldova)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_romansh", + "displayName": "Romansh", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_russian", + "displayName": "Russian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_russian_moldova", + "displayName": "Russian (Moldova)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sakha", + "displayName": "Sakha", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sami_lule_norway", + "displayName": "Sami, Lule (Norway)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sami_northern_finland", + "displayName": "Sami, Northern (Finland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sami_northern_sweden", + "displayName": "Sami, Northern (Sweden)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sami_southern_norway", + "displayName": "Sami, Southern (Norway)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sanskrit", + "displayName": "Sanskrit", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_scottish_gaelic", + "displayName": "Scottish Gaelic", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_serbian", + "displayName": "Serbian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_serbian_cyrillic", + "displayName": "Serbian (Cyrillic)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_serbian_cyrillic_bosnia_herzegovina", + "displayName": "Serbian (Cyrillic, Bosnia and Herzegovina)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_serbian_cyrillic_kosovo", + "displayName": "Serbian (Cyrillic, Kosovo)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_serbian_cyrillic_montenegro", + "displayName": "Serbian (Cyrillic, Montenegro)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_serbian_latin_bosnia_herzegovina", + "displayName": "Serbian (Latin, Bosnia & Herzegovina)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_serbian_latin_kosovo", + "displayName": "Serbian (Latin, Kosovo)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_serbian_latin_montenegro", + "displayName": "Serbian (Latin, Montenegro)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sesotho", + "displayName": "Sesotho", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sesotho_lesotho", + "displayName": "Sesotho (Lesotho)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sesotho_sa_leboa", + "displayName": "Sesotho sa Leboa", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_setswana", + "displayName": "Setswana", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_setswana_botswana", + "displayName": "Setswana (Botswana)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_shona", + "displayName": "Shona", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_sinhala", + "displayName": "Sinhala", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_slovak", + "displayName": "Slovak", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_slovenian", + "displayName": "Slovenian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_somali", + "displayName": "Somali", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_somali_djibouti", + "displayName": "Somali (Djibouti)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_somali_ethiopia", + "displayName": "Somali (Ethiopia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_somali_kenya", + "displayName": "Somali (Kenya)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish", + "displayName": "Spanish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_argentina", + "displayName": "Spanish (Argentina)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_belize", + "displayName": "Spanish (Belize)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_bolivia", + "displayName": "Spanish (Bolivia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_brazil", + "displayName": "Spanish (Brazil)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_chile", + "displayName": "Spanish (Chile)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_colombia", + "displayName": "Spanish (Colombia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_costa_rica", + "displayName": "Spanish (Costa Rica)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_cuba", + "displayName": "Spanish (Cuba)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_dominican_republic", + "displayName": "Spanish (Dominican Republic)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_ecuador", + "displayName": "Spanish (Ecuador)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_el_salvador", + "displayName": "Spanish (El Salvador)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_equatorial_guinea", + "displayName": "Spanish (Equatorial Guinea)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_guatemala", + "displayName": "Spanish (Guatemala)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_honduras", + "displayName": "Spanish (Honduras)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_latin_america", + "displayName": "Spanish (Latin America)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_mexico", + "displayName": "Spanish (Mexico)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_nicaragua", + "displayName": "Spanish (Nicaragua)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_panama", + "displayName": "Spanish (Panama)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_paraguay", + "displayName": "Spanish (Paraguay)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_peru", + "displayName": "Spanish (Peru)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_philippines", + "displayName": "Spanish (Philippines)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_puerto_rico", + "displayName": "Spanish (Puerto Rico)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_united_states", + "displayName": "Spanish (United States)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_uruguay", + "displayName": "Spanish (Uruguay)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_spanish_venezuela", + "displayName": "Spanish (Venezuela)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_standard_moroccan_tamazight", + "displayName": "Standard Moroccan Tamazight", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_swedish", + "displayName": "Swedish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_swedish_finland", + "displayName": "Swedish (Finland)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_swiss_german", + "displayName": "Swiss German", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_syriac", + "displayName": "Syriac", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tachelhit", + "displayName": "Tachelhit", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tachelhit_latin", + "displayName": "Tachelhit (Latin)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tajik", + "displayName": "Tajik", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tamil", + "displayName": "Tamil", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tamil_malaysia", + "displayName": "Tamil (Malaysia)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tamil_singapore", + "displayName": "Tamil (Singapore)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tamil_sri_lanka", + "displayName": "Tamil (Sri Lanka)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tatar", + "displayName": "Tatar", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_telugu", + "displayName": "Telugu", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_thai", + "displayName": "Thai", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tibetan", + "displayName": "Tibetan", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tibetan_india", + "displayName": "Tibetan (India)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_tigrinya", + "displayName": "Tigrinya", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_turkish", + "displayName": "Turkish", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_turkmen", + "displayName": "Turkmen", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_ukrainian", + "displayName": "Ukrainian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_upper_sorbian", + "displayName": "Upper Sorbian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_urdu", + "displayName": "Urdu", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_urdu_india", + "displayName": "Urdu (India)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_uyghur", + "displayName": "Uyghur", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_uzbek", + "displayName": "Uzbek", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_uzbek_arabic", + "displayName": "Uzbek (Arabic)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_uzbek_cyrillic", + "displayName": "Uzbek (Cyrillic)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_valencian_spain", + "displayName": "Valencian (Spain)", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_vietnamese", + "displayName": "Vietnamese", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_walser", + "displayName": "Walser", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_welsh", + "displayName": "Welsh", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_western_frisian", + "displayName": "Western Frisian", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_wolof", + "displayName": "Wolof", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_xitsonga", + "displayName": "Xitsonga", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_yi", + "displayName": "Yi", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_yoruba", + "displayName": "Yoruba", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_isixhosa", + "displayName": "IsiXhosa", + "description": null + }, + { + "id": "osrecoverysettings_keyboardsettings_isizulu", + "displayName": "IsiZulu", + "description": null + } + ] + }, + { "id": "osrecoverysettings_os", "displayName": "OS", "options": null }, + { + "id": "osrecoverysettings_qualityupdate", + "displayName": "Quality update only", + "options": [ + { + "id": "osrecoverysettings_qualityupdate_current", + "displayName": "Current", + "description": null + }, + { + "id": "osrecoverysettings_qualityupdate_lastmonth", + "displayName": "Last month", + "description": null + }, + { + "id": "osrecoverysettings_qualityupdate_monthbeforelast", + "displayName": "Month before last", + "description": null + } + ] + }, + { + "id": "passcode_changeatnextauth", + "displayName": "Change At Next Auth", + "options": [ + { + "id": "passcode_changeatnextauth_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "passcode_changeatnextauth_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "passcode_customregex", + "displayName": "Custom Regex", + "options": null + }, + { + "id": "passcode_customregex_description", + "displayName": "Description", + "options": null + }, + { + "id": "passcode_customregex_description_generickey", + "displayName": "ANY", + "options": null + }, + { + "id": "passcode_customregex_description_generickey_keytobereplaced", + "displayName": "Description", + "options": null + }, + { + "id": "passcode_customregex_regex", + "displayName": "Regex", + "options": null + }, + { + "id": "passcode_failedattemptsresetinminutes", + "displayName": "Failed Attempts Reset In Minutes", + "options": null + }, + { + "id": "passcode_maximumfailedattempts", + "displayName": "Maximum Number of Failed Attempts", + "options": null + }, + { + "id": "passcode_maximumgraceperiodinminutes", + "displayName": "Maximum Grace Period", + "options": null + }, + { + "id": "passcode_maximuminactivityinminutes", + "displayName": "Automatic Device Lock", + "options": null + }, + { + "id": "passcode_maximumpasscodeageindays", + "displayName": "Maximum Passcode Age In Days", + "options": null + }, + { + "id": "passcode_minimumcomplexcharacters", + "displayName": "Minimum Complex Characters", + "options": null + }, + { + "id": "passcode_minimumlength", + "displayName": "Minimum Passcode Length", + "options": null + }, + { "id": "passcode_passcode", "displayName": "Passcode", "options": null }, + { + "id": "passcode_passcodereuselimit", + "displayName": "Passcode Reuse Limit", + "options": null + }, + { + "id": "passcode_requirealphanumericpasscode", + "displayName": "Require Alphanumeric Passcode", + "options": [ + { + "id": "passcode_requirealphanumericpasscode_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "passcode_requirealphanumericpasscode_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "passcode_requirecomplexpasscode", + "displayName": "Require Complex Passcode", + "options": [ + { + "id": "passcode_requirecomplexpasscode_false", + "displayName": "False", + "description": null + }, + { + "id": "passcode_requirecomplexpasscode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "passcode_requirepasscode", + "displayName": "Require Passcode on Device", + "options": [ + { + "id": "passcode_requirepasscode_false", + "displayName": "False", + "description": null + }, + { + "id": "passcode_requirepasscode_true", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch", + "displayName": "Update Channel", + "options": [ + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid", + "displayName": "Channel Name: (Device)", + "options": [ + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_current", + "displayName": "Current Channel", + "description": null + }, + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_firstreleasecurrent", + "displayName": "Current Channel (Preview)", + "description": null + }, + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_monthlyenterprise", + "displayName": "Monthly Enterprise Channel", + "description": null + }, + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_deferred", + "displayName": "Semi-Annual Enterprise Channel", + "description": null + }, + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_firstreleasedeferred", + "displayName": "Semi-Annual Enterprise Channel (Preview)", + "description": null + }, + { + "id": "pdates~policy~l_microsoftofficemachine~l_updates_l_updatebranch_l_updatebranchid_insiderfast", + "displayName": "Beta Channel", + "description": null + } + ] + }, + { + "id": "settings_item_accessibilitysettings", + "displayName": "Accessibility Settings", + "options": null + }, + { + "id": "settings_item_accessibilitysettings_boldtextenabled", + "displayName": "Bold Text Enabled", + "options": [ + { + "id": "settings_item_accessibilitysettings_boldtextenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_boldtextenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_accessibilitysettings_increasecontrastenabled", + "displayName": "Increase Contrast Enabled", + "options": [ + { + "id": "settings_item_accessibilitysettings_increasecontrastenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_increasecontrastenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_accessibilitysettings_reducemotionenabled", + "displayName": "Reduce Motion Enabled", + "options": [ + { + "id": "settings_item_accessibilitysettings_reducemotionenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_reducemotionenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_accessibilitysettings_reducetransparencyenabled", + "displayName": "Reduce Transparency Enabled", + "options": [ + { + "id": "settings_item_accessibilitysettings_reducetransparencyenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_reducetransparencyenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_accessibilitysettings_textsize", + "displayName": "Text Size", + "options": [ + { + "id": "settings_item_accessibilitysettings_textsize_0", + "displayName": "0", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_1", + "displayName": "1", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_2", + "displayName": "2", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_3", + "displayName": "3", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_4", + "displayName": "4", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_5", + "displayName": "5", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_6", + "displayName": "6", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_7", + "displayName": "7", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_8", + "displayName": "8", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_9", + "displayName": "9", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_10", + "displayName": "10", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_textsize_11", + "displayName": "11", + "description": null + } + ] + }, + { + "id": "settings_item_accessibilitysettings_touchaccommodationsenabled", + "displayName": "Touch Accommodations Enabled", + "options": [ + { + "id": "settings_item_accessibilitysettings_touchaccommodationsenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_touchaccommodationsenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_accessibilitysettings_voiceoverenabled", + "displayName": "Voice Over Enabled", + "options": [ + { + "id": "settings_item_accessibilitysettings_voiceoverenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_voiceoverenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_accessibilitysettings_zoomenabled", + "displayName": "Zoom Enabled", + "options": [ + { + "id": "settings_item_accessibilitysettings_zoomenabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_accessibilitysettings_zoomenabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_appanalytics", + "displayName": "App Analytics", + "options": null + }, + { + "id": "settings_item_appanalytics_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "settings_item_appanalytics_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_appanalytics_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_bluetooth", + "displayName": "Bluetooth", + "options": null + }, + { + "id": "settings_item_bluetooth_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "settings_item_bluetooth_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_bluetooth_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_dataroaming", + "displayName": "Data Roaming", + "options": null + }, + { + "id": "settings_item_dataroaming_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "settings_item_dataroaming_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_dataroaming_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_diagnosticsubmission", + "displayName": "Diagnostic Submission", + "options": null + }, + { + "id": "settings_item_diagnosticsubmission_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "settings_item_diagnosticsubmission_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_diagnosticsubmission_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_mdmoptions", + "displayName": "MDM Options", + "options": null + }, + { + "id": "settings_item_mdmoptions_mdmoptions", + "displayName": "MDM Options", + "options": null + }, + { + "id": "settings_item_mdmoptions_mdmoptions_activationlockallowedwhilesupervised", + "displayName": "Activation Lock Allowed While Supervised", + "options": [ + { + "id": "settings_item_mdmoptions_mdmoptions_activationlockallowedwhilesupervised_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "settings_item_mdmoptions_mdmoptions_activationlockallowedwhilesupervised_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "settings_item_mdmoptions_mdmoptions_promptusertoallowbootstraptokenforauthentication", + "displayName": "Prompt User To Allow Bootstrap Token For Authentication", + "options": [ + { + "id": "settings_item_mdmoptions_mdmoptions_promptusertoallowbootstraptokenforauthentication_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "settings_item_mdmoptions_mdmoptions_promptusertoallowbootstraptokenforauthentication_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "settings_item_personalhotspot", + "displayName": "Personal Hotspot", + "options": null + }, + { + "id": "settings_item_personalhotspot_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "settings_item_personalhotspot_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_personalhotspot_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "settings_item_softwareupdatesettings", + "displayName": "Software Update Settings", + "options": null + }, + { + "id": "settings_item_softwareupdatesettings_recommendationcadence", + "displayName": "Recommendation Cadence", + "options": [ + { + "id": "settings_item_softwareupdatesettings_recommendationcadence_0", + "displayName": "Presents both options to the user.", + "description": null + }, + { + "id": "settings_item_softwareupdatesettings_recommendationcadence_1", + "displayName": "Presents the lower numbered (oldest) software update version.", + "description": null + }, + { + "id": "settings_item_softwareupdatesettings_recommendationcadence_2", + "displayName": "Presents only the highest numbered (most recent) release available for the device.", + "description": null + } + ] + }, + { + "id": "settings_item_timezone", + "displayName": "Time Zone", + "options": null + }, + { + "id": "settings_item_timezone_timezone", + "displayName": "Time Zone", + "options": null + }, + { + "id": "settings_item_voiceroaming", + "displayName": "Voice Roaming", + "options": null + }, + { + "id": "settings_item_voiceroaming_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "settings_item_voiceroaming_enabled_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "settings_item_voiceroaming_enabled_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "softwareupdate_allowstandarduserosupdates", + "displayName": "Allow Standard User OS Updates", + "options": [ + { + "id": "softwareupdate_allowstandarduserosupdates_false", + "displayName": "Blocked", + "description": null + }, + { + "id": "softwareupdate_allowstandarduserosupdates_true", + "displayName": "Allowed", + "description": null + } + ] + }, + { + "id": "softwareupdate_automaticactions", + "displayName": "Automatic Actions", + "options": null + }, + { + "id": "softwareupdate_automaticactions_download", + "displayName": "Download", + "options": [ + { + "id": "softwareupdate_automaticactions_download_0", + "displayName": "Allowed", + "description": null + }, + { + "id": "softwareupdate_automaticactions_download_1", + "displayName": "AlwaysOn", + "description": null + }, + { + "id": "softwareupdate_automaticactions_download_2", + "displayName": "AlwaysOff", + "description": null + } + ] + }, + { + "id": "softwareupdate_automaticactions_installosupdates", + "displayName": "Install OS Updates", + "options": [ + { + "id": "softwareupdate_automaticactions_installosupdates_0", + "displayName": "Allowed", + "description": null + }, + { + "id": "softwareupdate_automaticactions_installosupdates_1", + "displayName": "Always On", + "description": null + }, + { + "id": "softwareupdate_automaticactions_installosupdates_2", + "displayName": "Always Off", + "description": null + } + ] + }, + { + "id": "softwareupdate_automaticactions_installsecurityupdate", + "displayName": "Install Security Update", + "options": [ + { + "id": "softwareupdate_automaticactions_installsecurityupdate_0", + "displayName": "Allowed", + "description": null + }, + { + "id": "softwareupdate_automaticactions_installsecurityupdate_1", + "displayName": "AlwaysOn", + "description": null + }, + { + "id": "softwareupdate_automaticactions_installsecurityupdate_2", + "displayName": "AlwaysOff", + "description": null + } + ] + }, + { "id": "softwareupdate_beta", "displayName": "Beta", "options": null }, + { + "id": "softwareupdate_beta_offerprograms", + "displayName": "Offer Programs", + "options": null + }, + { + "id": "softwareupdate_beta_offerprograms_item_description", + "displayName": "Description", + "options": null + }, + { + "id": "softwareupdate_beta_offerprograms_item_token", + "displayName": "Token", + "options": null + }, + { + "id": "softwareupdate_beta_programenrollment", + "displayName": "Program Enrollment", + "options": [ + { + "id": "softwareupdate_beta_programenrollment_0", + "displayName": "Allowed", + "description": null + }, + { + "id": "softwareupdate_beta_programenrollment_1", + "displayName": "AlwaysOn", + "description": null + }, + { + "id": "softwareupdate_beta_programenrollment_2", + "displayName": "AlwaysOff", + "description": null + } + ] + }, + { + "id": "softwareupdate_beta_requireprogram", + "displayName": "Require Program", + "options": null + }, + { + "id": "softwareupdate_beta_requireprogram_description", + "displayName": "Description", + "options": null + }, + { + "id": "softwareupdate_beta_requireprogram_token", + "displayName": "Token", + "options": null + }, + { + "id": "softwareupdate_deferrals", + "displayName": "Deferrals", + "options": null + }, + { + "id": "softwareupdate_deferrals_combinedperiodindays", + "displayName": "Combined Period In Days", + "options": null + }, + { + "id": "softwareupdate_deferrals_majorperiodindays", + "displayName": "Major Period In Days", + "options": null + }, + { + "id": "softwareupdate_deferrals_minorperiodindays", + "displayName": "Minor Period In Days", + "options": null + }, + { + "id": "softwareupdate_deferrals_systemperiodindays", + "displayName": "System Period In Days", + "options": null + }, + { + "id": "softwareupdate_notifications", + "displayName": "Notifications", + "options": [ + { + "id": "softwareupdate_notifications_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "softwareupdate_notifications_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "softwareupdate_rapidsecurityresponse", + "displayName": "Rapid Security Response", + "options": null + }, + { + "id": "softwareupdate_rapidsecurityresponse_enable", + "displayName": "Enable", + "options": [ + { + "id": "softwareupdate_rapidsecurityresponse_enable_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "softwareupdate_rapidsecurityresponse_enable_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "softwareupdate_rapidsecurityresponse_enablerollback", + "displayName": "Enable Rollback", + "options": [ + { + "id": "softwareupdate_rapidsecurityresponse_enablerollback_false", + "displayName": "Disabled", + "description": null + }, + { + "id": "softwareupdate_rapidsecurityresponse_enablerollback_true", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "softwareupdate_recommendedcadence", + "displayName": "Recommended Cadence", + "options": [ + { + "id": "softwareupdate_recommendedcadence_0", + "displayName": "All", + "description": null + }, + { + "id": "softwareupdate_recommendedcadence_1", + "displayName": "Oldest", + "description": null + }, + { + "id": "softwareupdate_recommendedcadence_2", + "displayName": "Newest", + "description": null + } + ] + }, + { + "id": "softwareupdate_softwareupdate", + "displayName": "com.apple.configuration.softwareupdate.settings", + "options": null + }, + { + "id": "user_vendor_msft_clouddesktop_enablephysicaldeviceaccessonctrlaltdel", + "displayName": "Enable Physical Device Access On Ctrl Alt Del (User) (Windows Insiders only)", + "options": [ + { + "id": "user_vendor_msft_clouddesktop_enablephysicaldeviceaccessonctrlaltdel_false", + "displayName": "Access to physical device on CtrlAltDel page disabled", + "description": "Access to physical device on CtrlAltDel page disabled" + }, + { + "id": "user_vendor_msft_clouddesktop_enablephysicaldeviceaccessonctrlaltdel_true", + "displayName": "Access to physical device on CtrlAltDel page enabled", + "description": "Access to physical device on CtrlAltDel page enabled" + } + ] + }, + { + "id": "user_vendor_msft_clouddesktop_enablephysicaldeviceaccessonerrorscreens", + "displayName": "Enable Physical Device Access On Error Screens (User) (Windows Insiders only)", + "options": [ + { + "id": "user_vendor_msft_clouddesktop_enablephysicaldeviceaccessonerrorscreens_false", + "displayName": "Access to physical device on error screens disabled", + "description": "Access to physical device on error screens disabled" + }, + { + "id": "user_vendor_msft_clouddesktop_enablephysicaldeviceaccessonerrorscreens_true", + "displayName": "Access to physical device on error screens enabled", + "description": "Access to physical device on error screens enabled" + } + ] + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}", + "displayName": "User-scoped settings", + "options": null + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_enablepinrecovery", + "displayName": "Enable Pin Recovery (User)", + "options": [ + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_enablepinrecovery_false", + "displayName": "false", + "description": "Disabled" + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_enablepinrecovery_true", + "displayName": "true", + "description": "Enabled" + } + ] + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_digits", + "displayName": "Digits (User)", + "options": [ + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_digits_0", + "displayName": "Allows the use of digits in PIN.", + "description": "Allows the use of digits in PIN." + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_digits_1", + "displayName": "Requires the use of at least one digits in PIN.", + "description": "Requires the use of at least one digits in PIN." + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_digits_2", + "displayName": "Does not allow the use of digits in PIN.", + "description": "Does not allow the use of digits in PIN." + } + ] + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_expiration", + "displayName": "Expiration (User)", + "options": null + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_history", + "displayName": "PIN History (User)", + "options": null + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_lowercaseletters", + "displayName": "Lowercase Letters (User)", + "options": [ + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_lowercaseletters_0", + "displayName": "Allowed", + "description": "Allows the use of lowercase letters in PIN." + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_lowercaseletters_1", + "displayName": "Required", + "description": "Requires the use of at least one lowercase letters in PIN." + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_lowercaseletters_2", + "displayName": "Blocked", + "description": "Does not allow the use of lowercase letters in PIN." + } + ] + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_maximumpinlength", + "displayName": "Maximum PIN Length (User)", + "options": null + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_minimumpinlength", + "displayName": "Minimum PIN Length (User)", + "options": null + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_specialcharacters", + "displayName": "Special Characters (User)", + "options": [ + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_specialcharacters_0", + "displayName": "Allows the use of special characters in PIN.", + "description": "Allows the use of special characters in PIN." + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_specialcharacters_1", + "displayName": "Requires the use of at least one special characters in PIN.", + "description": "Requires the use of at least one special characters in PIN." + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_specialcharacters_2", + "displayName": "Does not allow the use of special characters in PIN.", + "description": "Does not allow the use of special characters in PIN." + } + ] + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_uppercaseletters", + "displayName": "Uppercase Letters (User)", + "options": [ + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_uppercaseletters_0", + "displayName": "Allowed", + "description": "Allows the use of uppercase letters in PIN." + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_uppercaseletters_1", + "displayName": "Required", + "description": "Requires the use of at least one uppercase letters in PIN." + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_pincomplexity_uppercaseletters_2", + "displayName": "Blocked", + "description": "Does not allow the use of uppercase letters in PIN." + } + ] + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_requiresecuritydevice", + "displayName": "Require Security Device (User)", + "options": [ + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_requiresecuritydevice_false", + "displayName": "false", + "description": "Disabled" + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_requiresecuritydevice_true", + "displayName": "true", + "description": "Enabled" + } + ] + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_usepassportforwork", + "displayName": "Use Windows Hello For Business (User)", + "options": [ + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_usepassportforwork_false", + "displayName": "false", + "description": "Disabled" + }, + { + "id": "user_vendor_msft_passportforwork_{tenantid}_policies_usepassportforwork_true", + "displayName": "true", + "description": "Enabled" + } + ] + }, + { + "id": "user_vendor_msft_pde_enablepersonaldataencryption", + "displayName": "Enable Personal Data Encryption (User)", + "options": [ + { + "id": "user_vendor_msft_pde_enablepersonaldataencryption_0", + "displayName": "Disable Personal Data Encryption.", + "description": "Disable Personal Data Encryption." + }, + { + "id": "user_vendor_msft_pde_enablepersonaldataencryption_1", + "displayName": "Enable Personal Data Encryption.", + "description": "Enable Personal Data Encryption." + } + ] + }, + { + "id": "user_vendor_msft_pde_protectfolders_protectdesktop", + "displayName": "Protect Desktop (User) (Windows Insiders only)", + "options": [ + { + "id": "user_vendor_msft_pde_protectfolders_protectdesktop_0", + "displayName": "Disable Personal Data Encryption on the folder. If the folder is currently protected by Personal Data Encryption, this will result in unprotecting the folder.", + "description": "Disable Personal Data Encryption on the folder. If the folder is currently protected by Personal Data Encryption, this will result in unprotecting the folder." + }, + { + "id": "user_vendor_msft_pde_protectfolders_protectdesktop_1", + "displayName": "Enable Personal Data Encryption on the folder.", + "description": "Enable Personal Data Encryption on the folder." + } + ] + }, + { + "id": "user_vendor_msft_pde_protectfolders_protectdocuments", + "displayName": "Protect Documents (User) (Windows Insiders only)", + "options": [ + { + "id": "user_vendor_msft_pde_protectfolders_protectdocuments_0", + "displayName": "Disable Personal Data Encryption on the folder. If the folder is currently protected by Personal Data Encryption, this will result in unprotecting the folder.", + "description": "Disable Personal Data Encryption on the folder. If the folder is currently protected by Personal Data Encryption, this will result in unprotecting the folder." + }, + { + "id": "user_vendor_msft_pde_protectfolders_protectdocuments_1", + "displayName": "Enable Personal Data Encryption on the folder.", + "description": "Enable Personal Data Encryption on the folder." + } + ] + }, + { + "id": "user_vendor_msft_pde_protectfolders_protectpictures", + "displayName": "Protect Pictures (User) (Windows Insiders only)", + "options": [ + { + "id": "user_vendor_msft_pde_protectfolders_protectpictures_0", + "displayName": "Disable Personal Data Encryption on the folder. If the folder is currently protected by Personal Data Encryption, this will result in unprotecting the folder.", + "description": "Disable Personal Data Encryption on the folder. If the folder is currently protected by Personal Data Encryption, this will result in unprotecting the folder." + }, + { + "id": "user_vendor_msft_pde_protectfolders_protectpictures_1", + "displayName": "Enable Personal Data Encryption on the folder.", + "description": "Enable Personal Data Encryption on the folder." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_defaultdatabasefolder", + "displayName": "Default database folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_defaultdatabasefolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_defaultdatabasefolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_defaultdatabasefolder_l_defaultdatabasefolder6", + "displayName": "Default database folder (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_recentlyusedfilelist", + "displayName": "Number of files in the Recent list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_recentlyusedfilelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_recentlyusedfilelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_recentlyusedfilelist_l_numberofentries", + "displayName": "Number of entries: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_setnumberofplacesintherecentplaceslist", + "displayName": "Number of folders in the Recent Folders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_setnumberofplacesintherecentplaceslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_setnumberofplacesintherecentplaceslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_general5_l_setnumberofplacesintherecentplaceslist_l_setnumberofplacesintherecentplaceslistspinid", + "displayName": "Number of folders: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_cursormovement", + "displayName": "Cursor movement (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_cursormovement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_cursormovement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_cursormovement_l_cursormovement2", + "displayName": "Cursor movement (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_cursormovement_l_cursormovement2_0", + "displayName": "Logical", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_cursormovement_l_cursormovement2_1", + "displayName": "Visual", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_defaultdirection", + "displayName": "Default direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_defaultdirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_defaultdirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_defaultdirection_l_defaultdirection0", + "displayName": "Default direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_defaultdirection_l_defaultdirection0_0", + "displayName": "Left-to-Right", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_defaultdirection_l_defaultdirection0_1", + "displayName": "Right-to-left", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_generalalignment", + "displayName": "General Alignment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_generalalignment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_generalalignment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_generalalignment_l_generalalignment1", + "displayName": "General Alignment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_generalalignment_l_generalalignment1_0", + "displayName": "Interface mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_international_l_generalalignment_l_generalalignment1_1", + "displayName": "Text mode", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_configurecngcipherchainingmode", + "displayName": "Configure CNG cipher chaining mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_configurecngcipherchainingmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_configurecngcipherchainingmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecbc", + "displayName": "Cipher Block Chaining (CBC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecfb", + "displayName": "Cipher Feedback (CFB)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngcipheralgorithm", + "displayName": "Set CNG cipher algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngcipheralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngcipheralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngcipheralgorithm_l_setcngcipheralgorithmid", + "displayName": "CNG cipher algorithm: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngcipherkeylength", + "displayName": "Set CNG cipher key length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngcipherkeylength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngcipherkeylength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngcipherkeylength_l_setcngcipherkeylengthspinid", + "displayName": "Cipher key length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngpasswordspincount", + "displayName": "Set CNG password spin count (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngpasswordspincount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngpasswordspincount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setcngpasswordspincount_l_setcngpasswordspincountspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setparametersforcngcontext", + "displayName": "Set parameters for CNG context (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setparametersforcngcontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setparametersforcngcontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_setparametersforcngcontext_l_setparametersforcngcontextid", + "displayName": "Parameters (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycnghashalgorithm", + "displayName": "Specify CNG hash algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycnghashalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycnghashalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha512", + "displayName": "SHA512", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm", + "displayName": "Specify CNG random number generator algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_l_specifycngrandomnumbergeneratoralgorithmid", + "displayName": "Random number generator: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycngsaltlength", + "displayName": "Specify CNG salt length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycngsaltlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycngsaltlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifycngsaltlength_l_specifycngsaltlengthspinid", + "displayName": "Number of bytes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifyencryptioncompatibility", + "displayName": "Specify encryption compatibility (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifyencryptioncompatibility_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifyencryptioncompatibility_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_0", + "displayName": "Use legacy format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_1", + "displayName": "Use next generation format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_2", + "displayName": "All files save with next generation format", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_blockmacroexecutionfrominternet", + "displayName": "Block macros from running in Office files from the Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_disableallapplicationextensions", + "displayName": "Disable all application add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_disableallapplicationextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_disableallapplicationextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned", + "displayName": "Require that application add-ins are signed by Trusted Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments", + "displayName": "Set maximum number of trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_l_setmaximumnumberoftrusteddocumentsspinid", + "displayName": "Maximum number: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve", + "displayName": "Set maximum number of trust records to preserve (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_l_setmaximumnumberoftrustrecordstopreservespinid", + "displayName": "Maximum to preserve: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_turnofftrusteddocuments", + "displayName": "Turn off trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_turnofftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_turnofftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork", + "displayName": "Turn off Trusted Documents on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_vbawarningspolicy", + "displayName": "VBA Macro Notification Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_vbawarningspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_vbawarningspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_vbawarningspolicy_l_empty", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_2", + "displayName": "Disable all with notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_3", + "displayName": "Disable all except digitally signed macros", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_4", + "displayName": "Disable all without notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_1", + "displayName": "Enable all macros (not recommended)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork", + "displayName": "Allow Trusted Locations on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc", + "displayName": "Disable all trusted locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01", + "displayName": "Trusted Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_datecolon", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_descriptioncolon", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_pathcolon", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02", + "displayName": "Trusted Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders10", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders10_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders10_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_datecolon8", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_descriptioncolon9", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_pathcolon7", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03", + "displayName": "Trusted Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders14", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders14_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders14_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_datecolon12", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_descriptioncolon13", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_pathcolon11", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04", + "displayName": "Trusted Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders18", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders18_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders18_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_datecolon16", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_descriptioncolon17", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_pathcolon15", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05", + "displayName": "Trusted Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders22", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders22_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders22_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_datecolon20", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_descriptioncolon21", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_pathcolon19", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06", + "displayName": "Trusted Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders26", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders26_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders26_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_datecolon24", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_descriptioncolon25", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_pathcolon23", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07", + "displayName": "Trusted Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders30", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders30_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders30_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_datecolon28", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_descriptioncolon29", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_pathcolon27", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08", + "displayName": "Trusted Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders34", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders34_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders34_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_datecolon32", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_descriptioncolon33", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_pathcolon31", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09", + "displayName": "Trusted Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders38", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders38_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders38_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_datecolon36", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_descriptioncolon37", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_pathcolon35", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10", + "displayName": "Trusted Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders42", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders42_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders42_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_datecolon40", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_descriptioncolon41", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_pathcolon39", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11", + "displayName": "Trusted Location #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders46", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders46_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders46_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_datecolon44", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_descriptioncolon45", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_pathcolon43", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12", + "displayName": "Trusted Location #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders50", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders50_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders50_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_datecolon48", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_descriptioncolon49", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_pathcolon47", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13", + "displayName": "Trusted Location #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders54", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders54_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders54_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_datecolon52", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_descriptioncolon53", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_pathcolon51", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14", + "displayName": "Trusted Location #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders58", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders58_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders58_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_datecolon56", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_descriptioncolon57", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_pathcolon55", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15", + "displayName": "Trusted Location #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders62", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders62_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders62_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_datecolon60", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_descriptioncolon61", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_pathcolon59", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16", + "displayName": "Trusted Location #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders66", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders66_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders66_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_datecolon64", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_descriptioncolon65", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_pathcolon63", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17", + "displayName": "Trusted Location #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders70", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders70_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders70_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_datecolon68", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_descriptioncolon69", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_pathcolon67", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18", + "displayName": "Trusted Location #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders74", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders74_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders74_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_datecolon72", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_descriptioncolon73", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_pathcolon71", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19", + "displayName": "Trusted Location #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders78", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders78_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders78_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_datecolon76", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_descriptioncolon77", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_pathcolon75", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20", + "displayName": "Trusted Location #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders82", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders82_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders82_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_datecolon80", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_descriptioncolon81", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_pathcolon79", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor", + "displayName": "Followed hyperlink color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4", + "displayName": "Followed hyperlink color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_0", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_1", + "displayName": "Maroon", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_2", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_3", + "displayName": "Olive", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_4", + "displayName": "Dark Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_5", + "displayName": "Violet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_6", + "displayName": "Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_7", + "displayName": "Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_8", + "displayName": "Silver", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_9", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_10", + "displayName": "Bright Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_11", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_12", + "displayName": "Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_13", + "displayName": "Fuchsia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_14", + "displayName": "Aqua", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_followedhyperlinkcolor_l_followedhyperlinkcolor4_15", + "displayName": "White", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor", + "displayName": "Hyperlink color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3", + "displayName": "Hyperlink color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_0", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_1", + "displayName": "Maroon", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_2", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_3", + "displayName": "Olive", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_4", + "displayName": "Dark Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_5", + "displayName": "Violet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_6", + "displayName": "Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_7", + "displayName": "Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_8", + "displayName": "Silver", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_9", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_10", + "displayName": "Bright Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_11", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_12", + "displayName": "Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_13", + "displayName": "Fuchsia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_14", + "displayName": "Aqua", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_hyperlinkcolor_l_hyperlinkcolor3_15", + "displayName": "White", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_underlinehyperlinks", + "displayName": "Underline hyperlinks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_underlinehyperlinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_applicationsettings~l_weboptions~l_general_l_underlinehyperlinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_customizableerrormessages_l_listoferrormessagestocustomize", + "displayName": "List of error messages to customize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_customizableerrormessages_l_listoferrormessagestocustomize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_customizableerrormessages_l_listoferrormessagestocustomize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize84", + "displayName": "List of error messages to customize (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize84_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize84_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems85", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems85_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems85_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems85_l_enteracommandbaridtodisable", + "displayName": "Enter a command bar ID to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys86", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys86_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys86_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys86_l_enterakeyandmodifiertodisable", + "displayName": "Enter a key and modifier to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient", + "displayName": "File tab | Access Options | Customize | All Commands | Email (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsaddinsacc", + "displayName": "Database Tools | Database Tools | Add-Ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsaddinsacc_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsaddinsacc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacroconvertmacrostovisualbasic", + "displayName": "Database Tools | Macro | Convert Macros to Visual Basic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacroconvertmacrostovisualbasic_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacroconvertmacrostovisualbasic_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrocreateshortcutmenufrommacro", + "displayName": "Database Tools | Macro | Create Shortcut Menu from Macro (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrocreateshortcutmenufrommacro_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrocreateshortcutmenufrommacro_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrorunmacro", + "displayName": "Database Tools | Macro | Run Macro (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrorunmacro_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrorunmacro_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditoracc", + "displayName": "Database tools | Macro | Visual Basic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditoracc_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditoracc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityencryptdecryptdatabase", + "displayName": "File tab | Access Options | Customize | All Commands | Encode/Decode Database (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityencryptdecryptdatabase_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityencryptdecryptdatabase_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecuritysetdatabasepassword", + "displayName": "Database tools | Database tools | Encrypt with Password (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecuritysetdatabasepassword_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecuritysetdatabasepassword_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserandgroupaccounts", + "displayName": "File tab | Access Options | Customize | All Commands | User and Group accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserandgroupaccounts_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserandgroupaccounts_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserandgrouppermissions", + "displayName": "File tab | Access Options | Customize | All Commands | User and Group Permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserandgrouppermissions_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserandgrouppermissions_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserlevelsecuritywizard", + "displayName": "File tab | Access Options | Customize | All Commands | User-Level Security Wizard... (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserlevelsecuritywizard_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolssecurityuserlevelsecuritywizard_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditoracc", + "displayName": "Alt+F11 (Database Tools | Macro | Visual Basic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditoracc_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditoracc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindacc", + "displayName": "Ctrl+F (Home | Find | Find) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindacc_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindacc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkacc", + "displayName": "Ctrl+K (File tab | Options | Customize | All Commands | Insert Hyperlinks) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkacc_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkacc_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_2007compatiblecachepolicy", + "displayName": "Use Access 2007 compatible cache (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_2007compatiblecachepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_2007compatiblecachepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_clearcacheonclosepolicy", + "displayName": "Clear cache on close (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_clearcacheonclosepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_clearcacheonclosepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultcustomtab", + "displayName": "Show custom templates tab by default in Access on the Office Start screen and in File | New (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultcustomtab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultcustomtab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultfileformat", + "displayName": "Default file format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultfileformat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultfileformat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultfileformat_l_empty87", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultfileformat_l_empty87_12", + "displayName": "Access 2007", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultfileformat_l_empty87_10", + "displayName": "Access 2002-2003", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_defaultfileformat_l_empty87_9", + "displayName": "Access 2000", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_donotprompttoconvertolderdatabases", + "displayName": "Do not prompt to convert older databases (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_donotprompttoconvertolderdatabases_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_donotprompttoconvertolderdatabases_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_nevercachepolicy", + "displayName": "Never cache data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_nevercachepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_nevercachepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_personaltemplatespath", + "displayName": "Personal templates path for Access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_personaltemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_personaltemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_miscellaneous_l_personaltemplatespath_l_personaltemplatespath", + "displayName": "Personal templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_toolssecurity_l_modaltrustdecisiononly", + "displayName": "Modal Trust Decision Only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_toolssecurity_l_modaltrustdecisiononly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_toolssecurity_l_modaltrustdecisiononly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_toolssecurity~l_workgroupadministrator_l_pathtosharedworkgroupinformationfileforsecuredmdbfiles", + "displayName": "Path to shared Workgroup information file for secured MDB files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_toolssecurity~l_workgroupadministrator_l_pathtosharedworkgroupinformationfileforsecuredmdbfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_toolssecurity~l_workgroupadministrator_l_pathtosharedworkgroupinformationfileforsecuredmdbfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_access16v2~policy~l_microsoftofficeaccess~l_toolssecurity~l_workgroupadministrator_l_pathtosharedworkgroupinformationfileforsecuredmdbfiles_l_pathtosharedworkgroupinformationfileforsecuredmdbfiles83", + "displayName": "Path to shared Workgroup information file for secured MDB files (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_defaultcategory", + "displayName": "Specify default category for Add New Programs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_defaultcategory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_defaultcategory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_defaultcategory_defaultcategorybox", + "displayName": "Category: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfromcdorfloppy", + "displayName": "Hide the \"Add a program from CD-ROM or floppy disk\" option (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfromcdorfloppy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfromcdorfloppy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfrominternet", + "displayName": "Hide the \"Add programs from Microsoft\" option (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfrominternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfrominternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfromnetwork", + "displayName": "Hide the \"Add programs from your network\" option (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfromnetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddfromnetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddpage", + "displayName": "Hide Add New Programs page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddremoveprograms", + "displayName": "Remove Add or Remove Programs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddremoveprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noaddremoveprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nochooseprogramspage", + "displayName": "Hide the Set Program Access and Defaults page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nochooseprogramspage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nochooseprogramspage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noremovepage", + "displayName": "Hide Change or Remove Programs page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noremovepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noremovepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noservices", + "displayName": "Go directly to Components Wizard (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noservices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_noservices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nosupportinfo", + "displayName": "Remove Support Information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nosupportinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nosupportinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nowindowssetuppage", + "displayName": "Hide Add/Remove Windows Components page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nowindowssetuppage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_addremoveprograms_nowindowssetuppage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprogramcompatibilityassistant_1", + "displayName": "Turn off Program Compatibility Assistant (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprogramcompatibilityassistant_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_appcompat_appcompatturnoffprogramcompatibilityassistant_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockfileelevation", + "displayName": "Block launching desktop apps associated with a file. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockfileelevation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockfileelevation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockprotocolelevation", + "displayName": "Block launching desktop apps associated with a URI scheme (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockprotocolelevation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_appxruntime_appxruntimeblockprotocolelevation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_estimatefilehandlerrisk", + "displayName": "Trust logic for file attachments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_estimatefilehandlerrisk_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_estimatefilehandlerrisk_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_estimatefilehandlerrisk_am_trustlogicsetting", + "displayName": "Determine risk by (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_estimatefilehandlerrisk_am_trustlogicsetting_2", + "displayName": "Preferring the file handler", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_estimatefilehandlerrisk_am_trustlogicsetting_3", + "displayName": "Looking at the file handler and type", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_estimatefilehandlerrisk_am_trustlogicsetting_1", + "displayName": "Preferring the file type", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setfilerisklevel", + "displayName": "Default risk level for file attachments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setfilerisklevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setfilerisklevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setfilerisklevel_am_risklevel", + "displayName": "Set the default risk level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setfilerisklevel_am_risklevel_6150", + "displayName": "High Risk", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setfilerisklevel_am_risklevel_6151", + "displayName": "Moderate Risk", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setfilerisklevel_am_risklevel_6152", + "displayName": "Low Risk", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_sethighriskinclusion", + "displayName": "Inclusion list for high risk file types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_sethighriskinclusion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_sethighriskinclusion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_sethighriskinclusion_am_instructhighriskinclusionlist", + "displayName": "Specify high risk extensions (include a leading period, e.g. .cmd;.exe;). (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setlowriskinclusion", + "displayName": "Inclusion list for low file types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setlowriskinclusion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setlowriskinclusion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setlowriskinclusion_am_instructlowriskinclusionlist", + "displayName": "Specify low risk extensions (include a leading period, e.g. .bmp;.gif;). (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setmodriskinclusion", + "displayName": "Inclusion list for moderate risk file types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setmodriskinclusion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setmodriskinclusion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_attachmentmanager_am_setmodriskinclusion_am_instructmodriskinclusionlist", + "displayName": "Specify moderate risk extensions (include a leading period, e.g. .doc;.pdf;). (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_com_appmgmt_com_searchforclsid_1", + "displayName": "Download missing COM components (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_com_appmgmt_com_searchforclsid_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_com_appmgmt_com_searchforclsid_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_disallowcpls", + "displayName": "Hide specified Control Panel items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_disallowcpls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_disallowcpls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_disallowcpls_disallowcplslist", + "displayName": "List of disallowed Control Panel items (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_forceclassiccontrolpanel", + "displayName": "Always open All Control Panel Items when opening Control Panel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_forceclassiccontrolpanel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_forceclassiccontrolpanel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_nocontrolpanel", + "displayName": "Prohibit access to Control Panel and PC settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_nocontrolpanel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_nocontrolpanel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_restrictcpls", + "displayName": "Show only specified Control Panel items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_restrictcpls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_restrictcpls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpanel_restrictcpls_restrictcplslist", + "displayName": "List of allowed Control Panel items (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_display_disable", + "displayName": "Disable the Display Control Panel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_display_disable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_display_disable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_display_hidesettings", + "displayName": "Hide Settings tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_display_hidesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_display_hidesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablecolorschemechoice", + "displayName": "Prevent changing color scheme (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablecolorschemechoice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablecolorschemechoice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablethemechange", + "displayName": "Prevent changing theme (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablethemechange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablethemechange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablevisualstyle", + "displayName": "Prevent changing visual style for windows and buttons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablevisualstyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_disablevisualstyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_enablescreensaver", + "displayName": "Enable screen saver (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_enablescreensaver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_enablescreensaver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_lockfontsize", + "displayName": "Prohibit selection of visual style font size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_lockfontsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_lockfontsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nocolorappearanceui", + "displayName": "Prevent changing color and appearance (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nocolorappearanceui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nocolorappearanceui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nodesktopbackgroundui", + "displayName": "Prevent changing desktop background (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nodesktopbackgroundui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nodesktopbackgroundui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nodesktopiconsui", + "displayName": "Prevent changing desktop icons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nodesktopiconsui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nodesktopiconsui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nomousepointersui", + "displayName": "Prevent changing mouse pointers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nomousepointersui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nomousepointersui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_noscreensaverui", + "displayName": "Prevent changing screen saver (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_noscreensaverui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_noscreensaverui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nosoundschemeui", + "displayName": "Prevent changing sounds (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nosoundschemeui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_nosoundschemeui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_screensaverissecure", + "displayName": "Password protect the screen saver (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_screensaverissecure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_screensaverissecure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_screensavertimeout", + "displayName": "Screen saver timeout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_screensavertimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_screensavertimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_screensavertimeout_screensavertimeoutfreqspin", + "displayName": "Seconds: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_setscreensaver", + "displayName": "Force specific screen saver (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_setscreensaver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_setscreensaver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_setscreensaver_screensaverfilename", + "displayName": "Screen saver executable name (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_settheme", + "displayName": "Load a specific theme (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_settheme_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_settheme_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_settheme_themefilename", + "displayName": "Path to theme file: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_setvisualstyle", + "displayName": "Force a specific visual style file or force Windows Classic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_setvisualstyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_setvisualstyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_controlpaneldisplay_cpl_personalization_setvisualstyle_themes_name", + "displayName": "Path to Visual Style: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disablechangepassword", + "displayName": "Remove Change Password (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disablechangepassword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disablechangepassword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disablelockcomputer", + "displayName": "Remove Lock Computer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disablelockcomputer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disablelockcomputer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disabletaskmgr", + "displayName": "Remove Task Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disabletaskmgr_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_disabletaskmgr_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_nologoff", + "displayName": "Remove Logoff (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_nologoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_ctrlaltdel_nologoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_enablefilter", + "displayName": "Enable filter in Find dialog box (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_enablefilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_enablefilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_hidedirectoryfolder", + "displayName": "Hide Active Directory folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_hidedirectoryfolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_hidedirectoryfolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_querylimit", + "displayName": "Maximum size of Active Directory searches (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_querylimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_querylimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_ad_querylimit_ad_querylimit_box", + "displayName": "Number of objects returned: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_forceactivedesktopon", + "displayName": "Enable Active Desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_forceactivedesktopon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_forceactivedesktopon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_noactivedesktop", + "displayName": "Disable Active Desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_noactivedesktop_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_noactivedesktop_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_noactivedesktopchanges", + "displayName": "Prohibit changes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_noactivedesktopchanges_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_noactivedesktopchanges_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nodesktop", + "displayName": "Hide and disable all items on the desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nodesktop_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nodesktop_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nodesktopcleanupwizard", + "displayName": "Remove the Desktop Cleanup Wizard (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nodesktopcleanupwizard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nodesktopcleanupwizard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nointerneticon", + "displayName": "Hide Internet Explorer icon on desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nointerneticon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nointerneticon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nomycomputericon", + "displayName": "Remove Computer icon on the desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nomycomputericon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nomycomputericon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nomydocumentsicon", + "displayName": "Remove My Documents icon on the desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nomydocumentsicon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nomydocumentsicon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nonethood", + "displayName": "Hide Network Locations icon on desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nonethood_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nonethood_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nopropertiesmycomputer", + "displayName": "Remove Properties from the Computer icon context menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nopropertiesmycomputer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nopropertiesmycomputer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nopropertiesmydocuments", + "displayName": "Remove Properties from the Documents icon context menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nopropertiesmydocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nopropertiesmydocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecentdocsnethood", + "displayName": "Do not add shares of recently opened documents to Network Locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecentdocsnethood_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecentdocsnethood_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecyclebinicon", + "displayName": "Remove Recycle Bin icon from desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecyclebinicon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecyclebinicon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecyclebinproperties", + "displayName": "Remove Properties from the Recycle Bin context menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecyclebinproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_norecyclebinproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nosavesettings", + "displayName": "Don't save settings at exit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nosavesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nosavesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nowindowminimizingshortcuts", + "displayName": "Turn off Aero Shake window minimizing mouse gesture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_nowindowminimizingshortcuts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_nowindowminimizingshortcuts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_admincomponents_title", + "displayName": "Add/Delete items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_admincomponents_title_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_admincomponents_title_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_admincomponents_title_sz_atc_adminadditem", + "displayName": "Enter URL(s) of desktop item(s) to Add (space separated): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_admincomponents_title_sz_atc_admindeleteitem", + "displayName": "Enter URL(s) of desktop item(s) to Delete (space separated): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableadd", + "displayName": "Prohibit adding items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableadd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableadd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableclose", + "displayName": "Prohibit closing items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableclose_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableclose_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disabledel", + "displayName": "Prohibit deleting items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disabledel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disabledel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableedit", + "displayName": "Prohibit editing items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableedit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_disableedit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_nocomponents", + "displayName": "Disable all items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_nocomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_atc_nocomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_db_dragdropclose", + "displayName": "Prevent adding, dragging, dropping and closing the Taskbar's toolbars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_db_dragdropclose_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_db_dragdropclose_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_db_moving", + "displayName": "Prohibit adjusting desktop toolbars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_db_moving_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_db_moving_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_dwp_nohtmlpaper", + "displayName": "Allow only bitmapped wallpaper (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_dwp_nohtmlpaper_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_sz_dwp_nohtmlpaper_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper", + "displayName": "Desktop Wallpaper (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_wallpapername", + "displayName": "Wallpaper Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_wallpaperstyle", + "displayName": "Wallpaper Style: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_wallpaperstyle_0", + "displayName": "Center", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_wallpaperstyle_1", + "displayName": "Tile", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_wallpaperstyle_2", + "displayName": "Stretch", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_wallpaperstyle_3", + "displayName": "Fit", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_wallpaperstyle_4", + "displayName": "Fill", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_desktop_wallpaper_wallpaperstyle_5", + "displayName": "Span", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_digitallocker_digitalx_diableapplication_titletext_1", + "displayName": "Do not allow Digital Locker to run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_digitallocker_digitalx_diableapplication_titletext_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_digitallocker_digitalx_diableapplication_titletext_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_1", + "displayName": "Specify a default color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_1_dwmdefaultcolorizationcoloralpha", + "displayName": "Alpha (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_1_dwmdefaultcolorizationcolorblue", + "displayName": "Blue (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_1_dwmdefaultcolorizationcolorgreen", + "displayName": "Green (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdefaultcolorizationcolor_1_dwmdefaultcolorizationcolorred", + "displayName": "Red (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdisallowanimations_1", + "displayName": "Do not allow window animations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdisallowanimations_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdisallowanimations_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdisallowcolorizationcolorchanges_1", + "displayName": "Do not allow color changes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdisallowcolorizationcolorchanges_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_dwm_dwmdisallowcolorizationcolorchanges_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_donotincludenonpublishingstandardglyphinthecandidatelist", + "displayName": "Do not include Non-Publishing Standard Glyph in the candidate list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_donotincludenonpublishingstandardglyphinthecandidatelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_donotincludenonpublishingstandardglyphinthecandidatelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_restrictcharactercoderangeofconversion", + "displayName": "Restrict character code range of conversion (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_restrictcharactercoderangeofconversion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_restrictcharactercoderangeofconversion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_restrictcharactercoderangeofconversion_l_restrictcharactercoderangeofconversionid", + "displayName": "Character code range: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffcustomdictionary", + "displayName": "Turn off custom dictionary (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffcustomdictionary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffcustomdictionary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffhistorybasedpredictiveinput", + "displayName": "Turn off history-based predictive input (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffhistorybasedpredictiveinput_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffhistorybasedpredictiveinput_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffinternetsearchintegration", + "displayName": "Turn off Internet search integration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffinternetsearchintegration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffinternetsearchintegration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffopenextendeddictionary", + "displayName": "Turn off Open Extended Dictionary (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffopenextendeddictionary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffopenextendeddictionary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffsavingautotuningdatatofile", + "displayName": "Turn off saving auto-tuning data to file (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffsavingautotuningdatatofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoffsavingautotuningdatatofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoncloudcandidate", + "displayName": "Turn on cloud candidate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoncloudcandidate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoncloudcandidate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoncloudcandidatechs", + "displayName": "Turn on cloud candidate for CHS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoncloudcandidatechs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnoncloudcandidatechs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonlexiconupdate", + "displayName": "Turn on lexicon update (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonlexiconupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonlexiconupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonlivestickers", + "displayName": "Turn on Live Sticker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonlivestickers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonlivestickers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonmisconversionloggingformisconversionreport", + "displayName": "Turn on misconversion logging for misconversion report (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonmisconversionloggingformisconversionreport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_eaime_l_turnonmisconversionloggingformisconversionreport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werarchive_1", + "displayName": "Configure Report Archive (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werarchive_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werarchive_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werarchive_1_werarchivebehavior", + "displayName": "Archive behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werarchive_1_werarchivebehavior_2", + "displayName": "Store all", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werarchive_1_werarchivebehavior_1", + "displayName": "Store parameters only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werarchive_1_wermaxarchivecount", + "displayName": "Maximum number of reports to store: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werautoapproveosdumps_1", + "displayName": "Automatically send memory dumps for OS-generated error reports (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werautoapproveosdumps_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werautoapproveosdumps_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypassdatathrottling_1", + "displayName": "Do not throttle additional data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypassdatathrottling_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypassdatathrottling_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypassnetworkcostthrottling_1", + "displayName": "Send data when on connected to a restricted/costed network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypassnetworkcostthrottling_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypassnetworkcostthrottling_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypasspowerthrottling_1", + "displayName": "Send additional data when on battery power (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypasspowerthrottling_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werbypasspowerthrottling_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentcustomize_1", + "displayName": "Customize consent settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentcustomize_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentcustomize_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentcustomize_1_werconsentcustomize", + "displayName": "Customize consent settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentcustomize_1_werconsentcustomize_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentcustomize_1_werconsentcustomize_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentoverride_1", + "displayName": "Ignore custom consent settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentoverride_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werconsentoverride_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_1", + "displayName": "Configure Default consent (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_1_werconsent", + "displayName": "Consent level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_1_werconsent_1", + "displayName": "Always ask before sending data", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_1_werconsent_2", + "displayName": "Send parameters", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_1_werconsent_3", + "displayName": "Send parameters and safe additional data", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdefaultconsent_1_werconsent_4", + "displayName": "Send all data", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdisable_1", + "displayName": "Disable Windows Error Reporting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdisable_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werdisable_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werexlusion_1", + "displayName": "List of applications to be excluded (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werexlusion_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werexlusion_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werexlusion_1_werexlusionlist", + "displayName": "List of applications to be excluded (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_wernologging_1", + "displayName": "Disable logging (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_wernologging_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_wernologging_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_wernosecondleveldata_1", + "displayName": "Do not send additional data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_wernosecondleveldata_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_wernosecondleveldata_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1", + "displayName": "Configure Report Queue (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1_wermaxqueuecount", + "displayName": "Maximum number of reports to queue: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1_wermaxqueuesize", + "displayName": "Maximum size of the queue (MB): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1_werqueuebehavior", + "displayName": "Queuing behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1_werqueuebehavior_0", + "displayName": "Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1_werqueuebehavior_1", + "displayName": "Always queue", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_errorreporting_werqueue_1_werupdatecheck", + "displayName": "Number of days between solution check reminders: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_explorer_alwaysshowclassicmenu", + "displayName": "Display the menu bar in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_explorer_alwaysshowclassicmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_explorer_alwaysshowclassicmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_explorer_preventitemcreationinusersfilesfolder", + "displayName": "Prevent users from adding files to the root of their Users Files folder. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_explorer_preventitemcreationinusersfilesfolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_explorer_preventitemcreationinusersfilesfolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_explorer_turnoffspianimations", + "displayName": "Turn off common control and window animations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_explorer_turnoffspianimations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_explorer_turnoffspianimations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_filerevocation_delegatedpackagefamilynames", + "displayName": "Allow Windows Runtime apps to revoke enterprise data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_filerevocation_delegatedpackagefamilynames_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_filerevocation_delegatedpackagefamilynames_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_filerevocation_delegatedpackagefamilynames_delegatedpackagefamilynames_eids", + "displayName": "\r\nApps permitted to revoke all protected data from the device for the specified enterprise identifier:\r\n", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpin", + "displayName": "Do not automatically make all redirected folders available offline (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder", + "displayName": "Do not automatically make specific redirected folders available offline (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinappdataroaming", + "displayName": "AppData(Roaming) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinappdataroaming_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinappdataroaming_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepincontacts", + "displayName": "Contacts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepincontacts_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepincontacts_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindesktop", + "displayName": "Desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindesktop_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindesktop_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindocuments", + "displayName": "Documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindocuments_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindocuments_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindownloads", + "displayName": "Downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindownloads_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepindownloads_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinfavorites", + "displayName": "Favorites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinfavorites_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinfavorites_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinlinks", + "displayName": "Links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinlinks_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinlinks_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinmusic", + "displayName": "Music (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinmusic_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinmusic_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinpictures", + "displayName": "Pictures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinpictures_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinpictures_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinsavedgames", + "displayName": "Saved Games (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinsavedgames_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinsavedgames_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinsearches", + "displayName": "Searches (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinsearches_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinsearches_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinstartmenu", + "displayName": "Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinstartmenu_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinstartmenu_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinvideos", + "displayName": "Videos (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinvideos_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_disablefradminpinbyfolder_disablepinvideos_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_folderredirectionenablecacherename", + "displayName": "Enable optimized move of contents in Offline Files cache on Folder Redirection server path change (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_folderredirectionenablecacherename_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_folderredirectionenablecacherename_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_localizexprelativepaths_1", + "displayName": "Use localized subfolder names when redirecting Start Menu and My Documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_localizexprelativepaths_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_localizexprelativepaths_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_primarycomputer_fr_1", + "displayName": "Redirect folders on primary computers only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_primarycomputer_fr_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_folderredirection_primarycomputer_fr_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_framepanes_nopreviewpane", + "displayName": "Turn on or off details pane (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_framepanes_nopreviewpane_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_framepanes_nopreviewpane_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_framepanes_nopreviewpane_previewpane_dropdownlist_box", + "displayName": "Configure details pane (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_framepanes_nopreviewpane_previewpane_dropdownlist_box_1", + "displayName": "Always hide", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_framepanes_nopreviewpane_previewpane_dropdownlist_box_2", + "displayName": "Always show", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_framepanes_noreadingpane", + "displayName": "Turn off Preview Pane (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_framepanes_noreadingpane_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_framepanes_noreadingpane_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_customlocalesnoselect_1", + "displayName": "Disallow selection of Custom Locales (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_customlocalesnoselect_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_customlocalesnoselect_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_hideadminoptions", + "displayName": "Hide Regional and Language Options administrative options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_hideadminoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_hideadminoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidecurrentlocation", + "displayName": "Hide the geographic location option (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidecurrentlocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidecurrentlocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidelanguageselection", + "displayName": "Hide the select language group options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidelanguageselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidelanguageselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidelocaleselectandcustomize", + "displayName": "Hide user locale selection and customization options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidelocaleselectandcustomize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_hidelocaleselectandcustomize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_implicitdatacollectionoff_1", + "displayName": "Turn off automatic learning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_implicitdatacollectionoff_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_implicitdatacollectionoff_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_localeuserrestrict_1", + "displayName": "Restrict user locales (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_localeuserrestrict_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_localeuserrestrict_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_localeuserrestrict_1_allowableuserlocaletaglist", + "displayName": "User Locales (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage", + "displayName": "Restricts the UI languages Windows should use for the selected user (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect", + "displayName": "Restrict users to the following language: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_en-us", + "displayName": "English", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_ja-jp", + "displayName": "Japanese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_ko-kr", + "displayName": "Korean", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_de-de", + "displayName": "German", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_zh-cn", + "displayName": "Simplified Chinese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_zh-tw", + "displayName": "Traditional Chinese (Taiwan)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_fr-fr", + "displayName": "French", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_es-es", + "displayName": "Spanish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_it-it", + "displayName": "Italian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_sv-se", + "displayName": "Swedish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_nl-nl", + "displayName": "Dutch", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_pt-br", + "displayName": "Portuguese (Brazil)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_fi-fi", + "displayName": "Finnish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_nb-no", + "displayName": "Norwegian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_da-dk", + "displayName": "Danish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_hu-hu", + "displayName": "Hungarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_pl-pl", + "displayName": "Polish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_ru-ru", + "displayName": "Russian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_cs-cz", + "displayName": "Czech", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_el-gr", + "displayName": "Greek", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_pt-pt", + "displayName": "Portuguese (Portugal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_tr-tr", + "displayName": "Turkish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_ar-sa", + "displayName": "Arabic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_he-il", + "displayName": "Hebrew", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_sk-sk", + "displayName": "Slovak", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_sl-si", + "displayName": "Slovenian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_ro-ro", + "displayName": "Romanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_hr-hr", + "displayName": "Croatian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_bg-bg", + "displayName": "Bulgarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_et-ee", + "displayName": "Estonian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_lt-lt", + "displayName": "Lithuanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_lv-lv", + "displayName": "Latvian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_th-th", + "displayName": "Thai", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_zh-hk", + "displayName": "Traditional Chinese (Hong Kong)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_sr-latn-cs", + "displayName": "Serbian (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_lockuseruilanguage_uilangselect_uk-ua", + "displayName": "Ukrainian", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_preventgeoidchange_1", + "displayName": "Disallow changing of geographic location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_preventgeoidchange_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_preventgeoidchange_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_preventuseroverrides_1", + "displayName": "Disallow user override of locale settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_preventuseroverrides_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_preventuseroverrides_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect", + "displayName": "Restrict selection of Windows menus and dialogs language (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect", + "displayName": "Restrict users to the following language: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000409", + "displayName": "English", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000411", + "displayName": "Japanese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000412", + "displayName": "Korean", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000407", + "displayName": "German", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000804", + "displayName": "Simplified Chinese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000404", + "displayName": "Traditional Chinese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000040c", + "displayName": "French", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000c0a", + "displayName": "Spanish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000410", + "displayName": "Italian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000041d", + "displayName": "Swedish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000413", + "displayName": "Dutch", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000416", + "displayName": "Portuguese (Brazil)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000040b", + "displayName": "Finnish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000414", + "displayName": "Norwegian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000406", + "displayName": "Danish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000040e", + "displayName": "Hungarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000415", + "displayName": "Polish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000419", + "displayName": "Russian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000405", + "displayName": "Czech", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000408", + "displayName": "Greek", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000816", + "displayName": "Portuguese (Portugal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000041f", + "displayName": "Turkish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000401", + "displayName": "Arabic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000040d", + "displayName": "Hebrew", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000041b", + "displayName": "Slovak", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000424", + "displayName": "Slovenian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000418", + "displayName": "Romanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000041a", + "displayName": "Croatian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000402", + "displayName": "Bulgarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000425", + "displayName": "Estonian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000427", + "displayName": "Lithuanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_00000426", + "displayName": "Latvian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_restrictuilangselect_uilangselect_0000041e", + "displayName": "Thai", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffautocorrectmisspelledwords", + "displayName": "Turn off autocorrect misspelled words (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffautocorrectmisspelledwords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffautocorrectmisspelledwords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffhighlightmisspelledwords", + "displayName": "Turn off highlight misspelled words (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffhighlightmisspelledwords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffhighlightmisspelledwords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffinsertspace", + "displayName": "Turn off insert a space after selecting a text prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffinsertspace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffinsertspace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffoffertextpredictions", + "displayName": "Turn off offer text predictions as I type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffoffertextpredictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_turnoffoffertextpredictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_y2k", + "displayName": "Century interpretation for Year 2000 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_globalization_y2k_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_y2k_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_globalization_y2k_y2kyear", + "displayName": "Year (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_denyrsoptointeractiveuser_1", + "displayName": "Determine if interactive users can generate Resultant Set of Policy data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_denyrsoptointeractiveuser_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_denyrsoptointeractiveuser_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_disableautoadmupdate", + "displayName": "Turn off automatic update of ADM files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_disableautoadmupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_disableautoadmupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_enforcepoliciesonly", + "displayName": "Enforce Show Policies Only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_enforcepoliciesonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_enforcepoliciesonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gpdcoptions", + "displayName": "Configure Group Policy domain controller selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gpdcoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gpdcoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gpdcoptions_gpdcoptionsdesc", + "displayName": "When Group Policy Object Editor is selecting a domain controller to use, it should: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gpdcoptions_gpdcoptionsdesc_1", + "displayName": "Use the Primary Domain Controller", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gpdcoptions_gpdcoptionsdesc_2", + "displayName": "Inherit from Active Directory Snap-ins", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gpdcoptions_gpdcoptionsdesc_3", + "displayName": "Use any available domain controller", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_1", + "displayName": "Configure Group Policy slow link detection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_gptransferrate_1_transferrateop1", + "displayName": "Connection speed (Kbps): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrateuser", + "displayName": "Set Group Policy refresh interval for users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrateuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrateuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrateuser_gprefreshrate3", + "displayName": "Minutes: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_grouppolicyrefreshrateuser_gprefreshrateoffset3", + "displayName": "Minutes: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_newgpodisplayname", + "displayName": "Set default name for new Group Policy objects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_newgpodisplayname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_newgpodisplayname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_newgpodisplayname_newgpodisplaynameheading", + "displayName": "GPO Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_newgpolinksdisabled", + "displayName": "Create new Group Policy Object links disabled by default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_newgpolinksdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_newgpolinksdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions", + "displayName": "Process Mitigation Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_processmitigationoptionslist", + "displayName": "Process Mitigation Options (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_processmitigationoptionslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_grouppolicy_processmitigationoptions_processmitigationoptionslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_help_restrictrunfromhelp", + "displayName": "Restrict these programs from being launched from Help (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_help_restrictrunfromhelp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_help_restrictrunfromhelp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_help_restrictrunfromhelp_restrictrunfromhelp_edit", + "displayName": "Enter executables separated by commas: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hpexplicitfeedback", + "displayName": "Turn off Help Ratings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hpexplicitfeedback_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hpexplicitfeedback_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hpimplicitfeedback", + "displayName": "Turn off Help Experience Improvement Program (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hpimplicitfeedback_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hpimplicitfeedback_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hponlineassistance", + "displayName": "Turn off Windows Online (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hponlineassistance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_helpandsupport_hponlineassistance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_disablehttpprinting_1", + "displayName": "Turn off printing over HTTP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_disablehttpprinting_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_disablehttpprinting_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_disablewebpnpdownload_1", + "displayName": "Turn off downloading of print drivers over HTTP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_disablewebpnpdownload_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_disablewebpnpdownload_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_internetmanagement_restrictcommunication_1", + "displayName": "Restrict Internet communication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_internetmanagement_restrictcommunication_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_internetmanagement_restrictcommunication_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellnouseinternetopenwith_1", + "displayName": "Turn off Internet File Association service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_shellnouseinternetopenwith_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellnouseinternetopenwith_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellnousestoreopenwith_1", + "displayName": "Turn off access to the Store (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_shellnousestoreopenwith_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellnousestoreopenwith_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellpreventwpwdownload_1", + "displayName": "Turn off Internet download for Web publishing and online ordering wizards (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_shellpreventwpwdownload_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellpreventwpwdownload_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellremoveorderprints_1", + "displayName": "Turn off the \"Order Prints\" picture task (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_shellremoveorderprints_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellremoveorderprints_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellremovepublishtoweb_1", + "displayName": "Turn off the \"Publish to Web\" task for files and folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_shellremovepublishtoweb_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_shellremovepublishtoweb_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_winmsg_noinstrumentation_1", + "displayName": "Turn off the Windows Messenger Customer Experience Improvement Program (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_icm_winmsg_noinstrumentation_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_icm_winmsg_noinstrumentation_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_disableexplorerrunlegacy_1", + "displayName": "Do not process the legacy run list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_logon_disableexplorerrunlegacy_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_disableexplorerrunlegacy_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_disableexplorerrunoncelegacy_1", + "displayName": "Do not process the run once list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_logon_disableexplorerrunoncelegacy_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_disableexplorerrunoncelegacy_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_nowelcometips_1", + "displayName": "Do not display the Getting Started welcome screen at logon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_logon_nowelcometips_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_nowelcometips_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_run_1", + "displayName": "Run these programs at user logon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_logon_run_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_run_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_logon_run_1_runlistbox1", + "displayName": "Items to run at logon (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_activexcontrol", + "displayName": "ActiveX Control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_activexcontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_activexcontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_extendview", + "displayName": "Extended View (Web View) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_extendview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_extendview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_linktoweb", + "displayName": "Link to Web Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_linktoweb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_linktoweb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_restrict_author", + "displayName": "Restrict the user from entering author mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_restrict_author_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_restrict_author_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_restrict_to_permitted_snapins", + "displayName": "Restrict users to the explicitly permitted list of snap-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_restrict_to_permitted_snapins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmc_mmc_restrict_to_permitted_snapins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activedirdomtrusts", + "displayName": "Active Directory Domains and Trusts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activedirdomtrusts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activedirdomtrusts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activedirsitesservices", + "displayName": "Active Directory Sites and Services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activedirsitesservices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activedirsitesservices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activediruserscomp", + "displayName": "Active Directory Users and Computers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activediruserscomp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_activediruserscomp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admcomputers_1", + "displayName": "Administrative Templates (Computers) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admcomputers_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admcomputers_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admcomputers_2", + "displayName": "Administrative Templates (Computers) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admcomputers_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admcomputers_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admusers_1", + "displayName": "Administrative Templates (Users) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admusers_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admusers_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admusers_2", + "displayName": "Administrative Templates (Users) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admusers_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_admusers_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_adsi", + "displayName": "ADSI Edit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_adsi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_adsi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_appletalkrouting", + "displayName": "AppleTalk Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_appletalkrouting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_appletalkrouting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_authman", + "displayName": "Authorization Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_authman_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_authman_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certauth", + "displayName": "Certification Authority (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certauth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certauth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certauthpolset", + "displayName": "Certification Authority Policy Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certauthpolset_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certauthpolset_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certs", + "displayName": "Certificates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certstemplate", + "displayName": "Certificate Templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certstemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_certstemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_componentservices", + "displayName": "Component Services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_componentservices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_componentservices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_computermanagement", + "displayName": "Computer Management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_computermanagement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_computermanagement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_connectionsharingnat", + "displayName": "Connection Sharing (NAT) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_connectionsharingnat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_connectionsharingnat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dcomcfg", + "displayName": "DCOM Configuration Extension (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dcomcfg_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dcomcfg_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_devicemanager_1", + "displayName": "Device Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_devicemanager_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_devicemanager_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_devicemanager_2", + "displayName": "Device Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_devicemanager_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_devicemanager_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dfs", + "displayName": "Distributed File System (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dfs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dfs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dhcprelaymgmt", + "displayName": "DHCP Relay Management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dhcprelaymgmt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_dhcprelaymgmt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_diskdefrag", + "displayName": "Disk Defragmenter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_diskdefrag_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_diskdefrag_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_diskmgmt", + "displayName": "Disk Management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_diskmgmt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_diskmgmt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_enterprisepki", + "displayName": "Enterprise PKI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_enterprisepki_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_enterprisepki_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_1", + "displayName": "Event Viewer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_2", + "displayName": "Event Viewer (Windows Vista) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_3", + "displayName": "Event Viewer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_4", + "displayName": "Event Viewer (Windows Vista) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_eventviewer_4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_failoverclusters", + "displayName": "Failover Clusters Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_failoverclusters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_failoverclusters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_faxservice", + "displayName": "FAX Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_faxservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_faxservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_folderredirection_1", + "displayName": "Folder Redirection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_folderredirection_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_folderredirection_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_folderredirection_2", + "displayName": "Folder Redirection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_folderredirection_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_folderredirection_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_frontpageext", + "displayName": "FrontPage Server Extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_frontpageext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_frontpageext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicymanagementsnapin", + "displayName": "Group Policy Management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicymanagementsnapin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicymanagementsnapin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicysnapin", + "displayName": "Group Policy Object Editor (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicysnapin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicysnapin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicytab", + "displayName": "Group Policy tab for Active Directory Tools (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicytab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_grouppolicytab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_hra", + "displayName": "Health Registration Authority (HRA) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_hra_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_hra_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ias", + "displayName": "Internet Authentication Service (IAS) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ias_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ias_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iaslogging", + "displayName": "IAS Logging (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iaslogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iaslogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iemaintenance_1", + "displayName": "Internet Explorer Maintenance (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iemaintenance_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iemaintenance_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iemaintenance_2", + "displayName": "Internet Explorer Maintenance (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iemaintenance_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iemaintenance_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_igmprouting", + "displayName": "IGMP Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_igmprouting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_igmprouting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iis", + "displayName": "Internet Information Services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iis_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iis_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_indexingservice", + "displayName": "Indexing Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_indexingservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_indexingservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iprouting", + "displayName": "IP Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iprouting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_iprouting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmanage", + "displayName": "IP Security Policy Management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmanage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmanage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmanage_gp", + "displayName": "IP Security Policy Management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmanage_gp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmanage_gp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmonitor", + "displayName": "IP Security Monitor (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmonitor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipsecmonitor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxriprouting", + "displayName": "IPX RIP Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxriprouting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxriprouting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxrouting", + "displayName": "IPX Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxrouting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxrouting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxsaprouting", + "displayName": "IPX SAP Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxsaprouting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ipxsaprouting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_localusersgroups", + "displayName": "Local Users and Groups (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_localusersgroups_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_localusersgroups_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_logicalmappeddrives", + "displayName": "Logical and Mapped Drives (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_logicalmappeddrives_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_logicalmappeddrives_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_napsnap", + "displayName": "NAP Client Configuration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_napsnap_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_napsnap_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_napsnap_gp", + "displayName": "NAP Client Configuration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_napsnap_gp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_napsnap_gp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_net_framework", + "displayName": ".Net Framework Configuration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_net_framework_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_net_framework_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_npsui", + "displayName": "Network Policy Server (NPS) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_npsui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_npsui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ocsp", + "displayName": "Online Responder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ocsp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ocsp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ospfrouting", + "displayName": "OSPF Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ospfrouting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ospfrouting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_perflogsalerts", + "displayName": "Performance Logs and Alerts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_perflogsalerts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_perflogsalerts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_publickey", + "displayName": "Public Key Policies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_publickey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_publickey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_qosadmission", + "displayName": "QoS Admission Control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_qosadmission_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_qosadmission_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ras_dialinuser", + "displayName": "RAS Dialin - User Node (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ras_dialinuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ras_dialinuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remoteaccess", + "displayName": "Remote Access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remoteaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remoteaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remotedesktop", + "displayName": "Remote Desktops (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remotedesktop_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remotedesktop_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remstore", + "displayName": "Removable Storage (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remstore_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_remstore_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_resultantsetofpolicysnapin", + "displayName": "Resultant Set of Policy snap-in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_resultantsetofpolicysnapin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_resultantsetofpolicysnapin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_riprouting", + "displayName": "RIP Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_riprouting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_riprouting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ris", + "displayName": "Remote Installation Services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ris_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_ris_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_routing", + "displayName": "Routing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_routing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_routing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_rra", + "displayName": "Routing and Remote Access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_rra_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_rra_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_rsm", + "displayName": "Removable Storage Management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_rsm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_rsm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sca", + "displayName": "Security Configuration and Analysis (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sca_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sca_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsmachine_1", + "displayName": "Scripts (Startup/Shutdown) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsmachine_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsmachine_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsmachine_2", + "displayName": "Scripts (Startup/Shutdown) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsmachine_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsmachine_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsuser_1", + "displayName": "Scripts (Logon/Logoff) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsuser_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsuser_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsuser_2", + "displayName": "Scripts (Logon/Logoff) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsuser_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_scriptsuser_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitysettings_1", + "displayName": "Security Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitysettings_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitysettings_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitysettings_2", + "displayName": "Security Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitysettings_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitysettings_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitytemplates", + "displayName": "Security Templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitytemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_securitytemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sendconsolemessage", + "displayName": "Send Console Message (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sendconsolemessage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sendconsolemessage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_servermanager", + "displayName": "Server Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_servermanager_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_servermanager_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_servicedependencies", + "displayName": "Service Dependencies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_servicedependencies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_servicedependencies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_services", + "displayName": "Services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_services_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_services_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sharedfolders", + "displayName": "Shared Folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sharedfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sharedfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sharedfolders_ext", + "displayName": "Shared Folders Ext (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sharedfolders_ext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sharedfolders_ext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_smtpprotocol", + "displayName": "SMTP Protocol (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_smtpprotocol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_smtpprotocol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_snmp", + "displayName": "SNMP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_snmp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_snmp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstalationcomputers_1", + "displayName": "Software Installation (Computers) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstalationcomputers_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstalationcomputers_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstalationcomputers_2", + "displayName": "Software Installation (Computers) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstalationcomputers_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstalationcomputers_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstallationusers_1", + "displayName": "Software Installation (Users) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstallationusers_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstallationusers_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstallationusers_2", + "displayName": "Software Installation (Users) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstallationusers_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_softwareinstallationusers_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sysinfo", + "displayName": "System Information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sysinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sysinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sysprop", + "displayName": "System Properties (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sysprop_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_sysprop_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_telephony", + "displayName": "Telephony (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_telephony_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_telephony_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_terminalservices", + "displayName": "Remote Desktop Services Configuration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_terminalservices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_terminalservices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_tpmmanagement", + "displayName": "TPM Management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_tpmmanagement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_tpmmanagement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_windowsfirewall", + "displayName": "Windows Firewall with Advanced Security (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_windowsfirewall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_windowsfirewall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_windowsfirewall_gp", + "displayName": "Windows Firewall with Advanced Security (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_windowsfirewall_gp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_windowsfirewall_gp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirednetworkpolicy", + "displayName": "Wired Network (IEEE 802.3) Policies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirednetworkpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirednetworkpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirelessmon", + "displayName": "Wireless Monitor (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirelessmon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirelessmon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirelessnetworkpolicy", + "displayName": "Wireless Network (IEEE 802.11) Policies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirelessnetworkpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wirelessnetworkpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wmi", + "displayName": "WMI Control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wmi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mmcsnapins_mmc_wmi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mobilepcmobilitycenter_mobilitycenterenable_1", + "displayName": "Turn off Windows Mobility Center (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mobilepcmobilitycenter_mobilitycenterenable_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mobilepcmobilitycenter_mobilitycenterenable_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_mobilepcpresentationsettings_presentationsettingsenable_1", + "displayName": "Turn off Windows presentation settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_mobilepcpresentationsettings_presentationsettingsenable_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_mobilepcpresentationsettings_presentationsettingsenable_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_msi_disablemedia", + "displayName": "Prevent removable media source for any installation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_msi_disablemedia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_msi_disablemedia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_msi_disablerollback_1", + "displayName": "Prohibit rollback (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_msi_disablerollback_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_msi_disablerollback_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_msi_searchorder", + "displayName": "Specify the order in which Windows Installer searches for installation files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_msi_searchorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_msi_searchorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_msi_searchorder_searchorder", + "displayName": "Search order (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_addremovecomponents", + "displayName": "Prohibit adding and removing components for a LAN or remote access connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_addremovecomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_addremovecomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_advancedsettings", + "displayName": "Prohibit access to the Advanced Settings item on the Advanced menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_advancedsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_advancedsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_allowadvancedtcpipconfig", + "displayName": "Prohibit TCP/IP advanced configuration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_allowadvancedtcpipconfig_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_allowadvancedtcpipconfig_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_changebindstate", + "displayName": "Prohibit Enabling/Disabling components of a LAN connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_changebindstate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_changebindstate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_deletealluserconnection", + "displayName": "Ability to delete all user remote access connections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_deletealluserconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_deletealluserconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_deleteconnection", + "displayName": "Prohibit deletion of remote access connections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_deleteconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_deleteconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_dialupprefs", + "displayName": "Prohibit access to the Remote Access Preferences item on the Advanced menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_dialupprefs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_dialupprefs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_enableadminprohibits", + "displayName": "Enable Windows 2000 Network Connections settings for Administrators (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_enableadminprohibits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_enableadminprohibits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_ipstatechecking", + "displayName": "Turn off notifications when a connection has only limited or no connectivity (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_ipstatechecking_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_ipstatechecking_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanchangeproperties", + "displayName": "Prohibit access to properties of components of a LAN connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanchangeproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanchangeproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanconnect", + "displayName": "Ability to Enable/Disable a LAN connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanconnect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanconnect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanproperties", + "displayName": "Prohibit access to properties of a LAN connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_lanproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_newconnectionwizard", + "displayName": "Prohibit access to the New Connection Wizard (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_newconnectionwizard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_newconnectionwizard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasalluserproperties", + "displayName": "Ability to change properties of an all user remote access connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasalluserproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasalluserproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_raschangeproperties", + "displayName": "Prohibit access to properties of components of a remote access connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_raschangeproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_raschangeproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasconnect", + "displayName": "Prohibit connecting and disconnecting a remote access connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasconnect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasconnect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasmyproperties", + "displayName": "Prohibit changing properties of a private remote access connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasmyproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_rasmyproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamealluserrasconnection", + "displayName": "Ability to rename all user remote access connections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamealluserrasconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamealluserrasconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renameconnection", + "displayName": "Ability to rename LAN connections or remote access connections available to all users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renameconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renameconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamelanconnection", + "displayName": "Ability to rename LAN connections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamelanconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamelanconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamemyrasconnection", + "displayName": "Prohibit renaming private remote access connections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamemyrasconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_renamemyrasconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_statistics", + "displayName": "Prohibit viewing of status for an active connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_statistics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_networkconnections_nc_statistics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_1", + "displayName": "Specify administratively assigned Offline Files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_1_lbl_assignedofflinefileslist", + "displayName": "Files and Folders: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_1_lbl_assignedofflinefileslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_assignedofflinefiles_1_lbl_assignedofflinefileslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_1", + "displayName": "Non-default server disconnect actions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_1_lbl_customgoofflineactionslist", + "displayName": "Customize actions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_1_lbl_customgoofflineactionslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_customgoofflineactions_1_lbl_customgoofflineactionslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_eventlogginglevel_1", + "displayName": "Event logging level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_eventlogginglevel_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_eventlogginglevel_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_eventlogginglevel_1_lbl_eventlogginglevelspin", + "displayName": "Enter [0-3]: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_1", + "displayName": "Action on server disconnect (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_1_lbl_goofflineactioncombo", + "displayName": "Action: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_1_lbl_goofflineactioncombo_0", + "displayName": "Work offline", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_goofflineaction_1_lbl_goofflineactioncombo_1", + "displayName": "Never go offline", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nocacheviewer_1", + "displayName": "Prevent use of Offline Files folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nocacheviewer_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nocacheviewer_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_noconfigcache_1", + "displayName": "Prohibit user configuration of Offline Files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_noconfigcache_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_noconfigcache_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nomakeavailableoffline_1", + "displayName": "Remove \"Make Available Offline\" command (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nomakeavailableoffline_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nomakeavailableoffline_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_1", + "displayName": "Remove \"Make Available Offline\" for these files and folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_1_lbl_nopinfileslist", + "displayName": "Files and Folders: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_1_lbl_nopinfileslist_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_nopinfiles_1_lbl_nopinfileslist_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_noreminders_1", + "displayName": "Turn off reminder balloons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_noreminders_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_noreminders_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_reminderfreq_1", + "displayName": "Reminder balloon frequency (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_reminderfreq_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_reminderfreq_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_reminderfreq_1_lbl_reminderfreqspin", + "displayName": "Minutes: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_reminderinittimeout_1", + "displayName": "Initial reminder balloon lifetime (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_reminderinittimeout_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_reminderinittimeout_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_reminderinittimeout_1_lbl_reminderinittimeoutspin", + "displayName": "Seconds: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_remindertimeout_1", + "displayName": "Reminder balloon lifetime (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_remindertimeout_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_remindertimeout_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_remindertimeout_1_lbl_remindertimeoutspin", + "displayName": "Seconds: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogoff_1", + "displayName": "Synchronize all offline files before logging off (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogoff_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogoff_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogon_1", + "displayName": "Synchronize all offline files when logging on (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogon_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatlogon_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_1", + "displayName": "Synchronize offline files before suspend (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_1_lbl_syncatsuspendcombo", + "displayName": "Action: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_1_lbl_syncatsuspendcombo_0", + "displayName": "Quick", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_syncatsuspend_1_lbl_syncatsuspendcombo_1", + "displayName": "Full", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_workofflinedisabled_1", + "displayName": "Remove \"Work offline\" command (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_workofflinedisabled_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_offlinefiles_pol_workofflinedisabled_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_pentraining_pentrainingoff_1", + "displayName": "Turn off Tablet PC Pen Training (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_pentraining_pentrainingoff_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_pentraining_pentrainingoff_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_power_pw_promptpasswordonresume", + "displayName": "Prompt for password on resume from hibernate/suspend (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_power_pw_promptpasswordonresume_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_power_pw_promptpasswordonresume_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablemodulelogging", + "displayName": "Turn on Module Logging (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablemodulelogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablemodulelogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablemodulelogging_listbox_modulenames", + "displayName": "Module Names (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts", + "displayName": "Turn on Script Execution (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_executionpolicy", + "displayName": "Execution Policy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_executionpolicy_allsigned", + "displayName": "Allow only signed scripts", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_executionpolicy_remotesigned", + "displayName": "Allow local scripts and remote signed scripts", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enablescripts_executionpolicy_unrestricted", + "displayName": "Allow all scripts", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting", + "displayName": "Turn on PowerShell Transcription (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_enableinvocationheader", + "displayName": "Include invocation headers: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_enableinvocationheader_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_enableinvocationheader_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enabletranscripting_outputdirectory", + "displayName": "Transcript output directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enableupdatehelpdefaultsourcepath", + "displayName": "Set the default source path for Update-Help (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enableupdatehelpdefaultsourcepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enableupdatehelpdefaultsourcepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_powershellexecutionpolicy_enableupdatehelpdefaultsourcepath_sourcepathforupdatehelp", + "displayName": "Default Source Path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablebackuprestore_1", + "displayName": "Prevent restoring previous versions from backups (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablebackuprestore_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablebackuprestore_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablelocalpage_1", + "displayName": "Hide previous versions list for local files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablelocalpage_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablelocalpage_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablelocalrestore_1", + "displayName": "Prevent restoring local previous versions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablelocalrestore_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disablelocalrestore_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disableremotepage_1", + "displayName": "Hide previous versions list for remote files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disableremotepage_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disableremotepage_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disableremoterestore_1", + "displayName": "Prevent restoring remote previous versions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disableremoterestore_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_disableremoterestore_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_hidebackupentries_1", + "displayName": "Hide previous versions of files on backup location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_previousversions_hidebackupentries_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_previousversions_hidebackupentries_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_downlevelbrowse", + "displayName": "Browse the network to find printers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_printing_downlevelbrowse_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_downlevelbrowse_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_intranetprintersurl", + "displayName": "Browse a common web site to find printers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_printing_intranetprintersurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_intranetprintersurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_intranetprintersurl_intranetprintersurl_link", + "displayName": "Printers Page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_legacydefaultprintermode", + "displayName": "Turn off Windows default printer management (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_printing_legacydefaultprintermode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_legacydefaultprintermode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_nodeleteprinter", + "displayName": "Prevent deletion of printers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_printing_nodeleteprinter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_nodeleteprinter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_packagepointandprintonly", + "displayName": "Only use Package Point and print (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_printing_packagepointandprintonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_packagepointandprintonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_packagepointandprintserverlist", + "displayName": "Package Point and print - Approved servers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_printing_packagepointandprintserverlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_packagepointandprintserverlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_packagepointandprintserverlist_packagepointandprintserverlist_edit", + "displayName": "Enter fully qualified server names (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_printerdirectorysearchscope", + "displayName": "Default Active Directory path when searching for printers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_printing_printerdirectorysearchscope_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_printerdirectorysearchscope_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_printing_printerdirectorysearchscope_printerdirectorysearchscope_name", + "displayName": "Default Active Directory path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_nodefaultprograms", + "displayName": "Hide \"Set Program Access and Computer Defaults\" page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_programs_nodefaultprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_nodefaultprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_nogetprograms", + "displayName": "Hide \"Get Programs\" page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_programs_nogetprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_nogetprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_noinstalledupdates", + "displayName": "Hide \"Installed Updates\" page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_programs_noinstalledupdates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_noinstalledupdates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_noprogramsandfeatures", + "displayName": "Hide \"Programs and Features\" page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_programs_noprogramsandfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_noprogramsandfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_noprogramscpl", + "displayName": "Hide the Programs Control Panel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_programs_noprogramscpl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_noprogramscpl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_nowindowsfeatures", + "displayName": "Hide \"Windows Features\" (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_programs_nowindowsfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_nowindowsfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_nowindowsmarketplace", + "displayName": "Hide \"Windows Marketplace\" (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_programs_nowindowsmarketplace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_programs_nowindowsmarketplace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_accessrights_reboottime_1", + "displayName": "Set time (in seconds) to force reboot (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_accessrights_reboottime_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_accessrights_reboottime_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_accessrights_reboottime_1_accessrights_reboottime_seconds", + "displayName": "Time (in seconds): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyread_access_1", + "displayName": "CD and DVD: Deny read access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyread_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denyread_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denywrite_access_1", + "displayName": "CD and DVD: Deny write access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denywrite_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_cdanddvd_denywrite_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_customclasses_denyread_access_1", + "displayName": "Custom Classes: Deny read access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_customclasses_denyread_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_customclasses_denyread_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_customclasses_denyread_access_1_customclasses_list", + "displayName": "GUID for custom removable storage class: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_customclasses_denywrite_access_1", + "displayName": "Custom Classes: Deny write access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_customclasses_denywrite_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_customclasses_denywrite_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_customclasses_denywrite_access_1_customclasses_list", + "displayName": "GUID for custom removable storage class: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyread_access_1", + "displayName": "Floppy Drives: Deny read access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyread_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_floppydrives_denyread_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_floppydrives_denywrite_access_1", + "displayName": "Floppy Drives: Deny write access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_floppydrives_denywrite_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_floppydrives_denywrite_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyread_access_1", + "displayName": "Removable Disks: Deny read access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyread_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removabledisks_denyread_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removabledisks_denywrite_access_1", + "displayName": "Removable Disks: Deny write access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removabledisks_denywrite_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removabledisks_denywrite_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removablestorageclasses_denyall_access_1", + "displayName": "All Removable Storage classes: Deny all access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removablestorageclasses_denyall_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_removablestorageclasses_denyall_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyread_access_1", + "displayName": "Tape Drives: Deny read access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyread_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_tapedrives_denyread_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_tapedrives_denywrite_access_1", + "displayName": "Tape Drives: Deny write access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_tapedrives_denywrite_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_tapedrives_denywrite_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_wpddevices_denyread_access_1", + "displayName": "WPD Devices: Deny read access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_wpddevices_denyread_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_wpddevices_denyread_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_wpddevices_denywrite_access_1", + "displayName": "WPD Devices: Deny write access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_wpddevices_denywrite_access_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_removablestorage_wpddevices_denywrite_access_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_legacy_logon_script_hidden", + "displayName": "Run legacy logon scripts hidden (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_legacy_logon_script_hidden_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_legacy_logon_script_hidden_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logoff_script_visible", + "displayName": "Display instructions in logoff scripts as they run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logoff_script_visible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logoff_script_visible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logon_script_sync_1", + "displayName": "Run logon scripts synchronously (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logon_script_sync_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logon_script_sync_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logon_script_visible", + "displayName": "Display instructions in logon scripts as they run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logon_script_visible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_logon_script_visible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_user_ps_scripts_first", + "displayName": "Run Windows PowerShell scripts first at user logon, logoff (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_user_ps_scripts_first_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_scripts_run_user_ps_scripts_first_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablelocation_1", + "displayName": "Turn off location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablelocation_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablelocation_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablelocationscripting_1", + "displayName": "Turn off location scripting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablelocationscripting_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablelocationscripting_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablesensors_1", + "displayName": "Turn off sensors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablesensors_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_sensors_disablesensors_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_sharedfolders_publishdfsroots", + "displayName": "Allow DFS roots to be published (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_sharedfolders_publishdfsroots_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_sharedfolders_publishdfsroots_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_sharedfolders_publishsharedfolders", + "displayName": "Allow shared folders to be published (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_sharedfolders_publishsharedfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_sharedfolders_publishsharedfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_sharing_noinplacesharing", + "displayName": "Prevent users from sharing files within their profile. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_sharing_noinplacesharing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_sharing_noinplacesharing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disablecmd", + "displayName": "Prevent access to the command prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disablecmd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disablecmd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disablecmd_disablecmdscripts", + "displayName": "Disable the command prompt script processing also? (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disablecmd_disablecmdscripts_1", + "displayName": "Yes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disablecmd_disablecmdscripts_2", + "displayName": "No", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disableregedit", + "displayName": "Prevent access to registry editing tools (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disableregedit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disableregedit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disableregedit_disableregeditmode", + "displayName": "Disable regedit from running silently? (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disableregedit_disableregeditmode_2", + "displayName": "Yes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disableregedit_disableregeditmode_1", + "displayName": "No", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disallowapps", + "displayName": "Don't run specified Windows applications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disallowapps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disallowapps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_disallowapps_disallowappslist", + "displayName": "List of disallowed applications (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_restrictapps", + "displayName": "Run only specified Windows applications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_restrictapps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_restrictapps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_shellcommandpromptregedittools_restrictapps_restrictapps_restrictappslist", + "displayName": "List of allowed applications (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_soundrec_soundrec_diableapplication_titletext_1", + "displayName": "Do not allow Sound Recorder to run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_soundrec_soundrec_diableapplication_titletext_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_soundrec_soundrec_diableapplication_titletext_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_addsearchinternetlinkinstartmenu", + "displayName": "Add Search Internet link to Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_addsearchinternetlinkinstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_addsearchinternetlinkinstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_clearrecentdocsonexit", + "displayName": "Clear history of recently opened documents on exit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_clearrecentdocsonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_clearrecentdocsonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_clearrecentprogfornewuserinstartmenu", + "displayName": "Clear the recent programs list for new users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_clearrecentprogfornewuserinstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_clearrecentprogfornewuserinstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_cleartilesonexit", + "displayName": "Clear tile notifications during log on (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_cleartilesonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_cleartilesonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_desktopappsfirstinappsview", + "displayName": "List desktop apps first in the Apps view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_desktopappsfirstinappsview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_desktopappsfirstinappsview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_disableglobalsearchonappsview", + "displayName": "Search just apps from the Apps view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_disableglobalsearchonappsview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_disableglobalsearchonappsview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_forcestartmenulogoff", + "displayName": "Add Logoff to the Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_forcestartmenulogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_forcestartmenulogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_gotodesktoponsignin", + "displayName": "Go to the desktop instead of Start when signing in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_gotodesktoponsignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_gotodesktoponsignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_greymsiads", + "displayName": "Gray unavailable Windows Installer programs Start Menu shortcuts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_greymsiads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_greymsiads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_intellimenus", + "displayName": "Turn off personalized menus (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_intellimenus_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_intellimenus_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_locktaskbar", + "displayName": "Lock the Taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_locktaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_locktaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_memcheckboxinrundlg", + "displayName": "Add \"Run in Separate Memory Space\" check box to Run dialog box (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_memcheckboxinrundlg_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_memcheckboxinrundlg_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noautotraynotify", + "displayName": "Turn off notification area cleanup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noautotraynotify_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noautotraynotify_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noballoontip", + "displayName": "Remove Balloon Tips on Start Menu items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noballoontip_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noballoontip_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nochangestartmenu", + "displayName": "Prevent users from customizing their Start Screen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nochangestartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nochangestartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noclose", + "displayName": "Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noclose_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noclose_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nocommongroups", + "displayName": "Remove common program groups from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nocommongroups_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nocommongroups_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nofavoritesmenu", + "displayName": "Remove Favorites menu from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nofavoritesmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nofavoritesmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nofind", + "displayName": "Remove Search link from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nofind_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nofind_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nogamesfolderonstartmenu", + "displayName": "Remove Games link from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nogamesfolderonstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nogamesfolderonstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nohelp", + "displayName": "Remove Help menu from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nohelp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nohelp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noinstrumentation", + "displayName": "Turn off user tracking (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noinstrumentation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noinstrumentation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist", + "displayName": "Remove All Programs list from the Start menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown", + "displayName": "Choose one of the following actions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown_0", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown_3", + "displayName": "Collapse", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown_2", + "displayName": "Collapse and disable setting", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nomoreprogramslist_nomoreprogramslistdropdown_1", + "displayName": "Remove and disable setting", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nonetanddialupconnect", + "displayName": "Remove Network Connections from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nonetanddialupconnect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nonetanddialupconnect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nopinnedprograms", + "displayName": "Remove pinned programs list from the Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nopinnedprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nopinnedprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_norecentdocsmenu", + "displayName": "Remove Recent Items menu from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_norecentdocsmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_norecentdocsmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noresolvesearch", + "displayName": "Do not use the search-based method when resolving shell shortcuts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noresolvesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noresolvesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noresolvetrack", + "displayName": "Do not use the tracking-based method when resolving shell shortcuts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noresolvetrack_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_noresolvetrack_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_norun", + "displayName": "Remove Run menu from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_norun_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_norun_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchcomminstartmenu", + "displayName": "Do not search communications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchcomminstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchcomminstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchcomputerlinkinstartmenu", + "displayName": "Remove Search Computer link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchcomputerlinkinstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchcomputerlinkinstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearcheverywherelinkinstartmenu", + "displayName": "Remove See More Results / Search Everywhere link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearcheverywherelinkinstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearcheverywherelinkinstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchfilesinstartmenu", + "displayName": "Do not search for files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchfilesinstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchfilesinstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchinternetinstartmenu", + "displayName": "Do not search Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchinternetinstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchinternetinstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchprogramsinstartmenu", + "displayName": "Do not search programs and Control Panel items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchprogramsinstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosearchprogramsinstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosetfolders", + "displayName": "Remove programs on Settings menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosetfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosetfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosettaskbar", + "displayName": "Prevent changes to Taskbar and Start Menu Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosettaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosettaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmconfigureprograms", + "displayName": "Remove Default Programs link from the Start menu. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmconfigureprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmconfigureprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmydocuments", + "displayName": "Remove Documents icon from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmydocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmydocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmymusic", + "displayName": "Remove Music icon from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmymusic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmymusic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmynetworkplaces", + "displayName": "Remove Network icon from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmynetworkplaces_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmynetworkplaces_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmypictures", + "displayName": "Remove Pictures icon from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmypictures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nosmmypictures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenudownload", + "displayName": "Remove Downloads link from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenudownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenudownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenuhomegroup", + "displayName": "Remove Homegroup link from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenuhomegroup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenuhomegroup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenurecordedtv", + "displayName": "Remove Recorded TV link from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenurecordedtv_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenurecordedtv_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenusubfolders", + "displayName": "Remove user's folders from the Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenusubfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenusubfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenuvideos", + "displayName": "Remove Videos link from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenuvideos_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartmenuvideos_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartpage", + "displayName": "Force classic Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nostartpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notaskbarclock", + "displayName": "Remove Clock from the system notification area (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notaskbarclock_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notaskbarclock_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notaskgrouping", + "displayName": "Prevent grouping of taskbar items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notaskgrouping_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notaskgrouping_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notoolbarsontaskbar", + "displayName": "Do not display any custom toolbars in the taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notoolbarsontaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notoolbarsontaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notraycontextmenu", + "displayName": "Remove access to the context menus for the taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notraycontextmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notraycontextmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notrayitemsdisplay", + "displayName": "Hide the notification area (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notrayitemsdisplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_notrayitemsdisplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nouninstallfromstart", + "displayName": "Prevent users from uninstalling applications from Start (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nouninstallfromstart_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nouninstallfromstart_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nouserfolderonstartmenu", + "displayName": "Remove user folder link from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nouserfolderonstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nouserfolderonstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nousernameonstartmenu", + "displayName": "Remove user name from Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nousernameonstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nousernameonstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nowindowsupdate", + "displayName": "Remove links and access to Windows Update (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nowindowsupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_nowindowsupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction", + "displayName": "Change Start Menu power button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_powerbuttonactiondropdown", + "displayName": "Choose one of the following actions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_powerbuttonactiondropdown_2", + "displayName": "Shut Down", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_powerbuttonactiondropdown_16", + "displayName": "Sleep", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_powerbuttonactiondropdown_1", + "displayName": "Log off", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_powerbuttonactiondropdown_512", + "displayName": "Lock", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_powerbuttonactiondropdown_4", + "displayName": "Restart", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_powerbuttonactiondropdown_256", + "displayName": "Switch User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_powerbuttonaction_powerbuttonactiondropdown_64", + "displayName": "Hibernate", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_quicklaunchenabled", + "displayName": "Show QuickLaunch on Taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_quicklaunchenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_quicklaunchenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_removeundockpcbutton", + "displayName": "Remove the \"Undock PC\" button from the Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_removeundockpcbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_removeundockpcbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showappsviewonstart", + "displayName": "Show the Apps view automatically when the user goes to Start (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showappsviewonstart_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showappsviewonstart_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showrunasdifferentuserinstart", + "displayName": "Show \"Run as different user\" command on Start (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showrunasdifferentuserinstart_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showrunasdifferentuserinstart_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showruninstartmenu", + "displayName": "Add the Run command to the Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showruninstartmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showruninstartmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showstartondisplaywithforegroundonwinkey", + "displayName": "Show Start on the display the user is using when they press the Windows logo key (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showstartondisplaywithforegroundonwinkey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_showstartondisplaywithforegroundonwinkey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_startmenulogoff", + "displayName": "Remove Logoff on the Start Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_startmenulogoff_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_startmenulogoff_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_startpinappswheninstalled", + "displayName": "Pin Apps to Start when installed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_startmenu_startpinappswheninstalled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_startpinappswheninstalled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_startmenu_startpinappswheninstalled_startpinappswheninstalled_name", + "displayName": "Add AppIDs to the list: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_autocomplete_1", + "displayName": "Turn off AutoComplete integration with Input Panel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_autocomplete_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_autocomplete_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_edgetarget_1", + "displayName": "Prevent Input Panel tab from appearing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_edgetarget_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_edgetarget_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptarget_1", + "displayName": "For tablet pen input, don’t show the Input Panel icon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptarget_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptarget_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptouchtarget_1", + "displayName": "For touch input, don’t show the Input Panel icon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptouchtarget_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_iptiptouchtarget_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1", + "displayName": "Turn off password security in Input Panel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1_passwordsecurity", + "displayName": "Turn off password security in Input Panel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1_passwordsecurity_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1_passwordsecurity_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1_passwordsecurity_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1_passwordsecurity_4", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_passwordsecurity_1_passwordsecurity_5", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_prediction_1", + "displayName": "Disable text prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_prediction_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_prediction_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_rarechar_1", + "displayName": "Include rarely used Chinese, Kanji, or Hanja characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_rarechar_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_rarechar_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_1", + "displayName": "Turn off tolerant and Z-shaped scratch-out gestures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_1_scratchout", + "displayName": "Turn off tolerant and Z-shaped scratch-out gestures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_1_scratchout_1", + "displayName": "All", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_1_scratchout_2", + "displayName": "Tolerant", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletpcinputpanel_scratchout_1_scratchout_3", + "displayName": "None", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disableinkball_1", + "displayName": "Do not allow Inkball to run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disableinkball_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disableinkball_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablejournal_1", + "displayName": "Do not allow Windows Journal to be run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablejournal_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablejournal_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablenotewriterprinting_1", + "displayName": "Do not allow printing to Journal Note Writer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablenotewriterprinting_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablenotewriterprinting_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablesnippingtool_1", + "displayName": "Do not allow Snipping Tool to run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablesnippingtool_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_disablesnippingtool_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventbackescmapping_1", + "displayName": "Prevent Back-ESC mapping (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventbackescmapping_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventbackescmapping_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventflicks_1", + "displayName": "Prevent flicks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventflicks_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventflicks_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventflickslearningmode_1", + "displayName": "Prevent Flicks Learning Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventflickslearningmode_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventflickslearningmode_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventlaunchapp_1", + "displayName": "Prevent launch an application (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventlaunchapp_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventlaunchapp_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventpressandhold_1", + "displayName": "Prevent press and hold (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventpressandhold_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_preventpressandhold_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_turnoffbuttons_1", + "displayName": "Turn off hardware buttons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_turnoffbuttons_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_turnoffbuttons_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_turnofffeedback_1", + "displayName": "Turn off pen feedback (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_turnofffeedback_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_tabletshell_turnofffeedback_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_disablenotificationcenter", + "displayName": "Remove Notifications and Action Center (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_disablenotificationcenter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_disablenotificationcenter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_enablelegacyballoonnotifications", + "displayName": "Disable showing balloon notifications as toasts. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_enablelegacyballoonnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_enablelegacyballoonnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescahealth", + "displayName": "Remove the Security and Maintenance icon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescahealth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescahealth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescanetwork", + "displayName": "Remove the networking icon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescanetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescanetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescapower", + "displayName": "Remove the battery meter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescapower_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescapower_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescavolume", + "displayName": "Remove the volume control icon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescavolume_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_hidescavolume_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_noballoonfeatureadvertisements", + "displayName": "Turn off feature advertisement balloon notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_noballoonfeatureadvertisements_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_noballoonfeatureadvertisements_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningstoretotaskbar", + "displayName": "Do not allow pinning Store app to the Taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningstoretotaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningstoretotaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningtodestinations", + "displayName": "Do not allow pinning items in Jump Lists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningtodestinations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningtodestinations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningtotaskbar", + "displayName": "Do not allow pinning programs to the Taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningtotaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nopinningtotaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_noremotedestinations", + "displayName": "Do not display or track items in Jump Lists from remote locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_noremotedestinations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_noremotedestinations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nosystraysystempromotion", + "displayName": "Turn off automatic promotion of notification icons to the taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nosystraysystempromotion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_nosystraysystempromotion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_showwindowsstoreappsontaskbar", + "displayName": "Show Windows Store apps on the taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_showwindowsstoreappsontaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_showwindowsstoreappsontaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarlockall", + "displayName": "Lock all taskbar settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarlockall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarlockall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoaddremovetoolbar", + "displayName": "Prevent users from adding or removing toolbars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoaddremovetoolbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoaddremovetoolbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnodragtoolbar", + "displayName": "Prevent users from rearranging toolbars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnodragtoolbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnodragtoolbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnomultimon", + "displayName": "Do not allow taskbars on more than one display (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnomultimon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnomultimon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnonotification", + "displayName": "Turn off all balloon notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnonotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnonotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnopinnedlist", + "displayName": "Remove pinned programs from the Taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnopinnedlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnopinnedlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoredock", + "displayName": "Prevent users from moving taskbar to another screen dock location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoredock_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoredock_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoresize", + "displayName": "Prevent users from resizing the taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoresize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnoresize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnothumbnail", + "displayName": "Turn off taskbar thumbnails (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnothumbnail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_taskbar_taskbarnothumbnail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_signed_files_1", + "displayName": "Allow .rdp files from valid publishers and user's default .rdp settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_signed_files_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_signed_files_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_unsigned_files_1", + "displayName": "Allow .rdp files from unknown publishers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_unsigned_files_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_allow_unsigned_files_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_disable_password_saving_1", + "displayName": "Do not allow passwords to be saved (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_disable_password_saving_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_disable_password_saving_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_trusted_certificate_thumbprints_2", + "displayName": "Specify SHA1 thumbprints of certificates representing trusted .rdp publishers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_trusted_certificate_thumbprints_2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_trusted_certificate_thumbprints_2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_client_trusted_certificate_thumbprints_2_trusted_certificate_thumbprints", + "displayName": "Comma-separated list of SHA1 trusted certificate thumbprints: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_easy_print_user", + "displayName": "Use Remote Desktop Easy Print printer driver first (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_easy_print_user_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_easy_print_user_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method", + "displayName": "Set RD Gateway authentication method (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_auth_mode", + "displayName": "Set RD Gateway authentication method (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_auth_mode_5", + "displayName": "Ask for credentials, use Negotiate protocol", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_auth_mode_2", + "displayName": "Ask for credentials, use NTLM protocol", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_auth_mode_1", + "displayName": "Ask for credentials, use Basic protocol", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_auth_mode_4", + "displayName": "Use locally logged-on credentials", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_auth_mode_3", + "displayName": "Use smart-card", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_override", + "displayName": "Allow users to change this setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_override_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_auth_method_ts_gateway_override_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_enable", + "displayName": "Enable connection through RD Gateway (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_enable_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_enable_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_enable_ts_gateway_override", + "displayName": "Allow users to change this setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_enable_ts_gateway_override_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_enable_ts_gateway_override_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_server", + "displayName": "Set RD Gateway server address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_server_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_server_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_server_ts_gateway_override", + "displayName": "Allow users to change this setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_server_ts_gateway_override_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_server_ts_gateway_override_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_gateway_policy_server_ts_gateway_server", + "displayName": "Set RD Gateway server address (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_radc_defaultconnection", + "displayName": "Specify default connection URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_radc_defaultconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_radc_defaultconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_radc_defaultconnection_ts_radc_defaultconnectionurl", + "displayName": "Default connection URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1", + "displayName": "Set rules for remote control of Remote Desktop Services user sessions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1_ts_remotecontrol_levels", + "displayName": "Options: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1_ts_remotecontrol_levels_0", + "displayName": "No remote control allowed", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1_ts_remotecontrol_levels_1", + "displayName": "Full Control with user's permission", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1_ts_remotecontrol_levels_2", + "displayName": "Full Control without user's permission", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1_ts_remotecontrol_levels_3", + "displayName": "View Session with user's permission", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_remotecontrol_1_ts_remotecontrol_levels_4", + "displayName": "View Session without user's permission", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_session_end_on_limit_1", + "displayName": "End session when time limits are reached (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_session_end_on_limit_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_session_end_on_limit_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1", + "displayName": "Set time limit for disconnected sessions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected", + "displayName": "End a disconnected session (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_0", + "displayName": "Never", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_60000", + "displayName": "1 minute", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_300000", + "displayName": "5 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_600000", + "displayName": "10 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_900000", + "displayName": "15 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_1800000", + "displayName": "30 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_3600000", + "displayName": "1 hour", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_7200000", + "displayName": "2 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_10800000", + "displayName": "3 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_21600000", + "displayName": "6 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_28800000", + "displayName": "8 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_43200000", + "displayName": "12 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_57600000", + "displayName": "16 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_64800000", + "displayName": "18 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_86400000", + "displayName": "1 day", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_172800000", + "displayName": "2 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_259200000", + "displayName": "3 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_345600000", + "displayName": "4 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_disconnected_timeout_1_ts_sessions_enddisconnected_432000000", + "displayName": "5 days", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1", + "displayName": "Set time limit for active but idle Remote Desktop Services sessions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext", + "displayName": "Idle session limit: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_0", + "displayName": "Never", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_60000", + "displayName": "1 minute", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_300000", + "displayName": "5 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_600000", + "displayName": "10 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_900000", + "displayName": "15 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_1800000", + "displayName": "30 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_3600000", + "displayName": "1 hour", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_7200000", + "displayName": "2 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_10800000", + "displayName": "3 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_21600000", + "displayName": "6 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_28800000", + "displayName": "8 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_43200000", + "displayName": "12 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_57600000", + "displayName": "16 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_64800000", + "displayName": "18 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_86400000", + "displayName": "1 day", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_172800000", + "displayName": "2 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_259200000", + "displayName": "3 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_345600000", + "displayName": "4 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_idle_limit_1_ts_sessions_idlelimittext_432000000", + "displayName": "5 days", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1", + "displayName": "Set time limit for active Remote Desktop Services sessions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit", + "displayName": "Active session limit : (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_0", + "displayName": "Never", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_60000", + "displayName": "1 minute", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_300000", + "displayName": "5 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_600000", + "displayName": "10 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_900000", + "displayName": "15 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_1800000", + "displayName": "30 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_3600000", + "displayName": "1 hour", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_7200000", + "displayName": "2 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_10800000", + "displayName": "3 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_21600000", + "displayName": "6 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_28800000", + "displayName": "8 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_43200000", + "displayName": "12 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_57600000", + "displayName": "16 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_64800000", + "displayName": "18 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_86400000", + "displayName": "1 day", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_172800000", + "displayName": "2 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_259200000", + "displayName": "3 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_345600000", + "displayName": "4 days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_sessions_limits_1_ts_sessions_activelimit_432000000", + "displayName": "5 days", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_start_program_1", + "displayName": "Start a program on connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_start_program_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_start_program_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_start_program_1_ts_program_name", + "displayName": "Program path and file name (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_terminalserver_ts_start_program_1_ts_workdir", + "displayName": "Working Directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbnails", + "displayName": "Turn off the display of thumbnails and only display icons. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbnails_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbnails_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbnailsonnetworkfolders", + "displayName": "Turn off the display of thumbnails and only display icons on network folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbnailsonnetworkfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbnailsonnetworkfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbsdbonnetworkfolders", + "displayName": "Turn off the caching of thumbnails in hidden thumbs.db files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbsdbonnetworkfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_thumbnails_disablethumbsdbonnetworkfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_touchinput_panningeverywhereoff_1", + "displayName": "Turn off Touch Panning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_touchinput_panningeverywhereoff_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_touchinput_panningeverywhereoff_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_touchinput_touchinputoff_1", + "displayName": "Turn off Tablet PC touch input (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_touchinput_touchinputoff_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_touchinput_touchinputoff_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_calculator", + "displayName": "Calculator (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_calculator_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_calculator_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod", + "displayName": "Configure Sync Method (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_settingsimportnotification_delay", + "displayName": "Notification delay (in seconds): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_settingsimportnotification_enable", + "displayName": "Enable notification (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_settingsimportnotification_enable_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_settingsimportnotification_enable_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_syncmethodconfiguration_list", + "displayName": "Sync Method: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_syncmethodconfiguration_list_syncprovider", + "displayName": "SyncProvider", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_syncmethodconfiguration_list_none", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configuresyncmethod_syncmethodconfiguration_list_external", + "displayName": "External", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configurevdi", + "displayName": "VDI Configuration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configurevdi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configurevdi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_configurevdi_vdicollectionname", + "displayName": "VDI Collection Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewin8sync", + "displayName": "Do not synchronize Windows Apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewin8sync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewin8sync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings", + "displayName": "Synchronize Windows settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_desktopsettings", + "displayName": "Desktop settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_desktopsettings_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_desktopsettings_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_easeofaccesssettings", + "displayName": "Ease of access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_easeofaccesssettings_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_easeofaccesssettings_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_networkprinters", + "displayName": "Network Printers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_networkprinters_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_networkprinters_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_roamingcredentialsettings", + "displayName": "Roaming Credentials (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_roamingcredentialsettings_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_roamingcredentialsettings_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_themesettings", + "displayName": "Themes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_themesettings_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_disablewindowsossettings_themesettings_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_finance", + "displayName": "Finance (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_finance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_finance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_games", + "displayName": "Games (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_games_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_games_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer10", + "displayName": "Internet Explorer 10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer11", + "displayName": "Internet Explorer 11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer8", + "displayName": "Internet Explorer 8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer8_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer8_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer9", + "displayName": "Internet Explorer 9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer9_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorer9_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorercommon", + "displayName": "Internet Explorer Common Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorercommon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_internetexplorercommon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_maps", + "displayName": "Maps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_maps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_maps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_maxpackagesizeinbytes", + "displayName": "Settings package size warning threshold (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_maxpackagesizeinbytes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_maxpackagesizeinbytes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_maxpackagesizeinbytes_maxpackagesizeinbytes", + "displayName": "Package size threshold (in bytes): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010access", + "displayName": "Microsoft Access 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010access_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010access_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010common", + "displayName": "Microsoft Office 2010 Common Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010common_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010common_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010excel", + "displayName": "Microsoft Excel 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010excel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010excel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010infopath", + "displayName": "Microsoft InfoPath 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010infopath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010infopath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010lync", + "displayName": "Microsoft Lync 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010lync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010lync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010onenote", + "displayName": "Microsoft OneNote 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010onenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010onenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010outlook", + "displayName": "Microsoft Outlook 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010outlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010outlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010powerpoint", + "displayName": "Microsoft PowerPoint 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010powerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010powerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010project", + "displayName": "Microsoft Project 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010project_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010project_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010publisher", + "displayName": "Microsoft Publisher 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010publisher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010publisher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointdesigner", + "displayName": "Microsoft SharePoint Designer 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointdesigner_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointdesigner_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointworkspace", + "displayName": "Microsoft SharePoint Workspace 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointworkspace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010sharepointworkspace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010visio", + "displayName": "Microsoft Visio 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010visio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010visio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010word", + "displayName": "Microsoft Word 2010 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010word_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2010word_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013access", + "displayName": "Microsoft Access 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013access_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013access_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013accessbackup", + "displayName": "Access 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013accessbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013accessbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013common", + "displayName": "Microsoft Office 2013 Common Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013common_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013common_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013commonbackup", + "displayName": "Common 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013commonbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013commonbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excel", + "displayName": "Microsoft Excel 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excelbackup", + "displayName": "Excel 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excelbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013excelbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopath", + "displayName": "Microsoft InfoPath 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopathbackup", + "displayName": "InfoPath 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopathbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013infopathbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lync", + "displayName": "Microsoft Lync 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lyncbackup", + "displayName": "Lync 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lyncbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013lyncbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onedriveforbusiness", + "displayName": "Microsoft OneDrive for Business 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onedriveforbusiness_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onedriveforbusiness_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenote", + "displayName": "Microsoft OneNote 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenotebackup", + "displayName": "OneNote 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenotebackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013onenotebackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlook", + "displayName": "Microsoft Outlook 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlookbackup", + "displayName": "Outlook 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlookbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013outlookbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpoint", + "displayName": "Microsoft PowerPoint 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpointbackup", + "displayName": "PowerPoint 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpointbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013powerpointbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013project", + "displayName": "Microsoft Project 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013project_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013project_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013projectbackup", + "displayName": "Project 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013projectbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013projectbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisher", + "displayName": "Microsoft Publisher 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisherbackup", + "displayName": "Publisher 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisherbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013publisherbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesigner", + "displayName": "Microsoft SharePoint Designer 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesigner_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesigner_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesignerbackup", + "displayName": "SharePoint Designer 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesignerbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013sharepointdesignerbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013uploadcenter", + "displayName": "Microsoft Office 2013 Upload Center (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013uploadcenter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013uploadcenter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visio", + "displayName": "Microsoft Visio 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visiobackup", + "displayName": "Visio 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visiobackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013visiobackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013word", + "displayName": "Microsoft Word 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013word_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013word_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013wordbackup", + "displayName": "Word 2013 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013wordbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2013wordbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016access", + "displayName": "Microsoft Access 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016access_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016access_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016accessbackup", + "displayName": "Access 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016accessbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016accessbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016common", + "displayName": "Microsoft Office 2016 Common Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016common_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016common_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016commonbackup", + "displayName": "Common 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016commonbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016commonbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excel", + "displayName": "Microsoft Excel 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excelbackup", + "displayName": "Excel 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excelbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016excelbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lync", + "displayName": "Microsoft Lync 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lyncbackup", + "displayName": "Lync 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lyncbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016lyncbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onedriveforbusiness", + "displayName": "Microsoft OneDrive for Business 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onedriveforbusiness_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onedriveforbusiness_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenote", + "displayName": "Microsoft OneNote 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenotebackup", + "displayName": "OneNote 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenotebackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016onenotebackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlook", + "displayName": "Microsoft Outlook 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlookbackup", + "displayName": "Outlook 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlookbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016outlookbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpoint", + "displayName": "Microsoft PowerPoint 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpointbackup", + "displayName": "PowerPoint 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpointbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016powerpointbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016project", + "displayName": "Microsoft Project 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016project_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016project_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016projectbackup", + "displayName": "Project 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016projectbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016projectbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisher", + "displayName": "Microsoft Publisher 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisherbackup", + "displayName": "Publisher 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisherbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016publisherbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016uploadcenter", + "displayName": "Microsoft Office 2016 Upload Center (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016uploadcenter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016uploadcenter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visio", + "displayName": "Microsoft Visio 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visiobackup", + "displayName": "Visio 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visiobackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016visiobackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016word", + "displayName": "Microsoft Word 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016word_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016word_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016wordbackup", + "displayName": "Word 2016 backup only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016wordbackup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice2016wordbackup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2013", + "displayName": "Microsoft Office 365 Access 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2016", + "displayName": "Microsoft Office 365 Access 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365access2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2013", + "displayName": "Microsoft Office 365 Common 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2016", + "displayName": "Microsoft Office 365 Common 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365common2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2013", + "displayName": "Microsoft Office 365 Excel 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2016", + "displayName": "Microsoft Office 365 Excel 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365excel2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365infopath2013", + "displayName": "Microsoft Office 365 InfoPath 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365infopath2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365infopath2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2013", + "displayName": "Microsoft Office 365 Lync 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2016", + "displayName": "Microsoft Office 365 Lync 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365lync2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2013", + "displayName": "Microsoft Office 365 OneNote 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2016", + "displayName": "Microsoft Office 365 OneNote 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365onenote2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2013", + "displayName": "Microsoft Office 365 Outlook 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2016", + "displayName": "Microsoft Office 365 Outlook 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365outlook2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2013", + "displayName": "Microsoft Office 365 PowerPoint 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2016", + "displayName": "Microsoft Office 365 PowerPoint 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365powerpoint2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2013", + "displayName": "Microsoft Office 365 Project 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2016", + "displayName": "Microsoft Office 365 Project 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365project2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2013", + "displayName": "Microsoft Office 365 Publisher 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2016", + "displayName": "Microsoft Office 365 Publisher 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365publisher2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365sharepointdesigner2013", + "displayName": "Microsoft Office 365 SharePoint Designer 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365sharepointdesigner2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365sharepointdesigner2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2013", + "displayName": "Microsoft Office 365 Visio 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2016", + "displayName": "Microsoft Office 365 Visio 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365visio2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2013", + "displayName": "Microsoft Office 365 Word 2013 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2013_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2013_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2016", + "displayName": "Microsoft Office 365 Word 2016 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2016_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_microsoftoffice365word2016_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_music", + "displayName": "Music (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_music_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_music_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_news", + "displayName": "News (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_news_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_news_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_notepad", + "displayName": "Notepad (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_notepad_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_notepad_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_reader", + "displayName": "Reader (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_reader_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_reader_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_repositorytimeout", + "displayName": "Synchronization timeout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_repositorytimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_repositorytimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_repositorytimeout_repositorytimeout", + "displayName": "Synchronization timeout (in milliseconds): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_settingsstoragepath", + "displayName": "Settings storage path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_settingsstoragepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_settingsstoragepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_settingsstoragepath_settingsstoragepath", + "displayName": "Settings storage path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_sports", + "displayName": "Sports (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_sports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_sports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncenabled", + "displayName": "Use User Experience Virtualization (UE-V) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetwork", + "displayName": "Sync settings over metered connections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetworkwhenroaming", + "displayName": "Sync settings over metered connections even when roaming (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetworkwhenroaming_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncovermeterednetworkwhenroaming_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncproviderpingenabled", + "displayName": "Ping the settings storage location before sync (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncproviderpingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_syncproviderpingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_travel", + "displayName": "Travel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_travel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_travel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_video", + "displayName": "Video (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_video_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_video_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_weather", + "displayName": "Weather (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_weather_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_weather_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_wordpad", + "displayName": "WordPad (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_wordpad_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userexperiencevirtualization_wordpad_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize", + "displayName": "Limit profile size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_includereginproquota", + "displayName": "Show registry files in the file list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_includereginproquota_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_includereginproquota_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_profilesize", + "displayName": "Max Profile size (KB) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_sizemessage", + "displayName": "Custom Message (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_warnuser", + "displayName": "Notify user when profile storage space is exceeded. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_warnuser_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_warnuser_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_userprofiles_limitsize_warnusertimeout", + "displayName": "Remind user every X minutes: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wincal_turnoffwincal_1", + "displayName": "Turn off Windows Calendar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_wincal_turnoffwincal_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wincal_turnoffwincal_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowscolorsystem_prohibitchanginginstalledprofilelist_1", + "displayName": "Prohibit installing or uninstalling color profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowscolorsystem_prohibitchanginginstalledprofilelist_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowscolorsystem_prohibitchanginginstalledprofilelist_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsconnectnow_wcn_disablewcnui_1", + "displayName": "Prohibit access of the Windows Connect Now wizards (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsconnectnow_wcn_disablewcnui_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsconnectnow_wcn_disablewcnui_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_classicshell", + "displayName": "Turn on Classic Shell (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_classicshell_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_classicshell_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_confirmfiledelete", + "displayName": "Display confirmation dialog when deleting files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_confirmfiledelete_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_confirmfiledelete_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_defaultlibrarieslocation", + "displayName": "Location where all default Library definition files for users/machines reside. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_defaultlibrarieslocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_defaultlibrarieslocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_defaultlibrarieslocation_defaultlibrarieslocation", + "displayName": "Default Libraries definition location (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disablebinddirectlytopropertysetstorage", + "displayName": "Disable binding directly to IPropertySetStorage without intermediate layers. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disablebinddirectlytopropertysetstorage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disablebinddirectlytopropertysetstorage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disableindexedlibraryexperience", + "displayName": "Turn off Windows Libraries features that rely on indexed file data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disableindexedlibraryexperience_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disableindexedlibraryexperience_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disableknownfolders", + "displayName": "Disable Known Folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disableknownfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disableknownfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disableknownfolders_disableknownfolders_prompt", + "displayName": "Disable these Known Folders. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disablesearchboxsuggestions", + "displayName": "Turn off display of recent search entries in the File Explorer search box (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disablesearchboxsuggestions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_disablesearchboxsuggestions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_enforceshellextensionsecurity", + "displayName": "Allow only per user or approved shell extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_enforceshellextensionsecurity_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_enforceshellextensionsecurity_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized", + "displayName": "Start File Explorer with ribbon minimized (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown", + "displayName": "Pick one of the following settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown_1", + "displayName": "Always open new File Explorer windows with the ribbon minimized.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown_2", + "displayName": "Never open new File Explorer windows with the ribbon minimized.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown_3", + "displayName": "Minimize the ribbon when File Explorer is opened the first time.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_explorerribbonstartsminimized_explorerribbonstartsminimizeddropdown_4", + "displayName": "Display the full ribbon when File Explorer is opened the first time.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_hidecontentviewmodesnippets", + "displayName": "Turn off the display of snippets in Content view mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_hidecontentviewmodesnippets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_hidecontentviewmodesnippets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internet", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internetlockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internetlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_internetlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranet", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranetlockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranetlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_intranetlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachine", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachinelockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachinelockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_localmachinelockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restricted", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restricted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restricted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restrictedlockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restrictedlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_restrictedlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trusted", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trusted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trusted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trustedlockdown", + "displayName": "Allow previewing and custom thumbnails of OpenSearch query results in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trustedlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchpreview_trustedlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internet", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internetlockdown", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internetlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_internetlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranet", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranetlockdown", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranetlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_intranetlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachine", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachinelockdown", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachinelockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_localmachinelockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restricted", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restricted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restricted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restrictedlockdown", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restrictedlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_restrictedlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trusted", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trusted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trusted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trustedlockdown", + "displayName": "Allow OpenSearch queries in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trustedlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_iz_policy_opensearchquery_trustedlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_linkresolveignorelinkinfo", + "displayName": "Do not track Shell shortcuts during roaming (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_linkresolveignorelinkinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_linkresolveignorelinkinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_maxrecentdocs", + "displayName": "Maximum number of recent documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_maxrecentdocs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_maxrecentdocs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_maxrecentdocs_maxrecentdocs", + "displayName": "Maximum number of recent documents (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nobackbutton", + "displayName": "Hide the common dialog back button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nobackbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nobackbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nocachethumbnailpictures", + "displayName": "Turn off caching of thumbnail pictures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nocachethumbnailpictures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nocachethumbnailpictures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nocdburning", + "displayName": "Remove CD Burning features (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nocdburning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nocdburning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nochangeanimation", + "displayName": "Remove UI to change menu animation setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nochangeanimation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nochangeanimation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nochangekeyboardnavigationindicators", + "displayName": "Remove UI to change keyboard navigation indicator setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nochangekeyboardnavigationindicators_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nochangekeyboardnavigationindicators_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodfstab", + "displayName": "Remove DFS tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodfstab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodfstab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives", + "displayName": "Hide these specified drives in My Computer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_nodrivesdropdown", + "displayName": "Pick one of the following combinations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_nodrivesdropdown_3", + "displayName": "Restrict A and B drives only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_nodrivesdropdown_4", + "displayName": "Restrict C drive only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_nodrivesdropdown_8", + "displayName": "Restrict D drive only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_nodrivesdropdown_7", + "displayName": "Restrict A, B and C drives only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_nodrivesdropdown_15", + "displayName": "Restrict A, B, C and D drives only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_nodrivesdropdown_67108863", + "displayName": "Restrict all drives", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nodrives_nodrivesdropdown_0", + "displayName": "Do not restrict drives", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noentirenetwork", + "displayName": "No Entire Network in Network Locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noentirenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noentirenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofilemenu", + "displayName": "Remove File menu from File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofilemenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofilemenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofilemru", + "displayName": "Hide the dropdown list of recent files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofilemru_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofilemru_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofolderoptions", + "displayName": "Do not allow Folder Options to be opened from the Options button on the View tab of the ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofolderoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nofolderoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nohardwaretab", + "displayName": "Remove Hardware tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nohardwaretab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nohardwaretab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nomanagemycomputerverb", + "displayName": "Hides the Manage item on the File Explorer context menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nomanagemycomputerverb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nomanagemycomputerverb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nomycomputershareddocuments", + "displayName": "Remove Shared Documents from My Computer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nomycomputershareddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nomycomputershareddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nonetconnectdisconnect", + "displayName": "Remove \"Map Network Drive\" and \"Disconnect Network Drive\" (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nonetconnectdisconnect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nonetconnectdisconnect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noplacesbar", + "displayName": "Hide the common dialog places bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noplacesbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noplacesbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_norecyclefiles", + "displayName": "Do not move deleted files to the Recycle Bin (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_norecyclefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_norecyclefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_norunasinstallprompt", + "displayName": "Do not request alternate credentials (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_norunasinstallprompt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_norunasinstallprompt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nosearchinternettryharderbutton", + "displayName": "Remove the Search the Internet \"Search again\" link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nosearchinternettryharderbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nosearchinternettryharderbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nosecuritytab", + "displayName": "Remove Security tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nosecuritytab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nosecuritytab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noshellsearchbutton", + "displayName": "Remove Search button from File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noshellsearchbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noshellsearchbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nostrcmplogical", + "displayName": "Turn off numerical sorting in File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nostrcmplogical_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nostrcmplogical_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewcontextmenu", + "displayName": "Remove File Explorer's default context menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewcontextmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewcontextmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive", + "displayName": "Prevent access to drives from My Computer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_nodrivesdropdown", + "displayName": "Pick one of the following combinations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_nodrivesdropdown_3", + "displayName": "Restrict A and B drives only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_nodrivesdropdown_4", + "displayName": "Restrict C drive only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_nodrivesdropdown_8", + "displayName": "Restrict D drive only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_nodrivesdropdown_7", + "displayName": "Restrict A, B and C drives only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_nodrivesdropdown_15", + "displayName": "Restrict A, B, C and D drives only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_nodrivesdropdown_67108863", + "displayName": "Restrict all drives", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noviewondrive_nodrivesdropdown_0", + "displayName": "Do not restrict drives", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nowindowshotkeys", + "displayName": "Turn off Windows Key hotkeys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nowindowshotkeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_nowindowshotkeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noworkgroupcontents", + "displayName": "No Computers Near Me in Network Locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noworkgroupcontents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_noworkgroupcontents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_placesbar", + "displayName": "Items displayed in Places Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_placesbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_placesbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_placesbar_places0", + "displayName": "Item 1 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_placesbar_places1", + "displayName": "Item 2 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_placesbar_places2", + "displayName": "Item 3 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_placesbar_places3", + "displayName": "Item 4 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_placesbar_places4", + "displayName": "Item 5 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_promptrunasinstallnetpath", + "displayName": "Request credentials for network installations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_promptrunasinstallnetpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_promptrunasinstallnetpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_recyclebinsize", + "displayName": "Maximum allowed Recycle Bin size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_recyclebinsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_recyclebinsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_recyclebinsize_recyclebinsizespin", + "displayName": "Maximum Recycle Bin size: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_shellprotocolprotectedmodetitle_1", + "displayName": "Turn off shell protocol protected mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_shellprotocolprotectedmodetitle_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_shellprotocolprotectedmodetitle_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedlibrary", + "displayName": "Pin Libraries or Search Connectors to the \"Search again\" links and the Start menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedlibrary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedlibrary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedlibrary_library0", + "displayName": "Location 1 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedlibrary_library1", + "displayName": "Location 2 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedlibrary_library2", + "displayName": "Location 3 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedlibrary_library3", + "displayName": "Location 4 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedlibrary_library4", + "displayName": "Location 5 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch", + "displayName": "Pin Internet search sites to the \"Search again\" links and the Start menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearch0", + "displayName": "Site URL 1 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearch1", + "displayName": "Site URL 2 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearch2", + "displayName": "Site URL 3 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearch3", + "displayName": "Site URL 4 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearch4", + "displayName": "Site URL 5 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearchlabel0", + "displayName": "Site Name 1 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearchlabel1", + "displayName": "Site Name 2 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearchlabel2", + "displayName": "Site Name 3 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearchlabel3", + "displayName": "Site Name 4 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsexplorer_tryharderpinnedopensearch_opensearchlabel4", + "displayName": "Site Name 5 (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings", + "displayName": "Configure HTTP Proxy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_bypassproxylocal", + "displayName": "Bypass proxy for local addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_bypassproxylocal_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_bypassproxylocal_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_donotuseproxylocal", + "displayName": "Do not use proxy server for addresses beginning with (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_proxyaddress", + "displayName": "Proxy address (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_proxyport", + "displayName": "Proxy port (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_proxytype", + "displayName": "Proxy type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_proxytype_3", + "displayName": "Autodetect", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_proxytype_2", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurehttpproxysettings_proxytype_1", + "displayName": "Use browser proxy settings", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings", + "displayName": "Configure MMS Proxy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_bypassproxylocal", + "displayName": "Bypass proxy for local addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_bypassproxylocal_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_bypassproxylocal_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_donotuseproxylocal", + "displayName": "Do not use proxy server for addresses beginning with (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_proxyaddress", + "displayName": "Proxy address (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_proxyport", + "displayName": "Proxy port (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_proxytype", + "displayName": "Proxy type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_proxytype_3", + "displayName": "Autodetect", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configuremmsproxysettings_proxytype_2", + "displayName": "Custom", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings", + "displayName": "Configure RTSP Proxy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_bypassproxylocal", + "displayName": "Bypass proxy for local addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_bypassproxylocal_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_bypassproxylocal_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_donotuseproxylocal", + "displayName": "Do not use proxy server for addresses beginning with (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_proxyaddress", + "displayName": "Proxy address (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_proxyport", + "displayName": "Proxy port (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_proxytype", + "displayName": "Proxy type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_proxytype_3", + "displayName": "Autodetect", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_configurertspproxysettings_proxytype_2", + "displayName": "Custom", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_disablenetworksettings", + "displayName": "Hide Network Tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_disablenetworksettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_disablenetworksettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_donotshowanchor", + "displayName": "Do Not Show Anchor (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_donotshowanchor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_donotshowanchor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_enablescreensaver", + "displayName": "Allow Screen Saver (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_enablescreensaver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_enablescreensaver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_hideprivacytab", + "displayName": "Hide Privacy Tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_hideprivacytab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_hideprivacytab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_hidesecuritytab", + "displayName": "Hide Security Tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_hidesecuritytab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_hidesecuritytab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_networkbuffering", + "displayName": "Configure Network Buffering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_networkbuffering_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_networkbuffering_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_networkbuffering_bufferingtime", + "displayName": "Buffering Time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_networkbuffering_bufferingtime_1", + "displayName": "Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_networkbuffering_bufferingtime_2", + "displayName": "Custom", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_networkbuffering_networkbuffering", + "displayName": "Configure Network Buffering (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_policycodecupdate", + "displayName": "Prevent Codec Download (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_policycodecupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_policycodecupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventcddvdmetadataretrieval", + "displayName": "Prevent CD and DVD Media Information Retrieval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventcddvdmetadataretrieval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventcddvdmetadataretrieval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventmusicfilemetadataretrieval", + "displayName": "Prevent Music File Media Information Retrieval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventmusicfilemetadataretrieval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventmusicfilemetadataretrieval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventradiopresetsretrieval", + "displayName": "Prevent Radio Station Preset Retrieval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventradiopresetsretrieval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_preventradiopresetsretrieval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_skinlockdown", + "displayName": "Set and Lock Skin (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_skinlockdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_skinlockdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_skinlockdown_lockskin", + "displayName": "Skin (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols", + "displayName": "Streaming Media Protocols (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_httpcheckbox", + "displayName": "HTTP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_httpcheckbox_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_httpcheckbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_multicastcheckbox", + "displayName": "Multicast (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_multicastcheckbox_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_multicastcheckbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_tcpcheckbox", + "displayName": "TCP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_tcpcheckbox_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_tcpcheckbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_udpcheckbox", + "displayName": "UDP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_udpcheckbox_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_udpcheckbox_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsmediaplayer_windowsstreamingmediaprotocols_udpports", + "displayName": "UDP Ports (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsstore_disableosupgrade_1", + "displayName": "Turn off the offer to update to the latest version of Windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsstore_disableosupgrade_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsstore_disableosupgrade_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsstore_removewindowsstore_1", + "displayName": "Turn off the Store application (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_windowsstore_removewindowsstore_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_windowsstore_removewindowsstore_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_customshell", + "displayName": "Custom User Interface (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_winlogon_customshell_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_customshell_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_customshell_customshellinst", + "displayName": "Interface file name (for example, Explorer.exe) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhoursnotificationpolicydescription", + "displayName": "Remove logon hours expiration warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhoursnotificationpolicydescription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhoursnotificationpolicydescription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhourspolicydescription", + "displayName": "Set action to take when logon hours expire (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhourspolicydescription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhourspolicydescription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhourspolicydescription_logonhourspolicydescription", + "displayName": "Set action to take when logon hours expire (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhourspolicydescription_logonhourspolicydescription_1", + "displayName": "Lock", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhourspolicydescription_logonhourspolicydescription_2", + "displayName": "Disconnect", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_logonhourspolicydescription_logonhourspolicydescription_3", + "displayName": "Logoff", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_reportcachedlogonpolicydescription", + "displayName": "Report when logon server was not available during user logon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_winlogon_reportcachedlogonpolicydescription_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_winlogon_reportcachedlogonpolicydescription_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_wordwheel_customsearch", + "displayName": "Custom Instant Search Internet search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_wordwheel_customsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wordwheel_customsearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_wordwheel_customsearch_customsearch_nameprompt", + "displayName": "The string or DLL resource from which to load the string shown in the Instant Search menu. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wordwheel_customsearch_customsearch_urlprompt", + "displayName": "The URL to use when invoking the custom Internet search, with the search term indicated by \"%w\". (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenabletokenbroker", + "displayName": "Enables the use of Token Broker for AD FS authentication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenabletokenbroker_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenabletokenbroker_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders", + "displayName": "Specify Work Folders settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_autoprovision_chk", + "displayName": "Force automatic setup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_autoprovision_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_autoprovision_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_ghostingpreference_enum", + "displayName": "On-demand file access preference: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_ghostingpreference_enum_1", + "displayName": "Enable (recommended)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_ghostingpreference_enum_2", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_ghostingpreference_enum_3", + "displayName": "User choice", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_localfolderpath_edit", + "displayName": "Work Folders Local Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_workfoldersclient_pol_userenableworkfolders_lbl_serverurl_edit", + "displayName": "Work Folders URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_nocallsduringquiethours", + "displayName": "Turn off calls during Quiet Hours (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_wpn_nocallsduringquiethours_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_nocallsduringquiethours_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_nolockscreentoastnotification", + "displayName": "Turn off toast notifications on the lock screen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_wpn_nolockscreentoastnotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_nolockscreentoastnotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_noquiethours", + "displayName": "Turn off Quiet Hours (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_wpn_noquiethours_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_noquiethours_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_notoastnotification", + "displayName": "Turn off toast notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_wpn_notoastnotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_notoastnotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_quiethoursdailybeginminute", + "displayName": "Set the time Quiet Hours begins each day (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_wpn_quiethoursdailybeginminute_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_quiethoursdailybeginminute_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_quiethoursdailybeginminute_quiethoursdailybeginminutecontrol", + "displayName": "Minutes after midnight: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_quiethoursdailyendminute", + "displayName": "Set the time Quiet Hours ends each day (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_admx_wpn_quiethoursdailyendminute_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_quiethoursdailyendminute_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_admx_wpn_quiethoursdailyendminute_quiethoursdailyendminutecontrol", + "displayName": "Minutes after midnight: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_applicationmanagement_msialwaysinstallwithelevatedprivileges", + "displayName": "MSI Always Install With Elevated Privileges (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_applicationmanagement_msialwaysinstallwithelevatedprivileges_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "user_vendor_msft_policy_config_applicationmanagement_msialwaysinstallwithelevatedprivileges_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_applicationmanagement_requireprivatestoreonly", + "displayName": "Require Private Store Only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_applicationmanagement_requireprivatestoreonly_0", + "displayName": "Allow both public and Private store.", + "description": "Allow both public and Private store." + }, + { + "id": "user_vendor_msft_policy_config_applicationmanagement_requireprivatestoreonly_1", + "displayName": "Only Private store is enabled.", + "description": "Only Private store is enabled." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_attachmentmanager_donotpreservezoneinformation", + "displayName": "Do not preserve zone information in file attachments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_attachmentmanager_donotpreservezoneinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_attachmentmanager_donotpreservezoneinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_attachmentmanager_hidezoneinfomechanism", + "displayName": "Hide mechanisms to remove zone information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_attachmentmanager_hidezoneinfomechanism_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_attachmentmanager_hidezoneinfomechanism_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_attachmentmanager_notifyantivirusprograms", + "displayName": "Notify antivirus programs when opening attachments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_attachmentmanager_notifyantivirusprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_attachmentmanager_notifyantivirusprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_authentication_alloweapcertsso", + "displayName": "Allow EAP Cert SSO (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_authentication_alloweapcertsso_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_authentication_alloweapcertsso_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_autoplay_disallowautoplayfornonvolumedevices", + "displayName": "Disallow Autoplay for non-volume devices (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_autoplay_disallowautoplayfornonvolumedevices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_autoplay_disallowautoplayfornonvolumedevices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior", + "displayName": "Set the default behavior for AutoRun (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_noautorun_dropdown", + "displayName": "Default AutoRun Behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_noautorun_dropdown_1", + "displayName": "Do not execute any autorun commands", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_autoplay_setdefaultautorunbehavior_noautorun_dropdown_2", + "displayName": "Automatically execute autorun commands", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_autoplay_turnoffautoplay", + "displayName": "Turn off Autoplay (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_autoplay_turnoffautoplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_autoplay_turnoffautoplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_autoplay_turnoffautoplay_autorun_box", + "displayName": "Turn off Autoplay on: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_autoplay_turnoffautoplay_autorun_box_181", + "displayName": "CD-ROM and removable media drives", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_autoplay_turnoffautoplay_autorun_box_255", + "displayName": "All drives", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowaddressbardropdown", + "displayName": "Allow Address Bar Dropdown (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowaddressbardropdown_0", + "displayName": "Block", + "description": "Prevented/not allowed. Hide the Address bar drop-down functionality and disable the Show search and site suggestions as I type toggle in Settings." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowaddressbardropdown_1", + "displayName": "Allow", + "description": "Allowed. Show the Address bar drop-down list and make it available." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowautofill", + "displayName": "Allow Autofill (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowautofill_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowautofill_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowbrowser", + "displayName": "Allow Browser (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowbrowser_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowbrowser_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowconfigurationupdateforbookslibrary", + "displayName": "Allow Configuration Update For Books Library (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowconfigurationupdateforbookslibrary_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowconfigurationupdateforbookslibrary_1", + "displayName": "Allow", + "description": "Allowed. Microsoft Edge updates the configuration data for the Books Library automatically." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowcookies", + "displayName": "Allow Cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowcookies_0", + "displayName": "Block all cookies from all sites", + "description": "Block all cookies from all sites" + }, + { + "id": "user_vendor_msft_policy_config_browser_allowcookies_1", + "displayName": "Block only cookies from third party websites", + "description": "Block only cookies from third party websites" + }, + { + "id": "user_vendor_msft_policy_config_browser_allowcookies_2", + "displayName": "Allow all cookies from all sites", + "description": "Allow all cookies from all sites" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowdevelopertools", + "displayName": "Allow Developer Tools (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowdevelopertools_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowdevelopertools_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowdonottrack", + "displayName": "Allow Do Not Track (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowdonottrack_0", + "displayName": "Block", + "description": "Never send tracking information." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowdonottrack_1", + "displayName": "Allow", + "description": "Send tracking information." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowextensions", + "displayName": "Allow Extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowextensions_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowextensions_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowflash", + "displayName": "Allow Flash (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowflash_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowflash_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowflashclicktorun", + "displayName": "Allow Flash Click To Run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowflashclicktorun_0", + "displayName": "Block", + "description": "Load and run Adobe Flash content automatically." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowflashclicktorun_1", + "displayName": "Allow", + "description": "Does not load or run Adobe Flash content automatically. Requires action from the user." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowfullscreenmode", + "displayName": "Allow Full Screen Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowfullscreenmode_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowfullscreenmode_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowinprivate", + "displayName": "Allow InPrivate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowinprivate_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowinprivate_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowmicrosoftcompatibilitylist", + "displayName": "Allow Microsoft Compatibility List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowmicrosoftcompatibilitylist_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowmicrosoftcompatibilitylist_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowpasswordmanager", + "displayName": "Allow Password Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowpasswordmanager_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowpasswordmanager_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowpopups", + "displayName": "Allow Popups (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowpopups_0", + "displayName": "Block", + "description": "Turn off Pop-up Blocker letting pop-up windows open." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowpopups_1", + "displayName": "Allow", + "description": "Turn on Pop-up Blocker stopping pop-up windows from opening." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowprelaunch", + "displayName": "Allow Prelaunch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowprelaunch_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowprelaunch_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowprinting", + "displayName": "Allow Printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowprinting_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowprinting_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsavinghistory", + "displayName": "Allow Saving History (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowsavinghistory_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsavinghistory_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsearchenginecustomization", + "displayName": "Allow Search Engine Customization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowsearchenginecustomization_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsearchenginecustomization_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsearchsuggestionsinaddressbar", + "displayName": "Allow Search Suggestionsin Address Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowsearchsuggestionsinaddressbar_0", + "displayName": "Block", + "description": "Prevented/Not allowed. Hide the search suggestions." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsearchsuggestionsinaddressbar_1", + "displayName": "Allow", + "description": "Allowed. Show the search suggestions." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsideloadingofextensions", + "displayName": "Allow Sideloading Of Extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowsideloadingofextensions_0", + "displayName": "Block", + "description": "Prevented/Not allowed. Disabling does not prevent sideloading of extensions using Add-AppxPackage via Powershell. To prevent this, set the ApplicationManagement/AllowDeveloperUnlock policy to 1 (enabled)." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsideloadingofextensions_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsmartscreen", + "displayName": "Allow Smart Screen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowsmartscreen_0", + "displayName": "Block", + "description": "Turned off. Do not protect users from potential threats and prevent users from turning it on." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowsmartscreen_1", + "displayName": "Allow", + "description": "Turned on. Protect users from potential threats and prevent users from turning it off." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowtabpreloading", + "displayName": "Allow Tab Preloading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowtabpreloading_0", + "displayName": "Block", + "description": "Prevented/Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowtabpreloading_1", + "displayName": "Allow", + "description": "Allowed. Preload Start and New tab pages." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_allowwebcontentonnewtabpage", + "displayName": "Allow Web Content On New Tab Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_allowwebcontentonnewtabpage_0", + "displayName": "Block", + "description": "Load a blank page instead of the default New tab page and prevent users from changing it." + }, + { + "id": "user_vendor_msft_policy_config_browser_allowwebcontentonnewtabpage_1", + "displayName": "Allow", + "description": "Load the default New tab page." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_alwaysenablebookslibrary", + "displayName": "Always Enable Books Library (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_alwaysenablebookslibrary_0", + "displayName": "Disabled", + "description": "Show the Books Library only in countries or regions where supported." + }, + { + "id": "user_vendor_msft_policy_config_browser_alwaysenablebookslibrary_1", + "displayName": "Enabled", + "description": "Show the Books Library, regardless of the device's country or region." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_clearbrowsingdataonexit", + "displayName": "Clear Browsing Data On Exit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_clearbrowsingdataonexit_0", + "displayName": "Disabled", + "description": "Prevented/not allowed. Users can configure the 'Clear browsing data' option in Settings." + }, + { + "id": "user_vendor_msft_policy_config_browser_clearbrowsingdataonexit_1", + "displayName": "Enabled", + "description": "Allowed. Clear the browsing data upon exit automatically." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_configureadditionalsearchengines", + "displayName": "Configure Additional Search Engines (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_configurefavoritesbar", + "displayName": "Configure Favorites Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_configurefavoritesbar_0", + "displayName": "Disabled", + "description": "Hide the favorites bar on all pages. Also, the favorites bar toggle, in Settings, is set to Off and disabled preventing users from making changes. Microsoft Edge also hides the “show bar/hide bar” option in the context menu." + }, + { + "id": "user_vendor_msft_policy_config_browser_configurefavoritesbar_1", + "displayName": "Enabled", + "description": "Show the favorites bar on all pages. Also, the favorites bar toggle, in Settings, is set to On and disabled preventing users from making changes. Microsoft Edge also hides the “show bar/hide bar” option in the context menu." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_configurehomebutton", + "displayName": "Configure Home Button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_configurehomebutton_0", + "displayName": "Show home button and load the Start page", + "description": "Show home button and load the Start page" + }, + { + "id": "user_vendor_msft_policy_config_browser_configurehomebutton_1", + "displayName": "Show home button and load the New tab page", + "description": "Show home button and load the New tab page" + }, + { + "id": "user_vendor_msft_policy_config_browser_configurehomebutton_2", + "displayName": "Show home button and load the custom URL defined in the Set Home Button URL policy", + "description": "Show home button and load the custom URL defined in the Set Home Button URL policy" + }, + { + "id": "user_vendor_msft_policy_config_browser_configurehomebutton_3", + "displayName": "Hide home button", + "description": "Hide home button" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_configurekioskmode", + "displayName": "Configure Kiosk Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_configurekioskmode_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "user_vendor_msft_policy_config_browser_configurekioskmode_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_configurekioskresetafteridletimeout", + "displayName": "Configure Kiosk Reset After Idle Timeout (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith", + "displayName": "Configure Open Microsoft Edge With (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith_0", + "displayName": "Load the Start page", + "description": "Load the Start page" + }, + { + "id": "user_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith_1", + "displayName": "Load the New tab page", + "description": "Load the New tab page" + }, + { + "id": "user_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith_2", + "displayName": "Load the previous pages", + "description": "Load the previous pages" + }, + { + "id": "user_vendor_msft_policy_config_browser_configureopenmicrosoftedgewith_3", + "displayName": "Load a specific page or pages", + "description": "Load a specific page or pages" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics", + "displayName": "Configure Telemetry For Microsoft 365 Analytics (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics_0", + "displayName": "No data collected or sent", + "description": "No data collected or sent" + }, + { + "id": "user_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics_1", + "displayName": "Send intranet history only", + "description": "Send intranet history only" + }, + { + "id": "user_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics_2", + "displayName": "Send Internet history only", + "description": "Send Internet history only" + }, + { + "id": "user_vendor_msft_policy_config_browser_configuretelemetryformicrosoft365analytics_3", + "displayName": "Send both intranet and Internet history", + "description": "Send both intranet and Internet history" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_disablelockdownofstartpages", + "displayName": "Disable Lockdown Of Start Pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_disablelockdownofstartpages_0", + "displayName": "Disabled", + "description": "Lock down Start pages configured in either the ConfigureOpenEdgeWith policy and HomePages policy." + }, + { + "id": "user_vendor_msft_policy_config_browser_disablelockdownofstartpages_1", + "displayName": "Enabled", + "description": "Unlocked. Users can make changes to all configured start pages." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_enableextendedbookstelemetry", + "displayName": "Enable Extended Books Telemetry (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_enableextendedbookstelemetry_0", + "displayName": "Disabled", + "description": "Gather and send only basic diagnostic data, depending on the device configuration." + }, + { + "id": "user_vendor_msft_policy_config_browser_enableextendedbookstelemetry_1", + "displayName": "Enabled", + "description": "Gather all diagnostic data." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_enterprisemodesitelist", + "displayName": "Enterprise Mode Site List (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_enterprisesitelistserviceurl", + "displayName": "Enterprise Site List Service Url (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_homepages", + "displayName": "Home Pages (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_lockdownfavorites", + "displayName": "Lockdown Favorites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_lockdownfavorites_0", + "displayName": "Disabled", + "description": "Allowed/not locked down. Users can add, import, and make changes to the favorites." + }, + { + "id": "user_vendor_msft_policy_config_browser_lockdownfavorites_1", + "displayName": "Enabled", + "description": "Prevented/locked down." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_preventaccesstoaboutflagsinmicrosoftedge", + "displayName": "Prevent Access To About Flags In Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_preventaccesstoaboutflagsinmicrosoftedge_0", + "displayName": "Disabled", + "description": "Allowed." + }, + { + "id": "user_vendor_msft_policy_config_browser_preventaccesstoaboutflagsinmicrosoftedge_1", + "displayName": "Enabled", + "description": "Prevents users from accessing the about:flags page." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_preventcerterroroverrides", + "displayName": "Prevent Cert Error Overrides (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_preventcerterroroverrides_0", + "displayName": "Disabled", + "description": "Allowed/turned on. Override the security warning to sites that have SSL errors." + }, + { + "id": "user_vendor_msft_policy_config_browser_preventcerterroroverrides_1", + "displayName": "Enabled", + "description": "Prevented/turned on." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_preventlivetiledatacollection", + "displayName": "Prevent Live Tile Data Collection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_preventlivetiledatacollection_0", + "displayName": "Disabled", + "description": "Collect and send Live Tile metadata." + }, + { + "id": "user_vendor_msft_policy_config_browser_preventlivetiledatacollection_1", + "displayName": "Enabled", + "description": "No data collected." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_preventsmartscreenpromptoverride", + "displayName": "Prevent Smart Screen Prompt Override (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_preventsmartscreenpromptoverride_0", + "displayName": "Disabled", + "description": "Allowed/turned off. Users can ignore the warning and continue to the site." + }, + { + "id": "user_vendor_msft_policy_config_browser_preventsmartscreenpromptoverride_1", + "displayName": "Enabled", + "description": "Prevented/turned on." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_preventsmartscreenpromptoverrideforfiles", + "displayName": "Prevent Smart Screen Prompt Override For Files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_preventsmartscreenpromptoverrideforfiles_0", + "displayName": "Disabled", + "description": "Allowed/turned off. Users can ignore the warning and continue to download the unverified file(s)." + }, + { + "id": "user_vendor_msft_policy_config_browser_preventsmartscreenpromptoverrideforfiles_1", + "displayName": "Enabled", + "description": "Prevented/turned on." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_preventturningoffrequiredextensions", + "displayName": "Prevent Turning Off Required Extensions (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_preventusinglocalhostipaddressforwebrtc", + "displayName": "Prevent Using Local Host IP Address For Web RTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_preventusinglocalhostipaddressforwebrtc_0", + "displayName": "Disabled", + "description": "Allowed. Show localhost IP addresses." + }, + { + "id": "user_vendor_msft_policy_config_browser_preventusinglocalhostipaddressforwebrtc_1", + "displayName": "Enabled", + "description": "Prevented/Not allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_provisionfavorites", + "displayName": "Provision Favorites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_sendintranettraffictointernetexplorer", + "displayName": "Send Intranet Trafficto Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_sendintranettraffictointernetexplorer_0", + "displayName": "Disabled", + "description": "All sites, including intranet sites, open in Microsoft Edge automatically." + }, + { + "id": "user_vendor_msft_policy_config_browser_sendintranettraffictointernetexplorer_1", + "displayName": "Enabled", + "description": "Only intranet sites open in Internet Explorer 11 automatically." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_setdefaultsearchengine", + "displayName": "Set Default Search Engine (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_sethomebuttonurl", + "displayName": "Set Home Button URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_setnewtabpageurl", + "displayName": "Set New Tab Page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_browser_showmessagewhenopeningsitesininternetexplorer", + "displayName": "Show Message When Opening Sites In Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_showmessagewhenopeningsitesininternetexplorer_0", + "displayName": "No additional message displays.", + "description": "No additional message displays." + }, + { + "id": "user_vendor_msft_policy_config_browser_showmessagewhenopeningsitesininternetexplorer_1", + "displayName": "Show an additional message stating that a site has opened in IE11.", + "description": "Show an additional message stating that a site has opened in IE11." + }, + { + "id": "user_vendor_msft_policy_config_browser_showmessagewhenopeningsitesininternetexplorer_2", + "displayName": "Show an additional message with a \"Keep going in Microsoft Edge\" link.", + "description": "Show an additional message with a \"Keep going in Microsoft Edge\" link." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_syncfavoritesbetweenieandmicrosoftedge", + "displayName": "Sync Favorites Between IE And Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_syncfavoritesbetweenieandmicrosoftedge_0", + "displayName": "Disabled", + "description": "Turned off/not syncing." + }, + { + "id": "user_vendor_msft_policy_config_browser_syncfavoritesbetweenieandmicrosoftedge_1", + "displayName": "Enabled", + "description": "Turned on/syncing." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_unlockhomebutton", + "displayName": "Unlock Home Button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_unlockhomebutton_0", + "displayName": "Disabled", + "description": "Lock down and prevent users from making changes to the settings." + }, + { + "id": "user_vendor_msft_policy_config_browser_unlockhomebutton_1", + "displayName": "Enabled", + "description": "Let users make changes." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_browser_usesharedfolderforbooks", + "displayName": "Use Shared Folder For Books (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_browser_usesharedfolderforbooks_0", + "displayName": "Disabled", + "description": "Prevented/not allowed, but Microsoft Edge downloads book files to a per-user folder for each user." + }, + { + "id": "user_vendor_msft_policy_config_browser_usesharedfolderforbooks_1", + "displayName": "Enabled", + "description": "Allowed. Microsoft Edge downloads book files to a shared folder. For this policy to work correctly, you must also enable the Allow a Windows app to share application data between users group policy. Also, the users must be signed in with a school or work account." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_abusiveexperienceinterventionenforce", + "displayName": "Abusive Experience Intervention Enforce (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_abusiveexperienceinterventionenforce_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_abusiveexperienceinterventionenforce_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_accessibilityimagelabelsenabled", + "displayName": "Enable Get Image Descriptions from Google. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_accessibilityimagelabelsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_accessibilityimagelabelsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_additionaldnsquerytypesenabled", + "displayName": "Allow DNS queries for additional DNS record types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_additionaldnsquerytypesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_additionaldnsquerytypesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_adssettingforintrusiveadssites_1", + "displayName": "Allow ads on all sites", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_adssettingforintrusiveadssites_adssettingforintrusiveadssites_2", + "displayName": "Do not allow ads on sites with intrusive ads", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_advancedprotectionallowed", + "displayName": "Enable additional protections for users enrolled in the Advanced Protection program (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_advancedprotectionallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_advancedprotectionallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdeletingbrowserhistory", + "displayName": "Enable deleting browser and download history (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdeletingbrowserhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdeletingbrowserhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdinosaureasteregg", + "displayName": "Allow Dinosaur Easter Egg Game (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdinosaureasteregg_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowdinosaureasteregg_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alloweddomainsforapps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alloweddomainsforapps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alloweddomainsforapps_alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowfileselectiondialogs", + "displayName": "Allow invocation of file selection dialogs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowfileselectiondialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowfileselectiondialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowsyncxhrinpagedismissal", + "displayName": "Allows a page to perform synchronous XHR requests during page dismissal. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowsyncxhrinpagedismissal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_allowsyncxhrinpagedismissal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alternateerrorpagesenabled", + "displayName": "Enable alternate error pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alternateerrorpagesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alternateerrorpagesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alwaysopenpdfexternally", + "displayName": "Always Open PDF files externally (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alwaysopenpdfexternally_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_alwaysopenpdfexternally_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for profile types. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for profile types. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Enable ambient authentication in regular sessions only.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enable ambient authentication in incognito and regular sessions.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_2", + "displayName": "Enable ambient authentication in guest and regular sessions.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_3", + "displayName": "Enable ambient authentication in regular, incognito and guest sessions.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_applicationlocalevalue", + "displayName": "Application locale (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_applicationlocalevalue_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_applicationlocalevalue_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_applicationlocalevalue_applicationlocalevalue", + "displayName": "Application locale (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowed", + "displayName": "Allow or deny audio capture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowedurls", + "displayName": "URLs that will be granted access to audio capture devices without prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiocaptureallowedurls_audiocaptureallowedurlsdesc", + "displayName": "URLs that will be granted access to audio capture devices without prompt (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audioprocesshighpriorityenabled", + "displayName": "Allow the audio process to run with priority above normal on Windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audioprocesshighpriorityenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audioprocesshighpriorityenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiosandboxenabled", + "displayName": "Allow the audio sandbox to run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiosandboxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_audiosandboxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofilladdressenabled", + "displayName": "Enable AutoFill for addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofilladdressenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofilladdressenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofillcreditcardenabled", + "displayName": "Enable AutoFill for credit cards (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofillcreditcardenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autofillcreditcardenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autolaunchprotocolsfromorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autolaunchprotocolsfromorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autolaunchprotocolsfromorigins_autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenallowedforurls", + "displayName": "URLs where AutoOpenFileTypes can apply (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenallowedforurls_autoopenallowedforurlsdesc", + "displayName": "URLs where AutoOpenFileTypes can apply (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenfiletypes", + "displayName": "List of file types that should be automatically opened on download (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenfiletypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenfiletypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoopenfiletypes_autoopenfiletypesdesc", + "displayName": "List of file types that should be automatically opened on download (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowed", + "displayName": "Allow media autoplay (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowlist", + "displayName": "Allow media autoplay on a allowlist of URL patterns (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_autoplayallowlist_autoplayallowlistdesc", + "displayName": "Allow media autoplay on a allowlist of URL patterns (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_backgroundmodeenabled", + "displayName": "Continue running background apps when Google Chrome is closed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_backgroundmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_backgroundmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_blockthirdpartycookies", + "displayName": "Block third party cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_blockthirdpartycookies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_blockthirdpartycookies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_bookmarkbarenabled", + "displayName": "Enable Bookmark Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_bookmarkbarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_bookmarkbarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browseraddpersonenabled", + "displayName": "Enable add person in user manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browseraddpersonenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browseraddpersonenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenabled", + "displayName": "Enable guest mode in browser (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenforced", + "displayName": "Enforce browser guest mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenforced_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserguestmodeenforced_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlabsenabled", + "displayName": "Browser experiments icon in toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlegacyextensionpointsblocked", + "displayName": "Block Browser Legacy Extension Points (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlegacyextensionpointsblocked_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserlegacyextensionpointsblocked_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsernetworktimequeriesenabled", + "displayName": "Allow queries to a Google time service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsernetworktimequeriesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsernetworktimequeriesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin", + "displayName": "Browser sign in settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_browsersignin", + "displayName": "Browser sign in settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_browsersignin_0", + "displayName": "Disable browser sign-in", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_browsersignin_1", + "displayName": "Enable browser sign-in", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsersignin_browsersignin_2", + "displayName": "Force users to sign-in to use the browser", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserthemecolor", + "displayName": "Configure the color of the browser's theme (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserthemecolor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserthemecolor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browserthemecolor_browserthemecolor", + "displayName": "Configure the color of the browser's theme (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsingdatalifetime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsingdatalifetime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_browsingdatalifetime_browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_builtindnsclientenabled", + "displayName": "Use built-in DNS client (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_builtindnsclientenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_builtindnsclientenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cecpq2enabled", + "displayName": "CECPQ2 post-quantum key-agreement enabled for TLS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cecpq2enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cecpq2enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforcas", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforcas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforcas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforcas_certificatetransparencyenforcementdisabledforcasdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforlegacycas", + "displayName": "Disable Certificate Transparency enforcement for a list of Legacy Certificate Authorities (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforlegacycas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforlegacycas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforlegacycas_certificatetransparencyenforcementdisabledforlegacycasdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of Legacy Certificate Authorities (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforurls", + "displayName": "Disable Certificate Transparency enforcement for a list of URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_certificatetransparencyenforcementdisabledforurls_certificatetransparencyenforcementdisabledforurlsdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of URLs (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupenabled", + "displayName": "Enable Chrome Cleanup on Windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupreportingenabled", + "displayName": "Control how Chrome Cleanup reports data to Google (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromecleanupreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations", + "displayName": "Determine the availability of variations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_chromevariations", + "displayName": "Determine the availability of variations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_chromevariations_0", + "displayName": "Enable all variations", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_chromevariations_1", + "displayName": "Enable variations concerning critical fixes only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_chromevariations_chromevariations_2", + "displayName": "Disable all variations", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clearbrowsingdataonexitlist", + "displayName": "Clear Browsing Data on Exit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clearbrowsingdataonexitlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clearbrowsingdataonexitlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clearbrowsingdataonexitlist_clearbrowsingdataonexitlistdesc", + "displayName": "Clear Browsing Data on Exit (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clicktocallenabled", + "displayName": "Enable the Click to Call Feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clicktocallenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clicktocallenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmentmandatory", + "displayName": "Enable mandatory cloud management enrollment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmentmandatory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmentmandatory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmenttoken", + "displayName": "The enrollment token of cloud policy on desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmenttoken_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmenttoken_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudmanagementenrollmenttoken_cloudmanagementenrollmenttoken", + "displayName": "The enrollment token of cloud policy on desktop (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudpolicyoverridesplatformpolicy", + "displayName": "Google Chrome cloud policy overrides Platform policy. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudpolicyoverridesplatformpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_cloudpolicyoverridesplatformpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicymerge", + "displayName": "Enables merging of user cloud policies into machine-level policies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicymerge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicymerge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicyoverridescloudmachinepolicy", + "displayName": "Allow user cloud policies to override Chrome Browser Cloud Management policies. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicyoverridescloudmachinepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_clouduserpolicyoverridescloudmachinepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_commandlineflagsecuritywarningsenabled", + "displayName": "Enable security warnings for command-line flags (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_commandlineflagsecuritywarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_commandlineflagsecuritywarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_componentupdatesenabled", + "displayName": "Enable component updates in Google Chrome (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_componentupdatesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_componentupdatesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_corsnonwildcardrequestheaderssupport", + "displayName": "CORS non-wildcard request headers support (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_corsnonwildcardrequestheaderssupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_corsnonwildcardrequestheaderssupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_crossoriginwebassemblymodulesharingenabled", + "displayName": "Specifies whether WebAssembly modules can be sent cross-origin (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_crossoriginwebassemblymodulesharingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_crossoriginwebassemblymodulesharingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultbrowsersettingenabled", + "displayName": "Set Google Chrome as Default Browser (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultbrowsersettingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultbrowsersettingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultsearchprovidercontextmenuaccessallowed", + "displayName": "Allow default search provider context menu search access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultsearchprovidercontextmenuaccessallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_defaultsearchprovidercontextmenuaccessallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_desktopsharinghubenabled", + "displayName": "Enable desktop sharing in the omnibox and 3-dot menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_desktopsharinghubenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_desktopsharinghubenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability", + "displayName": "Control where Developer Tools can be used (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_developertoolsavailability", + "displayName": "Control where Developer Tools can be used (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_developertoolsavailability_0", + "displayName": "Disallow usage of the Developer Tools on extensions installed by enterprise policy, allow usage of the Developer Tools in other contexts", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_developertoolsavailability_1", + "displayName": "Allow usage of the Developer Tools", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_developertoolsavailability_developertoolsavailability_2", + "displayName": "Disallow usage of the Developer Tools", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disable3dapis", + "displayName": "Disable support for 3D graphics APIs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disable3dapis_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disable3dapis_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablesafebrowsingproceedanyway", + "displayName": "Disable proceeding from the Safe Browsing warning page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablesafebrowsingproceedanyway_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablesafebrowsingproceedanyway_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablescreenshots", + "displayName": "Disable taking screenshots (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablescreenshots_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_disablescreenshots_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachedir", + "displayName": "Set disk cache directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachedir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachedir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachedir_diskcachedir", + "displayName": "Set disk cache directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachesize", + "displayName": "Set disk cache size in bytes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_diskcachesize_diskcachesize", + "displayName": "Set disk cache size: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_displaycapturepermissionspolicyenabled", + "displayName": "Specifies whether the display-capture permissions-policy is checked or skipped. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_displaycapturepermissionspolicyenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_displaycapturepermissionspolicyenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsinterceptionchecksenabled", + "displayName": "DNS interception checks enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsinterceptionchecksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsinterceptionchecksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode", + "displayName": "Controls the mode of DNS-over-HTTPS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_dnsoverhttpsmode", + "displayName": "Controls the mode of DNS-over-HTTPS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_dnsoverhttpsmode_off", + "displayName": "Disable DNS-over-HTTPS", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_dnsoverhttpsmode_automatic", + "displayName": "Enable DNS-over-HTTPS with insecure fallback", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpsmode_dnsoverhttpsmode_secure", + "displayName": "Enable DNS-over-HTTPS without insecure fallback", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpstemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpstemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_dnsoverhttpstemplates_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloaddirectory", + "displayName": "Set download directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloaddirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloaddirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloaddirectory_downloaddirectory", + "displayName": "Set download directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions", + "displayName": "Allow download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions", + "displayName": "Download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_0", + "displayName": "No special restrictions. Default.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_1", + "displayName": "Block malicious downloads and dangerous file types.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_2", + "displayName": "Block malicious downloads, uncommon or unwanted downloads and dangerous file types.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_3", + "displayName": "Block all downloads.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_downloadrestrictions_downloadrestrictions_4", + "displayName": "Block malicious downloads. Recommended.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_editbookmarksenabled", + "displayName": "Enable or disable bookmark editing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_editbookmarksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_editbookmarksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableexperimentalpolicies", + "displayName": "Enables experimental policies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableexperimentalpolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableexperimentalpolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableexperimentalpolicies_enableexperimentalpoliciesdesc", + "displayName": "Enables experimental policies (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableonlinerevocationchecks", + "displayName": "Enable online OCSP/CRL checks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableonlinerevocationchecks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enableonlinerevocationchecks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enterprisehardwareplatformapienabled", + "displayName": "Enables managed extensions to use the Enterprise Hardware Platform API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enterprisehardwareplatformapienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_enterprisehardwareplatformapienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_explicitlyallowednetworkports", + "displayName": "Explicitly allowed network ports (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_explicitlyallowednetworkports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_explicitlyallowednetworkports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_explicitlyallowednetworkports_explicitlyallowednetworkportsdesc", + "displayName": "Explicitly allowed network ports (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_externalprotocoldialogshowalwaysopencheckbox", + "displayName": "Show an \"Always open\" checkbox in external protocol dialog. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_externalprotocoldialogshowalwaysopencheckbox_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_externalprotocoldialogshowalwaysopencheckbox_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on Shutdown (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fetchkeepalivedurationsecondsonshutdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fetchkeepalivedurationsecondsonshutdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fetchkeepalivedurationsecondsonshutdown_fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on Shutdown: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcedlanguages", + "displayName": "Configure the content and order of preferred languages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcedlanguages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcedlanguages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcedlanguages_forcedlanguagesdesc", + "displayName": "Configure the content and order of preferred languages (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceephemeralprofiles", + "displayName": "Ephemeral profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceephemeralprofiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceephemeralprofiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcegooglesafesearch", + "displayName": "Force Google SafeSearch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcegooglesafesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forcegooglesafesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_forceyoutuberestrict_0", + "displayName": "Do not enforce Restricted Mode on YouTube", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_forceyoutuberestrict_1", + "displayName": "Enforce at least Moderate Restricted Mode on YouTube", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_forceyoutuberestrict_forceyoutuberestrict_2", + "displayName": "Enforce Strict Restricted Mode for YouTube", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fullscreenallowed", + "displayName": "Allow fullscreen mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fullscreenallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_fullscreenallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_globallyscopehttpauthcacheenabled", + "displayName": "Enable globally scoped HTTP auth cache (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_globallyscopehttpauthcacheenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_globallyscopehttpauthcacheenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hardwareaccelerationmodeenabled", + "displayName": "Use hardware acceleration when available (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hardwareaccelerationmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hardwareaccelerationmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode", + "displayName": "Control use of the Headless Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_headlessmode", + "displayName": "Control use of the Headless Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_headlessmode_1", + "displayName": "Allow use of the Headless Mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_headlessmode_headlessmode_2", + "displayName": "Do not allow use of the Headless Mode", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hidewebstoreicon", + "displayName": "Hide the web store from the New Tab Page and app launcher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hidewebstoreicon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hidewebstoreicon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_historyclustersvisible", + "displayName": "Show history clusters on the Chrome history page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_historyclustersvisible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_historyclustersvisible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hstspolicybypasslist", + "displayName": "List of names that will bypass the HSTS policy check (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hstspolicybypasslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hstspolicybypasslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_hstspolicybypasslist_hstspolicybypasslistdesc", + "displayName": "List of names that will bypass the HSTS policy check (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode", + "displayName": "Allow HTTPS-Only Mode to be enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_httpsonlymode", + "displayName": "Allow HTTPS-Only Mode to be enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_httpsonlymode_allowed", + "displayName": "Allow users to enable HTTPS-Only Mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_httpsonlymode_disallowed", + "displayName": "Do not allow users to enable HTTPS-Only Mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_httpsonlymode_httpsonlymode_force_enabled", + "displayName": "Force enable HTTPS-Only Mode (not supported yet)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importautofillformdata", + "displayName": "Import autofill form data from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importautofillformdata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importautofillformdata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importbookmarks", + "displayName": "Import bookmarks from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importbookmarks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importbookmarks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhistory", + "displayName": "Import browsing history from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhomepage", + "displayName": "Import of homepage from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsavedpasswords", + "displayName": "Import saved passwords from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsavedpasswords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsavedpasswords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsearchengine", + "displayName": "Import search engines from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsearchengine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_importsearchengine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability", + "displayName": "Incognito mode availability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_incognitomodeavailability", + "displayName": "Incognito mode availability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_incognitomodeavailability_0", + "displayName": "Incognito mode available", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_incognitomodeavailability_1", + "displayName": "Incognito mode disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_incognitomodeavailability_incognitomodeavailability_2", + "displayName": "Incognito mode forced", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureformswarningsenabled", + "displayName": "Enable warnings for insecure forms (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureformswarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureformswarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowed", + "displayName": "Specifies whether to allow insecure websites to make requests to more-private network endpoints (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowedforurls", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from insecure contexts. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_insecureprivatenetworkrequestsallowedforurls_insecureprivatenetworkrequestsallowedforurlsdesc", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from insecure contexts. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intensivewakeupthrottlingenabled", + "displayName": "Control the IntensiveWakeUpThrottling feature. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intensivewakeupthrottlingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intensivewakeupthrottlingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior_0", + "displayName": "Use default browser behavior.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior_1", + "displayName": "Disable DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior_2", + "displayName": "Disable DNS interception checks; allow did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_intranetredirectbehavior_intranetredirectbehavior_3", + "displayName": "Allow DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_isolateorigins", + "displayName": "Enable Site Isolation for specified origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_isolateorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_isolateorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_isolateorigins_isolateorigins", + "displayName": "Enable Site Isolation for specified origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lensregionsearchenabled", + "displayName": "Allow Google Lens region search menu item to be shown in context menu if supported. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lensregionsearchenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lensregionsearchenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lockiconinaddressbarenabled", + "displayName": "Enable lock icon in the omnibox for secure connections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lockiconinaddressbarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lockiconinaddressbarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lookalikewarningallowlistdomains", + "displayName": "Suppress lookalike domain warnings on domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lookalikewarningallowlistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lookalikewarningallowlistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_lookalikewarningallowlistdomains_lookalikewarningallowlistdomainsdesc", + "displayName": "Suppress lookalike domain warnings on domains (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction", + "displayName": "Add restrictions on managed accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_managedaccountssigninrestriction", + "displayName": "Add restrictions on managed accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_managedaccountssigninrestriction_primary_account", + "displayName": "A Managed account must be a primary account", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_managedaccountssigninrestriction_primary_account_strict", + "displayName": "A Managed account must be a primary account and have no secondary accounts", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedaccountssigninrestriction_managedaccountssigninrestriction_none", + "displayName": "No restrictions on managed accounts", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedbookmarks", + "displayName": "Managed Bookmarks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedbookmarks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedbookmarks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedbookmarks_managedbookmarks", + "displayName": "Managed Bookmarks (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedconfigurationperorigin", + "displayName": "Sets managed configuration values to websites to specific origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedconfigurationperorigin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedconfigurationperorigin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_managedconfigurationperorigin_managedconfigurationperorigin", + "displayName": "Sets managed configuration values to websites to specific origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxconnectionsperproxy", + "displayName": "Maximal number of concurrent connections to the proxy server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxconnectionsperproxy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxconnectionsperproxy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxconnectionsperproxy_maxconnectionsperproxy", + "displayName": "Maximal number of concurrent connections to the proxy server: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxinvalidationfetchdelay", + "displayName": "Maximum fetch delay after a policy invalidation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxinvalidationfetchdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxinvalidationfetchdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_maxinvalidationfetchdelay_maxinvalidationfetchdelay", + "displayName": "Maximum fetch delay after a policy invalidation: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediarecommendationsenabled", + "displayName": "Enable Media Recommendations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediarecommendationsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediarecommendationsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediaroutercastallowallips", + "displayName": "Allow Google Cast to connect to Cast devices on all IP addresses. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediaroutercastallowallips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_mediaroutercastallowallips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_metricsreportingenabled", + "displayName": "Enable reporting of usage and crash-related data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_metricsreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_metricsreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_networkpredictionoptions", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular.\r\n(Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkpredictionoptions_networkpredictionoptions_2", + "displayName": "Do not predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkservicesandboxenabled", + "displayName": "Enable the network service sandbox (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkservicesandboxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_networkservicesandboxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcardsvisible", + "displayName": "Show cards on the New Tab Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcardsvisible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcardsvisible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcustombackgroundenabled", + "displayName": "Allow users to customize the background on the New Tab page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcustombackgroundenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_ntpcustombackgroundenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_overridesecurityrestrictionsoninsecureorigin", + "displayName": "Origins or hostname patterns for which restrictions on\r\ninsecure origins should not apply (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_overridesecurityrestrictionsoninsecureorigin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_overridesecurityrestrictionsoninsecureorigin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_overridesecurityrestrictionsoninsecureorigin_overridesecurityrestrictionsoninsecureorigindesc", + "displayName": "Origins or hostname patterns for which restrictions on\r\ninsecure origins should not apply (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_paymentmethodqueryenabled", + "displayName": "Allow websites to query for available payment methods. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_paymentmethodqueryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_paymentmethodqueryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyatomicgroupsenabled", + "displayName": "Enables the concept of policy atomic groups (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyatomicgroupsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyatomicgroupsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policydictionarymultiplesourcemergelist", + "displayName": "Allow merging dictionary policies from different sources (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policydictionarymultiplesourcemergelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policydictionarymultiplesourcemergelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policydictionarymultiplesourcemergelist_policydictionarymultiplesourcemergelistdesc", + "displayName": "Allow merging dictionary policies from different sources (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policylistmultiplesourcemergelist", + "displayName": "Allow merging list policies from different sources (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policylistmultiplesourcemergelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policylistmultiplesourcemergelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policylistmultiplesourcemergelist_policylistmultiplesourcemergelistdesc", + "displayName": "Allow merging list policies from different sources (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyrefreshrate", + "displayName": "Refresh rate for user policy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyrefreshrate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyrefreshrate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_policyrefreshrate_policyrefreshrate", + "displayName": "Refresh rate for user policy: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability", + "displayName": "Profile picker availability on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_profilepickeronstartupavailability", + "displayName": "Profile picker availability on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_profilepickeronstartupavailability_0", + "displayName": "Profile picker available at startup", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_profilepickeronstartupavailability_1", + "displayName": "Profile picker disabled at startup", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_profilepickeronstartupavailability_profilepickeronstartupavailability_2", + "displayName": "Profile picker forced at startup", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promotionaltabsenabled", + "displayName": "Enable showing full-tab promotional content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promotionaltabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promotionaltabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promptfordownloadlocation", + "displayName": "Ask where to save each file before downloading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promptfordownloadlocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_promptfordownloadlocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_proxysettings", + "displayName": "Proxy settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_proxysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_proxysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_proxysettings_proxysettings", + "displayName": "Proxy settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_quicallowed", + "displayName": "Allow QUIC protocol (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_quicallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_quicallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alternateerrorpagesenabled_recommended", + "displayName": "Enable alternate error pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alternateerrorpagesenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alternateerrorpagesenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alwaysopenpdfexternally_recommended", + "displayName": "Always Open PDF files externally (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alwaysopenpdfexternally_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_alwaysopenpdfexternally_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_applicationlocalevalue_recommended", + "displayName": "Application locale (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_applicationlocalevalue_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_applicationlocalevalue_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_applicationlocalevalue_recommended_applicationlocalevalue", + "displayName": "Application locale (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofilladdressenabled_recommended", + "displayName": "Enable AutoFill for addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofilladdressenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofilladdressenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofillcreditcardenabled_recommended", + "displayName": "Enable AutoFill for credit cards (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofillcreditcardenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_autofillcreditcardenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_backgroundmodeenabled_recommended", + "displayName": "Continue running background apps when Google Chrome is closed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_backgroundmodeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_backgroundmodeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_blockthirdpartycookies_recommended", + "displayName": "Block third party cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_blockthirdpartycookies_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_blockthirdpartycookies_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_bookmarkbarenabled_recommended", + "displayName": "Enable Bookmark Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_bookmarkbarenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_bookmarkbarenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultdownloaddirectory_recommended", + "displayName": "Set default download directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultdownloaddirectory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultdownloaddirectory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultdownloaddirectory_recommended_defaultdownloaddirectory", + "displayName": "Set default download directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultsearchprovidercontextmenuaccessallowed_recommended", + "displayName": "Allow default search provider context menu search access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultsearchprovidercontextmenuaccessallowed_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_defaultsearchprovidercontextmenuaccessallowed_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloaddirectory_recommended", + "displayName": "Set download directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloaddirectory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloaddirectory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloaddirectory_recommended_downloaddirectory", + "displayName": "Set download directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended", + "displayName": "Allow download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions", + "displayName": "Download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_0", + "displayName": "No special restrictions. Default.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_1", + "displayName": "Block malicious downloads and dangerous file types.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_2", + "displayName": "Block malicious downloads, uncommon or unwanted downloads and dangerous file types.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_3", + "displayName": "Block all downloads.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_downloadrestrictions_recommended_downloadrestrictions_4", + "displayName": "Block malicious downloads. Recommended.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importautofillformdata_recommended", + "displayName": "Import autofill form data from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importautofillformdata_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importautofillformdata_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importbookmarks_recommended", + "displayName": "Import bookmarks from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importbookmarks_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importbookmarks_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importhistory_recommended", + "displayName": "Import browsing history from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importhistory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importhistory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsavedpasswords_recommended", + "displayName": "Import saved passwords from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsavedpasswords_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsavedpasswords_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsearchengine_recommended", + "displayName": "Import search engines from default browser on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsearchengine_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_importsearchengine_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_metricsreportingenabled_recommended", + "displayName": "Enable reporting of usage and crash-related data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_metricsreportingenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_metricsreportingenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_networkpredictionoptions", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular.\r\n(Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_networkpredictionoptions_recommended_networkpredictionoptions_2", + "displayName": "Do not predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_safebrowsingfortrustedsourcesenabled_recommended", + "displayName": "Enable Safe Browsing for trusted sources (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_safebrowsingfortrustedsourcesenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_safebrowsingfortrustedsourcesenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_searchsuggestenabled_recommended", + "displayName": "Enable search suggestions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_searchsuggestenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_searchsuggestenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_showfullurlsinaddressbar_recommended", + "displayName": "Show Full URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_showfullurlsinaddressbar_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_showfullurlsinaddressbar_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_spellcheckserviceenabled_recommended", + "displayName": "Enable or disable spell checking web service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_spellcheckserviceenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_spellcheckserviceenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_translateenabled_recommended", + "displayName": "Enable Translate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_translateenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended_translateenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended", + "displayName": "Register protocol handlers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_registeredprotocolhandlers", + "displayName": "Register protocol handlers (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovideralternateurls_recommended", + "displayName": "List of alternate URLs for the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovideralternateurls_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovideralternateurls_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovideralternateurls_recommended_defaultsearchprovideralternateurlsdesc", + "displayName": "List of alternate URLs for the default search provider (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended", + "displayName": "Enable the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended", + "displayName": "Default search provider encodings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_defaultsearchproviderencodingsdesc", + "displayName": "Default search provider encodings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidericonurl_recommended", + "displayName": "Default search provider icon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidericonurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidericonurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidericonurl_recommended_defaultsearchprovidericonurl", + "displayName": "Default search provider icon (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended", + "displayName": "Parameter providing search-by-image feature for the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_defaultsearchproviderimageurl", + "displayName": "Parameter providing search-by-image feature for the default search provider (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended", + "displayName": "Parameters for image URL which uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for image URL which uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended", + "displayName": "Default search provider keyword (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended", + "displayName": "Default search provider name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_defaultsearchprovidername", + "displayName": "Default search provider name (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidernewtaburl_recommended", + "displayName": "Default search provider new tab page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidernewtaburl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidernewtaburl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidernewtaburl_recommended_defaultsearchprovidernewtaburl", + "displayName": "Default search provider new tab page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended", + "displayName": "Default search provider search URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurlpostparams_recommended", + "displayName": "Parameters for search URL which uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurlpostparams_recommended_defaultsearchprovidersearchurlpostparams", + "displayName": "Parameters for search URL which uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended", + "displayName": "Default search provider suggest URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_defaultsearchprovidersuggesturl", + "displayName": "Default search provider suggest URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturlpostparams_recommended", + "displayName": "Parameters for suggest URL which uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturlpostparams_recommended_defaultsearchprovidersuggesturlpostparams", + "displayName": "Parameters for suggest URL which uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_autofillenabled_recommended", + "displayName": "Enable AutoFill (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_autofillenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_autofillenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_safebrowsingenabled_recommended", + "displayName": "Enable Safe Browsing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_safebrowsingenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~deprecatedpolicies_recommended_safebrowsingenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordleakdetectionenabled_recommended", + "displayName": "Enable leak detection for entered credentials (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordleakdetectionenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordleakdetectionenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended", + "displayName": "Enable saving passwords to the password manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printheaderfooter_recommended", + "displayName": "Print Headers and Footers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printheaderfooter_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printheaderfooter_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpdfasimagedefault_recommended", + "displayName": "Print PDF as Image Default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpdfasimagedefault_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpdfasimagedefault_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended", + "displayName": "Use System Default Printer as Default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_clearsitedataonexit_recommended", + "displayName": "Clear site data on browser shutdown (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_clearsitedataonexit_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_clearsitedataonexit_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturl_recommended", + "displayName": "Default search provider instant URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturl_recommended_defaultsearchproviderinstanturl", + "displayName": "Default search provider instant URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturlpostparams_recommended", + "displayName": "Parameters for instant URL which uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchproviderinstanturlpostparams_recommended_defaultsearchproviderinstanturlpostparams", + "displayName": "Parameters for instant URL which uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchprovidersearchtermsreplacementkey_recommended", + "displayName": "Parameter controlling search term placement for the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchprovidersearchtermsreplacementkey_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchprovidersearchtermsreplacementkey_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_defaultsearchprovidersearchtermsreplacementkey_recommended_defaultsearchprovidersearchtermsreplacementkey", + "displayName": "Parameter controlling search term placement for the default search provider (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_dnsprefetchingenabled_recommended", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_dnsprefetchingenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_dnsprefetchingenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_instantenabled_recommended", + "displayName": "Enable Instant (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_instantenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~removedpolicies_recommended_instantenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended", + "displayName": "Safe Browsing Protection Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_safebrowsingprotectionlevel", + "displayName": "Safe Browsing Protection Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_safebrowsingprotectionlevel_0", + "displayName": "Safe Browsing is never active.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_safebrowsingprotectionlevel_1", + "displayName": "Safe Browsing is active in the standard mode.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~safebrowsing_recommended_safebrowsingprotectionlevel_recommended_safebrowsingprotectionlevel_2", + "displayName": "Safe Browsing is active in the enhanced mode. This mode provides better security, but requires sharing more browsing information with Google.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepageisnewtabpage_recommended", + "displayName": "Use New Tab Page as homepage (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepageisnewtabpage_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepageisnewtabpage_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepagelocation_recommended", + "displayName": "Configure the home page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepagelocation_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepagelocation_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_homepagelocation_recommended_homepagelocation", + "displayName": "Home page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended", + "displayName": "Action on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup", + "displayName": "Action on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_5", + "displayName": "Open New Tab Page", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartupurls_recommended", + "displayName": "URLs to open on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartupurls_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartupurls_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_restoreonstartupurls_recommended_restoreonstartupurlsdesc", + "displayName": "URLs to open on startup (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_showhomebutton_recommended", + "displayName": "Show Home button on toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_showhomebutton_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_recommended~startup_recommended_showhomebutton_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification", + "displayName": "Notify a user that a browser relaunch or device restart is recommended or required (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_relaunchnotification", + "displayName": "Notify a user that a browser relaunch or device restart is recommended or required (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_relaunchnotification_1", + "displayName": "Show a recurring prompt to the user indicating that a relaunch is recommended", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotification_relaunchnotification_2", + "displayName": "Show a recurring prompt to the user indicating that a relaunch is required", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotificationperiod", + "displayName": "Set the time period for update notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotificationperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotificationperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchnotificationperiod_relaunchnotificationperiod", + "displayName": "Time period (milliseconds): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchwindow", + "displayName": "Set the time interval for relaunch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchwindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchwindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_relaunchwindow_relaunchwindow", + "displayName": "Relaunch time window (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_remotedebuggingallowed", + "displayName": "Allow remote debugging (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_remotedebuggingallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_remotedebuggingallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_renderercodeintegrityenabled", + "displayName": "Enable Renderer Code Integrity (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_renderercodeintegrityenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_renderercodeintegrityenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_requireonlinerevocationchecksforlocalanchors", + "displayName": "Require online OCSP/CRL checks for local trust anchors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_requireonlinerevocationchecksforlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_requireonlinerevocationchecksforlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_restrictsignintopattern", + "displayName": "Restrict which Google accounts are allowed to be set as browser primary accounts in Google Chrome (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_restrictsignintopattern_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_restrictsignintopattern_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_restrictsignintopattern_restrictsignintopattern", + "displayName": "Restrict which Google accounts are allowed to be set as browser primary accounts in Google Chrome (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilelocation", + "displayName": "Set the roaming profile directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilelocation_roamingprofilelocation", + "displayName": "Set the roaming profile directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilesupportenabled", + "displayName": "Enable the creation of roaming copies for Google Chrome profile data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilesupportenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_roamingprofilesupportenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safebrowsingfortrustedsourcesenabled", + "displayName": "Enable Safe Browsing for trusted sources (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safebrowsingfortrustedsourcesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safebrowsingfortrustedsourcesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior", + "displayName": "Control SafeSites adult content filtering. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_safesitesfilterbehavior", + "displayName": "Control SafeSites adult content filtering. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_safesitesfilterbehavior_0", + "displayName": "Do not filter sites for adult content", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_safesitesfilterbehavior_safesitesfilterbehavior_1", + "displayName": "Filter top level sites (but not embedded iframes) for adult content", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sandboxexternalprotocolblocked", + "displayName": "Allow Chrome to block navigations toward external protocols in sandboxed iframes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sandboxexternalprotocolblocked_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sandboxexternalprotocolblocked_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_savingbrowserhistorydisabled", + "displayName": "Disable saving browser history (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_savingbrowserhistorydisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_savingbrowserhistorydisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_scrolltotextfragmentenabled", + "displayName": "Enable scrolling to text specified in URL fragments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_scrolltotextfragmentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_scrolltotextfragmentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_searchsuggestenabled", + "displayName": "Enable search suggestions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_searchsuggestenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_searchsuggestenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_securitykeypermitattestation", + "displayName": "URLs/domains automatically permitted direct Security Key attestation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_securitykeypermitattestation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_securitykeypermitattestation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_securitykeypermitattestation_securitykeypermitattestationdesc", + "displayName": "URLs/domains automatically permitted direct Security Key attestation (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedarraybufferunrestrictedaccessallowed", + "displayName": "Specifies whether SharedArrayBuffers can be used in a non cross-origin-isolated context (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedarraybufferunrestrictedaccessallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedarraybufferunrestrictedaccessallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedclipboardenabled", + "displayName": "Enable the Shared Clipboard Feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedclipboardenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sharedclipboardenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showappsshortcutinbookmarkbar", + "displayName": "Show the apps shortcut in the bookmark bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showappsshortcutinbookmarkbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showappsshortcutinbookmarkbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showfullurlsinaddressbar", + "displayName": "Show Full URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showfullurlsinaddressbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_showfullurlsinaddressbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signedhttpexchangeenabled", + "displayName": "Enable Signed HTTP Exchange (SXG) support (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signedhttpexchangeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signedhttpexchangeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signininterceptionenabled", + "displayName": "Enable signin interception (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signininterceptionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_signininterceptionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_siteperprocess", + "displayName": "Require Site Isolation for every site (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_siteperprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_siteperprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckenabled", + "displayName": "Enable spellcheck (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguage", + "displayName": "Force enable spellcheck languages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguage_spellchecklanguagedesc", + "displayName": "Force enable spellcheck languages (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguageblocklist", + "displayName": "Force disable spellcheck languages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguageblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguageblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellchecklanguageblocklist_spellchecklanguageblocklistdesc", + "displayName": "Force disable spellcheck languages (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckserviceenabled", + "displayName": "Enable or disable spell checking web service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckserviceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_spellcheckserviceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowed", + "displayName": "Allow proceeding from the SSL warning page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowedfororigins", + "displayName": "Allow proceeding from the SSL warning page on specific origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslerroroverrideallowedfororigins_sslerroroverrideallowedfororiginsdesc", + "displayName": "Allow proceeding from the SSL warning page on specific origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin", + "displayName": "Minimum SSL version enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_sslversionmin", + "displayName": "Minimum SSL version enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_sslversionmin_tls1", + "displayName": "TLS 1.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_sslversionmin_tls1.1", + "displayName": "TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_sslversionmin_sslversionmin_tls1.2", + "displayName": "TLS 1.2", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressdifferentoriginsubframedialogs", + "displayName": "Suppress JavaScript Dialogs triggered from different origin subframes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressdifferentoriginsubframedialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressdifferentoriginsubframedialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressunsupportedoswarning", + "displayName": "Suppress the unsupported OS warning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressunsupportedoswarning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_suppressunsupportedoswarning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_syncdisabled", + "displayName": "Disable synchronization of data with Google (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_syncdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_syncdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_synctypeslistdisabled", + "displayName": "List of types that should be excluded from synchronization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_synctypeslistdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_synctypeslistdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_synctypeslistdisabled_synctypeslistdisableddesc", + "displayName": "List of types that should be excluded from synchronization (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_targetblankimpliesnoopener", + "displayName": "Do not set window.opener for links targeting _blank (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_targetblankimpliesnoopener_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_targetblankimpliesnoopener_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_taskmanagerendprocessenabled", + "displayName": "Enable ending processes in Task Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_taskmanagerendprocessenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_taskmanagerendprocessenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_thirdpartyblockingenabled", + "displayName": "Enable third party software injection blocking (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_thirdpartyblockingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_thirdpartyblockingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_totalmemorylimitmb", + "displayName": "Set limit on megabytes of memory a single Chrome instance can use. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_totalmemorylimitmb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_totalmemorylimitmb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_totalmemorylimitmb_totalmemorylimitmb", + "displayName": "Set memory limit for Chrome instances: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_translateenabled", + "displayName": "Enable Translate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_translateenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_translateenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_u2fsecuritykeyapienabled", + "displayName": "Allow using the deprecated U2F Security Key API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_u2fsecuritykeyapienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_u2fsecuritykeyapienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlallowlist", + "displayName": "Allow access to a list of URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlallowlist_urlallowlistdesc", + "displayName": "Allow access to a list of URLs (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlblocklist", + "displayName": "Block access to a list of URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlblocklist_urlblocklistdesc", + "displayName": "Block access to a list of URLs (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlkeyedanonymizeddatacollectionenabled", + "displayName": "Enable URL-keyed anonymized data collection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlkeyedanonymizeddatacollectionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_urlkeyedanonymizeddatacollectionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatadir", + "displayName": "Set user data directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatadir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatadir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatadir_userdatadir", + "displayName": "Set user data directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatasnapshotretentionlimit", + "displayName": "Limits the number of user data snapshots retained for use in case of emergency rollback. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatasnapshotretentionlimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatasnapshotretentionlimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userdatasnapshotretentionlimit_userdatasnapshotretentionlimit", + "displayName": "Limits the number of user data snapshots retained for use in case of emergency rollback.: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userfeedbackallowed", + "displayName": "Allow user feedback (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userfeedbackallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_userfeedbackallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowed", + "displayName": "Allow or deny video capture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowedurls", + "displayName": "URLs that will be granted access to video capture devices without prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_videocaptureallowedurls_videocaptureallowedurlsdesc", + "displayName": "URLs that will be granted access to video capture devices without prompt (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webappinstallforcelist", + "displayName": "Configure list of force-installed Web Apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webappinstallforcelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webappinstallforcelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webappinstallforcelist_webappinstallforcelist", + "displayName": "URLs for Web Apps to be silently installed. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcallowlegacytlsprotocols", + "displayName": "Allow legacy TLS/DTLS downgrade in WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcallowlegacytlsprotocols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcallowlegacytlsprotocols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtceventlogcollectionallowed", + "displayName": "Allow collection of WebRTC event logs from Google services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtceventlogcollectionallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtceventlogcollectionallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling", + "displayName": "The IP handling policy of WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling", + "displayName": "The IP handling policy of WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling_default", + "displayName": "WebRTC will use all available interfaces when searching for the best path.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling_default_public_and_private_interfaces", + "displayName": "WebRTC will only use the interface connecting to the public Internet, but may connect using private IP addresses.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling_default_public_interface_only", + "displayName": "WebRTC will only use the interface connecting to the public Internet, and will not connect using private IP addresses.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtciphandling_webrtciphandling_disable_non_proxied_udp", + "displayName": "WebRTC will use TCP on the public-facing interface, and will only use UDP if supported by a configured proxy.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtclocalipsallowedurls", + "displayName": "URLs for which local IPs are exposed in WebRTC ICE candidates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtclocalipsallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtclocalipsallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtclocalipsallowedurls_webrtclocalipsallowedurlsdesc", + "displayName": "URLs for which local IPs are exposed in WebRTC ICE candidates (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcudpportrange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcudpportrange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_webrtcudpportrange_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_websqlinthirdpartycontextenabled", + "displayName": "Force WebSQL in third-party contexts to be re-enabled. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_websqlinthirdpartycontextenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_websqlinthirdpartycontextenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_windowocclusionenabled", + "displayName": "Enable Window Occlusion (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_windowocclusionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_windowocclusionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_wpadquickcheckenabled", + "displayName": "Enable WPAD optimization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_wpadquickcheckenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome_wpadquickcheckenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserparameters", + "displayName": "Command-line parameters for the alternative browser. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserparameters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserparameters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserparameters_alternativebrowserparametersdesc", + "displayName": "Command-line parameters for the alternative browser. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserpath", + "displayName": "Alternative browser to launch for configured websites. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_alternativebrowserpath_alternativebrowserpath", + "displayName": "Alternative browser to launch for configured websites. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromeparameters", + "displayName": "Command-line parameters for switching from the alternative browser. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromeparameters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromeparameters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromeparameters_browserswitcherchromeparametersdesc", + "displayName": "Command-line parameters for switching from the alternative browser. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromepath", + "displayName": "Path to Chrome for switching from the alternative browser. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromepath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromepath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherchromepath_browserswitcherchromepath", + "displayName": "Path to Chrome for switching from the alternative browser. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherdelay", + "displayName": "Delay before launching alternative browser (milliseconds) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherdelay_browserswitcherdelay", + "displayName": "Delay before launching alternative browser (milliseconds): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherenabled", + "displayName": "Enable the Legacy Browser Support feature. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalgreylisturl", + "displayName": "URL of an XML file that contains URLs that should never trigger a browser switch. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalgreylisturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalgreylisturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalgreylisturl_browserswitcherexternalgreylisturl", + "displayName": "URL of an XML file that contains URLs that should never trigger a browser switch. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalsitelisturl", + "displayName": "URL of an XML file that contains URLs to load in an alternative browser. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalsitelisturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalsitelisturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherexternalsitelisturl_browserswitcherexternalsitelisturl", + "displayName": "URL of an XML file that contains URLs to load in an alternative browser. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherkeeplastchrometab", + "displayName": "Keep last tab open in Chrome. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherkeeplastchrometab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherkeeplastchrometab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode", + "displayName": "Sitelist parsing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_browserswitcherparsingmode", + "displayName": "Sitelist parsing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_browserswitcherparsingmode_0", + "displayName": "Default behavior for LBS.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherparsingmode_browserswitcherparsingmode_1", + "displayName": "More compatible with Microsoft IE/Edge enterprise mode sitelists.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurlgreylist", + "displayName": "Websites that should never trigger a browser switch. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurlgreylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurlgreylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurlgreylist_browserswitcherurlgreylistdesc", + "displayName": "Websites that should never trigger a browser switch. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurllist", + "displayName": "Websites to open in alternative browser (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurllist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurllist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcherurllist_browserswitcherurllistdesc", + "displayName": "Websites to open in alternative browser (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcheruseiesitelist", + "displayName": "Use Internet Explorer's SiteList policy for Legacy Browser Support. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcheruseiesitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~browserswitcher_browserswitcheruseiesitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_autoselectcertificateforurls", + "displayName": "Automatically select client certificates for these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_autoselectcertificateforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_autoselectcertificateforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_autoselectcertificateforurls_autoselectcertificateforurlsdesc", + "displayName": "Automatically select client certificates for these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesallowedforurls", + "displayName": "Allow cookies on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesallowedforurls_cookiesallowedforurlsdesc", + "displayName": "Allow cookies on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesblockedforurls", + "displayName": "Block cookies on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiesblockedforurls_cookiesblockedforurlsdesc", + "displayName": "Block cookies on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiessessiononlyforurls", + "displayName": "Limit cookies from matching URLs to the current session (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiessessiononlyforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiessessiononlyforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_cookiessessiononlyforurls_cookiessessiononlyforurlsdesc", + "displayName": "Limit cookies from matching URLs to the current session (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting", + "displayName": "Default cookies setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_defaultcookiessetting", + "displayName": "Default cookies setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_defaultcookiessetting_1", + "displayName": "Allow all sites to set local data", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_defaultcookiessetting_2", + "displayName": "Do not allow any site to set local data", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultcookiessetting_defaultcookiessetting_4", + "displayName": "Keep cookies for the duration of the session", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting_2", + "displayName": "Do not allow any site to request read access to files and directories via the File System API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting_3", + "displayName": "Allow sites to ask the user to grant read access to files and directories via the File System API", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting_2", + "displayName": "Do not allow any site to request write access to files and directories", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting_3", + "displayName": "Allow sites to ask the user to grant write access to files and directories", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting", + "displayName": "Default geolocation setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting", + "displayName": "Default geolocation setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_1", + "displayName": "Allow sites to track the users' physical location", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_2", + "displayName": "Do not allow any site to track the users' physical location", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_3", + "displayName": "Ask whenever a site wants to track the users' physical location", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting", + "displayName": "Default images setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_defaultimagessetting", + "displayName": "Default images setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_defaultimagessetting_1", + "displayName": "Allow all sites to show all images", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultimagessetting_defaultimagessetting_2", + "displayName": "Do not allow any site to show images", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting_2", + "displayName": "Do not allow any site to load mixed content", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting_3", + "displayName": "Allow users to add exceptions to allow mixed content", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting_1", + "displayName": "Allow any site to run JavaScript JIT", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting_2", + "displayName": "Do not allow any site to run JavaScript JIT", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting", + "displayName": "Default JavaScript setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting", + "displayName": "Default JavaScript setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting_1", + "displayName": "Allow all sites to run JavaScript", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting_2", + "displayName": "Do not allow any site to run JavaScript", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting", + "displayName": "Default notification setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_defaultnotificationssetting", + "displayName": "Default notification setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_defaultnotificationssetting_1", + "displayName": "Allow sites to show desktop notifications", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_defaultnotificationssetting_2", + "displayName": "Do not allow any site to show desktop notifications", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultnotificationssetting_defaultnotificationssetting_3", + "displayName": "Ask every time a site wants to show desktop notifications", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting", + "displayName": "Default popups setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_defaultpopupssetting", + "displayName": "Default popups setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_defaultpopupssetting_1", + "displayName": "Allow all sites to show pop-ups", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultpopupssetting_defaultpopupssetting_2", + "displayName": "Do not allow any site to show popups", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting", + "displayName": "Default sensors setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_defaultsensorssetting", + "displayName": "Default sensors setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_defaultsensorssetting_1", + "displayName": "Allow sites to access sensors", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultsensorssetting_defaultsensorssetting_2", + "displayName": "Do not allow any site to access sensors", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting", + "displayName": "Control use of the Serial API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_defaultserialguardsetting", + "displayName": "Control use of the Serial API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_defaultserialguardsetting_2", + "displayName": "Do not allow any site to request access to serial ports via the Serial API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultserialguardsetting_defaultserialguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a serial port", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting_2", + "displayName": "Do not allow any site to request access to Bluetooth devices via the Web Bluetooth API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a nearby Bluetooth device", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting_2", + "displayName": "Do not allow any site to request access to USB devices via the WebUSB API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a connected USB device", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadaskforurls", + "displayName": "Allow read access via the File System API on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadaskforurls_filesystemreadaskforurlsdesc", + "displayName": "Allow read access via the File System API on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadblockedforurls", + "displayName": "Block read access via the File System API on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemreadblockedforurls_filesystemreadblockedforurlsdesc", + "displayName": "Block read access via the File System API on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteaskforurls", + "displayName": "Allow write access to files and directories on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteaskforurls_filesystemwriteaskforurlsdesc", + "displayName": "Allow write access to files and directories on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteblockedforurls", + "displayName": "Block write access to files and directories on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_filesystemwriteblockedforurls_filesystemwriteblockedforurlsdesc", + "displayName": "Block write access to files and directories on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesallowedforurls", + "displayName": "Allow images on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesallowedforurls_imagesallowedforurlsdesc", + "displayName": "Allow images on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesblockedforurls", + "displayName": "Block images on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_imagesblockedforurls_imagesblockedforurlsdesc", + "displayName": "Block images on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentallowedforurls", + "displayName": "Allow insecure content on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentallowedforurls_insecurecontentallowedforurlsdesc", + "displayName": "Allow insecure content on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentblockedforurls", + "displayName": "Block insecure content on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_insecurecontentblockedforurls_insecurecontentblockedforurlsdesc", + "displayName": "Block insecure content on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptallowedforurls", + "displayName": "Allow JavaScript on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptallowedforurls_javascriptallowedforurlsdesc", + "displayName": "Allow JavaScript on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptblockedforurls", + "displayName": "Block JavaScript on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptblockedforurls_javascriptblockedforurlsdesc", + "displayName": "Block JavaScript on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitallowedforsites", + "displayName": "Allow JavaScript to use JIT on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitallowedforsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitallowedforsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitallowedforsites_javascriptjitallowedforsitesdesc", + "displayName": "Allow JavaScript to use JIT on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitblockedforsites", + "displayName": "Block JavaScript from using JIT on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitblockedforsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitblockedforsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_javascriptjitblockedforsites_javascriptjitblockedforsitesdesc", + "displayName": "Block JavaScript from using JIT on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist", + "displayName": "Revert to legacy SameSite behavior for cookies on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_legacysamesitecookiebehaviorenabledfordomainlistdesc", + "displayName": "Revert to legacy SameSite behavior for cookies on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsallowedforurls", + "displayName": "Allow notifications on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsallowedforurls_notificationsallowedforurlsdesc", + "displayName": "Allow notifications on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsblockedforurls", + "displayName": "Block notifications on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_notificationsblockedforurls_notificationsblockedforurlsdesc", + "displayName": "Block notifications on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsallowedforurls", + "displayName": "Allow popups on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsallowedforurls_popupsallowedforurlsdesc", + "displayName": "Allow popups on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsblockedforurls", + "displayName": "Block popups on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_popupsblockedforurls_popupsblockedforurlsdesc", + "displayName": "Block popups on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsallowedforurls", + "displayName": "Allow access to sensors on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsallowedforurls_sensorsallowedforurlsdesc", + "displayName": "Allow access to sensors on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsblockedforurls", + "displayName": "Block access to sensors on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_sensorsblockedforurls_sensorsblockedforurlsdesc", + "displayName": "Block access to sensors on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowallportsforurls", + "displayName": "Automatically grant permission to sites to connect all serial ports. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowallportsforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowallportsforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowallportsforurls_serialallowallportsforurlsdesc", + "displayName": "Automatically grant permission to sites to connect all serial ports. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowusbdevicesforurls", + "displayName": "Automatically grant permission to sites to connect to USB serial devices. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowusbdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowusbdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialallowusbdevicesforurls_serialallowusbdevicesforurls", + "displayName": "Automatically grant permission to sites to connect to USB serial devices. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialaskforurls", + "displayName": "Allow the Serial API on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialaskforurls_serialaskforurlsdesc", + "displayName": "Allow the Serial API on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialblockedforurls", + "displayName": "Block the Serial API on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_serialblockedforurls_serialblockedforurlsdesc", + "displayName": "Block the Serial API on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusballowdevicesforurls", + "displayName": "Automatically grant permission to these sites to connect to USB devices with the given vendor and product IDs. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusballowdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusballowdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusballowdevicesforurls_webusballowdevicesforurls", + "displayName": "Automatically grant permission to these sites to connect to USB devices with the given vendor and product IDs. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbaskforurls", + "displayName": "Allow WebUSB on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbaskforurls_webusbaskforurlsdesc", + "displayName": "Allow WebUSB on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbblockedforurls", + "displayName": "Block WebUSB on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~contentsettings_webusbblockedforurls_webusbblockedforurlsdesc", + "displayName": "Block WebUSB on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovideralternateurls", + "displayName": "List of alternate URLs for the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovideralternateurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovideralternateurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovideralternateurls_defaultsearchprovideralternateurlsdesc", + "displayName": "List of alternate URLs for the default search provider (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderenabled", + "displayName": "Enable the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderencodings", + "displayName": "Default search provider encodings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderencodings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderencodings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderencodings_defaultsearchproviderencodingsdesc", + "displayName": "Default search provider encodings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidericonurl", + "displayName": "Default search provider icon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidericonurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidericonurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidericonurl_defaultsearchprovidericonurl", + "displayName": "Default search provider icon (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurl", + "displayName": "Parameter providing search-by-image feature for the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurl_defaultsearchproviderimageurl", + "displayName": "Parameter providing search-by-image feature for the default search provider (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for image URL which uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderimageurlpostparams_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for image URL which uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderkeyword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderkeyword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchproviderkeyword_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidername", + "displayName": "Default search provider name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidername_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidername_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidername_defaultsearchprovidername", + "displayName": "Default search provider name (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidernewtaburl", + "displayName": "Default search provider new tab page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidernewtaburl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidernewtaburl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidernewtaburl_defaultsearchprovidernewtaburl", + "displayName": "Default search provider new tab page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurl_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurlpostparams", + "displayName": "Parameters for search URL which uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersearchurlpostparams_defaultsearchprovidersearchurlpostparams", + "displayName": "Parameters for search URL which uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturl", + "displayName": "Default search provider suggest URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturl_defaultsearchprovidersuggesturl", + "displayName": "Default search provider suggest URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturlpostparams", + "displayName": "Parameters for suggest URL which uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~defaultsearchprovider_defaultsearchprovidersuggesturlpostparams_defaultsearchprovidersuggesturlpostparams", + "displayName": "Parameters for suggest URL which uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authnegotiatedelegatewhitelist", + "displayName": "Kerberos delegation server whitelist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authnegotiatedelegatewhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authnegotiatedelegatewhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authnegotiatedelegatewhitelist_authnegotiatedelegatewhitelist", + "displayName": "Kerberos delegation server whitelist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authserverwhitelist", + "displayName": "Authentication server whitelist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authserverwhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authserverwhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_authserverwhitelist_authserverwhitelist", + "displayName": "Authentication server whitelist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autofillenabled", + "displayName": "Enable AutoFill (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autofillenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autofillenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autoplaywhitelist", + "displayName": "Allow media autoplay on a whitelist of URL patterns (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autoplaywhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autoplaywhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_autoplaywhitelist_autoplaywhitelistdesc", + "displayName": "Allow media autoplay on a whitelist of URL patterns (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting", + "displayName": "Default mediastream setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_defaultmediastreamsetting", + "displayName": "Default mediastream setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_defaultmediastreamsetting_2", + "displayName": "Do not allow any site to access the camera and microphone", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_defaultmediastreamsetting_defaultmediastreamsetting_3", + "displayName": "Ask every time a site wants to access the camera and/or microphone", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_developertoolsdisabled", + "displayName": "Disable Developer Tools (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_developertoolsdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_developertoolsdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_disabledschemes", + "displayName": "Disable URL protocol schemes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_disabledschemes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_disabledschemes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_disabledschemes_disabledschemesdesc", + "displayName": "List of disabled protocol schemes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallblacklist", + "displayName": "Configure extension installation blacklist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallblacklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallblacklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallblacklist_extensioninstallblacklistdesc", + "displayName": "Extension IDs the user should be prevented from installing (or * for all) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallwhitelist", + "displayName": "Configure extension installation whitelist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallwhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallwhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_extensioninstallwhitelist_extensioninstallwhitelistdesc", + "displayName": "Extension IDs to exempt from the blacklist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcebrowsersignin", + "displayName": "Enable force sign in for Google Chrome (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcebrowsersignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcebrowsersignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcesafesearch", + "displayName": "Force SafeSearch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcesafesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forcesafesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forceyoutubesafetymode", + "displayName": "Force YouTube Safety Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forceyoutubesafetymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_forceyoutubesafetymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_incognitoenabled", + "displayName": "Enable Incognito mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_incognitoenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_incognitoenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_javascriptenabled", + "displayName": "Enable JavaScript (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_javascriptenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_javascriptenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingblacklist", + "displayName": "Configure native messaging blocklist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingblacklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingblacklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingblacklist_nativemessagingblacklistdesc", + "displayName": "Names of the forbidden native messaging hosts (or * for all) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingwhitelist", + "displayName": "Configure native messaging whitelist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingwhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingwhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativemessagingwhitelist_nativemessagingwhitelistdesc", + "displayName": "Names of the native messaging hosts to exempt from the blocklist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativewindowocclusionenabled", + "displayName": "Enable Native Window Occlusion (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativewindowocclusionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_nativewindowocclusionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxybypasslist", + "displayName": "Proxy bypass rules (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxybypasslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxybypasslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxybypasslist_proxybypasslist", + "displayName": "Comma-separated list of proxy bypass rules (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode", + "displayName": "Choose how to specify proxy server settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode", + "displayName": "Choose how to specify proxy server settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_direct", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_auto_detect", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_pac_script", + "displayName": "Use a .pac proxy script", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_fixed_servers", + "displayName": "Use fixed proxy servers", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxymode_proxymode_system", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxypacurl", + "displayName": "URL to a proxy .pac file (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxypacurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxypacurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxypacurl_proxypacurl", + "displayName": "URL to a proxy .pac file (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyserver", + "displayName": "Address or URL of proxy server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyserver_proxyserver", + "displayName": "Address or URL of proxy server (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode", + "displayName": "Choose how to specify proxy server settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode", + "displayName": "Choose how to specify proxy server settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode_0", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode_1", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode_2", + "displayName": "Manually specify proxy settings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_proxyservermode_proxyservermode_3", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostclientdomain", + "displayName": "Configure the required domain name for remote access clients (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostclientdomain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostclientdomain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostclientdomain_remoteaccesshostclientdomain", + "displayName": "Configure the required domain name for remote access clients (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostdomain", + "displayName": "Configure the required domain name for remote access hosts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostdomain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostdomain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_remoteaccesshostdomain_remoteaccesshostdomain", + "displayName": "Configure the required domain name for remote access hosts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingenabled", + "displayName": "Enable Safe Browsing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingwhitelistdomains", + "displayName": "Configure the list of domains on which Safe Browsing will not trigger warnings. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingwhitelistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingwhitelistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_safebrowsingwhitelistdomains_safebrowsingwhitelistdomainsdesc", + "displayName": "Configure the list of domains on which Safe Browsing will not trigger warnings. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_signinallowed", + "displayName": "Allow sign in to Google Chrome (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_signinallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_signinallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_spellchecklanguageblacklist", + "displayName": "Force disable spellcheck languages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_spellchecklanguageblacklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_spellchecklanguageblacklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_spellchecklanguageblacklist_spellchecklanguageblacklistdesc", + "displayName": "Force disable spellcheck languages (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_strictermixedcontenttreatmentenabled", + "displayName": "Enable stricter treatment for mixed content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_strictermixedcontenttreatmentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_strictermixedcontenttreatmentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_unsafelytreatinsecureoriginassecure", + "displayName": "Origins or hostname patterns for which restrictions on\r\ninsecure origins should not apply (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_unsafelytreatinsecureoriginassecure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_unsafelytreatinsecureoriginassecure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_unsafelytreatinsecureoriginassecure_unsafelytreatinsecureoriginassecuredesc", + "displayName": "Origins or hostname patterns for which restrictions on\r\ninsecure origins should not apply (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlblacklist", + "displayName": "Block access to a list of URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlblacklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlblacklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlblacklist_urlblacklistdesc", + "displayName": "Block access to a list of URLs (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlwhitelist", + "displayName": "Allow access to a list of URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlwhitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlwhitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~deprecatedpolicies_urlwhitelist_urlwhitelistdesc", + "displayName": "Allow access to a list of URLs (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_blockexternalextensions", + "displayName": "Blocks external extensions from being installed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_blockexternalextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_blockexternalextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionallowedtypes", + "displayName": "Configure allowed app/extension types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionallowedtypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionallowedtypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionallowedtypes_extensionallowedtypesdesc", + "displayName": "Types of extensions/apps that are allowed to be installed (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallallowlist", + "displayName": "Configure extension installation allow list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallallowlist_extensioninstallallowlistdesc", + "displayName": "Extension IDs to exempt from the blocklist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallblocklist", + "displayName": "Configure extension installation blocklist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallblocklist_extensioninstallblocklistdesc", + "displayName": "Extension IDs the user should be prevented from installing (or * for all) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallforcelist", + "displayName": "Configure the list of force-installed apps and extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallforcelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallforcelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallforcelist_extensioninstallforcelistdesc", + "displayName": "Extension/App IDs and update URLs to be silently installed (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallsources", + "displayName": "Configure extension, app, and user script install sources (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallsources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallsources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensioninstallsources_extensioninstallsourcesdesc", + "displayName": "URL patterns to allow extension, app, and user script installs from (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionsettings", + "displayName": "Extension management settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~extensions_extensionsettings_extensionsettings", + "displayName": "Extension management settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_enablemediarouter", + "displayName": "Enable Google Cast (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_enablemediarouter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_enablemediarouter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_showcasticonintoolbar", + "displayName": "Show the Google Cast toolbar icon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_showcasticonintoolbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~googlecast_showcasticonintoolbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_allowcrossoriginauthprompt", + "displayName": "Cross-origin HTTP Authentication prompts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_allowcrossoriginauthprompt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_allowcrossoriginauthprompt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authnegotiatedelegateallowlist", + "displayName": "Kerberos delegation server allowlist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authnegotiatedelegateallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authnegotiatedelegateallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authnegotiatedelegateallowlist_authnegotiatedelegateallowlist", + "displayName": "Kerberos delegation server allowlist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authschemes", + "displayName": "Supported authentication schemes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authschemes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authschemes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authschemes_authschemes", + "displayName": "Supported authentication schemes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authserverallowlist", + "displayName": "Authentication server allowlist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authserverallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authserverallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_authserverallowlist_authserverallowlist", + "displayName": "Authentication server allowlist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_basicauthoverhttpenabled", + "displayName": "Allow Basic authentication for HTTP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_basicauthoverhttpenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_basicauthoverhttpenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_disableauthnegotiatecnamelookup", + "displayName": "Disable CNAME lookup when negotiating Kerberos authentication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_disableauthnegotiatecnamelookup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_disableauthnegotiatecnamelookup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_enableauthnegotiateport", + "displayName": "Include non-standard port in Kerberos SPN (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_enableauthnegotiateport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~httpauthentication_enableauthnegotiateport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingallowlist", + "displayName": "Configure native messaging allowlist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingallowlist_nativemessagingallowlistdesc", + "displayName": "Names of the native messaging hosts to exempt from the blocklist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingblocklist", + "displayName": "Configure native messaging blocklist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessagingblocklist_nativemessagingblocklistdesc", + "displayName": "Names of the forbidden native messaging hosts (or * for all) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessaginguserlevelhosts", + "displayName": "Allow user-level Native Messaging hosts (installed without admin permissions) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessaginguserlevelhosts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~nativemessaging_nativemessaginguserlevelhosts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~other_promptonmultiplematchingcertificates", + "displayName": "Prompt for the client certificate when multiple certificates match. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~other_promptonmultiplematchingcertificates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~other_promptonmultiplematchingcertificates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordleakdetectionenabled", + "displayName": "Enable leak detection for entered credentials (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordleakdetectionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordleakdetectionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordmanagerenabled", + "displayName": "Enable saving passwords to the password manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordmanagerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~passwordmanager_passwordmanagerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintproxyenabled", + "displayName": "Enable Google Cloud Print proxy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintproxyenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintproxyenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintsubmitenabled", + "displayName": "Enable submission of documents to Google Cloud Print (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintsubmitenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_cloudprintsubmitenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_defaultprinterselection", + "displayName": "Default printer selection rules (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_defaultprinterselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_defaultprinterselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_defaultprinterselection_defaultprinterselection", + "displayName": "Default printer selection rules (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_disableprintpreview", + "displayName": "Disable Print Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_disableprintpreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_disableprintpreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printertypedenylist", + "displayName": "Disable printer types on the deny list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printertypedenylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printertypedenylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printertypedenylist_printertypedenylistdesc", + "displayName": "Disable printer types on the deny list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printheaderfooter", + "displayName": "Print Headers and Footers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printheaderfooter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printheaderfooter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_any", + "displayName": "Allow printing both with and without background graphics", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_enabled", + "displayName": "Allow printing only with background graphics", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_disabled", + "displayName": "Allow printing only without background graphics", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault_enabled", + "displayName": "Enable background graphics printing mode by default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault_disabled", + "displayName": "Disable background graphics printing mode by default", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingenabled", + "displayName": "Enable printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingpapersizedefault", + "displayName": "Default printing page size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingpapersizedefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingpapersizedefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printingpapersizedefault_printingpapersizedefault", + "displayName": "Default printing page size (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpdfasimageavailability", + "displayName": "Print PDF as Image Available (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpdfasimageavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpdfasimageavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode", + "displayName": "Print PostScript Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_printpostscriptmode", + "displayName": "Print PostScript Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_printpostscriptmode_0", + "displayName": "Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpostscriptmode_printpostscriptmode_1", + "displayName": "Type42", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpreviewusesystemdefaultprinter", + "displayName": "Use System Default Printer as Default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpreviewusesystemdefaultprinter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printpreviewusesystemdefaultprinter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode", + "displayName": "Print Rasterization Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_printrasterizationmode", + "displayName": "Print Rasterization Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_printrasterizationmode_0", + "displayName": "Full", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizationmode_printrasterizationmode_1", + "displayName": "Fast", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizepdfdpi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizepdfdpi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~printing_printrasterizepdfdpi_printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowclientpairing", + "displayName": "Enable or disable PIN-less authentication for remote access hosts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowclientpairing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowclientpairing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowfiletransfer", + "displayName": "Allow remote access users to transfer files to/from the host (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowfiletransfer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowfiletransfer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowrelayedconnection", + "displayName": "Enable the use of relay servers by the remote access host (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowrelayedconnection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowrelayedconnection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremoteaccessconnections", + "displayName": "Allow remote access connections to this machine (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremoteaccessconnections_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremoteaccessconnections_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremotesupportconnections", + "displayName": "Allow remote support connections to this machine (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremotesupportconnections_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowremotesupportconnections_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowuiaccessforremoteassistance", + "displayName": "Allow remote users to interact with elevated windows in remote assistance sessions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowuiaccessforremoteassistance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostallowuiaccessforremoteassistance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclientdomainlist", + "displayName": "Configure the required domain names for remote access clients (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclientdomainlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclientdomainlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclientdomainlist_remoteaccesshostclientdomainlistdesc", + "displayName": "Configure the required domain names for remote access clients (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclipboardsizebytes", + "displayName": "The maximum size, in bytes, that can be transferred between client and host via clipboard synchronization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclipboardsizebytes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclipboardsizebytes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostclipboardsizebytes_remoteaccesshostclipboardsizebytes", + "displayName": "The maximum size, in bytes, that can be transferred between client and host via clipboard synchronization: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostdomainlist", + "displayName": "Configure the required domain names for remote access hosts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostdomainlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostdomainlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostdomainlist_remoteaccesshostdomainlistdesc", + "displayName": "Configure the required domain names for remote access hosts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostfirewalltraversal", + "displayName": "Enable firewall traversal from remote access host (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostfirewalltraversal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostfirewalltraversal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostmaximumsessiondurationminutes", + "displayName": "Maximum session duration allowed for remote access connections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostmaximumsessiondurationminutes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostmaximumsessiondurationminutes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostmaximumsessiondurationminutes_remoteaccesshostmaximumsessiondurationminutes", + "displayName": "Maximum session duration allowed for remote access connections: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostrequirecurtain", + "displayName": "Enable curtaining of remote access hosts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostrequirecurtain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostrequirecurtain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostudpportrange", + "displayName": "Restrict the UDP port range used by the remote access host (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostudpportrange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostudpportrange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~remoteaccess_remoteaccesshostudpportrange_remoteaccesshostudpportrange", + "displayName": "Restrict the UDP port range used by the remote access host (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_additionallaunchparameters", + "displayName": "Additional command line parameters for Google Chrome (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_additionallaunchparameters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_additionallaunchparameters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_additionallaunchparameters_additionallaunchparameters", + "displayName": "Additional command line parameters for Google Chrome (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_advancedprotectiondeepscanningenabled", + "displayName": "Enable sending downloads to Google for deep scanning for users enrolled in the Advanced Protection program (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_advancedprotectiondeepscanningenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_advancedprotectiondeepscanningenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowoutdatedplugins", + "displayName": "Allow running plugins that are outdated (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowoutdatedplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowoutdatedplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowpopupsduringpageunload", + "displayName": "Allows a page to show popups during its unloading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowpopupsduringpageunload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_allowpopupsduringpageunload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_alwaysauthorizeplugins", + "displayName": "Always runs plugins that require authorization (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_alwaysauthorizeplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_alwaysauthorizeplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_appcacheforceenabled", + "displayName": "Allows the AppCache feature to be re-enabled even if it is off by default. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_appcacheforceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_appcacheforceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframecontenttypes", + "displayName": "Allow Google Chrome Frame to handle the listed content types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframecontenttypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframecontenttypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframecontenttypes_chromeframecontenttypesdesc", + "displayName": "Allow Google Chrome Frame to handle the listed content types (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings", + "displayName": "Default HTML renderer for Google Chrome Frame (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_chromeframerenderersettings", + "displayName": "Default HTML renderer for Google Chrome Frame (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_chromeframerenderersettings_0", + "displayName": "Use the host browser by default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_chromeframerenderersettings_chromeframerenderersettings_1", + "displayName": "Use Google Chrome Frame by default", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_clearsitedataonexit", + "displayName": "Clear site data on browser shutdown (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_clearsitedataonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_clearsitedataonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_cloudprintwarningssuppressed", + "displayName": "Suppress Google Cloud Print deprecation messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_cloudprintwarningssuppressed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_cloudprintwarningssuppressed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corslegacymodeenabled", + "displayName": "Use the legacy CORS implementation rather than new CORS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corslegacymodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corslegacymodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corsmitigationlist", + "displayName": "Enable CORS check mitigations in the new CORS implementation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corsmitigationlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corsmitigationlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_corsmitigationlist_corsmitigationlistdesc", + "displayName": "Enable CORS check mitigations in the new CORS implementation (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting", + "displayName": "Control use of the File Handling API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_defaultfilehandlingguardsetting", + "displayName": "Control use of the File Handling API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_defaultfilehandlingguardsetting_2", + "displayName": "Do not allow any web app to access file types via the File Handling API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultfilehandlingguardsetting_defaultfilehandlingguardsetting_3", + "displayName": "Allow web apps to ask the user to grant access to file types via the File Handling API", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting", + "displayName": "Default key generation setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_defaultkeygensetting", + "displayName": "Default key generation setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_defaultkeygensetting_1", + "displayName": "Allow all sites to use key generation", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultkeygensetting_defaultkeygensetting_2", + "displayName": "Do not allow any site to use key generation", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting", + "displayName": "Default Flash setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_defaultpluginssetting", + "displayName": "Default Flash setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_defaultpluginssetting_1", + "displayName": "Allow all sites to automatically run the Flash plugin", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_defaultpluginssetting_2", + "displayName": "Block the Flash plugin", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultpluginssetting_defaultpluginssetting_3", + "displayName": "Click to play", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturl", + "displayName": "Default search provider instant URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturl_defaultsearchproviderinstanturl", + "displayName": "Default search provider instant URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturlpostparams", + "displayName": "Parameters for instant URL which uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchproviderinstanturlpostparams_defaultsearchproviderinstanturlpostparams", + "displayName": "Parameters for instant URL which uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchprovidersearchtermsreplacementkey", + "displayName": "Parameter controlling search term placement for the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchprovidersearchtermsreplacementkey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchprovidersearchtermsreplacementkey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_defaultsearchprovidersearchtermsreplacementkey_defaultsearchprovidersearchtermsreplacementkey", + "displayName": "Parameter controlling search term placement for the default search provider (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dheenabled", + "displayName": "Enable DHE cipher suites in TLS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dheenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dheenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledplugins", + "displayName": "Specify a list of disabled plugins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledplugins_disabledpluginsdesc", + "displayName": "List of disabled plugins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledpluginsexceptions", + "displayName": "Specify a list of plugins that the user can enable or disable (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledpluginsexceptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledpluginsexceptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disabledpluginsexceptions_disabledpluginsexceptionsdesc", + "displayName": "List of exceptions to the list of disabled plugins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablepluginfinder", + "displayName": "Specify whether the plugin finder should be disabled (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablepluginfinder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablepluginfinder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablespdy", + "displayName": "Disable SPDY protocol (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablespdy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablespdy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablesslrecordsplitting", + "displayName": "Disable TLS False Start (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablesslrecordsplitting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_disablesslrecordsplitting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dnsprefetchingenabled", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dnsprefetchingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_dnsprefetchingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablecommonnamefallbackforlocalanchors", + "displayName": "Allow certificates issued by local trust anchors without subjectAlternativeName extension (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablecommonnamefallbackforlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablecommonnamefallbackforlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedprivetprinting", + "displayName": "Enable deprecated privet printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedprivetprinting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedprivetprinting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebbasedsignin", + "displayName": "Enable the old web-based signin flow (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebbasedsignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebbasedsignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebplatformfeatures", + "displayName": "Enable deprecated web platform features for a limited time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebplatformfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebplatformfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledeprecatedwebplatformfeatures_enabledeprecatedwebplatformfeaturesdesc", + "displayName": "Enable deprecated web platform features for a limited time (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledplugins", + "displayName": "Specify a list of enabled plugins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enabledplugins_enabledpluginsdesc", + "displayName": "List of enabled plugins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesha1forlocalanchors", + "displayName": "Allow SHA-1 signed certificates issued by local trust anchors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesha1forlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesha1forlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesymanteclegacyinfrastructure", + "displayName": "Enable trust in Symantec Corporation's Legacy PKI Infrastructure (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesymanteclegacyinfrastructure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enablesymanteclegacyinfrastructure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstorename", + "displayName": "Enterprise web store name (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstorename_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstorename_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstorename_enterprisewebstorename", + "displayName": "Enterprise web store name (deprecated) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstoreurl", + "displayName": "Enterprise web store URL (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstoreurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstoreurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_enterprisewebstoreurl_enterprisewebstoreurl", + "displayName": "Enterprise web store URL (deprecated) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_extensionallowinsecureupdates", + "displayName": "Allow insecure algorithms in integrity checks on extension updates and installs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_extensionallowinsecureupdates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_extensionallowinsecureupdates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingallowedforurls", + "displayName": "Allow the File Handling API on these web apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingallowedforurls_filehandlingallowedforurlsdesc", + "displayName": "Allow the File Handling API on these web apps (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingblockedforurls", + "displayName": "Block the File Handling API on these web apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_filehandlingblockedforurls_filehandlingblockedforurlsdesc", + "displayName": "Block the File Handling API on these web apps (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcelegacydefaultreferrerpolicy", + "displayName": "Use a default referrer policy of no-referrer-when-downgrade. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcelegacydefaultreferrerpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcelegacydefaultreferrerpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcenetworkinprocess", + "displayName": "Force networking code to run in the browser process (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcenetworkinprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_forcenetworkinprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_gcfuserdatadir", + "displayName": "Set Google Chrome Frame user data directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_gcfuserdatadir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_gcfuserdatadir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_gcfuserdatadir_gcfuserdatadir", + "displayName": "Set user data directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_hidewebstorepromo", + "displayName": "Prevent app promotions from appearing on the new tab page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_hidewebstorepromo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_hidewebstorepromo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_http09onnondefaultportsenabled", + "displayName": "Enable HTTP/0.9 support on non-default ports (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_http09onnondefaultportsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_http09onnondefaultportsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_instantenabled", + "displayName": "Enable Instant (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_instantenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_instantenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenallowedforurls", + "displayName": "Allow key generation on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenallowedforurls_keygenallowedforurlsdesc", + "displayName": "Allow key generation on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenblockedforurls", + "displayName": "Block key generation on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_keygenblockedforurls_keygenblockedforurlsdesc", + "displayName": "Block key generation on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled", + "displayName": "Default legacy SameSite cookie behavior setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled", + "displayName": "Default legacy SameSite cookie behavior setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled_1", + "displayName": "Revert to legacy SameSite behavior for cookies on all sites", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled_2", + "displayName": "Use SameSite-by-default behavior for cookies on all sites", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_localdiscoveryenabled", + "displayName": "Enable chrome://devices (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_localdiscoveryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_localdiscoveryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_machinelevelusercloudpolicyenrollmenttoken", + "displayName": "The enrollment token of cloud policy on desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_machinelevelusercloudpolicyenrollmenttoken_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_machinelevelusercloudpolicyenrollmenttoken_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_machinelevelusercloudpolicyenrollmenttoken_machinelevelusercloudpolicyenrollmenttoken", + "displayName": "The enrollment token of cloud policy on desktop (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_mediacachesize", + "displayName": "Set media disk cache size in bytes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_mediacachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_mediacachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_mediacachesize_mediacachesize", + "displayName": "Set media disk cache size: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pachttpsurlstrippingenabled", + "displayName": "Enable PAC URL stripping (for https://) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pachttpsurlstrippingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pachttpsurlstrippingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_passwordmanagerallowshowpasswords", + "displayName": "Allow users to show passwords in Password Manager (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_passwordmanagerallowshowpasswords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_passwordmanagerallowshowpasswords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsallowedforurls", + "displayName": "Allow the Flash plugin on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsallowedforurls_pluginsallowedforurlsdesc", + "displayName": "Allow the Flash plugin on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsblockedforurls", + "displayName": "Block the Flash plugin on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_pluginsblockedforurls_pluginsblockedforurlsdesc", + "displayName": "Block the Flash plugin on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_rc4enabled", + "displayName": "Enable RC4 cipher suites in TLS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_rc4enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_rc4enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccessclientfirewalltraversal", + "displayName": "Enable firewall traversal from remote access client (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccessclientfirewalltraversal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccessclientfirewalltraversal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostdebugoverridepolicies", + "displayName": "Policy overrides for Debug builds of the remote access host (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostdebugoverridepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostdebugoverridepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostdebugoverridepolicies_remoteaccesshostdebugoverridepolicies", + "displayName": "Policy overrides for Debug builds of the remote access host (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostrequiretwofactor", + "displayName": "Enable two-factor authentication for remote access hosts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostrequiretwofactor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshostrequiretwofactor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshosttalkgadgetprefix", + "displayName": "Configure the TalkGadget prefix for remote access hosts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshosttalkgadgetprefix_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshosttalkgadgetprefix_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_remoteaccesshosttalkgadgetprefix_remoteaccesshosttalkgadgetprefix", + "displayName": "Configure the TalkGadget prefix for remote access hosts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinchromeframelist", + "displayName": "Always render the following URL patterns in Google Chrome Frame (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinchromeframelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinchromeframelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinchromeframelist_renderinchromeframelistdesc", + "displayName": "Always render the following URL patterns in Google Chrome Frame (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinhostlist", + "displayName": "Always render the following URL patterns in the host browser (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinhostlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinhostlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_renderinhostlist_renderinhostlistdesc", + "displayName": "Always render the following URL patterns in the host browser (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_runallflashinallowmode", + "displayName": "Extend Flash content setting to all content (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_runallflashinallowmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_runallflashinallowmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_safebrowsingextendedreportingoptinallowed", + "displayName": "Allow users to opt in to Safe Browsing extended reporting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_safebrowsingextendedreportingoptinallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_safebrowsingextendedreportingoptinallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_skipmetadatacheck", + "displayName": "Skip the meta tag check in Google Chrome Frame (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_skipmetadatacheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_skipmetadatacheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin", + "displayName": "Minimum TLS version to fallback to (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_sslversionfallbackmin", + "displayName": "Minimum TLS version to fallback to (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_sslversionfallbackmin_tls1.1", + "displayName": "TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionfallbackmin_sslversionfallbackmin_tls1.2", + "displayName": "TLS 1.2", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax", + "displayName": "Maximum SSL version enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_sslversionmax", + "displayName": "Maximum SSL version enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_sslversionmax_tls1.2", + "displayName": "TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_sslversionmax_sslversionmax_tls1.3", + "displayName": "TLS 1.3", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_supervisedusercreationenabled", + "displayName": "Enable creation of supervised users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_supervisedusercreationenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_supervisedusercreationenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_suppresschromeframeturndownprompt", + "displayName": "Suppress the Google Chrome Frame turndown prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_suppresschromeframeturndownprompt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_suppresschromeframeturndownprompt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabfreezingenabled", + "displayName": "Allow background tabs freeze (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabfreezingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabfreezingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabunderallowed", + "displayName": "Allow sites to simultaneously navigate and open pop-ups (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabunderallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tabunderallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tls13hardeningforlocalanchorsenabled", + "displayName": "Enable a TLS 1.3 security feature for local trust anchors. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tls13hardeningforlocalanchorsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tls13hardeningforlocalanchorsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tripledesenabled", + "displayName": "Enable 3DES cipher suites in TLS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tripledesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_tripledesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_uselegacyformcontrols", + "displayName": "Use Legacy Form Controls until M84. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_uselegacyformcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_uselegacyformcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_useragentclienthintsenabled", + "displayName": "Control the User-Agent Client Hints feature. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_useragentclienthintsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_useragentclienthintsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webcomponentsv0enabled", + "displayName": "Re-enable Web Components v0 API until M84. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webcomponentsv0enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webcomponentsv0enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webdriveroverridesincompatiblepolicies", + "displayName": "Allow WebDriver to Override Incompatible Policies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webdriveroverridesincompatiblepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_webdriveroverridesincompatiblepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_welcomepageonosupgradeenabled", + "displayName": "Enable showing the welcome page on the first browser launch following OS upgrade (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_welcomepageonosupgradeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~removedpolicies_welcomepageonosupgradeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionchangepasswordurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionchangepasswordurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionchangepasswordurl_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionloginurls", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture salted hashes of passwords. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionloginurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionloginurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionloginurls_passwordprotectionloginurlsdesc", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture salted hashes of passwords. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger", + "displayName": "Password protection warning trigger (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger", + "displayName": "Password protection warning trigger (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_0", + "displayName": "Password protection warning is off", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_1", + "displayName": "Password protection warning is triggered by password reuse", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_2", + "displayName": "Password protection warning is triggered by password reuse on phishing page", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingallowlistdomains", + "displayName": "Configure the list of domains on which Safe Browsing will not trigger warnings. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingallowlistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingallowlistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingallowlistdomains_safebrowsingallowlistdomainsdesc", + "displayName": "Configure the list of domains on which Safe Browsing will not trigger warnings. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingextendedreportingenabled", + "displayName": "Enable Safe Browsing Extended Reporting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingextendedreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingextendedreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel", + "displayName": "Safe Browsing Protection Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_safebrowsingprotectionlevel", + "displayName": "Safe Browsing Protection Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_safebrowsingprotectionlevel_0", + "displayName": "Safe Browsing is never active.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_safebrowsingprotectionlevel_1", + "displayName": "Safe Browsing is active in the standard mode.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~safebrowsing_safebrowsingprotectionlevel_safebrowsingprotectionlevel_2", + "displayName": "Safe Browsing is active in the enhanced mode. This mode provides better security, but requires sharing more browsing information with Google.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_sameorigintabcaptureallowedbyorigins", + "displayName": "Allow Same Origin Tab capture by these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_sameorigintabcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_sameorigintabcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_sameorigintabcaptureallowedbyorigins_sameorigintabcaptureallowedbyoriginsdesc", + "displayName": "Allow Same Origin Tab capture by these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowed", + "displayName": "Allow or deny screen capture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowedbyorigins", + "displayName": "Allow Desktop, Window, and Tab capture by these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_screencaptureallowedbyorigins_screencaptureallowedbyoriginsdesc", + "displayName": "Allow Desktop, Window, and Tab capture by these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_tabcaptureallowedbyorigins", + "displayName": "Allow Tab capture by these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_tabcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_tabcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_tabcaptureallowedbyorigins_tabcaptureallowedbyoriginsdesc", + "displayName": "Allow Tab capture by these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_windowcaptureallowedbyorigins", + "displayName": "Allow Window and Tab capture by these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_windowcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_windowcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~screencapture_windowcaptureallowedbyorigins_windowcaptureallowedbyoriginsdesc", + "displayName": "Allow Window and Tab capture by these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepageisnewtabpage", + "displayName": "Use New Tab Page as homepage (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepageisnewtabpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepageisnewtabpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepagelocation", + "displayName": "Configure the home page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepagelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepagelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_homepagelocation_homepagelocation", + "displayName": "Home page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_newtabpagelocation", + "displayName": "Configure the New Tab page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_newtabpagelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_newtabpagelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_newtabpagelocation_newtabpagelocation", + "displayName": "New Tab page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup", + "displayName": "Action on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_restoreonstartup", + "displayName": "Action on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_restoreonstartup_5", + "displayName": "Open New Tab Page", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartup_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartupurls", + "displayName": "URLs to open on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartupurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartupurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_restoreonstartupurls_restoreonstartupurlsdesc", + "displayName": "URLs to open on startup (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_showhomebutton", + "displayName": "Show Home button on toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_showhomebutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_chromeintunev1~policy~googlechrome~startup_showhomebutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_credentialsui_disablepasswordreveal", + "displayName": "Do not display the password reveal button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_credentialsui_disablepasswordreveal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_credentialsui_disablepasswordreveal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_desktop_preventuserredirectionofprofilefolders", + "displayName": "Prohibit User from manually redirecting Profile Folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_desktop_preventuserredirectionofprofilefolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_desktop_preventuserredirectionofprofilefolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_display_enableperprocessdpi", + "displayName": "Enable Per Process Dpi (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_display_enableperprocessdpi_0", + "displayName": "Disabled", + "description": "Disable." + }, + { + "id": "user_vendor_msft_policy_config_display_enableperprocessdpi_1", + "displayName": "Enabled", + "description": "Enable." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_education_allowgraphingcalculator", + "displayName": "Allow Graphing Calculator (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_education_allowgraphingcalculator_0", + "displayName": "Block", + "description": "Disabled." + }, + { + "id": "user_vendor_msft_policy_config_education_allowgraphingcalculator_1", + "displayName": "Allow", + "description": "Enabled." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_education_defaultprintername", + "displayName": "Default Printer Name (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_education_preventaddingnewprinters", + "displayName": "Prevent Adding New Printers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_education_preventaddingnewprinters_0", + "displayName": "Disabled", + "description": "Allow user installation." + }, + { + "id": "user_vendor_msft_policy_config_education_preventaddingnewprinters_1", + "displayName": "Enabled", + "description": "Prevent user installation." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_education_printernames", + "displayName": "Printer Names (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_enterprisecloudprint_cloudprinterdiscoveryendpoint", + "displayName": "Cloud Printer Discovery End Point (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_enterprisecloudprint_cloudprintoauthauthority", + "displayName": "Cloud Print OAuth Authority (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_enterprisecloudprint_cloudprintoauthclientid", + "displayName": "Cloud Print OAuth Client Id (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_enterprisecloudprint_cloudprintresourceid", + "displayName": "Cloud Print Resource Id (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_enterprisecloudprint_mopriadiscoveryresourceid", + "displayName": "Mopria Discovery Resource Id (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_customizableerrormessages_l_listoferrormessagestocustomize", + "displayName": "List of error messages to customize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_customizableerrormessages_l_listoferrormessagestocustomize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_customizableerrormessages_l_listoferrormessagestocustomize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize87", + "displayName": "List of error messages to customize (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize87_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize87_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_datarecovery_l_donotshowdataextractionoptionswhenopeningcorruptworkbooks", + "displayName": "Do not show data extraction options when opening corrupt workbooks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_datarecovery_l_donotshowdataextractionoptionswhenopeningcorruptworkbooks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_datarecovery_l_donotshowdataextractionoptionswhenopeningcorruptworkbooks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems165", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems165_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems165_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems165_l_enteracommandbaridtodisable", + "displayName": "Enter a command bar ID to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys166", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys166_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys166_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys166_l_enterakeyandmodifiertodisable", + "displayName": "Enter a key and modifier to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodemacros", + "displayName": "Developer tab | Code | Macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodemacros_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodemacros_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodemacrosecurity", + "displayName": "Developer tab | Code | Macro Security (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodemacrosecurity_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodemacrosecurity_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercoderecordmacro", + "displayName": "Developer tab | Code | Record Macro (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercoderecordmacro_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercoderecordmacro_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodevisualbasic", + "displayName": "Developer tab | Code | Visual Basic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodevisualbasic_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_developercodevisualbasic_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_insertlinkshyperlink", + "displayName": "Insert tab | Links | Hyperlink (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_insertlinkshyperlink_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_insertlinkshyperlink_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonexceloptionscustomizationmailrecipient", + "displayName": "File tab | Share | Email (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonexceloptionscustomizationmailrecipient_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonexceloptionscustomizationmailrecipient_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonexceloptionscustomizedocumentlocation", + "displayName": "File tab | Options | Customize Ribbon | All Commands | Document Location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonexceloptionscustomizedocumentlocation_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonexceloptionscustomizedocumentlocation_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonxceloptionscustomizationcombinedpreviewwebpagepreview", + "displayName": "File tab | Options | Customize Ribbon | All Commands | Web Page Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonxceloptionscustomizationcombinedpreviewwebpagepreview_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_officebuttonxceloptionscustomizationcombinedpreviewwebpagepreview_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectsharing", + "displayName": "Review tab | Changes | Protect and Share Workbook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectsharing_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectsharing_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectsheet", + "displayName": "Review tab | Changes | Protect Sheet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectsheet_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectsheet_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectworkbook", + "displayName": "Review tab | Changes | Protect Workbook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectworkbook_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_reviewchangesprotectworkbook_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_viewmacrosmacros", + "displayName": "View tab | Macros | Macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_viewmacrosmacros_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_viewmacrosmacros_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros", + "displayName": "Alt+F8 (Developer | Code | Macros) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altlvdevelopercodevisualbasic", + "displayName": "Alt+F11 (Developer | Code | Visual Basic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altlvdevelopercodevisualbasic_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altlvdevelopercodevisualbasic_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlfhomeeditingfind", + "displayName": "Ctrl+F (Home | Editing | Find & Select | Find) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlfhomeeditingfind_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlfhomeeditingfind_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinsertlinkshyperlinks", + "displayName": "Ctrl+K (Insert | Links | Hyperlink) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinsertlinkshyperlinks_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinsertlinkshyperlinks_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_alertbeforeoverwritingcells", + "displayName": "Alert before overwriting cells (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_alertbeforeoverwritingcells_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_alertbeforeoverwritingcells_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_alternatestartupfilelocation", + "displayName": "Alternate startup file location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_alternatestartupfilelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_alternatestartupfilelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_alternatestartupfilelocation_l_alternatestartupfilelocation86", + "displayName": "Alternate startup file location (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_asktoupdateautomaticlinks", + "displayName": "Ask to update automatic links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_asktoupdateautomaticlinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_asktoupdateautomaticlinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_automaticallyflashfill", + "displayName": "Automatically Flash Fill (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_automaticallyflashfill_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_automaticallyflashfill_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_automaticallyinsertadecimalpoint", + "displayName": "Automatically insert a decimal point (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_automaticallyinsertadecimalpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_automaticallyinsertadecimalpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_chartreftrackingenabled", + "displayName": "Allow formatting and labels to track data points (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_chartreftrackingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_chartreftrackingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_comments", + "displayName": "Comments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_comments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_comments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_comments_l_comments85", + "displayName": "Comments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_comments_l_comments85_0", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_comments_l_comments85_1", + "displayName": "Comment indicator only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_comments_l_comments85_2", + "displayName": "Comment & indicator", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cursormovement", + "displayName": "Cursor movement (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cursormovement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cursormovement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cursormovement_l_cursormovement82", + "displayName": "Cursor movement (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cursormovement_l_cursormovement82_0", + "displayName": "Logical", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cursormovement_l_cursormovement82_1", + "displayName": "Visual", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cutandcopyobjectswithcells", + "displayName": "Cut and copy objects with cells (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cutandcopyobjectswithcells_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_cutandcopyobjectswithcells_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_defaultdirection", + "displayName": "Default sheet direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_defaultdirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_defaultdirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_defaultdirection_l_defaultdirection81", + "displayName": "Default sheet direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_defaultdirection_l_defaultdirection81_1", + "displayName": "Right-to-Left", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_defaultdirection_l_defaultdirection81_0", + "displayName": "Left-to-Right", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_editdirectlyincell", + "displayName": "Edit directly in cell (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_editdirectlyincell_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_editdirectlyincell_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enableautocompleteforcellvalues", + "displayName": "Enable AutoComplete for cell values (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enableautocompleteforcellvalues_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enableautocompleteforcellvalues_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enableautomaticpercententry", + "displayName": "Enable automatic percent entry (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enableautomaticpercententry_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enableautomaticpercententry_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enablefillhandleandcelldraganddrop", + "displayName": "Enable fill handle and cell drag-and-drop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enablefillhandleandcelldraganddrop_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_enablefillhandleandcelldraganddrop_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_extenddatarangeformatsandformulas", + "displayName": "Extend data range formats and formulas (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_extenddatarangeformatsandformulas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_extenddatarangeformatsandformulas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_functiontooltips", + "displayName": "Function tooltips (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_functiontooltips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_functiontooltips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_ignoreotherapplications", + "displayName": "Ignore other applications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_ignoreotherapplications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_ignoreotherapplications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_microsoftexcelmenuorhelpkey", + "displayName": "Microsoft Excel menu or Help key (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_microsoftexcelmenuorhelpkey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_microsoftexcelmenuorhelpkey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_microsoftexcelmenuorhelpkey_l_helpkey", + "displayName": "Enter ASCII value (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenter", + "displayName": "Move selection after Enter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenterdirection", + "displayName": "Move selection after Enter direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenterdirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenterdirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenterdirection_l_moveselectionafterenterdirection84", + "displayName": "Move selection after Enter direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenterdirection_l_moveselectionafterenterdirection84_0", + "displayName": "Down", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenterdirection_l_moveselectionafterenterdirection84_1", + "displayName": "Right", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenterdirection_l_moveselectionafterenterdirection84_2", + "displayName": "Up", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_moveselectionafterenterdirection_l_moveselectionafterenterdirection84_3", + "displayName": "Left", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_recentlyusedfilelist", + "displayName": "Number of workbooks in the Recent Workbooks list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_recentlyusedfilelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_recentlyusedfilelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_recentlyusedfilelist_l_entriesonrecentlyusedfilelist", + "displayName": "Entries on recently used file list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_setnumberofplacesintherecentplaceslist", + "displayName": "Number of folders in the Recent Folders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_setnumberofplacesintherecentplaceslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_setnumberofplacesintherecentplaceslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_setnumberofplacesintherecentplaceslist_l_setnumberofplacesintherecentplaceslistspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showalertifnotdefault", + "displayName": "Show Alert if Excel is not the default for its associated file types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showalertifnotdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showalertifnotdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showcontrolcharacters", + "displayName": "Show control characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showcontrolcharacters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showcontrolcharacters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showformulabarinfullview", + "displayName": "Show Formula bar in Full View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showformulabarinfullview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showformulabarinfullview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showformulabarinnormalview", + "displayName": "Show Formula bar in Normal View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showformulabarinnormalview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showformulabarinnormalview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showinsertoptionsbuttons", + "displayName": "Show Insert Options buttons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showinsertoptionsbuttons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showinsertoptionsbuttons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_shownames", + "displayName": "Show names (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_shownames_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_shownames_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showpasteoptionsbuttonwhencontentispasted", + "displayName": "Show Paste Options button when content is pasted (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showpasteoptionsbuttonwhencontentispasted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showpasteoptionsbuttonwhencontentispasted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showvalues", + "displayName": "Show values (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showvalues_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_showvalues_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_transitionnavigationkeys", + "displayName": "Transition navigation keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_transitionnavigationkeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_transitionnavigationkeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_zoomonrollwithintellimouse", + "displayName": "Zoom on roll with IntelliMouse (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_zoomonrollwithintellimouse_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced_l_zoomonrollwithintellimouse_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced~l_weboptions~l_general_l_loadpicturesfromwebpagesnotcreatedinexcel", + "displayName": "Load pictures from Web pages not created in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced~l_weboptions~l_general_l_loadpicturesfromwebpagesnotcreatedinexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_advanced~l_weboptions~l_general_l_loadpicturesfromwebpagesnotcreatedinexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_formulas_l_r1c1referencestyle", + "displayName": "R1C1 reference style (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_formulas_l_r1c1referencestyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_formulas_l_r1c1referencestyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionscustomizeribbon_l_displaydevelopertab", + "displayName": "Display Developer tab in the Ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionscustomizeribbon_l_displaydevelopertab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionscustomizeribbon_l_displaydevelopertab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_allowquickanalysis", + "displayName": "Show Quick Analysis options on selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_allowquickanalysis_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_allowquickanalysis_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_allowselectionfloaties", + "displayName": "Show Mini Toolbar on selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_allowselectionfloaties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_allowselectionfloaties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_defaultsheets", + "displayName": "Default Sheets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_defaultsheets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_defaultsheets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_defaultsheets_l_sheetsinnewworkbook", + "displayName": "Sheets in new workbook (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_disablelivepreview", + "displayName": "Enable Live Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_disablelivepreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_disablelivepreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_font", + "displayName": "Font (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_font_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_font_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_font_l_namesize", + "displayName": "Name, Size (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_windowsintaskbar", + "displayName": "Show all windows in the Taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_windowsintaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_optionsgeneral_l_windowsintaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_proofing~l_autocorrectoptions_l_includenewrowsandcolumnsinlist", + "displayName": "Include new rows and columns in table (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_proofing~l_autocorrectoptions_l_includenewrowsandcolumnsinlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_proofing~l_autocorrectoptions_l_includenewrowsandcolumnsinlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_proofing~l_autocorrectoptions_l_internetandnetworkpathsashyperlinks", + "displayName": "Internet and network paths as hyperlinks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_proofing~l_autocorrectoptions_l_internetandnetworkpathsashyperlinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_proofing~l_autocorrectoptions_l_internetandnetworkpathsashyperlinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecoverdelay", + "displayName": "AutoRecover delay (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecoverdelay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecoverdelay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecoverdelay_l_secondsofidletimebeforeautorecoverstarts", + "displayName": "Seconds of idle time before AutoRecover starts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecoversavelocation", + "displayName": "AutoRecover save location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecoversavelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecoversavelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecoversavelocation_l_autorecoversavelocation2", + "displayName": "AutoRecover save location (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecovertime", + "displayName": "AutoRecover time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecovertime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecovertime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_autorecovertime_l_saveautorecoverinfoevery", + "displayName": "Save AutoRecover info every (minutes): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_defaultfilelocation", + "displayName": "Default file location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_defaultfilelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_defaultfilelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_defaultfilelocation_l_defaultfilelocation0", + "displayName": "Default file location (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_disableautorepublish", + "displayName": "Disable AutoRepublish (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_disableautorepublish_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_disableautorepublish_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_donotshowautorepublishwarningalert", + "displayName": "Do not show AutoRepublish warning alert (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_donotshowautorepublishwarningalert_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_donotshowautorepublishwarningalert_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_keeplastautosavedversions", + "displayName": "Keep the last AutoSaved versions of files for the next session (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_keeplastautosavedversions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_keeplastautosavedversions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_promptforworkbookproperties", + "displayName": "Prompt for workbook properties (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_promptforworkbookproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_promptforworkbookproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveautorecoverinfo", + "displayName": "Save AutoRecover info (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveautorecoverinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveautorecoverinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas", + "displayName": "Default file format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_l_saveexcelfilesas1", + "displayName": "Save Excel files as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_l_saveexcelfilesas1_51", + "displayName": "Excel Workbook (*.xlsx)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_l_saveexcelfilesas1_52", + "displayName": "Excel Macro-Enabled Workbook (*.xlsm)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_l_saveexcelfilesas1_50", + "displayName": "Excel Binary Workbook (*.xlsb)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_l_saveexcelfilesas1_44", + "displayName": "Web Page (*.htm; *.html)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_l_saveexcelfilesas1_56", + "displayName": "Excel 97-2003 Workbook (*.xls)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_l_saveexcelfilesas1_39", + "displayName": "Excel 5.0/95 Workbook (*.xls)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_saveexcelfilesas_l_saveexcelfilesas1_60", + "displayName": "OpenDocument Spreadsheet (*.ods)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_turnofffileformatcompatiblitydialogforods", + "displayName": "Suppress file format compatibility dialog box for OpenDocument Spreadsheet format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_turnofffileformatcompatiblitydialogforods_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_save_l_turnofffileformatcompatiblitydialogforods_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_determinewhethertoforceencryptedexcel", + "displayName": "Scan encrypted macros in Excel Open XML workbooks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_determinewhethertoforceencryptedexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_determinewhethertoforceencryptedexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_determinewhethertoforceencryptedexcel_l_determinewhethertoforceencryptedexceldropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_determinewhethertoforceencryptedexcel_l_determinewhethertoforceencryptedexceldropid_0", + "displayName": "Scan encrypted macros (default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_determinewhethertoforceencryptedexcel_l_determinewhethertoforceencryptedexceldropid_1", + "displayName": "Scan if anti-virus software available", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_determinewhethertoforceencryptedexcel_l_determinewhethertoforceencryptedexceldropid_2", + "displayName": "Load macros without scanning", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_forcefileextenstionstomatch", + "displayName": "Force file extension to match file type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_forcefileextenstionstomatch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_forcefileextenstionstomatch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_forcefileextenstionstomatch_l_empty", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_forcefileextenstionstomatch_l_empty_0", + "displayName": "Allow different", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_forcefileextenstionstomatch_l_empty_1", + "displayName": "Allow different, but warn", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_forcefileextenstionstomatch_l_empty_2", + "displayName": "Always match file type", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_performfilevalidationonpivotcaches", + "displayName": "Perform file validation on pivot caches (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_performfilevalidationonpivotcaches_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_performfilevalidationonpivotcaches_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_performfilevalidationonpivotcaches_l_performfilevalidationonpivotcachesdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_performfilevalidationonpivotcaches_l_performfilevalidationonpivotcachesdropid_0", + "displayName": "No file validation", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_performfilevalidationonpivotcaches_l_performfilevalidationonpivotcachesdropid_1", + "displayName": "Web and email sources", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_performfilevalidationonpivotcaches_l_performfilevalidationonpivotcachesdropid_2", + "displayName": "Always perform validation", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_turnofffilevalidation", + "displayName": "Turn off file validation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_turnofffilevalidation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_turnofffilevalidation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_webcontentwarninglevel", + "displayName": "WEBSERVICE Function Notification Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_webcontentwarninglevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_webcontentwarninglevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_webcontentwarninglevel_l_webcontentwarninglevelvalue", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_webcontentwarninglevel_l_webcontentwarninglevelvalue_0", + "displayName": "Enable all WEBSERVICE functions (not recommended)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_webcontentwarninglevel_l_webcontentwarninglevelvalue_1", + "displayName": "Disable all with notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security_l_webcontentwarninglevel_l_webcontentwarninglevelvalue_2", + "displayName": "Disable all without notification", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_configurecngcipherchainingmode", + "displayName": "Configure CNG cipher chaining mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_configurecngcipherchainingmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_configurecngcipherchainingmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecbc", + "displayName": "Cipher Block Chaining (CBC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecfb", + "displayName": "Cipher Feedback (CFB)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngcipheralgorithm", + "displayName": "Set CNG cipher algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngcipheralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngcipheralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngcipheralgorithm_l_setcngcipheralgorithmid", + "displayName": "CNG cipher algorithm: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngcipherkeylength", + "displayName": "Set CNG cipher key length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngcipherkeylength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngcipherkeylength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngcipherkeylength_l_setcngcipherkeylengthspinid", + "displayName": "Cipher key length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngpasswordspincount", + "displayName": "Set CNG password spin count (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngpasswordspincount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngpasswordspincount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setcngpasswordspincount_l_setcngpasswordspincountspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setparametersforcngcontext", + "displayName": "Set parameters for CNG context (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setparametersforcngcontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setparametersforcngcontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_setparametersforcngcontext_l_setparametersforcngcontextid", + "displayName": "Parameters (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycnghashalgorithm", + "displayName": "Specify CNG hash algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycnghashalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycnghashalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha512", + "displayName": "SHA512", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm", + "displayName": "Specify CNG random number generator algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_l_specifycngrandomnumbergeneratoralgorithmid", + "displayName": "Random number generator: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycngsaltlength", + "displayName": "Specify CNG salt length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycngsaltlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycngsaltlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifycngsaltlength_l_specifycngsaltlengthspinid", + "displayName": "Number of bytes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifyencryptioncompatibility", + "displayName": "Specify encryption compatibility (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifyencryptioncompatibility_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifyencryptioncompatibility_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_0", + "displayName": "Use legacy format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_1", + "displayName": "Use next generation format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_2", + "displayName": "All files save with next generation format", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_usenewkeyonpasswordchange", + "displayName": "Use new key on password change (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_usenewkeyonpasswordchange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_cryptography_l_usenewkeyonpasswordchange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet", + "displayName": "Block macros from running in Office files from the Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disableallapplicationextensions", + "displayName": "Disable all application add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disableallapplicationextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disableallapplicationextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned", + "displayName": "Require that application add-ins are signed by Trusted Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments", + "displayName": "Set maximum number of trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_l_setmaximumnumberoftrusteddocumentsspinid", + "displayName": "Maximum number: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve", + "displayName": "Set maximum number of trust records to preserve (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_l_setmaximumnumberoftrustrecordstopreservespinid", + "displayName": "Maximum to preserve: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_storemacroinpersonalmacroworkbookbydefault", + "displayName": "Store macro in Personal Macro Workbook by default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_storemacroinpersonalmacroworkbookbydefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_storemacroinpersonalmacroworkbookbydefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject", + "displayName": "Trust access to Visual Basic Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_turnofftrusteddocuments", + "displayName": "Turn off trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_turnofftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_turnofftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork", + "displayName": "Turn off Trusted Documents on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_vbawarningspolicy", + "displayName": "VBA Macro Notification Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_vbawarningspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_vbawarningspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty4", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty4_2", + "displayName": "Disable all with notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty4_3", + "displayName": "Disable all except digitally signed macros", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty4_4", + "displayName": "Disable all without notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty4_1", + "displayName": "Enable all macros (not recommended)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_dbaseiiiandivfiles", + "displayName": "dBase III / IV files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_dbaseiiiandivfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_dbaseiiiandivfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_dbaseiiiandivfiles_l_dbaseiiiandivfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_dbaseiiiandivfiles_l_dbaseiiiandivfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_dbaseiiiandivfiles_l_dbaseiiiandivfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_difandsylkfiles", + "displayName": "Dif and Sylk files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_difandsylkfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_difandsylkfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_difandsylkfiles_l_difandsylkfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_difandsylkfiles_l_difandsylkfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_difandsylkfiles_l_difandsylkfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_difandsylkfiles_l_difandsylkfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlateraddinfiles", + "displayName": "Excel 2007 and later add-in files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlateraddinfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlateraddinfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlateraddinfiles_l_excel2007andlateraddinfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlateraddinfiles_l_excel2007andlateraddinfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlateraddinfiles_l_excel2007andlateraddinfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlateraddinfiles_l_excel2007andlateraddinfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks", + "displayName": "Excel 2007 and later binary workbooks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_l_excel2007andlaterbinaryworkbooksdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_l_excel2007andlaterbinaryworkbooksdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_l_excel2007andlaterbinaryworkbooksdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_l_excel2007andlaterbinaryworkbooksdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_l_excel2007andlaterbinaryworkbooksdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_l_excel2007andlaterbinaryworkbooksdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterbinaryworkbooks_l_excel2007andlaterbinaryworkbooksdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates", + "displayName": "Excel 2007 and later macro-enabled workbooks and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_l_excel2007andlatermacroenabledworkbooksandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_l_excel2007andlatermacroenabledworkbooksandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_l_excel2007andlatermacroenabledworkbooksandtemplatesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_l_excel2007andlatermacroenabledworkbooksandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_l_excel2007andlatermacroenabledworkbooksandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_l_excel2007andlatermacroenabledworkbooksandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlatermacroenabledworkbooksandtemplates_l_excel2007andlatermacroenabledworkbooksandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates", + "displayName": "Excel 2007 and later workbooks and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_l_excel2007andlaterworkbooksandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_l_excel2007andlaterworkbooksandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_l_excel2007andlaterworkbooksandtemplatesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_l_excel2007andlaterworkbooksandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_l_excel2007andlaterworkbooksandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_l_excel2007andlaterworkbooksandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2007andlaterworkbooksandtemplates_l_excel2007andlaterworkbooksandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles", + "displayName": "Excel 2 macrosheets and add-in files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles_l_excel2macrosheetsandaddinfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles_l_excel2macrosheetsandaddinfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles_l_excel2macrosheetsandaddinfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles_l_excel2macrosheetsandaddinfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles_l_excel2macrosheetsandaddinfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2macrosheetsandaddinfiles_l_excel2macrosheetsandaddinfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets", + "displayName": "Excel 2 worksheets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets_l_excel2worksheetsdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets_l_excel2worksheetsdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets_l_excel2worksheetsdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets_l_excel2worksheetsdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets_l_excel2worksheetsdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel2worksheets_l_excel2worksheetsdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles", + "displayName": "Excel 3 macrosheets and add-in files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles_l_excel3macrosheetsandaddinfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles_l_excel3macrosheetsandaddinfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles_l_excel3macrosheetsandaddinfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles_l_excel3macrosheetsandaddinfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles_l_excel3macrosheetsandaddinfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3macrosheetsandaddinfiles_l_excel3macrosheetsandaddinfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets", + "displayName": "Excel 3 worksheets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets_l_excel3worksheetsdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets_l_excel3worksheetsdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets_l_excel3worksheetsdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets_l_excel3worksheetsdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets_l_excel3worksheetsdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel3worksheets_l_excel3worksheetsdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles", + "displayName": "Excel 4 macrosheets and add-in files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles_l_excel4macrosheetsandaddinfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles_l_excel4macrosheetsandaddinfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles_l_excel4macrosheetsandaddinfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles_l_excel4macrosheetsandaddinfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles_l_excel4macrosheetsandaddinfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4macrosheetsandaddinfiles_l_excel4macrosheetsandaddinfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks", + "displayName": "Excel 4 workbooks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks_l_excel4workbooksdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks_l_excel4workbooksdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks_l_excel4workbooksdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks_l_excel4workbooksdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks_l_excel4workbooksdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4workbooks_l_excel4workbooksdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets", + "displayName": "Excel 4 worksheets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets_l_excel4worksheetsdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets_l_excel4worksheetsdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets_l_excel4worksheetsdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets_l_excel4worksheetsdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets_l_excel4worksheetsdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel4worksheets_l_excel4worksheetsdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates", + "displayName": "Excel 95-97 workbooks and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates_l_excel9597workbooksandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates_l_excel9597workbooksandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates_l_excel9597workbooksandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates_l_excel9597workbooksandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates_l_excel9597workbooksandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel9597workbooksandtemplates_l_excel9597workbooksandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks", + "displayName": "Excel 95 workbooks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_l_excel95workbooksdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_l_excel95workbooksdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_l_excel95workbooksdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_l_excel95workbooksdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_l_excel95workbooksdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_l_excel95workbooksdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel95workbooks_l_excel95workbooksdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003addinfiles", + "displayName": "Excel 97-2003 add-in files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003addinfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003addinfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003addinfiles_l_excel972003addinfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003addinfiles_l_excel972003addinfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003addinfiles_l_excel972003addinfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003addinfiles_l_excel972003addinfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates", + "displayName": "Excel 97-2003 workbooks and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_l_excel972003workbooksandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_l_excel972003workbooksandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_l_excel972003workbooksandtemplatesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_l_excel972003workbooksandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_l_excel972003workbooksandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_l_excel972003workbooksandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_excel972003workbooksandtemplates_l_excel972003workbooksandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_exceladdinfiles", + "displayName": "Excel add-in files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_exceladdinfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_exceladdinfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_exceladdinfiles_l_exceladdinfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_exceladdinfiles_l_exceladdinfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_exceladdinfiles_l_exceladdinfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel", + "displayName": "Legacy converters for Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel_l_legacyconvertersforexceldropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel_l_legacyconvertersforexceldropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel_l_legacyconvertersforexceldropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel_l_legacyconvertersforexceldropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel_l_legacyconvertersforexceldropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforexcel_l_legacyconvertersforexceldropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel", + "displayName": "Microsoft Office Open XML converters for Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_l_microsoftofficeopenxmlconvertersforexceldropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_l_microsoftofficeopenxmlconvertersforexceldropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_l_microsoftofficeopenxmlconvertersforexceldropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_l_microsoftofficeopenxmlconvertersforexceldropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_l_microsoftofficeopenxmlconvertersforexceldropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_l_microsoftofficeopenxmlconvertersforexceldropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforexcel_l_microsoftofficeopenxmlconvertersforexceldropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles", + "displayName": "Microsoft Office query files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_l_microsoftofficequeryfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_l_microsoftofficequeryfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_l_microsoftofficequeryfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_l_microsoftofficequeryfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_l_microsoftofficequeryfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_l_microsoftofficequeryfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficequeryfiles_l_microsoftofficequeryfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_officedataconnectionfiles", + "displayName": "Microsoft Office data connection files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_officedataconnectionfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_officedataconnectionfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_officedataconnectionfiles_l_officedataconnectionfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_officedataconnectionfiles_l_officedataconnectionfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_officedataconnectionfiles_l_officedataconnectionfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_offlinecubefiles", + "displayName": "Offline cube files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_offlinecubefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_offlinecubefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_offlinecubefiles_l_offlinecubefilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_offlinecubefiles_l_offlinecubefilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_offlinecubefiles_l_offlinecubefilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles", + "displayName": "OpenDocument Spreadsheet files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_l_opendocumentspreadsheetfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_l_opendocumentspreadsheetfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_l_opendocumentspreadsheetfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_l_opendocumentspreadsheetfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_l_opendocumentspreadsheetfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_l_opendocumentspreadsheetfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentspreadsheetfiles_l_opendocumentspreadsheetfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_otherdatasourcefiles", + "displayName": "Other data source files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_otherdatasourcefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_otherdatasourcefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_otherdatasourcefiles_l_otherdatasourcefilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_otherdatasourcefiles_l_otherdatasourcefilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_otherdatasourcefiles_l_otherdatasourcefilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior", + "displayName": "Set default file block behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_0", + "displayName": "Blocked files are not opened", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_1", + "displayName": "Blocked files open in Protected View and can not be edited", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_2", + "displayName": "Blocked files open in Protected View and can be edited", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_textfiles", + "displayName": "Text files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_textfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_textfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_textfiles_l_textfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_textfiles_l_textfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_textfiles_l_textfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_textfiles_l_textfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets", + "displayName": "Web pages and Excel 2003 XML spreadsheets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_l_webpagesandexcel2003xmlspreadsheetsdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_l_webpagesandexcel2003xmlspreadsheetsdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_l_webpagesandexcel2003xmlspreadsheetsdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_l_webpagesandexcel2003xmlspreadsheetsdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_l_webpagesandexcel2003xmlspreadsheetsdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_l_webpagesandexcel2003xmlspreadsheetsdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_webpagesandexcel2003xmlspreadsheets_l_webpagesandexcel2003xmlspreadsheetsdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_xmlfiles", + "displayName": "XML files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_xmlfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_xmlfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_xmlfiles_l_xmlfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_xmlfiles_l_xmlfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_xmlfiles_l_xmlfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_fileblocksettings_l_xmlfiles_l_xmlfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview", + "displayName": "Do not open files from the Internet zone in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview", + "displayName": "Do not open files in unsafe locations in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview", + "displayName": "Open files on local Intranet UNC in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails", + "displayName": "Set document behavior if file validation fails (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid_0", + "displayName": "Block files", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid_1", + "displayName": "Open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3", + "displayName": "Checked: Allow edit. Unchecked: Do not allow edit. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook", + "displayName": "Turn off Protected View for attachments opened from Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork", + "displayName": "Allow Trusted Locations on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc", + "displayName": "Disable all trusted locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01", + "displayName": "Trusted Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_datecolon", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_descriptioncolon", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_pathcolon", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02", + "displayName": "Trusted Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders8", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders8_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders8_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_datecolon6", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_descriptioncolon7", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_pathcolon5", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03", + "displayName": "Trusted Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders12", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders12_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders12_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_datecolon10", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_descriptioncolon11", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_pathcolon9", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04", + "displayName": "Trusted Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders16", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders16_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders16_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_datecolon14", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_descriptioncolon15", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_pathcolon13", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05", + "displayName": "Trusted Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders20", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders20_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders20_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_datecolon18", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_descriptioncolon19", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_pathcolon17", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06", + "displayName": "Trusted Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders24", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders24_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders24_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_datecolon22", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_descriptioncolon23", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_pathcolon21", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07", + "displayName": "Trusted Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders28", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders28_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders28_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_datecolon26", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_descriptioncolon27", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_pathcolon25", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08", + "displayName": "Trusted Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders32", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders32_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders32_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_datecolon30", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_descriptioncolon31", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_pathcolon29", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09", + "displayName": "Trusted Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders36", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders36_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders36_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_datecolon34", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_descriptioncolon35", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_pathcolon33", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10", + "displayName": "Trusted Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders40", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders40_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders40_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_datecolon38", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_descriptioncolon39", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_pathcolon37", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11", + "displayName": "Trusted Location #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders44", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders44_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders44_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_datecolon42", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_descriptioncolon43", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_pathcolon41", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12", + "displayName": "Trusted Location #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders48", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders48_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders48_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_datecolon46", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_descriptioncolon47", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_pathcolon45", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13", + "displayName": "Trusted Location #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders52", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders52_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders52_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_datecolon50", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_descriptioncolon51", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_pathcolon49", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14", + "displayName": "Trusted Location #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders56", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders56_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders56_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_datecolon54", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_descriptioncolon55", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_pathcolon53", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15", + "displayName": "Trusted Location #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders60", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders60_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders60_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_datecolon58", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_descriptioncolon59", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_pathcolon57", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16", + "displayName": "Trusted Location #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders64", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders64_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders64_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_datecolon62", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_descriptioncolon63", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_pathcolon61", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17", + "displayName": "Trusted Location #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders68", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders68_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders68_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_datecolon66", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_descriptioncolon67", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_pathcolon65", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18", + "displayName": "Trusted Location #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders72", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders72_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders72_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_datecolon70", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_descriptioncolon71", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_pathcolon69", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19", + "displayName": "Trusted Location #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders76", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders76_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders76_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_datecolon74", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_descriptioncolon75", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_pathcolon73", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20", + "displayName": "Trusted Location #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders80", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders80_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders80_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_datecolon78", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_descriptioncolon79", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_pathcolon77", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation", + "displayName": "Check for accessibility issues while editing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation", + "displayName": "Stop checking for alt text accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsusedasformatting", + "displayName": "Stop checking for blank table rows used as formatting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsusedasformatting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsusedasformatting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingformergedcells", + "displayName": "Stop checking for merged cells (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingformergedcells_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingformergedcells_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation", + "displayName": "Stop checking for table header accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful", + "displayName": "Stop checking to ensure hyperlink text is meaningful (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensurenondefaultsheetnames", + "displayName": "Stop checking to ensure non-default sheet names (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensurenondefaultsheetnames_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensurenondefaultsheetnames_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensureworkbooksallowprogrammaticaccess", + "displayName": "Stop checking to ensure workbooks allow programmatic access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensureworkbooksallowprogrammaticaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtoensureworkbooksallowprogrammaticaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_intelligentservices_l_insights", + "displayName": "Remove Ideas button from the Ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_intelligentservices_l_insights_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_intelligentservices_l_insights_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_defaultcustomtab", + "displayName": "Show custom templates tab by default in Excel on the Office Start screen and in File | New (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_defaultcustomtab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_defaultcustomtab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_disableofficestartexcel", + "displayName": "Disable the Office Start screen for Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_disableofficestartexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_disableofficestartexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_donotcachenetworkfileslocally", + "displayName": "Do not cache network files locally (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_donotcachenetworkfileslocally_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_donotcachenetworkfileslocally_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_enablefourdigityeardisplay", + "displayName": "Enable four-digit year display (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_enablefourdigityeardisplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_enablefourdigityeardisplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_graphgallerypath", + "displayName": "Graph gallery path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_graphgallerypath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_graphgallerypath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_graphgallerypath_l_graphgallerypath169", + "displayName": "Graph gallery path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_olappivottableuserdefinedfunctionudfsecuritysetting", + "displayName": "OLAP PivotTable User Defined Function (UDF) security setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_olappivottableuserdefinedfunctionudfsecuritysetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_olappivottableuserdefinedfunctionudfsecuritysetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_olappivottableuserdefinedfunctionudfsecuritysetting_l_olappivottableuserdefinedfunctionudfsecuritysetting171", + "displayName": "OLAP PivotTable User Defined Function (UDF) security setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_olappivottableuserdefinedfunctionudfsecuritysetting_l_olappivottableuserdefinedfunctionudfsecuritysetting171_1", + "displayName": "Allow ALL UDFs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_olappivottableuserdefinedfunctionudfsecuritysetting_l_olappivottableuserdefinedfunctionudfsecuritysetting171_2", + "displayName": "Allow safe UDFs only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_olappivottableuserdefinedfunctionudfsecuritysetting_l_olappivottableuserdefinedfunctionudfsecuritysetting171_3", + "displayName": "Allow NO UDFs", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_personaltemplatespath", + "displayName": "Personal templates path for Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_personaltemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_personaltemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168_l_personaltemplatespath_l_personaltemplatespath", + "displayName": "Personal templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp", + "displayName": "Turn off file synchronization via SOAP over HTTP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v2~policy~l_microsoftofficeexcel~l_miscellaneous168~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_disableddeserverlaunch", + "displayName": "Don’t allow Dynamic Data Exchange (DDE) server launch in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_disableddeserverlaunch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_disableddeserverlaunch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_disableddeserverlookup", + "displayName": "Don’t allow Dynamic Data Exchange (DDE) server lookup in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_disableddeserverlookup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_disableddeserverlookup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_enableblockunsecurequeryfiles", + "displayName": "Always prevent untrusted Microsoft Query files from opening (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_enableblockunsecurequeryfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_externalcontent_l_enableblockunsecurequeryfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_enabledatabasefileprotectedview", + "displayName": "Always open untrusted database files in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_enabledatabasefileprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_enabledatabasefileprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_enableforeigntextfileprotectedview", + "displayName": "Always open untrusted text-based files in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_enableforeigntextfileprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v3~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter~l_protectedview_l_enableforeigntextfileprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v4~policy~l_microsoftofficeexcel~l_powerbi_l_disablefrompowerbidatasetorganizationname", + "displayName": "Disable displaying organization name in the buttons to create PivotTables from Power BI datasets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v4~policy~l_microsoftofficeexcel~l_powerbi_l_disablefrompowerbidatasetorganizationname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v4~policy~l_microsoftofficeexcel~l_powerbi_l_disablefrompowerbidatasetorganizationname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v5~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation", + "displayName": "Stop checking for table alt text accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v5~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v5~policy~l_microsoftofficeexcel~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v6~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_xl4killswitchpolicy", + "displayName": "Prevent Excel from running XLM macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v6~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_xl4killswitchpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v6~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_xl4killswitchpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v7~policy~l_microsoftofficeexcel~l_miscellaneous168_l_exceldisableofficescripts", + "displayName": "Disable Office Scripts in Excel for Windows Desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v7~policy~l_microsoftofficeexcel~l_miscellaneous168_l_exceldisableofficescripts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v7~policy~l_microsoftofficeexcel~l_miscellaneous168_l_exceldisableofficescripts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v8~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockxllfrominternet", + "displayName": "Block Excel XLL Add-ins that come from an untrusted source (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v8~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockxllfrominternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v8~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockxllfrominternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_excel16v8~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockxllfrominternet_l_blockxllfrominternetenum", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_excel16v8~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockxllfrominternet_l_blockxllfrominternetenum_1", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v8~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockxllfrominternet_l_blockxllfrominternetenum_0", + "displayName": "Show Additional Warning", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_excel16v8~policy~l_microsoftofficeexcel~l_exceloptions~l_security~l_trustcenter_l_blockxllfrominternet_l_blockxllfrominternetenum_2", + "displayName": "Allow", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_experience_allowspotlightcollection", + "displayName": "Allow Spotlight Collection (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_experience_allowtailoredexperienceswithdiagnosticdata", + "displayName": "Allow Tailored Experiences With Diagnostic Data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_experience_allowtailoredexperienceswithdiagnosticdata_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_experience_allowtailoredexperienceswithdiagnosticdata_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_experience_allowthirdpartysuggestionsinwindowsspotlight", + "displayName": "Allow Third Party Suggestions In Windows Spotlight (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_experience_allowthirdpartysuggestionsinwindowsspotlight_0", + "displayName": "Block", + "description": "Third-party suggestions not allowed." + }, + { + "id": "user_vendor_msft_policy_config_experience_allowthirdpartysuggestionsinwindowsspotlight_1", + "displayName": "Allow", + "description": "Third-party suggestions allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlight", + "displayName": "Allow Windows Spotlight (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlight_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlight_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightonactioncenter", + "displayName": "Allow Windows Spotlight On Action Center (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightonactioncenter_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightonactioncenter_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightonsettings", + "displayName": "Allow Windows Spotlight On Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightonsettings_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightonsettings_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightwindowswelcomeexperience", + "displayName": "Allow Windows Spotlight Windows Welcome Experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightwindowswelcomeexperience_0", + "displayName": "Block", + "description": "Not allowed." + }, + { + "id": "user_vendor_msft_policy_config_experience_allowwindowsspotlightwindowswelcomeexperience_1", + "displayName": "Allow", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_experience_configurewindowsspotlightonlockscreen", + "displayName": "Configure Windows Spotlight On Lock Screen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_experience_configurewindowsspotlightonlockscreen_0", + "displayName": "Windows spotlight disabled.", + "description": "Windows spotlight disabled." + }, + { + "id": "user_vendor_msft_policy_config_experience_configurewindowsspotlightonlockscreen_1", + "displayName": "Windows spotlight enabled.", + "description": "Windows spotlight enabled." + }, + { + "id": "user_vendor_msft_policy_config_experience_configurewindowsspotlightonlockscreen_2", + "displayName": "Windows spotlight is always enabled, the user cannot disable it", + "description": "Windows spotlight is always enabled, the user cannot disable it" + }, + { + "id": "user_vendor_msft_policy_config_experience_configurewindowsspotlightonlockscreen_3", + "displayName": "Windows spotlight is always enabled, the user cannot disable it. For special configurations only", + "description": "Windows spotlight is always enabled, the user cannot disable it. For special configurations only" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_experience_enableorganizationalmessages", + "displayName": "Enable delivery of organizational messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_experience_enableorganizationalmessages_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "user_vendor_msft_policy_config_experience_enableorganizationalmessages_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_allowoptiontoshownetwork", + "displayName": "Allow Option To Show Network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_fileexplorer_allowoptiontoshownetwork_0", + "displayName": "Not Allowed.", + "description": "Not Allowed." + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_allowoptiontoshownetwork_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_allowoptiontoshowthispc", + "displayName": "Allow Option To Show This PC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_fileexplorer_allowoptiontoshowthispc_0", + "displayName": "Not Allowed.", + "description": "Not Allowed." + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_allowoptiontoshowthispc_1", + "displayName": "Allowed.", + "description": "Allowed." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations", + "displayName": "Set Allowed Folder Locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_0", + "displayName": "Access to all folder locations.", + "description": "Access to all folder locations." + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_13", + "displayName": "Documents, Pictures, Downloads", + "description": "Documents, Pictures, Downloads" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_15", + "displayName": "Desktop, Documents, Pictures, Downloads", + "description": "Desktop, Documents, Pictures, Downloads" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_31", + "displayName": "Desktop, Documents, Pictures, Downloads, Network", + "description": "Desktop, Documents, Pictures, Downloads, Network" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_47", + "displayName": "This PC, Desktop, Documents, Pictures, Downloads", + "description": "This PC, Desktop, Documents, Pictures, Downloads" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedfolderlocations_63", + "displayName": "This PC, Desktop, Documents, Pictures, Downloads, Network", + "description": "This PC, Desktop, Documents, Pictures, Downloads, Network" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations", + "displayName": "Set Allowed Storage Locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_0", + "displayName": "Access to all storage locations.", + "description": "Access to all storage locations." + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_1", + "displayName": "Removable Drives", + "description": "Removable Drives" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_2", + "displayName": "Sync roots", + "description": "Sync roots" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_3", + "displayName": "Removable Drives, Sync roots", + "description": "Removable Drives, Sync roots" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_4", + "displayName": "Local Drives", + "description": "Local Drives" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_5", + "displayName": "Removable Drives, Local Drives", + "description": "Removable Drives, Local Drives" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_6", + "displayName": "Sync Roots, Local Drives", + "description": "Sync Roots, Local Drives" + }, + { + "id": "user_vendor_msft_policy_config_fileexplorer_setallowedstoragelocations_7", + "displayName": "Removable Drives, Sync Roots, Local Drives", + "description": "Removable Drives, Sync Roots, Local Drives" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_addsearchprovider", + "displayName": "Add a specific list of search providers to the user's list of search providers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_addsearchprovider_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_addsearchprovider_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowactivexfiltering", + "displayName": "Turn on ActiveX Filtering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowactivexfiltering_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowactivexfiltering_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowaddonlist", + "displayName": "Add-on List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowaddonlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowaddonlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowaddonlist_addonlist", + "displayName": "Add-on List (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowaddonlist_addonlist_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowaddonlist_addonlist_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowautocomplete", + "displayName": "Turn on the auto-complete feature for user names and passwords on forms (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowautocomplete_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowautocomplete_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowautocomplete_chkbox_passwordask", + "displayName": "Prompt me to save passwords (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowautocomplete_chkbox_passwordask_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowautocomplete_chkbox_passwordask_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowcertificateaddressmismatchwarning", + "displayName": "Turn on certificate address mismatch warning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowcertificateaddressmismatchwarning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowcertificateaddressmismatchwarning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowdeletingbrowsinghistoryonexit", + "displayName": "Allow deleting browsing history on exit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowdeletingbrowsinghistoryonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowdeletingbrowsinghistoryonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenhancedprotectedmode", + "displayName": "Turn on Enhanced Protected Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenhancedprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenhancedprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenhancedsuggestionsinaddressbar", + "displayName": "Allow Microsoft services to provide enhanced suggestions as the user types in the Address bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenhancedsuggestionsinaddressbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenhancedsuggestionsinaddressbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenterprisemodefromtoolsmenu", + "displayName": "Let users turn on and use Enterprise Mode from the Tools menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenterprisemodefromtoolsmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenterprisemodefromtoolsmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenterprisemodefromtoolsmenu_enterreportbackprompt", + "displayName": "Type the location (URL) of where to receive reports about the websites for which users turn on and use Enterprise Mode (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenterprisemodesitelist", + "displayName": "Use the Enterprise Mode IE website list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenterprisemodesitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenterprisemodesitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowenterprisemodesitelist_entersitelistprompt", + "displayName": "Type the location (URL) of your Enterprise Mode IE website list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetexplorer7policylist", + "displayName": "Use Policy List of Internet Explorer 7 sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetexplorer7policylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetexplorer7policylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetexplorer7policylist_compatview_sitelist", + "displayName": "List of sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetexplorerstandardsmode", + "displayName": "Turn on Internet Explorer Standards Mode for local intranet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetexplorerstandardsmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetexplorerstandardsmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate", + "displayName": "Internet Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate", + "displayName": "Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowinternetzonetemplate_iz_partnameinternetzonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate", + "displayName": "Intranet Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate", + "displayName": "Intranet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowintranetzonetemplate_iz_partnameintranetzonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate", + "displayName": "Local Machine Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate", + "displayName": "Local Machine Zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlocalmachinezonetemplate_iz_partnamelocalmachinezonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate", + "displayName": "Locked-Down Internet Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate", + "displayName": "Locked-Down Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddowninternetzonetemplate_iz_partnameinternetzonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate", + "displayName": "Locked-Down Intranet Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate", + "displayName": "Locked-Down Intranet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownintranetzonetemplate_iz_partnameintranetzonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate", + "displayName": "Locked-Down Local Machine Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate", + "displayName": "Locked-Down Local Machine Zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownlocalmachinezonetemplate_iz_partnamelocalmachinezonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate", + "displayName": "Locked-Down Restricted Sites Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate", + "displayName": "Locked-Down Restricted Sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowlockeddownrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowonewordentry", + "displayName": "Go to an intranet site for a one-word entry in the Address bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowonewordentry_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowonewordentry_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsavetargetasiniemode", + "displayName": "Allow \"Save Target As\" in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsavetargetasiniemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsavetargetasiniemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist", + "displayName": "Site to Zone Assignment List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_iz_zonemapprompt", + "displayName": "Enter the zone assignments here. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_iz_zonemapprompt_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsitetozoneassignmentlist_iz_zonemapprompt_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate", + "displayName": "Locked-Down Trusted Sites Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate", + "displayName": "Locked-Down Trusted Sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowslockeddowntrustedsiteszonetemplate_iz_partnametrustedsiteszonelockdowntemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsoftwarewhensignatureisinvalid", + "displayName": "Allow software to run or install even if the signature is invalid (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsoftwarewhensignatureisinvalid_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsoftwarewhensignatureisinvalid_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate", + "displayName": "Restricted Sites Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate", + "displayName": "Restricted Sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsrestrictedsiteszonetemplate_iz_partnamerestrictedsiteszonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsuggestedsites", + "displayName": "Turn on Suggested Sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsuggestedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowsuggestedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate", + "displayName": "Trusted Sites Zone Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate", + "displayName": "Trusted Sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_1", + "displayName": "Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_2", + "displayName": "Medium Low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_3", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_5", + "displayName": "Medium High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_allowtrustedsiteszonetemplate_iz_partnametrustedsiteszonetemplate_4", + "displayName": "High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_checkservercertificaterevocation", + "displayName": "Check for server certificate revocation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_checkservercertificaterevocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_checkservercertificaterevocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_checksignaturesondownloadedprograms", + "displayName": "Check for signatures on downloaded programs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_checksignaturesondownloadedprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_checksignaturesondownloadedprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel", + "displayName": "Configure which channel of Microsoft Edge to use for opening redirected sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser", + "displayName": "First choice (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_", + "displayName": "", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_1", + "displayName": "Microsoft Edge Stable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_2", + "displayName": "Microsoft Edge Beta version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_3", + "displayName": "Microsoft Edge Dev version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_4", + "displayName": "Microsoft Edge Canary version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser_0", + "displayName": "Microsoft Edge version 45 or earlier", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2", + "displayName": "Second choice (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_", + "displayName": "", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_1", + "displayName": "Microsoft Edge Stable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_2", + "displayName": "Microsoft Edge Beta version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_3", + "displayName": "Microsoft Edge Dev version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_4", + "displayName": "Microsoft Edge Canary version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser2_0", + "displayName": "Microsoft Edge version 45 or earlier", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3", + "displayName": "Third choice (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_", + "displayName": "", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_1", + "displayName": "Microsoft Edge Stable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_2", + "displayName": "Microsoft Edge Beta version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_3", + "displayName": "Microsoft Edge Dev version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_4", + "displayName": "Microsoft Edge Canary version 77 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_configureedgeredirectchannel_neededgebrowser3_0", + "displayName": "Microsoft Edge version 45 or earlier", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_consistentmimehandlinginternetexplorerprocesses", + "displayName": "Internet Explorer Processes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_consistentmimehandlinginternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_consistentmimehandlinginternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableactivexversionlistautodownload", + "displayName": "Turn off automatic download of the ActiveX VersionList (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableactivexversionlistautodownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableactivexversionlistautodownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableadobeflash", + "displayName": "Turn off Adobe Flash in Internet Explorer and prevent applications from using Internet Explorer technology to instantiate Flash objects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableadobeflash_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableadobeflash_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarnings", + "displayName": "Prevent bypassing SmartScreen Filter warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarningsaboutuncommonfiles", + "displayName": "Prevent bypassing SmartScreen Filter warnings about files that are not commonly downloaded from the Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarningsaboutuncommonfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablebypassofsmartscreenwarningsaboutuncommonfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecompatview", + "displayName": "Turn off Compatibility View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecompatview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecompatview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableconfiguringhistory", + "displayName": "Disable \"Configuring History\" (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableconfiguringhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableconfiguringhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableconfiguringhistory_daystokeep_prompt", + "displayName": "Days to keep pages in History (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecrashdetection", + "displayName": "Turn off Crash Detection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecrashdetection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecrashdetection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecustomerexperienceimprovementprogramparticipation", + "displayName": "Prevent participation in the Customer Experience Improvement Program (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecustomerexperienceimprovementprogramparticipation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablecustomerexperienceimprovementprogramparticipation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disabledeletinguservisitedwebsites", + "displayName": "Prevent deleting websites that the user has visited (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disabledeletinguservisitedwebsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disabledeletinguservisitedwebsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableenclosuredownloading", + "displayName": "Prevent downloading of enclosures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableenclosuredownloading_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableenclosuredownloading_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport", + "displayName": "Turn off encryption support (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions", + "displayName": "Secure Protocol combinations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_0", + "displayName": "Use no secure protocols", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_8", + "displayName": "Only use SSL 2.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_32", + "displayName": "Only use SSL 3.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_40", + "displayName": "Use SSL 2.0 and SSL 3.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_128", + "displayName": "Only use TLS 1.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_136", + "displayName": "Use SSL 2.0 and TLS 1.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_160", + "displayName": "Use SSL 3.0 and TLS 1.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_168", + "displayName": "Use SSL 2.0, SSL 3.0, and TLS 1.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_512", + "displayName": "Only use TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_520", + "displayName": "Use SSL 2.0 and TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_544", + "displayName": "Use SSL 3.0 and TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_552", + "displayName": "Use SSL 2.0, SSL 3.0, and TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_640", + "displayName": "Use TLS 1.0 and TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_648", + "displayName": "Use SSL 2.0, TLS 1.0, and TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_672", + "displayName": "Use SSL 3.0, TLS 1.0, and TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_680", + "displayName": "Use SSL 2.0, SSL 3.0, TLS 1.0, and TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2048", + "displayName": "Only use TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2056", + "displayName": "Use SSL 2.0 and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2080", + "displayName": "Use SSL 3.0 and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2088", + "displayName": "Use SSL 2.0, SSL 3.0, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2176", + "displayName": "Use TLS 1.0 and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2184", + "displayName": "Use SSL 2.0, TLS 1.0, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2208", + "displayName": "Use SSL 3.0, TLS 1.0, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2216", + "displayName": "Use SSL 2.0, SSL 3.0, TLS 1.0, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2560", + "displayName": "Use TLS 1.1 and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2568", + "displayName": "Use SSL 2.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2592", + "displayName": "Use SSL 3.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2600", + "displayName": "Use SSL 2.0, SSL 3.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2688", + "displayName": "Use TLS 1.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2696", + "displayName": "Use SSL 2.0, TLS 1.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2720", + "displayName": "Use SSL 3.0, TLS 1.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_2728", + "displayName": "Use SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1, and TLS 1.2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_8192", + "displayName": "Only use TLS 1.3", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_10240", + "displayName": "Use TLS 1.2 and TLS 1.3", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_10752", + "displayName": "Use TLS 1.1, TLS 1.2, and TLS 1.3", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_10880", + "displayName": "Use TLS 1.0, TLS 1.1, TLS 1.2, and TLS 1.3", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableencryptionsupport_advanced_wininetprotocoloptions_10912", + "displayName": "Use SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, and TLS 1.3", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefeedsbackgroundsync", + "displayName": "Turn off background synchronization for feeds and Web Slices (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefeedsbackgroundsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefeedsbackgroundsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard", + "displayName": "Prevent running First Run wizard (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_firstrunoptions", + "displayName": "Select your choice (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_firstrunoptions_1", + "displayName": "Go directly to home page", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablefirstrunwizard_firstrunoptions_2", + "displayName": "Go directly to \"Welcome To IE\" page", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableflipaheadfeature", + "displayName": "Turn off the flip ahead with page prediction feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableflipaheadfeature_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableflipaheadfeature_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablegeolocation", + "displayName": "Turn off browser geolocation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablegeolocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablegeolocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablehomepagechange", + "displayName": "Disable changing home page settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablehomepagechange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablehomepagechange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablehomepagechange_enterhomepageprompt", + "displayName": "Home Page (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablehtmlapplication", + "displayName": "Disable HTML Application (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablehtmlapplication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablehtmlapplication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableignoringcertificateerrors", + "displayName": "Prevent ignoring certificate errors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableignoringcertificateerrors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableignoringcertificateerrors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinprivatebrowsing", + "displayName": "Turn off InPrivate Browsing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinprivatebrowsing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinprivatebrowsing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp", + "displayName": "[Deprecated] Disable Internet Explorer 11 as a standalone browser (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2", + "displayName": "Disable Internet Explorer 11 as a standalone browser (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_notifydisableieoptions", + "displayName": "Notify that Internet Explorer 11 browser is disabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_notifydisableieoptions_0", + "displayName": "Never", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_notifydisableieoptions_1", + "displayName": "Always", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableinternetexplorerapp_v2_notifydisableieoptions_2", + "displayName": "Once per user", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableprocessesinenhancedprotectedmode", + "displayName": "Turn on 64-bit tab processes when running in Enhanced Protected Mode on 64-bit versions of Windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableprocessesinenhancedprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableprocessesinenhancedprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableproxychange", + "displayName": "Prevent changing proxy settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableproxychange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disableproxychange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesearchproviderchange", + "displayName": "Prevent changing the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesearchproviderchange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesearchproviderchange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesecondaryhomepagechange", + "displayName": "Disable changing secondary home page settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesecondaryhomepagechange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesecondaryhomepagechange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesecondaryhomepagechange_secondaryhomepageslist", + "displayName": "Secondary home pages (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesecuritysettingscheck", + "displayName": "Turn off the Security Settings Check feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesecuritysettingscheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablesecuritysettingscheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablewebaddressautocomplete", + "displayName": "Turn off the auto-complete feature for web addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablewebaddressautocomplete_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_disablewebaddressautocomplete_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotallowactivexcontrolsinprotectedmode", + "displayName": "Do not allow ActiveX controls to run in Protected Mode when Enhanced Protected Mode is enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotallowactivexcontrolsinprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotallowactivexcontrolsinprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrols", + "displayName": "Turn off blocking of outdated ActiveX controls for Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrolsonspecificdomains", + "displayName": "Turn off blocking of outdated ActiveX controls for Internet Explorer on specific domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrolsonspecificdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrolsonspecificdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_donotblockoutdatedactivexcontrolsonspecificdomains_domainlist", + "displayName": "Domain allow list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_enableextendediemodehotkeys", + "displayName": "Enable extended hot keys in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_enableextendediemodehotkeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_enableextendediemodehotkeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_enableglobalwindowlistiniemode", + "displayName": "Enable global window list in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_enableglobalwindowlistiniemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_enableglobalwindowlistiniemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_includealllocalsites", + "displayName": "Intranet Sites: Include all local (intranet) sites not listed in other zones (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_includealllocalsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_includealllocalsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_includeallnetworkpaths", + "displayName": "Intranet Sites: Include all network paths (UNCs) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_includeallnetworkpaths_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_includeallnetworkpaths_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript", + "displayName": "Allow cut, copy or paste operations from the clipboard via script (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_iz_partname1407", + "displayName": "Allow paste operations via script (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_iz_partname1407_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_iz_partname1407_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowcopypasteviascript_iz_partname1407_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles", + "displayName": "Allow drag and drop or copy and paste files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_iz_partname1802", + "displayName": "Allow drag and drop or copy and paste files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_iz_partname1802_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_iz_partname1802_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowdraganddropcopyandpastefiles_iz_partname1802_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles", + "displayName": "Allow loading of XAML files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_iz_partname2402", + "displayName": "XAML Files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_iz_partname2402_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_iz_partname2402_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowloadingofxamlfiles_iz_partname2402_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols", + "displayName": "Allow only approved domains to use ActiveX controls without prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b", + "displayName": "Only allow approved domains to use ActiveX controls without prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol", + "displayName": "Allow only approved domains to use the TDC ActiveX control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c", + "displayName": "Only allow approved domains to use the TDC ActiveX control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols", + "displayName": "Allow scripting of Internet Explorer WebBrowser controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206", + "displayName": "Internet Explorer web browser control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows", + "displayName": "Allow script-initiated windows without size or position constraints (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_iz_partname2102", + "displayName": "Allow script-initiated windows without size or position constraints (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_iz_partname2102_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptinitiatedwindows_iz_partname2102_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript", + "displayName": "Allow updates to status bar via script (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_iz_partname2103", + "displayName": "Status bar updates via script (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_iz_partname2103_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowupdatestostatusbarviascript_iz_partname2103_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer", + "displayName": "Allow VBScript to run in Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_iz_partname140c", + "displayName": "Allow VBScript to run in Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_iz_partname140c_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_iz_partname140c_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneallowvbscripttorunininternetexplorer_iz_partname140c_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols", + "displayName": "Download signed ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_iz_partname1001", + "displayName": "Download signed ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_iz_partname1001_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_iz_partname1001_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadsignedactivexcontrols_iz_partname1001_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols", + "displayName": "Download unsigned ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_iz_partname1004", + "displayName": "Download unsigned ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_iz_partname1004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_iz_partname1004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonedownloadunsignedactivexcontrols_iz_partname1004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter", + "displayName": "Turn on Cross-Site Scripting Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_iz_partname1409", + "displayName": "Turn on Cross-Site Scripting (XSS) Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_iz_partname1409_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablecrosssitescriptingfilter_iz_partname1409_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows", + "displayName": "Enable dragging of content from different domains across windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709", + "displayName": "Enable dragging of content from different domains across windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows", + "displayName": "Enable dragging of content from different domains within a window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708", + "displayName": "Enable dragging of content from different domains within a window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing", + "displayName": "Enable MIME Sniffing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_iz_partname2100", + "displayName": "Enable MIME Sniffing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_iz_partname2100_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenablemimesniffing_iz_partname2100_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode", + "displayName": "Turn on Protected Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_iz_partname2500", + "displayName": "Protected Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_iz_partname2500_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneenableprotectedmode_iz_partname2500_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver", + "displayName": "Include local path when user is uploading files to a server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a", + "displayName": "Include local directory path when uploading files to a server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe", + "displayName": "Launching applications and files in an IFRAME (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_iz_partname1804", + "displayName": "Launching applications and files in an IFRAME (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_iz_partname1804_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_iz_partname1804_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelaunchingapplicationsandfilesiniframe_iz_partname1804_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions", + "displayName": "Logon options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00", + "displayName": "Logon options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00_196608", + "displayName": "Anonymous logon", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00_131072", + "displayName": "Automatic logon only in Intranet zone", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00_0", + "displayName": "Automatic logon with current username and password", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonelogonoptions_iz_partname1a00_65536", + "displayName": "Prompt for user name and password", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode", + "displayName": "Run .NET Framework-reliant components signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001", + "displayName": "Run .NET Framework-reliant components signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles", + "displayName": "Show security warning for potentially unsafe files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806", + "displayName": "Launching programs and unsafe files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker", + "displayName": "Use Pop-up Blocker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_iz_partname1809", + "displayName": "Use Pop-up Blocker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_iz_partname1809_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_internetzoneusepopupblocker_iz_partname1809_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_intranetzonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_jscriptreplacement", + "displayName": "Replace JScript by loading JScript9Legacy in place of JScript via MSHTML/WebOC. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_jscriptreplacement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_jscriptreplacement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_keepintranetsitesininternetexplorer", + "displayName": "Keep all intranet sites in Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_keepintranetsitesininternetexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_keepintranetsitesininternetexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_localmachinezonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowninternetzonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetjavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownintranetzonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownlocalmachinezonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddownrestrictedsiteszonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_lockeddowntrustedsiteszonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_mimesniffingsafetyfeatureinternetexplorerprocesses", + "displayName": "Internet Explorer Processes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_mimesniffingsafetyfeatureinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_mimesniffingsafetyfeatureinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_mkprotocolsecurityrestrictioninternetexplorerprocesses", + "displayName": "Internet Explorer Processes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_mkprotocolsecurityrestrictioninternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_mkprotocolsecurityrestrictioninternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_newtabdefaultpage", + "displayName": "Specify default behavior for a new tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions", + "displayName": "New tab behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions_3", + "displayName": "New tab page with my news feed", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions_0", + "displayName": "about:blank", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions_2", + "displayName": "New tab page", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_newtabdefaultpage_newtabactionoptions_1", + "displayName": "Home page", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_notificationbarinternetexplorerprocesses", + "displayName": "Internet Explorer Processes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_notificationbarinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_notificationbarinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter", + "displayName": "Prevent managing SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_ie9safetyfilteroptions", + "displayName": "Select SmartScreen Filter mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_ie9safetyfilteroptions_0", + "displayName": "Off", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventmanagingsmartscreenfilter_ie9safetyfilteroptions_1", + "displayName": "On", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventperuserinstallationofactivexcontrols", + "displayName": "Prevent per-user installation of ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventperuserinstallationofactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_preventperuserinstallationofactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_protectionfromzoneelevationinternetexplorerprocesses", + "displayName": "Internet Explorer Processes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_protectionfromzoneelevationinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_protectionfromzoneelevationinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_removerunthistimebuttonforoutdatedactivexcontrols", + "displayName": "Remove \"Run this time\" button for outdated ActiveX controls in Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_removerunthistimebuttonforoutdatedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_removerunthistimebuttonforoutdatedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_resetzoomfordialoginiemode", + "displayName": "Reset zoom to default for HTML dialogs in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_resetzoomfordialoginiemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_resetzoomfordialoginiemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictactivexinstallinternetexplorerprocesses", + "displayName": "Internet Explorer Processes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictactivexinstallinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictactivexinstallinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting", + "displayName": "Allow active scripting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_iz_partname1400", + "displayName": "Allow active scripting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_iz_partname1400_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_iz_partname1400_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowactivescripting_iz_partname1400_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors", + "displayName": "Allow binary and script behaviors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_iz_partname2000", + "displayName": "Allow Binary and Script Behaviors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_iz_partname2000_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_iz_partname2000_65536", + "displayName": "Administrator approved", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowbinaryandscriptbehaviors_iz_partname2000_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript", + "displayName": "Allow cut, copy or paste operations from the clipboard via script (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_iz_partname1407", + "displayName": "Allow paste operations via script (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_iz_partname1407_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_iz_partname1407_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowcopypasteviascript_iz_partname1407_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles", + "displayName": "Allow drag and drop or copy and paste files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_iz_partname1802", + "displayName": "Allow drag and drop or copy and paste files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_iz_partname1802_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_iz_partname1802_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowdraganddropcopyandpastefiles_iz_partname1802_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads", + "displayName": "Allow file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_iz_partname1803", + "displayName": "Allow file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_iz_partname1803_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfiledownloads_iz_partname1803_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles", + "displayName": "Allow loading of XAML files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_iz_partname2402", + "displayName": "XAML Files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_iz_partname2402_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_iz_partname2402_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowloadingofxamlfiles_iz_partname2402_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh", + "displayName": "Allow META REFRESH (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_iz_partname1608", + "displayName": "Allow META REFRESH (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_iz_partname1608_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowmetarefresh_iz_partname1608_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols", + "displayName": "Allow only approved domains to use ActiveX controls without prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b", + "displayName": "Only allow approved domains to use ActiveX controls without prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstouseactivexcontrols_iz_partname120b_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol", + "displayName": "Allow only approved domains to use the TDC ActiveX control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c", + "displayName": "Only allow approved domains to use the TDC ActiveX control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowonlyapproveddomainstousetdcactivexcontrol_iz_partname120c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols", + "displayName": "Allow scripting of Internet Explorer WebBrowser controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206", + "displayName": "Internet Explorer web browser control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptingofinternetexplorerwebbrowsercontrols_iz_partname1206_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows", + "displayName": "Allow script-initiated windows without size or position constraints (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_iz_partname2102", + "displayName": "Allow script-initiated windows without size or position constraints (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_iz_partname2102_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptinitiatedwindows_iz_partname2102_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript", + "displayName": "Allow updates to status bar via script (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_iz_partname2103", + "displayName": "Status bar updates via script (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_iz_partname2103_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowupdatestostatusbarviascript_iz_partname2103_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer", + "displayName": "Allow VBScript to run in Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_iz_partname140c", + "displayName": "Allow VBScript to run in Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_iz_partname140c_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_iz_partname140c_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneallowvbscripttorunininternetexplorer_iz_partname140c_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols", + "displayName": "Download signed ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_iz_partname1001", + "displayName": "Download signed ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_iz_partname1001_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_iz_partname1001_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadsignedactivexcontrols_iz_partname1001_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols", + "displayName": "Download unsigned ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_iz_partname1004", + "displayName": "Download unsigned ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_iz_partname1004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_iz_partname1004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonedownloadunsignedactivexcontrols_iz_partname1004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter", + "displayName": "Turn on Cross-Site Scripting Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_iz_partname1409", + "displayName": "Turn on Cross-Site Scripting (XSS) Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_iz_partname1409_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablecrosssitescriptingfilter_iz_partname1409_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows", + "displayName": "Enable dragging of content from different domains across windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709", + "displayName": "Enable dragging of content from different domains across windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainsacrosswindows_iz_partname2709_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows", + "displayName": "Enable dragging of content from different domains within a window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708", + "displayName": "Enable dragging of content from different domains within a window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenabledraggingofcontentfromdifferentdomainswithinwindows_iz_partname2708_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing", + "displayName": "Enable MIME Sniffing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_iz_partname2100", + "displayName": "Enable MIME Sniffing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_iz_partname2100_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneenablemimesniffing_iz_partname2100_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver", + "displayName": "Include local path when user is uploading files to a server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a", + "displayName": "Include local directory path when uploading files to a server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneincludelocalpathwhenuploadingfilestoserver_iz_partname160a_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe", + "displayName": "Launching applications and files in an IFRAME (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_iz_partname1804", + "displayName": "Launching applications and files in an IFRAME (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_iz_partname1804_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_iz_partname1804_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelaunchingapplicationsandfilesiniframe_iz_partname1804_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions", + "displayName": "Logon options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00", + "displayName": "Logon options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00_196608", + "displayName": "Anonymous logon", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00_131072", + "displayName": "Automatic logon only in Intranet zone", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00_0", + "displayName": "Automatic logon with current username and password", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonelogonoptions_iz_partname1a00_65536", + "displayName": "Prompt for user name and password", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins", + "displayName": "Run ActiveX controls and plugins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200", + "displayName": "Run ActiveX controls and plugins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200_65536", + "displayName": "Administrator approved", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunactivexcontrolsandplugins_iz_partname1200_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode", + "displayName": "Run .NET Framework-reliant components signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001", + "displayName": "Run .NET Framework-reliant components signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonerunnetframeworkreliantcomponentssignedwithauthenticode_iz_partname2001_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting", + "displayName": "Script ActiveX controls marked safe for scripting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_iz_partname1405", + "displayName": "Script ActiveX controls marked safe for scripting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_iz_partname1405_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_iz_partname1405_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptactivexcontrolsmarkedsafeforscripting_iz_partname1405_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets", + "displayName": "Scripting of Java applets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_iz_partname1402", + "displayName": "Scripting of Java applets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_iz_partname1402_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_iz_partname1402_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszonescriptingofjavaapplets_iz_partname1402_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles", + "displayName": "Show security warning for potentially unsafe files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806", + "displayName": "Launching programs and unsafe files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneshowsecuritywarningforpotentiallyunsafefiles_iz_partname1806_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode", + "displayName": "Turn on Protected Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_iz_partname2500", + "displayName": "Protected Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_iz_partname2500_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneturnonprotectedmode_iz_partname2500_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker", + "displayName": "Use Pop-up Blocker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_iz_partname1809", + "displayName": "Use Pop-up Blocker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_iz_partname1809_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictedsiteszoneusepopupblocker_iz_partname1809_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictfiledownloadinternetexplorerprocesses", + "displayName": "Internet Explorer Processes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictfiledownloadinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_restrictfiledownloadinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_scriptedwindowsecurityrestrictionsinternetexplorerprocesses", + "displayName": "Internet Explorer Processes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_scriptedwindowsecurityrestrictionsinternetexplorerprocesses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_scriptedwindowsecurityrestrictionsinternetexplorerprocesses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_searchproviderlist", + "displayName": "Restrict search providers to a specific list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_searchproviderlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_searchproviderlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_sendsitesnotinenterprisesitelisttoedge", + "displayName": "Send all sites not included in the Enterprise Mode Site List to Microsoft Edge. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_sendsitesnotinenterprisesitelisttoedge_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_sendsitesnotinenterprisesitelisttoedge_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_specifyuseofactivexinstallerservice", + "displayName": "Specify use of ActiveX Installer Service for installation of ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_specifyuseofactivexinstallerservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_specifyuseofactivexinstallerservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_iz_partname1406", + "displayName": "Access data sources across domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_iz_partname1406_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_iz_partname1406_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowaccesstodatasources_iz_partname1406_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201", + "displayName": "Automatic prompting for ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforactivexcontrols_iz_partname2201_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200", + "displayName": "Automatic prompting for file downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowautomaticpromptingforfiledownloads_iz_partname2200_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_iz_partname1604", + "displayName": "Allow font downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_iz_partname1604_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_iz_partname1604_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowfontdownloads_iz_partname1604_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_iz_partname2101", + "displayName": "Web sites in less privileged Web content zones can navigate into this zone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_iz_partname2101_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_iz_partname2101_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowlessprivilegedsites_iz_partname2101_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004", + "displayName": "Run .NET Framework-reliant components not signed with Authenticode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallownetframeworkreliantcomponents_iz_partname2004_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets", + "displayName": "Allow scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_iz_partname1209", + "displayName": "Scriptlets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_iz_partname1209_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowscriptlets_iz_partname1209_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie", + "displayName": "Turn on SmartScreen Filter scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_iz_partname2301", + "displayName": "Use SmartScreen Filter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_iz_partname2301_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowsmartscreenie_iz_partname2301_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_iz_partname1606", + "displayName": "Userdata persistence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_iz_partname1606_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneallowuserdatapersistence_iz_partname1606_3", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c", + "displayName": "Don't run antimalware programs against ActiveX controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_3", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonedonotrunantimalwareagainstactivexcontrols_iz_partname270c_0", + "displayName": "Disable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201", + "displayName": "Initialize and script ActiveX controls not marked as safe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszoneinitializeandscriptactivexcontrols_iz_partname1201_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00", + "displayName": "Java permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_65536", + "displayName": "High safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_131072", + "displayName": "Medium safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_196608", + "displayName": "Low safety", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_8388608", + "displayName": "Custom", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonejavapermissions_iz_partname1c00_0", + "displayName": "Disable Java", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_iz_partname1607", + "displayName": "Navigate windows and frames across different domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_iz_partname1607_0", + "displayName": "Enable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_iz_partname1607_3", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_internetexplorer_trustedsiteszonenavigatewindowsandframes_iz_partname1607_1", + "displayName": "Prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_blockedurlexceptions", + "displayName": "Blocked Url Exceptions (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_blockedurls", + "displayName": "Blocked Urls (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_defaulturl", + "displayName": "Default URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enableendsessionbutton", + "displayName": "Enable End Session Button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enableendsessionbutton_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enableendsessionbutton_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enablehomebutton", + "displayName": "Enable Home Button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enablehomebutton_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enablehomebutton_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enablenavigationbuttons", + "displayName": "Enable Navigation Buttons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enablenavigationbuttons_1", + "displayName": "Enable", + "description": "Enable" + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_enablenavigationbuttons_0", + "displayName": "Disable", + "description": "Disable" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_kioskbrowser_restartonidletime", + "displayName": "Restart On Idle Time (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_1", + "displayName": "Specify server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_1_l_serveraddressexternal_value", + "displayName": "DNS name of the external server (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfigurationmode_1_l_serveraddressinternal_value", + "displayName": "DNS name of the internal server (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfiguredservercheckvalues_1", + "displayName": "Additional server versions supported (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfiguredservercheckvalues_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfiguredservercheckvalues_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyconfiguredservercheckvalues_1_l_configuredservercheckvalues_value", + "displayName": "Server version names (semicolon separated list): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableautomaticsendtracing_1", + "displayName": "Disable automatic upload of sign-in failure logs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableautomaticsendtracing_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableautomaticsendtracing_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablehttpconnect_1", + "displayName": "Disable HTTP fallback for SIP connection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablehttpconnect_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablehttpconnect_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablentcredentials_1", + "displayName": "Require logon credentials (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablentcredentials_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisablentcredentials_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableservercheck_1", + "displayName": "Disable server version check (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableservercheck_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policydisableservercheck_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablebitsforgaldownload_1", + "displayName": "Enable using BITS to download Address Book Service files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablebitsforgaldownload_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablebitsforgaldownload_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablesiphighsecuritymode_1", + "displayName": "Configure SIP security mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablesiphighsecuritymode_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policyenablesiphighsecuritymode_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policygaldownloadinitialdelay_1", + "displayName": "Global Address Book Download Initial Delay (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policygaldownloadinitialdelay_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policygaldownloadinitialdelay_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policygaldownloadinitialdelay_1_l_galdownloadinitialdelay_value", + "displayName": "Maximum possible number of minutes to delay download: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policypreventrun_1", + "displayName": "Prevent users from running Microsoft Lync (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policypreventrun_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policypreventrun_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysavepassword_1", + "displayName": "Allow storage of user passwords (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysavepassword_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysavepassword_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1", + "displayName": "Configure SIP compression mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1_l_policysipcompression", + "displayName": "Configure SIP compression mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1_l_policysipcompression_0", + "displayName": "Always disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1_l_policysipcompression_1", + "displayName": "Always enabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1_l_policysipcompression_2", + "displayName": "Based on adaptor speed (default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policysipcompression_1_l_policysipcompression_3", + "displayName": "Based on ping round-trip time", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policytrustmodeldata_1", + "displayName": "Trusted Domain List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policytrustmodeldata_1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policytrustmodeldata_1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_lync16v2~policy~l_lync~l_lyncconfiguration_l_policytrustmodeldata_1_l_trustmodeldata_value", + "displayName": "Trusted Domains (comma separated list): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder", + "displayName": "Configure the location of the browser executable folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_browserexecutablefolderdesc", + "displayName": "Set value name to the Application User Model ID or the executable file name. You can use the \"*\" wildcard as value name to apply to all applications. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_browserexecutablefolderdesc_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_browserexecutablefolder_browserexecutablefolderdesc_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference", + "displayName": "Set the release channel search order preference (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_releasechannelpreferencedesc", + "displayName": "Set value name to the Application User Model ID or the executable file name. You can use the \"*\" wildcard as value name to apply to all applications. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_releasechannelpreferencedesc_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v1~policy~microsoft_edge_webview2~webview2loaderoverridesettings_releasechannelpreference_releasechannelpreferencedesc_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_2", + "displayName": "Retrieve configurations and experiments", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_1", + "displayName": "Retrieve configurations only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_0", + "displayName": "Disable communication with the Experimentation and Configuration Service", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_forcepermissionpolicyunloaddefaultenabled", + "displayName": "Controls whether unload event handlers can be disabled. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_forcepermissionpolicyunloaddefaultenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_forcepermissionpolicyunloaddefaultenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist", + "displayName": "HTTP Allowlist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_httpallowlistdesc", + "displayName": "HTTP Allowlist (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_httpallowlistdesc_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_httpallowlist_httpallowlistdesc_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newbaseurlinheritancebehaviorallowed", + "displayName": "Allows enabling the feature NewBaseUrlInheritanceBehavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newbaseurlinheritancebehaviorallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newbaseurlinheritancebehaviorallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list", + "displayName": "Enable built-in PDF reader powered by Adobe Acrobat for WebView2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_newpdfreaderwebview2listdesc", + "displayName": "Set value name to the Application User Model ID or the executable file name. You can use the \"*\" wildcard as value name to apply to all applications. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_newpdfreaderwebview2listdesc_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_newpdfreaderwebview2list_newpdfreaderwebview2listdesc_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_rsakeyusageforlocalanchorsenabled", + "displayName": "Check RSA key usage for server certificates issued by local trust anchors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_rsakeyusageforlocalanchorsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge_webview2v2~policy~microsoft_edge_webview2_rsakeyusageforlocalanchorsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowdeletingbrowserhistory", + "displayName": "Enable deleting browser and download history (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowdeletingbrowserhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowdeletingbrowserhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowfileselectiondialogs", + "displayName": "Allow file selection dialogs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowfileselectiondialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_allowfileselectiondialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_alwaysopenpdfexternally", + "displayName": "Always open PDF files externally (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_alwaysopenpdfexternally_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_alwaysopenpdfexternally_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_applicationlocalevalue", + "displayName": "Set application locale (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_applicationlocalevalue_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_applicationlocalevalue_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_applicationlocalevalue_applicationlocalevalue", + "displayName": "Application locale (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowed", + "displayName": "Allow or block audio capture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowedurls", + "displayName": "Sites that can access audio capture devices without requesting permission (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_audiocaptureallowedurls_audiocaptureallowedurlsdesc", + "displayName": "Sites that can access audio capture devices without requesting permission (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofilladdressenabled", + "displayName": "Enable AutoFill for addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofilladdressenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofilladdressenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofillcreditcardenabled", + "displayName": "Enable AutoFill for payment instruments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofillcreditcardenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autofillcreditcardenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun", + "displayName": "Automatically import another browser's data and settings at first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun", + "displayName": "Automatically import another browser's data and settings at first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_0", + "displayName": "Automatically imports all supported datatypes and settings from the default browser", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_1", + "displayName": "Automatically imports all supported datatypes and settings from Internet Explorer", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_2", + "displayName": "Automatically imports all supported datatypes and settings from Google Chrome", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_3", + "displayName": "Automatically imports all supported datatypes and settings from Safari", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_autoimportatfirstrun_autoimportatfirstrun_4", + "displayName": "Disables automatic import, and the import section of the first-run experience is skipped", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_backgroundmodeenabled", + "displayName": "Continue running background apps after Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_backgroundmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_backgroundmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_blockthirdpartycookies", + "displayName": "Block third party cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_blockthirdpartycookies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_blockthirdpartycookies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browseraddprofileenabled", + "displayName": "Enable profile creation from the Identity flyout menu or the Settings page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browseraddprofileenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browseraddprofileenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browserguestmodeenabled", + "displayName": "Enable guest mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browserguestmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browserguestmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsernetworktimequeriesenabled", + "displayName": "Allow queries to a Browser Network Time service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsernetworktimequeriesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsernetworktimequeriesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin", + "displayName": "Browser sign-in settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_browsersignin", + "displayName": "Browser sign-in settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_browsersignin_0", + "displayName": "Disable browser sign-in", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_browsersignin_1", + "displayName": "Enable browser sign-in", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_browsersignin_browsersignin_2", + "displayName": "Force users to sign-in to use the browser", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_builtindnsclientenabled", + "displayName": "Use built-in DNS client (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_builtindnsclientenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_builtindnsclientenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforcas", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforcas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforcas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforcas_certificatetransparencyenforcementdisabledforcasdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of subjectPublicKeyInfo hashes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforlegacycas", + "displayName": "Disable Certificate Transparency enforcement for a list of legacy certificate authorities (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforlegacycas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforlegacycas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforlegacycas_certificatetransparencyenforcementdisabledforlegacycasdesc", + "displayName": "Disable Certificate Transparency enforcement for a list of legacy certificate authorities (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforurls", + "displayName": "Disable Certificate Transparency enforcement for specific URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_certificatetransparencyenforcementdisabledforurls_certificatetransparencyenforcementdisabledforurlsdesc", + "displayName": "Disable Certificate Transparency enforcement for specific URLs (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_componentupdatesenabled", + "displayName": "Enable component updates in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_componentupdatesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_componentupdatesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configuredonottrack", + "displayName": "Configure Do Not Track (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configuredonottrack_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configuredonottrack_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configureonlinetexttospeech", + "displayName": "Configure Online Text To Speech (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configureonlinetexttospeech_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_configureonlinetexttospeech_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability", + "displayName": "Control where developer tools can be used (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_developertoolsavailability", + "displayName": "Control where developer tools can be used (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_developertoolsavailability_0", + "displayName": "Block the developer tools on extensions installed by enterprise policy, allow in other contexts", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_developertoolsavailability_1", + "displayName": "Allow using the developer tools", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_developertoolsavailability_developertoolsavailability_2", + "displayName": "Don't allow using the developer tools", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disable3dapis", + "displayName": "Disable support for 3D graphics APIs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disable3dapis_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disable3dapis_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disablescreenshots", + "displayName": "Disable taking screenshots (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disablescreenshots_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_disablescreenshots_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachedir", + "displayName": "Set disk cache directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachedir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachedir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachedir_diskcachedir", + "displayName": "Set disk cache directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachesize", + "displayName": "Set disk cache size, in bytes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_diskcachesize_diskcachesize", + "displayName": "Set disk cache size: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloaddirectory", + "displayName": "Set download directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloaddirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloaddirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloaddirectory_downloaddirectory", + "displayName": "Set download directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions", + "displayName": "Allow download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions", + "displayName": "Download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_1", + "displayName": "Block dangerous downloads", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_2", + "displayName": "Block potentially dangerous downloads", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_editfavoritesenabled", + "displayName": "Allows users to edit favorites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_editfavoritesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_editfavoritesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledeprecatedwebplatformfeatures", + "displayName": "Re-enable deprecated web platform features for a limited time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledeprecatedwebplatformfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledeprecatedwebplatformfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledeprecatedwebplatformfeatures_enabledeprecatedwebplatformfeaturesdesc", + "displayName": "Re-enable deprecated web platform features for a limited time (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledomainactionsdownload", + "displayName": "Enable Domain Actions Download from Microsoft (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledomainactionsdownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enabledomainactionsdownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enableonlinerevocationchecks", + "displayName": "Enable online OCSP/CRL checks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enableonlinerevocationchecks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_enableonlinerevocationchecks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol", + "displayName": "Control communication with the Experimentation and Configuration Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_2", + "displayName": "Retrieve configurations and experiments", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_1", + "displayName": "Retrieve configurations only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_experimentationandconfigurationservicecontrol_experimentationandconfigurationservicecontrol_0", + "displayName": "Disable communication with the Experimentation and Configuration Service", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_favoritesbarenabled", + "displayName": "Enable favorites bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_favoritesbarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_favoritesbarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch", + "displayName": "Enforce Bing SafeSearch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_forcebingsafesearch", + "displayName": "Enforce Bing SafeSearch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_forcebingsafesearch_0", + "displayName": "Don't configure search restrictions in Bing", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_forcebingsafesearch_1", + "displayName": "Configure moderate search restrictions in Bing", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcebingsafesearch_forcebingsafesearch_2", + "displayName": "Configure strict search restrictions in Bing", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceephemeralprofiles", + "displayName": "Enable use of ephemeral profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceephemeralprofiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceephemeralprofiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcegooglesafesearch", + "displayName": "Enforce Google SafeSearch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcegooglesafesearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forcegooglesafesearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_forceyoutuberestrict", + "displayName": "Force minimum YouTube Restricted Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_forceyoutuberestrict_0", + "displayName": "Do not enforce Restricted Mode on YouTube", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_forceyoutuberestrict_1", + "displayName": "Enforce at least Moderate Restricted Mode on YouTube", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_forceyoutuberestrict_forceyoutuberestrict_2", + "displayName": "Enforce Strict Restricted Mode for YouTube", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_fullscreenallowed", + "displayName": "Allow full screen mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_fullscreenallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_fullscreenallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_hardwareaccelerationmodeenabled", + "displayName": "Use hardware acceleration when available (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_hardwareaccelerationmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_hardwareaccelerationmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importautofillformdata", + "displayName": "Allow importing of autofill form data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importautofillformdata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importautofillformdata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importfavorites", + "displayName": "Allow importing of favorites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importfavorites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importfavorites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhistory", + "displayName": "Allow importing of browsing history (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhomepage", + "displayName": "Allow importing of home page settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importpaymentinfo", + "displayName": "Allow importing of payment info (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importpaymentinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importpaymentinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsavedpasswords", + "displayName": "Allow importing of saved passwords (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsavedpasswords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsavedpasswords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsearchengine", + "displayName": "Allow importing of search engine settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsearchengine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_importsearchengine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability", + "displayName": "Configure InPrivate mode availability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_inprivatemodeavailability", + "displayName": "Configure InPrivate mode availability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_inprivatemodeavailability_0", + "displayName": "InPrivate mode available", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_inprivatemodeavailability_1", + "displayName": "InPrivate mode disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_inprivatemodeavailability_inprivatemodeavailability_2", + "displayName": "InPrivate mode forced", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel", + "displayName": "Configure Internet Explorer integration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_internetexplorerintegrationlevel", + "displayName": "Configure Internet Explorer integration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_internetexplorerintegrationlevel_1", + "displayName": "Internet Explorer mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_internetexplorerintegrationlevel_internetexplorerintegrationlevel_2", + "displayName": "Internet Explorer 11", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_isolateorigins", + "displayName": "Enable site isolation for specific origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_isolateorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_isolateorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_isolateorigins_isolateorigins", + "displayName": "Enable site isolation for specific origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedfavorites", + "displayName": "Configure favorites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedfavorites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedfavorites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedfavorites_managedfavorites", + "displayName": "Configure favorites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedsearchengines", + "displayName": "Manage Search Engines (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedsearchengines_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedsearchengines_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_managedsearchengines_managedsearchengines", + "displayName": "Manage Search Engines (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_maxconnectionsperproxy", + "displayName": "Maximum number of concurrent connections to the proxy server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_maxconnectionsperproxy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_maxconnectionsperproxy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_maxconnectionsperproxy_maxconnectionsperproxy", + "displayName": "Maximum number of concurrent connections to the proxy server: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_mediaroutercastallowallips", + "displayName": "Allow Google Cast to connect to Cast devices on all IP addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_mediaroutercastallowallips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_mediaroutercastallowallips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_metricsreportingenabled", + "displayName": "Enable usage and crash-related data reporting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_metricsreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_metricsreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_networkpredictionoptions", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular.\r\n(Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_networkpredictionoptions_networkpredictionoptions_2", + "displayName": "Don't predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_overridesecurityrestrictionsoninsecureorigin", + "displayName": "Control where security restrictions on insecure origins apply (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_overridesecurityrestrictionsoninsecureorigin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_overridesecurityrestrictionsoninsecureorigin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_overridesecurityrestrictionsoninsecureorigin_overridesecurityrestrictionsoninsecureorigindesc", + "displayName": "Control where security restrictions on insecure origins apply (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_proactiveauthenabled", + "displayName": "Enable Proactive Authentication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_proactiveauthenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_proactiveauthenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promotionaltabsenabled", + "displayName": "Enable full-tab promotional content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promotionaltabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promotionaltabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promptfordownloadlocation", + "displayName": "Ask where to save downloaded files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promptfordownloadlocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_promptfordownloadlocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_quicallowed", + "displayName": "Allow QUIC protocol (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_quicallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_quicallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_applicationlocalevalue_recommended", + "displayName": "Set application locale (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_applicationlocalevalue_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_applicationlocalevalue_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_applicationlocalevalue_recommended_applicationlocalevalue", + "displayName": "Application locale (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofilladdressenabled_recommended", + "displayName": "Enable AutoFill for addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofilladdressenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofilladdressenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofillcreditcardenabled_recommended", + "displayName": "Enable AutoFill for credit cards (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofillcreditcardenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_autofillcreditcardenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_backgroundmodeenabled_recommended", + "displayName": "Continue running background apps after Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_backgroundmodeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_backgroundmodeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_blockthirdpartycookies_recommended", + "displayName": "Block third party cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_blockthirdpartycookies_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_blockthirdpartycookies_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloaddirectory_recommended", + "displayName": "Set download directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloaddirectory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloaddirectory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloaddirectory_recommended_downloaddirectory", + "displayName": "Set download directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended", + "displayName": "Allow download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions", + "displayName": "Download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_1", + "displayName": "Block dangerous downloads", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_2", + "displayName": "Block potentially dangerous downloads", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_favoritesbarenabled_recommended", + "displayName": "Enable favorites bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_favoritesbarenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_favoritesbarenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importautofillformdata_recommended", + "displayName": "Allow importing of autofill form data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importautofillformdata_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importautofillformdata_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importfavorites_recommended", + "displayName": "Allow importing of favorites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importfavorites_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importfavorites_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importhistory_recommended", + "displayName": "Allow importing of browsing history (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importhistory_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importhistory_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importpaymentinfo_recommended", + "displayName": "Allow importing of payment info (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importpaymentinfo_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importpaymentinfo_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsavedpasswords_recommended", + "displayName": "Allow importing of saved passwords (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsavedpasswords_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsavedpasswords_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsearchengine_recommended", + "displayName": "Allow importing of search engine settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsearchengine_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_importsearchengine_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_networkpredictionoptions", + "displayName": "Enable network prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_networkpredictionoptions_0", + "displayName": "Predict network actions on any network connection", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_networkpredictionoptions_1", + "displayName": "Predict network actions on any network that is not cellular.\r\n(Deprecated in 50, removed in 52. After 52, if value 1 is set, it will be treated as 0 - predict network actions on any network connection.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_networkpredictionoptions_recommended_networkpredictionoptions_2", + "displayName": "Don't predict network actions on any network connection", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_resolvenavigationerrorsusewebservice_recommended", + "displayName": "Enable resolution of navigation errors using a web service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_resolvenavigationerrorsusewebservice_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_resolvenavigationerrorsusewebservice_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_searchsuggestenabled_recommended", + "displayName": "Enable search suggestions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_searchsuggestenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_searchsuggestenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_syncdisabled_recommended", + "displayName": "Disable synchronization of data using Microsoft sync services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_syncdisabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_syncdisabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_translateenabled_recommended", + "displayName": "Enable Translate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_translateenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended_translateenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended", + "displayName": "Register protocol handlers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~contentsettings_recommended_registeredprotocolhandlers_recommended_registeredprotocolhandlers", + "displayName": "Register protocol handlers (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended", + "displayName": "Enable saving passwords to the password manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmanagerenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printheaderfooter_recommended", + "displayName": "Print headers and footers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printheaderfooter_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printheaderfooter_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended", + "displayName": "Set the system default printer as the default printer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~printing_recommended_printpreviewusesystemdefaultprinter_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenenabled_recommended", + "displayName": "Configure Microsoft Defender SmartScreen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepageisnewtabpage_recommended", + "displayName": "Set the new tab page as the home page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepageisnewtabpage_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepageisnewtabpage_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepagelocation_recommended", + "displayName": "Configure the home page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepagelocation_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepagelocation_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_homepagelocation_recommended_homepagelocation", + "displayName": "Home page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_newtabpagelocation_recommended", + "displayName": "Configure the new tab page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_newtabpagelocation_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_newtabpagelocation_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_newtabpagelocation_recommended_newtabpagelocation", + "displayName": "New tab page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended", + "displayName": "Action to take on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup", + "displayName": "Action to take on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_5", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartupurls_recommended", + "displayName": "Sites to open when the browser starts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartupurls_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartupurls_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_restoreonstartupurls_recommended_restoreonstartupurlsdesc", + "displayName": "Sites to open when the browser starts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_showhomebutton_recommended", + "displayName": "Show Home button on toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_showhomebutton_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_recommended~startup_recommended_showhomebutton_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification", + "displayName": "Notify a user that a browser restart is recommended or required for pending updates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_relaunchnotification", + "displayName": "Notify a user that a browser restart is recommended or required for pending updates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_relaunchnotification_1", + "displayName": "Recommended - Show a recurring prompt to the user indicating that a restart is recommended", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotification_relaunchnotification_2", + "displayName": "Required - Show a recurring prompt to the user indicating that a restart is required", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotificationperiod", + "displayName": "Set the time period for update notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotificationperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotificationperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_relaunchnotificationperiod_relaunchnotificationperiod", + "displayName": "Set the time period for update notifications: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_requireonlinerevocationchecksforlocalanchors", + "displayName": "Specify if online OCSP/CRL checks are required for local trust anchors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_requireonlinerevocationchecksforlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_requireonlinerevocationchecksforlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_resolvenavigationerrorsusewebservice", + "displayName": "Enable resolution of navigation errors using a web service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_resolvenavigationerrorsusewebservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_resolvenavigationerrorsusewebservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_restrictsignintopattern", + "displayName": "Restrict which accounts can be used to sign in to Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_restrictsignintopattern_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_restrictsignintopattern_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_restrictsignintopattern_restrictsignintopattern", + "displayName": "Restrict which accounts can be used as Microsoft Edge primary accounts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_runallflashinallowmode", + "displayName": "Extend Adobe Flash content setting to all content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_runallflashinallowmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_runallflashinallowmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_savingbrowserhistorydisabled", + "displayName": "Disable saving browser history (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_savingbrowserhistorydisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_savingbrowserhistorydisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_searchsuggestenabled", + "displayName": "Enable search suggestions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_searchsuggestenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_searchsuggestenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_securitykeypermitattestation", + "displayName": "Websites or domains that don't need permission to use direct Security Key attestation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_securitykeypermitattestation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_securitykeypermitattestation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_securitykeypermitattestation_securitykeypermitattestationdesc", + "displayName": "Websites or domains that don't need permission to use direct Security Key attestation (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendintranettointernetexplorer", + "displayName": "Send all intranet sites to Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendintranettointernetexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendintranettointernetexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendsiteinfotoimproveservices", + "displayName": "Send site information to improve Microsoft services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendsiteinfotoimproveservices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sendsiteinfotoimproveservices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_showofficeshortcutinfavoritesbar", + "displayName": "Show Microsoft Office shortcut in favorites bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_showofficeshortcutinfavoritesbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_showofficeshortcutinfavoritesbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_siteperprocess", + "displayName": "Enable site isolation for every site (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_siteperprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_siteperprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellcheckenabled", + "displayName": "Enable spellcheck (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellcheckenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellcheckenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellchecklanguage", + "displayName": "Enable specific spellcheck languages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellchecklanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellchecklanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_spellchecklanguage_spellchecklanguagedesc", + "displayName": "Enable specific spellcheck languages (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslerroroverrideallowed", + "displayName": "Allow users to proceed from the HTTPS warning page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslerroroverrideallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslerroroverrideallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin", + "displayName": "Minimum TLS version enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_sslversionmin", + "displayName": "Minimum SSL version enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_sslversionmin_tls1", + "displayName": "TLS 1.0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_sslversionmin_tls1.1", + "displayName": "TLS 1.1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_sslversionmin_sslversionmin_tls1.2", + "displayName": "TLS 1.2", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_suppressunsupportedoswarning", + "displayName": "Suppress the unsupported OS warning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_suppressunsupportedoswarning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_suppressunsupportedoswarning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_syncdisabled", + "displayName": "Disable synchronization of data using Microsoft sync services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_syncdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_syncdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_tablifecyclesenabled", + "displayName": "Configure tab lifecycles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_tablifecyclesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_tablifecyclesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_taskmanagerendprocessenabled", + "displayName": "Enable ending processes in the Browser task manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_taskmanagerendprocessenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_taskmanagerendprocessenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_translateenabled", + "displayName": "Enable Translate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_translateenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_translateenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlallowlist", + "displayName": "Define a list of allowed URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlallowlist_urlallowlistdesc", + "displayName": "Define a list of allowed URLs (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlblocklist", + "displayName": "Block access to a list of URLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_urlblocklist_urlblocklistdesc", + "displayName": "Block access to a list of URLs (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userdatadir", + "displayName": "Set the user data directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userdatadir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userdatadir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userdatadir_userdatadir", + "displayName": "Set the user data directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userfeedbackallowed", + "displayName": "Allow user feedback (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userfeedbackallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_userfeedbackallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowed", + "displayName": "Allow or block video capture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowedurls", + "displayName": "Sites that can access video capture devices without requesting permission (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_videocaptureallowedurls_videocaptureallowedurlsdesc", + "displayName": "Sites that can access video capture devices without requesting permission (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webdriveroverridesincompatiblepolicies", + "displayName": "Allow WebDriver to Override Incompatible Policies (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webdriveroverridesincompatiblepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webdriveroverridesincompatiblepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling", + "displayName": "Restrict exposure of local IP address by WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling", + "displayName": "Restrict exposure of localhost IP address by WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling_default", + "displayName": "Allow all interfaces. This exposes the local IP address", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling_default_public_and_private_interfaces", + "displayName": "Allow public and private interfaces over http default route. This exposes the local IP address", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling_default_public_interface_only", + "displayName": "Allow public interface over http default route. This doesn't expose the local IP address", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtclocalhostiphandling_webrtclocalhostiphandling_disable_non_proxied_udp", + "displayName": "Use TCP unless proxy server supports UDP. This doesn't expose the local IP address", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtcudpportrange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtcudpportrange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_webrtcudpportrange_webrtcudpportrange", + "displayName": "Restrict the range of local UDP ports used by WebRTC (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_wpadquickcheckenabled", + "displayName": "Set WPAD optimization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_wpadquickcheckenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge_wpadquickcheckenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_autoselectcertificateforurls", + "displayName": "Automatically select client certificates for these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_autoselectcertificateforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_autoselectcertificateforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_autoselectcertificateforurls_autoselectcertificateforurlsdesc", + "displayName": "Automatically select client certificates for these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesallowedforurls", + "displayName": "Allow cookies on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesallowedforurls_cookiesallowedforurlsdesc", + "displayName": "Allow cookies on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesblockedforurls", + "displayName": "Block cookies on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiesblockedforurls_cookiesblockedforurlsdesc", + "displayName": "Block cookies on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiessessiononlyforurls", + "displayName": "Limit cookies from specific websites to the current session (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiessessiononlyforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiessessiononlyforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_cookiessessiononlyforurls_cookiessessiononlyforurlsdesc", + "displayName": "Limit cookies from specific websites to the current session (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting", + "displayName": "Configure cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_defaultcookiessetting", + "displayName": "Configure cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_defaultcookiessetting_1", + "displayName": "Let all sites create cookies", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_defaultcookiessetting_2", + "displayName": "Don't let any site create cookies", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultcookiessetting_defaultcookiessetting_4", + "displayName": "Keep cookies for the duration of the session", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting", + "displayName": "Default geolocation setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting", + "displayName": "Default geolocation setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_1", + "displayName": "Allow sites to track users' physical location", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_2", + "displayName": "Don't allow any site to track users' physical location", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultgeolocationsetting_defaultgeolocationsetting_3", + "displayName": "Ask whenever a site wants to track users' physical location", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting", + "displayName": "Default images setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_defaultimagessetting", + "displayName": "Default images setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_defaultimagessetting_1", + "displayName": "Allow all sites to show all images", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultimagessetting_defaultimagessetting_2", + "displayName": "Don't allow any site to show images", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting", + "displayName": "Default JavaScript setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting", + "displayName": "Default JavaScript setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting_1", + "displayName": "Allow all sites to run JavaScript", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultjavascriptsetting_defaultjavascriptsetting_2", + "displayName": "Don't allow any site to run JavaScript", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting", + "displayName": "Default notification setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_defaultnotificationssetting", + "displayName": "Default notification setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_defaultnotificationssetting_1", + "displayName": "Allow sites to show desktop notifications", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_defaultnotificationssetting_2", + "displayName": "Don't allow any site to show desktop notifications", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultnotificationssetting_defaultnotificationssetting_3", + "displayName": "Ask every time a site wants to show desktop notifications", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting", + "displayName": "Default Adobe Flash setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_defaultpluginssetting", + "displayName": "Default Adobe Flash setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_defaultpluginssetting_2", + "displayName": "Block the Adobe Flash plugin", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpluginssetting_defaultpluginssetting_3", + "displayName": "Click to play", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting", + "displayName": "Default pop-up window setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_defaultpopupssetting", + "displayName": "Default pop-up window setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_defaultpopupssetting_1", + "displayName": "Allow all sites to show pop-ups", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultpopupssetting_defaultpopupssetting_2", + "displayName": "Do not allow any site to show popups", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting", + "displayName": "Control use of the Web Bluetooth API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting_2", + "displayName": "Do not allow any site to request access to Bluetooth devices via the Web Bluetooth API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebbluetoothguardsetting_defaultwebbluetoothguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a nearby Bluetooth device", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting", + "displayName": "Control use of the WebUSB API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting_2", + "displayName": "Do not allow any site to request access to USB devices via the WebUSB API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_defaultwebusbguardsetting_defaultwebusbguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a connected USB device", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesallowedforurls", + "displayName": "Allow images on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesallowedforurls_imagesallowedforurlsdesc", + "displayName": "Allow images on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesblockedforurls", + "displayName": "Block images on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_imagesblockedforurls_imagesblockedforurlsdesc", + "displayName": "Block images on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptallowedforurls", + "displayName": "Allow JavaScript on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptallowedforurls_javascriptallowedforurlsdesc", + "displayName": "Allow JavaScript on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptblockedforurls", + "displayName": "Block JavaScript on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_javascriptblockedforurls_javascriptblockedforurlsdesc", + "displayName": "Block JavaScript on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsallowedforurls", + "displayName": "Allow notifications on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsallowedforurls_notificationsallowedforurlsdesc", + "displayName": "Allow notifications on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsblockedforurls", + "displayName": "Block notifications on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_notificationsblockedforurls_notificationsblockedforurlsdesc", + "displayName": "Block notifications on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsallowedforurls", + "displayName": "Allow the Adobe Flash plug-in on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsallowedforurls_pluginsallowedforurlsdesc", + "displayName": "Allow the Adobe Flash plug-in on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsblockedforurls", + "displayName": "Block the Adobe Flash plug-in on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_pluginsblockedforurls_pluginsblockedforurlsdesc", + "displayName": "Block the Adobe Flash plug-in on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsallowedforurls", + "displayName": "Allow pop-up windows on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsallowedforurls_popupsallowedforurlsdesc", + "displayName": "Allow pop-up windows on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsblockedforurls", + "displayName": "Block pop-up windows on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_popupsblockedforurls_popupsblockedforurlsdesc", + "displayName": "Block pop-up windows on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusballowdevicesforurls", + "displayName": "Grant access to specific sites to connect to specific USB devices (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusballowdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusballowdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusballowdevicesforurls_webusballowdevicesforurls", + "displayName": "Grant access to specific sites to connect to specific USB devices (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbaskforurls", + "displayName": "Allow WebUSB on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbaskforurls_webusbaskforurlsdesc", + "displayName": "Allow WebUSB on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbblockedforurls", + "displayName": "Block WebUSB on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~contentsettings_webusbblockedforurls_webusbblockedforurlsdesc", + "displayName": "Block WebUSB on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderenabled", + "displayName": "Enable the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderencodings", + "displayName": "Default search provider encodings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderencodings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderencodings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderencodings_defaultsearchproviderencodingsdesc", + "displayName": "Default search provider encodings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurl", + "displayName": "Specifies the search-by-image feature for the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurl_defaultsearchproviderimageurl", + "displayName": "Specifies the search-by-image feature for the default search provider (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for an image URL that uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurlpostparams_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurlpostparams_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderimageurlpostparams_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for an image URL that uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderkeyword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderkeyword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchproviderkeyword_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidername", + "displayName": "Default search provider name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidername_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidername_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidername_defaultsearchprovidername", + "displayName": "Default search provider name (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersearchurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersearchurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersearchurl_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersuggesturl", + "displayName": "Default search provider URL for suggestions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersuggesturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersuggesturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~defaultsearchprovider_defaultsearchprovidersuggesturl_defaultsearchprovidersuggesturl", + "displayName": "Default search provider URL for suggestions (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionallowedtypes", + "displayName": "Configure allowed extension types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionallowedtypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionallowedtypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionallowedtypes_extensionallowedtypesdesc", + "displayName": "Types of extensions/apps that are allowed to be installed (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallallowlist", + "displayName": "Allow specific extensions to be installed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallallowlist_extensioninstallallowlistdesc", + "displayName": "Extension IDs to exempt from the block list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallblocklist", + "displayName": "Control which extensions cannot be installed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallblocklist_extensioninstallblocklistdesc", + "displayName": "Extension IDs the user should be prevented from installing (or * for all) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallforcelist", + "displayName": "Control which extensions are installed silently (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallforcelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallforcelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallforcelist_extensioninstallforcelistdesc", + "displayName": "Extension/App IDs and update URLs to be silently installed (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallsources", + "displayName": "Configure extension and user script install sources (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallsources_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallsources_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensioninstallsources_extensioninstallsourcesdesc", + "displayName": "URL patterns to allow extension, app, and user script installs from (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionsettings", + "displayName": "Configure extension management settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~extensions_extensionsettings_extensionsettings", + "displayName": "Configure extension management settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_enablemediarouter", + "displayName": "Enable Google Cast (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_enablemediarouter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_enablemediarouter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_showcasticonintoolbar", + "displayName": "Show the cast icon in the toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_showcasticonintoolbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~googlecast_showcasticonintoolbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_allowcrossoriginauthprompt", + "displayName": "Allow cross-origin HTTP Basic Auth prompts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_allowcrossoriginauthprompt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_allowcrossoriginauthprompt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authnegotiatedelegateallowlist", + "displayName": "Specifies a list of servers that Microsoft Edge can delegate user credentials to (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authnegotiatedelegateallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authnegotiatedelegateallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authnegotiatedelegateallowlist_authnegotiatedelegateallowlist", + "displayName": "Specifies a list of servers that Microsoft Edge can delegate user credentials to (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authschemes", + "displayName": "Supported authentication schemes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authschemes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authschemes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authschemes_authschemes", + "displayName": "Supported authentication schemes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authserverallowlist", + "displayName": "Configure list of allowed authentication servers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authserverallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authserverallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_authserverallowlist_authserverallowlist", + "displayName": "Configure list of allowed authentication servers (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_disableauthnegotiatecnamelookup", + "displayName": "Disable CNAME lookup when negotiating Kerberos authentication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_disableauthnegotiatecnamelookup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_disableauthnegotiatecnamelookup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_enableauthnegotiateport", + "displayName": "Include non-standard port in Kerberos SPN (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_enableauthnegotiateport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~httpauthentication_enableauthnegotiateport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingallowlist", + "displayName": "Control which native messaging hosts users can use (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingallowlist_nativemessagingallowlistdesc", + "displayName": "Names of the native messaging hosts to exempt from the block list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingblocklist", + "displayName": "Configure native messaging block list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessagingblocklist_nativemessagingblocklistdesc", + "displayName": "Names of the forbidden native messaging hosts (or * for all) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessaginguserlevelhosts", + "displayName": "Allow user-level native messaging hosts (installed without admin permissions) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessaginguserlevelhosts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~nativemessaging_nativemessaginguserlevelhosts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordmanagerenabled", + "displayName": "Enable saving passwords to the password manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordmanagerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordmanagerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionchangepasswordurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionchangepasswordurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionchangepasswordurl_passwordprotectionchangepasswordurl", + "displayName": "Configure the change password URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionloginurls", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture fingerprint of password (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionloginurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionloginurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionloginurls_passwordprotectionloginurlsdesc", + "displayName": "Configure the list of enterprise login URLs where password protection service should capture fingerprint of password (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger", + "displayName": "Configure password protection warning trigger (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger", + "displayName": "Configure password protection warning trigger (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_0", + "displayName": "Password protection warning is off", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~passwordmanager_passwordprotectionwarningtrigger_passwordprotectionwarningtrigger_1", + "displayName": "Password protection warning is triggered by password reuse", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_defaultprinterselection", + "displayName": "Default printer selection rules (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_defaultprinterselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_defaultprinterselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_defaultprinterselection_defaultprinterselection", + "displayName": "Default printer selection rules (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printheaderfooter", + "displayName": "Print headers and footers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printheaderfooter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printheaderfooter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printingenabled", + "displayName": "Enable printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printpreviewusesystemdefaultprinter", + "displayName": "Set the system default printer as the default printer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printpreviewusesystemdefaultprinter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_printpreviewusesystemdefaultprinter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_usesystemprintdialog", + "displayName": "Print using system print dialog (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_usesystemprintdialog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~printing_usesystemprintdialog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxybypasslist", + "displayName": "Configure proxy bypass rules (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxybypasslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxybypasslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxybypasslist_proxybypasslist", + "displayName": "Comma-separated list of proxy bypass rules (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode", + "displayName": "Configure proxy server settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode", + "displayName": "Configure proxy server settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_direct", + "displayName": "Never use a proxy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_auto_detect", + "displayName": "Auto detect proxy settings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_pac_script", + "displayName": "Use a .pac proxy script", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_fixed_servers", + "displayName": "Use fixed proxy servers", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxymode_proxymode_system", + "displayName": "Use system proxy settings", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxypacurl", + "displayName": "Set the proxy .pac file URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxypacurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxypacurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxypacurl_proxypacurl", + "displayName": "Set the proxy .pac file URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxyserver", + "displayName": "Configure address or URL of proxy server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxyserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxyserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxyserver_proxyserver", + "displayName": "Configure address or URL of proxy server (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxysettings", + "displayName": "Proxy settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~proxy_proxysettings_proxysettings", + "displayName": "Proxy settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverride", + "displayName": "Prevent bypassing Microsoft Defender SmartScreen prompts for sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverride_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverride_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverrideforfiles", + "displayName": "Prevent bypassing of Microsoft Defender SmartScreen warnings about downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverrideforfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_preventsmartscreenpromptoverrideforfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenallowlistdomains", + "displayName": "Configure the list of domains for which Microsoft Defender SmartScreen won't trigger warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenallowlistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenallowlistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenallowlistdomains_smartscreenallowlistdomainsdesc", + "displayName": "Configure the list of domains for which SmartScreen won't trigger warnings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenenabled", + "displayName": "Configure Microsoft Defender SmartScreen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~smartscreen_smartscreenenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepageisnewtabpage", + "displayName": "Set the new tab page as the home page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepageisnewtabpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepageisnewtabpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepagelocation", + "displayName": "Configure the home page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepagelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepagelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_homepagelocation_homepagelocation", + "displayName": "Home page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagehidedefaulttopsites", + "displayName": "Hide the default top sites from the new tab page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagehidedefaulttopsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagehidedefaulttopsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagelocation", + "displayName": "Configure the new tab page URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_newtabpagelocation_newtabpagelocation", + "displayName": "New tab page URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup", + "displayName": "Action to take on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup", + "displayName": "Action to take on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_5", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartupurls", + "displayName": "Sites to open when the browser starts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartupurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartupurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_restoreonstartupurls_restoreonstartupurlsdesc", + "displayName": "Sites to open when the browser starts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_showhomebutton", + "displayName": "Show Home button on toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_showhomebutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edge~policy~microsoft_edge~startup_showhomebutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions", + "displayName": "Allow download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions", + "displayName": "Download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_1", + "displayName": "Block malicious downloads and dangerous file types", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_2", + "displayName": "Block potentially dangerous or unwanted downloads and dangerous file types", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_downloadrestrictions_downloadrestrictions_4", + "displayName": "Block malicious downloads", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended", + "displayName": "Allow download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions", + "displayName": "Download restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_0", + "displayName": "No special restrictions", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_1", + "displayName": "Block malicious downloads and dangerous file types", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_2", + "displayName": "Block potentially dangerous or unwanted downloads and dangerous file types", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_3", + "displayName": "Block all downloads", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgeupdates.2~policy~microsoft_edge_recommended_downloadrestrictions_recommended_downloadrestrictions_4", + "displayName": "Block malicious downloads", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_adstransparencyenabled", + "displayName": "Configure if the ads transparency feature is enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_adstransparencyenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_adstransparencyenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_hiderestoredialogenabled", + "displayName": "Hide restore pages dialog after browser crash (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_hiderestoredialogenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_hiderestoredialogenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_pdfsecuremode", + "displayName": "Secure mode and Certificate-based Digital Signature validation in native PDF reader (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_pdfsecuremode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_pdfsecuremode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_promptonmultiplematchingcertificates", + "displayName": "Prompt the user to select a certificate when multiple certificates match (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_promptonmultiplematchingcertificates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge_promptonmultiplematchingcertificates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting", + "displayName": "Control use of the WebHID API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_defaultwebhidguardsetting", + "displayName": "Control use of the WebHID API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_defaultwebhidguardsetting_2", + "displayName": "Do not allow any site to request access to HID devices via the WebHID API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_defaultwebhidguardsetting_defaultwebhidguardsetting_3", + "displayName": "Allow sites to ask the user to grant access to a HID device", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidaskforurls", + "displayName": "Allow the WebHID API on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidaskforurls_webhidaskforurlsdesc", + "displayName": "Allow the WebHID API on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidblockedforurls", + "displayName": "Block the WebHID API on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev100~policy~microsoft_edge~contentsettings_webhidblockedforurls_webhidblockedforurlsdesc", + "displayName": "Block the WebHID API on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_configurekeyboardshortcuts", + "displayName": "Configure the list of commands for which to disable keyboard shortcuts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_configurekeyboardshortcuts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_configurekeyboardshortcuts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_configurekeyboardshortcuts_configurekeyboardshortcuts", + "displayName": "Configure the list of commands for which to disable keyboard shortcuts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_edgeassetdeliveryserviceenabled", + "displayName": "Allow features to download assets from the Asset Delivery Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_edgeassetdeliveryserviceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_edgeassetdeliveryserviceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_internetexplorermodeenablesavepageas", + "displayName": "Allow Save page as in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_internetexplorermodeenablesavepageas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_internetexplorermodeenablesavepageas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_edgeassetdeliveryserviceenabled_recommended", + "displayName": "Allow features to download assets from the Asset Delivery Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_edgeassetdeliveryserviceenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_edgeassetdeliveryserviceenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_sitesafetyservicesenabled_recommended", + "displayName": "Allow users to configure Site safety services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_sitesafetyservicesenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended_sitesafetyservicesenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended~extensions_recommended_controldefaultstateofallowextensionfromotherstoressettingenabled_recommended", + "displayName": "Configure default state of Allow extensions from other stores setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended~extensions_recommended_controldefaultstateofallowextensionfromotherstoressettingenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_recommended~extensions_recommended_controldefaultstateofallowextensionfromotherstoressettingenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_sitesafetyservicesenabled", + "displayName": "Allow users to configure Site safety services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_sitesafetyservicesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge_sitesafetyservicesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~identity_edgedefaultprofileenabled", + "displayName": "Default Profile Setting Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~identity_edgedefaultprofileenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~identity_edgedefaultprofileenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~identity_edgedefaultprofileenabled_edgedefaultprofileenabled", + "displayName": "Default Profile Setting Enabled (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~kioskmode_kioskswipegesturesenabled", + "displayName": "Swipe gestures in Microsoft Edge kiosk mode enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~kioskmode_kioskswipegesturesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev101~policy~microsoft_edge~kioskmode_kioskswipegesturesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_networkservicesandboxenabled", + "displayName": "Enable the network service sandbox (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_networkservicesandboxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_networkservicesandboxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_outlookhubmenuenabled", + "displayName": "Allow users to access the Outlook menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_outlookhubmenuenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_outlookhubmenuenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_recommended_outlookhubmenuenabled_recommended", + "displayName": "Allow users to access the Outlook menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_recommended_outlookhubmenuenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_recommended_outlookhubmenuenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_settimeoutwithout1msclampenabled", + "displayName": "Control Javascript setTimeout() function minimum timeout (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_settimeoutwithout1msclampenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_settimeoutwithout1msclampenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_useragentclienthintsgreaseupdateenabled", + "displayName": "Control the User-Agent Client Hints GREASE Update feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_useragentclienthintsgreaseupdateenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge_useragentclienthintsgreaseupdateenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge~httpauthentication_allhttpauthschemesallowedfororigins", + "displayName": "List of origins that allow all HTTP authentication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge~httpauthentication_allhttpauthschemesallowedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge~httpauthentication_allhttpauthschemesallowedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev102~policy~microsoft_edge~httpauthentication_allhttpauthschemesallowedfororigins_allhttpauthschemesallowedfororiginsdesc", + "displayName": "List of origins that allow all HTTP authentication (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_internetexplorerzoomdisplay", + "displayName": "Display zoom in IE Mode tabs with DPI Scale included like it is in Internet Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_internetexplorerzoomdisplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_internetexplorerzoomdisplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_livecaptionsallowed", + "displayName": "Live captions allowed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_livecaptionsallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_livecaptionsallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_originagentclusterdefaultenabled", + "displayName": "Origin-keyed agent clustering enabled by default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_originagentclusterdefaultenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge_originagentclusterdefaultenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge~identity_guidedswitchenabled", + "displayName": "Guided Switch Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge~identity_guidedswitchenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev103~policy~microsoft_edge~identity_guidedswitchenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_alloweddomainsforapps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_alloweddomainsforapps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_alloweddomainsforapps_alloweddomainsforapps", + "displayName": "Define domains allowed to access Google Workspace (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_askbeforecloseenabled", + "displayName": "Get user confirmation before closing a browser window with multiple tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_askbeforecloseenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_askbeforecloseenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting", + "displayName": "Configure browser process code integrity guard setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_browsercodeintegritysetting", + "displayName": "Configure browser process code integrity guard setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_browsercodeintegritysetting_0", + "displayName": "Do not enable code integrity guard in the browser process.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_browsercodeintegritysetting_1", + "displayName": "Enable code integrity guard audit mode in the browser process.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_browsercodeintegritysetting_browsercodeintegritysetting_2", + "displayName": "Enable code integrity guard enforcement in the browser process.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_doubleclickclosetabenabled", + "displayName": "Double Click feature in Microsoft Edge enabled (only available in China) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_doubleclickclosetabenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_doubleclickclosetabenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_edgeedropenabled", + "displayName": "Enable Drop feature in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_edgeedropenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_edgeedropenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_importoneachlaunch", + "displayName": "Allow import of data from other browsers on each Microsoft Edge launch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_importoneachlaunch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_importoneachlaunch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_pdfxfaenabled", + "displayName": "XFA support in native PDF reader enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_pdfxfaenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_pdfxfaenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_quicksearchshowminimenu", + "displayName": "Enables Microsoft Edge mini menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_quicksearchshowminimenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_quicksearchshowminimenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_askbeforecloseenabled_recommended", + "displayName": "Get user confirmation before closing a browser window with multiple tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_askbeforecloseenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_askbeforecloseenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_quicksearchshowminimenu_recommended", + "displayName": "Enables Microsoft Edge mini menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_quicksearchshowminimenu_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_recommended_quicksearchshowminimenu_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_textpredictionenabled", + "displayName": "Text prediction enabled by default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_textpredictionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge_textpredictionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge~passwordmanager_passwordmanagerrestrictlengthenabled", + "displayName": "Restrict the length of passwords that can be saved in the Password Manager (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge~passwordmanager_passwordmanagerrestrictlengthenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev104~policy~microsoft_edge~passwordmanager_passwordmanagerrestrictlengthenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_exemptfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_exemptfiletypedownloadwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_exemptfiletypedownloadwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_exemptfiletypedownloadwarnings_exemptfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_internetexplorerintegrationalwayswaitforunload", + "displayName": "Wait for Internet Explorer mode tabs to completely unload before ending the browser session (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_internetexplorerintegrationalwayswaitforunload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_internetexplorerintegrationalwayswaitforunload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorproofingenabled", + "displayName": "Spell checking provided by Microsoft Editor (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorproofingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorproofingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorsynonymsenabled", + "displayName": "Synonyms are provided when using Microsoft Editor spell checker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorsynonymsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_microsofteditorsynonymsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_configurefriendlyurlformat", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_configurefriendlyurlformat_1", + "displayName": "The plain URL without any extra information, such as the page's title. This is the recommended option when this policy is configured. For more information, see the description.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_configurefriendlyurlformat_3", + "displayName": "Titled Hyperlink: A hyperlink that points to the copied URL, but whose visible text is the title of the destination page. This is the Friendly URL format.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_recommended_configurefriendlyurlformat_recommended_configurefriendlyurlformat_4", + "displayName": "Coming soon. If set, behaves the same as 'Plain URL'.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_unthrottlednestedtimeoutenabled", + "displayName": "JavaScript setTimeout will not be clamped until a higher nesting threshold is set (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_unthrottlednestedtimeoutenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev105~policy~microsoft_edge_unthrottlednestedtimeoutenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_internetexplorerintegrationalwaysuseoscapture", + "displayName": "Always use the OS capture engine to avoid issues with capturing Internet Explorer mode tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_internetexplorerintegrationalwaysuseoscapture_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_internetexplorerintegrationalwaysuseoscapture_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeenabled_recommended", + "displayName": "Efficiency mode enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeonpowerenabled_recommended", + "displayName": "Enable efficiency mode when the device is connected to a power source (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeonpowerenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge_recommended~performance_recommended_efficiencymodeonpowerenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeenabled", + "displayName": "Efficiency mode enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeonpowerenabled", + "displayName": "Enable efficiency mode when the device is connected to a power source (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeonpowerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~performance_efficiencymodeonpowerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~printing_printpdfasimagedefault", + "displayName": "Print PDF as Image Default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~printing_printpdfasimagedefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev106~policy~microsoft_edge~printing_printpdfasimagedefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_enhancesecuritymodebypassintranet", + "displayName": "Enhanced Security Mode configuration for Intranet zone sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_enhancesecuritymodebypassintranet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_enhancesecuritymodebypassintranet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_eventpathenabled", + "displayName": "Re-enable the Event.path API until Microsoft Edge version 115 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_eventpathenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_eventpathenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_internetexplorerintegrationlocalmhtfileallowed", + "displayName": "Allow local MHTML files to open automatically in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_internetexplorerintegrationlocalmhtfileallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_internetexplorerintegrationlocalmhtfileallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_recommended~performance_recommended_performancedetectorenabled_recommended", + "displayName": "Performance Detector Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_recommended~performance_recommended_performancedetectorenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_recommended~performance_recommended_performancedetectorenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_webselectenabled", + "displayName": "Web Select Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_webselectenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_webselectenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlaccess", + "displayName": "Force WebSQL to be enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlnonsecurecontextenabled", + "displayName": "Force WebSQL in non-secure contexts to be enabled (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlnonsecurecontextenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge_websqlnonsecurecontextenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~edgeworkspaces_edgeworkspacesenabled", + "displayName": "Enable Workspaces (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~edgeworkspaces_edgeworkspacesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~edgeworkspaces_edgeworkspacesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~identity_linkedaccountenabled", + "displayName": "Enable the linked account feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~identity_linkedaccountenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~identity_linkedaccountenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~performance_performancedetectorenabled", + "displayName": "Performance Detector Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~performance_performancedetectorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~performance_performancedetectorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~startup_restoreonstartupuserurlsenabled", + "displayName": "Allow users to add and remove their own sites during startup when the RestoreOnStartupURLs policy is configured (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~startup_restoreonstartupuserurlsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev107~policy~microsoft_edge~startup_restoreonstartupuserurlsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting", + "displayName": "Set the default \"share additional operating system region\" setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_defaultshareadditionalosregionsetting", + "displayName": "'Set the default \"share additional operating system region\" setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_defaultshareadditionalosregionsetting_0", + "displayName": "Limited", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_defaultshareadditionalosregionsetting_1", + "displayName": "Always share the OS Regional format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_defaultshareadditionalosregionsetting_defaultshareadditionalosregionsetting_2", + "displayName": "Never share the OS Regional format", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_encryptedclienthelloenabled", + "displayName": "TLS Encrypted ClientHello Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_encryptedclienthelloenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_encryptedclienthelloenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended", + "displayName": "Set the default \"share additional operating system region\" setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_defaultshareadditionalosregionsetting", + "displayName": "'Set the default \"share additional operating system region\" setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_defaultshareadditionalosregionsetting_0", + "displayName": "Limited", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_defaultshareadditionalosregionsetting_1", + "displayName": "Always share the OS Regional format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge_recommended_defaultshareadditionalosregionsetting_recommended_defaultshareadditionalosregionsetting_2", + "displayName": "Never share the OS Regional format", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge~startup_newtabpageapplauncherenabled", + "displayName": "Hide App Launcher on Microsoft Edge new tab page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge~startup_newtabpageapplauncherenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev108~policy~microsoft_edge~startup_newtabpageapplauncherenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardallowedforurls", + "displayName": "Allow clipboard use on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardallowedforurls_clipboardallowedforurlsdesc", + "displayName": "Allow clipboard use on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardblockedforurls", + "displayName": "Block clipboard use on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_clipboardblockedforurls_clipboardblockedforurlsdesc", + "displayName": "Block clipboard use on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting", + "displayName": "Default clipboard site permission (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_defaultclipboardsetting", + "displayName": "Default clipboard site permission (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_defaultclipboardsetting_2", + "displayName": "Do not allow any site to use the clipboard site permission", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_defaultclipboardsetting_defaultclipboardsetting_3", + "displayName": "Allow sites to ask the user to grant the clipboard site permission", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_microsoftrootstoreenabled", + "displayName": "Determines whether the Microsoft Root Store and built-in certificate verifier will be used to verify server certificates (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_microsoftrootstoreenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge_microsoftrootstoreenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowalldevicesforurls", + "displayName": "Allow listed sites to connect to any HID device (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowalldevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowalldevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowalldevicesforurls_webhidallowalldevicesforurlsdesc", + "displayName": "Allow listed sites to connect to any HID device (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdevicesforurls", + "displayName": "Allow listed sites connect to specific HID devices (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdevicesforurls_webhidallowdevicesforurls", + "displayName": "Allow listed sites connect to specific HID devices (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdeviceswithhidusagesforurls", + "displayName": "Automatically grant permission to these sites to connect to HID devices containing top-level collections with the given HID usage (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdeviceswithhidusagesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdeviceswithhidusagesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev109~policy~microsoft_edge~contentsettings_webhidallowdeviceswithhidusagesforurls_webhidallowdeviceswithhidusagesforurls", + "displayName": "Automatically grant permission to these sites to connect to HID devices containing top-level collections with the given HID usage (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_autofillmembershipsenabled", + "displayName": "Save and fill memberships (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_autofillmembershipsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_autofillmembershipsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_autofillmembershipsenabled_recommended", + "displayName": "Save and fill memberships (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_autofillmembershipsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_autofillmembershipsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_searchfiltersenabled_recommended", + "displayName": "Search Filters Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_searchfiltersenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended_searchfiltersenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended~printing_recommended_printpreviewstickysettings_recommended", + "displayName": "Configure the sticky print preview settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended~printing_recommended_printpreviewstickysettings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended~printing_recommended_printpreviewstickysettings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_recommended~printing_recommended_printpreviewstickysettings_recommended_printpreviewstickysettings", + "displayName": "Configure the sticky print preview settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchfiltersenabled", + "displayName": "Search Filters Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchfiltersenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchfiltersenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled", + "displayName": "Search in Sidebar enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_searchinsidebarenabled", + "displayName": "Search in Sidebar enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_searchinsidebarenabled_0", + "displayName": "Enable search in sidebar", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_searchinsidebarenabled_1", + "displayName": "Disable search in sidebar for Kids Mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge_searchinsidebarenabled_searchinsidebarenabled_2", + "displayName": "Disable search in sidebar", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsallowedforurls", + "displayName": "Allow multiple automatic downloads in quick succession on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsallowedforurls_automaticdownloadsallowedforurlsdesc", + "displayName": "Allow multiple automatic downloads in quick succession on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsblockedforurls", + "displayName": "Block multiple automatic downloads in quick succession on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_automaticdownloadsblockedforurls_automaticdownloadsblockedforurlsdesc", + "displayName": "Block multiple automatic downloads in quick succession on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting", + "displayName": "Default automatic downloads setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_defaultautomaticdownloadssetting", + "displayName": "Default automatic downloads setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_defaultautomaticdownloadssetting_1", + "displayName": "Allow all websites to perform automatic downloads", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~contentsettings_defaultautomaticdownloadssetting_defaultautomaticdownloadssetting_2", + "displayName": "Don't allow any website to perform automatic downloads", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~edgeworkspaces_workspacesnavigationsettings", + "displayName": "Configure navigation settings per groups of URLs in Microsoft Edge Workspaces (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~edgeworkspaces_workspacesnavigationsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~edgeworkspaces_workspacesnavigationsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~edgeworkspaces_workspacesnavigationsettings_workspacesnavigationsettings", + "displayName": "Configure navigation settings per groups of URLs in Microsoft Edge Workspaces (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereadergrammartoolsenabled", + "displayName": "Enable Grammar Tools feature within Immersive Reader in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereadergrammartoolsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereadergrammartoolsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereaderpicturedictionaryenabled", + "displayName": "Enable Picture Dictionary feature within Immersive Reader in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereaderpicturedictionaryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~immersivereader_immersivereaderpicturedictionaryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~printing_printpreviewstickysettings", + "displayName": "Configure the sticky print preview settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~printing_printpreviewstickysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~printing_printpreviewstickysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev110~policy~microsoft_edge~printing_printpreviewstickysettings_printpreviewstickysettings", + "displayName": "Configure the sticky print preview settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_internetexplorermodecleardataonexitenabled", + "displayName": "Clear history for IE and IE mode every time you exit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_internetexplorermodecleardataonexitenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_internetexplorermodecleardataonexitenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_newpdfreaderenabled", + "displayName": "Microsoft Edge built-in PDF reader powered by Adobe Acrobat enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_newpdfreaderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_newpdfreaderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_recommended_newpdfreaderenabled_recommended", + "displayName": "Microsoft Edge built-in PDF reader powered by Adobe Acrobat enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_recommended_newpdfreaderenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_recommended_newpdfreaderenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_sharedarraybufferunrestrictedaccessallowed", + "displayName": "Specifies whether SharedArrayBuffers can be used in a non cross-origin-isolated context (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_sharedarraybufferunrestrictedaccessallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_sharedarraybufferunrestrictedaccessallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_showacrobatsubscriptionbutton", + "displayName": "Shows button on native PDF viewer in Microsoft Edge that allows users to sign up for Adobe Acrobat subscription (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_showacrobatsubscriptionbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev111~policy~microsoft_edge_showacrobatsubscriptionbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_cryptowalletenabled", + "displayName": "Enable CryptoWallet feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_cryptowalletenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_cryptowalletenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_mousegestureenabled", + "displayName": "Mouse Gesture Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_mousegestureenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev112~policy~microsoft_edge_mousegestureenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_readaloudenabled", + "displayName": "Enable Read Aloud feature in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_readaloudenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_readaloudenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_restorepdfview", + "displayName": "Restore PDF view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_restorepdfview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_restorepdfview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_tabservicesenabled", + "displayName": "Enable tab organization suggestions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_tabservicesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev113~policy~microsoft_edge_tabservicesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_defaultbrowsersettingscampaignenabled", + "displayName": "Enables default browser settings campaigns (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_defaultbrowsersettingscampaignenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_defaultbrowsersettingscampaignenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_discoverpagecontextenabled", + "displayName": "Enable Discover access to page contents for AAD profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_discoverpagecontextenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_discoverpagecontextenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_enforcelocalanchorconstraintsenabled", + "displayName": "Determines whether the built-in certificate verifier will enforce constraints encoded into trust anchors loaded from the platform trust store (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_enforcelocalanchorconstraintsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_enforcelocalanchorconstraintsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_showdownloadstoolbarbutton", + "displayName": "Show Downloads button on the toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_showdownloadstoolbarbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_showdownloadstoolbarbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_standalonehubssidebarenabled", + "displayName": "Standalone Sidebar Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_standalonehubssidebarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev114~policy~microsoft_edge_standalonehubssidebarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_composeinlineenabled", + "displayName": "Compose is enabled for writing on the web (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_composeinlineenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_composeinlineenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeindicatoruienabled", + "displayName": "Manage the indicator UI of the Enhanced Security Mode (ESM) feature in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeindicatoruienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeindicatoruienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeoptoutuxenabled", + "displayName": "Manage opt-out user experience for Enhanced Security Mode (ESM) in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeoptoutuxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_enhancesecuritymodeoptoutuxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_recommended_walletdonationenabled_recommended", + "displayName": "Wallet Donation Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_recommended_walletdonationenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_recommended_walletdonationenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_searchforimageenabled", + "displayName": "Search for image enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_searchforimageenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_searchforimageenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_walletdonationenabled", + "displayName": "Wallet Donation Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_walletdonationenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge_walletdonationenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenabled", + "displayName": "Microsoft Edge management enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenrollmenttoken", + "displayName": "Microsoft Edge management enrollment token (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenrollmenttoken_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenrollmenttoken_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementenrollmenttoken_edgemanagementenrollmenttoken", + "displayName": "Microsoft Edge management enrollment token (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementextensionsfeedbackenabled", + "displayName": "Microsoft Edge management extensions feedback enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementextensionsfeedbackenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev115~policy~microsoft_edge~manageability_edgemanagementextensionsfeedbackenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_recommended~performance_recommended_pinbrowseressentialstoolbarbutton_recommended", + "displayName": "Pin browser essentials toolbar button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_recommended~performance_recommended_pinbrowseressentialstoolbarbutton_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_recommended~performance_recommended_pinbrowseressentialstoolbarbutton_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_throttlenonvisiblecrossoriginiframesallowed", + "displayName": "Allows enabling throttling of non-visible, cross-origin iframes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_throttlenonvisiblecrossoriginiframesallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge_throttlenonvisiblecrossoriginiframesallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting", + "displayName": "Default setting for third-party storage partitioning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_defaultthirdpartystoragepartitioningsetting", + "displayName": "Default setting for third-party storage partitioning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_defaultthirdpartystoragepartitioningsetting_1", + "displayName": "Let third-party storage partitioning to be enabled.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_defaultthirdpartystoragepartitioningsetting_defaultthirdpartystoragepartitioningsetting_2", + "displayName": "Block third-party storage partitioning from being enabled.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_thirdpartystoragepartitioningblockedfororigins", + "displayName": "Block third-party storage partitioning for these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_thirdpartystoragepartitioningblockedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_thirdpartystoragepartitioningblockedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~contentsettings_thirdpartystoragepartitioningblockedfororigins_thirdpartystoragepartitioningblockedfororiginsdesc", + "displayName": "Block third-party storage partitioning for these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~performance_pinbrowseressentialstoolbarbutton", + "displayName": "Pin browser essentials toolbar button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~performance_pinbrowseressentialstoolbarbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev116~policy~microsoft_edge~performance_pinbrowseressentialstoolbarbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_allowsystemnotifications", + "displayName": "Allows system notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_allowsystemnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_allowsystemnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_edgewalletetreeenabled", + "displayName": "Edge Wallet E-Tree Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_edgewalletetreeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_edgewalletetreeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_internetexplorerintegrationzoneidentifiermhtfileallowed", + "displayName": "Automatically open downloaded MHT or MHTML files from the web in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_internetexplorerintegrationzoneidentifiermhtfileallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_internetexplorerintegrationzoneidentifiermhtfileallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended_edgewalletetreeenabled_recommended", + "displayName": "Edge Wallet E-Tree Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended_edgewalletetreeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended_edgewalletetreeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended~edgegames_recommended_gamermodeenabled_recommended", + "displayName": "Enable Gamer Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended~edgegames_recommended_gamermodeenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_recommended~edgegames_recommended_gamermodeenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarallowed", + "displayName": "Enable the Search bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarisenabledonstartup", + "displayName": "Allow the Search bar at Windows startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarisenabledonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_searchbarisenabledonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_showhistorythumbnails", + "displayName": "Show thumbnail images for browsing history (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_showhistorythumbnails_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_showhistorythumbnails_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_splitscreenenabled", + "displayName": "Enable split screen feature in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_splitscreenenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_splitscreenenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_uploadfromphoneenabled", + "displayName": "Enable upload files from phone in Microsoft Edge desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_uploadfromphoneenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge_uploadfromphoneenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge~edgegames_gamermodeenabled", + "displayName": "Enable Gamer Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge~edgegames_gamermodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev117~policy~microsoft_edge~edgegames_gamermodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_beforeunloadeventcancelbypreventdefaultenabled", + "displayName": "Control the behavior for the cancel dialog produced by the beforeunload event (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_beforeunloadeventcancelbypreventdefaultenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_beforeunloadeventcancelbypreventdefaultenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcebuiltinpushmessagingclient", + "displayName": "Forces Microsoft Edge to use its built-in WNS push client to connect to the Windows Push Notification Service. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcebuiltinpushmessagingclient_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcebuiltinpushmessagingclient_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcepermissionpolicyunloaddefaultenabled", + "displayName": "Controls whether unload event handlers can be disabled. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcepermissionpolicyunloaddefaultenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_forcepermissionpolicyunloaddefaultenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_pictureinpictureoverlayenabled", + "displayName": "Enable Picture in Picture overlay feature on supported webpages in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_pictureinpictureoverlayenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_pictureinpictureoverlayenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_recommended~passwordmanager_recommended_passworddeleteonbrowsercloseenabled_recommended", + "displayName": "Prevent passwords from being deleted if any Edge settings is enabled to delete browsing data when Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_recommended~passwordmanager_recommended_passworddeleteonbrowsercloseenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_recommended~passwordmanager_recommended_passworddeleteonbrowsercloseenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_sendmouseeventsdisabledformcontrolsenabled", + "displayName": "Control the new behavior for event dispatching on disabled form controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_sendmouseeventsdisabledformcontrolsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge_sendmouseeventsdisabledformcontrolsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~contentsettings_dataurlinsvguseenabled", + "displayName": "Data URL support for SVGUseElement (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~contentsettings_dataurlinsvguseenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~contentsettings_dataurlinsvguseenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~network_compressiondictionarytransportenabled", + "displayName": "Enable compression dictionary transport support (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~network_compressiondictionarytransportenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~network_compressiondictionarytransportenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~passwordmanager_passworddeleteonbrowsercloseenabled", + "displayName": "Prevent passwords from being deleted if any Edge settings is enabled to delete browsing data when Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~passwordmanager_passworddeleteonbrowsercloseenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~passwordmanager_passworddeleteonbrowsercloseenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~smartscreen_exemptsmartscreendownloadwarnings", + "displayName": "Disable SmartScreen AppRep based warnings for specified file types on specified domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~smartscreen_exemptsmartscreendownloadwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~smartscreen_exemptsmartscreendownloadwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~smartscreen_exemptsmartscreendownloadwarnings_exemptsmartscreendownloadwarnings", + "displayName": "Disable SmartScreen AppRep based warnings for specified file types on specified domains (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagebingchatenabled", + "displayName": "Disable Bing chat entry-points on Microsoft Edge Enterprise new tab page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagebingchatenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagebingchatenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagecompanylogoenabled", + "displayName": "Hide the company logo on the Microsoft Edge new tab page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagecompanylogoenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev118~policy~microsoft_edge~startup_newtabpagecompanylogoenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge_recommended_organizationalbrandingonworkprofileuienabled_recommended", + "displayName": "Allow the use of your organization's branding assets from M365 on the profile-related UI of a work profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge_recommended_organizationalbrandingonworkprofileuienabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge_recommended_organizationalbrandingonworkprofileuienabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchintranetsitestoworkprofile", + "displayName": "Switch intranet sites to a work profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchintranetsitestoworkprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchintranetsitestoworkprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchsitesoniemodesitelisttoworkprofile", + "displayName": "Switch sites on the IE mode site list to a work profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchsitesoniemodesitelisttoworkprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~identity_switchsitesoniemodesitelisttoworkprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementpolicyoverridesplatformpolicy", + "displayName": "Microsoft Edge management service policy overrides platform policy. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementpolicyoverridesplatformpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementpolicyoverridesplatformpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementuserpolicyoverridescloudmachinepolicy", + "displayName": "Allow Microsoft Edge management service user policies to override policies set through an enrollment token. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementuserpolicyoverridescloudmachinepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev119~policy~microsoft_edge~manageability_edgemanagementuserpolicyoverridescloudmachinepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_edge3pserptelemetryenabled", + "displayName": "Edge 3P SERP Telemetry Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_edge3pserptelemetryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_edge3pserptelemetryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_edge3pserptelemetryenabled_recommended", + "displayName": "Edge 3P SERP Telemetry Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_edge3pserptelemetryenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_edge3pserptelemetryenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_organizationlogooverlayonappiconenabled_recommended", + "displayName": "Allow your organization's logo from Microsoft Entra to be overlaid on the Microsoft Edge app icon of a work profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_organizationlogooverlayonappiconenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended_organizationlogooverlayonappiconenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~identity_recommended_automaticprofileswitchingsitelist_recommended", + "displayName": "Configure the automatic profile switching site list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~identity_recommended_automaticprofileswitchingsitelist_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~identity_recommended_automaticprofileswitchingsitelist_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~identity_recommended_automaticprofileswitchingsitelist_recommended_automaticprofileswitchingsitelist", + "displayName": "Configure the automatic profile switching site list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~sleepingtabs_recommended_autodiscardsleepingtabsenabled_recommended", + "displayName": "Configure auto discard sleeping tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~sleepingtabs_recommended_autodiscardsleepingtabsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_recommended~sleepingtabs_recommended_autodiscardsleepingtabsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_webappsettings", + "displayName": "Web App management settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_webappsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_webappsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge_webappsettings_webappsettings", + "displayName": "Web App management settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~identity_automaticprofileswitchingsitelist", + "displayName": "Configure the automatic profile switching site list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~identity_automaticprofileswitchingsitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~identity_automaticprofileswitchingsitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~identity_automaticprofileswitchingsitelist_automaticprofileswitchingsitelist", + "displayName": "Configure the automatic profile switching site list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~sleepingtabs_autodiscardsleepingtabsenabled", + "displayName": "Configure auto discard sleeping tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~sleepingtabs_autodiscardsleepingtabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev120~policy~microsoft_edge~sleepingtabs_autodiscardsleepingtabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_nativehostsexecutableslaunchdirectly", + "displayName": "Force Windows executable Native Messaging hosts to launch directly (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_nativehostsexecutableslaunchdirectly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_nativehostsexecutableslaunchdirectly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_postquantumkeyagreementenabled", + "displayName": "Enable post-quantum key agreement for TLS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_postquantumkeyagreementenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge_postquantumkeyagreementenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~googlecast_edgedisabledialprotocolforcastdiscovery", + "displayName": "Disable DIAL protocol for cast device discovery (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~googlecast_edgedisabledialprotocolforcastdiscovery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~googlecast_edgedisabledialprotocolforcastdiscovery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsenabled", + "displayName": "Enable Related Website Sets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsoverrides", + "displayName": "Override Related Website Sets. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsoverrides_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsoverrides_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~relatedwebsitesets_relatedwebsitesetsoverrides_relatedwebsitesetsoverrides", + "displayName": "Override Related Website Sets. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_preventtyposquattingpromptoverride", + "displayName": "Prevent bypassing Edge Website Typo Protection prompts for sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_preventtyposquattingpromptoverride_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_preventtyposquattingpromptoverride_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_typosquattingallowlistdomains", + "displayName": "Configure the list of domains for which Edge Website Typo Protection won't trigger warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_typosquattingallowlistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_typosquattingallowlistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev121~policy~microsoft_edge~typosquattingchecker_typosquattingallowlistdomains_typosquattingallowlistdomainsdesc", + "displayName": "Configure the list of domains for which Edge Website Typo Protection won't trigger warnings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_aigenthemesenabled", + "displayName": "Enables DALL-E themes generation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_aigenthemesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_aigenthemesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_enhancesecuritymodeallowuserbypass", + "displayName": "Allow users to bypass Enhanced Security Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_enhancesecuritymodeallowuserbypass_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_enhancesecuritymodeallowuserbypass_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_superdragdropenabled", + "displayName": "Super Drag Drop Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_superdragdropenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_superdragdropenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_urldiagnosticdataenabled", + "displayName": "URL reporting in Edge diagnostic data enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_urldiagnosticdataenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev122~policy~microsoft_edge_urldiagnosticdataenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_rsakeyusageforlocalanchorsenabled", + "displayName": "Check RSA key usage for server certificates issued by local trust anchors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_rsakeyusageforlocalanchorsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_rsakeyusageforlocalanchorsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_screencapturewithoutgestureallowedfororigins", + "displayName": "Allow screen capture without prior user gesture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_screencapturewithoutgestureallowedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_screencapturewithoutgestureallowedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge_screencapturewithoutgestureallowedfororigins_screencapturewithoutgestureallowedfororiginsdesc", + "displayName": "Allow screen capture without prior user gesture (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting", + "displayName": "Default Window Management permission setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_defaultwindowmanagementsetting", + "displayName": "Default Window Management permission setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_defaultwindowmanagementsetting_2", + "displayName": "Denies the Window Management permission on all sites by default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_defaultwindowmanagementsetting_defaultwindowmanagementsetting_3", + "displayName": "Ask every time a site wants obtain the Window Management permission", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementallowedforurls", + "displayName": "Allow Window Management permission on specified sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementallowedforurls_windowmanagementallowedforurlsdesc", + "displayName": "Allow Window Management permission on specified sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementblockedforurls", + "displayName": "Block Window Management permission on specified sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~contentsettings_windowmanagementblockedforurls_windowmanagementblockedforurlsdesc", + "displayName": "Block Window Management permission on specified sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensioninstalltypeblocklist", + "displayName": "Blocklist for extension install types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensioninstalltypeblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensioninstalltypeblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensioninstalltypeblocklist_extensioninstalltypeblocklistdesc", + "displayName": "Blocklist for extension install types (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability", + "displayName": "Control Manifest v2 extension availability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability", + "displayName": "Control Manifest v2 extension availability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability_0", + "displayName": "Default browser behavior", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability_1", + "displayName": "Manifest v2 is disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability_2", + "displayName": "Manifest v2 is enabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev123~policy~microsoft_edge~extensions_extensionmanifestv2availability_extensionmanifestv2availability_3", + "displayName": "Manifest v2 is enabled for forced extensions only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotcdppagecontext", + "displayName": "Control Copilot with Commerical Data Protection access to browser context for Microsoft Entra ID profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotcdppagecontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotcdppagecontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotpagecontext", + "displayName": "Control Copilot access to browser context for Microsoft Entra ID profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotpagecontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_copilotpagecontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_mutationeventsenabled", + "displayName": "Enable deprecated/removed Mutation Events (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_mutationeventsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev124~policy~microsoft_edge_mutationeventsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_imageeditorserviceenabled", + "displayName": "Enable the Designer for Image Editor feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_imageeditorserviceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_imageeditorserviceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_qrcodegeneratorenabled", + "displayName": "Enable QR Code Generator (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_qrcodegeneratorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge_qrcodegeneratorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge~network_zstdcontentencodingenabled", + "displayName": "Enable zstd content encoding support (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge~network_zstdcontentencodingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev125~policy~microsoft_edge~network_zstdcontentencodingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge_internetexplorersetforegroundwhenactive", + "displayName": "Keep the active Microsoft Edge window with an Internet Explorer mode tab always in the foreground. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge_internetexplorersetforegroundwhenactive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge_internetexplorersetforegroundwhenactive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge~identity_proactiveauthworkflowenabled", + "displayName": "Enable proactive authentication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge~identity_proactiveauthworkflowenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev126~policy~microsoft_edge~identity_proactiveauthworkflowenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_csscustomstatedeprecatedsyntaxenabled", + "displayName": "Controls whether the deprecated :--foo syntax for CSS custom state is enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_csscustomstatedeprecatedsyntaxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_csscustomstatedeprecatedsyntaxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_edgesidebarappurlhostblocklist", + "displayName": "Control which apps cannot be opened in Microsoft Edge sidebar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_edgesidebarappurlhostblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_edgesidebarappurlhostblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev127~policy~microsoft_edge_edgesidebarappurlhostblocklist_edgesidebarappurlhostblocklistdesc", + "displayName": "Control which apps cannot be opened in Microsoft Edge sidebar (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128.1~policy~microsoft_edge_applicationboundencryptionenabled", + "displayName": "Enable Application Bound Encryption (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128.1~policy~microsoft_edge_applicationboundencryptionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128.1~policy~microsoft_edge_applicationboundencryptionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings", + "displayName": "Dynamic Code Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_dynamiccodesettings", + "displayName": "Dynamic Code Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_dynamiccodesettings_0", + "displayName": "Default dynamic code settings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_dynamiccodesettings_dynamiccodesettings_1", + "displayName": "Prevent the browser process from creating dynamic code", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgeopeninsidebarenabled", + "displayName": "Enable open in sidebar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgeopeninsidebarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgeopeninsidebarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgesidebarcustomizeenabled", + "displayName": "Enable sidebar customize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgesidebarcustomizeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_edgesidebarcustomizeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_keyboardfocusablescrollersenabled", + "displayName": "Enable keyboard focusable scrollers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_keyboardfocusablescrollersenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_keyboardfocusablescrollersenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_recommended~downloads_recommended_showdownloadsinsecurewarningsenabled_recommended", + "displayName": "Enable insecure download warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_recommended~downloads_recommended_showdownloadsinsecurewarningsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge_recommended~downloads_recommended_showdownloadsinsecurewarningsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~downloads_showdownloadsinsecurewarningsenabled", + "displayName": "Enable insecure download warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~downloads_showdownloadsinsecurewarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~downloads_showdownloadsinsecurewarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings", + "displayName": "Control the availability of developer mode on extensions page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_extensiondevelopermodesettings", + "displayName": "Control the availability of developer mode on extensions page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_extensiondevelopermodesettings_0", + "displayName": "Allow the usage of developer mode on extensions page", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensiondevelopermodesettings_extensiondevelopermodesettings_1", + "displayName": "Do not allow the usage of developer mode on extensions page", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensionextendedbackgroundlifetimeforportconnectionstourls", + "displayName": "Configure a list of origins that grant an extended background lifetime to connecting extensions. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensionextendedbackgroundlifetimeforportconnectionstourls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensionextendedbackgroundlifetimeforportconnectionstourls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev128~policy~microsoft_edge~extensions_extensionextendedbackgroundlifetimeforportconnectionstourls_extensionextendedbackgroundlifetimeforportconnectionstourlsdesc", + "displayName": "Configure a list of origins that grant an extended background lifetime to connecting extensions. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended", + "displayName": "Action to take on Microsoft Edge startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup", + "displayName": "Action to take on Microsoft Edge startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_5", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge_recommended~startup_recommended_restoreonstartup_recommended_restoreonstartup_6", + "displayName": "Open a list of URLs and restore the last session", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup", + "displayName": "Action to take on Microsoft Edge startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup", + "displayName": "Action to take on Microsoft Edge startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_5", + "displayName": "Open a new tab", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_1", + "displayName": "Restore the last session", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_4", + "displayName": "Open a list of URLs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev77.3~policy~microsoft_edge~startup_restoreonstartup_restoreonstartup_6", + "displayName": "Open a list of URLs and restore the last session", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_adssettingforintrusiveadssites", + "displayName": "Ads setting for sites with intrusive ads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_adssettingforintrusiveadssites_1", + "displayName": "Allow ads on all sites", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_adssettingforintrusiveadssites_adssettingforintrusiveadssites_2", + "displayName": "Block ads on sites with intrusive ads. (Default value)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowpopupsduringpageunload", + "displayName": "Allows a page to show popups during its unloading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowpopupsduringpageunload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowpopupsduringpageunload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowtrackingforurls", + "displayName": "Configure tracking prevention exceptions for specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowtrackingforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowtrackingforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_allowtrackingforurls_allowtrackingforurlsdesc", + "displayName": "Configure tracking prevention exceptions for specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_autoplayallowed", + "displayName": "Allow media autoplay for websites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_autoplayallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_autoplayallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clearbrowsingdataonexit", + "displayName": "Clear browsing data when Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clearbrowsingdataonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clearbrowsingdataonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clickonceenabled", + "displayName": "Allow users to open files using the ClickOnce protocol (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clickonceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_clickonceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_commandlineflagsecuritywarningsenabled", + "displayName": "Enable security warnings for command-line flags (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_commandlineflagsecuritywarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_commandlineflagsecuritywarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_directinvokeenabled", + "displayName": "Allow users to open files using the DirectInvoke protocol (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_directinvokeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_directinvokeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_edgecollectionsenabled", + "displayName": "Enable the Collections feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_edgecollectionsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_edgecollectionsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_enterprisehardwareplatformapienabled", + "displayName": "Allow managed extensions to use the Enterprise Hardware Platform API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_enterprisehardwareplatformapienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_enterprisehardwareplatformapienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_forcenetworkinprocess", + "displayName": "Force networking code to run in the browser process (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_forcenetworkinprocess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_forcenetworkinprocess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_gotointranetsiteforsinglewordentryinaddressbar", + "displayName": "Force direct intranet site navigation instead of searching on single word entries in the Address Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_gotointranetsiteforsinglewordentryinaddressbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_gotointranetsiteforsinglewordentryinaddressbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_importbrowsersettings", + "displayName": "Allow importing of browser settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_importbrowsersettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_importbrowsersettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_internetexplorerintegrationsitelist", + "displayName": "Configure the Enterprise Mode Site List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_internetexplorerintegrationsitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_internetexplorerintegrationsitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_internetexplorerintegrationsitelist_internetexplorerintegrationsitelist", + "displayName": "Configure the Enterprise Mode Site List (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_nonremovableprofileenabled", + "displayName": "Configure whether a user always has a default profile automatically signed in with their work or school account (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_nonremovableprofileenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_nonremovableprofileenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_clearbrowsingdataonexit_recommended", + "displayName": "Clear browsing data when Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_clearbrowsingdataonexit_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_clearbrowsingdataonexit_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_importbrowsersettings_recommended", + "displayName": "Allow importing of browser settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_importbrowsersettings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended_importbrowsersettings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenfortrusteddownloadsenabled_recommended", + "displayName": "Force Microsoft Defender SmartScreen checks on downloads from trusted sources (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenfortrusteddownloadsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenfortrusteddownloadsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_renderercodeintegrityenabled", + "displayName": "Enable renderer code integrity (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_renderercodeintegrityenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_renderercodeintegrityenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_signedhttpexchangeenabled", + "displayName": "Enable Signed HTTP Exchange (SXG) support (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_signedhttpexchangeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_signedhttpexchangeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_spellchecklanguageblocklist", + "displayName": "Force disable spellcheck languages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_spellchecklanguageblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_spellchecklanguageblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_spellchecklanguageblocklist_spellchecklanguageblocklistdesc", + "displayName": "Force disable spellcheck languages (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention", + "displayName": "Block tracking of users' web-browsing activity (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention", + "displayName": "Block tracking of users' web-browsing activity (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention_0", + "displayName": "Off (no tracking prevention)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention_1", + "displayName": "Basic (blocks harmful trackers, content and ads will be personalized)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention_2", + "displayName": "Balanced (blocks harmful trackers and trackers from sites user has not visited; content and ads will be less personalized)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge_trackingprevention_trackingprevention_3", + "displayName": "Strict (blocks harmful trackers and majority of trackers from all sites; content and ads will have minimal personalization. Some parts of sites might not work)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge~smartscreen_smartscreenfortrusteddownloadsenabled", + "displayName": "Force Microsoft Defender SmartScreen checks on downloads from trusted sources (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge~smartscreen_smartscreenfortrusteddownloadsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev78diff~policy~microsoft_edge~smartscreen_smartscreenfortrusteddownloadsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_allowsyncxhrinpagedismissal", + "displayName": "Allow pages to send synchronous XHR requests during page dismissal (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_allowsyncxhrinpagedismissal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_allowsyncxhrinpagedismissal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_backgroundtemplatelistupdatesenabled", + "displayName": "Enables background updates to the list of available templates for Collections and other features that use templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_backgroundtemplatelistupdatesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_backgroundtemplatelistupdatesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_customhelplink", + "displayName": "Specify custom help link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_customhelplink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_customhelplink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_customhelplink_customhelplink", + "displayName": "Specify custom help link (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_externalprotocoldialogshowalwaysopencheckbox", + "displayName": "Show an \"Always open\" checkbox in external protocol dialog (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_externalprotocoldialogshowalwaysopencheckbox_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_externalprotocoldialogshowalwaysopencheckbox_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_hstspolicybypasslist", + "displayName": "Configure the list of names that will bypass the HSTS policy check (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_hstspolicybypasslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_hstspolicybypasslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_hstspolicybypasslist_hstspolicybypasslistdesc", + "displayName": "Configure the list of names that will bypass the HSTS policy check (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_importopentabs", + "displayName": "Allow importing of open tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_importopentabs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_importopentabs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended_importopentabs_recommended", + "displayName": "Allow importing of open tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended_importopentabs_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended_importopentabs_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagemanagedquicklinks_recommended", + "displayName": "Set new tab page quick links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagemanagedquicklinks_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagemanagedquicklinks_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagemanagedquicklinks_recommended_newtabpagemanagedquicklinks", + "displayName": "Set new tab page quick links (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended", + "displayName": "Configure the Microsoft Edge new tab page experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_newtabpagesetfeedtype", + "displayName": "New tab page experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_newtabpagesetfeedtype_0", + "displayName": "Microsoft News feed experience", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_recommended~startup_recommended_newtabpagesetfeedtype_recommended_newtabpagesetfeedtype_1", + "displayName": "Office 365 feed experience", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_tabfreezingenabled", + "displayName": "Allow freezing of background tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_tabfreezingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge_tabfreezingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagecompanylogo", + "displayName": "Set new tab page company logo (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagecompanylogo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagecompanylogo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagecompanylogo_newtabpagecompanylogo", + "displayName": "New tab page company logo (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagemanagedquicklinks", + "displayName": "Set new tab page quick links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagemanagedquicklinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagemanagedquicklinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagemanagedquicklinks_newtabpagemanagedquicklinks", + "displayName": "Set new tab page quick links (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype", + "displayName": "Configure the Microsoft Edge new tab page experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_newtabpagesetfeedtype", + "displayName": "New tab page experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_newtabpagesetfeedtype_0", + "displayName": "Microsoft News feed experience", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev79diff~policy~microsoft_edge~startup_newtabpagesetfeedtype_newtabpagesetfeedtype_1", + "displayName": "Office 365 feed experience", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_alternateerrorpagesenabled", + "displayName": "Suggest similar pages when a webpage can’t be found (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_alternateerrorpagesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_alternateerrorpagesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_dnsinterceptionchecksenabled", + "displayName": "DNS interception checks enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_dnsinterceptionchecksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_dnsinterceptionchecksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_hidefirstrunexperience", + "displayName": "Hide the First-run experience and splash screen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_hidefirstrunexperience_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_hidefirstrunexperience_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_paymentmethodqueryenabled", + "displayName": "Allow websites to query for available payment methods (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_paymentmethodqueryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_paymentmethodqueryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_personalizationreportingenabled", + "displayName": "Allow personalization of ads, search and news by sending browsing history to Microsoft (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_personalizationreportingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_personalizationreportingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_pinningwizardallowed", + "displayName": "Allow Pin to taskbar wizard (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_pinningwizardallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_pinningwizardallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended_alternateerrorpagesenabled_recommended", + "displayName": "Suggest similar pages when a webpage can’t be found (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended_alternateerrorpagesenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended_alternateerrorpagesenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenpuaenabled_recommended", + "displayName": "Configure Microsoft Defender SmartScreen to block potentially unwanted apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenpuaenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreenpuaenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_totalmemorylimitmb", + "displayName": "Set limit on megabytes of memory a single Microsoft Edge instance can use. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_totalmemorylimitmb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_totalmemorylimitmb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_totalmemorylimitmb_totalmemorylimitmb", + "displayName": "Set memory limit for Microsoft Edge instances: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webappinstallforcelist", + "displayName": "Configure list of force-installed Web Apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webappinstallforcelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webappinstallforcelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webappinstallforcelist_webappinstallforcelist", + "displayName": "URLs for Web Apps to be silently installed. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webcomponentsv0enabled", + "displayName": "Re-enable Web Components v0 API until M84. (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webcomponentsv0enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webcomponentsv0enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webrtclocalipsallowedurls", + "displayName": "Manage exposure of local IP addressess by WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webrtclocalipsallowedurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webrtclocalipsallowedurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge_webrtclocalipsallowedurls_webrtclocalipsallowedurlsdesc", + "displayName": "Manage exposure of local IP addressess by WebRTC (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting", + "displayName": "Control use of insecure content exceptions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting_2", + "displayName": "Do not allow any site to load blockable mixed content", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_defaultinsecurecontentsetting_defaultinsecurecontentsetting_3", + "displayName": "Allow users to add exceptions to allow blockable mixed content", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentallowedforurls", + "displayName": "Allow insecure content on specified sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentallowedforurls_insecurecontentallowedforurlsdesc", + "displayName": "Allow insecure content on specified sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentblockedforurls", + "displayName": "Block insecure content on specified sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_insecurecontentblockedforurls_insecurecontentblockedforurlsdesc", + "displayName": "Block insecure content on specified sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled", + "displayName": "Enable default legacy SameSite cookie behavior setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled", + "displayName": "Enable default legacy SameSite cookie behavior setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled_1", + "displayName": "Revert to legacy SameSite behavior for cookies on all sites", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabled_legacysamesitecookiebehaviorenabled_2", + "displayName": "Use SameSite-by-default behavior for cookies on all sites", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist", + "displayName": "Revert to legacy SameSite behavior for cookies on specified sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~contentsettings_legacysamesitecookiebehaviorenabledfordomainlist_legacysamesitecookiebehaviorenabledfordomainlistdesc", + "displayName": "Revert to legacy SameSite behavior for cookies on specified sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~smartscreen_smartscreenpuaenabled", + "displayName": "Configure Microsoft Defender SmartScreen to block potentially unwanted apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~smartscreen_smartscreenpuaenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev80diff~policy~microsoft_edge~smartscreen_smartscreenpuaenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_addressbarmicrosoftsearchinbingproviderenabled", + "displayName": "Enable Microsoft Search in Bing suggestions in the address bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_addressbarmicrosoftsearchinbingproviderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_addressbarmicrosoftsearchinbingproviderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for InPrivate and Guest profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled", + "displayName": "Enable Ambient Authentication for InPrivate and Guest profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_0", + "displayName": "Enable ambient authentication in regular sessions only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_1", + "displayName": "Enable ambient authentication in InPrivate and regular sessions", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_2", + "displayName": "Enable ambient authentication in guest and regular sessions", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_ambientauthenticationinprivatemodesenabled_ambientauthenticationinprivatemodesenabled_3", + "displayName": "Enable ambient authentication in regular, InPrivate and guest sessions", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_audiosandboxenabled", + "displayName": "Allow the audio sandbox to run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_audiosandboxenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_audiosandboxenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin", + "displayName": "Configure automatic sign in with an Active Directory domain account when there is no Azure AD domain account (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_configureonpremisesaccountautosignin", + "displayName": "Configure automatic sign in with an Active Directory domain account when there is no Azure AD domain account (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_configureonpremisesaccountautosignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_configureonpremisesaccountautosignin_configureonpremisesaccountautosignin_1", + "displayName": "Sign in and make domain account non-removable", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_forcelegacydefaultreferrerpolicy", + "displayName": "Use a default referrer policy of no-referrer-when-downgrade. (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_forcelegacydefaultreferrerpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_forcelegacydefaultreferrerpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_globallyscopehttpauthcacheenabled", + "displayName": "Enable globally scoped HTTP auth cache (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_globallyscopehttpauthcacheenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_globallyscopehttpauthcacheenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importcookies", + "displayName": "Allow importing of Cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importcookies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importcookies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importextensions", + "displayName": "Allow importing of extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importshortcuts", + "displayName": "Allow importing of shortcuts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importshortcuts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_importshortcuts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect", + "displayName": "Specify how \"in-page\" navigations to unconfigured sites behave when started from Internet Explorer mode pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_internetexplorerintegrationsiteredirect", + "displayName": "Specify how \"in-page\" navigations to unconfigured sites behave when started from Internet Explorer mode pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_internetexplorerintegrationsiteredirect_0", + "displayName": "Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_internetexplorerintegrationsiteredirect_1", + "displayName": "Keep only automatic navigations in Internet Explorer mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_internetexplorerintegrationsiteredirect_internetexplorerintegrationsiteredirect_2", + "displayName": "Keep all in-page navigations in Internet Explorer mode", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importcookies_recommended", + "displayName": "Allow importing of Cookies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importcookies_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importcookies_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importextensions_recommended", + "displayName": "Allow importing of extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importextensions_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importextensions_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importshortcuts_recommended", + "displayName": "Allow importing of shortcuts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importshortcuts_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_recommended_importshortcuts_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_strictermixedcontenttreatmentenabled", + "displayName": "Enable stricter treatment for mixed content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_strictermixedcontenttreatmentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_strictermixedcontenttreatmentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_tls13hardeningforlocalanchorsenabled", + "displayName": "Enable a TLS 1.3 security feature for local trust anchors. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_tls13hardeningforlocalanchorsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81diff~policy~microsoft_edge_tls13hardeningforlocalanchorsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81identitydiff~policy~microsoft_edge_forcecertificatepromptsonmultiplematches", + "displayName": "Configure whether Microsoft Edge should automatically select a certificate when there are multiple certificate matches for a site configured with \"AutoSelectCertificateForUrls\" (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81identitydiff~policy~microsoft_edge_forcecertificatepromptsonmultiplematches_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev81identitydiff~policy~microsoft_edge_forcecertificatepromptsonmultiplematches_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowsurfgame", + "displayName": "Allow surf game (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowsurfgame_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowsurfgame_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowtokenbindingforurls", + "displayName": "Configure the list of sites for which Microsoft Edge will attempt to establish a Token Binding with. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowtokenbindingforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowtokenbindingforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_allowtokenbindingforurls_allowtokenbindingforurlsdesc", + "displayName": "Configure the list of sites for which Microsoft Edge will attempt to establish a Token Binding with. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_bingadssuppression", + "displayName": "Block all ads on Bing search results (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_bingadssuppression_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_bingadssuppression_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_clearcachedimagesandfilesonexit", + "displayName": "Clear cached images and files when Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_clearcachedimagesandfilesonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_clearcachedimagesandfilesonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare", + "displayName": "Configure the Share experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_configureshare", + "displayName": "Configure the Share experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_configureshare_0", + "displayName": "Allow using the Share experience", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_configureshare_configureshare_1", + "displayName": "Don't allow using the Share experience", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_deletedataonmigration", + "displayName": "Delete old browser data on migration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_deletedataonmigration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_deletedataonmigration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode", + "displayName": "Control the mode of DNS-over-HTTPS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_dnsoverhttpsmode", + "displayName": "Control the mode of DNS-over-HTTPS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_dnsoverhttpsmode_off", + "displayName": "Disable DNS-over-HTTPS", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_dnsoverhttpsmode_automatic", + "displayName": "Enable DNS-over-HTTPS with insecure fallback", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpsmode_dnsoverhttpsmode_secure", + "displayName": "Enable DNS-over-HTTPS without insecure fallback", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpstemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpstemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_dnsoverhttpstemplates_dnsoverhttpstemplates", + "displayName": "Specify URI template of desired DNS-over-HTTPS resolver (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_familysafetysettingsenabled", + "displayName": "Allow users to configure Family safety (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_familysafetysettingsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_familysafetysettingsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_localprovidersenabled", + "displayName": "Allow suggestions from local providers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_localprovidersenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_localprovidersenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_clearcachedimagesandfilesonexit_recommended", + "displayName": "Clear cached images and files when Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_clearcachedimagesandfilesonexit_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_clearcachedimagesandfilesonexit_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_localprovidersenabled_recommended", + "displayName": "Allow suggestions from local providers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_localprovidersenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_recommended_localprovidersenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_screencaptureallowed", + "displayName": "Allow or deny screen capture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_screencaptureallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_screencaptureallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_scrolltotextfragmentenabled", + "displayName": "Enable scrolling to text specified in URL fragments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_scrolltotextfragmentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_scrolltotextfragmentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_synctypeslistdisabled", + "displayName": "Configure the list of types that are excluded from synchronization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_synctypeslistdisabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_synctypeslistdisabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev83diff~policy~microsoft_edge_synctypeslistdisabled_synctypeslistdisableddesc", + "displayName": "Configure the list of types that are excluded from synchronization (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_appcacheforceenabled", + "displayName": "Allows the AppCache feature to be re-enabled, even if it's turned off by default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_appcacheforceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_appcacheforceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload", + "displayName": "Require that the Enterprise Mode Site List is available before tab navigation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_delaynavigationsforinitialsitelistdownload", + "displayName": "Require that the Enterprise Mode Site List is available before tab navigation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_delaynavigationsforinitialsitelistdownload_0", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_delaynavigationsforinitialsitelistdownload_delaynavigationsforinitialsitelistdownload_1", + "displayName": "All eligible navigations", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection", + "displayName": "Configure enhanced hang detection for Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_internetexplorerintegrationenhancedhangdetection", + "displayName": "Configure enhanced hang detection for Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_internetexplorerintegrationenhancedhangdetection_0", + "displayName": "Enhanced hang detection disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_internetexplorerintegrationenhancedhangdetection_internetexplorerintegrationenhancedhangdetection_1", + "displayName": "Enhanced hang detection enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_nativewindowocclusionenabled", + "displayName": "Enable Hiding of Native Windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_nativewindowocclusionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_nativewindowocclusionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_navigationdelayforinitialsitelistdownloadtimeout", + "displayName": "Set a timeout for delay of tab navigation for the Enterprise Mode Site List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_navigationdelayforinitialsitelistdownloadtimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_navigationdelayforinitialsitelistdownloadtimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_navigationdelayforinitialsitelistdownloadtimeout_navigationdelayforinitialsitelistdownloadtimeout", + "displayName": "Set a timeout for delay of tab navigation for the Enterprise Mode Site List: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended_managedsearchengines_recommended", + "displayName": "Manage Search Engines (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended_managedsearchengines_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended_managedsearchengines_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended_managedsearchengines_recommended_managedsearchengines", + "displayName": "Manage Search Engines (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended", + "displayName": "Enable the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended", + "displayName": "Default search provider encodings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderencodings_recommended_defaultsearchproviderencodingsdesc", + "displayName": "Default search provider encodings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended", + "displayName": "Specifies the search-by-image feature for the default search provider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurl_recommended_defaultsearchproviderimageurl", + "displayName": "Specifies the search-by-image feature for the default search provider (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended", + "displayName": "Parameters for an image URL that uses POST (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderimageurlpostparams_recommended_defaultsearchproviderimageurlpostparams", + "displayName": "Parameters for an image URL that uses POST (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended", + "displayName": "Default search provider keyword (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchproviderkeyword_recommended_defaultsearchproviderkeyword", + "displayName": "Default search provider keyword (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended", + "displayName": "Default search provider name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidername_recommended_defaultsearchprovidername", + "displayName": "Default search provider name (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended", + "displayName": "Default search provider search URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersearchurl_recommended_defaultsearchprovidersearchurl", + "displayName": "Default search provider search URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended", + "displayName": "Default search provider URL for suggestions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_defaultsearchprovidersuggesturl_recommended_defaultsearchprovidersuggesturl", + "displayName": "Default search provider URL for suggestions (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_winhttpproxyresolverenabled", + "displayName": "Use Windows proxy resolver (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_winhttpproxyresolverenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge_winhttpproxyresolverenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge~applicationguard_applicationguardcontainerproxy", + "displayName": "Application Guard Container Proxy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge~applicationguard_applicationguardcontainerproxy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge~applicationguard_applicationguardcontainerproxy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev84diff~policy~microsoft_edge~applicationguard_applicationguardcontainerproxy_applicationguardcontainerproxy", + "displayName": "Application Guard Container Proxy (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autolaunchprotocolsfromorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autolaunchprotocolsfromorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autolaunchprotocolsfromorigins_autolaunchprotocolsfromorigins", + "displayName": "Define a list of protocols that can launch an external application from listed origins without prompting the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenallowedforurls", + "displayName": "URLs where AutoOpenFileTypes can apply (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenallowedforurls_autoopenallowedforurlsdesc", + "displayName": "URLs where AutoOpenFileTypes can apply (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenfiletypes", + "displayName": "List of file types that should be automatically opened on download (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenfiletypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenfiletypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_autoopenfiletypes_autoopenfiletypesdesc", + "displayName": "List of file types that should be automatically opened on download (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_defaultsearchprovidercontextmenuaccessallowed", + "displayName": "Allow default search provider context menu search access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_defaultsearchprovidercontextmenuaccessallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_defaultsearchprovidercontextmenuaccessallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_enablesha1forlocalanchors", + "displayName": "Allow certificates signed using SHA-1 when issued by local trust anchors (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_enablesha1forlocalanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_enablesha1forlocalanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_exemptdomainfiletypepairsfromfiletypedownloadwarnings", + "displayName": "Disable download file type extension-based warnings for specified file types on domains (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_exemptdomainfiletypepairsfromfiletypedownloadwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_exemptdomainfiletypepairsfromfiletypedownloadwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_exemptdomainfiletypepairsfromfiletypedownloadwarnings_exemptdomainfiletypepairsfromfiletypedownloadwarningsdesc", + "displayName": "Disable download file type extension-based warnings for specified file types on domains (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_intensivewakeupthrottlingenabled", + "displayName": "Control the IntensiveWakeUpThrottling feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_intensivewakeupthrottlingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_intensivewakeupthrottlingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended", + "displayName": "Configure the new tab page search box experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_newtabpagesearchbox", + "displayName": "New tab page search box experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_newtabpagesearchbox_bing", + "displayName": "Search box (Recommended)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~defaultsearchprovider_recommended_newtabpagesearchbox_recommended_newtabpagesearchbox_redirect", + "displayName": "Address bar", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmonitorallowed_recommended", + "displayName": "Allow users to be alerted if their passwords are found to be unsafe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmonitorallowed_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordmonitorallowed_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~startup_recommended_newtabpageprerenderenabled_recommended", + "displayName": "Enable preload of the new tab page for faster rendering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~startup_recommended_newtabpageprerenderenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_recommended~startup_recommended_newtabpageprerenderenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilelocation", + "displayName": "Set the roaming profile directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilelocation_roamingprofilelocation", + "displayName": "Set the roaming profile directory (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilesupportenabled", + "displayName": "Enable using roaming copies for Microsoft Edge profile data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilesupportenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_roamingprofilesupportenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_tlsciphersuitedenylist", + "displayName": "Specify the TLS cipher suites to disable (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_tlsciphersuitedenylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_tlsciphersuitedenylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge_tlsciphersuitedenylist_tlsciphersuitedenylistdesc", + "displayName": "Specify the TLS cipher suites to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox", + "displayName": "Configure the new tab page search box experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_newtabpagesearchbox", + "displayName": "New tab page search box experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_newtabpagesearchbox_bing", + "displayName": "Search box (Recommended)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~defaultsearchprovider_newtabpagesearchbox_newtabpagesearchbox_redirect", + "displayName": "Address bar", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~passwordmanager_passwordmonitorallowed", + "displayName": "Allow users to be alerted if their passwords are found to be unsafe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~passwordmanager_passwordmonitorallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~passwordmanager_passwordmonitorallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~startup_newtabpageprerenderenabled", + "displayName": "Enable preload of the new tab page for faster rendering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~startup_newtabpageprerenderenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev85diff~policy~microsoft_edge~startup_newtabpageprerenderenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_collectionsservicesandexportsblocklist", + "displayName": "Block access to a specified list of services and export targets in Collections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_collectionsservicesandexportsblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_collectionsservicesandexportsblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_collectionsservicesandexportsblocklist_collectionsservicesandexportsblocklistdesc", + "displayName": "Block access to a specified list of services and export targets in Collections (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting", + "displayName": "Default sensors setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_defaultsensorssetting", + "displayName": "Default sensors setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_defaultsensorssetting_1", + "displayName": "Allow sites to access sensors", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultsensorssetting_defaultsensorssetting_2", + "displayName": "Do not allow any site to access sensors", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting", + "displayName": "Control use of the Serial API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_defaultserialguardsetting", + "displayName": "Control use of the Serial API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_defaultserialguardsetting_2", + "displayName": "Do not allow any site to request access to serial ports via the Serial API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_defaultserialguardsetting_defaultserialguardsetting_3", + "displayName": "Allow sites to ask for user permission to access a serial port", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata", + "displayName": "Send required and optional diagnostic data about browser usage (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_diagnosticdata", + "displayName": "Send required and optional diagnostic data about browser usage (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_diagnosticdata_0", + "displayName": "Off (Not recommended)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_diagnosticdata_1", + "displayName": "Required data", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_diagnosticdata_diagnosticdata_2", + "displayName": "Optional data", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_enterprisemodesitelistmanagerallowed", + "displayName": "Allow access to the Enterprise Mode Site List Manager tool (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_enterprisemodesitelistmanagerallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_enterprisemodesitelistmanagerallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_forcesync", + "displayName": "Force synchronization of browser data and do not show the sync consent prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_forcesync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_forcesync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_insecureformswarningsenabled", + "displayName": "Enable warnings for insecure forms (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_insecureformswarningsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_insecureformswarningsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_internetexplorerintegrationtestingallowed", + "displayName": "Allow Internet Explorer mode testing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_internetexplorerintegrationtestingallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_internetexplorerintegrationtestingallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_savecookiesonexit", + "displayName": "Save cookies when Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_savecookiesonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_savecookiesonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_savecookiesonexit_savecookiesonexitdesc", + "displayName": "Save cookies when Microsoft Edge closes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsallowedforurls", + "displayName": "Allow access to sensors on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsallowedforurls_sensorsallowedforurlsdesc", + "displayName": "Allow access to sensors on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsblockedforurls", + "displayName": "Block access to sensors on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_sensorsblockedforurls_sensorsblockedforurlsdesc", + "displayName": "Block access to sensors on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialaskforurls", + "displayName": "Allow the Serial API on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialaskforurls_serialaskforurlsdesc", + "displayName": "Allow the Serial API on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialblockedforurls", + "displayName": "Block the Serial API on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_serialblockedforurls_serialblockedforurlsdesc", + "displayName": "Block the Serial API on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_useragentclienthintsenabled", + "displayName": "Enable the User-Agent Client Hints feature (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_useragentclienthintsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_useragentclienthintsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_userdatasnapshotretentionlimit", + "displayName": "Limits the number of user data snapshots retained for use in case of emergency rollback (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_userdatasnapshotretentionlimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_userdatasnapshotretentionlimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge_userdatasnapshotretentionlimit_userdatasnapshotretentionlimit", + "displayName": "Limits the number of user data snapshots retained for use in case of emergency rollback: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting", + "displayName": "Control use of the File System API for reading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting_2", + "displayName": "Don't allow any site to request read access to files and directories via the File System API", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemreadguardsetting_defaultfilesystemreadguardsetting_3", + "displayName": "Allow sites to ask the user to grant read access to files and directories via the File System API", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting", + "displayName": "Control use of the File System API for writing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting_2", + "displayName": "Don't allow any site to request write access to files and directories", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_defaultfilesystemwriteguardsetting_defaultfilesystemwriteguardsetting_3", + "displayName": "Allow sites to ask the user to grant write access to files and directories", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadaskforurls", + "displayName": "Allow read access via the File System API on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadaskforurls_filesystemreadaskforurlsdesc", + "displayName": "Allow read access via the File System API on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadblockedforurls", + "displayName": "Block read access via the File System API on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemreadblockedforurls_filesystemreadblockedforurlsdesc", + "displayName": "Block read access via the File System API on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteaskforurls", + "displayName": "Allow write access to files and directories on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteaskforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteaskforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteaskforurls_filesystemwriteaskforurlsdesc", + "displayName": "Allow write access to files and directories on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteblockedforurls", + "displayName": "Block write access to files and directories on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_filesystemwriteblockedforurls_filesystemwriteblockedforurlsdesc", + "displayName": "Block write access to files and directories on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_spotlightexperiencesandrecommendationsenabled", + "displayName": "Choose whether users can receive customized background images and text, suggestions, notifications,\r\nand tips for Microsoft services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_spotlightexperiencesandrecommendationsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~contentsettings_spotlightexperiencesandrecommendationsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes", + "displayName": "Configure the background types allowed for the new tab page layout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_newtabpageallowedbackgroundtypes", + "displayName": "New tab page experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_newtabpageallowedbackgroundtypes_1", + "displayName": "Disable daily background image type", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_newtabpageallowedbackgroundtypes_2", + "displayName": "Disable custom background image type", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev86~policy~microsoft_edge~startup_newtabpageallowedbackgroundtypes_newtabpageallowedbackgroundtypes_3", + "displayName": "Disable all background image types", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_configurefriendlyurlformat", + "displayName": "Configure the default paste format of URLs copied from Microsoft Edge, and determine if additional formats will be available to users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_configurefriendlyurlformat_1", + "displayName": "The plain URL without any extra information, such as the page's title. This is the recommended option when this policy is configured. For more information, see the description.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_configurefriendlyurlformat_3", + "displayName": "Titled Hyperlink: A hyperlink that points to the copied URL, but whose visible text is the title of the destination page. This is the Friendly URL format.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_configurefriendlyurlformat_configurefriendlyurlformat_4", + "displayName": "Coming soon. If set, behaves the same as 'Plain URL'.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_edgeshoppingassistantenabled", + "displayName": "Shopping in Microsoft Edge Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_edgeshoppingassistantenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_edgeshoppingassistantenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_hideinternetexplorerredirectuxforincompatiblesitesenabled", + "displayName": "Hide the one-time redirection dialog and the banner on Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_hideinternetexplorerredirectuxforincompatiblesitesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_hideinternetexplorerredirectuxforincompatiblesitesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_edgeshoppingassistantenabled_recommended", + "displayName": "Shopping in Microsoft Edge Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_edgeshoppingassistantenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_edgeshoppingassistantenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended", + "displayName": "Redirect incompatible sites from Internet Explorer to Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_redirectsitesfrominternetexplorerredirectmode", + "displayName": "Redirect incompatible sites from Internet Explorer to Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_redirectsitesfrominternetexplorerredirectmode_0", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended_redirectsitesfrominternetexplorerredirectmode_recommended_redirectsitesfrominternetexplorerredirectmode_1", + "displayName": "Redirect sites based on the incompatible sites sitelist", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordrevealenabled_recommended", + "displayName": "Enable Password reveal button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordrevealenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_recommended~passwordmanager_recommended_passwordrevealenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerpreventbhoinstall", + "displayName": "Prevent install of the BHO to redirect incompatible sites from Internet Explorer to Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerpreventbhoinstall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerpreventbhoinstall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode", + "displayName": "Redirect incompatible sites from Internet Explorer to Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_redirectsitesfrominternetexplorerredirectmode", + "displayName": "Redirect incompatible sites from Internet Explorer to Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_redirectsitesfrominternetexplorerredirectmode_0", + "displayName": "Disable", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_redirectsitesfrominternetexplorerredirectmode_redirectsitesfrominternetexplorerredirectmode_1", + "displayName": "Redirect sites based on the incompatible sites sitelist", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_speechrecognitionenabled", + "displayName": "Configure Speech Recognition (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_speechrecognitionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_speechrecognitionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_webcaptureenabled", + "displayName": "Enable web capture feature in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_webcaptureenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge_webcaptureenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskaddressbareditingenabled", + "displayName": "Configure address bar editing for kiosk mode public browsing experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskaddressbareditingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskaddressbareditingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskdeletedownloadsonexit", + "displayName": "Delete files downloaded as part of kiosk session when Microsoft Edge closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskdeletedownloadsonexit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~kioskmode_kioskdeletedownloadsonexit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~printing_printingpapersizedefault", + "displayName": "Default printing page size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~printing_printingpapersizedefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~printing_printingpapersizedefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev87~policy~microsoft_edge~printing_printingpapersizedefault_printingpapersizedefault", + "displayName": "Default printing page size (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended", + "displayName": "Set the background tab inactivity timeout for sleeping tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for sleeping tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_30", + "displayName": "30 seconds of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_300", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_900", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_1800", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_3600", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_7200", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_10800", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_21600", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_43200", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for sleeping tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for sleeping tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_30", + "displayName": "30 seconds of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_300", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_900", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_1800", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_3600", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_7200", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_10800", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_21600", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88.1~policy~microsoft_edge_sleepingtabstimeout_sleepingtabstimeout_43200", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileallowed", + "displayName": "Allow launching of local files in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileextensionallowlist", + "displayName": "Open local files in Internet Explorer mode file extension allow list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileextensionallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileextensionallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileextensionallowlist_internetexplorerintegrationlocalfileextensionallowlistdesc", + "displayName": "Open local files in Internet Explorer mode file extension allow list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileshowcontextmenu", + "displayName": "Show context menu to open a link in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileshowcontextmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_internetexplorerintegrationlocalfileshowcontextmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior", + "displayName": "Intranet Redirection Behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior_0", + "displayName": "Use default browser behavior.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior_1", + "displayName": "Disable DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior_2", + "displayName": "Disable DNS interception checks; allow did-you-mean \"http://intranetsite/\" infobars.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_intranetredirectbehavior_intranetredirectbehavior_3", + "displayName": "Allow DNS interception checks and did-you-mean \"http://intranetsite/\" infobars.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended_showmicrosoftrewards_recommended", + "displayName": "Show Microsoft Rewards experiences (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended_showmicrosoftrewards_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended_showmicrosoftrewards_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~performance_recommended_startupboostenabled_recommended", + "displayName": "Enable startup boost (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~performance_recommended_startupboostenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~performance_recommended_startupboostenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsblockedforurls_recommended", + "displayName": "Block Sleeping Tabs on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsblockedforurls_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsblockedforurls_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsblockedforurls_recommended_sleepingtabsblockedforurlsdesc", + "displayName": "Block Sleeping Tabs on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsenabled_recommended", + "displayName": "Configure Sleeping Tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_300", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_900", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_1800", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_3600", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_7200", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_10800", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_21600", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_recommended~sleepingtabs_recommended_sleepingtabstimeout_recommended_sleepingtabstimeout_43200", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_showmicrosoftrewards", + "displayName": "Show Microsoft Rewards experiences (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_showmicrosoftrewards_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_showmicrosoftrewards_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_verticaltabsallowed", + "displayName": "Configures availability of a vertical layout for tabs on the side of the browser (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_verticaltabsallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_verticaltabsallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webrtcallowlegacytlsprotocols", + "displayName": "Allow legacy TLS/DTLS downgrade in WebRTC (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webrtcallowlegacytlsprotocols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webrtcallowlegacytlsprotocols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetallowed", + "displayName": "Enable the Web widget (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetisenabledonstartup", + "displayName": "Allow the Web widget at Windows startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetisenabledonstartup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge_webwidgetisenabledonstartup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~extensions_blockexternalextensions", + "displayName": "Blocks external extensions from being installed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~extensions_blockexternalextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~extensions_blockexternalextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~performance_startupboostenabled", + "displayName": "Enable startup boost (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~performance_startupboostenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~performance_startupboostenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~printing_printertypedenylist", + "displayName": "Disable printer types on the deny list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~printing_printertypedenylist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~printing_printertypedenylist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~printing_printertypedenylist_printertypedenylistdesc", + "displayName": "Disable printer types on the deny list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsblockedforurls", + "displayName": "Block Sleeping Tabs on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsblockedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsblockedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsblockedforurls_sleepingtabsblockedforurlsdesc", + "displayName": "Block Sleeping Tabs on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsenabled", + "displayName": "Configure Sleeping Tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout", + "displayName": "Set the background tab inactivity timeout for Sleeping Tabs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_300", + "displayName": "5 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_900", + "displayName": "15 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_1800", + "displayName": "30 minutes of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_3600", + "displayName": "1 hour of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_7200", + "displayName": "2 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_10800", + "displayName": "3 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_21600", + "displayName": "6 hours of inactivity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev88~policy~microsoft_edge~sleepingtabs_sleepingtabstimeout_sleepingtabstimeout_43200", + "displayName": "12 hours of inactivity", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_browsingdatalifetime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_browsingdatalifetime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_browsingdatalifetime_browsingdatalifetime", + "displayName": "Browsing Data Lifetime Settings (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_definepreferredlanguages", + "displayName": "Define an ordered list of preferred languages that websites should display in if the site supports the language (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_definepreferredlanguages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_definepreferredlanguages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_definepreferredlanguages_definepreferredlanguages", + "displayName": "Define an ordered list of preferred languages that websites should display in if the site supports the language (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_recommended_smartactionsblocklist_recommended", + "displayName": "Block smart actions for a list of services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_recommended_smartactionsblocklist_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_recommended_smartactionsblocklist_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_recommended_smartactionsblocklist_recommended_smartactionsblocklistdesc", + "displayName": "Block smart actions for a list of services (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_showrecommendationsenabled", + "displayName": "Allow feature recommendations and browser assistance notifications from Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_showrecommendationsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_showrecommendationsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_smartactionsblocklist", + "displayName": "Block smart actions for a list of services (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_smartactionsblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_smartactionsblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge_smartactionsblocklist_smartactionsblocklistdesc", + "displayName": "Block smart actions for a list of services (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~manageability_mamenabled", + "displayName": "Mobile App Management Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~manageability_mamenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~manageability_mamenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes", + "displayName": "Restrict background graphics printing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_any", + "displayName": "Allow printing with and without background graphics", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_enabled", + "displayName": "Allow printing only with background graphics", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingallowedbackgroundgraphicsmodes_printingallowedbackgroundgraphicsmodes_disabled", + "displayName": "Allow printing only without background graphics", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault", + "displayName": "Default background graphics printing mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault_enabled", + "displayName": "Enable background graphics printing mode by default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev89~policy~microsoft_edge~printing_printingbackgroundgraphicsdefault_printingbackgroundgraphicsdefault_disabled", + "displayName": "Disable background graphics printing mode by default", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on shutdown (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_fetchkeepalivedurationsecondsonshutdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_fetchkeepalivedurationsecondsonshutdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_fetchkeepalivedurationsecondsonshutdown_fetchkeepalivedurationsecondsonshutdown", + "displayName": "Fetch keepalive duration on shutdown: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_managedconfigurationperorigin", + "displayName": "Sets managed configuration values for websites to specific origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_managedconfigurationperorigin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_managedconfigurationperorigin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_managedconfigurationperorigin_managedconfigurationperorigin", + "displayName": "Sets managed configuration values for websites to specific origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_quickviewofficefilesenabled", + "displayName": "Manage QuickView Office files capability in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_quickviewofficefilesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_quickviewofficefilesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_recommended~httpauthentication_recommended_windowshelloforhttpauthenabled_recommended", + "displayName": "Windows Hello For HTTP Auth Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_recommended~httpauthentication_recommended_windowshelloforhttpauthenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_recommended~httpauthentication_recommended_windowshelloforhttpauthenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_sslerroroverrideallowedfororigins", + "displayName": "Allow users to proceed from the HTTPS warning page for specific origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_sslerroroverrideallowedfororigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_sslerroroverrideallowedfororigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge_sslerroroverrideallowedfororigins_sslerroroverrideallowedfororiginsdesc", + "displayName": "Allow users to proceed from the HTTPS warning page for specific origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~applicationguard_applicationguardfavoritessyncenabled", + "displayName": "Application Guard Favorites Sync Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~applicationguard_applicationguardfavoritessyncenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~applicationguard_applicationguardfavoritessyncenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~httpauthentication_windowshelloforhttpauthenabled", + "displayName": "Windows Hello For HTTP Auth Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~httpauthentication_windowshelloforhttpauthenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~httpauthentication_windowshelloforhttpauthenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode", + "displayName": "Print Rasterization Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_printrasterizationmode", + "displayName": "Print Rasterization Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_printrasterizationmode_0", + "displayName": "Full page rasterization", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev90~policy~microsoft_edge~printing_printrasterizationmode_printrasterizationmode_1", + "displayName": "Avoid rasterization if possible", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_explicitlyallowednetworkports", + "displayName": "Explicitly allowed network ports (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_explicitlyallowednetworkports_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_explicitlyallowednetworkports_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_explicitlyallowednetworkports_explicitlyallowednetworkportsdesc", + "displayName": "Explicitly allowed network ports (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_importstartuppagesettings", + "displayName": "Allow importing of startup page settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_importstartuppagesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_importstartuppagesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_mathsolverenabled", + "displayName": "Let users snip a Math problem and get the solution with a step-by-step explanation in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_mathsolverenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_mathsolverenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_recommended_importstartuppagesettings_recommended", + "displayName": "Allow importing of startup page settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_recommended_importstartuppagesettings_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge_recommended_importstartuppagesettings_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~applicationguard_applicationguardtrafficidentificationenabled", + "displayName": "Application Guard Traffic Identification (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~applicationguard_applicationguardtrafficidentificationenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~applicationguard_applicationguardtrafficidentificationenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagecontentenabled", + "displayName": "Allow Microsoft News content on the new tab page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagecontentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagecontentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagequicklinksenabled", + "displayName": "Allow quick links on the new tab page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagequicklinksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev91~policy~microsoft_edge~startup_newtabpagequicklinksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_aadwebsitessousingthisprofileenabled", + "displayName": "Single sign-on for work or school sites using this profile enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_aadwebsitessousingthisprofileenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_aadwebsitessousingthisprofileenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault", + "displayName": "Configure Automatic HTTPS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_automatichttpsdefault", + "displayName": "Configure Automatic HTTPS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_automatichttpsdefault_0", + "displayName": "Automatic HTTPS functionality is disabled.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_automatichttpsdefault_1", + "displayName": "Navigations delivered over HTTP are switched to HTTPS, only on domains likely to support HTTPS.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_automatichttpsdefault_automatichttpsdefault_2", + "displayName": "All navigations delivered over HTTP are switched to HTTPS. Connection errors might occur more often.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_headlessmodeenabled", + "displayName": "Control use of the Headless Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_headlessmodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_headlessmodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationlocalsitelistexpirationdays", + "displayName": "Specify the number of days that a site remains on the local IE mode site list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationlocalsitelistexpirationdays_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationlocalsitelistexpirationdays_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationlocalsitelistexpirationdays_internetexplorerintegrationlocalsitelistexpirationdays", + "displayName": "Specify the number of days that a site remains on the local IE mode site list: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationreloadiniemodeallowed", + "displayName": "Allow unconfigured sites to be reloaded in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationreloadiniemodeallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_internetexplorerintegrationreloadiniemodeallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_aadwebsitessousingthisprofileenabled_recommended", + "displayName": "Single sign-on for work or school sites using this profile enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_aadwebsitessousingthisprofileenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_aadwebsitessousingthisprofileenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended", + "displayName": "Configure Automatic HTTPS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_automatichttpsdefault", + "displayName": "Configure Automatic HTTPS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_automatichttpsdefault_0", + "displayName": "Automatic HTTPS functionality is disabled.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_automatichttpsdefault_1", + "displayName": "Navigations delivered over HTTP are switched to HTTPS, only on domains likely to support HTTPS.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_automatichttpsdefault_recommended_automatichttpsdefault_2", + "displayName": "All navigations delivered over HTTP are switched to HTTPS. Connection errors might occur more often.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_internetexplorerintegrationreloadiniemodeallowed_recommended", + "displayName": "Allow unconfigured sites to be reloaded in Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_internetexplorerintegrationreloadiniemodeallowed_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge_recommended_internetexplorerintegrationreloadiniemodeallowed_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowed", + "displayName": "Specifies whether to allow insecure websites to make requests to more-private network endpoints (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowedforurls", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from insecure contexts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowedforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowedforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev92~policy~microsoft_edge~privatenetworkrequestsettings_insecureprivatenetworkrequestsallowedforurls_insecureprivatenetworkrequestsallowedforurlsdesc", + "displayName": "Allow the listed sites to make requests to more-private network endpoints from insecure contexts (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_0", + "displayName": "Automatically", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_1", + "displayName": "With device password", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_2", + "displayName": "With custom primary password", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93.1~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_3", + "displayName": "Autofill off", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_autoplayallowlist", + "displayName": "Allow media autoplay on specific sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_autoplayallowlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_autoplayallowlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_autoplayallowlist_autoplayallowlistdesc", + "displayName": "Allow media autoplay on specific sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_cecpq2enabled", + "displayName": "CECPQ2 post-quantum key-agreement enabled for TLS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_cecpq2enabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_cecpq2enabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_configureviewinfileexplorer", + "displayName": "Configure the View in File Explorer feature for SharePoint pages in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_configureviewinfileexplorer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_configureviewinfileexplorer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_configureviewinfileexplorer_configureviewinfileexplorer", + "displayName": "Configure the View in File Explorer feature for SharePoint pages in Microsoft Edge (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationcloudsitelist", + "displayName": "Configure the Enterprise Mode Cloud Site List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationcloudsitelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationcloudsitelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationcloudsitelist_internetexplorerintegrationcloudsitelist", + "displayName": "Configure the Enterprise Mode Cloud Site List (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationsitelistrefreshinterval", + "displayName": "Configure how frequently the Enterprise Mode Site List is refreshed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationsitelistrefreshinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationsitelistrefreshinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_internetexplorerintegrationsitelistrefreshinterval_internetexplorerintegrationsitelistrefreshinterval", + "displayName": "Configure how frequently the Enterprise Mode Site List is refreshed: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_localbrowserdatashareenabled", + "displayName": "Enable Windows to search local Microsoft Edge browsing data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_localbrowserdatashareenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_localbrowserdatashareenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_msawebsitessousingthisprofileallowed", + "displayName": "Allow single sign-on for Microsoft sites using this profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_msawebsitessousingthisprofileallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_msawebsitessousingthisprofileallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_localbrowserdatashareenabled_recommended", + "displayName": "Enable Windows to search local Microsoft Edge browsing data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_localbrowserdatashareenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_localbrowserdatashareenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_msawebsitessousingthisprofileallowed_recommended", + "displayName": "Allow single sign-on for Microsoft sites using this profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_msawebsitessousingthisprofileallowed_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_msawebsitessousingthisprofileallowed_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_travelassistanceenabled_recommended", + "displayName": "Enable travel assistance (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_travelassistanceenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended_travelassistanceenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended", + "displayName": "Sets layout for printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_printingwebpagelayout", + "displayName": "Sets layout for printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_printingwebpagelayout_0", + "displayName": "Sets layout option as portrait", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_recommended~printing_recommended_printingwebpagelayout_recommended_printingwebpagelayout_1", + "displayName": "Sets layout option as landscape", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_relaunchwindow", + "displayName": "Set the time interval for relaunch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_relaunchwindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_relaunchwindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_relaunchwindow_relaunchwindow", + "displayName": "Relaunch time window (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_remotedebuggingallowed", + "displayName": "Allow remote debugging (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_remotedebuggingallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_remotedebuggingallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_travelassistanceenabled", + "displayName": "Enable travel assistance (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_travelassistanceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_travelassistanceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_tripledesenabled", + "displayName": "Enable 3DES cipher suites in TLS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_tripledesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge_tripledesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting", + "displayName": "Control use of JavaScript JIT (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting_1", + "displayName": "Allow any site to run JavaScript JIT", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_defaultjavascriptjitsetting_defaultjavascriptjitsetting_2", + "displayName": "Do not allow any site to run JavaScript JIT", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitallowedforsites", + "displayName": "Allow JavaScript to use JIT on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitallowedforsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitallowedforsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitallowedforsites_javascriptjitallowedforsitesdesc", + "displayName": "Allow JavaScript to use JIT on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitblockedforsites", + "displayName": "Block JavaScript from using JIT on these sites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitblockedforsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitblockedforsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_javascriptjitblockedforsites_javascriptjitblockedforsitesdesc", + "displayName": "Block JavaScript from using JIT on these sites (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_showpdfdefaultrecommendationsenabled", + "displayName": "Allow notifications to set Microsoft Edge as default PDF reader (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_showpdfdefaultrecommendationsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~contentsettings_showpdfdefaultrecommendationsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol", + "displayName": "Configure users ability to override feature flags (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_featureflagoverridescontrol", + "displayName": "Configure users ability to override feature flags (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_featureflagoverridescontrol_2", + "displayName": "Allow users to override feature flags using command line arguments only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_featureflagoverridescontrol_1", + "displayName": "Allow users to override feature flags", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~experimentation_featureflagoverridescontrol_featureflagoverridescontrol_0", + "displayName": "Prevent users from overriding feature flags", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_implicitsigninenabled", + "displayName": "Enable implicit sign-in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_implicitsigninenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_implicitsigninenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_oneauthauthenticationenforced", + "displayName": "OneAuth Authentication Flow Enforced for signin (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_oneauthauthenticationenforced_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~identity_oneauthauthenticationenforced_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_passwordgeneratorenabled", + "displayName": "Allow users to get a strong password suggestion whenever they are creating an account online (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_passwordgeneratorenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_passwordgeneratorenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting", + "displayName": "Configures a setting that asks users to enter their device password while using password autofill (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_0", + "displayName": "Automatically", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~passwordmanager_primarypasswordsetting_primarypasswordsetting_1", + "displayName": "With device password", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout", + "displayName": "Sets layout for printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_printingwebpagelayout", + "displayName": "Sets layout for printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_printingwebpagelayout_0", + "displayName": "Sets layout option as portrait", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev93~policy~microsoft_edge~printing_printingwebpagelayout_printingwebpagelayout_1", + "displayName": "Sets layout option as landscape", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge_webrtcrespectosroutingtableenabled", + "displayName": "Enable support for Windows OS routing table rules when making peer to peer connections via WebRTC (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge_webrtcrespectosroutingtableenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge_webrtcrespectosroutingtableenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~applicationguard_applicationguardpassivemodeenabled", + "displayName": "Ignore Application Guard site list configuration and browse Edge normally (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~applicationguard_applicationguardpassivemodeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~applicationguard_applicationguardpassivemodeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~identity_onlyonpremisesimplicitsigninenabled", + "displayName": "Only on-premises account enabled for implicit sign-in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~identity_onlyonpremisesimplicitsigninenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev94~policy~microsoft_edge~identity_onlyonpremisesimplicitsigninenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_browserlegacyextensionpointsblockingenabled", + "displayName": "Enable browser legacy extension point blocking (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_browserlegacyextensionpointsblockingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_browserlegacyextensionpointsblockingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_crossoriginwebassemblymodulesharingenabled", + "displayName": "Specifies whether WebAssembly modules can be sent cross-origin (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_crossoriginwebassemblymodulesharingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_crossoriginwebassemblymodulesharingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_displaycapturepermissionspolicyenabled", + "displayName": "Specifies whether the display-capture permissions-policy is checked or skipped (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_displaycapturepermissionspolicyenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_displaycapturepermissionspolicyenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenheightadjustment", + "displayName": "Configure the pixel adjustment between window.open heights sourced from IE mode pages vs. Edge mode pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenheightadjustment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenheightadjustment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenheightadjustment_internetexplorerintegrationwindowopenheightadjustment", + "displayName": "Configure the pixel adjustment between window.open heights sourced from IE mode pages vs. Edge mode pages: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenwidthadjustment", + "displayName": "Configure the pixel adjustment between window.open widths sourced from IE mode pages vs. Edge mode pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenwidthadjustment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenwidthadjustment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_internetexplorerintegrationwindowopenwidthadjustment_internetexplorerintegrationwindowopenwidthadjustment", + "displayName": "Configure the pixel adjustment between window.open widths sourced from IE mode pages vs. Edge mode pages: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended_visualsearchenabled_recommended", + "displayName": "Visual search enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended_visualsearchenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended_visualsearchenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended~smartscreen_recommended_newsmartscreenlibraryenabled_recommended", + "displayName": "Enable new SmartScreen library (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended~smartscreen_recommended_newsmartscreenlibraryenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_recommended~smartscreen_recommended_newsmartscreenlibraryenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior", + "displayName": "Configure ShadowStack crash rollback behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_shadowstackcrashrollbackbehavior", + "displayName": "Configure ShadowStack crash rollback behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_shadowstackcrashrollbackbehavior_0", + "displayName": "Disable Hardware-enforced Stack Protection", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_shadowstackcrashrollbackbehavior_1", + "displayName": "Disable Hardware-enforced Stack Protection until the next Microsoft Edge update", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_shadowstackcrashrollbackbehavior_shadowstackcrashrollbackbehavior_2", + "displayName": "Enable Hardware-enforced Stack Protection", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_visualsearchenabled", + "displayName": "Visual search enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_visualsearchenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge_visualsearchenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~contentsettings_intranetfilelinksenabled", + "displayName": "Allow intranet zone file URL links from Microsoft Edge to open in Windows File Explorer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~contentsettings_intranetfilelinksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~contentsettings_intranetfilelinksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~smartscreen_newsmartscreenlibraryenabled", + "displayName": "Enable new SmartScreen library (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~smartscreen_newsmartscreenlibraryenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev95~policy~microsoft_edge~smartscreen_newsmartscreenlibraryenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended", + "displayName": "Configure when efficiency mode should become active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode", + "displayName": "Configure when efficiency mode should become active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_0", + "displayName": "Efficiency mode is always active", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_1", + "displayName": "Efficiency mode is never active", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_2", + "displayName": "Efficiency mode is active when the device is unplugged", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_3", + "displayName": "Efficiency mode is active when the device is unplugged and the battery is low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_4", + "displayName": "When the device is unplugged, efficiency mode takes moderate steps to save battery. When the device is unplugged and the battery is low, efficiency mode takes additional steps to save battery.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_5", + "displayName": "When the device is unplugged or unplugged and the battery is low, efficiency mode takes additional steps to save battery.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode", + "displayName": "Configure when efficiency mode should become active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode", + "displayName": "Configure when efficiency mode should become active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_0", + "displayName": "Efficiency mode is always active", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_1", + "displayName": "Efficiency mode is never active", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_2", + "displayName": "Efficiency mode is active when the device is unplugged", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_3", + "displayName": "Efficiency mode is active when the device is unplugged and the battery is low", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_4", + "displayName": "When the device is unplugged, efficiency mode takes moderate steps to save battery. When the device is unplugged and the battery is low, efficiency mode takes additional steps to save battery.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96.1~policy~microsoft_edge~performance_efficiencymode_efficiencymode_5", + "displayName": "When the device is unplugged or unplugged and the battery is low, efficiency mode takes additional steps to save battery.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_audioprocesshighpriorityenabled", + "displayName": "Allow the audio process to run with priority above normal on Windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_audioprocesshighpriorityenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_audioprocesshighpriorityenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_autolaunchprotocolscomponentenabled", + "displayName": "AutoLaunch Protocols Component Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_autolaunchprotocolscomponentenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_autolaunchprotocolscomponentenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_forcesynctypes", + "displayName": "Configure the list of types that are included for synchronization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_forcesynctypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_forcesynctypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_forcesynctypes_forcesynctypesdesc", + "displayName": "Configure the list of types that are included for synchronization (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes", + "displayName": "Configure whether form data and HTTP headers will be sent when entering or exiting Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes", + "displayName": "Configure whether form data and HTTP headers will be sent when entering or exiting Internet Explorer mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes_0", + "displayName": "Do not send form data or headers", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes_1", + "displayName": "Send form data only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes_2", + "displayName": "Send additional headers only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorerintegrationcomplexnavdatatypes_internetexplorerintegrationcomplexnavdatatypes_3", + "displayName": "Send form data and additional headers", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorermodetoolbarbuttonenabled", + "displayName": "Show the Reload in Internet Explorer mode button in the toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorermodetoolbarbuttonenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_internetexplorermodetoolbarbuttonenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended_internetexplorermodetoolbarbuttonenabled_recommended", + "displayName": "Show the Reload in Internet Explorer mode button in the toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended_internetexplorermodetoolbarbuttonenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended_internetexplorermodetoolbarbuttonenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended", + "displayName": "Configure when efficiency mode should become active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode", + "displayName": "Configure when efficiency mode should become active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_0", + "displayName": "Efficiency mode is always active", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_1", + "displayName": "Efficiency mode is never active", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_2", + "displayName": "Efficiency mode is active when the device is unplugged", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~performance_recommended_efficiencymode_recommended_efficiencymode_3", + "displayName": "Efficiency mode is active when the device is unplugged and the battery is low", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~typosquattingchecker_recommended_typosquattingcheckerenabled_recommended", + "displayName": "Configure Edge TyposquattingChecker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~typosquattingchecker_recommended_typosquattingcheckerenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_recommended~typosquattingchecker_recommended_typosquattingcheckerenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_rendererappcontainerenabled", + "displayName": "Enable renderer in app container (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_rendererappcontainerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_rendererappcontainerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_sharedlinksenabled", + "displayName": "Show links shared from Microsoft 365 apps in History (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_sharedlinksenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge_sharedlinksenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~applicationguard_applicationguarduploadblockingenabled", + "displayName": "Prevents files from being uploaded while in Application Guard (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~applicationguard_applicationguarduploadblockingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~applicationguard_applicationguarduploadblockingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode", + "displayName": "Configure when efficiency mode should become active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode", + "displayName": "Configure when efficiency mode should become active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode_0", + "displayName": "Efficiency mode is always active", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode_1", + "displayName": "Efficiency mode is never active", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode_2", + "displayName": "Efficiency mode is active when the device is unplugged", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~performance_efficiencymode_efficiencymode_3", + "displayName": "Efficiency mode is active when the device is unplugged and the battery is low", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode", + "displayName": "Print PostScript Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_printpostscriptmode", + "displayName": "Print PostScript Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_printpostscriptmode_0", + "displayName": "Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printpostscriptmode_printpostscriptmode_1", + "displayName": "Type42", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printrasterizepdfdpi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printrasterizepdfdpi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~printing_printrasterizepdfdpi_printrasterizepdfdpi", + "displayName": "Print Rasterize PDF DPI: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~typosquattingchecker_typosquattingcheckerenabled", + "displayName": "Configure Edge TyposquattingChecker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~typosquattingchecker_typosquattingcheckerenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev96~policy~microsoft_edge~typosquattingchecker_typosquattingcheckerenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_accessibilityimagelabelsenabled", + "displayName": "Get Image Descriptions from Microsoft Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_accessibilityimagelabelsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_accessibilityimagelabelsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_corsnonwildcardrequestheaderssupport", + "displayName": "CORS non-wildcard request header support enabled (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_corsnonwildcardrequestheaderssupport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_corsnonwildcardrequestheaderssupport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgediscoverenabled", + "displayName": "Discover feature In Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgediscoverenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgediscoverenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgeenhanceimagesenabled", + "displayName": "Enhance images enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgeenhanceimagesenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_edgeenhanceimagesenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_internetexplorermodetabinedgemodeallowed", + "displayName": "Allow sites configured for Internet Explorer mode to open in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_internetexplorermodetabinedgemodeallowed_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_internetexplorermodetabinedgemodeallowed_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_openmicrosoftlinksinedgeenabled", + "displayName": "Always open links from certain Microsoft apps in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_openmicrosoftlinksinedgeenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_openmicrosoftlinksinedgeenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended_edgediscoverenabled_recommended", + "displayName": "Discover feature In Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended_edgediscoverenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended_edgediscoverenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreendnsrequestsenabled_recommended", + "displayName": "Enable Microsoft Defender SmartScreen DNS requests (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreendnsrequestsenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_recommended~smartscreen_recommended_smartscreendnsrequestsenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_websqlinthirdpartycontextenabled", + "displayName": "Force WebSQL in third-party contexts to be re-enabled (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_websqlinthirdpartycontextenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge_websqlinthirdpartycontextenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowallportsforurls", + "displayName": "Automatically grant sites permission to connect all serial ports (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowallportsforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowallportsforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowallportsforurls_serialallowallportsforurlsdesc", + "displayName": "Automatically grant sites permission to connect all serial ports (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowusbdevicesforurls", + "displayName": "Automatically grant sites permission to connect to USB serial devices (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowusbdevicesforurls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowusbdevicesforurls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~contentsettings_serialallowusbdevicesforurls_serialallowusbdevicesforurls", + "displayName": "Automatically grant sites permission to connect to USB serial devices (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_sameorigintabcaptureallowedbyorigins", + "displayName": "Allow Same Origin Tab capture by these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_sameorigintabcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_sameorigintabcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_sameorigintabcaptureallowedbyorigins_sameorigintabcaptureallowedbyoriginsdesc", + "displayName": "Allow Same Origin Tab capture by these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_screencaptureallowedbyorigins", + "displayName": "Allow Desktop, Window, and Tab capture by these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_screencaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_screencaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_screencaptureallowedbyorigins_screencaptureallowedbyoriginsdesc", + "displayName": "Allow Desktop, Window, and Tab capture by these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_tabcaptureallowedbyorigins", + "displayName": "Allow Tab capture by these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_tabcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_tabcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_tabcaptureallowedbyorigins_tabcaptureallowedbyoriginsdesc", + "displayName": "Allow Tab capture by these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_windowcaptureallowedbyorigins", + "displayName": "Allow Window and Tab capture by these origins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_windowcaptureallowedbyorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_windowcaptureallowedbyorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~screencapture_windowcaptureallowedbyorigins_windowcaptureallowedbyoriginsdesc", + "displayName": "Allow Window and Tab capture by these origins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~smartscreen_smartscreendnsrequestsenabled", + "displayName": "Enable Microsoft Defender SmartScreen DNS requests (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~smartscreen_smartscreendnsrequestsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev97~policy~microsoft_edge~smartscreen_smartscreendnsrequestsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_0", + "displayName": "Standard mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_1", + "displayName": "Balanced mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_2", + "displayName": "Strict mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98.1~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_3", + "displayName": "Basic mode", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_edgefollowenabled", + "displayName": "Enable Follow service in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_edgefollowenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_edgefollowenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode", + "displayName": "Enhance the security state in Microsoft Edge (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_0", + "displayName": "Standard mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_1", + "displayName": "Balanced mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymode_enhancesecuritymode_2", + "displayName": "Strict mode", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodebypasslistdomains", + "displayName": "Configure the list of domains for which enhance security mode will not be enforced (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodebypasslistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodebypasslistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodebypasslistdomains_enhancesecuritymodebypasslistdomainsdesc", + "displayName": "Configure the list of domains for which enhance security mode will not be enforced (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodeenforcelistdomains", + "displayName": "Configure the list of domains for which enhance security mode will always be enforced (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodeenforcelistdomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodeenforcelistdomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_enhancesecuritymodeenforcelistdomains_enhancesecuritymodeenforcelistdomainsdesc", + "displayName": "Configure the list of domains for which enhance security mode will always be enforced (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_inappsupportenabled", + "displayName": "In-app support Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_inappsupportenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_inappsupportenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_microsoftedgeinsiderpromotionenabled", + "displayName": "Microsoft Edge Insider Promotion Enabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_microsoftedgeinsiderpromotionenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_microsoftedgeinsiderpromotionenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_u2fsecuritykeyapienabled", + "displayName": "Allow using the deprecated U2F Security Key API (deprecated) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_u2fsecuritykeyapienabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge_u2fsecuritykeyapienabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings", + "displayName": "Print preview sticky settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings", + "displayName": "Print preview sticky settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings_0", + "displayName": "Enable sticky settings for PDF and Webpages", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings_1", + "displayName": "Disable sticky settings for PDF and Webpages", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings_2", + "displayName": "Disable sticky settings for PDF", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev98~policy~microsoft_edge~printing_printstickysettings_printstickysettings_3", + "displayName": "Disable sticky settings for Webpages", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_addressbareditingenabled", + "displayName": "Configure address bar editing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_addressbareditingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_addressbareditingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_allowgamesmenu", + "displayName": "Allow users to access the games menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_allowgamesmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_allowgamesmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_donotsilentlyblockprotocolsfromorigins", + "displayName": "Define a list of protocols that can not be silently blocked by anti-flood protection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_donotsilentlyblockprotocolsfromorigins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_donotsilentlyblockprotocolsfromorigins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_donotsilentlyblockprotocolsfromorigins_donotsilentlyblockprotocolsfromorigins", + "displayName": "Define a list of protocols that can not be silently blocked by anti-flood protection (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_hubssidebarenabled", + "displayName": "Show Hubs Sidebar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_hubssidebarenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_hubssidebarenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudneutralsitesreporting", + "displayName": "Configure reporting of potentially misconfigured neutral site URLs to the M365 Admin Center Site Lists app (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudneutralsitesreporting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudneutralsitesreporting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudneutralsitesreporting_internetexplorerintegrationcloudneutralsitesreporting", + "displayName": "Configure reporting of potentially misconfigured neutral site URLs to the M365 Admin Center Site Lists app (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudusersitesreporting", + "displayName": "Configure reporting of IE Mode user list entries to the M365 Admin Center Site Lists app (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudusersitesreporting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudusersitesreporting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_internetexplorerintegrationcloudusersitesreporting_internetexplorerintegrationcloudusersitesreporting", + "displayName": "Configure reporting of IE Mode user list entries to the M365 Admin Center Site Lists app (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended_hubssidebarenabled_recommended", + "displayName": "Show Hubs Sidebar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended_hubssidebarenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended_hubssidebarenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended~identity_recommended_signinctaonntpenabled_recommended", + "displayName": "Enable sign in click to action dialog (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended~identity_recommended_signinctaonntpenabled_recommended_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_recommended~identity_recommended_signinctaonntpenabled_recommended_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_relatedmatchescloudserviceenabled", + "displayName": "Configure Related Matches in Find on Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_relatedmatchescloudserviceenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_relatedmatchescloudserviceenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_sandboxexternalprotocolblocked", + "displayName": "Allow Microsoft Edge to block navigations to external protocols in a sandboxed iframe (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_sandboxexternalprotocolblocked_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_sandboxexternalprotocolblocked_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction", + "displayName": "Enable or disable the User-Agent Reduction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_useragentreduction", + "displayName": "Enable or disable the User-Agent Reduction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_useragentreduction_0", + "displayName": "User-Agent reduction will be controllable via Experimentation", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_useragentreduction_1", + "displayName": "User-Agent reduction diabled, and not enabled by Experimentation", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge_useragentreduction_useragentreduction_2", + "displayName": "User-Agent reduction will be enabled for all origins", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge~passwordmanager_passwordmanagerblocklist", + "displayName": "Configure the list of domains for which the password manager UI (Save and Fill) will be disabled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge~passwordmanager_passwordmanagerblocklist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge~passwordmanager_passwordmanagerblocklist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_microsoft_edgev99~policy~microsoft_edge~passwordmanager_passwordmanagerblocklist_passwordmanagerblocklistdesc", + "displayName": "Configure the list of domains for which the password manager UI (Save and Fill) will be disabled (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_notifications_disallownotificationmirroring", + "displayName": "Disallow Notification Mirroring (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_notifications_disallownotificationmirroring_0", + "displayName": "Block", + "description": "Enable notification mirroring." + }, + { + "id": "user_vendor_msft_policy_config_notifications_disallownotificationmirroring_1", + "displayName": "Allow", + "description": "Disable notification mirroring." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_notifications_disallowtilenotification", + "displayName": "Disallow Tile Notification (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_notifications_disallowtilenotification_0", + "displayName": "Block", + "description": "Disabled." + }, + { + "id": "user_vendor_msft_policy_config_notifications_disallowtilenotification_1", + "displayName": "Allow", + "description": "Enabled." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_ageoutpolicy", + "displayName": "Age out documents older than n days (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_ageoutpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_ageoutpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_ageoutpolicy_l_ageoutpolicydecimal", + "displayName": "Number of days (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_evictserverversionspolicy", + "displayName": "Age out the locally cached copies of server document versions that are more than n days old. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_evictserverversionspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_evictserverversionspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_evictserverversionspolicy_l_evictserverversionspolicydecimal", + "displayName": "Number of days (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_maximplicitcachesize", + "displayName": "Set the max size of the Office Document Cache (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_maximplicitcachesize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_maximplicitcachesize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_maximplicitcachesize_l_maximplicitcachesizedecimal", + "displayName": "Percent of disk space (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_opendirectlyinapp", + "displayName": "Open Directly in Office Client Application (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_opendirectlyinapp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16~policy~l_microsoftofficesystem~l_miscellaneous437_l_opendirectlyinapp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v10~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_allownonadminuserinstalllaps", + "displayName": "Allow users who aren’t admins to install language accessory packs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v10~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_allownonadminuserinstalllaps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v10~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_allownonadminuserinstalllaps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v11~policy~l_microsoftofficesystem~l_miscellaneous437_l_officerecommendeddocuments", + "displayName": "Show recommended files on the File tab or start page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v11~policy~l_microsoftofficesystem~l_miscellaneous437_l_officerecommendeddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v11~policy~l_microsoftofficesystem~l_miscellaneous437_l_officerecommendeddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v11~policy~l_microsoftofficesystem~l_services_l_officeenableautoalttext", + "displayName": "Automatically generate alternative text (alt text) for pictures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v11~policy~l_microsoftofficesystem~l_services_l_officeenableautoalttext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v11~policy~l_microsoftofficesystem~l_services_l_officeenableautoalttext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_miscellaneous437_l_ageoutpolicylocalversioning", + "displayName": "Number of days to keep local document versions in the local cache (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_miscellaneous437_l_ageoutpolicylocalversioning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_miscellaneous437_l_ageoutpolicylocalversioning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_miscellaneous437_l_ageoutpolicylocalversioning_l_ageoutpolicylocalversioningdecimal", + "displayName": "Number of days (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_miscellaneous437_l_disallowedroamingmrudomains", + "displayName": "Turn off roaming of file names and metadata by server domain. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_miscellaneous437_l_disallowedroamingmrudomains_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_miscellaneous437_l_disallowedroamingmrudomains_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_miscellaneous437_l_disallowedroamingmrudomains_l_disalloweddomainlist", + "displayName": "Disallowed Domains: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_securitysettings_l_basicauthpromptbehavior", + "displayName": "Allow specified hosts to show Basic Authentication prompts to Office apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_securitysettings_l_basicauthpromptbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_securitysettings_l_basicauthpromptbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_securitysettings_l_basicauthpromptbehavior_l_authenticationbasicauthenabledhostsid", + "displayName": "Host names: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_securitysettings_l_basicauthproxybehavior", + "displayName": "Allow Basic Authentication prompts from network proxies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_securitysettings_l_basicauthproxybehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v12~policy~l_microsoftofficesystem~l_securitysettings_l_basicauthproxybehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v13~policy~l_microsoftofficesystem~l_pdfandxps_l_pdfprotectionfromoffice", + "displayName": "Use the Sensitivity feature in Office to apply sensitivity labels to PDFs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v13~policy~l_microsoftofficesystem~l_pdfandxps_l_pdfprotectionfromoffice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v13~policy~l_microsoftofficesystem~l_pdfandxps_l_pdfprotectionfromoffice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v13~policy~l_microsoftofficesystem~l_securitysettings_l_aipexception", + "displayName": "Use the Azure Information Protection add-in for sensitivity labeling (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v13~policy~l_microsoftofficesystem~l_securitysettings_l_aipexception_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v13~policy~l_microsoftofficesystem~l_securitysettings_l_aipexception_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_m365linkshandling_l_m365linksbrowserchoice", + "displayName": "Choose which browser opens web links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_m365linkshandling_l_m365linksbrowserchoice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_m365linkshandling_l_m365linksbrowserchoice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_m365linkshandling_l_m365linksbrowserchoice_l_browserchoiceenum", + "displayName": "Browser: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_m365linkshandling_l_m365linksbrowserchoice_l_browserchoiceenum_0", + "displayName": "System default browser", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_m365linkshandling_l_m365linksbrowserchoice_l_browserchoiceenum_1", + "displayName": "Microsoft Edge", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforirm", + "displayName": "Encryption mode for Information Rights Management (IRM) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforirm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforirm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforirm_l_encryptiontypeforirmcolon", + "displayName": "IRM Encryption Mode: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforirm_l_encryptiontypeforirmcolon_1", + "displayName": "Cipher Block Chaining (CBC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v14~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforirm_l_encryptiontypeforirmcolon_2", + "displayName": "Electronic Codebook (ECB)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v15~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableresourceidnamemapping", + "displayName": "Disable caching when opening server-only files. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v15~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableresourceidnamemapping_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v15~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableresourceidnamemapping_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingofadaptivefloatieuser", + "displayName": "Disable Training of the Adaptive Floatie feature for the user (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingofadaptivefloatieuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletrainingofadaptivefloatieuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletraininguser", + "displayName": "Disable Training of all features for the user (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletraininguser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_miscellaneous437_l_disabletraininguser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_allowuserdefinedfilesharecatalogs", + "displayName": "Allow users to control the Trusted Shared Folder Catalogs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_allowuserdefinedfilesharecatalogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v16~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_allowuserdefinedfilesharecatalogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_diagnostics_l_configuregetdiagnostics", + "displayName": "Configure Get Diagnostics feature's visibility in the Help Ribbon in Office applications and control the feature's mode of operation. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_diagnostics_l_configuregetdiagnostics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_diagnostics_l_configuregetdiagnostics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_diagnostics_l_configuregetdiagnostics_l_configuregetdiagnosticsenum", + "displayName": "Configure Get Diagnostics: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_diagnostics_l_configuregetdiagnostics_l_configuregetdiagnosticsenum_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_diagnostics_l_configuregetdiagnostics_l_configuregetdiagnosticsenum_1", + "displayName": "Upload diagnostic logs to Microsoft", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v17~policy~l_microsoftofficesystem~l_diagnostics_l_configuregetdiagnostics_l_configuregetdiagnosticsenum_2", + "displayName": "Capture diagnostic logs in a local archive, dont upload logs to Microsoft", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter", + "displayName": "Hide Microsoft cloud-based file locations in the Backstage view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2.updates.2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_l_onlinestoragefilterid", + "displayName": "Online Storage Filter Value: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences", + "displayName": "Allow the use of connected experiences in Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2.updates.2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent", + "displayName": "Allow the use of connected experiences in Office that analyze content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent", + "displayName": "Allow the use of connected experiences in Office that download online content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences", + "displayName": "Allow the use of additional optional connected experiences in Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2.updates.3~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffexcel", + "displayName": "Turn off AutoSave by default in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffexcel_l_autosavedefaultsettingenum", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffexcel_l_autosavedefaultsettingenum_0", + "displayName": "Use AutoSave Default Setting", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffexcel_l_autosavedefaultsettingenum_1", + "displayName": "AutoSave Is On By Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffexcel_l_autosavedefaultsettingenum_2", + "displayName": "AutoSave Is Off By Default", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffpowerpoint", + "displayName": "Turn off AutoSave by default in PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffpowerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffpowerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffpowerpoint_l_autosavedefaultsettingenum", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffpowerpoint_l_autosavedefaultsettingenum_0", + "displayName": "Use AutoSave Default Setting", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffpowerpoint_l_autosavedefaultsettingenum_1", + "displayName": "AutoSave Is On By Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffpowerpoint_l_autosavedefaultsettingenum_2", + "displayName": "AutoSave Is Off By Default", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffword", + "displayName": "Turn off AutoSave by default in Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffword_l_autosavedefaultsettingenum", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffword_l_autosavedefaultsettingenum_0", + "displayName": "Use AutoSave Default Setting", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffword_l_autosavedefaultsettingenum_1", + "displayName": "AutoSave Is On By Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_autosavedefaultoffword_l_autosavedefaultsettingenum_2", + "displayName": "AutoSave Is Off By Default", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationexcel", + "displayName": "[Deprecated] Don’t AutoSave files in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationpowerpoint", + "displayName": "[Deprecated] Don’t AutoSave files in PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationpowerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationpowerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationword", + "displayName": "[Deprecated] Don’t AutoSave files in Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_autosave_l_dontautosaveinformationword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_disabledefaultservice", + "displayName": "Remove Office Presentation Service from the list of online presentation services in PowerPoint and Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_disabledefaultservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_disabledefaultservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_disableprogrammaticaccess", + "displayName": "Restrict programmatic access for creating online presentations in PowerPoint and Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_disableprogrammaticaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_disableprogrammaticaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_preventaccesstouserspecifiedservices", + "displayName": "Prevent users from adding online presentation services in PowerPoint and Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_preventaccesstouserspecifiedservices_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast_l_preventaccesstouserspecifiedservices_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00", + "displayName": "Configure presentation service in PowerPoint and Word 1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastservicecreatesharednotes0", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastservicecreatesharednotes0_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastservicecreatesharednotes0_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastservicemajorversion0", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastserviceminorversion0", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastservicenotesdefaulturl0", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastserviceservercapabilities0", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastserviceserverdescription0", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastserviceserverinfo0", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastserviceservername0", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastserviceserverterms0", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastserviceserverurl0", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice00_l_broadcastservicesharednotescustomurl0", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01", + "displayName": "Configure presentation service in PowerPoint and Word 2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastservicecreatesharednotes1", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastservicecreatesharednotes1_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastservicecreatesharednotes1_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastservicemajorversion1", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastserviceminorversion1", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastservicenotesdefaulturl1", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastserviceservercapabilities1", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastserviceserverdescription1", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastserviceserverinfo1", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastserviceservername1", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastserviceserverterms1", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastserviceserverurl1", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice01_l_broadcastservicesharednotescustomurl1", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02", + "displayName": "Configure presentation service in PowerPoint and Word 3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastservicecreatesharednotes2", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastservicecreatesharednotes2_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastservicecreatesharednotes2_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastservicemajorversion2", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastserviceminorversion2", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastservicenotesdefaulturl2", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastserviceservercapabilities2", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastserviceserverdescription2", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastserviceserverinfo2", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastserviceservername2", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastserviceserverterms2", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastserviceserverurl2", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice02_l_broadcastservicesharednotescustomurl2", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03", + "displayName": "Configure presentation service in PowerPoint and Word 4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastservicecreatesharednotes3", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastservicecreatesharednotes3_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastservicecreatesharednotes3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastservicemajorversion3", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastserviceminorversion3", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastservicenotesdefaulturl3", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastserviceservercapabilities3", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastserviceserverdescription3", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastserviceserverinfo3", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastserviceservername3", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastserviceserverterms3", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastserviceserverurl3", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice03_l_broadcastservicesharednotescustomurl3", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04", + "displayName": "Configure presentation service in PowerPoint and Word 5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastservicecreatesharednotes4", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastservicecreatesharednotes4_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastservicecreatesharednotes4_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastservicemajorversion4", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastserviceminorversion4", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastservicenotesdefaulturl4", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastserviceservercapabilities4", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastserviceserverdescription4", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastserviceserverinfo4", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastserviceservername4", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastserviceserverterms4", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastserviceserverurl4", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice04_l_broadcastservicesharednotescustomurl4", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05", + "displayName": "Configure presentation service in PowerPoint and Word 6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastservicecreatesharednotes5", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastservicecreatesharednotes5_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastservicecreatesharednotes5_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastservicemajorversion5", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastserviceminorversion5", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastservicenotesdefaulturl5", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastserviceservercapabilities5", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastserviceserverdescription5", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastserviceserverinfo5", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastserviceservername5", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastserviceserverterms5", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastserviceserverurl5", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice05_l_broadcastservicesharednotescustomurl5", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06", + "displayName": "Configure presentation service in PowerPoint and Word 7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastservicecreatesharednotes6", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastservicecreatesharednotes6_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastservicecreatesharednotes6_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastservicemajorversion6", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastserviceminorversion6", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastservicenotesdefaulturl6", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastserviceservercapabilities6", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastserviceserverdescription6", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastserviceserverinfo6", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastserviceservername6", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastserviceserverterms6", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastserviceserverurl6", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice06_l_broadcastservicesharednotescustomurl6", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07", + "displayName": "Configure presentation service in PowerPoint and Word 8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastservicecreatesharednotes7", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastservicecreatesharednotes7_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastservicecreatesharednotes7_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastservicemajorversion7", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastserviceminorversion7", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastservicenotesdefaulturl7", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastserviceservercapabilities7", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastserviceserverdescription7", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastserviceserverinfo7", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastserviceservername7", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastserviceserverterms7", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastserviceserverurl7", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice07_l_broadcastservicesharednotescustomurl7", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08", + "displayName": "Configure presentation service in PowerPoint and Word 9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastservicecreatesharednotes8", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastservicecreatesharednotes8_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastservicecreatesharednotes8_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastservicemajorversion8", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastserviceminorversion8", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastservicenotesdefaulturl8", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastserviceservercapabilities8", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastserviceserverdescription8", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastserviceserverinfo8", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastserviceservername8", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastserviceserverterms8", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastserviceserverurl8", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice08_l_broadcastservicesharednotescustomurl8", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09", + "displayName": "Configure presentation service in PowerPoint and Word 10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastservicecreatesharednotes9", + "displayName": "Create Shared Notes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastservicecreatesharednotes9_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastservicecreatesharednotes9_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastservicemajorversion9", + "displayName": "Server Major Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastserviceminorversion9", + "displayName": "Server Minor Version: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastservicenotesdefaulturl9", + "displayName": "Shared Notes Default Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastserviceservercapabilities9", + "displayName": "Server Capabilities flags: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastserviceserverdescription9", + "displayName": "Description (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastserviceserverinfo9", + "displayName": "Information URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastserviceservername9", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastserviceserverterms9", + "displayName": "Service agreement URL (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastserviceserverurl9", + "displayName": "Service URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_broadcast~l_broadcastservices_l_configurebroadcastservice09_l_broadcastservicesharednotescustomurl9", + "displayName": "Shared Notes Url (optional): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasedefaultinstanceslimit", + "displayName": "Set the database default instances limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasedefaultinstanceslimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasedefaultinstanceslimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasedefaultinstanceslimit_l_databasedefaultinstanceslimitdecimal", + "displayName": "Default number of instances returned (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasedefaulttimeout", + "displayName": "Set the database default timeout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasedefaulttimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasedefaulttimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasedefaulttimeout_l_databasedefaulttimeoutdecimal", + "displayName": "Database default timeout (milliseconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasemaxinstanceslimit", + "displayName": "Set maximum database instances limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasemaxinstanceslimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasemaxinstanceslimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasemaxinstanceslimit_l_databasemaxinstanceslimitdecimal", + "displayName": "Maximum number of instances returned (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasemaxtimeout", + "displayName": "Set maximum database timeout limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasemaxtimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasemaxtimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_database_l_databasemaxtimeout_l_databasemaxtimeoutdecimal", + "displayName": "Database maximum timeout (milliseconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_cleanupinterval", + "displayName": "Set the cleanup interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_cleanupinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_cleanupinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_cleanupinterval_l_cleanupintervaldecimal", + "displayName": "Cleanup interval (minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_errorscleanupinterval", + "displayName": "Set errors cleanup interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_errorscleanupinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_errorscleanupinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_errorscleanupinterval_l_errorscleanupintervaldecimal", + "displayName": "Errors cleanup interval (minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_maxretries", + "displayName": "Set maximum number of retries when synchronization fails (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_maxretries_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_maxretries_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_maxretries_l_maxretriesdecimal", + "displayName": "Maximum number of retries (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_queryinstanceslimit", + "displayName": "Set query items limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_queryinstanceslimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_queryinstanceslimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_queryinstanceslimit_l_queryinstanceslimitdecimal", + "displayName": "Query instances limit (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_querytimeout", + "displayName": "Set query processing timeout limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_querytimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_querytimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_querytimeout_l_querytimeoutdecimal", + "displayName": "Time before query timeout (minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_refreshfrequencylimit", + "displayName": "Set refresh frequency limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_refreshfrequencylimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_refreshfrequencylimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_refreshfrequencylimit_l_refreshfrequencylimitdecimal", + "displayName": "Refresh frequency limit (minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_retryintervallimit", + "displayName": "Set subscription refresh retry interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_retryintervallimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_retryintervallimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_retryintervallimit_l_retryintervallimitdecimal", + "displayName": "Maximum retry interval (minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_sleepinterval", + "displayName": "Set maximum sleep interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_sleepinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_sleepinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_synchronization_l_sleepinterval_l_sleepintervaldecimal", + "displayName": "Sleep interval upper limit (minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicedefaultsizelimit", + "displayName": "Set web service default return size limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicedefaultsizelimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicedefaultsizelimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicedefaultsizelimit_l_webservicedefaultsizelimitdecimal", + "displayName": "Web service default size limit (KB) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicedefaulttimeout", + "displayName": "Set web service default timeout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicedefaulttimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicedefaulttimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicedefaulttimeout_l_webservicedefaulttimeoutdecimal", + "displayName": "Web service default timeout limit (milliseconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicemaxsizelimit", + "displayName": "Set maximum web service return size limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicemaxsizelimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicemaxsizelimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicemaxsizelimit_l_webservicemaxsizelimitdecimal", + "displayName": "Web service maximum size limit (KB) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicemaxtimeout", + "displayName": "Set maximum web service default timeout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicemaxtimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicemaxtimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_businessdata~l_webservice_l_webservicemaxtimeout_l_webservicemaxtimeoutdecimal", + "displayName": "Web service maximum timeout limit (milliseconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_defaultsubjectforareviewrequest", + "displayName": "Default subject for a review request (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_defaultsubjectforareviewrequest_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_defaultsubjectforareviewrequest_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_defaultsubjectforareviewrequest_l_defaultsubjectforareviewrequest393", + "displayName": "Default subject for a review request (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_donotpromptuserstoshareexcelworkbookswhensendingforreview", + "displayName": "Do not prompt users to share Excel workbooks when sending for review (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_donotpromptuserstoshareexcelworkbookswhensendingforreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_donotpromptuserstoshareexcelworkbookswhensendingforreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_maxnumberofdocumentsbeingreviewedusingadhocreview", + "displayName": "Max number of documents being reviewed using ad hoc review (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_maxnumberofdocumentsbeingreviewedusingadhocreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_maxnumberofdocumentsbeingreviewedusingadhocreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_maxnumberofdocumentsbeingreviewedusingadhocreview_l_empty388", + "displayName": "\r\nMax number of documents being reviewed using ad hoc review\r\n", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_maxnumberofdocumentsbeingreviewedusingsendforreview", + "displayName": "Max number of documents being reviewed using 'send for review' (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_maxnumberofdocumentsbeingreviewedusingsendforreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_maxnumberofdocumentsbeingreviewedusingsendforreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_maxnumberofdocumentsbeingreviewedusingsendforreview_l_empty385", + "displayName": "\r\nMax number of documents being reviewed using 'send for review'\r\n", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlookadhocreviewing", + "displayName": "Outlook: Ad hoc reviewing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlookadhocreviewing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlookadhocreviewing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlookadhocreviewing_l_empty400", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlookadhocreviewing_l_empty400_0", + "displayName": "Enable ad hoc reviewing", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlookadhocreviewing_l_empty400_2", + "displayName": "Exclude author's e-mail in documents", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlookadhocreviewing_l_empty400_1", + "displayName": "Disable ad hoc reviewing", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlooksendforreview", + "displayName": "Outlook: 'send for review' (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlooksendforreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlooksendforreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlooksendforreview_l_empty399", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlooksendforreview_l_empty399_0", + "displayName": "Enable 'send for review'", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlooksendforreview_l_empty399_2", + "displayName": "Exclude author's e-mail in documents", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_outlooksendforreview_l_empty399_1", + "displayName": "Disable 'send for review'", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_promptforsendingrevieweddocumenttoauthor", + "displayName": "Prompt for sending reviewed document to author (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_promptforsendingrevieweddocumenttoauthor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_promptforsendingrevieweddocumenttoauthor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_promptforsendingrevieweddocumenttoauthor_l_empty395", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_promptforsendingrevieweddocumenttoauthor_l_empty395_2", + "displayName": "Never ask user", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_promptforsendingrevieweddocumenttoauthor_l_empty395_1", + "displayName": "Prompt for 'send for review'", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_promptforsendingrevieweddocumenttoauthor_l_empty395_0", + "displayName": "Always prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_whenchoosingsendforreview", + "displayName": "When choosing 'Send for Review...' (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_whenchoosingsendforreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_whenchoosingsendforreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_whenchoosingsendforreview_l_empty392", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_whenchoosingsendforreview_l_empty392_2", + "displayName": "Send link and attachment", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_whenchoosingsendforreview_l_empty392_1", + "displayName": "Only send link", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings_l_whenchoosingsendforreview_l_empty392_0", + "displayName": "Prompt user", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_coauthoring_l_setdocumentsynchronizationtimeout", + "displayName": "Set document synchronization timeout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_coauthoring_l_setdocumentsynchronizationtimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_coauthoring_l_setdocumentsynchronizationtimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_coauthoring_l_setdocumentsynchronizationtimeout_l_setdocumentsynchronizationtimeoutspinid", + "displayName": "in milliseconds: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withasimplewebdiscussionslink373", + "displayName": "With a simple Web discussions link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withasimplewebdiscussionslink373_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withasimplewebdiscussionslink373_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withasimplewebdiscussionslink373_l_withasimplewebdiscussionslink374", + "displayName": "With a simple Web discussions link (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withawebdiscussionslink380", + "displayName": "With a Web discussions link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withawebdiscussionslink380_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withawebdiscussionslink380_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withawebdiscussionslink380_l_withawebdiscussionslink381", + "displayName": "With a Web discussions link (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withjustanattachment", + "displayName": "With just an attachment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withjustanattachment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withjustanattachment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withjustanattachment_l_withjustanattachment379", + "displayName": "With just an attachment (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withjustasimplewebdiscussionslink", + "displayName": "With just a simple Web discussions link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withjustasimplewebdiscussionslink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withjustasimplewebdiscussionslink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareply_l_withjustasimplewebdiscussionslink_l_withjustasimplewebdiscussionslink377", + "displayName": "With just a simple Web discussions link (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_onlycontainingalink", + "displayName": "Only containing a link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_onlycontainingalink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_onlycontainingalink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_onlycontainingalink_l_onlycontainingalink357", + "displayName": "Only containing a link (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_onlycontaininganattachment", + "displayName": "Only containing an attachment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_onlycontaininganattachment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_onlycontaininganattachment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_onlycontaininganattachment_l_onlycontaininganattachment356", + "displayName": "Only containing an attachment (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withalinkandanattachment", + "displayName": "With a link and an attachment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withalinkandanattachment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withalinkandanattachment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withalinkandanattachment_l_withalinkandanattachment359", + "displayName": "With a link and an attachment (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withasimplewebdiscussionslink", + "displayName": "With a simple Web discussions link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withasimplewebdiscussionslink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withasimplewebdiscussionslink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withasimplewebdiscussionslink_l_withasimplewebdiscussionslink362", + "displayName": "With a simple Web discussions link (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withasimplewebdiscussionslinkandanattachment", + "displayName": "With a simple Web discussions link and an attachment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withasimplewebdiscussionslinkandanattachment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withasimplewebdiscussionslinkandanattachment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withasimplewebdiscussionslinkandanattachment_l_withasimplewebdiscussionslinkandanattachment364", + "displayName": "With a simple Web discussions link and an attachment (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withawebdiscussionslink", + "displayName": "With a Web discussions link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withawebdiscussionslink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withawebdiscussionslink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withawebdiscussionslink_l_withawebdiscussionslink367", + "displayName": "With a Web discussions link (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withawebdiscussionslinkandanattachment", + "displayName": "With a Web discussions link and an attachment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withawebdiscussionslinkandanattachment_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withawebdiscussionslinkandanattachment_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_collaborationsettings~l_defaultmessagetextforareviewrequest_l_withawebdiscussionslinkandanattachment_l_withawebdiscussionslinkandanattachment370", + "displayName": "With a Web discussions link and an attachment (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_configurepresenceicons", + "displayName": "Configure presence icons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_configurepresenceicons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_configurepresenceicons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_configurepresenceicons_l_configurepresenceiconsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_configurepresenceicons_l_configurepresenceiconsdropid_0", + "displayName": "Display all", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_configurepresenceicons_l_configurepresenceiconsdropid_1", + "displayName": "Display some", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_configurepresenceicons_l_configurepresenceiconsdropid_2", + "displayName": "Display none", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_displaylegacygaldialog", + "displayName": "Display legacy GAL dialog (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_displaylegacygaldialog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_displaylegacygaldialog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_donotdisplayhovermenu", + "displayName": "Do not display Hover Menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_donotdisplayhovermenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_donotdisplayhovermenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_donotdisplayphotograph", + "displayName": "Do not display photograph (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_donotdisplayphotograph_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_donotdisplayphotograph_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_removememberoftab", + "displayName": "Remove Member Of tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_removememberoftab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_removememberoftab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_removeorganizationtab", + "displayName": "Remove Organization tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_removeorganizationtab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_removeorganizationtab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffclicktoimoption", + "displayName": "Turn off click to IM option (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffclicktoimoption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffclicktoimoption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffclicktotelephone", + "displayName": "Turn off click to telephone (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffclicktotelephone_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffclicktotelephone_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffpresenceintegration", + "displayName": "Turn off presence integration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffpresenceintegration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard_l_turnoffpresenceintegration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoffcontacttabcalendar", + "displayName": "Remove Calendar Line (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoffcontacttabcalendar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoffcontacttabcalendar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoffcontacttablocation", + "displayName": "Remove Location Line (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoffcontacttablocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoffcontacttablocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacebirthday", + "displayName": "Replace AD - Birthday (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacebirthday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacebirthday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacebirthday_l_birthdayadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacecompany", + "displayName": "Replace AD - Company (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacecompany_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacecompany_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacecompany_l_companyadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceemail", + "displayName": "Replace AD - E-mail (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceemail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceemail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceemail_l_emailadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehome", + "displayName": "Replace AD - Home (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehome_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehome_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehome_l_homeadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehome2", + "displayName": "Replace AD - Home2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehome2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehome2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehome2_l_home2adreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehomeadd", + "displayName": "Replace AD - Home Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehomeadd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehomeadd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacehomeadd_l_homeaddadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceim", + "displayName": "Replace AD - IM (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceim_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceim_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceim_l_imadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacemobile", + "displayName": "Replace AD - Mobile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacemobile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacemobile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacemobile_l_mobileadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceoffice", + "displayName": "Replace AD - Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceoffice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceoffice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceoffice_l_officeadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceother", + "displayName": "Replace AD - Other (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceother_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceother_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceother_l_otheradreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceotheradd", + "displayName": "Replace AD - Other Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceotheradd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceotheradd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceotheradd_l_otheraddadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceprofile", + "displayName": "Replace AD - Profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceprofile_l_profileadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacework", + "displayName": "Replace AD - Work (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacework_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacework_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacework_l_workadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacework2", + "displayName": "Replace AD - Work2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacework2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacework2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplacework2_l_work2adreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceworkadd", + "displayName": "Replace AD - Work Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceworkadd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceworkadd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceworkadd_l_workaddadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceworkfax", + "displayName": "Replace AD - WorkFax (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceworkfax_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceworkfax_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabadreplaceworkfax_l_workfaxadreplace", + "displayName": "AD Attribute: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacebirthday", + "displayName": "Replace Label - Birthday (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacebirthday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacebirthday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacebirthday_l_birthdaylabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacecompany", + "displayName": "Replace Label - Company (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacecompany_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacecompany_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacecompany_l_companylabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceemail", + "displayName": "Replace Label - E-mail (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceemail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceemail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceemail_l_emaillabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehome", + "displayName": "Replace Label - Home (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehome_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehome_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehome_l_homelabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehome2", + "displayName": "Replace Label - Home2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehome2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehome2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehome2_l_home2labelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehomeadd", + "displayName": "Replace Label - Home Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehomeadd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehomeadd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacehomeadd_l_homeaddlabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceim", + "displayName": "Replace Label - IM (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceim_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceim_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceim_l_imlabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacemobile", + "displayName": "Replace Label - Mobile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacemobile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacemobile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacemobile_l_mobilelabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceoffice", + "displayName": "Replace Label - Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceoffice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceoffice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceoffice_l_officelabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceother", + "displayName": "Replace Label - Other (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceother_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceother_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceother_l_otherlabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceotheradd", + "displayName": "Replace Label - Other Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceotheradd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceotheradd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceotheradd_l_otheraddlabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceprofile", + "displayName": "Replace Label - Profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceprofile_l_profilelabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacework", + "displayName": "Replace Label - Work (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacework_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacework_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacework_l_worklabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacework2", + "displayName": "Replace Label - Work2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacework2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacework2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplacework2_l_work2labelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceworkadd", + "displayName": "Replace Label - Work Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceworkadd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceworkadd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceworkadd_l_workaddlabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceworkfax", + "displayName": "Replace Label - WorkFax (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceworkfax_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceworkfax_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttablabelreplaceworkfax_l_workfaxlabelreplace", + "displayName": "Label: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacebirthday", + "displayName": "Replace MAPI - Birthday (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacebirthday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacebirthday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacebirthday_l_birthdaymapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacecompany", + "displayName": "Replace MAPI - Company (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacecompany_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacecompany_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacecompany_l_companymapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceemail", + "displayName": "Replace MAPI - E-mail (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceemail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceemail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceemail_l_emailmapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehome", + "displayName": "Replace MAPI - Home (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehome_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehome_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehome_l_homemapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehome2", + "displayName": "Replace MAPI - Home2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehome2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehome2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehome2_l_home2mapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehomeadd", + "displayName": "Replace MAPI - Home Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehomeadd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehomeadd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacehomeadd_l_homeaddmapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceim", + "displayName": "Replace MAPI - IM (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceim_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceim_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceim_l_immapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacemobile", + "displayName": "Replace MAPI - Mobile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacemobile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacemobile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacemobile_l_mobilemapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceoffice", + "displayName": "Replace MAPI - Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceoffice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceoffice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceoffice_l_officemapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceother", + "displayName": "Replace MAPI - Other (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceother_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceother_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceother_l_othermapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceotheradd", + "displayName": "Replace MAPI - Other Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceotheradd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceotheradd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceotheradd_l_otheraddmapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceprofile", + "displayName": "Replace MAPI - Profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceprofile_l_profilemapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacework", + "displayName": "Replace MAPI - Work (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacework_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacework_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacework_l_workmapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacework2", + "displayName": "Replace MAPI - Work2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacework2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacework2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplacework2_l_work2mapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceworkadd", + "displayName": "Replace MAPI - Work Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceworkadd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceworkadd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceworkadd_l_workaddmapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceworkfax", + "displayName": "Replace MAPI - WorkFax (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceworkfax_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceworkfax_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_contactcard~l_contacttab_l_turnoncontacttabmapireplaceworkfax_l_workfaxmapireplace", + "displayName": "MAPI Property: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_baseurl", + "displayName": "Base URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_baseurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_baseurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_baseurl_l_baseurl349", + "displayName": "Base URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_defaultbuttontext", + "displayName": "Default button text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_defaultbuttontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_defaultbuttontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_defaultbuttontext_l_defaultbuttontext350", + "displayName": "Default button text (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_defaultsaveprompttext", + "displayName": "Default save prompt text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_defaultsaveprompttext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_defaultsaveprompttext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_defaultsaveprompttext_l_defaultsaveprompttext352", + "displayName": "Default save prompt text (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_listoferrormessagestocustomize", + "displayName": "List of error messages to customize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_listoferrormessagestocustomize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_listoferrormessagestocustomize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize351", + "displayName": "List of error messages to customize (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize351_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize351_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_hidebuiltinshapepresetstyles", + "displayName": "Hide built-in shape style presets (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_hidebuiltinshapepresetstyles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_hidebuiltinshapepresetstyles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_tooltipfordisabledtoolbarbuttonsandmenuitems", + "displayName": "Tooltip for disabled toolbar buttons and menu items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_tooltipfordisabledtoolbarbuttonsandmenuitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_tooltipfordisabledtoolbarbuttonsandmenuitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_tooltipfordisabledtoolbarbuttonsandmenuitems_l_tooltipfordisabledtoolbarbuttonsandmenuitems353", + "displayName": "Tooltip for disabled toolbar buttons and menu items (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_turnoffscreenclipping", + "displayName": "Turn off screen clipping (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_turnoffscreenclipping_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_disableitemsinuserinterface_l_turnoffscreenclipping_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_dlp_l_policytipsenabled", + "displayName": "Enable DLP on application boot (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_dlp_l_policytipsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_dlp_l_policytipsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_disabledocumentinformationpanel", + "displayName": "Disable Document Information Panel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_disabledocumentinformationpanel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_disabledocumentinformationpanel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_documentinformationpanelbeaconingui", + "displayName": "Document Information Panel Beaconing UI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_documentinformationpanelbeaconingui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_documentinformationpanelbeaconingui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_documentinformationpanelbeaconingui_l_empty423", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_documentinformationpanelbeaconingui_l_empty423_0", + "displayName": "Never show UI", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_documentinformationpanelbeaconingui_l_empty423_1", + "displayName": "Always show UI", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_documentinformationpanelbeaconingui_l_empty423_2", + "displayName": "Show UI if XSN is in Internet Zone", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_offlinemodefordocumentinformationpanel", + "displayName": "Offline Mode for Document Information Panel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_offlinemodefordocumentinformationpanel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_offlinemodefordocumentinformationpanel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_offlinemodefordocumentinformationpanel_l_empty422", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_offlinemodefordocumentinformationpanel_l_empty422_0", + "displayName": "Disable Offline Mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_offlinemodefordocumentinformationpanel_l_empty422_1", + "displayName": "Enable Offline Mode, work offline now", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_offlinemodefordocumentinformationpanel_l_empty422_2", + "displayName": "Enable Offline Mode", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_trustcentersolution", + "displayName": "Trust Local Solution (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_trustcentersolution_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_trustcentersolution_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_trustcentersolution_l_empty421", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_trustcentersolution_l_empty421_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_documentinformationpanel_l_trustcentersolution_l_empty421_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_hidemissingcomponentdownloadhyperlinks", + "displayName": "Hide missing component download hyperlinks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_hidemissingcomponentdownloadhyperlinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_hidemissingcomponentdownloadhyperlinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_setdownloadlocationfornet20framework", + "displayName": "Set download location for Microsoft .NET Framework 2.0 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_setdownloadlocationfornet20framework_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_setdownloadlocationfornet20framework_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_setdownloadlocationfornet20framework_l_empty434", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_setdownloadlocationfornet20frameworklp", + "displayName": "Set download location for Microsoft .NET Framework 2.0 Language Pack (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_setdownloadlocationfornet20frameworklp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_setdownloadlocationfornet20frameworklp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_downloadingframeworkcomponents_l_setdownloadlocationfornet20frameworklp_l_empty435", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy1", + "displayName": "Places Bar Location 1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy1_l_placesbarname", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy1_l_placesbarpath", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy10", + "displayName": "Places Bar Location 10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy10_l_placesbarname227", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy10_l_placesbarpath228", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy2", + "displayName": "Places Bar Location 2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy2_l_placesbarname211", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy2_l_placesbarpath212", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy3", + "displayName": "Places Bar Location 3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy3_l_placesbarname213", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy3_l_placesbarpath214", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy4", + "displayName": "Places Bar Location 4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy4_l_placesbarname215", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy4_l_placesbarpath216", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy5", + "displayName": "Places Bar Location 5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy5_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy5_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy5_l_placesbarname217", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy5_l_placesbarpath218", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy6", + "displayName": "Places Bar Location 6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy6_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy6_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy6_l_placesbarname219", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy6_l_placesbarpath220", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy7", + "displayName": "Places Bar Location 7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy7_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy7_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy7_l_placesbarname221", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy7_l_placesbarpath222", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy8", + "displayName": "Places Bar Location 8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy8_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy8_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy8_l_placesbarname223", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy8_l_placesbarpath224", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy9", + "displayName": "Places Bar Location 9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy9_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy9_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy9_l_placesbarname225", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_placesbarlocations_l_placesbarlocationpolicy9_l_placesbarpath226", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing", + "displayName": "Activate Restricted Browsing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_access", + "displayName": "Microsoft Access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_access_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_access_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_excel", + "displayName": "Microsoft Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_excel_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_excel_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_infopath", + "displayName": "Microsoft InfoPath (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_infopath_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_infopath_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_onenote", + "displayName": "Microsoft OneNote (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_onenote_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_onenote_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_outlook", + "displayName": "Microsoft Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_outlook_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_outlook_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_powerpoint", + "displayName": "Microsoft PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_powerpoint_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_powerpoint_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_project", + "displayName": "Microsoft Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_project_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_project_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_publisher", + "displayName": "Microsoft Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_publisher_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_publisher_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_sharepoint", + "displayName": "Microsoft SharePoint Designer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_sharepoint_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_sharepoint_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_visio", + "displayName": "Microsoft Visio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_visio_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_visio_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_word", + "displayName": "Microsoft Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_word_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_activaterestrictedbrowsing_l_word_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_listofapprovedlocationspolicy", + "displayName": "Approve Locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_listofapprovedlocationspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_listofapprovedlocationspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_listofapprovedlocationspolicy_l_listofapprovedlocations", + "displayName": "List of Approved Locations: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_listofapprovedlocationspolicy_l_listofapprovedlocations_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_fileopensave~l_restrictedbrowsing_l_listofapprovedlocationspolicy_l_listofapprovedlocations_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_firstrun_l_disablemovie", + "displayName": "Disable First Run Movie (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_firstrun_l_disablemovie_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_firstrun_l_disablemovie_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_firstrun_l_disableofficefirstrun", + "displayName": "Disable Office First Run on application boot (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_firstrun_l_disableofficefirstrun_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_firstrun_l_disableofficefirstrun_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_allowroamingquickaccesstoolbarribboncustomizations", + "displayName": "Allow roaming of all user customizations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_allowroamingquickaccesstoolbarribboncustomizations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_allowroamingquickaccesstoolbarribboncustomizations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy", + "displayName": "Turn off user customizations via UI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiaccess", + "displayName": "Disallow in Access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiaccess_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiaccess_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiexcel", + "displayName": "Disallow in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiexcel_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiexcel_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiinfopath", + "displayName": "Disallow in InfoPath (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiinfopath_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiinfopath_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuionenote", + "displayName": "Disallow in OneNote (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuionenote_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuionenote_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuioutlook", + "displayName": "Disallow in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuioutlook_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuioutlook_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuipowerpoint", + "displayName": "Disallow in PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuipowerpoint_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuipowerpoint_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiproject", + "displayName": "Disallow in Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiproject_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiproject_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuipublisher", + "displayName": "Disallow in Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuipublisher_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuipublisher_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuispd", + "displayName": "Disallow in SharePoint Designer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuispd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuispd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuispw", + "displayName": "Disallow in SharePoint Workspace (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuispw_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuispw_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuivisio", + "displayName": "Disallow in Visio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuivisio_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuivisio_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiword", + "displayName": "Disallow in Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiword_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_disabletoolbarcustomizationuipolicy_l_disabletoolbarcustomizationuiword_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_donotshowscreentipsontoolbars", + "displayName": "Do not show ScreenTips on toolbars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_donotshowscreentipsontoolbars_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_donotshowscreentipsontoolbars_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_largeicons", + "displayName": "Large icons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_largeicons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_largeicons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_listfontnamesintheirfont", + "displayName": "List font names in their font (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_listfontnamesintheirfont_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_listfontnamesintheirfont_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations", + "displayName": "Menu animations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations_l_menuanimations209", + "displayName": "Menu animations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations_l_menuanimations209_0", + "displayName": "(System Default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations_l_menuanimations209_1", + "displayName": "Random", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations_l_menuanimations209_2", + "displayName": "Unfold", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations_l_menuanimations209_3", + "displayName": "Slide", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_menuanimations_l_menuanimations209_4", + "displayName": "Fade", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy", + "displayName": "Disable UI extending from documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyaccess", + "displayName": "Disallow in Access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyaccess_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyaccess_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyexcel", + "displayName": "Disallow in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyexcel_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyexcel_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyinfopath", + "displayName": "Disallow in InfoPath (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyinfopath_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyinfopath_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyoutlook", + "displayName": "Disallow in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyoutlook_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyoutlook_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicypowerpoint", + "displayName": "Disallow in PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicypowerpoint_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicypowerpoint_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyproject", + "displayName": "Disallow in Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyproject_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyproject_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicypublisher", + "displayName": "Disallow in Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicypublisher_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicypublisher_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyvisio", + "displayName": "Disallow in Visio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyvisio_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyvisio_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyword", + "displayName": "Disallow in Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyword_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_noextensibilitycustomizationfromdocumentpolicy_l_noextensibilitycustomizationfromdocumentpolicyword_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy", + "displayName": "Turn off all user customizations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyaccess", + "displayName": "Disallow in Access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyaccess_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyaccess_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyexcel", + "displayName": "Disallow in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyexcel_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyexcel_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyinfopath", + "displayName": "Disallow in InfoPath (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyinfopath_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyinfopath_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyonenote", + "displayName": "Disallow in OneNote (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyonenote_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyonenote_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyoutlook", + "displayName": "Disallow in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyoutlook_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyoutlook_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicypowerpoint", + "displayName": "Disallow in PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicypowerpoint_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicypowerpoint_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyproject", + "displayName": "Disallow in Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyproject_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyproject_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicypublisher", + "displayName": "Disallow in Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicypublisher_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicypublisher_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyspd", + "displayName": "Disallow in SharePoint Designer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyspd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyspd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyspw", + "displayName": "Disallow in SharePoint Workspace (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyspw_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyspw_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyvisio", + "displayName": "Disallow in Visio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyvisio_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyvisio_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyword", + "displayName": "Disallow in Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyword_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_nousercustomizationpolicy_l_nousercustomizationpolicyword_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_showshortcutkeysinscreentips", + "displayName": "Show shortcut keys in ScreenTips (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_showshortcutkeysinscreentips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize_l_showshortcutkeysinscreentips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_automaticdiscovery", + "displayName": "Automatic Discovery (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_automaticdiscovery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_automaticdiscovery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_automaticdiscovery_l_automaticdiscovery210", + "displayName": "Automatic Discovery (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_automaticdiscovery_l_automaticdiscovery210_on", + "displayName": "On", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_automaticdiscovery_l_automaticdiscovery210_off", + "displayName": "Off", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_disableuserfromsettingpersonalsiteasdefaultlocation", + "displayName": "Disable user from setting personal site as default location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_disableuserfromsettingpersonalsiteasdefaultlocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace_l_disableuserfromsettingpersonalsiteasdefaultlocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace~l_definesharedworkspaceurls_l_site1", + "displayName": "Site 1: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace~l_definesharedworkspaceurls_l_site1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace~l_definesharedworkspaceurls_l_site1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace~l_definesharedworkspaceurls_l_site1_l_name", + "displayName": "Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_gloabloptions~l_customize~l_sharedworkspace~l_definesharedworkspaceurls_l_site1_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_charttemplatesserverlocation", + "displayName": "Chart Templates Server Location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_charttemplatesserverlocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_charttemplatesserverlocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_charttemplatesserverlocation_l_location", + "displayName": "Location: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_enablemsgraphasdefaultchart", + "displayName": "Enable MS Graph as Default Chart Tool in PowerPoint and Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_enablemsgraphasdefaultchart_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_enablemsgraphasdefaultchart_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_graphgallerypath", + "displayName": "Graph gallery path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_graphgallerypath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_graphgallerypath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_graphsettings_l_graphgallerypath_l_graphgallerypath354", + "displayName": "Graph gallery path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_help_l_federatedsearchforhelp", + "displayName": "Federated search for help (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_help_l_federatedsearchforhelp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_help_l_federatedsearchforhelp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltincolorvariations", + "displayName": "Disable built-in color variations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltincolorvariations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltincolorvariations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltinigxgraphics", + "displayName": "Disable built-in graphics (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltinigxgraphics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltinigxgraphics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltinquickstyles", + "displayName": "Disable Built-in Quick Styles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltinquickstyles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_disablebuiltinquickstyles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel", + "displayName": "Error Severity Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel_l_errorseveritylevel419", + "displayName": "Error Severity Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel_l_errorseveritylevel419_0", + "displayName": "Errors only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel_l_errorseveritylevel419_1", + "displayName": "Level 1 warnings and below", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel_l_errorseveritylevel419_2", + "displayName": "Level 2 warnings and below", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel_l_errorseveritylevel419_3", + "displayName": "Level 3 warnings and below", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_errorseveritylevel_l_errorseveritylevel419_4", + "displayName": "All", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_logfileentriesnumber", + "displayName": "Log File Entries Number (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_logfileentriesnumber_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_logfileentriesnumber_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_logfileentriesnumber_l_empty420", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_logfilemaximumsize", + "displayName": "Log File Maximum Size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_logfilemaximumsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_logfilemaximumsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_igx_l_logfilemaximumsize_l_logfilemaximumsizepart", + "displayName": "Bytes: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setcommentfieldsforoutlookcontactsdictionary", + "displayName": "Set comment fields for Outlook Contacts Dictionary (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setcommentfieldsforoutlookcontactsdictionary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setcommentfieldsforoutlookcontactsdictionary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setcommentfieldsforoutlookcontactsdictionary_l_setcommentfieldsforoutlookcontactsdictionaryid", + "displayName": "Field identification letters: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setcommentfieldsforoutlookglobaladdresslistdictionary", + "displayName": "Set comment fields for Outlook Global Address List Dictionary (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setcommentfieldsforoutlookglobaladdresslistdictionary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setcommentfieldsforoutlookglobaladdresslistdictionary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setcommentfieldsforoutlookglobaladdresslistdictionary_l_setcommentfieldsforoutlookglobaladdresslistdictionaryid", + "displayName": "Field identification letters: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setupdateintervalforoutlookcontactsdictionary", + "displayName": "Set update interval for Outlook Contacts Dictionary (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setupdateintervalforoutlookcontactsdictionary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setupdateintervalforoutlookcontactsdictionary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setupdateintervalforoutlookcontactsdictionary_l_setupdateintervalforoutlookcontactsdictionaryspinid", + "displayName": "(in minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setupdateintervalforoutlookglobaladdresslistdictionary", + "displayName": "Set update interval for Outlook Global Address List Dictionary (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setupdateintervalforoutlookglobaladdresslistdictionary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setupdateintervalforoutlookglobaladdresslistdictionary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_setupdateintervalforoutlookglobaladdresslistdictionary_l_setupdateintervalforoutlookglobaladdresslistdictionaryspinid", + "displayName": "(in minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_turnoffoutlooknamedictionaries", + "displayName": "Turn off Outlook name dictionaries update (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_turnoffoutlooknamedictionaries_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_turnoffoutlooknamedictionaries_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_turnoffsharepointdictionary", + "displayName": "Turn off SharePoint dictionary update (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_turnoffsharepointdictionary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_imejapanese_l_turnoffsharepointdictionary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_improvederrorreporting_l_stopreportingerrormessages", + "displayName": "Stop reporting error messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_improvederrorreporting_l_stopreportingerrormessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_improvederrorreporting_l_stopreportingerrormessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_improvederrorreporting_l_stopreportingnoncriticalerrors", + "displayName": "Stop reporting non-critical errors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_improvederrorreporting_l_stopreportingnoncriticalerrors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_improvederrorreporting_l_stopreportingnoncriticalerrors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings_l_disableproofingtoolsadvertisement", + "displayName": "Notify users if they do not have proofing tools for a language they use (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings_l_disableproofingtoolsadvertisement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings_l_disableproofingtoolsadvertisement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_changeordeletelinktolanguagepackdownloadsite", + "displayName": "Change or delete link to language pack download site (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_changeordeletelinktolanguagepackdownloadsite_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_changeordeletelinktolanguagepackdownloadsite_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_changeordeletelinktolanguagepackdownloadsite_l_changeordeletelinktolanguagepackdownloadsiteid", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_changeordeletelinktoproofingtoolsdownloadsite", + "displayName": "Change or delete link to the proofing tools download site (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_changeordeletelinktoproofingtoolsdownloadsite_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_changeordeletelinktoproofingtoolsdownloadsite_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_changeordeletelinktoproofingtoolsdownloadsite_l_changeordeletelinktoproofingtoolsdownloadsiteid", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin", + "displayName": "Display help in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336", + "displayName": "Display help in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_0", + "displayName": "(same as menus and dialog boxes)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1078", + "displayName": "Afrikaans", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1052", + "displayName": "Albanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1118", + "displayName": "Amharic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1025", + "displayName": "Arabic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1067", + "displayName": "Armenian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1101", + "displayName": "Assamese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1068", + "displayName": "Azerbaijani (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2117", + "displayName": "Bangla (Bangladesh)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1093", + "displayName": "Bangla (India)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1069", + "displayName": "Basque", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1059", + "displayName": "Belarusian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_5146", + "displayName": "Bosnian (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1026", + "displayName": "Bulgarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1027", + "displayName": "Catalan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1170", + "displayName": "Central Kurdish (Iraq)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1116", + "displayName": "Cherokee", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2052", + "displayName": "Chinese (Simplified)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1028", + "displayName": "Chinese (Traditional)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1050", + "displayName": "Croatian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1029", + "displayName": "Czech", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1030", + "displayName": "Danish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1164", + "displayName": "Dari", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1043", + "displayName": "Dutch", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1033", + "displayName": "English", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1061", + "displayName": "Estonian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1124", + "displayName": "Filipino", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1035", + "displayName": "Finnish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1036", + "displayName": "French", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1110", + "displayName": "Galician", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1079", + "displayName": "Georgian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1031", + "displayName": "German", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1032", + "displayName": "Greek", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1095", + "displayName": "Gujarati", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1128", + "displayName": "Hausa (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1037", + "displayName": "Hebrew", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1081", + "displayName": "Hindi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1038", + "displayName": "Hungarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1039", + "displayName": "Icelandic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1136", + "displayName": "Igbo", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1057", + "displayName": "Indonesian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2141", + "displayName": "Inuktitut (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2108", + "displayName": "Irish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1076", + "displayName": "isiXhosa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1077", + "displayName": "isiZulu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1040", + "displayName": "Italian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1041", + "displayName": "Japanese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1099", + "displayName": "Kannada", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1087", + "displayName": "Kazakh", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1107", + "displayName": "Khmer", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1158", + "displayName": "K'iche", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1159", + "displayName": "Kinyarwanda", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1089", + "displayName": "Swahili", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1111", + "displayName": "Konkani", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1042", + "displayName": "Korean", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1088", + "displayName": "Kyrgyz", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1062", + "displayName": "Latvian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1063", + "displayName": "Lithuanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1134", + "displayName": "Luxembourgish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1086", + "displayName": "Malay (Malaysia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1100", + "displayName": "Malayalam", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1082", + "displayName": "Maltese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1153", + "displayName": "Maori", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1102", + "displayName": "Marathi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1104", + "displayName": "Mongolian (Cyrillic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1071", + "displayName": "Macedonian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1121", + "displayName": "Nepali", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1044", + "displayName": "Norwegian (Bokmal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2068", + "displayName": "Norwegian (Nynorsk)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1096", + "displayName": "Odia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1065", + "displayName": "Persian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1045", + "displayName": "Polish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1046", + "displayName": "Portuguese (Brazil)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2070", + "displayName": "Portuguese (Portugal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1094", + "displayName": "Punjabi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2118", + "displayName": "Punjabi (Pakistan)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_3179", + "displayName": "Quechua (Peru)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1048", + "displayName": "Romanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1049", + "displayName": "Russian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1169", + "displayName": "Scottish Gaelic (United Kingdom)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_3098", + "displayName": "Serbian (Cyrillic, Serbia and Montenegro (Former))", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_7194", + "displayName": "Serbian (Cyrillic, Bosnia and Herzegovina)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2074", + "displayName": "Serbian (Latin, Serbia and Montenegro (Former))", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1132", + "displayName": "Sesotho sa Leboa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1074", + "displayName": "Setswana", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2137", + "displayName": "Sindhi (Arabic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1115", + "displayName": "Sinhala", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1051", + "displayName": "Slovak", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1060", + "displayName": "Slovenian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_3082", + "displayName": "Spanish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1053", + "displayName": "Swedish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1064", + "displayName": "Tajik", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1097", + "displayName": "Tamil", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1092", + "displayName": "Tatar", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1098", + "displayName": "Telugu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1054", + "displayName": "Thai", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1139", + "displayName": "Tigrinya (Ethiopia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1055", + "displayName": "Turkish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1090", + "displayName": "Turkmen", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1058", + "displayName": "Ukrainian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1056", + "displayName": "Urdu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1152", + "displayName": "Uyghur (PRC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1091", + "displayName": "Uzbek (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_2051", + "displayName": "Valencian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1066", + "displayName": "Vietnamese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1106", + "displayName": "Welsh", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1160", + "displayName": "Wolof", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displayhelpin_l_displayhelpin336_1130", + "displayName": "Yoruba", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin", + "displayName": "Display menus and dialog boxes in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334", + "displayName": "Display menus and dialog boxes in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_0", + "displayName": "(same as the system)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1078", + "displayName": "Afrikaans", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1052", + "displayName": "Albanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1118", + "displayName": "Amharic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1025", + "displayName": "Arabic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1067", + "displayName": "Armenian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1101", + "displayName": "Assamese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1068", + "displayName": "Azerbaijani (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2117", + "displayName": "Bangla (Bangladesh)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1093", + "displayName": "Bangla (India)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1069", + "displayName": "Basque", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1059", + "displayName": "Belarusian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_5146", + "displayName": "Bosnian (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1026", + "displayName": "Bulgarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1027", + "displayName": "Catalan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1170", + "displayName": "Central Kurdish (Iraq)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1116", + "displayName": "Cherokee", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2052", + "displayName": "Chinese (Simplified)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1028", + "displayName": "Chinese (Traditional)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1050", + "displayName": "Croatian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1029", + "displayName": "Czech", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1030", + "displayName": "Danish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1164", + "displayName": "Dari", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1043", + "displayName": "Dutch", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1033", + "displayName": "English", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1061", + "displayName": "Estonian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1124", + "displayName": "Filipino", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1035", + "displayName": "Finnish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1036", + "displayName": "French", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1110", + "displayName": "Galician", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1079", + "displayName": "Georgian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1031", + "displayName": "German", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1032", + "displayName": "Greek", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1095", + "displayName": "Gujarati", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1128", + "displayName": "Hausa (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1037", + "displayName": "Hebrew", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1081", + "displayName": "Hindi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1038", + "displayName": "Hungarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1039", + "displayName": "Icelandic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1136", + "displayName": "Igbo", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1057", + "displayName": "Indonesian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2141", + "displayName": "Inuktitut (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2108", + "displayName": "Irish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1076", + "displayName": "isiXhosa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1077", + "displayName": "isiZulu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1040", + "displayName": "Italian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1041", + "displayName": "Japanese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1099", + "displayName": "Kannada", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1087", + "displayName": "Kazakh", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1107", + "displayName": "Khmer", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1158", + "displayName": "K'iche", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1159", + "displayName": "Kinyarwanda", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1088", + "displayName": "Kyrgyz", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1089", + "displayName": "Swahili", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1111", + "displayName": "Konkani", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1042", + "displayName": "Korean", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1062", + "displayName": "Latvian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1063", + "displayName": "Lithuanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1134", + "displayName": "Luxembourgish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1086", + "displayName": "Malay (Malaysia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1100", + "displayName": "Malayalam", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1082", + "displayName": "Maltese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1153", + "displayName": "Maori", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1102", + "displayName": "Marathi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1071", + "displayName": "Macedonian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1104", + "displayName": "Mongolian (Cyrillic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1121", + "displayName": "Nepali", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1044", + "displayName": "Norwegian (Bokmal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2068", + "displayName": "Norwegian (Nynorsk)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1096", + "displayName": "Odia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1065", + "displayName": "Persian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1045", + "displayName": "Polish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1046", + "displayName": "Portuguese (Brazil)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2070", + "displayName": "Portuguese (Portugal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1094", + "displayName": "Punjabi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2118", + "displayName": "Punjabi (Pakistan)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_3179", + "displayName": "Quechua (Peru)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1048", + "displayName": "Romanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1049", + "displayName": "Russian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1169", + "displayName": "Scottish Gaelic (United Kingdom)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_3098", + "displayName": "Serbian (Cyrillic, Serbia and Montenegro (Former))", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_7194", + "displayName": "Serbian (Cyrillic, Bosnia and Herzegovina)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2074", + "displayName": "Serbian (Latin, Serbia and Montenegro (Former))", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1132", + "displayName": "Sesotho sa Leboa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1074", + "displayName": "Setswana", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2137", + "displayName": "Sindhi (Arabic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1115", + "displayName": "Sinhala", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1051", + "displayName": "Slovak", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1060", + "displayName": "Slovenian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_3082", + "displayName": "Spanish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1053", + "displayName": "Swedish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1064", + "displayName": "Tajik", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1097", + "displayName": "Tamil", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1092", + "displayName": "Tatar", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1098", + "displayName": "Telugu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1054", + "displayName": "Thai", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1139", + "displayName": "Tigrinya (Ethiopia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1055", + "displayName": "Turkish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1090", + "displayName": "Turkmen", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1058", + "displayName": "Ukrainian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1056", + "displayName": "Urdu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1152", + "displayName": "Uyghur (PRC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1091", + "displayName": "Uzbek (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_2051", + "displayName": "Valencian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1066", + "displayName": "Vietnamese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1106", + "displayName": "Welsh", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1160", + "displayName": "Wolof", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_displaylanguage_l_displaymenusanddialogboxesin_l_displaymenusanddialogboxesin334_1130", + "displayName": "Yoruba", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage", + "displayName": "Primary Editing Language (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341", + "displayName": "Primary Editing Language (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1078", + "displayName": "Afrikaans", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1052", + "displayName": "Albanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1156", + "displayName": "Alsatian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1118", + "displayName": "Amharic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_5121", + "displayName": "Arabic (Algeria)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_15361", + "displayName": "Arabic (Bahrain)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3073", + "displayName": "Arabic (Egypt)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2049", + "displayName": "Arabic (Iraq)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_11265", + "displayName": "Arabic (Jordan)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_13313", + "displayName": "Arabic (Kuwait)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_12289", + "displayName": "Arabic (Lebanon)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_4097", + "displayName": "Arabic (Libya)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_6145", + "displayName": "Arabic (Morocco)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_8193", + "displayName": "Arabic (Oman)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_16385", + "displayName": "Arabic (Qatar)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1025", + "displayName": "Arabic (Saudi Arabia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_10241", + "displayName": "Arabic (Syria)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_7169", + "displayName": "Arabic (Tunisia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_14337", + "displayName": "Arabic (U.A.E.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_9217", + "displayName": "Arabic (Yemen)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1067", + "displayName": "Armenian (Armenia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1101", + "displayName": "Assamese (India)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2092", + "displayName": "Azerbaijani (Cyrillic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1068", + "displayName": "Azerbaijani (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2117", + "displayName": "Bangla (Bangladesh)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1093", + "displayName": "Bangla (India)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1133", + "displayName": "Bashkir", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1069", + "displayName": "Basque", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1059", + "displayName": "Belarusian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_8218", + "displayName": "Bosnian (Cyrillic, Bosnia and Herzegovina)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_5146", + "displayName": "Bosnian (Latin, Bosnia and Herzegovina)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1150", + "displayName": "Breton", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1026", + "displayName": "Bulgarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1109", + "displayName": "Burmese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1027", + "displayName": "Catalan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1170", + "displayName": "Central Kurdish (Iraq)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1116", + "displayName": "Cherokee", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2052", + "displayName": "Chinese (PRC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3076", + "displayName": "Chinese (Hong Kong S.A.R.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_5124", + "displayName": "Chinese (Macao S.A.R.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_4100", + "displayName": "Chinese (Singapore)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1028", + "displayName": "Chinese (Taiwan)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1155", + "displayName": "Corsican", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_4122", + "displayName": "Croatian (Bosnia and Herzegovina)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1050", + "displayName": "Croatian (Croatia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1029", + "displayName": "Czech", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1030", + "displayName": "Danish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1164", + "displayName": "Dari", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1125", + "displayName": "Divehi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2067", + "displayName": "Dutch (Belgium)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1043", + "displayName": "Dutch (Netherlands)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1126", + "displayName": "Edo", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3081", + "displayName": "English (Australia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_10249", + "displayName": "English (Belize)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_4105", + "displayName": "English (Canada)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_9225", + "displayName": "English (Caribbean)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_15369", + "displayName": "English (Hong Kong S.A.R.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_16393", + "displayName": "English (India)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_14345", + "displayName": "English (Indonesia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_6153", + "displayName": "English (Ireland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_8201", + "displayName": "English (Jamaica)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_17417", + "displayName": "English (Malaysia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_5129", + "displayName": "English (New Zealand)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_13321", + "displayName": "English (Philippines)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_18441", + "displayName": "English (Singapore)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_7177", + "displayName": "English (South Africa)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_11273", + "displayName": "English (Trinidad and Tobago)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2057", + "displayName": "English (U.K.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1033", + "displayName": "English (U.S.)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_12297", + "displayName": "English (Zimbabwe)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1061", + "displayName": "Estonian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1080", + "displayName": "Faeroese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1124", + "displayName": "Filipino", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1035", + "displayName": "Finnish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2060", + "displayName": "French (Belgium)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_11276", + "displayName": "French (Cameroon)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3084", + "displayName": "French (Canada)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_7180", + "displayName": "French (Caribbean)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_9228", + "displayName": "French (Congo (DRC))", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_12300", + "displayName": "French (Côte d'Ivoire)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1036", + "displayName": "French (France)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_15372", + "displayName": "French (Haiti)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_5132", + "displayName": "French (Luxembourg)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_13324", + "displayName": "French (Mali)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_6156", + "displayName": "French (Monaco)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_14348", + "displayName": "French (Morocco)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_8204", + "displayName": "French (Reunion)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_10252", + "displayName": "French (Senegal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_4108", + "displayName": "French (Switzerland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1122", + "displayName": "Frisian (Netherlands)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1127", + "displayName": "Fulfulde", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1169", + "displayName": "Scottish Gaelic (United Kingdom)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1110", + "displayName": "Galician", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1079", + "displayName": "Georgian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3079", + "displayName": "German (Austria)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1031", + "displayName": "German (Germany)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_5127", + "displayName": "German (Liechtenstein)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_4103", + "displayName": "German (Luxembourg)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2055", + "displayName": "German (Switzerland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1032", + "displayName": "Greek", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1135", + "displayName": "Greenlandic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1140", + "displayName": "Guarani", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1095", + "displayName": "Gujarati", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1128", + "displayName": "Hausa (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1141", + "displayName": "Hawaiian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1037", + "displayName": "Hebrew (Israel)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1081", + "displayName": "Hindi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1038", + "displayName": "Hungarian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1129", + "displayName": "Ibibio", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1039", + "displayName": "Icelandic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1136", + "displayName": "Igbo", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1057", + "displayName": "Indonesian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2141", + "displayName": "Inuktitut (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1117", + "displayName": "Inuktitut (Syllabics)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2108", + "displayName": "Irish (Ireland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1077", + "displayName": "isiZulu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1076", + "displayName": "isiXhosa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1040", + "displayName": "Italian (Italy)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2064", + "displayName": "Italian (Switzerland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1041", + "displayName": "Japanese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1099", + "displayName": "Kannada", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1137", + "displayName": "Kanuri", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1120", + "displayName": "Kashmiri (Arabic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2144", + "displayName": "Kashmiri (Devanagari)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1087", + "displayName": "Kazakh", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1107", + "displayName": "Khmer", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1158", + "displayName": "K'iche", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1159", + "displayName": "Kinyarwanda", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1111", + "displayName": "Konkani", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1042", + "displayName": "Korean", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1088", + "displayName": "Kyrgyz", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1108", + "displayName": "Lao", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1142", + "displayName": "Latin", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1062", + "displayName": "Latvian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1063", + "displayName": "Lithuanian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1134", + "displayName": "Luxembourgish (Luxembourg)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1071", + "displayName": "Macedonian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2110", + "displayName": "Malay (Brunei)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1086", + "displayName": "Malay (Malaysia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1100", + "displayName": "Malayalam", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1082", + "displayName": "Maltese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1112", + "displayName": "Manipuri", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1153", + "displayName": "Maori", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1146", + "displayName": "Mapudungun", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1102", + "displayName": "Marathi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1148", + "displayName": "Mohawk", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1104", + "displayName": "Mongolian (Cyrillic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2128", + "displayName": "Mongolian (Traditional Mongolian)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2145", + "displayName": "Nepali (India)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1121", + "displayName": "Nepali (Nepal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1044", + "displayName": "Norwegian (Bokmål)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2068", + "displayName": "Norwegian (Nynorsk)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1154", + "displayName": "Occitan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1138", + "displayName": "Oromo", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1096", + "displayName": "Odia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1145", + "displayName": "Papiamentu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1123", + "displayName": "Pashto", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1065", + "displayName": "Persian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1045", + "displayName": "Polish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1046", + "displayName": "Portuguese (Brazil)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2070", + "displayName": "Portuguese (Portugal)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1094", + "displayName": "Punjabi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2118", + "displayName": "Punjabi (Pakistan)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1131", + "displayName": "Quechua (Bolivia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2155", + "displayName": "Quechua (Ecuador)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3179", + "displayName": "Quechua (Peru)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1047", + "displayName": "Romansh (Switzerland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2072", + "displayName": "Romanian (Moldova)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1048", + "displayName": "Romanian (Romania)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2073", + "displayName": "Russian (Moldova)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1049", + "displayName": "Russian (Russia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_9275", + "displayName": "Sami, Inari (Finland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_4155", + "displayName": "Sami, Lule (Norway)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_5179", + "displayName": "Sami, Lule (Sweden)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3131", + "displayName": "Sami, Northern (Finland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1083", + "displayName": "Sami, Northern (Norway)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2107", + "displayName": "Sami, Northern (Sweden)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_8251", + "displayName": "Sami, Skolt (Finland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_6203", + "displayName": "Sami, Southern (Norway)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_7227", + "displayName": "Sami, Southern (Sweden)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1103", + "displayName": "Sanskrit", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_7194", + "displayName": "Serbian (Cyrillic, Bosnia and Herzegovina)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_6170", + "displayName": "Serbian (Latin, Bosnia and Herzegovina)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3098", + "displayName": "Serbian (Cyrillic, Serbia and Montenegro (Former))", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_10266", + "displayName": "Serbian (Cyrillic, Serbia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_12314", + "displayName": "Serbian (Cyrillic, Montenegro)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2074", + "displayName": "Serbian (Latin, Serbia and Montenegro (Former))", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_11290", + "displayName": "Serbian (Latin, Montenegro)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_9242", + "displayName": "Serbian (Latin, Serbia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1072", + "displayName": "Sesotho", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1132", + "displayName": "Sesotho sa Leboa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1074", + "displayName": "Setswana", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1113", + "displayName": "Sindhi (Devanagari)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2137", + "displayName": "Sindhi (Arabic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1115", + "displayName": "Sinhala", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1051", + "displayName": "Slovak", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1060", + "displayName": "Slovenian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1143", + "displayName": "Somali", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2094", + "displayName": "Lower Sorbian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1070", + "displayName": "Upper Sorbian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_11274", + "displayName": "Spanish (Argentina)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_16394", + "displayName": "Spanish (Bolivia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_13322", + "displayName": "Spanish (Chile)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_9226", + "displayName": "Spanish (Colombia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_5130", + "displayName": "Spanish (Costa Rica)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_7178", + "displayName": "Spanish (Dominican Republic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_12298", + "displayName": "Spanish (Ecuador)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_17418", + "displayName": "Spanish (El Salvador)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_4106", + "displayName": "Spanish (Guatemala)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_18442", + "displayName": "Spanish (Honduras)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2058", + "displayName": "Spanish (Mexico)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_19466", + "displayName": "Spanish (Nicaragua)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_6154", + "displayName": "Spanish (Panama)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_15370", + "displayName": "Spanish (Paraguay)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_10250", + "displayName": "Spanish (Peru)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_20490", + "displayName": "Spanish (Puerto Rico)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_3082", + "displayName": "Spanish (Spain)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_21514", + "displayName": "Spanish (United States)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_14346", + "displayName": "Spanish (Uruguay)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_8202", + "displayName": "Spanish (Venezuela)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1089", + "displayName": "Swahili", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2077", + "displayName": "Swedish (Finland)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1053", + "displayName": "Swedish (Sweden)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1114", + "displayName": "Syriac", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2143", + "displayName": "Tamazight (Latin, Algeria)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1119", + "displayName": "Tamazight (Arabic, Morocco)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1097", + "displayName": "Tamil", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1092", + "displayName": "Tatar", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1098", + "displayName": "Telugu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1064", + "displayName": "Tajik", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1054", + "displayName": "Thai", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1105", + "displayName": "Tibetan (PRC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2163", + "displayName": "Tigrinya (Eritrea)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1139", + "displayName": "Tigrinya (Ethiopia)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1055", + "displayName": "Turkish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1090", + "displayName": "Turkmen", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1152", + "displayName": "Uyghur (PRC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1058", + "displayName": "Ukrainian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1056", + "displayName": "Urdu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2115", + "displayName": "Uzbek (Cyrillic)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1091", + "displayName": "Uzbek (Latin)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_2051", + "displayName": "Valencian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1075", + "displayName": "Venda", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1066", + "displayName": "Vietnamese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1106", + "displayName": "Welsh", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1160", + "displayName": "Wolof", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1073", + "displayName": "Xitsonga", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1157", + "displayName": "Sakha", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1144", + "displayName": "Yi (PRC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1085", + "displayName": "Yiddish", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages_l_primaryeditinglanguage_l_primaryeditinglanguage341_1130", + "displayName": "Yoruba", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_afrikaans", + "displayName": "Afrikaans (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_afrikaans_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_afrikaans_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_albanian", + "displayName": "Albanian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_albanian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_albanian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_alsatian", + "displayName": "Alsatian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_alsatian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_alsatian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_amharic", + "displayName": "Amharic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_amharic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_amharic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicalgeria", + "displayName": "Arabic (Algeria) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicalgeria_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicalgeria_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicbahrain", + "displayName": "Arabic (Bahrain) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicbahrain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicbahrain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicegypt", + "displayName": "Arabic (Egypt) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicegypt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicegypt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiciraq", + "displayName": "Arabic (Iraq) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiciraq_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiciraq_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicjordan", + "displayName": "Arabic (Jordan) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicjordan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicjordan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabickuwait", + "displayName": "Arabic (Kuwait) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabickuwait_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabickuwait_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiclebanon", + "displayName": "Arabic (Lebanon) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiclebanon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiclebanon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiclibya", + "displayName": "Arabic (Libya) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiclibya_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabiclibya_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicmorocco", + "displayName": "Arabic (Morocco) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicmorocco_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicmorocco_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicoman", + "displayName": "Arabic (Oman) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicoman_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicoman_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicqatar", + "displayName": "Arabic (Qatar) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicqatar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicqatar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicsaudiarabia", + "displayName": "Arabic (Saudi Arabia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicsaudiarabia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicsaudiarabia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicsyria", + "displayName": "Arabic (Syria) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicsyria_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicsyria_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabictunisia", + "displayName": "Arabic (Tunisia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabictunisia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabictunisia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicuae", + "displayName": "Arabic (U.A.E.) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicuae_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicuae_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicyemen", + "displayName": "Arabic (Yemen) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicyemen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_arabicyemen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_armenianarmenia", + "displayName": "Armenian (Armenia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_armenianarmenia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_armenianarmenia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_assameseindia", + "displayName": "Assamese (India) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_assameseindia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_assameseindia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_azerbaijanicyrillic", + "displayName": "Azerbaijani (Cyrillic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_azerbaijanicyrillic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_azerbaijanicyrillic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_azerbaijanilatin", + "displayName": "Azerbaijani (Latin) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_azerbaijanilatin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_azerbaijanilatin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_banglabangladesh", + "displayName": "Bangla (Bangladesh) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_banglabangladesh_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_banglabangladesh_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_banglaindia", + "displayName": "Bangla (India) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_banglaindia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_banglaindia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bashkir", + "displayName": "Bashkir (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bashkir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bashkir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_basque", + "displayName": "Basque (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_basque_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_basque_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_belarusian", + "displayName": "Belarusian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_belarusian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_belarusian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bosniancyrillicbosniaandherzegovina", + "displayName": "Bosnian (Cyrillic, Bosnia and Herzegovina) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bosniancyrillicbosniaandherzegovina_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bosniancyrillicbosniaandherzegovina_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bosnianlatinbosniaandherzegovina", + "displayName": "Bosnian (Latin, Bosnia and Herzegovina) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bosnianlatinbosniaandherzegovina_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bosnianlatinbosniaandherzegovina_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_breton", + "displayName": "Breton (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_breton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_breton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bulgarian", + "displayName": "Bulgarian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bulgarian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_bulgarian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_burmese", + "displayName": "Burmese (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_burmese_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_burmese_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_catalan", + "displayName": "Catalan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_catalan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_catalan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_centralkurdishiraq", + "displayName": "Central Kurdish (Iraq) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_centralkurdishiraq_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_centralkurdishiraq_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_cherokee", + "displayName": "Cherokee (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_cherokee_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_cherokee_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesehongkongsar", + "displayName": "Chinese (Hong Kong S.A.R.) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesehongkongsar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesehongkongsar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesemacaosar", + "displayName": "Chinese (Macao S.A.R.) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesemacaosar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesemacaosar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chineseprc", + "displayName": "Chinese (PRC) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chineseprc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chineseprc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesesingapore", + "displayName": "Chinese (Singapore) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesesingapore_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesesingapore_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesetaiwan", + "displayName": "Chinese (Taiwan) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesetaiwan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_chinesetaiwan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_corsican", + "displayName": "Corsican (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_corsican_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_corsican_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_croatianbosniaandherzegovina", + "displayName": "Croatian (Bosnia and Herzegovina) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_croatianbosniaandherzegovina_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_croatianbosniaandherzegovina_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_croatiancroatia", + "displayName": "Croatian (Croatia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_croatiancroatia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_croatiancroatia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_czech", + "displayName": "Czech (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_czech_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_czech_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_danish", + "displayName": "Danish (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_danish_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_danish_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dari", + "displayName": "Dari (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dari_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dari_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_divehi", + "displayName": "Divehi (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_divehi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_divehi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dutchbelgium", + "displayName": "Dutch (Belgium) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dutchbelgium_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dutchbelgium_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dutchnetherlands", + "displayName": "Dutch (Netherlands) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dutchnetherlands_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_dutchnetherlands_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_edo", + "displayName": "Edo (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_edo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_edo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishaustralia", + "displayName": "English (Australia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishaustralia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishaustralia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishbelize", + "displayName": "English (Belize) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishbelize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishbelize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishcanada", + "displayName": "English (Canada) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishcanada_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishcanada_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishcaribbean", + "displayName": "English (Caribbean) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishcaribbean_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishcaribbean_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishhongkongsar", + "displayName": "English (Hong Kong S.A.R.) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishhongkongsar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishhongkongsar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishindia", + "displayName": "English (India) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishindia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishindia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishindonesia", + "displayName": "English (Indonesia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishindonesia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishindonesia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishireland", + "displayName": "English (Ireland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishireland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishireland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishjamaica", + "displayName": "English (Jamaica) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishjamaica_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishjamaica_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishmalaysia", + "displayName": "English (Malaysia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishmalaysia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishmalaysia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishnewzealand", + "displayName": "English (New Zealand) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishnewzealand_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishnewzealand_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishphilippines", + "displayName": "English (Philippines) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishphilippines_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishphilippines_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishsingapore", + "displayName": "English (Singapore) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishsingapore_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishsingapore_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishsouthafrica", + "displayName": "English (South Africa) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishsouthafrica_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishsouthafrica_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishtrinidadandtobago", + "displayName": "English (Trinidad and Tobago) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishtrinidadandtobago_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishtrinidadandtobago_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishuk", + "displayName": "English (U.K.) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishuk_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishuk_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishus", + "displayName": "English (U.S.) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishus_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishus_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishzimbabwe", + "displayName": "English (Zimbabwe) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishzimbabwe_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_englishzimbabwe_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_estonian", + "displayName": "Estonian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_estonian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_estonian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_faeroese", + "displayName": "Faeroese (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_faeroese_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_faeroese_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_filipino", + "displayName": "Filipino (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_filipino_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_filipino_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_finnish", + "displayName": "Finnish (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_finnish_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_finnish_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchbelgium", + "displayName": "French (Belgium) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchbelgium_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchbelgium_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcameroon", + "displayName": "French (Cameroon) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcameroon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcameroon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcanada", + "displayName": "French (Canada) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcanada_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcanada_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcaribbean", + "displayName": "French (Caribbean) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcaribbean_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcaribbean_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcongodrc", + "displayName": "French (Congo (DRC)) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcongodrc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcongodrc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcotedivoire", + "displayName": "French (Côte d'Ivoire) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcotedivoire_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchcotedivoire_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchfrance", + "displayName": "French (France) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchfrance_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchfrance_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchhaiti", + "displayName": "French (Haiti) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchhaiti_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchhaiti_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchluxembourg", + "displayName": "French (Luxembourg) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchluxembourg_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchluxembourg_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmali", + "displayName": "French (Mali) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmali_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmali_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmonaco", + "displayName": "French (Monaco) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmonaco_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmonaco_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmorocco", + "displayName": "French (Morocco) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmorocco_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchmorocco_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchreunion", + "displayName": "French (Reunion) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchreunion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchreunion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchsenegal", + "displayName": "French (Senegal) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchsenegal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchsenegal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchswitzerland", + "displayName": "French (Switzerland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchswitzerland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frenchswitzerland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frisiannetherlands", + "displayName": "Frisian (Netherlands) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frisiannetherlands_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_frisiannetherlands_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_fulfulde", + "displayName": "Fulfulde (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_fulfulde_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_fulfulde_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_galician", + "displayName": "Galician (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_galician_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_galician_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_georgian", + "displayName": "Georgian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_georgian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_georgian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanaustria", + "displayName": "German (Austria) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanaustria_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanaustria_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germangermany", + "displayName": "German (Germany) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germangermany_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germangermany_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanliechtenstein", + "displayName": "German (Liechtenstein) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanliechtenstein_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanliechtenstein_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanluxembourg", + "displayName": "German (Luxembourg) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanluxembourg_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanluxembourg_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanswitzerland", + "displayName": "German (Switzerland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanswitzerland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_germanswitzerland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_greek", + "displayName": "Greek (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_greek_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_greek_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_greenlandic", + "displayName": "Greenlandic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_greenlandic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_greenlandic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_guarani", + "displayName": "Guarani (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_guarani_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_guarani_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_gujarati", + "displayName": "Gujarati (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_gujarati_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_gujarati_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hausa", + "displayName": "Hausa (Latin) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hausa_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hausa_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hawaiian", + "displayName": "Hawaiian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hawaiian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hawaiian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hebrewisrael", + "displayName": "Hebrew (Israel) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hebrewisrael_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hebrewisrael_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hindi", + "displayName": "Hindi (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hindi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hindi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hungarian", + "displayName": "Hungarian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hungarian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_hungarian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_ibibio", + "displayName": "Ibibio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_ibibio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_ibibio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_icelandic", + "displayName": "Icelandic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_icelandic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_icelandic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_igbo", + "displayName": "Igbo (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_igbo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_igbo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_indonesian", + "displayName": "Indonesian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_indonesian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_indonesian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_inuktitutlatin", + "displayName": "Inuktitut (Latin) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_inuktitutlatin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_inuktitutlatin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_inuktitutsyllabics", + "displayName": "Inuktitut (Syllabics) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_inuktitutsyllabics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_inuktitutsyllabics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_irishireland", + "displayName": "Irish (Ireland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_irishireland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_irishireland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_isixhosa", + "displayName": "isiXhosa (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_isixhosa_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_isixhosa_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_isizulu", + "displayName": "isiZulu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_isizulu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_isizulu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_italianitaly", + "displayName": "Italian (Italy) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_italianitaly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_italianitaly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_italianswitzerland", + "displayName": "Italian (Switzerland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_italianswitzerland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_italianswitzerland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_japanese", + "displayName": "Japanese (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_japanese_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_japanese_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kannada", + "displayName": "Kannada (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kannada_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kannada_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kanuri", + "displayName": "Kanuri (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kanuri_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kanuri_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kashmiriarabic", + "displayName": "Kashmiri (Arabic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kashmiriarabic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kashmiriarabic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kashmiridevanagari", + "displayName": "Kashmiri (Devanagari) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kashmiridevanagari_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kashmiridevanagari_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kazakh", + "displayName": "Kazakh (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kazakh_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kazakh_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_khmer", + "displayName": "Khmer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_khmer_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_khmer_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kiche", + "displayName": "K'iche (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kiche_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kiche_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kinyarwanda", + "displayName": "Kinyarwanda (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kinyarwanda_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kinyarwanda_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_konkani", + "displayName": "Konkani (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_konkani_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_konkani_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_korean", + "displayName": "Korean (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_korean_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_korean_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kyrgyz", + "displayName": "Kyrgyz (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kyrgyz_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_kyrgyz_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lao", + "displayName": "Lao (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lao_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lao_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_latin", + "displayName": "Latin (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_latin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_latin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_latvian", + "displayName": "Latvian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_latvian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_latvian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lithuanian", + "displayName": "Lithuanian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lithuanian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lithuanian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lowersorbian", + "displayName": "Lower Sorbian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lowersorbian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_lowersorbian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_luxembourgishluxembourg", + "displayName": "Luxembourgish (Luxembourg) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_luxembourgishluxembourg_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_luxembourgishluxembourg_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_macedonian", + "displayName": "Macedonian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_macedonian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_macedonian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malayalam", + "displayName": "Malayalam (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malayalam_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malayalam_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malaybrunei", + "displayName": "Malay (Brunei) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malaybrunei_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malaybrunei_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malaymalaysia", + "displayName": "Malay (Malaysia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malaymalaysia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_malaymalaysia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_maltese", + "displayName": "Maltese (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_maltese_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_maltese_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_manipuri", + "displayName": "Manipuri (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_manipuri_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_manipuri_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_maori", + "displayName": "Maori (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_maori_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_maori_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mapudungun", + "displayName": "Mapudungun (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mapudungun_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mapudungun_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_marathi", + "displayName": "Marathi (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_marathi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_marathi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mohawk", + "displayName": "Mohawk (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mohawk_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mohawk_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mongoliancyrillic", + "displayName": "Mongolian (Cyrillic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mongoliancyrillic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mongoliancyrillic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mongoliantraditionalmongolian", + "displayName": "Mongolian (Traditional Mongolian) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mongoliantraditionalmongolian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_mongoliantraditionalmongolian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_nepaliindia", + "displayName": "Nepali (India) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_nepaliindia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_nepaliindia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_nepalinepal", + "displayName": "Nepali (Nepal) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_nepalinepal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_nepalinepal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_norwegianbokml", + "displayName": "Norwegian (Bokmål) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_norwegianbokml_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_norwegianbokml_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_norwegiannynorsk", + "displayName": "Norwegian (Nynorsk) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_norwegiannynorsk_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_norwegiannynorsk_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_occitan", + "displayName": "Occitan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_occitan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_occitan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_odia", + "displayName": "Odia (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_odia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_odia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_oromo", + "displayName": "Oromo (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_oromo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_oromo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_papiamentu", + "displayName": "Papiamentu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_papiamentu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_papiamentu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_pashto", + "displayName": "Pashto (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_pashto_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_pashto_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_persian", + "displayName": "Persian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_persian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_persian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_polish", + "displayName": "Polish (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_polish_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_polish_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_portuguesebrazil", + "displayName": "Portuguese (Brazil) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_portuguesebrazil_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_portuguesebrazil_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_portugueseportugal", + "displayName": "Portuguese (Portugal) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_portugueseportugal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_portugueseportugal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_punjabi", + "displayName": "Punjabi (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_punjabi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_punjabi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_punjabipakistan", + "displayName": "Punjabi (Pakistan) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_punjabipakistan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_punjabipakistan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuabolivia", + "displayName": "Quechua (Bolivia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuabolivia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuabolivia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuaecuador", + "displayName": "Quechua (Ecuador) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuaecuador_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuaecuador_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuaperu", + "displayName": "Quechua (Peru) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuaperu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_quechuaperu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanianmoldova", + "displayName": "Romanian (Moldova) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanianmoldova_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanianmoldova_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanianromania", + "displayName": "Romanian (Romania) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanianromania_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanianromania_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanshswitzerland", + "displayName": "Romansh (Switzerland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanshswitzerland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_romanshswitzerland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_russianmoldova", + "displayName": "Russian (Moldova) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_russianmoldova_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_russianmoldova_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_russianrussia", + "displayName": "Russian (Russia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_russianrussia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_russianrussia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sakha", + "displayName": "Sakha (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sakha_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sakha_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samiinarifinland", + "displayName": "Sami, Inari (Finland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samiinarifinland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samiinarifinland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samilulenorway", + "displayName": "Sami, Lule (Norway) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samilulenorway_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samilulenorway_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samilulesweden", + "displayName": "Sami, Lule (Sweden) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samilulesweden_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samilulesweden_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernfinland", + "displayName": "Sami, Northern (Finland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernfinland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernfinland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernnorway", + "displayName": "Sami, Northern (Norway) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernnorway_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernnorway_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernsweden", + "displayName": "Sami, Northern (Sweden) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernsweden_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_saminorthernsweden_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samiskoltfinland", + "displayName": "Sami, Skolt (Finland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samiskoltfinland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samiskoltfinland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samisouthernnorway", + "displayName": "Sami, Southern (Norway) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samisouthernnorway_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samisouthernnorway_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samisouthernsweden", + "displayName": "Sami, Southern (Sweden) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samisouthernsweden_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_samisouthernsweden_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sanskrit", + "displayName": "Sanskrit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sanskrit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sanskrit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_scottishgaelicunitedkingdom", + "displayName": "Scottish Gaelic (United Kingdom) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_scottishgaelicunitedkingdom_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_scottishgaelicunitedkingdom_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicbosniaandherzegovina", + "displayName": "Serbian (Cyrillic, Bosnia and Herzegovina) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicbosniaandherzegovina_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicbosniaandherzegovina_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicmontenegro", + "displayName": "Serbian (Cyrillic, Montenegro) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicmontenegro_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicmontenegro_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicserbia", + "displayName": "Serbian (Cyrillic, Serbia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicserbia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicserbia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicserbiaandmontenegro", + "displayName": "Serbian (Cyrillic, Serbia and Montenegro (Former)) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicserbiaandmontenegro_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbiancyrillicserbiaandmontenegro_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinbosniaandherzegovina", + "displayName": "Serbian (Latin, Bosnia and Herzegovina) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinbosniaandherzegovina_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinbosniaandherzegovina_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinmontenegro", + "displayName": "Serbian (Latin, Montenegro) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinmontenegro_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinmontenegro_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinserbia", + "displayName": "Serbian (Latin, Serbia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinserbia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinserbia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinserbiaandmontenegro", + "displayName": "Serbian (Latin, Serbia and Montenegro (Former)) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinserbiaandmontenegro_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_serbianlatinserbiaandmontenegro_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sesotho", + "displayName": "Sesotho (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sesotho_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sesotho_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sesothosaleboa", + "displayName": "Sesotho sa Leboa (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sesothosaleboa_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sesothosaleboa_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_setswana", + "displayName": "Setswana (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_setswana_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_setswana_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sindhiarabic", + "displayName": "Sindhi (Arabic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sindhiarabic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sindhiarabic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sindhidevanagari", + "displayName": "Sindhi (Devanagari) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sindhidevanagari_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sindhidevanagari_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sinhala", + "displayName": "Sinhala (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sinhala_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_sinhala_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_slovak", + "displayName": "Slovak (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_slovak_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_slovak_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_slovenian", + "displayName": "Slovenian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_slovenian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_slovenian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_somali", + "displayName": "Somali (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_somali_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_somali_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishargentina", + "displayName": "Spanish (Argentina) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishargentina_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishargentina_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishbolivia", + "displayName": "Spanish (Bolivia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishbolivia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishbolivia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishchile", + "displayName": "Spanish (Chile) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishchile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishchile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishcolombia", + "displayName": "Spanish (Colombia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishcolombia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishcolombia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishcostarica", + "displayName": "Spanish (Costa Rica) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishcostarica_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishcostarica_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishdominicanrepublic", + "displayName": "Spanish (Dominican Republic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishdominicanrepublic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishdominicanrepublic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishecuador", + "displayName": "Spanish (Ecuador) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishecuador_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishecuador_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishelsalvador", + "displayName": "Spanish (El Salvador) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishelsalvador_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishelsalvador_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishguatemala", + "displayName": "Spanish (Guatemala) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishguatemala_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishguatemala_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishhonduras", + "displayName": "Spanish (Honduras) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishhonduras_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishhonduras_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishmexico", + "displayName": "Spanish (Mexico) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishmexico_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishmexico_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishnicaragua", + "displayName": "Spanish (Nicaragua) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishnicaragua_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishnicaragua_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishpanama", + "displayName": "Spanish (Panama) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishpanama_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishpanama_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishparaguay", + "displayName": "Spanish (Paraguay) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishparaguay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishparaguay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishperu", + "displayName": "Spanish (Peru) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishperu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishperu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishpuertorico", + "displayName": "Spanish (Puerto Rico) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishpuertorico_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishpuertorico_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishspain", + "displayName": "Spanish (Spain) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishspain_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishspain_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishunitedstates", + "displayName": "Spanish (United States) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishunitedstates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishunitedstates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishuruguay", + "displayName": "Spanish (Uruguay) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishuruguay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishuruguay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishvenezuela", + "displayName": "Spanish (Venezuela) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishvenezuela_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_spanishvenezuela_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swahili", + "displayName": "Swahili (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swahili_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swahili_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swedishfinland", + "displayName": "Swedish (Finland) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swedishfinland_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swedishfinland_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swedishsweden", + "displayName": "Swedish (Sweden) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swedishsweden_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_swedishsweden_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_syriac", + "displayName": "Syriac (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_syriac_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_syriac_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tajik", + "displayName": "Tajik (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tajik_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tajik_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamazightarabicmorocco", + "displayName": "Tamazight (Arabic, Morocco) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamazightarabicmorocco_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamazightarabicmorocco_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamazightlatinalgeria", + "displayName": "Tamazight (Latin, Algeria) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamazightlatinalgeria_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamazightlatinalgeria_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamil", + "displayName": "Tamil (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamil_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tamil_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tatar", + "displayName": "Tatar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tatar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tatar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_telugu", + "displayName": "Telugu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_telugu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_telugu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_thai", + "displayName": "Thai (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_thai_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_thai_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tibetanprc", + "displayName": "Tibetan (PRC) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tibetanprc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tibetanprc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tigrinyaeritrea", + "displayName": "Tigrinya (Eritrea) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tigrinyaeritrea_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tigrinyaeritrea_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tigrinyaethiopia", + "displayName": "Tigrinya (Ethiopia) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tigrinyaethiopia_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_tigrinyaethiopia_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_turkish", + "displayName": "Turkish (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_turkish_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_turkish_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_turkmen", + "displayName": "Turkmen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_turkmen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_turkmen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_ukrainian", + "displayName": "Ukrainian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_ukrainian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_ukrainian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uppersorbian", + "displayName": "Upper Sorbian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uppersorbian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uppersorbian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_urdu", + "displayName": "Urdu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_urdu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_urdu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uyghurprc", + "displayName": "Uyghur (PRC) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uyghurprc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uyghurprc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uzbekcyrillic", + "displayName": "Uzbek (Cyrillic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uzbekcyrillic_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uzbekcyrillic_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uzbeklatin", + "displayName": "Uzbek (Latin) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uzbeklatin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_uzbeklatin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_valencian", + "displayName": "Valencian (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_valencian_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_valencian_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_venda", + "displayName": "Venda (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_venda_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_venda_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_vietnamese", + "displayName": "Vietnamese (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_vietnamese_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_vietnamese_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_welsh", + "displayName": "Welsh (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_welsh_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_welsh_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_wolof", + "displayName": "Wolof (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_wolof_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_wolof_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_xitsonga", + "displayName": "Xitsonga (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_xitsonga_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_xitsonga_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yiddish", + "displayName": "Yiddish (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yiddish_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yiddish_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yiprc", + "displayName": "Yi (PRC) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yiprc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yiprc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yoruba", + "displayName": "Yoruba (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yoruba_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_editinglanguages~l_enablededitinglanguages_l_yoruba_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_other_l_disablecomingsoon", + "displayName": "Turn off Coming Soon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_other_l_disablecomingsoon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_languagesettings~l_other_l_disablecomingsoon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_activedirectorytimeoutforqueryingoneentryforgroupexpansion", + "displayName": "Active Directory timeout for querying one entry for group expansion (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_activedirectorytimeoutforqueryingoneentryforgroupexpansion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_activedirectorytimeoutforqueryingoneentryforgroupexpansion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_activedirectorytimeoutforqueryingoneentryforgroupexpansion_l_entertimeoutinseconds", + "displayName": "Enter timeout in seconds: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_additionalpermissionsrequesturl", + "displayName": "Additional permissions request URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_additionalpermissionsrequesturl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_additionalpermissionsrequesturl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_additionalpermissionsrequesturl_l_checktospecifyacustomurloremailaddress", + "displayName": "Check to specify a custom URL or e-mail address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_additionalpermissionsrequesturl_l_checktospecifyacustomurloremailaddress_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_additionalpermissionsrequesturl_l_checktospecifyacustomurloremailaddress_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_additionalpermissionsrequesturl_l_specifyurlemailaddress", + "displayName": "Specify URL/Email address: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_allowuserswithearlierversionsofofficetoreadwithbrowsers", + "displayName": "Allow users with earlier versions of Office to read with browsers... (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_allowuserswithearlierversionsofofficetoreadwithbrowsers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_allowuserswithearlierversionsofofficetoreadwithbrowsers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_alwaysexpandgroupsinofficewhenrestrictingpermissionfordocume", + "displayName": "Always expand groups in Office when restricting permission for documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_alwaysexpandgroupsinofficewhenrestrictingpermissionfordocume_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_alwaysexpandgroupsinofficewhenrestrictingpermissionfordocume_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_alwaysrequireuserstoconnecttoverifypermission", + "displayName": "Always require users to connect to verify permission (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_alwaysrequireuserstoconnecttoverifypermission_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_alwaysrequireuserstoconnecttoverifypermission_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_disableinformationrightsmanagementuserinterface", + "displayName": "Turn off Information Rights Management user interface (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_disableinformationrightsmanagementuserinterface_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_disableinformationrightsmanagementuserinterface_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_neverallowuserstospecifygroupswhenrestrictingpermissionfordo", + "displayName": "Never allow users to specify groups when restricting permission for documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_neverallowuserstospecifygroupswhenrestrictingpermissionfordo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_neverallowuserstospecifygroupswhenrestrictingpermissionfordo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_preventusersfromchangingpermissions", + "displayName": "Prevent users from changing permissions on rights managed content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_preventusersfromchangingpermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_preventusersfromchangingpermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_specifydefaultpermissionserver", + "displayName": "Specify Permission Policy Default Server for Quick Access Toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_specifydefaultpermissionserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_specifydefaultpermissionserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_specifydefaultpermissionserver_l_empty407", + "displayName": "\r\nEnter Permission Policy Default Server for Quick Access Toolbar\r\n", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_urlforlocationofdocumenttemplatespolicy", + "displayName": "URL for location of document templates displayed when applications do not recognize rights-managed documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_urlforlocationofdocumenttemplatespolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_urlforlocationofdocumenttemplatespolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_managerestrictedpermissions_l_urlforlocationofdocumenttemplatespolicy_l_enteraurl", + "displayName": "Enter a URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_checkouttolocaldisk", + "displayName": "Check-out to local disk (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_checkouttolocaldisk_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_checkouttolocaldisk_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_deletefilesfromofficedocumentcache", + "displayName": "Delete files from Office Document Cache (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_deletefilesfromofficedocumentcache_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_deletefilesfromofficedocumentcache_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_enablecheckouttodrafts", + "displayName": "Save checked-out files to a local folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_enablecheckouttodrafts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_enablecheckouttodrafts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_officedocumentcachelocation", + "displayName": "Office document cache location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_officedocumentcachelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_officedocumentcachelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_officedocumentcachelocation_l_officedocumentcachelocationid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_opendocumentsfromofficedocumentcachefirst", + "displayName": "Open documents from Office Document Cache first (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_opendocumentsfromofficedocumentcachefirst_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_microsoftofficedocumentcache_l_opendocumentsfromofficedocumentcachefirst_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_allowlinkedinfeatures", + "displayName": "Show LinkedIn features in Office applications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_allowlinkedinfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_allowlinkedinfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_alwaysshowfilesharemoreoptions", + "displayName": "Show additional sharing choices under the File tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_alwaysshowfilesharemoreoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_alwaysshowfilesharemoreoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_changedestinationurlforsharepointhyperlink", + "displayName": "Change destination URL for SharePoint hyperlink (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_changedestinationurlforsharepointhyperlink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_changedestinationurlforsharepointhyperlink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_changedestinationurlforsharepointhyperlink_l_changedestinationurlforsharepointhyperlinkid", + "displayName": "Destination URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_changelabelofsavetosharepoint", + "displayName": "SharePoint Product Name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_changelabelofsavetosharepoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_changelabelofsavetosharepoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_changelabelofsavetosharepoint_l_changelabelofsavetosharepointid", + "displayName": "Custom string to be displayed: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_controlblogging", + "displayName": "Control Blogging (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_controlblogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_controlblogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_controlblogging_l_empty503", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_controlblogging_l_empty503_0", + "displayName": "Enabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_controlblogging_l_empty503_1", + "displayName": "Only SharePoint blogs allowed", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_controlblogging_l_empty503_2", + "displayName": "All blogging disabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableanimations", + "displayName": "Disable Office animations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableanimations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableanimations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablebackgrounds", + "displayName": "Disable Office Backgrounds (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablebackgrounds_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablebackgrounds_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableclipboardtoolbartriggers", + "displayName": "Disable Clipboard Toolbar triggers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableclipboardtoolbartriggers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableclipboardtoolbartriggers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablelinksopenright", + "displayName": "Open Office file links in Office Online (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablelinksopenright_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablelinksopenright_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableofficestartglobal", + "displayName": "Disable the Office Start screen for all Office applications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableofficestartglobal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableofficestartglobal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablescreenshotautohyperlink", + "displayName": "Do not automatically hyperlink screenshots (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablescreenshotautohyperlink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablescreenshotautohyperlink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablewebviewintheofficefiledialogs", + "displayName": "Disable web view in the Office file dialog boxes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablewebviewintheofficefiledialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disablewebviewintheofficefiledialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disalowconvertdocumentpolicy", + "displayName": "Disallow Convert Document (Excel, PowerPoint, Word) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disalowconvertdocumentpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_disalowconvertdocumentpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotdisplaypathsinalerts", + "displayName": "Do not display paths in alerts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotdisplaypathsinalerts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotdisplaypathsinalerts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotemulatetabswithspaceswhenexportinghtml", + "displayName": "Emulate tabs with spaces when exporting HTML (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotemulatetabswithspaceswhenexportinghtml_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotemulatetabswithspaceswhenexportinghtml_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donottrackdocumenteditingtime", + "displayName": "Do not track document editing time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donottrackdocumenteditingtime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donottrackdocumenteditingtime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotuploadmediafiles", + "displayName": "Do not upload media files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotuploadmediafiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotuploadmediafiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotusehardwareacceleration", + "displayName": "Do not use hardware graphics acceleration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotusehardwareacceleration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotusehardwareacceleration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotvalidateprintersbeforeusingthem", + "displayName": "Do not validate printers before using them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotvalidateprintersbeforeusingthem_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_donotvalidateprintersbeforeusingthem_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_enableworkflowsonmysite", + "displayName": "Enable Workflows on My Site (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_enableworkflowsonmysite_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_enableworkflowsonmysite_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_freezedry", + "displayName": "Enable Smart Resume (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_freezedry_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_freezedry_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_graphicfilterlegacymode", + "displayName": "Graphic filter legacy mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_graphicfilterlegacymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_graphicfilterlegacymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_hidethelearnmoreaboutsharepointhyperlink", + "displayName": "Hide the Learn more about SharePoint Hyperlink (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_hidethelearnmoreaboutsharepointhyperlink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_hidethelearnmoreaboutsharepointhyperlink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_homeworkflowlibrary", + "displayName": "Home Workflow Library (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_homeworkflowlibrary_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_homeworkflowlibrary_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_homeworkflowlibrary_l_path2504", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_increasevisibilityofaccessibilitycheckerviolations", + "displayName": "Increase the visibility of Accessibility Checker violations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_increasevisibilityofaccessibilitycheckerviolations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_increasevisibilityofaccessibilitycheckerviolations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_increasevisibilityofaccessibilitycheckerviolations_l_increasevisibilityofaccessibilitycheckerviolationsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_increasevisibilityofaccessibilitycheckerviolations_l_increasevisibilityofaccessibilitycheckerviolationsdropid_0", + "displayName": "Accessibility violations do not change loudness (default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_increasevisibilityofaccessibilitycheckerviolations_l_increasevisibilityofaccessibilitycheckerviolationsdropid_1", + "displayName": "Accessibility errors cause slab to be loud", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_increasevisibilityofaccessibilitycheckerviolations_l_increasevisibilityofaccessibilitycheckerviolationsdropid_2", + "displayName": "Accessibility errors or warnings cause slab to be loud", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_iscustomaddintabdefaultbackstageplace", + "displayName": "Take users to a custom File menu tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_iscustomaddintabdefaultbackstageplace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_iscustomaddintabdefaultbackstageplace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_iscustomtabdefaultinnewplace", + "displayName": "Show the Custom tab as the default tab when creating a new file (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_iscustomtabdefaultinnewplace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_iscustomtabdefaultinnewplace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_microsoftofficeshareddrawingcode", + "displayName": "Disable Microsoft Office shared drawing code for blip caching (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_microsoftofficeshareddrawingcode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_microsoftofficeshareddrawingcode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_microsoftofficeshareddrawingcodeformeta", + "displayName": "Disable Microsoft Office shared drawing code for metafile rendering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_microsoftofficeshareddrawingcodeformeta_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_microsoftofficeshareddrawingcodeformeta_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_mrutemplatelistlength", + "displayName": "Most Recently Used Template List Length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_mrutemplatelistlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_mrutemplatelistlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_mrutemplatelistlength_l_mrutemplatelistlength505", + "displayName": "Most Recently Used Template List Length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter", + "displayName": "Hide file locations when opening or saving files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_l_onlinestoragefilterid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_l_onlinestoragefilterid_1", + "displayName": "Hide OneDrive Personal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_l_onlinestoragefilterid_2", + "displayName": "Hide SharePoint Online and OneDrive for Business", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_l_onlinestoragefilterid_3", + "displayName": "Hide OneDrive Personal, SharePoint Online and OneDrive for Business", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_l_onlinestoragefilterid_4", + "displayName": "Hide Local PC", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_onlinestoragefilter_l_onlinestoragefilterid_8", + "displayName": "Hide SharePoint Server", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_printticketsafemode", + "displayName": "Print ticket safe mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_printticketsafemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_printticketsafemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_providefeedbackwithsound", + "displayName": "Provide feedback with sound (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_providefeedbackwithsound_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_providefeedbackwithsound_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showpasteoptionsbuttons", + "displayName": "Show Paste Options button when content is pasted (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showpasteoptionsbuttons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showpasteoptionsbuttons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showscreentips", + "displayName": "Show Screen Tips (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showscreentips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showscreentips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showscreentips_l_showscreentipsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showscreentips_l_showscreentipsdropid_0", + "displayName": "Show feature descriptions", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showscreentips_l_showscreentipsdropid_1", + "displayName": "Don't show feature descriptions", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showscreentips_l_showscreentipsdropid_2", + "displayName": "Don't show screentips", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showskydrivesignin", + "displayName": "Show OneDrive Sign In (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showskydrivesignin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_showskydrivesignin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_signinoptions", + "displayName": "Block signing into Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_signinoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_signinoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_signinoptions_l_signinoptions5", + "displayName": "Block signing into Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_signinoptions_l_signinoptions5_0", + "displayName": "Both IDs allowed", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_signinoptions_l_signinoptions5_1", + "displayName": "Microsoft Account only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_signinoptions_l_signinoptions5_2", + "displayName": "Org ID only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_signinoptions_l_signinoptions5_3", + "displayName": "None allowed", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_suppressrecommendedsettingsdialog", + "displayName": "Suppress recommended settings dialog (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_suppressrecommendedsettingsdialog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_suppressrecommendedsettingsdialog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_uselegacytranslationfeatures", + "displayName": "Use legacy translation features (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_uselegacytranslationfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_uselegacytranslationfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_uselocaluserinfo", + "displayName": "Use local user name and initials values regardless of signed-in user (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_uselocaluserinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_uselocaluserinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_usesystemfontinsteadoftahoma", + "displayName": "Use system font instead of the Office default UI font (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_usesystemfontinsteadoftahoma_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_usesystemfontinsteadoftahoma_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_webfoldersmanagingpairsofwebpagesandfolders", + "displayName": "Web Folders: Managing pairs of Web pages and folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_webfoldersmanagingpairsofwebpagesandfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_webfoldersmanagingpairsofwebpagesandfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_webfoldersmanagingpairsofwebpagesandfolders_l_webfoldersmanagingpairsofwebpagesandfolders506", + "displayName": "Web Folders: Managing pairs of Web pages and folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_webfoldersmanagingpairsofwebpagesandfolders_l_webfoldersmanagingpairsofwebpagesandfolders506_0", + "displayName": "Show and manage the pair as a single file", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_webfoldersmanagingpairsofwebpagesandfolders_l_webfoldersmanagingpairsofwebpagesandfolders506_2", + "displayName": "Show both parts and manage them individually", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437_l_webfoldersmanagingpairsofwebpagesandfolders_l_webfoldersmanagingpairsofwebpagesandfolders506_1", + "displayName": "Show both parts but manage as a single file", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1", + "displayName": "Workflow Cache 1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_l_workflowcachename", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_l_workflowdescrip", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_l_workflowfriendly", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_l_workflowpath", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_l_workflowsig", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_l_workflowsig_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache1_l_workflowsig_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10", + "displayName": "Workflow Cache 10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_l_workflowcachename473", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_l_workflowdescrip475", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_l_workflowfriendly476", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_l_workflowpath474", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_l_workflowsig477", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_l_workflowsig477_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache10_l_workflowsig477_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11", + "displayName": "Workflow Cache 11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_l_workflowcachename478", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_l_workflowdescrip480", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_l_workflowfriendly481", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_l_workflowpath479", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_l_workflowsig482", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_l_workflowsig482_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache11_l_workflowsig482_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12", + "displayName": "Workflow Cache 12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_l_workflowcachename483", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_l_workflowdescrip485", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_l_workflowfriendly486", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_l_workflowpath484", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_l_workflowsig487", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_l_workflowsig487_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache12_l_workflowsig487_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13", + "displayName": "Workflow Cache 13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_l_workflowcachename488", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_l_workflowdescrip490", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_l_workflowfriendly491", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_l_workflowpath489", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_l_workflowsig492", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_l_workflowsig492_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache13_l_workflowsig492_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14", + "displayName": "Workflow Cache 14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_l_workflowcachename493", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_l_workflowdescrip495", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_l_workflowfriendly496", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_l_workflowpath494", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_l_workflowsig497", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_l_workflowsig497_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache14_l_workflowsig497_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15", + "displayName": "Workflow Cache 15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_l_workflowcachename498", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_l_workflowdescrip500", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_l_workflowfriendly501", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_l_workflowpath499", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_l_workflowsig502", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_l_workflowsig502_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache15_l_workflowsig502_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2", + "displayName": "Workflow Cache 2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_l_workflowcachename433", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_l_workflowdescrip435", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_l_workflowfriendly436", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_l_workflowpath434", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_l_workflowsig437", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_l_workflowsig437_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache2_l_workflowsig437_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3", + "displayName": "Workflow Cache 3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_l_workflowcachename438", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_l_workflowdescrip440", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_l_workflowfriendly441", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_l_workflowpath439", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_l_workflowsig442", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_l_workflowsig442_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache3_l_workflowsig442_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4", + "displayName": "Workflow Cache 4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_l_workflowcachename443", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_l_workflowdescrip445", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_l_workflowfriendly446", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_l_workflowpath444", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_l_workflowsig447", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_l_workflowsig447_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache4_l_workflowsig447_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5", + "displayName": "Workflow Cache 5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_l_workflowcachename448", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_l_workflowdescrip450", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_l_workflowfriendly451", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_l_workflowpath449", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_l_workflowsig452", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_l_workflowsig452_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache5_l_workflowsig452_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6", + "displayName": "Workflow Cache 6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_l_workflowcachename453", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_l_workflowdescrip455", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_l_workflowfriendly456", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_l_workflowpath454", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_l_workflowsig457", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_l_workflowsig457_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache6_l_workflowsig457_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7", + "displayName": "Workflow Cache 7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_l_workflowcachename458", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_l_workflowdescrip460", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_l_workflowfriendly461", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_l_workflowpath459", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_l_workflowsig462", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_l_workflowsig462_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache7_l_workflowsig462_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8", + "displayName": "Workflow Cache 8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_l_workflowcachename463", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_l_workflowdescrip465", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_l_workflowfriendly466", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_l_workflowpath464", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_l_workflowsig467", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_l_workflowsig467_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache8_l_workflowsig467_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9", + "displayName": "Workflow Cache 9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_l_workflowcachename468", + "displayName": "Name of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_l_workflowdescrip470", + "displayName": "Description of the workflow to be shown to the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_l_workflowfriendly471", + "displayName": "Name of the document library to be shown the user (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_l_workflowpath469", + "displayName": "Full URL to the document library with which the workflow is associated (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_l_workflowsig472", + "displayName": "Workflow requires the user to sign the document (Word/Excel only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_l_workflowsig472_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_miscellaneous437~l_workflowcache_l_workflowcache9_l_workflowsig472_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_officeconverters_l_blockopeningofprereleaseexcel", + "displayName": "Block opening of pre-release versions of file formats new to Excel 2016 through the Compatibility Pack for Office 2016 and Excel 2016 Converter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_officeconverters_l_blockopeningofprereleaseexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_officeconverters_l_blockopeningofprereleaseexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_officeconverters_l_blockopeningofprereleaseppt", + "displayName": "Block opening of pre-release versions of file formats new to PowerPoint 2016 through the Compatibility Pack for Office 2016 and PowerPoint 2016 Converter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_officeconverters_l_blockopeningofprereleaseppt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_officeconverters_l_blockopeningofprereleaseppt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_disableinclusionofdocumentpropertiesinpdfandxpsoutput", + "displayName": "Disable inclusion of document properties in PDF and XPS output (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_disableinclusionofdocumentpropertiesinpdfandxpsoutput_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_disableinclusionofdocumentpropertiesinpdfandxpsoutput_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_enforcepdfcompliancewithiso190051pdfa", + "displayName": "Enforce PDF compliance with ISO 19005-1 (PDF/A) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_enforcepdfcompliancewithiso190051pdfa_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_enforcepdfcompliancewithiso190051pdfa_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_enforcepdfcompliancewithiso190051pdfa_l_empty417", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_enforcepdfcompliancewithiso190051pdfa_l_empty417_0", + "displayName": "Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_enforcepdfcompliancewithiso190051pdfa_l_empty417_1", + "displayName": "Encourage", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_enforcepdfcompliancewithiso190051pdfa_l_empty417_2", + "displayName": "Prevent", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_enforcepdfcompliancewithiso190051pdfa_l_empty417_3", + "displayName": "Enforce", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_specifytypesoffixedformatoptionsavailabletotheuser", + "displayName": "Disable Microsoft Save As PDF and XPS add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_specifytypesoffixedformatoptionsavailabletotheuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_specifytypesoffixedformatoptionsavailabletotheuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_specifytypesoffixedformatoptionsavailabletotheuser_l_empty418", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_specifytypesoffixedformatoptionsavailabletotheuser_l_empty418_0", + "displayName": "Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_specifytypesoffixedformatoptionsavailabletotheuser_l_empty418_1", + "displayName": "Disable XPS", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_specifytypesoffixedformatoptionsavailabletotheuser_l_empty418_2", + "displayName": "Disable PDF", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_pdfandxps_l_specifytypesoffixedformatoptionsavailabletotheuser_l_empty418_3", + "displayName": "Disable XPS and PDF", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences", + "displayName": "[Deprecated] Allow the use of connected experiences in Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences_l_connectedofficeexperiencesdropid", + "displayName": "[Deprecated] Connected experiences in Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences_l_connectedofficeexperiencesdropid_1", + "displayName": "Connected", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_connectedofficeexperiences_l_connectedofficeexperiencesdropid_2", + "displayName": "Disconnected", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_disableoptinwizard", + "displayName": "Disable Opt-in Wizard on first run (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_disableoptinwizard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_disableoptinwizard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_enablecustomerexperienceimprovementprogram", + "displayName": "Enable Customer Experience Improvement Program (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_enablecustomerexperienceimprovementprogram_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_enablecustomerexperienceimprovementprogram_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent", + "displayName": "[Deprecated] Allow the use of connected experiences in Office that analyze content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent_l_officeexperiencesanlayzingcontentdropid", + "displayName": "[Deprecated] Connected experiences in Office that analyze content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent_l_officeexperiencesanlayzingcontentdropid_1", + "displayName": "Enabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesanlayzingcontent_l_officeexperiencesanlayzingcontentdropid_2", + "displayName": "Disabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent", + "displayName": "[Deprecated] Allow the use of connected experiences in Office that download online content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent_l_officeexperiencesdownloadingcontentdropid", + "displayName": "[Deprecated] Connected experiences in Office that download online content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent_l_officeexperiencesdownloadingcontentdropid_1", + "displayName": "Enabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_officeexperiencesdownloadingcontent_l_officeexperiencesdownloadingcontentdropid_2", + "displayName": "Disabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences", + "displayName": "[Deprecated] Allow the use of additional optional connected experiences in Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences_l_optionalconnectedexperiencesdropid", + "displayName": "[Deprecated] Optional connected experiences in Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences_l_optionalconnectedexperiencesdropid_1", + "displayName": "Enabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_optionalconnectedexperiences_l_optionalconnectedexperiencesdropid_2", + "displayName": "Disabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_screenshot", + "displayName": "Allow including screenshot with Office Feedback (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_screenshot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_screenshot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendcustomerdata", + "displayName": "Send personal information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendcustomerdata_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendcustomerdata_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendfeedback", + "displayName": "Send Office Feedback (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendfeedback_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendfeedback_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendtelemetry", + "displayName": "Configure the level of client software diagnostic data sent by Office to Microsoft (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendtelemetry_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendtelemetry_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendtelemetry_l_sendtelemetrydropid", + "displayName": "Type of diagnostic data: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendtelemetry_l_sendtelemetrydropid_3", + "displayName": "Neither", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendtelemetry_l_sendtelemetrydropid_2", + "displayName": "Optional", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendtelemetry_l_sendtelemetrydropid_1", + "displayName": "Required", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_updatereliabilitypolicy", + "displayName": "Automatically receive small updates to improve reliability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_updatereliabilitypolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_updatereliabilitypolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitcustomtags", + "displayName": "Specify custom labels to use with the Readiness Toolkit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitcustomtags_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitcustomtags_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitcustomtags_l_officereadinesstoolkitcustomtagstag1", + "displayName": "Label 1: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitcustomtags_l_officereadinesstoolkitcustomtagstag2", + "displayName": "Label 2: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitcustomtags_l_officereadinesstoolkitcustomtagstag3", + "displayName": "Label 3: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitcustomtags_l_officereadinesstoolkitcustomtagstag4", + "displayName": "Label 4: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitenableusageagent", + "displayName": "Allow add-in usage data to be generated and collected by the Readiness Toolkit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitenableusageagent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_readinesstoolkit_l_officereadinesstoolkitenableusageagent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization", + "displayName": "ActiveX Control Initialization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_l_activexcontrolinitializationcolon", + "displayName": "ActiveX Control Initialization: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_l_activexcontrolinitializationcolon_1", + "displayName": "1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_l_activexcontrolinitializationcolon_2", + "displayName": "2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_l_activexcontrolinitializationcolon_3", + "displayName": "3", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_l_activexcontrolinitializationcolon_4", + "displayName": "4", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_l_activexcontrolinitializationcolon_5", + "displayName": "5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_activexcontrolinitialization_l_activexcontrolinitializationcolon_6", + "displayName": "6", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_allowedextensions", + "displayName": "Allow file extensions for OLE embedding (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_allowedextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_allowedextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_allowedextensions_l_allowedextensionsole", + "displayName": "File extensions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_automationsecurity", + "displayName": "Automation Security (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_automationsecurity_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_automationsecurity_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_automationsecurity_l_settheautomationsecuritylevel", + "displayName": "Set the Automation Security level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_automationsecurity_l_settheautomationsecuritylevel_3", + "displayName": "Disable macros by default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_automationsecurity_l_settheautomationsecuritylevel_2", + "displayName": "Use application macro security level", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_automationsecurity_l_settheautomationsecuritylevel_1", + "displayName": "Macros enabled (default)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_blockedextensions", + "displayName": "Block additional file extensions for OLE embedding (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_blockedextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_blockedextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_blockedextensions_l_blockedextensionsole", + "displayName": "File extensions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkactivexobjects", + "displayName": "Check ActiveX objects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkactivexobjects_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkactivexobjects_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkactivexobjects_l_checkactivexobjectsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkactivexobjects_l_checkactivexobjectsdropid_0", + "displayName": "Do not check", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkactivexobjects_l_checkactivexobjectsdropid_1", + "displayName": "Override IE kill bit list", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkactivexobjects_l_checkactivexobjectsdropid_2", + "displayName": "Strict allow list", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkexcelrtdservers", + "displayName": "Check Excel RTD servers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkexcelrtdservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkexcelrtdservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkoleobjects", + "displayName": "Check OLE objects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkoleobjects_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkoleobjects_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkoleobjects_l_checkoleobjectsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkoleobjects_l_checkoleobjectsdropid_0", + "displayName": "Do not check", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkoleobjects_l_checkoleobjectsdropid_1", + "displayName": "Override IE kill bit list", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkoleobjects_l_checkoleobjectsdropid_2", + "displayName": "Strict allow list", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkowcdatasourceproviders", + "displayName": "Check OWC data source providers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkowcdatasourceproviders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_checkowcdatasourceproviders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disableallactivex", + "displayName": "Disable All ActiveX (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disableallactivex_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disableallactivex_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablealltrustbarnotificationsfor", + "displayName": "Disable all Trust Bar notifications for security issues (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablealltrustbarnotificationsfor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablealltrustbarnotificationsfor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablepasswordtoopenui", + "displayName": "Disable password to open UI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablepasswordtoopenui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablepasswordtoopenui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablevbaforofficeapplications319", + "displayName": "Disable VBA for Office applications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablevbaforofficeapplications319_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_disablevbaforofficeapplications319_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_enableminimizevbaresigning", + "displayName": "Enable Minimizing VBA Project Digital Signature Invalidation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_enableminimizevbaresigning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_enableminimizevbaresigning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptdocumentproperties", + "displayName": "Encrypt document properties (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptdocumentproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptdocumentproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforpasswordprotectedoffice972003", + "displayName": "Encryption type for password protected Office 97-2003 files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforpasswordprotectedoffice972003_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforpasswordprotectedoffice972003_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforpasswordprotectedoffice972003_l_encryptiontypecolon318", + "displayName": "Encryption type: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforpasswordprotectedofficeopen", + "displayName": "Encryption type for password protected Office Open XML files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforpasswordprotectedofficeopen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforpasswordprotectedofficeopen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_encryptiontypeforpasswordprotectedofficeopen_l_encryptiontypecolon", + "displayName": "Encryption type: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_loadcontrolsinforms3", + "displayName": "Load Controls in Forms3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_loadcontrolsinforms3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_loadcontrolsinforms3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_loadcontrolsinforms3_l_loadcontrolsinforms3colon", + "displayName": "Load Controls in Forms3: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_loadcontrolsinforms3_l_loadcontrolsinforms3colon_1", + "displayName": "1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_loadcontrolsinforms3_l_loadcontrolsinforms3colon_2", + "displayName": "2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_loadcontrolsinforms3_l_loadcontrolsinforms3colon_3", + "displayName": "3", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_loadcontrolsinforms3_l_loadcontrolsinforms3colon_4", + "displayName": "4", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_macroruntimescanscope", + "displayName": "Macro Runtime Scan Scope (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_macroruntimescanscope_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_macroruntimescanscope_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_macroruntimescanscope_l_macroruntimescanscopeenum", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_macroruntimescanscope_l_macroruntimescanscopeenum_0", + "displayName": "Disable for all documents", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_macroruntimescanscope_l_macroruntimescanscopeenum_1", + "displayName": "Enable for low trust documents", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_macroruntimescanscope_l_macroruntimescanscopeenum_2", + "displayName": "Enable for all documents", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_preventwordandexcelfromloadingmanagedcodeextensions", + "displayName": "Prevent Word and Excel from loading managed code extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_preventwordandexcelfromloadingmanagedcodeextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_preventwordandexcelfromloadingmanagedcodeextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_protectdocumentmetadataforpasswordprotected", + "displayName": "Protect document metadata for password protected files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_protectdocumentmetadataforpasswordprotected_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_protectdocumentmetadataforpasswordprotected_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_protectdocumentmetadataforrightsmanaged", + "displayName": "Protect document metadata for rights managed Office Open XML Files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_protectdocumentmetadataforrightsmanaged_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_protectdocumentmetadataforrightsmanaged_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setminimumpasswordlength", + "displayName": "Set minimum password length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setminimumpasswordlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setminimumpasswordlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setminimumpasswordlength_l_setminimumpasswordlengthspinid", + "displayName": "Minimum password length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordhashformatasisocompliant", + "displayName": "Set password hash format as ISO-compliant (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordhashformatasisocompliant_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordhashformatasisocompliant_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordrulesdomaintimeout", + "displayName": "Set password rules domain timeout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordrulesdomaintimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordrulesdomaintimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordrulesdomaintimeout_l_setpasswordrulesdomaintimeoutspinid", + "displayName": "in milliseconds (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordruleslevel", + "displayName": "Set password rules level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordruleslevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordruleslevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordruleslevel_l_setpasswordrulesleveldropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordruleslevel_l_setpasswordrulesleveldropid_0", + "displayName": "No password checks", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordruleslevel_l_setpasswordrulesleveldropid_1", + "displayName": "Local length check", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordruleslevel_l_setpasswordrulesleveldropid_2", + "displayName": "Local length and complexity checks", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_setpasswordruleslevel_l_setpasswordrulesleveldropid_3", + "displayName": "Local length, local complexity, and domain policy checks", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_suppresshyperlinkwarnings", + "displayName": "Suppress hyperlink warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_suppresshyperlinkwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_suppresshyperlinkwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_turnofferrorreportingforfilesthatfailfilevalidation", + "displayName": "Turn off error reporting for files that fail file validation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_turnofferrorreportingforfilesthatfailfilevalidation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_turnofferrorreportingforfilesthatfailfilevalidation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_turnoffpdfencryptionsettingui", + "displayName": "Turn off PDF encryption setting UI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_turnoffpdfencryptionsettingui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings_l_turnoffpdfencryptionsettingui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_checkthexadesportionsofadigitalsignature", + "displayName": "Check the XAdES portions of a digital signature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_checkthexadesportionsofadigitalsignature_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_checkthexadesportionsofadigitalsignature_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_configuretimestampinghashingalgorithm", + "displayName": "Configure time stamping hashing algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_configuretimestampinghashingalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_configuretimestampinghashingalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_configuretimestampinghashingalgorithm_l_configuretimestampinghashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_configuretimestampinghashingalgorithm_l_configuretimestampinghashingalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_configuretimestampinghashingalgorithm_l_configuretimestampinghashingalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_configuretimestampinghashingalgorithm_l_configuretimestampinghashingalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_configuretimestampinghashingalgorithm_l_configuretimestampinghashingalgorithmdropid_sha512", + "displayName": "SHA512", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_donotallowexpiredcertificateswhenvalidatingsignatures", + "displayName": "Do not allow expired certificates when validating signatures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_donotallowexpiredcertificateswhenvalidatingsignatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_donotallowexpiredcertificateswhenvalidatingsignatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration", + "displayName": "Requested XAdES level for signature generation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_l_requestedxadeslevelforsignaturegenerationdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_l_requestedxadeslevelforsignaturegenerationdropid_0", + "displayName": "No XAdES", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_l_requestedxadeslevelforsignaturegenerationdropid_1", + "displayName": "XAdES-BES", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_l_requestedxadeslevelforsignaturegenerationdropid_2", + "displayName": "XAdES-T", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_l_requestedxadeslevelforsignaturegenerationdropid_3", + "displayName": "XAdES-C", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_l_requestedxadeslevelforsignaturegenerationdropid_4", + "displayName": "XAdES-X", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requestedxadeslevelforsignaturegeneration_l_requestedxadeslevelforsignaturegenerationdropid_5", + "displayName": "XAdES-X-L", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requireocspatsignaturegenerationtime", + "displayName": "Require OCSP at signature generation time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requireocspatsignaturegenerationtime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_requireocspatsignaturegenerationtime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturehashingalgorithm", + "displayName": "Select digital signature hashing algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturehashingalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturehashingalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturehashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturehashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturehashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturehashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturehashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha512", + "displayName": "SHA512", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvaliddsabits", + "displayName": "Configure invalid DSA public key size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvaliddsabits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvaliddsabits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvaliddsabits_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvaliddsabits_l_selectdigitalsignaturehashingalgorithmdropid_0", + "displayName": "0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvaliddsabits_l_selectdigitalsignaturehashingalgorithmdropid_512", + "displayName": "512", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvaliddsabits_l_selectdigitalsignaturehashingalgorithmdropid_768", + "displayName": "768", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvaliddsabits_l_selectdigitalsignaturehashingalgorithmdropid_1024", + "displayName": "1024", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidhashingalgorithm", + "displayName": "Configure invalid hashing algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidhashingalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidhashingalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_md5", + "displayName": "MD5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits", + "displayName": "Configure invalid RSA public key size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_l_selectdigitalsignaturehashingalgorithmdropid_0", + "displayName": "0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_l_selectdigitalsignaturehashingalgorithmdropid_512", + "displayName": "512", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_l_selectdigitalsignaturehashingalgorithmdropid_768", + "displayName": "768", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_l_selectdigitalsignaturehashingalgorithmdropid_1024", + "displayName": "1024", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_l_selectdigitalsignaturehashingalgorithmdropid_1536", + "displayName": "1536", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureinvalidrsabits_l_selectdigitalsignaturehashingalgorithmdropid_2048", + "displayName": "2048", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacydsabits", + "displayName": "Configure legacy DSA public key size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacydsabits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacydsabits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacydsabits_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacydsabits_l_selectdigitalsignaturehashingalgorithmdropid_0", + "displayName": "0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacydsabits_l_selectdigitalsignaturehashingalgorithmdropid_512", + "displayName": "512", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacydsabits_l_selectdigitalsignaturehashingalgorithmdropid_768", + "displayName": "768", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacydsabits_l_selectdigitalsignaturehashingalgorithmdropid_1024", + "displayName": "1024", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyhashingalgorithm", + "displayName": "Configure legacy hashing algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyhashingalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyhashingalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_md5", + "displayName": "MD5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyhashingalgorithm_l_selectdigitalsignaturehashingalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits", + "displayName": "Configure legacy RSA public key size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_l_selectdigitalsignaturehashingalgorithmdropid_0", + "displayName": "0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_l_selectdigitalsignaturehashingalgorithmdropid_512", + "displayName": "512", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_l_selectdigitalsignaturehashingalgorithmdropid_768", + "displayName": "768", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_l_selectdigitalsignaturehashingalgorithmdropid_1024", + "displayName": "1024", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_l_selectdigitalsignaturehashingalgorithmdropid_1536", + "displayName": "1536", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturelegacyrsabits_l_selectdigitalsignaturehashingalgorithmdropid_2048", + "displayName": "2048", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturemindsabits", + "displayName": "Configure minimum DSA public key size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturemindsabits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturemindsabits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturemindsabits_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturemindsabits_l_selectdigitalsignaturehashingalgorithmdropid_0", + "displayName": "0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturemindsabits_l_selectdigitalsignaturehashingalgorithmdropid_512", + "displayName": "512", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturemindsabits_l_selectdigitalsignaturehashingalgorithmdropid_768", + "displayName": "768", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignaturemindsabits_l_selectdigitalsignaturehashingalgorithmdropid_1024", + "displayName": "1024", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits", + "displayName": "Configure minimum RSA public key size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_l_selectdigitalsignaturehashingalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_l_selectdigitalsignaturehashingalgorithmdropid_0", + "displayName": "0", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_l_selectdigitalsignaturehashingalgorithmdropid_512", + "displayName": "512", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_l_selectdigitalsignaturehashingalgorithmdropid_768", + "displayName": "768", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_l_selectdigitalsignaturehashingalgorithmdropid_1024", + "displayName": "1024", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_l_selectdigitalsignaturehashingalgorithmdropid_1536", + "displayName": "1536", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_l_selectdigitalsignaturehashingalgorithmdropid_2048", + "displayName": "2048", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_selectdigitalsignatureminrsabits_l_selectdigitalsignaturehashingalgorithmdropid_4096", + "displayName": "4096", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_setsignatureverificationlevel", + "displayName": "Set signature verification level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_setsignatureverificationlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_setsignatureverificationlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_setsignatureverificationlevel_l_setsignatureverificationleveldropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_setsignatureverificationlevel_l_setsignatureverificationleveldropid_0", + "displayName": "No rules", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_setsignatureverificationlevel_l_setsignatureverificationleveldropid_1", + "displayName": "Office 2007 rules", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_setsignatureverificationlevel_l_setsignatureverificationleveldropid_2", + "displayName": "Office 2010 rules", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_setsignatureverificationlevel_l_setsignatureverificationleveldropid_3", + "displayName": "Office 2013 rules", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_settimestampservertimeout", + "displayName": "Set timestamp server timeout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_settimestampservertimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_settimestampservertimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_settimestampservertimeout_l_settimestampservertimeoutspinid", + "displayName": "In seconds (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyissuerfilter", + "displayName": "Specify filtering for certificate issuers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyissuerfilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyissuerfilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyissuerfilter_l_specifyissuerfilterid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration", + "displayName": "Specify minimum XAdES level for digital signature generation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_l_specifyminimumxadeslevelfordigitalsignaturegenerationdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_l_specifyminimumxadeslevelfordigitalsignaturegenerationdropid_0", + "displayName": "No minimum level", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_l_specifyminimumxadeslevelfordigitalsignaturegenerationdropid_1", + "displayName": "XAdES-BES", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_l_specifyminimumxadeslevelfordigitalsignaturegenerationdropid_2", + "displayName": "XAdES-T", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_l_specifyminimumxadeslevelfordigitalsignaturegenerationdropid_3", + "displayName": "XAdES-C", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_l_specifyminimumxadeslevelfordigitalsignaturegenerationdropid_4", + "displayName": "XAdES-X", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifyminimumxadeslevelfordigitalsignaturegeneration_l_specifyminimumxadeslevelfordigitalsignaturegenerationdropid_5", + "displayName": "XAdES-X-L", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifytimestampservername", + "displayName": "Specify timestamp server name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifytimestampservername_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifytimestampservername_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_specifytimestampservername_l_specifytimestampservernameid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_suppressnocertdialog", + "displayName": "Display alternative certificate providers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_suppressnocertdialog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_digsig_l_suppressnocertdialog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey01", + "displayName": "Escrow Key #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey01_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey02", + "displayName": "Escrow Key #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey02_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey03", + "displayName": "Escrow Key #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey03_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey04", + "displayName": "Escrow Key #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey04_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey05", + "displayName": "Escrow Key #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey05_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey06", + "displayName": "Escrow Key #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey06_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey07", + "displayName": "Escrow Key #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey07_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey08", + "displayName": "Escrow Key #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey08_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey09", + "displayName": "Escrow Key #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey09_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey10", + "displayName": "Escrow Key #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey10_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey11", + "displayName": "Escrow Key #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey11_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey12", + "displayName": "Escrow Key #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey12_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey13", + "displayName": "Escrow Key #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey13_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey14", + "displayName": "Escrow Key #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey14_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey15", + "displayName": "Escrow Key #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey15_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey16", + "displayName": "Escrow Key #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey16_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey17", + "displayName": "Escrow Key #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey17_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey18", + "displayName": "Escrow Key #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey18_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey19", + "displayName": "Escrow Key #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey19_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey20", + "displayName": "Escrow Key #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_escrowkeycerts_l_escrowkey20_l_certhashcolon", + "displayName": "Certificate Hash: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_allowmixofpolicyanduserlocations", + "displayName": "Allow mix of policy and user locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_allowmixofpolicyanduserlocations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_allowmixofpolicyanduserlocations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_minsigsupportos", + "displayName": "Set the minimum operating system for verifying agile VBA signatures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_minsigsupportos_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_minsigsupportos_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_minsigsupportos_l_minsigsupportosdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_minsigsupportos_l_minsigsupportosdropid_0", + "displayName": "Windows XP", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_minsigsupportos_l_minsigsupportosdropid_1", + "displayName": "Windows Vista", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_minsigsupportos_l_minsigsupportosdropid_2", + "displayName": "Windows 7", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_minsigsupportos_l_minsigsupportosdropid_3", + "displayName": "Windows 8", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01", + "displayName": "Trusted Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01_l_allowsubfolders", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01_l_allowsubfolders_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01_l_allowsubfolders_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01_l_datecolon", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01_l_descriptioncolon", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc01_l_pathcolon", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02", + "displayName": "Trusted Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02_l_allowsubfolders245", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02_l_allowsubfolders245_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02_l_allowsubfolders245_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02_l_datecolon243", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02_l_descriptioncolon244", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc02_l_pathcolon242", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03", + "displayName": "Trusted Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03_l_allowsubfolders249", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03_l_allowsubfolders249_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03_l_allowsubfolders249_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03_l_datecolon247", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03_l_descriptioncolon248", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc03_l_pathcolon246", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04", + "displayName": "Trusted Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04_l_allowsubfolders253", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04_l_allowsubfolders253_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04_l_allowsubfolders253_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04_l_datecolon251", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04_l_descriptioncolon252", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc04_l_pathcolon250", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05", + "displayName": "Trusted Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05_l_allowsubfolders257", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05_l_allowsubfolders257_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05_l_allowsubfolders257_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05_l_datecolon255", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05_l_descriptioncolon256", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc05_l_pathcolon254", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06", + "displayName": "Trusted Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06_l_allowsubfolders261", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06_l_allowsubfolders261_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06_l_allowsubfolders261_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06_l_datecolon259", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06_l_descriptioncolon260", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc06_l_pathcolon258", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07", + "displayName": "Trusted Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07_l_allowsubfolders265", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07_l_allowsubfolders265_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07_l_allowsubfolders265_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07_l_datecolon263", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07_l_descriptioncolon264", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc07_l_pathcolon262", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08", + "displayName": "Trusted Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08_l_allowsubfolders269", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08_l_allowsubfolders269_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08_l_allowsubfolders269_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08_l_datecolon267", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08_l_descriptioncolon268", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc08_l_pathcolon266", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09", + "displayName": "Trusted Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09_l_allowsubfolders273", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09_l_allowsubfolders273_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09_l_allowsubfolders273_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09_l_datecolon271", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09_l_descriptioncolon272", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc09_l_pathcolon270", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10", + "displayName": "Trusted Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10_l_allowsubfolders277", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10_l_allowsubfolders277_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10_l_allowsubfolders277_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10_l_datecolon275", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10_l_descriptioncolon276", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc10_l_pathcolon274", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11", + "displayName": "Trusted Location #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11_l_allowsubfolders281", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11_l_allowsubfolders281_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11_l_allowsubfolders281_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11_l_datecolon279", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11_l_descriptioncolon280", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc11_l_pathcolon278", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12", + "displayName": "Trusted Location #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12_l_allowsubfolders285", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12_l_allowsubfolders285_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12_l_allowsubfolders285_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12_l_datecolon283", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12_l_descriptioncolon284", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc12_l_pathcolon282", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13", + "displayName": "Trusted Location #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13_l_allowsubfolders289", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13_l_allowsubfolders289_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13_l_allowsubfolders289_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13_l_datecolon287", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13_l_descriptioncolon288", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc13_l_pathcolon286", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14", + "displayName": "Trusted Location #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14_l_allowsubfolders293", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14_l_allowsubfolders293_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14_l_allowsubfolders293_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14_l_datecolon291", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14_l_descriptioncolon292", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc14_l_pathcolon290", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15", + "displayName": "Trusted Location #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15_l_allowsubfolders297", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15_l_allowsubfolders297_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15_l_allowsubfolders297_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15_l_datecolon295", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15_l_descriptioncolon296", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc15_l_pathcolon294", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16", + "displayName": "Trusted Location #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16_l_allowsubfolders301", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16_l_allowsubfolders301_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16_l_allowsubfolders301_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16_l_datecolon299", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16_l_descriptioncolon300", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc16_l_pathcolon298", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17", + "displayName": "Trusted Location #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17_l_allowsubfolders305", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17_l_allowsubfolders305_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17_l_allowsubfolders305_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17_l_datecolon303", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17_l_descriptioncolon304", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc17_l_pathcolon302", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18", + "displayName": "Trusted Location #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18_l_allowsubfolders309", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18_l_allowsubfolders309_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18_l_allowsubfolders309_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18_l_datecolon307", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18_l_descriptioncolon308", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc18_l_pathcolon306", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19", + "displayName": "Trusted Location #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19_l_allowsubfolders313", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19_l_allowsubfolders313_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19_l_allowsubfolders313_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19_l_datecolon311", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19_l_descriptioncolon312", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc19_l_pathcolon310", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20", + "displayName": "Trusted Location #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20_l_allowsubfolders317", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20_l_allowsubfolders317_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20_l_allowsubfolders317_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20_l_datecolon315", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20_l_descriptioncolon316", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustedloc20_l_pathcolon314", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustlegacysignature", + "displayName": "Trust legacy VBA signatures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustlegacysignature_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_trustlegacysignature_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc01", + "displayName": "Unsafe Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc01_l_allowsubfolders01", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc01_l_allowsubfolders01_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc01_l_allowsubfolders01_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc01_l_pathcolon01", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc02", + "displayName": "Unsafe Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc02_l_allowsubfolders02", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc02_l_allowsubfolders02_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc02_l_allowsubfolders02_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc02_l_pathcolon02", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc03", + "displayName": "Unsafe Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc03_l_allowsubfolders03", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc03_l_allowsubfolders03_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc03_l_allowsubfolders03_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc03_l_pathcolon03", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc04", + "displayName": "Unsafe Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc04_l_allowsubfolders04", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc04_l_allowsubfolders04_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc04_l_allowsubfolders04_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc04_l_pathcolon04", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc05", + "displayName": "Unsafe Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc05_l_allowsubfolders05", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc05_l_allowsubfolders05_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc05_l_allowsubfolders05_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc05_l_pathcolon05", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc06", + "displayName": "Unsafe Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc06_l_allowsubfolders06", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc06_l_allowsubfolders06_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc06_l_allowsubfolders06_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc06_l_pathcolon06", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc07", + "displayName": "Unsafe Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc07_l_allowsubfolders07", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc07_l_allowsubfolders07_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc07_l_allowsubfolders07_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc07_l_pathcolon07", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc08", + "displayName": "Unsafe Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc08_l_allowsubfolders08", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc08_l_allowsubfolders08_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc08_l_allowsubfolders08_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc08_l_pathcolon08", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc09", + "displayName": "Unsafe Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc09_l_allowsubfolders09", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc09_l_allowsubfolders09_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc09_l_allowsubfolders09_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc09_l_pathcolon09", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc10", + "displayName": "Unsafe Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc10_l_allowsubfolders10", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc10_l_allowsubfolders10_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc10_l_allowsubfolders10_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc10_l_pathcolon10", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc11", + "displayName": "Unsafe Location #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc11_l_allowsubfolders11", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc11_l_allowsubfolders11_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc11_l_allowsubfolders11_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc11_l_pathcolon11", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc12", + "displayName": "Unsafe Location #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc12_l_allowsubfolders12", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc12_l_allowsubfolders12_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc12_l_allowsubfolders12_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc12_l_pathcolon12", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc13", + "displayName": "Unsafe Location #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc13_l_allowsubfolders13", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc13_l_allowsubfolders13_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc13_l_allowsubfolders13_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc13_l_pathcolon13", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc14", + "displayName": "Unsafe Location #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc14_l_allowsubfolders14", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc14_l_allowsubfolders14_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc14_l_allowsubfolders14_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc14_l_pathcolon14", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc15", + "displayName": "Unsafe Location #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc15_l_allowsubfolders15", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc15_l_allowsubfolders15_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc15_l_allowsubfolders15_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc15_l_pathcolon15", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc16", + "displayName": "Unsafe Location #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc16_l_allowsubfolders16", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc16_l_allowsubfolders16_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc16_l_allowsubfolders16_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc16_l_pathcolon16", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc17", + "displayName": "Unsafe Location #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc17_l_allowsubfolders17", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc17_l_allowsubfolders17_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc17_l_allowsubfolders17_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc17_l_pathcolon17", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc18", + "displayName": "Unsafe Location #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc18_l_allowsubfolders18", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc18_l_allowsubfolders18_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc18_l_allowsubfolders18_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc18_l_pathcolon18", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc19", + "displayName": "Unsafe Location #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc19_l_allowsubfolders19", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc19_l_allowsubfolders19_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc19_l_allowsubfolders19_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc19_l_pathcolon19", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc20", + "displayName": "Unsafe Location #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc20_l_allowsubfolders20", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc20_l_allowsubfolders20_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc20_l_allowsubfolders20_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_protectedview_l_unsafeloc20_l_pathcolon20", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_allowunsecureapps", + "displayName": "Allow Unsecure web add-ins and Catalogs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_allowunsecureapps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_allowunsecureapps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_defaultfilesharecatalog", + "displayName": "Default Shared Folder Location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_defaultfilesharecatalog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_defaultfilesharecatalog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_defaultfilesharecatalog_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_defaultspcatalog", + "displayName": "Default SharePoint Catalog Location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_defaultspcatalog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_defaultspcatalog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_defaultspcatalog_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_disableallcatalogs", + "displayName": "Block Web Add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_disableallcatalogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_disableallcatalogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_disableofficestore", + "displayName": "Block the Office Store (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_disableofficestore_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_disableofficestore_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog01", + "displayName": "Trusted Catalog Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog01_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog02", + "displayName": "Trusted Catalog Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog02_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog03", + "displayName": "Trusted Catalog Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog03_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog04", + "displayName": "Trusted Catalog Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog04_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog05", + "displayName": "Trusted Catalog Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog05_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog06", + "displayName": "Trusted Catalog Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog06_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog07", + "displayName": "Trusted Catalog Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog07_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog08", + "displayName": "Trusted Catalog Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog08_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog09", + "displayName": "Trusted Catalog Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog09_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog10", + "displayName": "Trusted Catalog Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_trustedcatalogs_l_trustedcatalog10_l_url", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_adattributecontaingpersonalsiteurl", + "displayName": "AD attribute containing Personal Site URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_adattributecontaingpersonalsiteurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_adattributecontaingpersonalsiteurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_adattributecontaingpersonalsiteurl_l_empty424", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_allowfilesynchronizationviasoaponlyondomainnetworks", + "displayName": "Allow file synchronization via SOAP over HTTP only on domain networks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_allowfilesynchronizationviasoaponlyondomainnetworks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_allowfilesynchronizationviasoaponlyondomainnetworks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_catalogrefreshperiod", + "displayName": "Catalog Refresh Period (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_catalogrefreshperiod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_catalogrefreshperiod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_catalogrefreshperiod_l_empty601", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_disabletheofficeclientfrompolling", + "displayName": "Disable the Office client from polling the SharePoint Server for published links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_disabletheofficeclientfrompolling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_disabletheofficeclientfrompolling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_disabletheuserfromsettingthepersonalsiteurl", + "displayName": "Disable the user from setting the Personal Site URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_disabletheuserfromsettingthepersonalsiteurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_disabletheuserfromsettingthepersonalsiteurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_foldernameforpublishedlinks", + "displayName": "Folder name for Published Links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_foldernameforpublishedlinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_foldernameforpublishedlinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_foldernameforpublishedlinks_l_empty427", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_frequencyforpollingtheservertodownload", + "displayName": "Frequency for polling the server to download published links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_frequencyforpollingtheservertodownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_frequencyforpollingtheservertodownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_frequencyforpollingtheservertodownload_l_empty426", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_lengthadattributecontainingpersonalsiteurl", + "displayName": "Length AD Attribute containing Personal Site URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_lengthadattributecontainingpersonalsiteurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_lengthadattributecontainingpersonalsiteurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_lengthadattributecontainingpersonalsiteurl_l_empty425", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_turnonfilesynchronizationviasoapoverhttp", + "displayName": "Turn on file synchronization via SOAP over HTTP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_turnonfilesynchronizationviasoapoverhttp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings_l_turnonfilesynchronizationviasoapoverhttp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_enablecolleagueimportoutlookaddintowork", + "displayName": "Enable Colleague Import Outlook Add-in to work with Microsoft SharePoint Server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_enablecolleagueimportoutlookaddintowork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_enablecolleagueimportoutlookaddintowork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofdaystoscanfromtodaytodetermine", + "displayName": "Maximum number of days to scan from today to determine the user's colleagues for recommendation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofdaystoscanfromtodaytodetermine_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofdaystoscanfromtodaytodetermine_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofdaystoscanfromtodaytodetermine_l_empty429", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofitemstoscanfromtoday", + "displayName": "Maximum number of items to scan from today to determine the user's colleagues for recommendation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofitemstoscanfromtoday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofitemstoscanfromtoday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofitemstoscanfromtoday_l_empty428", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofreceipientsinanoutlookitem", + "displayName": "Maximum number of recipients in an Outlook item to scan to determine the user's colleagues for recommendation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofreceipientsinanoutlookitem_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofreceipientsinanoutlookitem_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofreceipientsinanoutlookitem_l_empty430", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows", + "displayName": "Maximum number of rows fetched per request while populating a lookup in the SharePoint list control (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows_l_empty433", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows_l_empty433_0", + "displayName": "Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows_l_empty433_1", + "displayName": "1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows_l_empty433_100", + "displayName": "100", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows_l_empty433_450", + "displayName": "450", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_maximumnumberofrows_l_empty433_5000", + "displayName": "5000", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_minimumtimebeforestartingcolleague", + "displayName": "Minimum time before starting Colleague recommendation scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_minimumtimebeforestartingcolleague_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_minimumtimebeforestartingcolleague_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_minimumtimebeforestartingcolleague_l_empty431", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_minimumtimetowaitbeforerescanning", + "displayName": "Minimum time to wait before rescanning the Outlook mailbox for new colleague recommendations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_minimumtimetowaitbeforerescanning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_minimumtimetowaitbeforerescanning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_serversettings~l_sharepointserver_l_minimumtimetowaitbeforerescanning_l_empty432", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services_l_disableofficeuserroamingsettings", + "displayName": "Disable Roaming Office User Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services_l_disableofficeuserroamingsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services_l_disableofficeuserroamingsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services~l_fax_l_disablefaxoverinternetfeature", + "displayName": "Disable Internet Fax feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services~l_fax_l_disablefaxoverinternetfeature_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services~l_fax_l_disablefaxoverinternetfeature_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services~l_fax_l_disallowcustomcoversheet", + "displayName": "Disallow custom cover sheet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services~l_fax_l_disallowcustomcoversheet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_services~l_fax_l_disallowcustomcoversheet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_enterprisetemplatespath", + "displayName": "Enterprise templates path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_enterprisetemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_enterprisetemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_enterprisetemplatespath_l_enterprisetemplatespath329", + "displayName": "Enterprise templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_setuserpathforthelabelpagesizeupdatefiles", + "displayName": "Set User path for the label page size update files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_setuserpathforthelabelpagesizeupdatefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_setuserpathforthelabelpagesizeupdatefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_setuserpathforthelabelpagesizeupdatefiles_l_setuserpathforthelabelpagesizeupdatefilesid", + "displayName": "User path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_setworkgrouppathforlabelpagesizeupdatefiles", + "displayName": "Set Workgroup path for label page size update files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_setworkgrouppathforlabelpagesizeupdatefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_setworkgrouppathforlabelpagesizeupdatefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_setworkgrouppathforlabelpagesizeupdatefiles_l_setworkgrouppathforlabelpagesizeupdatefilesid", + "displayName": "Workgroup path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_sharedthemespath", + "displayName": "Shared themes path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_sharedthemespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_sharedthemespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_sharedthemespath_l_sharedthemespath330", + "displayName": "Shared themes path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_userqueriespath", + "displayName": "User queries path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_userqueriespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_userqueriespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_userqueriespath_l_userqueriespath331", + "displayName": "User queries path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_usertemplatespath", + "displayName": "User templates path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_usertemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_usertemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_usertemplatespath_l_usertemplatespath328", + "displayName": "User templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_webquerydialoghomepage", + "displayName": "Web Query dialog box home page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_webquerydialoghomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_webquerydialoghomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_webquerydialoghomepage_l_webquerydialoghomepage333", + "displayName": "Web Query dialog box home page (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_workgroupbuildingblockspath", + "displayName": "Workgroup building blocks path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_workgroupbuildingblockspath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_workgroupbuildingblockspath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_workgroupbuildingblockspath_l_path2", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_workgrouptemplatespath", + "displayName": "Workgroup templates path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_workgrouptemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_workgrouptemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_sharedpaths_l_workgrouptemplatespath_l_workgrouptemplatespath329", + "displayName": "Workgroup templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_ekufiltering", + "displayName": "EKU filtering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_ekufiltering_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_ekufiltering_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_ekufiltering_l_empty412", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_legacyformatsignatires", + "displayName": "Legacy format signatures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_legacyformatsignatires_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_legacyformatsignatires_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_setdefaultimagedirctory", + "displayName": "Set default image directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_setdefaultimagedirctory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_setdefaultimagedirctory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_setdefaultimagedirctory_l_setdefaultimagedirctorypart", + "displayName": "Last-used signature image directory: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressexternalsigningservicesmenuitems", + "displayName": "Suppress external signature services menu item (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressexternalsigningservicesmenuitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressexternalsigningservicesmenuitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressofficesigningproviders", + "displayName": "Suppress Office Signing Providers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressofficesigningproviders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressofficesigningproviders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressofficesigningproviders_l_empty413", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressofficesigningproviders_l_empty413_0", + "displayName": "Enable Western and East Asian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressofficesigningproviders_l_empty413_1", + "displayName": "Suppress default Western", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressofficesigningproviders_l_empty413_2", + "displayName": "Suppress default East Asian", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_signing_l_supressofficesigningproviders_l_empty413_3", + "displayName": "Suppress both Western and East Asian", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_smartdocumentswordexcel_l_completelydisablethesmartdocumentsfeatureinwordandexcel", + "displayName": "Completely disable the Smart Documents feature in Word and Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_smartdocumentswordexcel_l_completelydisablethesmartdocumentsfeatureinwordandexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_smartdocumentswordexcel_l_completelydisablethesmartdocumentsfeatureinwordandexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_smartdocumentswordexcel_l_disablesmartdocumentsuseofmanifests", + "displayName": "Disable Smart Document's use of manifests (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_smartdocumentswordexcel_l_disablesmartdocumentsuseofmanifests_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_smartdocumentswordexcel_l_disablesmartdocumentsuseofmanifests_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_subscriptionactivation_l_autoorgidgetkey", + "displayName": "Automatically activate Office with federated organization credentials (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_subscriptionactivation_l_autoorgidgetkey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_subscriptionactivation_l_autoorgidgetkey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_subscriptionactivation_l_hidemanageaccountlink", + "displayName": "Do not show \"Manage Account\" link for subscription licenses. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_subscriptionactivation_l_hidemanageaccountlink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_subscriptionactivation_l_hidemanageaccountlink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_enablelogging", + "displayName": "Turn on telemetry data collection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_enablelogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_enablelogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeinventoryagentfilemetadataobfuscation", + "displayName": "Turn on privacy settings in Office Telemetry Agent (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeinventoryagentfilemetadataobfuscation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeinventoryagentfilemetadataobfuscation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeinventoryagentupload", + "displayName": "Turn on data uploading for Office Telemetry Agent (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeinventoryagentupload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeinventoryagentupload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcommonfileshare", + "displayName": "Specify the UNC path to store Office telemetry data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcommonfileshare_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcommonfileshare_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcommonfileshare_l_officeosmcommonfilesharefileshare", + "displayName": "UNC path to store Office telemetry data: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcustomtags", + "displayName": "Specify custom tags for Office telemetry data (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcustomtags_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcustomtags_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcustomtags_l_officeosmcustomtagstag1", + "displayName": "Tag 1: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcustomtags_l_officeosmcustomtagstag2", + "displayName": "Tag 2: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcustomtags_l_officeosmcustomtagstag3", + "displayName": "Tag 3: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmcustomtags_l_officeosmcustomtagstag4", + "displayName": "Tag 4: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications", + "displayName": "Office applications to exclude from Office Telemetry Agent reporting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsaccess", + "displayName": "Access-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsaccess_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsaccess_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsexcel", + "displayName": "Excel-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsexcel_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsexcel_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsonenote", + "displayName": "OneNote-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsonenote_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsonenote_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsoutlook", + "displayName": "Outlook-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsoutlook_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsoutlook_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationspowerpoint", + "displayName": "PowerPoint-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationspowerpoint_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationspowerpoint_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsproject", + "displayName": "Project-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsproject_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsproject_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationspublisher", + "displayName": "Publisher-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationspublisher_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationspublisher_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsvisio", + "displayName": "Visio-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsvisio_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsvisio_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsword", + "displayName": "Word-related solutions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsword_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedhostapplications_l_officeosmpreventedhostapplicationsword_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes", + "displayName": "Office solutions to exclude from Office Telemetry Agent reporting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesagave", + "displayName": "Web Add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesagave_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesagave_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesappaddins", + "displayName": "Application-specific add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesappaddins_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesappaddins_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypescomaddins", + "displayName": "COM add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypescomaddins_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypescomaddins_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesdocumentfiles", + "displayName": "Office document files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesdocumentfiles_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypesdocumentfiles_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypestemplatefiles", + "displayName": "Office template files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypestemplatefiles_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_telemetrydashboard_l_officeosmpreventedsolutiontypes_l_officeosmpreventedsolutiontypestemplatefiles_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_capitalizefirstletterofsentence", + "displayName": "Capitalize first letter of sentence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_capitalizefirstletterofsentence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_capitalizefirstletterofsentence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_capitalizenamesofdays", + "displayName": "Capitalize names of days (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_capitalizenamesofdays_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_capitalizenamesofdays_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_correctaccidentaluseofcapslockkey", + "displayName": "Correct accidental use of cAPS LOCK key (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_correctaccidentaluseofcapslockkey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_correctaccidentaluseofcapslockkey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_correcttwoinitialcapitals", + "displayName": "Correct TWo INitial CApitals (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_correcttwoinitialcapitals_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_correcttwoinitialcapitals_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_replacetextasyoutype", + "displayName": "Replace text as you type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_replacetextasyoutype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_replacetextasyoutype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_showautocorrectoptionsbuttons", + "displayName": "Show AutoCorrect Options buttons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_showautocorrectoptionsbuttons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess_l_showautocorrectoptionsbuttons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_checkfornewactionsurl", + "displayName": "Check for new actions URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_checkfornewactionsurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_checkfornewactionsurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_checkfornewactionsurl_l_checkfornewactionsurl231", + "displayName": "Check for new actions URL (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_enableadditionalactionsinexcel", + "displayName": "Enable additional actions in Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_enableadditionalactionsinexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_enableadditionalactionsinexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_moreactionsurl", + "displayName": "More actions URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_moreactionsurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_moreactionsurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsautocorrectoptionsexcelpowerpointandaccess~l_additionalactions_l_moreactionsurl_l_moreactionsurleditid", + "displayName": "More Actions URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_conversionservices_l_conversionservicesoptions", + "displayName": "Conversion Service Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_conversionservices_l_conversionservicesoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_conversionservices_l_conversionservicesoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_conversionservices_l_conversionservicesoptions_l_conversionservicesoptions236", + "displayName": "Conversion service options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_conversionservices_l_conversionservicesoptions_l_conversionservicesoptions236_0", + "displayName": "Do not allow to use Microsoft Conversion Service", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_conversionservices_l_conversionservicesoptions_l_conversionservicesoptions236_2", + "displayName": "Allow to use Microsoft Conversion Service", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_onlinecontentoptions", + "displayName": "Online Content Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_onlinecontentoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_onlinecontentoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_onlinecontentoptions_l_onlinecontentoptions236", + "displayName": "Online content options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_onlinecontentoptions_l_onlinecontentoptions236_0", + "displayName": "Do not allow Office to connect to the Internet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_onlinecontentoptions_l_onlinecontentoptions236_2", + "displayName": "Allow Office to connect to the Internet", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_serviceleveloptions", + "displayName": "Service Level Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_serviceleveloptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_serviceleveloptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_serviceleveloptions_l_serviceleveloptionsdropid", + "displayName": "Service Level Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_serviceleveloptions_l_serviceleveloptionsdropid_0", + "displayName": "Office services only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_serviceleveloptions_l_serviceleveloptionsdropid_1", + "displayName": "Microsoft services only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_onlinecontent_l_serviceleveloptions_l_serviceleveloptionsdropid_2", + "displayName": "All services", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_powerpointdesigner_l_powerpointdesigneroptions", + "displayName": "PowerPoint Designer Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_powerpointdesigner_l_powerpointdesigneroptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_powerpointdesigner_l_powerpointdesigneroptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_powerpointdesigner_l_powerpointdesigneroptions_l_powerpointdesigneroptionsid", + "displayName": "PowerPoint Designer options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_powerpointdesigner_l_powerpointdesigneroptions_l_powerpointdesigneroptionsid_0", + "displayName": "Disable PowerPoint Designer", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralserviceoptions~l_powerpointdesigner_l_powerpointdesigneroptions_l_powerpointdesigneroptionsid_73187", + "displayName": "Enable PowerPoint Designer", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disablehyperlinkstowebtemplatesinfilenewandtaskpanes", + "displayName": "Disable web templates in File | New and on the Office Start screen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disablehyperlinkstowebtemplatesinfilenewandtaskpanes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disablehyperlinkstowebtemplatesinfilenewandtaskpanes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disableofficetemplates", + "displayName": "Hide all Office-provided templates on the Office Start screen and in File | New (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disableofficetemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disableofficetemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disabletargetedmessaging", + "displayName": "Hide dynamic lifecycle messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disabletargetedmessaging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions_l_disabletargetedmessaging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_allowpngasanoutputformat", + "displayName": "Allow PNG as an output format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_allowpngasanoutputformat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_allowpngasanoutputformat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_relyonvmlfordisplayinggraphicsinbrowsers", + "displayName": "Rely on VML for displaying graphics in browsers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_relyonvmlfordisplayinggraphicsinbrowsers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_relyonvmlfordisplayinggraphicsinbrowsers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor", + "displayName": "Target monitor (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_pixelsperinch", + "displayName": "Pixels per inch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_pixelsperinch_72", + "displayName": "72", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_pixelsperinch_96", + "displayName": "96", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_pixelsperinch_120", + "displayName": "120", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize", + "displayName": "Screen size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_544x376", + "displayName": "544 x 376", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_640x480", + "displayName": "640 x 480", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_720x512", + "displayName": "720 x 512", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_800x600", + "displayName": "800 x 600", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_1024x768", + "displayName": "1024 x 768", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_1152x882", + "displayName": "1152 x 882", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_1152x900", + "displayName": "1152 x 900", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_1280x1024", + "displayName": "1280 x 1024", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_1600x1200", + "displayName": "1600 x 1200", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_1800x1440", + "displayName": "1800 x 1440", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_browsers_l_targetmonitor_l_screensize_1920x1200", + "displayName": "1920 x 1200", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding", + "displayName": "Default or specific encoding (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_alwayssavewebpagesinthedefaultencoding", + "displayName": "Always save Web pages in the default encoding. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_alwayssavewebpagesinthedefaultencoding_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_alwayssavewebpagesinthedefaultencoding_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas", + "displayName": "Save this document as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1256", + "displayName": "Arabic Alphabet (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_28594", + "displayName": "Baltic Alphabet (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1257", + "displayName": "Baltic Alphabet (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_852", + "displayName": "Central European (DOS)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_28592", + "displayName": "Central European Alphabet (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1250", + "displayName": "Central European Alphabet (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_936", + "displayName": "Chinese Simplified (GB2312)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_52936", + "displayName": "Chinese Simplified (HZ)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_950", + "displayName": "Chinese Traditional (Big 5)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_866", + "displayName": "Cyrillic Alphabet (DOS)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_28595", + "displayName": "Cyrillic Alphabet (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_20866", + "displayName": "Cyrillic Alphabet (KOI8-R)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1251", + "displayName": "Cyrillic Alphabet (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_28597", + "displayName": "Greek Alphabet (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1253", + "displayName": "Greek Alphabet (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1255", + "displayName": "Hebrew Alphabet (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_51932", + "displayName": "Japanese (EUC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_50220", + "displayName": "Japanese (JIS)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_50222", + "displayName": "Japanese (JIS-Allow 1 byte Kana - SO/SI)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_50221", + "displayName": "Japanese (JIS-Allow 1 byte Kana)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_932", + "displayName": "Japanese (Shift-JIS)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_949", + "displayName": "Korean", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_28593", + "displayName": "Latin 3 Alphabet (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_874", + "displayName": "Thai (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1254", + "displayName": "Turkish Alphabet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_21866", + "displayName": "Ukrainian Alphabet (KOI8-RU)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1200", + "displayName": "Universal Alphabet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1201", + "displayName": "Universal Alphabet (Big-Endian)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_65001", + "displayName": "Universal Alphabet (UTF-8)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1258", + "displayName": "Vietnamese Alphabet (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_28598", + "displayName": "Visual Hebrew (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_encoding_l_defaultorspecificencoding_l_savethisdocumentas_1252", + "displayName": "Western Alphabet (Windows)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_checkifofficeisthedefaulteditorforwebpagescreatedinoffice", + "displayName": "Check if Office is the default editor for Web pages created in Office (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_checkifofficeisthedefaulteditorforwebpagescreatedinoffice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_checkifofficeisthedefaulteditorforwebpagescreatedinoffice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_openofficedocumentdirectlyinofficeapplication", + "displayName": "Open Office document directly in Office application (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_openofficedocumentdirectlyinofficeapplication_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_openofficedocumentdirectlyinofficeapplication_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_openofficedocumentsasreadwritewhilebrowsing", + "displayName": "Open Office documents as read/write while browsing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_openofficedocumentsasreadwritewhilebrowsing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_openofficedocumentsasreadwritewhilebrowsing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_organizesupportingfilesinafolder", + "displayName": "Organize supporting files in a folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_organizesupportingfilesinafolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_organizesupportingfilesinafolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_updatelinksonsave", + "displayName": "Update links on save (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_updatelinksonsave_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_updatelinksonsave_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_uselongfilenameswheneverpossible", + "displayName": "Use long file names whenever possible (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_uselongfilenameswheneverpossible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_files_l_uselongfilenameswheneverpossible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting", + "displayName": "Rely on CSS for font formatting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting_l_checktoenforcecssonunchecktoenforcecssoff", + "displayName": "Enforce CSS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting_l_checktoenforcecssonunchecktoenforcecssoff_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting_l_checktoenforcecssonunchecktoenforcecssoff_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting_l_usethecsssettingforwordasanemaileditor", + "displayName": "CSS setting for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting_l_usethecsssettingforwordasanemaileditor_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsgeneralweboptions~l_general_l_relyoncssforfontformatting_l_usethecsssettingforwordasanemaileditor_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_allowaccenteduppercaseinfrench", + "displayName": "Allow accented uppercase in French (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_allowaccenteduppercaseinfrench_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_allowaccenteduppercaseinfrench_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_arabicmodes", + "displayName": "Arabic modes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_arabicmodes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_arabicmodes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_arabicmodes_l_empty239", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_arabicmodes_l_empty239_0", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_arabicmodes_l_empty239_1", + "displayName": "Strict initial alef hamza", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_arabicmodes_l_empty239_2", + "displayName": "Strict final yaa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_arabicmodes_l_empty239_3", + "displayName": "Both strict", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_combineauxverbadj", + "displayName": "Combine aux verb/adj. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_combineauxverbadj_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_combineauxverbadj_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_flagrepeatedwords", + "displayName": "Flag Repeated Words (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_flagrepeatedwords_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_flagrepeatedwords_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_hebrewmode", + "displayName": "Hebrew mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_hebrewmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_hebrewmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_hebrewmode_l_empty238", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_hebrewmode_l_empty238_0", + "displayName": "Full", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_hebrewmode_l_empty238_1", + "displayName": "Partial", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_hebrewmode_l_empty238_2", + "displayName": "Mixed", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_hebrewmode_l_empty238_3", + "displayName": "Mixed authorized", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignoreinternetandfileaddresses", + "displayName": "Ignore Internet and file addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignoreinternetandfileaddresses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignoreinternetandfileaddresses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignorewordsinuppercase", + "displayName": "Ignore words in UPPERCASE (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignorewordsinuppercase_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignorewordsinuppercase_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignorewordswithnumbers", + "displayName": "Ignore words with numbers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignorewordswithnumbers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_ignorewordswithnumbers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_processcompoundnouns", + "displayName": "Process compound nouns (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_processcompoundnouns_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_processcompoundnouns_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_suggestfrommaindictionaryonly", + "displayName": "Suggest from main dictionary only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_suggestfrommaindictionaryonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_suggestfrommaindictionaryonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_useautochangelist", + "displayName": "Use auto-change list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_useautochangelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_useautochangelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_usegermanpostreformruleswhenrunningspellcheck", + "displayName": "German: Use post-reform rules (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_usegermanpostreformruleswhenrunningspellcheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling_l_usegermanpostreformruleswhenrunningspellcheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling~l_proofingdatacollection_l_improveproofingtools", + "displayName": "Improve Proofing Tools (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling~l_proofingdatacollection_l_improveproofingtools_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_toolsoptionsspelling~l_proofingdatacollection_l_improveproofingtools_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_allowwebarchivestobesavedinanyhtmlencoding", + "displayName": "Allow Web Archives to be saved in any HTML encoding (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_allowwebarchivestobesavedinanyhtmlencoding_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_allowwebarchivestobesavedinanyhtmlencoding_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_defaultformatforpublish", + "displayName": "Default format for 'Publish' (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_defaultformatforpublish_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_defaultformatforpublish_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_defaultformatforpublish_l_defaultformatforpublish405", + "displayName": "Default format for 'Publish' (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_defaultformatforpublish_l_defaultformatforpublish405_2", + "displayName": "Web Archive (*.mht)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_defaultformatforpublish_l_defaultformatforpublish405_1", + "displayName": "Web Page (*.htm)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_defaultformatforpublish_l_defaultformatforpublish405_0", + "displayName": "Default", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointsaveanadditionalversionofthepresentationforolderbr", + "displayName": "PowerPoint: Save an additional version of the presentation for older browsers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointsaveanadditionalversionofthepresentationforolderbr_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointsaveanadditionalversionofthepresentationforolderbr_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointwebpageformatcompatibility", + "displayName": "PowerPoint: web page format compatibility (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointwebpageformatcompatibility_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointwebpageformatcompatibility_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointwebpageformatcompatibility_l_powerpointwebpageformatcompatibility406", + "displayName": "PowerPoint: web page format compatibility (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointwebpageformatcompatibility_l_powerpointwebpageformatcompatibility406_2", + "displayName": "All browsers", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointwebpageformatcompatibility_l_powerpointwebpageformatcompatibility406_1", + "displayName": "Windows Internet Explorer 4.0 or later", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_powerpointwebpageformatcompatibility_l_powerpointwebpageformatcompatibility406_0", + "displayName": "Based on installed browsers", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_savenewwebpagesaswebarchives", + "displayName": "Save new Web pages as Web archives (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_savenewwebpagesaswebarchives_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_savenewwebpagesaswebarchives_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_webarchiveencoding", + "displayName": "Web Archive encoding (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_webarchiveencoding_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_webarchiveencoding_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_webarchiveencoding_l_webarchiveencoding402", + "displayName": "Web Archive encoding (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_webarchiveencoding_l_webarchiveencoding402_2", + "displayName": "Use 8 bit content-transfer-encoding", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_webarchiveencoding_l_webarchiveencoding402_1", + "displayName": "Use 8 bit only for encoding text parts", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_webarchives_l_webarchiveencoding_l_webarchiveencoding402_0", + "displayName": "Use RFC-approved encoding", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationexcel", + "displayName": "Don’t show the What’s New information for Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationonenote", + "displayName": "Don’t show the What’s New information for OneNote (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationonenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationonenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationoutlook", + "displayName": "Don’t show the What’s New information for Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationpowerpoint", + "displayName": "Don’t show the What’s New information for PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationpowerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationpowerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationvisio", + "displayName": "Don’t show the What’s New information for Visio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationvisio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationvisio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationword", + "displayName": "Don’t show the What’s New information for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v2~policy~l_microsoftofficesystem~l_whatsnew_l_dontshowwhatsnewinformationword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v3.1~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableroamingmruforonpremservers", + "displayName": "Turn off roaming of on-premises file names and metadata (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v3.1~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableroamingmruforonpremservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3.1~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableroamingmruforonpremservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_collaborationsettings_l_documentchat", + "displayName": "Allow co-authors to chat within a document (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_collaborationsettings_l_documentchat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_collaborationsettings_l_documentchat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_globaloptions~l_customize_l_defaultuithemeuser", + "displayName": "Default Office theme (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_globaloptions~l_customize_l_defaultuithemeuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_globaloptions~l_customize_l_defaultuithemeuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_globaloptions~l_customize_l_defaultuithemeuser_l_defaultuithemeenum", + "displayName": "Theme: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_globaloptions~l_customize_l_defaultuithemeuser_l_defaultuithemeenum_0", + "displayName": "Colorful", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_globaloptions~l_customize_l_defaultuithemeuser_l_defaultuithemeenum_3", + "displayName": "Dark Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_globaloptions~l_customize_l_defaultuithemeuser_l_defaultuithemeenum_4", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_globaloptions~l_customize_l_defaultuithemeuser_l_defaultuithemeenum_5", + "displayName": "White", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableroamingmruforonpremservers", + "displayName": "Turn off roaming of on-premises file names and metadata (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableroamingmruforonpremservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_miscellaneous437_l_disableroamingmruforonpremservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_miscellaneous437_l_officeinsideruserexperience", + "displayName": "Show the option for Office Insider (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_miscellaneous437_l_officeinsideruserexperience_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_miscellaneous437_l_officeinsideruserexperience_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_securitysettings_l_forceruntimeavscan", + "displayName": "Force Runtime AV Scan (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_securitysettings_l_forceruntimeavscan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_securitysettings_l_forceruntimeavscan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_securitysettings_l_useofficeforlabelling", + "displayName": "Use the Sensitivity feature in Office to apply and view sensitivity labels (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_securitysettings_l_useofficeforlabelling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v3~policy~l_microsoftofficesystem~l_securitysettings_l_useofficeforlabelling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v5~policy~l_microsoftofficesystem~l_securitysettings_l_authenticationfbabehavior", + "displayName": "Control how Office handles form-based sign-in prompts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v5~policy~l_microsoftofficesystem~l_securitysettings_l_authenticationfbabehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v5~policy~l_microsoftofficesystem~l_securitysettings_l_authenticationfbabehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v5~policy~l_microsoftofficesystem~l_securitysettings_l_authenticationfbabehavior_l_authenticationfbabehaviorenum", + "displayName": "Behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v5~policy~l_microsoftofficesystem~l_securitysettings_l_authenticationfbabehavior_l_authenticationfbabehaviorenum_1", + "displayName": "Block all prompts", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v5~policy~l_microsoftofficesystem~l_securitysettings_l_authenticationfbabehavior_l_authenticationfbabehaviorenum_2", + "displayName": "Ask the user what to do for each new host", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v5~policy~l_microsoftofficesystem~l_securitysettings_l_authenticationfbabehavior_l_authenticationfbabehaviorenum_3", + "displayName": "Show prompts only from allowed hosts", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v5~policy~l_microsoftofficesystem~l_securitysettings_l_authenticationfbabehavior_l_authenticationfbaenabledhostsid", + "displayName": "Specify hosts allowed to show form-based sign-in prompts to users: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v6~policy~l_microsoftofficesystem~l_securitysettings_l_allowvbaintranetrefs", + "displayName": "Allow VBA to load typelib references by path from untrusted intranet locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v6~policy~l_microsoftofficesystem~l_securitysettings_l_allowvbaintranetrefs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v6~policy~l_microsoftofficesystem~l_securitysettings_l_allowvbaintranetrefs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v6~policy~l_microsoftofficesystem~l_securitysettings_l_disablestrictvbarefssecuritypolicy", + "displayName": "Disable additional security checks on VBA library references that may refer to unsafe locations on the local machine (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v6~policy~l_microsoftofficesystem~l_securitysettings_l_disablestrictvbarefssecuritypolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v6~policy~l_microsoftofficesystem~l_securitysettings_l_disablestrictvbarefssecuritypolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_miscellaneous437_l_personalizationhomeuseprogram", + "displayName": "Show in-product notifications for the Microsoft Home Use Program (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_miscellaneous437_l_personalizationhomeuseprogram_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_miscellaneous437_l_personalizationhomeuseprogram_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_emailcollection", + "displayName": "Allow Microsoft to follow up on feedback submitted by users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_emailcollection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_emailcollection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendsurvey", + "displayName": "Allow users to receive and respond to in-product surveys from Microsoft (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendsurvey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_sendsurvey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings_l_model3dblockedextensions", + "displayName": "Disable 3D Model File Formats List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings_l_model3dblockedextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings_l_model3dblockedextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings_l_model3dblockedextensions_l_model3dblocklist", + "displayName": "List of file extensions to block: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffcameraandmicrophoneinapplicationguard", + "displayName": "Turn off camera and microphone access for Office apps using Application Guard. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffcameraandmicrophoneinapplicationguard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffcameraandmicrophoneinapplicationguard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffclipboardaccessinapplicationguard", + "displayName": "Don't allow copy and paste from Office documents opened in Application Guard. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffclipboardaccessinapplicationguard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffclipboardaccessinapplicationguard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffhardwareaccelerationinapplicationguard", + "displayName": "Disable hardware acceleration for Office in Application Guard. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffhardwareaccelerationinapplicationguard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffhardwareaccelerationinapplicationguard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffofficeinapplicationguard", + "displayName": "Don't use Application Guard with Office. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffofficeinapplicationguard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffofficeinapplicationguard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard", + "displayName": "Restrict printing from Office of documents opened in Application Guard. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnofflocalprintinginapplicationguard", + "displayName": "Disable Local printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnofflocalprintinginapplicationguard_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnofflocalprintinginapplicationguard_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffnetworkprintinginapplicationguard", + "displayName": "Disable Network printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffnetworkprintinginapplicationguard_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffnetworkprintinginapplicationguard_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffpdfprintinginapplicationguard", + "displayName": "Disable PDF printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffpdfprintinginapplicationguard_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffpdfprintinginapplicationguard_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffxpsprintinginapplicationguard", + "displayName": "Disable XPS printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffxpsprintinginapplicationguard_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffprintsettingsinapplicationguard_l_turnoffxpsprintinginapplicationguard_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnofftrustpromotionfordocumentsinapplicationguard", + "displayName": "Prevent users from removing Application Guard protection on files. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnofftrustpromotionfordocumentsinapplicationguard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v7~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnofftrustpromotionfordocumentsinapplicationguard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_logcollection", + "displayName": "Allow users to include log files and content samples when they submit feedback to Microsoft (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_logcollection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_privacy~l_trustcenter_l_logcollection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_onlytrustvbasignaturev3", + "displayName": "Only trust VBA macros that use V3 signatures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_onlytrustvbasignaturev3_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241_l_onlytrustvbasignaturev3_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_configureprecreateinapplicationguard", + "displayName": "Configure Application Guard container precreation. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_configureprecreateinapplicationguard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_configureprecreateinapplicationguard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v8~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_configureprecreateinapplicationguard_l_setappguardprewarmwindowvalue", + "displayName": "Pre-Create Window (days): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser", + "displayName": "Show the option for the Office Update Channel experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_insiderfast", + "displayName": "Beta Channel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_insiderfast_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_insiderfast_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_insiderslow", + "displayName": "Current Channel (Preview) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_insiderslow_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_insiderslow_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_mec", + "displayName": "Monthly Enterprise Channel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_mec_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_mec_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_production", + "displayName": "Current Channel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_production_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_production_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_sae", + "displayName": "Semi-Annual Enterprise Channel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_sae_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_sae_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_saepreview", + "displayName": "Semi-Annual Enterprise Channel (Preview) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_saepreview_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_miscellaneous437_l_updatechannelselectoruser_l_uc_saepreview_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffblockingofunsupportedfiletypesinapplicationguard", + "displayName": "Turn off protection of unsupported file types in Application Guard for Office. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffblockingofunsupportedfiletypesinapplicationguard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_office16v9~policy~l_microsoftofficesystem~l_securitysettings~l_trustcenter241~l_applicationguard_l_turnoffblockingofunsupportedfiletypesinapplicationguard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites", + "displayName": "Configure team site libraries to sync automatically (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_automountteamsiteslistbox", + "displayName": "Libraries: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_automountteamsiteslistbox_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_automountteamsites_automountteamsiteslistbox_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_defaultrootdir", + "displayName": "Set the default location for the OneDrive folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_defaultrootdir_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_defaultrootdir_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_defaultrootdir_defaultrootdirlist", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_defaultrootdir_defaultrootdirlist_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_defaultrootdir_defaultrootdirlist_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablecustomroot", + "displayName": "Prevent users from changing the location of their OneDrive folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablecustomroot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablecustomroot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablecustomroot_disablecustomrootlist", + "displayName": "Change location setting: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablecustomroot_disablecustomrootlist_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablecustomroot_disablecustomrootlist_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablefretutorial", + "displayName": "Disable the tutorial that appears at the end of OneDrive Setup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablefretutorial_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablefretutorial_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepauseonbatterysaver", + "displayName": "Continue syncing when devices have battery saver mode turned on (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepauseonbatterysaver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepauseonbatterysaver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepauseonmeterednetwork", + "displayName": "Continue syncing on metered networks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepauseonmeterednetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepauseonmeterednetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepersonalsync", + "displayName": "Prevent users from syncing personal OneDrive accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepersonalsync_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_disablepersonalsync_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_downloadbandwidthlimit", + "displayName": "Limit the sync app download speed to a fixed rate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_downloadbandwidthlimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_downloadbandwidthlimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_downloadbandwidthlimit_downloadratevalue", + "displayName": "Bandwidth: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_enableallocsiclients", + "displayName": "Coauthor and share in Office desktop apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_enableallocsiclients_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_enableallocsiclients_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_enableholdthefile", + "displayName": "Allow users to choose how to handle Office file sync conflicts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_enableholdthefile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_enableholdthefile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_uploadbandwidthlimit", + "displayName": "Limit the sync app upload speed to a fixed rate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_uploadbandwidthlimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_uploadbandwidthlimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv2~policy~onedrivengsc_uploadbandwidthlimit_uploadratevalue", + "displayName": "Bandwidth: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_kfmforcewindowsdisplaylanguage", + "displayName": "Always use the user's Windows display language when provisioning known folders in OneDrive (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_kfmforcewindowsdisplaylanguage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv4~policy~onedrivengsc_kfmforcewindowsdisplaylanguage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_disablefreanimation", + "displayName": "Disable animation that appears during OneDrive Setup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_disablefreanimation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onedrivengscv6~policy~onedrivengsc_disablefreanimation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_disableinstalledonenoteaddins", + "displayName": "Disable installed OneNote Add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_disableinstalledonenoteaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_disableinstalledonenoteaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_disableonenotecomapi", + "displayName": "Disable OneNote COM API (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_disableonenotecomapi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_disableonenotecomapi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_addins_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook", + "displayName": "Choose default codec to be used for Video notebook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec", + "displayName": "Choose the Windows Media Video 8 codec: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for color pocket pcs (150 kbps)", + "displayName": "Color Pocket PCs (150 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for dial-up modems or single-channel isdn (28.8 to 56 kbps)", + "displayName": "Dial-up Modems or Single-channel ISDN (28.8 to 56 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for lan, cable modem, or xdsl (100 to 768 kbps)", + "displayName": "LAN, Cable Modem, or xDSL (100 to 768 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for dial-up modems or lan (28.8 to 100 kbps)", + "displayName": "Dial-up Modems or LAN (28.8 to 100 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for dial-up modems (28.8 kbps)", + "displayName": "Dial-up Modems (28.8 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for dial-up modems (56 kbps)", + "displayName": "Dial-up Modems (56 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for local area network (100 kbps)", + "displayName": "Local Area Network (100 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for local area network (256 kbps)", + "displayName": "Local Area Network (256 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for local area network (384 kbps)", + "displayName": "Local Area Network (384 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for broadband (ntsc, 700 kbps)", + "displayName": "Broadband (NTSC, 700 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for broadband (ntsc, 1400 kbps)", + "displayName": "Broadband (NTSC, 1400 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for broadband (pal, 384 kbps)", + "displayName": "Broadband (PAL, 384 Kbps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_choosedefaultcodectobeusedforvideonotebook_l_choosethewindowsmediavideo8codec_windows media video 8 for broadband (pal, 700 kbps)", + "displayName": "Broadband (PAL, 700 Kbps)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_disableaudosearch", + "displayName": "Disable audio search (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_disableaudosearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_disableaudosearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_disablelinkedaudiofeature", + "displayName": "Disable Linked Audio feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_disablelinkedaudiofeature_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_disablelinkedaudiofeature_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_rewindfromstartofparagraphbythefollowingnumberofseconds", + "displayName": "Rewind from start of paragraph by the following number of seconds (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_rewindfromstartofparagraphbythefollowingnumberofseconds_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_rewindfromstartofparagraphbythefollowingnumberofseconds_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_rewindfromstartofparagraphbythefollowingnumberofseconds_l_rewindfromstartofparagraphbysec", + "displayName": "Rewind from start of paragraph by: (sec) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifynumberofbitstosamplewhenrecording", + "displayName": "Specify number of bits to sample when recording (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifynumberofbitstosamplewhenrecording_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifynumberofbitstosamplewhenrecording_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifynumberofbitstosamplewhenrecording_l_bits", + "displayName": "Bits: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifynumberofchannelstorecord", + "displayName": "Specify number of channels to record (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifynumberofchannelstorecord_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifynumberofchannelstorecord_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifynumberofchannelstorecord_l_channels12", + "displayName": "Channels (1-2): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifyratetosampleaudiobitssecond", + "displayName": "Specify rate to sample audio (bits/second) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifyratetosampleaudiobitssecond_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifyratetosampleaudiobitssecond_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_audioandvideo_l_specifyratetosampleaudiobitssecond_l_bitssecond", + "displayName": "Bits/Second: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook", + "displayName": "Automatically back up my notebook... (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin", + "displayName": "Automatically back up at this interval (min): (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_1", + "displayName": "1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_2", + "displayName": "2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_3", + "displayName": "3", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_4", + "displayName": "4", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_5", + "displayName": "5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_10", + "displayName": "10", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_15", + "displayName": "15", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_30", + "displayName": "30", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_60", + "displayName": "60", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_120", + "displayName": "120", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_180", + "displayName": "180", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_240", + "displayName": "240", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_300", + "displayName": "300", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_360", + "displayName": "360", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_480", + "displayName": "480", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_720", + "displayName": "720", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_960", + "displayName": "960", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_1440", + "displayName": "1440", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_2880", + "displayName": "2880", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_4320", + "displayName": "4320", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_5760", + "displayName": "5760", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_7200", + "displayName": "7200", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_8640", + "displayName": "8640", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_10080", + "displayName": "10080", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_20160", + "displayName": "20160", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_30240", + "displayName": "30240", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_40320", + "displayName": "40320", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_50400", + "displayName": "50400", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_automaticallybackupatthisintervalmin_60480", + "displayName": "60480", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_checktoenableautomaticbackup", + "displayName": "Check to enable automatic backup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_checktoenableautomaticbackup_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_automaticallybackupmynotebook_l_checktoenableautomaticbackup_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_numberofbackupcopiestokeep", + "displayName": "Number of backup copies to keep (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_numberofbackupcopiestokeep_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_numberofbackupcopiestokeep_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_backup_l_numberofbackupcopiestokeep_l_numberofbackupcopiestokeep2", + "displayName": "Number of backup copies to keep (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_navigationbarappearsontheright", + "displayName": "Navigation bar appears on the right (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_navigationbarappearsontheright_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_navigationbarappearsontheright_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_pagetabsappearontheleft", + "displayName": "Page tabs appear on the left (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_pagetabsappearontheleft_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_pagetabsappearontheleft_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_pagetabsappearontheleft_l_specifylocationofthepagetabcontrol", + "displayName": "Specify location of the page tab control: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_pagetabsappearontheleft_l_specifylocationofthepagetabcontrol_0", + "displayName": "Right", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_pagetabsappearontheleft_l_specifylocationofthepagetabcontrol_1", + "displayName": "Left", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_shownotecontainers", + "displayName": "Show Note Containers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_shownotecontainers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_shownotecontainers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_verticalscrollbarappearsonleft", + "displayName": "Vertical scroll bar appears on left (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_verticalscrollbarappearsonleft_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_display_l_verticalscrollbarappearsonleft_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autobulletrecognition", + "displayName": "Auto Bullet Recognition (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autobulletrecognition_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autobulletrecognition_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autokeyboardswitching", + "displayName": "Auto Keyboard Switching (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autokeyboardswitching_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autokeyboardswitching_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autonumberingrecognition", + "displayName": "Auto Numbering Recognition (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autonumberingrecognition_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_autonumberingrecognition_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_defaultfontname", + "displayName": "Default Font Name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_defaultfontname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_defaultfontname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_defaultfontname_l_font", + "displayName": "Font: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_defaultfontsize", + "displayName": "Default Font Size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_defaultfontsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_defaultfontsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_defaultfontsize_l_fontsize", + "displayName": "Font Size: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_includelinktosourcewhenpastingfromtheinternet", + "displayName": "Include link to source when pasting from the Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_includelinktosourcewhenpastingfromtheinternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_includelinktosourcewhenpastingfromtheinternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_showpasteoptionsbuttons", + "displayName": "Show Paste Options buttons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_showpasteoptionsbuttons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_showpasteoptionsbuttons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_turnoffautocalculator", + "displayName": "Turn off auto calculator (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_turnoffautocalculator_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_turnoffautocalculator_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_turnofflinkcreationwith", + "displayName": "Turn off link creation with [[ ]] (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_turnofflinkcreationwith_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_turnofflinkcreationwith_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_addsignaturetoonenoteemailmessages", + "displayName": "Add signature to OneNote email messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_addsignaturetoonenoteemailmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_addsignaturetoonenoteemailmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_allowonenoteemailattachments", + "displayName": "Allow OneNote e-mail attachments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_allowonenoteemailattachments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_allowonenoteemailattachments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_attachembeddedfilestotheemail", + "displayName": "Attach embedded files to the email message as separate files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_attachembeddedfilestotheemail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_attachembeddedfilestotheemail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_usethissignatureforonenoteemail", + "displayName": "Use this signature for OneNote email (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_usethissignatureforonenoteemail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_usethissignatureforonenoteemail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_email_l_usethissignatureforonenoteemail_l_entersignaturetouseforonenoteemail", + "displayName": "Enter signature to use for OneNote e-mail (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_noteflags_l_copyitemswhenmovingthem", + "displayName": "Copy items when moving them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_noteflags_l_copyitemswhenmovingthem_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_noteflags_l_copyitemswhenmovingthem_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_noteflags_l_showdimmedtaggednotesinthetagssummarytaskpane", + "displayName": "Show dimmed tagged notes in the Tags Summary task pane (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_noteflags_l_showdimmedtaggednotesinthetagssummarytaskpane_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_noteflags_l_showdimmedtaggednotesinthetagssummarytaskpane_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_addonenoteicontonotificationarea", + "displayName": "Add OneNote icon to notification area (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_addonenoteicontonotificationarea_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_addonenoteicontonotificationarea_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote", + "displayName": "Default unit of measurement used in OneNote (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote_l_specifydefaultunitofmeasurement", + "displayName": "Specify default unit of measurement: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote_l_specifydefaultunitofmeasurement_0", + "displayName": "Inch", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote_l_specifydefaultunitofmeasurement_1", + "displayName": "Centimeter", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote_l_specifydefaultunitofmeasurement_2", + "displayName": "Millimeter", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote_l_specifydefaultunitofmeasurement_3", + "displayName": "Point", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_defaultunitofmeasurementusedinonenote_l_specifydefaultunitofmeasurement_4", + "displayName": "Pica", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableembeddedfiles", + "displayName": "Disable embedded files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableembeddedfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableembeddedfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableocr", + "displayName": "Disable OCR (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableocr_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableocr_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableonenotescreenclippingnotifications", + "displayName": "Disable OneNote screen clipping notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableonenotescreenclippingnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableonenotescreenclippingnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableonenotescreenclippings", + "displayName": "Disable OneNote Screen Clippings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableonenotescreenclippings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disableonenotescreenclippings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_embeddedfilesblockedextensions", + "displayName": "Embedded Files Blocked Extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_embeddedfilesblockedextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_embeddedfilesblockedextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_embeddedfilesblockedextensions_l_empty12", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_loadanotebookonfirstboot", + "displayName": "Load a notebook on first boot (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_loadanotebookonfirstboot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_loadanotebookonfirstboot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_loadanotebookonfirstboot_l_empty13", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_notebookpresence", + "displayName": "Notebook Presence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_notebookpresence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_notebookpresence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_numberofdaysbeforewarningthatserveris", + "displayName": "Number of days before warning that server is inaccessible (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_numberofdaysbeforewarningthatserveris_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_numberofdaysbeforewarningthatserveris_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_numberofdaysbeforewarningthatserveris_l_empty14", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_setuncintervaltopollforchangesonfileservers", + "displayName": "Set UNC interval to poll for changes on file servers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_setuncintervaltopollforchangesonfileservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_setuncintervaltopollforchangesonfileservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_setuncintervaltopollforchangesonfileservers_l_setuncintervaltopollforchangesonfileserversspinid", + "displayName": "Interval to poll the server (seconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointsyncinterval", + "displayName": "SharePoint sync interval for notebooks stored on SharePoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointsyncinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointsyncinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointsyncinterval_l_empty15", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_specifyembeddedfilesizelimit", + "displayName": "Embedded File Size Limit (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_specifyembeddedfilesizelimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_specifyembeddedfilesizelimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_specifyembeddedfilesizelimit_l_embeddedfilesizelimit", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_turnoffonenoteautolinkednotetaking", + "displayName": "Turn off OneNote auto-linked note taking (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_turnoffonenoteautolinkednotetaking_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_turnoffonenoteautolinkednotetaking_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_disablepasswordprotectedsections", + "displayName": "Disable password protected sections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_disablepasswordprotectedsections_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_disablepasswordprotectedsections_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_disallowsaddonsaccesstopass", + "displayName": "Disallows add-ons access to password protected sections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_disallowsaddonsaccesstopass_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_disallowsaddonsaccesstopass_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime", + "displayName": "Lock password protected sections after user hasn't worked on them for a time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_checktolocksections", + "displayName": "Check to lock sections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_checktolocksections_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_checktolocksections_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections", + "displayName": "Time interval (minutes) to lock password protected sections: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_1", + "displayName": "1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_5", + "displayName": "5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_10", + "displayName": "10", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_15", + "displayName": "15", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_30", + "displayName": "30", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_60", + "displayName": "60", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_120", + "displayName": "120", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_240", + "displayName": "240", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_480", + "displayName": "480", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_720", + "displayName": "720", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsafteruserhasntworkedonthemforatime_l_timeintervalminutestolockpasswordprotectedsections_1440", + "displayName": "1440", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsassoonasinavigateawayfromthem", + "displayName": "Lock password protected sections as soon as I navigate away from them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsassoonasinavigateawayfromthem_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_password_l_lockpasswordprotectedsectionsassoonasinavigateawayfromthem_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_automaticallyswitchbetweenpenandselectiontool", + "displayName": "Automatically switch between Pen and Selection Tool (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_automaticallyswitchbetweenpenandselectiontool_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_automaticallyswitchbetweenpenandselectiontool_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_createallnewpageswithrulelines", + "displayName": "Create all new pages with rule lines (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_createallnewpageswithrulelines_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_createallnewpageswithrulelines_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_disablescratchout", + "displayName": "Disable scratch out (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_disablescratchout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_disablescratchout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_showtabletpcinputpanelononenotepages", + "displayName": "Show Tablet PC Input Panel on OneNote pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_showtabletpcinputpanelononenotepages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_showtabletpcinputpanelononenotepages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_usepenpressuresensitivity", + "displayName": "Use pen pressure sensitivity (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_usepenpressuresensitivity_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_pen_l_usepenpressuresensitivity_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_enableabilitytooptimizeonenotefiles", + "displayName": "Enable ability to optimize OneNote files... (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_enableabilitytooptimizeonenotefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_enableabilitytooptimizeonenotefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_enableabilitytooptimizeonenotefiles_l_checktoenableabilitytooptimizeonenotefiles", + "displayName": "Check to enable ability to optimize OneNote files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_enableabilitytooptimizeonenotefiles_l_checktoenableabilitytooptimizeonenotefiles_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_enableabilitytooptimizeonenotefiles_l_checktoenableabilitytooptimizeonenotefiles_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_enableabilitytooptimizeonenotefiles_l_optimizeonenotefilesatthisintervalmin", + "displayName": "Optimize OneNote files at this interval (min): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_locationofbackupfolder", + "displayName": "Location of Backup Folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_locationofbackupfolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_locationofbackupfolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_locationofbackupfolder_l_backupfolder", + "displayName": "Backup Folder: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_locationofunfilednotessection", + "displayName": "Location of unfiled notes section (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_locationofunfilednotessection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_locationofunfilednotessection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_locationofunfilednotessection_l_opensidenotesinthissection", + "displayName": "Open Side Notes in this section: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_notebookroot", + "displayName": "Notebook Root (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_notebookroot_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_notebookroot_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_notebookroot_l_empty1", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_percentageofunuseddiskspacetoallowinsections", + "displayName": "Percentage of unused disk space to allow in sections (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_percentageofunuseddiskspacetoallowinsections_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_percentageofunuseddiskspacetoallowinsections_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_save_l_percentageofunuseddiskspacetoallowinsections_l_enterpercentage", + "displayName": "Enter Percentage: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_configurecngcipherchainingmode", + "displayName": "Configure CNG cipher chaining mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecbc", + "displayName": "Cipher Block Chaining (CBC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecfb", + "displayName": "Cipher Feedback (CFB)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngcipheralgorithm", + "displayName": "Set CNG cipher algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngcipheralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngcipheralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngcipheralgorithm_l_setcngcipheralgorithmid", + "displayName": "CNG cipher algorithm: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngcipherkeylength", + "displayName": "Set CNG cipher key length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngcipherkeylength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngcipherkeylength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngcipherkeylength_l_setcngcipherkeylengthspinid", + "displayName": "Cipher key length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngpasswordspincount", + "displayName": "Set CNG password spin count (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngpasswordspincount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngpasswordspincount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setcngpasswordspincount_l_setcngpasswordspincountspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setparametersforcngcontext", + "displayName": "Set parameters for CNG context (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setparametersforcngcontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setparametersforcngcontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_setparametersforcngcontext_l_setparametersforcngcontextid", + "displayName": "Parameters (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycnghashalgorithm", + "displayName": "Specify CNG hash algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycnghashalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycnghashalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha512", + "displayName": "SHA512", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm", + "displayName": "Specify CNG random number generator algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_l_specifycngrandomnumbergeneratoralgorithmid", + "displayName": "Random number generator: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycngsaltlength", + "displayName": "Specify CNG salt length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycngsaltlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycngsaltlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifycngsaltlength_l_specifycngsaltlengthspinid", + "displayName": "Number of bytes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifyencryptioncompatibility", + "displayName": "Specify encryption compatibility (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_0", + "displayName": "Use legacy format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_1", + "displayName": "Use next generation format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_2", + "displayName": "All files save with next generation format", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_sendtoonenote_l_disableoutlooksendemailtoonenoteoption", + "displayName": "Disable Outlook send email to OneNote option (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_sendtoonenote_l_disableoutlooksendemailtoonenoteoption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_sendtoonenote_l_disableoutlooksendemailtoonenoteoption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_spelling_l_onenotespellingoptions", + "displayName": "OneNote Spelling Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_spelling_l_onenotespellingoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_spelling_l_onenotespellingoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_spelling_l_onenotespellingoptions_l_empty11", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_spelling_l_onenotespellingoptions_l_empty11_0", + "displayName": "no spell checking", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_spelling_l_onenotespellingoptions_l_empty11_1", + "displayName": "check spelling as you type", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_spelling_l_onenotespellingoptions_l_empty11_2", + "displayName": "hide spelling errors", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_spelling_l_onenotespellingoptions_l_empty11_3", + "displayName": "check spelling but hide errors", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysbacktokeepinversionhistory", + "displayName": "Days back to keep in version history (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysbacktokeepinversionhistory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysbacktokeepinversionhistory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysbacktokeepinversionhistory_l_daysbacktokeepinversionhistoryspinid", + "displayName": "Days back to keep versions (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysbacktokeepitemsinrecyclebin", + "displayName": "Days back to keep items in recycle bin (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysbacktokeepitemsinrecyclebin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysbacktokeepitemsinrecyclebin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysbacktokeepitemsinrecyclebin_l_daysbacktokeepitemsinrecyclebinspinid", + "displayName": "Days back to keep items in recycle bin (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysofallversions", + "displayName": "Days all Version History items are \"safe\" from pruning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysofallversions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysofallversions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysofallversions_l_daysofallversionsspinid", + "displayName": "Days back (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysofhourlyversionsnottopruneafterdaysback", + "displayName": "Days of hourly versions not to prune after Days Back (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysofhourlyversionsnottopruneafterdaysback_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysofhourlyversionsnottopruneafterdaysback_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_daysofhourlyversionsnottopruneafterdaysback_l_daysofhourlyversionsnottopruneafterdaysbackspinid", + "displayName": "Days back (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_donotpruneversionsovertime", + "displayName": "Do not prune versions over time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_donotpruneversionsovertime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_donotpruneversionsovertime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_maximumnumberofonceperdayversionhistoryitemskept", + "displayName": "Maximum number of once-per-day version history items kept (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_maximumnumberofonceperdayversionhistoryitemskept_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_maximumnumberofonceperdayversionhistoryitemskept_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_maximumnumberofonceperdayversionhistoryitemskept_l_maximumnumberofonceperdayversionhistoryitemskeptspinid", + "displayName": "Max number of versions (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_turnoffversionsandnotebookrecyclebininsharednotebooks", + "displayName": "Turn off Versions and Notebook Recycle Bin in shared notebooks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_turnoffversionsandnotebookrecyclebininsharednotebooks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v2~policy~l_microsoftofficeonenote~l_onenoteoptions~l_versionsandrecylebin_l_turnoffversionsandnotebookrecyclebininsharednotebooks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointbackgroundsyncintervalmultiplier", + "displayName": "Multiplier for background sync interval for notebooks stored on SharePoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointbackgroundsyncintervalmultiplier_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointbackgroundsyncintervalmultiplier_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointbackgroundsyncintervalmultiplier_l_empty16", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointlivesyncintervalmultiplier", + "displayName": "Multiplier for foreground sync interval for the currently viewed section stored on SharePoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointlivesyncintervalmultiplier_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointlivesyncintervalmultiplier_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointlivesyncintervalmultiplier_l_empty17", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointpresenceintervalmultiplier", + "displayName": "Multiplier for Presence sync interval for notebooks stored on SharePoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointpresenceintervalmultiplier_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointpresenceintervalmultiplier_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v3~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_sharepointpresenceintervalmultiplier_l_empty18", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v4~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disablesupportdiagnostics", + "displayName": "Turn off support diagnostics in OneNote (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v4~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disablesupportdiagnostics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v4~policy~l_microsoftofficeonenote~l_onenoteoptions~l_other_l_disablesupportdiagnostics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_onent16v5~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_onenotetextprediction", + "displayName": "OneNote text prediction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_onent16v5~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_onenotetextprediction_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_onent16v5~policy~l_microsoftofficeonenote~l_onenoteoptions~l_editing_l_onenotetextprediction_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablepreviewplace", + "displayName": "Disable Preview Place. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablepreviewplace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablepreviewplace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v10~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disablecalendarsearchagendaview", + "displayName": "Do not allow Calendar search agenda view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v10~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disablecalendarsearchagendaview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v10~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disablecalendarsearchagendaview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_specifymaxcertlengthallowedtostamp", + "displayName": "Maximum Size Limit for certificate in Reply to Encrypted Emails cases. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_specifymaxcertlengthallowedtostamp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_specifymaxcertlengthallowedtostamp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_specifymaxcertlengthallowedtostamp_l_specifymaxcertlengthallowedtostampspinid", + "displayName": "In bytes: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_specifywaitonsendtimeoutfordlpevaluation", + "displayName": "Specify wait time to evaluate sensitive content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_specifywaitonsendtimeoutfordlpevaluation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_specifywaitonsendtimeoutfordlpevaluation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_specifywaitonsendtimeoutfordlpevaluation_l_specifywaitonsendtimeoutfordlpevaluationspinid", + "displayName": "In seconds: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hidenewoutlooktoggle", + "displayName": "Hide the “Try the new Outlook” toggle in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hidenewoutlooktoggle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v11~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hidenewoutlooktoggle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v12~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablesimplemapisendwithoutoutlook", + "displayName": "Running Outlook for Simple MAPI Mail Sending (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v12~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablesimplemapisendwithoutoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v12~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablesimplemapisendwithoutoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v13~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_showoutlookloopcomponentsforsupportedapps", + "displayName": "Show Outlook Loop components for supported apps. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v13~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_showoutlookloopcomponentsforsupportedapps_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v13~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_showoutlookloopcomponentsforsupportedapps_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v13~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_showoutlookloopcomponentsforsupportedapps_l_showoutlookloopcomponentsid", + "displayName": "Show Outlook Loop components for supported apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v13~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_showoutlookloopcomponentsforsupportedapps_l_showoutlookloopcomponentsid_1", + "displayName": "Always show automatically.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v13~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_showoutlookloopcomponentsforsupportedapps_l_showoutlookloopcomponentsid_2", + "displayName": "Only show automatically within tenant.", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v13~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_showoutlookloopcomponentsforsupportedapps_l_showoutlookloopcomponentsid_3", + "displayName": "Don’t show automatically.", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablecomtowebaddinupgrade", + "displayName": "Disable web add-in installation on migration to new Outlook for Windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablecomtowebaddinupgrade_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablecomtowebaddinupgrade_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_donewoutlookautomigration", + "displayName": "Admin-Controlled Migration to New Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_donewoutlookautomigration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_donewoutlookautomigration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_newoutlookautomigrationretryintervals", + "displayName": "Number of days \"New Outlook auto migration\" should be paused after user untoggling back to Outlook Desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_newoutlookautomigrationretryintervals_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_newoutlookautomigrationretryintervals_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v14~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_newoutlookautomigrationretryintervals_l_newoutlookautomigrationretryintervalsid", + "displayName": "New Outlook Auto Migration Retry Interval: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_mailtipsbardisplayoption", + "displayName": "MailTips bar display options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_mailtipsbardisplayoption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_mailtipsbardisplayoption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_mailtipsbardisplayoption_l_mailtipsbardisplayoptions", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_mailtipsbardisplayoption_l_mailtipsbardisplayoptions_0", + "displayName": "Display automatically when MailTips apply", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_mailtipsbardisplayoption_l_mailtipsbardisplayoptions_1", + "displayName": "Display at all times", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_mailtipsbardisplayoption_l_mailtipsbardisplayoptions_2", + "displayName": "Never display MailTips", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_smimedisabledataupload", + "displayName": "Block processing of S/MIME encrypted messages by certain connected experiences (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_smimedisabledataupload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v15~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_smimedisabledataupload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2.updates.4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventcopyingormovingitemsbetweenaccounts", + "displayName": "Prevent copying or moving items between accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2.updates.4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventcopyingormovingitemsbetweenaccounts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2.updates.4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventcopyingormovingitemsbetweenaccounts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2.updates.4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventcopyingormovingitemsbetweenaccounts_l_preventcopyingormovingitemsbetweenaccountsid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_customizableerrormessages_l_listoferrormessagestocustomize", + "displayName": "List of error messages to customize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_customizableerrormessages_l_listoferrormessagestocustomize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_customizableerrormessages_l_listoferrormessagestocustomize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize37", + "displayName": "List of error messages to customize (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize37_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize37_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_custom_l_disablecommandbar38", + "displayName": "Disable command bar buttons and menu items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_custom_l_disablecommandbar38_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_custom_l_disablecommandbar38_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_custom_l_disablecommandbar38_l_enteracommandbaridtodisable", + "displayName": "Enter a command bar ID to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys39", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys39_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys39_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys39_l_enterakeyandmodifiertodisable", + "displayName": "Enter a key and modifier to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_predefined_l_hidequickstepsgallery", + "displayName": "Disable Quick Steps Gallery (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_predefined_l_hidequickstepsgallery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_predefined_l_hidequickstepsgallery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage", + "displayName": "Calendar Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_l_showassociatedwebpage42", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_l_showassociatedwebpage42_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_l_showassociatedwebpage42_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage44", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage44_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage44_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_calendarfolderhomepage_l_urladdressofassociatedwebpage43", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage", + "displayName": "Contacts Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_l_showassociatedwebpage45", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_l_showassociatedwebpage45_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_l_showassociatedwebpage45_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage47", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage47_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage47_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_contactsfolderhomepage_l_urladdressofassociatedwebpage46", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage", + "displayName": "Deleted Items Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_l_showassociatedwebpage48", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_l_showassociatedwebpage48_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_l_showassociatedwebpage48_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage50", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage50_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage50_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_deleteditemsfolderhomepage_l_urladdressofassociatedwebpage49", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_disablefolderhomepages", + "displayName": "Do not allow Home Page URL to be set in folder Properties (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_disablefolderhomepages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_disablefolderhomepages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage", + "displayName": "Drafts Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_l_showassociatedwebpage51", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_l_showassociatedwebpage51_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_l_showassociatedwebpage51_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage53", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage53_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage53_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_draftsfolderhomepage_l_urladdressofassociatedwebpage52", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage", + "displayName": "Inbox Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_l_showassociatedwebpage40", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_l_showassociatedwebpage40_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_l_showassociatedwebpage40_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_inboxfolderhomepage_l_urladdressofassociatedwebpage41", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage", + "displayName": "Journal Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_l_showassociatedwebpage54", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_l_showassociatedwebpage54_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_l_showassociatedwebpage54_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage56", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage56_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage56_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_journalfolderhomepage_l_urladdressofassociatedwebpage55", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage", + "displayName": "Notes Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_l_showassociatedwebpage57", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_l_showassociatedwebpage57_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_l_showassociatedwebpage57_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage59", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage59_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage59_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_notesfolderhomepage_l_urladdressofassociatedwebpage58", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage", + "displayName": "Outbox Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_l_showassociatedwebpage60", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_l_showassociatedwebpage60_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_l_showassociatedwebpage60_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage62", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage62_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage62_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_outboxfolderhomepage_l_urladdressofassociatedwebpage61", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage", + "displayName": "RSS Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_l_showassociatedwebpage", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_l_showassociatedwebpage_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_l_showassociatedwebpage_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_l_turnoffinternetexplorersecuritychecks", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_l_turnoffinternetexplorersecuritychecks_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_l_turnoffinternetexplorersecuritychecks_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_rssfolderhomepage_l_urladdressofassociatedwebpage", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage", + "displayName": "Sent Items Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_l_showassociatedwebpage63", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_l_showassociatedwebpage63_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_l_showassociatedwebpage63_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage65", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage65_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage65_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_sentitemsfolderhomepage_l_urladdressofassociatedwebpage64", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage", + "displayName": "Tasks Folder Home Page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_l_showassociatedwebpage66", + "displayName": "Show associated web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_l_showassociatedwebpage66_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_l_showassociatedwebpage66_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage68", + "displayName": "Turn off Windows Internet Explorer security checks for this web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage68_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_l_turnoffinternetexplorersecuritychecksforthiswebpage68_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_folderhomepagesforoutlookspecialfolders_l_tasksfolderhomepage_l_urladdressofassociatedwebpage67", + "displayName": "URL address of associated web page: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_disableformregions", + "displayName": "Configure form regions permissions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_disableformregions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_disableformregions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_disableformregions_l_disableformregionspart", + "displayName": "Configure form regions permissions: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_disableformregions_l_disableformregionspart_0", + "displayName": "All form regions are allowed to run", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_disableformregions_l_disableformregionspart_1", + "displayName": "Allow only those registered in HKLM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_disableformregions_l_disableformregionspart_2", + "displayName": "No form regions are allowed to run", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_lockedformregions", + "displayName": "Locked form regions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_lockedformregions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_lockedformregions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_lockedformregions_l_empty76", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_lockedformregions_l_empty76_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_formregionsettings_l_lockedformregions_l_empty76_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_infopathintegration_l_disableinfopathpropertiespromotioninoutlook", + "displayName": "Do not promote InfoPath forms properties into Outlook properties (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_infopathintegration_l_disableinfopathpropertiespromotioninoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_infopathintegration_l_disableinfopathpropertiespromotioninoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_defaultserversanddataformeetingworkspaces", + "displayName": "Default servers and data for Meeting Workspaces (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_defaultserversanddataformeetingworkspaces_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_defaultserversanddataformeetingworkspaces_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_defaultserversanddataformeetingworkspaces_l_defaultserver", + "displayName": "Default server: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_disableuserentriestoserverlist", + "displayName": "Disable user entries to server list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_disableuserentriestoserverlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_disableuserentriestoserverlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_disableuserentriestoserverlist_l_checktodisableusersfromaddingentriestoserverlist", + "displayName": "Check to disable users from adding entries to server list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_disableuserentriestoserverlist_l_checktodisableusersfromaddingentriestoserverlist_1", + "displayName": "Publish default, allow others", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_meetingworkspace_l_disableuserentriestoserverlist_l_checktodisableusersfromaddingentriestoserverlist_2", + "displayName": "Publish default, disallow others", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changelimitmimebody", + "displayName": "Change the limit for the number of MIME body parts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changelimitmimebody_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changelimitmimebody_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changelimitmimebody_l_empty75", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changelimitrecipients", + "displayName": "Change the limit for the number of recipients (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changelimitrecipients_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changelimitrecipients_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changelimitrecipients_l_empty73", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitforthenumberof", + "displayName": "Change the limit for the number of nested embedded messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitforthenumberof_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitforthenumberof_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitforthenumberof_l_empty71", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitfriendlyname", + "displayName": "Change the limit for the number of characters in Friendly Name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitfriendlyname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitfriendlyname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitfriendlyname_l_empty72", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitmimeheaders", + "displayName": "Change the limit for the number of MIME headers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitmimeheaders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitmimeheaders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_mimitomapiconversion_l_changethelimitmimeheaders_l_empty74", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_addnewcategories", + "displayName": "Add new categories (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_addnewcategories_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_addnewcategories_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_addnewcategories_l_enternewcategoriessemicolondelimited", + "displayName": "Enter new categories (comma or semicolon delimited) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_allowcryptoautosave", + "displayName": "Extend Outlook Autosave to include encrypted e-mail messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_allowcryptoautosave_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_allowcryptoautosave_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disableaddinlogging", + "displayName": "Disable Windows event logging for Outlook add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disableaddinlogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disableaddinlogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disabledistributionlistexpansion", + "displayName": "Do not expand Contact Groups (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disabledistributionlistexpansion_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disabledistributionlistexpansion_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablevlvbrowsingonldapservers", + "displayName": "Disable VLV Browsing on LDAP servers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablevlvbrowsingonldapservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablevlvbrowsingonldapservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablewindowsfriendlylogonmailquery", + "displayName": "Do not show unread message count on Windows Welcome screen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablewindowsfriendlylogonmailquery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_disablewindowsfriendlylogonmailquery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_donotdownloadpermissionlicenseforirmemailduring", + "displayName": "Do not download rights permission license information for IRM e-mail during Exchange folder sync (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_donotdownloadpermissionlicenseforirmemailduring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_donotdownloadpermissionlicenseforirmemailduring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges", + "displayName": "Managing Categories during e-mail exchanges (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges_l_acceptcategoriesassignedtoincomingmailbythesender", + "displayName": "Accept Categories assigned to incoming mail by the sender (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges_l_acceptcategoriesassignedtoincomingmailbythesender_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges_l_acceptcategoriesassignedtoincomingmailbythesender_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges_l_whenreplyingtoandforwardingmailincludepersonalcategories", + "displayName": "When replying to and forwarding mail, include personal categories (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges_l_whenreplyingtoandforwardingmailincludepersonalcategories_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_managingcategoriesduringe_mailexchanges_l_whenreplyingtoandforwardingmailincludepersonalcategories_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventmapiservicesfrombeingadded", + "displayName": "Prevent MAPI services from being added (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventmapiservicesfrombeingadded_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventmapiservicesfrombeingadded_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventmapiservicesfrombeingadded_l_preventmapiservicesfrombeingaddedpart", + "displayName": "Enter MAPI services to disable (semi-colon delimited) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes", + "displayName": "Prevent users from adding e-mail account types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingeasemailaccounts", + "displayName": "Prevent users from adding Exchange ActiveSync e-mail accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingeasemailaccounts_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingeasemailaccounts_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingexchangeemailaccounts", + "displayName": "Prevent users from adding Exchange e-mail accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingexchangeemailaccounts_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingexchangeemailaccounts_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingimapemailaccounts", + "displayName": "Prevent users from adding IMAP e-mail accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingimapemailaccounts_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingimapemailaccounts_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingothertypesofemailaccounts", + "displayName": "Prevent users from adding other types of e-mail accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingothertypesofemailaccounts_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingothertypesofemailaccounts_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingpop3emailaccounts", + "displayName": "Prevent users from adding POP3 e-mail accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingpop3emailaccounts_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfromaddingemailaccounttypes_l_preventusersfromaddingpop3emailaccounts_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfrommakingchangestooutlookprofiles", + "displayName": "Prevent users from making changes to Outlook profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfrommakingchangestooutlookprofiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_preventusersfrommakingchangestooutlookprofiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_specifydelaybeforesendingpeoplesearchrequest", + "displayName": "Specify delay before sending people search request (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_specifydelaybeforesendingpeoplesearchrequest_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_specifydelaybeforesendingpeoplesearchrequest_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_specifydelaybeforesendingpeoplesearchrequest_l_specifydelaybeforesendingpeoplesearchrequestspinid", + "displayName": "in milliseconds (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_specifyoutlookpeoplesearchtimeout", + "displayName": "Set the time-out interval for Outlook people search (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_specifyoutlookpeoplesearchtimeout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_specifyoutlookpeoplesearchtimeout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_specifyoutlookpeoplesearchtimeout_l_specifyoutlookpeoplesearchtimeoutspinid", + "displayName": "in milliseconds (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_workflowtasksinoutlook", + "displayName": "Do not display \"Open this task\" button for workflow tasks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_workflowtasksinoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous_l_workflowtasksinoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_defaultlocationforostfiles", + "displayName": "Default location for OST files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_defaultlocationforostfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_defaultlocationforostfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_defaultlocationforostfiles_l_defaultlocationforostfilespart", + "displayName": "Default location for OST files (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_defaultlocationforpstfiles", + "displayName": "Default location for PST files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_defaultlocationforpstfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_defaultlocationforpstfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_defaultlocationforpstfiles_l_defaultlocationforpstfiles79", + "displayName": "Default location for PST files (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_donotsendmeetingforwardnotifications", + "displayName": "Do not send meeting forward notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_donotsendmeetingforwardnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_donotsendmeetingforwardnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_largepstabsolutemaximumsize", + "displayName": "Large PST: Absolute maximum size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_largepstabsolutemaximumsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_largepstabsolutemaximumsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_largepstabsolutemaximumsize_l_enterabsolutemaximumsizeforpstinmegabytes2", + "displayName": "(0 - 4,294,967,295 MB) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_largepstsizetodisableaddingnewcontent", + "displayName": "Large PST: Size to disable adding new content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_largepstsizetodisableaddingnewcontent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_largepstsizetodisableaddingnewcontent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_largepstsizetodisableaddingnewcontent_l_entersizetodisableaddingnewcontenttopstinmegabytes2", + "displayName": "(0 - 4,294,967,295 MB) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_legacypstabsolutemaximumsize", + "displayName": "Legacy PST: Absolute maximum size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_legacypstabsolutemaximumsize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_legacypstabsolutemaximumsize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_legacypstabsolutemaximumsize_l_enterabsolutemaximumsizeforpstinbytes2", + "displayName": "(0 - 2,075,149,312 bytes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_legacypstsizetodisableaddingnewcontent", + "displayName": "Legacy PST: Size to disable adding new content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_legacypstsizetodisableaddingnewcontent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_legacypstsizetodisableaddingnewcontent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_legacypstsizetodisableaddingnewcontent_l_entersizetodisableaddingnewcontenttopstinbytes2", + "displayName": "(0 - 2,075,149,312 Bytes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_permanentlyremovealldeleteditems", + "displayName": "Permanently remove all deleted content from PST and OST files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_permanentlyremovealldeleteditems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_permanentlyremovealldeleteditems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preferredpstmodeunicodeansi", + "displayName": "Preferred PST Mode (Unicode/ANSI) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preferredpstmodeunicodeansi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preferredpstmodeunicodeansi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preferredpstmodeunicodeansi_l_chooseadefaultformatfornewpsts", + "displayName": "Choose a default format for new PSTs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preferredpstmodeunicodeansi_l_chooseadefaultformatfornewpsts_0", + "displayName": "Prefer Unicode PST", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preferredpstmodeunicodeansi_l_chooseadefaultformatfornewpsts_1", + "displayName": "Prefer ANSI PST", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preferredpstmodeunicodeansi_l_chooseadefaultformatfornewpsts_2", + "displayName": "Enforce Unicode PST", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preferredpstmodeunicodeansi_l_chooseadefaultformatfornewpsts_3", + "displayName": "Enforce ANSI PST", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingnewcontentto", + "displayName": "Prevent users from adding new content to existing PST files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingnewcontentto_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingnewcontentto_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingpsts", + "displayName": "Prevent users from adding PSTs to Outlook profiles and/or prevent using Sharing-Exclusive PSTs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingpsts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingpsts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingpsts_l_empty78", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingpsts_l_empty78_0", + "displayName": "(default) PSTs can be added", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingpsts_l_empty78_1", + "displayName": "No PSTs can be added", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_preventusersfromaddingpsts_l_empty78_2", + "displayName": "Only Sharing-Exclusive PSTs can be added", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_pstnullfreeondelete", + "displayName": "PST Null Data on Delete (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_pstnullfreeondelete_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_pstnullfreeondelete_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_upgradeonlythedefaultstore", + "displayName": "Upgrade only the default store (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_upgradeonlythedefaultstore_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_pstsettings_l_upgradeonlythedefaultstore_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehavior", + "displayName": "Configure fast shutdown behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehavior_l_configurefastshutdownbehaviordropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehavior_l_configurefastshutdownbehaviordropid_0", + "displayName": "MAPI provider does not support", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehavior_l_configurefastshutdownbehaviordropid_1", + "displayName": "All MAPI providers support", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehavior_l_configurefastshutdownbehaviordropid_2", + "displayName": "Never", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehaviorforaddins", + "displayName": "Configure fast shutdown behavior for add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehaviorforaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_configurefastshutdownbehaviorforaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_preventshutdownifexternalreferencesexist", + "displayName": "Prevent shutdown if external references exist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_preventshutdownifexternalreferencesexist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_miscellaneous~l_shutdown_l_preventshutdownifexternalreferencesexist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions_l_internetandnetworkpathsintohyperlinks", + "displayName": "Internet and network paths into hyperlinks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions_l_internetandnetworkpathsintohyperlinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions_l_internetandnetworkpathsintohyperlinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_cacheothersmail", + "displayName": "Disable shared mail folder caching (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_cacheothersmail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_cacheothersmail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_locationofitemsdeletedbydelegates", + "displayName": "Store deleted items in owner's mailbox instead of delegate's mailbox (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_locationofitemsdeletedbydelegates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_locationofitemsdeletedbydelegates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_disablereadingpanecompose", + "displayName": "Disable Reading Pane Compose (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_disablereadingpanecompose_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_disablereadingpanecompose_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_forceselectionofaccountbeforesending", + "displayName": "Force selection of account before sending (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_forceselectionofaccountbeforesending_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_forceselectionofaccountbeforesending_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_outlookprotectionrules", + "displayName": "Outlook Protection Rules (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_outlookprotectionrules_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mail~l_composemessages_l_outlookprotectionrules_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat_l_disablesignatures", + "displayName": "Do not allow signatures for e-mail messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat_l_disablesignatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat_l_disablesignatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_autoselectencodingforoutgoingmessages", + "displayName": "Auto-select encoding for outgoing messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_autoselectencodingforoutgoingmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_autoselectencodingforoutgoingmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_disableinternationalizeddomainnamesidninoutlook", + "displayName": "Disable Internationalized Domain Names (IDN) in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_disableinternationalizeddomainnamesidninoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_disableinternationalizeddomainnamesidninoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages", + "displayName": "Encoding for outgoing messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages", + "displayName": "Use this encoding for outgoing messages: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28596", + "displayName": "Arabic (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1256", + "displayName": "Arabic (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28594", + "displayName": "Baltic (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1257", + "displayName": "Baltic (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28592", + "displayName": "Central European (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1250", + "displayName": "Central European (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_54936", + "displayName": "Chinese Simplified (GB18030)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_936", + "displayName": "Chinese Simplified (GB2312)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_52936", + "displayName": "Chinese Simplified (HZ)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_950", + "displayName": "Chinese Traditional (Big5)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28595", + "displayName": "Cyrillic (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_20866", + "displayName": "Cyrillic (KOI8-R)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_21866", + "displayName": "Cyrillic (KOI8-U)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1251", + "displayName": "Cyrillic (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28597", + "displayName": "Greek (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1253", + "displayName": "Greek (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_38598", + "displayName": "Hebrew (ISO-Logical)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1255", + "displayName": "Hebrew (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_51932", + "displayName": "Japanese (EUC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_50220", + "displayName": "Japanese (JIS)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_50221", + "displayName": "Japanese (JIS-Allow 1 byte Kana)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_932", + "displayName": "Japanese (Shift-JIS)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_949", + "displayName": "Korean", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_51949", + "displayName": "Korean (EUC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28593", + "displayName": "Latin 3 (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28605", + "displayName": "Latin 9(ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_874", + "displayName": "Thai (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28599", + "displayName": "Turkish (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1254", + "displayName": "Turkish (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_65000", + "displayName": "Unicode (UTF-7)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_65001", + "displayName": "Unicode (UTF-8)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_20127", + "displayName": "US-ASCII", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_50000", + "displayName": "User Defined", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1258", + "displayName": "Vietnamese (Windows)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_28591", + "displayName": "Western European (ISO)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_encodingforoutgoingmessages_l_usethisencodingforoutgoingmessages_1252", + "displayName": "Western European (Windows)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags", + "displayName": "English message headers and flags (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags_l_useenglishformessageflags", + "displayName": "Use English for message flags (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags_l_useenglishformessageflags_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags_l_useenglishformessageflags_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags_l_useenglishformessageheadersonrepliesorforwards", + "displayName": "Use English for message headers on replies or forwards (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags_l_useenglishformessageheadersonrepliesorforwards_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_englishmessageheadersandflags_l_useenglishformessageheadersonrepliesorforwards_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_euroencodingforoutgoingmessages", + "displayName": "Euro encoding for outgoing messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_euroencodingforoutgoingmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_euroencodingforoutgoingmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_euroencodingforoutgoingmessages_l_whenpreferredencodingdoesnotsupporteuro2", + "displayName": "Auto-select should: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_euroencodingforoutgoingmessages_l_whenpreferredencodingdoesnotsupporteuro2_0", + "displayName": "Send messages as UTF 8", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internationaloptions_l_euroencodingforoutgoingmessages_l_whenpreferredencodingdoesnotsupporteuro2_1", + "displayName": "ignore euro", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_outlookrichtextoptions", + "displayName": "Outlook Rich Text options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_outlookrichtextoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_outlookrichtextoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_outlookrichtextoptions_l_whensendingoutlookrichtextmessagestointernetrecipients2", + "displayName": "Use this format: (User)", + "options": { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_outlookrichtextoptions_l_whensendingoutlookrichtextmessagestointernetrecipients2_1", + "displayName": "Convert to Plain Text format", + "description": null + } + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_plaintextoptions", + "displayName": "Plain text options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_plaintextoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_plaintextoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_plaintextoptions_l_automaticallywraptextatxcharacters", + "displayName": "Automatically wrap text at characters. (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_plaintextoptions_l_encodeattachmentsinuuencodeformatwhensending1", + "displayName": "Encode attachments in UUENCODE format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_plaintextoptions_l_encodeattachmentsinuuencodeformatwhensending1_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting_l_plaintextoptions_l_encodeattachmentsinuuencodeformatwhensending1_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting~l_messageformat_l_messageformateditor", + "displayName": "Set message format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting~l_messageformat_l_messageformateditor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting~l_messageformat_l_messageformateditor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting~l_messageformat_l_messageformateditor_l_usethefollowingformateditorforemailmessages", + "displayName": "Use the following format for e-mail messages: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting~l_messageformat_l_messageformateditor_l_usethefollowingformateditorforemailmessages_131072", + "displayName": "HTML", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting~l_messageformat_l_messageformateditor_l_usethefollowingformateditorforemailmessages_196608", + "displayName": "Rich Text", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_internetformatting~l_messageformat_l_messageformateditor_l_usethefollowingformateditorforemailmessages_65536", + "displayName": "Plain Text", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_stationeryandfonts_l_stationeryfonts", + "displayName": "Stationery Fonts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_stationeryandfonts_l_stationeryfonts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_stationeryandfonts_l_stationeryfonts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_stationeryandfonts_l_stationeryfonts_l_stationeryfontoptions", + "displayName": "Stationery font options: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_stationeryandfonts_l_stationeryfonts_l_stationeryfontoptions_0", + "displayName": "Use theme's font", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_stationeryandfonts_l_stationeryfonts_l_stationeryfontoptions_1", + "displayName": "Use user's font on replies and forwards", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailformat~l_stationeryandfonts_l_stationeryfonts_l_stationeryfontoptions_2", + "displayName": "Always use user's fonts", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailsetup_l_mailaccountoptions", + "displayName": "Mail account options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailsetup_l_mailaccountoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_mailsetup_l_mailaccountoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_optionscustomizeribbon_l_displaydevelopertab", + "displayName": "Display Developer tab in the Ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_optionscustomizeribbon_l_displaydevelopertab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_optionscustomizeribbon_l_displaydevelopertab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_allowselectionfloaties", + "displayName": "Show Mini Toolbar on selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_allowselectionfloaties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_allowselectionfloaties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableonlinemodeauthdiagnostics", + "displayName": "Disable online mode for Get Diagnostics. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableonlinemodeauthdiagnostics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableonlinemodeauthdiagnostics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablepreviewplace", + "displayName": "Disable Preview Place. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablepreviewplace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablepreviewplace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablereadingpane", + "displayName": "Do not display the reading pane (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablereadingpane_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablereadingpane_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_donotdownloadphotosfromtheactivedirectory", + "displayName": "Do not download photos from the Active Directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_donotdownloadphotosfromtheactivedirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_donotdownloadphotosfromtheactivedirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_emptydeleteditemsfolder", + "displayName": "Empty the Deleted Items folder when Outlook closes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_emptydeleteditemsfolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_emptydeleteditemsfolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hideappsstorebuttoninhometabribbon", + "displayName": "Hide the Office Store button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hideappsstorebuttoninhometabribbon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hideappsstorebuttoninhometabribbon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hidephotolink", + "displayName": "Hide photo link (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hidephotolink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_hidephotolink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_makeoutlookthedefaultprogramforemailcontactsandcalendar", + "displayName": "Make Outlook the default program for E-mail, Contacts, and Calendar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_makeoutlookthedefaultprogramforemailcontactsandcalendar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_makeoutlookthedefaultprogramforemailcontactsandcalendar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane", + "displayName": "Reading Pane (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_markitemasreadwhenselectionchanges", + "displayName": "Mark item as read when selection changes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_markitemasreadwhenselectionchanges_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_markitemasreadwhenselectionchanges_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_markmessagesasreadinreadingwindow", + "displayName": "Mark messages as read in reading window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_markmessagesasreadinreadingwindow_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_markmessagesasreadinreadingwindow_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_singlekeyreadingusingspacebar", + "displayName": "Single key reading using spacebar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_singlekeyreadingusingspacebar_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_singlekeyreadingusingspacebar_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_readingpane_l_waitxxxsecondsbeforemarkingitemsasread", + "displayName": "Wait xxx seconds before marking items as read: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_sortfoldersalphabetically", + "displayName": "Sort folders alphabetically (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_sortfoldersalphabetically_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_sortfoldersalphabetically_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disablefolderhomepagesforfoldersinnondefaultstores", + "displayName": "Do not allow folders in non-default stores to be set as folder home pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disablefolderhomepagesforfoldersinnondefaultstores_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disablefolderhomepagesforfoldersinnondefaultstores_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscripts", + "displayName": "Do not allow Outlook object model scripts to run for shared folders (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscripts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscripts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscripts_v2", + "displayName": "Do not allow Outlook object model scripts to run for shared folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscripts_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscripts_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscriptsforpublicfolders", + "displayName": "Do not allow Outlook object model scripts to run for public folders (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscriptsforpublicfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscriptsforpublicfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscriptsforpublicfolders_v2", + "displayName": "Do not allow Outlook object model scripts to run for public folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscriptsforpublicfolders_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_disableoutlookobjectmodelscriptsforpublicfolders_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_enablemailloggingtroubleshooting", + "displayName": "Enable mail logging (troubleshooting) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_enablemailloggingtroubleshooting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_enablemailloggingtroubleshooting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_minimizeoutlooktothesystemtray", + "displayName": "Minimize Outlook to the system tray (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_minimizeoutlooktothesystemtray_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_minimizeoutlooktothesystemtray_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_moreoptions", + "displayName": "Warn before permanently deleting items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_moreoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_moreoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_msgunicodeformatwhendraggingtofilesystem", + "displayName": "Use Unicode format when dragging e-mail message to file system (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_msgunicodeformatwhendraggingtofilesystem_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_msgunicodeformatwhendraggingtofilesystem_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_msgunicodeformatwhendraggingtofilesystem_v2", + "displayName": "Use Unicode format when dragging e-mail message to file system (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_msgunicodeformatwhendraggingtofilesystem_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_msgunicodeformatwhendraggingtofilesystem_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_preventsavingsyncconflicts", + "displayName": "Prevent saving sync conflicts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_preventsavingsyncconflicts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_preventsavingsyncconflicts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_savecalendarconflicts", + "displayName": "Save calendar sync conflicts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_savecalendarconflicts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_savecalendarconflicts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_saverssconflicts", + "displayName": "Save RSS conflicts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_saverssconflicts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_saverssconflicts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_turnonloggingforallconflicts", + "displayName": "Turn on logging for all conflicts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_turnonloggingforallconflicts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_turnonloggingforallconflicts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_turnonloggingforallconflicts_l_turnonloggingforallconflictsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_turnonloggingforallconflicts_l_turnonloggingforallconflictsdropid_0", + "displayName": "No conflicts are logged (default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_turnonloggingforallconflicts_l_turnonloggingforallconflictsdropid_1", + "displayName": "All conflicts logged", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced_l_turnonloggingforallconflicts_l_turnonloggingforallconflictsdropid_2", + "displayName": "Unresolved conflicts logged only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders", + "displayName": "Reminders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders_l_displaythereminder", + "displayName": "Display the reminder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders_l_displaythereminder_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders_l_displaythereminder_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders_l_playremindersound", + "displayName": "Play reminder sound (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders_l_playremindersound_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_advanced~l_reminderoptions_l_reminders_l_playremindersound_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_archiveignorelastmodifiedtime", + "displayName": "Change the criteria that Outlook uses to archive different item types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_archiveignorelastmodifiedtime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_archiveignorelastmodifiedtime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings", + "displayName": "AutoArchive Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_archiveordeleteolditems", + "displayName": "Archive or delete old items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_archiveordeleteolditems_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_archiveordeleteolditems_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_cleanoutitemsolderthan", + "displayName": "Clean out items older than (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_deleteexpireditemsemailfoldersonly", + "displayName": "Delete expired items (e-mail folders only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_deleteexpireditemsemailfoldersonly_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_deleteexpireditemsemailfoldersonly_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_empty19", + "displayName": "\r\nDuring AutoArchive:\r\n", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_empty19_0", + "displayName": "Months", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_empty19_1", + "displayName": "Weeks", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_empty19_2", + "displayName": "Days", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_permanentlydeleteolditems", + "displayName": "Permanently delete old items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_permanentlydeleteolditems_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_permanentlydeleteolditems_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_promptbeforeautoarchiveruns", + "displayName": "Prompt before AutoArchive runs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_promptbeforeautoarchiveruns_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_promptbeforeautoarchiveruns_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_runautoarchiveeveryxdays", + "displayName": "Run AutoArchive every days (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_showarchivefolderinfolderlist", + "displayName": "Show archive folder in folder list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_showarchivefolderinfolderlist_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_showarchivefolderinfolderlist_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_turnonautoarchive", + "displayName": "Turn on AutoArchive (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_turnonautoarchive_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_autoarchivesettings_l_turnonautoarchive_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_disablefilearchive", + "displayName": "Disable File|Archive (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_disablefilearchive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other~l_autoarchive_l_disablefilearchive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice", + "displayName": "Polling Out-of-office Web service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_300000", + "displayName": "5 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_600000", + "displayName": "10 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_900000", + "displayName": "15 minutes (default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_1200000", + "displayName": "20 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_1500000", + "displayName": "25 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_1800000", + "displayName": "30 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_2100000", + "displayName": "35 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_2400000", + "displayName": "40 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_2700000", + "displayName": "45 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_3000000", + "displayName": "50 minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_3600000", + "displayName": "1 hour", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_7200000", + "displayName": "2 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_14400000", + "displayName": "4 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_28800000", + "displayName": "8 hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_outofofficeassistant_l_pollingoofwebsrvice_l_empty21_86400000", + "displayName": "24 hours", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_allowattendeestoproposenewtimesformeetingsyouorganize", + "displayName": "Allow attendees to propose new times for meetings you organize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_allowattendeestoproposenewtimesformeetingsyouorganize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_allowattendeestoproposenewtimesformeetingsyouorganize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_calendaritemdefaults", + "displayName": "Calendar item defaults (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_calendaritemdefaults_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_calendaritemdefaults_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_calendaritemdefaults_l_showremindersxminutesbeforetheeventstarts", + "displayName": "Show reminders minutes before the event starts: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_calendarweeknumbers", + "displayName": "Calendar week numbers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_calendarweeknumbers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_calendarweeknumbers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_controlcalendarsharing", + "displayName": "Control Calendar Sharing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_controlcalendarsharing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_controlcalendarsharing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_controlcalendarsharing_l_controlcalendarsharing5", + "displayName": "Control Calendar Sharing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_controlcalendarsharing_l_controlcalendarsharing5_32768", + "displayName": "Prevent Calendar Sharing", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_controlcalendarsharing_l_controlcalendarsharing5_16384", + "displayName": "Allow calendar sharing with 'Availability Only' detail level", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_controlcalendarsharing_l_controlcalendarsharing5_8192", + "displayName": "Allow calendar sharing with 'Availability Only' and 'Limited Details' detail level", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disablemeetingregeneration", + "displayName": "Do not regenerate meetings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disablemeetingregeneration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disablemeetingregeneration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disableweather", + "displayName": "Disable Weather Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disableweather_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_disableweather_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_enableendearly", + "displayName": "End appointments and meetings early (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_enableendearly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_enableendearly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_enablemeetingdownleveltext", + "displayName": "Enable down-level meeting text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_enablemeetingdownleveltext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_enablemeetingdownleveltext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_endearlylong", + "displayName": "Reduce the end time of long appointments and meetings by a specified number of minutes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_endearlylong_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_endearlylong_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_endearlylong_l_endearlylongspinid", + "displayName": "Minutes to reduce meetings by: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_endearlyshort", + "displayName": "Reduce the end time of short appointments and meetings by a specified number of minutes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_endearlyshort_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_endearlyshort_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_endearlyshort_l_endearlyshortspinid", + "displayName": "Minutes to reduce meetings by: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek", + "displayName": "First day of the week (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_l_choosethefirstdayoftheweek", + "displayName": "Choose the first day of the week: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_l_choosethefirstdayoftheweek_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_l_choosethefirstdayoftheweek_1", + "displayName": "Monday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_l_choosethefirstdayoftheweek_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_l_choosethefirstdayoftheweek_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_l_choosethefirstdayoftheweek_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_l_choosethefirstdayoftheweek_5", + "displayName": "Friday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstdayoftheweek_l_choosethefirstdayoftheweek_6", + "displayName": "Saturday", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstweekofyear", + "displayName": "First week of year (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstweekofyear_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstweekofyear_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstweekofyear_l_choosethefirstweekoftheyear", + "displayName": "Choose the first week of the year: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstweekofyear_l_choosethefirstweekoftheyear_0", + "displayName": "Starts on Jan. 1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstweekofyear_l_choosethefirstweekoftheyear_2", + "displayName": "First full week", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_firstweekofyear_l_choosethefirstweekoftheyear_1", + "displayName": "First four-day week", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_hideluckydayswhenusingrokuyoujapanesecalendar", + "displayName": "Hide lucky days when using Rokuyou (Japanese) calendar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_hideluckydayswhenusingrokuyoujapanesecalendar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_hideluckydayswhenusingrokuyoujapanesecalendar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_hidesendlatestversionbutton", + "displayName": "Hide Send Latest Version button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_hidesendlatestversionbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_hidesendlatestversionbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_includeappointmentsonlywithinworkinghours", + "displayName": "Include appointments only within working hours (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_includeappointmentsonlywithinworkinghours_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_includeappointmentsonlywithinworkinghours_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_meetingrequestsusingicalendar", + "displayName": "Send Internet meeting requests using iCalendar format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_meetingrequestsusingicalendar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_meetingrequestsusingicalendar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_remindersoncalendaritems", + "displayName": "Do not display reminders on Calendar items by default (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_remindersoncalendaritems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_remindersoncalendaritems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_restupdatesforcalendar", + "displayName": "REST updates for calendars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_restupdatesforcalendar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_restupdatesforcalendar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_usethisresponsewhenyouproposenewmeetingtimes", + "displayName": "Use this response when you propose new meeting times (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_usethisresponsewhenyouproposenewmeetingtimes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_usethisresponsewhenyouproposenewmeetingtimes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_usethisresponsewhenyouproposenewmeetingtimes_l_usethisresponsewhenyouproposenewmeetingtimes6", + "displayName": "Use this response when you propose new meeting times (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_usethisresponsewhenyouproposenewmeetingtimes_l_usethisresponsewhenyouproposenewmeetingtimes6_2", + "displayName": "Tentative", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_usethisresponsewhenyouproposenewmeetingtimes_l_usethisresponsewhenyouproposenewmeetingtimes6_3", + "displayName": "Accept", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_usethisresponsewhenyouproposenewmeetingtimes_l_usethisresponsewhenyouproposenewmeetingtimes6_4", + "displayName": "Decline", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_weatherserviceurl", + "displayName": "Weather Service URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_weatherserviceurl_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_weatherserviceurl_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_weatherserviceurl_l_empty", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_weatherupdatefrequency", + "displayName": "Weather Bar Update Frequency (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_weatherupdatefrequency_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_weatherupdatefrequency_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_weatherupdatefrequency_l_weatherupdatefrequencyintervalspinid", + "displayName": "Update frequency (in minutes): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours", + "displayName": "Working hours (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime", + "displayName": "End Time: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1020", + "displayName": "5:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_0", + "displayName": "12:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_30", + "displayName": "12:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_60", + "displayName": "1:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_90", + "displayName": "1:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_120", + "displayName": "2:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_150", + "displayName": "2:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_180", + "displayName": "3:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_210", + "displayName": "3:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_240", + "displayName": "4:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_270", + "displayName": "4:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_300", + "displayName": "5:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_330", + "displayName": "5:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_360", + "displayName": "6:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_390", + "displayName": "6:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_420", + "displayName": "7:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_450", + "displayName": "7:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_480", + "displayName": "8:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_510", + "displayName": "8:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_540", + "displayName": "9:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_570", + "displayName": "9:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_600", + "displayName": "10:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_630", + "displayName": "10:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_660", + "displayName": "11:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_690", + "displayName": "11:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_720", + "displayName": "12:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_750", + "displayName": "12:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_780", + "displayName": "1:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_810", + "displayName": "1:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_840", + "displayName": "2:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_870", + "displayName": "2:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_900", + "displayName": "3:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_930", + "displayName": "3:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_960", + "displayName": "4:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_990", + "displayName": "4:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1050", + "displayName": "5:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1080", + "displayName": "6:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1110", + "displayName": "6:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1140", + "displayName": "7:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1170", + "displayName": "7:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1200", + "displayName": "8:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1230", + "displayName": "8:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1260", + "displayName": "9:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1290", + "displayName": "9:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1320", + "displayName": "10:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1350", + "displayName": "10:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1380", + "displayName": "11:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_endtime_1410", + "displayName": "11:30 PM", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime", + "displayName": "Start time: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_480", + "displayName": "8:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_0", + "displayName": "12:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_30", + "displayName": "12:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_60", + "displayName": "1:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_90", + "displayName": "1:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_120", + "displayName": "2:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_150", + "displayName": "2:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_180", + "displayName": "3:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_210", + "displayName": "3:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_240", + "displayName": "4:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_270", + "displayName": "4:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_300", + "displayName": "5:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_330", + "displayName": "5:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_360", + "displayName": "6:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_390", + "displayName": "6:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_420", + "displayName": "7:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_450", + "displayName": "7:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_510", + "displayName": "8:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_540", + "displayName": "9:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_570", + "displayName": "9:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_600", + "displayName": "10:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_630", + "displayName": "10:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_660", + "displayName": "11:00 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_690", + "displayName": "11:30 AM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_720", + "displayName": "12:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_750", + "displayName": "12:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_780", + "displayName": "1:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_810", + "displayName": "1:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_840", + "displayName": "2:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_870", + "displayName": "2:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_900", + "displayName": "3:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_930", + "displayName": "3:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_960", + "displayName": "4:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_990", + "displayName": "4:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1020", + "displayName": "5:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1050", + "displayName": "5:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1080", + "displayName": "6:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1110", + "displayName": "6:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1140", + "displayName": "7:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1170", + "displayName": "7:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1200", + "displayName": "8:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1230", + "displayName": "8:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1260", + "displayName": "9:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1290", + "displayName": "9:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1320", + "displayName": "10:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1350", + "displayName": "10:30 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1380", + "displayName": "11:00 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workinghours_l_starttime_1410", + "displayName": "11:30 PM", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek", + "displayName": "Work week (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek", + "displayName": "Length of work week: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek_124", + "displayName": "Monday to Friday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek_120", + "displayName": "Monday to Thursday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek_60", + "displayName": "Tuesday to Friday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek_126", + "displayName": "Monday to Saturday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek_30", + "displayName": "Wednesday to Saturday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek_142", + "displayName": "Thursday to Sunday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek_252", + "displayName": "Sunday to Friday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_workweek_l_lengthofworkweek_254", + "displayName": "All seven days", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_internetfreebusyoptions", + "displayName": "Internet Free/Busy Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_internetfreebusyoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_internetfreebusyoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_internetfreebusyoptions_l_publishatthisurl", + "displayName": "Publish at this URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_internetfreebusyoptions_l_publishfreebusyinformation", + "displayName": "Publish free/busy information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_internetfreebusyoptions_l_publishfreebusyinformation_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_internetfreebusyoptions_l_publishfreebusyinformation_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_internetfreebusyoptions_l_searchatthisurl", + "displayName": "Search at this URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_options9", + "displayName": "Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_options9_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_options9_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_options9_l_freebusyupdatedontheservereveryxxxseconds", + "displayName": "Free/Busy updated on the server every xxx seconds: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_options9_l_monthsoffreebusyinformationpublished", + "displayName": "Months of Free/Busy information published: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_options9_l_preventusersfromchangingmonthsoffreebusyinformation1", + "displayName": "Prevent users from changing Months of Free/Busy information being published (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_options9_l_preventusersfromchangingmonthsoffreebusyinformation1_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_freebusyoptions_l_options9_l_preventusersfromchangingmonthsoffreebusyinformation1_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_accesstopublishedcalendars", + "displayName": "Access to published calendars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_accesstopublishedcalendars_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_accesstopublishedcalendars_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_pathtodavserver", + "displayName": "Path to DAV server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_pathtodavserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_pathtodavserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_pathtodavserver_l_empty", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_preventpublishingtoadavserver", + "displayName": "Prevent publishing to a DAV server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_preventpublishingtoadavserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_preventpublishingtoadavserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_preventpublishingtoofficeonline", + "displayName": "Prevent publishing to Office.com (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_preventpublishingtoofficeonline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_preventpublishingtoofficeonline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_publishinterval", + "displayName": "Publish interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_publishinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_publishinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictlevelofcalendardetails", + "displayName": "Restrict level of calendar details users can publish (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictlevelofcalendardetails_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictlevelofcalendardetails_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictlevelofcalendardetails_l_empty4", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictlevelofcalendardetails_l_empty4_0", + "displayName": "All options are available", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictlevelofcalendardetails_l_empty4_8192", + "displayName": "Disables 'Full details'", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictlevelofcalendardetails_l_empty4_16384", + "displayName": "Disables 'Full details' and 'Limited details'", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictuploadmethod", + "displayName": "Restrict upload method (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictuploadmethod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_microsoftofficeonlinesharing_l_restrictuploadmethod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner", + "displayName": "Meeting Planner (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner_l_showcalendardetailsinthegrid", + "displayName": "Show calendar details in the grid (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner_l_showcalendardetailsinthegrid_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner_l_showcalendardetailsinthegrid_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner_l_showpopupcalendardetails", + "displayName": "Show popup calendar details (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner_l_showpopupcalendardetails_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_planneroptions_l_meetingplanner_l_showpopupcalendardetails_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_recurrenceoptions_l_defaultrecurrenceduration", + "displayName": "Specify total number of days in a recurring meeting or appointment (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_recurrenceoptions_l_defaultrecurrenceduration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_recurrenceoptions_l_defaultrecurrenceduration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_recurrenceoptions_l_defaultrecurrenceduration_l_defaultrecurrencedurationspinid", + "displayName": "End recurrence after x days (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_recurrenceoptions_l_disablenoenddate", + "displayName": "Disable the \"No end date\" option for recurring items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_recurrenceoptions_l_disablenoenddate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_recurrenceoptions_l_disablenoenddate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_donotallowhorizontalcalendarview", + "displayName": "Do not allow horizontal calendar view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_donotallowhorizontalcalendarview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_donotallowhorizontalcalendarview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventmydepartmentcalendarfromappearing", + "displayName": "Prevent My Department Calendar from appearing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventmydepartmentcalendarfromappearing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventmydepartmentcalendarfromappearing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventotherdepartmentcalendarfromappearing", + "displayName": "Prevent Other Department Calendar from appearing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventotherdepartmentcalendarfromappearing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventotherdepartmentcalendarfromappearing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventreportinglinegroupcalendarfromappearing", + "displayName": "Prevent Reporting Line Group Calendar from appearing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventreportinglinegroupcalendarfromappearing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_preventreportinglinegroupcalendarfromappearing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffautoswitchingfromhorizontaltovertical", + "displayName": "Turn off auto-switching from horizontal to vertical layout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffautoswitchingfromhorizontaltovertical_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffautoswitchingfromhorizontaltovertical_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffautoswitchingfromverticaltohorizontallayout", + "displayName": "Turn off auto-switching from vertical to horizontal layout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffautoswitchingfromverticaltohorizontallayout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffautoswitchingfromverticaltohorizontallayout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnofflegacygroupcalendarmigration", + "displayName": "Turn off Legacy Group Calendar migration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnofflegacygroupcalendarmigration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnofflegacygroupcalendarmigration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffsharingrecommendation", + "displayName": "Turn off sharing recommendation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffsharingrecommendation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions~l_scheduleview_l_turnoffsharingrecommendation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_determineorderofsourcesforphotos", + "displayName": "Determine order of sources for photos (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_determineorderofsourcesforphotos_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_determineorderofsourcesforphotos_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts", + "displayName": "Select the default setting for how to file new contacts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_additionalcontactsindex", + "displayName": "Additional Contacts Index: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_additionalcontactsindex_2", + "displayName": "Arabic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_additionalcontactsindex_7", + "displayName": "Cyrillic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_additionalcontactsindex_15", + "displayName": "Greek", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_additionalcontactsindex_16", + "displayName": "Hebrew", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_additionalcontactsindex_28", + "displayName": "Thai", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_additionalcontactsindex_30", + "displayName": "Vietnamese", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_checkforduplicatecontacts", + "displayName": "Check for duplicate contacts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_checkforduplicatecontacts_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_checkforduplicatecontacts_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfileasorder", + "displayName": "Default File As order: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfileasorder_32791", + "displayName": "Last First", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfileasorder_32823", + "displayName": "First Last", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfileasorder_14870", + "displayName": "Company", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfileasorder_32793", + "displayName": "Last, First (Company)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfileasorder_32792", + "displayName": "Company (Last, First)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfullnameorder", + "displayName": "Default Full Name order: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfullnameorder_e", + "displayName": "First (Middle) Last", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfullnameorder_h", + "displayName": "Last First", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_defaultfullnameorder_s", + "displayName": "First Last1 Last2", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_showanadditionalcontactsindex", + "displayName": "Show an additional Contacts Index (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_showanadditionalcontactsindex_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_selectthedefaultsettingforhowtofilenewcontacts_l_showanadditionalcontactsindex_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_showcontactslinkingcontrolsonallforms", + "displayName": "Show Contacts linking controls on all Forms (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_showcontactslinkingcontrolsonallforms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_contactoptions_l_showcontactslinkingcontrolsonallforms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_changectrlentershortcutbehavior", + "displayName": "Change CTRL+ENTER shortcut behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_changectrlentershortcutbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_changectrlentershortcutbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_changectrlentershortcutbehavior_l_changectrlentershortcutbehaviorid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_changectrlentershortcutbehavior_l_changectrlentershortcutbehaviorid_0", + "displayName": "CTRL+Enter is not a shortcut for sending a message", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_changectrlentershortcutbehavior_l_changectrlentershortcutbehaviorid_1", + "displayName": "CTRL+Enter is a shortcut for sending a message", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_changectrlentershortcutbehavior_l_changectrlentershortcutbehaviorid_2", + "displayName": "CTRL+Enter displays a prompt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_checkforgottenattachments", + "displayName": "Attachment Reminder Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_checkforgottenattachments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_checkforgottenattachments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_configurecrossfoldercontentinconversationview", + "displayName": "Configure Cross Folder Content in conversation view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_configurecrossfoldercontentinconversationview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_configurecrossfoldercontentinconversationview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_configurecrossfoldercontentinconversationview_l_configurecrossfoldercontentinconversationviewdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_configurecrossfoldercontentinconversationview_l_configurecrossfoldercontentinconversationviewdropid_0", + "displayName": "On and cross-store (default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_configurecrossfoldercontentinconversationview_l_configurecrossfoldercontentinconversationviewdropid_1", + "displayName": "Off", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_configurecrossfoldercontentinconversationview_l_configurecrossfoldercontentinconversationviewdropid_2", + "displayName": "On and current", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_configurecrossfoldercontentinconversationview_l_configurecrossfoldercontentinconversationviewdropid_3", + "displayName": "On and local", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_disableattachmentpreviewing", + "displayName": "Do not allow attachment previewing in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_disableattachmentpreviewing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_disableattachmentpreviewing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_disablemailtips", + "displayName": "Disable Mail Tips (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_disablemailtips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_disablemailtips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_displaysenderpicture", + "displayName": "Display Sender Picture (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_displaysenderpicture_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_displaysenderpicture_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_donotuseconversationalarrangementinviews", + "displayName": "Do not use Conversation arrangement in Views (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_donotuseconversationalarrangementinviews_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_donotuseconversationalarrangementinviews_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling", + "displayName": "Message handling (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_aftermovingordeletinganopenitem0", + "displayName": "After moving or deleting an open item: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_aftermovingordeletinganopenitem0_0", + "displayName": "Open the next item", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_aftermovingordeletinganopenitem0_1", + "displayName": "Return to the current folder", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_aftermovingordeletinganopenitem0_2", + "displayName": "Open the previous item", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_automaticallycleanupplaintextmessages", + "displayName": "Automatically clean up plain text messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_automaticallycleanupplaintextmessages_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_automaticallycleanupplaintextmessages_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_autosaveunsenteveryxxminutes0noautosave", + "displayName": "Autosave unsent every xx minutes (0=No AutoSave): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_closeoriginalmessagewhenreplyorforward", + "displayName": "Close original message when reply or forward (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_closeoriginalmessagewhenreplyorforward_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_closeoriginalmessagewhenreplyorforward_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_savecopiesofmessagesinsentitemsfolder", + "displayName": "Save copies of messages in Sent Items folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_savecopiesofmessagesinsentitemsfolder_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_messagehandling_l_savecopiesofmessagesinsentitemsfolder_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards", + "displayName": "On replies and forwards (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_allowuserscommentstobemarked", + "displayName": "Allow user's comments to be marked (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_allowuserscommentstobemarked_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_allowuserscommentstobemarked_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_prefixeachlinewith", + "displayName": "Prefix each line with: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenforwardingamessage", + "displayName": "When forwarding a message: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenforwardingamessage_1", + "displayName": "Attach orginal message", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenforwardingamessage_2", + "displayName": "Include original message text", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenforwardingamessage_3", + "displayName": "Include and indent org. message text", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenforwardingamessage_1000", + "displayName": "Prefix each line of the org. message", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenreplyingtoamessage", + "displayName": "When replying to a message: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenreplyingtoamessage_0", + "displayName": "Do not include orginal message", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenreplyingtoamessage_1", + "displayName": "Attach orginal message", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenreplyingtoamessage_2", + "displayName": "Include original message text", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenreplyingtoamessage_3", + "displayName": "Include and indent org. message text", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_onrepliesandforwards_l_whenreplyingtoamessage_1000", + "displayName": "Prefix each line of the org. message", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_reademailasplaintext", + "displayName": "Read e-mail as plain text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_reademailasplaintext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_reademailasplaintext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_readsignedemailasplaintext", + "displayName": "Read signed e-mail as plain text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_readsignedemailasplaintext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions_l_readsignedemailasplaintext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_disableautopreview", + "displayName": "Disable AutoPreview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_disableautopreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_disableautopreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages", + "displayName": "More save messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages_l_infoldersotherthantheinboxsavereplieswithoriginalmessage", + "displayName": "In folders other than the Inbox, save replies with original message (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages_l_infoldersotherthantheinboxsavereplieswithoriginalmessage_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages_l_infoldersotherthantheinboxsavereplieswithoriginalmessage_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages_l_saveforwardedmessages", + "displayName": "Save forwarded messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages_l_saveforwardedmessages_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_moresavemessages_l_saveforwardedmessages_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_savemessages", + "displayName": "Save Messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_savemessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_savemessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_savemessages_l_saveunsentitemsinthisfolder", + "displayName": "Save unsent items in this folder: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_savemessages_l_saveunsentitemsinthisfolder_4", + "displayName": "Outbox", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_savemessages_l_saveunsentitemsinthisfolder_5", + "displayName": "Sent Items", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_savemessages_l_saveunsentitemsinthisfolder_6", + "displayName": "Inbox", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_savemessages_l_saveunsentitemsinthisfolder_16", + "displayName": "Drafts", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive", + "displayName": "When new items arrive (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_brieflychangethemousecursor", + "displayName": "Briefly change the mouse cursor (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_brieflychangethemousecursor_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_brieflychangethemousecursor_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_playasound", + "displayName": "Play a sound (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_playasound_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_playasound_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_showanenvelopeiconinthesystemtray", + "displayName": "Show an envelope icon in the system tray (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_showanenvelopeiconinthesystemtray_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whennewitemsarrive_l_showanenvelopeiconinthesystemtray_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage", + "displayName": "When sending a message (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_addpropertiestoattachmentstoenablereplywithchanges", + "displayName": "Add properties to attachments to enable Reply with Changes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_addpropertiestoattachmentstoenablereplywithchanges_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_addpropertiestoattachmentstoenablereplywithchanges_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_allowcommasasaddressseparator", + "displayName": "Allow commas as address separator (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_allowcommasasaddressseparator_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_allowcommasasaddressseparator_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_automaticnamechecking", + "displayName": "Automatic name checking (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_automaticnamechecking_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_automaticnamechecking_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_deletemeetingrequestfrominboxwhenresponding", + "displayName": "Delete meeting request from Inbox when responding (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_deletemeetingrequestfrominboxwhenresponding_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_deletemeetingrequestfrominboxwhenresponding_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_messagesexpireafterdays", + "displayName": "Messages expire after (days): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setimportance", + "displayName": "Set importance: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setimportance_2", + "displayName": "High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setimportance_1", + "displayName": "Normal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setimportance_0", + "displayName": "Low", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setsensitivity", + "displayName": "Set sensitivity: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setsensitivity_0", + "displayName": "Normal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setsensitivity_1", + "displayName": "Personal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setsensitivity_2", + "displayName": "Private", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_setsensitivity_3", + "displayName": "Confidential", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_suggestnameswhilecompletingtoccandbccfields", + "displayName": "Suggest names while completing To, Cc, and Bcc fields (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_suggestnameswhilecompletingtoccandbccfields_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions_l_whensendingamessage_l_suggestnameswhilecompletingtoccandbccfields_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_newmaildesktopalert", + "displayName": "Do not display New Mail alert for users (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_newmaildesktopalert_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_newmaildesktopalert_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydefaultlocationofdesktopalert", + "displayName": "Specify default location of Desktop Alert (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydefaultlocationofdesktopalert_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydefaultlocationofdesktopalert_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydefaultlocationofdesktopalert_l_corner03", + "displayName": "Corner (0-3) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydefaultlocationofdesktopalert_l_xoffsetdefault44", + "displayName": "XOffset (default 44): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydefaultlocationofdesktopalert_l_yoffsetdefault42", + "displayName": "YOffset (default 42): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationofdesktopalertbeforefadeinmillisec", + "displayName": "Specify duration of Desktop Alert before fade (in milliseconds) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationofdesktopalertbeforefadeinmillisec_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationofdesktopalertbeforefadeinmillisec_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationofdesktopalertbeforefadeinmillisec_l_millisecdefault4000", + "displayName": "Millisec (Default 4000): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationofdesktopalertonmouseoverinmillisec", + "displayName": "Specify duration of Desktop Alert on mouse over (in milliseconds) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationofdesktopalertonmouseoverinmillisec_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationofdesktopalertonmouseoverinmillisec_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationofdesktopalertonmouseoverinmillisec_l_millisec1", + "displayName": "Millisec: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationoffadeininmillisec", + "displayName": "Specify duration of fade in (in milliseconds) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationoffadeininmillisec_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationoffadeininmillisec_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationoffadeininmillisec_l_millisec", + "displayName": "Millisec: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationoffadeoutinmillisec", + "displayName": "Specify duration of fade out (in milliseconds) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationoffadeoutinmillisec_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationoffadeoutinmillisec_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifydurationoffadeoutinmillisec_l_millisec2", + "displayName": "Millisec: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifyopacityatstartoffadein", + "displayName": "Specify opacity at start of fade in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifyopacityatstartoffadein_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifyopacityatstartoffadein_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifyopacityatstartoffadein_l_specifyopacityatstartoffadein3", + "displayName": "Specify opacity at start of fade in (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifyopacityofdesktopalert", + "displayName": "Specify opacity of Desktop Alert (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifyopacityofdesktopalert_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifyopacityofdesktopalert_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_advancedemailoptions~l_desktopalert_l_specifyopacityofdesktopalert_l_opacityalphalevel", + "displayName": "Opacity (Alpha Level): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options", + "displayName": "Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_deleteblankvotingandmeetingresponsesafterprocessing", + "displayName": "Delete blank voting and meeting responses after processing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_deleteblankvotingandmeetingresponsesafterprocessing_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_deleteblankvotingandmeetingresponsesafterprocessing_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_processreceiptsonarrival", + "displayName": "Process receipts on arrival (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_processreceiptsonarrival_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_processreceiptsonarrival_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_processrequestsandresponsesonarrival", + "displayName": "Process requests and responses on arrival (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_processrequestsandresponsesonarrival_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_processrequestsandresponsesonarrival_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_requestareadreceiptforallmessagesausersends", + "displayName": "Request a read receipt for all messages a user sends (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_requestareadreceiptforallmessagesausersends_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_requestareadreceiptforallmessagesausersends_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_requestdeliveryrcptforallmsgsausersendsexchangeonly", + "displayName": "Request delivery rcpt for all msgs a user sends (Exchange only) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_requestdeliveryrcptforallmsgsausersendsexchangeonly_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_requestdeliveryrcptforallmsgsausersendsexchangeonly_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_whenoutlookisaskedtorespondtoareadreceiptrequest", + "displayName": "When Outlook is asked to respond to a read receipt request: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_whenoutlookisaskedtorespondtoareadreceiptrequest_0", + "displayName": "Always send a response", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_whenoutlookisaskedtorespondtoareadreceiptrequest_1", + "displayName": "Never send a response", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_options_l_whenoutlookisaskedtorespondtoareadreceiptrequest_2", + "displayName": "Ask before sending a response", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_turnoffsendandtrack", + "displayName": "Turn off Send and Track feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_turnoffsendandtrack_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_emailoptions~l_trackingoptions_l_turnoffsendandtrack_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_addpeopleiemailtothesafesenderslist", + "displayName": "Add e-mail recipients to users' Safe Senders Lists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_addpeopleiemailtothesafesenderslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_addpeopleiemailtothesafesenderslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_hidejunkmailui", + "displayName": "Hide Junk Mail UI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_hidejunkmailui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_hidejunkmailui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkmailimportlist", + "displayName": "Trigger to apply junk email list settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkmailimportlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkmailimportlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_overwriteorappendjunkmailimportlist", + "displayName": "Overwrite or Append Junk Mail Import List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_overwriteorappendjunkmailimportlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_overwriteorappendjunkmailimportlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_permanentlydeletejunkemail", + "displayName": "Permanently delete Junk E-mail (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_permanentlydeletejunkemail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_permanentlydeletejunkemail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtoblockedsenderslist", + "displayName": "Specify path to Blocked Senders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtoblockedsenderslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtoblockedsenderslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtoblockedsenderslist_l_specifyfullpathandfilenametoblockedsenderslist", + "displayName": "Specify full path and filename to Blocked Senders list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtosaferecipientslist", + "displayName": "Specify path to Safe Recipients list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtosaferecipientslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtosaferecipientslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtosaferecipientslist_l_specifyfullpathandfilenametosaferecipientslist", + "displayName": "Specify full path and filename to Safe Recipients list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtosafesenderslist", + "displayName": "Specify path to Safe Senders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtosafesenderslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtosafesenderslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_specifypathtosafesenderslist_l_specifyfullpathandfilenametosafesenderslist", + "displayName": "Specify full path and filename to Safe Senders list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_spoofyemails", + "displayName": "Hide warnings about suspicious domain names in e-mail addresses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_spoofyemails_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_spoofyemails_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_trustemailfromcontacts", + "displayName": "Trust e-mail from contacts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_trustemailfromcontacts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_trustemailfromcontacts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disablehithighlighting", + "displayName": "Do not display hit highlights in search results (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disablehithighlighting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disablehithighlighting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disablehybridsearch", + "displayName": "Disable Hybrid Searching (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disablehybridsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disablehybridsearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disableinstallationprompts", + "displayName": "Prevent installation prompts when Windows Desktop Search component is not present (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disableinstallationprompts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_disableinstallationprompts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_donotincludetheonlinearchiveinallmailitemsearch", + "displayName": "Do not include the Online Archive in All Mail Item search (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_donotincludetheonlinearchiveinallmailitemsearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_donotincludetheonlinearchiveinallmailitemsearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor", + "displayName": "Change color used to highlight search matches (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon", + "displayName": "Background Color: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_000000", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_12632256", + "displayName": "Silver", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_8421504", + "displayName": "Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_16777215", + "displayName": "White", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_65535", + "displayName": "Aqua", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_16711808", + "displayName": "Fuchsia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_8453888", + "displayName": "Lime", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_16776960", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_8421376", + "displayName": "Olive", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_8388736", + "displayName": "Purple", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_32768", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_16711680", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_8388608", + "displayName": "Maroon", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_128", + "displayName": "Navy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_32896", + "displayName": "Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_hithighlightingcolor_l_backgroundcolorcolon_255", + "displayName": "Blue", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_preventclearsignedmessageandattachmentindexing", + "displayName": "Prevent clear signed message and attachment indexing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_preventclearsignedmessageandattachmentindexing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_preventclearsignedmessageandattachmentindexing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_setdefaultsearchscope", + "displayName": "Set default search scope (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_setdefaultsearchscope_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_setdefaultsearchscope_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_setdefaultsearchscope_l_setdefaultsearchscopedropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_setdefaultsearchscope_l_setdefaultsearchscopedropid_0", + "displayName": "Default behavior (see explanation)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_setdefaultsearchscope_l_setdefaultsearchscopedropid_1", + "displayName": "\"All Mailboxes\" on all folders", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_setdefaultsearchscope_l_setdefaultsearchscopedropid_2", + "displayName": "\"Current Folder\" on all folders", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_setdefaultsearchscope_l_setdefaultsearchscopedropid_3", + "displayName": "\"Current Mailbox\" on all folders", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_turnoffautomaticsearchindexreconciliation", + "displayName": "Turn off automatic search index reconciliation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_turnoffautomaticsearchindexreconciliation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_turnoffautomaticsearchindexreconciliation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_turnoffwordwheel", + "displayName": "Do not display search results as the user types (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_turnoffwordwheel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_searchoptions_l_turnoffwordwheel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions", + "displayName": "Layout Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_l_setglobaltextdirection", + "displayName": "Set global text direction: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_l_setglobaltextdirection_0", + "displayName": "Context-based", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_l_setglobaltextdirection_1", + "displayName": "Left to right", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_l_setglobaltextdirection_2", + "displayName": "Right-to-left", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_l_setlayoutdirection", + "displayName": "Set layout direction: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_l_setlayoutdirection_0", + "displayName": "Left to Right", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_righttoleft_l_layoutoptions_l_setlayoutdirection_1", + "displayName": "Right to Left", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general", + "displayName": "General (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general_l_alwayscheckspellingbeforesending", + "displayName": "Always check spelling before sending (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general_l_alwayscheckspellingbeforesending_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general_l_alwayscheckspellingbeforesending_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general_l_ignoreoriginalmessagetextinreplyorforward", + "displayName": "Ignore original message text in reply or forward (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general_l_ignoreoriginalmessagetextinreplyorforward_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlookoptions~l_spelling_l_general_l_ignoreoriginalmessagetextinreplyorforward_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blockglobaladdresslistsynchronization", + "displayName": "Block Global Address List synchronization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blockglobaladdresslistsynchronization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blockglobaladdresslistsynchronization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blocknetworkactivitysynchronization", + "displayName": "Block network activity synchronization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blocknetworkactivitysynchronization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blocknetworkactivitysynchronization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blocksocialnetworkcontactsynchronization", + "displayName": "Block social network contact synchronization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blocksocialnetworkcontactsynchronization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blocksocialnetworkcontactsynchronization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blockspecificsocialnetworkproviders", + "displayName": "Block specific social network providers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blockspecificsocialnetworkproviders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blockspecificsocialnetworkproviders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_blockspecificsocialnetworkproviders_l_blockspecificsocialnetworkprovidersid", + "displayName": "Separate ProgIDs with semi-colons (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotallowondemandactivitysynchronization", + "displayName": "Do not allow on-demand activity synchronization (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotallowondemandactivitysynchronization_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotallowondemandactivitysynchronization_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotdownloadphotosfromactivedirectory", + "displayName": "Do not download photos from Active Directory (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotdownloadphotosfromactivedirectory_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotdownloadphotosfromactivedirectory_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotshowsocialnetworkinfobars", + "displayName": "Do not show social network info-bars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotshowsocialnetworkinfobars_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_donotshowsocialnetworkinfobars_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_preventsocialnetworkconnectivity", + "displayName": "Disable Office connections to social networks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_preventsocialnetworkconnectivity_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_preventsocialnetworkconnectivity_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_setgalcontactsynchronizationinterval", + "displayName": "Set GAL contact synchronization interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_setgalcontactsynchronizationinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_setgalcontactsynchronizationinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_setgalcontactsynchronizationinterval_l_setgalcontactsynchronizationintervalspinid", + "displayName": "Synchronization interval (in minutes): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_specifyactivityfeedsynchronizationinterval", + "displayName": "Specify activity feed synchronization interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_specifyactivityfeedsynchronizationinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_specifyactivityfeedsynchronizationinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_specifyactivityfeedsynchronizationinterval_l_specifyactivityfeedsynchronizationintervalspinid", + "displayName": "Synchronization interval (in minutes): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_specifylistofsocialnetworkproviderstoload", + "displayName": "Specify list of social network providers to load (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_specifylistofsocialnetworkproviderstoload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_specifylistofsocialnetworkproviderstoload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_specifylistofsocialnetworkproviderstoload_l_specifylistofsocialnetworkproviderstoloadid", + "displayName": "Separate ProgIDs with semi-colons (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_turnoffoutlooksocialconnector", + "displayName": "Turn off Outlook Social Connector (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_turnoffoutlooksocialconnector_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooksocialconnector_l_turnoffoutlooksocialconnector_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooktodaysettings_l_outlooktodayavailability", + "displayName": "Outlook Today availability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooktodaysettings_l_outlooktodayavailability_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooktodaysettings_l_outlooktodayavailability_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooktodaysettings_l_urlforcustomoutlooktoday", + "displayName": "URL for custom Outlook Today (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooktodaysettings_l_urlforcustomoutlooktoday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooktodaysettings_l_urlforcustomoutlooktoday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_outlooktodaysettings_l_urlforcustomoutlooktoday_l_entertheurlofoutlooktodayswebpagemax129chars", + "displayName": "Enter the URL of Outlook Today's web page (max 129 chars): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_keepsearchfoldersinexchangeonline", + "displayName": "Keep Search Folders in Exchange online (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_keepsearchfoldersinexchangeonline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_keepsearchfoldersinexchangeonline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_keepsearchfoldersinexchangeonline_l_specifydaystokeepfoldersaliveinexchangeonlinemode", + "displayName": "Specify days to keep folders alive in Exchange online mode: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_keepsearchfoldersoffline", + "displayName": "Keep Search Folders offline (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_keepsearchfoldersoffline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_keepsearchfoldersoffline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_keepsearchfoldersoffline_l_specifydaystokeepfoldersaliveinofflineorcachedmode", + "displayName": "Specify days to keep folders alive in offline or cached mode: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_maximumnumberofonlinesearchfolderspermailbox", + "displayName": "Maximum Number of Online Search Folders per mailbox (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_maximumnumberofonlinesearchfolderspermailbox_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_maximumnumberofonlinesearchfolderspermailbox_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_searchfolders_l_maximumnumberofonlinesearchfolderspermailbox_l_specifymaximumnumberofsearchfolders2", + "displayName": "Maximum number of Search Folders: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms", + "displayName": "Allow Active X One Off Forms (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_l_empty29", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_l_empty29_0", + "displayName": "Load only Outlook Controls", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_l_empty29_1", + "displayName": "Allows only Safe Controls", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_l_empty29_2", + "displayName": "Allows all ActiveX Controls", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_v2", + "displayName": "Allow Active X One Off Forms (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_v2_l_empty29", + "displayName": "\r\nSets which ActiveX controls to allow.\r\n", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_v2_l_empty29_0", + "displayName": "Load only Outlook Controls", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_v2_l_empty29_1", + "displayName": "Allows only Safe Controls", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_allowactivexoneoffforms_v2_l_empty29_2", + "displayName": "Allows all ActiveX Controls", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_configureaddintrustlevel", + "displayName": "Configure Add-In Trust Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_configureaddintrustlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_configureaddintrustlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_configureaddintrustlevel_l_empty28", + "displayName": "\r\nSelect Add-In Trust Level:\r\n", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_configureaddintrustlevel_l_empty28_0", + "displayName": "Trust all, or use Exchange settings if present", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_configureaddintrustlevel_l_empty28_1", + "displayName": "Trust all loaded and installed COM addins", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_configureaddintrustlevel_l_empty28_2", + "displayName": "Do NOT trust loaded and installed COM addins", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_disablerememberpasswordcheckboxforinternetemailsettingsdialo", + "displayName": "Disable 'Remember password' for Internet e-mail accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_disablerememberpasswordcheckboxforinternetemailsettingsdialo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_disablerememberpasswordcheckboxforinternetemailsettingsdialo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_donotautomaticallysignreplies", + "displayName": "Do not automatically sign replies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_donotautomaticallysignreplies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_donotautomaticallysignreplies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_preventusersfromcustomizingattachmentsecuritysettings", + "displayName": "Prevent users from customizing attachment security settings (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_preventusersfromcustomizingattachmentsecuritysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_preventusersfromcustomizingattachmentsecuritysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_preventusersfromcustomizingattachmentsecuritysettings_v2", + "displayName": "Prevent users from customizing attachment security settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_preventusersfromcustomizingattachmentsecuritysettings_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_preventusersfromcustomizingattachmentsecuritysettings_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_promptusertochoosesecuritysettingsifdefaultsettingsfail", + "displayName": "Prompt user to choose security settings if default settings fail (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_promptusertochoosesecuritysettingsifdefaultsettingsfail_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_promptusertochoosesecuritysettingsifdefaultsettingsfail_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_turnoffcontactexport", + "displayName": "Turn off contact export (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_turnoffcontactexport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_turnoffcontactexport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_useprotectedviewforattachmentsreceivedfrominternalsenders", + "displayName": "Use Protected View for attachments received from internal senders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_useprotectedviewforattachmentsreceivedfrominternalsenders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security_l_useprotectedviewforattachmentsreceivedfrominternalsenders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockexternalcontent", + "displayName": "Display pictures and external content in HTML e-mail (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockexternalcontent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockexternalcontent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockinternet", + "displayName": "Include Internet in Safe Zones for Automatic Picture Download (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockinternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockinternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockinternet_v2", + "displayName": "Include Internet in Safe Zones for Automatic Picture Download (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockinternet_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockinternet_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockintranet", + "displayName": "Include Intranet in Safe Zones for Automatic Picture Download (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockintranet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blockintranet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blocktrustedzones", + "displayName": "Block Trusted Zones (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blocktrustedzones_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_blocktrustedzones_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_permitdownloadofcontentfromsafesenderandrecipientlists", + "displayName": "Automatically download content for e-mail from people in Safe Senders and Safe Recipients Lists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_permitdownloadofcontentfromsafesenderandrecipientlists_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_permitdownloadofcontentfromsafesenderandrecipientlists_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_permitdownloadofcontentfromsafezones", + "displayName": "Do not permit download of content from safe zones (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_permitdownloadofcontentfromsafezones_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_automaticpicturedownloadsettings_l_permitdownloadofcontentfromsafezones_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_disablecontinuebuttononallencryptionwarningdialogs", + "displayName": "Do not provide Continue option on Encryption warning dialog boxes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_disablecontinuebuttononallencryptionwarningdialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_disablecontinuebuttononallencryptionwarningdialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_disablepublishtogalbutton", + "displayName": "Do not display 'Publish to GAL' button (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_disablepublishtogalbutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_disablepublishtogalbutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_donotcheckemailaddressagainstaddressofcertificatesbeingusing", + "displayName": "Do not check e-mail address against address of certificates being used (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_donotcheckemailaddressagainstaddressofcertificatesbeingusing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_donotcheckemailaddressagainstaddressofcertificatesbeingusing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_enableaiacertevaluation", + "displayName": "Enable Retrieval of Remote Certificate Authority Information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_enableaiacertevaluation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_enableaiacertevaluation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_enablecryptographyicons", + "displayName": "Enable Cryptography Icons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_enablecryptographyicons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_enablecryptographyicons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_encryptallemailmessages", + "displayName": "Encrypt all e-mail messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_encryptallemailmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_encryptallemailmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_ensureallsmimesignedmessageshavealabel", + "displayName": "Ensure all S/MIME signed messages have a label (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_ensureallsmimesignedmessageshavealabel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_ensureallsmimesignedmessageshavealabel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_fortezzacertificatepolicies", + "displayName": "Fortezza certificate policies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_fortezzacertificatepolicies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_fortezzacertificatepolicies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_fortezzacertificatepolicies_l_enterlistofpoliciesthatcanbeinthepoliciesextension2", + "displayName": "List of policies to indicate that a certificate is a Fortezza certificate (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats", + "displayName": "Message Formats (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_l_supportthefollowingmessageformats", + "displayName": "Support the following message formats: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_l_supportthefollowingmessageformats_1", + "displayName": "S/MIME", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_l_supportthefollowingmessageformats_2", + "displayName": "Exchange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_l_supportthefollowingmessageformats_20", + "displayName": "Fortezza", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_l_supportthefollowingmessageformats_3", + "displayName": "S/MIME and Exchange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_l_supportthefollowingmessageformats_21", + "displayName": "S/MIME and Fortezza", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_l_supportthefollowingmessageformats_22", + "displayName": "Exchange and Fortezza", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messageformats_l_supportthefollowingmessageformats_23", + "displayName": "S/MIME, Exchange, and Fortezza", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messagewhenoutlookcannotfindthedigitalidtodecodeamessage", + "displayName": "Message when Outlook cannot find the digital ID to decode a message (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messagewhenoutlookcannotfindthedigitalidtodecodeamessage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messagewhenoutlookcannotfindthedigitalidtodecodeamessage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_messagewhenoutlookcannotfindthedigitalidtodecodeamessage_l_entererrormessagetextmax255characters", + "displayName": "Enter error message text (max 255 characters): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_minimumencryptionsettings", + "displayName": "Minimum encryption settings (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_minimumencryptionsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_minimumencryptionsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_minimumencryptionsettings_l_minimumkeysizeinbits", + "displayName": "Minimum key size (in bits): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_minimumencryptionsettings_v2", + "displayName": "Minimum encryption settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_minimumencryptionsettings_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_minimumencryptionsettings_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_minimumencryptionsettings_v2_l_minimumkeysizeinbits", + "displayName": "Minimum key size (in bits): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_outlooktnefinsmimemessages", + "displayName": "Always use TNEF formatting in S/MIME messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_outlooktnefinsmimemessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_outlooktnefinsmimemessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_repliesorforwardstosignedencryptedmessagesaresignedencrypted", + "displayName": "Replies or forwards to signed/encrypted messages are signed/encrypted (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_repliesorforwardstosignedencryptedmessagesaresignedencrypted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_repliesorforwardstosignedencryptedmessagesaresignedencrypted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requestansmimereceiptforallsmimesignedmessages", + "displayName": "Request an S/MIME receipt for all S/MIME signed messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requestansmimereceiptforallsmimesignedmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requestansmimereceiptforallsmimesignedmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requiredcertificateauthority", + "displayName": "Required Certificate Authority (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requiredcertificateauthority_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requiredcertificateauthority_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requiredcertificateauthority_l_x509issuednthatrestrictschoiceofcertifyingauthorities", + "displayName": "X.509 issue DN that restricts choice of certifying authorities: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requiresuitebalgorithmsforsmimeoperations", + "displayName": "Require SuiteB algorithms for S/MIME operations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requiresuitebalgorithmsforsmimeoperations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_requiresuitebalgorithmsforsmimeoperations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_runinfipscompliantmode", + "displayName": "Run in FIPS compliant mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_runinfipscompliantmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_runinfipscompliantmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_sendallsignedmessagesasclearsignedmessages", + "displayName": "Send all signed messages as clear signed messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_sendallsignedmessagesasclearsignedmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_sendallsignedmessagesasclearsignedmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signallemailmessages", + "displayName": "Sign all e-mail messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signallemailmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signallemailmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning", + "displayName": "Signature Warning (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_l_signaturewarning30", + "displayName": "Signature Warning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_l_signaturewarning30_0", + "displayName": "Let user decide if they want to be warned", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_l_signaturewarning30_1", + "displayName": "Always warn about invalid signatures", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_l_signaturewarning30_2", + "displayName": "Never warn about invalid signatures", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_v2", + "displayName": "Signature Warning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_v2_l_signaturewarning30", + "displayName": "Signature Warning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_v2_l_signaturewarning30_0", + "displayName": "Let user decide if they want to be warned", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_v2_l_signaturewarning30_1", + "displayName": "Always warn about invalid signatures", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_signaturewarning_v2_l_signaturewarning30_2", + "displayName": "Never warn about invalid signatures", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeinteroperabilitywithexternalclients", + "displayName": "S/MIME interoperability with external clients: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeinteroperabilitywithexternalclients_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeinteroperabilitywithexternalclients_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeinteroperabilitywithexternalclients_l_behaviorforhandlingsmimemessages", + "displayName": "Behavior for handling S/MIME messages: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeinteroperabilitywithexternalclients_l_behaviorforhandlingsmimemessages_0", + "displayName": "Handle internally", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeinteroperabilitywithexternalclients_l_behaviorforhandlingsmimemessages_1", + "displayName": "Handle externally", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeinteroperabilitywithexternalclients_l_behaviorforhandlingsmimemessages_2", + "displayName": "Handle if possible", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimereceiptrequests", + "displayName": "S/MIME receipt requests behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimereceiptrequests_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimereceiptrequests_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimereceiptrequests_l_handlemessageswithsmimereceiptrequestsinthefollowingmanner", + "displayName": "Handle messages with S/MIME receipt requests in the following manner: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimereceiptrequests_l_handlemessageswithsmimereceiptrequestsinthefollowingmanner_0", + "displayName": "Open message if receipt can't be sent", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimereceiptrequests_l_handlemessageswithsmimereceiptrequestsinthefollowingmanner_3", + "displayName": "Don't open message if receipt can't be sent", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimereceiptrequests_l_handlemessageswithsmimereceiptrequestsinthefollowingmanner_1", + "displayName": "Always prompt before sending receipt", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimereceiptrequests_l_handlemessageswithsmimereceiptrequestsinthefollowingmanner_2", + "displayName": "Never send S/MIME receipts", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeuseissuerserialnumber", + "displayName": "Use UserIssuerSerialNumber (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeuseissuerserialnumber_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_smimeuseissuerserialnumber_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_urlforsmimecertificates", + "displayName": "URL for S/MIME certificates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_urlforsmimecertificates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_urlforsmimecertificates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_urlforsmimecertificates_l_enterurl", + "displayName": "Enter URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_attachmentsecuretemporaryfolder", + "displayName": "Attachment Secure Temporary Folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_attachmentsecuretemporaryfolder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_attachmentsecuretemporaryfolder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_attachmentsecuretemporaryfolder_l_enterthesecurefolderpath", + "displayName": "Enter the Secure Folder path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingcrls", + "displayName": "Missing CRLs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingcrls_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingcrls_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingcrls_l_indicateamissingcrlasan", + "displayName": "Indicate a missing CRL as a(n): (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingcrls_l_indicateamissingcrlasan_0", + "displayName": "Warning", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingcrls_l_indicateamissingcrlasan_1", + "displayName": "Error", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingrootcertificates", + "displayName": "Missing root certificates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingrootcertificates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingrootcertificates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingrootcertificates_l_indicateamissingrootcertificateasan", + "displayName": "Indicate a missing root certificate as a(n): (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingrootcertificates_l_indicateamissingrootcertificateasan_0", + "displayName": "Neither error nor warning", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingrootcertificates_l_indicateamissingrootcertificateasan_1", + "displayName": "Warning", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_missingrootcertificates_l_indicateamissingrootcertificateasan_2", + "displayName": "Error", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_promotingerrorsaswarnings", + "displayName": "Promote Level 2 errors as errors, not warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_promotingerrorsaswarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_promotingerrorsaswarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists", + "displayName": "Retrieving CRLs (Certificate Revocation Lists) (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_l_empty31", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_l_empty31_0", + "displayName": "Use system Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_l_empty31_1", + "displayName": "When online always retreive the CRL", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_l_empty31_2", + "displayName": "Never retreive the CRL", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_v2", + "displayName": "Retrieving CRLs (Certificate Revocation Lists) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_v2_l_empty31", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_v2_l_empty31_0", + "displayName": "Use system Default", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_v2_l_empty31_1", + "displayName": "When online always retreive the CRL", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_cryptography~l_signaturestatusdialog_l_retrievingcrlscertificaterevocationlists_v2_l_empty31_2", + "displayName": "Never retreive the CRL", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings_l_outlooksecuritymode", + "displayName": "Outlook Security Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings_l_outlooksecuritymode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings_l_outlooksecuritymode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings_l_outlooksecuritymode_l_outlooksecuritypolicy", + "displayName": "Outlook Security Policy: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings_l_outlooksecuritymode_l_outlooksecuritypolicy_0", + "displayName": "Outlook Default Security", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings_l_outlooksecuritymode_l_outlooksecuritypolicy_1", + "displayName": "Use Security Form from 'Outlook Security Settings' Public Folder", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings_l_outlooksecuritymode_l_outlooksecuritypolicy_2", + "displayName": "Use Security Form from 'Outlook 10 Security Settings' Public Folder", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings_l_outlooksecuritymode_l_outlooksecuritypolicy_3", + "displayName": "Use Outlook Security Group Policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_allowuserstolowerattachments", + "displayName": "Allow users to demote attachments to Level 2 (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_allowuserstolowerattachments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_allowuserstolowerattachments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_allowuserstolowerattachments_v2", + "displayName": "Allow users to demote attachments to Level 2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_allowuserstolowerattachments_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_allowuserstolowerattachments_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1addfilepolicy", + "displayName": "Add file extensions to block as Level 1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1addfilepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1addfilepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1addfilepolicy_l_additionalextensions", + "displayName": "Additional Extensions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1attachments", + "displayName": "Display Level 1 attachments (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1attachments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1attachments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1attachments_v2", + "displayName": "Display Level 1 attachments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1attachments_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1attachments_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1removefilepolicy", + "displayName": "Remove file extensions blocked as Level 1 (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1removefilepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1removefilepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1removefilepolicy_l_removedextensions", + "displayName": "Removed Extensions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1removefilepolicy_v2", + "displayName": "Remove file extensions blocked as Level 1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1removefilepolicy_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1removefilepolicy_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level1removefilepolicy_v2_l_removedextensions", + "displayName": "Removed Extensions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2addfilepolicy", + "displayName": "Add file extensions to block as Level 2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2addfilepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2addfilepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2addfilepolicy_l_additionalextensions23", + "displayName": "Additional Extensions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2removefilepolicy", + "displayName": "Remove file extensions blocked as Level 2 (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2removefilepolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2removefilepolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2removefilepolicy_l_removedextensions25", + "displayName": "Removed Extensions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2removefilepolicy_v2", + "displayName": "Remove file extensions blocked as Level 2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2removefilepolicy_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2removefilepolicy_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_level2removefilepolicy_v2_l_removedextensions25", + "displayName": "Removed Extensions: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_nopromptlevel1close", + "displayName": "Do not prompt about Level 1 attachments when closing an item (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_nopromptlevel1close_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_nopromptlevel1close_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_nopromptlevel1send", + "displayName": "Do not prompt about Level 1 attachments when sending an item (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_nopromptlevel1send_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_nopromptlevel1send_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_showolepackageobj", + "displayName": "Display OLE package objects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_showolepackageobj_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_miscattachmentsettings_l_showolepackageobj_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_enablescriptsinoneoffforms", + "displayName": "Allow scripts in one-off Outlook forms (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_enablescriptsinoneoffforms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_enablescriptsinoneoffforms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_enablescriptsinoneoffforms_v2", + "displayName": "Allow scripts in one-off Outlook forms (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_enablescriptsinoneoffforms_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_enablescriptsinoneoffforms_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom", + "displayName": "Set Outlook object model custom actions execution prompt (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_l_onexecutecustomactionoom_setting", + "displayName": "When executing a custom action: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_l_onexecutecustomactionoom_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_l_onexecutecustomactionoom_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_l_onexecutecustomactionoom_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_l_onexecutecustomactionoom_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_v2", + "displayName": "Set Outlook object model custom actions execution prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_v2_l_onexecutecustomactionoom_setting", + "displayName": "When executing a custom action: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_v2_l_onexecutecustomactionoom_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_v2_l_onexecutecustomactionoom_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_v2_l_onexecutecustomactionoom_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_misccustomformsettings_l_onexecutecustomactionoom_v2_l_onexecutecustomactionoom_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess", + "displayName": "Configure Outlook object model prompt when reading address information (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_l_oomaddressaccess_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_l_oomaddressaccess_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_l_oomaddressaccess_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_l_oomaddressaccess_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_l_oomaddressaccess_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_v2", + "displayName": "Configure Outlook object model prompt when reading address information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_v2_l_oomaddressaccess_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_v2_l_oomaddressaccess_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_v2_l_oomaddressaccess_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_v2_l_oomaddressaccess_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressaccess_v2_l_oomaddressaccess_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook", + "displayName": "Configure Outlook object model prompt when accessing an address book (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_l_oomaddressbook_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_l_oomaddressbook_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_l_oomaddressbook_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_l_oomaddressbook_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_l_oomaddressbook_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_v2", + "displayName": "Configure Outlook object model prompt when accessing an address book (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_v2_l_oomaddressbook_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_v2_l_oomaddressbook_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_v2_l_oomaddressbook_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_v2_l_oomaddressbook_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomaddressbook_v2_l_oomaddressbook_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula", + "displayName": "Configure Outlook object model prompt When accessing the Formula property of a UserProperty object (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_l_oomformula_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_l_oomformula_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_l_oomformula_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_l_oomformula_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_l_oomformula_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_v2", + "displayName": "Configure Outlook object model prompt When accessing the Formula property of a UserProperty object (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_v2_l_oomformula_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_v2_l_oomformula_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_v2_l_oomformula_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_v2_l_oomformula_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomformula_v2_l_oomformula_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest", + "displayName": "Configure Outlook object model prompt when responding to meeting and task requests (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_l_oommeetingtaskrequest_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_l_oommeetingtaskrequest_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_l_oommeetingtaskrequest_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_l_oommeetingtaskrequest_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_l_oommeetingtaskrequest_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_v2", + "displayName": "Configure Outlook object model prompt when responding to meeting and task requests (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_v2_l_oommeetingtaskrequest_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_v2_l_oommeetingtaskrequest_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_v2_l_oommeetingtaskrequest_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_v2_l_oommeetingtaskrequest_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oommeetingtaskrequest_v2_l_oommeetingtaskrequest_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas", + "displayName": "Configure Outlook object model prompt when executing Save As (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_l_oomsaveas_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_l_oomsaveas_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_l_oomsaveas_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_l_oomsaveas_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_l_oomsaveas_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_v2", + "displayName": "Configure Outlook object model prompt when executing Save As (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_v2_l_oomsaveas_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_v2_l_oomsaveas_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_v2_l_oomsaveas_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_v2_l_oomsaveas_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsaveas_v2_l_oomsaveas_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend", + "displayName": "Configure Outlook object model prompt when sending mail (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_l_oomsend_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_l_oomsend_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_l_oomsend_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_l_oomsend_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_l_oomsend_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_v2", + "displayName": "Configure Outlook object model prompt when sending mail (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_v2_l_oomsend_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_v2_l_oomsend_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_v2_l_oomsend_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_v2_l_oomsend_setting_0", + "displayName": "Automatically Deny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_oomsend_v2_l_oomsend_setting_3", + "displayName": "Prompt user based on computer security", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapinameresolve", + "displayName": "Configure Simple MAPI name resolution prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapinameresolve_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapinameresolve_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapinameresolve_l_simplemapi_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapinameresolve_l_simplemapi_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapinameresolve_l_simplemapi_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapinameresolve_l_simplemapi_setting_0", + "displayName": "Automatically Deny", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapiopenmessage", + "displayName": "Configure Simple MAPI message opening prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapiopenmessage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapiopenmessage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapiopenmessage_l_simplemapi_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapiopenmessage_l_simplemapi_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapiopenmessage_l_simplemapi_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapiopenmessage_l_simplemapi_setting_0", + "displayName": "Automatically Deny", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapisend", + "displayName": "Configure Simple MAPI sending prompt (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapisend_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapisend_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapisend_l_simplemapi_setting", + "displayName": "Guard behavior: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapisend_l_simplemapi_setting_1", + "displayName": "Prompt User", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapisend_l_simplemapi_setting_2", + "displayName": "Automatically Approve", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings_l_simplemapisend_l_simplemapi_setting_0", + "displayName": "Automatically Deny", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings~l_trustedaddins_l_settrustedaddins", + "displayName": "Configure trusted add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings~l_trustedaddins_l_settrustedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings~l_trustedaddins_l_settrustedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings~l_trustedaddins_l_settrustedaddins_l_listoftrustedaddins", + "displayName": "List of trusted add-ins and hashes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings~l_trustedaddins_l_settrustedaddins_l_listoftrustedaddins_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_securityformsettings~l_programmaticsettings~l_trustedaddins_l_settrustedaddins_l_listoftrustedaddins_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_applymacrosecuritysettings", + "displayName": "Apply macro security settings to macros, add-ins and additional actions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_applymacrosecuritysettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_applymacrosecuritysettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_enablelinksinemailmessages", + "displayName": "Allow hyperlinks in suspected phishing e-mail messages (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_enablelinksinemailmessages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_enablelinksinemailmessages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_enablelinksinemailmessages_v2", + "displayName": "Allow hyperlinks in suspected phishing e-mail messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_enablelinksinemailmessages_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_enablelinksinemailmessages_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_onsendaddinsenabled", + "displayName": "Disable send when web extensions can’t load. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_onsendaddinsenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_onsendaddinsenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookactivationalertthreshold", + "displayName": "Specify activation disabling threshold for web extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookactivationalertthreshold_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookactivationalertthreshold_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookactivationalertthreshold_l_outlookactivationalertthresholdspinid", + "displayName": "(100 - 10000 milliseconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookactivationmanagerretrylimit", + "displayName": "Specify activation manager retry limit for web extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookactivationmanagerretrylimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookactivationmanagerretrylimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookactivationmanagerretrylimit_l_outlookactivationmanagerretrylimitspinid", + "displayName": "(1 - 5 occurrences) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookalertinterval", + "displayName": "Specify alert interval for web extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookalertinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookalertinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookalertinterval_l_outlookalertintervalspinid", + "displayName": "(5 - 600 seconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookmemoryalertthreshold", + "displayName": "Specify Outlook memory alert threshold for web extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookmemoryalertthreshold_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookmemoryalertthreshold_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookmemoryalertthreshold_l_outlookmemoryalertthresholdspinid", + "displayName": "(1 - 1500 MB) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookrestartmanagerretrylimit", + "displayName": "Specify the number of restarts attempted for a running web extension (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookrestartmanagerretrylimit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookrestartmanagerretrylimit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_outlookrestartmanagerretrylimit_l_outlookrestartmanagerretrylimitspinid", + "displayName": "(1 - 10 occurrences) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook", + "displayName": "Security setting for macros (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_l_securitylevel", + "displayName": "Security Level (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_l_securitylevel_2", + "displayName": "Always warn", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_l_securitylevel_4", + "displayName": "Never warn, disable all", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_l_securitylevel_3", + "displayName": "Warn for signed, disable unsigned", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_l_securitylevel_1", + "displayName": "No security check", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_v2", + "displayName": "Security setting for macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_v2_l_securitylevel", + "displayName": "Security Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_v2_l_securitylevel_2", + "displayName": "Always warn", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_v2_l_securitylevel_4", + "displayName": "Never warn, disable all", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_v2_l_securitylevel_3", + "displayName": "Warn for signed, disable unsigned", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_security~l_trustcenter_l_securityleveloutlook_v2_l_securitylevel_1", + "displayName": "No security check", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_preventsavingcredentialsforbasicauthenticationpolicy", + "displayName": "Prevent saving credentials for Basic Authentication policy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_preventsavingcredentialsforbasicauthenticationpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_preventsavingcredentialsforbasicauthenticationpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_specifyofflineaddressbookpath", + "displayName": "Specify Offline Address Book path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_specifyofflineaddressbookpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_specifyofflineaddressbookpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_specifyofflineaddressbookpath_l_specifyofflineaddressbookpathid", + "displayName": "Offline Address Book path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_eas_l_eassyncfrequency", + "displayName": "EAS Sync Frequency (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_eas_l_eassyncfrequency_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_eas_l_eassyncfrequency_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_eas_l_eassyncfrequency_l_eassyncfrequencyintervalspinid", + "displayName": "Synchronization interval (in minutes): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactive", + "displayName": "Automatically configure profile based on Active Directory Primary SMTP address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactiveonce", + "displayName": "Automatically configure only the first profile based on Active Directory primary SMTP address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactiveonce_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_automaticallyconfigureprofilebasedonactiveonce_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_cachedexchangelowbandwidththreshold", + "displayName": "Cached Exchange low bandwidth threshold (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_cachedexchangelowbandwidththreshold_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_cachedexchangelowbandwidththreshold_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_cachedexchangelowbandwidththreshold_l_enterthebitratekbps128k128thresholdtodetectlowbandwidth2", + "displayName": "(0 - 1,000,000 kbps) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disablechangingfolderpermissions", + "displayName": "Do not allow users to change permissions on folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disablechangingfolderpermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disablechangingfolderpermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disableexchangeconsumeraccounts", + "displayName": "Prevent personal Microsoft accounts from using MAPI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disableexchangeconsumeraccounts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disableexchangeconsumeraccounts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disablerpctransportfallback", + "displayName": "Disable connection fallback between protocols (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disablerpctransportfallback_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_disablerpctransportfallback_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_donotcreatenewostonupgrade", + "displayName": "Do not create new OST file on upgrade (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_donotcreatenewostonupgrade_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_donotcreatenewostonupgrade_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface", + "displayName": "Configure Outlook Anywhere user interface options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface_l_chooseuistatewhenoscansupportfeature", + "displayName": "Choose UI State when OS can support feature: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface_l_chooseuistatewhenoscansupportfeature_0", + "displayName": "Hidden", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface_l_chooseuistatewhenoscansupportfeature_1", + "displayName": "All config UI enabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface_l_chooseuistatewhenoscansupportfeature_2", + "displayName": "Enable only On/Off control but not config UI", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface_l_chooseuistatewhenoscansupportfeature_3", + "displayName": "Enable config UI when settings are pre-deployed", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enableexchangeoverinternetuserinterface_l_chooseuistatewhenoscansupportfeature_4", + "displayName": "Disable but show all config UI", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enablerpcencryption", + "displayName": "Enable RPC encryption (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enablerpcencryption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enablerpcencryption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enablerpcencryption_v2", + "displayName": "Enable RPC encryption (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enablerpcencryption_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_enablerpcencryption_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeignoreostformat", + "displayName": "Exchange Unicode Mode - Ignore OST Format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeignoreostformat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeignoreostformat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeignoreostformat_l_choosewhetherexistingostformatdeterminesmailboxmode", + "displayName": "Choose whether existing OST format determines mailbox mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeignoreostformat_l_choosewhetherexistingostformatdeterminesmailboxmode_0", + "displayName": "OST Format determines mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeignoreostformat_l_choosewhetherexistingostformatdeterminesmailboxmode_1", + "displayName": "Create new OST if format doesn't match mode", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeignoreostformat_l_choosewhetherexistingostformatdeterminesmailboxmode_2", + "displayName": "Prompt to create new OST if format doesn't match mode", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodesilentostformatchange", + "displayName": "Exchange Unicode Mode - Silent OST format change (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodesilentostformatchange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodesilentostformatchange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeturnoffansi", + "displayName": "Exchange Unicode Mode - Turn off ANSI mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeturnoffansi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_exchangeunicodemodeturnoffansi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_foldersizedisplay", + "displayName": "Do not display Folder Size button on folder properties dialog box (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_foldersizedisplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_foldersizedisplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_ostcreation", + "displayName": "Do not allow an OST file to be created (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_ostcreation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_ostcreation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover", + "displayName": "Disable AutoDiscover (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverautodiscoversubdomain", + "displayName": "Exclude the query for the AutoDiscover domain (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverautodiscoversubdomain_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverautodiscoversubdomain_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverhttpredirect", + "displayName": "Exclude the HTTP redirect method (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverhttpredirect_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverhttpredirect_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverlkgurl", + "displayName": "Exclude the last known goode URL (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverlkgurl_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverlkgurl_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverrootdomain", + "displayName": "Exclude the root domain query based on your primary SMTP address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverrootdomain_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverrootdomain_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverscplookup", + "displayName": "Exclude the SCP object lookup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverscplookup_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoverscplookup_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoversrvrecord", + "displayName": "Exclude the SRV record query in DNS (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoversrvrecord_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookdisableautodiscover_l_outlookdisableautodiscoversrvrecord_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_personaldistributionlistsexchangeonly", + "displayName": "Do not validate personal Contact Groups when sending e-mail messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_personaldistributionlistsexchangeonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_personaldistributionlistsexchangeonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventcopyingormovingitemsbetweenaccounts", + "displayName": "Prevent copying or moving items between accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventcopyingormovingitemsbetweenaccounts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventcopyingormovingitemsbetweenaccounts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventcopyingormovingitemsbetweenaccounts_l_preventcopyingormovingitemsbetweenaccountsid", + "displayName": "SMTP address domain (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventnondefaultexchangeaccounts", + "displayName": "Prevent adding non-default Exchange accounts (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventnondefaultexchangeaccounts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preventnondefaultexchangeaccounts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags", + "displayName": "RPC/HTTP Connection Flags (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_l_selectrpchttpconnectionflags", + "displayName": "Select a combination of RPC/HTTP connection flags (see Explain tab for details): (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_l_selectrpchttpconnectionflags_0", + "displayName": "No Flags", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_l_selectrpchttpconnectionflags_47", + "displayName": "Flags: 1 + 2 + 3 + 4 + 5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_l_selectrpchttpconnectionflags_39", + "displayName": "Flags: 1 + 2 + 3 + 5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_l_selectrpchttpconnectionflags_43", + "displayName": "Flags: 1 + 2 + 4 + 5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_l_selectrpchttpconnectionflags_35", + "displayName": "Flags: 1 + 2 + 5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_l_selectrpchttpconnectionflags_41", + "displayName": "Flags: 1 + 4 + 5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpchttpconnectionflags_l_selectrpchttpconnectionflags_33", + "displayName": "Flags: 1 + 5", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyauthenticationsetting", + "displayName": "RPC Proxy Authentication Setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyauthenticationsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyauthenticationsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyauthenticationsetting_l_selectrpcproxyauthentication", + "displayName": "Authentication used to connect with the proxy server: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyauthenticationsetting_l_selectrpcproxyauthentication_1", + "displayName": "Basic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyauthenticationsetting_l_selectrpcproxyauthentication_2", + "displayName": "NTLM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyauthenticationsetting_l_selectrpcproxyauthentication_16", + "displayName": "Negotiate", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyauthenticationsetting_l_selectrpcproxyauthentication_65536", + "displayName": "Certificate", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyservername", + "displayName": "RPC Proxy Server Name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyservername_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyservername_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyservername_l_rpcproxyservernametextid", + "displayName": "Specify the proxy server name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyserverprincipalname", + "displayName": "Only connect if Proxy Server certificate has this principal name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyserverprincipalname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyserverprincipalname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_rpcproxyserverprincipalname_l_rpcproxyserverprincipalnametextid", + "displayName": "Specify the proxy server principal name (see Explain tab for details): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_setmaximumnumberofexchangeaccounts", + "displayName": "Set maximum number of Exchange accounts per profile (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_setmaximumnumberofexchangeaccounts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_setmaximumnumberofexchangeaccounts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_setmaximumnumberofexchangeaccounts_l_setmaximumnumberofexchangeaccountsspinid", + "displayName": "Number of Accounts: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_synchronizingdatainsharedfolders", + "displayName": "Synchronizing data in shared folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_synchronizingdatainsharedfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_synchronizingdatainsharedfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_synchronizingdatainsharedfolders_l_numberofdays", + "displayName": "Number of days (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbook", + "displayName": "Turn off Hierarchical Address Book (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbookdepartmentselection", + "displayName": "Turn off Hierarchical Address Book department selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbookdepartmentselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbookdepartmentselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbooksearch", + "displayName": "Turn off Hierarchical Address Book search (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbooksearch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_turnoffhierarchicaladdressbooksearch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_uselegacyoutlookauthenticationdialogs", + "displayName": "Use legacy Change Password authentication dialog boxes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_uselegacyoutlookauthenticationdialogs_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_uselegacyoutlookauthenticationdialogs_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_cachedexchangemodefilecachedexchangemode", + "displayName": "Cached Exchange Mode (File | Cached Exchange Mode) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_cachedexchangemodefilecachedexchangemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_cachedexchangemodefilecachedexchangemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_cachedexchangemodefilecachedexchangemode_l_selectcachedexchangemodefornewprofiles", + "displayName": "Select Cached Exchange Mode for new profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_cachedexchangemodefilecachedexchangemode_l_selectcachedexchangemodefornewprofiles_1", + "displayName": "Download Headers", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_cachedexchangemodefilecachedexchangemode_l_selectcachedexchangemodefornewprofiles_2", + "displayName": "Download Full Items", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_cachedexchangemodefilecachedexchangemode_l_selectcachedexchangemodefornewprofiles_3", + "displayName": "Download Headers and then Full Items", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_configurecachedexchangemode", + "displayName": "Use Cached Exchange Mode for new and existing Outlook profiles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_configurecachedexchangemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_configurecachedexchangemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadfullitemsfilecachedexchangemode", + "displayName": "Disallow Download Full Items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadfullitemsfilecachedexchangemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadfullitemsfilecachedexchangemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadheadersfilecachedexchangemode", + "displayName": "Disallow Download Headers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadheadersfilecachedexchangemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadheadersfilecachedexchangemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadheadersthenfullitemsfilecachedexchangemode", + "displayName": "Disallow Download Headers then Full Items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadheadersthenfullitemsfilecachedexchangemode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowdownloadheadersthenfullitemsfilecachedexchangemode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowonslowconnectionsonlydownloadheadersfilecachedexchan", + "displayName": "Disallow On Slow Connections Only Download Headers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowonslowconnectionsonlydownloadheadersfilecachedexchan_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_disallowonslowconnectionsonlydownloadheadersfilecachedexchan_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_downloadpublicfolderfavorites", + "displayName": "Download Public Folder Favorites (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_downloadpublicfolderfavorites_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_downloadpublicfolderfavorites_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_downloadshardnonmailfolders", + "displayName": "Download shared non-mail folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_downloadshardnonmailfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_downloadshardnonmailfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entermaximumsecondstowaittosyncchanges", + "displayName": "Enter maximum seconds to wait to sync changes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entermaximumsecondstowaittosyncchanges_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entermaximumsecondstowaittosyncchanges_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entermaximumsecondstowaittosyncchanges_l_entersecondstowaitbeforesyncdefault60sec", + "displayName": "Enter seconds to wait before sync(Default 60 sec.) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entersecondstowaittodownloadchangesfromserver", + "displayName": "Enter seconds to wait to download changes from server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entersecondstowaittodownloadchangesfromserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entersecondstowaittodownloadchangesfromserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entersecondstowaittodownloadchangesfromserver_l_entersecondstowaitbeforedownloaddefault30sec", + "displayName": "Enter seconds to wait before download(Default 30 sec.) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entersecondstowaittouploadchangestoserver", + "displayName": "Enter seconds to wait to upload changes to server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entersecondstowaittouploadchangestoserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entersecondstowaittouploadchangestoserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_entersecondstowaittouploadchangestoserver_l_entersecondstowaitbeforeuploaddefault15sec", + "displayName": "Enter seconds to wait before upload(Default 15 sec.) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_hybridmode", + "displayName": "Disable Exchange Fast Access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_hybridmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_hybridmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_incachedexchangemakesendreceivef9nulloperation", + "displayName": "Do not sync in Cached Exchange mode when users click Send/Receive or F9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_incachedexchangemakesendreceivef9nulloperation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_incachedexchangemakesendreceivef9nulloperation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_includeonlinemodegalinanr", + "displayName": "Use the Online Global Address List for Nickname Resolution (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_includeonlinemodegalinanr_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_cachedexchangemode_l_includeonlinemodegalinanr_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbookexactaliasmatching", + "displayName": "Return e-mail alias if it exactly matches the provided e-mail address when searching OAB (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbookexactaliasmatching_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbookexactaliasmatching_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbooklimitmanualoabdownloads", + "displayName": "Offline Address Book: Limit manual OAB downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbooklimitmanualoabdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbooklimitmanualoabdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbooklimitmanualoabdownloads_l_allowxxmanualoabdownloadsper13hrperiod", + "displayName": "Upper limit of number of manual OAB downloads per 13 hour period (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbooklimitnumberofincrementaloabdownloads", + "displayName": "Offline Address Book: Limit number of incremental OAB downloads (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbooklimitnumberofincrementaloabdownloads_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbooklimitnumberofincrementaloabdownloads_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbooklimitnumberofincrementaloabdownloads_l_allowxxincrementaloabdownloadsper13hrperiod", + "displayName": "Allow xx incremental OAB downloads per 13hr period (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbookpromptbeforedownloadingfulloab", + "displayName": "Offline Address Book: Prompt before Downloading Full OAB (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbookpromptbeforedownloadingfulloab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings~l_offlineaddressbook_l_offlineaddressbookpromptbeforedownloadingfulloab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_imap_l_turnonpurgewhenswitchingfolders", + "displayName": "Turn on purge when switching folders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_imap_l_turnonpurgewhenswitchingfolders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_imap_l_turnonpurgewhenswitchingfolders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_automaticallydownloadenclosures", + "displayName": "Automatically download enclosures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_automaticallydownloadenclosures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_automaticallydownloadenclosures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_defaultrssfeeds", + "displayName": "Default RSS Feeds (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_defaultrssfeeds_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_defaultrssfeeds_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_defaultrssfeeds_l_defaultrsssubscriptionspart", + "displayName": "List of default RSS Feeds (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_defaultrssfeeds_l_defaultrsssubscriptionspart_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_defaultrssfeeds_l_defaultrsssubscriptionspart_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_disableroamingofrsssubscriptions", + "displayName": "Do not roam users' RSS Feeds (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_disableroamingofrsssubscriptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_disableroamingofrsssubscriptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_downloadfulltextofarticles", + "displayName": "Download full text of articles as HTML attachments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_downloadfulltextofarticles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_downloadfulltextofarticles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_overridepublishedsyncinterval", + "displayName": "Override published sync interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_overridepublishedsyncinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_overridepublishedsyncinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_runrulesonrssitems", + "displayName": "Run rules on RSS items (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_runrulesonrssitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_runrulesonrssitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_synchronizeoutlookrssfeedswithcommonfeedlist", + "displayName": "Synchronize Outlook RSS Feeds with Common Feed List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_synchronizeoutlookrssfeedswithcommonfeedlist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_synchronizeoutlookrssfeedswithcommonfeedlist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_turnoffrssfeature", + "displayName": "Turn off RSS feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_turnoffrssfeature_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_rsssubscriptions_l_turnoffrssfeature_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_defaultsharepointlists", + "displayName": "Default SharePoint lists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_defaultsharepointlists_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_defaultsharepointlists_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_defaultsharepointlists_l_empty35", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_defaultsharepointlists_l_empty35_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_defaultsharepointlists_l_empty35_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_definecustomlabelforsharepointstore", + "displayName": "Define custom label for SharePoint store (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_definecustomlabelforsharepointstore_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_definecustomlabelforsharepointstore_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_definecustomlabelforsharepointstore_l_definecustomlabelforsharepointstorepart", + "displayName": "Enter custom label for SharePoint store: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_disableroamingofsharepointlists", + "displayName": "Do not roam users' SharePoint lists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_disableroamingofsharepointlists_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_disableroamingofsharepointlists_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_disablesharepointintegrationinoutlook", + "displayName": "Do not allow SharePoint-Outlook integration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_disablesharepointintegrationinoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_disablesharepointintegrationinoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_logsharepointsyncrequestsandresponses", + "displayName": "Log SharePoint sync requests and responses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_logsharepointsyncrequestsandresponses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_logsharepointsyncrequestsandresponses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_modifynumberofchangeditemsincluded", + "displayName": "Modify number of changed items included in SharePoint client page download (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_modifynumberofchangeditemsincluded_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_modifynumberofchangeditemsincluded_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_modifynumberofchangeditemsincluded_l_empty34", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_overridepublishedsyncinteral36", + "displayName": "Override published sync interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_overridepublishedsyncinteral36_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_sharepointintegration_l_overridepublishedsyncinteral36_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_automaticallydownloadenclosureswebcal", + "displayName": "Automatically download attachments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_automaticallydownloadenclosureswebcal_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_automaticallydownloadenclosureswebcal_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_defaultwebcalsubscriptions", + "displayName": "Default Internet Calendar subscriptions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_defaultwebcalsubscriptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_defaultwebcalsubscriptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_defaultwebcalsubscriptions_l_empty32", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_defaultwebcalsubscriptions_l_empty32_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_defaultwebcalsubscriptions_l_empty32_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_disableroamingofinternetcalendars", + "displayName": "Disable roaming of Internet Calendars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_disableroamingofinternetcalendars_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_disableroamingofinternetcalendars_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_disablewebcalintegration", + "displayName": "Do not include Internet Calendar integration in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_disablewebcalintegration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_disablewebcalintegration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_overridepublishedsyncinteral", + "displayName": "Override published sync interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_overridepublishedsyncinteral_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v2~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_webcalsubscriptions_l_overridepublishedsyncinteral_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v3~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preferprovidedemailinautodiscoverauthprompts", + "displayName": "Prefer the provided account email in AutoDiscover auth prompts. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v3~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preferprovidedemailinautodiscoverauthprompts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v3~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_preferprovidedemailinautodiscoverauthprompts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions_l_disableguesssmart", + "displayName": "Disable GuessSmart in Outlook. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions_l_disableguesssmart_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions_l_disableguesssmart_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions_l_disableroamingsettings", + "displayName": "Disable roaming settings in Outlook. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions_l_disableroamingsettings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions_l_disableroamingsettings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableoutlookfeedbackfeatures", + "displayName": "Disable Outlook features in the Feedback tab under the File menu in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableoutlookfeedbackfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableoutlookfeedbackfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableoutlookmobilehyperlink", + "displayName": "Disable Outlook Mobile Hyperlink (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableoutlookmobilehyperlink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableoutlookmobilehyperlink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportbackstage", + "displayName": "Disable the Support tab under the File menu in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportbackstage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportbackstage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportdiagnostics", + "displayName": "Disable support diagnostics in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportdiagnostics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportdiagnostics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportticketcreationinoutlook", + "displayName": "Disable support ticket creation in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportticketcreationinoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablesupportticketcreationinoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_disableaccountsettingsdetectionservice", + "displayName": "Prevent Outlook from interacting with the account settings detection service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_disableaccountsettingsdetectionservice_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_disableaccountsettingsdetectionservice_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_disableoffice365simplifiedaccountcreation", + "displayName": "Prevent Office 365 E-mail accounts from being configured within a simplified Interface (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_disableoffice365simplifiedaccountcreation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_accountsettingsemail_l_disableoffice365simplifiedaccountcreation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_eas_l_enableeasaccountcreation", + "displayName": "Enable Exchange ActiveSync account creation in the Outlook account setup UI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_eas_l_enableeasaccountcreation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_eas_l_enableeasaccountcreation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookenableofficeconfigserviceinautodiscover", + "displayName": "Allow Outlook Autodiscover to interact with Office Config Service (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookenableofficeconfigserviceinautodiscover_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v4~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_outlookenableofficeconfigserviceinautodiscover_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableadminnotifications", + "displayName": "Disable Outlook tenant admin notifications (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableadminnotifications_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disableadminnotifications_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablecrashnotificationonrestart", + "displayName": "Disable the Outlook crash notification when Outlook restarts. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablecrashnotificationonrestart_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_disablecrashnotificationonrestart_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_allowprivatekeycheck", + "displayName": "Check for the user's private key when the user sends an encrypted email that includes the user as a recipient (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_allowprivatekeycheck_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v5~policy~l_microsoftofficeoutlook~l_security~l_cryptography_l_allowprivatekeycheck_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel", + "displayName": "Junk E-mail protection level (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_l_selectlevel", + "displayName": "Select level: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_l_selectlevel_4294967295", + "displayName": "No Protection", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_l_selectlevel_6", + "displayName": "Low (Default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_l_selectlevel_3", + "displayName": "High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_l_selectlevel_2147483648", + "displayName": "Trusted Lists Only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_v2", + "displayName": "Junk E-mail protection level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_v2_l_selectlevel", + "displayName": "Select level: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_v2_l_selectlevel_4294967295", + "displayName": "No Protection", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_v2_l_selectlevel_6", + "displayName": "Low (Default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_v2_l_selectlevel_3", + "displayName": "High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_junkemail_l_junkemailprotectionlevel_v2_l_selectlevel_2147483648", + "displayName": "Trusted Lists Only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver", + "displayName": "Authentication with Exchange Server (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_l_selecttheauthenticationwithexchangeserver", + "displayName": "Select the authentication with Exchange server. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_l_selecttheauthenticationwithexchangeserver_9", + "displayName": "Kerberos/NTLM Password Authentication", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_l_selecttheauthenticationwithexchangeserver_16", + "displayName": "Kerberos Password Authentication", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_l_selecttheauthenticationwithexchangeserver_10", + "displayName": "NTLM Password Authentication", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_l_selecttheauthenticationwithexchangeserver_2147545088", + "displayName": "Insert a smart card", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_v2", + "displayName": "Authentication with Exchange Server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_v2_l_selecttheauthenticationwithexchangeserver", + "displayName": "Select the authentication with Exchange server. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_v2_l_selecttheauthenticationwithexchangeserver_9", + "displayName": "Kerberos/NTLM Password Authentication", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_v2_l_selecttheauthenticationwithexchangeserver_16", + "displayName": "Kerberos Password Authentication", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_v2_l_selecttheauthenticationwithexchangeserver_10", + "displayName": "NTLM Password Authentication", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v6~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_authenticationwithexchangeserver_v2_l_selecttheauthenticationwithexchangeserver_2147545088", + "displayName": "Insert a smart card", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_predefined_l_disableeditdefaultuserpermissions", + "displayName": "Limit which permissions can be assigned to Default, Anonymous, or My Organization on mail folders and calendars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_predefined_l_disableeditdefaultuserpermissions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_disableitemsinuserinterface~l_predefined_l_disableeditdefaultuserpermissions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_delegatesentitemsstyle", + "displayName": "Saving messages sent from a shared mailbox to the Sent Items folder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_delegatesentitemsstyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_delegates_l_delegatesentitemsstyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_shorteneventstype", + "displayName": "Shorten appointments and meetings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_shorteneventstype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_shorteneventstype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_shorteneventstype_l_selecttheshorteneventstype", + "displayName": "Select the Shorten Events Type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_shorteneventstype_l_selecttheshorteneventstype_none", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_shorteneventstype_l_selecttheshorteneventstype_end_early", + "displayName": "End Early", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_outlookoptions~l_preferences~l_calendaroptions_l_shorteneventstype_l_selecttheshorteneventstype_start_late", + "displayName": "Start Late", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_alwaysusemsoauthforautodiscover", + "displayName": "Autodiscover is always capable of using modern authentication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_alwaysusemsoauthforautodiscover_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_alwaysusemsoauthforautodiscover_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_autodiscoverredirectservers", + "displayName": "Don’t show redirect warnings for Autodiscover for the specified HTTPS server names (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_autodiscoverredirectservers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_autodiscoverredirectservers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v7~policy~l_microsoftofficeoutlook~l_toolsaccounts~l_exchangesettings_l_autodiscoverredirectservers_l_autodiscoverredirectserverslist", + "displayName": "HTTPS server names: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v8~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_recommendoutlookextension", + "displayName": "Recommend the Microsoft Outlook Extension (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v8~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_recommendoutlookextension_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v8~policy~l_microsoftofficeoutlook~l_outlookoptions~l_other_l_recommendoutlookextension_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_miscellaneous_l_equivalentcomaddin", + "displayName": "Deactivate Outlook web add-ins whose equivalent COM or VSTO add-in is installed (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_miscellaneous_l_equivalentcomaddin_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_miscellaneous_l_equivalentcomaddin_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_miscellaneous_l_equivalentcomaddin_l_equivalentcomaddin2", + "displayName": "Outlook web add-ins to deactivate (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_miscellaneous_l_equivalentcomaddin_l_equivalentcomaddin2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_miscellaneous_l_equivalentcomaddin_l_equivalentcomaddin2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_outlookoptions_l_specifymaxgroupssupported", + "displayName": "Maximum Groups Supported (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_outlookoptions_l_specifymaxgroupssupported_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_outlookoptions_l_specifymaxgroupssupported_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_outlk16v9~policy~l_microsoftofficeoutlook~l_outlookoptions_l_specifymaxgroupssupported_l_specifymaxgroupssupportedid", + "displayName": "Groups Count: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_disableautosavewhencoauthoring", + "displayName": "Don’t automatically save changes when working in the same PowerPoint presentation as others (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_disableautosavewhencoauthoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_disableautosavewhencoauthoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_preventcoauthoring", + "displayName": "Prevent co-authoring (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_preventcoauthoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_preventcoauthoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_turnoffrevisiontracking", + "displayName": "Turn off revision tracking (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_turnoffrevisiontracking_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_collaborationsettings~l_coauthoring_l_turnoffrevisiontracking_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_customizableerrormessages_l_listoferrormessagestocustomize", + "displayName": "List of error messages to customize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_customizableerrormessages_l_listoferrormessagestocustomize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_customizableerrormessages_l_listoferrormessagestocustomize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize80", + "displayName": "List of error messages to customize (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize80_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize80_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems157", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems157_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems157_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems157_l_enteracommandbaridtodisable", + "displayName": "Enter a command bar ID to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys158", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys158_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys158_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys158_l_enterakeyandmodifiertodisable", + "displayName": "Enter a key and modifier to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultmuteaudioinrecordingpresenterview", + "displayName": "Turn off microphone recording by default when recording a slide show (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultmuteaudioinrecordingpresenterview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultmuteaudioinrecordingpresenterview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultmuteaudioinscreenrecorder", + "displayName": "Turn off audio recording for screen recording (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultmuteaudioinscreenrecorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultmuteaudioinscreenrecorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultvideooffinrecordingpresenterview", + "displayName": "Turn off camera recording by default when recording a slide show (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultvideooffinrecordingpresenterview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_defaultvideooffinrecordingpresenterview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_broadcastslideshow", + "displayName": "Slide Show tab | Start Slide Show | Broadcast Slide Show (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_broadcastslideshow_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_broadcastslideshow_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient", + "displayName": "File tab | Share | Send Using E-mail (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview", + "displayName": "File tab | Options | Customize Ribbon | All Commands | Web Page Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlinkppt", + "displayName": "Insert tab | Links | Hyperlink (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlinkppt_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlinkppt_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolslanguage", + "displayName": "Review tab | Language | Language (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolslanguage_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolslanguage_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacrosppt", + "displayName": "Developer tab | Code | Macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacrosppt_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacrosppt_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity", + "displayName": "Developer tab | Code | Macro Security (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditorppt", + "displayName": "Developer tab | Code | Visual Basic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditorppt_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditorppt_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_webaddressppt", + "displayName": "File tab | Options | Customize Ribbon | All Commands | Address (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_webaddressppt_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_webaddressppt_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditorppt", + "displayName": "Alt+F11 (Developer | Code | Visual Basic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditorppt_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditorppt_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros", + "displayName": "Alt+F8 (Developer | Code | Macros) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlf5broadcastslideshow", + "displayName": "Ctrl+F5 (Slide Show | Start Slide Show | Broadcast Slide Show) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlf5broadcastslideshow_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlf5broadcastslideshow_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindppt", + "displayName": "Ctrl+F (Home | Editing | Find) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindppt_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindppt_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkppt", + "displayName": "Ctrl+K (Insert | Links | Hyperlink) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkppt_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkppt_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_enablerecordingribbontab", + "displayName": "Turn on recording ribbon tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_enablerecordingribbontab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_enablerecordingribbontab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_hidebuiltintablestyles", + "displayName": "Hide built in table styles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_hidebuiltintablestyles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_disableitemsinuserinterface~l_predefined_l_hidebuiltintablestyles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation", + "displayName": "Check for accessibility issues while editing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation", + "displayName": "Stop checking for alt text accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsandcolumns", + "displayName": "Stop checking for blank table rows and columns (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsandcolumns_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsandcolumns_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingformediafilescaptions", + "displayName": "Stop checking for media files which might need captions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingformediafilescaptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingformediafilescaptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingformergedandsplitcells", + "displayName": "Stop checking for merged and split cells (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingformergedandsplitcells_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingformergedandsplitcells_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingmeaningfulorderofobjectsonslides", + "displayName": "Stop checking to ensure a meaningful order of objects on slides (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingmeaningfulorderofobjectsonslides_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingmeaningfulorderofobjectsonslides_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingpresentationsallowprogrammaticaccess", + "displayName": "Stop checking to ensure presentations allow programmatic access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingpresentationsallowprogrammaticaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingpresentationsallowprogrammaticaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation", + "displayName": "Stop checking for table alt text accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation", + "displayName": "Stop checking for table header accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtextcontrast", + "displayName": "Stop checking for text color contrast (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtextcontrast_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtextcontrast_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingthatslidetitlesexist", + "displayName": "Stop checking that slide titles exist (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingthatslidetitlesexist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingthatslidetitlesexist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtoensureeachslidehasauniquetitle", + "displayName": "Stop checking to ensure each slide has a unique title (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtoensureeachslidehasauniquetitle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtoensureeachslidehasauniquetitle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful", + "displayName": "Stop checking to ensure hyperlink text is meaningful (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_defaultcustomtab", + "displayName": "Show custom templates tab by default in PowerPoint on the Office Start screen and in File | New (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_defaultcustomtab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_defaultcustomtab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_disableofficestartpowerpoint", + "displayName": "Disable the Office Start screen for PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_disableofficestartpowerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_disableofficestartpowerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_disableslideupdate", + "displayName": "Disable Slide Update (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_disableslideupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_disableslideupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_personaltemplatespath", + "displayName": "Personal templates path for PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_personaltemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_personaltemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160_l_personaltemplatespath_l_personaltemplatespath", + "displayName": "Personal templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp", + "displayName": "Turn off file synchronization via SOAP over HTTP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_miscellaneous160~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_allowautoextendfordesktop", + "displayName": "Allow PowerPoint to also automatically extend the display when presenting on a desktop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_allowautoextendfordesktop_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_allowautoextendfordesktop_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_backgroundprinting", + "displayName": "Print in background (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_backgroundprinting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_backgroundprinting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_chartreftrackingenabled", + "displayName": "Allow formatting and labels to track data points (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_chartreftrackingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_chartreftrackingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_disablesettopology", + "displayName": "Do not allow PowerPoint to automatically extend the display when presenting on a laptop or tablet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_disablesettopology_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_disablesettopology_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_displayenterprisethemes", + "displayName": "Display enterprise themes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_displayenterprisethemes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_displayenterprisethemes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_displayenterprisethemes_l_displayenterprisethemesdontshowothers", + "displayName": "Only show enterprise themes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_displayenterprisethemes_l_displayenterprisethemesdontshowothers_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_displayenterprisethemes_l_displayenterprisethemesdontshowothers_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_displayenterprisethemes_l_displayenterprisethemesgallerytitle", + "displayName": "Enterprise themes category title (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_donotdisturb", + "displayName": "Set user availablity to Do not Disturb during Slide Show (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_donotdisturb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_donotdisturb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_draganddroptextediting", + "displayName": "Allow text to be dragged and dropped (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_draganddroptextediting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_draganddroptextediting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_endwithblackslide", + "displayName": "End with black slide (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_endwithblackslide_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_endwithblackslide_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_maximumnumberofundos", + "displayName": "Maximum number of undos (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_maximumnumberofundos_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_maximumnumberofundos_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_maximumnumberofundos_l_maximumnumberofundos2", + "displayName": "Maximum number of undos (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_popupmenuonrightmouseclick", + "displayName": "Show menu on right mouse click (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_popupmenuonrightmouseclick_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_popupmenuonrightmouseclick_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_printinsertedobjectsatprinterresolution", + "displayName": "Print inserted objects at printer resolution (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_printinsertedobjectsatprinterresolution_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_printinsertedobjectsatprinterresolution_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_printtruetypefontsasgraphics", + "displayName": "Print TrueType fonts as graphics (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_printtruetypefontsasgraphics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_printtruetypefontsasgraphics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_recentlyusedfilelist", + "displayName": "Number of presentations in the Recent Presentations list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_recentlyusedfilelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_recentlyusedfilelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_recentlyusedfilelist_l_sizeofrecentlyusedfilelist", + "displayName": "Size of recently used file list (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_setnumberofplacesintherecentplaceslist", + "displayName": "Number of folders in the Recent Folders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_setnumberofplacesintherecentplaceslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_setnumberofplacesintherecentplaceslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_setnumberofplacesintherecentplaceslist_l_setnumberofplacesintherecentplaceslistspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_showpopupmenubutton", + "displayName": "Show popup toolbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_showpopupmenubutton_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_showpopupmenubutton_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_usesmartcutandpaste", + "displayName": "Use smart cut and paste (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_usesmartcutandpaste_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_usesmartcutandpaste_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_verticalruler", + "displayName": "Show vertical ruler (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_verticalruler_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_verticalruler_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_whenselectingautomaticallyselectentireword", + "displayName": "When selecting, automatically select entire word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_whenselectingautomaticallyselectentireword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_whenselectingautomaticallyselectentireword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_windowsintaskbar", + "displayName": "Show all windows in the Taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_windowsintaskbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced_l_windowsintaskbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_resizegraphicstofitbrowserwindow", + "displayName": "Resize graphics to fit browser window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_resizegraphicstofitbrowserwindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_resizegraphicstofitbrowserwindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_showslideanimationwhilebrowsing", + "displayName": "Show slide animation while browsing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_showslideanimationwhilebrowsing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_showslideanimationwhilebrowsing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation", + "displayName": "Slide navigation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_addslidenavigationcontrols", + "displayName": "Add slide navigation controls (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_addslidenavigationcontrols_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_addslidenavigationcontrols_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_colors", + "displayName": "Colors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_colors_browsercolors", + "displayName": "Browser colors", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_colors_presentationschemetextcolor", + "displayName": "Presentation colors (text color)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_colors_presentationschemeaccentcolor", + "displayName": "Presentation colors (accent color)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_colors_whitetextonblack", + "displayName": "White text on black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_advanced~l_weboptions~l_general_l_slidenavigation_l_colors_blacktextonwhite", + "displayName": "Black text on white", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionscustomizeribbon_l_displaydevelopertab", + "displayName": "Display Developer tab in the Ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionscustomizeribbon_l_displaydevelopertab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionscustomizeribbon_l_displaydevelopertab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_allowselectionfloaties", + "displayName": "Show Mini Toolbar on selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_allowselectionfloaties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_allowselectionfloaties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablegallerypreviews", + "displayName": "Enable Live Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablegallerypreviews_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablegallerypreviews_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disableincrementaldownload", + "displayName": "Wait to show users a cloud-based presentation until all content is downloaded (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disableincrementaldownload_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disableincrementaldownload_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablelivesubtitles", + "displayName": "Don’t allow the use of Live Subtitles (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablelivesubtitles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablelivesubtitles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablequickstarter", + "displayName": "Turn off QuickStarter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablequickstarter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablequickstarter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablesummaryslidesectionzoom", + "displayName": "Don’t allow Summary Zoom, Slide Zoom, and Section Zoom in a PowerPoint presentation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablesummaryslidesectionzoom_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_disablesummaryslidesectionzoom_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_promptifpowerpointisnotdefault", + "displayName": "Prompt the user if PowerPoint is not the default application for its file extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_promptifpowerpointisnotdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_promptifpowerpointisnotdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_powerpointdesigner_l_powerpointdesigneroptions", + "displayName": "[Deprecated] PowerPoint Designer Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_powerpointdesigner_l_powerpointdesigneroptions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_powerpointdesigner_l_powerpointdesigneroptions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_powerpointdesigner_l_powerpointdesigneroptions_l_powerpointdesigneroptions", + "displayName": "PowerPoint Designer options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_powerpointdesigner_l_powerpointdesigneroptions_l_powerpointdesigneroptions_0", + "displayName": "Disable PowerPoint Designer", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_powerpointdesigner_l_powerpointdesigneroptions_l_powerpointdesigneroptions_73187", + "displayName": "Enable PowerPoint Designer", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing_l_checkspellingasyoutype", + "displayName": "Check spelling as you type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing_l_checkspellingasyoutype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing_l_checkspellingasyoutype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing_l_enablecontextualspellingpolicy", + "displayName": "Check grammar with spelling (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing_l_enablecontextualspellingpolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing_l_enablecontextualspellingpolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_autofitbodytexttoplaceholder", + "displayName": "AutoFit body text to placeholder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_autofitbodytexttoplaceholder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_autofitbodytexttoplaceholder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_autofittitletexttoplaceholder", + "displayName": "AutoFit title text to placeholder (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_autofittitletexttoplaceholder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_autofittitletexttoplaceholder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_replacestraightquoteswithsmartquotes", + "displayName": "Replace straight quotes with smart quotes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_replacestraightquoteswithsmartquotes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_proofing~l_autoformatasyoutype_l_replacestraightquoteswithsmartquotes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_defaultfilelocation", + "displayName": "Default file location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_defaultfilelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_defaultfilelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_defaultfilelocation_l_defaultfilelocation0", + "displayName": "Default file location (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_disablepackageforcd", + "displayName": "Disable Package For CD (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_disablepackageforcd_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_disablepackageforcd_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_keeplastautosavedversions", + "displayName": "Keep the last AutoSaved versions of files for the next session (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_keeplastautosavedversions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_keeplastautosavedversions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_saveautorecoverinfo", + "displayName": "Save AutoRecover info (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_saveautorecoverinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_saveautorecoverinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_saveautorecoverinfo_l_autorecoversavefrequencyminutes", + "displayName": "AutoRecover save frequency (minutes): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_saveautorecoverinfo_l_autorecoversavelocation", + "displayName": "AutoRecover save location (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_saveautorecoverinfo_l_enablesaveautorecoverinfo", + "displayName": "Enable save AutoRecover info (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_saveautorecoverinfo_l_enablesaveautorecoverinfo_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_saveautorecoverinfo_l_enablesaveautorecoverinfo_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_savepowerpointfilesas", + "displayName": "Default file format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_savepowerpointfilesas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_savepowerpointfilesas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_savepowerpointfilesas_l_savepowerpointfilesas1", + "displayName": "Save PowerPoint files as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_savepowerpointfilesas_l_savepowerpointfilesas1_27", + "displayName": "PowerPoint Presentation (*.pptx)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_savepowerpointfilesas_l_savepowerpointfilesas1_28", + "displayName": "PowerPoint Macro-Enabled Presentation (*.pptm)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_savepowerpointfilesas_l_savepowerpointfilesas1_0", + "displayName": "PowerPoint 97-2003 Presentation (*.ppt)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_savepowerpointfilesas_l_savepowerpointfilesas1_52", + "displayName": "OpenDocument Presentation (*.odp)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_turnofffileformatcompatiblitydialogforodp", + "displayName": "Suppress file format compatibility dialog box for OpenDocument Presentation format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_turnofffileformatcompatiblitydialogforodp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_save_l_turnofffileformatcompatiblitydialogforodp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_determinewhethertoforceencryptedppt", + "displayName": "Scan encrypted macros in PowerPoint Open XML presentations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_determinewhethertoforceencryptedppt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_determinewhethertoforceencryptedppt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_determinewhethertoforceencryptedppt_l_determinewhethertoforceencryptedpptdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_determinewhethertoforceencryptedppt_l_determinewhethertoforceencryptedpptdropid_0", + "displayName": "Scan encrypted macros (default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_determinewhethertoforceencryptedppt_l_determinewhethertoforceencryptedpptdropid_1", + "displayName": "Scan if anti-virus software available", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_determinewhethertoforceencryptedppt_l_determinewhethertoforceencryptedpptdropid_2", + "displayName": "Load macros without scanning", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_downloadimages", + "displayName": "Unblock automatic download of linked images (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_downloadimages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_downloadimages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_makehiddenmarkupvisible", + "displayName": "Make hidden markup visible (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_makehiddenmarkupvisible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_makehiddenmarkupvisible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_runprograms", + "displayName": "Run Programs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_runprograms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_runprograms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_runprograms_l_empty", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_runprograms_l_empty_0", + "displayName": "disable (don't run any programs)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_runprograms_l_empty_1", + "displayName": "enable (prompt user before running)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_runprograms_l_empty_2", + "displayName": "enable all (run without prompting)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_turnofffilevalidation", + "displayName": "Turn off file validation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_turnofffilevalidation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security_l_turnofffilevalidation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_configurecngcipherchainingmode", + "displayName": "Configure CNG cipher chaining mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecbc", + "displayName": "Cipher Block Chaining (CBC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecfb", + "displayName": "Cipher Feedback (CFB)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngcipheralgorithm", + "displayName": "Set CNG cipher algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngcipheralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngcipheralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngcipheralgorithm_l_setcngcipheralgorithmid", + "displayName": "CNG cipher algorithm: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngcipherkeylength", + "displayName": "Set CNG cipher key length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngcipherkeylength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngcipherkeylength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngcipherkeylength_l_setcngcipherkeylengthspinid", + "displayName": "Cipher key length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngpasswordspincount", + "displayName": "Set CNG password spin count (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngpasswordspincount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngpasswordspincount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setcngpasswordspincount_l_setcngpasswordspincountspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setparametersforcngcontext", + "displayName": "Set parameters for CNG context (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setparametersforcngcontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setparametersforcngcontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_setparametersforcngcontext_l_setparametersforcngcontextid", + "displayName": "Parameters (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycnghashalgorithm", + "displayName": "Specify CNG hash algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycnghashalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycnghashalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha512", + "displayName": "SHA512", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm", + "displayName": "Specify CNG random number generator algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_l_specifycngrandomnumbergeneratoralgorithmid", + "displayName": "Random number generator: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycngsaltlength", + "displayName": "Specify CNG salt length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycngsaltlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycngsaltlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifycngsaltlength_l_specifycngsaltlengthspinid", + "displayName": "Number of bytes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifyencryptioncompatibility", + "displayName": "Specify encryption compatibility (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_0", + "displayName": "Use legacy format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_1", + "displayName": "Use next generation format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_2", + "displayName": "All files save with next generation", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_usenewkeyonpasswordchange", + "displayName": "Use new key on password change (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_usenewkeyonpasswordchange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_cryptography_l_usenewkeyonpasswordchange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet", + "displayName": "Block macros from running in Office files from the Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disableallapplicationextensions", + "displayName": "Disable all application add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disableallapplicationextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disableallapplicationextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned", + "displayName": "Require that application add-ins are signed by Trusted Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments", + "displayName": "Set maximum number of trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_l_setmaximumnumberoftrusteddocumentsspinid", + "displayName": "Maximum number: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve", + "displayName": "Set maximum number of trust records to preserve (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_l_setmaximumnumberoftrustrecordstopreservespinid", + "displayName": "Maximum to preserve: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject", + "displayName": "Trust access to Visual Basic Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_turnofftrusteddocuments", + "displayName": "Turn off trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_turnofftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_turnofftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork", + "displayName": "Turn off Trusted Documents on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_vbawarningspolicy", + "displayName": "VBA Macro Notification Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_vbawarningspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_vbawarningspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty3", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty3_2", + "displayName": "Disable all with notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty3_3", + "displayName": "Disable all except digitally signed macros", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty3_4", + "displayName": "Disable all without notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty3_1", + "displayName": "Enable all macros (not recommended)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_graphicfilters", + "displayName": "Graphic Filters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_graphicfilters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_graphicfilters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_graphicfilters_l_graphicfiltersdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_graphicfilters_l_graphicfiltersdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_graphicfilters_l_graphicfiltersdropid_1", + "displayName": "Save blocked", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint", + "displayName": "Legacy converters for PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_l_legacyconvertersforpowerpointdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_l_legacyconvertersforpowerpointdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_l_legacyconvertersforpowerpointdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_l_legacyconvertersforpowerpointdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_l_legacyconvertersforpowerpointdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_l_legacyconvertersforpowerpointdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforpowerpoint_l_legacyconvertersforpowerpointdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint", + "displayName": "Microsoft Office Open XML converters for PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_l_microsoftofficeopenxmlconvertersforpowerpointdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_l_microsoftofficeopenxmlconvertersforpowerpointdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_l_microsoftofficeopenxmlconvertersforpowerpointdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_l_microsoftofficeopenxmlconvertersforpowerpointdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_l_microsoftofficeopenxmlconvertersforpowerpointdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_l_microsoftofficeopenxmlconvertersforpowerpointdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_microsoftofficeopenxmlconvertersforpowerpoint_l_microsoftofficeopenxmlconvertersforpowerpointdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles", + "displayName": "OpenDocument Presentation files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_l_opendocumentpresentationfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_l_opendocumentpresentationfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_l_opendocumentpresentationfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_l_opendocumentpresentationfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_l_opendocumentpresentationfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_l_opendocumentpresentationfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumentpresentationfiles_l_opendocumentpresentationfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_outlinefiles", + "displayName": "Outline files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_outlinefiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_outlinefiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_outlinefiles_l_outlinefilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_outlinefiles_l_outlinefilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_outlinefiles_l_outlinefilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_outlinefiles_l_outlinefilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters", + "displayName": "PowerPoint beta converters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_l_powerpointbetaconvertersdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_l_powerpointbetaconvertersdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_l_powerpointbetaconvertersdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_l_powerpointbetaconvertersdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_l_powerpointbetaconvertersdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_l_powerpointbetaconvertersdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetaconverters_l_powerpointbetaconvertersdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles", + "displayName": "PowerPoint beta files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_l_powerpointbetafilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_l_powerpointbetafilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_l_powerpointbetafilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_l_powerpointbetafilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_l_powerpointbetafilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_l_powerpointbetafilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpointbetafiles_l_powerpointbetafilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior", + "displayName": "Set default file block behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_0", + "displayName": "Blocked files are not opened", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_1", + "displayName": "Blocked files open in Protected View and can not be edited", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_2", + "displayName": "Blocked files open in Protected View and can be edited", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages", + "displayName": "Web Pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview", + "displayName": "Do not open files from the Internet zone in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview", + "displayName": "Do not open files in unsafe locations in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview", + "displayName": "Open files on local Intranet UNC in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails", + "displayName": "Set document behavior if file validation fails (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid_0", + "displayName": "Block files", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid_1", + "displayName": "Open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3", + "displayName": "Checked: Allow edit. Unchecked: Do not allow edit. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook", + "displayName": "Turn off Protected View for attachments opened from Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork", + "displayName": "Allow Trusted Locations on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc", + "displayName": "Disable all trusted locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01", + "displayName": "Trusted Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_datecolon", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_descriptioncolon", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_pathcolon", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02", + "displayName": "Trusted Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders7", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders7_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders7_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_datecolon5", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_descriptioncolon6", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_pathcolon4", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03", + "displayName": "Trusted Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders11", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders11_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders11_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_datecolon9", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_descriptioncolon10", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_pathcolon8", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04", + "displayName": "Trusted Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders15", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders15_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders15_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_datecolon13", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_descriptioncolon14", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_pathcolon12", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05", + "displayName": "Trusted Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders19", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders19_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders19_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_datecolon17", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_descriptioncolon18", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_pathcolon16", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06", + "displayName": "Trusted Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders23", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders23_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders23_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_datecolon21", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_descriptioncolon22", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_pathcolon20", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07", + "displayName": "Trusted Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders27", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders27_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders27_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_datecolon25", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_descriptioncolon26", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_pathcolon24", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08", + "displayName": "Trusted Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders31", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders31_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders31_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_datecolon29", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_descriptioncolon30", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_pathcolon28", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09", + "displayName": "Trusted Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders35", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders35_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders35_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_datecolon33", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_descriptioncolon34", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_pathcolon32", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10", + "displayName": "Trusted Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders39", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders39_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders39_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_datecolon37", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_descriptioncolon38", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_pathcolon36", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11", + "displayName": "Trusted Location #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders43", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders43_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders43_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_datecolon41", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_descriptioncolon42", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_pathcolon40", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12", + "displayName": "Trusted Location #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders47", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders47_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders47_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_datecolon45", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_descriptioncolon46", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_pathcolon44", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13", + "displayName": "Trusted Location #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders51", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders51_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders51_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_datecolon49", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_descriptioncolon50", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_pathcolon48", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14", + "displayName": "Trusted Location #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders55", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders55_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders55_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_datecolon53", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_descriptioncolon54", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_pathcolon52", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15", + "displayName": "Trusted Location #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders59", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders59_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders59_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_datecolon57", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_descriptioncolon58", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_pathcolon56", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16", + "displayName": "Trusted Location #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders63", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders63_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders63_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_datecolon61", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_descriptioncolon62", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_pathcolon60", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17", + "displayName": "Trusted Location #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders67", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders67_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders67_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_datecolon65", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_descriptioncolon66", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_pathcolon64", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18", + "displayName": "Trusted Location #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders71", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders71_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders71_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_datecolon69", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_descriptioncolon70", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_pathcolon68", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19", + "displayName": "Trusted Location #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders75", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders75_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders75_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_datecolon73", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_descriptioncolon74", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_pathcolon72", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20", + "displayName": "Trusted Location #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders79", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders79_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders79_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_datecolon77", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_descriptioncolon78", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_pathcolon76", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles", + "displayName": "PowerPoint 2007 and later presentations, shows, templates, themes and add-in files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_l_powerpoint2007andlaterpresentationsshowstemplatesthemesandaddinfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_l_powerpoint2007andlaterpresentationsshowstemplatesthemesandaddinfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_l_powerpoint2007andlaterpresentationsshowstemplatesthemesandaddinfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_l_powerpoint2007andlaterpresentationsshowstemplatesthemesandaddinfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_l_powerpoint2007andlaterpresentationsshowstemplatesthemesandaddinfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_l_powerpoint2007andlaterpresentationsshowstemplatesthemesandaddinfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_options~l_security~l_trustcenter~l_fileblocksettings_l_ppt2007andlaterpresentationsshowstemplatesthemesandaddinfiles_l_powerpoint2007andlaterpresentationsshowstemplatesthemesandaddinfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles", + "displayName": "PowerPoint 97-2003 presentations, shows, templates and add-in files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_l_powerpoint972003presentationsshowstemplatesandaddinfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_l_powerpoint972003presentationsshowstemplatesandaddinfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_l_powerpoint972003presentationsshowstemplatesandaddinfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_l_powerpoint972003presentationsshowstemplatesandaddinfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_l_powerpoint972003presentationsshowstemplatesandaddinfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_l_powerpoint972003presentationsshowstemplatesandaddinfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v2~policy~l_ppt~l_powerpointoptions~l_security~l_trustcenter~l_fileblocksettings_l_powerpoint972003presentationsshowstemplatesandaddinfiles_l_powerpoint972003presentationsshowstemplatesandaddinfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v3~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingsectionname", + "displayName": "Stop checking for Section with valid name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v3~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingsectionname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v3~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckingsectionname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v3~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckinguniquesectionname", + "displayName": "Stop checking for section with unique name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v3~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckinguniquesectionname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v3~policy~l_microsoftofficepowerpoint~l_filetab~l_checkaccessibility_l_stopcheckinguniquesectionname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_ppt16v4~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_enablemoderncommentscreatenew", + "displayName": "Use modern comments in PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_ppt16v4~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_enablemoderncommentscreatenew_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_ppt16v4~policy~l_microsoftofficepowerpoint~l_powerpointoptions~l_optionsgeneral_l_enablemoderncommentscreatenew_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_printers_approvedusbprintdevicesuser", + "displayName": "List of Approved USB-connected print devices (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_printers_approvedusbprintdevicesuser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_printers_approvedusbprintdevicesuser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_printers_approvedusbprintdevicesuser_approvedusbprintdevices_list", + "displayName": "vid/pid (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_printers_enabledevicecontroluser", + "displayName": "Enable Device Control Printing Restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_printers_enabledevicecontroluser_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_printers_enabledevicecontroluser_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user", + "displayName": "Point and Print Restrictions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_nowarningnoelevationoninstall_enum", + "displayName": "When installing drivers for a new connection: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_nowarningnoelevationoninstall_enum_0", + "displayName": "Show warning and elevation prompt", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_nowarningnoelevationoninstall_enum_1", + "displayName": "Show warning only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_nowarningnoelevationonupdate_enum", + "displayName": "When updating drivers for an existing connection: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_nowarningnoelevationonupdate_enum_0", + "displayName": "Show warning and elevation prompt", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_nowarningnoelevationonupdate_enum_1", + "displayName": "Show warning only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_trustedforest_chk", + "displayName": "Users can only point and print to machines in their forest (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_trustedforest_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_trustedforest_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_trustedservers_chk", + "displayName": "Users can only point and print to these servers: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_trustedservers_chk_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_trustedservers_chk_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_printers_pointandprintrestrictions_user_pointandprint_trustedservers_edit", + "displayName": "Enter fully qualified server names separated by semicolons (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_privacy_disableprivacyexperience", + "displayName": "Disable Privacy Experience (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_privacy_disableprivacyexperience_0", + "displayName": "Disabled", + "description": "Allow the 'choose privacy settings for your device' screen for a new user during their first logon or when an existing user logs in for the first time after an upgrade." + }, + { + "id": "user_vendor_msft_policy_config_privacy_disableprivacyexperience_1", + "displayName": "Enabled", + "description": "Do not allow the 'choose privacy settings for your device' screen when a new user logs in or an existing user logs in for the first time after an upgrade." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_defaultcustomtab", + "displayName": "Show custom templates tab by default in Project on the Office Start screen and in File | New (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_defaultcustomtab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_defaultcustomtab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_disableofficestartproject", + "displayName": "Disable the Office Start screen for Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_disableofficestartproject_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_disableofficestartproject_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_mrutemplatelistlength", + "displayName": "Most Recently Used Template List Length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_mrutemplatelistlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_mrutemplatelistlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_mrutemplatelistlength_l_mrutemplatelistlength39", + "displayName": "Most Recently Used Template List Length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_personaltemplatespath", + "displayName": "Personal templates path for Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_personaltemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_personaltemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_miscellaneous_l_personaltemplatespath_l_personaltemplatespath", + "displayName": "Personal templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_optionscustomizeribbon_l_displaydevelopertab", + "displayName": "Display Developer tab in the Ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_optionscustomizeribbon_l_displaydevelopertab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_optionscustomizeribbon_l_displaydevelopertab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcproject_l_pjautocalc", + "displayName": "Automatic Calculation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcproject_l_pjautocalc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcproject_l_pjautocalc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcproject_l_pjcalcall", + "displayName": "Calculate all open projects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcproject_l_pjcalcall_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcproject_l_pjcalcall_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjactualcostscalc", + "displayName": "Actual costs are always calculated by Microsoft Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjactualcostscalc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjactualcostscalc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjandmovecompleted", + "displayName": "And move end of completed parts forward to status date (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjandmovecompleted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjandmovecompleted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjandmoveremaining", + "displayName": "And move start of remaining parts back to status date (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjandmoveremaining_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjandmoveremaining_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjcalcmultiplecriticalpaths", + "displayName": "Calculate multiple critical paths (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjcalcmultiplecriticalpaths_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjcalcmultiplecriticalpaths_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjcritifless", + "displayName": "Tasks are critical if slack is less than or equal to (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjcritifless_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjcritifless_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjcritifless_l_pjcritifless29", + "displayName": "Tasks are critical if slack is less than or equal to (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjdefaultfixedaccrual", + "displayName": "Default fixed costs accrual (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjdefaultfixedaccrual_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjdefaultfixedaccrual_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjdefaultfixedaccrual_l_pjdefaultfixedaccrual28", + "displayName": "Default fixed costs accrual (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjdefaultfixedaccrual_l_pjdefaultfixedaccrual28_1", + "displayName": "Start", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjdefaultfixedaccrual_l_pjdefaultfixedaccrual28_3", + "displayName": "Prorated", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjdefaultfixedaccrual_l_pjdefaultfixedaccrual28_2", + "displayName": "End", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjeditstototaltask", + "displayName": "Edits to total task % complete will be spread to the status date (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjeditstototaltask_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjeditstototaltask_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjedittototalspread", + "displayName": "Edits to total actual cost will be spread to the status date (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjedittototalspread_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjedittototalspread_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjinsertedprojects", + "displayName": "Inserted projects are calculated like summary tasks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjinsertedprojects_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjinsertedprojects_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjmovecompleted", + "displayName": "Move end of completed parts after status date back to status date (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjmovecompleted_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjmovecompleted_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjmoveremaining", + "displayName": "Move start of remaining parts before status date forward to status date (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjmoveremaining_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjmoveremaining_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjupdatingtask", + "displayName": "Updating task status updates resource status (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjupdatingtask_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile_l_pjupdatingtask_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline", + "displayName": "Baseline for Earned Value calculations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27", + "displayName": "Baseline for Earned Value calculations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_1", + "displayName": "Baseline", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_12", + "displayName": "Baseline 1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_13", + "displayName": "Baseline 2", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_14", + "displayName": "Baseline 3", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_15", + "displayName": "Baseline 4", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_16", + "displayName": "Baseline 5", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_17", + "displayName": "Baseline 6", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_18", + "displayName": "Baseline 7", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_19", + "displayName": "Baseline 8", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_20", + "displayName": "Baseline 9", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevbaseline_l_pjevbaseline27_21", + "displayName": "Baseline 10", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevmethod", + "displayName": "Default task Earned Value method (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevmethod_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevmethod_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevmethod_l_pjevmethod26", + "displayName": "Default task Earned Value method (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevmethod_l_pjevmethod26_0", + "displayName": "% Complete", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalculation~l_pjcalcprojectfile~l_pjev_l_pjevmethod_l_pjevmethod26_1", + "displayName": "Physical % Complete", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdayspermonth", + "displayName": "Days per month (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdayspermonth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdayspermonth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdayspermonth_l_pjdayspermonth20", + "displayName": "Days per month (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdefaultendtime", + "displayName": "Default end time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdefaultendtime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdefaultendtime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdefaultendtime_l_pjdefaultendtime2", + "displayName": "Default end time (Minutes after 12am * 10) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdefaultstarttime", + "displayName": "Default start time (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdefaultstarttime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdefaultstarttime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjdefaultstarttime_l_pjdefaultstarttime2", + "displayName": "Default start time (Minutes after 12am * 10) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear", + "displayName": "Fiscal year starts in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17", + "displayName": "Fiscal year starts in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_1", + "displayName": "January", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_2", + "displayName": "February", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_3", + "displayName": "March", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_4", + "displayName": "April", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_5", + "displayName": "May", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_6", + "displayName": "June", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_7", + "displayName": "July", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_8", + "displayName": "August", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_9", + "displayName": "September", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_10", + "displayName": "October", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_11", + "displayName": "November", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjfiscalyear_l_pjfiscalyear17_12", + "displayName": "December", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjhoursperday", + "displayName": "Hours per day (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjhoursperday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjhoursperday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjhoursperday_l_pjhoursperday18", + "displayName": "Hours per day (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjhoursperweek", + "displayName": "Hours per week (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjhoursperweek_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjhoursperweek_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjhoursperweek_l_pjhoursperweek19", + "displayName": "Hours per week (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjstartingyear", + "displayName": "Use starting year for FY numbering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjstartingyear_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjstartingyear_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts", + "displayName": "Week starts on (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_l_pjweekstarts16", + "displayName": "Week starts on (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_l_pjweekstarts16_6", + "displayName": "Saturday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_l_pjweekstarts16_0", + "displayName": "Sunday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_l_pjweekstarts16_1", + "displayName": "Monday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_l_pjweekstarts16_2", + "displayName": "Tuesday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_l_pjweekstarts16_3", + "displayName": "Wednesday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_l_pjweekstarts16_4", + "displayName": "Thursday", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjcalendar_l_pjweekstarts_l_pjweekstarts16_5", + "displayName": "Friday", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjallowcelldragdrop", + "displayName": "Allow cell drag and drop (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjallowcelldragdrop_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjallowcelldragdrop_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjasktoupdate", + "displayName": "Ask to update automatic links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjasktoupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjasktoupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjeditdirectlycell", + "displayName": "Edit directly in cell (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjeditdirectlycell_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjeditdirectlycell_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjmoveafterenter", + "displayName": "Move selection after enter (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjmoveafterenter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjeditoptionsproj_l_pjmoveafterenter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour", + "displayName": "Followed hyperlink color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15", + "displayName": "Followed hyperlink color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_16", + "displayName": "Automatic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_0", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_1", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_2", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_3", + "displayName": "Lime", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_4", + "displayName": "Aqua", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_5", + "displayName": "Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_6", + "displayName": "Fuchsia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_7", + "displayName": "White", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_8", + "displayName": "Maroon", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_9", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_10", + "displayName": "Olive", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_11", + "displayName": "Navy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_12", + "displayName": "Purple", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_13", + "displayName": "Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_14", + "displayName": "Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjfollowedlinkcolour_l_pjfollowedlinkcolour15_15", + "displayName": "Silver", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour", + "displayName": "Hyperlink color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14", + "displayName": "Hyperlink color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_16", + "displayName": "Automatic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_0", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_1", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_2", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_3", + "displayName": "Lime", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_4", + "displayName": "Aqua", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_5", + "displayName": "Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_6", + "displayName": "Fuchsia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_7", + "displayName": "White", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_8", + "displayName": "Maroon", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_9", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_10", + "displayName": "Olive", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_11", + "displayName": "Navy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_12", + "displayName": "Purple", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_13", + "displayName": "Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_14", + "displayName": "Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjhyperlinkcolour_l_pjhyperlinkcolour14_15", + "displayName": "Silver", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjunderlinelinks", + "displayName": "Underline hyperlinks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjunderlinelinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjhyperlinkappear_l_pjunderlinelinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjaddspace", + "displayName": "Add space before label (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjaddspace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjaddspace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays", + "displayName": "Days (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays_l_pjdays10", + "displayName": "Days (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays_l_pjdays10_0", + "displayName": "d", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays_l_pjdays10_1", + "displayName": "dy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays_l_pjdays10_2", + "displayName": "day", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays_l_pjdays10_3", + "displayName": "\r\n ", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjdays_l_pjdays10_4", + "displayName": "\r\n ", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours", + "displayName": "Hours (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours_l_pjhours9", + "displayName": "Hours (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours_l_pjhours9_0", + "displayName": "h", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours_l_pjhours9_1", + "displayName": "hr", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours_l_pjhours9_2", + "displayName": "hour", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours_l_pjhours9_3", + "displayName": "\r\n ", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjhours_l_pjhours9_4", + "displayName": "\r\n ", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes", + "displayName": "Minutes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes_l_pjminutes8", + "displayName": "Minutes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes_l_pjminutes8_0", + "displayName": "m", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes_l_pjminutes8_1", + "displayName": "min", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes_l_pjminutes8_2", + "displayName": "minute", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes_l_pjminutes8_3", + "displayName": "\r\n ", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjminutes_l_pjminutes8_4", + "displayName": "\r\n ", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths", + "displayName": "Months (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths_l_pjmonths12", + "displayName": "Months (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths_l_pjmonths12_0", + "displayName": "mo", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths_l_pjmonths12_1", + "displayName": "mon", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths_l_pjmonths12_2", + "displayName": "month", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths_l_pjmonths12_3", + "displayName": "\r\n ", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjmonths_l_pjmonths12_4", + "displayName": "\r\n ", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks", + "displayName": "Weeks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks_l_pjweeks11", + "displayName": "Weeks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks_l_pjweeks11_0", + "displayName": "w", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks_l_pjweeks11_1", + "displayName": "wk", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks_l_pjweeks11_2", + "displayName": "week", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks_l_pjweeks11_3", + "displayName": "\r\n ", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjweeks_l_pjweeks11_4", + "displayName": "\r\n ", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears", + "displayName": "Years (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears_l_pjyears13", + "displayName": "Years (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears_l_pjyears13_0", + "displayName": "y", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears_l_pjyears13_1", + "displayName": "yr", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears_l_pjyears13_2", + "displayName": "year", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears_l_pjyears13_3", + "displayName": "\r\n ", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjedit~l_pjviewoptions_l_pjyears_l_pjyears13_4", + "displayName": "\r\n ", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral_l_undolevels", + "displayName": "Undo Levels (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral_l_undolevels_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral_l_undolevels_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral_l_undolevels_l_undolevels5", + "displayName": "Undo Levels (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjautoaddnew", + "displayName": "Automatically add new resources and tasks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjautoaddnew_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjautoaddnew_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjdefaultotime", + "displayName": "Default overtime rate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjdefaultotime_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjdefaultotime_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjdefaultotime_l_pjdefaultotime7", + "displayName": "Default overtime rate (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjdefaultstdrate", + "displayName": "Default standard rate (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjdefaultstdrate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjdefaultstdrate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneraloptions_l_pjdefaultstdrate_l_pjdefaultstdrate6", + "displayName": "Default standard rate (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjopenlast", + "displayName": "Open last file on startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjopenlast_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjopenlast_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjpromptforinfo", + "displayName": "Prompt for project info for new projects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjpromptforinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjpromptforinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjrecentlyused", + "displayName": "Number of projects in the Recent Projects list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjrecentlyused_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjrecentlyused_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjrecentlyused_l_pjmrut", + "displayName": "Number of entries: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjsetautofilter", + "displayName": "Set AutoFilter on for new projects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjsetautofilter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_pjsetautofilter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_setnumberofplacesintherecentplaceslist", + "displayName": "Number of folders in the Recent Folders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_setnumberofplacesintherecentplaceslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_setnumberofplacesintherecentplaceslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjgeneral~l_pjgeneralprojoptions_l_setnumberofplacesintherecentplaceslist_l_setnumberofplacesintherecentplaceslistspinid", + "displayName": "Number of folders: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface_l_disableinternalidmatching", + "displayName": "Disable Internal ID Matching (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface_l_disableinternalidmatching_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface_l_disableinternalidmatching_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettings_l_pjgbuidisplaytoggle", + "displayName": "Display Project Guide (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettings_l_pjgbuidisplaytoggle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettings_l_pjgbuidisplaytoggle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultstartpage", + "displayName": "Project Guide Functionality and Layout page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultstartpage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultstartpage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultstartpage_l_pjgbuidefaultpageurl", + "displayName": "URL: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultstartpage_l_pjusedefaultstartpage34", + "displayName": "Project Guide Functionality and Layout page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultstartpage_l_pjusedefaultstartpage34_1", + "displayName": "Use Microsoft Project's Default page", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultstartpage_l_pjusedefaultstartpage34_0", + "displayName": "Use a custom page", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultxmlschema", + "displayName": "Project Guide Content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultxmlschema_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultxmlschema_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultxmlschema_l_pjgbuixmlschemapath", + "displayName": "XML file for custom content: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultxmlschema_l_pjusedefaultxmlschema35", + "displayName": "Project Guide Content (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultxmlschema_l_pjusedefaultxmlschema35_1", + "displayName": "Use Microsoft Project's default content", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjpgsettingsforproject1_l_pjusedefaultxmlschema_l_pjusedefaultxmlschema35_0", + "displayName": "Use custom content", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjchangedurationooui", + "displayName": "Edits to work, units or duration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjchangedurationooui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjchangedurationooui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjdeletenameooui", + "displayName": "Deletions in the Name column (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjdeletenameooui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjdeletenameooui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjenterdateooui", + "displayName": "Edits to start and finish dates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjenterdateooui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjenterdateooui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjresourceassignooui", + "displayName": "Resource Assigments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjresourceassignooui_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjinterface~l_pjshowindicators_l_pjresourceassignooui_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave_l_pjfiletype", + "displayName": "Save Microsoft Project files as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave_l_pjfiletype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave_l_pjfiletype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave_l_pjfiletype_l_pjfiletype30", + "displayName": "Save Microsoft Project files as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave_l_pjfiletype_l_pjfiletype30_msproject.mpp.12", + "displayName": "Project (*.mpp)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave_l_pjfiletype_l_pjfiletype30_msproject.mpt.12", + "displayName": "Template (*.mpt)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave_l_pjfiletype_l_pjfiletype30_msproject.mpp.9", + "displayName": "Project 2000-2003 (*.mpp)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjautomaticsaveoption", + "displayName": "Save Active Project only (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjautomaticsaveoption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjautomaticsaveoption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjautomaticsaveprompt", + "displayName": "Prompt before saving (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjautomaticsaveprompt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjautomaticsaveprompt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjsaveevery", + "displayName": "Auto Save every (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjsaveevery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjsaveevery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjsaveinterval", + "displayName": "Save Interval (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjsaveinterval_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjsaveinterval_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjautosave_l_pjsaveinterval_l_pjsaveinterval33", + "displayName": "Save Interval (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjcache_l_cachelocation", + "displayName": "Local Project Cache Location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjcache_l_cachelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjcache_l_cachelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjcache_l_cachelocation_l_cachelocation37", + "displayName": "Local Project Cache Location (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjcache_l_cachesizeperprofile", + "displayName": "Local Project Cache Size Limit in MB (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjcache_l_cachesizeperprofile_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjcache_l_cachesizeperprofile_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjcache_l_cachesizeperprofile_l_cachesizeperprofile38", + "displayName": "Local Project Cache Size Limit in MB (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjfilelocations_l_pjfilelocprojects", + "displayName": "Projects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjfilelocations_l_pjfilelocprojects_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjfilelocations_l_pjfilelocprojects_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjfilelocations_l_pjfilelocprojects_l_pjfilelocprojects31", + "displayName": "Projects (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjfilelocations_l_pjfilelocusertemplates", + "displayName": "User Templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjfilelocations_l_pjfilelocusertemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjfilelocations_l_pjfilelocusertemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjsave~l_pjfilelocations_l_pjfilelocusertemplates_l_pjfilelocusertemplates32", + "displayName": "User Templates (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_keeptasksonnearestworkingday", + "displayName": "Keep tasks on nearest working day (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_keeptasksonnearestworkingday_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_keeptasksonnearestworkingday_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjautolinktasks", + "displayName": "Autolink inserted or moved tasks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjautolinktasks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjautolinktasks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdefaulttasktypes", + "displayName": "Default task type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdefaulttasktypes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdefaulttasktypes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdefaulttasktypes_l_pjdefaulttasktypes25", + "displayName": "Default task type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdefaulttasktypes_l_pjdefaulttasktypes25_1", + "displayName": "Fixed Duration", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdefaulttasktypes_l_pjdefaulttasktypes25_0", + "displayName": "Fixed Units", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdefaulttasktypes_l_pjdefaulttasktypes25_2", + "displayName": "Fixed Work", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits", + "displayName": "Duration is entered in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits_l_pjdurationunits23", + "displayName": "Duration is entered in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits_l_pjdurationunits23_3", + "displayName": "Minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits_l_pjdurationunits23_5", + "displayName": "Hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits_l_pjdurationunits23_7", + "displayName": "Days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits_l_pjdurationunits23_9", + "displayName": "Weeks", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjdurationunits_l_pjdurationunits23_11", + "displayName": "Months", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasks", + "displayName": "New tasks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasks_l_pjnewtasks22", + "displayName": "New tasks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasks_l_pjnewtasks22_0", + "displayName": "Start on Project Start Date", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasks_l_pjnewtasks22_1", + "displayName": "Start on Current Date", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtaskseffort", + "displayName": "New tasks are effort driven (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtaskseffort_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtaskseffort_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasksestdurations", + "displayName": "New tasks have estimated durations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasksestdurations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjnewtasksestdurations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjshowestimateddurations", + "displayName": "Show that tasks have estimated durations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjshowestimateddurations_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjshowestimateddurations_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjsplitinprogresstasks", + "displayName": "Split in-progress tasks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjsplitinprogresstasks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjsplitinprogresstasks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjtaskshonorconstraints", + "displayName": "Tasks will always honor their constraint dates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjtaskshonorconstraints_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjtaskshonorconstraints_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits", + "displayName": "Work is entered in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits_l_pjworkunits24", + "displayName": "Work is entered in (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits_l_pjworkunits24_3", + "displayName": "Minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits_l_pjworkunits24_5", + "displayName": "Hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits_l_pjworkunits24_7", + "displayName": "Days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits_l_pjworkunits24_9", + "displayName": "Weeks", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_pjworkunits_l_pjworkunits24_11", + "displayName": "Months", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_setdefaultstartdatefornewtasks", + "displayName": "Set default start date for new tasks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_setdefaultstartdatefornewtasks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_setdefaultstartdatefornewtasks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_setnewtaskstobeautomaticallyscheduled", + "displayName": "Set new tasks to be automatically scheduled (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_setnewtaskstobeautomaticallyscheduled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_setnewtaskstobeautomaticallyscheduled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_showtasksschedulesuggestions", + "displayName": "Show tasks schedule suggestions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_showtasksschedulesuggestions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_showtasksschedulesuggestions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_showtasksschedulewarnings", + "displayName": "Show tasks schedule warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_showtasksschedulewarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_showtasksschedulewarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_taskscanbemadeinactive", + "displayName": "Tasks can be made inactive (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_taskscanbemadeinactive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_taskscanbemadeinactive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_updatemanuallyscheduledtaskswheneditinglinks", + "displayName": "Update manually scheduled tasks when editing links (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_updatemanuallyscheduledtaskswheneditinglinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjscheddoc_l_updatemanuallyscheduledtaskswheneditinglinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjassignmentunits", + "displayName": "Show assignment units as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjassignmentunits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjassignmentunits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjassignmentunits_l_pjassignmentunits21", + "displayName": "Show assignment units as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjassignmentunits_l_pjassignmentunits21_0", + "displayName": "Percentage", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjassignmentunits_l_pjassignmentunits21_1", + "displayName": "Decimal", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjshowschedmessage", + "displayName": "Show scheduling messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjshowschedmessage_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjschedule~l_pjschedproj_l_pjshowschedmessage_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency", + "displayName": "Default Project Currency (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4", + "displayName": "Default Project Currency (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_aed", + "displayName": "United Arab Emirates, Dirhams", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_afa", + "displayName": "Afghanistan, Afghanis", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_all", + "displayName": "Albania, Leke", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_amd", + "displayName": "Armenia, Drams", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_aoa", + "displayName": "Angola, Kwanza", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ars", + "displayName": "Argentina, Pesos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_aud", + "displayName": "Australia, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_awg", + "displayName": "Aruba, Guilders (also called Florins)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_azm", + "displayName": "Azerbaijan, Manats", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bam", + "displayName": "Bosnia and Herzegovina, Convertible Marka", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bbd", + "displayName": "Barbados, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bdt", + "displayName": "Bangladesh, Taka", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bgn", + "displayName": "Bulgaria, Leva", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bhd", + "displayName": "Bahrain, Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bif", + "displayName": "Burundi, Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bmd", + "displayName": "Bermuda, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bnd", + "displayName": "Brunei Darussalam, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bob", + "displayName": "Bolivia, Bolivianos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_brl", + "displayName": "Brazil, Brazil Real", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bsd", + "displayName": "Bahamas, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_btn", + "displayName": "Bhutan, Ngultrum", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bwp", + "displayName": "Botswana, Pulas", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_byr", + "displayName": "Belarus, Rubles", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_bzd", + "displayName": "Belize, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_cad", + "displayName": "Canada, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_cdf", + "displayName": "Congo (DRC)//Kinshasa, Congolese Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_chf", + "displayName": "Switzerland, Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_clp", + "displayName": "Chile, Pesos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_cny", + "displayName": "China, Yuan Renminbi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_cop", + "displayName": "Colombia, Pesos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_crc", + "displayName": "Costa Rica, Colones", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_csd", + "displayName": "Serbia, Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_cup", + "displayName": "Cuba, Pesos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_cve", + "displayName": "Cabo Verde, Escudos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_czk", + "displayName": "Czech Republic, Koruny", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_djf", + "displayName": "Djibouti, Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_dkk", + "displayName": "Denmark, Kroner", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_dop", + "displayName": "Dominican Republic, Pesos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_dzd", + "displayName": "Algeria, Algeria Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_egp", + "displayName": "Egypt, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ern", + "displayName": "Eritrea, Nakfa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_etb", + "displayName": "Ethiopia, Birr", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_eur", + "displayName": "Euro Member Countries, Euro", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_fjd", + "displayName": "Fiji, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_fkp", + "displayName": "Falkland (Malvinas) Islands, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_gbp", + "displayName": "United Kingdom, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_gel", + "displayName": "Georgia, Lari", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ggp", + "displayName": "Guernsey, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ghc", + "displayName": "Ghana, Cedis", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_gip", + "displayName": "Gibraltar, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_gmd", + "displayName": "Gambia, Dalasi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_gnf", + "displayName": "Guinea, Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_gtq", + "displayName": "Guatemala, Quetzales", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_gyd", + "displayName": "Guyana, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_hkd", + "displayName": "Hong Kong, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_hnl", + "displayName": "Honduras, Lempiras", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_hrk", + "displayName": "Croatia, Kuna", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_htg", + "displayName": "Haiti, Gourdes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_huf", + "displayName": "Hungary, Forint", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_idr", + "displayName": "Indonesia, Rupiahs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ils", + "displayName": "Israel, New Shekels", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_imp", + "displayName": "Isle of Man, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_inr", + "displayName": "India, Rupees", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_iqd", + "displayName": "Iraq, Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_irr", + "displayName": "Iran, Rials", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_isk", + "displayName": "Iceland, Kronur", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_jep", + "displayName": "Jersey, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_jmd", + "displayName": "Jamaica, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_jod", + "displayName": "Jordan, Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_jpy", + "displayName": "Japan, Yen", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_kes", + "displayName": "Kenya, Shillings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_kgs", + "displayName": "Kyrgyzstan, Soms", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_khr", + "displayName": "Cambodia, Riels", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_kmf", + "displayName": "Comoros, Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_kpw", + "displayName": "North Korea, Won", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_krw", + "displayName": "Korea, Won", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_kwd", + "displayName": "Kuwait, Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_kyd", + "displayName": "Cayman Islands, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_kzt", + "displayName": "Kazakhstan, Tenge", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_lak", + "displayName": "Laos, Kips", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_lbp", + "displayName": "Lebanon, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_lkr", + "displayName": "Sri Lanka, Rupees", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_lrd", + "displayName": "Liberia, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_lsl", + "displayName": "Lesotho, Maloti", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ltl", + "displayName": "Lithuania, Litai", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_lyd", + "displayName": "Libya, Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mad", + "displayName": "Morocco, Dirhams", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mdl", + "displayName": "Moldova, Lei", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mga", + "displayName": "Madagascar, Ariary", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mkd", + "displayName": "Macedonia FYRO, Denars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mmk", + "displayName": "Myanmar (Burma), Kyats", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mnt", + "displayName": "Mongolia, Tugriks", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mop", + "displayName": "Macao, Patacas", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mro", + "displayName": "Mauritania, Ouguiyas", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mur", + "displayName": "Mauritius, Rupees", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mvr", + "displayName": "Maldives (Maldive Islands), Rufiyaa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mwk", + "displayName": "Malawi, Kwachas", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mxn", + "displayName": "Mexico, Pesos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_myr", + "displayName": "Malaysia, Ringgits", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_mzm", + "displayName": "Mozambique, Meticais", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_nad", + "displayName": "Namibia, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ngn", + "displayName": "Nigeria, Nairas", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_nio", + "displayName": "Nicaragua, Cordobas", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_nok", + "displayName": "Norway, Krone", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_npr", + "displayName": "Nepal, Nepal Rupees", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_nzd", + "displayName": "New Zealand, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_omr", + "displayName": "Oman, Rials", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_pab", + "displayName": "Panama, Balboa", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_pen", + "displayName": "Peru, Nuevos Soles", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_pgk", + "displayName": "Papua New Guinea, Kina", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_php", + "displayName": "Philippines, Pesos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_pkr", + "displayName": "Pakistan, Rupees", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_pln", + "displayName": "Poland, Zlotych", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_pyg", + "displayName": "Paraguay, Guarani", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_qar", + "displayName": "Qatar, Rials", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ron", + "displayName": "Romania, New Lei", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_rub", + "displayName": "Russia, Rubles", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_rwf", + "displayName": "Rwanda, Rwanda Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_sar", + "displayName": "Saudi Arabia, Riyals", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_sbd", + "displayName": "Solomon Islands, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_scr", + "displayName": "Seychelles, Rupees", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_sdd", + "displayName": "Sudan, Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_sek", + "displayName": "Sweden, Kronor", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_sgd", + "displayName": "Singapore, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_shp", + "displayName": "Saint Helena, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_sll", + "displayName": "Sierra Leone, Leones", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_sos", + "displayName": "Somalia, Shillings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_spl", + "displayName": "Seborga, Luigini", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_srd", + "displayName": "Suriname, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_std", + "displayName": "São Tome and Principe, Dobras", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_svc", + "displayName": "El Salvador, Colones", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_syp", + "displayName": "Syria, Pounds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_szl", + "displayName": "Swaziland, Emalangeni", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_thb", + "displayName": "Thailand, Baht", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_tjs", + "displayName": "Tajikistan, Somoni", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_tmm", + "displayName": "Turkmenistan, Manats", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_tnd", + "displayName": "Tunisia, Dinars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_top", + "displayName": "Tonga, Pa'anga", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_try", + "displayName": "Turkey, Lira", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ttd", + "displayName": "Trinidad and Tobago, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_tvd", + "displayName": "Tuvalu, Tuvalu Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_twd", + "displayName": "Taiwan, New Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_tzs", + "displayName": "Tanzania, Shillings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_uah", + "displayName": "Ukraine, Hryvnia", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ugx", + "displayName": "Uganda, Shillings", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_usd", + "displayName": "United States of America, Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_uyu", + "displayName": "Uruguay, Pesos", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_uzs", + "displayName": "Uzbekistan, Sums", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_ves", + "displayName": "Venezuela, Bolívar", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_vnd", + "displayName": "Vietnam, Dong", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_vuv", + "displayName": "Vanuatu, Vatu", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_wst", + "displayName": "Samoa, Tala", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xaf", + "displayName": "Communauté Financière Africaine BEAC, Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xag", + "displayName": "Silver, Ounces", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xau", + "displayName": "Gold, Ounces", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xcd", + "displayName": "East Caribbean Dollars", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xdr", + "displayName": "International Monetary Fund (IMF) Special Drawing Rights", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xof", + "displayName": "Communauté Financière Africaine BCEAO, Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xpd", + "displayName": "Palladium Ounces", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xpf", + "displayName": "Comptoirs Français du Pacifique Francs", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_xpt", + "displayName": "Platinum, Ounces", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_yer", + "displayName": "Yemen, Rials", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_zar", + "displayName": "South Africa, Rand", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_zmk", + "displayName": "Zambia, Kwacha", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_defaultprojectcurrency_l_defaultprojectcurrency4_zwd", + "displayName": "Zimbabwe, Zimbabwe Dollars", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat", + "displayName": "Date Format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3", + "displayName": "Date Format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_0", + "displayName": "1/31/00 12:33 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_1", + "displayName": "1/31/00", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_20", + "displayName": "1/31/2000", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_2", + "displayName": "January 31, 2000 12:33 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_3", + "displayName": "January 31, 2000", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_4", + "displayName": "Jan 31 12:33 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_5", + "displayName": "Jan 31 '00", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_6", + "displayName": "January 31", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_7", + "displayName": "Jan 31", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_8", + "displayName": "Mon 1/31/00 12:33 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_9", + "displayName": "Mon 1/31/00", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_10", + "displayName": "Mon Jan 31, '00", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_11", + "displayName": "Mon 12:33 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_15", + "displayName": "Mon Jan 31", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_16", + "displayName": "Mon 1/31", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_17", + "displayName": "Mon 31", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_12", + "displayName": "1/31", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_13", + "displayName": "31", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_14", + "displayName": "12:33 PM", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_18", + "displayName": "W1/1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdateformat_l_pjdateformat3_19", + "displayName": "W1/1/00 12:33 PM", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview", + "displayName": "Default View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2", + "displayName": "Default View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_bar rollup", + "displayName": "Bar Rollup", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_calendar", + "displayName": "Calendar", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_descriptive network diagram", + "displayName": "Descriptive Network Diagram", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_detail gantt", + "displayName": "Detail Gantt", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_gantt chart", + "displayName": "Gantt Chart", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_leveling gantt", + "displayName": "Leveling Gantt", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_milestone date rollup", + "displayName": "Milestone Date Rollup", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_milestone rollup", + "displayName": "Milestone Rollup", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_network diagram", + "displayName": "Network Diagram", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_relationship diagram", + "displayName": "Relationship Diagram", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_resource allocation", + "displayName": "Resource Allocation", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_resource form", + "displayName": "Resource Form", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_resource graph", + "displayName": "Resource Graph", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_resource name form", + "displayName": "Resource Names Form", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_resource sheet", + "displayName": "Resource Sheet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_resource usage", + "displayName": "Resource Usage", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_task details form", + "displayName": "Task Details Form", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_task entry", + "displayName": "Task Entry", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_task form", + "displayName": "Task Form", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_task name form", + "displayName": "Task Name Form", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_task sheet", + "displayName": "Task Sheet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_task usage", + "displayName": "Task Usage", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_pjdefaultview_l_pjdefaultview2_tracking gantt", + "displayName": "Tracking Gantt", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_projectsummarytask", + "displayName": "Project Summary Task (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_projectsummarytask_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview_l_projectsummarytask_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_calendartype_l_calendartype0", + "displayName": "Calendar Type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_calendartype_l_calendartype0_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_calendartype_l_calendartype0_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_calendartype_l_calendartype0_l_calendartype1", + "displayName": "Calendar Type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_calendartype_l_calendartype0_l_calendartype1_1", + "displayName": "Gregorian Calendar", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_calendartype_l_calendartype0_l_calendartype1_6", + "displayName": "Hijri Calendar", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_calendartype_l_calendartype0_l_calendartype1_7", + "displayName": "Thai Buddhist", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_automaticallyaddnewitemstotheglobalproject", + "displayName": "Automatically add new items to the global project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_automaticallyaddnewitemstotheglobalproject_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_automaticallyaddnewitemstotheglobalproject_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjentrybar", + "displayName": "Entry Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjentrybar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjentrybar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjolelinks", + "displayName": "OLE Link Indicators (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjolelinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjolelinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjprojectscreentips", + "displayName": "Project Screentips (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjprojectscreentips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjprojectscreentips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjscrollbar", + "displayName": "Scroll Bars (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjscrollbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjscrollbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjstatusbar", + "displayName": "Status Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjstatusbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjstatusbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjwindowsinstatusbar", + "displayName": "Windows in Taskbar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjwindowsinstatusbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_pjview~l_pjshow_l_pjwindowsinstatusbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_enableuntrustedintranetzoneaccesstoprojectserver", + "displayName": "Enable untrusted intranet zone access to Project server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_enableuntrustedintranetzoneaccesstoprojectserver_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_enableuntrustedintranetzoneaccesstoprojectserver_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_legacyfileformats", + "displayName": "Previous-version file formats (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_legacyfileformats_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_legacyfileformats_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_legacyfileformats_l_empty", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_legacyfileformats_l_empty_0", + "displayName": "Do not open or save", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_legacyfileformats_l_empty_1", + "displayName": "Prompt when opening and saving", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security_l_legacyfileformats_l_empty_2", + "displayName": "Allow opening and saving", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_configurecngcipherchainingmode", + "displayName": "Configure CNG cipher chaining mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecbc", + "displayName": "Cipher Block Chaining (CBC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecfb", + "displayName": "Cipher Feedback (CFB)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngcipheralgorithm", + "displayName": "Set CNG cipher algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngcipheralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngcipheralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngcipheralgorithm_l_setcngcipheralgorithmid", + "displayName": "CNG cipher algorithm: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngcipherkeylength", + "displayName": "Set CNG cipher key length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngcipherkeylength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngcipherkeylength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngcipherkeylength_l_setcngcipherkeylengthspinid", + "displayName": "Cipher key length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngpasswordspincount", + "displayName": "Set CNG password spin count (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngpasswordspincount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngpasswordspincount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setcngpasswordspincount_l_setcngpasswordspincountspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setparametersforcngcontext", + "displayName": "Set parameters for CNG context (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setparametersforcngcontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setparametersforcngcontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_setparametersforcngcontext_l_setparametersforcngcontextid", + "displayName": "Parameters (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycnghashalgorithm", + "displayName": "Specify CNG hash algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycnghashalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycnghashalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha512", + "displayName": "SHA512", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm", + "displayName": "Specify CNG random number generator algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_l_specifycngrandomnumbergeneratoralgorithmid", + "displayName": "Random number generator: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycngsaltlength", + "displayName": "Specify CNG salt length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycngsaltlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycngsaltlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_cryptography_l_specifycngsaltlength_l_specifycngsaltlengthspinid", + "displayName": "Number of bytes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_pjmacro_l_pjsecuritylevel", + "displayName": "Security Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_pjmacro_l_pjsecuritylevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_pjmacro_l_pjsecuritylevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_pjmacro_l_pjsecuritylevel_l_pjsecuritylevel36", + "displayName": "Security Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_pjmacro_l_pjsecuritylevel_l_pjsecuritylevel36_1", + "displayName": "Low (not recommended)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_pjmacro_l_pjsecuritylevel_l_pjsecuritylevel36_2", + "displayName": "Medium", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_pjmacro_l_pjsecuritylevel_l_pjsecuritylevel36_3", + "displayName": "High", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_pjmacro_l_pjsecuritylevel_l_pjsecuritylevel36_4", + "displayName": "Very High", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_allowtrustedlocationsonthenetwork", + "displayName": "Allow Trusted Locations on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_allowtrustedlocationsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_allowtrustedlocationsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disableallapplicationextensions", + "displayName": "Disable all application add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disableallapplicationextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disableallapplicationextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustedloc", + "displayName": "Disable all trusted locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustedloc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_disabletrustedloc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned", + "displayName": "Require that application add-ins are signed by Trusted Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01", + "displayName": "Trusted Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01_l_allowsubfolders", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01_l_allowsubfolders_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01_l_allowsubfolders_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01_l_datecolon", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01_l_descriptioncolon", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc01_l_pathcolon", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02", + "displayName": "Trusted Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02_l_allowsubfolders15", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02_l_allowsubfolders15_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02_l_allowsubfolders15_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02_l_datecolon13", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02_l_descriptioncolon14", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc02_l_pathcolon12", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03", + "displayName": "Trusted Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03_l_allowsubfolders19", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03_l_allowsubfolders19_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03_l_allowsubfolders19_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03_l_datecolon17", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03_l_descriptioncolon18", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc03_l_pathcolon16", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04", + "displayName": "Trusted Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04_l_allowsubfolders23", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04_l_allowsubfolders23_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04_l_allowsubfolders23_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04_l_datecolon21", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04_l_descriptioncolon22", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc04_l_pathcolon20", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05", + "displayName": "Trusted Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05_l_allowsubfolders27", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05_l_allowsubfolders27_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05_l_allowsubfolders27_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05_l_datecolon25", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05_l_descriptioncolon26", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc05_l_pathcolon24", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06", + "displayName": "Trusted Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06_l_allowsubfolders31", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06_l_allowsubfolders31_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06_l_allowsubfolders31_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06_l_datecolon29", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06_l_descriptioncolon30", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc06_l_pathcolon28", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07", + "displayName": "Trusted Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07_l_allowsubfolders35", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07_l_allowsubfolders35_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07_l_allowsubfolders35_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07_l_datecolon33", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07_l_descriptioncolon34", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc07_l_pathcolon32", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08", + "displayName": "Trusted Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08_l_allowsubfolders39", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08_l_allowsubfolders39_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08_l_allowsubfolders39_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08_l_datecolon37", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08_l_descriptioncolon38", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc08_l_pathcolon36", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09", + "displayName": "Trusted Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09_l_allowsubfolders43", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09_l_allowsubfolders43_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09_l_allowsubfolders43_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09_l_datecolon41", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09_l_descriptioncolon42", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc09_l_pathcolon40", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10", + "displayName": "Trusted Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10_l_allowsubfolders47", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10_l_allowsubfolders47_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10_l_allowsubfolders47_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10_l_datecolon45", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10_l_descriptioncolon46", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc10_l_pathcolon44", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11", + "displayName": "Trusted Location #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11_l_allowsubfolders51", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11_l_allowsubfolders51_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11_l_allowsubfolders51_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11_l_datecolon49", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11_l_descriptioncolon50", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc11_l_pathcolon48", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12", + "displayName": "Trusted Location #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12_l_allowsubfolders55", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12_l_allowsubfolders55_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12_l_allowsubfolders55_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12_l_datecolon53", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12_l_descriptioncolon54", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc12_l_pathcolon52", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13", + "displayName": "Trusted Location #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13_l_allowsubfolders59", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13_l_allowsubfolders59_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13_l_allowsubfolders59_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13_l_datecolon57", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13_l_descriptioncolon58", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc13_l_pathcolon56", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14", + "displayName": "Trusted Location #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14_l_allowsubfolders63", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14_l_allowsubfolders63_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14_l_allowsubfolders63_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14_l_datecolon61", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14_l_descriptioncolon62", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc14_l_pathcolon60", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15", + "displayName": "Trusted Location #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15_l_allowsubfolders67", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15_l_allowsubfolders67_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15_l_allowsubfolders67_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15_l_datecolon65", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15_l_descriptioncolon66", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc15_l_pathcolon64", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16", + "displayName": "Trusted Location #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16_l_allowsubfolders71", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16_l_allowsubfolders71_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16_l_allowsubfolders71_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16_l_datecolon69", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16_l_descriptioncolon70", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc16_l_pathcolon68", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17", + "displayName": "Trusted Location #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17_l_allowsubfolders75", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17_l_allowsubfolders75_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17_l_allowsubfolders75_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17_l_datecolon73", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17_l_descriptioncolon74", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc17_l_pathcolon72", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18", + "displayName": "Trusted Location #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18_l_allowsubfolders79", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18_l_allowsubfolders79_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18_l_allowsubfolders79_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18_l_datecolon77", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18_l_descriptioncolon78", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc18_l_pathcolon76", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19", + "displayName": "Trusted Location #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19_l_allowsubfolders83", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19_l_allowsubfolders83_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19_l_allowsubfolders83_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19_l_datecolon81", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19_l_descriptioncolon82", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc19_l_pathcolon80", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20", + "displayName": "Trusted Location #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20_l_allowsubfolders87", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20_l_allowsubfolders87_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20_l_allowsubfolders87_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20_l_datecolon85", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20_l_descriptioncolon86", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_trustedloc20_l_pathcolon84", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_vbawarningspolicy", + "displayName": "VBA Macro Notification Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_vbawarningspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_vbawarningspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_2", + "displayName": "Disable all with notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_3", + "displayName": "Disable all except digitally signed macros", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_4", + "displayName": "Disable all without notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_proj16v2~policy~l_proj~l_projectoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_1", + "displayName": "Enable all macros (not recommended)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems2", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems2_l_enteracommandbaridtodisable", + "displayName": "Enter a command bar ID to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filepublishtoweb", + "displayName": "File tab | Export | Publish HTML (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filepublishtoweb_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filepublishtoweb_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendemailemailpreview", + "displayName": "File tab | Share | E-mail Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendemailemailpreview_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendemailemailpreview_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendemailsendthispage", + "displayName": "File tab | Share | Email (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendemailsendthispage_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendemailsendthispage_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview", + "displayName": "Web tab | View | Web Page Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_puboptions1", + "displayName": "File tab | Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_puboptions1_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_puboptions1_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsaddins", + "displayName": "Developer tab | Add-Ins | COM Add-Ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsaddins_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsaddins_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacro", + "displayName": "Developer tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacro_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacro_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacros", + "displayName": "Developer tab | Code | Macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacros_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacros_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity", + "displayName": "Developer tab | Code | Macro Security (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditor", + "displayName": "Developer tab | Code | Visual Basic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditor_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditor_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_adddoublequotesinhebrewalphabetnumbering", + "displayName": "Add double quotes in Hebrew alphabet numbering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_adddoublequotesinhebrewalphabetnumbering_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_adddoublequotesinhebrewalphabetnumbering_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_defaultbuiltintab", + "displayName": "Default tab to show in Publisher on the Office Start screen and in File | New (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_defaultbuiltintab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_defaultbuiltintab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_defaultbuiltintab_l_defaultbuiltintab", + "displayName": "Default tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_defaultbuiltintab_l_defaultbuiltintab_0", + "displayName": "Featured", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_defaultbuiltintab_l_defaultbuiltintab_2", + "displayName": "Built-in", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_defaultbuiltintab_l_defaultbuiltintab_1", + "displayName": "Custom", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_disableofficestartpublisher", + "displayName": "Disable the Office Start screen for Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_disableofficestartpublisher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_disableofficestartpublisher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_personaltemplatespath", + "displayName": "Personal templates path for Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_personaltemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_personaltemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_personaltemplatespath_l_personaltemplatespath", + "displayName": "Personal templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_promptusertosetupprinter", + "displayName": "Prompt user to setup printer (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_promptusertosetupprinter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_miscellaneous_l_promptusertosetupprinter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_allowtexttobedraggedanddropped", + "displayName": "Allow text to be dragged and dropped (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_allowtexttobedraggedanddropped_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_allowtexttobedraggedanddropped_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallyhyphenateinnewtextboxes", + "displayName": "Automatically hyphenate in new text boxes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallyhyphenateinnewtextboxes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallyhyphenateinnewtextboxes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallysubstitutefontformissingeachars", + "displayName": "Automatically substitute font for missing East Asian characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallysubstitutefontformissingeachars_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallysubstitutefontformissingeachars_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallyswitchkeyboard", + "displayName": "Automatically switch keyboard to match the language of surrounding text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallyswitchkeyboard_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_automaticallyswitchkeyboard_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_enableincrementalpublishtoweb", + "displayName": "Enable incremental publish to Web (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_enableincrementalpublishtoweb_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_enableincrementalpublishtoweb_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_promptuserwhenreapplyingastyle", + "displayName": "Prompt user when reapplying a style (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_promptuserwhenreapplyingastyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_promptuserwhenreapplyingastyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_sendentirepublicationasasingle", + "displayName": "Send entire publication as a single JPEG image (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_sendentirepublicationasasingle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_sendentirepublicationasasingle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_setmaximumnumberofmruitemstodisplay", + "displayName": "Number of publications in the Recent Publications list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_setmaximumnumberofmruitemstodisplay_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_setmaximumnumberofmruitemstodisplay_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_setmaximumnumberofmruitemstodisplay_l_setmaximumnumberofmruitemstodisplayspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_setnumberofplacesintherecentplaceslist", + "displayName": "Number of folders in the Recent Folders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_setnumberofplacesintherecentplaceslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_setnumberofplacesintherecentplaceslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_setnumberofplacesintherecentplaceslist_l_setnumberofplacesintherecentplaceslistspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_showscreentipsonobjects", + "displayName": "Show ScreenTips on objects (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_showscreentipsonobjects_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_showscreentipsonobjects_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_turnoffdragpreview", + "displayName": "Turn off drag preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_turnoffdragpreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_turnoffdragpreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_usechinesefontsizes", + "displayName": "Use Chinese font sizes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_usechinesefontsizes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_usechinesefontsizes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_usexpsenhancedprintpath", + "displayName": "Use XPS-enhanced print path (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_usexpsenhancedprintpath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_usexpsenhancedprintpath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_whenformattingautomaticallyformatentireword", + "displayName": "When formatting, automatically format entire word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_whenformattingautomaticallyformatentireword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_whenformattingautomaticallyformatentireword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_whenselectingautomaticallyselectentireword", + "displayName": "When selecting, automatically select entire word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_whenselectingautomaticallyselectentireword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced_l_whenselectingautomaticallyselectentireword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_defaultpublisherdirection", + "displayName": "Default Publisher direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_defaultpublisherdirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_defaultpublisherdirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_defaultpublisherdirection_l_defaultpublisherdirection3", + "displayName": "Default Publisher direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_defaultpublisherdirection_l_defaultpublisherdirection3_0", + "displayName": "Left to right", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_defaultpublisherdirection_l_defaultpublisherdirection3_1", + "displayName": "Right to left", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_setdefaulttextflowdirection", + "displayName": "Set default text flow direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_setdefaulttextflowdirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_setdefaulttextflowdirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_setdefaulttextflowdirection_l_setdefaulttextflowdirectiondropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_setdefaulttextflowdirection_l_setdefaulttextflowdirectiondropid_1", + "displayName": "Left-to-Right", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_setdefaulttextflowdirection_l_setdefaulttextflowdirectiondropid_256", + "displayName": "Right-to-Left", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_usesequencechecking", + "displayName": "Use sequence checking (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_usesequencechecking_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_usesequencechecking_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_usetypeandreplace", + "displayName": "Use type and replace (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_usetypeandreplace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_advanced~l_complexscripts_l_usetypeandreplace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_general_l_showthenewtemplategallerywhenstartingpublisher", + "displayName": "Show the New template gallery when starting Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_general_l_showthenewtemplategallerywhenstartingpublisher_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_general_l_showthenewtemplategallerywhenstartingpublisher_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_optionscustomizeribbon_l_displaydevelopertab", + "displayName": "Display Developer tab in the Ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_optionscustomizeribbon_l_displaydevelopertab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_optionscustomizeribbon_l_displaydevelopertab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_proofing_l_checkspellingasyoutype", + "displayName": "Check spelling as you type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_proofing_l_checkspellingasyoutype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_proofing_l_checkspellingasyoutype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_proofing_l_checkspellingasyoutype_l_checkspellingasyoutypedropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_proofing_l_checkspellingasyoutype_l_checkspellingasyoutypedropid_1", + "displayName": "Check spelling as you type", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_proofing_l_checkspellingasyoutype_l_checkspellingasyoutypedropid_2", + "displayName": "Hide spelling errors", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_proofing_l_checkspellingasyoutype_l_checkspellingasyoutypedropid_3", + "displayName": "Both", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_save_l_allowbackgroundsaves", + "displayName": "Allow background saves (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_save_l_allowbackgroundsaves_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_save_l_allowbackgroundsaves_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_save_l_saveautorecoverinfoevery", + "displayName": "Save AutoRecover info every (minutes) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_save_l_saveautorecoverinfoevery_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_save_l_saveautorecoverinfoevery_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_puboptions~l_save_l_saveautorecoverinfoevery_l_saveautorecoverinfoeveryid", + "displayName": "Minutes (range 1-120): (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_preventfatallycorruptfilesfromopening", + "displayName": "Prompt to allow fatally corrupt files to open instead of blocking them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_preventfatallycorruptfilesfromopening_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_preventfatallycorruptfilesfromopening_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_publisherautomationsecuritylevel", + "displayName": "Publisher Automation Security Level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_publisherautomationsecuritylevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_publisherautomationsecuritylevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_publisherautomationsecuritylevel_l_empty", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_publisherautomationsecuritylevel_l_empty_1", + "displayName": "Low (enabled)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_publisherautomationsecuritylevel_l_empty_2", + "displayName": "By UI (prompted)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security_l_publisherautomationsecuritylevel_l_empty_3", + "displayName": "High (disabled)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disableallapplicationextensions", + "displayName": "Block application add-ins loading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disableallapplicationextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disableallapplicationextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned", + "displayName": "Require that application add-ins are signed by Trusted Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_vbawarningspolicy", + "displayName": "VBA Macro Notification Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_vbawarningspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_vbawarningspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_vbawarningspolicy_l_empty0", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_vbawarningspolicy_l_empty0_2", + "displayName": "Disable all with notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_vbawarningspolicy_l_empty0_3", + "displayName": "Disable all except digitally signed macros", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_vbawarningspolicy_l_empty0_4", + "displayName": "Disable all without notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v2~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_vbawarningspolicy_l_empty0_1", + "displayName": "Enable all macros (not recommended)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_pub16v3~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_blockmacroexecutionfrominternet", + "displayName": "Block macros from running in Office files from the internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_pub16v3~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_pub16v3~policy~l_microsoftofficepublisher~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_remotedesktop_autosubscription", + "displayName": "Auto-subscription (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection", + "displayName": "Restrict clipboard transfer from client to server (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text", + "displayName": "Restrict clipboard transfer from client to server: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_0", + "displayName": "Disable clipboard transfers from client to server", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_1", + "displayName": "Allow plain text", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_2", + "displayName": "Allow plain text and images", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_3", + "displayName": "Allow plain text, images and Rich Text Format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitclienttoserverclipboardredirection_ts_cs_clipboard_restriction_text_4", + "displayName": "Allow plain text, images, Rich Text Format and HTML", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection", + "displayName": "Restrict clipboard transfer from server to client (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text", + "displayName": "Restrict clipboard transfer from server to client: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_0", + "displayName": "Disable clipboard transfers from server to client", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_1", + "displayName": "Allow plain text", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_2", + "displayName": "Allow plain text and images", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_3", + "displayName": "Allow plain text, images and Rich Text Format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_remotedesktopservices_limitservertoclientclipboardredirection_ts_sc_clipboard_restriction_text_4", + "displayName": "Allow plain text, images, Rich Text Format and HTML", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_security_recoveryenvironmentauthentication", + "displayName": "Recovery Environment Authentication (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_security_recoveryenvironmentauthentication_0", + "displayName": "current) behavior", + "description": "current) behavior" + }, + { + "id": "user_vendor_msft_policy_config_security_recoveryenvironmentauthentication_1", + "displayName": "RequireAuthentication: Admin Authentication is always required for components in RecoveryEnvironment", + "description": "RequireAuthentication: Admin Authentication is always required for components in RecoveryEnvironment" + }, + { + "id": "user_vendor_msft_policy_config_security_recoveryenvironmentauthentication_2", + "displayName": "NoRequireAuthentication: Admin Authentication is not required for components in RecoveryEnvironment", + "description": "NoRequireAuthentication: Admin Authentication is not required for components in RecoveryEnvironment" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_settings_configuretaskbarcalendar", + "displayName": "Configure Taskbar Calendar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_settings_configuretaskbarcalendar_0", + "displayName": "User will be allowed to configure the setting.", + "description": "User will be allowed to configure the setting." + }, + { + "id": "user_vendor_msft_policy_config_settings_configuretaskbarcalendar_1", + "displayName": "Don't show additional calendars.", + "description": "Don't show additional calendars." + }, + { + "id": "user_vendor_msft_policy_config_settings_configuretaskbarcalendar_2", + "displayName": "Simplified Chinese (Lunar).", + "description": "Simplified Chinese (Lunar)." + }, + { + "id": "user_vendor_msft_policy_config_settings_configuretaskbarcalendar_3", + "displayName": "Traditional Chinese (Lunar).", + "description": "Traditional Chinese (Lunar)." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_settings_pagevisibilitylist", + "displayName": "Page Visibility List (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_start_configurestartpins", + "displayName": "Configure Start Pins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_start_disablecontextmenus", + "displayName": "Disable Context Menus (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_start_disablecontextmenus_0", + "displayName": "Disabled", + "description": "Do not disable." + }, + { + "id": "user_vendor_msft_policy_config_start_disablecontextmenus_1", + "displayName": "Enabled", + "description": "Disable." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_start_forcestartsize", + "displayName": "Force Start Size (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_start_forcestartsize_0", + "displayName": "Do not force size of Start.", + "description": "Do not force size of Start." + }, + { + "id": "user_vendor_msft_policy_config_start_forcestartsize_1", + "displayName": "Force non-fullscreen size of Start.", + "description": "Force non-fullscreen size of Start." + }, + { + "id": "user_vendor_msft_policy_config_start_forcestartsize_2", + "displayName": "Force a fullscreen size of Start.", + "description": "Force a fullscreen size of Start." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_start_hideapplist", + "displayName": "Hide App List (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_start_hideapplist_0", + "displayName": "None.", + "description": "None." + }, + { + "id": "user_vendor_msft_policy_config_start_hideapplist_1", + "displayName": "Hide all apps list.", + "description": "Hide all apps list." + }, + { + "id": "user_vendor_msft_policy_config_start_hideapplist_2", + "displayName": "Hide all apps list, and Disable \"Show app list in Start menu\" in Settings app.", + "description": "Hide all apps list, and Disable \"Show app list in Start menu\" in Settings app." + }, + { + "id": "user_vendor_msft_policy_config_start_hideapplist_3", + "displayName": "Hide all apps list, remove all apps button, and Disable \"Show app list in Start menu\" in Settings app.", + "description": "Hide all apps list, remove all apps button, and Disable \"Show app list in Start menu\" in Settings app." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_start_hidefrequentlyusedapps", + "displayName": "Hide Frequently Used Apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_start_hidefrequentlyusedapps_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "user_vendor_msft_policy_config_start_hidefrequentlyusedapps_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_start_hidepeoplebar", + "displayName": "Hide People Bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_start_hidepeoplebar_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "user_vendor_msft_policy_config_start_hidepeoplebar_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_start_hiderecentjumplists", + "displayName": "Hide Recent Jumplists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_start_hiderecentjumplists_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "user_vendor_msft_policy_config_start_hiderecentjumplists_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_start_hiderecentlyaddedapps", + "displayName": "Hide Recently Added Apps (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_start_hiderecentlyaddedapps_0", + "displayName": "Disabled", + "description": "Do not hide." + }, + { + "id": "user_vendor_msft_policy_config_start_hiderecentlyaddedapps_1", + "displayName": "Enabled", + "description": "Hide." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_start_startlayout", + "displayName": "Start Layout (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_system_allowtelemetry", + "displayName": "Allow Telemetry (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_system_allowtelemetry_0", + "displayName": "Security", + "description": "Security. Information that is required to help keep Windows more secure, including data about the Connected User Experience and Telemetry component settings, the Malicious Software Removal Tool, and Windows Defender.\nNote: This value is only applicable to Windows 10 Enterprise, Windows 10 Education, Windows 10 Mobile Enterprise, Windows 10 IoT Core (IoT Core), and Windows Server 2016. Using this setting on other devices is equivalent to setting the value of 1." + }, + { + "id": "user_vendor_msft_policy_config_system_allowtelemetry_1", + "displayName": "Basic", + "description": "Basic. Basic device info, including: quality-related data, app compatibility, app usage data, and data from the Security level." + }, + { + "id": "user_vendor_msft_policy_config_system_allowtelemetry_3", + "displayName": "Full", + "description": "Full. All data necessary to identify and help to fix problems, plus data from the Security, Basic, and Enhanced levels." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_teamsv2~policy~l_teams_teams_preventfirstlaunchafterinstall_policy", + "displayName": "Prevent Microsoft Teams from starting automatically after installation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_teamsv2~policy~l_teams_teams_preventfirstlaunchafterinstall_policy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_teamsv2~policy~l_teams_teams_preventfirstlaunchafterinstall_policy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_teamsv3~policy~l_teams_string_teams_signinrestriction_policy", + "displayName": "Restrict sign in to Teams to accounts in specific tenants (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_teamsv3~policy~l_teams_string_teams_signinrestriction_policy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_teamsv3~policy~l_teams_string_teams_signinrestriction_policy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_teamsv3~policy~l_teams_string_teams_signinrestriction_policy_restrictteamssignintoaccountsfromtenantlist", + "displayName": "Tenant IDs: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_timelanguagesettings_restrictlanguagepacksandfeaturesinstall", + "displayName": "Restrict Language Packs And Features Install (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_timelanguagesettings_restrictlanguagepacksandfeaturesinstall_0", + "displayName": "Disabled", + "description": "Not restricted." + }, + { + "id": "user_vendor_msft_policy_config_timelanguagesettings_restrictlanguagepacksandfeaturesinstall_1", + "displayName": "Enabled", + "description": "Restricted." + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_customizableerrormessages_l_listoferrormessagestocustomize", + "displayName": "List of error messages to customize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_customizableerrormessages_l_listoferrormessagestocustomize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_customizableerrormessages_l_listoferrormessagestocustomize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize98", + "displayName": "List of error messages to customize (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize98_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize98_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems1", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems1_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems1_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems1_l_enteracommandbaridtodisable", + "displayName": "Enter a command bar ID to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys100", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys100_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys100_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys100_l_enterakeyandmodifiertodisable", + "displayName": "Enter a key and modifier to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient", + "displayName": "File Tab | Share | Email (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlink", + "displayName": "Insert tab | Hyperlink (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlink_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlink_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosmacros", + "displayName": "Developer tab | Macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosmacros_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosmacros_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosvisualbasiceditor", + "displayName": "Developer tab | Visual Basic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosvisualbasiceditor_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosvisualbasiceditor_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_visiooptions99", + "displayName": "File tab | Options (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_visiooptions99_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_visiooptions99_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_defaultbuiltintab", + "displayName": "Default tab to show in Visio on the Office Start screen and in File | New (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_defaultbuiltintab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_defaultbuiltintab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_defaultbuiltintab_l_defaultbuiltintab", + "displayName": "Default tab (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_defaultbuiltintab_l_defaultbuiltintab_0", + "displayName": "Featured", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_defaultbuiltintab_l_defaultbuiltintab_2", + "displayName": "Built-in", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_defaultbuiltintab_l_defaultbuiltintab_1", + "displayName": "Custom", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_disableofficestartvisio", + "displayName": "Disable the Office Start screen for Visio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_disableofficestartvisio_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_disableofficestartvisio_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_emailmessageforsendtocommands", + "displayName": "Email message for 'Send To' commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_emailmessageforsendtocommands_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_emailmessageforsendtocommands_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_emailmessageforsendtocommands_l_emailmessageforsendtocommands101", + "displayName": "Email message for 'Send To' commands (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_personaltemplatespath", + "displayName": "Personal templates path for Visio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_personaltemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_personaltemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_miscellaneous_l_personaltemplatespath_l_personaltemplatespath", + "displayName": "Personal templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_alwaysoffermetricandusunitsfornewblankdrawings", + "displayName": "Always offer 'Metric' and 'US units' for new blank drawings and stencils (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_alwaysoffermetricandusunitsfornewblankdrawings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_alwaysoffermetricandusunitsfornewblankdrawings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle", + "displayName": "Angle (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle_l_angle8", + "displayName": "Angle (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle_l_angle8_81", + "displayName": "Degrees", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle_l_angle8_82", + "displayName": "Deg-Min-Sec", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle_l_angle8_84", + "displayName": "Min-Sec", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle_l_angle8_85", + "displayName": "Seconds", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_angle_l_angle8_83", + "displayName": "Radians", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration", + "displayName": "Duration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration_l_duration9", + "displayName": "Duration (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration_l_duration9_43", + "displayName": "Weeks", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration_l_duration9_44", + "displayName": "Days", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration_l_duration9_45", + "displayName": "Hours", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration_l_duration9_46", + "displayName": "Minutes", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_duration_l_duration9_47", + "displayName": "Seconds", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_preventshowingnewscreenonlaunch", + "displayName": "Prevent showing New screen on launch (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_preventshowingnewscreenonlaunch_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_preventshowingnewscreenonlaunch_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_recentlyusedfilelist", + "displayName": "Number of entries in the Recent Drawings list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_recentlyusedfilelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_recentlyusedfilelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_recentlyusedfilelist_l_numberofentries", + "displayName": "Number of entries: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_setnumberofplacesintherecentplaceslist", + "displayName": "Number of folders in the Recent Folders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_setnumberofplacesintherecentplaceslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_setnumberofplacesintherecentplaceslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_setnumberofplacesintherecentplaceslist_l_setnumberofplacesintherecentplaceslistspinid", + "displayName": "Number of folders: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_smarttags", + "displayName": "Actions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_smarttags_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_smarttags_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear", + "displayName": "Specify ScreenTips to appear (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid1", + "displayName": "Drawing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid1_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid1_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid2", + "displayName": "Dialogs (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid2_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid2_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid3", + "displayName": "Rulers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid3_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid4", + "displayName": "Shapesheet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid4_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_specifyscreentipstoappear_l_specifyscreentipstoappearboolid4_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_stencilwindowscreentips", + "displayName": "Stencil window ScreenTips (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_stencilwindowscreentips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_stencilwindowscreentips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_text", + "displayName": "Text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_text_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_text_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_text_l_text7", + "displayName": "Text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_text_l_text7_51", + "displayName": "Picas", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_text_l_text7_50", + "displayName": "Points", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_text_l_text7_54", + "displayName": "Ciceros", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_display_l_text_l_text7_53", + "displayName": "Didots", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_centerselectiononzoom", + "displayName": "Center selection on zoom (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_centerselectiononzoom_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_centerselectiononzoom_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enableautoconnect", + "displayName": "Enable AutoConnect (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enableautoconnect_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enableautoconnect_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enablelivedynamics", + "displayName": "Enable live dynamics (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enablelivedynamics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enablelivedynamics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enalbeconnectorsplitting", + "displayName": "Enable connector splitting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enalbeconnectorsplitting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_enalbeconnectorsplitting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_selectshapespartiallywithinarea", + "displayName": "Select shapes partially within area (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_selectshapespartiallywithinarea_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_selectshapespartiallywithinarea_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_showmorehandles", + "displayName": "Show more handles on hover (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_showmorehandles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_showmorehandles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnoffshapesheetformulaautocomplete", + "displayName": "Turn off ShapeSheet Formula AutoComplete (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnoffshapesheetformulaautocomplete_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnoffshapesheetformulaautocomplete_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnoffsmartdeletebehaviorofconnectorswhendeletingshapes", + "displayName": "Turn off smart delete behavior of connectors when deleting shapes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnoffsmartdeletebehaviorofconnectorswhendeletingshapes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnoffsmartdeletebehaviorofconnectorswhendeletingshapes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnofftransitions", + "displayName": "Turn off transitions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnofftransitions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_turnofftransitions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_zoomonrollwithintellimouse", + "displayName": "Zoom on roll with IntelliMouse (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_zoomonrollwithintellimouse_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_editingoptions_l_zoomonrollwithintellimouse_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_addons", + "displayName": "Add-ons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_addons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_addons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_addons_l_addonscolon", + "displayName": "Add-ons: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_drawings", + "displayName": "Drawings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_drawings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_drawings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_drawings_l_drawingscolon", + "displayName": "Drawings: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_favoritesstencilname", + "displayName": "Favorites Stencil Name (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_favoritesstencilname_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_favoritesstencilname_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_favoritesstencilname_l_favoritesstencilnamecolon", + "displayName": "Favorites Stencil Name: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_help", + "displayName": "Help (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_help_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_help_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_help_l_helpcolon", + "displayName": "Help: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_myshapes", + "displayName": "My Shapes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_myshapes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_myshapes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_myshapes_l_myshapescolon", + "displayName": "My Shapes: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_startup", + "displayName": "Start-up (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_startup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_startup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_startup_l_startupcolon", + "displayName": "Start-up: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_stencils", + "displayName": "Stencils (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_stencils_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_stencils_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_stencils_l_stencilscolon", + "displayName": "Stencils: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_templates", + "displayName": "Templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_templates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_templates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_filelocations_l_templates_l_templatescolon", + "displayName": "Templates: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_enableautomationevents", + "displayName": "Enable Automation events (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_enableautomationevents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_enableautomationevents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_openeachshapesheetinthesamewindow", + "displayName": "Open each ShapeSheet in the same window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_openeachshapesheetinthesamewindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_openeachshapesheetinthesamewindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_putallsettingsinwindowsregistry", + "displayName": "Put all settings in Windows registry (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_putallsettingsinwindowsregistry_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_generaloptions_l_putallsettingsinwindowsregistry_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_languageforfileconversion4", + "displayName": "Language for file conversion (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_languageforfileconversion4_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_languageforfileconversion4_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_languageforfileconversion4_l_languageforfileconversion5", + "displayName": "Language for file conversion (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_languageforfileconversion4_l_languageforfileconversion5_0", + "displayName": "Let Visio decide language", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_languageforfileconversion4_l_languageforfileconversion5_1", + "displayName": "Prompt for language", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_languageforfileconversion4_l_languageforfileconversion5_2", + "displayName": "Use the following language", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_languageforfileconversion4_l_uselanguage", + "displayName": "Use language: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_showfileopenwarnings", + "displayName": "Show file open warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_showfileopenwarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_showfileopenwarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_showfilesavewarnings", + "displayName": "Show file save warnings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_showfilesavewarnings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_saveopen_l_showfilesavewarnings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_openresultsnewwindow", + "displayName": "Open results new window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_openresultsnewwindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_openresultsnewwindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchfor", + "displayName": "Search for: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchfor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchfor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchfor_l_searchfor10", + "displayName": "Search for: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchfor_l_searchfor10_1", + "displayName": "All of the words (AND)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchfor_l_searchfor10_0", + "displayName": "Any of the words (OR)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchresults", + "displayName": "Search results (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchresults_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchresults_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchresults_l_searchresults11", + "displayName": "Search results (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchresults_l_searchresults11_0", + "displayName": "Alphabetically", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_searchresults_l_searchresults11_1", + "displayName": "By Group", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_showshapesearchpane", + "displayName": "Show Shape Search pane (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_showshapesearchpane_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_advanced~l_shapesearch_l_showshapesearchpane_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_donotshowminitoolbaronselectionoftext", + "displayName": "Do not show Mini Toolbar on selection of text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_donotshowminitoolbaronselectionoftext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_donotshowminitoolbaronselectionoftext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_turnofflivepreview", + "displayName": "Turn off Live Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_turnofflivepreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_turnofflivepreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_turnofflivepreviewintheshapeswindow", + "displayName": "Turn off Live Preview in the Shapes window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_turnofflivepreviewintheshapeswindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_general~l_userinterfaceoptions_l_turnofflivepreviewintheshapeswindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_optionscustomizeribbon_l_displaydevelopertab", + "displayName": "Display Developer tab in the Ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_optionscustomizeribbon_l_displaydevelopertab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_optionscustomizeribbon_l_displaydevelopertab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_fractionswithfractioncharacter", + "displayName": "Fractions with fraction character (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_fractionswithfractioncharacter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_fractionswithfractioncharacter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_hyphenswithdash", + "displayName": "Hyphens with dash (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_hyphenswithdash_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_hyphenswithdash_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_ordinalswithsuperscript", + "displayName": "Ordinals with superscript (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_ordinalswithsuperscript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_ordinalswithsuperscript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_smileyfacesandarrowswithspecialsymbols", + "displayName": "Smiley faces and arrows with special symbols (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_smileyfacesandarrowswithspecialsymbols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_smileyfacesandarrowswithspecialsymbols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_straightquoteswithsmartquotes", + "displayName": "Straight quotes with smart quotes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_straightquoteswithsmartquotes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_proofing~l_autocorrectoptions_l_straightquoteswithsmartquotes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save_l_turnoffcaddwgfunctionality", + "displayName": "Turn off CAD/DWG functionality (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save_l_turnoffcaddwgfunctionality_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save_l_turnoffcaddwgfunctionality_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_offlineediting_l_savecheckedoutfilesto", + "displayName": "Save checked-out files to (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_offlineediting_l_savecheckedoutfilesto_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_offlineediting_l_savecheckedoutfilesto_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_offlineediting_l_savecheckedoutfilesto_l_savecheckedoutfilestodropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_offlineediting_l_savecheckedoutfilesto_l_savecheckedoutfilestodropid_1", + "displayName": "Server drafts location", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_offlineediting_l_savecheckedoutfilesto_l_savecheckedoutfilestodropid_0", + "displayName": "Web server", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_promptfordocumentpropertiesonfirstsave", + "displayName": "Prompt for document properties on first save (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_promptfordocumentpropertiesonfirstsave_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_promptfordocumentpropertiesonfirstsave_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_savevisiofilesas", + "displayName": "Save Visio files as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_savevisiofilesas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_savevisiofilesas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_savevisiofilesas_l_savevisiofilesas6", + "displayName": "Save Visio files as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_savevisiofilesas_l_savevisiofilesas6_0", + "displayName": "Visio Document", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_savevisiofilesas_l_savevisiofilesas6_3", + "displayName": "Visio Macro-Enabled Document", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_save~l_savedocuments_l_savevisiofilesas_l_savevisiofilesas6_1", + "displayName": "Visio 2003-2016 Document", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_macrosecurity_l_enablemicrosoftvisualbasicforapplicationsproject", + "displayName": "Enable Microsoft Visual Basic for Applications project creation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_macrosecurity_l_enablemicrosoftvisualbasicforapplicationsproject_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_macrosecurity_l_enablemicrosoftvisualbasicforapplicationsproject_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_macrosecurity_l_loadmicrosoftvisualbasicforapplicationsprojectsf", + "displayName": "Load Microsoft Visual Basic for Applications projects from text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_macrosecurity_l_loadmicrosoftvisualbasicforapplicationsprojectsf_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_macrosecurity_l_loadmicrosoftvisualbasicforapplicationsprojectsf_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_allowtrustedlocationsonthenetwork", + "displayName": "Allow Trusted Locations on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_allowtrustedlocationsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_allowtrustedlocationsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet", + "displayName": "Block macros from running in Office files from the Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disableallapplicationextensions", + "displayName": "Disable all application add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disableallapplicationextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disableallapplicationextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustedloc", + "displayName": "Disable all trusted locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustedloc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_disabletrustedloc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned", + "displayName": "Require that application add-ins are signed by Trusted Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments", + "displayName": "Set maximum number of trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_l_setmaximumnumberoftrusteddocumentsspinid", + "displayName": "Maximum number: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve", + "displayName": "Set maximum number of trust records to preserve (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_l_setmaximumnumberoftrustrecordstopreservespinid", + "displayName": "Maximum to preserve: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01", + "displayName": "Trusted Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01_l_allowsubfolders", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01_l_allowsubfolders_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01_l_allowsubfolders_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01_l_datecolon", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01_l_descriptioncolon", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc01_l_pathcolon", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02", + "displayName": "Trusted Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02_l_allowsubfolders15", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02_l_allowsubfolders15_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02_l_allowsubfolders15_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02_l_datecolon13", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02_l_descriptioncolon14", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc02_l_pathcolon12", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03", + "displayName": "Trusted Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03_l_allowsubfolders19", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03_l_allowsubfolders19_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03_l_allowsubfolders19_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03_l_datecolon17", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03_l_descriptioncolon18", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc03_l_pathcolon16", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04", + "displayName": "Trusted Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04_l_allowsubfolders23", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04_l_allowsubfolders23_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04_l_allowsubfolders23_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04_l_datecolon21", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04_l_descriptioncolon22", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc04_l_pathcolon20", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05", + "displayName": "Trusted Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05_l_allowsubfolders27", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05_l_allowsubfolders27_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05_l_allowsubfolders27_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05_l_datecolon25", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05_l_descriptioncolon26", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc05_l_pathcolon24", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06", + "displayName": "Trusted Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06_l_allowsubfolders31", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06_l_allowsubfolders31_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06_l_allowsubfolders31_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06_l_datecolon29", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06_l_descriptioncolon30", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc06_l_pathcolon28", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07", + "displayName": "Trusted Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07_l_allowsubfolders35", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07_l_allowsubfolders35_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07_l_allowsubfolders35_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07_l_datecolon33", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07_l_descriptioncolon34", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc07_l_pathcolon32", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08", + "displayName": "Trusted Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08_l_allowsubfolders39", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08_l_allowsubfolders39_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08_l_allowsubfolders39_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08_l_datecolon37", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08_l_descriptioncolon38", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc08_l_pathcolon36", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09", + "displayName": "Trusted Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09_l_allowsubfolders43", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09_l_allowsubfolders43_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09_l_allowsubfolders43_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09_l_datecolon41", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09_l_descriptioncolon42", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc09_l_pathcolon40", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10", + "displayName": "Trusted Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10_l_allowsubfolders47", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10_l_allowsubfolders47_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10_l_allowsubfolders47_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10_l_datecolon45", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10_l_descriptioncolon46", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc10_l_pathcolon44", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11", + "displayName": "Trusted Location #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11_l_allowsubfolders51", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11_l_allowsubfolders51_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11_l_allowsubfolders51_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11_l_datecolon49", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11_l_descriptioncolon50", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc11_l_pathcolon48", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12", + "displayName": "Trusted Location #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12_l_allowsubfolders55", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12_l_allowsubfolders55_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12_l_allowsubfolders55_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12_l_datecolon53", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12_l_descriptioncolon54", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc12_l_pathcolon52", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13", + "displayName": "Trusted Location #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13_l_allowsubfolders59", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13_l_allowsubfolders59_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13_l_allowsubfolders59_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13_l_datecolon57", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13_l_descriptioncolon58", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc13_l_pathcolon56", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14", + "displayName": "Trusted Location #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14_l_allowsubfolders63", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14_l_allowsubfolders63_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14_l_allowsubfolders63_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14_l_datecolon61", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14_l_descriptioncolon62", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc14_l_pathcolon60", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15", + "displayName": "Trusted Location #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15_l_allowsubfolders67", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15_l_allowsubfolders67_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15_l_allowsubfolders67_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15_l_datecolon65", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15_l_descriptioncolon66", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc15_l_pathcolon64", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16", + "displayName": "Trusted Location #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16_l_allowsubfolders71", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16_l_allowsubfolders71_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16_l_allowsubfolders71_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16_l_datecolon69", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16_l_descriptioncolon70", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc16_l_pathcolon68", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17", + "displayName": "Trusted Location #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17_l_allowsubfolders75", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17_l_allowsubfolders75_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17_l_allowsubfolders75_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17_l_datecolon73", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17_l_descriptioncolon74", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc17_l_pathcolon72", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18", + "displayName": "Trusted Location #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18_l_allowsubfolders79", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18_l_allowsubfolders79_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18_l_allowsubfolders79_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18_l_datecolon77", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18_l_descriptioncolon78", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc18_l_pathcolon76", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19", + "displayName": "Trusted Location #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19_l_allowsubfolders83", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19_l_allowsubfolders83_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19_l_allowsubfolders83_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19_l_datecolon81", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19_l_descriptioncolon82", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc19_l_pathcolon80", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20", + "displayName": "Trusted Location #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20_l_allowsubfolders87", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20_l_allowsubfolders87_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20_l_allowsubfolders87_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20_l_datecolon85", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20_l_descriptioncolon86", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_trustedloc20_l_pathcolon84", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_turnofftrusteddocuments", + "displayName": "Turn off trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_turnofftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_turnofftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork", + "displayName": "Turn off Trusted Documents on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_vbawarningspolicy", + "displayName": "VBA Macro Notification Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_vbawarningspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_vbawarningspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_2", + "displayName": "Disable all with notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_3", + "displayName": "Disable all except digitally signed macros", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_4", + "displayName": "Disable all without notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty_1", + "displayName": "Enable all macros (not recommended)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2000files", + "displayName": "Visio 2000-2002 Binary Drawings, Templates and Stencils (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2000files_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2000files_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2000files_l_visio2000filesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2000files_l_visio2000filesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2000files_l_visio2000filesdropid_2", + "displayName": "Open/Save blocked", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2003files", + "displayName": "Visio 2003-2010 Binary Drawings, Templates and Stencils (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2003files_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2003files_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2003files_l_visio2003filesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2003files_l_visio2003filesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2003files_l_visio2003filesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio2003files_l_visio2003filesdropid_2", + "displayName": "Open/Save blocked", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio50andearlierfiles", + "displayName": "Visio 5.0 or earlier Binary Drawings, Templates and Stencils (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio50andearlierfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio50andearlierfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio50andearlierfiles_l_visio50andearlierfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio50andearlierfiles_l_visio50andearlierfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v2~policy~l_microsoftvisio~l_visiooptions~l_security~l_trustcenter~l_fileblocksettings_l_visio50andearlierfiles_l_visio50andearlierfilesdropid_2", + "displayName": "Open/Save blocked", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visio16v3~policy~l_microsoftvisio~l_visiooptions~l_proofing_l_disablevisiornrpane", + "displayName": "Turn off Research and Translation features in Visio (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visio16v3~policy~l_microsoftvisio~l_visiooptions~l_proofing_l_disablevisiornrpane_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visio16v3~policy~l_microsoftvisio~l_visiooptions~l_proofing_l_disablevisiornrpane_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablefeedbackdialog", + "displayName": "Disable the send-a-smile feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablefeedbackdialog_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablefeedbackdialog_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablescreenshotcapture", + "displayName": "Disables send-a-smile's screenshot capability (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablescreenshotcapture_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_visualstudiov1~policy~visualstudio~feedbacksettings_disablescreenshotcapture_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_windowsai_setcopilothardwarekey", + "displayName": "Set Copilot Hardware Key (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_windowsai_turnoffwindowscopilot", + "displayName": "Turn Off Copilot in Windows (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_windowsai_turnoffwindowscopilot_0", + "displayName": "Enable Copilot", + "description": "Enable Copilot" + }, + { + "id": "user_vendor_msft_policy_config_windowsai_turnoffwindowscopilot_1", + "displayName": "Disable Copilot", + "description": "Disable Copilot" + } + ] + }, + { + "id": "user_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging", + "displayName": "Turn on PowerShell Script Block Logging (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_enablescriptblockinvocationlogging", + "displayName": "Log script block invocation start / stop events: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_enablescriptblockinvocationlogging_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_windowspowershell_turnonpowershellscriptblocklogging_enablescriptblockinvocationlogging_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v10~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_disablemoderncommentsoptoutoption", + "displayName": "Hide the modern comments opt-out (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v10~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_disablemoderncommentsoptoutoption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v10~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_disablemoderncommentsoptoutoption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v11~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_alternateclplabelcontentmarkanchoringoption", + "displayName": "Use an alternate method of anchoring content marks from CLP labels (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v11~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_alternateclplabelcontentmarkanchoringoption_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v11~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_alternateclplabelcontentmarkanchoringoption_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v12~policy~l_microsoftofficeword_l_stopreadaloudeyesoffexperience", + "displayName": "Stop Read Aloud when app goes in background (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v12~policy~l_microsoftofficeword_l_stopreadaloudeyesoffexperience_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v12~policy~l_microsoftofficeword_l_stopreadaloudeyesoffexperience_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_disablecoauthoringondocmfiles", + "displayName": "Prevent co-authoring on files with macros for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_disablecoauthoringondocmfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_disablecoauthoringondocmfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_disablertc", + "displayName": "Disable Real Time Coauthoring for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_disablertc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_disablertc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_donotautomaticallymergeserverandlocaldocument", + "displayName": "Do not automatically merge server and local document (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_donotautomaticallymergeserverandlocaldocument_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_donotautomaticallymergeserverandlocaldocument_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_preventcoauthoring", + "displayName": "Prevent co-authoring (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_preventcoauthoring_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_collaborationsettings~l_coauthoring_l_preventcoauthoring_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_customizableerrormessages_l_listoferrormessagestocustomize", + "displayName": "List of error messages to customize (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_customizableerrormessages_l_listoferrormessagestocustomize_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_customizableerrormessages_l_listoferrormessagestocustomize_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize97", + "displayName": "List of error messages to customize (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize97_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_customizableerrormessages_l_listoferrormessagestocustomize_l_listoferrormessagestocustomize97_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems174", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems174_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems174_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_custom_l_disablecommandbarbuttonsandmenuitems174_l_enteracommandbaridtodisable", + "displayName": "Enter a command bar ID to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys175", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys175_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys175_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_custom_l_disableshortcutkeys175_l_enterakeyandmodifiertodisable", + "displayName": "Enter a key and modifier to disable (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems", + "displayName": "Disable commands (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient", + "displayName": "File tab | Share | Email (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filesendtomailrecipient_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview", + "displayName": "File tab | Options | (\"Customize Ribbon\" or \"Quick Access Toolbar\") | All Commands | Web Page Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_filewebpagepreview_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlinkwd", + "displayName": "Insert tab | Links | Hyperlink (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlinkwd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_inserthyperlinkwd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacroswd", + "displayName": "Developer tab | Code | Macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacroswd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacromacroswd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrorecordnewmacro", + "displayName": "Developer tab | Code | Record Macro (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrorecordnewmacro_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrorecordnewmacro_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity", + "displayName": "Developer tab | Code | Macro Security (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrosecurity_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditorwd", + "displayName": "Developer tab | Code | Visual Basic (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditorwd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrovisualbasiceditorwd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrowd", + "displayName": "View tab | Macros | Macros (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrowd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsmacrowd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsprotectdocument", + "displayName": "File tab | Info | Protect Document (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsprotectdocument_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolsprotectdocument_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolstemplatesandaddins", + "displayName": "Developer tab | Templates | Document Template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolstemplatesandaddins_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_toolstemplatesandaddins_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_webaddresswd", + "displayName": "File tab | Options | (\"Customize Ribbon\" or \"Quick Access Toolbar\") | All Commands | Document Location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_webaddresswd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disablecommandbarbuttonsandmenuitems_l_webaddresswd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys", + "displayName": "Disable shortcut keys (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditorwd", + "displayName": "Alt+F11 (Developer | Code | Visual Basic) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditorwd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf11toolsmacrovisualbasiceditorwd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros", + "displayName": "Alt+F8 (Developer | Code | Macros) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_altf8toolsmacromacros_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindwd", + "displayName": "Ctrl+F (Home | Editing | Find) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindwd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlffindwd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkwd", + "displayName": "Ctrl+K (Insert | Links | Hyperlink) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkwd_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_disableitemsinuserinterface~l_predefined_l_disableshortcutkeys_l_ctrlkinserthyperlinkwd_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation", + "displayName": "Check for accessibility issues while editing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_backgroundaccessibilitycheckerinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation", + "displayName": "Stop checking for alt text accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingalttextaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingblankcharactersusedforformatting", + "displayName": "Stop checking whether blank characters are used for formatting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingblankcharactersusedforformatting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingblankcharactersusedforformatting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingdocumentsallowprogrammaticaccess", + "displayName": "Stop checking to ensure documents allow programmatic access (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingdocumentsallowprogrammaticaccess_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingdocumentsallowprogrammaticaccess_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsandcolumns", + "displayName": "Stop checking for blank table rows and columns (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsandcolumns_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingforblanktablerowsandcolumns_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingforimagewatermarks", + "displayName": "Stop checking for image watermarks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingforimagewatermarks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingforimagewatermarks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingformergedandsplitcells", + "displayName": "Stop checking for merged and split cells (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingformergedandsplitcells_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingformergedandsplitcells_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingfortablesusedforlayout", + "displayName": "Stop checking for tables used for layout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingfortablesusedforlayout_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingfortablesusedforlayout_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingheadingstylesdonotskipstylelevel", + "displayName": "Stop checking to ensure heading styles do not skip style level (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingheadingstylesdonotskipstylelevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingheadingstylesdonotskipstylelevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckinglongdocumentsusestylesforstructure", + "displayName": "Stop checking to ensure long documents use styles for structure (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckinglongdocumentsusestylesforstructure_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckinglongdocumentsusestylesforstructure_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingstylesusedfrequently", + "displayName": "Stop checking to ensure styles have been used frequently (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingstylesusedfrequently_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingstylesusedfrequently_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation", + "displayName": "Stop checking for table header accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtableheaderaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensureheadingsaresuccinct", + "displayName": "Stop checking to ensure headings are succinct (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensureheadingsaresuccinct_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensureheadingsaresuccinct_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful", + "displayName": "Stop checking to ensure hyperlink text is meaningful (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningful_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingwhetherobjectsarefloating", + "displayName": "Stop checking whether objects are floating (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingwhetherobjectsarefloating_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingwhetherobjectsarefloating_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_ignorepunctuationcharacters", + "displayName": "Ignore punctuation characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_ignorepunctuationcharacters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_ignorepunctuationcharacters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_ignorewhitespacecharacters", + "displayName": "Ignore whitespace characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_ignorewhitespacecharacters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_ignorewhitespacecharacters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchbavahafa", + "displayName": "Match ba/va, ha/fa (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchbavahafa_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchbavahafa_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchcase", + "displayName": "Match case (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchcase_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchcase_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchchoonusedforvowels", + "displayName": "Match cho-on used for vowels (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchchoonusedforvowels_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchchoonusedforvowels_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchcontractionsyoonsokuon", + "displayName": "Match contractions (yo-on, sokuon) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchcontractionsyoonsokuon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchcontractionsyoonsokuon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchdiziduzu", + "displayName": "Match di/zi, du/zu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchdiziduzu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchdiziduzu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchfullhalfwidthform", + "displayName": "Match full/half width form (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchfullhalfwidthform_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchfullhalfwidthform_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchhiraganakatakana", + "displayName": "Match hiragana/katakana (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchhiraganakatakana_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchhiraganakatakana_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchhyuiyubyuvyu", + "displayName": "Match hyu/iyu, byu/vyu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchhyuiyubyuvyu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchhyuiyubyuvyu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchiaiyapianopiyano", + "displayName": "Match ia/iya (piano/piyano) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchiaiyapianopiyano_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchiaiyapianopiyano_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchkikutekisutotekusuto", + "displayName": "Match ki/ku (tekisuto/tekusuto) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchkikutekisutotekusuto_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchkikutekisutotekusuto_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchminusdashchoon", + "displayName": "Match minus/dash/cho-on (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchminusdashchoon_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchminusdashchoon_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matcholdkanaforms", + "displayName": "Match old kana forms (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matcholdkanaforms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matcholdkanaforms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchrepeatcharactermarks", + "displayName": "Match 'repeat character' marks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchrepeatcharactermarks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchrepeatcharactermarks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchseshezeje", + "displayName": "Match se/she, ze/je (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchseshezeje_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchseshezeje_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchtsithichidhizi", + "displayName": "Match tsi/thi/chi, dhi/zi (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchtsithichidhizi_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchtsithichidhizi_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchvariantformkanjiitaiji", + "displayName": "Match variant-form kanji (itaiji) (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchvariantformkanjiitaiji_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_japanesefind_l_matchvariantformkanjiitaiji_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_alternaterevisionbarpositioninprinteddocument", + "displayName": "Alternate revision bar position in printed document (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_alternaterevisionbarpositioninprinteddocument_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_alternaterevisionbarpositioninprinteddocument_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_blockallunmanagedaddins", + "displayName": "Block all unmanaged add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_blockallunmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_blockallunmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_defaultcustomtab", + "displayName": "Show custom templates tab by default in Word on the Office Start screen and in File | New (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_defaultcustomtab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_defaultcustomtab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_disablemrulistinfontdropdown", + "displayName": "Disable MRU list in font dropdown (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_disablemrulistinfontdropdown_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_disablemrulistinfontdropdown_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_disableofficestartword", + "displayName": "Disable the Office Start screen for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_disableofficestartword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_disableofficestartword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_donotuseonlinemachinetranslation", + "displayName": "Do not use online machine translation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_donotuseonlinemachinetranslation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_donotuseonlinemachinetranslation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_donotuseonlinetranslationdictionaries", + "displayName": "Use online translation dictionaries (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_donotuseonlinetranslationdictionaries_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_donotuseonlinetranslationdictionaries_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_listofmanagedaddins", + "displayName": "List of managed add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_listofmanagedaddins_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_listofmanagedaddins_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_listofmanagedaddins_l_listofmanagedaddins2", + "displayName": "List of managed add-ins (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_listofmanagedaddins_l_listofmanagedaddins2_key", + "displayName": "Name", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_listofmanagedaddins_l_listofmanagedaddins2_value", + "displayName": "Value", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_personaltemplatespath", + "displayName": "Personal templates path for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_personaltemplatespath_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_personaltemplatespath_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_personaltemplatespath_l_personaltemplatespath", + "displayName": "Personal templates path (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_showpeople", + "displayName": "Show pictures in comments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_showpeople_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_showpeople_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_toolscompareandmergedocumentslegalblackline", + "displayName": "Tools | Compare and Merge Documents, Legal blackline (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_toolscompareandmergedocumentslegalblackline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_toolscompareandmergedocumentslegalblackline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_volumepreference", + "displayName": "Volume preference (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_volumepreference_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_volumepreference_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_volumepreference_l_volumepreference179", + "displayName": "Volume preference (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_volumepreference_l_volumepreference179_0", + "displayName": "Use Drive letter or UNC as entered", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_volumepreference_l_volumepreference179_2", + "displayName": "Convert Drive letter to UNC", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178_l_volumepreference_l_volumepreference179_1", + "displayName": "Convert UNC to Drive letter", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp", + "displayName": "Turn off file synchronization via SOAP over HTTP (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_miscellaneous178~l_serversettings_l_turnofffilesynchronizationviasoapoverhttp_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_convertcommonterms", + "displayName": "Convert common terms (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_convertcommonterms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_convertcommonterms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_translationdirection", + "displayName": "Translation direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_translationdirection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_translationdirection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_translationdirection_l_translationdirection96", + "displayName": "Translation direction (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_translationdirection_l_translationdirection96_2052", + "displayName": "Traditional Chinese to Simplified Chinese", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_translationdirection_l_translationdirection96_1028", + "displayName": "Simplified Chinese to Traditional Chinese", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_usetaiwanhongkongsarandmacaosarcharactervariants", + "displayName": "Use Taiwan, Hong Kong SAR and Macao SAR character variants (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_usetaiwanhongkongsarandmacaosarcharactervariants_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewchinesetranslation_l_usetaiwanhongkongsarandmacaosarcharactervariants_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewsetlanguage_l_detectlanguageautomatically", + "displayName": "Detect language automatically (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewsetlanguage_l_detectlanguageautomatically_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_reviewtab~l_reviewsetlanguage_l_detectlanguageautomatically_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_addbidirectionalmarkswhensavingtextfiles", + "displayName": "Add Bi-Directional Marks when saving Text files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_addbidirectionalmarkswhensavingtextfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_addbidirectionalmarkswhensavingtextfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_addcontrolcharactersincutandcopy", + "displayName": "Add control characters in Cut and Copy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_addcontrolcharactersincutandcopy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_addcontrolcharactersincutandcopy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_adddoublequoteforhebrewalphabetnumbering", + "displayName": "Add double quote for Hebrew alphabet numbering (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_adddoublequoteforhebrewalphabetnumbering_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_adddoublequoteforhebrewalphabetnumbering_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowa4letterpaperresizing", + "displayName": "Scale content for A4 or 8.5'' x 11'' paper sizes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowa4letterpaperresizing_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowa4letterpaperresizing_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowaccenteduppercaseinfrench", + "displayName": "Allow accented uppercase in French (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowaccenteduppercaseinfrench_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowaccenteduppercaseinfrench_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowbackgroundsaves", + "displayName": "Allow background saves (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowbackgroundsaves_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_allowbackgroundsaves_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_alwayscreatebackupcopy", + "displayName": "Always create backup copy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_alwayscreatebackupcopy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_alwayscreatebackupcopy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_asianfontsalsoapplytolatintext", + "displayName": "Asian fonts also apply to Latin text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_asianfontsalsoapplytolatintext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_asianfontsalsoapplytolatintext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_autokeyboardswitching", + "displayName": "Auto-Keyboard switching (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_autokeyboardswitching_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_autokeyboardswitching_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_automaticallycreatedrawingcanvaswheninsertingautoshapes", + "displayName": "Automatically create drawing canvas when inserting AutoShapes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_automaticallycreatedrawingcanvaswheninsertingautoshapes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_automaticallycreatedrawingcanvaswheninsertingautoshapes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_backgroundprinting", + "displayName": "Print in background (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_backgroundprinting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_backgroundprinting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_backofthesheet", + "displayName": "Print on back of the sheet for duplex printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_backofthesheet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_backofthesheet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_bookmarks", + "displayName": "Show bookmarks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_bookmarks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_bookmarks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_chartreftrackingenabled", + "displayName": "Allow formatting and labels to track data points (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_chartreftrackingenabled_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_chartreftrackingenabled_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_confirmconversionatopen", + "displayName": "Confirm file format conversion on open (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_confirmconversionatopen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_confirmconversionatopen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_controlcharacters", + "displayName": "Show control characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_controlcharacters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_controlcharacters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_copyremotelystoredfiles", + "displayName": "Copy remotely stored files onto your computer, and update the remote file when saving (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_copyremotelystoredfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_copyremotelystoredfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning", + "displayName": "Custom markup warning (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_l_custommarkupwarningdropid", + "displayName": "Custom markup warning: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_l_custommarkupwarningdropid_0", + "displayName": "Do not prompt", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_l_custommarkupwarningdropid_1", + "displayName": "Prompt", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_l_custommarkupwarningdropid_2", + "displayName": "Always prompt", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_l_custommarkupwarningdropid_3", + "displayName": "Prompt and open the file read-only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_l_custommarkupwarningdropid_4", + "displayName": "Always prompt and open the file read-only", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_custommarkupwarning_l_custommarkupwarningdropid_5", + "displayName": "Do not prompt and open the file read-only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_diacritics", + "displayName": "Diacritics (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_diacritics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_diacritics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_differentcolorfordiacritics", + "displayName": "Use this color for diacritics (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_differentcolorfordiacritics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_differentcolorfordiacritics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_documentview", + "displayName": "Document view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_documentview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_documentview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_documentview_l_documentview7", + "displayName": "Document view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_documentview_l_documentview7_1", + "displayName": "Right-to-left", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_documentview_l_documentview7_0", + "displayName": "Left-to-Right", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draftfont", + "displayName": "Use draft font in Draft and Outline views (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draftfont_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draftfont_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draftoutput", + "displayName": "Use draft quality (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draftoutput_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draftoutput_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draganddroptextediting", + "displayName": "Allow text to be dragged and dropped (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draganddroptextediting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_draganddroptextediting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_drawings", + "displayName": "Show drawings and text boxes on screen (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_drawings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_drawings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_enableclickandtype", + "displayName": "Enable click and type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_enableclickandtype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_enableclickandtype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_englishword6095documents", + "displayName": "English Word 6.0/95 documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_englishword6095documents_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_englishword6095documents_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_englishword6095documents_l_englishword6095documents11", + "displayName": "English Word 6.0/95 documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_englishword6095documents_l_englishword6095documents11_0", + "displayName": "Contain Asian text", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_englishword6095documents_l_englishword6095documents11_1", + "displayName": "Open normally", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_englishword6095documents_l_englishword6095documents11_2", + "displayName": "Automatically detect Asian text", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_expandcollapseuimaximumzoomlevel", + "displayName": "Set the maximum zoom level for expand / collapse on-object UI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_expandcollapseuimaximumzoomlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_expandcollapseuimaximumzoomlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_expandcollapseuimaximumzoomlevel_l_setexpandcollapseuimaximumzoomlevelspinid", + "displayName": "Set the maximum zoom level for expand / collapse on-object UI (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_expandcollapseuiminimumzoomlevel", + "displayName": "Set the minimum zoom level for expand / collapse on-object UI (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_expandcollapseuiminimumzoomlevel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_expandcollapseuiminimumzoomlevel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_expandcollapseuiminimumzoomlevel_l_setexpandcollapseuiminimumzoomlevelspinid", + "displayName": "Set the minimum zoom level for expand / collapse on-object UI (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldcodes", + "displayName": "Show field codes instead of their values (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldcodes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldcodes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldshading", + "displayName": "Field shading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldshading_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldshading_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldshading_l_fieldshading6", + "displayName": "Field shading (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldshading_l_fieldshading6_0", + "displayName": "Never", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldshading_l_fieldshading6_1", + "displayName": "Always", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_fieldshading_l_fieldshading6_2", + "displayName": "When selected", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_frontofsheet", + "displayName": "Print on front of the sheet for duplex printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_frontofsheet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_frontofsheet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_horizontalscrollbar", + "displayName": "Show horizontal scroll bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_horizontalscrollbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_horizontalscrollbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_imecontrolactive", + "displayName": "IME Control Active (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_imecontrolactive_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_imecontrolactive_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_imetrueinline", + "displayName": "IME TrueInLine (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_imetrueinline_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_imetrueinline_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_keeptrackofformatting", + "displayName": "Keep track of formatting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_keeptrackofformatting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_keeptrackofformatting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_leftscrollbar", + "displayName": "Left scroll bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_leftscrollbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_leftscrollbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies", + "displayName": "Mark formatting inconsistencies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_checktoenforcesettingonunchecktoenforcesettingoff18", + "displayName": "Check to enforce setting on; uncheck to enforce setting off (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_checktoenforcesettingonunchecktoenforcesettingoff18_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_checktoenforcesettingonunchecktoenforcesettingoff18_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies", + "displayName": "Color for marking formatting inconsistencies (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_0", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_255", + "displayName": "Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_128", + "displayName": "Dark Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_3368703", + "displayName": "Light Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_52479", + "displayName": "Sky Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_10079487", + "displayName": "Pale Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_6710937", + "displayName": "Blue Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_65280", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_32768", + "displayName": "Dark Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_13056", + "displayName": "Darker Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_13434828", + "displayName": "Light Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_3355392", + "displayName": "Olive Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_3381606", + "displayName": "Sea Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16711680", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_8388608", + "displayName": "Dark Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16776960", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_8421376", + "displayName": "Dark Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16777113", + "displayName": "Light Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16777215", + "displayName": "White", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_10040064", + "displayName": "Brown", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16737792", + "displayName": "Orange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16750848", + "displayName": "Light Orange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_65535", + "displayName": "Cyan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_32896", + "displayName": "Dark Cyan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_13434879", + "displayName": "Light Cyan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16711935", + "displayName": "Magenta", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_8388736", + "displayName": "Dark Magenta", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_13158", + "displayName": "Dark Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_3355545", + "displayName": "Indigo", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_10079232", + "displayName": "Lime", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_3394764", + "displayName": "Aqua", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16763904", + "displayName": "Gold", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_10040166", + "displayName": "Plum", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16751052", + "displayName": "Rose", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_16764057", + "displayName": "Tan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_13408767", + "displayName": "Lavender", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_8421504", + "displayName": "Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_markformattinginconsistencies_l_colorformarkingformattinginconsistencies_12632256", + "displayName": "Gray 25%", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits", + "displayName": "Show measurements in units of (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits_l_selectunits", + "displayName": "Select units: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits_l_selectunits_0", + "displayName": "Inches", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits_l_selectunits_2", + "displayName": "Centimeters", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits_l_selectunits_4", + "displayName": "Millimeters", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits_l_selectunits_1", + "displayName": "Points", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_measurementunits_l_selectunits_3", + "displayName": "Picas", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_monthnames", + "displayName": "Month names (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_monthnames_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_monthnames_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_monthnames_l_monthnames17", + "displayName": "Month names (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_monthnames_l_monthnames17_0", + "displayName": "Arabic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_monthnames_l_monthnames17_1", + "displayName": "English transliterated", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_monthnames_l_monthnames17_2", + "displayName": "French transliterated", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_movement", + "displayName": "Cursor movement (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_movement_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_movement_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_movement_l_movement4", + "displayName": "Cursor movement (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_movement_l_movement4_0", + "displayName": "Logical", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_movement_l_movement4_1", + "displayName": "Visual", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_numeral", + "displayName": "Numeral (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_numeral_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_numeral_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_numeral_l_numeral16", + "displayName": "Numeral (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_numeral_l_numeral16_0", + "displayName": "Arabic", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_numeral_l_numeral16_1", + "displayName": "Hindi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_numeral_l_numeral16_2", + "displayName": "Context", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_numeral_l_numeral16_3", + "displayName": "System", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_pictureplaceholders", + "displayName": "Show picture placeholders (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_pictureplaceholders_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_pictureplaceholders_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_promptbeforesavingnormaltemplate", + "displayName": "Prompt before saving Normal template (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_promptbeforesavingnormaltemplate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_promptbeforesavingnormaltemplate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_prompttoupdatestyle", + "displayName": "Prompt to update style (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_prompttoupdatestyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_prompttoupdatestyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_providefeedbackwithanimation", + "displayName": "Provide feedback with animation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_providefeedbackwithanimation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_providefeedbackwithanimation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_recentlyusedfilelist", + "displayName": "Number of documents in the Recent Documents list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_recentlyusedfilelist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_recentlyusedfilelist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_recentlyusedfilelist_l_numberofentries", + "displayName": "Number of entries: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_reverseprintorder", + "displayName": "Print pages in reverse order (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_reverseprintorder_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_reverseprintorder_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_setnumberofplacesintherecentplaceslist", + "displayName": "Number of folders in the Recent Folders list (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_setnumberofplacesintherecentplaceslist_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_setnumberofplacesintherecentplaceslist_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_setnumberofplacesintherecentplaceslist_l_setnumberofplacesintherecentplaceslistspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_showpixelsforhtmlfeatures", + "displayName": "Show pixels for HTML features (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_showpixelsforhtmlfeatures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_showpixelsforhtmlfeatures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth", + "displayName": "Style area pane width in Draft and Outline views (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8", + "displayName": "Style area pane width in Draft and Outline views (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_0", + "displayName": "0''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_24", + "displayName": "0.25''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_48", + "displayName": "0.5''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_72", + "displayName": "0.75''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_96", + "displayName": "1''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_120", + "displayName": "1.25''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_144", + "displayName": "1.5''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_168", + "displayName": "1.75''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_192", + "displayName": "2''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_216", + "displayName": "2.25''", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_styleareawidth_l_styleareawidth8_240", + "displayName": "2.5''", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_textboundaries", + "displayName": "Show text boundaries (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_textboundaries_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_textboundaries_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_typeandreplace", + "displayName": "Type and replace (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_typeandreplace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_typeandreplace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_typingreplacesselection", + "displayName": "Typing replaces selected text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_typingreplacesselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_typingreplacesselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_updateautomaticlinksatopen", + "displayName": "Update automatic links at Open (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_updateautomaticlinksatopen_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_updateautomaticlinksatopen_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usecharacterunits", + "displayName": "Show measurements in width of characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usecharacterunits_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usecharacterunits_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usectrlclicktofollowhyperlink", + "displayName": "Use CTRL + Click to follow hyperlink (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usectrlclicktofollowhyperlink_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usectrlclicktofollowhyperlink_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usesequencechecking", + "displayName": "Use sequence checking (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usesequencechecking_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usesequencechecking_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usesmartparagraphselection", + "displayName": "Use smart paragraph selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usesmartparagraphselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usesmartparagraphselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usetheinskeyforpaste", + "displayName": "Use the Insert key for paste (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usetheinskeyforpaste_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_usetheinskeyforpaste_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_verticalrulerprintviewonly", + "displayName": "Show vertical ruler in Print Layout view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_verticalrulerprintviewonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_verticalrulerprintviewonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_verticalscrollbar", + "displayName": "Show vertical scroll bar (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_verticalscrollbar_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_verticalscrollbar_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_visualselection", + "displayName": "Cursor visual selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_visualselection_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_visualselection_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_visualselection_l_visualselection5", + "displayName": "Cursor visual selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_visualselection_l_visualselection5_0", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_visualselection_l_visualselection5_1", + "displayName": "Continuous", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_whenselectingautomaticallyselectentireword", + "displayName": "When selecting, automatically select entire word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_whenselectingautomaticallyselectentireword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_whenselectingautomaticallyselectentireword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_wraptowindow", + "displayName": "Show text wrapped within the document window (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_wraptowindow_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced_l_wraptowindow_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_relyoncssforfontformatting", + "displayName": "Rely on CSS for font formatting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_relyoncssforfontformatting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_relyoncssforfontformatting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_autorecoverfiles", + "displayName": "AutoRecover files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_autorecoverfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_autorecoverfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_autorecoverfiles_l_autorecoverfiles13", + "displayName": "AutoRecover files (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_clipartpictures", + "displayName": "Clipart pictures (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_clipartpictures_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_clipartpictures_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_clipartpictures_l_clipartpictures12", + "displayName": "Clipart pictures (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_defaultfilelocation", + "displayName": "Default File Location (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_defaultfilelocation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_defaultfilelocation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_defaultfilelocation_l_documents", + "displayName": "Documents (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_startup", + "displayName": "Startup (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_startup_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_startup_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_startup_l_startup15", + "displayName": "Startup (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_tools", + "displayName": "Tools (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_tools_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_tools_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_filelocations_l_tools_l_tools14", + "displayName": "Tools (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustformattingwhenpastingfrommicrosoftexcel", + "displayName": "Adjust formatting when pasting from Microsoft Excel (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustformattingwhenpastingfrommicrosoftexcel_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustformattingwhenpastingfrommicrosoftexcel_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustparagraphspacingonpaste", + "displayName": "Adjust paragraph spacing on paste (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustparagraphspacingonpaste_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustparagraphspacingonpaste_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustsentenceandwordspacingautomatically", + "displayName": "Adjust sentence and word spacing automatically (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustsentenceandwordspacingautomatically_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjustsentenceandwordspacingautomatically_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjusttableformattingandalignmentonpaste", + "displayName": "Adjust table formatting and alignment on paste (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjusttableformattingandalignmentonpaste_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_adjusttableformattingandalignmentonpaste_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_mergeformattingwhenpastingfrompowerpoint", + "displayName": "Merge formatting when pasting from PowerPoint (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_mergeformattingwhenpastingfrompowerpoint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_mergeformattingwhenpastingfrompowerpoint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_mergepastedlistswithsurroundinglists", + "displayName": "Merge pasted lists with surrounding lists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_mergepastedlistswithsurroundinglists_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_mergepastedlistswithsurroundinglists_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_smartstylebehavior", + "displayName": "Smart style behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_smartstylebehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_smartcutandpaste_l_smartstylebehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_weboptions~l_browser_l_disablefeaturesnotsupportedbyspecifiedbrowsers", + "displayName": "Disable features not supported by specified browsers (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_weboptions~l_browser_l_disablefeaturesnotsupportedbyspecifiedbrowsers_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_weboptions~l_browser_l_disablefeaturesnotsupportedbyspecifiedbrowsers_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_weboptions~l_files_l_checkifwordisthedefaulteditorforallotherwebpages", + "displayName": "Check if Word is the default editor for all other Web pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_weboptions~l_files_l_checkifwordisthedefaulteditorforallotherwebpages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_weboptions~l_files_l_checkifwordisthedefaulteditorforallotherwebpages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_documentproperties", + "displayName": "Print document properties (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_documentproperties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_documentproperties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_drawingobjects", + "displayName": "Print drawings created in Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_drawingobjects_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_drawingobjects_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_hiddentext", + "displayName": "Hidden text (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_hiddentext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_hiddentext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_highlight", + "displayName": "Show highlighter marks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_highlight_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_highlight_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_objectanchors", + "displayName": "Object anchors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_objectanchors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_objectanchors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_optionalbreaks", + "displayName": "Optional breaks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_optionalbreaks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_optionalbreaks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_optionalhyphens", + "displayName": "Optional hyphens (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_optionalhyphens_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_optionalhyphens_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_paragraphmarks", + "displayName": "Paragraph marks (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_paragraphmarks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_paragraphmarks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_screentips", + "displayName": "Show document tooltips on hover (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_screentips_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_screentips_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_spaces", + "displayName": "Spaces (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_spaces_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_spaces_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_tabcharacters", + "displayName": "Tab characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_tabcharacters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_tabcharacters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_updatefields", + "displayName": "Update fields before printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_updatefields_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_updatefields_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_updatelinks", + "displayName": "Update linked data before printing (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_updatelinks_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_updatelinks_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_whitespacebetweenpagesprintviewonly", + "displayName": "Show white space between pages in Print Layout view (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_whitespacebetweenpagesprintviewonly_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_display_l_whitespacebetweenpagesprintviewonly_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionscustomizeribbon_l_displaydevelopertab", + "displayName": "Display Developer tab in the Ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionscustomizeribbon_l_displaydevelopertab_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionscustomizeribbon_l_displaydevelopertab_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_alertifnotdefault", + "displayName": "Prompt the user if Word is not the default application for its file extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_alertifnotdefault_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_alertifnotdefault_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_allowselectionfloaties", + "displayName": "Show Mini Toolbar on selection (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_allowselectionfloaties_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_allowselectionfloaties_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_digitalprint", + "displayName": "Don't show the option to transform a document to a Sway web page (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_digitalprint_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_digitalprint_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_enablelivepreview", + "displayName": "Enable Live Preview (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_enablelivepreview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_enablelivepreview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_linkedinresumeassistant", + "displayName": "Allow LinkedIn Resume Assistant feature (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_linkedinresumeassistant_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_linkedinresumeassistant_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_onlinevideos", + "displayName": "Allow Online Videos to play within Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_onlinevideos_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_onlinevideos_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_openattachmentsforfullscreenreading", + "displayName": "Open e-mail attachments in Reading View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_openattachmentsforfullscreenreading_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_openattachmentsforfullscreenreading_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_openattachmentsforfullscreenreading_l_checktoallowstartinginreadinglayout", + "displayName": "Check to allow starting in Reading Layout (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_openattachmentsforfullscreenreading_l_checktoallowstartinginreadinglayout_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_openattachmentsforfullscreenreading_l_checktoallowstartinginreadinglayout_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype", + "displayName": "Mark grammar errors as you type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_checktoenforcesettingonunchecktoenforcesettingoff0", + "displayName": "Check to enforce setting on; uncheck to enforce setting off (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_checktoenforcesettingonunchecktoenforcesettingoff0_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_checktoenforcesettingonunchecktoenforcesettingoff0_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors", + "displayName": "Color for marking grammatical errors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_0", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_255", + "displayName": "Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_128", + "displayName": "Dark Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_3368703", + "displayName": "Light Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_52479", + "displayName": "Sky Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_10079487", + "displayName": "Pale Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_6710937", + "displayName": "Blue Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_65280", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_32768", + "displayName": "Dark Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_13056", + "displayName": "Darker Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_13434828", + "displayName": "Light Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_3355392", + "displayName": "Olive Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_3381606", + "displayName": "Sea Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16711680", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_8388608", + "displayName": "Dark Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16776960", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_8421376", + "displayName": "Dark Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16777113", + "displayName": "Light Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16777215", + "displayName": "White", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_10040064", + "displayName": "Brown", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16737792", + "displayName": "Orange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16750848", + "displayName": "Light Orange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_65535", + "displayName": "Cyan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_32896", + "displayName": "Dark Cyan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_13434879", + "displayName": "Light Cyan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16711935", + "displayName": "Magenta", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_8388736", + "displayName": "Dark Magenta", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_13158", + "displayName": "Dark Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_3355545", + "displayName": "Indigo", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_10079232", + "displayName": "Lime", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_3394764", + "displayName": "Aqua", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16763904", + "displayName": "Gold", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_10040166", + "displayName": "Plum", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16751052", + "displayName": "Rose", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_16764057", + "displayName": "Tan", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_13408767", + "displayName": "Lavender", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_8421504", + "displayName": "Gray", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarasyoutype_l_colorformarkinggrammaticalerrors_12632256", + "displayName": "Gray 25%", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarwithspelling", + "displayName": "Check grammar with spelling (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarwithspelling_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_checkgrammarwithspelling_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_delaybeforestartingbackgroundspellingchecker", + "displayName": "Delay before starting background spelling checker (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_delaybeforestartingbackgroundspellingchecker_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_delaybeforestartingbackgroundspellingchecker_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_delaybeforestartingbackgroundspellingchecker_l_delaybeforestartingbackgroundspellingchecker3", + "displayName": "Milliseconds (e.g. 5000 milliseconds = 5 seconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_delaybeforestartingotherproofingtools", + "displayName": "Delay before starting other proofing tools (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_delaybeforestartingotherproofingtools_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_delaybeforestartingotherproofingtools_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_delaybeforestartingotherproofingtools_l_delaybeforestartingbackgroundgrammarchecker3", + "displayName": "Milliseconds (e.g. 5000 milliseconds = 5 seconds) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_donotenableadditionalactionsintherightclickmenu", + "displayName": "Do not enable additional actions in the right-click menu (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_donotenableadditionalactionsintherightclickmenu_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_donotenableadditionalactionsintherightclickmenu_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_showreadabilitystatistics", + "displayName": "Show readability statistics (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_showreadabilitystatistics_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_showreadabilitystatistics_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_writingstyle", + "displayName": "Writing style (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_writingstyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_writingstyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_writingstyle_l_writingstyle1", + "displayName": "Writing style (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_writingstyle_l_writingstyle1_0", + "displayName": "Grammar & Style", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing_l_writingstyle_l_writingstyle1_1", + "displayName": "Grammar Only", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_capitalizefirstletterofsentence", + "displayName": "Capitalize first letter of sentence (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_capitalizefirstletterofsentence_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_capitalizefirstletterofsentence_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_capitalizenamesofdays", + "displayName": "Capitalize names of days (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_capitalizenamesofdays_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_capitalizenamesofdays_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correctaccidentalusageofcapslockkey", + "displayName": "Correct accidental usage of cAPS LOCK key (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correctaccidentalusageofcapslockkey_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correctaccidentalusageofcapslockkey_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correctkeyboardsetting", + "displayName": "Correct keyboard setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correctkeyboardsetting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correctkeyboardsetting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correcttwoinitialcapitals", + "displayName": "Correct TWo INitial CApitals (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correcttwoinitialcapitals_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_correcttwoinitialcapitals_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_replacetextasyoutype", + "displayName": "Replace text as you type (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_replacetextasyoutype_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autocorrect_l_replacetextasyoutype_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_automaticbulletedlists", + "displayName": "Automatic bulleted lists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_automaticbulletedlists_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_automaticbulletedlists_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_automaticnumberedlists", + "displayName": "Automatic numbered lists (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_automaticnumberedlists_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_automaticnumberedlists_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_borderlines", + "displayName": "Border lines (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_borderlines_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_borderlines_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_closingstyletoletterclosings", + "displayName": "Closing style to letter closings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_closingstyletoletterclosings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_closingstyletoletterclosings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_datestyle", + "displayName": "Date style (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_datestyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_datestyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_headings", + "displayName": "Headings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_headings_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_headings_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_tables", + "displayName": "Tables (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_tables_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_applyasyoutype_l_tables_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_autospace", + "displayName": "Auto space (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_autospace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_autospace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_definestylesbasedonyourformatting", + "displayName": "Define styles based on your formatting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_definestylesbasedonyourformatting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_definestylesbasedonyourformatting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_formatbeginningoflistitemliketheonebeforeit", + "displayName": "Format beginning of list item like the one before it (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_formatbeginningoflistitemliketheonebeforeit_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_formatbeginningoflistitemliketheonebeforeit_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_insertclosingphrasetomatchjapanesesalutation", + "displayName": "Insert closing phrase to match Japanese salutation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_insertclosingphrasetomatchjapanesesalutation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_insertclosingphrasetomatchjapanesesalutation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_insertclosingphrasetomatchmemostyle", + "displayName": "Insert closing phrase to match memo style (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_insertclosingphrasetomatchmemostyle_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_insertclosingphrasetomatchmemostyle_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_matchparentheses", + "displayName": "Match parentheses (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_matchparentheses_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_matchparentheses_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_setleftindentontabsandbackspace", + "displayName": "Set left indent on tabs and backspace (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_setleftindentontabsandbackspace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_automaticallyasyoutype_l_setleftindentontabsandbackspace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_boldand_italic_withrealformatting", + "displayName": "*Bold* and _italic_ with real formatting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_boldand_italic_withrealformatting_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_boldand_italic_withrealformatting_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_dashlikecharacters", + "displayName": "Dash-like characters (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_dashlikecharacters_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_dashlikecharacters_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_firstlineindent", + "displayName": "First line indent (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_firstlineindent_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_firstlineindent_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_fractions12withfractioncharacter", + "displayName": "Fractions (1/2) with fraction character (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_fractions12withfractioncharacter_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_fractions12withfractioncharacter_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_ordinals1stwithsuperscript", + "displayName": "Ordinals (1st) with superscript (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_ordinals1stwithsuperscript_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_ordinals1stwithsuperscript_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_straightquoteswithsmartquotes", + "displayName": "Straight quotes with smart quotes (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_straightquoteswithsmartquotes_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_straightquoteswithsmartquotes_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_symbolcharacterswithsymbols", + "displayName": "Symbol characters (--) with symbols (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_symbolcharacterswithsymbols_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_proofing~l_autoformatasyoutype~l_replaceasyoutype_l_symbolcharacterswithsymbols_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_compatmodeonsaveas", + "displayName": "Save As Open XML in Compatibility Mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_compatmodeonsaveas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_compatmodeonsaveas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_donotdisplayfileformatcompatiblitydialogforodt", + "displayName": "Do not display file format compatibility dialog box for OpenDocument text format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_donotdisplayfileformatcompatiblitydialogforodt_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_donotdisplayfileformatcompatiblitydialogforodt_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_keeplastautosavedversions", + "displayName": "Keep the last AutoSaved versions of files for the next session (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_keeplastautosavedversions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_keeplastautosavedversions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_saveautorecoverinfo", + "displayName": "Save AutoRecover info (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_saveautorecoverinfo_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_saveautorecoverinfo_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_saveautorecoverinfo_l_saveautorecoverinfoeveryminutes", + "displayName": "Save AutoRecover info every (minutes) (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas", + "displayName": "Default file format (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3", + "displayName": "Save Word files as (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_", + "displayName": "Word Document (*.docx)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_webarchive", + "displayName": "Single Files Web Page (*.mht)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_html", + "displayName": "Web Page (*.htm; *.html)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_reducedhtml", + "displayName": "Web Page, Filtered (*.htm, *.html)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_rtf", + "displayName": "Rich Text Format (*.rtf)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_text", + "displayName": "Plain Text (*.txt)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_msword6exp", + "displayName": "Word 6.0/95 (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_msword6scexp", + "displayName": "Word 6.0/95 - Chinese (Simplified) (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_msword6tcexp", + "displayName": "Word 6.0/95 - Chinese (Traditional) (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_msword6jexp", + "displayName": "Word 6.0/95 - Japanese (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_msword95kexp", + "displayName": "Word 6.0/95 - Korean (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_msword6rtfexp", + "displayName": "Word 97-2002 & 6.0/95 - RTF", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_mswordmac51", + "displayName": "Word 5.1 for Macintosh (*.mcw)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_mswordmac5", + "displayName": "Word 5.0 for Macintosh (*.mcw)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_mswordwin2", + "displayName": "Word 2.x for Windows (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_msworkswin4", + "displayName": "Works 4.0 for Windows (*.wps)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_wrdprfctwin", + "displayName": "WordPerfect 5.x for Windows (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_wrdprfctdos51", + "displayName": "WordPerfect 5.1 for DOS (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_macroenableddocument", + "displayName": "Word Macro-Enabled Document (*.docm)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_template", + "displayName": "Word Template (*.dotx)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_macroenabledtemplate", + "displayName": "Word Macro-Enabled Template (*.dotm)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_doc", + "displayName": "Word 97 - 2003 Document (*.doc)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_dot", + "displayName": "Word 97 - 2003 Template (*.dot)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_flatxml", + "displayName": "Word XML Document (*.xml)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_docxstrict", + "displayName": "Strict Open XML Document (*.docx)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_savewordfilesas_l_savewordfilesas3_odt", + "displayName": "OpenDocument Text (*.odt)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_setdefaultcompatibilitymodeonfilecreation", + "displayName": "Set default compatibility mode on file creation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_setdefaultcompatibilitymodeonfilecreation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_setdefaultcompatibilitymodeonfilecreation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_setdefaultcompatibilitymodeonfilecreation_l_setdefaultcompatibilitymodeonfilecreationdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_setdefaultcompatibilitymodeonfilecreation_l_setdefaultcompatibilitymodeonfilecreationdropid_11", + "displayName": "Word 2003", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_setdefaultcompatibilitymodeonfilecreation_l_setdefaultcompatibilitymodeonfilecreationdropid_12", + "displayName": "Word 2007", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_setdefaultcompatibilitymodeonfilecreation_l_setdefaultcompatibilitymodeonfilecreationdropid_14", + "displayName": "Word 2010", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_save_l_setdefaultcompatibilitymodeonfilecreation_l_setdefaultcompatibilitymodeonfilecreationdropid_15", + "displayName": "Full functionality mode", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_disableirmonxpsexport", + "displayName": "Turn off IRM protection on XPS Export for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_disableirmonxpsexport_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_disableirmonxpsexport_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_disablewarningonincludefieldsupdate", + "displayName": "Don’t ask permission before updating IncludePicture and IncludeText fields in Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_disablewarningonincludefieldsupdate_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_disablewarningonincludefieldsupdate_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_makehiddenmarkupvisible", + "displayName": "Make hidden markup visible (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_makehiddenmarkupvisible_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_makehiddenmarkupvisible_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_storerandomnumbertoimprovemergeaccuracy", + "displayName": "Store random number to improve merge accuracy (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_storerandomnumbertoimprovemergeaccuracy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_storerandomnumbertoimprovemergeaccuracy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_turnofffilevalidation", + "displayName": "Turn off file validation (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_turnofffilevalidation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_turnofffilevalidation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_warnbeforeprintingsavingorsendingafilethatcontainstrackedcha", + "displayName": "Warn before printing, saving or sending a file that contains tracked changes or comments (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_warnbeforeprintingsavingorsendingafilethatcontainstrackedcha_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security_l_warnbeforeprintingsavingorsendingafilethatcontainstrackedcha_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_configurecngcipherchainingmode", + "displayName": "Configure CNG cipher chaining mode (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecbc", + "displayName": "Cipher Block Chaining (CBC)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_configurecngcipherchainingmode_l_configurecngcipherchainingmodedropid_chainingmodecfb", + "displayName": "Cipher Feedback (CFB)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngcipheralgorithm", + "displayName": "Set CNG cipher algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngcipheralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngcipheralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngcipheralgorithm_l_setcngcipheralgorithmid", + "displayName": "CNG cipher algorithm: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngcipherkeylength", + "displayName": "Set CNG cipher key length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngcipherkeylength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngcipherkeylength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngcipherkeylength_l_setcngcipherkeylengthspinid", + "displayName": "Cipher key length (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngpasswordspincount", + "displayName": "Set CNG password spin count (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngpasswordspincount_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngpasswordspincount_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setcngpasswordspincount_l_setcngpasswordspincountspinid", + "displayName": "", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setparametersforcngcontext", + "displayName": "Set parameters for CNG context (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setparametersforcngcontext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setparametersforcngcontext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_setparametersforcngcontext_l_setparametersforcngcontextid", + "displayName": "Parameters (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycnghashalgorithm", + "displayName": "Specify CNG hash algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycnghashalgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycnghashalgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha1", + "displayName": "SHA1", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha256", + "displayName": "SHA256", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha384", + "displayName": "SHA384", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycnghashalgorithm_l_specifycnghashalgorithmdropid_sha512", + "displayName": "SHA512", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm", + "displayName": "Specify CNG random number generator algorithm (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycngrandomnumbergeneratoralgorithm_l_specifycngrandomnumbergeneratoralgorithmid", + "displayName": "Random number generator: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycngsaltlength", + "displayName": "Specify CNG salt length (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycngsaltlength_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycngsaltlength_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifycngsaltlength_l_specifycngsaltlengthspinid", + "displayName": "Number of bytes (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifyencryptioncompatibility", + "displayName": "Specify encryption compatibility (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_0", + "displayName": "Use legacy format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_1", + "displayName": "Use next generation format", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_specifyencryptioncompatibility_l_specifyencryptioncompatibilitydropid_2", + "displayName": "All files save with next generation format", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_usenewkeyonpasswordchange", + "displayName": "Use new key on password change (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_usenewkeyonpasswordchange_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_cryptography_l_usenewkeyonpasswordchange_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowdde", + "displayName": "Dynamic Data Exchange (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowdde_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowdde_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowdde_l_allowddedropid", + "displayName": "Dynamic Data Exchange setting (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowdde_l_allowddedropid_1", + "displayName": "Limited Dynamic Data Exchange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowdde_l_allowddedropid_2", + "displayName": "Allow Dynamic Data Exchange", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowwordmailloadembeddedfonts", + "displayName": "Allow embedded TrueType fonts to be sent in messages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowwordmailloadembeddedfonts_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_allowwordmailloadembeddedfonts_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet", + "displayName": "Block macros from running in Office files from the Internet (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_blockmacroexecutionfrominternet_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_determinewhethertoforceencryptedword", + "displayName": "Scan encrypted macros in Word Open XML documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_determinewhethertoforceencryptedword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_determinewhethertoforceencryptedword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_determinewhethertoforceencryptedword_l_determinewhethertoforceencryptedworddropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_determinewhethertoforceencryptedword_l_determinewhethertoforceencryptedworddropid_0", + "displayName": "Scan encrypted macros (default)", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_determinewhethertoforceencryptedword_l_determinewhethertoforceencryptedworddropid_1", + "displayName": "Scan if anti-virus software available", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_determinewhethertoforceencryptedword_l_determinewhethertoforceencryptedworddropid_2", + "displayName": "Load macros without scanning", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disableallapplicationextensions", + "displayName": "Disable all application add-ins (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disableallapplicationextensions_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disableallapplicationextensions_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User) (Deprecated)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2", + "displayName": "Disable Trust Bar Notification for unsigned application add-ins and block them (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_disabletrustbarnotificationforunsigned_v2_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned", + "displayName": "Require that application add-ins are signed by Trusted Publisher (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_requirethatapplicationextensionsaresigned_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments", + "displayName": "Set maximum number of trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_setmaximumnumberoftrusteddocuments_l_setmaximumnumberoftrusteddocumentsspinid", + "displayName": "Maximum number: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve", + "displayName": "Set maximum number of trust records to preserve (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_setmaximumnumberoftrustrecordstopreserve_l_setmaximumnumberoftrustrecordstopreservespinid", + "displayName": "Maximum to preserve: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject", + "displayName": "Trust access to Visual Basic Project (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_trustaccesstovisualbasicproject_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_turnofftrusteddocuments", + "displayName": "Turn off trusted documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_turnofftrusteddocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_turnofftrusteddocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork", + "displayName": "Turn off Trusted Documents on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_turnofftrusteddocumentsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_vbawarningspolicy", + "displayName": "VBA Macro Notification Settings (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_vbawarningspolicy_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_vbawarningspolicy_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty19", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty19_2", + "displayName": "Disable all with notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty19_3", + "displayName": "Disable all except digitally signed macros", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty19_4", + "displayName": "Disable all without notification", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter_l_vbawarningspolicy_l_empty19_1", + "displayName": "Enable all macros (not recommended)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword", + "displayName": "Legacy converters for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_l_legacyconvertersforworddropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_l_legacyconvertersforworddropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_l_legacyconvertersforworddropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_l_legacyconvertersforworddropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_l_legacyconvertersforworddropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_l_legacyconvertersforworddropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_legacyconvertersforword_l_legacyconvertersforworddropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword", + "displayName": "Office Open XML converters for Word (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_l_officeopenxmlconvertersforworddropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_l_officeopenxmlconvertersforworddropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_l_officeopenxmlconvertersforworddropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_l_officeopenxmlconvertersforworddropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_l_officeopenxmlconvertersforworddropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_l_officeopenxmlconvertersforworddropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_officeopenxmlconvertersforword_l_officeopenxmlconvertersforworddropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles", + "displayName": "OpenDocument Text files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_l_opendocumenttextfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_l_opendocumenttextfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_l_opendocumenttextfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_l_opendocumenttextfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_l_opendocumenttextfilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_l_opendocumenttextfilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_opendocumenttextfiles_l_opendocumenttextfilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_plaintextfiles", + "displayName": "Plain text files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_plaintextfiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_plaintextfiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_plaintextfiles_l_plaintextfilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_plaintextfiles_l_plaintextfilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_plaintextfiles_l_plaintextfilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_plaintextfiles_l_plaintextfilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles", + "displayName": "RTF files (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_l_rtffilesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_l_rtffilesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_l_rtffilesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_l_rtffilesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_l_rtffilesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_l_rtffilesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_rtffiles_l_rtffilesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior", + "displayName": "Set default file block behavior (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_0", + "displayName": "Blocked files are not opened", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_1", + "displayName": "Blocked files open in Protected View and can not be edited", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_setdefaultfileblockbehavior_l_setdefaultfileblockbehaviordropid_2", + "displayName": "Blocked files open in Protected View and can be edited", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages", + "displayName": "Web pages (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_webpages_l_webpagesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates", + "displayName": "Word 2000 binary documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates_l_word2000binarydocumentsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates_l_word2000binarydocumentsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates_l_word2000binarydocumentsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates_l_word2000binarydocumentsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates_l_word2000binarydocumentsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2000binarydocumentsandtemplates_l_word2000binarydocumentsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments", + "displayName": "Word 2003 and plain XML documents (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_l_word2003andplainxmldocumentsdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_l_word2003andplainxmldocumentsdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_l_word2003andplainxmldocumentsdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_l_word2003andplainxmldocumentsdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_l_word2003andplainxmldocumentsdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_l_word2003andplainxmldocumentsdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003andplainxmldocuments_l_word2003andplainxmldocumentsdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates", + "displayName": "Word 2003 binary documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates_l_word2003binarydocumentsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates_l_word2003binarydocumentsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates_l_word2003binarydocumentsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates_l_word2003binarydocumentsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates_l_word2003binarydocumentsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2003binarydocumentsandtemplates_l_word2003binarydocumentsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates", + "displayName": "Word 2007 and later binary documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_l_word2007andlaterbinarydocumentsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_l_word2007andlaterbinarydocumentsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_l_word2007andlaterbinarydocumentsandtemplatesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_l_word2007andlaterbinarydocumentsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_l_word2007andlaterbinarydocumentsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_l_word2007andlaterbinarydocumentsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterbinarydocumentsandtemplates_l_word2007andlaterbinarydocumentsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates", + "displayName": "Word 2007 and later documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_l_word2007andlaterdocsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_l_word2007andlaterdocsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_l_word2007andlaterdocsandtemplatesdropid_1", + "displayName": "Save blocked", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_l_word2007andlaterdocsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_l_word2007andlaterdocsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_l_word2007andlaterdocsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2007andlaterdocsandtemplates_l_word2007andlaterdocsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates", + "displayName": "Word 2 and earlier binary documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates_l_word2andearlierbinarydocumentsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates_l_word2andearlierbinarydocumentsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates_l_word2andearlierbinarydocumentsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates_l_word2andearlierbinarydocumentsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates_l_word2andearlierbinarydocumentsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word2andearlierbinarydocumentsandtemplates_l_word2andearlierbinarydocumentsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates", + "displayName": "Word 6.0 binary documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates_l_word6pt0binarydocumentsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates_l_word6pt0binarydocumentsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates_l_word6pt0binarydocumentsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates_l_word6pt0binarydocumentsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates_l_word6pt0binarydocumentsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word6pt0binarydocumentsandtemplates_l_word6pt0binarydocumentsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates", + "displayName": "Word 95 binary documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates_l_word95binarydocumentsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates_l_word95binarydocumentsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates_l_word95binarydocumentsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates_l_word95binarydocumentsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates_l_word95binarydocumentsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word95binarydocumentsandtemplates_l_word95binarydocumentsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates", + "displayName": "Word 97 binary documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates_l_word97binarydocumentsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates_l_word97binarydocumentsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates_l_word97binarydocumentsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates_l_word97binarydocumentsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates_l_word97binarydocumentsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_word97binarydocumentsandtemplates_l_word97binarydocumentsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates", + "displayName": "Word XP binary documents and templates (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates_l_wordxpbinarydocumentsandtemplatesdropid", + "displayName": "File block setting: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates_l_wordxpbinarydocumentsandtemplatesdropid_0", + "displayName": "Do not block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates_l_wordxpbinarydocumentsandtemplatesdropid_2", + "displayName": "Open/Save blocked, use open policy", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates_l_wordxpbinarydocumentsandtemplatesdropid_3", + "displayName": "Block", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates_l_wordxpbinarydocumentsandtemplatesdropid_4", + "displayName": "Open in Protected View", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_fileblocksettings_l_wordxpbinarydocumentsandtemplates_l_wordxpbinarydocumentsandtemplatesdropid_5", + "displayName": "Allow editing and open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview", + "displayName": "Do not open files from the Internet zone in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesfromtheinternetzoneinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview", + "displayName": "Do not open files in unsafe locations in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_donotopenfilesinunsafelocationsinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview", + "displayName": "Open files on local Intranet UNC in Protected View (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_openfilesonlocalintranetuncinprotectedview_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails", + "displayName": "Set document behavior if file validation fails (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid_0", + "displayName": "Block files", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsdropid_1", + "displayName": "Open in Protected View", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3", + "displayName": "Checked: Allow edit. Unchecked: Do not allow edit. (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_setdocumentbehavioriffilevalidationfails_l_setdocumentbehavioriffilevalidationfailsstr3_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook", + "displayName": "Turn off Protected View for attachments opened from Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_protectedview_l_turnoffprotectedviewforattachmentsopenedfromoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork", + "displayName": "Allow Trusted Locations on the network (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_allowtrustedlocationsonthenetwork_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc", + "displayName": "Disable all trusted locations (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_disabletrustedloc_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01", + "displayName": "Trusted Location #1 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_allowsubfolders_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_datecolon", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_descriptioncolon", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc01_l_pathcolon", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02", + "displayName": "Trusted Location #2 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders23", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders23_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_allowsubfolders23_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_datecolon21", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_descriptioncolon22", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc02_l_pathcolon20", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03", + "displayName": "Trusted Location #3 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders27", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders27_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_allowsubfolders27_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_datecolon25", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_descriptioncolon26", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc03_l_pathcolon24", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04", + "displayName": "Trusted Location #4 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders31", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders31_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_allowsubfolders31_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_datecolon29", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_descriptioncolon30", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc04_l_pathcolon28", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05", + "displayName": "Trusted Location #5 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders35", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders35_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_allowsubfolders35_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_datecolon33", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_descriptioncolon34", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc05_l_pathcolon32", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06", + "displayName": "Trusted Location #6 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders39", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders39_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_allowsubfolders39_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_datecolon37", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_descriptioncolon38", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc06_l_pathcolon36", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07", + "displayName": "Trusted Location #7 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders43", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders43_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_allowsubfolders43_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_datecolon41", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_descriptioncolon42", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc07_l_pathcolon40", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08", + "displayName": "Trusted Location #8 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders47", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders47_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_allowsubfolders47_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_datecolon45", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_descriptioncolon46", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc08_l_pathcolon44", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09", + "displayName": "Trusted Location #9 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders51", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders51_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_allowsubfolders51_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_datecolon49", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_descriptioncolon50", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc09_l_pathcolon48", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10", + "displayName": "Trusted Location #10 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders55", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders55_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_allowsubfolders55_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_datecolon53", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_descriptioncolon54", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc10_l_pathcolon52", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11", + "displayName": "Trusted Location #11 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders59", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders59_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_allowsubfolders59_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_datecolon57", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_descriptioncolon58", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc11_l_pathcolon56", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12", + "displayName": "Trusted Location #12 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders63", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders63_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_allowsubfolders63_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_datecolon61", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_descriptioncolon62", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc12_l_pathcolon60", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13", + "displayName": "Trusted Location #13 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders67", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders67_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_allowsubfolders67_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_datecolon65", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_descriptioncolon66", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc13_l_pathcolon64", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14", + "displayName": "Trusted Location #14 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders71", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders71_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_allowsubfolders71_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_datecolon69", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_descriptioncolon70", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc14_l_pathcolon68", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15", + "displayName": "Trusted Location #15 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders75", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders75_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_allowsubfolders75_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_datecolon73", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_descriptioncolon74", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc15_l_pathcolon72", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16", + "displayName": "Trusted Location #16 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders79", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders79_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_allowsubfolders79_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_datecolon77", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_descriptioncolon78", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc16_l_pathcolon76", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17", + "displayName": "Trusted Location #17 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders83", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders83_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_allowsubfolders83_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_datecolon81", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_descriptioncolon82", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc17_l_pathcolon80", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18", + "displayName": "Trusted Location #18 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders87", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders87_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_allowsubfolders87_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_datecolon85", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_descriptioncolon86", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc18_l_pathcolon84", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19", + "displayName": "Trusted Location #19 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders91", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders91_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_allowsubfolders91_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_datecolon89", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_descriptioncolon90", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc19_l_pathcolon88", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20", + "displayName": "Trusted Location #20 (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders95", + "displayName": "Allow sub folders: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders95_0", + "displayName": "False", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_allowsubfolders95_1", + "displayName": "True", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_datecolon93", + "displayName": "Date: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_descriptioncolon94", + "displayName": "Description: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_security~l_trustcenter~l_trustedlocations_l_trustedloc20_l_pathcolon92", + "displayName": "Path: (User)", + "options": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_balloons", + "displayName": "Balloons (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_balloons_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_balloons_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_balloons_l_empty", + "displayName": "", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_balloons_l_empty_0", + "displayName": "Balloons on", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_balloons_l_empty_2", + "displayName": "Comments and formatting only in balloons", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_balloons_l_empty_1", + "displayName": "Balloons off (revisions inline)", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_compareresultingdocument", + "displayName": "Compare resulting document (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_compareresultingdocument_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_compareresultingdocument_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_compareresultingdocument_l_compareresultingdocumentpart", + "displayName": "Document used for result of compare: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_compareresultingdocument_l_compareresultingdocumentpart_0", + "displayName": "Original Document", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_compareresultingdocument_l_compareresultingdocumentpart_1", + "displayName": "Revised Document", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_compareresultingdocument_l_compareresultingdocumentpart_2", + "displayName": "New document", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor", + "displayName": "Deletions color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart", + "displayName": "Color for tracking deletions: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_0", + "displayName": "By Author", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_1", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_2", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_3", + "displayName": "Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_4", + "displayName": "Turquoise", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_5", + "displayName": "Bright Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_6", + "displayName": "Pink", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_7", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_8", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_9", + "displayName": "White", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_10", + "displayName": "Dark Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_11", + "displayName": "Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_12", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_13", + "displayName": "Violet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_14", + "displayName": "Dark Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_15", + "displayName": "Dark Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_16", + "displayName": "Gray 50%", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_deletionscolor_l_deletionscolorpart_17", + "displayName": "Gray 25%", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_ignorewhitespace", + "displayName": "Ignore White Space (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_ignorewhitespace_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_ignorewhitespace_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor", + "displayName": "Insertions color (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart", + "displayName": "Color for tracking insertions: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_0", + "displayName": "By Author", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_1", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_2", + "displayName": "Black", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_3", + "displayName": "Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_4", + "displayName": "Turquoise", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_5", + "displayName": "Bright Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_6", + "displayName": "Pink", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_7", + "displayName": "Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_8", + "displayName": "Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_9", + "displayName": "White", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_10", + "displayName": "Dark Blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_11", + "displayName": "Teal", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_12", + "displayName": "Green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_13", + "displayName": "Violet", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_14", + "displayName": "Dark Red", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_15", + "displayName": "Dark Yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_16", + "displayName": "Gray 50%", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_insertionscolor_l_insertionscolorpart_17", + "displayName": "Gray 25%", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors", + "displayName": "Table compare colors (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1", + "displayName": "Color for inserted cells: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_1", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_0", + "displayName": "By Author", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_2", + "displayName": "Pink", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_3", + "displayName": "Light blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_4", + "displayName": "Light yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_5", + "displayName": "Light purple", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_6", + "displayName": "Light Orange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_7", + "displayName": "Light green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart1_8", + "displayName": "Gray", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2", + "displayName": "Color for deleted cells: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_1", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_0", + "displayName": "By Author", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_2", + "displayName": "Pink", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_3", + "displayName": "Light blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_4", + "displayName": "Light yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_5", + "displayName": "Light purple", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_6", + "displayName": "Light Orange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_7", + "displayName": "Light green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart2_8", + "displayName": "Gray", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3", + "displayName": "Color for merged cells: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_1", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_0", + "displayName": "By Author", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_2", + "displayName": "Pink", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_3", + "displayName": "Light blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_4", + "displayName": "Light yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_5", + "displayName": "Light purple", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_6", + "displayName": "Light Orange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_7", + "displayName": "Light green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart3_8", + "displayName": "Gray", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4", + "displayName": "Color for split cells: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_1", + "displayName": "None", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_0", + "displayName": "By Author", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_2", + "displayName": "Pink", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_3", + "displayName": "Light blue", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_4", + "displayName": "Light yellow", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_5", + "displayName": "Light purple", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_6", + "displayName": "Light Orange", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_7", + "displayName": "Light green", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v2~policy~l_microsoftofficeword~l_wordoptions~l_trackchangesandcompare_l_tablecomparecolors_l_tablecomparecolorspart4_8", + "displayName": "Gray", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v3~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_acronyms", + "displayName": "Remove the Acronyms command from the ribbon (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v3~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_acronyms_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v3~policy~l_microsoftofficeword~l_wordoptions~l_optionsgeneral_l_acronyms_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook", + "displayName": "Specify default quality of compression done on inlined images inserted in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook_l_defaultcompressionqualityforinlinedimagesinoutlookpart", + "displayName": "Default inline image compression quality for Outlook: (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook_l_defaultcompressionqualityforinlinedimagesinoutlookpart_0", + "displayName": "High Fidelity", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook_l_defaultcompressionqualityforinlinedimagesinoutlookpart_1", + "displayName": "330 ppi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook_l_defaultcompressionqualityforinlinedimagesinoutlookpart_2", + "displayName": "220 ppi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook_l_defaultcompressionqualityforinlinedimagesinoutlookpart_3", + "displayName": "150 ppi", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_defaultcompressionqualityforinlinedimagesinoutlook_l_defaultcompressionqualityforinlinedimagesinoutlookpart_4", + "displayName": "96 ppi", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_donotcompressinlinedimagesinoutlook", + "displayName": "Do not compress the inlined images inserted in Outlook (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_donotcompressinlinedimagesinoutlook_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v4~policy~l_microsoftofficeword~l_wordoptions~l_advanced~l_emailoptions_l_donotcompressinlinedimagesinoutlook_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation", + "displayName": "Stop checking for table alt text accessibility information (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtablealttextaccessibilityinformation_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningfultext", + "displayName": "Stop checking to ensure hyperlink text is meaningful (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningfultext_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningfultext_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningfultextextension", + "displayName": "Stop checking to ensure hyperlink text extension is meaningful if they include extensions (User)", + "options": [ + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningfultextextension_0", + "displayName": "Disabled", + "description": null + }, + { + "id": "user_vendor_msft_policy_config_word16v9~policy~l_microsoftofficeword~l_filetab~l_checkaccessibility_l_stopcheckingtoensurehyperlinktextismeaningfultextextension_1", + "displayName": "Enabled", + "description": null + } + ] + }, + { + "id": "user_vendor_msft_printerprovisioning_upprinterinstalls_{printersharedid}", + "displayName": "Printer Shared ID (User)", + "options": null + }, + { + "id": "user_vendor_msft_printerprovisioning_upprinterinstalls_{printersharedid}_clouddeviceid", + "displayName": "Cloud Device ID (User)", + "options": null + }, + { + "id": "user_vendor_msft_printerprovisioning_upprinterinstalls_{printersharedid}_errorcode", + "displayName": "Error code (User)", + "options": null + }, + { + "id": "user_vendor_msft_printerprovisioning_upprinterinstalls_{printersharedid}_install", + "displayName": "Install (User)", + "options": { + "id": "user_vendor_msft_printerprovisioning_upprinterinstalls_{printersharedid}_install_true", + "displayName": "Install", + "description": "Install this printer" + } + }, + { + "id": "user_vendor_msft_printerprovisioning_upprinterinstalls_{printersharedid}_printersharedid", + "displayName": "Shared ID (User)", + "options": null + }, + { + "id": "user_vendor_msft_printerprovisioning_upprinterinstalls_{printersharedid}_printersharedname", + "displayName": "Printer Shared Name (User)", + "options": null + }, + { + "id": "user_vendor_msft_printerprovisioning_upprinterinstalls_{printersharedid}_status", + "displayName": "Status (User)", + "options": null + }, + { + "id": "vendor_msft_defender_configuration_tamperprotection", + "displayName": "TamperProtection", + "options": [ + { + "id": "vendor_msft_defender_configuration_tamperprotection_0", + "displayName": "Not configured", + "description": null + }, + { + "id": "vendor_msft_defender_configuration_tamperprotection_1", + "displayName": "Enabled", + "description": null + }, + { + "id": "vendor_msft_defender_configuration_tamperprotection_2", + "displayName": "Disabled", + "description": null + } + ] + }, + { + "id": "vendor_msft_defender_configuration_tamperprotection_blob", + "displayName": "Tamper Protection Blob", + "options": null + }, + { + "id": "vendor_msft_defender_configuration_tamperprotection_options", + "displayName": "TamperProtection (Device)", + "options": [ + { + "id": "vendor_msft_defender_configuration_tamperprotection_options_1", + "displayName": "Off", + "description": null + }, + { + "id": "vendor_msft_defender_configuration_tamperprotection_options_0", + "displayName": "On", + "description": null + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_allowlocalipsecpolicymerge", + "displayName": "Allow Local Ipsec Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_allowlocalipsecpolicymerge_false", + "displayName": "False", + "description": "AllowLocalIpsecPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_allowlocalipsecpolicymerge_true", + "displayName": "True", + "description": "AllowLocalIpsecPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_allowlocalpolicymerge", + "displayName": "Allow Local Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_allowlocalpolicymerge_false", + "displayName": "False", + "description": "AllowLocalPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_allowlocalpolicymerge_true", + "displayName": "True", + "description": "AllowLocalPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_authappsallowuserprefmerge", + "displayName": "Auth Apps Allow User Pref Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_authappsallowuserprefmerge_false", + "displayName": "False", + "description": "AuthAppsAllowUserPrefMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_authappsallowuserprefmerge_true", + "displayName": "True", + "description": "AuthAppsAllowUserPrefMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_defaultinboundaction", + "displayName": "Default Inbound Action for Domain Profile", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_defaultinboundaction_0", + "displayName": "Allow", + "description": "Allow Inbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_defaultinboundaction_1", + "displayName": "Block", + "description": "Block Inbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_defaultoutboundaction", + "displayName": "Default Outbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_defaultoutboundaction_0", + "displayName": "Allow", + "description": "Allow Outbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_defaultoutboundaction_1", + "displayName": "Block", + "description": "Block Outbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disableinboundnotifications", + "displayName": "Disable Inbound Notifications", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disableinboundnotifications_false", + "displayName": "False", + "description": "Firewall May Display Notification" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disableinboundnotifications_true", + "displayName": "True", + "description": "Firewall Must Not Display Notification" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disablestealthmode", + "displayName": "Disable Stealth Mode", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disablestealthmode_false", + "displayName": "False", + "description": "Use Stealth Mode" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disablestealthmode_true", + "displayName": "True", + "description": "Disable Stealth Mode" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disablestealthmodeipsecsecuredpacketexemption", + "displayName": "Disable Stealth Mode Ipsec Secured Packet Exemption", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disablestealthmodeipsecsecuredpacketexemption_false", + "displayName": "False", + "description": "FALSE" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disablestealthmodeipsecsecuredpacketexemption_true", + "displayName": "True", + "description": "TRUE" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disableunicastresponsestomulticastbroadcast", + "displayName": "Disable Unicast Responses To Multicast Broadcast", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disableunicastresponsestomulticastbroadcast_false", + "displayName": "False", + "description": "Unicast Responses Not Blocked" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_disableunicastresponsestomulticastbroadcast_true", + "displayName": "True", + "description": "Unicast Responses Blocked" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablefirewall", + "displayName": "Enable Domain Network Firewall", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablefirewall_false", + "displayName": "False", + "description": "Disable Firewall" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablefirewall_true", + "displayName": "True", + "description": "Enable Firewall" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogdroppedpackets", + "displayName": "Enable Log Dropped Packets", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogdroppedpackets_false", + "displayName": "Disable Logging Of Dropped Packets", + "description": "Disable Logging Of Dropped Packets" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogdroppedpackets_true", + "displayName": "Enable Logging Of Dropped Packets", + "description": "Enable Logging Of Dropped Packets" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogignoredrules", + "displayName": "Enable Log Ignored Rules", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogignoredrules_false", + "displayName": "Disable Logging Of Ignored Rules", + "description": "Disable Logging Of Ignored Rules" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogignoredrules_true", + "displayName": "Enable Logging Of Ignored Rules", + "description": "Enable Logging Of Ignored Rules" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogsuccessconnections", + "displayName": "Enable Log Success Connections", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogsuccessconnections_false", + "displayName": "Disable Logging Of Successful Connections", + "description": "Disable Logging Of Successful Connections" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_enablelogsuccessconnections_true", + "displayName": "Enable Logging Of Successful Connections", + "description": "Enable Logging Of Successful Connections" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_globalportsallowuserprefmerge", + "displayName": "Global Ports Allow User Pref Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_globalportsallowuserprefmerge_false", + "displayName": "False", + "description": "GlobalPortsAllowUserPrefMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_globalportsallowuserprefmerge_true", + "displayName": "True", + "description": "GlobalPortsAllowUserPrefMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_logfilepath", + "displayName": "Log File Path", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_logmaxfilesize", + "displayName": "Log Max File Size", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_shielded", + "displayName": "Shielded", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_shielded_false", + "displayName": "False", + "description": "Shielding Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_domainprofile_shielded_true", + "displayName": "True", + "description": "Shielding On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}", + "displayName": " Firewall Rule Name", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_action_type", + "displayName": "Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_action_type_0", + "displayName": "Block", + "description": "Block" + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_action_type_1", + "displayName": "Allow", + "description": "Allow" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_app_filepath", + "displayName": "File Path", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_app_packagefamilyname", + "displayName": "Package Family Name", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_app_servicename", + "displayName": "Service Name", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_description", + "displayName": "Description", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_direction", + "displayName": "Direction", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_direction_in", + "displayName": "The rule applies to inbound traffic.", + "description": "The rule applies to inbound traffic." + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_direction_out", + "displayName": "The rule applies to outbound traffic.", + "description": "The rule applies to outbound traffic." + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_edgetraversal", + "displayName": "Edge Traversal", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_edgetraversal_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_edgetraversal_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_enabled_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_enabled_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_firewallrulename", + "displayName": null, + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_icmptypesandcodes", + "displayName": "ICMP Types And Codes", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_interfacetypes", + "displayName": "Interface Types", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_interfacetypes_remoteaccess", + "displayName": "Remote Access", + "description": "RemoteAccess" + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_interfacetypes_wireless", + "displayName": "Wireless", + "description": "Wireless" + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_interfacetypes_lan", + "displayName": "Lan", + "description": "Lan" + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_interfacetypes_mobilebroadband", + "displayName": "[Not Supported] Mobile Broadband", + "description": "MobileBroadband" + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_interfacetypes_mbb", + "displayName": "Mobile Broadband", + "description": "MobileBroadband" + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_interfacetypes_all", + "displayName": "All", + "description": "All" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_localaddressranges", + "displayName": "Local Address Ranges", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_localportranges", + "displayName": "Local Port Ranges", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_localuserauthorizedlist", + "displayName": "Local User Authorized List", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_name", + "displayName": "Name", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_policyappid", + "displayName": "Policy App Id", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_profiles", + "displayName": "Network Types", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_profiles_1", + "displayName": "FW_PROFILE_TYPE_DOMAIN: This value represents the profile for networks that are connected to domains.", + "description": "FW_PROFILE_TYPE_DOMAIN: This value represents the profile for networks that are connected to domains." + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_profiles_2", + "displayName": "FW_PROFILE_TYPE_PRIVATE: This value represents the standard profile for networks. These networks are classified as private by the administrators in the server host. The classification happens the first time the host connects to the network. Usually these networks are behind Network Address Translation (NAT) devices, routers, and other edge devices, and they are in a private location, such as a home or an office. AND FW_PROFILE_TYPE_PRIVATE: This value represents the profile for private networks, which is represented by the same value as that used for FW_PROFILE_TYPE_STANDARD.", + "description": "FW_PROFILE_TYPE_STANDARD: This value represents the standard profile for networks. These networks are classified as private by the administrators in the server host. The classification happens the first time the host connects to the network. Usually these networks are behind Network Address Translation (NAT) devices, routers, and other edge devices, and they are in a private location, such as a home or an office. AND FW_PROFILE_TYPE_PRIVATE: This value represents the profile for private networks, which is represented by the same value as that used for FW_PROFILE_TYPE_STANDARD." + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_profiles_4", + "displayName": "FWPROFILETYPEPUBLIC: This value represents the profile for public networks. These networks are classified as public by the administrators in the server host. The classification happens the first time the host connects to the network. Usually these networks are those at airports, coffee shops, and other public places where the peers in the network or the network administrator are not trusted.", + "description": "FW_PROFILE_TYPE_PUBLIC: This value represents the profile for public networks. These networks are classified as public by the administrators in the server host. The classification happens the first time the host connects to the network. Usually these networks are those at airports, coffee shops, and other public places where the peers in the network or the network administrator are not trusted." + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_profiles_2147483647", + "displayName": "FW_PROFILE_TYPE_ALL: This value represents all these network sets and any future network sets.", + "description": "FW_PROFILE_TYPE_ALL: This value represents all these network sets and any future network sets." + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_profiles_-2147483648", + "displayName": "FW_PROFILE_TYPE_CURRENT: This value represents the current profiles to which the firewall and advanced security components determine the host is connected at the moment of the call. This value can be specified only in method calls, and it cannot be combined with other flags.", + "description": "FW_PROFILE_TYPE_CURRENT: This value represents the current profiles to which the firewall and advanced security components determine the host is connected at the moment of the call. This value can be specified only in method calls, and it cannot be combined with other flags." + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_protocol", + "displayName": "Protocol", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_remoteaddressdynamickeywords", + "displayName": "Reusable groups", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_remoteaddressranges", + "displayName": "Remote Address Ranges", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_remoteportranges", + "displayName": "Remote Port Ranges", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_global_crlcheck", + "displayName": "Certificate revocation list verification", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_global_crlcheck_0", + "displayName": "None", + "description": "Disables CRL checking" + }, + { + "id": "vendor_msft_firewall_mdmstore_global_crlcheck_1", + "displayName": "Attempt", + "description": "Specifies that CRL checking is attempted and that certificate validation fails only if the certificate is revoked. Other failures that are encountered during CRL checking (such as the revocation URL being unreachable) do not cause certificate validation to fail." + }, + { + "id": "vendor_msft_firewall_mdmstore_global_crlcheck_2", + "displayName": "Require", + "description": "Means that checking is required and that certificate validation fails if any error is encountered during CRL processing" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_global_disablestatefulftp", + "displayName": "Disable Stateful Ftp", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_global_disablestatefulftp_false", + "displayName": "False", + "description": "Stateful FTP enabled" + }, + { + "id": "vendor_msft_firewall_mdmstore_global_disablestatefulftp_true", + "displayName": "True", + "description": "Stateful FTP disabled" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_global_enablepacketqueue", + "displayName": "Enable Packet Queue", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_global_enablepacketqueue_0", + "displayName": "Disabled", + "description": "Indicates that all queuing is to be disabled" + }, + { + "id": "vendor_msft_firewall_mdmstore_global_enablepacketqueue_1", + "displayName": "Queue Inbound", + "description": "Specifies that inbound encrypted packets are to be queued" + }, + { + "id": "vendor_msft_firewall_mdmstore_global_enablepacketqueue_2", + "displayName": "Queue Outbound", + "description": "Specifies that packets are to be queued after decryption is performed for forwarding" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_global_ipsecexempt", + "displayName": "IPsec Exceptions", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_global_ipsecexempt_0", + "displayName": "FWGLOBALCONFIGIPSECEXEMPTNONE: No IPsec exemptions.", + "description": "FW_GLOBAL_CONFIG_IPSEC_EXEMPT_NONE: No IPsec exemptions." + }, + { + "id": "vendor_msft_firewall_mdmstore_global_ipsecexempt_1", + "displayName": "Exempt neighbor discover IPv6 ICMP type-codes from IPsec", + "description": "FW_GLOBAL_CONFIG_IPSEC_EXEMPT_NEIGHBOR_DISC: Exempt neighbor discover IPv6 ICMP type-codes from IPsec." + }, + { + "id": "vendor_msft_firewall_mdmstore_global_ipsecexempt_2", + "displayName": "Exempt ICMP from IPsec", + "description": "FW_GLOBAL_CONFIG_IPSEC_EXEMPT_ICMP: Exempt ICMP from IPsec." + }, + { + "id": "vendor_msft_firewall_mdmstore_global_ipsecexempt_4", + "displayName": "Exempt router discover IPv6 ICMP type-codes from IPsec", + "description": "FW_GLOBAL_CONFIG_IPSEC_EXEMPT_ROUTER_DISC: Exempt router discover IPv6 ICMP type-codes from IPsec." + }, + { + "id": "vendor_msft_firewall_mdmstore_global_ipsecexempt_8", + "displayName": "Exempt both IPv4 and IPv6 DHCP traffic from IPsec", + "description": "FW_GLOBAL_CONFIG_IPSEC_EXEMPT_DHCP: Exempt both IPv4 and IPv6 DHCP traffic from IPsec." + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_global_opportunisticallymatchauthsetperkm", + "displayName": "Opportunistically Match Auth Set Per KM", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_global_opportunisticallymatchauthsetperkm_false", + "displayName": "False", + "description": "FALSE" + }, + { + "id": "vendor_msft_firewall_mdmstore_global_opportunisticallymatchauthsetperkm_true", + "displayName": "True", + "description": "TRUE" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_global_presharedkeyencoding", + "displayName": "Preshared Key Encoding", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_global_presharedkeyencoding_0", + "displayName": "None", + "description": "FW_GLOBAL_CONFIG_PRESHARED_KEY_ENCODING_NONE: Preshared key is not encoded. Instead, it is kept in its wide-character format. This symbolic constant has a value of 0." + }, + { + "id": "vendor_msft_firewall_mdmstore_global_presharedkeyencoding_1", + "displayName": "UTF8", + "description": "FW_GLOBAL_CONFIG_PRESHARED_KEY_ENCODING_UTF_8: Encode the preshared key using UTF-8. This symbolic constant has a value of 1." + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_global_saidletime", + "displayName": "Security association idle time", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}", + "displayName": " Firewall Rule Name", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_action", + "displayName": "Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_action_0", + "displayName": "Block", + "description": "Block" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_action_1", + "displayName": "Allow", + "description": "Allow" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_direction", + "displayName": "Direction", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_direction_in", + "displayName": "The rule applies to inbound traffic.", + "description": "The rule applies to inbound traffic." + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_direction_out", + "displayName": "The rule applies to outbound traffic.", + "description": "The rule applies to outbound traffic." + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_enabled", + "displayName": "Enabled", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_enabled_0", + "displayName": "Disabled", + "description": "Disabled" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_enabled_1", + "displayName": "Enabled", + "description": "Enabled" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_firewallrulename", + "displayName": null, + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_localaddressranges", + "displayName": "Local Address Ranges", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_localportranges", + "displayName": "Local Port Ranges", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_name", + "displayName": "Name", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_priority", + "displayName": "Priority", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_profiles", + "displayName": "Profiles", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_profiles_1", + "displayName": "FWPROFILETYPEDOMAIN: This value represents the profile for networks that are connected to domains.", + "description": "FW_PROFILE_TYPE_DOMAIN: This value represents the profile for networks that are connected to domains." + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_profiles_2", + "displayName": "FWPROFILETYPESTANDARD: This value represents the standard profile for networks. These networks are classified as private by the administrators in the server host. The classification happens the first time the host connects to the network. Usually these networks are behind Network Address Translation (NAT) devices, routers, and other edge devices, and they are in a private location, such as a home or an office. AND FWPROFILETYPEPRIVATE: This value represents the profile for private networks, which is represented by the same value as that used for FWPROFILETYPESTANDARD.", + "description": "FW_PROFILE_TYPE_STANDARD: This value represents the standard profile for networks. These networks are classified as private by the administrators in the server host. The classification happens the first time the host connects to the network. Usually these networks are behind Network Address Translation (NAT) devices, routers, and other edge devices, and they are in a private location, such as a home or an office. AND FW_PROFILE_TYPE_PRIVATE: This value represents the profile for private networks, which is represented by the same value as that used for FW_PROFILE_TYPE_STANDARD." + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_profiles_4", + "displayName": "FWPROFILETYPEPUBLIC: This value represents the profile for public networks. These networks are classified as public by the administrators in the server host. The classification happens the first time the host connects to the network. Usually these networks are those at airports, coffee shops, and other public places where the peers in the network or the network administrator are not trusted.", + "description": "FW_PROFILE_TYPE_PUBLIC: This value represents the profile for public networks. These networks are classified as public by the administrators in the server host. The classification happens the first time the host connects to the network. Usually these networks are those at airports, coffee shops, and other public places where the peers in the network or the network administrator are not trusted." + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_profiles_2147483647", + "displayName": "FWPROFILETYPEALL: This value represents all these network sets and any future network sets.", + "description": "FW_PROFILE_TYPE_ALL: This value represents all these network sets and any future network sets." + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_protocol", + "displayName": "Protocol", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_remoteaddressranges", + "displayName": "Remote Address Ranges", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_remoteportranges", + "displayName": "Remote Port Ranges", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_vmcreatorid", + "displayName": "Target", + "options": { + "id": "vendor_msft_firewall_mdmstore_hypervfirewallrules_{firewallrulename}_vmcreatorid_wsl", + "displayName": "Windows Subsystem for Linux", + "description": "Windows Subsystem for Linux" + } + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}", + "displayName": "VM Creator Id", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_allowhostpolicymerge", + "displayName": "Allow Host Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_allowhostpolicymerge_false", + "displayName": "AllowHostPolicyMerge Off", + "description": "AllowHostPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_allowhostpolicymerge_true", + "displayName": "AllowHostPolicyMerge On", + "description": "AllowHostPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_allowlocalpolicymerge", + "displayName": "Allow Local Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_allowlocalpolicymerge_false", + "displayName": "AllowLocalPolicyMerge Off", + "description": "AllowLocalPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_allowlocalpolicymerge_true", + "displayName": "AllowLocalPolicyMerge On", + "description": "AllowLocalPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_defaultinboundaction", + "displayName": "Default Inbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_defaultinboundaction_0", + "displayName": "Allow Inbound By Default", + "description": "Allow Inbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_defaultinboundaction_1", + "displayName": "Block Inbound By Default", + "description": "Block Inbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_defaultoutboundaction", + "displayName": "Default Outbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_defaultoutboundaction_0", + "displayName": "Allow Outbound By Default", + "description": "Allow Outbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_defaultoutboundaction_1", + "displayName": "Block Outbound By Default", + "description": "Block Outbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_enablefirewall", + "displayName": "Enable Domain Network Firewall", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_enablefirewall_false", + "displayName": "False", + "description": "Disable Firewall" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_domainprofile_enablefirewall_true", + "displayName": "True", + "description": "Enable Firewall" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_enableloopback", + "displayName": "Enable Loopback", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_enableloopback_false", + "displayName": "Disable loopback", + "description": "Disable loopback" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_enableloopback_true", + "displayName": "Enable loopback", + "description": "Enable loopback" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_allowlocalpolicymerge", + "displayName": "Allow Local Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_allowlocalpolicymerge_false", + "displayName": "AllowLocalPolicyMerge Off", + "description": "AllowLocalPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_allowlocalpolicymerge_true", + "displayName": "AllowLocalPolicyMerge On", + "description": "AllowLocalPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_defaultinboundaction", + "displayName": "Default Inbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_defaultinboundaction_0", + "displayName": "Allow Inbound By Default", + "description": "Allow Inbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_defaultinboundaction_1", + "displayName": "Block Inbound By Default", + "description": "Block Inbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_defaultoutboundaction", + "displayName": "Default Outbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_defaultoutboundaction_0", + "displayName": "Allow Outbound By Default", + "description": "Allow Outbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_defaultoutboundaction_1", + "displayName": "Block Outbound By Default", + "description": "Block Outbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_enablefirewall", + "displayName": "Enable Private Network Firewall", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_enablefirewall_false", + "displayName": "False", + "description": "Disable Firewall" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_privateprofile_enablefirewall_true", + "displayName": "True", + "description": "Enable Firewall" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_allowlocalpolicymerge", + "displayName": "Allow Local Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_allowlocalpolicymerge_false", + "displayName": "AllowLocalPolicyMerge Off", + "description": "AllowLocalPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_allowlocalpolicymerge_true", + "displayName": "AllowLocalPolicyMerge On", + "description": "AllowLocalPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_defaultinboundaction", + "displayName": "Default Inbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_defaultinboundaction_0", + "displayName": "Allow Inbound By Default", + "description": "Allow Inbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_defaultinboundaction_1", + "displayName": "Block Inbound By Default", + "description": "Block Inbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_defaultoutboundaction", + "displayName": "Default Outbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_defaultoutboundaction_0", + "displayName": "Allow Outbound By Default", + "description": "Allow Outbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_defaultoutboundaction_1", + "displayName": "Block Outbound By Default", + "description": "Block Outbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_enablefirewall", + "displayName": "Enable Public Network Firewall", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_enablefirewall_false", + "displayName": "False", + "description": "Disable Hyper-V Firewall" + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_publicprofile_enablefirewall_true", + "displayName": "True", + "description": "Enable Hyper-V Firewall" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_target", + "displayName": "Target", + "options": { + "id": "vendor_msft_firewall_mdmstore_hypervvmsettings_{vmcreatorid}_target_wsl", + "displayName": "Windows Subsystem for Linux", + "description": "Windows Subsystem for Linux" + } + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_allowlocalipsecpolicymerge", + "displayName": "Allow Local Ipsec Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_allowlocalipsecpolicymerge_false", + "displayName": "False", + "description": "AllowLocalIpsecPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_allowlocalipsecpolicymerge_true", + "displayName": "True", + "description": "AllowLocalIpsecPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_allowlocalpolicymerge", + "displayName": "Allow Local Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_allowlocalpolicymerge_false", + "displayName": "False", + "description": "AllowLocalPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_allowlocalpolicymerge_true", + "displayName": "True", + "description": "AllowLocalPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_authappsallowuserprefmerge", + "displayName": "Auth Apps Allow User Pref Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_authappsallowuserprefmerge_false", + "displayName": "False", + "description": "AuthAppsAllowUserPrefMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_authappsallowuserprefmerge_true", + "displayName": "True", + "description": "AuthAppsAllowUserPrefMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_defaultinboundaction", + "displayName": "Default Inbound Action for Private Profile", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_defaultinboundaction_0", + "displayName": "Allow", + "description": "Allow Inbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_defaultinboundaction_1", + "displayName": "Block", + "description": "Block Inbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_defaultoutboundaction", + "displayName": "Default Outbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_defaultoutboundaction_0", + "displayName": "Allow", + "description": "Allow Outbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_defaultoutboundaction_1", + "displayName": "Block", + "description": "Block Outbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disableinboundnotifications", + "displayName": "Disable Inbound Notifications", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disableinboundnotifications_false", + "displayName": "False", + "description": "Firewall May Display Notification" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disableinboundnotifications_true", + "displayName": "True", + "description": "Firewall Must Not Display Notification" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disablestealthmode", + "displayName": "Disable Stealth Mode", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disablestealthmode_false", + "displayName": "False", + "description": "Use Stealth Mode" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disablestealthmode_true", + "displayName": "True", + "description": "Disable Stealth Mode" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disablestealthmodeipsecsecuredpacketexemption", + "displayName": "Disable Stealth Mode Ipsec Secured Packet Exemption", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disablestealthmodeipsecsecuredpacketexemption_false", + "displayName": "False", + "description": "FALSE" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disablestealthmodeipsecsecuredpacketexemption_true", + "displayName": "True", + "description": "TRUE" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disableunicastresponsestomulticastbroadcast", + "displayName": "Disable Unicast Responses To Multicast Broadcast", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disableunicastresponsestomulticastbroadcast_false", + "displayName": "False", + "description": "Unicast Responses Not Blocked" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_disableunicastresponsestomulticastbroadcast_true", + "displayName": "True", + "description": "Unicast Responses Blocked" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablefirewall", + "displayName": "Enable Private Network Firewall", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablefirewall_false", + "displayName": "False", + "description": "Disable Firewall" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablefirewall_true", + "displayName": "True", + "description": "Enable Firewall" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogdroppedpackets", + "displayName": "Enable Log Dropped Packets", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogdroppedpackets_false", + "displayName": "Disable Logging Of Dropped Packets", + "description": "Disable Logging Of Dropped Packets" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogdroppedpackets_true", + "displayName": "Enable Logging Of Dropped Packets", + "description": "Enable Logging Of Dropped Packets" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogignoredrules", + "displayName": "Enable Log Ignored Rules", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogignoredrules_false", + "displayName": "Disable Logging Of Ignored Rules", + "description": "Disable Logging Of Ignored Rules" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogignoredrules_true", + "displayName": "Enable Logging Of Ignored Rules", + "description": "Enable Logging Of Ignored Rules" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogsuccessconnections", + "displayName": "Enable Log Success Connections", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogsuccessconnections_false", + "displayName": "Disable Logging Of Successful Connections", + "description": "Disable Logging Of Successful Connections" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_enablelogsuccessconnections_true", + "displayName": "Enable Logging Of Successful Connections", + "description": "Enable Logging Of Successful Connections" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_globalportsallowuserprefmerge", + "displayName": "Global Ports Allow User Pref Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_globalportsallowuserprefmerge_false", + "displayName": "False", + "description": "GlobalPortsAllowUserPrefMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_globalportsallowuserprefmerge_true", + "displayName": "True", + "description": "GlobalPortsAllowUserPrefMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_logfilepath", + "displayName": "Log File Path", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_logmaxfilesize", + "displayName": "Log Max File Size", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_shielded", + "displayName": "Shielded", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_shielded_false", + "displayName": "False", + "description": "Shielding Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_privateprofile_shielded_true", + "displayName": "True", + "description": "Shielding On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_allowlocalipsecpolicymerge", + "displayName": "Allow Local Ipsec Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_allowlocalipsecpolicymerge_false", + "displayName": "False", + "description": "AllowLocalIpsecPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_allowlocalipsecpolicymerge_true", + "displayName": "True", + "description": "AllowLocalIpsecPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_allowlocalpolicymerge", + "displayName": "Allow Local Policy Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_allowlocalpolicymerge_false", + "displayName": "False", + "description": "AllowLocalPolicyMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_allowlocalpolicymerge_true", + "displayName": "True", + "description": "AllowLocalPolicyMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_authappsallowuserprefmerge", + "displayName": "Auth Apps Allow User Pref Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_authappsallowuserprefmerge_false", + "displayName": "False", + "description": "AuthAppsAllowUserPrefMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_authappsallowuserprefmerge_true", + "displayName": "True", + "description": "AuthAppsAllowUserPrefMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_defaultinboundaction", + "displayName": "Default Inbound Action for Public Profile", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_defaultinboundaction_0", + "displayName": "Allow", + "description": "Allow Inbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_defaultinboundaction_1", + "displayName": "Block", + "description": "Block Inbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_defaultoutboundaction", + "displayName": "Default Outbound Action", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_defaultoutboundaction_0", + "displayName": "Allow", + "description": "Allow Outbound By Default" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_defaultoutboundaction_1", + "displayName": "Block", + "description": "Block Outbound By Default" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disableinboundnotifications", + "displayName": "Disable Inbound Notifications", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disableinboundnotifications_false", + "displayName": "False", + "description": "Firewall May Display Notification" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disableinboundnotifications_true", + "displayName": "True", + "description": "Firewall Must Not Display Notification" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disablestealthmode", + "displayName": "Disable Stealth Mode", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disablestealthmode_false", + "displayName": "False", + "description": "Use Stealth Mode" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disablestealthmode_true", + "displayName": "True", + "description": "Disable Stealth Mode" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disablestealthmodeipsecsecuredpacketexemption", + "displayName": "Disable Stealth Mode Ipsec Secured Packet Exemption", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disablestealthmodeipsecsecuredpacketexemption_false", + "displayName": "False", + "description": "FALSE" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disablestealthmodeipsecsecuredpacketexemption_true", + "displayName": "True", + "description": "TRUE" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disableunicastresponsestomulticastbroadcast", + "displayName": "Disable Unicast Responses To Multicast Broadcast", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disableunicastresponsestomulticastbroadcast_false", + "displayName": "False", + "description": "Unicast Responses Not Blocked" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_disableunicastresponsestomulticastbroadcast_true", + "displayName": "True", + "description": "Unicast Responses Blocked" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablefirewall", + "displayName": "Enable Public Network Firewall", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablefirewall_false", + "displayName": "False", + "description": "Disable Firewall" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablefirewall_true", + "displayName": "True", + "description": "Enable Firewall" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogdroppedpackets", + "displayName": "Enable Log Dropped Packets", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogdroppedpackets_false", + "displayName": "Disable Logging Of Dropped Packets", + "description": "Disable Logging Of Dropped Packets" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogdroppedpackets_true", + "displayName": "Enable Logging Of Dropped Packets", + "description": "Enable Logging Of Dropped Packets" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogignoredrules", + "displayName": "Enable Log Ignored Rules", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogignoredrules_false", + "displayName": "Disable Logging Of Ignored Rules", + "description": "Disable Logging Of Ignored Rules" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogignoredrules_true", + "displayName": "Enable Logging Of Ignored Rules", + "description": "Enable Logging Of Ignored Rules" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogsuccessconnections", + "displayName": "Enable Log Success Connections", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogsuccessconnections_false", + "displayName": "Disable Logging Of Successful Connections", + "description": "Disable Logging Of Successful Connections" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_enablelogsuccessconnections_true", + "displayName": "Enable Logging Of Successful Connections", + "description": "Enable Logging Of Successful Connections" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_globalportsallowuserprefmerge", + "displayName": "Global Ports Allow User Pref Merge", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_globalportsallowuserprefmerge_false", + "displayName": "False", + "description": "GlobalPortsAllowUserPrefMerge Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_globalportsallowuserprefmerge_true", + "displayName": "True", + "description": "GlobalPortsAllowUserPrefMerge On" + } + ] + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_logfilepath", + "displayName": "Log File Path", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_logmaxfilesize", + "displayName": "Log Max File Size", + "options": null + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_shielded", + "displayName": "Shielded", + "options": [ + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_shielded_false", + "displayName": "False", + "description": "Shielding Off" + }, + { + "id": "vendor_msft_firewall_mdmstore_publicprofile_shielded_true", + "displayName": "True", + "description": "Shielding On" + } + ] + }, + { + "id": "vendor_msft_personalization_companylogourl", + "displayName": "Company Logo Url", + "options": null + }, + { + "id": "vendor_msft_personalization_companyname", + "displayName": "Company Name", + "options": null + }, + { + "id": "vendor_msft_personalization_desktopimageurl", + "displayName": "Desktop Image Url", + "options": null + }, + { + "id": "vendor_msft_personalization_lockscreenimageurl", + "displayName": "Lock Screen Image Url", + "options": null + }, + { + "id": "vendor_msft_sharedpc_accountmodel", + "displayName": "Account Model", + "options": [ + { + "id": "vendor_msft_sharedpc_accountmodel_0", + "displayName": "Guest", + "description": null + }, + { + "id": "vendor_msft_sharedpc_accountmodel_1", + "displayName": "Domain", + "description": null + }, + { + "id": "vendor_msft_sharedpc_accountmodel_2", + "displayName": "Guest and Domain", + "description": null + } + ] + }, + { + "id": "vendor_msft_sharedpc_deletionpolicy", + "displayName": "Deletion Policy", + "options": [ + { + "id": "vendor_msft_sharedpc_deletionpolicy_0", + "displayName": "Delete immediately", + "description": null + }, + { + "id": "vendor_msft_sharedpc_deletionpolicy_1", + "displayName": "Delete at disk space threshold", + "description": null + }, + { + "id": "vendor_msft_sharedpc_deletionpolicy_2", + "displayName": "Delete at disk space threshold and inactive threshold", + "description": null + } + ] + }, + { + "id": "vendor_msft_sharedpc_disklevelcaching", + "displayName": "Disk Level Caching", + "options": null + }, + { + "id": "vendor_msft_sharedpc_diskleveldeletion", + "displayName": "Disk Level Deletion", + "options": null + }, + { + "id": "vendor_msft_sharedpc_enableaccountmanager", + "displayName": "Enable Account Manager", + "options": [ + { + "id": "vendor_msft_sharedpc_enableaccountmanager_true", + "displayName": "true", + "description": null + }, + { + "id": "vendor_msft_sharedpc_enableaccountmanager_false", + "displayName": "false", + "description": null + } + ] + }, + { + "id": "vendor_msft_sharedpc_enablesharedpcmode", + "displayName": "Enable Shared PC Mode", + "options": [ + { + "id": "vendor_msft_sharedpc_enablesharedpcmode_true", + "displayName": "true", + "description": null + }, + { + "id": "vendor_msft_sharedpc_enablesharedpcmode_false", + "displayName": "false", + "description": null + } + ] + }, + { + "id": "vendor_msft_sharedpc_inactivethreshold", + "displayName": "Inactive Threshold", + "options": null + }, + { + "id": "vendor_msft_sharedpc_kioskmodeaumid", + "displayName": "Kiosk Mode AUMID", + "options": null + }, + { + "id": "vendor_msft_sharedpc_kioskmodeusertiledisplaytext", + "displayName": "Kiosk Mode User Tile Display Text", + "options": null + }, + { + "id": "vendor_msft_sharedpc_maintenancestarttime", + "displayName": "Maintenance Start Time", + "options": null + }, + { + "id": "vendor_msft_sharedpc_restrictlocalstorage", + "displayName": "Restrict Local Storage", + "options": [ + { + "id": "vendor_msft_sharedpc_restrictlocalstorage_true", + "displayName": "true", + "description": null + }, + { + "id": "vendor_msft_sharedpc_restrictlocalstorage_false", + "displayName": "false", + "description": null + } + ] + }, + { + "id": "vendor_msft_sharedpc_setedupolicies", + "displayName": "Set Edu Policies", + "options": [ + { + "id": "vendor_msft_sharedpc_setedupolicies_true", + "displayName": "true", + "description": null + }, + { + "id": "vendor_msft_sharedpc_setedupolicies_false", + "displayName": "false", + "description": null + } + ] + }, + { + "id": "vendor_msft_sharedpc_setpowerpolicies", + "displayName": "Set Power Policies", + "options": [ + { + "id": "vendor_msft_sharedpc_setpowerpolicies_true", + "displayName": "true", + "description": null + }, + { + "id": "vendor_msft_sharedpc_setpowerpolicies_false", + "displayName": "false", + "description": null + } + ] + }, + { + "id": "vendor_msft_sharedpc_signinonresume", + "displayName": "Sign In On Resume", + "options": [ + { + "id": "vendor_msft_sharedpc_signinonresume_true", + "displayName": "true", + "description": null + }, + { + "id": "vendor_msft_sharedpc_signinonresume_false", + "displayName": "false", + "description": null + } + ] + }, + { + "id": "vendor_msft_tenantlockdown_requirenetworkinoobe", + "displayName": "Require Network In OOBE (Device)", + "options": [ + { + "id": "vendor_msft_tenantlockdown_requirenetworkinoobe_true", + "displayName": "true", + "description": null + }, + { + "id": "vendor_msft_tenantlockdown_requirenetworkinoobe_false", + "displayName": "false", + "description": null + } + ] + }, + { + "id": "vendor_msft_windowslicensing_devicelicensingservice_licensetype", + "displayName": "License Type", + "options": [ + { + "id": "vendor_msft_windowslicensing_devicelicensingservice_licensetype_0", + "displayName": "User Based License", + "description": "User Based License" + }, + { + "id": "vendor_msft_windowslicensing_devicelicensingservice_licensetype_1", + "displayName": "Device Based License", + "description": "Device Based License" + } + ] + } +] diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 000000000000..30a773880a02 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,20 @@ +events {} + +http { + upstream functionapp_backend { + server cippapi:80; + } + + server { + listen 80; + + location / { + proxy_pass http://functionapp_backend; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection keep-alive; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + } +} diff --git a/openapi.json b/openapi.json new file mode 100644 index 000000000000..013d331ba238 --- /dev/null +++ b/openapi.json @@ -0,0 +1,10506 @@ +{ + "externalDocs": { + "url": "https://cipp.app", + "description": "CIPP Documentation" + }, + "info": { + "version": "1.0.1", + "description": "CIPP-API is an Azure Function App operating as the logic layer for the CIPP platform. It is composed primarily of standard Azure Functions with a handful of Azure Durable Functions handling more complex actions (mostly applying standards and running tenant analysis). API documentation is primarily intended to aid in further development of the CIPP platform. This API will most likely be out-dated and we request users to help us keep this up to date.", + "title": "CIPP-API Documentation" + }, + "paths": { + "/AddGroup": { + "post": { + "description": "AddGroup", + "summary": "AddGroup", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "selectedTenants", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddChocoApp": { + "post": { + "description": "AddChocoApp", + "summary": "AddChocoApp", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "InstallationIntent", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AssignTo", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveUser": { + "get": { + "description": "RemoveUser", + "summary": "RemoveUser", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListTeams": { + "get": { + "description": "ListTeams", + "summary": "ListTeams", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "type", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecGroupsDelete": { + "get": { + "description": "ExecGroupsDelete", + "summary": "ExecGroupsDelete", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GroupType", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "displayName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListRoles": { + "get": { + "description": "ListRoles", + "summary": "ListRoles", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUserMailboxRules": { + "get": { + "description": "ListUserMailboxRules", + "summary": "ListUserMailboxRules", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecBECCheck": { + "get": { + "description": "ExecBECCheck", + "summary": "ExecBECCheck", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "userid", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListCalendarPermissions": { + "get": { + "description": "ListCalendarPermissions", + "summary": "ListCalendarPermissions", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecAddSPN": { + "get": { + "description": "ExecAddSPN", + "summary": "ExecAddSPN", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Enable", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListLicenses": { + "get": { + "description": "ListLicenses", + "summary": "ListLicenses", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddCATemplate": { + "post": { + "description": "AddCATemplate", + "summary": "AddCATemplate", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "rawjson", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "name", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecIncidentsList": { + "get": { + "description": "ExecIncidentsList", + "summary": "ExecIncidentsList", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddSharedMailbox": { + "post": { + "description": "AddSharedMailbox", + "summary": "AddSharedMailbox", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListApps": { + "get": { + "description": "ListApps", + "summary": "ListApps", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSharepointSettings": { + "get": { + "description": "ListSharepointSettings", + "summary": "ListSharepointSettings", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "usertoGet", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "user", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecSendOrgMessage": { + "get": { + "description": "ExecSendOrgMessage", + "summary": "ExecSendOrgMessage", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "URL", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "type", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "freq", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddSpamFilterTemplate": { + "post": { + "description": "AddSpamFilterTemplate", + "summary": "AddSpamFilterTemplate", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "PowerShellCommand", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "name", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListGroupTemplates": { + "get": { + "description": "ListGroupTemplates", + "summary": "ListGroupTemplates", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListAutopilotconfig": { + "get": { + "description": "ListAutopilotconfig", + "summary": "ListAutopilotconfig", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "type", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecSetSecurityIncident": { + "get": { + "description": "ExecSetSecurityIncident", + "summary": "ExecSetSecurityIncident", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Redirected", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Determination", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Status", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Classification", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Assigned", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditExConnector": { + "get": { + "description": "EditExConnector", + "summary": "EditExConnector", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "guid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "state", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Type", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddUser": { + "post": { + "description": "AddUser", + "summary": "AddUser", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "CopyFrom", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUserPhoto": { + "get": { + "description": "ListUserPhoto", + "summary": "ListUserPhoto", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListConditionalAccessPolicies": { + "get": { + "description": "ListConditionalAccessPolicies", + "summary": "ListConditionalAccessPolicies", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListBasicAuth": { + "get": { + "description": "ListBasicAuth", + "summary": "ListBasicAuth", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveSpamfilterTemplate": { + "get": { + "description": "RemoveSpamfilterTemplate", + "summary": "RemoveSpamfilterTemplate", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecGDAPInvite": { + "post": { + "description": "ExecGDAPInvite", + "summary": "ExecGDAPInvite", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "gdapRoles", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUserSigninLogs": { + "get": { + "description": "ListUserSigninLogs", + "summary": "ListUserSigninLogs", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditCAPolicy": { + "get": { + "description": "EditCAPolicy", + "summary": "EditCAPolicy", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "guid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "state", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListDomainHealth": { + "get": { + "description": "ListDomainHealth", + "summary": "ListDomainHealth", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Action", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Record", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ExpectedInclude", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Domain", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Subdomains", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Selector", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecUniversalSearch": { + "get": { + "description": "ExecUniversalSearch", + "summary": "ExecUniversalSearch", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "name", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListMailboxCAS": { + "get": { + "description": "ListMailboxCAS", + "summary": "ListMailboxCAS", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveExConnectorTemplate": { + "get": { + "description": "RemoveExConnectorTemplate", + "summary": "RemoveExConnectorTemplate", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUserCounts": { + "get": { + "description": "ListUserCounts", + "summary": "ListUserCounts", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecGetLocalAdminPassword": { + "get": { + "description": "ExecGetLocalAdminPassword", + "summary": "ExecGetLocalAdminPassword", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "guid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListOrg": { + "get": { + "description": "ListOrg", + "summary": "ListOrg", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecExcludeLicenses": { + "post": { + "description": "ExecExcludeLicenses", + "summary": "ExecExcludeLicenses", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "SKUName", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddExclusion", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RemoveExclusion", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "List", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + }, + "get": { + "description": "ExecExcludeLicenses", + "summary": "ExecExcludeLicenses", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "SKUName", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddExclusion", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RemoveExclusion", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "List", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecDeleteGDAPRelationship": { + "get": { + "description": "ExecDeleteGDAPRelationship", + "summary": "ExecDeleteGDAPRelationship", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GDAPId", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddMSPApp": { + "post": { + "description": "AddMSPApp", + "summary": "AddMSPApp", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "selectedTenants", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AssignTo", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditPolicy": { + "post": { + "description": "EditPolicy", + "summary": "EditPolicy", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Description", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Displayname", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Assignto", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "groupid", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecDeviceAction": { + "post": { + "description": "ExecDeviceAction", + "summary": "ExecDeviceAction", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "input", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Action", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + }, + "get": { + "description": "ExecDeviceAction", + "summary": "ExecDeviceAction", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "input", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Action", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddWinGetApp": { + "post": { + "description": "AddWinGetApp", + "summary": "AddWinGetApp", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "InstallationIntent", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AssignTo", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemovePolicy": { + "get": { + "description": "RemovePolicy", + "summary": "RemovePolicy", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "URLName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddExConnector": { + "post": { + "description": "AddExConnector", + "summary": "AddExConnector", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "PowerShellCommand", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListTeamsVoice": { + "get": { + "description": "ListTeamsVoice", + "summary": "ListTeamsVoice", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListTeamsActivity": { + "get": { + "description": "ListTeamsActivity", + "summary": "ListTeamsActivity", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Type", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSpamFilterTemplates": { + "get": { + "description": "ListSpamFilterTemplates", + "summary": "ListSpamFilterTemplates", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecCopyForSent": { + "get": { + "description": "ExecCopyForSent", + "summary": "ExecCopyForSent", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "MessageCopyForSentAsEnabled", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListAzureADConnectStatus": { + "get": { + "description": "ListAzureADConnectStatus", + "summary": "ListAzureADConnectStatus", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DataToReturn", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecEnableArchive": { + "get": { + "description": "ExecEnableArchive", + "summary": "ExecEnableArchive", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecGetRecoveryKey": { + "get": { + "description": "ExecGetRecoveryKey", + "summary": "ExecGetRecoveryKey", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSharedMailboxStatistics": { + "get": { + "description": "ListSharedMailboxStatistics", + "summary": "ListSharedMailboxStatistics", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListPotentialApps": { + "post": { + "description": "ListPotentialApps", + "summary": "ListPotentialApps", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "type", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "SearchString", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecCPVPermissions": { + "get": { + "description": "ExecCPVPermissions", + "summary": "ExecCPVPermissions", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSharepointQuota": { + "get": { + "description": "ListSharepointQuota", + "summary": "ListSharepointQuota", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListDefenderTVM": { + "get": { + "description": "ListDefenderTVM", + "summary": "ListDefenderTVM", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecEditMailboxPermissions": { + "post": { + "description": "ExecEditMailboxPermissions", + "summary": "ExecEditMailboxPermissions", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddSendAs", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "userID", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddFullAccess", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AccessAutomap", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddFullAccessNoAutoMap", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RemoveFullAccess", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RemoveSendAs", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddOfficeApp": { + "post": { + "description": "AddOfficeApp", + "summary": "AddOfficeApp", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AcceptLicense", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "languages", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "SharedComputerActivation", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "updateChannel", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "excludedApps", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "arch", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Assignto", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RemoveVersions", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditSpamFilter": { + "get": { + "description": "EditSpamFilter", + "summary": "EditSpamFilter", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "name", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "state", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSignIns": { + "get": { + "description": "ListSignIns", + "summary": "ListSignIns", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "failedlogonOnly", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Filter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecDnsConfig": { + "get": { + "description": "ExecDnsConfig", + "summary": "ExecDnsConfig", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Action", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Resolver", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Domain", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecEmailForward": { + "post": { + "description": "ExecEmailForward", + "summary": "ExecEmailForward", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "disableForwarding", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ForwardExternal", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ForwardInternal", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "userID", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "KeepCopy", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecBECRemediate": { + "post": { + "description": "ExecBECRemediate", + "summary": "ExecBECRemediate", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "userid", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListPartnerRelationships": { + "get": { + "description": "ListPartnerRelationships", + "summary": "ListPartnerRelationships", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListAppsRepository": { + "post": { + "description": "ListAppsRepository", + "summary": "ListAppsRepository", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Repository", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Search", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecClrImmId": { + "get": { + "description": "ExecClrImmId", + "summary": "ExecClrImmId", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddGroupTemplate": { + "post": { + "description": "AddGroupTemplate", + "summary": "AddGroupTemplate", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "membershipRule", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "displayname", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "allowExternal", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "groupType", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "description", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "username", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/Standards_IntuneTemplate": { + "post": { + "description": "Standards_IntuneTemplate", + "summary": "Standards_IntuneTemplate", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Displayname", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RawJSON", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Description", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Type", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Assignto", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListIntuneTemplates": { + "get": { + "description": "ListIntuneTemplates", + "summary": "ListIntuneTemplates", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecResetPass": { + "get": { + "description": "ExecResetPass", + "summary": "ExecResetPass", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "MustChange", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "displayName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecAlertsList": { + "get": { + "description": "ExecAlertsList", + "summary": "ExecAlertsList", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecQuarantineManagement": { + "get": { + "description": "ExecQuarantineManagement", + "summary": "ExecQuarantineManagement", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "type", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AllowSender", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecRestoreDeleted": { + "get": { + "description": "ExecRestoreDeleted", + "summary": "ExecRestoreDeleted", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUserGroups": { + "get": { + "description": "ListUserGroups", + "summary": "ListUserGroups", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveStandard": { + "get": { + "description": "RemoveStandard", + "summary": "RemoveStandard", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUserConditionalAccessPolicies": { + "get": { + "description": "ListUserConditionalAccessPolicies", + "summary": "ListUserConditionalAccessPolicies", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListCAtemplates": { + "get": { + "description": "ListCAtemplates", + "summary": "ListCAtemplates", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListContacts": { + "get": { + "description": "ListContacts", + "summary": "ListContacts", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ContactID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListContactTemplates": { + "get": { + "description": "List Contact Templates", + "summary": "List Contact Templates", + "tags": ["GET"], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveContactTemplates": { + "get": { + "description": "Remove Contact Template", + "summary": "Remove Contact Template", + "tags": ["GET"], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddContactTemplates": { + "post": { + "description": "Add Contact Template", + "summary": "Add Contact Template", + "tags": ["POST"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListContactPermissions": { + "get": { + "description": "ListContactPermissions - Retrieves contact folder permissions for a specified user", + "summary": "ListContactPermissions", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query", + "description": "The user ID to retrieve contact permissions for" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query", + "description": "The tenant filter to specify which tenant" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Identity": { + "type": "string", + "description": "The identity of the contact folder" + }, + "User": { + "type": "string", + "description": "The user who has permissions" + }, + "AccessRights": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The access rights granted to the user" + }, + "FolderName": { + "type": "string", + "description": "The name of the contact folder" + }, + "MailboxInfo": { + "type": "object", + "description": "Information about the mailbox" + } + } + } + } + } + }, + "description": "Successfully retrieved contact permissions" + }, + "403": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "description": "Error message" + } + } + } + } + }, + "description": "Forbidden - insufficient permissions" + } + } + } + }, + "/ExecModifyContactPerms": { + "post": { + "description": "ExecModifyContactPerms - Modifies contact folder permissions for a specified user", + "summary": "ExecModifyContactPerms", + "tags": [ + "POST" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "userID", + "tenantFilter", + "permissions" + ], + "properties": { + "userID": { + "type": "string", + "description": "The user ID whose contact permissions will be modified" + }, + "tenantFilter": { + "type": "string", + "description": "The tenant filter to specify which tenant" + }, + "permissions": { + "type": "array", + "description": "Array of permission objects to apply", + "items": { + "type": "object", + "properties": { + "PermissionLevel": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Permission level (e.g., Owner, PublishingEditor, Editor, PublishingAuthor, Author, NonEditingAuthor, Reviewer, Contributor, AvailabilityOnly, LimitedDetails)" + } + } + }, + "Modification": { + "type": "string", + "description": "Type of modification (Add, Remove)", + "enum": ["Add", "Remove"] + }, + "UserID": { + "type": "array", + "description": "Array of target users to grant/remove permissions", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "User ID or email address" + } + } + } + }, + "CanViewPrivateItems": { + "type": "boolean", + "description": "Whether the user can view private items", + "default": false + }, + "FolderName": { + "type": "string", + "description": "Name of the contact folder", + "default": "Contact" + }, + "SendNotificationToUser": { + "type": "boolean", + "description": "Whether to send notification to the user", + "default": false + } + }, + "required": [ + "PermissionLevel", + "Modification", + "UserID" + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of result messages for each permission operation" + } + } + } + } + }, + "description": "Successfully processed contact permission modifications" + }, + "400": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Error messages" + } + } + } + } + }, + "description": "Bad Request - Missing required parameters" + }, + "404": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Error messages" + } + } + } + } + }, + "description": "Not Found - User ID not found" + }, + "500": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Error messages" + } + } + } + } + }, + "description": "Internal Server Error - Operation failed" + } + } + } + }, + "/ListMailboxRules": { + "get": { + "description": "ListMailboxRules", + "summary": "ListMailboxRules", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSites": { + "get": { + "description": "ListSites", + "summary": "ListSites", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Type", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserUPN", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecSetOoO": { + "post": { + "description": "ExecSetOoO", + "summary": "ExecSetOoO", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "user", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "input", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Disable", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddExConnectorTemplate": { + "post": { + "description": "AddExConnectorTemplate", + "summary": "AddExConnectorTemplate", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "name", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "cippconnectortype", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecOffboardUser": { + "post": { + "description": "ExecOffboardUser", + "summary": "ExecOffboardUser", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "KeepCopy", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "OnedriveAccess", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "OOO", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AccessNoAutomap", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "forward", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "user", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListTenantDetails": { + "get": { + "description": "ListTenantDetails", + "summary": "ListTenantDetails", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecConverttoSharedMailbox": { + "get": { + "description": "ExecConverttoSharedMailbox", + "summary": "ExecConverttoSharedMailbox", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ConvertToUser", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecGraphRequest": { + "get": { + "description": "ExecGraphRequest", + "summary": "ExecGraphRequest", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Endpoint", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DisablePagination", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListDefenderState": { + "get": { + "description": "ListDefenderState", + "summary": "ListDefenderState", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListMailQuarantine": { + "get": { + "description": "ListMailQuarantine", + "summary": "ListMailQuarantine", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListIntunePolicy": { + "get": { + "description": "ListIntunePolicy", + "summary": "ListIntunePolicy", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "URLName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecRevokeSessions": { + "get": { + "description": "ExecRevokeSessions", + "summary": "ExecRevokeSessions", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListmailboxPermissions": { + "get": { + "description": "ListmailboxPermissions", + "summary": "ListmailboxPermissions", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecExtensionsConfig": { + "post": { + "description": "ExecExtensionsConfig", + "summary": "ExecExtensionsConfig", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "CIPPAPI", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListDevices": { + "get": { + "description": "ListDevices", + "summary": "ListDevices", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveCATemplate": { + "get": { + "description": "RemoveCATemplate", + "summary": "RemoveCATemplate", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveQueuedApp": { + "get": { + "description": "RemoveQueuedApp", + "summary": "RemoveQueuedApp", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/DomainAnalyser_List": { + "get": { + "description": "DomainAnalyser_List", + "summary": "DomainAnalyser_List", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddNamedLocation": { + "post": { + "description": "AddNamedLocation", + "summary": "AddNamedLocation", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Ips", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "includeUnknownCountriesAndRegions", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Countries", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Trusted", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "policyName", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Type", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "selectedTenants", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListTransportRulesTemplates": { + "get": { + "description": "ListTransportRulesTemplates", + "summary": "ListTransportRulesTemplates", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecEditCalendarPermissions": { + "get": { + "description": "ExecEditCalendarPermissions", + "summary": "ExecEditCalendarPermissions", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "permissions", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserToGetPermissions", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "removeaccess", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "folderName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecDisableUser": { + "get": { + "description": "ExecDisableUser", + "summary": "ExecDisableUser", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Enable", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddTransportRule": { + "post": { + "description": "AddTransportRule", + "summary": "AddTransportRule", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "PowerShellCommand", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListTenants": { + "get": { + "description": "ListTenants", + "summary": "ListTenants", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ClearCache", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantsOnly", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AllTenantSelector", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecResetMFA": { + "get": { + "description": "ExecResetMFA", + "summary": "ExecResetMFA", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListIntuneIntents": { + "get": { + "description": "ListIntuneIntents", + "summary": "ListIntuneIntents", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListStandards": { + "get": { + "description": "ListStandards", + "summary": "ListStandards", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListDeletedItems": { + "get": { + "description": "ListDeletedItems", + "summary": "ListDeletedItems", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecGroupsHideFromGAL": { + "get": { + "description": "ExecGroupsHideFromGAL", + "summary": "ExecGroupsHideFromGAL", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "groupType", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "HidefromGAL", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecSendPush": { + "get": { + "description": "ExecSendPush", + "summary": "ExecSendPush", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserEmail", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecExtensionMapping": { + "post": { + "description": "ExecExtensionMapping", + "summary": "ExecExtensionMapping", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "mappings", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "List", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddMapping", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + }, + "get": { + "description": "ExecExtensionMapping", + "summary": "ExecExtensionMapping", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "mappings", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "List", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddMapping", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListAppStatus": { + "get": { + "description": "ListAppStatus", + "summary": "ListAppStatus", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AppFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/GetVersion": { + "get": { + "description": "GetVersion", + "summary": "GetVersion", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "localversion", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecMailboxMobileDevices": { + "get": { + "description": "ExecMailboxMobileDevices", + "summary": "ExecMailboxMobileDevices", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Userid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Quarantine", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Delete", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "deviceid", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveApp": { + "get": { + "description": "RemoveApp", + "summary": "RemoveApp", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecPasswordConfig": { + "post": { + "description": "ExecPasswordConfig", + "summary": "ExecPasswordConfig", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "List", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "passwordType", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + }, + "get": { + "description": "ExecPasswordConfig", + "summary": "ExecPasswordConfig", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "List", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "passwordType", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecHideFromGAL": { + "get": { + "description": "ExecHideFromGAL", + "summary": "ExecHideFromGAL", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "HideFromGal", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditUser": { + "post": { + "description": "EditUser", + "summary": "EditUser", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "CopyFrom", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListOAuthApps": { + "get": { + "description": "ListOAuthApps", + "summary": "ListOAuthApps", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListDeviceDetails": { + "get": { + "description": "ListDeviceDetails", + "summary": "ListDeviceDetails", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DeviceSerial", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DeviceID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DeviceName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListLogs": { + "get": { + "description": "ListLogs", + "summary": "ListLogs", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ListLogs", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Severity", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "User", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DateFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Filter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListAllTenantDeviceCompliance": { + "get": { + "description": "ListAllTenantDeviceCompliance", + "summary": "ListAllTenantDeviceCompliance", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUsers": { + "get": { + "description": "ListUsers", + "summary": "ListUsers", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "IncludeLogonDetails", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "graphFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListMessageTrace": { + "get": { + "description": "ListMessageTrace", + "summary": "ListMessageTrace", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Tracedetail", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "sender", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "days", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "recipient", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListPhishPolicies": { + "get": { + "description": "ListPhishPolicies", + "summary": "ListPhishPolicies", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveSpamfilter": { + "get": { + "description": "RemoveSpamfilter", + "summary": "RemoveSpamfilter", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "name", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecNotificationConfig": { + "post": { + "description": "ExecNotificationConfig", + "summary": "ExecNotificationConfig", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Webhook", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Email", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "logsToInclude", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Severity", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "onePerTenant", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "sendtoIntegration", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecSAMSetup": { + "post": { + "description": "ExecSAMSetup", + "summary": "ExecSAMSetup", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "error_description", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "setkeys", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "applicationsecret", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "error", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "CheckSetupProcess", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "count", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RefreshToken", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "applicationid", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "step", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "partnersetup", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "code", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "CreateSAM", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + }, + "get": { + "description": "ExecSAMSetup", + "summary": "ExecSAMSetup", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "error_description", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "setkeys", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "applicationsecret", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "error", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "CheckSetupProcess", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "count", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RefreshToken", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "applicationid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "step", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "partnersetup", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "code", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "CreateSAM", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUserMailboxDetails": { + "get": { + "description": "ListUserMailboxDetails", + "summary": "ListUserMailboxDetails", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListExConnectorTemplates": { + "get": { + "description": "ListExConnectorTemplates", + "summary": "ListExConnectorTemplates", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddDefenderDeployment": { + "post": { + "description": "AddDefenderDeployment", + "summary": "AddDefenderDeployment", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ASR", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Compliance", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "EDR", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "selectedTenants", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Policy", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListGDAPInvite": { + "get": { + "description": "ListGDAPInvite", + "summary": "ListGDAPInvite", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RelationshipId", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddIntuneTemplate": { + "post": { + "description": "AddIntuneTemplate", + "summary": "AddIntuneTemplate", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TemplateType", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "description", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "displayname", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "rawJSON", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "URLName", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + }, + "get": { + "description": "AddIntuneTemplate", + "summary": "AddIntuneTemplate", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TemplateType", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "description", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "displayname", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "rawJSON", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "URLName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddAPDevice": { + "post": { + "description": "AddAPDevice", + "summary": "AddAPDevice", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "autopilotData", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Groupname", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveTransportRuleTemplate": { + "get": { + "description": "RemoveTransportRuleTemplate", + "summary": "RemoveTransportRuleTemplate", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListMailboxMobileDevices": { + "get": { + "description": "ListMailboxMobileDevices", + "summary": "ListMailboxMobileDevices", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Mailbox", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecExcludeTenant": { + "post": { + "description": "ExecExcludeTenant", + "summary": "ExecExcludeTenant", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ListAll", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddExclusion", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "value", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RemoveExclusion", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "List", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + }, + "get": { + "description": "ExecExcludeTenant", + "summary": "ExecExcludeTenant", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ListAll", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AddExclusion", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "value", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RemoveExclusion", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "List", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecSetSecurityAlert": { + "get": { + "description": "ExecSetSecurityAlert", + "summary": "ExecSetSecurityAlert", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "vendor", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "provider", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Status", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecAddGDAPRole": { + "post": { + "description": "ExecAddGDAPRole", + "summary": "ExecAddGDAPRole", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "gdapRoles", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "customSuffix", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListExchangeConnectors": { + "get": { + "description": "ListExchangeConnectors", + "summary": "ListExchangeConnectors", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddTransportTemplate": { + "post": { + "description": "AddTransportTemplate", + "summary": "AddTransportTemplate", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "PowerShellCommand", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "name", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecCreateTAP": { + "get": { + "description": "ExecCreateTAP", + "summary": "ExecCreateTAP", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveCAPolicy": { + "get": { + "description": "RemoveCAPolicy", + "summary": "RemoveCAPolicy", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GUID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveTransportRule": { + "get": { + "description": "RemoveTransportRule", + "summary": "RemoveTransportRule", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "guid", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveAPDevice": { + "get": { + "description": "RemoveAPDevice", + "summary": "RemoveAPDevice", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddPolicy": { + "post": { + "description": "AddPolicy", + "summary": "AddPolicy", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TemplateType", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Description", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Displayname", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "replacemap", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RawJSON", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Assignto", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddContact": { + "post": { + "description": "AddContact", + "summary": "AddContact", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/PublicScripts": { + "get": { + "description": "PublicScripts", + "summary": "PublicScripts", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Guid", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveContact": { + "get": { + "description": "RemoveContact", + "summary": "RemoveContact", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "guid", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditTransportRule": { + "get": { + "description": "EditTransportRule", + "summary": "EditTransportRule", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "guid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "state", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddSpamFilter": { + "post": { + "description": "AddSpamFilter", + "summary": "AddSpamFilter", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "PowerShellCommand", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveIntuneTemplate": { + "get": { + "description": "RemoveIntuneTemplate", + "summary": "RemoveIntuneTemplate", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecGroupsDeliveryManagement": { + "get": { + "description": "ExecGroupsDeliveryManagement", + "summary": "ExecGroupsDeliveryManagement", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GroupType", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "OnlyAllowInternal", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListUserDevices": { + "get": { + "description": "ListUserDevices", + "summary": "ListUserDevices", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditTenant": { + "post": { + "description": "EditTenant", + "summary": "EditTenant", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "displayName", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "defaultDomainName", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "customerId", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecAppApproval": { + "get": { + "description": "ExecAppApproval", + "summary": "ExecAppApproval", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "applicationid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListInactiveAccounts": { + "get": { + "description": "ListInactiveAccounts", + "summary": "ListInactiveAccounts", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddAlert": { + "post": { + "description": "AddAlert", + "summary": "AddAlert", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ApnCertExpiry", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "NewRole", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "MFAAlertUsers", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DefenderMalware", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "NewGA", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "QuotaUsed", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AppSecretExpiry", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "OverusedLicenses", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "VppTokenExpiry", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "SecDefaultsUpsell", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "NoCAConfig", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DefenderStatus", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AdminPassword", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "MFAAdmins", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "DepTokenExpiry", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "SharePointQuota", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ExpiringLicenses", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UnusedLicenses", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListMailboxes": { + "get": { + "description": "ListMailboxes", + "summary": "ListMailboxes", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListMFAUsers": { + "get": { + "description": "ListMFAUsers", + "summary": "ListMFAUsers", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveGroupTemplate": { + "get": { + "description": "RemoveGroupTemplate", + "summary": "RemoveGroupTemplate", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecRunBackup": { + "get": { + "description": "ExecRunBackup", + "summary": "ExecRunBackup", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Selected", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListTransportRules": { + "get": { + "description": "ListTransportRules", + "summary": "ListTransportRules", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecMaintenanceScripts": { + "get": { + "description": "ExecMaintenanceScripts", + "summary": "ExecMaintenanceScripts", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "MakeLink", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ScriptFile", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/GetCippAlerts": { + "get": { + "description": "GetCippAlerts", + "summary": "GetCippAlerts", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "localversion", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecGDAPMigration": { + "post": { + "description": "ExecGDAPMigration", + "summary": "ExecGDAPMigration", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "selectedTenants", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "gdapRoles", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListGroups": { + "get": { + "description": "ListGroups", + "summary": "ListGroups", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "GroupID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "owners", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "members", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListDomains": { + "get": { + "description": "ListDomains", + "summary": "ListDomains", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListExternalTenantInfo": { + "get": { + "description": "ListExternalTenantInfo", + "summary": "ListExternalTenantInfo", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenant", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListAPDevices": { + "get": { + "description": "ListAPDevices", + "summary": "ListAPDevices", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "UserID", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddAutopilotConfig": { + "post": { + "description": "AddAutopilotConfig", + "summary": "AddAutopilotConfig", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Displayname", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Description", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Assignto", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddCAPolicy": { + "post": { + "description": "AddCAPolicy", + "summary": "AddCAPolicy", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RawJSON", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListMailboxStatistics": { + "get": { + "description": "ListMailboxStatistics", + "summary": "ListMailboxStatistics", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecAssignApp": { + "get": { + "description": "ExecAssignApp", + "summary": "ExecAssignApp", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ID", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "AssignTo", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecExtensionTest": { + "get": { + "description": "ExecExtensionTest", + "summary": "ExecExtensionTest", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "extensionName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecSetMailboxQuota": { + "post": { + "description": "ExecSetMailboxQuota", + "summary": "ExecSetMailboxQuota", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "input", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ProhibitSendReceiveQuota", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ProhibitSendQuota", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "IssueWarningQuota", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "user", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListNamedLocations": { + "get": { + "description": "ListNamedLocations", + "summary": "ListNamedLocations", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListMFAUsersAllTenants": { + "get": { + "description": "ListMFAUsersAllTenants", + "summary": "ListMFAUsersAllTenants", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveQueuedAlert": { + "get": { + "description": "RemoveQueuedAlert", + "summary": "RemoveQueuedAlert", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecAccessChecks": { + "post": { + "description": "ExecAccessChecks", + "summary": "ExecAccessChecks", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Tenants", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Permissions", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + }, + "get": { + "description": "ExecAccessChecks", + "summary": "ExecAccessChecks", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Tenants", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Permissions", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSharedMailboxAccountEnabled": { + "get": { + "description": "ListSharedMailboxAccountEnabled", + "summary": "ListSharedMailboxAccountEnabled", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "TenantFilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSpamfilter": { + "get": { + "description": "ListSpamfilter", + "summary": "ListSpamfilter", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListQuarantinePolicy": { + "get": { + "description": "ListQuarantinePolicy", + "summary": "ListQuarantinePolicy", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Type", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddQuarantinePolicy": { + "post": { + "description": "AddQuarantinePolicy", + "summary": "AddQuarantinePolicy", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Name", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "BlockSender", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "Delete", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "Preview", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ReleaseActionPreference", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "AllowSender", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "QuarantineNotification", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "IncludeMessagesFromBlockedSenderAddress", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditQuarantinePolicy": { + "post": { + "description": "EditQuarantinePolicy", + "summary": "EditQuarantinePolicy", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Type", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Identity", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "EndUserSpamNotificationFrequency", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "EndUserSpamNotificationCustomFromAddress", + "in": "body" + }, + { + "required": false, + "schema": { + "type": "boolean" + }, + "name": "OrganizationBrandingEnabled", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "BlockSender", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "Delete", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "Preview", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "ReleaseActionPreference", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "AllowSender", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "QuarantineNotification", + "in": "body" + }, + { + "required": true, + "schema": { + "type": "boolean" + }, + "name": "IncludeMessagesFromBlockedSenderAddress", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveExConnector": { + "get": { + "description": "RemoveExConnector", + "summary": "RemoveExConnector", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "guid", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Type", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveQuarantinePolicy": { + "get": { + "description": "RemoveQuarantinePolicy", + "summary": "RemoveQuarantinePolicy", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantfilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Identity", + "in": "body" + }, + { + "required": false, + "schema": { + "type": "string" + }, + "name": "Name", + "in": "body" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + } + }, + "/ExecDeleteSafeLinksPolicy": { + "get": { + "description": "ExecDeleteSafeLinksPolicy", + "summary": "ExecDeleteSafeLinksPolicy", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "RuleName", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "PolicyName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/EditSafeLinksPolicy": { + "post": { + "description": "EditSafeLinksPolicy", + "summary": "EditSafeLinksPolicy", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "PolicyName", + "in": "query" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "EnableSafeLinksForEmail": { + "type": "boolean" + }, + "EnableSafeLinksForTeams": { + "type": "boolean" + }, + "EnableSafeLinksForOffice": { + "type": "boolean" + }, + "TrackClicks": { + "type": "boolean" + }, + "AllowClickThrough": { + "type": "boolean" + }, + "ScanUrls": { + "type": "boolean" + }, + "EnableForInternalSenders": { + "type": "boolean" + }, + "DeliverMessageAfterScan": { + "type": "boolean" + }, + "DisableUrlRewrite": { + "type": "boolean" + }, + "DoNotRewriteUrls": { + "type": "array", + "items": { + "type": "string" + } + }, + "AdminDisplayName": { + "type": "string" + }, + "CustomNotificationText": { + "type": "string" + }, + "EnableOrganizationBranding": { + "type": "boolean" + }, + "Priority": { + "type": "integer" + }, + "Comments": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "SentTo": { + "type": "array", + "items": { + "type": "string" + } + }, + "ExceptIfSentTo": { + "type": "array", + "items": { + "type": "string" + } + }, + "SentToMemberOf": { + "type": "array", + "items": { + "type": "string" + } + }, + "ExceptIfSentToMemberOf": { + "type": "array", + "items": { + "type": "string" + } + }, + "RecipientDomainIs": { + "type": "array", + "items": { + "type": "string" + } + }, + "ExceptIfRecipientDomainIs": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ListSafeLinksPolicyDetails": { + "get": { + "description": "ListSafeLinksPolicyDetails", + "summary": "ListSafeLinksPolicyDetails", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "PolicyName", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string" + }, + "name": "RuleName", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "object", + "properties": { + "Policy": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "EnableSafeLinksForEmail": { + "type": "boolean" + }, + "EnableSafeLinksForTeams": { + "type": "boolean" + }, + "EnableSafeLinksForOffice": { + "type": "boolean" + }, + "TrackClicks": { + "type": "boolean" + }, + "AllowClickThrough": { + "type": "boolean" + }, + "ScanUrls": { + "type": "boolean" + }, + "EnableForInternalSenders": { + "type": "boolean" + }, + "DeliverMessageAfterScan": { + "type": "boolean" + }, + "DisableUrlRewrite": { + "type": "boolean" + }, + "DoNotRewriteUrls": { + "type": "array", + "items": { + "type": "string" + } + }, + "AdminDisplayName": { + "type": "string" + }, + "CustomNotificationText": { + "type": "string" + }, + "EnableOrganizationBranding": { + "type": "boolean" + } + } + }, + "Rule": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Priority": { + "type": "integer" + }, + "Comments": { + "type": "string" + }, + "State": { + "type": "string" + }, + "SentTo": { + "type": "array", + "items": { + "type": "string" + } + }, + "ExceptIfSentTo": { + "type": "array", + "items": { + "type": "string" + } + }, + "SentToMemberOf": { + "type": "array", + "items": { + "type": "string" + } + }, + "ExceptIfSentToMemberOf": { + "type": "array", + "items": { + "type": "string" + } + }, + "RecipientDomainIs": { + "type": "array", + "items": { + "type": "string" + } + }, + "ExceptIfRecipientDomainIs": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Message": { + "type": "string" + } + } + } + } + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecNewSafeLinksPolicy": { + "post": { + "description": "Create a new SafeLinks policy and associated rule", + "summary": "Create SafeLinks Policy and Rule Configuration", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string" + }, + "name": "Name", + "in": "query" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "EnableSafeLinksForEmail": { + "type": "boolean", + "description": "Enable Safe Links protection for email messages" + }, + "EnableSafeLinksForTeams": { + "type": "boolean", + "description": "Enable Safe Links protection for Teams messages" + }, + "EnableSafeLinksForOffice": { + "type": "boolean", + "description": "Enable Safe Links protection for Office applications" + }, + "TrackClicks": { + "type": "boolean", + "description": "Track user clicks related to Safe Links protection" + }, + "AllowClickThrough": { + "type": "boolean", + "description": "Allow users to click through to the original URL" + }, + "ScanUrls": { + "type": "boolean", + "description": "Enable real-time scanning of URLs" + }, + "EnableForInternalSenders": { + "type": "boolean", + "description": "Enable Safe Links for messages sent between internal senders" + }, + "DeliverMessageAfterScan": { + "type": "boolean", + "description": "Wait until URL scanning is complete before delivering the message" + }, + "DisableUrlRewrite": { + "type": "boolean", + "description": "Disable the rewriting of URLs in messages" + }, + "DoNotRewriteUrls": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of URLs that will not be rewritten by Safe Links" + }, + "AdminDisplayName": { + "type": "string", + "description": "Display name for the policy in the admin interface" + }, + "CustomNotificationText": { + "type": "string", + "description": "Custom text for the notification when a link is blocked" + }, + "EnableOrganizationBranding": { + "type": "boolean", + "description": "Enable organization branding on warning pages" + }, + "Priority": { + "type": "integer", + "description": "Priority of the rule (lower numbers = higher priority)" + }, + "Comments": { + "type": "string", + "description": "Administrative comments for the rule" + }, + "Enabled": { + "type": "boolean", + "description": "Whether the rule is enabled or disabled" + }, + "SentTo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Apply the rule if the recipient is any of these email addresses" + }, + "SentToMemberOf": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Apply the rule if the recipient is a member of any of these groups" + }, + "RecipientDomainIs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Apply the rule if the recipient's domain matches any of these domains" + }, + "ExceptIfSentTo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Do not apply the rule if the recipient is any of these email addresses" + }, + "ExceptIfSentToMemberOf": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Do not apply the rule if the recipient is a member of any of these groups" + }, + "ExceptIfRecipientDomainIs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Do not apply the rule if the recipient's domain matches any of these domains" + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Result message from the operation" + } + } + } + } + }, + "description": "Successfully created SafeLinks policy and rule" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + } + } + } + }, + "/ListSafeLinksPolicyTemplates": { + "get": { + "description": "List SafeLinks Policy Templates", + "summary": "List SafeLinks Policy Templates", + "tags": [ + "GET" + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/RemoveSafeLinksPolicyTemplate": { + "get": { + "description": "Remove SafeLinks Policy Template", + "summary": "Remove SafeLinks Policy Template", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "id", + "in": "query" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddSafeLinksPolicyTemplate": { + "post": { + "description": "Add SafeLinks Policy Template", + "summary": "Add SafeLinks Policy Template", + "tags": [ + "POST" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/AddSafeLinksPolicyFromTemplate": { + "post": { + "description": "Deploy SafeLinks Policy From Template", + "summary": "Deploy SafeLinks Policy From Template", + "tags": [ + "POST" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + } + } + }, + "description": "Successful operation" + } + } + } + }, + "/ExecManageRetentionPolicies": { + "get": { + "description": "List retention policies or get a specific retention policy by name", + "summary": "Get Retention Policies", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string" + }, + "name": "name", + "in": "query", + "description": "Name of specific retention policy to retrieve" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "RetentionPolicyTagLinks": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "description": "Successfully retrieved retention policies" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + } + } + }, + "post": { + "description": "Create, modify, or delete retention policies", + "summary": "Manage Retention Policies", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "CreatePolicies": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name of the retention policy" + }, + "RetentionPolicyTagLinks": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag names to link to this policy" + } + }, + "required": ["Name"] + }, + "description": "Array of retention policies to create" + }, + "ModifyPolicies": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Identity": { + "type": "string", + "description": "Identity of the retention policy to modify" + }, + "Name": { + "type": "string", + "description": "New name for the retention policy" + }, + "RetentionPolicyTagLinks": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag names to link to this policy" + }, + "AddTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag names to add to the policy" + }, + "RemoveTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag names to remove from the policy" + } + }, + "required": ["Identity"] + }, + "description": "Array of retention policies to modify" + }, + "DeletePolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention policy identities to delete" + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "Successfully processed retention policy operations" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "403": { + "description": "Forbidden - insufficient permissions", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/ExecManageRetentionTags": { + "get": { + "description": "List retention tags or get a specific retention tag by name", + "summary": "Get Retention Tags", + "tags": [ + "GET" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string" + }, + "name": "name", + "in": "query", + "description": "Name of specific retention tag to retrieve" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "RetentionAction": { + "type": "string" + }, + "AgeLimitForRetention": { + "type": "integer" + }, + "RetentionEnabled": { + "type": "boolean" + } + } + } + } + } + }, + "description": "Successfully retrieved retention tags" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "string", + "description": "Error message" + } + } + } + } + } + } + } + }, + "post": { + "description": "Create, modify, or delete retention tags", + "summary": "Manage Retention Tags", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "CreateTags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name of the retention tag (max 64 characters)" + }, + "Type": { + "type": "string", + "enum": ["All", "Inbox", "SentItems", "DeletedItems", "Drafts", "Outbox", "JunkEmail", "Journal", "SyncIssues", "ConversationHistory", "Personal", "RecoverableItems", "NonIpmRoot", "LegacyArchiveJournals", "Clutter", "Calendar", "Notes", "Tasks", "Contacts", "RssSubscriptions", "ManagedCustomFolder"], + "description": "Type of the retention tag" + }, + "RetentionAction": { + "type": "string", + "enum": ["DeleteAndAllowRecovery", "PermanentlyDelete", "MoveToArchive", "MarkAsPastRetentionLimit"], + "description": "Action to take when retention period expires" + }, + "AgeLimitForRetention": { + "type": "integer", + "minimum": 0, + "maximum": 24855, + "description": "Age limit for retention in days" + }, + "RetentionEnabled": { + "type": "boolean", + "description": "Whether retention is enabled for this tag" + }, + "Comment": { + "type": "string", + "description": "Administrative comment for the tag" + }, + "LocalizedComment": { + "type": "string", + "description": "Localized comment for the tag" + }, + "LocalizedRetentionPolicyTagName": { + "type": "string", + "description": "Localized name for the retention policy tag" + } + }, + "required": ["Name", "Type"] + }, + "description": "Array of retention tags to create" + }, + "ModifyTags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Identity": { + "type": "string", + "description": "Identity of the retention tag to modify" + }, + "Name": { + "type": "string", + "description": "New name for the retention tag" + }, + "RetentionAction": { + "type": "string", + "enum": ["DeleteAndAllowRecovery", "PermanentlyDelete", "MoveToArchive", "MarkAsPastRetentionLimit"], + "description": "Action to take when retention period expires" + }, + "AgeLimitForRetention": { + "type": "integer", + "minimum": 0, + "maximum": 24855, + "description": "Age limit for retention in days" + }, + "RetentionEnabled": { + "type": "boolean", + "description": "Whether retention is enabled for this tag" + }, + "Comment": { + "type": "string", + "description": "Administrative comment for the tag" + }, + "LocalizedComment": { + "type": "string", + "description": "Localized comment for the tag" + }, + "LocalizedRetentionPolicyTagName": { + "type": "string", + "description": "Localized name for the retention policy tag" + } + }, + "required": ["Identity"] + }, + "description": "Array of retention tags to modify" + }, + "DeleteTags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of retention tag identities to delete" + } + } + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "Successfully processed retention tag operations" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "403": { + "description": "Forbidden - insufficient permissions", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/ExecSetMailboxRetentionPolicies": { + "post": { + "description": "Apply a retention policy to one or more mailboxes", + "summary": "Set Mailbox Retention Policies", + "tags": [ + "POST" + ], + "parameters": [ + { + "required": true, + "schema": { + "type": "string" + }, + "name": "tenantFilter", + "in": "query" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "PolicyName": { + "type": "string", + "description": "Name of the retention policy to apply" + }, + "Mailboxes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of mailbox identities (email addresses or names) to apply the policy to" + } + }, + "required": ["PolicyName", "Mailboxes"] + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of result messages for each mailbox operation" + } + } + } + } + }, + "description": "Successfully processed mailbox retention policy assignments" + }, + "400": { + "description": "Bad request - missing required parameters", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "403": { + "description": "Forbidden - insufficient permissions", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "openapi": "3.1.0", + "servers": [ + { + "variables": { + "url": { + "description": "The base URL for the API. Enter your server URL here.", + "default": "CIPPURL.com" + } + }, + "url": "https://{url}/api/", + "description": "CIPP-API" + } + ], + "tags": [ + { + "name": "GET", + "description": "GET methods" + }, + { + "name": "POST", + "description": "POST methods" + } + ] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000000..9c41ecf7e309 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "CIPP-API", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/package.json b/package.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/package.json @@ -0,0 +1 @@ +{} diff --git a/profile.ps1 b/profile.ps1 index fe9da9c85e70..d26d55f264bd 100644 --- a/profile.ps1 +++ b/profile.ps1 @@ -1,20 +1,137 @@ -# Azure Functions profile.ps1 -# -# This profile.ps1 will get executed every "cold start" of your Function App. -# "cold start" occurs when: -# -# * A Function App starts up for the very first time -# * A Function App starts up after being de-allocated due to inactivity -# -# You can define helper functions, run commands, or specify environment variables -# NOTE: any variables defined that are not environment variables will get reset after the first execution - -# Authenticate with Azure PowerShell using MSI. -# Remove this if you are not planning on using MSI or Azure PowerShell. -import-module .\GraphHelper.psm1 - - -# Uncomment the next line to enable legacy AzureRm alias in Azure PowerShell. -# Enable-AzureRmAlias - -# You can also define functions or aliases that can be referenced in any of your PowerShell functions. \ No newline at end of file +Write-Information '#### CIPP-API Start ####' + +$Timings = @{} +$TotalStopwatch = [System.Diagnostics.Stopwatch]::StartNew() +# Only load Application Insights SDK for telemetry if a connection string or instrumentation key is set +$hasAppInsights = $false +if ($env:APPLICATIONINSIGHTS_CONNECTION_STRING -or $env:APPINSIGHTS_INSTRUMENTATIONKEY) { + $hasAppInsights = $true +} +if ($hasAppInsights) { + Set-Location -Path $PSScriptRoot + $SwAppInsights = [System.Diagnostics.Stopwatch]::StartNew() + try { + $AppInsightsDllPath = Join-Path $PSScriptRoot 'Shared\AppInsights\Microsoft.ApplicationInsights.dll' + $null = [Reflection.Assembly]::LoadFile($AppInsightsDllPath) + Write-Debug 'Application Insights SDK loaded successfully' + } catch { + Write-Warning "Failed to load Application Insights SDK: $($_.Exception.Message)" + } + $SwAppInsights.Stop() + $Timings['AppInsightsSDK'] = $SwAppInsights.Elapsed.TotalMilliseconds +} + +# Import modules +$SwModules = [System.Diagnostics.Stopwatch]::StartNew() +$ModulesPath = Join-Path $PSScriptRoot 'Modules' +$Modules = @('CIPPCore', 'CippExtensions', 'AzBobbyTables') +foreach ($Module in $Modules) { + $SwModule = [System.Diagnostics.Stopwatch]::StartNew() + try { + Import-Module -Name (Join-Path $ModulesPath $Module) -ErrorAction Stop + $SwModule.Stop() + $Timings["Module_$Module"] = $SwModule.Elapsed.TotalMilliseconds + } catch { + $SwModule.Stop() + $Timings["Module_$Module"] = $SwModule.Elapsed.TotalMilliseconds + Write-LogMessage -message "Failed to import module - $Module" -LogData (Get-CippException -Exception $_) -Sev 'debug' + Write-Error $_.Exception.Message + } +} +$SwModules.Stop() +$Timings['AllModules'] = $SwModules.Elapsed.TotalMilliseconds + +# Initialize global TelemetryClient only if Application Insights is configured +$SwTelemetry = [System.Diagnostics.Stopwatch]::StartNew() +if ($hasAppInsights -and -not $global:TelemetryClient) { + try { + $connectionString = $env:APPLICATIONINSIGHTS_CONNECTION_STRING + if ($connectionString) { + # Use connection string (preferred method) + $config = [Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration]::CreateDefault() + $config.ConnectionString = $connectionString + $global:TelemetryClient = [Microsoft.ApplicationInsights.TelemetryClient]::new($config) + Enable-CippConsoleLogging + Write-Debug 'TelemetryClient initialized with connection string' + } elseif ($env:APPINSIGHTS_INSTRUMENTATIONKEY) { + # Fall back to instrumentation key + $global:TelemetryClient = [Microsoft.ApplicationInsights.TelemetryClient]::new() + $global:TelemetryClient.InstrumentationKey = $env:APPINSIGHTS_INSTRUMENTATIONKEY + Enable-CippConsoleLogging + Write-Debug 'TelemetryClient initialized with instrumentation key' + } + } catch { + Write-Warning "Failed to initialize TelemetryClient: $($_.Exception.Message)" + } + $SwTelemetry.Stop() + $Timings['TelemetryClient'] = $SwTelemetry.Elapsed.TotalMilliseconds +} + +$SwDurableSDK = [System.Diagnostics.Stopwatch]::StartNew() +if ($env:ExternalDurablePowerShellSDK -eq $true) { + try { + Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop + Write-Debug 'External Durable SDK enabled' + } catch { + Write-LogMessage -message 'Failed to import module - AzureFunctions.PowerShell.Durable.SDK' -LogData (Get-CippException -Exception $_) -Sev 'debug' + $_.Exception.Message + } +} +$SwDurableSDK.Stop() +$Timings['DurableSDK'] = $SwDurableSDK.Elapsed.TotalMilliseconds + +$SwAuth = [System.Diagnostics.Stopwatch]::StartNew() +try { + if (!$env:SetFromProfile) { + Write-Debug "We're reloading from KV" + $Auth = Get-CIPPAuthentication + } +} catch { + Write-LogMessage -message 'Could not retrieve keys from Keyvault' -LogData (Get-CippException -Exception $_) -Sev 'debug' +} +$SwAuth.Stop() +$Timings['Authentication'] = $SwAuth.Elapsed.TotalMilliseconds + +$SwVersion = [System.Diagnostics.Stopwatch]::StartNew() +$CurrentVersion = (Get-Content -Path (Join-Path $PSScriptRoot 'version_latest.txt') -Raw).Trim() +$Table = Get-CippTable -tablename 'Version' +Write-Information "Function App: $($env:WEBSITE_SITE_NAME) | API Version: $CurrentVersion | PS Version: $($PSVersionTable.PSVersion)" +$global:CippVersion = $CurrentVersion + +$LastStartup = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Version' and RowKey eq '$($env:WEBSITE_SITE_NAME)'" +if (!$LastStartup -or $CurrentVersion -ne $LastStartup.Version) { + Write-Information "Version has changed from $($LastStartup.Version ?? 'None') to $CurrentVersion" + if ($LastStartup) { + $LastStartup.Version = $CurrentVersion + Add-Member -InputObject $LastStartup -MemberType NoteProperty -Name 'PSVersion' -Value $PSVersionTable.PSVersion.ToString() -Force + } else { + $LastStartup = [PSCustomObject]@{ + PartitionKey = 'Version' + RowKey = $env:WEBSITE_SITE_NAME + Version = $CurrentVersion + PSVersion = $PSVersionTable.PSVersion.ToString() + } + } + Update-AzDataTableEntity @Table -Entity $LastStartup -Force -ErrorAction SilentlyContinue + try { + Clear-CippDurables + } catch { + Write-LogMessage -message 'Failed to clear durables after update' -LogData (Get-CippException -Exception $_) -Sev 'Error' + } + + $ReleaseTable = Get-CippTable -tablename 'cacheGitHubReleaseNotes' + Remove-AzDataTableEntity @ReleaseTable -Entity @{ PartitionKey = 'GitHubReleaseNotes'; RowKey = 'GitHubReleaseNotes' } -ErrorAction SilentlyContinue + Write-Debug 'Cleared GitHub release notes cache to force refresh on version update.' +} +$SwVersion.Stop() +$Timings['VersionCheck'] = $SwVersion.Elapsed.TotalMilliseconds + +$TotalStopwatch.Stop() +$Timings['Total'] = $TotalStopwatch.Elapsed.TotalMilliseconds + +# Output timing summary as compressed JSON +$TimingsRounded = [ordered]@{} +foreach ($Key in ($Timings.Keys | Sort-Object)) { + $TimingsRounded[$Key] = [math]::Round($Timings[$Key], 2) +} +Write-Debug "#### Profile Load Timings #### $($TimingsRounded | ConvertTo-Json -Compress)" diff --git a/requirements.psd1 b/requirements.psd1 index c75ebd84ae6a..3364b5ae1eef 100644 --- a/requirements.psd1 +++ b/requirements.psd1 @@ -1,10 +1,6 @@ # This file enables modules to be automatically managed by the Functions service. # See https://aka.ms/functionsmanageddependency for additional information. # -@{ - # For latest supported version, go to 'https://www.powershellgallery.com/packages/Az'. - # To use the Az module in your function app, please uncomment the line below. - 'Az.accounts' = '2.*' - 'Az.Keyvault' = '3.*' - 'Az.functions' = '3.*' -} +# CIPP bundles all modules locally in the Modules folder and imports them explicitly. +# managedDependency is disabled in host.json - this file is intentionally empty. +@{} diff --git a/version_latest.txt b/version_latest.txt index b9268dae245e..11f1d47dac93 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -1.8.1 \ No newline at end of file +8.8.2 diff --git a/words.txt b/words.txt new file mode 100644 index 000000000000..ad92336870f8 --- /dev/null +++ b/words.txt @@ -0,0 +1,7776 @@ +Abacus +Abdomen +Abdominal +Abide +Abiding +Ability +Ablaze +Able +Abnormal +Abrasion +Abrasive +Abreast +Abridge +Abroad +Abruptly +Absence +Absentee +Absently +Absinthe +Absolute +Absolve +Abstain +Abstract +Absurd +Accent +Acclaim +Acclimate +Accompany +Account +Accuracy +Accurate +Accustom +Acetone +Achiness +Aching +Acid +Acorn +Acquaint +Acquire +Acre +Acrobat +Acronym +Acting +Action +Activate +Activator +Active +Activism +Activist +Activity +Actress +Acts +Acutely +Acuteness +Aeration +Aerobics +Aerosol +Aerospace +Afar +Affair +Affected +Affecting +Affection +Affidavit +Affiliate +Affirm +Affix +Afflicted +Affluent +Afford +Affront +Aflame +Afloat +Aflutter +Afoot +Afraid +Afterglow +Afterlife +Aftermath +Aftermost +Afternoon +Aged +Ageless +Agency +Agenda +Agent +Aggregate +Aghast +Agile +Agility +Aging +Agnostic +Agonize +Agonizing +Agony +Agreeable +Agreeably +Agreed +Agreeing +Agreement +Aground +Ahead +Ahoy +Aide +Aids +Aim +Ajar +Alabaster +Alarm +Albatross +Album +Alfalfa +Algebra +Algorithm +Alias +Alibi +Alienable +Alienate +Aliens +Alike +Alive +Alkaline +Alkalize +Almanac +Almighty +Almost +Aloe +Aloft +Aloha +Alone +Alongside +Aloof +Alphabet +Alright +Although +Altitude +Alto +Aluminum +Alumni +Always +Amaretto +Amaze +Amazingly +Amber +Ambiance +Ambiguity +Ambiguous +Ambition +Ambitious +Ambulance +Ambush +Amendable +Amendment +Amends +Amenity +Amiable +Amicably +Amid +Amigo +Amino +Amiss +Ammonia +Ammonium +Amnesty +Amniotic +Among +Amount +Amperage +Ample +Amplifier +Amplify +Amply +Amuck +Amulet +Amusable +Amused +Amusement +Amuser +Amusing +Anaconda +Anaerobic +Anagram +Anatomist +Anatomy +Anchor +Anchovy +Ancient +Android +Anemia +Anemic +Aneurism +Anew +Angelfish +Angelic +Anger +Angled +Angler +Angles +Angling +Angrily +Angriness +Anguished +Angular +Animal +Animate +Animating +Animation +Animator +Anime +Animosity +Ankle +Annex +Annotate +Announcer +Annoying +Annually +Annuity +Anointer +Another +Answering +Antacid +Antarctic +Anteater +Antelope +Antennae +Anthem +Anthill +Anthology +Antibody +Antics +Antidote +Antihero +Antiquely +Antiques +Antiquity +Antirust +Antitoxic +Antitrust +Antiviral +Antivirus +Antler +Antonym +Antsy +Anvil +Anybody +Anyhow +Anymore +Anyone +Anyplace +Anything +Anytime +Anyway +Anywhere +Aorta +Apache +Apostle +Appealing +Appear +Appease +Appeasing +Appendage +Appendix +Appetite +Appetizer +Applaud +Applause +Apple +Appliance +Applicant +Applied +Apply +Appointee +Appraisal +Appraiser +Apprehend +Approach +Approval +Approve +Apricot +April +Apron +Aptitude +Aptly +Aqua +Aqueduct +Arbitrary +Arbitrate +Ardently +Area +Arena +Arguable +Arguably +Argue +Arise +Armadillo +Armband +Armchair +Armed +Armful +Armhole +Arming +Armless +Armoire +Armored +Armory +Armrest +Army +Aroma +Arose +Around +Arousal +Arrange +Array +Arrest +Arrival +Arrive +Arrogance +Arrogant +Arson +Art +Ascend +Ascension +Ascent +Ascertain +Ashamed +Ashen +Ashes +Ashy +Aside +Askew +Asleep +Asparagus +Aspect +Aspirate +Aspire +Aspirin +Astonish +Astound +Astride +Astrology +Astronaut +Astronomy +Astute +Atlantic +Atlas +Atom +Atonable +Atop +Atrium +Atrocious +Atrophy +Attach +Attain +Attempt +Attendant +Attendee +Attention +Attentive +Attest +Attic +Attire +Attitude +Attractor +Attribute +Atypical +Auction +Audacious +Audacity +Audible +Audibly +Audience +Audio +Audition +Augmented +August +Authentic +Author +Autism +Autistic +Autograph +Automaker +Automated +Automatic +Autopilot +Available +Avalanche +Avatar +Avenge +Avenging +Avenue +Average +Aversion +Avert +Aviation +Aviator +Avid +Avoid +Await +Awaken +Award +Aware +Awhile +Awkward +Awning +Awoke +Awry +Axis +Babble +Babbling +Babied +Baboon +Backache +Backboard +Backboned +Backdrop +Backed +Backer +Backfield +Backfire +Backhand +Backing +Backlands +Backlash +Backless +Backlight +Backlit +Backlog +Backpack +Backpedal +Backrest +Backroom +Backshift +Backside +Backslid +Backspace +Backspin +Backstab +Backstage +Backtalk +Backtrack +Backup +Backward +Backwash +Backwater +Backyard +Bacon +Bacteria +Bacterium +Badass +Badge +Badland +Badly +Badness +Baffle +Baffling +Bagel +Bagful +Baggage +Bagged +Baggie +Bagginess +Bagging +Baggy +Bagpipe +Baguette +Baked +Bakery +Bakeshop +Baking +Balance +Balancing +Balcony +Balmy +Balsamic +Bamboo +Banana +Banish +Banister +Banjo +Bankable +Bankbook +Banked +Banker +Banking +Banknote +Bankroll +Banner +Bannister +Banshee +Banter +Barbecue +Barbed +Barbell +Barber +Barcode +Barge +Bargraph +Barista +Baritone +Barley +Barmaid +Barman +Barn +Barometer +Barrack +Barracuda +Barrel +Barrette +Barricade +Barrier +Barstool +Bartender +Barterer +Bash +Basically +Basics +Basil +Basin +Basis +Basket +Batboy +Batch +Bath +Baton +Bats +Battalion +Battered +Battering +Battery +Batting +Battle +Bauble +Bazooka +Blabber +Bladder +Blade +Blah +Blame +Blaming +Blanching +Blandness +Blank +Blaspheme +Blasphemy +Blast +Blatancy +Blatantly +Blazer +Blazing +Bleach +Bleak +Bleep +Blemish +Blend +Bless +Blighted +Blimp +Bling +Blinked +Blinker +Blinking +Blinks +Blip +Blissful +Blitz +Blizzard +Bloated +Bloating +Blob +Blog +Bloomers +Blooming +Blooper +Blot +Blouse +Blubber +Bluff +Bluish +Blunderer +Blunt +Blurb +Blurred +Blurry +Blurt +Blush +Blustery +Boaster +Boastful +Boasting +Boat +Bobbed +Bobbing +Bobble +Bobcat +Bobsled +Bobtail +Bodacious +Body +Bogged +Boggle +Bogus +Boil +Bok +Bolster +Bolt +Bonanza +Bonded +Bonding +Bondless +Boned +Bonehead +Boneless +Bonelike +Boney +Bonfire +Bonnet +Bonsai +Bonus +Bony +Boogeyman +Boogieman +Book +Boondocks +Booted +Booth +Bootie +Booting +Bootlace +Bootleg +Boots +Boozy +Borax +Boring +Borough +Borrower +Borrowing +Boss +Botanical +Botanist +Botany +Botch +Both +Bottle +Bottling +Bottom +Bounce +Bouncing +Bouncy +Bounding +Boundless +Bountiful +Bovine +Boxcar +Boxer +Boxing +Boxlike +Boxy +Breach +Breath +Breeches +Breeching +Breeder +Breeding +Breeze +Breezy +Brethren +Brewery +Brewing +Briar +Bribe +Brick +Bride +Bridged +Brigade +Bright +Brilliant +Brim +Bring +Brink +Brisket +Briskly +Briskness +Bristle +Brittle +Broadband +Broadcast +Broaden +Broadly +Broadness +Broadside +Broadways +Broiler +Broiling +Broken +Broker +Bronchial +Bronco +Bronze +Bronzing +Brook +Broom +Brought +Browbeat +Brownnose +Browse +Browsing +Bruising +Brunch +Brunette +Brunt +Brush +Brussels +Brute +Brutishly +Bubble +Bubbling +Bubbly +Buccaneer +Bucked +Bucket +Buckle +Buckshot +Buckskin +Bucktooth +Buckwheat +Buddhism +Buddhist +Budding +Buddy +Budget +Buffalo +Buffed +Buffer +Buffing +Buffoon +Buggy +Bulb +Bulge +Bulginess +Bulgur +Bulk +Bulldog +Bulldozer +Bullfight +Bullfrog +Bullhorn +Bullion +Bullish +Bullpen +Bullring +Bullseye +Bullwhip +Bully +Bunch +Bundle +Bungee +Bunion +Bunkbed +Bunkhouse +Bunkmate +Bunny +Bunt +Busboy +Bush +Busily +Busload +Bust +Busybody +Buzz +Cabana +Cabbage +Cabbie +Cabdriver +Cable +Caboose +Cache +Cackle +Cacti +Cactus +Caddie +Caddy +Cadet +Cadillac +Cadmium +Cage +Cahoots +Cake +Calamari +Calamity +Calcium +Calculate +Calculus +Caliber +Calibrate +Calm +Caloric +Calorie +Calzone +Camcorder +Cameo +Camera +Camisole +Camper +Campfire +Camping +Campsite +Campus +Canal +Canary +Cancel +Candied +Candle +Candy +Cane +Canine +Canister +Cannabis +Canned +Canning +Cannon +Cannot +Canola +Canon +Canopener +Canopy +Canteen +Canyon +Capable +Capably +Capacity +Cape +Capillary +Capital +Capitol +Capped +Capricorn +Capsize +Capsule +Caption +Captivate +Captive +Captivity +Capture +Caramel +Carat +Caravan +Carbon +Cardboard +Carded +Cardiac +Cardigan +Cardinal +Cardstock +Carefully +Caregiver +Careless +Caress +Caretaker +Cargo +Caring +Carless +Carload +Carmaker +Carnage +Carnation +Carnival +Carnivore +Carol +Carpenter +Carpentry +Carpool +Carport +Carried +Carrot +Carrousel +Carry +Cartel +Cartload +Carton +Cartoon +Cartridge +Cartwheel +Carve +Carving +Carwash +Cascade +Case +Cash +Casing +Casino +Casket +Cassette +Casually +Casualty +Catacomb +Catalog +Catalyst +Catalyze +Catapult +Cataract +Catatonic +Catcall +Catchable +Catcher +Catching +Catchy +Caterer +Catering +Catfight +Catfish +Cathedral +Cathouse +Catlike +Catnap +Catnip +Catsup +Cattail +Cattishly +Cattle +Catty +Catwalk +Caucasian +Caucus +Causal +Causation +Cause +Causing +Cauterize +Caution +Cautious +Cavalier +Cavalry +Caviar +Cavity +Cedar +Celery +Celestial +Celibacy +Celibate +Celtic +Cement +Census +Ceramics +Ceremony +Certainly +Certainty +Certified +Certify +Cesarean +Cesspool +Chafe +Chaffing +Chain +Chair +Chalice +Challenge +Chamber +Chamomile +Champion +Chance +Change +Channel +Chant +Chaos +Chaperone +Chaplain +Chapped +Chaps +Chapter +Character +Charbroil +Charcoal +Charger +Charging +Chariot +Charity +Charm +Charred +Charter +Charting +Chase +Chasing +Chaste +Chastise +Chastity +Chatroom +Chatter +Chatting +Chatty +Cheating +Cheddar +Cheek +Cheer +Cheese +Cheesy +Chef +Chemicals +Chemist +Chemo +Cherisher +Cherub +Chess +Chest +Chevron +Chevy +Chewable +Chewer +Chewing +Chewy +Chief +Chihuahua +Childcare +Childhood +Childish +Childless +Childlike +Chili +Chill +Chimp +Chip +Chirping +Chirpy +Chitchat +Chivalry +Chive +Chloride +Chlorine +Choice +Chokehold +Choking +Chomp +Chooser +Choosing +Choosy +Chop +Chosen +Chowder +Chowtime +Chrome +Chubby +Chuck +Chug +Chummy +Chump +Chunk +Churn +Chute +Cider +Cilantro +Cinch +Cinema +Cinnamon +Circle +Circling +Circular +Circulate +Circus +Citable +Citadel +Citation +Citizen +Citric +Citrus +City +Civic +Civil +Clad +Claim +Clambake +Clammy +Clamor +Clamp +Clamshell +Clang +Clanking +Clapped +Clapper +Clapping +Clarify +Clarinet +Clarity +Clash +Clasp +Class +Clatter +Clause +Clavicle +Claw +Clay +Clean +Clear +Cleat +Cleaver +Cleft +Clench +Clergyman +Clerical +Clerk +Clever +Clicker +Client +Climate +Climatic +Cling +Clinic +Clinking +Clip +Clique +Cloak +Clobber +Clock +Clone +Cloning +Closable +Closure +Clothes +Clothing +Cloud +Clover +Clubbed +Clubbing +Clubhouse +Clump +Clumsily +Clumsy +Clunky +Clustered +Clutch +Clutter +Coach +Coagulant +Coastal +Coaster +Coasting +Coastland +Coastline +Coat +Coauthor +Cobalt +Cobbler +Cobweb +Cocoa +Coconut +Cod +Coeditor +Coerce +Coexist +Coffee +Cofounder +Cognition +Cognitive +Cogwheel +Coherence +Coherent +Cohesive +Coil +Coke +Cola +Cold +Coleslaw +Coliseum +Collage +Collapse +Collar +Collected +Collector +Collide +Collie +Collision +Colonial +Colonist +Colonize +Colony +Colossal +Colt +Coma +Come +Comfort +Comfy +Comic +Coming +Comma +Commence +Commend +Comment +Commerce +Commode +Commodity +Commodore +Common +Commotion +Commute +Commuting +Compacted +Compacter +Compactly +Compactor +Companion +Company +Compare +Compel +Compile +Comply +Component +Composed +Composer +Composite +Compost +Composure +Compound +Compress +Comprised +Computer +Computing +Comrade +Concave +Conceal +Conceded +Concept +Concerned +Concert +Conch +Concierge +Concise +Conclude +Concrete +Concur +Condense +Condiment +Condition +Condone +Conducive +Conductor +Conduit +Cone +Confess +Confetti +Confidant +Confident +Confider +Confiding +Configure +Confined +Confining +Confirm +Conflict +Conform +Confound +Confront +Confused +Confusing +Confusion +Congenial +Congested +Congrats +Congress +Conical +Conjoined +Conjure +Conjuror +Connected +Connector +Consensus +Consent +Console +Consoling +Consonant +Constable +Constant +Constrain +Constrict +Construct +Consult +Consumer +Consuming +Contact +Container +Contempt +Contend +Contented +Contently +Contents +Contest +Context +Contort +Contour +Contrite +Control +Contusion +Convene +Convent +Copartner +Cope +Copied +Copier +Copilot +Coping +Copious +Copper +Copy +Coral +Cork +Cornball +Cornbread +Corncob +Cornea +Corned +Corner +Cornfield +Cornflake +Cornhusk +Cornmeal +Cornstalk +Corny +Coronary +Coroner +Corporal +Corporate +Corral +Correct +Corridor +Corrode +Corroding +Corrosive +Corsage +Corset +Cortex +Cosigner +Cosmetics +Cosmic +Cosmos +Cosponsor +Cost +Cottage +Cotton +Couch +Cough +Could +Countable +Countdown +Counting +Countless +Country +County +Courier +Covenant +Cover +Coveted +Coveting +Coyness +Cozily +Coziness +Cozy +Crabbing +Crabgrass +Crablike +Crabmeat +Cradle +Cradling +Crafter +Craftily +Craftsman +Craftwork +Crafty +Cramp +Cranberry +Crane +Cranial +Cranium +Crank +Crate +Crave +Craving +Crawfish +Crawlers +Crawling +Crayfish +Crayon +Crazed +Crazily +Craziness +Crazy +Creamed +Creamer +Creamlike +Crease +Creasing +Creatable +Create +Creation +Creative +Creature +Credible +Credibly +Credit +Creed +Creme +Creole +Crepe +Crept +Crescent +Crested +Cresting +Crestless +Crevice +Crewless +Crewman +Crewmate +Crib +Cricket +Cried +Crier +Crimp +Crimson +Cringe +Cringing +Crinkle +Crinkly +Crisped +Crisping +Crisply +Crispness +Crispy +Criteria +Critter +Croak +Crock +Crook +Croon +Crop +Cross +Crouch +Crouton +Crowbar +Crowd +Crown +Crucial +Crudely +Crudeness +Cruelly +Cruelness +Cruelty +Crumb +Crummiest +Crummy +Crumpet +Crumpled +Cruncher +Crunching +Crunchy +Crusader +Crushable +Crushed +Crusher +Crushing +Crust +Crux +Crying +Cryptic +Crystal +Cubbyhole +Cube +Cubical +Cubicle +Cucumber +Cuddle +Cuddly +Cufflink +Culinary +Culminate +Culpable +Culprit +Cultivate +Cultural +Culture +Cupbearer +Cupcake +Cupid +Cupped +Cupping +Curable +Curator +Curdle +Cure +Curfew +Curing +Curled +Curler +Curliness +Curling +Curly +Curry +Curse +Cursive +Cursor +Curtain +Curtly +Curtsy +Curvature +Curve +Curvy +Cushy +Cusp +Cussed +Custard +Custodian +Custody +Customary +Customer +Customize +Customs +Cut +Cycle +Cyclic +Cycling +Cyclist +Cylinder +Cymbal +Cytoplasm +Cytoplast +Dab +Dad +Daffodil +Dagger +Daily +Daintily +Dainty +Dairy +Daisy +Dallying +Dance +Dancing +Dandelion +Dander +Dandruff +Dandy +Danger +Dangle +Dangling +Daredevil +Dares +Daringly +Darkened +Darkening +Darkish +Darkness +Darkroom +Darling +Darn +Dart +Darwinism +Dash +Dastardly +Data +Datebook +Dating +Daughter +Daunting +Dawdler +Dawn +Daybed +Daybreak +Daycare +Daydream +Daylight +Daylong +Dayroom +Daytime +Dazzler +Dazzling +Deacon +Deafening +Deafness +Dealer +Dealing +Dealmaker +Dealt +Dean +Debatable +Debate +Debating +Debit +Debrief +Debtless +Debtor +Debug +Debunk +Decade +Decaf +Decal +Decathlon +Decay +Deceased +Deceit +Deceiver +Deceiving +December +Decency +Decent +Deception +Deceptive +Decibel +Decidable +Decimal +Decimeter +Decipher +Deck +Declared +Decline +Decode +Decompose +Decorated +Decorator +Decoy +Decrease +Decree +Dedicate +Dedicator +Deduce +Deduct +Deed +Deem +Deepen +Deeply +Deepness +Deface +Defacing +Defame +Default +Defeat +Defection +Defective +Defendant +Defender +Defense +Defensive +Deferral +Deferred +Defiance +Defiant +Defile +Defiling +Define +Definite +Deflate +Deflation +Deflator +Deflected +Deflector +Defog +Deforest +Defraud +Defrost +Deftly +Defuse +Defy +Degraded +Degrading +Degrease +Degree +Dehydrate +Deity +Dejected +Delay +Delegate +Delegator +Delete +Deletion +Delicacy +Delicate +Delicious +Delighted +Delirious +Delirium +Deliverer +Delivery +Delouse +Delta +Deluge +Delusion +Deluxe +Demanding +Demeaning +Demeanor +Demise +Democracy +Democrat +Demote +Demotion +Demystify +Denatured +Deniable +Denial +Denim +Denote +Dense +Density +Dental +Dentist +Denture +Deny +Deodorant +Deodorize +Departed +Departure +Depict +Deplete +Depletion +Deplored +Deploy +Deport +Depose +Depraved +Depravity +Deprecate +Depress +Deprive +Depth +Deputize +Deputy +Derail +Deranged +Derby +Derived +Desecrate +Deserve +Deserving +Designate +Designed +Designer +Designing +Deskbound +Desktop +Deskwork +Desolate +Despair +Despise +Despite +Destiny +Destitute +Destruct +Detached +Detail +Detection +Detective +Detector +Detention +Detergent +Detest +Detonate +Detonator +Detoxify +Detract +Deuce +Devalue +Deviancy +Deviant +Deviate +Deviation +Deviator +Device +Devious +Devotedly +Devotee +Devotion +Devourer +Devouring +Devoutly +Dexterity +Dexterous +Diabetes +Diabetic +Diabolic +Diagnoses +Diagnosis +Diagram +Dial +Diameter +Diaper +Diaphragm +Diary +Dice +Dicing +Dictate +Dictation +Dictator +Difficult +Diffused +Diffuser +Diffusion +Diffusive +Dig +Dilation +Diligence +Diligent +Dill +Dilute +Dime +Diminish +Dimly +Dimmed +Dimmer +Dimness +Dimple +Diner +Dingbat +Dinghy +Dinginess +Dingo +Dingy +Dining +Dinner +Diocese +Dioxide +Diploma +Dipped +Dipper +Dipping +Directed +Direction +Directive +Directly +Directory +Direness +Dirtiness +Disabled +Disagree +Disallow +Disarm +Disarray +Disaster +Disband +Disbelief +Disburse +Discard +Discern +Discharge +Disclose +Discolor +Discount +Discourse +Discover +Discuss +Disdain +Disengage +Disfigure +Disgrace +Dish +Disinfect +Disjoin +Disk +Dislike +Disliking +Dislocate +Dislodge +Disloyal +Dismantle +Dismay +Dismiss +Dismount +Disobey +Disorder +Disown +Disparate +Disparity +Dispatch +Dispense +Dispersal +Dispersed +Disperser +Displace +Display +Displease +Disposal +Dispose +Disprove +Dispute +Disregard +Disrupt +Dissuade +Distance +Distant +Distaste +Distill +Distinct +Distort +Distract +Distress +District +Distrust +Ditch +Ditto +Ditzy +Dividable +Divided +Dividend +Dividers +Dividing +Divinely +Diving +Divinity +Divisible +Divisibly +Division +Divisive +Divorcee +Dizziness +Dizzy +Doable +Docile +Dock +Doctrine +Document +Dodge +Dodgy +Doily +Doing +Dole +Dollar +Dollhouse +Dollop +Dolly +Dolphin +Domain +Domelike +Domestic +Dominion +Dominoes +Donated +Donation +Donator +Donor +Donut +Doodle +Doorbell +Doorframe +Doorknob +Doorman +Doormat +Doornail +Doorpost +Doorstep +Doorstop +Doorway +Doozy +Dork +Dormitory +Dorsal +Dosage +Dose +Dotted +Doubling +Douche +Dove +Down +Dowry +Doze +Drab +Dragging +Dragonfly +Dragonish +Dragster +Drainable +Drainage +Drained +Drainer +Drainpipe +Dramatic +Dramatize +Drank +Drapery +Drastic +Draw +Dreaded +Dreadful +Dreadlock +Dreamboat +Dreamily +Dreamland +Dreamless +Dreamlike +Dreamt +Dreamy +Drearily +Dreary +Drench +Dress +Drew +Dribble +Dried +Drier +Drift +Driller +Drilling +Drinkable +Drinking +Dripping +Drippy +Drivable +Driven +Driver +Driveway +Driving +Drizzle +Drizzly +Drone +Drool +Droop +Drop-down +Dropbox +Dropkick +Droplet +Dropout +Dropper +Drove +Drown +Drowsily +Drudge +Drum +Dry +Dubbed +Dubiously +Duchess +Duckbill +Ducking +Duckling +Ducktail +Ducky +Duct +Dude +Duffel +Dugout +Duh +Duke +Duller +Dullness +Duly +Dumping +Dumpling +Dumpster +Duo +Dupe +Duplex +Duplicate +Duplicity +Durable +Durably +Duration +Duress +During +Dusk +Dust +Dutiful +Duty +Duvet +Dwarf +Dweeb +Dwelled +Dweller +Dwelling +Dwindle +Dwindling +Dynamic +Dynamite +Dynasty +Dyslexia +Dyslexic +Each +Eagle +Earache +Eardrum +Earflap +Earful +Earlobe +Early +Earmark +Earmuff +Earphone +Earpiece +Earplugs +Earring +Earshot +Earthen +Earthlike +Earthling +Earthly +Earthworm +Earthy +Earwig +Easeful +Easel +Easiest +Easily +Easiness +Easing +Eastbound +Eastcoast +Easter +Eastward +Eatable +Eaten +Eatery +Eating +Eats +Ebay +Ebony +Ebook +Ecard +Eccentric +Echo +Eclair +Eclipse +Ecologist +Ecology +Economic +Economist +Economy +Ecosphere +Ecosystem +Edge +Edginess +Edging +Edgy +Edition +Editor +Educated +Education +Educator +Eel +Effective +Effects +Efficient +Effort +Eggbeater +Egging +Eggnog +Eggplant +Eggshell +Egomaniac +Egotism +Egotistic +Either +Eject +Elaborate +Elastic +Elated +Elbow +Eldercare +Elderly +Eldest +Electable +Election +Elective +Elephant +Elevate +Elevating +Elevation +Elevator +Eleven +Elf +Eligible +Eligibly +Eliminate +Elite +Elitism +Elixir +Elk +Ellipse +Elliptic +Elm +Elongated +Elope +Eloquence +Eloquent +Elsewhere +Elude +Elusive +Elves +Email +Embargo +Embark +Embassy +Embattled +Embellish +Ember +Embezzle +Emblaze +Emblem +Embody +Embolism +Emboss +Embroider +Emcee +Emerald +Emergency +Emission +Emit +Emote +Emoticon +Emotion +Empathic +Empathy +Emperor +Emphases +Emphasis +Emphasize +Emphatic +Empirical +Employed +Employee +Employer +Emporium +Empower +Emptier +Emptiness +Empty +Emu +Enable +Enactment +Enamel +Enchanted +Enchilada +Encircle +Enclose +Enclosure +Encode +Encore +Encounter +Encourage +Encroach +Encrust +Encrypt +Endanger +Endeared +Endearing +Ended +Ending +Endless +Endnote +Endocrine +Endorphin +Endorse +Endowment +Endpoint +Endurable +Endurance +Enduring +Energetic +Energize +Energy +Enforced +Enforcer +Engaged +Engaging +Engine +Engorge +Engraved +Engraver +Engraving +Engross +Engulf +Enhance +Enigmatic +Enjoyable +Enjoyably +Enjoyer +Enjoying +Enjoyment +Enlarged +Enlarging +Enlighten +Enlisted +Enquirer +Enrage +Enrich +Enroll +Enslave +Ensnare +Ensure +Entail +Entangled +Entering +Entertain +Enticing +Entire +Entitle +Entity +Entomb +Entourage +Entrap +Entree +Entrench +Entrust +Entryway +Entwine +Enunciate +Envelope +Enviable +Enviably +Envious +Envision +Envoy +Envy +Enzyme +Epic +Epidemic +Epidermal +Epidermis +Epidural +Epilepsy +Epileptic +Epilogue +Epiphany +Episode +Equal +Equate +Equation +Equator +Equinox +Equipment +Equity +Equivocal +Eradicate +Erasable +Erased +Eraser +Erasure +Ergonomic +Errand +Errant +Erratic +Error +Erupt +Escalate +Escalator +Escapable +Escapade +Escapist +Escargot +Eskimo +Esophagus +Espionage +Espresso +Esquire +Essay +Essence +Essential +Establish +Estate +Esteemed +Estimate +Estimator +Estranged +Estrogen +Etching +Eternal +Eternity +Ethanol +Ether +Ethically +Ethics +Euphemism +Evacuate +Evacuee +Evade +Evaluate +Evaluator +Evaporate +Evasion +Evasive +Even +Everglade +Evergreen +Everybody +Everyday +Everyone +Evict +Evidence +Evident +Evil +Evoke +Evolution +Evolve +Exact +Exalted +Example +Excavate +Excavator +Exceeding +Exception +Excess +Exchange +Excitable +Exciting +Exclaim +Exclude +Excluding +Exclusion +Exclusive +Excretion +Excretory +Excursion +Excusable +Excusably +Excuse +Exemplary +Exemplify +Exemption +Exerciser +Exert +Exes +Exfoliate +Exhale +Exhaust +Exhume +Exile +Existing +Exit +Exodus +Exonerate +Exorcism +Exorcist +Expand +Expanse +Expansion +Expansive +Expectant +Expedited +Expediter +Expel +Expend +Expenses +Expensive +Expert +Expire +Expiring +Explain +Expletive +Explicit +Explode +Exploit +Explore +Exploring +Exponent +Exporter +Exposable +Expose +Exposure +Express +Expulsion +Exquisite +Extended +Extending +Extent +Extenuate +Exterior +External +Extinct +Extortion +Extradite +Extras +Extrovert +Extrude +Extruding +Exuberant +Fable +Fabric +Fabulous +Facebook +Facecloth +Facedown +Faceless +Facelift +Faceplate +Faceted +Facial +Facility +Facing +Facsimile +Faction +Factoid +Factor +Factsheet +Factual +Faculty +Fade +Fading +Failing +Falcon +Fall +False +Falsify +Fame +Familiar +Family +Famine +Famished +Fanatic +Fancied +Fanciness +Fancy +Fanfare +Fang +Fanning +Fantasize +Fantastic +Fantasy +Fascism +Fastball +Faster +Fasting +Fastness +Faucet +Favorable +Favorably +Favored +Favoring +Favorite +Fax +Feast +Federal +Fedora +Feeble +Feed +Feel +Feisty +Feline +Felt-tip +Feminine +Feminism +Feminist +Feminize +Femur +Fence +Fencing +Fender +Ferment +Fernlike +Ferocious +Ferocity +Ferret +Ferris +Ferry +Fervor +Fester +Festival +Festive +Festivity +Fetal +Fetch +Fever +Fiber +Fiction +Fiddle +Fiddling +Fidelity +Fidgeting +Fidgety +Fifteen +Fifth +Fiftieth +Fifty +Figment +Figure +Figurine +Filing +Filled +Filler +Filling +Film +Filter +Filth +Filtrate +Finale +Finalist +Finalize +Finally +Finance +Financial +Finch +Fineness +Finer +Finicky +Finished +Finisher +Finishing +Finite +Finless +Finlike +Fiscally +Fit +Five +Flaccid +Flagman +Flagpole +Flagship +Flagstick +Flagstone +Flail +Flakily +Flaky +Flame +Flammable +Flanked +Flanking +Flannels +Flap +Flaring +Flashback +Flashbulb +Flashcard +Flashily +Flashing +Flashy +Flask +Flatbed +Flatfoot +Flatly +Flatness +Flatten +Flattered +Flatterer +Flattery +Flattop +Flatware +Flatworm +Flavored +Flavorful +Flavoring +Flaxseed +Fled +Fleshed +Fleshy +Flick +Flier +Flight +Flinch +Fling +Flint +Flip +Flirt +Float +Flock +Flogging +Flop +Floral +Florist +Floss +Flounder +Flyable +Flyaway +Flyer +Flying +Flyover +Flypaper +Foam +Foe +Fog +Foil +Folic +Folk +Follicle +Follow +Fondling +Fondly +Fondness +Fondue +Font +Food +Fool +Footage +Football +Footbath +Footboard +Footer +Footgear +Foothill +Foothold +Footing +Footless +Footman +Footnote +Footpad +Footpath +Footprint +Footrest +Footsie +Footsore +Footwear +Footwork +Fossil +Foster +Founder +Founding +Fountain +Fox +Foyer +Fraction +Fracture +Fragile +Fragility +Fragment +Fragrance +Fragrant +Frail +Frame +Framing +Frantic +Fraternal +Frayed +Fraying +Frays +Freckled +Freckles +Freebase +Freebee +Freebie +Freedom +Freefall +Freehand +Freeing +Freeload +Freely +Freemason +Freeness +Freestyle +Freeware +Freeway +Freewill +Freezable +Freezing +Freight +French +Frenzied +Frenzy +Frequency +Frequent +Fresh +Fretful +Fretted +Friction +Friday +Fridge +Fried +Friend +Frighten +Frightful +Frigidity +Frigidly +Frill +Fringe +Frisbee +Frisk +Fritter +Frivolous +Frolic +From +Front +Frostbite +Frosted +Frostily +Frosting +Frostlike +Frosty +Froth +Frown +Frozen +Fructose +Frugality +Frugally +Fruit +Frustrate +Frying +Gab +Gaffe +Gag +Gainfully +Gaining +Gains +Gala +Gallantly +Galleria +Gallery +Galley +Gallon +Gallows +Gallstone +Galore +Galvanize +Gambling +Game +Gaming +Gamma +Gander +Gangly +Gangrene +Gangway +Gap +Garage +Garbage +Garden +Gargle +Garland +Garlic +Garment +Garnet +Garnish +Garter +Gas +Gatherer +Gathering +Gating +Gauging +Gauntlet +Gauze +Gave +Gawk +Gazing +Gear +Gecko +Geek +Geiger +Gem +Gender +Generic +Generous +Genetics +Genre +Gentile +Gentleman +Gently +Gents +Geography +Geologic +Geologist +Geology +Geometric +Geometry +Geranium +Gerbil +Geriatric +Germicide +Germinate +Germless +Germproof +Gestate +Gestation +Gesture +Getaway +Getting +Getup +Giant +Gibberish +Giblet +Giddily +Giddiness +Giddy +Gift +Gigabyte +Gigahertz +Gigantic +Giggle +Giggling +Giggly +Gigolo +Gilled +Gills +Gimmick +Girdle +Giveaway +Given +Giver +Giving +Gizmo +Gizzard +Glacial +Glacier +Glade +Gladiator +Gladly +Glamorous +Glamour +Glance +Glancing +Glandular +Glare +Glaring +Glass +Glaucoma +Glazing +Gleaming +Gleeful +Glider +Gliding +Glimmer +Glimpse +Glisten +Glitch +Glitter +Glitzy +Gloater +Gloating +Gloomily +Gloomy +Glorified +Glorifier +Glorify +Glorious +Glory +Gloss +Glove +Glowing +Glowworm +Glucose +Glue +Gluten +Glutinous +Glutton +Gnarly +Gnat +Goal +Goatskin +Goes +Goggles +Going +Goldfish +Goldmine +Goldsmith +Golf +Goliath +Gonad +Gondola +Gone +Gong +Good +Gooey +Goofball +Goofiness +Goofy +Google +Goon +Gopher +Gore +Gorged +Gorgeous +Gory +Gosling +Gossip +Gothic +Gotten +Gout +Gown +Grab +Graceful +Graceless +Gracious +Gradation +Graded +Grader +Gradient +Grading +Gradually +Graduate +Graffiti +Grafted +Grafting +Grain +Granddad +Grandkid +Grandly +Grandma +Grandpa +Grandson +Granite +Granny +Granola +Grant +Granular +Grape +Graph +Grapple +Grappling +Grasp +Grass +Gratified +Gratify +Grating +Gratitude +Gratuity +Gravel +Graveness +Graves +Graveyard +Gravitate +Gravity +Gravy +Gray +Grazing +Greasily +Greedily +Greedless +Greedy +Green +Greeter +Greeting +Grew +Greyhound +Grid +Grief +Grievance +Grieving +Grievous +Grill +Grimace +Grimacing +Grime +Griminess +Grimy +Grinch +Grinning +Grip +Gristle +Grit +Groggily +Groggy +Groin +Groom +Groove +Grooving +Groovy +Grope +Ground +Grouped +Grout +Grove +Grower +Growing +Growl +Grub +Grudge +Grudging +Grueling +Gruffly +Grumble +Grumbling +Grumbly +Grumpily +Grunge +Grunt +Guacamole +Guidable +Guidance +Guide +Guiding +Guileless +Guise +Gulf +Gullible +Gully +Gulp +Gumball +Gumdrop +Gumminess +Gumming +Gummy +Gurgle +Gurgling +Guru +Gush +Gusto +Gusty +Gutless +Guts +Gutter +Guy +Guzzler +Gyration +Habitable +Habitant +Habitat +Habitual +Hacked +Hacker +Hacking +Hacksaw +Had +Haggler +Haiku +Half +Halogen +Halt +Halved +Halves +Hamburger +Hamlet +Hammock +Hamper +Hamster +Hamstring +Handbag +Handball +Handbook +Handbrake +Handcart +Handclap +Handclasp +Handcraft +Handcuff +Handed +Handful +Handgrip +Handgun +Handheld +Handiness +Handiwork +Handlebar +Handled +Handler +Handling +Handmade +Handoff +Handpick +Handprint +Handrail +Handsaw +Handset +Handsfree +Handshake +Handstand +Handwash +Handwork +Handwoven +Handwrite +Handyman +Hangnail +Hangout +Hangover +Hangup +Hankering +Hankie +Hanky +Haphazard +Happening +Happier +Happiest +Happily +Happiness +Happy +Harbor +Hardcopy +Hardcore +Hardcover +Harddisk +Hardened +Hardener +Hardening +Hardhat +Hardhead +Hardiness +Hardly +Hardness +Hardship +Hardware +Hardwired +Hardwood +Hardy +Harmful +Harmless +Harmonica +Harmonics +Harmonize +Harmony +Harness +Harpist +Harsh +Harvest +Hash +Hassle +Haste +Hastily +Hastiness +Hasty +Hatbox +Hatchback +Hatchery +Hatchet +Hatching +Hatchling +Hate +Hatless +Hatred +Haunt +Haven +Hazard +Hazelnut +Hazily +Haziness +Hazing +Hazy +Headache +Headband +Headboard +Headcount +Headdress +Headed +Header +Headfirst +Headgear +Heading +Headlamp +Headless +Headlock +Headphone +Headpiece +Headrest +Headroom +Headscarf +Headset +Headsman +Headstand +Headstone +Headway +Headwear +Heap +Heat +Heave +Heavily +Heaviness +Heaving +Hedge +Hedging +Heftiness +Hefty +Helium +Helmet +Helper +Helpful +Helping +Helpless +Helpline +Hemlock +Hemstitch +Hence +Henchman +Henna +Herald +Herbal +Herbicide +Herbs +Heritage +Hermit +Heroics +Heroism +Herring +Herself +Hertz +Hesitancy +Hesitant +Hesitate +Hexagon +Hexagram +Hubcap +Huddle +Huddling +Huff +Hug +Hula +Hulk +Hull +Human +Humble +Humbling +Humbly +Humid +Humiliate +Humility +Humming +Hummus +Humongous +Humorist +Humorless +Humorous +Humpback +Humped +Humvee +Hunchback +Hundredth +Hunger +Hungrily +Hungry +Hunk +Hunter +Hunting +Huntress +Huntsman +Hurdle +Hurled +Hurler +Hurling +Hurray +Hurricane +Hurried +Hurry +Hurt +Husband +Hush +Husked +Huskiness +Hut +Hybrid +Hydrant +Hydrated +Hydration +Hydrogen +Hydroxide +Hyperlink +Hypertext +Hyphen +Hypnoses +Hypnosis +Hypnotic +Hypnotism +Hypnotist +Hypnotize +Hypocrisy +Hypocrite +Ibuprofen +Ice +Iciness +Icing +Icky +Icon +Icy +Idealism +Idealist +Idealize +Ideally +Idealness +Identical +Identify +Identity +Ideology +Idiocy +Idiom +Idly +Igloo +Ignition +Ignore +Iguana +Illicitly +Illusion +Illusive +Image +Imaginary +Imagines +Imaging +Imbecile +Imitate +Imitation +Immature +Immerse +Immersion +Imminent +Immobile +Immodest +Immorally +Immortal +Immovable +Immovably +Immunity +Immunize +Impaired +Impale +Impart +Impatient +Impeach +Impeding +Impending +Imperfect +Imperial +Impish +Implant +Implement +Implicate +Implicit +Implode +Implosion +Implosive +Imply +Impolite +Important +Importer +Impose +Imposing +Impotence +Impotency +Impotent +Impound +Imprecise +Imprint +Imprison +Impromptu +Improper +Improve +Improving +Improvise +Imprudent +Impulse +Impulsive +Impure +Impurity +Iodine +Iodize +Ion +Ipad +Iphone +Ipod +Irate +Irk +Iron +Irregular +Irrigate +Irritable +Irritably +Irritant +Irritate +Islamic +Islamist +Isolated +Isolating +Isolation +Isotope +Issue +Issuing +Italicize +Italics +Item +Itinerary +Itunes +Ivory +Ivy +Jab +Jackal +Jacket +Jackknife +Jackpot +Jailbird +Jailbreak +Jailer +Jailhouse +Jalapeno +Jam +Janitor +January +Jargon +Jarring +Jasmine +Jaundice +Jaunt +Java +Jawed +Jawless +Jawline +Jaws +Jaybird +Jaywalker +Jazz +Jeep +Jeeringly +Jellied +Jelly +Jersey +Jester +Jet +Jiffy +Jigsaw +Jimmy +Jingle +Jingling +Jinx +Jitters +Jittery +Job +Jockey +Jockstrap +Jogger +Jogging +John +Joining +Jokester +Jokingly +Jolliness +Jolly +Jolt +Jot +Jovial +Joyfully +Joylessly +Joyous +Joyride +Joystick +Jubilance +Jubilant +Judge +Judgingly +Judicial +Judiciary +Judo +Juggle +Juggling +Jugular +Juice +Juiciness +Juicy +Jujitsu +Jukebox +July +Jumble +Jumbo +Jump +Junction +Juncture +June +Junior +Juniper +Junkie +Junkman +Junkyard +Jurist +Juror +Jury +Justice +Justifier +Justify +Justly +Justness +Juvenile +Kabob +Kangaroo +Karaoke +Karate +Karma +Kebab +Keenly +Keenness +Keep +Keg +Kelp +Kennel +Kept +Kerchief +Kerosene +Kettle +Kick +Kiln +Kilobyte +Kilogram +Kilometer +Kilowatt +Kilt +Kimono +Kindle +Kindling +Kindly +Kindness +Kindred +Kinetic +Kinfolk +King +Kinship +Kinsman +Kinswoman +Kissable +Kisser +Kissing +Kitchen +Kite +Kitten +Kitty +Kiwi +Kleenex +Knapsack +Knee +Knelt +Knickers +Knoll +Koala +Kooky +Kosher +Krypton +Kudos +Kung +Labored +Laborer +Laboring +Laborious +Labrador +Ladder +Ladies +Ladle +Ladybug +Ladylike +Lagged +Lagging +Lagoon +Lair +Lake +Lance +Landed +Landfall +Landfill +Landing +Landlady +Landless +Landline +Landlord +Landmark +Landmass +Landmine +Landowner +Landscape +Landside +Landslide +Language +Lankiness +Lanky +Lantern +Lapdog +Lapel +Lapped +Lapping +Laptop +Lard +Large +Lark +Lash +Lasso +Last +Latch +Late +Lather +Latitude +Latrine +Latter +Latticed +Launch +Launder +Laundry +Laurel +Lavender +Lavish +Laxative +Lazily +Laziness +Lazy +Lecturer +Left +Legacy +Legal +Legend +Legged +Leggings +Legible +Legibly +Legislate +Lego +Legroom +Legume +Legwarmer +Legwork +Lemon +Lend +Length +Lens +Lent +Leotard +Lesser +Letdown +Lethargic +Lethargy +Letter +Lettuce +Level +Leverage +Levers +Levitate +Levitator +Liability +Liable +Liberty +Librarian +Library +Licking +Licorice +Lid +Life +Lifter +Lifting +Liftoff +Ligament +Likely +Likeness +Likewise +Liking +Lilac +Lilly +Lily +Limb +Limeade +Limelight +Limes +Limit +Limping +Limpness +Line +Lingo +Linguini +Linguist +Lining +Linked +Linoleum +Linseed +Lint +Lion +Lip +Liquefy +Liqueur +Liquid +Lisp +List +Litigate +Litigator +Litmus +Litter +Little +Livable +Lived +Lively +Liver +Livestock +Lividly +Living +Lizard +Lubricant +Lubricate +Lucid +Luckily +Luckiness +Luckless +Lucrative +Ludicrous +Lugged +Lukewarm +Lullaby +Lumber +Luminance +Luminous +Lumpiness +Lumping +Lumpish +Lunacy +Lunar +Lunchbox +Luncheon +Lunchroom +Lunchtime +Lung +Lurch +Lure +Luridness +Lurk +Lushly +Lushness +Luster +Lustfully +Lustily +Lustiness +Lustrous +Lusty +Luxurious +Luxury +Lying +Lyrically +Lyricism +Lyricist +Lyrics +Macarena +Macaroni +Macaw +Mace +Machine +Machinist +Magazine +Magenta +Maggot +Magical +Magician +Magma +Magnesium +Magnetic +Magnetism +Magnetize +Magnifier +Magnify +Magnitude +Magnolia +Mahogany +Maimed +Majestic +Majesty +Majorette +Majority +Makeover +Maker +Makeshift +Making +Malformed +Malt +Mama +Mammal +Mammary +Mammogram +Manager +Managing +Manatee +Mandarin +Mandate +Mandatory +Mandolin +Manger +Mangle +Mango +Mangy +Manhandle +Manhole +Manhood +Manhunt +Manicotti +Manicure +Manifesto +Manila +Mankind +Manlike +Manliness +Manly +Manmade +Manned +Mannish +Manor +Manpower +Mantis +Mantra +Manual +Many +Map +Marathon +Marauding +Marbled +Marbles +Marbling +March +Mardi +Margarine +Margarita +Margin +Marigold +Marina +Marine +Marital +Maritime +Marlin +Marmalade +Maroon +Married +Marrow +Marry +Marshland +Marshy +Marsupial +Marvelous +Marxism +Mascot +Masculine +Mashed +Mashing +Massager +Masses +Massive +Mastiff +Matador +Matchbook +Matchbox +Matcher +Matching +Matchless +Material +Maternal +Maternity +Math +Mating +Matriarch +Matrimony +Matrix +Matron +Matted +Matter +Maturely +Maturing +Maturity +Mauve +Maverick +Maximize +Maximum +Maybe +Mayday +Mayflower +Moaner +Moaning +Mobile +Mobility +Mobilize +Mobster +Mocha +Mocker +Mockup +Modified +Modify +Modular +Modulator +Module +Moisten +Moistness +Moisture +Molar +Molasses +Mold +Molecular +Molecule +Molehill +Mollusk +Mom +Monastery +Monday +Monetary +Monetize +Moneybags +Moneyless +Moneywise +Mongoose +Mongrel +Monitor +Monkhood +Monogamy +Monogram +Monologue +Monopoly +Monorail +Monotone +Monotype +Monoxide +Monsieur +Monsoon +Monstrous +Monthly +Monument +Moocher +Moodiness +Moody +Mooing +Moonbeam +Mooned +Moonlight +Moonlike +Moonlit +Moonrise +Moonscape +Moonshine +Moonstone +Moonwalk +Mop +Morale +Morality +Morally +Morbidity +Morbidly +Morphine +Morphing +Morse +Mortality +Mortally +Mortician +Mortified +Mortify +Mortuary +Mosaic +Mossy +Most +Mothball +Mothproof +Motion +Motivate +Motivator +Motive +Motocross +Motor +Motto +Mountable +Mountain +Mounted +Mounting +Mourner +Mournful +Mouse +Mousiness +Moustache +Mousy +Mouth +Movable +Move +Movie +Moving +Mower +Mowing +Much +Muck +Mud +Mug +Mulberry +Mulch +Mule +Mulled +Mullets +Multiple +Multiply +Multitask +Multitude +Mumble +Mumbling +Mumbo +Mummified +Mummify +Mummy +Mumps +Munchkin +Mundane +Municipal +Muppet +Mural +Murkiness +Murky +Murmuring +Muscular +Museum +Mushily +Mushiness +Mushroom +Mushy +Music +Musket +Muskiness +Musky +Mustang +Mustard +Muster +Mustiness +Musty +Mutable +Mutate +Mutation +Mute +Mutilated +Mutilator +Mutiny +Mutt +Mutual +Muzzle +Myself +Myspace +Mystified +Mystify +Myth +Nacho +Nag +Nail +Name +Naming +Nanny +Nanometer +Nape +Napkin +Napped +Napping +Nappy +Narrow +Nastily +Nastiness +National +Native +Nativity +Natural +Nature +Naturist +Nautical +Navigate +Navigator +Navy +Nearby +Nearest +Nearly +Nearness +Neatly +Neatness +Nebula +Nebulizer +Nectar +Negate +Negation +Negative +Neglector +Negligee +Negligent +Negotiate +Nemeses +Nemesis +Neon +Nephew +Nerd +Nervous +Nervy +Nest +Net +Neurology +Neuron +Neurosis +Neurotic +Neuter +Neutron +Never +Next +Nibble +Nickname +Nicotine +Niece +Nifty +Nimble +Nimbly +Nineteen +Ninetieth +Ninja +Nintendo +Ninth +Nuclear +Nuclei +Nucleus +Nugget +Nullify +Number +Numbing +Numbly +Numbness +Numeral +Numerate +Numerator +Numeric +Numerous +Nuptials +Nursery +Nursing +Nurture +Nutcase +Nutlike +Nutmeg +Nutrient +Nutshell +Nuttiness +Nutty +Nuzzle +Nylon +Oaf +Oak +Oasis +Oat +Obedience +Obedient +Obituary +Object +Obligate +Obliged +Oblivion +Oblivious +Oblong +Obnoxious +Oboe +Obscure +Obscurity +Observant +Observer +Observing +Obsessed +Obsession +Obsessive +Obsolete +Obstacle +Obstinate +Obstruct +Obtain +Obtrusive +Obtuse +Obvious +Occultist +Occupancy +Occupant +Occupier +Occupy +Ocean +Ocelot +Octagon +Octane +October +Octopus +Ogle +Oil +Oink +Ointment +Okay +Old +Olive +Olympics +Omega +Omen +Ominous +Omission +Omit +Omnivore +Onboard +Oncoming +Ongoing +Onion +Online +Onlooker +Only +Onscreen +Onset +Onshore +Onslaught +Onstage +Onto +Onward +Onyx +Oops +Ooze +Oozy +Opacity +Opal +Open +Operable +Operate +Operating +Operation +Operative +Operator +Opium +Opossum +Opponent +Oppose +Opposing +Opposite +Oppressed +Oppressor +Opt +Opulently +Osmosis +Other +Otter +Ouch +Ought +Ounce +Outage +Outback +Outbid +Outboard +Outbound +Outbreak +Outburst +Outcast +Outclass +Outcome +Outdated +Outdoors +Outer +Outfield +Outfit +Outflank +Outgoing +Outgrow +Outhouse +Outing +Outlast +Outlet +Outline +Outlook +Outlying +Outmatch +Outmost +Outnumber +Outplayed +Outpost +Outpour +Output +Outrage +Outrank +Outreach +Outright +Outscore +Outsell +Outshine +Outshoot +Outsider +Outskirts +Outsmart +Outsource +Outspoken +Outtakes +Outthink +Outward +Outweigh +Outwit +Oval +Ovary +Oven +Overact +Overall +Overarch +Overbid +Overbill +Overbite +Overblown +Overboard +Overbook +Overbuilt +Overcast +Overcoat +Overcome +Overcook +Overcrowd +Overdraft +Overdrawn +Overdress +Overdrive +Overdue +Overeager +Overeater +Overexert +Overfed +Overfeed +Overfill +Overflow +Overfull +Overgrown +Overhand +Overhang +Overhaul +Overhead +Overhear +Overheat +Overhung +Overjoyed +Overkill +Overlabor +Overlaid +Overlap +Overlay +Overload +Overlook +Overlord +Overlying +Overnight +Overpass +Overpay +Overplant +Overplay +Overpower +Overprice +Overrate +Overreach +Overreact +Override +Overripe +Overrule +Overrun +Overshoot +Overshot +Oversight +Oversized +Oversleep +Oversold +Overspend +Overstate +Overstay +Overstep +Overstock +Overstuff +Oversweet +Overtake +Overthrow +Overtime +Overtly +Overtone +Overture +Overturn +Overuse +Overvalue +Overview +Overwrite +Owl +Oxford +Oxidant +Oxidation +Oxidize +Oxidizing +Oxygen +Oxymoron +Oyster +Ozone +Paced +Pacemaker +Pacific +Pacifier +Pacifism +Pacifist +Pacify +Padded +Padding +Paddle +Paddling +Padlock +Pagan +Pager +Paging +Pajamas +Palace +Palatable +Palm +Palpable +Palpitate +Paltry +Pampered +Pamperer +Pampers +Pamphlet +Panama +Pancake +Pancreas +Panda +Pandemic +Pang +Panhandle +Panic +Panning +Panorama +Panoramic +Panther +Pantomime +Pantry +Pants +Pantyhose +Paparazzi +Papaya +Paper +Paprika +Papyrus +Parabola +Parachute +Parade +Paradox +Paragraph +Parakeet +Paralegal +Paralyses +Paralysis +Paralyze +Paramedic +Parameter +Paramount +Parasail +Parasite +Parasitic +Parcel +Parched +Parchment +Pardon +Parish +Parka +Parking +Parkway +Parlor +Parmesan +Parole +Parrot +Parsley +Parsnip +Partake +Parted +Parting +Partition +Partly +Partner +Partridge +Party +Passable +Passably +Passage +Passcode +Passenger +Passerby +Passing +Passion +Passive +Passivism +Passover +Passport +Password +Pasta +Pasted +Pastel +Pastime +Pastor +Pastrami +Pasture +Pasty +Patchwork +Patchy +Paternal +Paternity +Path +Patience +Patient +Patio +Patriarch +Patriot +Patrol +Patronage +Patronize +Pauper +Pavement +Paver +Pavestone +Pavilion +Paving +Pawing +Payable +Payback +Paycheck +Payday +Payee +Payer +Paying +Payment +Payphone +Payroll +Pebble +Pebbly +Pecan +Pectin +Peculiar +Peddling +Pediatric +Pedicure +Pedigree +Pedometer +Pegboard +Pelican +Pellet +Pelt +Pelvis +Penalize +Penalty +Pencil +Pendant +Pending +Penholder +Penknife +Pennant +Penniless +Penny +Penpal +Pension +Pentagon +Pentagram +Pep +Perceive +Percent +Perch +Percolate +Perennial +Perfected +Perfectly +Perfume +Periscope +Perish +Perjurer +Perjury +Perkiness +Perky +Perm +Peroxide +Perpetual +Perplexed +Persecute +Persevere +Persuaded +Persuader +Pesky +Peso +Pessimism +Pessimist +Pester +Pesticide +Petal +Petite +Petition +Petri +Petroleum +Petted +Petticoat +Pettiness +Petty +Petunia +Phantom +Phobia +Phoenix +Phonebook +Phoney +Phonics +Phoniness +Phony +Phosphate +Photo +Phrase +Phrasing +Placard +Placate +Placidly +Plank +Planner +Plant +Plasma +Plaster +Plastic +Plated +Platform +Plating +Platinum +Platonic +Platter +Platypus +Plausible +Plausibly +Playable +Playback +Player +Playful +Playgroup +Playhouse +Playing +Playlist +Playmaker +Playmate +Playoff +Playpen +Playroom +Playset +Plaything +Playtime +Plaza +Pleading +Pleat +Pledge +Plentiful +Plenty +Plethora +Plexiglas +Pliable +Plod +Plop +Plot +Plow +Ploy +Pluck +Plug +Plunder +Plunging +Plural +Plus +Plutonium +Plywood +Poach +Pod +Poem +Poet +Pogo +Pointed +Pointer +Pointing +Pointless +Pointy +Poise +Poison +Poker +Poking +Polar +Police +Policy +Polio +Polish +Politely +Polka +Polo +Polyester +Polygon +Polygraph +Polymer +Poncho +Pond +Pony +Popcorn +Pope +Poplar +Popper +Poppy +Popsicle +Populace +Popular +Populate +Porcupine +Pork +Porous +Porridge +Portable +Portal +Portfolio +Porthole +Portion +Portly +Portside +Poser +Posh +Posing +Possible +Possibly +Possum +Postage +Postal +Postbox +Postcard +Posted +Poster +Posting +Postnasal +Posture +Postwar +Pouch +Pounce +Pouncing +Pound +Pouring +Pout +Powdered +Powdering +Powdery +Power +Powwow +Pox +Praising +Prance +Prancing +Pranker +Prankish +Prankster +Prayer +Praying +Preacher +Preaching +Preachy +Preamble +Precinct +Precise +Precision +Precook +Precut +Predator +Predefine +Predict +Preface +Prefix +Preflight +Preformed +Pregame +Pregnancy +Pregnant +Preheated +Prelaunch +Prelaw +Prelude +Premiere +Premises +Premium +Prenatal +Preoccupy +Preorder +Prepaid +Prepay +Preplan +Preppy +Preschool +Prescribe +Preseason +Preset +Preshow +President +Presoak +Press +Presume +Presuming +Preteen +Pretended +Pretender +Pretense +Pretext +Pretty +Pretzel +Prevail +Prevalent +Prevent +Preview +Previous +Prewar +Prewashed +Prideful +Pried +Primal +Primarily +Primary +Primate +Primer +Primp +Princess +Print +Prior +Prism +Prison +Prissy +Pristine +Privacy +Private +Privatize +Prize +Proactive +Probable +Probably +Probation +Probe +Probing +Probiotic +Problem +Procedure +Process +Proclaim +Procreate +Procurer +Prodigal +Prodigy +Produce +Product +Profane +Profanity +Professed +Professor +Profile +Profound +Profusely +Progeny +Prognosis +Program +Progress +Projector +Prologue +Prolonged +Promenade +Prominent +Promoter +Promotion +Prompter +Promptly +Prone +Prong +Pronounce +Pronto +Proofing +Proofread +Proofs +Propeller +Properly +Property +Proponent +Proposal +Propose +Props +Prorate +Protector +Protegee +Proton +Prototype +Protozoan +Protract +Protrude +Proud +Provable +Proved +Proven +Provided +Provider +Providing +Province +Proving +Provoke +Provoking +Provolone +Prowess +Prowler +Prowling +Proximity +Proxy +Prozac +Prude +Prudishly +Prune +Pruning +Pry +Psychic +Public +Publisher +Pucker +Pueblo +Pug +Pull +Pulmonary +Pulp +Pulsate +Pulse +Pulverize +Puma +Pumice +Pummel +Punch +Punctual +Punctuate +Punctured +Pungent +Punisher +Punk +Pupil +Puppet +Puppy +Purchase +Pureblood +Purebred +Purely +Pureness +Purgatory +Purge +Purging +Purifier +Purify +Purist +Puritan +Purity +Purple +Purplish +Purposely +Purr +Purse +Pursuable +Pursuant +Pursuit +Purveyor +Pushcart +Pushchair +Pusher +Pushiness +Pushing +Pushover +Pushpin +Pushup +Pushy +Putdown +Putt +Puzzle +Puzzling +Pyramid +Pyromania +Python +Quack +Quadrant +Quail +Quaintly +Quake +Quaking +Qualified +Qualifier +Qualify +Quality +Qualm +Quantum +Quarrel +Quarry +Quartered +Quarterly +Quarters +Quartet +Quench +Query +Quicken +Quickly +Quickness +Quicksand +Quickstep +Quiet +Quill +Quilt +Quintet +Quintuple +Quirk +Quit +Quiver +Quizzical +Quotable +Quotation +Quote +Rabid +Race +Racing +Racism +Rack +Racoon +Radar +Radial +Radiance +Radiantly +Radiated +Radiation +Radiator +Radio +Radish +Raffle +Raft +Rage +Ragged +Raging +Ragweed +Raider +Railcar +Railing +Railroad +Railway +Raisin +Rake +Raking +Rally +Ramble +Rambling +Ramp +Ramrod +Ranch +Rancidity +Random +Ranged +Ranger +Ranging +Ranked +Ranking +Ransack +Ranting +Rants +Rare +Rarity +Rascal +Rash +Rasping +Ravage +Raven +Ravine +Raving +Ravioli +Ravishing +Reabsorb +Reach +Reacquire +Reaction +Reactive +Reactor +Reaffirm +Ream +Reanalyze +Reappear +Reapply +Reappoint +Reapprove +Rearrange +Rearview +Reason +Reassign +Reassure +Reattach +Reawake +Rebalance +Rebate +Rebel +Rebirth +Reboot +Reborn +Rebound +Rebuff +Rebuild +Rebuilt +Reburial +Rebuttal +Recall +Recant +Recapture +Recast +Recede +Recent +Recess +Recharger +Recipient +Recital +Recite +Reckless +Reclaim +Recliner +Reclining +Recluse +Reclusive +Recognize +Recoil +Recollect +Recolor +Reconcile +Reconfirm +Reconvene +Recopy +Record +Recount +Recoup +Recovery +Recreate +Rectal +Rectangle +Rectified +Rectify +Recycled +Recycler +Recycling +Reemerge +Reenact +Reenter +Reentry +Reexamine +Referable +Referee +Reference +Refill +Refinance +Refined +Refinery +Refining +Refinish +Reflected +Reflector +Reflex +Reflux +Refocus +Refold +Reforest +Reformat +Reformed +Reformer +Reformist +Refract +Refrain +Refreeze +Refresh +Refried +Refueling +Refund +Refurbish +Refurnish +Refusal +Refuse +Refusing +Refutable +Refute +Regain +Regalia +Regally +Reggae +Regime +Region +Register +Registrar +Registry +Regress +Regretful +Regroup +Regular +Regulate +Regulator +Rehab +Reheat +Rehire +Rehydrate +Reimburse +Reissue +Reiterate +Rejoice +Rejoicing +Rejoin +Rekindle +Relapse +Relapsing +Relatable +Related +Relation +Relative +Relax +Relay +Relearn +Release +Relenting +Reliable +Reliably +Reliance +Reliant +Relic +Relieve +Relieving +Relight +Relish +Relive +Reload +Relocate +Relock +Reluctant +Rely +Remake +Remark +Remarry +Rematch +Remedial +Remedy +Remember +Reminder +Remindful +Remission +Remix +Remnant +Remodeler +Remold +Remorse +Remote +Removable +Removal +Removed +Remover +Removing +Rename +Renderer +Rendering +Rendition +Renegade +Renewable +Renewably +Renewal +Renewed +Renounce +Renovate +Renovator +Rentable +Rental +Rented +Renter +Reoccupy +Reoccur +Reopen +Reorder +Repackage +Repacking +Repaint +Repair +Repave +Repaying +Repayment +Repeal +Repeated +Repeater +Repent +Rephrase +Replace +Replay +Replica +Reply +Reporter +Repose +Repossess +Repost +Repressed +Reprimand +Reprint +Reprise +Reproach +Reprocess +Reproduce +Reprogram +Reps +Reptile +Reptilian +Repugnant +Repulsion +Repulsive +Repurpose +Reputable +Reputably +Request +Require +Requisite +Reroute +Rerun +Resale +Resample +Rescuer +Reseal +Research +Reselect +Reseller +Resemble +Resend +Resent +Reset +Reshape +Reshoot +Reshuffle +Residence +Residency +Resident +Residual +Residue +Resigned +Resilient +Resistant +Resisting +Resize +Resolute +Resolved +Resonant +Resonate +Resort +Resource +Respect +Resubmit +Result +Resume +Resupply +Resurface +Resurrect +Retail +Retainer +Retaining +Retake +Retaliate +Retention +Rethink +Retinal +Retired +Retiree +Retiring +Retold +Retool +Retorted +Retouch +Retrace +Retract +Retrain +Retread +Retreat +Retrial +Retrieval +Retriever +Retry +Return +Retying +Retype +Reunion +Reunite +Reusable +Reuse +Reveal +Reveler +Revenge +Revenue +Reverb +Revered +Reverence +Reverend +Reversal +Reverse +Reversing +Reversion +Revert +Revisable +Revise +Revision +Revisit +Revivable +Revival +Reviver +Reviving +Revocable +Revoke +Revolt +Revolver +Revolving +Reward +Rewash +Rewind +Rewire +Reword +Rework +Rewrap +Rewrite +Rhyme +Ribbon +Ribcage +Rice +Riches +Richly +Richness +Rickety +Ricotta +Riddance +Ridden +Ride +Riding +Rifling +Rift +Rigging +Rigid +Rigor +Rimless +Rimmed +Rind +Rink +Rinse +Rinsing +Riot +Ripcord +Ripeness +Ripening +Ripping +Ripple +Rippling +Riptide +Rise +Rising +Risk +Risotto +Ritalin +Ritzy +Rival +Riverbank +Riverbed +Riverboat +Riverside +Riveter +Riveting +Roamer +Roaming +Roast +Robbing +Robe +Robin +Robotics +Robust +Rockband +Rocker +Rocket +Rockfish +Rockiness +Rocking +Rocklike +Rockslide +Rockstar +Rocky +Rogue +Roman +Romp +Rope +Roping +Roster +Rosy +Rotten +Rotting +Rotunda +Roulette +Rounding +Roundish +Roundness +Roundup +Roundworm +Routine +Routing +Rover +Roving +Royal +Rubbed +Rubber +Rubbing +Rubble +Rubdown +Ruby +Ruckus +Rudder +Rug +Ruined +Rule +Rumble +Rumbling +Rummage +Rumor +Runaround +Rundown +Runner +Running +Runny +Runt +Runway +Rupture +Rural +Ruse +Rush +Rust +Rut +Sabbath +Sabotage +Sacrament +Sacred +Sacrifice +Sadden +Saddlebag +Saddled +Saddling +Sadly +Sadness +Safari +Safeguard +Safehouse +Safely +Safeness +Saffron +Saga +Sage +Sagging +Saggy +Said +Saint +Sake +Salad +Salami +Salaried +Salary +Saline +Salon +Saloon +Salsa +Salt +Salutary +Salute +Salvage +Salvaging +Salvation +Same +Sample +Sampling +Sanction +Sanctity +Sanctuary +Sandal +Sandbag +Sandbank +Sandbar +Sandblast +Sandbox +Sanded +Sandfish +Sanding +Sandlot +Sandpaper +Sandpit +Sandstone +Sandstorm +Sandworm +Sandy +Sanitary +Sanitizer +Sank +Santa +Sapling +Sappiness +Sappy +Sarcasm +Sarcastic +Sardine +Sash +Sasquatch +Sassy +Satchel +Satiable +Satin +Satirical +Satisfied +Satisfy +Saturate +Saturday +Sauciness +Saucy +Sauna +Savage +Savanna +Saved +Savings +Savior +Savor +Saxophone +Say +Scabbed +Scabby +Scalded +Scalding +Scale +Scaling +Scallion +Scallop +Scalping +Scam +Scandal +Scanner +Scanning +Scant +Scapegoat +Scarce +Scarcity +Scarecrow +Scared +Scarf +Scarily +Scariness +Scarring +Scary +Scavenger +Scenic +Schedule +Schematic +Scheme +Scheming +Schilling +Schnapps +Scholar +Science +Scientist +Scion +Scoff +Scolding +Scone +Scoop +Scooter +Scope +Scorch +Scorebook +Scorecard +Scored +Scoreless +Scorer +Scoring +Scorn +Scorpion +Scotch +Scoundrel +Scoured +Scouring +Scouting +Scouts +Scowling +Scrabble +Scraggly +Scrambled +Scrambler +Scrap +Scratch +Scrawny +Screen +Scribble +Scribe +Scribing +Scrimmage +Script +Scroll +Scrooge +Scrounger +Scrubbed +Scrubber +Scruffy +Scrunch +Scrutiny +Scuba +Scuff +Sculptor +Sculpture +Scurvy +Scuttle +Secluded +Secluding +Seclusion +Second +Secrecy +Secret +Sectional +Sector +Secular +Securely +Security +Sedan +Sedate +Sedation +Sedative +Sediment +Seduce +Seducing +Segment +Seismic +Seizing +Seldom +Selected +Selection +Selective +Selector +Self +Seltzer +Semantic +Semester +Semicolon +Semifinal +Seminar +Semisoft +Semisweet +Senate +Senator +Send +Senior +Senorita +Sensation +Sensitive +Sensitize +Sensually +Sensuous +Sepia +September +Septic +Septum +Sequel +Sequence +Sequester +Series +Sermon +Serotonin +Serpent +Serrated +Serve +Service +Serving +Sesame +Sessions +Setback +Setting +Settle +Settling +Setup +Sevenfold +Seventeen +Seventh +Seventy +Severity +Shabby +Shack +Shaded +Shadily +Shadiness +Shading +Shadow +Shady +Shaft +Shakable +Shakily +Shakiness +Shaking +Shaky +Shale +Shallot +Shallow +Shame +Shampoo +Shamrock +Shank +Shanty +Shape +Shaping +Share +Sharpener +Sharper +Sharpie +Sharply +Sharpness +Shawl +Sheath +Shed +Sheep +Sheet +Shelf +Shell +Shelter +Shelve +Shelving +Sherry +Shield +Shifter +Shifting +Shiftless +Shifty +Shimmer +Shimmy +Shindig +Shine +Shingle +Shininess +Shining +Shiny +Ship +Shirt +Shivering +Shock +Shone +Shoplift +Shopper +Shopping +Shoptalk +Shore +Shortage +Shortcake +Shortcut +Shorten +Shorter +Shorthand +Shortlist +Shortly +Shortness +Shorts +Shortwave +Shorty +Shout +Shove +Showbiz +Showcase +Showdown +Shower +Showgirl +Showing +Showman +Shown +Showoff +Showpiece +Showplace +Showroom +Showy +Shrank +Shrapnel +Shredder +Shredding +Shrewdly +Shriek +Shrill +Shrimp +Shrine +Shrink +Shrivel +Shrouded +Shrubbery +Shrubs +Shrug +Shrunk +Shucking +Shudder +Shuffle +Shuffling +Shun +Shush +Shut +Shy +Siamese +Siberian +Sibling +Siding +Sierra +Siesta +Sift +Sighing +Silenced +Silencer +Silent +Silica +Silicon +Silk +Silliness +Silly +Silo +Silt +Silver +Similarly +Simile +Simmering +Simple +Simplify +Simply +Sincere +Sincerity +Singer +Singing +Single +Singular +Sinister +Sinless +Sinner +Sinuous +Sip +Siren +Sister +Sitcom +Sitter +Sitting +Situated +Situation +Sixfold +Sixteen +Sixth +Sixties +Sixtieth +Sixtyfold +Sizable +Sizably +Size +Sizing +Sizzle +Sizzling +Skater +Skating +Skedaddle +Skeletal +Skeleton +Skeptic +Sketch +Skewed +Skewer +Skid +Skied +Skier +Skies +Skiing +Skilled +Skillet +Skillful +Skimmed +Skimmer +Skimming +Skimpily +Skincare +Skinhead +Skinless +Skinning +Skinny +Skintight +Skipper +Skipping +Skirmish +Skirt +Skittle +Skydiver +Skylight +Skyline +Skype +Skyrocket +Skyward +Slab +Slacked +Slacker +Slacking +Slackness +Slacks +Slain +Slam +Slander +Slang +Slapping +Slapstick +Slashed +Slashing +Slate +Slather +Slaw +Sled +Sleek +Sleep +Sleet +Sleeve +Slept +Sliceable +Sliced +Slicer +Slicing +Slick +Slider +Slideshow +Sliding +Slighted +Slighting +Slightly +Slimness +Slimy +Slinging +Slingshot +Slinky +Slip +Slit +Sliver +Slobbery +Slogan +Sloped +Sloping +Sloppily +Sloppy +Slot +Slouching +Slouchy +Sludge +Slug +Slum +Slurp +Slush +Sly +Small +Smartly +Smartness +Smasher +Smashing +Smashup +Smell +Smelting +Smile +Smilingly +Smirk +Smite +Smith +Smitten +Smock +Smog +Smoked +Smokeless +Smokiness +Smoking +Smoky +Smolder +Smooth +Smother +Smudge +Smudgy +Smuggler +Smuggling +Smugly +Smugness +Snack +Snagged +Snaking +Snap +Snare +Snarl +Snazzy +Sneak +Sneer +Sneeze +Sneezing +Snide +Sniff +Snippet +Snipping +Snitch +Snooper +Snooze +Snore +Snoring +Snorkel +Snort +Snout +Snowbird +Snowboard +Snowbound +Snowcap +Snowdrift +Snowdrop +Snowfall +Snowfield +Snowflake +Snowiness +Snowless +Snowman +Snowplow +Snowshoe +Snowstorm +Snowsuit +Snowy +Snub +Snuff +Snuggle +Snugly +Snugness +Speak +Spearfish +Spearhead +Spearman +Spearmint +Species +Specimen +Specked +Speckled +Specks +Spectacle +Spectator +Spectrum +Speculate +Speech +Speed +Spellbind +Speller +Spelling +Spendable +Spender +Spending +Spent +Spew +Sphere +Spherical +Sphinx +Spider +Spied +Spiffy +Spill +Spilt +Spinach +Spinal +Spindle +Spinner +Spinning +Spinout +Spinster +Spiny +Spiral +Spirited +Spiritism +Spirits +Spiritual +Splashed +Splashing +Splashy +Splatter +Spleen +Splendid +Splendor +Splice +Splicing +Splinter +Splotchy +Splurge +Spoilage +Spoiled +Spoiler +Spoiling +Spoils +Spoken +Spokesman +Sponge +Spongy +Sponsor +Spoof +Spookily +Spooky +Spool +Spoon +Spore +Sporting +Sports +Sporty +Spotless +Spotlight +Spotted +Spotter +Spotting +Spotty +Spousal +Spouse +Spout +Sprain +Sprang +Sprawl +Spray +Spree +Sprig +Spring +Sprinkled +Sprinkler +Sprint +Sprite +Sprout +Spruce +Sprung +Spry +Spud +Spur +Sputter +Spyglass +Squabble +Squad +Squall +Squander +Squash +Squatted +Squatter +Squatting +Squeak +Squealer +Squealing +Squeamish +Squeegee +Squeeze +Squeezing +Squid +Squiggle +Squiggly +Squint +Squire +Squirt +Squishier +Squishy +Stability +Stabilize +Stable +Stack +Stadium +Staff +Stage +Staging +Stagnant +Stagnate +Stainable +Stained +Staining +Stainless +Stalemate +Staleness +Stalling +Stallion +Stamina +Stammer +Stamp +Stand +Stank +Staple +Stapling +Starboard +Starch +Stardom +Stardust +Starfish +Stargazer +Staring +Stark +Starless +Starlet +Starlight +Starlit +Starring +Starry +Starship +Starter +Starting +Startle +Startling +Startup +Starved +Starving +Stash +State +Static +Statistic +Statue +Stature +Status +Statute +Statutory +Staunch +Stays +Steadfast +Steadier +Steadily +Steadying +Steam +Steed +Steep +Steerable +Steering +Steersman +Stegosaur +Stellar +Stem +Stench +Stencil +Step +Stereo +Sterile +Sterility +Sterilize +Sterling +Sternness +Sternum +Stew +Stick +Stiffen +Stiffly +Stiffness +Stifle +Stifling +Stillness +Stilt +Stimulant +Stimulate +Stimuli +Stimulus +Stinger +Stingily +Stinging +Stingray +Stingy +Stinking +Stinky +Stipend +Stipulate +Stir +Stitch +Stock +Stoic +Stoke +Stole +Stomp +Stonewall +Stoneware +Stonework +Stoning +Stony +Stood +Stooge +Stool +Stoop +Stoplight +Stoppable +Stoppage +Stopped +Stopper +Stopping +Stopwatch +Storable +Storage +Storeroom +Storewide +Storm +Stout +Stove +Stowaway +Stowing +Straddle +Straggler +Strained +Strainer +Straining +Strangely +Stranger +Strangle +Strategic +Strategy +Stratus +Straw +Stray +Streak +Stream +Street +Strength +Strenuous +Strep +Stress +Stretch +Strewn +Stricken +Strict +Stride +Strife +Strike +Striking +Strive +Striving +Strobe +Strode +Stroller +Strongbox +Strongly +Strongman +Struck +Structure +Strudel +Struggle +Strum +Strung +Strut +Stubbed +Stubble +Stubbly +Stubborn +Stucco +Stuck +Student +Studied +Studio +Study +Stuffed +Stuffing +Stuffy +Stumble +Stumbling +Stump +Stung +Stunned +Stunner +Stunning +Stunt +Stupor +Sturdily +Sturdy +Styling +Stylishly +Stylist +Stylized +Stylus +Suave +Subarctic +Subatomic +Subdivide +Subdued +Subduing +Subfloor +Subgroup +Subheader +Subject +Sublease +Sublet +Sublevel +Sublime +Submarine +Submerge +Submersed +Submitter +Subpanel +Subpar +Subplot +Subprime +Subscribe +Subscript +Subsector +Subside +Subsiding +Subsidize +Subsidy +Subsoil +Subsonic +Substance +Subsystem +Subtext +Subtitle +Subtly +Subtotal +Subtract +Subtype +Suburb +Subway +Subwoofer +Subzero +Succulent +Such +Suction +Sudden +Sudoku +Suds +Sufferer +Suffering +Suffice +Suffix +Suffocate +Suffrage +Sugar +Suggest +Suing +Suitable +Suitably +Suitcase +Suitor +Sulfate +Sulfide +Sulfite +Sulfur +Sulk +Sullen +Sulphate +Sulphuric +Sultry +Superbowl +Superglue +Superhero +Superior +Superjet +Superman +Supermom +Supernova +Supervise +Supper +Supplier +Supply +Support +Supremacy +Supreme +Surcharge +Surely +Sureness +Surface +Surfacing +Surfboard +Surfer +Surgery +Surgical +Surging +Surname +Surpass +Surplus +Surprise +Surreal +Surrender +Surrogate +Surround +Survey +Survival +Survive +Surviving +Survivor +Sushi +Suspect +Suspend +Suspense +Sustained +Sustainer +Swab +Swaddling +Swagger +Swampland +Swan +Swapping +Swarm +Sway +Swear +Sweat +Sweep +Swell +Swept +Swerve +Swifter +Swiftly +Swiftness +Swimmable +Swimmer +Swimming +Swimsuit +Swimwear +Swinger +Swinging +Swipe +Swirl +Switch +Swivel +Swizzle +Swooned +Swoop +Swoosh +Swore +Sworn +Swung +Sycamore +Sympathy +Symphonic +Symphony +Symptom +Synapse +Syndrome +Synergy +Synopses +Synopsis +Synthesis +Synthetic +Syrup +System +T-shirt +Tabasco +Tabby +Tableful +Tables +Tablet +Tableware +Tabloid +Tackiness +Tacking +Tackle +Tackling +Tacky +Taco +Tactful +Tactical +Tactics +Tactile +Tactless +Tadpole +Taekwondo +Tag +Tainted +Take +Taking +Talcum +Talisman +Tall +Talon +Tamale +Tameness +Tamer +Tamper +Tank +Tanned +Tannery +Tanning +Tantrum +Tapeless +Tapered +Tapering +Tapestry +Tapioca +Tapping +Taps +Tarantula +Target +Tarmac +Tarnish +Tarot +Tartar +Tartly +Tartness +Task +Tassel +Taste +Tastiness +Tasting +Tasty +Tattered +Tattle +Tattling +Tattoo +Taunt +Tavern +Thank +That +Thaw +Theater +Theatrics +Thee +Theft +Theme +Theology +Theorize +Thermal +Thermos +Thesaurus +These +Thesis +Thespian +Thicken +Thicket +Thickness +Thieving +Thievish +Thigh +Thimble +Thing +Think +Thinly +Thinner +Thinness +Thinning +Thirstily +Thirsting +Thirsty +Thirteen +Thirty +Thong +Thorn +Those +Thousand +Thrash +Thread +Threaten +Threefold +Thrift +Thrill +Thrive +Thriving +Throat +Throbbing +Throng +Throttle +Throwaway +Throwback +Thrower +Throwing +Thud +Thumb +Thumping +Thursday +Thus +Thwarting +Thyself +Tiara +Tibia +Tidal +Tidbit +Tidiness +Tidings +Tidy +Tiger +Tighten +Tightly +Tightness +Tightrope +Tightwad +Tigress +Tile +Tiling +Till +Tilt +Timid +Timing +Timothy +Tinderbox +Tinfoil +Tingle +Tingling +Tingly +Tinker +Tinkling +Tinsel +Tinsmith +Tint +Tinwork +Tiny +Tipoff +Tipped +Tipper +Tipping +Tiptoeing +Tiptop +Tiring +Tissue +Trace +Tracing +Track +Traction +Tractor +Trade +Trading +Tradition +Traffic +Tragedy +Trailing +Trailside +Train +Traitor +Trance +Tranquil +Transfer +Transform +Translate +Transpire +Transport +Transpose +Trapdoor +Trapeze +Trapezoid +Trapped +Trapper +Trapping +Traps +Trash +Travel +Traverse +Travesty +Tray +Treachery +Treading +Treadmill +Treason +Treat +Treble +Tree +Trekker +Tremble +Trembling +Tremor +Trench +Trend +Trespass +Triage +Trial +Triangle +Tribesman +Tribunal +Tribune +Tributary +Tribute +Triceps +Trickery +Trickily +Tricking +Trickle +Trickster +Tricky +Tricolor +Tricycle +Trident +Tried +Trifle +Trifocals +Trillion +Trilogy +Trimester +Trimmer +Trimming +Trimness +Trinity +Trio +Tripod +Tripping +Triumph +Trivial +Trodden +Trolling +Trombone +Trophy +Tropical +Tropics +Trouble +Troubling +Trough +Trousers +Trout +Trowel +Truce +Truck +Truffle +Trump +Trunks +Trustable +Trustee +Trustful +Trusting +Trustless +Truth +Try +Tubby +Tubeless +Tubular +Tucking +Tuesday +Tug +Tuition +Tulip +Tumble +Tumbling +Tummy +Turban +Turbine +Turbofan +Turbojet +Turbulent +Turf +Turkey +Turmoil +Turret +Turtle +Tusk +Tutor +Tutu +Tux +Tweak +Tweed +Tweet +Tweezers +Twelve +Twentieth +Twenty +Twerp +Twice +Twiddle +Twiddling +Twig +Twilight +Twine +Twins +Twirl +Twistable +Twisted +Twister +Twisting +Twisty +Twitch +Twitter +Tycoon +Tying +Tyke +Udder +Ultimate +Ultimatum +Ultra +Umbilical +Umbrella +Umpire +Unabashed +Unable +Unadorned +Unadvised +Unafraid +Unaired +Unaligned +Unaltered +Unarmored +Unashamed +Unaudited +Unawake +Unaware +Unbaked +Unbalance +Unbeaten +Unbend +Unbent +Unbiased +Unbitten +Unblended +Unblessed +Unblock +Unbolted +Unbounded +Unboxed +Unbraided +Unbridle +Unbroken +Unbuckled +Unbundle +Unburned +Unbutton +Uncanny +Uncapped +Uncaring +Uncertain +Unchain +Unchanged +Uncharted +Uncheck +Uncivil +Unclad +Unclaimed +Unclamped +Unclasp +Uncle +Unclip +Uncloak +Unclog +Unclothed +Uncoated +Uncoiled +Uncolored +Uncombed +Uncommon +Uncooked +Uncork +Uncorrupt +Uncounted +Uncouple +Uncouth +Uncover +Uncross +Uncrown +Uncrushed +Uncured +Uncurious +Uncurled +Uncut +Undamaged +Undated +Undaunted +Undead +Undecided +Undefined +Underage +Underarm +Undercoat +Undercook +Undercut +Underdog +Underdone +Underfed +Underfeed +Underfoot +Undergo +Undergrad +Underhand +Underline +Underling +Undermine +Undermost +Underpaid +Underpass +Underpay +Underrate +Undertake +Undertone +Undertook +Undertow +Underuse +Underwear +Underwent +Underwire +Undesired +Undiluted +Undivided +Undocked +Undoing +Undone +Undrafted +Undress +Undrilled +Undusted +Undying +Unearned +Unearth +Unease +Uneasily +Uneasy +Uneatable +Uneaten +Unedited +Unelected +Unending +Unengaged +Unenvied +Unequal +Unethical +Uneven +Unexpired +Unexposed +Unfailing +Unfair +Unfasten +Unfazed +Unfeeling +Unfiled +Unfilled +Unfitted +Unfitting +Unfixable +Unfixed +Unflawed +Unfocused +Unfold +Unfounded +Unframed +Unfreeze +Unfrosted +Unfrozen +Unfunded +Unglazed +Ungloved +Unglue +Ungodly +Ungraded +Ungreased +Unguarded +Unguided +Unhappily +Unhappy +Unharmed +Unhealthy +Unheard +Unhearing +Unheated +Unhelpful +Unhidden +Unhinge +Unhitched +Unholy +Unhook +Unicorn +Unicycle +Unified +Unifier +Uniformed +Uniformly +Unify +Unimpeded +Uninjured +Uninstall +Uninsured +Uninvited +Union +Uniquely +Unisexual +Unison +Unissued +Unit +Universal +Universe +Unjustly +Unkempt +Unkind +Unknotted +Unknowing +Unknown +Unlaced +Unlatch +Unlawful +Unleaded +Unlearned +Unleash +Unless +Unleveled +Unlighted +Unlikable +Unlimited +Unlined +Unlinked +Unlisted +Unlit +Unlivable +Unloaded +Unloader +Unlocked +Unlocking +Unlovable +Unloved +Unlovely +Unloving +Unluckily +Unlucky +Unmade +Unmanaged +Unmanned +Unmapped +Unmarked +Unmasked +Unmasking +Unmatched +Unmindful +Unmixable +Unmixed +Unmolded +Unmoral +Unmovable +Unmoved +Unmoving +Unnamable +Unnamed +Unnatural +Unneeded +Unnerve +Unnerving +Unnoticed +Unopened +Unopposed +Unpack +Unpadded +Unpaid +Unpainted +Unpaired +Unpaved +Unpeeled +Unpicked +Unpiloted +Unpinned +Unplanned +Unplanted +Unpleased +Unpledged +Unplowed +Unplug +Unpopular +Unproven +Unquote +Unranked +Unrated +Unraveled +Unreached +Unread +Unreal +Unreeling +Unrefined +Unrelated +Unrented +Unrest +Unretired +Unrevised +Unrigged +Unripe +Unrivaled +Unroasted +Unrobed +Unroll +Unruffled +Unruly +Unrushed +Unsaddle +Unsafe +Unsaid +Unsalted +Unsaved +Unsavory +Unscathed +Unscented +Unscrew +Unsealed +Unseated +Unsecured +Unseeing +Unseemly +Unseen +Unselect +Unselfish +Unsent +Unsettled +Unshackle +Unshaken +Unshaved +Unshaven +Unsheathe +Unshipped +Unsightly +Unsigned +Unskilled +Unsliced +Unsmooth +Unsnap +Unsocial +Unsoiled +Unsold +Unsolved +Unsorted +Unspoiled +Unspoken +Unstable +Unstaffed +Unstamped +Unsteady +Unsterile +Unstirred +Unstitch +Unstopped +Unstuck +Unstuffed +Unstylish +Unsubtle +Unsubtly +Unsuited +Unsure +Unsworn +Untagged +Untainted +Untaken +Untamed +Untangled +Untapped +Untaxed +Unthawed +Unthread +Untidy +Untie +Until +Untimed +Untimely +Untitled +Untoasted +Untold +Untouched +Untracked +Untrained +Untreated +Untried +Untrimmed +Untrue +Untruth +Unturned +Untwist +Untying +Unusable +Unused +Unusual +Unvalued +Unvaried +Unvarying +Unveiled +Unveiling +Unvented +Unviable +Unvisited +Unvocal +Unwanted +Unwarlike +Unwary +Unwashed +Unwatched +Unweave +Unwed +Unwelcome +Unwell +Unwieldy +Unwilling +Unwind +Unwired +Unwitting +Unwomanly +Unworldly +Unworn +Unworried +Unworthy +Unwound +Unwoven +Unwrapped +Unwritten +Unzip +Upbeat +Upchuck +Upcoming +Upcountry +Update +Upfront +Upgrade +Upheaval +Upheld +Uphill +Uphold +Uplifted +Uplifting +Upload +Upon +Upper +Upright +Uprising +Upriver +Uproar +Uproot +Upscale +Upside +Upstage +Upstairs +Upstart +Upstate +Upstream +Upstroke +Upswing +Uptake +Uptight +Uptown +Upturned +Upward +Upwind +Uranium +Urban +Urchin +Urethane +Urgency +Urgent +Urging +Urologist +Urology +Usable +Usage +Useable +Used +Uselessly +User +Usher +Usual +Utensil +Utility +Utilize +Utmost +Utopia +Utter +Vacancy +Vacant +Vacate +Vacation +Vagabond +Vagrancy +Vagrantly +Vaguely +Vagueness +Valiant +Valid +Valium +Valley +Valuables +Value +Vanilla +Vanish +Vanity +Vanquish +Vantage +Vaporizer +Variable +Variably +Varied +Variety +Various +Varmint +Varnish +Varsity +Varying +Vascular +Vaseline +Vastly +Vastness +Veal +Vegan +Veggie +Vehicular +Velcro +Velocity +Velvet +Vendetta +Vending +Vendor +Veneering +Vengeful +Venomous +Ventricle +Venture +Venue +Venus +Verbalize +Verbally +Verbose +Verdict +Verify +Verse +Version +Versus +Vertebrae +Vertical +Vertigo +Very +Vessel +Vest +Veteran +Veto +Vexingly +Viability +Viable +Vibes +Vice +Vicinity +Victory +Video +Viewable +Viewer +Viewing +Viewless +Viewpoint +Vigorous +Village +Villain +Vindicate +Vineyard +Vintage +Violate +Violation +Violator +Violet +Violin +Viper +Viral +Virtual +Virtuous +Virus +Visa +Viscosity +Viscous +Viselike +Visible +Visibly +Vision +Visiting +Visitor +Visor +Vista +Vitality +Vitalize +Vitally +Vitamins +Vivacious +Vividly +Vividness +Vixen +Vocalist +Vocalize +Vocally +Vocation +Voice +Voicing +Void +Volatile +Volley +Voltage +Volumes +Voter +Voting +Voucher +Vowed +Vowel +Voyage +Wackiness +Wad +Wafer +Waffle +Waged +Wager +Wages +Waggle +Wagon +Wake +Waking +Walk +Walmart +Walnut +Walrus +Waltz +Wand +Wannabe +Wanted +Wanting +Wasabi +Washable +Washbasin +Washboard +Washbowl +Washcloth +Washday +Washed +Washer +Washhouse +Washing +Washout +Washroom +Washstand +Washtub +Wasp +Wasting +Watch +Water +Waviness +Waving +Wavy +Whacking +Whacky +Wham +Wharf +Wheat +Whenever +Whiff +Whimsical +Whinny +Whiny +Whisking +Whoever +Whole +Whomever +Whoopee +Whooping +Whoops +Why +Wick +Widely +Widen +Widget +Widow +Width +Wieldable +Wielder +Wife +Wifi +Wikipedia +Wildcard +Wildcat +Wilder +Wildfire +Wildfowl +Wildland +Wildlife +Wildly +Wildness +Willed +Willfully +Willing +Willow +Willpower +Wilt +Wimp +Wince +Wincing +Wind +Wing +Winking +Winner +Winnings +Winter +Wipe +Wired +Wireless +Wiring +Wiry +Wisdom +Wise +Wish +Wisplike +Wispy +Wistful +Wizard +Wobble +Wobbling +Wobbly +Wok +Wolf +Wolverine +Womanhood +Womankind +Womanless +Womanlike +Womanly +Womb +Woof +Wooing +Wool +Woozy +Word +Work +Worried +Worrier +Worrisome +Worry +Worsening +Worshiper +Worst +Wound +Woven +Wow +Wrangle +Wrath +Wreath +Wreckage +Wrecker +Wrecking +Wrench +Wriggle +Wriggly +Wrinkle +Wrinkly +Wrist +Writing +Written +Wrongdoer +Wronged +Wrongful +Wrongly +Wrongness +Wrought +Xbox +Xerox +Yahoo +Yam +Yanking +Yapping +Yard +Yarn +Yeah +Yearbook +Yearling +Yearly +Yearning +Yeast +Yelling +Yelp +Yen +Yesterday +Yiddish +Yield +Yin +Yippee +Yo-yo +Yodel +Yoga +Yogurt +Yonder +Yoyo +Yummy +Zap +Zealous +Zebra +Zen +Zeppelin +Zero +Zestfully +Zesty +Zigzagged +Zipfile +Zipping +Zippy +Zips +Zit +Zodiac +Zombie +Zone +Zoning +Zookeeper +Zoologist +Zoology +Zoom \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000000..fb57ccd13afb --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + +